From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Date: Mon, 6 Jul 2015 20:25:12 +0200 From: Clemens Gruber Message-ID: <20150706182510.GA13167@pqgruber.com> MIME-Version: 1.0 Content-Disposition: inline Subject: [ptxdist] [PATCH v3] procps: switch from procps to procps-ng List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: Michael Olbrich VGhlIHByb2NwcyBwYWNrYWdlIGlzIHVubWFpbnRhaW5lZCwgdGhlcmVmb3JlIHN3aXRjaCB0byBw cm9jcHMtbmcsIHdoaWNoCmlzIHVzZWQgYnkgbWFueSBtYWpvciBkaXN0cmlidXRpb25zLgoKQ2M6 IE1pY2hhZWwgT2xicmljaCA8bS5vbGJyaWNoQHBlbmd1dHJvbml4LmRlPgpTaWduZWQtb2ZmLWJ5 OiBDbGVtZW5zIEdydWJlciA8Y2xlbWVucy5ncnViZXJAcHFncnViZXIuY29tPgotLS0KQ2hhbmdl cyBmcm9tIHYyOgotIFVzZSB0aGUgY29ycmVjdCBTRiBVUkwgdG8gaGF2ZSBhIHByb2Nwcy1uZyB2 ZXJzaW9uIG51bWJlcgotIFRoZSBjaHJvbnkgY2hhbmdlIGZyb20gVjEgYnJva2UgYnVzeWJveCBw aWRvZiwgZml4ZWQhCgpDaGFuZ2VzIGZyb20gdjE6Ci0gQWRkIG5jdXJzZXMgc2VsZWN0IHRvIHN1 YiBvcHRpb25zCi0gUmVwbGFjZSBTb3VyY2Vmb3JnZSB3aXRoIEdpdGxhYiBVUkwKLSBBZGQgYXV0 b2dlbi5zaAotIFJlbW92ZSBwYXRjaGVzIGZyb20gb2xkIHByb2NwcwotIFNlbGVjdCBTWVNURU1E IGFuZCBkZWZhdWx0IHRvIElOSVRNRVRIT0RfU1lTVEVNRAotIEZpeCBwaWRvZiBjYWxsIGluIGNo cm9ueSBzY3JpcHRzIChwaWRvZiBtb3ZlZCB0byAvdXNyL2JpbikKLS0tCiBwYXRjaGVzL3Byb2Nw cy0zLjIuOC8wMDAxLXNsYWJ0b3Bfb25jZS5wYXRjaCAgICAgICB8IDEyNSAtLS0tLQogcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDAwMi1mcmVlLjEucGF0Y2ggICAgICAgICAgICAgfCAxMTIgLS0tLS0K IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDMtb3V0cHV0X3NvcnRfdGltZS5wYXRjaCAgIHwgMTAy IC0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDQtcG1hcC4xLnBhdGNoICAgICAgICAgICAg IHwgIDU3IC0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNS0xMF9wcy4xLnBhdGNoICAgICAg ICAgICAgfCAgNzIgLS0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA2LXNraWxsLjEucGF0Y2gg ICAgICAgICAgICB8IDEyNSAtLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNy1za2lsbF9w ZXJyb3IucGF0Y2ggICAgICAgfCAgMjUgLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwOC1zbGFi dG9wXzEucGF0Y2ggICAgICAgICAgfCAxMDYgLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAw OS1zeXNjdGwuOC5wYXRjaCAgICAgICAgICAgfCAxNTcgLS0tLS0tCiBwYXRjaGVzL3Byb2Nwcy0z LjIuOC8wMDEwLXN5c2N0bF9vcHRpb25zLnBhdGNoICAgICB8ICA1NyAtLS0KIHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMTEtdGxvYWQuMS5wYXRjaCAgICAgICAgICAgIHwgIDI2IC0KIHBhdGNoZXMv cHJvY3BzLTMuMi44LzAwMTItdG9wX2lyaXgucGF0Y2ggICAgICAgICAgIHwgIDUzIC0tCiBwYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDEzLXRvcF9ub19vcGVucHJvYy5wYXRjaCAgICB8ICAzMCAtLQog cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxNC10b3Bfc3RkaW5fZW9mLnBhdGNoICAgICAgfCAgMjkg LS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTUtdG9wX3VpZF9sZW5ndGgucGF0Y2ggICAgIHwg IDI2IC0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTYtdXB0aW1lLjEucGF0Y2ggICAgICAgICAg IHwgIDU3IC0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxNy12bXN0YXQuOC5wYXRjaCAgICAg ICAgICAgfCAxMTkgLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTgtd2F0Y2guMS5wYXRj aCAgICAgICAgICAgIHwgMTEyIC0tLS0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE5LXdfdGlt ZS5wYXRjaCAgICAgICAgICAgICB8ICAyNiAtCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDIwLWtp bGwuMS5wYXRjaCAgICAgICAgICAgICB8IDE1NyAtLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwMjEta2lsbF93YXJuY3IucGF0Y2ggICAgICAgIHwgIDM1IC0tCiBwYXRjaGVzL3Byb2Nwcy0z LjIuOC8wMDIyLW1vZHVsZV9ta19zaGFyZWQucGF0Y2ggICB8ICAyNiAtCiBwYXRjaGVzL3Byb2Nw cy0zLjIuOC8wMDIzLXN5c2luZm9fZWxmbm90ZS5wYXRjaCAgICB8ICAzMiAtLQogcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDAyNC10b3AuMS5wYXRjaCAgICAgICAgICAgICAgfCA0MjcgLS0tLS0tLS0t LS0tLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNS10b3BfY19yZXNpemUucGF0Y2ggICAg ICAgfCAgODYgLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNi13LWJhc3NtYW4ucGF0Y2gg ICAgICAgICAgfCAgOTkgLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNy10b3AuMV9jcHVz dGF0ZXMucGF0Y2ggICAgfCAgNjAgLS0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI4LXdhdGNo XzhiaXRjaGFyLnBhdGNoICAgICB8ICAyNiAtCiAuLi4vcHJvY3BzLTMuMi44LzAwMjktbGlicmFy eV9tYXBfZnJlZXByb2MucGF0Y2ggICB8ICAyNiAtCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMw LXBncmVwX3N0YXJ0X3RpbWUucGF0Y2ggICB8ICAyNyAtCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDMxLXJlYWRwcm9jX2MucGF0Y2ggICAgICAgICB8ICAzNSAtLQogcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDAzMi1zeXNpbmZvXzdfbnVtYmVycy5wYXRjaCAgfCAgNDYgLS0KIHBhdGNoZXMvcHJvY3Bz LTMuMi44LzAwMzMtdGxvYWRfbm9fb3B0YXJncy5wYXRjaCAgIHwgIDI3IC0KIHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMzQtdy4xLnBhdGNoICAgICAgICAgICAgICAgIHwgIDgwIC0tLQogcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDAzNS13X2NvbHVtbnMucGF0Y2ggICAgICAgICAgfCAgNDEgLS0KIHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwMzYtd2F0Y2hfZXhlY19iZWVwLnBhdGNoICAgIHwgMjcxIC0t LS0tLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzctcGF0aF9tYXgucGF0Y2ggICAgICAg ICAgIHwgIDg3IC0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzgtd19lbnZsZW5ndGgucGF0 Y2ggICAgICAgIHwgMTgzIC0tLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzktZ251LWti c2QtdmVyc2lvbi5wYXRjaCAgIHwgIDQ3IC0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQwLXBn cmVwX2Nfb3B0aW9uLnBhdGNoICAgICB8ICA5NiAtLS0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDQxLXBzX2Nncm91cF9kaXNwbGF5LnBhdGNoICB8IDE3NSAtLS0tLS0tCiAuLi4vcHJvY3BzLTMu Mi44LzAwNDItd2F0Y2hfcHJlY2lzaW9uX3RpbWUucGF0Y2ggICB8IDIyNiAtLS0tLS0tLS0KIHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwNDMtd2F0Y2hfdW5pY29kZS5wYXRjaCAgICAgIHwgMzExIC0t LS0tLS0tLS0tLQogLi4uLzAwNDQtY29tcGxhaW5fdW5tb3VudGVkX3Byb2MucGF0Y2ggICAgICAg ICAgICAgfCAgMjkgLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDUtcHNfc3VwZ2lkX2Rpc3Bs YXkucGF0Y2ggIHwgNDc1IC0tLS0tLS0tLS0tLS0tLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgv MDA0Ni1tYWtlZmlsZV9kZXZfbnVsbC5wYXRjaCAgfCAgMjUgLQogcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDA0Ny1wZ3JlcC4xLnBhdGNoICAgICAgICAgICAgfCAyMTggLS0tLS0tLS0KIHBhdGNoZXMv cHJvY3BzLTMuMi44LzAwNDgtcHNfc2l6ZV9zei5wYXRjaCAgICAgICAgIHwgIDQwIC0tCiBwYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDQ5LXRvcF9taW50aW1lLnBhdGNoICAgICAgICB8ICAyNyAtCiBw YXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDUwLXZtc3RhdF9oZWFkZXJzLnBhdGNoICAgICB8IDE1OSAt LS0tLS0KIC4uLi9wcm9jcHMtMy4yLjgvMDA1MS1wZ3JlcF91c2FnZV9leGl0Y29kZS5wYXRjaCAg IHwgIDI2IC0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTItcHNfMV9vcHRpb25zLnBhdGNoICAg ICAgIHwgNTU3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1 My10b3BfaGlnaGxpZ2h0LnBhdGNoICAgICAgfCAgMjkgLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNTQtdG9wX25vaHoucGF0Y2ggICAgICAgICAgIHwgIDI1IC0KIHBhdGNoZXMvcHJvY3BzLTMu Mi44LzAwNTUtdm1zdGF0X3BhcnRfZm9ybWF0LnBhdGNoIHwgIDk0IC0tLS0KIC4uLi9wcm9jcHMt My4yLjgvMDA1Ni1yZWFkcHJvY19kb3VibGVfZnJlZS5wYXRjaCAgIHwgIDMyIC0tCiBwYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDU3LXZtc3RhdF91bml0cy5wYXRjaCAgICAgICB8ICA3MCAtLS0KIHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwNTgtc2tpbGxfbnVsbF9hcmd2LnBhdGNoICAgIHwgIDI1IC0K IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTktc2tpbGxfbXVsdGlhcmcucGF0Y2ggICAgIHwgIDI1 IC0KIC4uLi8wMDYwLXByb2NfdmVyc2lvbl9jb25zdHJ1Y3Rvci5wYXRjaCAgICAgICAgICAgIHwg IDUyIC0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDYxLXBtYXBzX3NtYXBzLnBhdGNoICAgICAg ICB8IDE1MCAtLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjItdG9wX251bWVyaWNfYXJn cy5wYXRjaCAgIHwgMTA5IC0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjMtdG9wXzFfc3dh cC5wYXRjaCAgICAgICAgIHwgIDM0IC0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY0LXdfdXNl cnByb2MucGF0Y2ggICAgICAgICB8ICAyNSAtCiAuLi4vcHJvY3BzLTMuMi44LzAwNjUtc3lzaW5m b19rZnJlZWJzZF9oZXJ0ei5wYXRjaCB8ICAzMSAtLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2 Ni1wc18xX2ZsdF9vdXRwdXQucGF0Y2ggICAgfCAgNDAgLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNjctd2F0Y2hfYW5zaV9jb2xvdXIucGF0Y2ggIHwgMTkzIC0tLS0tLS0KIHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwNjgtdG9wX3VzZXJuYW1lX3BhcnNlLnBhdGNoIHwgIDI1IC0KIC4uLjY5LWRv bi10LWluc3RhbGwtc3R1ZmYtdGhhdC13YXMtbm90LWJ1aWx0LnBhdGNoIHwgIDMxIC0tCiAuLi5h bWUtcmVnaXN0ZXJzLW9wdGlvbi1kdWUtdG8tSUNFLW9uLWdjYy00Li5wYXRjaCB8ICAyNSAtCiAu Li4vMDA3MS1maXgtYnVpbGQtd2l0aC1tYWtlLTMuODIucGF0Y2ggICAgICAgICAgICB8ICAzNiAt LQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvc2VyaWVzICAgICAgICAgICAgICAgICAgICAgICAgfCAg NzEgLS0tCiBwcm9qZWN0cm9vdC9ldGMvaW5pdC5kL2Nocm9ueSAgICAgICAgICAgICAgICAgICAg ICB8ICAxMCArLQogcHJvamVjdHJvb3QvdXNyL2Jpbi9jaHJvbnlfY29tbWFuZCAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHByb2plY3Ryb290L3Vzci9iaW4vY2hyb255X3N0YXQgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBydWxlcy9wcm9jcHMuaW4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDE2NCArKysrLS0KIHJ1bGVzL3Byb2Nwcy5tYWtlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTA4ICsrLS0KIDc3IGZpbGVzIGNoYW5nZWQsIDIxNCBp bnNlcnRpb25zKCspLCA2NzkyIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNo ZXMvcHJvY3BzLTMuMi44LzAwMDEtc2xhYnRvcF9vbmNlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwMi1mcmVlLjEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDAzLW91dHB1dF9zb3J0X3RpbWUucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA0LXBtYXAuMS5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDUtMTBfcHMuMS5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDYtc2tpbGwuMS5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDctc2tpbGxf cGVycm9yLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAw OC1zbGFidG9wXzEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDA5LXN5c2N0bC44LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDAxMC1zeXNjdGxfb3B0aW9ucy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNo ZXMvcHJvY3BzLTMuMi44LzAwMTEtdGxvYWQuMS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwMTItdG9wX2lyaXgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDEzLXRvcF9ub19vcGVucHJvYy5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTQtdG9wX3N0ZGluX2VvZi5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTUtdG9wX3VpZF9s ZW5ndGgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE2 LXVwdGltZS4xLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgv MDAxNy12bXN0YXQuOC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMTgtd2F0Y2guMS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3Bz LTMuMi44LzAwMTktd190aW1lLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9j cHMtMy4yLjgvMDAyMC1raWxsLjEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDIxLWtpbGxfd2FybmNyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDAyMi1tb2R1bGVfbWtfc2hhcmVkLnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyMy1zeXNpbmZvX2VsZm5vdGUucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI0LXRvcC4xLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNS10b3BfY19yZXNp emUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI2LXct YmFzc21hbi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAw MjctdG9wLjFfY3B1c3RhdGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9j cHMtMy4yLjgvMDAyOC13YXRjaF84Yml0Y2hhci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwMjktbGlicmFyeV9tYXBfZnJlZXByb2MucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMwLXBncmVwX3N0YXJ0X3RpbWUu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMxLXJlYWRw cm9jX2MucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMy LXN5c2luZm9fN19udW1iZXJzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9j cHMtMy4yLjgvMDAzMy10bG9hZF9ub19vcHRhcmdzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNC13LjEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBw YXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM1LXdfY29sdW1ucy5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzYtd2F0Y2hfZXhlY19iZWVwLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNy1wYXRoX21heC5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzgtd19lbnZsZW5ndGgu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM5LWdudS1r YnNkLXZlcnNpb24ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDQwLXBncmVwX2Nfb3B0aW9uLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDA0MS1wc19jZ3JvdXBfZGlzcGxheS5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDItd2F0Y2hfcHJlY2lzaW9uX3RpbWUucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQzLXdhdGNoX3VuaWNv ZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ0LWNv bXBsYWluX3VubW91bnRlZF9wcm9jLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDA0NS1wc19zdXBnaWRfZGlzcGxheS5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDYtbWFrZWZpbGVfZGV2X251bGwucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ3LXBncmVwLjEucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ4LXBzX3NpemVfc3ou cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ5LXRvcF9t aW50aW1lLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1 MC12bXN0YXRfaGVhZGVycy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3Bz LTMuMi44LzAwNTEtcGdyZXBfdXNhZ2VfZXhpdGNvZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDUyLXBzXzFfb3B0aW9ucy5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTMtdG9wX2hpZ2hsaWdodC5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTQtdG9wX25vaHoucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU1LXZtc3RhdF9w YXJ0X2Zvcm1hdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNTYtcmVhZHByb2NfZG91YmxlX2ZyZWUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDU3LXZtc3RhdF91bml0cy5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTgtc2tpbGxfbnVsbF9hcmd2LnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1OS1za2lsbF9tdWx0aWFyZy5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjAtcHJvY192 ZXJzaW9uX2NvbnN0cnVjdG9yLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9j cHMtMy4yLjgvMDA2MS1wbWFwc19zbWFwcy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNo ZXMvcHJvY3BzLTMuMi44LzAwNjItdG9wX251bWVyaWNfYXJncy5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjMtdG9wXzFfc3dhcC5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjQtd191c2VycHJvYy5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjUtc3lzaW5mb19rZnJl ZWJzZF9oZXJ0ei5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNjYtcHNfMV9mbHRfb3V0cHV0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDA2Ny13YXRjaF9hbnNpX2NvbG91ci5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjgtdG9wX3VzZXJuYW1lX3BhcnNlLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2OS1kb24tdC1pbnN0YWxs LXN0dWZmLXRoYXQtd2FzLW5vdC1idWlsdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNo ZXMvcHJvY3BzLTMuMi44LzAwNzAtcmVtb3ZlLWZyZW5hbWUtcmVnaXN0ZXJzLW9wdGlvbi1kdWUt dG8tSUNFLW9uLWdjYy00Li5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3Bz LTMuMi44LzAwNzEtZml4LWJ1aWxkLXdpdGgtbWFrZS0zLjgyLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvc2VyaWVzCgpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDAwMS1zbGFidG9wX29uY2UucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDAxLXNsYWJ0b3Bfb25jZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NWQ4YTQ1MS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDAxLXNsYWJ0b3Bf b25jZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNSArMCwwIEBACi1Gcm9tIGNjNTNlYjhh ZWUxMmUzMjg2MWU2MDczZDllNmJkN2QwMTVhMTVjNTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nw cy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBG cmksIDE5IE1hciAyMDEwIDIxOjU4OjQ1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMDEvNzBdIHNs YWJ0b3Bfb25jZQotCi0tLS0KLSBzbGFidG9wLmMgfCAgIDQ1ICsrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9u cygrKSwgMTkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zbGFidG9wLmMgYi9zbGFidG9w LmMKLWluZGV4IDM2MDI1ZTIuLjVjOWQzMWUgMTAwNjQ0Ci0tLS0gYS9zbGFidG9wLmMKLSsrKyBi L3NsYWJ0b3AuYwotQEAgLTI2OCwxMSArMjY4LDEzIEBAIHN0YXRpYyB2b2lkIHBhcnNlX2lucHV0 KGNoYXIgYykKLSAJfQotIH0KLSAKLSsjZGVmaW5lIHByaW50X2xpbmUoZm10LCBhcmdzLi4uKSBp ZiAocnVuX29uY2UpIHByaW50ZihmbXQsICMjIGFyZ3MpOyBlbHNlIHByaW50dyhmbXQsICMjIGFy Z3MpCi0gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSB7Ci0gCWludCBvOwotIAl1 bnNpZ25lZCBzaG9ydCBvbGRfcm93czsKLSAJc3RydWN0IHNsYWJfaW5mbyAqc2xhYl9saXN0ID0g TlVMTDsKLSsgIGludCBydW5fb25jZT0wOwotIAotIAlzdHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW10g PSB7Ci0gCQl7ICJkZWxheSIsCTEsIE5VTEwsICdkJyB9LAotQEAgLTMwNiw2ICszMDgsNyBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAkJCXNvcnRfZnVuYyA9IHNldF9zb3J0 X2Z1bmMob3B0YXJnWzBdKTsKLSAJCQlicmVhazsKLSAJCWNhc2UgJ28nOgotKyAgICAgIHJ1bl9v bmNlPTE7Ci0gCQkJZGVsYXkgPSAwOwotIAkJCWJyZWFrOwotIAkJY2FzZSAnVic6Ci1AQCAtMzIy LDExICszMjUsMTMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJaWYgKHRj Z2V0YXR0cigwLCAmc2F2ZWRfdHR5KSA9PSAtMSkKLSAJCXBlcnJvcigidGNnZXRhdHRyIik7Ci0g Ci0tCWluaXRzY3IoKTsKLS0JdGVybV9zaXplKDApOwotIAlvbGRfcm93cyA9IHJvd3M7Ci0tCXJl c2l6ZXRlcm0ocm93cywgY29scyk7Ci0tCXNpZ25hbChTSUdXSU5DSCwgdGVybV9zaXplKTsKLSsJ dGVybV9zaXplKDApOwotKyAgaWYgKCFydW5fb25jZSkgewotKyAgICBpbml0c2NyKCk7Ci0rCSAg cmVzaXpldGVybShyb3dzLCBjb2xzKTsKLSsJICBzaWduYWwoU0lHV0lOQ0gsIHRlcm1fc2l6ZSk7 Ci0rICB9Ci0gCXNpZ25hbChTSUdJTlQsIHNpZ2ludF9oYW5kbGVyKTsKLSAKLSAJZG8gewotQEAg LTM0MCwxMyArMzQ1LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCQlp ZiAoZ2V0X3NsYWJpbmZvKCZzbGFiX2xpc3QsICZzdGF0cykpCi0gCQkJYnJlYWs7Ci0gCi0tCQlp ZiAob2xkX3Jvd3MgIT0gcm93cykgewotKwkJaWYgKCFydW5fb25jZSAmJiBvbGRfcm93cyAhPSBy b3dzKSB7Ci0gCQkJcmVzaXpldGVybShyb3dzLCBjb2xzKTsKLSAJCQlvbGRfcm93cyA9IHJvd3M7 Ci0gCQl9Ci0gCi0gCQltb3ZlKDAsMCk7Ci0tCQlwcmludHcoCSIgQWN0aXZlIC8gVG90YWwgT2Jq ZWN0cyAoJSUgdXNlZCkgICAgOiAlZCAvICVkICglLjFmJSUpXG4iCi0rCQlwcmludF9saW5lKAki IEFjdGl2ZSAvIFRvdGFsIE9iamVjdHMgKCUlIHVzZWQpICAgIDogJWQgLyAlZCAoJS4xZiUlKVxu IgotIAkJCSIgQWN0aXZlIC8gVG90YWwgU2xhYnMgKCUlIHVzZWQpICAgICAgOiAlZCAvICVkICgl LjFmJSUpXG4iCi0gCQkJIiBBY3RpdmUgLyBUb3RhbCBDYWNoZXMgKCUlIHVzZWQpICAgICA6ICVk IC8gJWQgKCUuMWYlJSlcbiIKLSAJCQkiIEFjdGl2ZSAvIFRvdGFsIFNpemUgKCUlIHVzZWQpICAg ICAgIDogJS4yZksgLyAlLjJmSyAoJS4xZiUlKVxuIgotQEAgLTM2MSwxNCArMzY2LDE0IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCQlzbGFiX2xpc3QgPSBzbGFic29ydChz bGFiX2xpc3QpOwotIAotIAkJYXR0cm9uKEFfUkVWRVJTRSk7Ci0tCQlwcmludHcoCSIlNnMgJTZz ICU0cyAlOHMgJTZzICU4cyAlMTBzICUtMjNzXG4iLAotKwkJcHJpbnRfbGluZSgJIiU2cyAlNnMg JTRzICU4cyAlNnMgJThzICUxMHMgJS0yM3NcbiIsCi0gCQkJIk9CSlMiLCAiQUNUSVZFIiwgIlVT RSIsICJPQkogU0laRSIsICJTTEFCUyIsCi0gCQkJIk9CSi9TTEFCIiwgIkNBQ0hFIFNJWkUiLCAi TkFNRSIpOwotIAkJYXR0cm9mZihBX1JFVkVSU0UpOwotIAotIAkJY3VyciA9IHNsYWJfbGlzdDsK LSAJCWZvciAoaSA9IDA7IGkgPCByb3dzIC0gOCAmJiBjdXJyLT5uZXh0OyBpKyspIHsKLS0JCQlw cmludHcoIiU2dSAlNnUgJTN1JSUgJTcuMmZLICU2dSAlOHUgJTl1SyAlLTIzc1xuIiwKLSsJCQlw cmludF9saW5lKCIlNnUgJTZ1ICUzdSUlICU3LjJmSyAlNnUgJTh1ICU5dUsgJS0yM3NcbiIsCi0g CQkJCWN1cnItPm5yX29ianMsIGN1cnItPm5yX2FjdGl2ZV9vYmpzLCBjdXJyLT51c2UsCi0gCQkJ CWN1cnItPm9ial9zaXplIC8gMTAyNC4wLCBjdXJyLT5ucl9zbGFicywKLSAJCQkJY3Vyci0+b2Jq c19wZXJfc2xhYiwgKHVuc2lnbmVkKShjdXJyLT5jYWNoZV9zaXplIC8gMTAyNCksCi1AQCAtMzc2 LDIyICszODEsMjQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJCQljdXJy ID0gY3Vyci0+bmV4dDsKLSAJCX0KLSAKLS0JCXJlZnJlc2goKTsKLSAJCXB1dF9zbGFiaW5mbyhz bGFiX2xpc3QpOwotIAotLQkJRkRfWkVSTygmcmVhZGZkcyk7Ci0tCQlGRF9TRVQoMCwgJnJlYWRm ZHMpOwotLQkJdHYudHZfc2VjID0gZGVsYXk7Ci0tCQl0di50dl91c2VjID0gMDsKLS0JCWlmIChz ZWxlY3QoMSwgJnJlYWRmZHMsIE5VTEwsIE5VTEwsICZ0dikgPiAwKSB7Ci0tCQkJaWYgKHJlYWQo MCwgJmMsIDEpICE9IDEpCi0tCQkJCWJyZWFrOwotLQkJCXBhcnNlX2lucHV0KGMpOwotLQkJfQot KwkJaWYgKCFydW5fb25jZSkgewotKyAgICAgIHJlZnJlc2goKTsKLSsJCSAgRkRfWkVSTygmcmVh ZGZkcyk7Ci0rCQkgIEZEX1NFVCgwLCAmcmVhZGZkcyk7Ci0rCQkgIHR2LnR2X3NlYyA9IGRlbGF5 OwotKwkJICB0di50dl91c2VjID0gMDsKLSsJCSAgaWYgKHNlbGVjdCgxLCAmcmVhZGZkcywgTlVM TCwgTlVMTCwgJnR2KSA+IDApIHsKLSsJCQkgIGlmIChyZWFkKDAsICZjLCAxKSAhPSAxKQotKwkJ CQkgIGJyZWFrOwotKwkJCSAgcGFyc2VfaW5wdXQoYyk7Ci0rCQkgIH0KLSsgICAgfQotIAl9IHdo aWxlIChkZWxheSk7Ci0gCi0gCXRjc2V0YXR0cigwLCBUQ1NBRkxVU0gsICZzYXZlZF90dHkpOwot IAlmcmVlX3NsYWJpbmZvKHNsYWJfbGlzdCk7Ci0tCWVuZHdpbigpOwotKwlpZiAoIXJ1bl9vbmNl KSBlbmR3aW4oKTsKLSAJcmV0dXJuIDA7Ci0gfQotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9w YXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDAyLWZyZWUuMS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMDItZnJlZS4xLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGJj YjBmLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDItZnJlZS4xLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLUZyb20gNWY0MTk1NGRiODRlYzQzMjA1 YjcxZjc5YTk4YzQ2ZDI0ZDU1Y2NhOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0 dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18z LjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFy IDIwMTAgMjE6NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAwMi83MF0gZnJlZS4xCi0KLS0t LQotIGZyZWUuMSB8ICAgNzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25z KCspLCAyOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2ZyZWUuMSBiL2ZyZWUuMQotaW5k ZXggOTU0YzhkOS4uY2FlMTI0MSAxMDA2NDQKLS0tLSBhL2ZyZWUuMQotKysrIGIvZnJlZS4xCi1A QCAtMSw0NyArMSw2NyBAQAotIC5cIiAgICAgICAgICAgICAtKi1Ocm9mZi0qLQotIC5cIiAgVGhp cyBwYWdlIENvcHlyaWdodCAoQykgMTk5MyBNYXR0IFdlbHNoLCBtZHdAc3Vuc2l0ZS51bmMuZWR1 LgotIC5cIiAgRnJlZWx5IGRpc3RyaWJ1dGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHUEwK LS0uVEggRlJFRSAxICIyMCBNYXIgMTk5MyAiICJDb2hlc2l2ZSBTeXN0ZW1zIiAiTGludXggVXNl cidzIE1hbnVhbCIKLSsuVEggRlJFRSAxICI1IE9jdCAyMDA5ICIgIkNvaGVzaXZlIFN5c3RlbXMi ICJMaW51eCBVc2VyJ3MgTWFudWFsIgotIC5TSCBOQU1FCi0gZnJlZSBcLSBEaXNwbGF5IGFtb3Vu dCBvZiBmcmVlIGFuZCB1c2VkIG1lbW9yeSBpbiB0aGUgc3lzdGVtCi0gLlNIIFNZTk9QU0lTCi0t LkJSICJmcmVlICIgWyAiXC1iIiAiIHwgIiAiXC1rIiAiIHwgIiAiXC1tIiAiXSBbIiAiXC1vIiAi XSBbIiAiXC1zIgotLS5JIGRlbGF5Ci0tLlJCICJdIFsiICJcLXQiICJdIFsiICJcLVYiIF0KLSsu QiBmcmVlCi0rLlJCIFsgXC1iIHwgXC1rIHwgXC1tIHwgXC1nIF0KLSsuUkIgWyBcLWMKLSsuSVIg Y291bnQgXQotKy5SQiBbIFwtbCBdCi0rLlJCIFsgXC1vIF0KLSsuUkIgWyBcLXQgXQotKy5SQiBb IFwtcwotKy5JUiBkZWxheSBdCi0rLlJCIFsgXC1WIF0KLSAuU0ggREVTQ1JJUFRJT04KLSBcZkJm cmVlXGZQIGRpc3BsYXlzIHRoZSB0b3RhbCBhbW91bnQgb2YgZnJlZSBhbmQgdXNlZCBwaHlzaWNh bCBhbmQgc3dhcCAKLSBtZW1vcnkgaW4gdGhlIHN5c3RlbSwgYXMgd2VsbCBhcyB0aGUgYnVmZmVy cyB1c2VkIGJ5IHRoZSBrZXJuZWwuCi0gVGhlIHNoYXJlZCBtZW1vcnkgY29sdW1uIHNob3VsZCBi ZSBpZ25vcmVkOyBpdCBpcyBvYnNvbGV0ZS4KLS0uU1MgT3B0aW9ucwotLVRoZSBcZkItYlxmUCBz d2l0Y2ggZGlzcGxheXMgdGhlIGFtb3VudCBvZiBtZW1vcnkgaW4gYnl0ZXM7IHRoZSAKLS1cZkIt a1xmUCBzd2l0Y2ggKHNldCBieSBkZWZhdWx0KSBkaXNwbGF5cyBpdCBpbiBraWxvYnl0ZXM7IHRo ZSBcZkItbVxmUAotLXN3aXRjaCBkaXNwbGF5cyBpdCBpbiBtZWdhYnl0ZXMuCi0tLlBQCi0tVGhl IFxmQi10XGZQIHN3aXRjaCBkaXNwbGF5cyBhIGxpbmUgY29udGFpbmluZyB0aGUgdG90YWxzLgot LS5QUAotLVRoZSBcZkItb1xmUCBzd2l0Y2ggZGlzYWJsZXMgdGhlIGRpc3BsYXkgb2YgYSAiYnVm ZmVyIGFkanVzdGVkIiBsaW5lLgotLUlmIHRoZSAtbyBvcHRpb24gaXMgbm90IHNwZWNpZmllZCwg XGZCZnJlZVxmUCBzdWJ0cmFjdHMgYnVmZmVyIG1lbW9yeQotLWZyb20gdGhlIHVzZWQgbWVtb3J5 IGFuZCBhZGRzIGl0IHRvIHRoZSBmcmVlIG1lbW9yeSByZXBvcnRlZC4KLS0uUFAKLS1UaGUgXGZC LXNcZlAgc3dpdGNoIGFjdGl2YXRlcyBjb250aW51b3VzIHBvbGxpbmcgXGZJZGVsYXlcZlAgc2Vj b25kcyBhcGFydC4gWW91Ci0rLlNTIE9QVElPTlMKLSsuVFAKLStcZkJcLWJcZlIKLStEaXNwbGF5 IHRoZSBhbW91bnQgb2YgbWVtb3J5IGluIGJ5dGVzLgotKy5UUAotK1xmQlwtY1xmUiBcZkljb3Vu dFxmUgotK0Rpc3BsYXkgdGhlIHJlc3VsdCBcZkljb3VudFxmUiB0aW1lcy4gIFJlcXVpcmVzIHRo ZSBcZkJcLXNcZlIgb3B0aW9uLgotKy5UUAotK1xmQlwtZ1xmUgotK0Rpc3BsYXkgdGhlIGFtb3Vu dCBvZiBtZW1vcnkgaW4gZ2lnYWJ5dGVzLgotKy5UUAotK1xmQlwta1xmUgotK0Rpc3BsYXkgdGhl IGFtb3VudCBvZiBtZW1vcnkgaW4ga2lsb2J5dGVzLiBUaGlzIGlzIHRoZSBkZWZhdWx0LgotKy5U UAotK1xmQlwtbFxmUgotK1Nob3cgZGV0YWlsZWQgbG93IGFuZCBoaWdoIG1lbW9yeSBzdGF0aXN0 aWNzLgotKy5UUAotK1xmQlwtbVxmUgotK0Rpc3BsYXkgdGhlIGFtb3VudCBvZiBtZW1vcnkgaW4g bWVnYWJ5dGVzLgotKy5UUAotK1xmQlwtb1xmUgotK0Rpc3BsYXkgdGhlIG91dHB1dCBpbiBvbGQg Zm9ybWF0LCB0aGUgb25seSBkaWZmZXJlbmNlIGJlaW5nIHRoaXMgb3B0aW9uCi0rd2lsbCBkaXNh YmxlIHRoZSBkaXNwbGF5IG9mIHRoZSAiYnVmZmVyIGFkanVzdGVkIiBsaW5lLgotKy5UUAotK1xm Qlwtc1xmUgotK0NvbnRpbnVvdXNseSBkaXNwbGF5IHRoZSByZXN1bHQgXGZJZGVsYXlcZlAgc2Vj b25kcyBhcGFydC4gWW91Ci0gbWF5IGFjdHVhbGx5IHNwZWNpZnkgYW55IGZsb2F0aW5nIHBvaW50 IG51bWJlciBmb3IgXGZJZGVsYXlcZlAsIAotIC5CUiB1c2xlZXAgKDMpCi0gaXMgdXNlZCBmb3Ig bWljcm9zZWNvbmQgcmVzb2x1dGlvbiBkZWxheSB0aW1lcy4KLS0uUFAKLS1UaGUgXGZCXC1WXGZQ IGRpc3BsYXlzIHZlcnNpb24gaW5mb3JtYXRpb24uCi0rLlRQCi0rXGZCXC10XGZSCi0rRGlzcGxh eSBhIGxpbmUgc2hvd2luZyB0aGUgY29sdW1uIHRvdGFscy4KLSsuVFAKLStcZkJcLVZcZlIKLStE aXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24uCi0gLlNIIEZJTEVTCi0tLnRhCi0tLklSIC9wcm9j L21lbWluZm8gIlwtXC0gbWVtb3J5IGluZm9ybWF0aW9uIgotKy5uZgotKy9wcm9jL21lbWluZm8g bWVtb3J5IGluZm9ybWF0aW9uCi0gLmZpCi0tCi0tLlNIICJTRUUgQUxTTyIKLS0uQlIgcHMgKDEp LAotLS5CUiBzbGFidG9wICgxKSwKLS0uQlIgdm1zdGF0ICg4KSwKLS0uQlIgdG9wKDEpCi0tCi0g LlNIIEFVVEhPUlMKLSBXcml0dGVuIGJ5IEJyaWFuIEVkbW9uZHMuIAotIAotIFNlbmQgYnVnIHJl cG9ydHMgdG8gPGFsYmVydEB1c2Vycy5zZi5uZXQ+Ci0tCi0rLlNIICJTRUUgQUxTTyIKLSsuQlIg cHMgIigxKSwgIiBzbGFidG9wICIoMSksICIgdG9wICIoMSksICIgdm1zdGF0ICg4KS4KLSsuXCJ7 e3t9fX0KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAw My1vdXRwdXRfc29ydF90aW1lLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwMy1vdXRw dXRfc29ydF90aW1lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWI0YzQ1 Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDMtb3V0cHV0X3NvcnRfdGlt ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi1Gcm9tIDQyZmQ4MTJiMWZk ZTJhYTNjMDVjZDY3MjgyZjdjZGZjZjhmN2U3YjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9w cm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmks IDE5IE1hciAyMDEwIDIxOjU4OjQ1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMDMvNzBdIG91dHB1 dF9zb3J0X3RpbWUKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gcHMvb3V0cHV0LmMgfCAgIDI5ICsrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHMvb3V0cHV0LmMgYi9wcy9vdXRw dXQuYwotaW5kZXggODdiZjlkZS4uYjRmYjNkZiAxMDA2NDQKLS0tLSBhL3BzL291dHB1dC5jCi0r KysgYi9wcy9vdXRwdXQuYwotQEAgLTExMCw2ICsxMTAsMjAgQEAgc3RhdGljIGludCBzcl8gIyMg TkFNRSAoY29uc3QgcHJvY190KiBQLCBjb25zdCBwcm9jX3QqIFEpIHsgXAotICAgICByZXR1cm4g KGludCkoUC0+TkFNRSkgLSAoaW50KShRLT5OQU1FKTsgXAotIH0KLSAKLSsjZGVmaW5lIGNvb2tf dGltZShQKSAoUC0+dXRpbWUgKyBQLT5zdGltZSkgLyBIZXJ0egotKwotKyNkZWZpbmUgY29va19l dGltZShQKSBzZWNvbmRzX3NpbmNlX2Jvb3QgLSAodW5zaWduZWQgbG9uZykoUC0+c3RhcnRfdGlt ZSAvIEhlcnR6KQotKwotKyNkZWZpbmUgQ01QX0NPT0tFRF9USU1FKE5BTUUpIFwKLStzdGF0aWMg aW50IHNyXyAjIyBOQU1FIChjb25zdCBwcm9jX3QqIFAsIGNvbnN0IHByb2NfdCogUSkgeyBcCi0r ICAgIHVuc2lnbmVkIGxvbmcgcF90aW1lLHFfdGltZTsgXAotKyAgICBwX3RpbWU9Y29va18gIyNO QU1FIChQKTsgXAotKyAgICBxX3RpbWU9Y29va18gIyNOQU1FIChRKTsgXAotKyAgICBpZiAocF90 aW1lIDwgcV90aW1lKSByZXR1cm4gLTE7IFwKLSsgICAgaWYgKHBfdGltZSA+IHFfdGltZSkgcmV0 dXJuIDE7IFwKLSsgICAgcmV0dXJuIDA7IFwKLSt9Ci0rCi0gQ01QX0lOVChydHByaW8pCi0gQ01Q X1NNQUxMKHNjaGVkKQotIENNUF9JTlQoY3V0aW1lKQotQEAgLTE4NSw2ICsxOTksOSBAQCBDTVBf U01BTEwocGNwdSkKLSAKLSBDTVBfU01BTEwoc3RhdGUpCi0gCi0rQ01QX0NPT0tFRF9USU1FKHRp bWUpCi0rQ01QX0NPT0tFRF9USU1FKGV0aW1lKQotKwotIC8qIGFwcHJveGltYXRpb24gdG86IGtC IG9mIGFkZHJlc3Mgc3BhY2UgdGhhdCBjb3VsZCBlbmQgdXAgaW4gc3dhcCAqLwotIHN0YXRpYyBp bnQgc3Jfc3dhcGFibGUoY29uc3QgcHJvY190KiBQLCBjb25zdCBwcm9jX3QqIFEpIHsKLSAgIHVu c2lnbmVkIGxvbmcgcF9zd2FwYWJsZSA9IFAtPnZtX2RhdGEgKyBQLT52bV9zdGFjazsKLUBAIC00 MDgsNyArNDI1LDcgQEAgc3RhdGljIGludCBwcl9ldGltZShjaGFyICpyZXN0cmljdCBjb25zdCBv dXRidWYsIGNvbnN0IHByb2NfdCAqcmVzdHJpY3QgY29uc3QgcHAKLSAgIHVuc2lnbmVkIGxvbmcg dDsKLSAgIHVuc2lnbmVkIGRkLGhoLG1tLHNzOwotICAgY2hhciAqY3AgPSBvdXRidWY7Ci0tICB0 ID0gc2Vjb25kc19zaW5jZV9ib290IC0gKHVuc2lnbmVkIGxvbmcpKHBwLT5zdGFydF90aW1lIC8g SGVydHopOwotKyAgdCA9IGNvb2tfZXRpbWUocHApOwotICAgc3MgPSB0JTYwOwotICAgdCAvPSA2 MDsKLSAgIG1tID0gdCU2MDsKLUBAIC00NzYsNyArNDkzLDcgQEAgc3RhdGljIGludCBwcl90aW1l KGNoYXIgKnJlc3RyaWN0IGNvbnN0IG91dGJ1ZiwgY29uc3QgcHJvY190ICpyZXN0cmljdCBjb25z dCBwcCkKLSAgIHVuc2lnbmVkIGxvbmcgdDsKLSAgIHVuc2lnbmVkIGRkLGhoLG1tLHNzOwotICAg aW50IGM7Ci0tICB0ID0gKHBwLT51dGltZSArIHBwLT5zdGltZSkgLyBIZXJ0ejsKLSsgIHQgPSBj b29rX3RpbWUocHApOwotICAgc3MgPSB0JTYwOwotICAgdCAvPSA2MDsKLSAgIG1tID0gdCU2MDsK LUBAIC0xMjg2LDcgKzEzMDMsNyBAQCBzdGF0aWMgY29uc3QgZm9ybWF0X3N0cnVjdCBmb3JtYXRf YXJyYXlbXSA9IHsKLSB7ImFsYXJtIiwgICAgICJBTEFSTSIsICAgcHJfYWxhcm0sICAgIHNyX2Fs YXJtLCAgIDUsICAgMCwgICAgTE5YLCBBTnxSSUdIVH0sCi0geyJhcmdjIiwgICAgICAiQVJHQyIs ICAgIHByX25vcCwgICAgICBzcl9ub3AsICAgICA0LCAgIDAsICAgIExOWCwgUE98UklHSFR9LAot IHsiYXJncyIsICAgICAgIkNPTU1BTkQiLCBwcl9hcmdzLCAgICAgc3JfY21kLCAgICAyNywgQVJH LCAgICBVOTgsIFBPfFVOTElNSVRFRH0sIC8qY29tbWFuZCovCi0teyJhdGltZSIsICAgICAiVElN RSIsICAgIHByX3RpbWUsICAgICBzcl9ub3AsICAgICA4LCAgIDAsICAgIFNPRSwgRVR8UklHSFR9 LCAvKmNwdXRpbWUqLyAvKiB3YXMgNiB3aWRlICovCi0reyJhdGltZSIsICAgICAiVElNRSIsICAg IHByX3RpbWUsICAgICBzcl90aW1lLCAgICAgOCwgICAwLCAgICBTT0UsIEVUfFJJR0hUfSwgLypj cHV0aW1lKi8gLyogd2FzIDYgd2lkZSAqLwotIHsiYmxvY2tlZCIsICAgIkJMT0NLRUQiLCBwcl9z aWdtYXNrLCAgc3Jfbm9wLCAgICAgOSwgICAwLCAgICBCU0QsIFRPfFNJR05BTH0sIC8qc2lnbWFz ayovCi0geyJibmQiLCAgICAgICAiQk5EIiwgICAgIHByX25vcCwgICAgICBzcl9ub3AsICAgICAx LCAgIDAsICAgIEFJWCwgVE98UklHSFR9LAotIHsiYnNkc3RhcnQiLCAgIlNUQVJUIiwgICBwcl9i c2RzdGFydCwgc3Jfbm9wLCAgICAgNiwgICAwLCAgICBMTlgsIEVUfFJJR0hUfSwKLUBAIC0xMzA1 LDcgKzEzMjIsNyBAQCBzdGF0aWMgY29uc3QgZm9ybWF0X3N0cnVjdCBmb3JtYXRfYXJyYXlbXSA9 IHsKLSB7ImNwIiwgICAgICAgICJDUCIsICAgICAgcHJfY3AsICAgICAgIHNyX3BjcHUsICAgIDMs ICAgMCwgICAgREVDLCBFVHxSSUdIVH0sIC8qY3B1Ki8KLSB7ImNwdSIsICAgICAgICJDUFUiLCAg ICAgcHJfbm9wLCAgICAgIHNyX25vcCwgICAgIDMsICAgMCwgICAgQlNELCBBTnxSSUdIVH0sIC8q IEZJWE1FIC4uLiBIUC1VWCB3YW50cyB0aGlzIGFzIHRoZSBDUFUgbnVtYmVyIGZvciBTTVA/ICov Ci0geyJjcHVpZCIsICAgICAiQ1BVSUQiLCAgIHByX3BzciwgICAgICBzcl9ub3AsICAgICA1LCAg IDAsICAgIEJTRCwgVE98UklHSFR9LCAvLyBPcGVuQlNEOiA4IHdpZGUhCi0teyJjcHV0aW1lIiwg ICAiVElNRSIsICAgIHByX3RpbWUsICAgICBzcl9ub3AsICAgICA4LCAgIDAsICAgIERFQywgRVR8 UklHSFR9LCAvKnRpbWUqLwotK3siY3B1dGltZSIsICAgIlRJTUUiLCAgICBwcl90aW1lLCAgICAg c3JfdGltZSwgICAgIDgsICAgMCwgICAgREVDLCBFVHxSSUdIVH0sIC8qdGltZSovCi0geyJjc3Rp bWUiLCAgICAiLSIsICAgICAgIHByX25vcCwgICAgICBzcl9jc3RpbWUsICAxLCAgIDAsICAgIExO WCwgQU58UklHSFR9LAotIHsiY3RpZCIsICAgICAgIkNUSUQiLCAgICBwcl9ub3AsICAgICAgc3Jf bm9wLCAgICAgNSwgICAwLCAgICBTVU4sIEVUfFJJR0hUfSwgLy8gcmVzb3VyY2UgY29udHJhY3Rz PwotIHsiY3Vyc2lnIiwgICAgIkNVUlNJRyIsICBwcl9ub3AsICAgICAgc3Jfbm9wLCAgICAgNiwg ICAwLCAgICBERUMsIEFOfFJJR0hUfSwKLUBAIC0xMzIwLDcgKzEzMzcsNyBAQCBzdGF0aWMgY29u c3QgZm9ybWF0X3N0cnVjdCBmb3JtYXRfYXJyYXlbXSA9IHsKLSB7ImVuZF9jb2RlIiwgICJFX0NP REUiLCAgcHJfbm9wLCAgICAgIHNyX2VuZF9jb2RlLCA4LCAgMCwgICAgTE54LCBQT3xSSUdIVH0s Ci0geyJlbnZpcm9uIiwiRU5WSVJPTk1FTlQiLHByX25vcCwgICAgICBzcl9ub3AsICAgIDExLCBF TlYsICAgIExOeCwgUE98VU5MSU1JVEVEfSwKLSB7ImVzcCIsICAgICAgICJFU1AiLCAgICAgcHJf ZXNwLCAgICAgIHNyX2tzdGtfZXNwLCA4LCAgMCwgICAgTE5YLCBUT3xSSUdIVH0sCi0teyJldGlt ZSIsICAgICAiRUxBUFNFRCIsIHByX2V0aW1lLCAgICBzcl9ub3AsICAgIDExLCAgIDAsICAgIFU5 OCwgRVR8UklHSFR9LCAvKiB3YXMgNyB3aWRlICovCi0reyJldGltZSIsICAgICAiRUxBUFNFRCIs IHByX2V0aW1lLCAgICBzcl9ldGltZSwgICAgMTEsICAgMCwgICAgVTk4LCBFVHxSSUdIVH0sIC8q IHdhcyA3IHdpZGUgKi8KLSB7ImV1aWQiLCAgICAgICJFVUlEIiwgICAgcHJfZXVpZCwgICAgIHNy X2V1aWQsICAgIDUsICAgMCwgICAgTE5YLCBFVHxSSUdIVH0sCi0geyJldXNlciIsICAgICAiRVVT RVIiLCAgIHByX2V1c2VyLCAgICBzcl9ldXNlciwgICA4LCBVU1IsICAgIExOWCwgRVR8VVNFUn0s Ci0geyJmIiwgICAgICAgICAiRiIsICAgICAgIHByX2ZsYWcsICAgICBzcl9mbGFncywgICAxLCAg IDAsICAgIFhYWCwgRVR8UklHSFR9LCAvKmZsYWdzKi8KLUBAIC0xNDYzLDcgKzE0ODAsNyBAQCBz dGF0aWMgY29uc3QgZm9ybWF0X3N0cnVjdCBmb3JtYXRfYXJyYXlbXSA9IHsKLSB7InRkZXYiLCAg ICAgICJUREVWIiwgICAgcHJfbm9wLCAgICAgIHNyX25vcCwgICAgIDQsICAgMCwgICAgWFhYLCBB TnxSSUdIVH0sCi0geyJ0aGNvdW50IiwgICAiVEhDTlQiLCAgIHByX25sd3AsICAgICBzcl9ubHdw LCAgICA1LCAgIDAsICAgIEFJWCwgUE98UklHSFR9LAotIHsidGlkIiwgICAgICAgIlRJRCIsICAg ICBwcl90aHJlYWQsICAgc3JfdGlkLCAgICAgNSwgICAwLCAgICBBSVgsIFRPfFBJRE1BWHxSSUdI VH0sCi0teyJ0aW1lIiwgICAgICAiVElNRSIsICAgIHByX3RpbWUsICAgICBzcl9ub3AsICAgICA4 LCAgIDAsICAgIFU5OCwgRVR8UklHSFR9LCAvKmNwdXRpbWUqLyAvKiB3YXMgNiB3aWRlICovCi0r eyJ0aW1lIiwgICAgICAiVElNRSIsICAgIHByX3RpbWUsICAgICBzcl90aW1lLCAgICAgOCwgICAw LCAgICBVOTgsIEVUfFJJR0hUfSwgLypjcHV0aW1lKi8gLyogd2FzIDYgd2lkZSAqLwotIHsidGlt ZW91dCIsICAgIlRNT1VUIiwgICBwcl9ub3AsICAgICAgc3Jfbm9wLCAgICAgNSwgICAwLCAgICBM TlgsIEFOfFJJR0hUfSwgLy8gMi4wLnh4IGVyYQotIHsidG1vdXQiLCAgICAgIlRNT1VUIiwgICBw cl9ub3AsICAgICAgc3Jfbm9wLCAgICAgNSwgICAwLCAgICBMTlgsIEFOfFJJR0hUfSwgLy8gMi4w Lnh4IGVyYQotIHsidG5hbWUiLCAgICAgIlRUWSIsICAgICBwcl90dHk4LCAgICAgc3JfdHR5LCAg ICAgOCwgICAwLCAgICBERUMsIFBPfExFRlR9LAotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9w YXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA0LXBtYXAuMS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMDQtcG1hcC4xLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDdm MWM0Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDQtcG1hcC4xLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotRnJvbSAyZGM1MmY3ZThjZDI3Nzk1MDRi OWQyZDM2MWMyNTE0NDY5NWU2NWI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0 cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMu Mi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIg MjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENIIDA0LzcwXSBwbWFwLjEKLQotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tCi0gcG1hcC4xIHwgICAyNCArKysrKysrKysrKysrKy0tLS0tLS0tLS0KLSAx IGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvcG1hcC4xIGIvcG1hcC4xCi1pbmRleCBhOTFkMGU4Li5kZTAzZTg3IDEwMDY0NAot LS0tIGEvcG1hcC4xCi0rKysgYi9wbWFwLjEKLUBAIC0xMCwyNSArMTAsMjkgQEAKLSBwbWFwIFwt IHJlcG9ydCBtZW1vcnkgbWFwIG9mIGEgcHJvY2VzcwotIAotIC5TSCBTWU5PUFNJUwotLS5uZgot LXBtYXAgWyAteCB8IC1kIF0gWyAtcSBdIHBpZHMuLi4KLS1wbWFwIC1WCi0tLmZpCi0rLkIgcG1h cAotKy5SQiBbIFwteCB8IFwtZCBdCi0rLlJCIFsgXC1xIF0KLSsuSSBwaWQKLStcJiAuLi4KLSsu YnIKLSsuQiBwbWFwIFwtVgotIAotIC5TSCBERVNDUklQVElPTgotIFRoZSBwbWFwIGNvbW1hbmQg cmVwb3J0cyB0aGUgbWVtb3J5IG1hcCBvZiBhIHByb2Nlc3Mgb3IgcHJvY2Vzc2VzLgotIAotIC5T SCAiR0VORVJBTCBPUFRJT05TIgotIC5UUwotLWwgbCBsLgotLS14CWV4dGVuZGVkCVNob3cgdGhl IGV4dGVuZGVkIGZvcm1hdC4KLS0tZAlkZXZpY2UJU2hvdyB0aGUgZGV2aWNlIGZvcm1hdC4KLS0t cQlxdWlldAlEbyBub3QgZGlzcGxheSBzb21lIGhlYWRlci9mb290ZXIgbGluZXMuCi0tLVYJc2hv dyB2ZXJzaW9uCURpc3BsYXlzIHZlcnNpb24gb2YgcHJvZ3JhbS4KLStsQiBsIGwuCi0rXC14CWV4 dGVuZGVkCVNob3cgdGhlIGV4dGVuZGVkIGZvcm1hdC4KLStcLWQJZGV2aWNlCVNob3cgdGhlIGRl dmljZSBmb3JtYXQuCi0rXC1xCXF1aWV0CURvIG5vdCBkaXNwbGF5IHNvbWUgaGVhZGVyL2Zvb3Rl ciBsaW5lcy4KLStcLVYJc2hvdyB2ZXJzaW9uCURpc3BsYXlzIHZlcnNpb24gb2YgcHJvZ3JhbS4K LSAuVEUKLSAKLSAuU0ggIlNFRSBBTFNPIgotLXBzKDEpIHBncmVwKDEpCi0rLkJSIHBzKDEpLAot Ky5CUiBwZ3JlcCgxKQotIAotIC5TSCBTVEFOREFSRFMKLSBObyBzdGFuZGFyZHMgYXBwbHksIGJ1 dCBwbWFwIGxvb2tzIGFuIGF3ZnVsIGxvdCBsaWtlIGEgU3VuT1MgY29tbWFuZC4KLS0tIAotMS43 LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNS0xMF9wcy4xLnBhdGNo IGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNS0xMF9wcy4xLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA2Y2MzNjU3Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMDUtMTBfcHMuMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLUZy b20gYmMyMGZiZmZkOWZkN2Y5NGVmMDJhZDU3MGRkNjk3YzRiNmI3NWExNiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9t YWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9y Zz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQQVRD SCAwNS83MF0gMTBfcHMuMQotCi1wcmkgZmllbGQgZXhwbGFpbmVkCi0tLW5vLWhlYWRpbmcgY29t bWVudCBpcyBhbiBhbGlhcyBmb3IgLS1uby1oZWFkZXJzCi1SZW1vdmVkIHNldHByb2N0aXRsZSgx KSByZWZlcmVuY2UKLUJ1Zy1EZWJpYW46IGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvNDY1NzYxCi1C dWctRGViaWFuOiBodHRwOi8vYnVncy5kZWJpYW4ub3JnLzUyOTA0NQotLS0tCi0gcHMvcHMuMSB8 ICAgMTcgKysrKysrKystLS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3BzL3BzLjEgYi9wcy9wcy4xCi1pbmRl eCA2NDk1M2Q1Li4wZjg5NmJmIDEwMDY0NAotLS0tIGEvcHMvcHMuMQotKysrIGIvcHMvcHMuMQot QEAgLTE4LDE5ICsxOCwxMyBAQAotIC5uaAotIC5pZiBuIC5zcyAxMiAwCi0gLlwiCi0tLlwiIFNl ZSAvdXNyL3NoYXJlL2dyb2ZmL2N1cnJlbnQvdG1hYy9hbi1vbGQudG1hYyBmb3Igd2hhdCB0aGVz ZSBkby4KLS0uXCIgU2V0dGluZyB0aGVtIHRvIHplcm8gcHJvdmlkZXMgZXh0cmEgc3BhY2UsIGJ1 dCBvbmx5IGRvIHRoYXQgZm9yCi0tLlwiIHBsYWluIHRleHQgb3V0cHV0LiBQb3N0U2NyaXB0IGFu ZCBzdWNoIHdpbGwgcmVtYWluIGluZGVudGVkLgotLS5pZiBuIC5uciBJTiAwbgotLS5pZiBuIC5u ciBhbi1wcmV2YWlsaW5nLWluZGVudCAwbgotLS5cIgotIC5cIgotIC5cIiBDb2xTaXplIGlzIHVz ZWQgZm9yIHRoZSBmb3JtYXQgc3BlYyB0YWJsZS4KLSAuXCIgSXQncyB0aGUgbGVmdCBtYXJnaW4s IG1pbnVzIHRoZSByaWdodCwgbWludXMKLSAuXCIgdGhlIHNwYWNlIG5lZWRlZCBmb3IgdGhlIDFz dCB0d28gY29sdW1ucy4KLSAuXCIgTWFraW5nIGl0IG1lc3N5OiBpbmNoZXMsIGVucywgcG9pbnRz LCBzY2FsZWQgcG9pbnRzLi4uCi0gLlwiCi0tLm5yIENvbFNpemUgKChcbigubHUtXG4oLml1L1xu KC5IdS0yMHUpbikKLSsubnIgQ29sU2l6ZSAoKFxuKC5sdS1cbiguaXUvXG4oLkh1LTI2dSluKQot IC5cIgotIC5cIiBUaGlzIGlzIGZvciBjb21tYW5kIG9wdGlvbnMKLSAubnIgT3B0U2l6ZSAoMTZ1 KQotQEAgLTQ5OSw3ICs0OTMsNyBAQCBwYXJlbnQgcHJvY2VzcyByZXBlYXRlZGx5IGZvcmtzIG9m ZiBzaG9ydFwtbGl2ZWQgY2hpbGRyZW4gdG8gZG8gd29yay4KLSAub3B0IGMKLSBTaG93IHRoZSB0 cnVlIGNvbW1hbmQgbmFtZS4gVGhpcyBpcyBkZXJpdmVkIGZyb20gdGhlIG5hbWUgb2YgdGhlCi0g ZXhlY3V0YWJsZSBmaWxlLCByYXRoZXIgdGhhbiBmcm9tIHRoZSBhcmd2IHZhbHVlLiBDb21tYW5k IGFyZ3VtZW50cwotLWFuZCBhbnkgbW9kaWZpY2F0aW9ucyB0byB0aGVtIChzZWVcIFxmSXNldHBy b2N0aXRsZVxmUigzKSkgYXJlCi0rYW5kIGFueSBtb2RpZmljYXRpb25zIHRvIHRoZW0gIGFyZQot IHRodXMgbm90IHNob3duLiBUaGlzIG9wdGlvbgotIGVmZmVjdGl2ZWx5IHR1cm5zIHRoZSBcZkJh cmdzXGZSIGZvcm1hdCBrZXl3b3JkIGludG8gdGhlIFxmQmNvbW1cZlIKLSBmb3JtYXQga2V5d29y ZDsgaXQgaXMgdXNlZnVsIHdpdGggdGhlIFxmQlwtZlxmUiBmb3JtYXQgb3B0aW9uIGFuZCB3aXRo Ci1AQCAtNTg4LDcgKzU4Miw4IEBAIEFTQ0lJIGFydCBwcm9jZXNzIHRyZWUKLSByZXBlYXQgaGVh ZGVyIGxpbmVzLCBvbmUgcGVyIHBhZ2Ugb2Ygb3V0cHV0Ci0gCi0gLm9wdCBcLVwtbm9cLWhlYWRl cnMKLS1wcmludCBubyBoZWFkZXIgbGluZSBhdCBhbGwKLStwcmludCBubyBoZWFkZXIgbGluZSBh dCBhbGwuIFwtXC1ub1wtaGVhZGluZyBpcyBhbiBhbGlhcyBmb3IgdGhpcwotK29wdGlvbi4KLSAK LSAub3B0IFwtXC1saW5lcyBcIG4KLSBzZXQgc2NyZWVuIGhlaWdodAotQEAgLTExNTksNiArMTE1 NCwxMCBAQCBwcGlkCVBQSUQJVHsKLSBwYXJlbnQgcHJvY2VzcyBJRC4KLSBUfQotIAotK3ByaQlQ UkkJVHsKLStwcmlvcml0eSBvZiB0aGUgcHJvY2Vzcy4gSGlnaGVyIG51bWJlciBtZWFucyBsb3dl ciBwcmlvcml0eQotK1R9Ci0rCi0gcHNyCVBTUglUewotIHByb2Nlc3NvciB0aGF0IHByb2Nlc3Mg aXMgY3VycmVudGx5IGFzc2lnbmVkIHRvLgotIFR9Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBh L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDYtc2tpbGwuMS5wYXRjaCBiL3BhdGNoZXMvcHJvY3Bz LTMuMi44LzAwMDYtc2tpbGwuMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg Mzg5NmU1Yi4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA2LXNraWxsLjEu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUgKzAsMCBAQAotRnJvbSAyNWU5N2Y2MjBkMDlh NzA0MzA1YmQ0MjA0MmY2OWI3NmM1OGNkNjRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJv Y3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAx OSBNYXIgMjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENIIDA2LzcwXSBza2lsbC4x Ci0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLQotIHNraWxsLjEgfCAgIDYzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hh bmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9z a2lsbC4xIGIvc2tpbGwuMQotaW5kZXggYTRmYzI3NC4uYTU2Yjk2OSAxMDA2NDQKLS0tLSBhL3Nr aWxsLjEKLSsrKyBiL3NraWxsLjEKLUBAIC0xMSwzNyArMTEsMzggQEAKLSBza2lsbCwgc25pY2Ug XC0gc2VuZCBhIHNpZ25hbCBvciByZXBvcnQgcHJvY2VzcyBzdGF0dXMKLSAKLSAuU0ggU1lOT1BT SVMKLS0ubmYKLS1za2lsbCBbc2lnbmFsIHRvIHNlbmRdIFtvcHRpb25zXSBwcm9jZXNzIHNlbGVj dGlvbiBjcml0ZXJpYQotLXNuaWNlIFtuZXcgcHJpb3JpdHldIFtvcHRpb25zXSBwcm9jZXNzIHNl bGVjdGlvbiBjcml0ZXJpYQotLS5maQotKy5CIHNraWxsCi0rLlJJIFsgInNpZ25hbCB0byBzZW5k IiBdCi0rLlJJIFsgb3B0aW9ucyBdCi0rLkkgcHJvY2VzcyBzZWxlY3Rpb24gY3JpdGVyaWEKLSsu YnIKLSsuQiBzbmljZQotKy5SSSBbICJuZXcgcHJpb3JpdHkiIF0KLSsuUkkgWyBvcHRpb25zIF0K LSsuSSBwcm9jZXNzIHNlbGVjdGlvbiBjcml0ZXJpYQotIAotIC5TSCBERVNDUklQVElPTgotIFRo ZXNlIHRvb2xzIGFyZSBwcm9iYWJseSBvYnNvbGV0ZSBhbmQgdW5wb3J0YWJsZS4gVGhlIGNvbW1h bmQKLSBzeW50YXggaXMgcG9vcmx5IGRlZmluZWQuIENvbnNpZGVyIHVzaW5nIHRoZSBraWxsYWxs LCBwa2lsbCwKLSBhbmQgcGdyZXAgY29tbWFuZHMgaW5zdGVhZC4KLSAKLS1UaGUgZGVmYXVsdCBz aWduYWwgZm9yIHNraWxsIGlzIFRFUk0uIFVzZSAtbCBvciAtTCB0byBsaXN0IGF2YWlsYWJsZSBz aWduYWxzLgotK1RoZSBkZWZhdWx0IHNpZ25hbCBmb3Igc2tpbGwgaXMgVEVSTS4gVXNlIFwtbCBv ciBcLUwgdG8gbGlzdCBhdmFpbGFibGUgc2lnbmFscy4KLSBQYXJ0aWN1bGFybHkgdXNlZnVsIHNp Z25hbHMgaW5jbHVkZSBIVVAsIElOVCwgS0lMTCwgU1RPUCwgQ09OVCwgYW5kIDAuCi0tQWx0ZXJu YXRlIHNpZ25hbHMgbWF5IGJlIHNwZWNpZmllZCBpbiB0aHJlZSB3YXlzOiAtOSAtU0lHS0lMTCAt S0lMTC4KLStBbHRlcm5hdGUgc2lnbmFscyBtYXkgYmUgc3BlY2lmaWVkIGluIHRocmVlIHdheXM6 IFwtOSBcLVNJR0tJTEwgXC1LSUxMLgotIAotIFRoZSBkZWZhdWx0IHByaW9yaXR5IGZvciBzbmlj ZSBpcyArNC4gKHNuaWNlICs0IC4uLikKLS1Qcmlvcml0eSBudW1iZXJzIHJhbmdlIGZyb20gKzIw IChzbG93ZXN0KSB0byAtMjAgKGZhc3Rlc3QpLgotK1ByaW9yaXR5IG51bWJlcnMgcmFuZ2UgZnJv bSArMjAgKHNsb3dlc3QpIHRvIFwtMjAgKGZhc3Rlc3QpLgotIE5lZ2F0aXZlIHByaW9yaXR5IG51 bWJlcnMgYXJlIHJlc3RyaWN0ZWQgdG8gYWRtaW5pc3RyYXRpdmUgdXNlcnMuCi0gCi0gLlNIICJH RU5FUkFMIE9QVElPTlMiCi0gLlRTCi0tbCBsIGwuCi0tLWYJZmFzdCBtb2RlCVRoaXMgaXMgbm90 IGN1cnJlbnRseSB1c2VmdWwuCi0tLWkJaW50ZXJhY3RpdmUgdXNlCVR7Ci0tWW91IHdpbGwgYmUg YXNrZWQgdG8gYXBwcm92ZSBlYWNoIGFjdGlvbi4KLS1UfQotLS12CXZlcmJvc2Ugb3V0cHV0CVR7 Ci0tRGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBzZWxlY3RlZCBwcm9jZXNzZXMuCi0tVH0KLS0t dwl3YXJuaW5ncyBlbmFibGVkCVRoaXMgaXMgbm90IGN1cnJlbnRseSB1c2VmdWwuCi0tLW4Jbm8g YWN0aW9uCVRoaXMgb25seSBkaXNwbGF5cyB0aGUgcHJvY2VzcyBJRC4KLS0tVglzaG93IHZlcnNp b24JRGlzcGxheXMgdmVyc2lvbiBvZiBwcm9ncmFtLgotK2xCIGwgbC4KLStcLWYJZmFzdCBtb2Rl CVRoaXMgaXMgbm90IGN1cnJlbnRseSB1c2VmdWwuCi0rXC1pCWludGVyYWN0aXZlIHVzZQlZb3Ug d2lsbCBiZSBhc2tlZCB0byBhcHByb3ZlIGVhY2ggYWN0aW9uLgotK1wtdgl2ZXJib3NlIG91dHB1 dAlEaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHNlbGVjdGVkIHByb2Nlc3Nlcy4KLStcLXcJd2Fy bmluZ3MgZW5hYmxlZAlUaGlzIGlzIG5vdCBjdXJyZW50bHkgdXNlZnVsLgotK1wtbglubyBhY3Rp b24JVGhpcyBvbmx5IGRpc3BsYXlzIHRoZSBwcm9jZXNzIElELgotK1wtVglzaG93IHZlcnNpb24J RGlzcGxheXMgdmVyc2lvbiBvZiBwcm9ncmFtLgotIC5URQotIAotIC5TSCAiUFJPQ0VTUyBTRUxF Q1RJT04gT1BUSU9OUyIKLUBAIC00OSwxMSArNTAsMTEgQEAgU2VsZWN0aW9uIGNyaXRlcmlhIGNh biBiZTogdGVybWluYWwsIHVzZXIsIHBpZCwgY29tbWFuZC4KLSBUaGUgb3B0aW9ucyBiZWxvdyBt YXkgYmUgdXNlZCB0byBlbnN1cmUgY29ycmVjdCBpbnRlcnByZXRhdGlvbi4KLSBEbyBub3QgYmxh bWUgQWxiZXJ0IGZvciB0aGlzIGludGVyZXN0aW5nIGludGVyZmFjZS4KLSAuVFMKLS1sIGwuCi0t LXQJVGhlIG5leHQgYXJndW1lbnQgaXMgYSB0ZXJtaW5hbCAodHR5IG9yIHB0eSkuCi0tLXUJVGhl IG5leHQgYXJndW1lbnQgaXMgYSB1c2VybmFtZS4KLS0tcAlUaGUgbmV4dCBhcmd1bWVudCBpcyBh IHByb2Nlc3MgSUQgbnVtYmVyLgotLS1jCVRoZSBuZXh0IGFyZ3VtZW50IGlzIGEgY29tbWFuZCBu YW1lLgotK2xCIGwuCi0rXC10CVRoZSBuZXh0IGFyZ3VtZW50IGlzIGEgdGVybWluYWwgKHR0eSBv ciBwdHkpLgotK1wtdQlUaGUgbmV4dCBhcmd1bWVudCBpcyBhIHVzZXJuYW1lLgotK1wtcAlUaGUg bmV4dCBhcmd1bWVudCBpcyBhIHByb2Nlc3MgSUQgbnVtYmVyLgotK1wtYwlUaGUgbmV4dCBhcmd1 bWVudCBpcyBhIGNvbW1hbmQgbmFtZS4KLSAuVEUKLSAKLSAuU0ggU0lHTkFMUwotQEAgLTYzLDcg KzY0LDYgQEAgV2hlbiBrbm93biwgbnVtYmVycyBhbmQgZGVmYXVsdCBiZWhhdmlvciBhcmUgc2hv d24uCi0gbEIgckIgbEIgbEIKLSBsZkNXIHIgbCBsLgotIE5hbWUJTnVtCUFjdGlvbglEZXNjcmlw dGlvbgotLS5USAotIDAJMAluL2EJZXhpdCBjb2RlIGluZGljYXRlcyBpZiBhIHNpZ25hbCBtYXkg YmUgc2VudAotIEFMUk0JMTQJZXhpdAotIEhVUAkxCWV4aXQKLUBAIC0xMDQsMTUgKzEwNCwyMCBA QCBYRlNaCQljb3JlCWNvcmUgZHVtcCBtYXkgZmFpbAotIGxCIGxCCi0gbGZDVyBsLgotIENvbW1h bmQJRGVzY3JpcHRpb24KLS0uVEMKLSBzbmljZSBzZXRpIGNyYWNrICs3CVNsb3cgZG93biBzZXRp IGFuZCBjcmFjawotLXNraWxsIC1LSUxMIC12IC9kZXYvcHRzLyoJS2lsbCB1c2VycyBvbiBuZXct c3R5bGUgUFRZIGRldmljZXMKLS1za2lsbCAtU1RPUCB2aXJvIGxtIGRhdmVtCVN0b3AgMyB1c2Vy cwotLXNuaWNlIC0xNyByb290IGJhc2gJR2l2ZSBwcmlvcml0eSB0byByb290J3Mgc2hlbGwKLStz a2lsbCBcLUtJTEwgXC12IC9kZXYvcHRzLyoJS2lsbCB1c2VycyBvbiBuZXctc3R5bGUgUFRZIGRl dmljZXMKLStza2lsbCBcLVNUT1AgdmlybyBsbSBkYXZlbQlTdG9wIDMgdXNlcnMKLStzbmljZSBc LTE3IHJvb3QgYmFzaAlHaXZlIHByaW9yaXR5IHRvIHJvb3QncyBzaGVsbAotIC5URQotIAotIC5T SCAiU0VFIEFMU08iCi0ta2lsbGFsbCgxKSBwa2lsbCgxKSBraWxsKDEpIHJlbmljZSgxKSBuaWNl KDEpIHNpZ25hbCg3KSBraWxsKDIpCi0rLkJSIGtpbGxhbGwgKDEpLAotKy5CUiBwa2lsbCAoMSks Ci0rLkJSIGtpbGwgKDEpLAotKy5CUiByZW5pY2UgKDEpLAotKy5CUiBuaWNlKDEpLAotKy5CUiBr aWxsKDIpLAotKy5CUiBzaWduYWwoNykKLSAKLSAuU0ggU1RBTkRBUkRTCi0gTm8gc3RhbmRhcmRz IGFwcGx5LgotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDA3LXNraWxsX3BlcnJvci5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDctc2tpbGxf cGVycm9yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzhjYTJiLi4wMDAw MDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDctc2tpbGxfcGVycm9yLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotRnJvbSA2ODAzMjg3OTg4MDhiM2Q3MjAxMzQx YTYzZTAwYzg5ZTlkMWJkYjFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDov L2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44 LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAx MCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENIIDA3LzcwXSBza2lsbF9wZXJyb3IKLQot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tCi0gc2tpbGwuYyB8ICAgIDEgKwotIDEgZmlsZXMgY2hhbmdlZCwgMSBp bnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc2tpbGwuYyBiL3Nr aWxsLmMKLWluZGV4IDk2Y2MzODYuLjU0ZDRjNDggMTAwNjQ0Ci0tLS0gYS9za2lsbC5jCi0rKysg Yi9za2lsbC5jCi1AQCAtMzE3LDYgKzMxNyw3IEBAIG5vX21vcmVfYXJnczoKLSAgICAgICAvLyBU aGUgc3RhbmRhcmQgc2F5cyB3ZSByZXR1cm4gbm9uLXplcm8gaWYgYW4gZXJyb3Igb2NjdXJzLiBU aHVzIGlmCi0gICAgICAgLy8ga2lsbGluZyB0d28gcHJvY2Vzc2VzIGdpdmVzIDAgZm9yIG9uZSBh bmQgRVBFUk0gZm9yIHRoZSBvdGhlciwKLSAgICAgICAvLyB3ZSBhcmUgcmVxdWlyZWQgdG8gcmV0 dXJuIGJvdGggemVybyBhbmQgbm9uLXplcm8uIFF1YW50dW0ga2lsbD8/PwotKyAgICAgIHBlcnJv cigia2lsbCIpOwotICAgICAgIGV4aXR2YWx1ZSA9IDE7Ci0gICAgICAgY29udGludWU7Ci0gICAg IH0KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwOC1z bGFidG9wXzEucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA4LXNsYWJ0b3BfMS5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2MjQ5Mi4uMDAwMDAwMAotLS0gYS9w YXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA4LXNsYWJ0b3BfMS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDEwNiArMCwwIEBACi1Gcm9tIDE5MDA2NDFjOTk2NjAzMmFjNzkxYmZiNTNmMDQ1YzVjMjk4 YjZkMzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlh bi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFy Lmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ1ICsw MTAwCi1TdWJqZWN0OiBbUEFUQ0ggMDgvNzBdIHNsYWJ0b3BfMQotCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0K LSBzbGFidG9wLjEgfCAgIDM1ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCi0g MSBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3NsYWJ0b3AuMSBiL3NsYWJ0b3AuMQotaW5kZXggMTFmMjc3ZS4uN2UyNzk4MCAx MDA2NDQKLS0tLSBhL3NsYWJ0b3AuMQotKysrIGIvc2xhYnRvcC4xCi1AQCAtNywzNiArNywzOSBA QAotIHNsYWJ0b3AgXC0gZGlzcGxheSBrZXJuZWwgc2xhYiBjYWNoZSBpbmZvcm1hdGlvbiBpbiBy ZWFsIHRpbWUKLSAKLSAuU0ggU1lOT1BTSVMKLS0uQkkgInNsYWJ0b3AgWyAiIG9wdGlvbnMgIiBd ICIKLSsuQiBzbGFidG9wCi0rLlJJIFsgb3B0aW9ucyBdCi0gCi0gLlNIIERFU0NSSVBUSU9OCi0t LkJSIHNsYWJ0b3AgKDEpCi0rLkIgc2xhYnRvcAotIGRpc3BsYXlzIGRldGFpbGVkIGtlcm5lbCBz bGFiIGNhY2hlIGluZm9ybWF0aW9uIGluIHJlYWwgdGltZS4gIEl0IGRpc3BsYXlzIGEKLSBsaXN0 aW5nIG9mIHRoZSB0b3AgY2FjaGVzIHNvcnRlZCBieSBvbmUgb2YgdGhlIGxpc3RlZCBzb3J0IGNy aXRlcmlhLiAgSXQgYWxzbwotIGRpc3BsYXlzIGEgc3RhdGlzdGljcyBoZWFkZXIgZmlsbGVkIHdp dGggc2xhYiBsYXllciBpbmZvcm1hdGlvbi4KLSAKLSAuU0ggT1BUSU9OUwotIE5vcm1hbCBpbnZv Y2F0aW9uIG9mIAotLS5CUiBzbGFidG9wICgxKQotKy5CIHNsYWJ0b3AKLSBkb2VzIG5vdCByZXF1 aXJlIGFueSBvcHRpb25zLiAgVGhlIGJlaGF2aW9yLCBob3dldmVyLCBjYW4gYmUgZmluZS10dW5l ZCBieQotIHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBmbGFnczoKLSAu VFAKLS0uQiBcLVxeXC1kZWxheT1uLCBcLWQgbgotLVJlZnJlc2ggdGhlIGRpc3BsYXkgZXZlcnkg biBzZWNvbmRzLiAgQnkgZGVmYXVsdCwKLS0uQlIgc2xhYnRvcCAoMSkKLSsuQiBcLVwtZGVsYXk9 XGZJblxmUiwgXGZCXC1kIFxmSW4KLStSZWZyZXNoIHRoZSBkaXNwbGF5IGV2ZXJ5Ci0rLkkgbgot K2luIHNlY29uZHMuICBCeSBkZWZhdWx0LAotKy5CIHNsYWJ0b3AKLSByZWZyZXNoZXMgdGhlIGRp c3BsYXkgZXZlcnkgdGhyZWUgc2Vjb25kcy4gIFRvIGV4aXQgdGhlIHByb2dyYW0sIGhpdAotIC5C UiBxLgotIC5UUAotLS5CIFwtXF5cLXNvcnQ9UywgXC1zIFMKLS1Tb3J0IGJ5IFMsIHdoZXJlIFMg aXMgb25lIG9mIHRoZSBzb3J0IGNyaXRlcmlhLgotKy5CIFwtXC1zb3J0PVxmSVNcZlIsIFxmQlwt c1xmUiBcZklTCi0rU29ydCBieSBcZklTXGZSLCB3aGVyZSBcZklTXGZSIGlzIG9uZSBvZiB0aGUg c29ydCBjcml0ZXJpYS4KLSAuVFAKLS0uQiBcLVxeXC1vbmNlLCBcLW8KLSsuQiBcLVwtb25jZVxm UiwgXGZCXC1vCi0gRGlzcGxheSB0aGUgb3V0cHV0IG9uY2UgYW5kIHRoZW4gZXhpdC4KLSAuVFAK LS0uQiBcLVxeXC12ZXJzaW9uLCBcLVYKLSsuQiBcLVwtdmVyc2lvblxmUiwgXGZCXC1WCi0gRGlz cGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0LgotIC5UUAotLS5CIFwtXF5cLWhlbHAK LSsuQiBcLVwtaGVscAotIERpc3BsYXkgdXNhZ2UgaW5mb3JtYXRpb24gYW5kIGV4aXQuCi0gCi0g LlNIIFNPUlQgQ1JJVEVSSUEKLUBAIC03OCw3ICs4MSw3IEBAIHNvcnQgYnkgb2JqZWN0IHNpemUK LSBzb3J0IGJ5IGNhY2hlIHV0aWxpemF0aW9uCi0gCi0gLlNIIENPTU1BTkRTCi0tLkJSIHNsYWJ0 b3AgKDEpCi0rLkIgc2xhYnRvcAotIGFjY2VwdHMga2V5Ym9hcmQgY29tbWFuZHMgZnJvbSB0aGUg dXNlciBkdXJpbmcgdXNlLiAgVGhlIGZvbGxvd2luZyBhcmUKLSBzdXBwb3J0ZWQuICBJbiB0aGUg Y2FzZSBvZiBsZXR0ZXJzLCBib3RoIGNhc2VzIGFyZSBhY2NlcHRlZC4KLSAKLUBAIC05NCw3ICs5 Nyw5IEBAIFJlZnJlc2ggdGhlIHNjcmVlbi4KLSBRdWl0IHRoZSBwcm9ncmFtLgotIAotIC5TSCBG SUxFUwotLS5JUiAvcHJvYy9zbGFiaW5mbyAiIFwtXC0gc2xhYiBpbmZvcm1hdGlvbiIKLSsuVFAK LSsuSSAvcHJvYy9zbGFiaW5mbwotK3NsYWIgaW5mb3JtYXRpb24KLSAKLSAuU0ggIlNFRSBBTFNP IgotIC5CUiBmcmVlICgxKSwKLUBAIC0xMDQsNyArMTA5LDcgQEAgUXVpdCB0aGUgcHJvZ3JhbS4K LSAKLSAuU0ggTk9URVMKLSBDdXJyZW50bHksCi0tLkJSIHNsYWJ0b3AgKDEpCi0rLkIgc2xhYnRv cAotIHJlcXVpcmVzIGEgMi40IG9yIGxhdGVyIGtlcm5lbCAoc3BlY2lmaWNhbGx5LCBhIHZlcnNp b24gMS4xIG9yIGxhdGVyCi0gLklSIC9wcm9jL3NsYWJpbmZvICkuCi0gS2VybmVsIDIuMiBzaG91 bGQgYmUgc3VwcG9ydGVkIGluIHRoZSBmdXR1cmUuCi1AQCAtMTE2LDcgKzEyMSw3IEBAIGZpbGUg aXMgdHJhY2tpbmcgaW5mb3JtYXRpb24gYWJvdXQgdXNlZCBzbGFiIHBoeXNpY2FsIG1lbW9yeS4K LSAuU0ggQVVUSE9SUwotIFdyaXR0ZW4gYnkgQ2hyaXMgUml2ZXJhIGFuZCBSb2JlcnQgTG92ZS4K LSAKLS0uQlIgc2xhYnRvcCAoMSkKLSsuQiBzbGFidG9wCi0gd2FzIGluc3BpcmVkIGJ5IE1hcnRp biBCbGlnaCdzIHBlcmwgc2NyaXB0LAotIC5CUiB2bXRvcCAuCi0gVGhlIHByb2NwcyBwYWNrYWdl IGlzIG1haW50YWluZWQgYnkgQWxiZXJ0IENhaGFsYW4gPGFsYmVydEB1c2Vycy5zZi5uZXQ+Lgot LS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA5LXN5c2N0 bC44LnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwOS1zeXNjdGwuOC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzMzMjJlNC4uMDAwMDAwMAotLS0gYS9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDA5LXN5c2N0bC44LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTU3 ICswLDAgQEAKLUZyb20gOWRjMmIzNmNjNGFjNmU0OWYwZWViMmNjNzAxMzc2YTdjZTMzZmExMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9k ZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGlu Zm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDUgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSCAwOS83MF0gc3lzY3RsLjgKLQotY2xlYW51cCBzeXNjdGwgbWFuIHBhZ2UK LUJ1Zy1EZWJpYW46IGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvMjk3MTQ0Ci1CdWctRGViaWFuOiBo dHRwOi8vYnVncy5kZWJpYW4ub3JnLzI4MjE2OAotLS0tCi0gc3lzY3RsLjggfCAgIDkwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gMSBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL3N5c2N0bC44IGIvc3lzY3RsLjgKLWluZGV4IGUyNmM0ZmIuLjNiYjQ2ZDcg MTAwNjQ0Ci0tLS0gYS9zeXNjdGwuOAotKysrIGIvc3lzY3RsLjgKLUBAIC0xMCw3NiArMTAsMTA4 IEBACi0gLlNIIE5BTUUKLSBzeXNjdGwgXC0gY29uZmlndXJlIGtlcm5lbCBwYXJhbWV0ZXJzIGF0 IHJ1bnRpbWUKLSAuU0ggU1lOT1BTSVMKLS0uQiAic3lzY3RsIFstbl0gWy1lXSB2YXJpYWJsZSAu Li4iCi0rLkIgc3lzY3RsCi0rLlJCIFsgXC1uIF0KLSsuUkIgWyBcLWUgXQotKy5JIHZhcmlhYmxl Ci0rXCYuLi4KLSAuYnIKLS0uQiAic3lzY3RsIFstbl0gWy1lXSBbLXFdIC13IHZhcmlhYmxlPXZh bHVlIC4uLiIKLSsuQiBzeXNjdGwKLSsuUkIgWyBcLW4gXQotKy5SQiBbIFwtZSBdCi0rLlJCIFsg XC1xIF0KLSsuQiBcLXcKLSsuSVIgdmFyaWFibGUgPSB2YWx1ZQotK1wmLi4uCi0gLmJyCi0tLkIg InN5c2N0bCBbLW5dIFstZV0gWy1xXSAtcCA8ZmlsZW5hbWU+IgotKy5CIHN5c2N0bAotKy5SQiBb IFwtbiBdCi0rLlJCIFsgXC1lIF0KLSsuUkIgWyBcLXEgXQotKy5CIFwtcAotKy5SSSBbIGZpbGVu YW1lIF0KLSAuYnIKLS0uQiAic3lzY3RsIFstbl0gWy1lXSAtYSIKLSsuQiBzeXNjdGwKLSsuUkIg WyBcLW4gXQotKy5SQiBbIFwtZSBdCi0rLkIgXC1hCi0gLmJyCi0tLkIgInN5c2N0bCBbLW5dIFst ZV0gLUEiCi0rLkIgc3lzY3RsCi0rLlJCIFsgXC1uIF0KLSsuUkIgWyBcLWUgXQotKy5CIFwtQQot IC5TSCBERVNDUklQVElPTgotIC5CIHN5c2N0bAotIGlzIHVzZWQgdG8gbW9kaWZ5IGtlcm5lbCBw YXJhbWV0ZXJzIGF0IHJ1bnRpbWUuICBUaGUgcGFyYW1ldGVycyBhdmFpbGFibGUKLSBhcmUgdGhv c2UgbGlzdGVkIHVuZGVyIC9wcm9jL3N5cy8uICBQcm9jZnMgaXMgcmVxdWlyZWQgZm9yIAotLS5C IHN5c2N0bCg4KQotKy5CIHN5c2N0bAotIHN1cHBvcnQgaW4gTGludXguICBZb3UgY2FuIHVzZQot LS5CIHN5c2N0bCg4KQotKy5CIHN5c2N0bAotIHRvIGJvdGggcmVhZCBhbmQgd3JpdGUgc3lzY3Rs IGRhdGEuCi0gLlNIIFBBUkFNRVRFUlMKLSAuVFAKLS0uQiAidmFyaWFibGUiCi0rLkkgdmFyaWFi bGUKLSBUaGUgbmFtZSBvZiBhIGtleSB0byByZWFkIGZyb20uICBBbiBleGFtcGxlIGlzIGtlcm5l bC5vc3R5cGUuICBUaGUgJy8nCi0gc2VwYXJhdG9yIGlzIGFsc28gYWNjZXB0ZWQgaW4gcGxhY2Ug b2YgYSAnLicuCi0gLlRQCi0tLkIgInZhcmlhYmxlPXZhbHVlIgotLVRvIHNldCBhIGtleSwgdXNl IHRoZSBmb3JtIHZhcmlhYmxlPXZhbHVlLCB3aGVyZSB2YXJpYWJsZSBpcyB0aGUga2V5IGFuZAot LXZhbHVlIGlzIHRoZSB2YWx1ZSB0byBzZXQgaXQgdG8uICBJZiB0aGUgdmFsdWUgY29udGFpbnMg cXVvdGVzIG9yIGNoYXJhY3RlcnMKLSsuSVIgIHZhcmlhYmxlID0gdmFsdWUKLStUbyBzZXQgYSBr ZXksIHVzZSB0aGUgZm9ybQotKy5JUiAgdmFyaWFibGUgPSB2YWx1ZQotK3doZXJlCi0rLkkgdmFy aWFibGUKLStpcyB0aGUga2V5IGFuZAotKy5JIHZhbHVlCi0raXMgdGhlIHZhbHVlIHRvIHNldCBp dCB0by4gIElmIHRoZSB2YWx1ZSBjb250YWlucyBxdW90ZXMgb3IgY2hhcmFjdGVycwotIHdoaWNo IGFyZSBwYXJzZWQgYnkgdGhlIHNoZWxsLCB5b3UgbWF5IG5lZWQgdG8gZW5jbG9zZSB0aGUgdmFs dWUgaW4gZG91YmxlCi0tcXVvdGVzLiAgVGhpcyByZXF1aXJlcyB0aGUgLXcgcGFyYW1ldGVyIHRv IHVzZS4KLStxdW90ZXMuICBUaGlzIHJlcXVpcmVzIHRoZQotKy5CIFwtdwotK3BhcmFtZXRlciB0 byB1c2UuCi0gLlRQCi0tLkIgIi1uIgotKy5CIFwtbgotIFVzZSB0aGlzIG9wdGlvbiB0byBkaXNh YmxlIHByaW50aW5nIG9mIHRoZSBrZXkgbmFtZSB3aGVuIHByaW50aW5nIHZhbHVlcy4KLSAuVFAK LS0uQiAiLWUiCi0rLkIgXC1lCi0gVXNlIHRoaXMgb3B0aW9uIHRvIGlnbm9yZSBlcnJvcnMgYWJv dXQgdW5rbm93biBrZXlzLgotIC5UUAotLS5CICItTiIKLSsuQiBcLU4KLSBVc2UgdGhpcyBvcHRp b24gdG8gb25seSBwcmludCB0aGUgbmFtZXMuIEl0IG1heSBiZSB1c2VmdWwgd2l0aCBzaGVsbHMg dGhhdAotIGhhdmUgcHJvZ3JhbW1hYmxlIGNvbXBsZXRpb24uCi0gLlRQCi0tLkIgIi1xIgotKy5C IFwtcQotIFVzZSB0aGlzIG9wdGlvbiB0byBub3QgZGlzcGxheSB0aGUgdmFsdWVzIHNldCB0byBz dGRvdXQuCi0gLlRQCi0tLkIgIi13IgotKy5CIFwtdwotIFVzZSB0aGlzIG9wdGlvbiB3aGVuIHlv dSB3YW50IHRvIGNoYW5nZSBhIHN5c2N0bCBzZXR0aW5nLgotIC5UUAotLS5CICItcCIKLSsuQiBc LXAKLSBMb2FkIGluIHN5c2N0bCBzZXR0aW5ncyBmcm9tIHRoZSBmaWxlIHNwZWNpZmllZCBvciAv ZXRjL3N5c2N0bC5jb25mIGlmIG5vbmUgZ2l2ZW4uCi0gU3BlY2lmeWluZyBcLSBhcyBmaWxlbmFt ZSBtZWFucyByZWFkaW5nIGRhdGEgZnJvbSBzdGFuZGFyZCBpbnB1dC4KLSAuVFAKLS0uQiAiLWEi Ci0rLkIgXC1hCi0gRGlzcGxheSBhbGwgdmFsdWVzIGN1cnJlbnRseSBhdmFpbGFibGUuCi0gLlRQ Ci0tLkIgIi1BIgotKy5CIFwtQQotIERpc3BsYXkgYWxsIHZhbHVlcyBjdXJyZW50bHkgYXZhaWxh YmxlIGluIHRhYmxlIGZvcm0uCi0gLlNIIEVYQU1QTEVTCi0tLlRQCi0tL3NiaW4vc3lzY3RsIC1h Ci0tLlRQCi0tL3NiaW4vc3lzY3RsIC1uIGtlcm5lbC5ob3N0bmFtZQotLS5UUAotLS9zYmluL3N5 c2N0bCAtdyBrZXJuZWwuZG9tYWlubmFtZT0iZXhhbXBsZS5jb20iCi0tLlRQCi0tL3NiaW4vc3lz Y3RsIC1wIC9ldGMvc3lzY3RsLmNvbmYgCi0rL3NiaW4vc3lzY3RsIFwtYQotKy5icgotKy9zYmlu L3N5c2N0bCBcLW4ga2VybmVsLmhvc3RuYW1lCi0rLmJyCi0rL3NiaW4vc3lzY3RsIFwtdyBrZXJu ZWwuZG9tYWlubmFtZT0iZXhhbXBsZS5jb20iCi0rLmJyCi0rL3NiaW4vc3lzY3RsIFwtcCAvZXRj L3N5c2N0bC5jb25mCi0gLlNIIEZJTEVTCi0gLkkgL3Byb2Mvc3lzCi0rLmJyCi0gLkkgL2V0Yy9z eXNjdGwuY29uZgotIC5TSCBTRUUgQUxTTwotIC5CUiBzeXNjdGwuY29uZiAoNSkKLSAuU0ggQlVH UwotLVRoZSAtQSBwYXJhbWV0ZXIgYmVoYXZlcyBqdXN0IGFzIC1hIGRvZXMuCi0rVGhlCi0rLkIg XC1BCi0rcGFyYW1ldGVyIGJlaGF2ZXMganVzdCBhcwotKy5CIFwtYQotK2RvZXMuCi0gLlNIIEFV VEhPUgotIEdlb3JnZSBTdGFpa29zLCA8c3RhaWtvc0Awd25lZC5vcmc+Ci0gCi0tLSAKLTEuNy4w Ci0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTAtc3lzY3RsX29wdGlvbnMu cGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDEwLXN5c2N0bF9vcHRpb25zLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTg5NmNlLi4wMDAwMDAwCi0tLSBhL3BhdGNo ZXMvcHJvY3BzLTMuMi44LzAwMTAtc3lzY3RsX29wdGlvbnMucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw1NyArMCwwIEBACi1Gcm9tIDcwY2JhOWI3YTMzZTJjZTMyMDQ1MzI0YjNmYmU4ZmE5MDFj ZmU5ZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlh bi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFy Lmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ1ICsw MTAwCi1TdWJqZWN0OiBbUEFUQ0ggMTAvNzBdIHN5c2N0bF9vcHRpb25zCi0KLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLQotIHN5c2N0bC5jIHwgICAxMiArKysrKysrKysrLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDEw IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zeXNjdGwuYyBi L3N5c2N0bC5jCi1pbmRleCAxNDcwZGY5Li40MDI0ZjcxIDEwMDY0NAotLS0tIGEvc3lzY3RsLmMK LSsrKyBiL3N5c2N0bC5jCi1AQCAtNDIxLDYgKzQyMSw3IEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pIHsKLSAgICBjb25zdCBjaGFyICptZSA9IChjb25zdCBjaGFyICopYmFzZW5h bWUoYXJndlswXSk7Ci0gICAgYm9vbCBTd2l0Y2hlc0FsbG93ZWQgPSB0cnVlOwotICAgIGJvb2wg V3JpdGVNb2RlID0gZmFsc2U7Ci0rICAgYm9vbCBEaXNwbGF5QWxsT3B0ID0gZmFsc2U7Ci0gICAg aW50IFJldHVybkNvZGUgPSAwOwotICAgIGNvbnN0IGNoYXIgKnByZWxvYWRmaWxlID0gREVGQVVM VF9QUkVMT0FEOwotIAotQEAgLTQ4Niw4ICs0ODcsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdKSB7Ci0gICAgICAgICAgY2FzZSAnYSc6IC8vIHN0cmluZyBhbmQgaW50ZWdlciB2 YWx1ZXMgKGZvciBMaW51eCwgYWxsIG9mIHRoZW0pCi0gICAgICAgICAgY2FzZSAnQSc6IC8vIHNh bWUgYXMgLWEgLW8KLSAgICAgICAgICBjYXNlICdYJzogLy8gc2FtZSBhcyAtYSAteAotLSAgICAg ICAgICAgICAgU3dpdGNoZXNBbGxvd2VkID0gZmFsc2U7Ci0tICAgICAgICAgICAgICByZXR1cm4g RGlzcGxheUFsbChQUk9DX1BBVEgpOwotKyAgICAgICAgICAgICAgRGlzcGxheUFsbE9wdCA9IHRy dWU7Ci0rICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICBjYXNlICdWJzoKLSAgICAgICAg ICAgICAgIGZwcmludGYoc3Rkb3V0LCAic3lzY3RsICglcylcbiIscHJvY3BzX3ZlcnNpb24pOwot ICAgICAgICAgICAgICAgZXhpdCgwKTsKLUBAIC01MDIsNiArNTAzLDggQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaWYgKE5h bWVPbmx5ICYmIFF1aWV0KSAgIC8vIG5vbnNlbnNlCi0gICAgICAgICAgICAgcmV0dXJuIFVzYWdl KG1lKTsKLSsgICAgICAgICBpZiAoRGlzcGxheUFsbE9wdCkgICAgLy8gV2UgY2Fubm90IGhhdmUg dmFsdWVzIHdpdGggLWEKLSsgICAgICAgICAgICAgcmV0dXJuIFVzYWdlKG1lKTsKLSAgICAgICAg ICBTd2l0Y2hlc0FsbG93ZWQgPSBmYWxzZTsKLSAgICAgICAgICBpZiAoV3JpdGVNb2RlIHx8IGlu ZGV4KCphcmd2LCAnPScpKQotICAgICAgICAgICAgIFJldHVybkNvZGUgPSBXcml0ZVNldHRpbmco KmFyZ3YpOwotQEAgLTUwOSw2ICs1MTIsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkgewotICAgICAgICAgICAgIFJldHVybkNvZGUgPSBSZWFkU2V0dGluZygqYXJndik7Ci0g ICAgICAgfQotICAgIH0KLSsgICBpZiAoRGlzcGxheUFsbE9wdCkgewotKyAgICAgICBpZiAoUXVp ZXQpCi0rICAgICAgICAgICByZXR1cm4gVXNhZ2UobWUpOwotKyAgICAgICByZXR1cm4gRGlzcGxh eUFsbChQUk9DX1BBVEgpOwotKyAgIH0KLSAKLSAgICByZXR1cm4gUmV0dXJuQ29kZTsKLSB9Ci0t LSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTEtdGxvYWQu MS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTEtdGxvYWQuMS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWJlZTJlOC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDExLXRsb2FkLjEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCww IEBACi1Gcm9tIDE1MWI5MGNhZWU1OWE3ZTFkNGQ1Y2YzY2Q2YzM4NTE1ZTBjZGFjMjEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFu L3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRl Ymlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ1ICswMTAwCi1TdWJqZWN0 OiBbUEFUQ0ggMTEvNzBdIHRsb2FkLjEKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gdGxvYWQuMSB8ICAg IDIgKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL3Rsb2FkLjEgYi90bG9hZC4xCi1pbmRleCBlZjgyYjAxLi44ZWM4YzQz IDEwMDY0NAotLS0tIGEvdGxvYWQuMQotKysrIGIvdGxvYWQuMQotQEAgLTM5LDcgKzM5LDcgQEAg VGhlCi0gLkJJICJcLWQiICIgZGVsYXkiCi0gb3B0aW9uIHNldHMgdGhlIHRpbWUgYXJndW1lbnQg Zm9yIGFuCi0gLkJSIGFsYXJtICgyKTsKLS1pZiAtZCAwIGlzIHNwZWNpZmllZCwgdGhlIGFsYXJt IGlzIHNldCB0byAwLCB3aGljaCB3aWxsIG5ldmVyIHNlbmQgdGhlCi0raWYgXC1kIDAgaXMgc3Bl Y2lmaWVkLCB0aGUgYWxhcm0gaXMgc2V0IHRvIDAsIHdoaWNoIHdpbGwgbmV2ZXIgc2VuZCB0aGUK LSAuQiBTSUdBTFJNCi0gYW5kIHVwZGF0ZSB0aGUgZGlzcGxheS4KLSAKLS0tIAotMS43LjAKLQpk aWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxMi10b3BfaXJpeC5wYXRjaCBiL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwMTItdG9wX2lyaXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDMzNDc5OGUuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgv MDAxMi10b3BfaXJpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLUZyb20g OGQ4YzIzZjRjYWU2ZWI5ZGUxODhkNzI2MWEyM2FkZmYwYjE0OTU0YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWlu L3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4K LURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAx Mi83MF0gdG9wX2lyaXgKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gdG9wLmMgfCAgIDE1ICsrKysrKysr KysrKystLQotIDEgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL3RvcC5jIGIvdG9wLmMKLWluZGV4IDZkNGE3Y2MuLmM3ZTc1NTMg MTAwNjQ0Ci0tLS0gYS90b3AuYwotKysrIGIvdG9wLmMKLUBAIC0xNzgzLDcgKzE3ODMsOCBAQCBz dGF0aWMgdm9pZCBjb25maWdzX3JlYWQgKHZvaWQpCi0gICAgICAgY29uZmlnaGxwKFdpbnN0a1tp XS5yYy5maWVsZHNjdXIpOwotICAgIH0KLSAKLS0gICBpZihSYy5tb2RlX2lyaXhwcyAmJiBzbXBf bnVtX2NwdXM+MSl7Ci0rICAgaWYoUmMubW9kZV9pcml4cHMgJiYgc21wX251bV9jcHVzPjEgJiYK LSsgICAgICAhKENIS3coQ3Vyd2luLCBTaG93X1RIUkVBRFMpKSkgewotICAgICAgIC8vIGdvb2Qg Zm9yIDEwMCBDUFVzIHBlciBwcm9jZXNzCi0gICAgICAgcGNwdV9tYXhfdmFsdWUgPSA5OTk5LjA7 Ci0gICAgICAgRmllbGRzdGFiW1BfQ1BVXS5mbXRzID0gIiAlNC4wZiI7Ci1AQCAtMjU3MCw2ICsy NTcxLDE1IEBAIHN0YXRpYyB2b2lkIGRvX2tleSAodW5zaWduZWQgYykKLSAgICAgICBjYXNlICdI JzoKLSAgICAgICAgICBpZiAoVklaQ0hLYykgewotICAgICAgICAgICAgIFRPR3coQ3Vyd2luLCBT aG93X1RIUkVBRFMpOwotKyAgICAgICAgICAgIGlmKFJjLm1vZGVfaXJpeHBzICYmIHNtcF9udW1f Y3B1cz4xICYmCi0rICAgICAgICAgICAgICAgIShDSEt3KEN1cndpbiwgU2hvd19USFJFQURTKSkp ewotKyAgICAgICAgICAgICAgIC8vIGdvb2QgZm9yIDEwMCBDUFVzIHBlciBwcm9jZXNzCi0rICAg ICAgICAgICAgICAgcGNwdV9tYXhfdmFsdWUgPSA5OTk5LjA7Ci0rICAgICAgICAgICAgICAgRmll bGRzdGFiW1BfQ1BVXS5mbXRzID0gIiAlNC4wZiI7Ci0rICAgICAgICAgICAgfSBlbHNlIHsKLSsg ICAgICAgICAgICAgICBwY3B1X21heF92YWx1ZSA9IDk5Ljk7Ci0rICAgICAgICAgICAgICAgRmll bGRzdGFiW1BfQ1BVXS5mbXRzID0gIiAlIzQuMWYiOwotKyAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICBzaG93X21zZyhmbXRtaygiU2hvdyB0aHJlYWRzICVzIgotICAgICAgICAgICAgICAgICwg Q0hLdyhDdXJ3aW4sIFNob3dfVEhSRUFEUykgPyAiT24iIDogIk9mZiIpKTsKLSAgICAgICAgICB9 Ci1AQCAtMjYyNiw3ICsyNjM2LDggQEAgc3RhdGljIHZvaWQgZG9fa2V5ICh1bnNpZ25lZCBjKQot ICAgICAgICAgIFJjLm1vZGVfaXJpeHBzID0gIVJjLm1vZGVfaXJpeHBzOwotICAgICAgICAgIHNo b3dfbXNnKGZtdG1rKCJJcml4IG1vZGUgJXMiLCBSYy5tb2RlX2lyaXhwcyA/ICJPbiIgOiAiT2Zm IikpOwotICNlbmRpZgotLSAgICAgICAgIGlmKFJjLm1vZGVfaXJpeHBzICYmIHNtcF9udW1fY3B1 cz4xKXsKLSsgICAgICAgICBpZihSYy5tb2RlX2lyaXhwcyAmJiBzbXBfbnVtX2NwdXM+MSAmJgot KyAgICAgICAgICAgICEoQ0hLdyhDdXJ3aW4sIFNob3dfVEhSRUFEUykpKXsKLSAgICAgICAgICAg ICAvLyBnb29kIGZvciAxMDAgQ1BVcyBwZXIgcHJvY2VzcwotICAgICAgICAgICAgIHBjcHVfbWF4 X3ZhbHVlID0gOTk5OS4wOwotICAgICAgICAgICAgIEZpZWxkc3RhYltQX0NQVV0uZm10cyA9ICIg JTQuMGYiOwotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDEzLXRvcF9ub19vcGVucHJvYy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTMtdG9w X25vX29wZW5wcm9jLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Yjk1M2Vk Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTMtdG9wX25vX29wZW5wcm9j LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotRnJvbSA5YjI1ZWQ3YzM1ZTJj MzNlNTg1Yjg5MzA1MmJjZjZkODI4M2I1ZWNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJv Y3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAx OSBNYXIgMjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENIIDEzLzcwXSB0b3Bfbm9f b3BlbnByb2MKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gdG9wLmMgfCAgICA2ICsrKysrKwotIDEgZmls ZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvdG9wLmMgYi90b3AuYwotaW5kZXggYzdlNzU1My4uNzIwNTZhMSAxMDA2NDQKLS0tLSBhL3Rv cC5jCi0rKysgYi90b3AuYwotQEAgLTExMDYsNiArMTEwNiwxMiBAQCBzdGF0aWMgcHJvY190ICoq cHJvY3NfcmVmcmVzaCAocHJvY190ICoqdGFibGUsIGludCBmbGFncykKLSAgICBlbHNlCi0gICAg ICAgUFQgPSBvcGVucHJvYyhmbGFncyk7Ci0gCi0rICAgIGlmIChQVD09TlVMTCkgewotKyAgICAg ICAgc3RkX2VycihzdHJlcnJvcihlcnJubykpOwotKyAgICAgICAgZXhpdCgxKTsKLSsgICAgfQot KwotKwotICAgIC8vIGkpIEFsbG9jYXRlZCBDaHVua3M6ICAqRXhpc3RpbmcqIHRhYmxlOyAgcmVm cmVzaCArIHJldXNlCi0gICAgaWYgKCEoQ0hLdyhDdXJ3aW4sIFNob3dfVEhSRUFEUykpKSB7Ci0g ICAgICAgd2hpbGUgKGN1cm1heCA8IHNhdm1heCkgewotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQg YS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE0LXRvcF9zdGRpbl9lb2YucGF0Y2ggYi9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDE0LXRvcF9zdGRpbl9lb2YucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGUwOWExZTQuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgv MDAxNC10b3Bfc3RkaW5fZW9mLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAot RnJvbSA2OTRkMDI1NjQ5YTU1MzZkMGQzMGVkNmU5MWQwYTg3ZWM4NWRjN2FhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29s L21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4u b3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BB VENIIDE0LzcwXSB0b3Bfc3RkaW5fZW9mCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHRvcC5jIHwgICAg NSArKy0tLQotIDEgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvdG9wLmMgYi90b3AuYwotaW5kZXggNzIwNTZhMS4uYmVhY2EwYSAx MDA2NDQKLS0tLSBhL3RvcC5jCi0rKysgYi90b3AuYwotQEAgLTM0MDgsOSArMzQwOCw4IEBAIGlu dCBtYWluIChpbnQgZG9udF9jYXJlX2FyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAgICAgICAgICAvLyBj aGVjayAxc3QsIGluIGNhc2UgdHYgemVyb2VkIChieSBzaWcgaGFuZGxlcikgYmVmb3JlIGl0IGdv dCBzZXQKLSAgICAgICAgICByYyA9IGNoaW4oMCwgJmMsIDEpOwotICAgICAgICAgIGlmIChyYyA8 PSAwKSB7Ci0tICAgICAgICAgICAgLy8gRU9GIGlzIHByZXR0eSBtdWNoIGEgImNhbid0IGhhcHBl biIgZXhjZXB0IGZvciBhIGtlcm5lbCBidWcuCi0tICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIHF1 aWNrbHkgZGllIHZpYSBTSUdIVVAsIGFuZCB0aHVzIG5vdCBzcGluIGhlcmUuCi0tICAgICAgICAg ICAgLy8gaWYgKHJjID09IDApIGVuZF9wZ20oMCk7IC8qIEVPRiBmcm9tIHRlcm1pbmFsICovCi0r ICAgICAgICAgICAgaWYgKHJjID09IDApIGVuZF9wZ20oMCk7IC8qIEVPRiBmcm9tIHRlcm1pbmFs LCBtYXkgaGFwcGVuIGlmIHRvcAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKiBlcnJvbmVvdXNseSBnZXRzIGRldGFjaGVkIGZyb20gaXQuICovCi0gICAgICAgICAgICAg ZmNudGwoU1RESU5fRklMRU5PLCBGX1NFVEZMLCBmaWxlX2ZsYWdzKTsKLSAgICAgICAgICAgICBz ZWxlY3QoMSwgJmZzLCBOVUxMLCBOVUxMLCAmdHYpOwotICAgICAgICAgICAgIGZjbnRsKFNURElO X0ZJTEVOTywgRl9TRVRGTCwgT19OT05CTE9DS3xmaWxlX2ZsYWdzKTsKLS0tIAotMS43LjAKLQpk aWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxNS10b3BfdWlkX2xlbmd0aC5wYXRj aCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTUtdG9wX3VpZF9sZW5ndGgucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNWEwZmYuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDAxNS10b3BfdWlkX2xlbmd0aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDI2ICswLDAgQEAKLUZyb20gMmJkMDhmNGFiOWIzZTZiNWRjZDFhMGQ3ZDdkZmQyNWE1MzU1YmM5 MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9y Zy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3og PGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDUgKzAxMDAK LVN1YmplY3Q6IFtQQVRDSCAxNS83MF0gdG9wX3VpZF9sZW5ndGgKLQotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t Ci0gdG9wLmMgfCAgICAyICstCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS90b3AuYyBiL3RvcC5jCi1pbmRleCBiZWFjYTBh Li41M2NhYjA1IDEwMDY0NAotLS0tIGEvdG9wLmMKLSsrKyBiL3RvcC5jCi1AQCAtMTIzNyw3ICsx MjM3LDcgQEAgc3RhdGljIEZMRF90IEZpZWxkc3RhYltdID0gewotICAgIHsgIkFhQWEiLCAiICAg UElEIiwgICAgICAiICU1dSIsICAgICAtMSwgICAgLTEsIFNGKFBJRCksICJQcm9jZXNzIElkIiwg ICAgICAgICAgIExfTk9ORSAgIH0sCi0gICAgeyAiQmJCYiIsICIgIFBQSUQiLCAgICAgICIgJTV1 IiwgICAgIC0xLCAgICAtMSwgU0YoUFBEKSwgIlBhcmVudCBQcm9jZXNzIFBpZCIsICAgTF9FSVRI RVIgfSwKLSAgICB7ICJDY1FxIiwgIiBSVVNFUiAgICIsICAgIiAlLTguOHMiLCAgLTEsICAgIC0x LCBTRihVUlIpLCAiUmVhbCB1c2VyIG5hbWUiLCAgICAgICBMX1JVU0VSICB9LAotLSAgIHsgIkRk Q2MiLCAiICBVSUQiLCAgICAgICAiICU0dSIsICAgICAtMSwgICAgLTEsIFNGKFVJRCksICJVc2Vy IElkIiwgICAgICAgICAgICAgIExfTk9ORSAgIH0sCi0rICAgeyAiRGRDYyIsICIgICBVSUQiLCAg ICAgICAiICU1dSIsICAgICAtMSwgICAgLTEsIFNGKFVJRCksICJVc2VyIElkIiwgICAgICAgICAg ICAgIExfTk9ORSAgIH0sCi0gICAgeyAiRWVEZCIsICIgVVNFUiAgICAiLCAgICIgJS04LjhzIiwg IC0xLCAgICAtMSwgU0YoVVJFKSwgIlVzZXIgTmFtZSIsICAgICAgICAgICAgTF9FVVNFUiAgfSwK LSAgICB7ICJGZk5uIiwgIiBHUk9VUCAgICIsICAgIiAlLTguOHMiLCAgLTEsICAgIC0xLCBTRihH UlApLCAiR3JvdXAgTmFtZSIsICAgICAgICAgICBMX0dST1VQICB9LAotICAgIHsgIkdnR2ciLCAi IFRUWSAgICAgIiwgICAiICUtOC44cyIsICAgOCwgICAgLTEsIFNGKFRUWSksICJDb250cm9sbGlu ZyBUdHkiLCAgICAgIExfc3RhdCAgIH0sCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNo ZXMvcHJvY3BzLTMuMi44LzAwMTYtdXB0aW1lLjEucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDE2LXVwdGltZS4xLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzJk YTA2Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTYtdXB0aW1lLjEucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi1Gcm9tIGI3OWU0YzQyNTkyZmYwNDA4 MTdmZDcyMmM2MDgzYjJlYmU0MGMyODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBo dHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNf My4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1h ciAyMDEwIDIxOjU4OjQ1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMTYvNzBdIHVwdGltZS4xCi0K LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLQotIHVwdGltZS4xIHwgICAyMyArKysrKysrKysrKysrKysrKystLS0t LQotIDEgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL3VwdGltZS4xIGIvdXB0aW1lLjEKLWluZGV4IDNhYWU3MzkuLmEzZGE3Yzcg MTAwNjQ0Ci0tLS0gYS91cHRpbWUuMQotKysrIGIvdXB0aW1lLjEKLUBAIC02LDcgKzYsOCBAQCB1 cHRpbWUgXC0gVGVsbCBob3cgbG9uZyB0aGUgc3lzdGVtIGhhcyBiZWVuIHJ1bm5pbmcuCi0gLlNI IFNZTk9QU0lTCi0gLkIgdXB0aW1lCi0gLmJyCi0tLkJSIHVwdGltZSAiIFsiICJcLVYiIF0KLSsu QiB1cHRpbWUKLSsuUkIgWyBcLVYgXQotIC5TSCBERVNDUklQVElPTgotIC5CIHVwdGltZQotIGdp dmVzIGEgb25lIGxpbmUgZGlzcGxheSBvZiB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uLgotQEAg LTE0LDEzICsxNSwyNSBAQCBUaGUgY3VycmVudCB0aW1lLAotIGhvdyBsb25nIHRoZSBzeXN0ZW0g aGFzIGJlZW4gcnVubmluZywKLSBob3cgbWFueSB1c2VycyBhcmUgY3VycmVudGx5IGxvZ2dlZCBv biwKLSBhbmQgdGhlIHN5c3RlbSBsb2FkIGF2ZXJhZ2VzIGZvciB0aGUgcGFzdCAxLCA1LCBhbmQg MTUgbWludXRlcy4KLS0uc3AKLSsKLSBUaGlzIGlzIHRoZSBzYW1lIGluZm9ybWF0aW9uIGNvbnRh aW5lZCBpbiB0aGUgaGVhZGVyIGxpbmUgZGlzcGxheWVkIGJ5IAotIC5CUiB3ICgxKS4KLSsuc3AK LStTeXN0ZW0gbG9hZCBhdmVyYWdlcyBpcyB0aGUgYXZlcmFnZSBudW1iZXIgb2YgcHJvY2Vzc2Vz IHRoYXQgYXJlIGVpdGhlcgotK2luIGEgcnVubmFibGUgb3IgdW5pbnRlcnJ1cHRhYmxlIHN0YXRl LiAgQSBwcm9jZXNzIGluIGEgcnVubmFibGUgc3RhdGUgaXMKLStlaXRoZXIgdXNpbmcgdGhlIENQ VSBvciB3YWl0aW5nIHRvIHVzZSB0aGUgQ1BVLiBBIHByb2Nlc3MgaW4KLSt1bmludGVycnVwdGFi bGUgc3RhdGUgaXMgd2FpdGluZyBmb3Igc29tZSBJL08gYWNjZXNzLCBlZyB3YWl0aW5nIGZvcgot K2Rpc2suICBUaGUgYXZlcmFnZXMgYXJlIHRha2VuIG92ZXIgdGhlIHRocmVlIHRpbWUgaW50ZXJ2 YWxzLgotK0xvYWQgYXZlcmFnZXMgYXJlIG5vdCBub3JtYWxpemVkIGZvciB0aGUgbnVtYmVyIG9m IENQVXMgaW4gYSBzeXN0ZW0sIHNvCi0rYSBsb2FkIGF2ZXJhZ2Ugb2YgMSBtZWFucyBhIHNpbmds ZSBDUFUgc3lzdGVtIGlzIGxvYWRlZCBhbGwgdGhlIHRpbWUKLSt3aGlsZSBvbiBhIDQgQ1BVIHN5 c3RlbSBpdCBtZWFucyBpdCB3YXMgaWRsZSA3NSUgb2YgdGhlIHRpbWUuCi0gLlNIIEZJTEVTCi0t LklSIC92YXIvcnVuL3V0bXAgIglpbmZvcm1hdGlvbiBhYm91dCB3aG8gaXMgY3VycmVudGx5IGxv Z2dlZCBvbiIKLS0uYnIKLS0uSVIgL3Byb2MgIglwcm9jZXNzIGluZm9ybWF0aW9uIgotKy5UUAot Ky5JIC92YXIvcnVuL3V0bXAKLStpbmZvcm1hdGlvbiBhYm91dCB3aG8gaXMgY3VycmVudGx5IGxv Z2dlZCBvbgotKy5UUAotKy5JIC9wcm9jCi0rcHJvY2VzcyBpbmZvcm1hdGlvbgotIC5TSCBBVVRI T1JTCi0gLkIgdXB0aW1lCi0gd2FzIHdyaXR0ZW4gYnkgTGFycnkgR3JlZW5maWVsZCA8Z3JlZW5m aWVAZ2F1c3MucnV0Z2Vycy5lZHU+IGFuZAotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDE3LXZtc3RhdC44LnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDAxNy12bXN0YXQuOC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY0 MDRhNy4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE3LXZtc3RhdC44LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLUZyb20gZTBkMmZlMTgyOGFmMDUx MTdhMDRlMTY3Y2Y3N2EyNmY3ZGNmMTIwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nw c18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkg TWFyIDIwMTAgMjE6NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAxNy83MF0gdm1zdGF0LjgK LQotUmVtb3ZlcyBwc2xhYiBhcyBpdCBkb2VzbnQgYXBwZWFyCi0tLS0KLSB2bXN0YXQuOCB8ICAg MzcgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdl ZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS92bXN0 YXQuOCBiL3Ztc3RhdC44Ci1pbmRleCBjMDU5ZWMwLi5jOTc4MjZmIDEwMDY0NAotLS0tIGEvdm1z dGF0LjgKLSsrKyBiL3Ztc3RhdC44Ci1AQCAtMSw2ICsxLDYgQEAKLSAuXCIgIFRoaXMgcGFnZSBD b3B5cmlnaHQgKEMpIDE5OTQgSGVucnkgV2FyZSA8YWwxNzJAeWZuLnlzdS5lZHU+Ci0gLlwiICBE aXN0cmlidXRlZCB1bmRlciB0aGUgR1BMLCBDb3B5bGVmdCAxOTk0LgotLS5USCBWTVNUQVQgOCAi MjcgSnVseSAxOTk0ICIgIlRocm9hdHdvYmJsZXIgR2lua2dvIExhYnMiICJMaW51eCBBZG1pbmlz dHJhdG9yJ3MgTWFudWFsIgotKy5USCBWTVNUQVQgOCAiMjAwOSBKYW4gOSIgIlRocm9hdHdvYmJs ZXIgR2lua2dvIExhYnMiICJMaW51eCBBZG1pbmlzdHJhdG9yJ3MgTWFudWFsIgotIC5TSCBOQU1F Ci0gdm1zdGF0IFwtIFJlcG9ydCB2aXJ0dWFsIG1lbW9yeSBzdGF0aXN0aWNzCi0gLlNIIFNZTk9Q U0lTCi1AQCAtMjIsMzIgKzIyLDM1IEBAIHZtc3RhdCBcLSBSZXBvcnQgdmlydHVhbCBtZW1vcnkg c3RhdGlzdGljcwotIC5SQiBbICJcLWQiXQotIC5icgotIC5CIHZtc3RhdAotKy5SQiBbICJcLUQi XQotKy5icgotKy5CIHZtc3RhdAotIC5SQiBbICJcLXAgZGlzayBwYXJ0aXRpb24iXQotIC5icgot IC5CIHZtc3RhdAotIC5SQiBbICJcLVYiIF0KLSAuU0ggREVTQ1JJUFRJT04KLSBcZkJ2bXN0YXRc ZlAgcmVwb3J0cyBpbmZvcm1hdGlvbiBhYm91dCBwcm9jZXNzZXMsIG1lbW9yeSwgcGFnaW5nLAot LWJsb2NrIElPLCB0cmFwcywgYW5kIGNwdSBhY3Rpdml0eS4KLStibG9jayBJTywgdHJhcHMsIGRp c2tzIGFuZCBjcHUgYWN0aXZpdHkuCi0gCi0gVGhlIGZpcnN0IHJlcG9ydCBwcm9kdWNlZCBnaXZl cyBhdmVyYWdlcyBzaW5jZSB0aGUgbGFzdCByZWJvb3QuICBBZGRpdGlvbmFsCi0gcmVwb3J0cyBn aXZlIGluZm9ybWF0aW9uIG9uIGEgc2FtcGxpbmcgcGVyaW9kIG9mIGxlbmd0aCBcZklkZWxheVxm UC4KLSBUaGUgcHJvY2VzcyBhbmQgbWVtb3J5IHJlcG9ydHMgYXJlIGluc3RhbnRhbmVvdXMgaW4g ZWl0aGVyIGNhc2UuCi0gCi0gLlNTIE9wdGlvbnMKLS1UaGUgXGZCLWFcZlAgc3dpdGNoIGRpc3Bs YXlzIGFjdGl2ZS9pbmFjdGl2ZSBtZW1vcnksIGdpdmVuIGEgMi41LjQxIGtlcm5lbCBvciBiZXR0 ZXIuCi0rVGhlIFxmQlwtYVxmUCBzd2l0Y2ggZGlzcGxheXMgYWN0aXZlL2luYWN0aXZlIG1lbW9y eSwgZ2l2ZW4gYSAyLjUuNDEga2VybmVsIG9yIGJldHRlci4KLSAuUFAKLS1UaGUgXGZCLWZcZlAg c3dpdGNoIGRpc3BsYXlzIHRoZSBudW1iZXIgb2YgZm9ya3Mgc2luY2UgYm9vdC4KLStUaGUgXGZC XC1mXGZQIHN3aXRjaCBkaXNwbGF5cyB0aGUgbnVtYmVyIG9mIGZvcmtzIHNpbmNlIGJvb3QuCi0g VGhpcyBpbmNsdWRlcyB0aGUgZm9yaywgdmZvcmssIGFuZCBjbG9uZSBzeXN0ZW0gY2FsbHMsIGFu ZCBpcwotIGVxdWl2YWxlbnQgdG8gdGhlIHRvdGFsIG51bWJlciBvZiB0YXNrcyBjcmVhdGVkLiBF YWNoIHByb2Nlc3MKLSBpcyByZXByZXNlbnRlZCBieSBvbmUgb3IgbW9yZSB0YXNrcywgZGVwZW5k aW5nIG9uIHRocmVhZCB1c2FnZS4KLSBUaGlzIGRpc3BsYXkgZG9lcyBub3QgcmVwZWF0LgotIC5Q UAotLVRoZSBcZkItbVxmUCBkaXNwbGF5cyBzbGFiaW5mby4KLStUaGUgXGZCXC1tXGZQIGRpc3Bs YXlzIHNsYWJpbmZvLgotIC5QUAotLVRoZSBcZkItblxmUCBzd2l0Y2ggY2F1c2VzIHRoZSBoZWFk ZXIgdG8gYmUgZGlzcGxheWVkIG9ubHkgb25jZSByYXRoZXIgdGhhbiBwZXJpb2RpY2FsbHkuCi0r VGhlIFxmQlwtblxmUCBzd2l0Y2ggY2F1c2VzIHRoZSBoZWFkZXIgdG8gYmUgZGlzcGxheWVkIG9u bHkgb25jZSByYXRoZXIgdGhhbiBwZXJpb2RpY2FsbHkuCi0gLlBQCi0tVGhlIFxmQi1zXGZQIHN3 aXRjaCBkaXNwbGF5cyBhIHRhYmxlIG9mIHZhcmlvdXMgZXZlbnQgY291bnRlcnMKLStUaGUgXGZC XC1zXGZQIHN3aXRjaCBkaXNwbGF5cyBhIHRhYmxlIG9mIHZhcmlvdXMgZXZlbnQgY291bnRlcnMK LSBhbmQgbWVtb3J5IHN0YXRpc3RpY3MuIFRoaXMgZGlzcGxheSBkb2VzIG5vdCByZXBlYXQuCi0g LlBQCi0gLkkgZGVsYXkKLUBAIC01OCwxMyArNjEsMTUgQEAgb25seSBvbmUgcmVwb3J0IGlzIHBy aW50ZWQgd2l0aCB0aGUgYXZlcmFnZSB2YWx1ZXMgc2luY2UgYm9vdC4KLSBpcyB0aGUgbnVtYmVy IG9mIHVwZGF0ZXMuICBJZiBubyBjb3VudCBpcyBzcGVjaWZpZWQgYW5kIGRlbGF5IGlzCi0gZGVm aW5lZCwgXGZJY291bnRcZlAgZGVmYXVsdHMgdG8gaW5maW5pdHkuCi0gLlBQCi0tVGhlIFxmQi1k XGZQIHJlcG9ydHMgZGlzayBzdGF0aXN0aWNzICgyLjUuNzAgb3IgYWJvdmUgcmVxdWlyZWQpIAot K1RoZSBcZkJcLWRcZlAgcmVwb3J0cyBkaXNrIHN0YXRpc3RpY3MgKDIuNS43MCBvciBhYm92ZSBy ZXF1aXJlZCkKLSsuUFAKLStUaGUgXGZCLURcZlAgcmVwb3J0cyBzb21lIHN1bW1hcnkgc3RhdGlz dGljcyBhYm91dCBkaXNrIGFjdGl2aXR5LgotIC5QUAotLVRoZSBcZkItcFxmUCBmb2xsb3dlZCBi eSBzb21lIHBhcnRpdGlvbiBuYW1lIGZvciBkZXRhaWxlZCBzdGF0aXN0aWNzICgyLjUuNzAgb3Ig YWJvdmUgcmVxdWlyZWQpIAotK1RoZSBcZkJcLXBcZlAgZm9sbG93ZWQgYnkgc29tZSBwYXJ0aXRp b24gbmFtZSBmb3IgZGV0YWlsZWQgc3RhdGlzdGljcyAoMi41LjcwIG9yIGFib3ZlIHJlcXVpcmVk KQotIC5QUAotLVRoZSBcZkItU1xmUCBmb2xsb3dlZCBieSBrIG9yIEsgb3IgbSBvciBNIHN3aXRj aGVzIG91dHB1dHMgYmV0d2VlbiAxMDAwLCAxMDI0LCAxMDAwMDAwLCBvciAxMDQ4NTc2IGJ5dGVz IAotK1RoZSBcZkJcLVNcZlAgZm9sbG93ZWQgYnkgayBvciBLIG9yIG0gb3IgTSBzd2l0Y2hlcyBv dXRwdXRzIGJldHdlZW4gMTAwMCwgMTAyNCwgMTAwMDAwMCwgb3IgMTA0ODU3NiBieXRlcwotIC5Q UAotLVRoZSBcZkItVlxmUCBzd2l0Y2ggcmVzdWx0cyBpbiBkaXNwbGF5aW5nIHZlcnNpb24gaW5m b3JtYXRpb24uCi0rVGhlIFxmQlwtVlxmUCBzd2l0Y2ggcmVzdWx0cyBpbiBkaXNwbGF5aW5nIHZl cnNpb24gaW5mb3JtYXRpb24uCi0gLlBQCi0gLlNIIEZJRUxEIERFU0NSSVBUSU9OIEZPUiBWTSBN T0RFCi0gLlNTCi1AQCAtODEsOCArODYsOCBAQCBzd3BkOiB0aGUgYW1vdW50IG9mIHZpcnR1YWwg bWVtb3J5IHVzZWQuCi0gZnJlZTogdGhlIGFtb3VudCBvZiBpZGxlIG1lbW9yeS4KLSBidWZmOiB0 aGUgYW1vdW50IG9mIG1lbW9yeSB1c2VkIGFzIGJ1ZmZlcnMuCi0gY2FjaGU6IHRoZSBhbW91bnQg b2YgbWVtb3J5IHVzZWQgYXMgY2FjaGUuCi0taW5hY3Q6IHRoZSBhbW91bnQgb2YgaW5hY3RpdmUg bWVtb3J5LiAoLWEgb3B0aW9uKQotLWFjdGl2ZTogdGhlIGFtb3VudCBvZiBhY3RpdmUgbWVtb3J5 LiAoLWEgb3B0aW9uKQotK2luYWN0OiB0aGUgYW1vdW50IG9mIGluYWN0aXZlIG1lbW9yeS4gKFwt YSBvcHRpb24pCi0rYWN0aXZlOiB0aGUgYW1vdW50IG9mIGFjdGl2ZSBtZW1vcnkuIChcLWEgb3B0 aW9uKQotIC5maQotIC5QUAotIC5TUwotQEAgLTExMCw5ICsxMTUsOSBAQCBjczogVGhlIG51bWJl ciBvZiBjb250ZXh0IHN3aXRjaGVzIHBlciBzZWNvbmQuCi0gLkIgIkNQVSAiCi0gVGhlc2UgYXJl IHBlcmNlbnRhZ2VzIG9mIHRvdGFsIENQVSB0aW1lLgotIC5uZgotLXVzOiBUaW1lIHNwZW50IHJ1 bm5pbmcgbm9uLWtlcm5lbCBjb2RlLiAodXNlciB0aW1lLCBpbmNsdWRpbmcgbmljZSB0aW1lKQot K3VzOiBUaW1lIHNwZW50IHJ1bm5pbmcgbm9uXC1rZXJuZWwgY29kZS4gKHVzZXIgdGltZSwgaW5j bHVkaW5nIG5pY2UgdGltZSkKLSBzeTogVGltZSBzcGVudCBydW5uaW5nIGtlcm5lbCBjb2RlLiAo c3lzdGVtIHRpbWUpCi0taWQ6IFRpbWUgc3BlbnQgaWRsZS4gUHJpb3IgdG8gTGludXggMi41LjQx LCB0aGlzIGluY2x1ZGVzIElPLXdhaXQgdGltZS4KLStpZDogVGltZSBzcGVudCBpZGxlLiBQcmlv ciB0byBMaW51eCAyLjUuNDEsIHRoaXMgaW5jbHVkZXMgSU9cLXdhaXQgdGltZS4KLSB3YTogVGlt ZSBzcGVudCB3YWl0aW5nIGZvciBJTy4gUHJpb3IgdG8gTGludXggMi41LjQxLCBpbmNsdWRlZCBp biBpZGxlLgotIHN0OiBUaW1lIHN0b2xlbiBmcm9tIGEgdmlydHVhbCBtYWNoaW5lLiBQcmlvciB0 byBMaW51eCAyLjYuMTEsIHVua25vd24uCi0gCi1AQCAtMTYxLDggKzE2Niw2IEBAIG51bTogTnVt YmVyIG9mIGN1cnJlbnRseSBhY3RpdmUgb2JqZWN0cwotIHRvdGFsOiBUb3RhbCBudW1iZXIgb2Yg YXZhaWxhYmxlIG9iamVjdHMKLSBzaXplOiBTaXplIG9mIGVhY2ggb2JqZWN0Ci0gcGFnZXM6IE51 bWJlciBvZiBwYWdlcyB3aXRoIGF0IGxlYXN0IG9uZSBhY3RpdmUgb2JqZWN0Ci0tdG90cGFnZXM6 IFRvdGFsIG51bWJlciBvZiBhbGxvY2F0ZWQgcGFnZXMKLS1wc2xhYjogTnVtYmVyIG9mIHBhZ2Vz IHBlciBzbGFiCi0gLmZpCi0gCi0gLlNIIE5PVEVTCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBh L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTgtd2F0Y2guMS5wYXRjaCBiL3BhdGNoZXMvcHJvY3Bz LTMuMi44LzAwMTgtd2F0Y2guMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NDNhNzkwMS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE4LXdhdGNoLjEu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotRnJvbSA2MWU5MmRhZjkyMWI3 YTg1YWM4NjkzMzQxZjg4OTA2NThjNjFmMDQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJv Y3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAx OSBNYXIgMjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENIIDE4LzcwXSB3YXRjaC4x Ci0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLQotIHdhdGNoLjEgfCAgIDQ3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRp b25zKCspLCAxOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3dhdGNoLjEgYi93YXRjaC4x Ci1pbmRleCA0MTMyM2Y0Li4xNjE2Nzk0IDEwMDY0NAotLS0tIGEvd2F0Y2guMQotKysrIGIvd2F0 Y2guMQotQEAgLTEsNDUgKzEsNTQgQEAKLS0uVEggV0FUQ0ggMSAiMTk5OSBBcHIgMyIgIiAiICJM aW51eCBVc2VyJ3MgTWFudWFsIgotKy5USCBXQVRDSCAxICIyMDA5IE1heSAxMSIgIiAiICJMaW51 eCBVc2VyJ3MgTWFudWFsIgotIC5TSCBOQU1FCi0gd2F0Y2ggXC0gZXhlY3V0ZSBhIHByb2dyYW0g cGVyaW9kaWNhbGx5LCBzaG93aW5nIG91dHB1dCBmdWxsc2NyZWVuCi0gLlNIIFNZTk9QU0lTCi0r Lm5hCi0gLkIgd2F0Y2gKLS0uSSBbXC1kaHZ0XSBbXC1uIDxzZWNvbmRzPl0gW1wtXC1kaWZmZXJl bmNlc1s9Y3VtdWxhdGl2ZV1dIFtcLVwtaGVscF0gW1wtXC1pbnRlcnZhbD08c2Vjb25kcz5dIFtc LVwtbm9cLXRpdGxlXSBbXC1cLXZlcnNpb25dIDxjb21tYW5kPgotKy5SQiBbIFwtZGh2dCBdCi0r LlJCIFsgXC1uCi0rLklSIHNlY29uZHMgXQotKy5SQiBbIFwtXC1kaWZmZXJlbmNlc1s9XGZJY3Vt dWxhdGl2ZVxmUF1dCi0rLlJCIFsgXC1cLWhlbHAgXQotKy5SQiBbIFwtXC1pbnRlcnZhbD1cZklz ZWNvbmRzXGZQXQotKy5SQiBbIFwtXC1ub1wtdGl0bGUgXQotKy5SQiBbIFwtXC12ZXJzaW9uIF0K LSsuSSBjb21tYW5kCi0gLlNIIERFU0NSSVBUSU9OCi0tLkJSIHdhdGNoCi0rLkIgd2F0Y2gKLSBy dW5zCi0gLkkgY29tbWFuZAotIHJlcGVhdGVkbHksIGRpc3BsYXlpbmcgaXRzIG91dHB1dCAodGhl IGZpcnN0IHNjcmVlbmZ1bGwpLiAgVGhpcyBhbGxvd3MgeW91IHRvCi0gd2F0Y2ggdGhlIHByb2dy YW0gb3V0cHV0IGNoYW5nZSBvdmVyIHRpbWUuICBCeSBkZWZhdWx0LCB0aGUgcHJvZ3JhbSBpcyBy dW4KLSBldmVyeSAyIHNlY29uZHM7IHVzZSAKLS0uSSAtbgotKy5CIFwtbgotIG9yCi0tLkkgLS1p bnRlcnZhbAotKy5CIFwtXC1pbnRlcnZhbAotIHRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgaW50ZXJ2 YWwuCi0gLlBQCi0gVGhlCi0tLkkgLWQKLSsuQiBcLWQKLSBvcgotLS5JIC0tZGlmZmVyZW5jZXMK LS1mbGFnIHdpbGwgaGlnaGxpZ2h0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHN1Y2Nlc3NpdmUg dXBkYXRlcy4gIFRoZSAKLS0uSSAtLWN1bXVsYXRpdmUKLS1vcHRpb24gbWFrZXMgaGlnaGxpZ2h0 aW5nICJzdGlja3kiLCBwcmVzZW50aW5nIGEgcnVubmluZyBkaXNwbGF5IG9mIGFsbAotKy5CIFwt XC1kaWZmZXJlbmNlcwotK2ZsYWcgd2lsbCBoaWdobGlnaHQgdGhlIGRpZmZlcmVuY2VzIGJldHdl ZW4gc3VjY2Vzc2l2ZSB1cGRhdGVzLiAgVXNpbmcKLSsuQiBcLVwtZGlmZmVyZW5jZXM9XGZJY3Vt dWxhdGl2ZVxmUAotK21ha2VzIGhpZ2hsaWdodGluZyAic3RpY2t5IiwgcHJlc2VudGluZyBhIHJ1 bm5pbmcgZGlzcGxheSBvZiBhbGwKLSBwb3NpdGlvbnMgdGhhdCBoYXZlIGV2ZXIgY2hhbmdlZC4g IFRoZQotLS5JIC10Ci0rLkIgXC10Ci0gb3IKLS0uSSAtLW5vLXRpdGxlCi0rLkIgXC1cLW5vXC10 aXRsZQotIG9wdGlvbiB0dXJucyBvZmYgdGhlIGhlYWRlciBzaG93aW5nIHRoZSBpbnRlcnZhbCwg Y29tbWFuZCwgYW5kIGN1cnJlbnQKLSB0aW1lIGF0IHRoZSB0b3Agb2YgdGhlIGRpc3BsYXksIGFz IHdlbGwgYXMgdGhlIGZvbGxvd2luZyBibGFuayBsaW5lLgotIC5QUAotLS5CUiB3YXRjaAotKy5C IHdhdGNoCi0gd2lsbCBydW4gdW50aWwgaW50ZXJydXB0ZWQuCi0gLlNIIE5PVEUKLSBOb3RlIHRo YXQKLSAuSSBjb21tYW5kCi0taXMgZ2l2ZW4gdG8gInNoIC1jIgotK2lzIGdpdmVuIHRvICJzaCBc LWMiCi0gd2hpY2ggbWVhbnMgdGhhdCB5b3UgbWF5IG5lZWQgdG8gdXNlIGV4dHJhIHF1b3Rpbmcg dG8gZ2V0IHRoZSBkZXNpcmVkIGVmZmVjdC4KLSAuUFAKLSBOb3RlIHRoYXQgUE9TSVggb3B0aW9u IHByb2Nlc3NpbmcgaXMgdXNlZCAoaS5lLiwgb3B0aW9uIHByb2Nlc3Npbmcgc3RvcHMgYXQKLS10 aGUgZmlyc3Qgbm9uLW9wdGlvbiBhcmd1bWVudCkuICBUaGlzIG1lYW5zIHRoYXQgZmxhZ3MgYWZ0 ZXIKLSt0aGUgZmlyc3Qgbm9uXC1vcHRpb24gYXJndW1lbnQpLiAgVGhpcyBtZWFucyB0aGF0IGZs YWdzIGFmdGVyCi0gLkkgY29tbWFuZAotIGRvbid0IGdldCBpbnRlcnByZXRlZCBieQotIC5CUiB3 YXRjaAotQEAgLTYxLDIwICs3MCwyMCBAQCB3YXRjaCBcLWQgJ2xzIFwtbCB8IGZncmVwIGpvZScK LSBUbyBzZWUgdGhlIGVmZmVjdHMgb2YgcXVvdGluZywgdHJ5IHRoZXNlIG91dAotIC5JUAotIHdh dGNoIGVjaG8gJCQKLS0uSVAKLSsuYnIKLSB3YXRjaCBlY2hvICckJCcKLS0uSVAKLSsuYnIKLSB3 YXRjaCBlY2hvICInIickJCciJyIKLSAuUFAKLSBZb3UgY2FuIHdhdGNoIGZvciB5b3VyIGFkbWlu aXN0cmF0b3IgdG8gaW5zdGFsbCB0aGUgbGF0ZXN0IGtlcm5lbCB3aXRoCi0gLklQCi0td2F0Y2gg dW5hbWUgLXIKLSt3YXRjaCB1bmFtZSBcLXIKLSAuUFAKLSAoSnVzdCBraWRkaW5nLikKLSAuU0gg QlVHUwotIFVwb24gdGVybWluYWwgcmVzaXplLCB0aGUgc2NyZWVuIHdpbGwgbm90IGJlIGNvcnJl Y3RseSByZXBhaW50ZWQgdW50aWwgdGhlCi0gbmV4dCBzY2hlZHVsZWQgdXBkYXRlLiAgQWxsCi0t LkkgLS1kaWZmZXJlbmNlcwotKy5CIFwtXC1kaWZmZXJlbmNlcwotIGhpZ2hsaWdodGluZyBpcyBs b3N0IG9uIHRoYXQgdXBkYXRlIGFzIHdlbGwuCi0gLlBQCi0gTm9uLXByaW50aW5nIGNoYXJhY3Rl cnMgYXJlIHN0cmlwcGVkIGZyb20gcHJvZ3JhbSBvdXRwdXQuICBVc2UgImNhdCAtdiIgYXMKLS0t IAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxOS13X3RpbWUu cGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE5LXdfdGltZS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMTMyMGNiZS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nw cy0zLjIuOC8wMDE5LXdfdGltZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAK LUZyb20gNTc1MDZlZGZiMTJiY2I3YjE0ZDg2MTRkOWU3OTg3MmJlZWNhMDVhOSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9v bC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFu Lm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQ QVRDSCAxOS83MF0gd190aW1lCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHcuYyB8ICAgIDIgKy0KLSAx IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL3cuYyBiL3cuYwotaW5kZXggMWIyYTBmYy4uYTZiMWIyNSAxMDA2NDQKLS0tLSBhL3cu YwotKysrIGIvdy5jCi1AQCAtODMsNyArODMsNyBAQCBzdGF0aWMgdm9pZCBwcmludF90aW1lX2l2 YWw3KHRpbWVfdCB0LCBpbnQgY2VudGlfc2VjLCBGSUxFKiBmb3V0KSB7Ci0gICAgIGVsc2UgaWYg KHQgPiA2MCkJCQkJLyogPiAxIG1pbnV0ZSAqLwotIAlmcHJpbnRmKGZvdXQsICIgJTJsdTolMDJ1 ICIsIHQvNjAsICh1bnNpZ25lZCkgdCU2MCk7Ci0gICAgIGVsc2UKLS0JZnByaW50Zihmb3V0LCAi ICUybHUuJTAydXMiLCB0LCBjZW50aV9zZWMpOwotKyAgICBmcHJpbnRmKGZvdXQsICIgJTJsdS4l MDJ1cyIsIHQsIGNlbnRpX3NlYyk7Ci0gfQotIAotIC8qKioqIHN0YXQgdGhlIGRldmljZSBmaWxl IHRvIGdldCBhbiBpZGxlIHRpbWUgKi8KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDAyMC1raWxsLjEucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDIwLWtpbGwuMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE3YTU0OS4u MDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDIwLWtpbGwuMS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi1Gcm9tIDA1NDAzZjhlYjFhMmZiNGQwYzAzMDM0 NjMzZTg2MjZmZmZiMzM2ODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8v ZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgt OC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEw IDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMjAvNzBdIGtpbGwuMQotCi1DaGFuZ2Vk IG1heSB0byBjYW5ub3Qgb3IgbWlnaHQKLUJ1Zy1EZWJpYW46IGh0dHA6Ly9idWdzLmRlYmlhbi5v cmcvMzc1NzM5Ci0tLS0KLSBraWxsLjEgfCAgIDg2ICsrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwg MzcgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9raWxsLjEg Yi9raWxsLjEKLWluZGV4IGFlZjlkYmYuLmRmMWJkZDcgMTAwNjQ0Ci0tLS0gYS9raWxsLjEKLSsr KyBiL2tpbGwuMQotQEAgLTEwLDIzICsxMCwxOCBAQAotIGtpbGwgXC0gc2VuZCBhIHNpZ25hbCB0 byBhIHByb2Nlc3MKLSAKLSAuU0ggU1lOT1BTSVMKLS0uVFMKLS1sIGwuCi0ta2lsbCBwaWQgLi4u CVNlbmQgU0lHVEVSTSB0byBldmVyeSBwcm9jZXNzIGxpc3RlZC4KLS1raWxsIC1zaWduYWwgcGlk IC4uLglTZW5kIGEgc2lnbmFsIHRvIGV2ZXJ5IHByb2Nlc3MgbGlzdGVkLgotLWtpbGwgLXMgc2ln bmFsIHBpZCAuLi4JU2VuZCBhIHNpZ25hbCB0byBldmVyeSBwcm9jZXNzIGxpc3RlZC4KLS1raWxs IC1sCUxpc3QgYWxsIHNpZ25hbCBuYW1lcy4KLS1raWxsIC1MCUxpc3QgYWxsIHNpZ25hbCBuYW1l cyBpbiBhIG5pY2UgdGFibGUuCi0ta2lsbCAtbCBzaWduYWwJQ29udmVydCBhIHNpZ25hbCBudW1i ZXIgaW50byBhIG5hbWUuCi0ta2lsbCAtViwtLXZlcnNpb24JU2hvdyB2ZXJzaW9uIG9mIHByb2dy YW0KLS0uVEUKLStcZkJraWxsXGZSIFsgXC1cZkJzaWduYWxcZlIgfCBcLXMgXGZCc2lnbmFsXGZS IF0gXGZCcGlkXGZSIC4uLgotKy5icgotK1xmQmtpbGxcZlIgWyBcLUwgfCAtViwgXC1cLXZlcnNp b24gXQotKy5icgotK1xmQmtpbGxcZlIgXC1sICBbIFxmQnNpZ25hbFxmUiBdCi0gCi0gLlNIIERF U0NSSVBUSU9OCi0tVGhlIGRlZmF1bHQgc2lnbmFsIGZvciBraWxsIGlzIFRFUk0uIFVzZSAtbCBv ciAtTCB0byBsaXN0IGF2YWlsYWJsZSBzaWduYWxzLgotK1RoZSBkZWZhdWx0IHNpZ25hbCBmb3Ig a2lsbCBpcyBURVJNLiBVc2UgXC1sIG9yIFwtTCB0byBsaXN0IGF2YWlsYWJsZSBzaWduYWxzLgot IFBhcnRpY3VsYXJseSB1c2VmdWwgc2lnbmFscyBpbmNsdWRlIEhVUCwgSU5ULCBLSUxMLCBTVE9Q LCBDT05ULCBhbmQgMC4KLS1BbHRlcm5hdGUgc2lnbmFscyBtYXkgYmUgc3BlY2lmaWVkIGluIHRo cmVlIHdheXM6IC05IC1TSUdLSUxMIC1LSUxMLgotK0FsdGVybmF0ZSBzaWduYWxzIG1heSBiZSBz cGVjaWZpZWQgaW4gdGhyZWUgd2F5czogXC05IFwtU0lHS0lMTCBcLUtJTEwuCi0gTmVnYXRpdmUg UElEIHZhbHVlcyBtYXkgYmUgdXNlZCB0byBjaG9vc2Ugd2hvbGUgcHJvY2VzcyBncm91cHM7IHNl ZSB0aGUKLS1QR0lEIGNvbHVtbiBpbiBwcyBjb21tYW5kIG91dHB1dC4gQSBQSUQgb2YgLTEgaXMg c3BlY2lhbDsgaXQgaW5kaWNhdGVzCi0rUEdJRCBjb2x1bW4gaW4gcHMgY29tbWFuZCBvdXRwdXQu IEEgUElEIG9mIFwtMSBpcyBzcGVjaWFsOyBpdCBpbmRpY2F0ZXMKLSBhbGwgcHJvY2Vzc2VzIGV4 Y2VwdCB0aGUga2lsbCBwcm9jZXNzIGl0c2VsZiBhbmQgaW5pdC4KLSAKLSAuU0ggU0lHTkFMUwot QEAgLTM3LDEyICszMiwxMSBAQCBXaGVuIGtub3duIGNvbnN0YW50LCBudW1iZXJzIGFuZCBkZWZh dWx0IGJlaGF2aW9yIGFyZSBzaG93bi4KLSBsQiByQiBsQiBsQgotIGxmQ1cgciBsIGwuCi0gTmFt ZQlOdW0JQWN0aW9uCURlc2NyaXB0aW9uCi0tLlRICi0gMAkwCW4vYQlleGl0IGNvZGUgaW5kaWNh dGVzIGlmIGEgc2lnbmFsIG1heSBiZSBzZW50Ci0gQUxSTQkxNAlleGl0Ci0gSFVQCTEJZXhpdAot IElOVAkyCWV4aXQKLS1LSUxMCTkJZXhpdAl0aGlzIHNpZ25hbCBtYXkgbm90IGJlIGJsb2NrZWQK LStLSUxMCTkJZXhpdAljYW5ub3QgYmUgYmxvY2tlZAotIFBJUEUJMTMJZXhpdAotIFBPTEwJCWV4 aXQKLSBQUk9GCQlleGl0Ci1AQCAtNTAsMTUgKzQ0LDE1IEBAIFRFUk0JMTUJZXhpdAotIFVTUjEJ CWV4aXQKLSBVU1IyCQlleGl0Ci0gVlRBTFJNCQlleGl0Ci0tU1RLRkxUCQlleGl0CW1heSBub3Qg YmUgaW1wbGVtZW50ZWQKLS1QV1IJCWlnbm9yZQltYXkgZXhpdCBvbiBzb21lIHN5c3RlbXMKLStT VEtGTFQJCWV4aXQJbWlnaHQgbm90IGJlIGltcGxlbWVudGVkCi0rUFdSCQlpZ25vcmUJbWlnaHQg ZXhpdCBvbiBzb21lIHN5c3RlbXMKLSBXSU5DSAkJaWdub3JlCi0gQ0hMRAkJaWdub3JlCi0gVVJH CQlpZ25vcmUKLS1UU1RQCQlzdG9wCW1heSBpbnRlcmFjdCB3aXRoIHRoZSBzaGVsbAotLVRUSU4J CXN0b3AJbWF5IGludGVyYWN0IHdpdGggdGhlIHNoZWxsCi0tVFRPVQkJc3RvcAltYXkgaW50ZXJh Y3Qgd2l0aCB0aGUgc2hlbGwKLS1TVE9QCQlzdG9wCXRoaXMgc2lnbmFsIG1heSBub3QgYmUgYmxv Y2tlZAotK1RTVFAJCXN0b3AJbWlnaHQgaW50ZXJhY3Qgd2l0aCB0aGUgc2hlbGwKLStUVElOCQlz dG9wCW1pZ2h0IGludGVyYWN0IHdpdGggdGhlIHNoZWxsCi0rVFRPVQkJc3RvcAltaWdodCBpbnRl cmFjdCB3aXRoIHRoZSBzaGVsbAotK1NUT1AJCXN0b3AJY2Fubm90IGJlIGJsb2NrZWQKLSBDT05U CQlyZXN0YXJ0CWNvbnRpbnVlIGlmIHN0b3BwZWQsIG90aGVyd2lzZSBpZ25vcmUKLSBBQlJUCTYJ Y29yZQotIEZQRQk4CWNvcmUKLUBAIC02NiwxMSArNjAsMTEgQEAgSUxMCTQJY29yZQotIFFVSVQJ Mwljb3JlCi0gU0VHVgkxMQljb3JlCi0gVFJBUAk1CWNvcmUKLS1TWVMJCWNvcmUJbWF5IG5vdCBi ZSBpbXBsZW1lbnRlZAotLUVNVAkJY29yZQltYXkgbm90IGJlIGltcGxlbWVudGVkCi0tQlVTCQlj b3JlCWNvcmUgZHVtcCBtYXkgZmFpbAotLVhDUFUJCWNvcmUJY29yZSBkdW1wIG1heSBmYWlsCi0t WEZTWgkJY29yZQljb3JlIGR1bXAgbWF5IGZhaWwKLStTWVMJCWNvcmUJbWlnaHQgbm90IGJlIGlt cGxlbWVudGVkCi0rRU1UCQljb3JlCW1pZ2h0IG5vdCBiZSBpbXBsZW1lbnRlZAotK0JVUwkJY29y ZQljb3JlIGR1bXAgbWlnaHQgZmFpbAotK1hDUFUJCWNvcmUJY29yZSBkdW1wIG1pZ2h0IGZhaWwK LStYRlNaCQljb3JlCWNvcmUgZHVtcCBtaWdodCBmYWlsCi0gLlRFCi0gCi0gLlNIIE5PVEVTCi1A QCAtNzksMzYgKzczLDMwIEBAIFlvdSBtYXkgbmVlZCB0byBydW4gdGhlIGNvbW1hbmQgZGVzY3Jp YmVkIGhlcmUgYXMgL2Jpbi9raWxsIHRvIHNvbHZlCi0gdGhlIGNvbmZsaWN0LgotIAotIC5TSCBF WEFNUExFUwotLQotLS5TUwotLS5CICJraWxsIC05IC0xIgotLS5uZgotKy5UUAotKy5CIGtpbGwg XC05IFwtMQotIEtpbGwgYWxsIHByb2Nlc3NlcyB5b3UgY2FuIGtpbGwuCi0tLmZpCi0tLlBQCi0t LlNTCi0tLkIgImtpbGwgLWwgMTEiCi0tLm5mCi0rLlRQCi0rLkIga2lsbCBcLWwgMTEKLSBUcmFu c2xhdGUgbnVtYmVyIDExIGludG8gYSBzaWduYWwgbmFtZS4KLS0uZmkKLS0uUFAKLS0uU1MKLS0u QiAia2lsbCAtTCIKLS0ubmYKLSsuVFAKLSsuQiBraWxsIC1MCi0gTGlzdCB0aGUgYXZhaWxhYmxl IHNpZ25hbCBjaG9pY2VzIGluIGEgbmljZSB0YWJsZS4KLS0uZmkKLS0uUFAKLS0uU1MKLS0uQiAi a2lsbCAxMjMgNTQzIDIzNDEgMzQ1MyIKLS0ubmYKLSsuVFAKLSsuQiBraWxsIDEyMyA1NDMgMjM0 MSAzNDUzCi0gU2VuZCB0aGUgZGVmYXVsdCBzaWduYWwsIFNJR1RFUk0sIHRvIGFsbCB0aG9zZSBw cm9jZXNzZXMuCi0tLmZpCi0tLlBQCi0rCi0gLlNIICJTRUUgQUxTTyIKLS1wa2lsbCgxKSBza2ls bCgxKSBraWxsKDIpIHJlbmljZSgxKSBuaWNlKDEpIHNpZ25hbCg3KSBraWxsYWxsKDEpCi0rLkJS IHBraWxsICgxKSwKLSsuQlIgc2tpbGwgKDEpLAotKy5CUiBraWxsICgyKSwKLSsuQlIgcmVuaWNl ICgxKSwKLSsuQlIgbmljZSAoMSksCi0rLkJSIHNpZ25hbCAoNyksCi0rLkJSIGtpbGxhbGwgKDEp LgotIAotIC5TSCBTVEFOREFSRFMKLS1UaGlzIGNvbW1hbmQgbWVldHMgYXBwcm9wcmlhdGUgc3Rh bmRhcmRzLiBUaGUgLUwgZmxhZyBpcyBMaW51eC1zcGVjaWZpYy4KLStUaGlzIGNvbW1hbmQgbWVl dHMgYXBwcm9wcmlhdGUgc3RhbmRhcmRzLiBUaGUgXC1MIGZsYWcgaXMgTGludXgtc3BlY2lmaWMu Ci0gCi0gLlNIIEFVVEhPUgotIEFsYmVydCBDYWhhbGFuIDxhbGJlcnRAdXNlcnMuc2YubmV0PiB3 cm90ZSBraWxsIGluIDE5OTkgdG8gcmVwbGFjZSBhCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBh L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjEta2lsbF93YXJuY3IucGF0Y2ggYi9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDIxLWtpbGxfd2FybmNyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBmNDhiYTgwLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjEt a2lsbF93YXJuY3IucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi1Gcm9tIDA3 ZDkzZDFmMmY1YTI5OWQ0Mjc5YTBmZTNiNjllZmViOTQzNTA5ZGQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9w L3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1E YXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMjEv NzBdIGtpbGxfd2FybmNyCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHNraWxsLmMgfCAgICA0ICsrLS0K LSAxIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3NraWxsLmMgYi9za2lsbC5jCi1pbmRleCA1NGQ0YzQ4Li5jOGFmOWZkIDEwMDY0 NAotLS0tIGEvc2tpbGwuYwotKysrIGIvc2tpbGwuYwotQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0 aWMgdm9pZCBjaGVja19wcm9jKGludCBwaWQpewotICAgc3ByaW50ZihidWYsICIvcHJvYy8lZC9z dGF0IiwgcGlkKTsgLyogcGlkIChjbWQpIHN0YXRlIHBwaWQgcGdycCBzZXNzaW9uIHR0eSAqLwot ICAgZmQgPSBvcGVuKGJ1ZixPX1JET05MWSk7Ci0gICBpZihmZD09LTEpeyAgLyogcHJvY2VzcyBl eGl0ZWQgbWF5YmUgKi8KLS0gICAgaWYocGlkcyAmJiB3X2ZsYWcpIHByaW50ZigiV0FSTklORzog cHJvY2VzcyAlZCBjb3VsZCBub3QgYmUgZm91bmQuIixwaWQpOwotKyAgICBpZihwaWRzICYmIHdf ZmxhZykgcHJpbnRmKCJXQVJOSU5HOiBwcm9jZXNzICVkIGNvdWxkIG5vdCBiZSBmb3VuZC5cbiIs cGlkKTsKLSAgICAgcmV0dXJuOwotICAgfQotICAgZnN0YXQoZmQsICZzdGF0YnVmKTsKLUBAIC0z NDIsNyArMzQyLDcgQEAgc3RhdGljIHZvaWQgc2tpbGxzbmljZV91c2FnZSh2b2lkKXsKLSAgIH1l bHNlewotICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAiVXNhZ2U6ICAgc25pY2UgW25ldyBw cmlvcml0eV0gW29wdGlvbnNdIHByb2Nlc3Mgc2VsZWN0aW9uIGNyaXRlcmlhXG4iCi0tICAgICAg IkV4YW1wbGU6IHNuaWNlIG5ldHNjYXBlIGNyYWNrICs3XG4iCi0rICAgICAgIkV4YW1wbGU6IHNu aWNlICs3IG5ldHNjYXBlIGNyYWNrIFxuIgotICAgICAgICJcbiIKLSAgICAgICAiVGhlIGRlZmF1 bHQgcHJpb3JpdHkgaXMgKzQuIChzbmljZSArNCAuLi4pXG4iCi0gICAgICAgIlByaW9yaXR5IG51 bWJlcnMgcmFuZ2UgZnJvbSArMjAgKHNsb3dlc3QpIHRvIC0yMCAoZmFzdGVzdCkuXG4iCi0tLSAK LTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjItbW9kdWxlX21r X3NoYXJlZC5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjItbW9kdWxlX21rX3NoYXJl ZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTc1ZTI5MS4uMDAwMDAwMAot LS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDIyLW1vZHVsZV9ta19zaGFyZWQucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1Gcm9tIDIwYWVmOTJjZTk4ZWZiOWFmYzhkYTE1 MTM1YTExZGM4NGUzMTFkNTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8v ZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgt OC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEw IDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMjIvNzBdIG1vZHVsZV9ta19zaGFyZWQK LQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tCi0gcHJvYy9tb2R1bGUubWsgfCAgICAyICstCi0gMSBmaWxlcyBj aGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9w cm9jL21vZHVsZS5tayBiL3Byb2MvbW9kdWxlLm1rCi1pbmRleCBhZjIwMzM0Li5jNGU4NWI0IDEw MDY0NAotLS0tIGEvcHJvYy9tb2R1bGUubWsKLSsrKyBiL3Byb2MvbW9kdWxlLm1rCi1AQCAtMTcs NyArMTcsNyBAQAotICMgbnVtYmVycyBmb3IgZnV0dXJlIHVzZSwgdGhlIEVMRiBzb25hbWUgY2Fu IGJlIHNldCBlcXVhbCB0byB0aGUKLSAjIGZpbGUgbmFtZSB1bnRpbCBzb21lIGZ1dHVyZSBkYXRl IHdoZW4gYSBzdGFibGUgQUJJIGlzIGRlY2xhcmVkLgotIAotLVNIQVJFRCAgICAgOj0gMQotK1NI QVJFRCAgICAgPz0gMQotIAotICMgZm9yIGxpYiQoTkFNRSkuc28gYW5kIC91c3IvaW5jbHVkZS8o JE5BTUUpIGFuZCBzdWNoCi0gTkFNRSAgICAgICA6PSAgcHJvYwotLS0gCi0xLjcuMAotCmRpZmYg LS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDIzLXN5c2luZm9fZWxmbm90ZS5wYXRjaCBi L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjMtc3lzaW5mb19lbGZub3RlLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzAzY2Q0Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMjMtc3lzaW5mb19lbGZub3RlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MzIgKzAsMCBAQAotRnJvbSA4ZGY3ZGNiODQ1ZjgwZDdlYmI0NmE1OTQyYTY4NDE2NDU3N2I1YmVl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3Jn L2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8 aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAot U3ViamVjdDogW1BBVENIIDIzLzcwXSBzeXNpbmZvX2VsZm5vdGUKLQotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t Ci0gcHJvYy9zeXNpbmZvLmMgfCAgICAzICsrLQotIDEgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHJvYy9zeXNpbmZvLmMgYi9w cm9jL3N5c2luZm8uYwotaW5kZXggY2Q1OTUzNC4uNDczNjM0ZiAxMDA2NDQKLS0tLSBhL3Byb2Mv c3lzaW5mby5jCi0rKysgYi9wcm9jL3N5c2luZm8uYwotQEAgLTIyMSwxMiArMjIxLDEzIEBAIHN0 YXRpYyB2b2lkIGluaXRfbGlicHJvYyh2b2lkKXsKLSAgIC8vIF9TQ19OUFJPQ0VTU09SU19PTkxO IHJldHVybnMgMSwgd2hpY2ggc2hvdWxkIHdvcmsgT0sKLSAgIHNtcF9udW1fY3B1cyA9IHN5c2Nv bmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOwotICAgaWYoc21wX251bV9jcHVzPDEpIHNtcF9udW1f Y3B1cz0xOyAvKiBTUEFSQyBnbGliYyBpcyBidWdneSAqLwotLQotKyNpZmRlZiBfX2xpbnV4X18K LSAgIGlmKGxpbnV4X3ZlcnNpb25fY29kZSA+IExJTlVYX1ZFUlNJT04oMiwgNCwgMCkpeyAKLSAg ICAgSGVydHogPSBmaW5kX2VsZl9ub3RlKEFUX0NMS1RDSyk7Ci0gICAgIGlmKEhlcnR6IT1OT1RF X05PVF9GT1VORCkgcmV0dXJuOwotICAgICBmcHV0cygiMi40KyBrZXJuZWwgdy9vIEVMRiBub3Rl cz8gLS0gcmVwb3J0IHRoaXNcbiIsIHN0ZGVycik7Ci0gICB9Ci0rI2VuZGlmCi0gICBvbGRfSGVy dHpfaGFjaygpOwotIH0KLSAKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9j cHMtMy4yLjgvMDAyNC10b3AuMS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjQtdG9w LjEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2MzZmZjQuLjAwMDAwMDAK LS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNC10b3AuMS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDQyNyArMCwwIEBACi1Gcm9tIDEyZmIzMzgyYTMwMDIwOTBhYjgxMWE3Nzk1NTY1MjI1 NjBmMjY2OWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRl Ymlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4u dGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2 ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMjQvNzBdIHRvcC4xCi0KLUZpeCBwYWdlIGZhdWx0IGRl c2NyaXB0aW9uIGJlY2F1c2Ugc3RvcmFnZSBtYXkgbm90IGJlIGRpc2sKLUF1dGhvcjogQ3JhaWcg U21hbGwgPGNzbWFsbEBkZWJpYW4ub3JnPgotLS0tCi0gdG9wLjEgfCAgMTEwICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g MSBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3RvcC4xIGIvdG9wLjEKLWluZGV4IGFlZWUzYzkuLmIwY2VjMmQgMTAwNjQ0Ci0t LS0gYS90b3AuMQotKysrIGIvdG9wLjEKLUBAIC00Miw3ICs0Miw3IEBACi0gLmRzIEVNIFwgXGZC XC1cLVwgXGZSCi0gXCMgICAgICAgICAgICAgICAgICAgICAgICAgIC0gdGhlc2UgdHdvIGFyZSBm b3IgY2h1Y2tsZXMsIG1ha2VzIGdyZWF0IGdyYW1tYXIKLSAuZHMgTWUgdG9wCi0tLmRzIE1FIFxm QnRvcFxmUgotKy5kcyBORSBcZkJ0b3BcZlIKLSBcIyAgICAgICAgICAgICAgICAgICAgICAgICAg LSBvdGhlciBtaXNjIHN0cmluZ3MgZm9yIGNvbnNpc3RlbnQgdXNhZ2UvZW1waGFzaXMKLSAuZHMg RiBcZklPZmZcZlIKLSAuZHMgTyBcZklPblxmUgotQEAgLTg1LDcgKzg1LDcgQEAgdG9wIFwtIGRp c3BsYXkgTGludXggdGFza3MKLSAuXCIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIC5TSCBTWU5PUFNJUwotIC5c IiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0tXCooTUUgXC1cZkJodlxmUiB8IFwtXGZCYmNIaXNTXGZSIFwtXGZC ZFxmSSBkZWxheVxmUiBcLVxmQm5cZkkKLStcKihORSBcLVxmQmh2XGZSIHwgXC1cZkJiY0hpc1Nc ZlIgXC1cZkJkXGZJIGRlbGF5XGZSIFwtXGZCblxmSQotIGl0ZXJhdGlvbnNcZlIgXC1cZkJwXGZJ IHBpZFxmUiBbLFxmSSBwaWRcZlIgLi4uXQotIAotIFRoZSB0cmFkaXRpb25hbCBzd2l0Y2hlcyAn LScgYW5kIHdoaXRlc3BhY2UgYXJlIG9wdGlvbmFsLgotQEAgLTk0LDcgKzk0LDcgQEAgVGhlIHRy YWRpdGlvbmFsIHN3aXRjaGVzICctJyBhbmQgd2hpdGVzcGFjZSBhcmUgb3B0aW9uYWwuCi0gLlwi IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSAuU0ggREVTQ1JJUFRJT04KLSAuXCIgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLVRo ZSBcKihNRSBwcm9ncmFtIHByb3ZpZGVzIGEgZHluYW1pYyByZWFsLXRpbWUgdmlldyBvZiBhIHJ1 bm5pbmcgc3lzdGVtLgotK1RoZSBcKihORSBwcm9ncmFtIHByb3ZpZGVzIGEgZHluYW1pYyByZWFs LXRpbWUgdmlldyBvZiBhIHJ1bm5pbmcgc3lzdGVtLgotIEl0IGNhbiBkaXNwbGF5XGZCIHN5c3Rl bVxmUiBzdW1tYXJ5IGluZm9ybWF0aW9uIGFzIHdlbGwgYXMgYSBsaXN0IG9mXGZCCi0gdGFza3Nc ZlIgY3VycmVudGx5IGJlaW5nIG1hbmFnZWQgYnkgdGhlIExpbnV4IGtlcm5lbC4KLSBUaGUgdHlw ZXMgb2Ygc3lzdGVtIHN1bW1hcnkgaW5mb3JtYXRpb24gc2hvd24gYW5kIHRoZSB0eXBlcywgb3Jk ZXIgYW5kCi1AQCAtMTA0LDcgKzEwNCw3IEBAIHRoYXQgY29uZmlndXJhdGlvbiBjYW4gYmUgbWFk ZSBwZXJzaXN0ZW50IGFjcm9zcyByZXN0YXJ0cy4KLSBUaGUgcHJvZ3JhbSBwcm92aWRlcyBhIGxp bWl0ZWQgaW50ZXJhY3RpdmUgaW50ZXJmYWNlIGZvciBwcm9jZXNzCi0gbWFuaXB1bGF0aW9uIGFz IHdlbGwgYXMgYSBtdWNoIG1vcmUgZXh0ZW5zaXZlIGludGVyZmFjZSBmb3IgcGVyc29uYWwKLSBj b25maWd1cmF0aW9uIFwqKEVNIGVuY29tcGFzc2luZyBldmVyeSBhc3BlY3Qgb2YgaXRzIG9wZXJh dGlvbi4KLS1BbmQgd2hpbGUgXCooTUUgaXMgcmVmZXJyZWQgdG8gdGhyb3VnaG91dCB0aGlzIGRv Y3VtZW50LCB5b3UgYXJlIGZyZWUKLStBbmQgd2hpbGUgXCooTkUgaXMgcmVmZXJyZWQgdG8gdGhy b3VnaG91dCB0aGlzIGRvY3VtZW50LCB5b3UgYXJlIGZyZWUKLSB0byBuYW1lIHRoZSBwcm9ncmFt IGFueXRoaW5nIHlvdSB3aXNoLgotIFRoYXQgbmV3IG5hbWUsIHBvc3NpYmx5IGFuIGFsaWFzLCB3 aWxsIHRoZW4gYmUgcmVmbGVjdGVkIG9uIFwqKE1lJ3MgZGlzcGxheQotIGFuZCB1c2VkIHdoZW4g cmVhZGluZyBhbmQgd3JpdGluZyBhIFwqKENGLgotQEAgLTE5MCw3ICsxOTAsNyBAQCBjb21tYW5k LWxpbmUuCi0gICAgICAgICdJJyAtIElyaXggbW9kZSAgICAgICAgT25cIFwgKG5vLCAnc29sYXJp cycgc21wKQotICAgICAgKiAncCcgLSBQSUQgbW9uaXRvcmluZyAgIE9mZgotICAgICAgKiAncycg LSBTZWN1cmUgbW9kZSAgICAgIE9mZiAodW5zZWN1cmVkKQotLSAgICAgICAnQicgLSBCb2xkIGRp c2FibGUgICAgIE9mZgotKyAgICAgICAnQicgLSBCb2xkIGVuYWJsZSAgICAgIE9mZgotICAgICBc ZklTdW1tYXJ5X0FyZWFfZGVmYXVsdHNcZlIKLSAgICAgICAgJ2wnIC0gTG9hZCBBdmcvVXB0aW1l ICBPblwgXCAodGh1cyBwcm9ncmFtIG5hbWUpCi0gICAgICAgICd0JyAtIFRhc2svQ3B1IHN0YXRl cyAgT25cIFwgKDErMSBsaW5lcywgc2VlICcxJykKLUBAIC00MTMsMTYgKzQxMywxNCBAQCBUaGUg c3dhcHBlZCBvdXQgcG9ydGlvbiBvZiBhIHRhc2sncyB0b3RhbCBcKihNViBpbWFnZS4KLSBxOlxm QiBSRVNcZlIgXCooRU0gUmVzaWRlbnQgc2l6ZSAoa2IpCi0gVGhlIG5vbi1zd2FwcGVkIFwqKE1Q IGEgdGFzayBoYXMgdXNlZC4KLSAKLS1SRVMgPSBDT0RFICsgREFUQS4KLS0KLSAuVFAgMwotIHI6 XGZCIENPREVcZlIgXCooRU0gQ29kZSBzaXplIChrYikKLS1UaGUgYW1vdW50IG9mIFwqKE1QIGRl dm90ZWQgdG8gZXhlY3V0YWJsZSBjb2RlLCBhbHNvIGtub3duIGFzCi0rVGhlIGFtb3VudCBvZiBc KihNViBkZXZvdGVkIHRvIGV4ZWN1dGFibGUgY29kZSwgYWxzbyBrbm93biBhcwotIHRoZSAndGV4 dCByZXNpZGVudCBzZXQnIHNpemUgb3IgVFJTLgotIAotIC5UUCAzCi0gczpcZkIgREFUQVxmUiBc KihFTSBEYXRhK1N0YWNrIHNpemUgKGtiKQotLVRoZSBhbW91bnQgb2YgXCooTVAgZGV2b3RlZCB0 byBvdGhlciB0aGFuIGV4ZWN1dGFibGUgY29kZSwgYWxzbyBrbm93biBhcwotK1RoZSBhbW91bnQg b2YgXCooTVYgZGV2b3RlZCB0byBvdGhlciB0aGFuIGV4ZWN1dGFibGUgY29kZSwgYWxzbyBrbm93 biBhcwotIHRoZSAnZGF0YSByZXNpZGVudCBzZXQnIHNpemUgb3IgRFJTLgotIAotIC5UUCAzCi1A QCAtNDM2LDggKzQzNCw4IEBAIHU6XGZCIG5GTFRcZlIgXCooRU0gUGFnZSBGYXVsdCBjb3VudAot IFRoZSBudW1iZXIgb2ZcZkIgbWFqb3JcZlIgcGFnZSBmYXVsdHMgdGhhdCBoYXZlIG9jY3VycmVk IGZvciBhIHRhc2suCi0gQSBwYWdlIGZhdWx0IG9jY3VycyB3aGVuIGEgcHJvY2VzcyBhdHRlbXB0 cyB0byByZWFkIGZyb20gb3Igd3JpdGUgdG8gYSB2aXJ0dWFsCi0gcGFnZSB0aGF0IGlzIG5vdCBj dXJyZW50bHkgcHJlc2VudCBpbiBpdHMgYWRkcmVzcyBzcGFjZS4KLS1BIG1ham9yIHBhZ2UgZmF1 bHQgaXMgd2hlbiBkaXNrIGFjY2VzcyBpcyBpbnZvbHZlZCBpbiBtYWtpbmcgdGhhdAotLXBhZ2Ug YXZhaWxhYmxlLgotK0EgbWFqb3IgcGFnZSBmYXVsdCBpcyB3aGVuIGJhY2tpbmcgc3RvcmFnZSBh Y2Nlc3MgKHN1Y2ggYXMgYSBkaXNrKSBpcyBpbnZvbHZlZAotK2luIG1ha2luZyB0aGF0IHBhZ2Ug YXZhaWxhYmxlLgotIAotIC5UUCAzCi0gdjpcZkIgbkRSVFxmUiBcKihFTSBEaXJ0eSBQYWdlcyBj b3VudAotQEAgLTUwNCw3ICs1MDIsNyBAQCBhbmQgJ09yZGVyIGZpZWxkcycgc2NyZWVucy4KLSAu XCIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLgotIC5TUyAyYi4gU0VMRUNUSU5HIGFuZCBPUkRFUklORyBDb2x1bW5z Ci0gLlwiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS1BZnRlciBwcmVzc2luZyB0aGUgXCooQ0lzICdmJyAoRmll bGRzIHNlbGVjdCkgb3IgXCdvJyAoT3JkZXIgZmllbGRzKSB5b3Ugd2lsbAotK0FmdGVyIHByZXNz aW5nIHRoZSBcKihDSXMgJ2YnIChGaWVsZHMgc2VsZWN0KSBvciAnbycgKE9yZGVyIGZpZWxkcykg eW91IHdpbGwKLSBiZSBzaG93biBhIHNjcmVlbiBjb250YWluaW5nIHRoZSBjdXJyZW50IFxmQmZp ZWxkcyBzdHJpbmdcZlIgZm9sbG93ZWQgYnkgbmFtZXMKLSBhbmQgZGVzY3JpcHRpb25zIGZvciBh bGwgZmllbGRzLgotIAotQEAgLTU4MCw3ICs1NzgsNyBAQCBVc2UgZWl0aGVyIG9mIHRoZXNlIGtl eXMgaWYgeW91IGhhdmUgYSBsYXJnZSBkZWxheSBpbnRlcnZhbCBhbmQgd2lzaCB0bwotIHNlZSBj dXJyZW50IHN0YXR1cywKLSAKLSAuVFAgNwotLVwgXCBcJ1xmQj9cZlJcJyBvciBcJ1xmQmhcZlJc JyA6XGZJSGVscFxmUgotK1wgXCBcPFxmQj9cZlJcPiBvciBcPFxmQmhcZlJcPiA6XGZJSGVscFxm UgotIFRoZXJlIGFyZSB0d28gaGVscCBsZXZlbHMgYXZhaWxhYmxlLgotIFRoZSBmaXJzdCB3aWxs IHByb3ZpZGUgYSByZW1pbmRlciBvZiBhbGwgdGhlIGJhc2ljIFwqKENJcy4KLSBJZiBcKihNZSBp c1xmSSBzZWN1cmVkXGZSLCB0aGF0IHNjcmVlbiB3aWxsIGJlIGFiYnJldmlhdGVkLgotQEAgLTU4 OSw3ICs1ODcsNyBAQCBUeXBpbmcgJ2gnIG9yICc/JyBvbiB0aGF0IGhlbHAgc2NyZWVuIHdpbGwg dGFrZSB5b3UgdG8gaGVscCBmb3IgdGhvc2UgXCooQ0lzCi0gYXBwbGljYWJsZSB0byBcKihBTS4K LSAKLSAuVFAgNwotLVwgXCBcJ1xmQj1cZlJcJyA6XGZJRXhpdF9UYXNrX0xpbWl0c1xmUgotK1wg XCBcPFxmQj1cZlJcPiA6XGZJRXhpdF9UYXNrX0xpbWl0c1xmUgotIFJlbW92ZXMgcmVzdHJpY3Rp b25zIG9uIHdoaWNoIHRhc2tzIGFyZSBzaG93bi4KLSBUaGlzIGNvbW1hbmQgd2lsbCByZXZlcnNl IGFueSAnaScgKGlkbGUgdGFza3MpIGFuZCAnbicgKG1heCB0YXNrcykgY29tbWFuZHMKLSB0aGF0 IG1pZ2h0IGJlIGFjdGl2ZS4KLUBAIC01OTksMTMgKzU5NywxMyBAQCBTZWUgdGhlICctcCcgXCoo Q08gZm9yIGEgZGlzY3Vzc2lvbiBvZiBQSUQgbW9uaXRvcmluZy4KLSBXaGVuIG9wZXJhdGluZyBp biBcKihBTSB0aGlzIGNvbW1hbmQgaGFzIGEgc2xpZ2h0bHkgYnJvYWRlciBtZWFuaW5nLgotIAot IC5UUCA3Ci0tXCBcIFwnXGZCQVxmUlwnIDpcZklBbHRlcm5hdGVfRGlzcGxheV9Nb2RlX3RvZ2ds ZVxmUgotK1wgXCBcPFxmQkFcZlJcPiA6XGZJQWx0ZXJuYXRlX0Rpc3BsYXlfTW9kZV90b2dnbGVc ZlIKLSBUaGlzIGNvbW1hbmQgd2lsbCBzd2l0Y2ggYmV0d2VlbiBcKihGTSBhbmQgXCooQU0uCi0t XCooWFQgNC4gQUxURVJOQVRFXC1ESVNQTEFZIE1vZGUgYW5kIHRoZSAnRycgXCooQ0kgZm9yIGlu c2lnaHQgaW50bwotLVwqKENXcyBhbmQgZmllbGQgZ3JvdXBzLgotK1wqKFhUIDQuIEFMVEVSTkFU RVwtRElTUExBWSBNb2RlIGFuZCB0aGUgJ0cnIFwqKENJIGZvciBpbnNpZ2h0Ci0raW50byBcKihD V3MgYW5kIGZpZWxkIGdyb3Vwcy4KLSAKLSAuVFAgNwotLVwgXCBcJ1xmQkJcZlJcJyA6XGZJQm9s ZF9EaXNhYmxlL0VuYWJsZV90b2dnbGVcZlIKLStcIFwgXDxcZkJCXGZSXD4gOlxmSUJvbGRfRGlz YWJsZS9FbmFibGVfdG9nZ2xlXGZSCi0gVGhpcyBjb21tYW5kIHdpbGwgaW5mbHVlbmNlIHVzZSBv ZiB0aGUgJ2JvbGQnIHRlcm1pbmZvIGNhcGFiaWxpdHkgYW5kCi0gYWx0ZXJzXGZCIGJvdGhcZlIg dGhlIFwqKFNBIGFuZCBcKihUQSBmb3IgdGhlIFwqKENXLgotIFdoaWxlIGl0IGlzIGludGVuZGVk IHByaW1hcmlseSBmb3IgdXNlIHdpdGggZHVtYiB0ZXJtaW5hbHMsIGl0IGNhbiBiZQotQEAgLTYx Nyw3ICs2MTUsNyBAQCBUaHVzLCB1bmxlc3MgdGhlICd4JyBhbmQvb3IgJ3knIHRvZ2dsZXMgYXJl IHVzaW5nIHJldmVyc2UgZm9yIGVtcGhhc2lzLAotIHRoZXJlIHdpbGwgYmUgbm8gdmlzdWFsIGNv bmZpcm1hdGlvbiB0aGF0IHRoZXkgYXJlIGV2ZW4gb24uCi0gCi0gLlRQIDcKLS0qXCBcJ1xmQmRc ZlJcJyBvciBcJ1xmQnNcZlJcJyA6XGZJQ2hhbmdlX0RlbGF5X1RpbWVfaW50ZXJ2YWxcZlIKLSsq XCBcPFxmQmRcZlJcPiBvciBcPFxmQnNcZlJcPiA6XGZJQ2hhbmdlX0RlbGF5X1RpbWVfaW50ZXJ2 YWxcZlIKLSBZb3Ugd2lsbCBiZSBwcm9tcHRlZCB0byBlbnRlciB0aGUgZGVsYXkgdGltZSwgaW4g c2Vjb25kcywgYmV0d2VlbgotIGRpc3BsYXkgdXBkYXRlcy4KLSAKLUBAIC02MzEsMzIgKzYyOSwz MiBAQCBJZiBhdCBhbnkgdGltZSB5b3Ugd2lzaCB0byBrbm93IHRoZSBjdXJyZW50IGRlbGF5IHRp bWUsIHNpbXBseSBhc2sgZm9yIGhlbHAKLSBhbmQgdmlldyB0aGUgc3lzdGVtIHN1bW1hcnkgb24g dGhlIHNlY29uZCBsaW5lLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCR1xmUlwnIDpcZklDaG9vc2Vf QW5vdGhlcl9XaW5kb3cvRmllbGRfR3JvdXBcZlIKLStcIFwgXDxcZkJHXGZSXD4gOlxmSUNob29z ZV9Bbm90aGVyX1dpbmRvdy9GaWVsZF9Hcm91cFxmUgotIFlvdSB3aWxsIGJlIHByb21wdGVkIHRv IGVudGVyIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgNCBkZXNpZ25hdGluZyB0aGUKLSB3aW5kb3cv ZmllbGQgZ3JvdXAgd2hpY2ggc2hvdWxkIGJlIG1hZGUgdGhlIFwqKENXLgotIFlvdSB3aWxsIHNv b24gZ3JvdyBjb21mb3J0YWJsZSB3aXRoIHRoZXNlIDQgd2luZG93cywgZXNwZWNpYWxseSBhZnRl cgotIGV4cGVyaW1lbnRpbmcgd2l0aCBcKihBTS4KLSAKLSAuVFAgNwotLVwgXCBcJ1xmQklcZlJc JyA6XGZJSXJpeC9Tb2xhcmlzX01vZGVfdG9nZ2xlXGZSCi0rXCBcIFw8XGZCSVxmUlw+IDpcZklJ cml4L1NvbGFyaXNfTW9kZV90b2dnbGVcZlIKLSBXaGVuIG9wZXJhdGluZyBpbiAnU29sYXJpcyBt b2RlJyAoJ0knIHRvZ2dsZWQgXCpGKSwgYSB0YXNrJ3MgXCooUHUgdXNhZ2UKLSB3aWxsIGJlIGRp dmlkZWQgYnkgdGhlIHRvdGFsIG51bWJlciBvZiBcKihQVXMuCi0gQWZ0ZXIgaXNzdWluZyB0aGlz IGNvbW1hbmQsIHlvdSdsbCBiZSBpbmZvcm1lZCBvZiB0aGUgbmV3IHN0YXRlIG9mIHRoaXMgdG9n Z2xlLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCdVxmUlwnIDpcZklzZWxlY3QgYSB1c2VyXGZSCi0r XCBcIFw8XGZCdVxmUlw+IDpcZklzZWxlY3QgYSB1c2VyXGZSCi0gWW91IHdpbGwgYmUgcHJvbXB0 ZWQgZm9yIGEgVUlEIG9yIHVzZXJuYW1lLiBPbmx5IHByb2Nlc3NlcwotIGJlbG9uZ2luZyB0byB0 aGUgc2VsZWN0ZWQgdXNlciB3aWxsIGJlIGRpc3BsYXllZC4gVGhpcyBvcHRpb24KLSBtYXRjaGVz IG9uIHRoZSBlZmZlY3RpdmUgVUlELgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCVVxmUlwnIDpcZklz ZWxlY3QgYSB1c2VyXGZSCi0rXCBcIFw8XGZCVVxmUlw+IDpcZklzZWxlY3QgYSB1c2VyXGZSCi0g WW91IHdpbGwgYmUgcHJvbXB0ZWQgZm9yIGEgVUlEIG9yIHVzZXJuYW1lLiBPbmx5IHByb2Nlc3Nl cwotIGJlbG9uZ2luZyB0byB0aGUgc2VsZWN0ZWQgdXNlciB3aWxsIGJlIGRpc3BsYXllZC4gVGhp cyBvcHRpb24KLSBtYXRjaGVzIG9uIHRoZSByZWFsLCBlZmZlY3RpdmUsIHNhdmVkLCBhbmQgZmls ZXN5c3RlbSBVSUQuCi0gCi0gLlRQIDcKLS0qXCBcJ1xmQmtcZlJcJyA6XGZJS2lsbF9hX3Rhc2tc ZlIKLSsqXCBcPFxmQmtcZlJcPiA6XGZJS2lsbF9hX3Rhc2tcZlIKLSBZb3Ugd2lsbCBiZSBwcm9t cHRlZCBmb3IgYSBQSUQgYW5kIHRoZW4gdGhlIHNpZ25hbCB0byBzZW5kLgotIFRoZSBkZWZhdWx0 IHNpZ25hbCwgYXMgcmVmbGVjdGVkIGluIHRoZSBwcm9tcHQsIGlzIFNJR1RFUk0uCi0gSG93ZXZl ciwgeW91IGNhbiBzZW5kIGFueSBzaWduYWwsIHZpYSBudW1iZXIgb3IgbmFtZS4KLUBAIC02Njcs MjQgKzY2NSwyNCBAQCBkZXBlbmRpbmcgb24geW91ciBwcm9ncmVzczoKLSAgICAyKSBhdCB0aGUg c2lnbmFsIHByb21wdCwgdHlwZSAwCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkJxXGZSXCcgOlxmSVF1 aXRcZlIKLStcIFwgXDxcZkJxXGZSXD4gOlxmSVF1aXRcZlIKLSAKLSAuVFAgNwotLSpcIFwnXGZC clxmUlwnIDpcZklSZW5pY2VfYV9UYXNrXGZSCi0rKlwgXDxcZkJyXGZSXD4gOlxmSVJlbmljZV9h X1Rhc2tcZlIKLSBZb3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSBQSUQgYW5kIHRoZW4gdGhlIHZh bHVlIHRvIG5pY2UgaXQgdG8uCi0gRW50ZXJpbmcgYSBwb3NpdGl2ZSB2YWx1ZSB3aWxsIGNhdXNl IGEgcHJvY2VzcyB0byBsb3NlIHByaW9yaXR5LgotIENvbnZlcnNlbHksIGEgbmVnYXRpdmUgdmFs dWUgd2lsbCBjYXVzZSBhIHByb2Nlc3MgdG8gYmUgdmlld2VkIG1vcmUKLSBmYXZvcmFibHkgYnkg dGhlIGtlcm5lbC4KLSAKLSAuVFAgNwotLVwgXCBcJ1xmQldcZlJcJyA6XGZJV3JpdGVfdGhlX0Nv bmZpZ3VyYXRpb25fRmlsZVxmUgotK1wgXCBcPFxmQldcZlJcPiA6XGZJV3JpdGVfdGhlX0NvbmZp Z3VyYXRpb25fRmlsZVxmUgotIFRoaXMgd2lsbCBzYXZlIGFsbCBvZiB5b3VyIG9wdGlvbnMgYW5k IHRvZ2dsZXMgcGx1cyB0aGUgY3VycmVudAotIGRpc3BsYXkgbW9kZSBhbmQgZGVsYXkgdGltZS4K LSBCeSBpc3N1aW5nIHRoaXMgY29tbWFuZCBqdXN0IGJlZm9yZSBxdWl0dGluZyBcKihNZSwgeW91 IHdpbGwgYmUgYWJsZSByZXN0YXJ0Ci0gbGF0ZXIgaW4gZXhhY3RseSB0aGF0IHNhbWUgc3RhdGUu Ci0gCi0gLlRQIDcKLS1cIFwgXCdcZkJaXGZSXCcgOlxmSUNoYW5nZV9Db2xvcl9NYXBwaW5nCi0r XCBcIFw8XGZCWlxmUlw+IDpcZklDaGFuZ2VfQ29sb3JfTWFwcGluZwotIFRoaXMga2V5IHdpbGwg dGFrZSB5b3UgdG8gYSBzZXBhcmF0ZSBzY3JlZW4gd2hlcmUgeW91IGNhbiBjaGFuZ2UgdGhlCi0g Y29sb3JzIGZvciB0aGUgXCooQ1csIG9yIGZvciBhbGwgd2luZG93cy4KLSBGb3IgZGV0YWlscyBy ZWdhcmRpbmcgdGhpcyBcKihDSSBcKihYdCAzZC4gQ09MT1IgTWFwcGluZy4KLUBAIC03MDAsMjUg KzY5OCwyNSBAQCBUaGV5IGFmZmVjdCB0aGUgYmVnaW5uaW5nIGxpbmVzIG9mIHlvdXIgZGlzcGxh eSBhbmQgd2lsbCBkZXRlcm1pbmUgdGhlIHBvc2l0aW9uCi0gb2YgbWVzc2FnZXMgYW5kIHByb21w dHMuCi0gCi0gVGhlc2UgY29tbWFuZHMgYWx3YXlzIGltcGFjdCBqdXN0IHRoZSBcKihDVy9maWVs ZCBncm91cC4KLS1cKihYVCA0LiBBTFRFUk5BVEVcLURJU1BMQVkgTW9kZSBhbmQgdGhlICdHJyBc KihDSSBmb3IgaW5zaWdodCBpbnRvCi0tXCooQ1dzIGFuZCBmaWVsZCBncm91cHMuCi0rXCooWFQg NC4gQUxURVJOQVRFXC1ESVNQTEFZIE1vZGUgYW5kIHRoZSAnRycgXCooQ0kgZm9yIGluc2lnaHQK LStpbnRvIFwqKENXcyBhbmQgZmllbGQgZ3JvdXBzLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCbFxm UlwnIDpcZklUb2dnbGVfTG9hZF9BdmVyYWdlL1VwdGltZVxmUiBcKihFTSBPbi9PZmYKLStcIFwg XDxcZkJsXGZSXD4gOlxmSVRvZ2dsZV9Mb2FkX0F2ZXJhZ2UvVXB0aW1lXGZSIFwqKEVNIE9uL09m ZgotIFRoaXMgaXMgYWxzbyB0aGUgbGluZSBjb250YWluaW5nIHRoZSBwcm9ncmFtIG5hbWUgKHBv c3NpYmx5IGFuIGFsaWFzKSB3aGVuCi0gb3BlcmF0aW5nIGluIFwqKEZNIG9yIHRoZSBcKihDVyBu YW1lIHdoZW4gb3BlcmF0aW5nIGluIFwqKEFNLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCbVxmUlwn IDpcZklUb2dnbGVfTWVtb3J5L1N3YXBfVXNhZ2VcZlIgXCooRU0gT24vT2ZmCi0rXCBcIFw8XGZC bVxmUlw+IDpcZklUb2dnbGVfTWVtb3J5L1N3YXBfVXNhZ2VcZlIgXCooRU0gT24vT2ZmCi0gVGhp cyBjb21tYW5kIGFmZmVjdHMgdHdvIFwqKFNBIGxpbmVzLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZC dFxmUlwnIDpcZklUb2dnbGVfVGFzay9DcHVfU3RhdGVzXGZSIFwqKEVNIE9uL09mZgotK1wgXCBc PFxmQnRcZlJcPiA6XGZJVG9nZ2xlX1Rhc2svQ3B1X1N0YXRlc1xmUiBcKihFTSBPbi9PZmYKLSBU aGlzIGNvbW1hbmQgYWZmZWN0cyBmcm9tIDIgdG8gbWFueSBcKihTQSBsaW5lcywgZGVwZW5kaW5n IG9uIHRoZSBzdGF0ZQotIG9mIHRoZSAnMScgdG9nZ2xlIGFuZCB3aGV0aGVyIG9yIG5vdCBcKihN ZSBpcyBydW5uaW5nIHVuZGVyIHRydWUgU01QLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCMVxmUlwn IDpcZklUb2dnbGVfU2luZ2xlL1NlcGFyYXRlX0NwdV9TdGF0ZXNcZlIgXCooRU0gT24vT2ZmCi0r XCBcIFw8XGZCMVxmUlw+IDpcZklUb2dnbGVfU2luZ2xlL1NlcGFyYXRlX0NwdV9TdGF0ZXNcZlIg XCooRU0gT24vT2ZmCi0gVGhpcyBjb21tYW5kIGFmZmVjdHMgaG93IHRoZSAndCcgY29tbWFuZCdz IENwdSBTdGF0ZXMgcG9ydGlvbiBpcyBzaG93bi4KLSBBbHRob3VnaCB0aGlzIHRvZ2dsZSBleGlz dHMgcHJpbWFyaWx5IHRvIHNlcnZlIG1hc3NpdmVseS1wYXJhbGxlbCBTTVAgbWFjaGluZXMsCi0g aXQgaXMgbm90IHJlc3RyaWN0ZWQgdG8gc29sZWx5IFNNUCBlbnZpcm9ubWVudHMuCi1AQCAtNzUw LDEyICs3NDgsMTIgQEAgZ2xvYmFsICdCJyAoYm9sZCBkaXNhYmxlKSB0b2dnbGUuCi0gLmluCi0g Ci0gLlRQIDcKLS1cIFwgXCdcZkJiXGZSXCcgOlxmSUJvbGQvUmV2ZXJzZV90b2dnbGVcZlIKLStc IFwgXDxcZkJiXGZSXD4gOlxmSUJvbGQvUmV2ZXJzZV90b2dnbGVcZlIKLSBUaGlzIGNvbW1hbmQg d2lsbCBpbXBhY3QgaG93IHRoZSAneCcgYW5kICd5JyB0b2dnbGVzIGFyZSBkaXNwbGF5ZWQuCi0g RnVydGhlciwgaXQgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSB3aGVuIGF0IGxlYXN0IG9uZSBvZiB0 aG9zZSB0b2dnbGVzIGlzIFwqTy4KLSAKLSAuVFAgNwotLVwgXCBcJ1xmQnhcZlJcJyA6XGZJQ29s dW1uX0hpZ2hsaWdodF90b2dnbGVcZlIKLStcIFwgXDxcZkJ4XGZSXD4gOlxmSUNvbHVtbl9IaWdo bGlnaHRfdG9nZ2xlXGZSCi0gQ2hhbmdlcyBoaWdobGlnaHRpbmcgZm9yIHRoZSBjdXJyZW50IHNv cnQgZmllbGQuCi0gWW91IHByb2JhYmx5IGRvbid0IG5lZWQgYSBjb25zdGFudCB2aXN1YWwgcmVt aW5kZXIgb2YgdGhlIHNvcnQgZmllbGQgYW5kCi0gXCooTWUgaG9wZXMgdGhhdCB5b3UgYWx3YXlz IHJ1biB3aXRoICdjb2x1bW4gaGlnaGxpZ2h0JyBcKkYsIGR1ZSB0byB0aGUgY29zdAotQEAgLTc2 NSw3ICs3NjMsNyBAQCBJZiB5b3UgZm9yZ2V0IHdoaWNoIGZpZWxkIGlzIGJlaW5nIHNvcnRlZCB0 aGlzIGNvbW1hbmQgY2FuIHNlcnZlIGFzIGEgcXVpY2sKLSB2aXN1YWwgcmVtaW5kZXIuCi0gCi0g LlRQIDcKLS1cIFwgXCdcZkJ5XGZSXCcgOlxmSVJvd19IaWdobGlnaHRfdG9nZ2xlXGZSCi0rXCBc IFw8XGZCeVxmUlw+IDpcZklSb3dfSGlnaGxpZ2h0X3RvZ2dsZVxmUgotIENoYW5nZXMgaGlnaGxp Z2h0aW5nIGZvciAicnVubmluZyIgdGFza3MuCi0gRm9yIGFkZGl0aW9uYWwgaW5zaWdodCBpbnRv IHRoaXMgdGFzayBzdGF0ZSwgXCooWHQgMmEuIERFU0NSSVBUSU9OUyBvZiBGaWVsZHMsCi0gUHJv Y2VzcyBTdGF0dXMuCi1AQCAtNzc0LDcgKzc3Miw3IEBAIFVzZSBvZiB0aGlzIHByb3Zpc2lvbiBw cm92aWRlcyBpbXBvcnRhbnQgaW5zaWdodCBpbnRvIHlvdXIgc3lzdGVtJ3MgaGVhbHRoLgotIFRo ZSBvbmx5IGNvc3RzIHdpbGwgYmUgYSBmZXcgYWRkaXRpb25hbCB0dHkgZXNjYXBlIHNlcXVlbmNl cy4KLSAKLSAuVFAgNwotLVwgXCBcJ1xmQnpcZlJcJyA6XGZJQ29sb3IvTW9ub2Nocm9tZV90b2dn bGVcZlIKLStcIFwgXDxcZkJ6XGZSXD4gOlxmSUNvbG9yL01vbm9jaHJvbWVfdG9nZ2xlXGZSCi0g U3dpdGNoZXMgdGhlIFwqKENXIGJldHdlZW4geW91ciBsYXN0IHVzZWQgY29sb3Igc2NoZW1lIGFu ZCB0aGUgb2xkZXIgZm9ybQotIG9mIGJsYWNrLW9uLXdoaXRlIG9yIHdoaXRlLW9uLWJsYWNrLgot IFRoaXMgY29tbWFuZCB3aWxsIGFsdGVyXGZCIGJvdGhcZlIgdGhlIFwqKFNBIGFuZCBcKihUQSBi dXQgZG9lcyBub3QgYWZmZWN0IHRoZQotQEAgLTc4NSwyMCArNzgzLDIwIEBAIHN0YXRlIG9mIHRo ZSAneCcsICd5JyBvciAnYicgdG9nZ2xlcy4KLSAuQiBDT05URU5UXGZSIG9mIFwqKFRXCi0gLlBE IDAKLSAuVFAgNwotLVwgXCBcJ1xmQmNcZlJcJyA6XGZJQ29tbWFuZF9MaW5lL1Byb2dyYW1fTmFt ZV90b2dnbGVcZlIKLStcIFwgXDxcZkJjXGZSXD4gOlxmSUNvbW1hbmRfTGluZS9Qcm9ncmFtX05h bWVfdG9nZ2xlXGZSCi0gVGhpcyBjb21tYW5kIHdpbGwgYmUgaG9ub3JlZCB3aGV0aGVyIG9yIG5v dCB0aGUgJ0NvbW1hbmQnIGNvbHVtbgotIGlzIGN1cnJlbnRseSB2aXNpYmxlLgotIExhdGVyLCBz aG91bGQgdGhhdCBmaWVsZCBjb21lIGludG8gdmlldywgdGhlIGNoYW5nZSB5b3UgYXBwbGllZCB3 aWxsIGJlIHNlZW4uCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkJmXGZSXCcgYW5kIFwnXGZCb1xmUlwn IDpcZklGaWVsZHNfc2VsZWN0XGZSIG9yIFxmSU9yZGVyX2ZpZWxkc1xmUgotK1wgXCBcPFxmQmZc ZlJcPiBhbmQgXDxcZkJvXGZSXD4gOlxmSUZpZWxkc19zZWxlY3RcZlIgb3IgXGZJT3JkZXJfZmll bGRzXGZSCi0gVGhlc2Uga2V5cyBkaXNwbGF5IHNlcGFyYXRlIHNjcmVlbnMgd2hlcmUgeW91IGNh biBjaGFuZ2Ugd2hpY2gKLSBmaWVsZHMgYXJlIGRpc3BsYXllZCBhbmQgdGhlaXIgb3JkZXIuCi0g Rm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24gdGhlc2UgXCooQ0lzCi0gXCooWHQgMmIuIFNF TEVDVElORyBhbmQgT1JERVJJTkcgQ29sdW1ucy4KLSAKLSAuVFAgNwotLVwgXCBcJ1xmQkhcZlJc JyA6XGZJVGhyZWFkc190b2dnbGVcZlIKLStcIFwgXDxcZkJTXGZSXD4gOlxmSUN1bXVsYXRpdmVf VGltZV9Nb2RlX3RvZ2dsZVxmUgotIFdoZW4gdGhpcyB0b2dnbGUgaXMgXCpPLCBhbGwgaW5kaXZp ZHVhbCB0aHJlYWRzIHdpbGwgYmUgZGlzcGxheWVkLiAgT3RoZXJ3aXNlLCBcKihNZSBkaXNwbGF5 cyBhIHN1bW1hdGlvbiBvZiBhbGwgdGhyZWFkcyBpbiBhIHByb2Nlc3MuCi0gCi0gLlRQIDcKLUBA IC04MTgsNyArODE2LDcgQEAgSWYgeW91IHdpc2ggdG8ga25vdyBpbiBhZHZhbmNlIHdoZXRoZXIg b3Igbm90ICdDdW11bGF0aXZlIG1vZGUnIGlzIGluCi0gZWZmZWN0LCBzaW1wbHkgYXNrIGZvciBo ZWxwIGFuZCB2aWV3IHRoZSB3aW5kb3cgc3VtbWFyeSBvbiB0aGUgc2Vjb25kIGxpbmUuCi0gCi0g LlRQIDcKLS1cIFwgXCdcZkJ1XGZSXCcgOlxmSVNob3dfU3BlY2lmaWNfVXNlcl9Pbmx5XGZSCi0r XCBcIFw8XGZCdVxmUlw+IDpcZklTaG93X1NwZWNpZmljX1VzZXJfT25seVxmUgotIFlvdSB3aWxs IGJlIHByb21wdGVkIHRvIGVudGVyIHRoZSBuYW1lIG9mIHRoZSB1c2VyIHRvIGRpc3BsYXkuCi0g VGhlcmVhZnRlciwgaW4gdGhhdCBcKihUVyBvbmx5IG1hdGNoaW5nIFVzZXIgSUQncyB3aWxsIGJl IHNob3duLCBvciBwb3NzaWJseQotIG5vIHRhc2tzIHdpbGwgYmUgc2hvd24uCi1AQCAtODMxLDcg KzgyOSw3IEBAIGp1c3QgcHJlc3MgPEVudGVyPiBhdCB0aGUgcHJvbXB0LCB3aXRob3V0IHByb3Zp ZGluZyBhIG5hbWUuCi0gLkIgU0laRVxmUiBvZiBcKihUVwotIC5QRCAwCi0gLlRQIDcKLS1cIFwg XCdcZkJpXGZSXCcgOlxmSUlkbGVfUHJvY2Vzc2VzX3RvZ2dsZVxmUgotK1wgXCBcPFxmQmlcZlJc PiA6XGZJSWRsZV9Qcm9jZXNzZXNfdG9nZ2xlXGZSCi0gRGlzcGxheXMgYWxsIHRhc2tzIG9yIGp1 c3QgYWN0aXZlIHRhc2tzLgotIFdoZW4gdGhpcyB0b2dnbGUgaXMgXCpGLCBpZGxlZCBvciB6b21i aWVkIHByb2Nlc3NlcyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuCi0gCi1AQCAtODM5LDcgKzgzNyw3 IEBAIElmIHRoaXMgY29tbWFuZCBpcyBhcHBsaWVkIHRvIHRoZSBsYXN0IFwqKFREIHdoZW4gaW4g XCooQU0sIHRoZW4gaXQgd2lsbCBub3QKLSBhZmZlY3QgdGhlIHdpbmRvdydzIHNpemUsIGFzIGFs bCBwcmlvciBcKihURHMgd2lsbCBoYXZlIGFscmVhZHkgYmVlbiBwYWludGVkLgotIAotIC5UUCA3 Ci0tXCBcIFwnXGZCblxmUlwnIG9yIFwnI1wnIDpcZklTZXRfTWF4aW11bV9UYXNrc1xmUgotK1wg XCBcPFxmQm5cZlJcPiBvciBcPFxmQiNcZlJcPiA6XGZJU2V0X01heGltdW1fVGFza3NcZlIKLSBZ b3Ugd2lsbCBiZSBwcm9tcHRlZCB0byBlbnRlciB0aGUgbnVtYmVyIG9mIHRhc2tzIHRvIGRpc3Bs YXkuCi0gVGhlIGxlc3NvciBvZiB5b3VyIG51bWJlciBhbmQgYXZhaWxhYmxlIHNjcmVlbiByb3dz IHdpbGwgYmUgdXNlZC4KLSAKLUBAIC04NzgsMTIgKzg3NiwxMiBAQCBUaGUgc29ydCBmaWVsZCBt aWdodFxmSSBub3RcZlIgYmUgdmlzaWJsZSBiZWNhdXNlOgotIC5pbgotIAotIC5UUCA3Ci0tXCBc IFwnXGZCPFxmUlwnIDpcZklNb3ZlX1NvcnRfRmllbGRfTGVmdFxmUgotK1wgXCBcPFxmQjxcZlJc PiA6XGZJTW92ZV9Tb3J0X0ZpZWxkX0xlZnRcZlIKLSBNb3ZlcyB0aGUgc29ydCBjb2x1bW4gdG8g dGhlIGxlZnQgdW5sZXNzIHRoZSBjdXJyZW50IHNvcnQgZmllbGQgaXMKLSB0aGUgZmlyc3QgZmll bGQgYmVpbmcgZGlzcGxheWVkLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCPlxmUlwnIDpcZklNb3Zl X1NvcnRfRmllbGRfUmlnaHRcZlIKLStcIFwgXDxcZkI+XGZSXD4gOlxmSU1vdmVfU29ydF9GaWVs ZF9SaWdodFxmUgotIE1vdmVzIHRoZSBzb3J0IGNvbHVtbiB0byB0aGUgcmlnaHQgdW5sZXNzIHRo ZSBjdXJyZW50IHNvcnQgZmllbGQgaXMKLSB0aGUgbGFzdCBmaWVsZCBiZWluZyBkaXNwbGF5ZWQu Ci0gCi1AQCAtODk0LDcgKzg5Miw3IEBAIHRoZSBjdXJyZW50IHNvcnQgZmllbGQgaXMgdmlzaWJs ZS4KLSAuaW4KLSAKLSAuVFAgNwotLVwgXCBcJ1xmQkZcZlJcJyBvciBcJ1xmQk9cZlJcJyA6XGZJ U2VsZWN0X1NvcnRfRmllbGRcZlIKLStcIFwgXDxcZkJGXGZSXD4gb3IgXDxcZkJPXGZSXD4gOlxm SVNlbGVjdF9Tb3J0X0ZpZWxkXGZSCi0gVGhlc2Uga2V5cyBkaXNwbGF5IGEgc2VwYXJhdGUgc2Ny ZWVuIHdoZXJlIHlvdSBjYW4gY2hhbmdlIHdoaWNoIGZpZWxkCi0gaXMgdXNlZCBhcyB0aGUgc29y dCBjb2x1bW4uCi0gCi1AQCAtOTA3LDcgKzkwNSw3IEBAIFRoaXMgXCooQ0kgY2FuIGJlIGEgY29u dmVuaWVudCB3YXkgdG8gc2ltcGx5IHZlcmlmeSB0aGUgY3VycmVudCBzb3J0IGZpZWxkLAotIHdo ZW4gcnVubmluZyBcKihNZSB3aXRoIGNvbHVtbiBoaWdobGlnaHRpbmcgdHVybmVkIFwqRi4KLSAK LSAuVFAgNwotLVwgXCBcJ1xmQlJcZlJcJyA6XGZJUmV2ZXJzZS9Ob3JtYWxfU29ydF9GaWVsZF90 b2dnbGVcZlIKLStcIFwgXDxcZkJSXGZSXD4gOlxmSVJldmVyc2UvTm9ybWFsX1NvcnRfRmllbGRf dG9nZ2xlXGZSCi0gVXNpbmcgdGhpcyBcKihDSSB5b3UgY2FuIGFsdGVybmF0ZSBiZXR3ZWVuIGhp Z2gtdG8tbG93IGFuZCBsb3ctdG8taGlnaCBzb3J0cy4KLSAKLSAuUFAKLUBAIC05ODQsNyArOTgy LDcgQEAga25vdyB3aGF0IHdpbmRvdyBpcyB0aGUgXCooQ1cuCi0gLlwiIC4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4K LSAuU1MgNGIuIENPTU1BTkRTIGZvciBXaW5kb3dzCi0gLlRQIDcKLS1cIFwgXCdcZkItXGZSXCcg YW5kIFwnXGZCX1xmUlwnIDpcZklTaG93L0hpZGVfV2luZG93KHMpX3RvZ2dsZXNcZlIKLStcIFwg XDxcZkItXGZSXD4gYW5kIFw8XGZCX1xmUlw+IDpcZklTaG93L0hpZGVfV2luZG93KHMpX3RvZ2ds ZXNcZlIKLSBUaGUgJy0nIGtleSB0dXJucyB0aGUgXCooQ1cncyBcKihURCBcKk8gYW5kIFwqRi4K LSBXaGVuIFwqTywgdGhhdCBcKihUQSB3aWxsIHNob3cgYSBtaW5pbXVtIG9mIHRoZSBjb2x1bW5z IGhlYWRlciB5b3UndmUKLSBlc3RhYmxpc2hlZCB3aXRoIHRoZSAnZicgYW5kICdvJyBjb21tYW5k cy4KLUBAIC05OTgsNyArOTk2LDcgQEAgSWYgYWxsIDQgXCooVERzIGFyZSBjdXJyZW50bHkgdmlz aWJsZSwgdGhpcyBcKihDSSB3aWxsIGxlYXZlIHRoZSBcKihTQQotIGFzIHRoZSBvbmx5IGRpc3Bs YXkgZWxlbWVudC4KLSAKLSAuVFAgNwotLSpcIFwnXGZCPVxmUlwnIGFuZCBcJ1xmQitcZlJcJyA6 XGZJRXF1YWxpemVfKHJlLWJhbGFuY2UpX1dpbmRvdyhzKVxmUgotKypcIFw8XGZCPVxmUlw+IGFu ZCBcPFxmQitcZlJcPiA6XGZJRXF1YWxpemVfKHJlLWJhbGFuY2UpX1dpbmRvdyhzKVxmUgotIFRo ZSAnPScga2V5IGZvcmNlcyB0aGUgXCooQ1cncyBcKihURCB0byBiZSB2aXNpYmxlLgotIEl0IGFs c28gcmV2ZXJzZXMgYW55ICdpJyAoaWRsZSB0YXNrcykgYW5kICduJyAobWF4IHRhc2tzKSBjb21t YW5kcyB0aGF0IG1pZ2h0Ci0gYmUgYWN0aXZlLgotQEAgLTEwMDksNyArMTAwNyw3IEBAIFRoZXkg d2lsbCBhbHNvIGhhdmUgcmV0YWluZWQgYW55IGN1c3RvbWl6YXRpb25zIHlvdSBoYWQgcHJldmlv dXNseSBhcHBsaWVkLAotIGV4Y2VwdCBmb3IgdGhlICdpJyAoaWRsZSB0YXNrcykgYW5kICduJyAo bWF4IHRhc2tzKSBjb21tYW5kcy4KLSAKLSAuVFAgNwotLSpcIFwnXGZCQVxmUlwnIDpcZklBbHRl cm5hdGVfRGlzcGxheV9Nb2RlX3RvZ2dsZVxmUgotKypcIFw8XGZCQVxmUlw+IDpcZklBbHRlcm5h dGVfRGlzcGxheV9Nb2RlX3RvZ2dsZVxmUgotIFRoaXMgY29tbWFuZCB3aWxsIHN3aXRjaCBiZXR3 ZWVuIFwqKEZNIGFuZCBcKihBTS4KLSAKLSBUaGUgZmlyc3QgdGltZSB5b3UgaXNzdWUgdGhpcyBj b21tYW5kLCBhbGwgZm91ciBcKihURHMgd2lsbCBiZSBzaG93bi4KLUBAIC0xMDE3LDcgKzEwMTUs NyBAQCBUaGVyZWFmdGVyIHdoZW4geW91IHN3aXRjaCBtb2RlcywgeW91IHdpbGwgc2VlIG9ubHkg dGhlIFwqKFREKHMpIHlvdSd2ZQotIGNob3NlbiB0byBtYWtlIHZpc2libGUuCi0gCi0gLlRQIDcK LS0qXCBcJ1xmQmFcZlJcJyBhbmQgXCdcZkJ3XGZSXCcgOlxmSU5leHRfV2luZG93X0ZvcndhcmQv QmFja3dhcmRcZlIKLSsqXCBcPFxmQmFcZlJcPiBhbmQgXDxcZkJ3XGZSXD4gOlxmSU5leHRfV2lu ZG93X0ZvcndhcmQvQmFja3dhcmRcZlIKLSBUaGlzIHdpbGwgY2hhbmdlIHRoZSBcKihDVywgd2hp Y2ggaW4gdHVybiBjaGFuZ2VzIHRoZSB3aW5kb3cgdG8gd2hpY2gKLSBjb21tYW5kcyBhcmUgZGly ZWN0ZWQuCi0gVGhlc2Uga2V5cyBhY3QgaW4gYSBjaXJjdWxhciBmYXNoaW9uIHNvIHlvdSBjYW4g cmVhY2ggYW55IGRlc2lyZWQgXCooQ1cKLUBAIC0xMDI4LDcgKzEwMjYsNyBAQCB3aGVuZXZlciB0 aGUgXCooQ1cgbmFtZSBsb3NlcyBpdHMgZW1waGFzaXMvY29sb3IsIHRoYXQncyBhIHJlbWluZGVy Ci0gdGhlIFwqKFREIGlzIFwqRiBhbmQgbWFueSBjb21tYW5kcyB3aWxsIGJlIHJlc3RyaWN0ZWQu Ci0gCi0gLlRQIDcKLS0qXCBcJ1xmQkdcZlJcJyA6XGZJQ2hvb3NlX0Fub3RoZXJfV2luZG93L0Zp ZWxkX0dyb3VwXGZSCi0rKlwgXDxcZkJHXGZSXD4gOlxmSUNob29zZV9Bbm90aGVyX1dpbmRvdy9G aWVsZF9Hcm91cFxmUgotIFlvdSB3aWxsIGJlIHByb21wdGVkIHRvIGVudGVyIGEgbnVtYmVyIGJl dHdlZW4gMSBhbmQgNCBkZXNpZ25hdGluZyB0aGUKLSB3aW5kb3cvZmllbGQgZ3JvdXAgd2hpY2gg c2hvdWxkIGJlIG1hZGUgdGhlIFwqKENXLgotIAotQEAgLTEwMzcsMTUgKzEwMzUsMTUgQEAgSW4g XCooQU0sIGl0IGlzIHNpbXBseSBhIGxlc3MgY29udmVuaWVudCBhbHRlcm5hdGl2ZSB0byB0aGUg J2EnIGFuZCAndycKLSBjb21tYW5kcy4KLSAKLSAuVFAgNwotLVwgXCBcJ1xmQmdcZlJcJyA6XGZJ Q2hhbmdlX1dpbmRvdy9GaWVsZF9Hcm91cF9OYW1lXGZSCi0rXCBcIFw8XGZCZ1xmUlw+IDpcZklD aGFuZ2VfV2luZG93L0ZpZWxkX0dyb3VwX05hbWVcZlIKLSBZb3Ugd2lsbCBiZSBwcm9tcHRlZCBm b3IgYSBuZXcgbmFtZSB0byBiZSBhcHBsaWVkIHRvIHRoZSBcKihDVy4KLSBJdCBkb2VzIG5vdCBy ZXF1aXJlIHRoYXQgdGhlIHdpbmRvdyBuYW1lIGJlIHZpc2libGUKLSAodGhlICdsJyB0b2dnbGUg dG8gYmUgXCpPKS4KLSAKLSAuSVAgIioiIDMKLSBUaGUgXCooQ0lzIHNob3duIHdpdGggYW4gXCoo QVMgaGF2ZSB1c2UgYmV5b25kIFwqKEFNLgotLSAgICBcJz0nLCAnQScsICdHJyAgYXJlIGFsd2F5 cyBhdmFpbGFibGUKLS0gICAgXCdhJywgJ3cnICAgICAgIGFjdCB0aGUgc2FtZSB3aGVuIGNvbG9y IG1hcHBpbmcKLSsgICAgJz0nLCAnQScsICdHJyAgYXJlIGFsd2F5cyBhdmFpbGFibGUKLSsgICAg J2EnLCAndycgICAgICAgYWN0IHRoZSBzYW1lIHdoZW4gY29sb3IgbWFwcGluZwotIAotIAotIC5c IiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3Bz LTMuMi44LzAwMjUtdG9wX2NfcmVzaXplLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAy NS10b3BfY19yZXNpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4YTU4 ZGYuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNS10b3BfY19yZXNpemUu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi1Gcm9tIDZhMmZjZTFhMmIwNTJm MDMzZjhmOGMzNmM3NmFhNDUzMGIyODg3YjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9j cHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5 IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMjUvNzBdIHRvcF9jX3Jl c2l6ZQotCi1hIGZldyAocmVhZDogMyBvciBsZXNzKSBsaW5lcy4KLS0tLQotIHRvcC5jIHwgICAg OSArKysrKystLS0KLSB0b3AuaCB8ICAgMTMgKysrKysrKysrKystLQotIDIgZmlsZXMgY2hhbmdl ZCwgMTcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3RvcC5j IGIvdG9wLmMKLWluZGV4IDUzY2FiMDUuLjZjYzFhOTMgMTAwNjQ0Ci0tLS0gYS90b3AuYwotKysr IGIvdG9wLmMKLUBAIC0xNDAsNyArMTQwLDcgQEAgc3RhdGljIGludCAgIENhcF9jYW5fZ290byA9 IDA7Ci0gICAgICAgICAgICBhcmUgZXhwbG9pdGVkIGluIGEgbWFjcm8gYW5kIHJlcHJlc2VudCA5 MCUgb2Ygb3VyIG9wdGltaXphdGlvbi4KLSAgICAgICAgICAgIFRoZSBTdGRvdXRfYnVmIGlzIHRy YW5zcGFyZW50IHRvIG91ciBjb2RlIGFuZCByZWdhcmRsZXNzIG9mIHdob3NlCi0gICAgICAgICAg ICBidWZmZXIgaXMgdXNlZCwgc3Rkb3V0IGlzIGZsdXNoZWQgYXQgZnJhbWUgZW5kIG9yIGlmIGlu dGVyYWN0aXZlLiAqLwotLXN0YXRpYyBjaGFyICpQc2V1ZG9fc2NybjsKLStzdGF0aWMgUFNFVURP X1NDUkVFTl90IFBzZXVkb19zY3JuOwotIHN0YXRpYyBpbnQgICBQc2V1ZG9fcm93LCBQc2V1ZG9f Y29scywgUHNldWRvX3NpemU7Ci0gI2lmbmRlZiBTVERPVVRfSU9MQkYKLSAgICAgICAgIC8vIGxl c3MgdGhhbiBzdGRvdXQncyBub3JtYWwgYnVmZmVyIGJ1dCB3aXRoIGx1Y2sgbW9zdGx5ICdcbicg YW55d2F5Ci1AQCAtMjQzMSw3ICsyNDMxLDEwIEBAIHN0YXRpYyB2b2lkIHdpbnNfcmVzaXplICh2 b2lkKQotICAgIFBzZXVkb19jb2xzID0gU2NyZWVuX2NvbHMgKyBDTFJCVUZTSVogKyAxOwotICAg IGlmIChCYXRjaCkgUHNldWRvX3NpemUgPSBST1dCVUZTSVogKyAxOwotICAgIGVsc2UgICAgICAg UHNldWRvX3NpemUgPSBQc2V1ZG9fY29scyAqIFNjcmVlbl9yb3dzOwotLSAgIFBzZXVkb19zY3Ju ID0gYWxsb2NfcihQc2V1ZG9fc2NybiwgUHNldWRvX3NpemUpOwotKyAgIGlmKCBQc2V1ZG9fc2Ny bi5idWYgPT0gTlVMTCB8fCBQc2V1ZG9fc2l6ZSA+IFBzZXVkb19zY3JuLm1lbV9zaXplICkgewot KyAgICAgIFBzZXVkb19zY3JuLmJ1ZiA9IGFsbG9jX3IoUHNldWRvX3Njcm4uYnVmLCBQc2V1ZG9f c2l6ZSk7Ci0rICAgICAgUHNldWRvX3Njcm4ubWVtX3NpemUgPSBQc2V1ZG9fc2l6ZTsKLSsgICB9 Ci0gCi0gICAgLy8gZm9yY2UgcmVidWlsZCBvZiBjb2x1bW4gaGVhZGVycyBBTkQgbGlicHJvYy9y ZWFkcHJvYyByZXF1aXJlbWVudHMKLSAgICBGcmFtZXNfbGliZmxhZ3MgPSAwOwotQEAgLTMzMTUs NyArMzMxOCw3IEBAIHN0YXRpYyB2b2lkIGZyYW1lX21ha2UgKHZvaWQpCi0gICAgLy8gICAgICAg cmVmcmFtZXdpbnMoKSwgd2hvIGFsc28gYnVpbGRzIGVhY2ggd2luZG93J3MgY29sdW1uIGhlYWRl cnMKLSAgICBpZiAoIUZyYW1lc19saWJmbGFncykgewotICAgICAgIHJlZnJhbWV3aW5zKCk7Ci0t ICAgICAgbWVtc2V0KFBzZXVkb19zY3JuLCAnXDAnLCBQc2V1ZG9fc2l6ZSk7Ci0rICAgICAgbWVt c2V0KFBzZXVkb19zY3JuLmJ1ZiwgJ1wwJywgUHNldWRvX3NpemUpOwotICAgIH0KLSAgICBQc2V1 ZG9fcm93ID0gTXNnX3JvdyA9IHNjcmxpbnMgPSAwOwotICAgIHBwdCA9IHN1bW1hcnlfc2hvdygp OwotZGlmZiAtLWdpdCBhL3RvcC5oIGIvdG9wLmgKLWluZGV4IGI0YWMwNzkuLjhjZjg1MzggMTAw NjQ0Ci0tLS0gYS90b3AuaAotKysrIGIvdG9wLmgKLUBAIC0xMzUsNyArMTM1LDcgQEAgZG8geyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg IGludCBfbGVuID0gMSArIHNucHJpbnRmKF9zdHIsIHNpemVvZihfc3RyKSwgZm10LCAjIyBhcmcp OyAgIFwKLSAgICBwdXRwICggQmF0Y2ggPyBfc3RyIDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKLSAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0tICAgICAgY2hhciAqcmVzdHJpY3QgY29uc3QgX3BzZSA9ICZQc2V1ZG9f c2NybltQc2V1ZG9fcm93KysgKiBQc2V1ZG9fY29sc107ICBcCi0rICAgICAgY2hhciAqcmVzdHJp Y3QgY29uc3QgX3BzZSA9ICZQc2V1ZG9fc2Nybi5idWZbUHNldWRvX3JvdysrICogUHNldWRvX2Nv bHNdOyAgXAotICAgICAgIG1lbWNtcChfcHNlLCBfc3RyLCBfbGVuKSA/IG1lbWNweShfcHNlLCBf c3RyLCBfbGVuKSA6ICJcbiI7ICBcCi0gICAgfSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLSAgICApOyAgICAgICAgICAgICAgICAgICBcCi1AQCAtMTQ5LDcgKzE0OSwxMSBAQCBk byB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0gICAgaW50IF9sZW4gPSAxICsgc25wcmludGYoX3N0ciwgc2l6ZW9mKF9zdHIpLCBmbXQsICMj IGFyZyk7ICAgXAotICAgIGlmIChCYXRjaCkgX3B0ciA9IF9zdHI7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0gICAgZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKLS0gICAgICBfcHRyID0gJlBzZXVkb19zY3JuW1BzZXVk b19yb3crKyAqIFBzZXVkb19jb2xzXTsgIFwKLSsgICAgICBpZiAoUHNldWRvX3JvdyAqIFBzZXVk b19jb2xzICsgX2xlbiA+IFBzZXVkb19zaXplKSB7IFwKLSsgICAgICAgICBQc2V1ZG9fc2Nybi5i dWYgPSByZWFsbG9jKFBzZXVkb19zY3JuLmJ1ZiwgUHNldWRvX3JvdyAqIFBzZXVkb19jb2xzICsg X2xlbik7IFwKLSsJIFBzZXVkb19zY3JuLm1lbV9zaXplID0gUHNldWRvX3NpemUgPSBQc2V1ZG9f cm93ICogUHNldWRvX2NvbHMgKyBfbGVuOyBcCi0rICAgICAgfSBcCi0rICAgICAgX3B0ciA9ICZQ c2V1ZG9fc2Nybi5idWZbUHNldWRvX3JvdysrICogUHNldWRvX2NvbHNdOyAgXAotICAgICAgIGlm IChtZW1jbXAoX3B0ciwgX3N0ciwgX2xlbikpIHsgICAgICAgICAgICAgICAgXAotICAgICAgICAg IG1lbWNweShfcHRyLCBfc3RyLCBfbGVuKTsgICAgICAgICAgICAgICAgXAotICAgICAgIH0gZWxz ZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotQEAgLTIzNyw2ICsyNDEsMTEg QEAgdHlwZWRlZiBzdHJ1Y3QgUkNGX3QgeyAgLy8gdGhlIGNvbXBsZXRlIHJjZmlsZSAobmV3IHN0 eWxlKQotICAgIFJDV190ICB3aW4gWzRdOyAgICAgICAgICAgICAgLy8gYSAnV0lOX3QucmMnIGZv ciBlYWNoIG9mIHRoZSA0IHdpbmRvd3MKLSB9IFJDRl90OwotIAotK3R5cGVkZWYgc3RydWN0IFBT RVVET19TQ1JFRU5fdCB7Ci0rICAgY2hhciAqYnVmOwotKyAgIGludAltZW1fc2l6ZTsKLSt9IFBT RVVET19TQ1JFRU5fdDsKLSsKLSAvLyBUaGUgc2NhbGluZyAndHlwZScgdXNlZCB3aXRoIHNjYWxl X251bSgpIC0tIHRoaXMgaXMgaG93Ci0gLy8gdGhlIHBhc3NlZCBudW1iZXIgaXMgaW50ZXJwcmV0 ZWQgc2hvdWxkIHNjYWxpbmcgYmUgbmVjZXNzYXJ5Ci0gZW51bSBzY2FsZV9udW0gewotLS0gCi0x LjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI2LXctYmFzc21hbi5w YXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjYtdy1iYXNzbWFuLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODJiZTE1Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMjYtdy1iYXNzbWFuLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAs MCBAQAotRnJvbSA2NTFjNWIyNjIyODU5Y2UxOTBhNmJlZTUzZGM2YWJmZDQ5MWZhMzgwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlh bi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0Bk ZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVj dDogW1BBVENIIDI2LzcwXSB3LWJhc3NtYW4KLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gdy4xIHwgICAg NSArKysrLQotIHcuYyB8ICAgMTYgKysrKysrKysrKysrKysrLQotIDIgZmlsZXMgY2hhbmdlZCwg MTkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3cuMSBiL3cu MQotaW5kZXggZDU3YTliNS4uODQ3ODZlNiAxMDA2NDQKLS0tLSBhL3cuMQotKysrIGIvdy4xCi1A QCAtNSw3ICs1LDcgQEAKLSB3IFwtIFNob3cgd2hvIGlzIGxvZ2dlZCBvbiBhbmQgd2hhdCB0aGV5 IGFyZSBkb2luZy4KLSAuU0ggU1lOT1BTSVMKLSAuQiB3IFwtCi0tLlJCIFsgaHVzZlYgXQotKy5S QiBbIGh1c2ZWbyBdCi0gLlJJIFsgdXNlciBdCi0gLlNIIERFU0NSSVBUSU9OCi0gLkIgIncgIgot QEAgLTU1LDYgKzU1LDkgQEAgZmllbGQgaXMgc2hvd24gYnkgZGVmYXVsdC4KLSAuQiAiXC1WICIK LSBEaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24uCi0gLlRQIDAuNWkKLSsuQiAiXC1vICIKLStP bGQgc3R5bGUgb3V0cHV0LiBQcmludHMgYmxhbmsgc3BhY2UgZm9yIGlkbGUgdGltZXMgbGVzcyB0 aGFuIG9uZSBtaW51dGUuCi0rLlRQIDAuNWkKLSAuQiAidXNlciAiCi0gU2hvdyBpbmZvcm1hdGlv biBhYm91dCB0aGUgc3BlY2lmaWVkIHVzZXIgb25seS4KLSAKLWRpZmYgLS1naXQgYS93LmMgYi93 LmMKLWluZGV4IGE2YjFiMjUuLjkxZmU4YjEgMTAwNjQ0Ci0tLS0gYS93LmMKLSsrKyBiL3cuYwot QEAgLTMwLDYgKzMwLDcgQEAKLSAjaW5jbHVkZSA8dGVybWlvcy5oPgotIAotIHN0YXRpYyBpbnQg aWdub3JldXNlciA9IDA7CS8qIGZvciAnLXUnICovCi0rc3RhdGljIGludCBvbGRzdHlsZSA9IDA7 CS8qIGZvciAnLW8nICovCi0gc3RhdGljIHByb2NfdCAqKnByb2NzOwkJLyogb3VyIHNuYXBzaG90 IG9mIHRoZSBwcm9jZXNzIHRhYmxlICovCi0gCi0gdHlwZWRlZiBzdHJ1Y3QgdXRtcCB1dG1wX3Q7 Ci1AQCAtNzYsNiArNzcsMTYgQEAgc3RhdGljIHZvaWQgcHJpbnRfdGltZV9pdmFsNyh0aW1lX3Qg dCwgaW50IGNlbnRpX3NlYywgRklMRSogZm91dCkgewotICAgICAgIHByaW50ZigiICAgPyAgICIp OwotICAgICAgIHJldHVybjsKLSAgICAgfQotKyAgICBpZiAob2xkc3R5bGUpIHsKLSsgICAgICBp ZiAodCA+PSA0OCo2MCo2MCkgICAgICAgICAgICAgICAvKiA+IDIgZGF5cyAqLwotKyAgICAgICAg ZnByaW50Zihmb3V0LCAiICUybHVkYXlzIiwgdC8oMjQqNjAqNjApKTsKLSsgICAgICBlbHNlIGlm ICh0ID49IDYwKjYwKSAgICAgICAgICAgIC8qID4gMSBob3VyICovCi0rICAgICAgICBmcHJpbnRm KGZvdXQsICIgJTJsdTolMDJ1ICIsIHQvKDYwKjYwKSwgKHVuc2lnbmVkKSAoKHQvNjApJTYwKSk7 Ci0rICAgICAgZWxzZSBpZiAodCA+IDYwKSAgICAgICAgICAgICAgIC8qID4gMSBtaW51dGUgKi8K LSsgICAgICAgIGZwcmludGYoZm91dCwgIiAlMmx1OiUwMnVtIiwgdC82MCwgKHVuc2lnbmVkKSB0 JTYwKTsKLSsgICAgICBlbHNlCi0rICAgICAgICBmcHJpbnRmKGZvdXQsICIgICAgICAgIik7Ci0r ICAgIH0gZWxzZSB7Ci0gICAgIGlmICh0ID49IDQ4KjYwKjYwKQkJCQkvKiA+IDIgZGF5cyAqLwot IAlmcHJpbnRmKGZvdXQsICIgJTJsdWRheXMiLCB0LygyNCo2MCo2MCkpOwotICAgICBlbHNlIGlm ICh0ID49IDYwKjYwKQkJCS8qID4gMSBob3VyICovCi1AQCAtODQsNiArOTUsNyBAQCBzdGF0aWMg dm9pZCBwcmludF90aW1lX2l2YWw3KHRpbWVfdCB0LCBpbnQgY2VudGlfc2VjLCBGSUxFKiBmb3V0 KSB7Ci0gCWZwcmludGYoZm91dCwgIiAlMmx1OiUwMnUgIiwgdC82MCwgKHVuc2lnbmVkKSB0JTYw KTsKLSAgICAgZWxzZQotICAgICBmcHJpbnRmKGZvdXQsICIgJTJsdS4lMDJ1cyIsIHQsIGNlbnRp X3NlYyk7Ci0rICAgIH0KLSB9Ci0gCi0gLyoqKiogc3RhdCB0aGUgZGV2aWNlIGZpbGUgdG8gZ2V0 IGFuIGlkbGUgdGltZSAqLwotQEAgLTIzOSw3ICsyNTEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpIHsKLSAjZW5kaWYKLSAKLSAgICAgc2V0bG9jYWxlKExDX0FMTCwgIiIpOwot LSAgICBmb3IgKGFyZ3M9MDsgKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJobHVzZlYiKSkgIT0g RU9GOyBhcmdzKyspCi0rICAgIGZvciAoYXJncz0wOyAoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwg ImhsdXNmVm8iKSkgIT0gRU9GOyBhcmdzKyspCi0gCXN3aXRjaCAoY2gpIHsKLSAJICBjYXNlICdo JzogaGVhZGVyID0gMDsJCWJyZWFrOwotIAkgIGNhc2UgJ2wnOiBsb25nZm9ybSA9IDE7CWJyZWFr OwotQEAgLTI0Nyw2ICsyNTksNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsK LSAJICBjYXNlICdmJzogZnJvbSA9ICFmcm9tOwlicmVhazsKLSAJICBjYXNlICdWJzogZGlzcGxh eV92ZXJzaW9uKCk7CWV4aXQoMCk7Ci0gCSAgY2FzZSAndSc6IGlnbm9yZXVzZXIgPSAxOwlicmVh azsKLSsJICBjYXNlICdvJzogb2xkc3R5bGUgPSAxOwlicmVhazsKLSAJICBkZWZhdWx0OgotIAkg ICAgcHJpbnRmKCJ1c2FnZTogdyAtaGxzdWZWIFt1c2VyXVxuIgotIAkJICAgIiAgICAtaCAgICBz a2lwIGhlYWRlclxuIgotQEAgLTI1NCw2ICsyNjcsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpIHsKLSAJCSAgICIgICAgLXMgICAgc2hvcnQgbGlzdGluZ1xuIgotIAkJICAgIiAg ICAtdSAgICBpZ25vcmUgdWlkIG9mIHByb2Nlc3Nlc1xuIgotIAkJICAgIiAgICAtZiAgICB0b2dn bGUgRlJPTSBmaWVsZCAoZGVmYXVsdCAlcylcbiIKLSsJCSAgICIgICAgLW8gICAgb2xkLXN0eWxl IG91dHB1dFxuIgotIAkJICAgIiAgICAtViAgICBkaXNwbGF5IHZlcnNpb25cbiIsIEZST01fU1RS SU5HKTsKLSAJICAgIGV4aXQoMSk7Ci0gCX0KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNy10b3AuMV9jcHVzdGF0ZXMucGF0Y2ggYi9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDI3LXRvcC4xX2NwdXN0YXRlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggY2UzMzc0ZS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDI3LXRvcC4xX2NwdXN0YXRlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAK LUZyb20gZTdjNzFhN2E5Zjc0M2YxMDJlMDFmMmUxMTA0YWIwZTU0MTdmOGYzNCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9v bC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFu Lm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQ QVRDSCAyNy83MF0gdG9wLjFfY3B1c3RhdGVzCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHRvcC4xIHwg ICAzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAxIGZpbGVzIGNoYW5n ZWQsIDM2IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS90b3Au MSBiL3RvcC4xCi1pbmRleCBiMGNlYzJkLi4wY2UxYzYyIDEwMDY0NAotLS0tIGEvdG9wLjEKLSsr KyBiL3RvcC4xCi1AQCAtNTM3LDYgKzUzNyw0MiBAQCBZb3VcZkkgbW92ZVxmUiBhIGZpZWxkIHRv IHRoZVxmQiBsZWZ0XGZSIGJ5IHByZXNzaW5nIHRoZSBjb3JyZXNwb25kaW5nXGZCCi0gdXBwZXIg Y2FzZVxmUiBsZXR0ZXIgYW5kIHRvIHRoZVxmQiByaWdodFxmUiB3aXRoIHRoZVxmQiBsb3dlciBj YXNlXGZSCi0gbGV0dGVyLgotIAotKy5cIiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCi0rLlNTIDJjLiBDUFUgU3Rh dGVzCi0rLlwiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStUaGUgQ1BVIHN0YXRlcyBhcmUgc2hvd24gaW4gdGhl IFN1bW1hcnkgQXJlYS4gVGhleSBhcmUgYWx3YXlzIHNob3duIGFzIGEKLStwZXJjZW50YWdlIGFu ZCBhcmUgZm9yIHRoZSB0aW1lIGJldHdlZW4gbm93IGFuZCB0aGUgbGFzdCByZWZyZXNoLgotKwot Ky5UUCAzCi0rXGZCIHVzXGZSIFwqKEVNIFVzZXIgQ1BVIHRpbWUKLStUaGUgdGltZSB0aGUgQ1BV IGhhcyBzcGVudCBydW5uaW5nIHVzZXJzJyBwcm9jZXNzZXMgdGhhdCBhcmUgbm90Ci0rbmljZWQu Ci0rCi0rLlRQIDMKLStcZkIgc3lcZlIgXCooRU0gU3lzdGVtIENQVSB0aW1lCi0rVGhlIHRpbWUg dGhlIENQVSBoYXMgc3BlbnQgcnVubmluZyB0aGUga2VybmVsIGFuZCBpdHMgcHJvY2Vzc2VzLgot KwotKy5UUCAzCi0rXGZCIG5pXGZSIFwqKEVNIE5pY2UgQ1BVIHRpbWUKLStUaGUgdGltZSB0aGUg Q1BVIGhhcyBzcGVudCBydW5uaW5nIHVzZXJzJyBwcm9jY2VzcyB0aGF0IGhhdmUgYmVlbgotK25p Y2VkLgotKwotKy5UUCAzCi0rXGZCIHdhXGZSIFwqKEVNIGlvd2FpdAotK0Ftb3VudCBvZiB0aW1l IHRoZSBDUFUgaGFzIGJlZW4gd2FpdGluZyBmb3IgSS9PIHRvIGNvbXBsZXRlLgotKwotKy5UUCAz Ci0rXGZCIGhpXGZSIFwqKEVNIEhhcmR3YXJlIElSUQotK1RoZSBhbW91bnQgb2YgdGltZSB0aGUg Q1BVIGhhcyBiZWVuIHNlcnZpY2luZyBoYXJkd2FyZSBpbnRlcnJ1cHRzLgotKwotKy5UUCAzCi0r XGZCIHNpXGZSIFwqKEVNIFNvZnR3YXJlIEludGVycnVwdHMKLStUaGUgYW1vdW50IG9mIHRpbWUg dGhlIENQVSBoYXMgYmVlbiBzZXJ2aWNpbmcgc29mdHdhcmUgaW50ZXJydXB0cy4KLSsKLSsuVFAg MwotK1xmQiBzdFxmUiBcKihFTSBTdGVhbCBUaW1lCi0rVGhlIGFtb3VudCBvZiBDUFUgJ3N0b2xl bicgZnJvbSB0aGlzIHZpcnR1YWwgbWFjaGluZSBieSB0aGUgaHlwZXJ2aXNvcgotK2ZvciBvdGhl ciB0YXNrcyAoc3VjaCBhcyBydW5uaW5nIGFub3RoZXIgdmlydHVhbCBtYWNoaW5lKS4KLSAKLSAu XCIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotIC5TSCAzLiBJTlRFUkFDVElWRSBDb21tYW5kcwotLS0gCi0xLjcu MAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI4LXdhdGNoXzhiaXRjaGFy LnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyOC13YXRjaF84Yml0Y2hhci5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmIzYzQ3My4uMDAwMDAwMAotLS0gYS9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDI4LXdhdGNoXzhiaXRjaGFyLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjYgKzAsMCBAQAotRnJvbSBhOTFlNjQ3MGMyZjFmNmJiZTQ4MTk4OGZiZjJhNmFmNmJi ODdmZDZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJp YW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRh ci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiAr MDEwMAotU3ViamVjdDogW1BBVENIIDI4LzcwXSB3YXRjaF84Yml0Y2hhcgotCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0KLSB3YXRjaC5jIHwgICAgMiArLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvd2F0Y2guYyBiL3dhdGNoLmMKLWlu ZGV4IDU4NDExNjguLmViNWNlOTIgMTAwNjQ0Ci0tLS0gYS93YXRjaC5jCi0rKysgYi93YXRjaC5j Ci1AQCAtMjk3LDcgKzI5Nyw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJCQkJ bW92ZSh5LCB4KTsKLSAJCQkJaWYgKG9wdGlvbl9kaWZmZXJlbmNlcykgewotIAkJCQkJY2h0eXBl IG9sZGNoID0gaW5jaCgpOwotLQkJCQkJY2hhciBvbGRjID0gb2xkY2ggJiBBX0NIQVJURVhUOwot KwkJCQkJdW5zaWduZWQgY2hhciBvbGRjID0gb2xkY2ggJiBBX0NIQVJURVhUOwotIAkJCQkJYXR0 ciA9ICFmaXJzdF9zY3JlZW4KLSAJCQkJCSAgICAmJiAoKGNoYXIpYyAhPSBvbGRjCi0gCQkJCQkJ fHwKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyOS1s aWJyYXJ5X21hcF9mcmVlcHJvYy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjktbGli cmFyeV9tYXBfZnJlZXByb2MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5 NDlkNDQuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyOS1saWJyYXJ5X21h cF9mcmVlcHJvYy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLUZyb20gOWRj NzM3Y2I2ZGZjMDcyNjA1YzNjNGUwYWZiMDJmYTg1ZDJiMGIxNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3Av cHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURh dGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAyOS83 MF0gbGlicmFyeV9tYXBfZnJlZXByb2MKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gcHJvYy9saWJyYXJ5 Lm1hcCB8ICAgIDIgKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Byb2MvbGlicmFyeS5tYXAgYi9wcm9jL2xpYnJhcnku bWFwCi1pbmRleCBhMzg2MjdiLi4xNTQwNjFiIDEwMDY0NAotLS0tIGEvcHJvYy9saWJyYXJ5Lm1h cAotKysrIGIvcHJvYy9saWJyYXJ5Lm1hcAotQEAgLTcsNyArNyw3IEBAIGdsb2JhbDoKLSAKLSAg IHJlYWRwcm9jOyByZWFkdGFzazsgcmVhZHByb2N0YWI7IHJlYWRwcm9jdGFiMjsgbG9va191cF9v dXJfc2VsZjsgZXNjYXBlX2NvbW1hbmQ7Ci0gICBlc2NhcGVfc3RyOyBlc2NhcGVfc3RybGlzdDsK LS0gIG9wZW5wcm9jOyBjbG9zZXByb2M7Ci0rICBvcGVucHJvYzsgY2xvc2Vwcm9jOyBmcmVlcHJv YzsKLSAgIHR0eV90b19kZXY7IGRldl90b190dHk7IG9wZW5fcHNkYl9tZXNzYWdlOyBvcGVuX3Bz ZGI7IGxvb2t1cF93Y2hhbjsKLSAgIGRpc3BsYXlfdmVyc2lvbjsgcHJvY3BzX3ZlcnNpb247IGxp bnV4X3ZlcnNpb25fY29kZTsKLSAgIEhlcnR6OyBzbXBfbnVtX2NwdXM7IGhhdmVfcHJpdnM7Ci0t LSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzAtcGdyZXBf c3RhcnRfdGltZS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzAtcGdyZXBfc3RhcnRf dGltZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDk3YzA3Ni4uMDAwMDAw MAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMwLXBncmVwX3N0YXJ0X3RpbWUucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1Gcm9tIDUyMDZmNzViODA2OTkyMTZhZDM2 NzdmNTAwYTkzZTNkMjMyM2I2MjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRw Oi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4y LjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAy MDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMzAvNzBdIHBncmVwX3N0YXJ0X3Rp bWUKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tCi0gcGdyZXAuYyB8ICAgIDMgKystCi0gMSBmaWxlcyBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9wZ3Jl cC5jIGIvcGdyZXAuYwotaW5kZXggYmJiN2NkMS4uNjA5Y2FiZCAxMDA2NDQKLS0tLSBhL3BncmVw LmMKLSsrKyBiL3BncmVwLmMKLUBAIC00MzAsNyArNDMwLDggQEAgc3RhdGljIHVuaW9uIGVsICog c2VsZWN0X3Byb2NzIChpbnQgKm51bSkKLSAJcHJlZyA9IGRvX3JlZ2NvbXAoKTsKLSAKLSAJaWYg KG9wdF9uZXdlc3QpIHNhdmVkX3N0YXJ0X3RpbWUgPSAgMFVMTDsKLS0JaWYgKG9wdF9vbGRlc3Qp IHNhdmVkX3N0YXJ0X3RpbWUgPSB+MFVMTDsKLSsgICAgZWxzZQotKwkgICAgc2F2ZWRfc3RhcnRf dGltZSA9IH4wVUxMOwotIAlpZiAob3B0X25ld2VzdCkgc2F2ZWRfcGlkID0gMDsKLSAJaWYgKG9w dF9vbGRlc3QpIHNhdmVkX3BpZCA9IElOVF9NQVg7Ci0gCQotLS0gCi0xLjcuMAotCmRpZmYgLS1n aXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMxLXJlYWRwcm9jX2MucGF0Y2ggYi9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDMxLXJlYWRwcm9jX2MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDg5Yzk0NTUuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAz MS1yZWFkcHJvY19jLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotRnJvbSA0 OWFiYTQ2YzIyZWM0YWYyOTc1NjYxNjVkZGE2MTFmZTZjM2M3OTJiIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4v cC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgot RGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDMx LzcwXSByZWFkcHJvY19jCi0KLXJldHVybiBpZiB1bmFibGUgdG8gb3BlbiAvcHJvYwotLS0tCi0g cHJvYy9yZWFkcHJvYy5jIHwgICAgNCArKystCi0gMSBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9wcm9jL3JlYWRwcm9jLmMgYi9w cm9jL3JlYWRwcm9jLmMKLWluZGV4IDRmYWQxMWQuLjAzODZhNjMgMTAwNjQ0Ci0tLS0gYS9wcm9j L3JlYWRwcm9jLmMKLSsrKyBiL3Byb2MvcmVhZHByb2MuYwotQEAgLTE3Myw3ICsxNzMsNyBAQCBF TlRFUigweDIyMCk7Ci0gICAgICAgICAvLyBleGFtaW5lIGEgZmllbGQgbmFtZSAoaGFzaCBhbmQg Y29tcGFyZSkKLSAgICAgYmFzZToKLSAgICAgICAgIGlmKHVubGlrZWx5KCEqUykpIGJyZWFrOwot LSAgICAgICAgZW50cnkgPSB0YWJsZVs2MyAmIChhc3NvW1NbM11dICsgYXNzb1tTWzJdXSArIGFz c29bU1swXV0pXTsKLSsgICAgICAgIGVudHJ5ID0gdGFibGVbNjMgJiAoYXNzb1soaW50KVNbM11d ICsgYXNzb1soaW50KVNbMl1dICsgYXNzb1soaW50KVNbMF1dKV07Ci0gICAgICAgICBjb2xvbiA9 IHN0cmNocihTLCAnOicpOwotICAgICAgICAgaWYodW5saWtlbHkoIWNvbG9uKSkgYnJlYWs7Ci0g ICAgICAgICBpZih1bmxpa2VseShjb2xvblsxXSE9J1x0JykpIGJyZWFrOwotQEAgLTk0Miw2ICs5 NDIsOCBAQCBwcm9jX3QqKiByZWFkcHJvY3RhYihpbnQgZmxhZ3MsIC4uLikgewotICAgICBlbHNl Ci0gCVBUID0gb3BlbnByb2MoZmxhZ3MpOwotICAgICB2YV9lbmQoYXApOwotKyAgICBpZiAoIVBU KQotKyAgICAgIHJldHVybiAwOwotICAgICBkbyB7CQkJCQkvKiByZWFkIHRhYmxlOiAqLwotIAl0 YWIgPSB4cmVhbGxvYyh0YWIsIChuKzEpKnNpemVvZihwcm9jX3QqKSk7LyogcmVhbGxvYyBhcyB3 ZSBnbywgdXNpbmcgKi8KLSAJdGFiW25dID0gcmVhZHByb2NfZGlyZWN0KFBULCBOVUxMKTsgICAg IC8qIGZpbmFsIG51bGwgdG8gdGVybWluYXRlICovCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBh L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzItc3lzaW5mb183X251bWJlcnMucGF0Y2ggYi9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDMyLXN5c2luZm9fN19udW1iZXJzLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA5ZDdkYTBlLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3Bz LTMuMi44LzAwMzItc3lzaW5mb183X251bWJlcnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0 NiArMCwwIEBACi1Gcm9tIDZmNDY5OTgyZDdjNzRjYTIyYjczNDVmNWJjOGI5NTZmNTgzYTk3ODMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcv ZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxp bmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1T dWJqZWN0OiBbUEFUQ0ggMzIvNzBdIHN5c2luZm9fN19udW1iZXJzCi0KLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LQotIHByb2Mvc3lzaW5mby5jIHwgICAgNyArKysrLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9wcm9jL3N5c2luZm8u YyBiL3Byb2Mvc3lzaW5mby5jCi1pbmRleCA0NzM2MzRmLi44ZGJhYmRmIDEwMDY0NAotLS0tIGEv cHJvYy9zeXNpbmZvLmMKLSsrKyBiL3Byb2Mvc3lzaW5mby5jCi1AQCAtMTI0LDI0ICsxMjQsMjUg QEAgaW50IHVwdGltZShkb3VibGUgKnJlc3RyaWN0IHVwdGltZV9zZWNzLCBkb3VibGUgKnJlc3Ry aWN0IGlkbGVfc2VjcykgewotIHVuc2lnbmVkIGxvbmcgbG9uZyBIZXJ0ejsKLSAKLSBzdGF0aWMg dm9pZCBvbGRfSGVydHpfaGFjayh2b2lkKXsKLS0gIHVuc2lnbmVkIGxvbmcgbG9uZyB1c2VyX2os IG5pY2Vfaiwgc3lzX2osIG90aGVyX2o7ICAvKiBqaWZmaWVzIChjbG9jayB0aWNrcykgKi8KLSsg IHVuc2lnbmVkIGxvbmcgbG9uZyB1c2VyX2osIG5pY2Vfaiwgc3lzX2osIG90aGVyX2osIHdhaXRf aiwgaGlycV9qLCBzaXJxX2osIHN0b2xfajsgIC8qIGppZmZpZXMgKGNsb2NrIHRpY2tzKSAqLwot ICAgZG91YmxlIHVwXzEsIHVwXzIsIHNlY29uZHM7Ci0gICB1bnNpZ25lZCBsb25nIGxvbmcgamlm ZmllczsKLSAgIHVuc2lnbmVkIGg7Ci0gICBjaGFyICpyZXN0cmljdCBzYXZlbG9jYWxlOwotIAot KyAgd2FpdF9qID0gaGlycV9qID0gc2lycV9qID0gc3RvbF9qID0gMDsKLSAgIHNhdmVsb2NhbGUg PSBzZXRsb2NhbGUoTENfTlVNRVJJQywgTlVMTCk7Ci0gICBzZXRsb2NhbGUoTENfTlVNRVJJQywg IkMiKTsKLSAgIGRvewotICAgICBGSUxFX1RPX0JVRihVUFRJTUVfRklMRSx1cHRpbWVfZmQpOyAg c3NjYW5mKGJ1ZiwgIiVsZiIsICZ1cF8xKTsKLSAgICAgLyogdXB0aW1lKCZ1cF8xLCBOVUxMKTsg Ki8KLSAgICAgRklMRV9UT19CVUYoU1RBVF9GSUxFLHN0YXRfZmQpOwotLSAgICBzc2NhbmYoYnVm LCAiY3B1ICVMdSAlTHUgJUx1ICVMdSIsICZ1c2VyX2osICZuaWNlX2osICZzeXNfaiwgJm90aGVy X2opOwotKyAgICBzc2NhbmYoYnVmLCAiY3B1ICVMdSAlTHUgJUx1ICVMdSAlTHUgJUx1ICVMdSAl THUiLCAmdXNlcl9qLCAmbmljZV9qLCAmc3lzX2osICZvdGhlcl9qLCAmd2FpdF9qLCAmaGlycV9q LCAmc2lycV9qLCAmc3RvbF9qKTsKLSAgICAgRklMRV9UT19CVUYoVVBUSU1FX0ZJTEUsdXB0aW1l X2ZkKTsgIHNzY2FuZihidWYsICIlbGYiLCAmdXBfMik7Ci0gICAgIC8qIHVwdGltZSgmdXBfMiwg TlVMTCk7ICovCi0gICB9IHdoaWxlKChsb25nIGxvbmcpKCAodXBfMi11cF8xKSoxMDAwLjAvdXBf MSApKTsgLyogd2FudCB1bmRlciAwLjElIGVycm9yICovCi0gICBzZXRsb2NhbGUoTENfTlVNRVJJ Qywgc2F2ZWxvY2FsZSk7Ci0tICBqaWZmaWVzID0gdXNlcl9qICsgbmljZV9qICsgc3lzX2ogKyBv dGhlcl9qOwotKyAgamlmZmllcyA9IHVzZXJfaiArIG5pY2VfaiArIHN5c19qICsgb3RoZXJfaiAr IHdhaXRfaiArIGhpcnFfaiArIHNpcnFfaiArIHN0b2xfaiA7Ci0gICBzZWNvbmRzID0gKHVwXzEg KyB1cF8yKSAvIDI7Ci0gICBoID0gKHVuc2lnbmVkKSggKGRvdWJsZSlqaWZmaWVzL3NlY29uZHMv c21wX251bV9jcHVzICk7Ci0gICAvKiBhY3R1YWwgdmFsdWVzIHVzZWQgYnkgMi40IGtlcm5lbHM6 IDMyIDY0IDEwMCAxMjggMTAwMCAxMDI0IDEyMDAgKi8KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0 IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzMy10bG9hZF9ub19vcHRhcmdzLnBhdGNoIGIvcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDAzMy10bG9hZF9ub19vcHRhcmdzLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA0ZjgyODNkLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3Bz LTMuMi44LzAwMzMtdGxvYWRfbm9fb3B0YXJncy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3 ICswLDAgQEAKLUZyb20gYmFhZWQwNDg5YmMxMjczNjMzZTkxOGUwODVmZjI4Yjg1ZTQxYTNjNiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9k ZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGlu Zm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSCAzMy83MF0gdGxvYWRfbm9fb3B0YXJncwotCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0K LSB0bG9hZC5jIHwgICAgMyAtLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Rsb2FkLmMgYi90bG9hZC5jCi1pbmRleCAx ZDM0NmJiLi5jZWNlNDhjIDEwMDY0NAotLS0tIGEvdGxvYWQuYwotKysrIGIvdGxvYWQuYwotQEAg LTMwLDkgKzMwLDYgQEAgc3RhdGljIGludCBmZD0xOwotIHN0YXRpYyBpbnQgZGx5PTU7Ci0gc3Rh dGljIGptcF9idWYgamI7Ci0gCi0tZXh0ZXJuIGludCBvcHRpbmQ7Ci0tZXh0ZXJuIGNoYXIgKm9w dGFyZzsKLS0KLSBzdGF0aWMgdm9pZCBhbHJtKGludCBzaWdubykKLSB7Ci0gICAgICh2b2lkKXNp Z25vOwotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM0 LXcuMS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzQtdy4xLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDlhYTAzLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMzQtdy4xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAot RnJvbSBlZTQzZWE0NzE3ZmQxNjI5OTU2ZmE2Yjc5NjhmMTM0ZWYxZmRmMjM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29s L21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4u b3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BB VENIIDM0LzcwXSB3LjEKLQotTWFrZSBub3RlIG9mIHRoZSB0aW1lIGZvcm1hdHMKLUJ1Zy1EZWJp YW46IGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvNDE0OTA2Ci0tLS0KLSB3LjEgfCAgIDI3ICsrKysr KysrKysrKysrKysrKysrLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3cuMSBiL3cuMQotaW5kZXggODQ3ODZl Ni4uYTEzY2M4MSAxMDA2NDQKLS0tLSBhL3cuMQotKysrIGIvdy4xCi1AQCAtNCwyNiArNCwyNiBA QAotIC5TSCBOQU1FCi0gdyBcLSBTaG93IHdobyBpcyBsb2dnZWQgb24gYW5kIHdoYXQgdGhleSBh cmUgZG9pbmcuCi0gLlNIIFNZTk9QU0lTCi0tLkIgdyBcLQotLS5SQiBbIGh1c2ZWbyBdCi0rLkIg dwotKy5SQiBbIFwtaHVzZlZvIF0KLSAuUkkgWyB1c2VyIF0KLSAuU0ggREVTQ1JJUFRJT04KLS0u QiAidyAiCi0rLkIgdwotIGRpc3BsYXlzIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VycyBjdXJy ZW50bHkgb24gdGhlIG1hY2hpbmUsCi0gYW5kIHRoZWlyIHByb2Nlc3Nlcy4KLSBUaGUgaGVhZGVy IHNob3dzLCBpbiB0aGlzIG9yZGVyLCAgdGhlIGN1cnJlbnQgdGltZSwKLSBob3cgbG9uZyB0aGUg c3lzdGVtIGhhcyBiZWVuIHJ1bm5pbmcsCi0gaG93IG1hbnkgdXNlcnMgYXJlIGN1cnJlbnRseSBs b2dnZWQgb24sCi0gYW5kIHRoZSBzeXN0ZW0gbG9hZCBhdmVyYWdlcyBmb3IgdGhlIHBhc3QgMSwg NSwgYW5kIDE1IG1pbnV0ZXMuCi0tLnNwCi0rCi0gVGhlIGZvbGxvd2luZyBlbnRyaWVzIGFyZSBk aXNwbGF5ZWQgZm9yIGVhY2ggdXNlcjoKLSBsb2dpbiBuYW1lLCB0aGUgdHR5IG5hbWUsIHRoZSBy ZW1vdGUgaG9zdCwgbG9naW4gdGltZSwgaWRsZSB0aW1lLCBKQ1BVLCBQQ1BVLAotIGFuZCB0aGUg Y29tbWFuZCBsaW5lIG9mIHRoZWlyIGN1cnJlbnQgcHJvY2Vzcy4KLS0uc3AKLSsKLSBUaGUgSkNQ VSB0aW1lIGlzIHRoZSB0aW1lIHVzZWQgYnkgYWxsIHByb2Nlc3NlcyBhdHRhY2hlZCB0byB0aGUg dHR5LiAgSXQKLSBkb2VzIG5vdCBpbmNsdWRlIHBhc3QgYmFja2dyb3VuZCBqb2JzLCBidXQgZG9l cyBpbmNsdWRlIGN1cnJlbnRseQotIHJ1bm5pbmcgYmFja2dyb3VuZCBqb2JzLgotLS5zcAotKwot IFRoZSBQQ1BVIHRpbWUgaXMgdGhlIHRpbWUgdXNlZCBieSB0aGUgY3VycmVudCBwcm9jZXNzLCBu YW1lZCBpbiB0aGUgIndoYXQiCi0gZmllbGQuCi0gCi1AQCAtMzUsNyArMzUsNyBAQCBEb24ndCBw cmludCB0aGUgaGVhZGVyLgotIC5UUCAwLjVpCi0gLkIgIlwtdSAiCi0gSWdub3JlcyB0aGUgdXNl cm5hbWUgd2hpbGUgZmlndXJpbmcgb3V0IHRoZSBjdXJyZW50IHByb2Nlc3MgYW5kIGNwdQotLXRp bWVzLiAgVG8gZGVtb25zdHJhdGUgdGhpcywgZG8gYSAic3UiIGFuZCBkbyBhICJ3IiBhbmQgYSAi dyAtdSIuCi0rdGltZXMuICBUbyBkZW1vbnN0cmF0ZSB0aGlzLCBkbyBhICJzdSIgYW5kIGRvIGEg InciIGFuZCBhICJ3IFwtdSIuCi0gLlRQIDAuNWkKLSAuQiAiXC1zICIKLSBVc2UgdGhlIHNob3J0 IGZvcm1hdC4KLUBAIC03MCw2ICs3MCwxOSBAQCBpbmZvcm1hdGlvbiBhYm91dCB3aG8gaXMgY3Vy cmVudGx5IGxvZ2dlZCBvbgotIHByb2Nlc3MgaW5mb3JtYXRpb24KLSAuUFAKLSAKLSsuU0ggTk9U RVMKLStUaGUgb3V0cHV0IGZvciBJZGxlLCBKQ1BVIGFuZCBQQ1BVIHRpbWVzIHZhaXJlcyBkZXBl bmRpbmcgb24gaWYgeW91IHVzZQotK3RoZSBcLW8gKG9sZCBzdHlsZSkgb3B0aW9uIG9yIG5vdC4g VGhlc2UgZm9ybWF0cyBjYW4gYmUgY29uZnVzaW5nIGlmIHlvdQotK3N3aXRjaCBiZXR3ZWVuIHRo ZSBvbGQgc3R5bGUgYW5kIHN0YW5kYXJkLiAgSW4gdGhlIGZvbGxvd2luZyBwYXJhZ3JhcGhzCi0r ZGF5cyBhcmUgREQsIGhvdXJzIEhILCBtaW51dGVzIE1NLCBzZWNvbmRzIFNTIGFuZCAxMDB0aHMg b2Ygc2Vjb25kcyBDQy4KLSsKLStUaGUgc3RhbmRhcmQgZm9ybWF0IGlzIEREZGF5cywgSEg6TU1t LCBNTTpTUyBvciBTUy5DQyBpZiB0aGUgdGltZXMgYXJlCi0rZ3JlYXRlciB0aGFuIDIgZGF5cywg MWhvdXIsIG9yIDEgbWludXRlIHJlc3BlY3RpdmVseS4KLSsKLStGb3IgdGhlIFwtbyBvcHRpb24s IHRoZSBvdXRwdXQgd2lsbCBiZSBlaXRoZXIgIEREZGF5cywgSEg6TU0sIE1NOlNTbSBvcgotK2Js YW5rIGlmIHRoZSB0aW1lcyBhcmUgZ3JlYXRlciB0aGFuIDIgZGF5cywgMSBob3VyIG9yIDEgbWlu dXRlCi0rcmVzcGVjdGl2ZWx5LgotKwotIC5TSCAiU0VFIEFMU08iCi0gLkJSIGZyZWUgKDEpLAot IC5CUiBwcyAoMSksCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMzUtd19jb2x1bW5zLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNS13X2Nv bHVtbnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhZDE5YmQuLjAwMDAw MDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNS13X2NvbHVtbnMucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1Gcm9tIDZiOGViZDMxYWMzOGNkODQ2NWY5ZDlhNGM1 YTMzNWIxZDc2ZTA0YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRw LmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5k ZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIx OjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMzUvNzBdIHdfY29sdW1ucwotCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0KLSB3LmMgfCAgICA4ICsrKysrKy0tCi0gMSBmaWxlcyBjaGFuZ2VkLCA2IGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS93LmMgYi93LmMKLWluZGV4 IDkxZmU4YjEuLjIwNzczMzggMTAwNjQ0Ci0tLS0gYS93LmMKLSsrKyBiL3cuYwotQEAgLTI0MSwx MCArMjQxLDEwIEBAIHN0YXRpYyB2b2lkIHNob3dpbmZvKHV0bXBfdCAqdSwgaW50IGZvcm10eXBl LCBpbnQgbWF4Y21kLCBpbnQgZnJvbSkgewotIAotIC8qKioqKiBtYWluICovCi0gaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0tICAgIGNoYXIgKnVzZXIgPSBOVUxMOwotKyAgICBj aGFyICp1c2VyID0gTlVMTCwgKnA7Ci0gICAgIHV0bXBfdCAqdTsKLSAgICAgc3RydWN0IHdpbnNp emUgd2luOwotLSAgICBpbnQgaGVhZGVyPTEsIGxvbmdmb3JtPTEsIGZyb209MSwgYXJncywgbWF4 Y21kPTgwLCBjaDsKLSsgICAgaW50IGhlYWRlcj0xLCBsb25nZm9ybT0xLCBmcm9tPTEsIGFyZ3Ms IG1heGNtZCwgY2g7Ci0gCi0gI2lmbmRlZiBXX1NIT1dGUk9NCi0gICAgIGZyb20gPSAwOwotQEAg LTI3Nyw2ICsyNzcsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gCi0g ICAgIGlmIChpb2N0bCgxLCBUSU9DR1dJTlNaLCAmd2luKSAhPSAtMSAmJiB3aW4ud3NfY29sID4g MCkKLSAJbWF4Y21kID0gd2luLndzX2NvbDsKLSsgICAgZWxzZSBpZiAocCA9IGdldGVudigiQ09M VU1OUyIpKQotKyAgICAgICAgbWF4Y21kID0gYXRvaShwKTsKLSsgICAgZWxzZQotKwltYXhjbWQg PSA4MDsKLSAgICAgaWYgKG1heGNtZCA8IDcxKSB7Ci0gCWZwcmludGYoc3RkZXJyLCAiJWQgY29s dW1uIHdpbmRvdyBpcyB0b28gbmFycm93XG4iLCBtYXhjbWQpOwotIAlleGl0KDEpOwotLS0gCi0x LjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM2LXdhdGNoX2V4ZWNf YmVlcC5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzYtd2F0Y2hfZXhlY19iZWVwLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDk5ZTRhLi4wMDAwMDAwCi0tLSBh L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzYtd2F0Y2hfZXhlY19iZWVwLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjcxICswLDAgQEAKLUZyb20gNDJkZDBkNmZhYmQwZTNiYjEzNGFmYWRkYzA3 YTFjMDI5MDVlY2MzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAu ZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRl Ymlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6 NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAzNi83MF0gd2F0Y2hfZXhlY19iZWVwCi0KLUFk ZHMgLWVycmV4aXQgZmxhZyBub3cgdG9vICMxODMzNDYKLUF1dGhvcjogTW9yZGVjaGFpIFQuIEFi enVnIDxtb3J0eUBmcmFraXIub3JnPgotQnVnLURlYmlhbjogaHR0cDovL2J1Z3MuZGViaWFuLm9y Zy80MTA5NjcKLUJ1Zy1EZWJpYW46IGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvMTgzMzQ2Ci1SZXZp ZXdlZC1ieTogQ3JhaWcgU21hbGwgPGNzbWFsbEBkZWJpYW4ub3JnPgotLS0tCi0gd2F0Y2guMSB8 ICAgMzMgKysrKysrKysrKysrKysrKysrKy0tLQotIHdhdGNoLmMgfCAgIDkzICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCi0gMiBm aWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS93YXRjaC4xIGIvd2F0Y2guMQotaW5kZXggMTYxNjc5NC4uODAyYWI4NCAxMDA2NDQK LS0tLSBhL3dhdGNoLjEKLSsrKyBiL3dhdGNoLjEKLUBAIC00LDEwICs0LDEzIEBAIHdhdGNoIFwt IGV4ZWN1dGUgYSBwcm9ncmFtIHBlcmlvZGljYWxseSwgc2hvd2luZyBvdXRwdXQgZnVsbHNjcmVl bgotIC5TSCBTWU5PUFNJUwotIC5uYQotIC5CIHdhdGNoCi0tLlJCIFsgXC1kaHZ0IF0KLSsuUkIg WyBcLWJkZWh2dHggXQotIC5SQiBbIFwtbgotIC5JUiBzZWNvbmRzIF0KLSsuUkIgWyBcLVwtYmVl cCBdCi0gLlJCIFsgXC1cLWRpZmZlcmVuY2VzWz1cZkljdW11bGF0aXZlXGZQXV0KLSsuUkIgWyBc LVwtZXJyZXhpdCBdCi0rLlJCIFsgXC1cLWV4ZWMgXQotIC5SQiBbIFwtXC1oZWxwIF0KLSAuUkIg WyBcLVwtaW50ZXJ2YWw9XGZJc2Vjb25kc1xmUF0KLSAuUkIgWyBcLVwtbm9cLXRpdGxlIF0KLUBA IC0xNyw3ICsyMCw4IEBAIHdhdGNoIFwtIGV4ZWN1dGUgYSBwcm9ncmFtIHBlcmlvZGljYWxseSwg c2hvd2luZyBvdXRwdXQgZnVsbHNjcmVlbgotIC5CIHdhdGNoCi0gcnVucwotIC5JIGNvbW1hbmQK LS1yZXBlYXRlZGx5LCBkaXNwbGF5aW5nIGl0cyBvdXRwdXQgKHRoZSBmaXJzdCBzY3JlZW5mdWxs KS4gIFRoaXMgYWxsb3dzIHlvdSB0bwotK3JlcGVhdGVkbHksIGRpc3BsYXlpbmcgaXRzIG91dHB1 dCBhbmQgZXJyb3JzICh0aGUgZmlyc3Qgc2NyZWVuZnVsbCkuICBUaGlzCi0rYWxsb3dzIHlvdSB0 bwotIHdhdGNoIHRoZSBwcm9ncmFtIG91dHB1dCBjaGFuZ2Ugb3ZlciB0aW1lLiAgQnkgZGVmYXVs dCwgdGhlIHByb2dyYW0gaXMgcnVuCi0gZXZlcnkgMiBzZWNvbmRzOyB1c2UgCi0gLkIgXC1uCi1A QCAtMzcsMTUgKzQxLDMzIEBAIHBvc2l0aW9ucyB0aGF0IGhhdmUgZXZlciBjaGFuZ2VkLiAgVGhl Ci0gb3IKLSAuQiBcLVwtbm9cLXRpdGxlCi0gb3B0aW9uIHR1cm5zIG9mZiB0aGUgaGVhZGVyIHNo b3dpbmcgdGhlIGludGVydmFsLCBjb21tYW5kLCBhbmQgY3VycmVudAotLXRpbWUgYXQgdGhlIHRv cCBvZiB0aGUgZGlzcGxheSwgYXMgd2VsbCBhcyB0aGUgZm9sbG93aW5nIGJsYW5rIGxpbmUuCi0r dGltZSBhdCB0aGUgdG9wIG9mIHRoZSBkaXNwbGF5LCBhcyB3ZWxsIGFzIHRoZSBmb2xsb3dpbmcg YmxhbmsgbGluZS4gIFRoZQotKy5JIFwtYgotK29yCi0rLkkgXC1cLWJlZXAKLStvcHRpb24gY2F1 c2VzIHRoZSBjb21tYW5kIHRvIGJlZXAgaWYgaXQgaGFzIGEgbm9uLXplcm8gZXhpdC4KLSAuUFAK LSAuQiB3YXRjaAotLXdpbGwgcnVuIHVudGlsIGludGVycnVwdGVkLgotK3dpbGwgbm9ybWFsbHkg cnVuIHVudGlsIGludGVycnVwdGVkLiBJZiB5b3Ugd2FudAotKy5CIHdhdGNoCi0rdG8gZXhpdCBv biBhbiBlcnJvciBmcm9tIHRoZSBwcm9ncmFtIHJ1bm5pbmcgdXNlIHRoZQotKy5JIFwtZQotK29y Ci0rLkkgXC1cLWVycmV4aXQKLStvcHRpb25zLCB3aGljaCB3aWxsIGNhdXNlCi0rLkIgd2F0Y2gK LSt0byBleGl0IGlmIHRoZSByZXR1cm4gdmFsdWUgZnJvbSB0aGUgcHJvZ3JhbSBpcyBub24temVy by4KLSsKLSAuU0ggTk9URQotIE5vdGUgdGhhdAotIC5JIGNvbW1hbmQKLSBpcyBnaXZlbiB0byAi c2ggXC1jIgotIHdoaWNoIG1lYW5zIHRoYXQgeW91IG1heSBuZWVkIHRvIHVzZSBleHRyYSBxdW90 aW5nIHRvIGdldCB0aGUgZGVzaXJlZCBlZmZlY3QuCi0rWW91IGNhbiBkaXNhYmxlIHRoaXMgd2l0 aCB0aGUKLSsuSSAteAotK29yCi0rLkkgLS1leGVjCi0rb3B0aW9uLCB3aGljaCBwYXNzZXMgdGhl IGNvbW1hbmQgdG8gZXhlYygyKSBpbnN0ZWFkLgotIC5QUAotIE5vdGUgdGhhdCBQT1NJWCBvcHRp b24gcHJvY2Vzc2luZyBpcyB1c2VkIChpLmUuLCBvcHRpb24gcHJvY2Vzc2luZyBzdG9wcyBhdAot IHRoZSBmaXJzdCBub25cLW9wdGlvbiBhcmd1bWVudCkuICBUaGlzIG1lYW5zIHRoYXQgZmxhZ3Mg YWZ0ZXIKLUBAIC05Myw0ICsxMTUsNSBAQCBUaGUgb3JpZ2luYWwKLSAuQiB3YXRjaAotIHdhcyB3 cml0dGVuIGJ5IFRvbnkgUmVtcyA8cmVtYm9AdW5pc29mdC5jb20+IGluIDE5OTEsIHdpdGggbW9k cyBhbmQKLSBjb3JyZWN0aW9ucyBieSBGcmFuY29pcyBQaW5hcmQuICBJdCB3YXMgcmV3b3JrZWQg YW5kIG5ldyBmZWF0dXJlcyBhZGRlZCBieQotLU1pa2UgQ29sZW1hbiA8bWtjQGFjbS5vcmc+IGlu IDE5OTkuCi0rTWlrZSBDb2xlbWFuIDxta2NAYWNtLm9yZz4gaW4gMTk5OS4gIFRoZSBiZWVwLCBl eGVjLCBhbmQgZXJyb3IgaGFuZGxpbmcKLStmZWF0dXJlcyB3ZXJlIGFkZGVkIGJ5IE1vcnR5IEFi enVnIDxtb3J0eUBmcmFraXIub3JnPiBpbiAyMDA4LgotZGlmZiAtLWdpdCBhL3dhdGNoLmMgYi93 YXRjaC5jCi1pbmRleCBlYjVjZTkyLi5hY2IxNTJmIDEwMDY0NAotLS0tIGEvd2F0Y2guYwotKysr IGIvd2F0Y2guYwotQEAgLTgsNiArOCw3IEBACi0gICogTWlrZSBDb2xlbWFuIDxta2NAYWNtLm9y Zz4uCi0gICoKLSAgKiBDaGFuZ2VzIGJ5IEFsYmVydCBDYWhhbGFuLCAyMDAyLTIwMDMuCi0rICog c3RkZXJyIGhhbmRsaW5nLCBleGVjLCBhbmQgYmVlcCBvcHRpb24gYWRkZWQgYnkgTW9ydHkgQWJ6 dWcsIDIwMDgKLSAgKi8KLSAKLSAjZGVmaW5lIFZFUlNJT04gIjAuMi4wIgotQEAgLTM1LDEzICsz NiwxNiBAQCBzdGF0aWMgc3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0gewotIAl7ImRpZmZlcmVu Y2VzIiwgb3B0aW9uYWxfYXJndW1lbnQsIDAsICdkJ30sCi0gCXsiaGVscCIsIG5vX2FyZ3VtZW50 LCAwLCAnaCd9LAotIAl7ImludGVydmFsIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICduJ30sCi0r CXsiYmVlcCIsIG5vX2FyZ3VtZW50LCAwLCAnYid9LAotKwl7ImVycmV4aXQiLCBub19hcmd1bWVu dCwgMCwgJ2UnfSwKLSsJeyJleGVjIiwgbm9fYXJndW1lbnQsIDAsICd4J30sCi0gCXsibm8tdGl0 bGUiLCBub19hcmd1bWVudCwgMCwgJ3QnfSwKLSAJeyJ2ZXJzaW9uIiwgbm9fYXJndW1lbnQsIDAs ICd2J30sCi0gCXswLCAwLCAwLCAwfQotIH07Ci0gCi0gc3RhdGljIGNoYXIgdXNhZ2VbXSA9Ci0t ICAgICJVc2FnZTogJXMgWy1kaG50dl0gWy0tZGlmZmVyZW5jZXNbPWN1bXVsYXRpdmVdXSBbLS1o ZWxwXSBbLS1pbnRlcnZhbD08bj5dIFstLW5vLXRpdGxlXSBbLS12ZXJzaW9uXSA8Y29tbWFuZD5c biI7Ci0rICAgICJVc2FnZTogJXMgWy1iZGhudHZ4XSBbLS1iZWVwXSBbLS1kaWZmZXJlbmNlc1s9 Y3VtdWxhdGl2ZV1dIFstLWV4ZWNdIFstLWhlbHBdIFstLWludGVydmFsPTxuPl0gWy0tbm8tdGl0 bGVdIFstLXZlcnNpb25dIDxjb21tYW5kPlxuIjsKLSAKLSBzdGF0aWMgY2hhciAqcHJvZ25hbWU7 Ci0gCi1AQCAtMTQwLDI4ICsxNDQsNDQgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQot IAlpbnQgb3B0YzsKLSAJaW50IG9wdGlvbl9kaWZmZXJlbmNlcyA9IDAsCi0gCSAgICBvcHRpb25f ZGlmZmVyZW5jZXNfY3VtdWxhdGl2ZSA9IDAsCi0rCQkJb3B0aW9uX2V4ZWMgPSAwLAotKwkJCW9w dGlvbl9iZWVwID0gMCwKLSsgICAgICAgIG9wdGlvbl9lcnJleGl0ID0gMCwKLSAJICAgIG9wdGlv bl9oZWxwID0gMCwgb3B0aW9uX3ZlcnNpb24gPSAwOwotIAlkb3VibGUgaW50ZXJ2YWwgPSAyOwot IAljaGFyICpjb21tYW5kOwotKwljaGFyICoqY29tbWFuZF9hcmd2OwotIAlpbnQgY29tbWFuZF9s ZW5ndGggPSAwOwkvKiBub3QgaW5jbHVkaW5nIGZpbmFsIFwwICovCi0rCWludCBwaXBlZmRbMl07 Ci0rCWludCBzdGF0dXM7Ci0rCXBpZF90IGNoaWxkOwotIAotIAlzZXRsb2NhbGUoTENfQUxMLCAi Iik7Ci0gCXByb2duYW1lID0gYXJndlswXTsKLSAKLS0Jd2hpbGUgKChvcHRjID0gZ2V0b3B0X2xv bmcoYXJnYywgYXJndiwgIitkOjpobjp2dCIsIGxvbmdvcHRzLCAoaW50ICopIDApKQotKwl3aGls ZSAoKG9wdGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiK2JlZDo6aG46dnR4IiwgbG9uZ29w dHMsIChpbnQgKikgMCkpCi0gCSAgICAgICAhPSBFT0YpIHsKLSAJCXN3aXRjaCAob3B0Yykgewot KwkJY2FzZSAnYic6Ci0rCQkJb3B0aW9uX2JlZXAgPSAxOwotKwkJCWJyZWFrOwotIAkJY2FzZSAn ZCc6Ci0gCQkJb3B0aW9uX2RpZmZlcmVuY2VzID0gMTsKLSAJCQlpZiAob3B0YXJnKQotIAkJCQlv cHRpb25fZGlmZmVyZW5jZXNfY3VtdWxhdGl2ZSA9IDE7Ci0gCQkJYnJlYWs7Ci0rICAgICAgICBj YXNlICdlJzoKLSsgICAgICAgICAgICBvcHRpb25fZXJyZXhpdCA9IDE7Ci0rICAgICAgICAgICAg YnJlYWs7Ci0gCQljYXNlICdoJzoKLSAJCQlvcHRpb25faGVscCA9IDE7Ci0gCQkJYnJlYWs7Ci0g CQljYXNlICd0JzoKLSAJCQlzaG93X3RpdGxlID0gMDsKLSAJCQlicmVhazsKLSsJCWNhc2UgJ3gn OgotKwkJICBvcHRpb25fZXhlYyA9IDE7Ci0rCQkJYnJlYWs7Ci0gCQljYXNlICduJzoKLSAJCQl7 Ci0gCQkJCWNoYXIgKnN0cjsKLUBAIC0xOTEsMTggKzIxMSwyMyBAQCBtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCi0gCi0gCWlmIChvcHRpb25faGVscCkgewotIAkJZnByaW50ZihzdGRlcnIs IHVzYWdlLCBwcm9nbmFtZSk7Ci0rCQlmcHV0cygiICAtYiwgLS1iZWVwXHRcdFx0XHRiZWVwIGlm IHRoZSBjb21tYW5kIGhhcyBhIG5vbi16ZXJvIGV4aXRcbiIsIHN0ZGVycik7Ci0gCQlmcHV0cygi ICAtZCwgLS1kaWZmZXJlbmNlc1s9Y3VtdWxhdGl2ZV1cdGhpZ2hsaWdodCBjaGFuZ2VzIGJldHdl ZW4gdXBkYXRlc1xuIiwgc3RkZXJyKTsKLSAJCWZwdXRzKCJcdFx0KGN1bXVsYXRpdmUgbWVhbnMg aGlnaGxpZ2h0aW5nIGlzIGN1bXVsYXRpdmUpXG4iLCBzdGRlcnIpOwotKwkJZnB1dHMoIiAgLWUs IC0tZXJyZXhpdFx0XHRcdFx0ZXhpdCB3YXRjaCBpZiB0aGUgY29tbWFuZCBoYXMgYSBub24temVy byBleGl0XG4iLCBzdGRlcnIpOwotIAkJZnB1dHMoIiAgLWgsIC0taGVscFx0XHRcdFx0cHJpbnQg YSBzdW1tYXJ5IG9mIHRoZSBvcHRpb25zXG4iLCBzdGRlcnIpOwotIAkJZnB1dHMoIiAgLW4sIC0t aW50ZXJ2YWw9PHNlY29uZHM+XHRcdHNlY29uZHMgdG8gd2FpdCBiZXR3ZWVuIHVwZGF0ZXNcbiIs IHN0ZGVycik7Ci0gCQlmcHV0cygiICAtdiwgLS12ZXJzaW9uXHRcdFx0XHRwcmludCB0aGUgdmVy c2lvbiBudW1iZXJcbiIsIHN0ZGVycik7Ci0gCQlmcHV0cygiICAtdCwgLS1uby10aXRsZVx0XHRc dHR1cm5zIG9mZiBzaG93aW5nIHRoZSBoZWFkZXJcbiIsIHN0ZGVycik7Ci0rCQlmcHV0cygiICAt eCwgLS1leGVjXHRcdFx0XHRwYXNzIGNvbW1hbmQgdG8gZXhlYyBpbnN0ZWFkIG9mIHNoXG4iLCBz dGRlcnIpOwotIAkJZXhpdCgwKTsKLSAJfQotIAotIAlpZiAob3B0aW5kID49IGFyZ2MpCi0gCQlk b191c2FnZSgpOwotIAotKwljb21tYW5kX2FyZ3Y9Jihhcmd2W29wdGluZF0pOyAvKiBzYXZlIGZv ciBsYXRlciAqLwotKwotIAljb21tYW5kID0gc3RyZHVwKGFyZ3Zbb3B0aW5kKytdKTsKLSAJY29t bWFuZF9sZW5ndGggPSBzdHJsZW4oY29tbWFuZCk7Ci0gCWZvciAoOyBvcHRpbmQgPCBhcmdjOyBv cHRpbmQrKykgewotQEAgLTI2MSwxMSArMjg2LDU3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKLSAJCQlmcmVlKGhlYWRlcik7Ci0gCQl9Ci0gCi0tCQlpZiAoIShwID0gcG9wZW4oY29t bWFuZCwgInIiKSkpIHsKLS0JCQlwZXJyb3IoInBvcGVuIik7Ci0rCQkvKiBhbGxvY2F0ZSBwaXBl cyAqLwotKwkJaWYgKHBpcGUocGlwZWZkKTwwKSB7Ci0rCQkgIHBlcnJvcigicGlwZSIpOwotKwkJ CWRvX2V4aXQoNyk7Ci0rCSAgfQotKwotKwkJLyogZmx1c2ggc3Rkb3V0IGFuZCBzdGRlcnIsIHNp bmNlIHdlJ3JlIGFib3V0IHRvIGRvIGZkIHN0dWZmICovCi0rCQlmZmx1c2goc3Rkb3V0KTsKLSsJ CWZmbHVzaChzdGRlcnIpOwotKwotKwkJLyogZm9yayB0byBwcmVwYXJlIHRvIHJ1biBjb21tYW5k ICovCi0rCQljaGlsZD1mb3JrKCk7Ci0rCi0rCQlpZiAoY2hpbGQ8MCkgeyAvKiBmb3JrIGVycm9y ICovCi0rCQkgIHBlcnJvcigiZm9yayIpOwotIAkJCWRvX2V4aXQoMik7Ci0rCQl9IGVsc2UgaWYg KGNoaWxkPT0wKSB7IC8qIGluIGNoaWxkICovCi0rCQkJY2xvc2UgKHBpcGVmZFswXSk7IC8qIGNo aWxkIGRvZXNuJ3QgbmVlZCByZWFkIHNpZGUgb2YgcGlwZSAqLwotKwkJCWNsb3NlICgxKTsgLyog cHJlcGFyZSB0byByZXBsYWNlIHN0ZG91dCB3aXRoIHBpcGUgKi8KLSsJCQlpZiAoZHVwMiAocGlw ZWZkWzFdLCAxKTwwKSB7IC8qIHJlcGxhY2Ugc3Rkb3V0IHdpdGggd3JpdGUgc2lkZSBvZiBwaXBl ICovCi0rCQkJICBwZXJyb3IoImR1cDIiKTsKLSsJCQkJZXhpdCgzKTsKLSsJCQl9Ci0rCQkJZHVw MigxLCAyKTsgLyogc3RkZXJyIHNob3VsZCBkZWZhdWx0IHRvIHN0ZG91dCAqLwotKwotKwkJCWlm IChvcHRpb25fZXhlYykgeyAvKiBwYXNzIGNvbW1hbmQgdG8gZXhlYyBpbnN0ZWFkIG9mIHN5c3Rl bSAqLwotKwkJCSAgaWYgKGV4ZWN2cChjb21tYW5kX2FyZ3ZbMF0sIGNvbW1hbmRfYXJndik9PS0x KSB7Ci0rCQkJCSAgcGVycm9yKCJleGVjIik7Ci0rCQkJCSAgZXhpdCg0KTsKLSsJCQkJfQotKwkJ CX0gZWxzZSB7Ci0rCQkgICAgc3RhdHVzPXN5c3RlbShjb21tYW5kKTsgLyogd2F0Y2ggbWFucGFn ZSBwcm9taXNlcyBzaCBxdW90aW5nICovCi0rCi0rCQkJICAvKiBwcm9wYWdhdGUgY29tbWFuZCBl eGl0IHN0YXR1cyBhcyBjaGlsZCBleGl0IHN0YXR1cyAqLwotKwkJCSAgaWYgKCFXSUZFWElURUQo c3RhdHVzKSkgeyAvKiBjaGlsZCBleGl0cyBub256ZXJvIGlmIGNvbW1hbmQgZG9lcyAqLwotKwkJ CSAgICBleGl0KDEpOwotKwkJCSAgfSBlbHNlIHsKLSsJCQkgICAgZXhpdChXRVhJVFNUQVRVUyhz dGF0dXMpKTsKLSsJCSAgICB9Ci0rCQkJfQotKwotKwkJfQotKwotKwkJLyogb3RoZXJ3aXNlLCB3 ZSdyZSBpbiBwYXJlbnQgKi8KLSsJCWNsb3NlKHBpcGVmZFsxXSk7IC8qIGNsb3NlIHdyaXRlIHNp ZGUgb2YgcGlwZSAqLwotKwkJaWYgKChwPWZkb3BlbihwaXBlZmRbMF0sICJyIikpPT1OVUxMKSB7 Ci0rCQkgIHBlcnJvcigiZmRvcGVuIik7Ci0rCQkJZG9fZXhpdCg1KTsKLSAJCX0KLSAKLSsKLSAJ CWZvciAoeSA9IHNob3dfdGl0bGU7IHkgPCBoZWlnaHQ7IHkrKykgewotIAkJCWludCBlb2xzZWVu ID0gMCwgdGFicGVuZGluZyA9IDA7Ci0gCQkJZm9yICh4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsK LUBAIC0zMTMsNyArMzg0LDE5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJCQlv bGRlb2xzZWVuID0gZW9sc2VlbjsKLSAJCX0KLSAKLS0JCXBjbG9zZShwKTsKLSsJCWZjbG9zZShw KTsKLSsKLSsJCS8qIGhhcnZlc3QgY2hpbGQgcHJvY2VzcyBhbmQgZ2V0IHN0YXR1cywgcHJvcGFn YXRlZCBmcm9tIGNvbW1hbmQgKi8KLSsJCWlmICh3YWl0cGlkKGNoaWxkLCAmc3RhdHVzLCAwKTww KSB7Ci0rCQkgIHBlcnJvcigid2FpdHBpZCIpOwotKwkJCWRvX2V4aXQoOCk7Ci0rCQl9OwotKwot KwkJLyogaWYgY2hpbGQgcHJvY2VzcyBleGl0ZWQgaW4gZXJyb3IsIGJlZXAgaWYgb3B0aW9uX2Jl ZXAgaXMgc2V0ICovCi0rCQlpZiAoKCFXSUZFWElURUQoc3RhdHVzKSB8fCBXRVhJVFNUQVRVUyhz dGF0dXMpKSkgewotKyAgICAgICAgICBpZiAob3B0aW9uX2JlZXApIGJlZXAoKTsKLSsgICAgICAg ICAgaWYgKG9wdGlvbl9lcnJleGl0KSBkb19leGl0KDgpOwotKwkJfQotIAotIAkJZmlyc3Rfc2Ny ZWVuID0gMDsKLSAJCXJlZnJlc2goKTsKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDAzNy1wYXRoX21heC5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwMzctcGF0aF9tYXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4Njg0 NmMuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNy1wYXRoX21heC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLUZyb20gM2JmMjBhMDRkZGJkZjQzNWUy MGExOTBkYzQ1Y2FiYjVkMDJjN2I2OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0 dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18z LjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFy IDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAzNy83MF0gcGF0aF9tYXgKLQot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tCi0gcHJvYy9yZWFkcHJvYy5jIHwgICAgMiArLQotIHB3ZHguYyAgICAg ICAgICB8ICAgMjAgKysrKysrKysrKysrKysrKy0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDE3IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9wcm9jL3JlYWRwcm9j LmMgYi9wcm9jL3JlYWRwcm9jLmMKLWluZGV4IDAzODZhNjMuLmQzZTg1YTMgMTAwNjQ0Ci0tLS0g YS9wcm9jL3JlYWRwcm9jLmMKLSsrKyBiL3Byb2MvcmVhZHByb2MuYwotQEAgLTEwMzYsNyArMTAz Niw3IEBAIHByb2NfZGF0YV90ICpyZWFkcHJvY3RhYjIoaW50KCp3YW50X3Byb2MpKHByb2NfdCAq YnVmKSwgaW50KCp3YW50X3Rhc2spKHByb2NfdCAqCi0gICogYW5kIGZpbGxlZCBvdXQgcHJvY190 IHN0cnVjdHVyZS4KLSAgKi8KLSBwcm9jX3QgKiBnZXRfcHJvY19zdGF0cyhwaWRfdCBwaWQsIHBy b2NfdCAqcCkgewotLQlzdGF0aWMgY2hhciBwYXRoW1BBVEhfTUFYXSwgc2J1ZlsxMDI0XTsKLSsJ c3RhdGljIGNoYXIgcGF0aFszMl0sIHNidWZbMTAyNF07Ci0gCXN0cnVjdCBzdGF0IHN0YXRidWY7 Ci0gCi0gCXNwcmludGYocGF0aCwgIi9wcm9jLyVkIiwgcGlkKTsKLWRpZmYgLS1naXQgYS9wd2R4 LmMgYi9wd2R4LmMKLWluZGV4IGNiOTZhNTIuLjNlODhmM2MgMTAwNjQ0Ci0tLS0gYS9wd2R4LmMK LSsrKyBiL3B3ZHguYwotQEAgLTM1LDcgKzM1LDYgQEAgc3RhdGljIHZvaWQgdmVyc2lvbih2b2lk KQotIAotIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCi0gewotLSAgICAgY2hhciBi dWZbUEFUSF9NQVgrMV07Ci0gICAgICByZWdleF90IHJlOwotICAgICAgaW50IGk7Ci0gCi1AQCAt NTksNiArNTgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQotIAotICAgICAg Zm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykgewotICAgICAgICAgICBpZiAocmVnZXhlYygmcmUs IGFyZ3ZbaV0sIDAsIE5VTEwsIDApICE9IDApIHsKLSsgICAgICAgICAgICAgICBjaGFyIGJ1Zlsy NyArIHN0cmxlbiAoYXJndltpXSkgKyAxXTsgIC8vIENvbnN0YW50IDI3IGlzIHRoZSBsZW5ndGgg b2YgdGhlIGVycm9yIHN0cmluZyAicHdkeDogLi4uICIKLSAgICAgICAgICAgICAgICBzbnByaW50 ZihidWYsIHNpemVvZiBidWYsICJwd2R4OiBpbnZhbGlkIHByb2Nlc3MgaWQ6ICVzXG4iLCBhcmd2 W2ldKTsKLSAgICAgICAgICAgICAgICBkaWUoYnVmKTsKLSAgICAgICAgICAgfQotQEAgLTY4LDkg KzY4LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCi0gCi0gICAgICByZWdm cmVlKCZyZSk7Ci0gCi0rICAgICBpbnQgYWxsb2NsZW4gPSAxMjg7Ci0rICAgICBjaGFyICpwYXRo YnVmID0gbWFsbG9jKGFsbG9jbGVuKTsKLSsKLSAgICAgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBp KyspIHsKLS0gICAgICAgICAgY2hhciAqIHMgPSBidWY7Ci0rICAgICAgICAgIGNoYXIgKiBzOwot ICAgICAgICAgICBpbnQgbGVuOwotKyAgICAgICAgICBjaGFyIGJ1ZlsxMCArIHN0cmxlbihhcmd2 W2ldKSArIDFdOyAvLyBDb25zdGFudCAxMCBpcyB0aGUgbGVuZ3RoIG9mIHN0cmluZ3MgIi9wcm9j LyIgKyAiL2N3ZCIgKyAxCi0gICAgICAgICAgIAotICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50 LCBhbGwgYXJndW1lbnRzIGFyZSBpbiB0aGUgZm9ybSAvcHJvYy9ubm5uCi0gICAgICAgICAgIC8v IG9yIG5ubm4sIHNvIGEgc2ltcGxlIGNoZWNrIGJhc2VkIG9uIHRoZSBmaXJzdCBjaGFyIGlzCi1A QCAtODIsMTQgKzg2LDIyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCi0gCi0g ICAgICAgICAgIC8vIGJ1ZiBjb250YWlucyAvcHJvYy9ubm5uL2N3ZCBzeW1saW5rIG5hbWUgb24g ZW50cnksIHRoZQotICAgICAgICAgICAvLyB0YXJnZXQgb2YgdGhhdCBzeW1saW5rIG9uIHJldHVy bgotLSAgICAgICAgICBpZiAoKGxlbiA9IHJlYWRsaW5rKGJ1ZiwgYnVmLCBQQVRIX01BWCkpIDwg MCkgewotKyAgICAgICAgICB3aGlsZSAoKGxlbiA9IHJlYWRsaW5rKGJ1ZiwgcGF0aGJ1ZiwgYWxs b2NsZW4pKSA9PSBhbGxvY2xlbikgewotKyAgICAgICAgICAgICAgIGFsbG9jbGVuICo9IDI7Ci0r ICAgICAgICAgICAgICAgcGF0aGJ1ZiA9IHJlYWxsb2MocGF0aGJ1ZiwgYWxsb2NsZW4pOwotKyAg ICAgICAgICB9Ci0rCi0rICAgICAgICAgIGlmIChsZW4gPCAwKSB7Ci0gICAgICAgICAgICAgICAg cyA9IHN0cmVycm9yKGVycm5vID09IEVOT0VOVCA/IEVTUkNIIDogZXJybm8pOwotICAgICAgICAg ICB9IGVsc2UgewotLSAgICAgICAgICAgICAgIGJ1ZltsZW5dID0gMDsKLSsgICAgICAgICAgICAg ICBwYXRoYnVmW2xlbl0gPSAwOwotKyAgICAgICAgICAgICAgIHMgPSBwYXRoYnVmOwotICAgICAg ICAgICB9Ci0gCi0gICAgICAgICAgIHByaW50ZigiJXM6ICVzXG4iLCBhcmd2W2ldLCBzKTsKLSAg ICAgIH0KLSAKLSsgICAgIGZyZWUocGF0aGJ1Zik7Ci0rCi0gICAgICByZXR1cm4gMDsKLSB9Ci0t LSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzgtd19lbnZs ZW5ndGgucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM4LXdfZW52bGVuZ3RoLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDFlODZhLi4wMDAwMDAwCi0tLSBhL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwMzgtd19lbnZsZW5ndGgucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxODMgKzAsMCBAQAotRnJvbSBmY2M2MzU4MWRmZjEyYjhkNTYwM2MwNzg3MDkxYWYxYTFm MWQ3Yzg5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJp YW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRh ci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiAr MDEwMAotU3ViamVjdDogW1BBVENIIDM4LzcwXSB3X2Vudmxlbmd0aAotCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0KLSB3LjEgfCAgIDEwICsrKysrKysrKy0KLSB3LmMgfCAgIDUzICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA0 NSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3cuMSBiL3cu MQotaW5kZXggYTEzY2M4MS4uZDUxZTQ5MCAxMDA2NDQKLS0tLSBhL3cuMQotKysrIGIvdy4xCi1A QCAtMSw2ICsxLDYgQEAKLSAuXCIgICAgICAgICAgICAgLSotTnJvZmYtKi0KLSAuXCIKLS0uVEgg VyAxICI4IERlYyAxOTkzICIgIiAiICJMaW51eCBVc2VyJ3MgTWFudWFsIgotKy5USCBXIDEgIjUg T2N0b2JlciAyMDA5ICIgIiAiICJMaW51eCBVc2VyJ3MgTWFudWFsIgotIC5TSCBOQU1FCi0gdyBc LSBTaG93IHdobyBpcyBsb2dnZWQgb24gYW5kIHdoYXQgdGhleSBhcmUgZG9pbmcuCi0gLlNIIFNZ Tk9QU0lTCi1AQCAtNjEsNiArNjEsMTQgQEAgT2xkIHN0eWxlIG91dHB1dC4gUHJpbnRzIGJsYW5r IHNwYWNlIGZvciBpZGxlIHRpbWVzIGxlc3MgdGhhbiBvbmUgbWludXRlLgotIC5CICJ1c2VyICIK LSBTaG93IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQgdXNlciBvbmx5LgotIAotKy5T SCBFTlZJUk9OTUVOVAotKy5UUAotK1BST0NQU19VU0VSTEVOCi0rT3ZlcnJpZGUgdGhlIGRlZmF1 bHQgd2lkdGggb2YgdGhlIHVzZXJuYW1lIGNvbHVtbi4gRGVmYXVsdHMgdG8gOC4KLSsuVFAKLStQ Uk9DUFNfRlJPTUxFTgotK092ZXJyaWRlIHRoZSBkZWZhdWx0IHdpZHRoIG9mIHRoZSBmcm9tIGNv bHVtbi4gRGVmYXVsdHMgdG8gMTYuCi0rCi0gLlNIIEZJTEVTCi0gLlRQCi0gLkkgL3Zhci9ydW4v dXRtcAotZGlmZiAtLWdpdCBhL3cuYyBiL3cuYwotaW5kZXggMjA3NzMzOC4uNDhhMDJiZSAxMDA2 NDQKLS0tLSBhL3cuYwotKysrIGIvdy5jCi1AQCAtNDQsMjAgKzQ0LDE5IEBAIHR5cGVkZWYgc3Ry dWN0IHV0bXAgdXRtcF90OwotIC8qIFVoLi4uIHNhbWUgdGhpbmcgYXMgVVRfTkFNRVNJWkUgKi8K LSAjZGVmaW5lIFVTRVJTWiAoc2l6ZW9mIHUtPnV0X3VzZXIpCi0gCi0rLyogQXJiaXRhcnkgc2V0 dGluZywgbm90IHRvbyBiaWcgZm9yIHRoZSBzY3JlZW4sIG1heCBob3N0IHNpemUgKi8KLSsjZGVm aW5lIEhPU1RTWiA0MAotKwotIAotIC8qIFRoaXMgcm91dGluZSBpcyBjYXJlZnVsIHNpbmNlIHNv bWUgcHJvZ3JhbXMgbGVhdmUgdXRtcCBzdHJpbmdzCi0tICogdW5wcmludGFibGUuICBBbHdheXMg b3V0cHV0cyBhdCBsZWFzdCAxNiBjaGFycyBwYWRkZWQgd2l0aCBzcGFjZXMKLSsgKiB1bnByaW50 YWJsZS4gIEFsd2F5cyBvdXRwdXRzIGF0IGxlYXN0IGZyb21sZW4gY2hhcnMgcGFkZGVkIHdpdGgg c3BhY2VzCi0gICogb24gdGhlIHJpZ2h0IGlmIG5lY2Vzc2FyeS4KLSAgKi8KLS1zdGF0aWMgdm9p ZCBwcmludF9ob3N0KGNvbnN0IGNoYXIgKnJlc3RyaWN0IGhvc3QsIGludCBsZW4pIHsKLStzdGF0 aWMgdm9pZCBwcmludF9ob3N0KGNvbnN0IGNoYXIgKnJlc3RyaWN0IGhvc3QsIGludCBsZW4sIGNv bnN0IGludCBmcm9tbGVuKSB7Ci0gICAgIGNvbnN0IGNoYXIgKmxhc3Q7Ci0gICAgIGludCB3aWR0 aCA9IDA7Ci0gCi0tICAgIC8qIEZJWE1FOiB0aGVyZSBzaG91bGQgcmVhbGx5IGJlIGEgd2F5IHRv IGNvbmZpZ3VyZSB0aGlzLi4uICovCi0tICAgIC8qIGZvciBub3csIHdlJ2xsIGp1c3QgbGltaXQg aXQgdG8gdGhlIDE2IHRoYXQgdGhlIGxpYmM1IHZlcnNpb24KLS0gICAgICogb2YgdXRtcCB1c2Vz LgotLSAgICAgKi8KLS0gICAgaWYgKGxlbiA+IDE2KSBsZW4gPSAxNjsKLSsgICAgaWYgKGxlbiA+ IGZyb21sZW4pIGxlbiA9IGZyb21sZW47Ci0gICAgIGxhc3QgPSBob3N0ICsgbGVuOwotICAgICBm b3IgKCA7IGhvc3QgPCBsYXN0IDsgaG9zdCsrKXsKLSAgICAgICAgIGlmIChpc3ByaW50KCpob3N0 KSAmJiAqaG9zdCAhPSAnICcpIHsKLUBAIC02OCw3ICs2Nyw4IEBAIHN0YXRpYyB2b2lkIHByaW50 X2hvc3QoY29uc3QgY2hhciAqcmVzdHJpY3QgaG9zdCwgaW50IGxlbikgewotIAl9Ci0gICAgIH0K LSAgICAgLy8gc3BhY2UtZmlsbCwgYW5kIGEgJy0nIHRvbyBpZiBuZWVkZWQgdG8gZW5zdXJlIHRo ZSBjb2x1bW4gZXhpc3RzCi0tICAgIGlmKHdpZHRoIDwgMTYpIGZwdXRzKCItICAgICAgICAgICAg ICAgIit3aWR0aCwgc3Rkb3V0KTsKLSsJd2hpbGUod2lkdGgrKyA8IGZyb21sZW4pCi0rCSAgZnB1 dGMoJyAnLHN0ZG91dCk7Ci0gfQotIAotIC8qKioqKiBjb21wYWN0IDcgY2hhciBmb3JtYXQgZm9y IHRpbWUgaW50ZXJ2YWxzIChiZWxvbmdzIGluIGxpYnByb2M/KSAqLwotQEAgLTE4MCw3ICsxODAs NyBAQCBzdGF0aWMgY29uc3QgcHJvY190ICpnZXRwcm9jKGNvbnN0IHV0bXBfdCAqcmVzdHJpY3Qg Y29uc3QgdSwgY29uc3QgY2hhciAqcmVzdHJpYwotIAotIAotIC8qKioqKiBzaG93aW5mbyAqLwot LXN0YXRpYyB2b2lkIHNob3dpbmZvKHV0bXBfdCAqdSwgaW50IGZvcm10eXBlLCBpbnQgbWF4Y21k LCBpbnQgZnJvbSkgewotK3N0YXRpYyB2b2lkIHNob3dpbmZvKHV0bXBfdCAqdSwgaW50IGZvcm10 eXBlLCBpbnQgbWF4Y21kLCBpbnQgZnJvbSwgY29uc3QgaW50IHVzZXJsZW4sIGNvbnN0IGludCBm cm9tbGVuKSB7Ci0gICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBqY3B1OwotICAgICBpbnQgdXRfcGlk X2ZvdW5kOwotICAgICB1bnNpZ25lZCBpOwotQEAgLTIwNSw5ICsyMDUsOSBAQCBzdGF0aWMgdm9p ZCBzaG93aW5mbyh1dG1wX3QgKnUsIGludCBmb3JtdHlwZSwgaW50IG1heGNtZCwgaW50IGZyb20p IHsKLSAKLSAgICAgc3RybmNweSh1bmFtZSwgdS0+dXRfdXNlciwgVVNFUlNaKTsJCS8qIGZvcmNl IE5VTCB0ZXJtIGZvciBwcmludGYgKi8KLSAgICAgaWYgKGZvcm10eXBlKSB7Ci0tCXByaW50Zigi JS05LjhzJS05LjhzIiwgdW5hbWUsIHUtPnV0X2xpbmUpOwotKwlwcmludGYoIiUtKi4qcyUtOS44 cyIsIHVzZXJsZW4rMSwgdXNlcmxlbiwgdW5hbWUsIHUtPnV0X2xpbmUpOwotIAlpZiAoZnJvbSkK LS0JICAgIHByaW50X2hvc3QodS0+dXRfaG9zdCwgc2l6ZW9mIHUtPnV0X2hvc3QpOwotKwkgICAg cHJpbnRfaG9zdCh1LT51dF9ob3N0LCBzaXplb2YgdS0+dXRfaG9zdCwgZnJvbWxlbik7Ci0gCXBy aW50X2xvZ2ludGltZSh1LT51dF90aW1lLCBzdGRvdXQpOwotIAlpZiAoKnUtPnV0X2xpbmUgPT0g JzonKQkJCS8qIGlkbGUgdW5rbm93biBmb3IgeGRtIGxvZ2lucyAqLwotIAkgICAgcHJpbnRmKCIg P3hkbT8gIik7Ci1AQCAtMjIwLDkgKzIyMCw5IEBAIHN0YXRpYyB2b2lkIHNob3dpbmZvKHV0bXBf dCAqdSwgaW50IGZvcm10eXBlLCBpbnQgbWF4Y21kLCBpbnQgZnJvbSkgewotIAl9IGVsc2UKLSAJ ICAgIHByaW50ZigiICAgPyAgICIpOwotICAgICB9IGVsc2UgewotLQlwcmludGYoIiUtOS44cyUt OS44cyIsIHUtPnV0X3VzZXIsIHUtPnV0X2xpbmUpOwotKwlwcmludGYoIiUtKi4qcyUtOS44cyIs IHVzZXJsZW4rMSwgdXNlcmxlbiwgdS0+dXRfdXNlciwgdS0+dXRfbGluZSk7Ci0gCWlmIChmcm9t KQotLQkgICAgcHJpbnRfaG9zdCh1LT51dF9ob3N0LCBzaXplb2YgdS0+dXRfaG9zdCk7Ci0rCSAg ICBwcmludF9ob3N0KHUtPnV0X2hvc3QsIHNpemVvZiB1LT51dF9ob3N0LCBmcm9tbGVuKTsKLSAJ aWYgKCp1LT51dF9saW5lID09ICc6JykJCQkvKiBpZGxlIHVua25vd24gZm9yIHhkbSBsb2dpbnMg Ki8KLSAJICAgIHByaW50ZigiID94ZG0/ICIpOwotIAllbHNlCi1AQCAtMjQ1LDYgKzI0NSw5IEBA IGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICAgICB1dG1wX3QgKnU7Ci0gICAg IHN0cnVjdCB3aW5zaXplIHdpbjsKLSAgICAgaW50IGhlYWRlcj0xLCBsb25nZm9ybT0xLCBmcm9t PTEsIGFyZ3MsIG1heGNtZCwgY2g7Ci0rICAgIGludCB1c2VybGVuID0gODsKLSsgICAgaW50IGZy b21sZW4gPSAxNjsKLSsJY2hhciAqZW52X3ZhcjsKLSAKLSAjaWZuZGVmIFdfU0hPV0ZST00KLSAg ICAgZnJvbSA9IDA7Ci1AQCAtMjc1LDYgKzI3OCwyMiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpIHsKLSAgICAgaWYgKChhcmd2W29wdGluZF0pKQotIAl1c2VyID0gKGFyZ3Zbb3B0 aW5kXSk7Ci0gCi0rCS8qIEdldCB1c2VyIGZpZWxkIGxlbmd0aCBmcm9tIGVudmlyb25tZW50ICov Ci0rCWlmICggKGVudl92YXIgPSBnZXRlbnYoIlBST0NQU19VU0VSTEVOIikpICE9IE5VTEwpIHsK LSsgICAgICAgIHVzZXJsZW4gPSBhdG9pKGVudl92YXIpOwotKyAgICAgICAgaWYgKHVzZXJsZW4g PCA4IHx8IHVzZXJsZW4gPiBVU0VSU1opIHsKLSsgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg IlVzZXIgbGVuZ3RoIGVudmlyb25tZW50IFBST0NQU19VU0VSTEVOIG11c3QgYmUgYmV0d2VlbiA4 IGFuZCAlZCwgaWdub3JpbmcuXG4iLCBVU0VSU1opOwotKwkJCXVzZXJsZW49ODsKLSsgICAgICAg IH0KLSsJfQotKwkvKiBHZXQgZnJvbSBmaWVsZCBsZW5ndGggZnJvbSBlbnZpcm9ubWVudCAqLwot KwlpZiAoIChlbnZfdmFyID0gZ2V0ZW52KCJQUk9DUFNfRlJPTUxFTiIpKSAhPSBOVUxMKSB7Ci0r ICAgICAgICBmcm9tbGVuID0gYXRvaShlbnZfdmFyKTsKLSsgICAgICAgIGlmIChmcm9tbGVuIDwg OCB8fCBmcm9tbGVuID4gSE9TVFNaKSB7Ci0rICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJG cm9tIGxlbmd0aCBlbnZpcm9ubWVudCBQUk9DUFNfRlJPTUxFTiBtdXN0IGJlIGJldHdlZW4gOCBh bmQgJWQsIGlnbm9yaW5nLlxuIiwgSE9TVFNaKTsKLSsJCQlmcm9tbGVuPTE2OwotKyAgICAgICAg fQotKwl9Ci0gICAgIGlmIChpb2N0bCgxLCBUSU9DR1dJTlNaLCAmd2luKSAhPSAtMSAmJiB3aW4u d3NfY29sID4gMCkKLSAJbWF4Y21kID0gd2luLndzX2NvbDsKLSAgICAgZWxzZSBpZiAocCA9IGdl dGVudigiQ09MVU1OUyIpKQotQEAgLTI4NSw3ICszMDQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpIHsKLSAJZnByaW50ZihzdGRlcnIsICIlZCBjb2x1bW4gd2luZG93IGlzIHRv byBuYXJyb3dcbiIsIG1heGNtZCk7Ci0gCWV4aXQoMSk7Ci0gICAgIH0KLS0gICAgbWF4Y21kIC09 IDI5ICsgKGZyb20gPyAxNiA6IDApICsgKGxvbmdmb3JtID8gMjAgOiAwKTsKLSsgICAgbWF4Y21k IC09IDIxICsgdXNlcmxlbiArIChmcm9tID8gZnJvbWxlbiA6IDApICsgKGxvbmdmb3JtID8gMjAg OiAwKTsKLSAgICAgaWYgKG1heGNtZCA8IDMpCi0gCWZwcmludGYoc3RkZXJyLCAid2FybmluZzog c2NyZWVuIHdpZHRoICVkIHN1Ym9wdGltYWwuXG4iLCB3aW4ud3NfY29sKTsKLSAKLUBAIC0yOTMs NyArMzEyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gCi0gICAgIGlm IChoZWFkZXIpIHsJCQkJLyogcHJpbnQgdXB0aW1lIGFuZCBoZWFkZXJzICovCi0gCXByaW50X3Vw dGltZSgpOwotLQlwcmludGYoIlVTRVIgICAgIFRUWSAgICAgICIpOwotKwlwcmludGYoIiUtKnMg VFRZICAgICAgIix1c2VybGVuLCJVU0VSIik7Ci0gCWlmIChmcm9tKQotIAkgICAgcHJpbnRmKCJG Uk9NICAgICAgICAgICAgIik7Ci0gCWlmIChsb25nZm9ybSkKLUBAIC0zMDksMTQgKzMyOCwxNCBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAJICAgIHUgPSBnZXR1dGVudCgp OwotIAkgICAgaWYgKHVubGlrZWx5KCF1KSkgYnJlYWs7Ci0gCSAgICBpZiAodS0+dXRfdHlwZSAh PSBVU0VSX1BST0NFU1MpIGNvbnRpbnVlOwotLSAJICAgIGlmICghc3RybmNtcCh1LT51dF91c2Vy LCB1c2VyLCBVU0VSU1opKSBzaG93aW5mbyh1LCBsb25nZm9ybSwgbWF4Y21kLCBmcm9tKTsKLSsg CSAgICBpZiAoIXN0cm5jbXAodS0+dXRfdXNlciwgdXNlciwgVVNFUlNaKSkgc2hvd2luZm8odSwg bG9uZ2Zvcm0sIG1heGNtZCwgZnJvbSwgdXNlcmxlbiwgZnJvbWxlbik7Ci0gCX0KLSAgICAgfSBl bHNlIHsKLSAJZm9yICg7OykgewotIAkgICAgdSA9IGdldHV0ZW50KCk7Ci0gCSAgICBpZiAodW5s aWtlbHkoIXUpKSBicmVhazsKLSAJICAgIGlmICh1LT51dF90eXBlICE9IFVTRVJfUFJPQ0VTUykg Y29udGludWU7Ci0tIAkgICAgaWYgKCp1LT51dF91c2VyKSBzaG93aW5mbyh1LCBsb25nZm9ybSwg bWF4Y21kLCBmcm9tKTsKLSsgCSAgICBpZiAoKnUtPnV0X3VzZXIpIHNob3dpbmZvKHUsIGxvbmdm b3JtLCBtYXhjbWQsIGZyb20sIHVzZXJsZW4sIGZyb21sZW4pOwotIAl9Ci0gICAgIH0KLSAgICAg ZW5kdXRlbnQoKTsKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDAzOS1nbnUta2JzZC12ZXJzaW9uLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAz OS1nbnUta2JzZC12ZXJzaW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MWYwNDE3Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzktZ251LWtic2Qt dmVyc2lvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLUZyb20gOWYxY2Fh M2FlOGQ2MzhiMjQzNTZmNGQ0ZTEyYjNjODhhYTI0NTFhOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJv Y3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6 IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAzOS83MF0g Z251LWtic2QtdmVyc2lvbgotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSBwcm9jL3ZlcnNpb24uYyB8ICAg MjAgKysrKysrKysrKysrKystLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9wcm9jL3ZlcnNpb24uYyBiL3Byb2Mv dmVyc2lvbi5jCi1pbmRleCA2OWJhZTRmLi45NmZmYjdmIDEwMDY0NAotLS0tIGEvcHJvYy92ZXJz aW9uLmMKLSsrKyBiL3Byb2MvdmVyc2lvbi5jCi1AQCAtMzUsMTUgKzM1LDIzIEBAIGludCBsaW51 eF92ZXJzaW9uX2NvZGU7Ci0gCi0gc3RhdGljIHZvaWQgaW5pdF9MaW51eF92ZXJzaW9uKHZvaWQp IF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSk7Ci0gc3RhdGljIHZvaWQgaW5pdF9MaW51eF92 ZXJzaW9uKHZvaWQpIHsKLS0gICAgc3RhdGljIHN0cnVjdCB1dHNuYW1lIHV0czsKLSAgICAgaW50 IHggPSAwLCB5ID0gMCwgeiA9IDA7CS8qIGNsZWFyZWQgaW4gY2FzZSBzc2NhbmYoKSA8IDMgKi8K LSsgICAgRklMRSAqZnA7Ci0rICAgIGNoYXIgYnVmWzI1Nl07Ci0gICAgIAotLSAgICBpZiAodW5h bWUoJnV0cykgPT0gLTEpCS8qIGZhaWx1cmUgaW1wbGllcyBpbXBlbmRpbmcgZGVhdGggKi8KLS0J ZXhpdCgxKTsKLS0gICAgaWYgKHNzY2FuZih1dHMucmVsZWFzZSwgIiVkLiVkLiVkIiwgJngsICZ5 LCAmeikgPCAzKQotKyAgICBpZiAoIChmcD1mb3BlbigiL3Byb2MvdmVyc2lvbiIsInIiKSkgPT0g TlVMTCkgLyogZmFpbHVyZSBpbXBsaWVzIGltcGVuZGluZyBkZWF0aCAqLwotKyAgICAgIGV4aXQo MSk7Ci0rICAgIGlmIChmZ2V0cyhidWYsIDI1NiwgZnApID09IE5VTEwpIHsKLSsgICAgICBmcHJp bnRmKHN0ZGVyciwgIkNhbm5vdCByZWFkIGtlcm5lbCB2ZXJzaW9uIGZyb20gL3Byb2MvdmVyc2lv blxuIik7Ci0rICAgICAgZmNsb3NlKGZwKTsKLSsgICAgICBleGl0KDEpOwotKyAgICB9Ci0rICAg IGZjbG9zZShmcCk7Ci0rICAgIGlmIChzc2NhbmYoYnVmLCAiTGludXggdmVyc2lvbiAlZC4lZC4l ZCIsICZ4LCAmeSwgJnopIDwgMykKLSAJZnByaW50ZihzdGRlcnIsCQkvKiAqdmVyeSogdW5saWtl bHkgdG8gaGFwcGVuIGJ5IGFjY2lkZW50ICovCi0gCQkiTm9uLXN0YW5kYXJkIHV0cyBmb3IgcnVu bmluZyBrZXJuZWw6XG4iCi0tCQkicmVsZWFzZSAlcz0lZC4lZC4lZCBnaXZlcyB2ZXJzaW9uIGNv ZGUgJWRcbiIsCi0tCQl1dHMucmVsZWFzZSwgeCwgeSwgeiwgTElOVVhfVkVSU0lPTih4LHkseikp OwotKyAgICAgICAgInJlbGVhc2UgJXM9JWQuJWQuJWQgZ2l2ZXMgdmVyc2lvbiBjb2RlICVkXG4i LAotKyAgICAgICAgYnVmLAotKyAgICAgICAgeCwgeSwgeiwgTElOVVhfVkVSU0lPTih4LHkseikp OwotICAgICBsaW51eF92ZXJzaW9uX2NvZGUgPSBMSU5VWF9WRVJTSU9OKHgsIHksIHopOwotIH0K LS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0MC1wZ3Jl cF9jX29wdGlvbi5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDAtcGdyZXBfY19vcHRp b24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2ZjJiYjYuLjAwMDAwMDAK LS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0MC1wZ3JlcF9jX29wdGlvbi5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLUZyb20gMWVkZGM3MTYxNjQ0ODFlY2U3ZmQxYzAw ODUwZTk4OTFiNGQ1NTI2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9m dHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04 LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAg MjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA0MC83MF0gcGdyZXBfY19vcHRpb24KLQot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tCi0gcGdyZXAuMSB8ICAgIDUgKysrKy0KLSBwZ3JlcC5jIHwgICAyMCAr KysrKysrKysrKysrKy0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3BncmVwLjEgYi9wZ3JlcC4xCi1pbmRleCBh ZTJlZGMyLi45MTUyNzk5IDEwMDY0NAotLS0tIGEvcGdyZXAuMQotKysrIGIvcGdyZXAuMQotQEAg LTcsNyArNyw3IEBACi0gcGdyZXAsIHBraWxsIFwtIGxvb2sgdXAgb3Igc2lnbmFsIHByb2Nlc3Nl cyBiYXNlZCBvbiBuYW1lIGFuZCBvdGhlciBhdHRyaWJ1dGVzCi0gCi0gLlNIIFNZTk9QU0lTCi0t cGdyZXAgW1wtZmx2eF0gW1wtZCBcZklkZWxpbWl0ZXJcZlBdIFtcLW58XC1vXSBbXC1QIFxmSXBw aWRcZlAsLi4uXSBbXC1nIFxmSXBncnBcZlAsLi4uXQotK3BncmVwIFtcLWNmbHZ4XSBbXC1kIFxm SWRlbGltaXRlclxmUF0gW1wtbnxcLW9dIFtcLVAgXGZJcHBpZFxmUCwuLi5dIFtcLWcgXGZJcGdy cFxmUCwuLi5dCi0gLmJyCi0gCVtcLXMgXGZJc2lkXGZQLC4uLl0gW1wtdSBcZklldWlkXGZQLC4u Ll0gW1wtVSBcZkl1aWRcZlAsLi4uXSBbXC1HIFxmSWdpZFxmUCwuLi5dCi0gLmJyCi1AQCAtMzgs NiArMzgsOSBAQCB0byBlYWNoIHByb2Nlc3MgaW5zdGVhZCBvZiBsaXN0aW5nIHRoZW0gb24gc3Rk b3V0LgotIAotIC5TSCBPUFRJT05TCi0gLlRQCi0rXC1jCi0rU3VwcHJlc3Mgbm9ybWFsIG91dHB1 dDsgaW5zdGVhZCBwcmludCBhIGNvdW50IG9mIG1hdGNoaW5nIHByb2Nlc3Nlcy4KLSsuVFAKLSBc LWQgXGZJZGVsaW1pdGVyXGZQCi0gU2V0cyB0aGUgc3RyaW5nIHVzZWQgdG8gZGVsaW1pdCBlYWNo IHByb2Nlc3MgSUQgaW4gdGhlIG91dHB1dCAoYnkKLSBkZWZhdWx0IGEgbmV3bGluZSkuICAoXGZC cGdyZXBcZlAgb25seS4pCi1kaWZmIC0tZ2l0IGEvcGdyZXAuYyBiL3BncmVwLmMKLWluZGV4IDYw OWNhYmQuLjMzY2JlZDggMTAwNjQ0Ci0tLS0gYS9wZ3JlcC5jCi0rKysgYi9wZ3JlcC5jCi1AQCAt NTQsNiArNTQsNyBAQCBzdGF0aWMgaW50IG9wdF9vbGRlc3QgPSAwOwotIHN0YXRpYyBpbnQgb3B0 X25ld2VzdCA9IDA7Ci0gc3RhdGljIGludCBvcHRfbmVnYXRlID0gMDsKLSBzdGF0aWMgaW50IG9w dF9leGFjdCA9IDA7Ci0rc3RhdGljIGludCBvcHRfY291bnQgPSAwOwotIHN0YXRpYyBpbnQgb3B0 X3NpZ25hbCA9IFNJR1RFUk07Ci0gc3RhdGljIGludCBvcHRfbG9jayA9IDA7Ci0gc3RhdGljIGlu dCBvcHRfY2FzZSA9IDA7Ci1AQCAtNzksNyArODAsNyBAQCBzdGF0aWMgaW50IHVzYWdlIChpbnQg b3B0KQotIAlpZiAoaV9hbV9wa2lsbCkKLSAJCWZwcmludGYgKGZwLCAiVXNhZ2U6IHBraWxsIFst U0lHTkFMXSBbLWZ2eF0gIik7Ci0gCWVsc2UKLS0JCWZwcmludGYgKGZwLCAiVXNhZ2U6IHBncmVw IFstZmx2eF0gWy1kIERFTElNXSAiKTsKLSsJCWZwcmludGYgKGZwLCAiVXNhZ2U6IHBncmVwIFst Y2ZsdnhdIFstZCBERUxJTV0gIik7Ci0gCWZwcmludGYgKGZwLCAiWy1ufC1vXSBbLVAgUFBJRExJ U1RdIFstZyBQR1JQTElTVF0gWy1zIFNJRExJU1RdXG4iCi0gCQkgIlx0Wy11IEVVSURMSVNUXSBb LVUgVUlETElTVF0gWy1HIEdJRExJU1RdIFstdCBURVJNTElTVF0gIgotIAkJICJbUEFUVEVSTl1c biIpOwotQEAgLTU2NSw3ICs1NjYsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9vcHRzIChpbnQgYXJn YywgY2hhciAqKmFyZ3YpCi0gCQlzdHJjYXQgKG9wdHMsICJsZDoiKTsKLSAJfQotIAkJCQotLQlz dHJjYXQgKG9wdHMsICJMRjpmbm92eFA6ZzpzOnU6VTpHOnQ6P1YiKTsKLSsJc3RyY2F0IChvcHRz LCAiTEY6Y2Zub3Z4UDpnOnM6dTpVOkc6dDo/ViIpOwotIAkKLSAJd2hpbGUgKChvcHQgPSBnZXRv cHQgKGFyZ2MsIGFyZ3YsIG9wdHMpKSAhPSAtMSkgewotIAkJc3dpdGNoIChvcHQpIHsKLUBAIC02 MTMsNiArNjE0LDkgQEAgc3RhdGljIHZvaWQgcGFyc2Vfb3B0cyAoaW50IGFyZ2MsIGNoYXIgKiph cmd2KQotIAkJCWV4aXQoRVhJVF9TVUNDRVNTKTsKLSAvLwkJY2FzZSAnYyc6ICAgLy8gU29sYXJp czogbWF0Y2ggYnkgY29udHJhY3QgSUQKLSAvLwkJCWJyZWFrOwotKyAgICAgICAgY2FzZSAnYyc6 Ci0rICAgICAgICAgICAgb3B0X2NvdW50ID0gMTsKLSsgICAgICAgICAgICBicmVhazsKLSAJCWNh c2UgJ2QnOiAgIC8vIFNvbGFyaXM6IGNoYW5nZSB0aGUgZGVsaW1pdGVyCi0gCQkJb3B0X2RlbGlt ID0gc3RyZHVwIChvcHRhcmcpOwotIAkJCWJyZWFrOwotQEAgLTcyNCwxMCArNzI4LDE0IEBAIGlu dCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAkJCQkgcHJvY3NbaV0ubnVtLCBzdHJl cnJvciAoZXJybm8pKTsKLSAJCX0KLSAJfSBlbHNlIHsKLS0JCWlmIChvcHRfbG9uZykKLS0JCQlv dXRwdXRfc3RybGlzdChwcm9jcyxudW0pOwotLQkJZWxzZQotLQkJCW91dHB1dF9udW1saXN0KHBy b2NzLG51bSk7Ci0rCQlpZiAob3B0X2NvdW50KSB7Ci0rCQkJZnByaW50ZihzdGRvdXQsICIlbGRc biIsIG51bSk7Ci0rCQl9IGVsc2UgewotKwkJCWlmIChvcHRfbG9uZykKLSsJCQkJb3V0cHV0X3N0 cmxpc3QgKHByb2NzLG51bSk7Ci0rCQkJZWxzZQotKwkJCQlvdXRwdXRfbnVtbGlzdCAocHJvY3Ms bnVtKTsKLSsJCX0KLSAJfQotIAlyZXR1cm4gIW51bTsgLy8gZXhpdChFWElUX1NVQ0NFU1MpIGlm IG1hdGNoLCBvdGhlcndpc2UgZXhpdChFWElUX0ZBSUxVUkUpCi0gfQotLS0gCi0xLjcuMAotCmRp ZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQxLXBzX2Nncm91cF9kaXNwbGF5LnBh dGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0MS1wc19jZ3JvdXBfZGlzcGxheS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2UxYTM0Ni4uMDAwMDAwMAotLS0gYS9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDQxLXBzX2Nncm91cF9kaXNwbGF5LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTc1ICswLDAgQEAKLUZyb20gZTRlYjQ2OGVhNDFmOTEyYTBkNzZjMTk0YzA2NTQ5 NDQ5ZTIxZWE4YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUu ZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlh bi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6 NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA0MS83MF0gcHNfY2dyb3VwX2Rpc3BsYXkKLQotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tCi0gcHJvYy9yZWFkcHJvYy5jIHwgICAxNSArKysrKysrKysrKysrKy0KLSBw cm9jL3JlYWRwcm9jLmggfCAgICAzICsrKwotIHBzL2Rpc3BsYXkuYyAgICB8ICAgMTEgKysrKysr Ky0tLS0KLSBwcy9vdXRwdXQuYyAgICAgfCAgIDIzICsrKysrKysrKysrKysrKysrKysrKystCi0g NCBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvcHJvYy9yZWFkcHJvYy5jIGIvcHJvYy9yZWFkcHJvYy5jCi1pbmRleCBkM2U4NWEz Li4xOWQ5OWIyIDEwMDY0NAotLS0tIGEvcHJvYy9yZWFkcHJvYy5jCi0rKysgYi9wcm9jL3JlYWRw cm9jLmMKLUBAIC01OTgsNiArNTk4LDE3IEBAIHN0YXRpYyBwcm9jX3QqIHNpbXBsZV9yZWFkcHJv YyhQUk9DVEFCICpyZXN0cmljdCBjb25zdCBQVCwgcHJvY190ICpyZXN0cmljdCBjb25zCi0gCXAt PmVudmlyb24gPSBmaWxlMnN0cnZlYyhwYXRoLCAiZW52aXJvbiIpOwotICAgICBlbHNlCi0gICAg ICAgICBwLT5lbnZpcm9uID0gTlVMTDsKLSsKLSsgICAgaWYobGludXhfdmVyc2lvbl9jb2RlPj1M SU5VWF9WRVJTSU9OKDIsNiwyNCkgJiYgKGZsYWdzICYgUFJPQ19GSUxMQ0dST1VQKSkgewotKwlw LT5jZ3JvdXAgPSBmaWxlMnN0cnZlYyhwYXRoLCAiY2dyb3VwIik7IAkvKiByZWFkIC9wcm9jLyMv Y2dyb3VwICovCi0rICAgIAlpZihwLT5jZ3JvdXAgJiYgKnAtPmNncm91cCkgewotKwkJaW50IGkg PSBzdHJsZW4oKnAtPmNncm91cCk7Ci0rCQlpZiggKCpwLT5jZ3JvdXApW2ktMV09PSdcbicgKQot KwkJCSgqcC0+Y2dyb3VwKVtpLTFdID0gJyAnOyAvL2xpdHRsZSBoYWNrIHRvIHJlbW92ZSB0cmFp bGluZyBcbgotKwl9Ci0rICAgIH0KLSsgICAgZWxzZQotKwlwLT5jZ3JvdXAgPSBOVUxMOwotICAg ICAKLSAgICAgcmV0dXJuIHA7Ci0gbmV4dF9wcm9jOgotQEAgLTY4Niw3ICs2OTcsNyBAQCBzdGF0 aWMgcHJvY190KiBzaW1wbGVfcmVhZHRhc2soUFJPQ1RBQiAqcmVzdHJpY3QgY29uc3QgUFQsIGNv bnN0IHByb2NfdCAqcmVzdHJpYwotICAgICB0LT5jbWRsaW5lID0gcC0+Y21kbGluZTsgIC8vIGJl dHRlciBub3QgZnJlZSB0aGVzZSB1bnRpbCBkb25lIHdpdGggYWxsIHRocmVhZHMhCi0gICAgIHQt PmVudmlyb24gPSBwLT5lbnZpcm9uOwotICNlbmRpZgotLQotKyAgICB0LT5jZ3JvdXAgPSBwLT5j Z3JvdXA7Ci0gICAgIHQtPnBwaWQgPSBwLT5wcGlkOyAgLy8gb3VnaHQgdG8gcHV0IHRoZSBwZXIt dGFzayBwcGlkIHNvbWV3aGVyZQotIAotICAgICByZXR1cm4gdDsKLUBAIC04OTYsNiArOTA3LDgg QEAgdm9pZCBmcmVlcHJvYyhwcm9jX3QqIHApIHsKLSAJZnJlZSgodm9pZCopKnAtPmNtZGxpbmUp OwotICAgICBpZiAocC0+ZW52aXJvbikKLSAJZnJlZSgodm9pZCopKnAtPmVudmlyb24pOwotKyAg ICBpZiAocC0+Y2dyb3VwKQotKwlmcmVlKCh2b2lkKikqcC0+Y2dyb3VwKTsKLSAgICAgZnJlZShw KTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvcHJvYy9yZWFkcHJvYy5oIGIvcHJvYy9yZWFkcHJvYy5o Ci1pbmRleCBhOTUzYjI5Li4zYTlhZWNmIDEwMDY0NAotLS0tIGEvcHJvYy9yZWFkcHJvYy5oCi0r KysgYi9wcm9jL3JlYWRwcm9jLmgKLUBAIC0xMzksNiArMTM5LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg cHJvY190IHsKLSAJdHBnaWQsCQkvLyBzdGF0ICAgICAgICAgICAgdGVybWluYWwgcHJvY2VzcyBn cm91cCBpZAotIAlleGl0X3NpZ25hbCwJLy8gc3RhdCAgICAgICAgICAgIG1pZ2h0IG5vdCBiZSBT SUdDSExECi0gCXByb2Nlc3NvcjsgICAgICAvLyBzdGF0ICAgICAgICAgICAgY3VycmVudCAob3Ig bW9zdCByZWNlbnQ/KSBDUFUKLSsgICAgCWNoYXIgKipjZ3JvdXA7ICAvLyBjZ3JvdXAJICAgY3Vy cmVudCBjZ3JvdXAsIGxvb2tzIGxpa2UgYSBjbGFzc2ljIGZpbGVwYXRoCi0gfSBwcm9jX3Q7Ci0g Ci0gLy8gUFJPQ1RBQjogZGF0YSBzdHJ1Y3R1cmUgaG9sZGluZyB0aGUgcGVyc2lzdGVudCBpbmZv cm1hdGlvbiByZWFkcHJvYyBuZWVkcwotQEAgLTIzOSw2ICsyNDAsOCBAQCBleHRlcm4gcHJvY190 ICogZ2V0X3Byb2Nfc3RhdHMocGlkX3QgcGlkLCBwcm9jX3QgKnApOwotIAotICNkZWZpbmUgUFJP Q19MT09TRV9UQVNLUyAgICAgMHgwMjAwIC8vIHRocmVhdCB0aHJlYWRzIGFzIGlmIHRoZXkgd2Vy ZSBwcm9jZXNzZXMKLSAKLSsjZGVmaW5lIFBST0NfRklMTENHUk9VUCAgICAgIDB4MDQwMCAvLyBh bGxvYyBhbmQgZmlsbCBpbiBgY2dyb3VwYAotKwotIC8vIE9ic29sZXRlLCBjb25zaWRlciBvbmx5 IHByb2Nlc3NlcyB3aXRoIG9uZSBvZiB0aGUgcGFzc2VkOgotICNkZWZpbmUgUFJPQ19QSUQgICAg ICAgICAgICAgMHgxMDAwICAvLyBwcm9jZXNzIGlkIG51bWJlcnMgKCAwICAgdGVybWluYXRlZCkK LSAjZGVmaW5lIFBST0NfVUlEICAgICAgICAgICAgIDB4NDAwMCAgLy8gdXNlciBpZCBudW1iZXJz ICAgICggbGVuZ3RoIG5lZWRlZCApCi1kaWZmIC0tZ2l0IGEvcHMvZGlzcGxheS5jIGIvcHMvZGlz cGxheS5jCi1pbmRleCA0NTc0YjljLi4zZDZiYmRlIDEwMDY0NAotLS0tIGEvcHMvZGlzcGxheS5j Ci0rKysgYi9wcy9kaXNwbGF5LmMKLUBAIC0yMjMsOCArMjIzLDcgQEAgc3RhdGljIHVuc2lnbmVk IHRhc2tfZm9ybWF0X25lZWRzOwotIAotICNkZWZpbmUgbmVlZHNfZm9yX2Zvcm1hdCAocHJvY19m b3JtYXRfbmVlZHN8dGFza19mb3JtYXRfbmVlZHMpCi0gCi0tI2RlZmluZSBQUk9DX09OTFlfRkxB R1MgKFBST0NfRklMTEVOVnxQUk9DX0ZJTExBUkd8UFJPQ19GSUxMQ09NfFBST0NfRklMTE1FTSkK LS0KLSsjZGVmaW5lIFBST0NfT05MWV9GTEFHUyAoUFJPQ19GSUxMRU5WfFBST0NfRklMTEFSR3xQ Uk9DX0ZJTExDT018UFJPQ19GSUxMTUVNfFBST0NfRklMTENHUk9VUCkKLSAvKioqKiogbXVuZ2Ug bGlzdHMgYW5kIGRldGVybWluZSBvcGVucHJvYygpIGZsYWdzICovCi0gc3RhdGljIHZvaWQgbGlz dHNfYW5kX25lZWRzKHZvaWQpewotICAgY2hlY2tfaGVhZGVycygpOwotQEAgLTM0Miw2ICszNDEs NyBAQCBzdGF0aWMgdm9pZCBzaW1wbGVfc3Bldyh2b2lkKXsKLSAgICAgICB9Ci0gICAgICAgaWYo YnVmLmNtZGxpbmUpIGZyZWUoKHZvaWQqKSpidWYuY21kbGluZSk7IC8vIG91Z2h0IHRvIHJldXNl Ci0gICAgICAgaWYoYnVmLmVudmlyb24pIGZyZWUoKHZvaWQqKSpidWYuZW52aXJvbik7IC8vIG91 Z2h0IHRvIHJldXNlCi0rICAgICAgaWYoYnVmLmNncm91cCkgIGZyZWUoKHZvaWQqKSpidWYuY2dy b3VwKTsKLSAgICAgfQotICAgICBicmVhazsKLSAgIGNhc2UgVEZfc2hvd19wcm9jfFRGX2xvb3Nl X3Rhc2tzOiAgICAvLyBIIG9wdGlvbgotQEAgLTM1NCw2ICszNTQsNyBAQCBzdGF0aWMgdm9pZCBz aW1wbGVfc3Bldyh2b2lkKXsKLSAgICAgICB9Ci0gICAgICAgaWYoYnVmLmNtZGxpbmUpIGZyZWUo KHZvaWQqKSpidWYuY21kbGluZSk7IC8vIG91Z2h0IHRvIHJldXNlCi0gICAgICAgaWYoYnVmLmVu dmlyb24pIGZyZWUoKHZvaWQqKSpidWYuZW52aXJvbik7IC8vIG91Z2h0IHRvIHJldXNlCi0rICAg ICAgaWYoYnVmLmNncm91cCkgIGZyZWUoKHZvaWQqKSpidWYuY2dyb3VwKTsKLSAgICAgfQotICAg ICBicmVhazsKLSAgIGNhc2UgVEZfc2hvd19wcm9jfFRGX3Nob3dfdGFzazogICAgICAvLyBtIGFu ZCAtbSBvcHRpb25zCi1AQCAtMzY2LDcgKzM2Nyw4IEBAIHN0YXRpYyB2b2lkIHNpbXBsZV9zcGV3 KHZvaWQpewotICAgICAgIH0KLSAgICAgICBpZihidWYuY21kbGluZSkgZnJlZSgodm9pZCopKmJ1 Zi5jbWRsaW5lKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSAgICAgICBpZihidWYuZW52aXJvbikgZnJl ZSgodm9pZCopKmJ1Zi5lbnZpcm9uKTsgLy8gb3VnaHQgdG8gcmV1c2UKLS0gICAgfQotKyAgICAg IGlmKGJ1Zi5jZ3JvdXApICBmcmVlKCh2b2lkKikqYnVmLmNncm91cCk7Ci0rICAgICB9Ci0gICAg IGJyZWFrOwotICAgY2FzZSBURl9zaG93X3Rhc2s6ICAgICAgICAgICAgICAgICAgIC8vIC1MIGFu ZCAtVCBvcHRpb25zCi0gICAgIHdoaWxlKHJlYWRwcm9jKHB0cCwmYnVmKSl7Ci1AQCAtMzc3LDcg KzM3OSw4IEBAIHN0YXRpYyB2b2lkIHNpbXBsZV9zcGV3KHZvaWQpewotICAgICAgIH0KLSAgICAg ICBpZihidWYuY21kbGluZSkgZnJlZSgodm9pZCopKmJ1Zi5jbWRsaW5lKTsgLy8gb3VnaHQgdG8g cmV1c2UKLSAgICAgICBpZihidWYuZW52aXJvbikgZnJlZSgodm9pZCopKmJ1Zi5lbnZpcm9uKTsg Ly8gb3VnaHQgdG8gcmV1c2UKLS0gICAgfQotKyAgICAgIGlmKGJ1Zi5jZ3JvdXApICBmcmVlKCh2 b2lkKikqYnVmLmNncm91cCk7Ci0rICAgfQotICAgICBicmVhazsKLSAgIH0KLSAgIGNsb3NlcHJv YyhwdHApOwotZGlmZiAtLWdpdCBhL3BzL291dHB1dC5jIGIvcHMvb3V0cHV0LmMKLWluZGV4IGI0 ZmIzZGYuLmExNjVlZDUgMTAwNjQ0Ci0tLS0gYS9wcy9vdXRwdXQuYwotKysrIGIvcHMvb3V0cHV0 LmMKLUBAIC0zNzYsNiArMzc2LDI2IEBAIHN0YXRpYyBpbnQgcHJfYXJncyhjaGFyICpyZXN0cmlj dCBjb25zdCBvdXRidWYsIGNvbnN0IHByb2NfdCAqcmVzdHJpY3QgY29uc3QgcHApCi0gICByZXR1 cm4gbWF4X3JpZ2h0d2FyZC1yaWdodHdhcmQ7Ci0gfQotIAotK3N0YXRpYyBpbnQgcHJfY2dyb3Vw KGNoYXIgKnJlc3RyaWN0IGNvbnN0IG91dGJ1Zixjb25zdCBwcm9jX3QgKnJlc3RyaWN0IGNvbnN0 IHBwKSB7Ci0rIGlmKHBwLT5jZ3JvdXAgJiYgKnBwLT5jZ3JvdXApIHsKLSsgICBjaGFyICplbmRw ID0gb3V0YnVmOwotKyAgIGludCByaWdodHdhcmQ9bWF4X3JpZ2h0d2FyZDsKLSsgICBpZihmb3Jl c3RfcHJlZml4KXsKLSsgICAgICAgaW50IGZoID0gZm9yZXN0X2hlbHBlcihvdXRidWYpOwotKyAg ICAgICBlbmRwICs9IGZoOwotKyAgICAgICByaWdodHdhcmQgLT0gZmg7Ci0rICAgfQotKyAgIGlm KHJpZ2h0d2FyZD4xKXsKLSsgICAgICplbmRwKysgPSAnICc7Ci0rICAgICByaWdodHdhcmQtLTsK LSsgICAgIGVuZHAgKz0gZXNjYXBlX3N0cihlbmRwLCAqcHAtPmNncm91cCwgT1VUQlVGX1NJWkUs ICZyaWdodHdhcmQpOwotKyAgIH0KLSsgICByZXR1cm4gbWF4X3JpZ2h0d2FyZC1yaWdodHdhcmQ7 Ci0rIH0KLSsgZWxzZQotKyAgIHJldHVybiBwcl9ub3Aob3V0YnVmLHBwKTsKLSt9Ci0rCi0gLyog InVjb21tIiBpcyB0aGUgc2FtZSB0aGluZzogc2hvcnQgdW5sZXNzIC1mICovCi0gc3RhdGljIGlu dCBwcl9jb21tKGNoYXIgKnJlc3RyaWN0IGNvbnN0IG91dGJ1ZiwgY29uc3QgcHJvY190ICpyZXN0 cmljdCBjb25zdCBwcCl7Ci0gICBjaGFyICplbmRwID0gb3V0YnVmOwotQEAgLTEyNzQsNyArMTI5 NCw3IEBAIHN0YXRpYyBpbnQgcHJfdF9sZWZ0MihjaGFyICpyZXN0cmljdCBjb25zdCBvdXRidWYs IGNvbnN0IHByb2NfdCAqcmVzdHJpY3QgY29uc3QKLSAjZGVmaW5lIEdSUCBQUk9DX0ZJTExHUlAg ICAgIC8qIGdpZF90IC0+IGdyb3VwIG5hbWVzICovCi0gI2RlZmluZSBXQ0ggUFJPQ19GSUxMV0NI QU4gICAvKiBkbyBXQ0hBTiBsb29rdXAgKi8KLSAKLS0KLSsjZGVmaW5lIENHUlAgUFJPQ19GSUxM Q0dST1VQIC8qIHJlYWQgY2dyb3VwICovCi0gLyogVE9ETwotICAqICAgICAgcHVsbCBvdXQgYW5u b3lpbmcgQlNEIGFsaWFzZXMgaW50byBhbm90aGVyIHRhYmxlICh0byBtYWNybyB0YWJsZT8pCi0g ICogICAgICBhZGQgc29ydGluZyBmdW5jdGlvbnMgaGVyZSAodG8gdW5pZnkgbmFtZXMpCi1AQCAt MTMxMCw2ICsxMzMwLDcgQEAgc3RhdGljIGNvbnN0IGZvcm1hdF9zdHJ1Y3QgZm9ybWF0X2FycmF5 W10gPSB7Ci0geyJic2R0aW1lIiwgICAiVElNRSIsICAgIHByX2JzZHRpbWUsICBzcl9ub3AsICAg ICA2LCAgIDAsICAgIExOWCwgRVR8UklHSFR9LAotIHsiYyIsICAgICAgICAgIkMiLCAgICAgICBw cl9jLCAgICAgICAgc3JfcGNwdSwgICAgMiwgICAwLCAgICBTVU4sIEVUfFJJR0hUfSwKLSB7ImNh dWdodCIsICAgICJDQVVHSFQiLCAgcHJfc2lnY2F0Y2gsIHNyX25vcCwgICAgIDksICAgMCwgICAg QlNELCBUT3xTSUdOQUx9LCAvKnNpZ2NhdGNoKi8KLSt7ImNncm91cCIsICAgICJDR1JPVVAiLCAg cHJfY2dyb3VwLCAgICAgc3Jfbm9wLCAgICAgMjcsIENHUlAsICBMTlgsIFBPfFVOTElNSVRFRH0s Ci0geyJjbGFzcyIsICAgICAiQ0xTIiwgICAgIHByX2NsYXNzLCAgICBzcl9zY2hlZCwgICAzLCAg IDAsICAgIFhYWCwgVE98TEVGVH0sCi0geyJjbHMiLCAgICAgICAiQ0xTIiwgICAgIHByX2NsYXNz LCAgICBzcl9zY2hlZCwgICAzLCAgIDAsICAgIEhQVSwgVE98UklHSFR9LCAvKnNheXMgSFBVWCBv ciBSVCovCi0geyJjbWFqX2ZsdCIsICAiLSIsICAgICAgIHByX25vcCwgICAgICBzcl9jbWFqX2Zs dCwgMSwgIDAsICAgIExOWCwgQU58UklHSFR9LAotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9w YXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQyLXdhdGNoX3ByZWNpc2lvbl90aW1lLnBhdGNoIGIvcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDA0Mi13YXRjaF9wcmVjaXNpb25fdGltZS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTVjMDQ3ZC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDQyLXdhdGNoX3ByZWNpc2lvbl90aW1lLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjI2ICswLDAgQEAKLUZyb20gNmM2OTE5YzI4M2M3OGI0NTMzMjBjMzQ0ODg5ZGU1ODky NDQ5YjExYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGVi aWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50 YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYg KzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA0Mi83MF0gd2F0Y2hfcHJlY2lzaW9uX3RpbWUKLQotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tCi0gd2F0Y2guMSB8ICAgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tCi0gd2F0Y2guYyB8ICAgMzEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQotIDIgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3dhdGNoLjEgYi93YXRjaC4xCi1pbmRleCA4 MDJhYjg0Li40MGU2YzhlIDEwMDY0NAotLS0tIGEvd2F0Y2guMQotKysrIGIvd2F0Y2guMQotQEAg LTQsNyArNCw3IEBAIHdhdGNoIFwtIGV4ZWN1dGUgYSBwcm9ncmFtIHBlcmlvZGljYWxseSwgc2hv d2luZyBvdXRwdXQgZnVsbHNjcmVlbgotIC5TSCBTWU5PUFNJUwotIC5uYQotIC5CIHdhdGNoCi0t LlJCIFsgXC1iZGVodnR4IF0KLSsuUkIgWyBcLWJkZWhwdnR4IF0KLSAuUkIgWyBcLW4KLSAuSVIg c2Vjb25kcyBdCi0gLlJCIFsgXC1cLWJlZXAgXQotQEAgLTE0LDYgKzE0LDcgQEAgd2F0Y2ggXC0g ZXhlY3V0ZSBhIHByb2dyYW0gcGVyaW9kaWNhbGx5LCBzaG93aW5nIG91dHB1dCBmdWxsc2NyZWVu Ci0gLlJCIFsgXC1cLWhlbHAgXQotIC5SQiBbIFwtXC1pbnRlcnZhbD1cZklzZWNvbmRzXGZQXQot IC5SQiBbIFwtXC1ub1wtdGl0bGUgXQotKy5SQiBbIFwtXC1wcmVjaXNlIF0KLSAuUkIgWyBcLVwt dmVyc2lvbiBdCi0gLkkgY29tbWFuZAotIC5TSCBERVNDUklQVElPTgotQEAgLTI3LDcgKzI4LDI0 IEBAIGV2ZXJ5IDIgc2Vjb25kczsgdXNlCi0gLkIgXC1uCi0gb3IKLSAuQiBcLVwtaW50ZXJ2YWwK LS10byBzcGVjaWZ5IGEgZGlmZmVyZW50IGludGVydmFsLgotK3RvIHNwZWNpZnkgYSBkaWZmZXJl bnQgaW50ZXJ2YWwuIE5vcm1hbGx5LCB0aGlzIGludGVydmFsIGlzIGludGVycHJldGVkCi0rYXMg dGhlIGFtb3V0IG9mIHRpbWUgYmV0d2VlbiB0aGUgY29tcGxldGlvbiBvZiBvbmUgcnVuIG9mCi0r LkkgY29tbWFuZAotK2FuZCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IHJ1bi4gSG93ZXZlciwg d2l0aCB0aGUKLSsuSSBcLXAKLStvcgotKy5JIFwtXC1wcmVjaXNlCi0rb3B0aW9uLCB5b3UgY2Fu IG1ha2UKLSsuQlIgd2F0Y2gKLSthdHRlbXB0IHRvIHJ1bgotKy5JIGNvbW1hbmQKLStldmVyeQot Ky5JIGludGVydmFsCi0rc2Vjb25kcy4gVHJ5IGl0IHdpdGgKLSsuQiBudHB0aW1lCi0rYW5kIG5v dGljZSBob3cgdGhlIGZyYWN0aW9uYWwgc2Vjb25kcyBzdGF5cwotKyhuZWFybHkpIHRoZSBzYW1l LCBhcyBvcHBvc2VkIHRvIG5vcm1hbCBtb2RlIHdoZXJlIHRoZXkgY29udGludW91c2x5Ci0raW5j cmVhc2UuCi0gLlBQCi0gVGhlCi0gLkIgXC1kCi1AQCAtOTcsMTEgKzExNSwyMSBAQCB3YXRjaCBl Y2hvICckJCcKLSAuYnIKLSB3YXRjaCBlY2hvICInIickJCciJyIKLSAuUFAKLStUbyBzZWUgdGhl IGVmZmVjdCBvZiBwcmVjaXNpb24gdGltZSBrZWVwaW5nLCB0cnkgYWRkaW5nCi0rLkkgXC1wCi0r dG8KLSsuSVAKLSt3YXRjaCBcLW4gMTAgc2xlZXAgMQotKy5QUAotIFlvdSBjYW4gd2F0Y2ggZm9y IHlvdXIgYWRtaW5pc3RyYXRvciB0byBpbnN0YWxsIHRoZSBsYXRlc3Qga2VybmVsIHdpdGgKLSAu SVAKLSB3YXRjaCB1bmFtZSBcLXIKLSAuUFAKLS0oSnVzdCBraWRkaW5nLikKLSsoTm90ZSB0aGF0 Ci0rLkkgXC1wCi0raXNuJ3QgZ3VhcmFudGVlZCB0byB3b3JrIGFjcm9zcyByZWJvb3RzLCBlc3Bl Y2lhbGx5IGluIHRoZSBmYWNlIG9mCi0rLkIgbnRwZGF0ZQotK29yIG90aGVyIGJvb3R1cCB0aW1l LWNoYW5naW5nIG1lY2hhbmlzbXMpCi0gLlNIIEJVR1MKLSBVcG9uIHRlcm1pbmFsIHJlc2l6ZSwg dGhlIHNjcmVlbiB3aWxsIG5vdCBiZSBjb3JyZWN0bHkgcmVwYWludGVkIHVudGlsIHRoZQotIG5l eHQgc2NoZWR1bGVkIHVwZGF0ZS4gIEFsbAotQEAgLTExMCw2ICsxMzgsMjIgQEAgaGlnaGxpZ2h0 aW5nIGlzIGxvc3Qgb24gdGhhdCB1cGRhdGUgYXMgd2VsbC4KLSAuUFAKLSBOb24tcHJpbnRpbmcg Y2hhcmFjdGVycyBhcmUgc3RyaXBwZWQgZnJvbSBwcm9ncmFtIG91dHB1dC4gIFVzZSAiY2F0IC12 IiBhcwotIHBhcnQgb2YgdGhlIGNvbW1hbmQgcGlwZWxpbmUgaWYgeW91IHdhbnQgdG8gc2VlIHRo ZW0uCi0rLlBQCi0rLkkgXC1cLXByZWNpc2UKLSttb2RlIGRvZXNuJ3QgeWV0IGhhdmUgYWR2YW5j ZWQgdGVtcG9yYWwgZGlzdG9ydGlvbiB0ZWNobm9sb2d5IHRvCi0rY29tcGVuc2F0ZSBmb3IgYQot Ky5JIGNvbW1hbmQKLSt0aGF0IHRha2VzIG1vcmUgdGhhbgotKy5JIGludGVydmFsCi0rc2Vjb25k cyB0byBleGVjdXRlLgotKy5CIHdhdGNoCi0rYWxzbyBjYW4gZ2V0IGludG8gYSBzdGF0ZSB3aGVy ZSBpdCByYXBpZC1maXJlcyBhcyBtYW55IGV4ZWN1dGlvbnMgb2YKLSsuSSBjb21tYW5kCi0rYXMg aXQgY2FuIHRvIGNhdGNoIHVwIGZyb20gYSBwcmV2aW91cyBleGVjdXRpb25zIHJ1bm5pbmcgbG9u Z2VyIHRoYW4KLSsuSSBpbnRlcnZhbAotKyhmb3IgZXhhbXBsZSwKLSsuQiBuZXRzdGF0Ci0rdGFr aW5nIGFnZXMgb24gYSBETlMgbG9va3VwKS4KLSAuU0ggQVVUSE9SUwotIFRoZSBvcmlnaW5hbAot IC5CIHdhdGNoCi1AQCAtMTE3LDMgKzE2MSw3IEBAIHdhcyB3cml0dGVuIGJ5IFRvbnkgUmVtcyA8 cmVtYm9AdW5pc29mdC5jb20+IGluIDE5OTEsIHdpdGggbW9kcyBhbmQKLSBjb3JyZWN0aW9ucyBi eSBGcmFuY29pcyBQaW5hcmQuICBJdCB3YXMgcmV3b3JrZWQgYW5kIG5ldyBmZWF0dXJlcyBhZGRl ZCBieQotIE1pa2UgQ29sZW1hbiA8bWtjQGFjbS5vcmc+IGluIDE5OTkuICBUaGUgYmVlcCwgZXhl YywgYW5kIGVycm9yIGhhbmRsaW5nCi0gZmVhdHVyZXMgd2VyZSBhZGRlZCBieSBNb3J0eSBBYnp1 ZyA8bW9ydHlAZnJha2lyLm9yZz4gaW4gMjAwOC4KLStPbiBhIG5vdCBzbyBkYXJrIGFuZCBzdG9y bXkgbW9ybmluZwotK2luIE1hcmNoIG9mIDIwMDMsIEFudGhvbnkgRGVSb2JlcnRpcyA8YXNkQHN1 ZXNwYW1tZXJzLm9yZz4gZ290IHNpY2sgb2YKLStoaXMgd2F0Y2hlcyB0aGF0IHNob3VsZCB1cGRh dGUgZXZlcnkgbWludXRlIGV2ZW50dWFsbHkgdXBkYXRpbmcgbWFueQotK3NlY29uZHMgYWZ0ZXIg dGhlIG1pbnV0ZSBzdGFydGVkLCBhbmQgYWRkZWQgbWljcm9zZWNvbmQgcHJlY2lzaW9uLgotZGlm ZiAtLWdpdCBhL3dhdGNoLmMgYi93YXRjaC5jCi1pbmRleCBhY2IxNTJmLi5jNzM2OWI2IDEwMDY0 NAotLS0tIGEvd2F0Y2guYwotKysrIGIvd2F0Y2guYwotQEAgLTIxLDYgKzIxLDcgQEAKLSAjaW5j bHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotICNpbmNsdWRlIDxzeXMvaW9j dGwuaD4KLSsjaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSAjaW5jbHVkZSA8dGltZS5oPgotICNpbmNs dWRlIDx1bmlzdGQuaD4KLSAjaW5jbHVkZSA8dGVybWlvcy5oPgotQEAgLTM5LDEzICs0MCwxNCBA QCBzdGF0aWMgc3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0gewotIAl7ImJlZXAiLCBub19hcmd1 bWVudCwgMCwgJ2InfSwKLSAJeyJlcnJleGl0Iiwgbm9fYXJndW1lbnQsIDAsICdlJ30sCi0gCXsi ZXhlYyIsIG5vX2FyZ3VtZW50LCAwLCAneCd9LAotKwl7InByZWNpc2UiLCBub19hcmd1bWVudCwg MCwgJ3AnfSwKLSAJeyJuby10aXRsZSIsIG5vX2FyZ3VtZW50LCAwLCAndCd9LAotIAl7InZlcnNp b24iLCBub19hcmd1bWVudCwgMCwgJ3YnfSwKLSAJezAsIDAsIDAsIDB9Ci0gfTsKLSAKLSBzdGF0 aWMgY2hhciB1c2FnZVtdID0KLS0gICAgIlVzYWdlOiAlcyBbLWJkaG50dnhdIFstLWJlZXBdIFst LWRpZmZlcmVuY2VzWz1jdW11bGF0aXZlXV0gWy0tZXhlY10gWy0taGVscF0gWy0taW50ZXJ2YWw9 PG4+XSBbLS1uby10aXRsZV0gWy0tdmVyc2lvbl0gPGNvbW1hbmQ+XG4iOwotKyAgICAiVXNhZ2U6 ICVzIFstYmRobnB0dnhdIFstLWJlZXBdIFstLWRpZmZlcmVuY2VzWz1jdW11bGF0aXZlXV0gWy0t ZXhlY10gWy0taGVscF0gWy0taW50ZXJ2YWw9PG4+XSBbLS1uby10aXRsZV0gWy0tdmVyc2lvbl0g PGNvbW1hbmQ+XG4iOwotIAotIHN0YXRpYyBjaGFyICpwcm9nbmFtZTsKLSAKLUBAIC01NCw2ICs1 Niw3IEBAIHN0YXRpYyBpbnQgaGVpZ2h0ID0gMjQsIHdpZHRoID0gODA7Ci0gc3RhdGljIGludCBz Y3JlZW5fc2l6ZV9jaGFuZ2VkID0gMDsKLSBzdGF0aWMgaW50IGZpcnN0X3NjcmVlbiA9IDE7Ci0g c3RhdGljIGludCBzaG93X3RpdGxlID0gMjsgIC8vIG51bWJlciBvZiBsaW5lcyB1c2VkLCAyIG9y IDAKLStzdGF0aWMgaW50IHByZWNpc2VfdGltZWtlZXBpbmcgPSAwOwotIAotICNkZWZpbmUgbWlu KHgseSkgKCh4KSA+ICh5KSA/ICh5KSA6ICh4KSkKLSAKLUBAIC0xMzgsNiArMTQxLDE1IEBAIGdl dF90ZXJtaW5hbF9zaXplKHZvaWQpCi0gCX0KLSB9Ci0gCi0rLyogZ2V0IGN1cnJlbnQgdGltZSBp biB1c2VjICovCi0rdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgd2F0Y2hfdXNlY190OwotKyNk ZWZpbmUgVVNFQ1NfUEVSX1NFQyAoMTAwMDAwMHVsbCkKLSt3YXRjaF91c2VjX3QgZ2V0X3RpbWVf dXNlYygpIHsKLSsJc3RydWN0IHRpbWV2YWwgbm93OwotKwlnZXR0aW1lb2ZkYXkoJm5vdywgTlVM TCk7Ci0rCXJldHVybiBVU0VDU19QRVJfU0VDKm5vdy50dl9zZWMgKyBub3cudHZfdXNlYzsKLSt9 Ci0rCi0gaW50Ci0gbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIHsKLUBAIC0xNTIsNiAr MTY0LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAljaGFyICpjb21tYW5kOwot IAljaGFyICoqY29tbWFuZF9hcmd2OwotIAlpbnQgY29tbWFuZF9sZW5ndGggPSAwOwkvKiBub3Qg aW5jbHVkaW5nIGZpbmFsIFwwICovCi0rICAgIHdhdGNoX3VzZWNfdCBuZXh0X2xvb3A7IC8qIG5l eHQgbG9vcCB0aW1lIGluIHVzLCB1c2VkIGZvciBwcmVjaXNlIHRpbWUKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga2VlcGluZyBvbmx5ICovCi0gCWludCBwaXBlZmRbMl07Ci0gCWlu dCBzdGF0dXM7Ci0gCXBpZF90IGNoaWxkOwotQEAgLTE1OSw3ICsxNzMsNyBAQCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pCi0gCXNldGxvY2FsZShMQ19BTEwsICIiKTsKLSAJcHJvZ25hbWUg PSBhcmd2WzBdOwotIAotLQl3aGlsZSAoKG9wdGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAi K2JlZDo6aG46dnR4IiwgbG9uZ29wdHMsIChpbnQgKikgMCkpCi0rCXdoaWxlICgob3B0YyA9IGdl dG9wdF9sb25nKGFyZ2MsIGFyZ3YsICIrYmVkOjpobjpwdnR4IiwgbG9uZ29wdHMsIChpbnQgKikg MCkpCi0gCSAgICAgICAhPSBFT0YpIHsKLSAJCXN3aXRjaCAob3B0YykgewotIAkJY2FzZSAnYic6 Ci1AQCAtMTk0LDYgKzIwOCw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJCQkJ CWludGVydmFsID0gfjB1LzEwMDAwMDA7Ci0gCQkJfQotIAkJCWJyZWFrOwotKwkJY2FzZSAncCc6 Ci0rCQkJcHJlY2lzZV90aW1la2VlcGluZyA9IDE7Ci0rCQkJYnJlYWs7Ci0gCQljYXNlICd2JzoK LSAJCQlvcHRpb25fdmVyc2lvbiA9IDE7Ci0gCQkJYnJlYWs7Ci1AQCAtMjE3LDYgKzIzNCw3IEBA IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJCWZwdXRzKCIgIC1lLCAtLWVycmV4aXRc dFx0XHRcdGV4aXQgd2F0Y2ggaWYgdGhlIGNvbW1hbmQgaGFzIGEgbm9uLXplcm8gZXhpdFxuIiwg c3RkZXJyKTsKLSAJCWZwdXRzKCIgIC1oLCAtLWhlbHBcdFx0XHRcdHByaW50IGEgc3VtbWFyeSBv ZiB0aGUgb3B0aW9uc1xuIiwgc3RkZXJyKTsKLSAJCWZwdXRzKCIgIC1uLCAtLWludGVydmFsPTxz ZWNvbmRzPlx0XHRzZWNvbmRzIHRvIHdhaXQgYmV0d2VlbiB1cGRhdGVzXG4iLCBzdGRlcnIpOwot KyAgICAgICAgZnB1dHMoIiAgLXAsIC0tcHJlY2lzZVx0XHRcdFx0cHJlY2lzZSB0aW1pbmcsIGln bm9yZSBjb21tYW5kIHJ1biB0aW1lXG4iLCBzdGRlcnIpOwotIAkJZnB1dHMoIiAgLXYsIC0tdmVy c2lvblx0XHRcdFx0cHJpbnQgdGhlIHZlcnNpb24gbnVtYmVyXG4iLCBzdGRlcnIpOwotIAkJZnB1 dHMoIiAgLXQsIC0tbm8tdGl0bGVcdFx0XHR0dXJucyBvZmYgc2hvd2luZyB0aGUgaGVhZGVyXG4i LCBzdGRlcnIpOwotIAkJZnB1dHMoIiAgLXgsIC0tZXhlY1x0XHRcdFx0cGFzcyBjb21tYW5kIHRv IGV4ZWMgaW5zdGVhZCBvZiBzaFxuIiwgc3RkZXJyKTsKLUBAIC0yNTYsNiArMjc0LDkgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAlub2VjaG8oKTsKLSAJY2JyZWFrKCk7Ci0gCi0r CWlmIChwcmVjaXNlX3RpbWVrZWVwaW5nKQotKwkJbmV4dF9sb29wID0gZ2V0X3RpbWVfdXNlYygp OwotKwotIAlmb3IgKDs7KSB7Ci0gCQl0aW1lX3QgdCA9IHRpbWUoTlVMTCk7Ci0gCQljaGFyICp0 cyA9IGN0aW1lKCZ0KTsKLUBAIC00MDAsNiArNDIxLDEyIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkKLSAKLSAJCWZpcnN0X3NjcmVlbiA9IDA7Ci0gCQlyZWZyZXNoKCk7Ci0rCQlpZiAo cHJlY2lzZV90aW1la2VlcGluZykgewotKwkJCXdhdGNoX3VzZWNfdCBjdXJfdGltZSA9IGdldF90 aW1lX3VzZWMoKTsKLSsJCQluZXh0X2xvb3AgKz0gVVNFQ1NfUEVSX1NFQyppbnRlcnZhbDsKLSsJ CQlpZiAoY3VyX3RpbWUgPCBuZXh0X2xvb3ApCi0rCQkJCXVzbGVlcChuZXh0X2xvb3AgLSBjdXJf dGltZSk7Ci0rCQl9IGVsc2UKLSAJCXVzbGVlcChpbnRlcnZhbCAqIDEwMDAwMDApOwotIAl9Ci0g Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDMtd2F0 Y2hfdW5pY29kZS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDMtd2F0Y2hfdW5pY29k ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM0ZWJhNi4uMDAwMDAwMAot LS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQzLXdhdGNoX3VuaWNvZGUucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwzMTEgKzAsMCBAQAotRnJvbSA4Mjg1MTY2MTM4MmE5NDExYThiMjg4ZmZi Mzc0NDg4YWI0YTEzNjQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0 cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTgu ZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAy MTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDQzLzcwXSB3YXRjaF91bmljb2RlCi0KLS0t LQotIEFVVEhPUlMgIHwgICAgMSArCi0gTWFrZWZpbGUgfCAgICA1ICstCi0gd2F0Y2guMSAgfCAg IDEyICsrKysrCi0gd2F0Y2guYyAgfCAgMTQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCi0gNCBmaWxlcyBjaGFuZ2VkLCAxMzUg aW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9BVVRIT1JTIGIv QVVUSE9SUwotaW5kZXggMDg2MGIyNC4uZDg2MWI0YiAxMDA2NDQKLS0tLSBhL0FVVEhPUlMKLSsr KyBiL0FVVEhPUlMKLUBAIC00Nyw0ICs0Nyw1IEBAIENoYXJsZXMgQmxha2UKLSB3YXRjaDoKLSBU b255IFJlbXMgPHJlbWJvQHVuaXNvZnQuY29tPgotIE1pa2UgQ29sZW1hbiA8bWtjQGFjbS5vcmc+ Ci0rSmFycm9kIExvd2UgPHByb2Nwc0Bycm9kLm5ldD4KLSAKLWRpZmYgLS1naXQgYS9NYWtlZmls ZSBiL01ha2VmaWxlCi1pbmRleCAwOWZiM2VkLi4wNjcyOGZjIDEwMDY0NAotLS0tIGEvTWFrZWZp bGUKLSsrKyBiL01ha2VmaWxlCi1AQCAtNjgsNiArNjgsNyBAQCBUQVJGSUxFUyA6PSBBVVRIT1JT IEJVR1MgTkVXUyBSRUFETUUgVE9ETyBDT1BZSU5HIENPUFlJTkcuTElCIFwKLSBfVEFSRklMRVMg Oj0gTWFrZWZpbGUKLSAKLSBDVVJTRVMgOj0gLWxuY3Vyc2VzCi0rQ1VSU0VTVyA6PSAtbG5jdXJz ZXN3Ci0gCi0gIyBUaGlzIHNlZW1zIGFib3V0IHJpZ2h0IGZvciB0aGUgZHluYW1pYyBsaWJyYXJ5 IHN0dWZmLgotICMgU29tZXRoaW5nIGxpa2UgdGhpcyBpcyBwcm9iYWJseSBuZWVkZWQgdG8gbWFr ZSB0aGUgU0UgTGludXgKLUBAIC0xMTksNyArMTIwLDcgQEAgaWZuZXEgKCQoTUFLRUNNREdPQUxT KSxiZXRhKQotICMgVW5saWtlIHRoZSBrZXJuZWwgb25lLCB0aGlzIGNoZWNrX2djYyBnb2VzIGFs bCB0aGUgd2F5IHRvCi0gIyBwcm9kdWNpbmcgYW4gZXhlY3V0YWJsZS4gVGhlcmUgbWlnaHQgYmUg YSAtbTY0IHRoYXQgd29ya3MKLSAjIHVudGlsIHlvdSBnbyBsb29raW5nIGZvciBhIDY0LWJpdCBj dXJzZXMgbGlicmFyeS4KLS1jaGVja19nY2MgPSAkKHNoZWxsIGlmICQoQ0MpICQoQUxMX0NQUEZM QUdTKSAkKEFMTF9DRkxBR1MpIGR1bW15LmMgJChBTExfTERGTEFHUykgJCgxKSAtbyAvZGV2L251 bGwgJChDVVJTRVMpID4gL2Rldi9udWxsIDI+JjE7IHRoZW4gZWNobyAiJCgxKSI7IGVsc2UgZWNo byAiJCgyKSI7IGZpIDspCi0rY2hlY2tfZ2NjID0gJChzaGVsbCBpZiAkKENDKSAkKEFMTF9DUFBG TEFHUykgJChBTExfQ0ZMQUdTKSBkdW1teS5jICQoQUxMX0xERkxBR1MpICQoMSkgLW8gL2Rldi9u dWxsICQoQ1VSU0VTKSAkKENVUlNFU1cpID4gL2Rldi9udWxsIDI+JjE7IHRoZW4gZWNobyAiJCgx KSI7IGVsc2UgZWNobyAiJCgyKSI7IGZpIDspCi0gCi0gIyBCZSA2NC1iaXQgaWYgYXQgYWxsIHBv c3NpYmxlLiBJbiBhIGNyb3NzLWNvbXBpbGluZyBzaXR1YXRpb24sIG9uZSBtYXkKLSAjIGRvICJt YWtlIG02ND0tbTMyIGxpYjY0PWxpYiIgdG8gcHJvZHVjZSAzMi1iaXQgZXhlY3V0YWJsZXMuIERP IE5PVAotQEAgLTI1MCw3ICsyNTEsNyBAQCBzbGFidG9wIHRvcDogJSA6ICUubyAkKExJQlBST0Mp Ci0gCSQoQ0MpICQoQUxMX0NGTEFHUykgJF4gJChBTExfTERGTEFHUykgLW8gJEAgJChDVVJTRVMp Ci0gCi0gd2F0Y2g6ICUgOiAlLm8KLS0JJChDQykgJChBTExfQ0ZMQUdTKSAkXiAkKEFMTF9MREZM QUdTKSAtbyAkQCAkKENVUlNFUykKLSsJJChDQykgJChBTExfQ0ZMQUdTKSAkXiAkKEFMTF9MREZM QUdTKSAtbyAkQCAkKENVUlNFU1cpCi0gCi0gIyMjIyMjIyMjIyMjIHByb2dYIC0tPiBwcm9nWQot IAotZGlmZiAtLWdpdCBhL3dhdGNoLjEgYi93YXRjaC4xCi1pbmRleCA0MGU2YzhlLi5jNWYxN2M0 IDEwMDY0NAotLS0tIGEvd2F0Y2guMQotKysrIGIvd2F0Y2guMQotQEAgLTEzOSw2ICsxMzksMTcg QEAgaGlnaGxpZ2h0aW5nIGlzIGxvc3Qgb24gdGhhdCB1cGRhdGUgYXMgd2VsbC4KLSBOb24tcHJp bnRpbmcgY2hhcmFjdGVycyBhcmUgc3RyaXBwZWQgZnJvbSBwcm9ncmFtIG91dHB1dC4gIFVzZSAi Y2F0IC12IiBhcwotIHBhcnQgb2YgdGhlIGNvbW1hbmQgcGlwZWxpbmUgaWYgeW91IHdhbnQgdG8g c2VlIHRoZW0uCi0gLlBQCi0rQ29tYmluaW5nIENoYXJhY3RlcnMgdGhhdCBhcmUgc3VwcG9zZWQg dG8gZGlzcGxheSBvbiB0aGUgY2hhcmFjdGVyIGF0IHRoZQotK2xhc3QgY29sdW1uIG9uIHRoZSBz Y3JlZW4gbWF5IGRpc3BsYXkgb25lIGNvbHVtbiBlYXJseSwgb3IgdGhleSBtYXkgbm90Ci0rZGlz cGxheSBhdCBhbGwuCi0rLlBQCi0rQ29tYmluaW5nIENoYXJhY3RlcnMgbmV2ZXIgY291bnQgYXMg ZGlmZmVyZW50IGluCi0rLkkgXC1cLWRpZmZlcmVuY2VzCi0rbW9kZS4gT25seSB0aGUgYmFzZSBj aGFyYWN0ZXIgY291bnRzLgotKy5QUAotK0JsYW5rIGxpbmVzIGRpcmVjdGx5IGFmdGVyIGEgbGlu ZSB3aGljaCBlbmRzIGluIHRoZSBsYXN0IGNvbHVtbiBkbyBub3QKLStkaXNwbGF5LgotKy5QUAot IC5JIFwtXC1wcmVjaXNlCi0gbW9kZSBkb2Vzbid0IHlldCBoYXZlIGFkdmFuY2VkIHRlbXBvcmFs IGRpc3RvcnRpb24gdGVjaG5vbG9neSB0bwotIGNvbXBlbnNhdGUgZm9yIGEKLUBAIC0xNjUsMyAr MTc2LDQgQEAgT24gYSBub3Qgc28gZGFyayBhbmQgc3Rvcm15IG1vcm5pbmcKLSBpbiBNYXJjaCBv ZiAyMDAzLCBBbnRob255IERlUm9iZXJ0aXMgPGFzZEBzdWVzcGFtbWVycy5vcmc+IGdvdCBzaWNr IG9mCi0gaGlzIHdhdGNoZXMgdGhhdCBzaG91bGQgdXBkYXRlIGV2ZXJ5IG1pbnV0ZSBldmVudHVh bGx5IHVwZGF0aW5nIG1hbnkKLSBzZWNvbmRzIGFmdGVyIHRoZSBtaW51dGUgc3RhcnRlZCwgYW5k IGFkZGVkIG1pY3Jvc2Vjb25kIHByZWNpc2lvbi4KLStVbmljb2RlIHN1cHBvcnQgd2FzIGFkZGVk IGluIDIwMDkgYnkgSmFycm9kIExvd2UgPHByb2Nwc0Bycm9kLm5ldD4uCi1kaWZmIC0tZ2l0IGEv d2F0Y2guYyBiL3dhdGNoLmMKLWluZGV4IGM3MzY5YjYuLjdhYjU3YWIgMTAwNjQ0Ci0tLS0gYS93 YXRjaC5jCi0rKysgYi93YXRjaC5jCi1AQCAtOSwxNCArOSwxNiBAQAotICAqCi0gICogQ2hhbmdl cyBieSBBbGJlcnQgQ2FoYWxhbiwgMjAwMi0yMDAzLgotICAqIHN0ZGVyciBoYW5kbGluZywgZXhl YywgYW5kIGJlZXAgb3B0aW9uIGFkZGVkIGJ5IE1vcnR5IEFienVnLCAyMDA4Ci0rICogVW5pY29k ZSBTdXBwb3J0IGFkZGVkIGJ5IEphcnJvZCBMb3dlIDxwcm9jcHNAcnJvZC5uZXQ+IGluIDIwMDku Ci0gICovCi0gCi0tI2RlZmluZSBWRVJTSU9OICIwLjIuMCIKLSsjZGVmaW5lIFZFUlNJT04gIjAu My4wIgotIAotKyNpbmNsdWRlIDx3Y2hhci5oPgotICNpbmNsdWRlIDxjdHlwZS5oPgotICNpbmNs dWRlIDxnZXRvcHQuaD4KLSAjaW5jbHVkZSA8c2lnbmFsLmg+Ci0tI2luY2x1ZGUgPG5jdXJzZXMu aD4KLSsjaW5jbHVkZSA8bmN1cnNlc3cvbmN1cnNlcy5oPgotICNpbmNsdWRlIDxzdGRpby5oPgot ICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci1AQCAtMjcsNiArMjks NyBAQAotICNpbmNsdWRlIDx0ZXJtaW9zLmg+Ci0gI2luY2x1ZGUgPGxvY2FsZS5oPgotICNpbmNs dWRlICJwcm9jL3Byb2Nwcy5oIgotKyNpbmNsdWRlIDxlcnJuby5oPgotIAotICNpZmRlZiBGT1JD RV84QklUCi0gI3VuZGVmIGlzcHJpbnQKLUBAIC0xNTAsNiArMTUzLDMyIEBAIHdhdGNoX3VzZWNf dCBnZXRfdGltZV91c2VjKCkgewotIAlyZXR1cm4gVVNFQ1NfUEVSX1NFQypub3cudHZfc2VjICsg bm93LnR2X3VzZWM7Ci0gfQotIAotKy8vIHJlYWQgYSB3aWRlIGNoYXJhY3RlciBmcm9tIGEgcG9w ZW4nZCBzdHJlYW0KLSsjZGVmaW5lIE1BWF9FTkNfQllURVMgMTYKLSt3aW50X3QgbXlfZ2V0d2Mo RklMRSAqcyk7Ci0rd2ludF90IG15X2dldHdjKEZJTEUgKnMpIHsKLSsJY2hhciBpW01BWF9FTkNf QllURVNdOyAvL2Fzc3VtaW5nIG5vIGVuY29kaW5nIGV2ZXIgY29uc3VtZXMgbW9yZSB0aGFuIDE2 IGJ5dGVzCi0rCWludCBieXRlID0gMDsKLSsJaW50IGNvbnZlcnQ7Ci0rCWludCB4OwotKwl3Y2hh cl90IHJ2YWw7Ci0rCXdoaWxlKDEpIHsKLSsJCWlbYnl0ZV0gPSBnZXRjKHMpOwotKwkJaWYgKGlb Ynl0ZV09PUVPRikgeyByZXR1cm4gV0VPRjsgfQotKwkJYnl0ZSsrOwotKwkJZXJybm8gPSAwOwot KwkJbWJ0b3djKE5VTEwsIE5VTEwsIDApOwotKwkJY29udmVydCA9IG1idG93YygmcnZhbCwgaSwg Ynl0ZSk7Ci0rCQl4ID0gZXJybm87Ci0rCQlpZihjb252ZXJ0ID4gMCkgeyByZXR1cm4gcnZhbDsg fSAvL2xlZ2FsIGNvbnZlcnNpb24KLSsJCWlmKGJ5dGUgPT0gTUFYX0VOQ19CWVRFUykgewotKwkJ d2hpbGUoYnl0ZSA+IDEpIHsgdW5nZXRjKGlbLS1ieXRlXSwgcyk7IH0gLy9hdCBsZWFzdCAqdHJ5 KiB0byBmaXggdXAKLSsJCWVycm5vID0gLUVJTFNFUTsKLSsJCXJldHVybiBXRU9GOwotKwkJfQot Kwl9Ci0rfQotKwotIGludAotIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSB7Ci1AQCAt MTYyLDggKzE5MSwxMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCSAgICBvcHRp b25faGVscCA9IDAsIG9wdGlvbl92ZXJzaW9uID0gMDsKLSAJZG91YmxlIGludGVydmFsID0gMjsK LSAJY2hhciAqY29tbWFuZDsKLSsJd2NoYXJfdCAqd2NvbW1hbmQgPSBOVUxMOwotIAljaGFyICoq Y29tbWFuZF9hcmd2OwotIAlpbnQgY29tbWFuZF9sZW5ndGggPSAwOwkvKiBub3QgaW5jbHVkaW5n IGZpbmFsIFwwICovCi0rCWludCB3Y29tbWFuZF9jb2x1bW5zID0gMDsJLyogbm90IGluY2x1ZGlu ZyBmaW5hbCBcMCAqLwotKwlpbnQgd2NvbW1hbmRfY2hhcmFjdGVycyA9IDA7IC8qIG5vdCBpbmNs dWRpbmcgZmluYWwgXDAgKi8KLSAgICAgd2F0Y2hfdXNlY190IG5leHRfbG9vcDsgLyogbmV4dCBs b29wIHRpbWUgaW4gdXMsIHVzZWQgZm9yIHByZWNpc2UgdGltZQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBrZWVwaW5nIG9ubHkgKi8KLSAJaW50IHBpcGVmZFsyXTsKLUBAIC0yNTks NiArMjkxLDIzIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJCWNvbW1hbmRbY29t bWFuZF9sZW5ndGhdID0gJ1wwJzsKLSAJfQotIAotKwkvLyBjb252ZXJ0IHRvIHdpZGUgZm9yIHBy aW50aW5nIHB1cnBvc2VzCi0rCS8vbWJzdG93Y3MoTlVMTCwgTlVMTCwgMCk7Ci0rCXdjb21tYW5k X2NoYXJhY3RlcnMgPSBtYnN0b3djcyhOVUxMLCBjb21tYW5kLCAwKTsKLSsJaWYod2NvbW1hbmRf Y2hhcmFjdGVycyA8IDApIHsKLSsJCWZwcmludGYoc3RkZXJyLCAiVW5pY29kZSBIYW5kbGluZyBF cnJvclxuIik7Ci0rCQlleGl0KDEpOwotKwl9Ci0rCXdjb21tYW5kID0gKHdjaGFyX3QqKW1hbGxv Yygod2NvbW1hbmRfY2hhcmFjdGVycysxKSAqIHNpemVvZih3Y29tbWFuZCkpOwotKwlpZih3Y29t bWFuZCA9PSBOVUxMKSB7Ci0rCQlmcHJpbnRmKHN0ZGVyciwgIlVuaWNvZGUgSGFuZGxpbmcgRXJy b3IgKG1hbGxvYylcbiIpOwotKwkJZXhpdCgxKTsKLSsJfQotKwltYnN0b3djcyh3Y29tbWFuZCwg Y29tbWFuZCwgd2NvbW1hbmRfY2hhcmFjdGVycysxKTsKLSsJd2NvbW1hbmRfY29sdW1ucyA9IHdj c3dpZHRoKHdjb21tYW5kLCAtMSk7Ci0rCi0rCi0rCi0gCWdldF90ZXJtaW5hbF9zaXplKCk7Ci0g Ci0gCS8qIENhdGNoIGtleWJvYXJkIGludGVycnVwdHMgc28gd2UgY2FuIHB1dCB0dHkgYmFjayBp biBhIHNhbmUgc3RhdGUuICAqLwotQEAgLTI5OCwxMiArMzQ3LDQ0IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKLSAJCWlmIChzaG93X3RpdGxlKSB7Ci0gCQkJLy8gbGVmdCBqdXN0aWZ5 IGludGVydmFsIGFuZCBjb21tYW5kLAotIAkJCS8vIHJpZ2h0IGp1c3RpZnkgdGltZSwgY2xpcHBp bmcgYWxsIHRvIGZpdCB3aW5kb3cgd2lkdGgKLS0JCQlhc3ByaW50ZigmaGVhZGVyLCAiRXZlcnkg JS4xZnM6ICUuKnMiLAotLQkJCQlpbnRlcnZhbCwgbWluKHdpZHRoIC0gMSwgY29tbWFuZF9sZW5n dGgpLCBjb21tYW5kKTsKLS0JCQltdmFkZHN0cigwLCAwLCBoZWFkZXIpOwotLQkJCWlmIChzdHJs ZW4oaGVhZGVyKSA+IChzaXplX3QpICh3aWR0aCAtIHRzbCAtIDEpKQotLQkJCQltdmFkZHN0cigw LCB3aWR0aCAtIHRzbCAtIDQsICIuLi4gICIpOwotLQkJCW12YWRkc3RyKDAsIHdpZHRoIC0gdHNs ICsgMSwgdHMpOwotKwotKwkJCWludCBobGVuID0gYXNwcmludGYoJmhlYWRlciwgIkV2ZXJ5ICUu MWZzOiAiLCBpbnRlcnZhbCk7Ci0rCi0rCQkJLy8gdGhlIHJ1bGVzOgotKwkJCS8vICAgd2lkdGgg PCB0c2wgOiBwcmludCBub3RoaW5nCi0rCQkJLy8gICB3aWR0aCA8IHRzbCArIGhsZW4gKyAxOiBw cmludCB0cwotKwkJCS8vICAgd2lkdGggPSB0c2wgKyBobGVuICsgMTogcHJpbnQgaGVhZGVyLCB0 cwotKwkJCS8vICAgd2lkdGggPCB0c2wgKyBobGVuICsgNDogcHJpbnQgaGVhZGVyLCAuLi4sIHRz Ci0rCQkJLy8gICB3aWR0aCA8IHRzbCArIGhsZW4gKyB3Y29tbWFuZF9jb2x1bW5zOiBwcmludCBo ZWFkZXIsIHRydW5jYXRlZCB3Y29tbWFuZCwgLi4uLCB0cwotKwkJCS8vICAgd2lkdGggPiAiIjog cHJpbnQgaGVhZGVyLCB3Y29tYW5kLCB0cwotKwkJCS8vIHRoaXMgaXMgc2xpZ2h0bHkgZGlmZmVy ZW50IGZyb20gaG93IGl0IHVzZWQgdG8gYmUKLSsJCQlpZih3aWR0aCA+PSB0c2wpIHsKLSsJCQkJ aWYod2lkdGggPj0gdHNsICsgaGxlbiArIDEpIHsKLSsJCQkJCW12YWRkc3RyKDAsIDAsIGhlYWRl cik7Ci0rCQkJCQlpZih3aWR0aCA+PSB0c2wgKyBobGVuICsgMikgewotKwkJCQkJCWlmKHdpZHRo IDwgdHNsICsgaGxlbiArIDQpIHsKLSsJCQkJCQkJbXZhZGRzdHIoMCwgd2lkdGggLSB0c2wgLSA0 LCAiLi4uICAiKTsKLSsJCQkJCQl9ZWxzZXsKLSsJCQkJCQkJaWYod2lkdGggPCB0c2wgKyBobGVu ICsgd2NvbW1hbmRfY29sdW1ucykgewotKwkJCQkJCQkJLy8gcHJpbnQgdHJ1bmNhdGVkCi0rCQkJ CQkJCQlpbnQgYXZhaWxfY29sdW1ucyA9IHdpZHRoIC0gdHNsIC0gaGxlbjsKLSsJCQkJCQkJCWlu dCB1c2luZ19jb2x1bW5zID0gd2NvbW1hbmRfY29sdW1uczsKLSsJCQkJCQkJCWludCB1c2luZ19j aGFyYWN0ZXJzID0gd2NvbW1hbmRfY2hhcmFjdGVyczsKLSsJCQkJCQkJCXdoaWxlKHVzaW5nX2Nv bHVtbnMgPiBhdmFpbF9jb2x1bW5zIC0gNCkgewotKwkJCQkJCQkJCXVzaW5nX2NoYXJhY3RlcnMt LTsKLSsJCQkJCQkJCXVzaW5nX2NvbHVtbnMgPSB3Y3N3aWR0aCh3Y29tbWFuZCwgdXNpbmdfY2hh cmFjdGVycyk7Ci0rCQkJCQkJCQl9Ci0rCQkJCQkJCQltdmFkZG53c3RyKDAsIGhsZW4sIHdjb21t YW5kLCB1c2luZ19jaGFyYWN0ZXJzKTsKLSsJCQkJCQkJCW12YWRkc3RyKDAsIHdpZHRoIC0gdHNs IC0gNCwgIi4uLiAiKTsKLSsJCQkJCQkJfWVsc2V7Ci0rCQkJCQkJCQltdmFkZHdzdHIoMCwgaGxl biwgd2NvbW1hbmQpOwotKwkJCQkJCQl9Ci0rCQkJCQkJfQotKwkJCQkJfQotKwkJCQl9Ci0rCQkJ CW12YWRkc3RyKDAsIHdpZHRoIC0gdHNsICsgMSwgdHMpOwotKwkJCX0KLSsKLSAJCQlmcmVlKGhl YWRlcik7Ci0gCQl9Ci0gCi1AQCAtMzYwLDQ3ICs0NDEsNjIgQEAgbWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdKQotIAotIAkJZm9yICh5ID0gc2hvd190aXRsZTsgeSA8IGhlaWdodDsgeSsrKSB7 Ci0gCQkJaW50IGVvbHNlZW4gPSAwLCB0YWJwZW5kaW5nID0gMDsKLSsJCQl3aW50X3QgY2Fycnkg PSBXRU9GOwotIAkJCWZvciAoeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7Ci0tCQkJCWludCBjID0g JyAnOwotKwkJCQl3aW50X3QgYyA9IEwnICc7Ci0gCQkJCWludCBhdHRyID0gMDsKLSAKLSAJCQkJ aWYgKCFlb2xzZWVuKSB7Ci0gCQkJCQkvKiBpZiB0aGVyZSBpcyBhIHRhYiBwZW5kaW5nLCBqdXN0 IHNwaXQgc3BhY2VzIHVudGlsIHRoZQotIAkJCQkJICAgbmV4dCBzdG9wIGluc3RlYWQgb2YgcmVh ZGluZyBjaGFyYWN0ZXJzICovCi0gCQkJCQlpZiAoIXRhYnBlbmRpbmcpCi0tCQkJCQkJZG8KLS0J CQkJCQkJYyA9IGdldGMocCk7Ci0tCQkJCQkJd2hpbGUgKGMgIT0gRU9GICYmICFpc3ByaW50KGMp Ci0tCQkJCQkJICAgICAgICYmIGMgIT0gJ1xuJwotLQkJCQkJCSAgICAgICAmJiBjICE9ICdcdCcp OwotLQkJCQkJaWYgKGMgPT0gJ1xuJykKLSsJCQkJCQlkbyB7Ci0rCQkJCQkJCWlmKGNhcnJ5ID09 IFdFT0YpIHsKLSsJCQkJCQkJCWMgPSBteV9nZXR3YyhwKTsKLSsJCQkJCQkJfWVsc2V7Ci0rCQkJ CQkJCQljID0gY2Fycnk7Ci0rCQkJCQkJCQljYXJyeSA9IFdFT0Y7Ci0rCQkJCQkJCX0KLSsJCQkJ CQl9d2hpbGUgKGMgIT0gV0VPRiAmJiAhaXNwcmludChjKSAmJiBjPDEyOAotKwkJCQkJCSAgICAg ICAmJiB3Y3dpZHRoKGMpID09IDAKLSsJCQkJCQkgICAgICAgJiYgYyAhPSBMJ1xuJwotKwkJCQkJ CSAgICAgICAmJiBjICE9IEwnXHQnKTsKLSsJCQkJCWlmIChjID09IEwnXG4nKQotIAkJCQkJCWlm ICghb2xkZW9sc2VlbiAmJiB4ID09IDApIHsKLSAJCQkJCQkJeCA9IC0xOwotIAkJCQkJCQljb250 aW51ZTsKLSAJCQkJCQl9IGVsc2UKLSAJCQkJCQkJZW9sc2VlbiA9IDE7Ci0tCQkJCQllbHNlIGlm IChjID09ICdcdCcpCi0rCQkJCQllbHNlIGlmIChjID09IEwnXHQnKQotIAkJCQkJCXRhYnBlbmRp bmcgPSAxOwotLQkJCQkJaWYgKGMgPT0gRU9GIHx8IGMgPT0gJ1xuJyB8fCBjID09ICdcdCcpCi0t CQkJCQkJYyA9ICcgJzsKLSsJCQkJCWlmICh4PT13aWR0aC0xICYmIHdjd2lkdGgoYyk9PTIpIHsK LSsJCQkJCQl5Kys7Ci0rCQkJCQkJeCA9IC0xOyAvL3Byb2Nlc3MgdGhpcyBkb3VibGUtd2lkdGgK LSsJCQkJCQljYXJyeSA9IGM7IC8vY2hhcmFjdGVyIG9uIHRoZSBuZXh0IGxpbmUKLSsJCQkJCQlj b250aW51ZTsgLy9iZWNhdXNlIGl0IHdvbid0IGZpdCBoZXJlCi0rCQkJCQl9Ci0rCQkJCQlpZiAo YyA9PSBXRU9GIHx8IGMgPT0gTCdcbicgfHwgYyA9PSBMJ1x0JykKLSsJCQkJCQljID0gTCcgJzsK LSAJCQkJCWlmICh0YWJwZW5kaW5nICYmICgoKHggKyAxKSAlIDgpID09IDApKQotIAkJCQkJCXRh YnBlbmRpbmcgPSAwOwotIAkJCQl9Ci0gCQkJCW1vdmUoeSwgeCk7Ci0gCQkJCWlmIChvcHRpb25f ZGlmZmVyZW5jZXMpIHsKLS0JCQkJCWNodHlwZSBvbGRjaCA9IGluY2goKTsKLS0JCQkJCXVuc2ln bmVkIGNoYXIgb2xkYyA9IG9sZGNoICYgQV9DSEFSVEVYVDsKLSsJCQkJCQljY2hhcl90IG9sZGM7 Ci0rCQkJCQlpbl93Y2goJm9sZGMpOwotIAkJCQkJYXR0ciA9ICFmaXJzdF9zY3JlZW4KLS0JCQkJ CSAgICAmJiAoKGNoYXIpYyAhPSBvbGRjCi0rCQkJCQkgICAgJiYgKCh3Y2hhcl90KWMgIT0gb2xk Yy5jaGFyc1swXQotIAkJCQkJCXx8Ci0gCQkJCQkJKG9wdGlvbl9kaWZmZXJlbmNlc19jdW11bGF0 aXZlCi0tCQkJCQkJICYmIChvbGRjaCAmIEFfQVRUUklCVVRFUykpKTsKLSsJCQkJCQkgJiYgKG9s ZGMuYXR0ciAmIEFfQVRUUklCVVRFUykpKTsKLSAJCQkJfQotIAkJCQlpZiAoYXR0cikKLSAJCQkJ CXN0YW5kb3V0KCk7Ci0tCQkJCWFkZGNoKGMpOwotKwkJCQlhZGRud3N0cigod2NoYXJfdCopJmMs MSk7Ci0gCQkJCWlmIChhdHRyKQotIAkJCQkJc3RhbmRlbmQoKTsKLSsJCQkJaWYod2N3aWR0aChj KSA9PSAwKSB7IHgtLTsgfQotKwkJCQlpZih3Y3dpZHRoKGMpID09IDIpIHsgeCsrOyB9Ci0gCQkJ fQotIAkJCW9sZGVvbHNlZW4gPSBlb2xzZWVuOwotIAkJfQotLS0gCi0xLjcuMAotCmRpZmYgLS1n aXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ0LWNvbXBsYWluX3VubW91bnRlZF9wcm9jLnBh dGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0NC1jb21wbGFpbl91bm1vdW50ZWRfcHJvYy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTEzYTEwMy4uMDAwMDAwMAotLS0g YS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ0LWNvbXBsYWluX3VubW91bnRlZF9wcm9jLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotRnJvbSBkYWFlMTQ4MTM2MGM5OWVkYmFi Y2Y4N2E1NDRlZWRkMGRkYTE0Y2M2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0 cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMu Mi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIg MjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDQ0LzcwXSBjb21wbGFpbl91bm1v dW50ZWRfcHJvYwotCi1leGl0aW5nIHNpbGVudGx5LgotLS0tCi0gcHJvYy92ZXJzaW9uLmMgfCAg ICA0ICsrKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL3Byb2MvdmVyc2lvbi5jIGIvcHJvYy92ZXJzaW9uLmMKLWluZGV4 IDk2ZmZiN2YuLjc5MzAzNjcgMTAwNjQ0Ci0tLS0gYS9wcm9jL3ZlcnNpb24uYwotKysrIGIvcHJv Yy92ZXJzaW9uLmMKLUBAIC0zOSw4ICszOSwxMCBAQCBzdGF0aWMgdm9pZCBpbml0X0xpbnV4X3Zl cnNpb24odm9pZCkgewotICAgICBGSUxFICpmcDsKLSAgICAgY2hhciBidWZbMjU2XTsKLSAgICAg Ci0tICAgIGlmICggKGZwPWZvcGVuKCIvcHJvYy92ZXJzaW9uIiwiciIpKSA9PSBOVUxMKSAvKiBm YWlsdXJlIGltcGxpZXMgaW1wZW5kaW5nIGRlYXRoICovCi0rICAgIGlmICggKGZwPWZvcGVuKCIv cHJvYy92ZXJzaW9uIiwiciIpKSA9PSBOVUxMKSB7Ci0rICAgICAgZnByaW50ZihzdGRlcnIsICJD YW5ub3QgZmluZCAvcHJvYy92ZXJzaW9uIC0gaXMgL3Byb2MgbW91bnRlZD9cbiIpOwotICAgICAg IGV4aXQoMSk7Ci0rICAgIH0KLSAgICAgaWYgKGZnZXRzKGJ1ZiwgMjU2LCBmcCkgPT0gTlVMTCkg ewotICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ2Fubm90IHJlYWQga2VybmVsIHZlcnNpb24gZnJv bSAvcHJvYy92ZXJzaW9uXG4iKTsKLSAgICAgICBmY2xvc2UoZnApOwotLS0gCi0xLjcuMAotCmRp ZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ1LXBzX3N1cGdpZF9kaXNwbGF5LnBh dGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0NS1wc19zdXBnaWRfZGlzcGxheS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzQ5ZWQ1My4uMDAwMDAwMAotLS0gYS9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDQ1LXBzX3N1cGdpZF9kaXNwbGF5LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNDc1ICswLDAgQEAKLUZyb20gM2ZiNGY1MTg4MzUyNWU4ODg1NzFkNzJkMzA5Mjlk ZDJiOTEyMTU0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUu ZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlh bi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6 NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA0NS83MF0gcHNfc3VwZ2lkX2Rpc3BsYXkKLQotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tCi0gcHJvYy9saWJyYXJ5Lm1hcCB8ICAgIDIgKy0KLSBwcm9jL3JlYWRwcm9j LmMgIHwgIDEzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0KLSBwcm9jL3JlYWRwcm9jLmggIHwgICAxMiArKysrLQotIHBzL2Rpc3BsYXkuYyAg ICAgfCAgIDM0ICsrKysrKysrKysrKy0tCi0gcHMvb3V0cHV0LmMgICAgICB8ICAgNDcgKysrKysr KysrKysrKysrKysrKwotIHBzL3BzLjEgICAgICAgICAgfCAgIDEwICsrKysKLSA2IGZpbGVzIGNo YW5nZWQsIDE5NSBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3Byb2MvbGlicmFyeS5tYXAgYi9wcm9jL2xpYnJhcnkubWFwCi1pbmRleCAxNTQwNjFiLi44ZDY5 Y2Q1IDEwMDY0NAotLS0tIGEvcHJvYy9saWJyYXJ5Lm1hcAotKysrIGIvcHJvYy9saWJyYXJ5Lm1h cAotQEAgLTcsNyArNyw3IEBAIGdsb2JhbDoKLSAKLSAgIHJlYWRwcm9jOyByZWFkdGFzazsgcmVh ZHByb2N0YWI7IHJlYWRwcm9jdGFiMjsgbG9va191cF9vdXJfc2VsZjsgZXNjYXBlX2NvbW1hbmQ7 Ci0gICBlc2NhcGVfc3RyOyBlc2NhcGVfc3RybGlzdDsKLS0gIG9wZW5wcm9jOyBjbG9zZXByb2M7 IGZyZWVwcm9jOwotKyAgb3BlbnByb2M7IGNsb3NlcHJvYzsgZnJlZXByb2M7IGFsbG9jc3VwZ3Jw OyBmcmVlc3VwZ3JwOwotICAgdHR5X3RvX2RldjsgZGV2X3RvX3R0eTsgb3Blbl9wc2RiX21lc3Nh Z2U7IG9wZW5fcHNkYjsgbG9va3VwX3djaGFuOwotICAgZGlzcGxheV92ZXJzaW9uOyBwcm9jcHNf dmVyc2lvbjsgbGludXhfdmVyc2lvbl9jb2RlOwotICAgSGVydHo7IHNtcF9udW1fY3B1czsgaGF2 ZV9wcml2czsKLWRpZmYgLS1naXQgYS9wcm9jL3JlYWRwcm9jLmMgYi9wcm9jL3JlYWRwcm9jLmMK LWluZGV4IDE5ZDk5YjIuLjk2NjA3OTkgMTAwNjQ0Ci0tLS0gYS9wcm9jL3JlYWRwcm9jLmMKLSsr KyBiL3Byb2MvcmVhZHByb2MuYwotQEAgLTIwLDYgKzIwLDcgQEAKLSAjaW5jbHVkZSA8ZXJybm8u aD4KLSAjaW5jbHVkZSA8c3RkYXJnLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotKyNpbmNsdWRl IDxsaW1pdHMuaD4KLSAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0gI2luY2x1ZGUgPHNpZ25hbC5oPgot ICNpbmNsdWRlIDxmY250bC5oPgotQEAgLTg1LDYzICs4Niw2OCBAQCBzdGF0aWMgdm9pZCBzdGF0 dXMycHJvYyhjaGFyICpTLCBwcm9jX3QgKnJlc3RyaWN0IFAsIGludCBpc19wcm9jKXsKLSAgICAg bG9uZyBUaHJlYWRzID0gMDsKLSAgICAgbG9uZyBUZ2lkID0gMDsKLSAgICAgbG9uZyBQaWQgPSAw OwotKyAgICBpbnQgaGFzaCA9IDA7Ci0rICAgIGludCBpc3VwZ2lkID0gMDsKLSAKLS0gIHN0YXRp YyBjb25zdCB1bnNpZ25lZCBjaGFyIGFzc29bXSA9Ci0rICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l ZCBjaGFyIGFzc29bXSA9Ci0gICAgIHsKLS0gICAgICA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2 MSwgNjEsIDYxLCA2MSwKLS0gICAgICA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYx LCA2MSwKLS0gICAgICA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwKLS0g ICAgICA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwKLS0gICAgICA2MSwg NjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwKLS0gICAgICA2MSwgNjEsIDYxLCA2 MSwgNjEsIDYxLCA2MSwgNjEsIDE1LCA2MSwKLS0gICAgICA2MSwgNjEsIDYxLCA2MSwgNjEsIDYx LCAzMCwgIDMsICA1LCAgNSwKLS0gICAgICA2MSwgIDUsIDYxLCAgOCwgNjEsIDYxLCAgMywgNjEs IDEwLCA2MSwKLS0gICAgICAgNiwgNjEsIDEzLCAgMCwgMzAsIDI1LCAgMCwgNjEsIDYxLCA2MSwK LS0gICAgICA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwgIDMsIDYxLCAxMywKLS0gICAgICAg MCwgIDAsIDYxLCAzMCwgNjEsIDI1LCA2MSwgNjEsIDYxLCAgMCwKLS0gICAgICA2MSwgNjEsIDYx LCA2MSwgIDUsIDYxLCAgMCwgNjEsIDYxLCA2MSwKLS0gICAgICAgMCwgNjEsIDYxLCA2MSwgNjEs IDYxLCA2MSwgNjEKLSsgICAgICA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2 NiwKLSsgICAgICA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwKLSsgICAg ICA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwKLSsgICAgICA2NiwgNjYs IDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwKLSsgICAgICA2NiwgNjYsIDY2LCA2Niwg NjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwKLSsgICAgICA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2 NiwgNjYsICAwLCA2NiwKLSsgICAgICA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCAgMywgMzAsIDIw LCAzMCwKLSsgICAgICA2NiwgMjUsIDY2LCAyMCwgNjYsIDY2LCAzMCwgNjYsIDI1LCA2NiwKLSsg ICAgICAgMCwgNjYsICA4LCAxMCwgIDMsIDE4LCAgNSwgNjYsIDY2LCA2NiwKLSsgICAgICA2Niwg NjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwgIDMsIDY2LCAxMCwKLSsgICAgICAgMCwgIDAsIDY2LCAy NSwgNjYsICA1LCA2NiwgNjYsIDY2LCAyNSwKLSsgICAgICA2NiwgIDUsIDY2LCA2NiwgIDAsIDY2 LCAgMCwgIDAsIDY2LCA2NiwKLSsgICAgICAyNSwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYK LSAgICAgfTsKLSAKLSAgICAgc3RhdGljIGNvbnN0IHN0YXR1c190YWJsZV9zdHJ1Y3QgdGFibGVb XSA9IHsKLS0gICAgICBGKFZtU3RrKQotKyAgICAgIEYoUGlkKQotICAgICAgIE5VTCBOVUwKLS0g ICAgICBGKFN0YXRlKQotKyAgICAgIEYoVGhyZWFkcykKLSsgICAgICBOVUwKLSsgICAgICBGKFBQ aWQpCi0rICAgICAgTlVMIE5VTAotKyAgICAgIEYoVGdpZCkKLSAgICAgICBOVUwKLS0gICAgICBG KFZtRXhlKQotICAgICAgIEYoU2hkUG5kKQotKyAgICAgIE5VTCBOVUwKLSsgICAgICBGKFN0YXRl KQotICAgICAgIE5VTAotLSAgICAgIEYoVm1EYXRhKQotKyAgICAgIEYoVm1TdGspCi0rICAgICAg TlVMIE5VTAotKyAgICAgIEYoVWlkKQotICAgICAgIE5VTAotLSAgICAgIEYoTmFtZSkKLSsgICAg ICBGKFZtU2l6ZSkKLSAgICAgICBOVUwgTlVMCi0gICAgICAgRihWbVJTUykKLS0gICAgICBOVUwg TlVMCi0tICAgICAgRihWbUxjaykKLS0gICAgICBOVUwgTlVMIE5VTAotKyAgICAgIE5VTAotICAg ICAgIEYoR2lkKQotLSAgICAgIEYoUGlkKQotLSAgICAgIE5VTCBOVUwgTlVMCi0tICAgICAgRihW bVNpemUpCi0gICAgICAgTlVMIE5VTAotLSAgICAgIEYoVm1MaWIpCi0tICAgICAgTlVMIE5VTAot LSAgICAgIEYoUFBpZCkKLS0gICAgICBOVUwKLS0gICAgICBGKFNpZ0NndCkKLSsgICAgICBGKFZt RGF0YSkKLSAgICAgICBOVUwKLS0gICAgICBGKFRocmVhZHMpCi0rICAgICAgRihHcm91cHMpCi0r ICAgICAgTlVMIE5VTCBOVUwgTlVMCi0gICAgICAgRihTaWdQbmQpCi0rICAgICAgTlVMIE5VTAot KyAgICAgIEYoU2lnQmxrKQotICAgICAgIE5VTAotKyAgICAgIEYoVm1MaWIpCi0rICAgICAgTlVM IE5VTCBOVUwgTlVMCi0rICAgICAgRihWbUxjaykKLSsgICAgICBOVUwgTlVMIE5VTCBOVUwKLSsg ICAgICBGKE5hbWUpCi0rICAgICAgTlVMIE5VTCBOVUwgTlVMCi0gICAgICAgRihTaWdJZ24pCi0t ICAgICAgTlVMCi0tICAgICAgRihVaWQpCi0tICAgICAgTlVMIE5VTCBOVUwgTlVMIE5VTCBOVUwg TlVMIE5VTCBOVUwKLS0gICAgICBOVUwgTlVMIE5VTCBOVUwgTlVMCi0tICAgICAgRihUZ2lkKQot ICAgICAgIE5VTCBOVUwgTlVMIE5VTAotLSAgICAgIEYoU2lnQmxrKQotLSAgICAgIE5VTCBOVUwg TlVMCi0rICAgICAgRihWbUV4ZSkKLSsgICAgICBOVUwgTlVMIE5VTCBOVUwKLSsgICAgICBGKFNp Z0NndCkKLSAgICAgfTsKLSAKLSAjdW5kZWYgRgotQEAgLTE1Nyw2ICsxNjMsOSBAQCBFTlRFUigw eDIyMCk7Ci0gICAgIFAtPnZtX2V4ZSAgPSAwOwotICAgICBQLT52bV9saWIgID0gMDsKLSAgICAg UC0+bmx3cCAgICA9IDA7Ci0rICAgIFAtPm5zdXBnaWQgPSAwOwotKyAgICBQLT5zdXBnaWQgPSBO VUxMOwotKyAgICBQLT5zdXBncnAgPSBOVUxMOwotICAgICBQLT5zaWduYWxbMF0gPSAnXDAnOyAg Ly8gc28gd2UgY2FuIGRldGVjdCBpdCBhcyBtaXNzaW5nIGZvciB2ZXJ5IG9sZCBrZXJuZWxzCi0g Ci0gICAgIGdvdG8gYmFzZTsKLUBAIC0xNzMsNyArMTgyLDkgQEAgRU5URVIoMHgyMjApOwotICAg ICAgICAgLy8gZXhhbWluZSBhIGZpZWxkIG5hbWUgKGhhc2ggYW5kIGNvbXBhcmUpCi0gICAgIGJh c2U6Ci0gICAgICAgICBpZih1bmxpa2VseSghKlMpKSBicmVhazsKLS0gICAgICAgIGVudHJ5ID0g dGFibGVbNjMgJiAoYXNzb1soaW50KVNbM11dICsgYXNzb1soaW50KVNbMl1dICsgYXNzb1soaW50 KVNbMF1dKV07Ci0rICAgICAgICBoYXNoID0gYXNzb1tTWzNdXSArIGFzc29bU1syXV0gKyBhc3Nv W1NbMF1dOwotKyAgICAgICAgaWYgKGhhc2ggPiA2NSkgY29udGludWU7Ci0rICAgICAgICBlbnRy eSA9IHRhYmxlW2hhc2hdOwotICAgICAgICAgY29sb24gPSBzdHJjaHIoUywgJzonKTsKLSAgICAg ICAgIGlmKHVubGlrZWx5KCFjb2xvbikpIGJyZWFrOwotICAgICAgICAgaWYodW5saWtlbHkoY29s b25bMV0hPSdcdCcpKSBicmVhazsKLUBAIC0yNzEsNiArMjgyLDIxIEBAIEVOVEVSKDB4MjIwKTsK LSAgICAgICAgIFAtPnNnaWQgPSBzdHJ0b2woUywmUywxMCk7Ci0gICAgICAgICBQLT5mZ2lkID0g c3RydG9sKFMsJlMsMTApOwotICAgICAgICAgY29udGludWU7Ci0rICAgIGNhc2VfR3JvdXBzOgot KyAgICAgICAgaXN1cGdpZCA9IDA7Ci0rICAgICAgICBpZiAoKlMgIT0gJ1xuJyl7IC8vIElzIHRo ZXJlIGFueSBzdXBwbGVtZW50YXJ5IGdyb3VwID8KLSsgICAgICAgICAgUC0+c3VwZ2lkID0gKGlu dCAqKSB4bWFsbG9jKDB4MDAwNCAqIHNpemVvZihpbnQpKTsKLSsgICAgICAgICAgaW50IHZjdHNp emUgPSAweDAwMDQ7Ci0rICAgICAgICAgIHdoaWxlIChTWzFdICE9ICdcbicgJiYgaXN1cGdpZDxJ TlRfTUFYKXsgLy8gVGhlcmUgaXMgb25lIGJsYW5rIGJlZm9yZSAnXG4nCi0rICAgICAgICAgICAg aWYgKGlzdXBnaWQgPT0gdmN0c2l6ZSl7Ci0rICAgICAgICAgICAgICB2Y3RzaXplICo9IDI7Ci0r ICAgICAgICAgICAgICBQLT5zdXBnaWQgPSAoaW50ICopeHJlYWxsb2MoUC0+c3VwZ2lkLHZjdHNp emUgKiBzaXplb2YoaW50KSk7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIFAtPnN1cGdp ZFtpc3VwZ2lkKytdID0gc3RydG9sKFMsJlMsMTApOwotKyAgICAgICAgICAgIFAtPm5zdXBnaWQr KzsKLSsgICAgICAgICAgfQotKyAgICAgICAgfQotKyAgICAgICAgY29udGludWU7Ci0gICAgIGNh c2VfVm1EYXRhOgotICAgICAgICAgUC0+dm1fZGF0YSA9IHN0cnRvbChTLCZTLDEwKTsKLSAgICAg ICAgIGNvbnRpbnVlOwotQEAgLTU4OSw2ICs2MTUsMTMgQEAgc3RhdGljIHByb2NfdCogc2ltcGxl X3JlYWRwcm9jKFBST0NUQUIgKnJlc3RyaWN0IGNvbnN0IFBULCBwcm9jX3QgKnJlc3RyaWN0IGNv bnMKLSAgICAgICAgIH0KLSAgICAgfQotIAotKyAgICBpZiAoZmxhZ3MgJiBQUk9DX0ZJTExTVVBH UlAgJiYgcC0+bnN1cGdpZCA+IDApewotKyAgICAgICAgYWxsb2NzdXBncnAocCk7Ci0rICAgICAg ICBpbnQgaTsKLSsgICAgICAgIGZvciAoaT0wOyBpIDwgcC0+bnN1cGdpZDsgaSsrKQotKyAgICAg ICAgICAgIG1lbWNweShwLT5zdXBncnBbaV0sIGdyb3VwX2Zyb21fZ2lkKHAtPnN1cGdpZFtpXSks IFBfR19TWik7Ci0rICAgIH0KLSsKLSAgICAgaWYgKChmbGFncyAmIFBST0NfRklMTENPTSkgfHwg KGZsYWdzICYgUFJPQ19GSUxMQVJHKSkJLyogcmVhZCtwYXJzZSAvcHJvYy8jL2NtZGxpbmUgKi8K LSAJcC0+Y21kbGluZSA9IGZpbGUyc3RydmVjKHBhdGgsICJjbWRsaW5lIik7Ci0gICAgIGVsc2UK LUBAIC02ODMsNiArNzE2LDEzIEBAIHN0YXRpYyBwcm9jX3QqIHNpbXBsZV9yZWFkdGFzayhQUk9D VEFCICpyZXN0cmljdCBjb25zdCBQVCwgY29uc3QgcHJvY190ICpyZXN0cmljCi0gICAgICAgICB9 Ci0gICAgIH0KLSAKLSsgICAgaWYgKGZsYWdzICYgUFJPQ19GSUxMU1VQR1JQICYmIHQtPm5zdXBn aWQgPiAwKXsKLSsgICAgICAgIGFsbG9jc3VwZ3JwKHQpOwotKyAgICAgICAgaW50IGk7Ci0rICAg ICAgICBmb3IgKGk9MDsgaSA8IHQtPm5zdXBnaWQ7IGkrKykKLSsgICAgICAgICAgICBtZW1jcHko dC0+c3VwZ3JwW2ldLCBncm91cF9mcm9tX2dpZCh0LT5zdXBnaWRbaV0pLCBQX0dfU1opOwotKyAg ICB9Ci0rCi0gI2lmIDAKLSAgICAgaWYgKChmbGFncyAmIFBST0NfRklMTENPTSkgfHwgKGZsYWdz ICYgUFJPQ19GSUxMQVJHKSkJLyogcmVhZCtwYXJzZSAvcHJvYy8jL2NtZGxpbmUgKi8KLSAJdC0+ Y21kbGluZSA9IGZpbGUyc3RydmVjKHBhdGgsICJjbWRsaW5lIik7Ci1AQCAtODk3LDYgKzkzNywy MyBAQCB2b2lkIGNsb3NlcHJvYyhQUk9DVEFCKiBQVCkgewotICAgICB9Ci0gfQotIAotKy8vIGFs bG9jYXRlIG1lbW9yeSBmb3Igc3VwZ3JwCi0rdm9pZCBhbGxvY3N1cGdycChwcm9jX3QgKnApIHsK LSsgICAgaWYgKCFwIHx8IHAtPm5zdXBnaWQgPT0gMCkgcmV0dXJuOwotKyAgICBwLT5zdXBncnAg PSAoY2hhcioqKXhtYWxsb2MocC0+bnN1cGdpZCAqIHNpemVvZihjaGFyKikpOwotKyAgICBpbnQg aTsKLSsgICAgZm9yIChpPTA7IGk8cC0+bnN1cGdpZDsgaSsrKQotKyAgICAgIHAtPnN1cGdycFtp XSA9IChjaGFyKil4bWFsbG9jKFBfR19TWiAqIHNpemVvZihjaGFyKSk7Ci0rfQotKwotKy8vIGZy ZWUgbWVtb3J5IGFsbG9jYXRlZCBmb3Igc3VwZ3JwCi0rdm9pZCBmcmVlc3VwZ3JwKHByb2NfdCAq cCkgewotKyAgICBpbnQgaTsKLSsgICAgZm9yIChpPTA7IGk8cC0+bnN1cGdpZDsgaSsrKQotKyAg ICAgIGlmIChwLT5zdXBncnBbaV0pIGZyZWUocC0+c3VwZ3JwW2ldKTsKLSsgICAgZnJlZShwLT5z dXBncnApOwotK30KLSsKLSAvLyBkZWFsbG9jYXRlIHRoZSBzcGFjZSBhbGxvY2F0ZWQgYnkgcmVh ZHByb2MgaWYgdGhlIHBhc3NlZCByYnVmIHdhcyBOVUxMCi0gdm9pZCBmcmVlcHJvYyhwcm9jX3Qq IHApIHsKLSAgICAgaWYgKCFwKQkvKiBpbiBjYXNlIHAgaXMgTlVMTCAqLwotZGlmZiAtLWdpdCBh L3Byb2MvcmVhZHByb2MuaCBiL3Byb2MvcmVhZHByb2MuaAotaW5kZXggM2E5YWVjZi4uYWMxNjZj YSAxMDA2NDQKLS0tLSBhL3Byb2MvcmVhZHByb2MuaAotKysrIGIvcHJvYy9yZWFkcHJvYy5oCi1A QCAtMTIyLDYgKzEyMiw3IEBAIHR5cGVkZWYgc3RydWN0IHByb2NfdCB7Ci0gICAgIAllZ3JvdXBb UF9HX1NaXSwJLy8gc3RhdHVzICAgICAgICAgIGVmZmVjdGl2ZSBncm91cCBuYW1lCi0gICAgIAlz Z3JvdXBbUF9HX1NaXSwJLy8gc3RhdHVzICAgICAgICAgIHNhdmVkIGdyb3VwIG5hbWUKLSAgICAg CWZncm91cFtQX0dfU1pdLAkvLyBzdGF0dXMgICAgICAgICAgZmlsZXN5c3RlbSBncm91cCBuYW1l Ci0rICAgIAkqKnN1cGdycCwgLy8gc3RhdHVzICAgICAgICBzdXBwbGVtZW50YXJ5IGdyb3Vwcwot ICAgICAJY21kWzE2XTsJLy8gc3RhdCxzdGF0dXMgICAgIGJhc2VuYW1lIG9mIGV4ZWN1dGFibGUg ZmlsZSBpbiBjYWxsIHRvIGV4ZWMoMikKLSAgICAgc3RydWN0IHByb2NfdAotIAkqcmluZywJCS8v IG4vYSAgICAgICAgICAgICB0aHJlYWQgZ3JvdXAgcmluZwotQEAgLTEzNyw2ICsxMzgsOCBAQCB0 eXBlZGVmIHN0cnVjdCBwcm9jX3QgewotICAgICAgICAgc3VpZCwgc2dpZCwgICAgIC8vIHN0YXR1 cyAgICAgICAgICBzYXZlZAotICAgICAgICAgZnVpZCwgZmdpZCwgICAgIC8vIHN0YXR1cyAgICAg ICAgICBmcyAodXNlZCBmb3IgZmlsZSBhY2Nlc3Mgb25seSkKLSAJdHBnaWQsCQkvLyBzdGF0ICAg ICAgICAgICAgdGVybWluYWwgcHJvY2VzcyBncm91cCBpZAotKwluc3VwZ2lkLAkvLyBzdGF0dXMg ICAgICAgIG51bWJlciBvZiBzdXBwbGVtZW50YXJ5IGdyb3VwcwotKwkqc3VwZ2lkLAkvLyBzdGF0 dXMgICAgICAgIHN1cHBsZW1lbnRhcnkgZ2lkJ3MKLSAJZXhpdF9zaWduYWwsCS8vIHN0YXQgICAg ICAgICAgICBtaWdodCBub3QgYmUgU0lHQ0hMRAotIAlwcm9jZXNzb3I7ICAgICAgLy8gc3RhdCAg ICAgICAgICAgIGN1cnJlbnQgKG9yIG1vc3QgcmVjZW50PykgQ1BVCi0gICAgIAljaGFyICoqY2dy b3VwOyAgLy8gY2dyb3VwCSAgIGN1cnJlbnQgY2dyb3VwLCBsb29rcyBsaWtlIGEgY2xhc3NpYyBm aWxlcGF0aAotQEAgLTE5OCw2ICsyMDEsMTIgQEAgZXh0ZXJuIHByb2NfdCoqIHJlYWRwcm9jdGFi KGludCBmbGFncywgLi4uIC8qIHNhbWUgYXMgb3BlbnByb2MgKi8gKTsKLSAvLyBjbGVhbi11cCBv cGVuIGZpbGVzLCBldGMgZnJvbSB0aGUgb3BlbnByb2MoKQotIGV4dGVybiB2b2lkIGNsb3NlcHJv YyhQUk9DVEFCKiBQVCk7Ci0gCi0rLy8gYWxsb2NhdGUgbWVtb3J5IGZvciBzdXBncnAKLStleHRl cm4gdm9pZCBhbGxvY3N1cGdycChwcm9jX3QgKnApOwotKwotKy8vIGZyZWUgbWVtb3J5IGFsbG9j YXRlZCBmb3Igc3VwZ3JwCi0rZXh0ZXJuIHZvaWQgZnJlZXN1cGdycChwcm9jX3QgKnApOwotKwot IC8vIHJldHJpZXZlIHRoZSBuZXh0IHByb2Nlc3MgbWF0Y2hpbmcgdGhlIGNyaXRlcmlhIHNldCBi eSB0aGUgb3BlbnByb2MoKQotIGV4dGVybiBwcm9jX3QqIHJlYWRwcm9jKFBST0NUQUIgKnJlc3Ry aWN0IGNvbnN0IFBULCBwcm9jX3QgKnJlc3RyaWN0IHApOwotIGV4dGVybiBwcm9jX3QqIHJlYWR0 YXNrKFBST0NUQUIgKnJlc3RyaWN0IGNvbnN0IFBULCBjb25zdCBwcm9jX3QgKnJlc3RyaWN0IGNv bnN0IHAsIHByb2NfdCAqcmVzdHJpY3QgdCk7Ci1AQCAtMjM3LDggKzI0Niw5IEBAIGV4dGVybiBw cm9jX3QgKiBnZXRfcHJvY19zdGF0cyhwaWRfdCBwaWQsIHByb2NfdCAqcCk7Ci0gI2RlZmluZSBQ Uk9DX0ZJTExTVEFUICAgICAgICAweDAwNDAgLy8gcmVhZCBzdGF0IC0tIGN1cnJlbnRseSB1bmNv bmRpdGlvbmFsCi0gI2RlZmluZSBQUk9DX0ZJTExXQ0hBTiAgICAgICAweDAwODAgLy8gbG9vayB1 cCBXQ0hBTiBuYW1lCi0gI2RlZmluZSBQUk9DX0ZJTExBUkcgICAgICAgICAweDAxMDAgLy8gYWxs b2MgYW5kIGZpbGwgaW4gYGNtZGxpbmUnCi0rI2RlZmluZSBQUk9DX0ZJTExTVVBHUlAgICAgICAw eDAyMDAgLy8gcmVzb2x2ZSBzdXBwbGVtZW50YXJ5IGdyb3VwIGlkIG51bWJlciAtPiBncm91cCBu YW1lCi0gCi0tI2RlZmluZSBQUk9DX0xPT1NFX1RBU0tTICAgICAweDAyMDAgLy8gdGhyZWF0IHRo cmVhZHMgYXMgaWYgdGhleSB3ZXJlIHByb2Nlc3NlcwotKyNkZWZpbmUgUFJPQ19MT09TRV9UQVNL UyAgICAgMHgwNDAwIC8vIHRocmVhdCB0aHJlYWRzIGFzIGlmIHRoZXkgd2VyZSBwcm9jZXNzZXMK LSAKLSAjZGVmaW5lIFBST0NfRklMTENHUk9VUCAgICAgIDB4MDQwMCAvLyBhbGxvYyBhbmQgZmls bCBpbiBgY2dyb3VwYAotIAotZGlmZiAtLWdpdCBhL3BzL2Rpc3BsYXkuYyBiL3BzL2Rpc3BsYXku YwotaW5kZXggM2Q2YmJkZS4uNmVmNWQ1OCAxMDA2NDQKLS0tLSBhL3BzL2Rpc3BsYXkuYwotKysr IGIvcHMvZGlzcGxheS5jCi1AQCAtMzQyLDYgKzM0Miw4IEBAIHN0YXRpYyB2b2lkIHNpbXBsZV9z cGV3KHZvaWQpewotICAgICAgIGlmKGJ1Zi5jbWRsaW5lKSBmcmVlKCh2b2lkKikqYnVmLmNtZGxp bmUpOyAvLyBvdWdodCB0byByZXVzZQotICAgICAgIGlmKGJ1Zi5lbnZpcm9uKSBmcmVlKCh2b2lk KikqYnVmLmVudmlyb24pOyAvLyBvdWdodCB0byByZXVzZQotICAgICAgIGlmKGJ1Zi5jZ3JvdXAp ICBmcmVlKCh2b2lkKikqYnVmLmNncm91cCk7Ci0rICAgICAgaWYoYnVmLm5zdXBnaWQgPiAwICYm IGJ1Zi5zdXBnaWQpIGZyZWUoYnVmLnN1cGdpZCk7Ci0rICAgICAgaWYoKHB0cC0+ZmxhZ3MgJiBQ Uk9DX0ZJTExTVVBHUlApICYmIGJ1Zi5uc3VwZ2lkPjAgJiYgYnVmLnN1cGdycCkgZnJlZXN1cGdy cCgmYnVmKTsKLSAgICAgfQotICAgICBicmVhazsKLSAgIGNhc2UgVEZfc2hvd19wcm9jfFRGX2xv b3NlX3Rhc2tzOiAgICAvLyBIIG9wdGlvbgotQEAgLTM0OSwxMiArMzUxLDE2IEBAIHN0YXRpYyB2 b2lkIHNpbXBsZV9zcGV3KHZvaWQpewotICAgICAgIHByb2NfdCBidWYyOwotICAgICAgIC8vIG11 c3Qgc3RpbGwgaGF2ZSB0aGUgcHJvY2VzcyBhbGxvY2F0ZWQKLSAgICAgICB3aGlsZShyZWFkdGFz ayhwdHAsJmJ1ZiwmYnVmMikpewotLSAgICAgICAgaWYoIXdhbnRfdGhpc19wcm9jKCZidWYpKSBj b250aW51ZTsKLS0gICAgICAgIHNob3dfb25lX3Byb2MoJmJ1ZjIsIHRhc2tfZm9ybWF0X2xpc3Qp OwotKyAgICAgICAgaWYod2FudF90aGlzX3Byb2MoJmJ1ZikpIHNob3dfb25lX3Byb2MoJmJ1ZjIs IHRhc2tfZm9ybWF0X2xpc3QpOwotKyAgICAgICAgaWYoYnVmMi5uc3VwZ2lkID4gMCAmJiBidWYy LnN1cGdpZCAmJiBidWYuc3VwZ2lkIT1idWYyLnN1cGdpZCkgZnJlZShidWYyLnN1cGdpZCk7Ci0r ICAgICAgICBpZigocHRwLT5mbGFncyAmIFBST0NfRklMTFNVUEdSUCkgJiYgYnVmMi5uc3VwZ2lk PjAgJiYgYnVmMi5zdXBncnAgJiYgYnVmLnN1cGdycCE9YnVmMi5zdXBncnApCi0rICAgICAgICAg IGZyZWVzdXBncnAoJmJ1ZjIpOwotICAgICAgIH0KLSAgICAgICBpZihidWYuY21kbGluZSkgZnJl ZSgodm9pZCopKmJ1Zi5jbWRsaW5lKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSAgICAgICBpZihidWYu ZW52aXJvbikgZnJlZSgodm9pZCopKmJ1Zi5lbnZpcm9uKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSAg ICAgICBpZihidWYuY2dyb3VwKSAgZnJlZSgodm9pZCopKmJ1Zi5jZ3JvdXApOwotKyAgICAgIGlm KGJ1Zi5uc3VwZ2lkID4gMCAmJiBidWYuc3VwZ2lkKSBmcmVlKGJ1Zi5zdXBnaWQpOwotKyAgICAg IGlmKChwdHAtPmZsYWdzICYgUFJPQ19GSUxMU1VQR1JQKSAmJiBidWYubnN1cGdpZD4wICYmIGJ1 Zi5zdXBncnApIGZyZWVzdXBncnAoJmJ1Zik7Ci0gICAgIH0KLSAgICAgYnJlYWs7Ci0gICBjYXNl IFRGX3Nob3dfcHJvY3xURl9zaG93X3Rhc2s6ICAgICAgLy8gbSBhbmQgLW0gb3B0aW9ucwotQEAg LTM2MywxMSArMzY5LDE4IEBAIHN0YXRpYyB2b2lkIHNpbXBsZV9zcGV3KHZvaWQpewotICAgICAg ICAgcHJvY190IGJ1ZjI7Ci0gICAgICAgICBzaG93X29uZV9wcm9jKCZidWYsIHByb2NfZm9ybWF0 X2xpc3QpOwotICAgICAgICAgLy8gbXVzdCBzdGlsbCBoYXZlIHRoZSBwcm9jZXNzIGFsbG9jYXRl ZAotLSAgICAgICAgd2hpbGUocmVhZHRhc2socHRwLCZidWYsJmJ1ZjIpKSBzaG93X29uZV9wcm9j KCZidWYyLCB0YXNrX2Zvcm1hdF9saXN0KTsKLSsgICAgICAgIHdoaWxlKHJlYWR0YXNrKHB0cCwm YnVmLCZidWYyKSl7Ci0rICAgICAgICAgIHNob3dfb25lX3Byb2MoJmJ1ZjIsIHRhc2tfZm9ybWF0 X2xpc3QpOwotKyAgICAgICAgICBpZihidWYyLm5zdXBnaWQgPiAwICYmIGJ1ZjIuc3VwZ2lkICYm IGJ1Zi5zdXBnaWQhPWJ1ZjIuc3VwZ2lkKSBmcmVlKGJ1ZjIuc3VwZ2lkKTsKLSsgICAgICAgICAg aWYocHRwLT5mbGFncyAmIFBST0NfRklMTFNVUEdSUCAmJiBidWYyLm5zdXBnaWQ+MCAmJiBidWYy LnN1cGdycCAmJiBidWYuc3VwZ3JwIT1idWYyLnN1cGdycCkKLSsgICAgICAgICAgICBmcmVlc3Vw Z3JwKCZidWYyKTsKLSsgICAgICAgIH0KLSAgICAgICB9Ci0gICAgICAgaWYoYnVmLmNtZGxpbmUp IGZyZWUoKHZvaWQqKSpidWYuY21kbGluZSk7IC8vIG91Z2h0IHRvIHJldXNlCi0gICAgICAgaWYo YnVmLmVudmlyb24pIGZyZWUoKHZvaWQqKSpidWYuZW52aXJvbik7IC8vIG91Z2h0IHRvIHJldXNl Ci0gICAgICAgaWYoYnVmLmNncm91cCkgIGZyZWUoKHZvaWQqKSpidWYuY2dyb3VwKTsKLSsgICAg ICBpZihidWYubnN1cGdpZCA+IDAgJiYgYnVmLnN1cGdpZCkgZnJlZShidWYuc3VwZ2lkKTsKLSsg ICAgICBpZigocHRwLT5mbGFncyAmIFBST0NfRklMTFNVUEdSUCkgJiYgYnVmLm5zdXBnaWQ+MCAm JiBidWYuc3VwZ3JwKSBmcmVlc3VwZ3JwKCZidWYpOwotICAgICAgfQotICAgICBicmVhazsKLSAg IGNhc2UgVEZfc2hvd190YXNrOiAgICAgICAgICAgICAgICAgICAvLyAtTCBhbmQgLVQgb3B0aW9u cwotQEAgLTM3NSwxMSArMzg4LDE4IEBAIHN0YXRpYyB2b2lkIHNpbXBsZV9zcGV3KHZvaWQpewot ICAgICAgIGlmKHdhbnRfdGhpc19wcm9jKCZidWYpKXsKLSAgICAgICAgIHByb2NfdCBidWYyOwot ICAgICAgICAgLy8gbXVzdCBzdGlsbCBoYXZlIHRoZSBwcm9jZXNzIGFsbG9jYXRlZAotLSAgICAg ICAgd2hpbGUocmVhZHRhc2socHRwLCZidWYsJmJ1ZjIpKSBzaG93X29uZV9wcm9jKCZidWYyLCB0 YXNrX2Zvcm1hdF9saXN0KTsKLSsgICAgICAgIHdoaWxlKHJlYWR0YXNrKHB0cCwmYnVmLCZidWYy KSl7Ci0rICAgICAgICAgIHNob3dfb25lX3Byb2MoJmJ1ZjIsIHRhc2tfZm9ybWF0X2xpc3QpOwot KyAgICAgICAgICBpZihidWYyLm5zdXBnaWQgPiAwICYmIGJ1ZjIuc3VwZ2lkICYmIGJ1Zi5zdXBn aWQhPWJ1ZjIuc3VwZ2lkKSBmcmVlKGJ1ZjIuc3VwZ2lkKTsKLSsgICAgICAgICAgaWYocHRwLT5m bGFncyAmIFBST0NfRklMTFNVUEdSUCAmJiBidWYyLm5zdXBnaWQ+MCAmJiBidWYyLnN1cGdycCAm JiBidWYuc3VwZ3JwIT1idWYyLnN1cGdycCkKLSsgICAgICAgICAgICBmcmVlc3VwZ3JwKCZidWYy KTsKLSsgICAgICAgIH0KLSAgICAgICB9Ci0gICAgICAgaWYoYnVmLmNtZGxpbmUpIGZyZWUoKHZv aWQqKSpidWYuY21kbGluZSk7IC8vIG91Z2h0IHRvIHJldXNlCi0gICAgICAgaWYoYnVmLmVudmly b24pIGZyZWUoKHZvaWQqKSpidWYuZW52aXJvbik7IC8vIG91Z2h0IHRvIHJldXNlCi0gICAgICAg aWYoYnVmLmNncm91cCkgIGZyZWUoKHZvaWQqKSpidWYuY2dyb3VwKTsKLSsgICAgICBpZihidWYu bnN1cGdpZCA+IDAgJiYgYnVmLnN1cGdpZCkgZnJlZShidWYuc3VwZ2lkKTsKLSsgICAgICBpZigo cHRwLT5mbGFncyAmIFBST0NfRklMTFNVUEdSUCkgJiYgYnVmLm5zdXBnaWQ+MCAmJiBidWYuc3Vw Z3JwKSBmcmVlc3VwZ3JwKCZidWYpOwotICAgIH0KLSAgICAgYnJlYWs7Ci0gICB9Ci1AQCAtNTQy LDYgKzU2MiwxMiBAQCBzdGF0aWMgdm9pZCBmYW5jeV9zcGV3KHZvaWQpewotICAgcXNvcnQocHJv Y2Vzc2VzLCBuLCBzaXplb2YocHJvY190KiksIGNvbXBhcmVfdHdvX3Byb2NzKTsKLSAgIGlmKGZv cmVzdF90eXBlKSBzaG93X2ZvcmVzdChuKTsKLSAgIGVsc2Ugc2hvd19wcm9jX2FycmF5KHB0cCxu KTsKLSsgIGludCBpOwotKyAgZm9yIChpPTA7IGk8bjsgaSsrKQotKyAgICBpZiAocHJvY2Vzc2Vz W2ldLT5uc3VwZ2lkPjAgJiYgcHJvY2Vzc2VzW2ldLT5zdXBnaWQpIGZyZWUocHJvY2Vzc2VzW2ld LT5zdXBnaWQpOwotKyAgaWYgKHB0cC0+ZmxhZ3MgJiBQUk9DX0ZJTExTVVBHUlApCi0rICAgIGZv ciAoaT0wOyBpPG47IGkrKykKLSsgICAgICBpZiAocHJvY2Vzc2VzW2ldLT5uc3VwZ2lkPjAgJiYg cHJvY2Vzc2VzW2ldLT5zdXBncnApIGZyZWVzdXBncnAocHJvY2Vzc2VzW2ldKTsKLSAgIGNsb3Nl cHJvYyhwdHApOwotIH0KLSAKLWRpZmYgLS1naXQgYS9wcy9vdXRwdXQuYyBiL3BzL291dHB1dC5j Ci1pbmRleCBhMTY1ZWQ1Li4xYTE5NmZmIDEwMDY0NAotLS0tIGEvcHMvb3V0cHV0LmMKLSsrKyBi L3BzL291dHB1dC5jCi1AQCAtMjExLDYgKzIxMSwzMiBAQCBzdGF0aWMgaW50IHNyX3N3YXBhYmxl KGNvbnN0IHByb2NfdCogUCwgY29uc3QgcHJvY190KiBRKSB7Ci0gICByZXR1cm4gMDsKLSB9Ci0g Ci0rc3RhdGljIGludCBzcl9zdXBnaWQoY29uc3QgcHJvY190KiBQLCBjb25zdCBwcm9jX3QqIFEp ewotKyAgaW50IGk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgSU5UX01BWDsgaSsrKXsKLSsgICAgaWYg KFAtPm5zdXBnaWQgPT0gaSl7Ci0rICAgICAgaWYgKFEtPm5zdXBnaWQgPT0gaSkgcmV0dXJuIDA7 Ci0rICAgICAgZWxzZSByZXR1cm4gLTE7Ci0rICAgIH0KLSsgICAgaWYgKFEtPm5zdXBnaWQgPT0g aSkgcmV0dXJuIDE7Ci0rCWlmIChQLT5zdXBnaWRbaV0gIT0gUS0+c3VwZ2lkW2ldKSByZXR1cm4g UC0+c3VwZ2lkW2ldIC0gUS0+c3VwZ2lkW2ldOwotKyAgfQotKyAgcmV0dXJuIDA7Ci0rfQotKwot K3N0YXRpYyBpbnQgc3Jfc3VwZ3JwKGNvbnN0IHByb2NfdCogUCwgY29uc3QgcHJvY190KiBRKXsK LSsgIGludCBpOwotKyAgZm9yIChpID0gMDsgaSA8IElOVF9NQVg7IGkrKyl7Ci0rICAgIGlmIChQ LT5uc3VwZ2lkID09IGkpewotKyAgICAgIGlmIChRLT5uc3VwZ2lkID09IGkpIHJldHVybiAwOwot KyAgICAgIGVsc2UgcmV0dXJuIC0xOwotKyAgICB9Ci0rICAgIGlmIChRLT5uc3VwZ2lkID09IGkp IHJldHVybiAxOwotKyAgICBpbnQgY21wID0gc3RybmNtcChQLT5zdXBncnBbaV0sUS0+c3VwZ3Jw W2ldLFBfR19TWik7Ci0rICAgIGlmIChjbXAgIT0gMCkgcmV0dXJuIGNtcDsKLSsgIH0KLSsgIHJl dHVybiAwOwotK30KLSAKLSAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotIC8qKioqKioqKioqKiogTG90 cyBvZiBmb3JtYXQgZnVuY3Rpb25zLCBzdGFydGluZyB3aXRoIHRoZSBOT1AgKioqKioqKioqKioq KiovCi1AQCAtMTA2Miw2ICsxMDg4LDI0IEBAIHN0YXRpYyBpbnQgcHJfZnVpZChjaGFyICpyZXN0 cmljdCBjb25zdCBvdXRidWYsIGNvbnN0IHByb2NfdCAqcmVzdHJpY3QgY29uc3QgcHApCi0gICBy ZXR1cm4gc25wcmludGYob3V0YnVmLCBDT0xXSUQsICIlZCIsIHBwLT5mdWlkKTsKLSB9Ci0gCi0r c3RhdGljIGludCBwcl9zdXBnaWQoY2hhciAqcmVzdHJpY3QgY29uc3Qgb3V0YnVmLCBjb25zdCBw cm9jX3QgKnJlc3RyaWN0IGNvbnN0IHBwKXsKLSsgIGlmIChwcC0+bnN1cGdpZCA9PSAwKSByZXR1 cm4gc25wcmludGYob3V0YnVmLDIsIi0iKTsKLSsgIGludCByZXN0ID0gQ09MV0lEOwotKyAgaW50 IGkgPSAwOwotKyAgZm9yIChpID0gMDsgaSA8IHBwLT5uc3VwZ2lkICYmIHJlc3QgPiA1OyBpKysp Ci0rICAgIHJlc3QtPSBzbnByaW50ZihvdXRidWYrQ09MV0lELXJlc3QsIHJlc3QsICIlZCAiLCBw cC0+c3VwZ2lkW2ldKTsKLSsgIHJldHVybiBDT0xXSUQtcmVzdDsKLSt9Ci0rCi0rc3RhdGljIGlu dCBwcl9zdXBncnAoY2hhciAqcmVzdHJpY3QgY29uc3Qgb3V0YnVmLCBjb25zdCBwcm9jX3QgKnJl c3RyaWN0IGNvbnN0IHBwKXsKLSsgIGlmIChwcC0+bnN1cGdpZCA9PSAwKSByZXR1cm4gc25wcmlu dGYob3V0YnVmLDIsIi0iKTsKLSsgIGludCByZXN0ID0gQ09MV0lEOwotKyAgaW50IGkgPSAwOwot KyAgZm9yIChpID0gMDsgaSA8IHBwLT5uc3VwZ2lkICYmIHJlc3QgPiBzaXplb2YoIHBwLT5zdXBn cnBbaV0gKSArIDE7IGkrKykKLSsgICAgcmVzdC09IHNucHJpbnRmKG91dGJ1ZitDT0xXSUQtcmVz dCwgcmVzdCwgIiVzICIsIHBwLT5zdXBncnBbaV0pOwotKyAgcmV0dXJuIENPTFdJRC1yZXN0Owot K30KLSsKLSAvLyBUaGUgT3BlbiBHcm91cCBCYXNlIFNwZWNpZmljYXRpb25zIElzc3VlIDYgKElF RUUgU3RkIDEwMDMuMSwgMjAwNCBFZGl0aW9uKQotIC8vIHJlcXVpcmVzIHRoYXQgdXNlciBhbmQg Z3JvdXAgbmFtZXMgcHJpbnQgYXMgZGVjaW1hbCBudW1iZXJzIGlmIHRoZXJlIGlzCi0gLy8gbm90 IGVub3VnaCByb29tIGluIHRoZSBjb2x1bW4sIHNvIHRvdWdoIGx1Y2sgaWYgeW91IGRvbid0IGxp a2UgaXQuCi1AQCAtMTI5Myw2ICsxMzM3LDcgQEAgc3RhdGljIGludCBwcl90X2xlZnQyKGNoYXIg KnJlc3RyaWN0IGNvbnN0IG91dGJ1ZiwgY29uc3QgcHJvY190ICpyZXN0cmljdCBjb25zdAotICNk ZWZpbmUgVVNSIFBST0NfRklMTFVTUiAgICAgLyogdWlkX3QgLT4gdXNlciBuYW1lcyAqLwotICNk ZWZpbmUgR1JQIFBST0NfRklMTEdSUCAgICAgLyogZ2lkX3QgLT4gZ3JvdXAgbmFtZXMgKi8KLSAj ZGVmaW5lIFdDSCBQUk9DX0ZJTExXQ0hBTiAgIC8qIGRvIFdDSEFOIGxvb2t1cCAqLwotKyNkZWZp bmUgU1VQR1JQIFBST0NfRklMTFNVUEdSUCAgICAgIC8qIHN1cGdpZCAtPiBzdXBwbGVtZW50YXJ5 IGdyb3VwIG5hbWVzICovCi0gCi0gI2RlZmluZSBDR1JQIFBST0NfRklMTENHUk9VUCAvKiByZWFk IGNncm91cCAqLwotIC8qIFRPRE8KLUBAIC0xNDkwLDYgKzE1MzUsOCBAQCBzdGF0aWMgY29uc3Qg Zm9ybWF0X3N0cnVjdCBmb3JtYXRfYXJyYXlbXSA9IHsKLSB7InN0YXR1cyIsICAgICJTVEFUVVMi LCAgcHJfbm9wLCAgICAgIHNyX25vcCwgICAgIDYsICAgMCwgICAgREVDLCBBTnxSSUdIVH0sCi0g eyJzdGltZSIsICAgICAiU1RJTUUiLCAgIHByX3N0aW1lLCAgICBzcl9zdGltZSwgICA1LCAgIDAs ICAgIFhYWCwgRVR8UklHSFR9LCAvKiB3YXMgNiB3aWRlICovCi0geyJzdWlkIiwgICAgICAiU1VJ RCIsICAgIHByX3N1aWQsICAgICBzcl9zdWlkLCAgICA1LCAgIDAsICAgIExOeCwgRVR8UklHSFR9 LAotK3sic3VwZ2lkIiwgICAgIlNVUEdJRCIsICBwcl9zdXBnaWQsICAgc3Jfc3VwZ2lkLCAgMjcs ICAgMCwgICAgTE5YLCBQT3xVTkxJTUlURUR9LAotK3sic3VwZ3JwIiwgICAgIlNVUEdSUCIsICBw cl9zdXBncnAsICAgc3Jfc3VwZ3JwLCAgMjcsIFNVUEdSUCwgTE5YLCBQT3xVTkxJTUlURUR9LAot IHsic3VzZXIiLCAgICAgIlNVU0VSIiwgICBwcl9zdXNlciwgICAgc3Jfc3VzZXIsICAgOCwgVVNS LCAgICBMTngsIEVUfFVTRVJ9LAotIHsic3ZnaWQiLCAgICAgIlNWR0lEIiwgICBwcl9zZ2lkLCAg ICAgc3Jfc2dpZCwgICAgNSwgICAwLCAgICBYWFgsIEVUfFJJR0hUfSwKLSB7InN2Z3JvdXAiLCAg ICJTVkdST1VQIiwgcHJfc2dyb3VwLCAgIHNyX3Nncm91cCwgIDgsIEdSUCwgICAgTE5YLCBFVHxV U0VSfSwKLWRpZmYgLS1naXQgYS9wcy9wcy4xIGIvcHMvcHMuMQotaW5kZXggMGY4OTZiZi4uOTBm YWJiYyAxMDA2NDQKLS0tLSBhL3BzL3BzLjEKLSsrKyBiL3BzL3BzLjEKLUBAIC0xMzAzLDYgKzEz MDMsMTYgQEAgc3VpZAlTVUlECVR7Ci0gc2F2ZWQgdXNlclwgSUQuICAoYWxpYXNcIFxmQnN2dWlk XGZSKS4KLSBUfQotIAotK3N1cGdpZAlTVVBHSUQJVHsKLStnaWQgb2Ygc3VwcGxlbWVudGFyeSBn cm91cHMsIHNlZQotKy5CUiBnZXRncm91cHMgKDIpLgotK1R9Ci0rCi0rc3VwZ3JwCVNVUEdSUAlU ewotK25hbWVzIG9mIHN1cHBsZW1lbnRhcnkgZ3JvdXBzLCBzZWUKLSsuQlIgZ2V0Z3JvdXBzICgy KS4KLStUfQotKwotIHN1c2VyCVNVU0VSCVR7Ci0gc2F2ZWQgdXNlciBuYW1lLiAgVGhpcyB3aWxs IGJlIHRoZSB0ZXh0dWFsIHVzZXJcIElELAotIGlmXCBpdCBjYW4gYmUgb2J0YWluZWQgYW5kIHRo ZSBmaWVsZCB3aWR0aCBwZXJtaXRzLAotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDQ2LW1ha2VmaWxlX2Rldl9udWxsLnBhdGNoIGIvcGF0Y2hlcy9wcm9j cHMtMy4yLjgvMDA0Ni1tYWtlZmlsZV9kZXZfbnVsbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNGQ4ZTkyYy4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDQ2LW1ha2VmaWxlX2Rldl9udWxsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBA QAotRnJvbSA4MTdhY2YxZGI3MzYzMTViY2M4OTA4MmZlMTJmZTQxYTRhOTQ5MmQyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9w b29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJp YW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDog W1BBVENIIDQ2LzcwXSBtYWtlZmlsZV9kZXZfbnVsbAotCi0tLS0KLSBNYWtlZmlsZSB8ICAgIDIg Ky0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKLWluZGV4IDA2NzI4ZmMuLmFiZGRiNmUg MTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZQotKysrIGIvTWFrZWZpbGUKLUBAIC0xMjAsNyArMTIwLDcg QEAgaWZuZXEgKCQoTUFLRUNNREdPQUxTKSxiZXRhKQotICMgVW5saWtlIHRoZSBrZXJuZWwgb25l LCB0aGlzIGNoZWNrX2djYyBnb2VzIGFsbCB0aGUgd2F5IHRvCi0gIyBwcm9kdWNpbmcgYW4gZXhl Y3V0YWJsZS4gVGhlcmUgbWlnaHQgYmUgYSAtbTY0IHRoYXQgd29ya3MKLSAjIHVudGlsIHlvdSBn byBsb29raW5nIGZvciBhIDY0LWJpdCBjdXJzZXMgbGlicmFyeS4KLS1jaGVja19nY2MgPSAkKHNo ZWxsIGlmICQoQ0MpICQoQUxMX0NQUEZMQUdTKSAkKEFMTF9DRkxBR1MpIGR1bW15LmMgJChBTExf TERGTEFHUykgJCgxKSAtbyAvZGV2L251bGwgJChDVVJTRVMpICQoQ1VSU0VTVykgPiAvZGV2L251 bGwgMj4mMTsgdGhlbiBlY2hvICIkKDEpIjsgZWxzZSBlY2hvICIkKDIpIjsgZmkgOykKLStjaGVj a19nY2MgPSAkKHNoZWxsIGlmICQoQ0MpICQoQUxMX0NQUEZMQUdTKSAkKEFMTF9DRkxBR1MpIGR1 bW15LmMgJChBTExfTERGTEFHUykgJCgxKSAtbyB3aWxsX3RoaXNfZmlsZV9yZWFsbHlfZXhpc3Qu dG1wICQoQ1VSU0VTKSAkKENVUlNFU1cpID4gL2Rldi9udWxsIDI+JjE7IHRoZW4gZWNobyAiJCgx KSI7IGVsc2UgZWNobyAiJCgyKSI7IGZpIDsgcm0gLWYgd2lsbF90aGlzX2ZpbGVfcmVhbGx5X2V4 aXN0LnRtcCkKLSAKLSAjIEJlIDY0LWJpdCBpZiBhdCBhbGwgcG9zc2libGUuIEluIGEgY3Jvc3Mt Y29tcGlsaW5nIHNpdHVhdGlvbiwgb25lIG1heQotICMgZG8gIm1ha2UgbTY0PS1tMzIgbGliNjQ9 bGliIiB0byBwcm9kdWNlIDMyLWJpdCBleGVjdXRhYmxlcy4gRE8gTk9UCi0tLSAKLTEuNy4wCi0K ZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDctcGdyZXAuMS5wYXRjaCBiL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwNDctcGdyZXAuMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggN2RmNWQ2OS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDQ3LXBncmVwLjEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTggKzAsMCBAQAotRnJvbSBj NTVmMGZkMGQ3NzU4Y2MxNzBlZjcyZmNlMGQ0YTY2ZDMyMDA5MDZmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4v cC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgot RGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDQ3 LzcwXSBwZ3JlcC4xCi0KLVVzZXMgLkJSIGZvciBzZWUgYWxzbyBzZWN0aW9uICM0Mzc2NzgKLS0t LQotIHBncmVwLjEgfCAgIDk4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25z KCspLCA0MCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3BncmVwLjEgYi9wZ3JlcC4xCi1p bmRleCA5MTUyNzk5Li4yNTdhNmNlIDEwMDY0NAotLS0tIGEvcGdyZXAuMQotKysrIGIvcGdyZXAu MQotQEAgLTIsMzUgKzIsMzkgQEAKLSAuXCIgTGljZW5zZWQgdW5kZXIgdmVyc2lvbiAyIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KLSAuXCIgQ29weXJpZ2h0IDIwMDAgS2pldGls IFRvcmdyaW0gSG9tbWUKLSAuXCIKLS0uVEggUEdSRVAgMSAiSnVuZSAyNSwgMjAwMCIgIkxpbnV4 IiAiTGludXggVXNlcidzIE1hbnVhbCIKLSsuVEggUEdSRVAgMSAiT2N0b2JlciA1LCAyMDA3IiAi TGludXgiICJMaW51eCBVc2VyJ3MgTWFudWFsIgotIC5TSCBOQU1FCi0gcGdyZXAsIHBraWxsIFwt IGxvb2sgdXAgb3Igc2lnbmFsIHByb2Nlc3NlcyBiYXNlZCBvbiBuYW1lIGFuZCBvdGhlciBhdHRy aWJ1dGVzCi0gCi0gLlNIIFNZTk9QU0lTCi0tcGdyZXAgW1wtY2ZsdnhdIFtcLWQgXGZJZGVsaW1p dGVyXGZQXSBbXC1ufFwtb10gW1wtUCBcZklwcGlkXGZQLC4uLl0gW1wtZyBcZklwZ3JwXGZQLC4u Ll0KLS0uYnIKLS0JW1wtcyBcZklzaWRcZlAsLi4uXSBbXC11IFxmSWV1aWRcZlAsLi4uXSBbXC1V IFxmSXVpZFxmUCwuLi5dIFtcLUcgXGZJZ2lkXGZQLC4uLl0KLS0uYnIKLS0JW1wtdCBcZkl0ZXJt XGZQLC4uLl0gW1xmSXBhdHRlcm5cZlBdCi0tCi0tcGtpbGwgW1wtXGZJc2lnbmFsXGZQXSBbXC1m dnhdIFtcLW58XC1vXSBbXC1QIFxmSXBwaWRcZlAsLi4uXSBbXC1nIFxmSXBncnBcZlAsLi4uXQot LS5icgotLQlbXC1zIFxmSXNpZFxmUCwuLi5dIFtcLXUgXGZJZXVpZFxmUCwuLi5dIFtcLVUgXGZJ dWlkXGZQLC4uLl0gW1wtRyBcZklnaWRcZlAsLi4uXQotLS5icgotLQlbXC10IFxmSXRlcm1cZlAs Li4uXSBbXGZJcGF0dGVyblxmUF0KLSsubmEKLStcZkJwZ3JlcFxmUiBbXGZCXC1jZmx2eFxmUl0g W1xmQlwtZFwgXGZJZGVsaW1pdGVyXGZSXSBbXGZCXC1uXGZSfFxmQlwtb1xmUl0gXAotK1tcZkJc LVBcIFxmSXBwaWRcZlIsLi4uXSBbXGZCXC1nXCBcZklwZ3JwXGZSLC4uLl0gW1xmQlwtc1wgXGZJ c2lkXGZSLC4uLl0gXAotK1tcZkJcLXVcIFxmSWV1aWRcZlIsLi4uXSBbXGZCXC1VXCBcZkl1aWRc ZlIsLi4uXSBbXGZCXC1HXCBcZklnaWRcZlIsLi4uXSBcCi0rW1xmQlwtdFwgXGZJdGVybVxmUiwu Li5dIFtcZklwYXR0ZXJuXGZSXQotKwotKy5IUAotK1xmQnBraWxsXGZSIFtcZkJcLVxmSXNpZ25h bFxmUl0gW1xmQlwtZnZ4XGZSXSBbXGZCXC1uXGZSfFxmQlwtb1xmUl0gXAotK1tcZkJcLVBcIFxm SXBwaWRcZlIsLi4uXSBbXGZCXC1nXCBcZklwZ3JwXGZSLC4uLl0gW1xmQlwtc1wgXGZJc2lkXGZS LC4uLl0gXAotK1tcZkJcLXVcIFxmSWV1aWRcZlIsLi4uXSBbXGZCXC1VXCBcZkl1aWRcZlIsLi4u XSBbXGZCXC1HXCBcZklnaWRcZlIsLi4uXSBcCi0rW1xmQlwtdFwgXGZJdGVybVxmUiwuLi5dIFtc ZklwYXR0ZXJuXGZSXQotIAotIC5TSCBERVNDUklQVElPTgotIFxmQnBncmVwXGZQIGxvb2tzIHRo cm91Z2ggdGhlIGN1cnJlbnRseSBydW5uaW5nIHByb2Nlc3NlcyBhbmQgbGlzdHMgdGhlCi0gcHJv Y2VzcyBJRHMgd2hpY2ggbWF0Y2hlcyB0aGUgc2VsZWN0aW9uIGNyaXRlcmlhIHRvIHN0ZG91dC4g IEFsbAotIHRoZSBjcml0ZXJpYSBoYXZlIHRvIG1hdGNoLiAgRm9yIGV4YW1wbGUsCi0gCi0tcGdy ZXAgLXUgcm9vdCBzc2hkCi0rLklQCi0rJCBwZ3JlcCBcLXUgcm9vdCBzc2hkCi0gCi0rLlBQCi0g d2lsbCBvbmx5IGxpc3QgdGhlIHByb2Nlc3NlcyBjYWxsZWQgXGZCc3NoZFxmUCBBTkQgb3duZWQg YnkgXGZCcm9vdFxmUC4KLSBPbiB0aGUgb3RoZXIgaGFuZCwKLSAKLS1wZ3JlcCAtdSByb290LGRh ZW1vbgotKy5JUAotKyQgcGdyZXAgXC11IHJvb3QsZGFlbW9uCi0gCi0rLlBQCi0gd2lsbCBsaXN0 IHRoZSBwcm9jZXNzZXMgb3duZWQgYnkgXGZCcm9vdFxmUCBPUiBcZkJkYWVtb25cZlAuCi0gCi0g XGZCcGtpbGxcZlAgd2lsbCBzZW5kIHRoZSBzcGVjaWZpZWQgc2lnbmFsIChieSBkZWZhdWx0IFxm QlNJR1RFUk1cZlApCi1AQCAtMzgsMTggKzQyLDE4IEBAIHRvIGVhY2ggcHJvY2VzcyBpbnN0ZWFk IG9mIGxpc3RpbmcgdGhlbSBvbiBzdGRvdXQuCi0gCi0gLlNIIE9QVElPTlMKLSAuVFAKLS1cLWMK LStcZkJcLWNcZlIKLSBTdXBwcmVzcyBub3JtYWwgb3V0cHV0OyBpbnN0ZWFkIHByaW50IGEgY291 bnQgb2YgbWF0Y2hpbmcgcHJvY2Vzc2VzLgotIC5UUAotLVwtZCBcZklkZWxpbWl0ZXJcZlAKLStc ZkJcLWQgXGZJZGVsaW1pdGVyXGZQCi0gU2V0cyB0aGUgc3RyaW5nIHVzZWQgdG8gZGVsaW1pdCBl YWNoIHByb2Nlc3MgSUQgaW4gdGhlIG91dHB1dCAoYnkKLSBkZWZhdWx0IGEgbmV3bGluZSkuICAo XGZCcGdyZXBcZlAgb25seS4pCi0gLlRQCi0tXC1mCi0rXGZCXC1mXGZSCi0gVGhlIFxmSXBhdHRl cm5cZlAgaXMgbm9ybWFsbHkgb25seSBtYXRjaGVkIGFnYWluc3QgdGhlIHByb2Nlc3MgbmFtZS4K LS1XaGVuIFwtZiBpcyBzZXQsIHRoZSBmdWxsIGNvbW1hbmQgbGluZSBpcyB1c2VkLgotK1doZW4g XGZCXC1mXGZSIGlzIHNldCwgdGhlIGZ1bGwgY29tbWFuZCBsaW5lIGlzIHVzZWQuCi0gLlRQCi0t XC1nIFxmSXBncnBcZlAsLi4uCi0rXGZCXC1nIFxmSXBncnBcZlAsLi4uCi0gT25seSBtYXRjaCBw cm9jZXNzZXMgaW4gdGhlIHByb2Nlc3MgZ3JvdXAgSURzIGxpc3RlZC4gIFByb2Nlc3MgZ3JvdXAg MAotIGlzIHRyYW5zbGF0ZWQgaW50byBcZkJwZ3JlcFxmUCdzIG9yIFxmQnBraWxsXGZQJ3Mgb3du IHByb2Nlc3MgZ3JvdXAuCi0gLlRQCi1AQCAtNTcsNDAgKzYxLDQwIEBAIGlzIHRyYW5zbGF0ZWQg aW50byBcZkJwZ3JlcFxmUCdzIG9yIFxmQnBraWxsXGZQJ3Mgb3duIHByb2Nlc3MgZ3JvdXAuCi0g T25seSBtYXRjaCBwcm9jZXNzZXMgd2hvc2UgcmVhbCBncm91cCBJRCBpcyBsaXN0ZWQuICBFaXRo ZXIgdGhlCi0gbnVtZXJpY2FsIG9yIHN5bWJvbGljYWwgdmFsdWUgbWF5IGJlIHVzZWQuCi0gLlRQ Ci0tXC1sCi0rXGZCXC1sXGZSCi0gTGlzdCB0aGUgcHJvY2VzcyBuYW1lIGFzIHdlbGwgYXMgdGhl IHByb2Nlc3MgSUQuIChcZkJwZ3JlcFxmUCBvbmx5LikKLSAuVFAKLS1cLW4KLStcZkJcLW5cZlIK LSBTZWxlY3Qgb25seSB0aGUgbmV3ZXN0IChtb3N0IHJlY2VudGx5IHN0YXJ0ZWQpIG9mIHRoZSBt YXRjaGluZwotIHByb2Nlc3Nlcy4KLSAuVFAKLS1cLW8KLStcZkJcLW9cZlIKLSBTZWxlY3Qgb25s eSB0aGUgb2xkZXN0IChsZWFzdCByZWNlbnRseSBzdGFydGVkKSBvZiB0aGUgbWF0Y2hpbmcKLSBw cm9jZXNzZXMuCi0gLlRQCi0tXC1QIFxmSXBwaWRcZlAsLi4uCi0rXGZCXC1QIFxmSXBwaWRcZlAs Li4uCi0gT25seSBtYXRjaCBwcm9jZXNzZXMgd2hvc2UgcGFyZW50IHByb2Nlc3MgSUQgaXMgbGlz dGVkLgotIC5UUAotLVwtcyBcZklzaWRcZlAsLi4uCi0rXGZCXC1zIFxmSXNpZFxmUCwuLi4KLSBP bmx5IG1hdGNoIHByb2Nlc3NlcyB3aG9zZSBwcm9jZXNzIHNlc3Npb24gSUQgaXMgbGlzdGVkLiAg U2Vzc2lvbiBJRCAwCi0gaXMgdHJhbnNsYXRlZCBpbnRvIFxmQnBncmVwXGZQJ3Mgb3IgXGZCcGtp bGxcZlAncyBvd24gc2Vzc2lvbiBJRC4KLSAuVFAKLS1cLXQgXGZJdGVybVxmUCwuLi4KLStcZkJc LXQgXGZJdGVybVxmUCwuLi4KLSBPbmx5IG1hdGNoIHByb2Nlc3NlcyB3aG9zZSBjb250cm9sbGlu ZyB0ZXJtaW5hbCBpcyBsaXN0ZWQuICBUaGUKLSB0ZXJtaW5hbCBuYW1lIHNob3VsZCBiZSBzcGVj aWZpZWQgd2l0aG91dCB0aGUgIi9kZXYvIiBwcmVmaXguCi0gLlRQCi0tXC11IFxmSWV1aWRcZlAs Li4uCi0rXGZCXC11IFxmSWV1aWRcZlAsLi4uCi0gT25seSBtYXRjaCBwcm9jZXNzZXMgd2hvc2Ug ZWZmZWN0aXZlIHVzZXIgSUQgaXMgbGlzdGVkLiAgRWl0aGVyIHRoZQotIG51bWVyaWNhbCBvciBz eW1ib2xpY2FsIHZhbHVlIG1heSBiZSB1c2VkLgotIC5UUAotLVwtVSBcZkl1aWRcZlAsLi4uCi0r XGZCXC1VIFxmSXVpZFxmUCwuLi4KLSBPbmx5IG1hdGNoIHByb2Nlc3NlcyB3aG9zZSByZWFsIHVz ZXIgSUQgaXMgbGlzdGVkLiAgRWl0aGVyIHRoZQotIG51bWVyaWNhbCBvciBzeW1ib2xpY2FsIHZh bHVlIG1heSBiZSB1c2VkLgotIC5UUAotLVwtdgotK1xmQlwtdlxmUgotIE5lZ2F0ZXMgdGhlIG1h dGNoaW5nLgotIC5UUAotLVwteAotK1xmQlwteFxmUgotIE9ubHkgbWF0Y2ggcHJvY2Vzc2VzIHdo b3NlIG5hbWUgKG9yIGNvbW1hbmQgbGluZSBpZiBcLWYgaXMgc3BlY2lmaWVkKQotIFxmQmV4YWN0 bHlcZlAgbWF0Y2ggdGhlIFxmSXBhdHRlcm5cZlAuCi0gLlRQCi1AQCAtMTA3LDMyICsxMTEsNDAg QEAgcHJvY2VzcyBuYW1lcyBvciBjb21tYW5kIGxpbmVzLgotIC5TSCBFWEFNUExFUwotIEV4YW1w bGUgMTogRmluZCB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgXGZCbmFtZWRcZlAgZGFlbW9uOgotIAot LXVuaXgkIHBncmVwIFwtdSByb290IG5hbWVkCi0rLklQCi0rJCBwZ3JlcCBcLXUgcm9vdCBuYW1l ZAotIAotKy5QUAotIEV4YW1wbGUgMjogTWFrZSBcZkJzeXNsb2dcZlAgcmVyZWFkIGl0cyBjb25m aWd1cmF0aW9uIGZpbGU6Ci0gCi0tdW5peCQgcGtpbGwgXC1IVVAgc3lzbG9nZAotKy5JUAotKyQg cGtpbGwgXC1IVVAgc3lzbG9nZAotIAotKy5QUAotIEV4YW1wbGUgMzogR2l2ZSBkZXRhaWxlZCBp bmZvcm1hdGlvbiBvbiBhbGwgXGZCeHRlcm1cZlAgcHJvY2Vzc2VzOgotIAotLXVuaXgkIHBzIFwt ZnAgJChwZ3JlcCBcLWQsIFwteCB4dGVybSkKLSsuSVAKLSskIHBzIFwtZnAgJChwZ3JlcCBcLWQs IFwteCB4dGVybSkKLSAKLSsuUFAKLSBFeGFtcGxlIDQ6IE1ha2UgYWxsIFxmQm5ldHNjYXBlXGZQ IHByb2Nlc3NlcyBydW4gbmljZXI6Ci0gCi0tdW5peCQgcmVuaWNlICs0IGBwZ3JlcCBuZXRzY2Fw ZWAKLSsuSVAKLSskIHJlbmljZSArNCBgcGdyZXAgbmV0c2NhcGVgCi0gCi0gLlNIICJFWElUIFNU QVRVUyIKLSsuUEQgMAotIC5UUAotLS5JICIwIgotKy5JIDAKLSBPbmUgb3IgbW9yZSBwcm9jZXNz ZXMgbWF0Y2hlZCB0aGUgY3JpdGVyaWEuCi0gLlRQCi0tLkkgIjEiCi0rLkkgMQotIE5vIHByb2Nl c3NlcyBtYXRjaGVkLgotIC5UUAotLS5JICIyIgotKy5JIDIKLSBTeW50YXggZXJyb3IgaW4gdGhl IGNvbW1hbmQgbGluZS4KLSAuVFAKLS0uSSAiMyIKLSsuSSAzCi0gRmF0YWwgZXJyb3I6IG91dCBv ZiBtZW1vcnkgZXRjLgotIAotIC5TSCBOT1RFUwotQEAgLTE0NCwxMyArMTU2LDE5IEBAIFRoZSBy dW5uaW5nIFxmQnBncmVwXGZQIG9yIFxmQnBraWxsXGZQIHByb2Nlc3Mgd2lsbCBuZXZlciByZXBv cnQKLSBpdHNlbGYgYXMgYSBtYXRjaC4KLSAKLSAuU0ggQlVHUwotLVRoZSBvcHRpb25zIFwtbiBh bmQgXC1vIGFuZCBcLXYgY2FuIG5vdCBiZSBjb21iaW5lZC4gIExldCBtZSBrbm93IGlmCi0teW91 IG5lZWQgdG8gZG8gdGhpcy4KLStUaGUgb3B0aW9ucyBcZkJcLW5cZlAgYW5kIFxmQlwtb1xmUCBh bmQgXGZCXC12XGZQIGNhbiBub3QgYmUgY29tYmluZWQuCi0rTGV0IG1lIGtub3cgaWYgeW91IG5l ZWQgdG8gZG8gdGhpcy4KLSAKLSBEZWZ1bmN0IHByb2Nlc3NlcyBhcmUgcmVwb3J0ZWQuCi0gCi0g LlNIICJTRUUgQUxTTyIKLS1wcygxKSByZWdleCg3KSBzaWduYWwoNykga2lsbGFsbCgxKSBza2ls bCgxKSBraWxsKDEpIGtpbGwoMikKLSsuQlIgcHMgKDEpLAotKy5CUiByZWdleCAoNyksCi0rLkJS IHNpZ25hbCAoNyksCi0rLkJSIGtpbGxhbGwgKDEpLAotKy5CUiBza2lsbCAoMSksCi0rLkJSIGtp bGwgKDEpLAotKy5CUiBraWxsICgyKQotIAotIC5TSCBTVEFOREFSRFMKLSBcZkJwa2lsbFxmUCBh bmQgXGZCcGdyZXBcZlAgd2VyZSBpbnRyb2R1Y2VkIGluIFN1bidzIFNvbGFyaXMgNy4gIFRoaXMK LS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0OC1wc19z aXplX3N6LnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0OC1wc19zaXplX3N6LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzVjNzMyLi4wMDAwMDAwCi0tLSBhL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwNDgtcHNfc2l6ZV9zei5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDQwICswLDAgQEAKLUZyb20gOTQxYzhiZWEyMTMzYTkxNTVkZjZmZGRiMzY2NmQ1MjhjYWIy MDM0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFu Lm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIu Z3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAx MDAKLVN1YmplY3Q6IFtQQVRDSCA0OC83MF0gcHNfc2l6ZV9zegotCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0K LSBwcy9vdXRwdXQuYyB8ICAgIDIgKy0KLSBwcy9wcy4xICAgICB8ICAgIDIgKy0KLSAyIGZpbGVz IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3BzL291dHB1dC5jIGIvcHMvb3V0cHV0LmMKLWluZGV4IDFhMTk2ZmYuLmY5YTI5Y2UgMTAwNjQ0 Ci0tLS0gYS9wcy9vdXRwdXQuYwotKysrIGIvcHMvb3V0cHV0LmMKLUBAIC0xNTIyLDcgKzE1MjIs NyBAQCBzdGF0aWMgY29uc3QgZm9ybWF0X3N0cnVjdCBmb3JtYXRfYXJyYXlbXSA9IHsKLSB7InNp Z2NhdGNoIiwgICJDQVVHSFQiLCAgcHJfc2lnY2F0Y2gsIHNyX25vcCwgICAgIDksICAgMCwgICAg WFhYLCBUT3xTSUdOQUx9LCAvKmNhdWdodCovCi0geyJzaWdpZ25vcmUiLCAiSUdOT1JFRCIsIHBy X3NpZ2lnbm9yZSxzcl9ub3AsICAgICA5LCAgIDAsICAgIFhYWCwgVE98U0lHTkFMfSwgLyppZ25v cmVkKi8KLSB7InNpZ21hc2siLCAgICJCTE9DS0VEIiwgcHJfc2lnbWFzaywgIHNyX25vcCwgICAg IDksICAgMCwgICAgWFhYLCBUT3xTSUdOQUx9LCAvKmJsb2NrZWQqLwotLXsic2l6ZSIsICAgICAg IlNaIiwgICAgICBwcl9zd2FwYWJsZSwgc3Jfc3dhcGFibGUsIDUsICAwLCAgICBTQ08sIFBPfFJJ R0hUfSwKLSt7InNpemUiLCAgICAgICJTSVpFIiwgICAgICBwcl9zd2FwYWJsZSwgc3Jfc3dhcGFi bGUsIDUsICAwLCAgICBTQ08sIFBPfFJJR0hUfSwKLSB7InNsIiwgICAgICAgICJTTCIsICAgICAg cHJfbm9wLCAgICAgIHNyX25vcCwgICAgIDMsICAgMCwgICAgWFhYLCBBTnxSSUdIVH0sCi0geyJz cGlkIiwgICAgICAiU1BJRCIsICAgIHByX3RocmVhZCwgICBzcl90aWQsICAgICA1LCAgIDAsICAg IFNHSSwgVE98UElETUFYfFJJR0hUfSwKLSB7InN0YWNrcCIsICAgICJTVEFDS1AiLCAgcHJfc3Rh Y2twLCAgIHNyX3N0YXJ0X3N0YWNrLCA4LCAwLCAgTE5YLCBQT3xSSUdIVH0sIC8qc3RhcnRfc3Rh Y2sqLwotZGlmZiAtLWdpdCBhL3BzL3BzLjEgYi9wcy9wcy4xCi1pbmRleCA5MGZhYmJjLi5hZDM0 N2FkIDEwMDY0NAotLS0tIGEvcHMvcHMuMQotKysrIGIvcHMvcHMuMQotQEAgLTEyNTQsNyArMTI1 NCw3IEBAIHNpZ21hc2sJQkxPQ0tFRAlUewotIHNlZVwgXGZCYmxvY2tlZFxmUi4gIChhbGlhc1wg XGZCYmxvY2tlZFxmUixcIFxmQnNpZ19ibG9ja1xmUikuCi0gVH0KLSAKLS1zaXplCVNaCVR7Ci0r c2l6ZQlTSVpFCVR7Ci0gYXBwcm94aW1hdGUgYW1vdW50IG9mIHN3YXAgc3BhY2UgdGhhdCB3b3Vs ZCBiZSByZXF1aXJlZAotIGlmIHRoZSBwcm9jZXNzIHdlcmUgdG8gZGlydHkgYWxsIHdyaXRhYmxl IHBhZ2VzIGFuZCB0aGVuCi0gYmUgc3dhcHBlZCBvdXQuCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdp dCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDktdG9wX21pbnRpbWUucGF0Y2ggYi9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDQ5LXRvcF9taW50aW1lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA5OTA5ZDNiLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAw NDktdG9wX21pbnRpbWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1Gcm9t IGNmOTllOWJiMDA0ZjZjNmViNjQ5ZDM0YmVhODIyMWJjNzUwMWQxMDYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFp bi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+ Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0gg NDkvNzBdIHRvcF9taW50aW1lCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHRvcC5jIHwgICAgMyArKy0K LSAxIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3RvcC5jIGIvdG9wLmMKLWluZGV4IDZjYzFhOTMuLmY2ODgwYjUgMTAwNjQ0Ci0t LS0gYS90b3AuYwotKysrIGIvdG9wLmMKLUBAIC0yNTUyLDcgKzI1NTIsOCBAQCBzdGF0aWMgdm9p ZCBkb19rZXkgKHVuc2lnbmVkIGMpCi0gICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgZmxv YXQgdG1wID0KLSAgICAgICAgICAgICAgICBnZXRfZmxvYXQoZm10bWsoIkNoYW5nZSBkZWxheSBm cm9tICUuMWYgdG8iLCBSYy5kZWxheV90aW1lKSk7Ci0tICAgICAgICAgICAgaWYgKHRtcCA+IC0x KSBSYy5kZWxheV90aW1lID0gdG1wOwotKyAgICAgICAgICAgIGlmICh0bXAgPT0gMC4wKSBzaG93 X21zZygiXGFOb3QgdmFsaWQiKTsKLSsgICAgICAgICAgICBlbHNlIGlmICh0bXAgPiAwKSBSYy5k ZWxheV90aW1lID0gdG1wOwotICAgICAgICAgIH0KLSAgICAgICAgICBicmVhazsKLSAKLS0tIAot MS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1MC12bXN0YXRfaGVh ZGVycy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTAtdm1zdGF0X2hlYWRlcnMucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0MzRkMjQuLjAwMDAwMDAKLS0tIGEv cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1MC12bXN0YXRfaGVhZGVycy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDE1OSArMCwwIEBACi1Gcm9tIGE0NTAxM2E3NDlmMTQ0ODE5YTlhMTBjYjViNWJi MjQ1NWNhMDQ3MDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRl LmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJp YW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4 OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNTAvNzBdIHZtc3RhdF9oZWFkZXJzCi0KLWdldG9w dCByZXBsYWNlbWVudAotQXV0aG9yOiBMaXUgWGluZyA8bGl1eGluZ0Bjbi5mdWppdHN1LmNvbT4K LUF1dGhvcjogTWljaGFlbCBUb2thcmV2IDxtanRAY29ycGl0LnJ1PgotQnVnLURlYmlhbjogaHR0 cDovL2J1Z3MuZGViaWFuLm9yZy80MzY4MDUKLUJ1Zy1EZWJpYW46IGh0dHA6Ly9idWdzLmRlYmlh bi5vcmcvNDA4MDg4Ci0tLS0KLSB2bXN0YXQuYyB8ICAgODAgKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdl ZCwgMzQgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS92bXN0 YXQuYyBiL3Ztc3RhdC5jCi1pbmRleCBmMDIyOTI4Li5lMGQzYzIzIDEwMDY0NAotLS0tIGEvdm1z dGF0LmMKLSsrKyBiL3Ztc3RhdC5jCi1AQCAtMjksMTQgKzI5LDE1IEBACi0gI2luY2x1ZGUgInBy b2Mvc3lzaW5mby5oIgotICNpbmNsdWRlICJwcm9jL3ZlcnNpb24uaCIKLSAKLS1zdGF0aWMgdW5z aWduZWQgbG9uZyBkYXRhVW5pdD0xMDI0OwotLXN0YXRpYyBjaGFyIHN6RGF0YVVuaXQgWzE2XTsK LSAjZGVmaW5lIFVOSVRfQiAgICAgICAgMQotICNkZWZpbmUgVU5JVF9rICAgICAgICAxMDAwCi0g I2RlZmluZSBVTklUX0sgICAgICAgIDEwMjQKLSAjZGVmaW5lIFVOSVRfbSAgICAgICAgMTAwMDAw MAotICNkZWZpbmUgVU5JVF9NICAgICAgICAxMDQ4NTc2Ci0gCi0rc3RhdGljIHVuc2lnbmVkIGxv bmcgZGF0YVVuaXQ9VU5JVF9LOwotK3N0YXRpYyBjaGFyIHN6RGF0YVVuaXRbM10gPSAiSyI7Ci0r Ci0gI2RlZmluZSBWTVNUQVQgICAgICAgIDAKLSAjZGVmaW5lIERJU0tTVEFUICAgICAgMHgwMDAw MDAwMQotICNkZWZpbmUgVk1TVU1TVEFUICAgICAweDAwMDAwMDAyCi1AQCAtMzU0LDYgKzM1NSw3 IEBAIHN0YXRpYyB2b2lkIGRpc2tmb3JtYXQodm9pZCl7Ci0gICBpZiAoKGZEaXNrc3RhdD1mb3Bl bigiL3Byb2MvZGlza3N0YXRzIiwgInJiIikpKXsKLSAgICAgZmNsb3NlKGZEaXNrc3RhdCk7Ci0g ICAgIG5kaXNrcz1nZXRkaXNrc3RhdCgmZGlza3MsJnBhcnRpdGlvbnMpOwotKyAgICBpZiAoIW1v cmVoZWFkZXJzKSBkaXNraGVhZGVyKCk7Ci0gICAgIGZvcihrPTA7IGs8bmRpc2tzOyBrKyspewot ICAgICAgIGlmIChtb3JlaGVhZGVycyAmJiAoKGslaGVpZ2h0KT09MCkpIGRpc2toZWFkZXIoKTsK LSAgICAgICBwcmludGYoZm9ybWF0LAotQEAgLTQyNCw2ICs0MjYsNyBAQCBzdGF0aWMgdm9pZCBz bGFiZm9ybWF0ICh2b2lkKXsKLSAgICAgcmV0dXJuOwotICAgfQotIAotKyAgaWYgKCFtb3JlaGVh ZGVycykgc2xhYmhlYWRlcigpOwotICAgblNsYWIgPSBnZXRzbGFiaW5mbygmc2xhYnMpOwotICAg Zm9yKGs9MDsgazxuU2xhYjsgaysrKXsKLSAgICAgaWYgKG1vcmVoZWFkZXJzICYmICgoayVoZWln aHQpPT0wKSkgc2xhYmhlYWRlcigpOwotQEAgLTU4MiwxMiArNTg1LDEwIEBAIHN0YXRpYyBpbnQg d2luaGkodm9pZCkgewotIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSAKLSBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKSB7Ci0tICBjaGFyIHBhcnRpdGlvblsxNl07Ci0tICBhcmdjPTA7IC8q IHJlZGVmaW5lZCBhcyBudW1iZXIgb2YgaW50ZWdlciBhcmd1bWVudHMgKi8KLS0gIGZvciAoYXJn disrOyphcmd2O2FyZ3YrKykgewotLSAgICBpZiAoJy0nID09KCoqYXJndikpIHsKLS0gICAgICBz d2l0Y2ggKCooKysoKmFyZ3YpKSkgewotLSAgICAKLSsgIGNoYXIgKnBhcnRpdGlvbiA9IE5VTEw7 Ci0rICBpbnQgYzsKLSsKLSsgIHdoaWxlKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJWZGFmbURu cDpTOnMiKSkgIT0gRU9GKSBzd2l0Y2goYykgewotICAgICAgIGNhc2UgJ1YnOgotIAlkaXNwbGF5 X3ZlcnNpb24oKTsKLSAJZXhpdCgwKTsKLUBAIC02MDMsNyArNjA0LDcgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotIAlmb3JrX2Zvcm1hdCgpOwotICAgICAgICAgZXhpdCgw KTsKLSAgICAgICBjYXNlICdtJzoKLS0gICAgICAgIHN0YXRNb2RlIHw9IFNMQUJTVEFUOyAJCi0r ICAgICAgICBzdGF0TW9kZSB8PSBTTEFCU1RBVDsKLSAJYnJlYWs7Ci0gICAgICAgY2FzZSAnRCc6 Ci0gICAgICAgICBzdGF0TW9kZSB8PSBESVNLU1VNU1RBVDsgCQotQEAgLTYxNCw1MyArNjE1LDQw IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSAgICAgICAgIGJyZWFrOwot ICAgICAgIGNhc2UgJ3AnOgotICAgICAgICAgc3RhdE1vZGUgfD0gUEFSVElUSU9OU1RBVDsKLS0J aWYgKGFyZ3ZbMV0pewotLQkgIGNoYXIgKmNwID0gKisrYXJndjsKLS0JICBpZighbWVtY21wKGNw LCIvZGV2LyIsNSkpIGNwICs9IDU7Ci0tCSAgc25wcmludGYocGFydGl0aW9uLCBzaXplb2YgcGFy dGl0aW9uLCAiJXMiLCBjcCk7Ci0tCX1lbHNlewotLQkgIGZwcmludGYoc3RkZXJyLCAiLXAgcmVx dWlyZXMgYW4gYXJndW1lbnRcbiIpOwotLSAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Ci0t CX0KLSsJcGFydGl0aW9uID0gb3B0YXJnOwotKwlpZiAobWVtY21wKHBhcnRpdGlvbiwgIi9kZXYv IiwgNSkgPT0gMCkgcGFydGl0aW9uICs9IDU7Ci0gICAgICAgICBicmVhazsKLSAgICAgICBjYXNl ICdTJzoKLS0JaWYgKGFyZ3ZbMV0pewotLQkgICAgICArK2FyZ3Y7Ci0tCSAJaWYgKCFzdHJjbXAo KmFyZ3YsICJrIikpIGRhdGFVbml0PVVOSVRfazsKLS0JIAllbHNlIGlmICghc3RyY21wKCphcmd2 LCAiSyIpKSBkYXRhVW5pdD1VTklUX0s7Ci0tCSAJZWxzZSBpZiAoIXN0cmNtcCgqYXJndiwgIm0i KSkgZGF0YVVuaXQ9VU5JVF9tOwotLQkgCWVsc2UgaWYgKCFzdHJjbXAoKmFyZ3YsICJNIikpIGRh dGFVbml0PVVOSVRfTTsKLS0JCWVsc2Uge2ZwcmludGYoc3RkZXJyLCAiLVMgcmVxdWlyZXMgaywg SywgbSBvciBNIChkZWZhdWx0IGlzIGtiKVxuIik7Ci0tCQkgICAgIGV4aXQoRVhJVF9GQUlMVVJF KTsKLS0JCX0KLS0JCXN0cmNweShzekRhdGFVbml0LCAqYXJndik7Ci0tCSB9ZWxzZSB7ZnByaW50 ZihzdGRlcnIsICItUyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIik7Ci0tCQlleGl0KEVYSVRfRkFJ TFVSRSk7Ci0tCSB9Ci0rCXN3aXRjaChvcHRhcmdbMF0pIHsKLSsJY2FzZSAnYic6IGNhc2UgJ0In OiBkYXRhVW5pdCA9IFVOSVRfQjsgYnJlYWs7Ci0rCWNhc2UgJ2snOiBkYXRhVW5pdCA9IFVOSVRf azsgYnJlYWs7Ci0rCWNhc2UgJ0snOiBkYXRhVW5pdCA9IFVOSVRfSzsgYnJlYWs7Ci0rCWNhc2Ug J20nOiBkYXRhVW5pdCA9IFVOSVRfbTsgYnJlYWs7Ci0rCWNhc2UgJ00nOiBkYXRhVW5pdCA9IFVO SVRfTTsgYnJlYWs7Ci0rCWRlZmF1bHQ6Ci0rCSAgZnByaW50ZihzdGRlcnIsICItUyByZXF1aXJl cyBrLCBLLCBtIG9yIE0gKGRlZmF1bHQgaXMga2IpXG4iKTsKLSsJICBleGl0KEVYSVRfRkFJTFVS RSk7Ci0rCX0KLSsJc3pEYXRhVW5pdFswXSA9IG9wdGFyZ1swXTsKLSAJYnJlYWs7Ci0gICAgICAg Y2FzZSAncyc6Ci0tICAgICAgICBzdGF0TW9kZSB8PSBWTVNVTVNUQVQ7IAkKLSsgICAgICAgIHN0 YXRNb2RlIHw9IFZNU1VNU1RBVDsKLSAJYnJlYWs7Ci0gICAgICAgZGVmYXVsdDoKLSAJLyogbm8g b3RoZXIgYWd1bWVudHMgZGVmaW5lZCB5ZXQuICovCi0gCXVzYWdlKCk7Ci0tICAgICAgfQotLSAg IH1lbHNlewotLSAgICAgIGFyZ2MrKzsKLS0gICAgICBzd2l0Y2ggKGFyZ2MpIHsKLS0gICAgICBj YXNlIDE6Ci0tICAgICAgICBpZiAoKHNsZWVwX3RpbWUgPSBhdG9pKCphcmd2KSkgPT0gMCkKLSsg IH0KLSsKLSsgIGlmIChvcHRpbmQgPCBhcmdjKSB7Ci0rICAgIGlmICgoc2xlZXBfdGltZSA9IGF0 b2koYXJndltvcHRpbmQrK10pKSA9PSAwKQotICAgICAgICAgIHVzYWdlKCk7Ci0tICAgICAgIG51 bV91cGRhdGVzID0gVUxPTkdfTUFYOwotLSAgICAgICBicmVhazsKLS0gICAgICBjYXNlIDI6Ci0t ICAgICAgICBudW1fdXBkYXRlcyA9IGF0b2woKmFyZ3YpOwotLSAgICAgICBicmVhazsKLS0gICAg ICBkZWZhdWx0OgotLSAgICAgICB1c2FnZSgpOwotLSAgICAgIH0gLyogc3dpdGNoICovCi0rICAg IG51bV91cGRhdGVzID0gVUxPTkdfTUFYOwotICAgfQotLX0KLSsgIGlmIChvcHRpbmQgPCBhcmdj KQotKyAgICBudW1fdXBkYXRlcyA9IGF0b2woYXJndltvcHRpbmQrK10pOwotKyAgaWYgKG9wdGlu ZCA8IGFyZ2MpCi0rICAgICB1c2FnZSgpOwotKwotICAgaWYgKG1vcmVoZWFkZXJzKSB7Ci0gICAg ICAgaW50IHRtcD13aW5oaSgpLTM7Ci0gICAgICAgaGVpZ2h0PSgodG1wPjApP3RtcDoyMik7Ci0t LSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTEtcGdyZXBf dXNhZ2VfZXhpdGNvZGUucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDUxLXBncmVwX3Vz YWdlX2V4aXRjb2RlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWU2YWFl Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTEtcGdyZXBfdXNhZ2VfZXhp dGNvZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1Gcm9tIGE4MzQ2ZGM3 YjRkMWRhMDQ5MjhiMjg4NWE1YTk1NjQyMzRlYjAyNWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nw cy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBG cmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNTEvNzBdIHBn cmVwX3VzYWdlX2V4aXRjb2RlCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHBncmVwLmMgfCAgICAyICst Ci0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9wZ3JlcC5jIGIvcGdyZXAuYwotaW5kZXggMzNjYmVkOC4uMzZlY2NiNiAxMDA2 NDQKLS0tLSBhL3BncmVwLmMKLSsrKyBiL3BncmVwLmMKLUBAIC02ODEsNyArNjgxLDcgQEAgc3Rh dGljIHZvaWQgcGFyc2Vfb3B0cyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIC8vCQljYXNlICd6 JzogICAvLyBTb2xhcmlzOiBtYXRjaCBieSB6b25lIElECi0gLy8JCQlicmVhazsKLSAJCWNhc2Ug Jz8nOgotLQkJCXVzYWdlIChvcHQpOwotKwkJCXVzYWdlIChvcHRvcHQ/b3B0b3B0Om9wdCk7Ci0g CQkJYnJlYWs7Ci0gCQl9Ci0gCX0KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDA1Mi1wc18xX29wdGlvbnMucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDUyLXBzXzFfb3B0aW9ucy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MmViZDBjMC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDUyLXBzXzFfb3B0 aW9ucy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU1NyArMCwwIEBACi1Gcm9tIDE5YjJkMTgy YTRiNzVlZGFlYjljOGVlMTYzZDdhYmIzMGE1Y2QwZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nw cy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBG cmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNTIvNzBdIHBz XzFfb3B0aW9ucwotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSBwcy9wcy4xIHwgIDMzNSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAx IGZpbGVzIGNoYW5nZWQsIDE2OSBpbnNlcnRpb25zKCspLCAxNjYgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9wcy9wcy4xIGIvcHMvcHMuMQotaW5kZXggYWQzNDdhZC4uNmJhMzFkYyAxMDA2 NDQKLS0tLSBhL3BzL3BzLjEKLSsrKyBiL3BzL3BzLjEKLUBAIC0xNTgsMjAgKzE1OCw2IEBAIFBy aW50IG9ubHkgdGhlIG5hbWUgb2YgUElEIDQyOgotIC5QUAotIC5cIiAiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi IiIKLSAuU0ggIlNJTVBMRSBQUk9DRVNTIFNFTEVDVElPTiIKLS0ub3B0IFwtQQotLVNlbGVjdCBh bGwgcHJvY2Vzc2VzLiAgSWRlbnRpY2FsIHRvIFxmQlwtZVxmUi4KLS0KLS0ub3B0IFwtTgotLVNl bGVjdCBhbGwgcHJvY2Vzc2VzIGV4Y2VwdCB0aG9zZSB0aGF0IGZ1bGZpbGwgdGhlIHNwZWNpZmll ZCBjb25kaXRpb25zLgotLShuZWdhdGVzIHRoZSBzZWxlY3Rpb24pIElkZW50aWNhbCB0byBcZkJc LVwtZGVzZWxlY3RcZlIuCi0tCi0tLm9wdCBUCi0tU2VsZWN0IGFsbCBwcm9jZXNzZXMgYXNzb2Np YXRlZCB3aXRoIHRoaXMgdGVybWluYWwuICBJZGVudGljYWwgdG8gdGhlCi0tXGZCdFxmUiBvcHRp b24gd2l0aG91dCBhbnkgYXJndW1lbnQuCi0tCi0tLm9wdCBcLWEKLS1TZWxlY3QgYWxsIHByb2Nl c3NlcyBleGNlcHQgYm90aCBzZXNzaW9uIGxlYWRlcnMgKHNlZSBcZklnZXRzaWRcZlIoMikpIGFu ZAotLXByb2Nlc3NlcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgdGVybWluYWwuCi0gCi0gLm9wdCBh Ci0gTGlmdCB0aGUgQlNEXC1zdHlsZSAib25seSB5b3Vyc2VsZiIgcmVzdHJpY3Rpb24sIHdoaWNo IGlzIGltcG9zZWQgdXBvbgotQEAgLTE4Myw5ICsxNjksMjAgQEAgQW4gYWx0ZXJuYXRlIGRlc2Ny aXB0aW9uIGlzIHRoYXQgdGhpcyBvcHRpb24gY2F1c2VzIFxmQnBzXGZSIHRvCi0gbGlzdCBhbGwg cHJvY2Vzc2VzIHdpdGggYSB0ZXJtaW5hbCAodHR5KSwKLSBvciB0byBsaXN0IGFsbCBwcm9jZXNz ZXMgd2hlbiB1c2VkIHRvZ2V0aGVyIHdpdGggdGhlIFxmQnhcZlIgb3B0aW9uLgotIAotKy5vcHQg XC1BCi0rU2VsZWN0IGFsbCBwcm9jZXNzZXMuICBJZGVudGljYWwgdG8gXGZCXC1lXGZSLgotKwot Ky5vcHQgXC1hCi0rU2VsZWN0IGFsbCBwcm9jZXNzZXMgZXhjZXB0IGJvdGggc2Vzc2lvbiBsZWFk ZXJzIChzZWUgXGZJZ2V0c2lkXGZSKDIpKSBhbmQKLStwcm9jZXNzZXMgbm90IGFzc29jaWF0ZWQg d2l0aCBhIHRlcm1pbmFsLgotKwotIC5vcHQgXC1kCi0gU2VsZWN0IGFsbCBwcm9jZXNzZXMgZXhj ZXB0IHNlc3Npb24gbGVhZGVycy4KLSAKLSsub3B0IFwtXC1kZXNlbGVjdAotK1NlbGVjdCBhbGwg cHJvY2Vzc2VzIGV4Y2VwdCB0aG9zZSB0aGF0IGZ1bGZpbGwgdGhlIHNwZWNpZmllZCBjb25kaXRp b25zLgotKyhuZWdhdGVzIHRoZSBzZWxlY3Rpb24pIElkZW50aWNhbCB0byBcZkJcLU5cZlIuCi0r Ci0gLm9wdCBcLWUKLSBTZWxlY3QgYWxsIHByb2Nlc3Nlcy4gIElkZW50aWNhbCB0byBcZkJcLUFc ZlIuCi0gCi1AQCAtMTk0LDExICsxOTEsMjAgQEAgU2VsZWN0IGFsbCBwcm9jZXNzZXMuICBJZGVu dGljYWwgdG8gXGZCXC1BXGZSLgotIC5cIiBhZGQgaW4gdGhlIGdyb3VwIGxlYWRlcnMgLS0gYXQg bGVhc3QgYWNjb3JkaW5nIHRvIHRoZSBTdW5PUyA0Ci0gLlwiIG1hbiBwYWdlIG9uIHRoZSBGcmVl QlNEIHNpdGUuIFVoIG9oLiBJIHRoaW5rIEkgaGFkIHRlc3RlZCBTdW5PUwotIC5cIiB0aG91Z2gs IHNvIG1heWJlIHRoZSBjb2RlIGlzIGNvcnJlY3QuCi0rCi0gLm9wdCBnCi0gUmVhbGx5IGFsbCwg ZXZlbiBzZXNzaW9uIGxlYWRlcnMuICBUaGlzIGZsYWcgaXMgb2Jzb2xldGUgYW5kIG1heSBiZQot IGRpc2NvbnRpbnVlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiBJdCBpcyBub3JtYWxseSBpbXBsaWVk IGJ5IHRoZSBcZkJhXGZSIGZsYWcsCi0gYW5kIGlzIG9ubHkgdXNlZnVsIHdoZW4gb3BlcmF0aW5n IGluIHRoZSBzdW5vczQgcGVyc29uYWxpdHkuCi0gCi0rLm9wdCBcLU4KLStTZWxlY3QgYWxsIHBy b2Nlc3NlcyBleGNlcHQgdGhvc2UgdGhhdCBmdWxmaWxsIHRoZSBzcGVjaWZpZWQgY29uZGl0aW9u cy4KLSsobmVnYXRlcyB0aGUgc2VsZWN0aW9uKSBJZGVudGljYWwgdG8gXGZCXC1cLWRlc2VsZWN0 XGZSLgotKwotKy5vcHQgVAotK1NlbGVjdCBhbGwgcHJvY2Vzc2VzIGFzc29jaWF0ZWQgd2l0aCB0 aGlzIHRlcm1pbmFsLiAgSWRlbnRpY2FsIHRvIHRoZQotK1xmQnRcZlIgb3B0aW9uIHdpdGhvdXQg YW55IGFyZ3VtZW50LgotKwotIC5vcHQgcgotIFJlc3RyaWN0IHRoZSBzZWxlY3Rpb24gdG8gb25s eSBydW5uaW5nIHByb2Nlc3Nlcy4KLSAKLUBAIC0yMTIsMTAgKzIxOCw2IEBAIEFuIGFsdGVybmF0 ZSBkZXNjcmlwdGlvbiBpcyB0aGF0IHRoaXMgb3B0aW9uIGNhdXNlcyBcZkJwc1xmUiB0bwotIGxp c3QgYWxsIHByb2Nlc3NlcyBvd25lZCBieSB5b3UgKHNhbWUgRVVJRCBhcyBcZkJwc1xmUiksCi0g b3IgdG8gbGlzdCBhbGwgcHJvY2Vzc2VzIHdoZW4gdXNlZCB0b2dldGhlciB3aXRoIHRoZSBcZkJh XGZSIG9wdGlvbi4KLSAKLS0ub3B0IFwtXC1kZXNlbGVjdAotLVNlbGVjdCBhbGwgcHJvY2Vzc2Vz IGV4Y2VwdCB0aG9zZSB0aGF0IGZ1bGZpbGwgdGhlIHNwZWNpZmllZCBjb25kaXRpb25zLgotLShu ZWdhdGVzIHRoZSBzZWxlY3Rpb24pIElkZW50aWNhbCB0byBcZkJcLU5cZlIuCi0tCi0gLlwiICIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIgotIC5QRAotIC5QUAotQEAgLTIyNCw2ICsyMjYsMTMgQEAgVGhlc2Ug b3B0aW9ucyBhY2NlcHQgYSBzaW5nbGUgYXJndW1lbnQgaW4gdGhlIGZvcm0gb2YgYSBibGFua1wt c2VwYXJhdGVkCi0gb3IgY29tbWFcLXNlcGFyYXRlZCBsaXN0LiAgVGhleSBjYW4gYmUgdXNlZCBt dWx0aXBsZSB0aW1lcy4KLSBGb3JcIGV4YW1wbGU6XCBcZkJwc1wgXC1wXCAiMVwgMiJcIFwtcFwg Myw0XGZSCi0gLlAKLSsKLSsub3B0IFwtXGZJMTIzXGZSCi0rSWRlbnRpY2FsIHRvIFxmQlwtXC1z aWRcIFxmSTEyM1xmUi4KLSsKLSsub3B0IFxmSTEyM1xmUgotK0lkZW50aWNhbCB0byBcZkJcLVwt cGlkXCBcZkkxMjNcZlIuCi0rCi0gLm9wdCBcLUMgXCBjbWRsaXN0Ci0gU2VsZWN0IGJ5IGNvbW1h bmQgbmFtZS4KLSAuYnIKLUBAIC0yMzcsMjQgKzI0Niw2IEBAIFRoaXMgc2VsZWN0cyB0aGUgcHJv Y2Vzc2VzIHdob3NlIHJlYWwgZ3JvdXAgbmFtZSBvciBJRCBpcyBpbiB0aGUKLSBcZklncnBsaXN0 XGZSIGxpc3QuICBUaGUgcmVhbCBncm91cCBJRCBpZGVudGlmaWVzIHRoZSBncm91cCBvZiB0aGUg dXNlcgotIHdobyBjcmVhdGVkIHRoZSBwcm9jZXNzLCBzZWUgXGZJZ2V0Z2lkXGZSKDIpLgotIAot LS5vcHQgVSBcIHVzZXJsaXN0Ci0tU2VsZWN0IGJ5IGVmZmVjdGl2ZSB1c2VyIElEIChFVUlEKSBv ciBuYW1lLgotLS5icgotLVRoaXMgc2VsZWN0cyB0aGUgcHJvY2Vzc2VzIHdob3NlIGVmZmVjdGl2 ZSB1c2VyIG5hbWUKLS1vciBJRCBpcyBpbiBcZkl1c2VybGlzdFxmUi4KLS1UaGUgZWZmZWN0aXZl IHVzZXJcIElEIGRlc2NyaWJlcyB0aGUgdXNlciB3aG9zZSBmaWxlCi0tYWNjZXNzIHBlcm1pc3Np b25zIGFyZSB1c2VkIGJ5IHRoZSBwcm9jZXNzCi0tKHNlZVwgXGZJZ2V0ZXVpZFxmUigyKSkuCi0t SWRlbnRpY2FsIHRvIFxmQlwtdVxmUiBhbmRcIFxmQlwtXC11c2VyXGZSLgotLQotLS5vcHQgXC1V IFwgdXNlcmxpc3QKLS1zZWxlY3QgYnkgcmVhbCB1c2VyIElEIChSVUlEKSBvciBuYW1lLgotLS5i cgotLUl0IHNlbGVjdHMgdGhlIHByb2Nlc3NlcyB3aG9zZSByZWFsIHVzZXIgbmFtZSBvciBJRCBp cyBpbiB0aGUKLS1cZkl1c2VybGlzdFxmUiBsaXN0LgotLVRoZSByZWFsIHVzZXIgSUQgaWRlbnRp ZmllcyB0aGUgdXNlciB3aG8gY3JlYXRlZCB0aGUgcHJvY2VzcywKLS1zZWVcIFxmSWdldHVpZFxm UigyKS4KLS0KLSAub3B0IFwtZyBcIGdycGxpc3QKLSBTZWxlY3QgYnkgc2Vzc2lvbiBPUiBieSBl ZmZlY3RpdmUgZ3JvdXAgbmFtZS4KLSAuYnIKLUBAIC0yNjYsNiArMjU3LDE3IEBAIGlzIGNvbXBs ZXRlbHkgbnVtZXJpYyAoYXNcIHNlc3Npb25zXCBhcmUpLgotIEdyb3VwIElEIG51bWJlcnMgd2ls bCB3b3JrIG9ubHkgd2hlbiBzb21lIGdyb3VwIG5hbWVzIGFyZSBhbHNvIHNwZWNpZmllZC4KLSBT ZWUgdGhlIFxmQlwtc1xmUiBhbmQgXGZCXC1cLWdyb3VwXGZSIG9wdGlvbnMuCi0gCi0rLm9wdCBc LVwtR3JvdXAgXCBncnBsaXN0Ci0rU2VsZWN0IGJ5IHJlYWwgZ3JvdXAgSUQgKFJHSUQpIG9yIG5h bWUuICBJZGVudGljYWwgdG8gXGZCXC1HXGZSLgotKwotKy5vcHQgXC1cLWdyb3VwIFwgZ3JwbGlz dAotK1NlbGVjdCBieSBlZmZlY3RpdmUgZ3JvdXAgSUQgKEVHSUQpIG9yIG5hbWUuCi0rLmJyCi0r VGhpcyBzZWxlY3RzIHRoZSBwcm9jZXNzZXMgd2hvc2UgZWZmZWN0aXZlIGdyb3VwIG5hbWUgb3Ig SUQgaXMgaW4KLStcZklncm91cGxpc3RcZlIuICBUaGUgZWZmZWN0aXZlIGdyb3VwIElEIGRlc2Ny aWJlcyB0aGUgZ3JvdXAgd2hvc2UgZmlsZQotK2FjY2VzcyBwZXJtaXNzaW9ucyBhcmUgdXNlZCBi eSB0aGUgcHJvY2VzcyAoc2VlXCBcZklnZXRldWlkXGZSKDIpKS4KLStUaGUgXGZCXC1nXGZSIG9w dGlvbiBpcyBvZnRlbiBhbiBhbHRlcm5hdGl2ZSB0b1wgXGZCXC1cLWdyb3VwXGZSLgotKwotIC5v cHQgcCBcIHBpZGxpc3QKLSBTZWxlY3QgYnkgcHJvY2VzcyBJRC4gIElkZW50aWNhbCB0byBcZkJc LXBcZlIgYW5kXCBcZkJcLVwtcGlkXGZSLgotIAotQEAgLTI3NSwxMiArMjc3LDI1IEBAIFNlbGVj dCBieSBQSUQuCi0gVGhpcyBzZWxlY3RzIHRoZSBwcm9jZXNzZXMgd2hvc2UgcHJvY2VzcyBJRCBu dW1iZXJzIGFwcGVhciBpbgotIFxmSXBpZGxpc3RcZlIuICBJZGVudGljYWwgdG8gXGZCcFxmUiBh bmRcIFxmQlwtXC1waWRcZlIuCi0gCi0rLm9wdCBcLVwtcGlkIFwgcGlkbGlzdAotK1NlbGVjdCBi eSBwcm9jZXNzXCBJRC4gIElkZW50aWNhbCB0byBcZkJcLXBcZlJcIGFuZFwgXGZCcFxmUi4KLSsK LSsub3B0IFwtXC1wcGlkIFwgcGlkbGlzdAotK1NlbGVjdCBieSBwYXJlbnQgcHJvY2Vzc1wgSUQu Ci0rVGhpcyBzZWxlY3RzIHRoZSBwcm9jZXNzZXMKLSt3aXRoIGEgcGFyZW50XCBwcm9jZXNzXCBJ RCBpbiBcZlJwaWRsaXN0XGZSLgotK1RoYXRcIGlzLCBpdCBzZWxlY3RzIHByb2Nlc3NlcyB0aGF0 IGFyZSBjaGlsZHJlbgotK29mIHRob3NlIGxpc3RlZCBpbiBcZlJwaWRsaXN0XGZSLgotKwotIC5v cHQgXC1zIFwgc2Vzc2xpc3QKLSBTZWxlY3QgYnkgc2Vzc2lvbiBJRC4KLSAuYnIKLSBUaGlzIHNl bGVjdHMgdGhlIHByb2Nlc3NlcwotIHdpdGggYSBzZXNzaW9uIElEIHNwZWNpZmllZCBpblwgXGZJ c2Vzc2xpc3RcZlIuCi0gCi0rLm9wdCBcLVwtc2lkIFwgc2Vzc2xpc3QKLStTZWxlY3QgYnkgc2Vz c2lvblwgSUQuICBJZGVudGljYWwgdG9cIFxmQlwtc1xmUi4KLSsKLSAub3B0IHQgXCB0dHlsaXN0 Ci0gU2VsZWN0IGJ5IHR0eS4gIE5lYXJseSBpZGVudGljYWwgdG8gXGZCXC10XGZSIGFuZCBcZkJc LVwtdHR5XGZSLAotIGJ1dCBjYW4gYWxzbyBiZSB1c2VkIHdpdGggYW4gZW1wdHkgXGZJdHR5bGlz dFxmUiB0byBpbmRpY2F0ZQotQEAgLTI5Nyw2ICszMTIsMjcgQEAgVGVybWluYWxzICh0dHlzLCBv ciBzY3JlZW5zIGZvciB0ZXh0IG91dHB1dCkgY2FuIGJlIHNwZWNpZmllZCBpbiBzZXZlcmFsCi0g Zm9ybXM6IC9kZXYvdHR5UzEsIHR0eVMxLCBTMS4KLSBBXCBwbGFpbiAiXC0iIG1heSBiZSB1c2Vk IHRvIHNlbGVjdCBwcm9jZXNzZXMgbm90IGF0dGFjaGVkIHRvIGFueSB0ZXJtaW5hbC4KLSAKLSsu b3B0IFwtXC10dHkgXCB0dHlsaXN0Ci0rU2VsZWN0IGJ5IHRlcm1pbmFsLiAgSWRlbnRpY2FsIHRv IFxmQlwtdFxmUiBhbmRcIFxmQnRcZlIuCi0rCi0rLm9wdCBVIFwgdXNlcmxpc3QKLStTZWxlY3Qg YnkgZWZmZWN0aXZlIHVzZXIgSUQgKEVVSUQpIG9yIG5hbWUuCi0rLmJyCi0rVGhpcyBzZWxlY3Rz IHRoZSBwcm9jZXNzZXMgd2hvc2UgZWZmZWN0aXZlIHVzZXIgbmFtZQotK29yIElEIGlzIGluIFxm SXVzZXJsaXN0XGZSLgotK1RoZSBlZmZlY3RpdmUgdXNlclwgSUQgZGVzY3JpYmVzIHRoZSB1c2Vy IHdob3NlIGZpbGUKLSthY2Nlc3MgcGVybWlzc2lvbnMgYXJlIHVzZWQgYnkgdGhlIHByb2Nlc3MK LSsoc2VlXCBcZklnZXRldWlkXGZSKDIpKS4KLStJZGVudGljYWwgdG8gXGZCXC11XGZSIGFuZFwg XGZCXC1cLXVzZXJcZlIuCi0rCi0rLm9wdCBcLVUgXCB1c2VybGlzdAotK3NlbGVjdCBieSByZWFs IHVzZXIgSUQgKFJVSUQpIG9yIG5hbWUuCi0rLmJyCi0rSXQgc2VsZWN0cyB0aGUgcHJvY2Vzc2Vz IHdob3NlIHJlYWwgdXNlciBuYW1lIG9yIElEIGlzIGluIHRoZQotK1xmSXVzZXJsaXN0XGZSIGxp c3QuCi0rVGhlIHJlYWwgdXNlciBJRCBpZGVudGlmaWVzIHRoZSB1c2VyIHdobyBjcmVhdGVkIHRo ZSBwcm9jZXNzLAotK3NlZVwgXGZJZ2V0dWlkXGZSKDIpLgotKwotIC5vcHQgXC11IFwgdXNlcmxp c3QKLSBTZWxlY3QgYnkgZWZmZWN0aXZlIHVzZXIgSUQgKEVVSUQpIG9yIG5hbWUuCi0gLmJyCi1A QCAtMzA1LDQ2ICszNDEsMTMgQEAgVGhpcyBzZWxlY3RzIHRoZSBwcm9jZXNzZXMgd2hvc2UgZWZm ZWN0aXZlIHVzZXIgbmFtZSBvciBJRCBpcyBpbgotIGFjY2VzcyBwZXJtaXNzaW9ucyBhcmUgdXNl ZCBieSB0aGUgcHJvY2VzcyAoc2VlXCBcZklnZXRldWlkXGZSKDIpKS4KLSBJZGVudGljYWwgdG8g XGZCVVxmUiBhbmQgXGZCXC1cLXVzZXJcZlIuCi0gCi0tLm9wdCBcLVwtR3JvdXAgXCBncnBsaXN0 Ci0tU2VsZWN0IGJ5IHJlYWwgZ3JvdXAgSUQgKFJHSUQpIG9yIG5hbWUuICBJZGVudGljYWwgdG8g XGZCXC1HXGZSLgotLQotIC5vcHQgXC1cLVVzZXIgXCB1c2VybGlzdAotIFNlbGVjdCBieSByZWFs IHVzZXIgSUQgKFJVSUQpIG9yIG5hbWUuICBJZGVudGljYWwgdG8gXGZCXC1VXGZSLgotIAotLS5v cHQgXC1cLWdyb3VwIFwgZ3JwbGlzdAotLVNlbGVjdCBieSBlZmZlY3RpdmUgZ3JvdXAgSUQgKEVH SUQpIG9yIG5hbWUuCi0tLmJyCi0tVGhpcyBzZWxlY3RzIHRoZSBwcm9jZXNzZXMgd2hvc2UgZWZm ZWN0aXZlIGdyb3VwIG5hbWUgb3IgSUQgaXMgaW4KLS1cZklncm91cGxpc3RcZlIuICBUaGUgZWZm ZWN0aXZlIGdyb3VwIElEIGRlc2NyaWJlcyB0aGUgZ3JvdXAgd2hvc2UgZmlsZQotLWFjY2VzcyBw ZXJtaXNzaW9ucyBhcmUgdXNlZCBieSB0aGUgcHJvY2VzcyAoc2VlXCBcZklnZXRldWlkXGZSKDIp KS4KLS1UaGUgXGZCXC1nXGZSIG9wdGlvbiBpcyBvZnRlbiBhbiBhbHRlcm5hdGl2ZSB0b1wgXGZC XC1cLWdyb3VwXGZSLgotLQotLS5vcHQgXC1cLXBpZCBcIHBpZGxpc3QKLS1TZWxlY3QgYnkgcHJv Y2Vzc1wgSUQuICBJZGVudGljYWwgdG8gXGZCXC1wXGZSXCBhbmRcIFxmQnBcZlIuCi0tCi0tLm9w dCBcLVwtcHBpZCBcIHBpZGxpc3QKLS1TZWxlY3QgYnkgcGFyZW50IHByb2Nlc3NcIElELgotLVRo aXMgc2VsZWN0cyB0aGUgcHJvY2Vzc2VzCi0td2l0aCBhIHBhcmVudFwgcHJvY2Vzc1wgSUQgaW4g XGZScGlkbGlzdFxmUi4KLS1UaGF0XCBpcywgaXQgc2VsZWN0cyBwcm9jZXNzZXMgdGhhdCBhcmUg Y2hpbGRyZW4KLS1vZiB0aG9zZSBsaXN0ZWQgaW4gXGZScGlkbGlzdFxmUi4KLS0KLS0ub3B0IFwt XC1zaWQgXCBzZXNzbGlzdAotLVNlbGVjdCBieSBzZXNzaW9uXCBJRC4gIElkZW50aWNhbCB0b1wg XGZCXC1zXGZSLgotLQotLS5vcHQgXC1cLXR0eSBcIHR0eWxpc3QKLS1TZWxlY3QgYnkgdGVybWlu YWwuICBJZGVudGljYWwgdG8gXGZCXC10XGZSIGFuZFwgXGZCdFxmUi4KLS0KLSAub3B0IFwtXC11 c2VyIFwgdXNlcmxpc3QKLSBTZWxlY3QgYnkgZWZmZWN0aXZlIHVzZXIgSUQgKEVVSUQpIG9yIG5h bWUuCi0gSWRlbnRpY2FsIHRvIFxmQlwtdVxmUiBhbmRcIFxmQlVcZlIuCi0gCi0tLm9wdCBcLVxm STEyM1xmUgotLUlkZW50aWNhbCB0byBcZkJcLVwtc2lkXCBcZkkxMjNcZlIuCi0tCi0tLm9wdCBc ZkkxMjNcZlIKLS1JZGVudGljYWwgdG8gXGZCXC1cLXBpZFwgXGZJMTIzXGZSLgotLQotIC5cIiAi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIKLSAuUEQKLSAuUFAKLUBAIC0zNTMsMzggKzM1NiwxMiBAQCBUaGVz ZSBvcHRpb25zIGFyZSB1c2VkIHRvIGNob29zZSB0aGUgaW5mb3JtYXRpb24gZGlzcGxheWVkIGJ5 IFxmQnBzXGZSLgotIFRoZSBvdXRwdXQgbWF5IGRpZmZlciBieSBwZXJzb25hbGl0eS4KLSAuUFAK LSAKLS0ub3B0IFwtRgotLWV4dHJhIGZ1bGwgZm9ybWF0LiBTZWUgdGhlIFxmQlwtZlxmUiBvcHRp b24sIHdoaWNoIFxmQlwtRlxmUiBpbXBsaWVzLgotLQotLS5vcHQgXC1PIFwgZm9ybWF0Ci0taXMg bGlrZSBcZkJcLW9cZlIsIGJ1dCBwcmVsb2FkZWQgd2l0aCBzb21lIGRlZmF1bHQgY29sdW1ucy4K LS1JZGVudGljYWwgdG8gXGZCXC1vXCBwaWQsXGZJZm9ybWF0XGZCLHN0YXRlLHRuYW1lLHRpbWUs Y29tbWFuZFxmUgotLW9yIFxmQlwtb1wgcGlkLFxmSWZvcm1hdFxmQix0bmFtZSx0aW1lLGNtZFxm Uiwgc2VlXCBcZkJcLW9cZlJcIGJlbG93LgotLQotLS5vcHQgTyBcIGZvcm1hdAotLWlzIHByZWxv YWRlZCBcZkJvXGZSIChvdmVybG9hZGVkKS4KLS0uYnIKLS1UaGUgQlNEIFxmQk9cZlIgb3B0aW9u IGNhbiBhY3QgbGlrZSBcZkJcLU9cZlIgKHVzZXJcLWRlZmluZWQgb3V0cHV0Ci0tZm9ybWF0IHdp dGggc29tZSBjb21tb24gZmllbGRzIHByZWRlZmluZWQpIG9yIGNhbiBiZSB1c2VkIHRvIHNwZWNp ZnkKLS1zb3J0IG9yZGVyLiAgSGV1cmlzdGljcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGJl aGF2aW9yIG9mIHRoaXMKLS1vcHRpb24uIFRvIGVuc3VyZSB0aGF0IHRoZSBkZXNpcmVkIGJlaGF2 aW9yIGlzIG9idGFpbmVkIChzb3J0aW5nIG9yCi0tZm9ybWF0dGluZyksIHNwZWNpZnkgdGhlIG9w dGlvbiBpbiBzb21lIG90aGVyIHdheQotLShlLmcuIHdpdGggXGZCXC1PXGZSIG9yIFxmQlwtXC1z b3J0XGZSKS4KLS1XaGVuIHVzZWQgYXMgYSBmb3JtYXR0aW5nIG9wdGlvbiwgaXQgaXMgaWRlbnRp Y2FsIHRvIFxmQlwtT1xmUiwgd2l0aCB0aGUKLS1CU0RcIHBlcnNvbmFsaXR5LgotLQotLS5vcHQg XC1NCi0tQWRkIGEgY29sdW1uIG9mIHNlY3VyaXR5IGRhdGEuIElkZW50aWNhbCB0byBcZkJaXGZS LiAoZm9yXCBTRVwgTGludXgpCi0tCi0tLm9wdCBYCi0tUmVnaXN0ZXIgZm9ybWF0LgotLQotLS5v cHQgWgotLUFkZCBhIGNvbHVtbiBvZiBzZWN1cml0eSBkYXRhLiBJZGVudGljYWwgdG8gXGZCXC1N XGZSLiAoZm9yXCBTRVwgTGludXgpCi0tCi0gLm9wdCBcLWMKLSBTaG93IGRpZmZlcmVudCBzY2hl ZHVsZXIgaW5mb3JtYXRpb24gZm9yIHRoZSBcZkJcLWxcZlIgb3B0aW9uLgotIAotKy5vcHQgXC1c LWNvbnRleHQKLStEaXNwbGF5IHNlY3VyaXR5IGNvbnRleHQgZm9ybWF0LiAoZm9yXCBTRVwgTGlu dXgpCi0rCi0gLm9wdCBcLWYKLSBkb2VzIGZ1bGxcLWZvcm1hdCBsaXN0aW5nLiBUaGlzIG9wdGlv biBjYW4gYmUgY29tYmluZWQgd2l0aCBtYW55Ci0gb3RoZXIgVU5JWFwtc3R5bGUgb3B0aW9ucyB0 byBhZGQgYWRkaXRpb25hbCBjb2x1bW5zLiBJdCBhbHNvIGNhdXNlcwotQEAgLTM5Myw2ICszNzAs MTIgQEAgTkxXUCAobnVtYmVyIG9mIHRocmVhZHMpIGFuZCBMV1AgKHRocmVhZCBJRCkgY29sdW1u cyB3aWxsIGJlIGFkZGVkLgotIFNlZSB0aGUgXGZCY1xmUiBvcHRpb24sIHRoZSBmb3JtYXQga2V5 d29yZCBcZkJhcmdzXGZSLCBhbmQgdGhlCi0gZm9ybWF0IGtleXdvcmQgXGZCY29tbVxmUi4KLSAK LSsub3B0IFwtRgotK2V4dHJhIGZ1bGwgZm9ybWF0LiBTZWUgdGhlIFxmQlwtZlxmUiBvcHRpb24s IHdoaWNoIFxmQlwtRlxmUiBpbXBsaWVzLgotKwotKy5vcHQgXC1cLWZvcm1hdCBcIGZvcm1hdAot K3VzZXJcLWRlZmluZWQgZm9ybWF0LiAgSWRlbnRpY2FsIHRvIFxmQlwtb1xmUiBhbmQgXGZCb1xm Ui4KLSsKLSAub3B0IGoKLSBCU0Qgam9iIGNvbnRyb2wgZm9ybWF0LgotIAotQEAgLTQwNSw2ICsz ODgsMjYgQEAgZGlzcGxheSBCU0QgbG9uZyBmb3JtYXQuCi0gLm9wdCBcLWwKLSBsb25nIGZvcm1h dC4gVGhlIFxmQlwteVxmUiBvcHRpb24gaXMgb2Z0ZW4gdXNlZnVsIHdpdGggdGhpcy4KLSAKLSsu b3B0IFwtTQotK0FkZCBhIGNvbHVtbiBvZiBzZWN1cml0eSBkYXRhLiBJZGVudGljYWwgdG8gXGZC WlxmUi4gKGZvclwgU0VcIExpbnV4KQotKwotKy5vcHQgTyBcIGZvcm1hdAotK2lzIHByZWxvYWRl ZCBcZkJvXGZSIChvdmVybG9hZGVkKS4KLSsuYnIKLStUaGUgQlNEIFxmQk9cZlIgb3B0aW9uIGNh biBhY3QgbGlrZSBcZkJcLU9cZlIgKHVzZXJcLWRlZmluZWQgb3V0cHV0Ci0rZm9ybWF0IHdpdGgg c29tZSBjb21tb24gZmllbGRzIHByZWRlZmluZWQpIG9yIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkK LStzb3J0IG9yZGVyLiAgSGV1cmlzdGljcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGJlaGF2 aW9yIG9mIHRoaXMKLStvcHRpb24uIFRvIGVuc3VyZSB0aGF0IHRoZSBkZXNpcmVkIGJlaGF2aW9y IGlzIG9idGFpbmVkIChzb3J0aW5nIG9yCi0rZm9ybWF0dGluZyksIHNwZWNpZnkgdGhlIG9wdGlv biBpbiBzb21lIG90aGVyIHdheQotKyhlLmcuIHdpdGggXGZCXC1PXGZSIG9yIFxmQlwtXC1zb3J0 XGZSKS4KLStXaGVuIHVzZWQgYXMgYSBmb3JtYXR0aW5nIG9wdGlvbiwgaXQgaXMgaWRlbnRpY2Fs IHRvIFxmQlwtT1xmUiwgd2l0aCB0aGUKLStCU0RcIHBlcnNvbmFsaXR5LgotKwotKy5vcHQgXC1P IFwgZm9ybWF0Ci0raXMgbGlrZSBcZkJcLW9cZlIsIGJ1dCBwcmVsb2FkZWQgd2l0aCBzb21lIGRl ZmF1bHQgY29sdW1ucy4KLStJZGVudGljYWwgdG8gXGZCXC1vXCBwaWQsXGZJZm9ybWF0XGZCLHN0 YXRlLHRuYW1lLHRpbWUsY29tbWFuZFxmUgotK29yIFxmQlwtb1wgcGlkLFxmSWZvcm1hdFxmQix0 bmFtZSx0aW1lLGNtZFxmUiwgc2VlXCBcZkJcLW9cZlJcIGJlbG93LgotKwotIC5vcHQgbyBcIGZv cm1hdAotIHNwZWNpZnkgdXNlclwtZGVmaW5lZCBmb3JtYXQuICBJZGVudGljYWwgdG8gXGZCXC1v XGZSIGFuZAotIFxmQlwtXC1mb3JtYXRcZlIuCi1AQCAtNDQwLDE1ICs0NDMsMTUgQEAgZGlzcGxh eSB1c2VyXC1vcmllbnRlZCBmb3JtYXQKLSAub3B0IHYKLSBkaXNwbGF5IHZpcnR1YWwgbWVtb3J5 IGZvcm1hdAotIAotKy5vcHQgWAotK1JlZ2lzdGVyIGZvcm1hdC4KLSsKLSAub3B0IFwteQotIERv IG5vdCBzaG93IGZsYWdzOyBzaG93IHJzcyBpbiBwbGFjZSBvZiBhZGRyLgotIFRoaXMgb3B0aW9u IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBcZkJcLWxcZlIuCi0gCi0tLm9wdCBcLVwtZm9ybWF0IFwg Zm9ybWF0Ci0tdXNlclwtZGVmaW5lZCBmb3JtYXQuICBJZGVudGljYWwgdG8gXGZCXC1vXGZSIGFu ZCBcZkJvXGZSLgotLQotLS5vcHQgXC1cLWNvbnRleHQKLS1EaXNwbGF5IHNlY3VyaXR5IGNvbnRl eHQgZm9ybWF0LiAoZm9yXCBTRVwgTGludXgpCi0rLm9wdCBaCi0rQWRkIGEgY29sdW1uIG9mIHNl Y3VyaXR5IGRhdGEuIElkZW50aWNhbCB0byBcZkJcLU1cZlIuIChmb3JcIFNFXCBMaW51eCkKLSAK LSAuXCIgIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiCi0gLlBECi1AQCAtNDU5LDM3ICs0NjIsNiBAQCBEaXNw bGF5IHNlY3VyaXR5IGNvbnRleHQgZm9ybWF0LiAoZm9yXCBTRVwgTGludXgpCi0gLlwiICAuQiBD Ci0gLlwiICB1c2UgcmF3IENQVSB0aW1lIGZvciAlQ1BVIGluc3RlYWQgb2YgZGVjYXlpbmcgYXZl cmFnZQotIAotLS5vcHQgXC1ICi0tc2hvdyBwcm9jZXNzIGhpZXJhcmNoeSAoZm9yZXN0KQotLQot LS5vcHQgTiBcIG5hbWVsaXN0Ci0tU3BlY2lmeSBuYW1lbGlzdCBmaWxlLiAgSWRlbnRpY2FsIHRv IFxmQlwtblxmUiwgc2VlIFxmQlwtblxmUiBhYm92ZS4KLS0KLS0ub3B0IE8gXCBvcmRlcgotLVNv cnRpbmcgb3JkZXIuIChvdmVybG9hZGVkKQotLS5icgotLVRoZSBCU0QgXGZCT1xmUiBvcHRpb24g Y2FuIGFjdCBsaWtlIFxmQlwtT1xmUiAodXNlclwtZGVmaW5lZCBvdXRwdXQKLS1mb3JtYXQgd2l0 aCBzb21lIGNvbW1vbiBmaWVsZHMgcHJlZGVmaW5lZCkgb3IgY2FuIGJlIHVzZWQgdG8gc3BlY2lm eQotLXNvcnQgb3JkZXIuICBIZXVyaXN0aWNzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgYmVo YXZpb3Igb2YgdGhpcwotLW9wdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhlIGRlc2lyZWQgYmVoYXZp b3IgaXMgb2J0YWluZWQgKHNvcnRpbmcgb3IKLS1mb3JtYXR0aW5nKSwgc3BlY2lmeSB0aGUgb3B0 aW9uIGluIHNvbWUgb3RoZXIgd2F5IChlLmcuIHdpdGggXGZCXC1PXGZSCi0tb3IgXGZCXC1cLXNv cnRcZlIpLgotLQotLUZvciBzb3J0aW5nLCBvYnNvbGV0ZSBCU0QgXGZCT1xmUiBvcHRpb24gc3lu dGF4IGlzCi0tXGZCT1xmUltcZkIrXGZSfFxmQlwtXGZSXVxmSWsxXGZSWyxbXGZCK1xmUnxcZkJc LVxmUl1cZklrMlxmUlssLi4uXV0uCi0tSXQgb3JkZXJzIHRoZSBwcm9jZXNzZXMgbGlzdGluZyBh Y2NvcmRpbmcgdG8gdGhlIG11bHRpbGV2ZWwgc29ydCBzcGVjaWZpZWQgYnkKLS10aGUgc2VxdWVu Y2Ugb2Ygb25lXC1sZXR0ZXIgc2hvcnQga2V5cyBcZklrMVxmUiwgXGZJazJcZlIsIC4uLiBkZXNj cmliZWQKLS1pbiB0aGUgXGZCT0JTT0xFVEUgU09SVCBLRVlTXGZSIHNlY3Rpb24gYmVsb3cuCi0t VGhlXCAiKyIgaXMgY3VycmVudGx5IG9wdGlvbmFsLAotLW1lcmVseSByZVwtaXRlcmF0aW5nIHRo ZSBkZWZhdWx0IGRpcmVjdGlvbiBvbiBhIGtleSwKLS1idXQgbWF5IGhlbHAgdG8gZGlzdGluZ3Vp c2ggYW4gXGZCT1xmUiBzb3J0IGZyb20gYW4gXGZCT1xmUiBmb3JtYXQuCi0tVGhlXCAiXC0iIHJl dmVyc2VzIGRpcmVjdGlvbiBvbmx5IG9uIHRoZSBrZXkgaXQgcHJlY2VkZXMuCi0tCi0tLm9wdCBT Ci0tU3VtIHVwIHNvbWUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgQ1BVIHVzYWdlLCBmcm9tIGRlYWQg Y2hpbGQgcHJvY2Vzc2VzCi0taW50byB0aGVpciBwYXJlbnQuIFRoaXMgaXMgdXNlZnVsIGZvciBl eGFtaW5pbmcgYSBzeXN0ZW0gd2hlcmUgYQotLXBhcmVudCBwcm9jZXNzIHJlcGVhdGVkbHkgZm9y a3Mgb2ZmIHNob3J0XC1saXZlZCBjaGlsZHJlbiB0byBkbyB3b3JrLgotLQotIC5vcHQgYwotIFNo b3cgdGhlIHRydWUgY29tbWFuZCBuYW1lLiBUaGlzIGlzIGRlcml2ZWQgZnJvbSB0aGUgbmFtZSBv ZiB0aGUKLSBleGVjdXRhYmxlIGZpbGUsIHJhdGhlciB0aGFuIGZyb20gdGhlIGFyZ3YgdmFsdWUu IENvbW1hbmQgYXJndW1lbnRzCi1AQCAtNTAyLDEyICs0NzQsMjQgQEAgZGlzcGxheSB0aGUgY29t bWFuZCBhcmd1bWVudHMuCi0gU2VlIHRoZSBcZkJcLWZcZlIgb3B0aW9uLCB0aGUgZm9ybWF0IGtl eXdvcmQgXGZCYXJnc1xmUiwgYW5kIHRoZQotIGZvcm1hdCBrZXl3b3JkIFxmQmNvbW1cZlIuCi0g Ci0rLm9wdCBcLVwtY29scyBcIG4KLStzZXQgc2NyZWVuIHdpZHRoCi0rCi0rLm9wdCBcLVwtY29s dW1ucyBcIG4KLStzZXQgc2NyZWVuIHdpZHRoCi0rCi0rLm9wdCBcLVwtY3VtdWxhdGl2ZQotK2lu Y2x1ZGUgc29tZSBkZWFkIGNoaWxkIHByb2Nlc3MgZGF0YSAoYXMgYSBzdW0gd2l0aCB0aGUgcGFy ZW50KQotKwotIC5vcHQgZQotIFNob3cgdGhlIGVudmlyb25tZW50IGFmdGVyIHRoZSBjb21tYW5k LgotIAotIC5vcHQgZgotIEFTQ0lJXC1hcnQgcHJvY2VzcyBoaWVyYXJjaHkgKGZvcmVzdCkKLSAK LSsub3B0IFwtXC1mb3Jlc3QKLStBU0NJSSBhcnQgcHJvY2VzcyB0cmVlCi0rCi0gLm9wdCBoCi0g Tm8gaGVhZGVyLiAob3IsIG9uZSBoZWFkZXIgcGVyIHNjcmVlbiBpbiB0aGUgQlNEIHBlcnNvbmFs aXR5KQotIC5icgotQEAgLTUyMSw2ICs1MDUsMTIgQEAgY3VycmVudCBwZXJzb25hbGl0eSwgeW91 IGNhbiB1c2UgdGhlIGxvbmcgb3B0aW9ucyBcZkJcLVwtaGVhZGVyc1xmUgotIGFuZCBcZkJcLVwt bm9cLWhlYWRlcnNcZlIgdG8gZW5hYmxlIHByaW50aW5nIGhlYWRlcnMgZWFjaCBwYWdlIG9yCi0g ZGlzYWJsZSBoZWFkZXJzIGVudGlyZWx5LCByZXNwZWN0aXZlbHkuCi0gCi0rLm9wdCBcLUgKLStz aG93IHByb2Nlc3MgaGllcmFyY2h5IChmb3Jlc3QpCi0rCi0rLm9wdCBcLVwtaGVhZGVycwotK3Jl cGVhdCBoZWFkZXIgbGluZXMsIG9uZSBwZXIgcGFnZSBvZiBvdXRwdXQKLSsKLSAub3B0IGsgXCBz cGVjCi0gc3BlY2lmeSBzb3J0aW5nIG9yZGVyLiBTb3J0aW5nIHN5bnRheCBpcwotIFtcZkIrXGZS fFxmQlwtXGZSXVxmSWtleVxmUlssW1xmQitcZlJ8XGZCXC1cZlJdXGZJa2V5XGZSWywuLi5dXQot QEAgLTU1Nyw0MCArNTQ3LDQ3IEBAIFdpdGhvdXQgdGhpcyBvcHRpb24sIHRoZSBkZWZhdWx0IHNl YXJjaCBwYXRoIGZvciB0aGUgbmFtZWxpc3QgaXM6Ci0gLmJyCi0gCS9TeXN0ZW0ubWFwCi0gCi0r Lm9wdCBcLVwtbGluZXMgXCBuCi0rc2V0IHNjcmVlbiBoZWlnaHQKLSsKLSAub3B0IG4KLSBOdW1l cmljIG91dHB1dCBmb3IgV0NIQU4gYW5kIFVTRVIuIChpbmNsdWRpbmcgYWxsIHR5cGVzIG9mIFVJ RCBhbmQgR0lEKQotIAotLS5vcHQgXC13Ci0tV2lkZSBvdXRwdXQuIFVzZSB0aGlzIG9wdGlvbiB0 d2ljZSBmb3IgdW5saW1pdGVkIHdpZHRoLgotLQotLS5vcHQgdwotLVdpZGUgb3V0cHV0LiBVc2Ug dGhpcyBvcHRpb24gdHdpY2UgZm9yIHVubGltaXRlZCB3aWR0aC4KLS0KLS0ub3B0IFwtXC1jb2xz IFwgbgotLXNldCBzY3JlZW4gd2lkdGgKLS0KLS0ub3B0IFwtXC1jb2x1bW5zIFwgbgotLXNldCBz Y3JlZW4gd2lkdGgKLS0KLS0ub3B0IFwtXC1jdW11bGF0aXZlCi0taW5jbHVkZSBzb21lIGRlYWQg Y2hpbGQgcHJvY2VzcyBkYXRhIChhcyBhIHN1bSB3aXRoIHRoZSBwYXJlbnQpCi0rLm9wdCBOIFwg bmFtZWxpc3QKLStTcGVjaWZ5IG5hbWVsaXN0IGZpbGUuICBJZGVudGljYWwgdG8gXGZCXC1uXGZS LCBzZWUgXGZCXC1uXGZSIGFib3ZlLgotIAotLS5vcHQgXC1cLWZvcmVzdAotLUFTQ0lJIGFydCBw cm9jZXNzIHRyZWUKLSsub3B0IE8gXCBvcmRlcgotK1NvcnRpbmcgb3JkZXIuIChvdmVybG9hZGVk KQotKy5icgotK1RoZSBCU0QgXGZCT1xmUiBvcHRpb24gY2FuIGFjdCBsaWtlIFxmQlwtT1xmUiAo dXNlclwtZGVmaW5lZCBvdXRwdXQKLStmb3JtYXQgd2l0aCBzb21lIGNvbW1vbiBmaWVsZHMgcHJl ZGVmaW5lZCkgb3IgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQotK3NvcnQgb3JkZXIuICBIZXVyaXN0 aWNzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgYmVoYXZpb3Igb2YgdGhpcwotK29wdGlvbi4g VG8gZW5zdXJlIHRoYXQgdGhlIGRlc2lyZWQgYmVoYXZpb3IgaXMgb2J0YWluZWQgKHNvcnRpbmcg b3IKLStmb3JtYXR0aW5nKSwgc3BlY2lmeSB0aGUgb3B0aW9uIGluIHNvbWUgb3RoZXIgd2F5IChl LmcuIHdpdGggXGZCXC1PXGZSCi0rb3IgXGZCXC1cLXNvcnRcZlIpLgotIAotLS5vcHQgXC1cLWhl YWRlcnMKLS1yZXBlYXQgaGVhZGVyIGxpbmVzLCBvbmUgcGVyIHBhZ2Ugb2Ygb3V0cHV0Ci0rRm9y IHNvcnRpbmcsIG9ic29sZXRlIEJTRCBcZkJPXGZSIG9wdGlvbiBzeW50YXggaXMKLStcZkJPXGZS W1xmQitcZlJ8XGZCXC1cZlJdXGZJazFcZlJbLFtcZkIrXGZSfFxmQlwtXGZSXVxmSWsyXGZSWywu Li5dXS4KLStJdCBvcmRlcnMgdGhlIHByb2Nlc3NlcyBsaXN0aW5nIGFjY29yZGluZyB0byB0aGUg bXVsdGlsZXZlbCBzb3J0IHNwZWNpZmllZCBieQotK3RoZSBzZXF1ZW5jZSBvZiBvbmVcLWxldHRl ciBzaG9ydCBrZXlzIFxmSWsxXGZSLCBcZklrMlxmUiwgLi4uIGRlc2NyaWJlZAotK2luIHRoZSBc ZkJPQlNPTEVURSBTT1JUIEtFWVNcZlIgc2VjdGlvbiBiZWxvdy4KLStUaGVcICIrIiBpcyBjdXJy ZW50bHkgb3B0aW9uYWwsCi0rbWVyZWx5IHJlXC1pdGVyYXRpbmcgdGhlIGRlZmF1bHQgZGlyZWN0 aW9uIG9uIGEga2V5LAotK2J1dCBtYXkgaGVscCB0byBkaXN0aW5ndWlzaCBhbiBcZkJPXGZSIHNv cnQgZnJvbSBhbiBcZkJPXGZSIGZvcm1hdC4KLStUaGVcICJcLSIgcmV2ZXJzZXMgZGlyZWN0aW9u IG9ubHkgb24gdGhlIGtleSBpdCBwcmVjZWRlcy4KLSAKLSAub3B0IFwtXC1ub1wtaGVhZGVycwot IHByaW50IG5vIGhlYWRlciBsaW5lIGF0IGFsbC4gXC1cLW5vXC1oZWFkaW5nIGlzIGFuIGFsaWFz IGZvciB0aGlzCi0gb3B0aW9uLgotIAotLS5vcHQgXC1cLWxpbmVzIFwgbgotLXNldCBzY3JlZW4g aGVpZ2h0Ci0tCi0gLm9wdCBcLVwtcm93cyBcIG4KLSBzZXQgc2NyZWVuIGhlaWdodAotIAotKy5v cHQgUwotK1N1bSB1cCBzb21lIGluZm9ybWF0aW9uLCBzdWNoIGFzIENQVSB1c2FnZSwgZnJvbSBk ZWFkIGNoaWxkIHByb2Nlc3NlcwotK2ludG8gdGhlaXIgcGFyZW50LiBUaGlzIGlzIHVzZWZ1bCBm b3IgZXhhbWluaW5nIGEgc3lzdGVtIHdoZXJlIGEKLStwYXJlbnQgcHJvY2VzcyByZXBlYXRlZGx5 IGZvcmtzIG9mZiBzaG9ydFwtbGl2ZWQgY2hpbGRyZW4gdG8gZG8gd29yay4KLSsKLSAub3B0IFwt XC1zb3J0IFwgc3BlYwotIHNwZWNpZnkgc29ydGluZyBvcmRlci4gU29ydGluZyBzeW50YXggaXMK LSBbXGZCK1xmUnxcZkJcLVxmUl1cZklrZXlcZlJbLFtcZkIrXGZSfFxmQlwtXGZSXVxmSWtleVxm UlssLi4uXV0KLUBAIC01OTksNiArNTk2LDEyIEBAIFRoZVwgIisiIGlzIG9wdGlvbmFsIHNpbmNl IGRlZmF1bHQgZGlyZWN0aW9uIGlzIGluY3JlYXNpbmcgbnVtZXJpY2FsIG9yCi0gbGV4aWNvZ3Jh cGhpYyBvcmRlci4gSWRlbnRpY2FsIHRvXCBcZkJrXGZSLgotIEZvciBleGFtcGxlOiBcZkJwc1wg amF4XCBcLVwtc29ydD11aWQsXC1wcGlkLCtwaWRcZlIKLSAKLSsub3B0IHcKLStXaWRlIG91dHB1 dC4gVXNlIHRoaXMgb3B0aW9uIHR3aWNlIGZvciB1bmxpbWl0ZWQgd2lkdGguCi0rCi0rLm9wdCBc LXcKLStXaWRlIG91dHB1dC4gVXNlIHRoaXMgb3B0aW9uIHR3aWNlIGZvciB1bmxpbWl0ZWQgd2lk dGguCi0rCi0gLm9wdCBcLVwtd2lkdGggXCBuCi0gc2V0IHNjcmVlbiB3aWR0aAotIAotQEAgLTYx NCwzNSArNjE3LDM1IEBAIFNob3cgdGhyZWFkcyBhcyBpZiB0aGV5IHdlcmUgcHJvY2Vzc2VzCi0g Lm9wdCBcLUwKLSBTaG93IHRocmVhZHMsIHBvc3NpYmx5IHdpdGggTFdQIGFuZCBOTFdQIGNvbHVt bnMKLSAKLS0ub3B0IFwtVAotLVNob3cgdGhyZWFkcywgcG9zc2libHkgd2l0aCBTUElEIGNvbHVt bgotLQotIC5vcHQgbQotIFNob3cgdGhyZWFkcyBhZnRlciBwcm9jZXNzZXMKLSAKLSAub3B0IFwt bQotIFNob3cgdGhyZWFkcyBhZnRlciBwcm9jZXNzZXMKLSAKLSsub3B0IFwtVAotK1Nob3cgdGhy ZWFkcywgcG9zc2libHkgd2l0aCBTUElEIGNvbHVtbgotKwotIC5cIiAiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi IiIKLSAuUEQKLSAuUFAKLSAuU0ggIk9USEVSIElORk9STUFUSU9OIgotIC5QRCAwCi0gCi0rLm9w dCBcLVwtaGVscAotK1ByaW50IGEgaGVscCBtZXNzYWdlLgotKwotKy5vcHQgXC1cLWluZm8KLStQ cmludCBkZWJ1Z2dpbmcgaW5mby4KLSsKLSAub3B0IEwKLSBMaXN0IGFsbCBmb3JtYXQgc3BlY2lm aWVycy4KLSAKLS0ub3B0IFwtVgotLVByaW50IHRoZSBwcm9jcHMgdmVyc2lvbi4KLS0KLSAub3B0 IFYKLSBQcmludCB0aGUgcHJvY3BzIHZlcnNpb24uCi0gCi0tLm9wdCBcLVwtaGVscAotLVByaW50 IGEgaGVscCBtZXNzYWdlLgotLQotLS5vcHQgXC1cLWluZm8KLS1QcmludCBkZWJ1Z2dpbmcgaW5m by4KLSsub3B0IFwtVgotK1ByaW50IHRoZSBwcm9jcHMgdmVyc2lvbi4KLSAKLSAub3B0IFwtXC12 ZXJzaW9uCi0gUHJpbnQgdGhlIHByb2NwcyB2ZXJzaW9uLgotLS0gCi0xLjcuMAotCmRpZmYgLS1n aXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDUzLXRvcF9oaWdobGlnaHQucGF0Y2ggYi9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDUzLXRvcF9oaWdobGlnaHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDI2MjFmMTcuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDA1My10b3BfaGlnaGxpZ2h0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBA QAotRnJvbSA4NDA4ZWZhNGFkOWJmNDY5Yjk1N2IzZTg0YzEzNTkzNDk5ZDllZDY0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9w b29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJp YW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDog W1BBVENIIDUzLzcwXSB0b3BfaGlnaGxpZ2h0Ci0KLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHRvcC5jIHwg ICAgMyArKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL3RvcC5jIGIvdG9wLmMKLWluZGV4IGY2ODgwYjUuLmQ4NmEzMTEg MTAwNjQ0Ci0tLS0gYS90b3AuYwotKysrIGIvdG9wLmMKLUBAIC0zMDU0LDkgKzMwNTQsMTAgQEAg c3RhdGljIHByb2NfdCAqKnN1bW1hcnlfc2hvdyAodm9pZCkKLSAgICAgICBzbnByaW50Zihfeiwg c2l6ZW9mKF96KSwgZiwgIyMgdmEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKLSAgICAgICBzbnByaW50ZihjYnVmLCBzaXplb2YoY2J1ZiksICIlcyVzJXMiLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICBxLT5jYXBjbHJfcm93aGlnaCwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLS0gICAg ICAgICBfeiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSsgICAgICAgICBfeithZHZhbmNlLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAhKENI S3cocSwgU2hvd19ISVJPV1MpICYmICdSJyA9PSBwLT5zdGF0ZSkgPyBxLT5jYXBjbHJfcm93bm9y bSA6ICIiIFwKLSAgICAgICApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgICBhZHZhbmNlPTA7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK LSAgICAgICBwYWQgKz0gcS0+bGVuX3Jvd2hpZ2g7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICBpZiAoIShDSEt3KHEsIFNob3dfSElST1dT KSAmJiAnUicgPT0gcC0+c3RhdGUpKSBwYWQgKz0gcS0+bGVuX3Jvd25vcm07IFwKLSAgICB9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDA1NC10b3Bfbm9oei5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTQtdG9w X25vaHoucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNmVjNWEuLjAwMDAw MDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1NC10b3Bfbm9oei5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDI1ICswLDAgQEAKLUZyb20gYzA5ODE0MjU4MzgzZTFjMDMyYzZkZjEyYWU5 NmQ1ZTU2Mzg2ZGFlZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAu ZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRl Ymlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6 NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1NC83MF0gdG9wX25vaHoKLQotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tCi0gdG9wLmMgfCAgICAxICsKLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygr KSwgMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3RvcC5jIGIvdG9wLmMKLWluZGV4IGQ4 NmEzMTEuLmVhMzM5ODkgMTAwNjQ0Ci0tLS0gYS90b3AuYwotKysrIGIvdG9wLmMKLUBAIC0yOTE2 LDYgKzI5MTYsNyBAQCBzdGF0aWMgdm9pZCBzdW1tYXJ5aGxwIChDUFVfdCAqY3B1LCBjb25zdCBj aGFyICpwZngpCi0gICAgc19mcm1lID0gY3B1LT5zIC0gY3B1LT5zX3NhdjsKLSAgICBuX2ZybWUg PSBjcHUtPm4gLSBjcHUtPm5fc2F2OwotICAgIGlfZnJtZSA9IFRSSU16KGNwdS0+aSAtIGNwdS0+ aV9zYXYpOwotKyAgIGlmICgodV9mcm1lID09IDApICYmIChpX2ZybWUgPT0gMCkpIGlfZnJtZSA9 IDEwMC4wOwotICAgIHdfZnJtZSA9IGNwdS0+dyAtIGNwdS0+d19zYXY7Ci0gICAgeF9mcm1lID0g Y3B1LT54IC0gY3B1LT54X3NhdjsKLSAgICB5X2ZybWUgPSBjcHUtPnkgLSBjcHUtPnlfc2F2Owot LS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU1LXZtc3Rh dF9wYXJ0X2Zvcm1hdC5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTUtdm1zdGF0X3Bh cnRfZm9ybWF0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTQ2YWM4Li4w MDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTUtdm1zdGF0X3BhcnRfZm9ybWF0 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotRnJvbSBmNjE5Zjg2MjlhNTkx NWM5MDBmOTg0YzFjYWY0NDI0MWZmMDc3ZjMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJv Y3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAx OSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDU1LzcwXSB2bXN0YXRf cGFydF9mb3JtYXQKLQotLS0tCi0gcHJvYy9zeXNpbmZvLmMgfCAgIDIyICsrKysrKysrKysrKysr KysrKystLS0KLSBwcm9jL3N5c2luZm8uaCB8ICAgIDIgKy0KLSB2bXN0YXQuYyAgICAgICB8ICAg IDIgKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgYS9wcm9jL3N5c2luZm8uYyBiL3Byb2Mvc3lzaW5mby5jCi1pbmRleCA4 ZGJhYmRmLi40NDRlZTViIDEwMDY0NAotLS0tIGEvcHJvYy9zeXNpbmZvLmMKLSsrKyBiL3Byb2Mv c3lzaW5mby5jCi1AQCAtNzk2LDYgKzc5NiwxOCBAQCB1bnNpZ25lZCBpbnQgZ2V0cGFydGl0aW9u c19udW0oc3RydWN0IGRpc2tfc3RhdCAqZGlza3MsIGludCBuZGlza3MpewotIH0KLSAKLSAvLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLwotK3N0YXRpYyBpbnQgaXNfZGlzayhjaGFyICpkZXYpCi0rewotKyAg Y2hhciBzeXNwYXRoW1BBVEhfTUFYXTsKLSsgIGNoYXIgKnNsYXNoOwotKwotKyAgd2hpbGUgKChz bGFzaCA9IHN0cmNocihkZXYsICcvJykpKQotKyAgICAqc2xhc2ggPSAnISc7Ci0rICBzbnByaW50 ZihzeXNwYXRoLCBzaXplb2Yoc3lzcGF0aCksICIvc3lzL2Jsb2NrLyVzIiwgZGV2KTsKLSsgIHJl dHVybiAhKGFjY2VzcyhzeXNwYXRoLCBGX09LKSk7Ci0rfQotKwotKy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCi0gCi0gdW5zaWduZWQgaW50IGdldGRpc2tzdGF0KHN0cnVjdCBkaXNrX3N0YXQgKipkaXNr cywgc3RydWN0IHBhcnRpdGlvbl9zdGF0ICoqcGFydGl0aW9ucyl7Ci0gICBGSUxFKiBmZDsKLUBA IC04MDMsNiArODE1LDcgQEAgdW5zaWduZWQgaW50IGdldGRpc2tzdGF0KHN0cnVjdCBkaXNrX3N0 YXQgKipkaXNrcywgc3RydWN0IHBhcnRpdGlvbl9zdGF0ICoqcGFydGkKLSAgIGludCBjUGFydGl0 aW9uID0gMDsKLSAgIGludCBmaWVsZHM7Ci0gICB1bnNpZ25lZCBkdW1teTsKLSsgIGNoYXIgZGV2 bmFtZVtQQVRIX01BWF07Ci0gCi0gICAqZGlza3MgPSBOVUxMOwotICAgKnBhcnRpdGlvbnMgPSBO VUxMOwotQEAgLTgxNSw4ICs4MjgsOSBAQCB1bnNpZ25lZCBpbnQgZ2V0ZGlza3N0YXQoc3RydWN0 IGRpc2tfc3RhdCAqKmRpc2tzLCBzdHJ1Y3QgcGFydGl0aW9uX3N0YXQgKipwYXJ0aQotICAgICAg IGZjbG9zZShmZCk7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLS0gICAgZmllbGRzID0gc3NjYW5m KGJ1ZmYsICIgJSpkICUqZCAlKnMgJSp1ICUqdSAlKnUgJSp1ICUqdSAlKnUgJSp1ICUqdSAlKnUg JSp1ICV1IiwgJmR1bW15KTsKLS0gICAgaWYgKGZpZWxkcyA9PSAxKXsKLSsgICAgZmllbGRzID0g c3NjYW5mKGJ1ZmYsICIgJSpkICUqZCAlMTVzICUqdSAlKnUgJSp1ICUqdSAlKnUgJSp1ICUqdSAl KnUgJSp1ICUqdSAldSIsCi0rICAgICAgICAgICAgJmRldm5hbWUsICZkdW1teSk7Ci0rICAgIGlm IChmaWVsZHMgPT0gMiAmJiBpc19kaXNrKGRldm5hbWUpKXsKLSAgICAgICAoKmRpc2tzKSA9IHJl YWxsb2MoKmRpc2tzLCAoY0Rpc2srMSkqc2l6ZW9mKHN0cnVjdCBkaXNrX3N0YXQpKTsKLSAgICAg ICBzc2NhbmYoYnVmZiwgICIgICAlKmQgICAgJSpkICUxNXMgJXUgJXUgJWxsdSAldSAldSAldSAl bGx1ICV1ICV1ICV1ICV1IiwKLSAgICAgICAgIC8vJmRpc2tfbWFqb3IsCi1AQCAtODM5LDcgKzg1 Myw5IEBAIHVuc2lnbmVkIGludCBnZXRkaXNrc3RhdChzdHJ1Y3QgZGlza19zdGF0ICoqZGlza3Ms IHN0cnVjdCBwYXJ0aXRpb25fc3RhdCAqKnBhcnRpCi0gICAgIH1lbHNlewotICAgICAgICgqcGFy dGl0aW9ucykgPSByZWFsbG9jKCpwYXJ0aXRpb25zLCAoY1BhcnRpdGlvbisxKSpzaXplb2Yoc3Ry dWN0IHBhcnRpdGlvbl9zdGF0KSk7Ci0gICAgICAgZmZsdXNoKHN0ZG91dCk7Ci0tICAgICAgc3Nj YW5mKGJ1ZmYsICAiICAgJSpkICAgICUqZCAlMTVzICV1ICVsbHUgJXUgJXUiLAotKyAgICAgIHNz Y2FuZihidWZmLCAgKGZpZWxkcyA9PSAyKQotKyAgICAgICAgICA/ICIgICAlKmQgICAgJSpkICUx NXMgJXUgJSp1ICVsbHUgJSp1ICV1ICUqdSAlbGx1ICUqdSAlKnUgJSp1ICUqdSIKLSsgICAgICAg ICAgOiAiICAgJSpkICAgICUqZCAlMTVzICV1ICVsbHUgJXUgJWxsdSIsCi0gICAgICAgICAvLyZw YXJ0X21ham9yLAotICAgICAgICAgLy8mcGFydF9taW5vciwKLSAgICAgICAgICgqcGFydGl0aW9u cylbY1BhcnRpdGlvbl0ucGFydGl0aW9uX25hbWUsCi1kaWZmIC0tZ2l0IGEvcHJvYy9zeXNpbmZv LmggYi9wcm9jL3N5c2luZm8uaAotaW5kZXggZTMwYTM4Yi4uNDk0YzRiMyAxMDA2NDQKLS0tLSBh L3Byb2Mvc3lzaW5mby5oCi0rKysgYi9wcm9jL3N5c2luZm8uaAotQEAgLTExMyw3ICsxMTMsNyBA QCB0eXBlZGVmIHN0cnVjdCBwYXJ0aXRpb25fc3RhdHsKLSAJdW5zaWduZWQgICAgICAgICAgIHBh cmVudF9kaXNrOyAgLy8gaW5kZXggaW50byBhIHN0cnVjdCBkaXNrX3N0YXQgYXJyYXkKLSAJdW5z aWduZWQgICAgICAgICAgIHJlYWRzOwotIAl1bnNpZ25lZCAgICAgICAgICAgd3JpdGVzOwotLQl1 bnNpZ25lZCAgICAgICAgICAgcmVxdWVzdGVkX3dyaXRlczsKLSsJdW5zaWduZWQgbG9uZyBsb25n IHJlcXVlc3RlZF93cml0ZXM7Ci0gfXBhcnRpdGlvbl9zdGF0OwotIAotIGV4dGVybiB1bnNpZ25l ZCBpbnQgZ2V0cGFydGl0aW9uc19udW0oc3RydWN0IGRpc2tfc3RhdCAqZGlza3MsIGludCBuZGlz a3MpOwotZGlmZiAtLWdpdCBhL3Ztc3RhdC5jIGIvdm1zdGF0LmMKLWluZGV4IGUwZDNjMjMuLmU4 MWE0YWMgMTAwNjQ0Ci0tLS0gYS92bXN0YXQuYwotKysrIGIvdm1zdGF0LmMKLUBAIC0yODYsNyAr Mjg2LDcgQEAgc3RhdGljIGludCBkaXNrcGFydGl0aW9uX2Zvcm1hdChjb25zdCBjaGFyKiBwYXJ0 aXRpb25fbmFtZSl7Ci0gICAgIHN0cnVjdCBkaXNrX3N0YXQgKmRpc2tzOwotICAgICBzdHJ1Y3Qg cGFydGl0aW9uX3N0YXQgKnBhcnRpdGlvbnMsICpjdXJyZW50X3BhcnRpdGlvbj1OVUxMOwotICAg ICB1bnNpZ25lZCBsb25nIG5kaXNrcywgaiwgaywgbnBhcnRpdGlvbnM7Ci0tICAgIGNvbnN0IGNo YXIgZm9ybWF0W10gPSAiJTIwdSAlMTBsbHUgJTEwdSAlMTB1XG4iOwotKyAgICBjb25zdCBjaGFy IGZvcm1hdFtdID0gIiUyMHUgJTEwbGx1ICUxMHUgJTEwbGx1XG4iOwotIAotICAgICBmRGlza3N0 YXQ9Zm9wZW4oIi9wcm9jL2Rpc2tzdGF0cyIsInJiIik7Ci0gICAgIGlmKCFmRGlza3N0YXQpewot LS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU2LXJlYWRw cm9jX2RvdWJsZV9mcmVlLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1Ni1yZWFkcHJv Y19kb3VibGVfZnJlZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGEzMDg0 Yi4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU2LXJlYWRwcm9jX2RvdWJs ZV9mcmVlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotRnJvbSAwYTdjZmYw YjgxYjMyMDMzNTkxNDM2ZDJiYmM2NWY1YzU0ZThmYTNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9j cHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTog RnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDU2LzcwXSBy ZWFkcHJvY19kb3VibGVfZnJlZQotCi0tLS0KLSBwcm9jL3JlYWRwcm9jLmMgfCAgICAyICsrCi0g MSBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9wcm9jL3JlYWRwcm9jLmMgYi9wcm9jL3JlYWRwcm9jLmMKLWluZGV4IDk2NjA3OTku LjQyMDMwNzEgMTAwNjQ0Ci0tLS0gYS9wcm9jL3JlYWRwcm9jLmMKLSsrKyBiL3Byb2MvcmVhZHBy b2MuYwotQEAgLTgyOCw2ICs4MjgsNyBAQCBwcm9jX3QqIHJlYWRwcm9jKFBST0NUQUIgKnJlc3Ry aWN0IGNvbnN0IFBULCBwcm9jX3QgKnJlc3RyaWN0IHApIHsKLSAKLSAgIHNhdmVkX3AgPSBwOwot ICAgaWYoIXApIHAgPSB4Y2FsbG9jKHAsIHNpemVvZiAqcCk7IC8qIHBhc3NlZCBidWYgb3IgYWxs b2NlZCBtZW0gKi8KLSsgIGVsc2UgbWVtc2V0KHAsIDAsIHNpemVvZiAqcCk7Ci0gCi0gICBmb3Io OzspewotICAgICAvLyBmaWxscyBpbiB0aGUgcGF0aCwgcGx1cyBwLT50aWQgYW5kIHAtPnRnaWQK LUBAIC04NTYsNiArODU3LDcgQEAgcHJvY190KiByZWFkdGFzayhQUk9DVEFCICpyZXN0cmljdCBj b25zdCBQVCwgY29uc3QgcHJvY190ICpyZXN0cmljdCBjb25zdCBwLCBwcm8KLSAKLSAgIHNhdmVk X3QgPSB0OwotICAgaWYoIXQpIHQgPSB4Y2FsbG9jKHQsIHNpemVvZiAqdCk7IC8qIHBhc3NlZCBi dWYgb3IgYWxsb2NlZCBtZW0gKi8KLSsgIGVsc2UgbWVtc2V0KHQsIDAsIHNpemVvZiAqdCk7Ci0g Ci0gICAvLyAxLiBnb3QgdG8gZmFrZSBhIHRocmVhZCBmb3Igb2xkIGtlcm5lbHMKLSAgIC8vIDIu IGZvciBzaW5nbGUtdGhyZWFkZWQgcHJvY2Vzc2VzLCB0aGlzIGlzIGZhc3RlciAoYnV0IG11c3Qg cGF0Y2ggdXAgc3R1ZmYgdGhhdCBkaWZmZXJzISkKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEv cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1Ny12bXN0YXRfdW5pdHMucGF0Y2ggYi9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDU3LXZtc3RhdF91bml0cy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggZWYyYmIzZS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU3 LXZtc3RhdF91bml0cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLUZyb20g Y2MzZDgyYWNhOTFlMTkxMGU1ZGFjYjU2ZjJiNTBlMjNlYWI2NmQ3MyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWlu L3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4K LURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1 Ny83MF0gdm1zdGF0X3VuaXRzCi0KLXRvIHN0b3Agc29tZSBvdmVyZmxvd3Mgb2Ygc29tZSBrZXJu ZWwgdmFyaWFibGVzCi1CdWctRGViaWFuOiBodHRwOi8vYnVncy5kZWJpYW4ub3JnLzU1ODEzNAot QnVnLURlYmlhbjogaHR0cDovL2J1Z3MuZGViaWFuLm9yZy81NTgzNjEKLS0tLQotIHByb2Mvc3lz aW5mby5jIHwgICAgMiArLQotIHZtc3RhdC44ICAgICAgIHwgICAgMyArKy0KLSB2bXN0YXQuYyAg ICAgICB8ICAgIDggKysrKy0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwg NiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Byb2Mvc3lzaW5mby5jIGIvcHJvYy9zeXNp bmZvLmMKLWluZGV4IDQ0NGVlNWIuLjM4MmM4ZGMgMTAwNjQ0Ci0tLS0gYS9wcm9jL3N5c2luZm8u YwotKysrIGIvcHJvYy9zeXNpbmZvLmMKLUBAIC02MDYsNyArNjA2LDcgQEAgdm9pZCBtZW1pbmZv KHZvaWQpewotICAgICApOwotICAgICBoZWFkID0gdGFpbCsxOwotICAgICBpZighZm91bmQpIGdv dG8gbmV4dGxpbmU7Ci0tICAgICooZm91bmQtPnNsb3QpID0gc3RydG91bChoZWFkLCZ0YWlsLDEw KTsKLSsgICAgKihmb3VuZC0+c2xvdCkgPSAodW5zaWduZWQgbG9uZylzdHJ0b3VsbChoZWFkLCZ0 YWlsLDEwKTsKLSBuZXh0bGluZToKLSAgICAgdGFpbCA9IHN0cmNocihoZWFkLCAnXG4nKTsKLSAg ICAgaWYoIXRhaWwpIGJyZWFrOwotZGlmZiAtLWdpdCBhL3Ztc3RhdC44IGIvdm1zdGF0LjgKLWlu ZGV4IGM5NzgyNmYuLjQ4NjIyNGIgMTAwNjQ0Ci0tLS0gYS92bXN0YXQuOAotKysrIGIvdm1zdGF0 LjgKLUBAIC02Nyw3ICs2Nyw4IEBAIFRoZSBcZkItRFxmUCByZXBvcnRzIHNvbWUgc3VtbWFyeSBz dGF0aXN0aWNzIGFib3V0IGRpc2sgYWN0aXZpdHkuCi0gLlBQCi0gVGhlIFxmQlwtcFxmUCBmb2xs b3dlZCBieSBzb21lIHBhcnRpdGlvbiBuYW1lIGZvciBkZXRhaWxlZCBzdGF0aXN0aWNzICgyLjUu NzAgb3IgYWJvdmUgcmVxdWlyZWQpCi0gLlBQCi0tVGhlIFxmQlwtU1xmUCBmb2xsb3dlZCBieSBr IG9yIEsgb3IgbSBvciBNIHN3aXRjaGVzIG91dHB1dHMgYmV0d2VlbiAxMDAwLCAxMDI0LCAxMDAw MDAwLCBvciAxMDQ4NTc2IGJ5dGVzCi0rVGhlIFxmQlwtU1xmUCBmb2xsb3dlZCBieSBrIG9yIEsg b3IgbSBvciBNIHN3aXRjaGVzIGNoYW5nZXMgdGhlIHVuaXRzIG9mCi0rb3VwdXQgZnJvbSBieXRl cyB0byBvdXRwdXRzIGJldHdlZW4gMTAwMCwgMTAyNCwgMTAwMDAwMCwgb3IgMTA0ODU3NiBieXRl cy4gTm90ZSB0aGlzIGRvZXMgbm90IGNoYW5nZSB0aGUgc3dhcCAoc2kvc28pIG9yIGJsb2NrIChi aS9ibykgZmllbGRzLgotIC5QUAotIFRoZSBcZkJcLVZcZlAgc3dpdGNoIHJlc3VsdHMgaW4gZGlz cGxheWluZyB2ZXJzaW9uIGluZm9ybWF0aW9uLgotIC5QUAotZGlmZiAtLWdpdCBhL3Ztc3RhdC5j IGIvdm1zdGF0LmMKLWluZGV4IGU4MWE0YWMuLmNiYmIwOTQgMTAwNjQ0Ci0tLS0gYS92bXN0YXQu YwotKysrIGIvdm1zdGF0LmMKLUBAIC0yMDksOCArMjA5LDggQEAgc3RhdGljIHZvaWQgbmV3X2Zv cm1hdCh2b2lkKSB7Ci0gCSB1bml0Q29udmVydChrYl9zd2FwX3VzZWQpLCB1bml0Q29udmVydChr Yl9tYWluX2ZyZWUpLAotIAkgdW5pdENvbnZlcnQoYV9vcHRpb24/a2JfaW5hY3RpdmU6a2JfbWFp bl9idWZmZXJzKSwKLSAJIHVuaXRDb252ZXJ0KGFfb3B0aW9uP2tiX2FjdGl2ZTprYl9tYWluX2Nh Y2hlZCksCi0tCSAodW5zaWduZWQpKCAoKnBzd3BpbiAgKiB1bml0Q29udmVydChrYl9wZXJfcGFn ZSkgKiBoeiArIGRpdm8yKSAvIERpdiApLAotLQkgKHVuc2lnbmVkKSggKCpwc3dwb3V0ICogdW5p dENvbnZlcnQoa2JfcGVyX3BhZ2UpICogaHogKyBkaXZvMikgLyBEaXYgKSwKLSsJICh1bnNpZ25l ZCkoICgqcHN3cGluICAqIGtiX3Blcl9wYWdlICogaHogKyBkaXZvMikgLyBEaXYgKSwKLSsJICh1 bnNpZ25lZCkoICgqcHN3cG91dCAqIGtiX3Blcl9wYWdlICogaHogKyBkaXZvMikgLyBEaXYgKSwK LSAJICh1bnNpZ25lZCkoICgqcGdwZ2luICAgICAgICAgICAgICAgICogaHogKyBkaXZvMikgLyBE aXYgKSwKLSAJICh1bnNpZ25lZCkoICgqcGdwZ291dCAgICAgICAgICAgICAgICogaHogKyBkaXZv MikgLyBEaXYgKSwKLSAJICh1bnNpZ25lZCkoICgqaW50ciAgICAgICAgICAgICAgICAgICogaHog KyBkaXZvMikgLyBEaXYgKSwKLUBAIC0yNTgsOCArMjU4LDggQEAgc3RhdGljIHZvaWQgbmV3X2Zv cm1hdCh2b2lkKSB7Ci0gCSAgIHVuaXRDb252ZXJ0KGtiX3N3YXBfdXNlZCksdW5pdENvbnZlcnQo a2JfbWFpbl9mcmVlKSwKLSAJICAgdW5pdENvbnZlcnQoYV9vcHRpb24/a2JfaW5hY3RpdmU6a2Jf bWFpbl9idWZmZXJzKSwKLSAJICAgdW5pdENvbnZlcnQoYV9vcHRpb24/a2JfYWN0aXZlOmtiX21h aW5fY2FjaGVkKSwKLS0JICAgKHVuc2lnbmVkKSggKCAocHN3cGluIFt0b2ddIC0gcHN3cGluIFsh dG9nXSkqdW5pdENvbnZlcnQoa2JfcGVyX3BhZ2UpK3NsZWVwX2hhbGYgKS9zbGVlcF90aW1lICks IC8qc2kqLwotLQkgICAodW5zaWduZWQpKCAoIChwc3dwb3V0W3RvZ10gLSBwc3dwb3V0WyF0b2dd KSp1bml0Q29udmVydChrYl9wZXJfcGFnZSkrc2xlZXBfaGFsZiApL3NsZWVwX3RpbWUgKSwgLypz byovCi0rCSAgICh1bnNpZ25lZCkoICggKHBzd3BpbiBbdG9nXSAtIHBzd3BpbiBbIXRvZ10pKmti X3Blcl9wYWdlK3NsZWVwX2hhbGYgKS9zbGVlcF90aW1lICksIC8qc2kqLwotKwkgICAodW5zaWdu ZWQpKCAoIChwc3dwb3V0W3RvZ10gLSBwc3dwb3V0WyF0b2ddKSprYl9wZXJfcGFnZStzbGVlcF9o YWxmICkvc2xlZXBfdGltZSApLCAvKnNvKi8KLSAJICAgKHVuc2lnbmVkKSggKCAgcGdwZ2luIFt0 b2ddIC0gcGdwZ2luIFshdG9nXSAgICAgICAgICAgICArc2xlZXBfaGFsZiApL3NsZWVwX3RpbWUg KSwgLypiaSovCi0gCSAgICh1bnNpZ25lZCkoICggIHBncGdvdXRbdG9nXSAtIHBncGdvdXRbIXRv Z10gICAgICAgICAgICAgK3NsZWVwX2hhbGYgKS9zbGVlcF90aW1lICksIC8qYm8qLwotIAkgICAo dW5zaWduZWQpKCAoICBpbnRyICAgW3RvZ10gLSBpbnRyICAgWyF0b2ddICAgICAgICAgICAgICtz bGVlcF9oYWxmICkvc2xlZXBfdGltZSApLCAvKmluKi8KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0 IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1OC1za2lsbF9udWxsX2FyZ3YucGF0Y2ggYi9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDU4LXNraWxsX251bGxfYXJndi5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggNjliMDAyOS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0z LjIuOC8wMDU4LXNraWxsX251bGxfYXJndi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICsw LDAgQEAKLUZyb20gNTJlYzk5MGEwODIzNTAxZTI4MDE1YzJlOTYwN2RjNmNmYzc1NDJiYSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJp YW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9A ZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1Ympl Y3Q6IFtQQVRDSCA1OC83MF0gc2tpbGxfbnVsbF9hcmd2Ci0KLS0tLQotIHNraWxsLmMgfCAgICAy ICstCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9za2lsbC5jIGIvc2tpbGwuYwotaW5kZXggYzhhZjlmZC4uZDlhMWFmOSAx MDA2NDQKLS0tLSBhL3NraWxsLmMKLSsrKyBiL3NraWxsLmMKLUBAIC0zMDcsNyArMzA3LDcgQEAg bm9fbW9yZV9hcmdzOgotICAgICBsb25nIHBpZDsKLSAgICAgY2hhciAqZW5kcDsKLSAgICAgcGlk ID0gc3RydG9sKGFyZ3ZbYXJnY10sJmVuZHAsMTApOwotLSAgICBpZighKmVuZHApewotKyAgICBp ZighKmVuZHAgJiYgKGVuZHAgIT0gYXJndlthcmdjXSkpewotICAgICAgIGlmKCFraWxsKChwaWRf dClwaWQsc2lnbm8pKSBjb250aW51ZTsKLSAgICAgICAvLyBUaGUgVU5JWCBzdGFuZGFyZCBjb250 cmFkaWN0cyBpdHNlbGYuIElmIGF0IGxlYXN0IG9uZSBwcm9jZXNzCi0gICAgICAgLy8gaXMgbWF0 Y2hlZCBmb3IgZWFjaCBQSUQgKGFzIGlmIHByb2Nlc3NlcyBjb3VsZCBzaGFyZSBQSUQhKSBhbmQK LS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1OS1za2ls bF9tdWx0aWFyZy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTktc2tpbGxfbXVsdGlh cmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyYTNhZGEuLjAwMDAwMDAK LS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1OS1za2lsbF9tdWx0aWFyZy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLUZyb20gMjZjZDhlZWU5OTc0MmZkNjliMDA2YjRi ODQ2N2FlZmMyMzBhZTYxZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9m dHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04 LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAg MjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1OS83MF0gc2tpbGxfbXVsdGlhcmcKLQot LS0tCi0gc2tpbGwuYyB8ICAgIDIgKysKLSAxIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NraWxsLmMgYi9za2lsbC5jCi1pbmRl eCBkOWExYWY5Li4yZDkwYWQwIDEwMDY0NAotLS0tIGEvc2tpbGwuYwotKysrIGIvc2tpbGwuYwot QEAgLTQ2NCw2ICs0NjQsOCBAQCBzZWxlY3Rpb25fY29sbGVjdGlvbjoKLSAgICAgc3dpdGNoKGZv cmNlKXsgLyogZmFsbCB0aHJvdWdoIGVhY2ggZGF0YSB0eXBlICovCi0gICAgIGRlZmF1bHQ6IHNr aWxsc25pY2VfdXNhZ2UoKTsKLSAgICAgY2FzZSAwOiAvKiBub3QgZm9yY2VkICovCi0rICAgICAg aWYgKGFyZ3B0ciAmJiBhcmdwdHJbMF0gPT0gJy0nKSAvKiBpdHMgdGhlIG5leHQgYXJndW1lbnQg bm90IGEgcGFyYW1ldGVyICovCi0rICAgICAgICBjb250aW51ZTsKLSAgICAgY2FzZSAndCc6Ci0g ICAgICAgaWYoYXJnYyl7Ci0gICAgICAgICBzdHJ1Y3Qgc3RhdCBzYnVmOwotLS0gCi0xLjcuMAot CmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDYwLXByb2NfdmVyc2lvbl9jb25z dHJ1Y3Rvci5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjAtcHJvY192ZXJzaW9uX2Nv bnN0cnVjdG9yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTRkMjcxLi4w MDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjAtcHJvY192ZXJzaW9uX2NvbnN0 cnVjdG9yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotRnJvbSA1YjdiZjI1 YzBiNTQ3MjM3ODlhYmZkNWY0Njc3OWFlNmFlNDllMmMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9j cHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTog RnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDYwLzcwXSBw cm9jX3ZlcnNpb25fY29uc3RydWN0b3IKLQotLS0tCi0gcHJvYy9zeXNpbmZvLmMgfCAgICAxICsK LSBwcm9jL3ZlcnNpb24uYyB8ICAgIDMgKy0tCi0gcHJvYy92ZXJzaW9uLmggfCAgICAxICsKLSAz IGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL3Byb2Mvc3lzaW5mby5jIGIvcHJvYy9zeXNpbmZvLmMKLWluZGV4IDM4MmM4ZGMuLmM4 MDRmNDkgMTAwNjQ0Ci0tLS0gYS9wcm9jL3N5c2luZm8uYwotKysrIGIvcHJvYy9zeXNpbmZvLmMK LUBAIC0yMTMsNiArMjEzLDcgQEAgc3RhdGljIGludCBjaGVja19mb3JfcHJpdnModm9pZCl7Ci0g c3RhdGljIHZvaWQgaW5pdF9saWJwcm9jKHZvaWQpIF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9y KSk7Ci0gc3RhdGljIHZvaWQgaW5pdF9saWJwcm9jKHZvaWQpewotICAgaGF2ZV9wcml2cyA9IGNo ZWNrX2Zvcl9wcml2cygpOwotKyAgaW5pdF9MaW51eF92ZXJzaW9uKCk7IC8qIE11c3QgYmUgY2Fs bGVkIGJlZm9yZSB3ZSBjaGVjayBjb2RlICovCi0gICAvLyBvdWdodCB0byBjb3VudCBDUFVzIGlu IC9wcm9jL3N0YXQgaW5zdGVhZCBvZiByZWx5aW5nCi0gICAvLyBvbiBnbGliYywgd2hpY2ggZm9v bGlzaGx5IHRyaWVzIHRvIHBhcnNlIC9wcm9jL2NwdWluZm8KLSAgIC8vCi1kaWZmIC0tZ2l0IGEv cHJvYy92ZXJzaW9uLmMgYi9wcm9jL3ZlcnNpb24uYwotaW5kZXggNzkzMDM2Ny4uY2MyMTViYyAx MDA2NDQKLS0tLSBhL3Byb2MvdmVyc2lvbi5jCi0rKysgYi9wcm9jL3ZlcnNpb24uYwotQEAgLTMz LDggKzMzLDcgQEAgdm9pZCBkaXNwbGF5X3ZlcnNpb24odm9pZCkgewotIAotIGludCBsaW51eF92 ZXJzaW9uX2NvZGU7Ci0gCi0tc3RhdGljIHZvaWQgaW5pdF9MaW51eF92ZXJzaW9uKHZvaWQpIF9f YXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSk7Ci0tc3RhdGljIHZvaWQgaW5pdF9MaW51eF92ZXJz aW9uKHZvaWQpIHsKLSt2b2lkIGluaXRfTGludXhfdmVyc2lvbih2b2lkKSB7Ci0gICAgIGludCB4 ID0gMCwgeSA9IDAsIHogPSAwOwkvKiBjbGVhcmVkIGluIGNhc2Ugc3NjYW5mKCkgPCAzICovCi0g ICAgIEZJTEUgKmZwOwotICAgICBjaGFyIGJ1ZlsyNTZdOwotZGlmZiAtLWdpdCBhL3Byb2MvdmVy c2lvbi5oIGIvcHJvYy92ZXJzaW9uLmgKLWluZGV4IDM3NjliODQuLjA0YTc1ZTkgMTAwNjQ0Ci0t LS0gYS9wcm9jL3ZlcnNpb24uaAotKysrIGIvcHJvYy92ZXJzaW9uLmgKLUBAIC0xNCw2ICsxNCw3 IEBACi0gCi0gRVhURVJOX0NfQkVHSU4KLSAKLSt2b2lkIGluaXRfTGludXhfdmVyc2lvbih2b2lk KTsgICAgLyogR2V0IExpbnV4IHZlcnNpb24gKi8KLSBleHRlcm4gdm9pZCBkaXNwbGF5X3ZlcnNp b24odm9pZCk7CS8qIGRpc3BsYXkgc3VpdGUgdmVyc2lvbiAqLwotIGV4dGVybiBjb25zdCBjaGFy IHByb2Nwc192ZXJzaW9uW107CQkvKiBnbG9iYWwgYnVmIGZvciBzdWl0ZSB2ZXJzaW9uICovCi0g Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjEtcG1h cHNfc21hcHMucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDYxLXBtYXBzX3NtYXBzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGUyMzU4Li4wMDAwMDAwCi0tLSBh L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjEtcG1hcHNfc21hcHMucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxNTAgKzAsMCBAQAotRnJvbSAzNzUwMjM1MGY0NzI3N2FkNjQ3ZWQ3N2FkNzVlMzQ1 Yjc2ZTMxM2M1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5k ZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFu LnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0 NiArMDEwMAotU3ViamVjdDogW1BBVENIIDYxLzcwXSBwbWFwc19zbWFwcwotCi0tLS0KLSBwbWFw LmMgfCAgIDg2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMTgg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9wbWFwLmMgYi9wbWFwLmMKLWluZGV4IDZiODY1 ZmMuLjNkY2I4MWUgMTAwNjQ0Ci0tLS0gYS9wbWFwLmMKLSsrKyBiL3BtYXAuYwotQEAgLTEyNiwy NCArMTI2LDM3IEBAIHN0YXRpYyBpbnQgb25lX3Byb2MocHJvY190ICpwKXsKLSAgIGNoYXIgYnVm WzMyXTsKLSAgIGNoYXIgbWFwYnVmWzk2MDBdOwotICAgY2hhciBjbWRidWZbNTEyXTsKLSsgIEZJ TEUgKmZwOwotICAgdW5zaWduZWQgbG9uZyB0b3RhbF9zaGFyZWQgPSAwdWw7Ci0gICB1bnNpZ25l ZCBsb25nIHRvdGFsX3ByaXZhdGVfcmVhZG9ubHkgPSAwdWw7Ci0gICB1bnNpZ25lZCBsb25nIHRv dGFsX3ByaXZhdGVfd3JpdGVhYmxlID0gMHVsOwotIAotKyAgY2hhciAqY3AyPU5VTEw7Ci0rICB1 bnNpZ25lZCBsb25nIGxvbmcgcnNzID0gMHVsbDsKLSsgIHVuc2lnbmVkIGxvbmcgbG9uZyBwcml2 YXRlX2RpcnR5ID0gMHVsbDsKLSsgIHVuc2lnbmVkIGxvbmcgbG9uZyBzaGFyZWRfZGlydHkgPSAw dWxsOwotKyAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsX3JzcyA9IDB1bGw7Ci0rICB1bnNpZ25l ZCBsb25nIGxvbmcgdG90YWxfcHJpdmF0ZV9kaXJ0eSA9IDB1bGw7Ci0rICB1bnNpZ25lZCBsb25n IGxvbmcgdG90YWxfc2hhcmVkX2RpcnR5ID0gMHVsbDsKLSsKLSAgIC8vIE92ZXJraWxsLCBidXQg d2hvIGtub3dzIHdoYXQgaXMgcHJvcGVyPyBUaGUgInciIHByb2cKLSAgIC8vIHVzZXMgdGhlIHR0 eSB3aWR0aCB0byBkZXRlcm1pbmUgdGhpcy4KLSAgIGludCBtYXhjbWQgPSAweGZmZmZmOwotIAot ICAgc3ByaW50ZihidWYsIi9wcm9jLyV1L21hcHMiLHAtPnRnaWQpOwotLSAgaWYoIWZyZW9wZW4o YnVmLCAiciIsIHN0ZGluKSkgcmV0dXJuIDE7Ci0rICBpZiAoIChmcCA9IGZvcGVuKGJ1ZiwgInIi KSkgPT0gTlVMTCkgcmV0dXJuIDE7Ci0rICBpZiAoeF9vcHRpb24pIHsKLSsgICAgc3ByaW50Zihi dWYsIi9wcm9jLyV1L3NtYXBzIixwLT50Z2lkKTsKLSsgICAgaWYgKCAoZnAgPSBmcmVvcGVuKGJ1 ZiwgInIiLCBmcCkpID09IE5VTEwpIHJldHVybiAxOwotKyAgfQotIAotICAgZXNjYXBlX2NvbW1h bmQoY21kYnVmLCBwLCBzaXplb2YgY21kYnVmLCAmbWF4Y21kLCBFU0NfQVJHU3xFU0NfQlJBQ0tF VFMpOwotICAgcHJpbnRmKCIldTogICAlc1xuIiwgcC0+dGdpZCwgY21kYnVmKTsKLSAKLSAgIGlm KCFxX29wdGlvbiAmJiAoeF9vcHRpb258ZF9vcHRpb24pKXsKLSAgICAgaWYoeF9vcHRpb24pewot LSAgICAgIGlmKHNpemVvZihLTE9ORyk9PTQpIHByaW50ZigiQWRkcmVzcyAgIEtieXRlcyAgICAg UlNTICAgIEFub24gIExvY2tlZCBNb2RlICAgTWFwcGluZ1xuIik7Ci0tICAgICAgZWxzZSAgICAg ICAgIHByaW50ZigiQWRkcmVzcyAgICAgICAgICAgS2J5dGVzICAgICBSU1MgICAgQW5vbiAgTG9j a2VkIE1vZGUgICBNYXBwaW5nXG4iKTsKLSsgICAgICBpZihzaXplb2YoS0xPTkcpPT00KSBwcmlu dGYoIkFkZHJlc3MgICBLYnl0ZXMgICAgIFJTUyAgIERpcnR5IE1vZGUgICBNYXBwaW5nXG4iKTsK LSsgICAgICBlbHNlICAgICAgICAgcHJpbnRmKCJBZGRyZXNzICAgICAgICAgICBLYnl0ZXMgICAg IFJTUyAgIERpcnR5IE1vZGUgICBNYXBwaW5nXG4iKTsKLSAgICAgfQotICAgICBpZihkX29wdGlv bil7Ci0gICAgICAgaWYoc2l6ZW9mKEtMT05HKT09NCkgcHJpbnRmKCJBZGRyZXNzICAgS2J5dGVz IE1vZGUgIE9mZnNldCAgICAgICAgICAgRGV2aWNlICAgIE1hcHBpbmdcbiIpOwotQEAgLTE1MSwx MiArMTY0LDU0IEBAIHN0YXRpYyBpbnQgb25lX3Byb2MocHJvY190ICpwKXsKLSAgICAgfQotICAg fQotIAotLSAgd2hpbGUoZmdldHMobWFwYnVmLHNpemVvZiBtYXBidWYsc3RkaW4pKXsKLSsgIHdo aWxlKGZnZXRzKG1hcGJ1ZixzaXplb2YgbWFwYnVmLGZwKSl7Ci0gICAgIGNoYXIgZmxhZ3NbMzJd OwotICAgICBjaGFyICp0bXA7IC8vIHRvIGNsZWFuIHVwIHVucHJpbnRhYmxlcwotLSAgICB1bnNp Z25lZCBLTE9ORyBzdGFydCwgZW5kLCBkaWZmOwotKyAgICB1bnNpZ25lZCBLTE9ORyBzdGFydCwg ZW5kLCBkaWZmPTA7Ci0gICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlX29mZnNldCwgaW5vZGU7 Ci0gICAgIHVuc2lnbmVkIGRldl9tYWpvciwgZGV2X21pbm9yOwotKyAgICB1bnNpZ25lZCBsb25n IGxvbmcgc21hcF92YWx1ZTsKLSsgICAgY2hhciBzbWFwX2tleVsyMF07Ci0rCi0rICAgIC8qIGhl eCB2YWx1ZXMgYXJlIGxvd2VyIGNhc2Ugb3IgbnVtZXJpYywga2V5cyBhcmUgdXBwZXIgKi8KLSsg ICAgaWYgKG1hcGJ1ZlswXSA+PSAnQScgJiYgbWFwYnVmWzBdIDw9ICdaJykgewotKyAgICAgIC8q IEl0cyBhIGtleSAqLwotKyAgICAgIGlmIChzc2NhbmYobWFwYnVmLCIlMjBbXjpdOiAlbGx1Iiwg c21hcF9rZXksICZzbWFwX3ZhbHVlKSA9PSAyKSB7Ci0rICAgICAgICBpZiAoc3RybmNtcCgiUnNz Iiwgc21hcF9rZXksIDMpID09IDApIHsKLSsgICAgICAgICAgcnNzID0gc21hcF92YWx1ZTsKLSsg ICAgICAgICAgdG90YWxfcnNzICs9IHNtYXBfdmFsdWU7Ci0rICAgICAgICAgIGNvbnRpbnVlOwot KyAgICAgICAgfQotKyAgICAgICAgaWYgKHN0cm5jbXAoIlNoYXJlZF9EaXJ0eSIsIHNtYXBfa2V5 LCAxMikgPT0gMCkgewotKyAgICAgICAgICBzaGFyZWRfZGlydHkgPSBzbWFwX3ZhbHVlOwotKyAg ICAgICAgICB0b3RhbF9zaGFyZWRfZGlydHkgKz0gc21hcF92YWx1ZTsKLSsgICAgICAgICAgY29u dGludWU7Ci0rICAgICAgICB9Ci0rICAgICAgICBpZiAoc3RybmNtcCgiUHJpdmF0ZV9EaXJ0eSIs IHNtYXBfa2V5LCAxMykgPT0gMCkgewotKyAgICAgICAgICBwcml2YXRlX2RpcnR5ID0gc21hcF92 YWx1ZTsKLSsgICAgICAgICAgdG90YWxfcHJpdmF0ZV9kaXJ0eSArPSBzbWFwX3ZhbHVlOwotKyAg ICAgICAgICBjb250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICAgIGlmIChzdHJuY21wKCJTd2Fw Iiwgc21hcF9rZXksIDQpID09IDApIHsgLypkb2VzbnQgbWF0dGVyIGFzIGxvbmcgYXMgbGFzdCov Ci0rICAgICAgICAgIHByaW50ZigKLSsgICAgICAgICAgICAoc2l6ZW9mKEtMT05HKT09OCkKLSsg ICAgICAgICAgICAgID8gIiUwMTYiS0xGInggJTdsdSAlN2xsdSAlN2xsdSAlcyAgJXNcbiIKLSsg ICAgICAgICAgICAgIDogICAgICAiJTA4bHggJTdsdSAlN2xsdSAlN2xsdSAlcyAgJXNcbiIsCi0r ICAgICAgICAgICAgc3RhcnQsCi0rICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGRpZmY+PjEw KSwKLSsgICAgICAgICAgICByc3MsCi0rICAgICAgICAgICAgKHByaXZhdGVfZGlydHkgKyBzaGFy ZWRfZGlydHkpLAotKyAgICAgICAgICAgIGZsYWdzLAotKyAgICAgICAgICAgIGNwMgotKyAgICAg ICAgICApOwotKyAgICAgICAgICAvKiByZXNldCBzb21lIGNvdW50ZXJzICovCi0rICAgICAgICAg IHJzcyA9IHNoYXJlZF9kaXJ0eSA9IHByaXZhdGVfZGlydHkgPSAwdWxsOwotKyAgICAgICAgICBj b250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICAgIC8qIE90aGVyIGtleXMgKi8KLSsgICAgICAg IGNvbnRpbnVlOwotKyAgICAgIH0KLSsgICAgfQotICAgICBzc2NhbmYobWFwYnVmLCIlIktMRiJ4 LSUiS0xGInggJTMxcyAlTHggJXg6JXggJUx1IiwgJnN0YXJ0LCAmZW5kLCBmbGFncywgJmZpbGVf b2Zmc2V0LCAmZGV2X21ham9yLCAmZGV2X21pbm9yLCAmaW5vZGUpOwotIAotICAgICBpZihzdGFy dCA+IHJhbmdlX2hpZ2gpCi1AQCAtMTg2LDE2ICsyNDEsOSBAQCBzdGF0aWMgaW50IG9uZV9wcm9j KHByb2NfdCAqcCl7Ci0gICAgIGZsYWdzWzVdID0gJ1wwJzsKLSAKLSAgICAgaWYoeF9vcHRpb24p ewotLSAgICAgIGNvbnN0IGNoYXIgKmNwID0gbWFwcGluZ19uYW1lKHAsIHN0YXJ0LCBkaWZmLCBt YXBidWYsIDAsIGRldl9tYWpvciwgZGV2X21pbm9yLCBpbm9kZSk7Ci0tICAgICAgcHJpbnRmKAot LSAgICAgICAgKHNpemVvZihLTE9ORyk9PTgpCi0tICAgICAgICAgID8gIiUwMTYiS0xGInggJTds dSAgICAgICAtICAgICAgIC0gICAgICAgLSAlcyAgJXNcbiIKLS0gICAgICAgICAgOiAgICAgICIl MDhseCAlN2x1ICAgICAgIC0gICAgICAgLSAgICAgICAtICVzICAlc1xuIiwKLS0gICAgICAgIHN0 YXJ0LAotLSAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGRpZmY+PjEwKSwKLS0gICAgICAgIGZsYWdz LAotLSAgICAgICAgY3AKLS0gICAgICApOwotKyAgICAgICAgICBjcDIgPSBtYXBwaW5nX25hbWUo cCwgc3RhcnQsIGRpZmYsIG1hcGJ1ZiwgMCwgZGV2X21ham9yLCBkZXZfbWlub3IsIGlub2RlKTsK LSsgICAgICAvKiBwcmludGVkIHdpdGggdGhlIGtleXMgKi8KLSsgICAgICBjb250aW51ZTsKLSAg ICAgfQotICAgICBpZihkX29wdGlvbil7Ci0gICAgICAgY29uc3QgY2hhciAqY3AgPSBtYXBwaW5n X25hbWUocCwgc3RhcnQsIGRpZmYsIG1hcGJ1ZiwgMCwgZGV2X21ham9yLCBkZXZfbWlub3IsIGlu b2RlKTsKLUBAIC0yMzIsMTAgKzI4MCwxMiBAQCBzdGF0aWMgaW50IG9uZV9wcm9jKHByb2NfdCAq cCl7Ci0gICBpZighcV9vcHRpb24pewotICAgICBpZih4X29wdGlvbil7Ci0gICAgICAgaWYoc2l6 ZW9mKEtMT05HKT09OCl7Ci0tICAgICAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0gIC0tLS0t LSAgLS0tLS0tICAtLS0tLS0gIC0tLS0tLVxuIik7Ci0rICAgICAgICBwcmludGYoIi0tLS0tLS0t LS0tLS0tLS0gIC0tLS0tLSAgLS0tLS0tICAtLS0tLS1cbiIpOwotICAgICAgICAgcHJpbnRmKAot LSAgICAgICAgICAidG90YWwga0IgJTE1bGQgICAgICAgLSAgICAgICAtICAgICAgIC1cbiIsCi0t ICAgICAgICAgICh0b3RhbF9zaGFyZWQgKyB0b3RhbF9wcml2YXRlX3dyaXRlYWJsZSArIHRvdGFs X3ByaXZhdGVfcmVhZG9ubHkpID4+IDEwCi0rICAgICAgICAgICJ0b3RhbCBrQiAlMTVsZCAlN2xs dSAlN2xsdVxuIiwKLSsgICAgICAgICAgKHRvdGFsX3NoYXJlZCArIHRvdGFsX3ByaXZhdGVfd3Jp dGVhYmxlICsgdG90YWxfcHJpdmF0ZV9yZWFkb25seSkgPj4gMTAsCi0rICAgICAgICAgIHRvdGFs X3JzcywgKHRvdGFsX3NoYXJlZF9kaXJ0eSt0b3RhbF9wcml2YXRlX2RpcnR5KQotKwotICAgICAg ICAgKTsKLSAgICAgICB9ZWxzZXsKLSAgICAgICAgIHByaW50ZigiLS0tLS0tLS0gLS0tLS0tLSAt LS0tLS0tIC0tLS0tLS0gLS0tLS0tLVxuIik7Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwNjItdG9wX251bWVyaWNfYXJncy5wYXRjaCBiL3BhdGNoZXMv cHJvY3BzLTMuMi44LzAwNjItdG9wX251bWVyaWNfYXJncy5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZDE0ODc3NC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDYyLXRvcF9udW1lcmljX2FyZ3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDkgKzAs MCBAQAotRnJvbSAzNzQyNzY1ZjBiZjMwMTQyYzhmN2QxNTEwYTg2YjBiYWJlODBlNmU2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlh bi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0Bk ZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVj dDogW1BBVENIIDYyLzcwXSB0b3BfbnVtZXJpY19hcmdzCi0KLS0tLQotIHRvcC5jIHwgICA0OCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KLSAxIGZpbGVz IGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvdG9wLmMgYi90b3AuYwotaW5kZXggZWEzMzk4OS4uZTE5NDI0NCAxMDA2NDQKLS0tLSBhL3Rv cC5jCi0rKysgYi90b3AuYwotQEAgLTMyLDYgKzMyLDcgQEAKLSAjaW5jbHVkZSA8c3RkYXJnLmg+ Ci0gI2luY2x1ZGUgPHN0ZGlvLmg+Ci0gI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDxt YXRoLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotIAotIC8vIEZvdWwgUE9TIGRlZmluZXMgYWxs IHNvcnRzIG9mIHN0dWZmLi4uCi1AQCAtMTgyNSw4ICsxODI2LDEyIEBAIHN0YXRpYyB2b2lkIHBh cnNlX2FyZ3MgKGNoYXIgKiphcmdzKQotIAotICAgIHdoaWxlICgqYXJncykgewotICAgICAgIGNv bnN0IGNoYXIgKmNwID0gKihhcmdzKyspOwotKyAgICAgIGlmICgqY3AhPSctJykgewotKyAgICAg ICBzdGRfZXJyKGZtdG1rKCJ1bmtub3duIGFyZ3VtZW50ICclYydcbnVzYWdlOlx0JXMlcyIgLCAq Y3AsIE15bmFtZSwgdXNhZ2UpKTsKLSsgICAgICB9Ci0gCi0tICAgICAgd2hpbGUgKCpjcCkgewot KyAgICAgIGZvcigrK2NwOyAqY3A7IGNwKyspIHsKLSsgICAgICAgICBjaGFyICplbmQ7Ci0gICAg ICAgICAgc3dpdGNoICgqY3ApIHsKLSAgICAgICAgICAgICBjYXNlICdcMCc6Ci0gICAgICAgICAg ICAgY2FzZSAnLSc6Ci1AQCAtMTg0Miw4ICsxODQ3LDE1IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2Fy Z3MgKGNoYXIgKiphcmdzKQotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCphcmdzKSBjcCA9ICph cmdzKys7Ci0gICAgICAgICAgICAgICAgZWxzZSBzdGRfZXJyKCItZCByZXF1aXJlcyBhcmd1bWVu dCIpOwotICAgICAgICAgICAgICAgICAgIC8qIGEgbmVnYXRpdmUgZGVsYXkgd2lsbCBiZSBkZWFs dCB3aXRoIHNob3J0bHkuLi4gKi8KLS0gICAgICAgICAgICAgICBpZiAoc3NjYW5mKGNwLCAiJWYi LCAmdG1wX2RlbGF5KSAhPSAxKQotLSAgICAgICAgICAgICAgICAgIHN0ZF9lcnIoZm10bWsoImJh ZCBkZWxheSAnJXMnIiwgY3ApKTsKLSsgICAgICAgICAgICAgICBlcnJubz0wOwotKyAgICAgICAg ICAgICAgIGlmICgoIChmYWJzKHRtcF9kZWxheT1zdHJ0b2QoY3AsICZlbmQpKT09SFVHRV9WQUwg JiYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybm89PUVSQU5HRSkgfHwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAodG1wX2RlbGF5PT0wICYmIGVycm5vIT0wKSB8fAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZD09Y3AgfHwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbmQhPWNwK3N0cmxlbihjcCkpKSB7Ci0rICAgICAgICAgICAgICAgICAgIHN0 ZF9lcnIoZm10bWsoImJhZCBkZWxheSAnJXMnIiwgY3ApKTsKLSsgICAgICAgICAgICAgICB9Ci0r ICAgICAgICAgICAgICAgY3A9LTErZW5kOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICAgICAgIGNhc2UgJ0gnOgotICAgICAgICAgICAgICAgIFRPR3coQ3Vyd2luLCBTaG93X1RIUkVB RFMpOwotQEAgLTE4NTksOCArMTg3MSwxNSBAQCBzdGF0aWMgdm9pZCBwYXJzZV9hcmdzIChjaGFy ICoqYXJncykKLSAgICAgICAgICAgICAgICBpZiAoY3BbMV0pIGNwKys7Ci0gICAgICAgICAgICAg ICAgZWxzZSBpZiAoKmFyZ3MpIGNwID0gKmFyZ3MrKzsKLSAgICAgICAgICAgICAgICBlbHNlIHN0 ZF9lcnIoIi1uIHJlcXVpcmVzIGFyZ3VtZW50Iik7Ci0tICAgICAgICAgICAgICAgaWYgKHNzY2Fu ZihjcCwgIiVkIiwgJkxvb3BzKSAhPSAxIHx8IExvb3BzIDwgMSkKLS0gICAgICAgICAgICAgICAg ICBzdGRfZXJyKGZtdG1rKCJiYWQgaXRlcmF0aW9ucyBhcmcgJyVzJyIsIGNwKSk7Ci0rICAgICAg ICAgICAgICAgZXJybm89MDsKLSsgICAgICAgICAgICAgICBpZiAoKCgoTG9vcHM9c3RydG9sKGNw LCAmZW5kLCAwKSk9PUxPTkdfTUlOIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb29wcz09TE9OR19NQVgpICYmCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXJybm89PUVSQU5HRSkgfHwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW5kPT1jcCB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbmQhPWNwK3N0cmxlbihjcCkgfHwgTG9vcHM8MSkgewotKyAgICAgICAgICAgICAgICAgICAg ICAgc3RkX2VycihmbXRtaygiYmFkIGl0ZXJhdGlvbnMgYXJnICclcyciLCBjcCkpOwotKyAgICAg ICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICBjcD0tMStlbmQ7Ci0gICAgICAgICAgICAgICAg YnJlYWs7Ci0gICAgICAgICAgICAgY2FzZSAncCc6Ci0gICAgICAgICAgICAgICAgZG8gewotQEAg LTE4NjgsMTEgKzE4ODcsMTkgQEAgc3RhdGljIHZvaWQgcGFyc2VfYXJncyAoY2hhciAqKmFyZ3Mp Ci0gICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX3R5cGUgPSAncCc7Ci0gICAgICAgICAgICAg ICAgICAgaWYgKGNwWzFdKSBjcCsrOwotICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCphcmdz KSBjcCA9ICphcmdzKys7Ci0tICAgICAgICAgICAgICAgICAgZWxzZSBzdGRfZXJyKCItcCBhcmd1 bWVudCBtaXNzaW5nIik7Ci0rICAgICAgICAgICAgICAgICAgZWxzZSBzdGRfZXJyKCItcCByZXF1 aXJlcyBhcmd1bWVudCIpOwotICAgICAgICAgICAgICAgICAgIGlmIChNb25waWRzaWR4ID49IE1P TlBJRE1BWCkKLSAgICAgICAgICAgICAgICAgICAgICBzdGRfZXJyKGZtdG1rKCJwaWQgbGltaXQg KCVkKSBleGNlZWRlZCIsIE1PTlBJRE1BWCkpOwotLSAgICAgICAgICAgICAgICAgIGlmIChzc2Nh bmYoY3AsICIlZCIsICZNb25waWRzW01vbnBpZHNpZHhdKSAhPSAxIHx8IE1vbnBpZHNbTW9ucGlk c2lkeF0gPCAwKQotLSAgICAgICAgICAgICAgICAgICAgIHN0ZF9lcnIoZm10bWsoImJhZCBwaWQg JyVzJyIsIGNwKSk7Ci0rICAgICAgICAgICAgICAgICAgZXJybm89MDsKLSsgICAgICAgICAgICAg ICAgICBpZiAoKCgoTW9ucGlkc1tNb25waWRzaWR4XT1zdHJ0b2woY3AsICZlbmQsIDApKT09TE9O R19NSU4gfHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIE1vbnBpZHNbTW9ucGlkc2lkeF09 PUxPTkdfTUFYKSAmJgotKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm5vPT1FUkFOR0UpIHx8 Ci0rICAgICAgICAgICAgICAgICAgICAgIGVuZD09Y3AgfHwKLSsgICAgICAgICAgICAgICAgICAg ICAgTW9ucGlkc1tNb25waWRzaWR4XTwxKSB7Ci0rICAgICAgICAgICAgICAgICAgICBzdGRfZXJy KGZtdG1rKCJiYWQgcGlkICclcyciLCBjcCkpOwotKyAgICAgICAgICAgICAgICAgIH0KLSsgICAg ICAgICAgICAgICAgICBjcD0tMStlbmQ7Ci0rCi0gICAgICAgICAgICAgICAgICAgaWYgKCFNb25w aWRzW01vbnBpZHNpZHhdKQotICAgICAgICAgICAgICAgICAgICAgIE1vbnBpZHNbTW9ucGlkc2lk eF0gPSBnZXRwaWQoKTsKLSAgICAgICAgICAgICAgICAgICBNb25waWRzaWR4Kys7Ci1AQCAtMTkx OCwxMCArMTk0NSw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2FyZ3MgKGNoYXIgKiphcmdzKQotICAg ICAgICAgICAgICAgICAgICwgKmNwLCBNeW5hbWUsIHVzYWdlKSk7Ci0gCi0gICAgICAgICAgfSAv KiBlbmQ6IHN3aXRjaCAoKmNwKSAqLwotLQotLSAgICAgICAgICAgIC8qIGFkdmFuY2UgY3AgYW5k IGp1bXAgb3ZlciBhbnkgbnVtZXJpY2FsIGFyZ3MgdXNlZCBhYm92ZSAqLwotLSAgICAgICAgIGlm ICgqY3ApIGNwICs9IHN0cnNwbigmY3BbMV0sICItICwuMTIzNDU2Nzg5MCIpICsgMTsKLS0gICAg ICB9IC8qIGVuZDogd2hpbGUgKCpjcCkgKi8KLSsgICAgICB9IC8qIGVuZDogZm9yICg7ICpjcCkg Ki8KLSAgICB9IC8qIGVuZDogd2hpbGUgKCphcmdzKSAqLwotIAotICAgICAgIC8qIGZpeHVwIGRl bGF5IHRpbWUsIG1heWJlLi4uICovCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMv cHJvY3BzLTMuMi44LzAwNjMtdG9wXzFfc3dhcC5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNjMtdG9wXzFfc3dhcC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ4 ODM4NS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDYzLXRvcF8xX3N3YXAu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1Gcm9tIDZhNDUwNGZmZTIwN2M3 MmYxZjQ2NDZmNDZkYjRkNDA3NmUxNTRjODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9j cHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5 IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNjMvNzBdIHRvcF8xX3N3 YXAKLQotLS0tCi0gdG9wLjEgfCAgICA4ICsrKystLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS90b3AuMSBiL3RvcC4x Ci1pbmRleCAwY2UxYzYyLi41YjQ0ODI4IDEwMDY0NAotLS0tIGEvdG9wLjEKLSsrKyBiL3RvcC4x Ci1AQCAtNDAxLDEzICs0MDEsMTMgQEAgQSB0YXNrJ3MgY3VycmVudGx5IHVzZWQgc2hhcmUgb2Yg YXZhaWxhYmxlIFwqKE1QLgotIG86XGZCIFZJUlRcZlIgXCooRU0gVmlydHVhbCBJbWFnZSAoa2Ip Ci0gVGhlIHRvdGFsIGFtb3VudCBvZiBcKihNViB1c2VkIGJ5IHRoZSB0YXNrLgotIEl0IGluY2x1 ZGVzIGFsbCBjb2RlLCBkYXRhIGFuZCBzaGFyZWQgbGlicmFyaWVzIHBsdXMgcGFnZXMgdGhhdCBo YXZlIGJlZW4KLS1zd2FwcGVkIG91dC4KLS0KLS1WSVJUID0gU1dBUCArIFJFUy4KLStzd2FwcGVk IG91dCBhbmQgcGFnZXMgdGhhdCBoYXZlIGJlZW4gbWFwcGVkIGJ1dCBub3QgdXNlZC4KLSAKLSAu VFAgMwotIHA6XGZCIFNXQVBcZlIgXCooRU0gU3dhcHBlZCBzaXplIChrYikKLS1UaGUgc3dhcHBl ZCBvdXQgcG9ydGlvbiBvZiBhIHRhc2sncyB0b3RhbCBcKihNViBpbWFnZS4KLStNZW1vcnkgdGhh dCBpcyBub3QgcmVzaWRlbnQgYnV0IGlzIHByZXNlbnQgaW4gYSB0YXNrLiAgVGhpcyBpcyBtZW1v cnkgdGhhdAotK2hhcyBiZWVuIHN3YXBwZWQgb3V0IGJ1dCBjb3VsZCBpbmNsdWRlIGFkZGl0aW9u YWwgbm9uLXJlc2lkZW50IG1lbW9yeS4KLStUaGlzIGNvbHVtbiBpcyBjYWxjdWxhdGVkIGJ5IHN1 YnRyYWN0aW5nIFwqKE1QIGZyb20gXCooTVYuCi0gCi0gLlRQIDMKLSBxOlxmQiBSRVNcZlIgXCoo RU0gUmVzaWRlbnQgc2l6ZSAoa2IpCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMv cHJvY3BzLTMuMi44LzAwNjQtd191c2VycHJvYy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNjQtd191c2VycHJvYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDE2 NDYyZi4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY0LXdfdXNlcnByb2Mu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1Gcm9tIDMzNTBkYmEzNWVkYWRi MzMyZTdlODZiYWFhNTE0YzE5YzgwNjcyMjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9j cHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5 IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNjQvNzBdIHdfdXNlcnBy b2MKLQotLS0tCi0gdy5jIHwgICAgMiArLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdy5jIGIvdy5jCi1pbmRleCA0OGEw MmJlLi4xMDdiOWZjIDEwMDY0NAotLS0tIGEvdy5jCi0rKysgYi93LmMKLUBAIC0xNzEsNyArMTcx LDcgQEAgc3RhdGljIGNvbnN0IHByb2NfdCAqZ2V0cHJvYyhjb25zdCB1dG1wX3QgKnJlc3RyaWN0 IGNvbnN0IHUsIGNvbnN0IGNoYXIgKnJlc3RyaWMKLSAJICAgIHNlY29uZGJlc3QgPSB0bXA7Ci0g CX0KLSAJaWYoIWlnbm9yZXVzZXIgJiYgdWlkICE9IHRtcC0+ZXVpZCAmJiB1aWQgIT0gdG1wLT5y dWlkKSBjb250aW51ZTsKLS0JaWYodG1wLT50Z2lkICE9IHRtcC0+dHBnaWQpIGNvbnRpbnVlOwot KwlpZih0bXAtPnBncnAgIT0gdG1wLT50cGdpZCkgY29udGludWU7Ci0gCWlmKGJlc3QgJiYgdG1w LT5zdGFydF90aW1lIDw9IGJlc3QtPnN0YXJ0X3RpbWUpIGNvbnRpbnVlOwotICAgICAJYmVzdCA9 IHRtcDsKLSAgICAgfQotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0z LjIuOC8wMDY1LXN5c2luZm9fa2ZyZWVic2RfaGVydHoucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0z LjIuOC8wMDY1LXN5c2luZm9fa2ZyZWVic2RfaGVydHoucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDdiNzkyODguLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgv MDA2NS1zeXNpbmZvX2tmcmVlYnNkX2hlcnR6LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEg KzAsMCBAQAotRnJvbSBkZjExZWQ1Y2JjYWMxYmNmMTg3OTliZjVjNGRmN2IwYzZhMjZiNjM5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2Rl Ymlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5m b0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3Vi amVjdDogW1BBVENIIDY1LzcwXSBzeXNpbmZvX2tmcmVlYnNkX2hlcnR6Ci0KLS0tLQotIHByb2Mv c3lzaW5mby5jIHwgICAgOCArKysrKysrKwotIDEgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25z KCspLCAwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHJvYy9zeXNpbmZvLmMgYi9wcm9j L3N5c2luZm8uYwotaW5kZXggYzgwNGY0OS4uNjVkOTRkNyAxMDA2NDQKLS0tLSBhL3Byb2Mvc3lz aW5mby5jCi0rKysgYi9wcm9jL3N5c2luZm8uYwotQEAgLTIzMCw2ICsyMzAsMTQgQEAgc3RhdGlj IHZvaWQgaW5pdF9saWJwcm9jKHZvaWQpewotICAgICBmcHV0cygiMi40KyBrZXJuZWwgdy9vIEVM RiBub3Rlcz8gLS0gcmVwb3J0IHRoaXNcbiIsIHN0ZGVycik7Ci0gICB9Ci0gI2VuZGlmCi0rI2lm IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9fKQotKyAg LyogT24gRnJlZUJTRCB0aGUgSGVydHogaGFjayBpcyB1bnJlbGFpYmxlLCB0aGVyZSBpcyBubyBF TEYgbm90ZSBhbmQKLSsgICAqIEhlcnR6IGlzbid0IGRlZmluZWQgaW4gYXNtL3BhcmFtcy5oIAot KyAgICogU2VlIERlYmlhbiBCdWcgIzQ2MDMzMQotKyAgICovCi0rICAgIEhlcnR6ID0gMTAwOwot KyAgICByZXR1cm47Ci0rI2VuZGlmCi0gICBvbGRfSGVydHpfaGFjaygpOwotIH0KLSAKLS0tIAot MS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2Ni1wc18xX2ZsdF9v dXRwdXQucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY2LXBzXzFfZmx0X291dHB1dC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThlOWU2MC4uMDAwMDAwMAotLS0g YS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY2LXBzXzFfZmx0X291dHB1dC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDQwICswLDAgQEAKLUZyb20gYmI3MTUxOWNhODg5MDc2YWZhNDUwZmNmZDE1 MjI5YzQ5YmE0NDQ0MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAu ZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRl Ymlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6 NTg6NDcgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA2Ni83MF0gcHNfMV9mbHRfb3V0cHV0Ci0KLS0t LQotIHBzL3BzLjEgfCAgIDEwICsrKysrKysrKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3BzL3BzLjEgYi9wcy9wcy4x Ci1pbmRleCA2YmEzMWRjLi5mMDdkYzgyIDEwMDY0NAotLS0tIGEvcHMvcHMuMQotKysrIGIvcHMv cHMuMQotQEAgLTQsNyArNCw3IEBACi0gLlwiIFF1aWNrIGhhY2sgY29udmVyc2lvbiBieSBBbGJl cnQgQ2FoYWxhbiwgMTk5OC4KLSAuXCIgTGljZW5zZWQgdW5kZXIgdmVyc2lvbiAyIG9mIHRoZSBH bnUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KLSAuXCIKLS0uVEggUFMgMSAiSnVseSAyOCwgMjAw NCIgIkxpbnV4IiAiTGludXggVXNlcidzIE1hbnVhbCIKLSsuVEggUFMgMSAiRmVicnVhcnkgMjUs IDIwMTAiICJMaW51eCIgIkxpbnV4IFVzZXIncyBNYW51YWwiCi0gLlwiCi0gLlwiIFRvIHJlbmRl ciB0aGlzIHBhZ2U6Ci0gLlwiICAgIGdyb2ZmIC10IC1iIC1tYW4gLVggLVAtcmVzb2x1dGlvbiAt UDEwMCAtVHBzIHBzLjEgJgotQEAgLTEwODQsNiArMTA4NCwxNCBAQCBsd3AgKGxpZ2h0IHdlaWdo dCBwcm9jZXNzLCBvciB0aHJlYWQpIElEIG9mIHRoZSBsd3AgYmVpbmcgcmVwb3J0ZWQuCi0gKGFs aWFzXCBcZkJzcGlkXGZSLFwgXGZCdGlkXGZSKS4KLSBUfQotIAotK21hal9mbHQJTUFKRkxUCVR7 Ci0rVGhlIG51bWJlciBvZiBtYWpvciBwYWdlIGZhdWx0cyB0aGF0IGhhdmUgb2NjdXJlZCB3aXRo IHRoaXMgcHJvY2Vzcy4KLStUfQotKwotK21pbl9mbHQJTUlORkxUCVR7Ci0rVGhlIG51bWJlciBv ZiBtaW5vciBwYWdlIGZhdWx0cyB0aGF0IGhhdmUgb2NjdXJlZCB3aXRoIHRoaXMgcHJvY2Vzcy4K LStUfQotKwotIG5pCU5JCVR7Ci0gbmljZSB2YWx1ZS4gVGhpcyByYW5nZXMgZnJvbSAxOSAobmlj ZXN0KSB0byBcLTIwIChub3RcIG5pY2UgdG9cIG90aGVycyksCi0gc2VlXCBcZkluaWNlXGZSKDEp LiAgKGFsaWFzXCBcZkJuaWNlXGZSKS4KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDA2Ny13YXRjaF9hbnNpX2NvbG91ci5wYXRjaCBiL3BhdGNoZXMvcHJv Y3BzLTMuMi44LzAwNjctd2F0Y2hfYW5zaV9jb2xvdXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDNkMGIwMWYuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgv MDA2Ny13YXRjaF9hbnNpX2NvbG91ci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5MyArMCww IEBACi1Gcm9tIGNkYTQwZGRiNzZmYTY2MTlkODZiZjY3NWFlMGNjODE2ZjE2ZjI2YzkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFu L3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRl Ymlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ3ICswMTAwCi1TdWJqZWN0 OiBbUEFUQ0ggNjcvNzBdIHdhdGNoX2Fuc2lfY29sb3VyCi0KLS0tLQotIHdhdGNoLjEgfCAgICA3 ICsrKystCi0gd2F0Y2guYyB8ICAgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDk2IGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS93YXRjaC4xIGIvd2F0Y2gu MQotaW5kZXggYzVmMTdjNC4uYWVjYmZlYiAxMDA2NDQKLS0tLSBhL3dhdGNoLjEKLSsrKyBiL3dh dGNoLjEKLUBAIC0xLDQgKzEsNCBAQAotLS5USCBXQVRDSCAxICIyMDA5IE1heSAxMSIgIiAiICJM aW51eCBVc2VyJ3MgTWFudWFsIgotKy5USCBXQVRDSCAxICIyMDEwIE1hciAwMSIgIiAiICJMaW51 eCBVc2VyJ3MgTWFudWFsIgotIC5TSCBOQU1FCi0gd2F0Y2ggXC0gZXhlY3V0ZSBhIHByb2dyYW0g cGVyaW9kaWNhbGx5LCBzaG93aW5nIG91dHB1dCBmdWxsc2NyZWVuCi0gLlNIIFNZTk9QU0lTCi1A QCAtOCw2ICs4LDcgQEAgd2F0Y2ggXC0gZXhlY3V0ZSBhIHByb2dyYW0gcGVyaW9kaWNhbGx5LCBz aG93aW5nIG91dHB1dCBmdWxsc2NyZWVuCi0gLlJCIFsgXC1uCi0gLklSIHNlY29uZHMgXQotIC5S QiBbIFwtXC1iZWVwIF0KLSsuUkIgWyBcLVwtY29sb3IgXQotIC5SQiBbIFwtXC1kaWZmZXJlbmNl c1s9XGZJY3VtdWxhdGl2ZVxmUF1dCi0gLlJCIFsgXC1cLWVycmV4aXQgXQotIC5SQiBbIFwtXC1l eGVjIF0KLUBAIC03NSw2ICs3NiwxMCBAQCBvcgotIG9wdGlvbnMsIHdoaWNoIHdpbGwgY2F1c2UK LSAuQiB3YXRjaAotIHRvIGV4aXQgaWYgdGhlIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBwcm9ncmFt IGlzIG5vbi16ZXJvLgotKy5QUAotK0J5IGRlZmF1bHQgXGZCd2F0Y2hcZlIgd2lsbCBub3JtYWxs eSBub3QgcGFzcyBlc2NhcGUgY2hhcmFjdGVycywgaG93ZXZlcgotK2lmIHlvdSB1c2UgdGhlIFxm SVwtXC1jXGZSIG9yIFxmSVwtXC1jb2xvclxmUiBvcHRpb24sIHRoZW4KLStcZkJ3YXRjaFxmUiB3 aWxsIGludGVycHJldCBBTlNJIGNvbG9yIHNlcXVlbmNlcyBmb3IgdGhlIGZvcmVncm91bmQuCi0g Ci0gLlNIIE5PVEUKLSBOb3RlIHRoYXQKLWRpZmYgLS1naXQgYS93YXRjaC5jIGIvd2F0Y2guYwot aW5kZXggN2FiNTdhYi4uYWY3MjI5ZSAxMDA2NDQKLS0tLSBhL3dhdGNoLmMKLSsrKyBiL3dhdGNo LmMKLUBAIC0zNyw2ICszNyw3IEBACi0gI2VuZGlmCi0gCi0gc3RhdGljIHN0cnVjdCBvcHRpb24g bG9uZ29wdHNbXSA9IHsKLSsgIHsiY29sb3IiLCBub19hcmd1bWVudCwgMCwgJ2MnIH0sCi0gCXsi ZGlmZmVyZW5jZXMiLCBvcHRpb25hbF9hcmd1bWVudCwgMCwgJ2QnfSwKLSAJeyJoZWxwIiwgbm9f YXJndW1lbnQsIDAsICdoJ30sCi0gCXsiaW50ZXJ2YWwiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwg J24nfSwKLUBAIC01MCw3ICs1MSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW10g PSB7Ci0gfTsKLSAKLSBzdGF0aWMgY2hhciB1c2FnZVtdID0KLS0gICAgIlVzYWdlOiAlcyBbLWJk aG5wdHZ4XSBbLS1iZWVwXSBbLS1kaWZmZXJlbmNlc1s9Y3VtdWxhdGl2ZV1dIFstLWV4ZWNdIFst LWhlbHBdIFstLWludGVydmFsPTxuPl0gWy0tbm8tdGl0bGVdIFstLXZlcnNpb25dIDxjb21tYW5k PlxuIjsKLSsgICAgIlVzYWdlOiAlcyBbLWJjZGhucHR2eF0gWy0tYmVlcF0gWy0tY29sb3JdIFst LWRpZmZlcmVuY2VzWz1jdW11bGF0aXZlXV0gWy0tZXhlY10gWy0taGVscF0gWy0taW50ZXJ2YWw9 PG4+XSBbLS1uby10aXRsZV0gWy0tdmVyc2lvbl0gPGNvbW1hbmQ+XG4iOwotIAotIHN0YXRpYyBj aGFyICpwcm9nbmFtZTsKLSAKLUBAIC02Miw2ICs2Myw3NCBAQCBzdGF0aWMgaW50IHNob3dfdGl0 bGUgPSAyOyAgLy8gbnVtYmVyIG9mIGxpbmVzIHVzZWQsIDIgb3IgMAotIHN0YXRpYyBpbnQgcHJl Y2lzZV90aW1la2VlcGluZyA9IDA7Ci0gCi0gI2RlZmluZSBtaW4oeCx5KSAoKHgpID4gKHkpID8g KHkpIDogKHgpKQotKyNkZWZpbmUgTUFYX0FOU0lCVUYgMTAKLSsKLStzdGF0aWMgdm9pZCBpbml0 X2Fuc2lfY29sb3JzKHZvaWQpCi0rewotKyAgaW50IGk7Ci0rICBzaG9ydCBuY3Vyc2VzX2NvbG9y c1tdID0gewotKyAgICBDT0xPUl9CTEFDSywgQ09MT1JfUkVELCBDT0xPUl9HUkVFTiwgQ09MT1Jf WUVMTE9XLCBDT0xPUl9CTFVFLAotKyAgICBDT0xPUl9NQUdFTlRBLCBDT0xPUl9DWUFOLCBDT0xP Ul9XSElURSB9OwotKwotKyAgZm9yIChpPTA7IGk8IDg7IGkrKykKLSsgICAgaW5pdF9wYWlyKGkr MSwgbmN1cnNlc19jb2xvcnNbaV0sIC0xKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQgc2V0X2Fuc2lf YXR0cmlidXRlKGNvbnN0IGludCBhdHRyaWIpCi0rewotKyAgc3dpdGNoIChhdHRyaWIpCi0rICB7 Ci0rICAgIGNhc2UgLTE6Ci0rICAgICAgcmV0dXJuOwotKyAgICBjYXNlIDA6Ci0rICAgICAgc3Rh bmRlbmQoKTsKLSsgICAgICByZXR1cm47Ci0rICAgIGNhc2UgMToKLSsgICAgICBhdHRyc2V0KEFf Qk9MRCk7Ci0rICAgICAgcmV0dXJuOwotKyAgfQotKyAgaWYgKGF0dHJpYiA+PSAzMCAmJiBhdHRy aWIgPD0gMzcpIHsKLSsgICAgY29sb3Jfc2V0KGF0dHJpYi0yOSxOVUxMKTsKLSsgICAgcmV0dXJu OwotKyAgfQotK30KLSsKLStzdGF0aWMgdm9pZCBwcm9jZXNzX2Fuc2koRklMRSAqZnApCi0rewot KyAgaW50IGksYywgbnVtMSwgbnVtMjsKLSsgIGNoYXIgYnVmW01BWF9BTlNJQlVGXTsKLSsgIGNo YXIgKm5leHRudW07Ci0rCi0rCi0rICBjPSBnZXRjKGZwKTsKLSsgIGlmIChjICE9ICdbJykgewot KyAgICB1bmdldGMoYywgZnApOwotKyAgICByZXR1cm47Ci0rICB9Ci0rICBmb3IoaT0wOyBpPE1B WF9BTlNJQlVGOyBpKyspCi0rICB7Ci0rICAgIGMgPSBnZXRjKGZwKTsKLSsgICAgaWYgKGMgPT0g J20nKSAvL0NPTE9VUiBTRVFVRU5DRSBFTkRTIGluICdtJwotKyAgICB7Ci0rICAgICAgYnVmW2ld ID0gJ1wwJzsKLSsgICAgICBicmVhazsKLSsgICAgfQotKyAgICBpZiAoYyA8ICcwJyAmJiBjID4g JzknICYmIGMgIT0gJzsnKQotKyAgICB7Ci0rICAgICAgd2hpbGUoLS1pID49IDApCi0rICAgICAg ICB1bmdldGMoYnVmW2ldLGZwKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgICAgYnVmW2ld ID0gKGNoYXIpYzsKLSsgIH0KLSsgIG51bTEgPSBzdHJ0b2woYnVmLCAmbmV4dG51bSwgMTApOwot KyAgaWYgKG5leHRudW0gIT0gYnVmICYmIG5leHRudW1bMF0gIT0gJ1wwJykKLSsgICAgbnVtMiA9 IHN0cnRvbChuZXh0bnVtKzEsIE5VTEwsIDEwKTsKLSsgIGVsc2UKLSsgICAgbnVtMiA9IC0xOwot KyAgc2V0X2Fuc2lfYXR0cmlidXRlKG51bTEpOwotKyAgc2V0X2Fuc2lfYXR0cmlidXRlKG51bTIp OwotK30KLSAKLSBzdGF0aWMgdm9pZCBkb191c2FnZSh2b2lkKSBOT1JFVFVSTjsKLSBzdGF0aWMg dm9pZCBkb191c2FnZSh2b2lkKQotQEAgLTE4Nyw2ICsyNTYsNyBAQCBtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCi0gCSAgICBvcHRpb25fZGlmZmVyZW5jZXNfY3VtdWxhdGl2ZSA9IDAsCi0g CQkJb3B0aW9uX2V4ZWMgPSAwLAotIAkJCW9wdGlvbl9iZWVwID0gMCwKLSsgICAgICBvcHRpb25f Y29sb3IgPSAwLAotICAgICAgICAgb3B0aW9uX2VycmV4aXQgPSAwLAotIAkgICAgb3B0aW9uX2hl bHAgPSAwLCBvcHRpb25fdmVyc2lvbiA9IDA7Ci0gCWRvdWJsZSBpbnRlcnZhbCA9IDI7Ci1AQCAt MjA1LDEyICsyNzUsMTUgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAlzZXRsb2Nh bGUoTENfQUxMLCAiIik7Ci0gCXByb2duYW1lID0gYXJndlswXTsKLSAKLS0Jd2hpbGUgKChvcHRj ID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIitiZWQ6OmhuOnB2dHgiLCBsb25nb3B0cywgKGlu dCAqKSAwKSkKLSsJd2hpbGUgKChvcHRjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIitiY2Vk OjpobjpwdnR4IiwgbG9uZ29wdHMsIChpbnQgKikgMCkpCi0gCSAgICAgICAhPSBFT0YpIHsKLSAJ CXN3aXRjaCAob3B0YykgewotIAkJY2FzZSAnYic6Ci0gCQkJb3B0aW9uX2JlZXAgPSAxOwotIAkJ CWJyZWFrOwotKyAgICBjYXNlICdjJzoKLSsgICAgICBvcHRpb25fY29sb3IgPSAxOwotKyAgICAg IGJyZWFrOwotIAkJY2FzZSAnZCc6Ci0gCQkJb3B0aW9uX2RpZmZlcmVuY2VzID0gMTsKLSAJCQlp ZiAob3B0YXJnKQotQEAgLTMxOSw2ICszOTIsMTQgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQotIAkvKiBTZXQgdXAgdHR5IGZvciBjdXJzZXMgdXNlLiAgKi8KLSAJY3Vyc2VzX3N0YXJ0 ZWQgPSAxOwotIAlpbml0c2NyKCk7Ci0rICBpZiAob3B0aW9uX2NvbG9yKSB7Ci0rICAgIGlmICho YXNfY29sb3JzKCkpIHsKLSsgICAgICBzdGFydF9jb2xvcigpOwotKyAgICAgIHVzZV9kZWZhdWx0 X2NvbG9ycygpOwotKyAgICAgIGluaXRfYW5zaV9jb2xvcnMoKTsKLSsgICAgfSBlbHNlCi0rICAg ICAgb3B0aW9uX2NvbG9yID0gMDsKLSsgIH0KLSAJbm9ubCgpOwotIAlub2VjaG8oKTsKLSAJY2Jy ZWFrKCk7Ci1AQCAtNDYwLDcgKzU0MSwxMyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p Ci0gCQkJCQkJfXdoaWxlIChjICE9IFdFT0YgJiYgIWlzcHJpbnQoYykgJiYgYzwxMjgKLSAJCQkJ CQkgICAgICAgJiYgd2N3aWR0aChjKSA9PSAwCi0gCQkJCQkJICAgICAgICYmIGMgIT0gTCdcbicK LS0JCQkJCQkgICAgICAgJiYgYyAhPSBMJ1x0Jyk7Ci0rCQkJCQkJICAgICAgICYmIGMgIT0gTCdc dCcKLSsgICAgICAgICAgICAgICAgICAgJiYgKGMgIT0gTCdcMDMzJyB8fCBvcHRpb25fY29sb3Ig IT0gMSkpOwotKyAgICAgICAgICBpZiAoYyA9PSBMJ1wwMzMnICYmIG9wdGlvbl9jb2xvciA9PSAx KSB7Ci0rICAgICAgICAgICAgeC0tOwotKyAgICAgICAgICAgIHByb2Nlc3NfYW5zaShwKTsKLSsg ICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAgICAgfQotIAkJCQkJaWYgKGMgPT0gTCdcbicp Ci0gCQkJCQkJaWYgKCFvbGRlb2xzZWVuICYmIHggPT0gMCkgewotIAkJCQkJCQl4ID0gLTE7Ci0t LSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjgtdG9wX3Vz ZXJuYW1lX3BhcnNlLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2OC10b3BfdXNlcm5h bWVfcGFyc2UucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlYmNmNjEuLjAw MDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2OC10b3BfdXNlcm5hbWVfcGFyc2Uu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1Gcm9tIDljMWY5Zjk5YTU4MjZi ZTUwNjlmYzBlZjY2YThkM2FkYTRlNDg4YjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9j cHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5 IE1hciAyMDEwIDIxOjU4OjQ3ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNjgvNzBdIHRvcF91c2Vy bmFtZV9wYXJzZQotCi0tLS0KLSB0b3AuYyB8ICAgIDIgKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDEg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3RvcC5jIGIvdG9w LmMKLWluZGV4IGUxOTQyNDQuLjYyZjQwNzcgMTAwNjQ0Ci0tLS0gYS90b3AuYwotKysrIGIvdG9w LmMKLUBAIC0xOTI0LDcgKzE5MjQsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9hcmdzIChjaGFyICoq YXJncykKLSAgICAgICAgICAgICAgICAgICBlcnJtc2cgPSBwYXJzZV91aWQoY3AsICZzZWxlY3Rp b25fdWlkKTsKLSAgICAgICAgICAgICAgICAgICBpZiAoZXJybXNnKSBzdGRfZXJyKGVycm1zZyk7 Ci0gICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX3R5cGUgPSAndSc7Ci0tICAgICAgICAgICAg ICAgICAgY3AgKz0gc25wcmludGYoQ3Vyd2luLT5jb2x1c3JuYW0sIFVTUk5BTVNJWi0xLCAiJXMi LCBjcCk7IC8vIEZJWE1FOiBqdW5rCi0rICAgICAgICAgICAgICAgICAgY3AgKz0gc25wcmludGYo Q3Vyd2luLT5jb2x1c3JuYW0sIFVTUk5BTVNJWi0xLCAiJXMiLCBjcCktMTsgLy8gRklYTUU6IGp1 bmsKLSAgICAgICAgICAgICAgICB9IHdoaWxlKDApOwotICAgICAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgICAgIGNhc2UgJ1UnOgotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDY5LWRvbi10LWluc3RhbGwtc3R1ZmYtdGhhdC13YXMtbm90LWJ1aWx0 LnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2OS1kb24tdC1pbnN0YWxsLXN0dWZmLXRo YXQtd2FzLW5vdC1idWlsdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdm M2E4My4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY5LWRvbi10LWluc3Rh bGwtc3R1ZmYtdGhhdC13YXMtbm90LWJ1aWx0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEg KzAsMCBAQAotRnJvbSA5N2JjOGZiZmVkZmMzZDgyMzg5MWVjNjQ5N2MxODdjYjhlMWFjZTA2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWljaGFlbCBPbGJyaWNoIDxtLm9sYnJpY2hA cGVuZ3V0cm9uaXguZGU+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU5OjI4ICswMTAwCi1T dWJqZWN0OiBbUEFUQ0ggNjkvNzBdIGRvbid0IGluc3RhbGwgc3R1ZmYgdGhhdCB3YXMgbm90IGJ1 aWx0Ci0KLVdlIGRvbid0IGJ1aWx0IGV2ZXJ5dGhpbmcgaW4gcHR4ZGlzdC4gVGhpcyBQYXRjaCBt YWtlcyBzdXJlIHRoYXQKLSdtYWtlIGluc3RhbGwnIHdvbid0IGZhaWwgaWYgJ3NraWxsJyBvciAn cGdyZXAnIGlzIG5vdCB0aGVyZS4KLQotU2lnbmVkLW9mZi1ieTogTWljaGFlbCBPbGJyaWNoIDxt Lm9sYnJpY2hAcGVuZ3V0cm9uaXguZGU+Ci0tLS0KLSBNYWtlZmlsZSB8ICAgIDQgKystLQotIDEg ZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggYWJkZGI2ZS4uNWVmYWJiMyAxMDA2NDQK LS0tLSBhL01ha2VmaWxlCi0rKysgYi9NYWtlZmlsZQotQEAgLTIyOSw4ICsyMjksOCBAQCAkKE1B TkZJTEVTKSA6IGFsbAotIAkkKGluc3RhbGwpIC0tbW9kZSBhPXIgJChub3RkaXIgJEApICRACi0g Ci0gaW5zdGFsbDogJChmaWx0ZXItb3V0ICQoU0tJUCkgJChhZGRwcmVmaXggJChERVNURElSKSwk KFNLSVApKSwkKElOU1RBTEwpKQotLQljZCAkKHVzci9iaW4pICYmICQobG5fZikgc2tpbGwgc25p Y2UKLS0JY2QgJCh1c3IvcHJvYy9iaW4pICYmICQobG5fZikgcGdyZXAgcGtpbGwKLSsJY2QgJCh1 c3IvYmluKSAmJiB0ZXN0ICEgLWYgc2tpbGwgfHwgJChsbl9mKSBza2lsbCBzbmljZQotKwljZCAk KHVzci9wcm9jL2JpbikgJiYgdGVzdCAhIC1mIHBncmVwIHx8ICQobG5fZikgcGdyZXAgcGtpbGwK LSAKLSAjIyMjIyMjIyMjIyMgcHJvZy5jIC0tPiBwcm9nLm8KLSAKLS0tIAotMS43LjAKLQpkaWZm IC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA3MC1yZW1vdmUtZnJlbmFtZS1yZWdpc3Rl cnMtb3B0aW9uLWR1ZS10by1JQ0Utb24tZ2NjLTQuLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDA3MC1yZW1vdmUtZnJlbmFtZS1yZWdpc3RlcnMtb3B0aW9uLWR1ZS10by1JQ0Utb24tZ2Nj LTQuLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTVmNTA5Li4wMDAwMDAw Ci0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNzAtcmVtb3ZlLWZyZW5hbWUtcmVnaXN0ZXJz LW9wdGlvbi1kdWUtdG8tSUNFLW9uLWdjYy00Li5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1 ICswLDAgQEAKLUZyb20gODhmZTQzZjQ2M2I5YTJhZDZhZTVhYzRiZTg1ZGU2NmFmN2IxNDJlZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcmMgS2xlaW5lLUJ1ZGRlIDxta2xAcGVu Z3V0cm9uaXguZGU+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIyOjAzOjEzICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0ggNzAvNzBdIHJlbW92ZSAtZnJlbmFtZS1yZWdpc3RlcnMgb3B0aW9uLCBkdWUg dG8gSUNFIG9uIGdjYy00LjMuMQotCi1TaWduZWQtb2ZmLWJ5OiBNYXJjIEtsZWluZS1CdWRkZSA8 bWtsQHBlbmd1dHJvbml4LmRlPgotLS0tCi0gTWFrZWZpbGUgfCAgICAxIC0KLSAxIGZpbGVzIGNo YW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL01h a2VmaWxlIGIvTWFrZWZpbGUKLWluZGV4IDVlZmFiYjMuLmE4M2RmNWUgMTAwNjQ0Ci0tLS0gYS9N YWtlZmlsZQotKysrIGIvTWFrZWZpbGUKLUBAIC0xNDIsNyArMTQyLDYgQEAgQUxMX0NGTEFHUyAr PSAkKGNhbGwgY2hlY2tfZ2NjLC1Xc3RyaWN0LWFsaWFzaW5nLCkKLSAjIGlmIG5vdCBkZWJ1Z2dp bmcsIGVuYWJsZSB0aGluZ3MgdGhhdCBjb3VsZCBjb25mdXNlIGdkYgotIGlmZXEgKCwkKGZpbmRz dHJpbmcgLWcsJChmaWx0ZXIgLWclLCQoQ0ZMQUdTKSkpKQotIEFMTF9DRkxBR1MgKz0gJChjYWxs IGNoZWNrX2djYywtZndlYiwpCi0tQUxMX0NGTEFHUyArPSAkKGNhbGwgY2hlY2tfZ2NjLC1mcmVu YW1lLXJlZ2lzdGVycywpCi0gQUxMX0NGTEFHUyArPSAkKGNhbGwgY2hlY2tfZ2NjLC1mb21pdC1m cmFtZS1wb2ludGVyLCkKLSBlbmRpZgotIAotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDcxLWZpeC1idWlsZC13aXRoLW1ha2UtMy44Mi5wYXRjaCBiL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwNzEtZml4LWJ1aWxkLXdpdGgtbWFrZS0zLjgyLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTk2M2ZlLi4wMDAwMDAwCi0tLSBhL3BhdGNo ZXMvcHJvY3BzLTMuMi44LzAwNzEtZml4LWJ1aWxkLXdpdGgtbWFrZS0zLjgyLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSA3ZDZhODFjMjMyNDU3NWFkN2Q2ZjM5NGU5 OGI1YWUyMzFlOTlhYjVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogR2VvcmdlIE1j Q29sbGlzdGVyIDxnZW9yZ2UubWNjb2xsaXN0ZXJAZ21haWwuY29tPgotRGF0ZTogVHVlLCAyMyBB dWcgMjAxMSAxMzo1MTo0MyAtMDUwMAotU3ViamVjdDogW1BBVENIIDcxLzcxXSBmaXggYnVpbGQg d2l0aCBtYWtlIDMuODIKLQotSSBwdWxsZWQgdGhpcyBwYXRjaCBmcm9tIHVwc3RyZWFtLgotaHR0 cDovL3Byb2Nwcy5jdnMuc291cmNlZm9yZ2UubmV0L3ZpZXd2Yy9wcm9jcHMvcHJvY3BzL01ha2Vm aWxlP3IxPTEuNzAmcjI9MS43MQotCi1SZXZpc2lvbiAxLjcxCi1Nb24gRmViIDI4IDAyOjUxOjA5 IDIwMTEgVVRDICg1IG1vbnRocywgMyB3ZWVrcyBhZ28pIGJ5IGFsYmVydAotQnJhbmNoOiBNQUlO Ci1DVlMgVGFnczogSEVBRAotQ2hhbmdlcyBzaW5jZSAxLjcwOiArMSAtMSBsaW5lcwotcG9zc2li bGUgdG8gYnVpbGQgd2l0aCBtYWtlIDMuODIgICAgZ2VuMzAzMTIwICAtLSB0aGFua3MgRWxpYXMg UGlwcGluZwotCi1TaWduZWQtb2ZmLWJ5OiBHZW9yZ2UgTWNDb2xsaXN0ZXIgPGdlb3JnZS5tY2Nv bGxpc3RlckBnbWFpbC5jb20+Ci0tLS0KLSBNYWtlZmlsZSB8ICAgIDIgKy0KLSAxIGZpbGVzIGNo YW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL01h a2VmaWxlIGIvTWFrZWZpbGUKLWluZGV4IGE4M2RmNWUuLmMxYmY4ZjMgMTAwNjQ0Ci0tLS0gYS9N YWtlZmlsZQotKysrIGIvTWFrZWZpbGUKLUBAIC0xNzQsNyArMTc0LDcgQEAgSU5TVEFMTCA6PSAk KEJJTkZJTEVTKSAkKE1BTkZJTEVTKQotICMgd2FudCB0aGlzIHJ1bGUgZmlyc3QsIHVzZSA6PSBv biBBTEwsIGFuZCBBTEwgbm90IGZpbGxlZCBpbiB5ZXQKLSBhbGw6IGRvX2FsbAotIAotLS1pbmNs dWRlICovbW9kdWxlLm1rCi0rLWluY2x1ZGUgcHJvYy9tb2R1bGUubWsgcHMvbW9kdWxlLm1rCi0g Ci0gZG9fYWxsOiAgICAkKEFMTCkKLSAKLS0tIAotMS43LjYKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hl cy9wcm9jcHMtMy4yLjgvc2VyaWVzIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvc2VyaWVzCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmNlZWY5Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMv cHJvY3BzLTMuMi44L3NlcmllcworKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLTAwMDEt c2xhYnRvcF9vbmNlLnBhdGNoCi0wMDAyLWZyZWUuMS5wYXRjaAotMDAwMy1vdXRwdXRfc29ydF90 aW1lLnBhdGNoCi0wMDA0LXBtYXAuMS5wYXRjaAotMDAwNS0xMF9wcy4xLnBhdGNoCi0wMDA2LXNr aWxsLjEucGF0Y2gKLTAwMDctc2tpbGxfcGVycm9yLnBhdGNoCi0wMDA4LXNsYWJ0b3BfMS5wYXRj aAotMDAwOS1zeXNjdGwuOC5wYXRjaAotMDAxMC1zeXNjdGxfb3B0aW9ucy5wYXRjaAotMDAxMS10 bG9hZC4xLnBhdGNoCi0wMDEyLXRvcF9pcml4LnBhdGNoCi0wMDEzLXRvcF9ub19vcGVucHJvYy5w YXRjaAotMDAxNC10b3Bfc3RkaW5fZW9mLnBhdGNoCi0wMDE1LXRvcF91aWRfbGVuZ3RoLnBhdGNo Ci0wMDE2LXVwdGltZS4xLnBhdGNoCi0wMDE3LXZtc3RhdC44LnBhdGNoCi0wMDE4LXdhdGNoLjEu cGF0Y2gKLTAwMTktd190aW1lLnBhdGNoCi0wMDIwLWtpbGwuMS5wYXRjaAotMDAyMS1raWxsX3dh cm5jci5wYXRjaAotMDAyMi1tb2R1bGVfbWtfc2hhcmVkLnBhdGNoCi0wMDIzLXN5c2luZm9fZWxm bm90ZS5wYXRjaAotMDAyNC10b3AuMS5wYXRjaAotMDAyNS10b3BfY19yZXNpemUucGF0Y2gKLTAw MjYtdy1iYXNzbWFuLnBhdGNoCi0wMDI3LXRvcC4xX2NwdXN0YXRlcy5wYXRjaAotMDAyOC13YXRj aF84Yml0Y2hhci5wYXRjaAotMDAyOS1saWJyYXJ5X21hcF9mcmVlcHJvYy5wYXRjaAotMDAzMC1w Z3JlcF9zdGFydF90aW1lLnBhdGNoCi0wMDMxLXJlYWRwcm9jX2MucGF0Y2gKLTAwMzItc3lzaW5m b183X251bWJlcnMucGF0Y2gKLTAwMzMtdGxvYWRfbm9fb3B0YXJncy5wYXRjaAotMDAzNC13LjEu cGF0Y2gKLTAwMzUtd19jb2x1bW5zLnBhdGNoCi0wMDM2LXdhdGNoX2V4ZWNfYmVlcC5wYXRjaAot MDAzNy1wYXRoX21heC5wYXRjaAotMDAzOC13X2Vudmxlbmd0aC5wYXRjaAotMDAzOS1nbnUta2Jz ZC12ZXJzaW9uLnBhdGNoCi0wMDQwLXBncmVwX2Nfb3B0aW9uLnBhdGNoCi0wMDQxLXBzX2Nncm91 cF9kaXNwbGF5LnBhdGNoCi0wMDQyLXdhdGNoX3ByZWNpc2lvbl90aW1lLnBhdGNoCi0wMDQzLXdh dGNoX3VuaWNvZGUucGF0Y2gKLTAwNDQtY29tcGxhaW5fdW5tb3VudGVkX3Byb2MucGF0Y2gKLTAw NDUtcHNfc3VwZ2lkX2Rpc3BsYXkucGF0Y2gKLTAwNDYtbWFrZWZpbGVfZGV2X251bGwucGF0Y2gK LTAwNDctcGdyZXAuMS5wYXRjaAotMDA0OC1wc19zaXplX3N6LnBhdGNoCi0wMDQ5LXRvcF9taW50 aW1lLnBhdGNoCi0wMDUwLXZtc3RhdF9oZWFkZXJzLnBhdGNoCi0wMDUxLXBncmVwX3VzYWdlX2V4 aXRjb2RlLnBhdGNoCi0wMDUyLXBzXzFfb3B0aW9ucy5wYXRjaAotMDA1My10b3BfaGlnaGxpZ2h0 LnBhdGNoCi0wMDU0LXRvcF9ub2h6LnBhdGNoCi0wMDU1LXZtc3RhdF9wYXJ0X2Zvcm1hdC5wYXRj aAotMDA1Ni1yZWFkcHJvY19kb3VibGVfZnJlZS5wYXRjaAotMDA1Ny12bXN0YXRfdW5pdHMucGF0 Y2gKLTAwNTgtc2tpbGxfbnVsbF9hcmd2LnBhdGNoCi0wMDU5LXNraWxsX211bHRpYXJnLnBhdGNo Ci0wMDYwLXByb2NfdmVyc2lvbl9jb25zdHJ1Y3Rvci5wYXRjaAotMDA2MS1wbWFwc19zbWFwcy5w YXRjaAotMDA2Mi10b3BfbnVtZXJpY19hcmdzLnBhdGNoCi0wMDYzLXRvcF8xX3N3YXAucGF0Y2gK LTAwNjQtd191c2VycHJvYy5wYXRjaAotMDA2NS1zeXNpbmZvX2tmcmVlYnNkX2hlcnR6LnBhdGNo Ci0wMDY2LXBzXzFfZmx0X291dHB1dC5wYXRjaAotMDA2Ny13YXRjaF9hbnNpX2NvbG91ci5wYXRj aAotMDA2OC10b3BfdXNlcm5hbWVfcGFyc2UucGF0Y2gKLTAwNjktZG9uLXQtaW5zdGFsbC1zdHVm Zi10aGF0LXdhcy1ub3QtYnVpbHQucGF0Y2gKLTAwNzAtcmVtb3ZlLWZyZW5hbWUtcmVnaXN0ZXJz LW9wdGlvbi1kdWUtdG8tSUNFLW9uLWdjYy00Li5wYXRjaAotMDA3MS1maXgtYnVpbGQtd2l0aC1t YWtlLTMuODIucGF0Y2gKZGlmZiAtLWdpdCBhL3Byb2plY3Ryb290L2V0Yy9pbml0LmQvY2hyb255 IGIvcHJvamVjdHJvb3QvZXRjL2luaXQuZC9jaHJvbnkKaW5kZXggZTdlOTM3YS4uZDExMjkyNyAx MDA2NDQKLS0tIGEvcHJvamVjdHJvb3QvZXRjL2luaXQuZC9jaHJvbnkKKysrIGIvcHJvamVjdHJv b3QvZXRjL2luaXQuZC9jaHJvbnkKQEAgLTYzLDcgKzYzLDcgQEAgc3RvcF9wcm9jKCkgewogCiBz ZXRfb25saW5lKCl7CiAgICAgICAgIG1lc3NhZ2VfbiAiU2V0dGluZyBOVFAgc2VydmVyIE9OTElO RSAuLi4gIgotCS9iaW4vcGlkb2YgY2hyb255ZCA+IC9kZXYvbnVsbCB8fCBiYWlsb3V0ICIgY2hy b255ZCBpcyBub3QgcnVubmluZyAiCisJcGlkb2YgY2hyb255ZCA+IC9kZXYvbnVsbCB8fCBiYWls b3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCiAJL3Vzci9iaW4vY2hyb255YyA8PC1FT0YK IAlwYXNzd29yZCAkUEFTU1dPUkQKIAlvbmxpbmUKQEAgLTc2LDcgKzc2LDcgQEAgc2V0X29ubGlu ZSgpewogCiBzZXRfb2ZmbGluZSgpewogICAgICAgICBtZXNzYWdlX24gIlNldHRpbmcgTlRQIHNl cnZlciBPRkZMSU5FIC4uLiAiCi0JL2Jpbi9waWRvZiBjaHJvbnlkID4gL2Rldi9udWxsIHx8IGJh aWxvdXQgIiBjaHJvbnlkIGlzIG5vdCBydW5uaW5nICIKKwlwaWRvZiBjaHJvbnlkID4gL2Rldi9u dWxsIHx8IGJhaWxvdXQgIiBjaHJvbnlkIGlzIG5vdCBydW5uaW5nICIKIAkvdXNyL2Jpbi9jaHJv bnljIDw8LUVPRgogCXBhc3N3b3JkICRQQVNTV09SRAogCW9mZmxpbmUKQEAgLTg2LDcgKzg2LDcg QEAgc2V0X29mZmxpbmUoKXsKIH0KIAogc2V0X3J0YygpewotCS9iaW4vcGlkb2YgY2hyb255ZCA+ IC9kZXYvbnVsbCB8fCBiYWlsb3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCisJcGlkb2Yg Y2hyb255ZCA+IC9kZXYvbnVsbCB8fCBiYWlsb3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAi CiAJaWYgWyAiJFJUQ19JT0NUTCIgPT0gImluY29tcGxldGUiIF0gOyB0aGVuIAogCSMgV2UgYXJl IHJ1bm5pbmcgb24gYSBzeXN0ZW0gd2l0aCBsaW1pdGVkIHJ0YyBzdXBwb3J0LAogCSMgc28gd2Ug Y2Fubm90IGxldCB0aGUgbnRwIGNsaWVudCBkbyB0aGUgam9iLiAKQEAgLTEwOSw3ICsxMDksNyBA QCBzZXRfcnRjKCl7CiB9CiAKIHN0YXR1cygpewotCS9iaW4vcGlkb2YgY2hyb255ZCA+IC9kZXYv bnVsbCB8fCBiYWlsb3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCisJcGlkb2YgY2hyb255 ZCA+IC9kZXYvbnVsbCB8fCBiYWlsb3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCiAJY2F0 IDw8LUVPRiB8IC91c3IvYmluL2Nocm9ueWMKIAlwYXNzd29yZCAkUEFTU1dPUkQKIAl0cmFja2lu ZwpAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXR1cygpewogfQogCiBzdGF0aXN0aWNzKCl7Ci0JL2Jp bi9waWRvZiBjaHJvbnlkID4gL2Rldi9udWxsIHx8IGJhaWxvdXQgIiBjaHJvbnlkIGlzIG5vdCBy dW5uaW5nICIKKwlwaWRvZiBjaHJvbnlkID4gL2Rldi9udWxsIHx8IGJhaWxvdXQgIiBjaHJvbnlk IGlzIG5vdCBydW5uaW5nICIKIAljYXQgPDwtRU9GIHwgL3Vzci9iaW4vY2hyb255YwogCXBhc3N3 b3JkICRQQVNTV09SRAogCXNvdXJjZXN0YXRzCmRpZmYgLS1naXQgYS9wcm9qZWN0cm9vdC91c3Iv YmluL2Nocm9ueV9jb21tYW5kIGIvcHJvamVjdHJvb3QvdXNyL2Jpbi9jaHJvbnlfY29tbWFuZApp bmRleCAwM2ExOGQwLi41MzRiZGUzIDEwMDY0NAotLS0gYS9wcm9qZWN0cm9vdC91c3IvYmluL2No cm9ueV9jb21tYW5kCisrKyBiL3Byb2plY3Ryb290L3Vzci9iaW4vY2hyb255X2NvbW1hbmQKQEAg LTE5LDcgKzE5LDcgQEAgYmFpbG91dCgpewogS0VZPSQoYXdrICckMSB+IC9eY29tbWFuZGtleSQv IHsgcHJpbnQgJDI7IGV4aXR9JyAvZXRjL2Nocm9ueS9jaHJvbnkuY29uZikKIFBBU1NXT1JEPWBh d2sgJyQxIH4gL14nJEtFWSckLyB7cHJpbnQgJDI7IGV4aXR9JyAvZXRjL2Nocm9ueS9jaHJvbnku a2V5c2AKIAotL2Jpbi9waWRvZiBjaHJvbnlkID4gL2Rldi9udWxsIHx8IGJhaWxvdXQgIiBjaHJv bnlkIGlzIG5vdCBydW5uaW5nICIKK3BpZG9mIGNocm9ueWQgPiAvZGV2L251bGwgfHwgYmFpbG91 dCAiIGNocm9ueWQgaXMgbm90IHJ1bm5pbmcgIgogL3Vzci9iaW4vY2hyb255YyA8PC1FT0YKIHBh c3N3b3JkICRQQVNTV09SRAogJGNvbW1hbmQKZGlmZiAtLWdpdCBhL3Byb2plY3Ryb290L3Vzci9i aW4vY2hyb255X3N0YXQgYi9wcm9qZWN0cm9vdC91c3IvYmluL2Nocm9ueV9zdGF0CmluZGV4IGU4 NmQzOTYuLjk0MmVhNDYgMTAwNjQ0Ci0tLSBhL3Byb2plY3Ryb290L3Vzci9iaW4vY2hyb255X3N0 YXQKKysrIGIvcHJvamVjdHJvb3QvdXNyL2Jpbi9jaHJvbnlfc3RhdApAQCAtODEsNyArODEsNyBA QCBlc2FjCiBkb25lCiB9CiAKLS9iaW4vcGlkb2YgY2hyb255ZCA+IC9kZXYvbnVsbCB8fCBiYWls b3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCitwaWRvZiBjaHJvbnlkID4gL2Rldi9udWxs IHx8IGJhaWxvdXQgIiBjaHJvbnlkIGlzIG5vdCBydW5uaW5nICIKIAogY2FzZSAkMSBpbiAKIAkt LWhlbHApCmRpZmYgLS1naXQgYS9ydWxlcy9wcm9jcHMuaW4gYi9ydWxlcy9wcm9jcHMuaW4KaW5k ZXggYmFmNjUxNC4uMGM2MGU0YiAxMDA2NDQKLS0tIGEvcnVsZXMvcHJvY3BzLmluCisrKyBiL3J1 bGVzL3Byb2Nwcy5pbgpAQCAtNCwzMSArNCwxMDkgQEAgbWVudWNvbmZpZyBQUk9DUFMKIAl0cmlz dGF0ZQogCXByb21wdCAicHJvY3BzICAgICAgICAgICAgICAgICAgICAgICAgIgogCXNlbGVjdCBH Q0NMSUJTX0dDQ19TCi0Jc2VsZWN0IE5DVVJTRVMJCWlmIFBST0NQU19UT1AKLQlzZWxlY3QgTkNV UlNFUwkJaWYgUFJPQ1BTX1NMQUJUT1AKKwlzZWxlY3QgTkNVUlNFUyBpZiBQUk9DUFNfVVNFU19O Q1VSU0VTCisJc2VsZWN0IFBST0NQU19VU0VTX05DVVJTRVMgaWYgUFJPQ1BTX1NMQUJUT1AgfHwg UFJPQ1BTX1RPUCB8fCBQUk9DUFNfV0FUQ0gKKwlzZWxlY3QgU1lTVEVNRCBpZiBQUk9DUFNfV0lU SF9TWVNURU1ECiAJaGVscAotCSAgVGhlIHByb2NwcyBwYWNrYWdlIGNvbnRhaW5zIGEgc2V0IG9m IHN5c3RlbSB1dGlsaXRpZXMgdGhhdCBwcm92aWRlCi0JICAgc3lzdGVtIGluZm9ybWF0aW9uLgor CSAgQ29udGFpbnMgYSBzZXQgb2Ygc3lzdGVtIHV0aWxpdGllcyB0aGF0IHByb3ZpZGUgaW5mb3Jt YXRpb24gb3V0IG9mIHRoZQorCSAgcHNldWRvLWZpbGVzeXN0ZW0gbW9zdCBjb21tb25seSBsb2Nh dGVkIGF0IC9wcm9jLiBUaGUgcHJvZ3JhbXMgZ2VuZXJhbGx5CisJICBjb25jZW50cmF0ZSBvbiB0 aGUgc3RydWN0dXJlcyB0aGF0IGRlc2NyaWJlIHRoZSBydW5uaW5nIHByb2Nlc3Nlcy4KKwkgIE5v dGU6IHByb2Nwcy1uZyBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIG9sZGVyIGFuZCB1bm1haW50YWlu ZWQgcHJvY3BzLgogCiBpZiBQUk9DUFMKIAotY29uZmlnIFBST0NQU19UT1AKK2NvbmZpZyBQUk9D UFNfVVNFU19OQ1VSU0VTCiAJYm9vbAotCXByb21wdCAidG9wIgotCWRlcGVuZHMgb24gIUJVU1lC T1hfVE9QIHx8IEFMTFlFUworCitjb25maWcgUFJPQ1BTX1dJVEhfU1lTVEVNRAorCWJvb2wKKwlw cm9tcHQgIkVuYWJsZSBzeXN0ZW1kIHN1cHBvcnQiCisJZGVmYXVsdCBJTklUTUVUSE9EX1NZU1RF TUQKKwlzZWxlY3QgU1lTVEVNRAogCWhlbHAKLQkgIFRoZSAgdG9wICBwcm9ncmFtIHByb3ZpZGVz IGEgZHluYW1pYyByZWFsLXRpbWUgdmlldyBvZiBhIHJ1bm5pbmcKLQkgIHN5c3RlbS4KLQkgIE5v dGU6IFRoaXMgY29tbWFuZCBlbmxhcmdlcyB5b3VyIHN5c3RlbSBieSB0aGUgbmN1cnNlcyBsaWJy YXJ5LgorCSAgRW5hYmxlIHN5c3RlbWQgc3VwcG9ydCB0byBzaG93IGluZm9ybWF0aW9uIGFib3V0 IHN5c3RlbWQgdW5pdHMsIHNsaWNlcworCSAgYW5kIGNvbnRhaW5lcnMgaW4gdG9vbHMgbGlrZSBw cy4gUmVjb21tZW5kZWQgd2hlbiB1c2luZyBzeXN0ZW1kLgogCi1jb21tZW50ICJidXN5Ym94JyB0 b3AgaXMgc2VsZWN0ZWQhIgotCWRlcGVuZHMgb24gQlVTWUJPWF9UT1AKK2NvbmZpZyBQUk9DUFNf RlJFRQorCWJvb2wKKwlwcm9tcHQgImZyZWUiCisJZGVwZW5kcyBvbiAhQlVTWUJPWF9GUkVFIHx8 IEFMTFlFUworCWhlbHAKKwkgIFRoZSBmcmVlIHByb2dyYW0gcmVwb3J0cyB0aGUgYW1vdW50IG9m IGZyZWUgYW5kIHVzZWQgbWVtb3J5LgorCitjb21tZW50ICJidXN5Ym94JyBmcmVlIGlzIHNlbGVj dGVkISIKKwlkZXBlbmRzIG9uIEJVU1lCT1hfRlJFRQorCitjb25maWcgUFJPQ1BTX1BHUkVQCisJ Ym9vbAorCXByb21wdCAicGdyZXAiCisJZGVwZW5kcyBvbiAhQlVTWUJPWF9QR1JFUCB8fCBBTExZ RVMKKwloZWxwCisJICBUaGUgcGdyZXAgcHJvZ3JhbSBjYW4gbG9vayB1cCBwcm9jZXNzZXMgYmFz ZWQgb24gbmFtZSBhbmQgb3RoZXIKKwkgIGF0dHJpYnV0ZXMuCisKK2NvbW1lbnQgImJ1c3lib3gn IHBncmVwIGlzIHNlbGVjdGVkISIKKwlkZXBlbmRzIG9uIEJVU1lCT1hfUEdSRVAKKworY29uZmln IFBST0NQU19QSURPRgorCWJvb2wKKwlwcm9tcHQgInBpZG9mIgorCWRlcGVuZHMgb24gIUJVU1lC T1hfUElET0YgfHwgQUxMWUVTCisJaGVscAorCSAgVGhlIHBpZG9mIHByb2dyYW0gY2FuIGxpc3Qg dGhlIHBpZHMgb2YgcnVubmluZyBwcm9jZXNzZXMuCisKK2NvbW1lbnQgImJ1c3lib3gnIHBpZG9m IGlzIHNlbGVjdGVkISIKKwlkZXBlbmRzIG9uIEJVU1lCT1hfUElET0YKKworY29uZmlnIFBST0NQ U19QS0lMTAorCWJvb2wKKwlwcm9tcHQgInBraWxsIgorCWRlcGVuZHMgb24gIUJVU1lCT1hfUEtJ TEwgfHwgQUxMWUVTCisJaGVscAorCSAgVGhlIHBraWxsIHByb2dyYW0gY2FuIGtpbGwgcHJvY2Vz c2VzIGJhc2VkIG9uIG5hbWUgYW5kIG90aGVyCisJICBhdHRyaWJ1dGVzLgorCitjb21tZW50ICJi dXN5Ym94JyBwa2lsbCBpcyBzZWxlY3RlZCEiCisJZGVwZW5kcyBvbiBCVVNZQk9YX1BLSUxMCisK K2NvbmZpZyBQUk9DUFNfUE1BUAorCWJvb2wKKwlwcm9tcHQgInBtYXAiCisJZGVwZW5kcyBvbiAh QlVTWUJPWF9QTUFQIHx8IEFMTFlFUworCWhlbHAKKwkgIFRoZSBwbWFwIHByb2dyYW0gcmVwb3J0 cyB0aGUgbWVtb3J5IG1hcCBvZiBhIHByb2Nlc3MuCisKK2NvbW1lbnQgImJ1c3lib3gnIHBtYXAg aXMgc2VsZWN0ZWQhIgorCWRlcGVuZHMgb24gQlVTWUJPWF9QTUFQCisKK2NvbmZpZyBQUk9DUFNf UFMKKwlib29sCisJcHJvbXB0ICJwcyIKKwlkZXBlbmRzIG9uICFCVVNZQk9YX1BTIHx8IEFMTFlF UworCWhlbHAKKwkgIFRoZSBwcyBwcm9ncmFtIGNhbiBhbmFseXNlIHRoZSBzdGF0ZXMgb2YgYWxs IHByb2Nlc3NlcyBydW5uaW5nCisJICBvbiB0aGUgc3lzdGVtLiBJdCBzdGFuZHMgZm9yIHByb2Nl c3Mgc3RhdHVzLgorCitjb21tZW50ICJidXN5Ym94JyBwcyBpcyBzZWxlY3RlZCEiCisJZGVwZW5k cyBvbiBCVVNZQk9YX1BTCisKK2NvbmZpZyBQUk9DUFNfUFdEWAorCWJvb2wKKwlwcm9tcHQgInB3 ZHgiCisJZGVwZW5kcyBvbiAhQlVTWUJPWF9QV0RYIHx8IEFMTFlFUworCWhlbHAKKwkgIFRoZSBw d2R4IHByb2dyYW0gcmVwb3J0cyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgb2YgYSBwcm9jZXNzLgor Citjb21tZW50ICJidXN5Ym94JyBwd2R4IGlzIHNlbGVjdGVkISIKKwlkZXBlbmRzIG9uIEJVU1lC T1hfUFdEWAogCiBjb25maWcgUFJPQ1BTX1NMQUJUT1AKIAlib29sCiAJcHJvbXB0ICJzbGFidG9w IgorCXNlbGVjdCBQUk9DUFNfVVNFU19OQ1VSU0VTCiAJaGVscAotCSAgZGlzcGxheSBrZXJuZWwg c2xhYiBjYWNoZSBpbmZvcm1hdGlvbiBpbiByZWFsIHRpbWUKKwkgIFRoZSBzbGFidG9wIHByb2dy YW0gZGlzcGxheXMga2VybmVsIHNsYWIgY2FjaGUgaW5mb3JtYXRpb24gaW4KKwkgIHJlYWwgdGlt ZS4KIAkgIE5vdGU6IFRoaXMgY29tbWFuZCBlbmxhcmdlcyB5b3VyIHN5c3RlbSBieSB0aGUgbmN1 cnNlcyBsaWJyYXJ5LgogCiBjb25maWcgUFJPQ1BTX1NZU0NUTApAQCAtMzYsMjIgKzExNCw0OSBA QCBjb25maWcgUFJPQ1BTX1NZU0NUTAogCXByb21wdCAic3lzY3RsIgogCWRlcGVuZHMgb24gIUJV U1lCT1hfQkJfU1lTQ1RMIHx8IEFMTFlFUwogCWhlbHAKLQkgIGNvbmZpZ3VyZSBrZXJuZWwgcGFy YW1ldGVycyBhdCBydW50aW1lCisJICBUaGUgc3lzY3RsIHByb2dyYW0gY29uZmlndXJlcyBrZXJu ZWwgcGFyYW1ldGVycyBhdCBydW50aW1lLgogCiBjb21tZW50ICJidXN5Ym94JyBzeXNjdGwgaXMg c2VsZWN0ZWQhIgogCWRlcGVuZHMgb24gQlVTWUJPWF9CQl9TWVNDVEwKIAotY29uZmlnIFBST0NQ U19QUworY29uZmlnIFBST0NQU19UT1AKIAlib29sCi0JcHJvbXB0ICJwcyIKLQlkZXBlbmRzIG9u ICFCVVNZQk9YX1BTIHx8IEFMTFlFUworCXByb21wdCAidG9wIgorCXNlbGVjdCBQUk9DUFNfVVNF U19OQ1VSU0VTCisJZGVwZW5kcyBvbiAhQlVTWUJPWF9UT1AgfHwgQUxMWUVTCiAJaGVscAotCSAg cHMgc3RhbmRzIGZvciBwcm9jZXNzIHN0YXR1cy4gV2l0aCB0aGlzIGNvbW1hbmQgeW91Ci0JICBh bmFseXNlIGN1cnJlbnQgc3RhdGVzIG9mIGFsbCBwcm9jZXNzZXMgcnVubmluZyBvbgotCSAgdGhl IHN5c3RlbQorCSAgVGhlICB0b3AgIHByb2dyYW0gcHJvdmlkZXMgYSBkeW5hbWljIHJlYWwtdGlt ZSB2aWV3IG9mIGEgcnVubmluZworCSAgc3lzdGVtLgorCSAgTm90ZTogVGhpcyBjb21tYW5kIGVu bGFyZ2VzIHlvdXIgc3lzdGVtIGJ5IHRoZSBuY3Vyc2VzIGxpYnJhcnkuCiAKLWNvbW1lbnQgImJ1 c3lib3gnIHBzIGlzIHNlbGVjdGVkISIKLQlkZXBlbmRzIG9uIEJVU1lCT1hfUFMKK2NvbmZpZyBQ Uk9DUFNfVE9QX01PREVSTgorCWJvb2wKKwlwcm9tcHQgInVzZSBtb2Rlcm4gc3RhcnR1cCBkZWZh dWx0cyBmb3IgdG9wIgorCWRlcGVuZHMgb24gUFJPQ1BTX1RPUAorCWhlbHAKKwkgIFVzZSB0aGUg bW9kZXJuIGNvbG9yIHNjaGVtZSBkZWZhdWx0cyBhbmQgdGhlIG5ldyBDUFUgbG9hZCByZXByZXNl bnRhdGlvbgorCSAgZm9yIG11bHRpcGxlIGNvcmVzLgorCSAgSWYgdGhpcyBvcHRpb24gaXMgZGlz YWJsZWQsIHRoZSBvcmlnaW5hbCB0b3AgbGF5b3V0IGlzIHVzZWQuCisKK2NvbW1lbnQgImJ1c3li b3gnIHRvcCBpcyBzZWxlY3RlZCEiCisJZGVwZW5kcyBvbiBCVVNZQk9YX1RPUAorCitjb25maWcg UFJPQ1BTX1VQVElNRQorCWJvb2wKKwlwcm9tcHQgInVwdGltZSIKKwlkZXBlbmRzIG9uICFCVVNZ Qk9YX1VQVElNRSB8fCBBTExZRVMKKwloZWxwCisJICBUaGUgdXB0aW1lIHByb2dyYW0gZGlzcGxh eXMgdGhlIHN5c3RlbSB1cHRpbWUuCisKK2NvbW1lbnQgImJ1c3lib3gnIHVwdGltZSBpcyBzZWxl Y3RlZCEiCisJZGVwZW5kcyBvbiBCVVNZQk9YX1VQVElNRQorCitjb25maWcgUFJPQ1BTX1ZNU1RB VAorCWJvb2wKKwlwcm9tcHQgInZtc3RhdCIKKwloZWxwCisJICB2bXN0YXQgcmVwb3J0cyBpbmZv cm1hdGlvbiBhYm91dCBwcm9jZXNzZXMsIG1lbW9yeSwKKwkgIHBhZ2luZywgYmxvY2sgSU8sIHRy YXBzLCBkaXNrcyBhbmQgY3B1IGFjdGl2aXR5LgogCiBjb25maWcgUFJPQ1BTX1cKIAlib29sCkBA IC01OSwxNCArMTY0LDE3IEBAIGNvbmZpZyBQUk9DUFNfVwogCWhlbHAKIAkgIFNob3cgd2hvIGlz IGxvZ2dlZCBvbiBhbmQgd2hhdCB0aGV5IGFyZSBkb2luZy4KIAotY29uZmlnIFBST0NQU19QR1JF UAorY29uZmlnIFBST0NQU19XQVRDSAogCWJvb2wKLQlwcm9tcHQgInBncmVwIgotCWRlcGVuZHMg b24gIUJVU1lCT1hfUEdSRVAgfHwgQUxMWUVTCisJcHJvbXB0ICJ3YXRjaCIKKwlzZWxlY3QgUFJP Q1BTX1VTRVNfTkNVUlNFUworCWRlcGVuZHMgb24gIUJVU1lCT1hfV0FUQ0ggfHwgQUxMWUVTCiAJ aGVscAotCSAgbG9vayB1cCBwcm9jZXNzZXMgYmFzZWQgb24gbmFtZSBhbmQgb3RoZXIgYXR0cmli dXRlcworCSAgVGhlIHdhdGNoIHByb2dyYW0gY2FuIGV4ZWN1dGUgYSBwcm9ncmFtIHBlcmlvZGlj YWxseSwgZGlzcGxheWluZyB0aGUKKwkgIG91dHB1dCBmdWxsc2NyZWVuLgorCSAgTm90ZTogVGhp cyBjb21tYW5kIGVubGFyZ2VzIHlvdXIgc3lzdGVtIGJ5IHRoZSBuY3Vyc2VzIGxpYnJhcnkuCiAK LWNvbW1lbnQgImJ1c3lib3gnIHBncmVwIGlzIHNlbGVjdGVkISIKLQlkZXBlbmRzIG9uIEJVU1lC T1hfUEdSRVAKK2NvbW1lbnQgImJ1c3lib3gnIHdhdGNoIGlzIHNlbGVjdGVkISIKKwlkZXBlbmRz IG9uIEJVU1lCT1hfV0FUQ0gKIAogZW5kaWYKZGlmZiAtLWdpdCBhL3J1bGVzL3Byb2Nwcy5tYWtl IGIvcnVsZXMvcHJvY3BzLm1ha2UKaW5kZXggNWQ5YzAzYS4uYmQ2ZWM4NSAxMDA2NDQKLS0tIGEv cnVsZXMvcHJvY3BzLm1ha2UKKysrIGIvcnVsZXMvcHJvY3BzLm1ha2UKQEAgLTIsNyArMiw4IEBA CiAjCiAjIENvcHlyaWdodCAoQykgMjAwMyBieSBJeGlhIENvcnBvcmF0aW9uLCBieSBNaWxhbiBC b2JkZQogIwkJMjAwNyBieSBQZW5ndXRyb25peCBlLksuCi0jICAgICAgICAgICAgICAgMjAwOSBi eSBNYXJjIEtsZWluZS1CdWRkZSA8bWtsQHBlbmd1dHJvbml4LmRlPgorIwkJMjAwOSBieSBNYXJj IEtsZWluZS1CdWRkZSA8bWtsQHBlbmd1dHJvbml4LmRlPgorIwkJMjAxNSBieSBDbGVtZW5zIEdy dWJlciA8Y2xlbWVucy5ncnViZXJAcHFncnViZXIuY29tPgogIwogIyBTZWUgQ1JFRElUUyBmb3Ig ZGV0YWlscyBhYm91dCB3aG8gaGFzIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcHJvamVjdC4KICMKQEAg LTE4LDQzICsxOSw0NCBAQCBQQUNLQUdFUy0kKFBUWENPTkZfUFJPQ1BTKSArPSBwcm9jcHMKICMK ICMgUGF0aHMgYW5kIG5hbWVzCiAjCi1QUk9DUFNfVkVSU0lPTgk6PSAzLjIuOAotUFJPQ1BTX01E NQk6PSA5NTMyNzE0YjY4NDYwMTNjYTk4OTg5ODRiYTRjZDdlMAotUFJPQ1BTCQk6PSBwcm9jcHMt JChQUk9DUFNfVkVSU0lPTikKLVBST0NQU19TVUZGSVgJOj0gdGFyLmd6Ci1QUk9DUFNfVVJMCTo9 IGh0dHA6Ly9wcm9jcHMuc291cmNlZm9yZ2UubmV0LyQoUFJPQ1BTKS4kKFBST0NQU19TVUZGSVgp CitQUk9DUFNfVkVSU0lPTgk6PSAzLjMuMTAKK1BST0NQU19NRDUJOj0gMWZiN2YzZjZiZjkyY2U2 YzVjOWVkOTk0OWFlODU4ZmUKK1BST0NQUwkJOj0gcHJvY3BzLW5nLSQoUFJPQ1BTX1ZFUlNJT04p CitQUk9DUFNfU1VGRklYCTo9IHRhci54egorUFJPQ1BTX1VSTAk6PSBodHRwOi8vZG93bmxvYWRz LnNvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L3Byb2Nwcy1uZy9Qcm9kdWN0aW9uLyQoUFJPQ1BTX1ZF UlNJT04pLiQoUFJPQ1BTX1NVRkZJWCkKIFBST0NQU19TT1VSQ0UJOj0gJChTUkNESVIpLyQoUFJP Q1BTKS4kKFBST0NQU19TVUZGSVgpCiBQUk9DUFNfRElSCTo9ICQoQlVJTERESVIpLyQoUFJPQ1BT KQogUFJPQ1BTX0xJQ0VOU0UJOj0gR1BMdjIgKHRvb2xzKSwgTEdQTHYyIChsaWJzKQogUFJPQ1BT X0xJQ0VOU0VfRklMRVMgOj0gXAotCWZpbGU6Ly9DT1BZSU5HO21kNT0wNjM2ZTczZmYwMjE1ZThk NjcyZGM0YzMyYzMxN2JiMyBcCi0JZmlsZTovL0NPUFlJTkcuTElCO21kNT02ZTI5YzY4OGQ5MTJk YTEyYjY2YjczZTMyYjAzZDgxMgorCWZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0 NDg2YTgwZmRhZjRhNDI2MyBcCisJZmlsZTovL0NPUFlJTkcuTElCO21kNT00Y2Y2NmE0OTg0MTIw MDA3Yzk4ODFjYzg3MWNmNDlkYgogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgUHJlcGFyZQog IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgYnVpbGQgb25seSB0aGUgcmVxdWlyZWQgcGFydHMK LVBST0NQU19BTEwtJChQVFhDT05GX1BST0NQU19UT1ApCSs9ICQoUFJPQ1BTX1BLR0RJUikvdXNy L2Jpbi90b3AKLVBST0NQU19BTEwtJChQVFhDT05GX1BST0NQU19TTEFCVE9QKQkrPSAkKFBST0NQ U19QS0dESVIpL3Vzci9iaW4vc2xhYnRvcAotUFJPQ1BTX0FMTC0kKFBUWENPTkZfUFJPQ1BTX1NZ U0NUTCkJKz0gJChQUk9DUFNfUEtHRElSKS9zYmluL3N5c2N0bAotUFJPQ1BTX0FMTC0kKFBUWENP TkZfUFJPQ1BTX1cpCQkrPSAkKFBST0NQU19QS0dESVIpL3Vzci9iaW4vdwotUFJPQ1BTX0FMTC0k KFBUWENPTkZfUFJPQ1BTX1BHUkVQKQkrPSAkKFBST0NQU19QS0dESVIpL3Vzci9iaW4vcGdyZXAK K1BST0NQU19DT05GX0VOVgk6PSBcCisJJChDUk9TU19FTlYpIFwKKwkkKGNhbGwgcHR4L25jdXJz ZXMsIFBUWENPTkZfUFJPQ1BTX1VTRVNfTkNVUlNFUykKIAotUFJPQ1BTX1BBVEgJOj0gUEFUSD0k KENST1NTX1BBVEgpCi1QUk9DUFNfTUFLRVZBUlMJOj0gXAotCUNDPSIkKENST1NTX0NDKSIgXAot CUNGTEFHUz0tTzIgXAotCUNQUEZMQUdTPSckKENST1NTX0NQUEZMQUdTKScgXAotCUxERkxBR1M9 JyQoQ1JPU1NfTERGTEFHUyknIFwKLQlsaWI2ND0kKENST1NTX0xJQl9ESVIpIFwKLQlsZGNvbmZp Zz10cnVlIFwKLQlNQU5GSUxFUz0iIiBcCi0JQklORklMRVM9IiQoUFJPQ1BTX0FMTC15KSIKKyMK KyMgYXV0b2NvbmYKKyMKK1BST0NQU19DT05GX1RPT0wJOj0gYXV0b2NvbmYKK1BST0NQU19DT05G X09QVAk6PSBcCisJJChDUk9TU19BVVRPQ09ORl9VU1IpIFwKKwktLWVuYWJsZS1zaGFyZWQgXAor CS0tZGlzYWJsZS1zdGF0aWMgXAorCS0tZGlzYWJsZS1ubHMgXAorCS0tZGlzYWJsZS1ycGF0aCBc CisJLS1kaXNhYmxlLWtpbGwgXAorCS0tJChjYWxsIHB0eC9lbmRpcywgUFJPQ1BTX1RPUF9NT0RF Uk4pLW1vZGVybi10b3AgXAorCS0tcHJlZml4PS8gXAorCS0td2l0aG91dC1saWJpY29udi1wcmVm aXggXAorCS0td2l0aG91dC1saWJpbnRsLXByZWZpeCBcCisJLS0kKGNhbGwgcHR4L3d3bywgUFRY Q09ORl9QUk9DUFNfVVNFU19OQ1VSU0VTKS1uY3Vyc2VzIFwKKwktLSQoY2FsbCBwdHgvd3dvLCBQ VFhDT05GX1BST0NQU19XSVRIX1NZU1RFTUQpLXN5c3RlbWQKIAotJChTVEFURURJUikvcHJvY3Bz LnByZXBhcmU6Ci0JQCQoY2FsbCB0YXJnZXRpbmZvKQotCUAkKGNhbGwgdG91Y2gpCiAKICMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIyBUYXJnZXQtSW5zdGFsbApAQCAtNjYsMTQgKzY4LDM4IEBAICQo U1RBVEVESVIpL3Byb2Nwcy50YXJnZXRpbnN0YWxsOgogCUAkKGNhbGwgaW5zdGFsbF9pbml0LCBw cm9jcHMpCiAJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBwcm9jcHMsUFJJT1JJVFksb3B0aW9uYWwp CiAJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBwcm9jcHMsU0VDVElPTixiYXNlKQotCUAkKGNhbGwg aW5zdGFsbF9maXh1cCwgcHJvY3BzLEFVVEhPUiwiUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVs QHBlbmd1dHJvbml4LmRlPiIpCisJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBwcm9jcHMsQVVUSE9S LCJDbGVtZW5zIEdydWJlciA8Y2xlbWVucy5ncnViZXJAcHFncnViZXIuY29tPiIpCiAJQCQoY2Fs bCBpbnN0YWxsX2ZpeHVwLCBwcm9jcHMsREVTQ1JJUFRJT04sbWlzc2luZykKIAotCUAkKGNhbGwg aW5zdGFsbF9saWIsIHByb2NwcywgMCwgMCwgMDY0NCwgbGlicHJvYy0zLjIuOCkKKwlAJChjYWxs IGluc3RhbGxfbGliLCBwcm9jcHMsIDAsIDAsIDA2NDQsIGxpYnByb2NwcykKIAotaWZkZWYgUFRY Q09ORl9QUk9DUFNfVE9QCi0JQCQoY2FsbCBpbnN0YWxsX2NvcHksIHByb2NwcywgMCwgMCwgMDc1 NSwgLSxcCi0JCS91c3IvYmluL3RvcCkKK2lmZGVmIFBUWENPTkZfUFJPQ1BTX0ZSRUUKKwlAJChj YWxsIGluc3RhbGxfY29weSwgcHJvY3BzLCAwLCAwLCAwNzU1LCAtLCBcCisJCS91c3IvYmluL2Zy ZWUpCitlbmRpZgoraWZkZWYgUFRYQ09ORl9QUk9DUFNfUEdSRVAKKwlAJChjYWxsIGluc3RhbGxf Y29weSwgcHJvY3BzLCAwLCAwLCAwNzU1LCAtLCBcCisJCS91c3IvYmluL3BncmVwKQorZW5kaWYK K2lmZGVmIFBUWENPTkZfUFJPQ1BTX1BJRE9GCisJQCQoY2FsbCBpbnN0YWxsX2NvcHksIHByb2Nw cywgMCwgMCwgMDc1NSwgLSwgXAorCQkvdXNyL2Jpbi9waWRvZikKK2VuZGlmCitpZmRlZiBQVFhD T05GX1BST0NQU19QS0lMTAorCUAkKGNhbGwgaW5zdGFsbF9jb3B5LCBwcm9jcHMsIDAsIDAsIDA3 NTUsIC0sIFwKKwkJL3Vzci9iaW4vcGtpbGwpCitlbmRpZgoraWZkZWYgUFRYQ09ORl9QUk9DUFNf UE1BUAorCUAkKGNhbGwgaW5zdGFsbF9jb3B5LCBwcm9jcHMsIDAsIDAsIDA3NTUsIC0sIFwKKwkJ L3Vzci9iaW4vcG1hcCkKK2VuZGlmCitpZmRlZiBQVFhDT05GX1BST0NQU19QUworCUAkKGNhbGwg aW5zdGFsbF9jb3B5LCBwcm9jcHMsIDAsIDAsIDA3NTUsIC0sIFwKKwkJL2Jpbi9wcykKK2VuZGlm CitpZmRlZiBQVFhDT05GX1BST0NQU19QV0RYCisJQCQoY2FsbCBpbnN0YWxsX2NvcHksIHByb2Nw cywgMCwgMCwgMDc1NSwgLSwgXAorCQkvdXNyL2Jpbi9wd2R4KQogZW5kaWYKIGlmZGVmIFBUWENP TkZfUFJPQ1BTX1NMQUJUT1AKIAlAJChjYWxsIGluc3RhbGxfY29weSwgcHJvY3BzLCAwLCAwLCAw NzU1LCAtLCBcCkBAIC04MiwyMSArMTA4LDI5IEBAIGVuZGlmCiBpZmRlZiBQVFhDT05GX1BST0NQ U19TWVNDVEwKIAlAJChjYWxsIGluc3RhbGxfY29weSwgcHJvY3BzLCAwLCAwLCAwNzU1LCAtLCBc CiAJCS9zYmluL3N5c2N0bCkKLQogCUAkKGNhbGwgaW5zdGFsbF9hbHRlcm5hdGl2ZSwgcHJvY3Bz LCAwLCAwLCAwNjQ0LCAvZXRjL3N5c2N0bC5jb25mLCBuKQogZW5kaWYKLWlmZGVmIFBUWENPTkZf UFJPQ1BTX1BTCitpZmRlZiBQVFhDT05GX1BST0NQU19UT1AKIAlAJChjYWxsIGluc3RhbGxfY29w eSwgcHJvY3BzLCAwLCAwLCAwNzU1LCAtLCBcCi0JCS9iaW4vcHMpCisJCS91c3IvYmluL3RvcCkK K2VuZGlmCitpZmRlZiBQVFhDT05GX1BST0NQU19VUFRJTUUKKwlAJChjYWxsIGluc3RhbGxfY29w eSwgcHJvY3BzLCAwLCAwLCAwNzU1LCAtLCBcCisJCS91c3IvYmluL3VwdGltZSkKK2VuZGlmCitp ZmRlZiBQVFhDT05GX1BST0NQU19WTVNUQVQKKwlAJChjYWxsIGluc3RhbGxfY29weSwgcHJvY3Bz LCAwLCAwLCAwNzU1LCAtLCBcCisJCS91c3IvYmluL3Ztc3RhdCkKIGVuZGlmCiBpZmRlZiBQVFhD T05GX1BST0NQU19XCiAJQCQoY2FsbCBpbnN0YWxsX2NvcHksIHByb2NwcywgMCwgMCwgMDc1NSwg LSwgXAogCQkvdXNyL2Jpbi93KQogZW5kaWYKLWlmZGVmIFBUWENPTkZfUFJPQ1BTX1BHUkVQCitp ZmRlZiBQVFhDT05GX1BST0NQU19XQVRDSAogCUAkKGNhbGwgaW5zdGFsbF9jb3B5LCBwcm9jcHMs IDAsIDAsIDA3NTUsIC0sIFwKLQkJL3Vzci9iaW4vcGdyZXApCisJCS91c3IvYmluL3dhdGNoKQog ZW5kaWYKKwogCUAkKGNhbGwgaW5zdGFsbF9maW5pc2gsIHByb2NwcykKIAogCUAkKGNhbGwgdG91 Y2gpCi0tIAoyLjQuNQoKCi0tIApwdHhkaXN0IG1haWxpbmcgbGlzdApwdHhkaXN0QHBlbmd1dHJv bml4LmRlCg==