ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDY2NjliZjAuLjZiMWZkMWIgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMjMsNiArMjMsNyBAQAogL2dpdC1jYXQtZmlsZQogL2dpdC1jaGVjay1hdHRyCiAvZ2l0LWNoZWNrLWlnbm9yZQorL2dpdC1jaGVjay1tYWlsbWFwCiAvZ2l0LWNoZWNrLXJlZi1mb3JtYXQKIC9naXQtY2hlY2tvdXQKIC9naXQtY2hlY2tvdXQtaW5kZXgKQEAgLTEyNSw2ICsxMjYsNyBAQAogL2dpdC1yZW1vdGUtZnRwcwogL2dpdC1yZW1vdGUtZmQKIC9naXQtcmVtb3RlLWV4dAorL2dpdC1yZW1vdGUtdGVzdGdpdAogL2dpdC1yZW1vdGUtdGVzdHB5CiAvZ2l0LXJlbW90ZS10ZXN0c3ZuCiAvZ2l0LXJlcGFjawpAQCAtMTkwLDYgKzE5Miw4IEBACiAvdGVzdC1ta3RlbXAKIC90ZXN0LXBhcnNlLW9wdGlvbnMKIC90ZXN0LXBhdGgtdXRpbHMKKy90ZXN0LXByaW8tcXVldWUKKy90ZXN0LXJlYWQtY2FjaGUKIC90ZXN0LXJlZ2V4CiAvdGVzdC1yZXZpc2lvbi13YWxraW5nCiAvdGVzdC1ydW4tY29tbWFuZApAQCAtMjI4LDYgKzIzMiw3IEBACiAvY3Njb3BlKgogKi5vYmoKICoubGliCisqLnJlcwogKi5zbG4KICouc3VvCiAqLm5jYgpkaWZmIC0tZ2l0IGEvLm1haWxtYXAgYi8ubWFpbG1hcAppbmRleCA0OGQ3YWNmLi4xYzFmNWVjIDEwMDY0NAotLS0gYS8ubWFpbG1hcAorKysgYi8ubWFpbG1hcApAQCAtNSw5OCArNSwyNDIgQEAKICMgc2FtZSBwZXJzb24gYXBwZWFyaW5nIG5vdCB0byBiZSBzby4KICMKIAorPG5pY29AZmx1eG5pYy5uZXQ+IDxuaWNvQGNhbS5vcmc+CitBbGVqYW5kcm8gUi4gU2VkZcOxbyA8YXNlZGVub0BNSVQuRURVPiA8YXNlZGVub0BtaXQuZWR1PgogQWxleCBCZW5uw6llIDxrZXJuZWwtaGFja2VyQGJlbm5lZS5jb20+CitBbGV4IFJpZXNlbiA8cmFhLmxrbWxAZ21haWwuY29tPiA8Zm9yazBAdC1vbmxpbmUuZGU+CitBbGV4IFJpZXNlbiA8cmFhLmxrbWxAZ21haWwuY29tPiA8cmFhQGxpbWJvLmxvY2FsZG9tYWluPgorQWxleCBSaWVzZW4gPHJhYS5sa21sQGdtYWlsLmNvbT4gPHJhYUBzdGVlbC5ob21lPgorQWxleCBWYW5kaXZlciA8YWxleEBjaG1yci5uZXQ+IDxhbGV4bXZATUlULkVEVT4KIEFsZXhhbmRlciBHYXZyaWxvdiA8YW5nYXZyaWxvdkBnbWFpbC5jb20+CitBbGV4ZXkgU2h1bWtpbiA8YWxleC5jcmV6b2ZmQGdtYWlsLmNvbT4gPHphcHBlZEBtYWlsLnJ1PgorQWxleGV5IFNodW1raW4gPGFsZXguY3Jlem9mZkBnbWFpbC5jb20+IDxBbGV4LkNyZXpvZmZAZ21haWwuY29tPgorQW5kZXJzIEthc2VvcmcgPGFuZGVyc2tATUlULkVEVT4gPGFuZGVyc2tAa3NwbGljZS5jb20+CitBbmRlcnMgS2FzZW9yZyA8YW5kZXJza0BNSVQuRURVPiA8YW5kZXJza0BtaXQuZWR1PgogQW5lZXNoIEt1bWFyIEsuViA8YW5lZXNoLmt1bWFyQGdtYWlsLmNvbT4KLUJyaWFuIE0uIENhcmxzb24gPHNhbmRhbHNAY3J1c3R5dG9vdGhwYXN0ZS5hdGguY3g+CitBbW9zIFdhdGVybGFuZCA8YXB3QGRlYmlhbi5vcmc+IDxhcHdAcm9zc2J5Lm1ldHIub3UuZWR1PgorQW1vcyBXYXRlcmxhbmQgPGFwd0BkZWJpYW4ub3JnPiA8YXB3QHVzLmlibS5jb20+CitCZW4gV2FsdG9uIDxiZHdhbHRvbkBnbWFpbC5jb20+IDxid2FsdG9uQGFydHNjaS51dG9yb250by5jYT4KK0Jlbm9pdCBTaWdvdXJlIDx0c3VuYW5ldEBnbWFpbC5jb20+IDx0c3VuYUBscmRlLmVwaXRhLmZyPgorQmVybnQgSGFuc2VuIDxiZXJudEBub3JhbmcuY2E+IDxiZXJudEBhbHVtbmkudXdhdGVybG9vLmNhPgorQnJhbmRvbiBDYXNleSA8ZHJhZm5lbEBnbWFpbC5jb20+IDxjYXNleUBucmxzc2MubmF2eS5taWw+CiticmlhbiBtLiBjYXJsc29uIDxzYW5kYWxzQGNydXN0eXRvb3RocGFzdGUuYXRoLmN4PiBCcmlhbiBNLiBDYXJsc29uIDxzYW5kYWxzQGNydXN0eXRvb3RocGFzdGUuYXRoLmN4PgorYnJpYW4gbS4gY2FybHNvbiA8c2FuZGFsc0BjcnVzdHl0b290aHBhc3RlLmF0aC5jeD4gPHNhbmRhbHNAY3J1c3R5dG9vdGhwYXN0ZS5uZXQ+CitCcnlhbiBMYXJzZW4gPGJyeWFuQGxhcnNlbi5zdD4gPGJyeWFuLmxhcnNlbkBnbWFpbC5jb20+CitCcnlhbiBMYXJzZW4gPGJyeWFuQGxhcnNlbi5zdD4gPGJyeWFubGFyc2VuQHlhaG9vLmNvbT4KIENoZW5nIFJlbnF1YW4gPGNycXVhbkBnbWFpbC5jb20+CiBDaHJpcyBTaG9lbWFrZXIgPGMuc2hvZW1ha2VyQGNveC5uZXQ+CitDaHJpcyBXcmlnaHQgPGNocmlzd0Bzb3VzLXNvbC5vcmc+IDxjaHJpc3dAb3NkbC5vcmc+CitDb3JkIFNlZWxlIDxjb3dvc2VAZ21haWwuY29tPiA8Y293b3NlQGdvb2dsZW1haWwuY29tPgorQ2hyaXN0aWFuIFN0aW1taW5nIDxzdGltbWluZ0B0dWhoLmRlPiA8Y2hzQGNraXN0ZS5nb2V0aGVhbGxlZT4KK0NzYWJhIEhlbmsgPGNzYWJhQGdsdXN0ZXIuY29tPiA8Y3NhYmFAbG93bGlmZS5odT4KIERhbiBKb2huc29uIDxjb21wdXRlcmRydWlkQGdtYWlsLmNvbT4KLURhbmEgTC4gSG93IDxkYW5haG93QGdtYWlsLmNvbT4KLURhbmEgTC4gSG93IDxob3dAZGVhdGh2YWxsZXkuY3N3aXRjaC5jb20+CitEYW5hIEwuIEhvdyA8ZGFuYWhvd0BnbWFpbC5jb20+IDxob3dAZGVhdGh2YWxsZXkuY3N3aXRjaC5jb20+CitEYW5hIEwuIEhvdyA8ZGFuYWhvd0BnbWFpbC5jb20+IERhbmEgSG93CiBEYW5pZWwgQmFya2Fsb3cgPGJhcmthbG93QGlhYmVydm9uLm9yZz4KK0RhbmllbCBUcnN0ZW5qYWsgPGRhbmllbC50cnN0ZW5qYWtAZ21haWwuY29tPiA8ZGFuaWVsLnRyc3Rlbmpha0BvbmxpbmUuZGU+CitEYW5pZWwgVHJzdGVuamFrIDxkYW5pZWwudHJzdGVuamFrQGdtYWlsLmNvbT4gPHRyc3RlbkBzY2llbmNlLWNvbXB1dGluZy5kZT4KK0RhdmlkIEJyb3duIDxnaXRAZGF2aWRiLm9yZz4gPGRhdmlkYkBxdWljaW5jLmNvbT4KIERhdmlkIEQuIEtpbHplciA8ZGRraWx6ZXJAa2lsemVyLm5ldD4KIERhdmlkIEvDpWdlZGFsIDxkYXZpZGtAbHlzYXRvci5saXUuc2U+CitEYXZpZCBSZWlzcyA8ZHJlaXNzQGZhY2Vib29rLmNvbT4gPGRyZWlzc0BkcmVpc3Mtdm13YXJlLihub25lKT4KIERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KIERlc2tpbiBNaWxsZXIgPGRlc2tpbm1AdW1pY2guZWR1PgogRGlyayBTw7xzc2Vyb3R0IDxuZXdzbGV0dGVyQGRpcmsubXkxLmNjPgorRXJpYyBCbGFrZSA8ZWJsYWtlQHJlZGhhdC5jb20+IDxlYmI5QGJ5dS5uZXQ+CitFcmljIEhhbmNocm93IDxlcmljLmhhbmNocm93QGdtYWlsLmNvbT4gPG9mZmJ5MUBibGFyZy5uZXQ+CiBFcmljIFMuIFJheW1vbmQgPGVzckB0aHlyc3VzLmNvbT4KIEVyaWsgRmF5ZS1MdW5kIDxrdXNtYWJpdGVAZ21haWwuY29tPiA8a3VzbWFiaXRlQGdvb2dsZW1haWwuY29tPgotRnJlZHJpayBLdWl2aW5lbiA8ZnJla3UwNDVAc3R1ZGVudC5saXUuc2U+CitFeXZpbmQgQmVybmhhcmRzZW4gPGV5dmluZC5iZXJuaGFyZHNlbkBnbWFpbC5jb20+IDxleXZpbmQtZ2l0QG9yYWtlbC5udG51Lm5vPgorRmxvcmlhbiBBY2hsZWl0bmVyIDxmbG9yaWFuLmFjaGxlaXRuZXIuMi42LjMxQGdtYWlsLmNvbT4gPGZsb3JpYW4uYWNobGVpdG5lcjIuNi4zMUBnbWFpbC5jb20+CitGcmFuY2sgQnVpLUh1dSA8dmFnYWJvbi54eXpAZ21haWwuY29tPiA8ZmJ1aWh1dUBnbWFpbC5jb20+CitGcmFuayBMaWNodGVuaGVsZCA8ZnJhbmtAbGljaHRlbmhlbGQuZGU+IDxkanBpZ0BkZWJpYW4ub3JnPgorRnJhbmsgTGljaHRlbmhlbGQgPGZyYW5rQGxpY2h0ZW5oZWxkLmRlPiA8ZmxpY2h0ZW5oZWxkQGFzdGFyby5jb20+CitGcmVkcmlrIEt1aXZpbmVuIDxmcmVrdWlAZ21haWwuY29tPiA8ZnJla3UwNDVAc3R1ZGVudC5saXUuc2U+CiBGcsOpZMOpcmljIEhlaXR6bWFubiA8ZnJlZGVyaWMuaGVpdHptYW5uQGdtYWlsLmNvbT4KLUguIFBldGVyIEFudmluIDxocGFAYm9uZGUuc2Mub3Jpb25tdWx0aS5jb20+Ci1ILiBQZXRlciBBbnZpbiA8aHBhQHRhemVuZGEuc2Mub3Jpb25tdWx0aS5jb20+Ci1ILiBQZXRlciBBbnZpbiA8aHBhQHRyYW50b3IuaG9zLmFudmluLm9yZz4KK0dhcnJ5IERvbGxleSA8Z2RvbGxleUB1Y2xhLmVkdT4gPGdkb2xsZXlAYXJwbmV0d29ya3MuY29tPgorR3JlZyBQcmljZSA8cHJpY2VAbWl0LmVkdT4gPHByaWNlQE1JVC5FRFU+CitHcmVnIFByaWNlIDxwcmljZUBtaXQuZWR1PiA8cHJpY2VAa3NwbGljZS5jb20+CitIZWlrbyBWb2lndCA8aHZvaWd0QGh2b2lndC5uZXQ+IDxnaXQtbGlzdEBodm9pZ3QubmV0PgorSC4gTWVyaWpuIEJyYW5kIDxoLm0uYnJhbmRAeHM0YWxsLm5sPiBILk1lcmlqbiBCcmFuZCA8aC5tLmJyYW5kQHhzNGFsbC5ubD4KK0guIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPiA8aHBhQGJvbmRlLnNjLm9yaW9ubXVsdGkuY29tPgorSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+IDxocGFAc215cm5vLmhvcy5hbnZpbi5vcmc+CitILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4gPGhwYUB0YXplbmRhLnNjLm9yaW9ubXVsdGkuY29tPgorSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+IDxocGFAdHJhbnRvci5ob3MuYW52aW4ub3JnPgorSGFuLVdlbiBOaWVuaHV5cyA8aGFud2VuQGdvb2dsZS5jb20+IEhhbi1XZW4gTmllbmh1eXMgPGhhbndlbkB4czRhbGwubmw+CiBIb3JzdCBILiB2b24gQnJhbmQgPHZvbmJyYW5kQGluZi51dGZzbS5jbD4KLcSwc21haWwgRMO2bm1leiA8aXNtYWlsQHBhcmR1cy5vcmcudHI+CitKLiBCcnVjZSBGaWVsZHMgPGJmaWVsZHNAY2l0aS51bWljaC5lZHU+IDxiZmllbGRzQGZpZWxkc2VzLm9yZz4KK0ouIEJydWNlIEZpZWxkcyA8YmZpZWxkc0BjaXRpLnVtaWNoLmVkdT4gPGJmaWVsZHNAcGlnLmxpbnV4ZGV2LnVzLmRlbGwuY29tPgorSi4gQnJ1Y2UgRmllbGRzIDxiZmllbGRzQGNpdGkudW1pY2guZWR1PiA8YmZpZWxkc0BwdXp6bGUuZmllbGRzZXMub3JnPgogSmFrdWIgTmFyxJlic2tpIDxqbmFyZWJAZ21haWwuY29tPgotSmF5IFNvZmZpYW4gPGpheXNvZmZpYW4rZ2l0QGdtYWlsLmNvbT4KK0phbWVzIFkgS25pZ2h0IDxqa25pZ2h0QGl0YXNvZnR3YXJlLmNvbT4gPGZvb21AZnVobS5uZXQ+CisjIFRoZSAyIGZvbGxvd2luZyBhdXRob3JzIGFyZSBwcm9iYWJseSB0aGUgc2FtZSBwZXJzb24sCisjIGJ1dCBib3RoIGVtYWlscyBib3VuY2UuCitKYXNvbiBNY011bGxhbiA8amFzb24ubWNtdWxsYW5AdGltZXN5cy5jb20+CitKYXNvbiBNY011bGxhbiA8bWNtdWxsYW5AbmV0YXBwLmNvbT4KK0phc29uIFJpZWR5IDxlanJAZWVjcy5iZXJrZWxleS5lZHU+IDxlanJARUVDUy5CZXJrZWxleS5FRFU+CitKYXNvbiBSaWVkeSA8ZWpyQGVlY3MuYmVya2VsZXkuZWR1PiA8ZWpyQGNzLmJlcmtlbGV5LmVkdT4KK0pheSBTb2ZmaWFuIDxqYXlzb2ZmaWFuQGdtYWlsLmNvbT4gPGpheXNvZmZpYW4rZ2l0QGdtYWlsLmNvbT4KIEplZmYgS2luZyA8cGVmZkBwZWZmLm5ldD4gPHBlZmZAZ2l0aHViLmNvbT4KK0plZmYgTXVpemVsYWFyIDxqbXVpemVsYWFyQG1vemlsbGEuY29tPiA8amVmZkBpbmZpZGlnbS5uZXQ+CitKZW5zIEF4Ym9lIDxheGJvZUBrZXJuZWwuZGs+IDxheGJvZUBzdXNlLmRlPgorSmVucyBBeGJvZSA8YXhib2VAa2VybmVsLmRrPiA8amVucy5heGJvZUBvcmFjbGUuY29tPgorSmltIE1leWVyaW5nIDxqaW1AbWV5ZXJpbmcubmV0PiA8bWV5ZXJpbmdAcmVkaGF0LmNvbT4KIEpvYWNoaW0gQmVyZGFsIEhhZ2EgPGNqaGFnYUBmeXMudWlvLm5vPgotSm9oYW5uZXMgU2l4dCA8ajZ0QGtkYmcub3JnPiA8am9oYW5uZXMuc2l4dEB0ZWxlY29tLmF0PgotSm9oYW5uZXMgU2l4dCA8ajZ0QGtkYmcub3JnPiA8ai5zaXh0QHZpc2NvdmVyeS5uZXQ+CitKb2hhbm5lcyBTY2hpbmRlbGluIDxKb2hhbm5lcy5TY2hpbmRlbGluQGdteC5kZT4gPGpvaGFubmVzLnNjaGluZGVsaW5AZ214LmRlPgogSm9oYW5uZXMgU2l4dCA8ajZ0QGtkYmcub3JnPiA8Si5TaXh0QGV1ZGFwdGljcy5jb20+Ci1Kb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgotSm9uIFNleW1vdXIgPGpvbkBibGFja2N1YmVzLmR5bmRucy5vcmc+Ci1Kb25hdGhhbiBOaWVkZXIgPGpybmllZGVyQHVjaGljYWdvLmVkdT4KK0pvaGFubmVzIFNpeHQgPGo2dEBrZGJnLm9yZz4gPGouc2l4dEB2aXNjb3ZlcnkubmV0PgorSm9oYW5uZXMgU2l4dCA8ajZ0QGtkYmcub3JnPiA8am9oYW5uZXMuc2l4dEB0ZWxlY29tLmF0PgorSm9obiAnV2FydGhvZzknIEhhd2xleSA8d2FydGhvZzlAa2VybmVsLm9yZz4gPHdhcnRob2c5QGVhZ2xlc2NyYWcubmV0PgorSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4gPGpkbEBmcmVlc2NhbGUuY29tPgorSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4gPGpkbEBmcmVlc2NhbGUub3JnPgorSm9uIFNleW1vdXIgPGpvbi5zZXltb3VyQGdtYWlsLmNvbT4gPGpvbkBibGFja2N1YmVzLmR5bmRucy5vcmc+CitKb25hdGhhbiBOaWVkZXIgPGpybmllZGVyQGdtYWlsLmNvbT4gPGpybmllZGVyQHVjaGljYWdvLmVkdT4KK0pvbmF0aGFuIGRlbCBTdHJvdGhlciA8am9uLmRlbFN0cm90aGVyQGJlc3RiZWZvcmUudHY+IDxtYWlsbGlzdEBzdGVlbHNraWVzLmNvbT4KK0pvc2ggVHJpcGxldHQgPGpvc2hAam9zaHRyaXBsZXR0Lm9yZz4gPGpvc2hAZnJlZWRlc2t0b3Aub3JnPgorSm9zaCBUcmlwbGV0dCA8am9zaEBqb3NodHJpcGxldHQub3JnPiA8am9zaHRAdXMuaWJtLmNvbT4KK0p1bGlhbiBQaGlsbGlwcyA8anVsaWFuQHF1YW50dW1meXJlLmNvLnVrPiA8anAzQHF1YW50dW1meXJlLmNvLnVrPgogSnVuaW8gQyBIYW1hbm8gPGdpdHN0ZXJAcG9ib3guY29tPiA8Z2l0c3RlckBwb2JveC5jb20+Ci1KdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5pb0Bwb2JveC5jb20+Ci1KdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5pb0B0d2luc3VuLmNvbT4KLUp1bmlvIEMgSGFtYW5vIDxnaXRzdGVyQHBvYm94LmNvbT4gPGp1bmtpb0B0d2luc3VuLmNvbT4KIEp1bmlvIEMgSGFtYW5vIDxnaXRzdGVyQHBvYm94LmNvbT4gPGp1bmlvQGhlcmEua2VybmVsLm9yZz4KIEp1bmlvIEMgSGFtYW5vIDxnaXRzdGVyQHBvYm94LmNvbT4gPGp1bmlvQGtlcm5lbC5vcmc+CitKdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5pb0Bwb2JveC5jb20+CitKdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5pb0B0d2luc3VuLmNvbT4KIEp1bmlvIEMgSGFtYW5vIDxnaXRzdGVyQHBvYm94LmNvbT4gPGp1bmtpb0Bjb3gubmV0PgotS2FybCBIYXNzZWxzdHLDtm0gPGtoYUB0cmVza2FsLmNvbT4KLUtldmluIExldW5nIDxrZXZpbmxza0BnbWFpbC5jb20+CitKdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5raW9AdHdpbnN1bi5jb20+CitLYXJsIFdpYmVyZyA8a2hhQHRyZXNrYWwuY29tPiBLYXJsICBIYXNzZWxzdHLDtm0KK0thcmwgV2liZXJnIDxraGFAdHJlc2thbC5jb20+IDxraGFAeW9naHVydC5oZW1tYS50cmVza2FsLmNvbT4KK0thcnN0ZW4gQmxlZXMgPGJsZWVzQGRjb24uZGU+IDxrYXJzdGVuLmJsZWVzQGRjb24uZGU+CitLYXJzdGVuIEJsZWVzIDxibGVlc0BkY29uLmRlPiA8a2Fyc3Rlbi5ibGVlc0BnbWFpbC5jb20+CitLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+IDxrYXkuc2lldmVyc0BzdXNlLmRlPgorS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPiA8a2F5QG1hbS4obm9uZSk+CitLZWl0aCBDYXNjaW8gPGtlaXRoQENTLlVDTEEuRURVPiA8a2VpdGhAY3MudWNsYS5lZHU+CiBLZW50IEVuZ3N0cm9tIDxrZW50QGx5c2F0b3IubGl1LnNlPgorS2V2aW4gTGV1bmcgPGtldmlubHNrQGdtYWlsLmNvbT4KK0tpcmlsbCBTbWVsa292IDxraXJyQG5hdnl0dXguc3BiLnJ1PiA8a2lyckBsYW5kYXUucGh5cy5zcGJ1LnJ1PgorS2lyaWxsIFNtZWxrb3YgPGtpcnJAbmF2eXR1eC5zcGIucnU+IDxraXJyQG1ucy5zcGIucnU+CitLbnV0IEZyYW5rZSA8S251dC5GcmFua2VAZ214LmRlPiA8ay5mcmFua2VAc2NpZW5jZS1jb21wdXRpbmcuZGU+CiBMYXJzIERvZWxsZSA8bGFycy5kb2VsbGVAb24tbGluZSAhIGRlPgogTGFycyBEb2VsbGUgPGxhcnMuZG9lbGxlQG9uLWxpbmUuZGU+CitMYXJzIE5vc2NoaW5za2kgPGxhcnNAcHVibGljLm5vc2NoaW5za2kuZGU+IDxsYXJzLm5vc2NoaW5za2lAcnd0aC1hYWNoZW4uZGU+CiBMaSBIb25nIDxsZWVob25nQHBrdS5lZHUuY24+Ci1MaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+IDx0b3J2YWxkc0B3b29keS5saW51eC1mb3VuZGF0aW9uLm9yZz4KLUxpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4gPHRvcnZhbGRzQG9zZGwub3JnPgotTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPiA8dG9ydmFsZHNAZzUub3NkbC5vcmc+CiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+IDx0b3J2YWxkc0Bldm8ub3NkbC5vcmc+Ci1MaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+IDx0b3J2YWxkc0BwcGM5NzAub3NkbC5vcmc+CitMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+IDx0b3J2YWxkc0BnNS5vc2RsLm9yZz4KK0xpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4gPHRvcnZhbGRzQG9zZGwub3JnPgogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPiA8dG9ydmFsZHNAcHBjOTcwLm9zZGwub3JnLihub25lKT4KLUx1a2FzIFNhbmRzdHLDtm0gPGx1a2Fzc0BldGVrLmNoYWxtZXJzLnNlPgorTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPiA8dG9ydmFsZHNAcHBjOTcwLm9zZGwub3JnPgorTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPiA8dG9ydmFsZHNAd29vZHkubGludXgtZm91bmRhdGlvbi5vcmc+CitMdWthcyBTYW5kc3Ryw7ZtIDxsdWtzYW5AZ21haWwuY29tPiA8bHVrYXNzQGV0ZWsuY2hhbG1lcnMuc2U+CitNYXJjIEtob3V6YW0gPG1hcmMua2hvdXphbUBlcmljc3Nvbi5jb20+IDxtYXJjLmtob3V6YW1AZ21haWwuY29tPgogTWFyYy1BbmRyw6kgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KK01hcmNvIENvc3RhbGJhIDxtY29zdGFsYmFAZ21haWwuY29tPiA8bWNvc3RhbGJhQHlhaG9vLml0PgorTWFyayBMZXZlZGFobCA8bWRsMTIzQHZlcml6b24ubmV0PiA8bWxldmVkYWhsQGdtYWlsLmNvbT4KIE1hcmsgUmFkYSA8bWFyYWRhQHV3YXRlcmxvby5jYT4KIE1hcnRpbiBMYW5naG9mZiA8bWFydGluQGxhcHRvcC5vcmc+IDxtYXJ0aW5AY2F0YWx5c3QubmV0Lm56PgogTWFydGluIHZvbiBad2VpZ2JlcmdrIDxtYXJ0aW52b256QGdtYWlsLmNvbT4gPG1hcnRpbi52b24uendlaWdiZXJna0BnbWFpbC5jb20+CitNYXR0IERyYWlzZXkgPG1hdHRAZHJhaXNleS5jYT4gPG1hdHRkcmFpc2V5QHN5bXBhdGljby5jYT4KK01hdHQgS3JhYWkgPGtyYWFpQGZ0YmZzLm9yZz4gPG1hdHQua3JhYWlAYW1vLmFiYm90dC5jb20+CitNYXR0IE1jQ3V0Y2hlbiA8bWF0dEBtYXR0bWNjdXRjaGVuLm5ldD4gPGhhc2hwcm9kdWN0QGdtYWlsLmNvbT4KK01hdHRoaWFzIEtlc3RlbmhvbHogPG1hdHRoaWFzQHNwaW5sb2NrLmNoPiA8bWtAc3BpbmxvY2suY2g+CitNYXR0aGlhcyBVcmxpY2hzIDxtYXR0aGlhc0B1cmxpY2hzLmRlPiA8c211cmZAa2lzdGUuKG5vbmUpPgorTWF0dGhpYXMgVXJsaWNocyA8bWF0dGhpYXNAdXJsaWNocy5kZT4gPHNtdXJmQHNtdXJmLm5vcmlzLmRlPgogTWljaGFlbCBDb2xlbWFuIDx0dXR1ZmFuQGdtYWlsLmNvbT4KIE1pY2hhZWwgSiBHcnViZXIgPGdpdEBkcm1pY2hhLndhcnBtYWlsLm5ldD4gPG1pY2hhZWxqZ3J1YmVyK2dtYW5lQGZhc3RtYWlsLmZtPgorTWljaGFlbCBTLiBUc2lya2luIDxtc3RAa2VybmVsLm9yZz4gPG1zdEByZWRoYXQuY29tPgorTWljaGFlbCBTLiBUc2lya2luIDxtc3RAa2VybmVsLm9yZz4gPG1zdEBtZWxsYW5veC5jby5pbD4KK01pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QGtlcm5lbC5vcmc+IDxtc3RAZGV2Lm1lbGxhbm94LmNvLmlsPgogTWljaGFlbCBXLiBPbHNvbiA8bXdvbHNvbkBnbnUub3JnPgorTWljaGFlbCBXaXR0ZW4gPG1md2l0dGVuQGdtYWlsLmNvbT4gPG1md2l0dGVuQE1JVC5FRFU+CitNaWNoYWVsIFdpdHRlbiA8bWZ3aXR0ZW5AZ21haWwuY29tPiA8bWZ3aXR0ZW5AbWl0LmVkdT4KK01pY2hhbCBSb2tvcyA8bWljaGFsLnJva29zQG5leHRzb2Z0LmN6PiA8cm9rb3NAbmV4dHNvZnQuY3o+CiBNaWNoZWxlIEJhbGxhYmlvIDxiYXJyYV9jdWRhQGthdGFtYWlsLmNvbT4KLU5hbmFrbyBTaGlyYWlzaGkgPG5hbmFrbzNAYmx1ZWJvdHRsZS5jb20+CitNaWtsb3MgVmFqbmEgPHZtaWtsb3NAZnJ1Z2Fsd2FyZS5vcmc+IDx2bWlrbG9zQHN1c2UuY3o+CitOYW1oeXVuZyBLaW0gPG5hbWh5dW5nQGdtYWlsLmNvbT4gPG5hbWh5dW5nLmtpbUBsZ2UuY29tPgorTmFtaHl1bmcgS2ltIDxuYW1oeXVuZ0BnbWFpbC5jb20+IDxuYW1oeXVuZ0BrZXJuZWwub3JnPgorTmFuYWtvIFNoaXJhaXNoaSA8bmFuYWtvM0BsYXZhYml0LmNvbT4gPG5hbmFrbzNAYmx1ZWJvdHRsZS5jb20+CiBOYW5ha28gU2hpcmFpc2hpIDxuYW5ha28zQGxhdmFiaXQuY29tPgorTmVsc29uIEVsaGFnZSA8bmVsaGFnZUBtaXQuZWR1PiA8bmVsaGFnZUBNSVQuRURVPgorTmVsc29uIEVsaGFnZSA8bmVsaGFnZUBtaXQuZWR1PiA8bmVsaGFnZUBrc3BsaWNlLmNvbT4KIE5ndXnhu4VuIFRow6FpIE5n4buNYyBEdXkgPHBjbG91ZHNAZ21haWwuY29tPgotPG5pY29AZmx1eG5pYy5uZXQ+IDxuaWNvQGNhbS5vcmc+Ci1QZXRlciBLcmVmdGluZyA8cGV0ZXJAc29mdHdvbHZlcy5wcC5zZT4gPHBldGVyQHN2YXJ0ZW4uaW50ZXJuLnNvZnR3b2x2ZXMucHAuc2U+CitOaWNrIFN0b2tvZSA8bmlja0Bub29kbGVmYWN0b3J5LmNvLnVrPiBOaWNrIFdvb2xsZXkgPG5pY2tAbm9vZGxlZmFjdG9yeS5jby51az4KK05pY2sgU3Rva29lIDxuaWNrQG5vb2RsZWZhY3RvcnkuY28udWs+IE5pY2sgV29vbGxleSA8bmlja3dvb2xsZXlAeWFob28uY28udWs+CitOaWNvbGFzIE1vcmV5LUNoYWlzZW1hcnRpbiA8ZGV2ZWwtZ2l0QG1vcmV5LWNoYWlzZW1hcnRpbi5jb20+IDxuaWNvbGFzLm1vcmV5QGZyZWUuZnI+CitOaWNvbGFzIE1vcmV5LUNoYWlzZW1hcnRpbiA8ZGV2ZWwtZ2l0QG1vcmV5LWNoYWlzZW1hcnRpbi5jb20+IDxubW9yZXlAa2FscmF5LmV1PgorTmljb2xhcyBTZWJyZWNodCA8bmljb2xhcy5zLmRldkBnbXguZnI+IDxuaS5zQGxhcG9zdGUubmV0PgorUGFvbG8gQm9uemluaSA8Ym9uemluaUBnbnUub3JnPiA8cGFvbG8uYm9uemluaUBsdS51bmlzaS5jaD4KK1Bhc2NhbCBPYnJ5IDxwYXNjYWxAb2JyeS5uZXQ+IDxwYXNjYWwub2JyeUBnbWFpbC5jb20+CitQYXNjYWwgT2JyeSA8cGFzY2FsQG9icnkubmV0PiA8cGFzY2FsLm9icnlAd2FuYWRvby5mcj4KK1BhdCBOb3R6IDxwYXRub3R6QGdtYWlsLmNvbT4gPHBrbm90ekBzYW5kaWEuZ292PgorUGF1bCBNYWNrZXJyYXMgPHBhdWx1c0BzYW1iYS5vcmc+IDxwYXVsdXNAZG9ycmlnby4obm9uZSk+CitQYXVsIE1hY2tlcnJhcyA8cGF1bHVzQHNhbWJhLm9yZz4gPHBhdWx1c0Bwb2dvLihub25lKT4KK1BldGVyIEJhdW1hbm4gPHdhc3RlLm1hbmFnZXJAZ214LmRlPiA8UGV0ZXIuQi5CYXVtYW5uQHN0dWQuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CitQZXRlciBCYXVtYW5uIDx3YXN0ZS5tYW5hZ2VyQGdteC5kZT4gPHNpcHJiYXVtQHN0dWQuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CiBQZXRlciBLcmVmdGluZyA8cGV0ZXJAc29mdHdvbHZlcy5wcC5zZT4gPHBldGVyQHNvZnR3b2x2ZXMucHAuc2U+CitQZXRlciBLcmVmdGluZyA8cGV0ZXJAc29mdHdvbHZlcy5wcC5zZT4gPHBldGVyQHN2YXJ0ZW4uaW50ZXJuLnNvZnR3b2x2ZXMucHAuc2U+CiBQZXRyIEJhdWRpcyA8cGFza3lAdWN3LmN6PiA8cGFza3lAc3VzZS5jej4KK1BldHIgQmF1ZGlzIDxwYXNreUB1Y3cuY3o+IDx4cGFza3lAbWFjaGluZT4KK1BoaWwgSG9yZCA8aG9yZHBAY2lzY28uY29tPiA8cGhpbC5ob3JkQGdtYWlsLmNvbT4KK1BoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwQGZvb2xpcC5vcmc+IDxwaGlsaXAuamFnZW5zdGVkdEBnbWFpbC5jb20+CitQaGlsaXBwIEEuIEhhcnRtYW5uIDxwYWhAcW8uY3g+IDxwaEBzb3JnaC5kZT4KIFBoaWxpcHBlIEJydWhhdCA8Ym9va0BjcGFuLm9yZz4KIFJhbGYgVGhpZWxvdyA8cmFsZi50aGllbG93QGdtYWlsLmNvbT4gPHJhbGYudGhpZWxvd0Bnb29nbGVtYWlsLmNvbT4KIFJhbXNheSBBbGxhbiBKb25lcyA8cmFtc2F5QHJhbXNheTEuZGVtb24uY28udWs+Ci1SZW7DqSBTY2hhcmZlIDxyZW5lLnNjaGFyZmVAbHNyZmlyZS5hdGguY3g+CitSZW7DqSBTY2hhcmZlIDxsLnMuckB3ZWIuZGU+IDxyZW5lLnNjaGFyZmVAbHNyZmlyZS5hdGguY3g+CiBSb2JlcnQgRml0enNpbW9ucyA8cm9iZml0ekAyNzNrLm5ldD4KK1JvYmVydCBTaGVhcm1hbiA8cm9iZXJ0c2hlYXJtYW5AZ21haWwuY29tPiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KIFJvYmVydCBaZWggPHJvYmVydC5hLnplaEBnbWFpbC5jb20+Ci1TYW0gVmlsYWluIDxzYW1AdmlsYWluLm5ldD4KLVNhbnRpIELDqWphciA8c2JlamFyQGdtYWlsLmNvbT4KK1JvYmluIFJvc2VuYmVyZyA8cm9iaW4ucm9zZW5iZXJnQGRld2lyZS5jb20+IDxyb2Jpbi5yb3NlbmJlcmcubGlzdHNAZGV3aXJlLmNvbT4KK1J1dGdlciBOaWpsdW5zaW5nIDxydXRnZXIubmlqbHVuc2luZ0BnbWFpbC5jb20+IDxydXRnZXJAbm9zcGFtLmNvbT4KK1J1dGdlciBOaWpsdW5zaW5nIDxydXRnZXIubmlqbHVuc2luZ0BnbWFpbC5jb20+IDxnaXRAdHV4LnRtZndlYi5ubD4KK1J5YW4gQW5kZXJzb24gPHJ5YW5AbWljaG9ubGluZS5jb20+IDxyZGFAZ29vZ2xlLmNvbT4KK1NhbGlraCBaYWtpcm92IDxzYWxpa2guemFraXJvdkBnbWFpbC5jb20+IDxTYWxpa2guWmFraXJvdkBJbnRlbC5jb20+CitTYW0gVmlsYWluIDxzYW1AdmlsYWluLm5ldD4gPHNhbS52aWxhaW5AY2F0YWx5c3QubmV0Lm56PgorU2FtIFZpbGFpbiA8c2FtQHZpbGFpbi5uZXQ+IHNhbUB2aWxhaW4ubmV0CitTYW50aSBCw6lqYXIgPHNhbnRpQGFnb2xpbmEubmV0PiA8c2JlamFyQGdtYWlsLmNvbT4KIFNlYW4gRXN0YWJyb29rcyA8c2VhbmxrbWxAc3ltcGF0aWNvLmNhPgorU2ViYXN0aWFuIFNjaHViZXJ0aCA8c3NjaHViZXJ0aEBnbWFpbC5jb20+IDxzc2NodWJlcnRoQHZpc2FnZWltYWdpbmcuY29tPgorU2V0aCBGYWxjb24gPHNldGhAdXNlcnByaW1hcnkubmV0PiA8c2ZhbGNvbkBmaGNyYy5vcmc+CiBTaGF3biBPLiBQZWFyY2UgPHNwZWFyY2VAc3BlYXJjZS5vcmc+Ci1TdGV2ZW4gR3JpbW0gPGtvcmV0aEBtaWR3aW50ZXIuY29tPgorU2ltb24gSGF1c21hbm4gPGhhdXNtYW5uQGtkZS5vcmc+IDxzaW1vbkBsc3QuZGU+CitTaW1vbiBIYXVzbWFubiA8aGF1c21hbm5Aa2RlLm9yZz4gPHNoYXVzbWFuQHRyb2xsdGVjaC5jb20+CitTdGVmYW4gTmFld2UgPHN0ZWZhbi5uYWV3ZUBnbWFpbC5jb20+IDxzdGVmYW4ubmFld2VAYXRsYXMtZWxla3Ryb25pay5jb20+CitTdGVmYW4gTmFld2UgPHN0ZWZhbi5uYWV3ZUBnbWFpbC5jb20+IDxzdGVmYW4ubmFld2VAZ29vZ2xlbWFpbC5jb20+CitTdGVmYW4gU3BlcmxpbmcgPHN0c3BAZWxlZ28uZGU+IDxzdHNwQHN0c3AubmFtZT4KK8WgdMSbcMOhbiBOxJttZWMgPHN0ZXBuZW1AZ21haWwuY29tPiA8c3RlcGFuLm5lbWVjQGdtYWlsLmNvbT4KK1N0ZXBoZW4gQm95ZCA8YmViYXJpbm9AZ21haWwuY29tPiA8c2JveWRAY29kZWF1cm9yYS5vcmc+CitTdGV2ZW4gRHJha2UgPHNkcmFrZUB4bmV0LmNvLm56PiA8c2RyYWtlQGlodWcuY28ubno+CitTdGV2ZW4gR3JpbW0gPGtvcmV0aEBtaWR3aW50ZXIuY29tPiA8c2dyaW1tQHNncmltbS1tYnAubG9jYWw+CitTdGV2ZW4gR3JpbW0gPGtvcmV0aEBtaWR3aW50ZXIuY29tPiBrb3JldGhAbWlkd2ludGVyLmNvbQorU3RldmVuIFdhbHRlciA8c3RldmVucndhbHRlckBnbWFpbC5jb20+IDxzd2FsdGVyQGxleG1hcmsuY29tPgorU3RldmVuIFdhbHRlciA8c3RldmVucndhbHRlckBnbWFpbC5jb20+IDxzd2FsdGVyQGxwZGV2LnBydGRldi5sZXhtYXJrLmNvbT4KK1N2ZW4gVmVyZG9vbGFlZ2UgPHNraW1vQGtvdG5ldC5vcmc+IDxTdmVuLlZlcmRvb2xhZWdlQGNzLmt1bGV1dmVuLmFjLmJlPgorU3ZlbiBWZXJkb29sYWVnZSA8c2tpbW9Aa290bmV0Lm9yZz4gPHNraW1vQGxpYWNzLm5sPgogVGF5IFJheSBDaHVhbiA8cmN0YXk4OUBnbWFpbC5jb20+CitUZWQgUGVyY2l2YWwgPHRlZEBtaWRnM3QubmV0PiA8dGVkLnBlcmNpdmFsQHF1ZXN0LmNvbT4KIFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+CitUaG9tYXMgQWNrZXJtYW5uIDx0aC5hY2tlckBhcmNvci5kZT4gPHRoLmFja2VyNjZAYXJjb3IuZGU+CiBUaG9tYXMgUmFzdCA8dHJhc3RAaW5mLmV0aHouY2g+IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitUaW1vIEhpcnZvbmVuIDx0aWhpcnZvbkBnbWFpbC5jb20+IDx0aWhpcnZvbkBlZS5vdWx1LmZpPgorVG9ieSBBbGxzb3BwIDxUb2J5LkFsbHNvcHBAbmF2bWFuLmNvLm56PiA8dG9ieS5hbGxzb3BwQG5hdm1hbi5jby5uej4KK1RvbSBHcmVubmFuIDx0bWdyZW5uYW5AZ21haWwuY29tPiA8dGdyZW5uYW5AcmVkYmFjay5jb20+CitUb21taSBWaXJ0YW5lbiA8dHZAZGViaWFuLm9yZz4gPHR2QGVhZ2Fpbi5uZXQ+CitUb21taSBWaXJ0YW5lbiA8dHZAZGViaWFuLm9yZz4gPHR2QGlub2kuZmk+CitUb21teSBUaG9ybiA8dG9tbXktZ2l0QHRob3JuLndzPiA8dHQxNzI5QHlhaG9vLmNvbT4KIFRvbnkgTHVjayA8dG9ueS5sdWNrQGludGVsLmNvbT4KLVV3ZSBLbGVpbmUtS8O2bmlnIDxVd2VfWmVpc2JlcmdlckBkaWdpLmNvbT4KLVV3ZSBLbGVpbmUtS8O2bmlnIDxVd2UuS2xlaW5lLUtvZW5pZ0BkaWdpLmNvbT4KLVV3ZSBLbGVpbmUtS8O2bmlnIDx1a2xlaW5la0BpbmZvcm1hdGlrLnVuaS1mcmVpYnVyZy5kZT4KLVV3ZSBLbGVpbmUtS8O2bmlnIDx1emVpc2JlcmdlckBpby5mc2ZvcnRoLmRlPgotVXdlIEtsZWluZS1Lw7ZuaWcgPHplaXNiZXJnQGluZm9ybWF0aWsudW5pLWZyZWlidXJnLmRlPgotVmlsbGUgU2t5dHTDpCA8c2NvcEB4ZW1hY3Mub3JnPgorVG9yIEFybmUgVmVzdGLDuCA8dG9yYXJudkBnbWFpbC5jb20+IDx0YXZlc3Rib0B0cm9sbHRlY2guY29tPgorVHJlbnQgUGllcGhvIDx0cGllcGhvQGdtYWlsLmNvbT4gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KK1RyZW50IFBpZXBobyA8dHBpZXBob0BnbWFpbC5jb20+IDx4eXp6eUBzcGVha2Vhc3kub3JnPgorVXdlIEtsZWluZS1Lw7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT4gPFV3ZS5LbGVpbmUtS29lbmlnQGRpZ2kuY29tPgorVXdlIEtsZWluZS1Lw7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT4gPHVrbGVpbmVrQGluZm9ybWF0aWsudW5pLWZyZWlidXJnLmRlPgorVXdlIEtsZWluZS1Lw7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT4gPHV6ZWlzYmVyZ2VyQGlvLmZzZm9ydGguZGU+CitVd2UgS2xlaW5lLUvDtm5pZyA8dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPiA8emVpc2JlcmdAaW5mb3JtYXRpay51bmktZnJlaWJ1cmcuZGU+CitWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiA8c2NvcEB4ZW1hY3Mub3JnPgogVml0YWx5ICJfVmkiIFNodWtlbGEgPHB1YmxpY192aUB0dXQuYnk+CitXLiBUcmV2b3IgS2luZyA8d2tpbmdAdHJlbWlseS51cz4gPHdraW5nQGRyZXhlbC5lZHU+CiBXaWxsaWFtIFB1cnNlbGwgPGJpbGwucHVyc2VsbEBnbWFpbC5jb20+CitZT05FVEFOSSBUb21va2F6dSA8eTBuM3Q0bjFAZ21haWwuY29tPiA8cWh3dCtnaXRAbGVzLmF0aC5jeD4KK1lPTkVUQU5JIFRvbW9rYXp1IDx5MG4zdDRuMUBnbWFpbC5jb20+IDx5MG5ldGFuMUBkcmFnb25mbHlic2Qub3JnPgogWU9TSElGVUpJIEhpZGVha2kgPHlvc2hmdWppQGxpbnV4LWlwdjYub3JnPgorIyB0aGUgdHdvIGFub255bW91cyBjb250cmlidXRvcnMgYXJlIGRpZmZlcmVudCBwZXJzb25zOgogYW5vbnltb3VzIDxsaW51eEBob3Jpem9uLmNvbT4KIGFub255bW91cyA8bGludXhAaG9yaXpvbi5uZXQ+CivEsHNtYWlsIETDtm5tZXogPGlzbWFpbEBwYXJkdXMub3JnLnRyPgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9NYWtlZmlsZSBiL0RvY3VtZW50YXRpb24vTWFrZWZpbGUKaW5kZXggNjJkYmQ5YS4uMGNmZGMzNiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9NYWtlZmlsZQorKysgYi9Eb2N1bWVudGF0aW9uL01ha2VmaWxlCkBAIC0zMSwxMSArMzEsMTEgQEAKIE1BTjdfVFhUICs9IGdpdHdvcmtmbG93cy50eHQKIAogTUFOX1RYVCA9ICQoTUFOMV9UWFQpICQoTUFONV9UWFQpICQoTUFON19UWFQpCi1NQU5fWE1MPSQocGF0c3Vic3QgJS50eHQsJS54bWwsJChNQU5fVFhUKSkKLU1BTl9IVE1MPSQocGF0c3Vic3QgJS50eHQsJS5odG1sLCQoTUFOX1RYVCkpCitNQU5fWE1MID0gJChwYXRzdWJzdCAlLnR4dCwlLnhtbCwkKE1BTl9UWFQpKQorTUFOX0hUTUwgPSAkKHBhdHN1YnN0ICUudHh0LCUuaHRtbCwkKE1BTl9UWFQpKQogCiBPQlNPTEVURV9IVE1MID0gZ2l0LXJlbW90ZS1oZWxwZXJzLmh0bWwKLURPQ19IVE1MPSQoTUFOX0hUTUwpICQoT0JTT0xFVEVfSFRNTCkKK0RPQ19IVE1MID0gJChNQU5fSFRNTCkgJChPQlNPTEVURV9IVE1MKQogCiBBUlRJQ0xFUyA9IGhvd3RvLWluZGV4CiBBUlRJQ0xFUyArPSBldmVyeWRheQpAQCAtNzQsMzUgKzc0LDM1IEBACiAKIERPQ19IVE1MICs9ICQocGF0c3Vic3QgJSwlLmh0bWwsJChBUlRJQ0xFUykgJChTUF9BUlRJQ0xFUykpCiAKLURPQ19NQU4xPSQocGF0c3Vic3QgJS50eHQsJS4xLCQoTUFOMV9UWFQpKQotRE9DX01BTjU9JChwYXRzdWJzdCAlLnR4dCwlLjUsJChNQU41X1RYVCkpCi1ET0NfTUFONz0kKHBhdHN1YnN0ICUudHh0LCUuNywkKE1BTjdfVFhUKSkKK0RPQ19NQU4xID0gJChwYXRzdWJzdCAlLnR4dCwlLjEsJChNQU4xX1RYVCkpCitET0NfTUFONSA9ICQocGF0c3Vic3QgJS50eHQsJS41LCQoTUFONV9UWFQpKQorRE9DX01BTjcgPSAkKHBhdHN1YnN0ICUudHh0LCUuNywkKE1BTjdfVFhUKSkKIAotcHJlZml4Pz0kKEhPTUUpCi1iaW5kaXI/PSQocHJlZml4KS9iaW4KLWh0bWxkaXI/PSQocHJlZml4KS9zaGFyZS9kb2MvZ2l0LWRvYwotcGRmZGlyPz0kKHByZWZpeCkvc2hhcmUvZG9jL2dpdC1kb2MKLW1hbmRpcj89JChwcmVmaXgpL3NoYXJlL21hbgotbWFuMWRpcj0kKG1hbmRpcikvbWFuMQotbWFuNWRpcj0kKG1hbmRpcikvbWFuNQotbWFuN2Rpcj0kKG1hbmRpcikvbWFuNwotIyBERVNURElSPQorcHJlZml4ID89ICQoSE9NRSkKK2JpbmRpciA/PSAkKHByZWZpeCkvYmluCitodG1sZGlyID89ICQocHJlZml4KS9zaGFyZS9kb2MvZ2l0LWRvYworaW5mb2RpciA/PSAkKHByZWZpeCkvc2hhcmUvaW5mbworcGRmZGlyID89ICQocHJlZml4KS9zaGFyZS9kb2MvZ2l0LWRvYworbWFuZGlyID89ICQocHJlZml4KS9zaGFyZS9tYW4KK21hbjFkaXIgPSAkKG1hbmRpcikvbWFuMQorbWFuNWRpciA9ICQobWFuZGlyKS9tYW41CittYW43ZGlyID0gJChtYW5kaXIpL21hbjcKKyMgREVTVERJUiA9CiAKIEFTQ0lJRE9DID0gYXNjaWlkb2MKIEFTQ0lJRE9DX0VYVFJBID0KIE1BTlBBR0VfWFNMID0gbWFucGFnZS1ub3JtYWwueHNsCiBYTUxUTyA9IHhtbHRvCiBYTUxUT19FWFRSQSA9Ci1JTlNUQUxMPz1pbnN0YWxsCitJTlNUQUxMID89IGluc3RhbGwKIFJNID89IHJtIC1mCiBNQU5fUkVQTyA9IC4uLy4uL2dpdC1tYW5wYWdlcwogSFRNTF9SRVBPID0gLi4vLi4vZ2l0LWh0bWxkb2NzCiAKLWluZm9kaXI/PSQocHJlZml4KS9zaGFyZS9pbmZvCi1NQUtFSU5GTz1tYWtlaW5mbwotSU5TVEFMTF9JTkZPPWluc3RhbGwtaW5mbwotRE9DQk9PSzJYX1RFWEk9ZG9jYm9vazJ4LXRleGkKLURCTEFURVg9ZGJsYXRleAorTUFLRUlORk8gPSBtYWtlaW5mbworSU5TVEFMTF9JTkZPID0gaW5zdGFsbC1pbmZvCitET0NCT09LMlhfVEVYSSA9IGRvY2Jvb2syeC10ZXhpCitEQkxBVEVYID0gZGJsYXRleAogaWZuZGVmIFBFUkxfUEFUSAogCVBFUkxfUEFUSCA9IC91c3IvYmluL3BlcmwKIGVuZGlmCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy4xMC4xLnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjEwLjEudHh0CmluZGV4IDgwNmE5NjUuLmJlNjg1MjQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjEwLjEudHh0CisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjEwLjEudHh0CkBAIC0xNCw3ICsxNCw3IEBACiAgICBub3QgZXhjbHVkZSB0aGVtIGFuZCB0cmllZCB0byBhcHBseSBmdW5ueSBwYXRjaGVzIG9ubHkgdG8gZmFpbC4KIAogICogImdpdCBibGFtZSIgc3RhcnRlZCBtaXNzaW5nIHF1aXRlIGEgZmV3IGNoYW5nZXMgZnJvbSB0aGUgb3JpZ2luCi0gICBzaW5jZSB3ZSBzdG9wcGVkIHVzaW5nIHRoZSBkaWZmIG1pbmltYWxpemF0aW9uIGJ5IGRlZmF1bHQgaW4gdjEuNy4yCisgICBzaW5jZSB3ZSBzdG9wcGVkIHVzaW5nIHRoZSBkaWZmIG1pbmltaXphdGlvbiBieSBkZWZhdWx0IGluIHYxLjcuMgogICAgZXJhLgogCiAgKiBXaGVuIFBBVEggY29udGFpbnMgYW4gdW5yZWFkYWJsZSBkaXJlY3RvcnksIGFsaWFzIGV4cGFuc2lvbiBjb2RlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy41LjQudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuNS40LnR4dAppbmRleCBjZjNmNDU1Li43Nzk2ZGYzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy41LjQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjUuNC50eHQKQEAgLTUsNyArNSw3IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgKiBUaGUgc2luZ2xlLWtleSBtb2RlIG9mICJnaXQgYWRkIC1wIiB3YXMgZWFzaWx5IGZvb2xlZCBpbnRvIHRoaW5raW5nCi0gICB0aGF0IGl0IHdhcyB0b2xkIHRvIGFkZCBldmVydGhpbmcgKCdhJykgd2hlbiB1cC1hcnJvdyB3YXMgcHJlc3NlZCBieQorICAgdGhhdCBpdCB3YXMgdG9sZCB0byBhZGQgZXZlcnl0aGluZyAoJ2EnKSB3aGVuIHVwLWFycm93IHdhcyBwcmVzc2VkIGJ5CiAgICBtaXN0YWtlLgogCiAgKiBTZXR0aW5nIGEgZ2l0IGNvbW1hbmQgdGhhdCB1c2VzIGN1c3RvbSBjb25maWd1cmF0aW9uIHZpYSAiLWMgdmFyPXZhbCIKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjguMi50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy44LjIudHh0CmluZGV4IGU3NGY0ZWYuLmI5YzY2YWEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjguMi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuOC4yLnR4dApAQCAtMTIsMTEgKzEyLDExIEBACiAgKiBUaGUgY29uZmlndXJhdGlvbiBmaWxlIHBhcnNlciB1c2VkIGZvciBzaXplcyAoZS5nLiBiaWdGaWxlVGhyZXNob2xkKQogICAgZGlkIG5vdCBjb3JyZWN0bHkgaW50ZXJwcmV0ICdnJyBzdWZmaXguCiAKLSAqIFRoZSByZXBsYWNlbWVudCBpbXBsZW1lbnRpb24gZm9yIHNucHJpbnRmIHVzZWQgb24gcGxhdGZvcm1zIHdpdGgKKyAqIFRoZSByZXBsYWNlbWVudCBpbXBsZW1lbnRhdGlvbiBmb3Igc25wcmludGYgdXNlZCBvbiBwbGF0Zm9ybXMgd2l0aAogICAgbmF0aXZlIHNucHJpbnRmIHRoYXQgaXMgYnJva2VuIGRpZCBub3QgdXNlIHZhX2NvcHkgY29ycmVjdGx5LgogCiAgKiBMRi10by1DUkxGIHN0cmVhbWluZyBmaWx0ZXIgcmVwbGFjZWQgYWxsIExGIHdpdGggQ1JMRiwgd2hpY2ggbWlnaHQKLSAgIGJlIHRlY2hpbmljYWxseSBjb3JyZWN0IGJ1dCBub3QgZnJpZW5kbHkgdG8gcGVvcGxlIHdobyBhcmUgdHJ5aW5nCisgICBiZSB0ZWNobmljYWxseSBjb3JyZWN0IGJ1dCBub3QgZnJpZW5kbHkgdG8gcGVvcGxlIHdobyBhcmUgdHJ5aW5nCiAgICB0byByZWNvdmVyIGZyb20gZWFybGllciBtaXN0YWtlcyBvZiB1c2luZyBDUkxGIGluIHRoZSByZXBvc2l0b3J5CiAgICBkYXRhIGluIHRoZSBmaXJzdCBwbGFjZS4gSXQgbm93IHJlZnJhaW5zIGZyb20gZG9pbmcgc28gZm9yIExGIHRoYXQKICAgIGZvbGxvd3MgYSBDUi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjgudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuOC50eHQKaW5kZXggYjRkOTBiYi4uMjQ5MzExMyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuOC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuOC50eHQKQEAgLTksNyArOSw3IEBACiAgKiBVcGRhdGVzIHRvIGJhc2ggY29tcGxldGlvbiBzY3JpcHRzLgogCiAgKiBUaGUgYnVpbGQgcHJvY2VkdXJlIGhhcyBiZWVuIHRhdWdodCB0byB0YWtlIGFkdmFudGFnZSBvZiBjb21wdXRlZAotICAgZGVwZW5kZW5jeSBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIGNvbXBsaWVyIHN1cHBvcnRzIGl0LgorICAgZGVwZW5kZW5jeSBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIGNvbXBpbGVyIHN1cHBvcnRzIGl0LgogCiAgKiBUaGUgZGF0ZSBwYXJzZXIgbm93IGFjY2VwdHMgdGltZXpvbmUgZGVzaWduYXRvcnMgdGhhdCBsYWNrIG1pbnV0ZXMKICAgIHBhcnQgYW5kIGFsc28gaGFzIGEgY29sb24gYmV0d2VlbiAiaGg6bW0iLgpAQCAtMzEsNyArMzEsNyBAQAogICogVmFyaWFudHMgb2YgImdpdCBjaGVycnktcGljayIgYW5kICJnaXQgcmV2ZXJ0IiB0aGF0IHRha2UgbXVsdGlwbGUKICAgIGNvbW1pdHMgbGVhcm5lZCB0byAiLS1jb250aW51ZSIgYW5kICItLWFib3J0Ii4KIAotICogImdpdCBkYWVtb24iIGdpdmVzIG1vcmUgaHVtYW4gcmVhZGJsZSBlcnJvciBtZXNzYWdlcyB0byBjbGllbnRzCisgKiAiZ2l0IGRhZW1vbiIgZ2l2ZXMgbW9yZSBodW1hbiByZWFkYWJsZSBlcnJvciBtZXNzYWdlcyB0byBjbGllbnRzCiAgICB1c2luZyBFUlIgcGFja2V0cyB3aGVuIGFwcHJvcHJpYXRlLgogCiAgKiBFcnJvcnMgYXQgdGhlIG5ldHdvcmsgbGF5ZXIgaXMgbG9nZ2VkIGJ5ICJnaXQgZGFlbW9uIi4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjIuMS50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4yLjEudHh0CmluZGV4IDEzNTRhZDAuLjc2OWE2ZmMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjIuMS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMi4xLnR4dApAQCAtNDksNyArNDksNyBAQAogICAgY29tbW9uIHByZWZpeCBhbmQgc3VmZml4IGJldHdlZW4gdGhlIHR3byBmaWxlbmFtZXMgb3ZlcmxhcHBlZC4KIAogICogImdpdCBzdWJtb2R1bGUgdXBkYXRlIiwgd2hlbiByZWN1cnNlZCBpbnRvIHN1Yi1zdWJtb2R1bGVzLCBkaWQgbm90Ci0gICBhY2NjdW11bGF0ZSB0aGUgcHJlZml4IHBhdGhzLgorICAgYWNjdW11bGF0ZSB0aGUgcHJlZml4IHBhdGhzLgogCiAgKiAiZ2l0IGFtICRtYWlsZGlyLyIgYXBwbGllZCBtZXNzYWdlcyBpbiBhbiB1bmV4cGVjdGVkIG9yZGVyOyBzb3J0CiAgICBmaWxlbmFtZXMgcmVhZCBmcm9tIHRoZSBtYWlsZGlyLyBpbiBhIHdheSB0aGF0IGlzIG1vcmUgbGlrZWx5IHRvCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4yLjIudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMi4yLnR4dAppbmRleCBkYWI0ODMxLi43MDhkZjFhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4yLjIudHh0CisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjIuMi50eHQKQEAgLTU4LDQgKzU4LDQgQEAKICAgIGNvbmZsaWN0cyBoYXZlIGJlZW4gYXBwbGllZC4KIAogICogImdpdCBidW5kbGUiIGRpZCBub3QgbGlrZSBhIGJ1bmRsZSBjcmVhdGVkIHVzaW5nIGEgY29tbWl0IHdpdGhvdXQKLSAgIGFueSBtZXNzYWdlIGFzIGl0cyBvbmUgb2YgdGhlIHByZXJlcXVpc3Rlcy4KKyAgIGFueSBtZXNzYWdlIGFzIGl0cyBvbmUgb2YgdGhlIHByZXJlcXVpc2l0ZXMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4zLjEudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4xLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzNlYTE4Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4xLnR4dApAQCAtMCwwICsxLDE0IEBACitHaXQgdjEuOC4zLjEgUmVsZWFzZSBOb3RlcworPT09PT09PT09PT09PT09PT09PT09PT09CisKK0ZpeGVzIHNpbmNlIHYxLjguMworLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAqIFdoZW4gJEhPTUUgaXMgbWlzY29uZmlndXJlZCB0byBwb2ludCBhdCBhbiB1bnJlYWRhYmxlIGRpcmVjdG9yeSwgd2UKKyAgIHVzZWQgdG8gY29tcGxhaW4gYW5kIGRpZS4gVGhlIGNoZWNrIGhhcyBiZWVuIGxvb3NlbmVkLgorCisgKiBIYW5kbGluZyBvZiBuZWdhdGl2ZSBleGNsdWRlIHBhdHRlcm4gZm9yIGRpcmVjdG9yaWVzICIhZGlyIiB3YXMKKyAgIGJyb2tlbiBpbiB0aGUgdXBkYXRlIHRvIHYxLjguMy4KKworQWxzbyBjb250YWlucyBhIGhhbmRmdWwgb2YgdHJpdmlhbCBjb2RlIGNsZWFuLXVwcywgZG9jdW1lbnRhdGlvbgordXBkYXRlcywgdXBkYXRlcyB0byB0aGUgdGVzdCBzdWl0ZSwgZXRjLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4yLnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjMuMi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZhZTE0MgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjMuMi50eHQKQEAgLTAsMCArMSw1OSBAQAorR2l0IHYxLjguMy4yIFJlbGVhc2UgTm90ZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0ZpeGVzIHNpbmNlIHYxLjguMy4xCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgKiBDbG9uaW5nIHdpdGggImdpdCBjbG9uZSAtLWRlcHRoIE4iIHdoaWxlIGZldGNoLmZzY2tvYmplY3RzIChvcgorICAgdHJhbnNmZXIuZnNja29iamVjdHMpIGlzIHNldCB0byB0cnVlIGRpZCBub3QgdGVsbCB0aGUgY3V0LW9mZgorICAgcG9pbnRzIG9mIHRoZSBzaGFsbG93IGhpc3RvcnkgdG8gdGhlIHByb2Nlc3MgdGhhdCB2YWxpZGF0ZXMgdGhlCisgICBvYmplY3RzIGFuZCB0aGUgaGlzdG9yeSByZWNlaXZlZCwgY2F1c2luZyB0aGUgdmFsaWRhdGlvbiB0byBmYWlsLgorCisgKiAiZ2l0IGNoZWNrb3V0IGZvbyIgRFdJTXMgdGhlIGludGVuZGVkICJ1cHN0cmVhbSIgYW5kIHR1cm5zIGl0IGludG8KKyAgICJnaXQgY2hlY2tvdXQgLXQgLWIgZm9vIHJlbW90ZXMvb3JpZ2luL2ZvbyIuIFRoaXMgY29kZXBhdGggaGFzIGJlZW4KKyAgIHVwZGF0ZWQgdG8gY29ycmVjdGx5IHRha2UgZXhpc3RpbmcgcmVtb3RlIGRlZmluaXRpb25zIGludG8gYWNjb3VudC4KKworICogImdpdCBmZXRjaCIgaW50byBhIHNoYWxsb3cgcmVwb3NpdG9yeSBmcm9tIGEgcmVwb3NpdG9yeSB0aGF0IGRvZXMKKyAgIG5vdCBrbm93IGFib3V0IHRoZSBzaGFsbG93IGJvdW5kYXJ5IGNvbW1pdHMgKGUuZy4gYSBkaWZmZXJlbnQgZm9yaworICAgZnJvbSB0aGUgcmVwb3NpdG9yeSB0aGUgY3VycmVudCBzaGFsbG93IHJlcG9zaXRvcnkgd2FzIGNsb25lZCBmcm9tKQorICAgZGlkIG5vdCB3b3JrIGNvcnJlY3RseS4KKworICogImdpdCBzdWJ0cmVlIiAoaW4gY29udHJpYi8pIGhhZCBvbmUgY29kZXBhdGggd2l0aCBsb29zZSBlcnJvcgorICAgY2hlY2tzIHRvIGxvc2UgZGF0YSBhdCB0aGUgcmVtb3RlIHNpZGUuCisKKyAqICJnaXQgbG9nIC0tYW5jZXN0cnktcGF0aCBBLi4uQiIgZGlkIG5vdCB3b3JrIGFzIGV4cGVjdGVkLCBhcyBpdCBkaWQKKyAgIG5vdCBwYXkgYXR0ZW50aW9uIHRvIHRoZSBmYWN0IHRoYXQgdGhlIG1lcmdlIGJhc2UgYmV0d2VlbiBBIGFuZCBCCisgICB3YXMgdGhlIGJvdHRvbSBvZiB0aGUgcmFuZ2UgYmVpbmcgc3BlY2lmaWVkLgorCisgKiAiZ2l0IGRpZmYgLWMgLXAiIHdhcyBub3Qgc2hvd2luZyBhIGRlbGV0ZWQgbGluZSBmcm9tIGEgaHVuayB3aGVuCisgICBhbm90aGVyIGh1bmsgaW1tZWRpYXRlbHkgYmVnaW5zIHdoZXJlIHRoZSBlYXJsaWVyIG9uZSBlbmRzLgorCisgKiAiZ2l0IG1lcmdlIEB7LTF9fjIyIiB3YXMgcmV3cml0dGVuIHRvICJnaXQgbWVyZ2UgZnJvdHpAezF9fjIyIgorICAgaW5jb3JyZWN0bHkgd2hlbiB5b3VyIHByZXZpb3VzIGJyYW5jaCB3YXMgImZyb3R6IiAoaXQgc2hvdWxkIGJlCisgICByZXdyaXR0ZW4gdG8gImdpdCBtZXJnZSBmcm90en4yMiIgaW5zdGVhZCkuCisKKyAqICJnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHktbWVzc2FnZSAtbSAnJyIgc2hvdWxkIG5vdCBzdGFydCBhbgorICAgZWRpdG9yLgorCisgKiAiZ2l0IHB1c2ggLS1bbm8tXXZlcmlmeSIgd2FzIG5vdCBkb2N1bWVudGVkLgorCisgKiBBbiBlbnRyeSBmb3IgImZpbGU6Ly8iIHNjaGVtZSBpbiB0aGUgZW51bWVyYXRpb24gb2YgVVJMIHR5cGVzIEdpdAorICAgY2FuIHRha2UgaW4gdGhlIEhUTUwgZG9jdW1lbnRhdGlvbiB3YXMgbWFkZSBpbnRvIGEgY2xpY2thYmxlIGxpbmsKKyAgIGJ5IG1pc3Rha2UuCisKKyAqIHpzaCBwcm9tcHQgc2NyaXB0IHRoYXQgYm9ycm93ZWQgZnJvbSBiYXNoIHByb21wdCBzY3JpcHQgZGlkIG5vdAorICAgd29yayBkdWUgdG8gc2xpZ2h0IGRpZmZlcmVuY2VzIGluIGFycmF5IHZhcmlhYmxlIG5vdGF0aW9uIGJldHdlZW4KKyAgIHRoZXNlIHR3byBzaGVsbHMuCisKKyAqIFRoZSBiYXNoIHByb21wdCBjb2RlIChpbiBjb250cmliLykgZGlzcGxheWVkIHRoZSBuYW1lIG9mIHRoZSBicmFuY2gKKyAgIGJlaW5nIHJlYmFzZWQgd2hlbiAicmViYXNlIC1pLy1tLy1wIiBtb2RlcyBhcmUgaW4gdXNlLCBidXQgbm90IHRoZQorICAgcGxhaW4gdmFuaWxsYSAicmViYXNlIi4KKworICogImdpdCBwdXNoICR0aGVyZSBIRUFEOmJyYW5jaCIgZGlkIG5vdCByZXNvbHZlIEhFQUQgZWFybHkgZW5vdWdoLCBzbworICAgaXQgd2FzIGVhc3kgdG8gZmxpcCBpdCBhcm91bmQgd2hpbGUgcHVzaCBpcyBzdGlsbCBnb2luZyBvbiBhbmQgcHVzaAorICAgb3V0IGEgYnJhbmNoIHRoYXQgdGhlIHVzZXIgZGlkIG5vdCBvcmlnaW5hbGx5IGludGVuZGVkIHdoZW4gdGhlCisgICBjb21tYW5kIHdhcyBzdGFydGVkLgorCisgKiAiZGlmZnRvb2wgLS1kaXItZGlmZiIgZGlkIG5vdCBjb3B5IGJhY2sgY2hhbmdlcyBtYWRlIGJ5IHRoZQorICAgZW5kLXVzZXIgaW4gdGhlIGRpZmYgdG9vbCBiYWNrZW5kIHRvIHRoZSB3b3JraW5nIHRyZWUgaW4gc29tZQorICAgY2FzZXMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4zLjMudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmE0ZjRkCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4zLnR4dApAQCAtMCwwICsxLDQ3IEBACitHaXQgdjEuOC4zLjMgUmVsZWFzZSBOb3RlcworPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRml4ZXMgc2luY2UgdjEuOC4zLjIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAqICJnaXQgYXBwbHkiIHBhcnNlZCBwYXRjaGVzIHRoYXQgYWRkIG5ldyBmaWxlcywgZ2VuZXJhdGVkIGJ5IHByb2dyYW1zCisgICBvdGhlciB0aGFuIEdpdCwgaW5jb3JyZWN0bHkuICBUaGlzIGlzIGFuIG9sZCBicmVha2FnZSBpbiB2MS43LjExLgorCisgKiBPbGRlciBjVVJMIHdhbnRlZCBwaWVjZSBvZiBtZW1vcnkgd2UgY2FsbCBpdCB3aXRoIHRvIGJlIHN0YWJsZSwgYnV0CisgICB3ZSB1cGRhdGVkIHRoZSBhdXRoIG1hdGVyaWFsIGFmdGVyIGhhbmRpbmcgaXQgdG8gYSBjYWxsLgorCisgKiAiZ2l0IHB1bGwiIGludG8gbm90aGluZyB0cmFzaGVkICJsb2NhbCBjaGFuZ2VzIiB0aGF0IHdlcmUgaW4gdGhlCisgICBpbmRleC4KKworICogTWFueSAiZ2l0IHN1Ym1vZHVsZSIgb3BlcmF0aW9ucyBkaWQgbm90IHdvcmsgb24gYSBzdWJtb2R1bGUgYXQgYQorICAgcGF0aCB3aG9zZSBuYW1lIGlzIG5vdCBpbiBBU0NJSS4KKworICogImNoZXJyeS1waWNrIiBoYWQgYSBzbWFsbCBsZWFrIGluIGl0cyBlcnJvciBjb2RlcGF0aC4KKworICogTG9naWMgdXNlZCBieSBnaXQtc2VuZC1lbWFpbCB0byBzdXBwcmVzcyBjYyBtaXNoYW5kbGVkIG5hbWVzIGxpa2UKKyAgICJBIFUuIFRob3IiIDxhdXRob3JAZXhhbXBsZS54ej4sIHdoZXJlIHRoZSBodW1hbiByZWFkYWJsZSBwYXJ0CisgICBuZWVkcyB0byBiZSBxdW90ZWQgKHRoZSB1c2VyIGlucHV0IG1heSBub3QgaGF2ZSB0aGUgZG91YmxlIHF1b3RlcworICAgYXJvdW5kIHRoZSBuYW1lLCBhbmQgY29tcGFyaXNvbiB3YXMgZG9uZSBiZXR3ZWVuIHF1b3RlZCBhbmQKKyAgIHVucXVvdGVkIHN0cmluZ3MpLiAgSXQgYWxzbyBtaXNoYW5kbGVkIG5hbWVzIHRoYXQgbmVlZCBSRkMyMDQ3CisgICBxdW90aW5nLgorCisgKiAiZ2l0d2ViIiBmb3Jnb3QgdG8gY2xlYXIgYSBnbG9iYWwgdmFyaWFibGUgJHNlYXJjaF9yZWdleHAgdXBvbiBlYWNoCisgICByZXF1ZXN0LCBtaXN0YWtlbmx5IGNhcnJ5aW5nIG92ZXIgdGhlIHByZXZpb3VzIHNlYXJjaCB0byBhIG5ldyBvbmUKKyAgIHdoZW4gdXNlZCBhcyBhIHBlcnNpc3RlbnQgQ0dJLgorCisgKiBUaGUgd2lsZG1hdGNoIGVuZ2luZSBkaWQgbm90IGhvbm9yIFdNX0NBU0VGT0xEIG9wdGlvbiBjb3JyZWN0bHkuCisKKyAqICJnaXQgbG9nIC1jIC0tZm9sbG93ICRwYXRoIiBzZWdmYXVsdGVkIHVwb24gaGl0dGluZyB0aGUgY29tbWl0IHRoYXQKKyAgIHJlbmFtZWQgdGhlICRwYXRoIGJlaW5nIGZvbGxvd2VkLgorCisgKiBXaGVuIGEgcmVmbG9nIG5vdGF0aW9uIGlzIHVzZWQgZm9yIGltcGxpY2l0ICJjdXJyZW50IGJyYW5jaCIsCisgICBlLmcuICJnaXQgbG9nIEB7dX0iLCB3ZSBkaWQgbm90IHNheSB3aGljaCBicmFuY2ggYW5kIHdvcnNlIHNhaWQKKyAgICJicmFuY2ggJyciIGluIHRoZSBlcnJvciBtZXNzYWdlcy4KKworICogTWFjIE9TIFggZG9lcyBub3QgbGlrZSB0byB3cml0ZSgyKSBtb3JlIHRoYW4gSU5UX01BWCBudW1iZXIgb2YKKyAgIGJ5dGVzOyB3b3JrIGl0IGFyb3VuZCBieSBjaG9wcGluZyB3cml0ZSgyKSBpbnRvIHNtYWxsZXIgcGllY2VzLgorCisgKiBOZXdlciBNYWNPUyBYIGVuY291cmFnZXMgdGhlIHByb2dyYW1zIHRvIGNvbXBpbGUgYW5kIGxpbmsgd2l0aAorICAgdGhlaXIgQ29tbW9uQ3J5cHRvLCBub3Qgd2l0aCBPcGVuU1NMLgorCitBbHNvIGNvbnRhaW5zIHZhcmlvdXMgbWlub3IgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy40LnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjMuNC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZmMTA2ZQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjMuNC50eHQKQEAgLTAsMCArMSwyMCBAQAorR2l0IHYxLjguMy40IFJlbGVhc2UgTm90ZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgdXBkYXRlIGlzIG1vc3RseSB0byBwcm9wYWdhdGUgZG9jdW1lbnRhdGlvbiBmaXhlcyBhbmQgdGVzdAordXBkYXRlcyBmcm9tIHRoZSBtYXN0ZXIgZnJvbnQgYmFjayB0byB0aGUgbWFpbnRlbmFuY2UgdHJhY2suCisKK0ZpeGVzIHNpbmNlIHYxLjguMy4zCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgKiBUaGUgYmlzZWN0IGxvZyBsaXN0ZWQgaW5jb3JyZWN0IGNvbW1pdHMgd2hlbiBiaXNlY3Rpb24gZW5kcyB3aXRoCisgICBvbmx5IHNraXBwZWQgb25lcy4KKworICogVGhlIHRlc3QgY292ZXJhZ2UgZnJhbWV3b3JrIHdhcyBsZWZ0IGJyb2tlbiBmb3Igc29tZSB0aW1lLgorCisgKiBUaGUgdGVzdCBzdWl0ZSBmb3IgSFRUUCB0cmFuc3BvcnQgZGlkIG5vdCBydW4gd2l0aCBBcGFjaGUgMi40LgorCisgKiAiZ2l0IGRpZmYiIHVzZWQgdG8gZmFpbCB3aGVuIGNvcmUuc2FmZWNybGYgaXMgc2V0IGFuZCB0aGUgd29ya2luZworICAgdHJlZSBjb250ZW50cyBoYWQgbWl4ZWQgQ1JMRi9MRiBsaW5lIGVuZGluZ3MuIENvbW1pdHRpbmcgc3VjaCBhCisgICBjb250ZW50IG11c3QgYmUgcHJvaGliaXRlZCwgYnV0ICJnaXQgZGlmZiIgc2hvdWxkIGhlbHAgdGhlIHVzZXIgdG8KKyAgIGxvY2F0ZSBhbmQgZml4IHN1Y2ggcHJvYmxlbXMgd2l0aG91dCBmYWlsaW5nLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNC4xLnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjQuMS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA2NTQ1YQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjQuMS50eHQKQEAgLTAsMCArMSw1MCBAQAorR2l0IHYxLjguNC4xIFJlbGVhc2UgTm90ZXMKKz09PT09PT09PT09PT09PT09PT09PT09PQorCitGaXhlcyBzaW5jZSB2MS44LjQKKy0tLS0tLS0tLS0tLS0tLS0tLQorCisgKiBTb21lIHBlb3BsZSBzdGlsbCB1c2UgcmF0aGVyIG9sZCB2ZXJzaW9ucyBvZiBiYXNoLCB3aGljaCBjYW5ub3QKKyAgIGdyb2sgc29tZSBjb25zdHJ1Y3RzIGxpa2UgJ3ByaW50ZiAtdiB2YXJuYW1lJyB0aGUgcHJvbXB0IGFuZAorICAgY29tcGxldGlvbiBjb2RlIHN0YXJ0ZWQgdG8gdXNlIHJlY2VudGx5LiAgVGhlIGNvbXBsZXRpb24gYW5kCisgICBwcm9tcHQgc2NyaXB0cyBoYXZlIGJlZW4gYWRqdXN0ZWQgdG8gd29yayBiZXR0ZXIgd2l0aCB0aGVzZSBvbGQKKyAgIHZlcnNpb25zIG9mIGJhc2guCisKKyAqICJnaXQgcmViYXNlIC1pIiBoYWQgYSBtaW5vciBidWcgKHRoZSBzYW1lIGNvdWxkIGJlIGluIG90aGVyCisgICBwcm9ncmFtcywgYXMgdGhlIHJvb3QgY2F1c2UgaXMgcHJldHR5IGdlbmVyaWMpIHdoZXJlIHRoZSBjb2RlCisgICBmZWVkcyBhIHJhbmRvbSwgZGF0YSBkZXBlbmRlYW50IHN0cmluZyB0byAnZWNobycgYW5kIGV4cGVjdHMgaXQKKyAgIHRvIGNvbWUgb3V0IGxpdGVyYWxseS4KKworICogInN1Ym1vZHVsZS48bmFtZT4ucGF0aCIgdmFyaWFibGUgbWlzdGFrZW5seSBzZXQgdG8gdGhlIGVtcHR5CisgICAidHJ1ZSIgY2F1c2VkIHRoZSBjb25maWd1cmF0aW9uIHBhcnNlciB0byBzZWdmYXVsdC4KKworICogT3V0cHV0IGZyb20gImdpdCBsb2cgLS1mdWxsLWRpZmYgLS0gPHBhdGhzcGVjPiIgbG9va2VkIHN0cmFuZ2UsCisgICBiZWNhdXNlIGNvbXBhcmlzb24gd2FzIGRvbmUgd2l0aCB0aGUgcHJldmlvdXMgYW5jZXN0b3IgdGhhdAorICAgdG91Y2hlZCB0aGUgc3BlY2lmaWVkIDxwYXRoc3BlYz4sIGNhdXNpbmcgdGhlIHBhdGNoZXMgZm9yIHBhdGhzCisgICBvdXRzaWRlIHRoZSBwYXRoc3BlYyB0byBzaG93IG1vcmUgdGhhbiB0aGUgc2luZ2xlIGNvbW1pdCBoYXMKKyAgIGNoYW5nZWQuCisKKyAqIFRoZSBhdXRvLXRhZy1mb2xsb3dpbmcgY29kZSBpbiAiZ2l0IGZldGNoIiB0cmllcyB0byByZXVzZSB0aGUKKyAgIHNhbWUgdHJhbnNwb3J0IHR3aWNlIHdoZW4gdGhlIHNlcnZpbmcgZW5kIGRvZXMgbm90IGNvb3BlcmF0ZSBhbmQKKyAgIGRvZXMgbm90IGdpdmUgdGFncyB0aGF0IHBvaW50IHRvIGNvbW1pdHMgdGhhdCBhcmUgYXNrZWQgZm9yIGFzCisgICBwYXJ0IG9mIHRoZSBwcmltYXJ5IHRyYW5zZmVyLiAgVW5mb3J0dW5hdGVseSwgR2l0LWF3YXJlIHRyYW5zcG9ydAorICAgaGVscGVyIGludGVyZmFjZSBpcyBub3QgZGVzaWduZWQgdG8gYmUgdXNlZCBtb3JlIHRoYW4gb25jZSwgaGVuY2UKKyAgIHRoaXMgZGlkIG5vdCB3b3JrIG92ZXIgc21hcnQtaHR0cCB0cmFuc2Zlci4gIEZpeGVkLgorCisgKiBTZW5kIGEgbGFyZ2UgcmVxdWVzdCB0byByZWFkKDIpL3dyaXRlKDIpIGFzIGEgc21hbGxlciBidXQgc3RpbGwKKyAgIHJlYXNvbmFibHkgbGFyZ2UgY2h1bmtzLCB3aGljaCB3b3VsZCBpbXByb3ZlIHRoZSBsYXRlbmN5IHdoZW4gdGhlCisgICBvcGVyYXRpb24gbmVlZHMgdG8gYmUga2lsbGVkIGFuZCBpbmNpZGVudGFsbHkgd29ya3MgYXJvdW5kIGJyb2tlbgorICAgNjQtYml0IHN5c3RlbXMgdGhhdCBjYW5ub3QgdGFrZSBhIDJHQiB3cml0ZSBvciByZWFkIGluIG9uZSBnby4KKworICogQSAiLm1haWxtYXAiIGZpbGUgdGhhdCBlbmRzIHdpdGggYW4gaW5jb21wbGV0ZSBsaW5lLCB3aGVuIHJlYWQKKyAgIGZyb20gYSBibG9iLCB3YXMgbm90IGhhbmRsZWQgcHJvcGVybHkuCisKKyAqIFRoZSByZWNlbnQgInNob3J0LWN1dCBjbG9uZSBjb25uZWN0aXZpdHkgY2hlY2siIHRvcGljIGJyb2tlIGEKKyAgIHNoYWxsb3cgcmVwb3NpdG9yeSB3aGVuIGEgZmV0Y2ggb3BlcmF0aW9uIHRyaWVzIHRvIGF1dG8tZm9sbG93CisgICB0YWdzLgorCisgKiBPbiBwbGF0Zm9ybXMgd2l0aCBmZ2V0YygpIGFuZCBmcmllbmRzIGRlZmluZWQgYXMgbWFjcm9zLAorICAgdGhlIGNvbmZpZ3VyYXRpb24gcGFyc2VyIGRpZCBub3QgY29tcGlsZS4KKworQWxzbyBjb250YWlucyBhIGhhbmRmdWwgb2YgdHJpdmlhbCBjb2RlIGNsZWFuLXVwcywgZG9jdW1lbnRhdGlvbgordXBkYXRlcywgdXBkYXRlcyB0byB0aGUgdGVzdCBzdWl0ZSwgZXRjLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNC50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC40LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmY2ODFiCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNC50eHQKQEAgLTAsMCArMSw0ODYgQEAKK0dpdCB2MS44LjQgUmVsZWFzZSBOb3RlcworPT09PT09PT09PT09PT09PT09PT09PT09CisKK0JhY2t3YXJkIGNvbXBhdGliaWxpdHkgbm90ZXMgKGZvciBHaXQgMi4wKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1doZW4gImdpdCBwdXNoIFskdGhlcmVdIiBkb2VzIG5vdCBzYXkgd2hhdCB0byBwdXNoLCB3ZSBoYXZlIHVzZWQgdGhlCit0cmFkaXRpb25hbCAibWF0Y2hpbmciIHNlbWFudGljcyBzbyBmYXIgKGFsbCB5b3VyIGJyYW5jaGVzIHdlcmUgc2VudAordG8gdGhlIHJlbW90ZSBhcyBsb25nIGFzIHRoZXJlIGFscmVhZHkgYXJlIGJyYW5jaGVzIG9mIHRoZSBzYW1lIG5hbWUKK292ZXIgdGhlcmUpLiAgSW4gR2l0IDIuMCwgdGhlIGRlZmF1bHQgd2lsbCBjaGFuZ2UgdG8gdGhlICJzaW1wbGUiCitzZW1hbnRpY3MgdGhhdCBwdXNoZXM6CisKKyAtIG9ubHkgdGhlIGN1cnJlbnQgYnJhbmNoIHRvIHRoZSBicmFuY2ggd2l0aCB0aGUgc2FtZSBuYW1lLCBhbmQgb25seQorICAgd2hlbiB0aGUgY3VycmVudCBicmFuY2ggaXMgc2V0IHRvIGludGVncmF0ZSB3aXRoIHRoYXQgcmVtb3RlCisgICBicmFuY2gsIGlmIHlvdSBhcmUgcHVzaGluZyB0byB0aGUgc2FtZSByZW1vdGUgYXMgeW91IGZldGNoIGZyb207IG9yCisKKyAtIG9ubHkgdGhlIGN1cnJlbnQgYnJhbmNoIHRvIHRoZSBicmFuY2ggd2l0aCB0aGUgc2FtZSBuYW1lLCBpZiB5b3UKKyAgIGFyZSBwdXNoaW5nIHRvIGEgcmVtb3RlIHRoYXQgaXMgbm90IHdoZXJlIHlvdSB1c3VhbGx5IGZldGNoIGZyb20uCisKK1VzZSB0aGUgdXNlciBwcmVmZXJlbmNlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgInB1c2guZGVmYXVsdCIgdG8KK2NoYW5nZSB0aGlzLiAgSWYgeW91IGFyZSBhbiBvbGQtdGltZXIgd2hvIGlzIHVzZWQgdG8gdGhlICJtYXRjaGluZyIKK3NlbWFudGljcywgeW91IGNhbiBzZXQgdGhlIHZhcmlhYmxlIHRvICJtYXRjaGluZyIgdG8ga2VlcCB0aGUKK3RyYWRpdGlvbmFsIGJlaGF2aW91ci4gIElmIHlvdSB3YW50IHRvIGxpdmUgaW4gdGhlIGZ1dHVyZSBlYXJseSwgeW91CitjYW4gc2V0IGl0IHRvICJzaW1wbGUiIHRvZGF5IHdpdGhvdXQgd2FpdGluZyBmb3IgR2l0IDIuMC4KKworV2hlbiAiZ2l0IGFkZCAtdSIgKGFuZCAiZ2l0IGFkZCAtQSIpIGlzIHJ1biBpbnNpZGUgYSBzdWJkaXJlY3RvcnkgYW5kCitkb2VzIG5vdCBzcGVjaWZ5IHdoaWNoIHBhdGhzIHRvIGFkZCBvbiB0aGUgY29tbWFuZCBsaW5lLCBpdAord2lsbCBvcGVyYXRlIG9uIHRoZSBlbnRpcmUgdHJlZSBpbiBHaXQgMi4wIGZvciBjb25zaXN0ZW5jeQord2l0aCAiZ2l0IGNvbW1pdCAtYSIgYW5kIG90aGVyIGNvbW1hbmRzLiAgVGhlcmUgd2lsbCBiZSBubworbWVjaGFuaXNtIHRvIG1ha2UgcGxhaW4gImdpdCBhZGQgLXUiIGJlaGF2ZSBsaWtlICJnaXQgYWRkIC11IC4iLgorQ3VycmVudCB1c2VycyBvZiAiZ2l0IGFkZCAtdSIgKHdpdGhvdXQgYSBwYXRoc3BlYykgc2hvdWxkIHN0YXJ0Cit0cmFpbmluZyB0aGVpciBmaW5nZXJzIHRvIGV4cGxpY2l0bHkgc2F5ICJnaXQgYWRkIC11IC4iCitiZWZvcmUgR2l0IDIuMCBjb21lcy4gIEEgd2FybmluZyBpcyBpc3N1ZWQgd2hlbiB0aGVzZSBjb21tYW5kcyBhcmUKK3J1biB3aXRob3V0IGEgcGF0aHNwZWMgYW5kIHdoZW4geW91IGhhdmUgbG9jYWwgY2hhbmdlcyBvdXRzaWRlIHRoZQorY3VycmVudCBkaXJlY3RvcnksIGJlY2F1c2UgdGhlIGJlaGF2aW91ciBpbiBHaXQgMi4wIHdpbGwgYmUgZGlmZmVyZW50Citmcm9tIHRvZGF5J3MgdmVyc2lvbiBpbiBzdWNoIGEgc2l0dWF0aW9uLgorCitJbiBHaXQgMi4wLCAiZ2l0IGFkZCA8cGF0aD4iIHdpbGwgYmVoYXZlIGFzICJnaXQgYWRkIC1BIDxwYXRoPiIsIHNvCit0aGF0ICJnaXQgYWRkIGRpci8iIHdpbGwgbm90aWNlIHBhdGhzIHlvdSByZW1vdmVkIGZyb20gdGhlIGRpcmVjdG9yeQorYW5kIHJlY29yZCB0aGUgcmVtb3ZhbC4gIFZlcnNpb25zIGJlZm9yZSBHaXQgMi4wLCBpbmNsdWRpbmcgdGhpcworcmVsZWFzZSwgd2lsbCBrZWVwIGlnbm9yaW5nIHJlbW92YWxzLCBidXQgdGhlIHVzZXJzIHdobyByZWx5IG9uIHRoaXMKK2JlaGF2aW91ciBhcmUgZW5jb3VyYWdlZCB0byBzdGFydCB1c2luZyAiZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxwYXRoPiIKK25vdyBiZWZvcmUgMi4wIGlzIHJlbGVhc2VkLgorCisKK1VwZGF0ZXMgc2luY2UgdjEuOC4zCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGb3JlaWduIGludGVyZmFjZXMsIHN1YnN5c3RlbXMgYW5kIHBvcnRzLgorCisgKiBDeWd3aW4gcG9ydCBoYXMgYmVlbiB1cGRhdGVkIGZvciBtb3JlIHJlY2VudCBDeWd3aW4gMS43LgorCisgKiAiZ2l0IHJlYmFzZSAtaSIgbm93IGhvbm9ycyAtLXN0cmF0ZWd5IGFuZCAtWCBvcHRpb25zLgorCisgKiBHaXQtZ3VpIGhhcyBiZWVuIHVwZGF0ZWQgdG8gaXRzIDAuMTguMCB2ZXJzaW9uLgorCisgKiBNZWRpYVdpa2kgcmVtb3RlIGhlbHBlciAoaW4gY29udHJpYi8pIGhhcyBiZWVuIHVwZGF0ZWQgdG8gdXNlIHRoZQorICAgY3JlZGVudGlhbCBoZWxwZXIgaW50ZXJmYWNlIGZyb20gR2l0LnBtLgorCisgKiBVcGRhdGUgYnVpbGQgZm9yIEN5Z3dpbiAxLls1N10uICBUb3JzdGVuIELDtmdlcnNoYXVzZW4gcmVwb3J0cyB0aGF0CisgICB0aGlzIGlzIGZpbmUgd2l0aCBDeWd3aW4gMS43ICgkZ21hbmUvMjI1ODI0KSBzbyBsZXQncyB0cnkgbW92aW5nIGl0CisgICBhaGVhZC4KKworICogVGhlIGNyZWRlbnRpYWwgaGVscGVyIHRvIHRhbGsgdG8ga2V5Y2hhaW4gb24gT1MgWCAoaW4gY29udHJpYi8pIGhhcworICAgYmVlbiB1cGRhdGVkIHRvIGtpY2sgaW4gbm90IGp1c3Qgd2hlbiB0YWxraW5nIGh0dHAvaHR0cHMgYnV0IGFsc28KKyAgIGltYXAocykgYW5kIHNtdHAuCisKKyAqIFJlbW90ZSB0cmFuc3BvcnQgaGVscGVyIGhhcyBiZWVuIHVwZGF0ZWQgdG8gcmVwb3J0IGVycm9ycyBhbmQKKyAgIG1haW50YWluIHJlZiBoaWVyYXJjaHkgdXNlZCB0byBrZWVwIHRyYWNrIG9mIGl0cyBvd24gc3RhdGUgYmV0dGVyLgorCisgKiBXaXRoICJleHBvcnQiIHJlbW90ZS1oZWxwZXIgcHJvdG9jb2wsICgxKSBhIHB1c2ggdGhhdCB0cmllcyB0bworICAgdXBkYXRlIGEgcmVtb3RlIHJlZiB3aG9zZSBuYW1lIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBwdXNoaW5nIHNpZGUKKyAgIGRvZXMgbm90IHdvcmsgeWV0LCBhbmQgKDIpIHRoZSBoZWxwZXIgbWF5IG5vdCBrbm93IGhvdyB0byBkbworICAgLS1kcnktcnVuOyB0aGVzZSBwcm9ibGVtYXRpYyBjYXNlcyBhcmUgZGlzYWJsZWQgZm9yIG5vdy4KKworICogZ2l0LXJlbW90ZS1oZy9ienIgKGluIGNvbnRyaWIvKSB1cGRhdGVzLgorCisgKiBnaXQtcmVtb3RlLW13IChpbiBjb250cmliLykgaGludHMgdXNlcnMgdG8gY2hlY2sgdGhlIGNlcnRpZmljYXRlLAorICAgd2hlbiBodHRwczovLyBjb25uZWN0aW9uIGZhaWxlZC4KKworICogZ2l0LXJlbW90ZS1tdyAoaW4gY29udHJpYi8pIGFkZHMgYSBjb21tYW5kIHRvIGFsbG93IHByZXZpZXdpbmcgdGhlCisgICBjb250ZW50cyBsb2NhbGx5IGJlZm9yZSBwdXNoaW5nIGl0IG91dCwgd2hlbiB3b3JraW5nIHdpdGggYQorICAgTWVkaWFXaWtpIHJlbW90ZS4KKworCitVSSwgV29ya2Zsb3dzICYgRmVhdHVyZXMKKworICogU2FtcGxlICJwb3N0LXJlY2VpdmUtZW1haWwiIGhvb2sgc2NyaXB0IGdvdCBhbiBlbmhhbmNlZCByZXBsYWNlbWVudAorICAgIm11bHRpbWFpbCIgKGluIGNvbnRyaWIvKS4KKworICogQWxzbyBpbiBjb250cmliLyBpcyBhIG5ldyAiY29udGFjdHMiIHNjcmlwdCB0aGF0IHJ1bnMgImdpdCBibGFtZSIKKyAgIHRvIGZpbmQgb3V0IHRoZSBwZW9wbGUgd2hvIG1heSBiZSBpbnRlcmVzdGVkIGluIGEgc2V0IG9mIGNoYW5nZXMuCisKKyAqICJnaXQgY2xlYW4iIGNvbW1hbmQgbGVhcm5lZCBhbiBpbnRlcmFjdGl2ZSBtb2RlLgorCisgKiBUaGUgIi0taGVhZCIgb3B0aW9uIHRvICJnaXQgc2hvdy1yZWYiIHdhcyBvbmx5IHRvIGFkZCAiSEVBRCIgdG8gdGhlCisgICBsaXN0IG9mIGNhbmRpZGF0ZSByZWZzIHRvIGJlIGZpbHRlcmVkIGJ5IHRoZSB1c3VhbCBydWxlcworICAgKGUuZy4gIi0taGVhZHMiIHRoYXQgb25seSBzaG93IHJlZnMgdW5kZXIgcmVmcy9oZWFkcykuICBUaGUgbWVhbmluZworICAgb2YgdGhlIG9wdGlvbiBoYXMgYmVlbiBjaGFuZ2VkIHRvIGFsd2F5cyBzaG93ICJIRUFEIiByZWdhcmRsZXNzIG9mCisgICB3aGF0IGZpbHRlcmluZyB3aWxsIGJlIGFwcGxpZWQgdG8gYW55IG90aGVyIHJlZi4KKworICAgVGhpcyBpcyBhIGJhY2t3YXJkIGluY29tcGF0aWJsZSBjaGFuZ2UgYW5kIG1pZ2h0IGNhdXNlIGJyZWFrYWdlcyB0bworICAgcGVvcGxlJ3MgZXhpc3Rpbmcgc2NyaXB0cy4KKworICogImdpdCBzaG93IC1zIiB3YXMgbGVzcyBkaXNjb3ZlcmFibGUgdGhhbiBpdCBzaG91bGQgaGF2ZSBiZWVuLiAgSXQKKyAgIG5vdyBoYXMgYSBuYXR1cmFsIHN5bm9ueW0gImdpdCBzaG93IC0tbm8tcGF0Y2giLgorCisgKiAiZ2l0IGNoZWNrLW1haWxtYXAiIGlzIGEgbmV3IGNvbW1hbmQgdGhhdCBsZXRzIHlvdSBtYXAgdXNlcm5hbWVzCisgICBhbmQgZS1tYWlsIGFkZHJlc3NlcyB0aHJvdWdoIHRoZSBtYWlsbWFwIG1lY2hhbmlzbSwganVzdCBsaWtlIG1hbnkKKyAgIGJ1aWx0LWluIGNvbW1hbmRzIGRvLgorCisgKiAiZ2l0IG5hbWUtcmV2IiBsZWFybmVkIHRvIG5hbWUgYW4gYW5ub3RhdGVkIHRhZyBvYmplY3QgYmFjayB0byBpdHMKKyAgIHRhZ25hbWU7ICJnaXQgbmFtZS1yZXYgJChnaXQgcmV2LXBhcnNlIHYxLjAuMCkiIGdpdmVzICJ0YWdzL3YxLjAuMCIsCisgICBmb3IgZXhhbXBsZS4KKworICogImdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrPTxmb3JtYXQ+IiBpcyBhZGRlZCwgcHJpbWFyaWx5IHRvIGFsbG93CisgICBvbi1kaXNrIGZvb3RwcmludCBvZiBvYmplY3RzIGluIHBhY2tmaWxlcyAob2Z0ZW4gdGhleSBhcmUgYSBsb3QKKyAgIHNtYWxsZXIgdGhhbiB0aGVpciB0cnVlIHNpemUsIHdoZW4gZXhwcmVzc2VkIGFzIGRlbHRhcykgdG8gYmUKKyAgIHJlcG9ydGVkLgorCisgKiAiZ2l0IHJlYmFzZSBbLWldIiB1c2VkIHRvIGxlYXZlIGp1c3QgInJlYmFzZSIgYXMgaXRzIHJlZmxvZyBtZXNzYWdlcworICAgZm9yIHNvbWUgb3BlcmF0aW9ucy4gVGhleSBoYXZlIGJlZW4gcmV3b3JkZWQgdG8gYmUgbW9yZSBpbmZvcm1hdGl2ZS4KKworICogSW4gYWRkaXRpb24gdG8gdGhlIGNob2ljZSBmcm9tICJyZWJhc2UsIG1lcmdlLCBvciBjaGVja291dC1kZXRhY2giLAorICAgInN1Ym1vZHVsZSB1cGRhdGUiIGNhbiBhbGxvdyBhIGN1c3RvbSBjb21tYW5kIHRvIGJlIHVzZWQgaW4gdG8KKyAgIHVwZGF0ZSB0aGUgd29ya2luZyB0cmVlIG9mIHN1Ym1vZHVsZXMgdmlhIHRoZSAic3VibW9kdWxlLioudXBkYXRlIgorICAgY29uZmlndXJhdGlvbiB2YXJpYWJsZS4KKworICogImdpdCBzdWJtb2R1bGUgdXBkYXRlIiBjYW4gb3B0aW9uYWxseSBjbG9uZSB0aGUgc3VibW9kdWxlCisgICByZXBvc2l0b3JpZXMgc2hhbGxvd2x5LgorCisgKiAiZ2l0IGZvcm1hdC1wYXRjaCIgbGVhcm5lZCAiLS1mcm9tWz13aG9tXSIgb3B0aW9uLCB3aGljaCBzZXRzIHRoZQorICAgIkZyb206ICIgaGVhZGVyIHRvIHRoZSBzcGVjaWZpZWQgcGVyc29uIChvciB0aGUgcGVyc29uIHdobyBydW5zIHRoZQorICAgY29tbWFuZCwgaWYgIj13aG9tIiBwYXJ0IGlzIG1pc3NpbmcpIGFuZCBtb3ZlIHRoZSBvcmlnaW5hbCBhdXRob3IKKyAgIGluZm9ybWF0aW9uIHRvIGFuIGluLWJvZHkgRnJvbTogaGVhZGVyIGFzIG5lY2Vzc2FyeS4KKworICogVGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgIm1lcmdlLmZmIiB3YXMgY2xlYXJ5IGEgdHJpLXN0YXRlIHRvCisgICBjaG9vc2Ugb25lIGZyb20gImZhdm9yIGZhc3QtZm9yd2FyZCB3aGVuIHBvc3NpYmxlIiwgImFsd2F5cyBjcmVhdGUKKyAgIGEgbWVyZ2UgZXZlbiB3aGVuIHRoZSBoaXN0b3J5IGNvdWxkIGZhc3QtZm9yd2FyZCIgYW5kICJkbyBub3QKKyAgIGNyZWF0ZSBhbnkgbWVyZ2UsIG9ubHkgdXBkYXRlIHdoZW4gdGhlIGhpc3RvcnkgZmFzdC1mb3J3YXJkcyIsIGJ1dAorICAgdGhlIGNvbW1hbmQgbGluZSBwYXJzZXIgZGlkIG5vdCBpbXBsZW1lbnQgdGhlIHVzdWFsIGNvbnZlbnRpb24gb2YKKyAgICJsYXN0IG9uZSB3aW5zLCBhbmQgY29tbWFuZCBsaW5lIG92ZXJyaWRlcyB0aGUgY29uZmlndXJhdGlvbiIKKyAgIGNvcnJlY3RseS4KKworICogImdpdHdlYiIgbGVhcm5lZCB0byBvcHRpb25hbGx5IHBsYWNlIGV4dHJhIGxpbmtzIHRoYXQgcG9pbnQgYXQgdGhlCisgICBsZXZlbHMgaGlnaGVyIHRoYW4gdGhlIEdpdHdlYiBwYWdlcyB0aGVtc2VsdmVzIGluIHRoZSBicmVhZGNydW1icywKKyAgIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYXMgcGFydCBvZiBhIGxhcmdlciBpbnN0YWxsYXRpb24uCisKKyAqICJnaXQgbG9nIC0tZm9ybWF0PSIgbm93IGhvbm9ycyBpMThuLmxvZ291dHB1dGVuY29kaW5nIGNvbmZpZ3VyYXRpb24KKyAgIHZhcmlhYmxlLgorCisgKiBUaGUgInB1c2guZGVmYXVsdD1zaW1wbGUiIG1vZGUgb2YgImdpdCBwdXNoIiBoYXMgYmVlbiB1cGRhdGVkIHRvCisgICBiZWhhdmUgbGlrZSAiY3VycmVudCIgd2l0aG91dCByZXF1aXJpbmcgYSByZW1vdGUgdHJhY2tpbmcKKyAgIGluZm9ybWF0aW9uLCB3aGVuIHlvdSBwdXNoIHRvIGEgcmVtb3RlIHRoYXQgaXMgZGlmZmVyZW50IGZyb20gd2hlcmUKKyAgIHlvdSBmZXRjaCBmcm9tIChpLmUuIGEgdHJpYW5ndWxhciB3b3JrZmxvdykuCisKKyAqIEhhdmluZyBtdWx0aXBsZSAiZml4dXAhIiBvbiBhIGxpbmUgaW4gdGhlIHJlYmFzZSBpbnN0cnVjdGlvbiBzaGVldAorICAgZGlkIG5vdCB3b3JrIHZlcnkgd2VsbCB3aXRoICJnaXQgcmViYXNlIC1pIC0tYXV0b3NxdWFzaCIuCisKKyAqICJnaXQgbG9nIiBsZWFybmVkIHRoZSAiLS1hdXRob3ItZGF0ZS1vcmRlciIgb3B0aW9uLCB3aXRoIHdoaWNoIHRoZQorICAgb3V0cHV0IGlzIHRvcG9sb2dpY2FsbHkgc29ydGVkIGFuZCBjb21taXRzIGluIHBhcmFsbGVsIGhpc3RvcmllcworICAgYXJlIHNob3duIGludGVybWl4ZWQgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGF1dGhvciB0aW1lc3RhbXAuCisKKyAqIFZhcmlvdXMgc3ViY29tbWFuZHMgb2YgImdpdCBzdWJtb2R1bGUiIHJlZnVzZWQgdG8gcnVuIGZyb20gYW55d2hlcmUKKyAgIG90aGVyIHRoYW4gdGhlIHRvcCBvZiB0aGUgd29ya2luZyB0cmVlIG9mIHRoZSBzdXBlcnByb2plY3QsIGJ1dAorICAgdGhleSBoYXZlIGJlZW4gdGF1Z2h0IHRvIGxldCB5b3UgcnVuIGZyb20gYSBzdWJkaXJlY3RvcnkuCisKKyAqICJnaXQgZGlmZiIgbGVhcm5lZCBhIG1vZGUgdGhhdCBpZ25vcmVzIGh1bmtzIHdob3NlIGNoYW5nZSBjb25zaXN0cworICAgb25seSBvZiBhZGRpdGlvbnMgYW5kIHJlbW92YWxzIG9mIGJsYW5rIGxpbmVzLCB3aGljaCBpcyB0aGUgc2FtZSBhcworICAgImRpZmYgLUIiIChpZ25vcmUgYmxhbmsgbGluZXMpIG9mIEdOVSBkaWZmLgorCisgKiAiZ2l0IHJtIiBnaXZlcyBhIHNpbmdsZSBtZXNzYWdlIGZvbGxvd2VkIGJ5IGxpc3Qgb2YgcGF0aHMgdG8gcmVwb3J0CisgICBtdWx0aXBsZSBwYXRocyB0aGF0IGNhbm5vdCBiZSByZW1vdmVkLgorCisgKiAiZ2l0IHJlYmFzZSIgY2FuIGJlIHRvbGQgd2l0aCAiOi9sb29rIGZvciB0aGlzIHN0cmluZyIgc3ludGF4IGNvbW1pdHMKKyAgIHRvIHJlcGxheSB0aGUgY2hhbmdlcyBvbnRvIGFuZCB3aGVyZSB0aGUgd29yayB0byBiZSByZXBsYXllZCBiZWdpbnMuCisKKyAqIE1hbnkgdHV0b3JpYWxzIHRlYWNoIHVzZXJzIHRvIHNldCAiY29sb3IudWkiIHRvICJhdXRvIiBhcyB0aGUgZmlyc3QKKyAgIHRoaW5nIGFmdGVyIHlvdSBzZXQgInVzZXIubmFtZS9lbWFpbCIgdG8gaW50cm9kdWNlIHlvdXJzZWx2ZXMgdG8KKyAgIEdpdC4gIE5vdyB0aGUgdmFyaWFibGUgZGVmYXVsdHMgdG8gImF1dG8iLgorCisgKiBPbiBDeWd3aW4sICJjeWdzdGFydCIgaXMgbm93IHJlY29nbmlzZWQgYXMgYSBwb3NzaWJsZSB3YXkgdG8gc3RhcnQKKyAgIGEgd2ViIGJyb3dzZXIgKHVzZWQgaW4gImhlbHAgLXciIGFuZCAiaW5zdGF3ZWIiIGFtb25nIG90aGVycykuCisKKyAqICJnaXQgc3RhdHVzIiBsZWFybmVkIHN0YXR1cy5icmFuY2ggYW5kIHN0YXR1cy5zaG9ydCBjb25maWd1cmF0aW9uCisgICB2YXJpYWJsZXMgdG8gdXNlIC0tYnJhbmNoIGFuZCAtLXNob3J0IG9wdGlvbnMgYnkgZGVmYXVsdCAob3ZlcnJpZGUKKyAgIHdpdGggLS1uby1icmFuY2ggYW5kIC0tbm8tc2hvcnQgb3B0aW9ucyBmcm9tIHRoZSBjb21tYW5kIGxpbmUpLgorCisgKiAiZ2l0IGNtZCA8bmFtZT4iLCB3aGVuIDxuYW1lPiBoYXBwZW5zIHRvIGJlIGEgNDAtaGV4IHN0cmluZywKKyAgIGRpcmVjdGx5IHVzZXMgdGhlIDQwLWhleCBzdHJpbmcgYXMgYW4gb2JqZWN0IG5hbWUsIGV2ZW4gaWYgYSByZWYKKyAgICJyZWZzLzxzb21lIGhpZXJhcmNoeT4vPG5hbWU+IiBleGlzdHMuICBUaGlzIGRpc2FtYmlndWF0aW9uIG9yZGVyCisgICBpcyB1bmxpa2VseSB0byBjaGFuZ2UsIGJ1dCB3ZSBzaG91bGQgd2FybiBhYm91dCB0aGUgYW1iaWd1aXR5IGp1c3QKKyAgIGxpa2Ugd2Ugd2FybiB3aGVuIG1vcmUgdGhhbiBvbmUgcmVmcy8gaGllcmFyY2hpZXMgc2hhcmUgdGhlIHNhbWUKKyAgIG5hbWUuCisKKyAqICJnaXQgcmViYXNlIiBsZWFybmVkICItLVtuby1dYXV0b3N0YXNoIiBvcHRpb24gdG8gc2F2ZSBsb2NhbAorICAgY2hhbmdlcyBpbnN0ZWFkIG9mIHJlZnVzaW5nIHRvIHJ1biAodG8gd2hpY2ggcGVvcGxlJ3Mgbm9ybWFsCisgICByZXNwb25zZSB3YXMgdG8gc3Rhc2ggdGhlbSBhbmQgcmUtcnVuKS4gIFRoaXMgaW50cm9kdWNlZCBhIGNvcm5lcgorICAgY2FzZSBicmVha2FnZSB0byAiZ2l0IGFtIC0tYWJvcnQiIGJ1dCBpdCBoYXMgYmVlbiBmaXhlZC4KKworICogImNoZWNrLWlnbm9yZSIgKG5ldyBmZWF0dXJlIHNpbmNlIDEuOC4yKSBoYXMgYmVlbiB1cGRhdGVkIHRvIHdvcmsKKyAgIG1vcmUgbGlrZSAiY2hlY2stYXR0ciIgb3ZlciBiaWRpLXBpcGVzLgorCisgKiAiZ2l0IGRlc2NyaWJlIiBsZWFybmVkICItLWZpcnN0LXBhcmVudCIgb3B0aW9uIHRvIGxpbWl0IGl0cyBjbG9zZXN0CisgICB0YWdnZWQgY29tbWl0IHNlYXJjaCB0byB0aGUgZmlyc3QtcGFyZW50IGNoYWluLgorCisgKiAiZ2l0IG1lcmdlIGZvbyIgdGhhdCBtaWdodCBoYXZlIG1lYW50ICJnaXQgbWVyZ2Ugb3JpZ2luL2ZvbyIgaXMKKyAgIGRpYWdub3NlZCB3aXRoIGEgbW9yZSBpbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlLgorCisgKiAiZ2l0IGxvZyAtTDxsaW5lPiw8cmFuZ2U+OjxmaWxlbmFtZT4iIGhhcyBiZWVuIGFkZGVkLiAgVGhpcyBtYXkKKyAgIHN0aWxsIGhhdmUgbGVha3MgYW5kIHJvdWdoIGVkZ2VzLCB0aG91Z2guCisKKyAqIFdlIHVzZWQgdGhlIGFwcHJveGlkYXRlKCkgcGFyc2VyIGZvciAiLS1leHBpcmU9PHRpbWVzdGFtcD4iIG9wdGlvbnMKKyAgIG9mIHZhcmlvdXMgY29tbWFuZHMsIGJ1dCBpdCBpcyBiZXR0ZXIgdG8gdHJlYXQgLS1leHBpcmU9YWxsIGFuZAorICAgLS1leHBpcmU9bm93IGEgYml0IG1vcmUgc3BlY2lhbGx5IHRoYW4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLgorICAgImdpdCBnYyIgYW5kICJnaXQgcmVmbG9nIiBoYXZlIGJlZW4gdXBkYXRlZCB3aXRoIGEgbmV3IHBhcnNpbmcKKyAgIGZ1bmN0aW9uIGZvciBleHBpcnkgZGF0ZXMuCisKKyAqIFVwZGF0ZXMgdG8gY29tcGxldGlvbiAoYm90aCBiYXNoIGFuZCB6c2gpIGhlbHBlcnMuCisKKyAqIFRoZSBiZWhhdmlvdXIgb2YgdGhlICItLWNoYWluLXJlcGx5LXRvIiBvcHRpb24gb2YgImdpdCBzZW5kLWVtYWlsIgorICAgaGF2ZSBjaGFuZ2VkIGF0IDEuNy4wLCBhbmQgd2UgYWRkZWQgYSB3YXJuaW5nL2FkdmljZSBtZXNzYWdlIHRvCisgICBoZWxwIHVzZXJzIGFkanVzdCB0byB0aGUgbmV3IGJlaGF2aW91ciBiYWNrIHRoZW4sIGJ1dCB3ZSBrZXB0IGl0CisgICBhcm91bmQgZm9yIHRvbyBsb25nLiAgVGhlIG1lc3NhZ2UgaGFzIGZpbmFsbHkgYmVlbiByZW1vdmVkLgorCisgKiAiZ2l0IGZldGNoIG9yaWdpbiBtYXN0ZXIiIHVubGlrZSAiZ2l0IGZldGNoIG9yaWdpbiIgb3IgImdpdCBmZXRjaCIKKyAgIGRpZCBub3QgdXBkYXRlICJyZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlciI7IHRoaXMgd2FzIGFuIGVhcmx5CisgICBkZXNpZ24gZGVjaXNpb24gdG8ga2VlcCB0aGUgdXBkYXRlIG9mIHJlbW90ZSB0cmFja2luZyBicmFuY2hlcworICAgcHJlZGljdGFibGUsIGJ1dCBpbiBwcmFjdGljZSBpdCB0dXJucyBvdXQgdGhhdCBwZW9wbGUgZmluZCBpdCBtb3JlCisgICBjb252ZW5pZW50IHRvIG9wcG9ydHVuaXN0aWNhbGx5IHVwZGF0ZSB0aGVtIHdoZW5ldmVyIHdlIGhhdmUgYQorICAgY2hhbmNlLCBhbmQgd2UgaGF2ZSBiZWVuIHVwZGF0aW5nIHRoZW0gd2hlbiB3ZSBydW4gImdpdCBwdXNoIiB3aGljaAorICAgYWxyZWFkeSBicmVha3MgdGhlIG9yaWdpbmFsICJwcmVkaWN0YWJpbGl0eSIgYW55d2F5LgorCisgKiBUaGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBjb3JlLmNoZWNrc3RhdCB3YXMgYWR2ZXJ0aXNlZCBpbiB0aGUKKyAgIGRvY3VtZW50YXRpb24gYnV0IHRoZSBjb2RlIGV4cGVjdGVkIGNvcmUuc3RhdGluZm8gaW5zdGVhZC4KKyAgIEZvciBub3csIHdlIGFjY2VwdCBib3RoIGNvcmUuY2hlY2tzdGF0IGFuZCBjb3JlLnN0YXRpbmZvLCBidXQgdGhlCisgICBsYXR0ZXIgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBsb25nZXIgdGVybS4KKworCitQZXJmb3JtYW5jZSwgSW50ZXJuYWwgSW1wbGVtZW50YXRpb24sIGV0Yy4KKworICogT24gQ3lnd2luLCB3ZSB1c2VkIHRvIHVzZSBvdXIgb3duIGxzdGF0KDIpIGVtdWxhdGlvbiB0aGF0IGlzCisgICBhbGxlZ2VkbHkgZmFzdGVyIHRoYW4gdGhlIHBsYXRmb3JtIG9uZSBpbiBjb2RlcGF0aHMgd2hlcmUgc29tZSBvZgorICAgdGhlIGluZm9ybWF0aW9uIGl0IHJldHVybnMgZGlkIG5vdCBtYXR0ZXIsIGJ1dCBpdCBzdGFydGVkIHRvIGJpdGUKKyAgIHVzIGluIGEgZmV3IGNvZGVwYXRocyB3aGVyZSB0aGUgdHJpY2sgaXQgdXNlcyB0byBjaGVhdCBkb2VzIHNob3cKKyAgIGJyZWFrYWdlcy4gVGhpcyBlbXVsYXRpb24gaGFzIGJlZW4gcmVtb3ZlZCBhbmQgd2UgdXNlIHRoZSBuYXRpdmUKKyAgIGxzdGF0KDIpIGVtdWxhdGlvbiBzdXBwbGllZCBieSBDeWd3aW4gbm93LgorCisgKiBUaGUgZnVuY3Rpb24gYXR0cmlidXRlcyBleHRlbnNpb25zIGFyZSB1c2VkIHRvIGNhdGNoIG1pc3Rha2VzIGluCisgICB1c2Ugb2Ygb3VyIG93biB2YXJpYWRpYyBmdW5jdGlvbnMgdGhhdCB1c2UgTlVMTCBzZW50aW5lbCBhdCB0aGUgZW5kCisgICAoaS5lLiBsaWtlIGV4ZWNsKDMpKSBhbmQgZm9ybWF0IHN0cmluZ3MgKGkuZS4gbGlrZSBwcmludGYoMykpLgorCisgKiBUaGUgY29kZSB0byBhbGxvdyBjb25maWd1cmF0aW9uIGRhdGEgdG8gYmUgcmVhZCBmcm9tIGluLXRyZWUgYmxvYgorICAgb2JqZWN0cyBpcyBpbi4gIFRoaXMgbWF5IGhlbHAgd29ya2luZyBpbiBhIGJhcmUgcmVwb3NpdG9yeSBhbmQKKyAgIHN1Ym1vZHVsZSB1cGRhdGVzLgorCisgKiBGZXRjaGluZyBiZXR3ZWVuIHJlcG9zaXRvcmllcyB3aXRoIG1hbnkgcmVmcyBlbXBsb3llZCBPKG5eMikKKyAgIGFsZ29yaXRobSB0byBtYXRjaCB1cCB0aGUgY29tbW9uIG9iamVjdHMsIHdoaWNoIGhhcyBiZWVuIGNvcnJlY3RlZC4KKworICogVGhlIG9yaWdpbmFsIHdheSB0byBzcGVjaWZ5IHJlbW90ZSByZXBvc2l0b3J5IHVzaW5nIC5naXQvYnJhbmNoZXMvCisgICB1c2VkIHRvIGhhdmUgYSBuaWZ0eSBmZWF0dXJlLiAgVGhlIGNvZGUgdG8gc3VwcG9ydCB0aGUgZmVhdHVyZSB3YXMKKyAgIHN0aWxsIGluIGEgZnVuY3Rpb24gYnV0IHRoZSBjYWxsZXIgd2FzIGNoYW5nZWQgbm90IHRvIGNhbGwgaXQgNQorICAgeWVhcnMgYWdvLCBicmVha2luZyB0aGF0IGZlYXR1cmUgYW5kIGxlYXZpbmcgdGhlIHN1cHBvcnRpbmcgY29kZQorICAgdW5yZWFjaGFibGUuICBUaGUgZGVhZCBjb2RlIGhhcyBiZWVuIHJlbW92ZWQuCisKKyAqICJnaXQgcGFjay1yZWZzIiB0aGF0IHJhY2VzIHdpdGggbmV3IHJlZiBjcmVhdGlvbiBvciBkZWxldGlvbiBoYXZlCisgICBiZWVuIHN1c2NlcHRpYmxlIHRvIGxvc3NhZ2Ugb2YgcmVmcyB1bmRlciByaWdodCBjb25kaXRpb25zLCB3aGljaAorICAgaGFzIGJlZW4gdGlnaHRlbmVkIHVwLgorCisgKiBXZSByZWFkIGxvb3NlIGFuZCBwYWNrZWQgcmVmZXJlbmNlcyBpbiB0d28gc3RlcHMsIGJ1dCBhZnRlcgorICAgZGVjaWRpbmcgdG8gcmVhZCBhIGxvb3NlIHJlZiBidXQgYmVmb3JlIGFjdHVhbGx5IG9wZW5pbmcgaXQgdG8gcmVhZAorICAgaXQsIGFub3RoZXIgcHJvY2VzcyByYWNpbmcgd2l0aCB1cyBjYW4gdW5saW5rIGl0LCB3aGljaCB3b3VsZCBjYXVzZQorICAgdXMgdG8gYmFyZi4gIFRoZSBjb2RlcGF0aCBoYXMgYmVlbiB1cGRhdGVkIHRvIHJldHJ5IHdoZW4gc3VjaCBhCisgICByYWNlIGlzIGRldGVjdGVkLCBpbnN0ZWFkIG9mIG91dHJpZ2h0IGZhaWxpbmcuCisKKyAqIFVzZXMgb2YgdGhlIHBsYXRmb3JtIGZubWF0Y2goMykgZnVuY3Rpb24gKG1hbnkgcGxhY2VzIGluIHRoZSBjb2RlLAorICAgbWF0Y2hpbmcgcGF0aHNwZWMsIC5naXRpZ25vcmUgYW5kIC5naXRhdHRyaWJ1dGVzIHRvIG5hbWUgYSBmZXcpCisgICBoYXZlIGJlZW4gcmVwbGFjZWQgd2l0aCB3aWxkbWF0Y2gsIGFsbG93aW5nICJmb28vKiovYmFyIiB0aGF0IHdvdWxkCisgICBtYXRjaCBmb28vYmFyLCBmb28vYS9iYXIsIGZvby9hL2IvYmFyLCBldGMuCisKKyAqIE1lbW9yeSBvd25lcnNoaXAgYW5kIGxpZmV0aW1lIHJ1bGVzIGZvciB3aGF0IGZvci1lYWNoLXJlZiBmZWVkcyB0bworICAgaXRzIGNhbGxiYWNrcyBoYXZlIGJlZW4gY2xhcmlmaWVkIChpbiBzaG9ydCwgInlvdSBkbyBub3Qgb3duIGl0LCBzbworICAgbWFrZSBhIGNvcHkgaWYgeW91IHdhbnQgdG8ga2VlcCBpdCIpLgorCisgKiBUaGUgcmV2aXNpb24gdHJhdmVyc2FsIGxvZ2ljIHRvIGltcHJvdmUgY3VsbGluZyBvZiBpcnJlbGV2YW50CisgICBwYXJlbnRzIHdoaWxlIHRyYXZlcnNpbmcgYSBtZXJneSBoaXN0b3J5IGhhcyBiZWVuIHVwZGF0ZWQuCisKKyAqIFNvbWUgbGVha3MgaW4gdW5wYWNrLXRyZWVzICh1c2VkIGluIG1lcmdlLCBjaGVycnktcGljayBhbmQgb3RoZXIKKyAgIGNvZGVwYXRocykgaGF2ZSBiZWVuIHBsdWdnZWQuCisKKyAqIFRoZSBjb2RlcGF0aCB0byByZWFkIGZyb20gbWFya3MgZmlsZXMgaW4gZmFzdC1pbXBvcnQvZXhwb3J0IGRpZCBub3QKKyAgIGhhdmUgdG8gYWNjZXB0IGFueXRoaW5nIGJ1dCA0MC1oZXggcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdAorICAgbmFtZS4gIEZ1cnRoZXIsIGZhc3QtZXhwb3J0IGRpZCBub3QgbmVlZCBmdWxsIGluLWNvcmUgb2JqZWN0CisgICByZXByZXNlbnRhdGlvbiB0byBoYXZlIHBhcnNlZCB3ZW4gcmVhZGluZyBmcm9tIHRoZW0uICBUaGVzZQorICAgY29kZXBhdGhzIGhhdmUgYmVlbiBvcHRpbWl6ZWQgYnkgdGFraW5nIGFkdmFudGFnZSBvZiB0aGVzZSBhY2Nlc3MKKyAgIHBhdHRlcm5zLgorCisgKiBPYmplY3QgbG9va3VwIGxvZ2ljLCB3aGVuIHRoZSBvYmplY3QgaGFzaHRhYmxlIHN0YXJ0cyB0byBiZWNvbWUKKyAgIGNyb3dkZWQsIGhhcyBiZWVuIG9wdGltaXplZC4KKworICogV2hlbiBURVNUX09VVFBVVF9ESVJFQ1RPUlkgc2V0dGluZyBpcyB1c2VkLCBpdCB3YXMgaGFuZGxlZCBzb21ld2hhdAorICAgaW5jb25zaXN0ZW50bHkgYmV0d2VlbiB0aGUgdGVzdCBmcmFtZXdvcmsgYW5kIHQvTWFrZWZpbGUsIGFuZCBsb2dpYworICAgdG8gc3VtbWFyaXplIHRoZSByZXN1bHRzIGxvb2tlZCBhdCBhIHdyb25nIHBsYWNlLgorCisgKiAiZ2l0IGNsb25lIiB1c2VzIGEgbGlnaHRlci13ZWlnaHQgaW1wbGVtZW50YXRpb24gd2hlbiBtYWtpbmcgc3VyZQorICAgdGhhdCB0aGUgaGlzdG9yeSBiZWhpbmQgcmVmcyBhcmUgY29tcGxldGUuCisKKyAqIE1hbnkgd2FybmluZ3MgZnJvbSBzcGFyc2Ugc291cmNlIGNoZWNrZXIgaW4gY29tcGF0LyBhcmVhIGhhcyBiZWVuCisgICBzcXVlbGNoZWQuCisKKyAqIFRoZSBjb2RlIHRvIHJlYWRpbmcgYW5kIHVwZGF0aW5nIHBhY2tlZC1yZWZzIGZpbGUgaGFzIGJlZW4gdXBkYXRlZCwKKyAgIGNvcnJlY3RpbmcgY29ybmVyIGNhc2UgYnVncy4KKworCitBbHNvIGNvbnRhaW5zIHZhcmlvdXMgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCBjb2RlIGNsZWFuLXVwcy4KKworCitGaXhlcyBzaW5jZSB2MS44LjMKKy0tLS0tLS0tLS0tLS0tLS0tLQorCitVbmxlc3Mgb3RoZXJ3aXNlIG5vdGVkLCBhbGwgdGhlIGZpeGVzIHNpbmNlIHYxLjguMyBpbiB0aGUgbWFpbnRlbmFuY2UKK3RyYWNrIGFyZSBjb250YWluZWQgaW4gdGhpcyByZWxlYXNlIChzZWUgcmVsZWFzZSBub3RlcyB0byB0aGVtIGZvcgorZGV0YWlscykuCisKKyAqIE5ld2VyIE5ldDo6U01UUDo6U1NMIG1vZHVsZSBkb2VzIG5vdCB3YW50IHRoZSB1c2VyIHByb2dyYW1zIHRvIHVzZQorICAgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIHRvIGxldCBzZXJ2ZXIgY2VydGlmaWNhdGUgZ28gd2l0aG91dAorICAgdmVyaWZpY2F0aW9uLCBzbyBieSBkZWZhdWx0IGVuYWJsZSB0aGUgdmVyaWZpY2F0aW9uIHdpdGggYQorICAgbWVjaGFuaXNtIHRvIHR1cm4gaXQgb2ZmIGlmIG5lZWRlZC4KKyAgIChtZXJnZSAzNTAzNWJiIHJyL3NlbmQtZW1haWwtc3NsLXZlcmlmeSBsYXRlciB0byBtYWludCkuCisKKyAqIFdoZW4gImdpdCIgaXMgc3Bhd25lZCBpbiBzdWNoIGEgd2F5IHRoYXQgYW55IG9mIHRoZSBsb3cgMyBmaWxlCisgICBkZXNjcmlwdG9ycyBpcyBjbG9zZWQsIG91ciBmaXJzdCBvcGVuKCkgbWF5IHlpZWxkIGZpbGUgZGVzY3JpcHRvciAyLAorICAgYW5kIHdyaXRpbmcgZXJyb3IgbWVzc2FnZSB0byBpdCB3b3VsZCBzY3JldyB0aGluZ3MgdXAgaW4gYSBiaWcgd2F5LgorICAgKG1lcmdlIGExMWMzOTYgdHIvcHJvdGVjdC1sb3ctMy1mZHMgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBUaGUgbWFpbG1hcCBtZWNoYW5pc20gdW5uZWNlc3NhcmlseSBkb3duY2FzZWQgdGhlIGUtbWFpbCBhZGRyZXNzZXMKKyAgIGluIHRoZSBvdXRwdXQsIGFuZCBhbHNvIGlnbm9yZWQgdGhlIGh1bWFuIG5hbWUgd2hlbiBpdCBpcyBhIHNpbmdsZQorICAgY2hhcmFjdGVyIG5hbWUuCisgICAobWVyZ2UgYmQyMzc5NCBqYy9tYWlsbWFwLWNhc2UtaW5zZW5zaXRpdml0eSBsYXRlciB0byBtYWludCkuCisKKyAqIEluIHR3byBwbGFjZXMgd2UgZGlkIG5vdCBjaGVjayByZXR1cm4gdmFsdWUgKGV4cGVjdGVkIHRvIGJlIGEgZmlsZQorICAgZGVzY3JpcHRvcikgY29ycmVjdGx5LgorICAgKG1lcmdlIGE3N2YxMDYgdHIvZmQtZ290Y2hhLWZpeGVzIGxhdGVyIHRvIG1haW50KS4KKworICogTG9naWMgdG8gYXV0by1kZXRlY3QgY2hhcmFjdGVyIGVuY29kaW5ncyBpbiB0aGUgY29tbWl0IGxvZyBtZXNzYWdlCisgICBkaWQgbm90IHJlamVjdCBvdmVybG9uZyBhbmQgaW52YWxpZCBVVEYtOCBjaGFyYWN0ZXJzLgorICAgKG1lcmdlIDgxMDUwYWMgYmMvY29tbWl0LWludmFsaWQtdXRmOCBsYXRlciB0byBtYWludCkuCisKKyAqIFBhc3MgcG9ydCBudW1iZXIgYXMgYSBzZXBhcmF0ZSBhcmd1bWVudCB3aGVuICJzZW5kLWVtYWlsIiBpbml0aWFsaXplcworICAgTmV0OjpTTVRQLCBpbnN0ZWFkIG9mIGFzIGEgcGFydCBvZiB0aGUgaG9zdG5hbWUsIGkuZS4gaG9zdDpwb3J0LgorICAgVGhpcyBhbGxvd3MgR1NTQVBJIGNvZGVwYXRoIHRvIG1hdGNoIHdpdGggdGhlIGhvc3RuYW1lIGdpdmVuLgorICAgKG1lcmdlIDFhNzQxYmYgYmMvc2VuZC1lbWFpbC11c2UtcG9ydC1hcy1zZXBhcmF0ZS1wYXJhbSBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgZGlmZiIgcmVmdXNlZCB0byBldmVuIHNob3cgZGlmZmVyZW5jZSB3aGVuIGNvcmUuc2FmZWNybGYgaXMKKyAgIHNldCB0byB0cnVlIChpLmUuIGVycm9yIG91dCkgYW5kIHRoZXJlIGFyZSBvZmZlbmRpbmcgbGluZXMgaW4gdGhlCisgICB3b3JraW5nIHRyZWUgZmlsZXMuCisgICAobWVyZ2UgNTQzMGJiMiBqYy9tYWludC1kaWZmLWNvcmUtc2FmZWNybGYgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBBIHRlc3QgdGhhdCBzaG91bGQgaGF2ZSBmYWlsZWQgYnV0IGRpZG4ndCByZXZlYWxlZCBhIGJ1ZyB0aGF0IG5lZWRzCisgICB0byBiZSBjb3JyZWN0ZWQuCisgICAobWVyZ2UgOTRkNzVkMSBqYy90MTUxMi1maXggbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBBbiBvdmVybG9uZyBwYXRoIHRvIGEgLmdpdCBkaXJlY3RvcnkgbWF5IGhhdmUgb3ZlcmZsb3duIHRoZQorICAgdGVtcG9yYXJ5IHBhdGggYnVmZmVyIHVzZWQgdG8gY3JlYXRlIGEgbmFtZSBmb3IgbG9ja2ZpbGVzLgorICAgKG1lcmdlIDJmYmQ0ZjkgbWgvbWFpbnQtbG9ja2ZpbGUtb3ZlcmZsb3cgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBJbnZvY2F0aW9ucyBvZiAiZ2l0IGNoZWNrb3V0IiB1c2VkIGludGVybmFsbHkgYnkgImdpdCByZWJhc2UiIHdlcmUKKyAgIGNvdW50ZWQgYXMgImNoZWNrb3V0IiwgYW5kIGFmZmVjdGVkIGxhdGVyICJnaXQgY2hlY2tvdXQgLSIgdG8gdGhlCisgICB0aGUgdXNlciB0byBhbiB1bmV4cGVjdGVkIHBsYWNlLgorICAgKG1lcmdlIDNiZWQyOTEgcnIvcmViYXNlLWNoZWNrb3V0LXJlZmxvZyBsYXRlciB0byBtYWludCkuCisKKyAqIFRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGNvbHVtbi51aSB3YXMgcG9vcmx5IGRvY3VtZW50ZWQuCisgICAobWVyZ2UgNWU2MmNjMSByci9jb2x1bW4tZG9jIGxhdGVyIHRvIG1haW50KS4KKworICogImdpdCBuYW1lLXJldiAtLXJlZnM9dGFncy92KiIgd2VyZSBmb3JiaWRkZW4sIHdoaWNoIHdhcyBhIGJpdAorICAgaW5jb252ZW5pZW50ICh5b3UgaGFkIHRvIGdpdmUgYSBwYXR0ZXJuIHRvIG1hdGNoIHJlZnMgZnVsbHksIGxpa2UKKyAgIC0tcmVmcz1yZWZzL3RhZ3MvdiopLgorICAgKG1lcmdlIDk4YzVjNGEgbmsvbmFtZS1yZXYtYWJicmV2aWF0ZWQtcmVmcyBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgYXBwbHkiIHBhcnNlZCBwYXRjaGVzIHRoYXQgYWRkIG5ldyBmaWxlcywgZ2VuZXJhdGVkIGJ5CisgICBwcm9ncmFtcyBvdGhlciB0aGFuIEdpdCwgaW5jb3JyZWN0bHkuICBUaGlzIGlzIGFuIG9sZCBicmVha2FnZSBpbgorICAgdjEuNy4xMSBhbmQgd2lsbCBuZWVkIHRvIGJlIG1lcmdlZCBkb3duIHRvIHRoZSBtYWludGVuYW5jZSB0cmFja3MuCisKKyAqIE9sZGVyIGNVUkwgd2FudGVkIHBpZWNlIG9mIG1lbW9yeSB3ZSBjYWxsIGl0IHdpdGggdG8gYmUgc3RhYmxlLCBidXQKKyAgIHdlIHVwZGF0ZWQgdGhlIGF1dGggbWF0ZXJpYWwgYWZ0ZXIgaGFuZGluZyBpdCB0byBhIGNhbGwuCisKKyAqICJnaXQgcHVsbCIgaW50byBub3RoaW5nIHRyYXNoZWQgImxvY2FsIGNoYW5nZXMiIHRoYXQgd2VyZSBpbiB0aGUKKyAgIGluZGV4LCBhbmQgdGhpcyBhdm9pZHMgaXQuCisKKyAqIE1hbnkgImdpdCBzdWJtb2R1bGUiIG9wZXJhdGlvbnMgZG8gbm90IHdvcmsgb24gYSBzdWJtb2R1bGUgYXQgYQorICAgcGF0aCB3aG9zZSBuYW1lIGlzIG5vdCBpbiBBU0NJSS4KKworICogImNoZXJyeS1waWNrIiBoYWQgYSBzbWFsbCBsZWFrIGluIGFuIGVycm9yIGNvZGVwYXRoLgorCisgKiBMb2dpYyB1c2VkIGJ5IGdpdC1zZW5kLWVtYWlsIHRvIHN1cHByZXNzIGNjIG1pc2hhbmRsZWQgbmFtZXMgbGlrZQorICAgIkEgVS4gVGhvciIgPGF1dGhvckBleGFtcGxlLnh6Piwgd2hlcmUgdGhlIGh1bWFuIHJlYWRhYmxlIHBhcnQKKyAgIG5lZWRzIHRvIGJlIHF1b3RlZCAodGhlIHVzZXIgaW5wdXQgbWF5IG5vdCBoYXZlIHRoZSBkb3VibGUgcXVvdGVzCisgICBhcm91bmQgdGhlIG5hbWUsIGFuZCBjb21wYXJpc29uIHdhcyBkb25lIGJldHdlZW4gcXVvdGVkIGFuZAorICAgdW5xdW90ZWQgc3RyaW5ncykuICBJdCBhbHNvIG1pc2hhbmRsZWQgbmFtZXMgdGhhdCBuZWVkIFJGQzIwNDcKKyAgIHF1b3RpbmcuCisKKyAqIENhbGwgdG8gZGlzY2FyZF9jYWNoZS9kaXNjYXJkX2luZGV4ICh1c2VkIHdoZW4gd2UgdXNlIGRpZmZlcmVudAorICAgY29udGVudHMgb2YgdGhlIGluZGV4IGluLWNvcmUsIGluIG1hbnkgb3BlcmF0aW9ucyBsaWtlIGNvbW1pdCwKKyAgIGFwcGx5LCBhbmQgbWVyZ2UpIHVzZWQgdG8gbGVhayBtZW1vcnkgdGhhdCBoZWxkIHRoZSBhcnJheSBvZiBpbmRleAorICAgZW50cmllcywgd2hpY2ggaGFzIGJlZW4gcGx1Z2dlZC4KKyAgIChtZXJnZSBhMGZjNGRiIHJzL2Rpc2NhcmQtaW5kZXgtZGlzY2FyZC1hcnJheSBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXR3ZWIiIGZvcmdvdCB0byBjbGVhciBhIGdsb2JhbCB2YXJpYWJsZSAkc2VhcmNoX3JlZ2V4cCB1cG9uIGVhY2gKKyAgIHJlcXVlc3QsIG1pc3Rha2VubHkgY2Fycnlpbmcgb3ZlciB0aGUgcHJldmlvdXMgc2VhcmNoIHRvIGEgbmV3IG9uZQorICAgd2hlbiB1c2VkIGFzIGEgcGVyc2lzdGVudCBDR0kuCisKKyAqIFRoZSB3aWxkbWF0Y2ggZW5naW5lIGRpZCBub3QgaG9ub3IgV01fQ0FTRUZPTEQgb3B0aW9uIGNvcnJlY3RseS4KKworICogImdpdCBsb2cgLWMgLS1mb2xsb3cgJHBhdGgiIHNlZ2ZhdWx0ZWQgdXBvbiBoaXR0aW5nIHRoZSBjb21taXQgdGhhdAorICAgcmVuYW1lZCB0aGUgJHBhdGggYmVpbmcgZm9sbG93ZWQuCisKKyAqIFdoZW4gYSByZWZsb2cgbm90YXRpb24gaXMgdXNlZCBmb3IgaW1wbGljaXQgImN1cnJlbnQgYnJhbmNoIiwgd2UKKyAgIGRpZCBub3Qgc2F5IHdoaWNoIGJyYW5jaCBhbmQgd29yc2Ugc2FpZCAiYnJhbmNoICcnIi4KKworICogImRpZmZ0b29sIC0tZGlyLWRpZmYiIGRpZCBub3QgY29weSBiYWNrIGNoYW5nZXMgbWFkZSBieSB0aGUKKyAgIGVuZC11c2VyIGluIHRoZSBkaWZmIHRvb2wgYmFja2VuZCB0byB0aGUgd29ya2luZyB0cmVlIGluIHNvbWUKKyAgIGNhc2VzLgorCisgKiAiZ2l0IHB1c2ggJHRoZXJlIEhFQUQ6YnJhbmNoIiBkaWQgbm90IHJlc29sdmUgSEVBRCBlYXJseSBlbm91Z2gsIHNvCisgICBpdCB3YXMgZWFzeSB0byBmbGlwIGl0IGFyb3VuZCB3aGlsZSBwdXNoIGlzIHN0aWxsIGdvaW5nIG9uIGFuZCBwdXNoCisgICBvdXQgYSBicmFuY2ggdGhhdCB0aGUgdXNlciBkaWQgbm90IG9yaWdpbmFsbHkgaW50ZW5kZWQgd2hlbiB0aGUKKyAgIGNvbW1hbmQgd2FzIHN0YXJ0ZWQuCisKKyAqIFRoZSBiYXNoIHByb21wdCBjb2RlIChpbiBjb250cmliLykgZGlzcGxheWVkIHRoZSBuYW1lIG9mIHRoZSBicmFuY2gKKyAgIGJlaW5nIHJlYmFzZWQgd2hlbiAicmViYXNlIC1pLy1tLy1wIiBtb2RlcyBhcmUgaW4gdXNlLCBidXQgbm90IHRoZQorICAgcGxhaW4gdmFuaWxsYSAicmViYXNlIi4KKworICogSGFuZGxpbmcgb2YgbmVnYXRpdmUgZXhjbHVkZSBwYXR0ZXJuIGZvciBkaXJlY3RvcmllcyAiIWRpciIgd2FzCisgICBicm9rZW4gaW4gdGhlIHVwZGF0ZSB0byB2MS44LjMuCisKKyAqIHpzaCBwcm9tcHQgc2NyaXB0IHRoYXQgYm9ycm93ZWQgZnJvbSBiYXNoIHByb21wdCBzY3JpcHQgZGlkIG5vdAorICAgd29yayBkdWUgdG8gc2xpZ2h0IGRpZmZlcmVuY2VzIGluIGFycmF5IHZhcmlhYmxlIG5vdGF0aW9uIGJldHdlZW4KKyAgIHRoZXNlIHR3byBzaGVsbHMuCisKKyAqIEFuIGVudHJ5IGZvciAiZmlsZTovLyIgc2NoZW1lIGluIHRoZSBlbnVtZXJhdGlvbiBvZiBVUkwgdHlwZXMgR2l0CisgICBjYW4gdGFrZSBpbiB0aGUgSFRNTCBkb2N1bWVudGF0aW9uIHdhcyBtYWRlIGludG8gYSBjbGlja2FibGUgbGluaworICAgYnkgbWlzdGFrZS4KKworICogImdpdCBwdXNoIC0tW25vLV12ZXJpZnkiIHdhcyBub3QgZG9jdW1lbnRlZC4KKworICogU3RvcCBpbnN0YWxsaW5nIHRoZSBnaXQtcmVtb3RlLXRlc3RweSBzY3JpcHQgdGhhdCBpcyBvbmx5IHVzZWQgZm9yCisgICB0ZXN0aW5nLgorCisgKiAiZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5LW1lc3NhZ2UgLW0gJyciIHNob3VsZCBub3Qgc3RhcnQgYW4KKyAgIGVkaXRvci4KKworICogImdpdCBtZXJnZSBAey0xfX4yMiIgd2FzIHJld3JpdHRlbiB0byAiZ2l0IG1lcmdlIGZyb3R6QHsxfX4yMiIKKyAgIGluY29ycmVjdGx5IHdoZW4geW91ciBwcmV2aW91cyBicmFuY2ggd2FzICJmcm90eiIgKGl0IHNob3VsZCBiZQorICAgcmV3cml0dGVuIHRvICJnaXQgbWVyZ2UgZnJvdHp+MjIiIGluc3RlYWQpLgorCisgKiAiZ2l0IGRpZmYgLWMgLXAiIHdhcyBub3Qgc2hvd2luZyBhIGRlbGV0ZWQgbGluZSBmcm9tIGEgaHVuayB3aGVuCisgICBhbm90aGVyIGh1bmsgaW1tZWRpYXRlbHkgYmVnaW5zIHdoZXJlIHRoZSBlYXJsaWVyIG9uZSBlbmRzLgorCisgKiAiZ2l0IGxvZyAtLWFuY2VzdHJ5LXBhdGggQS4uLkIiIGRpZCBub3Qgd29yayBhcyBleHBlY3RlZCwgYXMgaXQgZGlkCisgICBub3QgcGF5IGF0dGVudGlvbiB0byB0aGUgZmFjdCB0aGF0IHRoZSBtZXJnZSBiYXNlIGJldHdlZW4gQSBhbmQgQgorICAgd2FzIHRoZSBib3R0b20gb2YgdGhlIHJhbmdlIGJlaW5nIHNwZWNpZmllZC4KKworICogTWFjIE9TIFggZG9lcyBub3QgbGlrZSB0byB3cml0ZSgyKSBtb3JlIHRoYW4gSU5UX01BWCBudW1iZXIgb2YKKyAgIGJ5dGVzOyB3b3JrIGl0IGFyb3VuZCBieSBjaG9wcGluZyB3cml0ZSgyKSBpbnRvIHNtYWxsZXIgcGllY2VzLgorCisgKiBOZXdlciBNYWNPUyBYIGVuY291cmFnZXMgdGhlIHByb2dyYW1zIHRvIGNvbXBpbGUgYW5kIGxpbmsgd2l0aAorICAgdGhlaXIgQ29tbW9uQ3J5cHRvLCBub3Qgd2l0aCBPcGVuU1NMLgorCisgKiAiZ2l0IGNsb25lIGZvby9iYXI6YmF6IiBjYW5ub3QgYmUgYSByZXF1ZXN0IHRvIGNsb25lIGZyb20gYSByZW1vdGUKKyAgIG92ZXIgZ2l0LW92ZXItc3NoIHNwZWNpZmllZCBpbiB0aGUgc2NwIHN0eWxlLiAgVGhpcyBjYXNlIGlzIG5vdworICAgZGV0ZWN0ZWQgYW5kIGNsb25lcyBmcm9tIGEgbG9jYWwgcmVwb3NpdG9yeSBhdCAiZm9vL2JhcjpiYXoiLgorCisgKiBXaGVuICRIT01FIGlzIG1pc2NvbmZpZ3VyZWQgdG8gcG9pbnQgYXQgYW4gdW5yZWFkYWJsZSBkaXJlY3RvcnksIHdlCisgICB1c2VkIHRvIGNvbXBsYWluIGFuZCBkaWUuIExvb3NlbiB0aGUgY2hlY2suCisKKyAqICJnaXQgc3VidHJlZSIgKGluIGNvbnRyaWIvKSBoYWQgb25lIGNvZGVwYXRoIHdpdGggbG9vc2UgZXJyb3IKKyAgIGNoZWNrcyB0byBsb3NlIGRhdGEgYXQgdGhlIHJlbW90ZSBzaWRlLgorCisgKiAiZ2l0IGZldGNoIiBpbnRvIGEgc2hhbGxvdyByZXBvc2l0b3J5IGZyb20gYSByZXBvc2l0b3J5IHRoYXQgZG9lcworICAgbm90IGtub3cgYWJvdXQgdGhlIHNoYWxsb3cgYm91bmRhcnkgY29tbWl0cyAoZS5nLiBhIGRpZmZlcmVudCBmb3JrCisgICBmcm9tIHRoZSByZXBvc2l0b3J5IHRoZSBjdXJyZW50IHNoYWxsb3cgcmVwb3NpdG9yeSB3YXMgY2xvbmVkIGZyb20pCisgICBkaWQgbm90IHdvcmsgY29ycmVjdGx5LgorCisgKiAiZ2l0IGNoZWNrb3V0IGZvbyIgRFdJTXMgdGhlIGludGVuZGVkICJ1cHN0cmVhbSIgYW5kIHR1cm5zIGl0IGludG8KKyAgICJnaXQgY2hlY2tvdXQgLXQgLWIgZm9vIHJlbW90ZXMvb3JpZ2luL2ZvbyIuIFRoaXMgY29kZXBhdGggaGFzIGJlZW4KKyAgIHVwZGF0ZWQgdG8gY29ycmVjdGx5IHRha2UgZXhpc3RpbmcgcmVtb3RlIGRlZmluaXRpb25zIGludG8gYWNjb3VudC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYmxhbWUtb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL2JsYW1lLW9wdGlvbnMudHh0CmluZGV4IGIwZDMxZGYuLjRlNTViMTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vYmxhbWUtb3B0aW9ucy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9ibGFtZS1vcHRpb25zLnR4dApAQCAtMTAsMjcgKzEwLDE0IEBACiAJSW5jbHVkZSBhZGRpdGlvbmFsIHN0YXRpc3RpY3MgYXQgdGhlIGVuZCBvZiBibGFtZSBvdXRwdXQuCiAKIC1MIDxzdGFydD4sPGVuZD46OgotCUFubm90YXRlIG9ubHkgdGhlIGdpdmVuIGxpbmUgcmFuZ2UuICA8c3RhcnQ+IGFuZCA8ZW5kPiBjYW4gdGFrZQotCW9uZSBvZiB0aGVzZSBmb3JtczoKKy1MIDo8cmVnZXg+OjoKKwlBbm5vdGF0ZSBvbmx5IHRoZSBnaXZlbiBsaW5lIHJhbmdlLiAgPHN0YXJ0PiBhbmQgPGVuZD4gYXJlIG9wdGlvbmFsLgorCWBgLUwgPHN0YXJ0PicnIG9yIGBgLUwgPHN0YXJ0PiwnJyBzcGFucyBmcm9tIDxzdGFydD4gdG8gZW5kIG9mIGZpbGUuCisJYGAtTCAsPGVuZD4nJyBzcGFucyBmcm9tIHN0YXJ0IG9mIGZpbGUgdG8gPGVuZD4uCisrCis8c3RhcnQ+IGFuZCA8ZW5kPiBjYW4gdGFrZSBvbmUgb2YgdGhlc2UgZm9ybXM6CiAKLQktIG51bWJlcgotKwotSWYgPHN0YXJ0PiBvciA8ZW5kPiBpcyBhIG51bWJlciwgaXQgc3BlY2lmaWVzIGFuCi1hYnNvbHV0ZSBsaW5lIG51bWJlciAobGluZXMgY291bnQgZnJvbSAxKS4KLSsKLQotLSAvcmVnZXgvCi0rCi1UaGlzIGZvcm0gd2lsbCB1c2UgdGhlIGZpcnN0IGxpbmUgbWF0Y2hpbmcgdGhlIGdpdmVuCi1QT1NJWCByZWdleC4gIElmIDxlbmQ+IGlzIGEgcmVnZXgsIGl0IHdpbGwgc2VhcmNoCi1zdGFydGluZyBhdCB0aGUgbGluZSBnaXZlbiBieSA8c3RhcnQ+LgotKwotCi0tICtvZmZzZXQgb3IgLW9mZnNldAotKwotVGhpcyBpcyBvbmx5IHZhbGlkIGZvciA8ZW5kPiBhbmQgd2lsbCBzcGVjaWZ5IGEgbnVtYmVyCi1vZiBsaW5lcyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGxpbmUgZ2l2ZW4gYnkgPHN0YXJ0Pi4KLSsKK2luY2x1ZGU6OmxpbmUtcmFuZ2UtZm9ybWF0LnR4dFtdCiAKIC1sOjoKIAlTaG93IGxvbmcgcmV2IChEZWZhdWx0OiBvZmYpLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9jb25maWcudHh0IGIvRG9jdW1lbnRhdGlvbi9jb25maWcudHh0CmluZGV4IDZlNTNmYzUuLmVjNTdhMTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vY29uZmlnLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2NvbmZpZy50eHQKQEAgLTE5OSw2ICsxOTksOSBAQAogCWFtV29ya0Rpcjo6CiAJCUFkdmljZSB0aGF0IHNob3dzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcGF0Y2ggZmlsZSB3aGVuCiAJCWxpbmtnaXQ6Z2l0LWFtWzFdIGZhaWxzIHRvIGFwcGx5IGl0LgorCXJtSGludHM6OgorCQlJbiBjYXNlIG9mIGZhaWx1cmUgaW4gdGhlIG91dHB1dCBvZiBsaW5rZ2l0OmdpdC1ybVsxXSwKKwkJc2hvdyBkaXJlY3Rpb25zIG9uIGhvdyB0byBwcm9jZWVkIGZyb20gdGhlIGN1cnJlbnQgc3RhdGUuCiAtLQogCiBjb3JlLmZpbGVNb2RlOjoKQEAgLTIxMCwxNyArMjEzLDYgQEAKIHdpbGwgcHJvYmUgYW5kIHNldCBjb3JlLmZpbGVNb2RlIGZhbHNlIGlmIGFwcHJvcHJpYXRlIHdoZW4gdGhlCiByZXBvc2l0b3J5IGlzIGNyZWF0ZWQuCiAKLWNvcmUuaWdub3JlQ3lnd2luRlNUcmlja3M6OgotCVRoaXMgb3B0aW9uIGlzIG9ubHkgdXNlZCBieSBDeWd3aW4gaW1wbGVtZW50YXRpb24gb2YgR2l0LiBJZiBmYWxzZSwKLQl0aGUgQ3lnd2luIHN0YXQoKSBhbmQgbHN0YXQoKSBmdW5jdGlvbnMgYXJlIHVzZWQuIFRoaXMgbWF5IGJlIHVzZWZ1bAotCWlmIHlvdXIgcmVwb3NpdG9yeSBjb25zaXN0cyBvZiBhIGZldyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBqb2luZWQgaW4KLQlvbmUgaGllcmFyY2h5IHVzaW5nIEN5Z3dpbiBtb3VudC4gSWYgdHJ1ZSwgR2l0IHVzZXMgbmF0aXZlIFdpbjMyIEFQSQotCXdoZW5ldmVyIGl0IGlzIHBvc3NpYmxlIGFuZCBmYWxscyBiYWNrIHRvIEN5Z3dpbiBmdW5jdGlvbnMgb25seSB0bwotCWhhbmRsZSBzeW1ib2wgbGlua3MuIFRoZSBuYXRpdmUgbW9kZSBpcyBtb3JlIHRoYW4gdHdpY2UgZmFzdGVyIHRoYW4KLQlub3JtYWwgQ3lnd2luIGwvc3RhdCgpIGZ1bmN0aW9ucy4gVHJ1ZSBieSBkZWZhdWx0LCB1bmxlc3MgY29yZS5maWxlbW9kZQotCWlzIHRydWUsIGluIHdoaWNoIGNhc2UgaWdub3JlQ3lnd2luRlNUcmlja3MgaXMgaWdub3JlZCBhcyBDeWd3aW4ncwotCVBPU0lYIGVtdWxhdGlvbiBpcyByZXF1aXJlZCB0byBzdXBwb3J0IGNvcmUuZmlsZW1vZGUuCi0KIGNvcmUuaWdub3JlY2FzZTo6CiAJSWYgdHJ1ZSwgdGhpcyBvcHRpb24gZW5hYmxlcyB2YXJpb3VzIHdvcmthcm91bmRzIHRvIGVuYWJsZQogCUdpdCB0byB3b3JrIGJldHRlciBvbiBmaWxlc3lzdGVtcyB0aGF0IGFyZSBub3QgY2FzZSBzZW5zaXRpdmUsCkBAIC04NzYsMTYgKzg2OCwxNyBAQAogCiBjb2xvci5pbnRlcmFjdGl2ZTo6CiAJV2hlbiBzZXQgdG8gYGFsd2F5c2AsIGFsd2F5cyB1c2UgY29sb3JzIGZvciBpbnRlcmFjdGl2ZSBwcm9tcHRzCi0JYW5kIGRpc3BsYXlzIChzdWNoIGFzIHRob3NlIHVzZWQgYnkgImdpdC1hZGQgLS1pbnRlcmFjdGl2ZSIpLgotCVdoZW4gZmFsc2UgKG9yIGBuZXZlcmApLCBuZXZlci4gIFdoZW4gc2V0IHRvIGB0cnVlYCBvciBgYXV0b2AsIHVzZQotCWNvbG9ycyBvbmx5IHdoZW4gdGhlIG91dHB1dCBpcyB0byB0aGUgdGVybWluYWwuIERlZmF1bHRzIHRvIGZhbHNlLgorCWFuZCBkaXNwbGF5cyAoc3VjaCBhcyB0aG9zZSB1c2VkIGJ5ICJnaXQtYWRkIC0taW50ZXJhY3RpdmUiIGFuZAorCSJnaXQtY2xlYW4gLS1pbnRlcmFjdGl2ZSIpLiBXaGVuIGZhbHNlIChvciBgbmV2ZXJgKSwgbmV2ZXIuCisJV2hlbiBzZXQgdG8gYHRydWVgIG9yIGBhdXRvYCwgdXNlIGNvbG9ycyBvbmx5IHdoZW4gdGhlIG91dHB1dCBpcworCXRvIHRoZSB0ZXJtaW5hbC4gRGVmYXVsdHMgdG8gZmFsc2UuCiAKIGNvbG9yLmludGVyYWN0aXZlLjxzbG90Pjo6Ci0JVXNlIGN1c3RvbWl6ZWQgY29sb3IgZm9yICdnaXQgYWRkIC0taW50ZXJhY3RpdmUnCi0Jb3V0cHV0LiBgPHNsb3Q+YCBtYXkgYmUgYHByb21wdGAsIGBoZWFkZXJgLCBgaGVscGAgb3IgYGVycm9yYCwgZm9yCi0JZm91ciBkaXN0aW5jdCB0eXBlcyBvZiBub3JtYWwgb3V0cHV0IGZyb20gaW50ZXJhY3RpdmUKLQljb21tYW5kcy4gIFRoZSB2YWx1ZXMgb2YgdGhlc2UgdmFyaWFibGVzIG1heSBiZSBzcGVjaWZpZWQgYXMKLQlpbiBjb2xvci5icmFuY2guPHNsb3Q+LgorCVVzZSBjdXN0b21pemVkIGNvbG9yIGZvciAnZ2l0IGFkZCAtLWludGVyYWN0aXZlJyBhbmQgJ2dpdCBjbGVhbgorCS0taW50ZXJhY3RpdmUnIG91dHB1dC4gYDxzbG90PmAgbWF5IGJlIGBwcm9tcHRgLCBgaGVhZGVyYCwgYGhlbHBgCisJb3IgYGVycm9yYCwgZm9yIGZvdXIgZGlzdGluY3QgdHlwZXMgb2Ygbm9ybWFsIG91dHB1dCBmcm9tCisJaW50ZXJhY3RpdmUgY29tbWFuZHMuICBUaGUgdmFsdWVzIG9mIHRoZXNlIHZhcmlhYmxlcyBtYXkgYmUKKwlzcGVjaWZpZWQgYXMgaW4gY29sb3IuYnJhbmNoLjxzbG90Pi4KIAogY29sb3IucGFnZXI6OgogCUEgYm9vbGVhbiB0byBlbmFibGUvZGlzYWJsZSBjb2xvcmVkIG91dHB1dCB3aGVuIHRoZSBwYWdlciBpcyBpbgpAQCAtOTE5LDE3ICs5MTIsMjEgQEAKIAlhcyBgY29sb3IuZGlmZmAgYW5kIGBjb2xvci5ncmVwYCB0aGF0IGNvbnRyb2wgdGhlIHVzZSBvZiBjb2xvcgogCXBlciBjb21tYW5kIGZhbWlseS4gSXRzIHNjb3BlIHdpbGwgZXhwYW5kIGFzIG1vcmUgY29tbWFuZHMgbGVhcm4KIAljb25maWd1cmF0aW9uIHRvIHNldCBhIGRlZmF1bHQgZm9yIHRoZSBgLS1jb2xvcmAgb3B0aW9uLiAgU2V0IGl0Ci0JdG8gYGFsd2F5c2AgaWYgeW91IHdhbnQgYWxsIG91dHB1dCBub3QgaW50ZW5kZWQgZm9yIG1hY2hpbmUKLQljb25zdW1wdGlvbiB0byB1c2UgY29sb3IsIHRvIGB0cnVlYCBvciBgYXV0b2AgaWYgeW91IHdhbnQgc3VjaAotCW91dHB1dCB0byB1c2UgY29sb3Igd2hlbiB3cml0dGVuIHRvIHRoZSB0ZXJtaW5hbCwgb3IgdG8gYGZhbHNlYCBvcgotCWBuZXZlcmAgaWYgeW91IHByZWZlciBHaXQgY29tbWFuZHMgbm90IHRvIHVzZSBjb2xvciB1bmxlc3MgZW5hYmxlZAotCWV4cGxpY2l0bHkgd2l0aCBzb21lIG90aGVyIGNvbmZpZ3VyYXRpb24gb3IgdGhlIGAtLWNvbG9yYCBvcHRpb24uCisJdG8gYGZhbHNlYCBvciBgbmV2ZXJgIGlmIHlvdSBwcmVmZXIgR2l0IGNvbW1hbmRzIG5vdCB0byB1c2UKKwljb2xvciB1bmxlc3MgZW5hYmxlZCBleHBsaWNpdGx5IHdpdGggc29tZSBvdGhlciBjb25maWd1cmF0aW9uCisJb3IgdGhlIGAtLWNvbG9yYCBvcHRpb24uIFNldCBpdCB0byBgYWx3YXlzYCBpZiB5b3Ugd2FudCBhbGwKKwlvdXRwdXQgbm90IGludGVuZGVkIGZvciBtYWNoaW5lIGNvbnN1bXB0aW9uIHRvIHVzZSBjb2xvciwgdG8KKwlgdHJ1ZWAgb3IgYGF1dG9gICh0aGlzIGlzIHRoZSBkZWZhdWx0IHNpbmNlIEdpdCAxLjguNCkgaWYgeW91CisJd2FudCBzdWNoIG91dHB1dCB0byB1c2UgY29sb3Igd2hlbiB3cml0dGVuIHRvIHRoZSB0ZXJtaW5hbC4KIAogY29sdW1uLnVpOjoKIAlTcGVjaWZ5IHdoZXRoZXIgc3VwcG9ydGVkIGNvbW1hbmRzIHNob3VsZCBvdXRwdXQgaW4gY29sdW1ucy4KIAlUaGlzIHZhcmlhYmxlIGNvbnNpc3RzIG9mIGEgbGlzdCBvZiB0b2tlbnMgc2VwYXJhdGVkIGJ5IHNwYWNlcwogCW9yIGNvbW1hczoKICsKK1RoZXNlIG9wdGlvbnMgY29udHJvbCB3aGVuIHRoZSBmZWF0dXJlIHNob3VsZCBiZSBlbmFibGVkCisoZGVmYXVsdHMgdG8gJ25ldmVyJyk6CisrCiAtLQogYGFsd2F5c2A7OwogCWFsd2F5cyBzaG93IGluIGNvbHVtbnMKQEAgLTkzNywyNCArOTM0LDM5IEBACiAJbmV2ZXIgc2hvdyBpbiBjb2x1bW5zCiBgYXV0b2A7OwogCXNob3cgaW4gY29sdW1ucyBpZiB0aGUgb3V0cHV0IGlzIHRvIHRoZSB0ZXJtaW5hbAorLS0KKysKK1RoZXNlIG9wdGlvbnMgY29udHJvbCBsYXlvdXQgKGRlZmF1bHRzIHRvICdjb2x1bW4nKS4gIFNldHRpbmcgYW55CitvZiB0aGVzZSBpbXBsaWVzICdhbHdheXMnIGlmIG5vbmUgb2YgJ2Fsd2F5cycsICduZXZlcicsIG9yICdhdXRvJyBhcmUKK3NwZWNpZmllZC4KKysKKy0tCiBgY29sdW1uYDs7Ci0JZmlsbCBjb2x1bW5zIGJlZm9yZSByb3dzIChkZWZhdWx0KQorCWZpbGwgY29sdW1ucyBiZWZvcmUgcm93cwogYHJvd2A7OwogCWZpbGwgcm93cyBiZWZvcmUgY29sdW1ucwogYHBsYWluYDs7CiAJc2hvdyBpbiBvbmUgY29sdW1uCistLQorKworRmluYWxseSwgdGhlc2Ugb3B0aW9ucyBjYW4gYmUgY29tYmluZWQgd2l0aCBhIGxheW91dCBvcHRpb24gKGRlZmF1bHRzCit0byAnbm9kZW5zZScpOgorKworLS0KIGBkZW5zZWA7OwogCW1ha2UgdW5lcXVhbCBzaXplIGNvbHVtbnMgdG8gdXRpbGl6ZSBtb3JlIHNwYWNlCiBgbm9kZW5zZWA7OwogCW1ha2UgZXF1YWwgc2l6ZSBjb2x1bW5zCiAtLQotKwotVGhpcyBvcHRpb24gZGVmYXVsdHMgdG8gJ25ldmVyJy4KIAogY29sdW1uLmJyYW5jaDo6CiAJU3BlY2lmeSB3aGV0aGVyIHRvIG91dHB1dCBicmFuY2ggbGlzdGluZyBpbiBgZ2l0IGJyYW5jaGAgaW4gY29sdW1ucy4KIAlTZWUgYGNvbHVtbi51aWAgZm9yIGRldGFpbHMuCiAKK2NvbHVtbi5jbGVhbjo6CisJU3BlY2lmeSB0aGUgbGF5b3V0IHdoZW4gbGlzdCBpdGVtcyBpbiBgZ2l0IGNsZWFuIC1pYCwgd2hpY2ggYWx3YXlzCisJc2hvd3MgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIGluIGNvbHVtbnMuIFNlZSBgY29sdW1uLnVpYCBmb3IgZGV0YWlscy4KKwogY29sdW1uLnN0YXR1czo6CiAJU3BlY2lmeSB3aGV0aGVyIHRvIG91dHB1dCB1bnRyYWNrZWQgZmlsZXMgaW4gYGdpdCBzdGF0dXNgIGluIGNvbHVtbnMuCiAJU2VlIGBjb2x1bW4udWlgIGZvciBkZXRhaWxzLgpAQCAtMTgyNiwzOSArMTgzOCw1OSBAQAogCVRoZSBkZWZhdWx0IG1lcmdlIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIHB1bGxpbmcgYSBzaW5nbGUgYnJhbmNoLgogCiBwdXNoLmRlZmF1bHQ6OgotCURlZmluZXMgdGhlIGFjdGlvbiBgZ2l0IHB1c2hgIHNob3VsZCB0YWtlIGlmIG5vIHJlZnNwZWMgaXMgZ2l2ZW4KLQlvbiB0aGUgY29tbWFuZCBsaW5lLCBubyByZWZzcGVjIGlzIGNvbmZpZ3VyZWQgaW4gdGhlIHJlbW90ZSwgYW5kCi0Jbm8gcmVmc3BlYyBpcyBpbXBsaWVkIGJ5IGFueSBvZiB0aGUgb3B0aW9ucyBnaXZlbiBvbiB0aGUgY29tbWFuZAotCWxpbmUuIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisJRGVmaW5lcyB0aGUgYWN0aW9uIGBnaXQgcHVzaGAgc2hvdWxkIHRha2UgaWYgbm8gcmVmc3BlYyBpcworCWV4cGxpY2l0bHkgZ2l2ZW4uICBEaWZmZXJlbnQgdmFsdWVzIGFyZSB3ZWxsLXN1aXRlZCBmb3IKKwlzcGVjaWZpYyB3b3JrZmxvd3M7IGZvciBpbnN0YW5jZSwgaW4gYSBwdXJlbHkgY2VudHJhbCB3b3JrZmxvdworCShpLmUuIHRoZSBmZXRjaCBzb3VyY2UgaXMgZXF1YWwgdG8gdGhlIHB1c2ggZGVzdGluYXRpb24pLAorCWB1cHN0cmVhbWAgaXMgcHJvYmFibHkgd2hhdCB5b3Ugd2FudC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6CiArCiAtLQotKiBgbm90aGluZ2AgLSBkbyBub3QgcHVzaCBhbnl0aGluZy4KLSogYG1hdGNoaW5nYCAtIHB1c2ggYWxsIGJyYW5jaGVzIGhhdmluZyB0aGUgc2FtZSBuYW1lIGluIGJvdGggZW5kcy4KLSAgVGhpcyBpcyBmb3IgdGhvc2Ugd2hvIHByZXBhcmUgYWxsIHRoZSBicmFuY2hlcyBpbnRvIGEgcHVibGlzaGFibGUKLSAgc2hhcGUgYW5kIHRoZW4gcHVzaCB0aGVtIG91dCB3aXRoIGEgc2luZ2xlIGNvbW1hbmQuICBJdCBpcyBub3QKLSAgYXBwcm9wcmlhdGUgZm9yIHB1c2hpbmcgaW50byBhIHJlcG9zaXRvcnkgc2hhcmVkIGJ5IG11bHRpcGxlIHVzZXJzLAotICBzaW5jZSBsb2NhbGx5IHN0YWxsZWQgYnJhbmNoZXMgd2lsbCBhdHRlbXB0IGEgbm9uLWZhc3QgZm9yd2FyZCBwdXNoCi0gIGlmIG90aGVyIHVzZXJzIHVwZGF0ZWQgdGhlIGJyYW5jaC4KLSAgKwotICBUaGlzIGlzIGN1cnJlbnRseSB0aGUgZGVmYXVsdCwgYnV0IEdpdCAyLjAgd2lsbCBjaGFuZ2UgdGhlIGRlZmF1bHQKLSAgdG8gYHNpbXBsZWAuCi0qIGB1cHN0cmVhbWAgLSBwdXNoIHRoZSBjdXJyZW50IGJyYW5jaCB0byBpdHMgdXBzdHJlYW0gYnJhbmNoCi0gIChgdHJhY2tpbmdgIGlzIGEgZGVwcmVjYXRlZCBzeW5vbnltIGZvciB0aGlzKS4KLSAgV2l0aCB0aGlzLCBgZ2l0IHB1c2hgIHdpbGwgdXBkYXRlIHRoZSBzYW1lIHJlbW90ZSByZWYgYXMgdGhlIG9uZSB3aGljaAotICBpcyBtZXJnZWQgYnkgYGdpdCBwdWxsYCwgbWFraW5nIGBwdXNoYCBhbmQgYHB1bGxgIHN5bW1ldHJpY2FsLgotICBTZWUgImJyYW5jaC48bmFtZT4ubWVyZ2UiIGZvciBob3cgdG8gY29uZmlndXJlIHRoZSB1cHN0cmVhbSBicmFuY2guCi0qIGBzaW1wbGVgIC0gbGlrZSBgdXBzdHJlYW1gLCBidXQgcmVmdXNlcyB0byBwdXNoIGlmIHRoZSB1cHN0cmVhbQotICBicmFuY2gncyBuYW1lIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBsb2NhbCBvbmUuIFRoaXMgaXMgdGhlIHNhZmVzdAotICBvcHRpb24gYW5kIGlzIHdlbGwtc3VpdGVkIGZvciBiZWdpbm5lcnMuIEl0IHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0Ci0gIGluIEdpdCAyLjAuCi0qIGBjdXJyZW50YCAtIHB1c2ggdGhlIGN1cnJlbnQgYnJhbmNoIHRvIGEgYnJhbmNoIG9mIHRoZSBzYW1lIG5hbWUuCi0tLQorCisqIGBub3RoaW5nYCAtIGRvIG5vdCBwdXNoIGFueXRoaW5nIChlcnJvciBvdXQpIHVubGVzcyBhIHJlZnNwZWMgaXMKKyAgZXhwbGljaXRseSBnaXZlbi4gVGhpcyBpcyBwcmltYXJpbHkgbWVhbnQgZm9yIHBlb3BsZSB3aG8gd2FudCB0bworICBhdm9pZCBtaXN0YWtlcyBieSBhbHdheXMgYmVpbmcgZXhwbGljaXQuCisKKyogYGN1cnJlbnRgIC0gcHVzaCB0aGUgY3VycmVudCBicmFuY2ggdG8gdXBkYXRlIGEgYnJhbmNoIHdpdGggdGhlIHNhbWUKKyAgbmFtZSBvbiB0aGUgcmVjZWl2aW5nIGVuZC4gIFdvcmtzIGluIGJvdGggY2VudHJhbCBhbmQgbm9uLWNlbnRyYWwKKyAgd29ya2Zsb3dzLgorCisqIGB1cHN0cmVhbWAgLSBwdXNoIHRoZSBjdXJyZW50IGJyYW5jaCBiYWNrIHRvIHRoZSBicmFuY2ggd2hvc2UKKyAgY2hhbmdlcyBhcmUgdXN1YWxseSBpbnRlZ3JhdGVkIGludG8gdGhlIGN1cnJlbnQgYnJhbmNoICh3aGljaCBpcworICBjYWxsZWQgYEB7dXBzdHJlYW19YCkuICBUaGlzIG1vZGUgb25seSBtYWtlcyBzZW5zZSBpZiB5b3UgYXJlCisgIHB1c2hpbmcgdG8gdGhlIHNhbWUgcmVwb3NpdG9yeSB5b3Ugd291bGQgbm9ybWFsbHkgcHVsbCBmcm9tCisgIChpLmUuIGNlbnRyYWwgd29ya2Zsb3cpLgorCisqIGBzaW1wbGVgIC0gaW4gY2VudHJhbGl6ZWQgd29ya2Zsb3csIHdvcmsgbGlrZSBgdXBzdHJlYW1gIHdpdGggYW4KKyAgYWRkZWQgc2FmZXR5IHRvIHJlZnVzZSB0byBwdXNoIGlmIHRoZSB1cHN0cmVhbSBicmFuY2gncyBuYW1lIGlzCisgIGRpZmZlcmVudCBmcm9tIHRoZSBsb2NhbCBvbmUuCiArCi1UaGUgYHNpbXBsZWAsIGBjdXJyZW50YCBhbmQgYHVwc3RyZWFtYCBtb2RlcyBhcmUgZm9yIHRob3NlIHdobyB3YW50IHRvCi1wdXNoIG91dCBhIHNpbmdsZSBicmFuY2ggYWZ0ZXIgZmluaXNoaW5nIHdvcmssIGV2ZW4gd2hlbiB0aGUgb3RoZXIKLWJyYW5jaGVzIGFyZSBub3QgeWV0IHJlYWR5IHRvIGJlIHB1c2hlZCBvdXQuIElmIHlvdSBhcmUgd29ya2luZyB3aXRoCi1vdGhlciBwZW9wbGUgdG8gcHVzaCBpbnRvIHRoZSBzYW1lIHNoYXJlZCByZXBvc2l0b3J5LCB5b3Ugd291bGQgd2FudAotdG8gdXNlIG9uZSBvZiB0aGVzZS4KK1doZW4gcHVzaGluZyB0byBhIHJlbW90ZSB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZW1vdGUgeW91IG5vcm1hbGx5CitwdWxsIGZyb20sIHdvcmsgYXMgYGN1cnJlbnRgLiAgVGhpcyBpcyB0aGUgc2FmZXN0IG9wdGlvbiBhbmQgaXMgc3VpdGVkCitmb3IgYmVnaW5uZXJzLgorKworVGhpcyBtb2RlIHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IGluIEdpdCAyLjAuCisKKyogYG1hdGNoaW5nYCAtIHB1c2ggYWxsIGJyYW5jaGVzIGhhdmluZyB0aGUgc2FtZSBuYW1lIG9uIGJvdGggZW5kcy4KKyAgVGhpcyBtYWtlcyB0aGUgcmVwb3NpdG9yeSB5b3UgYXJlIHB1c2hpbmcgdG8gcmVtZW1iZXIgdGhlIHNldCBvZgorICBicmFuY2hlcyB0aGF0IHdpbGwgYmUgcHVzaGVkIG91dCAoZS5nLiBpZiB5b3UgYWx3YXlzIHB1c2ggJ21haW50JworICBhbmQgJ21hc3RlcicgdGhlcmUgYW5kIG5vIG90aGVyIGJyYW5jaGVzLCB0aGUgcmVwb3NpdG9yeSB5b3UgcHVzaAorICB0byB3aWxsIGhhdmUgdGhlc2UgdHdvIGJyYW5jaGVzLCBhbmQgeW91ciBsb2NhbCAnbWFpbnQnIGFuZAorICAnbWFzdGVyJyB3aWxsIGJlIHB1c2hlZCB0aGVyZSkuCisrCitUbyB1c2UgdGhpcyBtb2RlIGVmZmVjdGl2ZWx5LCB5b3UgaGF2ZSB0byBtYWtlIHN1cmUgX2FsbF8gdGhlCiticmFuY2hlcyB5b3Ugd291bGQgcHVzaCBvdXQgYXJlIHJlYWR5IHRvIGJlIHB1c2hlZCBvdXQgYmVmb3JlCitydW5uaW5nICdnaXQgcHVzaCcsIGFzIHRoZSB3aG9sZSBwb2ludCBvZiB0aGlzIG1vZGUgaXMgdG8gYWxsb3cgeW91Cit0byBwdXNoIGFsbCBvZiB0aGUgYnJhbmNoZXMgaW4gb25lIGdvLiAgSWYgeW91IHVzdWFsbHkgZmluaXNoIHdvcmsKK29uIG9ubHkgb25lIGJyYW5jaCBhbmQgcHVzaCBvdXQgdGhlIHJlc3VsdCwgd2hpbGUgb3RoZXIgYnJhbmNoZXMgYXJlCit1bmZpbmlzaGVkLCB0aGlzIG1vZGUgaXMgbm90IGZvciB5b3UuICBBbHNvIHRoaXMgbW9kZSBpcyBub3QKK3N1aXRhYmxlIGZvciBwdXNoaW5nIGludG8gYSBzaGFyZWQgY2VudHJhbCByZXBvc2l0b3J5LCBhcyBvdGhlcgorcGVvcGxlIG1heSBhZGQgbmV3IGJyYW5jaGVzIHRoZXJlLCBvciB1cGRhdGUgdGhlIHRpcCBvZiBleGlzdGluZworYnJhbmNoZXMgb3V0c2lkZSB5b3VyIGNvbnRyb2wuCisrCitUaGlzIGlzIGN1cnJlbnRseSB0aGUgZGVmYXVsdCwgYnV0IEdpdCAyLjAgd2lsbCBjaGFuZ2UgdGhlIGRlZmF1bHQKK3RvIGBzaW1wbGVgLgorCistLQogCiByZWJhc2Uuc3RhdDo6CiAJV2hldGhlciB0byBzaG93IGEgZGlmZnN0YXQgb2Ygd2hhdCBjaGFuZ2VkIHVwc3RyZWFtIHNpbmNlIHRoZSBsYXN0CkBAIC0xODY3LDYgKzE4OTksMTQgQEAKIHJlYmFzZS5hdXRvc3F1YXNoOjoKIAlJZiBzZXQgdG8gdHJ1ZSBlbmFibGUgJy0tYXV0b3NxdWFzaCcgb3B0aW9uIGJ5IGRlZmF1bHQuCiAKK3JlYmFzZS5hdXRvc3Rhc2g6OgorCVdoZW4gc2V0IHRvIHRydWUsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgdGVtcG9yYXJ5IHN0YXNoCisJYmVmb3JlIHRoZSBvcGVyYXRpb24gYmVnaW5zLCBhbmQgYXBwbHkgaXQgYWZ0ZXIgdGhlIG9wZXJhdGlvbgorCWVuZHMuICBUaGlzIG1lYW5zIHRoYXQgeW91IGNhbiBydW4gcmViYXNlIG9uIGEgZGlydHkgd29ya3RyZWUuCisJSG93ZXZlciwgdXNlIHdpdGggY2FyZTogdGhlIGZpbmFsIHN0YXNoIGFwcGxpY2F0aW9uIGFmdGVyIGEKKwlzdWNjZXNzZnVsIHJlYmFzZSBtaWdodCByZXN1bHQgaW4gbm9uLXRyaXZpYWwgY29uZmxpY3RzLgorCURlZmF1bHRzIHRvIGZhbHNlLgorCiByZWNlaXZlLmF1dG9nYzo6CiAJQnkgZGVmYXVsdCwgZ2l0LXJlY2VpdmUtcGFjayB3aWxsIHJ1biAiZ2l0LWdjIC0tYXV0byIgYWZ0ZXIKIAlyZWNlaXZpbmcgZGF0YSBmcm9tIGdpdC1wdXNoIGFuZCB1cGRhdGluZyByZWZzLiAgWW91IGNhbiBzdG9wCkBAIC0yMDIyLDYgKzIwNjIsMTAgQEAKIHNlbmRlbWFpbC5zbXRwc3NsOjoKIAlEZXByZWNhdGVkIGFsaWFzIGZvciAnc2VuZGVtYWlsLnNtdHBlbmNyeXB0aW9uID0gc3NsJy4KIAorc2VuZGVtYWlsLnNtdHBzc2xjZXJ0cGF0aDo6CisJUGF0aCB0byBjYS1jZXJ0aWZpY2F0ZXMgKGVpdGhlciBhIGRpcmVjdG9yeSBvciBhIHNpbmdsZSBmaWxlKS4KKwlTZXQgaXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uLgorCiBzZW5kZW1haWwuPGlkZW50aXR5Pi4qOjoKIAlJZGVudGl0eS1zcGVjaWZpYyB2ZXJzaW9ucyBvZiB0aGUgJ3NlbmRlbWFpbC4qJyBwYXJhbWV0ZXJzCiAJZm91bmQgYmVsb3csIHRha2luZyBwcmVjZWRlbmNlIG92ZXIgdGhvc2Ugd2hlbiB0aGUgdGhpcwpAQCAtMjA2Niw2ICsyMTEwLDE0IEBACiAJcmVsYXRpdmUgdG8gdGhlIHJlcG9zaXRvcnkgcm9vdCAodGhpcyB3YXMgdGhlIGRlZmF1bHQgZm9yIEdpdAogCXByaW9yIHRvIHYxLjUuNCkuCiAKK3N0YXR1cy5zaG9ydDo6CisJU2V0IHRvIHRydWUgdG8gZW5hYmxlIC0tc2hvcnQgYnkgZGVmYXVsdCBpbiBsaW5rZ2l0OmdpdC1zdGF0dXNbMV0uCisJVGhlIG9wdGlvbiAtLW5vLXNob3J0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGlzIHZhcmlhYmxlLgorCitzdGF0dXMuYnJhbmNoOjoKKwlTZXQgdG8gdHJ1ZSB0byBlbmFibGUgLS1icmFuY2ggYnkgZGVmYXVsdCBpbiBsaW5rZ2l0OmdpdC1zdGF0dXNbMV0uCisJVGhlIG9wdGlvbiAtLW5vLWJyYW5jaCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhpcyB2YXJpYWJsZS4KKwogc3RhdHVzLnNob3dVbnRyYWNrZWRGaWxlczo6CiAJQnkgZGVmYXVsdCwgbGlua2dpdDpnaXQtc3RhdHVzWzFdIGFuZCBsaW5rZ2l0OmdpdC1jb21taXRbMV0gc2hvdwogCWZpbGVzIHdoaWNoIGFyZSBub3QgY3VycmVudGx5IHRyYWNrZWQgYnkgR2l0LiBEaXJlY3RvcmllcyB3aGljaApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kaWZmLW9wdGlvbnMudHh0IGIvRG9jdW1lbnRhdGlvbi9kaWZmLW9wdGlvbnMudHh0CmluZGV4IDEwNDU3OWQuLmJiZWQyY2QgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGlmZi1vcHRpb25zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RpZmYtb3B0aW9ucy50eHQKQEAgLTI2LDYgKzI2LDExIEBACiAJe2dpdC1kaWZmPyBUaGlzIGlzIHRoZSBkZWZhdWx0Ln0KIGVuZGlmOjpnaXQtZm9ybWF0LXBhdGNoW10KIAorLXM6OgorLS1uby1wYXRjaDo6CisJU3VwcHJlc3MgZGlmZiBvdXRwdXQuIFVzZWZ1bCBmb3IgY29tbWFuZHMgbGlrZSBgZ2l0IHNob3dgIHRoYXQKKwlzaG93IHRoZSBwYXRjaCBieSBkZWZhdWx0LCBvciB0byBjYW5jZWwgdGhlIGVmZmVjdCBvZiBgLS1wYXRjaGAuCisKIC1VPG4+OjoKIC0tdW5pZmllZD08bj46OgogCUdlbmVyYXRlIGRpZmZzIHdpdGggPG4+IGxpbmVzIG9mIGNvbnRleHQgaW5zdGVhZCBvZgpAQCAtMzMzLDcgKzMzOCw3IEBACiAJYSBmcmFjdGlvbiwgd2l0aCBhIGRlY2ltYWwgcG9pbnQgYmVmb3JlIGl0LiAgSS5lLiwgYC1NNWAgYmVjb21lcwogCTAuNSwgYW5kIGlzIHRodXMgdGhlIHNhbWUgYXMgYC1NNTAlYC4gIFNpbWlsYXJseSwgYC1NMDVgIGlzCiAJdGhlIHNhbWUgYXMgYC1NNSVgLiAgVG8gbGltaXQgZGV0ZWN0aW9uIHRvIGV4YWN0IHJlbmFtZXMsIHVzZQotCWAtTTEwMCVgLgorCWAtTTEwMCVgLiAgVGhlIGRlZmF1bHQgc2ltaWxhcml0eSBpbmRleCBpcyA1MCUuCiAKIC1DWzxuPl06OgogLS1maW5kLWNvcGllc1s9PG4+XTo6CkBAIC0zODMsMTQgKzM4OCwzNiBAQAogCXRoYXQgbWF0Y2hlcyBvdGhlciBjcml0ZXJpYSwgbm90aGluZyBpcyBzZWxlY3RlZC4KIAogLVM8c3RyaW5nPjo6Ci0JTG9vayBmb3IgZGlmZmVyZW5jZXMgdGhhdCBpbnRyb2R1Y2Ugb3IgcmVtb3ZlIGFuIGluc3RhbmNlIG9mCi0JPHN0cmluZz4uIE5vdGUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCB0aGFuIHRoZSBzdHJpbmcgc2ltcGx5Ci0JYXBwZWFyaW5nIGluIGRpZmYgb3V0cHV0OyBzZWUgdGhlICdwaWNrYXhlJyBlbnRyeSBpbgotCWxpbmtnaXQ6Z2l0ZGlmZmNvcmVbN10gZm9yIG1vcmUgZGV0YWlscy4KKwlMb29rIGZvciBkaWZmZXJlbmNlcyB0aGF0IGNoYW5nZSB0aGUgbnVtYmVyIG9mIG9jY3VycmVuY2VzIG9mCisJdGhlIHNwZWNpZmllZCBzdHJpbmcgKGkuZS4gYWRkaXRpb24vZGVsZXRpb24pIGluIGEgZmlsZS4KKwlJbnRlbmRlZCBmb3IgdGhlIHNjcmlwdGVyJ3MgdXNlLgorKworSXQgaXMgdXNlZnVsIHdoZW4geW91J3JlIGxvb2tpbmcgZm9yIGFuIGV4YWN0IGJsb2NrIG9mIGNvZGUgKGxpa2UgYQorc3RydWN0KSwgYW5kIHdhbnQgdG8ga25vdyB0aGUgaGlzdG9yeSBvZiB0aGF0IGJsb2NrIHNpbmNlIGl0IGZpcnN0CitjYW1lIGludG8gYmVpbmc6IHVzZSB0aGUgZmVhdHVyZSBpdGVyYXRpdmVseSB0byBmZWVkIHRoZSBpbnRlcmVzdGluZworYmxvY2sgaW4gdGhlIHByZWltYWdlIGJhY2sgaW50byBgLVNgLCBhbmQga2VlcCBnb2luZyB1bnRpbCB5b3UgZ2V0IHRoZQordmVyeSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBibG9jay4KIAogLUc8cmVnZXg+OjoKLQlMb29rIGZvciBkaWZmZXJlbmNlcyB3aG9zZSBhZGRlZCBvciByZW1vdmVkIGxpbmUgbWF0Y2hlcwotCXRoZSBnaXZlbiA8cmVnZXg+LgorCUxvb2sgZm9yIGRpZmZlcmVuY2VzIHdob3NlIHBhdGNoIHRleHQgY29udGFpbnMgYWRkZWQvcmVtb3ZlZAorCWxpbmVzIHRoYXQgbWF0Y2ggPHJlZ2V4Pi4KKysKK1RvIGlsbHVzdHJhdGUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBgLVM8cmVnZXg+IC0tcGlja2F4ZS1yZWdleGAgYW5kCitgLUc8cmVnZXg+YCwgY29uc2lkZXIgYSBjb21taXQgd2l0aCB0aGUgZm9sbG93aW5nIGRpZmYgaW4gdGhlIHNhbWUKK2ZpbGU6CisrCistLS0tCisrICAgIHJldHVybiAhcmVnZXhlYyhyZWdleHAsIHR3by0+cHRyLCAxLCAmcmVnbWF0Y2gsIDApOworLi4uCistICAgIGhpdCA9ICFyZWdleGVjKHJlZ2V4cCwgbWYyLnB0ciwgMSwgJnJlZ21hdGNoLCAwKTsKKy0tLS0KKysKK1doaWxlIGBnaXQgbG9nIC1HInJlZ2V4ZWNcKHJlZ2V4cCJgIHdpbGwgc2hvdyB0aGlzIGNvbW1pdCwgYGdpdCBsb2cKKy1TInJlZ2V4ZWNcKHJlZ2V4cCIgLS1waWNrYXhlLXJlZ2V4YCB3aWxsIG5vdCAoYmVjYXVzZSB0aGUgbnVtYmVyIG9mCitvY2N1cnJlbmNlcyBvZiB0aGF0IHN0cmluZyBkaWQgbm90IGNoYW5nZSkuCisrCitTZWUgdGhlICdwaWNrYXhlJyBlbnRyeSBpbiBsaW5rZ2l0OmdpdGRpZmZjb3JlWzddIGZvciBtb3JlCitpbmZvcm1hdGlvbi4KIAogLS1waWNrYXhlLWFsbDo6CiAJV2hlbiBgLVNgIG9yIGAtR2AgZmluZHMgYSBjaGFuZ2UsIHNob3cgYWxsIHRoZSBjaGFuZ2VzIGluIHRoYXQKQEAgLTM5OCw4ICs0MjUsOCBAQAogCWluIDxzdHJpbmc+LgogCiAtLXBpY2theGUtcmVnZXg6OgotCU1ha2UgdGhlIDxzdHJpbmc+IG5vdCBhIHBsYWluIHN0cmluZyBidXQgYW4gZXh0ZW5kZWQgUE9TSVgKLQlyZWdleCB0byBtYXRjaC4KKwlUcmVhdCB0aGUgPHN0cmluZz4gZ2l2ZW4gdG8gYC1TYCBhcyBhbiBleHRlbmRlZCBQT1NJWCByZWd1bGFyCisJZXhwcmVzc2lvbiB0byBtYXRjaC4KIGVuZGlmOjpnaXQtZm9ybWF0LXBhdGNoW10KIAogLU88b3JkZXJmaWxlPjo6CkBAIC00MzksNiArNDY2LDkgQEAKIAlkaWZmZXJlbmNlcyBldmVuIGlmIG9uZSBsaW5lIGhhcyB3aGl0ZXNwYWNlIHdoZXJlIHRoZSBvdGhlcgogCWxpbmUgaGFzIG5vbmUuCiAKKy0taWdub3JlLWJsYW5rLWxpbmVzOjoKKwlJZ25vcmUgY2hhbmdlcyB3aG9zZSBsaW5lcyBhcmUgYWxsIGJsYW5rLgorCiAtLWludGVyLWh1bmstY29udGV4dD08bGluZXM+OjoKIAlTaG93IHRoZSBjb250ZXh0IGJldHdlZW4gZGlmZiBodW5rcywgdXAgdG8gdGhlIHNwZWNpZmllZCBudW1iZXIKIAlvZiBsaW5lcywgdGhlcmVieSBmdXNpbmcgaHVua3MgdGhhdCBhcmUgY2xvc2UgdG8gZWFjaCBvdGhlci4KQEAgLTQ4MCw3ICs1MTAsNyBAQAogCiAtLWlnbm9yZS1zdWJtb2R1bGVzWz08d2hlbj5dOjoKIAlJZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzIGluIHRoZSBkaWZmIGdlbmVyYXRpb24uIDx3aGVuPiBjYW4gYmUKLQllaXRoZXIgIm5vbmUiLCAidW50cmFja2VkIiwgImRpcnR5IiBvciAiYWxsIiwgd2hpY2ggaXMgdGhlIGRlZmF1bHQKKwllaXRoZXIgIm5vbmUiLCAidW50cmFja2VkIiwgImRpcnR5IiBvciAiYWxsIiwgd2hpY2ggaXMgdGhlIGRlZmF1bHQuCiAJVXNpbmcgIm5vbmUiIHdpbGwgY29uc2lkZXIgdGhlIHN1Ym1vZHVsZSBtb2RpZmllZCB3aGVuIGl0IGVpdGhlciBjb250YWlucwogCXVudHJhY2tlZCBvciBtb2RpZmllZCBmaWxlcyBvciBpdHMgSEVBRCBkaWZmZXJzIGZyb20gdGhlIGNvbW1pdCByZWNvcmRlZAogCWluIHRoZSBzdXBlcnByb2plY3QgYW5kIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIGFueSBzZXR0aW5ncyBvZiB0aGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmV0Y2gtb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL2ZldGNoLW9wdGlvbnMudHh0CmluZGV4IDljYjY0OTYuLmJhMWZlNDkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZmV0Y2gtb3B0aW9ucy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9mZXRjaC1vcHRpb25zLnR4dApAQCAtNjEsNyArNjEsNyBAQAogaWZuZGVmOjpnaXQtcHVsbFtdCiAtdDo6CiAtLXRhZ3M6OgotCVRoaXMgaXMgYSBzaG9ydC1oYW5kIGZvciBnaXZpbmcgInJlZnMvdGFncy8qOnJlZnMvdGFncy8qIgorCVRoaXMgaXMgYSBzaG9ydC1oYW5kIGZvciBnaXZpbmcgYHJlZnMvdGFncy8qOnJlZnMvdGFncy8qYAogCXJlZnNwZWMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCB0byBhc2sgYWxsIHRhZ3MgdG8gYmUgZmV0Y2hlZAogCWFuZCBzdG9yZWQgbG9jYWxseS4gIEJlY2F1c2UgdGhpcyBhY3RzIGFzIGFuIGV4cGxpY2l0CiAJcmVmc3BlYywgdGhlIGRlZmF1bHQgcmVmc3BlY3MgKGNvbmZpZ3VyZWQgd2l0aCB0aGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWFtLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWFtLnR4dAppbmRleCA1YmJlN2I2Li41NGQ4NDYxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1hbS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtYW0udHh0CkBAIC0xMzIsNyArMTMyLDcgQEAKIC0tcmVzb2x2ZW1zZz08bXNnPjo6CiAJV2hlbiBhIHBhdGNoIGZhaWx1cmUgb2NjdXJzLCA8bXNnPiB3aWxsIGJlIHByaW50ZWQKIAl0byB0aGUgc2NyZWVuIGJlZm9yZSBleGl0aW5nLiAgVGhpcyBvdmVycmlkZXMgdGhlCi0Jc3RhbmRhcmQgbWVzc2FnZSBpbmZvcm1pbmcgeW91IHRvIHVzZSBgLS1yZXNvbHZlZGAKKwlzdGFuZGFyZCBtZXNzYWdlIGluZm9ybWluZyB5b3UgdG8gdXNlIGAtLWNvbnRpbnVlYAogCW9yIGAtLXNraXBgIHRvIGhhbmRsZSB0aGUgZmFpbHVyZS4gIFRoaXMgaXMgc29sZWx5CiAJZm9yIGludGVybmFsIHVzZSBiZXR3ZWVuICdnaXQgcmViYXNlJyBhbmQgJ2dpdCBhbScuCiAKQEAgLTE3Niw3ICsxNzYsNyBAQAogCiAuIGhhbmQgcmVzb2x2ZSB0aGUgY29uZmxpY3QgaW4gdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBhbmQgdXBkYXRlCiAgIHRoZSBpbmRleCBmaWxlIHRvIGJyaW5nIGl0IGludG8gYSBzdGF0ZSB0aGF0IHRoZSBwYXRjaCBzaG91bGQKLSAgaGF2ZSBwcm9kdWNlZC4gIFRoZW4gcnVuIHRoZSBjb21tYW5kIHdpdGggdGhlICctLXJlc29sdmVkJyBvcHRpb24uCisgIGhhdmUgcHJvZHVjZWQuICBUaGVuIHJ1biB0aGUgY29tbWFuZCB3aXRoIHRoZSAnLS1jb250aW51ZScgb3B0aW9uLgogCiBUaGUgY29tbWFuZCByZWZ1c2VzIHRvIHByb2Nlc3MgbmV3IG1haWxib3hlcyB1bnRpbCB0aGUgY3VycmVudAogb3BlcmF0aW9uIGlzIGZpbmlzaGVkLCBzbyBpZiB5b3UgZGVjaWRlIHRvIHN0YXJ0IG92ZXIgZnJvbSBzY3JhdGNoLApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtYmlzZWN0LWxrMjAwOS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1iaXNlY3QtbGsyMDA5LnR4dAppbmRleCAwZWVkM2UzLi5hZmViODZjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1iaXNlY3QtbGsyMDA5LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1iaXNlY3QtbGsyMDA5LnR4dApAQCAtMTMyMCw3ICsxMzIwLDcgQEAKIDstKQogX19fX19fX19fX19fXwogCi1BY2tub3dsZWRnZW1lbnRzCitBY2tub3dsZWRnbWVudHMKIC0tLS0tLS0tLS0tLS0tLS0KIAogTWFueSB0aGFua3MgdG8gSnVuaW8gSGFtYW5vIGZvciBoaXMgaGVscCBpbiByZXZpZXdpbmcgdGhpcyBwYXBlciwgZm9yCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1ibGFtZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1ibGFtZS50eHQKaW5kZXggOWEwNWMyYi4uNmNlYTdmMSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtYmxhbWUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWJsYW1lLnR4dApAQCAtOCw5ICs4LDkgQEAKIFNZTk9QU0lTCiAtLS0tLS0tLQogW3ZlcnNlXQotJ2dpdCBibGFtZScgWy1jXSBbLWJdIFstbF0gWy0tcm9vdF0gWy10XSBbLWZdIFstbl0gWy1zXSBbLWVdIFstcF0gWy13XSBbLS1pbmNyZW1lbnRhbF0gWy1MIG4sbV0KLQkgICAgWy1TIDxyZXZzLWZpbGU+XSBbLU1dIFstQ10gWy1DXSBbLUNdIFstLXNpbmNlPTxkYXRlPl0gWy0tYWJicmV2PTxuPl0KLQkgICAgWzxyZXY+IHwgLS1jb250ZW50cyA8ZmlsZT4gfCAtLXJldmVyc2UgPHJldj5dIFstLV0gPGZpbGU+CisnZ2l0IGJsYW1lJyBbLWNdIFstYl0gWy1sXSBbLS1yb290XSBbLXRdIFstZl0gWy1uXSBbLXNdIFstZV0gWy1wXSBbLXddIFstLWluY3JlbWVudGFsXQorCSAgICBbLUwgbixtIHwgLUwgOmZuXSBbLVMgPHJldnMtZmlsZT5dIFstTV0gWy1DXSBbLUNdIFstQ10gWy0tc2luY2U9PGRhdGU+XQorCSAgICBbLS1hYmJyZXY9PG4+XSBbPHJldj4gfCAtLWNvbnRlbnRzIDxmaWxlPiB8IC0tcmV2ZXJzZSA8cmV2Pl0gWy0tXSA8ZmlsZT4KIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jYXQtZmlsZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jYXQtZmlsZS50eHQKaW5kZXggMzBkNTg1YS4uMTBmYmM2YSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtY2F0LWZpbGUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNhdC1maWxlLnR4dApAQCAtNTgsMTIgKzU4LDE2IEBACiAJdG8gYXBwbHkgdGhlIGZpbHRlciB0byB0aGUgY29udGVudCByZWNvcmRlZCBpbiB0aGUgaW5kZXggYXQgPHBhdGg+LgogCiAtLWJhdGNoOjoKLQlQcmludCB0aGUgU0hBLTEsIHR5cGUsIHNpemUsIGFuZCBjb250ZW50cyBvZiBlYWNoIG9iamVjdCBwcm92aWRlZCBvbgotCXN0ZGluLiBNYXkgbm90IGJlIGNvbWJpbmVkIHdpdGggYW55IG90aGVyIG9wdGlvbnMgb3IgYXJndW1lbnRzLgorLS1iYXRjaD08Zm9ybWF0Pjo6CisJUHJpbnQgb2JqZWN0IGluZm9ybWF0aW9uIGFuZCBjb250ZW50cyBmb3IgZWFjaCBvYmplY3QgcHJvdmlkZWQKKwlvbiBzdGRpbi4gIE1heSBub3QgYmUgY29tYmluZWQgd2l0aCBhbnkgb3RoZXIgb3B0aW9ucyBvciBhcmd1bWVudHMuCisJU2VlIHRoZSBzZWN0aW9uIGBCQVRDSCBPVVRQVVRgIGJlbG93IGZvciBkZXRhaWxzLgogCiAtLWJhdGNoLWNoZWNrOjoKLQlQcmludCB0aGUgU0hBLTEsIHR5cGUsIGFuZCBzaXplIG9mIGVhY2ggb2JqZWN0IHByb3ZpZGVkIG9uIHN0ZGluLiBNYXkgbm90Ci0JYmUgY29tYmluZWQgd2l0aCBhbnkgb3RoZXIgb3B0aW9ucyBvciBhcmd1bWVudHMuCistLWJhdGNoLWNoZWNrPTxmb3JtYXQ+OjoKKwlQcmludCBvYmplY3QgaW5mb3JtYXRpb24gZm9yIGVhY2ggb2JqZWN0IHByb3ZpZGVkIG9uIHN0ZGluLiAgTWF5CisJbm90IGJlIGNvbWJpbmVkIHdpdGggYW55IG90aGVyIG9wdGlvbnMgb3IgYXJndW1lbnRzLiAgU2VlIHRoZQorCXNlY3Rpb24gYEJBVENIIE9VVFBVVGAgYmVsb3cgZm9yIGRldGFpbHMuCiAKIE9VVFBVVAogLS0tLS0tCkBAIC03OCwyOCArODIsNzUgQEAKIElmIDx0eXBlPiBpcyBzcGVjaWZpZWQsIHRoZSByYXcgKHRob3VnaCB1bmNvbXByZXNzZWQpIGNvbnRlbnRzIG9mIHRoZSA8b2JqZWN0Pgogd2lsbCBiZSByZXR1cm5lZC4KIAotSWYgJy0tYmF0Y2gnIGlzIHNwZWNpZmllZCwgb3V0cHV0IG9mIHRoZSBmb2xsb3dpbmcgZm9ybSBpcyBwcmludGVkIGZvciBlYWNoCi1vYmplY3Qgc3BlY2lmaWVkIG9uIHN0ZGluOgorQkFUQ0ggT1VUUFVUCistLS0tLS0tLS0tLS0KKworSWYgYC0tYmF0Y2hgIG9yIGAtLWJhdGNoLWNoZWNrYCBpcyBnaXZlbiwgYGNhdC1maWxlYCB3aWxsIHJlYWQgb2JqZWN0cworZnJvbSBzdGRpbiwgb25lIHBlciBsaW5lLCBhbmQgcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlbS4KKworRWFjaCBsaW5lIGlzIGNvbnNpZGVyZWQgYXMgYSB3aG9sZSBvYmplY3QgbmFtZSwgYW5kIGlzIHBhcnNlZCBhcyBpZgorZ2l2ZW4gdG8gbGlua2dpdDpnaXQtcmV2LXBhcnNlWzFdLgorCitZb3UgY2FuIHNwZWNpZnkgdGhlIGluZm9ybWF0aW9uIHNob3duIGZvciBlYWNoIG9iamVjdCBieSB1c2luZyBhIGN1c3RvbQorYDxmb3JtYXQ+YC4gVGhlIGA8Zm9ybWF0PmAgaXMgY29waWVkIGxpdGVyYWxseSB0byBzdGRvdXQgZm9yIGVhY2gKK29iamVjdCwgd2l0aCBwbGFjZWhvbGRlcnMgb2YgdGhlIGZvcm0gYCUoYXRvbSlgIGV4cGFuZGVkLCBmb2xsb3dlZCBieSBhCituZXdsaW5lLiBUaGUgYXZhaWxhYmxlIGF0b21zIGFyZToKKworYG9iamVjdG5hbWVgOjoKKwlUaGUgNDAtaGV4IG9iamVjdCBuYW1lIG9mIHRoZSBvYmplY3QuCisKK2BvYmplY3R0eXBlYDo6CisJVGhlIHR5cGUgb2Ygb2YgdGhlIG9iamVjdCAodGhlIHNhbWUgYXMgYGNhdC1maWxlIC10YCByZXBvcnRzKS4KKworYG9iamVjdHNpemVgOjoKKwlUaGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoZSBvYmplY3QgKHRoZSBzYW1lIGFzIGBjYXQtZmlsZSAtc2AKKwlyZXBvcnRzKS4KKworYG9iamVjdHNpemU6ZGlza2A6OgorCVRoZSBzaXplLCBpbiBieXRlcywgdGhhdCB0aGUgb2JqZWN0IHRha2VzIHVwIG9uIGRpc2suIFNlZSB0aGUKKwlub3RlIGFib3V0IG9uLWRpc2sgc2l6ZXMgaW4gdGhlIGBDQVZFQVRTYCBzZWN0aW9uIGJlbG93LgorCitJZiBubyBmb3JtYXQgaXMgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBmb3JtYXQgaXMgYCUob2JqZWN0bmFtZSkKKyUob2JqZWN0dHlwZSkgJShvYmplY3RzaXplKWAuCisKK0lmIGAtLWJhdGNoYCBpcyBzcGVjaWZpZWQsIHRoZSBvYmplY3QgaW5mb3JtYXRpb24gaXMgZm9sbG93ZWQgYnkgdGhlCitvYmplY3QgY29udGVudHMgKGNvbnNpc3Rpbmcgb2YgYCUob2JqZWN0c2l6ZSlgIGJ5dGVzKSwgZm9sbG93ZWQgYnkgYQorbmV3bGluZS4KKworRm9yIGV4YW1wbGUsIGAtLWJhdGNoYCB3aXRob3V0IGEgY3VzdG9tIGZvcm1hdCB3b3VsZCBwcm9kdWNlOgogCiAtLS0tLS0tLS0tLS0KIDxzaGExPiBTUCA8dHlwZT4gU1AgPHNpemU+IExGCiA8Y29udGVudHM+IExGCiAtLS0tLS0tLS0tLS0KIAotSWYgJy0tYmF0Y2gtY2hlY2snIGlzIHNwZWNpZmllZCwgb3V0cHV0IG9mIHRoZSBmb2xsb3dpbmcgZm9ybSBpcyBwcmludGVkIGZvcgotZWFjaCBvYmplY3Qgc3BlY2lmaWVkIG9uIHN0ZGluOgorV2hlcmVhcyBgLS1iYXRjaC1jaGVjaz0nJShvYmplY3RuYW1lKSAlKG9iamVjdHR5cGUpJ2Agd291bGQgcHJvZHVjZToKIAogLS0tLS0tLS0tLS0tCi08c2hhMT4gU1AgPHR5cGU+IFNQIDxzaXplPiBMRgorPHNoYTE+IFNQIDx0eXBlPiBMRgogLS0tLS0tLS0tLS0tCiAKLUZvciBib3RoICctLWJhdGNoJyBhbmQgJy0tYmF0Y2gtY2hlY2snLCBvdXRwdXQgb2YgdGhlIGZvbGxvd2luZyBmb3JtIGlzIHByaW50ZWQKLWZvciBlYWNoIG9iamVjdCBzcGVjaWZpZWQgb24gc3RkaW4gdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgcmVwb3NpdG9yeToKK0lmIGEgbmFtZSBpcyBzcGVjaWZpZWQgb24gc3RkaW4gdGhhdCBjYW5ub3QgYmUgcmVzb2x2ZWQgdG8gYW4gb2JqZWN0IGluCit0aGUgcmVwb3NpdG9yeSwgdGhlbiBgY2F0LWZpbGVgIHdpbGwgaWdub3JlIGFueSBjdXN0b20gZm9ybWF0IGFuZCBwcmludDoKIAogLS0tLS0tLS0tLS0tCiA8b2JqZWN0PiBTUCBtaXNzaW5nIExGCiAtLS0tLS0tLS0tLS0KIAorCitDQVZFQVRTCistLS0tLS0tCisKK05vdGUgdGhhdCB0aGUgc2l6ZXMgb2Ygb2JqZWN0cyBvbiBkaXNrIGFyZSByZXBvcnRlZCBhY2N1cmF0ZWx5LCBidXQgY2FyZQorc2hvdWxkIGJlIHRha2VuIGluIGRyYXdpbmcgY29uY2x1c2lvbnMgYWJvdXQgd2hpY2ggcmVmcyBvciBvYmplY3RzIGFyZQorcmVzcG9uc2libGUgZm9yIGRpc2sgdXNhZ2UuIFRoZSBzaXplIG9mIGEgcGFja2VkIG5vbi1kZWx0YSBvYmplY3QgbWF5IGJlCittdWNoIGxhcmdlciB0aGFuIHRoZSBzaXplIG9mIG9iamVjdHMgd2hpY2ggZGVsdGEgYWdhaW5zdCBpdCwgYnV0IHRoZQorY2hvaWNlIG9mIHdoaWNoIG9iamVjdCBpcyB0aGUgYmFzZSBhbmQgd2hpY2ggaXMgdGhlIGRlbHRhIGlzIGFyYml0cmFyeQorYW5kIGlzIHN1YmplY3QgdG8gY2hhbmdlIGR1cmluZyBhIHJlcGFjay4gTm90ZSBhbHNvIHRoYXQgbXVsdGlwbGUgY29waWVzCitvZiBhbiBvYmplY3QgbWF5IGJlIHByZXNlbnQgaW4gdGhlIG9iamVjdCBkYXRhYmFzZTsgaW4gdGhpcyBjYXNlLCBpdCBpcwordW5kZWZpbmVkIHdoaWNoIGNvcHkncyBzaXplIHdpbGwgYmUgcmVwb3J0ZWQuCisKKwogR0lUCiAtLS0KIFBhcnQgb2YgdGhlIGxpbmtnaXQ6Z2l0WzFdIHN1aXRlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1hdHRyLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLWF0dHIudHh0CmluZGV4IDVhYmRiYWEuLmE3YmU4MGQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLWF0dHIudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLWF0dHIudHh0CkBAIC01Niw2ICs1NiwxMSBAQAogJ3NldCc7OwkJd2hlbiB0aGUgYXR0cmlidXRlIGlzIGRlZmluZWQgYXMgdHJ1ZS4KIDx2YWx1ZT47Owl3aGVuIGEgdmFsdWUgaGFzIGJlZW4gYXNzaWduZWQgdG8gdGhlIGF0dHJpYnV0ZS4KIAorQnVmZmVyaW5nIGhhcHBlbnMgYXMgZG9jdW1lbnRlZCB1bmRlciB0aGUgYEdJVF9GTFVTSGAgb3B0aW9uIGluCitsaW5rZ2l0OmdpdFsxXS4gIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGF2b2lkaW5nIGRlYWRsb2NrcworY2F1c2VkIGJ5IG92ZXJmaWxsaW5nIGFuIGlucHV0IGJ1ZmZlciBvciByZWFkaW5nIGZyb20gYW4gZW1wdHkgb3V0cHV0CitidWZmZXIuCisKIEVYQU1QTEVTCiAtLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1pZ25vcmUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2staWdub3JlLnR4dAppbmRleCA4NTRlNGQwLi5kMmRmNDg3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1pZ25vcmUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLWlnbm9yZS50eHQKQEAgLTM5LDYgKzM5LDEyIEBACiAJYmVsb3cpLiAgSWYgYC0tc3RkaW5gIGlzIGFsc28gZ2l2ZW4sIGlucHV0IHBhdGhzIGFyZSBzZXBhcmF0ZWQKIAl3aXRoIGEgTlVMIGNoYXJhY3RlciBpbnN0ZWFkIG9mIGEgbGluZWZlZWQgY2hhcmFjdGVyLgogCistbiwgLS1ub24tbWF0Y2hpbmc6OgorCVNob3cgZ2l2ZW4gcGF0aHMgd2hpY2ggZG9uJ3QgbWF0Y2ggYW55IHBhdHRlcm4uCSBUaGlzIG9ubHkKKwltYWtlcyBzZW5zZSB3aGVuIGAtLXZlcmJvc2VgIGlzIGVuYWJsZWQsIG90aGVyd2lzZSBpdCB3b3VsZAorCW5vdCBiZSBwb3NzaWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHBhdGhzIHdoaWNoIG1hdGNoIGEKKwlwYXR0ZXJuIGFuZCB0aG9zZSB3aGljaCBkb24ndC4KKwogT1VUUFVUCiAtLS0tLS0KIApAQCAtNjUsNiArNzEsMjAgQEAKIAogPHNvdXJjZT4gPE5VTEw+IDxsaW5lbnVtPiA8TlVMTD4gPHBhdHRlcm4+IDxOVUxMPiA8cGF0aG5hbWU+IDxOVUxMPgogCitJZiBgLW5gIG9yIGAtLW5vbi1tYXRjaGluZ2AgYXJlIHNwZWNpZmllZCwgbm9uLW1hdGNoaW5nIHBhdGhuYW1lcyB3aWxsCithbHNvIGJlIG91dHB1dCwgaW4gd2hpY2ggY2FzZSBhbGwgZmllbGRzIGluIGVhY2ggb3V0cHV0IHJlY29yZCBleGNlcHQKK2ZvciA8cGF0aG5hbWU+IHdpbGwgYmUgZW1wdHkuICBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlbiBydW5uaW5nCitub24taW50ZXJhY3RpdmVseSwgc28gdGhhdCBmaWxlcyBjYW4gYmUgaW5jcmVtZW50YWxseSBzdHJlYW1lZCB0bworU1RESU4gb2YgYSBsb25nLXJ1bm5pbmcgY2hlY2staWdub3JlIHByb2Nlc3MsIGFuZCBmb3IgZWFjaCBvZiB0aGVzZQorZmlsZXMsIFNURE9VVCB3aWxsIGluZGljYXRlIHdoZXRoZXIgdGhhdCBmaWxlIG1hdGNoZWQgYSBwYXR0ZXJuIG9yCitub3QuICAoV2l0aG91dCB0aGlzIG9wdGlvbiwgaXQgd291bGQgYmUgaW1wb3NzaWJsZSB0byB0ZWxsIHdoZXRoZXIgdGhlCithYnNlbmNlIG9mIG91dHB1dCBmb3IgYSBnaXZlbiBmaWxlIG1lYW50IHRoYXQgaXQgZGlkbid0IG1hdGNoIGFueQorcGF0dGVybiwgb3IgdGhhdCB0aGUgb3V0cHV0IGhhZG4ndCBiZWVuIGdlbmVyYXRlZCB5ZXQuKQorCitCdWZmZXJpbmcgaGFwcGVucyBhcyBkb2N1bWVudGVkIHVuZGVyIHRoZSBgR0lUX0ZMVVNIYCBvcHRpb24gaW4KK2xpbmtnaXQ6Z2l0WzFdLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgYXZvaWRpbmcgZGVhZGxvY2tzCitjYXVzZWQgYnkgb3ZlcmZpbGxpbmcgYW4gaW5wdXQgYnVmZmVyIG9yIHJlYWRpbmcgZnJvbSBhbiBlbXB0eSBvdXRwdXQKK2J1ZmZlci4KIAogRVhJVCBTVEFUVVMKIC0tLS0tLS0tLS0tCkBAIC04Miw3ICsxMDIsNyBAQAogLS0tLS0tLS0KIGxpbmtnaXQ6Z2l0aWdub3JlWzVdCiBsaW5rZ2l0OmdpdGNvbmZpZ1s1XQotbGlua2dpdDpnaXQtbHMtZmlsZXNbNV0KK2xpbmtnaXQ6Z2l0LWxzLWZpbGVzWzFdCiAKIEdJVAogLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1tYWlsbWFwLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLW1haWxtYXAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MDI4ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1tYWlsbWFwLnR4dApAQCAtMCwwICsxLDQ3IEBACitnaXQtY2hlY2stbWFpbG1hcCgxKQorPT09PT09PT09PT09PT09PT09PT0KKworTkFNRQorLS0tLQorZ2l0LWNoZWNrLW1haWxtYXAgLSBTaG93IGNhbm9uaWNhbCBuYW1lcyBhbmQgZW1haWwgYWRkcmVzc2VzIG9mIGNvbnRhY3RzCisKKworU1lOT1BTSVMKKy0tLS0tLS0tCitbdmVyc2VdCisnZ2l0IGNoZWNrLW1haWxtYXAnIFtvcHRpb25zXSA8Y29udGFjdD4uLi4KKworCitERVNDUklQVElPTgorLS0tLS0tLS0tLS0KKworRm9yIGVhY2ggYGBOYW1lICQkPHVzZXJAaG9zdD4kJCcnIG9yIGBgJCQ8dXNlckBob3N0PiQkJycgZnJvbSB0aGUgY29tbWFuZC1saW5lCitvciBzdGFuZGFyZCBpbnB1dCAod2hlbiB1c2luZyBgLS1zdGRpbmApLCBsb29rIHVwIHRoZSBwZXJzb24ncyBjYW5vbmljYWwgbmFtZQorYW5kIGVtYWlsIGFkZHJlc3MgKHNlZSAiTWFwcGluZyBBdXRob3JzIiBiZWxvdykuIElmIGZvdW5kLCBwcmludCB0aGVtOworb3RoZXJ3aXNlIHByaW50IHRoZSBpbnB1dCBhcy1pcy4KKworCitPUFRJT05TCistLS0tLS0tCistLXN0ZGluOjoKKwlSZWFkIGNvbnRhY3RzLCBvbmUgcGVyIGxpbmUsIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IGFmdGVyIGV4aGF1c3RpbmcKKwljb250YWN0cyBwcm92aWRlZCBvbiB0aGUgY29tbWFuZC1saW5lLgorCisKK09VVFBVVAorLS0tLS0tCisKK0ZvciBlYWNoIGNvbnRhY3QsIGEgc2luZ2xlIGxpbmUgaXMgb3V0cHV0LCB0ZXJtaW5hdGVkIGJ5IGEgbmV3bGluZS4gIElmIHRoZQorbmFtZSBpcyBwcm92aWRlZCBvciBrbm93biB0byB0aGUgJ21haWxtYXAnLCBgYE5hbWUgJCQ8dXNlckBob3N0PiQkJycgaXMKK3ByaW50ZWQ7IG90aGVyd2lzZSBvbmx5IGBgJCQ8dXNlckBob3N0PiQkJycgaXMgcHJpbnRlZC4KKworCitNQVBQSU5HIEFVVEhPUlMKKy0tLS0tLS0tLS0tLS0tLQorCitpbmNsdWRlOjptYWlsbWFwLnR4dFtdCisKKworR0lUCistLS0KK1BhcnQgb2YgdGhlIGxpbmtnaXQ6Z2l0WzFdIHN1aXRlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVja291dC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVja291dC50eHQKaW5kZXggMjNhOTQxMy4uY2ExMThhYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2tvdXQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrb3V0LnR4dApAQCAtMTMxLDkgKzEzMSw5IEBACiAJIi0tdHJhY2siIGluIGxpbmtnaXQ6Z2l0LWJyYW5jaFsxXSBmb3IgZGV0YWlscy4KICsKIElmIG5vICctYicgb3B0aW9uIGlzIGdpdmVuLCB0aGUgbmFtZSBvZiB0aGUgbmV3IGJyYW5jaCB3aWxsIGJlCi1kZXJpdmVkIGZyb20gdGhlIHJlbW90ZS10cmFja2luZyBicmFuY2guICBJZiAicmVtb3Rlcy8iIG9yICJyZWZzL3JlbW90ZXMvIgotaXMgcHJlZml4ZWQgaXQgaXMgc3RyaXBwZWQgYXdheSwgYW5kIHRoZW4gdGhlIHBhcnQgdXAgdG8gdGhlCi1uZXh0IHNsYXNoICh3aGljaCB3b3VsZCBiZSB0aGUgbmlja25hbWUgb2YgdGhlIHJlbW90ZSkgaXMgcmVtb3ZlZC4KK2Rlcml2ZWQgZnJvbSB0aGUgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCwgYnkgbG9va2luZyBhdCB0aGUgbG9jYWwgcGFydCBvZgordGhlIHJlZnNwZWMgY29uZmlndXJlZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcmVtb3RlLCBhbmQgdGhlbiBzdHJpcHBpbmcKK3RoZSBpbml0aWFsIHBhcnQgdXAgdG8gdGhlICIqIi4KIFRoaXMgd291bGQgdGVsbCB1cyB0byB1c2UgImhhY2siIGFzIHRoZSBsb2NhbCBicmFuY2ggd2hlbiBicmFuY2hpbmcKIG9mZiBvZiAib3JpZ2luL2hhY2siIChvciAicmVtb3Rlcy9vcmlnaW4vaGFjayIsIG9yIGV2ZW4KICJyZWZzL3JlbW90ZXMvb3JpZ2luL2hhY2siKS4gIElmIHRoZSBnaXZlbiBuYW1lIGhhcyBubyBzbGFzaCwgb3IgdGhlIGFib3ZlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jbGVhbi50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jbGVhbi50eHQKaW5kZXggYmRjM2FiOC4uODk5NzkyMiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtY2xlYW4udHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNsZWFuLnR4dApAQCAtOCw3ICs4LDcgQEAKIFNZTk9QU0lTCiAtLS0tLS0tLQogW3ZlcnNlXQotJ2dpdCBjbGVhbicgWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aD4uLi4KKydnaXQgY2xlYW4nIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aD4uLi4KIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCkBAIC0zNCw3ICszNCwxMyBAQAogLWY6OgogLS1mb3JjZTo6CiAJSWYgdGhlIEdpdCBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGNsZWFuLnJlcXVpcmVGb3JjZSBpcyBub3Qgc2V0Ci0JdG8gZmFsc2UsICdnaXQgY2xlYW4nIHdpbGwgcmVmdXNlIHRvIHJ1biB1bmxlc3MgZ2l2ZW4gLWYgb3IgLW4uCisJdG8gZmFsc2UsICdnaXQgY2xlYW4nIHdpbGwgcmVmdXNlIHRvIHJ1biB1bmxlc3MgZ2l2ZW4gLWYsIC1uIG9yCisJLWkuCisKKy1pOjoKKy0taW50ZXJhY3RpdmU6OgorCVNob3cgd2hhdCB3b3VsZCBiZSBkb25lIGFuZCBjbGVhbiBmaWxlcyBpbnRlcmFjdGl2ZWx5LiBTZWUKKwlgYEludGVyYWN0aXZlIG1vZGUnJyBmb3IgZGV0YWlscy4KIAogLW46OgogLS1kcnktcnVuOjoKQEAgLTYzLDYgKzY5LDY3IEBACiAJUmVtb3ZlIG9ubHkgZmlsZXMgaWdub3JlZCBieSBHaXQuICBUaGlzIG1heSBiZSB1c2VmdWwgdG8gcmVidWlsZAogCWV2ZXJ5dGhpbmcgZnJvbSBzY3JhdGNoLCBidXQga2VlcCBtYW51YWxseSBjcmVhdGVkIGZpbGVzLgogCitJbnRlcmFjdGl2ZSBtb2RlCistLS0tLS0tLS0tLS0tLS0tCitXaGVuIHRoZSBjb21tYW5kIGVudGVycyB0aGUgaW50ZXJhY3RpdmUgbW9kZSwgaXQgc2hvd3MgdGhlCitmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdG8gYmUgY2xlYW5lZCwgYW5kIGdvZXMgaW50byBpdHMKK2ludGVyYWN0aXZlIGNvbW1hbmQgbG9vcC4KKworVGhlIGNvbW1hbmQgbG9vcCBzaG93cyB0aGUgbGlzdCBvZiBzdWJjb21tYW5kcyBhdmFpbGFibGUsIGFuZAorZ2l2ZXMgYSBwcm9tcHQgIldoYXQgbm93PiAiLiAgSW4gZ2VuZXJhbCwgd2hlbiB0aGUgcHJvbXB0IGVuZHMKK3dpdGggYSBzaW5nbGUgJz4nLCB5b3UgY2FuIHBpY2sgb25seSBvbmUgb2YgdGhlIGNob2ljZXMgZ2l2ZW4KK2FuZCB0eXBlIHJldHVybiwgbGlrZSB0aGlzOgorCistLS0tLS0tLS0tLS0KKyAgICAqKiogQ29tbWFuZHMgKioqCisJMTogY2xlYW4gICAgICAgICAgICAgICAgMjogZmlsdGVyIGJ5IHBhdHRlcm4gICAgMzogc2VsZWN0IGJ5IG51bWJlcnMKKwk0OiBhc2sgZWFjaCAgICAgICAgICAgICA1OiBxdWl0ICAgICAgICAgICAgICAgICA2OiBoZWxwCisgICAgV2hhdCBub3c+IDEKKy0tLS0tLS0tLS0tLQorCitZb3UgYWxzbyBjb3VsZCBzYXkgYGNgIG9yIGBjbGVhbmAgYWJvdmUgYXMgbG9uZyBhcyB0aGUgY2hvaWNlIGlzIHVuaXF1ZS4KKworVGhlIG1haW4gY29tbWFuZCBsb29wIGhhcyA2IHN1YmNvbW1hbmRzLgorCitjbGVhbjo6CisKKyAgIFN0YXJ0IGNsZWFuaW5nIGZpbGVzIGFuZCBkaXJlY3RvcmllcywgYW5kIHRoZW4gcXVpdC4KKworZmlsdGVyIGJ5IHBhdHRlcm46OgorCisgICBUaGlzIHNob3dzIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdG8gYmUgZGVsZXRlZCBhbmQgaXNzdWVzIGFuCisgICAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4iIHByb21wdC4gWW91IGNhbiBpbnB1dCBzcGFjZS1zZXBlcmF0ZWQKKyAgIHBhdHRlcm5zIHRvIGV4Y2x1ZGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIGZyb20gZGVsZXRpb24uCisgICBFLmcuICIqLmMgKi5oIiB3aWxsIGV4Y2x1ZGVzIGZpbGVzIGVuZCB3aXRoICIuYyIgYW5kICIuaCIgZnJvbQorICAgZGVsZXRpb24uIFdoZW4geW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB0aGUgZmlsdGVyZWQgcmVzdWx0LCBwcmVzcworICAgRU5URVIgKGVtcHR5KSBiYWNrIHRvIHRoZSBtYWluIG1lbnUuCisKK3NlbGVjdCBieSBudW1iZXJzOjoKKworICAgVGhpcyBzaG93cyB0aGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIGJlIGRlbGV0ZWQgYW5kIGlzc3VlcyBhbgorICAgIlNlbGVjdCBpdGVtcyB0byBkZWxldGU+PiIgcHJvbXB0LiBXaGVuIHRoZSBwcm9tcHQgZW5kcyB3aXRoIGRvdWJsZQorICAgJz4+JyBsaWtlIHRoaXMsIHlvdSBjYW4gbWFrZSBtb3JlIHRoYW4gb25lIHNlbGVjdGlvbiwgY29uY2F0ZW5hdGVkCisgICB3aXRoIHdoaXRlc3BhY2Ugb3IgY29tbWEuICBBbHNvIHlvdSBjYW4gc2F5IHJhbmdlcy4gIEUuZy4gIjItNSA3LDkiCisgICB0byBjaG9vc2UgMiwzLDQsNSw3LDkgZnJvbSB0aGUgbGlzdC4gIElmIHRoZSBzZWNvbmQgbnVtYmVyIGluIGEKKyAgIHJhbmdlIGlzIG9taXR0ZWQsIGFsbCByZW1haW5pbmcgaXRlbXMgYXJlIHNlbGVjdGVkLiAgRS5nLiAiNy0iIHRvCisgICBjaG9vc2UgNyw4LDkgZnJvbSB0aGUgbGlzdC4gIFlvdSBjYW4gc2F5ICcqJyB0byBjaG9vc2UgZXZlcnl0aGluZy4KKyAgIEFsc28gd2hlbiB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHRoZSBmaWx0ZXJlZCByZXN1bHQsIHByZXNzIEVOVEVSCisgICAoZW1wdHkpIGJhY2sgdG8gdGhlIG1haW4gbWVudS4KKworYXNrIGVhY2g6OgorCisgIFRoaXMgd2lsbCBzdGFydCB0byBjbGVhbiwgYW5kIHlvdSBtdXN0IGNvbmZpcm0gb25lIGJ5IG9uZSBpbiBvcmRlcgorICB0byBkZWxldGUgaXRlbXMuIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBhY3Rpb24gaXMgbm90IGFzIGVmZmljaWVudAorICBhcyB0aGUgYWJvdmUgdHdvIGFjdGlvbnMuCisKK3F1aXQ6OgorCisgIFRoaXMgbGV0cyB5b3UgcXVpdCB3aXRob3V0IGRvIGNsZWFuaW5nLgorCitoZWxwOjoKKworICBTaG93IGJyaWVmIHVzYWdlIG9mIGludGVyYWN0aXZlIGdpdC1jbGVhbi4KKwogU0VFIEFMU08KIC0tLS0tLS0tCiBsaW5rZ2l0OmdpdGlnbm9yZVs1XQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2xvbmUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtY2xvbmUudHh0CmluZGV4IGEwNzI3ZDcuLjQ1MGYxNTggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNsb25lLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jbG9uZS50eHQKQEAgLTIzOSw4ICsyMzksOCBAQAogKiBDbG9uZSBmcm9tIHVwc3RyZWFtOgogKwogLS0tLS0tLS0tLS0tCi0kIGdpdCBjbG9uZSBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtLy4uLi9saW51eC0yLjYgbXkyLjYKLSQgY2QgbXkyLjYKKyQgZ2l0IGNsb25lIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vLi4uL2xpbnV4LmdpdCBteS1saW51eAorJCBjZCBteS1saW51eAogJCBtYWtlCiAtLS0tLS0tLS0tLS0KIApAQCAtMjU3LDEwICsyNTcsMTAgQEAKICogQ2xvbmUgZnJvbSB1cHN0cmVhbSB3aGlsZSBib3Jyb3dpbmcgZnJvbSBhbiBleGlzdGluZyBsb2NhbCBkaXJlY3Rvcnk6CiArCiAtLS0tLS0tLS0tLS0KLSQgZ2l0IGNsb25lIC0tcmVmZXJlbmNlIG15Mi42IFwKLQlnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtLy4uLi9saW51eC0yLjcgXAotCW15Mi43Ci0kIGNkIG15Mi43CiskIGdpdCBjbG9uZSAtLXJlZmVyZW5jZSAvZ2l0L2xpbnV4LmdpdCBcCisJZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS8uLi4vbGludXguZ2l0IFwKKwlteS1saW51eAorJCBjZCBteS1saW51eAogLS0tLS0tLS0tLS0tCiAKIApAQCAtMjcxLDEzICsyNzEsNiBAQAogLS0tLS0tLS0tLS0tCiAKIAotKiBDcmVhdGUgYSByZXBvc2l0b3J5IG9uIHRoZSBrZXJuZWwub3JnIG1hY2hpbmUgdGhhdCBib3Jyb3dzIGZyb20gTGludXM6Ci0rCi0tLS0tLS0tLS0tLS0KLSQgZ2l0IGNsb25lIC0tYmFyZSAtbCAtcyAvcHViL3NjbS8uLi4vdG9ydmFsZHMvbGludXgtMi42LmdpdCBcCi0gICAgL3B1Yi9zY20vLi4uL21lL3N1YnN5cy0yLjYuZ2l0Ci0tLS0tLS0tLS0tLS0KLQogR0lUCiAtLS0KIFBhcnQgb2YgdGhlIGxpbmtnaXQ6Z2l0WzFdIHN1aXRlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jb25maWcudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtY29uZmlnLnR4dAppbmRleCBkODhhNmZjLi4yZGJlNDg2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1jb25maWcudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNvbmZpZy50eHQKQEAgLTgyLDcgKzgyLDcgQEAKIC0tZ2V0OjoKIAlHZXQgdGhlIHZhbHVlIGZvciBhIGdpdmVuIGtleSAob3B0aW9uYWxseSBmaWx0ZXJlZCBieSBhIHJlZ2V4CiAJbWF0Y2hpbmcgdGhlIHZhbHVlKS4gUmV0dXJucyBlcnJvciBjb2RlIDEgaWYgdGhlIGtleSB3YXMgbm90Ci0JZm91bmQgYW5kIGVycm9yIGNvZGUgMiBpZiBtdWx0aXBsZSBrZXkgdmFsdWVzIHdlcmUgZm91bmQuCisJZm91bmQgYW5kIHRoZSBsYXN0IHZhbHVlIGlmIG11bHRpcGxlIGtleSB2YWx1ZXMgd2VyZSBmb3VuZC4KIAogLS1nZXQtYWxsOjoKIAlMaWtlIGdldCwgYnV0IGRvZXMgbm90IGZhaWwgaWYgdGhlIG51bWJlciBvZiB2YWx1ZXMgZm9yIHRoZSBrZXkKQEAgLTk2LDI4ICs5Niw0NiBAQAogCW5hbWVzIGFyZSBub3QuCiAKIC0tZ2xvYmFsOjoKLQlGb3Igd3JpdGluZyBvcHRpb25zOiB3cml0ZSB0byBnbG9iYWwgfi8uZ2l0Y29uZmlnIGZpbGUgcmF0aGVyIHRoYW4KLQl0aGUgcmVwb3NpdG9yeSAuZ2l0L2NvbmZpZywgd3JpdGUgdG8gJFhER19DT05GSUdfSE9NRS9naXQvY29uZmlnIGZpbGUKLQlpZiB0aGlzIGZpbGUgZXhpc3RzIGFuZCB0aGUgfi8uZ2l0Y29uZmlnIGZpbGUgZG9lc24ndC4KKwlGb3Igd3JpdGluZyBvcHRpb25zOiB3cml0ZSB0byBnbG9iYWwgYH4vLmdpdGNvbmZpZ2AgZmlsZQorCXJhdGhlciB0aGFuIHRoZSByZXBvc2l0b3J5IGAuZ2l0L2NvbmZpZ2AsIHdyaXRlIHRvCisJYCRYREdfQ09ORklHX0hPTUUvZ2l0L2NvbmZpZ2AgZmlsZSBpZiB0aGlzIGZpbGUgZXhpc3RzIGFuZCB0aGUKKwlgfi8uZ2l0Y29uZmlnYCBmaWxlIGRvZXNuJ3QuCiArCi1Gb3IgcmVhZGluZyBvcHRpb25zOiByZWFkIG9ubHkgZnJvbSBnbG9iYWwgfi8uZ2l0Y29uZmlnIGFuZCBmcm9tCi0kWERHX0NPTkZJR19IT01FL2dpdC9jb25maWcgcmF0aGVyIHRoYW4gZnJvbSBhbGwgYXZhaWxhYmxlIGZpbGVzLgorRm9yIHJlYWRpbmcgb3B0aW9uczogcmVhZCBvbmx5IGZyb20gZ2xvYmFsIGB+Ly5naXRjb25maWdgIGFuZCBmcm9tCitgJFhER19DT05GSUdfSE9NRS9naXQvY29uZmlnYCByYXRoZXIgdGhhbiBmcm9tIGFsbCBhdmFpbGFibGUgZmlsZXMuCiArCiBTZWUgYWxzbyA8PEZJTEVTPj4uCiAKIC0tc3lzdGVtOjoKLQlGb3Igd3JpdGluZyBvcHRpb25zOiB3cml0ZSB0byBzeXN0ZW0td2lkZSAkKHByZWZpeCkvZXRjL2dpdGNvbmZpZwotCXJhdGhlciB0aGFuIHRoZSByZXBvc2l0b3J5IC5naXQvY29uZmlnLgorCUZvciB3cml0aW5nIG9wdGlvbnM6IHdyaXRlIHRvIHN5c3RlbS13aWRlCisJYCQocHJlZml4KS9ldGMvZ2l0Y29uZmlnYCByYXRoZXIgdGhhbiB0aGUgcmVwb3NpdG9yeQorCWAuZ2l0L2NvbmZpZ2AuCiArCi1Gb3IgcmVhZGluZyBvcHRpb25zOiByZWFkIG9ubHkgZnJvbSBzeXN0ZW0td2lkZSAkKHByZWZpeCkvZXRjL2dpdGNvbmZpZworRm9yIHJlYWRpbmcgb3B0aW9uczogcmVhZCBvbmx5IGZyb20gc3lzdGVtLXdpZGUgYCQocHJlZml4KS9ldGMvZ2l0Y29uZmlnYAogcmF0aGVyIHRoYW4gZnJvbSBhbGwgYXZhaWxhYmxlIGZpbGVzLgogKwogU2VlIGFsc28gPDxGSUxFUz4+LgogCistLWxvY2FsOjoKKwlGb3Igd3JpdGluZyBvcHRpb25zOiB3cml0ZSB0byB0aGUgcmVwb3NpdG9yeSBgLmdpdC9jb25maWdgIGZpbGUuCisJVGhpcyBpcwl0aGUgZGVmYXVsdCBiZWhhdmlvci4KKysKK0ZvciByZWFkaW5nIG9wdGlvbnM6IHJlYWQgb25seSBmcm9tIHRoZSByZXBvc2l0b3J5IGAuZ2l0L2NvbmZpZ2AgcmF0aGVyIHRoYW4KK2Zyb20gYWxsIGF2YWlsYWJsZSBmaWxlcy4KKysKK1NlZSBhbHNvIDw8RklMRVM+Pi4KKwogLWYgY29uZmlnLWZpbGU6OgogLS1maWxlIGNvbmZpZy1maWxlOjoKIAlVc2UgdGhlIGdpdmVuIGNvbmZpZyBmaWxlIGluc3RlYWQgb2YgdGhlIG9uZSBzcGVjaWZpZWQgYnkgR0lUX0NPTkZJRy4KIAorLS1ibG9iIGJsb2I6OgorCVNpbWlsYXIgdG8gJy0tZmlsZScgYnV0IHVzZSB0aGUgZ2l2ZW4gYmxvYiBpbnN0ZWFkIG9mIGEgZmlsZS4gRS5nLgorCXlvdSBjYW4gdXNlICdtYXN0ZXI6LmdpdG1vZHVsZXMnIHRvIHJlYWQgdmFsdWVzIGZyb20gdGhlIGZpbGUKKwknLmdpdG1vZHVsZXMnIGluIHRoZSBtYXN0ZXIgYnJhbmNoLiBTZWUgIlNQRUNJRllJTkcgUkVWSVNJT05TIgorCXNlY3Rpb24gaW4gbGlua2dpdDpnaXRyZXZpc2lvbnNbN10gZm9yIGEgbW9yZSBjb21wbGV0ZSBsaXN0IG9mCisJd2F5cyB0byBzcGVsbCBibG9iIG5hbWVzLgorCiAtLXJlbW92ZS1zZWN0aW9uOjoKIAlSZW1vdmUgdGhlIGdpdmVuIHNlY3Rpb24gZnJvbSB0aGUgY29uZmlndXJhdGlvbiBmaWxlLgogCkBAIC0xOTcsMjMgKzIxNSwyMyBAQAogSWYgbm90IHNldCBleHBsaWNpdGx5IHdpdGggJy0tZmlsZScsIHRoZXJlIGFyZSBmb3VyIGZpbGVzIHdoZXJlCiAnZ2l0IGNvbmZpZycgd2lsbCBzZWFyY2ggZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9uczoKIAotJEdJVF9ESVIvY29uZmlnOjoKLQlSZXBvc2l0b3J5IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZmlsZS4KKyQocHJlZml4KS9ldGMvZ2l0Y29uZmlnOjoKKwlTeXN0ZW0td2lkZSBjb25maWd1cmF0aW9uIGZpbGUuCisKKyRYREdfQ09ORklHX0hPTUUvZ2l0L2NvbmZpZzo6CisJU2Vjb25kIHVzZXItc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmaWxlLiBJZiAkWERHX0NPTkZJR19IT01FIGlzIG5vdCBzZXQKKwlvciBlbXB0eSwgYCRIT01FLy5jb25maWcvZ2l0L2NvbmZpZ2Agd2lsbCBiZSB1c2VkLiBBbnkgc2luZ2xlLXZhbHVlZAorCXZhcmlhYmxlIHNldCBpbiB0aGlzIGZpbGUgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSB3aGF0ZXZlciBpcyBpbgorCWB+Ly5naXRjb25maWdgLiAgSXQgaXMgYSBnb29kIGlkZWEgbm90IHRvIGNyZWF0ZSB0aGlzIGZpbGUgaWYKKwl5b3Ugc29tZXRpbWVzIHVzZSBvbGRlciB2ZXJzaW9ucyBvZiBHaXQsIGFzIHN1cHBvcnQgZm9yIHRoaXMKKwlmaWxlIHdhcyBhZGRlZCBmYWlybHkgcmVjZW50bHkuCiAKIH4vLmdpdGNvbmZpZzo6CiAJVXNlci1zcGVjaWZpYyBjb25maWd1cmF0aW9uIGZpbGUuIEFsc28gY2FsbGVkICJnbG9iYWwiCiAJY29uZmlndXJhdGlvbiBmaWxlLgogCi0kWERHX0NPTkZJR19IT01FL2dpdC9jb25maWc6OgotCVNlY29uZCB1c2VyLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZmlsZS4gSWYgJFhER19DT05GSUdfSE9NRSBpcyBub3Qgc2V0Ci0Jb3IgZW1wdHksICRIT01FLy5jb25maWcvZ2l0L2NvbmZpZyB3aWxsIGJlIHVzZWQuIEFueSBzaW5nbGUtdmFsdWVkCi0JdmFyaWFibGUgc2V0IGluIHRoaXMgZmlsZSB3aWxsIGJlIG92ZXJ3cml0dGVuIGJ5IHdoYXRldmVyIGlzIGluCi0Jfi8uZ2l0Y29uZmlnLiAgSXQgaXMgYSBnb29kIGlkZWEgbm90IHRvIGNyZWF0ZSB0aGlzIGZpbGUgaWYKLQl5b3Ugc29tZXRpbWVzIHVzZSBvbGRlciB2ZXJzaW9ucyBvZiBHaXQsIGFzIHN1cHBvcnQgZm9yIHRoaXMKLQlmaWxlIHdhcyBhZGRlZCBmYWlybHkgcmVjZW50bHkuCi0KLSQocHJlZml4KS9ldGMvZ2l0Y29uZmlnOjoKLQlTeXN0ZW0td2lkZSBjb25maWd1cmF0aW9uIGZpbGUuCiskR0lUX0RJUi9jb25maWc6OgorCVJlcG9zaXRvcnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmaWxlLgogCiBJZiBubyBmdXJ0aGVyIG9wdGlvbnMgYXJlIGdpdmVuLCBhbGwgcmVhZGluZyBvcHRpb25zIHdpbGwgcmVhZCBhbGwgb2YgdGhlc2UKIGZpbGVzIHRoYXQgYXJlIGF2YWlsYWJsZS4gSWYgdGhlIGdsb2JhbCBvciB0aGUgc3lzdGVtLXdpZGUgY29uZmlndXJhdGlvbgpAQCAtMjIxLDYgKzIzOSwxMCBAQAogZmlsZSBpcyBub3QgYXZhaWxhYmxlIG9yIHJlYWRhYmxlLCAnZ2l0IGNvbmZpZycgd2lsbCBleGl0IHdpdGggYSBub24temVybwogZXJyb3IgY29kZS4gSG93ZXZlciwgaW4gbmVpdGhlciBjYXNlIHdpbGwgYW4gZXJyb3IgbWVzc2FnZSBiZSBpc3N1ZWQuCiAKK1RoZSBmaWxlcyBhcmUgcmVhZCBpbiB0aGUgb3JkZXIgZ2l2ZW4gYWJvdmUsIHdpdGggbGFzdCB2YWx1ZSBmb3VuZCB0YWtpbmcKK3ByZWNlZGVuY2Ugb3ZlciB2YWx1ZXMgcmVhZCBlYXJsaWVyLiAgV2hlbiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHRha2VuIHRoZW4gYWxsCit2YWx1ZXMgb2YgYSBrZXkgZnJvbSBhbGwgZmlsZXMgd2lsbCBiZSB1c2VkLgorCiBBbGwgd3JpdGluZyBvcHRpb25zIHdpbGwgcGVyIGRlZmF1bHQgd3JpdGUgdG8gdGhlIHJlcG9zaXRvcnkgc3BlY2lmaWMKIGNvbmZpZ3VyYXRpb24gZmlsZS4gTm90ZSB0aGF0IHRoaXMgYWxzbyBhZmZlY3RzIG9wdGlvbnMgbGlrZSAnLS1yZXBsYWNlLWFsbCcKIGFuZCAnLS11bnNldCcuIConZ2l0IGNvbmZpZycgd2lsbCBvbmx5IGV2ZXIgY2hhbmdlIG9uZSBmaWxlIGF0IGEgdGltZSouCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1kZXNjcmliZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1kZXNjcmliZS50eHQKaW5kZXggMjhlNWVjMC4uOTQzOWNkNiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZGVzY3JpYmUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWRlc2NyaWJlLnR4dApAQCAtODgsNiArODgsMTEgQEAKIC0tYWx3YXlzOjoKIAlTaG93IHVuaXF1ZWx5IGFiYnJldmlhdGVkIGNvbW1pdCBvYmplY3QgYXMgZmFsbGJhY2suCiAKKy0tZmlyc3QtcGFyZW50OjoKKwlGb2xsb3cgb25seSB0aGUgZmlyc3QgcGFyZW50IGNvbW1pdCB1cG9uIHNlZWluZyBhIG1lcmdlIGNvbW1pdC4KKwlUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3aXNoIHRvIG5vdCBtYXRjaCB0YWdzIG9uIGJyYW5jaGVzIG1lcmdlZAorCWluIHRoZSBoaXN0b3J5IG9mIHRoZSB0YXJnZXQgY29tbWl0LgorCiBFWEFNUExFUwogLS0tLS0tLS0KIApAQCAtMTQ5LDcgKzE1NCw5IEBACiBJZiBhbiBleGFjdCBtYXRjaCB3YXMgbm90IGZvdW5kLCAnZ2l0IGRlc2NyaWJlJyB3aWxsIHdhbGsgYmFjawogdGhyb3VnaCB0aGUgY29tbWl0IGhpc3RvcnkgdG8gbG9jYXRlIGFuIGFuY2VzdG9yIGNvbW1pdCB3aGljaAogaGFzIGJlZW4gdGFnZ2VkLiAgVGhlIGFuY2VzdG9yJ3MgdGFnIHdpbGwgYmUgb3V0cHV0IGFsb25nIHdpdGggYW4KLWFiYnJldmlhdGlvbiBvZiB0aGUgaW5wdXQgY29tbWl0dGlzaCdzIFNIQS0xLgorYWJicmV2aWF0aW9uIG9mIHRoZSBpbnB1dCBjb21taXR0aXNoJ3MgU0hBLTEuIElmICctLWZpcnN0LXBhcmVudCcgd2FzCitzcGVjaWZpZWQgdGhlbiB0aGUgd2FsayB3aWxsIG9ubHkgY29uc2lkZXIgdGhlIGZpcnN0IHBhcmVudCBvZiBlYWNoCitjb21taXQuCiAKIElmIG11bHRpcGxlIHRhZ3Mgd2VyZSBmb3VuZCBkdXJpbmcgdGhlIHdhbGsgdGhlbiB0aGUgdGFnIHdoaWNoCiBoYXMgdGhlIGZld2VzdCBjb21taXRzIGRpZmZlcmVudCBmcm9tIHRoZSBpbnB1dCBjb21taXR0aXNoIHdpbGwgYmUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWRpZmYtaW5kZXgudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtZGlmZi1pbmRleC50eHQKaW5kZXggYzBiN2M1OC4uYTg2Y2Y2MiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZGlmZi1pbmRleC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZGlmZi1pbmRleC50eHQKQEAgLTMsNyArMyw3IEBACiAKIE5BTUUKIC0tLS0KLWdpdC1kaWZmLWluZGV4IC0gQ29tcGFyZXMgY29udGVudCBhbmQgbW9kZSBvZiBibG9icyBiZXR3ZWVuIHRoZSBpbmRleCBhbmQgcmVwb3NpdG9yeQorZ2l0LWRpZmYtaW5kZXggLSBDb21wYXJlIGEgdHJlZSB0byB0aGUgd29ya2luZyB0cmVlIG9yIGluZGV4CiAKIAogU1lOT1BTSVMKQEAgLTEzLDExICsxMywxMSBAQAogCiBERVNDUklQVElPTgogLS0tLS0tLS0tLS0KLUNvbXBhcmVzIHRoZSBjb250ZW50IGFuZCBtb2RlIG9mIHRoZSBibG9icyBmb3VuZCB2aWEgYSB0cmVlCi1vYmplY3Qgd2l0aCB0aGUgY29udGVudCBvZiB0aGUgY3VycmVudCBpbmRleCBhbmQsIG9wdGlvbmFsbHkKLWlnbm9yaW5nIHRoZSBzdGF0IHN0YXRlIG9mIHRoZSBmaWxlIG9uIGRpc2suICBXaGVuIHBhdGhzIGFyZQotc3BlY2lmaWVkLCBjb21wYXJlcyBvbmx5IHRob3NlIG5hbWVkIHBhdGhzLiAgT3RoZXJ3aXNlIGFsbAotZW50cmllcyBpbiB0aGUgaW5kZXggYXJlIGNvbXBhcmVkLgorQ29tcGFyZXMgdGhlIGNvbnRlbnQgYW5kIG1vZGUgb2YgdGhlIGJsb2JzIGZvdW5kIGluIGEgdHJlZSBvYmplY3QKK3dpdGggdGhlIGNvcnJlc3BvbmRpbmcgdHJhY2tlZCBmaWxlcyBpbiB0aGUgd29ya2luZyB0cmVlLCBvciB3aXRoIHRoZQorY29ycmVzcG9uZGluZyBwYXRocyBpbiB0aGUgaW5kZXguICBXaGVuIDxwYXRoPiBhcmd1bWVudHMgYXJlIHByZXNlbnQsCitjb21wYXJlcyBvbmx5IHBhdGhzIG1hdGNoaW5nIHRob3NlIHBhdHRlcm5zLiAgT3RoZXJ3aXNlIGFsbCB0cmFja2VkCitmaWxlcyBhcmUgY29tcGFyZWQuCiAKIE9QVElPTlMKIC0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWRpZmYudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtZGlmZi50eHQKaW5kZXggYTdiNDYyMC4uNzhkNmQ1MCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZGlmZi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZGlmZi50eHQKQEAgLTE4LDggKzE4LDggQEAKIERFU0NSSVBUSU9OCiAtLS0tLS0tLS0tLQogU2hvdyBjaGFuZ2VzIGJldHdlZW4gdGhlIHdvcmtpbmcgdHJlZSBhbmQgdGhlIGluZGV4IG9yIGEgdHJlZSwgY2hhbmdlcwotYmV0d2VlbiB0aGUgaW5kZXggYW5kIGEgdHJlZSwgY2hhbmdlcyBiZXR3ZWVuIHR3byB0cmVlcywgb3IgY2hhbmdlcwotYmV0d2VlbiB0d28gZmlsZXMgb24gZGlzay4KK2JldHdlZW4gdGhlIGluZGV4IGFuZCBhIHRyZWUsIGNoYW5nZXMgYmV0d2VlbiB0d28gdHJlZXMsIGNoYW5nZXMgYmV0d2VlbgordHdvIGJsb2Igb2JqZWN0cywgb3IgY2hhbmdlcyBiZXR3ZWVuIHR3byBmaWxlcyBvbiBkaXNrLgogCiAnZ2l0IGRpZmYnIFstLW9wdGlvbnNdIFstLV0gWzxwYXRoPi4uLl06OgogCkBAIC01NiwxMSArNTYsNiBAQAogCVRoaXMgaXMgdG8gdmlldyB0aGUgY2hhbmdlcyBiZXR3ZWVuIHR3byBhcmJpdHJhcnkKIAk8Y29tbWl0Pi4KIAotJ2dpdCBkaWZmJyBbb3B0aW9uc10gPGJsb2I+IDxibG9iPjo6Ci0KLQlUaGlzIGZvcm0gaXMgdG8gdmlldyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgcmF3Ci0JY29udGVudHMgb2YgdHdvIGJsb2Igb2JqZWN0cy4KLQogJ2dpdCBkaWZmJyBbLS1vcHRpb25zXSA8Y29tbWl0Pi4uPGNvbW1pdD4gWy0tXSBbPHBhdGg+Li4uXTo6CiAKIAlUaGlzIGlzIHN5bm9ueW1vdXMgdG8gdGhlIHByZXZpb3VzIGZvcm0uICBJZiA8Y29tbWl0PiBvbgpAQCAtODcsNiArODIsMTEgQEAKICI8Y29tbWl0PlwuLi48Y29tbWl0PiIpIGRvIG5vdCBtZWFuIGEgcmFuZ2UgYXMgZGVmaW5lZCBpbiB0aGUKICJTUEVDSUZZSU5HIFJBTkdFUyIgc2VjdGlvbiBpbiBsaW5rZ2l0OmdpdHJldmlzaW9uc1s3XS4KIAorJ2dpdCBkaWZmJyBbb3B0aW9uc10gPGJsb2I+IDxibG9iPjo6CisKKwlUaGlzIGZvcm0gaXMgdG8gdmlldyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgcmF3CisJY29udGVudHMgb2YgdHdvIGJsb2Igb2JqZWN0cy4KKwogT1BUSU9OUwogLS0tLS0tLQogOmdpdC1kaWZmOiAxCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1mYXN0LWV4cG9ydC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1mYXN0LWV4cG9ydC50eHQKaW5kZXggZWZiMDM4MC4uODVmMWYzMCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZmFzdC1leHBvcnQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWZhc3QtZXhwb3J0LnR4dApAQCAtMTQxLDcgKzE0MSw3IEBACiAtLS0tLS0tLS0tLQogCiBTaW5jZSAnZ2l0IGZhc3QtaW1wb3J0JyBjYW5ub3QgdGFnIHRyZWVzLCB5b3Ugd2lsbCBub3QgYmUKLWFibGUgdG8gZXhwb3J0IHRoZSBsaW51eC0yLjYuZ2l0IHJlcG9zaXRvcnkgY29tcGxldGVseSwgYXMgaXQgY29udGFpbnMKK2FibGUgdG8gZXhwb3J0IHRoZSBsaW51eC5naXQgcmVwb3NpdG9yeSBjb21wbGV0ZWx5LCBhcyBpdCBjb250YWlucwogYSB0YWcgcmVmZXJlbmNpbmcgYSB0cmVlIGluc3RlYWQgb2YgYSBjb21taXQuCiAKIEdJVApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZm9ybWF0LXBhdGNoLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWZvcm1hdC1wYXRjaC50eHQKaW5kZXggMzkxMTg3Ny4uZTM5NDI3NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZm9ybWF0LXBhdGNoLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1mb3JtYXQtcGF0Y2gudHh0CkBAIC0xODcsNiArMTg3LDIxIEBACiAJVGhlIG5lZ2F0ZWQgZm9ybSBgLS1uby1jY2AgZGlzY2FyZHMgYWxsIGBDYzpgIGhlYWRlcnMgYWRkZWQgc28KIAlmYXIgKGZyb20gY29uZmlnIG9yIGNvbW1hbmQgbGluZSkuCiAKKy0tZnJvbTo6CistLWZyb209PGlkZW50Pjo6CisJVXNlIGBpZGVudGAgaW4gdGhlIGBGcm9tOmAgaGVhZGVyIG9mIGVhY2ggY29tbWl0IGVtYWlsLiBJZiB0aGUKKwlhdXRob3IgaWRlbnQgb2YgdGhlIGNvbW1pdCBpcyBub3QgdGV4dHVhbGx5IGlkZW50aWNhbCB0byB0aGUKKwlwcm92aWRlZCBgaWRlbnRgLCBwbGFjZSBhIGBGcm9tOmAgaGVhZGVyIGluIHRoZSBib2R5IG9mIHRoZQorCW1lc3NhZ2Ugd2l0aCB0aGUgb3JpZ2luYWwgYXV0aG9yLiBJZiBubyBgaWRlbnRgIGlzIGdpdmVuLCB1c2UKKwl0aGUgY29tbWl0dGVyIGlkZW50LgorKworTm90ZSB0aGF0IHRoaXMgb3B0aW9uIGlzIG9ubHkgdXNlZnVsIGlmIHlvdSBhcmUgYWN0dWFsbHkgc2VuZGluZyB0aGUKK2VtYWlscyBhbmQgd2FudCB0byBpZGVudGlmeSB5b3Vyc2VsZiBhcyB0aGUgc2VuZGVyLCBidXQgcmV0YWluIHRoZQorb3JpZ2luYWwgYXV0aG9yIChhbmQgYGdpdCBhbWAgd2lsbCBjb3JyZWN0bHkgcGljayB1cCB0aGUgaW4tYm9keQoraGVhZGVyKS4gTm90ZSBhbHNvIHRoYXQgYGdpdCBzZW5kLWVtYWlsYCBhbHJlYWR5IGhhbmRsZXMgdGhpcwordHJhbnNmb3JtYXRpb24gZm9yIHlvdSwgYW5kIHRoaXMgb3B0aW9uIHNob3VsZCBub3QgYmUgdXNlZCBpZiB5b3UgYXJlCitmZWVkaW5nIHRoZSByZXN1bHQgdG8gYGdpdCBzZW5kLWVtYWlsYC4KKwogLS1hZGQtaGVhZGVyPTxoZWFkZXI+OjoKIAlBZGQgYW4gYXJiaXRyYXJ5IGhlYWRlciB0byB0aGUgZW1haWwgaGVhZGVycy4gIFRoaXMgaXMgaW4gYWRkaXRpb24KIAl0byBhbnkgY29uZmlndXJlZCBoZWFkZXJzLCBhbmQgbWF5IGJlIHVzZWQgbXVsdGlwbGUgdGltZXMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1nYy50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1nYy50eHQKaW5kZXggYjM3MGIwMi4uMjQwMmVkNiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZ2MudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWdjLnR4dApAQCAtNjIsOCArNjIsOSBAQAogCiAtLXBydW5lPTxkYXRlPjo6CiAJUHJ1bmUgbG9vc2Ugb2JqZWN0cyBvbGRlciB0aGFuIGRhdGUgKGRlZmF1bHQgaXMgMiB3ZWVrcyBhZ28sCi0Jb3ZlcnJpZGFibGUgYnkgdGhlIGNvbmZpZyB2YXJpYWJsZSBgZ2MucHJ1bmVFeHBpcmVgKS4gIFRoaXMKLQlvcHRpb24gaXMgb24gYnkgZGVmYXVsdC4KKwlvdmVycmlkYWJsZSBieSB0aGUgY29uZmlnIHZhcmlhYmxlIGBnYy5wcnVuZUV4cGlyZWApLgorCS0tcHJ1bmU9YWxsIHBydW5lcyBsb29zZSBvYmplY3RzIHJlZ2FyZGxlc3Mgb2YgdGhlaXIgYWdlLgorCS0tcHJ1bmUgaXMgb24gYnkgZGVmYXVsdC4KIAogLS1uby1wcnVuZTo6CiAJRG8gbm90IHBydW5lIGFueSBsb29zZSBvYmplY3RzLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtaW5kZXgtcGFjay50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1pbmRleC1wYWNrLnR4dAppbmRleCBiZGU4ZWVjLi43YTRlMDU1IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1pbmRleC1wYWNrLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1pbmRleC1wYWNrLnR4dApAQCAtNzQsNiArNzQsOSBAQAogLS1zdHJpY3Q6OgogCURpZSwgaWYgdGhlIHBhY2sgY29udGFpbnMgYnJva2VuIG9iamVjdHMgb3IgbGlua3MuCiAKKy0tY2hlY2stc2VsZi1jb250YWluZWQtYW5kLWNvbm5lY3RlZDo6CisJRGllIGlmIHRoZSBwYWNrIGNvbnRhaW5zIGJyb2tlbiBsaW5rcy4gRm9yIGludGVybmFsIHVzZSBvbmx5LgorCiAtLXRocmVhZHM9PG4+OjoKIAlTcGVjaWZpZXMgdGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIHNwYXduIHdoZW4gcmVzb2x2aW5nCiAJZGVsdGFzLiBUaGlzIHJlcXVpcmVzIHRoYXQgaW5kZXgtcGFjayBiZSBjb21waWxlZCB3aXRoCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1sb2cudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtbG9nLnR4dAppbmRleCBhOTc2NTM0Li5hYzI2OTRkIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1sb2cudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWxvZy50eHQKQEAgLTYyLDYgKzYyLDE5IEBACiAJTm90ZSB0aGF0IG9ubHkgbWVzc2FnZSBpcyBjb25zaWRlcmVkLCBpZiBhbHNvIGEgZGlmZiBpcyBzaG93bgogCWl0cyBzaXplIGlzIG5vdCBpbmNsdWRlZC4KIAorLUwgPHN0YXJ0Piw8ZW5kPjo8ZmlsZT4sIC1MIDo8cmVnZXg+OjxmaWxlPjo6CisKKwlUcmFjZSB0aGUgZXZvbHV0aW9uIG9mIHRoZSBsaW5lIHJhbmdlIGdpdmVuIGJ5ICI8c3RhcnQ+LDxlbmQ+IgorCShvciB0aGUgZnVuY25hbWUgcmVnZXggPHJlZ2V4Pikgd2l0aGluIHRoZSA8ZmlsZT4uICBZb3UgbWF5CisJbm90IGdpdmUgYW55IHBhdGhzcGVjIGxpbWl0ZXJzLiAgVGhpcyBpcyBjdXJyZW50bHkgbGltaXRlZCB0bworCWEgd2FsayBzdGFydGluZyBmcm9tIGEgc2luZ2xlIHJldmlzaW9uLCBpLmUuLCB5b3UgbWF5IG9ubHkKKwlnaXZlIHplcm8gb3Igb25lIHBvc2l0aXZlIHJldmlzaW9uIGFyZ3VtZW50cy4KKwlZb3UgY2FuIHNwZWNpZnkgdGhpcyBvcHRpb24gbW9yZSB0aGFuIG9uY2UuCisrCis8c3RhcnQ+IGFuZCA8ZW5kPiBjYW4gdGFrZSBvbmUgb2YgdGhlc2UgZm9ybXM6CisKK2luY2x1ZGU6OmxpbmUtcmFuZ2UtZm9ybWF0LnR4dFtdCisKIDxyZXZpc2lvbiByYW5nZT46OgogCVNob3cgb25seSBjb21taXRzIGluIHRoZSBzcGVjaWZpZWQgcmV2aXNpb24gcmFuZ2UuICBXaGVuIG5vCiAJPHJldmlzaW9uIHJhbmdlPiBpcyBzcGVjaWZpZWQsIGl0IGRlZmF1bHRzIHRvIGBIRUFEYCAoaS5lLiB0aGUKQEAgLTg0LDcgKzk3LDcgQEAKIAogaW5jbHVkZTo6cHJldHR5LWZvcm1hdHMudHh0W10KIAotQ29tbW9uIGRpZmYgb3B0aW9ucworQ09NTU9OIERJRkYgT1BUSU9OUwogLS0tLS0tLS0tLS0tLS0tLS0tLQogCiA6Z2l0LWxvZzogMQpAQCAtOTIsNyArMTA1LDcgQEAKIAogaW5jbHVkZTo6ZGlmZi1nZW5lcmF0ZS1wYXRjaC50eHRbXQogCi1FeGFtcGxlcworRVhBTVBMRVMKIC0tLS0tLS0tCiBgZ2l0IGxvZyAtLW5vLW1lcmdlc2A6OgogCkBAIC0xMTUsOSArMTI4LDkgQEAKIAlpbiB0aGUgInJlbGVhc2UiIGJyYW5jaCwgYWxvbmcgd2l0aCB0aGUgbGlzdCBvZiBwYXRocwogCWVhY2ggY29tbWl0IG1vZGlmaWVzLgogCi1gZ2l0IGxvZyAtLWZvbGxvdyBidWlsdGluLXJldi1saXN0LmNgOjoKK2BnaXQgbG9nIC0tZm9sbG93IGJ1aWx0aW4vcmV2LWxpc3QuY2A6OgogCi0JU2hvd3MgdGhlIGNvbW1pdHMgdGhhdCBjaGFuZ2VkIGJ1aWx0aW4tcmV2LWxpc3QuYywgaW5jbHVkaW5nCisJU2hvd3MgdGhlIGNvbW1pdHMgdGhhdCBjaGFuZ2VkIGJ1aWx0aW4vcmV2LWxpc3QuYywgaW5jbHVkaW5nCiAJdGhvc2UgY29tbWl0cyB0aGF0IG9jY3VycmVkIGJlZm9yZSB0aGUgZmlsZSB3YXMgZ2l2ZW4gaXRzCiAJcHJlc2VudCBuYW1lLgogCkBAIC0xNDAsMTUgKzE1MywyMCBAQAogCVRoaXMgbWFrZXMgc2Vuc2Ugb25seSB3aGVuIGZvbGxvd2luZyBhIHN0cmljdCBwb2xpY3kgb2YgbWVyZ2luZyBhbGwKIAl0b3BpYyBicmFuY2hlcyB3aGVuIHN0YXlpbmcgb24gYSBzaW5nbGUgaW50ZWdyYXRpb24gYnJhbmNoLgogCitgZ2l0IGxvZyAtTCAnL2ludCBtYWluLycsL159LzptYWluLmNgOjoKKworCVNob3dzIGhvdyB0aGUgZnVuY3Rpb24gYG1haW4oKWAgaW4gdGhlIGZpbGUgJ21haW4uYycgZXZvbHZlZAorCW92ZXIgdGltZS4KKwogYGdpdCBsb2cgLTNgOjoKIAlMaW1pdHMgdGhlIG51bWJlciBvZiBjb21taXRzIHRvIHNob3cgdG8gMy4KIAotRGlzY3Vzc2lvbgorRElTQ1VTU0lPTgogLS0tLS0tLS0tLQogCiBpbmNsdWRlOjppMThuLnR4dFtdCiAKLUNvbmZpZ3VyYXRpb24KK0NPTkZJR1VSQVRJT04KIC0tLS0tLS0tLS0tLS0KIAogU2VlIGxpbmtnaXQ6Z2l0LWNvbmZpZ1sxXSBmb3IgY29yZSB2YXJpYWJsZXMgYW5kIGxpbmtnaXQ6Z2l0LWRpZmZbMV0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWxzLXJlbW90ZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1scy1yZW1vdGUudHh0CmluZGV4IDc3NGRlNWUuLjJlMjI5MTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWxzLXJlbW90ZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtbHMtcmVtb3RlLnR4dApAQCAtNDgsOSArNDgsOSBAQAogCWV4aXQgd2l0aG91dCB0YWxraW5nIHRvIHRoZSByZW1vdGUuCiAKIDxyZXBvc2l0b3J5Pjo6Ci0JTG9jYXRpb24gb2YgdGhlIHJlcG9zaXRvcnkuICBUaGUgc2hvcnRoYW5kIGRlZmluZWQgaW4KLQkkR0lUX0RJUi9icmFuY2hlcy8gY2FuIGJlIHVzZWQuIFVzZSAiLiIgKGRvdCkgdG8gbGlzdCByZWZlcmVuY2VzIGluCi0JdGhlIGxvY2FsIHJlcG9zaXRvcnkuCisJVGhlICJyZW1vdGUiIHJlcG9zaXRvcnkgdG8gcXVlcnkuICBUaGlzIHBhcmFtZXRlciBjYW4gYmUKKwllaXRoZXIgYSBVUkwgb3IgdGhlIG5hbWUgb2YgYSByZW1vdGUgKHNlZSB0aGUgR0lUIFVSTFMgYW5kCisJUkVNT1RFUyBzZWN0aW9ucyBvZiBsaW5rZ2l0OmdpdC1mZXRjaFsxXSkuCiAKIDxyZWZzPi4uLjo6CiAJV2hlbiB1bnNwZWNpZmllZCwgYWxsIHJlZmVyZW5jZXMsIGFmdGVyIGZpbHRlcmluZyBkb25lCkBAIC03MCw5ICs3MCw4IEBACiAJJCBnaXQgbHMtcmVtb3RlIGh0dHA6Ly93d3cua2VybmVsLm9yZy9wdWIvc2NtL2dpdC9naXQuZ2l0IG1hc3RlciBwdSByYwogCTVmZTk3OGE1MzgxZjFmYmFkMjZhODBlNjgyZGRkMmE0MDE5NjY3NDAJcmVmcy9oZWFkcy9tYXN0ZXIKIAljNzgxYTg0YjUyMDRmYjI5NGM5Y2NjNzlmOGIzYmFjZWViMzJjMDYxCXJlZnMvaGVhZHMvcHUKLQliMWQwOTZmMjkyNmM0ZTM3YzljMGI2YTdiZjIxMTliZWRhYTI3N2NiCXJlZnMvaGVhZHMvcmMKLQkkIGVjaG8gaHR0cDovL3d3dy5rZXJuZWwub3JnL3B1Yi9zY20vZ2l0L2dpdC5naXQgPi5naXQvYnJhbmNoZXMvcHVibGljCi0JJCBnaXQgbHMtcmVtb3RlIC0tdGFncyBwdWJsaWMgdlwqCisJJCBnaXQgcmVtb3RlIGFkZCBrb3JnIGh0dHA6Ly93d3cua2VybmVsLm9yZy9wdWIvc2NtL2dpdC9naXQuZ2l0CisJJCBnaXQgbHMtcmVtb3RlIC0tdGFncyBrb3JnIHZcKgogCWQ2NjAyZWM1MTk0Yzg3YjBmYzg3MTAzY2E0ZDY3MjUxYzc2ZjIzM2EJcmVmcy90YWdzL3YwLjk5CiAJZjI1YTI2NWEzNDJhZWQ2MDQxYWIwY2M0ODQyMjRkOWNhNTRiNmY0MQlyZWZzL3RhZ3MvdjAuOTkuMQogCWM1ZGI1NDU2YWUzYjA4NzNmYzY1OWMxOWZhZmRkZTIyMzEzY2M0NDEJcmVmcy90YWdzL3YwLjk5LjIKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LW1lcmdlLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LW1lcmdlLnR4dAppbmRleCA2N2NhOTljLi5hNzRjMzcxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1tZXJnZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UudHh0CkBAIC01Niw4ICs1Niw4IEBACiB3YXMgc3RhcnRlZCksICdnaXQgbWVyZ2UgLS1hYm9ydCcgd2lsbCBpbiBzb21lIGNhc2VzIGJlIHVuYWJsZSB0bwogcmVjb25zdHJ1Y3QgdGhlIG9yaWdpbmFsIChwcmUtbWVyZ2UpIGNoYW5nZXMuIFRoZXJlZm9yZToKIAotKldhcm5pbmcqOiBSdW5uaW5nICdnaXQgbWVyZ2UnIHdpdGggdW5jb21taXR0ZWQgY2hhbmdlcyBpcwotZGlzY291cmFnZWQ6IHdoaWxlIHBvc3NpYmxlLCBpdCBsZWF2ZXMgeW91IGluIGEgc3RhdGUgdGhhdCBpcyBoYXJkIHRvCisqV2FybmluZyo6IFJ1bm5pbmcgJ2dpdCBtZXJnZScgd2l0aCBub24tdHJpdmlhbCB1bmNvbW1pdHRlZCBjaGFuZ2VzIGlzCitkaXNjb3VyYWdlZDogd2hpbGUgcG9zc2libGUsIGl0IG1heSBsZWF2ZSB5b3UgaW4gYSBzdGF0ZSB0aGF0IGlzIGhhcmQgdG8KIGJhY2sgb3V0IG9mIGluIHRoZSBjYXNlIG9mIGEgY29uZmxpY3QuCiAKIApAQCAtMTg2LDExICsxODYsMTEgQEAKIHRvIGBnaXQgbWVyZ2VgLCBvciBwYXNzIGAtLWZmLW9ubHlgIHdoZW4geW91IGRvIG5vdCBoYXZlIGFueSB3b3JrIG9uCiB5b3VyIG93bi4gZS5nLgogCi0tLS0KKy0tLS0KIGdpdCBmZXRjaCBvcmlnaW4KIGdpdCBtZXJnZSB2MS4yLjNeMAogZ2l0IG1lcmdlIC0tZmYtb25seSB2MS4yLjMKLS0tLQorLS0tLQogCiAKIEhPVyBDT05GTElDVFMgQVJFIFBSRVNFTlRFRApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtbmFtZS1yZXYudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtbmFtZS1yZXYudHh0CmluZGV4IGFkMWQxNDYuLjE1YjAwZTAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LW5hbWUtcmV2LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1uYW1lLXJldi50eHQKQEAgLTI1LDE0ICsyNSwxNyBAQAogCURvIG5vdCB1c2UgYnJhbmNoIG5hbWVzLCBidXQgb25seSB0YWdzIHRvIG5hbWUgdGhlIGNvbW1pdHMKIAogLS1yZWZzPTxwYXR0ZXJuPjo6Ci0JT25seSB1c2UgcmVmcyB3aG9zZSBuYW1lcyBtYXRjaCBhIGdpdmVuIHNoZWxsIHBhdHRlcm4uCisJT25seSB1c2UgcmVmcyB3aG9zZSBuYW1lcyBtYXRjaCBhIGdpdmVuIHNoZWxsIHBhdHRlcm4uICBUaGUgcGF0dGVybgorCWNhbiBiZSBvbmUgb2YgYnJhbmNoIG5hbWUsIHRhZyBuYW1lIG9yIGZ1bGx5IHF1YWxpZmllZCByZWYgbmFtZS4KIAogLS1hbGw6OgogCUxpc3QgYWxsIGNvbW1pdHMgcmVhY2hhYmxlIGZyb20gYWxsIHJlZnMKIAogLS1zdGRpbjo6Ci0JUmVhZCBmcm9tIHN0ZGluLCBhcHBlbmQgIig8cmV2X25hbWU+KSIgdG8gYWxsIHNoYTEncyBvZiBuYW1lYWJsZQotCWNvbW1pdHMsIGFuZCBwYXNzIHRvIHN0ZG91dAorCVRyYW5zZm9ybSBzdGRpbiBieSBzdWJzdGl0dXRpbmcgYWxsIHRoZSA0MC1jaGFyYWN0ZXIgU0hBLTEKKwloZXhlcyAoc2F5ICRoZXgpIHdpdGggIiRoZXggKCRyZXZfbmFtZSkiLiAgV2hlbiB1c2VkIHdpdGgKKwktLW5hbWUtb25seSwgc3Vic3RpdHV0ZSB3aXRoICIkcmV2X25hbWUiLCBvbWl0dGluZyAkaGV4CisJYWx0b2dldGhlci4gIEludGVuZGVkIGZvciB0aGUgc2NyaXB0ZXIncyB1c2UuCiAKIC0tbmFtZS1vbmx5OjoKIAlJbnN0ZWFkIG9mIHByaW50aW5nIGJvdGggdGhlIFNIQS0xIGFuZCB0aGUgbmFtZSwgcHJpbnQgb25seQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcDQudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcDQudHh0CmluZGV4IGM1NzlmYmMuLjhjYmExNmQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXA0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1wNC50eHQKQEAgLTE3NiwxMyArMTc2LDE2IEBACiBUaGVzZSBvcHRpb25zIGNhbiBiZSB1c2VkIGluIHRoZSBpbml0aWFsICdjbG9uZScgYXMgd2VsbCBhcyBpbgogc3Vic2VxdWVudCAnc3luYycgb3BlcmF0aW9ucy4KIAotLS1icmFuY2ggPGJyYW5jaD46OgotCUltcG9ydCBjaGFuZ2VzIGludG8gZ2l2ZW4gYnJhbmNoLiAgSWYgdGhlIGJyYW5jaCBzdGFydHMgd2l0aAotCSdyZWZzLycsIGl0IHdpbGwgYmUgdXNlZCBhcyBpcy4gIE90aGVyd2lzZSBpZiBpdCBkb2VzIG5vdCBzdGFydAotCXdpdGggJ3A0LycsIHRoYXQgcHJlZml4IGlzIGFkZGVkLiAgVGhlIGJyYW5jaCBpcyBhc3N1bWVkIHRvCi0JbmFtZSBhIHJlbW90ZSB0cmFja2luZywgYnV0IHRoaXMgY2FuIGJlIG1vZGlmaWVkIHVzaW5nCi0JJy0taW1wb3J0LWxvY2FsJywgb3IgYnkgZ2l2aW5nIGEgZnVsbCByZWYgbmFtZS4gIFRoZSBkZWZhdWx0Ci0JYnJhbmNoIGlzICdtYXN0ZXInLgorLS1icmFuY2ggPHJlZj46OgorCUltcG9ydCBjaGFuZ2VzIGludG8gPHJlZj4gaW5zdGVhZCBvZiByZWZzL3JlbW90ZXMvcDQvbWFzdGVyLgorCUlmIDxyZWY+IHN0YXJ0cyB3aXRoIHJlZnMvLCBpdCBpcyB1c2VkIGFzIGlzLiAgT3RoZXJ3aXNlLCBpZgorCWl0IGRvZXMgbm90IHN0YXJ0IHdpdGggcDQvLCB0aGF0IHByZWZpeCBpcyBhZGRlZC4KKysKK0J5IGRlZmF1bHQgYSA8cmVmPiBub3Qgc3RhcnRpbmcgd2l0aCByZWZzLyBpcyB0cmVhdGVkIGFzIHRoZQorbmFtZSBvZiBhIHJlbW90ZS10cmFja2luZyBicmFuY2ggKHVuZGVyIHJlZnMvcmVtb3Rlcy8pLiAgVGhpcworYmVoYXZpb3IgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSAtLWltcG9ydC1sb2NhbCBvcHRpb24uCisrCitUaGUgZGVmYXVsdCA8cmVmPiBpcyAibWFzdGVyIi4KICsKIFRoaXMgZXhhbXBsZSBpbXBvcnRzIGEgbmV3IHJlbW90ZSAicDQvcHJvajIiIGludG8gYW4gZXhpc3RpbmcKIEdpdCByZXBvc2l0b3J5OgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcGFjay1yZWZzLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXBhY2stcmVmcy50eHQKaW5kZXggZjEzMTY3Ny4uMTU0MDgxZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcGFjay1yZWZzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1wYWNrLXJlZnMudHh0CkBAIC0zMyw4ICszMyw4IEBACiBgJEdJVF9ESVIvcmVmc2AgZGlyZWN0b3J5IGhpZXJhcmNoeS4KIAogQSByZWNvbW1lbmRlZCBwcmFjdGljZSB0byBkZWFsIHdpdGggYSByZXBvc2l0b3J5IHdpdGggdG9vIG1hbnkKLXJlZnMgaXMgdG8gcGFjayBpdHMgcmVmcyB3aXRoIGAtLWFsbCAtLXBydW5lYCBvbmNlLCBhbmQKLW9jY2FzaW9uYWxseSBydW4gYGdpdCBwYWNrLXJlZnMgLS1wcnVuZWAuICBUYWdzIGFyZSBieQorcmVmcyBpcyB0byBwYWNrIGl0cyByZWZzIHdpdGggYC0tYWxsYCBvbmNlLCBhbmQKK29jY2FzaW9uYWxseSBydW4gYGdpdCBwYWNrLXJlZnNgLiAgVGFncyBhcmUgYnkKIGRlZmluaXRpb24gc3RhdGlvbmFyeSBhbmQgYXJlIG5vdCBleHBlY3RlZCB0byBjaGFuZ2UuICBCcmFuY2gKIGhlYWRzIHdpbGwgYmUgcGFja2VkIHdpdGggdGhlIGluaXRpYWwgYHBhY2stcmVmcyAtLWFsbGAsIGJ1dAogb25seSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmFuY2ggaGVhZHMgd2lsbCBiZWNvbWUgdW5wYWNrZWQsCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1wcnVuZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1wcnVuZS50eHQKaW5kZXggODBkMDFiMC4uYmY4MjQxMCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcHJ1bmUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXBydW5lLnR4dApAQCAtNTksNyArNTksNyBAQAogYC5naXQvb2JqZWN0cy9pbmZvL2FsdGVybmF0ZXNgOgogCiAtLS0tLS0tLS0tLS0KLSQgZ2l0IHBydW5lICQoY2QgLi4vYW5vdGhlciAmJiAkKGdpdCByZXYtcGFyc2UgLS1hbGwpKQorJCBnaXQgcHJ1bmUgJChjZCAuLi9hbm90aGVyICYmIGdpdCByZXYtcGFyc2UgLS1hbGwpCiAtLS0tLS0tLS0tLS0KIAogTm90ZXMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXB1bGwudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcHVsbC50eHQKaW5kZXggMjRhYjA3YS4uNmVmOGQ1OSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcHVsbC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcHVsbC50eHQKQEAgLTMsNyArMyw3IEBACiAKIE5BTUUKIC0tLS0KLWdpdC1wdWxsIC0gRmV0Y2ggZnJvbSBhbmQgbWVyZ2Ugd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2gKK2dpdC1wdWxsIC0gRmV0Y2ggZnJvbSBhbmQgaW50ZWdyYXRlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoCiAKIAogU1lOT1BTSVMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXB1c2gudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcHVzaC50eHQKaW5kZXggZDUxNDgxMy4uZjdkZmU0OCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcHVzaC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcHVzaC50eHQKQEAgLTExLDcgKzExLDcgQEAKIFt2ZXJzZV0KICdnaXQgcHVzaCcgWy0tYWxsIHwgLS1taXJyb3IgfCAtLXRhZ3NdIFstLWZvbGxvdy10YWdzXSBbLW4gfCAtLWRyeS1ydW5dIFstLXJlY2VpdmUtcGFjaz08Z2l0LXJlY2VpdmUtcGFjaz5dCiAJICAgWy0tcmVwbz08cmVwb3NpdG9yeT5dIFstZiB8IC0tZm9yY2VdIFstLXBydW5lXSBbLXYgfCAtLXZlcmJvc2VdIFstdSB8IC0tc2V0LXVwc3RyZWFtXQotCSAgIFs8cmVwb3NpdG9yeT4gWzxyZWZzcGVjPi4uLl1dCisJICAgWy0tbm8tdmVyaWZ5XSBbPHJlcG9zaXRvcnk+IFs8cmVmc3BlYz4uLi5dXQogCiBERVNDUklQVElPTgogLS0tLS0tLS0tLS0KQEAgLTEzNiw2ICsxMzYsMTUgQEAKIAlub3QgYW4gYW5jZXN0b3Igb2YgdGhlIGxvY2FsIHJlZiB1c2VkIHRvIG92ZXJ3cml0ZSBpdC4KIAlUaGlzIGZsYWcgZGlzYWJsZXMgdGhlIGNoZWNrLiAgVGhpcyBjYW4gY2F1c2UgdGhlCiAJcmVtb3RlIHJlcG9zaXRvcnkgdG8gbG9zZSBjb21taXRzOyB1c2UgaXQgd2l0aCBjYXJlLgorCU5vdGUgdGhhdCBgLS1mb3JjZWAgYXBwbGllcyB0byBhbGwgdGhlIHJlZnMgdGhhdCBhcmUgcHVzaGVkLAorCWhlbmNlIHVzaW5nIGl0IHdpdGggYHB1c2guZGVmYXVsdGAgc2V0IHRvIGBtYXRjaGluZ2Agb3Igd2l0aAorCW11bHRpcGxlIHB1c2ggZGVzdGluYXRpb25zIGNvbmZpZ3VyZWQgd2l0aCBgcmVtb3RlLioucHVzaGAKKwltYXkgb3ZlcndyaXRlIHJlZnMgb3RoZXIgdGhhbiB0aGUgY3VycmVudCBicmFuY2ggKGluY2x1ZGluZworCWxvY2FsIHJlZnMgdGhhdCBhcmUgc3RyaWN0bHkgYmVoaW5kIHRoZWlyIHJlbW90ZSBjb3VudGVycGFydCkuCisJVG8gZm9yY2UgYSBwdXNoIHRvIG9ubHkgb25lIGJyYW5jaCwgdXNlIGEgYCtgIGluIGZyb250IG9mIHRoZQorCXJlZnNwZWMgdG8gcHVzaAkoZS5nIGBnaXQgcHVzaCBvcmlnaW4gK21hc3RlcmAgdG8gZm9yY2UgYSBwdXNoCisJdG8gdGhlIGBtYXN0ZXJgCWJyYW5jaCkuIFNlZSB0aGUgYDxyZWZzcGVjPi4uLmAgc2VjdGlvbiBhYm92ZQorCWZvciBkZXRhaWxzLgogCiAtLXJlcG89PHJlcG9zaXRvcnk+OjoKIAlUaGlzIG9wdGlvbiBpcyBvbmx5IHJlbGV2YW50IGlmIG5vIDxyZXBvc2l0b3J5PiBhcmd1bWVudCBpcwpAQCAtMTk1LDYgKzIwNCwxMSBAQAogCWJlIHB1c2hlZC4gSWYgb24tZGVtYW5kIHdhcyBub3QgYWJsZSB0byBwdXNoIGFsbCBuZWNlc3NhcnkKIAlyZXZpc2lvbnMgaXQgd2lsbCBhbHNvIGJlIGFib3J0ZWQgYW5kIGV4aXQgd2l0aCBub24temVybyBzdGF0dXMuCiAKKy0tW25vLV12ZXJpZnk6OgorCVRvZ2dsZSB0aGUgcHJlLXB1c2ggaG9vayAoc2VlIGxpbmtnaXQ6Z2l0aG9va3NbNV0pLiAgVGhlCisJZGVmYXVsdCBpcyBcLS12ZXJpZnksIGdpdmluZyB0aGUgaG9vayBhIGNoYW5jZSB0byBwcmV2ZW50IHRoZQorCXB1c2guICBXaXRoIFwtLW5vLXZlcmlmeSwgdGhlIGhvb2sgaXMgYnlwYXNzZWQgY29tcGxldGVseS4KKwogCiBpbmNsdWRlOjp1cmxzLXJlbW90ZXMudHh0W10KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcmViYXNlLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJlYmFzZS50eHQKaW5kZXggYWNhODQwNS4uNmIyZTFjOCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcmViYXNlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZWJhc2UudHh0CkBAIC0yMDgsNiArMjA4LDkgQEAKIHJlYmFzZS5hdXRvc3F1YXNoOjoKIAlJZiBzZXQgdG8gdHJ1ZSBlbmFibGUgJy0tYXV0b3NxdWFzaCcgb3B0aW9uIGJ5IGRlZmF1bHQuCiAKK3JlYmFzZS5hdXRvc3Rhc2g6OgorCUlmIHNldCB0byB0cnVlIGVuYWJsZSAnLS1hdXRvc3Rhc2gnIG9wdGlvbiBieSBkZWZhdWx0LgorCiBPUFRJT05TCiAtLS0tLS0tCiAtLW9udG8gPG5ld2Jhc2U+OjoKQEAgLTM4Niw3ICszODksOSBAQAogCXRoZSBzYW1lIC4uLiwgYXV0b21hdGljYWxseSBtb2RpZnkgdGhlIHRvZG8gbGlzdCBvZiByZWJhc2UgLWkKIAlzbyB0aGF0IHRoZSBjb21taXQgbWFya2VkIGZvciBzcXVhc2hpbmcgY29tZXMgcmlnaHQgYWZ0ZXIgdGhlCiAJY29tbWl0IHRvIGJlIG1vZGlmaWVkLCBhbmQgY2hhbmdlIHRoZSBhY3Rpb24gb2YgdGhlIG1vdmVkCi0JY29tbWl0IGZyb20gYHBpY2tgIHRvIGBzcXVhc2hgIChvciBgZml4dXBgKS4KKwljb21taXQgZnJvbSBgcGlja2AgdG8gYHNxdWFzaGAgKG9yIGBmaXh1cGApLiAgSWdub3JlcyBzdWJzZXF1ZW50CisJImZpeHVwISAiIG9yICJzcXVhc2ghICIgYWZ0ZXIgdGhlIGZpcnN0LCBpbiBjYXNlIHlvdSByZWZlcnJlZCB0byBhbgorCWVhcmxpZXIgZml4dXAvc3F1YXNoIHdpdGggYGdpdCBjb21taXQgLS1maXh1cC8tLXNxdWFzaGAuCiArCiBUaGlzIG9wdGlvbiBpcyBvbmx5IHZhbGlkIHdoZW4gdGhlICctLWludGVyYWN0aXZlJyBvcHRpb24gaXMgdXNlZC4KICsKQEAgLTM5NCw2ICszOTksMTMgQEAKIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgYHJlYmFzZS5hdXRvc3F1YXNoYCwgdGhpcyBvcHRpb24gY2FuIGJlCiB1c2VkIHRvIG92ZXJyaWRlIGFuZCBkaXNhYmxlIHRoaXMgc2V0dGluZy4KIAorLS1bbm8tXWF1dG9zdGFzaDo6CisJQXV0b21hdGljYWxseSBjcmVhdGUgYSB0ZW1wb3Jhcnkgc3Rhc2ggYmVmb3JlIHRoZSBvcGVyYXRpb24KKwliZWdpbnMsIGFuZCBhcHBseSBpdCBhZnRlciB0aGUgb3BlcmF0aW9uIGVuZHMuICBUaGlzIG1lYW5zCisJdGhhdCB5b3UgY2FuIHJ1biByZWJhc2Ugb24gYSBkaXJ0eSB3b3JrdHJlZS4gIEhvd2V2ZXIsIHVzZQorCXdpdGggY2FyZTogdGhlIGZpbmFsIHN0YXNoIGFwcGxpY2F0aW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bAorCXJlYmFzZSBtaWdodCByZXN1bHQgaW4gbm9uLXRyaXZpYWwgY29uZmxpY3RzLgorCiAtLW5vLWZmOjoKIAlXaXRoIC0taW50ZXJhY3RpdmUsIGNoZXJyeS1waWNrIGFsbCByZWJhc2VkIGNvbW1pdHMgaW5zdGVhZCBvZgogCWZhc3QtZm9yd2FyZGluZyBvdmVyIHRoZSB1bmNoYW5nZWQgb25lcy4gIFRoaXMgZW5zdXJlcyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcmVmbG9nLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJlZmxvZy50eHQKaW5kZXggZmI4Njk3ZS4uNzA3OTFiOSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcmVmbG9nLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZWZsb2cudHh0CkBAIC02NywxNCArNjcsMTkgQEAKIC0tZXhwaXJlPTx0aW1lPjo6CiAJRW50cmllcyBvbGRlciB0aGFuIHRoaXMgdGltZSBhcmUgcHJ1bmVkLiAgV2l0aG91dCB0aGUKIAlvcHRpb24gaXQgaXMgdGFrZW4gZnJvbSBjb25maWd1cmF0aW9uIGBnYy5yZWZsb2dFeHBpcmVgLAotCXdoaWNoIGluIHR1cm4gZGVmYXVsdHMgdG8gOTAgZGF5cy4KKwl3aGljaCBpbiB0dXJuIGRlZmF1bHRzIHRvIDkwIGRheXMuICAtLWV4cGlyZT1hbGwgcHJ1bmVzCisJZW50cmllcyByZWdhcmRsZXNzIG9mIHRoZWlyIGFnZTsgLS1leHBpcmU9bmV2ZXIgdHVybnMgb2ZmCisJcHJ1bmluZyBvZiByZWFjaGFibGUgZW50cmllcyAoYnV0IHNlZSAtLWV4cGlyZS11bnJlYWNoYWJsZSkuCiAKIC0tZXhwaXJlLXVucmVhY2hhYmxlPTx0aW1lPjo6CiAJRW50cmllcyBvbGRlciB0aGFuIHRoaXMgdGltZSBhbmQgbm90IHJlYWNoYWJsZSBmcm9tCiAJdGhlIGN1cnJlbnQgdGlwIG9mIHRoZSBicmFuY2ggYXJlIHBydW5lZC4gIFdpdGhvdXQgdGhlCiAJb3B0aW9uIGl0IGlzIHRha2VuIGZyb20gY29uZmlndXJhdGlvbgogCWBnYy5yZWZsb2dFeHBpcmVVbnJlYWNoYWJsZWAsIHdoaWNoIGluIHR1cm4gZGVmYXVsdHMgdG8KLQkzMCBkYXlzLgorCTMwIGRheXMuICAtLWV4cGlyZS11bnJlYWNoYWJsZT1hbGwgcHJ1bmVzIHVucmVhY2hhYmxlCisJZW50cmllcyByZWdhcmRsZXNzIG9mIHRoZWlyIGFnZTsgLS1leHBpcmUtdW5yZWFjaGFibGU9bmV2ZXIKKwl0dXJucyBvZmYgZWFybHkgcHJ1bmluZyBvZiB1bnJlYWNoYWJsZSBlbnRyaWVzIChidXQgc2VlCisJLS1leHBpcmUpLgogCiAtLWFsbDo6CiAJSW5zdGVhZCBvZiBsaXN0aW5nIDxyZWZzPiBleHBsaWNpdGx5LCBwcnVuZSBhbGwgcmVmcy4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJlbW90ZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZW1vdGUudHh0CmluZGV4IDU4MWJiNGMuLjljM2UzYmYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXJlbW90ZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcmVtb3RlLnR4dApAQCAtMTg3LDE4ICsxODcsMjUgQEAKICQgZ2l0IHJlbW90ZQogb3JpZ2luCiAkIGdpdCBicmFuY2ggLXIKLW9yaWdpbi9tYXN0ZXIKLSQgZ2l0IHJlbW90ZSBhZGQgbGludXgtbmZzIGdpdDovL2xpbnV4LW5mcy5vcmcvcHViL2xpbnV4L25mcy0yLjYuZ2l0CisgIG9yaWdpbi9IRUFEIC0+IG9yaWdpbi9tYXN0ZXIKKyAgb3JpZ2luL21hc3RlcgorJCBnaXQgcmVtb3RlIGFkZCBzdGFnaW5nIGdpdDovL2dpdC5rZXJuZWwub3JnLy4uLi9ncmVna2gvc3RhZ2luZy5naXQKICQgZ2l0IHJlbW90ZQotbGludXgtbmZzCiBvcmlnaW4KLSQgZ2l0IGZldGNoCi0qIHJlZnMvcmVtb3Rlcy9saW51eC1uZnMvbWFzdGVyOiBzdG9yaW5nIGJyYW5jaCAnbWFzdGVyJyAuLi4KLSAgY29tbWl0OiBiZjgxYjQ2CitzdGFnaW5nCiskIGdpdCBmZXRjaCBzdGFnaW5nCisuLi4KK0Zyb20gZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2dyZWdraC9zdGFnaW5nCisgKiBbbmV3IGJyYW5jaF0gICAgICBtYXN0ZXIgICAgIC0+IHN0YWdpbmcvbWFzdGVyCisgKiBbbmV3IGJyYW5jaF0gICAgICBzdGFnaW5nLWxpbnVzIC0+IHN0YWdpbmcvc3RhZ2luZy1saW51cworICogW25ldyBicmFuY2hdICAgICAgc3RhZ2luZy1uZXh0IC0+IHN0YWdpbmcvc3RhZ2luZy1uZXh0CiAkIGdpdCBicmFuY2ggLXIKLW9yaWdpbi9tYXN0ZXIKLWxpbnV4LW5mcy9tYXN0ZXIKLSQgZ2l0IGNoZWNrb3V0IC1iIG5mcyBsaW51eC1uZnMvbWFzdGVyCisgIG9yaWdpbi9IRUFEIC0+IG9yaWdpbi9tYXN0ZXIKKyAgb3JpZ2luL21hc3RlcgorICBzdGFnaW5nL21hc3RlcgorICBzdGFnaW5nL3N0YWdpbmctbGludXMKKyAgc3RhZ2luZy9zdGFnaW5nLW5leHQKKyQgZ2l0IGNoZWNrb3V0IC1iIHN0YWdpbmcgc3RhZ2luZy9tYXN0ZXIKIC4uLgogLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJlc2V0LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJlc2V0LnR4dAppbmRleCBhNDA0YjQ3Li5mNDQ1Y2IzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1yZXNldC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcmVzZXQudHh0CkBAIC05LDcgKzksNyBAQAogLS0tLS0tLS0KIFt2ZXJzZV0KICdnaXQgcmVzZXQnIFstcV0gWzx0cmVlLWlzaD5dIFstLV0gPHBhdGhzPi4uLgotJ2dpdCByZXNldCcgKC0tcGF0Y2ggfCAtcCkgWzx0cmVlLXNoPl0gWy0tXSBbPHBhdGhzPi4uLl0KKydnaXQgcmVzZXQnICgtLXBhdGNoIHwgLXApIFs8dHJlZS1pc2g+XSBbLS1dIFs8cGF0aHM+Li4uXQogJ2dpdCByZXNldCcgWy0tc29mdCB8IC0tbWl4ZWQgfCAtLWhhcmQgfCAtLW1lcmdlIHwgLS1rZWVwXSBbLXFdIFs8Y29tbWl0Pl0KIAogREVTQ1JJUFRJT04KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJldi1saXN0LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJldi1saXN0LnR4dAppbmRleCA2NWFjMjdlLi4wNDViMzdiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1yZXYtbGlzdC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcmV2LWxpc3QudHh0CkBAIC00MCw3ICs0MCw3IEBACiAJICAgICBbIFwtLXJpZ2h0LW9ubHkgXQogCSAgICAgWyBcLS1jaGVycnktbWFyayBdCiAJICAgICBbIFwtLWNoZXJyeS1waWNrIF0KLQkgICAgIFsgXC0tZW5jb2RpbmdbPTxlbmNvZGluZz5dIF0KKwkgICAgIFsgXC0tZW5jb2Rpbmc9PGVuY29kaW5nPiBdCiAJICAgICBbIFwtLShhdXRob3J8Y29tbWl0dGVyfGdyZXApPTxwYXR0ZXJuPiBdCiAJICAgICBbIFwtLXJlZ2V4cC1pZ25vcmUtY2FzZSB8IC1pIF0KIAkgICAgIFsgXC0tZXh0ZW5kZWQtcmVnZXhwIHwgLUUgXQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcmV2LXBhcnNlLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJldi1wYXJzZS50eHQKaW5kZXggOTQ3ZDYyZi4uMmIxMjZjMCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcmV2LXBhcnNlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZXYtcGFyc2UudHh0CkBAIC01OSw2ICs1OSwyMiBAQAogCUlmIHRoZXJlIGlzIG5vIHBhcmFtZXRlciBnaXZlbiBieSB0aGUgdXNlciwgdXNlIGA8YXJnPmAKIAlpbnN0ZWFkLgogCistLXByZWZpeCA8YXJnPjo6CisJQmVoYXZlIGFzIGlmICdnaXQgcmV2LXBhcnNlJyB3YXMgaW52b2tlZCBmcm9tIHRoZSBgPGFyZz5gCisJc3ViZGlyZWN0b3J5IG9mIHRoZSB3b3JraW5nIHRyZWUuICBBbnkgcmVsYXRpdmUgZmlsZW5hbWVzIGFyZQorCXJlc29sdmVkIGFzIGlmIHRoZXkgYXJlIHByZWZpeGVkIGJ5IGA8YXJnPmAgYW5kIHdpbGwgYmUgcHJpbnRlZAorCWluIHRoYXQgZm9ybS4KKysKK1RoaXMgY2FuIGJlIHVzZWQgdG8gY29udmVydCBhcmd1bWVudHMgdG8gYSBjb21tYW5kIHJ1biBpbiBhIHN1YmRpcmVjdG9yeQorc28gdGhhdCB0aGV5IGNhbiBzdGlsbCBiZSB1c2VkIGFmdGVyIG1vdmluZyB0byB0aGUgdG9wLWxldmVsIG9mIHRoZQorcmVwb3NpdG9yeS4gIEZvciBleGFtcGxlOgorKworLS0tLQorcHJlZml4PSQoZ2l0IHJldi1wYXJzZSAtLXNob3ctcHJlZml4KQorY2QgIiQoZ2l0IHJldi1wYXJzZSAtLXNob3ctdG9wbGV2ZWwpIgorZXZhbCAic2V0IC0tICQoZ2l0IHJldi1wYXJzZSAtLXNxIC0tcHJlZml4ICIkcHJlZml4IiAiJEAiKSIKKy0tLS0KKwogLS12ZXJpZnk6OgogCVZlcmlmeSB0aGF0IGV4YWN0bHkgb25lIHBhcmFtZXRlciBpcyBwcm92aWRlZCwgYW5kIHRoYXQgaXQKIAljYW4gYmUgdHVybmVkIGludG8gYSByYXcgMjAtYnl0ZSBTSEEtMSB0aGF0IGNhbiBiZSB1c2VkIHRvCkBAIC02Nyw3ICs4Myw3IEBACiArCiBJZiB5b3Ugd2FudCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3V0cHV0IGFjdHVhbGx5IG5hbWVzIGFuIG9iamVjdCBpbgogeW91ciBvYmplY3QgZGF0YWJhc2UgYW5kL29yIGNhbiBiZSB1c2VkIGFzIGEgc3BlY2lmaWMgdHlwZSBvZiBvYmplY3QKLXlvdSByZXF1aXJlLCB5b3UgY2FuIGFkZCAiXnt0eXBlfSIgcGVlbGluZyBvcGVyYXRvciB0byB0aGUgcGFybWV0ZXIuCit5b3UgcmVxdWlyZSwgeW91IGNhbiBhZGQgIl57dHlwZX0iIHBlZWxpbmcgb3BlcmF0b3IgdG8gdGhlIHBhcmFtZXRlci4KIEZvciBleGFtcGxlLCBgZ2l0IHJldi1wYXJzZSAiJFZBUl57Y29tbWl0fSJgIHdpbGwgbWFrZSBzdXJlIGAkVkFSYAogbmFtZXMgYW4gZXhpc3Rpbmcgb2JqZWN0IHRoYXQgaXMgYSBjb21taXQtaXNoIChpLmUuIGEgY29tbWl0LCBvciBhbgogYW5ub3RhdGVkIHRhZyB0aGF0IHBvaW50cyBhdCBhIGNvbW1pdCkuICBUbyBtYWtlIHN1cmUgdGhhdCBgJFZBUmAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXNlbmQtZW1haWwudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtc2VuZC1lbWFpbC50eHQKaW5kZXggNDBhOWE5YS4uZjBlNTdhNSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtc2VuZC1lbWFpbC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtc2VuZC1lbWFpbC50eHQKQEAgLTE5OCw2ICsxOTgsMTIgQEAKIC0tc210cC1zc2w6OgogCUxlZ2FjeSBhbGlhcyBmb3IgJy0tc210cC1lbmNyeXB0aW9uIHNzbCcuCiAKKy0tc210cC1zc2wtY2VydC1wYXRoOjoKKwlQYXRoIHRvIGNhLWNlcnRpZmljYXRlcyAoZWl0aGVyIGEgZGlyZWN0b3J5IG9yIGEgc2luZ2xlIGZpbGUpLgorCVNldCBpdCB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24uCisJRGVmYXVsdHMgdG8gdGhlIHZhbHVlIHNldCB0byB0aGUgJ3NlbmRlbWFpbC5zbXRwc3NsY2VydHBhdGgnCisJY29uZmlndXJhdGlvbiB2YXJpYWJsZSwgaWYgc2V0LCBvciBgL2V0Yy9zc2wvY2VydHNgIG90aGVyd2lzZS4KKwogLS1zbXRwLXVzZXI9PHVzZXI+OjoKIAlVc2VybmFtZSBmb3IgU01UUC1BVVRILiBEZWZhdWx0IGlzIHRoZSB2YWx1ZSBvZiAnc2VuZGVtYWlsLnNtdHB1c2VyJzsKIAlpZiBhIHVzZXJuYW1lIGlzIG5vdCBzcGVjaWZpZWQgKHdpdGggJy0tc210cC11c2VyJyBvciAnc2VuZGVtYWlsLnNtdHB1c2VyJyksCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1zaG93LXJlZi50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1zaG93LXJlZi50eHQKaW5kZXggZGU0ZDM1Mi4uYjBhMzA5YiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtc2hvdy1yZWYudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXNob3ctcmVmLnR4dApAQCAtMjEsNiArMjEsOCBAQAogZGVyZWZlcmVuY2VkIGludG8gb2JqZWN0IElEcy4gQWRkaXRpb25hbGx5LCBpdCBjYW4gYmUgdXNlZCB0byB0ZXN0IHdoZXRoZXIgYQogcGFydGljdWxhciByZWYgZXhpc3RzLgogCitCeSBkZWZhdWx0LCBzaG93cyB0aGUgdGFncywgaGVhZHMsIGFuZCByZW1vdGUgcmVmcy4KKwogVGhlIC0tZXhjbHVkZS1leGlzdGluZyBmb3JtIGlzIGEgZmlsdGVyIHRoYXQgZG9lcyB0aGUgaW52ZXJzZSwgaXQgc2hvd3MgdGhlCiByZWZzIGZyb20gc3RkaW4gdGhhdCBkb24ndCBleGlzdCBpbiB0aGUgbG9jYWwgcmVwb3NpdG9yeS4KIApAQCAtMzIsMTQgKzM0LDE0IEBACiAKIC0taGVhZDo6CiAKLQlTaG93IHRoZSBIRUFEIHJlZmVyZW5jZS4KKwlTaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBub3JtYWxseSBiZSBmaWx0ZXJlZCBvdXQuCiAKIC0tdGFnczo6CiAtLWhlYWRzOjoKIAotCUxpbWl0IHRvIG9ubHkgInJlZnMvaGVhZHMiIGFuZCAicmVmcy90YWdzIiwgcmVzcGVjdGl2ZWx5LiAgVGhlc2UKLQlvcHRpb25zIGFyZSBub3QgbXV0dWFsbHkgZXhjbHVzaXZlOyB3aGVuIGdpdmVuIGJvdGgsIHJlZmVyZW5jZXMgc3RvcmVkCi0JaW4gInJlZnMvaGVhZHMiIGFuZCAicmVmcy90YWdzIiBhcmUgZGlzcGxheWVkLgorCUxpbWl0IHRvICJyZWZzL2hlYWRzIiBhbmQgInJlZnMvdGFncyIsIHJlc3BlY3RpdmVseS4gIFRoZXNlIG9wdGlvbnMKKwlhcmUgbm90IG11dHVhbGx5IGV4Y2x1c2l2ZTsgd2hlbiBnaXZlbiBib3RoLCByZWZlcmVuY2VzIHN0b3JlZCBpbgorCSJyZWZzL2hlYWRzIiBhbmQgInJlZnMvdGFncyIgYXJlIGRpc3BsYXllZC4KIAogLWQ6OgogLS1kZXJlZmVyZW5jZTo6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1zaG93LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXNob3cudHh0CmluZGV4IGFlNGVkY2MuLjRlNjE3ZTYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXNob3cudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXNob3cudHh0CkBAIC00NSw2ICs0NSwxNSBAQAogaW5jbHVkZTo6cHJldHR5LWZvcm1hdHMudHh0W10KIAogCitDT01NT04gRElGRiBPUFRJT05TCistLS0tLS0tLS0tLS0tLS0tLS0tCisKKzpnaXQtbG9nOiAxCitpbmNsdWRlOjpkaWZmLW9wdGlvbnMudHh0W10KKworaW5jbHVkZTo6ZGlmZi1nZW5lcmF0ZS1wYXRjaC50eHRbXQorCisKIEVYQU1QTEVTCiAtLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1zdGFzaC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1zdGFzaC50eHQKaW5kZXggNzExZmZlMS4uZGI3ZTgwMyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtc3Rhc2gudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXN0YXNoLnR4dApAQCAtMTMsMTAgKzEzLDExIEBACiAnZ2l0IHN0YXNoJyBkcm9wIFstcXwtLXF1aWV0XSBbPHN0YXNoPl0KICdnaXQgc3Rhc2gnICggcG9wIHwgYXBwbHkgKSBbLS1pbmRleF0gWy1xfC0tcXVpZXRdIFs8c3Rhc2g+XQogJ2dpdCBzdGFzaCcgYnJhbmNoIDxicmFuY2huYW1lPiBbPHN0YXNoPl0KLSdnaXQgc3Rhc2gnIFtzYXZlIFstLXBhdGNoXSBbLWt8LS1bbm8tXWtlZXAtaW5kZXhdIFstcXwtLXF1aWV0XQorJ2dpdCBzdGFzaCcgW3NhdmUgWy1wfC0tcGF0Y2hdIFsta3wtLVtuby1da2VlcC1pbmRleF0gWy1xfC0tcXVpZXRdCiAJICAgICBbLXV8LS1pbmNsdWRlLXVudHJhY2tlZF0gWy1hfC0tYWxsXSBbPG1lc3NhZ2U+XV0KICdnaXQgc3Rhc2gnIGNsZWFyCi0nZ2l0IHN0YXNoJyBjcmVhdGUKKydnaXQgc3Rhc2gnIGNyZWF0ZSBbPG1lc3NhZ2U+XQorJ2dpdCBzdGFzaCcgc3RvcmUgWy1tfC0tbWVzc2FnZSA8bWVzc2FnZT5dIFstcXwtLXF1aWV0XSA8Y29tbWl0PgogCiBERVNDUklQVElPTgogLS0tLS0tLS0tLS0KQEAgLTE1MSw3ICsxNTIsMTUgQEAKIAogCUNyZWF0ZSBhIHN0YXNoICh3aGljaCBpcyBhIHJlZ3VsYXIgY29tbWl0IG9iamVjdCkgYW5kIHJldHVybiBpdHMKIAlvYmplY3QgbmFtZSwgd2l0aG91dCBzdG9yaW5nIGl0IGFueXdoZXJlIGluIHRoZSByZWYgbmFtZXNwYWNlLgorCVRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZnVsIGZvciBzY3JpcHRzLiAgSXQgaXMgcHJvYmFibHkgbm90CisJdGhlIGNvbW1hbmQgeW91IHdhbnQgdG8gdXNlOyBzZWUgInNhdmUiIGFib3ZlLgogCitzdG9yZTo6CisKKwlTdG9yZSBhIGdpdmVuIHN0YXNoIGNyZWF0ZWQgdmlhICdnaXQgc3Rhc2ggY3JlYXRlJyAod2hpY2ggaXMgYQorCWRhbmdsaW5nIG1lcmdlIGNvbW1pdCkgaW4gdGhlIHN0YXNoIHJlZiwgdXBkYXRpbmcgdGhlIHN0YXNoCisJcmVmbG9nLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBiZSB1c2VmdWwgZm9yIHNjcmlwdHMuICBJdCBpcworCXByb2JhYmx5IG5vdCB0aGUgY29tbWFuZCB5b3Ugd2FudCB0byB1c2U7IHNlZSAic2F2ZSIgYWJvdmUuCiAKIERJU0NVU1NJT04KIC0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXN1Ym1vZHVsZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1zdWJtb2R1bGUudHh0CmluZGV4IGU1NzY3MTMuLmJmZWY4YTAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXN1Ym1vZHVsZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtc3VibW9kdWxlLnR4dApAQCAtMTAsMTIgKzEwLDEyIEBACiAtLS0tLS0tLQogW3ZlcnNlXQogJ2dpdCBzdWJtb2R1bGUnIFstLXF1aWV0XSBhZGQgWy1iIDxicmFuY2g+XSBbLWZ8LS1mb3JjZV0gWy0tbmFtZSA8bmFtZT5dCi0JICAgICAgWy0tcmVmZXJlbmNlIDxyZXBvc2l0b3J5Pl0gWy0tXSA8cmVwb3NpdG9yeT4gWzxwYXRoPl0KKwkgICAgICBbLS1yZWZlcmVuY2UgPHJlcG9zaXRvcnk+XSBbLS1kZXB0aCA8ZGVwdGg+XSBbLS1dIDxyZXBvc2l0b3J5PiBbPHBhdGg+XQogJ2dpdCBzdWJtb2R1bGUnIFstLXF1aWV0XSBzdGF0dXMgWy0tY2FjaGVkXSBbLS1yZWN1cnNpdmVdIFstLV0gWzxwYXRoPi4uLl0KICdnaXQgc3VibW9kdWxlJyBbLS1xdWlldF0gaW5pdCBbLS1dIFs8cGF0aD4uLi5dCiAnZ2l0IHN1Ym1vZHVsZScgWy0tcXVpZXRdIGRlaW5pdCBbLWZ8LS1mb3JjZV0gWy0tXSA8cGF0aD4uLi4KICdnaXQgc3VibW9kdWxlJyBbLS1xdWlldF0gdXBkYXRlIFstLWluaXRdIFstLXJlbW90ZV0gWy1OfC0tbm8tZmV0Y2hdCi0JICAgICAgWy1mfC0tZm9yY2VdIFstLXJlYmFzZV0gWy0tcmVmZXJlbmNlIDxyZXBvc2l0b3J5Pl0KKwkgICAgICBbLWZ8LS1mb3JjZV0gWy0tcmViYXNlXSBbLS1yZWZlcmVuY2UgPHJlcG9zaXRvcnk+XSBbLS1kZXB0aCA8ZGVwdGg+XQogCSAgICAgIFstLW1lcmdlXSBbLS1yZWN1cnNpdmVdIFstLV0gWzxwYXRoPi4uLl0KICdnaXQgc3VibW9kdWxlJyBbLS1xdWlldF0gc3VtbWFyeSBbLS1jYWNoZWR8LS1maWxlc10gWygtbnwtLXN1bW1hcnktbGltaXQpIDxuPl0KIAkgICAgICBbY29tbWl0XSBbLS1dIFs8cGF0aD4uLi5dCkBAIC0xNTksNyArMTU5LDkgQEAKIAlUaGlzIHdpbGwgbWFrZSB0aGUgc3VibW9kdWxlcyBIRUFEIGJlIGRldGFjaGVkIHVubGVzcyBgLS1yZWJhc2VgIG9yCiAJYC0tbWVyZ2VgIGlzIHNwZWNpZmllZCBvciB0aGUga2V5IGBzdWJtb2R1bGUuJG5hbWUudXBkYXRlYCBpcyBzZXQgdG8KIAlgcmViYXNlYCwgYG1lcmdlYCBvciBgbm9uZWAuIGBub25lYCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzcGVjaWZ5aW5nCi0JYC0tY2hlY2tvdXRgLgorCWAtLWNoZWNrb3V0YC4gU2V0dGluZyB0aGUga2V5IGBzdWJtb2R1bGUuJG5hbWUudXBkYXRlYCB0byBgIWNvbW1hbmRgCisJd2lsbCBjYXVzZSBgY29tbWFuZGAgdG8gYmUgcnVuLiBgY29tbWFuZGAgY2FuIGJlIGFueSBhcmJpdHJhcnkgc2hlbGwKKwljb21tYW5kIHRoYXQgdGFrZXMgYSBzaW5nbGUgYXJndW1lbnQsIG5hbWVseSB0aGUgc2hhMSB0byB1cGRhdGUgdG8uCiArCiBJZiB0aGUgc3VibW9kdWxlIGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQsIGFuZCB5b3UganVzdCB3YW50IHRvIHVzZSB0aGUKIHNldHRpbmcgYXMgc3RvcmVkIGluIC5naXRtb2R1bGVzLCB5b3UgY2FuIGF1dG9tYXRpY2FsbHkgaW5pdGlhbGl6ZSB0aGUKQEAgLTI2Miw3ICsyNjQsNyBAQAogLS1yZW1vdGU6OgogCVRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIHRoZSB1cGRhdGUgY29tbWFuZC4gIEluc3RlYWQgb2YgdXNpbmcKIAl0aGUgc3VwZXJwcm9qZWN0J3MgcmVjb3JkZWQgU0hBLTEgdG8gdXBkYXRlIHRoZSBzdWJtb2R1bGUsIHVzZSB0aGUKLQlzdGF0dXMgb2YgdGhlIHN1Ym1vZHVsZSdzIHJlbW90ZSB0cmFja2luZyBicmFuY2guICBUaGUgcmVtb3RlIHVzZWQKKwlzdGF0dXMgb2YgdGhlIHN1Ym1vZHVsZSdzIHJlbW90ZS10cmFja2luZyBicmFuY2guICBUaGUgcmVtb3RlIHVzZWQKIAlpcyBicmFuY2gncyByZW1vdGUgKGBicmFuY2guPG5hbWU+LnJlbW90ZWApLCBkZWZhdWx0aW5nIHRvIGBvcmlnaW5gLgogCVRoZSByZW1vdGUgYnJhbmNoIHVzZWQgZGVmYXVsdHMgdG8gYG1hc3RlcmAsIGJ1dCB0aGUgYnJhbmNoIG5hbWUgbWF5CiAJYmUgb3ZlcnJpZGRlbiBieSBzZXR0aW5nIHRoZSBgc3VibW9kdWxlLjxuYW1lPi5icmFuY2hgIG9wdGlvbiBpbgpAQCAtMzI4LDYgKzMzMCwxMiBAQAogCW9ubHkgaW4gdGhlIHN1Ym1vZHVsZXMgb2YgdGhlIGN1cnJlbnQgcmVwbywgYnV0IGFsc28KIAlpbiBhbnkgbmVzdGVkIHN1Ym1vZHVsZXMgaW5zaWRlIHRob3NlIHN1Ym1vZHVsZXMgKGFuZCBzbyBvbikuCiAKKy0tZGVwdGg6OgorCVRoaXMgb3B0aW9uIGlzIHZhbGlkIGZvciBhZGQgYW5kIHVwZGF0ZSBjb21tYW5kcy4gQ3JlYXRlIGEgJ3NoYWxsb3cnCisJY2xvbmUgd2l0aCBhIGhpc3RvcnkgdHJ1bmNhdGVkIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHJldmlzaW9ucy4KKwlTZWUgbGlua2dpdDpnaXQtY2xvbmVbMV0KKworCiA8cGF0aD4uLi46OgogCVBhdGhzIHRvIHN1Ym1vZHVsZShzKS4gV2hlbiBzcGVjaWZpZWQgdGhpcyB3aWxsIHJlc3RyaWN0IHRoZSBjb21tYW5kCiAJdG8gb25seSBvcGVyYXRlIG9uIHRoZSBzdWJtb2R1bGVzIGZvdW5kIGF0IHRoZSBzcGVjaWZpZWQgcGF0aHMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1zdm4udHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtc3ZuLnR4dAppbmRleCBhYWQ0NTJmLi40ZGQzYmNiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1zdm4udHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXN2bi50eHQKQEAgLTI1Niw3ICsyNTYsNyBAQAogCUZvciBlYWNoIHBhdGNoLCBvbmUgbWF5IGFuc3dlciAieWVzIiAoYWNjZXB0IHRoaXMgcGF0Y2gpLCAibm8iIChkaXNjYXJkIHRoaXMKIAlwYXRjaCksICJhbGwiIChhY2NlcHQgYWxsIHBhdGNoZXMpLCBvciAicXVpdCIuCiAJKwotCSdnaXQgc3ZuIGRjb21taXQnIHJldHVybnMgaW1tZWRpYXRlbHkgaWYgYW5zd2VyIGlmICJubyIgb3IgInF1aXQiLCB3aXRob3V0CisgICAgICAgJ2dpdCBzdm4gZGNvbW1pdCcgcmV0dXJucyBpbW1lZGlhdGVseSBpZiBhbnN3ZXIgaXMgIm5vIiBvciAicXVpdCIsIHdpdGhvdXQKIAljb21taXR0aW5nIGFueXRoaW5nIHRvIFNWTi4KIAogJ2JyYW5jaCc6OgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtdGFnLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXRhZy50eHQKaW5kZXggMjI4OTRjYi4uYzQxOGM0NCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtdGFnLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC10YWcudHh0CkBAIC00Miw2ICs0MiwxNyBAQAogR251UEcga2V5IGZvciBzaWduaW5nLiAJVGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgYGdwZy5wcm9ncmFtYAogaXMgdXNlZCB0byBzcGVjaWZ5IGN1c3RvbSBHbnVQRyBiaW5hcnkuCiAKK1RhZyBvYmplY3RzIChjcmVhdGVkIHdpdGggYC1hYCwgYHNgLCBvciBgLXVgKSBhcmUgY2FsbGVkICJhbm5vdGF0ZWQiCit0YWdzOyB0aGV5IGNvbnRhaW4gYSBjcmVhdGlvbiBkYXRlLCB0aGUgdGFnZ2VyIG5hbWUgYW5kIGUtbWFpbCwgYQordGFnZ2luZyBtZXNzYWdlLCBhbmQgYW4gb3B0aW9uYWwgR251UEcgc2lnbmF0dXJlLiBXaGVyZWFzIGEKKyJsaWdodHdlaWdodCIgdGFnIGlzIHNpbXBseSBhIG5hbWUgZm9yIGFuIG9iamVjdCAodXN1YWxseSBhIGNvbW1pdAorb2JqZWN0KS4KKworQW5ub3RhdGVkIHRhZ3MgYXJlIG1lYW50IGZvciByZWxlYXNlIHdoaWxlIGxpZ2h0d2VpZ2h0IHRhZ3MgYXJlIG1lYW50Citmb3IgcHJpdmF0ZSBvciB0ZW1wb3Jhcnkgb2JqZWN0IGxhYmVscy4gRm9yIHRoaXMgcmVhc29uLCBzb21lIGdpdAorY29tbWFuZHMgZm9yIG5hbWluZyBvYmplY3RzIChsaWtlIGBnaXQgZGVzY3JpYmVgKSB3aWxsIGlnbm9yZQorbGlnaHR3ZWlnaHQgdGFncyBieSBkZWZhdWx0LgorCiAKIE9QVElPTlMKIC0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXdlYi0tYnJvd3NlLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXdlYi0tYnJvd3NlLnR4dAppbmRleCBiYTc5Y2I0Li41YWVjNGVjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC13ZWItLWJyb3dzZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtd2ViLS1icm93c2UudHh0CkBAIC0zNCw2ICszNCw3IEBACiAqIGRpbGxvCiAqIG9wZW4gKHRoaXMgaXMgdGhlIGRlZmF1bHQgdW5kZXIgTWFjIE9TIFggR1VJKQogKiBzdGFydCAodGhpcyBpcyB0aGUgZGVmYXVsdCB1bmRlciBNaW5HVykKKyogY3lnc3RhcnQgKHRoaXMgaXMgdGhlIGRlZmF1bHQgdW5kZXIgQ3lnd2luKQogCiBDdXN0b20gY29tbWFuZHMgbWF5IGFsc28gYmUgc3BlY2lmaWVkLgogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC50eHQKaW5kZXggOWUzMDJiMC4uZGNhMTFjYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LnR4dApAQCAtNDMsMTIgKzQzLDI2IEBACiBicmFuY2ggb2YgdGhlIGBnaXQuZ2l0YCByZXBvc2l0b3J5LgogRG9jdW1lbnRhdGlvbiBmb3Igb2xkZXIgcmVsZWFzZXMgYXJlIGF2YWlsYWJsZSBoZXJlOgogCisqIGxpbms6djEuOC40L2dpdC5odG1sW2RvY3VtZW50YXRpb24gZm9yIHJlbGVhc2UgMS44LjRdCisKKyogcmVsZWFzZSBub3RlcyBmb3IKKyAgbGluazpSZWxOb3Rlcy8xLjguNC50eHRbMS44LjRdLgorCisqIGxpbms6djEuOC4zLjQvZ2l0Lmh0bWxbZG9jdW1lbnRhdGlvbiBmb3IgcmVsZWFzZSAxLjguMy40XQorCisqIHJlbGVhc2Ugbm90ZXMgZm9yCisgIGxpbms6UmVsTm90ZXMvMS44LjMuNC50eHRbMS44LjMuNF0sCisgIGxpbms6UmVsTm90ZXMvMS44LjMuMy50eHRbMS44LjMuM10sCisgIGxpbms6UmVsTm90ZXMvMS44LjMuMi50eHRbMS44LjMuMl0sCisgIGxpbms6UmVsTm90ZXMvMS44LjMuMS50eHRbMS44LjMuMV0sCisgIGxpbms6UmVsTm90ZXMvMS44LjMudHh0WzEuOC4zXS4KKwogKiBsaW5rOnYxLjguMi4zL2dpdC5odG1sW2RvY3VtZW50YXRpb24gZm9yIHJlbGVhc2UgMS44LjIuM10KIAogKiByZWxlYXNlIG5vdGVzIGZvcgotICBsaW5rOlJlbE5vdGVzLzEuOC4yLjMudHh0WzEuOC4yLjNdLgotICBsaW5rOlJlbE5vdGVzLzEuOC4yLjIudHh0WzEuOC4yLjJdLgotICBsaW5rOlJlbE5vdGVzLzEuOC4yLjEudHh0WzEuOC4yLjFdLgorICBsaW5rOlJlbE5vdGVzLzEuOC4yLjMudHh0WzEuOC4yLjNdLAorICBsaW5rOlJlbE5vdGVzLzEuOC4yLjIudHh0WzEuOC4yLjJdLAorICBsaW5rOlJlbE5vdGVzLzEuOC4yLjEudHh0WzEuOC4yLjFdLAogICBsaW5rOlJlbE5vdGVzLzEuOC4yLnR4dFsxLjguMl0uCiAKICogbGluazp2MS44LjEuNi9naXQuaHRtbFtkb2N1bWVudGF0aW9uIGZvciByZWxlYXNlIDEuOC4xLjZdCkBAIC02NzcsOSArNjkxLDcgQEAKIAlUaGUgJy0tZ2l0LWRpcicgY29tbWFuZC1saW5lIG9wdGlvbiBhbHNvIHNldHMgdGhpcyB2YWx1ZS4KIAogJ0dJVF9XT1JLX1RSRUUnOjoKLQlTZXQgdGhlIHBhdGggdG8gdGhlIHdvcmtpbmcgdHJlZS4gIFRoZSB2YWx1ZSB3aWxsIG5vdCBiZQotCXVzZWQgaW4gY29tYmluYXRpb24gd2l0aCByZXBvc2l0b3JpZXMgZm91bmQgYXV0b21hdGljYWxseSBpbgotCWEgLmdpdCBkaXJlY3RvcnkgKGkuZS4gJEdJVF9ESVIgaXMgbm90IHNldCkuCisJU2V0IHRoZSBwYXRoIHRvIHRoZSByb290IG9mIHRoZSB3b3JraW5nIHRyZWUuCiAJVGhpcyBjYW4gYWxzbyBiZSBjb250cm9sbGVkIGJ5IHRoZSAnLS13b3JrLXRyZWUnIGNvbW1hbmQgbGluZQogCW9wdGlvbiBhbmQgdGhlIGNvcmUud29ya3RyZWUgY29uZmlndXJhdGlvbiB2YXJpYWJsZS4KIApAQCAtODExLDggKzgyMyw5IEBACiAnR0lUX0ZMVVNIJzo6CiAJSWYgdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgdG8gIjEiLCB0aGVuIGNvbW1hbmRzIHN1Y2gKIAlhcyAnZ2l0IGJsYW1lJyAoaW4gaW5jcmVtZW50YWwgbW9kZSksICdnaXQgcmV2LWxpc3QnLCAnZ2l0IGxvZycsCi0JYW5kICdnaXQgd2hhdGNoYW5nZWQnIHdpbGwgZm9yY2UgYSBmbHVzaCBvZiB0aGUgb3V0cHV0IHN0cmVhbQotCWFmdGVyIGVhY2ggY29tbWl0LW9yaWVudGVkIHJlY29yZCBoYXZlIGJlZW4gZmx1c2hlZC4gICBJZiB0aGlzCisJJ2dpdCBjaGVjay1hdHRyJywgJ2dpdCBjaGVjay1pZ25vcmUnLCBhbmQgJ2dpdCB3aGF0Y2hhbmdlZCcgd2lsbAorCWZvcmNlIGEgZmx1c2ggb2YgdGhlIG91dHB1dCBzdHJlYW0gYWZ0ZXIgZWFjaCByZWNvcmQgaGF2ZSBiZWVuCisJZmx1c2hlZC4gSWYgdGhpcwogCXZhcmlhYmxlIGlzIHNldCB0byAiMCIsIHRoZSBvdXRwdXQgb2YgdGhlc2UgY29tbWFuZHMgd2lsbCBiZSBkb25lCiAJdXNpbmcgY29tcGxldGVseSBidWZmZXJlZCBJL08uICAgSWYgdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcwogCW5vdCBzZXQsIEdpdCB3aWxsIGNob29zZSBidWZmZXJlZCBvciByZWNvcmQtb3JpZW50ZWQgZmx1c2hpbmcKQEAgLTgzMiw2ICs4NDUsMTkgQEAKIAlhcyBhIGZpbGUgcGF0aCBhbmQgd2lsbCB0cnkgdG8gd3JpdGUgdGhlIHRyYWNlIG1lc3NhZ2VzCiAJaW50byBpdC4KIAorJ0dJVF9UUkFDRV9QQUNLX0FDQ0VTUyc6OgorCUlmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIGEgcGF0aCwgYSBmaWxlIHdpbGwgYmUgY3JlYXRlZCBhdAorCXRoZSBnaXZlbiBwYXRoIGxvZ2dpbmcgYWxsIGFjY2Vzc2VzIHRvIGFueSBwYWNrcy4gRm9yIGVhY2gKKwlhY2Nlc3MsIHRoZSBwYWNrIGZpbGUgbmFtZSBhbmQgYW4gb2Zmc2V0IGluIHRoZSBwYWNrIGlzCisJcmVjb3JkZWQuIFRoaXMgbWF5IGJlIGhlbHBmdWwgZm9yIHRyb3VibGVzaG9vdGluZyBzb21lCisJcGFjay1yZWxhdGVkIHBlcmZvcm1hbmNlIHByb2JsZW1zLgorCisnR0lUX1RSQUNFX1BBQ0tFVCc6OgorCUlmIHRoaXMgdmFyaWFibGUgaXMgc2V0LCBpdCBzaG93cyBhIHRyYWNlIG9mIGFsbCBwYWNrZXRzCisJY29taW5nIGluIG9yIG91dCBvZiBhIGdpdmVuIHByb2dyYW0uIFRoaXMgY2FuIGhlbHAgd2l0aAorCWRlYnVnZ2luZyBvYmplY3QgbmVnb3RpYXRpb24gb3Igb3RoZXIgcHJvdG9jb2wgaXNzdWVzLiBUcmFjaW5nCisJaXMgdHVybmVkIG9mZiBhdCBhIHBhY2tldCBzdGFydGluZyB3aXRoICJQQUNLIi4KKwogR0lUX0xJVEVSQUxfUEFUSFNQRUNTOjoKIAlTZXR0aW5nIHRoaXMgdmFyaWFibGUgdG8gYDFgIHdpbGwgY2F1c2UgR2l0IHRvIHRyZWF0IGFsbAogCXBhdGhzcGVjcyBsaXRlcmFsbHksIHJhdGhlciB0aGFuIGFzIGdsb2IgcGF0dGVybnMuIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXRkaWZmY29yZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdGRpZmZjb3JlLnR4dAppbmRleCA1NjhkNzU3Li5jOGIzZTUxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdGRpZmZjb3JlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdGRpZmZjb3JlLnR4dApAQCAtMjIyLDI2ICsyMjIsMzUgQEAKIGRpZmZjb3JlLXBpY2theGU6IEZvciBEZXRlY3RpbmcgQWRkaXRpb24vRGVsZXRpb24gb2YgU3BlY2lmaWVkIFN0cmluZwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVRoaXMgdHJhbnNmb3JtYXRpb24gaXMgdXNlZCB0byBmaW5kIGZpbGVwYWlycyB0aGF0IHJlcHJlc2VudAotY2hhbmdlcyB0aGF0IHRvdWNoIGEgc3BlY2lmaWVkIHN0cmluZywgYW5kIGlzIGNvbnRyb2xsZWQgYnkgdGhlCi0tUyBvcHRpb24gYW5kIHRoZSBgLS1waWNrYXhlLWFsbGAgb3B0aW9uIHRvIHRoZSAnZ2l0IGRpZmYtKicKLWNvbW1hbmRzLgorVGhpcyB0cmFuc2Zvcm1hdGlvbiBsaW1pdHMgdGhlIHNldCBvZiBmaWxlcGFpcnMgdG8gdGhvc2UgdGhhdCBjaGFuZ2UKK3NwZWNpZmllZCBzdHJpbmdzIGJldHdlZW4gdGhlIHByZWltYWdlIGFuZCB0aGUgcG9zdGltYWdlIGluIGEgY2VydGFpbgord2F5LiAgLVM8YmxvY2sgb2YgdGV4dD4gYW5kIC1HPHJlZ3VsYXIgZXhwcmVzc2lvbj4gb3B0aW9ucyBhcmUgdXNlZCB0bworc3BlY2lmeSBkaWZmZXJlbnQgd2F5cyB0aGVzZSBzdHJpbmdzIGFyZSBzb3VnaHQuCiAKLVdoZW4gZGlmZmNvcmUtcGlja2F4ZSBpcyBpbiB1c2UsIGl0IGNoZWNrcyBpZiB0aGVyZSBhcmUKLWZpbGVwYWlycyB3aG9zZSAicmVzdWx0IiBzaWRlIGFuZCB3aG9zZSAib3JpZ2luIiBzaWRlIGhhdmUKLWRpZmZlcmVudCBudW1iZXIgb2Ygc3BlY2lmaWVkIHN0cmluZy4gIFN1Y2ggYSBmaWxlcGFpciByZXByZXNlbnRzCi0idGhlIHN0cmluZyBhcHBlYXJlZCBpbiB0aGlzIGNoYW5nZXNldCIuICBJdCBhbHNvIGNoZWNrcyBmb3IgdGhlCi1vcHBvc2l0ZSBjYXNlIHRoYXQgbG9zZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcuCisiLVM8YmxvY2sgb2YgdGV4dD4iIGRldGVjdHMgZmlsZXBhaXJzIHdob3NlIHByZWltYWdlIGFuZCBwb3N0aW1hZ2UKK2hhdmUgZGlmZmVyZW50IG51bWJlciBvZiBvY2N1cnJlbmNlcyBvZiB0aGUgc3BlY2lmaWVkIGJsb2NrIG9mIHRleHQuCitCeSBkZWZpbml0aW9uLCBpdCB3aWxsIG5vdCBkZXRlY3QgaW4tZmlsZSBtb3Zlcy4gIEFsc28sIHdoZW4gYQorY2hhbmdlc2V0IG1vdmVzIGEgZmlsZSB3aG9sZXNhbGUgd2l0aG91dCBhZmZlY3RpbmcgdGhlIGludGVyZXN0aW5nCitzdHJpbmcsIGRpZmZjb3JlLXJlbmFtZSBraWNrcyBpbiBhcyB1c3VhbCwgYW5kIGAtU2Agb21pdHMgdGhlIGZpbGVwYWlyCisoc2luY2UgdGhlIG51bWJlciBvZiBvY2N1cnJlbmNlcyBvZiB0aGF0IHN0cmluZyBkaWRuJ3QgY2hhbmdlIGluIHRoYXQKK3JlbmFtZS1kZXRlY3RlZCBmaWxlcGFpcikuICBXaGVuIHVzZWQgd2l0aCBgLS1waWNrYXhlLXJlZ2V4YCwgdHJlYXQKK3RoZSA8YmxvY2sgb2YgdGV4dD4gYXMgYW4gZXh0ZW5kZWQgUE9TSVggcmVndWxhciBleHByZXNzaW9uIHRvIG1hdGNoLAoraW5zdGVhZCBvZiBhIGxpdGVyYWwgc3RyaW5nLgogCi1XaGVuIGAtLXBpY2theGUtYWxsYCBpcyBub3QgaW4gZWZmZWN0LCBkaWZmY29yZS1waWNrYXhlIGxlYXZlcwotb25seSBzdWNoIGZpbGVwYWlycyB0aGF0IHRvdWNoIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGluIGl0cwotb3V0cHV0LiAgV2hlbiBgLS1waWNrYXhlLWFsbGAgaXMgdXNlZCwgZGlmZmNvcmUtcGlja2F4ZSBsZWF2ZXMgYWxsCi1maWxlcGFpcnMgaW50YWN0IGlmIHRoZXJlIGlzIHN1Y2ggYSBmaWxlcGFpciwgb3IgbWFrZXMgdGhlCi1vdXRwdXQgZW1wdHkgb3RoZXJ3aXNlLiAgVGhlIGxhdHRlciBiZWhhdmlvdXIgaXMgZGVzaWduZWQgdG8KLW1ha2UgcmV2aWV3aW5nIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjb250ZXh0IG9mIHRoZSB3aG9sZQorIi1HPHJlZ3VsYXIgZXhwcmVzc2lvbj4iIChtbmVtb25pYzogZ3JlcCkgZGV0ZWN0cyBmaWxlcGFpcnMgd2hvc2UKK3RleHR1YWwgZGlmZiBoYXMgYW4gYWRkZWQgb3IgYSBkZWxldGVkIGxpbmUgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbgorcmVndWxhciBleHByZXNzaW9uLiAgVGhpcyBtZWFucyB0aGF0IGl0IHdpbGwgZGV0ZWN0IGluLWZpbGUgKG9yIHdoYXQKK3JlbmFtZS1kZXRlY3Rpb24gY29uc2lkZXJzIHRoZSBzYW1lIGZpbGUpIG1vdmVzLCB3aGljaCBpcyBub2lzZS4gIFRoZQoraW1wbGVtZW50YXRpb24gcnVucyBkaWZmIHR3aWNlIGFuZCBncmVwcywgYW5kIHRoaXMgY2FuIGJlIHF1aXRlCitleHBlbnNpdmUuCisKK1doZW4gYC1TYCBvciBgLUdgIGFyZSB1c2VkIHdpdGhvdXQgYC0tcGlja2F4ZS1hbGxgLCBvbmx5IGZpbGVwYWlycwordGhhdCBtYXRjaCB0aGVpciByZXNwZWN0aXZlIGNyaXRlcmlvbiBhcmUga2VwdCBpbiB0aGUgb3V0cHV0LiAgV2hlbgorYC0tcGlja2F4ZS1hbGxgIGlzIHVzZWQsIGlmIGV2ZW4gb25lIGZpbGVwYWlyIG1hdGNoZXMgdGhlaXIgcmVzcGVjdGl2ZQorY3JpdGVyaW9uIGluIGEgY2hhbmdlc2V0LCB0aGUgZW50aXJlIGNoYW5nZXNldCBpcyBrZXB0LiAgVGhpcyBiZWhhdmlvcgoraXMgZGVzaWduZWQgdG8gbWFrZSByZXZpZXdpbmcgY2hhbmdlcyBpbiB0aGUgY29udGV4dCBvZiB0aGUgd2hvbGUKIGNoYW5nZXNldCBlYXNpZXIuCiAKLQogZGlmZmNvcmUtb3JkZXI6IEZvciBTb3J0aW5nIHRoZSBPdXRwdXQgQmFzZWQgb24gRmlsZW5hbWVzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXRyZW1vdGUtaGVscGVycy50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdHJlbW90ZS1oZWxwZXJzLnR4dAppbmRleCBkYTc0NjQxLi4wODI3ZjY5IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdHJlbW90ZS1oZWxwZXJzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdHJlbW90ZS1oZWxwZXJzLnR4dApAQCAtMTU5LDExICsxNTksMTEgQEAKIAljYXJyaWVkIG91dC4KIAogJ3JlZnNwZWMnIDxyZWZzcGVjPjo6Ci0JVGhpcyBtb2RpZmllcyB0aGUgJ2ltcG9ydCcgY2FwYWJpbGl0eSwgYWxsb3dpbmcgdGhlIHByb2R1Y2VkCi0JZmFzdC1pbXBvcnQgc3RyZWFtIHRvIG1vZGlmeSByZWZzIGluIGEgcHJpdmF0ZSBuYW1lc3BhY2UKLQlpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gcmVmcy9oZWFkcyBvciByZWZzL3JlbW90ZXMgZGlyZWN0bHkuCisJRm9yIHJlbW90ZSBoZWxwZXJzIHRoYXQgaW1wbGVtZW50ICdpbXBvcnQnIG9yICdleHBvcnQnLCB0aGlzIGNhcGFiaWxpdHkKKwlhbGxvd3MgdGhlIHJlZnMgdG8gYmUgY29uc3RyYWluZWQgdG8gYSBwcml2YXRlIG5hbWVzcGFjZSwgaW5zdGVhZCBvZgorCXdyaXRpbmcgdG8gcmVmcy9oZWFkcyBvciByZWZzL3JlbW90ZXMgZGlyZWN0bHkuCiAJSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBhbGwgaW1wb3J0ZXJzIHByb3ZpZGluZyB0aGUgJ2ltcG9ydCcKLQljYXBhYmlsaXR5IHVzZSB0aGlzLgorCWNhcGFiaWxpdHkgdXNlIHRoaXMuIEl0J3MgbWFuZGF0b3J5IGZvciAnZXhwb3J0Jy4KICsKIEEgaGVscGVyIGFkdmVydGlzaW5nIHRoZSBjYXBhYmlsaXR5CiBgcmVmc3BlYyByZWZzL2hlYWRzLyo6cmVmcy9zdm4vb3JpZ2luL2JyYW5jaGVzLypgCkBAIC0xNzQsOCArMTc0LDggQEAKIFRoaXMgY2FwYWJpbGl0eSBjYW4gYmUgYWR2ZXJ0aXNlZCBtdWx0aXBsZSB0aW1lcy4gIFRoZSBmaXJzdAogYXBwbGljYWJsZSByZWZzcGVjIHRha2VzIHByZWNlZGVuY2UuICBUaGUgbGVmdC1oYW5kIG9mIHJlZnNwZWNzCiBhZHZlcnRpc2VkIHdpdGggdGhpcyBjYXBhYmlsaXR5IG11c3QgY292ZXIgYWxsIHJlZnMgcmVwb3J0ZWQgYnkKLXRoZSBsaXN0IGNvbW1hbmQuICBJZiBhIGhlbHBlciBkb2VzIG5vdCBuZWVkIGEgc3BlY2lmaWMgJ3JlZnNwZWMnCi1jYXBhYmlsaXR5IHRoZW4gaXQgc2hvdWxkIGFkdmVydGlzZSBgcmVmc3BlYyAqOipgLgordGhlIGxpc3QgY29tbWFuZC4gIElmIG5vICdyZWZzcGVjJyBjYXBhYmlsaXR5IGlzIGFkdmVydGlzZWQsCit0aGVyZSBpcyBhbiBpbXBsaWVkIGByZWZzcGVjICo6KmAuCiAKICdiaWRpLWltcG9ydCc6OgogCVRoaXMgbW9kaWZpZXMgdGhlICdpbXBvcnQnIGNhcGFiaWxpdHkuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdHJlcG9zaXRvcnktbGF5b3V0LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0cmVwb3NpdG9yeS1sYXlvdXQudHh0CmluZGV4IGQ2ZjMzOTMuLmFhMDM4ODIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0cmVwb3NpdG9yeS1sYXlvdXQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0cmVwb3NpdG9yeS1sYXlvdXQudHh0CkBAIC0yMTEsNiArMjExLDkgQEAKIAlhbmQgbWFpbnRhaW5lZCBieSBzaGFsbG93IGNsb25lIG1lY2hhbmlzbS4gIFNlZSBgLS1kZXB0aGAKIAlvcHRpb24gdG8gbGlua2dpdDpnaXQtY2xvbmVbMV0gYW5kIGxpbmtnaXQ6Z2l0LWZldGNoWzFdLgogCittb2R1bGVzOjoKKwlDb250YWlucyB0aGUgZ2l0LXJlcG9zaXRvcmllcyBvZiB0aGUgc3VibW9kdWxlcy4KKwogU0VFIEFMU08KIC0tLS0tLS0tCiBsaW5rZ2l0OmdpdC1pbml0WzFdLApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXR3ZWIuY29uZi50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdHdlYi5jb25mLnR4dAppbmRleCBlYTA1MjZlLi4zMDVkYjYzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdHdlYi5jb25mLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdHdlYi5jb25mLnR4dApAQCAtMzM2LDggKzMzNiwyNiBAQAogCXVzZWQgYXMgdGhlIGZpcnN0IGNvbXBvbmVudCBvZiBnaXR3ZWIncyAiYnJlYWRjcnVtYiB0cmFpbCI6CiAJYDxob21lIGxpbms+IC8gPHByb2plY3Q+IC8gPGFjdGlvbj5gLiAgQ2FuIGJlIHNldCBhdCBidWlsZCB0aW1lIHVzaW5nCiAJdGhlIGBHSVRXRUJfSE9NRV9MSU5LX1NUUmAgdmFyaWFibGUuICBCeSBkZWZhdWx0IGl0IGlzIHNldCB0byAicHJvamVjdHMiLAotCWFzIHRoaXMgbGluayBsZWFkcyB0byB0aGUgbGlzdCBvZiBwcm9qZWN0cy4gIE90aGVyIHBvcHVsYXIgY2hvaWNlIGl0IHRvCi0Jc2V0IGl0IHRvIHRoZSBuYW1lIG9mIHNpdGUuCisJYXMgdGhpcyBsaW5rIGxlYWRzIHRvIHRoZSBsaXN0IG9mIHByb2plY3RzLiAgQW5vdGhlciBwb3B1bGFyIGNob2ljZSBpcyB0bworCXNldCBpdCB0byB0aGUgbmFtZSBvZiBzaXRlLiAgTm90ZSB0aGF0IGl0IGlzIHRyZWF0ZWQgYXMgcmF3IEhUTUwgc28gaXQKKwlzaG91bGQgbm90IGJlIHNldCBmcm9tIHVudHJ1c3RlZCBzb3VyY2VzLgorCitAZXh0cmFfYnJlYWRjcnVtYnM6OgorCUFkZGl0aW9uYWwgbGlua3MgdG8gYmUgYWRkZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBicmVhZGNydW1iIHRyYWlsIGJlZm9yZQorCXRoZSBob21lIGxpbmssIHRvIHBhZ2VzIHRoYXQgYXJlIGxvZ2ljYWxseSAiYWJvdmUiIHRoZSBnaXR3ZWIgcHJvamVjdHMKKwlsaXN0LCBzdWNoIGFzIHRoZSBvcmdhbml6YXRpb24gYW5kIGRlcGFydG1lbnQgd2hpY2ggaG9zdCB0aGUgZ2l0d2ViCisJc2VydmVyLiBFYWNoIGVsZW1lbnQgb2YgdGhlIGxpc3QgaXMgYSByZWZlcmVuY2UgdG8gYW4gYXJyYXksIGluIHdoaWNoCisJZWxlbWVudCAwIGlzIHRoZSBsaW5rIHRleHQgKGVxdWl2YWxlbnQgdG8gYCRob21lX2xpbmtfc3RyYCkgYW5kIGVsZW1lbnQKKwkxIGlzIHRoZSB0YXJnZXQgVVJMIChlcXVpdmFsZW50IHRvIGAkaG9tZV9saW5rYCkuCisrCitGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBzZXR0aW5nIHByb2R1Y2VzIGEgYnJlYWRjcnVtYiB0cmFpbCBsaWtlCisiaG9tZSAvIGRldiAvIHByb2plY3RzIC8gLi4uIiB3aGVyZSAicHJvamVjdHMiIGlzIHRoZSBob21lIGxpbmsuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgb3VyIEBleHRyYV9icmVhZGNydW1icyA9ICgKKyAgICAgIFsgJ2hvbWUnID0+ICdodHRwczovL3d3dy5leGFtcGxlLm9yZy8nIF0sCisgICAgICBbICdkZXYnICA9PiAnaHR0cHM6Ly9kZXYuZXhhbXBsZS5vcmcvJyBdLAorICAgICk7CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICRsb2dvX3VybDo6CiAkbG9nb19sYWJlbDo6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdHdlYi50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdHdlYi50eHQKaW5kZXggNDA5NjlmMS4uY2NhMTRiOCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXR3ZWIudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0d2ViLnR4dApAQCAtNTA0LDcgKzUwNCw3IEBACiAKIFRoZSBhYm92ZSBjb25maWd1cmF0aW9uIGV4cGVjdHMgeW91ciBwdWJsaWMgcmVwb3NpdG9yaWVzIHRvIGxpdmUgdW5kZXIKICcvcHViL2dpdCcgYW5kIHdpbGwgc2VydmUgdGhlbSBhcyBgaHR0cDovL2dpdC5kb21haW4ub3JnL2Rpci11bmRlci1wdWItZ2l0YCwKLWJvdGggYXMgY2xvbmVhYmxlIEdpdCBVUkwgYW5kIGFzIGJyb3dzZWFibGUgZ2l0d2ViIGludGVyZmFjZS4gIElmIHlvdSB0aGVuCitib3RoIGFzIGNsb25hYmxlIEdpdCBVUkwgYW5kIGFzIGJyb3dzZWFibGUgZ2l0d2ViIGludGVyZmFjZS4gIElmIHlvdSB0aGVuCiBzdGFydCB5b3VyIGxpbmtnaXQ6Z2l0LWRhZW1vblsxXSB3aXRoIGAtLWJhc2UtcGF0aD0vcHViL2dpdCAtLWV4cG9ydC1hbGxgCiB0aGVuIHlvdSBjYW4gZXZlbiB1c2UgdGhlIGBnaXQ6Ly9gIFVSTCB3aXRoIGV4YWN0bHkgdGhlIHNhbWUgcGF0aC4KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9nbG9zc2FyeS1jb250ZW50LnR4dCBiL0RvY3VtZW50YXRpb24vZ2xvc3NhcnktY29udGVudC50eHQKaW5kZXggNjhhMThlMS4uZGJhNTA2MiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9nbG9zc2FyeS1jb250ZW50LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dsb3NzYXJ5LWNvbnRlbnQudHh0CkBAIC0xMTMsNyArMTEzLDcgQEAKIHdoaWxlIHRoZSBIRUFEIGlzIGRldGFjaGVkLiBUaGV5IHVwZGF0ZSB0aGUgSEVBRCB0byBwb2ludCBhdCB0aGUgdGlwCiBvZiB0aGUgdXBkYXRlZCBoaXN0b3J5IHdpdGhvdXQgYWZmZWN0aW5nIGFueSBicmFuY2guICBDb21tYW5kcyB0aGF0CiB1cGRhdGUgb3IgaW5xdWlyZSBpbmZvcm1hdGlvbiBfYWJvdXRfIHRoZSBjdXJyZW50IGJyYW5jaCAoZS5nLiBgZ2l0Ci1icmFuY2ggLS1zZXQtdXBzdHJlYW0tdG9gIHRoYXQgc2V0cyB3aGF0IHJlbW90ZSB0cmFja2luZyBicmFuY2ggdGhlCiticmFuY2ggLS1zZXQtdXBzdHJlYW0tdG9gIHRoYXQgc2V0cyB3aGF0IHJlbW90ZS10cmFja2luZyBicmFuY2ggdGhlCiBjdXJyZW50IGJyYW5jaCBpbnRlZ3JhdGVzIHdpdGgpIG9idmlvdXNseSBkbyBub3Qgd29yaywgYXMgdGhlcmUgaXMgbm8KIChyZWFsKSBjdXJyZW50IGJyYW5jaCB0byBhc2sgYWJvdXQgaW4gdGhpcyBzdGF0ZS4KIApAQCAtMjY3LDcgKzI2Nyw3IEBACiAJVGhlIGRlZmF1bHQgdXBzdHJlYW0gPDxkZWZfcmVwb3NpdG9yeSxyZXBvc2l0b3J5Pj4uIE1vc3QgcHJvamVjdHMgaGF2ZQogCWF0IGxlYXN0IG9uZSB1cHN0cmVhbSBwcm9qZWN0IHdoaWNoIHRoZXkgdHJhY2suIEJ5IGRlZmF1bHQKIAknb3JpZ2luJyBpcyB1c2VkIGZvciB0aGF0IHB1cnBvc2UuIE5ldyB1cHN0cmVhbSB1cGRhdGVzCi0Jd2lsbCBiZSBmZXRjaGVkIGludG8gcmVtb3RlIDw8ZGVmX3JlbW90ZV90cmFja2luZ19icmFuY2gscmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzPj4gbmFtZWQKKwl3aWxsIGJlIGZldGNoZWQgaW50byA8PGRlZl9yZW1vdGVfdHJhY2tpbmdfYnJhbmNoLHJlbW90ZS10cmFja2luZyBicmFuY2hlcz4+IG5hbWVkCiAJb3JpZ2luL25hbWUtb2YtdXBzdHJlYW0tYnJhbmNoLCB3aGljaCB5b3UgY2FuIHNlZSB1c2luZwogCWBnaXQgYnJhbmNoIC1yYC4KIApAQCAtNDAwLDEyICs0MDAsMTMgQEAKIAk8PGRlZl9yZWYscmVmPj4gYW5kIGxvY2FsIHJlZi4KIAogW1tkZWZfcmVtb3RlX3RyYWNraW5nX2JyYW5jaF1dcmVtb3RlLXRyYWNraW5nIGJyYW5jaDo6Ci0JQSByZWd1bGFyIEdpdCA8PGRlZl9icmFuY2gsYnJhbmNoPj4gdGhhdCBpcyB1c2VkIHRvIGZvbGxvdyBjaGFuZ2VzIGZyb20KLQlhbm90aGVyIDw8ZGVmX3JlcG9zaXRvcnkscmVwb3NpdG9yeT4+LiBBIHJlbW90ZS10cmFja2luZwotCWJyYW5jaCBzaG91bGQgbm90IGNvbnRhaW4gZGlyZWN0IG1vZGlmaWNhdGlvbnMgb3IgaGF2ZSBsb2NhbCBjb21taXRzCi0JbWFkZSB0byBpdC4gQSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGNhbiB1c3VhbGx5IGJlCi0JaWRlbnRpZmllZCBhcyB0aGUgcmlnaHQtaGFuZC1zaWRlIDw8ZGVmX3JlZixyZWY+PiBpbiBhIFB1bGw6Ci0JPDxkZWZfcmVmc3BlYyxyZWZzcGVjPj4uCisJQSA8PGRlZl9yZWYscmVmPj4gdGhhdCBpcyB1c2VkIHRvIGZvbGxvdyBjaGFuZ2VzIGZyb20gYW5vdGhlcgorCTw8ZGVmX3JlcG9zaXRvcnkscmVwb3NpdG9yeT4+LiBJdCB0eXBpY2FsbHkgbG9va3MgbGlrZQorCSdyZWZzL3JlbW90ZXMvZm9vL2JhcicgKGluZGljYXRpbmcgdGhhdCBpdCB0cmFja3MgYSBicmFuY2ggbmFtZWQKKwknYmFyJyBpbiBhIHJlbW90ZSBuYW1lZCAnZm9vJyksIGFuZCBtYXRjaGVzIHRoZSByaWdodC1oYW5kLXNpZGUgb2YKKwlhIGNvbmZpZ3VyZWQgZmV0Y2ggPDxkZWZfcmVmc3BlYyxyZWZzcGVjPj4uIEEgcmVtb3RlLXRyYWNraW5nCisJYnJhbmNoIHNob3VsZCBub3QgY29udGFpbiBkaXJlY3QgbW9kaWZpY2F0aW9ucyBvciBoYXZlIGxvY2FsCisJY29tbWl0cyBtYWRlIHRvIGl0LgogCiBbW2RlZl9yZXBvc2l0b3J5XV1yZXBvc2l0b3J5OjoKIAlBIGNvbGxlY3Rpb24gb2YgPDxkZWZfcmVmLHJlZnM+PiB0b2dldGhlciB3aXRoIGFuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2hvd3RvL25ldy1jb21tYW5kLnR4dCBiL0RvY3VtZW50YXRpb24vaG93dG8vbmV3LWNvbW1hbmQudHh0CmluZGV4IDJhYmMzYTAuLmQ3ZGU1YTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vaG93dG8vbmV3LWNvbW1hbmQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vaG93dG8vbmV3LWNvbW1hbmQudHh0CkBAIC05NCw3ICs5NCw3IEBACiA2LiBUaGVyZSBpcyBhIGZpbGUgY29tbWFuZC1saXN0LnR4dCBpbiB0aGUgZGlzdHJpYnV0aW9uIG1haW4gZGlyZWN0b3J5CiB0aGF0IGNhdGVnb3JpemVzIGNvbW1hbmRzIGJ5IHR5cGUsIHNvIHRoZXkgY2FuIGJlIGxpc3RlZCBpbiBhcHByb3ByaWF0ZQogc3Vic2VjdGlvbnMgaW4gdGhlIGRvY3VtZW50YXRpb24ncyBzdW1tYXJ5IGNvbW1hbmQgbGlzdC4gIEFkZCBhbiBlbnRyeQotZm9yIHlvdXJzLiAgVG8gdW5kZXJzdGFuZCB0aGUgY2F0ZWdvcmllcywgbG9vayBhdCBnaXQtY21tYW5kcy50eHQKK2ZvciB5b3Vycy4gIFRvIHVuZGVyc3RhbmQgdGhlIGNhdGVnb3JpZXMsIGxvb2sgYXQgZ2l0LWNvbW1hbmRzLnR4dAogaW4gdGhlIG1haW4gZGlyZWN0b3J5LgogCiA3LiBHaXZlIHRoZSBtYWludGFpbmVyIG9uZSBwYXJhZ3JhcGggdG8gaW5jbHVkZSBpbiB0aGUgUmVsTm90ZXMgZmlsZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ob3d0by9yZXZlcnQtYnJhbmNoLXJlYmFzZS50eHQgYi9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1icmFuY2gtcmViYXNlLnR4dAppbmRleCA4NGRkODM5Li4wZDU0MTllIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1icmFuY2gtcmViYXNlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1icmFuY2gtcmViYXNlLnR4dApAQCAtMTIsNyArMTIsNyBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogT25lIG9mIHRoZSBjaGFuZ2VzIEkgcHVsbGVkIGludG8gdGhlICdtYXN0ZXInIGJyYW5jaCB0dXJucyBvdXQgdG8KLWJyZWFrIGJ1aWxkaW5nIEdpdCB3aXRoIEdDQyAyLjk1LiAgV2hpbGUgdGhleSB3ZXJlIHdlbGwgaW50ZW50aW9uZWQKK2JyZWFrIGJ1aWxkaW5nIEdpdCB3aXRoIEdDQyAyLjk1LiAgV2hpbGUgdGhleSB3ZXJlIHdlbGwtaW50ZW50aW9uZWQKIHBvcnRhYmlsaXR5IGZpeGVzLCBrZWVwaW5nIHRoaW5ncyB3b3JraW5nIHdpdGggZ2NjLTIuOTUgd2FzIGFsc28KIGltcG9ydGFudC4gIEhlcmUgaXMgd2hhdCBJIGRpZCB0byByZXZlcnQgdGhlIGNoYW5nZSBpbiB0aGUgJ21hc3RlcicKIGJyYW5jaCBhbmQgdG8gYWRqdXN0IHRoZSAncHUnIGJyYW5jaCwgdXNpbmcgY29yZSBHaXQgdG9vbHMgYW5kCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2xpbmUtcmFuZ2UtZm9ybWF0LnR4dCBiL0RvY3VtZW50YXRpb24vbGluZS1yYW5nZS1mb3JtYXQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlN2NlNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2xpbmUtcmFuZ2UtZm9ybWF0LnR4dApAQCAtMCwwICsxLDI1IEBACistIG51bWJlcgorKworSWYgPHN0YXJ0PiBvciA8ZW5kPiBpcyBhIG51bWJlciwgaXQgc3BlY2lmaWVzIGFuCithYnNvbHV0ZSBsaW5lIG51bWJlciAobGluZXMgY291bnQgZnJvbSAxKS4KKysKKworLSAvcmVnZXgvCisrCitUaGlzIGZvcm0gd2lsbCB1c2UgdGhlIGZpcnN0IGxpbmUgbWF0Y2hpbmcgdGhlIGdpdmVuCitQT1NJWCByZWdleC4gIElmIDxlbmQ+IGlzIGEgcmVnZXgsIGl0IHdpbGwgc2VhcmNoCitzdGFydGluZyBhdCB0aGUgbGluZSBnaXZlbiBieSA8c3RhcnQ+LgorKworCistICtvZmZzZXQgb3IgLW9mZnNldAorKworVGhpcyBpcyBvbmx5IHZhbGlkIGZvciA8ZW5kPiBhbmQgd2lsbCBzcGVjaWZ5IGEgbnVtYmVyCitvZiBsaW5lcyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGxpbmUgZ2l2ZW4gYnkgPHN0YXJ0Pi4KKysKKworLSA6cmVnZXgKKysKK0lmIHRoZSBvcHRpb24ncyBhcmd1bWVudCBpcyBvZiB0aGUgZm9ybSA6cmVnZXgsIGl0IGRlbm90ZXMgdGhlIHJhbmdlCitmcm9tIHRoZSBmaXJzdCBmdW5jbmFtZSBsaW5lIHRoYXQgbWF0Y2hlcyA8cmVnZXg+LCB1cCB0byB0aGUgbmV4dAorZnVuY25hbWUgbGluZS4KKysKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbWVyZ2Utb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL21lcmdlLW9wdGlvbnMudHh0CmluZGV4IDJhZGNjZjguLmFmYmE4ZDQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbWVyZ2Utb3B0aW9ucy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9tZXJnZS1vcHRpb25zLnR4dApAQCAtOCwxMiArOCwxMyBAQAogaW5zcGVjdCBhbmQgZnVydGhlciB0d2VhayB0aGUgbWVyZ2UgcmVzdWx0IGJlZm9yZSBjb21taXR0aW5nLgogCiAtLWVkaXQ6OgorLWU6OgogLS1uby1lZGl0OjoKIAlJbnZva2UgYW4gZWRpdG9yIGJlZm9yZSBjb21taXR0aW5nIHN1Y2Nlc3NmdWwgbWVjaGFuaWNhbCBtZXJnZSB0bwogCWZ1cnRoZXIgZWRpdCB0aGUgYXV0by1nZW5lcmF0ZWQgbWVyZ2UgbWVzc2FnZSwgc28gdGhhdCB0aGUgdXNlcgogCWNhbiBleHBsYWluIGFuZCBqdXN0aWZ5IHRoZSBtZXJnZS4gVGhlIGAtLW5vLWVkaXRgIG9wdGlvbiBjYW4gYmUKIAl1c2VkIHRvIGFjY2VwdCB0aGUgYXV0by1nZW5lcmF0ZWQgbWVzc2FnZSAodGhpcyBpcyBnZW5lcmFsbHkKLQlkaXNjb3VyYWdlZCkuIFRoZSBgLS1lZGl0YCBvcHRpb24gaXMgc3RpbGwgdXNlZnVsIGlmIHlvdSBhcmUKKwlkaXNjb3VyYWdlZCkuIFRoZSBgLS1lZGl0YCAob3IgYC1lYCkgb3B0aW9uIGlzIHN0aWxsIHVzZWZ1bCBpZiB5b3UgYXJlCiAJZ2l2aW5nIGEgZHJhZnQgbWVzc2FnZSB3aXRoIHRoZSBgLW1gIG9wdGlvbiBmcm9tIHRoZSBjb21tYW5kIGxpbmUKIAlhbmQgd2FudCB0byBlZGl0IGl0IGluIHRoZSBlZGl0b3IuCiArCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ByZXR0eS1vcHRpb25zLnR4dCBiL0RvY3VtZW50YXRpb24vcHJldHR5LW9wdGlvbnMudHh0CmluZGV4IDVlNDk5NDIuLmVlYTBlMzAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vcHJldHR5LW9wdGlvbnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vcHJldHR5LW9wdGlvbnMudHh0CkBAIC0yOCw3ICsyOCw3IEBACiAJVGhpcyBpcyBhIHNob3J0aGFuZCBmb3IgIi0tcHJldHR5PW9uZWxpbmUgLS1hYmJyZXYtY29tbWl0IgogCXVzZWQgdG9nZXRoZXIuCiAKLS0tZW5jb2RpbmdbPTxlbmNvZGluZz5dOjoKKy0tZW5jb2Rpbmc9PGVuY29kaW5nPjo6CiAJVGhlIGNvbW1pdCBvYmplY3RzIHJlY29yZCB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgdGhlIGxvZyBtZXNzYWdlCiAJaW4gdGhlaXIgZW5jb2RpbmcgaGVhZGVyOyB0aGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byB0ZWxsIHRoZQogCWNvbW1hbmQgdG8gcmUtY29kZSB0aGUgY29tbWl0IGxvZyBtZXNzYWdlIGluIHRoZSBlbmNvZGluZwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9wdWxsLWZldGNoLXBhcmFtLnR4dCBiL0RvY3VtZW50YXRpb24vcHVsbC1mZXRjaC1wYXJhbS50eHQKaW5kZXggOTRhOWQzMi4uMThjZmZjMiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9wdWxsLWZldGNoLXBhcmFtLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3B1bGwtZmV0Y2gtcGFyYW0udHh0CkBAIC02OCw2ICs2OCwxMSBAQAogKwogKiBgdGFnIDx0YWc+YCBtZWFucyB0aGUgc2FtZSBhcyBgcmVmcy90YWdzLzx0YWc+OnJlZnMvdGFncy88dGFnPmA7CiAgIGl0IHJlcXVlc3RzIGZldGNoaW5nIGV2ZXJ5dGhpbmcgdXAgdG8gdGhlIGdpdmVuIHRhZy4KLSogQSBwYXJhbWV0ZXIgPHJlZj4gd2l0aG91dCBhIGNvbG9uIGlzIGVxdWl2YWxlbnQgdG8KLSAgPHJlZj46IHdoZW4gcHVsbGluZy9mZXRjaGluZywgc28gaXQgbWVyZ2VzIDxyZWY+IGludG8gdGhlIGN1cnJlbnQKLSAgYnJhbmNoIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVtb3RlIGJyYW5jaCBhbnl3aGVyZSBsb2NhbGx5CitpZm5kZWY6OmdpdC1wdWxsW10KKyogQSBwYXJhbWV0ZXIgPHJlZj4gd2l0aG91dCBhIGNvbG9uIGZldGNoZXMgdGhhdCByZWYgaW50byBGRVRDSF9IRUFELAorZW5kaWY6OmdpdC1wdWxsW10KK2lmZGVmOjpnaXQtcHVsbFtdCisqIEEgcGFyYW1ldGVyIDxyZWY+IHdpdGhvdXQgYSBjb2xvbiBtZXJnZXMgPHJlZj4gaW50byB0aGUgY3VycmVudAorICBicmFuY2gsCitlbmRpZjo6Z2l0LXB1bGxbXQorICBhbmQgdXBkYXRlcyB0aGUgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIChpZiBhbnkpLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9yZXYtbGlzdC1vcHRpb25zLnR4dCBiL0RvY3VtZW50YXRpb24vcmV2LWxpc3Qtb3B0aW9ucy50eHQKaW5kZXggM2JkYmY1ZS4uNWJkZmI0MiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9yZXYtbGlzdC1vcHRpb25zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3Jldi1saXN0LW9wdGlvbnMudHh0CkBAIC0xMTksNyArMTE5LDcgQEAKIC0tbm8tbWluLXBhcmVudHM6OgogLS1uby1tYXgtcGFyZW50czo6CiAKLQlTaG93IG9ubHkgY29tbWl0cyB3aGljaCBoYXZlIGF0IGxlYXN0IChvciBhdCBtb3N0KSB0aGF0IG1hbnkKKwlTaG93IG9ubHkgY29tbWl0cyB3aGljaCBoYXZlIGF0IGxlYXN0IChvciBhdCBtb3N0KSB0aGF0IG1hbnkgcGFyZW50CiAJY29tbWl0cy4gSW4gcGFydGljdWxhciwgYC0tbWF4LXBhcmVudHM9MWAgaXMgdGhlIHNhbWUgYXMgYC0tbm8tbWVyZ2VzYCwKIAlgLS1taW4tcGFyZW50cz0yYCBpcyB0aGUgc2FtZSBhcyBgLS1tZXJnZXNgLiAgYC0tbWF4LXBhcmVudHM9MGAKIAlnaXZlcyBhbGwgcm9vdCBjb21taXRzIGFuZCBgLS1taW4tcGFyZW50cz0zYCBhbGwgb2N0b3B1cyBtZXJnZXMuCkBAIC0yNzEsOCArMjcxLDggQEAKIAogLS1ib3VuZGFyeTo6CiAKLQlPdXRwdXQgdW5pbnRlcmVzdGluZyBjb21taXRzIGF0IHRoZSBib3VuZGFyeSwgd2hpY2ggYXJlIHVzdWFsbHkKLQlub3Qgc2hvd24uCisJT3V0cHV0IGV4Y2x1ZGVkIGJvdW5kYXJ5IGNvbW1pdHMuIEJvdW5kYXJ5IGNvbW1pdHMgYXJlCisJcHJlZml4ZWQgd2l0aCBgLWAuCiAKIC0tCiAKQEAgLTM0MiwxMyArMzQyLDEzIEBACiBpbGx1c3RyYXRlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHNpbXBsaWZpY2F0aW9uIHNldHRpbmdzLiAgV2UgYXNzdW1lCiB0aGF0IHlvdSBhcmUgZmlsdGVyaW5nIGZvciBhIGZpbGUgYGZvb2AgaW4gdGhpcyBjb21taXQgZ3JhcGg6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCSAgLi1BLS0tTS0tLU4tLS1PLS0tUAotCSAvICAgICAvICAgLyAgIC8gICAvCi0JSSAgICAgQiAgIEMgICBEICAgRQotCSBcICAgLyAgIC8gICAvICAgLwotCSAgYC0tLS0tLS0tLS0tLS0nCisJICAuLUEtLS1NLS0tTi0tLU8tLS1QLS0tUQorCSAvICAgICAvICAgLyAgIC8gICAvICAgLworCUkgICAgIEIgICBDICAgRCAgIEUgICBZCisJIFwgICAvICAgLyAgIC8gICAvICAgLworCSAgYC0tLS0tLS0tLS0tLS0nICAgWAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVRoZSBob3Jpem9udGFsIGxpbmUgb2YgaGlzdG9yeSBBLS0tUCBpcyB0YWtlbiB0byBiZSB0aGUgZmlyc3QgcGFyZW50IG9mCitUaGUgaG9yaXpvbnRhbCBsaW5lIG9mIGhpc3RvcnkgQS0tLVEgaXMgdGFrZW4gdG8gYmUgdGhlIGZpcnN0IHBhcmVudCBvZgogZWFjaCBtZXJnZS4gIFRoZSBjb21taXRzIGFyZToKIAogKiBgSWAgaXMgdGhlIGluaXRpYWwgY29tbWl0LCBpbiB3aGljaCBgZm9vYCBleGlzdHMgd2l0aCBjb250ZW50cwpAQCAtMzY3LDggKzM2NywxMSBAQAogICBgTmAgYW5kIGBEYCB0byAiZm9vYmFyYmF6IjsgaS5lLiwgaXQgaXMgbm90IFRSRUVTQU1FIHRvIGFueSBwYXJlbnQuCiAKICogYEVgIGNoYW5nZXMgYHF1dXhgIHRvICJ4eXp6eSIsIGFuZCBpdHMgbWVyZ2UgYFBgIGNvbWJpbmVzIHRoZQotICBzdHJpbmdzIHRvICJxdXV4IHh5enp5Ii4gIERlc3BpdGUgYXBwZWFyaW5nIGludGVyZXN0aW5nLCBgUGAgaXMKLSAgVFJFRVNBTUUgdG8gYWxsIHBhcmVudHMuCisgIHN0cmluZ3MgdG8gInF1dXggeHl6enkiLiAgYFBgIGlzIFRSRUVTQU1FIHRvIGBPYCwgYnV0IG5vdCB0byBgRWAuCisKKyogYFhgIGlzIGFuIGluZGVwZW5kZW50IHJvb3QgY29tbWl0IHRoYXQgYWRkZWQgYSBuZXcgZmlsZSBgc2lkZWAsIGFuZCBgWWAKKyAgbW9kaWZpZWQgaXQuIGBZYCBpcyBUUkVFU0FNRSB0byBgWGAuIEl0cyBtZXJnZSBgUWAgYWRkZWQgYHNpZGVgIHRvIGBQYCwgYW5kCisgIGBRYCBpcyBUUkVFU0FNRSB0byBgUGAsIGJ1dCBub3QgdG8gYFlgLgogCiAncmV2LWxpc3QnIHdhbGtzIGJhY2t3YXJkcyB0aHJvdWdoIGhpc3RvcnksIGluY2x1ZGluZyBvciBleGNsdWRpbmcKIGNvbW1pdHMgYmFzZWQgb24gd2hldGhlciAnXC0tZnVsbC1oaXN0b3J5JyBhbmQvb3IgcGFyZW50IHJld3JpdGluZwpAQCAtNDEwLDEwICs0MTMsMTAgQEAKIAl0aGUgZXhhbXBsZSwgd2UgZ2V0CiArCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCUkgIEEgIEIgIE4gIEQgIE8KKwlJICBBICBCICBOICBEICBPICBQICBRCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKwotYFBgIGFuZCBgTWAgd2VyZSBleGNsdWRlZCBiZWNhdXNlIHRoZXkgYXJlIFRSRUVTQU1FIHRvIGEgcGFyZW50LiAgYEVgLAorYE1gIHdhcyBleGNsdWRlZCBiZWNhdXNlIGl0IGlzIFRSRUVTQU1FIHRvIGJvdGggcGFyZW50cy4gIGBFYCwKIGBDYCBhbmQgYEJgIHdlcmUgYWxsIHdhbGtlZCwgYnV0IG9ubHkgYEJgIHdhcyAhVFJFRVNBTUUsIHNvIHRoZSBvdGhlcnMKIGRvIG5vdCBhcHBlYXIuCiArCkBAIC00MzEsNyArNDM0LDcgQEAKIHRoZW1zZWx2ZXMuICBUaGlzIHJlc3VsdHMgaW4KICsKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JICAuLUEtLS1NLS0tTi0tLU8tLS1QCisJICAuLUEtLS1NLS0tTi0tLU8tLS1QLS0tUQogCSAvICAgICAvICAgLyAgIC8gICAvCiAJSSAgICAgQiAgIC8gICBEICAgLwogCSBcICAgLyAgIC8gICAvICAgLwpAQCAtNDQxLDcgKzQ0NCw3IEBACiBDb21wYXJlIHRvICdcLS1mdWxsLWhpc3RvcnknIHdpdGhvdXQgcmV3cml0aW5nIGFib3ZlLiAgTm90ZSB0aGF0IGBFYAogd2FzIHBydW5lZCBhd2F5IGJlY2F1c2UgaXQgaXMgVFJFRVNBTUUsIGJ1dCB0aGUgcGFyZW50IGxpc3Qgb2YgUCB3YXMKIHJld3JpdHRlbiB0byBjb250YWluIGBFYCdzIHBhcmVudCBgSWAuICBUaGUgc2FtZSBoYXBwZW5lZCBmb3IgYENgIGFuZAotYE5gLiAgTm90ZSBhbHNvIHRoYXQgYFBgIHdhcyBpbmNsdWRlZCBkZXNwaXRlIGJlaW5nIFRSRUVTQU1FLgorYE5gLCBhbmQgYFhgLCBgWWAgYW5kIGBRYC4KIAogSW4gYWRkaXRpb24gdG8gdGhlIGFib3ZlIHNldHRpbmdzLCB5b3UgY2FuIGNoYW5nZSB3aGV0aGVyIFRSRUVTQU1FCiBhZmZlY3RzIGluY2x1c2lvbjoKQEAgLTQ3MSw4ICs0NzQsOSBAQAogKiBTZXQgYEMnYCB0byBgQ2AuCiArCiAqIFJlcGxhY2UgZWFjaCBwYXJlbnQgYFBgIG9mIGBDJ2Agd2l0aCBpdHMgc2ltcGxpZmljYXRpb24gYFAnYC4gIEluCi0gIHRoZSBwcm9jZXNzLCBkcm9wIHBhcmVudHMgdGhhdCBhcmUgYW5jZXN0b3JzIG9mIG90aGVyIHBhcmVudHMsIGFuZAotICByZW1vdmUgZHVwbGljYXRlcy4KKyAgdGhlIHByb2Nlc3MsIGRyb3AgcGFyZW50cyB0aGF0IGFyZSBhbmNlc3RvcnMgb2Ygb3RoZXIgcGFyZW50cyBvciB0aGF0IGFyZQorICByb290IGNvbW1pdHMgVFJFRVNBTUUgdG8gYW4gZW1wdHkgdHJlZSwgYW5kIHJlbW92ZSBkdXBsaWNhdGVzLCBidXQgdGFrZSBjYXJlCisgIHRvIG5ldmVyIGRyb3AgYWxsIHBhcmVudHMgdGhhdCB3ZSBhcmUgVFJFRVNBTUUgdG8uCiArCiAqIElmIGFmdGVyIHRoaXMgcGFyZW50IHJld3JpdGluZywgYEMnYCBpcyBhIHJvb3Qgb3IgbWVyZ2UgY29tbWl0IChoYXMKICAgemVybyBvciA+MSBwYXJlbnRzKSwgYSBib3VuZGFyeSBjb21taXQsIG9yICFUUkVFU0FNRSwgaXQgcmVtYWlucy4KQEAgLTQ5MCw3ICs0OTQsNyBAQAogCSAgYC0tLS0tLS0tLScKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiArCi1Ob3RlIHRoZSBtYWpvciBkaWZmZXJlbmNlcyBpbiBgTmAgYW5kIGBQYCBvdmVyICctLWZ1bGwtaGlzdG9yeSc6CitOb3RlIHRoZSBtYWpvciBkaWZmZXJlbmNlcyBpbiBgTmAsIGBQYCBhbmQgYFFgIG92ZXIgJy0tZnVsbC1oaXN0b3J5JzoKICsKIC0tCiAqIGBOYCdzIHBhcmVudCBsaXN0IGhhZCBgSWAgcmVtb3ZlZCwgYmVjYXVzZSBpdCBpcyBhbiBhbmNlc3RvciBvZiB0aGUKQEAgLTQ5OCw2ICs1MDIsMTAgQEAKICsKICogYFBgJ3MgcGFyZW50IGxpc3Qgc2ltaWxhcmx5IGhhZCBgSWAgcmVtb3ZlZC4gIGBQYCB3YXMgdGhlbgogICByZW1vdmVkIGNvbXBsZXRlbHksIGJlY2F1c2UgaXQgaGFkIG9uZSBwYXJlbnQgYW5kIGlzIFRSRUVTQU1FLgorKworKiBgUWAncyBwYXJlbnQgbGlzdCBoYWQgYFlgIHNpbXBsaWZpZWQgdG8gYFhgLiBgWGAgd2FzIHRoZW4gcmVtb3ZlZCwgYmVjYXVzZSBpdAorICB3YXMgYSBUUkVFU0FNRSByb290LiBgUWAgd2FzIHRoZW4gcmVtb3ZlZCBjb21wbGV0ZWx5LCBiZWNhdXNlIGl0IGhhZCBvbmUKKyAgcGFyZW50IGFuZCBpcyBUUkVFU0FNRS4KIC0tCiAKIEZpbmFsbHksIHRoZXJlIGlzIGEgZmlmdGggc2ltcGxpZmljYXRpb24gbW9kZSBhdmFpbGFibGU6CkBAIC02MTcsNiArNjI1LDEwIEBACiAJU2hvdyBubyBwYXJlbnRzIGJlZm9yZSBhbGwgb2YgaXRzIGNoaWxkcmVuIGFyZSBzaG93biwgYnV0CiAJb3RoZXJ3aXNlIHNob3cgY29tbWl0cyBpbiB0aGUgY29tbWl0IHRpbWVzdGFtcCBvcmRlci4KIAorLS1hdXRob3ItZGF0ZS1vcmRlcjo6CisJU2hvdyBubyBwYXJlbnRzIGJlZm9yZSBhbGwgb2YgaXRzIGNoaWxkcmVuIGFyZSBzaG93biwgYnV0CisJb3RoZXJ3aXNlIHNob3cgY29tbWl0cyBpbiB0aGUgYXV0aG9yIHRpbWVzdGFtcCBvcmRlci4KKwogLS10b3BvLW9yZGVyOjoKIAlTaG93IG5vIHBhcmVudHMgYmVmb3JlIGFsbCBvZiBpdHMgY2hpbGRyZW4gYXJlIHNob3duLCBhbmQKIAlhdm9pZCBzaG93aW5nIGNvbW1pdHMgb24gbXVsdGlwbGUgbGluZXMgb2YgaGlzdG9yeQpAQCAtODM3LDcgKzg0OSw0IEBACiAtdDo6CiAKIAlTaG93IHRoZSB0cmVlIG9iamVjdHMgaW4gdGhlIGRpZmYgb3V0cHV0LiBUaGlzIGltcGxpZXMgJy1yJy4KLQotLXM6OgotCVN1cHByZXNzIGRpZmYgb3V0cHV0LgogZW5kaWY6OmdpdC1yZXYtbGlzdFtdCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktYnVpbHRpbi50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktYnVpbHRpbi50eHQKaW5kZXggNGE0MjI4Yi4uZjNjMTM1NyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLWJ1aWx0aW4udHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1idWlsdGluLnR4dApAQCAtMzksNyArMzksNyBAQAogCW9uIGJhcmUgcmVwb3NpdG9yaWVzLgogCVRoaXMgb25seSBtYWtlcyBzZW5zZSB3aGVuIGBSVU5fU0VUVVBgIGlzIGFsc28gc2V0LgogCi0uIEFkZCBgYnVpbHRpbi1mb28ub2AgdG8gYEJVSUxUSU5fT0JKU2AgaW4gYE1ha2VmaWxlYC4KKy4gQWRkIGBidWlsdGluL2Zvby5vYCB0byBgQlVJTFRJTl9PQkpTYCBpbiBgTWFrZWZpbGVgLgogCiBBZGRpdGlvbmFsbHksIGlmIGBmb29gIGlzIGEgbmV3IGNvbW1hbmQsIHRoZXJlIGFyZSAzIG1vcmUgdGhpbmdzIHRvIGRvOgogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcGFyc2Utb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcGFyc2Utb3B0aW9ucy50eHQKaW5kZXggMzJkZGMxYy4uMGJlMmI1MSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLXBhcnNlLW9wdGlvbnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1wYXJzZS1vcHRpb25zLnR4dApAQCAtNDEsNiArNDEsOCBAQAogKiBCb29sZWFuIGxvbmcgb3B0aW9ucyBjYW4gYmUgJ25lZ2F0ZWQnIChvciAndW5zZXQnKSBieSBwcmVwZW5kaW5nCiAgIGBuby1gLCBlLmcuIGAtLW5vLWFiYnJldmAgaW5zdGVhZCBvZiBgLS1hYmJyZXZgLiBDb252ZXJzZWx5LAogICBvcHRpb25zIHRoYXQgYmVnaW4gd2l0aCBgbm8tYCBjYW4gYmUgJ25lZ2F0ZWQnIGJ5IHJlbW92aW5nIGl0LgorICBPdGhlciBsb25nIG9wdGlvbnMgY2FuIGJlIHVuc2V0IChlLmcuLCBzZXQgc3RyaW5nIHRvIE5VTEwsIHNldAorICBpbnRlZ2VyIHRvIDApIGJ5IHByZXBlbmRpbmcgYG5vLWAuCiAKICogT3B0aW9ucyBhbmQgbm9uLW9wdGlvbiBhcmd1bWVudHMgY2FuIGNsZWFybHkgYmUgc2VwYXJhdGVkIHVzaW5nIHRoZSBgLS1gCiAgIG9wdGlvbiwgZS5nLiBgLWEgLWIgLS1vcHRpb24gLS0gLS10aGlzLWlzLWEtZmlsZWAgaW5kaWNhdGVzIHRoYXQKQEAgLTE3NCw2ICsxNzYsMTAgQEAKIAlJbnRyb2R1Y2UgYW4gb3B0aW9uIHdpdGggZGF0ZSBhcmd1bWVudCwgc2VlIGBhcHByb3hpZGF0ZSgpYC4KIAlUaGUgdGltZXN0YW1wIGlzIHB1dCBpbnRvIGBpbnRfdmFyYC4KIAorYE9QVF9FWFBJUllfREFURShzaG9ydCwgbG9uZywgJmludF92YXIsIGRlc2NyaXB0aW9uKWA6OgorCUludHJvZHVjZSBhbiBvcHRpb24gd2l0aCBleHBpcnkgZGF0ZSBhcmd1bWVudCwgc2VlIGBwYXJzZV9leHBpcnlfZGF0ZSgpYC4KKwlUaGUgdGltZXN0YW1wIGlzIHB1dCBpbnRvIGBpbnRfdmFyYC4KKwogYE9QVF9DQUxMQkFDSyhzaG9ydCwgbG9uZywgJnZhciwgYXJnX3N0ciwgZGVzY3JpcHRpb24sIGZ1bmNfcHRyKWA6OgogCUludHJvZHVjZSBhbiBvcHRpb24gd2l0aCBhcmd1bWVudC4KIAlUaGUgYXJndW1lbnQgd2lsbCBiZSBmZWQgaW50byB0aGUgZnVuY3Rpb24gZ2l2ZW4gYnkgYGZ1bmNfcHRyYApAQCAtMjY5LDEwICsyNzUsMTAgQEAKIC0tLS0tLS0tCiAKIFNlZSBgdGVzdC1wYXJzZS1vcHRpb25zLmNgIGFuZAotYGJ1aWx0aW4tYWRkLmNgLAotYGJ1aWx0aW4tY2xvbmUuY2AsCi1gYnVpbHRpbi1jb21taXQuY2AsCi1gYnVpbHRpbi1mZXRjaC5jYCwKLWBidWlsdGluLWZzY2suY2AsCi1gYnVpbHRpbi1ybS5jYAorYGJ1aWx0aW4vYWRkLmNgLAorYGJ1aWx0aW4vY2xvbmUuY2AsCitgYnVpbHRpbi9jb21taXQuY2AsCitgYnVpbHRpbi9mZXRjaC5jYCwKK2BidWlsdGluL2ZzY2suY2AsCitgYnVpbHRpbi9ybS5jYAogZm9yIHJlYWwtd29ybGQgZXhhbXBsZXMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcmV2aXNpb24td2Fsa2luZy50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcmV2aXNpb24td2Fsa2luZy50eHQKaW5kZXggYjdkMGQ5YS4uNTViODc4YSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLXJldmlzaW9uLXdhbGtpbmcudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1yZXZpc2lvbi13YWxraW5nLnR4dApAQCAtNTksNyArNTksNyBAQAogYHJlc2V0X3JldmlzaW9uX3dhbGtgOjoKIAogCVJlc2V0IHRoZSBmbGFncyB1c2VkIGJ5IHRoZSByZXZpc2lvbiB3YWxraW5nIGFwaS4gWW91IGNhbiB1c2UKLQl0aGlzIHRvIGRvIG11bHRpcGxlIHNlcXVlbmNpYWwgcmV2aXNpb24gd2Fsa3MuCisJdGhpcyB0byBkbyBtdWx0aXBsZSBzZXF1ZW50aWFsIHJldmlzaW9uIHdhbGtzLgogCiBEYXRhIHN0cnVjdHVyZXMKIC0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvaW5kZXgtZm9ybWF0LnR4dCBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2luZGV4LWZvcm1hdC50eHQKaW5kZXggMDgxMDI1MS4uZjM1MmE5YiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvaW5kZXgtZm9ybWF0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9pbmRleC1mb3JtYXQudHh0CkBAIC0xNzUsNyArMTc1LDcgQEAKIAogICBBIGNvbmZsaWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBpbmRleCBhcyBhIHNldCBvZiBoaWdoZXIgc3RhZ2UgZW50cmllcy4KICAgV2hlbiBhIGNvbmZsaWN0IGlzIHJlc29sdmVkIChlLmcuIHdpdGggImdpdCBhZGQgcGF0aCIpLCB0aGVzZSBoaWdoZXIKLSAgc3RhZ2UgZW50cmllcyB3aWxsIGJlIHJlbW92ZWQgYW5kIGEgc3RhZ2UtMCBlbnRyeSB3aXRoIHByb3BlciByZXNvbHV0b24KKyAgc3RhZ2UgZW50cmllcyB3aWxsIGJlIHJlbW92ZWQgYW5kIGEgc3RhZ2UtMCBlbnRyeSB3aXRoIHByb3BlciByZXNvbHV0aW9uCiAgIGlzIGFkZGVkLgogCiAgIFdoZW4gdGhlc2UgaGlnaGVyIHN0YWdlIGVudHJpZXMgYXJlIHJlbW92ZWQsIHRoZXkgYXJlIHNhdmVkIGluIHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcGFjay1wcm90b2NvbC50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLXByb3RvY29sLnR4dAppbmRleCBmMWE1MWVkLi5iODk4ZTk3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLXByb3RvY29sLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLXByb3RvY29sLnR4dApAQCAtMjI4LDggKzIyOCw3IEBACiBUaGUgY2xpZW50IE1VU1Qgd3JpdGUgYWxsIG9iai1pZHMgd2hpY2ggaXQgb25seSBoYXMgc2hhbGxvdyBjb3BpZXMKIG9mIChtZWFuaW5nIHRoYXQgaXQgZG9lcyBub3QgaGF2ZSB0aGUgcGFyZW50cyBvZiBhIGNvbW1pdCkgYXMKICdzaGFsbG93JyBsaW5lcyBzbyB0aGF0IHRoZSBzZXJ2ZXIgaXMgYXdhcmUgb2YgdGhlIGxpbWl0YXRpb25zIG9mCi10aGUgY2xpZW50J3MgaGlzdG9yeS4gQ2xpZW50cyBNVVNUIE5PVCBtZW50aW9uIGFuIG9iai1pZCB3aGljaAotaXQgZG9lcyBub3Qga25vdyBleGlzdHMgb24gdGhlIHNlcnZlci4KK3RoZSBjbGllbnQncyBoaXN0b3J5LgogCiBUaGUgY2xpZW50IG5vdyBzZW5kcyB0aGUgbWF4aW11bSBjb21taXQgaGlzdG9yeSBkZXB0aCBpdCB3YW50cyBmb3IKIHRoaXMgdHJhbnNhY3Rpb24sIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyBpdCB3YW50cyBmcm9tIHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcHJvdG9jb2wtY2FwYWJpbGl0aWVzLnR4dCBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL3Byb3RvY29sLWNhcGFiaWxpdGllcy50eHQKaW5kZXggYjE1NTE3Zi4uZmQ4ZmZhNSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcHJvdG9jb2wtY2FwYWJpbGl0aWVzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wcm90b2NvbC1jYXBhYmlsaXRpZXMudHh0CkBAIC0xOCwxMSArMTgsMTIgQEAKIGFuZCBzZXJ2ZXIgYWR2ZXJ0aXNlZC4gIEFzIGEgY29uc2VxdWVuY2Ugb2YgdGhlc2UgcnVsZXMsIHNlcnZlciBNVVNUCiBOT1QgYWR2ZXJ0aXNlIGNhcGFiaWxpdGllcyBpdCBkb2VzIG5vdCB1bmRlcnN0YW5kLgogCi1UaGUgJ3JlcG9ydC1zdGF0dXMnIGFuZCAnZGVsZXRlLXJlZnMnIGNhcGFiaWxpdGllcyBhcmUgc2VudCBhbmQKK1RoZSAncmVwb3J0LXN0YXR1cycsICdkZWxldGUtcmVmcycsIGFuZCAncXVpZXQnIGNhcGFiaWxpdGllcyBhcmUgc2VudCBhbmQKIHJlY29nbml6ZWQgYnkgdGhlIHJlY2VpdmUtcGFjayAocHVzaCB0byBzZXJ2ZXIpIHByb2Nlc3MuCiAKLVRoZSAnb2ZzLWRlbHRhJyBjYXBhYmlsaXR5IGlzIHNlbnQgYW5kIHJlY29nbml6ZWQgYnkgYm90aCB1cGxvYWQtcGFjawotYW5kIHJlY2VpdmUtcGFjayBwcm90b2NvbHMuCitUaGUgJ29mcy1kZWx0YScgYW5kICdzaWRlLWJhbmQtNjRrJyBjYXBhYmlsaXRpZXMgYXJlIHNlbnQgYW5kIHJlY29nbml6ZWQKK2J5IGJvdGggdXBsb2FkLXBhY2sgYW5kIHJlY2VpdmUtcGFjayBwcm90b2NvbHMuICBUaGUgJ2FnZW50JyBjYXBhYmlsaXR5CittYXkgb3B0aW9uYWxseSBiZSBzZW50IGluIGJvdGggcHJvdG9jb2xzLgogCiBBbGwgb3RoZXIgY2FwYWJpbGl0aWVzIGFyZSBvbmx5IHJlY29nbml6ZWQgYnkgdGhlIHVwbG9hZC1wYWNrIChmZXRjaAogZnJvbSBzZXJ2ZXIpIHByb2Nlc3MuCkBAIC0xMjMsNiArMTI0LDIwIEBACiBpdHMgYmFzZSBieSBwb3NpdGlvbiBpbiBwYWNrIHJhdGhlciB0aGFuIGJ5IGFuIG9iai1pZC4gIFRoYXQgaXMsIHRoZXkgY2FuCiBzZW5kL3JlYWQgT0JKX09GU19ERUxUQSAoYWthIHR5cGUgNikgaW4gYSBwYWNrZmlsZS4KIAorYWdlbnQKKy0tLS0tCisKK1RoZSBzZXJ2ZXIgbWF5IG9wdGlvbmFsbHkgc2VuZCBhIGNhcGFiaWxpdHkgb2YgdGhlIGZvcm0gYGFnZW50PVhgIHRvCitub3RpZnkgdGhlIGNsaWVudCB0aGF0IHRoZSBzZXJ2ZXIgaXMgcnVubmluZyB2ZXJzaW9uIGBYYC4gVGhlIGNsaWVudCBtYXkKK29wdGlvbmFsbHkgcmV0dXJuIGl0cyBvd24gYWdlbnQgc3RyaW5nIGJ5IHJlc3BvbmRpbmcgd2l0aCBhbiBgYWdlbnQ9WWAKK2NhcGFiaWxpdHkgKGJ1dCBpdCBNVVNUIE5PVCBkbyBzbyBpZiB0aGUgc2VydmVyIGRpZCBub3QgbWVudGlvbiB0aGUKK2FnZW50IGNhcGFiaWxpdHkpLiBUaGUgYFhgIGFuZCBgWWAgc3RyaW5ncyBtYXkgY29udGFpbiBhbnkgcHJpbnRhYmxlCitBU0NJSSBjaGFyYWN0ZXJzIGV4Y2VwdCBzcGFjZSAoaS5lLiwgdGhlIGJ5dGUgcmFuZ2UgMzIgPCB4IDwgMTI3KSwgYW5kCithcmUgdHlwaWNhbGx5IG9mIHRoZSBmb3JtICJwYWNrYWdlL3ZlcnNpb24iIChlLmcuLCAiZ2l0LzEuOC4zLjEiKS4gVGhlCithZ2VudCBzdHJpbmdzIGFyZSBwdXJlbHkgaW5mb3JtYXRpdmUgZm9yIHN0YXRpc3RpY3MgYW5kIGRlYnVnZ2luZworcHVycG9zZXMsIGFuZCBNVVNUIE5PVCBiZSB1c2VkIHRvIHByb2dyYW1hdGljYWxseSBhc3N1bWUgdGhlIHByZXNlbmNlCitvciBhYnNlbmNlIG9mIHBhcnRpY3VsYXIgZmVhdHVyZXMuCisKIHNoYWxsb3cKIC0tLS0tLS0KIApAQCAtMTY4LDcgKzE4Myw3IEBACiByZXBvcnQtc3RhdHVzCiAtLS0tLS0tLS0tLS0tCiAKLVRoZSB1cGxvYWQtcGFjayBwcm9jZXNzIGNhbiByZWNlaXZlIGEgJ3JlcG9ydC1zdGF0dXMnIGNhcGFiaWxpdHksCitUaGUgcmVjZWl2ZS1wYWNrIHByb2Nlc3MgY2FuIHJlY2VpdmUgYSAncmVwb3J0LXN0YXR1cycgY2FwYWJpbGl0eSwKIHdoaWNoIHRlbGxzIGl0IHRoYXQgdGhlIGNsaWVudCB3YW50cyBhIHJlcG9ydCBvZiB3aGF0IGhhcHBlbmVkIGFmdGVyCiBhIHBhY2tmaWxlIHVwbG9hZCBhbmQgcmVmZXJlbmNlIHVwZGF0ZS4gIElmIHRoZSBwdXNoaW5nIGNsaWVudCByZXF1ZXN0cwogdGhpcyBjYXBhYmlsaXR5LCBhZnRlciB1bnBhY2tpbmcgYW5kIHVwZGF0aW5nIHJlZmVyZW5jZXMgdGhlIHNlcnZlcgpAQCAtMTg1LDMgKzIwMCwyMCBAQAogdmFsdWUgb2YgYSByZWZlcmVuY2UgdXBkYXRlLiAgSXQgaXMgbm90IHNlbnQgYmFjayBieSB0aGUgY2xpZW50LCBpdAogc2ltcGx5IGluZm9ybXMgdGhlIGNsaWVudCB0aGF0IGl0IGNhbiBiZSBzZW50IHplcm8taWQgdmFsdWVzCiB0byBkZWxldGUgcmVmZXJlbmNlcy4KKworcXVpZXQKKy0tLS0tCisKK0lmIHRoZSByZWNlaXZlLXBhY2sgc2VydmVyIGFkdmVydGlzZXMgdGhlICdxdWlldCcgY2FwYWJpbGl0eSwgaXQgaXMKK2NhcGFibGUgb2Ygc2lsZW5jaW5nIGh1bWFuLXJlYWRhYmxlIHByb2dyZXNzIG91dHB1dCB3aGljaCBvdGhlcndpc2UgbWF5CitiZSBzaG93biB3aGVuIHByb2Nlc3NpbmcgdGhlIHJlY2VpdmVkIHBhY2suIEEgc2VuZC1wYWNrIGNsaWVudCBzaG91bGQKK3Jlc3BvbmQgd2l0aCB0aGUgJ3F1aWV0JyBjYXBhYmlsaXR5IHRvIHN1cHByZXNzIHNlcnZlci1zaWRlIHByb2dyZXNzCityZXBvcnRpbmcgaWYgdGhlIGxvY2FsIHByb2dyZXNzIHJlcG9ydGluZyBpcyBhbHNvIGJlaW5nIHN1cHByZXNzZWQKKyhlLmcuLCB2aWEgYHB1c2ggLXFgLCBvciBpZiBzdGRlcnIgZG9lcyBub3QgZ28gdG8gYSB0dHkpLgorCithbGxvdy10aXAtc2hhMS1pbi13YW50CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHRoZSB1cGxvYWQtcGFjayBzZXJ2ZXIgYWR2ZXJ0aXNlcyB0aGlzIGNhcGFiaWxpdHksIGZldGNoLXBhY2sgbWF5CitzZW5kICJ3YW50IiBsaW5lcyB3aXRoIFNIQS0xcyB0aGF0IGV4aXN0IGF0IHRoZSBzZXJ2ZXIgYnV0IGFyZSBub3QKK2FkdmVydGlzZWQgYnkgdXBsb2FkLXBhY2suCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9yYWN5LWdpdC50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9yYWN5LWdpdC50eHQKaW5kZXggNmRjODJjYS4uMjQyYTA0NCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcmFjeS1naXQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL3JhY3ktZ2l0LnR4dApAQCAtNDYsNyArNDYsNyBAQAogb24tZGlzayB0aW1lc3RhbXBzLCByZXN1bHRpbmcgaW4gbWVhbmluZ2xlc3MgY2hhbmdlcyB3aGVuIGFuCiBpbm9kZSBpcyBldmljdGVkIGZyb20gdGhlIGlub2RlIGNhY2hlLiAgU2VlIGNvbW1pdCA4Y2UxM2IwCiBvZiBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdGdseC9oaXN0b3J5LmdpdAotKFtQQVRDSF0gU3luYyBpbiBjb3JlIHRpbWUgZ3JhbnVhbGl0eSB3aXRoIGZpbGVzeXN0ZW1zLAorKFtQQVRDSF0gU3luYyBpbiBjb3JlIHRpbWUgZ3JhbnVsYXJpdHkgd2l0aCBmaWxlc3lzdGVtcywKIDIwMDUtMDEtMDQpLgogCiBSYWN5IEdpdApAQCAtMTM1LDkgKzEzNSw5IEBACiAgICQgZ2l0IGxzLWZpbGVzIHwgZ2l0IHVwZGF0ZS1pbmRleCAtLXN0ZGluCiAgICQgdG91Y2ggLXIgLmRhdGVzdGFtcCAuZ2l0L2luZGV4CiAKLVRoaXMgd2lsbCBtYWtlIGFsbCBpbmRleCBlbnRyaWVzIHJhY2lseSBjbGVhbi4gIFRoZSBsaW51eC0yLjYKLXByb2plY3QsIGZvciBleGFtcGxlLCB0aGVyZSBhcmUgb3ZlciAyMCwwMDAgZmlsZXMgaW4gdGhlIHdvcmtpbmcKLXRyZWUuICBPbiBteSBBdGhsb24gNjQgWDIgMzgwMCssIGFmdGVyIHRoZSBhYm92ZToKK1RoaXMgd2lsbCBtYWtlIGFsbCBpbmRleCBlbnRyaWVzIHJhY2lseSBjbGVhbi4gIFRoZSBsaW51eCBwcm9qZWN0LCBmb3IKK2V4YW1wbGUsIHRoZXJlIGFyZSBvdmVyIDIwLDAwMCBmaWxlcyBpbiB0aGUgd29ya2luZyB0cmVlLiAgT24gbXkKK0F0aGxvbiA2NCBYMiAzODAwKywgYWZ0ZXIgdGhlIGFib3ZlOgogCiAgICQgL3Vzci9iaW4vdGltZSBnaXQgZGlmZi1maWxlcwogICAxLjY4dXNlciAwLjU0c3lzdGVtIDA6MDIuMjJlbGFwc2VkIDEwMCVDUFUgKDBhdmd0ZXh0KzBhdmdkYXRhIDBtYXhyZXNpZGVudClrCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3VybHMudHh0IGIvRG9jdW1lbnRhdGlvbi91cmxzLnR4dAppbmRleCAzY2ExMjJmLi45Y2NiMjQ2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3VybHMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdXJscy50eHQKQEAgLTExLDYgKzExLDkgQEAKIGFuZCBwdXNoaW5nLCBidXQgdGhlc2UgYXJlIGluZWZmaWNpZW50IGFuZCBkZXByZWNhdGVkOyBkbyBub3QgdXNlCiB0aGVtKS4KIAorVGhlIG5hdGl2ZSB0cmFuc3BvcnQgKGkuZS4gZ2l0Oi8vIFVSTCkgZG9lcyBubyBhdXRoZW50aWNhdGlvbiBhbmQKK3Nob3VsZCBiZSB1c2VkIHdpdGggY2F1dGlvbiBvbiB1bnNlY3VyZWQgbmV0d29ya3MuCisKIFRoZSBmb2xsb3dpbmcgc3ludGF4ZXMgbWF5IGJlIHVzZWQgd2l0aCB0aGVtOgogCiAtIHNzaDovL3tzdGFydHNifXVzZXJAe2VuZHNifWhvc3QueHp7c3RhcnRzYn06cG9ydHtlbmRzYn0vcGF0aC90by9yZXBvLmdpdC8KQEAgLTIzLDYgKzI2LDEyIEBACiAKIC0ge3N0YXJ0c2J9dXNlckB7ZW5kc2J9aG9zdC54ejpwYXRoL3RvL3JlcG8uZ2l0LwogCitUaGlzIHN5bnRheCBpcyBvbmx5IHJlY29nbml6ZWQgaWYgdGhlcmUgYXJlIG5vIHNsYXNoZXMgYmVmb3JlIHRoZQorZmlyc3QgY29sb24uIFRoaXMgaGVscHMgZGlmZmVyZW50aWF0ZSBhIGxvY2FsIHBhdGggdGhhdCBjb250YWlucyBhCitjb2xvbi4gRm9yIGV4YW1wbGUgdGhlIGxvY2FsIHBhdGggYGZvbzpiYXJgIGNvdWxkIGJlIHNwZWNpZmllZCBhcyBhbgorYWJzb2x1dGUgcGF0aCBvciBgLi9mb286YmFyYCB0byBhdm9pZCBiZWluZyBtaXNpbnRlcnByZXRlZCBhcyBhbiBzc2gKK3VybC4KKwogVGhlIHNzaCBhbmQgZ2l0IHByb3RvY29scyBhZGRpdGlvbmFsbHkgc3VwcG9ydCB+dXNlcm5hbWUgZXhwYW5zaW9uOgogCiAtIHNzaDovL3tzdGFydHNifXVzZXJAe2VuZHNifWhvc3QueHp7c3RhcnRzYn06cG9ydHtlbmRzYn0vfntzdGFydHNifXVzZXJ7ZW5kc2J9L3BhdGgvdG8vcmVwby5naXQvCkBAIC0zMyw3ICs0Miw3IEBACiBzeW50YXhlcyBtYXkgYmUgdXNlZDoKIAogLSAvcGF0aC90by9yZXBvLmdpdC8KLS0gZmlsZTovLy9wYXRoL3RvL3JlcG8uZ2l0LworLSBcZmlsZTovLy9wYXRoL3RvL3JlcG8uZ2l0LwogCiBpZm5kZWY6OmdpdC1jbG9uZVtdCiBUaGVzZSB0d28gc3ludGF4ZXMgYXJlIG1vc3RseSBlcXVpdmFsZW50LCBleGNlcHQgd2hlbiBjbG9uaW5nLCB3aGVuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3VzZXItbWFudWFsLnR4dCBiL0RvY3VtZW50YXRpb24vdXNlci1tYW51YWwudHh0CmluZGV4IGU4MzFjYzIuLmZlNzIzZTQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdXNlci1tYW51YWwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdXNlci1tYW51YWwudHh0CkBAIC01NywxNyArNTcsMTcgQEAKIHByb2plY3QgaW4gbWluZCwgaGVyZSBhcmUgc29tZSBpbnRlcmVzdGluZyBleGFtcGxlczoKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIyBHaXQgaXRzZWxmIChhcHByb3guIDEwTUIgZG93bmxvYWQpOgorCSMgR2l0IGl0c2VsZiAoYXBwcm94LiA0ME1CIGRvd25sb2FkKToKICQgZ2l0IGNsb25lIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vZ2l0L2dpdC5naXQKLQkjIHRoZSBMaW51eCBrZXJuZWwgKGFwcHJveC4gMTUwTUIgZG93bmxvYWQpOgotJCBnaXQgY2xvbmUgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LTIuNi5naXQKKwkjIHRoZSBMaW51eCBrZXJuZWwgKGFwcHJveC4gNjQwTUIgZG93bmxvYWQpOgorJCBnaXQgY2xvbmUgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRoZSBpbml0aWFsIGNsb25lIG1heSBiZSB0aW1lLWNvbnN1bWluZyBmb3IgYSBsYXJnZSBwcm9qZWN0LCBidXQgeW91CiB3aWxsIG9ubHkgbmVlZCB0byBjbG9uZSBvbmNlLgogCi1UaGUgY2xvbmUgY29tbWFuZCBjcmVhdGVzIGEgbmV3IGRpcmVjdG9yeSBuYW1lZCBhZnRlciB0aGUgcHJvamVjdCAoYGdpdGAKLW9yIGBsaW51eC0yLjZgIGluIHRoZSBleGFtcGxlcyBhYm92ZSkuICBBZnRlciB5b3UgY2QgaW50byB0aGlzCitUaGUgY2xvbmUgY29tbWFuZCBjcmVhdGVzIGEgbmV3IGRpcmVjdG9yeSBuYW1lZCBhZnRlciB0aGUgcHJvamVjdAorKGBnaXRgIG9yIGBsaW51eGAgaW4gdGhlIGV4YW1wbGVzIGFib3ZlKS4gIEFmdGVyIHlvdSBjZCBpbnRvIHRoaXMKIGRpcmVjdG9yeSwgeW91IHdpbGwgc2VlIHRoYXQgaXQgY29udGFpbnMgYSBjb3B5IG9mIHRoZSBwcm9qZWN0IGZpbGVzLAogY2FsbGVkIHRoZSA8PGRlZl93b3JraW5nX3RyZWUsd29ya2luZyB0cmVlPj4sIHRvZ2V0aGVyIHdpdGggYSBzcGVjaWFsCiB0b3AtbGV2ZWwgZGlyZWN0b3J5IG5hbWVkIGAuZ2l0YCwgd2hpY2ggY29udGFpbnMgYWxsIHRoZSBpbmZvcm1hdGlvbgpAQCAtNDMxLDE5ICs0MzEsMjUgQEAKIGNsb25lZCBmcm9tLCB1c2luZyBsaW5rZ2l0OmdpdC1yZW1vdGVbMV06CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSQgZ2l0IHJlbW90ZSBhZGQgbGludXgtbmZzIGdpdDovL2xpbnV4LW5mcy5vcmcvcHViL25mcy0yLjYuZ2l0Ci0kIGdpdCBmZXRjaCBsaW51eC1uZnMKLSogcmVmcy9yZW1vdGVzL2xpbnV4LW5mcy9tYXN0ZXI6IHN0b3JpbmcgYnJhbmNoICdtYXN0ZXInIC4uLgotICBjb21taXQ6IGJmODFiNDYKKyQgZ2l0IHJlbW90ZSBhZGQgc3RhZ2luZyBnaXQ6Ly9naXQua2VybmVsLm9yZy8uLi4vZ3JlZ2toL3N0YWdpbmcuZ2l0CiskIGdpdCBmZXRjaCBzdGFnaW5nCisuLi4KK0Zyb20gZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2dyZWdraC9zdGFnaW5nCisgKiBbbmV3IGJyYW5jaF0gICAgICBtYXN0ZXIgICAgIC0+IHN0YWdpbmcvbWFzdGVyCisgKiBbbmV3IGJyYW5jaF0gICAgICBzdGFnaW5nLWxpbnVzIC0+IHN0YWdpbmcvc3RhZ2luZy1saW51cworICogW25ldyBicmFuY2hdICAgICAgc3RhZ2luZy1uZXh0IC0+IHN0YWdpbmcvc3RhZ2luZy1uZXh0CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE5ldyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgd2lsbCBiZSBzdG9yZWQgdW5kZXIgdGhlIHNob3J0aGFuZCBuYW1lCi10aGF0IHlvdSBnYXZlIGBnaXQgcmVtb3RlIGFkZGAsIGluIHRoaXMgY2FzZSBgbGludXgtbmZzYDoKK3RoYXQgeW91IGdhdmUgYGdpdCByZW1vdGUgYWRkYCwgaW4gdGhpcyBjYXNlIGBzdGFnaW5nYDoKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogJCBnaXQgYnJhbmNoIC1yCi1saW51eC1uZnMvbWFzdGVyCi1vcmlnaW4vbWFzdGVyCisgIG9yaWdpbi9IRUFEIC0+IG9yaWdpbi9tYXN0ZXIKKyAgb3JpZ2luL21hc3RlcgorICBzdGFnaW5nL21hc3RlcgorICBzdGFnaW5nL3N0YWdpbmctbGludXMKKyAgc3RhZ2luZy9zdGFnaW5nLW5leHQKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogSWYgeW91IHJ1biBgZ2l0IGZldGNoIDxyZW1vdGU+YCBsYXRlciwgdGhlIHJlbW90ZS10cmFja2luZyBicmFuY2hlcwpAQCAtNDU1LDkgKzQ2MSw5IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAkIGNhdCAuZ2l0L2NvbmZpZwogLi4uCi1bcmVtb3RlICJsaW51eC1uZnMiXQotCXVybCA9IGdpdDovL2xpbnV4LW5mcy5vcmcvcHViL25mcy0yLjYuZ2l0Ci0JZmV0Y2ggPSArcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9saW51eC1uZnMvKgorW3JlbW90ZSAic3RhZ2luZyJdCisJdXJsID0gZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2dyZWdraC9zdGFnaW5nLmdpdAorCWZldGNoID0gK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvc3RhZ2luZy8qCiAuLi4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMTgzNSw3ICsxODQxLDcgQEAKIHJlc29sdXRpb24sIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgY29tbWl0LCBqdXN0IHJ1bgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0kIGdpdCBhbSAtLXJlc29sdmVkCiskIGdpdCBhbSAtLWNvbnRpbnVlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGFuZCBHaXQgd2lsbCBjcmVhdGUgdGhlIGNvbW1pdCBmb3IgeW91IGFuZCBjb250aW51ZSBhcHBseWluZyB0aGUKQEAgLTIxNTYsNyArMjE2Miw3IEBACiB0cmVlOgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0kIGdpdCBjbG9uZSBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXgtMi42LmdpdCB3b3JrCiskIGdpdCBjbG9uZSBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0IHdvcmsKICQgY2Qgd29yawogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0yMTk4LDcgKzIyMDQsNyBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogJCBjYXQgPj4gLmdpdC9jb25maWcgPDxFT0YKIFtyZW1vdGUgIm15dHJlZSJdCi0JdXJsID0gIG1hc3Rlci5rZXJuZWwub3JnOi9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvYWVnbC9saW51eC0yLjYuZ2l0CisJdXJsID0gIG1hc3Rlci5rZXJuZWwub3JnOi9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvYWVnbC9saW51eC5naXQKIAlwdXNoID0gcmVsZWFzZQogCXB1c2ggPSB0ZXN0CiBFT0YKQEAgLTQyNTYsMTUgKzQyNjIsMTYgQEAKIE5vd2FkYXlzLCBgZ2l0IGxvZ2AgaXMgYSBidWlsdGluLCB3aGljaCBtZWFucyB0aGF0IGl0IGlzIF9jb250YWluZWRfIGluIHRoZQogY29tbWFuZCBgZ2l0YC4gIFRoZSBzb3VyY2Ugc2lkZSBvZiBhIGJ1aWx0aW4gaXMKIAotLSBhIGZ1bmN0aW9uIGNhbGxlZCBgY21kXzxibGE+YCwgdHlwaWNhbGx5IGRlZmluZWQgaW4gYGJ1aWx0aW4tPGJsYT4uY2AsCi0gIGFuZCBkZWNsYXJlZCBpbiBgYnVpbHRpbi5oYCwKKy0gYSBmdW5jdGlvbiBjYWxsZWQgYGNtZF88YmxhPmAsIHR5cGljYWxseSBkZWZpbmVkIGluIGBidWlsdGluLzxibGEuYz5gCisgIChub3RlIHRoYXQgb2xkZXIgdmVyc2lvbnMgb2YgR2l0IHVzZWQgdG8gaGF2ZSBpdCBpbiBgYnVpbHRpbi08YmxhPi5jYAorICBpbnN0ZWFkKSwgYW5kIGRlY2xhcmVkIGluIGBidWlsdGluLmhgLgogCiAtIGFuIGVudHJ5IGluIHRoZSBgY29tbWFuZHNbXWAgYXJyYXkgaW4gYGdpdC5jYCwgYW5kCiAKIC0gYW4gZW50cnkgaW4gYEJVSUxUSU5fT0JKRUNUU2AgaW4gdGhlIGBNYWtlZmlsZWAuCiAKIFNvbWV0aW1lcywgbW9yZSB0aGFuIG9uZSBidWlsdGluIGlzIGNvbnRhaW5lZCBpbiBvbmUgc291cmNlIGZpbGUuICBGb3IKLWV4YW1wbGUsIGBjbWRfd2hhdGNoYW5nZWQoKWAgYW5kIGBjbWRfbG9nKClgIGJvdGggcmVzaWRlIGluIGBidWlsdGluLWxvZy5jYCwKK2V4YW1wbGUsIGBjbWRfd2hhdGNoYW5nZWQoKWAgYW5kIGBjbWRfbG9nKClgIGJvdGggcmVzaWRlIGluIGBidWlsdGluL2xvZy5jYCwKIHNpbmNlIHRoZXkgc2hhcmUgcXVpdGUgYSBiaXQgb2YgY29kZS4gIEluIHRoYXQgY2FzZSwgdGhlIGNvbW1hbmRzIHdoaWNoIGFyZQogX25vdF8gbmFtZWQgbGlrZSB0aGUgYC5jYCBmaWxlIGluIHdoaWNoIHRoZXkgbGl2ZSBoYXZlIHRvIGJlIGxpc3RlZCBpbgogYEJVSUxUX0lOU2AgaW4gdGhlIGBNYWtlZmlsZWAuCkBAIC00Mjg3LDEwICs0Mjk0LDEwIEBACiAtIGlzIHBsdW1iaW5nLCBhbmQKIAogLSB3YXMgYXJvdW5kIGV2ZW4gaW4gdGhlIGluaXRpYWwgY29tbWl0IChpdCBsaXRlcmFsbHkgd2VudCBvbmx5IHRocm91Z2gKLSAgc29tZSAyMCByZXZpc2lvbnMgYXMgYGNhdC1maWxlLmNgLCB3YXMgcmVuYW1lZCB0byBgYnVpbHRpbi1jYXQtZmlsZS5jYAorICBzb21lIDIwIHJldmlzaW9ucyBhcyBgY2F0LWZpbGUuY2AsIHdhcyByZW5hbWVkIHRvIGBidWlsdGluL2NhdC1maWxlLmNgCiAgIHdoZW4gbWFkZSBhIGJ1aWx0aW4sIGFuZCB0aGVuIHNhdyBsZXNzIHRoYW4gMTAgdmVyc2lvbnMpLgogCi1TbywgbG9vayBpbnRvIGBidWlsdGluLWNhdC1maWxlLmNgLCBzZWFyY2ggZm9yIGBjbWRfY2F0X2ZpbGUoKWAgYW5kIGxvb2sgd2hhdAorU28sIGxvb2sgaW50byBgYnVpbHRpbi9jYXQtZmlsZS5jYCwgc2VhcmNoIGZvciBgY21kX2NhdF9maWxlKClgIGFuZCBsb29rIHdoYXQKIGl0IGRvZXMuCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDM2Niw3ICs0MzczLDcgQEAKIGJ1aWx0aW46CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSQgZ2l0IGxvZyAtLW5vLW1lcmdlcyAtLWRpZmYtZmlsdGVyPUEgYnVpbHRpbi0qLmMKKyQgZ2l0IGxvZyAtLW5vLW1lcmdlcyAtLWRpZmYtZmlsdGVyPUEgYnVpbHRpbi8qLmMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogWW91IHNlZSwgR2l0IGlzIGFjdHVhbGx5IHRoZSBiZXN0IHRvb2wgdG8gZmluZCBvdXQgYWJvdXQgdGhlIHNvdXJjZSBvZiBHaXQKQEAgLTQ2NjgsNSArNDY3NSw1IEBACiBBbHRlcm5hdGVzLCBjbG9uZSAtcmVmZXJlbmNlLCBldGMuCiAKIE1vcmUgb24gcmVjb3ZlcnkgZnJvbSByZXBvc2l0b3J5IGNvcnJ1cHRpb24uICBTZWU6Ci0JaHR0cDovL21hcmMudGhlYWltc2dyb3VwLmNvbS8/bD1naXQmbT0xMTcyNjM4NjQ4MjA3OTkmdz0yCi0JaHR0cDovL21hcmMudGhlYWltc2dyb3VwLmNvbS8/bD1naXQmbT0xMTcxNDc4NTU1MDM3OTgmdz0yCisJaHR0cDovL21hcmMuaW5mby8/bD1naXQmbT0xMTcyNjM4NjQ4MjA3OTkmdz0yCisJaHR0cDovL21hcmMuaW5mby8/bD1naXQmbT0xMTcxNDc4NTU1MDM3OTgmdz0yCmRpZmYgLS1naXQgYS9HSVQtVkVSU0lPTi1HRU4gYi9HSVQtVkVSU0lPTi1HRU4KaW5kZXggYWE4N2RiZi4uMDYwMjZlYSAxMDA3NTUKLS0tIGEvR0lULVZFUlNJT04tR0VOCisrKyBiL0dJVC1WRVJTSU9OLUdFTgpAQCAtMSw3ICsxLDcgQEAKICMhL2Jpbi9zaAogCiBHVkY9R0lULVZFUlNJT04tRklMRQotREVGX1ZFUj12MS44LjMtcmMzCitERUZfVkVSPXYxLjguNAogCiBMRj0nCiAnCkBAIC0xMSw3ICsxMSw3IEBACiBpZiB0ZXN0IC1mIHZlcnNpb24KIHRoZW4KIAlWTj0kKGNhdCB2ZXJzaW9uKSB8fCBWTj0iJERFRl9WRVIiCi1lbGlmIHRlc3QgLWQgLmdpdCAtbyAtZiAuZ2l0ICYmCitlbGlmIHRlc3QgLWQgJHtHSVRfRElSOi0uZ2l0fSAtbyAtZiAuZ2l0ICYmCiAJVk49JChnaXQgZGVzY3JpYmUgLS1tYXRjaCAidlswLTldKiIgLS1hYmJyZXY9NyBIRUFEIDI+L2Rldi9udWxsKSAmJgogCWNhc2UgIiRWTiIgaW4KIAkqJExGKikgKGV4aXQgMSkgOzsKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggMGY5MzFhMi4uNDAyNjIxMSAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEwNiw3ICsxMDYsNyBAQAogIyBEZWZpbmUgTk9fRk5NQVRDSF9DQVNFRk9MRCBpZiB5b3VyIGZubWF0Y2ggZnVuY3Rpb24gZG9lc24ndCBoYXZlIHRoZQogIyBGTk1fQ0FTRUZPTEQgR05VIGV4dGVuc2lvbi4KICMKLSMgRGVmaW5lIFVTRV9XSUxETUFUQ0ggaWYgeW91IHdhbnQgdG8gdXNlIEdpdCdzIHdpbGRtYXRjaAorIyBEZWZpbmUgTk9fV0lMRE1BVENIIGlmIHlvdSBkbyBub3Qgd2FudCB0byB1c2UgR2l0J3Mgd2lsZG1hdGNoCiAjIGltcGxlbWVudGF0aW9uIGFzIGZubWF0Y2gKICMKICMgRGVmaW5lIE5PX0dFQ09TX0lOX1BXRU5UIGlmIHlvdSBkb24ndCBoYXZlIHB3X2dlY29zIGluIHN0cnVjdCBwYXNzd2QKQEAgLTEzNyw2ICsxMzcsMTAgQEAKICMgc3BlY2lmeSB5b3VyIG93biAob3IgRGFyd2luUG9ydCdzKSBpbmNsdWRlIGRpcmVjdG9yaWVzIGFuZAogIyBsaWJyYXJ5IGRpcmVjdG9yaWVzIGJ5IGRlZmluaW5nIENGTEFHUyBhbmQgTERGTEFHUyBhcHByb3ByaWF0ZWx5LgogIworIyBEZWZpbmUgTk9fQVBQTEVfQ09NTU9OX0NSWVBUTyBpZiB5b3UgYXJlIGJ1aWxkaW5nIG9uIERhcndpbi9NYWMgT1MgWAorIyBhbmQgZG8gbm90IHdhbnQgdG8gdXNlIEFwcGxlJ3MgQ29tbW9uQ3J5cHRvIGxpYnJhcnkuICBUaGlzIGFsbG93cyB5b3UKKyMgdG8gcHJvdmlkZSB5b3VyIG93biBPcGVuU1NMIGxpYnJhcnksIGZvciBleGFtcGxlIGZyb20gTWFjUG9ydHMuCisjCiAjIERlZmluZSBCTEtfU0hBMSBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBtYWtlIHVzZSBvZiB0aGUgYnVuZGxlZAogIyBvcHRpbWl6ZWQgQyBTSEExIHJvdXRpbmUuCiAjCkBAIC0yOTAsMTAgKzI5NCw2IEBACiAjCiAjIERlZmluZSBOT19SRUdFWCBpZiB5b3UgaGF2ZSBubyBvciBpbmZlcmlvciByZWdleCBzdXBwb3J0IGluIHlvdXIgQyBsaWJyYXJ5LgogIwotIyBEZWZpbmUgQ1lHV0lOX1YxNV9XSU4zMkFQSSBpZiB5b3UgYXJlIHVzaW5nIEN5Z3dpbiB2MS43LnggYnV0IGFyZSBub3QKLSMgdXNpbmcgdGhlIGN1cnJlbnQgdzMyYXBpIHBhY2thZ2VzLiBUaGUgcmVjb21tZW5kZWQgYXBwcm9hY2gsIGhvd2V2ZXIsCi0jIGlzIHRvIHVwZGF0ZSB5b3VyIGluc3RhbGxhdGlvbiBpZiBjb21waWxhdGlvbiBlcnJvcnMgb2NjdXIuCi0jCiAjIERlZmluZSBIQVZFX0RFVl9UVFkgaWYgeW91ciBzeXN0ZW0gY2FuIG9wZW4gL2Rldi90dHkgdG8gaW50ZXJhY3Qgd2l0aCB0aGUKICMgdXNlci4KICMKQEAgLTQ2MCw2ICs0NjAsNyBAQAogU0NSSVBUX1NIICs9IGdpdC1wdWxsLnNoCiBTQ1JJUFRfU0ggKz0gZ2l0LXF1aWx0aW1wb3J0LnNoCiBTQ1JJUFRfU0ggKz0gZ2l0LXJlYmFzZS5zaAorU0NSSVBUX1NIICs9IGdpdC1yZW1vdGUtdGVzdGdpdC5zaAogU0NSSVBUX1NIICs9IGdpdC1yZXBhY2suc2gKIFNDUklQVF9TSCArPSBnaXQtcmVxdWVzdC1wdWxsLnNoCiBTQ1JJUFRfU0ggKz0gZ2l0LXN0YXNoLnNoCkBAIC00ODcsMTEgKzQ4OCwxOCBAQAogU0NSSVBUX1BZVEhPTiArPSBnaXQtcmVtb3RlLXRlc3RweS5weQogU0NSSVBUX1BZVEhPTiArPSBnaXQtcDQucHkKIAorTk9fSU5TVEFMTCArPSBnaXQtcmVtb3RlLXRlc3RnaXQKK05PX0lOU1RBTEwgKz0gZ2l0LXJlbW90ZS10ZXN0cHkKKwogIyBHZW5lcmF0ZWQgZmlsZXMgZm9yIHNjcmlwdHMKIFNDUklQVF9TSF9HRU4gPSAkKHBhdHN1YnN0ICUuc2gsJSwkKFNDUklQVF9TSCkpCiBTQ1JJUFRfUEVSTF9HRU4gPSAkKHBhdHN1YnN0ICUucGVybCwlLCQoU0NSSVBUX1BFUkwpKQogU0NSSVBUX1BZVEhPTl9HRU4gPSAkKHBhdHN1YnN0ICUucHksJSwkKFNDUklQVF9QWVRIT04pKQogCitTQ1JJUFRfU0hfSU5TID0gJChmaWx0ZXItb3V0ICQoTk9fSU5TVEFMTCksJChTQ1JJUFRfU0hfR0VOKSkKK1NDUklQVF9QRVJMX0lOUyA9ICQoZmlsdGVyLW91dCAkKE5PX0lOU1RBTEwpLCQoU0NSSVBUX1BFUkxfR0VOKSkKK1NDUklQVF9QWVRIT05fSU5TID0gJChmaWx0ZXItb3V0ICQoTk9fSU5TVEFMTCksJChTQ1JJUFRfUFlUSE9OX0dFTikpCisKICMgSW5kaXZpZHVhbCBydWxlcyB0byBhbGxvdyBlLmcuCiAjICJtYWtlIC1DIC4uLy4uIFNDUklQVF9QRVJMPWNvbnRyaWIvZm9vL2Jhci5wZXJsIGJ1aWxkLXBlcmwtc2NyaXB0IgogIyBmcm9tIHN1YmRpcmVjdG9yaWVzIGxpa2UgY29udHJpYi8qLwpAQCAtNTAxLDEyICs1MDksMTIgQEAKIGJ1aWxkLXB5dGhvbi1zY3JpcHQ6ICQoU0NSSVBUX1BZVEhPTl9HRU4pCiAKIC5QSE9OWTogaW5zdGFsbC1wZXJsLXNjcmlwdCBpbnN0YWxsLXNoLXNjcmlwdCBpbnN0YWxsLXB5dGhvbi1zY3JpcHQKLWluc3RhbGwtc2gtc2NyaXB0OiAkKFNDUklQVF9TSF9HRU4pCi0JJChJTlNUQUxMKSAkKFNDUklQVF9TSF9HRU4pICckKERFU1RESVJfU1EpJChnaXRleGVjX2luc3RkaXJfU1EpJwotaW5zdGFsbC1wZXJsLXNjcmlwdDogJChTQ1JJUFRfUEVSTF9HRU4pCi0JJChJTlNUQUxMKSAkKFNDUklQVF9QRVJMX0dFTikgJyQoREVTVERJUl9TUSkkKGdpdGV4ZWNfaW5zdGRpcl9TUSknCi1pbnN0YWxsLXB5dGhvbi1zY3JpcHQ6ICQoU0NSSVBUX1BZVEhPTl9HRU4pCi0JJChJTlNUQUxMKSAkKFNDUklQVF9QWVRIT05fR0VOKSAnJChERVNURElSX1NRKSQoZ2l0ZXhlY19pbnN0ZGlyX1NRKScKK2luc3RhbGwtc2gtc2NyaXB0OiAkKFNDUklQVF9TSF9JTlMpCisJJChJTlNUQUxMKSAkXiAnJChERVNURElSX1NRKSQoZ2l0ZXhlY19pbnN0ZGlyX1NRKScKK2luc3RhbGwtcGVybC1zY3JpcHQ6ICQoU0NSSVBUX1BFUkxfSU5TKQorCSQoSU5TVEFMTCkgJF4gJyQoREVTVERJUl9TUSkkKGdpdGV4ZWNfaW5zdGRpcl9TUSknCitpbnN0YWxsLXB5dGhvbi1zY3JpcHQ6ICQoU0NSSVBUX1BZVEhPTl9JTlMpCisJJChJTlNUQUxMKSAkXiAnJChERVNURElSX1NRKSQoZ2l0ZXhlY19pbnN0ZGlyX1NRKScKIAogLlBIT05ZOiBjbGVhbi1wZXJsLXNjcmlwdCBjbGVhbi1zaC1zY3JpcHQgY2xlYW4tcHl0aG9uLXNjcmlwdAogY2xlYW4tc2gtc2NyaXB0OgpAQCAtNTE2LDkgKzUyNCw5IEBACiBjbGVhbi1weXRob24tc2NyaXB0OgogCSQoUk0pICQoU0NSSVBUX1BZVEhPTl9HRU4pCiAKLVNDUklQVFMgPSAkKFNDUklQVF9TSF9HRU4pIFwKLQkgICQoU0NSSVBUX1BFUkxfR0VOKSBcCi0JICAkKFNDUklQVF9QWVRIT05fR0VOKSBcCitTQ1JJUFRTID0gJChTQ1JJUFRfU0hfSU5TKSBcCisJICAkKFNDUklQVF9QRVJMX0lOUykgXAorCSAgJChTQ1JJUFRfUFlUSE9OX0lOUykgXAogCSAgZ2l0LWluc3Rhd2ViCiAKIEVUQUdTX1RBUkdFVCA9IFRBR1MKQEAgLTU1OCw2ICs1NjYsOCBAQAogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC1ta3RlbXAKIFRFU1RfUFJPR1JBTVNfTkVFRF9YICs9IHRlc3QtcGFyc2Utb3B0aW9ucwogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC1wYXRoLXV0aWxzCitURVNUX1BST0dSQU1TX05FRURfWCArPSB0ZXN0LXByaW8tcXVldWUKK1RFU1RfUFJPR1JBTVNfTkVFRF9YICs9IHRlc3QtcmVhZC1jYWNoZQogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC1yZWdleAogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC1yZXZpc2lvbi13YWxraW5nCiBURVNUX1BST0dSQU1TX05FRURfWCArPSB0ZXN0LXJ1bi1jb21tYW5kCkBAIC02NDEsNyArNjUxLDYgQEAKIExJQl9IICs9IGNvbHVtbi5oCiBMSUJfSCArPSBjb21taXQuaAogTElCX0ggKz0gY29tcGF0L2Jzd2FwLmgKLUxJQl9IICs9IGNvbXBhdC9jeWd3aW4uaAogTElCX0ggKz0gY29tcGF0L21pbmd3LmgKIExJQl9IICs9IGNvbXBhdC9vYnN0YWNrLmgKIExJQl9IICs9IGNvbXBhdC9wb2xsL3BvbGwuaApAQCAtNjczLDYgKzY4Miw4IEBACiBMSUJfSCArPSBodHRwLmgKIExJQl9IICs9IGt3c2V0LmgKIExJQl9IICs9IGxldmVuc2h0ZWluLmgKK0xJQl9IICs9IGxpbmUtbG9nLmgKK0xJQl9IICs9IGxpbmUtcmFuZ2UuaAogTElCX0ggKz0gbGlzdC1vYmplY3RzLmgKIExJQl9IICs9IGxsLW1lcmdlLmgKIExJQl9IICs9IGxvZy10cmVlLmgKQEAgLTY4MiwxNSArNjkzLDE2IEBACiBMSUJfSCArPSBtZXJnZXNvcnQuaAogTElCX0ggKz0gbm90ZXMtY2FjaGUuaAogTElCX0ggKz0gbm90ZXMtbWVyZ2UuaAorTElCX0ggKz0gbm90ZXMtdXRpbHMuaAogTElCX0ggKz0gbm90ZXMuaAogTElCX0ggKz0gb2JqZWN0LmgKLUxJQl9IICs9IHBhY2stcmVmcy5oCiBMSUJfSCArPSBwYWNrLXJldmluZGV4LmgKIExJQl9IICs9IHBhY2suaAogTElCX0ggKz0gcGFyc2Utb3B0aW9ucy5oCiBMSUJfSCArPSBwYXRjaC1pZHMuaAogTElCX0ggKz0gcGF0aHNwZWMuaAogTElCX0ggKz0gcGt0LWxpbmUuaAorTElCX0ggKz0gcHJpby1xdWV1ZS5oCiBMSUJfSCArPSBwcm9ncmVzcy5oCiBMSUJfSCArPSBwcm9tcHQuaAogTElCX0ggKz0gcXVvdGUuaApAQCAtODAxLDYgKzgxMyw4IEBACiBMSUJfT0JKUyArPSBpZGVudC5vCiBMSUJfT0JKUyArPSBrd3NldC5vCiBMSUJfT0JKUyArPSBsZXZlbnNodGVpbi5vCitMSUJfT0JKUyArPSBsaW5lLWxvZy5vCitMSUJfT0JKUyArPSBsaW5lLXJhbmdlLm8KIExJQl9PQkpTICs9IGxpc3Qtb2JqZWN0cy5vCiBMSUJfT0JKUyArPSBsbC1tZXJnZS5vCiBMSUJfT0JKUyArPSBsb2NrZmlsZS5vCkBAIC04MTUsOSArODI5LDkgQEAKIExJQl9PQkpTICs9IG5vdGVzLm8KIExJQl9PQkpTICs9IG5vdGVzLWNhY2hlLm8KIExJQl9PQkpTICs9IG5vdGVzLW1lcmdlLm8KK0xJQl9PQkpTICs9IG5vdGVzLXV0aWxzLm8KIExJQl9PQkpTICs9IG9iamVjdC5vCiBMSUJfT0JKUyArPSBwYWNrLWNoZWNrLm8KLUxJQl9PQkpTICs9IHBhY2stcmVmcy5vCiBMSUJfT0JKUyArPSBwYWNrLXJldmluZGV4Lm8KIExJQl9PQkpTICs9IHBhY2std3JpdGUubwogTElCX09CSlMgKz0gcGFnZXIubwpAQCAtODMwLDYgKzg0NCw3IEBACiBMSUJfT0JKUyArPSBwa3QtbGluZS5vCiBMSUJfT0JKUyArPSBwcmVsb2FkLWluZGV4Lm8KIExJQl9PQkpTICs9IHByZXR0eS5vCitMSUJfT0JKUyArPSBwcmlvLXF1ZXVlLm8KIExJQl9PQkpTICs9IHByb2dyZXNzLm8KIExJQl9PQkpTICs9IHByb21wdC5vCiBMSUJfT0JKUyArPSBxdW90ZS5vCkBAIC04OTMsNiArOTA4LDcgQEAKIEJVSUxUSU5fT0JKUyArPSBidWlsdGluL2NhdC1maWxlLm8KIEJVSUxUSU5fT0JKUyArPSBidWlsdGluL2NoZWNrLWF0dHIubwogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vY2hlY2staWdub3JlLm8KK0JVSUxUSU5fT0JKUyArPSBidWlsdGluL2NoZWNrLW1haWxtYXAubwogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vY2hlY2stcmVmLWZvcm1hdC5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi9jaGVja291dC1pbmRleC5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi9jaGVja291dC5vCkBAIC0xMDU0LDYgKzEwNzAsMTEgQEAKIAkJCUJBU0lDX0xERkxBR1MgKz0gLUwvb3B0L2xvY2FsL2xpYgogCQllbmRpZgogCWVuZGlmCisJaWZuZGVmIE5PX0FQUExFX0NPTU1PTl9DUllQVE8KKwkJQVBQTEVfQ09NTU9OX0NSWVBUTyA9IFllc1BsZWFzZQorCQlDT01QQVRfQ0ZMQUdTICs9IC1EQVBQTEVfQ09NTU9OX0NSWVBUTworCWVuZGlmCisJTk9fUkVHRVggPSBZZXNQbGVhc2UKIAlQVEhSRUFEX0xJQlMgPQogZW5kaWYKIApAQCAtMTI2MSw3ICsxMjgyLDcgQEAKIAlDT01QQVRfT0JKUyArPSBjb21wYXQvZm5tYXRjaC9mbm1hdGNoLm8KIGVuZGlmCiBlbmRpZgotaWZkZWYgVVNFX1dJTERNQVRDSAoraWZuZGVmIE5PX1dJTERNQVRDSAogCUNPTVBBVF9DRkxBR1MgKz0gLURVU0VfV0lMRE1BVENICiBlbmRpZgogaWZkZWYgTk9fU0VURU5WCkBAIC0xMzg4LDEwICsxNDA5LDE2IEBACiAJTElCX09CSlMgKz0gcHBjL3NoYTEubyBwcGMvc2hhMXBwYy5vCiAJTElCX0ggKz0gcHBjL3NoYTEuaAogZWxzZQoraWZkZWYgQVBQTEVfQ09NTU9OX0NSWVBUTworCUNPTVBBVF9DRkxBR1MgKz0gLURDT01NT05fRElHRVNUX0ZPUl9PUEVOU1NMCisJU0hBMV9IRUFERVIgPSA8Q29tbW9uQ3J5cHRvL0NvbW1vbkRpZ2VzdC5oPgorZWxzZQogCVNIQTFfSEVBREVSID0gPG9wZW5zc2wvc2hhLmg+CiAJRVhUTElCUyArPSAkKExJQl80X0NSWVBUTykKIGVuZGlmCiBlbmRpZgorZW5kaWYKKwogaWZkZWYgTk9fUEVSTF9NQUtFTUFLRVIKIAlleHBvcnQgTk9fUEVSTF9NQUtFTUFLRVIKIGVuZGlmCkBAIC0xNDQ5LDkgKzE0NzYsNiBAQAogCUNPTVBBVF9DRkxBR1MgKz0gLUljb21wYXQvcmVnZXgKIAlDT01QQVRfT0JKUyArPSBjb21wYXQvcmVnZXgvcmVnZXgubwogZW5kaWYKLWlmZGVmIENZR1dJTl9WMTVfV0lOMzJBUEkKLQlDT01QQVRfQ0ZMQUdTICs9IC1EQ1lHV0lOX1YxNV9XSU4zMkFQSQotZW5kaWYKIAogaWZkZWYgVVNFX05FRF9BTExPQ0FUT1IKICAgICAgICBDT01QQVRfQ0ZMQUdTICs9IC1JY29tcGF0L25lZG1hbGxvYwpAQCAtMTUwMyw2ICsxNTI3LDcgQEAKIAlRVUlFVF9NU0dGTVQgICA9IEBlY2hvICcgICAnIE1TR0ZNVCAkQDsKIAlRVUlFVF9HQ09WICAgICA9IEBlY2hvICcgICAnIEdDT1YgJEA7CiAJUVVJRVRfU1AgICAgICAgPSBAZWNobyAnICAgJyBTUCAkPDsKKwlRVUlFVF9SQyAgICAgICA9IEBlY2hvICcgICAnIFJDICRAOwogCVFVSUVUX1NVQkRJUjAgID0gK0BzdWJkaXI9CiAJUVVJRVRfU1VCRElSMSAgPSA7JChOT19TVUJESVIpIGVjaG8gJyAgICcgU1VCRElSICQkc3ViZGlyOyBcCiAJCQkgJChNQUtFKSAkKFBSSU5UX0RJUikgLUMgJCRzdWJkaXIKQEAgLTE2NDUsNyArMTY3MCw3IEBACiBzaGVsbF9jb21wYXRpYmlsaXR5X3Rlc3Q6IHBsZWFzZV9zZXRfU0hFTExfUEFUSF90b19hX21vcmVfbW9kZXJuX3NoZWxsCiAKIHN0cmlwOiAkKFBST0dSQU1TKSBnaXQkWAotCSQoU1RSSVApICQoU1RSSVBfT1BUUykgJChQUk9HUkFNUykgZ2l0JFgKKwkkKFNUUklQKSAkKFNUUklQX09QVFMpICReCiAKICMjIyBUYXJnZXQtc3BlY2lmaWMgZmxhZ3MgYW5kIGRlcGVuZGVuY2llcwogCkBAIC0xNzA1LDkgKzE3MzAsOSBAQAogCiAkKEJVSUxUX0lOUyk6IGdpdCRYCiAJJChRVUlFVF9CVUlMVF9JTikkKFJNKSAkQCAmJiBcCi0JbG4gZ2l0JFggJEAgMj4vZGV2L251bGwgfHwgXAotCWxuIC1zIGdpdCRYICRAIDI+L2Rldi9udWxsIHx8IFwKLQljcCBnaXQkWCAkQAorCWxuICQ8ICRAIDI+L2Rldi9udWxsIHx8IFwKKwlsbiAtcyAkPCAkQCAyPi9kZXYvbnVsbCB8fCBcCisJY3AgJDwgJEAKIAogY29tbW9uLWNtZHMuaDogLi9nZW5lcmF0ZS1jbWRsaXN0LnNoIGNvbW1hbmQtbGlzdC50eHQKIApAQCAtMTc0OCw2ICsxNzczLDExIEBACiAJJChRVUlFVF9HRU4pJChjbWRfbXVuZ2Vfc2NyaXB0KSAmJiBcCiAJbXYgJEArICRACiAKK2dpdC5yZXM6IGdpdC5yYyBHSVQtVkVSU0lPTi1GSUxFCisJJChRVUlFVF9SQykkKFJDKSBcCisJICAkKGpvaW4gLURNQUpPUj0gLURNSU5PUj0gLURQQVRDSD0sICQod29yZGxpc3QgMSwzLCQoc3Vic3QgLSwgLCQoc3Vic3QgLiwgLCQoR0lUX1ZFUlNJT04pKSkpKSBcCisJICAtREdJVF9WRVJTSU9OPSJcXFwiJChHSVRfVkVSU0lPTilcXFwiIiAkPCAtbyAkQAorCiBpZm5kZWYgTk9fUEVSTAogJChwYXRzdWJzdCAlLnBlcmwsJSwkKFNDUklQVF9QRVJMKSk6IHBlcmwvcGVybC5tYWsKIApAQCAtMTc3Miw3ICsxODAyLDcgQEAKIAkgICAgLWUgJwl4JyBcCiAJICAgIC1lICd9JyBcCiAJICAgIC1lICdzL0BAR0lUX1ZFUlNJT05AQC8kKEdJVF9WRVJTSU9OKS9nJyBcCi0JICAgICRALnBlcmwgPiRAKyAmJiBcCisJICAgICQ8ID4kQCsgJiYgXAogCWNobW9kICt4ICRAKyAmJiBcCiAJbXYgJEArICRACiAKQEAgLTE3OTYsOCArMTgyNiw4IEBACiBlbmRpZiAjIE5PX1BFUkwKIAogaWZuZGVmIE5PX1BZVEhPTgotJChwYXRzdWJzdCAlLnB5LCUsJChTQ1JJUFRfUFlUSE9OKSk6IEdJVC1DRkxBR1MgR0lULVBSRUZJWCBHSVQtUFlUSE9OLVZBUlMKLSQocGF0c3Vic3QgJS5weSwlLCQoU0NSSVBUX1BZVEhPTikpOiAlIDogJS5weQorJChTQ1JJUFRfUFlUSE9OX0dFTik6IEdJVC1DRkxBR1MgR0lULVBSRUZJWCBHSVQtUFlUSE9OLVZBUlMKKyQoU0NSSVBUX1BZVEhPTl9HRU4pOiAlIDogJS5weQogCSQoUVVJRVRfR0VOKSQoUk0pICRAICRAKyAmJiBcCiAJSU5TVExJQkRJUj1gTUFLRUZMQUdTPSAkKE1BS0UpIC1DIGdpdF9yZW1vdGVfaGVscGVycyAtcyBcCiAJCS0tbm8tcHJpbnQtZGlyZWN0b3J5IHByZWZpeD0nJChwcmVmaXhfU1EpJyBERVNURElSPSckKERFU1RESVJfU1EpJyBcCkBAIC0xODA1LDExICsxODM1LDExIEBACiAJc2VkIC1lICcxc3wjIS4qcHl0aG9ufCMhJChQWVRIT05fUEFUSF9TUSl8JyBcCiAJICAgIC1lICdzfFwob3NcLmdldGVudigiR0lUUFlUSE9OTElCIlwpW14pXSopfFwxLCJAQElOU1RMSUJESVJAQCIpfCcgXAogCSAgICAtZSAnc3xAQElOU1RMSUJESVJAQHwnIiQkSU5TVExJQkRJUiInfGcnIFwKLQkgICAgJEAucHkgPiRAKyAmJiBcCisJICAgICQ8ID4kQCsgJiYgXAogCWNobW9kICt4ICRAKyAmJiBcCiAJbXYgJEArICRACiBlbHNlICMgTk9fUFlUSE9OCi0kKHBhdHN1YnN0ICUucHksJSwkKFNDUklQVF9QWVRIT04pKTogJSA6IHVuaW1wbGVtZW50ZWQuc2gKKyQoU0NSSVBUX1BZVEhPTl9HRU4pOiAlIDogdW5pbXBsZW1lbnRlZC5zaAogCSQoUVVJRVRfR0VOKSQoUk0pICRAICRAKyAmJiBcCiAJc2VkIC1lICcxc3wjIS4qL3NofCMhJChTSEVMTF9QQVRIX1NRKXwnIFwKIAkgICAgLWUgJ3N8QEBSRUFTT05AQHxOT19QWVRIT049JChOT19QWVRIT04pfGcnIFwKQEAgLTIwMDQsNiArMjAzNCw3IEBACiBpZmRlZiBVU0VfTkVEX0FMTE9DQVRPUgogY29tcGF0L25lZG1hbGxvYy9uZWRtYWxsb2Muc3AgY29tcGF0L25lZG1hbGxvYy9uZWRtYWxsb2MubzogRVhUUkFfQ1BQRkxBR1MgPSBcCiAJLUROREVCVUcgLURPVkVSUklERV9TVFJEVVAgLURSRVBMQUNFX1NZU1RFTV9BTExPQ0FUT1IKK2NvbXBhdC9uZWRtYWxsb2MvbmVkbWFsbG9jLnNwOiBTUEFSU0VfRkxBR1MgKz0gLVduby1ub24tcG9pbnRlci1udWxsCiBlbmRpZgogCiBnaXQtJSRYOiAlLm8gR0lULUxERkxBR1MgJChHSVRMSUJTKQpAQCAtMjAzNSwxMyArMjA2NiwxMyBAQAogCQkkKExJQlMpICQoQ1VSTF9MSUJDVVJMKSAkKEVYUEFUX0xJQkVYUEFUKQogCiAkKExJQl9GSUxFKTogJChMSUJfT0JKUykKLQkkKFFVSUVUX0FSKSQoUk0pICRAICYmICQoQVIpIHJjcyAkQCAkKExJQl9PQkpTKQorCSQoUVVJRVRfQVIpJChSTSkgJEAgJiYgJChBUikgcmNzICRAICReCiAKICQoWERJRkZfTElCKTogJChYRElGRl9PQkpTKQotCSQoUVVJRVRfQVIpJChSTSkgJEAgJiYgJChBUikgcmNzICRAICQoWERJRkZfT0JKUykKKwkkKFFVSUVUX0FSKSQoUk0pICRAICYmICQoQVIpIHJjcyAkQCAkXgogCiAkKFZDU1NWTl9MSUIpOiAkKFZDU1NWTl9PQkpTKQotCSQoUVVJRVRfQVIpJChSTSkgJEAgJiYgJChBUikgcmNzICRAICQoVkNTU1ZOX09CSlMpCisJJChRVUlFVF9BUikkKFJNKSAkQCAmJiAkKEFSKSByY3MgJEAgJF4KIAogZXhwb3J0IERFRkFVTFRfRURJVE9SIERFRkFVTFRfUEFHRVIKIApAQCAtMjE1OSw2ICsyMTkwLDkgQEAKIAlAZWNobyBOT19QRVJMPVwnJyQoc3Vic3QgJywnXCcnLCQoc3Vic3QgJywnXCcnLCQoTk9fUEVSTCkpKSdcJyA+PiRACiAJQGVjaG8gTk9fUFlUSE9OPVwnJyQoc3Vic3QgJywnXCcnLCQoc3Vic3QgJywnXCcnLCQoTk9fUFlUSE9OKSkpJ1wnID4+JEAKIAlAZWNobyBOT19VTklYX1NPQ0tFVFM9XCcnJChzdWJzdCAnLCdcJycsJChzdWJzdCAnLCdcJycsJChOT19VTklYX1NPQ0tFVFMpKSknXCcgPj4kQAoraWZkZWYgVEVTVF9PVVRQVVRfRElSRUNUT1JZCisJQGVjaG8gVEVTVF9PVVRQVVRfRElSRUNUT1JZPVwnJyQoc3Vic3QgJywnXCcnLCQoc3Vic3QgJywnXCcnLCQoVEVTVF9PVVRQVVRfRElSRUNUT1JZKSkpJ1wnID4+JEAKK2VuZGlmCiBpZmRlZiBHSVRfVEVTVF9PUFRTCiAJQGVjaG8gR0lUX1RFU1RfT1BUUz1cJyckKHN1YnN0ICcsJ1wnJywkKHN1YnN0ICcsJ1wnJywkKEdJVF9URVNUX09QVFMpKSknXCcgPj4kQAogZW5kaWYKQEAgLTIxOTgsNiArMjIzMiw3IEBACiB0ZXN0X2JpbmRpcl9wcm9ncmFtcyA6PSAkKHBhdHN1YnN0ICUsYmluLXdyYXBwZXJzLyUsJChCSU5ESVJfUFJPR1JBTVNfTkVFRF9YKSAkKEJJTkRJUl9QUk9HUkFNU19OT19YKSAkKFRFU1RfUFJPR1JBTVNfTkVFRF9YKSkKIAogYWxsOjogJChURVNUX1BST0dSQU1TKSAkKHRlc3RfYmluZGlyX3Byb2dyYW1zKQorYWxsOjogJChOT19JTlNUQUxMKQogCiBiaW4td3JhcHBlcnMvJTogd3JhcC1mb3ItYmluLnNoCiAJQG1rZGlyIC1wIGJpbi13cmFwcGVycwpAQCAtMjI2Miw5ICsyMjk3LDYgQEAKIAkJZXhpdCAxOyBcCiAJZmkKIAotcmVtb3ZlLWRhc2hlczoKLQkuL2ZpeHVwLWJ1aWx0aW5zICQoQlVJTFRfSU5TKSAkKFBST0dSQU1TKSAkKFNDUklQVFMpCi0KICMjIyBJbnN0YWxsYXRpb24gcnVsZXMKIAogaWZuZXEgKCQoZmlsdGVyIC8lLCQoZmlyc3R3b3JkICQodGVtcGxhdGVfZGlyKSkpLCkKQEAgLTI0NDMsMTEgKzI0NzUsMTEgQEAKIAkkKFJNKSAkKGFkZHN1ZmZpeCAqLmdjZGEsJChhZGRwcmVmaXggJChQUk9GSUxFX0RJUikvLCAkKG9iamVjdF9kaXJzKSkpCiAJJChSTSkgJChhZGRzdWZmaXggKi5nY25vLCQoYWRkcHJlZml4ICQoUFJPRklMRV9ESVIpLywgJChvYmplY3RfZGlycykpKQogCi1jbGVhbjogcHJvZmlsZS1jbGVhbgotCSQoUk0pICoubyBibG9jay1zaGExLyoubyBwcGMvKi5vIGNvbXBhdC8qLm8gY29tcGF0LyovKi5vIHhkaWZmLyoubyB2Y3Mtc3ZuLyoubyBcCitjbGVhbjogcHJvZmlsZS1jbGVhbiBjb3ZlcmFnZS1jbGVhbgorCSQoUk0pICoubyAqLnJlcyBibG9jay1zaGExLyoubyBwcGMvKi5vIGNvbXBhdC8qLm8gY29tcGF0LyovKi5vIHhkaWZmLyoubyB2Y3Mtc3ZuLyoubyBcCiAJCWJ1aWx0aW4vKi5vICQoTElCX0ZJTEUpICQoWERJRkZfTElCKSAkKFZDU1NWTl9MSUIpCiAJJChSTSkgJChBTExfUFJPR1JBTVMpICQoU0NSSVBUX0xJQikgJChCVUlMVF9JTlMpIGdpdCRYCi0JJChSTSkgJChURVNUX1BST0dSQU1TKQorCSQoUk0pICQoVEVTVF9QUk9HUkFNUykgJChOT19JTlNUQUxMKQogCSQoUk0pIC1yIGJpbi13cmFwcGVycyAkKGRlcF9kaXJzKQogCSQoUk0pIC1yIHBvL2J1aWxkLwogCSQoUk0pICouc3BlYyAqLnB5YyAqLnB5byAqLyoucHljICovKi5weW8gY29tbW9uLWNtZHMuaCAkKEVUQUdTX1RBUkdFVCkgdGFncyBjc2NvcGUqCkBAIC0yNTI0LDI5ICsyNTU2LDM0IEBACiAKICMjIyBUZXN0IHN1aXRlIGNvdmVyYWdlIHRlc3RpbmcKICMKLS5QSE9OWTogY292ZXJhZ2UgY292ZXJhZ2UtY2xlYW4gY292ZXJhZ2UtYnVpbGQgY292ZXJhZ2UtcmVwb3J0CisuUEhPTlk6IGNvdmVyYWdlIGNvdmVyYWdlLWNsZWFuIGNvdmVyYWdlLWNvbXBpbGUgY292ZXJhZ2UtdGVzdCBjb3ZlcmFnZS1yZXBvcnQKKy5QSE9OWTogY292ZXJhZ2UtY2xlYW4tcmVzdWx0cwogCiBjb3ZlcmFnZToKLQkkKE1BS0UpIGNvdmVyYWdlLWJ1aWxkCi0JJChNQUtFKSBjb3ZlcmFnZS1yZXBvcnQKKwkkKE1BS0UpIGNvdmVyYWdlLXRlc3QKKwkkKE1BS0UpIGNvdmVyYWdlLXVudGVzdGVkLWZ1bmN0aW9ucwogCiBvYmplY3RfZGlycyA6PSAkKHNvcnQgJChkaXIgJChPQkpFQ1RTKSkpCi1jb3ZlcmFnZS1jbGVhbjoKK2NvdmVyYWdlLWNsZWFuLXJlc3VsdHM6CiAJJChSTSkgJChhZGRzdWZmaXggKi5nY292LCQob2JqZWN0X2RpcnMpKQogCSQoUk0pICQoYWRkc3VmZml4ICouZ2NkYSwkKG9iamVjdF9kaXJzKSkKLQkkKFJNKSAkKGFkZHN1ZmZpeCAqLmdjbm8sJChvYmplY3RfZGlycykpCiAJJChSTSkgY292ZXJhZ2UtdW50ZXN0ZWQtZnVuY3Rpb25zCiAJJChSTSkgLXIgY292ZXJfZGIvCiAJJChSTSkgLXIgY292ZXJfZGJfaHRtbC8KIAorY292ZXJhZ2UtY2xlYW46IGNvdmVyYWdlLWNsZWFuLXJlc3VsdHMKKwkkKFJNKSAkKGFkZHN1ZmZpeCAqLmdjbm8sJChvYmplY3RfZGlycykpCisKIENPVkVSQUdFX0NGTEFHUyA9ICQoQ0ZMQUdTKSAtTzAgLWZ0ZXN0LWNvdmVyYWdlIC1mcHJvZmlsZS1hcmNzCiBDT1ZFUkFHRV9MREZMQUdTID0gJChDRkxBR1MpICAtTzAgLWxnY292CiBHQ09WRkxBR1MgPSAtLXByZXNlcnZlLXBhdGhzIC0tYnJhbmNoLXByb2JhYmlsaXRpZXMgLS1hbGwtYmxvY2tzCiAKLWNvdmVyYWdlLWJ1aWxkOiBjb3ZlcmFnZS1jbGVhbgorY292ZXJhZ2UtY29tcGlsZToKIAkkKE1BS0UpIENGTEFHUz0iJChDT1ZFUkFHRV9DRkxBR1MpIiBMREZMQUdTPSIkKENPVkVSQUdFX0xERkxBR1MpIiBhbGwKKworY292ZXJhZ2UtdGVzdDogY292ZXJhZ2UtY2xlYW4tcmVzdWx0cyBjb3ZlcmFnZS1jb21waWxlCiAJJChNQUtFKSBDRkxBR1M9IiQoQ09WRVJBR0VfQ0ZMQUdTKSIgTERGTEFHUz0iJChDT1ZFUkFHRV9MREZMQUdTKSIgXAotCQktajEgdGVzdAorCQlERUZBVUxUX1RFU1RfVEFSR0VUPXRlc3QgLWoxIHRlc3QKIAogY292ZXJhZ2UtcmVwb3J0OgogCSQoUVVJRVRfR0NPVilmb3IgZGlyIGluICQob2JqZWN0X2RpcnMpOyBkbyBcCmRpZmYgLS1naXQgYS9SZWxOb3RlcyBiL1JlbE5vdGVzCmluZGV4IDgwYjdlMzguLmQ1NzNhMjcgMTIwMDAwCi0tLSBhL1JlbE5vdGVzCisrKyBiL1JlbE5vdGVzCkBAIC0xICsxIEBACi1Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4zLnR4dApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjQuMS50eHQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9hYnNwYXRoLmMgYi9hYnNwYXRoLmMKaW5kZXggNDBjZGM0Ni4uNjRhZGJlMiAxMDA2NDQKLS0tIGEvYWJzcGF0aC5jCisrKyBiL2Fic3BhdGguYwpAQCAtMjE2LDcgKzIxNiw3IEBACiBjb25zdCBjaGFyICpwcmVmaXhfZmlsZW5hbWUoY29uc3QgY2hhciAqcGZ4LCBpbnQgcGZ4X2xlbiwgY29uc3QgY2hhciAqYXJnKQogewogCXN0YXRpYyBjaGFyIHBhdGhbUEFUSF9NQVhdOwotI2lmbmRlZiBXSU4zMgorI2lmbmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIAlpZiAoIXBmeF9sZW4gfHwgaXNfYWJzb2x1dGVfcGF0aChhcmcpKQogCQlyZXR1cm4gYXJnOwogCW1lbWNweShwYXRoLCBwZngsIHBmeF9sZW4pOwpkaWZmIC0tZ2l0IGEvYWR2aWNlLmMgYi9hZHZpY2UuYwppbmRleCBhOGRlZWU2Li4zZWNhOWY1IDEwMDY0NAotLS0gYS9hZHZpY2UuYworKysgYi9hZHZpY2UuYwpAQCAtMTQsNiArMTQsOCBAQAogaW50IGFkdmljZV9pbXBsaWNpdF9pZGVudGl0eSA9IDE7CiBpbnQgYWR2aWNlX2RldGFjaGVkX2hlYWQgPSAxOwogaW50IGFkdmljZV9zZXRfdXBzdHJlYW1fZmFpbHVyZSA9IDE7CitpbnQgYWR2aWNlX29iamVjdF9uYW1lX3dhcm5pbmcgPSAxOworaW50IGFkdmljZV9ybV9oaW50cyA9IDE7CiAKIHN0YXRpYyBzdHJ1Y3QgewogCWNvbnN0IGNoYXIgKm5hbWU7CkBAIC0zMyw2ICszNSw4IEBACiAJeyAiaW1wbGljaXRpZGVudGl0eSIsICZhZHZpY2VfaW1wbGljaXRfaWRlbnRpdHkgfSwKIAl7ICJkZXRhY2hlZGhlYWQiLCAmYWR2aWNlX2RldGFjaGVkX2hlYWQgfSwKIAl7ICJzZXR1cHN0cmVhbWZhaWx1cmUiLCAmYWR2aWNlX3NldF91cHN0cmVhbV9mYWlsdXJlIH0sCisJeyAib2JqZWN0bmFtZXdhcm5pbmciLCAmYWR2aWNlX29iamVjdF9uYW1lX3dhcm5pbmcgfSwKKwl7ICJybWhpbnRzIiwgJmFkdmljZV9ybV9oaW50cyB9LAogCiAJLyogbWFrZSB0aGlzIGFuIGFsaWFzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCiAJeyAicHVzaG5vbmZhc3Rmb3J3YXJkIiwgJmFkdmljZV9wdXNoX3VwZGF0ZV9yZWplY3RlZCB9CmRpZmYgLS1naXQgYS9hZHZpY2UuaCBiL2FkdmljZS5oCmluZGV4IDk0Y2FhMzIuLjA4ZmJjOGUgMTAwNjQ0Ci0tLSBhL2FkdmljZS5oCisrKyBiL2FkdmljZS5oCkBAIC0xNyw4ICsxNywxMSBAQAogZXh0ZXJuIGludCBhZHZpY2VfaW1wbGljaXRfaWRlbnRpdHk7CiBleHRlcm4gaW50IGFkdmljZV9kZXRhY2hlZF9oZWFkOwogZXh0ZXJuIGludCBhZHZpY2Vfc2V0X3Vwc3RyZWFtX2ZhaWx1cmU7CitleHRlcm4gaW50IGFkdmljZV9vYmplY3RfbmFtZV93YXJuaW5nOworZXh0ZXJuIGludCBhZHZpY2Vfcm1faGludHM7CiAKIGludCBnaXRfZGVmYXVsdF9hZHZpY2VfY29uZmlnKGNvbnN0IGNoYXIgKnZhciwgY29uc3QgY2hhciAqdmFsdWUpOworX19hdHRyaWJ1dGVfXygoZm9ybWF0IChwcmludGYsIDEsIDIpKSkKIHZvaWQgYWR2aXNlKGNvbnN0IGNoYXIgKmFkdmljZSwgLi4uKTsKIGludCBlcnJvcl9yZXNvbHZlX2NvbmZsaWN0KGNvbnN0IGNoYXIgKm1lKTsKIGV4dGVybiB2b2lkIE5PUkVUVVJOIGRpZV9yZXNvbHZlX2NvbmZsaWN0KGNvbnN0IGNoYXIgKm1lKTsKZGlmZiAtLWdpdCBhL2FyY2hpdmUtemlwLmMgYi9hcmNoaXZlLXppcC5jCmluZGV4IGIyYzRmZTAuLjRiZGUwMTkgMTAwNjQ0Ci0tLSBhL2FyY2hpdmUtemlwLmMKKysrIGIvYXJjaGl2ZS16aXAuYwpAQCAtMjMyLDcgKzIzMiw2IEBACiAJCXNpemUgPSAwOwogCQljb21wcmVzc2VkX3NpemUgPSAwOwogCQlidWZmZXIgPSBOVUxMOwotCQlzaXplID0gMDsKIAl9IGVsc2UgaWYgKFNfSVNSRUcobW9kZSkgfHwgU19JU0xOSyhtb2RlKSkgewogCQllbnVtIG9iamVjdF90eXBlIHR5cGUgPSBzaGExX29iamVjdF9pbmZvKHNoYTEsICZzaXplKTsKIApkaWZmIC0tZ2l0IGEvYXJndi1hcnJheS5oIGIvYXJndi1hcnJheS5oCmluZGV4IDQwMjQ4ZDQuLjg1YmE0MzggMTAwNjQ0Ci0tLSBhL2FyZ3YtYXJyYXkuaAorKysgYi9hcmd2LWFycmF5LmgKQEAgLTE1LDYgKzE1LDcgQEAKIHZvaWQgYXJndl9hcnJheV9wdXNoKHN0cnVjdCBhcmd2X2FycmF5ICosIGNvbnN0IGNoYXIgKik7CiBfX2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwyLDMpKSkKIHZvaWQgYXJndl9hcnJheV9wdXNoZihzdHJ1Y3QgYXJndl9hcnJheSAqLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CitMQVNUX0FSR19NVVNUX0JFX05VTEwKIHZvaWQgYXJndl9hcnJheV9wdXNobChzdHJ1Y3QgYXJndl9hcnJheSAqLCAuLi4pOwogdm9pZCBhcmd2X2FycmF5X3BvcChzdHJ1Y3QgYXJndl9hcnJheSAqKTsKIHZvaWQgYXJndl9hcnJheV9jbGVhcihzdHJ1Y3QgYXJndl9hcnJheSAqKTsKZGlmZiAtLWdpdCBhL2Jpc2VjdC5jIGIvYmlzZWN0LmMKaW5kZXggMzc0ZDllMi4uNzFjMTk1OCAxMDA2NDQKLS0tIGEvYmlzZWN0LmMKKysrIGIvYmlzZWN0LmMKQEAgLTE1LDcgKzE1LDcgQEAKIHN0YXRpYyBzdHJ1Y3Qgc2hhMV9hcnJheSBnb29kX3JldnM7CiBzdGF0aWMgc3RydWN0IHNoYTFfYXJyYXkgc2tpcHBlZF9yZXZzOwogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqY3VycmVudF9iYWRfc2hhMTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyICpjdXJyZW50X2JhZF9zaGExOwogCiBzdGF0aWMgY29uc3QgY2hhciAqYXJndl9jaGVja291dFtdID0geyJjaGVja291dCIsICItcSIsIE5VTEwsICItLSIsIE5VTEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmFyZ3Zfc2hvd19icmFuY2hbXSA9IHsic2hvdy1icmFuY2giLCBOVUxMLCBOVUxMfTsKQEAgLTQwNCw3ICs0MDQsOCBAQAogCQkJaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQogewogCWlmICghc3RyY21wKHJlZm5hbWUsICJiYWQiKSkgewotCQljdXJyZW50X2JhZF9zaGExID0gc2hhMTsKKwkJY3VycmVudF9iYWRfc2hhMSA9IHhtYWxsb2MoMjApOworCQloYXNoY3B5KGN1cnJlbnRfYmFkX3NoYTEsIHNoYTEpOwogCX0gZWxzZSBpZiAoIXByZWZpeGNtcChyZWZuYW1lLCAiZ29vZC0iKSkgewogCQlzaGExX2FycmF5X2FwcGVuZCgmZ29vZF9yZXZzLCBzaGExKTsKIAl9IGVsc2UgaWYgKCFwcmVmaXhjbXAocmVmbmFtZSwgInNraXAtIikpIHsKZGlmZiAtLWdpdCBhL2JyYW5jaC5jIGIvYnJhbmNoLmMKaW5kZXggOTdjNzJiZi4uYzVjNjk4NCAxMDA2NDQKLS0tIGEvYnJhbmNoLmMKKysrIGIvYnJhbmNoLmMKQEAgLTE5Nyw2ICsxOTcsMjEgQEAKIAlyZXR1cm4gMTsKIH0KIAorc3RhdGljIGludCBjaGVja190cmFja2luZ19icmFuY2goc3RydWN0IHJlbW90ZSAqcmVtb3RlLCB2b2lkICpjYl9kYXRhKQoreworCWNoYXIgKnRyYWNraW5nX2JyYW5jaCA9IGNiX2RhdGE7CisJc3RydWN0IHJlZnNwZWMgcXVlcnk7CisJbWVtc2V0KCZxdWVyeSwgMCwgc2l6ZW9mKHN0cnVjdCByZWZzcGVjKSk7CisJcXVlcnkuZHN0ID0gdHJhY2tpbmdfYnJhbmNoOworCXJldHVybiAhKHJlbW90ZV9maW5kX3RyYWNraW5nKHJlbW90ZSwgJnF1ZXJ5KSB8fAorCQkgcHJlZml4Y21wKHF1ZXJ5LnNyYywgInJlZnMvaGVhZHMvIikpOworfQorCitzdGF0aWMgaW50IHZhbGlkYXRlX3JlbW90ZV90cmFja2luZ19icmFuY2goY2hhciAqcmVmKQoreworCXJldHVybiAhZm9yX2VhY2hfcmVtb3RlKGNoZWNrX3RyYWNraW5nX2JyYW5jaCwgcmVmKTsKK30KKwogc3RhdGljIGNvbnN0IGNoYXIgdXBzdHJlYW1fbm90X2JyYW5jaFtdID0KIE5fKCJDYW5ub3Qgc2V0dXAgdHJhY2tpbmcgaW5mb3JtYXRpb247IHN0YXJ0aW5nIHBvaW50ICclcycgaXMgbm90IGEgYnJhbmNoLiIpOwogc3RhdGljIGNvbnN0IGNoYXIgdXBzdHJlYW1fbWlzc2luZ1tdID0KQEAgLTI1OSw3ICsyNzQsNyBAQAogCWNhc2UgMToKIAkJLyogVW5pcXVlIGNvbXBsZXRpb24gLS0gZ29vZCwgb25seSBpZiBpdCBpcyBhIHJlYWwgYnJhbmNoICovCiAJCWlmIChwcmVmaXhjbXAocmVhbF9yZWYsICJyZWZzL2hlYWRzLyIpICYmCi0JCSAgICBwcmVmaXhjbXAocmVhbF9yZWYsICJyZWZzL3JlbW90ZXMvIikpIHsKKwkJICAgIHZhbGlkYXRlX3JlbW90ZV90cmFja2luZ19icmFuY2gocmVhbF9yZWYpKSB7CiAJCQlpZiAoZXhwbGljaXRfdHJhY2tpbmcpCiAJCQkJZGllKF8odXBzdHJlYW1fbm90X2JyYW5jaCksIHN0YXJ0X25hbWUpOwogCQkJZWxzZQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi5oIGIvYnVpbHRpbi5oCmluZGV4IGZhZWY1NTkuLjhhZmEyZGUgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4uaAorKysgYi9idWlsdGluLmgKQEAgLTUsMTMgKzUsMTUgQEAKICNpbmNsdWRlICJzdHJidWYuaCIKICNpbmNsdWRlICJjYWNoZS5oIgogI2luY2x1ZGUgImNvbW1pdC5oIgotI2luY2x1ZGUgIm5vdGVzLmgiCiAKICNkZWZpbmUgREVGQVVMVF9NRVJHRV9MT0dfTEVOIDIwCiAKIGV4dGVybiBjb25zdCBjaGFyIGdpdF91c2FnZV9zdHJpbmdbXTsKIGV4dGVybiBjb25zdCBjaGFyIGdpdF9tb3JlX2luZm9fc3RyaW5nW107CiAKKyNkZWZpbmUgUFJVTkVfUEFDS0VEX0RSWV9SVU4gMDEKKyNkZWZpbmUgUFJVTkVfUEFDS0VEX1ZFUkJPU0UgMDIKKwogZXh0ZXJuIHZvaWQgcHJ1bmVfcGFja2VkX29iamVjdHMoaW50KTsKIAogc3RydWN0IGZtdF9tZXJnZV9tc2dfb3B0cyB7CkBAIC0yMywyMSArMjUsNiBAQAogZXh0ZXJuIGludCBmbXRfbWVyZ2VfbXNnKHN0cnVjdCBzdHJidWYgKmluLCBzdHJ1Y3Qgc3RyYnVmICpvdXQsCiAJCQkgc3RydWN0IGZtdF9tZXJnZV9tc2dfb3B0cyAqKTsKIAotc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnIHsKLQlzdHJ1Y3Qgbm90ZXNfdHJlZSAqKnRyZWVzOwotCWNvbnN0IGNoYXIgKmNtZDsKLQlpbnQgZW5hYmxlZDsKLQljb21iaW5lX25vdGVzX2ZuIGNvbWJpbmU7Ci0Jc3RydWN0IHN0cmluZ19saXN0ICpyZWZzOwotCWludCByZWZzX2Zyb21fZW52OwotCWludCBtb2RlX2Zyb21fZW52OwotfTsKLQotc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICppbml0X2NvcHlfbm90ZXNfZm9yX3Jld3JpdGUoY29uc3QgY2hhciAqY21kKTsKLWludCBjb3B5X25vdGVfZm9yX3Jld3JpdGUoc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICpjLAotCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tX29iaiwgY29uc3QgdW5zaWduZWQgY2hhciAqdG9fb2JqKTsKLXZvaWQgZmluaXNoX2NvcHlfbm90ZXNfZm9yX3Jld3JpdGUoc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICpjKTsKLQogZXh0ZXJuIGludCB0ZXh0Y29udl9vYmplY3QoY29uc3QgY2hhciAqcGF0aCwgdW5zaWduZWQgbW9kZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IHNoYTFfdmFsaWQsIGNoYXIgKipidWYsIHVuc2lnbmVkIGxvbmcgKmJ1Zl9zaXplKTsKIAogZXh0ZXJuIGludCBjbWRfYWRkKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KTsKQEAgLTUzLDYgKzQwLDcgQEAKIGV4dGVybiBpbnQgY21kX2NoZWNrb3V0X2luZGV4KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KTsKIGV4dGVybiBpbnQgY21kX2NoZWNrX2F0dHIoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwogZXh0ZXJuIGludCBjbWRfY2hlY2tfaWdub3JlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KTsKK2V4dGVybiBpbnQgY21kX2NoZWNrX21haWxtYXAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwogZXh0ZXJuIGludCBjbWRfY2hlY2tfcmVmX2Zvcm1hdChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCk7CiBleHRlcm4gaW50IGNtZF9jaGVycnkoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwogZXh0ZXJuIGludCBjbWRfY2hlcnJ5X3BpY2soaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9hZGQuYyBiL2J1aWx0aW4vYWRkLmMKaW5kZXggZjQ1ZDlkNC4uODI2NmE5YyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9hZGQuYworKysgYi9idWlsdGluL2FkZC5jCkBAIC0zNDMsNiArMzQzLDcgQEAKIAogCWFyZ2MgPSBzZXR1cF9yZXZpc2lvbnMoYXJnYywgYXJndiwgJnJldiwgTlVMTCk7CiAJcmV2LmRpZmZvcHQub3V0cHV0X2Zvcm1hdCA9IERJRkZfRk9STUFUX1BBVENIOworCXJldi5kaWZmb3B0LnVzZV9jb2xvciA9IDA7CiAJRElGRl9PUFRfU0VUKCZyZXYuZGlmZm9wdCwgSUdOT1JFX0RJUlRZX1NVQk1PRFVMRVMpOwogCW91dCA9IG9wZW4oZmlsZSwgT19DUkVBVCB8IE9fV1JPTkxZLCAwNjY2KTsKIAlpZiAob3V0IDwgMCkKZGlmZiAtLWdpdCBhL2J1aWx0aW4vYXBwbHkuYyBiL2J1aWx0aW4vYXBwbHkuYwppbmRleCAzMGVlZmMzLi41MDkxMmM5IDEwMDY0NAotLS0gYS9idWlsdGluL2FwcGx5LmMKKysrIGIvYnVpbHRpbi9hcHBseS5jCkBAIC00NzMsNyArNDczLDcgQEAKIAogCS8qCiAJICogUHJvcG9zZWQgIm5ldy1zdHlsZSIgR05VIHBhdGNoL2RpZmYgZm9ybWF0OyBzZWUKLQkgKiBodHRwOi8vbWFyYy50aGVhaW1zZ3JvdXAuY29tLz9sPWdpdCZtPTExMjkyNzMxNjQwODY5MCZ3PTIKKwkgKiBodHRwOi8vbWFyYy5pbmZvLz9sPWdpdCZtPTExMjkyNzMxNjQwODY5MCZ3PTIKIAkgKi8KIAlpZiAodW5xdW90ZV9jX3N0eWxlKCZuYW1lLCBsaW5lLCBOVUxMKSkgewogCQlzdHJidWZfcmVsZWFzZSgmbmFtZSk7CkBAIC03MjIsNyArNzIyLDcgQEAKIAogc3RhdGljIGNoYXIgKmZpbmRfbmFtZV90cmFkaXRpb25hbChjb25zdCBjaGFyICpsaW5lLCBjaGFyICpkZWYsIGludCBwX3ZhbHVlKQogewotCXNpemVfdCBsZW4gPSBzdHJsZW4obGluZSk7CisJc2l6ZV90IGxlbjsKIAlzaXplX3QgZGF0ZV9sZW47CiAKIAlpZiAoKmxpbmUgPT0gJyInKSB7CkBAIC05MDYsNyArOTA2LDcgQEAKIAkJCXBhdGNoLT5vbGRfbmFtZSA9IG5hbWU7CiAJCX0gZWxzZSB7CiAJCQlwYXRjaC0+b2xkX25hbWUgPSBuYW1lOwotCQkJcGF0Y2gtPm5ld19uYW1lID0geHN0cmR1cChuYW1lKTsKKwkJCXBhdGNoLT5uZXdfbmFtZSA9IG51bGxfc3RyZHVwKG5hbWUpOwogCQl9CiAJfQogCWlmICghbmFtZSkKQEAgLTI5OTksNyArMjk5OSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcmVhZF9maWxlX29yX2dpdGxpbmsoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0cmJ1ZiAqYnVmKQorc3RhdGljIGludCByZWFkX2ZpbGVfb3JfZ2l0bGluayhjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RyYnVmICpidWYpCiB7CiAJaWYgKCFjZSkKIAkJcmV0dXJuIDA7CkBAIC0zMTE3LDcgKzMxMTcsNyBAQAogCXJldHVybiBwcmV2aW91czsKIH0KIAotc3RhdGljIGludCB2ZXJpZnlfaW5kZXhfbWF0Y2goc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KQorc3RhdGljIGludCB2ZXJpZnlfaW5kZXhfbWF0Y2goY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KQogewogCWlmIChTX0lTR0lUTElOSyhjZS0+Y2VfbW9kZSkpIHsKIAkJaWYgKCFTX0lTRElSKHN0LT5zdF9tb2RlKSkKQEAgLTMxMzAsNyArMzEzMCw3IEBACiAjZGVmaW5lIFNVQk1PRFVMRV9QQVRDSF9XSVRIT1VUX0lOREVYIDEKIAogc3RhdGljIGludCBsb2FkX3BhdGNoX3RhcmdldChzdHJ1Y3Qgc3RyYnVmICpidWYsCi0JCQkgICAgIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCiAJCQkgICAgIHN0cnVjdCBzdGF0ICpzdCwKIAkJCSAgICAgY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICAgdW5zaWduZWQgZXhwZWN0ZWRfbW9kZSkKQEAgLTMxNjAsNyArMzE2MCw4IEBACiAgKiB3ZSByZWFkIGZyb20gdGhlIHJlc3VsdCBvZiBhIHByZXZpb3VzIGRpZmYuCiAgKi8KIHN0YXRpYyBpbnQgbG9hZF9wcmVpbWFnZShzdHJ1Y3QgaW1hZ2UgKmltYWdlLAotCQkJIHN0cnVjdCBwYXRjaCAqcGF0Y2gsIHN0cnVjdCBzdGF0ICpzdCwgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKKwkJCSBzdHJ1Y3QgcGF0Y2ggKnBhdGNoLCBzdHJ1Y3Qgc3RhdCAqc3QsCisJCQkgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOwogCXNpemVfdCBsZW47CkBAIC0zMjczLDcgKzMyNzQsNyBAQAogfQogCiBzdGF0aWMgaW50IHRyeV90aHJlZXdheShzdHJ1Y3QgaW1hZ2UgKmltYWdlLCBzdHJ1Y3QgcGF0Y2ggKnBhdGNoLAotCQkJc3RydWN0IHN0YXQgKnN0LCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQorCQkJc3RydWN0IHN0YXQgKnN0LCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQogewogCXVuc2lnbmVkIGNoYXIgcHJlX3NoYTFbMjBdLCBwb3N0X3NoYTFbMjBdLCBvdXJfc2hhMVsyMF07CiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKQEAgLTMzNDMsNyArMzM0NCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYXBwbHlfZGF0YShzdHJ1Y3QgcGF0Y2ggKnBhdGNoLCBzdHJ1Y3Qgc3RhdCAqc3QsIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UpCitzdGF0aWMgaW50IGFwcGx5X2RhdGEoc3RydWN0IHBhdGNoICpwYXRjaCwgc3RydWN0IHN0YXQgKnN0LCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQogewogCXN0cnVjdCBpbWFnZSBpbWFnZTsKIApAQCAtMzUyNSw3ICszNTI2LDcgQEAKIAkJb2tfaWZfZXhpc3RzID0gMDsKIAogCWlmIChuZXdfbmFtZSAmJgotCSAgICAoKDAgPCBwYXRjaC0+aXNfbmV3KSB8ICgwIDwgcGF0Y2gtPmlzX3JlbmFtZSkgfCBwYXRjaC0+aXNfY29weSkpIHsKKwkgICAgKCgwIDwgcGF0Y2gtPmlzX25ldykgfHwgcGF0Y2gtPmlzX3JlbmFtZSB8fCBwYXRjaC0+aXNfY29weSkpIHsKIAkJaW50IGVyciA9IGNoZWNrX3RvX2NyZWF0ZShuZXdfbmFtZSwgb2tfaWZfZXhpc3RzKTsKIAogCQlpZiAoZXJyICYmIHRocmVld2F5KSB7CkBAIC0zODQ3LDcgKzM4NDgsNyBAQAogCQljb25zdCBjaGFyICpzID0gYnVmOwogCiAJCWlmIChnZXRfc2hhMV9oZXgocyArIHN0cmxlbigiU3VicHJvamVjdCBjb21taXQgIiksIGNlLT5zaGExKSkKLQkJCWRpZShfKCJjb3JydXB0IHBhdGNoIGZvciBzdWJwcm9qZWN0ICVzIiksIHBhdGgpOworCQkJZGllKF8oImNvcnJ1cHQgcGF0Y2ggZm9yIHN1Ym1vZHVsZSAlcyIpLCBwYXRoKTsKIAl9IGVsc2UgewogCQlpZiAoIWNhY2hlZCkgewogCQkJaWYgKGxzdGF0KHBhdGgsICZzdCkgPCAwKQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9ibGFtZS5jIGIvYnVpbHRpbi9ibGFtZS5jCmluZGV4IDU3YTQ4N2UuLjA3OWRjZDMgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vYmxhbWUuYworKysgYi9idWlsdGluL2JsYW1lLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCiAjaW5jbHVkZSAidXRmOC5oIgogI2luY2x1ZGUgInVzZXJkaWZmLmgiCisjaW5jbHVkZSAibGluZS1yYW5nZS5oIgogCiBzdGF0aWMgY2hhciBibGFtZV91c2FnZVtdID0gTl8oImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiKTsKIApAQCAtNTY2LDExICs1NjcsMTYgQEAKIAlkc3QtPnNjb3JlID0gMDsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKm50aF9saW5lKHN0cnVjdCBzY29yZWJvYXJkICpzYiwgaW50IGxubykKK3N0YXRpYyBjb25zdCBjaGFyICpudGhfbGluZShzdHJ1Y3Qgc2NvcmVib2FyZCAqc2IsIGxvbmcgbG5vKQogewogCXJldHVybiBzYi0+ZmluYWxfYnVmICsgc2ItPmxpbmVub1tsbm9dOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqbnRoX2xpbmVfY2Iodm9pZCAqZGF0YSwgbG9uZyBsbm8pCit7CisJcmV0dXJuIG50aF9saW5lKChzdHJ1Y3Qgc2NvcmVib2FyZCAqKWRhdGEsIGxubyk7Cit9CisKIC8qCiAgKiBJdCBpcyBrbm93biB0aGF0IGxpbmVzIGJldHdlZW4gdGxubyB0byBzYW1lIGNhbWUgZnJvbSBwYXJlbnQsIGFuZCBlCiAgKiBoYXMgYW4gb3ZlcmxhcCB3aXRoIHRoYXQgcmFuZ2UuICBpdCBhbHNvIGlzIGtub3duIHRoYXQgcGFyZW50J3MKQEAgLTE5MzIsODMgKzE5MzgsNiBAQAogfQogCiAvKgotICogUGFyc2luZyBvZiAoY29tbWEgc2VwYXJhdGVkKSBvbmUgaXRlbSBpbiB0aGUgLUwgb3B0aW9uCi0gKi8KLXN0YXRpYyBjb25zdCBjaGFyICpwYXJzZV9sb2MoY29uc3QgY2hhciAqc3BlYywKLQkJCSAgICAgc3RydWN0IHNjb3JlYm9hcmQgKnNiLCBsb25nIGxubywKLQkJCSAgICAgbG9uZyBiZWdpbiwgbG9uZyAqcmV0KQotewotCWNoYXIgKnRlcm07Ci0JY29uc3QgY2hhciAqbGluZTsKLQlsb25nIG51bTsKLQlpbnQgcmVnX2Vycm9yOwotCXJlZ2V4X3QgcmVnZXhwOwotCXJlZ21hdGNoX3QgbWF0Y2hbMV07Ci0KLQkvKiBBbGxvdyAiLUwgPHNvbWV0aGluZz4sKzIwIiB0byBtZWFuIHN0YXJ0aW5nIGF0IDxzb21ldGhpbmc+Ci0JICogZm9yIDIwIGxpbmVzLCBvciAiLUwgPHNvbWV0aGluZz4sLTUiIGZvciA1IGxpbmVzIGVuZGluZyBhdAotCSAqIDxzb21ldGhpbmc+LgotCSAqLwotCWlmICgxIDwgYmVnaW4gJiYgKHNwZWNbMF0gPT0gJysnIHx8IHNwZWNbMF0gPT0gJy0nKSkgewotCQludW0gPSBzdHJ0b2woc3BlYyArIDEsICZ0ZXJtLCAxMCk7Ci0JCWlmICh0ZXJtICE9IHNwZWMgKyAxKSB7Ci0JCQlpZiAoc3BlY1swXSA9PSAnLScpCi0JCQkJbnVtID0gMCAtIG51bTsKLQkJCWlmICgwIDwgbnVtKQotCQkJCSpyZXQgPSBiZWdpbiArIG51bSAtIDI7Ci0JCQllbHNlIGlmICghbnVtKQotCQkJCSpyZXQgPSBiZWdpbjsKLQkJCWVsc2UKLQkJCQkqcmV0ID0gYmVnaW4gKyBudW07Ci0JCQlyZXR1cm4gdGVybTsKLQkJfQotCQlyZXR1cm4gc3BlYzsKLQl9Ci0JbnVtID0gc3RydG9sKHNwZWMsICZ0ZXJtLCAxMCk7Ci0JaWYgKHRlcm0gIT0gc3BlYykgewotCQkqcmV0ID0gbnVtOwotCQlyZXR1cm4gdGVybTsKLQl9Ci0JaWYgKHNwZWNbMF0gIT0gJy8nKQotCQlyZXR1cm4gc3BlYzsKLQotCS8qIGl0IGNvdWxkIGJlIGEgcmVnZXhwIG9mIGZvcm0gLy4uLi8gKi8KLQlmb3IgKHRlcm0gPSAoY2hhciAqKSBzcGVjICsgMTsgKnRlcm0gJiYgKnRlcm0gIT0gJy8nOyB0ZXJtKyspIHsKLQkJaWYgKCp0ZXJtID09ICdcXCcpCi0JCQl0ZXJtKys7Ci0JfQotCWlmICgqdGVybSAhPSAnLycpCi0JCXJldHVybiBzcGVjOwotCi0JLyogdHJ5IFtzcGVjKzEgLi4gdGVybS0xXSBhcyByZWdleHAgKi8KLQkqdGVybSA9IDA7Ci0JYmVnaW4tLTsgLyogaW5wdXQgaXMgaW4gaHVtYW4gdGVybXMgKi8KLQlsaW5lID0gbnRoX2xpbmUoc2IsIGJlZ2luKTsKLQotCWlmICghKHJlZ19lcnJvciA9IHJlZ2NvbXAoJnJlZ2V4cCwgc3BlYyArIDEsIFJFR19ORVdMSU5FKSkgJiYKLQkgICAgIShyZWdfZXJyb3IgPSByZWdleGVjKCZyZWdleHAsIGxpbmUsIDEsIG1hdGNoLCAwKSkpIHsKLQkJY29uc3QgY2hhciAqY3AgPSBsaW5lICsgbWF0Y2hbMF0ucm1fc287Ci0JCWNvbnN0IGNoYXIgKm5saW5lOwotCi0JCXdoaWxlIChiZWdpbisrIDwgbG5vKSB7Ci0JCQlubGluZSA9IG50aF9saW5lKHNiLCBiZWdpbik7Ci0JCQlpZiAobGluZSA8PSBjcCAmJiBjcCA8IG5saW5lKQotCQkJCWJyZWFrOwotCQkJbGluZSA9IG5saW5lOwotCQl9Ci0JCSpyZXQgPSBiZWdpbjsKLQkJcmVnZnJlZSgmcmVnZXhwKTsKLQkJKnRlcm0rKyA9ICcvJzsKLQkJcmV0dXJuIHRlcm07Ci0JfQotCWVsc2UgewotCQljaGFyIGVycmJ1ZlsxMDI0XTsKLQkJcmVnZXJyb3IocmVnX2Vycm9yLCAmcmVnZXhwLCBlcnJidWYsIDEwMjQpOwotCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnOiAlcyIsIHNwZWMgKyAxLCBlcnJidWYpOwotCX0KLX0KLQotLyoKICAqIFBhcnNpbmcgb2YgLUwgb3B0aW9uCiAgKi8KIHN0YXRpYyB2b2lkIHByZXBhcmVfYmxhbWVfcmFuZ2Uoc3RydWN0IHNjb3JlYm9hcmQgKnNiLApAQCAtMjAxNiwxNSArMTk0NSw3IEBACiAJCQkJbG9uZyBsbm8sCiAJCQkJbG9uZyAqYm90dG9tLCBsb25nICp0b3ApCiB7Ci0JY29uc3QgY2hhciAqdGVybTsKLQotCXRlcm0gPSBwYXJzZV9sb2MoYm90dG9tdG9wLCBzYiwgbG5vLCAxLCBib3R0b20pOwotCWlmICgqdGVybSA9PSAnLCcpIHsKLQkJdGVybSA9IHBhcnNlX2xvYyh0ZXJtICsgMSwgc2IsIGxubywgKmJvdHRvbSArIDEsIHRvcCk7Ci0JCWlmICgqdGVybSkKLQkJCXVzYWdlKGJsYW1lX3VzYWdlKTsKLQl9Ci0JaWYgKCp0ZXJtKQorCWlmIChwYXJzZV9yYW5nZV9hcmcoYm90dG9tdG9wLCBudGhfbGluZV9jYiwgc2IsIGxubywgYm90dG9tLCB0b3AsIHNiLT5wYXRoKSkKIAkJdXNhZ2UoYmxhbWVfdXNhZ2UpOwogfQogCkBAIC0yNTc0LDEwICsyNDk1LDYgQEAKIAlib3R0b20gPSB0b3AgPSAwOwogCWlmIChib3R0b210b3ApCiAJCXByZXBhcmVfYmxhbWVfcmFuZ2UoJnNiLCBib3R0b210b3AsIGxubywgJmJvdHRvbSwgJnRvcCk7Ci0JaWYgKGJvdHRvbSAmJiB0b3AgJiYgdG9wIDwgYm90dG9tKSB7Ci0JCWxvbmcgdG1wOwotCQl0bXAgPSB0b3A7IHRvcCA9IGJvdHRvbTsgYm90dG9tID0gdG1wOwotCX0KIAlpZiAoYm90dG9tIDwgMSkKIAkJYm90dG9tID0gMTsKIAlpZiAodG9wIDwgMSkKZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2F0LWZpbGUuYyBiL2J1aWx0aW4vY2F0LWZpbGUuYwppbmRleCAwNDVjZWU3Li40MjUzNDYwIDEwMDY0NAotLS0gYS9idWlsdGluL2NhdC1maWxlLmMKKysrIGIvYnVpbHRpbi9jYXQtZmlsZS5jCkBAIC0xMyw5ICsxMyw2IEBACiAjaW5jbHVkZSAidXNlcmRpZmYuaCIKICNpbmNsdWRlICJzdHJlYW1pbmcuaCIKIAotI2RlZmluZSBCQVRDSCAxCi0jZGVmaW5lIEJBVENIX0NIRUNLIDIKLQogc3RhdGljIGludCBjYXRfb25lX2ZpbGUoaW50IG9wdCwgY29uc3QgY2hhciAqZXhwX3R5cGUsIGNvbnN0IGNoYXIgKm9ial9uYW1lKQogewogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CkBAIC0xMTcsNTQgKzExNCwxNjYgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBiYXRjaF9vbmVfb2JqZWN0KGNvbnN0IGNoYXIgKm9ial9uYW1lLCBpbnQgcHJpbnRfY29udGVudHMpCi17CitzdHJ1Y3QgZXhwYW5kX2RhdGEgewogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07Ci0JZW51bSBvYmplY3RfdHlwZSB0eXBlID0gMDsKKwllbnVtIG9iamVjdF90eXBlIHR5cGU7CiAJdW5zaWduZWQgbG9uZyBzaXplOwotCXZvaWQgKmNvbnRlbnRzID0gTlVMTDsKKwl1bnNpZ25lZCBsb25nIGRpc2tfc2l6ZTsKKworCS8qCisJICogSWYgbWFya19xdWVyeSBpcyB0cnVlLCB3ZSBkbyBub3QgZXhwYW5kIGFueXRoaW5nLCBidXQgcmF0aGVyCisJICoganVzdCBtYXJrIHRoZSBvYmplY3RfaW5mbyB3aXRoIGl0ZW1zIHdlIHdpc2ggdG8gcXVlcnkuCisJICovCisJaW50IG1hcmtfcXVlcnk7CisKKwkvKgorCSAqIEFmdGVyIGEgbWFya19xdWVyeSBydW4sIHRoaXMgb2JqZWN0X2luZm8gaXMgc2V0IHVwIHRvIGJlCisJICogcGFzc2VkIHRvIHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQuIEl0IHdpbGwgcG9pbnQgdG8gdGhlIGRhdGEKKwkgKiBlbGVtZW50cyBhYm92ZSwgc28geW91IGNhbiByZXRyaWV2ZSB0aGUgcmVzcG9uc2UgZnJvbSB0aGVyZS4KKwkgKi8KKwlzdHJ1Y3Qgb2JqZWN0X2luZm8gaW5mbzsKK307CisKK3N0YXRpYyBpbnQgaXNfYXRvbShjb25zdCBjaGFyICphdG9tLCBjb25zdCBjaGFyICpzLCBpbnQgc2xlbikKK3sKKwlpbnQgYWxlbiA9IHN0cmxlbihhdG9tKTsKKwlyZXR1cm4gYWxlbiA9PSBzbGVuICYmICFtZW1jbXAoYXRvbSwgcywgYWxlbik7Cit9CisKK3N0YXRpYyB2b2lkIGV4cGFuZF9hdG9tKHN0cnVjdCBzdHJidWYgKnNiLCBjb25zdCBjaGFyICphdG9tLCBpbnQgbGVuLAorCQkJdm9pZCAqdmRhdGEpCit7CisJc3RydWN0IGV4cGFuZF9kYXRhICpkYXRhID0gdmRhdGE7CisKKwlpZiAoaXNfYXRvbSgib2JqZWN0bmFtZSIsIGF0b20sIGxlbikpIHsKKwkJaWYgKCFkYXRhLT5tYXJrX3F1ZXJ5KQorCQkJc3RyYnVmX2FkZHN0cihzYiwgc2hhMV90b19oZXgoZGF0YS0+c2hhMSkpOworCX0gZWxzZSBpZiAoaXNfYXRvbSgib2JqZWN0dHlwZSIsIGF0b20sIGxlbikpIHsKKwkJaWYgKGRhdGEtPm1hcmtfcXVlcnkpCisJCQlkYXRhLT5pbmZvLnR5cGVwID0gJmRhdGEtPnR5cGU7CisJCWVsc2UKKwkJCXN0cmJ1Zl9hZGRzdHIoc2IsIHR5cGVuYW1lKGRhdGEtPnR5cGUpKTsKKwl9IGVsc2UgaWYgKGlzX2F0b20oIm9iamVjdHNpemUiLCBhdG9tLCBsZW4pKSB7CisJCWlmIChkYXRhLT5tYXJrX3F1ZXJ5KQorCQkJZGF0YS0+aW5mby5zaXplcCA9ICZkYXRhLT5zaXplOworCQllbHNlCisJCQlzdHJidWZfYWRkZihzYiwgIiVsdSIsIGRhdGEtPnNpemUpOworCX0gZWxzZSBpZiAoaXNfYXRvbSgib2JqZWN0c2l6ZTpkaXNrIiwgYXRvbSwgbGVuKSkgeworCQlpZiAoZGF0YS0+bWFya19xdWVyeSkKKwkJCWRhdGEtPmluZm8uZGlza19zaXplcCA9ICZkYXRhLT5kaXNrX3NpemU7CisJCWVsc2UKKwkJCXN0cmJ1Zl9hZGRmKHNiLCAiJWx1IiwgZGF0YS0+ZGlza19zaXplKTsKKwl9IGVsc2UKKwkJZGllKCJ1bmtub3duIGZvcm1hdCBlbGVtZW50OiAlLipzIiwgbGVuLCBhdG9tKTsKK30KKworc3RhdGljIHNpemVfdCBleHBhbmRfZm9ybWF0KHN0cnVjdCBzdHJidWYgKnNiLCBjb25zdCBjaGFyICpzdGFydCwgdm9pZCAqZGF0YSkKK3sKKwljb25zdCBjaGFyICplbmQ7CisKKwlpZiAoKnN0YXJ0ICE9ICcoJykKKwkJcmV0dXJuIDA7CisJZW5kID0gc3RyY2hyKHN0YXJ0ICsgMSwgJyknKTsKKwlpZiAoIWVuZCkKKwkJZGllKCJmb3JtYXQgZWxlbWVudCAnJXMnIGRvZXMgbm90IGVuZCBpbiAnKSciLCBzdGFydCk7CisKKwlleHBhbmRfYXRvbShzYiwgc3RhcnQgKyAxLCBlbmQgLSBzdGFydCAtIDEsIGRhdGEpOworCisJcmV0dXJuIGVuZCAtIHN0YXJ0ICsgMTsKK30KKworc3RhdGljIHZvaWQgcHJpbnRfb2JqZWN0X29yX2RpZShpbnQgZmQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsCisJCQkJZW51bSBvYmplY3RfdHlwZSB0eXBlLCB1bnNpZ25lZCBsb25nIHNpemUpCit7CisJaWYgKHR5cGUgPT0gT0JKX0JMT0IpIHsKKwkJaWYgKHN0cmVhbV9ibG9iX3RvX2ZkKGZkLCBzaGExLCBOVUxMLCAwKSA8IDApCisJCQlkaWUoInVuYWJsZSB0byBzdHJlYW0gJXMgdG8gc3Rkb3V0Iiwgc2hhMV90b19oZXgoc2hhMSkpOworCX0KKwllbHNlIHsKKwkJZW51bSBvYmplY3RfdHlwZSBydHlwZTsKKwkJdW5zaWduZWQgbG9uZyByc2l6ZTsKKwkJdm9pZCAqY29udGVudHM7CisKKwkJY29udGVudHMgPSByZWFkX3NoYTFfZmlsZShzaGExLCAmcnR5cGUsICZyc2l6ZSk7CisJCWlmICghY29udGVudHMpCisJCQlkaWUoIm9iamVjdCAlcyBkaXNhcHBlYXJlZCIsIHNoYTFfdG9faGV4KHNoYTEpKTsKKwkJaWYgKHJ0eXBlICE9IHR5cGUpCisJCQlkaWUoIm9iamVjdCAlcyBjaGFuZ2VkIHR5cGUhPyIsIHNoYTFfdG9faGV4KHNoYTEpKTsKKwkJaWYgKHJzaXplICE9IHNpemUpCisJCQlkaWUoIm9iamVjdCAlcyBjaGFuZ2Ugc2l6ZSE/Iiwgc2hhMV90b19oZXgoc2hhMSkpOworCisJCXdyaXRlX29yX2RpZShmZCwgY29udGVudHMsIHNpemUpOworCQlmcmVlKGNvbnRlbnRzKTsKKwl9Cit9CisKK3N0cnVjdCBiYXRjaF9vcHRpb25zIHsKKwlpbnQgZW5hYmxlZDsKKwlpbnQgcHJpbnRfY29udGVudHM7CisJY29uc3QgY2hhciAqZm9ybWF0OworfTsKKworc3RhdGljIGludCBiYXRjaF9vbmVfb2JqZWN0KGNvbnN0IGNoYXIgKm9ial9uYW1lLCBzdHJ1Y3QgYmF0Y2hfb3B0aW9ucyAqb3B0LAorCQkJICAgIHN0cnVjdCBleHBhbmRfZGF0YSAqZGF0YSkKK3sKKwlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOwogCiAJaWYgKCFvYmpfbmFtZSkKIAkgICByZXR1cm4gMTsKIAotCWlmIChnZXRfc2hhMShvYmpfbmFtZSwgc2hhMSkpIHsKKwlpZiAoZ2V0X3NoYTEob2JqX25hbWUsIGRhdGEtPnNoYTEpKSB7CiAJCXByaW50ZigiJXMgbWlzc2luZ1xuIiwgb2JqX25hbWUpOwogCQlmZmx1c2goc3Rkb3V0KTsKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKHByaW50X2NvbnRlbnRzID09IEJBVENIKQotCQljb250ZW50cyA9IHJlYWRfc2hhMV9maWxlKHNoYTEsICZ0eXBlLCAmc2l6ZSk7Ci0JZWxzZQotCQl0eXBlID0gc2hhMV9vYmplY3RfaW5mbyhzaGExLCAmc2l6ZSk7Ci0KLQlpZiAodHlwZSA8PSAwKSB7CisJaWYgKHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoZGF0YS0+c2hhMSwgJmRhdGEtPmluZm8pIDwgMCkgewogCQlwcmludGYoIiVzIG1pc3NpbmdcbiIsIG9ial9uYW1lKTsKIAkJZmZsdXNoKHN0ZG91dCk7Ci0JCWlmIChwcmludF9jb250ZW50cyA9PSBCQVRDSCkKLQkJCWZyZWUoY29udGVudHMpOwogCQlyZXR1cm4gMDsKIAl9CiAKLQlwcmludGYoIiVzICVzICVsdVxuIiwgc2hhMV90b19oZXgoc2hhMSksIHR5cGVuYW1lKHR5cGUpLCBzaXplKTsKLQlmZmx1c2goc3Rkb3V0KTsKKwlzdHJidWZfZXhwYW5kKCZidWYsIG9wdC0+Zm9ybWF0LCBleHBhbmRfZm9ybWF0LCBkYXRhKTsKKwlzdHJidWZfYWRkY2goJmJ1ZiwgJ1xuJyk7CisJd3JpdGVfb3JfZGllKDEsIGJ1Zi5idWYsIGJ1Zi5sZW4pOworCXN0cmJ1Zl9yZWxlYXNlKCZidWYpOwogCi0JaWYgKHByaW50X2NvbnRlbnRzID09IEJBVENIKSB7Ci0JCXdyaXRlX29yX2RpZSgxLCBjb250ZW50cywgc2l6ZSk7Ci0JCXByaW50ZigiXG4iKTsKLQkJZmZsdXNoKHN0ZG91dCk7Ci0JCWZyZWUoY29udGVudHMpOworCWlmIChvcHQtPnByaW50X2NvbnRlbnRzKSB7CisJCXByaW50X29iamVjdF9vcl9kaWUoMSwgZGF0YS0+c2hhMSwgZGF0YS0+dHlwZSwgZGF0YS0+c2l6ZSk7CisJCXdyaXRlX29yX2RpZSgxLCAiXG4iLCAxKTsKIAl9Ci0KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBiYXRjaF9vYmplY3RzKGludCBwcmludF9jb250ZW50cykKK3N0YXRpYyBpbnQgYmF0Y2hfb2JqZWN0cyhzdHJ1Y3QgYmF0Y2hfb3B0aW9ucyAqb3B0KQogewogCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IGV4cGFuZF9kYXRhIGRhdGE7CisKKwlpZiAoIW9wdC0+Zm9ybWF0KQorCQlvcHQtPmZvcm1hdCA9ICIlKG9iamVjdG5hbWUpICUob2JqZWN0dHlwZSkgJShvYmplY3RzaXplKSI7CisKKwkvKgorCSAqIEV4cGFuZCBvbmNlIHdpdGggb3VyIHNwZWNpYWwgbWFya19xdWVyeSBmbGFnLCB3aGljaCB3aWxsIHByaW1lIHRoZQorCSAqIG9iamVjdF9pbmZvIHRvIGJlIGhhbmRlZCB0byBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkIGZvciBlYWNoCisJICogb2JqZWN0LgorCSAqLworCW1lbXNldCgmZGF0YSwgMCwgc2l6ZW9mKGRhdGEpKTsKKwlkYXRhLm1hcmtfcXVlcnkgPSAxOworCXN0cmJ1Zl9leHBhbmQoJmJ1Ziwgb3B0LT5mb3JtYXQsIGV4cGFuZF9mb3JtYXQsICZkYXRhKTsKKwlkYXRhLm1hcmtfcXVlcnkgPSAwOworCisJLyoKKwkgKiBXZSBhcmUgZ29pbmcgdG8gY2FsbCBnZXRfc2hhMSBvbiBhIHBvdGVudGlhbGx5IHZlcnkgbGFyZ2UgbnVtYmVyIG9mCisJICogb2JqZWN0cy4gSW4gbW9zdCBsYXJnZSBjYXNlcywgdGhlc2Ugd2lsbCBiZSBhY3R1YWwgb2JqZWN0IHNoYTFzLiBUaGUKKwkgKiBjb3N0IHRvIGRvdWJsZS1jaGVjayB0aGF0IGVhY2ggb25lIGlzIG5vdCBhbHNvIGEgcmVmIChqdXN0IHNvIHdlIGNhbgorCSAqIHdhcm4pIGVuZHMgdXAgZHdhcmZpbmcgdGhlIGFjdHVhbCBjb3N0IG9mIHRoZSBvYmplY3QgbG9va3VwcworCSAqIHRoZW1zZWx2ZXMuIFdlIGNhbiB3b3JrIGFyb3VuZCBpdCBieSBqdXN0IHR1cm5pbmcgb2ZmIHRoZSB3YXJuaW5nLgorCSAqLworCXdhcm5fb25fb2JqZWN0X3JlZm5hbWVfYW1iaWd1aXR5ID0gMDsKIAogCXdoaWxlIChzdHJidWZfZ2V0bGluZSgmYnVmLCBzdGRpbiwgJ1xuJykgIT0gRU9GKSB7Ci0JCWludCBlcnJvciA9IGJhdGNoX29uZV9vYmplY3QoYnVmLmJ1ZiwgcHJpbnRfY29udGVudHMpOworCQlpbnQgZXJyb3IgPSBiYXRjaF9vbmVfb2JqZWN0KGJ1Zi5idWYsIG9wdCwgJmRhdGEpOwogCQlpZiAoZXJyb3IpCiAJCQlyZXR1cm4gZXJyb3I7CiAJfQpAQCAtMTg2LDEwICsyOTUsMjkgQEAKIAlyZXR1cm4gZ2l0X2RlZmF1bHRfY29uZmlnKHZhciwgdmFsdWUsIGNiKTsKIH0KIAorc3RhdGljIGludCBiYXRjaF9vcHRpb25fY2FsbGJhY2soY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LAorCQkJCSBjb25zdCBjaGFyICphcmcsCisJCQkJIGludCB1bnNldCkKK3sKKwlzdHJ1Y3QgYmF0Y2hfb3B0aW9ucyAqYm8gPSBvcHQtPnZhbHVlOworCisJaWYgKHVuc2V0KSB7CisJCW1lbXNldChibywgMCwgc2l6ZW9mKCpibykpOworCQlyZXR1cm4gMDsKKwl9CisKKwliby0+ZW5hYmxlZCA9IDE7CisJYm8tPnByaW50X2NvbnRlbnRzID0gIXN0cmNtcChvcHQtPmxvbmdfbmFtZSwgImJhdGNoIik7CisJYm8tPmZvcm1hdCA9IGFyZzsKKworCXJldHVybiAwOworfQorCiBpbnQgY21kX2NhdF9maWxlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQogewotCWludCBvcHQgPSAwLCBiYXRjaCA9IDA7CisJaW50IG9wdCA9IDA7CiAJY29uc3QgY2hhciAqZXhwX3R5cGUgPSBOVUxMLCAqb2JqX25hbWUgPSBOVUxMOworCXN0cnVjdCBiYXRjaF9vcHRpb25zIGJhdGNoID0gezB9OwogCiAJY29uc3Qgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CiAJCU9QVF9HUk9VUChOXygiPHR5cGU+IGNhbiBiZSBvbmUgb2Y6IGJsb2IsIHRyZWUsIGNvbW1pdCwgdGFnIikpLApAQCAtMjAwLDEyICszMjgsMTIgQEAKIAkJT1BUX1NFVF9JTlQoJ3AnLCBOVUxMLCAmb3B0LCBOXygicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiKSwgJ3AnKSwKIAkJT1BUX1NFVF9JTlQoMCwgInRleHRjb252IiwgJm9wdCwKIAkJCSAgICBOXygiZm9yIGJsb2Igb2JqZWN0cywgcnVuIHRleHRjb252IG9uIG9iamVjdCdzIGNvbnRlbnQiKSwgJ2MnKSwKLQkJT1BUX1NFVF9JTlQoMCwgImJhdGNoIiwgJmJhdGNoLAotCQkJICAgIE5fKCJzaG93IGluZm8gYW5kIGNvbnRlbnQgb2Ygb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiKSwKLQkJCSAgICBCQVRDSCksCi0JCU9QVF9TRVRfSU5UKDAsICJiYXRjaC1jaGVjayIsICZiYXRjaCwKLQkJCSAgICBOXygic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IiksCi0JCQkgICAgQkFUQ0hfQ0hFQ0spLAorCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImJhdGNoIiwgJmJhdGNoLCAiZm9ybWF0IiwKKwkJCU5fKCJzaG93IGluZm8gYW5kIGNvbnRlbnQgb2Ygb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiKSwKKwkJCVBBUlNFX09QVF9PUFRBUkcsIGJhdGNoX29wdGlvbl9jYWxsYmFjayB9LAorCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImJhdGNoLWNoZWNrIiwgJmJhdGNoLCAiZm9ybWF0IiwKKwkJCU5fKCJzaG93IGluZm8gYWJvdXQgb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiKSwKKwkJCVBBUlNFX09QVF9PUFRBUkcsIGJhdGNoX29wdGlvbl9jYWxsYmFjayB9LAogCQlPUFRfRU5EKCkKIAl9OwogCkBAIC0yMjIsMTkgKzM1MCwxOSBAQAogCQllbHNlCiAJCQl1c2FnZV93aXRoX29wdGlvbnMoY2F0X2ZpbGVfdXNhZ2UsIG9wdGlvbnMpOwogCX0KLQlpZiAoIW9wdCAmJiAhYmF0Y2gpIHsKKwlpZiAoIW9wdCAmJiAhYmF0Y2guZW5hYmxlZCkgewogCQlpZiAoYXJnYyA9PSAyKSB7CiAJCQlleHBfdHlwZSA9IGFyZ3ZbMF07CiAJCQlvYmpfbmFtZSA9IGFyZ3ZbMV07CiAJCX0gZWxzZQogCQkJdXNhZ2Vfd2l0aF9vcHRpb25zKGNhdF9maWxlX3VzYWdlLCBvcHRpb25zKTsKIAl9Ci0JaWYgKGJhdGNoICYmIChvcHQgfHwgYXJnYykpIHsKKwlpZiAoYmF0Y2guZW5hYmxlZCAmJiAob3B0IHx8IGFyZ2MpKSB7CiAJCXVzYWdlX3dpdGhfb3B0aW9ucyhjYXRfZmlsZV91c2FnZSwgb3B0aW9ucyk7CiAJfQogCi0JaWYgKGJhdGNoKQotCQlyZXR1cm4gYmF0Y2hfb2JqZWN0cyhiYXRjaCk7CisJaWYgKGJhdGNoLmVuYWJsZWQpCisJCXJldHVybiBiYXRjaF9vYmplY3RzKCZiYXRjaCk7CiAKIAlyZXR1cm4gY2F0X29uZV9maWxlKG9wdCwgZXhwX3R5cGUsIG9ial9uYW1lKTsKIH0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2hlY2staWdub3JlLmMgYi9idWlsdGluL2NoZWNrLWlnbm9yZS5jCmluZGV4IDg1NGE4OGEuLjRhOGZjNzAgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY2hlY2staWdub3JlLmMKKysrIGIvYnVpbHRpbi9jaGVjay1pZ25vcmUuYwpAQCAtNSw3ICs1LDcgQEAKICNpbmNsdWRlICJwYXRoc3BlYy5oIgogI2luY2x1ZGUgInBhcnNlLW9wdGlvbnMuaCIKIAotc3RhdGljIGludCBxdWlldCwgdmVyYm9zZSwgc3RkaW5fcGF0aHM7CitzdGF0aWMgaW50IHF1aWV0LCB2ZXJib3NlLCBzdGRpbl9wYXRocywgc2hvd19ub25fbWF0Y2hpbmc7CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNoZWNrX2lnbm9yZV91c2FnZVtdID0gewogImdpdCBjaGVjay1pZ25vcmUgW29wdGlvbnNdIHBhdGhuYW1lLi4uIiwKICJnaXQgY2hlY2staWdub3JlIFtvcHRpb25zXSAtLXN0ZGluIDwgPGxpc3Qtb2YtcGF0aHM+IiwKQEAgLTIyLDIxICsyMiwyOCBAQAogCQkgICAgTl8oInJlYWQgZmlsZSBuYW1lcyBmcm9tIHN0ZGluIikpLAogCU9QVF9CT09MRUFOKCd6JywgTlVMTCwgJm51bGxfdGVybV9saW5lLAogCQkgICAgTl8oImlucHV0IHBhdGhzIGFyZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCBjaGFyYWN0ZXIiKSksCisJT1BUX0JPT0xFQU4oJ24nLCAibm9uLW1hdGNoaW5nIiwgJnNob3dfbm9uX21hdGNoaW5nLAorCQkgICAgTl8oInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIikpLAogCU9QVF9FTkQoKQogfTsKIAogc3RhdGljIHZvaWQgb3V0cHV0X2V4Y2x1ZGUoY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IGV4Y2x1ZGUgKmV4Y2x1ZGUpCiB7Ci0JY2hhciAqYmFuZyAgPSBleGNsdWRlLT5mbGFncyAmIEVYQ19GTEFHX05FR0FUSVZFICA/ICIhIiA6ICIiOwotCWNoYXIgKnNsYXNoID0gZXhjbHVkZS0+ZmxhZ3MgJiBFWENfRkxBR19NVVNUQkVESVIgPyAiLyIgOiAiIjsKKwljaGFyICpiYW5nICA9IChleGNsdWRlICYmIGV4Y2x1ZGUtPmZsYWdzICYgRVhDX0ZMQUdfTkVHQVRJVkUpICA/ICIhIiA6ICIiOworCWNoYXIgKnNsYXNoID0gKGV4Y2x1ZGUgJiYgZXhjbHVkZS0+ZmxhZ3MgJiBFWENfRkxBR19NVVNUQkVESVIpID8gIi8iIDogIiI7CiAJaWYgKCFudWxsX3Rlcm1fbGluZSkgewogCQlpZiAoIXZlcmJvc2UpIHsKIAkJCXdyaXRlX25hbWVfcXVvdGVkKHBhdGgsIHN0ZG91dCwgJ1xuJyk7CiAJCX0gZWxzZSB7Ci0JCQlxdW90ZV9jX3N0eWxlKGV4Y2x1ZGUtPmVsLT5zcmMsIE5VTEwsIHN0ZG91dCwgMCk7Ci0JCQlwcmludGYoIjolZDolcyVzJXNcdCIsCi0JCQkgICAgICAgZXhjbHVkZS0+c3JjcG9zLAotCQkJICAgICAgIGJhbmcsIGV4Y2x1ZGUtPnBhdHRlcm4sIHNsYXNoKTsKKwkJCWlmIChleGNsdWRlKSB7CisJCQkJcXVvdGVfY19zdHlsZShleGNsdWRlLT5lbC0+c3JjLCBOVUxMLCBzdGRvdXQsIDApOworCQkJCXByaW50ZigiOiVkOiVzJXMlc1x0IiwKKwkJCQkgICAgICAgZXhjbHVkZS0+c3JjcG9zLAorCQkJCSAgICAgICBiYW5nLCBleGNsdWRlLT5wYXR0ZXJuLCBzbGFzaCk7CisJCQl9CisJCQllbHNlIHsKKwkJCQlwcmludGYoIjo6XHQiKTsKKwkJCX0KIAkJCXF1b3RlX2Nfc3R5bGUocGF0aCwgTlVMTCwgc3Rkb3V0LCAwKTsKIAkJCWZwdXRjKCdcbicsIHN0ZG91dCk7CiAJCX0KQEAgLTQ0LDMwICs1MSwyNiBAQAogCQlpZiAoIXZlcmJvc2UpIHsKIAkJCXByaW50ZigiJXMlYyIsIHBhdGgsICdcMCcpOwogCQl9IGVsc2UgewotCQkJcHJpbnRmKCIlcyVjJWQlYyVzJXMlcyVjJXMlYyIsCi0JCQkgICAgICAgZXhjbHVkZS0+ZWwtPnNyYywgJ1wwJywKLQkJCSAgICAgICBleGNsdWRlLT5zcmNwb3MsICdcMCcsCi0JCQkgICAgICAgYmFuZywgZXhjbHVkZS0+cGF0dGVybiwgc2xhc2gsICdcMCcsCi0JCQkgICAgICAgcGF0aCwgJ1wwJyk7CisJCQlpZiAoZXhjbHVkZSkKKwkJCQlwcmludGYoIiVzJWMlZCVjJXMlcyVzJWMlcyVjIiwKKwkJCQkgICAgICAgZXhjbHVkZS0+ZWwtPnNyYywgJ1wwJywKKwkJCQkgICAgICAgZXhjbHVkZS0+c3JjcG9zLCAnXDAnLAorCQkJCSAgICAgICBiYW5nLCBleGNsdWRlLT5wYXR0ZXJuLCBzbGFzaCwgJ1wwJywKKwkJCQkgICAgICAgcGF0aCwgJ1wwJyk7CisJCQllbHNlCisJCQkJcHJpbnRmKCIlYyVjJWMlcyVjIiwgJ1wwJywgJ1wwJywgJ1wwJywgcGF0aCwgJ1wwJyk7CiAJCX0KIAl9CiB9CiAKLXN0YXRpYyBpbnQgY2hlY2tfaWdub3JlKGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqKnBhdGhzcGVjKQorc3RhdGljIGludCBjaGVja19pZ25vcmUoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpciwKKwkJCWNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqKnBhdGhzcGVjKQogewotCXN0cnVjdCBkaXJfc3RydWN0IGRpcjsKIAljb25zdCBjaGFyICpwYXRoLCAqZnVsbF9wYXRoOwogCWNoYXIgKnNlZW47CiAJaW50IG51bV9pZ25vcmVkID0gMCwgZHR5cGUgPSBEVF9VTktOT1dOLCBpOwogCXN0cnVjdCBleGNsdWRlICpleGNsdWRlOwogCi0JLyogcmVhZF9jYWNoZSgpIGlzIG9ubHkgbmVjZXNzYXJ5IHNvIHdlIGNhbiB3YXRjaCBvdXQgZm9yIHN1Ym1vZHVsZXMuICovCi0JaWYgKHJlYWRfY2FjaGUoKSA8IDApCi0JCWRpZShfKCJpbmRleCBmaWxlIGNvcnJ1cHQiKSk7Ci0KLQltZW1zZXQoJmRpciwgMCwgc2l6ZW9mKGRpcikpOwotCXNldHVwX3N0YW5kYXJkX2V4Y2x1ZGVzKCZkaXIpOwotCiAJaWYgKCFwYXRoc3BlYyB8fCAhKnBhdGhzcGVjKSB7CiAJCWlmICghcXVpZXQpCiAJCQlmcHJpbnRmKHN0ZGVyciwgIm5vIHBhdGhzcGVjIGdpdmVuLlxuIik7CkBAIC04NiwyOCArODksMjYgQEAKIAkJCQkJPyBzdHJsZW4ocHJlZml4KSA6IDAsIHBhdGgpOwogCQlmdWxsX3BhdGggPSBjaGVja19wYXRoX2Zvcl9naXRsaW5rKGZ1bGxfcGF0aCk7CiAJCWRpZV9pZl9wYXRoX2JleW9uZF9zeW1saW5rKGZ1bGxfcGF0aCwgcHJlZml4KTsKKwkJZXhjbHVkZSA9IE5VTEw7CiAJCWlmICghc2VlbltpXSkgewotCQkJZXhjbHVkZSA9IGxhc3RfZXhjbHVkZV9tYXRjaGluZygmZGlyLCBmdWxsX3BhdGgsICZkdHlwZSk7Ci0JCQlpZiAoZXhjbHVkZSkgewotCQkJCWlmICghcXVpZXQpCi0JCQkJCW91dHB1dF9leGNsdWRlKHBhdGgsIGV4Y2x1ZGUpOwotCQkJCW51bV9pZ25vcmVkKys7Ci0JCQl9CisJCQlleGNsdWRlID0gbGFzdF9leGNsdWRlX21hdGNoaW5nKGRpciwgZnVsbF9wYXRoLCAmZHR5cGUpOwogCQl9CisJCWlmICghcXVpZXQgJiYgKGV4Y2x1ZGUgfHwgc2hvd19ub25fbWF0Y2hpbmcpKQorCQkJb3V0cHV0X2V4Y2x1ZGUocGF0aCwgZXhjbHVkZSk7CisJCWlmIChleGNsdWRlKQorCQkJbnVtX2lnbm9yZWQrKzsKIAl9CiAJZnJlZShzZWVuKTsKLQljbGVhcl9kaXJlY3RvcnkoJmRpcik7CiAKIAlyZXR1cm4gbnVtX2lnbm9yZWQ7CiB9CiAKLXN0YXRpYyBpbnQgY2hlY2tfaWdub3JlX3N0ZGluX3BhdGhzKGNvbnN0IGNoYXIgKnByZWZpeCkKK3N0YXRpYyBpbnQgY2hlY2tfaWdub3JlX3N0ZGluX3BhdGhzKHN0cnVjdCBkaXJfc3RydWN0ICpkaXIsIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKIAlzdHJ1Y3Qgc3RyYnVmIGJ1ZiwgbmJ1ZjsKLQljaGFyICoqcGF0aHNwZWMgPSBOVUxMOwotCXNpemVfdCBuciA9IDAsIGFsbG9jID0gMDsKKwljaGFyICpwYXRoc3BlY1syXSA9IHsgTlVMTCwgTlVMTCB9OwogCWludCBsaW5lX3Rlcm1pbmF0aW9uID0gbnVsbF90ZXJtX2xpbmUgPyAwIDogJ1xuJzsKLQlpbnQgbnVtX2lnbm9yZWQ7CisJaW50IG51bV9pZ25vcmVkID0gMDsKIAogCXN0cmJ1Zl9pbml0KCZidWYsIDApOwogCXN0cmJ1Zl9pbml0KCZuYnVmLCAwKTsKQEAgLTExOCwyMyArMTE5LDE5IEBACiAJCQkJZGllKCJsaW5lIGlzIGJhZGx5IHF1b3RlZCIpOwogCQkJc3RyYnVmX3N3YXAoJmJ1ZiwgJm5idWYpOwogCQl9Ci0JCUFMTE9DX0dST1cocGF0aHNwZWMsIG5yICsgMSwgYWxsb2MpOwotCQlwYXRoc3BlY1tucl0gPSB4Y2FsbG9jKHN0cmxlbihidWYuYnVmKSArIDEsIHNpemVvZigqYnVmLmJ1ZikpOwotCQlzdHJjcHkocGF0aHNwZWNbbnIrK10sIGJ1Zi5idWYpOworCQlwYXRoc3BlY1swXSA9IGJ1Zi5idWY7CisJCW51bV9pZ25vcmVkICs9IGNoZWNrX2lnbm9yZShkaXIsIHByZWZpeCwgKGNvbnN0IGNoYXIgKiopcGF0aHNwZWMpOworCQltYXliZV9mbHVzaF9vcl9kaWUoc3Rkb3V0LCAiY2hlY2staWdub3JlIHRvIHN0ZG91dCIpOwogCX0KLQlBTExPQ19HUk9XKHBhdGhzcGVjLCBuciArIDEsIGFsbG9jKTsKLQlwYXRoc3BlY1tucl0gPSBOVUxMOwotCW51bV9pZ25vcmVkID0gY2hlY2tfaWdub3JlKHByZWZpeCwgKGNvbnN0IGNoYXIgKiopcGF0aHNwZWMpOwotCW1heWJlX2ZsdXNoX29yX2RpZShzdGRvdXQsICJhdHRyaWJ1dGUgdG8gc3Rkb3V0Iik7CiAJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CiAJc3RyYnVmX3JlbGVhc2UoJm5idWYpOwotCWZyZWUocGF0aHNwZWMpOwogCXJldHVybiBudW1faWdub3JlZDsKIH0KIAogaW50IGNtZF9jaGVja19pZ25vcmUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJaW50IG51bV9pZ25vcmVkOworCXN0cnVjdCBkaXJfc3RydWN0IGRpcjsKIAogCWdpdF9jb25maWcoZ2l0X2RlZmF1bHRfY29uZmlnLCBOVUxMKTsKIApAQCAtMTU2LDEzICsxNTMsMjQgQEAKIAkJaWYgKHZlcmJvc2UpCiAJCQlkaWUoXygiY2Fubm90IGhhdmUgYm90aCAtLXF1aWV0IGFuZCAtLXZlcmJvc2UiKSk7CiAJfQorCWlmIChzaG93X25vbl9tYXRjaGluZyAmJiAhdmVyYm9zZSkKKwkJZGllKF8oIi0tbm9uLW1hdGNoaW5nIGlzIG9ubHkgdmFsaWQgd2l0aCAtLXZlcmJvc2UiKSk7CisKKwkvKiByZWFkX2NhY2hlKCkgaXMgb25seSBuZWNlc3Nhcnkgc28gd2UgY2FuIHdhdGNoIG91dCBmb3Igc3VibW9kdWxlcy4gKi8KKwlpZiAocmVhZF9jYWNoZSgpIDwgMCkKKwkJZGllKF8oImluZGV4IGZpbGUgY29ycnVwdCIpKTsKKworCW1lbXNldCgmZGlyLCAwLCBzaXplb2YoZGlyKSk7CisJc2V0dXBfc3RhbmRhcmRfZXhjbHVkZXMoJmRpcik7CiAKIAlpZiAoc3RkaW5fcGF0aHMpIHsKLQkJbnVtX2lnbm9yZWQgPSBjaGVja19pZ25vcmVfc3RkaW5fcGF0aHMocHJlZml4KTsKKwkJbnVtX2lnbm9yZWQgPSBjaGVja19pZ25vcmVfc3RkaW5fcGF0aHMoJmRpciwgcHJlZml4KTsKIAl9IGVsc2UgewotCQludW1faWdub3JlZCA9IGNoZWNrX2lnbm9yZShwcmVmaXgsIGFyZ3YpOworCQludW1faWdub3JlZCA9IGNoZWNrX2lnbm9yZSgmZGlyLCBwcmVmaXgsIGFyZ3YpOwogCQltYXliZV9mbHVzaF9vcl9kaWUoc3Rkb3V0LCAiaWdub3JlIHRvIHN0ZG91dCIpOwogCX0KIAorCWNsZWFyX2RpcmVjdG9yeSgmZGlyKTsKKwogCXJldHVybiAhbnVtX2lnbm9yZWQ7CiB9CmRpZmYgLS1naXQgYS9idWlsdGluL2NoZWNrLW1haWxtYXAuYyBiL2J1aWx0aW4vY2hlY2stbWFpbG1hcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNGQ4MDkKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsdGluL2NoZWNrLW1haWxtYXAuYwpAQCAtMCwwICsxLDY2IEBACisjaW5jbHVkZSAiYnVpbHRpbi5oIgorI2luY2x1ZGUgIm1haWxtYXAuaCIKKyNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCisjaW5jbHVkZSAic3RyaW5nLWxpc3QuaCIKKworc3RhdGljIGludCB1c2Vfc3RkaW47CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNoZWNrX21haWxtYXBfdXNhZ2VbXSA9IHsKK05fKCJnaXQgY2hlY2stbWFpbG1hcCBbb3B0aW9uc10gPGNvbnRhY3Q+Li4uIiksCitOVUxMCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBjaGVja19tYWlsbWFwX29wdGlvbnNbXSA9IHsKKwlPUFRfQk9PTCgwLCAic3RkaW4iLCAmdXNlX3N0ZGluLCBOXygiYWxzbyByZWFkIGNvbnRhY3RzIGZyb20gc3RkaW4iKSksCisJT1BUX0VORCgpCit9OworCitzdGF0aWMgdm9pZCBjaGVja19tYWlsbWFwKHN0cnVjdCBzdHJpbmdfbGlzdCAqbWFpbG1hcCwgY29uc3QgY2hhciAqY29udGFjdCkKK3sKKwljb25zdCBjaGFyICpuYW1lLCAqbWFpbDsKKwlzaXplX3QgbmFtZWxlbiwgbWFpbGxlbjsKKwlzdHJ1Y3QgaWRlbnRfc3BsaXQgaWRlbnQ7CisKKwlpZiAoc3BsaXRfaWRlbnRfbGluZSgmaWRlbnQsIGNvbnRhY3QsIHN0cmxlbihjb250YWN0KSkpCisJCWRpZShfKCJ1bmFibGUgdG8gcGFyc2UgY29udGFjdDogJXMiKSwgY29udGFjdCk7CisKKwluYW1lID0gaWRlbnQubmFtZV9iZWdpbjsKKwluYW1lbGVuID0gaWRlbnQubmFtZV9lbmQgLSBpZGVudC5uYW1lX2JlZ2luOworCW1haWwgPSBpZGVudC5tYWlsX2JlZ2luOworCW1haWxsZW4gPSBpZGVudC5tYWlsX2VuZCAtIGlkZW50Lm1haWxfYmVnaW47CisKKwltYXBfdXNlcihtYWlsbWFwLCAmbWFpbCwgJm1haWxsZW4sICZuYW1lLCAmbmFtZWxlbik7CisKKwlpZiAobmFtZWxlbikKKwkJcHJpbnRmKCIlLipzICIsIChpbnQpbmFtZWxlbiwgbmFtZSk7CisJcHJpbnRmKCI8JS4qcz5cbiIsIChpbnQpbWFpbGxlbiwgbWFpbCk7Cit9CisKK2ludCBjbWRfY2hlY2tfbWFpbG1hcChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgbWFpbG1hcCA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CisKKwlnaXRfY29uZmlnKGdpdF9kZWZhdWx0X2NvbmZpZywgTlVMTCk7CisJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBjaGVja19tYWlsbWFwX29wdGlvbnMsCisJCQkgICAgIGNoZWNrX21haWxtYXBfdXNhZ2UsIDApOworCWlmIChhcmdjID09IDAgJiYgIXVzZV9zdGRpbikKKwkJZGllKF8oIm5vIGNvbnRhY3RzIHNwZWNpZmllZCIpKTsKKworCXJlYWRfbWFpbG1hcCgmbWFpbG1hcCwgTlVMTCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYXJnYzsgKytpKQorCQljaGVja19tYWlsbWFwKCZtYWlsbWFwLCBhcmd2W2ldKTsKKwltYXliZV9mbHVzaF9vcl9kaWUoc3Rkb3V0LCAic3Rkb3V0Iik7CisKKwlpZiAodXNlX3N0ZGluKSB7CisJCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CisJCXdoaWxlIChzdHJidWZfZ2V0bGluZSgmYnVmLCBzdGRpbiwgJ1xuJykgIT0gRU9GKSB7CisJCQljaGVja19tYWlsbWFwKCZtYWlsbWFwLCBidWYuYnVmKTsKKwkJCW1heWJlX2ZsdXNoX29yX2RpZShzdGRvdXQsICJzdGRvdXQiKTsKKwkJfQorCQlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwl9CisKKwljbGVhcl9tYWlsbWFwKCZtYWlsbWFwKTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2hlY2tvdXQuYyBiL2J1aWx0aW4vY2hlY2tvdXQuYwppbmRleCA4MWI0NDE5Li43MDI1OTM4IDEwMDY0NAotLS0gYS9idWlsdGluL2NoZWNrb3V0LmMKKysrIGIvYnVpbHRpbi9jaGVja291dC5jCkBAIC05Nyw3ICs5Nyw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc2tpcF9zYW1lX25hbWUoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgaW50IHBvcykKK3N0YXRpYyBpbnQgc2tpcF9zYW1lX25hbWUoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgaW50IHBvcykKIHsKIAl3aGlsZSAoKytwb3MgPCBhY3RpdmVfbnIgJiYKIAkgICAgICAgIXN0cmNtcChhY3RpdmVfY2FjaGVbcG9zXS0+bmFtZSwgY2UtPm5hbWUpKQpAQCAtMTA1LDcgKzEwNSw3IEBACiAJcmV0dXJuIHBvczsKIH0KIAotc3RhdGljIGludCBjaGVja19zdGFnZShpbnQgc3RhZ2UsIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIGludCBwb3MpCitzdGF0aWMgaW50IGNoZWNrX3N0YWdlKGludCBzdGFnZSwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgaW50IHBvcykKIHsKIAl3aGlsZSAocG9zIDwgYWN0aXZlX25yICYmCiAJICAgICAgICFzdHJjbXAoYWN0aXZlX2NhY2hlW3Bvc10tPm5hbWUsIGNlLT5uYW1lKSkgewpAQCAtMTE5LDcgKzExOSw3IEBACiAJCXJldHVybiBlcnJvcihfKCJwYXRoICclcycgZG9lcyBub3QgaGF2ZSB0aGVpciB2ZXJzaW9uIiksIGNlLT5uYW1lKTsKIH0KIAotc3RhdGljIGludCBjaGVja19zdGFnZXModW5zaWduZWQgc3RhZ2VzLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBpbnQgcG9zKQorc3RhdGljIGludCBjaGVja19zdGFnZXModW5zaWduZWQgc3RhZ2VzLCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBpbnQgcG9zKQogewogCXVuc2lnbmVkIHNlZW4gPSAwOwogCWNvbnN0IGNoYXIgKm5hbWUgPSBjZS0+bmFtZTsKQEAgLTMyMSw3ICszMjEsNyBAQAogCiAJLyogQW55IHVubWVyZ2VkIHBhdGhzPyAqLwogCWZvciAocG9zID0gMDsgcG9zIDwgYWN0aXZlX25yOyBwb3MrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbcG9zXTsKIAkJaWYgKGNlLT5jZV9mbGFncyAmIENFX01BVENIRUQpIHsKIAkJCWlmICghY2Vfc3RhZ2UoY2UpKQogCQkJCWNvbnRpbnVlOwpAQCAtNTg3LDcgKzU4Nyw3IEBACiAJCQkJICAgc3RydWN0IGJyYW5jaF9pbmZvICpuZXcpCiB7CiAJc3RydWN0IHN0cmJ1ZiBtc2cgPSBTVFJCVUZfSU5JVDsKLQljb25zdCBjaGFyICpvbGRfZGVzYzsKKwljb25zdCBjaGFyICpvbGRfZGVzYywgKnJlZmxvZ19tc2c7CiAJaWYgKG9wdHMtPm5ld19icmFuY2gpIHsKIAkJaWYgKG9wdHMtPm5ld19vcnBoYW5fYnJhbmNoKSB7CiAJCQlpZiAob3B0cy0+bmV3X2JyYW5jaF9sb2cgJiYgIWxvZ19hbGxfcmVmX3VwZGF0ZXMpIHsKQEAgLTYyMCw4ICs2MjAsMTMgQEAKIAlvbGRfZGVzYyA9IG9sZC0+bmFtZTsKIAlpZiAoIW9sZF9kZXNjICYmIG9sZC0+Y29tbWl0KQogCQlvbGRfZGVzYyA9IHNoYTFfdG9faGV4KG9sZC0+Y29tbWl0LT5vYmplY3Quc2hhMSk7Ci0Jc3RyYnVmX2FkZGYoJm1zZywgImNoZWNrb3V0OiBtb3ZpbmcgZnJvbSAlcyB0byAlcyIsCi0JCSAgICBvbGRfZGVzYyA/IG9sZF9kZXNjIDogIihpbnZhbGlkKSIsIG5ldy0+bmFtZSk7CisKKwlyZWZsb2dfbXNnID0gZ2V0ZW52KCJHSVRfUkVGTE9HX0FDVElPTiIpOworCWlmICghcmVmbG9nX21zZykKKwkJc3RyYnVmX2FkZGYoJm1zZywgImNoZWNrb3V0OiBtb3ZpbmcgZnJvbSAlcyB0byAlcyIsCisJCQlvbGRfZGVzYyA/IG9sZF9kZXNjIDogIihpbnZhbGlkKSIsIG5ldy0+bmFtZSk7CisJZWxzZQorCQlzdHJidWZfaW5zZXJ0KCZtc2csIDAsIHJlZmxvZ19tc2csIHN0cmxlbihyZWZsb2dfbXNnKSk7CiAKIAlpZiAoIXN0cmNtcChuZXctPm5hbWUsICJIRUFEIikgJiYgIW5ldy0+cGF0aCAmJiAhb3B0cy0+Zm9yY2VfZGV0YWNoKSB7CiAJCS8qIE5vdGhpbmcgdG8gZG8uICovCkBAIC04MjUsMzggKzgzMCw0MyBAQAogfQogCiBzdHJ1Y3QgdHJhY2tpbmdfbmFtZV9kYXRhIHsKLQljb25zdCBjaGFyICpuYW1lOwotCWNoYXIgKnJlbW90ZTsKKwkvKiBjb25zdCAqLyBjaGFyICpzcmNfcmVmOworCWNoYXIgKmRzdF9yZWY7CisJdW5zaWduZWQgY2hhciAqZHN0X3NoYTE7CiAJaW50IHVuaXF1ZTsKIH07CiAKLXN0YXRpYyBpbnQgY2hlY2tfdHJhY2tpbmdfbmFtZShjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAotCQkJICAgICAgIGludCBmbGFncywgdm9pZCAqY2JfZGF0YSkKK3N0YXRpYyBpbnQgY2hlY2tfdHJhY2tpbmdfbmFtZShzdHJ1Y3QgcmVtb3RlICpyZW1vdGUsIHZvaWQgKmNiX2RhdGEpCiB7CiAJc3RydWN0IHRyYWNraW5nX25hbWVfZGF0YSAqY2IgPSBjYl9kYXRhOwotCWNvbnN0IGNoYXIgKnNsYXNoOwotCi0JaWYgKHByZWZpeGNtcChyZWZuYW1lLCAicmVmcy9yZW1vdGVzLyIpKQorCXN0cnVjdCByZWZzcGVjIHF1ZXJ5OworCW1lbXNldCgmcXVlcnksIDAsIHNpemVvZihzdHJ1Y3QgcmVmc3BlYykpOworCXF1ZXJ5LnNyYyA9IGNiLT5zcmNfcmVmOworCWlmIChyZW1vdGVfZmluZF90cmFja2luZyhyZW1vdGUsICZxdWVyeSkgfHwKKwkgICAgZ2V0X3NoYTEocXVlcnkuZHN0LCBjYi0+ZHN0X3NoYTEpKSB7CisJCWZyZWUocXVlcnkuZHN0KTsKIAkJcmV0dXJuIDA7Ci0Jc2xhc2ggPSBzdHJjaHIocmVmbmFtZSArIDEzLCAnLycpOwotCWlmICghc2xhc2ggfHwgc3RyY21wKHNsYXNoICsgMSwgY2ItPm5hbWUpKQotCQlyZXR1cm4gMDsKLQlpZiAoY2ItPnJlbW90ZSkgeworCX0KKwlpZiAoY2ItPmRzdF9yZWYpIHsKKwkJZnJlZShxdWVyeS5kc3QpOwogCQljYi0+dW5pcXVlID0gMDsKIAkJcmV0dXJuIDA7CiAJfQotCWNiLT5yZW1vdGUgPSB4c3RyZHVwKHJlZm5hbWUpOworCWNiLT5kc3RfcmVmID0gcXVlcnkuZHN0OwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqdW5pcXVlX3RyYWNraW5nX25hbWUoY29uc3QgY2hhciAqbmFtZSkKK3N0YXRpYyBjb25zdCBjaGFyICp1bmlxdWVfdHJhY2tpbmdfbmFtZShjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBjaGFyICpzaGExKQogewotCXN0cnVjdCB0cmFja2luZ19uYW1lX2RhdGEgY2JfZGF0YSA9IHsgTlVMTCwgTlVMTCwgMSB9OwotCWNiX2RhdGEubmFtZSA9IG5hbWU7Ci0JZm9yX2VhY2hfcmVmKGNoZWNrX3RyYWNraW5nX25hbWUsICZjYl9kYXRhKTsKKwlzdHJ1Y3QgdHJhY2tpbmdfbmFtZV9kYXRhIGNiX2RhdGEgPSB7IE5VTEwsIE5VTEwsIE5VTEwsIDEgfTsKKwljaGFyIHNyY19yZWZbUEFUSF9NQVhdOworCXNucHJpbnRmKHNyY19yZWYsIFBBVEhfTUFYLCAicmVmcy9oZWFkcy8lcyIsIG5hbWUpOworCWNiX2RhdGEuc3JjX3JlZiA9IHNyY19yZWY7CisJY2JfZGF0YS5kc3Rfc2hhMSA9IHNoYTE7CisJZm9yX2VhY2hfcmVtb3RlKGNoZWNrX3RyYWNraW5nX25hbWUsICZjYl9kYXRhKTsKIAlpZiAoY2JfZGF0YS51bmlxdWUpCi0JCXJldHVybiBjYl9kYXRhLnJlbW90ZTsKLQlmcmVlKGNiX2RhdGEucmVtb3RlKTsKKwkJcmV0dXJuIGNiX2RhdGEuZHN0X3JlZjsKKwlmcmVlKGNiX2RhdGEuZHN0X3JlZik7CiAJcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTkxOSw4ICs5MjksOCBAQAogCQlpZiAoZHdpbV9uZXdfbG9jYWxfYnJhbmNoX29rICYmCiAJCSAgICAhY2hlY2tfZmlsZW5hbWUoTlVMTCwgYXJnKSAmJgogCQkgICAgYXJnYyA9PSAxKSB7Ci0JCQljb25zdCBjaGFyICpyZW1vdGUgPSB1bmlxdWVfdHJhY2tpbmdfbmFtZShhcmcpOwotCQkJaWYgKCFyZW1vdGUgfHwgZ2V0X3NoYTEocmVtb3RlLCByZXYpKQorCQkJY29uc3QgY2hhciAqcmVtb3RlID0gdW5pcXVlX3RyYWNraW5nX25hbWUoYXJnLCByZXYpOworCQkJaWYgKCFyZW1vdGUpCiAJCQkJcmV0dXJuIGFyZ2NvdW50OwogCQkJKm5ld19icmFuY2ggPSBhcmc7CiAJCQlhcmcgPSByZW1vdGU7CmRpZmYgLS1naXQgYS9idWlsdGluL2NsZWFuLmMgYi9idWlsdGluL2NsZWFuLmMKaW5kZXggMDRlMzk2Yi4uM2M4NWUxNSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9jbGVhbi5jCisrKyBiL2J1aWx0aW4vY2xlYW4uYwpAQCAtMTMsMTEgKzEzLDE2IEBACiAjaW5jbHVkZSAicmVmcy5oIgogI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCiAjaW5jbHVkZSAicXVvdGUuaCIKKyNpbmNsdWRlICJjb2x1bW4uaCIKKyNpbmNsdWRlICJjb2xvci5oIgogCiBzdGF0aWMgaW50IGZvcmNlID0gLTE7IC8qIHVuc2V0ICovCitzdGF0aWMgaW50IGludGVyYWN0aXZlOworc3RhdGljIHN0cnVjdCBzdHJpbmdfbGlzdCBkZWxfbGlzdCA9IFNUUklOR19MSVNUX0lOSVRfRFVQOworc3RhdGljIHVuc2lnbmVkIGludCBjb2xvcHRzOwogCiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgYnVpbHRpbl9jbGVhbl91c2FnZVtdID0gewotCU5fKCJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIiksCisJTl8oImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIpLAogCU5VTEwKIH07CiAKQEAgLTI3LDExICszMiwxMTIgQEAKIHN0YXRpYyBjb25zdCBjaGFyICptc2dfd291bGRfc2tpcF9naXRfZGlyID0gTl8oIldvdWxkIHNraXAgcmVwb3NpdG9yeSAlc1xuIik7CiBzdGF0aWMgY29uc3QgY2hhciAqbXNnX3dhcm5fcmVtb3ZlX2ZhaWxlZCA9IE5fKCJmYWlsZWQgdG8gcmVtb3ZlICVzIik7CiAKK3N0YXRpYyBpbnQgY2xlYW5fdXNlX2NvbG9yID0gLTE7CitzdGF0aWMgY2hhciBjbGVhbl9jb2xvcnNbXVtDT0xPUl9NQVhMRU5dID0geworCUdJVF9DT0xPUl9SRVNFVCwKKwlHSVRfQ09MT1JfTk9STUFMLAkvKiBQTEFJTiAqLworCUdJVF9DT0xPUl9CT0xEX0JMVUUsCS8qIFBST01QVCAqLworCUdJVF9DT0xPUl9CT0xELAkJLyogSEVBREVSICovCisJR0lUX0NPTE9SX0JPTERfUkVELAkvKiBIRUxQICovCisJR0lUX0NPTE9SX0JPTERfUkVELAkvKiBFUlJPUiAqLworfTsKK2VudW0gY29sb3JfY2xlYW4geworCUNMRUFOX0NPTE9SX1JFU0VUID0gMCwKKwlDTEVBTl9DT0xPUl9QTEFJTiA9IDEsCisJQ0xFQU5fQ09MT1JfUFJPTVBUID0gMiwKKwlDTEVBTl9DT0xPUl9IRUFERVIgPSAzLAorCUNMRUFOX0NPTE9SX0hFTFAgPSA0LAorCUNMRUFOX0NPTE9SX0VSUk9SID0gNSwKK307CisKKyNkZWZpbmUgTUVOVV9PUFRTX1NJTkdMRVRPTgkJMDEKKyNkZWZpbmUgTUVOVV9PUFRTX0lNTUVESUFURQkJMDIKKyNkZWZpbmUgTUVOVV9PUFRTX0xJU1RfT05MWQkJMDQKKworc3RydWN0IG1lbnVfb3B0cyB7CisJY29uc3QgY2hhciAqaGVhZGVyOworCWNvbnN0IGNoYXIgKnByb21wdDsKKwlpbnQgZmxhZ3M7Cit9OworCisjZGVmaW5lIE1FTlVfUkVUVVJOX05PX0xPT1AJCTEwCisKK3N0cnVjdCBtZW51X2l0ZW0geworCWNoYXIgaG90a2V5OworCWNvbnN0IGNoYXIgKnRpdGxlOworCWludCBzZWxlY3RlZDsKKwlpbnQgKCpmbikoKTsKK307CisKK2VudW0gbWVudV9zdHVmZl90eXBlIHsKKwlNRU5VX1NUVUZGX1RZUEVfU1RSSU5HX0xJU1QgPSAxLAorCU1FTlVfU1RVRkZfVFlQRV9NRU5VX0lURU0KK307CisKK3N0cnVjdCBtZW51X3N0dWZmIHsKKwllbnVtIG1lbnVfc3R1ZmZfdHlwZSB0eXBlOworCWludCBucjsKKwl2b2lkICpzdHVmZjsKK307CisKK3N0YXRpYyBpbnQgcGFyc2VfY2xlYW5fY29sb3Jfc2xvdChjb25zdCBjaGFyICp2YXIpCit7CisJaWYgKCFzdHJjYXNlY21wKHZhciwgInJlc2V0IikpCisJCXJldHVybiBDTEVBTl9DT0xPUl9SRVNFVDsKKwlpZiAoIXN0cmNhc2VjbXAodmFyLCAicGxhaW4iKSkKKwkJcmV0dXJuIENMRUFOX0NPTE9SX1BMQUlOOworCWlmICghc3RyY2FzZWNtcCh2YXIsICJwcm9tcHQiKSkKKwkJcmV0dXJuIENMRUFOX0NPTE9SX1BST01QVDsKKwlpZiAoIXN0cmNhc2VjbXAodmFyLCAiaGVhZGVyIikpCisJCXJldHVybiBDTEVBTl9DT0xPUl9IRUFERVI7CisJaWYgKCFzdHJjYXNlY21wKHZhciwgImhlbHAiKSkKKwkJcmV0dXJuIENMRUFOX0NPTE9SX0hFTFA7CisJaWYgKCFzdHJjYXNlY21wKHZhciwgImVycm9yIikpCisJCXJldHVybiBDTEVBTl9DT0xPUl9FUlJPUjsKKwlyZXR1cm4gLTE7Cit9CisKIHN0YXRpYyBpbnQgZ2l0X2NsZWFuX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYikKIHsKLQlpZiAoIXN0cmNtcCh2YXIsICJjbGVhbi5yZXF1aXJlZm9yY2UiKSkKKwlpZiAoIXByZWZpeGNtcCh2YXIsICJjb2x1bW4uIikpCisJCXJldHVybiBnaXRfY29sdW1uX2NvbmZpZyh2YXIsIHZhbHVlLCAiY2xlYW4iLCAmY29sb3B0cyk7CisKKwkvKiBob25vcnMgdGhlIGNvbG9yLmludGVyYWN0aXZlKiBjb25maWcgdmFyaWFibGVzIHdoaWNoIGFsc28KKwkgICBhcHBsaWVkIGluIGdpdC1hZGQtLWludGVyYWN0aXZlIGFuZCBnaXQtc3Rhc2ggKi8KKwlpZiAoIXN0cmNtcCh2YXIsICJjb2xvci5pbnRlcmFjdGl2ZSIpKSB7CisJCWNsZWFuX3VzZV9jb2xvciA9IGdpdF9jb25maWdfY29sb3Jib29sKHZhciwgdmFsdWUpOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKCFwcmVmaXhjbXAodmFyLCAiY29sb3IuaW50ZXJhY3RpdmUuIikpIHsKKwkJaW50IHNsb3QgPSBwYXJzZV9jbGVhbl9jb2xvcl9zbG90KHZhciArCisJCQkJCQkgIHN0cmxlbigiY29sb3IuaW50ZXJhY3RpdmUuIikpOworCQlpZiAoc2xvdCA8IDApCisJCQlyZXR1cm4gMDsKKwkJaWYgKCF2YWx1ZSkKKwkJCXJldHVybiBjb25maWdfZXJyb3Jfbm9uYm9vbCh2YXIpOworCQljb2xvcl9wYXJzZSh2YWx1ZSwgdmFyLCBjbGVhbl9jb2xvcnNbc2xvdF0pOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoIXN0cmNtcCh2YXIsICJjbGVhbi5yZXF1aXJlZm9yY2UiKSkgewogCQlmb3JjZSA9ICFnaXRfY29uZmlnX2Jvb2wodmFyLCB2YWx1ZSk7Ci0JcmV0dXJuIGdpdF9kZWZhdWx0X2NvbmZpZyh2YXIsIHZhbHVlLCBjYik7CisJCXJldHVybiAwOworCX0KKworCS8qIGluc3BlY3QgdGhlIGNvbG9yLnVpIGNvbmZpZyB2YXJpYWJsZSBhbmQgb3RoZXJzICovCisJcmV0dXJuIGdpdF9jb2xvcl9kZWZhdWx0X2NvbmZpZyh2YXIsIHZhbHVlLCBjYik7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpjbGVhbl9nZXRfY29sb3IoZW51bSBjb2xvcl9jbGVhbiBpeCkKK3sKKwlpZiAod2FudF9jb2xvcihjbGVhbl91c2VfY29sb3IpKQorCQlyZXR1cm4gY2xlYW5fY29sb3JzW2l4XTsKKwlyZXR1cm4gIiI7Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFuX3ByaW50X2NvbG9yKGVudW0gY29sb3JfY2xlYW4gaXgpCit7CisJcHJpbnRmKCIlcyIsIGNsZWFuX2dldF9jb2xvcihpeCkpOwogfQogCiBzdGF0aWMgaW50IGV4Y2x1ZGVfY2IoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LCBjb25zdCBjaGFyICphcmcsIGludCB1bnNldCkKQEAgLTU2LDcgKzE2Miw3IEBACiAJaWYgKChmb3JjZV9mbGFnICYgUkVNT1ZFX0RJUl9LRUVQX05FU1RFRF9HSVQpICYmCiAJCQkhcmVzb2x2ZV9naXRsaW5rX3JlZihwYXRoLT5idWYsICJIRUFEIiwgc3VibW9kdWxlX2hlYWQpKSB7CiAJCWlmICghcXVpZXQpIHsKLQkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBzdHJsZW4ocGF0aC0+YnVmKSwgJnF1b3RlZCwgcHJlZml4KTsKKwkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBwcmVmaXgsICZxdW90ZWQpOwogCQkJcHJpbnRmKGRyeV9ydW4gPyAgXyhtc2dfd291bGRfc2tpcF9naXRfZGlyKSA6IF8obXNnX3NraXBfZ2l0X2RpciksCiAJCQkJCXF1b3RlZC5idWYpOwogCQl9CkBAIC03MCw3ICsxNzYsNyBAQAogCQkvKiBhbiBlbXB0eSBkaXIgY291bGQgYmUgcmVtb3ZlZCBldmVuIGlmIGl0IGlzIHVucmVhZGJsZSAqLwogCQlyZXMgPSBkcnlfcnVuID8gMCA6IHJtZGlyKHBhdGgtPmJ1Zik7CiAJCWlmIChyZXMpIHsKLQkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBzdHJsZW4ocGF0aC0+YnVmKSwgJnF1b3RlZCwgcHJlZml4KTsKKwkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBwcmVmaXgsICZxdW90ZWQpOwogCQkJd2FybmluZyhfKG1zZ193YXJuX3JlbW92ZV9mYWlsZWQpLCBxdW90ZWQuYnVmKTsKIAkJCSpkaXJfZ29uZSA9IDA7CiAJCX0KQEAgLTk0LDcgKzIwMCw3IEBACiAJCQlpZiAocmVtb3ZlX2RpcnMocGF0aCwgcHJlZml4LCBmb3JjZV9mbGFnLCBkcnlfcnVuLCBxdWlldCwgJmdvbmUpKQogCQkJCXJldCA9IDE7CiAJCQlpZiAoZ29uZSkgewotCQkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBzdHJsZW4ocGF0aC0+YnVmKSwgJnF1b3RlZCwgcHJlZml4KTsKKwkJCQlxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGgtPmJ1ZiwgcHJlZml4LCAmcXVvdGVkKTsKIAkJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmRlbHMsIHF1b3RlZC5idWYpOwogCQkJfSBlbHNlCiAJCQkJKmRpcl9nb25lID0gMDsKQEAgLTEwMiwxMCArMjA4LDEwIEBACiAJCX0gZWxzZSB7CiAJCQlyZXMgPSBkcnlfcnVuID8gMCA6IHVubGluayhwYXRoLT5idWYpOwogCQkJaWYgKCFyZXMpIHsKLQkJCQlxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGgtPmJ1Ziwgc3RybGVuKHBhdGgtPmJ1ZiksICZxdW90ZWQsIHByZWZpeCk7CisJCQkJcXVvdGVfcGF0aF9yZWxhdGl2ZShwYXRoLT5idWYsIHByZWZpeCwgJnF1b3RlZCk7CiAJCQkJc3RyaW5nX2xpc3RfYXBwZW5kKCZkZWxzLCBxdW90ZWQuYnVmKTsKIAkJCX0gZWxzZSB7Ci0JCQkJcXVvdGVfcGF0aF9yZWxhdGl2ZShwYXRoLT5idWYsIHN0cmxlbihwYXRoLT5idWYpLCAmcXVvdGVkLCBwcmVmaXgpOworCQkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBwcmVmaXgsICZxdW90ZWQpOwogCQkJCXdhcm5pbmcoXyhtc2dfd2Fybl9yZW1vdmVfZmFpbGVkKSwgcXVvdGVkLmJ1Zik7CiAJCQkJKmRpcl9nb25lID0gMDsKIAkJCQlyZXQgPSAxOwpAQCAtMTI3LDcgKzIzMyw3IEBACiAJCWlmICghcmVzKQogCQkJKmRpcl9nb25lID0gMTsKIAkJZWxzZSB7Ci0JCQlxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGgtPmJ1Ziwgc3RybGVuKHBhdGgtPmJ1ZiksICZxdW90ZWQsIHByZWZpeCk7CisJCQlxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGgtPmJ1ZiwgcHJlZml4LCAmcXVvdGVkKTsKIAkJCXdhcm5pbmcoXyhtc2dfd2Fybl9yZW1vdmVfZmFpbGVkKSwgcXVvdGVkLmJ1Zik7CiAJCQkqZGlyX2dvbmUgPSAwOwogCQkJcmV0ID0gMTsKQEAgLTE0MiwyNCArMjQ4LDYzMyBAQAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIHByZXR0eV9wcmludF9kZWxzKHZvaWQpCit7CisJc3RydWN0IHN0cmluZ19saXN0IGxpc3QgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKKwlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOworCWNvbnN0IGNoYXIgKnFuYW1lOworCXN0cnVjdCBjb2x1bW5fb3B0aW9ucyBjb3B0czsKKworCWZvcl9lYWNoX3N0cmluZ19saXN0X2l0ZW0oaXRlbSwgJmRlbF9saXN0KSB7CisJCXFuYW1lID0gcXVvdGVfcGF0aF9yZWxhdGl2ZShpdGVtLT5zdHJpbmcsIE5VTEwsICZidWYpOworCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmxpc3QsIHFuYW1lKTsKKwl9CisKKwkvKgorCSAqIGFsd2F5cyBlbmFibGUgY29sdW1uIGRpc3BsYXksIHdlIG9ubHkgY29uc3VsdCBjb2x1bW4uKgorCSAqIGFib3V0IGxheW91dCBzdHJhdGVneSBhbmQgc3R1ZmYKKwkgKi8KKwljb2xvcHRzID0gKGNvbG9wdHMgJiB+Q09MX0VOQUJMRV9NQVNLKSB8IENPTF9FTkFCTEVEOworCW1lbXNldCgmY29wdHMsIDAsIHNpemVvZihjb3B0cykpOworCWNvcHRzLmluZGVudCA9ICIgICI7CisJY29wdHMucGFkZGluZyA9IDI7CisJcHJpbnRfY29sdW1ucygmbGlzdCwgY29sb3B0cywgJmNvcHRzKTsKKwlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwlzdHJpbmdfbGlzdF9jbGVhcigmbGlzdCwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIHByZXR0eV9wcmludF9tZW51cyhzdHJ1Y3Qgc3RyaW5nX2xpc3QgKm1lbnVfbGlzdCkKK3sKKwl1bnNpZ25lZCBpbnQgbG9jYWxfY29sb3B0cyA9IDA7CisJc3RydWN0IGNvbHVtbl9vcHRpb25zIGNvcHRzOworCisJbG9jYWxfY29sb3B0cyA9IENPTF9FTkFCTEVEIHwgQ09MX1JPVzsKKwltZW1zZXQoJmNvcHRzLCAwLCBzaXplb2YoY29wdHMpKTsKKwljb3B0cy5pbmRlbnQgPSAiICAiOworCWNvcHRzLnBhZGRpbmcgPSAyOworCXByaW50X2NvbHVtbnMobWVudV9saXN0LCBsb2NhbF9jb2xvcHRzLCAmY29wdHMpOworfQorCitzdGF0aWMgdm9pZCBwcm9tcHRfaGVscF9jbWQoaW50IHNpbmdsZXRvbikKK3sKKwljbGVhbl9wcmludF9jb2xvcihDTEVBTl9DT0xPUl9IRUxQKTsKKwlwcmludGZfbG4oc2luZ2xldG9uID8KKwkJICBfKCJQcm9tcHQgaGVscDpcbiIKKwkJICAgICIxICAgICAgICAgIC0gc2VsZWN0IGEgbnVtYmVyZWQgaXRlbVxuIgorCQkgICAgImZvbyAgICAgICAgLSBzZWxlY3QgaXRlbSBiYXNlZCBvbiB1bmlxdWUgcHJlZml4XG4iCisJCSAgICAiICAgICAgICAgICAtIChlbXB0eSkgc2VsZWN0IG5vdGhpbmciKSA6CisJCSAgXygiUHJvbXB0IGhlbHA6XG4iCisJCSAgICAiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCisJCSAgICAiMy01ICAgICAgICAtIHNlbGVjdCBhIHJhbmdlIG9mIGl0ZW1zXG4iCisJCSAgICAiMi0zLDYtOSAgICAtIHNlbGVjdCBtdWx0aXBsZSByYW5nZXNcbiIKKwkJICAgICJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorCQkgICAgIi0uLi4gICAgICAgLSB1bnNlbGVjdCBzcGVjaWZpZWQgaXRlbXNcbiIKKwkJICAgICIqICAgICAgICAgIC0gY2hvb3NlIGFsbCBpdGVtc1xuIgorCQkgICAgIiAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmciKSk7CisJY2xlYW5fcHJpbnRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpOworfQorCisvKgorICogZGlzcGxheSBtZW51IHN0dWZmIHdpdGggbnVtYmVyIHByZWZpeCBhbmQgaG90a2V5IGhpZ2hsaWdodAorICovCitzdGF0aWMgdm9pZCBwcmludF9oaWdobGlnaHRfbWVudV9zdHVmZihzdHJ1Y3QgbWVudV9zdHVmZiAqc3R1ZmYsIGludCAqKmNob3NlbikKK3sKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgbWVudV9saXN0ID0gU1RSSU5HX0xJU1RfSU5JVF9EVVA7CisJc3RydWN0IHN0cmJ1ZiBtZW51ID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3QgbWVudV9pdGVtICptZW51X2l0ZW07CisJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKnN0cmluZ19saXN0X2l0ZW07CisJaW50IGk7CisKKwlzd2l0Y2ggKHN0dWZmLT50eXBlKSB7CisJZGVmYXVsdDoKKwkJZGllKCJCYWQgdHlwZSBvZiBtZW51X3N0YWZmIHdoZW4gcHJpbnQgbWVudSIpOworCWNhc2UgTUVOVV9TVFVGRl9UWVBFX01FTlVfSVRFTToKKwkJbWVudV9pdGVtID0gKHN0cnVjdCBtZW51X2l0ZW0gKilzdHVmZi0+c3R1ZmY7CisJCWZvciAoaSA9IDA7IGkgPCBzdHVmZi0+bnI7IGkrKywgbWVudV9pdGVtKyspIHsKKwkJCWNvbnN0IGNoYXIgKnA7CisJCQlpbnQgaGlnaGxpZ2h0ZWQgPSAwOworCisJCQlwID0gbWVudV9pdGVtLT50aXRsZTsKKwkJCWlmICgoKmNob3NlbilbaV0gPCAwKQorCQkJCSgqY2hvc2VuKVtpXSA9IG1lbnVfaXRlbS0+c2VsZWN0ZWQgPyAxIDogMDsKKwkJCXN0cmJ1Zl9hZGRmKCZtZW51LCAiJXMlMmQ6ICIsICgqY2hvc2VuKVtpXSA/ICIqIiA6ICIgIiwgaSsxKTsKKwkJCWZvciAoOyAqcDsgcCsrKSB7CisJCQkJaWYgKCFoaWdobGlnaHRlZCAmJiAqcCA9PSBtZW51X2l0ZW0tPmhvdGtleSkgeworCQkJCQlzdHJidWZfYWRkc3RyKCZtZW51LCBjbGVhbl9nZXRfY29sb3IoQ0xFQU5fQ09MT1JfUFJPTVBUKSk7CisJCQkJCXN0cmJ1Zl9hZGRjaCgmbWVudSwgKnApOworCQkJCQlzdHJidWZfYWRkc3RyKCZtZW51LCBjbGVhbl9nZXRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpKTsKKwkJCQkJaGlnaGxpZ2h0ZWQgPSAxOworCQkJCX0gZWxzZSB7CisJCQkJCXN0cmJ1Zl9hZGRjaCgmbWVudSwgKnApOworCQkJCX0KKwkJCX0KKwkJCXN0cmluZ19saXN0X2FwcGVuZCgmbWVudV9saXN0LCBtZW51LmJ1Zik7CisJCQlzdHJidWZfcmVzZXQoJm1lbnUpOworCQl9CisJCWJyZWFrOworCWNhc2UgTUVOVV9TVFVGRl9UWVBFX1NUUklOR19MSVNUOgorCQlpID0gMDsKKwkJZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShzdHJpbmdfbGlzdF9pdGVtLCAoc3RydWN0IHN0cmluZ19saXN0ICopc3R1ZmYtPnN0dWZmKSB7CisJCQlpZiAoKCpjaG9zZW4pW2ldIDwgMCkKKwkJCQkoKmNob3NlbilbaV0gPSAwOworCQkJc3RyYnVmX2FkZGYoJm1lbnUsICIlcyUyZDogJXMiLAorCQkJCSAgICAoKmNob3NlbilbaV0gPyAiKiIgOiAiICIsIGkrMSwgc3RyaW5nX2xpc3RfaXRlbS0+c3RyaW5nKTsKKwkJCXN0cmluZ19saXN0X2FwcGVuZCgmbWVudV9saXN0LCBtZW51LmJ1Zik7CisJCQlzdHJidWZfcmVzZXQoJm1lbnUpOworCQkJaSsrOworCQl9CisJCWJyZWFrOworCX0KKworCXByZXR0eV9wcmludF9tZW51cygmbWVudV9saXN0KTsKKworCXN0cmJ1Zl9yZWxlYXNlKCZtZW51KTsKKwlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwlzdHJpbmdfbGlzdF9jbGVhcigmbWVudV9saXN0LCAwKTsKK30KKworc3RhdGljIGludCBmaW5kX3VuaXF1ZShjb25zdCBjaGFyICpjaG9pY2UsIHN0cnVjdCBtZW51X3N0dWZmICptZW51X3N0dWZmKQoreworCXN0cnVjdCBtZW51X2l0ZW0gKm1lbnVfaXRlbTsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqc3RyaW5nX2xpc3RfaXRlbTsKKwlpbnQgaSwgbGVuLCBmb3VuZCA9IDA7CisKKwlsZW4gPSBzdHJsZW4oY2hvaWNlKTsKKwlzd2l0Y2ggKG1lbnVfc3R1ZmYtPnR5cGUpIHsKKwlkZWZhdWx0OgorCQlkaWUoIkJhZCB0eXBlIG9mIG1lbnVfc3R1ZmYgd2hlbiBwYXJzZSBjaG9pY2UiKTsKKwljYXNlIE1FTlVfU1RVRkZfVFlQRV9NRU5VX0lURU06CisKKwkJbWVudV9pdGVtID0gKHN0cnVjdCBtZW51X2l0ZW0gKiltZW51X3N0dWZmLT5zdHVmZjsKKwkJZm9yIChpID0gMDsgaSA8IG1lbnVfc3R1ZmYtPm5yOyBpKyssIG1lbnVfaXRlbSsrKSB7CisJCQlpZiAobGVuID09IDEgJiYgKmNob2ljZSA9PSBtZW51X2l0ZW0tPmhvdGtleSkgeworCQkJCWZvdW5kID0gaSArIDE7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoIXN0cm5jYXNlY21wKGNob2ljZSwgbWVudV9pdGVtLT50aXRsZSwgbGVuKSkgeworCQkJCWlmIChmb3VuZCkgeworCQkJCQlpZiAobGVuID09IDEpIHsKKwkJCQkJCS8qIGNvbnRpbnVlIGZvciBob3RrZXkgbWF0Y2hpbmcgKi8KKwkJCQkJCWZvdW5kID0gLTE7CisJCQkJCX0gZWxzZSB7CisJCQkJCQlmb3VuZCA9IDA7CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJCX0gZWxzZSB7CisJCQkJCWZvdW5kID0gaSArIDE7CisJCQkJfQorCQkJfQorCQl9CisJCWJyZWFrOworCWNhc2UgTUVOVV9TVFVGRl9UWVBFX1NUUklOR19MSVNUOgorCQlzdHJpbmdfbGlzdF9pdGVtID0gKChzdHJ1Y3Qgc3RyaW5nX2xpc3QgKiltZW51X3N0dWZmLT5zdHVmZiktPml0ZW1zOworCQlmb3IgKGkgPSAwOyBpIDwgbWVudV9zdHVmZi0+bnI7IGkrKywgc3RyaW5nX2xpc3RfaXRlbSsrKSB7CisJCQlpZiAoIXN0cm5jYXNlY21wKGNob2ljZSwgc3RyaW5nX2xpc3RfaXRlbS0+c3RyaW5nLCBsZW4pKSB7CisJCQkJaWYgKGZvdW5kKSB7CisJCQkJCWZvdW5kID0gMDsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWZvdW5kID0gaSArIDE7CisJCQl9CisJCX0KKwkJYnJlYWs7CisJfQorCXJldHVybiBmb3VuZDsKK30KKworCisvKgorICogUGFyc2UgdXNlciBpbnB1dCwgYW5kIHJldHVybiBjaG9pY2UocykgZm9yIG1lbnUgKG1lbnVfc3R1ZmYpLgorICoKKyAqIElucHV0CisgKiAgICAgKGZvciBzaW5nbGUgY2hvaWNlKQorICogICAgICAgICAxICAgICAgICAgIC0gc2VsZWN0IGEgbnVtYmVyZWQgaXRlbQorICogICAgICAgICBmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gbWVudSB0aXRsZQorICogICAgICAgICAgICAgICAgICAgIC0gKGVtcHR5KSBzZWxlY3Qgbm90aGluZworICoKKyAqICAgICAoZm9yIG11bHRpcGxlIGNob2ljZSkKKyAqICAgICAgICAgMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtCisgKiAgICAgICAgIDMtNSAgICAgICAgLSBzZWxlY3QgYSByYW5nZSBvZiBpdGVtcworICogICAgICAgICAyLTMsNi05ICAgIC0gc2VsZWN0IG11bHRpcGxlIHJhbmdlcworICogICAgICAgICBmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gbWVudSB0aXRsZQorICogICAgICAgICAtLi4uICAgICAgIC0gdW5zZWxlY3Qgc3BlY2lmaWVkIGl0ZW1zCisgKiAgICAgICAgICogICAgICAgICAgLSBjaG9vc2UgYWxsIGl0ZW1zCisgKiAgICAgICAgICAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmcKKyAqCisgKiBUaGUgcGFyc2UgcmVzdWx0IHdpbGwgYmUgc2F2ZWQgaW4gYXJyYXkgKipjaG9zZW4sIGFuZAorICogcmV0dXJuIG51bWJlciBvZiB0b3RhbCBzZWxlY3Rpb25zLgorICovCitzdGF0aWMgaW50IHBhcnNlX2Nob2ljZShzdHJ1Y3QgbWVudV9zdHVmZiAqbWVudV9zdHVmZiwKKwkJCWludCBpc19zaW5nbGUsCisJCQlzdHJ1Y3Qgc3RyYnVmIGlucHV0LAorCQkJaW50ICoqY2hvc2VuKQoreworCXN0cnVjdCBzdHJidWYgKipjaG9pY2VfbGlzdCwgKipwdHI7CisJaW50IG5yID0gMDsKKwlpbnQgaTsKKworCWlmIChpc19zaW5nbGUpIHsKKwkJY2hvaWNlX2xpc3QgPSBzdHJidWZfc3BsaXRfbWF4KCZpbnB1dCwgJ1xuJywgMCk7CisJfSBlbHNlIHsKKwkJY2hhciAqcCA9IGlucHV0LmJ1ZjsKKwkJZG8geworCQkJaWYgKCpwID09ICcsJykKKwkJCQkqcCA9ICcgJzsKKwkJfSB3aGlsZSAoKnArKyk7CisJCWNob2ljZV9saXN0ID0gc3RyYnVmX3NwbGl0X21heCgmaW5wdXQsICcgJywgMCk7CisJfQorCisJZm9yIChwdHIgPSBjaG9pY2VfbGlzdDsgKnB0cjsgcHRyKyspIHsKKwkJY2hhciAqcDsKKwkJaW50IGNob29zZSA9IDE7CisJCWludCBib3R0b20gPSAwLCB0b3AgPSAwOworCQlpbnQgaXNfcmFuZ2UsIGlzX251bWJlcjsKKworCQlzdHJidWZfdHJpbSgqcHRyKTsKKwkJaWYgKCEoKnB0ciktPmxlbikKKwkJCWNvbnRpbnVlOworCisJCS8qIElucHV0IHRoYXQgYmVnaW5zIHdpdGggJy0nOyB1bmNob29zZSAqLworCQlpZiAoKigqcHRyKS0+YnVmID09ICctJykgeworCQkJY2hvb3NlID0gMDsKKwkJCXN0cmJ1Zl9yZW1vdmUoKCpwdHIpLCAwLCAxKTsKKwkJfQorCisJCWlzX3JhbmdlID0gMDsKKwkJaXNfbnVtYmVyID0gMTsKKwkJZm9yIChwID0gKCpwdHIpLT5idWY7ICpwOyBwKyspIHsKKwkJCWlmICgnLScgPT0gKnApIHsKKwkJCQlpZiAoIWlzX3JhbmdlKSB7CisJCQkJCWlzX3JhbmdlID0gMTsKKwkJCQkJaXNfbnVtYmVyID0gMDsKKwkJCQl9IGVsc2UgeworCQkJCQlpc19udW1iZXIgPSAwOworCQkJCQlpc19yYW5nZSA9IDA7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0gZWxzZSBpZiAoIWlzZGlnaXQoKnApKSB7CisJCQkJaXNfbnVtYmVyID0gMDsKKwkJCQlpc19yYW5nZSA9IDA7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlpZiAoaXNfbnVtYmVyKSB7CisJCQlib3R0b20gPSBhdG9pKCgqcHRyKS0+YnVmKTsKKwkJCXRvcCA9IGJvdHRvbTsKKwkJfSBlbHNlIGlmIChpc19yYW5nZSkgeworCQkJYm90dG9tID0gYXRvaSgoKnB0ciktPmJ1Zik7CisJCQkvKiBhIHJhbmdlIGNhbiBiZSBzcGVjaWZpZWQgbGlrZSA1LTcgb3IgNS0gKi8KKwkJCWlmICghKihzdHJjaHIoKCpwdHIpLT5idWYsICctJykgKyAxKSkKKwkJCQl0b3AgPSBtZW51X3N0dWZmLT5ucjsKKwkJCWVsc2UKKwkJCQl0b3AgPSBhdG9pKHN0cmNocigoKnB0ciktPmJ1ZiwgJy0nKSArIDEpOworCQl9IGVsc2UgaWYgKCFzdHJjbXAoKCpwdHIpLT5idWYsICIqIikpIHsKKwkJCWJvdHRvbSA9IDE7CisJCQl0b3AgPSBtZW51X3N0dWZmLT5ucjsKKwkJfSBlbHNlIHsKKwkJCWJvdHRvbSA9IGZpbmRfdW5pcXVlKCgqcHRyKS0+YnVmLCBtZW51X3N0dWZmKTsKKwkJCXRvcCA9IGJvdHRvbTsKKwkJfQorCisJCWlmICh0b3AgPD0gMCB8fCBib3R0b20gPD0gMCB8fCB0b3AgPiBtZW51X3N0dWZmLT5uciB8fCBib3R0b20gPiB0b3AgfHwKKwkJICAgIChpc19zaW5nbGUgJiYgYm90dG9tICE9IHRvcCkpIHsKKwkJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX0VSUk9SKTsKKwkJCXByaW50Zl9sbihfKCJIdWggKCVzKT8iKSwgKCpwdHIpLT5idWYpOworCQkJY2xlYW5fcHJpbnRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpOworCQkJY29udGludWU7CisJCX0KKworCQlmb3IgKGkgPSBib3R0b207IGkgPD0gdG9wOyBpKyspCisJCQkoKmNob3NlbilbaS0xXSA9IGNob29zZTsKKwl9CisKKwlzdHJidWZfbGlzdF9mcmVlKGNob2ljZV9saXN0KTsKKworCWZvciAoaSA9IDA7IGkgPCBtZW51X3N0dWZmLT5ucjsgaSsrKQorCQluciArPSAoKmNob3NlbilbaV07CisJcmV0dXJuIG5yOworfQorCisvKgorICogSW1wbGVtZW50IGEgZ2l0LWFkZC1pbnRlcmFjdGl2ZSBjb21wYXRpYmxlIFVJLCB3aGljaCBpcyBib3Jyb3dlZAorICogZnJvbSBnaXQtYWRkLS1pbnRlcmFjdGl2ZS5wZXJsLgorICoKKyAqIFJldHVybiB2YWx1ZToKKyAqCisgKiAgIC0gUmV0dXJuIGFuIGFycmF5IG9mIGludGVnZXJzCisgKiAgIC0gLCBhbmQgaXQgaXMgdXAgdG8geW91IHRvIGZyZWUgdGhlIGFsbG9jYXRlZCBtZW1vcnkuCisgKiAgIC0gVGhlIGFycmF5IGVuZHMgd2l0aCBFT0YuCisgKiAgIC0gSWYgdXNlciBwcmVzc2VkIENUUkwtRCAoaS5lLiBFT0YpLCBubyBzZWxlY3Rpb24gcmV0dXJuZWQuCisgKi8KK3N0YXRpYyBpbnQgKmxpc3RfYW5kX2Nob29zZShzdHJ1Y3QgbWVudV9vcHRzICpvcHRzLCBzdHJ1Y3QgbWVudV9zdHVmZiAqc3R1ZmYpCit7CisJc3RydWN0IHN0cmJ1ZiBjaG9pY2UgPSBTVFJCVUZfSU5JVDsKKwlpbnQgKmNob3NlbiwgKnJlc3VsdDsKKwlpbnQgbnIgPSAwOworCWludCBlb2YgPSAwOworCWludCBpOworCisJY2hvc2VuID0geG1hbGxvYyhzaXplb2YoaW50KSAqIHN0dWZmLT5ucik7CisJLyogc2V0IGNob3NlbiBhcyB1bmluaXRpYWxpemVkICovCisJZm9yIChpID0gMDsgaSA8IHN0dWZmLT5ucjsgaSsrKQorCQljaG9zZW5baV0gPSAtMTsKKworCWZvciAoOzspIHsKKwkJaWYgKG9wdHMtPmhlYWRlcikgeworCQkJcHJpbnRmX2xuKCIlcyVzJXMiLAorCQkJCSAgY2xlYW5fZ2V0X2NvbG9yKENMRUFOX0NPTE9SX0hFQURFUiksCisJCQkJICBfKG9wdHMtPmhlYWRlciksCisJCQkJICBjbGVhbl9nZXRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpKTsKKwkJfQorCisJCS8qIGNob3NlbiB3aWxsIGJlIGluaXRpYWxpemVkIGJ5IHByaW50X2hpZ2hsaWdodF9tZW51X3N0dWZmICovCisJCXByaW50X2hpZ2hsaWdodF9tZW51X3N0dWZmKHN0dWZmLCAmY2hvc2VuKTsKKworCQlpZiAob3B0cy0+ZmxhZ3MgJiBNRU5VX09QVFNfTElTVF9PTkxZKQorCQkJYnJlYWs7CisKKwkJaWYgKG9wdHMtPnByb21wdCkgeworCQkJcHJpbnRmKCIlcyVzJXMlcyIsCisJCQkgICAgICAgY2xlYW5fZ2V0X2NvbG9yKENMRUFOX0NPTE9SX1BST01QVCksCisJCQkgICAgICAgXyhvcHRzLT5wcm9tcHQpLAorCQkJICAgICAgIG9wdHMtPmZsYWdzICYgTUVOVV9PUFRTX1NJTkdMRVRPTiA/ICI+ICIgOiAiPj4gIiwKKwkJCSAgICAgICBjbGVhbl9nZXRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpKTsKKwkJfQorCisJCWlmIChzdHJidWZfZ2V0bGluZSgmY2hvaWNlLCBzdGRpbiwgJ1xuJykgIT0gRU9GKSB7CisJCQlzdHJidWZfdHJpbSgmY2hvaWNlKTsKKwkJfSBlbHNlIHsKKwkJCWVvZiA9IDE7CisJCQlicmVhazsKKwkJfQorCisJCS8qIGhlbHAgZm9yIHByb21wdCAqLworCQlpZiAoIXN0cmNtcChjaG9pY2UuYnVmLCAiPyIpKSB7CisJCQlwcm9tcHRfaGVscF9jbWQob3B0cy0+ZmxhZ3MgJiBNRU5VX09QVFNfU0lOR0xFVE9OKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyogZm9yIGEgbXVsdGlwbGUtY2hvaWNlIG1lbnUsIHByZXNzIEVOVEVSIChlbXB0eSkgd2lsbCByZXR1cm4gYmFjayAqLworCQlpZiAoIShvcHRzLT5mbGFncyAmIE1FTlVfT1BUU19TSU5HTEVUT04pICYmICFjaG9pY2UubGVuKQorCQkJYnJlYWs7CisKKwkJbnIgPSBwYXJzZV9jaG9pY2Uoc3R1ZmYsCisJCQkJICBvcHRzLT5mbGFncyAmIE1FTlVfT1BUU19TSU5HTEVUT04sCisJCQkJICBjaG9pY2UsCisJCQkJICAmY2hvc2VuKTsKKworCQlpZiAob3B0cy0+ZmxhZ3MgJiBNRU5VX09QVFNfU0lOR0xFVE9OKSB7CisJCQlpZiAobnIpCisJCQkJYnJlYWs7CisJCX0gZWxzZSBpZiAob3B0cy0+ZmxhZ3MgJiBNRU5VX09QVFNfSU1NRURJQVRFKSB7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmIChlb2YpIHsKKwkJcmVzdWx0ID0geG1hbGxvYyhzaXplb2YoaW50KSk7CisJCSpyZXN1bHQgPSBFT0Y7CisJfSBlbHNlIHsKKwkJaW50IGogPSAwOworCisJCS8qCisJCSAqIHJlY2FsY3VsYXRlIG5yLCBpZiByZXR1cm4gYmFjayBmcm9tIG1lbnUgZGlyZWN0bHkgd2l0aAorCQkgKiBkZWZhdWx0IHNlbGVjdGlvbnMuCisJCSAqLworCQlpZiAoIW5yKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgc3R1ZmYtPm5yOyBpKyspCisJCQkJbnIgKz0gY2hvc2VuW2ldOworCQl9CisKKwkJcmVzdWx0ID0geG1hbGxvYyhzaXplb2YoaW50KSAqIChuciArIDEpKTsKKwkJbWVtc2V0KHJlc3VsdCwgMCwgc2l6ZW9mKGludCkgKiAobnIgKyAxKSk7CisJCWZvciAoaSA9IDA7IGkgPCBzdHVmZi0+bnIgJiYgaiA8IG5yOyBpKyspIHsKKwkJCWlmIChjaG9zZW5baV0pCisJCQkJcmVzdWx0W2orK10gPSBpOworCQl9CisJCXJlc3VsdFtqXSA9IEVPRjsKKwl9CisKKwlmcmVlKGNob3Nlbik7CisJc3RyYnVmX3JlbGVhc2UoJmNob2ljZSk7CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludCBjbGVhbl9jbWQodm9pZCkKK3sKKwlyZXR1cm4gTUVOVV9SRVRVUk5fTk9fTE9PUDsKK30KKworc3RhdGljIGludCBmaWx0ZXJfYnlfcGF0dGVybnNfY21kKHZvaWQpCit7CisJc3RydWN0IGRpcl9zdHJ1Y3QgZGlyOworCXN0cnVjdCBzdHJidWYgY29uZmlybSA9IFNUUkJVRl9JTklUOworCXN0cnVjdCBzdHJidWYgKippZ25vcmVfbGlzdDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKKwlzdHJ1Y3QgZXhjbHVkZV9saXN0ICplbDsKKwlpbnQgY2hhbmdlZCA9IC0xLCBpOworCisJZm9yICg7OykgeworCQlpZiAoIWRlbF9saXN0Lm5yKQorCQkJYnJlYWs7CisKKwkJaWYgKGNoYW5nZWQpCisJCQlwcmV0dHlfcHJpbnRfZGVscygpOworCisJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX1BST01QVCk7CisJCXByaW50ZihfKCJJbnB1dCBpZ25vcmUgcGF0dGVybnM+PiAiKSk7CisJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX1JFU0VUKTsKKwkJaWYgKHN0cmJ1Zl9nZXRsaW5lKCZjb25maXJtLCBzdGRpbiwgJ1xuJykgIT0gRU9GKQorCQkJc3RyYnVmX3RyaW0oJmNvbmZpcm0pOworCQllbHNlCisJCQlwdXRjaGFyKCdcbicpOworCisJCS8qIHF1aXQgZmlsdGVyX2J5X3BhdHRlcm4gbW9kZSBpZiBwcmVzcyBFTlRFUiBvciBDdHJsLUQgKi8KKwkJaWYgKCFjb25maXJtLmxlbikKKwkJCWJyZWFrOworCisJCW1lbXNldCgmZGlyLCAwLCBzaXplb2YoZGlyKSk7CisJCWVsID0gYWRkX2V4Y2x1ZGVfbGlzdCgmZGlyLCBFWENfQ01ETCwgIm1hbnVhbCBleGNsdWRlIik7CisJCWlnbm9yZV9saXN0ID0gc3RyYnVmX3NwbGl0X21heCgmY29uZmlybSwgJyAnLCAwKTsKKworCQlmb3IgKGkgPSAwOyBpZ25vcmVfbGlzdFtpXTsgaSsrKSB7CisJCQlzdHJidWZfdHJpbShpZ25vcmVfbGlzdFtpXSk7CisJCQlpZiAoIWlnbm9yZV9saXN0W2ldLT5sZW4pCisJCQkJY29udGludWU7CisKKwkJCWFkZF9leGNsdWRlKGlnbm9yZV9saXN0W2ldLT5idWYsICIiLCAwLCBlbCwgLShpKzEpKTsKKwkJfQorCisJCWNoYW5nZWQgPSAwOworCQlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sICZkZWxfbGlzdCkgeworCQkJaW50IGR0eXBlID0gRFRfVU5LTk9XTjsKKworCQkJaWYgKGlzX2V4Y2x1ZGVkKCZkaXIsIGl0ZW0tPnN0cmluZywgJmR0eXBlKSkgeworCQkJCSppdGVtLT5zdHJpbmcgPSAnXDAnOworCQkJCWNoYW5nZWQrKzsKKwkJCX0KKwkJfQorCisJCWlmIChjaGFuZ2VkKSB7CisJCQlzdHJpbmdfbGlzdF9yZW1vdmVfZW1wdHlfaXRlbXMoJmRlbF9saXN0LCAwKTsKKwkJfSBlbHNlIHsKKwkJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX0VSUk9SKTsKKwkJCXByaW50Zl9sbihfKCJXQVJOSU5HOiBDYW5ub3QgZmluZCBpdGVtcyBtYXRjaGVkIGJ5OiAlcyIpLCBjb25maXJtLmJ1Zik7CisJCQljbGVhbl9wcmludF9jb2xvcihDTEVBTl9DT0xPUl9SRVNFVCk7CisJCX0KKworCQlzdHJidWZfbGlzdF9mcmVlKGlnbm9yZV9saXN0KTsKKwkJY2xlYXJfZGlyZWN0b3J5KCZkaXIpOworCX0KKworCXN0cmJ1Zl9yZWxlYXNlKCZjb25maXJtKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZWxlY3RfYnlfbnVtYmVyc19jbWQodm9pZCkKK3sKKwlzdHJ1Y3QgbWVudV9vcHRzIG1lbnVfb3B0czsKKwlzdHJ1Y3QgbWVudV9zdHVmZiBtZW51X3N0dWZmOworCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtczsKKwlpbnQgKmNob3NlbjsKKwlpbnQgaSwgajsKKworCW1lbnVfb3B0cy5oZWFkZXIgPSBOVUxMOworCW1lbnVfb3B0cy5wcm9tcHQgPSBOXygiU2VsZWN0IGl0ZW1zIHRvIGRlbGV0ZSIpOworCW1lbnVfb3B0cy5mbGFncyA9IDA7CisKKwltZW51X3N0dWZmLnR5cGUgPSBNRU5VX1NUVUZGX1RZUEVfU1RSSU5HX0xJU1Q7CisJbWVudV9zdHVmZi5zdHVmZiA9ICZkZWxfbGlzdDsKKwltZW51X3N0dWZmLm5yID0gZGVsX2xpc3QubnI7CisKKwljaG9zZW4gPSBsaXN0X2FuZF9jaG9vc2UoJm1lbnVfb3B0cywgJm1lbnVfc3R1ZmYpOworCWl0ZW1zID0gZGVsX2xpc3QuaXRlbXM7CisJZm9yIChpID0gMCwgaiA9IDA7IGkgPCBkZWxfbGlzdC5ucjsgaSsrKSB7CisJCWlmIChpIDwgY2hvc2VuW2pdKSB7CisJCQkqKGl0ZW1zW2ldLnN0cmluZykgPSAnXDAnOworCQl9IGVsc2UgaWYgKGkgPT0gY2hvc2VuW2pdKSB7CisJCQkvKiBkZWxldGUgc2VsZWN0ZWQgaXRlbSAqLworCQkJaisrOworCQkJY29udGludWU7CisJCX0gZWxzZSB7CisJCQkvKiBlbmQgb2YgY2hvc2VuIChjaG9zZW5bal0gPT0gRU9GKSwgd29uJ3QgZGVsZXRlICovCisJCQkqKGl0ZW1zW2ldLnN0cmluZykgPSAnXDAnOworCQl9CisJfQorCisJc3RyaW5nX2xpc3RfcmVtb3ZlX2VtcHR5X2l0ZW1zKCZkZWxfbGlzdCwgMCk7CisKKwlmcmVlKGNob3Nlbik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXNrX2VhY2hfY21kKHZvaWQpCit7CisJc3RydWN0IHN0cmJ1ZiBjb25maXJtID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKKwljb25zdCBjaGFyICpxbmFtZTsKKwlpbnQgY2hhbmdlZCA9IDAsIGVvZiA9IDA7CisKKwlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sICZkZWxfbGlzdCkgeworCQkvKiBDdHJsLUQgc2hvdWxkIHN0b3AgcmVtb3ZpbmcgZmlsZXMgKi8KKwkJaWYgKCFlb2YpIHsKKwkJCXFuYW1lID0gcXVvdGVfcGF0aF9yZWxhdGl2ZShpdGVtLT5zdHJpbmcsIE5VTEwsICZidWYpOworCQkJcHJpbnRmKF8oInJlbW92ZSAlcz8gIiksIHFuYW1lKTsKKwkJCWlmIChzdHJidWZfZ2V0bGluZSgmY29uZmlybSwgc3RkaW4sICdcbicpICE9IEVPRikgeworCQkJCXN0cmJ1Zl90cmltKCZjb25maXJtKTsKKwkJCX0gZWxzZSB7CisJCQkJcHV0Y2hhcignXG4nKTsKKwkJCQllb2YgPSAxOworCQkJfQorCQl9CisJCWlmICghY29uZmlybS5sZW4gfHwgc3RybmNhc2VjbXAoY29uZmlybS5idWYsICJ5ZXMiLCBjb25maXJtLmxlbikpIHsKKwkJCSppdGVtLT5zdHJpbmcgPSAnXDAnOworCQkJY2hhbmdlZCsrOworCQl9CisJfQorCisJaWYgKGNoYW5nZWQpCisJCXN0cmluZ19saXN0X3JlbW92ZV9lbXB0eV9pdGVtcygmZGVsX2xpc3QsIDApOworCisJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CisJc3RyYnVmX3JlbGVhc2UoJmNvbmZpcm0pOworCXJldHVybiBNRU5VX1JFVFVSTl9OT19MT09QOworfQorCitzdGF0aWMgaW50IHF1aXRfY21kKHZvaWQpCit7CisJc3RyaW5nX2xpc3RfY2xlYXIoJmRlbF9saXN0LCAwKTsKKwlwcmludGZfbG4oXygiQnllLiIpKTsKKwlyZXR1cm4gTUVOVV9SRVRVUk5fTk9fTE9PUDsKK30KKworc3RhdGljIGludCBoZWxwX2NtZCh2b2lkKQoreworCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX0hFTFApOworCXByaW50Zl9sbihfKAorCQkgICAgImNsZWFuICAgICAgICAgICAgICAgLSBzdGFydCBjbGVhbmluZ1xuIgorCQkgICAgImZpbHRlciBieSBwYXR0ZXJuICAgLSBleGNsdWRlIGl0ZW1zIGZyb20gZGVsZXRpb25cbiIKKwkJICAgICJzZWxlY3QgYnkgbnVtYmVycyAgIC0gc2VsZWN0IGl0ZW1zIHRvIGJlIGRlbGV0ZWQgYnkgbnVtYmVyc1xuIgorCQkgICAgImFzayBlYWNoICAgICAgICAgICAgLSBjb25maXJtIGVhY2ggZGVsZXRpb24gKGxpa2UgXCJybSAtaVwiKVxuIgorCQkgICAgInF1aXQgICAgICAgICAgICAgICAgLSBzdG9wIGNsZWFuaW5nXG4iCisJCSAgICAiaGVscCAgICAgICAgICAgICAgICAtIHRoaXMgc2NyZWVuXG4iCisJCSAgICAiPyAgICAgICAgICAgICAgICAgICAtIGhlbHAgZm9yIHByb21wdCBzZWxlY3Rpb24iCisJCSAgICkpOworCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX1JFU0VUKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaW50ZXJhY3RpdmVfbWFpbl9sb29wKHZvaWQpCit7CisJd2hpbGUgKGRlbF9saXN0Lm5yKSB7CisJCXN0cnVjdCBtZW51X29wdHMgbWVudV9vcHRzOworCQlzdHJ1Y3QgbWVudV9zdHVmZiBtZW51X3N0dWZmOworCQlzdHJ1Y3QgbWVudV9pdGVtIG1lbnVzW10gPSB7CisJCQl7J2MnLCAiY2xlYW4iLAkJCTAsIGNsZWFuX2NtZH0sCisJCQl7J2YnLCAiZmlsdGVyIGJ5IHBhdHRlcm4iLAkwLCBmaWx0ZXJfYnlfcGF0dGVybnNfY21kfSwKKwkJCXsncycsICJzZWxlY3QgYnkgbnVtYmVycyIsCTAsIHNlbGVjdF9ieV9udW1iZXJzX2NtZH0sCisJCQl7J2EnLCAiYXNrIGVhY2giLAkJMCwgYXNrX2VhY2hfY21kfSwKKwkJCXsncScsICJxdWl0IiwJCQkwLCBxdWl0X2NtZH0sCisJCQl7J2gnLCAiaGVscCIsCQkJMCwgaGVscF9jbWR9LAorCQl9OworCQlpbnQgKmNob3NlbjsKKworCQltZW51X29wdHMuaGVhZGVyID0gTl8oIioqKiBDb21tYW5kcyAqKioiKTsKKwkJbWVudV9vcHRzLnByb21wdCA9IE5fKCJXaGF0IG5vdyIpOworCQltZW51X29wdHMuZmxhZ3MgPSBNRU5VX09QVFNfU0lOR0xFVE9OOworCisJCW1lbnVfc3R1ZmYudHlwZSA9IE1FTlVfU1RVRkZfVFlQRV9NRU5VX0lURU07CisJCW1lbnVfc3R1ZmYuc3R1ZmYgPSBtZW51czsKKwkJbWVudV9zdHVmZi5uciA9IHNpemVvZihtZW51cykgLyBzaXplb2Yoc3RydWN0IG1lbnVfaXRlbSk7CisKKwkJY2xlYW5fcHJpbnRfY29sb3IoQ0xFQU5fQ09MT1JfSEVBREVSKTsKKwkJcHJpbnRmX2xuKFFfKCJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtOiIsCisJCQkgICAgICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtczoiLAorCQkJICAgICBkZWxfbGlzdC5ucikpOworCQljbGVhbl9wcmludF9jb2xvcihDTEVBTl9DT0xPUl9SRVNFVCk7CisKKwkJcHJldHR5X3ByaW50X2RlbHMoKTsKKworCQljaG9zZW4gPSBsaXN0X2FuZF9jaG9vc2UoJm1lbnVfb3B0cywgJm1lbnVfc3R1ZmYpOworCisJCWlmICgqY2hvc2VuICE9IEVPRikgeworCQkJaW50IHJldDsKKwkJCXJldCA9IG1lbnVzWypjaG9zZW5dLmZuKCk7CisJCQlpZiAocmV0ICE9IE1FTlVfUkVUVVJOX05PX0xPT1ApIHsKKwkJCQlmcmVlKGNob3Nlbik7CisJCQkJY2hvc2VuID0gTlVMTDsKKwkJCQlpZiAoIWRlbF9saXN0Lm5yKSB7CisJCQkJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX0VSUk9SKTsKKwkJCQkJcHJpbnRmX2xuKF8oIk5vIG1vcmUgZmlsZXMgdG8gY2xlYW4sIGV4aXRpbmcuIikpOworCQkJCQljbGVhbl9wcmludF9jb2xvcihDTEVBTl9DT0xPUl9SRVNFVCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCXF1aXRfY21kKCk7CisJCX0KKworCQlmcmVlKGNob3Nlbik7CisJCWNob3NlbiA9IE5VTEw7CisJCWJyZWFrOworCX0KK30KKwogaW50IGNtZF9jbGVhbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKIAlpbnQgaSwgcmVzOwogCWludCBkcnlfcnVuID0gMCwgcmVtb3ZlX2RpcmVjdG9yaWVzID0gMCwgcXVpZXQgPSAwLCBpZ25vcmVkID0gMDsKIAlpbnQgaWdub3JlZF9vbmx5ID0gMCwgY29uZmlnX3NldCA9IDAsIGVycm9ycyA9IDAsIGdvbmUgPSAxOwogCWludCBybV9mbGFncyA9IFJFTU9WRV9ESVJfS0VFUF9ORVNURURfR0lUOwotCXN0cnVjdCBzdHJidWYgZGlyZWN0b3J5ID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHN0cmJ1ZiBhYnNfcGF0aCA9IFNUUkJVRl9JTklUOwogCXN0cnVjdCBkaXJfc3RydWN0IGRpcjsKIAlzdGF0aWMgY29uc3QgY2hhciAqKnBhdGhzcGVjOwogCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CiAJc3RydWN0IHN0cmluZ19saXN0IGV4Y2x1ZGVfbGlzdCA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CiAJc3RydWN0IGV4Y2x1ZGVfbGlzdCAqZWw7CisJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW07CiAJY29uc3QgY2hhciAqcW5hbWU7CiAJY2hhciAqc2VlbiA9IE5VTEw7CiAJc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CiAJCU9QVF9fUVVJRVQoJnF1aWV0LCBOXygiZG8gbm90IHByaW50IG5hbWVzIG9mIGZpbGVzIHJlbW92ZWQiKSksCiAJCU9QVF9fRFJZX1JVTigmZHJ5X3J1biwgTl8oImRyeSBydW4iKSksCiAJCU9QVF9fRk9SQ0UoJmZvcmNlLCBOXygiZm9yY2UiKSksCisJCU9QVF9CT09MKCdpJywgImludGVyYWN0aXZlIiwgJmludGVyYWN0aXZlLCBOXygiaW50ZXJhY3RpdmUgY2xlYW5pbmciKSksCiAJCU9QVF9CT09MRUFOKCdkJywgTlVMTCwgJnJlbW92ZV9kaXJlY3RvcmllcywKIAkJCQlOXygicmVtb3ZlIHdob2xlIGRpcmVjdG9yaWVzIikpLAogCQl7IE9QVElPTl9DQUxMQkFDSywgJ2UnLCAiZXhjbHVkZSIsICZleGNsdWRlX2xpc3QsIE5fKCJwYXR0ZXJuIiksCkBAIC0xODYsMTIgKzkwMSwxMiBAQAogCWlmIChpZ25vcmVkICYmIGlnbm9yZWRfb25seSkKIAkJZGllKF8oIi14IGFuZCAtWCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIpKTsKIAotCWlmICghZHJ5X3J1biAmJiAhZm9yY2UpIHsKKwlpZiAoIWludGVyYWN0aXZlICYmICFkcnlfcnVuICYmICFmb3JjZSkgewogCQlpZiAoY29uZmlnX3NldCkKLQkJCWRpZShfKCJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLW4gbm9yIC1mIGdpdmVuOyAiCisJCQlkaWUoXygiY2xlYW4ucmVxdWlyZUZvcmNlIHNldCB0byB0cnVlIGFuZCBuZWl0aGVyIC1pLCAtbiBub3IgLWYgZ2l2ZW47ICIKIAkJCQkgICJyZWZ1c2luZyB0byBjbGVhbiIpKTsKIAkJZWxzZQotCQkJZGllKF8oImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgIgorCQkJZGllKF8oImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1pLCAtbiBub3IgLWYgZ2l2ZW47ICIKIAkJCQkgICJyZWZ1c2luZyB0byBjbGVhbiIpKTsKIAl9CiAKQEAgLTIyMSw4ICs5MzYsOSBAQAogCQlzdHJ1Y3QgZGlyX2VudHJ5ICplbnQgPSBkaXIuZW50cmllc1tpXTsKIAkJaW50IGxlbiwgcG9zOwogCQlpbnQgbWF0Y2hlcyA9IDA7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CiAJCXN0cnVjdCBzdGF0IHN0OworCQljb25zdCBjaGFyICpyZWw7CiAKIAkJLyoKIAkJICogUmVtb3ZlIHRoZSAnLycgYXQgdGhlIGVuZCB0aGF0IGRpcmVjdG9yeQpAQCAtMjQyLDEzICs5NTgsOCBAQAogCQkJCWNvbnRpbnVlOyAvKiBZdXAsIHRoaXMgb25lIGV4aXN0cyB1bm1lcmdlZCAqLwogCQl9CiAKLQkJLyoKLQkJICogd2UgbWlnaHQgaGF2ZSByZW1vdmVkIHRoaXMgYXMgcGFydCBvZiBlYXJsaWVyCi0JCSAqIHJlY3Vyc2l2ZSBkaXJlY3RvcnkgcmVtb3ZhbCwgc28gbHN0YXQoKSBoZXJlIGNvdWxkCi0JCSAqIGZhaWwgd2l0aCBFTk9FTlQuCi0JCSAqLwogCQlpZiAobHN0YXQoZW50LT5uYW1lLCAmc3QpKQotCQkJY29udGludWU7CisJCQlkaWVfZXJybm8oIkNhbm5vdCBsc3RhdCAnJXMnIiwgZW50LT5uYW1lKTsKIAogCQlpZiAocGF0aHNwZWMpIHsKIAkJCW1lbXNldChzZWVuLCAwLCBhcmdjID4gMCA/IGFyZ2MgOiAxKTsKQEAgLTI1NywzMyArOTY4LDYyIEBACiAJCX0KIAogCQlpZiAoU19JU0RJUihzdC5zdF9tb2RlKSkgewotCQkJc3RyYnVmX2FkZHN0cigmZGlyZWN0b3J5LCBlbnQtPm5hbWUpOwogCQkJaWYgKHJlbW92ZV9kaXJlY3RvcmllcyB8fCAobWF0Y2hlcyA9PSBNQVRDSEVEX0VYQUNUTFkpKSB7Ci0JCQkJaWYgKHJlbW92ZV9kaXJzKCZkaXJlY3RvcnksIHByZWZpeCwgcm1fZmxhZ3MsIGRyeV9ydW4sIHF1aWV0LCAmZ29uZSkpCi0JCQkJCWVycm9ycysrOwotCQkJCWlmIChnb25lICYmICFxdWlldCkgewotCQkJCQlxbmFtZSA9IHF1b3RlX3BhdGhfcmVsYXRpdmUoZGlyZWN0b3J5LmJ1ZiwgZGlyZWN0b3J5LmxlbiwgJmJ1ZiwgcHJlZml4KTsKLQkJCQkJcHJpbnRmKGRyeV9ydW4gPyBfKG1zZ193b3VsZF9yZW1vdmUpIDogXyhtc2dfcmVtb3ZlKSwgcW5hbWUpOwotCQkJCX0KKwkJCQlyZWwgPSByZWxhdGl2ZV9wYXRoKGVudC0+bmFtZSwgcHJlZml4LCAmYnVmKTsKKwkJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmRlbF9saXN0LCByZWwpOwogCQkJfQotCQkJc3RyYnVmX3Jlc2V0KCZkaXJlY3RvcnkpOwogCQl9IGVsc2UgewogCQkJaWYgKHBhdGhzcGVjICYmICFtYXRjaGVzKQogCQkJCWNvbnRpbnVlOwotCQkJcmVzID0gZHJ5X3J1biA/IDAgOiB1bmxpbmsoZW50LT5uYW1lKTsKKwkJCXJlbCA9IHJlbGF0aXZlX3BhdGgoZW50LT5uYW1lLCBwcmVmaXgsICZidWYpOworCQkJc3RyaW5nX2xpc3RfYXBwZW5kKCZkZWxfbGlzdCwgcmVsKTsKKwkJfQorCX0KKworCWlmIChpbnRlcmFjdGl2ZSAmJiBkZWxfbGlzdC5uciA+IDApCisJCWludGVyYWN0aXZlX21haW5fbG9vcCgpOworCisJZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShpdGVtLCAmZGVsX2xpc3QpIHsKKwkJc3RydWN0IHN0YXQgc3Q7CisKKwkJaWYgKHByZWZpeCkKKwkJCXN0cmJ1Zl9hZGRzdHIoJmFic19wYXRoLCBwcmVmaXgpOworCisJCXN0cmJ1Zl9hZGRzdHIoJmFic19wYXRoLCBpdGVtLT5zdHJpbmcpOworCisJCS8qCisJCSAqIHdlIG1pZ2h0IGhhdmUgcmVtb3ZlZCB0aGlzIGFzIHBhcnQgb2YgZWFybGllcgorCQkgKiByZWN1cnNpdmUgZGlyZWN0b3J5IHJlbW92YWwsIHNvIGxzdGF0KCkgaGVyZSBjb3VsZAorCQkgKiBmYWlsIHdpdGggRU5PRU5ULgorCQkgKi8KKwkJaWYgKGxzdGF0KGFic19wYXRoLmJ1ZiwgJnN0KSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChTX0lTRElSKHN0LnN0X21vZGUpKSB7CisJCQlpZiAocmVtb3ZlX2RpcnMoJmFic19wYXRoLCBwcmVmaXgsIHJtX2ZsYWdzLCBkcnlfcnVuLCBxdWlldCwgJmdvbmUpKQorCQkJCWVycm9ycysrOworCQkJaWYgKGdvbmUgJiYgIXF1aWV0KSB7CisJCQkJcW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKGl0ZW0tPnN0cmluZywgTlVMTCwgJmJ1Zik7CisJCQkJcHJpbnRmKGRyeV9ydW4gPyBfKG1zZ193b3VsZF9yZW1vdmUpIDogXyhtc2dfcmVtb3ZlKSwgcW5hbWUpOworCQkJfQorCQl9IGVsc2UgeworCQkJcmVzID0gZHJ5X3J1biA/IDAgOiB1bmxpbmsoYWJzX3BhdGguYnVmKTsKIAkJCWlmIChyZXMpIHsKLQkJCQlxbmFtZSA9IHF1b3RlX3BhdGhfcmVsYXRpdmUoZW50LT5uYW1lLCAtMSwgJmJ1ZiwgcHJlZml4KTsKKwkJCQlxbmFtZSA9IHF1b3RlX3BhdGhfcmVsYXRpdmUoaXRlbS0+c3RyaW5nLCBOVUxMLCAmYnVmKTsKIAkJCQl3YXJuaW5nKF8obXNnX3dhcm5fcmVtb3ZlX2ZhaWxlZCksIHFuYW1lKTsKIAkJCQllcnJvcnMrKzsKIAkJCX0gZWxzZSBpZiAoIXF1aWV0KSB7Ci0JCQkJcW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKGVudC0+bmFtZSwgLTEsICZidWYsIHByZWZpeCk7CisJCQkJcW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKGl0ZW0tPnN0cmluZywgTlVMTCwgJmJ1Zik7CiAJCQkJcHJpbnRmKGRyeV9ydW4gPyBfKG1zZ193b3VsZF9yZW1vdmUpIDogXyhtc2dfcmVtb3ZlKSwgcW5hbWUpOwogCQkJfQogCQl9CisJCXN0cmJ1Zl9yZXNldCgmYWJzX3BhdGgpOwogCX0KIAlmcmVlKHNlZW4pOwogCi0Jc3RyYnVmX3JlbGVhc2UoJmRpcmVjdG9yeSk7CisJc3RyYnVmX3JlbGVhc2UoJmFic19wYXRoKTsKKwlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwlzdHJpbmdfbGlzdF9jbGVhcigmZGVsX2xpc3QsIDApOwogCXN0cmluZ19saXN0X2NsZWFyKCZleGNsdWRlX2xpc3QsIDApOwogCXJldHVybiAoZXJyb3JzICE9IDApOwogfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9jbG9uZS5jIGIvYnVpbHRpbi9jbG9uZS5jCmluZGV4IDAzNWFiNjQuLjQzMDMwN2IgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY2xvbmUuYworKysgYi9idWlsdGluL2Nsb25lLmMKQEAgLTE4LDcgKzE4LDYgQEAKICNpbmNsdWRlICJ0cmFuc3BvcnQuaCIKICNpbmNsdWRlICJzdHJidWYuaCIKICNpbmNsdWRlICJkaXIuaCIKLSNpbmNsdWRlICJwYWNrLXJlZnMuaCIKICNpbmNsdWRlICJzaWdjaGFpbi5oIgogI2luY2x1ZGUgImJyYW5jaC5oIgogI2luY2x1ZGUgInJlbW90ZS5oIgpAQCAtNDk0LDEzICs0OTMsMTYgQEAKIHsKIAljb25zdCBzdHJ1Y3QgcmVmICpyOwogCisJbG9ja19wYWNrZWRfcmVmcyhMT0NLX0RJRV9PTl9FUlJPUik7CisKIAlmb3IgKHIgPSBsb2NhbF9yZWZzOyByOyByID0gci0+bmV4dCkgewogCQlpZiAoIXItPnBlZXJfcmVmKQogCQkJY29udGludWU7CiAJCWFkZF9wYWNrZWRfcmVmKHItPnBlZXJfcmVmLT5uYW1lLCByLT5vbGRfc2hhMSk7CiAJfQogCi0JcGFja19yZWZzKFBBQ0tfUkVGU19BTEwpOworCWlmIChjb21taXRfcGFja2VkX3JlZnMoKSkKKwkJZGllX2Vycm5vKCJ1bmFibGUgdG8gb3ZlcndyaXRlIG9sZCByZWYtcGFjayBmaWxlIik7CiB9CiAKIHN0YXRpYyB2b2lkIHdyaXRlX2ZvbGxvd3RhZ3MoY29uc3Qgc3RydWN0IHJlZiAqcmVmcywgY29uc3QgY2hhciAqbXNnKQpAQCAtNTQyLDEyICs1NDQsMjEgQEAKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgcmVmICptYXBwZWRfcmVmcywKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgcmVmICpyZW1vdGVfaGVhZF9wb2ludHNfYXQsCiAJCQkgICAgICAgY29uc3QgY2hhciAqYnJhbmNoX3RvcCwKLQkJCSAgICAgICBjb25zdCBjaGFyICptc2cpCisJCQkgICAgICAgY29uc3QgY2hhciAqbXNnLAorCQkJICAgICAgIHN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydCwKKwkJCSAgICAgICBpbnQgY2hlY2tfY29ubmVjdGl2aXR5KQogewogCWNvbnN0IHN0cnVjdCByZWYgKnJtID0gbWFwcGVkX3JlZnM7CiAKLQlpZiAoY2hlY2tfZXZlcnl0aGluZ19jb25uZWN0ZWQoaXRlcmF0ZV9yZWZfbWFwLCAwLCAmcm0pKQotCQlkaWUoXygicmVtb3RlIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHMiKSk7CisJaWYgKGNoZWNrX2Nvbm5lY3Rpdml0eSkgeworCQlpZiAoMCA8PSBvcHRpb25fdmVyYm9zaXR5KQorCQkJcHJpbnRmKF8oIkNoZWNraW5nIGNvbm5lY3Rpdml0eS4uLiAiKSk7CisJCWlmIChjaGVja19ldmVyeXRoaW5nX2Nvbm5lY3RlZF93aXRoX3RyYW5zcG9ydChpdGVyYXRlX3JlZl9tYXAsCisJCQkJCQkJICAgICAgMCwgJnJtLCB0cmFuc3BvcnQpKQorCQkJZGllKF8oInJlbW90ZSBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzIikpOworCQlpZiAoMCA8PSBvcHRpb25fdmVyYm9zaXR5KQorCQkJcHJpbnRmKF8oImRvbmVcbiIpKTsKKwl9CiAKIAlpZiAocmVmcykgewogCQl3cml0ZV9yZW1vdGVfcmVmcyhtYXBwZWRfcmVmcyk7CkBAIC02OTMsNyArNzA0LDcgQEAKIAkJCS8qCiAJCQkgKiBvdGhlcndpc2UsIHRoZSBuZXh0ICJnaXQgZmV0Y2giIHdpbGwKIAkJCSAqIHNpbXBseSBmZXRjaCBmcm9tIEhFQUQgd2l0aG91dCB1cGRhdGluZwotCQkJICogYW55IHJlbW90ZSB0cmFja2luZyBicmFuY2gsIHdoaWNoIGlzIHdoYXQKKwkJCSAqIGFueSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoLCB3aGljaCBpcyB3aGF0CiAJCQkgKiB3ZSB3YW50LgogCQkJICovCiAJCX0gZWxzZSB7CkBAIC03ODMsNiArNzk0LDggQEAKIAlpc19sb2NhbCA9IG9wdGlvbl9sb2NhbCAhPSAwICYmIHBhdGggJiYgIWlzX2J1bmRsZTsKIAlpZiAoaXNfbG9jYWwgJiYgb3B0aW9uX2RlcHRoKQogCQl3YXJuaW5nKF8oIi0tZGVwdGggaXMgaWdub3JlZCBpbiBsb2NhbCBjbG9uZXM7IHVzZSBmaWxlOi8vIGluc3RlYWQuIikpOworCWlmIChvcHRpb25fbG9jYWwgPiAwICYmICFpc19sb2NhbCkKKwkJd2FybmluZyhfKCItLWxvY2FsIGlzIGlnbm9yZWQiKSk7CiAKIAlpZiAoYXJnYyA9PSAyKQogCQlkaXIgPSB4c3RyZHVwKGFyZ3ZbMV0pOwpAQCAtODg5LDYgKzkwMiw5IEBACiAJCWlmIChvcHRpb25fdXBsb2FkX3BhY2spCiAJCQl0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9VUExPQURQQUNLLAogCQkJCQkgICAgIG9wdGlvbl91cGxvYWRfcGFjayk7CisKKwkJaWYgKHRyYW5zcG9ydC0+c21hcnRfb3B0aW9ucyAmJiAhb3B0aW9uX2RlcHRoKQorCQkJdHJhbnNwb3J0LT5zbWFydF9vcHRpb25zLT5jaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkID0gMTsKIAl9CiAKIAlyZWZzID0gdHJhbnNwb3J0X2dldF9yZW1vdGVfcmVmcyh0cmFuc3BvcnQpOwpAQCAtOTUwLDcgKzk2Niw3IEBACiAJCXRyYW5zcG9ydF9mZXRjaF9yZWZzKHRyYW5zcG9ydCwgbWFwcGVkX3JlZnMpOwogCiAJdXBkYXRlX3JlbW90ZV9yZWZzKHJlZnMsIG1hcHBlZF9yZWZzLCByZW1vdGVfaGVhZF9wb2ludHNfYXQsCi0JCQkgICBicmFuY2hfdG9wLmJ1ZiwgcmVmbG9nX21zZy5idWYpOworCQkJICAgYnJhbmNoX3RvcC5idWYsIHJlZmxvZ19tc2cuYnVmLCB0cmFuc3BvcnQsICFpc19sb2NhbCk7CiAKIAl1cGRhdGVfaGVhZChvdXJfaGVhZF9wb2ludHNfYXQsIHJlbW90ZV9oZWFkLCByZWZsb2dfbXNnLmJ1Zik7CiAKZGlmZiAtLWdpdCBhL2J1aWx0aW4vY29tbWl0LmMgYi9idWlsdGluL2NvbW1pdC5jCmluZGV4IGQyZjMwZDkuLjEwYWNjNTMgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY29tbWl0LmMKKysrIGIvYnVpbHRpbi9jb21taXQuYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgImdwZy1pbnRlcmZhY2UuaCIKICNpbmNsdWRlICJjb2x1bW4uaCIKICNpbmNsdWRlICJzZXF1ZW5jZXIuaCIKKyNpbmNsdWRlICJub3Rlcy11dGlscy5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGJ1aWx0aW5fY29tbWl0X3VzYWdlW10gPSB7CiAJTl8oImdpdCBjb21taXQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIpLApAQCAtNjIsOCArNjMsMTggQEAKICJJZiB5b3Ugd2lzaCB0byBjb21taXQgaXQgYW55d2F5LCB1c2U6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgorIlxuIik7CisKK3N0YXRpYyBjb25zdCBjaGFyIGVtcHR5X2NoZXJyeV9waWNrX2FkdmljZV9zaW5nbGVbXSA9CitOXygiT3RoZXJ3aXNlLCBwbGVhc2UgdXNlICdnaXQgcmVzZXQnXG4iKTsKKworc3RhdGljIGNvbnN0IGNoYXIgZW1wdHlfY2hlcnJ5X3BpY2tfYWR2aWNlX211bHRpW10gPQorTl8oIklmIHlvdSB3aXNoIHRvIHNraXAgdGhpcyBjb21taXQsIHVzZTpcbiIKICJcbiIKLSJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIpOworIiAgICBnaXQgcmVzZXRcbiIKKyJcbiIKKyJUaGVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIiB3aWxsIHJlc3VtZSBjaGVycnktcGlja2luZ1xuIgorInRoZSByZW1haW5pbmcgY29tbWl0cy5cbiIpOwogCiBzdGF0aWMgY29uc3QgY2hhciAqdXNlX21lc3NhZ2VfYnVmZmVyOwogc3RhdGljIGNvbnN0IGNoYXIgY29tbWl0X2VkaXRtc2dbXSA9ICJDT01NSVRfRURJVE1TRyI7CkBAIC0xMDYsMjQgKzExNywyOSBAQAogc3RhdGljIGNvbnN0IGNoYXIgKmNsZWFudXBfYXJnOwogCiBzdGF0aWMgZW51bSBjb21taXRfd2hlbmNlIHdoZW5jZTsKK3N0YXRpYyBpbnQgc2VxdWVuY2VyX2luX3VzZTsKIHN0YXRpYyBpbnQgdXNlX2VkaXRvciA9IDEsIGluY2x1ZGVfc3RhdHVzID0gMTsKLXN0YXRpYyBpbnQgc2hvd19pZ25vcmVkX2luX3N0YXR1czsKK3N0YXRpYyBpbnQgc2hvd19pZ25vcmVkX2luX3N0YXR1cywgaGF2ZV9vcHRpb25fbTsKIHN0YXRpYyBjb25zdCBjaGFyICpvbmx5X2luY2x1ZGVfYXNzdW1lZDsKIHN0YXRpYyBzdHJ1Y3Qgc3RyYnVmIG1lc3NhZ2UgPSBTVFJCVUZfSU5JVDsKIAotc3RhdGljIGVudW0geworc3RhdGljIGVudW0gc3RhdHVzX2Zvcm1hdCB7CiAJU1RBVFVTX0ZPUk1BVF9OT05FID0gMCwKIAlTVEFUVVNfRk9STUFUX0xPTkcsCiAJU1RBVFVTX0ZPUk1BVF9TSE9SVCwKLQlTVEFUVVNfRk9STUFUX1BPUkNFTEFJTgotfSBzdGF0dXNfZm9ybWF0OworCVNUQVRVU19GT1JNQVRfUE9SQ0VMQUlOLAorCisJU1RBVFVTX0ZPUk1BVF9VTlNQRUNJRklFRAorfSBzdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9VTlNQRUNJRklFRDsKIAogc3RhdGljIGludCBvcHRfcGFyc2VfbShjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsIGNvbnN0IGNoYXIgKmFyZywgaW50IHVuc2V0KQogewogCXN0cnVjdCBzdHJidWYgKmJ1ZiA9IG9wdC0+dmFsdWU7Ci0JaWYgKHVuc2V0KQorCWlmICh1bnNldCkgeworCQloYXZlX29wdGlvbl9tID0gMDsKIAkJc3RyYnVmX3NldGxlbihidWYsIDApOwotCWVsc2UgeworCX0gZWxzZSB7CisJCWhhdmVfb3B0aW9uX20gPSAxOwogCQlpZiAoYnVmLT5sZW4pCiAJCQlzdHJidWZfYWRkY2goYnVmLCAnXG4nKTsKIAkJc3RyYnVmX2FkZHN0cihidWYsIGFyZyk7CkBAIC0xMzYsOCArMTUyLDExIEBACiB7CiAJaWYgKGZpbGVfZXhpc3RzKGdpdF9wYXRoKCJNRVJHRV9IRUFEIikpKQogCQl3aGVuY2UgPSBGUk9NX01FUkdFOwotCWVsc2UgaWYgKGZpbGVfZXhpc3RzKGdpdF9wYXRoKCJDSEVSUllfUElDS19IRUFEIikpKQorCWVsc2UgaWYgKGZpbGVfZXhpc3RzKGdpdF9wYXRoKCJDSEVSUllfUElDS19IRUFEIikpKSB7CiAJCXdoZW5jZSA9IEZST01fQ0hFUlJZX1BJQ0s7CisJCWlmIChmaWxlX2V4aXN0cyhnaXRfcGF0aCgic2VxdWVuY2VyIikpKQorCQkJc2VxdWVuY2VyX2luX3VzZSA9IDE7CisJfQogCWVsc2UKIAkJd2hlbmNlID0gRlJPTV9DT01NSVQ7CiAJaWYgKHMpCkBAIC0yMDIsNyArMjIxLDcgQEAKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW07CiAKIAkJaWYgKGNlLT5jZV9mbGFncyAmIENFX1VQREFURSkKQEAgLTQ1Nyw2ICs0NzYsOSBAQAogCWNhc2UgU1RBVFVTX0ZPUk1BVF9QT1JDRUxBSU46CiAJCXd0X3BvcmNlbGFpbl9wcmludChzKTsKIAkJYnJlYWs7CisJY2FzZSBTVEFUVVNfRk9STUFUX1VOU1BFQ0lGSUVEOgorCQlkaWUoIkJVRzogZmluYWxpemVfZGVmZXJyZWRfY29uZmlnKCkgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQiKTsKKwkJYnJlYWs7CiAJY2FzZSBTVEFUVVNfRk9STUFUX05PTkU6CiAJY2FzZSBTVEFUVVNfRk9STUFUX0xPTkc6CiAJCXd0X3N0YXR1c19wcmludChzKTsKQEAgLTUyNiw3ICs1NDgsNiBAQAogCQkJCQkobGIgLSBzdHJsZW4oIiAiKSAtCiAJCQkJCSAoYSArIHN0cmxlbigiXG5hdXRob3IgIikpKSk7CiAJCWVtYWlsID0geG1lbWR1cHoobGIgKyBzdHJsZW4oIjwiKSwgcmIgLSAobGIgKyBzdHJsZW4oIjwiKSkpOwotCQlkYXRlID0geG1lbWR1cHoocmIgKyBzdHJsZW4oIj4gIiksIGVvbCAtIChyYiArIHN0cmxlbigiPiAiKSkpOwogCQlsZW4gPSBlb2wgLSAocmIgKyBzdHJsZW4oIj4gIikpOwogCQlkYXRlID0geG1hbGxvYyhsZW4gKyAyKTsKIAkJKmRhdGUgPSAnQCc7CkBAIC04MDMsOCArODI0LDEzIEBACiAJCXJ1bl9zdGF0dXMoc3Rkb3V0LCBpbmRleF9maWxlLCBwcmVmaXgsIDAsIHMpOwogCQlpZiAoYW1lbmQpCiAJCQlmcHV0cyhfKGVtcHR5X2FtZW5kX2FkdmljZSksIHN0ZGVycik7Ci0JCWVsc2UgaWYgKHdoZW5jZSA9PSBGUk9NX0NIRVJSWV9QSUNLKQorCQllbHNlIGlmICh3aGVuY2UgPT0gRlJPTV9DSEVSUllfUElDSykgewogCQkJZnB1dHMoXyhlbXB0eV9jaGVycnlfcGlja19hZHZpY2UpLCBzdGRlcnIpOworCQkJaWYgKCFzZXF1ZW5jZXJfaW5fdXNlKQorCQkJCWZwdXRzKF8oZW1wdHlfY2hlcnJ5X3BpY2tfYWR2aWNlX3NpbmdsZSksIHN0ZGVycik7CisJCQllbHNlCisJCQkJZnB1dHMoXyhlbXB0eV9jaGVycnlfcGlja19hZHZpY2VfbXVsdGkpLCBzdGRlcnIpOworCQl9CiAJCXJldHVybiAwOwogCX0KIApAQCAtOTU4LDYgKzk4NCw0MiBAQAogCXJldHVybiBsb2dtc2dfcmVlbmNvZGUoY29tbWl0LCBOVUxMLCBvdXRfZW5jKTsKIH0KIAorLyoKKyAqIEVudW1lcmF0ZSB3aGF0IG5lZWRzIHRvIGJlIHByb3BhZ2F0ZWQgd2hlbiAtLXBvcmNlbGFpbgorICogaXMgbm90IGluIGVmZmVjdCBoZXJlLgorICovCitzdGF0aWMgc3RydWN0IHN0YXR1c19kZWZlcnJlZF9jb25maWcgeworCWVudW0gc3RhdHVzX2Zvcm1hdCBzdGF0dXNfZm9ybWF0OworCWludCBzaG93X2JyYW5jaDsKK30gc3RhdHVzX2RlZmVycmVkX2NvbmZpZyA9IHsKKwlTVEFUVVNfRk9STUFUX1VOU1BFQ0lGSUVELAorCS0xIC8qIHVuc3BlY2lmaWVkICovCit9OworCitzdGF0aWMgdm9pZCBmaW5hbGl6ZV9kZWZlcnJlZF9jb25maWcoc3RydWN0IHd0X3N0YXR1cyAqcykKK3sKKwlpbnQgdXNlX2RlZmVycmVkX2NvbmZpZyA9IChzdGF0dXNfZm9ybWF0ICE9IFNUQVRVU19GT1JNQVRfUE9SQ0VMQUlOICYmCisJCQkJICAgIXMtPm51bGxfdGVybWluYXRpb24pOworCisJaWYgKHMtPm51bGxfdGVybWluYXRpb24pIHsKKwkJaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9OT05FIHx8CisJCSAgICBzdGF0dXNfZm9ybWF0ID09IFNUQVRVU19GT1JNQVRfVU5TUEVDSUZJRUQpCisJCQlzdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9QT1JDRUxBSU47CisJCWVsc2UgaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9MT05HKQorCQkJZGllKF8oIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIpKTsKKwl9CisKKwlpZiAodXNlX2RlZmVycmVkX2NvbmZpZyAmJiBzdGF0dXNfZm9ybWF0ID09IFNUQVRVU19GT1JNQVRfVU5TUEVDSUZJRUQpCisJCXN0YXR1c19mb3JtYXQgPSBzdGF0dXNfZGVmZXJyZWRfY29uZmlnLnN0YXR1c19mb3JtYXQ7CisJaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9VTlNQRUNJRklFRCkKKwkJc3RhdHVzX2Zvcm1hdCA9IFNUQVRVU19GT1JNQVRfTk9ORTsKKworCWlmICh1c2VfZGVmZXJyZWRfY29uZmlnICYmIHMtPnNob3dfYnJhbmNoIDwgMCkKKwkJcy0+c2hvd19icmFuY2ggPSBzdGF0dXNfZGVmZXJyZWRfY29uZmlnLnNob3dfYnJhbmNoOworCWlmIChzLT5zaG93X2JyYW5jaCA8IDApCisJCXMtPnNob3dfYnJhbmNoID0gMDsKK30KKwogc3RhdGljIGludCBwYXJzZV9hbmRfdmFsaWRhdGVfb3B0aW9ucyhpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdLAogCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdGlvbnMsCiAJCQkJICAgICAgY29uc3QgY2hhciAqIGNvbnN0IHVzYWdlW10sCkBAIC05NjgsNiArMTAzMCw3IEBACiAJaW50IGYgPSAwOwogCiAJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBvcHRpb25zLCB1c2FnZSwgMCk7CisJZmluYWxpemVfZGVmZXJyZWRfY29uZmlnKHMpOwogCiAJaWYgKGZvcmNlX2F1dGhvciAmJiAhc3RyY2hyKGZvcmNlX2F1dGhvciwgJz4nKSkKIAkJZm9yY2VfYXV0aG9yID0gZmluZF9hdXRob3JfYnlfbmlja25hbWUoZm9yY2VfYXV0aG9yKTsKQEAgLTk3NSw3ICsxMDM4LDcgQEAKIAlpZiAoZm9yY2VfYXV0aG9yICYmIHJlbmV3X2F1dGhvcnNoaXApCiAJCWRpZShfKCJVc2luZyBib3RoIC0tcmVzZXQtYXV0aG9yIGFuZCAtLWF1dGhvciBkb2VzIG5vdCBtYWtlIHNlbnNlIikpOwogCi0JaWYgKGxvZ2ZpbGUgfHwgbWVzc2FnZS5sZW4gfHwgdXNlX21lc3NhZ2UgfHwgZml4dXBfbWVzc2FnZSkKKwlpZiAobG9nZmlsZSB8fCBoYXZlX29wdGlvbl9tIHx8IHVzZV9tZXNzYWdlIHx8IGZpeHVwX21lc3NhZ2UpCiAJCXVzZV9lZGl0b3IgPSAwOwogCWlmICgwIDw9IGVkaXRfZmxhZykKIAkJdXNlX2VkaXRvciA9IGVkaXRfZmxhZzsKQEAgLTEwNTIsMTIgKzExMTUsNiBAQAogCWlmIChhbGwgJiYgYXJnYyA+IDApCiAJCWRpZShfKCJQYXRocyB3aXRoIC1hIGRvZXMgbm90IG1ha2Ugc2Vuc2UuIikpOwogCi0JaWYgKHMtPm51bGxfdGVybWluYXRpb24pIHsKLQkJaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9OT05FKQotCQkJc3RhdHVzX2Zvcm1hdCA9IFNUQVRVU19GT1JNQVRfUE9SQ0VMQUlOOwotCQllbHNlIGlmIChzdGF0dXNfZm9ybWF0ID09IFNUQVRVU19GT1JNQVRfTE9ORykKLQkJCWRpZShfKCItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiKSk7Ci0JfQogCWlmIChzdGF0dXNfZm9ybWF0ICE9IFNUQVRVU19GT1JNQVRfTk9ORSkKIAkJZHJ5X3J1biA9IDE7CiAKQEAgLTExMTAsNiArMTE2NywxNyBAQAogCQkJcy0+c3VibW9kdWxlX3N1bW1hcnkgPSAtMTsKIAkJcmV0dXJuIDA7CiAJfQorCWlmICghc3RyY21wKGssICJzdGF0dXMuc2hvcnQiKSkgeworCQlpZiAoZ2l0X2NvbmZpZ19ib29sKGssIHYpKQorCQkJc3RhdHVzX2RlZmVycmVkX2NvbmZpZy5zdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9TSE9SVDsKKwkJZWxzZQorCQkJc3RhdHVzX2RlZmVycmVkX2NvbmZpZy5zdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9OT05FOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKCFzdHJjbXAoaywgInN0YXR1cy5icmFuY2giKSkgeworCQlzdGF0dXNfZGVmZXJyZWRfY29uZmlnLnNob3dfYnJhbmNoID0gZ2l0X2NvbmZpZ19ib29sKGssIHYpOworCQlyZXR1cm4gMDsKKwl9CiAJaWYgKCFzdHJjbXAoaywgInN0YXR1cy5jb2xvciIpIHx8ICFzdHJjbXAoaywgImNvbG9yLnN0YXR1cyIpKSB7CiAJCXMtPnVzZV9jb2xvciA9IGdpdF9jb25maWdfY29sb3Jib29sKGssIHYpOwogCQlyZXR1cm4gMDsKQEAgLTExNTIsOCArMTIyMCw4IEBACiAJCU9QVF9fVkVSQk9TRSgmdmVyYm9zZSwgTl8oImJlIHZlcmJvc2UiKSksCiAJCU9QVF9TRVRfSU5UKCdzJywgInNob3J0IiwgJnN0YXR1c19mb3JtYXQsCiAJCQkgICAgTl8oInNob3cgc3RhdHVzIGNvbmNpc2VseSIpLCBTVEFUVVNfRk9STUFUX1NIT1JUKSwKLQkJT1BUX0JPT0xFQU4oJ2InLCAiYnJhbmNoIiwgJnMuc2hvd19icmFuY2gsCi0JCQkgICAgTl8oInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIikpLAorCQlPUFRfQk9PTCgnYicsICJicmFuY2giLCAmcy5zaG93X2JyYW5jaCwKKwkJCSBOXygic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iKSksCiAJCU9QVF9TRVRfSU5UKDAsICJwb3JjZWxhaW4iLCAmc3RhdHVzX2Zvcm1hdCwKIAkJCSAgICBOXygibWFjaGluZS1yZWFkYWJsZSBvdXRwdXQiKSwKIAkJCSAgICBTVEFUVVNfRk9STUFUX1BPUkNFTEFJTiksCkBAIC0xMTg2LDEzICsxMjU0LDcgQEAKIAkJCSAgICAgYnVpbHRpbl9zdGF0dXNfb3B0aW9ucywKIAkJCSAgICAgYnVpbHRpbl9zdGF0dXNfdXNhZ2UsIDApOwogCWZpbmFsaXplX2NvbG9wdHMoJnMuY29sb3B0cywgLTEpOwotCi0JaWYgKHMubnVsbF90ZXJtaW5hdGlvbikgewotCQlpZiAoc3RhdHVzX2Zvcm1hdCA9PSBTVEFUVVNfRk9STUFUX05PTkUpCi0JCQlzdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9QT1JDRUxBSU47Ci0JCWVsc2UgaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9MT05HKQotCQkJZGllKF8oIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIpKTsKLQl9CisJZmluYWxpemVfZGVmZXJyZWRfY29uZmlnKCZzKTsKIAogCWhhbmRsZV91bnRyYWNrZWRfZmlsZXNfYXJnKCZzKTsKIAlpZiAoc2hvd19pZ25vcmVkX2luX3N0YXR1cykKQEAgLTEyMjEsNiArMTI4Myw5IEBACiAJY2FzZSBTVEFUVVNfRk9STUFUX1BPUkNFTEFJTjoKIAkJd3RfcG9yY2VsYWluX3ByaW50KCZzKTsKIAkJYnJlYWs7CisJY2FzZSBTVEFUVVNfRk9STUFUX1VOU1BFQ0lGSUVEOgorCQlkaWUoIkJVRzogZmluYWxpemVfZGVmZXJyZWRfY29uZmlnKCkgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQiKTsKKwkJYnJlYWs7CiAJY2FzZSBTVEFUVVNfRk9STUFUX05PTkU6CiAJY2FzZSBTVEFUVVNfRk9STUFUX0xPTkc6CiAJCXMudmVyYm9zZSA9IHZlcmJvc2U7CkBAIC0xMzg5LDcgKzE0NTQsNyBAQAogCQlPUFRfQk9PTEVBTigwLCAiZHJ5LXJ1biIsICZkcnlfcnVuLCBOXygic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIpKSwKIAkJT1BUX1NFVF9JTlQoMCwgInNob3J0IiwgJnN0YXR1c19mb3JtYXQsIE5fKCJzaG93IHN0YXR1cyBjb25jaXNlbHkiKSwKIAkJCSAgICBTVEFUVVNfRk9STUFUX1NIT1JUKSwKLQkJT1BUX0JPT0xFQU4oMCwgImJyYW5jaCIsICZzLnNob3dfYnJhbmNoLCBOXygic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iKSksCisJCU9QVF9CT09MKDAsICJicmFuY2giLCAmcy5zaG93X2JyYW5jaCwgTl8oInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIikpLAogCQlPUFRfU0VUX0lOVCgwLCAicG9yY2VsYWluIiwgJnN0YXR1c19mb3JtYXQsCiAJCQkgICAgTl8oIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IiksIFNUQVRVU19GT1JNQVRfUE9SQ0VMQUlOKSwKIAkJT1BUX1NFVF9JTlQoMCwgImxvbmciLCAmc3RhdHVzX2Zvcm1hdCwKQEAgLTE0MzAsNiArMTQ5NSw3IEBACiAJd3Rfc3RhdHVzX3ByZXBhcmUoJnMpOwogCWdpdG1vZHVsZXNfY29uZmlnKCk7CiAJZ2l0X2NvbmZpZyhnaXRfY29tbWl0X2NvbmZpZywgJnMpOworCXN0YXR1c19mb3JtYXQgPSBTVEFUVVNfRk9STUFUX05PTkU7IC8qIElnbm9yZSBzdGF0dXMuc2hvcnQgKi8KIAlkZXRlcm1pbmVfd2hlbmNlKCZzKTsKIAlzLmNvbG9wdHMgPSAwOwogCkBAIC0xNTkxLDcgKzE2NTcsNyBAQAogCQlpZiAoY2ZnKSB7CiAJCQkvKiB3ZSBhcmUgYW1lbmRpbmcsIHNvIGN1cnJlbnRfaGVhZCBpcyBub3QgTlVMTCAqLwogCQkJY29weV9ub3RlX2Zvcl9yZXdyaXRlKGNmZywgY3VycmVudF9oZWFkLT5vYmplY3Quc2hhMSwgc2hhMSk7Ci0JCQlmaW5pc2hfY29weV9ub3Rlc19mb3JfcmV3cml0ZShjZmcpOworCQkJZmluaXNoX2NvcHlfbm90ZXNfZm9yX3Jld3JpdGUoY2ZnLCAiTm90ZXMgYWRkZWQgYnkgJ2dpdCBjb21taXQgLS1hbWVuZCciKTsKIAkJfQogCQlydW5fcmV3cml0ZV9ob29rKGN1cnJlbnRfaGVhZC0+b2JqZWN0LnNoYTEsIHNoYTEpOwogCX0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vY29uZmlnLmMgYi9idWlsdGluL2NvbmZpZy5jCmluZGV4IDMzYzliZjkuLjQwMTBjNDMgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY29uZmlnLmMKKysrIGIvYnVpbHRpbi9jb25maWcuYwpAQCAtMjEsNiArMjEsNyBAQAogCiBzdGF0aWMgaW50IHVzZV9nbG9iYWxfY29uZmlnLCB1c2Vfc3lzdGVtX2NvbmZpZywgdXNlX2xvY2FsX2NvbmZpZzsKIHN0YXRpYyBjb25zdCBjaGFyICpnaXZlbl9jb25maWdfZmlsZTsKK3N0YXRpYyBjb25zdCBjaGFyICpnaXZlbl9jb25maWdfYmxvYjsKIHN0YXRpYyBpbnQgYWN0aW9ucywgdHlwZXM7CiBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X2NvbG9yX3Nsb3QsICpnZXRfY29sb3Jib29sX3Nsb3Q7CiBzdGF0aWMgaW50IGVuZF9udWxsOwpAQCAtNTMsNiArNTQsNyBAQAogCU9QVF9CT09MRUFOKDAsICJzeXN0ZW0iLCAmdXNlX3N5c3RlbV9jb25maWcsIE5fKCJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIikpLAogCU9QVF9CT09MRUFOKDAsICJsb2NhbCIsICZ1c2VfbG9jYWxfY29uZmlnLCBOXygidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiKSksCiAJT1BUX1NUUklORygnZicsICJmaWxlIiwgJmdpdmVuX2NvbmZpZ19maWxlLCBOXygiZmlsZSIpLCBOXygidXNlIGdpdmVuIGNvbmZpZyBmaWxlIikpLAorCU9QVF9TVFJJTkcoMCwgImJsb2IiLCAmZ2l2ZW5fY29uZmlnX2Jsb2IsIE5fKCJibG9iLWlkIiksIE5fKCJyZWFkIGNvbmZpZyBmcm9tIGdpdmVuIGJsb2Igb2JqZWN0IikpLAogCU9QVF9HUk9VUChOXygiQWN0aW9uIikpLAogCU9QVF9CSVQoMCwgImdldCIsICZhY3Rpb25zLCBOXygiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iKSwgQUNUSU9OX0dFVCksCiAJT1BUX0JJVCgwLCAiZ2V0LWFsbCIsICZhY3Rpb25zLCBOXygiZ2V0IGFsbCB2YWx1ZXM6IGtleSBbdmFsdWUtcmVnZXhdIiksIEFDVElPTl9HRVRfQUxMKSwKQEAgLTIxOCw3ICsyMjAsOCBAQAogCX0KIAogCWdpdF9jb25maWdfd2l0aF9vcHRpb25zKGNvbGxlY3RfY29uZmlnLCAmdmFsdWVzLAotCQkJCWdpdmVuX2NvbmZpZ19maWxlLCByZXNwZWN0X2luY2x1ZGVzKTsKKwkJCQlnaXZlbl9jb25maWdfZmlsZSwgZ2l2ZW5fY29uZmlnX2Jsb2IsCisJCQkJcmVzcGVjdF9pbmNsdWRlcyk7CiAKIAlyZXQgPSAhdmFsdWVzLm5yOwogCkBAIC0zMDIsNyArMzA1LDggQEAKIAlnZXRfY29sb3JfZm91bmQgPSAwOwogCXBhcnNlZF9jb2xvclswXSA9ICdcMCc7CiAJZ2l0X2NvbmZpZ193aXRoX29wdGlvbnMoZ2l0X2dldF9jb2xvcl9jb25maWcsIE5VTEwsCi0JCQkJZ2l2ZW5fY29uZmlnX2ZpbGUsIHJlc3BlY3RfaW5jbHVkZXMpOworCQkJCWdpdmVuX2NvbmZpZ19maWxlLCBnaXZlbl9jb25maWdfYmxvYiwKKwkJCQlyZXNwZWN0X2luY2x1ZGVzKTsKIAogCWlmICghZ2V0X2NvbG9yX2ZvdW5kICYmIGRlZl9jb2xvcikKIAkJY29sb3JfcGFyc2UoZGVmX2NvbG9yLCAiY29tbWFuZCBsaW5lIiwgcGFyc2VkX2NvbG9yKTsKQEAgLTMyOSw4ICszMzMsMTAgQEAKIHsKIAlnZXRfY29sb3Jib29sX2ZvdW5kID0gLTE7CiAJZ2V0X2RpZmZfY29sb3JfZm91bmQgPSAtMTsKKwlnZXRfY29sb3JfdWlfZm91bmQgPSAtMTsKIAlnaXRfY29uZmlnX3dpdGhfb3B0aW9ucyhnaXRfZ2V0X2NvbG9yYm9vbF9jb25maWcsIE5VTEwsCi0JCQkJZ2l2ZW5fY29uZmlnX2ZpbGUsIHJlc3BlY3RfaW5jbHVkZXMpOworCQkJCWdpdmVuX2NvbmZpZ19maWxlLCBnaXZlbl9jb25maWdfYmxvYiwKKwkJCQlyZXNwZWN0X2luY2x1ZGVzKTsKIAogCWlmIChnZXRfY29sb3Jib29sX2ZvdW5kIDwgMCkgewogCQlpZiAoIXN0cmNtcChnZXRfY29sb3Jib29sX3Nsb3QsICJjb2xvci5kaWZmIikpCkBAIC0zMzksNiArMzQ1LDEwIEBACiAJCQlnZXRfY29sb3Jib29sX2ZvdW5kID0gZ2V0X2NvbG9yX3VpX2ZvdW5kOwogCX0KIAorCWlmIChnZXRfY29sb3Jib29sX2ZvdW5kIDwgMCkKKwkJLyogZGVmYXVsdCB2YWx1ZSBpZiBub25lIGZvdW5kIGluIGNvbmZpZyAqLworCQlnZXRfY29sb3Jib29sX2ZvdW5kID0gR0lUX0NPTE9SX0FVVE87CisKIAlnZXRfY29sb3Jib29sX2ZvdW5kID0gd2FudF9jb2xvcihnZXRfY29sb3Jib29sX2ZvdW5kKTsKIAogCWlmIChwcmludCkgewpAQCAtMzQ4LDYgKzM1OCwxMiBAQAogCQlyZXR1cm4gZ2V0X2NvbG9yYm9vbF9mb3VuZCA/IDAgOiAxOwogfQogCitzdGF0aWMgdm9pZCBjaGVja19ibG9iX3dyaXRlKHZvaWQpCit7CisJaWYgKGdpdmVuX2NvbmZpZ19ibG9iKQorCQlkaWUoIndyaXRpbmcgY29uZmlnIGJsb2JzIGlzIG5vdCBzdXBwb3J0ZWQiKTsKK30KKwogaW50IGNtZF9jb25maWcoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJaW50IG5vbmdpdCA9ICFzdGFydHVwX2luZm8tPmhhdmVfcmVwb3NpdG9yeTsKQEAgLTM1OSw3ICszNzUsOCBAQAogCQkJICAgICBidWlsdGluX2NvbmZpZ191c2FnZSwKIAkJCSAgICAgUEFSU0VfT1BUX1NUT1BfQVRfTk9OX09QVElPTik7CiAKLQlpZiAodXNlX2dsb2JhbF9jb25maWcgKyB1c2Vfc3lzdGVtX2NvbmZpZyArIHVzZV9sb2NhbF9jb25maWcgKyAhIWdpdmVuX2NvbmZpZ19maWxlID4gMSkgeworCWlmICh1c2VfZ2xvYmFsX2NvbmZpZyArIHVzZV9zeXN0ZW1fY29uZmlnICsgdXNlX2xvY2FsX2NvbmZpZyArCisJICAgICEhZ2l2ZW5fY29uZmlnX2ZpbGUgKyAhIWdpdmVuX2NvbmZpZ19ibG9iID4gMSkgewogCQllcnJvcigib25seSBvbmUgY29uZmlnIGZpbGUgYXQgYSB0aW1lLiIpOwogCQl1c2FnZV93aXRoX29wdGlvbnMoYnVpbHRpbl9jb25maWdfdXNhZ2UsIGJ1aWx0aW5fY29uZmlnX29wdGlvbnMpOwogCX0KQEAgLTM3OSw4ICszOTYsOCBAQAogCQkJICovCiAJCQlkaWUoIiRIT01FIG5vdCBzZXQiKTsKIAotCQlpZiAoYWNjZXNzX29yX3dhcm4odXNlcl9jb25maWcsIFJfT0spICYmCi0JCSAgICB4ZGdfY29uZmlnICYmICFhY2Nlc3Nfb3Jfd2Fybih4ZGdfY29uZmlnLCBSX09LKSkKKwkJaWYgKGFjY2Vzc19vcl93YXJuKHVzZXJfY29uZmlnLCBSX09LLCAwKSAmJgorCQkgICAgeGRnX2NvbmZpZyAmJiAhYWNjZXNzX29yX3dhcm4oeGRnX2NvbmZpZywgUl9PSywgMCkpCiAJCQlnaXZlbl9jb25maWdfZmlsZSA9IHhkZ19jb25maWc7CiAJCWVsc2UKIAkJCWdpdmVuX2NvbmZpZ19maWxlID0gdXNlcl9jb25maWc7CkBAIC00MzgsNiArNDU1LDcgQEAKIAkJY2hlY2tfYXJnYyhhcmdjLCAwLCAwKTsKIAkJaWYgKGdpdF9jb25maWdfd2l0aF9vcHRpb25zKHNob3dfYWxsX2NvbmZpZywgTlVMTCwKIAkJCQkJICAgIGdpdmVuX2NvbmZpZ19maWxlLAorCQkJCQkgICAgZ2l2ZW5fY29uZmlnX2Jsb2IsCiAJCQkJCSAgICByZXNwZWN0X2luY2x1ZGVzKSA8IDApIHsKIAkJCWlmIChnaXZlbl9jb25maWdfZmlsZSkKIAkJCQlkaWVfZXJybm8oInVuYWJsZSB0byByZWFkIGNvbmZpZyBmaWxlICclcyciLApAQCAtNDUwLDYgKzQ2OCw4IEBACiAJCWNoZWNrX2FyZ2MoYXJnYywgMCwgMCk7CiAJCWlmICghZ2l2ZW5fY29uZmlnX2ZpbGUgJiYgbm9uZ2l0KQogCQkJZGllKCJub3QgaW4gYSBnaXQgZGlyZWN0b3J5Iik7CisJCWlmIChnaXZlbl9jb25maWdfYmxvYikKKwkJCWRpZSgiZWRpdGluZyBibG9icyBpcyBub3Qgc3VwcG9ydGVkIik7CiAJCWdpdF9jb25maWcoZ2l0X2RlZmF1bHRfY29uZmlnLCBOVUxMKTsKIAkJbGF1bmNoX2VkaXRvcihnaXZlbl9jb25maWdfZmlsZSA/CiAJCQkgICAgICBnaXZlbl9jb25maWdfZmlsZSA6IGdpdF9wYXRoKCJjb25maWciKSwKQEAgLTQ1Nyw2ICs0NzcsNyBAQAogCX0KIAllbHNlIGlmIChhY3Rpb25zID09IEFDVElPTl9TRVQpIHsKIAkJaW50IHJldDsKKwkJY2hlY2tfYmxvYl93cml0ZSgpOwogCQljaGVja19hcmdjKGFyZ2MsIDIsIDIpOwogCQl2YWx1ZSA9IG5vcm1hbGl6ZV92YWx1ZShhcmd2WzBdLCBhcmd2WzFdKTsKIAkJcmV0ID0gZ2l0X2NvbmZpZ19zZXRfaW5fZmlsZShnaXZlbl9jb25maWdfZmlsZSwgYXJndlswXSwgdmFsdWUpOwpAQCAtNDY2LDE4ICs0ODcsMjEgQEAKIAkJcmV0dXJuIHJldDsKIAl9CiAJZWxzZSBpZiAoYWN0aW9ucyA9PSBBQ1RJT05fU0VUX0FMTCkgeworCQljaGVja19ibG9iX3dyaXRlKCk7CiAJCWNoZWNrX2FyZ2MoYXJnYywgMiwgMyk7CiAJCXZhbHVlID0gbm9ybWFsaXplX3ZhbHVlKGFyZ3ZbMF0sIGFyZ3ZbMV0pOwogCQlyZXR1cm4gZ2l0X2NvbmZpZ19zZXRfbXVsdGl2YXJfaW5fZmlsZShnaXZlbl9jb25maWdfZmlsZSwKIAkJCQkJCSAgICAgICBhcmd2WzBdLCB2YWx1ZSwgYXJndlsyXSwgMCk7CiAJfQogCWVsc2UgaWYgKGFjdGlvbnMgPT0gQUNUSU9OX0FERCkgeworCQljaGVja19ibG9iX3dyaXRlKCk7CiAJCWNoZWNrX2FyZ2MoYXJnYywgMiwgMik7CiAJCXZhbHVlID0gbm9ybWFsaXplX3ZhbHVlKGFyZ3ZbMF0sIGFyZ3ZbMV0pOwogCQlyZXR1cm4gZ2l0X2NvbmZpZ19zZXRfbXVsdGl2YXJfaW5fZmlsZShnaXZlbl9jb25maWdfZmlsZSwKIAkJCQkJCSAgICAgICBhcmd2WzBdLCB2YWx1ZSwgIl4kIiwgMCk7CiAJfQogCWVsc2UgaWYgKGFjdGlvbnMgPT0gQUNUSU9OX1JFUExBQ0VfQUxMKSB7CisJCWNoZWNrX2Jsb2Jfd3JpdGUoKTsKIAkJY2hlY2tfYXJnYyhhcmdjLCAyLCAzKTsKIAkJdmFsdWUgPSBub3JtYWxpemVfdmFsdWUoYXJndlswXSwgYXJndlsxXSk7CiAJCXJldHVybiBnaXRfY29uZmlnX3NldF9tdWx0aXZhcl9pbl9maWxlKGdpdmVuX2NvbmZpZ19maWxlLApAQCAtNTAwLDYgKzUyNCw3IEBACiAJCXJldHVybiBnZXRfdmFsdWUoYXJndlswXSwgYXJndlsxXSk7CiAJfQogCWVsc2UgaWYgKGFjdGlvbnMgPT0gQUNUSU9OX1VOU0VUKSB7CisJCWNoZWNrX2Jsb2Jfd3JpdGUoKTsKIAkJY2hlY2tfYXJnYyhhcmdjLCAxLCAyKTsKIAkJaWYgKGFyZ2MgPT0gMikKIAkJCXJldHVybiBnaXRfY29uZmlnX3NldF9tdWx0aXZhcl9pbl9maWxlKGdpdmVuX2NvbmZpZ19maWxlLApAQCAtNTA5LDEyICs1MzQsMTQgQEAKIAkJCQkJCSAgICAgIGFyZ3ZbMF0sIE5VTEwpOwogCX0KIAllbHNlIGlmIChhY3Rpb25zID09IEFDVElPTl9VTlNFVF9BTEwpIHsKKwkJY2hlY2tfYmxvYl93cml0ZSgpOwogCQljaGVja19hcmdjKGFyZ2MsIDEsIDIpOwogCQlyZXR1cm4gZ2l0X2NvbmZpZ19zZXRfbXVsdGl2YXJfaW5fZmlsZShnaXZlbl9jb25maWdfZmlsZSwKIAkJCQkJCSAgICAgICBhcmd2WzBdLCBOVUxMLCBhcmd2WzFdLCAxKTsKIAl9CiAJZWxzZSBpZiAoYWN0aW9ucyA9PSBBQ1RJT05fUkVOQU1FX1NFQ1RJT04pIHsKIAkJaW50IHJldDsKKwkJY2hlY2tfYmxvYl93cml0ZSgpOwogCQljaGVja19hcmdjKGFyZ2MsIDIsIDIpOwogCQlyZXQgPSBnaXRfY29uZmlnX3JlbmFtZV9zZWN0aW9uX2luX2ZpbGUoZ2l2ZW5fY29uZmlnX2ZpbGUsCiAJCQkJCQkJYXJndlswXSwgYXJndlsxXSk7CkBAIC01MjUsNiArNTUyLDcgQEAKIAl9CiAJZWxzZSBpZiAoYWN0aW9ucyA9PSBBQ1RJT05fUkVNT1ZFX1NFQ1RJT04pIHsKIAkJaW50IHJldDsKKwkJY2hlY2tfYmxvYl93cml0ZSgpOwogCQljaGVja19hcmdjKGFyZ2MsIDEsIDEpOwogCQlyZXQgPSBnaXRfY29uZmlnX3JlbmFtZV9zZWN0aW9uX2luX2ZpbGUoZ2l2ZW5fY29uZmlnX2ZpbGUsCiAJCQkJCQkJYXJndlswXSwgTlVMTCk7CmRpZmYgLS1naXQgYS9idWlsdGluL2Rlc2NyaWJlLmMgYi9idWlsdGluL2Rlc2NyaWJlLmMKaW5kZXggNjYzNmE2OC4uN2Q3MzcyMiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9kZXNjcmliZS5jCisrKyBiL2J1aWx0aW4vZGVzY3JpYmUuYwpAQCAtNyw2ICs3LDcgQEAKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCiAjaW5jbHVkZSAiZGlmZi5oIgogI2luY2x1ZGUgImhhc2guaCIKKyNpbmNsdWRlICJhcmd2LWFycmF5LmgiCiAKICNkZWZpbmUgU0VFTgkJKDF1PDwwKQogI2RlZmluZSBNQVhfVEFHUwkoRkxBR19CSVRTIC0gMSkKQEAgLTIxLDYgKzIyLDcgQEAKIHN0YXRpYyBpbnQgYWxsOwkvKiBBbnkgdmFsaWQgcmVmIGNhbiBiZSB1c2VkICovCiBzdGF0aWMgaW50IHRhZ3M7CS8qIEFsbG93IGxpZ2h0d2VpZ2h0IHRhZ3MgKi8KIHN0YXRpYyBpbnQgbG9uZ2Zvcm1hdDsKK3N0YXRpYyBpbnQgZmlyc3RfcGFyZW50Owogc3RhdGljIGludCBhYmJyZXYgPSAtMTsgLyogdW5zcGVjaWZpZWQgKi8KIHN0YXRpYyBpbnQgbWF4X2NhbmRpZGF0ZXMgPSAxMDsKIHN0YXRpYyBzdHJ1Y3QgaGFzaF90YWJsZSBuYW1lczsKQEAgLTQyLDcgKzQ0LDcgQEAKIAl1bnNpZ25lZCBwcmlvOjI7IC8qIGFubm90YXRlZCB0YWcgPSAyLCB0YWcgPSAxLCBoZWFkID0gMCAqLwogCXVuc2lnbmVkIG5hbWVfY2hlY2tlZDoxOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07Ci0JY29uc3QgY2hhciAqcGF0aDsKKwljaGFyICpwYXRoOwogfTsKIHN0YXRpYyBjb25zdCBjaGFyICpwcmlvX25hbWVzW10gPSB7CiAJImhlYWQiLCAibGlnaHR3ZWlnaHQiLCAiYW5ub3RhdGVkIiwKQEAgLTEyNiwxMiArMTI4LDE0IEBACiAJCQl9IGVsc2UgewogCQkJCWUtPm5leHQgPSBOVUxMOwogCQkJfQorCQkJZS0+cGF0aCA9IE5VTEw7CiAJCX0KIAkJZS0+dGFnID0gdGFnOwogCQllLT5wcmlvID0gcHJpbzsKIAkJZS0+bmFtZV9jaGVja2VkID0gMDsKIAkJaGFzaGNweShlLT5zaGExLCBzaGExKTsKLQkJZS0+cGF0aCA9IHBhdGg7CisJCWZyZWUoZS0+cGF0aCk7CisJCWUtPnBhdGggPSB4c3RyZHVwKHBhdGgpOwogCX0KIH0KIApAQCAtMzM2LDYgKzM0MCw5IEBACiAJCQkJY29tbWl0X2xpc3RfaW5zZXJ0X2J5X2RhdGUocCwgJmxpc3QpOwogCQkJcC0+b2JqZWN0LmZsYWdzIHw9IGMtPm9iamVjdC5mbGFnczsKIAkJCXBhcmVudHMgPSBwYXJlbnRzLT5uZXh0OworCisJCQlpZiAoZmlyc3RfcGFyZW50KQorCQkJCWJyZWFrOwogCQl9CiAJfQogCkBAIC00MDQsNiArNDExLDcgQEAKIAkJT1BUX0JPT0xFQU4oMCwgImFsbCIsICAgICAgICAmYWxsLCBOXygidXNlIGFueSByZWYiKSksCiAJCU9QVF9CT09MRUFOKDAsICJ0YWdzIiwgICAgICAgJnRhZ3MsIE5fKCJ1c2UgYW55IHRhZywgZXZlbiB1bmFubm90YXRlZCIpKSwKIAkJT1BUX0JPT0xFQU4oMCwgImxvbmciLCAgICAgICAmbG9uZ2Zvcm1hdCwgTl8oImFsd2F5cyB1c2UgbG9uZyBmb3JtYXQiKSksCisJCU9QVF9CT09MRUFOKDAsICJmaXJzdC1wYXJlbnQiLCAmZmlyc3RfcGFyZW50LCBOXygib25seSBmb2xsb3cgZmlyc3QgcGFyZW50IikpLAogCQlPUFRfX0FCQlJFVigmYWJicmV2KSwKIAkJT1BUX1NFVF9JTlQoMCwgImV4YWN0LW1hdGNoIiwgJm1heF9jYW5kaWRhdGVzLAogCQkJICAgIE5fKCJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIiksIDApLApAQCAtNDM1LDI0ICs0NDMsMjQgQEAKIAkJZGllKF8oIi0tbG9uZyBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFiYnJldj0wIikpOwogCiAJaWYgKGNvbnRhaW5zKSB7Ci0JCWNvbnN0IGNoYXIgKiphcmdzID0geG1hbGxvYygoNyArIGFyZ2MpICogc2l6ZW9mKGNoYXIgKikpOwotCQlpbnQgaSA9IDA7Ci0JCWFyZ3NbaSsrXSA9ICJuYW1lLXJldiI7Ci0JCWFyZ3NbaSsrXSA9ICItLW5hbWUtb25seSI7Ci0JCWFyZ3NbaSsrXSA9ICItLW5vLXVuZGVmaW5lZCI7CisJCXN0cnVjdCBhcmd2X2FycmF5IGFyZ3M7CisKKwkJYXJndl9hcnJheV9pbml0KCZhcmdzKTsKKwkJYXJndl9hcnJheV9wdXNobCgmYXJncywgIm5hbWUtcmV2IiwKKwkJCQkgIi0tcGVlbC10YWciLCAiLS1uYW1lLW9ubHkiLCAiLS1uby11bmRlZmluZWQiLAorCQkJCSBOVUxMKTsKIAkJaWYgKGFsd2F5cykKLQkJCWFyZ3NbaSsrXSA9ICItLWFsd2F5cyI7CisJCQlhcmd2X2FycmF5X3B1c2goJmFyZ3MsICItLWFsd2F5cyIpOwogCQlpZiAoIWFsbCkgewotCQkJYXJnc1tpKytdID0gIi0tdGFncyI7Ci0JCQlpZiAocGF0dGVybikgewotCQkJCWNoYXIgKnMgPSB4bWFsbG9jKHN0cmxlbigiLS1yZWZzPXJlZnMvdGFncy8iKSArIHN0cmxlbihwYXR0ZXJuKSArIDEpOwotCQkJCXNwcmludGYocywgIi0tcmVmcz1yZWZzL3RhZ3MvJXMiLCBwYXR0ZXJuKTsKLQkJCQlhcmdzW2krK10gPSBzOwotCQkJfQorCQkJYXJndl9hcnJheV9wdXNoKCZhcmdzLCAiLS10YWdzIik7CisJCQlpZiAocGF0dGVybikKKwkJCQlhcmd2X2FycmF5X3B1c2hmKCZhcmdzLCAiLS1yZWZzPXJlZnMvdGFncy8lcyIsIHBhdHRlcm4pOwogCQl9Ci0JCW1lbWNweShhcmdzICsgaSwgYXJndiwgYXJnYyAqIHNpemVvZihjaGFyICopKTsKLQkJYXJnc1tpICsgYXJnY10gPSBOVUxMOwotCQlyZXR1cm4gY21kX25hbWVfcmV2KGkgKyBhcmdjLCBhcmdzLCBwcmVmaXgpOworCQl3aGlsZSAoKmFyZ3YpIHsKKwkJCWFyZ3ZfYXJyYXlfcHVzaCgmYXJncywgKmFyZ3YpOworCQkJYXJndisrOworCQl9CisJCXJldHVybiBjbWRfbmFtZV9yZXYoYXJncy5hcmdjLCBhcmdzLmFyZ3YsIHByZWZpeCk7CiAJfQogCiAJaW5pdF9oYXNoKCZuYW1lcyk7CmRpZmYgLS1naXQgYS9idWlsdGluL2RpZmYuYyBiL2J1aWx0aW4vZGlmZi5jCmluZGV4IDhjMmFmNmMuLjlmYzI3M2QgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vZGlmZi5jCisrKyBiL2J1aWx0aW4vZGlmZi5jCkBAIC0xNTMsNyArMTUzLDggQEAKIAogc3RhdGljIGludCBidWlsdGluX2RpZmZfdHJlZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCiAJCQkgICAgIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwKLQkJCSAgICAgc3RydWN0IG9iamVjdF9hcnJheV9lbnRyeSAqZW50KQorCQkJICAgICBzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICplbnQwLAorCQkJICAgICBzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICplbnQxKQogewogCWNvbnN0IHVuc2lnbmVkIGNoYXIgKihzaGExWzJdKTsKIAlpbnQgc3dhcCA9IDA7CkBAIC0xNjEsMTMgKzE2MiwxNCBAQAogCWlmIChhcmdjID4gMSkKIAkJdXNhZ2UoYnVpbHRpbl9kaWZmX3VzYWdlKTsKIAotCS8qIFdlIHNhdyB0d28gdHJlZXMsIGVudFswXSBhbmQgZW50WzFdLgotCSAqIGlmIGVudFsxXSBpcyB1bmludGVyZXN0aW5nLCB0aGV5IGFyZSBzd2FwcGVkCisJLyoKKwkgKiBXZSBzYXcgdHdvIHRyZWVzLCBlbnQwIGFuZCBlbnQxLiAgSWYgZW50MSBpcyB1bmludGVyZXN0aW5nLAorCSAqIHN3YXAgdGhlbS4KIAkgKi8KLQlpZiAoZW50WzFdLml0ZW0tPmZsYWdzICYgVU5JTlRFUkVTVElORykKKwlpZiAoZW50MS0+aXRlbS0+ZmxhZ3MgJiBVTklOVEVSRVNUSU5HKQogCQlzd2FwID0gMTsKLQlzaGExW3N3YXBdID0gZW50WzBdLml0ZW0tPnNoYTE7Ci0Jc2hhMVsxLXN3YXBdID0gZW50WzFdLml0ZW0tPnNoYTE7CisJc2hhMVtzd2FwXSA9IGVudDAtPml0ZW0tPnNoYTE7CisJc2hhMVsxLXN3YXBdID0gZW50MS0+aXRlbS0+c2hhMTsKIAlkaWZmX3RyZWVfc2hhMShzaGExWzBdLCBzaGExWzFdLCAiIiwgJnJldnMtPmRpZmZvcHQpOwogCWxvZ190cmVlX2RpZmZfZmx1c2gocmV2cyk7CiAJcmV0dXJuIDA7CkBAIC0yNTEsOCArMjUzLDggQEAKIHsKIAlpbnQgaTsKIAlzdHJ1Y3QgcmV2X2luZm8gcmV2OwotCXN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgZW50WzEwMF07Ci0JaW50IGVudHMgPSAwLCBibG9icyA9IDAsIHBhdGhzID0gMDsKKwlzdHJ1Y3Qgb2JqZWN0X2FycmF5IGVudCA9IE9CSkVDVF9BUlJBWV9JTklUOworCWludCBibG9icyA9IDAsIHBhdGhzID0gMDsKIAljb25zdCBjaGFyICpwYXRoID0gTlVMTDsKIAlzdHJ1Y3QgYmxvYmluZm8gYmxvYlsyXTsKIAlpbnQgbm9uZ2l0OwpAQCAtMzM3LDkgKzMzOSw5IEBACiAJfQogCiAJZm9yIChpID0gMDsgaSA8IHJldi5wZW5kaW5nLm5yOyBpKyspIHsKLQkJc3RydWN0IG9iamVjdF9hcnJheV9lbnRyeSAqbGlzdCA9IHJldi5wZW5kaW5nLm9iamVjdHMraTsKLQkJc3RydWN0IG9iamVjdCAqb2JqID0gbGlzdC0+aXRlbTsKLQkJY29uc3QgY2hhciAqbmFtZSA9IGxpc3QtPm5hbWU7CisJCXN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgKmVudHJ5ID0gJnJldi5wZW5kaW5nLm9iamVjdHNbaV07CisJCXN0cnVjdCBvYmplY3QgKm9iaiA9IGVudHJ5LT5pdGVtOworCQljb25zdCBjaGFyICpuYW1lID0gZW50cnktPm5hbWU7CiAJCWludCBmbGFncyA9IChvYmotPmZsYWdzICYgVU5JTlRFUkVTVElORyk7CiAJCWlmICghb2JqLT5wYXJzZWQpCiAJCQlvYmogPSBwYXJzZV9vYmplY3Qob2JqLT5zaGExKTsKQEAgLTM0OCwyNyArMzUwLDIxIEBACiAJCQlkaWUoXygiaW52YWxpZCBvYmplY3QgJyVzJyBnaXZlbi4iKSwgbmFtZSk7CiAJCWlmIChvYmotPnR5cGUgPT0gT0JKX0NPTU1JVCkKIAkJCW9iaiA9ICYoKHN0cnVjdCBjb21taXQgKilvYmopLT50cmVlLT5vYmplY3Q7CisKIAkJaWYgKG9iai0+dHlwZSA9PSBPQkpfVFJFRSkgewotCQkJaWYgKEFSUkFZX1NJWkUoZW50KSA8PSBlbnRzKQotCQkJCWRpZShfKCJtb3JlIHRoYW4gJWQgdHJlZXMgZ2l2ZW46ICclcyciKSwKLQkJCQkgICAgKGludCkgQVJSQVlfU0laRShlbnQpLCBuYW1lKTsKIAkJCW9iai0+ZmxhZ3MgfD0gZmxhZ3M7Ci0JCQllbnRbZW50c10uaXRlbSA9IG9iajsKLQkJCWVudFtlbnRzXS5uYW1lID0gbmFtZTsKLQkJCWVudHMrKzsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCWlmIChvYmotPnR5cGUgPT0gT0JKX0JMT0IpIHsKKwkJCWFkZF9vYmplY3RfYXJyYXkob2JqLCBuYW1lLCAmZW50KTsKKwkJfSBlbHNlIGlmIChvYmotPnR5cGUgPT0gT0JKX0JMT0IpIHsKIAkJCWlmICgyIDw9IGJsb2JzKQogCQkJCWRpZShfKCJtb3JlIHRoYW4gdHdvIGJsb2JzIGdpdmVuOiAnJXMnIiksIG5hbWUpOwogCQkJaGFzaGNweShibG9iW2Jsb2JzXS5zaGExLCBvYmotPnNoYTEpOwogCQkJYmxvYltibG9ic10ubmFtZSA9IG5hbWU7Ci0JCQlibG9iW2Jsb2JzXS5tb2RlID0gbGlzdC0+bW9kZTsKKwkJCWJsb2JbYmxvYnNdLm1vZGUgPSBlbnRyeS0+bW9kZTsKIAkJCWJsb2JzKys7Ci0JCQljb250aW51ZTsKIAorCQl9IGVsc2UgeworCQkJZGllKF8oInVuaGFuZGxlZCBvYmplY3QgJyVzJyBnaXZlbi4iKSwgbmFtZSk7CiAJCX0KLQkJZGllKF8oInVuaGFuZGxlZCBvYmplY3QgJyVzJyBnaXZlbi4iKSwgbmFtZSk7CiAJfQogCWlmIChyZXYucHJ1bmVfZGF0YS5ucikgewogCQlpZiAoIXBhdGgpCkBAIC0zNzksNyArMzc1LDcgQEAKIAkvKgogCSAqIE5vdywgZG8gdGhlIGFyZ3VtZW50cyBsb29rIHJlYXNvbmFibGU/CiAJICovCi0JaWYgKCFlbnRzKSB7CisJaWYgKCFlbnQubnIpIHsKIAkJc3dpdGNoIChibG9icykgewogCQljYXNlIDA6CiAJCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfZmlsZXMoJnJldiwgYXJnYywgYXJndik7CkBAIC00MDAsMjMgKzM5NiwyNiBAQAogCX0KIAllbHNlIGlmIChibG9icykKIAkJdXNhZ2UoYnVpbHRpbl9kaWZmX3VzYWdlKTsKLQllbHNlIGlmIChlbnRzID09IDEpCisJZWxzZSBpZiAoZW50Lm5yID09IDEpCiAJCXJlc3VsdCA9IGJ1aWx0aW5fZGlmZl9pbmRleCgmcmV2LCBhcmdjLCBhcmd2KTsKLQllbHNlIGlmIChlbnRzID09IDIpCi0JCXJlc3VsdCA9IGJ1aWx0aW5fZGlmZl90cmVlKCZyZXYsIGFyZ2MsIGFyZ3YsIGVudCk7Ci0JZWxzZSBpZiAoZW50WzBdLml0ZW0tPmZsYWdzICYgVU5JTlRFUkVTVElORykgeworCWVsc2UgaWYgKGVudC5uciA9PSAyKQorCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfdHJlZSgmcmV2LCBhcmdjLCBhcmd2LAorCQkJCQkgICAmZW50Lm9iamVjdHNbMF0sICZlbnQub2JqZWN0c1sxXSk7CisJZWxzZSBpZiAoZW50Lm9iamVjdHNbMF0uaXRlbS0+ZmxhZ3MgJiBVTklOVEVSRVNUSU5HKSB7CiAJCS8qCiAJCSAqIGRpZmYgQS4uLkIgd2hlcmUgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG1lcmdlIGJhc2UKLQkJICogYmV0d2VlbiBBIGFuZCBCLiAgV2UgaGF2ZSBlbnRbMF0gPT0gbWVyZ2UtYmFzZSwKLQkJICogZW50W2VudHMtMl0gPT0gQSwgYW5kIGVudFtlbnRzLTFdID09IEIuICBTaG93IGRpZmYKLQkJICogYmV0d2VlbiB0aGUgYmFzZSBhbmQgQi4gIE5vdGUgdGhhdCB3ZSBwaWNrIG9uZQotCQkgKiBtZXJnZSBiYXNlIGF0IHJhbmRvbSBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZS4KKwkJICogYmV0d2VlbiBBIGFuZCBCLiAgV2UgaGF2ZSBlbnQub2JqZWN0c1swXSA9PQorCQkgKiBtZXJnZS1iYXNlLCBlbnQub2JqZWN0c1tlbnRzLTJdID09IEEsIGFuZAorCQkgKiBlbnQub2JqZWN0c1tlbnRzLTFdID09IEIuICBTaG93IGRpZmYgYmV0d2VlbiB0aGUKKwkJICogYmFzZSBhbmQgQi4gIE5vdGUgdGhhdCB3ZSBwaWNrIG9uZSBtZXJnZSBiYXNlIGF0CisJCSAqIHJhbmRvbSBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZS4KIAkJICovCi0JCWVudFsxXSA9IGVudFtlbnRzLTFdOwotCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfdHJlZSgmcmV2LCBhcmdjLCBhcmd2LCBlbnQpOworCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfdHJlZSgmcmV2LCBhcmdjLCBhcmd2LAorCQkJCQkgICAmZW50Lm9iamVjdHNbMF0sCisJCQkJCSAgICZlbnQub2JqZWN0c1tlbnQubnItMV0pOwogCX0gZWxzZQogCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfY29tYmluZWQoJnJldiwgYXJnYywgYXJndiwKLQkJCQkJICAgICAgIGVudCwgZW50cyk7CisJCQkJCSAgICAgICBlbnQub2JqZWN0cywgZW50Lm5yKTsKIAlyZXN1bHQgPSBkaWZmX3Jlc3VsdF9jb2RlKCZyZXYuZGlmZm9wdCwgcmVzdWx0KTsKIAlpZiAoMSA8IHJldi5kaWZmb3B0LnNraXBfc3RhdF91bm1hdGNoKQogCQlyZWZyZXNoX2luZGV4X3F1aWV0bHkoKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vZmFzdC1leHBvcnQuYyBiL2J1aWx0aW4vZmFzdC1leHBvcnQuYwppbmRleCBkNjBkNjc1Li44ZTE5MDU4IDEwMDY0NAotLS0gYS9idWlsdGluL2Zhc3QtZXhwb3J0LmMKKysrIGIvYnVpbHRpbi9mYXN0LWV4cG9ydC5jCkBAIC0zNzksNyArMzc5LDcgQEAKIAlpbnQgdGFnZ2VkX21hcms7CiAJc3RydWN0IGNvbW1pdCAqcDsKIAotCS8qIFRyZWVzIGhhdmUgbm8gaWRlbnRpZmVyIGluIGZhc3QtZXhwb3J0IG91dHB1dCwgdGh1cyB3ZSBoYXZlIG5vIHdheQorCS8qIFRyZWVzIGhhdmUgbm8gaWRlbnRpZmllciBpbiBmYXN0LWV4cG9ydCBvdXRwdXQsIHRodXMgd2UgaGF2ZSBubyB3YXkKIAkgKiB0byBvdXRwdXQgdGFncyBvZiB0cmVlcywgdGFncyBvZiB0YWdzIG9mIHRyZWVzLCBldGMuICBTaW1wbHkgb21pdAogCSAqIHN1Y2ggdGFncy4KIAkgKi8KQEAgLTYxMyw2ICs2MTMsOCBAQAogCQljaGFyICpsaW5lX2VuZCwgKm1hcmtfZW5kOwogCQl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOwogCQlzdHJ1Y3Qgb2JqZWN0ICpvYmplY3Q7CisJCXN0cnVjdCBjb21taXQgKmNvbW1pdDsKKwkJZW51bSBvYmplY3RfdHlwZSB0eXBlOwogCiAJCWxpbmVfZW5kID0gc3RyY2hyKGxpbmUsICdcbicpOwogCQlpZiAobGluZVswXSAhPSAnOicgfHwgIWxpbmVfZW5kKQpAQCAtNjIxLDIzICs2MjMsMjkgQEAKIAogCQltYXJrID0gc3RydG91bWF4KGxpbmUgKyAxLCAmbWFya19lbmQsIDEwKTsKIAkJaWYgKCFtYXJrIHx8IG1hcmtfZW5kID09IGxpbmUgKyAxCi0JCQl8fCAqbWFya19lbmQgIT0gJyAnIHx8IGdldF9zaGExKG1hcmtfZW5kICsgMSwgc2hhMSkpCisJCQl8fCAqbWFya19lbmQgIT0gJyAnIHx8IGdldF9zaGExX2hleChtYXJrX2VuZCArIDEsIHNoYTEpKQogCQkJZGllKCJjb3JydXB0IG1hcmsgbGluZTogJXMiLCBsaW5lKTsKIAogCQlpZiAobGFzdF9pZG51bSA8IG1hcmspCiAJCQlsYXN0X2lkbnVtID0gbWFyazsKIAotCQlvYmplY3QgPSBwYXJzZV9vYmplY3Qoc2hhMSk7Ci0JCWlmICghb2JqZWN0KQorCQl0eXBlID0gc2hhMV9vYmplY3RfaW5mbyhzaGExLCBOVUxMKTsKKwkJaWYgKHR5cGUgPCAwKQorCQkJZGllKCJvYmplY3Qgbm90IGZvdW5kOiAlcyIsIHNoYTFfdG9faGV4KHNoYTEpKTsKKworCQlpZiAodHlwZSAhPSBPQkpfQ09NTUlUKQorCQkJLyogb25seSBjb21taXRzICovCiAJCQljb250aW51ZTsKIAorCQljb21taXQgPSBsb29rdXBfY29tbWl0KHNoYTEpOworCQlpZiAoIWNvbW1pdCkKKwkJCWRpZSgibm90IGEgY29tbWl0PyBjYW4ndCBoYXBwZW46ICVzIiwgc2hhMV90b19oZXgoc2hhMSkpOworCisJCW9iamVjdCA9ICZjb21taXQtPm9iamVjdDsKKwogCQlpZiAob2JqZWN0LT5mbGFncyAmIFNIT1dOKQogCQkJZXJyb3IoIk9iamVjdCAlcyBhbHJlYWR5IGhhcyBhIG1hcmsiLCBzaGExX3RvX2hleChzaGExKSk7CiAKLQkJaWYgKG9iamVjdC0+dHlwZSAhPSBPQkpfQ09NTUlUKQotCQkJLyogb25seSBjb21taXRzICovCi0JCQljb250aW51ZTsKLQogCQltYXJrX29iamVjdChvYmplY3QsIG1hcmspOwogCiAJCW9iamVjdC0+ZmxhZ3MgfD0gU0hPV047CmRpZmYgLS1naXQgYS9idWlsdGluL2ZldGNoLmMgYi9idWlsdGluL2ZldGNoLmMKaW5kZXggNGI2YjFkZi4uNTY0NzA1NSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9mZXRjaC5jCisrKyBiL2J1aWx0aW4vZmV0Y2guYwpAQCAtMzYsNyArMzYsOCBAQAogc3RhdGljIGNvbnN0IGNoYXIgKmRlcHRoOwogc3RhdGljIGNvbnN0IGNoYXIgKnVwbG9hZF9wYWNrOwogc3RhdGljIHN0cnVjdCBzdHJidWYgZGVmYXVsdF9ybGEgPSBTVFJCVUZfSU5JVDsKLXN0YXRpYyBzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQ7CitzdGF0aWMgc3RydWN0IHRyYW5zcG9ydCAqZ3RyYW5zcG9ydDsKK3N0YXRpYyBzdHJ1Y3QgdHJhbnNwb3J0ICpnc2Vjb25kYXJ5Owogc3RhdGljIGNvbnN0IGNoYXIgKnN1Ym1vZHVsZV9wcmVmaXggPSAiIjsKIHN0YXRpYyBjb25zdCBjaGFyICpyZWN1cnNlX3N1Ym1vZHVsZXNfZGVmYXVsdDsKIApAQCAtOTUsOCArOTYsMTAgQEAKIAogc3RhdGljIHZvaWQgdW5sb2NrX3BhY2sodm9pZCkKIHsKLQlpZiAodHJhbnNwb3J0KQotCQl0cmFuc3BvcnRfdW5sb2NrX3BhY2sodHJhbnNwb3J0KTsKKwlpZiAoZ3RyYW5zcG9ydCkKKwkJdHJhbnNwb3J0X3VubG9ja19wYWNrKGd0cmFuc3BvcnQpOworCWlmIChnc2Vjb25kYXJ5KQorCQl0cmFuc3BvcnRfdW5sb2NrX3BhY2soZ3NlY29uZGFyeSk7CiB9CiAKIHN0YXRpYyB2b2lkIHVubG9ja19wYWNrX29uX3NpZ25hbChpbnQgc2lnbm8pCkBAIC0xMTksNyArMTIyLDcgQEAKIAogCQlmb3IgKHJtID0gKmhlYWQ7IHJtOyBybSA9IHJtLT5uZXh0KSB7CiAJCQlpZiAoYnJhbmNoX21lcmdlX21hdGNoZXMoYnJhbmNoLCBpLCBybS0+bmFtZSkpIHsKLQkJCQlybS0+bWVyZ2UgPSAxOworCQkJCXJtLT5mZXRjaF9oZWFkX3N0YXR1cyA9IEZFVENIX0hFQURfTUVSR0U7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0KQEAgLTE0MCw3ICsxNDMsNyBAQAogCQlyZWZzcGVjLnNyYyA9IGJyYW5jaC0+bWVyZ2VbaV0tPnNyYzsKIAkJZ2V0X2ZldGNoX21hcChyZW1vdGVfcmVmcywgJnJlZnNwZWMsIHRhaWwsIDEpOwogCQlmb3IgKHJtID0gKm9sZF90YWlsOyBybTsgcm0gPSBybS0+bmV4dCkKLQkJCXJtLT5tZXJnZSA9IDE7CisJCQlybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPSBGRVRDSF9IRUFEX01FUkdFOwogCX0KIH0KIApAQCAtMTYwLDYgKzE2Myw4IEBACiAJY29uc3Qgc3RydWN0IHJlZiAqcmVtb3RlX3JlZnMgPSB0cmFuc3BvcnRfZ2V0X3JlbW90ZV9yZWZzKHRyYW5zcG9ydCk7CiAKIAlpZiAocmVmX2NvdW50IHx8IHRhZ3MgPT0gVEFHU19TRVQpIHsKKwkJc3RydWN0IHJlZiAqKm9sZF90YWlsOworCiAJCWZvciAoaSA9IDA7IGkgPCByZWZfY291bnQ7IGkrKykgewogCQkJZ2V0X2ZldGNoX21hcChyZW1vdGVfcmVmcywgJnJlZnNbaV0sICZ0YWlsLCAwKTsKIAkJCWlmIChyZWZzW2ldLmRzdCAmJiByZWZzW2ldLmRzdFswXSkKQEAgLTE2Nyw5ICsxNzIsMjMgQEAKIAkJfQogCQkvKiBNZXJnZSBldmVyeXRoaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCBub3QgLS10YWdzICovCiAJCWZvciAocm0gPSByZWZfbWFwOyBybTsgcm0gPSBybS0+bmV4dCkKLQkJCXJtLT5tZXJnZSA9IDE7CisJCQlybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPSBGRVRDSF9IRUFEX01FUkdFOwogCQlpZiAodGFncyA9PSBUQUdTX1NFVCkKIAkJCWdldF9mZXRjaF9tYXAocmVtb3RlX3JlZnMsIHRhZ19yZWZzcGVjLCAmdGFpbCwgMCk7CisKKwkJLyoKKwkJICogRm9yIGFueSByZWZzIHRoYXQgd2UgaGFwcGVuIHRvIGJlIGZldGNoaW5nIHZpYSBjb21tYW5kLWxpbmUKKwkJICogYXJndW1lbnRzLCB0YWtlIHRoZSBvcHBvcnR1bml0eSB0byB1cGRhdGUgdGhlaXIgY29uZmlndXJlZAorCQkgKiBjb3VudGVycGFydHMuIEhvd2V2ZXIsIHdlIGRvIG5vdCB3YW50IHRvIG1lbnRpb24gdGhlc2UKKwkJICogZW50cmllcyBpbiBGRVRDSF9IRUFEIGF0IGFsbCwgYXMgdGhleSB3b3VsZCBzaW1wbHkgYmUKKwkJICogZHVwbGljYXRlcyBvZiBleGlzdGluZyBlbnRyaWVzLgorCQkgKi8KKwkJb2xkX3RhaWwgPSB0YWlsOworCQlmb3IgKGkgPSAwOyBpIDwgdHJhbnNwb3J0LT5yZW1vdGUtPmZldGNoX3JlZnNwZWNfbnI7IGkrKykKKwkJCWdldF9mZXRjaF9tYXAocmVmX21hcCwgJnRyYW5zcG9ydC0+cmVtb3RlLT5mZXRjaFtpXSwKKwkJCQkgICAgICAmdGFpbCwgMSk7CisJCWZvciAocm0gPSAqb2xkX3RhaWw7IHJtOyBybSA9IHJtLT5uZXh0KQorCQkJcm0tPmZldGNoX2hlYWRfc3RhdHVzID0gRkVUQ0hfSEVBRF9JR05PUkU7CiAJfSBlbHNlIHsKIAkJLyogVXNlIHRoZSBkZWZhdWx0cyAqLwogCQlzdHJ1Y3QgcmVtb3RlICpyZW1vdGUgPSB0cmFuc3BvcnQtPnJlbW90ZTsKQEAgLTE4Niw3ICsyMDUsNyBAQAogCQkJCQkqYXV0b3RhZ3MgPSAxOwogCQkJCWlmICghaSAmJiAhaGFzX21lcmdlICYmIHJlZl9tYXAgJiYKIAkJCQkgICAgIXJlbW90ZS0+ZmV0Y2hbMF0ucGF0dGVybikKLQkJCQkJcmVmX21hcC0+bWVyZ2UgPSAxOworCQkJCQlyZWZfbWFwLT5mZXRjaF9oZWFkX3N0YXR1cyA9IEZFVENIX0hFQURfTUVSR0U7CiAJCQl9CiAJCQkvKgogCQkJICogaWYgdGhlIHJlbW90ZSB3ZSdyZSBmZXRjaGluZyBmcm9tIGlzIHRoZSBzYW1lCkBAIC0yMDIsNyArMjIxLDcgQEAKIAkJCXJlZl9tYXAgPSBnZXRfcmVtb3RlX3JlZihyZW1vdGVfcmVmcywgIkhFQUQiKTsKIAkJCWlmICghcmVmX21hcCkKIAkJCQlkaWUoXygiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiKSk7Ci0JCQlyZWZfbWFwLT5tZXJnZSA9IDE7CisJCQlyZWZfbWFwLT5mZXRjaF9oZWFkX3N0YXR1cyA9IEZFVENIX0hFQURfTUVSR0U7CiAJCQl0YWlsID0gJnJlZl9tYXAtPm5leHQ7CiAJCX0KIAl9CkBAIC0zODksNyArNDA4LDcgQEAKIAljb25zdCBjaGFyICp3aGF0LCAqa2luZDsKIAlzdHJ1Y3QgcmVmICpybTsKIAljaGFyICp1cmwsICpmaWxlbmFtZSA9IGRyeV9ydW4gPyAiL2Rldi9udWxsIiA6IGdpdF9wYXRoKCJGRVRDSF9IRUFEIik7Ci0JaW50IHdhbnRfbWVyZ2U7CisJaW50IHdhbnRfc3RhdHVzOwogCiAJZnAgPSBmb3BlbihmaWxlbmFtZSwgImEiKTsKIAlpZiAoIWZwKQpAQCAtNDA3LDE5ICs0MjYsMjIgQEAKIAl9CiAKIAkvKgotCSAqIFRoZSBmaXJzdCBwYXNzIHdyaXRlcyBvYmplY3RzIHRvIGJlIG1lcmdlZCBhbmQgdGhlbiB0aGUKLQkgKiBzZWNvbmQgcGFzcyB3cml0ZXMgdGhlIHJlc3QsIGluIG9yZGVyIHRvIGFsbG93IHVzaW5nCi0JICogRkVUQ0hfSEVBRCBhcyBhIHJlZm5hbWUgdG8gcmVmZXIgdG8gdGhlIHJlZiB0byBiZSBtZXJnZWQuCisJICogV2UgZG8gYSBwYXNzIGZvciBlYWNoIGZldGNoX2hlYWRfc3RhdHVzIHR5cGUgaW4gdGhlaXIgZW51bSBvcmRlciwgc28KKwkgKiBtZXJnZWQgZW50cmllcyBhcmUgd3JpdHRlbiBiZWZvcmUgbm90LWZvci1tZXJnZS4gVGhhdCBsZXRzIHJlYWRlcnMKKwkgKiB1c2UgRkVUQ0hfSEVBRCBhcyBhIHJlZm5hbWUgdG8gcmVmZXIgdG8gdGhlIHJlZiB0byBiZSBtZXJnZWQuCiAJICovCi0JZm9yICh3YW50X21lcmdlID0gMTsgMCA8PSB3YW50X21lcmdlOyB3YW50X21lcmdlLS0pIHsKKwlmb3IgKHdhbnRfc3RhdHVzID0gRkVUQ0hfSEVBRF9NRVJHRTsKKwkgICAgIHdhbnRfc3RhdHVzIDw9IEZFVENIX0hFQURfSUdOT1JFOworCSAgICAgd2FudF9zdGF0dXMrKykgewogCQlmb3IgKHJtID0gcmVmX21hcDsgcm07IHJtID0gcm0tPm5leHQpIHsKIAkJCXN0cnVjdCByZWYgKnJlZiA9IE5VTEw7CisJCQljb25zdCBjaGFyICptZXJnZV9zdGF0dXNfbWFya2VyID0gIiI7CiAKIAkJCWNvbW1pdCA9IGxvb2t1cF9jb21taXRfcmVmZXJlbmNlX2dlbnRseShybS0+b2xkX3NoYTEsIDEpOwogCQkJaWYgKCFjb21taXQpCi0JCQkJcm0tPm1lcmdlID0gMDsKKwkJCQlybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPSBGRVRDSF9IRUFEX05PVF9GT1JfTUVSR0U7CiAKLQkJCWlmIChybS0+bWVyZ2UgIT0gd2FudF9tZXJnZSkKKwkJCWlmIChybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgIT0gd2FudF9zdGF0dXMpCiAJCQkJY29udGludWU7CiAKIAkJCWlmIChybS0+cGVlcl9yZWYpIHsKQEAgLTQ2NSwxNiArNDg3LDI2IEBACiAJCQkJCXN0cmJ1Zl9hZGRmKCZub3RlLCAiJXMgIiwga2luZCk7CiAJCQkJc3RyYnVmX2FkZGYoJm5vdGUsICInJXMnIG9mICIsIHdoYXQpOwogCQkJfQotCQkJZnByaW50ZihmcCwgIiVzXHQlc1x0JXMiLAotCQkJCXNoYTFfdG9faGV4KHJtLT5vbGRfc2hhMSksCi0JCQkJcm0tPm1lcmdlID8gIiIgOiAibm90LWZvci1tZXJnZSIsCi0JCQkJbm90ZS5idWYpOwotCQkJZm9yIChpID0gMDsgaSA8IHVybF9sZW47ICsraSkKLQkJCQlpZiAoJ1xuJyA9PSB1cmxbaV0pCi0JCQkJCWZwdXRzKCJcXG4iLCBmcCk7Ci0JCQkJZWxzZQotCQkJCQlmcHV0Yyh1cmxbaV0sIGZwKTsKLQkJCWZwdXRjKCdcbicsIGZwKTsKKwkJCXN3aXRjaCAocm0tPmZldGNoX2hlYWRfc3RhdHVzKSB7CisJCQljYXNlIEZFVENIX0hFQURfTk9UX0ZPUl9NRVJHRToKKwkJCQltZXJnZV9zdGF0dXNfbWFya2VyID0gIm5vdC1mb3ItbWVyZ2UiOworCQkJCS8qIGZhbGwtdGhyb3VnaCAqLworCQkJY2FzZSBGRVRDSF9IRUFEX01FUkdFOgorCQkJCWZwcmludGYoZnAsICIlc1x0JXNcdCVzIiwKKwkJCQkJc2hhMV90b19oZXgocm0tPm9sZF9zaGExKSwKKwkJCQkJbWVyZ2Vfc3RhdHVzX21hcmtlciwKKwkJCQkJbm90ZS5idWYpOworCQkJCWZvciAoaSA9IDA7IGkgPCB1cmxfbGVuOyArK2kpCisJCQkJCWlmICgnXG4nID09IHVybFtpXSkKKwkJCQkJCWZwdXRzKCJcXG4iLCBmcCk7CisJCQkJCWVsc2UKKwkJCQkJCWZwdXRjKHVybFtpXSwgZnApOworCQkJCWZwdXRjKCdcbicsIGZwKTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJLyogZG8gbm90IHdyaXRlIGFueXRoaW5nIHRvIEZFVENIX0hFQUQgKi8KKwkJCQlicmVhazsKKwkJCX0KIAogCQkJc3RyYnVmX3Jlc2V0KCZub3RlKTsKIAkJCWlmIChyZWYpIHsKQEAgLTU3MSw3ICs2MDMsOCBAQAogewogCXN0cnVjdCBzdHJpbmdfbGlzdCAqbGlzdCA9IChzdHJ1Y3Qgc3RyaW5nX2xpc3QgKiljYmRhdGE7CiAJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW0gPSBzdHJpbmdfbGlzdF9pbnNlcnQobGlzdCwgcmVmbmFtZSk7Ci0JaXRlbS0+dXRpbCA9ICh2b2lkICopc2hhMTsKKwlpdGVtLT51dGlsID0geG1hbGxvYygyMCk7CisJaGFzaGNweShpdGVtLT51dGlsLCBzaGExKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTkwLDcgKzYyMyw3IEBACiAJCQlzdHJ1Y3QgcmVmICoqaGVhZCwKIAkJCXN0cnVjdCByZWYgKioqdGFpbCkKIHsKLQlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZXhpc3RpbmdfcmVmcyA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CisJc3RydWN0IHN0cmluZ19saXN0IGV4aXN0aW5nX3JlZnMgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3QgcmVtb3RlX3JlZnMgPSBTVFJJTkdfTElTVF9JTklUX05PRFVQOwogCWNvbnN0IHN0cnVjdCByZWYgKnJlZjsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbSA9IE5VTEw7CkBAIC02MzYsNyArNjY5LDcgQEAKIAkJaXRlbSA9IHN0cmluZ19saXN0X2luc2VydCgmcmVtb3RlX3JlZnMsIHJlZi0+bmFtZSk7CiAJCWl0ZW0tPnV0aWwgPSAodm9pZCAqKXJlZi0+b2xkX3NoYTE7CiAJfQotCXN0cmluZ19saXN0X2NsZWFyKCZleGlzdGluZ19yZWZzLCAwKTsKKwlzdHJpbmdfbGlzdF9jbGVhcigmZXhpc3RpbmdfcmVmcywgMSk7CiAKIAkvKgogCSAqIFdlIG1heSBoYXZlIGEgZmluYWwgbGlnaHR3ZWlnaHQgdGFnIHRoYXQgbmVlZHMgdG8gYmUKQEAgLTY5MCwxNCArNzIzLDU2IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHNldF9vcHRpb24oc3RydWN0IHRyYW5zcG9ydCAqdHJhbnNwb3J0LCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKK3sKKwlpbnQgciA9IHRyYW5zcG9ydF9zZXRfb3B0aW9uKHRyYW5zcG9ydCwgbmFtZSwgdmFsdWUpOworCWlmIChyIDwgMCkKKwkJZGllKF8oIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiKSwKKwkJICAgIG5hbWUsIHZhbHVlLCB0cmFuc3BvcnQtPnVybCk7CisJaWYgKHIgPiAwKQorCQl3YXJuaW5nKF8oIk9wdGlvbiBcIiVzXCIgaXMgaWdub3JlZCBmb3IgJXNcbiIpLAorCQkJbmFtZSwgdHJhbnNwb3J0LT51cmwpOworfQorCitzdGF0aWMgc3RydWN0IHRyYW5zcG9ydCAqcHJlcGFyZV90cmFuc3BvcnQoc3RydWN0IHJlbW90ZSAqcmVtb3RlKQoreworCXN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydDsKKwl0cmFuc3BvcnQgPSB0cmFuc3BvcnRfZ2V0KHJlbW90ZSwgTlVMTCk7CisJdHJhbnNwb3J0X3NldF92ZXJib3NpdHkodHJhbnNwb3J0LCB2ZXJib3NpdHksIHByb2dyZXNzKTsKKwlpZiAodXBsb2FkX3BhY2spCisJCXNldF9vcHRpb24odHJhbnNwb3J0LCBUUkFOU19PUFRfVVBMT0FEUEFDSywgdXBsb2FkX3BhY2spOworCWlmIChrZWVwKQorCQlzZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX0tFRVAsICJ5ZXMiKTsKKwlpZiAoZGVwdGgpCisJCXNldF9vcHRpb24odHJhbnNwb3J0LCBUUkFOU19PUFRfREVQVEgsIGRlcHRoKTsKKwlyZXR1cm4gdHJhbnNwb3J0OworfQorCitzdGF0aWMgdm9pZCBiYWNrZmlsbF90YWdzKHN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydCwgc3RydWN0IHJlZiAqcmVmX21hcCkKK3sKKwlpZiAodHJhbnNwb3J0LT5jYW5ub3RfcmV1c2UpIHsKKwkJZ3NlY29uZGFyeSA9IHByZXBhcmVfdHJhbnNwb3J0KHRyYW5zcG9ydC0+cmVtb3RlKTsKKwkJdHJhbnNwb3J0ID0gZ3NlY29uZGFyeTsKKwl9CisKKwl0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9GT0xMT1dUQUdTLCBOVUxMKTsKKwl0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9ERVBUSCwgIjAiKTsKKwlmZXRjaF9yZWZzKHRyYW5zcG9ydCwgcmVmX21hcCk7CisKKwlpZiAoZ3NlY29uZGFyeSkgeworCQl0cmFuc3BvcnRfZGlzY29ubmVjdChnc2Vjb25kYXJ5KTsKKwkJZ3NlY29uZGFyeSA9IE5VTEw7CisJfQorfQorCiBzdGF0aWMgaW50IGRvX2ZldGNoKHN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydCwKIAkJICAgIHN0cnVjdCByZWZzcGVjICpyZWZzLCBpbnQgcmVmX2NvdW50KQogewotCXN0cnVjdCBzdHJpbmdfbGlzdCBleGlzdGluZ19yZWZzID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKLQlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqcGVlcl9pdGVtID0gTlVMTDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZXhpc3RpbmdfcmVmcyA9IFNUUklOR19MSVNUX0lOSVRfRFVQOwogCXN0cnVjdCByZWYgKnJlZl9tYXA7CiAJc3RydWN0IHJlZiAqcm07CiAJaW50IGF1dG90YWdzID0gKHRyYW5zcG9ydC0+cmVtb3RlLT5mZXRjaF90YWdzID09IDEpOworCWludCByZXRjb2RlID0gMDsKIAogCWZvcl9lYWNoX3JlZihhZGRfZXhpc3RpbmcsICZleGlzdGluZ19yZWZzKTsKIApAQCAtNzEzLDkgKzc4OCw5IEBACiAKIAkvKiBpZiBub3QgYXBwZW5kaW5nLCB0cnVuY2F0ZSBGRVRDSF9IRUFEICovCiAJaWYgKCFhcHBlbmQgJiYgIWRyeV9ydW4pIHsKLQkJaW50IGVycmNvZGUgPSB0cnVuY2F0ZV9mZXRjaF9oZWFkKCk7Ci0JCWlmIChlcnJjb2RlKQotCQkJcmV0dXJuIGVycmNvZGU7CisJCXJldGNvZGUgPSB0cnVuY2F0ZV9mZXRjaF9oZWFkKCk7CisJCWlmIChyZXRjb2RlKQorCQkJZ290byBjbGVhbnVwOwogCX0KIAogCXJlZl9tYXAgPSBnZXRfcmVmX21hcCh0cmFuc3BvcnQsIHJlZnMsIHJlZl9jb3VudCwgdGFncywgJmF1dG90YWdzKTsKQEAgLTcyNCw4ICs3OTksOSBAQAogCiAJZm9yIChybSA9IHJlZl9tYXA7IHJtOyBybSA9IHJtLT5uZXh0KSB7CiAJCWlmIChybS0+cGVlcl9yZWYpIHsKLQkJCXBlZXJfaXRlbSA9IHN0cmluZ19saXN0X2xvb2t1cCgmZXhpc3RpbmdfcmVmcywKLQkJCQkJCSAgICAgICBybS0+cGVlcl9yZWYtPm5hbWUpOworCQkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKnBlZXJfaXRlbSA9CisJCQkJc3RyaW5nX2xpc3RfbG9va3VwKCZleGlzdGluZ19yZWZzLAorCQkJCQkJICAgcm0tPnBlZXJfcmVmLT5uYW1lKTsKIAkJCWlmIChwZWVyX2l0ZW0pCiAJCQkJaGFzaGNweShybS0+cGVlcl9yZWYtPm9sZF9zaGExLAogCQkJCQlwZWVyX2l0ZW0tPnV0aWwpOwpAQCAtNzM2LDcgKzgxMiw4IEBACiAJCXRyYW5zcG9ydF9zZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX0ZPTExPV1RBR1MsICIxIik7CiAJaWYgKGZldGNoX3JlZnModHJhbnNwb3J0LCByZWZfbWFwKSkgewogCQlmcmVlX3JlZnMocmVmX21hcCk7Ci0JCXJldHVybiAxOworCQlyZXRjb2RlID0gMTsKKwkJZ290byBjbGVhbnVwOwogCX0KIAlpZiAocHJ1bmUpIHsKIAkJLyogSWYgLS10YWdzIHdhcyBzcGVjaWZpZWQsIHByZXRlbmQgdGhlIHVzZXIgZ2F2ZSB1cyB0aGUgY2Fub25pY2FsIHRhZ3MgcmVmc3BlYyAqLwpAQCAtNzcxLDI2ICs4NDgsMTQgQEAKIAkJc3RydWN0IHJlZiAqKnRhaWwgPSAmcmVmX21hcDsKIAkJcmVmX21hcCA9IE5VTEw7CiAJCWZpbmRfbm9uX2xvY2FsX3RhZ3ModHJhbnNwb3J0LCAmcmVmX21hcCwgJnRhaWwpOwotCQlpZiAocmVmX21hcCkgewotCQkJdHJhbnNwb3J0X3NldF9vcHRpb24odHJhbnNwb3J0LCBUUkFOU19PUFRfRk9MTE9XVEFHUywgTlVMTCk7Ci0JCQl0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9ERVBUSCwgIjAiKTsKLQkJCWZldGNoX3JlZnModHJhbnNwb3J0LCByZWZfbWFwKTsKLQkJfQorCQlpZiAocmVmX21hcCkKKwkJCWJhY2tmaWxsX3RhZ3ModHJhbnNwb3J0LCByZWZfbWFwKTsKIAkJZnJlZV9yZWZzKHJlZl9tYXApOwogCX0KIAotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBzZXRfb3B0aW9uKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQotewotCWludCByID0gdHJhbnNwb3J0X3NldF9vcHRpb24odHJhbnNwb3J0LCBuYW1lLCB2YWx1ZSk7Ci0JaWYgKHIgPCAwKQotCQlkaWUoXygiT3B0aW9uIFwiJXNcIiB2YWx1ZSBcIiVzXCIgaXMgbm90IHZhbGlkIGZvciAlcyIpLAotCQkJbmFtZSwgdmFsdWUsIHRyYW5zcG9ydC0+dXJsKTsKLQlpZiAociA+IDApCi0JCXdhcm5pbmcoXygiT3B0aW9uIFwiJXNcIiBpcyBpZ25vcmVkIGZvciAlc1xuIiksCi0JCQluYW1lLCB0cmFuc3BvcnQtPnVybCk7CisgY2xlYW51cDoKKwlzdHJpbmdfbGlzdF9jbGVhcigmZXhpc3RpbmdfcmVmcywgMSk7CisJcmV0dXJuIHJldGNvZGU7CiB9CiAKIHN0YXRpYyBpbnQgZ2V0X29uZV9yZW1vdGVfZm9yX2ZldGNoKHN0cnVjdCByZW1vdGUgKnJlbW90ZSwgdm9pZCAqcHJpdikKQEAgLTkxNSwxNSArOTgwLDcgQEAKIAkJZGllKF8oIk5vIHJlbW90ZSByZXBvc2l0b3J5IHNwZWNpZmllZC4gIFBsZWFzZSwgc3BlY2lmeSBlaXRoZXIgYSBVUkwgb3IgYVxuIgogCQkgICAgInJlbW90ZSBuYW1lIGZyb20gd2hpY2ggbmV3IHJldmlzaW9ucyBzaG91bGQgYmUgZmV0Y2hlZC4iKSk7CiAKLQl0cmFuc3BvcnQgPSB0cmFuc3BvcnRfZ2V0KHJlbW90ZSwgTlVMTCk7Ci0JdHJhbnNwb3J0X3NldF92ZXJib3NpdHkodHJhbnNwb3J0LCB2ZXJib3NpdHksIHByb2dyZXNzKTsKLQlpZiAodXBsb2FkX3BhY2spCi0JCXNldF9vcHRpb24oVFJBTlNfT1BUX1VQTE9BRFBBQ0ssIHVwbG9hZF9wYWNrKTsKLQlpZiAoa2VlcCkKLQkJc2V0X29wdGlvbihUUkFOU19PUFRfS0VFUCwgInllcyIpOwotCWlmIChkZXB0aCkKLQkJc2V0X29wdGlvbihUUkFOU19PUFRfREVQVEgsIGRlcHRoKTsKLQorCWd0cmFuc3BvcnQgPSBwcmVwYXJlX3RyYW5zcG9ydChyZW1vdGUpOwogCWlmIChhcmdjID4gMCkgewogCQlpbnQgaiA9IDA7CiAJCXJlZnMgPSB4Y2FsbG9jKGFyZ2MgKyAxLCBzaXplb2YoY29uc3QgY2hhciAqKSk7CkBAIC05NDksMTAgKzEwMDYsMTAgQEAKIAlzaWdjaGFpbl9wdXNoX2NvbW1vbih1bmxvY2tfcGFja19vbl9zaWduYWwpOwogCWF0ZXhpdCh1bmxvY2tfcGFjayk7CiAJcmVmc3BlYyA9IHBhcnNlX2ZldGNoX3JlZnNwZWMocmVmX25yLCByZWZzKTsKLQlleGl0X2NvZGUgPSBkb19mZXRjaCh0cmFuc3BvcnQsIHJlZnNwZWMsIHJlZl9ucik7CisJZXhpdF9jb2RlID0gZG9fZmV0Y2goZ3RyYW5zcG9ydCwgcmVmc3BlYywgcmVmX25yKTsKIAlmcmVlX3JlZnNwZWMocmVmX25yLCByZWZzcGVjKTsKLQl0cmFuc3BvcnRfZGlzY29ubmVjdCh0cmFuc3BvcnQpOwotCXRyYW5zcG9ydCA9IE5VTEw7CisJdHJhbnNwb3J0X2Rpc2Nvbm5lY3QoZ3RyYW5zcG9ydCk7CisJZ3RyYW5zcG9ydCA9IE5VTEw7CiAJcmV0dXJuIGV4aXRfY29kZTsKIH0KIApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9mc2NrLmMgYi9idWlsdGluL2ZzY2suYwppbmRleCBiYjlhMmNkLi45OTA5YjZkIDEwMDY0NAotLS0gYS9idWlsdGluL2ZzY2suYworKysgYi9idWlsdGluL2ZzY2suYwpAQCAtMTEyLDcgKzExMiw3IEBACiAJCXJldHVybiAxOwogCX0KIAotCWFkZF9vYmplY3RfYXJyYXkob2JqLCAodm9pZCAqKSBwYXJlbnQsICZwZW5kaW5nKTsKKwlhZGRfb2JqZWN0X2FycmF5KG9iaiwgTlVMTCwgJnBlbmRpbmcpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9idWlsdGluL2dyZXAuYyBiL2J1aWx0aW4vZ3JlcC5jCmluZGV4IDE1OWU2NWQuLmQzYjNiMWQgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vZ3JlcC5jCisrKyBiL2J1aWx0aW4vZ3JlcC5jCkBAIC0yODYsOCArMjg2LDcgQEAKIAlzdHJ1Y3Qgc3RyYnVmIHBhdGhidWYgPSBTVFJCVUZfSU5JVDsKIAogCWlmIChvcHQtPnJlbGF0aXZlICYmIG9wdC0+cHJlZml4X2xlbmd0aCkgewotCQlxdW90ZV9wYXRoX3JlbGF0aXZlKGZpbGVuYW1lICsgdHJlZV9uYW1lX2xlbiwgLTEsICZwYXRoYnVmLAotCQkJCSAgICBvcHQtPnByZWZpeCk7CisJCXF1b3RlX3BhdGhfcmVsYXRpdmUoZmlsZW5hbWUgKyB0cmVlX25hbWVfbGVuLCBvcHQtPnByZWZpeCwgJnBhdGhidWYpOwogCQlzdHJidWZfaW5zZXJ0KCZwYXRoYnVmLCAwLCBmaWxlbmFtZSwgdHJlZV9uYW1lX2xlbik7CiAJfSBlbHNlIHsKIAkJc3RyYnVmX2FkZHN0cigmcGF0aGJ1ZiwgZmlsZW5hbWUpOwpAQCAtMzE4LDcgKzMxNyw3IEBACiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKIAogCWlmIChvcHQtPnJlbGF0aXZlICYmIG9wdC0+cHJlZml4X2xlbmd0aCkKLQkJcXVvdGVfcGF0aF9yZWxhdGl2ZShmaWxlbmFtZSwgLTEsICZidWYsIG9wdC0+cHJlZml4KTsKKwkJcXVvdGVfcGF0aF9yZWxhdGl2ZShmaWxlbmFtZSwgb3B0LT5wcmVmaXgsICZidWYpOwogCWVsc2UKIAkJc3RyYnVmX2FkZHN0cigmYnVmLCBmaWxlbmFtZSk7CiAKQEAgLTM3Niw3ICszNzUsNyBAQAogCXJlYWRfY2FjaGUoKTsKIAogCWZvciAobnIgPSAwOyBuciA8IGFjdGl2ZV9ucjsgbnIrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW25yXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtucl07CiAJCWlmICghU19JU1JFRyhjZS0+Y2VfbW9kZSkpCiAJCQljb250aW51ZTsKIAkJaWYgKCFtYXRjaF9wYXRoc3BlY19kZXB0aChwYXRoc3BlYywgY2UtPm5hbWUsIGNlX25hbWVsZW4oY2UpLCAwLCBOVUxMKSkKZGlmZiAtLWdpdCBhL2J1aWx0aW4vaGVscC5jIGIvYnVpbHRpbi9oZWxwLmMKaW5kZXggMDYyOTU3Zi4uZjFlMjM2YiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9oZWxwLmMKKysrIGIvYnVpbHRpbi9oZWxwLmMKQEAgLTEsNiArMSw0IEBACiAvKgotICogYnVpbHRpbi1oZWxwLmMKLSAqCiAgKiBCdWlsdGluIGhlbHAgY29tbWFuZAogICovCiAjaW5jbHVkZSAiY2FjaGUuaCIKZGlmZiAtLWdpdCBhL2J1aWx0aW4vaW5kZXgtcGFjay5jIGIvYnVpbHRpbi9pbmRleC1wYWNrLmMKaW5kZXggNzlkZmU0Ny4uOWMxY2ZhYyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9pbmRleC1wYWNrLmMKKysrIGIvYnVpbHRpbi9pbmRleC1wYWNrLmMKQEAgLTc3LDggKzc3LDEwIEBACiAKIHN0YXRpYyBpbnQgZnJvbV9zdGRpbjsKIHN0YXRpYyBpbnQgc3RyaWN0Oworc3RhdGljIGludCBkb19mc2NrX29iamVjdDsKIHN0YXRpYyBpbnQgdmVyYm9zZTsKIHN0YXRpYyBpbnQgc2hvd19zdGF0Oworc3RhdGljIGludCBjaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkOwogCiBzdGF0aWMgc3RydWN0IHByb2dyZXNzICpwcm9ncmVzczsKIApAQCAtMTg3LDEzICsxODksMTMgQEAKIAogLyogVGhlIGNvbnRlbnQgb2YgZWFjaCBsaW5rZWQgb2JqZWN0IG11c3QgaGF2ZSBiZWVuIGNoZWNrZWQKICAgIG9yIGl0IG11c3QgYmUgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBvYmplY3QgZGF0YWJhc2UgKi8KLXN0YXRpYyB2b2lkIGNoZWNrX29iamVjdChzdHJ1Y3Qgb2JqZWN0ICpvYmopCitzdGF0aWMgdW5zaWduZWQgY2hlY2tfb2JqZWN0KHN0cnVjdCBvYmplY3QgKm9iaikKIHsKIAlpZiAoIW9iaikKLQkJcmV0dXJuOworCQlyZXR1cm4gMDsKIAogCWlmICghKG9iai0+ZmxhZ3MgJiBGTEFHX0xJTkspKQotCQlyZXR1cm47CisJCXJldHVybiAwOwogCiAJaWYgKCEob2JqLT5mbGFncyAmIEZMQUdfQ0hFQ0tFRCkpIHsKIAkJdW5zaWduZWQgbG9uZyBzaXplOwpAQCAtMjAxLDE3ICsyMDMsMjAgQEAKIAkJaWYgKHR5cGUgIT0gb2JqLT50eXBlIHx8IHR5cGUgPD0gMCkKIAkJCWRpZShfKCJvYmplY3Qgb2YgdW5leHBlY3RlZCB0eXBlIikpOwogCQlvYmotPmZsYWdzIHw9IEZMQUdfQ0hFQ0tFRDsKLQkJcmV0dXJuOworCQlyZXR1cm4gMTsKIAl9CisKKwlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgY2hlY2tfb2JqZWN0cyh2b2lkKQorc3RhdGljIHVuc2lnbmVkIGNoZWNrX29iamVjdHModm9pZCkKIHsKLQl1bnNpZ25lZCBpLCBtYXg7CisJdW5zaWduZWQgaSwgbWF4LCBmb3JlaWduX25yID0gMDsKIAogCW1heCA9IGdldF9tYXhfb2JqZWN0X2luZGV4KCk7CiAJZm9yIChpID0gMDsgaSA8IG1heDsgaSsrKQotCQljaGVja19vYmplY3QoZ2V0X2luZGV4ZWRfb2JqZWN0KGkpKTsKKwkJZm9yZWlnbl9uciArPSBjaGVja19vYmplY3QoZ2V0X2luZGV4ZWRfb2JqZWN0KGkpKTsKKwlyZXR1cm4gZm9yZWlnbl9ucjsKIH0KIAogCkBAIC03NDcsOCArNzUyLDcgQEAKIAkJCWludCBlYXRlbjsKIAkJCXZvaWQgKmJ1ZiA9ICh2b2lkICopIGRhdGE7CiAKLQkJCWlmICghYnVmKQotCQkJCWJ1ZiA9IG5ld19kYXRhID0gZ2V0X2RhdGFfZnJvbV9wYWNrKG9ial9lbnRyeSk7CisJCQlhc3NlcnQoZGF0YSAmJiAiZGF0YSBjYW4gb25seSBiZSBOVUxMIGZvciBsYXJnZSBfYmxvYnNfIik7CiAKIAkJCS8qCiAJCQkgKiB3ZSBkbyBub3QgbmVlZCB0byBmcmVlIHRoZSBtZW1vcnkgaGVyZSwgYXMgdGhlCkBAIC03NTcsNyArNzYxLDggQEAKIAkJCW9iaiA9IHBhcnNlX29iamVjdF9idWZmZXIoc2hhMSwgdHlwZSwgc2l6ZSwgYnVmLCAmZWF0ZW4pOwogCQkJaWYgKCFvYmopCiAJCQkJZGllKF8oImludmFsaWQgJXMiKSwgdHlwZW5hbWUodHlwZSkpOwotCQkJaWYgKGZzY2tfb2JqZWN0KG9iaiwgMSwgZnNja19lcnJvcl9mdW5jdGlvbikpCisJCQlpZiAoZG9fZnNja19vYmplY3QgJiYKKwkJCSAgICBmc2NrX29iamVjdChvYmosIDEsIGZzY2tfZXJyb3JfZnVuY3Rpb24pKQogCQkJCWRpZShfKCJFcnJvciBpbiBvYmplY3QiKSk7CiAJCQlpZiAoZnNja193YWxrKG9iaiwgbWFya19saW5rLCBOVUxMKSkKIAkJCQlkaWUoXygiTm90IGFsbCBjaGlsZCBvYmplY3RzIG9mICVzIGFyZSByZWFjaGFibGUiKSwgc2hhMV90b19oZXgob2JqLT5zaGExKSk7CkBAIC0xNDkxLDYgKzE0OTYsNyBAQAogCXN0cnVjdCBwYWNrX2lkeF9lbnRyeSAqKmlkeF9vYmplY3RzOwogCXN0cnVjdCBwYWNrX2lkeF9vcHRpb24gb3B0czsKIAl1bnNpZ25lZCBjaGFyIHBhY2tfc2hhMVsyMF07CisJdW5zaWduZWQgZm9yZWlnbl9uciA9IDE7CS8qIHplcm8gaXMgYSAiZ29vZCIgdmFsdWUsIGFzc3VtZSBiYWQgKi8KIAogCWlmIChhcmdjID09IDIgJiYgIXN0cmNtcChhcmd2WzFdLCAiLWgiKSkKIAkJdXNhZ2UoaW5kZXhfcGFja191c2FnZSk7CkBAIC0xNTEyLDYgKzE1MTgsMTAgQEAKIAkJCQlmaXhfdGhpbl9wYWNrID0gMTsKIAkJCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXN0cmljdCIpKSB7CiAJCQkJc3RyaWN0ID0gMTsKKwkJCQlkb19mc2NrX29iamVjdCA9IDE7CisJCQl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1jaGVjay1zZWxmLWNvbnRhaW5lZC1hbmQtY29ubmVjdGVkIikpIHsKKwkJCQlzdHJpY3QgPSAxOworCQkJCWNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgPSAxOwogCQkJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tdmVyaWZ5IikpIHsKIAkJCQl2ZXJpZnkgPSAxOwogCQkJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tdmVyaWZ5LXN0YXQiKSkgewpAQCAtMTYyNSw3ICsxNjM1LDcgQEAKIAljb25jbHVkZV9wYWNrKGZpeF90aGluX3BhY2ssIGN1cnJfcGFjaywgcGFja19zaGExKTsKIAlmcmVlKGRlbHRhcyk7CiAJaWYgKHN0cmljdCkKLQkJY2hlY2tfb2JqZWN0cygpOworCQlmb3JlaWduX25yID0gY2hlY2tfb2JqZWN0cygpOwogCiAJaWYgKHNob3dfc3RhdCkKIAkJc2hvd19wYWNrX2luZm8oc3RhdF9vbmx5KTsKQEAgLTE2NTEsNSArMTY2MSwxMSBAQAogCWlmIChpbmRleF9uYW1lID09IE5VTEwpCiAJCWZyZWUoKHZvaWQgKikgY3Vycl9pbmRleCk7CiAKKwkvKgorCSAqIExldCB0aGUgY2FsbGVyIGtub3cgdGhpcyBwYWNrIGlzIG5vdCBzZWxmIGNvbnRhaW5lZAorCSAqLworCWlmIChjaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkICYmIGZvcmVpZ25fbnIpCisJCXJldHVybiAxOworCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9idWlsdGluL2xvZy5jIGIvYnVpbHRpbi9sb2cuYwppbmRleCA2ZTU2YTUwLi4yNjI1Zjk4IDEwMDY0NAotLS0gYS9idWlsdGluL2xvZy5jCisrKyBiL2J1aWx0aW4vbG9nLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJyZW1vdGUuaCIKICNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgogI2luY2x1ZGUgInBhcnNlLW9wdGlvbnMuaCIKKyNpbmNsdWRlICJsaW5lLWxvZy5oIgogI2luY2x1ZGUgImJyYW5jaC5oIgogI2luY2x1ZGUgInN0cmVhbWluZy5oIgogI2luY2x1ZGUgInZlcnNpb24uaCIKQEAgLTQyLDYgKzQzLDEyIEBACiAJTlVMTAogfTsKIAorc3RydWN0IGxpbmVfb3B0X2NhbGxiYWNrX2RhdGEgeworCXN0cnVjdCByZXZfaW5mbyAqcmV2OworCWNvbnN0IGNoYXIgKnByZWZpeDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgYXJnczsKK307CisKIHN0YXRpYyBpbnQgcGFyc2VfZGVjb3JhdGlvbl9zdHlsZShjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlKQogewogCXN3aXRjaCAoZ2l0X2NvbmZpZ19tYXliZV9ib29sKHZhciwgdmFsdWUpKSB7CkBAIC03Niw2ICs4MywxOSBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGxvZ19saW5lX3JhbmdlX2NhbGxiYWNrKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdGlvbiwgY29uc3QgY2hhciAqYXJnLCBpbnQgdW5zZXQpCit7CisJc3RydWN0IGxpbmVfb3B0X2NhbGxiYWNrX2RhdGEgKmRhdGEgPSBvcHRpb24tPnZhbHVlOworCisJaWYgKCFhcmcpCisJCXJldHVybiAtMTsKKworCWRhdGEtPnJldi0+bGluZV9sZXZlbF90cmF2ZXJzZSA9IDE7CisJc3RyaW5nX2xpc3RfYXBwZW5kKCZkYXRhLT5hcmdzLCBhcmcpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lkIGNtZF9sb2dfaW5pdF9kZWZhdWx0cyhzdHJ1Y3QgcmV2X2luZm8gKnJldikKIHsKIAlpZiAoZm10X3ByZXR0eSkKQEAgLTk4LDYgKzExOCw3IEBACiB7CiAJc3RydWN0IHVzZXJmb3JtYXRfd2FudCB3OwogCWludCBxdWlldCA9IDAsIHNvdXJjZSA9IDAsIG1haWxtYXAgPSAwOworCXN0YXRpYyBzdHJ1Y3QgbGluZV9vcHRfY2FsbGJhY2tfZGF0YSBsaW5lX2NiID0ge05VTEwsIE5VTEwsIFNUUklOR19MSVNUX0lOSVRfRFVQfTsKIAogCWNvbnN0IHN0cnVjdCBvcHRpb24gYnVpbHRpbl9sb2dfb3B0aW9uc1tdID0gewogCQlPUFRfQk9PTCgwLCAicXVpZXQiLCAmcXVpZXQsIE5fKCJzdXBwcmVzcyBkaWZmIG91dHB1dCIpKSwKQEAgLTEwNSw5ICsxMjYsMTUgQEAKIAkJT1BUX0JPT0woMCwgInVzZS1tYWlsbWFwIiwgJm1haWxtYXAsIE5fKCJVc2UgbWFpbCBtYXAgZmlsZSIpKSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssIDAsICJkZWNvcmF0ZSIsIE5VTEwsIE5VTEwsIE5fKCJkZWNvcmF0ZSBvcHRpb25zIiksCiAJCSAgUEFSU0VfT1BUX09QVEFSRywgZGVjb3JhdGVfY2FsbGJhY2t9LAorCQlPUFRfQ0FMTEJBQ0soJ0wnLCBOVUxMLCAmbGluZV9jYiwgIm4sbTpmaWxlIiwKKwkJCSAgICAgIlByb2Nlc3MgbGluZSByYW5nZSBuLG0gaW4gZmlsZSwgY291bnRpbmcgZnJvbSAxIiwKKwkJCSAgICAgbG9nX2xpbmVfcmFuZ2VfY2FsbGJhY2spLAogCQlPUFRfRU5EKCkKIAl9OwogCisJbGluZV9jYi5yZXYgPSByZXY7CisJbGluZV9jYi5wcmVmaXggPSBwcmVmaXg7CisKIAltYWlsbWFwID0gdXNlX21haWxtYXBfY29uZmlnOwogCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YsIHByZWZpeCwKIAkJCSAgICAgYnVpbHRpbl9sb2dfb3B0aW9ucywgYnVpbHRpbl9sb2dfdXNhZ2UsCkBAIC0xNjEsNiArMTg4LDEwIEBACiAJCXJldi0+c2hvd19kZWNvcmF0aW9ucyA9IDE7CiAJCWxvYWRfcmVmX2RlY29yYXRpb25zKGRlY29yYXRpb25fc3R5bGUpOwogCX0KKworCWlmIChyZXYtPmxpbmVfbGV2ZWxfdHJhdmVyc2UpCisJCWxpbmVfbG9nX2luaXQocmV2LCBsaW5lX2NiLnByZWZpeCwgJmxpbmVfY2IuYXJncyk7CisKIAlzZXR1cF9wYWdlcigpOwogfQogCkBAIC0yMDYsNyArMjM3LDcgQEAKIAlpbnQgaSA9IHJldnMtPmVhcmx5X291dHB1dDsKIAlpbnQgc2hvd19oZWFkZXIgPSAxOwogCi0Jc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcigmbGlzdCwgcmV2cy0+bGlmbyk7CisJc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcigmbGlzdCwgcmV2cy0+c29ydF9vcmRlcik7CiAJd2hpbGUgKGxpc3QgJiYgaSkgewogCQlzdHJ1Y3QgY29tbWl0ICpjb21taXQgPSBsaXN0LT5pdGVtOwogCQlzd2l0Y2ggKHNpbXBsaWZ5X2NvbW1pdChyZXZzLCBjb21taXQpKSB7CkBAIC0xMDgxLDYgKzExMTIsMjEgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBmcm9tX2NhbGxiYWNrKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdCwgY29uc3QgY2hhciAqYXJnLCBpbnQgdW5zZXQpCit7CisJY2hhciAqKmZyb20gPSBvcHQtPnZhbHVlOworCisJZnJlZSgqZnJvbSk7CisKKwlpZiAodW5zZXQpCisJCSpmcm9tID0gTlVMTDsKKwllbHNlIGlmIChhcmcpCisJCSpmcm9tID0geHN0cmR1cChhcmcpOworCWVsc2UKKwkJKmZyb20gPSB4c3RyZHVwKGdpdF9jb21taXR0ZXJfaW5mbyhJREVOVF9OT19EQVRFKSk7CisJcmV0dXJuIDA7Cit9CisKIGludCBjbWRfZm9ybWF0X3BhdGNoKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQogewogCXN0cnVjdCBjb21taXQgKmNvbW1pdDsKQEAgLTExMDMsNiArMTE0OSw3IEBACiAJaW50IHF1aWV0ID0gMDsKIAlpbnQgcmVyb2xsX2NvdW50ID0gLTE7CiAJY2hhciAqYnJhbmNoX25hbWUgPSBOVUxMOworCWNoYXIgKmZyb20gPSBOVUxMOwogCWNvbnN0IHN0cnVjdCBvcHRpb24gYnVpbHRpbl9mb3JtYXRfcGF0Y2hfb3B0aW9uc1tdID0gewogCQl7IE9QVElPTl9DQUxMQkFDSywgJ24nLCAibnVtYmVyZWQiLCAmbnVtYmVyZWQsIE5VTEwsCiAJCQkgICAgTl8oInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giKSwKQEAgLTExNDYsNiArMTE5Myw5IEBACiAJCQkgICAgMCwgdG9fY2FsbGJhY2sgfSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssIDAsICJjYyIsIE5VTEwsIE5fKCJlbWFpbCIpLCBOXygiYWRkIENjOiBoZWFkZXIiKSwKIAkJCSAgICAwLCBjY19jYWxsYmFjayB9LAorCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImZyb20iLCAmZnJvbSwgTl8oImlkZW50IiksCisJCQkgICAgTl8oInNldCBGcm9tIGFkZHJlc3MgdG8gPGlkZW50PiAob3IgY29tbWl0dGVyIGlkZW50IGlmIGFic2VudCkiKSwKKwkJCSAgICBQQVJTRV9PUFRfT1BUQVJHLCBmcm9tX2NhbGxiYWNrIH0sCiAJCU9QVF9TVFJJTkcoMCwgImluLXJlcGx5LXRvIiwgJmluX3JlcGx5X3RvLCBOXygibWVzc2FnZS1pZCIpLAogCQkJICAgIE5fKCJtYWtlIGZpcnN0IG1haWwgYSByZXBseSB0byA8bWVzc2FnZS1pZD4iKSksCiAJCXsgT1BUSU9OX0NBTExCQUNLLCAwLCAiYXR0YWNoIiwgJnJldiwgTl8oImJvdW5kYXJ5IiksCkBAIC0xMjMzLDYgKzEyODMsMTEgQEAKIAogCXJldi5leHRyYV9oZWFkZXJzID0gc3RyYnVmX2RldGFjaCgmYnVmLCBOVUxMKTsKIAorCWlmIChmcm9tKSB7CisJCWlmIChzcGxpdF9pZGVudF9saW5lKCZyZXYuZnJvbV9pZGVudCwgZnJvbSwgc3RybGVuKGZyb20pKSkKKwkJCWRpZShfKCJpbnZhbGlkIGlkZW50IGxpbmU6ICVzIiksIGZyb20pOworCX0KKwogCWlmIChzdGFydF9udW1iZXIgPCAwKQogCQlzdGFydF9udW1iZXIgPSAxOwogCmRpZmYgLS1naXQgYS9idWlsdGluL2xzLWZpbGVzLmMgYi9idWlsdGluL2xzLWZpbGVzLmMKaW5kZXggMjIwMjA3Mi4uNWNmM2UzMSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9scy1maWxlcy5jCisrKyBiL2J1aWx0aW4vbHMtZmlsZXMuYwpAQCAtNDYsMTAgKzQ2LDE0IEBACiBzdGF0aWMgY29uc3QgY2hhciAqdGFnX3NraXBfd29ya3RyZWUgPSAiIjsKIHN0YXRpYyBjb25zdCBjaGFyICp0YWdfcmVzb2x2ZV91bmRvID0gIiI7CiAKLXN0YXRpYyB2b2lkIHdyaXRlX25hbWUoY29uc3QgY2hhciogbmFtZSwgc2l6ZV90IGxlbikKK3N0YXRpYyB2b2lkIHdyaXRlX25hbWUoY29uc3QgY2hhciAqbmFtZSkKIHsKLQl3cml0ZV9uYW1lX3F1b3RlZF9yZWxhdGl2ZShuYW1lLCBsZW4sIHByZWZpeCwgcHJlZml4X2xlbiwgc3Rkb3V0LAotCQkJbGluZV90ZXJtaW5hdG9yKTsKKwkvKgorCSAqIFdpdGggIi0tZnVsbC1uYW1lIiwgcHJlZml4X2xlbj0wOyB0aGlzIGNhbGxlciBuZWVkcyB0byBwYXNzCisJICogYW4gZW1wdHkgc3RyaW5nIGluIHRoYXQgY2FzZSAoYSBOVUxMIGlzIGdvb2QgZm9yICIiKS4KKwkgKi8KKwl3cml0ZV9uYW1lX3F1b3RlZF9yZWxhdGl2ZShuYW1lLCBwcmVmaXhfbGVuID8gcHJlZml4IDogTlVMTCwKKwkJCQkgICBzdGRvdXQsIGxpbmVfdGVybWluYXRvcik7CiB9CiAKIHN0YXRpYyB2b2lkIHNob3dfZGlyX2VudHJ5KGNvbnN0IGNoYXIgKnRhZywgc3RydWN0IGRpcl9lbnRyeSAqZW50KQpAQCAtNjMsNyArNjcsNyBAQAogCQlyZXR1cm47CiAKIAlmcHV0cyh0YWcsIHN0ZG91dCk7Ci0Jd3JpdGVfbmFtZShlbnQtPm5hbWUsIGVudC0+bGVuKTsKKwl3cml0ZV9uYW1lKGVudC0+bmFtZSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNob3dfb3RoZXJfZmlsZXMoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpcikKQEAgLTEyNyw3ICsxMzEsNyBAQAogCX0KIH0KIAotc3RhdGljIHZvaWQgc2hvd19jZV9lbnRyeShjb25zdCBjaGFyICp0YWcsIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UpCitzdGF0aWMgdm9pZCBzaG93X2NlX2VudHJ5KGNvbnN0IGNoYXIgKnRhZywgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAlpbnQgbGVuID0gbWF4X3ByZWZpeF9sZW47CiAKQEAgLTE2MywxMyArMTY3LDE1IEBACiAJCSAgICAgICBmaW5kX3VuaXF1ZV9hYmJyZXYoY2UtPnNoYTEsYWJicmV2KSwKIAkJICAgICAgIGNlX3N0YWdlKGNlKSk7CiAJfQotCXdyaXRlX25hbWUoY2UtPm5hbWUsIGNlX25hbWVsZW4oY2UpKTsKKwl3cml0ZV9uYW1lKGNlLT5uYW1lKTsKIAlpZiAoZGVidWdfbW9kZSkgewotCQlwcmludGYoIiAgY3RpbWU6ICVkOiVkXG4iLCBjZS0+Y2VfY3RpbWUuc2VjLCBjZS0+Y2VfY3RpbWUubnNlYyk7Ci0JCXByaW50ZigiICBtdGltZTogJWQ6JWRcbiIsIGNlLT5jZV9tdGltZS5zZWMsIGNlLT5jZV9tdGltZS5uc2VjKTsKLQkJcHJpbnRmKCIgIGRldjogJWRcdGlubzogJWRcbiIsIGNlLT5jZV9kZXYsIGNlLT5jZV9pbm8pOwotCQlwcmludGYoIiAgdWlkOiAlZFx0Z2lkOiAlZFxuIiwgY2UtPmNlX3VpZCwgY2UtPmNlX2dpZCk7Ci0JCXByaW50ZigiICBzaXplOiAlZFx0ZmxhZ3M6ICV4XG4iLCBjZS0+Y2Vfc2l6ZSwgY2UtPmNlX2ZsYWdzKTsKKwkJY29uc3Qgc3RydWN0IHN0YXRfZGF0YSAqc2QgPSAmY2UtPmNlX3N0YXRfZGF0YTsKKworCQlwcmludGYoIiAgY3RpbWU6ICVkOiVkXG4iLCBzZC0+c2RfY3RpbWUuc2VjLCBzZC0+c2RfY3RpbWUubnNlYyk7CisJCXByaW50ZigiICBtdGltZTogJWQ6JWRcbiIsIHNkLT5zZF9tdGltZS5zZWMsIHNkLT5zZF9tdGltZS5uc2VjKTsKKwkJcHJpbnRmKCIgIGRldjogJWRcdGlubzogJWRcbiIsIHNkLT5zZF9kZXYsIHNkLT5zZF9pbm8pOworCQlwcmludGYoIiAgdWlkOiAlZFx0Z2lkOiAlZFxuIiwgc2QtPnNkX3VpZCwgc2QtPnNkX2dpZCk7CisJCXByaW50ZigiICBzaXplOiAlZFx0ZmxhZ3M6ICV4XG4iLCBzZC0+c2Rfc2l6ZSwgY2UtPmNlX2ZsYWdzKTsKIAl9CiB9CiAKQEAgLTE5NiwxMiArMjAyLDEyIEBACiAJCQlwcmludGYoIiVzJTA2byAlcyAlZFx0IiwgdGFnX3Jlc29sdmVfdW5kbywgdWktPm1vZGVbaV0sCiAJCQkgICAgICAgZmluZF91bmlxdWVfYWJicmV2KHVpLT5zaGExW2ldLCBhYmJyZXYpLAogCQkJICAgICAgIGkgKyAxKTsKLQkJCXdyaXRlX25hbWUocGF0aCwgbGVuKTsKKwkJCXdyaXRlX25hbWUocGF0aCk7CiAJCX0KIAl9CiB9CiAKLXN0YXRpYyBpbnQgY2VfZXhjbHVkZWQoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpciwgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKK3N0YXRpYyBpbnQgY2VfZXhjbHVkZWQoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpciwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAlpbnQgZHR5cGUgPSBjZV90b19kdHlwZShjZSk7CiAJcmV0dXJuIGlzX2V4Y2x1ZGVkKGRpciwgY2UtPm5hbWUsICZkdHlwZSk7CkBAIC0yMTksOSArMjI1LDkgQEAKIAkJaWYgKHNob3dfa2lsbGVkKQogCQkJc2hvd19raWxsZWRfZmlsZXMoZGlyKTsKIAl9Ci0JaWYgKHNob3dfY2FjaGVkIHwgc2hvd19zdGFnZSkgeworCWlmIChzaG93X2NhY2hlZCB8fCBzaG93X3N0YWdlKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBhY3RpdmVfbnI7IGkrKykgewotCQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CiAJCQlpZiAoKGRpci0+ZmxhZ3MgJiBESVJfU0hPV19JR05PUkVEKSAmJgogCQkJICAgICFjZV9leGNsdWRlZChkaXIsIGNlKSkKIAkJCQljb250aW51ZTsKQEAgLTIzMyw5ICsyMzksOSBAQAogCQkJCShjZV9za2lwX3dvcmt0cmVlKGNlKSA/IHRhZ19za2lwX3dvcmt0cmVlIDogdGFnX2NhY2hlZCksIGNlKTsKIAkJfQogCX0KLQlpZiAoc2hvd19kZWxldGVkIHwgc2hvd19tb2RpZmllZCkgeworCWlmIChzaG93X2RlbGV0ZWQgfHwgc2hvd19tb2RpZmllZCkgewogCQlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CisJCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOwogCQkJc3RydWN0IHN0YXQgc3Q7CiAJCQlpbnQgZXJyOwogCQkJaWYgKChkaXItPmZsYWdzICYgRElSX1NIT1dfSUdOT1JFRCkgJiYKQEAgLTI3MSw3ICsyNzcsNyBAQAogCWxhc3QgPSBhY3RpdmVfbnI7CiAJd2hpbGUgKGxhc3QgPiBmaXJzdCkgewogCQlpbnQgbmV4dCA9IChsYXN0ICsgZmlyc3QpID4+IDE7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbbmV4dF07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbbmV4dF07CiAJCWlmICghc3RybmNtcChjZS0+bmFtZSwgcHJlZml4LCBtYXhfcHJlZml4X2xlbikpIHsKIAkJCWZpcnN0ID0gbmV4dCsxOwogCQkJY29udGludWU7CkBAIC0zODksNyArMzk1LDcgQEAKIAkJaWYgKGZvdW5kX2R1cCkKIAkJCWNvbnRpbnVlOwogCi0JCW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGhzcGVjW251bV0sIC0xLCAmc2IsIHByZWZpeCk7CisJCW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGhzcGVjW251bV0sIHByZWZpeCwgJnNiKTsKIAkJZXJyb3IoInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZShzKSBrbm93biB0byBnaXQuIiwKIAkJICAgICAgbmFtZSk7CiAJCWVycm9ycysrOwpAQCAtNTcxLDggKzU3Nyw4IEBACiAJCWRpZSgibHMtZmlsZXMgLS1pZ25vcmVkIG5lZWRzIHNvbWUgZXhjbHVkZSBwYXR0ZXJuIik7CiAKIAkvKiBXaXRoIG5vIGZsYWdzLCB3ZSBkZWZhdWx0IHRvIHNob3dpbmcgdGhlIGNhY2hlZCBmaWxlcyAqLwotCWlmICghKHNob3dfc3RhZ2UgfCBzaG93X2RlbGV0ZWQgfCBzaG93X290aGVycyB8IHNob3dfdW5tZXJnZWQgfAotCSAgICAgIHNob3dfa2lsbGVkIHwgc2hvd19tb2RpZmllZCB8IHNob3dfcmVzb2x2ZV91bmRvKSkKKwlpZiAoIShzaG93X3N0YWdlIHx8IHNob3dfZGVsZXRlZCB8fCBzaG93X290aGVycyB8fCBzaG93X3VubWVyZ2VkIHx8CisJICAgICAgc2hvd19raWxsZWQgfHwgc2hvd19tb2RpZmllZCB8fCBzaG93X3Jlc29sdmVfdW5kbykpCiAJCXNob3dfY2FjaGVkID0gMTsKIAogCWlmIChtYXhfcHJlZml4KQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9tZXJnZS1iYXNlLmMgYi9idWlsdGluL21lcmdlLWJhc2UuYwppbmRleCAxYmM3OTkxLi4wYzRjZDJmIDEwMDY0NAotLS0gYS9idWlsdGluL21lcmdlLWJhc2UuYworKysgYi9idWlsdGluL21lcmdlLWJhc2UuYwpAQCAtMTA3LDcgKzEwNyw3IEBACiAJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBvcHRpb25zLCBtZXJnZV9iYXNlX3VzYWdlLCAwKTsKIAlpZiAoIW9jdG9wdXMgJiYgIXJlZHVjZSAmJiBhcmdjIDwgMikKIAkJdXNhZ2Vfd2l0aF9vcHRpb25zKG1lcmdlX2Jhc2VfdXNhZ2UsIG9wdGlvbnMpOwotCWlmIChpc19hbmNlc3RvciAmJiAoc2hvd19hbGwgfCBvY3RvcHVzIHwgcmVkdWNlKSkKKwlpZiAoaXNfYW5jZXN0b3IgJiYgKHNob3dfYWxsIHx8IG9jdG9wdXMgfHwgcmVkdWNlKSkKIAkJZGllKCItLWlzLWFuY2VzdG9yIGNhbm5vdCBiZSB1c2VkIHdpdGggb3RoZXIgb3B0aW9ucyIpOwogCWlmIChpc19hbmNlc3RvcikKIAkJcmV0dXJuIGhhbmRsZV9pc19hbmNlc3RvcihhcmdjLCBhcmd2KTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vbWVyZ2UtaW5kZXguYyBiL2J1aWx0aW4vbWVyZ2UtaW5kZXguYwppbmRleCBiZTVlNTE0Li5iNDE2ZDkyIDEwMDY0NAotLS0gYS9idWlsdGluL21lcmdlLWluZGV4LmMKKysrIGIvYnVpbHRpbi9tZXJnZS1pbmRleC5jCkBAIC0xNiw3ICsxNiw3IEBACiAJCWRpZSgiZ2l0IG1lcmdlLWluZGV4OiAlcyBub3QgaW4gdGhlIGNhY2hlIiwgcGF0aCk7CiAJZm91bmQgPSAwOwogCWRvIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CiAJCWludCBzdGFnZSA9IGNlX3N0YWdlKGNlKTsKIAogCQlpZiAoc3RyY21wKGNlLT5uYW1lLCBwYXRoKSkKQEAgLTU4LDcgKzU4LDcgQEAKIHsKIAlpbnQgaTsKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJaWYgKCFjZV9zdGFnZShjZSkpCiAJCQljb250aW51ZTsKIAkJaSArPSBtZXJnZV9lbnRyeShpLCBjZS0+bmFtZSktMTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vbWVyZ2UuYyBiL2J1aWx0aW4vbWVyZ2UuYwppbmRleCAzZTJkYWEzLi4zNGE2MTY2IDEwMDY0NAotLS0gYS9idWlsdGluL21lcmdlLmMKKysrIGIvYnVpbHRpbi9tZXJnZS5jCkBAIC00Nyw4ICs0Nyw4IEBACiB9OwogCiBzdGF0aWMgaW50IHNob3dfZGlmZnN0YXQgPSAxLCBzaG9ydGxvZ19sZW4gPSAtMSwgc3F1YXNoOwotc3RhdGljIGludCBvcHRpb25fY29tbWl0ID0gMSwgYWxsb3dfZmFzdF9mb3J3YXJkID0gMTsKLXN0YXRpYyBpbnQgZmFzdF9mb3J3YXJkX29ubHksIG9wdGlvbl9lZGl0ID0gLTE7CitzdGF0aWMgaW50IG9wdGlvbl9jb21taXQgPSAxOworc3RhdGljIGludCBvcHRpb25fZWRpdCA9IC0xOwogc3RhdGljIGludCBhbGxvd190cml2aWFsID0gMSwgaGF2ZV9tZXNzYWdlLCB2ZXJpZnlfc2lnbmF0dXJlczsKIHN0YXRpYyBpbnQgb3ZlcndyaXRlX2lnbm9yZSA9IDE7CiBzdGF0aWMgc3RydWN0IHN0cmJ1ZiBtZXJnZV9tc2cgPSBTVFJCVUZfSU5JVDsKQEAgLTc2LDYgKzc2LDE0IEBACiAKIHN0YXRpYyBjb25zdCBjaGFyICpwdWxsX3R3b2hlYWQsICpwdWxsX29jdG9wdXM7CiAKK2VudW0gZmZfdHlwZSB7CisJRkZfTk8sCisJRkZfQUxMT1csCisJRkZfT05MWQorfTsKKworc3RhdGljIGVudW0gZmZfdHlwZSBmYXN0X2ZvcndhcmQgPSBGRl9BTExPVzsKKwogc3RhdGljIGludCBvcHRpb25fcGFyc2VfbWVzc2FnZShjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsCiAJCQkJY29uc3QgY2hhciAqYXJnLCBpbnQgdW5zZXQpCiB7CkBAIC0xNzgsNiArMTg2LDEzIEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgb3B0aW9uX3BhcnNlX2ZmX29ubHkoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LAorCQkJICBjb25zdCBjaGFyICphcmcsIGludCB1bnNldCkKK3sKKwlmYXN0X2ZvcndhcmQgPSBGRl9PTkxZOworCXJldHVybiAwOworfQorCiBzdGF0aWMgc3RydWN0IG9wdGlvbiBidWlsdGluX21lcmdlX29wdGlvbnNbXSA9IHsKIAl7IE9QVElPTl9DQUxMQkFDSywgJ24nLCBOVUxMLCBOVUxMLCBOVUxMLAogCQlOXygiZG8gbm90IHNob3cgYSBkaWZmc3RhdCBhdCB0aGUgZW5kIG9mIHRoZSBtZXJnZSIpLApAQCAtMTk0LDEwICsyMDksMTAgQEAKIAkJTl8oInBlcmZvcm0gYSBjb21taXQgaWYgdGhlIG1lcmdlIHN1Y2NlZWRzIChkZWZhdWx0KSIpKSwKIAlPUFRfQk9PTCgnZScsICJlZGl0IiwgJm9wdGlvbl9lZGl0LAogCQlOXygiZWRpdCBtZXNzYWdlIGJlZm9yZSBjb21taXR0aW5nIikpLAotCU9QVF9CT09MRUFOKDAsICJmZiIsICZhbGxvd19mYXN0X2ZvcndhcmQsCi0JCU5fKCJhbGxvdyBmYXN0LWZvcndhcmQgKGRlZmF1bHQpIikpLAotCU9QVF9CT09MRUFOKDAsICJmZi1vbmx5IiwgJmZhc3RfZm9yd2FyZF9vbmx5LAotCQlOXygiYWJvcnQgaWYgZmFzdC1mb3J3YXJkIGlzIG5vdCBwb3NzaWJsZSIpKSwKKwlPUFRfU0VUX0lOVCgwLCAiZmYiLCAmZmFzdF9mb3J3YXJkLCBOXygiYWxsb3cgZmFzdC1mb3J3YXJkIChkZWZhdWx0KSIpLCBGRl9BTExPVyksCisJeyBPUFRJT05fQ0FMTEJBQ0ssIDAsICJmZi1vbmx5IiwgTlVMTCwgTlVMTCwKKwkJTl8oImFib3J0IGlmIGZhc3QtZm9yd2FyZCBpcyBub3QgcG9zc2libGUiKSwKKwkJUEFSU0VfT1BUX05PQVJHIHwgUEFSU0VfT1BUX05PTkVHLCBvcHRpb25fcGFyc2VfZmZfb25seSB9LAogCU9QVF9SRVJFUkVfQVVUT1VQREFURSgmYWxsb3dfcmVyZXJlX2F1dG8pLAogCU9QVF9CT09MKDAsICJ2ZXJpZnktc2lnbmF0dXJlcyIsICZ2ZXJpZnlfc2lnbmF0dXJlcywKIAkJTl8oIlZlcmlmeSB0aGF0IHRoZSBuYW1lZCBjb21taXQgaGFzIGEgdmFsaWQgR1BHIHNpZ25hdHVyZSIpKSwKQEAgLTU4MSwxMCArNTk2LDkgQEAKIAllbHNlIGlmICghc3RyY21wKGssICJtZXJnZS5mZiIpKSB7CiAJCWludCBib29sdmFsID0gZ2l0X2NvbmZpZ19tYXliZV9ib29sKGssIHYpOwogCQlpZiAoMCA8PSBib29sdmFsKSB7Ci0JCQlhbGxvd19mYXN0X2ZvcndhcmQgPSBib29sdmFsOworCQkJZmFzdF9mb3J3YXJkID0gYm9vbHZhbCA/IEZGX0FMTE9XIDogRkZfTk87CiAJCX0gZWxzZSBpZiAodiAmJiAhc3RyY21wKHYsICJvbmx5IikpIHsKLQkJCWFsbG93X2Zhc3RfZm9yd2FyZCA9IDE7Ci0JCQlmYXN0X2ZvcndhcmRfb25seSA9IDE7CisJCQlmYXN0X2ZvcndhcmQgPSBGRl9PTkxZOwogCQl9IC8qIGRvIG5vdCBiYXJmIG9uIHZhbHVlcyBmcm9tIGZ1dHVyZSB2ZXJzaW9ucyBvZiBnaXQgKi8KIAkJcmV0dXJuIDA7CiAJfSBlbHNlIGlmICghc3RyY21wKGssICJtZXJnZS5kZWZhdWx0dG91cHN0cmVhbSIpKSB7CkBAIC04NjMsNyArODc3LDcgQEAKIAogCWZyZWVfY29tbWl0X2xpc3QoY29tbW9uKTsKIAlwYXJlbnRzID0gcmVtb3RlaGVhZHM7Ci0JaWYgKCFoZWFkX3N1YnN1bWVkIHx8ICFhbGxvd19mYXN0X2ZvcndhcmQpCisJaWYgKCFoZWFkX3N1YnN1bWVkIHx8IGZhc3RfZm9yd2FyZCA9PSBGRl9OTykKIAkJY29tbWl0X2xpc3RfaW5zZXJ0KGhlYWQsICZwYXJlbnRzKTsKIAlzdHJidWZfYWRkY2goJm1lcmdlX21zZywgJ1xuJyk7CiAJcHJlcGFyZV90b19jb21taXQocmVtb3RlaGVhZHMpOwpAQCAtODg5LDcgKzkwMyw3IEBACiAJCWRpZV9lcnJubyhfKCJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nIiksIGZpbGVuYW1lKTsKIAlmcHJpbnRmKGZwLCAiXG5Db25mbGljdHM6XG4iKTsKIAlmb3IgKHBvcyA9IDA7IHBvcyA8IGFjdGl2ZV9ucjsgcG9zKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CiAKIAkJaWYgKGNlX3N0YWdlKGNlKSkgewogCQkJZnByaW50ZihmcCwgIlx0JXNcbiIsIGNlLT5uYW1lKTsKQEAgLTk0OCw3ICs5NjIsNyBAQAogfQogCiAvKgotICogUHJldGVuZCBhcyBpZiB0aGUgdXNlciB0b2xkIHVzIHRvIG1lcmdlIHdpdGggdGhlIHRyYWNraW5nCisgKiBQcmV0ZW5kIGFzIGlmIHRoZSB1c2VyIHRvbGQgdXMgdG8gbWVyZ2Ugd2l0aCB0aGUgcmVtb3RlLXRyYWNraW5nCiAgKiBicmFuY2ggd2UgaGF2ZSBmb3IgdGhlIHVwc3RyZWFtIG9mIHRoZSBjdXJyZW50IGJyYW5jaAogICovCiBzdGF0aWMgaW50IHNldHVwX3dpdGhfdXBzdHJlYW0oY29uc3QgY2hhciAqKiphcmd2KQpAQCAtOTY3LDcgKzk4MSw3IEBACiAJYXJncyA9IHhjYWxsb2MoYnJhbmNoLT5tZXJnZV9uciArIDEsIHNpemVvZihjaGFyICopKTsKIAlmb3IgKGkgPSAwOyBpIDwgYnJhbmNoLT5tZXJnZV9ucjsgaSsrKSB7CiAJCWlmICghYnJhbmNoLT5tZXJnZVtpXS0+ZHN0KQotCQkJZGllKF8oIk5vIHJlbW90ZSB0cmFja2luZyBicmFuY2ggZm9yICVzIGZyb20gJXMiKSwKKwkJCWRpZShfKCJObyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGZvciAlcyBmcm9tICVzIiksCiAJCQkgICAgYnJhbmNoLT5tZXJnZVtpXS0+c3JjLCBicmFuY2gtPnJlbW90ZV9uYW1lKTsKIAkJYXJnc1tpXSA9IGJyYW5jaC0+bWVyZ2VbaV0tPmRzdDsKIAl9CkBAIC0xMDA4LDcgKzEwMjIsNyBAQAogCWlmIChmZCA8IDApCiAJCWRpZV9lcnJubyhfKCJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nIiksIGZpbGVuYW1lKTsKIAlzdHJidWZfcmVzZXQoJmJ1Zik7Ci0JaWYgKCFhbGxvd19mYXN0X2ZvcndhcmQpCisJaWYgKGZhc3RfZm9yd2FyZCA9PSBGRl9OTykKIAkJc3RyYnVmX2FkZGYoJmJ1ZiwgIm5vLWZmIik7CiAJaWYgKHdyaXRlX2luX2Z1bGwoZmQsIGJ1Zi5idWYsIGJ1Zi5sZW4pICE9IGJ1Zi5sZW4pCiAJCWRpZV9lcnJubyhfKCJDb3VsZCBub3Qgd3JpdGUgdG8gJyVzJyIpLCBmaWxlbmFtZSk7CkBAIC0xMDU0LDcgKzEwNjgsOCBAQAogCWZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspIHsKIAkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gZ2V0X21lcmdlX3BhcmVudChhcmd2W2ldKTsKIAkJaWYgKCFjb21taXQpCi0JCQlkaWUoXygiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIpLCBhcmd2W2ldKTsKKwkJCWhlbHBfdW5rbm93bl9yZWYoYXJndltpXSwgIm1lcmdlIiwKKwkJCQkJICJub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIpOwogCQlyZW1vdGVzID0gJmNvbW1pdF9saXN0X2luc2VydChjb21taXQsIHJlbW90ZXMpLT5uZXh0OwogCX0KIAkqcmVtb3RlcyA9IE5VTEw7CkBAIC0xMTU2LDE0ICsxMTcxLDExIEBACiAJCXNob3dfZGlmZnN0YXQgPSAwOwogCiAJaWYgKHNxdWFzaCkgewotCQlpZiAoIWFsbG93X2Zhc3RfZm9yd2FyZCkKKwkJaWYgKGZhc3RfZm9yd2FyZCA9PSBGRl9OTykKIAkJCWRpZShfKCJZb3UgY2Fubm90IGNvbWJpbmUgLS1zcXVhc2ggd2l0aCAtLW5vLWZmLiIpKTsKIAkJb3B0aW9uX2NvbW1pdCA9IDA7CiAJfQogCi0JaWYgKCFhbGxvd19mYXN0X2ZvcndhcmQgJiYgZmFzdF9mb3J3YXJkX29ubHkpCi0JCWRpZShfKCJZb3UgY2Fubm90IGNvbWJpbmUgLS1uby1mZiB3aXRoIC0tZmYtb25seS4iKSk7Ci0KIAlpZiAoIWFib3J0X2N1cnJlbnRfbWVyZ2UpIHsKIAkJaWYgKCFhcmdjKSB7CiAJCQlpZiAoZGVmYXVsdF90b191cHN0cmVhbSkKQEAgLTEyMDUsNyArMTIxNyw3IEBACiAJCQkJImVtcHR5IGhlYWQiKSk7CiAJCWlmIChzcXVhc2gpCiAJCQlkaWUoXygiU3F1YXNoIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQgbm90IHN1cHBvcnRlZCB5ZXQiKSk7Ci0JCWlmICghYWxsb3dfZmFzdF9mb3J3YXJkKQorCQlpZiAoZmFzdF9mb3J3YXJkID09IEZGX05PKQogCQkJZGllKF8oIk5vbi1mYXN0LWZvcndhcmQgY29tbWl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgaW50byAiCiAJCQkgICAgImFuIGVtcHR5IGhlYWQiKSk7CiAJCXJlbW90ZWhlYWRzID0gY29sbGVjdF9wYXJlbnRzKGhlYWRfY29tbWl0LCAmaGVhZF9zdWJzdW1lZCwgYXJnYywgYXJndik7CkBAIC0xMjkzLDExICsxMzA1LDExIEBACiAJCQkgICAgc2hhMV90b19oZXgoY29tbWl0LT5vYmplY3Quc2hhMSkpOwogCQlzZXRlbnYoYnVmLmJ1ZiwgbWVyZ2VfcmVtb3RlX3V0aWwoY29tbWl0KS0+bmFtZSwgMSk7CiAJCXN0cmJ1Zl9yZXNldCgmYnVmKTsKLQkJaWYgKCFmYXN0X2ZvcndhcmRfb25seSAmJgorCQlpZiAoZmFzdF9mb3J3YXJkICE9IEZGX09OTFkgJiYKIAkJICAgIG1lcmdlX3JlbW90ZV91dGlsKGNvbW1pdCkgJiYKIAkJICAgIG1lcmdlX3JlbW90ZV91dGlsKGNvbW1pdCktPm9iaiAmJgogCQkgICAgbWVyZ2VfcmVtb3RlX3V0aWwoY29tbWl0KS0+b2JqLT50eXBlID09IE9CSl9UQUcpCi0JCQlhbGxvd19mYXN0X2ZvcndhcmQgPSAwOworCQkJZmFzdF9mb3J3YXJkID0gRkZfTk87CiAJfQogCiAJaWYgKG9wdGlvbl9lZGl0IDwgMCkKQEAgLTEzMTQsNyArMTMyNiw3IEBACiAKIAlmb3IgKGkgPSAwOyBpIDwgdXNlX3N0cmF0ZWdpZXNfbnI7IGkrKykgewogCQlpZiAodXNlX3N0cmF0ZWdpZXNbaV0tPmF0dHIgJiBOT19GQVNUX0ZPUldBUkQpCi0JCQlhbGxvd19mYXN0X2ZvcndhcmQgPSAwOworCQkJZmFzdF9mb3J3YXJkID0gRkZfTk87CiAJCWlmICh1c2Vfc3RyYXRlZ2llc1tpXS0+YXR0ciAmIE5PX1RSSVZJQUwpCiAJCQlhbGxvd190cml2aWFsID0gMDsKIAl9CkBAIC0xMzQ0LDcgKzEzNTYsNyBAQAogCQkgKi8KIAkJZmluaXNoX3VwX3RvX2RhdGUoIkFscmVhZHkgdXAtdG8tZGF0ZS4iKTsKIAkJZ290byBkb25lOwotCX0gZWxzZSBpZiAoYWxsb3dfZmFzdF9mb3J3YXJkICYmICFyZW1vdGVoZWFkcy0+bmV4dCAmJgorCX0gZWxzZSBpZiAoZmFzdF9mb3J3YXJkICE9IEZGX05PICYmICFyZW1vdGVoZWFkcy0+bmV4dCAmJgogCQkJIWNvbW1vbi0+bmV4dCAmJgogCQkJIWhhc2hjbXAoY29tbW9uLT5pdGVtLT5vYmplY3Quc2hhMSwgaGVhZF9jb21taXQtPm9iamVjdC5zaGExKSkgewogCQkvKiBBZ2FpbiB0aGUgbW9zdCBjb21tb24gY2FzZSBvZiBtZXJnaW5nIG9uZSByZW1vdGUuICovCkBAIC0xMzkxLDcgKzE0MDMsNyBAQAogCQkgKiBvbmx5IG9uZSBjb21tb24uCiAJCSAqLwogCQlyZWZyZXNoX2NhY2hlKFJFRlJFU0hfUVVJRVQpOwotCQlpZiAoYWxsb3dfdHJpdmlhbCAmJiAhZmFzdF9mb3J3YXJkX29ubHkpIHsKKwkJaWYgKGFsbG93X3RyaXZpYWwgJiYgZmFzdF9mb3J3YXJkICE9IEZGX09OTFkpIHsKIAkJCS8qIFNlZSBpZiBpdCBpcyByZWFsbHkgdHJpdmlhbC4gKi8KIAkJCWdpdF9jb21taXR0ZXJfaW5mbyhJREVOVF9TVFJJQ1QpOwogCQkJcHJpbnRmKF8oIlRyeWluZyByZWFsbHkgdHJpdmlhbCBpbi1pbmRleCBtZXJnZS4uLlxuIikpOwpAQCAtMTQzMiw3ICsxNDQ0LDcgQEAKIAkJfQogCX0KIAotCWlmIChmYXN0X2ZvcndhcmRfb25seSkKKwlpZiAoZmFzdF9mb3J3YXJkID09IEZGX09OTFkpCiAJCWRpZShfKCJOb3QgcG9zc2libGUgdG8gZmFzdC1mb3J3YXJkLCBhYm9ydGluZy4iKSk7CiAKIAkvKiBXZSBhcmUgZ29pbmcgdG8gbWFrZSBhIG5ldyBjb21taXQuICovCmRpZmYgLS1naXQgYS9idWlsdGluL25hbWUtcmV2LmMgYi9idWlsdGluL25hbWUtcmV2LmMKaW5kZXggNjIzODI0Ny4uMGFhYTE5ZSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9uYW1lLXJldi5jCisrKyBiL2J1aWx0aW4vbmFtZS1yZXYuYwpAQCAtNCw2ICs0LDcgQEAKICNpbmNsdWRlICJ0YWcuaCIKICNpbmNsdWRlICJyZWZzLmgiCiAjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgorI2luY2x1ZGUgInNoYTEtbG9va3VwLmgiCiAKICNkZWZpbmUgQ1VUT0ZGX0RBVEVfU0xPUCA4NjQwMCAvKiBvbmUgZGF5ICovCiAKQEAgLTgyLDIzICs4Myw4OCBAQAogCX0KIH0KIAorc3RhdGljIGludCBzdWJwYXRoX21hdGNoZXMoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqZmlsdGVyKQoreworCWNvbnN0IGNoYXIgKnN1YnBhdGggPSBwYXRoOworCisJd2hpbGUgKHN1YnBhdGgpIHsKKwkJaWYgKCFmbm1hdGNoKGZpbHRlciwgc3VicGF0aCwgMCkpCisJCQlyZXR1cm4gc3VicGF0aCAtIHBhdGg7CisJCXN1YnBhdGggPSBzdHJjaHIoc3VicGF0aCwgJy8nKTsKKwkJaWYgKHN1YnBhdGgpCisJCQlzdWJwYXRoKys7CisJfQorCXJldHVybiAtMTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKm5hbWVfcmVmX2FiYnJldihjb25zdCBjaGFyICpyZWZuYW1lLCBpbnQgc2hvcnRlbl91bmFtYmlndW91cykKK3sKKwlpZiAoc2hvcnRlbl91bmFtYmlndW91cykKKwkJcmVmbmFtZSA9IHNob3J0ZW5fdW5hbWJpZ3VvdXNfcmVmKHJlZm5hbWUsIDApOworCWVsc2UgaWYgKCFwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCisJCXJlZm5hbWUgPSByZWZuYW1lICsgMTE7CisJZWxzZSBpZiAoIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy8iKSkKKwkJcmVmbmFtZSA9IHJlZm5hbWUgKyA1OworCXJldHVybiByZWZuYW1lOworfQorCiBzdHJ1Y3QgbmFtZV9yZWZfZGF0YSB7CiAJaW50IHRhZ3Nfb25seTsKIAlpbnQgbmFtZV9vbmx5OwogCWNvbnN0IGNoYXIgKnJlZl9maWx0ZXI7CiB9OwogCitzdGF0aWMgc3RydWN0IHRpcF90YWJsZSB7CisJc3RydWN0IHRpcF90YWJsZV9lbnRyeSB7CisJCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CisJCWNvbnN0IGNoYXIgKnJlZm5hbWU7CisJfSAqdGFibGU7CisJaW50IG5yOworCWludCBhbGxvYzsKKwlpbnQgc29ydGVkOworfSB0aXBfdGFibGU7CisKK3N0YXRpYyB2b2lkIGFkZF90b190aXBfdGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgY29uc3QgY2hhciAqcmVmbmFtZSwKKwkJCSAgICAgaW50IHNob3J0ZW5fdW5hbWJpZ3VvdXMpCit7CisJcmVmbmFtZSA9IG5hbWVfcmVmX2FiYnJldihyZWZuYW1lLCBzaG9ydGVuX3VuYW1iaWd1b3VzKTsKKworCUFMTE9DX0dST1codGlwX3RhYmxlLnRhYmxlLCB0aXBfdGFibGUubnIgKyAxLCB0aXBfdGFibGUuYWxsb2MpOworCWhhc2hjcHkodGlwX3RhYmxlLnRhYmxlW3RpcF90YWJsZS5ucl0uc2hhMSwgc2hhMSk7CisJdGlwX3RhYmxlLnRhYmxlW3RpcF90YWJsZS5ucl0ucmVmbmFtZSA9IHhzdHJkdXAocmVmbmFtZSk7CisJdGlwX3RhYmxlLm5yKys7CisJdGlwX3RhYmxlLnNvcnRlZCA9IDA7Cit9CisKK3N0YXRpYyBpbnQgdGlwY21wKGNvbnN0IHZvaWQgKmFfLCBjb25zdCB2b2lkICpiXykKK3sKKwljb25zdCBzdHJ1Y3QgdGlwX3RhYmxlX2VudHJ5ICphID0gYV8sICpiID0gYl87CisJcmV0dXJuIGhhc2hjbXAoYS0+c2hhMSwgYi0+c2hhMSk7Cit9CisKIHN0YXRpYyBpbnQgbmFtZV9yZWYoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQogewogCXN0cnVjdCBvYmplY3QgKm8gPSBwYXJzZV9vYmplY3Qoc2hhMSk7CiAJc3RydWN0IG5hbWVfcmVmX2RhdGEgKmRhdGEgPSBjYl9kYXRhOworCWludCBjYW5fYWJicmV2aWF0ZV9vdXRwdXQgPSBkYXRhLT50YWdzX29ubHkgJiYgZGF0YS0+bmFtZV9vbmx5OwogCWludCBkZXJlZiA9IDA7CiAKIAlpZiAoZGF0YS0+dGFnc19vbmx5ICYmIHByZWZpeGNtcChwYXRoLCAicmVmcy90YWdzLyIpKQogCQlyZXR1cm4gMDsKIAotCWlmIChkYXRhLT5yZWZfZmlsdGVyICYmIGZubWF0Y2goZGF0YS0+cmVmX2ZpbHRlciwgcGF0aCwgMCkpCi0JCXJldHVybiAwOworCWlmIChkYXRhLT5yZWZfZmlsdGVyKSB7CisJCXN3aXRjaCAoc3VicGF0aF9tYXRjaGVzKHBhdGgsIGRhdGEtPnJlZl9maWx0ZXIpKSB7CisJCWNhc2UgLTE6IC8qIGRpZCBub3QgbWF0Y2ggKi8KKwkJCXJldHVybiAwOworCQljYXNlIDA6ICAvKiBtYXRjaGVkIGZ1bGx5ICovCisJCQlicmVhazsKKwkJZGVmYXVsdDogLyogbWF0Y2hlZCBzdWJwYXRoICovCisJCQljYW5fYWJicmV2aWF0ZV9vdXRwdXQgPSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlhZGRfdG9fdGlwX3RhYmxlKHNoYTEsIHBhdGgsIGNhbl9hYmJyZXZpYXRlX291dHB1dCk7CiAKIAl3aGlsZSAobyAmJiBvLT50eXBlID09IE9CSl9UQUcpIHsKIAkJc3RydWN0IHRhZyAqdCA9IChzdHJ1Y3QgdGFnICopIG87CkBAIC0xMTAsMjAgKzE3NiwzOCBAQAogCWlmIChvICYmIG8tPnR5cGUgPT0gT0JKX0NPTU1JVCkgewogCQlzdHJ1Y3QgY29tbWl0ICpjb21taXQgPSAoc3RydWN0IGNvbW1pdCAqKW87CiAKLQkJaWYgKCFwcmVmaXhjbXAocGF0aCwgInJlZnMvaGVhZHMvIikpCi0JCQlwYXRoID0gcGF0aCArIDExOwotCQllbHNlIGlmIChkYXRhLT50YWdzX29ubHkKLQkJICAgICYmIGRhdGEtPm5hbWVfb25seQotCQkgICAgJiYgIXByZWZpeGNtcChwYXRoLCAicmVmcy90YWdzLyIpKQotCQkJcGF0aCA9IHBhdGggKyAxMDsKLQkJZWxzZSBpZiAoIXByZWZpeGNtcChwYXRoLCAicmVmcy8iKSkKLQkJCXBhdGggPSBwYXRoICsgNTsKLQorCQlwYXRoID0gbmFtZV9yZWZfYWJicmV2KHBhdGgsIGNhbl9hYmJyZXZpYXRlX291dHB1dCk7CiAJCW5hbWVfcmV2KGNvbW1pdCwgeHN0cmR1cChwYXRoKSwgMCwgMCwgZGVyZWYpOwogCX0KIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm50aF90aXBfdGFibGVfZW50KHNpemVfdCBpeCwgdm9pZCAqdGFibGVfKQoreworCXN0cnVjdCB0aXBfdGFibGVfZW50cnkgKnRhYmxlID0gdGFibGVfOworCXJldHVybiB0YWJsZVtpeF0uc2hhMTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmdldF9leGFjdF9yZWZfbWF0Y2goY29uc3Qgc3RydWN0IG9iamVjdCAqbykKK3sKKwlpbnQgZm91bmQ7CisKKwlpZiAoIXRpcF90YWJsZS50YWJsZSB8fCAhdGlwX3RhYmxlLm5yKQorCQlyZXR1cm4gTlVMTDsKKworCWlmICghdGlwX3RhYmxlLnNvcnRlZCkgeworCQlxc29ydCh0aXBfdGFibGUudGFibGUsIHRpcF90YWJsZS5uciwgc2l6ZW9mKCp0aXBfdGFibGUudGFibGUpLAorCQkgICAgICB0aXBjbXApOworCQl0aXBfdGFibGUuc29ydGVkID0gMTsKKwl9CisKKwlmb3VuZCA9IHNoYTFfcG9zKG8tPnNoYTEsIHRpcF90YWJsZS50YWJsZSwgdGlwX3RhYmxlLm5yLAorCQkJIG50aF90aXBfdGFibGVfZW50KTsKKwlpZiAoMCA8PSBmb3VuZCkKKwkJcmV0dXJuIHRpcF90YWJsZS50YWJsZVtmb3VuZF0ucmVmbmFtZTsKKwlyZXR1cm4gTlVMTDsKK30KKwogLyogcmV0dXJucyBhIHN0YXRpYyBidWZmZXIgKi8KIHN0YXRpYyBjb25zdCBjaGFyICpnZXRfcmV2X25hbWUoY29uc3Qgc3RydWN0IG9iamVjdCAqbykKIHsKQEAgLTEzMiw3ICsyMTYsNyBAQAogCXN0cnVjdCBjb21taXQgKmM7CiAKIAlpZiAoby0+dHlwZSAhPSBPQkpfQ09NTUlUKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGdldF9leGFjdF9yZWZfbWF0Y2gobyk7CiAJYyA9IChzdHJ1Y3QgY29tbWl0ICopIG87CiAJbiA9IGMtPnV0aWw7CiAJaWYgKCFuKQpAQCAtMjIzLDcgKzMwNyw3IEBACiBpbnQgY21kX25hbWVfcmV2KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQogewogCXN0cnVjdCBvYmplY3RfYXJyYXkgcmV2cyA9IE9CSkVDVF9BUlJBWV9JTklUOwotCWludCBhbGwgPSAwLCB0cmFuc2Zvcm1fc3RkaW4gPSAwLCBhbGxvd191bmRlZmluZWQgPSAxLCBhbHdheXMgPSAwOworCWludCBhbGwgPSAwLCB0cmFuc2Zvcm1fc3RkaW4gPSAwLCBhbGxvd191bmRlZmluZWQgPSAxLCBhbHdheXMgPSAwLCBwZWVsX3RhZyA9IDA7CiAJc3RydWN0IG5hbWVfcmVmX2RhdGEgZGF0YSA9IHsgMCwgMCwgTlVMTCB9OwogCXN0cnVjdCBvcHRpb24gb3B0c1tdID0gewogCQlPUFRfQk9PTEVBTigwLCAibmFtZS1vbmx5IiwgJmRhdGEubmFtZV9vbmx5LCBOXygicHJpbnQgb25seSBuYW1lcyAobm8gU0hBLTEpIikpLApAQCAtMjM2LDYgKzMyMCwxMiBAQAogCQlPUFRfQk9PTEVBTigwLCAidW5kZWZpbmVkIiwgJmFsbG93X3VuZGVmaW5lZCwgTl8oImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIikpLAogCQlPUFRfQk9PTEVBTigwLCAiYWx3YXlzIiwgICAgICZhbHdheXMsCiAJCQkgICBOXygic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIikpLAorCQl7CisJCQkvKiBBIEhpZGRlbiBPUFRfQk9PTCAqLworCQkJT1BUSU9OX1NFVF9JTlQsIDAsICJwZWVsLXRhZyIsICZwZWVsX3RhZywgTlVMTCwKKwkJCU5fKCJkZXJlZmVyZW5jZSB0YWdzIGluIHRoZSBpbnB1dCAoaW50ZXJuYWwgdXNlKSIpLAorCQkJUEFSU0VfT1BUX05PQVJHIHwgUEFSU0VfT1BUX0hJRERFTiwgTlVMTCwgMSwKKwkJfSwKIAkJT1BUX0VORCgpLAogCX07CiAKQEAgLTI1MCw3ICszNDAsNyBAQAogCiAJZm9yICg7IGFyZ2M7IGFyZ2MtLSwgYXJndisrKSB7CiAJCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07Ci0JCXN0cnVjdCBvYmplY3QgKm87CisJCXN0cnVjdCBvYmplY3QgKm9iamVjdDsKIAkJc3RydWN0IGNvbW1pdCAqY29tbWl0OwogCiAJCWlmIChnZXRfc2hhMSgqYXJndiwgc2hhMSkpIHsKQEAgLTI1OSwxNyArMzQ5LDM0IEBACiAJCQljb250aW51ZTsKIAkJfQogCi0JCW8gPSBkZXJlZl90YWcocGFyc2Vfb2JqZWN0KHNoYTEpLCAqYXJndiwgMCk7Ci0JCWlmICghbyB8fCBvLT50eXBlICE9IE9CSl9DT01NSVQpIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGdldCBjb21taXQgZm9yICVzLiBTa2lwcGluZy5cbiIsCisJCWNvbW1pdCA9IE5VTEw7CisJCW9iamVjdCA9IHBhcnNlX29iamVjdChzaGExKTsKKwkJaWYgKG9iamVjdCkgeworCQkJc3RydWN0IG9iamVjdCAqcGVlbGVkID0gZGVyZWZfdGFnKG9iamVjdCwgKmFyZ3YsIDApOworCQkJaWYgKHBlZWxlZCAmJiBwZWVsZWQtPnR5cGUgPT0gT0JKX0NPTU1JVCkKKwkJCQljb21taXQgPSAoc3RydWN0IGNvbW1pdCAqKXBlZWxlZDsKKwkJfQorCisJCWlmICghb2JqZWN0KSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkNvdWxkIG5vdCBnZXQgb2JqZWN0IGZvciAlcy4gU2tpcHBpbmcuXG4iLAogCQkJCQkqYXJndik7CiAJCQljb250aW51ZTsKIAkJfQogCi0JCWNvbW1pdCA9IChzdHJ1Y3QgY29tbWl0ICopbzsKLQkJaWYgKGN1dG9mZiA+IGNvbW1pdC0+ZGF0ZSkKLQkJCWN1dG9mZiA9IGNvbW1pdC0+ZGF0ZTsKLQkJYWRkX29iamVjdF9hcnJheSgoc3RydWN0IG9iamVjdCAqKWNvbW1pdCwgKmFyZ3YsICZyZXZzKTsKKwkJaWYgKGNvbW1pdCkgeworCQkJaWYgKGN1dG9mZiA+IGNvbW1pdC0+ZGF0ZSkKKwkJCQljdXRvZmYgPSBjb21taXQtPmRhdGU7CisJCX0KKworCQlpZiAocGVlbF90YWcpIHsKKwkJCWlmICghY29tbWl0KSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3QgZ2V0IGNvbW1pdCBmb3IgJXMuIFNraXBwaW5nLlxuIiwKKwkJCQkJKmFyZ3YpOworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJb2JqZWN0ID0gKHN0cnVjdCBvYmplY3QgKiljb21taXQ7CisJCX0KKwkJYWRkX29iamVjdF9hcnJheShvYmplY3QsICphcmd2LCAmcmV2cyk7CiAJfQogCiAJaWYgKGN1dG9mZikKZGlmZiAtLWdpdCBhL2J1aWx0aW4vbm90ZXMuYyBiL2J1aWx0aW4vbm90ZXMuYwppbmRleCA1Nzc0OGE2Li5lNDEwMGM0IDEwMDY0NAotLS0gYS9idWlsdGluL25vdGVzLmMKKysrIGIvYnVpbHRpbi9ub3Rlcy5jCkBAIC00LDcgKzQsNyBAQAogICogQ29weXJpZ2h0IChjKSAyMDEwIEpvaGFuIEhlcmxhbmQgPGpvaGFuQGhlcmxhbmQubmV0PgogICoKICAqIEJhc2VkIG9uIGdpdC1ub3Rlcy5zaCBieSBKb2hhbm5lcyBTY2hpbmRlbGluLAotICogYW5kIGJ1aWx0aW4tdGFnLmMgYnkgS3Jpc3RpYW4gSMO4Z3NiZXJnIGFuZCBDYXJsb3MgUmljYS4KKyAqIGFuZCBidWlsdGluL3RhZy5jIGJ5IEtyaXN0aWFuIEjDuGdzYmVyZyBhbmQgQ2FybG9zIFJpY2EuCiAgKi8KIAogI2luY2x1ZGUgImNhY2hlLmgiCkBAIC0xOCw5ICsxOCw3IEBACiAjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgogI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCiAjaW5jbHVkZSAibm90ZXMtbWVyZ2UuaCIKLQotc3RhdGljIHZvaWQgY29tbWl0X25vdGVzKHN0cnVjdCBub3Rlc190cmVlICp0LCBjb25zdCBjaGFyICptc2cpOwotc3RhdGljIGNvbWJpbmVfbm90ZXNfZm4gcGFyc2VfY29tYmluZV9ub3Rlc19mbihjb25zdCBjaGFyICp2KTsKKyNpbmNsdWRlICJub3Rlcy11dGlscy5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGdpdF9ub3Rlc191c2FnZVtdID0gewogCU5fKCJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBbbGlzdCBbPG9iamVjdD5dXSIpLApAQCAtMjg3LDEzOSArMjg1LDEzIEBACiAJcmV0dXJuIHBhcnNlX3JldXNlX2FyZyhvcHQsIGFyZywgdW5zZXQpOwogfQogCi1zdGF0aWMgdm9pZCBjb21taXRfbm90ZXMoc3RydWN0IG5vdGVzX3RyZWUgKnQsIGNvbnN0IGNoYXIgKm1zZykKLXsKLQlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOwotCXVuc2lnbmVkIGNoYXIgY29tbWl0X3NoYTFbMjBdOwotCi0JaWYgKCF0KQotCQl0ID0gJmRlZmF1bHRfbm90ZXNfdHJlZTsKLQlpZiAoIXQtPmluaXRpYWxpemVkIHx8ICF0LT5yZWYgfHwgISp0LT5yZWYpCi0JCWRpZShfKCJDYW5ub3QgY29tbWl0IHVuaW5pdGlhbGl6ZWQvdW5yZWZlcmVuY2VkIG5vdGVzIHRyZWUiKSk7Ci0JaWYgKCF0LT5kaXJ0eSkKLQkJcmV0dXJuOyAvKiBkb24ndCBoYXZlIHRvIGNvbW1pdCBhbiB1bmNoYW5nZWQgdHJlZSAqLwotCi0JLyogUHJlcGFyZSBjb21taXQgbWVzc2FnZSBhbmQgcmVmbG9nIG1lc3NhZ2UgKi8KLQlzdHJidWZfYWRkc3RyKCZidWYsIG1zZyk7Ci0JaWYgKGJ1Zi5idWZbYnVmLmxlbiAtIDFdICE9ICdcbicpCi0JCXN0cmJ1Zl9hZGRjaCgmYnVmLCAnXG4nKTsgLyogTWFrZSBzdXJlIG1zZyBlbmRzIHdpdGggbmV3bGluZSAqLwotCi0JY3JlYXRlX25vdGVzX2NvbW1pdCh0LCBOVUxMLCAmYnVmLCBjb21taXRfc2hhMSk7Ci0Jc3RyYnVmX2luc2VydCgmYnVmLCAwLCAibm90ZXM6ICIsIDcpOyAvKiBjb21taXQgbWVzc2FnZSBzdGFydHMgYXQgaW5kZXggNyAqLwotCXVwZGF0ZV9yZWYoYnVmLmJ1ZiwgdC0+cmVmLCBjb21taXRfc2hhMSwgTlVMTCwgMCwgRElFX09OX0VSUik7Ci0KLQlzdHJidWZfcmVsZWFzZSgmYnVmKTsKLX0KLQotc3RhdGljIGNvbWJpbmVfbm90ZXNfZm4gcGFyc2VfY29tYmluZV9ub3Rlc19mbihjb25zdCBjaGFyICp2KQotewotCWlmICghc3RyY2FzZWNtcCh2LCAib3ZlcndyaXRlIikpCi0JCXJldHVybiBjb21iaW5lX25vdGVzX292ZXJ3cml0ZTsKLQllbHNlIGlmICghc3RyY2FzZWNtcCh2LCAiaWdub3JlIikpCi0JCXJldHVybiBjb21iaW5lX25vdGVzX2lnbm9yZTsKLQllbHNlIGlmICghc3RyY2FzZWNtcCh2LCAiY29uY2F0ZW5hdGUiKSkKLQkJcmV0dXJuIGNvbWJpbmVfbm90ZXNfY29uY2F0ZW5hdGU7Ci0JZWxzZSBpZiAoIXN0cmNhc2VjbXAodiwgImNhdF9zb3J0X3VuaXEiKSkKLQkJcmV0dXJuIGNvbWJpbmVfbm90ZXNfY2F0X3NvcnRfdW5pcTsKLQllbHNlCi0JCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgaW50IG5vdGVzX3Jld3JpdGVfY29uZmlnKGNvbnN0IGNoYXIgKmssIGNvbnN0IGNoYXIgKnYsIHZvaWQgKmNiKQotewotCXN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZyAqYyA9IGNiOwotCWlmICghcHJlZml4Y21wKGssICJub3Rlcy5yZXdyaXRlLiIpICYmICFzdHJjbXAoaysxNCwgYy0+Y21kKSkgewotCQljLT5lbmFibGVkID0gZ2l0X2NvbmZpZ19ib29sKGssIHYpOwotCQlyZXR1cm4gMDsKLQl9IGVsc2UgaWYgKCFjLT5tb2RlX2Zyb21fZW52ICYmICFzdHJjbXAoaywgIm5vdGVzLnJld3JpdGVtb2RlIikpIHsKLQkJaWYgKCF2KQotCQkJY29uZmlnX2Vycm9yX25vbmJvb2woayk7Ci0JCWMtPmNvbWJpbmUgPSBwYXJzZV9jb21iaW5lX25vdGVzX2ZuKHYpOwotCQlpZiAoIWMtPmNvbWJpbmUpIHsKLQkJCWVycm9yKF8oIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIpLCB2KTsKLQkJCXJldHVybiAxOwotCQl9Ci0JCXJldHVybiAwOwotCX0gZWxzZSBpZiAoIWMtPnJlZnNfZnJvbV9lbnYgJiYgIXN0cmNtcChrLCAibm90ZXMucmV3cml0ZXJlZiIpKSB7Ci0JCS8qIG5vdGUgdGhhdCBhIHJlZnMvIHByZWZpeCBpcyBpbXBsaWVkIGluIHRoZQotCQkgKiB1bmRlcmx5aW5nIGZvcl9lYWNoX2dsb2JfcmVmICovCi0JCWlmICghcHJlZml4Y21wKHYsICJyZWZzL25vdGVzLyIpKQotCQkJc3RyaW5nX2xpc3RfYWRkX3JlZnNfYnlfZ2xvYihjLT5yZWZzLCB2KTsKLQkJZWxzZQotCQkJd2FybmluZyhfKCJSZWZ1c2luZyB0byByZXdyaXRlIG5vdGVzIGluICVzIgotCQkJCSIgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIiksIHYpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotCi1zdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmluaXRfY29weV9ub3Rlc19mb3JfcmV3cml0ZShjb25zdCBjaGFyICpjbWQpCi17Ci0Jc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICpjID0geG1hbGxvYyhzaXplb2Yoc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnKSk7Ci0JY29uc3QgY2hhciAqcmV3cml0ZV9tb2RlX2VudiA9IGdldGVudihHSVRfTk9URVNfUkVXUklURV9NT0RFX0VOVklST05NRU5UKTsKLQljb25zdCBjaGFyICpyZXdyaXRlX3JlZnNfZW52ID0gZ2V0ZW52KEdJVF9OT1RFU19SRVdSSVRFX1JFRl9FTlZJUk9OTUVOVCk7Ci0JYy0+Y21kID0gY21kOwotCWMtPmVuYWJsZWQgPSAxOwotCWMtPmNvbWJpbmUgPSBjb21iaW5lX25vdGVzX2NvbmNhdGVuYXRlOwotCWMtPnJlZnMgPSB4Y2FsbG9jKDEsIHNpemVvZihzdHJ1Y3Qgc3RyaW5nX2xpc3QpKTsKLQljLT5yZWZzLT5zdHJkdXBfc3RyaW5ncyA9IDE7Ci0JYy0+cmVmc19mcm9tX2VudiA9IDA7Ci0JYy0+bW9kZV9mcm9tX2VudiA9IDA7Ci0JaWYgKHJld3JpdGVfbW9kZV9lbnYpIHsKLQkJYy0+bW9kZV9mcm9tX2VudiA9IDE7Ci0JCWMtPmNvbWJpbmUgPSBwYXJzZV9jb21iaW5lX25vdGVzX2ZuKHJld3JpdGVfbW9kZV9lbnYpOwotCQlpZiAoIWMtPmNvbWJpbmUpCi0JCQkvKiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIGlzIHRoZSBuYW1lIG9mIHRoZQotCQkJICAgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBzZWNvbmQgJXMgaXMgaXRzIHZhbHVlICovCi0JCQllcnJvcihfKCJCYWQgJXMgdmFsdWU6ICclcyciKSwgR0lUX05PVEVTX1JFV1JJVEVfTU9ERV9FTlZJUk9OTUVOVCwKLQkJCQkJcmV3cml0ZV9tb2RlX2Vudik7Ci0JfQotCWlmIChyZXdyaXRlX3JlZnNfZW52KSB7Ci0JCWMtPnJlZnNfZnJvbV9lbnYgPSAxOwotCQlzdHJpbmdfbGlzdF9hZGRfcmVmc19mcm9tX2NvbG9uX3NlcChjLT5yZWZzLCByZXdyaXRlX3JlZnNfZW52KTsKLQl9Ci0JZ2l0X2NvbmZpZyhub3Rlc19yZXdyaXRlX2NvbmZpZywgYyk7Ci0JaWYgKCFjLT5lbmFibGVkIHx8ICFjLT5yZWZzLT5ucikgewotCQlzdHJpbmdfbGlzdF9jbGVhcihjLT5yZWZzLCAwKTsKLQkJZnJlZShjLT5yZWZzKTsKLQkJZnJlZShjKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCWMtPnRyZWVzID0gbG9hZF9ub3Rlc190cmVlcyhjLT5yZWZzKTsKLQlzdHJpbmdfbGlzdF9jbGVhcihjLT5yZWZzLCAwKTsKLQlmcmVlKGMtPnJlZnMpOwotCXJldHVybiBjOwotfQotCi1pbnQgY29weV9ub3RlX2Zvcl9yZXdyaXRlKHN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZyAqYywKLQkJCSAgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbV9vYmosIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRvX29iaikKLXsKLQlpbnQgcmV0ID0gMDsKLQlpbnQgaTsKLQlmb3IgKGkgPSAwOyBjLT50cmVlc1tpXTsgaSsrKQotCQlyZXQgPSBjb3B5X25vdGUoYy0+dHJlZXNbaV0sIGZyb21fb2JqLCB0b19vYmosIDEsIGMtPmNvbWJpbmUpIHx8IHJldDsKLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIGZpbmlzaF9jb3B5X25vdGVzX2Zvcl9yZXdyaXRlKHN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZyAqYykKLXsKLQlpbnQgaTsKLQlmb3IgKGkgPSAwOyBjLT50cmVlc1tpXTsgaSsrKSB7Ci0JCWNvbW1pdF9ub3RlcyhjLT50cmVlc1tpXSwgIk5vdGVzIGFkZGVkIGJ5ICdnaXQgbm90ZXMgY29weSciKTsKLQkJZnJlZV9ub3RlcyhjLT50cmVlc1tpXSk7Ci0JfQotCWZyZWUoYy0+dHJlZXMpOwotCWZyZWUoYyk7Ci19Ci0KIHN0YXRpYyBpbnQgbm90ZXNfY29weV9mcm9tX3N0ZGluKGludCBmb3JjZSwgY29uc3QgY2hhciAqcmV3cml0ZV9jbWQpCiB7CiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKIAlzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMgPSBOVUxMOwogCXN0cnVjdCBub3Rlc190cmVlICp0ID0gTlVMTDsKIAlpbnQgcmV0ID0gMDsKKwljb25zdCBjaGFyICptc2cgPSAiTm90ZXMgYWRkZWQgYnkgJ2dpdCBub3RlcyBjb3B5JyI7CiAKIAlpZiAocmV3cml0ZV9jbWQpIHsKIAkJYyA9IGluaXRfY29weV9ub3Rlc19mb3JfcmV3cml0ZShyZXdyaXRlX2NtZCk7CkBAIC00NjEsMTAgKzMzMywxMCBAQAogCX0KIAogCWlmICghcmV3cml0ZV9jbWQpIHsKLQkJY29tbWl0X25vdGVzKHQsICJOb3RlcyBhZGRlZCBieSAnZ2l0IG5vdGVzIGNvcHknIik7CisJCWNvbW1pdF9ub3Rlcyh0LCBtc2cpOwogCQlmcmVlX25vdGVzKHQpOwogCX0gZWxzZSB7Ci0JCWZpbmlzaF9jb3B5X25vdGVzX2Zvcl9yZXdyaXRlKGMpOworCQlmaW5pc2hfY29weV9ub3Rlc19mb3JfcmV3cml0ZShjLCBtc2cpOwogCX0KIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9wYWNrLXJlZnMuYyBiL2J1aWx0aW4vcGFjay1yZWZzLmMKaW5kZXggYjVhMGY4OC4uYjIwYjFlYyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9wYWNrLXJlZnMuYworKysgYi9idWlsdGluL3BhY2stcmVmcy5jCkBAIC0xLDYgKzEsNiBAQAogI2luY2x1ZGUgImJ1aWx0aW4uaCIKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCi0jaW5jbHVkZSAicGFjay1yZWZzLmgiCisjaW5jbHVkZSAicmVmcy5oIgogCiBzdGF0aWMgY2hhciBjb25zdCAqIGNvbnN0IHBhY2tfcmVmc191c2FnZVtdID0gewogCU5fKCJnaXQgcGFjay1yZWZzIFtvcHRpb25zXSIpLApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9wcnVuZS1wYWNrZWQuYyBiL2J1aWx0aW4vcHJ1bmUtcGFja2VkLmMKaW5kZXggODMzODJjMS4uZmE2Y2U0MiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9wcnVuZS1wYWNrZWQuYworKysgYi9idWlsdGluL3BydW5lLXBhY2tlZC5jCkBAIC04LDkgKzgsNiBAQAogCU5VTEwKIH07CiAKLSNkZWZpbmUgRFJZX1JVTiAwMQotI2RlZmluZSBWRVJCT1NFIDAyCi0KIHN0YXRpYyBzdHJ1Y3QgcHJvZ3Jlc3MgKnByb2dyZXNzOwogCiBzdGF0aWMgdm9pZCBwcnVuZV9kaXIoaW50IGksIERJUiAqZGlyLCBjaGFyICpwYXRobmFtZSwgaW50IGxlbiwgaW50IG9wdHMpCkBAIC0yOSw3ICsyNiw3IEBACiAJCWlmICghaGFzX3NoYTFfcGFjayhzaGExKSkKIAkJCWNvbnRpbnVlOwogCQltZW1jcHkocGF0aG5hbWUgKyBsZW4sIGRlLT5kX25hbWUsIDM4KTsKLQkJaWYgKG9wdHMgJiBEUllfUlVOKQorCQlpZiAob3B0cyAmIFBSVU5FX1BBQ0tFRF9EUllfUlVOKQogCQkJcHJpbnRmKCJybSAtZiAlc1xuIiwgcGF0aG5hbWUpOwogCQllbHNlCiAJCQl1bmxpbmtfb3Jfd2FybihwYXRobmFtZSk7CkBAIC00NCw3ICs0MSw3IEBACiAJY29uc3QgY2hhciAqZGlyID0gZ2V0X29iamVjdF9kaXJlY3RvcnkoKTsKIAlpbnQgbGVuID0gc3RybGVuKGRpcik7CiAKLQlpZiAob3B0cyA9PSBWRVJCT1NFKQorCWlmIChvcHRzICYgUFJVTkVfUEFDS0VEX1ZFUkJPU0UpCiAJCXByb2dyZXNzID0gc3RhcnRfcHJvZ3Jlc3NfZGVsYXkoIlJlbW92aW5nIGR1cGxpY2F0ZSBvYmplY3RzIiwKIAkJCTI1NiwgOTUsIDIpOwogCkBAIC03MSwxMCArNjgsMTIgQEAKIAogaW50IGNtZF9wcnVuZV9wYWNrZWQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7Ci0JaW50IG9wdHMgPSBpc2F0dHkoMikgPyBWRVJCT1NFIDogMDsKKwlpbnQgb3B0cyA9IGlzYXR0eSgyKSA/IFBSVU5FX1BBQ0tFRF9WRVJCT1NFIDogMDsKIAljb25zdCBzdHJ1Y3Qgb3B0aW9uIHBydW5lX3BhY2tlZF9vcHRpb25zW10gPSB7Ci0JCU9QVF9CSVQoJ24nLCAiZHJ5LXJ1biIsICZvcHRzLCBOXygiZHJ5IHJ1biIpLCBEUllfUlVOKSwKLQkJT1BUX05FR0JJVCgncScsICJxdWlldCIsICZvcHRzLCBOXygiYmUgcXVpZXQiKSwgVkVSQk9TRSksCisJCU9QVF9CSVQoJ24nLCAiZHJ5LXJ1biIsICZvcHRzLCBOXygiZHJ5IHJ1biIpLAorCQkJUFJVTkVfUEFDS0VEX0RSWV9SVU4pLAorCQlPUFRfTkVHQklUKCdxJywgInF1aWV0IiwgJm9wdHMsIE5fKCJiZSBxdWlldCIpLAorCQkJICAgUFJVTkVfUEFDS0VEX1ZFUkJPU0UpLAogCQlPUFRfRU5EKCkKIAl9OwogCmRpZmYgLS1naXQgYS9idWlsdGluL3BydW5lLmMgYi9idWlsdGluL3BydW5lLmMKaW5kZXggODU4NDNkNC4uNjM2NjkxNyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9wcnVuZS5jCisrKyBiL2J1aWx0aW4vcHJ1bmUuYwpAQCAtMTMyLDggKzEzMiw4IEBACiAJCU9QVF9fRFJZX1JVTigmc2hvd19vbmx5LCBOXygiZG8gbm90IHJlbW92ZSwgc2hvdyBvbmx5IikpLAogCQlPUFRfX1ZFUkJPU0UoJnZlcmJvc2UsIE5fKCJyZXBvcnQgcHJ1bmVkIG9iamVjdHMiKSksCiAJCU9QVF9CT09MKDAsICJwcm9ncmVzcyIsICZzaG93X3Byb2dyZXNzLCBOXygic2hvdyBwcm9ncmVzcyIpKSwKLQkJT1BUX0RBVEUoMCwgImV4cGlyZSIsICZleHBpcmUsCi0JCQkgTl8oImV4cGlyZSBvYmplY3RzIG9sZGVyIHRoYW4gPHRpbWU+IikpLAorCQlPUFRfRVhQSVJZX0RBVEUoMCwgImV4cGlyZSIsICZleHBpcmUsCisJCQkJTl8oImV4cGlyZSBvYmplY3RzIG9sZGVyIHRoYW4gPHRpbWU+IikpLAogCQlPUFRfRU5EKCkKIAl9OwogCWNoYXIgKnM7CkBAIC0xNjUsNyArMTY1LDcgQEAKIAlzdG9wX3Byb2dyZXNzKCZwcm9ncmVzcyk7CiAJcHJ1bmVfb2JqZWN0X2RpcihnZXRfb2JqZWN0X2RpcmVjdG9yeSgpKTsKIAotCXBydW5lX3BhY2tlZF9vYmplY3RzKHNob3dfb25seSk7CisJcHJ1bmVfcGFja2VkX29iamVjdHMoc2hvd19vbmx5ID8gUFJVTkVfUEFDS0VEX0RSWV9SVU4gOiAwKTsKIAlyZW1vdmVfdGVtcG9yYXJ5X2ZpbGVzKGdldF9vYmplY3RfZGlyZWN0b3J5KCkpOwogCXMgPSBta3BhdGhkdXAoIiVzL3BhY2siLCBnZXRfb2JqZWN0X2RpcmVjdG9yeSgpKTsKIAlyZW1vdmVfdGVtcG9yYXJ5X2ZpbGVzKHMpOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9wdXNoLmMgYi9idWlsdGluL3B1c2guYwppbmRleCA5MDljMzRkLi4wNGYwZWFmIDEwMDY0NAotLS0gYS9idWlsdGluL3B1c2guYworKysgYi9idWlsdGluL3B1c2guYwpAQCAtOTIsNyArOTIsNyBAQAogCWlmICghc2hvcnRfdXBzdHJlYW0pCiAJCXNob3J0X3Vwc3RyZWFtID0gYnJhbmNoLT5tZXJnZVswXS0+c3JjOwogCS8qCi0JICogRG9uJ3Qgc2hvdyBhZHZpY2UgZm9yIHBlb3BsZSB3aG8gZXhwbGljaXRlbHkgc2V0CisJICogRG9uJ3Qgc2hvdyBhZHZpY2UgZm9yIHBlb3BsZSB3aG8gZXhwbGljaXRseSBzZXQKIAkgKiBwdXNoLmRlZmF1bHQuCiAJICovCiAJaWYgKHB1c2hfZGVmYXVsdCA9PSBQVVNIX0RFRkFVTFRfVU5TUEVDSUZJRUQpCkBAIC0xMTMsMTcgKzExMywyMCBAQAogCSAgICByZW1vdGUtPm5hbWUsIGJyYW5jaC0+bmFtZSwgYWR2aWNlX21heWJlKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0dXBfcHVzaF91cHN0cmVhbShzdHJ1Y3QgcmVtb3RlICpyZW1vdGUsIGludCBzaW1wbGUpCitzdGF0aWMgY29uc3QgY2hhciBtZXNzYWdlX2RldGFjaGVkX2hlYWRfZGllW10gPQorCU5fKCJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCisJICAgIlRvIHB1c2ggdGhlIGhpc3RvcnkgbGVhZGluZyB0byB0aGUgY3VycmVudCAoZGV0YWNoZWQgSEVBRClcbiIKKwkgICAic3RhdGUgbm93LCB1c2VcbiIKKwkgICAiXG4iCisJICAgIiAgICBnaXQgcHVzaCAlcyBIRUFEOjxuYW1lLW9mLXJlbW90ZS1icmFuY2g+XG4iKTsKKworc3RhdGljIHZvaWQgc2V0dXBfcHVzaF91cHN0cmVhbShzdHJ1Y3QgcmVtb3RlICpyZW1vdGUsIHN0cnVjdCBicmFuY2ggKmJyYW5jaCwKKwkJCQlpbnQgdHJpYW5ndWxhcikKIHsKIAlzdHJ1Y3Qgc3RyYnVmIHJlZnNwZWMgPSBTVFJCVUZfSU5JVDsKLQlzdHJ1Y3QgYnJhbmNoICpicmFuY2ggPSBicmFuY2hfZ2V0KE5VTEwpOworCiAJaWYgKCFicmFuY2gpCi0JCWRpZShfKCJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCi0JCSAgICAiVG8gcHVzaCB0aGUgaGlzdG9yeSBsZWFkaW5nIHRvIHRoZSBjdXJyZW50IChkZXRhY2hlZCBIRUFEKVxuIgotCQkgICAgInN0YXRlIG5vdywgdXNlXG4iCi0JCSAgICAiXG4iCi0JCSAgICAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbWUtb2YtcmVtb3RlLWJyYW5jaD5cbiIpLAotCQkgICAgcmVtb3RlLT5uYW1lKTsKKwkJZGllKF8obWVzc2FnZV9kZXRhY2hlZF9oZWFkX2RpZSksIHJlbW90ZS0+bmFtZSk7CiAJaWYgKCFicmFuY2gtPm1lcmdlX25yIHx8ICFicmFuY2gtPm1lcmdlIHx8ICFicmFuY2gtPnJlbW90ZV9uYW1lKQogCQlkaWUoXygiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCiAJCSAgICAiVG8gcHVzaCB0aGUgY3VycmVudCBicmFuY2ggYW5kIHNldCB0aGUgcmVtb3RlIGFzIHVwc3RyZWFtLCB1c2VcbiIKQEAgLTEzNSwxOCArMTM4LDI5IEBACiAJaWYgKGJyYW5jaC0+bWVyZ2VfbnIgIT0gMSkKIAkJZGllKF8oIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbXVsdGlwbGUgdXBzdHJlYW0gYnJhbmNoZXMsICIKIAkJICAgICJyZWZ1c2luZyB0byBwdXNoLiIpLCBicmFuY2gtPm5hbWUpOwotCWlmIChzdHJjbXAoYnJhbmNoLT5yZW1vdGVfbmFtZSwgcmVtb3RlLT5uYW1lKSkKKwlpZiAodHJpYW5ndWxhcikKIAkJZGllKF8oIllvdSBhcmUgcHVzaGluZyB0byByZW1vdGUgJyVzJywgd2hpY2ggaXMgbm90IHRoZSB1cHN0cmVhbSBvZlxuIgogCQkgICAgICAieW91ciBjdXJyZW50IGJyYW5jaCAnJXMnLCB3aXRob3V0IHRlbGxpbmcgbWUgd2hhdCB0byBwdXNoXG4iCiAJCSAgICAgICJ0byB1cGRhdGUgd2hpY2ggcmVtb3RlIGJyYW5jaC4iKSwKIAkJICAgIHJlbW90ZS0+bmFtZSwgYnJhbmNoLT5uYW1lKTsKLQlpZiAoc2ltcGxlICYmIHN0cmNtcChicmFuY2gtPnJlZm5hbWUsIGJyYW5jaC0+bWVyZ2VbMF0tPnNyYykpCi0JCWRpZV9wdXNoX3NpbXBsZShicmFuY2gsIHJlbW90ZSk7CisKKwlpZiAocHVzaF9kZWZhdWx0ID09IFBVU0hfREVGQVVMVF9TSU1QTEUpIHsKKwkJLyogQWRkaXRpb25hbCBzYWZldHkgKi8KKwkJaWYgKHN0cmNtcChicmFuY2gtPnJlZm5hbWUsIGJyYW5jaC0+bWVyZ2VbMF0tPnNyYykpCisJCQlkaWVfcHVzaF9zaW1wbGUoYnJhbmNoLCByZW1vdGUpOworCX0KIAogCXN0cmJ1Zl9hZGRmKCZyZWZzcGVjLCAiJXM6JXMiLCBicmFuY2gtPm5hbWUsIGJyYW5jaC0+bWVyZ2VbMF0tPnNyYyk7CiAJYWRkX3JlZnNwZWMocmVmc3BlYy5idWYpOwogfQogCitzdGF0aWMgdm9pZCBzZXR1cF9wdXNoX2N1cnJlbnQoc3RydWN0IHJlbW90ZSAqcmVtb3RlLCBzdHJ1Y3QgYnJhbmNoICpicmFuY2gpCit7CisJaWYgKCFicmFuY2gpCisJCWRpZShfKG1lc3NhZ2VfZGV0YWNoZWRfaGVhZF9kaWUpLCByZW1vdGUtPm5hbWUpOworCWFkZF9yZWZzcGVjKGJyYW5jaC0+bmFtZSk7Cit9CisKIHN0YXRpYyBjaGFyIHdhcm5fdW5zcGVjaWZpZWRfcHVzaF9kZWZhdWx0X21zZ1tdID0KIE5fKCJwdXNoLmRlZmF1bHQgaXMgdW5zZXQ7IGl0cyBpbXBsaWNpdCB2YWx1ZSBpcyBjaGFuZ2luZyBpblxuIgogICAgIkdpdCAyLjAgZnJvbSAnbWF0Y2hpbmcnIHRvICdzaW1wbGUnLiBUbyBzcXVlbGNoIHRoaXMgbWVzc2FnZVxuIgpAQCAtMTcxLDggKzE4NSwxNyBAQAogCXdhcm5pbmcoIiVzXG4iLCBfKHdhcm5fdW5zcGVjaWZpZWRfcHVzaF9kZWZhdWx0X21zZykpOwogfQogCitzdGF0aWMgaW50IGlzX3dvcmtmbG93X3RyaWFuZ3VsYXIoc3RydWN0IHJlbW90ZSAqcmVtb3RlKQoreworCXN0cnVjdCByZW1vdGUgKmZldGNoX3JlbW90ZSA9IHJlbW90ZV9nZXQoTlVMTCk7CisJcmV0dXJuIChmZXRjaF9yZW1vdGUgJiYgZmV0Y2hfcmVtb3RlICE9IHJlbW90ZSk7Cit9CisKIHN0YXRpYyB2b2lkIHNldHVwX2RlZmF1bHRfcHVzaF9yZWZzcGVjcyhzdHJ1Y3QgcmVtb3RlICpyZW1vdGUpCiB7CisJc3RydWN0IGJyYW5jaCAqYnJhbmNoID0gYnJhbmNoX2dldChOVUxMKTsKKwlpbnQgdHJpYW5ndWxhciA9IGlzX3dvcmtmbG93X3RyaWFuZ3VsYXIocmVtb3RlKTsKKwogCXN3aXRjaCAocHVzaF9kZWZhdWx0KSB7CiAJZGVmYXVsdDoKIAljYXNlIFBVU0hfREVGQVVMVF9VTlNQRUNJRklFRDoKQEAgLTE4NCwxNSArMjA3LDE4IEBACiAJCWJyZWFrOwogCiAJY2FzZSBQVVNIX0RFRkFVTFRfU0lNUExFOgotCQlzZXR1cF9wdXNoX3Vwc3RyZWFtKHJlbW90ZSwgMSk7CisJCWlmICh0cmlhbmd1bGFyKQorCQkJc2V0dXBfcHVzaF9jdXJyZW50KHJlbW90ZSwgYnJhbmNoKTsKKwkJZWxzZQorCQkJc2V0dXBfcHVzaF91cHN0cmVhbShyZW1vdGUsIGJyYW5jaCwgdHJpYW5ndWxhcik7CiAJCWJyZWFrOwogCiAJY2FzZSBQVVNIX0RFRkFVTFRfVVBTVFJFQU06Ci0JCXNldHVwX3B1c2hfdXBzdHJlYW0ocmVtb3RlLCAwKTsKKwkJc2V0dXBfcHVzaF91cHN0cmVhbShyZW1vdGUsIGJyYW5jaCwgdHJpYW5ndWxhcik7CiAJCWJyZWFrOwogCiAJY2FzZSBQVVNIX0RFRkFVTFRfQ1VSUkVOVDoKLQkJYWRkX3JlZnNwZWMoIkhFQUQiKTsKKwkJc2V0dXBfcHVzaF9jdXJyZW50KHJlbW90ZSwgYnJhbmNoKTsKIAkJYnJlYWs7CiAKIAljYXNlIFBVU0hfREVGQVVMVF9OT1RISU5HOgpAQCAtMjA0LDggKzIzMCw4IEBACiAKIHN0YXRpYyBjb25zdCBjaGFyIG1lc3NhZ2VfYWR2aWNlX3B1bGxfYmVmb3JlX3B1c2hbXSA9CiAJTl8oIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0aXAgb2YgeW91ciBjdXJyZW50IGJyYW5jaCBpcyBiZWhpbmRcbiIKLQkgICAiaXRzIHJlbW90ZSBjb3VudGVycGFydC4gTWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuICdnaXQgcHVsbCcpXG4iCi0JICAgImJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorCSAgICJpdHMgcmVtb3RlIGNvdW50ZXJwYXJ0LiBJbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuXG4iCisJICAgIidnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKIAkgICAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iKTsKIAogc3RhdGljIGNvbnN0IGNoYXIgbWVzc2FnZV9hZHZpY2VfdXNlX3Vwc3RyZWFtW10gPQpAQCAtMjE2LDE1ICsyNDIsMTUgQEAKIAogc3RhdGljIGNvbnN0IGNoYXIgbWVzc2FnZV9hZHZpY2VfY2hlY2tvdXRfcHVsbF9wdXNoW10gPQogCU5fKCJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCi0JICAgImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgotCSAgICIoZS5nLiAnZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKwkgICAiY291bnRlcnBhcnQuIENoZWNrIG91dCB0aGlzIGJyYW5jaCBhbmQgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorCSAgICIoZS5nLiAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAJICAgIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIik7CiAKIHN0YXRpYyBjb25zdCBjaGFyIG1lc3NhZ2VfYWR2aWNlX3JlZl9mZXRjaF9maXJzdFtdID0KIAlOXygiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHJlbW90ZSBjb250YWlucyB3b3JrIHRoYXQgeW91IGRvXG4iCiAJICAgIm5vdCBoYXZlIGxvY2FsbHkuIFRoaXMgaXMgdXN1YWxseSBjYXVzZWQgYnkgYW5vdGhlciByZXBvc2l0b3J5IHB1c2hpbmdcbiIKLQkgICAidG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuLFxuIgotCSAgICInZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKwkgICAidG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorCSAgICIoZS5nLiwgJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogCSAgICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIpOwogCiBzdGF0aWMgY29uc3QgY2hhciBtZXNzYWdlX2FkdmljZV9yZWZfYWxyZWFkeV9leGlzdHNbXSA9CmRpZmYgLS1naXQgYS9idWlsdGluL3JlYWQtdHJlZS5jIGIvYnVpbHRpbi9yZWFkLXRyZWUuYwppbmRleCAwNDJhYzFiLi4wZjVkN2ZlIDEwMDY0NAotLS0gYS9idWlsdGluL3JlYWQtdHJlZS5jCisrKyBiL2J1aWx0aW4vcmVhZC10cmVlLmMKQEAgLTY2LDcgKzY2LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZGVidWdfc3RhZ2UoY29uc3QgY2hhciAqbGFiZWwsIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCitzdGF0aWMgdm9pZCBkZWJ1Z19zdGFnZShjb25zdCBjaGFyICpsYWJlbCwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKIAkJCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlwcmludGYoIiVzICIsIGxhYmVsKTsKQEAgLTgwLDcgKzgwLDggQEAKIAkJICAgICAgIHNoYTFfdG9faGV4KGNlLT5zaGExKSk7CiB9CiAKLXN0YXRpYyBpbnQgZGVidWdfbWVyZ2Uoc3RydWN0IGNhY2hlX2VudHJ5ICoqc3RhZ2VzLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IGRlYnVnX21lcmdlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpzdGFnZXMsCisJCSAgICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJaW50IGk7CiAKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmVmbG9nLmMgYi9idWlsdGluL3JlZmxvZy5jCmluZGV4IDcyYTBhZjcuLjU0MTg0YjMgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcmVmbG9nLmMKKysrIGIvYnVpbHRpbi9yZWZsb2cuYwpAQCAtNDk2LDExICs0OTYsOSBAQAogewogCWlmICghdmFsdWUpCiAJCXJldHVybiBjb25maWdfZXJyb3Jfbm9uYm9vbCh2YXIpOwotCWlmICghc3RyY21wKHZhbHVlLCAibmV2ZXIiKSB8fCAhc3RyY21wKHZhbHVlLCAiZmFsc2UiKSkgewotCQkqZXhwaXJlID0gMDsKLQkJcmV0dXJuIDA7Ci0JfQotCSpleHBpcmUgPSBhcHByb3hpZGF0ZSh2YWx1ZSk7CisJaWYgKHBhcnNlX2V4cGlyeV9kYXRlKHZhbHVlLCBleHBpcmUpKQorCQlyZXR1cm4gZXJyb3IoXygiJXMnIGZvciAnJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIpLAorCQkJICAgICB2YWx1ZSwgdmFyKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNjE0LDExICs2MTIsMTMgQEAKIAkJaWYgKCFzdHJjbXAoYXJnLCAiLS1kcnktcnVuIikgfHwgIXN0cmNtcChhcmcsICItbiIpKQogCQkJY2IuZHJ5X3J1biA9IDE7CiAJCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1leHBpcmU9IikpIHsKLQkJCWNiLmV4cGlyZV90b3RhbCA9IGFwcHJveGlkYXRlKGFyZyArIDkpOworCQkJaWYgKHBhcnNlX2V4cGlyeV9kYXRlKGFyZyArIDksICZjYi5leHBpcmVfdG90YWwpKQorCQkJCWRpZShfKCInJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIpLCBhcmcpOwogCQkJZXhwbGljaXRfZXhwaXJ5IHw9IEVYUElSRV9UT1RBTDsKIAkJfQogCQllbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tZXhwaXJlLXVucmVhY2hhYmxlPSIpKSB7Ci0JCQljYi5leHBpcmVfdW5yZWFjaGFibGUgPSBhcHByb3hpZGF0ZShhcmcgKyAyMSk7CisJCQlpZiAocGFyc2VfZXhwaXJ5X2RhdGUoYXJnICsgMjEsICZjYi5leHBpcmVfdW5yZWFjaGFibGUpKQorCQkJCWRpZShfKCInJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIpLCBhcmcpOwogCQkJZXhwbGljaXRfZXhwaXJ5IHw9IEVYUElSRV9VTlJFQUNIOwogCQl9CiAJCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1zdGFsZS1maXgiKSkKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmVwbGFjZS5jIGIvYnVpbHRpbi9yZXBsYWNlLmMKaW5kZXggMzk4Y2NkNS4uNTlkMzExNSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9yZXBsYWNlLmMKKysrIGIvYnVpbHRpbi9yZXBsYWNlLmMKQEAgLTMsNyArMyw3IEBACiAgKgogICogQ29weXJpZ2h0IChjKSAyMDA4IENocmlzdGlhbiBDb3VkZXIgPGNocmlzY29vbEB0dXhmYW1pbHkub3JnPgogICoKLSAqIEJhc2VkIG9uIGJ1aWx0aW4tdGFnLmMgYnkgS3Jpc3RpYW4gSMO4Z3NiZXJnIDxrcmhAcmVkaGF0LmNvbT4KKyAqIEJhc2VkIG9uIGJ1aWx0aW4vdGFnLmMgYnkgS3Jpc3RpYW4gSMO4Z3NiZXJnIDxrcmhAcmVkaGF0LmNvbT4KICAqIGFuZCBDYXJsb3MgUmljYSA8amFzYW1wbGVyQGdtYWlsLmNvbT4gdGhhdCB3YXMgaXRzZWxmIGJhc2VkIG9uCiAgKiBnaXQtdGFnLnNoIGFuZCBta3RhZy5jIGJ5IExpbnVzIFRvcnZhbGRzLgogICovCmRpZmYgLS1naXQgYS9idWlsdGluL3Jlc2V0LmMgYi9idWlsdGluL3Jlc2V0LmMKaW5kZXggNjAzMjEzMS4uYWZhNmUwMiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9yZXNldC5jCisrKyBiL2J1aWx0aW4vcmVzZXQuYwpAQCAtOTMsMTAgKzkzLDEyIEBACiBzdGF0aWMgdm9pZCBwcmludF9uZXdfaGVhZF9saW5lKHN0cnVjdCBjb21taXQgKmNvbW1pdCkKIHsKIAljb25zdCBjaGFyICpoZXgsICpib2R5OworCWNoYXIgKm1zZzsKIAogCWhleCA9IGZpbmRfdW5pcXVlX2FiYnJldihjb21taXQtPm9iamVjdC5zaGExLCBERUZBVUxUX0FCQlJFVik7CiAJcHJpbnRmKF8oIkhFQUQgaXMgbm93IGF0ICVzIiksIGhleCk7Ci0JYm9keSA9IHN0cnN0cihjb21taXQtPmJ1ZmZlciwgIlxuXG4iKTsKKwltc2cgPSBsb2dtc2dfcmVlbmNvZGUoY29tbWl0LCBOVUxMLCBnZXRfbG9nX291dHB1dF9lbmNvZGluZygpKTsKKwlib2R5ID0gc3Ryc3RyKG1zZywgIlxuXG4iKTsKIAlpZiAoYm9keSkgewogCQljb25zdCBjaGFyICplb2w7CiAJCXNpemVfdCBsZW47CkBAIC0xMDcsNiArMTA5LDcgQEAKIAl9CiAJZWxzZQogCQlwcmludGYoIlxuIik7CisJbG9nbXNnX2ZyZWUobXNnLCBjb21taXQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVfaW5kZXhfZnJvbV9kaWZmKHN0cnVjdCBkaWZmX3F1ZXVlX3N0cnVjdCAqcSwKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmV2LWxpc3QuYyBiL2J1aWx0aW4vcmV2LWxpc3QuYwppbmRleCA2NzcwMWJlLi5hNWVjMzBkIDEwMDY0NAotLS0gYS9idWlsdGluL3Jldi1saXN0LmMKKysrIGIvYnVpbHRpbi9yZXYtbGlzdC5jCkBAIC0xMTEsNiArMTExLDcgQEAKIAkJY3R4LmRhdGVfbW9kZSA9IHJldnMtPmRhdGVfbW9kZTsKIAkJY3R4LmRhdGVfbW9kZV9leHBsaWNpdCA9IHJldnMtPmRhdGVfbW9kZV9leHBsaWNpdDsKIAkJY3R4LmZtdCA9IHJldnMtPmNvbW1pdF9mb3JtYXQ7CisJCWN0eC5vdXRwdXRfZW5jb2RpbmcgPSBnZXRfbG9nX291dHB1dF9lbmNvZGluZygpOwogCQlwcmV0dHlfcHJpbnRfY29tbWl0KCZjdHgsIGNvbW1pdCwgJmJ1Zik7CiAJCWlmIChyZXZzLT5ncmFwaCkgewogCQkJaWYgKGJ1Zi5sZW4pIHsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmV2LXBhcnNlLmMgYi9idWlsdGluL3Jldi1wYXJzZS5jCmluZGV4IGYyNjdhMWQuLmRlODk0YzcgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcmV2LXBhcnNlLmMKKysrIGIvYnVpbHRpbi9yZXYtcGFyc2UuYwpAQCAtMjEyLDExICsyMTIsMTcgQEAKIAlzaG93KGJ1ZmZlcik7CiB9CiAKLXN0YXRpYyBpbnQgc2hvd19maWxlKGNvbnN0IGNoYXIgKmFyZykKK3N0YXRpYyBpbnQgc2hvd19maWxlKGNvbnN0IGNoYXIgKmFyZywgaW50IG91dHB1dF9wcmVmaXgpCiB7CiAJc2hvd19kZWZhdWx0KCk7CiAJaWYgKChmaWx0ZXIgJiAoRE9fTk9ORkxBR1N8RE9fTk9SRVYpKSA9PSAoRE9fTk9ORkxBR1N8RE9fTk9SRVYpKSB7Ci0JCXNob3coYXJnKTsKKwkJaWYgKG91dHB1dF9wcmVmaXgpIHsKKwkJCWNvbnN0IGNoYXIgKnByZWZpeCA9IHN0YXJ0dXBfaW5mby0+cHJlZml4OworCQkJc2hvdyhwcmVmaXhfZmlsZW5hbWUocHJlZml4LAorCQkJCQkgICAgIHByZWZpeCA/IHN0cmxlbihwcmVmaXgpIDogMCwKKwkJCQkJICAgICBhcmcpKTsKKwkJfSBlbHNlCisJCQlzaG93KGFyZyk7CiAJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTQ3MCw2ICs0NzYsNyBAQAogaW50IGNtZF9yZXZfcGFyc2UoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJaW50IGksIGFzX2lzID0gMCwgdmVyaWZ5ID0gMCwgcXVpZXQgPSAwLCByZXZzX2NvdW50ID0gMCwgdHlwZSA9IDA7CisJaW50IG91dHB1dF9wcmVmaXggPSAwOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CiAJY29uc3QgY2hhciAqbmFtZSA9IE5VTEw7CiAKQEAgLTUwMyw3ICs1MTAsNyBAQAogCQljb25zdCBjaGFyICphcmcgPSBhcmd2W2ldOwogCiAJCWlmIChhc19pcykgewotCQkJaWYgKHNob3dfZmlsZShhcmcpICYmIGFzX2lzIDwgMikKKwkJCWlmIChzaG93X2ZpbGUoYXJnLCBvdXRwdXRfcHJlZml4KSAmJiBhc19pcyA8IDIpCiAJCQkJdmVyaWZ5X2ZpbGVuYW1lKHByZWZpeCwgYXJnLCAwKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC01MjcsNyArNTM0LDcgQEAKIAkJCQlhc19pcyA9IDI7CiAJCQkJLyogUGFzcyBvbiB0aGUgIi0tIiBpZiB3ZSBzaG93IGFueXRoaW5nIGJ1dCBmaWxlcy4uICovCiAJCQkJaWYgKGZpbHRlciAmIChET19GTEFHUyB8IERPX1JFVlMpKQotCQkJCQlzaG93X2ZpbGUoYXJnKTsKKwkJCQkJc2hvd19maWxlKGFyZywgMCk7CiAJCQkJY29udGludWU7CiAJCQl9CiAJCQlpZiAoIXN0cmNtcChhcmcsICItLWRlZmF1bHQiKSkgewpAQCAtNTM1LDYgKzU0MiwxMyBAQAogCQkJCWkrKzsKIAkJCQljb250aW51ZTsKIAkJCX0KKwkJCWlmICghc3RyY21wKGFyZywgIi0tcHJlZml4IikpIHsKKwkJCQlwcmVmaXggPSBhcmd2W2krMV07CisJCQkJc3RhcnR1cF9pbmZvLT5wcmVmaXggPSBwcmVmaXg7CisJCQkJb3V0cHV0X3ByZWZpeCA9IDE7CisJCQkJaSsrOworCQkJCWNvbnRpbnVlOworCQkJfQogCQkJaWYgKCFzdHJjbXAoYXJnLCAiLS1yZXZzLW9ubHkiKSkgewogCQkJCWZpbHRlciAmPSB+RE9fTk9SRVY7CiAJCQkJY29udGludWU7CkBAIC03NTQsNyArNzY4LDcgQEAKIAkJaWYgKHZlcmlmeSkKIAkJCWRpZV9ub19zaW5nbGVfcmV2KHF1aWV0KTsKIAkJYXNfaXMgPSAxOwotCQlpZiAoIXNob3dfZmlsZShhcmcpKQorCQlpZiAoIXNob3dfZmlsZShhcmcsIG91dHB1dF9wcmVmaXgpKQogCQkJY29udGludWU7CiAJCXZlcmlmeV9maWxlbmFtZShwcmVmaXgsIGFyZywgMSk7CiAJfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9yZXZlcnQuYyBiL2J1aWx0aW4vcmV2ZXJ0LmMKaW5kZXggMDQwMWZkYi4uMWQyNjQ4YiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9yZXZlcnQuYworKysgYi9idWlsdGluL3JldmVydC5jCkBAIC01NCw2ICs1NCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKK0xBU1RfQVJHX01VU1RfQkVfTlVMTAogc3RhdGljIHZvaWQgdmVyaWZ5X29wdF9jb21wYXRpYmxlKGNvbnN0IGNoYXIgKm1lLCBjb25zdCBjaGFyICpiYXNlX29wdCwgLi4uKQogewogCWNvbnN0IGNoYXIgKnRoaXNfb3B0OwpAQCAtNzAsNiArNzEsNyBAQAogCQlkaWUoXygiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiKSwgbWUsIHRoaXNfb3B0LCBiYXNlX29wdCk7CiB9CiAKK0xBU1RfQVJHX01VU1RfQkVfTlVMTAogc3RhdGljIHZvaWQgdmVyaWZ5X29wdF9tdXR1YWxseV9jb21wYXRpYmxlKGNvbnN0IGNoYXIgKm1lLCAuLi4pCiB7CiAJY29uc3QgY2hhciAqb3B0MSwgKm9wdDIgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9ybS5jIGIvYnVpbHRpbi9ybS5jCmluZGV4IDdiOTFkNTIuLjBkZjBiNGQgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcm0uYworKysgYi9idWlsdGluL3JtLmMKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSAiY2FjaGUtdHJlZS5oIgogI2luY2x1ZGUgInRyZWUtd2Fsay5oIgogI2luY2x1ZGUgInBhcnNlLW9wdGlvbnMuaCIKKyNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgogI2luY2x1ZGUgInN1Ym1vZHVsZS5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGJ1aWx0aW5fcm1fdXNhZ2VbXSA9IHsKQEAgLTM2LDE1ICszNyw1MiBAQAogCXJldHVybiAtMTsKIH0KIAorc3RhdGljIHZvaWQgcHJpbnRfZXJyb3JfZmlsZXMoc3RydWN0IHN0cmluZ19saXN0ICpmaWxlc19saXN0LAorCQkJICAgICAgY29uc3QgY2hhciAqbWFpbl9tc2csCisJCQkgICAgICBjb25zdCBjaGFyICpoaW50c19tc2csCisJCQkgICAgICBpbnQgKmVycnMpCit7CisJaWYgKGZpbGVzX2xpc3QtPm5yKSB7CisJCWludCBpOworCQlzdHJ1Y3Qgc3RyYnVmIGVycl9tc2cgPSBTVFJCVUZfSU5JVDsKKworCQlzdHJidWZfYWRkc3RyKCZlcnJfbXNnLCBtYWluX21zZyk7CisJCWZvciAoaSA9IDA7IGkgPCBmaWxlc19saXN0LT5ucjsgaSsrKQorCQkJc3RyYnVmX2FkZGYoJmVycl9tc2csCisJCQkJICAgICJcbiAgICAlcyIsCisJCQkJICAgIGZpbGVzX2xpc3QtPml0ZW1zW2ldLnN0cmluZyk7CisJCWlmIChhZHZpY2Vfcm1faGludHMpCisJCQlzdHJidWZfYWRkc3RyKCZlcnJfbXNnLCBoaW50c19tc2cpOworCQkqZXJycyA9IGVycm9yKCIlcyIsIGVycl9tc2cuYnVmKTsKKwkJc3RyYnVmX3JlbGVhc2UoJmVycl9tc2cpOworCX0KK30KKworc3RhdGljIHZvaWQgZXJyb3JfcmVtb3ZpbmdfY29uY3JldGVfc3VibW9kdWxlcyhzdHJ1Y3Qgc3RyaW5nX2xpc3QgKmZpbGVzLCBpbnQgKmVycnMpCit7CisJcHJpbnRfZXJyb3JfZmlsZXMoZmlsZXMsCisJCQkgIFFfKCJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZSAob3Igb25lIG9mIGl0cyBuZXN0ZWQgIgorCQkJICAgICAic3VibW9kdWxlcylcbiIKKwkJCSAgICAgInVzZXMgYSAuZ2l0IGRpcmVjdG9yeToiLAorCQkJICAgICAidGhlIGZvbGxvd2luZyBzdWJtb2R1bGVzIChvciBvbmUgb2YgaXRzIG5lc3RlZCAiCisJCQkgICAgICJzdWJtb2R1bGVzKVxuIgorCQkJICAgICAidXNlIGEgLmdpdCBkaXJlY3Rvcnk6IiwgZmlsZXMtPm5yKSwKKwkJCSAgXygiXG4odXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgIgorCQkJICAgICJpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIpLAorCQkJICBlcnJzKTsKKwlzdHJpbmdfbGlzdF9jbGVhcihmaWxlcywgMCk7Cit9CisKIHN0YXRpYyBpbnQgY2hlY2tfc3VibW9kdWxlc191c2VfZ2l0ZmlsZXModm9pZCkKIHsKIAlpbnQgaTsKIAlpbnQgZXJycyA9IDA7CisJc3RydWN0IHN0cmluZ19saXN0IGZpbGVzID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKIAogCWZvciAoaSA9IDA7IGkgPCBsaXN0Lm5yOyBpKyspIHsKIAkJY29uc3QgY2hhciAqbmFtZSA9IGxpc3QuZW50cnlbaV0ubmFtZTsKIAkJaW50IHBvczsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKIAkJc3RydWN0IHN0YXQgc3Q7CiAKIAkJcG9zID0gY2FjaGVfbmFtZV9wb3MobmFtZSwgc3RybGVuKG5hbWUpKTsKQEAgLTYxLDEyICs5OSwxMSBAQAogCQkJY29udGludWU7CiAKIAkJaWYgKCFzdWJtb2R1bGVfdXNlc19naXRmaWxlKG5hbWUpKQotCQkJZXJycyA9IGVycm9yKF8oInN1Ym1vZHVsZSAnJXMnIChvciBvbmUgb2YgaXRzIG5lc3RlZCAiCi0JCQkJICAgICAic3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCi0JCQkJICAgICAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlICIKLQkJCQkgICAgICJpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIpLCBuYW1lKTsKKwkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXMsIG5hbWUpOwogCX0KIAorCWVycm9yX3JlbW92aW5nX2NvbmNyZXRlX3N1Ym1vZHVsZXMoJmZpbGVzLCAmZXJycyk7CisKIAlyZXR1cm4gZXJyczsKIH0KIApAQCAtODEsMTIgKzExOCwxNiBAQAogCSAqLwogCWludCBpLCBub19oZWFkOwogCWludCBlcnJzID0gMDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZmlsZXNfc3RhZ2VkID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZmlsZXNfY2FjaGVkID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZmlsZXNfc3VibW9kdWxlID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZmlsZXNfbG9jYWwgPSBTVFJJTkdfTElTVF9JTklUX05PRFVQOwogCiAJbm9faGVhZCA9IGlzX251bGxfc2hhMShoZWFkKTsKIAlmb3IgKGkgPSAwOyBpIDwgbGlzdC5ucjsgaSsrKSB7CiAJCXN0cnVjdCBzdGF0IHN0OwogCQlpbnQgcG9zOwotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCQljb25zdCBjaGFyICpuYW1lID0gbGlzdC5lbnRyeVtpXS5uYW1lOwogCQl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOwogCQl1bnNpZ25lZCBtb2RlOwpAQCAtMTcxLDI5ICsyMTIsNTAgQEAKIAkJICovCiAJCWlmIChsb2NhbF9jaGFuZ2VzICYmIHN0YWdlZF9jaGFuZ2VzKSB7CiAJCQlpZiAoIWluZGV4X29ubHkgfHwgIShjZS0+Y2VfZmxhZ3MgJiBDRV9JTlRFTlRfVE9fQUREKSkKLQkJCQllcnJzID0gZXJyb3IoXygiJyVzJyBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50ICIKLQkJCQkJICAgICAiZnJvbSBib3RoIHRoZSBmaWxlIGFuZCB0aGUgSEVBRFxuIgotCQkJCQkgICAgICIodXNlIC1mIHRvIGZvcmNlIHJlbW92YWwpIiksIG5hbWUpOworCQkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXNfc3RhZ2VkLCBuYW1lKTsKIAkJfQogCQllbHNlIGlmICghaW5kZXhfb25seSkgewogCQkJaWYgKHN0YWdlZF9jaGFuZ2VzKQotCQkJCWVycnMgPSBlcnJvcihfKCInJXMnIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXhcbiIKLQkJCQkJICAgICAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCAiCi0JCQkJCSAgICAgIm9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIiksIG5hbWUpOworCQkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXNfY2FjaGVkLCBuYW1lKTsKIAkJCWlmIChsb2NhbF9jaGFuZ2VzKSB7CiAJCQkJaWYgKFNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSAmJgotCQkJCSAgICAhc3VibW9kdWxlX3VzZXNfZ2l0ZmlsZShuYW1lKSkgewotCQkJCQllcnJzID0gZXJyb3IoXygic3VibW9kdWxlICclcycgKG9yIG9uZSBvZiBpdHMgbmVzdGVkICIKLQkJCQkJCSAgICAgInN1Ym1vZHVsZXMpIHVzZXMgYSAuZ2l0IGRpcmVjdG9yeVxuIgotCQkJCQkJICAgICAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlICIKLQkJCQkJCSAgICAgIml0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIiksIG5hbWUpOwotCQkJCX0gZWxzZQotCQkJCQllcnJzID0gZXJyb3IoXygiJyVzJyBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uc1xuIgotCQkJCQkJICAgICAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCAiCi0JCQkJCQkgICAgICJvciAtZiB0byBmb3JjZSByZW1vdmFsKSIpLCBuYW1lKTsKKwkJCQkgICAgIXN1Ym1vZHVsZV91c2VzX2dpdGZpbGUobmFtZSkpCisJCQkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXNfc3VibW9kdWxlLCBuYW1lKTsKKwkJCQllbHNlCisJCQkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXNfbG9jYWwsIG5hbWUpOwogCQkJfQogCQl9CiAJfQorCXByaW50X2Vycm9yX2ZpbGVzKCZmaWxlc19zdGFnZWQsCisJCQkgIFFfKCJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCAiCisJCQkgICAgICJmcm9tIGJvdGggdGhlXG5maWxlIGFuZCB0aGUgSEVBRDoiLAorCQkJICAgICAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCIKKwkJCSAgICAgIiBmcm9tIGJvdGggdGhlXG5maWxlIGFuZCB0aGUgSEVBRDoiLAorCQkJICAgICBmaWxlc19zdGFnZWQubnIpLAorCQkJICBfKCJcbih1c2UgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiKSwKKwkJCSAgJmVycnMpOworCXN0cmluZ19saXN0X2NsZWFyKCZmaWxlc19zdGFnZWQsIDApOworCXByaW50X2Vycm9yX2ZpbGVzKCZmaWxlc19jYWNoZWQsCisJCQkgIFFfKCJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGNoYW5nZXMgIgorCQkJICAgICAic3RhZ2VkIGluIHRoZSBpbmRleDoiLAorCQkJICAgICAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgIgorCQkJICAgICAic3RhZ2VkIGluIHRoZSBpbmRleDoiLCBmaWxlc19jYWNoZWQubnIpLAorCQkJICBfKCJcbih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwiCisJCQkgICAgIiBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIpLAorCQkJICAmZXJycyk7CisJc3RyaW5nX2xpc3RfY2xlYXIoJmZpbGVzX2NhY2hlZCwgMCk7CisKKwllcnJvcl9yZW1vdmluZ19jb25jcmV0ZV9zdWJtb2R1bGVzKCZmaWxlc19zdWJtb2R1bGUsICZlcnJzKTsKKworCXByaW50X2Vycm9yX2ZpbGVzKCZmaWxlc19sb2NhbCwKKwkJCSAgUV8oInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uczoiLAorCQkJICAgICAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGxvY2FsIG1vZGlmaWNhdGlvbnM6IiwKKwkJCSAgICAgZmlsZXNfbG9jYWwubnIpLAorCQkJICBfKCJcbih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwiCisJCQkgICAgIiBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIpLAorCQkJICAmZXJycyk7CisJc3RyaW5nX2xpc3RfY2xlYXIoJmZpbGVzX2xvY2FsLCAwKTsKKwogCXJldHVybiBlcnJzOwogfQogCkBAIC0yNTgsNyArMzIwLDcgQEAKIAlzZWVuID0geGNhbGxvYyhpLCAxKTsKIAogCWZvciAoaSA9IDA7IGkgPCBhY3RpdmVfbnI7IGkrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOwogCQlpZiAoIW1hdGNoX3BhdGhzcGVjKHBhdGhzcGVjLCBjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSksIDAsIHNlZW4pKQogCQkJY29udGludWU7CiAJCUFMTE9DX0dST1cobGlzdC5lbnRyeSwgbGlzdC5uciArIDEsIGxpc3QuYWxsb2MpOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9zaG9ydGxvZy5jIGIvYnVpbHRpbi9zaG9ydGxvZy5jCmluZGV4IDFmZDZmOGEuLjE0MzRmOGYgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vc2hvcnRsb2cuYworKysgYi9idWlsdGluL3Nob3J0bG9nLmMKQEAgLTEzNyw2ICsxMzcsNyBAQAogCQljdHguc3ViamVjdCA9ICIiOwogCQljdHguYWZ0ZXJfc3ViamVjdCA9ICIiOwogCQljdHguZGF0ZV9tb2RlID0gREFURV9OT1JNQUw7CisJCWN0eC5vdXRwdXRfZW5jb2RpbmcgPSBnZXRfbG9nX291dHB1dF9lbmNvZGluZygpOwogCQlwcmV0dHlfcHJpbnRfY29tbWl0KCZjdHgsIGNvbW1pdCwgJnVmYnVmKTsKIAkJYnVmZmVyID0gdWZidWYuYnVmOwogCX0gZWxzZSBpZiAoKmJ1ZmZlcikgewpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9zaG93LWJyYW5jaC5jIGIvYnVpbHRpbi9zaG93LWJyYW5jaC5jCmluZGV4IDkwZmM2YjEuLjk3ODhlYjEgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vc2hvdy1icmFuY2guYworKysgYi9idWlsdGluL3Nob3ctYnJhbmNoLmMKQEAgLTYzMCw3ICs2MzAsNyBAQAogCWludCBudW1fcmV2LCBpLCBleHRyYSA9IDA7CiAJaW50IGFsbF9oZWFkcyA9IDAsIGFsbF9yZW1vdGVzID0gMDsKIAlpbnQgYWxsX21hc2ssIGFsbF9yZXZzOwotCWludCBsaWZvID0gMTsKKwllbnVtIHJldl9zb3J0X29yZGVyIHNvcnRfb3JkZXIgPSBSRVZfU09SVF9JTl9HUkFQSF9PUkRFUjsKIAljaGFyIGhlYWRbMTI4XTsKIAljb25zdCBjaGFyICpoZWFkX3A7CiAJaW50IGhlYWRfbGVuOwpAQCAtNjY1LDE1ICs2NjUsMTcgQEAKIAkJCSAgICBOXygic2hvdyBwb3NzaWJsZSBtZXJnZSBiYXNlcyIpKSwKIAkJT1BUX0JPT0xFQU4oMCwgImluZGVwZW5kZW50IiwgJmluZGVwZW5kZW50LAogCQkJICAgIE5fKCJzaG93IHJlZnMgdW5yZWFjaGFibGUgZnJvbSBhbnkgb3RoZXIgcmVmIikpLAotCQlPUFRfQk9PTEVBTigwLCAidG9wby1vcmRlciIsICZsaWZvLAotCQkJICAgIE5fKCJzaG93IGNvbW1pdHMgaW4gdG9wb2xvZ2ljYWwgb3JkZXIiKSksCisJCU9QVF9TRVRfSU5UKDAsICJ0b3BvLW9yZGVyIiwgJnNvcnRfb3JkZXIsCisJCQkgICAgTl8oInNob3cgY29tbWl0cyBpbiB0b3BvbG9naWNhbCBvcmRlciIpLAorCQkJICAgIFJFVl9TT1JUX0lOX0dSQVBIX09SREVSKSwKIAkJT1BUX0JPT0xFQU4oMCwgInRvcGljcyIsICZ0b3BpY3MsCiAJCQkgICAgTl8oInNob3cgb25seSBjb21taXRzIG5vdCBvbiB0aGUgZmlyc3QgYnJhbmNoIikpLAogCQlPUFRfU0VUX0lOVCgwLCAic3BhcnNlIiwgJmRlbnNlLAogCQkJICAgIE5fKCJzaG93IG1lcmdlcyByZWFjaGFibGUgZnJvbSBvbmx5IG9uZSB0aXAiKSwgMCksCi0JCU9QVF9TRVRfSU5UKDAsICJkYXRlLW9yZGVyIiwgJmxpZm8sCi0JCQkgICAgTl8oInNob3cgY29tbWl0cyB3aGVyZSBubyBwYXJlbnQgY29tZXMgYmVmb3JlIGl0cyAiCi0JCQkgICAgICAgImNoaWxkcmVuIiksIDApLAorCQlPUFRfU0VUX0lOVCgwLCAiZGF0ZS1vcmRlciIsICZzb3J0X29yZGVyLAorCQkJICAgIE5fKCJ0b3BvbG9naWNhbGx5IHNvcnQsIG1haW50YWluaW5nIGRhdGUgb3JkZXIgIgorCQkJICAgICAgICJ3aGVyZSBwb3NzaWJsZSIpLAorCQkJICAgIFJFVl9TT1JUX0JZX0NPTU1JVF9EQVRFKSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssICdnJywgInJlZmxvZyIsICZyZWZsb2dfYmFzZSwgTl8oIjxuPlssPGJhc2U+XSIpLAogCQkJICAgIE5fKCJzaG93IDxuPiBtb3N0IHJlY2VudCByZWYtbG9nIGVudHJpZXMgc3RhcnRpbmcgYXQgIgogCQkJICAgICAgICJiYXNlIiksCkBAIC05MDAsNyArOTAyLDcgQEAKIAkJZXhpdCgwKTsKIAogCS8qIFNvcnQgdG9wb2xvZ2ljYWxseSAqLwotCXNvcnRfaW5fdG9wb2xvZ2ljYWxfb3JkZXIoJnNlZW4sIGxpZm8pOworCXNvcnRfaW5fdG9wb2xvZ2ljYWxfb3JkZXIoJnNlZW4sIHNvcnRfb3JkZXIpOwogCiAJLyogR2l2ZSBuYW1lcyB0byBjb21taXRzICovCiAJaWYgKCFzaGExX25hbWUgJiYgIW5vX25hbWUpCmRpZmYgLS1naXQgYS9idWlsdGluL3Nob3ctcmVmLmMgYi9idWlsdGluL3Nob3ctcmVmLmMKaW5kZXggOGQ5Yjc2YS4uODc4MDZhZCAxMDA2NDQKLS0tIGEvYnVpbHRpbi9zaG93LXJlZi5jCisrKyBiL2J1aWx0aW4vc2hvdy1yZWYuYwpAQCAtMzEsNiArMzEsOSBAQAogCWNvbnN0IGNoYXIgKmhleDsKIAl1bnNpZ25lZCBjaGFyIHBlZWxlZFsyMF07CiAKKwlpZiAoc2hvd19oZWFkICYmICFzdHJjbXAocmVmbmFtZSwgIkhFQUQiKSkKKwkJZ290byBtYXRjaDsKKwogCWlmICh0YWdzX29ubHkgfHwgaGVhZHNfb25seSkgewogCQlpbnQgbWF0Y2g7CiAKQEAgLTEwMyw3ICsxMDYsNyBAQAogICovCiBzdGF0aWMgaW50IGV4Y2x1ZGVfZXhpc3RpbmcoY29uc3QgY2hhciAqbWF0Y2gpCiB7Ci0Jc3RhdGljIHN0cnVjdCBzdHJpbmdfbGlzdCBleGlzdGluZ19yZWZzID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKKwlzdGF0aWMgc3RydWN0IHN0cmluZ19saXN0IGV4aXN0aW5nX3JlZnMgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKIAljaGFyIGJ1ZlsxMDI0XTsKIAlpbnQgbWF0Y2hsZW4gPSBtYXRjaCA/IHN0cmxlbihtYXRjaCkgOiAwOwogCkBAIC0xNjcsOSArMTcwLDEwIEBACiAJT1BUX0JPT0xFQU4oMCwgInZlcmlmeSIsICZ2ZXJpZnksIE5fKCJzdHJpY3RlciByZWZlcmVuY2UgY2hlY2tpbmcsICIKIAkJICAgICJyZXF1aXJlcyBleGFjdCByZWYgcGF0aCIpKSwKIAl7IE9QVElPTl9CT09MRUFOLCAnaCcsIE5VTEwsICZzaG93X2hlYWQsIE5VTEwsCi0JICBOXygic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiKSwKKwkgIE5fKCJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiKSwKIAkgIFBBUlNFX09QVF9OT0FSRyB8IFBBUlNFX09QVF9ISURERU4gfSwKLQlPUFRfQk9PTEVBTigwLCAiaGVhZCIsICZzaG93X2hlYWQsIE5fKCJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSIpKSwKKwlPUFRfQk9PTEVBTigwLCAiaGVhZCIsICZzaG93X2hlYWQsCisJICBOXygic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgYmUgZmlsdGVyZWQgb3V0IikpLAogCU9QVF9CT09MRUFOKCdkJywgImRlcmVmZXJlbmNlIiwgJmRlcmVmX3RhZ3MsCiAJCSAgICBOXygiZGVyZWZlcmVuY2UgdGFncyBpbnRvIG9iamVjdCBJRHMiKSksCiAJeyBPUFRJT05fQ0FMTEJBQ0ssICdzJywgImhhc2giLCAmYWJicmV2LCBOXygibiIpLApkaWZmIC0tZ2l0IGEvYnVpbHRpbi91cGRhdGUtaW5kZXguYyBiL2J1aWx0aW4vdXBkYXRlLWluZGV4LmMKaW5kZXggNWM3NzYyZS4uYzMxNzk4MSAxMDA2NDQKLS0tIGEvYnVpbHRpbi91cGRhdGUtaW5kZXguYworKysgYi9idWlsdGluL3VwZGF0ZS1pbmRleC5jCkBAIC04Myw3ICs4Myw3IEBACiAJcmV0dXJuIGVycm9yKCJsc3RhdChcIiVzXCIpOiAlcyIsIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7CiB9CiAKLXN0YXRpYyBpbnQgYWRkX29uZV9wYXRoKHN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgbGVuLCBzdHJ1Y3Qgc3RhdCAqc3QpCitzdGF0aWMgaW50IGFkZF9vbmVfcGF0aChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCwgY29uc3QgY2hhciAqcGF0aCwgaW50IGxlbiwgc3RydWN0IHN0YXQgKnN0KQogewogCWludCBvcHRpb24sIHNpemU7CiAJc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKQEAgLTE0Miw3ICsxNDIsNyBAQAogCiAJLyogRXhhY3QgbWF0Y2g6IGZpbGUgb3IgZXhpc3RpbmcgZ2l0bGluayAqLwogCWlmIChwb3MgPj0gMCkgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbcG9zXTsKIAkJaWYgKFNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSkgewogCiAJCQkvKiBEbyBub3RoaW5nIHRvIHRoZSBpbmRleCBpZiB0aGVyZSBpcyBubyBIRUFEISAqLwpAQCAtMTU4LDcgKzE1OCw3IEBACiAJLyogSW5leGFjdCBtYXRjaDogaXMgdGhlcmUgcGVyaGFwcyBhIHN1YmRpcmVjdG9yeSBtYXRjaD8gKi8KIAlwb3MgPSAtcG9zLTE7CiAJd2hpbGUgKHBvcyA8IGFjdGl2ZV9ucikgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3BvcysrXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3MrK107CiAKIAkJaWYgKHN0cm5jbXAoY2UtPm5hbWUsIHBhdGgsIGxlbikpCiAJCQlicmVhazsKQEAgLTE4Myw3ICsxODMsNyBAQAogewogCWludCBwb3MsIGxlbjsKIAlzdHJ1Y3Qgc3RhdCBzdDsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CiAKIAlsZW4gPSBzdHJsZW4ocGF0aCk7CiAJaWYgKGhhc19zeW1saW5rX2xlYWRpbmdfcGF0aChwYXRoLCBsZW4pKQpAQCAtNDQ4LDcgKzQ0OCw3IEBACiAJCS8qIGFscmVhZHkgbWVyZ2VkICovCiAJCXBvcyA9IHVubWVyZ2VfY2FjaGVfZW50cnlfYXQocG9zKTsKIAkJaWYgKHBvcyA8IGFjdGl2ZV9ucikgewotCQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOworCQkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOwogCQkJaWYgKGNlX3N0YWdlKGNlKSAmJgogCQkJICAgIGNlX25hbWVsZW4oY2UpID09IG5hbWVsZW4gJiYKIAkJCSAgICAhbWVtY21wKGNlLT5uYW1lLCBwYXRoLCBuYW1lbGVuKSkKQEAgLTQ2Miw3ICs0NjIsNyBAQAogCQkgKi8KIAkJcG9zID0gLXBvcy0xOwogCQlpZiAocG9zIDwgYWN0aXZlX25yKSB7Ci0JCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CisJCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CiAJCQlpZiAoY2VfbmFtZWxlbihjZSkgPT0gbmFtZWxlbiAmJgogCQkJICAgICFtZW1jbXAoY2UtPm5hbWUsIHBhdGgsIG5hbWVsZW4pKSB7CiAJCQkJZnByaW50ZihzdGRlcnIsCkBAIC01NTgsNyArNTU4LDcgQEAKIAkJaGFzX2hlYWQgPSAwOwogIHJlZG86CiAJZm9yIChwb3MgPSAwOyBwb3MgPCBhY3RpdmVfbnI7IHBvcysrKSB7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbcG9zXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOwogCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCA9IE5VTEw7CiAJCWludCBzYXZlX25yOwogCmRpZmYgLS1naXQgYS9idWxrLWNoZWNraW4uYyBiL2J1bGstY2hlY2tpbi5jCmluZGV4IDZiMGI2ZDQuLjExOGM2MjUgMTAwNjQ0Ci0tLSBhL2J1bGstY2hlY2tpbi5jCisrKyBiL2J1bGstY2hlY2tpbi5jCkBAIC0xMTQsNyArMTE0LDcgQEAKIAogCQlpZiAoc2l6ZSAmJiAhcy5hdmFpbF9pbikgewogCQkJc3NpemVfdCByc2l6ZSA9IHNpemUgPCBzaXplb2YoaWJ1ZikgPyBzaXplIDogc2l6ZW9mKGlidWYpOwotCQkJaWYgKHhyZWFkKGZkLCBpYnVmLCByc2l6ZSkgIT0gcnNpemUpCisJCQlpZiAocmVhZF9pbl9mdWxsKGZkLCBpYnVmLCByc2l6ZSkgIT0gcnNpemUpCiAJCQkJZGllKCJmYWlsZWQgdG8gcmVhZCAlZCBieXRlcyBmcm9tICclcyciLAogCQkJCSAgICAoaW50KXJzaXplLCBwYXRoKTsKIAkJCW9mZnNldCArPSByc2l6ZTsKZGlmZiAtLWdpdCBhL2J1bmRsZS5jIGIvYnVuZGxlLmMKaW5kZXggNGIwZTVjZC4uM2Q2NDMxMSAxMDA2NDQKLS0tIGEvYnVuZGxlLmMKKysrIGIvYnVuZGxlLmMKQEAgLTI4MSw3ICsyODEsNyBAQAogCQkJaWYgKCFnZXRfc2hhMV9oZXgoYnVmLmJ1ZiArIDEsIHNoYTEpKSB7CiAJCQkJc3RydWN0IG9iamVjdCAqb2JqZWN0ID0gcGFyc2Vfb2JqZWN0X29yX2RpZShzaGExLCBidWYuYnVmKTsKIAkJCQlvYmplY3QtPmZsYWdzIHw9IFVOSU5URVJFU1RJTkc7Ci0JCQkJYWRkX3BlbmRpbmdfb2JqZWN0KCZyZXZzLCBvYmplY3QsIHhzdHJkdXAoYnVmLmJ1ZikpOworCQkJCWFkZF9wZW5kaW5nX29iamVjdCgmcmV2cywgb2JqZWN0LCBidWYuYnVmKTsKIAkJCX0KIAkJfSBlbHNlIGlmICghZ2V0X3NoYTFfaGV4KGJ1Zi5idWYsIHNoYTEpKSB7CiAJCQlzdHJ1Y3Qgb2JqZWN0ICpvYmplY3QgPSBwYXJzZV9vYmplY3Rfb3JfZGllKHNoYTEsIGJ1Zi5idWYpOwpkaWZmIC0tZ2l0IGEvY2FjaGUtdHJlZS5jIGIvY2FjaGUtdHJlZS5jCmluZGV4IDM3ZTRkMDAuLjBiYmVjNDMgMTAwNjQ0Ci0tLSBhL2NhY2hlLXRyZWUuYworKysgYi9jYWNoZS10cmVlLmMKQEAgLTE0OSw3ICsxNDksNyBAQAogCQljYWNoZV90cmVlX2ludmFsaWRhdGVfcGF0aChkb3duLT5jYWNoZV90cmVlLCBzbGFzaCArIDEpOwogfQogCi1zdGF0aWMgaW50IHZlcmlmeV9jYWNoZShzdHJ1Y3QgY2FjaGVfZW50cnkgKipjYWNoZSwKK3N0YXRpYyBpbnQgdmVyaWZ5X2NhY2hlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpjYWNoZSwKIAkJCWludCBlbnRyaWVzLCBpbnQgZmxhZ3MpCiB7CiAJaW50IGksIGZ1bm55OwpAQCAtMTU4LDcgKzE1OCw3IEBACiAJLyogVmVyaWZ5IHRoYXQgdGhlIHRyZWUgaXMgbWVyZ2VkICovCiAJZnVubnkgPSAwOwogCWZvciAoaSA9IDA7IGkgPCBlbnRyaWVzOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGNhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gY2FjaGVbaV07CiAJCWlmIChjZV9zdGFnZShjZSkpIHsKIAkJCWlmIChzaWxlbnQpCiAJCQkJcmV0dXJuIC0xOwpAQCAtMjM0LDcgKzIzNCw3IEBACiB9CiAKIHN0YXRpYyBpbnQgdXBkYXRlX29uZShzdHJ1Y3QgY2FjaGVfdHJlZSAqaXQsCi0JCSAgICAgIHN0cnVjdCBjYWNoZV9lbnRyeSAqKmNhY2hlLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqY2FjaGUsCiAJCSAgICAgIGludCBlbnRyaWVzLAogCQkgICAgICBjb25zdCBjaGFyICpiYXNlLAogCQkgICAgICBpbnQgYmFzZWxlbiwKQEAgLTI2NSw3ICsyNjUsNyBAQAogCSAqLwogCWkgPSAwOwogCXdoaWxlIChpIDwgZW50cmllcykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gY2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBjYWNoZVtpXTsKIAkJc3RydWN0IGNhY2hlX3RyZWVfc3ViICpzdWI7CiAJCWNvbnN0IGNoYXIgKnBhdGgsICpzbGFzaDsKIAkJaW50IHBhdGhsZW4sIHN1Ymxlbiwgc3ViY250LCBzdWJza2lwOwpAQCAtMzEyLDcgKzMxMiw3IEBACiAKIAlpID0gMDsKIAl3aGlsZSAoaSA8IGVudHJpZXMpIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGNhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gY2FjaGVbaV07CiAJCXN0cnVjdCBjYWNoZV90cmVlX3N1YiAqc3ViOwogCQljb25zdCBjaGFyICpwYXRoLCAqc2xhc2g7CiAJCWludCBwYXRobGVuLCBlbnRsZW47CkBAIC0zOTcsNyArMzk3LDcgQEAKIH0KIAogaW50IGNhY2hlX3RyZWVfdXBkYXRlKHN0cnVjdCBjYWNoZV90cmVlICppdCwKLQkJICAgICAgc3RydWN0IGNhY2hlX2VudHJ5ICoqY2FjaGUsCisJCSAgICAgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpjYWNoZSwKIAkJICAgICAgaW50IGVudHJpZXMsCiAJCSAgICAgIGludCBmbGFncykKIHsKQEAgLTU5OSw4ICs1OTksOCBAQAogCXdhc192YWxpZCA9IGNhY2hlX3RyZWVfZnVsbHlfdmFsaWQoYWN0aXZlX2NhY2hlX3RyZWUpOwogCWlmICghd2FzX3ZhbGlkKSB7CiAJCWlmIChjYWNoZV90cmVlX3VwZGF0ZShhY3RpdmVfY2FjaGVfdHJlZSwKLQkJCQkgICAgICBhY3RpdmVfY2FjaGUsIGFjdGl2ZV9uciwKLQkJCQkgICAgICBmbGFncykgPCAwKQorCQkJCSAgICAgIChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqKWFjdGl2ZV9jYWNoZSwKKwkJCQkgICAgICBhY3RpdmVfbnIsIGZsYWdzKSA8IDApCiAJCQlyZXR1cm4gV1JJVEVfVFJFRV9VTk1FUkdFRF9JTkRFWDsKIAkJaWYgKDAgPD0gbmV3ZmQpIHsKIAkJCWlmICghd3JpdGVfY2FjaGUobmV3ZmQsIGFjdGl2ZV9jYWNoZSwgYWN0aXZlX25yKSAmJgpAQCAtNzAxLDUgKzcwMSw2IEBACiAJaWYgKCF0aGVfaW5kZXguY2FjaGVfdHJlZSkKIAkJdGhlX2luZGV4LmNhY2hlX3RyZWUgPSBjYWNoZV90cmVlKCk7CiAJcmV0dXJuIGNhY2hlX3RyZWVfdXBkYXRlKHRoZV9pbmRleC5jYWNoZV90cmVlLAotCQkJCSB0aGVfaW5kZXguY2FjaGUsIHRoZV9pbmRleC5jYWNoZV9uciwgZmxhZ3MpOworCQkJCSAoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKil0aGVfaW5kZXguY2FjaGUsCisJCQkJIHRoZV9pbmRleC5jYWNoZV9uciwgZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvY2FjaGUtdHJlZS5oIGIvY2FjaGUtdHJlZS5oCmluZGV4IDU1ZDBmNTkuLmYxOTIzYWQgMTAwNjQ0Ci0tLSBhL2NhY2hlLXRyZWUuaAorKysgYi9jYWNoZS10cmVlLmgKQEAgLTMwLDcgKzMwLDcgQEAKIHN0cnVjdCBjYWNoZV90cmVlICpjYWNoZV90cmVlX3JlYWQoY29uc3QgY2hhciAqYnVmZmVyLCB1bnNpZ25lZCBsb25nIHNpemUpOwogCiBpbnQgY2FjaGVfdHJlZV9mdWxseV92YWxpZChzdHJ1Y3QgY2FjaGVfdHJlZSAqKTsKLWludCBjYWNoZV90cmVlX3VwZGF0ZShzdHJ1Y3QgY2FjaGVfdHJlZSAqLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiosIGludCwgaW50KTsKK2ludCBjYWNoZV90cmVlX3VwZGF0ZShzdHJ1Y3QgY2FjaGVfdHJlZSAqLCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqLCBpbnQsIGludCk7CiAKIGludCB1cGRhdGVfbWFpbl9jYWNoZV90cmVlKGludCk7CiAKZGlmZiAtLWdpdCBhL2NhY2hlLmggYi9jYWNoZS5oCmluZGV4IDk0Y2ExYWMuLjg1YjU0NGYgMTAwNjQ0Ci0tLSBhL2NhY2hlLmgKKysrIGIvY2FjaGUuaApAQCAtMTE5LDE1ICsxMTksMTkgQEAKIAl1bnNpZ25lZCBpbnQgbnNlYzsKIH07CiAKK3N0cnVjdCBzdGF0X2RhdGEgeworCXN0cnVjdCBjYWNoZV90aW1lIHNkX2N0aW1lOworCXN0cnVjdCBjYWNoZV90aW1lIHNkX210aW1lOworCXVuc2lnbmVkIGludCBzZF9kZXY7CisJdW5zaWduZWQgaW50IHNkX2lubzsKKwl1bnNpZ25lZCBpbnQgc2RfdWlkOworCXVuc2lnbmVkIGludCBzZF9naWQ7CisJdW5zaWduZWQgaW50IHNkX3NpemU7Cit9OworCiBzdHJ1Y3QgY2FjaGVfZW50cnkgewotCXN0cnVjdCBjYWNoZV90aW1lIGNlX2N0aW1lOwotCXN0cnVjdCBjYWNoZV90aW1lIGNlX210aW1lOwotCXVuc2lnbmVkIGludCBjZV9kZXY7Ci0JdW5zaWduZWQgaW50IGNlX2lubzsKKwlzdHJ1Y3Qgc3RhdF9kYXRhIGNlX3N0YXRfZGF0YTsKIAl1bnNpZ25lZCBpbnQgY2VfbW9kZTsKLQl1bnNpZ25lZCBpbnQgY2VfdWlkOwotCXVuc2lnbmVkIGludCBjZV9naWQ7Ci0JdW5zaWduZWQgaW50IGNlX3NpemU7CiAJdW5zaWduZWQgaW50IGNlX2ZsYWdzOwogCXVuc2lnbmVkIGludCBjZV9uYW1lbGVuOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CkBAIC0xOTAsNyArMTk0LDggQEAKICAqIGFub3RoZXIuIEJ1dCB3ZSBuZXZlciBjaGFuZ2UgdGhlIG5hbWUsIG9yIHRoZSBoYXNoIHN0YXRlIQogICovCiAjZGVmaW5lIENFX1NUQVRFX01BU0sgKENFX0hBU0hFRCB8IENFX1VOSEFTSEVEKQotc3RhdGljIGlubGluZSB2b2lkIGNvcHlfY2FjaGVfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpkc3QsIHN0cnVjdCBjYWNoZV9lbnRyeSAqc3JjKQorc3RhdGljIGlubGluZSB2b2lkIGNvcHlfY2FjaGVfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpkc3QsCisJCQkJICAgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqc3JjKQogewogCXVuc2lnbmVkIGludCBzdGF0ZSA9IGRzdC0+Y2VfZmxhZ3MgJiBDRV9TVEFURV9NQVNLOwogCkBAIC0yMjIsNyArMjI3LDggQEAKIAkJcmV0dXJuIFNfSUZHSVRMSU5LOwogCXJldHVybiBTX0lGUkVHIHwgY2VfcGVybWlzc2lvbnMobW9kZSk7CiB9Ci1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjZV9tb2RlX2Zyb21fc3RhdChzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCB1bnNpZ25lZCBpbnQgbW9kZSkKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNlX21vZGVfZnJvbV9zdGF0KGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkJCSAgICAgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAJZXh0ZXJuIGludCB0cnVzdF9leGVjdXRhYmxlX2JpdCwgaGFzX3N5bWxpbmtzOwogCWlmICghaGFzX3N5bWxpbmtzICYmIFNfSVNSRUcobW9kZSkgJiYKQEAgLTQxOSw2ICs0MjUsOCBAQAogZXh0ZXJuIGludCBzZXRfZ2l0X2Rpcl9pbml0KGNvbnN0IGNoYXIgKmdpdF9kaXIsIGNvbnN0IGNoYXIgKnJlYWxfZ2l0X2RpciwgaW50KTsKIGV4dGVybiBpbnQgaW5pdF9kYihjb25zdCBjaGFyICp0ZW1wbGF0ZV9kaXIsIHVuc2lnbmVkIGludCBmbGFncyk7CiAKK2V4dGVybiB2b2lkIHNhbml0aXplX3N0ZGZkcyh2b2lkKTsKKwogI2RlZmluZSBhbGxvY19ucih4KSAoKCh4KSsxNikqMy8yKQogCiAvKgpAQCAtNDcwLDcgKzQ3OCw3IEBACiBleHRlcm4gaW50IGFkZF90b19pbmRleChzdHJ1Y3QgaW5kZXhfc3RhdGUgKiwgY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0YXQgKiwgaW50IGZsYWdzKTsKIGV4dGVybiBpbnQgYWRkX2ZpbGVfdG9faW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IGNoYXIgKnBhdGgsIGludCBmbGFncyk7CiBleHRlcm4gc3RydWN0IGNhY2hlX2VudHJ5ICptYWtlX2NhY2hlX2VudHJ5KHVuc2lnbmVkIGludCBtb2RlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgc3RhZ2UsIGludCByZWZyZXNoKTsKLWV4dGVybiBpbnQgY2Vfc2FtZV9uYW1lKHN0cnVjdCBjYWNoZV9lbnRyeSAqYSwgc3RydWN0IGNhY2hlX2VudHJ5ICpiKTsKK2V4dGVybiBpbnQgY2Vfc2FtZV9uYW1lKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqYSwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpiKTsKIGV4dGVybiBpbnQgaW5kZXhfbmFtZV9pc19vdGhlcihjb25zdCBzdHJ1Y3QgaW5kZXhfc3RhdGUgKiwgY29uc3QgY2hhciAqLCBpbnQpOwogZXh0ZXJuIHZvaWQgKnJlYWRfYmxvYl9kYXRhX2Zyb21faW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgbG9uZyAqKTsKIApAQCAtNDgwLDEwICs0ODgsMTAgQEAKICNkZWZpbmUgQ0VfTUFUQ0hfUkFDWV9JU19ESVJUWQkJMDIKIC8qIGRvIHN0YXQgY29tcGFyaXNvbiBldmVuIGlmIENFX1NLSVBfV09SS1RSRUUgaXMgdHJ1ZSAqLwogI2RlZmluZSBDRV9NQVRDSF9JR05PUkVfU0tJUF9XT1JLVFJFRQkwNAotZXh0ZXJuIGludCBpZV9tYXRjaF9zdGF0KGNvbnN0IHN0cnVjdCBpbmRleF9zdGF0ZSAqLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiwgc3RydWN0IHN0YXQgKiwgdW5zaWduZWQgaW50KTsKLWV4dGVybiBpbnQgaWVfbW9kaWZpZWQoY29uc3Qgc3RydWN0IGluZGV4X3N0YXRlICosIHN0cnVjdCBjYWNoZV9lbnRyeSAqLCBzdHJ1Y3Qgc3RhdCAqLCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIGludCBpZV9tYXRjaF9zdGF0KGNvbnN0IHN0cnVjdCBpbmRleF9zdGF0ZSAqLCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiwgc3RydWN0IHN0YXQgKiwgdW5zaWduZWQgaW50KTsKK2V4dGVybiBpbnQgaWVfbW9kaWZpZWQoY29uc3Qgc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqLCBzdHJ1Y3Qgc3RhdCAqLCB1bnNpZ25lZCBpbnQpOwogCi0jZGVmaW5lIFBBVEhTUEVDX09ORVNUQVIgMQkvKiB0aGUgcGF0aHNwZWMgcGF0dGVybiBzYXN0aXNmaWVzIEdGTk1fT05FU1RBUiAqLworI2RlZmluZSBQQVRIU1BFQ19PTkVTVEFSIDEJLyogdGhlIHBhdGhzcGVjIHBhdHRlcm4gc2F0aXNmaWVzIEdGTk1fT05FU1RBUiAqLwogCiBzdHJ1Y3QgcGF0aHNwZWMgewogCWNvbnN0IGNoYXIgKipyYXc7IC8qIGdldF9wYXRoc3BlYygpIHJlc3VsdCwgbm90IGZyZWVkIGJ5IGZyZWVfcGF0aHNwZWMoKSAqLwpAQCAtNTA5LDYgKzUxNywyMSBAQAogI2RlZmluZSBIQVNIX0ZPUk1BVF9DSEVDSyAyCiBleHRlcm4gaW50IGluZGV4X2ZkKHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCBmZCwgc3RydWN0IHN0YXQgKnN0LCBlbnVtIG9iamVjdF90eXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGZsYWdzKTsKIGV4dGVybiBpbnQgaW5kZXhfcGF0aCh1bnNpZ25lZCBjaGFyICpzaGExLCBjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqc3QsIHVuc2lnbmVkIGZsYWdzKTsKKworLyoKKyAqIFJlY29yZCB0byBzZCB0aGUgZGF0YSBmcm9tIHN0IHRoYXQgd2UgdXNlIHRvIGNoZWNrIHdoZXRoZXIgYSBmaWxlCisgKiBtaWdodCBoYXZlIGNoYW5nZWQuCisgKi8KK2V4dGVybiB2b2lkIGZpbGxfc3RhdF9kYXRhKHN0cnVjdCBzdGF0X2RhdGEgKnNkLCBzdHJ1Y3Qgc3RhdCAqc3QpOworCisvKgorICogUmV0dXJuIDAgaWYgc3QgaXMgY29uc2lzdGVudCB3aXRoIGEgZmlsZSBub3QgaGF2aW5nIGJlZW4gY2hhbmdlZAorICogc2luY2Ugc2Qgd2FzIGZpbGxlZC4gIElmIHRoZXJlIGFyZSBkaWZmZXJlbmNlcywgcmV0dXJuIGEKKyAqIGNvbWJpbmF0aW9uIG9mIE1USU1FX0NIQU5HRUQsIENUSU1FX0NIQU5HRUQsIE9XTkVSX0NIQU5HRUQsCisgKiBJTk9ERV9DSEFOR0VELCBhbmQgREFUQV9DSEFOR0VELgorICovCitleHRlcm4gaW50IG1hdGNoX3N0YXRfZGF0YShjb25zdCBzdHJ1Y3Qgc3RhdF9kYXRhICpzZCwgc3RydWN0IHN0YXQgKnN0KTsKKwogZXh0ZXJuIHZvaWQgZmlsbF9zdGF0X2NhY2hlX2luZm8oc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KTsKIAogI2RlZmluZSBSRUZSRVNIX1JFQUxMWQkJMHgwMDAxCS8qIGlnbm9yZV92YWxpZCAqLwpAQCAtNTU0LDYgKzU3Nyw3IEBACiBleHRlcm4gaW50IHByZWZlcl9zeW1saW5rX3JlZnM7CiBleHRlcm4gaW50IGxvZ19hbGxfcmVmX3VwZGF0ZXM7CiBleHRlcm4gaW50IHdhcm5fYW1iaWd1b3VzX3JlZnM7CitleHRlcm4gaW50IHdhcm5fb25fb2JqZWN0X3JlZm5hbWVfYW1iaWd1aXR5OwogZXh0ZXJuIGludCBzaGFyZWRfcmVwb3NpdG9yeTsKIGV4dGVybiBjb25zdCBjaGFyICphcHBseV9kZWZhdWx0X3doaXRlc3BhY2U7CiBleHRlcm4gY29uc3QgY2hhciAqYXBwbHlfZGVmYXVsdF9pZ25vcmV3aGl0ZXNwYWNlOwpAQCAtNzM3LDcgKzc2MSw3IEBACiBjb25zdCBjaGFyICpyZWFsX3BhdGgoY29uc3QgY2hhciAqcGF0aCk7CiBjb25zdCBjaGFyICpyZWFsX3BhdGhfaWZfdmFsaWQoY29uc3QgY2hhciAqcGF0aCk7CiBjb25zdCBjaGFyICphYnNvbHV0ZV9wYXRoKGNvbnN0IGNoYXIgKnBhdGgpOwotY29uc3QgY2hhciAqcmVsYXRpdmVfcGF0aChjb25zdCBjaGFyICphYnMsIGNvbnN0IGNoYXIgKmJhc2UpOworY29uc3QgY2hhciAqcmVsYXRpdmVfcGF0aChjb25zdCBjaGFyICppbiwgY29uc3QgY2hhciAqcHJlZml4LCBzdHJ1Y3Qgc3RyYnVmICpzYik7CiBpbnQgbm9ybWFsaXplX3BhdGhfY29weShjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYyk7CiBpbnQgbG9uZ2VzdF9hbmNlc3Rvcl9sZW5ndGgoY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0cmluZ19saXN0ICpwcmVmaXhlcyk7CiBjaGFyICpzdHJpcF9wYXRoX3N1ZmZpeChjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpzdWZmaXgpOwpAQCAtNzcyLDkgKzc5Niw2IEBACiAvKiBnbG9iYWwgZmxhZyB0byBlbmFibGUgZXh0cmEgY2hlY2tzIHdoZW4gYWNjZXNzaW5nIHBhY2tlZCBvYmplY3RzICovCiBleHRlcm4gaW50IGRvX2NoZWNrX3BhY2tlZF9vYmplY3RfY3JjOwogCi0vKiBmb3IgZGV2ZWxvcG1lbnQ6IGxvZyBvZmZzZXQgb2YgcGFjayBhY2Nlc3MgKi8KLWV4dGVybiBjb25zdCBjaGFyICpsb2dfcGFja19hY2Nlc3M7Ci0KIGV4dGVybiBpbnQgY2hlY2tfc2hhMV9zaWduYXR1cmUoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIHNpemUsIGNvbnN0IGNoYXIgKnR5cGUpOwogCiBleHRlcm4gaW50IG1vdmVfdGVtcF90b19maWxlKGNvbnN0IGNoYXIgKnRtcGZpbGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKQEAgLTkxMCw2ICs5MzEsNyBAQAogCQkJc3RydWN0IHN0cmJ1ZiAqdGltZWJ1Zik7CiBpbnQgcGFyc2VfZGF0ZShjb25zdCBjaGFyICpkYXRlLCBjaGFyICpidWYsIGludCBidWZzaXplKTsKIGludCBwYXJzZV9kYXRlX2Jhc2ljKGNvbnN0IGNoYXIgKmRhdGUsIHVuc2lnbmVkIGxvbmcgKnRpbWVzdGFtcCwgaW50ICpvZmZzZXQpOworaW50IHBhcnNlX2V4cGlyeV9kYXRlKGNvbnN0IGNoYXIgKmRhdGUsIHVuc2lnbmVkIGxvbmcgKnRpbWVzdGFtcCk7CiB2b2lkIGRhdGVzdGFtcChjaGFyICpidWYsIGludCBidWZzaXplKTsKICNkZWZpbmUgYXBwcm94aWRhdGUocykgYXBwcm94aWRhdGVfY2FyZWZ1bCgocyksIE5VTEwpCiB1bnNpZ25lZCBsb25nIGFwcHJveGlkYXRlX2NhcmVmdWwoY29uc3QgY2hhciAqLCBpbnQgKik7CkBAIC0xMDI0LDkgKzEwNDYsMjEgQEAKIAl1bnNpZ25lZCBpbnQKIAkJZm9yY2U6MSwKIAkJZm9yY2VkX3VwZGF0ZToxLAotCQltZXJnZToxLAogCQlkZWxldGlvbjoxLAogCQltYXRjaGVkOjE7CisKKwkvKgorCSAqIE9yZGVyIGlzIGltcG9ydGFudCBoZXJlLCBhcyB3ZSB3cml0ZSB0byBGRVRDSF9IRUFECisJICogaW4gbnVtZXJpYyBvcmRlci4gQW5kIHRoZSBkZWZhdWx0IE5PVF9GT1JfTUVSR0UKKwkgKiBzaG91bGQgYmUgMCwgc28gdGhhdCB4Y2FsbG9jJ2Qgc3RydWN0dXJlcyBnZXQgaXQKKwkgKiBieSBkZWZhdWx0LgorCSAqLworCWVudW0geworCQlGRVRDSF9IRUFEX01FUkdFID0gLTEsCisJCUZFVENIX0hFQURfTk9UX0ZPUl9NRVJHRSA9IDAsCisJCUZFVENIX0hFQURfSUdOT1JFID0gMQorCX0gZmV0Y2hfaGVhZF9zdGF0dXM7CisKIAllbnVtIHsKIAkJUkVGX1NUQVRVU19OT05FID0gMCwKIAkJUkVGX1NUQVRVU19PSywKQEAgLTEwOTgsNyArMTEzMiw5IEBACiAKIHN0cnVjdCBvYmplY3RfaW5mbyB7CiAJLyogUmVxdWVzdCAqLworCWVudW0gb2JqZWN0X3R5cGUgKnR5cGVwOwogCXVuc2lnbmVkIGxvbmcgKnNpemVwOworCXVuc2lnbmVkIGxvbmcgKmRpc2tfc2l6ZXA7CiAKIAkvKiBSZXNwb25zZSAqLwogCWVudW0gewpAQCAtMTE0MiwxMSArMTE3OCwxNSBAQAogdHlwZWRlZiBpbnQgKCpjb25maWdfZm5fdCkoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHZvaWQgKik7CiBleHRlcm4gaW50IGdpdF9kZWZhdWx0X2NvbmZpZyhjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgdm9pZCAqKTsKIGV4dGVybiBpbnQgZ2l0X2NvbmZpZ19mcm9tX2ZpbGUoY29uZmlnX2ZuX3QgZm4sIGNvbnN0IGNoYXIgKiwgdm9pZCAqKTsKK2V4dGVybiBpbnQgZ2l0X2NvbmZpZ19mcm9tX2J1Zihjb25maWdfZm5fdCBmbiwgY29uc3QgY2hhciAqbmFtZSwKKwkJCSAgICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHZvaWQgKmRhdGEpOwogZXh0ZXJuIHZvaWQgZ2l0X2NvbmZpZ19wdXNoX3BhcmFtZXRlcihjb25zdCBjaGFyICp0ZXh0KTsKIGV4dGVybiBpbnQgZ2l0X2NvbmZpZ19mcm9tX3BhcmFtZXRlcnMoY29uZmlnX2ZuX3QgZm4sIHZvaWQgKmRhdGEpOwogZXh0ZXJuIGludCBnaXRfY29uZmlnKGNvbmZpZ19mbl90IGZuLCB2b2lkICopOwogZXh0ZXJuIGludCBnaXRfY29uZmlnX3dpdGhfb3B0aW9ucyhjb25maWdfZm5fdCBmbiwgdm9pZCAqLAotCQkJCSAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgcmVzcGVjdF9pbmNsdWRlcyk7CisJCQkJICAgY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJICAgY29uc3QgY2hhciAqYmxvYl9yZWYsCisJCQkJICAgaW50IHJlc3BlY3RfaW5jbHVkZXMpOwogZXh0ZXJuIGludCBnaXRfY29uZmlnX2Vhcmx5KGNvbmZpZ19mbl90IGZuLCB2b2lkICosIGNvbnN0IGNoYXIgKnJlcG9fY29uZmlnKTsKIGV4dGVybiBpbnQgZ2l0X3BhcnNlX3Vsb25nKGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgbG9uZyAqKTsKIGV4dGVybiBpbnQgZ2l0X2NvbmZpZ19pbnQoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpAQCAtMTMyNiw0ICsxMzY2LDMxIEBACiAKIGludCBzYW5lX2V4ZWN2cChjb25zdCBjaGFyICpmaWxlLCBjaGFyICpjb25zdCBhcmd2W10pOwogCisvKgorICogQSBzdHJ1Y3QgdG8gZW5jYXBzdWxhdGUgdGhlIGNvbmNlcHQgb2Ygd2hldGhlciBhIGZpbGUgaGFzIGNoYW5nZWQKKyAqIHNpbmNlIHdlIGxhc3QgY2hlY2tlZCBpdC4gVGhpcyB1c2VzIGNyaXRlcmlhIHNpbWlsYXIgdG8gdGhvc2UgdXNlZAorICogZm9yIHRoZSBpbmRleC4KKyAqLworc3RydWN0IHN0YXRfdmFsaWRpdHkgeworCXN0cnVjdCBzdGF0X2RhdGEgKnNkOworfTsKKwordm9pZCBzdGF0X3ZhbGlkaXR5X2NsZWFyKHN0cnVjdCBzdGF0X3ZhbGlkaXR5ICpzdik7CisKKy8qCisgKiBSZXR1cm5zIDEgaWYgdGhlIHBhdGggaXMgYSByZWd1bGFyIGZpbGUgKG9yIGEgc3ltbGluayB0byBhIHJlZ3VsYXIKKyAqIGZpbGUpIGFuZCBtYXRjaGVzIHRoZSBzYXZlZCBzdGF0X3ZhbGlkaXR5LCAwIG90aGVyd2lzZS4gIEEgbWlzc2luZworICogb3IgaW5hY2Nlc3NpYmxlIGZpbGUgaXMgY29uc2lkZXJlZCBhIG1hdGNoIGlmIHRoZSBzdHJ1Y3Qgd2FzIGp1c3QKKyAqIGluaXRpYWxpemVkLCBvciBpZiB0aGUgcHJldmlvdXMgdXBkYXRlIGZvdW5kIGFuIGluYWNjZXNzaWJsZSBmaWxlLgorICovCitpbnQgc3RhdF92YWxpZGl0eV9jaGVjayhzdHJ1Y3Qgc3RhdF92YWxpZGl0eSAqc3YsIGNvbnN0IGNoYXIgKnBhdGgpOworCisvKgorICogVXBkYXRlIHRoZSBzdGF0X3ZhbGlkaXR5IGZyb20gYSBmaWxlIG9wZW5lZCBhdCBkZXNjcmlwdG9yIGZkLiBJZgorICogdGhlIGZpbGUgaXMgbWlzc2luZywgaW5hY2Nlc3NpYmxlLCBvciBub3QgYSByZWd1bGFyIGZpbGUsIHRoZW4KKyAqIGZ1dHVyZSBjYWxscyB0byBzdGF0X3ZhbGlkaXR5X2NoZWNrIHdpbGwgbWF0Y2ggaWZmIG9uZSBvZiB0aG9zZQorICogY29uZGl0aW9ucyBjb250aW51ZXMgdG8gYmUgdHJ1ZS4KKyAqLwordm9pZCBzdGF0X3ZhbGlkaXR5X3VwZGF0ZShzdHJ1Y3Qgc3RhdF92YWxpZGl0eSAqc3YsIGludCBmZCk7CisKICNlbmRpZiAvKiBDQUNIRV9IICovCmRpZmYgLS1naXQgYS9jb2xvci5jIGIvY29sb3IuYwppbmRleCBlOGUyNjgxLi5mNjcyODg1IDEwMDY0NAotLS0gYS9jb2xvci5jCisrKyBiL2NvbG9yLmMKQEAgLTEsNyArMSw3IEBACiAjaW5jbHVkZSAiY2FjaGUuaCIKICNpbmNsdWRlICJjb2xvci5oIgogCi1zdGF0aWMgaW50IGdpdF91c2VfY29sb3JfZGVmYXVsdCA9IDA7CitzdGF0aWMgaW50IGdpdF91c2VfY29sb3JfZGVmYXVsdCA9IEdJVF9DT0xPUl9BVVRPOwogaW50IGNvbG9yX3N0ZG91dF9pc190dHkgPSAtMTsKIAogLyoKZGlmZiAtLWdpdCBhL2NvbWJpbmUtZGlmZi5jIGIvY29tYmluZS1kaWZmLmMKaW5kZXggNzdkNzg3Mi4uNGZjMTZhZCAxMDA2NDQKLS0tIGEvY29tYmluZS1kaWZmLmMKKysrIGIvY29tYmluZS1kaWZmLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlICJyZWZzLmgiCiAjaW5jbHVkZSAidXNlcmRpZmYuaCIKICNpbmNsdWRlICJzaGExLWFycmF5LmgiCisjaW5jbHVkZSAicmV2aXNpb24uaCIKIAogc3RhdGljIHN0cnVjdCBjb21iaW5lX2RpZmZfcGF0aCAqaW50ZXJzZWN0X3BhdGhzKHN0cnVjdCBjb21iaW5lX2RpZmZfcGF0aCAqY3VyciwgaW50IG4sIGludCBudW1fcGFyZW50KQogewpAQCAtMTY1LDcgKzE2Niw3IEBACiAKIAkvKgogCSAqIENvYWxlc2NlIG5ldyBsaW5lcyBpbnRvIGJhc2UgYnkgZmluZGluZyB0aGUgTENTCi0JICogLSBDcmVhdGUgdGhlIHRhYmxlIHRvIHJ1biBkeW5hbWljIHByb2dyYW1pbmcKKwkgKiAtIENyZWF0ZSB0aGUgdGFibGUgdG8gcnVuIGR5bmFtaWMgcHJvZ3JhbW1pbmcKIAkgKiAtIENvbXB1dGUgdGhlIExDUwogCSAqIC0gVGhlbiByZXZlcnNlIHJlYWQgdGhlIGRpcmVjdGlvbiBzdHJ1Y3R1cmU6CiAJICogICAtIElmIHdlIGhhdmUgTUFUQ0gsIGFzc2lnbiBwYXJlbnQgdG8gYmFzZSBmbGFnLCBhbmQgY29uc3VtZQpAQCAtNTE4LDggKzUxOSwxMSBAQAogCQl1bnNpZ25lZCBsb25nIGs7CiAKIAkJLyogUGFpbnQgYSBmZXcgbGluZXMgYmVmb3JlIHRoZSBmaXJzdCBpbnRlcmVzdGluZyBsaW5lLiAqLwotCQl3aGlsZSAoaiA8IGkpCi0JCQlzbGluZVtqKytdLmZsYWcgfD0gbWFyayB8IG5vX3ByZV9kZWxldGU7CisJCXdoaWxlIChqIDwgaSkgeworCQkJaWYgKCEoc2xpbmVbal0uZmxhZyAmIG1hcmspKQorCQkJCXNsaW5lW2pdLmZsYWcgfD0gbm9fcHJlX2RlbGV0ZTsKKwkJCXNsaW5lW2orK10uZmxhZyB8PSBtYXJrOworCQl9CiAKIAlhZ2FpbjoKIAkJLyogd2Uga25vdyB1cCB0byBpIGlzIHRvIGJlIGluY2x1ZGVkLiAgd2hlcmUgZG9lcyB0aGUKQEAgLTEzMDIsNiArMTMwNiw3IEBACiAJaW50IGksIG51bV9wYXRocywgbmVlZHNlcCwgc2hvd19sb2dfZmlyc3QsIG51bV9wYXJlbnQgPSBwYXJlbnRzLT5ucjsKIAogCWRpZmZvcHRzID0gKm9wdDsKKwlkaWZmX3RyZWVfc2V0dXBfcGF0aHMoZGlmZm9wdHMucGF0aHNwZWMucmF3LCAmZGlmZm9wdHMpOwogCWRpZmZvcHRzLm91dHB1dF9mb3JtYXQgPSBESUZGX0ZPUk1BVF9OT19PVVRQVVQ7CiAJRElGRl9PUFRfU0VUKCZkaWZmb3B0cywgUkVDVVJTSVZFKTsKIAlESUZGX09QVF9DTFIoJmRpZmZvcHRzLCBBTExPV19FWFRFUk5BTCk7CkBAIC0xMzcyLDEyICsxMzc3LDE0IEBACiAJCXBhdGhzID0gcGF0aHMtPm5leHQ7CiAJCWZyZWUodG1wKTsKIAl9CisKKwlkaWZmX3RyZWVfcmVsZWFzZV9wYXRocygmZGlmZm9wdHMpOwogfQogCiB2b2lkIGRpZmZfdHJlZV9jb21iaW5lZF9tZXJnZShjb25zdCBzdHJ1Y3QgY29tbWl0ICpjb21taXQsIGludCBkZW5zZSwKIAkJCSAgICAgIHN0cnVjdCByZXZfaW5mbyAqcmV2KQogewotCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50ID0gY29tbWl0LT5wYXJlbnRzOworCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50ID0gZ2V0X3NhdmVkX3BhcmVudHMocmV2LCBjb21taXQpOwogCXN0cnVjdCBzaGExX2FycmF5IHBhcmVudHMgPSBTSEExX0FSUkFZX0lOSVQ7CiAKIAl3aGlsZSAocGFyZW50KSB7CmRpZmYgLS1naXQgYS9jb21tYW5kLWxpc3QudHh0IGIvY29tbWFuZC1saXN0LnR4dAppbmRleCBiZjgzMzAzLi4wOGIwNGUyIDEwMDY0NAotLS0gYS9jb21tYW5kLWxpc3QudHh0CisrKyBiL2NvbW1hbmQtbGlzdC50eHQKQEAgLTEzLDYgKzEzLDcgQEAKIGdpdC1jYXQtZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVtYmluZ2ludGVycm9nYXRvcnMKIGdpdC1jaGVjay1hdHRyICAgICAgICAgICAgICAgICAgICAgICAgICBwdXJlaGVscGVycwogZ2l0LWNoZWNrLWlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAgIHB1cmVoZWxwZXJzCitnaXQtY2hlY2stbWFpbG1hcCAgICAgICAgICAgICAgICAgICAgICAgcHVyZWhlbHBlcnMKIGdpdC1jaGVja291dCAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWlucG9yY2VsYWluIGNvbW1vbgogZ2l0LWNoZWNrb3V0LWluZGV4ICAgICAgICAgICAgICAgICAgICAgIHBsdW1iaW5nbWFuaXB1bGF0b3JzCiBnaXQtY2hlY2stcmVmLWZvcm1hdCAgICAgICAgICAgICAgICAgICAgcHVyZWhlbHBlcnMKZGlmZiAtLWdpdCBhL2NvbW1pdC1zbGFiLmggYi9jb21taXQtc2xhYi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0YzgyODYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21taXQtc2xhYi5oCkBAIC0wLDAgKzEsOTcgQEAKKyNpZm5kZWYgQ09NTUlUX1NMQUJfSAorI2RlZmluZSBDT01NSVRfU0xBQl9ICisKKy8qCisgKiBkZWZpbmVfY29tbWl0X3NsYWIoc2xhYm5hbWUsIGVsZW10eXBlKSBjcmVhdGVzIGJvaWxlcnBsYXRlIGNvZGUgdG8gZGVmaW5lCisgKiBhIG5ldyBzdHJ1Y3QgKHN0cnVjdCBzbGFibmFtZSkgdGhhdCBpcyB1c2VkIHRvIGFzc29jaWF0ZSBhIHBpZWNlIG9mIGRhdGEKKyAqIG9mIGVsZW10eXBlIHRvIGNvbW1pdHMsIGFuZCBhIGZldyBmdW5jdGlvbnMgdG8gdXNlIHRoYXQgc3RydWN0LgorICoKKyAqIEFmdGVyIGluY2x1ZGluZyB0aGlzIGhlYWRlciBmaWxlLCB1c2luZzoKKyAqCisgKiBkZWZpbmVfY29tbWl0X3NsYWIoaW5kZWdlZSwgaW50KTsKKyAqCisgKiB3aWxsIGxldCB5b3UgY2FsbCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoKKyAqCisgKiAtIGludCAqaW5kZWdyZWVfYXQoc3RydWN0IGluZGVncmVlICosIHN0cnVjdCBjb21taXQgKik7CisgKgorICogICBUaGlzIGZ1bmN0aW9uIGxvY2F0ZXMgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBjb21taXQgaW4KKyAqICAgdGhlIGluZGVncmVlIHNsYWIsIGFuZCByZXR1cm5zIHRoZSBwb2ludGVyIHRvIGl0LgorICoKKyAqIC0gdm9pZCBpbml0X2luZGVncmVlKHN0cnVjdCBpbmRlZ3JlZSAqKTsKKyAqICAgdm9pZCBpbml0X2luZGVncmVlX3dpdGhfc3RyaWRlKHN0cnVjdCBpbmRlZ3JlZSAqLCBpbnQpOworICoKKyAqICAgSW5pdGlhbGl6ZXMgdGhlIGluZGVncmVlIHNsYWIgdGhhdCBhc3NvY2lhdGVzIGFuIGFycmF5IG9mIGludGVnZXJzCisgKiAgIHRvIGVhY2ggY29tbWl0LiAnc3RyaWRlJyBzcGVjaWZpZXMgaG93IGJpZyBlYWNoIGFycmF5IGlzLiAgVGhlIHNsYWIKKyAqICAgdGhhdCBpZCBpbml0aWFsaWVkIGJ5IHRoZSB2YXJpYW50IHdpdGhvdXQgIl93aXRoX3N0cmlkZSIgYXNzb2NpYXRlcworICogICBlYWNoIGNvbW1pdCB3aXRoIGFuIGFycmF5IG9mIG9uZSBpbnRlZ2VyLgorICovCisKKy8qIGFsbG9jYXRlIH41MTJrQiBhdCBvbmNlLCBhbGxvd2luZyBmb3IgbWFsbG9jIG92ZXJoZWFkICovCisjaWZuZGVmIENPTU1JVF9TTEFCX1NJWkUKKyNkZWZpbmUgQ09NTUlUX1NMQUJfU0laRSAoNTEyKjEwMjQtMzIpCisjZW5kaWYKKworI2RlZmluZSBkZWZpbmVfY29tbWl0X3NsYWIoc2xhYm5hbWUsIGVsZW10eXBlKSAJCQkJXAorCQkJCQkJCQkJXAorc3RydWN0IHNsYWJuYW1lIHsJCQkJCQkJXAorCXVuc2lnbmVkIHNsYWJfc2l6ZTsJCQkJCQlcCisJdW5zaWduZWQgc3RyaWRlOwkJCQkJCVwKKwl1bnNpZ25lZCBzbGFiX2NvdW50OwkJCQkJCVwKKwllbGVtdHlwZSAqKnNsYWI7CQkJCQkJXAorfTsJCQkJCQkJCQlcCitzdGF0aWMgaW50IHN0YXRfICMjc2xhYm5hbWUjIyByZWFsbG9jOwkJCQkJXAorCQkJCQkJCQkJXAorc3RhdGljIHZvaWQgaW5pdF8gIyNzbGFibmFtZSMjIF93aXRoX3N0cmlkZShzdHJ1Y3Qgc2xhYm5hbWUgKnMsCQlcCisJCQkJCSAgICB1bnNpZ25lZCBzdHJpZGUpCQlcCit7CQkJCQkJCQkJXAorCXVuc2lnbmVkIGludCBlbGVtX3NpemU7CQkJCQkJXAorCWlmICghc3RyaWRlKQkJCQkJCQlcCisJCXN0cmlkZSA9IDE7CQkJCQkJXAorCXMtPnN0cmlkZSA9IHN0cmlkZTsJCQkJCQlcCisJZWxlbV9zaXplID0gc2l6ZW9mKGVsZW10eXBlKSAqIHN0cmlkZTsJCQkJXAorCXMtPnNsYWJfc2l6ZSA9IENPTU1JVF9TTEFCX1NJWkUgLyBlbGVtX3NpemU7CQkJXAorCXMtPnNsYWJfY291bnQgPSAwOwkJCQkJCVwKKwlzLT5zbGFiID0gTlVMTDsJCQkJCQkJXAorfQkJCQkJCQkJCVwKKwkJCQkJCQkJCVwKK3N0YXRpYyB2b2lkIGluaXRfICMjc2xhYm5hbWUoc3RydWN0IHNsYWJuYW1lICpzKQkJCVwKK3sJCQkJCQkJCQlcCisJaW5pdF8gIyNzbGFibmFtZSMjIF93aXRoX3N0cmlkZShzLCAxKTsJCQkJXAorfQkJCQkJCQkJCVwKKwkJCQkJCQkJCVwKK3N0YXRpYyB2b2lkIGNsZWFyXyAjI3NsYWJuYW1lKHN0cnVjdCBzbGFibmFtZSAqcykJCQlcCit7CQkJCQkJCQkJXAorCWludCBpOwkJCQkJCQkJXAorCWZvciAoaSA9IDA7IGkgPCBzLT5zbGFiX2NvdW50OyBpKyspCQkJCVwKKwkJZnJlZShzLT5zbGFiW2ldKTsJCQkJCVwKKwlzLT5zbGFiX2NvdW50ID0gMDsJCQkJCQlcCisJZnJlZShzLT5zbGFiKTsJCQkJCQkJXAorCXMtPnNsYWIgPSBOVUxMOwkJCQkJCQlcCit9CQkJCQkJCQkJXAorCQkJCQkJCQkJXAorc3RhdGljIGVsZW10eXBlICpzbGFibmFtZSMjIF9hdChzdHJ1Y3Qgc2xhYm5hbWUgKnMsCQkJXAorCQkJCWNvbnN0IHN0cnVjdCBjb21taXQgKmMpCQkJXAorewkJCQkJCQkJCVwKKwlpbnQgbnRoX3NsYWIsIG50aF9zbG90OwkJCQkJCVwKKwkJCQkJCQkJCVwKKwludGhfc2xhYiA9IGMtPmluZGV4IC8gcy0+c2xhYl9zaXplOwkJCQlcCisJbnRoX3Nsb3QgPSBjLT5pbmRleCAlIHMtPnNsYWJfc2l6ZTsJCQkJXAorCQkJCQkJCQkJXAorCWlmIChzLT5zbGFiX2NvdW50IDw9IG50aF9zbGFiKSB7CQkJCVwKKwkJaW50IGk7CQkJCQkJCVwKKwkJcy0+c2xhYiA9IHhyZWFsbG9jKHMtPnNsYWIsCQkJCVwKKwkJCQkgICAobnRoX3NsYWIgKyAxKSAqIHNpemVvZihzLT5zbGFiKSk7CVwKKwkJc3RhdF8gIyNzbGFibmFtZSMjIHJlYWxsb2MrKzsJCQkJXAorCQlmb3IgKGkgPSBzLT5zbGFiX2NvdW50OyBpIDw9IG50aF9zbGFiOyBpKyspCQlcCisJCQlzLT5zbGFiW2ldID0gTlVMTDsJCQkJXAorCQlzLT5zbGFiX2NvdW50ID0gbnRoX3NsYWIgKyAxOwkJCQlcCisJfQkJCQkJCQkJXAorCWlmICghcy0+c2xhYltudGhfc2xhYl0pCQkJCQkJXAorCQlzLT5zbGFiW250aF9zbGFiXSA9IHhjYWxsb2Mocy0+c2xhYl9zaXplLAkJXAorCQkJCQkgICAgc2l6ZW9mKCoqcy0+c2xhYikgKiBzLT5zdHJpZGUpOwkJXAorCXJldHVybiAmcy0+c2xhYltudGhfc2xhYl1bbnRoX3Nsb3QgKiBzLT5zdHJpZGVdOwkJCQlcCit9CQkJCQkJCQkJXAorCQkJCQkJCQkJXAorc3RhdGljIGludCBzdGF0XyAjI3NsYWJuYW1lIyMgcmVhbGxvYworCisjZW5kaWYgLyogQ09NTUlUX1NMQUJfSCAqLwpkaWZmIC0tZ2l0IGEvY29tbWl0LmMgYi9jb21taXQuYwppbmRleCA4ODhlMDJhLi5kZTE2YTNjIDEwMDY0NAotLS0gYS9jb21taXQuYworKysgYi9jb21taXQuYwpAQCAtOCwxMiArOCwxNSBAQAogI2luY2x1ZGUgIm5vdGVzLmgiCiAjaW5jbHVkZSAiZ3BnLWludGVyZmFjZS5oIgogI2luY2x1ZGUgIm1lcmdlc29ydC5oIgorI2luY2x1ZGUgImNvbW1pdC1zbGFiLmgiCisjaW5jbHVkZSAicHJpby1xdWV1ZS5oIgogCiBzdGF0aWMgc3RydWN0IGNvbW1pdF9leHRyYV9oZWFkZXIgKnJlYWRfY29tbWl0X2V4dHJhX2hlYWRlcl9saW5lcyhjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4sIGNvbnN0IGNoYXIgKiopOwogCiBpbnQgc2F2ZV9jb21taXRfYnVmZmVyID0gMTsKIAogY29uc3QgY2hhciAqY29tbWl0X3R5cGUgPSAiY29tbWl0IjsKK3N0YXRpYyBpbnQgY29tbWl0X2NvdW50OwogCiBzdGF0aWMgc3RydWN0IGNvbW1pdCAqY2hlY2tfY29tbWl0KHN0cnVjdCBvYmplY3QgKm9iaiwKIAkJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLApAQCAtNTgsOCArNjEsMTEgQEAKIHN0cnVjdCBjb21taXQgKmxvb2t1cF9jb21taXQoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSkKIHsKIAlzdHJ1Y3Qgb2JqZWN0ICpvYmogPSBsb29rdXBfb2JqZWN0KHNoYTEpOwotCWlmICghb2JqKQotCQlyZXR1cm4gY3JlYXRlX29iamVjdChzaGExLCBPQkpfQ09NTUlULCBhbGxvY19jb21taXRfbm9kZSgpKTsKKwlpZiAoIW9iaikgeworCQlzdHJ1Y3QgY29tbWl0ICpjID0gYWxsb2NfY29tbWl0X25vZGUoKTsKKwkJYy0+aW5kZXggPSBjb21taXRfY291bnQrKzsKKwkJcmV0dXJuIGNyZWF0ZV9vYmplY3Qoc2hhMSwgT0JKX0NPTU1JVCwgYyk7CisJfQogCWlmICghb2JqLT50eXBlKQogCQlvYmotPnR5cGUgPSBPQkpfQ09NTUlUOwogCXJldHVybiBjaGVja19jb21taXQob2JqLCBzaGExLCAwKTsKQEAgLTM3MSw2ICszNzcsMjIgQEAKIAlyZXR1cm4gYzsKIH0KIAorc3RydWN0IGNvbW1pdF9saXN0ICpjb3B5X2NvbW1pdF9saXN0KHN0cnVjdCBjb21taXRfbGlzdCAqbGlzdCkKK3sKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKmhlYWQgPSBOVUxMOworCXN0cnVjdCBjb21taXRfbGlzdCAqKnBwID0gJmhlYWQ7CisJd2hpbGUgKGxpc3QpIHsKKwkJc3RydWN0IGNvbW1pdF9saXN0ICpuZXc7CisJCW5ldyA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBjb21taXRfbGlzdCkpOworCQluZXctPml0ZW0gPSBsaXN0LT5pdGVtOworCQluZXctPm5leHQgPSBOVUxMOworCQkqcHAgPSBuZXc7CisJCXBwID0gJm5ldy0+bmV4dDsKKwkJbGlzdCA9IGxpc3QtPm5leHQ7CisJfQorCXJldHVybiBoZWFkOworfQorCiB2b2lkIGZyZWVfY29tbWl0X2xpc3Qoc3RydWN0IGNvbW1pdF9saXN0ICpsaXN0KQogewogCXdoaWxlIChsaXN0KSB7CkBAIC01MDcsMzIgKzUyOSwxMzYgQEAKIH0KIAogLyoKKyAqIFRvcG9sb2dpY2FsIHNvcnQgc3VwcG9ydAorICovCisKKy8qIGNvdW50IG51bWJlciBvZiBjaGlsZHJlbiB0aGF0IGhhdmUgbm90IGJlZW4gZW1pdHRlZCAqLworZGVmaW5lX2NvbW1pdF9zbGFiKGluZGVncmVlX3NsYWIsIGludCk7CisKKy8qIHJlY29yZCBhdXRob3ItZGF0ZSBmb3IgZWFjaCBjb21taXQgb2JqZWN0ICovCitkZWZpbmVfY29tbWl0X3NsYWIoYXV0aG9yX2RhdGVfc2xhYiwgdW5zaWduZWQgbG9uZyk7CisKK3N0YXRpYyB2b2lkIHJlY29yZF9hdXRob3JfZGF0ZShzdHJ1Y3QgYXV0aG9yX2RhdGVfc2xhYiAqYXV0aG9yX2RhdGUsCisJCQkgICAgICAgc3RydWN0IGNvbW1pdCAqY29tbWl0KQoreworCWNvbnN0IGNoYXIgKmJ1ZiwgKmxpbmVfZW5kOworCWNoYXIgKmJ1ZmZlciA9IE5VTEw7CisJc3RydWN0IGlkZW50X3NwbGl0IGlkZW50OworCWNoYXIgKmRhdGVfZW5kOworCXVuc2lnbmVkIGxvbmcgZGF0ZTsKKworCWlmICghY29tbWl0LT5idWZmZXIpIHsKKwkJdW5zaWduZWQgbG9uZyBzaXplOworCQllbnVtIG9iamVjdF90eXBlIHR5cGU7CisJCWJ1ZmZlciA9IHJlYWRfc2hhMV9maWxlKGNvbW1pdC0+b2JqZWN0LnNoYTEsICZ0eXBlLCAmc2l6ZSk7CisJCWlmICghYnVmZmVyKQorCQkJcmV0dXJuOworCX0KKworCWZvciAoYnVmID0gY29tbWl0LT5idWZmZXIgPyBjb21taXQtPmJ1ZmZlciA6IGJ1ZmZlcjsKKwkgICAgIGJ1ZjsKKwkgICAgIGJ1ZiA9IGxpbmVfZW5kICsgMSkgeworCQlsaW5lX2VuZCA9IHN0cmNocm51bChidWYsICdcbicpOworCQlpZiAocHJlZml4Y21wKGJ1ZiwgImF1dGhvciAiKSkgeworCQkJaWYgKCFsaW5lX2VuZFswXSB8fCBsaW5lX2VuZFsxXSA9PSAnXG4nKQorCQkJCXJldHVybjsgLyogZW5kIG9mIGhlYWRlciAqLworCQkJY29udGludWU7CisJCX0KKwkJaWYgKHNwbGl0X2lkZW50X2xpbmUoJmlkZW50LAorCQkJCSAgICAgYnVmICsgc3RybGVuKCJhdXRob3IgIiksCisJCQkJICAgICBsaW5lX2VuZCAtIChidWYgKyBzdHJsZW4oImF1dGhvciAiKSkpIHx8CisJCSAgICAhaWRlbnQuZGF0ZV9iZWdpbiB8fCAhaWRlbnQuZGF0ZV9lbmQpCisJCQlnb3RvIGZhaWxfZXhpdDsgLyogbWFsZm9ybWVkICJhdXRob3IiIGxpbmUgKi8KKwkJYnJlYWs7CisJfQorCisJZGF0ZSA9IHN0cnRvdWwoaWRlbnQuZGF0ZV9iZWdpbiwgJmRhdGVfZW5kLCAxMCk7CisJaWYgKGRhdGVfZW5kICE9IGlkZW50LmRhdGVfZW5kKQorCQlnb3RvIGZhaWxfZXhpdDsgLyogbWFsZm9ybWVkIGRhdGUgKi8KKwkqKGF1dGhvcl9kYXRlX3NsYWJfYXQoYXV0aG9yX2RhdGUsIGNvbW1pdCkpID0gZGF0ZTsKKworZmFpbF9leGl0OgorCWZyZWUoYnVmZmVyKTsKK30KKworc3RhdGljIGludCBjb21wYXJlX2NvbW1pdHNfYnlfYXV0aG9yX2RhdGUoY29uc3Qgdm9pZCAqYV8sIGNvbnN0IHZvaWQgKmJfLAorCQkJCQkgIHZvaWQgKmNiX2RhdGEpCit7CisJY29uc3Qgc3RydWN0IGNvbW1pdCAqYSA9IGFfLCAqYiA9IGJfOworCXN0cnVjdCBhdXRob3JfZGF0ZV9zbGFiICphdXRob3JfZGF0ZSA9IGNiX2RhdGE7CisJdW5zaWduZWQgbG9uZyBhX2RhdGUgPSAqKGF1dGhvcl9kYXRlX3NsYWJfYXQoYXV0aG9yX2RhdGUsIGEpKTsKKwl1bnNpZ25lZCBsb25nIGJfZGF0ZSA9ICooYXV0aG9yX2RhdGVfc2xhYl9hdChhdXRob3JfZGF0ZSwgYikpOworCisJLyogbmV3ZXIgY29tbWl0cyB3aXRoIGxhcmdlciBkYXRlIGZpcnN0ICovCisJaWYgKGFfZGF0ZSA8IGJfZGF0ZSkKKwkJcmV0dXJuIDE7CisJZWxzZSBpZiAoYV9kYXRlID4gYl9kYXRlKQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIDA7Cit9CisKK2ludCBjb21wYXJlX2NvbW1pdHNfYnlfY29tbWl0X2RhdGUoY29uc3Qgdm9pZCAqYV8sIGNvbnN0IHZvaWQgKmJfLCB2b2lkICp1bnVzZWQpCit7CisJY29uc3Qgc3RydWN0IGNvbW1pdCAqYSA9IGFfLCAqYiA9IGJfOworCS8qIG5ld2VyIGNvbW1pdHMgd2l0aCBsYXJnZXIgZGF0ZSBmaXJzdCAqLworCWlmIChhLT5kYXRlIDwgYi0+ZGF0ZSkKKwkJcmV0dXJuIDE7CisJZWxzZSBpZiAoYS0+ZGF0ZSA+IGItPmRhdGUpCisJCXJldHVybiAtMTsKKwlyZXR1cm4gMDsKK30KKworLyoKICAqIFBlcmZvcm1zIGFuIGluLXBsYWNlIHRvcG9sb2dpY2FsIHNvcnQgb24gdGhlIGxpc3Qgc3VwcGxpZWQuCiAgKi8KLXZvaWQgc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcihzdHJ1Y3QgY29tbWl0X2xpc3QgKiogbGlzdCwgaW50IGxpZm8pCit2b2lkIHNvcnRfaW5fdG9wb2xvZ2ljYWxfb3JkZXIoc3RydWN0IGNvbW1pdF9saXN0ICoqbGlzdCwgZW51bSByZXZfc29ydF9vcmRlciBzb3J0X29yZGVyKQogewogCXN0cnVjdCBjb21taXRfbGlzdCAqbmV4dCwgKm9yaWcgPSAqbGlzdDsKLQlzdHJ1Y3QgY29tbWl0X2xpc3QgKndvcmssICoqaW5zZXJ0OwogCXN0cnVjdCBjb21taXRfbGlzdCAqKnBwdHI7CisJc3RydWN0IGluZGVncmVlX3NsYWIgaW5kZWdyZWU7CisJc3RydWN0IHByaW9fcXVldWUgcXVldWU7CisJc3RydWN0IGNvbW1pdCAqY29tbWl0OworCXN0cnVjdCBhdXRob3JfZGF0ZV9zbGFiIGF1dGhvcl9kYXRlOwogCiAJaWYgKCFvcmlnKQogCQlyZXR1cm47CiAJKmxpc3QgPSBOVUxMOwogCisJaW5pdF9pbmRlZ3JlZV9zbGFiKCZpbmRlZ3JlZSk7CisJbWVtc2V0KCZxdWV1ZSwgJ1wwJywgc2l6ZW9mKHF1ZXVlKSk7CisKKwlzd2l0Y2ggKHNvcnRfb3JkZXIpIHsKKwlkZWZhdWx0OiAvKiBSRVZfU09SVF9JTl9HUkFQSF9PUkRFUiAqLworCQlxdWV1ZS5jb21wYXJlID0gTlVMTDsKKwkJYnJlYWs7CisJY2FzZSBSRVZfU09SVF9CWV9DT01NSVRfREFURToKKwkJcXVldWUuY29tcGFyZSA9IGNvbXBhcmVfY29tbWl0c19ieV9jb21taXRfZGF0ZTsKKwkJYnJlYWs7CisJY2FzZSBSRVZfU09SVF9CWV9BVVRIT1JfREFURToKKwkJaW5pdF9hdXRob3JfZGF0ZV9zbGFiKCZhdXRob3JfZGF0ZSk7CisJCXF1ZXVlLmNvbXBhcmUgPSBjb21wYXJlX2NvbW1pdHNfYnlfYXV0aG9yX2RhdGU7CisJCXF1ZXVlLmNiX2RhdGEgPSAmYXV0aG9yX2RhdGU7CisJCWJyZWFrOworCX0KKwogCS8qIE1hcmsgdGhlbSBhbmQgY2xlYXIgdGhlIGluZGVncmVlICovCiAJZm9yIChuZXh0ID0gb3JpZzsgbmV4dDsgbmV4dCA9IG5leHQtPm5leHQpIHsKIAkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gbmV4dC0+aXRlbTsKLQkJY29tbWl0LT5pbmRlZ3JlZSA9IDE7CisJCSooaW5kZWdyZWVfc2xhYl9hdCgmaW5kZWdyZWUsIGNvbW1pdCkpID0gMTsKKwkJLyogYWxzbyByZWNvcmQgdGhlIGF1dGhvciBkYXRlcywgaWYgbmVlZGVkICovCisJCWlmIChzb3J0X29yZGVyID09IFJFVl9TT1JUX0JZX0FVVEhPUl9EQVRFKQorCQkJcmVjb3JkX2F1dGhvcl9kYXRlKCZhdXRob3JfZGF0ZSwgY29tbWl0KTsKIAl9CiAKIAkvKiB1cGRhdGUgdGhlIGluZGVncmVlICovCiAJZm9yIChuZXh0ID0gb3JpZzsgbmV4dDsgbmV4dCA9IG5leHQtPm5leHQpIHsKLQkJc3RydWN0IGNvbW1pdF9saXN0ICogcGFyZW50cyA9IG5leHQtPml0ZW0tPnBhcmVudHM7CisJCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50cyA9IG5leHQtPml0ZW0tPnBhcmVudHM7CiAJCXdoaWxlIChwYXJlbnRzKSB7CiAJCQlzdHJ1Y3QgY29tbWl0ICpwYXJlbnQgPSBwYXJlbnRzLT5pdGVtOworCQkJaW50ICpwaSA9IGluZGVncmVlX3NsYWJfYXQoJmluZGVncmVlLCBwYXJlbnQpOwogCi0JCQlpZiAocGFyZW50LT5pbmRlZ3JlZSkKLQkJCQlwYXJlbnQtPmluZGVncmVlKys7CisJCQlpZiAoKnBpKQorCQkJCSgqcGkpKys7CiAJCQlwYXJlbnRzID0gcGFyZW50cy0+bmV4dDsKIAkJfQogCX0KQEAgLTU0NCwzNCArNjcwLDMzIEBACiAJICoKIAkgKiB0aGUgdGlwcyBzZXJ2ZSBhcyBhIHN0YXJ0aW5nIHNldCBmb3IgdGhlIHdvcmsgcXVldWUuCiAJICovCi0Jd29yayA9IE5VTEw7Ci0JaW5zZXJ0ID0gJndvcms7CiAJZm9yIChuZXh0ID0gb3JpZzsgbmV4dDsgbmV4dCA9IG5leHQtPm5leHQpIHsKIAkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gbmV4dC0+aXRlbTsKIAotCQlpZiAoY29tbWl0LT5pbmRlZ3JlZSA9PSAxKQotCQkJaW5zZXJ0ID0gJmNvbW1pdF9saXN0X2luc2VydChjb21taXQsIGluc2VydCktPm5leHQ7CisJCWlmICgqKGluZGVncmVlX3NsYWJfYXQoJmluZGVncmVlLCBjb21taXQpKSA9PSAxKQorCQkJcHJpb19xdWV1ZV9wdXQoJnF1ZXVlLCBjb21taXQpOwogCX0KIAotCS8qIHByb2Nlc3MgdGhlIGxpc3QgaW4gdG9wb2xvZ2ljYWwgb3JkZXIgKi8KLQlpZiAoIWxpZm8pCi0JCWNvbW1pdF9saXN0X3NvcnRfYnlfZGF0ZSgmd29yayk7CisJLyoKKwkgKiBUaGlzIGlzIHVuZm9ydHVuYXRlOyB0aGUgaW5pdGlhbCB0aXBzIG5lZWQgdG8gYmUgc2hvd24KKwkgKiBpbiB0aGUgb3JkZXIgZ2l2ZW4gZnJvbSB0aGUgcmV2aXNpb24gdHJhdmVyc2FsIG1hY2hpbmVyeS4KKwkgKi8KKwlpZiAoc29ydF9vcmRlciA9PSBSRVZfU09SVF9JTl9HUkFQSF9PUkRFUikKKwkJcHJpb19xdWV1ZV9yZXZlcnNlKCZxdWV1ZSk7CisKKwkvKiBXZSBubyBsb25nZXIgbmVlZCB0aGUgY29tbWl0IGxpc3QgKi8KKwlmcmVlX2NvbW1pdF9saXN0KG9yaWcpOwogCiAJcHB0ciA9IGxpc3Q7CiAJKmxpc3QgPSBOVUxMOwotCXdoaWxlICh3b3JrKSB7Ci0JCXN0cnVjdCBjb21taXQgKmNvbW1pdDsKLQkJc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzLCAqd29ya19pdGVtOworCXdoaWxlICgoY29tbWl0ID0gcHJpb19xdWV1ZV9nZXQoJnF1ZXVlKSkgIT0gTlVMTCkgeworCQlzdHJ1Y3QgY29tbWl0X2xpc3QgKnBhcmVudHM7CiAKLQkJd29ya19pdGVtID0gd29yazsKLQkJd29yayA9IHdvcmtfaXRlbS0+bmV4dDsKLQkJd29ya19pdGVtLT5uZXh0ID0gTlVMTDsKLQotCQljb21taXQgPSB3b3JrX2l0ZW0tPml0ZW07CiAJCWZvciAocGFyZW50cyA9IGNvbW1pdC0+cGFyZW50czsgcGFyZW50cyA7IHBhcmVudHMgPSBwYXJlbnRzLT5uZXh0KSB7CiAJCQlzdHJ1Y3QgY29tbWl0ICpwYXJlbnQgPSBwYXJlbnRzLT5pdGVtOworCQkJaW50ICpwaSA9IGluZGVncmVlX3NsYWJfYXQoJmluZGVncmVlLCBwYXJlbnQpOwogCi0JCQlpZiAoIXBhcmVudC0+aW5kZWdyZWUpCisJCQlpZiAoISpwaSkKIAkJCQljb250aW51ZTsKIAogCQkJLyoKQEAgLTU3OSwyMSArNzA0LDIyIEBACiAJCQkgKiB3aGVuIGFsbCB0aGVpciBjaGlsZHJlbiBoYXZlIGJlZW4gZW1pdHRlZCB0aGVyZWJ5CiAJCQkgKiBndWFyYW50ZWVpbmcgdG9wb2xvZ2ljYWwgb3JkZXIuCiAJCQkgKi8KLQkJCWlmICgtLXBhcmVudC0+aW5kZWdyZWUgPT0gMSkgewotCQkJCWlmICghbGlmbykKLQkJCQkJY29tbWl0X2xpc3RfaW5zZXJ0X2J5X2RhdGUocGFyZW50LCAmd29yayk7Ci0JCQkJZWxzZQotCQkJCQljb21taXRfbGlzdF9pbnNlcnQocGFyZW50LCAmd29yayk7Ci0JCQl9CisJCQlpZiAoLS0oKnBpKSA9PSAxKQorCQkJCXByaW9fcXVldWVfcHV0KCZxdWV1ZSwgcGFyZW50KTsKIAkJfQogCQkvKgotCQkgKiB3b3JrX2l0ZW0gaXMgYSBjb21taXQgYWxsIG9mIHdob3NlIGNoaWxkcmVuCi0JCSAqIGhhdmUgYWxyZWFkeSBiZWVuIGVtaXR0ZWQuIHdlIGNhbiBlbWl0IGl0IG5vdy4KKwkJICogYWxsIGNoaWxkcmVuIG9mIGNvbW1pdCBoYXZlIGFscmVhZHkgYmVlbgorCQkgKiBlbWl0dGVkLiB3ZSBjYW4gZW1pdCBpdCBub3cuCiAJCSAqLwotCQljb21taXQtPmluZGVncmVlID0gMDsKLQkJKnBwdHIgPSB3b3JrX2l0ZW07Ci0JCXBwdHIgPSAmd29ya19pdGVtLT5uZXh0OworCQkqKGluZGVncmVlX3NsYWJfYXQoJmluZGVncmVlLCBjb21taXQpKSA9IDA7CisKKwkJcHB0ciA9ICZjb21taXRfbGlzdF9pbnNlcnQoY29tbWl0LCBwcHRyKS0+bmV4dDsKIAl9CisKKwljbGVhcl9pbmRlZ3JlZV9zbGFiKCZpbmRlZ3JlZSk7CisJY2xlYXJfcHJpb19xdWV1ZSgmcXVldWUpOworCWlmIChzb3J0X29yZGVyID09IFJFVl9TT1JUX0JZX0FVVEhPUl9EQVRFKQorCQljbGVhcl9hdXRob3JfZGF0ZV9zbGFiKCZhdXRob3JfZGF0ZSk7CiB9CiAKIC8qIG1lcmdlLWJhc2Ugc3R1ZmYgKi8KQEAgLTEyNDAsMTAgKzEzNjYsMTUgQEAKIHN0YXRpYyBpbnQgZmluZF9pbnZhbGlkX3V0ZjgoY29uc3QgY2hhciAqYnVmLCBpbnQgbGVuKQogewogCWludCBvZmZzZXQgPSAwOworCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbWF4X2NvZGVwb2ludFtdID0geworCQkweDdmLCAweDdmZiwgMHhmZmZmLCAweDEwZmZmZgorCX07CiAKIAl3aGlsZSAobGVuKSB7CiAJCXVuc2lnbmVkIGNoYXIgYyA9ICpidWYrKzsKIAkJaW50IGJ5dGVzLCBiYWRfb2Zmc2V0OworCQl1bnNpZ25lZCBpbnQgY29kZXBvaW50OworCQl1bnNpZ25lZCBpbnQgbWluX3ZhbCwgbWF4X3ZhbDsKIAogCQlsZW4tLTsKIAkJb2Zmc2V0Kys7CkBAIC0xMjY0LDI0ICsxMzk1LDQ4IEBACiAJCQlieXRlcysrOwogCQl9CiAKLQkJLyogTXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDUgbW9yZSBieXRlcyAqLwotCQlpZiAoYnl0ZXMgPCAxIHx8IGJ5dGVzID4gNSkKKwkJLyoKKwkJICogTXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDMgbW9yZSBieXRlcy4gIExvbmdlciBzZXF1ZW5jZXMgcmVzdWx0IGluCisJCSAqIGNvZGVwb2ludHMgYmV5b25kIFUrMTBGRkZGLCB3aGljaCBhcmUgZ3VhcmFudGVlZCBuZXZlciB0byBleGlzdC4KKwkJICovCisJCWlmIChieXRlcyA8IDEgfHwgMyA8IGJ5dGVzKQogCQkJcmV0dXJuIGJhZF9vZmZzZXQ7CiAKIAkJLyogRG8gd2UgKmhhdmUqIHRoYXQgbWFueSBieXRlcz8gKi8KIAkJaWYgKGxlbiA8IGJ5dGVzKQogCQkJcmV0dXJuIGJhZF9vZmZzZXQ7CiAKKwkJLyoKKwkJICogUGxhY2UgdGhlIGVuY29kZWQgYml0cyBhdCB0aGUgYm90dG9tIG9mIHRoZSB2YWx1ZSBhbmQgY29tcHV0ZSB0aGUKKwkJICogdmFsaWQgcmFuZ2UuCisJCSAqLworCQljb2RlcG9pbnQgPSAoYyAmIDB4N2YpID4+IGJ5dGVzOworCQltaW5fdmFsID0gbWF4X2NvZGVwb2ludFtieXRlcy0xXSArIDE7CisJCW1heF92YWwgPSBtYXhfY29kZXBvaW50W2J5dGVzXTsKKwogCQlvZmZzZXQgKz0gYnl0ZXM7CiAJCWxlbiAtPSBieXRlczsKIAogCQkvKiBBbmQgdmVyaWZ5IHRoYXQgdGhleSBhcmUgZ29vZCBjb250aW51YXRpb24gYnl0ZXMgKi8KIAkJZG8geworCQkJY29kZXBvaW50IDw8PSA2OworCQkJY29kZXBvaW50IHw9ICpidWYgJiAweDNmOwogCQkJaWYgKCgqYnVmKysgJiAweGMwKSAhPSAweDgwKQogCQkJCXJldHVybiBiYWRfb2Zmc2V0OwogCQl9IHdoaWxlICgtLWJ5dGVzKTsKIAotCQkvKiBXZSBjb3VsZC9zaG91bGQgY2hlY2sgdGhlIHZhbHVlIGFuZCBsZW5ndGggaGVyZSB0b28gKi8KKwkJLyogUmVqZWN0IGNvZGVwb2ludHMgdGhhdCBhcmUgb3V0IG9mIHJhbmdlIGZvciB0aGUgc2VxdWVuY2UgbGVuZ3RoLiAqLworCQlpZiAoY29kZXBvaW50IDwgbWluX3ZhbCB8fCBjb2RlcG9pbnQgPiBtYXhfdmFsKQorCQkJcmV0dXJuIGJhZF9vZmZzZXQ7CisJCS8qIFN1cnJvZ2F0ZXMgYXJlIG9ubHkgZm9yIFVURi0xNiBhbmQgY2Fubm90IGJlIGVuY29kZWQgaW4gVVRGLTguICovCisJCWlmICgoY29kZXBvaW50ICYgMHgxZmY4MDApID09IDB4ZDgwMCkKKwkJCXJldHVybiBiYWRfb2Zmc2V0OworCQkvKiBVK3h4RkZGRSBhbmQgVSt4eEZGRkYgYXJlIGd1YXJhbnRlZWQgbm9uLWNoYXJhY3RlcnMuICovCisJCWlmICgoY29kZXBvaW50ICYgMHhmZmZlKSA9PSAweGZmZmUpCisJCQlyZXR1cm4gYmFkX29mZnNldDsKKwkJLyogU28gYXJlIGFueXRoaW5nIGluIHRoZSByYW5nZSBVK0ZERDAuLlUrRkRFRi4gKi8KKwkJaWYgKGNvZGVwb2ludCA+PSAweGZkZDAgJiYgY29kZXBvaW50IDw9IDB4ZmRlZikKKwkJCXJldHVybiBiYWRfb2Zmc2V0OwogCX0KIAlyZXR1cm4gLTE7CiB9CkBAIC0xMjkxLDkgKzE0NDYsNiBAQAogICoKICAqIElmIGl0IGlzbid0LCBpdCBhc3N1bWVzIGFueSBub24tdXRmOCBjaGFyYWN0ZXJzIGFyZSBMYXRpbjEsCiAgKiBhbmQgZG9lcyB0aGUgY29udmVyc2lvbi4KLSAqCi0gKiBGaXhtZTogd2Ugc2hvdWxkIHByb2JhYmx5IGFsc28gZGlzYWxsb3cgb3ZlcmxvbmcgZm9ybXMgYW5kCi0gKiBpbnZhbGlkIGNoYXJhY3RlcnMuIEJ1dCB3ZSBkb24ndCBkbyB0aGF0IGN1cnJlbnRseS4KICAqLwogc3RhdGljIGludCB2ZXJpZnlfdXRmOChzdHJ1Y3Qgc3RyYnVmICpidWYpCiB7CmRpZmYgLS1naXQgYS9jb21taXQuaCBiL2NvbW1pdC5oCmluZGV4IDY3YmQ1MDkuLmY5NTA0ZjcgMTAwNjQ0Ci0tLSBhL2NvbW1pdC5oCisrKyBiL2NvbW1pdC5oCkBAIC02LDYgKzYsNyBAQAogI2luY2x1ZGUgInN0cmJ1Zi5oIgogI2luY2x1ZGUgImRlY29yYXRlLmgiCiAjaW5jbHVkZSAiZ3BnLWludGVyZmFjZS5oIgorI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCiAKIHN0cnVjdCBjb21taXRfbGlzdCB7CiAJc3RydWN0IGNvbW1pdCAqaXRlbTsKQEAgLTE1LDcgKzE2LDcgQEAKIHN0cnVjdCBjb21taXQgewogCXN0cnVjdCBvYmplY3Qgb2JqZWN0OwogCXZvaWQgKnV0aWw7Ci0JdW5zaWduZWQgaW50IGluZGVncmVlOworCXVuc2lnbmVkIGludCBpbmRleDsKIAl1bnNpZ25lZCBsb25nIGRhdGU7CiAJc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzOwogCXN0cnVjdCB0cmVlICp0cmVlOwpAQCAtNjEsNiArNjIsOSBAQAogCQkJCSAgICBzdHJ1Y3QgY29tbWl0X2xpc3QgKipsaXN0KTsKIHZvaWQgY29tbWl0X2xpc3Rfc29ydF9ieV9kYXRlKHN0cnVjdCBjb21taXRfbGlzdCAqKmxpc3QpOwogCisvKiBTaGFsbG93IGNvcHkgb2YgdGhlIGlucHV0IGxpc3QgKi8KK3N0cnVjdCBjb21taXRfbGlzdCAqY29weV9jb21taXRfbGlzdChzdHJ1Y3QgY29tbWl0X2xpc3QgKmxpc3QpOworCiB2b2lkIGZyZWVfY29tbWl0X2xpc3Qoc3RydWN0IGNvbW1pdF9saXN0ICpsaXN0KTsKIAogLyogQ29tbWl0IGZvcm1hdHMgKi8KQEAgLTc5LDYgKzgzLDkgQEAKIH07CiAKIHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCB7CisJLyoKKwkgKiBDYWxsZXJzIHNob3VsZCB0d2VhayB0aGVzZSB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHBwXyogZnVuY3Rpb25zLgorCSAqLwogCWVudW0gY21pdF9mbXQgZm10OwogCWludCBhYmJyZXY7CiAJY29uc3QgY2hhciAqc3ViamVjdDsKQEAgLTkyLDYgKzk5LDEzIEBACiAJY29uc3QgY2hhciAqb3V0cHV0X2VuY29kaW5nOwogCXN0cnVjdCBzdHJpbmdfbGlzdCAqbWFpbG1hcDsKIAlpbnQgY29sb3I7CisJc3RydWN0IGlkZW50X3NwbGl0ICpmcm9tX2lkZW50OworCisJLyoKKwkgKiBGaWVsZHMgYmVsb3cgaGVyZSBhcmUgbWFuaXB1bGF0ZWQgaW50ZXJuYWxseSBieSBwcF8qIGZ1bmN0aW9ucyBhbmQKKwkgKiBzaG91bGQgbm90IGJlIGNvdW50ZWQgb24gYnkgY2FsbGVycy4KKwkgKi8KKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgaW5fYm9keV9oZWFkZXJzOwogfTsKIAogc3RydWN0IHVzZXJmb3JtYXRfd2FudCB7CkBAIC0xMTEsMjAgKzEyNSwyMCBAQAogZXh0ZXJuIHZvaWQgZm9ybWF0X2NvbW1pdF9tZXNzYWdlKGNvbnN0IHN0cnVjdCBjb21taXQgKmNvbW1pdCwKIAkJCQkgIGNvbnN0IGNoYXIgKmZvcm1hdCwgc3RydWN0IHN0cmJ1ZiAqc2IsCiAJCQkJICBjb25zdCBzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKmNvbnRleHQpOwotZXh0ZXJuIHZvaWQgcHJldHR5X3ByaW50X2NvbW1pdChjb25zdCBzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAorZXh0ZXJuIHZvaWQgcHJldHR5X3ByaW50X2NvbW1pdChzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAogCQkJCWNvbnN0IHN0cnVjdCBjb21taXQgKmNvbW1pdCwKIAkJCQlzdHJ1Y3Qgc3RyYnVmICpzYik7CiBleHRlcm4gdm9pZCBwcF9jb21taXRfZWFzeShlbnVtIGNtaXRfZm10IGZtdCwgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0LAogCQkJICAgc3RydWN0IHN0cmJ1ZiAqc2IpOwotdm9pZCBwcF91c2VyX2luZm8oY29uc3Qgc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKK3ZvaWQgcHBfdXNlcl9pbmZvKHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCiAJCSAgY29uc3QgY2hhciAqd2hhdCwgc3RydWN0IHN0cmJ1ZiAqc2IsCiAJCSAgY29uc3QgY2hhciAqbGluZSwgY29uc3QgY2hhciAqZW5jb2RpbmcpOwotdm9pZCBwcF90aXRsZV9saW5lKGNvbnN0IHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCit2b2lkIHBwX3RpdGxlX2xpbmUoc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKIAkJICAgY29uc3QgY2hhciAqKm1zZ19wLAogCQkgICBzdHJ1Y3Qgc3RyYnVmICpzYiwKIAkJICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCiAJCSAgIGludCBuZWVkXzhiaXRfY3RlKTsKLXZvaWQgcHBfcmVtYWluZGVyKGNvbnN0IHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCit2b2lkIHBwX3JlbWFpbmRlcihzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAogCQkgIGNvbnN0IGNoYXIgKiptc2dfcCwKIAkJICBzdHJ1Y3Qgc3RyYnVmICpzYiwKIAkJICBpbnQgaW5kZW50KTsKQEAgLTE0MiwxNSArMTU2LDI0IEBACiB2b2lkIGNsZWFyX2NvbW1pdF9tYXJrc19tYW55KGludCBuciwgc3RydWN0IGNvbW1pdCAqKmNvbW1pdCwgdW5zaWduZWQgaW50IG1hcmspOwogdm9pZCBjbGVhcl9jb21taXRfbWFya3NfZm9yX29iamVjdF9hcnJheShzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphLCB1bnNpZ25lZCBtYXJrKTsKIAorCitlbnVtIHJldl9zb3J0X29yZGVyIHsKKwlSRVZfU09SVF9JTl9HUkFQSF9PUkRFUiA9IDAsCisJUkVWX1NPUlRfQllfQ09NTUlUX0RBVEUsCisJUkVWX1NPUlRfQllfQVVUSE9SX0RBVEUKK307CisKIC8qCiAgKiBQZXJmb3JtcyBhbiBpbi1wbGFjZSB0b3BvbG9naWNhbCBzb3J0IG9mIGxpc3Qgc3VwcGxpZWQuCiAgKgogICogICBpbnZhcmlhbnQgb2YgcmVzdWx0aW5nIGxpc3QgaXM6CiAgKiAgICAgIGEgcmVhY2hhYmxlIGZyb20gYiA9PiBvcmQoYikgPCBvcmQoYSkKLSAqICAgaW4gYWRkaXRpb24sIHdoZW4gbGlmbyA9PSAwLCBjb21taXRzIG9uIHBhcmFsbGVsIHRyYWNrcyBhcmUKLSAqICAgc29ydGVkIGluIHRoZSBkYXRlcyBvcmRlci4KKyAqICAgc29ydF9vcmRlciBmdXJ0aGVyIHNwZWNpZmllczoKKyAqICAgUkVWX1NPUlRfSU5fR1JBUEhfT1JERVI6IHRyeSB0byBzaG93IGEgY29tbWl0IG9uIGEgc2luZ2xlLXBhcmVudAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhaW4gdG9nZXRoZXIuCisgKiAgIFJFVl9TT1JUX0JZX0NPTU1JVF9EQVRFOiBzaG93IGVsaWdpYmxlIGNvbW1pdHMgaW4gY29tbWl0dGVyLWRhdGUgb3JkZXIuCiAgKi8KLXZvaWQgc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcihzdHJ1Y3QgY29tbWl0X2xpc3QgKiogbGlzdCwgaW50IGxpZm8pOwordm9pZCBzb3J0X2luX3RvcG9sb2dpY2FsX29yZGVyKHN0cnVjdCBjb21taXRfbGlzdCAqKiwgZW51bSByZXZfc29ydF9vcmRlcik7CiAKIHN0cnVjdCBjb21taXRfZ3JhZnQgewogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CkBAIC0xNzYsNiArMTk5LDggQEAKIGV4dGVybiBpbnQgaXNfcmVwb3NpdG9yeV9zaGFsbG93KHZvaWQpOwogZXh0ZXJuIHN0cnVjdCBjb21taXRfbGlzdCAqZ2V0X3NoYWxsb3dfY29tbWl0cyhzdHJ1Y3Qgb2JqZWN0X2FycmF5ICpoZWFkcywKIAkJaW50IGRlcHRoLCBpbnQgc2hhbGxvd19mbGFnLCBpbnQgbm90X3NoYWxsb3dfZmxhZyk7CitleHRlcm4gdm9pZCBjaGVja19zaGFsbG93X2ZpbGVfZm9yX3VwZGF0ZSh2b2lkKTsKK2V4dGVybiB2b2lkIHNldF9hbHRlcm5hdGVfc2hhbGxvd19maWxlKGNvbnN0IGNoYXIgKnBhdGgpOwogCiBpbnQgaXNfZGVzY2VuZGFudF9vZihzdHJ1Y3QgY29tbWl0ICosIHN0cnVjdCBjb21taXRfbGlzdCAqKTsKIGludCBpbl9tZXJnZV9iYXNlcyhzdHJ1Y3QgY29tbWl0ICosIHN0cnVjdCBjb21taXQgKik7CkBAIC0yNDMsNCArMjY4LDYgQEAKICAqLwogZXh0ZXJuIHZvaWQgY2hlY2tfY29tbWl0X3NpZ25hdHVyZShjb25zdCBzdHJ1Y3QgY29tbWl0KiBjb21taXQsIHN0cnVjdCBzaWduYXR1cmVfY2hlY2sgKnNpZ2MpOwogCitpbnQgY29tcGFyZV9jb21taXRzX2J5X2NvbW1pdF9kYXRlKGNvbnN0IHZvaWQgKmFfLCBjb25zdCB2b2lkICpiXywgdm9pZCAqdW51c2VkKTsKKwogI2VuZGlmIC8qIENPTU1JVF9IICovCmRpZmYgLS1naXQgYS9jb21wYXQvY3lnd2luLmMgYi9jb21wYXQvY3lnd2luLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3MWI0MWQuLjAwMDAwMDAKLS0tIGEvY29tcGF0L2N5Z3dpbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMTYyICswLDAgQEAKLSNkZWZpbmUgQ1lHV0lOX0MKLSNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgotI2lmZGVmIENZR1dJTl9WMTVfV0lOMzJBUEkKLSNpbmNsdWRlICIuLi9naXQtY29tcGF0LXV0aWwuaCIKLSNpbmNsdWRlICJ3aW4zMi5oIgotI2Vsc2UKLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy9lcnJuby5oPgotI2luY2x1ZGUgIndpbjMyLmgiCi0jaW5jbHVkZSAiLi4vZ2l0LWNvbXBhdC11dGlsLmgiCi0jZW5kaWYKLSNpbmNsdWRlICIuLi9jYWNoZS5oIiAvKiB0byByZWFkIGNvbmZpZ3VyYXRpb24gKi8KLQotLyoKLSAqIFJldHVybiBQT1NJWCBwZXJtaXNzaW9uIGJpdHMsIHJlZ2FyZGxlc3Mgb2YgY29yZS5pZ25vcmVjeWd3aW5mc3RyaWNrcwotICovCi1pbnQgY3lnd2luX2dldF9zdF9tb2RlX2JpdHMoY29uc3QgY2hhciAqcGF0aCwgaW50ICptb2RlKQotewotCXN0cnVjdCBzdGF0IHN0OwotCWlmIChsc3RhdChwYXRoLCAmc3QpIDwgMCkKLQkJcmV0dXJuIC0xOwotCSptb2RlID0gc3Quc3RfbW9kZTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGZpbGV0aW1lX3RvX3RpbWVzcGVjKGNvbnN0IEZJTEVUSU1FICpmdCwgc3RydWN0IHRpbWVzcGVjICp0cykKLXsKLQlsb25nIGxvbmcgd2luVGltZSA9ICgobG9uZyBsb25nKWZ0LT5kd0hpZ2hEYXRlVGltZSA8PCAzMikgKwotCQkJZnQtPmR3TG93RGF0ZVRpbWU7Ci0Jd2luVGltZSAtPSAxMTY0NDQ3MzYwMDAwMDAwMDBMTDsgLyogV2luZG93cyB0byBVbml4IEVwb2NoIGNvbnZlcnNpb24gKi8KLQkvKiBjb252ZXJ0IDEwMC1uc2Vjb25kIGludGVydmFsIHRvIHNlY29uZHMgYW5kIG5hbm9zZWNvbmRzICovCi0JdHMtPnR2X3NlYyA9ICh0aW1lX3QpKHdpblRpbWUvMTAwMDAwMDApOwotCXRzLT50dl9uc2VjID0gKGxvbmcpKHdpblRpbWUgLSB0cy0+dHZfc2VjKjEwMDAwMDAwTEwpICogMTAwOwotfQotCi0jZGVmaW5lIHNpemVfdG9fYmxvY2tzKHMpICgoKHMpKzUxMSkvNTEyKQotCi0vKiBkb19zdGF0IGlzIGEgY29tbW9uIGltcGxlbWVudGF0aW9uIGZvciBjeWd3aW5fbHN0YXQgYW5kIGN5Z3dpbl9zdGF0LgotICoKLSAqIFRvIHNpbXBsaWZ5IGl0cyBsb2dpYywgaW4gdGhlIGNhc2Ugb2YgY3lnd2luIHN5bWxpbmtzLCB0aGlzIGltcGxlbWVudGF0aW9uCi0gKiBmYWxscyBiYWNrIHRvIHRoZSBjeWd3aW4gdmVyc2lvbiBvZiBzdGF0L2xzdGF0LCB3aGljaCBpcyBwcm92aWRlZCBhcyB0aGUKLSAqIGxhc3QgYXJndW1lbnQuCi0gKi8KLXN0YXRpYyBpbnQgZG9fc3RhdChjb25zdCBjaGFyICpmaWxlX25hbWUsIHN0cnVjdCBzdGF0ICpidWYsIHN0YXRfZm5fdCBjeWdzdGF0KQotewotCVdJTjMyX0ZJTEVfQVRUUklCVVRFX0RBVEEgZmRhdGE7Ci0KLQlpZiAoZmlsZV9uYW1lWzBdID09ICcvJykKLQkJcmV0dXJuIGN5Z3N0YXQgKGZpbGVfbmFtZSwgYnVmKTsKLQotCWlmICghKGVycm5vID0gZ2V0X2ZpbGVfYXR0cihmaWxlX25hbWUsICZmZGF0YSkpKSB7Ci0JCS8qCi0JCSAqIElmIHRoZSBzeXN0ZW0gYXR0cmlidXRlIGlzIHNldCBhbmQgaXQgaXMgbm90IGEgZGlyZWN0b3J5IHRoZW4KLQkJICogaXQgY291bGQgYmUgYSBzeW1ib2wgbGluayBjcmVhdGVkIGluIHRoZSBub3dpbnN5bWxpbmtzIG1vZGUuCi0JCSAqIE5vcm1hbGx5LCBDeWd3aW4gd29ya3MgaW4gdGhlIHdpbnN5bWxpbmtzIG1vZGUsIHNvIHRoaXMgc2l0dWF0aW9uCi0JCSAqIGlzIHZlcnkgdW5saWtlbHkuIEZvciB0aGUgc2FrZSBvZiBzaW1wbGljaXR5IG9mIG91ciBjb2RlLCBsZXQncwotCQkgKiBDeWd3aW4gdG8gaGFuZGxlIGl0LgotCQkgKi8KLQkJaWYgKChmZGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfU1lTVEVNKSAmJgotCQkgICAgIShmZGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfRElSRUNUT1JZKSkKLQkJCXJldHVybiBjeWdzdGF0KGZpbGVfbmFtZSwgYnVmKTsKLQotCQkvKiBmaWxsIG91dCB0aGUgc3RhdCBzdHJ1Y3R1cmUgKi8KLQkJYnVmLT5zdF9kZXYgPSBidWYtPnN0X3JkZXYgPSAwOyAvKiBub3QgdXNlZCBieSBHaXQgKi8KLQkJYnVmLT5zdF9pbm8gPSAwOwotCQlidWYtPnN0X21vZGUgPSBmaWxlX2F0dHJfdG9fc3RfbW9kZShmZGF0YS5kd0ZpbGVBdHRyaWJ1dGVzKTsKLQkJYnVmLT5zdF9ubGluayA9IDE7Ci0JCWJ1Zi0+c3RfdWlkID0gYnVmLT5zdF9naWQgPSAwOwotI2lmZGVmIF9fQ1lHV0lOX1VTRV9CSUdfVFlQRVNfXwotCQlidWYtPnN0X3NpemUgPSAoKF9vZmY2NF90KWZkYXRhLm5GaWxlU2l6ZUhpZ2ggPDwgMzIpICsKLQkJCWZkYXRhLm5GaWxlU2l6ZUxvdzsKLSNlbHNlCi0JCWJ1Zi0+c3Rfc2l6ZSA9IChvZmZfdClmZGF0YS5uRmlsZVNpemVMb3c7Ci0jZW5kaWYKLQkJYnVmLT5zdF9ibG9ja3MgPSBzaXplX3RvX2Jsb2NrcyhidWYtPnN0X3NpemUpOwotCQlmaWxldGltZV90b190aW1lc3BlYygmZmRhdGEuZnRMYXN0QWNjZXNzVGltZSwgJmJ1Zi0+c3RfYXRpbSk7Ci0JCWZpbGV0aW1lX3RvX3RpbWVzcGVjKCZmZGF0YS5mdExhc3RXcml0ZVRpbWUsICZidWYtPnN0X210aW0pOwotCQlmaWxldGltZV90b190aW1lc3BlYygmZmRhdGEuZnRDcmVhdGlvblRpbWUsICZidWYtPnN0X2N0aW0pOwotCQlyZXR1cm4gMDsKLQl9IGVsc2UgaWYgKGVycm5vID09IEVOT0VOVCkgewotCQkvKgotCQkgKiBJbiB0aGUgd2luc3ltbGlua3MgbW9kZSAod2hpY2ggaXMgdGhlIGRlZmF1bHQpLCBDeWd3aW4KLQkJICogZW11bGF0ZXMgc3ltYm9sIGxpbmtzIHVzaW5nIFdpbmRvd3Mgc2hvcnRjdXQgZmlsZXMuIFRoZXNlCi0JCSAqIGZpbGVzIGFyZSBmb3JtZWQgYnkgYWRkaW5nIC5sbmsgZXh0ZW5zaW9uLiBTbywgaWYgd2UgaGF2ZQotCQkgKiBub3QgZm91bmQgdGhlIHNwZWNpZmllZCBmaWxlIG5hbWUsIGl0IGNvdWxkIGJlIHRoYXQgaXQgaXMKLQkJICogYSBzeW1ib2wgbGluay4gTGV0J3MgQ3lnd2luIHRvIGRlYWwgd2l0aCB0aGF0LgotCQkgKi8KLQkJcmV0dXJuIGN5Z3N0YXQoZmlsZV9uYW1lLCBidWYpOwotCX0KLQlyZXR1cm4gLTE7Ci19Ci0KLS8qIFdlIHByb3ZpZGUgb3VyIG93biBsc3RhdC9zdGF0IGZ1bmN0aW9ucywgc2luY2UgdGhlIHByb3ZpZGVkIEN5Z3dpbiB2ZXJzaW9ucwotICogb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSB0b28gc2xvdy4gVGhlc2Ugc3RhdCBmdW5jdGlvbnMgYXJlIHRhaWxvcmVkIGZvciBHaXQncwotICogdXNhZ2UsIGFuZCB0aGVyZWZvcmUgdGhleSBhcmUgbm90IG1lYW50IHRvIGJlIGNvbXBsZXRlIGFuZCBjb3JyZWN0IGVtdWxhdGlvbgotICogb2YgbHN0YXQvc3RhdCBmdW5jdGlvbmFsaXR5LgotICovCi1zdGF0aWMgaW50IGN5Z3dpbl9sc3RhdChjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqYnVmKQotewotCXJldHVybiBkb19zdGF0KHBhdGgsIGJ1ZiwgbHN0YXQpOwotfQotCi1zdGF0aWMgaW50IGN5Z3dpbl9zdGF0KGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBzdGF0ICpidWYpCi17Ci0JcmV0dXJuIGRvX3N0YXQocGF0aCwgYnVmLCBzdGF0KTsKLX0KLQotCi0vKgotICogQXQgc3RhcnQgdXAsIHdlIGFyZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgV2luMzIgQVBJIG9yIGN5Z3dpbiBzdGF0Ci0gKiBmdW5jdGlvbnMgc2hvdWxkIGJlIHVzZWQuIFRoZSBjaG9pY2UgaXMgZGV0ZXJtaW5lZCBieSBjb3JlLmlnbm9yZWN5Z3dpbmZzdHJpY2tzLgotICogUmVhZGluZyB0aGlzIG9wdGlvbiBpcyBub3QgYWx3YXlzIHBvc3NpYmxlIGltbWVkaWF0ZWx5IGFzIGdpdF9kaXIgbWF5Ci0gKiBub3QgYmUgc2V0IHlldC4gU28gdW50aWwgaXQgaXMgc2V0LCB1c2UgY3lnd2luIGxzdGF0L3N0YXQgZnVuY3Rpb25zLgotICogSG93ZXZlciwgaWYgY29yZS5maWxlbW9kZSBpcyBzZXQsIHdlIG11c3QgdXNlIHRoZSBDeWd3aW4gcG9zaXgKLSAqIHN0YXQvbHN0YXQgYXMgdGhlIFdpbmRvd3Mgc3RhdCBmdW5jdGlvbnMgZG8gbm90IGRldGVybWluZSBwb3NpeCBmaWxlbW9kZS4KLSAqCi0gKiBOb3RlIHRoYXQgZ2l0X2N5Z3dpbl9jb25maWcoKSBkb2VzIE5PVCBjYWxsIGdpdF9kZWZhdWx0X2NvbmZpZygpIGFuZCB0aGlzCi0gKiBpcyBkZWxpYmVyYXRlLiAgTWFueSBjb21tYW5kcyByZWFkIGZyb20gY29uZmlnIHRvIGVzdGFibGlzaCBpbml0aWFsCi0gKiB2YWx1ZXMgaW4gdmFyaWFibGVzIGFuZCBsYXRlciB0d2VhayB0aGVtIGZyb20gZWxzZXdoZXJlIChlLmcuIGNvbW1hbmQgbGluZSkuCi0gKiBpbml0X3N0YXQoKSBpcyBjYWxsZWQgbGF6aWx5IG9uIGRlbWFuZCwgdHlwaWNhbGx5IG11Y2ggbGF0ZSBpbiB0aGUgcHJvZ3JhbSwKLSAqIGFuZCBjYWxsaW5nIGdpdF9kZWZhdWx0X2NvbmZpZygpIGZyb20gaGVyZSB3b3VsZCBicmVhayBzdWNoIHZhcmlhYmxlcy4KLSAqLwotc3RhdGljIGludCBuYXRpdmVfc3RhdCA9IDE7Ci1zdGF0aWMgaW50IGNvcmVfZmlsZW1vZGUgPSAxOyAvKiBtYXRjaGVzIHRydXN0X2V4ZWN1dGFibGVfYml0IGRlZmF1bHQgKi8KLQotc3RhdGljIGludCBnaXRfY3lnd2luX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYikKLXsKLQlpZiAoIXN0cmNtcCh2YXIsICJjb3JlLmlnbm9yZWN5Z3dpbmZzdHJpY2tzIikpCi0JCW5hdGl2ZV9zdGF0ID0gZ2l0X2NvbmZpZ19ib29sKHZhciwgdmFsdWUpOwotCWVsc2UgaWYgKCFzdHJjbXAodmFyLCAiY29yZS5maWxlbW9kZSIpKQotCQljb3JlX2ZpbGVtb2RlID0gZ2l0X2NvbmZpZ19ib29sKHZhciwgdmFsdWUpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGluaXRfc3RhdCh2b2lkKQotewotCWlmIChoYXZlX2dpdF9kaXIoKSAmJiBnaXRfY29uZmlnKGdpdF9jeWd3aW5fY29uZmlnLE5VTEwpKSB7Ci0JCWlmICghY29yZV9maWxlbW9kZSAmJiBuYXRpdmVfc3RhdCkgewotCQkJY3lnd2luX3N0YXRfZm4gPSBjeWd3aW5fc3RhdDsKLQkJCWN5Z3dpbl9sc3RhdF9mbiA9IGN5Z3dpbl9sc3RhdDsKLQkJfSBlbHNlIHsKLQkJCWN5Z3dpbl9zdGF0X2ZuID0gc3RhdDsKLQkJCWN5Z3dpbl9sc3RhdF9mbiA9IGxzdGF0OwotCQl9Ci0JCXJldHVybiAwOwotCX0KLQlyZXR1cm4gMTsKLX0KLQotc3RhdGljIGludCBjeWd3aW5fc3RhdF9zdHViKGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgc3RydWN0IHN0YXQgKmJ1ZikKLXsKLQlyZXR1cm4gKGluaXRfc3RhdCgpID8gc3RhdCA6ICpjeWd3aW5fc3RhdF9mbikoZmlsZV9uYW1lLCBidWYpOwotfQotCi1zdGF0aWMgaW50IGN5Z3dpbl9sc3RhdF9zdHViKGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgc3RydWN0IHN0YXQgKmJ1ZikKLXsKLQlyZXR1cm4gKGluaXRfc3RhdCgpID8gbHN0YXQgOiAqY3lnd2luX2xzdGF0X2ZuKShmaWxlX25hbWUsIGJ1Zik7Ci19Ci0KLXN0YXRfZm5fdCBjeWd3aW5fc3RhdF9mbiA9IGN5Z3dpbl9zdGF0X3N0dWI7Ci1zdGF0X2ZuX3QgY3lnd2luX2xzdGF0X2ZuID0gY3lnd2luX2xzdGF0X3N0dWI7Ci0KZGlmZiAtLWdpdCBhL2NvbXBhdC9jeWd3aW4uaCBiL2NvbXBhdC9jeWd3aW4uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA0OTY1YS4uMDAwMDAwMAotLS0gYS9jb21wYXQvY3lnd2luLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLQotdHlwZWRlZiBpbnQgKCpzdGF0X2ZuX3QpKGNvbnN0IGNoYXIqLCBzdHJ1Y3Qgc3RhdCopOwotZXh0ZXJuIHN0YXRfZm5fdCBjeWd3aW5fc3RhdF9mbjsKLWV4dGVybiBzdGF0X2ZuX3QgY3lnd2luX2xzdGF0X2ZuOwotaW50IGN5Z3dpbl9nZXRfc3RfbW9kZV9iaXRzKGNvbnN0IGNoYXIgKnBhdGgsIGludCAqbW9kZSk7Ci0KLSNkZWZpbmUgZ2V0X3N0X21vZGVfYml0cyhwLG0pIGN5Z3dpbl9nZXRfc3RfbW9kZV9iaXRzKChwKSwobSkpCi0jaWZuZGVmIENZR1dJTl9DCi0vKiBjeWd3aW4uYyBuZWVkcyB0aGUgb3JpZ2luYWwgbHN0YXQoKSAqLwotI2RlZmluZSBzdGF0KHBhdGgsIGJ1ZikgKCpjeWd3aW5fc3RhdF9mbikocGF0aCwgYnVmKQotI2RlZmluZSBsc3RhdChwYXRoLCBidWYpICgqY3lnd2luX2xzdGF0X2ZuKShwYXRoLCBidWYpCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2NvbXBhdC9mbm1hdGNoL2ZubWF0Y2guYyBiL2NvbXBhdC9mbm1hdGNoL2ZubWF0Y2guYwppbmRleCA1ZWYwNjg1Li4zNzhjNDY3IDEwMDY0NAotLS0gYS9jb21wYXQvZm5tYXRjaC9mbm1hdGNoLmMKKysrIGIvY29tcGF0L2ZubWF0Y2gvZm5tYXRjaC5jCkBAIC0yNSw2ICsyNSw3IEBACiAjIGRlZmluZSBfR05VX1NPVVJDRQkxCiAjZW5kaWYKIAorI2luY2x1ZGUgPHN0ZGRlZi5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8Zm5tYXRjaC5oPgogI2luY2x1ZGUgPGN0eXBlLmg+CkBAIC0xMjEsNyArMTIyLDcgQEAKICAgIHdob3NlIG5hbWVzIGFyZSBpbmNvbnNpc3RlbnQuICAqLwogCiAjIGlmICFkZWZpbmVkIF9MSUJDICYmICFkZWZpbmVkIGdldGVudgotZXh0ZXJuIGNoYXIgKmdldGVudiAoKTsKK2V4dGVybiBjaGFyICpnZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUpOwogIyBlbmRpZgogCiAjIGlmbmRlZiBlcnJubwpkaWZmIC0tZ2l0IGEvY29tcGF0L21pbmd3LmMgYi9jb21wYXQvbWluZ3cuYwppbmRleCBiNjczNjI1Li5iYjkyYzQzIDEwMDY0NAotLS0gYS9jb21wYXQvbWluZ3cuYworKysgYi9jb21wYXQvbWluZ3cuYwpAQCAtODQxLDggKzg0MSw4IEBACiAJc3RydWN0IHBpbmZvX3QgKm5leHQ7CiAJcGlkX3QgcGlkOwogCUhBTkRMRSBwcm9jOwotfSBwaW5mb190Owotc3RydWN0IHBpbmZvX3QgKnBpbmZvID0gTlVMTDsKK307CitzdGF0aWMgc3RydWN0IHBpbmZvX3QgKnBpbmZvID0gTlVMTDsKIENSSVRJQ0FMX1NFQ1RJT04gcGluZm9fY3M7CiAKIHN0YXRpYyBwaWRfdCBtaW5nd19zcGF3bnZlX2ZkKGNvbnN0IGNoYXIgKmNtZCwgY29uc3QgY2hhciAqKmFyZ3YsIGNoYXIgKiplbnYsCkBAIC0xMjUzLDcgKzEyNTMsNyBAQAogCWVsc2UKIAkJc2luLT5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfTE9PUEJBQ0s7CiAJYWktPmFpX2FkZHIgPSAoc3RydWN0IHNvY2thZGRyICopc2luOwotCWFpLT5haV9uZXh0ID0gMDsKKwlhaS0+YWlfbmV4dCA9IE5VTEw7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE2NzcsMTQgKzE2NzcsMTYgQEAKICN1bmRlZiBzaWduYWwKIHNpZ19oYW5kbGVyX3QgbWluZ3dfc2lnbmFsKGludCBzaWcsIHNpZ19oYW5kbGVyX3QgaGFuZGxlcikKIHsKLQlzaWdfaGFuZGxlcl90IG9sZCA9IHRpbWVyX2ZuOworCXNpZ19oYW5kbGVyX3Qgb2xkOwogCiAJc3dpdGNoIChzaWcpIHsKIAljYXNlIFNJR0FMUk06CisJCW9sZCA9IHRpbWVyX2ZuOwogCQl0aW1lcl9mbiA9IGhhbmRsZXI7CiAJCWJyZWFrOwogCiAJY2FzZSBTSUdJTlQ6CisJCW9sZCA9IHNpZ2ludF9mbjsKIAkJc2lnaW50X2ZuID0gaGFuZGxlcjsKIAkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL2NvbXBhdC9taW5ndy5oIGIvY29tcGF0L21pbmd3LmgKaW5kZXggNjg1Y2QyYy4uYmQwYTg4YiAxMDA2NDQKLS0tIGEvY29tcGF0L21pbmd3LmgKKysrIGIvY29tcGF0L21pbmd3LmgKQEAgLTMzNCwxMyArMzM0LDIwIEBACiB2b2lkIGZyZWVfZW52aXJvbihjaGFyICoqZW52KTsKIAogLyoKKyAqIEEgY3JpdGljYWwgc2VjdGlvbiB1c2VkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3Bhd24KKyAqIGZ1bmN0aW9ucyAobWluZ3dfc3Bhd252W3BdZSgpKSBhbmQgd2FpdHBpZCgpLiBJbnRpYWxpc2VkIGluCisgKiB0aGUgcmVwbGFjZW1lbnQgbWFpbigpIG1hY3JvIGJlbG93LgorICovCitleHRlcm4gQ1JJVElDQUxfU0VDVElPTiBwaW5mb19jczsKKworLyoKICAqIEEgcmVwbGFjZW1lbnQgb2YgbWFpbigpIHRoYXQgZW5zdXJlcyB0aGF0IGFyZ3ZbMF0gaGFzIGEgcGF0aAogICogYW5kIHRoYXQgZGVmYXVsdCBmbW9kZSBhbmQgc3RkKGlufG91dHxlcnIpIGFyZSBpbiBiaW5hcnkgbW9kZQogICovCiAKICNkZWZpbmUgbWFpbihjLHYpIGR1bW15X2RlY2xfbWluZ3dfbWFpbigpOyBcCi1zdGF0aWMgaW50IG1pbmd3X21haW4oKTsgXAotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KSBcCitzdGF0aWMgaW50IG1pbmd3X21haW4oYyx2KTsgXAoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBcCiB7IFwKIAlleHRlcm4gQ1JJVElDQUxfU0VDVElPTiBwaW5mb19jczsgXAogCV9mbW9kZSA9IF9PX0JJTkFSWTsgXApkaWZmIC0tZ2l0IGEvY29tcGF0L25lZG1hbGxvYy9SZWFkbWUudHh0IGIvY29tcGF0L25lZG1hbGxvYy9SZWFkbWUudHh0CmluZGV4IGU0NmQ4ZjEuLjA3Y2JmNTAgMTAwNjQ0Ci0tLSBhL2NvbXBhdC9uZWRtYWxsb2MvUmVhZG1lLnR4dAorKysgYi9jb21wYXQvbmVkbWFsbG9jL1JlYWRtZS50eHQKQEAgLTk3LDcgKzk3LDcgQEAKIAogdjEuMDRhbHBoYV9zdm45MTUgN3RoIE9jdG9iZXIgMjAwNjoKICAqIEZpeGVkIGZhaWx1cmUgdG8gdW5sb2NrIHRocmVhZCBjYWNoZSBsaXN0IGlmIGFsbG9jYXRpbmcgYSBuZXcgbGlzdCBmYWlsZWQuCi1UaGFua3MgdG8gRG1pdHJ5IENoaWNoa292IGZvciByZXBvcnRpbmcgdGhpcy4gRnV0aGVyIHRoYW5rcyB0byBBbGVrc2V5IFNhbmluLgorVGhhbmtzIHRvIERtaXRyeSBDaGljaGtvdiBmb3IgcmVwb3J0aW5nIHRoaXMuIEZ1cnRoZXIgdGhhbmtzIHRvIEFsZWtzZXkgU2FuaW4uCiAgKiBGaXhlZCByZWFsbG9jKDAsIDxzaXplPikgc2VnZmF1bHRpbmcuIFRoYW5rcyB0byBEbWl0cnkgQ2hpY2hrb3YgZm9yCiByZXBvcnRpbmcgdGhpcy4KICAqIE1hZGUgY29uZmlnIGRlZmluZXMgI2lmbmRlZiBzbyB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBidWlsZCBzeXN0ZW0uCmRpZmYgLS1naXQgYS9jb21wYXQvbmVkbWFsbG9jL21hbGxvYy5jLmggYi9jb21wYXQvbmVkbWFsbG9jL21hbGxvYy5jLmgKaW5kZXggMTQwMWE2Ny4uZWQ0ZjFmYSAxMDA2NDQKLS0tIGEvY29tcGF0L25lZG1hbGxvYy9tYWxsb2MuYy5oCisrKyBiL2NvbXBhdC9uZWRtYWxsb2MvbWFsbG9jLmMuaApAQCAtNDg0LDYgKzQ4NCwxMCBAQAogI2RlZmluZSBETE1BTExPQ19WRVJTSU9OIDIwODA0CiAjZW5kaWYgLyogRExNQUxMT0NfVkVSU0lPTiAqLwogCisjaWYgZGVmaW5lZChsaW51eCkKKyNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorI2VuZGlmCisKICNpZm5kZWYgV0lOMzIKICNpZmRlZiBfV0lOMzIKICNkZWZpbmUgV0lOMzIgMQpAQCAtMTgwMiw3ICsxODA2LDcgQEAKIAogc3RhdGljIE1MT0NLX1QgbWFsbG9jX2dsb2JhbF9tdXRleCA9IHsgMCwgMCwgMH07CiAKLXN0YXRpYyBGT1JDRUlOTElORSBsb25nIHdpbjMyX2dldGN1cnJlbnR0aHJlYWRpZCgpIHsKK3N0YXRpYyBGT1JDRUlOTElORSBsb25nIHdpbjMyX2dldGN1cnJlbnR0aHJlYWRpZCh2b2lkKSB7CiAjaWZkZWYgX01TQ19WRVIKICNpZiBkZWZpbmVkKF9NX0lYODYpCiAgIGxvbmcgKnRocmVhZHN0cnVjdD0obG9uZyAqKV9fcmVhZGZzZHdvcmQoMHgxOCk7CkBAIC0zNTk4LDggKzM2MDIsOCBAQAogICAgICBhbmQgY2hvb3NlIGl0cyBiayBub2RlIGFzIGl0cyByZXBsYWNlbWVudC4KICAgMi4gSWYgeCB3YXMgdGhlIGxhc3Qgbm9kZSBvZiBpdHMgc2l6ZSwgYnV0IG5vdCBhIGxlYWYgbm9kZSwgaXQgbXVzdAogICAgICBiZSByZXBsYWNlZCB3aXRoIGEgbGVhZiBub2RlIChub3QgbWVyZWx5IG9uZSB3aXRoIGFuIG9wZW4gbGVmdCBvcgotICAgICByaWdodCksIHRvIG1ha2Ugc3VyZSB0aGF0IGxlZnRzIGFuZCByaWdodHMgb2YgZGVzY2VuZGVudHMKLSAgICAgY29ycmVzcG9uZCBwcm9wZXJseSB0byBiaXQgbWFza3MuICBXZSB1c2UgdGhlIHJpZ2h0bW9zdCBkZXNjZW5kZW50CisgICAgIHJpZ2h0KSwgdG8gbWFrZSBzdXJlIHRoYXQgbGVmdHMgYW5kIHJpZ2h0cyBvZiBkZXNjZW5kYW50cworICAgICBjb3JyZXNwb25kIHByb3Blcmx5IHRvIGJpdCBtYXNrcy4gIFdlIHVzZSB0aGUgcmlnaHRtb3N0IGRlc2NlbmRhbnQKICAgICAgb2YgeC4gIFdlIGNvdWxkIHVzZSBhbnkgb3RoZXIgbGVhZiwgYnV0IHRoaXMgaXMgZWFzeSB0byBsb2NhdGUgYW5kCiAgICAgIHRlbmRzIHRvIGNvdW50ZXJhY3QgcmVtb3ZhbCBvZiBsZWZ0bW9zdHMgZWxzZXdoZXJlLCBhbmQgc28ga2VlcHMKICAgICAgcGF0aHMgc2hvcnRlciB0aGFuIG1pbmltYWxseSBndWFyYW50ZWVkLiAgVGhpcyBkb2Vzbid0IGxvb3AgbXVjaApkaWZmIC0tZ2l0IGEvY29tcGF0L25lZG1hbGxvYy9uZWRtYWxsb2MuYyBiL2NvbXBhdC9uZWRtYWxsb2MvbmVkbWFsbG9jLmMKaW5kZXggOTFjNGU3Zi4uNjA5ZWJiYSAxMDA2NDQKLS0tIGEvY29tcGF0L25lZG1hbGxvYy9uZWRtYWxsb2MuYworKysgYi9jb21wYXQvbmVkbWFsbG9jL25lZG1hbGxvYy5jCkBAIC0xNTksOCArMTU5LDggQEAKICNlbmRpZgogaW50ICAgIG5lZG1hbGxvcHQoaW50IHBhcm5vLCBpbnQgdmFsdWUpIFRIUk9XU1BFQwl7IHJldHVybiBuZWRwbWFsbG9wdCgwLCBwYXJubywgdmFsdWUpOyB9CiBpbnQgICAgbmVkbWFsbG9jX3RyaW0oc2l6ZV90IHBhZCkgVEhST1dTUEVDCQkJeyByZXR1cm4gbmVkcG1hbGxvY190cmltKDAsIHBhZCk7IH0KLXZvaWQgICBuZWRtYWxsb2Nfc3RhdHMoKSBUSFJPV1NQRUMJCQkJCXsgbmVkcG1hbGxvY19zdGF0cygwKTsgfQotc2l6ZV90IG5lZG1hbGxvY19mb290cHJpbnQoKSBUSFJPV1NQRUMJCQkJeyByZXR1cm4gbmVkcG1hbGxvY19mb290cHJpbnQoMCk7IH0KK3ZvaWQgICBuZWRtYWxsb2Nfc3RhdHModm9pZCkgVEhST1dTUEVDCQkJCQl7IG5lZHBtYWxsb2Nfc3RhdHMoMCk7IH0KK3NpemVfdCBuZWRtYWxsb2NfZm9vdHByaW50KHZvaWQpIFRIUk9XU1BFQwkJCQl7IHJldHVybiBuZWRwbWFsbG9jX2Zvb3RwcmludCgwKTsgfQogdm9pZCAqKm5lZGluZGVwZW5kZW50X2NhbGxvYyhzaXplX3QgZWxlbXNubywgc2l6ZV90IGVsZW1zaXplLCB2b2lkICoqY2h1bmtzKSBUSFJPV1NQRUMJeyByZXR1cm4gbmVkcGluZGVwZW5kZW50X2NhbGxvYygwLCBlbGVtc25vLCBlbGVtc2l6ZSwgY2h1bmtzKTsgfQogdm9pZCAqKm5lZGluZGVwZW5kZW50X2NvbWFsbG9jKHNpemVfdCBlbGVtcywgc2l6ZV90ICpzaXplcywgdm9pZCAqKmNodW5rcykgVEhST1dTUEVDCXsgcmV0dXJuIG5lZHBpbmRlcGVuZGVudF9jb21hbGxvYygwLCBlbGVtcywgc2l6ZXMsIGNodW5rcyk7IH0KIApkaWZmIC0tZ2l0IGEvY29tcGF0L3BvbGwvcG9sbC5jIGIvY29tcGF0L3BvbGwvcG9sbC5jCmluZGV4IDdkMjI2ZWMuLjQ0MTAzMTAgMTAwNjQ0Ci0tLSBhL2NvbXBhdC9wb2xsL3BvbGwuYworKysgYi9jb21wYXQvcG9sbC9wb2xsLmMKQEAgLTU3Niw3ICs1NzYsNyBAQAogCXsKIAkgIC8qIEl0J3MgYSBzb2NrZXQuICAqLwogCSAgV1NBRW51bU5ldHdvcmtFdmVudHMgKChTT0NLRVQpIGgsIE5VTEwsICZldik7Ci0JICBXU0FFdmVudFNlbGVjdCAoKFNPQ0tFVCkgaCwgMCwgMCk7CisJICBXU0FFdmVudFNlbGVjdCAoKFNPQ0tFVCkgaCwgTlVMTCwgMCk7CiAKIAkgIC8qIElmIHdlJ3JlIGx1Y2t5LCBXU0FFbnVtTmV0d29ya0V2ZW50cyBhbHJlYWR5IHByb3ZpZGVkIGEgd2F5CiAJICAgICB0byBkaXN0aW5ndWlzaCBGRF9SRUFEIGFuZCBGRF9BQ0NFUFQ7IHRoaXMgc2F2ZXMgYSByZWN2IGxhdGVyLiAgKi8KZGlmZiAtLWdpdCBhL2NvbXBhdC9yZWdleC9yZWdjb21wLmMgYi9jb21wYXQvcmVnZXgvcmVnY29tcC5jCmluZGV4IGQwMDI1YmQuLmIyYzVkNDYgMTAwNjQ0Ci0tLSBhL2NvbXBhdC9yZWdleC9yZWdjb21wLmMKKysrIGIvY29tcGF0L3JlZ2V4L3JlZ2NvbXAuYwpAQCAtMjYxNyw3ICsyNjE3LDcgQEAKICAgICAgQnVpbGQgdGhlIHJhbmdlIGV4cHJlc3Npb24gd2hpY2ggc3RhcnRzIGZyb20gU1RBUlRfRUxFTSwgYW5kIGVuZHMKICAgICAgYXQgRU5EX0VMRU0uICBUaGUgcmVzdWx0IGFyZSB3cml0dGVuIHRvIE1CQ1NFVCBhbmQgU0JDU0VULgogICAgICBSQU5HRV9BTExPQyBpcyB0aGUgYWxsb2NhdGVkIHNpemUgb2YgbWJjc2V0LT5yYW5nZV9zdGFydHMsIGFuZAotICAgICBtYmNzZXQtPnJhbmdlX2VuZHMsIGlzIGEgcG9pbnRlciBhcmd1bWVudCBzaW5zZSB3ZSBtYXkKKyAgICAgbWJjc2V0LT5yYW5nZV9lbmRzLCBpcyBhIHBvaW50ZXIgYXJndW1lbnQgc2luY2Ugd2UgbWF5CiAgICAgIHVwZGF0ZSBpdC4gICovCiAKIHN0YXRpYyByZWdfZXJyY29kZV90CkBAIC0yNzg4LDcgKzI3ODgsNyBAQAogICBjb25zdCBpbnQzMl90ICpzeW1iX3RhYmxlOwogICBjb25zdCB1bnNpZ25lZCBjaGFyICpleHRyYTsKIAotICAvKiBMb2NhbCBmdW5jdGlvbiBmb3IgcGFyc2VfYnJhY2tldF9leHAgdXNlZCBpbiBfTElCQyBlbnZpcm9uZW1lbnQuCisgIC8qIExvY2FsIGZ1bmN0aW9uIGZvciBwYXJzZV9icmFja2V0X2V4cCB1c2VkIGluIF9MSUJDIGVudmlyb25tZW50LgogICAgICBTZWVrIHRoZSBjb2xsYXRpbmcgc3ltYm9sIGVudHJ5IGNvcnJlc3BvbmRpbmdzIHRvIE5BTUUuCiAgICAgIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIHN5bWJvbCBpbiB0aGUgU1lNQl9UQUJMRS4gICovCiAKQEAgLTI4OTIsMTEgKzI4OTIsMTEgQEAKICAgICAgIHJldHVybiBVSU5UX01BWDsKICAgICB9CiAKLSAgLyogTG9jYWwgZnVuY3Rpb24gZm9yIHBhcnNlX2JyYWNrZXRfZXhwIHVzZWQgaW4gX0xJQkMgZW52aXJvbmVtZW50LgorICAvKiBMb2NhbCBmdW5jdGlvbiBmb3IgcGFyc2VfYnJhY2tldF9leHAgdXNlZCBpbiBfTElCQyBlbnZpcm9ubWVudC4KICAgICAgQnVpbGQgdGhlIHJhbmdlIGV4cHJlc3Npb24gd2hpY2ggc3RhcnRzIGZyb20gU1RBUlRfRUxFTSwgYW5kIGVuZHMKICAgICAgYXQgRU5EX0VMRU0uICBUaGUgcmVzdWx0IGFyZSB3cml0dGVuIHRvIE1CQ1NFVCBhbmQgU0JDU0VULgogICAgICBSQU5HRV9BTExPQyBpcyB0aGUgYWxsb2NhdGVkIHNpemUgb2YgbWJjc2V0LT5yYW5nZV9zdGFydHMsIGFuZAotICAgICBtYmNzZXQtPnJhbmdlX2VuZHMsIGlzIGEgcG9pbnRlciBhcmd1bWVudCBzaW5zZSB3ZSBtYXkKKyAgICAgbWJjc2V0LT5yYW5nZV9lbmRzLCBpcyBhIHBvaW50ZXIgYXJndW1lbnQgc2luY2Ugd2UgbWF5CiAgICAgIHVwZGF0ZSBpdC4gICovCiAKICAgYXV0byBpbmxpbmUgcmVnX2VycmNvZGVfdApAQCAtMjk3NiwxMSArMjk3NiwxMSBAQAogICAgICAgcmV0dXJuIFJFR19OT0VSUk9SOwogICAgIH0KIAotICAvKiBMb2NhbCBmdW5jdGlvbiBmb3IgcGFyc2VfYnJhY2tldF9leHAgdXNlZCBpbiBfTElCQyBlbnZpcm9uZW1lbnQuCisgIC8qIExvY2FsIGZ1bmN0aW9uIGZvciBwYXJzZV9icmFja2V0X2V4cCB1c2VkIGluIF9MSUJDIGVudmlyb25tZW50LgogICAgICBCdWlsZCB0aGUgY29sbGF0aW5nIGVsZW1lbnQgd2hpY2ggaXMgcmVwcmVzZW50ZWQgYnkgTkFNRS4KICAgICAgVGhlIHJlc3VsdCBhcmUgd3JpdHRlbiB0byBNQkNTRVQgYW5kIFNCQ1NFVC4KICAgICAgQ09MTF9TWU1fQUxMT0MgaXMgdGhlIGFsbG9jYXRlZCBzaXplIG9mIG1iY3NldC0+Y29sbF9zeW0sIGlzIGEKLSAgICAgcG9pbnRlciBhcmd1bWVudCBzaW5zZSB3ZSBtYXkgdXBkYXRlIGl0LiAgKi8KKyAgICAgcG9pbnRlciBhcmd1bWVudCBzaW5jZSB3ZSBtYXkgdXBkYXRlIGl0LiAgKi8KIAogICBhdXRvIGlubGluZSByZWdfZXJyY29kZV90CiAgIF9fYXR0cmlidXRlICgoYWx3YXlzX2lubGluZSkpCkBAIC0zNDE5LDcgKzM0MTksNyBAQAogICAgICBCdWlsZCB0aGUgZXF1aXZhbGVuY2UgY2xhc3Mgd2hpY2ggaXMgcmVwcmVzZW50ZWQgYnkgTkFNRS4KICAgICAgVGhlIHJlc3VsdCBhcmUgd3JpdHRlbiB0byBNQkNTRVQgYW5kIFNCQ1NFVC4KICAgICAgRVFVSVZfQ0xBU1NfQUxMT0MgaXMgdGhlIGFsbG9jYXRlZCBzaXplIG9mIG1iY3NldC0+ZXF1aXZfY2xhc3NlcywKLSAgICAgaXMgYSBwb2ludGVyIGFyZ3VtZW50IHNpbnNlIHdlIG1heSB1cGRhdGUgaXQuICAqLworICAgICBpcyBhIHBvaW50ZXIgYXJndW1lbnQgc2luY2Ugd2UgbWF5IHVwZGF0ZSBpdC4gICovCiAKIHN0YXRpYyByZWdfZXJyY29kZV90CiAjaWZkZWYgUkVfRU5BQkxFX0kxOE4KQEAgLTM1MTUsNyArMzUxNSw3IEBACiAgICAgIEJ1aWxkIHRoZSBjaGFyYWN0ZXIgY2xhc3Mgd2hpY2ggaXMgcmVwcmVzZW50ZWQgYnkgTkFNRS4KICAgICAgVGhlIHJlc3VsdCBhcmUgd3JpdHRlbiB0byBNQkNTRVQgYW5kIFNCQ1NFVC4KICAgICAgQ0hBUl9DTEFTU19BTExPQyBpcyB0aGUgYWxsb2NhdGVkIHNpemUgb2YgbWJjc2V0LT5jaGFyX2NsYXNzZXMsCi0gICAgIGlzIGEgcG9pbnRlciBhcmd1bWVudCBzaW5zZSB3ZSBtYXkgdXBkYXRlIGl0LiAgKi8KKyAgICAgaXMgYSBwb2ludGVyIGFyZ3VtZW50IHNpbmNlIHdlIG1heSB1cGRhdGUgaXQuICAqLwogCiBzdGF0aWMgcmVnX2VycmNvZGVfdAogI2lmZGVmIFJFX0VOQUJMRV9JMThOCmRpZmYgLS1naXQgYS9jb21wYXQvcmVnZXgvcmVnZXhlYy5jIGIvY29tcGF0L3JlZ2V4L3JlZ2V4ZWMuYwppbmRleCAwMTk0OTY1Li5lYjVlMWQ0IDEwMDY0NAotLS0gYS9jb21wYXQvcmVnZXgvcmVnZXhlYy5jCisrKyBiL2NvbXBhdC9yZWdleC9yZWdleGVjLmMKQEAgLTQ1NSw3ICs0NTUsNyBAQAogCiAgIHJ2YWwgPSAwOwogCi0gIC8qIEkgaG9wZSB3ZSBuZWVkbid0IGZpbGwgdGhlciByZWdzIHdpdGggLTEncyB3aGVuIG5vIG1hdGNoIHdhcyBmb3VuZC4gICovCisgIC8qIEkgaG9wZSB3ZSBuZWVkbid0IGZpbGwgdGhlaXIgcmVncyB3aXRoIC0xJ3Mgd2hlbiBubyBtYXRjaCB3YXMgZm91bmQuICAqLwogICBpZiAocmVzdWx0ICE9IFJFR19OT0VSUk9SKQogICAgIHJ2YWwgPSAtMTsKICAgZWxzZSBpZiAocmVncyAhPSBOVUxMKQpAQCAtMTA3MSw3ICsxMDcxLDcgQEAKICAgIEZMX0xPTkdFU1RfTUFUQ0ggbWVhbnMgd2Ugd2FudCB0aGUgUE9TSVggbG9uZ2VzdCBtYXRjaGluZy4KICAgIElmIFBfTUFUQ0hfRklSU1QgaXMgbm90IE5VTEwsIGFuZCB0aGUgbWF0Y2ggZmFpbHMsIGl0IGlzIHNldCB0byB0aGUKICAgIG5leHQgcGxhY2Ugd2hlcmUgd2UgbWF5IHdhbnQgdG8gdHJ5IG1hdGNoaW5nLgotICAgTm90ZSB0aGF0IHRoZSBtYXRjaGVyIGFzc3VtZSB0aGF0IHRoZSBtYWNoaW5nIHN0YXJ0cyBmcm9tIHRoZSBjdXJyZW50CisgICBOb3RlIHRoYXQgdGhlIG1hdGNoZXIgYXNzdW1lIHRoYXQgdGhlIG1hdGNoaW5nIHN0YXJ0cyBmcm9tIHRoZSBjdXJyZW50CiAgICBpbmRleCBvZiB0aGUgYnVmZmVyLiAgKi8KIAogc3RhdGljIGludApAQCAtMjIzOSw3ICsyMjM5LDcgQEAKIAkJCSAgICBkZmEtPm5leHRzW25vZGVfaWR4XSkpCiAgICAgLyogVGhlIG5vZGUgY2FuJ3QgYWNjZXB0IHRoZSBgbXVsdGkgYnl0ZScsIG9yIHRoZQogICAgICAgIGRlc3RpbmF0aW9uIHdhcyBhbHJlYWR5IHRocm93biBhd2F5LCB0aGVuIHRoZSBub2RlCi0gICAgICAgY291bGQndCBhY2NlcHQgdGhlIGN1cnJlbnQgaW5wdXQgYG11bHRpIGJ5dGUnLiAgICovCisgICAgICAgY291bGRuJ3QgYWNjZXB0IHRoZSBjdXJyZW50IGlucHV0IGBtdWx0aSBieXRlJy4gICAqLwogICAgIG5hY2NlcHRlZCA9IDA7CiAgIC8qIE90aGVyd2lzZSwgaXQgaXMgc3VyZSB0aGF0IHRoZSBub2RlIGNvdWxkIGFjY2VwdAogICAgICBgbmFjY2VwdGVkJyBieXRlcyBpbnB1dC4gICovCkBAIC0yMzEzLDcgKzIzMTMsNyBAQAogfQogCiAvKiBVcGRhdGUgdGhlIHN0YXRlX2xvZyBpZiB3ZSBuZWVkICovCi1yZV9kZmFzdGF0ZV90ICoKK3N0YXRpYyByZV9kZmFzdGF0ZV90ICoKIGludGVybmFsX2Z1bmN0aW9uCiBtZXJnZV9zdGF0ZV93aXRoX2xvZyAocmVnX2VycmNvZGVfdCAqZXJyLCByZV9tYXRjaF9jb250ZXh0X3QgKm1jdHgsCiAJCSAgICAgIHJlX2RmYXN0YXRlX3QgKm5leHRfc3RhdGUpCkBAIC0yMzI2LDcgKzIzMjYsNyBAQAogICAgICAgbWN0eC0+c3RhdGVfbG9nW2N1cl9pZHhdID0gbmV4dF9zdGF0ZTsKICAgICAgIG1jdHgtPnN0YXRlX2xvZ190b3AgPSBjdXJfaWR4OwogICAgIH0KLSAgZWxzZSBpZiAobWN0eC0+c3RhdGVfbG9nW2N1cl9pZHhdID09IDApCisgIGVsc2UgaWYgKG1jdHgtPnN0YXRlX2xvZ1tjdXJfaWR4XSA9PSBOVUxMKQogICAgIHsKICAgICAgIG1jdHgtPnN0YXRlX2xvZ1tjdXJfaWR4XSA9IG5leHRfc3RhdGU7CiAgICAgfQpAQCAtMjM5Miw3ICsyMzkyLDcgQEAKIC8qIFNraXAgYnl0ZXMgaW4gdGhlIGlucHV0IHRoYXQgY29ycmVzcG9uZCB0byBwYXJ0IG9mIGEKICAgIG11bHRpLWJ5dGUgbWF0Y2gsIHRoZW4gbG9vayBpbiB0aGUgbG9nIGZvciBhIHN0YXRlCiAgICBmcm9tIHdoaWNoIHRvIHJlc3RhcnQgbWF0Y2hpbmcuICAqLwotcmVfZGZhc3RhdGVfdCAqCitzdGF0aWMgcmVfZGZhc3RhdGVfdCAqCiBpbnRlcm5hbF9mdW5jdGlvbgogZmluZF9yZWNvdmVyX3N0YXRlIChyZWdfZXJyY29kZV90ICplcnIsIHJlX21hdGNoX2NvbnRleHRfdCAqbWN0eCkKIHsKZGlmZiAtLWdpdCBhL2NvbXBhdC90ZXJtaW5hbC5jIGIvY29tcGF0L3Rlcm1pbmFsLmMKaW5kZXggOWI1ZTNkMS4uMzEzODk3ZCAxMDA2NDQKLS0tIGEvY29tcGF0L3Rlcm1pbmFsLmMKKysrIGIvY29tcGF0L3Rlcm1pbmFsLmMKQEAgLTMsNyArMyw3IEBACiAjaW5jbHVkZSAic2lnY2hhaW4uaCIKICNpbmNsdWRlICJzdHJidWYuaCIKIAotI2lmIGRlZmluZWQoSEFWRV9ERVZfVFRZKSB8fCBkZWZpbmVkKFdJTjMyKQorI2lmIGRlZmluZWQoSEFWRV9ERVZfVFRZKSB8fCBkZWZpbmVkKEdJVF9XSU5ET1dTX05BVElWRSkKIAogc3RhdGljIHZvaWQgcmVzdG9yZV90ZXJtKHZvaWQpOwogCkBAIC01Myw3ICs1Myw3IEBACiAJcmV0dXJuIC0xOwogfQogCi0jZWxpZiBkZWZpbmVkKFdJTjMyKQorI2VsaWYgZGVmaW5lZChHSVRfV0lORE9XU19OQVRJVkUpCiAKICNkZWZpbmUgSU5QVVRfUEFUSCAiQ09OSU4kIgogI2RlZmluZSBPVVRQVVRfUEFUSCAiQ09OT1VUJCIKZGlmZiAtLWdpdCBhL2NvbXBhdC91bnNldGVudi5jIGIvY29tcGF0L3Vuc2V0ZW52LmMKaW5kZXggZWIyOWY1ZS4uYmY1ZmQ3MCAxMDA2NDQKLS0tIGEvY29tcGF0L3Vuc2V0ZW52LmMKKysrIGIvY29tcGF0L3Vuc2V0ZW52LmMKQEAgLTIsNyArMiw5IEBACiAKIHZvaWQgZ2l0dW5zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUpCiB7CisjaWYgIWRlZmluZWQoX19NSU5HVzMyX18pCiAgICAgIGV4dGVybiBjaGFyICoqZW52aXJvbjsKKyNlbmRpZgogICAgICBpbnQgc3JjLCBkc3Q7CiAgICAgIHNpemVfdCBubWxuOwogCmRpZmYgLS1naXQgYS9jb21wYXQvd2luMzIuaCBiL2NvbXBhdC93aW4zMi5oCmluZGV4IDhjZTkxMDQuLmE5N2U4ODAgMTAwNjQ0Ci0tLSBhL2NvbXBhdC93aW4zMi5oCisrKyBiL2NvbXBhdC93aW4zMi5oCkBAIC0yLDcgKzIsNyBAQAogI2RlZmluZSBXSU4zMl9ICiAKIC8qIGNvbW1vbiBXaW4zMiBmdW5jdGlvbnMgZm9yIE1pbkdXIGFuZCBDeWd3aW4gKi8KLSNpZm5kZWYgV0lOMzIgICAgICAgICAvKiBOb3QgZGVmaW5lZCBieSBDeWd3aW4gKi8KKyNpZm5kZWYgR0lUX1dJTkRPV1NfTkFUSVZFCS8qIE5vdCBkZWZpbmVkIGZvciBDeWd3aW4gKi8KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvY29tcGF0L3dpbjMyL3B0aHJlYWQuYyBiL2NvbXBhdC93aW4zMi9wdGhyZWFkLmMKaW5kZXggMDEwZTg3NS4uZTE4ZjVjNiAxMDA2NDQKLS0tIGEvY29tcGF0L3dpbjMyL3B0aHJlYWQuYworKysgYi9jb21wYXQvd2luMzIvcHRocmVhZC5jCkBAIC01Miw3ICs1Miw3IEBACiAKIHB0aHJlYWRfdCBwdGhyZWFkX3NlbGYodm9pZCkKIHsKLQlwdGhyZWFkX3QgdCA9IHsgMCB9OworCXB0aHJlYWRfdCB0ID0geyBOVUxMIH07CiAJdC50aWQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKIAlyZXR1cm4gdDsKIH0KZGlmZiAtLWdpdCBhL2NvbXBhdC93aW4zMm1tYXAuYyBiL2NvbXBhdC93aW4zMm1tYXAuYwppbmRleCA2MWQyZWY4Li44MGE4YzlhIDEwMDY0NAotLS0gYS9jb21wYXQvd2luMzJtbWFwLmMKKysrIGIvY29tcGF0L3dpbjMybW1hcC5jCkBAIC0yMSw4ICsyMSw4IEBACiAJaWYgKCEoZmxhZ3MgJiBNQVBfUFJJVkFURSkpCiAJCWRpZSgiSW52YWxpZCB1c2FnZSBvZiBtbWFwIHdoZW4gYnVpbHQgd2l0aCBVU0VfV0lOMzJfTU1BUCIpOwogCi0JaG1hcCA9IENyZWF0ZUZpbGVNYXBwaW5nKChIQU5ETEUpX2dldF9vc2ZoYW5kbGUoZmQpLCAwLCBQQUdFX1dSSVRFQ09QWSwKLQkJMCwgMCwgMCk7CisJaG1hcCA9IENyZWF0ZUZpbGVNYXBwaW5nKChIQU5ETEUpX2dldF9vc2ZoYW5kbGUoZmQpLCBOVUxMLAorCQlQQUdFX1dSSVRFQ09QWSwgMCwgMCwgTlVMTCk7CiAKIAlpZiAoIWhtYXApCiAJCXJldHVybiBNQVBfRkFJTEVEOwpkaWZmIC0tZ2l0IGEvY29uZmlnLmMgYi9jb25maWcuYwppbmRleCBhZWZkODBiLi45ZjliZjBjIDEwMDY0NAotLS0gYS9jb25maWcuYworKysgYi9jb25maWcuYwpAQCAtMTAsMjAgKzEwLDY5IEBACiAjaW5jbHVkZSAic3RyYnVmLmgiCiAjaW5jbHVkZSAicXVvdGUuaCIKIAotdHlwZWRlZiBzdHJ1Y3QgY29uZmlnX2ZpbGUgewotCXN0cnVjdCBjb25maWdfZmlsZSAqcHJldjsKLQlGSUxFICpmOworc3RydWN0IGNvbmZpZ19zb3VyY2UgeworCXN0cnVjdCBjb25maWdfc291cmNlICpwcmV2OworCXVuaW9uIHsKKwkJRklMRSAqZmlsZTsKKwkJc3RydWN0IGNvbmZpZ19idWYgeworCQkJY29uc3QgY2hhciAqYnVmOworCQkJc2l6ZV90IGxlbjsKKwkJCXNpemVfdCBwb3M7CisJCX0gYnVmOworCX0gdTsKIAljb25zdCBjaGFyICpuYW1lOworCWludCBkaWVfb25fZXJyb3I7CiAJaW50IGxpbmVucjsKIAlpbnQgZW9mOwogCXN0cnVjdCBzdHJidWYgdmFsdWU7CiAJc3RydWN0IHN0cmJ1ZiB2YXI7Ci19IGNvbmZpZ19maWxlOwogCi1zdGF0aWMgY29uZmlnX2ZpbGUgKmNmOworCWludCAoKmRvX2ZnZXRjKShzdHJ1Y3QgY29uZmlnX3NvdXJjZSAqYyk7CisJaW50ICgqZG9fdW5nZXRjKShpbnQgYywgc3RydWN0IGNvbmZpZ19zb3VyY2UgKmNvbmYpOworCWxvbmcgKCpkb19mdGVsbCkoc3RydWN0IGNvbmZpZ19zb3VyY2UgKmMpOworfTsKKworc3RhdGljIHN0cnVjdCBjb25maWdfc291cmNlICpjZjsKIAogc3RhdGljIGludCB6bGliX2NvbXByZXNzaW9uX3NlZW47CiAKK3N0YXRpYyBpbnQgY29uZmlnX2ZpbGVfZmdldGMoc3RydWN0IGNvbmZpZ19zb3VyY2UgKmNvbmYpCit7CisJcmV0dXJuIGZnZXRjKGNvbmYtPnUuZmlsZSk7Cit9CisKK3N0YXRpYyBpbnQgY29uZmlnX2ZpbGVfdW5nZXRjKGludCBjLCBzdHJ1Y3QgY29uZmlnX3NvdXJjZSAqY29uZikKK3sKKwlyZXR1cm4gdW5nZXRjKGMsIGNvbmYtPnUuZmlsZSk7Cit9CisKK3N0YXRpYyBsb25nIGNvbmZpZ19maWxlX2Z0ZWxsKHN0cnVjdCBjb25maWdfc291cmNlICpjb25mKQoreworCXJldHVybiBmdGVsbChjb25mLT51LmZpbGUpOworfQorCisKK3N0YXRpYyBpbnQgY29uZmlnX2J1Zl9mZ2V0YyhzdHJ1Y3QgY29uZmlnX3NvdXJjZSAqY29uZikKK3sKKwlpZiAoY29uZi0+dS5idWYucG9zIDwgY29uZi0+dS5idWYubGVuKQorCQlyZXR1cm4gY29uZi0+dS5idWYuYnVmW2NvbmYtPnUuYnVmLnBvcysrXTsKKworCXJldHVybiBFT0Y7Cit9CisKK3N0YXRpYyBpbnQgY29uZmlnX2J1Zl91bmdldGMoaW50IGMsIHN0cnVjdCBjb25maWdfc291cmNlICpjb25mKQoreworCWlmIChjb25mLT51LmJ1Zi5wb3MgPiAwKQorCQlyZXR1cm4gY29uZi0+dS5idWYuYnVmWy0tY29uZi0+dS5idWYucG9zXTsKKworCXJldHVybiBFT0Y7Cit9CisKK3N0YXRpYyBsb25nIGNvbmZpZ19idWZfZnRlbGwoc3RydWN0IGNvbmZpZ19zb3VyY2UgKmNvbmYpCit7CisJcmV0dXJuIGNvbmYtPnUuYnVmLnBvczsKK30KKwogI2RlZmluZSBNQVhfSU5DTFVERV9ERVBUSCAxMAogc3RhdGljIGNvbnN0IGNoYXIgaW5jbHVkZV9kZXB0aF9hZHZpY2VbXSA9CiAiZXhjZWVkZWQgbWF4aW11bSBpbmNsdWRlIGRlcHRoICglZCkgd2hpbGUgaW5jbHVkaW5nXG4iCkBAIC01OCw3ICsxMDcsNyBAQAogCQlwYXRoID0gYnVmLmJ1ZjsKIAl9CiAKLQlpZiAoIWFjY2Vzc19vcl9kaWUocGF0aCwgUl9PSykpIHsKKwlpZiAoIWFjY2Vzc19vcl9kaWUocGF0aCwgUl9PSywgMCkpIHsKIAkJaWYgKCsraW5jLT5kZXB0aCA+IE1BWF9JTkNMVURFX0RFUFRIKQogCQkJZGllKGluY2x1ZGVfZGVwdGhfYWR2aWNlLCBNQVhfSU5DTFVERV9ERVBUSCwgcGF0aCwKIAkJCSAgICBjZiAmJiBjZi0+bmFtZSA/IGNmLT5uYW1lIDogInRoZSBjb21tYW5kIGxpbmUiKTsKQEAgLTE2OCwyNiArMjE3LDIxIEBACiAKIHN0YXRpYyBpbnQgZ2V0X25leHRfY2hhcih2b2lkKQogewotCWludCBjOwotCUZJTEUgKmY7CisJaW50IGMgPSBjZi0+ZG9fZmdldGMoY2YpOwogCi0JYyA9ICdcbic7Ci0JaWYgKGNmICYmICgoZiA9IGNmLT5mKSAhPSBOVUxMKSkgewotCQljID0gZmdldGMoZik7Ci0JCWlmIChjID09ICdccicpIHsKLQkJCS8qIERPUyBsaWtlIHN5c3RlbXMgKi8KLQkJCWMgPSBmZ2V0YyhmKTsKLQkJCWlmIChjICE9ICdcbicpIHsKLQkJCQl1bmdldGMoYywgZik7Ci0JCQkJYyA9ICdccic7Ci0JCQl9CisJaWYgKGMgPT0gJ1xyJykgeworCQkvKiBET1MgbGlrZSBzeXN0ZW1zICovCisJCWMgPSBjZi0+ZG9fZmdldGMoY2YpOworCQlpZiAoYyAhPSAnXG4nKSB7CisJCQljZi0+ZG9fdW5nZXRjKGMsIGNmKTsKKwkJCWMgPSAnXHInOwogCQl9Ci0JCWlmIChjID09ICdcbicpCi0JCQljZi0+bGluZW5yKys7Ci0JCWlmIChjID09IEVPRikgewotCQkJY2YtPmVvZiA9IDE7Ci0JCQljID0gJ1xuJzsKLQkJfQorCX0KKwlpZiAoYyA9PSAnXG4nKQorCQljZi0+bGluZW5yKys7CisJaWYgKGMgPT0gRU9GKSB7CisJCWNmLT5lb2YgPSAxOworCQljID0gJ1xuJzsKIAl9CiAJcmV0dXJuIGM7CiB9CkBAIC0zMzksNyArMzgzLDcgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgZ2l0X3BhcnNlX2ZpbGUoY29uZmlnX2ZuX3QgZm4sIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGdpdF9wYXJzZV9zb3VyY2UoY29uZmlnX2ZuX3QgZm4sIHZvaWQgKmRhdGEpCiB7CiAJaW50IGNvbW1lbnQgPSAwOwogCWludCBiYXNlbGVuID0gMDsKQEAgLTM5OSw3ICs0NDMsMTAgQEAKIAkJaWYgKGdldF92YWx1ZShmbiwgZGF0YSwgdmFyKSA8IDApCiAJCQlicmVhazsKIAl9Ci0JZGllKCJiYWQgY29uZmlnIGZpbGUgbGluZSAlZCBpbiAlcyIsIGNmLT5saW5lbnIsIGNmLT5uYW1lKTsKKwlpZiAoY2YtPmRpZV9vbl9lcnJvcikKKwkJZGllKCJiYWQgY29uZmlnIGZpbGUgbGluZSAlZCBpbiAlcyIsIGNmLT5saW5lbnIsIGNmLT5uYW1lKTsKKwllbHNlCisJCXJldHVybiBlcnJvcigiYmFkIGNvbmZpZyBmaWxlIGxpbmUgJWQgaW4gJXMiLCBjZi0+bGluZW5yLCBjZi0+bmFtZSk7CiB9CiAKIHN0YXRpYyBpbnQgcGFyc2VfdW5pdF9mYWN0b3IoY29uc3QgY2hhciAqZW5kLCB1aW50bWF4X3QgKnZhbCkKQEAgLTU2Niw3ICs2MTMsMjAgQEAKIAkJdHJ1c3RfY3RpbWUgPSBnaXRfY29uZmlnX2Jvb2wodmFyLCB2YWx1ZSk7CiAJCXJldHVybiAwOwogCX0KLQlpZiAoIXN0cmNtcCh2YXIsICJjb3JlLnN0YXRpbmZvIikpIHsKKwlpZiAoIXN0cmNtcCh2YXIsICJjb3JlLnN0YXRpbmZvIikgfHwKKwkgICAgIXN0cmNtcCh2YXIsICJjb3JlLmNoZWNrc3RhdCIpKSB7CisJCS8qCisJCSAqIE5FRURTV09SSzogc3RhdGluZm8gd2FzIGEgdHlwbyBpbiB2MS44LjIgdGhhdCBoYXMKKwkJICogbmV2ZXIgYmVlbiBhZHZlcnRpc2VkLiAgd2Ugd2lsbCByZW1vdmUgaXQgYXQgR2l0CisJCSAqIDIuMCBib3VuZGFyeS4KKwkJICovCisJCWlmICghc3RyY21wKHZhciwgImNvcmUuc3RhdGluZm8iKSkgeworCQkJc3RhdGljIGludCB3YXJuZWQ7CisJCQlpZiAoIXdhcm5lZCsrKSB7CisJCQkJd2FybmluZygiJ2NvcmUuc3RhdGluZm8nIHdpbGwgYmUgcmVtb3ZlZCBpbiBHaXQgMi4wOyAiCisJCQkJCSJ1c2UgJ2NvcmUuY2hlY2tzdGF0JyBpbnN0ZWFkLiIpOworCQkJfQorCQl9CiAJCWlmICghc3RyY2FzZWNtcCh2YWx1ZSwgImRlZmF1bHQiKSkKIAkJCWNoZWNrX3N0YXQgPSAxOwogCQllbHNlIGlmICghc3RyY2FzZWNtcCh2YWx1ZSwgIm1pbmltYWwiKSkKQEAgLTY3NSw5ICs3MzUsNiBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoIXN0cmNtcCh2YXIsICJjb3JlLmxvZ3BhY2thY2Nlc3MiKSkKLQkJcmV0dXJuIGdpdF9jb25maWdfc3RyaW5nKCZsb2dfcGFja19hY2Nlc3MsIHZhciwgdmFsdWUpOwotCiAJaWYgKCFzdHJjbXAodmFyLCAiY29yZS5hdXRvY3JsZiIpKSB7CiAJCWlmICh2YWx1ZSAmJiAhc3RyY2FzZWNtcCh2YWx1ZSwgImlucHV0IikpIHsKIAkJCWlmIChjb3JlX2VvbCA9PSBFT0xfQ1JMRikKQEAgLTg5Niw2ICs5NTMsMzMgQEAKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIEFsbCBzb3VyY2Ugc3BlY2lmaWMgZmllbGRzIGluIHRoZSB1bmlvbiwgZGllX29uX2Vycm9yLCBuYW1lIGFuZCB0aGUgY2FsbGJhY2tzCisgKiBmZ2V0YywgdW5nZXRjLCBmdGVsbCBvZiB0b3AgbmVlZCB0byBiZSBpbml0aWFsaXplZCBiZWZvcmUgY2FsbGluZworICogdGhpcyBmdW5jdGlvbi4KKyAqLworc3RhdGljIGludCBkb19jb25maWdfZnJvbShzdHJ1Y3QgY29uZmlnX3NvdXJjZSAqdG9wLCBjb25maWdfZm5fdCBmbiwgdm9pZCAqZGF0YSkKK3sKKwlpbnQgcmV0OworCisJLyogcHVzaCBjb25maWctZmlsZSBwYXJzaW5nIHN0YXRlIHN0YWNrICovCisJdG9wLT5wcmV2ID0gY2Y7CisJdG9wLT5saW5lbnIgPSAxOworCXRvcC0+ZW9mID0gMDsKKwlzdHJidWZfaW5pdCgmdG9wLT52YWx1ZSwgMTAyNCk7CisJc3RyYnVmX2luaXQoJnRvcC0+dmFyLCAxMDI0KTsKKwljZiA9IHRvcDsKKworCXJldCA9IGdpdF9wYXJzZV9zb3VyY2UoZm4sIGRhdGEpOworCisJLyogcG9wIGNvbmZpZy1maWxlIHBhcnNpbmcgc3RhdGUgc3RhY2sgKi8KKwlzdHJidWZfcmVsZWFzZSgmdG9wLT52YWx1ZSk7CisJc3RyYnVmX3JlbGVhc2UoJnRvcC0+dmFyKTsKKwljZiA9IHRvcC0+cHJldjsKKworCXJldHVybiByZXQ7Cit9CisKIGludCBnaXRfY29uZmlnX2Zyb21fZmlsZShjb25maWdfZm5fdCBmbiwgY29uc3QgY2hhciAqZmlsZW5hbWUsIHZvaWQgKmRhdGEpCiB7CiAJaW50IHJldDsKQEAgLTkwMywzMCArOTg3LDc0IEBACiAKIAlyZXQgPSAtMTsKIAlpZiAoZikgewotCQljb25maWdfZmlsZSB0b3A7CisJCXN0cnVjdCBjb25maWdfc291cmNlIHRvcDsKIAotCQkvKiBwdXNoIGNvbmZpZy1maWxlIHBhcnNpbmcgc3RhdGUgc3RhY2sgKi8KLQkJdG9wLnByZXYgPSBjZjsKLQkJdG9wLmYgPSBmOworCQl0b3AudS5maWxlID0gZjsKIAkJdG9wLm5hbWUgPSBmaWxlbmFtZTsKLQkJdG9wLmxpbmVuciA9IDE7Ci0JCXRvcC5lb2YgPSAwOwotCQlzdHJidWZfaW5pdCgmdG9wLnZhbHVlLCAxMDI0KTsKLQkJc3RyYnVmX2luaXQoJnRvcC52YXIsIDEwMjQpOwotCQljZiA9ICZ0b3A7CisJCXRvcC5kaWVfb25fZXJyb3IgPSAxOworCQl0b3AuZG9fZmdldGMgPSBjb25maWdfZmlsZV9mZ2V0YzsKKwkJdG9wLmRvX3VuZ2V0YyA9IGNvbmZpZ19maWxlX3VuZ2V0YzsKKwkJdG9wLmRvX2Z0ZWxsID0gY29uZmlnX2ZpbGVfZnRlbGw7CiAKLQkJcmV0ID0gZ2l0X3BhcnNlX2ZpbGUoZm4sIGRhdGEpOwotCi0JCS8qIHBvcCBjb25maWctZmlsZSBwYXJzaW5nIHN0YXRlIHN0YWNrICovCi0JCXN0cmJ1Zl9yZWxlYXNlKCZ0b3AudmFsdWUpOwotCQlzdHJidWZfcmVsZWFzZSgmdG9wLnZhcik7Ci0JCWNmID0gdG9wLnByZXY7CisJCXJldCA9IGRvX2NvbmZpZ19mcm9tKCZ0b3AsIGZuLCBkYXRhKTsKIAogCQlmY2xvc2UoZik7CiAJfQogCXJldHVybiByZXQ7CiB9CiAKK2ludCBnaXRfY29uZmlnX2Zyb21fYnVmKGNvbmZpZ19mbl90IGZuLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpidWYsCisJCQlzaXplX3QgbGVuLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBjb25maWdfc291cmNlIHRvcDsKKworCXRvcC51LmJ1Zi5idWYgPSBidWY7CisJdG9wLnUuYnVmLmxlbiA9IGxlbjsKKwl0b3AudS5idWYucG9zID0gMDsKKwl0b3AubmFtZSA9IG5hbWU7CisJdG9wLmRpZV9vbl9lcnJvciA9IDA7CisJdG9wLmRvX2ZnZXRjID0gY29uZmlnX2J1Zl9mZ2V0YzsKKwl0b3AuZG9fdW5nZXRjID0gY29uZmlnX2J1Zl91bmdldGM7CisJdG9wLmRvX2Z0ZWxsID0gY29uZmlnX2J1Zl9mdGVsbDsKKworCXJldHVybiBkb19jb25maWdfZnJvbSgmdG9wLCBmbiwgZGF0YSk7Cit9CisKK3N0YXRpYyBpbnQgZ2l0X2NvbmZpZ19mcm9tX2Jsb2Jfc2hhMShjb25maWdfZm5fdCBmbiwKKwkJCQkgICAgIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAorCQkJCSAgICAgdm9pZCAqZGF0YSkKK3sKKwllbnVtIG9iamVjdF90eXBlIHR5cGU7CisJY2hhciAqYnVmOworCXVuc2lnbmVkIGxvbmcgc2l6ZTsKKwlpbnQgcmV0OworCisJYnVmID0gcmVhZF9zaGExX2ZpbGUoc2hhMSwgJnR5cGUsICZzaXplKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIGVycm9yKCJ1bmFibGUgdG8gbG9hZCBjb25maWcgYmxvYiBvYmplY3QgJyVzJyIsIG5hbWUpOworCWlmICh0eXBlICE9IE9CSl9CTE9CKSB7CisJCWZyZWUoYnVmKTsKKwkJcmV0dXJuIGVycm9yKCJyZWZlcmVuY2UgJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGJsb2IiLCBuYW1lKTsKKwl9CisKKwlyZXQgPSBnaXRfY29uZmlnX2Zyb21fYnVmKGZuLCBuYW1lLCBidWYsIHNpemUsIGRhdGEpOworCWZyZWUoYnVmKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZ2l0X2NvbmZpZ19mcm9tX2Jsb2JfcmVmKGNvbmZpZ19mbl90IGZuLAorCQkJCSAgICBjb25zdCBjaGFyICpuYW1lLAorCQkJCSAgICB2b2lkICpkYXRhKQoreworCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CisKKwlpZiAoZ2V0X3NoYTEobmFtZSwgc2hhMSkgPCAwKQorCQlyZXR1cm4gZXJyb3IoInVuYWJsZSB0byByZXNvbHZlIGNvbmZpZyBibG9iICclcyciLCBuYW1lKTsKKwlyZXR1cm4gZ2l0X2NvbmZpZ19mcm9tX2Jsb2Jfc2hhMShmbiwgbmFtZSwgc2hhMSwgZGF0YSk7Cit9CisKIGNvbnN0IGNoYXIgKmdpdF9ldGNfZ2l0Y29uZmlnKHZvaWQpCiB7CiAJc3RhdGljIGNvbnN0IGNoYXIgKnN5c3RlbV93aWRlOwpAQCAtOTU0LDIzICsxMDgyLDIzIEBACiAKIAlob21lX2NvbmZpZ19wYXRocygmdXNlcl9jb25maWcsICZ4ZGdfY29uZmlnLCAiY29uZmlnIik7CiAKLQlpZiAoZ2l0X2NvbmZpZ19zeXN0ZW0oKSAmJiAhYWNjZXNzX29yX2RpZShnaXRfZXRjX2dpdGNvbmZpZygpLCBSX09LKSkgeworCWlmIChnaXRfY29uZmlnX3N5c3RlbSgpICYmICFhY2Nlc3Nfb3JfZGllKGdpdF9ldGNfZ2l0Y29uZmlnKCksIFJfT0ssIDApKSB7CiAJCXJldCArPSBnaXRfY29uZmlnX2Zyb21fZmlsZShmbiwgZ2l0X2V0Y19naXRjb25maWcoKSwKIAkJCQkJICAgIGRhdGEpOwogCQlmb3VuZCArPSAxOwogCX0KIAotCWlmICh4ZGdfY29uZmlnICYmICFhY2Nlc3Nfb3JfZGllKHhkZ19jb25maWcsIFJfT0spKSB7CisJaWYgKHhkZ19jb25maWcgJiYgIWFjY2Vzc19vcl9kaWUoeGRnX2NvbmZpZywgUl9PSywgQUNDRVNTX0VBQ0NFU19PSykpIHsKIAkJcmV0ICs9IGdpdF9jb25maWdfZnJvbV9maWxlKGZuLCB4ZGdfY29uZmlnLCBkYXRhKTsKIAkJZm91bmQgKz0gMTsKIAl9CiAKLQlpZiAodXNlcl9jb25maWcgJiYgIWFjY2Vzc19vcl9kaWUodXNlcl9jb25maWcsIFJfT0spKSB7CisJaWYgKHVzZXJfY29uZmlnICYmICFhY2Nlc3Nfb3JfZGllKHVzZXJfY29uZmlnLCBSX09LLCBBQ0NFU1NfRUFDQ0VTX09LKSkgewogCQlyZXQgKz0gZ2l0X2NvbmZpZ19mcm9tX2ZpbGUoZm4sIHVzZXJfY29uZmlnLCBkYXRhKTsKIAkJZm91bmQgKz0gMTsKIAl9CiAKLQlpZiAocmVwb19jb25maWcgJiYgIWFjY2Vzc19vcl9kaWUocmVwb19jb25maWcsIFJfT0spKSB7CisJaWYgKHJlcG9fY29uZmlnICYmICFhY2Nlc3Nfb3JfZGllKHJlcG9fY29uZmlnLCBSX09LLCAwKSkgewogCQlyZXQgKz0gZ2l0X2NvbmZpZ19mcm9tX2ZpbGUoZm4sIHJlcG9fY29uZmlnLCBkYXRhKTsKIAkJZm91bmQgKz0gMTsKIAl9CkBAIC05OTIsNyArMTEyMCw5IEBACiB9CiAKIGludCBnaXRfY29uZmlnX3dpdGhfb3B0aW9ucyhjb25maWdfZm5fdCBmbiwgdm9pZCAqZGF0YSwKLQkJCSAgICBjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IHJlc3BlY3RfaW5jbHVkZXMpCisJCQkgICAgY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkgICAgY29uc3QgY2hhciAqYmxvYl9yZWYsCisJCQkgICAgaW50IHJlc3BlY3RfaW5jbHVkZXMpCiB7CiAJY2hhciAqcmVwb19jb25maWcgPSBOVUxMOwogCWludCByZXQ7CkBAIC0xMDExLDYgKzExNDEsOCBAQAogCSAqLwogCWlmIChmaWxlbmFtZSkKIAkJcmV0dXJuIGdpdF9jb25maWdfZnJvbV9maWxlKGZuLCBmaWxlbmFtZSwgZGF0YSk7CisJZWxzZSBpZiAoYmxvYl9yZWYpCisJCXJldHVybiBnaXRfY29uZmlnX2Zyb21fYmxvYl9yZWYoZm4sIGJsb2JfcmVmLCBkYXRhKTsKIAogCXJlcG9fY29uZmlnID0gZ2l0X3BhdGhkdXAoImNvbmZpZyIpOwogCXJldCA9IGdpdF9jb25maWdfZWFybHkoZm4sIGRhdGEsIHJlcG9fY29uZmlnKTsKQEAgLTEwMjEsNyArMTE1Myw3IEBACiAKIGludCBnaXRfY29uZmlnKGNvbmZpZ19mbl90IGZuLCB2b2lkICpkYXRhKQogewotCXJldHVybiBnaXRfY29uZmlnX3dpdGhfb3B0aW9ucyhmbiwgZGF0YSwgTlVMTCwgMSk7CisJcmV0dXJuIGdpdF9jb25maWdfd2l0aF9vcHRpb25zKGZuLCBkYXRhLCBOVUxMLCBOVUxMLCAxKTsKIH0KIAogLyoKQEAgLTEwNTMsNyArMTE4NSw2IEBACiB7CiAJY29uc3QgY2hhciAqZXA7CiAJc2l6ZV90IHNlY3Rpb25fbGVuOwotCUZJTEUgKmYgPSBjZi0+ZjsKIAogCXN3aXRjaCAoc3RvcmUuc3RhdGUpIHsKIAljYXNlIEtFWV9TRUVOOgpAQCAtMTA2NSw3ICsxMTk2LDcgQEAKIAkJCQlyZXR1cm4gMTsKIAkJCX0KIAotCQkJc3RvcmUub2Zmc2V0W3N0b3JlLnNlZW5dID0gZnRlbGwoZik7CisJCQlzdG9yZS5vZmZzZXRbc3RvcmUuc2Vlbl0gPSBjZi0+ZG9fZnRlbGwoY2YpOwogCQkJc3RvcmUuc2VlbisrOwogCQl9CiAJCWJyZWFrOwpAQCAtMTA5MiwxOSArMTIyMywxOSBAQAogCQkgKiBEbyBub3QgaW5jcmVtZW50IG1hdGNoZXM6IHRoaXMgaXMgbm8gbWF0Y2gsIGJ1dCB3ZQogCQkgKiBqdXN0IG1hZGUgc3VyZSB3ZSBhcmUgaW4gdGhlIGRlc2lyZWQgc2VjdGlvbi4KIAkJICovCi0JCXN0b3JlLm9mZnNldFtzdG9yZS5zZWVuXSA9IGZ0ZWxsKGYpOworCQlzdG9yZS5vZmZzZXRbc3RvcmUuc2Vlbl0gPSBjZi0+ZG9fZnRlbGwoY2YpOwogCQkvKiBmYWxsdGhydSAqLwogCWNhc2UgU0VDVElPTl9FTkRfU0VFTjoKIAljYXNlIFNUQVJUOgogCQlpZiAobWF0Y2hlcyhrZXksIHZhbHVlKSkgewotCQkJc3RvcmUub2Zmc2V0W3N0b3JlLnNlZW5dID0gZnRlbGwoZik7CisJCQlzdG9yZS5vZmZzZXRbc3RvcmUuc2Vlbl0gPSBjZi0+ZG9fZnRlbGwoY2YpOwogCQkJc3RvcmUuc3RhdGUgPSBLRVlfU0VFTjsKIAkJCXN0b3JlLnNlZW4rKzsKIAkJfSBlbHNlIHsKIAkJCWlmIChzdHJyY2hyKGtleSwgJy4nKSAtIGtleSA9PSBzdG9yZS5iYXNlbGVuICYmCiAJCQkgICAgICAhc3RybmNtcChrZXksIHN0b3JlLmtleSwgc3RvcmUuYmFzZWxlbikpIHsKIAkJCQkJc3RvcmUuc3RhdGUgPSBTRUNUSU9OX1NFRU47Ci0JCQkJCXN0b3JlLm9mZnNldFtzdG9yZS5zZWVuXSA9IGZ0ZWxsKGYpOworCQkJCQlzdG9yZS5vZmZzZXRbc3RvcmUuc2Vlbl0gPSBjZi0+ZG9fZnRlbGwoY2YpOwogCQkJfQogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvY29uZmlnLm1hay51bmFtZSBiL2NvbmZpZy5tYWsudW5hbWUKaW5kZXggZDc4ZmQzZC4uN2Q2MTUzMSAxMDA2NDQKLS0tIGEvY29uZmlnLm1hay51bmFtZQorKysgYi9jb25maWcubWFrLnVuYW1lCkBAIC0xNTgsMTkgKzE1OCwxOCBAQAogCQlOT19TWU1MSU5LX0hFQUQgPSBZZXNQbGVhc2UKIAkJTk9fSVBWNiA9IFllc1BsZWFzZQogCQlPTERfSUNPTlYgPSBVbmZvcnR1bmF0ZWx5WWVzCi0JCUNZR1dJTl9WMTVfV0lOMzJBUEkgPSBZZXNQbGVhc2UKKwkJTk9fVEhSRUFEX1NBRkVfUFJFQUQgPSBZZXNQbGVhc2UKKwkJIyBUaGVyZSBhcmUgY29uZmxpY3RpbmcgcmVwb3J0cyBhYm91dCB0aGlzLgorCQkjIE9uIHNvbWUgYm94ZXMgTk9fTU1BUCBpcyBuZWVkZWQsIGFuZCBub3Qgc28gZWxzZXdoZXJlLgorCQkjIFRyeSBjb21tZW50aW5nIHRoaXMgb3V0IGlmIHlvdSBzdXNwZWN0IE1NQVAgaXMgbW9yZSBlZmZpY2llbnQKKwkJTk9fTU1BUCA9IFllc1BsZWFzZQorCWVsc2UKKwkJTk9fUkVHRVggPSBVbmZvcnR1bmF0ZWx5WWVzCiAJZW5kaWYKLQlOT19USFJFQURfU0FGRV9QUkVBRCA9IFllc1BsZWFzZQogCU5FRURTX0xJQklDT05WID0gWWVzUGxlYXNlCiAJTk9fRkFTVF9XT1JLSU5HX0RJUkVDVE9SWSA9IFVuZm9ydHVuYXRlbHlZZXMKLQlOT19UUlVTVEFCTEVfRklMRU1PREUgPSBVbmZvcnR1bmF0ZWx5WWVzCiAJTk9fU1RfQkxPQ0tTX0lOX1NUUlVDVF9TVEFUID0gWWVzUGxlYXNlCi0JIyBUaGVyZSBhcmUgY29uZmxpY3RpbmcgcmVwb3J0cyBhYm91dCB0aGlzLgotCSMgT24gc29tZSBib3hlcyBOT19NTUFQIGlzIG5lZWRlZCwgYW5kIG5vdCBzbyBlbHNld2hlcmUuCi0JIyBUcnkgY29tbWVudGluZyB0aGlzIG91dCBpZiB5b3Ugc3VzcGVjdCBNTUFQIGlzIG1vcmUgZWZmaWNpZW50Ci0JTk9fTU1BUCA9IFllc1BsZWFzZQogCVggPSAuZXhlCi0JQ09NUEFUX09CSlMgKz0gY29tcGF0L2N5Z3dpbi5vCiAJVU5SRUxJQUJMRV9GU1RBVCA9IFVuZm9ydHVuYXRlbHlZZXMKIAlTUEFSU0VfRkxBR1MgPSAtaXN5c3RlbSAvdXNyL2luY2x1ZGUvdzMyYXBpIC1Xbm8tb25lLWJpdC1zaWduZWQtYml0ZmllbGQKIGVuZGlmCkBAIC00ODAsNyArNDc5LDYgQEAKIAlOT19GTk1BVENIID0gWWVzUGxlYXNlCiAJTk9fTUVNTUVNID0gWWVzUGxlYXNlCiAJTkVFRFNfTElCSUNPTlYgPSBZZXNQbGVhc2UKLQlPTERfSUNPTlYgPSBZZXNQbGVhc2UKIAlOT19TVFJUT1VNQVggPSBZZXNQbGVhc2UKIAlOT19NS0RURU1QID0gWWVzUGxlYXNlCiAJTk9fTUtTVEVNUFMgPSBZZXNQbGVhc2UKQEAgLTUwMCwxMyArNDk4LDE3IEBACiAJTk9fSU5FVF9QVE9OID0gWWVzUGxlYXNlCiAJTk9fSU5FVF9OVE9QID0gWWVzUGxlYXNlCiAJTk9fUE9TSVhfR09PRElFUyA9IFVuZm9ydHVuYXRlbHlZZXMKKwlERUZBVUxUX0hFTFBfRk9STUFUID0gaHRtbAogCUNPTVBBVF9DRkxBR1MgKz0gLURfX1VTRV9NSU5HV19BQ0NFU1MgLUROT0dESSAtSWNvbXBhdCAtSWNvbXBhdC93aW4zMgogCUNPTVBBVF9DRkxBR1MgKz0gLURTVFJJUF9FWFRFTlNJT049XCIuZXhlXCIKIAlDT01QQVRfT0JKUyArPSBjb21wYXQvbWluZ3cubyBjb21wYXQvd2luYW5zaS5vIFwKIAkJY29tcGF0L3dpbjMyL3B0aHJlYWQubyBjb21wYXQvd2luMzIvc3lzbG9nLm8gXAogCQljb21wYXQvd2luMzIvZGlyZW50Lm8KKwlCQVNJQ19MREZMQUdTICs9IC1XbCwtLWxhcmdlLWFkZHJlc3MtYXdhcmUKIAlFWFRMSUJTICs9IC1sd3MyXzMyCisJR0lUTElCUyArPSBnaXQucmVzCiAJUFRIUkVBRF9MSUJTID0KKwlSQyA9IHdpbmRyZXMgLU8gY29mZgogCU5BVElWRV9DUkxGID0gWWVzUGxlYXNlCiAJWCA9IC5leGUKIAlTUEFSU0VfRkxBR1MgPSAtV25vLW9uZS1iaXQtc2lnbmVkLWJpdGZpZWxkCkBAIC01MTgsNiArNTIwLDcgQEAKIAlOT19SX1RPX0dDQ19MSU5LRVIgPSBZZXNQbGVhc2UKIAlJTlRFUk5BTF9RU09SVCA9IFllc1BsZWFzZQogCUhBVkVfTElCQ0hBUlNFVF9IID0gWWVzUGxlYXNlCisJTk9fR0VUVEVYVCA9IFllc1BsZWFzZQogZWxzZQogCU5PX0NVUkwgPSBZZXNQbGVhc2UKIGVuZGlmCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggZjM0NjJkOS4uMmY0MzM5MyAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMTkzLDcgKzE5Myw3IEBACiAgIFtGTEFHUyBpcyB0aGUgdmFsdWUgdG8gcGFzcyB0byB0aGUgY29tcGlsZXIgdG8gZW5hYmxlIFBPU0lYIFRocmVhZHMuXQogICBbVGhlIGRlZmF1bHQgaWYgRkxBR1MgaXMgbm90IHNwZWNpZmllZCBpcyB0byB0cnkgZmlyc3QgLXB0aHJlYWRdCiAgIFthbmQgdGhlbiAtbHB0aHJlYWQuXQotICBbLS13aXRob3V0LXB0aHJlYWRzIHdpbGwgZGlzYWJsZSB0aHJlYWRpbmcuXSldLAorICBbLS1kaXNhYmxlLXB0aHJlYWRzIHdpbGwgZGlzYWJsZSB0aHJlYWRpbmcuXSldLAogWwogaWYgdGVzdCAieCRlbmFibGV2YWwiID0gInh5ZXMiOyB0aGVuCiAgICBBQ19NU0dfTk9USUNFKFtXaWxsIHRyeSAtcHRocmVhZCB0aGVuIC1scHRocmVhZCB0byBlbmFibGUgUE9TSVggVGhyZWFkc10pCmRpZmYgLS1naXQgYS9jb25uZWN0LmMgYi9jb25uZWN0LmMKaW5kZXggZjU3ZWZkMC4uYTA3ODNkNCAxMDA2NDQKLS0tIGEvY29ubmVjdC5jCisrKyBiL2Nvbm5lY3QuYwpAQCAtNTUxLDggKzU1MSwxMSBAQAogCXBhdGggPSBzdHJjaHIoZW5kLCBjKTsKIAlpZiAocGF0aCAmJiAhaGFzX2Rvc19kcml2ZV9wcmVmaXgoZW5kKSkgewogCQlpZiAoYyA9PSAnOicpIHsKLQkJCXByb3RvY29sID0gUFJPVE9fU1NIOwotCQkJKnBhdGgrKyA9ICdcMCc7CisJCQlpZiAocGF0aCA8IHN0cmNocm51bChob3N0LCAnLycpKSB7CisJCQkJcHJvdG9jb2wgPSBQUk9UT19TU0g7CisJCQkJKnBhdGgrKyA9ICdcMCc7CisJCQl9IGVsc2UgLyogJy8nIGluIHRoZSBob3N0IHBhcnQsIGFzc3VtZSBsb2NhbCBwYXRoICovCisJCQkJcGF0aCA9IGVuZDsKIAkJfQogCX0gZWxzZQogCQlwYXRoID0gZW5kOwpkaWZmIC0tZ2l0IGEvY29ubmVjdGVkLmMgYi9jb25uZWN0ZWQuYwppbmRleCAxZTg5YzFjLi5mYWU4ZDY0IDEwMDY0NAotLS0gYS9jb25uZWN0ZWQuYworKysgYi9jb25uZWN0ZWQuYwpAQCAtMiw3ICsyLDEyIEBACiAjaW5jbHVkZSAicnVuLWNvbW1hbmQuaCIKICNpbmNsdWRlICJzaWdjaGFpbi5oIgogI2luY2x1ZGUgImNvbm5lY3RlZC5oIgorI2luY2x1ZGUgInRyYW5zcG9ydC5oIgogCitpbnQgY2hlY2tfZXZlcnl0aGluZ19jb25uZWN0ZWQoc2hhMV9pdGVyYXRlX2ZuIGZuLCBpbnQgcXVpZXQsIHZvaWQgKmNiX2RhdGEpCit7CisJcmV0dXJuIGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkX3dpdGhfdHJhbnNwb3J0KGZuLCBxdWlldCwgY2JfZGF0YSwgTlVMTCk7Cit9CiAvKgogICogSWYgd2UgZmVlZCBhbGwgdGhlIGNvbW1pdHMgd2Ugd2FudCB0byB2ZXJpZnkgdG8gdGhpcyBjb21tYW5kCiAgKgpAQCAtMTQsNyArMTksMTAgQEAKICAqCiAgKiBSZXR1cm5zIDAgaWYgZXZlcnl0aGluZyBpcyBjb25uZWN0ZWQsIG5vbi16ZXJvIG90aGVyd2lzZS4KICAqLwotaW50IGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkKHNoYTFfaXRlcmF0ZV9mbiBmbiwgaW50IHF1aWV0LCB2b2lkICpjYl9kYXRhKQoraW50IGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkX3dpdGhfdHJhbnNwb3J0KHNoYTFfaXRlcmF0ZV9mbiBmbiwKKwkJCQkJICAgICAgaW50IHF1aWV0LAorCQkJCQkgICAgICB2b2lkICpjYl9kYXRhLAorCQkJCQkgICAgICBzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQpCiB7CiAJc3RydWN0IGNoaWxkX3Byb2Nlc3MgcmV2X2xpc3Q7CiAJY29uc3QgY2hhciAqYXJndltdID0geyJyZXYtbGlzdCIsICItLW9iamVjdHMiLApAQCAtMjIsMTAgKzMwLDIzIEBACiAJY2hhciBjb21taXRbNDFdOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CiAJaW50IGVyciA9IDA7CisJc3RydWN0IHBhY2tlZF9naXQgKm5ld19wYWNrID0gTlVMTDsKIAogCWlmIChmbihjYl9kYXRhLCBzaGExKSkKIAkJcmV0dXJuIGVycjsKIAorCWlmICh0cmFuc3BvcnQgJiYgdHJhbnNwb3J0LT5zbWFydF9vcHRpb25zICYmCisJICAgIHRyYW5zcG9ydC0+c21hcnRfb3B0aW9ucy0+c2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCAmJgorCSAgICB0cmFuc3BvcnQtPnBhY2tfbG9ja2ZpbGUgJiYKKwkgICAgIXN1ZmZpeGNtcCh0cmFuc3BvcnQtPnBhY2tfbG9ja2ZpbGUsICIua2VlcCIpKSB7CisJCXN0cnVjdCBzdHJidWYgaWR4X2ZpbGUgPSBTVFJCVUZfSU5JVDsKKwkJc3RyYnVmX2FkZHN0cigmaWR4X2ZpbGUsIHRyYW5zcG9ydC0+cGFja19sb2NrZmlsZSk7CisJCXN0cmJ1Zl9zZXRsZW4oJmlkeF9maWxlLCBpZHhfZmlsZS5sZW4gLSA1KTsgLyogIi5rZWVwIiAqLworCQlzdHJidWZfYWRkc3RyKCZpZHhfZmlsZSwgIi5pZHgiKTsKKwkJbmV3X3BhY2sgPSBhZGRfcGFja2VkX2dpdChpZHhfZmlsZS5idWYsIGlkeF9maWxlLmxlbiwgMSk7CisJCXN0cmJ1Zl9yZWxlYXNlKCZpZHhfZmlsZSk7CisJfQorCiAJaWYgKHF1aWV0KQogCQlhcmd2WzVdID0gIi0tcXVpZXQiOwogCkBAIC00Miw2ICs2MywxNyBAQAogCiAJY29tbWl0WzQwXSA9ICdcbic7CiAJZG8geworCQkvKgorCQkgKiBJZiBpbmRleC1wYWNrIGFscmVhZHkgY2hlY2tlZCB0aGF0OgorCQkgKiAtIHRoZXJlIGFyZSBubyBkYW5nbGluZyBwb2ludGVycyBpbiB0aGUgbmV3IHBhY2sKKwkJICogLSB0aGUgcGFjayBpcyBzZWxmIGNvbnRhaW5lZAorCQkgKiBUaGVuIGlmIHRoZSB1cGRhdGVkIHJlZiBpcyBpbiB0aGUgbmV3IHBhY2ssIHRoZW4gd2UKKwkJICogYXJlIHN1cmUgdGhlIHJlZiBpcyBnb29kIGFuZCBub3Qgc2VuZGluZyBpdCB0bworCQkgKiByZXYtbGlzdCBmb3IgdmVyaWZpY2F0aW9uLgorCQkgKi8KKwkJaWYgKG5ld19wYWNrICYmIGZpbmRfcGFja19lbnRyeV9vbmUoc2hhMSwgbmV3X3BhY2spKQorCQkJY29udGludWU7CisKIAkJbWVtY3B5KGNvbW1pdCwgc2hhMV90b19oZXgoc2hhMSksIDQwKTsKIAkJaWYgKHdyaXRlX2luX2Z1bGwocmV2X2xpc3QuaW4sIGNvbW1pdCwgNDEpIDwgMCkgewogCQkJaWYgKGVycm5vICE9IEVQSVBFICYmIGVycm5vICE9IEVJTlZBTCkKZGlmZiAtLWdpdCBhL2Nvbm5lY3RlZC5oIGIvY29ubmVjdGVkLmgKaW5kZXggN2U0NTg1YS4uMGIwNjBiNyAxMDA2NDQKLS0tIGEvY29ubmVjdGVkLmgKKysrIGIvY29ubmVjdGVkLmgKQEAgLTEsNiArMSw4IEBACiAjaWZuZGVmIENPTk5FQ1RFRF9ICiAjZGVmaW5lIENPTk5FQ1RFRF9ICiAKK3N0cnVjdCB0cmFuc3BvcnQ7CisKIC8qCiAgKiBUYWtlIGNhbGxiYWNrIGRhdGEsIGFuZCByZXR1cm4gbmV4dCBvYmplY3QgbmFtZSBpbiB0aGUgYnVmZmVyLgogICogV2hlbiBjYWxsZWQgYWZ0ZXIgcmV0dXJuaW5nIHRoZSBuYW1lIGZvciB0aGUgbGFzdCBvYmplY3QsIHJldHVybiAtMQpAQCAtMTYsNSArMTgsOCBAQAogICogUmV0dXJuIDAgaWYgT2ssIG5vbiB6ZXJvIG90aGVyd2lzZSAoaS5lLiBzb21lIG1pc3Npbmcgb2JqZWN0cykKICAqLwogZXh0ZXJuIGludCBjaGVja19ldmVyeXRoaW5nX2Nvbm5lY3RlZChzaGExX2l0ZXJhdGVfZm4sIGludCBxdWlldCwgdm9pZCAqY2JfZGF0YSk7CitleHRlcm4gaW50IGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkX3dpdGhfdHJhbnNwb3J0KHNoYTFfaXRlcmF0ZV9mbiwgaW50IHF1aWV0LAorCQkJCQkJICAgICB2b2lkICpjYl9kYXRhLAorCQkJCQkJICAgICBzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQpOwogCiAjZW5kaWYgLyogQ09OTkVDVEVEX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYmxhbWV2aWV3L1JFQURNRSBiL2NvbnRyaWIvYmxhbWV2aWV3L1JFQURNRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFkYTVjZS4uMDAwMDAwMAotLS0gYS9jb250cmliL2JsYW1ldmlldy9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVRoaXMgaXMgYSBzYW1wbGUgcHJvZ3JhbSB0byB1c2UgJ2dpdC1ibGFtZSAtLWluY3JlbWVudGFsJywgYmFzZWQKLW9uIHRoaXMgbWVzc2FnZS4KLQotRnJvbTogSmVmZiBLaW5nIDxwZWZmQHBlZmYubmV0PgotU3ViamVjdDogUmU6IE1vcmUgcHJlY2lzZSB0YWcgZm9sbG93aW5nCi1UbzogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgotQ2M6IGdpdEB2Z2VyLmtlcm5lbC5vcmcKLURhdGU6IFNhdCwgMjcgSmFuIDIwMDcgMTg6NTI6MzggLTA1MDAKLU1lc3NhZ2UtSUQ6IDwyMDA3MDEyNzIzNTIzOC5HQTI4NzA2QGNvcmVkdW1wLmludHJhLnBlZmYubmV0PgpkaWZmIC0tZ2l0IGEvY29udHJpYi9ibGFtZXZpZXcvYmxhbWV2aWV3LnBlcmwgYi9jb250cmliL2JsYW1ldmlldy9ibGFtZXZpZXcucGVybApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMWRlYzAwMS4uMDAwMDAwMAotLS0gYS9jb250cmliL2JsYW1ldmlldy9ibGFtZXZpZXcucGVybAorKysgL2Rldi9udWxsCkBAIC0xLDE1NSArMCwwIEBACi0jIS91c3IvYmluL3BlcmwKLQotdXNlIEd0azIgLWluaXQ7Ci11c2UgR3RrMjo6U2ltcGxlTGlzdDsKLQotbXkgJGhhc2g7Ci1teSAkZm47Ci1pZiAoIEBBUkdWID09IDEgKSB7Ci0JJGhhc2ggPSAiSEVBRCI7Ci0JJGZuID0gc2hpZnQ7Ci19IGVsc2lmICggQEFSR1YgPT0gMiApIHsKLQkkaGFzaCA9IHNoaWZ0OwotCSRmbiA9IHNoaWZ0OwotfSBlbHNlIHsKLQlkaWUgIlVzYWdlIGJsYW1ldmlldyBbPHJldj5dIDxmaWxlbmFtZT4iOwotfQotCi1HdGsyOjpSYy0+cGFyc2Vfc3RyaW5nKDw8J0VPUycpOwotc3R5bGUgInRyZWV2aWV3X3N0eWxlIgotewotICBHdGtUcmVlVmlldzo6dmVydGljYWwtc2VwYXJhdG9yID0gMAotfQotY2xhc3MgIkd0a1RyZWVWaWV3IiBzdHlsZSAidHJlZXZpZXdfc3R5bGUiCi1FT1MKLQotbXkgJHdpbmRvdyA9IEd0azI6OldpbmRvdy0+bmV3KCd0b3BsZXZlbCcpOwotJHdpbmRvdy0+c2lnbmFsX2Nvbm5lY3QoZGVzdHJveSA9PiBzdWIgeyBHdGsyLT5tYWluX3F1aXQgfSk7Ci1teSAkdnBhbiA9IEd0azI6OlZQYW5lZC0+bmV3KCk7Ci0kd2luZG93LT5hZGQoJHZwYW4pOwotbXkgJHNjcm9sbGVkX3dpbmRvdyA9IEd0azI6OlNjcm9sbGVkV2luZG93LT5uZXc7Ci0kdnBhbi0+cGFjazEoJHNjcm9sbGVkX3dpbmRvdywgMSwgMSk7Ci1teSAkZmlsZXZpZXcgPSBHdGsyOjpTaW1wbGVMaXN0LT5uZXcoCi0gICAgJ0NvbW1pdCcgPT4gJ3RleHQnLAotICAgICdGaWxlTGluZScgPT4gJ3RleHQnLAotICAgICdEYXRhJyA9PiAndGV4dCcKLSk7Ci0kc2Nyb2xsZWRfd2luZG93LT5hZGQoJGZpbGV2aWV3KTsKLSRmaWxldmlldy0+Z2V0X2NvbHVtbigwKS0+c2V0X3NwYWNpbmcoMCk7Ci0kZmlsZXZpZXctPnNldF9zaXplX3JlcXVlc3QoMTAyNCwgNzY4KTsKLSRmaWxldmlldy0+c2V0X3J1bGVzX2hpbnQoMSk7Ci0kZmlsZXZpZXctPnNpZ25hbF9jb25uZWN0IChyb3dfYWN0aXZhdGVkID0+IHN1YiB7Ci0JCW15ICgkc2wsICRwYXRoLCAkY29sdW1uKSA9IEBfOwotCQlteSAkcm93X3JlZiA9ICRzbC0+Z2V0X3Jvd19kYXRhX2Zyb21fcGF0aCAoJHBhdGgpOwotCQlzeXN0ZW0oImJsYW1ldmlldyBAJHJvd19yZWZbMF1+MSAkZm4gJiIpOwotCQl9KTsKLQotbXkgJGNvbW1pdHdpbmRvdyA9IEd0azI6OlNjcm9sbGVkV2luZG93LT5uZXcoKTsKLSRjb21taXR3aW5kb3ctPnNldF9wb2xpY3kgKCdHVEtfUE9MSUNZX0FVVE9NQVRJQycsJ0dUS19QT0xJQ1lfQVVUT01BVElDJyk7Ci0kdnBhbi0+cGFjazIoJGNvbW1pdHdpbmRvdywgMSwgMSk7Ci1teSAkY29tbWl0X3RleHQgPSBHdGsyOjpUZXh0Vmlldy0+bmV3KCk7Ci1teSAkY29tbWl0X2J1ZmZlciA9IEd0azI6OlRleHRCdWZmZXItPm5ldygpOwotJGNvbW1pdF90ZXh0LT5zZXRfYnVmZmVyKCRjb21taXRfYnVmZmVyKTsKLSRjb21taXR3aW5kb3ctPmFkZCgkY29tbWl0X3RleHQpOwotCi0kZmlsZXZpZXctPnNpZ25hbF9jb25uZWN0IChjdXJzb3JfY2hhbmdlZCA9PiBzdWIgewotCQlteSAoJHNsKSA9IEBfOwotCQlteSAoJHBhdGgsICRmb2N1c19jb2x1bW4pID0gJHNsLT5nZXRfY3Vyc29yKCk7Ci0JCW15ICRyb3dfcmVmID0gJHNsLT5nZXRfcm93X2RhdGFfZnJvbV9wYXRoICgkcGF0aCk7Ci0JCW15ICRjX2ZoOwotCQlvcGVuKCRjX2ZoLCAgJy18JywgImdpdCBjYXQtZmlsZSBjb21taXQgQCRyb3dfcmVmWzBdIikKLQkJCQkJb3IgZGllICJ1bmFibGUgdG8gZmluZCBjb21taXQgQCRyb3dfcmVmWzBdIjsKLQkJbXkgQGJ1ZmZlciA9IDwkY19maD47Ci0JCSRjb21taXRfYnVmZmVyLT5zZXRfdGV4dCgiQGJ1ZmZlciIpOwotCQljbG9zZSgkY19maCk7Ci0JCX0pOwotCi1teSAkZmg7Ci1vcGVuKCRmaCwgJy18JywgImdpdCBjYXQtZmlsZSBibG9iICRoYXNoOiRmbiIpCi0gIG9yIGRpZSAidW5hYmxlIHRvIG9wZW4gJGZuOiAkISI7Ci0KLXdoaWxlKDwkZmg+KSB7Ci0gIGNob21wOwotICAkZmlsZXZpZXctPntkYXRhfS0+WyQuXSA9IFsnSEVBRCcsICIkZm46JC4iLCAkX107Ci19Ci0KLW15ICRibGFtZTsKLW9wZW4oJGJsYW1lLCAnLXwnLCBxdyhnaXQgYmxhbWUgLS1pbmNyZW1lbnRhbCAtLSksICRmbiwgJGhhc2gpCi0gICAgb3IgZGllICJjYW5ub3Qgc3RhcnQgZ2l0LWJsYW1lICRmbiI7Ci0KLUdsaWI6OklPLT5hZGRfd2F0Y2goZmlsZW5vKCRibGFtZSksICdpbicsIFwmcmVhZF9ibGFtZV9saW5lKTsKLQotJHdpbmRvdy0+c2hvd19hbGw7Ci1HdGsyLT5tYWluOwotZXhpdCAwOwotCi1teSAlY29tbWl0aW5mbyA9ICgpOwotCi1zdWIgZmx1c2hfYmxhbWVfbGluZSB7Ci0JbXkgKCRhdHRyKSA9IEBfOwotCi0JcmV0dXJuIHVubGVzcyBkZWZpbmVkICRhdHRyOwotCi0JbXkgKCRjb21taXQsICRzX2xubywgJGxubywgJGNudCkgPQotCSAgICBAeyRhdHRyfXtxdyhDT01NSVQgU19MTk8gTE5PIENOVCl9OwotCi0JbXkgKCRmaWxlbmFtZSwgJGF1dGhvciwgJGF1dGhvcl90aW1lLCAkYXV0aG9yX3R6KSA9Ci0JICAgIEB7JGNvbW1pdGluZm97JGNvbW1pdH19e3F3KEZJTEVOQU1FIEFVVEhPUiBBVVRIT1ItVElNRSBBVVRIT1ItVFopfTsKLQlteSAkaW5mbyA9ICRhdXRob3IgLiAnICcgLiBmb3JtYXRfdGltZSgkYXV0aG9yX3RpbWUsICRhdXRob3JfdHopOwotCi0JZm9yKG15ICRpID0gMDsgJGkgPCAkY250OyAkaSsrKSB7Ci0JCUB7JGZpbGV2aWV3LT57ZGF0YX0tPlskbG5vKyRpLTFdfVswLDEsMl0gPQotCQkoc3Vic3RyKCRjb21taXQsIDAsIDgpLCAkZmlsZW5hbWUgLiAnOicgLiAoJHNfbG5vKyRpKSk7Ci0JfQotfQotCi1teSAkYnVmOwotbXkgJGN1cnJlbnQ7Ci1zdWIgcmVhZF9ibGFtZV9saW5lIHsKLQotCW15ICRyID0gc3lzcmVhZCgkYmxhbWUsICRidWYsIDEwMjQsIGxlbmd0aCgkYnVmKSk7Ci0JZGllICJJL08gZXJyb3IiIHVubGVzcyBkZWZpbmVkICRyOwotCi0JaWYgKCRyID09IDApIHsKLQkJZmx1c2hfYmxhbWVfbGluZSgkY3VycmVudCk7Ci0JCSRjdXJyZW50ID0gdW5kZWY7Ci0JCXJldHVybiAwOwotCX0KLQotCXdoaWxlICgkYnVmID1+IHMvKFteXG5dKilcbi8vKSB7Ci0JCW15ICRsaW5lID0gJDE7Ci0KLQkJaWYgKCgkY29tbWl0LCAkc19sbm8sICRsbm8sICRjbnQpID0KLQkJICAgICgkbGluZSA9fiAvXihbMC05YS1mXXs0MH0pIChcZCspIChcZCspIChcZCspJC8pKSB7Ci0JCQlmbHVzaF9ibGFtZV9saW5lKCRjdXJyZW50KTsKLQkJCSRjdXJyZW50ID0gK3sKLQkJCQlDT01NSVQgPT4gJDEsCi0JCQkJU19MTk8gPT4gJDIsCi0JCQkJTE5PID0+ICQzLAotCQkJCUNOVCA9PiAkNCwKLQkJCX07Ci0JCQluZXh0OwotCQl9Ci0KLQkJIyBleHRlbmRlZCBhdHRyaWJ1dGUgdmFsdWVzCi0JCWlmICgkbGluZSA9fiAvXihhdXRob3J8YXV0aG9yLW1haWx8YXV0aG9yLXRpbWV8YXV0aG9yLXR6fGNvbW1pdHRlcnxjb21taXR0ZXItbWFpbHxjb21taXR0ZXItdGltZXxjb21taXR0ZXItdHp8c3VtbWFyeXxmaWxlbmFtZSkgKC4qKSQvKSB7Ci0JCQlteSAkY29tbWl0ID0gJGN1cnJlbnQtPntDT01NSVR9OwotCQkJJGNvbW1pdGluZm97JGNvbW1pdH17dWMoJDEpfSA9ICQyOwotCQkJbmV4dDsKLQkJfQotCX0KLQlyZXR1cm4gMTsKLX0KLQotc3ViIGZvcm1hdF90aW1lIHsKLSAgbXkgJHRpbWUgPSBzaGlmdDsKLSAgbXkgJHR6ID0gc2hpZnQ7Ci0KLSAgbXkgJG1pbnV0ZXMgPSAkdHogPCAwID8gMC0kdHogOiAkdHo7Ci0gICRtaW51dGVzID0gKCRtaW51dGVzIC8gMTAwKSo2MCArICgkbWludXRlcyAlIDEwMCk7Ci0gICRtaW51dGVzID0gJHR6IDwgMCA/IDAtJG1pbnV0ZXMgOiAkbWludXRlczsKLSAgJHRpbWUgKz0gJG1pbnV0ZXMgKiA2MDsKLSAgbXkgQHQgPSBnbXRpbWUoJHRpbWUpOwotICByZXR1cm4gc3ByaW50ZignJTA0ZC0lMDJkLSUwMmQgJTAyZDolMDJkOiUwMmQgJXMnLAotCQkgJHRbNV0gKyAxOTAwLCBAdFs0LDMsMiwxLDBdLCAkdHopOwotfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaWFib3QvY2lhYm90LnB5IGIvY29udHJpYi9jaWFib3QvY2lhYm90LnB5CmluZGV4IDM2YjU2NjUuLmJlZmEwYzMgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvY2lhYm90L2NpYWJvdC5weQorKysgYi9jb250cmliL2NpYWJvdC9jaWFib3QucHkKQEAgLTcwLDcgKzcwLDcgQEAKIAogIyBUaGUgdGVtcGxhdGUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgWE1MIG1lc3NhZ2VzIHRvIENJQS4gIFlvdSBjYW4gbWFrZQogIyB2aXNpYmxlIGNoYW5nZXMgdG8gdGhlIElSQy1ib3Qgbm90aWZpY2F0aW9uIGxpbmVzIGJ5IGhhY2tpbmcgdGhpcy4KLSMgVGhlIGRlZmF1bHQgd2lsbCBwcm9kdWNlIGEgbm90ZmljYXRpb24gbGluZSB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyMgVGhlIGRlZmF1bHQgd2lsbCBwcm9kdWNlIGEgbm90aWZpY2F0aW9uIGxpbmUgdGhhdCBsb29rcyBsaWtlIHRoaXM6CiAjCiAjICR7cHJvamVjdH06ICR7YXV0aG9yfSAke3JlcG99OiR7YnJhbmNofSAqICR7cmV2fSAke2ZpbGVzfTogJHtsb2dtc2d9ICR7dXJsfQogIwpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaWFib3QvY2lhYm90LnNoIGIvY29udHJpYi9jaWFib3QvY2lhYm90LnNoCmluZGV4IDNmYmJjNTMuLmRmYjcxYTEgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvY2lhYm90L2NpYWJvdC5zaAorKysgYi9jb250cmliL2NpYWJvdC9jaWFib3Quc2gKQEAgLTM5LDcgKzM5LDcgQEAKICMgICAgICAgZG9uZQogIwogIyBUaGUgcmVhc29uIGZvciB0aGUgdGFjIGNhbGwgaXMgdGhhdCBnaXQgcmV2LWxpc3QgZW1pdHMgY29tbWl0cyBmcm9tCi0jIG1vc3QgcmVjZW50IHRvIGxlYXN0IC0gYmV0dGVyIHRvIHNoaXAgbm90aWZhY3Rpb25zIGZyb20gb2xkZXN0IHRvIG5ld2VzdC4KKyMgbW9zdCByZWNlbnQgdG8gbGVhc3QgLSBiZXR0ZXIgdG8gc2hpcCBub3RpZmljYXRpb25zIGZyb20gb2xkZXN0IHRvIG5ld2VzdC4KICMKICMgQ29uZmlndXJhdGlvbiB2YXJpYWJsZXMgYWZmZWN0aW5nIHRoaXMgc2NyaXB0OgogIwpAQCAtNjQsNyArNjQsNyBAQAogIyBkb3duLiBJdCBpcyB1bmtub3duIHdoZXRoZXIgdGhpcyBpcyBzdGlsbCBhbiBpc3N1ZSBpbiAyMDEwLCBidXQKICMgWE1MLVJQQyB3b3VsZCBiZSBhbm5veWluZyB0byBkbyBmcm9tIHNoIGluIGFueSBjYXNlLiAoWE1MLVJQQyBkb2VzCiAjIGhhdmUgdGhlIGFkdmFudGFnZSB0aGF0IGl0IGd1YXJhbnRlZXMgbm90aWZpY2F0aW9uIG9mIG11bHRpcGxlIGNvbW1pdHMKLSMgc2hwcGVkIGZyb20gYW4gdXBkYXRlIGluIHRoZWlyIGFjdHVhbCBvcmRlci4pCisjIHNoaXBwZWQgZnJvbSBhbiB1cGRhdGUgaW4gdGhlaXIgYWN0dWFsIG9yZGVyLikKICMKIAogIyBUaGUgcHJvamVjdCBhcyBrbm93biB0byBDSUEuIFlvdSBjYW4gc2V0IHRoaXMgd2l0aCBhIC1wIG9wdGlvbiwKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi5iYXNoIGIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLmJhc2gKaW5kZXggMWMzNWVlZi4uZTFiNzMxMyAxMDA2NDQKLS0tIGEvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLmJhc2gKKysrIGIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLmJhc2gKQEAgLTMzLDggKzMzLDYgQEAKICMgcmV0dXJucyBsb2NhdGlvbiBvZiAuZ2l0IHJlcG8KIF9fZ2l0ZGlyICgpCiB7Ci0JIyBOb3RlOiB0aGlzIGZ1bmN0aW9uIGlzIGR1cGxpY2F0ZWQgaW4gZ2l0LXByb21wdC5zaAotCSMgV2hlbiB1cGRhdGluZyBpdCwgbWFrZSBzdXJlIHlvdSB1cGRhdGUgdGhlIG90aGVyIG9uZSB0byBtYXRjaC4KIAlpZiBbIC16ICIkezEtfSIgXTsgdGhlbgogCQlpZiBbIC1uICIke19fZ2l0X2Rpci19IiBdOyB0aGVuCiAJCQllY2hvICIkX19naXRfZGlyIgpAQCAtMjUyLDEwNiArMjUwLDUwIEBACiAJIyBzaW5jZSB0aWxkZSBleHBhbnNpb24gaXMgbm90IGFwcGxpZWQuCiAJIyBUaGlzIG1lYW5zIHRoYXQgQ09NUFJFUExZIHdpbGwgYmUgZW1wdHkgYW5kIEJhc2ggZGVmYXVsdAogCSMgY29tcGxldGlvbiB3aWxsIGJlIHVzZWQuCi0JQ09NUFJFUExZPSgkKGNvbXBnZW4gLVAgIiR7Mi19IiAtVyAiJDEiIC0tICIkezMtJGN1cn0iKSkKKwlfX2dpdGNvbXBhZGQgIiQxIiAiJHsyLX0iICIkezMtJGN1cn0iICIiCiAKLQkjIFRlbGwgQmFzaCB0aGF0IGNvbXBzcGVjIGdlbmVyYXRlcyBmaWxlbmFtZXMuCi0JY29tcG9wdCAtbyBmaWxlbmFtZXMgMj4vZGV2L251bGwKKwkjIHVzZSBhIGhhY2sgdG8gZW5hYmxlIGZpbGUgbW9kZSBpbiBiYXNoIDwgNAorCWNvbXBvcHQgLW8gZmlsZW5hbWVzICtvIG5vc3BhY2UgMj4vZGV2L251bGwgfHwKKwljb21wZ2VuIC1mIC9ub24tZXhpc3RpbmctZGlyLyA+IC9kZXYvbnVsbAogfQogCi1fX2dpdF9pbmRleF9maWxlX2xpc3RfZmlsdGVyX2NvbXBhdCAoKQotewotCWxvY2FsIHBhdGgKLQotCXdoaWxlIHJlYWQgLXIgcGF0aDsgZG8KLQkJY2FzZSAiJHBhdGgiIGluCi0JCT8qLyopIGVjaG8gIiR7cGF0aCUlLyp9LyIgOzsKLQkJKikgZWNobyAiJHBhdGgiIDs7Ci0JCWVzYWMKLQlkb25lCi19Ci0KLV9fZ2l0X2luZGV4X2ZpbGVfbGlzdF9maWx0ZXJfYmFzaCAoKQotewotCWxvY2FsIHBhdGgKLQotCXdoaWxlIHJlYWQgLXIgcGF0aDsgZG8KLQkJY2FzZSAiJHBhdGgiIGluCi0JCT8qLyopCi0JCQkjIFhYWCBpZiB3ZSBhcHBlbmQgYSBzbGFzaCB0byBkaXJlY3RvcnkgbmFtZXMgd2hlbiB1c2luZwotCQkJIyBgY29tcG9wdCAtbyBmaWxlbmFtZXNgLCBCYXNoIHdpbGwgYXBwZW5kIGFub3RoZXIgc2xhc2guCi0JCQkjIFRoaXMgaXMgcHJldHR5IHN0dXBpZCwgYW5kIHRoaXMgdGhlIHJlYXNvbiB3aHkgd2UgaGF2ZSB0bwotCQkJIyBkZWZpbmUgYSBjb21wYXRpYmxlIHZlcnNpb24gZm9yIHRoaXMgZnVuY3Rpb24uCi0JCQllY2hvICIke3BhdGglJS8qfSIgOzsKLQkJKikKLQkJCWVjaG8gIiRwYXRoIiA7OwotCQllc2FjCi0JZG9uZQotfQotCi0jIFByb2Nlc3MgcGF0aCBsaXN0IHJldHVybmVkIGJ5ICJscy1maWxlcyIgYW5kICJkaWZmLWluZGV4IC0tbmFtZS1vbmx5IgotIyBjb21tYW5kcywgaW4gb3JkZXIgdG8gbGlzdCBvbmx5IGZpbGUgbmFtZXMgcmVsYXRpdmUgdG8gYSBzcGVjaWZpZWQKLSMgZGlyZWN0b3J5LCBhbmQgYXBwZW5kIGEgc2xhc2ggdG8gZGlyZWN0b3J5IG5hbWVzLgotX19naXRfaW5kZXhfZmlsZV9saXN0X2ZpbHRlciAoKQotewotCSMgRGVmYXVsdCB0byBCYXNoID49IDQueAotCV9fZ2l0X2luZGV4X2ZpbGVfbGlzdF9maWx0ZXJfYmFzaAotfQotCi0jIEV4ZWN1dGUgZ2l0IGxzLWZpbGVzLCByZXR1cm5pbmcgcGF0aHMgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeQotIyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IGFyZ3VtZW50LCBhbmQgdXNpbmcgdGhlIG9wdGlvbnMgc3BlY2lmaWVkIGluCi0jIHRoZSBzZWNvbmQgYXJndW1lbnQuCisjIEV4ZWN1dGUgJ2dpdCBscy1maWxlcycsIHVubGVzcyB0aGUgLS1jb21taXR0YWJsZSBvcHRpb24gaXMgc3BlY2lmaWVkLCBpbgorIyB3aGljaCBjYXNlIGl0IHJ1bnMgJ2dpdCBkaWZmLWluZGV4JyB0byBmaW5kIG91dCB0aGUgZmlsZXMgdGhhdCBjYW4gYmUKKyMgY29tbWl0dGVkLiAgSXQgcmV0dXJuIHBhdGhzIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGluIHRoZSBmaXJzdAorIyBhcmd1bWVudCwgYW5kIHVzaW5nIHRoZSBvcHRpb25zIHNwZWNpZmllZCBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50LgogX19naXRfbHNfZmlsZXNfaGVscGVyICgpCiB7CiAJKAogCQl0ZXN0IC1uICIke0NEUEFUSCtzZXR9IiAmJiB1bnNldCBDRFBBVEgKLQkJIyBOT1RFOiAkMiBpcyBub3QgcXVvdGVkIGluIG9yZGVyIHRvIHN1cHBvcnQgbXVsdGlwbGUgb3B0aW9ucwotCQljZCAiJDEiICYmIGdpdCBscy1maWxlcyAtLWV4Y2x1ZGUtc3RhbmRhcmQgJDIKKwkJY2QgIiQxIgorCQlpZiBbICIkMiIgPT0gIi0tY29tbWl0dGFibGUiIF07IHRoZW4KKwkJCWdpdCBkaWZmLWluZGV4IC0tbmFtZS1vbmx5IC0tcmVsYXRpdmUgSEVBRAorCQllbHNlCisJCQkjIE5PVEU6ICQyIGlzIG5vdCBxdW90ZWQgaW4gb3JkZXIgdG8gc3VwcG9ydCBtdWx0aXBsZSBvcHRpb25zCisJCQlnaXQgbHMtZmlsZXMgLS1leGNsdWRlLXN0YW5kYXJkICQyCisJCWZpCiAJKSAyPi9kZXYvbnVsbAogfQogCiAKLSMgRXhlY3V0ZSBnaXQgZGlmZi1pbmRleCwgcmV0dXJuaW5nIHBhdGhzIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkKLSMgc3BlY2lmaWVkIGluIHRoZSBmaXJzdCBhcmd1bWVudCwgYW5kIHVzaW5nIHRoZSB0cmVlIG9iamVjdCBpZAotIyBzcGVjaWZpZWQgaW4gdGhlIHNlY29uZCBhcmd1bWVudC4KLV9fZ2l0X2RpZmZfaW5kZXhfaGVscGVyICgpCi17Ci0JKAotCQl0ZXN0IC1uICIke0NEUEFUSCtzZXR9IiAmJiB1bnNldCBDRFBBVEgKLQkJY2QgIiQxIiAmJiBnaXQgZGlmZi1pbmRleCAtLW5hbWUtb25seSAtLXJlbGF0aXZlICIkMiIKLQkpIDI+L2Rldi9udWxsCi19Ci0KICMgX19naXRfaW5kZXhfZmlsZXMgYWNjZXB0cyAxIG9yIDIgYXJndW1lbnRzOgogIyAxOiBPcHRpb25zIHRvIHBhc3MgdG8gbHMtZmlsZXMgKHJlcXVpcmVkKS4KLSMgICAgU3VwcG9ydGVkIG9wdGlvbnMgYXJlIC0tY2FjaGVkLCAtLW1vZGlmaWVkLCAtLWRlbGV0ZWQsIC0tb3RoZXJzLAotIyAgICBhbmQgLS1kaXJlY3RvcnkuCiAjIDI6IEEgZGlyZWN0b3J5IHBhdGggKG9wdGlvbmFsKS4KICMgICAgSWYgcHJvdmlkZWQsIG9ubHkgZmlsZXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGFyZSBsaXN0ZWQuCiAjICAgIFN1YiBkaXJlY3RvcmllcyBhcmUgbmV2ZXIgcmVjdXJzZWQuICBQYXRoIG11c3QgaGF2ZSBhIHRyYWlsaW5nCiAjICAgIHNsYXNoLgogX19naXRfaW5kZXhfZmlsZXMgKCkKIHsKLQlsb2NhbCBkaXI9IiQoX19naXRkaXIpIiByb290PSIkezItLn0iCisJbG9jYWwgZGlyPSIkKF9fZ2l0ZGlyKSIgcm9vdD0iJHsyLS59IiBmaWxlCiAKIAlpZiBbIC1kICIkZGlyIiBdOyB0aGVuCi0JCV9fZ2l0X2xzX2ZpbGVzX2hlbHBlciAiJHJvb3QiICIkMSIgfCBfX2dpdF9pbmRleF9maWxlX2xpc3RfZmlsdGVyIHwKLQkJCXNvcnQgfCB1bmlxCi0JZmkKLX0KLQotIyBfX2dpdF9kaWZmX2luZGV4X2ZpbGVzIGFjY2VwdHMgMSBvciAyIGFyZ3VtZW50czoKLSMgMSkgVGhlIGlkIG9mIGEgdHJlZSBvYmplY3QuCi0jIDIpIEEgZGlyZWN0b3J5IHBhdGggKG9wdGlvbmFsKS4KLSMgICAgSWYgcHJvdmlkZWQsIG9ubHkgZmlsZXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGFyZSBsaXN0ZWQuCi0jICAgIFN1YiBkaXJlY3RvcmllcyBhcmUgbmV2ZXIgcmVjdXJzZWQuICBQYXRoIG11c3QgaGF2ZSBhIHRyYWlsaW5nCi0jICAgIHNsYXNoLgotX19naXRfZGlmZl9pbmRleF9maWxlcyAoKQotewotCWxvY2FsIGRpcj0iJChfX2dpdGRpcikiIHJvb3Q9IiR7Mi0ufSIKLQotCWlmIFsgLWQgIiRkaXIiIF07IHRoZW4KLQkJX19naXRfZGlmZl9pbmRleF9oZWxwZXIgIiRyb290IiAiJDEiIHwgX19naXRfaW5kZXhfZmlsZV9saXN0X2ZpbHRlciB8Ci0JCQlzb3J0IHwgdW5pcQorCQlfX2dpdF9sc19maWxlc19oZWxwZXIgIiRyb290IiAiJDEiIHwKKwkJd2hpbGUgcmVhZCAtciBmaWxlOyBkbworCQkJY2FzZSAiJGZpbGUiIGluCisJCQk/Ki8qKSBlY2hvICIke2ZpbGUlJS8qfSIgOzsKKwkJCSopIGVjaG8gIiRmaWxlIiA7OworCQkJZXNhYworCQlkb25lIHwgc29ydCB8IHVuaXEKIAlmaQogfQogCkBAIC00MjcsMTQgKzM2OSw4IEBACiAJCWRvbmUKIAkJOzsKIAkqKQotCQlnaXQgbHMtcmVtb3RlICIkZGlyIiBIRUFEIE9SSUdfSEVBRCAncmVmcy90YWdzLyonICdyZWZzL2hlYWRzLyonICdyZWZzL3JlbW90ZXMvKicgMj4vZGV2L251bGwgfCBcCi0JCXdoaWxlIHJlYWQgLXIgaGFzaCBpOyBkbwotCQkJY2FzZSAiJGkiIGluCi0JCQkqXnt9KSA7OwotCQkJcmVmcy8qKSBlY2hvICIke2kjcmVmcy8qL30iIDs7Ci0JCQkqKSBlY2hvICIkaSIgOzsKLQkJCWVzYWMKLQkJZG9uZQorCQllY2hvICJIRUFEIgorCQlnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PSIlKHJlZm5hbWU6c2hvcnQpIiAtLSAicmVmcy9yZW1vdGVzLyRkaXIvIiB8IHNlZCAtZSAicyNeJGRpci8jIyIKIAkJOzsKIAllc2FjCiB9CkBAIC01NTIsNDQgKzQ4OCwyMyBAQAogfQogCiAKLSMgX19naXRfY29tcGxldGVfaW5kZXhfZmlsZSByZXF1aXJlcyAxIGFyZ3VtZW50OiB0aGUgb3B0aW9ucyB0byBwYXNzIHRvCi0jIGxzLWZpbGUKKyMgX19naXRfY29tcGxldGVfaW5kZXhfZmlsZSByZXF1aXJlcyAxIGFyZ3VtZW50OgorIyAxOiB0aGUgb3B0aW9ucyB0byBwYXNzIHRvIGxzLWZpbGUKKyMKKyMgVGhlIGV4Y2VwdGlvbiBpcyAtLWNvbW1pdHRhYmxlLCB3aGljaCBmaW5kcyB0aGUgZmlsZXMgYXBwcm9wcmlhdGUgY29tbWl0LgogX19naXRfY29tcGxldGVfaW5kZXhfZmlsZSAoKQogewotCWxvY2FsIHBmeCBjdXJfPSIkY3VyIgorCWxvY2FsIHBmeD0iIiBjdXJfPSIkY3VyIgogCiAJY2FzZSAiJGN1cl8iIGluCiAJPyovKikKIAkJcGZ4PSIke2N1cl8lLyp9IgogCQljdXJfPSIke2N1cl8jIyovfSIKIAkJcGZ4PSIke3BmeH0vIgotCi0JCV9fZ2l0Y29tcF9maWxlICIkKF9fZ2l0X2luZGV4X2ZpbGVzICIkMSIgIiRwZngiKSIgIiRwZngiICIkY3VyXyIKLQkJOzsKLQkqKQotCQlfX2dpdGNvbXBfZmlsZSAiJChfX2dpdF9pbmRleF9maWxlcyAiJDEiKSIgIiIgIiRjdXJfIgogCQk7OwogCWVzYWMKLX0KIAotIyBfX2dpdF9jb21wbGV0ZV9kaWZmX2luZGV4X2ZpbGUgcmVxdWlyZXMgMSBhcmd1bWVudDogdGhlIGlkIG9mIGEgdHJlZQotIyBvYmplY3QKLV9fZ2l0X2NvbXBsZXRlX2RpZmZfaW5kZXhfZmlsZSAoKQotewotCWxvY2FsIHBmeCBjdXJfPSIkY3VyIgotCi0JY2FzZSAiJGN1cl8iIGluCi0JPyovKikKLQkJcGZ4PSIke2N1cl8lLyp9IgotCQljdXJfPSIke2N1cl8jIyovfSIKLQkJcGZ4PSIke3BmeH0vIgotCi0JCV9fZ2l0Y29tcF9maWxlICIkKF9fZ2l0X2RpZmZfaW5kZXhfZmlsZXMgIiQxIiAiJHBmeCIpIiAiJHBmeCIgIiRjdXJfIgotCQk7OwotCSopCi0JCV9fZ2l0Y29tcF9maWxlICIkKF9fZ2l0X2RpZmZfaW5kZXhfZmlsZXMgIiQxIikiICIiICIkY3VyXyIKLQkJOzsKLQllc2FjCisJX19naXRjb21wX2ZpbGUgIiQoX19naXRfaW5kZXhfZmlsZXMgIiQxIiAiJHBmeCIpIiAiJHBmeCIgIiRjdXJfIgogfQogCiBfX2dpdF9jb21wbGV0ZV9maWxlICgpCkBAIC03MzMsNiArNjQ4LDcgQEAKIAkJY2F0LWZpbGUpICAgICAgICAgOiBwbHVtYmluZzs7CiAJCWNoZWNrLWF0dHIpICAgICAgIDogcGx1bWJpbmc7OwogCQljaGVjay1pZ25vcmUpICAgICA6IHBsdW1iaW5nOzsKKwkJY2hlY2stbWFpbG1hcCkgICAgOiBwbHVtYmluZzs7CiAJCWNoZWNrLXJlZi1mb3JtYXQpIDogcGx1bWJpbmc7OwogCQljaGVja291dC1pbmRleCkgICA6IHBsdW1iaW5nOzsKIAkJY29tbWl0LXRyZWUpICAgICAgOiBwbHVtYmluZzs7CkBAIC0xMjEzLDcgKzExMjksNyBAQAogCWVzYWMKIAogCWlmIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1xdWlldCBIRUFEID4vZGV2L251bGw7IHRoZW4KLQkJX19naXRfY29tcGxldGVfZGlmZl9pbmRleF9maWxlICJIRUFEIgorCQlfX2dpdF9jb21wbGV0ZV9pbmRleF9maWxlICItLWNvbW1pdHRhYmxlIgogCWVsc2UKIAkJIyBUaGlzIGlzIHRoZSBmaXJzdCBjb21taXQKIAkJX19naXRfY29tcGxldGVfaW5kZXhfZmlsZSAiLS1jYWNoZWQiCkBAIC0xMjQ2LDcgKzExNjIsNyBAQAogCQkJLS1uby1wcmVmaXggLS1zcmMtcHJlZml4PSAtLWRzdC1wcmVmaXg9CiAJCQktLWludGVyLWh1bmstY29udGV4dD0KIAkJCS0tcGF0aWVuY2UgLS1oaXN0b2dyYW0gLS1taW5pbWFsCi0JCQktLXJhdworCQkJLS1yYXcgLS13b3JkLWRpZmYKIAkJCS0tZGlyc3RhdCAtLWRpcnN0YXQ9IC0tZGlyc3RhdC1ieS1maWxlCiAJCQktLWRpcnN0YXQtYnktZmlsZT0gLS1jdW11bGF0aXZlCiAJCQktLWRpZmYtYWxnb3JpdGhtPQpAQCAtMTI5NCw3ICsxMjEwLDcgQEAKIAkJcmV0dXJuCiAJCTs7CiAJZXNhYwotCV9fZ2l0X2NvbXBsZXRlX2ZpbGUKKwlfX2dpdF9jb21wbGV0ZV9yZXZsaXN0X2ZpbGUKIH0KIAogX19naXRfZmV0Y2hfb3B0aW9ucz0iCkBAIC0yMDQyLDcgKzE5NTgsNiBAQAogCQljb3JlLmZpbGVNb2RlCiAJCWNvcmUuZnN5bmNvYmplY3RmaWxlcwogCQljb3JlLmdpdFByb3h5Ci0JCWNvcmUuaWdub3JlQ3lnd2luRlNUcmlja3MKIAkJY29yZS5pZ25vcmVTdGF0CiAJCWNvcmUuaWdub3JlY2FzZQogCQljb3JlLmxvZ0FsbFJlZlVwZGF0ZXMKQEAgLTIzNjAsNyArMjI3NSw3IEBACiAJCXJldHVybgogCQk7OwogCWVzYWMKLQlfX2dpdF9jb21wbGV0ZV9maWxlCisJX19naXRfY29tcGxldGVfcmV2bGlzdF9maWxlCiB9CiAKIF9naXRfc2hvd19icmFuY2ggKCkKQEAgLTI1NzUsOSArMjQ5MCwxMCBAQAogCQlpPSIke3dvcmRzW2NdfSIKIAkJY2FzZSAiJGkiIGluCiAJCS0tZ2l0LWRpcj0qKSBfX2dpdF9kaXI9IiR7aSMtLWdpdC1kaXI9fSIgOzsKKwkJLS1naXQtZGlyKSAgICgoYysrKSkgOyBfX2dpdF9kaXI9IiR7d29yZHNbY119IiA7OwogCQktLWJhcmUpICAgICAgX19naXRfZGlyPSIuIiA7OwogCQktLWhlbHApIGNvbW1hbmQ9ImhlbHAiOyBicmVhayA7OwotCQktYykgYz0kKCgrK2MpKSA7OworCQktY3wtLXdvcmstdHJlZXwtLW5hbWVzcGFjZSkgKChjKyspKSA7OwogCQktKikgOzsKIAkJKikgY29tbWFuZD0iJGkiOyBicmVhayA7OwogCQllc2FjCkBAIC0yNTk1LDYgKzI1MTEsNyBAQAogCQkJLS1leGVjLXBhdGgKIAkJCS0tZXhlYy1wYXRoPQogCQkJLS1odG1sLXBhdGgKKwkJCS0tbWFuLXBhdGgKIAkJCS0taW5mby1wYXRoCiAJCQktLXdvcmstdHJlZT0KIAkJCS0tbmFtZXNwYWNlPQpAQCAtMjY2Myw3ICsyNTgwLDcgQEAKIAkJCQktLSo9KnwqLikgOzsKIAkJCQkqKSBjPSIkYyAiIDs7CiAJCQkJZXNhYwotCQkJCWFycmF5WyQjYXJyYXkrMV09IiRjIgorCQkJCWFycmF5WyR7I2FycmF5W0BdfSsxXT0iJGMiCiAJCQlkb25lCiAJCQljb21wc2V0IC1QICcqWz06XScKIAkJCWNvbXBhZGQgLVEgLVMgJycgLXAgIiR7Mi19IiAtYSAtLSBhcnJheSAmJiBfcmV0PTAKQEAgLTI2ODksMzUgKzI2MDYsMTkgQEAKIAkJY29tcGFkZCAtUSAtcCAiJHsyLX0iIC1mIC0tICR7PTF9ICYmIF9yZXQ9MAogCX0KIAotCV9fZ2l0X3pzaF9oZWxwZXIgKCkKLQl7Ci0JCWVtdWxhdGUgLUwga3NoCi0JCWxvY2FsIGN1ciBjd29yZCBwcmV2Ci0JCWN1cj0ke3dvcmRzW0NVUlJFTlQtMV19Ci0JCXByZXY9JHt3b3Jkc1tDVVJSRU5ULTJdfQotCQlsZXQgY3dvcmQ9Q1VSUkVOVC0xCi0JCV9fJHtzZXJ2aWNlfV9tYWluCi0JfQotCiAJX2dpdCAoKQogCXsKLQkJZW11bGF0ZSAtTCB6c2gKLQkJbG9jYWwgX3JldD0xCi0JCV9fZ2l0X3pzaF9oZWxwZXIKLQkJbGV0IF9yZXQgJiYgX2RlZmF1bHQgLVMgJycgJiYgX3JldD0wCisJCWxvY2FsIF9yZXQ9MSBjdXIgY3dvcmQgcHJldgorCQljdXI9JHt3b3Jkc1tDVVJSRU5UXX0KKwkJcHJldj0ke3dvcmRzW0NVUlJFTlQtMV19CisJCWxldCBjd29yZD1DVVJSRU5ULTEKKwkJZW11bGF0ZSBrc2ggLWMgX18ke3NlcnZpY2V9X21haW4KKwkJbGV0IF9yZXQgJiYgX2RlZmF1bHQgJiYgX3JldD0wCiAJCXJldHVybiBfcmV0CiAJfQogCiAJY29tcGRlZiBfZ2l0IGdpdCBnaXRrCiAJcmV0dXJuCi1lbGlmIFtbIC1uICR7QkFTSF9WRVJTSU9OLX0gXV07IHRoZW4KLQlpZiAoKCR7QkFTSF9WRVJTSU5GT1swXX0gPCA0KSk7IHRoZW4KLQkJIyBjb21wb3B0IGlzIG5vdCBzdXBwb3J0ZWQKLQkJX19naXRfaW5kZXhfZmlsZV9saXN0X2ZpbHRlciAoKQotCQl7Ci0JCQlfX2dpdF9pbmRleF9maWxlX2xpc3RfZmlsdGVyX2NvbXBhdAotCQl9Ci0JZmkKIGZpCiAKIF9fZ2l0X2Z1bmNfd3JhcCAoKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLnpzaCBiL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi56c2gKaW5kZXggMjU2NWQyZS4uZmFjNWU3MSAxMDA2NDQKLS0tIGEvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLnpzaAorKysgYi9jb250cmliL2NvbXBsZXRpb24vZ2l0LWNvbXBsZXRpb24uenNoCkBAIC00LDE4ICs0LDE3IEBACiAjCiAjIENvcHlyaWdodCAoYykgMjAxMi0yMDEzIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAZ21haWwuY29tPgogIwotIyBZb3UgbmVlZCBnaXQncyBiYXNoIGNvbXBsZXRpb24gc2NyaXB0IGluc3RhbGxlZCBzb21ld2hlcmUsIGJ5IGRlZmF1bHQgb24gdGhlCi0jIHNhbWUgZGlyZWN0b3J5IGFzIHRoaXMgc2NyaXB0LgorIyBZb3UgbmVlZCBnaXQncyBiYXNoIGNvbXBsZXRpb24gc2NyaXB0IGluc3RhbGxlZCBzb21ld2hlcmUsIGJ5IGRlZmF1bHQgaXQKKyMgd291bGQgYmUgdGhlIGxvY2F0aW9uIGJhc2gtY29tcGxldGlvbiB1c2VzLgogIwotIyBJZiB5b3VyIHNjcmlwdCBpcyBvbiB+Ly5naXQtY29tcGxldGlvbi5zaCBpbnN0ZWFkLCB5b3UgY2FuIGNvbmZpZ3VyZSBpdCBvbgotIyB5b3VyIH4vLnpzaHJjOgorIyBJZiB5b3VyIHNjcmlwdCBpcyBzb21ld2hlcmUgZWxzZSwgeW91IGNhbiBjb25maWd1cmUgaXQgb24geW91ciB+Ly56c2hyYzoKICMKICMgIHpzdHlsZSAnOmNvbXBsZXRpb246KjoqOmdpdDoqJyBzY3JpcHQgfi8uZ2l0LWNvbXBsZXRpb24uc2gKICMKLSMgVGhlIHJlY29tbWVuZGVkIHdheSB0byBpbnN0YWxsIHRoaXMgc2NyaXB0IGlzIHRvIGNvcHkgdG8KLSMgJ34vLnpzaC9jb21wbGV0aW9uL19naXQnLCBhbmQgdGhlbiBhZGQgdGhlIGZvbGxvd2luZyB0byB5b3VyIH4vLnpzaHJjIGZpbGU6CisjIFRoZSByZWNvbW1lbmRlZCB3YXkgdG8gaW5zdGFsbCB0aGlzIHNjcmlwdCBpcyB0byBjb3B5IHRvICd+Ly56c2gvX2dpdCcsIGFuZAorIyB0aGVuIGFkZCB0aGUgZm9sbG93aW5nIHRvIHlvdXIgfi8uenNocmMgZmlsZToKICMKLSMgIGZwYXRoPSh+Ly56c2gvY29tcGxldGlvbiAkZnBhdGgpCisjICBmcGF0aD0ofi8uenNoICRmcGF0aCkKIAogY29tcGxldGUgKCkKIHsKQEAgLTI3LDcgKzI2LDE5IEBACiAJenN0eWxlICc6Y29tcGxldGlvbjoqOio6Z2l0OionIHRhZy1vcmRlciAnY29tbW9uLWNvbW1hbmRzJwogCiB6c3R5bGUgLXMgIjpjb21wbGV0aW9uOio6KjpnaXQ6KiIgc2NyaXB0IHNjcmlwdAotdGVzdCAteiAiJHNjcmlwdCIgJiYgc2NyaXB0PSIkKGRpcm5hbWUgJHtmdW5jc291cmNldHJhY2VbMV0lOip9KSIvZ2l0LWNvbXBsZXRpb24uYmFzaAoraWYgWyAteiAiJHNjcmlwdCIgXTsgdGhlbgorCWxvY2FsIC1hIGxvY2F0aW9ucworCWxvY2FsIGUKKwlsb2NhdGlvbnM9KAorCQknL2V0Yy9iYXNoX2NvbXBsZXRpb24uZC9naXQnICMgZmVkb3JhLCBvbGQgZGViaWFuCisJCScvdXNyL3NoYXJlL2Jhc2gtY29tcGxldGlvbi9jb21wbGV0aW9ucy9naXQnICMgYXJjaCwgdWJ1bnR1LCBuZXcgZGViaWFuCisJCScvdXNyL3NoYXJlL2Jhc2gtY29tcGxldGlvbi9naXQnICMgZ2VudG9vCisJCSQoZGlybmFtZSAke2Z1bmNzb3VyY2V0cmFjZVsxXSU6Kn0pL2dpdC1jb21wbGV0aW9uLmJhc2gKKwkJKQorCWZvciBlIGluICRsb2NhdGlvbnM7IGRvCisJCXRlc3QgLWYgJGUgJiYgc2NyaXB0PSIkZSIgJiYgYnJlYWsKKwlkb25lCitmaQogWlNIX1ZFUlNJT049JycgLiAiJHNjcmlwdCIKIAogX19naXRjb21wICgpCmRpZmYgLS1naXQgYS9jb250cmliL2NvbXBsZXRpb24vZ2l0LXByb21wdC5zaCBiL2NvbnRyaWIvY29tcGxldGlvbi9naXQtcHJvbXB0LnNoCmluZGV4IGVhZjVjMzYuLmQ2YzYxYjIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtcHJvbXB0LnNoCisrKyBiL2NvbnRyaWIvY29tcGxldGlvbi9naXQtcHJvbXB0LnNoCkBAIC0zLDcgKzMsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDYsMjAwNyBTaGF3biBPLiBQZWFyY2UgPHNwZWFyY2VAc3BlYXJjZS5vcmc+CiAjIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLjAuCiAjCi0jIFRoaXMgc2NyaXB0IGFsbG93cyB5b3UgdG8gc2VlIHRoZSBjdXJyZW50IGJyYW5jaCBpbiB5b3VyIHByb21wdC4KKyMgVGhpcyBzY3JpcHQgYWxsb3dzIHlvdSB0byBzZWUgcmVwb3NpdG9yeSBzdGF0dXMgaW4geW91ciBwcm9tcHQuCiAjCiAjIFRvIGVuYWJsZToKICMKQEAgLTEzLDIzICsxMywyNyBAQAogIyAgICAzYSkgQ2hhbmdlIHlvdXIgUFMxIHRvIGNhbGwgX19naXRfcHMxIGFzCiAjICAgICAgICBjb21tYW5kLXN1YnN0aXR1dGlvbjoKICMgICAgICAgIEJhc2g6IFBTMT0nW1x1QFxoIFxXJChfX2dpdF9wczEgIiAoJXMpIildXCQgJwotIyAgICAgICAgWlNIOiAgUFMxPSdbJW5AJW0gJWMkKF9fZ2l0X3BzMSAiICglcykiKV1cJCAnCisjICAgICAgICBaU0g6ICBzZXRvcHQgUFJPTVBUX1NVQlNUIDsgUFMxPSdbJW5AJW0gJWMkKF9fZ2l0X3BzMSAiICglcykiKV1cJCAnCiAjICAgICAgICB0aGUgb3B0aW9uYWwgYXJndW1lbnQgd2lsbCBiZSB1c2VkIGFzIGZvcm1hdCBzdHJpbmcuCi0jICAgIDNiKSBBbHRlcm5hdGl2ZWx5LCBpZiB5b3UgYXJlIHVzaW5nIGJhc2gsIF9fZ2l0X3BzMSBjYW4gYmUKLSMgICAgICAgIHVzZWQgZm9yIFBST01QVF9DT01NQU5EIHdpdGggdHdvIHBhcmFtZXRlcnMsIDxwcmU+IGFuZAotIyAgICAgICAgPHBvc3Q+LCB3aGljaCBhcmUgc3RyaW5ncyB5b3Ugd291bGQgcHV0IGluICRQUzEgYmVmb3JlCi0jICAgICAgICBhbmQgYWZ0ZXIgdGhlIHN0YXR1cyBzdHJpbmcgZ2VuZXJhdGVkIGJ5IHRoZSBnaXQtcHJvbXB0Ci0jICAgICAgICBtYWNoaW5lcnkuICBlLmcuCi0jICAgICAgICAgICBQUk9NUFRfQ09NTUFORD0nX19naXRfcHMxICJcdUBcaDpcdyIgIlxcXCQgIicKLSMgICAgICAgIHdpbGwgc2hvdyB1c2VybmFtZSwgYXQtc2lnbiwgaG9zdCwgY29sb24sIGN3ZCwgdGhlbgotIyAgICAgICAgdmFyaW91cyBzdGF0dXMgc3RyaW5nLCBmb2xsb3dlZCBieSBkb2xsYXIgYW5kIFNQLCBhcwotIyAgICAgICAgeW91ciBwcm9tcHQuCisjICAgIDNiKSBBbHRlcm5hdGl2ZWx5LCBmb3IgYSBzbGlnaHRseSBmYXN0ZXIgcHJvbXB0LCBfX2dpdF9wczEgY2FuCisjICAgICAgICBiZSB1c2VkIGZvciBQUk9NUFRfQ09NTUFORCBpbiBCYXNoIG9yIGZvciBwcmVjbWQoKSBpbiBac2gKKyMgICAgICAgIHdpdGggdHdvIHBhcmFtZXRlcnMsIDxwcmU+IGFuZCA8cG9zdD4sIHdoaWNoIGFyZSBzdHJpbmdzCisjICAgICAgICB5b3Ugd291bGQgcHV0IGluICRQUzEgYmVmb3JlIGFuZCBhZnRlciB0aGUgc3RhdHVzIHN0cmluZworIyAgICAgICAgZ2VuZXJhdGVkIGJ5IHRoZSBnaXQtcHJvbXB0IG1hY2hpbmVyeS4gIGUuZy4KKyMgICAgICAgIEJhc2g6IFBST01QVF9DT01NQU5EPSdfX2dpdF9wczEgIlx1QFxoOlx3IiAiXFxcJCAiJworIyAgICAgICAgICB3aWxsIHNob3cgdXNlcm5hbWUsIGF0LXNpZ24sIGhvc3QsIGNvbG9uLCBjd2QsIHRoZW4KKyMgICAgICAgICAgdmFyaW91cyBzdGF0dXMgc3RyaW5nLCBmb2xsb3dlZCBieSBkb2xsYXIgYW5kIFNQLCBhcworIyAgICAgICAgICB5b3VyIHByb21wdC4KKyMgICAgICAgIFpTSDogIHByZWNtZCAoKSB7IF9fZ2l0X3BzMSAiJW4iICI6JX4kICIgInwlcyIgfQorIyAgICAgICAgICB3aWxsIHNob3cgdXNlcm5hbWUsIHBpcGUsIHRoZW4gdmFyaW91cyBzdGF0dXMgc3RyaW5nLAorIyAgICAgICAgICBmb2xsb3dlZCBieSBjb2xvbiwgY3dkLCBkb2xsYXIgYW5kIFNQLCBhcyB5b3VyIHByb21wdC4KICMgICAgICAgIE9wdGlvbmFsbHksIHlvdSBjYW4gc3VwcGx5IGEgdGhpcmQgYXJndW1lbnQgd2l0aCBhIHByaW50ZgogIyAgICAgICAgZm9ybWF0IHN0cmluZyB0byBmaW5ldHVuZSB0aGUgb3V0cHV0IG9mIHRoZSBicmFuY2ggc3RhdHVzCiAjCi0jIFRoZSBhcmd1bWVudCB0byBfX2dpdF9wczEgd2lsbCBiZSBkaXNwbGF5ZWQgb25seSBpZiB5b3UgYXJlIGN1cnJlbnRseQotIyBpbiBhIGdpdCByZXBvc2l0b3J5LiAgVGhlICVzIHRva2VuIHdpbGwgYmUgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQKLSMgYnJhbmNoLgorIyBUaGUgcmVwb3NpdG9yeSBzdGF0dXMgd2lsbCBiZSBkaXNwbGF5ZWQgb25seSBpZiB5b3UgYXJlIGN1cnJlbnRseSBpbiBhCisjIGdpdCByZXBvc2l0b3J5LiBUaGUgJXMgdG9rZW4gaXMgdGhlIHBsYWNlaG9sZGVyIGZvciB0aGUgc2hvd24gc3RhdHVzLgorIworIyBUaGUgcHJvbXB0IHN0YXR1cyBhbHdheXMgaW5jbHVkZXMgdGhlIGN1cnJlbnQgYnJhbmNoIG5hbWUuCiAjCiAjIEluIGFkZGl0aW9uLCBpZiB5b3Ugc2V0IEdJVF9QUzFfU0hPV0RJUlRZU1RBVEUgdG8gYSBub25lbXB0eSB2YWx1ZSwKICMgdW5zdGFnZWQgKCopIGFuZCBzdGFnZWQgKCspIGNoYW5nZXMgd2lsbCBiZSBzaG93biBuZXh0IHRvIHRoZSBicmFuY2gKQEAgLTc3LDMxICs4MSwxMiBAQAogIwogIyBJZiB5b3Ugd291bGQgbGlrZSBhIGNvbG9yZWQgaGludCBhYm91dCB0aGUgY3VycmVudCBkaXJ0eSBzdGF0ZSwgc2V0CiAjIEdJVF9QUzFfU0hPV0NPTE9SSElOVFMgdG8gYSBub25lbXB0eSB2YWx1ZS4gVGhlIGNvbG9ycyBhcmUgYmFzZWQgb24KLSMgdGhlIGNvbG9yZWQgb3V0cHV0IG9mICJnaXQgc3RhdHVzIC1zYiIuCisjIHRoZSBjb2xvcmVkIG91dHB1dCBvZiAiZ2l0IHN0YXR1cyAtc2IiIGFuZCBhcmUgYXZhaWxhYmxlIG9ubHkgd2hlbgorIyB1c2luZyBfX2dpdF9wczEgZm9yIFBST01QVF9DT01NQU5EIG9yIHByZWNtZC4KIAotIyBfX2dpdGRpciBhY2NlcHRzIDAgb3IgMSBhcmd1bWVudHMgKGkuZS4sIGxvY2F0aW9uKQotIyByZXR1cm5zIGxvY2F0aW9uIG9mIC5naXQgcmVwbwotX19naXRkaXIgKCkKLXsKLQkjIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgZHVwbGljYXRlZCBpbiBnaXQtY29tcGxldGlvbi5iYXNoCi0JIyBXaGVuIHVwZGF0aW5nIGl0LCBtYWtlIHN1cmUgeW91IHVwZGF0ZSB0aGUgb3RoZXIgb25lIHRvIG1hdGNoLgotCWlmIFsgLXogIiR7MS19IiBdOyB0aGVuCi0JCWlmIFsgLW4gIiR7X19naXRfZGlyLX0iIF07IHRoZW4KLQkJCWVjaG8gIiRfX2dpdF9kaXIiCi0JCWVsaWYgWyAtbiAiJHtHSVRfRElSLX0iIF07IHRoZW4KLQkJCXRlc3QgLWQgIiR7R0lUX0RJUi19IiB8fCByZXR1cm4gMQotCQkJZWNobyAiJEdJVF9ESVIiCi0JCWVsaWYgWyAtZCAuZ2l0IF07IHRoZW4KLQkJCWVjaG8gLmdpdAotCQllbHNlCi0JCQlnaXQgcmV2LXBhcnNlIC0tZ2l0LWRpciAyPi9kZXYvbnVsbAotCQlmaQotCWVsaWYgWyAtZCAiJDEvLmdpdCIgXTsgdGhlbgotCQllY2hvICIkMS8uZ2l0IgotCWVsc2UKLQkJZWNobyAiJDEiCi0JZmkKLX0KKyMgY2hlY2sgd2hldGhlciBwcmludGYgc3VwcG9ydHMgLXYKK19fZ2l0X3ByaW50Zl9zdXBwb3J0c192PQorcHJpbnRmIC12IF9fZ2l0X3ByaW50Zl9zdXBwb3J0c192IC0tICclcycgeWVzID4vZGV2L251bGwgMj4mMQogCiAjIHN0b3JlcyB0aGUgZGl2ZXJnZW5jZSBmcm9tIHVwc3RyZWFtIGluICRwCiAjIHVzZWQgYnkgR0lUX1BTMV9TSE9XVVBTVFJFQU0KQEAgLTEyNCw3ICsxMDksNyBAQAogCQkJZmkKIAkJCTs7CiAJCXN2bi1yZW1vdGUuKi51cmwpCi0JCQlzdm5fcmVtb3RlWyAkKCgkeyNzdm5fcmVtb3RlW0BdfSArIDEpKSBdPSIkdmFsdWUiCisJCQlzdm5fcmVtb3RlWyQoKCR7I3N2bl9yZW1vdGVbQF19ICsgMSkpXT0iJHZhbHVlIgogCQkJc3ZuX3VybF9wYXR0ZXJuKz0iXFx8JHZhbHVlIgogCQkJdXBzdHJlYW09c3ZuK2dpdCAjIGRlZmF1bHQgdXBzdHJlYW0gaXMgU1ZOIGlmIGF2YWlsYWJsZSwgZWxzZSBnaXQKIAkJCTs7CkBAIC0xNDYsMTAgKzEzMSwxMSBAQAogCXN2biopCiAJCSMgZ2V0IHRoZSB1cHN0cmVhbSBmcm9tIHRoZSAiZ2l0LXN2bi1pZDogLi4uIiBpbiBhIGNvbW1pdCBtZXNzYWdlCiAJCSMgKGdpdC1zdm4gdXNlcyBlc3NlbnRpYWxseSB0aGUgc2FtZSBwcm9jZWR1cmUgaW50ZXJuYWxseSkKLQkJbG9jYWwgc3ZuX3Vwc3RyZWFtPSgkKGdpdCBsb2cgLS1maXJzdC1wYXJlbnQgLTEgXAorCQlsb2NhbCAtYSBzdm5fdXBzdHJlYW0KKwkJc3ZuX3Vwc3RyZWFtPSgkKGdpdCBsb2cgLS1maXJzdC1wYXJlbnQgLTEgXAogCQkJCQktLWdyZXA9Il5naXQtc3ZuLWlkOiBcKCR7c3ZuX3VybF9wYXR0ZXJuIz8/fVwpIiAyPi9kZXYvbnVsbCkpCiAJCWlmIFtbIDAgLW5lICR7I3N2bl91cHN0cmVhbVtAXX0gXV07IHRoZW4KLQkJCXN2bl91cHN0cmVhbT0ke3N2bl91cHN0cmVhbVsgJHsjc3ZuX3Vwc3RyZWFtW0BdfSAtIDIgXX0KKwkJCXN2bl91cHN0cmVhbT0ke3N2bl91cHN0cmVhbVskeyNzdm5fdXBzdHJlYW1bQF19IC0gMl19CiAJCQlzdm5fdXBzdHJlYW09JHtzdm5fdXBzdHJlYW0lQCp9CiAJCQlsb2NhbCBuX3N0b3A9IiR7I3N2bl9yZW1vdGVbQF19IgogCQkJZm9yICgobj0xOyBuIDw9IG5fc3RvcDsgbisrKSk7IGRvCkBAIC0yMjIsNiArMjA4LDUxIEBACiAKIH0KIAorIyBIZWxwZXIgZnVuY3Rpb24gdGhhdCBpcyBtZWFudCB0byBiZSBjYWxsZWQgZnJvbSBfX2dpdF9wczEuICBJdAorIyBpbmplY3RzIGNvbG9yIGNvZGVzIGludG8gdGhlIGFwcHJvcHJpYXRlIGdpdHN0cmluZyB2YXJpYWJsZXMgdXNlZAorIyB0byBidWlsZCBhIGdpdHN0cmluZy4KK19fZ2l0X3BzMV9jb2xvcml6ZV9naXRzdHJpbmcgKCkKK3sKKwlpZiBbWyAtbiAke1pTSF9WRVJTSU9OLX0gXV07IHRoZW4KKwkJbG9jYWwgY19yZWQ9JyVGe3JlZH0nCisJCWxvY2FsIGNfZ3JlZW49JyVGe2dyZWVufScKKwkJbG9jYWwgY19sYmx1ZT0nJUZ7Ymx1ZX0nCisJCWxvY2FsIGNfY2xlYXI9JyVmJworCWVsc2UKKwkJIyBVc2luZyBcWyBhbmQgXF0gYXJvdW5kIGNvbG9ycyBpcyBuZWNlc3NhcnkgdG8gcHJldmVudAorCQkjIGlzc3VlcyB3aXRoIGNvbW1hbmQgbGluZSBlZGl0aW5nL2Jyb3dzaW5nL2NvbXBsZXRpb24hCisJCWxvY2FsIGNfcmVkPSdcW1xlWzMxbVxdJworCQlsb2NhbCBjX2dyZWVuPSdcW1xlWzMybVxdJworCQlsb2NhbCBjX2xibHVlPSdcW1xlWzE7MzRtXF0nCisJCWxvY2FsIGNfY2xlYXI9J1xbXGVbMG1cXScKKwlmaQorCWxvY2FsIGJhZF9jb2xvcj0kY19yZWQKKwlsb2NhbCBva19jb2xvcj0kY19ncmVlbgorCWxvY2FsIGZsYWdzX2NvbG9yPSIkY19sYmx1ZSIKKworCWxvY2FsIGJyYW5jaF9jb2xvcj0iIgorCWlmIFsgJGRldGFjaGVkID0gbm8gXTsgdGhlbgorCQlicmFuY2hfY29sb3I9IiRva19jb2xvciIKKwllbHNlCisJCWJyYW5jaF9jb2xvcj0iJGJhZF9jb2xvciIKKwlmaQorCWM9IiRicmFuY2hfY29sb3IkYyIKKworCXo9IiRjX2NsZWFyJHoiCisJaWYgWyAiJHciID0gIioiIF07IHRoZW4KKwkJdz0iJGJhZF9jb2xvciR3IgorCWZpCisJaWYgWyAtbiAiJGkiIF07IHRoZW4KKwkJaT0iJG9rX2NvbG9yJGkiCisJZmkKKwlpZiBbIC1uICIkcyIgXTsgdGhlbgorCQlzPSIkZmxhZ3NfY29sb3IkcyIKKwlmaQorCWlmIFsgLW4gIiR1IiBdOyB0aGVuCisJCXU9IiRiYWRfY29sb3IkdSIKKwlmaQorCXI9IiRjX2NsZWFyJHIiCit9CiAKICMgX19naXRfcHMxIGFjY2VwdHMgMCBvciAxIGFyZ3VtZW50cyAoaS5lLiwgZm9ybWF0IHN0cmluZykKICMgd2hlbiBjYWxsZWQgZnJvbSBQUzEgdXNpbmcgY29tbWFuZCBzdWJzdGl0dXRpb24KQEAgLTI1NCw0OCArMjg1LDgzIEBACiAJCTs7CiAJZXNhYwogCi0JbG9jYWwgZz0iJChfX2dpdGRpcikiCi0JaWYgWyAteiAiJGciIF07IHRoZW4KKwlsb2NhbCByZXBvX2luZm8gcmV2X3BhcnNlX2V4aXRfY29kZQorCXJlcG9faW5mbz0iJChnaXQgcmV2LXBhcnNlIC0tZ2l0LWRpciAtLWlzLWluc2lkZS1naXQtZGlyIFwKKwkJLS1pcy1iYXJlLXJlcG9zaXRvcnkgLS1pcy1pbnNpZGUtd29yay10cmVlIFwKKwkJLS1zaG9ydCBIRUFEIDI+L2Rldi9udWxsKSIKKwlyZXZfcGFyc2VfZXhpdF9jb2RlPSIkPyIKKworCWlmIFsgLXogIiRyZXBvX2luZm8iIF07IHRoZW4KIAkJaWYgWyAkcGNtb2RlID0geWVzIF07IHRoZW4KIAkJCSNJbiBQQyBtb2RlIFBTMSBhbHdheXMgbmVlZHMgdG8gYmUgc2V0CiAJCQlQUzE9IiRwczFwY19zdGFydCRwczFwY19lbmQiCiAJCWZpCi0JZWxzZQotCQlsb2NhbCByPSIiCi0JCWxvY2FsIGI9IiIKLQkJbG9jYWwgc3RlcD0iIgotCQlsb2NhbCB0b3RhbD0iIgotCQlpZiBbIC1kICIkZy9yZWJhc2UtbWVyZ2UiIF07IHRoZW4KLQkJCWI9IiQoY2F0ICIkZy9yZWJhc2UtbWVyZ2UvaGVhZC1uYW1lIikiCi0JCQlzdGVwPSQoY2F0ICIkZy9yZWJhc2UtbWVyZ2UvbXNnbnVtIikKLQkJCXRvdGFsPSQoY2F0ICIkZy9yZWJhc2UtbWVyZ2UvZW5kIikKLQkJCWlmIFsgLWYgIiRnL3JlYmFzZS1tZXJnZS9pbnRlcmFjdGl2ZSIgXTsgdGhlbgotCQkJCXI9InxSRUJBU0UtaSIKLQkJCWVsc2UKLQkJCQlyPSJ8UkVCQVNFLW0iCi0JCQlmaQotCQllbHNlCi0JCQlpZiBbIC1kICIkZy9yZWJhc2UtYXBwbHkiIF07IHRoZW4KLQkJCQlzdGVwPSQoY2F0ICIkZy9yZWJhc2UtYXBwbHkvbmV4dCIpCi0JCQkJdG90YWw9JChjYXQgIiRnL3JlYmFzZS1hcHBseS9sYXN0IikKLQkJCQlpZiBbIC1mICIkZy9yZWJhc2UtYXBwbHkvcmViYXNpbmciIF07IHRoZW4KLQkJCQkJcj0ifFJFQkFTRSIKLQkJCQllbGlmIFsgLWYgIiRnL3JlYmFzZS1hcHBseS9hcHBseWluZyIgXTsgdGhlbgotCQkJCQlyPSJ8QU0iCi0JCQkJZWxzZQotCQkJCQlyPSJ8QU0vUkVCQVNFIgotCQkJCWZpCi0JCQllbGlmIFsgLWYgIiRnL01FUkdFX0hFQUQiIF07IHRoZW4KLQkJCQlyPSJ8TUVSR0lORyIKLQkJCWVsaWYgWyAtZiAiJGcvQ0hFUlJZX1BJQ0tfSEVBRCIgXTsgdGhlbgotCQkJCXI9InxDSEVSUlktUElDS0lORyIKLQkJCWVsaWYgWyAtZiAiJGcvUkVWRVJUX0hFQUQiIF07IHRoZW4KLQkJCQlyPSJ8UkVWRVJUSU5HIgotCQkJZWxpZiBbIC1mICIkZy9CSVNFQ1RfTE9HIiBdOyB0aGVuCi0JCQkJcj0ifEJJU0VDVElORyIKLQkJCWZpCisJCXJldHVybgorCWZpCiAKLQkJCWI9IiQoZ2l0IHN5bWJvbGljLXJlZiBIRUFEIDI+L2Rldi9udWxsKSIgfHwgeworCWxvY2FsIHNob3J0X3NoYQorCWlmIFsgIiRyZXZfcGFyc2VfZXhpdF9jb2RlIiA9ICIwIiBdOyB0aGVuCisJCXNob3J0X3NoYT0iJHtyZXBvX2luZm8jIyokJ1xuJ30iCisJCXJlcG9faW5mbz0iJHtyZXBvX2luZm8lJCdcbicqfSIKKwlmaQorCWxvY2FsIGluc2lkZV93b3JrdHJlZT0iJHtyZXBvX2luZm8jIyokJ1xuJ30iCisJcmVwb19pbmZvPSIke3JlcG9faW5mbyUkJ1xuJyp9IgorCWxvY2FsIGJhcmVfcmVwbz0iJHtyZXBvX2luZm8jIyokJ1xuJ30iCisJcmVwb19pbmZvPSIke3JlcG9faW5mbyUkJ1xuJyp9IgorCWxvY2FsIGluc2lkZV9naXRkaXI9IiR7cmVwb19pbmZvIyMqJCdcbid9IgorCWxvY2FsIGc9IiR7cmVwb19pbmZvJSQnXG4nKn0iCisKKwlsb2NhbCByPSIiCisJbG9jYWwgYj0iIgorCWxvY2FsIHN0ZXA9IiIKKwlsb2NhbCB0b3RhbD0iIgorCWlmIFsgLWQgIiRnL3JlYmFzZS1tZXJnZSIgXTsgdGhlbgorCQlyZWFkIGIgMj4vZGV2L251bGwgPCIkZy9yZWJhc2UtbWVyZ2UvaGVhZC1uYW1lIgorCQlyZWFkIHN0ZXAgMj4vZGV2L251bGwgPCIkZy9yZWJhc2UtbWVyZ2UvbXNnbnVtIgorCQlyZWFkIHRvdGFsIDI+L2Rldi9udWxsIDwiJGcvcmViYXNlLW1lcmdlL2VuZCIKKwkJaWYgWyAtZiAiJGcvcmViYXNlLW1lcmdlL2ludGVyYWN0aXZlIiBdOyB0aGVuCisJCQlyPSJ8UkVCQVNFLWkiCisJCWVsc2UKKwkJCXI9InxSRUJBU0UtbSIKKwkJZmkKKwllbHNlCisJCWlmIFsgLWQgIiRnL3JlYmFzZS1hcHBseSIgXTsgdGhlbgorCQkJcmVhZCBzdGVwIDI+L2Rldi9udWxsIDwiJGcvcmViYXNlLWFwcGx5L25leHQiCisJCQlyZWFkIHRvdGFsIDI+L2Rldi9udWxsIDwiJGcvcmViYXNlLWFwcGx5L2xhc3QiCisJCQlpZiBbIC1mICIkZy9yZWJhc2UtYXBwbHkvcmViYXNpbmciIF07IHRoZW4KKwkJCQlyZWFkIGIgMj4vZGV2L251bGwgPCIkZy9yZWJhc2UtYXBwbHkvaGVhZC1uYW1lIgorCQkJCXI9InxSRUJBU0UiCisJCQllbGlmIFsgLWYgIiRnL3JlYmFzZS1hcHBseS9hcHBseWluZyIgXTsgdGhlbgorCQkJCXI9InxBTSIKKwkJCWVsc2UKKwkJCQlyPSJ8QU0vUkVCQVNFIgorCQkJZmkKKwkJZWxpZiBbIC1mICIkZy9NRVJHRV9IRUFEIiBdOyB0aGVuCisJCQlyPSJ8TUVSR0lORyIKKwkJZWxpZiBbIC1mICIkZy9DSEVSUllfUElDS19IRUFEIiBdOyB0aGVuCisJCQlyPSJ8Q0hFUlJZLVBJQ0tJTkciCisJCWVsaWYgWyAtZiAiJGcvUkVWRVJUX0hFQUQiIF07IHRoZW4KKwkJCXI9InxSRVZFUlRJTkciCisJCWVsaWYgWyAtZiAiJGcvQklTRUNUX0xPRyIgXTsgdGhlbgorCQkJcj0ifEJJU0VDVElORyIKKwkJZmkKKworCQlpZiBbIC1uICIkYiIgXTsgdGhlbgorCQkJOgorCQllbGlmIFsgLWggIiRnL0hFQUQiIF07IHRoZW4KKwkJCSMgc3ltbGluayBzeW1ib2xpYyByZWYKKwkJCWI9IiQoZ2l0IHN5bWJvbGljLXJlZiBIRUFEIDI+L2Rldi9udWxsKSIKKwkJZWxzZQorCQkJbG9jYWwgaGVhZD0iIgorCQkJaWYgISByZWFkIGhlYWQgMj4vZGV2L251bGwgPCIkZy9IRUFEIjsgdGhlbgorCQkJCWlmIFsgJHBjbW9kZSA9IHllcyBdOyB0aGVuCisJCQkJCVBTMT0iJHBzMXBjX3N0YXJ0JHBzMXBjX2VuZCIKKwkJCQlmaQorCQkJCXJldHVybgorCQkJZmkKKwkJCSMgaXMgaXQgYSBzeW1ib2xpYyByZWY/CisJCQliPSIke2hlYWQjcmVmOiB9IgorCQkJaWYgWyAiJGhlYWQiID0gIiRiIiBdOyB0aGVuCiAJCQkJZGV0YWNoZWQ9eWVzCiAJCQkJYj0iJCgKIAkJCQljYXNlICIke0dJVF9QUzFfREVTQ1JJQkVfU1RZTEUtfSIgaW4KQEAgLTMwOSwxMDQgKzM3NSw3NSBAQAogCQkJCQlnaXQgZGVzY3JpYmUgLS10YWdzIC0tZXhhY3QtbWF0Y2ggSEVBRCA7OwogCQkJCWVzYWMgMj4vZGV2L251bGwpIiB8fAogCi0JCQkJYj0iJChjdXQgLWMxLTcgIiRnL0hFQUQiIDI+L2Rldi9udWxsKS4uLiIgfHwKLQkJCQliPSJ1bmtub3duIgorCQkJCWI9IiRzaG9ydF9zaGEuLi4iCiAJCQkJYj0iKCRiKSIKLQkJCX0KLQkJZmkKLQotCQlpZiBbIC1uICIkc3RlcCIgXSAmJiBbIC1uICIkdG90YWwiIF07IHRoZW4KLQkJCXI9IiRyICRzdGVwLyR0b3RhbCIKLQkJZmkKLQotCQlsb2NhbCB3PSIiCi0JCWxvY2FsIGk9IiIKLQkJbG9jYWwgcz0iIgotCQlsb2NhbCB1PSIiCi0JCWxvY2FsIGM9IiIKLQkJbG9jYWwgcD0iIgotCi0JCWlmIFsgInRydWUiID0gIiQoZ2l0IHJldi1wYXJzZSAtLWlzLWluc2lkZS1naXQtZGlyIDI+L2Rldi9udWxsKSIgXTsgdGhlbgotCQkJaWYgWyAidHJ1ZSIgPSAiJChnaXQgcmV2LXBhcnNlIC0taXMtYmFyZS1yZXBvc2l0b3J5IDI+L2Rldi9udWxsKSIgXTsgdGhlbgotCQkJCWM9IkJBUkU6IgotCQkJZWxzZQotCQkJCWI9IkdJVF9ESVIhIgotCQkJZmkKLQkJZWxpZiBbICJ0cnVlIiA9ICIkKGdpdCByZXYtcGFyc2UgLS1pcy1pbnNpZGUtd29yay10cmVlIDI+L2Rldi9udWxsKSIgXTsgdGhlbgotCQkJaWYgWyAtbiAiJHtHSVRfUFMxX1NIT1dESVJUWVNUQVRFLX0iIF0gJiYKLQkJCSAgIFsgIiQoZ2l0IGNvbmZpZyAtLWJvb2wgYmFzaC5zaG93RGlydHlTdGF0ZSkiICE9ICJmYWxzZSIgXQotCQkJdGhlbgotCQkJCWdpdCBkaWZmIC0tbm8tZXh0LWRpZmYgLS1xdWlldCAtLWV4aXQtY29kZSB8fCB3PSIqIgotCQkJCWlmIGdpdCByZXYtcGFyc2UgLS1xdWlldCAtLXZlcmlmeSBIRUFEID4vZGV2L251bGw7IHRoZW4KLQkJCQkJZ2l0IGRpZmYtaW5kZXggLS1jYWNoZWQgLS1xdWlldCBIRUFEIC0tIHx8IGk9IisiCi0JCQkJZWxzZQotCQkJCQlpPSIjIgotCQkJCWZpCi0JCQlmaQotCQkJaWYgWyAtbiAiJHtHSVRfUFMxX1NIT1dTVEFTSFNUQVRFLX0iIF07IHRoZW4KLQkJCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvc3Rhc2ggPi9kZXYvbnVsbCAyPiYxICYmIHM9IiQiCi0JCQlmaQotCi0JCQlpZiBbIC1uICIke0dJVF9QUzFfU0hPV1VOVFJBQ0tFREZJTEVTLX0iIF0gJiYKLQkJCSAgIFsgIiQoZ2l0IGNvbmZpZyAtLWJvb2wgYmFzaC5zaG93VW50cmFja2VkRmlsZXMpIiAhPSAiZmFsc2UiIF0gJiYKLQkJCSAgIFsgLW4gIiQoZ2l0IGxzLWZpbGVzIC0tb3RoZXJzIC0tZXhjbHVkZS1zdGFuZGFyZCkiIF0KLQkJCXRoZW4KLQkJCQl1PSIlJHtaU0hfVkVSU0lPTislfSIKLQkJCWZpCi0KLQkJCWlmIFsgLW4gIiR7R0lUX1BTMV9TSE9XVVBTVFJFQU0tfSIgXTsgdGhlbgotCQkJCV9fZ2l0X3BzMV9zaG93X3Vwc3RyZWFtCiAJCQlmaQogCQlmaQorCWZpCiAKLQkJbG9jYWwgZj0iJHckaSRzJHUiCi0JCWlmIFsgJHBjbW9kZSA9IHllcyBdOyB0aGVuCi0JCQlsb2NhbCBnaXRzdHJpbmc9Ci0JCQlpZiBbIC1uICIke0dJVF9QUzFfU0hPV0NPTE9SSElOVFMtfSIgXTsgdGhlbgotCQkJCWxvY2FsIGNfcmVkPSdcZVszMW0nCi0JCQkJbG9jYWwgY19ncmVlbj0nXGVbMzJtJwotCQkJCWxvY2FsIGNfbGJsdWU9J1xlWzE7MzRtJwotCQkJCWxvY2FsIGNfY2xlYXI9J1xlWzBtJwotCQkJCWxvY2FsIGJhZF9jb2xvcj0kY19yZWQKLQkJCQlsb2NhbCBva19jb2xvcj0kY19ncmVlbgotCQkJCWxvY2FsIGJyYW5jaF9jb2xvcj0iJGNfY2xlYXIiCi0JCQkJbG9jYWwgZmxhZ3NfY29sb3I9IiRjX2xibHVlIgotCQkJCWxvY2FsIGJyYW5jaHN0cmluZz0iJGMke2IjI3JlZnMvaGVhZHMvfSIKKwlpZiBbIC1uICIkc3RlcCIgXSAmJiBbIC1uICIkdG90YWwiIF07IHRoZW4KKwkJcj0iJHIgJHN0ZXAvJHRvdGFsIgorCWZpCiAKLQkJCQlpZiBbICRkZXRhY2hlZCA9IG5vIF07IHRoZW4KLQkJCQkJYnJhbmNoX2NvbG9yPSIkb2tfY29sb3IiCi0JCQkJZWxzZQotCQkJCQlicmFuY2hfY29sb3I9IiRiYWRfY29sb3IiCi0JCQkJZmkKKwlsb2NhbCB3PSIiCisJbG9jYWwgaT0iIgorCWxvY2FsIHM9IiIKKwlsb2NhbCB1PSIiCisJbG9jYWwgYz0iIgorCWxvY2FsIHA9IiIKIAotCQkJCSMgU2V0dGluZyBnaXRzdHJpbmcgZGlyZWN0bHkgd2l0aCBcWyBhbmQgXF0gYXJvdW5kIGNvbG9ycwotCQkJCSMgaXMgbmVjZXNzYXJ5IHRvIHByZXZlbnQgd3JhcHBpbmcgaXNzdWVzIQotCQkJCWdpdHN0cmluZz0iXFskYnJhbmNoX2NvbG9yXF0kYnJhbmNoc3RyaW5nXFskY19jbGVhclxdIgotCi0JCQkJaWYgWyAtbiAiJHckaSRzJHUkciRwIiBdOyB0aGVuCi0JCQkJCWdpdHN0cmluZz0iJGdpdHN0cmluZyAiCi0JCQkJZmkKLQkJCQlpZiBbICIkdyIgPSAiKiIgXTsgdGhlbgotCQkJCQlnaXRzdHJpbmc9IiRnaXRzdHJpbmdcWyRiYWRfY29sb3JcXSR3IgotCQkJCWZpCi0JCQkJaWYgWyAtbiAiJGkiIF07IHRoZW4KLQkJCQkJZ2l0c3RyaW5nPSIkZ2l0c3RyaW5nXFskb2tfY29sb3JcXSRpIgotCQkJCWZpCi0JCQkJaWYgWyAtbiAiJHMiIF07IHRoZW4KLQkJCQkJZ2l0c3RyaW5nPSIkZ2l0c3RyaW5nXFskZmxhZ3NfY29sb3JcXSRzIgotCQkJCWZpCi0JCQkJaWYgWyAtbiAiJHUiIF07IHRoZW4KLQkJCQkJZ2l0c3RyaW5nPSIkZ2l0c3RyaW5nXFskYmFkX2NvbG9yXF0kdSIKLQkJCQlmaQotCQkJCWdpdHN0cmluZz0iJGdpdHN0cmluZ1xbJGNfY2xlYXJcXSRyJHAiCi0JCQllbHNlCi0JCQkJZ2l0c3RyaW5nPSIkYyR7YiMjcmVmcy9oZWFkcy99JHtmOisgJGZ9JHIkcCIKLQkJCWZpCi0JCQlnaXRzdHJpbmc9JChwcmludGYgLS0gIiRwcmludGZfZm9ybWF0IiAiJGdpdHN0cmluZyIpCi0JCQlQUzE9IiRwczFwY19zdGFydCRnaXRzdHJpbmckcHMxcGNfZW5kIgorCWlmIFsgInRydWUiID0gIiRpbnNpZGVfZ2l0ZGlyIiBdOyB0aGVuCisJCWlmIFsgInRydWUiID0gIiRiYXJlX3JlcG8iIF07IHRoZW4KKwkJCWM9IkJBUkU6IgogCQllbHNlCi0JCQkjIE5PIGNvbG9yIG9wdGlvbiB1bmxlc3MgaW4gUFJPTVBUX0NPTU1BTkQgbW9kZQotCQkJcHJpbnRmIC0tICIkcHJpbnRmX2Zvcm1hdCIgIiRjJHtiIyNyZWZzL2hlYWRzL30ke2Y6KyAkZn0kciRwIgorCQkJYj0iR0lUX0RJUiEiCiAJCWZpCisJZWxpZiBbICJ0cnVlIiA9ICIkaW5zaWRlX3dvcmt0cmVlIiBdOyB0aGVuCisJCWlmIFsgLW4gIiR7R0lUX1BTMV9TSE9XRElSVFlTVEFURS19IiBdICYmCisJCSAgIFsgIiQoZ2l0IGNvbmZpZyAtLWJvb2wgYmFzaC5zaG93RGlydHlTdGF0ZSkiICE9ICJmYWxzZSIgXQorCQl0aGVuCisJCQlnaXQgZGlmZiAtLW5vLWV4dC1kaWZmIC0tcXVpZXQgLS1leGl0LWNvZGUgfHwgdz0iKiIKKwkJCWlmIFsgLW4gIiRzaG9ydF9zaGEiIF07IHRoZW4KKwkJCQlnaXQgZGlmZi1pbmRleCAtLWNhY2hlZCAtLXF1aWV0IEhFQUQgLS0gfHwgaT0iKyIKKwkJCWVsc2UKKwkJCQlpPSIjIgorCQkJZmkKKwkJZmkKKwkJaWYgWyAtbiAiJHtHSVRfUFMxX1NIT1dTVEFTSFNUQVRFLX0iIF0gJiYKKwkJICAgWyAtciAiJGcvcmVmcy9zdGFzaCIgXTsgdGhlbgorCQkJcz0iJCIKKwkJZmkKKworCQlpZiBbIC1uICIke0dJVF9QUzFfU0hPV1VOVFJBQ0tFREZJTEVTLX0iIF0gJiYKKwkJICAgWyAiJChnaXQgY29uZmlnIC0tYm9vbCBiYXNoLnNob3dVbnRyYWNrZWRGaWxlcykiICE9ICJmYWxzZSIgXSAmJgorCQkgICBnaXQgbHMtZmlsZXMgLS1vdGhlcnMgLS1leGNsdWRlLXN0YW5kYXJkIC0tZXJyb3ItdW5tYXRjaCAtLSAnKicgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbAorCQl0aGVuCisJCQl1PSIlJHtaU0hfVkVSU0lPTislfSIKKwkJZmkKKworCQlpZiBbIC1uICIke0dJVF9QUzFfU0hPV1VQU1RSRUFNLX0iIF07IHRoZW4KKwkJCV9fZ2l0X3BzMV9zaG93X3Vwc3RyZWFtCisJCWZpCisJZmkKKworCWxvY2FsIHo9IiR7R0lUX1BTMV9TVEFURVNFUEFSQVRPUi0iICJ9IgorCisJIyBOTyBjb2xvciBvcHRpb24gdW5sZXNzIGluIFBST01QVF9DT01NQU5EIG1vZGUKKwlpZiBbICRwY21vZGUgPSB5ZXMgXSAmJiBbIC1uICIke0dJVF9QUzFfU0hPV0NPTE9SSElOVFMtfSIgXTsgdGhlbgorCQlfX2dpdF9wczFfY29sb3JpemVfZ2l0c3RyaW5nCisJZmkKKworCWxvY2FsIGY9IiR3JGkkcyR1IgorCWxvY2FsIGdpdHN0cmluZz0iJGMke2IjI3JlZnMvaGVhZHMvfSR7ZjorJHokZn0kciRwIgorCisJaWYgWyAkcGNtb2RlID0geWVzIF07IHRoZW4KKwkJaWYgWyAiJHtfX2dpdF9wcmludGZfc3VwcG9ydHNfdi19IiAhPSB5ZXMgXTsgdGhlbgorCQkJZ2l0c3RyaW5nPSQocHJpbnRmIC0tICIkcHJpbnRmX2Zvcm1hdCIgIiRnaXRzdHJpbmciKQorCQllbHNlCisJCQlwcmludGYgLXYgZ2l0c3RyaW5nIC0tICIkcHJpbnRmX2Zvcm1hdCIgIiRnaXRzdHJpbmciCisJCWZpCisJCVBTMT0iJHBzMXBjX3N0YXJ0JGdpdHN0cmluZyRwczFwY19lbmQiCisJZWxzZQorCQlwcmludGYgLS0gIiRwcmludGZfZm9ybWF0IiAiJGdpdHN0cmluZyIKIAlmaQogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jb250YWN0cy9naXQtY29udGFjdHMgYi9jb250cmliL2NvbnRhY3RzL2dpdC1jb250YWN0cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kODBmN2QxCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9jb250YWN0cy9naXQtY29udGFjdHMKQEAgLTAsMCArMSwxODggQEAKKyMhL3Vzci9iaW4vcGVybAorCisjIExpc3QgcGVvcGxlIHdobyBtaWdodCBiZSBpbnRlcmVzdGVkIGluIGEgcGF0Y2guICBVc2VmdWwgYXMgdGhlIGFyZ3VtZW50IHRvCisjIGdpdC1zZW5kLWVtYWlsIC0tY2MtY21kIG9wdGlvbiwgYW5kIGluIG90aGVyIHNpdHVhdGlvbnMuCisjCisjIFVzYWdlOiBnaXQgY29udGFjdHMgPGZpbGUgfCByZXYtbGlzdCBvcHRpb24+IC4uLgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIElQQzo6T3BlbjI7CisKK215ICRzaW5jZSA9ICc1LXllYXJzLWFnbyc7CitteSAkbWluX3BlcmNlbnQgPSAxMDsKK215ICRsYWJlbHNfcnggPSBxci9TaWduZWQtb2ZmLWJ5fFJldmlld2VkLWJ5fEFja2VkLWJ5fENjL2k7CitteSAlc2VlbjsKKworc3ViIGZvcm1hdF9jb250YWN0IHsKKwlteSAoJG5hbWUsICRlbWFpbCkgPSBAXzsKKwlyZXR1cm4gIiRuYW1lIDwkZW1haWw+IjsKK30KKworc3ViIHBhcnNlX2NvbW1pdCB7CisJbXkgKCRjb21taXQsICRkYXRhKSA9IEBfOworCW15ICRjb250YWN0cyA9ICRjb21taXQtPntjb250YWN0c307CisJbXkgJGluYm9keSA9IDA7CisJZm9yIChzcGxpdCgvXi9tLCAkZGF0YSkpIHsKKwkJaWYgKG5vdCAkaW5ib2R5KSB7CisJCQlpZiAoL15hdXRob3IgKFtePD5dKykgPChcUyspPiAuKyQvKSB7CisJCQkJJGNvbnRhY3RzLT57Zm9ybWF0X2NvbnRhY3QoJDEsICQyKX0gPSAxOworCQkJfSBlbHNpZiAoL14kLykgeworCQkJCSRpbmJvZHkgPSAxOworCQkJfQorCQl9IGVsc2lmICgvXiRsYWJlbHNfcng6XHMrKFtePD5dKylccys8KFxTKz8pPiQvbykgeworCQkJJGNvbnRhY3RzLT57Zm9ybWF0X2NvbnRhY3QoJDEsICQyKX0gPSAxOworCQl9CisJfQorfQorCitzdWIgaW1wb3J0X2NvbW1pdHMgeworCW15ICgkY29tbWl0cykgPSBAXzsKKwlyZXR1cm4gdW5sZXNzICUkY29tbWl0czsKKwlteSAkcGlkID0gb3BlbjIgbXkgJHJlYWRlciwgbXkgJHdyaXRlciwgcXcoZ2l0IGNhdC1maWxlIC0tYmF0Y2gpOworCWZvciBteSAkaWQgKGtleXMoJSRjb21taXRzKSkgeworCQlwcmludCAkd3JpdGVyICIkaWRcbiI7CisJCW15ICRsaW5lID0gPCRyZWFkZXI+OworCQlpZiAoJGxpbmUgPX4gL14oWzAtOWEtZl17NDB9KSBjb21taXQgKFxkKykvKSB7CisJCQlteSAoJGNpZCwgJGxlbikgPSAoJDEsICQyKTsKKwkJCWRpZSAiZXhwZWN0ZWQgJGlkIGJ1dCBnb3QgJGNpZFxuIiB1bmxlc3MgJGlkIGVxICRjaWQ7CisJCQlteSAkZGF0YTsKKwkJCSMgY2F0LWZpbGUgZW1pdHMgbmV3bGluZSBhZnRlciBkYXRhLCBzbyByZWFkIGxlbisxCisJCQlyZWFkICRyZWFkZXIsICRkYXRhLCAkbGVuICsgMTsKKwkJCXBhcnNlX2NvbW1pdCgkY29tbWl0cy0+eyRpZH0sICRkYXRhKTsKKwkJfQorCX0KKwljbG9zZSAkcmVhZGVyOworCWNsb3NlICR3cml0ZXI7CisJd2FpdHBpZCgkcGlkLCAwKTsKKwlkaWUgImdpdC1jYXQtZmlsZSBlcnJvcjogJD9cbiIgaWYgJD87Cit9CisKK3N1YiBnZXRfYmxhbWUgeworCW15ICgkY29tbWl0cywgJHNvdXJjZSwgJHN0YXJ0LCAkbGVuLCAkZnJvbSkgPSBAXzsKKwkkbGVuID0gMSB1bmxlc3MgZGVmaW5lZCgkbGVuKTsKKwlyZXR1cm4gaWYgJGxlbiA9PSAwOworCW9wZW4gbXkgJGYsICctfCcsCisJCXF3KGdpdCBibGFtZSAtLXBvcmNlbGFpbiAtQyksICctTCcsICIkc3RhcnQsKyRsZW4iLAorCQknLS1zaW5jZScsICRzaW5jZSwgIiRmcm9tXiIsICctLScsICRzb3VyY2Ugb3IgZGllOworCXdoaWxlICg8JGY+KSB7CisJCWlmICgvXihbMC05YS1mXXs0MH0pIFxkKyBcZCsgXGQrJC8pIHsKKwkJCW15ICRpZCA9ICQxOworCQkJJGNvbW1pdHMtPnskaWR9ID0geyBpZCA9PiAkaWQsIGNvbnRhY3RzID0+IHt9IH0KKwkJCQl1bmxlc3MgJHNlZW57JGlkfTsKKwkJCSRzZWVueyRpZH0gPSAxOworCQl9CisJfQorCWNsb3NlICRmOworfQorCitzdWIgc2Nhbl9wYXRjaGVzIHsKKwlteSAoJGNvbW1pdHMsICRpZCwgJGYpID0gQF87CisJbXkgJHNvdXJjZTsKKwl3aGlsZSAoPCRmPikgeworCQlpZiAoL15Gcm9tIChbMC05YS1mXXs0MH0pIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMSQvKSB7CisJCQkkaWQgPSAkMTsKKwkJCSRzZWVueyRpZH0gPSAxOworCQl9CisJCW5leHQgdW5sZXNzICRpZDsKKwkJaWYgKG17Xi0tLSAoPzphLyguKyl8L2Rldi9udWxsKSR9KSB7CisJCQkkc291cmNlID0gJDE7CisJCX0gZWxzaWYgKC9eLS0tIC8pIHsKKwkJCWRpZSAiQ2Fubm90IHBhcnNlIGh1bmsgc291cmNlOiAkX1xuIjsKKwkJfSBlbHNpZiAoL15AQCAtKFxkKykoPzosKFxkKykpPy8gJiYgJHNvdXJjZSkgeworCQkJZ2V0X2JsYW1lKCRjb21taXRzLCAkc291cmNlLCAkMSwgJDIsICRpZCk7CisJCX0KKwl9Cit9CisKK3N1YiBzY2FuX3BhdGNoX2ZpbGUgeworCW15ICgkY29tbWl0cywgJGZpbGUpID0gQF87CisJb3BlbiBteSAkZiwgJzwnLCAkZmlsZSBvciBkaWUgInJlYWQgZmFpbHVyZTogJGZpbGU6ICQhXG4iOworCXNjYW5fcGF0Y2hlcygkY29tbWl0cywgdW5kZWYsICRmKTsKKwljbG9zZSAkZjsKK30KKworc3ViIHBhcnNlX3Jldl9hcmdzIHsKKwlteSBAYXJncyA9IEBfOworCW9wZW4gbXkgJGYsICctfCcsCisJCXF3KGdpdCByZXYtcGFyc2UgLS1yZXZzLW9ubHkgLS1kZWZhdWx0IEhFQUQgLS1zeW1ib2xpYyksIEBhcmdzCisJCW9yIGRpZTsKKwlteSBAcmV2czsKKwl3aGlsZSAoPCRmPikgeworCQljaG9tcDsKKwkJcHVzaCBAcmV2cywgJF87CisJfQorCWNsb3NlICRmOworCXJldHVybiBAcmV2cyBpZiBzY2FsYXIoQHJldnMpICE9IDE7CisJcmV0dXJuICJeJHJldnNbMF0iLCAnSEVBRCcgdW5sZXNzICRyZXZzWzBdID1+IC9eLS87CisJcmV0dXJuICRyZXZzWzBdLCAnSEVBRCc7Cit9CisKK3N1YiBzY2FuX3Jldl9hcmdzIHsKKwlteSAoJGNvbW1pdHMsICRhcmdzKSA9IEBfOworCW15IEByZXZzID0gcGFyc2VfcmV2X2FyZ3MoQCRhcmdzKTsKKwlvcGVuIG15ICRmLCAnLXwnLCBxdyhnaXQgcmV2LWxpc3QgLS1yZXZlcnNlKSwgQHJldnMgb3IgZGllOworCXdoaWxlICg8JGY+KSB7CisJCWNob21wOworCQlteSAkaWQgPSAkXzsKKwkJJHNlZW57JGlkfSA9IDE7CisJCW9wZW4gbXkgJGcsICctfCcsIHF3KGdpdCBzaG93IC1DIC0tb25lbGluZSksICRpZCBvciBkaWU7CisJCXNjYW5fcGF0Y2hlcygkY29tbWl0cywgJGlkLCAkZyk7CisJCWNsb3NlICRnOworCX0KKwljbG9zZSAkZjsKK30KKworc3ViIG1haWxtYXBfY29udGFjdHMgeworCW15ICgkY29udGFjdHMpID0gQF87CisJbXkgJW1hcHBlZDsKKwlteSAkcGlkID0gb3BlbjIgbXkgJHJlYWRlciwgbXkgJHdyaXRlciwgcXcoZ2l0IGNoZWNrLW1haWxtYXAgLS1zdGRpbik7CisJZm9yIG15ICRjb250YWN0IChrZXlzKCUkY29udGFjdHMpKSB7CisJCXByaW50ICR3cml0ZXIgIiRjb250YWN0XG4iOworCQlteSAkY2Fub25pY2FsID0gPCRyZWFkZXI+OworCQljaG9tcCAkY2Fub25pY2FsOworCQkkbWFwcGVkeyRjYW5vbmljYWx9ICs9ICRjb250YWN0cy0+eyRjb250YWN0fTsKKwl9CisJY2xvc2UgJHJlYWRlcjsKKwljbG9zZSAkd3JpdGVyOworCXdhaXRwaWQoJHBpZCwgMCk7CisJZGllICJnaXQtY2hlY2stbWFpbG1hcCBlcnJvcjogJD9cbiIgaWYgJD87CisJcmV0dXJuIFwlbWFwcGVkOworfQorCitpZiAoIUBBUkdWKSB7CisJZGllICJObyBpbnB1dCByZXZpc2lvbnMgb3IgcGF0Y2ggZmlsZXNcbiI7Cit9CisKK215IChAZmlsZXMsIEByZXZfYXJncyk7Citmb3IgKEBBUkdWKSB7CisJaWYgKC1lKSB7CisJCXB1c2ggQGZpbGVzLCAkXzsKKwl9IGVsc2UgeworCQlwdXNoIEByZXZfYXJncywgJF87CisJfQorfQorCitteSAlY29tbWl0czsKK2ZvciAoQGZpbGVzKSB7CisJc2Nhbl9wYXRjaF9maWxlKFwlY29tbWl0cywgJF8pOworfQoraWYgKEByZXZfYXJncykgeworCXNjYW5fcmV2X2FyZ3MoXCVjb21taXRzLCBcQHJldl9hcmdzKQorfQoraW1wb3J0X2NvbW1pdHMoXCVjb21taXRzKTsKKworbXkgJGNvbnRhY3RzID0ge307Citmb3IgbXkgJGNvbW1pdCAodmFsdWVzICVjb21taXRzKSB7CisJZm9yIG15ICRjb250YWN0IChrZXlzICV7JGNvbW1pdC0+e2NvbnRhY3RzfX0pIHsKKwkJJGNvbnRhY3RzLT57JGNvbnRhY3R9Kys7CisJfQorfQorJGNvbnRhY3RzID0gbWFpbG1hcF9jb250YWN0cygkY29udGFjdHMpOworCitteSAkbmNvbW1pdHMgPSBzY2FsYXIoa2V5cyAlY29tbWl0cyk7Citmb3IgbXkgJGNvbnRhY3QgKGtleXMgJSRjb250YWN0cykgeworCW15ICRwZXJjZW50ID0gJGNvbnRhY3RzLT57JGNvbnRhY3R9ICogMTAwIC8gJG5jb21taXRzOworCW5leHQgaWYgJHBlcmNlbnQgPCAkbWluX3BlcmNlbnQ7CisJcHJpbnQgIiRjb250YWN0XG4iOworfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jb250YWN0cy9naXQtY29udGFjdHMudHh0IGIvY29udHJpYi9jb250YWN0cy9naXQtY29udGFjdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkOTE0ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2NvbnRhY3RzL2dpdC1jb250YWN0cy50eHQKQEAgLTAsMCArMSw5NCBAQAorZ2l0LWNvbnRhY3RzKDEpCis9PT09PT09PT09PT09PT0KKworTkFNRQorLS0tLQorZ2l0LWNvbnRhY3RzIC0gTGlzdCBwZW9wbGUgd2hvIG1pZ2h0IGJlIGludGVyZXN0ZWQgaW4gYSBzZXQgb2YgY2hhbmdlcworCisKK1NZTk9QU0lTCistLS0tLS0tLQorW3ZlcnNlXQorJ2dpdCBjb250YWN0cycgKDxwYXRjaD58PHJhbmdlPnw8cmV2PikuLi4KKworCitERVNDUklQVElPTgorLS0tLS0tLS0tLS0KKworR2l2ZW4gYSBzZXQgb2YgY2hhbmdlcywgc3BlY2lmaWVkIGFzIHBhdGNoIGZpbGVzIG9yIHJldmlzaW9ucywgZGV0ZXJtaW5lIHBlb3BsZQord2hvIG1pZ2h0IGJlIGludGVyZXN0ZWQgaW4gdGhvc2UgY2hhbmdlcy4gIFRoaXMgaXMgZG9uZSBieSBjb25zdWx0aW5nIHRoZQoraGlzdG9yeSBvZiBlYWNoIHBhdGNoIG9yIHJldmlzaW9uIGh1bmsgdG8gZmluZCBwZW9wbGUgbWVudGlvbmVkIGJ5IGNvbW1pdHMKK3doaWNoIHRvdWNoZWQgdGhlIGxpbmVzIG9mIGZpbGVzIHVuZGVyIGNvbnNpZGVyYXRpb24uCisKK0lucHV0IGNvbnNpc3RzIG9mIG9uZSBvciBtb3JlIHBhdGNoIGZpbGVzIG9yIHJldmlzaW9uIGFyZ3VtZW50cy4gIEEgcmV2aXNpb24KK2FyZ3VtZW50IGNhbiBiZSBhIHJhbmdlIG9yIGEgc2luZ2xlIGA8cmV2PmAgd2hpY2ggaXMgaW50ZXJwcmV0ZWQgYXMKK2A8cmV2Pi4uSEVBRGAsIHRodXMgdGhlIHNhbWUgcmV2aXNpb24gYXJndW1lbnRzIGFyZSBhY2NlcHRlZCBhcyBmb3IKK2xpbmtnaXQ6Z2l0LWZvcm1hdC1wYXRjaFsxXS4gUGF0Y2ggZmlsZXMgYW5kIHJldmlzaW9uIGFyZ3VtZW50cyBjYW4gYmUgY29tYmluZWQKK2luIHRoZSBzYW1lIGludm9jYXRpb24uCisKK1RoaXMgY29tbWFuZCBjYW4gYmUgdXNlZnVsIGZvciBkZXRlcm1pbmluZyB0aGUgbGlzdCBvZiBwZW9wbGUgd2l0aCB3aG9tIHRvCitkaXNjdXNzIHByb3Bvc2VkIGNoYW5nZXMsIG9yIGZvciBmaW5kaW5nIHRoZSBsaXN0IG9mIHJlY2lwaWVudHMgdG8gQ2M6IHdoZW4KK3N1Ym1pdHRpbmcgYSBwYXRjaCBzZXJpZXMgdmlhIGBnaXQgc2VuZC1lbWFpbGAuIEZvciB0aGUgbGF0dGVyIGNhc2UsIGBnaXQKK2NvbnRhY3RzYCBjYW4gYmUgdXNlZCBhcyB0aGUgYXJndW1lbnQgdG8gYGdpdCBzZW5kLWVtYWlsYCdzIGAtLWNjLWNtZGAgb3B0aW9uLgorCisKK0RJU0NVU1NJT04KKy0tLS0tLS0tLS0KKworYGdpdCBibGFtZWAgaXMgaW52b2tlZCBmb3IgZWFjaCBodW5rIGluIGEgcGF0Y2ggZmlsZSBvciByZXZpc2lvbi4gIEZvciBlYWNoCitjb21taXQgbWVudGlvbmVkIGJ5IGBnaXQgYmxhbWVgLCB0aGUgY29tbWl0IG1lc3NhZ2UgaXMgY29uc3VsdGVkIGZvciBwZW9wbGUgd2hvCithdXRob3JlZCwgcmV2aWV3ZWQsIHNpZ25lZCwgYWNrbm93bGVkZ2VkLCBvciB3ZXJlIENjOidkLiAgT25jZSB0aGUgbGlzdCBvZgorcGFydGljaXBhbnRzIGlzIGtub3duLCBlYWNoIHBlcnNvbidzIHJlbGV2YW5jZSBpcyBjb21wdXRlZCBieSBjb25zaWRlcmluZyBob3cKK21hbnkgY29tbWl0cyBtZW50aW9uZWQgdGhhdCBwZXJzb24gY29tcGFyZWQgd2l0aCB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbW1pdHMKK3VuZGVyIGNvbnNpZGVyYXRpb24uICBUaGUgZmluYWwgb3V0cHV0IGNvbnNpc3RzIG9ubHkgb2YgcGFydGljaXBhbnRzIHdobyBleGNlZWQKK2EgbWluaW11bSB0aHJlc2hvbGQgb2YgcGFydGljaXBhdGlvbi4KKworCitPVVRQVVQKKy0tLS0tLQorCitGb3IgZWFjaCBwZXJzb24gb2YgaW50ZXJlc3QsIGEgc2luZ2xlIGxpbmUgaXMgb3V0cHV0LCB0ZXJtaW5hdGVkIGJ5IGEgbmV3bGluZS4KK0lmIHRoZSBwZXJzb24ncyBuYW1lIGlzIGtub3duLCBgYE5hbWUgJCQ8dXNlckBob3N0PiQkJycgaXMgcHJpbnRlZDsgb3RoZXJ3aXNlCitvbmx5IGBgJCQ8dXNlckBob3N0PiQkJycgaXMgcHJpbnRlZC4KKworCitFWEFNUExFUworLS0tLS0tLS0KKworKiBDb25zdWx0IHBhdGNoIGZpbGVzOgorKworLS0tLS0tLS0tLS0tCiskIGdpdCBjb250YWN0cyBmZWF0dXJlLyoucGF0Y2gKKy0tLS0tLS0tLS0tLQorCisqIFJldmlzaW9uIHJhbmdlOgorKworLS0tLS0tLS0tLS0tCiskIGdpdCBjb250YWN0cyBSMS4uUjIKKy0tLS0tLS0tLS0tLQorCisqIEZyb20gYSBzaW5nbGUgcmV2aXNpb24gdG8gYEhFQURgOgorKworLS0tLS0tLS0tLS0tCiskIGdpdCBjb250YWN0cyBvcmlnaW4KKy0tLS0tLS0tLS0tLQorCisqIEhlbHBlciBmb3IgYGdpdCBzZW5kLWVtYWlsYDoKKysKKy0tLS0tLS0tLS0tLQorJCBnaXQgc2VuZC1lbWFpbCAtLWNjLWNtZD0nZ2l0IGNvbnRhY3RzJyBmZWF0dXJlLyoucGF0Y2gKKy0tLS0tLS0tLS0tLQorCisKK0xJTUlUQVRJT05TCistLS0tLS0tLS0tLQorCitTZXZlcmFsIGNvbmRpdGlvbnMgY29udHJvbGxpbmcgYSBwZXJzb24ncyBzaWduaWZpY2FuY2UgYXJlIGN1cnJlbnRseQoraGFyZC1jb2RlZCwgc3VjaCBhcyBtaW5pbXVtIHBhcnRpY2lwYXRpb24gbGV2ZWwgKDEwJSksIGJsYW1lIGRhdGUtbGltaXRpbmcgKDUKK3llYXJzKSwgYW5kIGAtQ2AgbGV2ZWwgZm9yIGRldGVjdGluZyBtb3ZlZCBhbmQgY29waWVkIGxpbmVzIChhIHNpbmdsZSBgLUNgKS4gSW4KK3RoZSBmdXR1cmUsIHRoZXNlIGNvbmRpdGlvbnMgbWF5IGJlY29tZSBjb25maWd1cmFibGUuCisKKworR0lUCistLS0KK1BhcnQgb2YgdGhlIGxpbmtnaXQ6Z2l0WzFdIHN1aXRlCmRpZmYgLS1naXQgYS9jb250cmliL2NvbnRpbnVvdXMvY2lkYWVtb24gYi9jb250cmliL2NvbnRpbnVvdXMvY2lkYWVtb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMDlhMTUuLjAwMDAwMDAKLS0tIGEvY29udHJpYi9jb250aW51b3VzL2NpZGFlbW9uCisrKyAvZGV2L251bGwKQEAgLTEsNTAzICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybAotIwotIyBBIGRhZW1vbiB0aGF0IHdhaXRzIGZvciB1cGRhdGUgZXZlbnRzIHNlbnQgYnkgaXRzIGNvbXBhbmlvbgotIyBwb3N0LXJlY2VpdmUtY2lub3RpZnkgaG9vaywgY2hlY2tzIG91dCBhIG5ldyBjb3B5IG9mIHNvdXJjZSwKLSMgY29tcGlsZXMgaXQsIGFuZCBlbWFpbHMgdGhlIGd1aWx0eSBwYXJ0aWVzIGlmIHRoZSBjb21waWxlCi0jIChhbmQgb3B0aW9uYWxseSB0ZXN0IHN1aXRlKSBmYWlscy4KLSMKLSMgVG8gdXNlIHRoaXMgZGFlbW9uLCBjb25maWd1cmUgaXQgYW5kIHJ1biBpdC4gIEl0IHdpbGwgZGlzY29ubmVjdAotIyBmcm9tIHlvdXIgdGVybWluYWwgYW5kIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZC4gIFRoZSBkYWVtb24gbXVzdAotIyBoYXZlIGxvY2FsIGZpbGVzeXN0ZW0gYWNjZXNzIHRvIHRoZSBzb3VyY2UgcmVwb3NpdG9yaWVzLCBhcyBpdAotIyB1c2VzIG9iamVjdHMvaW5mby9hbHRlcm5hdGVzIHRvIGF2b2lkIGNvcHlpbmcgb2JqZWN0cy4KLSMKLSMgQWRkIGl0cyBjb21wYW5pb24gcG9zdC1yZWNlaXZlLWNpbm90aWZ5IGhvb2sgYXMgdGhlIHBvc3QtcmVjZWl2ZQotIyBob29rIHRvIGVhY2ggcmVwb3NpdG9yeSB0aGF0IHRoZSBkYWVtb24gc2hvdWxkIG1vbml0b3IuICBZZXMsIGEKLSMgc2luZ2xlIGRhZW1vbiBjYW4gbW9uaXRvciBtb3JlIHRoYW4gb25lIHJlcG9zaXRvcnkuCi0jCi0jIFRvIHVzZSBtdWx0aXBsZSBkYWVtb25zIG9uIHRoZSBzYW1lIHN5c3RlbSwgZ2l2ZSB0aGVtIGVhY2ggYQotIyB1bmlxdWUgcXVldWUgZmlsZSBhbmQgdG1wZGlyLgotIwotIyBHbG9iYWwgQ29uZmlnCi0jIC0tLS0tLS0tLS0tLS0KLSMgUmVhZHMgZnJvbSBhIEdpdCBzdHlsZSBjb25maWd1cmF0aW9uIGZpbGUuICBUaGlzIHdpbGwgYmUKLSMgfi8uZ2l0Y29uZmlnIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IHNldHRpbmcKLSMgdGhlIEdJVF9DT05GSUdfRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBiZWZvcmUgc3RhcnRpbmcuCi0jCi0jIGNpZGFlbW9uLnNtdHBIb3N0Ci0jICAgSG9zdG5hbWUgb2YgdGhlIFNNVFAgc2VydmVyIHRoZSBkYWVtb24gd2lsbCBzZW5kIGVtYWlsCi0jICAgdGhyb3VnaC4gIERlZmF1bHRzIHRvICdsb2NhbGhvc3QnLgotIwotIyBjaWRhZW1vbi5zbXRwVXNlcgotIyAgIFVzZXJuYW1lIHRvIGF1dGhlbnRpY2F0ZSB0byB0aGUgU01UUCBzZXJ2ZXIgYXMuICBUaGlzCi0jICAgdmFyaWFibGUgaXMgb3B0aW9uYWw7IGlmIGl0IGlzIG5vdCBzdXBwbGllZCB0aGVuIG5vCi0jICAgYXV0aGVudGljYXRpb24gd2lsbCBiZSBwZXJmb3JtZWQuCi0jCi0jIGNpZGFlbW9uLnNtdHBQYXNzd29yZAotIyAgIFBhc3N3b3JkIHRvIGF1dGhlbnRpY2F0ZSB0byB0aGUgU01UUCBzZXJ2ZXIgYXMuICBUaGlzCi0jICAgdmFyaWFibGUgaXMgb3B0aW9uYWwuICBJZiBub3Qgc3VwcGxpZWQgYnV0IHNtdHBVc2VyIHdhcywKLSMgICB0aGUgZGFlbW9uIHByb21wdHMgZm9yIHRoZSBwYXNzd29yZCBiZWZvcmUgZm9ya2luZyBpbnRvCi0jICAgdGhlIGJhY2tncm91bmQuCi0jCi0jIGNpZGFlbW9uLnNtdHBBdXRoCi0jICAgVHlwZSBvZiBhdXRoZW50aWNhdGlvbiB0byBwZXJmb3JtIHdpdGggdGhlIFNNVFAgc2VydmVyLgotIyAgIElmIHNldCB0byAnbG9naW4nIGFuZCBzbXRwVXNlciB3YXMgZGVmaW5lZCwgdGhpcyB3aWxsCi0jICAgdXNlIHRoZSBBVVRIIExPR0lOIGNvbW1hbmQsIHdoaWNoIGlzIHN1aXRhYmxlIGZvciB1c2UKLSMgICB3aXRoIGF0IGxlYXN0IG9uZSB2ZXJzaW9uIG9mIE1pY3Jvc29mdCBFeGNoYW5nZSBTZXJ2ZXIuCi0jICAgSWYgbm90IHNldCB0aGUgZGFlbW9uIHdpbGwgdXNlIHdoYXRldmVyIGF1dGggbWV0aG9kcwotIyAgIGFyZSBzdXBwb3J0ZWQgYnkgeW91ciB2ZXJzaW9uIG9mIE5ldDo6U01UUC4KLSMKLSMgY2lkYWVtb24uZW1haWwKLSMgICBFbWFpbCBhZGRyZXNzIHRoYXQgZGFlbW9uIGdlbmVyYXRlZCBlbWFpbHMgd2lsbCBiZSBzZW50Ci0jICAgZnJvbS4gIFRoaXMgc2hvdWxkIGJlIGEgdXNlZnVsIGVtYWlsIGFkZHJlc3Mgd2l0aGluIHlvdXIKLSMgICBvcmdhbml6YXRpb24uICBSZXF1aXJlZC4KLSMKLSMgY2lkYWVtb24ubmFtZQotIyAgIEh1bWFuIGZyaWVuZGx5IG5hbWUgdGhhdCB0aGUgZGFlbW9uIHdpbGwgc2VuZCBlbWFpbHMgYXMuCi0jICAgRGVmYXVsdHMgdG8gJ2NpZGFlbW9uJy4KLSMKLSMgY2lkYWVtb24uc2NhbkRlbGF5Ci0jICAgTnVtYmVyIG9mIHNlY29uZHMgdG8gc2xlZXAgYmV0d2VlbiBwb2xscyBvZiB0aGUgcXVldWUgZmlsZS4KLSMgICBEZWZhdWx0cyB0byA2MC4KLSMKLSMgY2lkYWVtb24ucmVjZW50Q2FjaGUKLSMgICBOdW1iZXIgb2YgcmVjZW50IGNvbW1pdCBTSEEtMXMgcGVyIHJlcG9zaXRvcnkgdG8gY2FjaGUgYW5kCi0jICAgc2tpcCBidWlsZGluZyBpZiB0aGV5IGFwcGVhciBhZ2Fpbi4gIFRoaXMgaXMgdXNlZnVsIHRvIGF2b2lkCi0jICAgcmVidWlsZGluZyB0aGUgc2FtZSBjb21taXQgbXVsdGlwbGUgdGltZXMganVzdCBiZWNhdXNlIGl0IHdhcwotIyAgIHB1c2hlZCBpbnRvIG1vcmUgdGhhbiBvbmUgYnJhbmNoLiAgRGVmYXVsdHMgdG8gMTAwLgotIwotIyBjaWRhZW1vbi50bXBkaXIKLSMgICBTY3JhdGNoIGRpcmVjdG9yeSB0byBjcmVhdGUgdGhlIGJ1aWxkcyB3aXRoaW4uICBUaGUgZGFlbW9uCi0jICAgbWFrZXMgYSBuZXcgc3ViZGlyZWN0b3J5IGZvciBlYWNoIGJ1aWxkLCB0aGVuIGRlbGV0ZXMgaXQgd2hlbgotIyAgIHRoZSBidWlsZCBoYXMgZmluaXNoZWQuICBUaGUgcGlkIGZpbGUgaXMgYWxzbyBwbGFjZWQgaGVyZS4KLSMgICBEZWZhdWx0cyB0byAnL3RtcCcuCi0jCi0jIGNpZGFlbW9uLnF1ZXVlCi0jICAgUGF0aCB0byB0aGUgcXVldWUgZmlsZSB0aGF0IHRoZSBwb3N0LXJlY2VpdmUtY2lub3RpZnkgaG9vawotIyAgIGFwcGVuZHMgZXZlbnRzIHRvLiAgVGhpcyBmaWxlIGlzIHBvbGxlZCBieSB0aGUgZGFlbW9uLiAgSXQKLSMgICBtdXN0IG5vdCBiZSBvbiBhbiBORlMgbW91bnQgKHVzZXMgZmxvY2spLiAgUmVxdWlyZWQuCi0jCi0jIGNpZGFlbW9uLm5vY2MKLSMgICBQZXJsIHJlZ2V4IHBhdHRlcm5zIHRvIG1hdGNoIGFnYWluc3QgYXV0aG9yIGFuZCBjb21taXR0ZXIKLSMgICBsaW5lcy4gIElmIGEgcGF0dGVybiBtYXRjaGVzLCB0aGF0IGF1dGhvciBvciBjb21taXR0ZXIgd2lsbAotIyAgIG5vdCBiZSBub3RpZmllZCBvZiBhIGJ1aWxkIGZhaWx1cmUuCi0jCi0jIFBlciBSZXBvc2l0b3J5IENvbmZpZwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFJlYWQgZnJvbSB0aGUgc291cmNlIHJlcG9zaXRvcnkncyBjb25maWcgZmlsZS4KLSMKLSMgYnVpbGRlci5jb21tYW5kCi0jICAgU2hlbGwgY29tbWFuZCB0byBleGVjdXRlIHRoZSBidWlsZC4gIFRoaXMgY29tbWFuZCBtdXN0Ci0jICAgcmV0dXJuIDAgb24gInN1Y2Nlc3MiIGFuZCBub24temVybyBvbiBmYWlsdXJlLiAgSWYgeW91Ci0jICAgYWxzbyB3YW50IHRvIHJ1biBhIHRlc3Qgc3VpdGUsIG1ha2Ugc3VyZSB5b3VyIGNvbW1hbmQKLSMgICBkb2VzIHRoYXQgdG9vLiAgUmVxdWlyZWQuCi0jCi0jIGJ1aWxkZXIucXVldWUKLSMgICBRdWV1ZSBmaWxlIHRvIG5vdGlmeSB0aGUgY2lkYWVtb24gdGhyb3VnaC4gIFNob3VsZCBtYXRjaAotIyAgIGNpZGFlbW9uLnF1ZXVlLiAgSWYgbm90IHNldCB0aGUgaG9vayB3aWxsIG5vdCBub3RpZnkgdGhlCi0jICAgY2lkYWVtb24uCi0jCi0jIGJ1aWxkZXIuc2tpcAotIyAgIFBlcmwgcmVnZXggcGF0dGVybnMgb2YgcmVmcyB0aGF0IHNob3VsZCBub3QgYmUgc2VudCB0bwotIyAgIGNpZGFlbW9uLiAgVXBkYXRlcyBvZiB0aGVzZSByZWZzIHdpbGwgYmUgaWdub3JlZC4KLSMKLSMgYnVpbGRlci5uZXdCcmFuY2hCYXNlCi0jICAgR2xvYiBwYXR0ZXJucyBvZiByZWZzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZm9ybSB0aGUKLSMgICAnb2xkJyByZXZpb25zIG9mIGEgbmV3bHkgY3JlYXRlZCByZWYuICBUaGlzIHNob3VsZCBzZXQKLSMgICB0byBiZSBnbG9icyB0aGF0IG1hdGNoIHlvdXIgJ21haW5saW5lJyBicmFuY2hlcy4gIFRoaXMKLSMgICB3YXkgYSBidWlsZCBmYWlsdXJlIG9mIGEgYnJhbmQgbmV3IHRvcGljIGJyYW5jaCBkb2VzIG5vdAotIyAgIGF0dGVtcHQgdG8gZW1haWwgZXZlcnlvbmUgc2luY2UgdGhlIGJlZ2lubmluZyBvZiB0aW1lOwotIyAgIGluc3RlYWQgaXQgb25seSBlbWFpbHMgdGhvc2UgYXV0aG9ycyBvZiBjb21taXRzIG5vdCBpbgotIyAgIHRoZXNlICdtYWlubGluZScgYnJhbmNoZXMuCi0KLWxvY2FsICRFTlZ7UEFUSH0gPSBqb2luICc6JywgcXcoCi0JL29wdC9naXQvYmluCi0JL3Vzci9iaW4KLQkvYmluCi0JKTsKLQotdXNlIHN0cmljdDsKLXVzZSB3YXJuaW5nczsKLXVzZSBGaW5kQmluIHF3KCRSZWFsQmluKTsKLXVzZSBGaWxlOjpTcGVjOwotdXNlIGxpYiBGaWxlOjpTcGVjLT5jYXRmaWxlKCRSZWFsQmluLCAnLi4nLCAncGVybDUnKTsKLXVzZSBTdG9yYWJsZSBxdyhyZXRyaWV2ZSBuc3RvcmUpOwotdXNlIEZjbnRsICc6ZmxvY2snOwotdXNlIFBPU0lYIHF3KHN0cmZ0aW1lKTsKLXVzZSBHZXRvcHQ6OkxvbmcgcXcoOmNvbmZpZyBub19hdXRvX2FiYnJldiBhdXRvX2hlbHApOwotCi1zdWIgZ2l0X2NvbmZpZyAoJDskKQotewotCW15ICR2YXIgPSBzaGlmdDsKLQlteSAkcmVxdWlyZWQgPSBzaGlmdCB8fCAwOwotCWxvY2FsICpHSVQ7Ci0Jb3BlbiBHSVQsICctfCcsJ2dpdCcsJ2NvbmZpZycsJy0tZ2V0JywkdmFyOwotCW15ICRyID0gPEdJVD47Ci0JY2hvcCAkciBpZiAkcjsKLQljbG9zZSBHSVQ7Ci0JZGllICJlcnJvcjogJHZhciBub3Qgc2V0LlxuIiBpZiAoJHJlcXVpcmVkICYmICEkcik7Ci0JcmV0dXJuICRyOwotfQotCi1wYWNrYWdlIEVYQ0hBTkdFX05FVF9TTVRQOwotCi0jIE1pY3Jvc29mdCBFeGNoYW5nZSBTZXJ2ZXIgcmVxdWlyZXMgYW4gJ0FVVEggTE9HSU4nCi0jIHN0eWxlIG9mIGF1dGhlbnRpY2F0aW9uLiAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbQotIyB0aGUgZGVmYXVsdCBzdXBwb3J0ZWQgYnkgTmV0OjpTTVRQIHNvIHdlIHN1YmNsYXNzCi0jIGFuZCBvdmVycmlkZSB0aGUgYXV0aCBtZXRob2QgdG8gc3VwcG9ydCB0aGF0LgotCi11c2UgTmV0OjpTTVRQOwotdXNlIE5ldDo6Q21kOwotdXNlIE1JTUU6OkJhc2U2NCBxdyhlbmNvZGVfYmFzZTY0KTsKLW91ciBASVNBID0gcXcoTmV0OjpTTVRQKTsKLW91ciAkYXV0aF90eXBlID0gOjpnaXRfY29uZmlnICdjaWRhZW1vbi5zbXRwQXV0aCc7Ci0KLXN1YiBuZXcKLXsKLQlteSAkc2VsZiA9IHNoaWZ0OwotCW15ICR0eXBlID0gcmVmKCRzZWxmKSB8fCAkc2VsZjsKLQkkdHlwZS0+U1VQRVI6Om5ldyhAXyk7Ci19Ci0KLXN1YiBhdXRoCi17Ci0JbXkgJHNlbGYgPSBzaGlmdDsKLQlyZXR1cm4gJHNlbGYtPlNVUEVSOjphdXRoKEBfKSB1bmxlc3MgJGF1dGhfdHlwZSBlcSAnbG9naW4nOwotCi0JbXkgJHVzZXIgPSBlbmNvZGVfYmFzZTY0IHNoaWZ0LCAnJzsKLQlteSAkcGFzcyA9IGVuY29kZV9iYXNlNjQgc2hpZnQsICcnOwotCXJldHVybiAwIHVubGVzcyBDTURfTU9SRSA9PSAkc2VsZi0+Y29tbWFuZCgiQVVUSCBMT0dJTiIpLT5yZXNwb25zZTsKLQlyZXR1cm4gMCB1bmxlc3MgQ01EX01PUkUgPT0gJHNlbGYtPmNvbW1hbmQoJHVzZXIpLT5yZXNwb25zZTsKLQlDTURfT0sgPT0gJHNlbGYtPmNvbW1hbmQoJHBhc3MpLT5yZXNwb25zZTsKLX0KLQotcGFja2FnZSBtYWluOwotCi1teSAoJGRlYnVnX2ZsYWcsICVyZWNlbnQpOwotCi1teSAkZXhfaG9zdCA9IGdpdF9jb25maWcoJ2NpZGFlbW9uLnNtdHBIb3N0JykgfHwgJ2xvY2FsaG9zdCc7Ci1teSAkZXhfdXNlciA9IGdpdF9jb25maWcoJ2NpZGFlbW9uLnNtdHBVc2VyJyk7Ci1teSAkZXhfcGFzcyA9IGdpdF9jb25maWcoJ2NpZGFlbW9uLnNtdHBQYXNzd29yZCcpOwotCi1teSAkZXhfZnJvbV9hZGRyID0gZ2l0X2NvbmZpZygnY2lkYWVtb24uZW1haWwnLCAxKTsKLW15ICRleF9mcm9tX25hbWUgPSBnaXRfY29uZmlnKCdjaWRhZW1vbi5uYW1lJykgfHwgJ2NpZGFlbW9uJzsKLQotbXkgJHNjYW5fZGVsYXkgPSBnaXRfY29uZmlnKCdjaWRhZW1vbi5zY2FuRGVsYXknKSB8fCA2MDsKLW15ICRyZWNlbnRfc2l6ZSA9IGdpdF9jb25maWcoJ2NpZGFlbW9uLnJlY2VudENhY2hlJykgfHwgMTAwOwotbXkgJHRtcGRpciA9IGdpdF9jb25maWcoJ2NpZGFlbW9uLnRtcGRpcicpIHx8ICcvdG1wJzsKLW15ICRxdWV1ZV9uYW1lID0gZ2l0X2NvbmZpZygnY2lkYWVtb24ucXVldWUnLCAxKTsKLW15ICRxdWV1ZV9sb2NrID0gIiRxdWV1ZV9uYW1lLmxvY2siOwotCi1teSBAbm9jY19saXN0Owotb3BlbiBHSVQsJ2dpdCBjb25maWcgLS1nZXQtYWxsIGNpZGFlbW9uLm5vY2N8JzsKLXdoaWxlICg8R0lUPikgewotCWNob3A7Ci0JcHVzaCBAbm9jY19saXN0LCAkXzsKLX0KLWNsb3NlIEdJVDsKLQotc3ViIG5vY2NfYXV0aG9yICgkKQotewotCWxvY2FsICRfID0gc2hpZnQ7Ci0JZm9yZWFjaCBteSAkcGF0IChAbm9jY19saXN0KSB7Ci0JCXJldHVybiAxIGlmIC8kcGF0LzsKLQl9Ci0JMDsKLX0KLQotc3ViIGlucHV0X2VjaG8gKCQpCi17Ci0JbXkgJHByb21wdCA9IHNoaWZ0OwotCi0JbG9jYWwgJHwgPSAxOwotCXByaW50ICRwcm9tcHQ7Ci0JbXkgJGlucHV0ID0gPFNURElOPjsKLQljaG9wICRpbnB1dDsKLQlyZXR1cm4gJGlucHV0OwotfQotCi1zdWIgaW5wdXRfbm9lY2hvICgkKQotewotCW15ICRwcm9tcHQgPSBzaGlmdDsKLQotCW15ICRlbmQgPSBzdWIge3N5c3RlbSgnc3R0eScsJ2VjaG8nKTtwcmludCAiXG4iO2V4aXR9OwotCWxvY2FsICRTSUd7VEVSTX0gPSAkZW5kOwotCWxvY2FsICRTSUd7SU5UfSA9ICRlbmQ7Ci0Jc3lzdGVtKCdzdHR5JywnLWVjaG8nKTsKLQotCWxvY2FsICR8ID0gMTsKLQlwcmludCAkcHJvbXB0OwotCW15ICRpbnB1dCA9IDxTVERJTj47Ci0Jc3lzdGVtKCdzdHR5JywnZWNobycpOwotCXByaW50ICJcbiI7Ci0JY2hvcCAkaW5wdXQ7Ci0JcmV0dXJuICRpbnB1dDsKLX0KLQotc3ViIHJmYzI4MjJfZGF0ZSAoKQotewotCSBzdHJmdGltZSgiJWEsICVkICViICVZICVIOiVNOiVTICVaIiwgbG9jYWx0aW1lKTsKLX0KLQotc3ViIHNlbmRfZW1haWwgKCQkJCkKLXsKLQlteSAoJHN1YmosICRib2R5LCAkdG8pID0gQF87Ci0JbXkgJG5vdyA9IHJmYzI4MjJfZGF0ZTsKLQlteSAkdG9fc3RyID0gJyc7Ci0JbXkgQHJjcHRfdG87Ci0JZm9yZWFjaCAoQCR0bykgewotCQlteSAkcyA9ICRfOwotCQkkcyA9fiBzL14vIi87Ci0JCSRzID1+IHMvKFxzKzwpLyIkMS87Ci0JCSR0b19zdHIgLj0gJywgJyBpZiAkdG9fc3RyOwotCQkkdG9fc3RyIC49ICRzOwotCQlwdXNoIEByY3B0X3RvLCAkMSBpZiAkcyA9fiAvPCguKik+LzsKLQl9Ci0JZGllICJOb2JvZHkgdG8gc2VuZCB0by5cbiIgdW5sZXNzIEByY3B0X3RvOwotCW15ICRtc2cgPSA8PEVPRjsKLUZyb206ICIkZXhfZnJvbV9uYW1lIiA8JGV4X2Zyb21fYWRkcj4KLVRvOiAkdG9fc3RyCi1EYXRlOiAkbm93Ci1TdWJqZWN0OiAkc3ViagotCi0kYm9keQotRU9GCi0KLQlteSAkc210cCA9IEVYQ0hBTkdFX05FVF9TTVRQLT5uZXcoSG9zdCA9PiAkZXhfaG9zdCkKLQkJb3IgZGllICJDYW5ub3QgY29ubmVjdCB0byAkZXhfaG9zdDogJCFcbiI7Ci0JaWYgKCRleF91c2VyICYmICRleF9wYXNzKSB7Ci0JCSRzbXRwLT5hdXRoKCRleF91c2VyLCRleF9wYXNzKQotCQkJb3IgZGllICIkZXhfaG9zdCByZWplY3RlZCAkZXhfdXNlclxuIjsKLQl9Ci0JJHNtdHAtPm1haWwoJGV4X2Zyb21fYWRkcikKLQkJb3IgZGllICIkZXhfaG9zdCByZWplY3RlZCAkZXhfZnJvbV9hZGRyXG4iOwotCXNjYWxhcigkc210cC0+cmVjaXBpZW50KEByY3B0X3RvLCB7IFNraXBCYWQgPT4gMSB9KSkKLQkJb3IgZGllICIkZXhfaG9zdCBkaWQgbm90IGFjY2VwdCBhbnkgYWRkcmVzc2VzLlxuIjsKLQkkc210cC0+ZGF0YSgkbXNnKQotCQlvciBkaWUgIiRleF9ob3N0IHJlamVjdGVkIG1lc3NhZ2UgZGF0YVxuIjsKLQkkc210cC0+cXVpdDsKLX0KLQotc3ViIHBvcF9xdWV1ZSAoKQotewotCW9wZW4gTE9DSywgIj4kcXVldWVfbG9jayIgb3IgZGllICJDYW4ndCBvcGVuICRxdWV1ZV9sb2NrOiAkISI7Ci0JZmxvY2sgTE9DSywgTE9DS19FWDsKLQotCW15ICRxdWV1ZSA9IC1mICRxdWV1ZV9uYW1lID8gcmV0cmlldmUgJHF1ZXVlX25hbWUgOiBbXTsKLQlteSAkZW50ID0gc2hpZnQgQCRxdWV1ZTsKLQluc3RvcmUgJHF1ZXVlLCAkcXVldWVfbmFtZTsKLQotCWZsb2NrIExPQ0ssIExPQ0tfVU47Ci0JY2xvc2UgTE9DSzsKLQkkZW50OwotfQotCi1zdWIgZ2l0X2V4ZWMgKEApCi17Ci0Jc3lzdGVtKCdnaXQnLEBfKSA9PSAwIG9yIGRpZSAiQ2Fubm90IGdpdCAiIC4gam9pbignICcsIEBfKSAuICJcbiI7Ci19Ci0KLXN1YiBnaXRfdmFsIChAKQotewotCW9wZW4oQywgJy18JywnZ2l0JyxAXyk7Ci0JbXkgJHIgPSA8Qz47Ci0JY2hvcCAkciBpZiAkcjsKLQljbG9zZSBDOwotCSRyOwotfQotCi1zdWIgZG9fYnVpbGQgKCQkKQotewotCW15ICgkZ2l0X2RpciwgJG5ldykgPSBAXzsKLQotCW15ICR0bXAgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBkaXIsICJidWlsZGVyJCQiKTsKLQlzeXN0ZW0oJ3JtJywnLXJmJywkdG1wKSA9PSAwIG9yIGRpZSAiQ2Fubm90IGNsZWFyICR0bXBcbiI7Ci0JZGllICJDYW5ub3QgY2xlYXIgJHRtcC5cbiIgaWYgLWUgJHRtcDsKLQotCW15ICRyZXN1bHQgPSAxOwotCWV2YWwgewotCQlteSAkY29tbWFuZDsKLQkJewotCQkJbG9jYWwgJEVOVntHSVRfRElSfSA9ICRnaXRfZGlyOwotCQkJJGNvbW1hbmQgPSBnaXRfdmFsICdjb25maWcnLCdidWlsZGVyLmNvbW1hbmQnOwotCQl9Ci0JCWRpZSAiTm8gYnVpbGRlci5jb21tYW5kIGZvciAkZ2l0X2Rpci5cbiIgdW5sZXNzICRjb21tYW5kOwotCi0JCWdpdF9leGVjICdjbG9uZScsJy1uJywnLWwnLCctcycsJGdpdF9kaXIsJHRtcDsKLQkJY2htb2QgMDcwMCwgJHRtcCBvciBkaWUgIkNhbm5vdCBsb2NrICR0bXBcbiI7Ci0JCWNoZGlyICR0bXAgb3IgZGllICJDYW5ub3QgZW50ZXIgJHRtcFxuIjsKLQotCQlnaXRfZXhlYyAndXBkYXRlLXJlZicsJ0hFQUQnLCRuZXc7Ci0JCWdpdF9leGVjICdyZWFkLXRyZWUnLCctbScsJy11JywnSEVBRCcsJ0hFQUQnOwotCQlzeXN0ZW0gJGNvbW1hbmQ7Ci0JCWlmICgkPyA9PSAtMSkgewotCQkJcHJpbnQgU1RERVJSICJmYWlsZWQgdG8gZXhlY3V0ZSAnJGNvbW1hbmQnOiAkIVxuIjsKLQkJCSRyZXN1bHQgPSAxOwotCQl9IGVsc2lmICgkPyAmIDEyNykgewotCQkJbXkgJHNpZyA9ICQ/ICYgMTI3OwotCQkJcHJpbnQgU1RERVJSICInJGNvbW1hbmQnIGRpZWQgZnJvbSBzaWduYWwgJHNpZ1xuIjsKLQkJCSRyZXN1bHQgPSAxOwotCQl9IGVsc2UgewotCQkJbXkgJHIgPSAkPyA+PiA4OwotCQkJcHJpbnQgU1RERVJSICInJGNvbW1hbmQnIGV4aXRlZCB3aXRoICRyXG4iIGlmICRyOwotCQkJJHJlc3VsdCA9ICRyOwotCQl9Ci0JfTsKLQlpZiAoJEApIHsKLQkJJHJlc3VsdCA9IDI7Ci0JCXByaW50IFNUREVSUiAiJEBcbiI7Ci0JfQotCi0JY2hkaXIgJy8nOwotCXN5c3RlbSgncm0nLCctcmYnLCR0bXApOwotCXJtZGlyICR0bXA7Ci0JJHJlc3VsdDsKLX0KLQotc3ViIGJ1aWxkX2ZhaWxlZCAoJCQkJCQpCi17Ci0JbXkgKCRnaXRfZGlyLCAkcmVmLCAkb2xkLCAkbmV3LCAkbXNnKSA9IEBfOwotCi0JJGdpdF9kaXIgPX4gbSwvKFteL10rKSQsOwotCW15ICRyZXBvX25hbWUgPSAkMTsKLQkkcmVmID1+IHMsXnJlZnMvKGhlYWRzfHRhZ3MpLywsOwotCi0JbXkgJWF1dGhvcnM7Ci0JbXkgJHNob3J0bG9nOwotCW15ICRyZXZzdHI7Ci0JewotCQlsb2NhbCAkRU5We0dJVF9ESVJ9ID0gJGdpdF9kaXI7Ci0JCW15IEByZXZzID0gKCRuZXcpOwotCQlwdXNoIEByZXZzLCAnLS1ub3QnLCBAJG9sZCBpZiBAJG9sZDsKLQkJb3BlbiBMT0csJy18JywnZ2l0JywncmV2LWxpc3QnLCctLXByZXR0eT1yYXcnLEByZXZzOwotCQl3aGlsZSAoPExPRz4pIHsKLQkJCWlmIChzL14oYXV0aG9yfGNvbW1pdHRlcikgLy8pIHsKLQkJCQljaG9tcDsKLQkJCQlzLz4uKiQvPi87Ci0JCQkJJGF1dGhvcnN7JF99ID0gMSB1bmxlc3Mgbm9jY19hdXRob3IgJF87Ci0JCQl9Ci0JCX0KLQkJY2xvc2UgTE9HOwotCQlvcGVuIExPRywnLXwnLCdnaXQnLCdzaG9ydGxvZycsQHJldnM7Ci0JCSRzaG9ydGxvZyAuPSAkXyB3aGlsZSA8TE9HPjsKLQkJY2xvc2UgTE9HOwotCQkkcmV2c3RyID0gam9pbignICcsIEByZXZzKTsKLQl9Ci0KLQlteSBAdG8gPSBzb3J0IGtleXMgJWF1dGhvcnM7Ci0JdW5sZXNzIChAdG8pIHsKLQkJcHJpbnQgU1RERVJSICJlcnJvcjogTm8gYXV0aG9ycyBpbiAkcmV2c3RyXG4iOwotCQlyZXR1cm47Ci0JfQotCi0JbXkgJHN1YmplY3QgPSAiWyRyZXBvX25hbWVdICRyZWYgOiBCdWlsZCBGYWlsZWQiOwotCW15ICRib2R5ID0gPDxFT0Y7Ci1Qcm9qZWN0OiAkZ2l0X2RpcgotQnJhbmNoOiAgJHJlZgotQ29tbWl0czogJHJldnN0cgotCi0kc2hvcnRsb2cKLUJ1aWxkIE91dHB1dDoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0kbXNnCi1FT0YKLQlzZW5kX2VtYWlsKCRzdWJqZWN0LCAkYm9keSwgXEB0byk7Ci19Ci0KLXN1YiBydW5fYnVpbGQgKCQkJCQpCi17Ci0JbXkgKCRnaXRfZGlyLCAkcmVmLCAkb2xkLCAkbmV3KSA9IEBfOwotCi0JaWYgKCRkZWJ1Z19mbGFnKSB7Ci0JCW15IEByZXZzID0gKCRuZXcpOwotCQlwdXNoIEByZXZzLCAnLS1ub3QnLCBAJG9sZCBpZiBAJG9sZDsKLQkJcHJpbnQgIkJVSUxESU5HICRnaXRfZGlyXG4iOwotCQlwcmludCAiICBCUkFOQ0g6ICRyZWZcbiI7Ci0JCXByaW50ICIgIENPTU1JVFM6ICIsIGpvaW4oJyAnLCBAcmV2cyksICJcbiI7Ci0JfQotCi0JbG9jYWwoKlIsICpXKTsKLQlwaXBlIFIsIFcgb3IgZGllICJjYW5ub3QgcGlwZSBidWlsZGVyOiAkISI7Ci0KLQlteSAkYnVpbGRlciA9IGZvcmsoKTsKLQlpZiAoIWRlZmluZWQgJGJ1aWxkZXIpIHsKLQkJZGllICJjYW5ub3QgZm9yayBidWlsZGVyOiAkISI7Ci0JfSBlbHNpZiAoMCA9PSAkYnVpbGRlcikgewotCQljbG9zZSBSOwotCQljbG9zZSBTVERJTjtvcGVuKFNURElOLCAnL2Rldi9udWxsJyk7Ci0JCW9wZW4oU1RET1VULCAnPiZXJyk7Ci0JCW9wZW4oU1RERVJSLCAnPiZXJyk7Ci0JCWV4aXQgZG9fYnVpbGQgJGdpdF9kaXIsICRuZXc7Ci0JfSBlbHNlIHsKLQkJY2xvc2UgVzsKLQkJbXkgJG91dCA9ICcnOwotCQkkb3V0IC49ICRfIHdoaWxlIDxSPjsKLQkJY2xvc2UgUjsKLQkJd2FpdHBpZCAkYnVpbGRlciwgMDsKLQkJYnVpbGRfZmFpbGVkICRnaXRfZGlyLCAkcmVmLCAkb2xkLCAkbmV3LCAkb3V0IGlmICQ/OwotCX0KLQotCXByaW50ICJET05FXG5cbiIgaWYgJGRlYnVnX2ZsYWc7Ci19Ci0KLXN1YiBkYWVtb25fbG9vcCAoKQotewotCW15ICRydW4gPSAxOwotCW15ICRzdG9wX3N1YiA9IHN1YiB7JHJ1biA9IDB9OwotCSRTSUd7SFVQfSA9ICRzdG9wX3N1YjsKLQkkU0lHe0lOVH0gPSAkc3RvcF9zdWI7Ci0JJFNJR3tURVJNfSA9ICRzdG9wX3N1YjsKLQotCW1rZGlyICR0bXBkaXIsIDA3NTU7Ci0JbXkgJHBpZGZpbGUgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBkaXIsICJjaWRhZW1vbi5waWQiKTsKLQlvcGVuKE8sICI+JHBpZGZpbGUiKTsgcHJpbnQgTyAiJCRcbiI7IGNsb3NlIE87Ci0KLQl3aGlsZSAoJHJ1bikgewotCQlteSAkZW50ID0gcG9wX3F1ZXVlOwotCQlpZiAoJGVudCkgewotCQkJbXkgKCRnaXRfZGlyLCAkcmVmLCAkb2xkLCAkbmV3KSA9IEAkZW50OwotCi0JCQkkZW50ID0gJHJlY2VudHskZ2l0X2Rpcn07Ci0JCQkkcmVjZW50eyRnaXRfZGlyfSA9ICRlbnQgPSBbW10sIHt9XSB1bmxlc3MgJGVudDsKLQkJCW15ICgkcmVjX2FyciwgJHJlY19oYXNoKSA9IEAkZW50OwotCQkJbmV4dCBpZiAkcmVjX2hhc2gtPnskbmV3fSsrOwotCQkJd2hpbGUgKEAkcmVjX2FyciA+PSAkcmVjZW50X3NpemUpIHsKLQkJCQlteSAkdG9fa2lsbCA9IHNoaWZ0IEAkcmVjX2FycjsKLQkJCQlkZWxldGUgJHJlY19oYXNoLT57JHRvX2tpbGx9OwotCQkJfQotCQkJcHVzaCBAJHJlY19hcnIsICRuZXc7Ci0KLQkJCXJ1bl9idWlsZCAkZ2l0X2RpciwgJHJlZiwgJG9sZCwgJG5ldzsKLQkJfSBlbHNlIHsKLQkJCXNsZWVwICRzY2FuX2RlbGF5OwotCQl9Ci0JfQotCi0JdW5saW5rICRwaWRmaWxlOwotfQotCi0kZGVidWdfZmxhZyA9IDA7Ci1HZXRPcHRpb25zKAotCSdkZWJ1Z3xkJyA9PiBcJGRlYnVnX2ZsYWcsCi0JJ3NtdHAtdXNlcj1zJyA9PiBcJGV4X3VzZXIsCi0pIG9yIGRpZSAidXNhZ2U6ICQwIFstLWRlYnVnXSBbLS1zbXRwLXVzZXI9dXNlcl1cbiI7Ci0KLSRleF9wYXNzID0gaW5wdXRfbm9lY2hvKCIkZXhfdXNlciBTTVRQIHBhc3N3b3JkOiAiKQotCWlmICgkZXhfdXNlciAmJiAhJGV4X3Bhc3MpOwotCi1pZiAoJGRlYnVnX2ZsYWcpIHsKLQlkYWVtb25fbG9vcDsKLQlleGl0IDA7Ci19Ci0KLW15ICRkYWVtb24gPSBmb3JrKCk7Ci1pZiAoIWRlZmluZWQgJGRhZW1vbikgewotCWRpZSAiY2Fubm90IGZvcmsgZGFlbW9uOiAkISI7Ci19IGVsc2lmICgwID09ICRkYWVtb24pIHsKLQljbG9zZSBTVERJTjtvcGVuKFNURElOLCAnL2Rldi9udWxsJyk7Ci0JY2xvc2UgU1RET1VUO29wZW4oU1RET1VULCAnPi9kZXYvbnVsbCcpOwotCWNsb3NlIFNUREVSUjtvcGVuKFNUREVSUiwgJz4vZGV2L251bGwnKTsKLQlkYWVtb25fbG9vcDsKLQlleGl0IDA7Ci19IGVsc2UgewotCXByaW50ICJEYWVtb24gJGRhZW1vbiBydW5uaW5nIGluIHRoZSBiYWNrZ3JvdW5kLlxuIjsKLX0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY29udGludW91cy9wb3N0LXJlY2VpdmUtY2lub3RpZnkgYi9jb250cmliL2NvbnRpbnVvdXMvcG9zdC1yZWNlaXZlLWNpbm90aWZ5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOGY1YTYwLi4wMDAwMDAwCi0tLSBhL2NvbnRyaWIvY29udGludW91cy9wb3N0LXJlY2VpdmUtY2lub3RpZnkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotIyEvdXNyL2Jpbi9wZXJsCi0jCi0jIEEgaG9vayB0aGF0IG5vdGlmaWVzIGl0cyBjb21wYW5pb24gY2lkYWVtb24gdGhyb3VnaCBhIHNpbXBsZQotIyBxdWV1ZSBmaWxlIHRoYXQgYSByZWYgaGFzIGJlZW4gdXBkYXRlZCB2aWEgYSBwdXNoIChhY3R1YWxseQotIyBieSBhIHJlY2VpdmUtcGFjayBydW5uaW5nIG9uIHRoZSBzZXJ2ZXIpLgotIwotIyBTZWUgY2lkYWVtb24gZm9yIHBlci1yZXBvc2l0b3J5IGNvbmZpZ3VyYXRpb24gZGV0YWlscy4KLSMKLSMgVG8gdXNlIHRoaXMgaG9vaywgYWRkIGl0IGFzIHRoZSBwb3N0LXJlY2VpdmUgaG9vaywgbWFrZSBpdAotIyBleGVjdXRhYmxlLCBhbmQgc2V0IGl0cyBjb25maWd1cmF0aW9uIG9wdGlvbnMuCi0jCi0KLWxvY2FsICRFTlZ7UEFUSH0gPSAnL29wdC9naXQvYmluJzsKLQotdXNlIHN0cmljdDsKLXVzZSB3YXJuaW5nczsKLXVzZSBGaWxlOjpTcGVjOwotdXNlIFN0b3JhYmxlIHF3KHJldHJpZXZlIG5zdG9yZSk7Ci11c2UgRmNudGwgJzpmbG9jayc7Ci0KLW15ICRnaXRfZGlyID0gRmlsZTo6U3BlYy0+cmVsMmFicygkRU5We0dJVF9ESVJ9KTsKLW15ICRxdWV1ZV9uYW1lID0gYGdpdCBjb25maWcgLS1nZXQgYnVpbGRlci5xdWV1ZWA7Y2hvcCAkcXVldWVfbmFtZTsKLSRxdWV1ZV9uYW1lID1+IG0sXihbXlxzXSspJCw7ICRxdWV1ZV9uYW1lID0gJDE7ICMgdW50YWludAotdW5sZXNzICgkcXVldWVfbmFtZSkgewotCTEgd2hpbGUgPFNURElOPjsKLQlwcmludCBTVERFUlIgIlxuZXJyb3I6IGJ1aWxkZXIucXVldWUgbm90IHNldC4gIE5vdCBlbnF1ZWluZy5cblxuIjsKLQlleGl0OwotfQotbXkgJHF1ZXVlX2xvY2sgPSAiJHF1ZXVlX25hbWUubG9jayI7Ci0KLW15IEBza2lwOwotb3BlbiBTLCAiZ2l0IGNvbmZpZyAtLWdldC1hbGwgYnVpbGRlci5za2lwfCI7Ci13aGlsZSAoPFM+KSB7Ci0JY2hvcDsKLQlwdXNoIEBza2lwLCAkXzsKLX0KLWNsb3NlIFM7Ci0KLW15IEBuZXdfYnJhbmNoX2Jhc2U7Ci1vcGVuIFMsICJnaXQgY29uZmlnIC0tZ2V0LWFsbCBidWlsZGVyLm5ld0JyYW5jaEJhc2V8IjsKLXdoaWxlICg8Uz4pIHsKLQljaG9wOwotCXB1c2ggQG5ld19icmFuY2hfYmFzZSwgJF87Ci19Ci1jbG9zZSBTOwotCi1zdWIgc2tpcCAoJCkKLXsKLQlsb2NhbCAkXyA9IHNoaWZ0OwotCWZvcmVhY2ggbXkgJHAgKEBza2lwKSB7Ci0JCXJldHVybiAxIGlmIC9eJHAvOwotCX0KLQkwOwotfQotCi1vcGVuIExPQ0ssICI+JHF1ZXVlX2xvY2siIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkcXVldWVfbG9jazogJCEiOwotZmxvY2sgTE9DSywgTE9DS19FWDsKLQotbXkgJHF1ZXVlID0gLWYgJHF1ZXVlX25hbWUgPyByZXRyaWV2ZSAkcXVldWVfbmFtZSA6IFtdOwotbXkgJWV4aXN0aW5nOwotZm9yZWFjaCBteSAkciAoQCRxdWV1ZSkgewotCW15ICgkZ2QsICRyZWYpID0gQCRyOwotCSRleGlzdGluZ3skZ2R9eyRyZWZ9ID0gJHI7Ci19Ci0KLW15IEBuZXdfYnJhbmNoX2NvbW1pdHM7Ci1teSAkbG9hZGVkX25ld19icmFuY2hfY29tbWl0cyA9IDA7Ci0KLXdoaWxlICg8U1RESU4+KSB7Ci0JY2hvcDsKLQlteSAoJG9sZCwgJG5ldywgJHJlZikgPSBzcGxpdCAvIC8sICRfLCAzOwotCi0JbmV4dCBpZiAkb2xkIGVxICRuZXc7Ci0JbmV4dCBpZiAkbmV3ID1+IC9eMHs0MH0kLzsKLQluZXh0IGlmIHNraXAgJHJlZjsKLQotCW15ICRyID0gJGV4aXN0aW5neyRnaXRfZGlyfXskcmVmfTsKLQlpZiAoJHIpIHsKLQkJJHItPlszXSA9ICRuZXc7Ci0JfSBlbHNlIHsKLQkJaWYgKCRvbGQgPX4gL14wezQwfSQvKSB7Ci0JCQlpZiAoISRsb2FkZWRfbmV3X2JyYW5jaF9jb21taXRzICYmIEBuZXdfYnJhbmNoX2Jhc2UpIHsKLQkJCQlvcGVuIE0sJy18JywnZ2l0Jywnc2hvdy1yZWYnLEBuZXdfYnJhbmNoX2Jhc2U7Ci0JCQkJd2hpbGUgKDxNPikgewotCQkJCQkoJF8pID0gc3BsaXQgLyAvLCAkXzsKLQkJCQkJcHVzaCBAbmV3X2JyYW5jaF9jb21taXRzLCAkXzsKLQkJCQl9Ci0JCQkJY2xvc2UgTTsKLQkJCQkkbG9hZGVkX25ld19icmFuY2hfY29tbWl0cyA9IDE7Ci0JCQl9Ci0JCQkkb2xkID0gW0BuZXdfYnJhbmNoX2NvbW1pdHNdOwotCQl9IGVsc2UgewotCQkJJG9sZCA9IFskb2xkXTsKLQkJfQotCi0JCSRyID0gWyRnaXRfZGlyLCAkcmVmLCAkb2xkLCAkbmV3XTsKLQkJJGV4aXN0aW5neyRnaXRfZGlyfXskcmVmfSA9ICRyOwotCQlwdXNoIEAkcXVldWUsICRyOwotCX0KLX0KLW5zdG9yZSAkcXVldWUsICRxdWV1ZV9uYW1lOwotCi1mbG9jayBMT0NLLCBMT0NLX1VOOwotY2xvc2UgTE9DSzsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY3JlZGVudGlhbC9vc3hrZXljaGFpbi9naXQtY3JlZGVudGlhbC1vc3hrZXljaGFpbi5jIGIvY29udHJpYi9jcmVkZW50aWFsL29zeGtleWNoYWluL2dpdC1jcmVkZW50aWFsLW9zeGtleWNoYWluLmMKaW5kZXggMzk0MDIwMi4uYmNkM2Y1NyAxMDA2NDQKLS0tIGEvY29udHJpYi9jcmVkZW50aWFsL29zeGtleWNoYWluL2dpdC1jcmVkZW50aWFsLW9zeGtleWNoYWluLmMKKysrIGIvY29udHJpYi9jcmVkZW50aWFsL29zeGtleWNoYWluL2dpdC1jcmVkZW50aWFsLW9zeGtleWNoYWluLmMKQEAgLTEyNywxMCArMTI3LDIwIEBACiAJCSp2KysgPSAnXDAnOwogCiAJCWlmICghc3RyY21wKGJ1ZiwgInByb3RvY29sIikpIHsKLQkJCWlmICghc3RyY21wKHYsICJodHRwcyIpKQorCQkJaWYgKCFzdHJjbXAodiwgImltYXAiKSkKKwkJCQlwcm90b2NvbCA9IGtTZWNQcm90b2NvbFR5cGVJTUFQOworCQkJZWxzZSBpZiAoIXN0cmNtcCh2LCAiaW1hcHMiKSkKKwkJCQlwcm90b2NvbCA9IGtTZWNQcm90b2NvbFR5cGVJTUFQUzsKKwkJCWVsc2UgaWYgKCFzdHJjbXAodiwgImZ0cCIpKQorCQkJCXByb3RvY29sID0ga1NlY1Byb3RvY29sVHlwZUZUUDsKKwkJCWVsc2UgaWYgKCFzdHJjbXAodiwgImZ0cHMiKSkKKwkJCQlwcm90b2NvbCA9IGtTZWNQcm90b2NvbFR5cGVGVFBTOworCQkJZWxzZSBpZiAoIXN0cmNtcCh2LCAiaHR0cHMiKSkKIAkJCQlwcm90b2NvbCA9IGtTZWNQcm90b2NvbFR5cGVIVFRQUzsKIAkJCWVsc2UgaWYgKCFzdHJjbXAodiwgImh0dHAiKSkKIAkJCQlwcm90b2NvbCA9IGtTZWNQcm90b2NvbFR5cGVIVFRQOworCQkJZWxzZSBpZiAoIXN0cmNtcCh2LCAic210cCIpKQorCQkJCXByb3RvY29sID0ga1NlY1Byb3RvY29sVHlwZVNNVFA7CiAJCQllbHNlIC8qIHdlIGRvbid0IHlldCBoYW5kbGUgb3RoZXIgcHJvdG9jb2xzICovCiAJCQkJZXhpdCgwKTsKIAkJfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9oZy10by1naXQvaGctdG8tZ2l0LnB5IGIvY29udHJpYi9oZy10by1naXQvaGctdG8tZ2l0LnB5CmluZGV4IDIzMjYyNWEuLjYwZGVjODYgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvaGctdG8tZ2l0L2hnLXRvLWdpdC5weQorKysgYi9jb250cmliL2hnLXRvLWdpdC9oZy10by1naXQucHkKQEAgLTIyNSw3ICsyMjUsNyBAQAogICAgIG9zLnN5c3RlbSgnZ2l0IGxzLWZpbGVzIC14IC5oZyAtLWRlbGV0ZWQgfCBnaXQgdXBkYXRlLWluZGV4IC0tcmVtb3ZlIC0tc3RkaW4nKQogCiAgICAgIyBjb21taXQKLSAgICBvcy5zeXN0ZW0oZ2V0Z2l0ZW52KHVzZXIsIGRhdGUpICsgJ2dpdCBjb21taXQgLS1hbGxvdy1lbXB0eSAtYSAtRiAlcycgJSBmaWxlY29tbWVudCkKKyAgICBvcy5zeXN0ZW0oZ2V0Z2l0ZW52KHVzZXIsIGRhdGUpICsgJ2dpdCBjb21taXQgLS1hbGxvdy1lbXB0eSAtLWFsbG93LWVtcHR5LW1lc3NhZ2UgLWEgLUYgJXMnICUgZmlsZWNvbW1lbnQpCiAgICAgb3MudW5saW5rKGZpbGVjb21tZW50KQogCiAgICAgIyB0YWcKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL1JFQURNRSBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTA0Mzk2Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9ob29rcy9tdWx0aW1haWwvUkVBRE1FCkBAIC0wLDAgKzEsNDg2IEBACisJCQkgICBnaXQtbXVsdGltYWlsCisJCQkgICA9PT09PT09PT09PT09CisKK2dpdC1tdWx0aW1haWwgaXMgYSB0b29sIGZvciBzZW5kaW5nIG5vdGlmaWNhdGlvbiBlbWFpbHMgb24gcHVzaGVzIHRvIGEKK0dpdCByZXBvc2l0b3J5LiAgSXQgaW5jbHVkZXMgYSBQeXRob24gbW9kdWxlIGNhbGxlZCBnaXRfbXVsdGltYWlsLnB5LAord2hpY2ggY2FuIGVpdGhlciBiZSB1c2VkIGFzIGEgaG9vayBzY3JpcHQgZGlyZWN0bHkgb3IgY2FuIGJlIGltcG9ydGVkCithcyBhIFB5dGhvbiBtb2R1bGUgaW50byBhbm90aGVyIHNjcmlwdC4KKworZ2l0LW11bHRpbWFpbCBpcyBkZXJpdmVkIGZyb20gdGhlIEdpdCBwcm9qZWN0J3Mgb2xkCitjb250cmliL2hvb2tzL3Bvc3QtcmVjZWl2ZS1lbWFpbCwgYW5kIGlzIG1vc3RseSBjb21wYXRpYmxlIHdpdGggdGhhdAorc2NyaXB0LiAgU2VlIFJFQURNRS5taWdyYXRlLWZyb20tcG9zdC1yZWNlaXZlLWVtYWlsIGZvciBkZXRhaWxzIGFib3V0Cit0aGUgZGlmZmVyZW5jZXMgYW5kIGZvciBob3cgdG8gbWlncmF0ZSBmcm9tIHBvc3QtcmVjZWl2ZS1lbWFpbCB0bworZ2l0LW11bHRpbWFpbC4KKworZ2l0LW11bHRpbWFpbCwgbGlrZSB0aGUgcmVzdCBvZiB0aGUgR2l0IHByb2plY3QsIGlzIGxpY2Vuc2VkIHVuZGVyCitHUEx2MiAoc2VlIHRoZSBDT1BZSU5HIGZpbGUgZm9yIGRldGFpbHMpLgorCitQbGVhc2Ugbm90ZTogYWx0aG91Z2gsIGFzIGEgY29udmVuaWVuY2UsIGdpdC1tdWx0aW1haWwgbWF5IGJlCitkaXN0cmlidXRlZCBhbG9uZyB3aXRoIHRoZSBtYWluIEdpdCBwcm9qZWN0LCBkZXZlbG9wbWVudCBvZgorZ2l0LW11bHRpbWFpbCB0YWtlcyBwbGFjZSBpbiBpdHMgb3duLCBzZXBhcmF0ZSBwcm9qZWN0LiAgU2VlIHNlY3Rpb24KKyJHZXR0aW5nIGludm9sdmVkIiBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKworCitCeSBkZWZhdWx0LCBmb3IgZWFjaCBwdXNoIHJlY2VpdmVkIGJ5IHRoZSByZXBvc2l0b3J5LCBnaXQtbXVsdGltYWlsOgorCisxLiBPdXRwdXRzIG9uZSBlbWFpbCBzdW1tYXJpemluZyBlYWNoIHJlZmVyZW5jZSB0aGF0IHdhcyBjaGFuZ2VkLgorICAgVGhlc2UgInJlZmVyZW5jZSBjaGFuZ2UiIChjYWxsZWQgInJlZmNoYW5nZSIgYmVsb3cpIGVtYWlscyBkZXNjcmliZQorICAgdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlIChlLmcuLCB3YXMgdGhlIHJlZmVyZW5jZSBjcmVhdGVkLCBkZWxldGVkLAorICAgZmFzdC1mb3J3YXJkZWQsIGV0Yy4pIGFuZCBpbmNsdWRlIGEgb25lLWxpbmUgc3VtbWFyeSBvZiBlYWNoIGNvbW1pdAorICAgdGhhdCB3YXMgYWRkZWQgdG8gdGhlIHJlZmVyZW5jZS4KKworMi4gT3V0cHV0cyBvbmUgZW1haWwgZm9yIGVhY2ggbmV3IGNvbW1pdCB0aGF0IHdhcyBpbnRyb2R1Y2VkIGJ5IHRoZQorICAgcmVmZXJlbmNlIGNoYW5nZS4gIFRoZXNlICJjb21taXQiIGVtYWlscyBpbmNsdWRlIGEgbGlzdCBvZiB0aGUKKyAgIGZpbGVzIGNoYW5nZWQgYnkgdGhlIGNvbW1pdCwgZm9sbG93ZWQgYnkgdGhlIGRpZmZzIG9mIGZpbGVzCisgICBtb2RpZmllZCBieSB0aGUgY29tbWl0LiAgVGhlIGNvbW1pdCBlbWFpbHMgYXJlIHRocmVhZGVkIHRvIHRoZQorICAgY29ycmVzcG9uZGluZyByZWZlcmVuY2UgY2hhbmdlIGVtYWlsIHZpYSAiSW4tUmVwbHktVG8iLiAgVGhpcyBzdHlsZQorICAgKHNpbWlsYXIgdG8gdGhlICJnaXQgZm9ybWF0LXBhdGNoIiBzdHlsZSB1c2VkIG9uIHRoZSBHaXQgbWFpbGluZworICAgbGlzdCkgbWFrZXMgaXQgZWFzeSB0byBzY2FuIHRocm91Z2ggdGhlIGVtYWlscywganVtcCB0byBwYXRjaGVzCisgICB0aGF0IG5lZWQgZnVydGhlciBhdHRlbnRpb24sIGFuZCB3cml0ZSBjb21tZW50cyBhYm91dCBzcGVjaWZpYworICAgY29tbWl0cy4gIENvbW1pdHMgYXJlIGhhbmRsZWQgaW4gcmV2ZXJzZSB0b3BvbG9naWNhbCBvcmRlciAoaS5lLiwKKyAgIHBhcmVudHMgc2hvd24gYmVmb3JlIGNoaWxkcmVuKS4gIEZvciBleGFtcGxlLAorCisgICBbZ2l0XSBicmFuY2ggbWFzdGVyIHVwZGF0ZWQKKyAgICsgW2dpdF0gMDEvMDg6IGRvYzogZml4IHhyZWYgbGluayBmcm9tIGFwaSBkb2NzIHRvIG1hbnVhbCBwYWdlcworICAgKyBbZ2l0XSAwMi8wODogYXBpLWNyZWRlbnRpYWxzLnR4dDogc2hvdyB0aGUgYmlnIHBpY3R1cmUgZmlyc3QKKyAgICsgW2dpdF0gMDMvMDg6IGFwaS1jcmVkZW50aWFscy50eHQ6IG1lbnRpb24gY3JlZGVudGlhbC5oZWxwZXIgZXhwbGljaXRseQorICAgKyBbZ2l0XSAwNC8wODogYXBpLWNyZWRlbnRpYWxzLnR4dDogYWRkICJzZWUgYWxzbyIgc2VjdGlvbgorICAgKyBbZ2l0XSAwNS8wODogdDM1MTAgKGNoZXJyeS1waWNrLXNlcXVlbmNlKTogYWRkIG1pc3NpbmcgJyYmJworICAgKyBbZ2l0XSAwNi8wODogTWVyZ2UgYnJhbmNoICdyci9tYWludC10MzUxMC1jYXNjYWRlLWZpeCcKKyAgICsgW2dpdF0gMDcvMDg6IE1lcmdlIGJyYW5jaCAnbW0vYXBpLWNyZWRlbnRpYWxzLWRvYycKKyAgICsgW2dpdF0gMDgvMDg6IEdpdCAxLjcuMTEtcmMyCisKKyAgIEVhY2ggY29tbWl0IGFwcGVhcnMgaW4gZXhhY3RseSBvbmUgY29tbWl0IGVtYWlsLCB0aGUgZmlyc3QgdGltZQorICAgdGhhdCBpdCBpcyBwdXNoZWQgdG8gdGhlIHJlcG9zaXRvcnkuICBJZiBhIGNvbW1pdCBpcyBsYXRlciBtZXJnZWQKKyAgIGludG8gYW5vdGhlciBicmFuY2gsIHRoZW4gYSBvbmUtbGluZSBzdW1tYXJ5IG9mIHRoZSBjb21taXQgaXMKKyAgIGluY2x1ZGVkIGluIHRoZSByZWZlcmVuY2UgY2hhbmdlIGVtYWlsIChhcyB1c3VhbCksIGJ1dCBubworICAgYWRkaXRpb25hbCBjb21taXQgZW1haWwgaXMgZ2VuZXJhdGVkLgorCisgICBCeSBkZWZhdWx0LCByZWZlcmVuY2UgY2hhbmdlIGVtYWlscyBoYXZlIHRoZWlyICJSZXBseS1UbyIgZmllbGQgc2V0CisgICB0byB0aGUgcGVyc29uIHdobyBwdXNoZWQgdGhlIGNoYW5nZSwgYW5kIGNvbW1pdCBlbWFpbHMgaGF2ZSB0aGVpcgorICAgIlJlcGx5LVRvIiBmaWVsZCBzZXQgdG8gdGhlIGF1dGhvciBvZiB0aGUgY29tbWl0LgorCiszLiBPdXRwdXQgb25lICJhbm5vdW5jZSIgbWFpbCBmb3IgZWFjaCBuZXcgYW5ub3RhdGVkIHRhZywgaW5jbHVkaW5nCisgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFnIGFuZCBvcHRpb25hbGx5IGEgc2hvcnRsb2cgZGVzY3JpYmluZyB0aGUKKyAgIGNoYW5nZXMgc2luY2UgdGhlIHByZXZpb3VzIHRhZy4gIFN1Y2ggZW1haWxzIG1pZ2h0IGJlIHVzZWZ1bCBpZiB5b3UKKyAgIHVzZSBhbm5vdGF0ZWQgdGFncyB0byBtYXJrIHJlbGVhc2VzIG9mIHlvdXIgcHJvamVjdC4KKworCitSZXF1aXJlbWVudHMKKy0tLS0tLS0tLS0tLQorCisqIFB5dGhvbiAyLngsIHZlcnNpb24gMi40IG9yIGxhdGVyLiAgTm8gbm9uLXN0YW5kYXJkIFB5dGhvbiBtb2R1bGVzCisgIGFyZSByZXF1aXJlZC4gIGdpdC1tdWx0aW1haWwgZG9lcyAqbm90KiBjdXJyZW50bHkgd29yayB3aXRoIFB5dGhvbgorICAzLnguCisKKyAgVGhlIGV4YW1wbGUgc2NyaXB0cyBpbnZva2UgUHl0aG9uIHVzaW5nIHRoZSBmb2xsb3dpbmcgc2hlYmFuZyBsaW5lCisgIChmb2xsb3dpbmcgUEVQIDM5NCBbMV0pOgorCisgICAgICAjISAvdXNyL2Jpbi9lbnYgcHl0aG9uMgorCisgIElmIHlvdXIgc3lzdGVtJ3MgUHl0aG9uMiBpbnRlcnByZXRlciBpcyBub3QgaW4geW91ciBQQVRIIG9yIGlzIG5vdAorICBjYWxsZWQgInB5dGhvbjIiLCB5b3UgY2FuIGNoYW5nZSB0aGUgbGluZXMgYWNjb3JkaW5nbHkuICBPciB5b3UgY2FuCisgIGludm9rZSB0aGUgUHl0aG9uIGludGVycHJldGVyIGV4cGxpY2l0bHksIGZvciBleGFtcGxlIHZpYSBhIHRpbnkKKyAgc2hlbGwgc2NyaXB0IGxpa2UKKworICAgICAgIyEgL2Jpbi9zaAorICAgICAgL3Vzci9sb2NhbC9iaW4vcHl0aG9uIC9wYXRoL3RvL2dpdF9tdWx0aW1haWwucHkgIiRAIgorCisqIFRoZSAiZ2l0IiBjb21tYW5kIG11c3QgYmUgaW4geW91ciBQQVRILiAgZ2l0LW11bHRpbWFpbCBpcyBrbm93biB0bworICB3b3JrIHdpdGggR2l0IHZlcnNpb25zIGJhY2sgdG8gMS43LjEuICAoRWFybGllciB2ZXJzaW9ucyBoYXZlIG5vdAorICBiZWVuIHRlc3RlZDsgaWYgeW91IGRvIHNvLCBwbGVhc2UgcmVwb3J0IHlvdXIgcmVzdWx0cy4pCisKKyogVG8gc2VuZCBlbWFpbHMgdXNpbmcgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwgYSBzdGFuZGFyZCBzZW5kbWFpbAorICBwcm9ncmFtIG11c3QgYmUgbG9jYXRlZCBhdCAnL3Vzci9zYmluL3NlbmRtYWlsJyBhbmQgY29uZmlndXJlZAorICBjb3JyZWN0bHkgdG8gc2VuZCBlbWFpbHMuICBJZiB0aGlzIGlzIG5vdCB0aGUgY2FzZSwgc2VlIHRoZQorICBtdWx0aW1haWxob29rLm1haWxlciBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGJlbG93IGZvciBob3cgdG8KKyAgY29uZmlndXJlIGdpdC1tdWx0aW1haWwgdG8gc2VuZCBlbWFpbHMgdmlhIGFuIFNNVFAgc2VydmVyLgorCisKK0ludm9jYXRpb24KKy0tLS0tLS0tLS0KKworZ2l0X211bHRpbWFpbC5weSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIGFzIGEgInBvc3QtcmVjZWl2ZSIgaG9vayBpbiBhCitHaXQgcmVwb3NpdG9yeSAoc2VlIGdpdGhvb2tzKDUpKS4gIExpbmsgb3IgY29weSBpdCB0bworJEdJVF9ESVIvaG9va3MvcG9zdC1yZWNlaXZlIHdpdGhpbiB0aGUgcmVwb3NpdG9yeSBmb3Igd2hpY2ggZW1haWwKK25vdGlmaWNhdGlvbnMgYXJlIGRlc2lyZWQuICBVc3VhbGx5IGl0IHNob3VsZCBiZSBpbnN0YWxsZWQgb24gdGhlCitjZW50cmFsIHJlcG9zaXRvcnkgZm9yIGEgcHJvamVjdCwgdG8gd2hpY2ggYWxsIGNvbW1pdHMgYXJlIGV2ZW50dWFsbHkKK3B1c2hlZC4KKworRm9yIHVzZSBvbiBwcmUtdjEuNS4xIEdpdCBzZXJ2ZXJzLCBnaXRfbXVsdGltYWlsLnB5IGNhbiBhbHNvIHdvcmsgYXMKK2FuICJ1cGRhdGUiIGhvb2ssIHRha2luZyBpdHMgYXJndW1lbnRzIG9uIHRoZSBjb21tYW5kIGxpbmUuICBUbyB1c2UKK3RoaXMgc2NyaXB0IGluIHRoaXMgbWFubmVyLCBsaW5rIG9yIGNvcHkgaXQgdG8gJEdJVF9ESVIvaG9va3MvdXBkYXRlLgorUGxlYXNlIG5vdGUgdGhhdCB0aGUgc2NyaXB0IGlzIG5vdCBjb21wbGV0ZWx5IHJlbGlhYmxlIGluIHRoaXMgbW9kZQorWzJdLgorCitBbHRlcm5hdGl2ZWx5LCBnaXRfbXVsdGltYWlsLnB5IGNhbiBiZSBpbXBvcnRlZCBhcyBhIFB5dGhvbiBtb2R1bGUKK2ludG8geW91ciBvd24gUHl0aG9uIHBvc3QtcmVjZWl2ZSBzY3JpcHQuICBUaGlzIG1ldGhvZCBpcyBhIGJpdCBtb3JlCit3b3JrLCBidXQgYWxsb3dzIHRoZSBiZWhhdmlvciBvZiB0aGUgaG9vayB0byBiZSBjdXN0b21pemVkIHVzaW5nCithcmJpdHJhcnkgUHl0aG9uIGNvZGUuICBGb3IgZXhhbXBsZSwgeW91IGNhbiB1c2UgYSBjdXN0b20gZW52aXJvbm1lbnQKKyhwZXJoYXBzIGluaGVyaXRpbmcgZnJvbSBHZW5lcmljRW52aXJvbm1lbnQgb3IgR2l0b2xpdGVFbnZpcm9ubWVudCkgdG8KKworKiBjaGFuZ2UgaG93IHRoZSB1c2VyIHdobyBkaWQgdGhlIHB1c2ggaXMgZGV0ZXJtaW5lZAorCisqIHJlYWQgdXNlcnMnIGVtYWlsIGFkZHJlc3NlcyBmcm9tIGFuIExEQVAgc2VydmVyIG9yIGZyb20gYSBkYXRhYmFzZQorCisqIGRlY2lkZSB3aGljaCB1c2VycyBzaG91bGQgYmUgbm90aWZpZWQgYWJvdXQgd2hpY2ggY29tbWl0cyBiYXNlZCBvbgorICB0aGUgY29udGVudHMgb2YgdGhlIGNvbW1pdHMgKGUuZy4sIGZvciB1c2VycyB3aG8gd2FudCB0byBiZSBub3RpZmllZAorICBvbmx5IGFib3V0IGNoYW5nZXMgYWZmZWN0aW5nIHBhcnRpY3VsYXIgZmlsZXMgb3Igc3ViZGlyZWN0b3JpZXMpCisKK09yIHlvdSBjYW4gY2hhbmdlIGhvdyBlbWFpbHMgYXJlIHNlbnQgYnkgd3JpdGluZyB5b3VyIG93biBNYWlsZXIKK2NsYXNzLiAgVGhlICJwb3N0LXJlY2VpdmUiIHNjcmlwdCBpbiB0aGlzIGRpcmVjdG9yeSBkZW1vbnN0cmF0ZXMgaG93Cit0byB1c2UgZ2l0X211bHRpbWFpbC5weSBhcyBhIFB5dGhvbiBtb2R1bGUuICAoSWYgeW91IG1ha2UgaW50ZXJlc3RpbmcKK2NoYW5nZXMgb2YgdGhpcyB0eXBlLCBwbGVhc2UgY29uc2lkZXIgc2hhcmluZyB0aGVtIHdpdGggdGhlCitjb21tdW5pdHkuKQorCisKK0NvbmZpZ3VyYXRpb24KKy0tLS0tLS0tLS0tLS0KKworQnkgZGVmYXVsdCwgZ2l0LW11bHRpbWFpbCBtb3N0bHkgdGFrZXMgaXRzIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUKK2ZvbGxvd2luZyAiZ2l0IGNvbmZpZyIgc2V0dGluZ3M6CisKK211bHRpbWFpbGhvb2suZW52aXJvbm1lbnQKKworICAgIFRoaXMgZGVzY3JpYmVzIHRoZSBnZW5lcmFsIGVudmlyb25tZW50IG9mIHRoZSByZXBvc2l0b3J5LgorICAgIEN1cnJlbnRseSBzdXBwb3J0ZWQgdmFsdWVzOgorCisgICAgImdlbmVyaWMiIC0tIHRoZSB1c2VybmFtZSBvZiB0aGUgcHVzaGVyIGlzIHJlYWQgZnJvbSAkVVNFUiBhbmQgdGhlCisgICAgICAgIHJlcG9zaXRvcnkgbmFtZSBpcyBkZXJpdmVkIGZyb20gdGhlIHJlcG9zaXRvcnkncyBwYXRoLgorCisgICAgImdpdG9saXRlIiAtLSB0aGUgdXNlcm5hbWUgb2YgdGhlIHB1c2hlciBpcyByZWFkIGZyb20gJEdMX1VTRVIgYW5kCisgICAgICAgIHRoZSByZXBvc2l0b3J5IG5hbWUgZnJvbSAkR0xfUkVQTy4KKworICAgIElmIG5laXRoZXIgb2YgdGhlc2UgZW52aXJvbm1lbnRzIGlzIHN1aXRhYmxlIGZvciB5b3VyIHNldHVwLCB0aGVuCisgICAgeW91IGNhbiBpbXBsZW1lbnQgYSBQeXRob24gY2xhc3MgdGhhdCBpbmhlcml0cyBmcm9tIEVudmlyb25tZW50CisgICAgYW5kIGluc3RhbnRpYXRlIGl0IHZpYSBhIHNjcmlwdCB0aGF0IGxvb2tzIGxpa2UgdGhlIGV4YW1wbGUKKyAgICBwb3N0LXJlY2VpdmUgc2NyaXB0LgorCisgICAgVGhlIGVudmlyb25tZW50IHZhbHVlIGNhbiBiZSBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZSB1c2luZworICAgIHRoZSAtLWVudmlyb25tZW50IG9wdGlvbi4gIElmIGl0IGlzIG5vdCBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQKKyAgICBsaW5lIG9yIGJ5IG11bHRpbWFpbGhvb2suZW52aXJvbm1lbnQsIHRoZW4gaXQgZGVmYXVsdHMgdG8KKyAgICAiZ2l0b2xpdGUiIGlmIHRoZSBlbnZpcm9ubWVudCBjb250YWlucyB2YXJpYWJsZXMgJEdMX1VTRVIgYW5kCisgICAgJEdMX1JFUE87IG90aGVyd2lzZSAiZ2VuZXJpYyIuCisKK211bHRpbWFpbGhvb2sucmVwb05hbWUKKworICAgIEEgc2hvcnQgbmFtZSBvZiB0aGlzIEdpdCByZXBvc2l0b3J5LCB0byBiZSB1c2VkIGluIHZhcmlvdXMgcGxhY2VzCisgICAgaW4gdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0ZXh0LiAgVGhlIGRlZmF1bHQgaXMgdG8gdXNlICRHTF9SRVBPCisgICAgZm9yIGdpdG9saXRlIHJlcG9zaXRvcmllcywgb3Igb3RoZXJ3aXNlIHRvIGRlcml2ZSB0aGlzIHZhbHVlIGZyb20KKyAgICB0aGUgcmVwb3NpdG9yeSBwYXRoIG5hbWUuCisKK211bHRpbWFpbGhvb2subWFpbGluZ2xpc3QKKworICAgIFRoZSBsaXN0IG9mIGVtYWlsIGFkZHJlc3NlcyB0byB3aGljaCBub3RpZmljYXRpb24gZW1haWxzIHNob3VsZCBiZQorICAgIHNlbnQsIGFzIFJGQyAyODIyIGVtYWlsIGFkZHJlc3NlcyBzZXBhcmF0ZWQgYnkgY29tbWFzLiAgVGhpcworICAgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGNhbiBiZSBtdWx0aXZhbHVlZC4gIExlYXZlIGl0IHVuc2V0IG9yIHNldCBpdAorICAgIHRvIHRoZSBlbXB0eSBzdHJpbmcgdG8gbm90IHNlbmQgZW1haWxzIGJ5IGRlZmF1bHQuICBUaGUgbmV4dCBmZXcKKyAgICBzZXR0aW5ncyBjYW4gYmUgdXNlZCB0byBjb25maWd1cmUgc3BlY2lmaWMgYWRkcmVzcyBsaXN0cyBmb3IKKyAgICBzcGVjaWZpYyB0eXBlcyBvZiBub3RpZmljYXRpb24gZW1haWwuCisKK211bHRpbWFpbGhvb2sucmVmY2hhbmdlTGlzdAorCisgICAgVGhlIGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzIHRvIHdoaWNoIHN1bW1hcnkgZW1haWxzIGFib3V0CisgICAgcmVmZXJlbmNlIGNoYW5nZXMgc2hvdWxkIGJlIHNlbnQsIGFzIFJGQyAyODIyIGVtYWlsIGFkZHJlc3NlcworICAgIHNlcGFyYXRlZCBieSBjb21tYXMuICBUaGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGNhbiBiZQorICAgIG11bHRpdmFsdWVkLiAgVGhlIGRlZmF1bHQgaXMgdGhlIHZhbHVlIGluCisgICAgbXVsdGltYWlsaG9vay5tYWlsaW5nbGlzdC4gIFNldCB0aGlzIHZhbHVlIHRvIHRoZSBlbXB0eSBzdHJpbmcgdG8KKyAgICBwcmV2ZW50IHJlZmVyZW5jZSBjaGFuZ2UgZW1haWxzIGZyb20gYmVpbmcgc2VudC4KKworbXVsdGltYWlsaG9vay5hbm5vdW5jZUxpc3QKKworICAgIFRoZSBsaXN0IG9mIGVtYWlsIGFkZHJlc3NlcyB0byB3aGljaCBlbWFpbHMgYWJvdXQgbmV3IGFubm90YXRlZAorICAgIHRhZ3Mgc2hvdWxkIGJlIHNlbnQsIGFzIFJGQyAyODIyIGVtYWlsIGFkZHJlc3NlcyBzZXBhcmF0ZWQgYnkKKyAgICBjb21tYXMuICBUaGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGNhbiBiZSBtdWx0aXZhbHVlZC4gIFRoZQorICAgIGRlZmF1bHQgaXMgdGhlIHZhbHVlIGluIG11bHRpbWFpbGhvb2sucmVmY2hhbmdlbGlzdCBvcgorICAgIG11bHRpbWFpbGhvb2subWFpbGluZ2xpc3QuICBTZXQgdGhpcyB2YWx1ZSB0byB0aGUgZW1wdHkgc3RyaW5nIHRvCisgICAgcHJldmVudCBhbm5vdGF0ZWQgdGFnIGFubm91bmNlbWVudCBlbWFpbHMgZnJvbSBiZWluZyBzZW50LgorCittdWx0aW1haWxob29rLmNvbW1pdExpc3QKKworICAgIFRoZSBsaXN0IG9mIGVtYWlsIGFkZHJlc3NlcyB0byB3aGljaCBlbWFpbHMgYWJvdXQgaW5kaXZpZHVhbCBuZXcKKyAgICBjb21taXRzIHNob3VsZCBiZSBzZW50LCBhcyBSRkMgMjgyMiBlbWFpbCBhZGRyZXNzZXMgc2VwYXJhdGVkIGJ5CisgICAgY29tbWFzLiAgVGhpcyBjb25maWd1cmF0aW9uIG9wdGlvbiBjYW4gYmUgbXVsdGl2YWx1ZWQuICBUaGUKKyAgICBkZWZhdWx0IGlzIHRoZSB2YWx1ZSBpbiBtdWx0aW1haWxob29rLm1haWxpbmdsaXN0LiAgU2V0IHRoaXMgdmFsdWUKKyAgICB0byB0aGUgZW1wdHkgc3RyaW5nIHRvIHByZXZlbnQgbm90aWZpY2F0aW9uIGVtYWlscyBhYm91dAorICAgIGluZGl2aWR1YWwgY29tbWl0cyBmcm9tIGJlaW5nIHNlbnQuCisKK211bHRpbWFpbGhvb2suYW5ub3VuY2VTaG9ydGxvZworCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IHRvIHRydWUsIHRoZW4gZW1haWxzIGFib3V0IGNoYW5nZXMgdG8KKyAgICBhbm5vdGF0ZWQgdGFncyBpbmNsdWRlIGEgc2hvcnRsb2cgb2YgY2hhbmdlcyBzaW5jZSB0aGUgcHJldmlvdXMKKyAgICB0YWcuICBUaGlzIGNhbiBiZSB1c2VmdWwgaWYgdGhlIGFubm90YXRlZCB0YWdzIHJlcHJlc2VudCByZWxlYXNlczsKKyAgICB0aGVuIHRoZSBzaG9ydGxvZyB3aWxsIGJlIGEga2luZCBvZiByb3VnaCBzdW1tYXJ5IG9mIHdoYXQgaGFzCisgICAgaGFwcGVuZWQgc2luY2UgdGhlIGxhc3QgcmVsZWFzZS4gIEJ1dCBpZiB5b3VyIHRhZ2dpbmcgcG9saWN5IGlzCisgICAgbm90IHNvIHN0cmFpZ2h0Zm9yd2FyZCwgdGhlbiB0aGUgc2hvcnRsb2cgbWlnaHQgYmUgY29uZnVzaW5nCisgICAgcmF0aGVyIHRoYW4gdXNlZnVsLiAgRGVmYXVsdCBpcyBmYWxzZS4KKworbXVsdGltYWlsaG9vay5yZWZjaGFuZ2VTaG93TG9nCisKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgdG8gdHJ1ZSwgdGhlbiBzdW1tYXJ5IGVtYWlscyBhYm91dCByZWZlcmVuY2UKKyAgICBjaGFuZ2VzIHdpbGwgaW5jbHVkZSBhIGRldGFpbGVkIGxvZyBvZiB0aGUgYWRkZWQgY29tbWl0cyBpbgorICAgIGFkZGl0aW9uIHRvIHRoZSBvbmUgbGluZSBzdW1tYXJ5LiAgVGhlIGxvZyBpcyBnZW5lcmF0ZWQgYnkgcnVubmluZworICAgICJnaXQgbG9nIiB3aXRoIHRoZSBvcHRpb25zIHNwZWNpZmllZCBpbiBtdWx0aW1haWxob29rLmxvZ09wdHMuCisgICAgRGVmYXVsdCBpcyBmYWxzZS4KKworbXVsdGltYWlsaG9vay5tYWlsZXIKKworICAgIFRoaXMgb3B0aW9uIGNoYW5nZXMgdGhlIHdheSBlbWFpbHMgYXJlIHNlbnQuICBBY2NlcHRlZCB2YWx1ZXMgYXJlOgorCisgICAgLSBzZW5kbWFpbCAodGhlIGRlZmF1bHQpOiB1c2UgdGhlIGNvbW1hbmQgL3Vzci9zYmluL3NlbmRtYWlsIG9yCisgICAgICAvdXNyL2xpYi9zZW5kbWFpbCAob3Igc2VuZG1haWxDb21tYW5kLCBpZiBjb25maWd1cmVkKS4gIFRoaXMKKyAgICAgIG1vZGUgY2FuIGJlIGZ1cnRoZXIgY3VzdG9taXplZCB2aWEgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorCisgICAgICAgbXVsdGltYWlsaG9vay5zZW5kbWFpbENvbW1hbmQKKworICAgICAgICAgICBUaGUgY29tbWFuZCB1c2VkIGJ5IG1haWxlciAic2VuZG1haWwiIHRvIHNlbmQgZW1haWxzLiAgU2hlbGwKKyAgICAgICAgICAgcXVvdGluZyBpcyBhbGxvd2VkIGluIHRoZSB2YWx1ZSBvZiB0aGlzIHNldHRpbmcsIGJ1dCByZW1lbWJlciB0aGF0CisgICAgICAgICAgIEdpdCByZXF1aXJlcyBkb3VibGUtcXVvdGVzIHRvIGJlIGVzY2FwZWQ7IGUuZy4sCisKKyAgICAgICAgICAgICBnaXQgY29uZmlnIG11bHRpbWFpbGhvb2suc2VuZG1haWxjb21tYW5kICcvdXNyL3NiaW4vc2VuZG1haWwgLXQgLUYgXCJHaXQgUmVwb1wiJworCisgICAgICAgICAgIERlZmF1bHQgaXMgJy91c3Ivc2Jpbi9zZW5kbWFpbCAtdCcgb3IgJy91c3IvbGliL3NlbmRtYWlsCisgICAgICAgICAgIC10JyAoZGVwZW5kaW5nIG9uIHdoaWNoIGZpbGUgaXMgcHJlc2VudCBhbmQgZXhlY3V0YWJsZSkuCisKKyAgICAgICBtdWx0aW1haWxob29rLmVudmVsb3BlU2VuZGVyCisKKyAgICAgICAgICAgSWYgc2V0IHRoZW4gcGFzcyB0aGlzIHZhbHVlIHRvIHNlbmRtYWlsIHZpYSB0aGUgLWYgb3B0aW9uIHRvIHNldAorICAgICAgICAgICB0aGUgZW52ZWxvcGUgc2VuZGVyIGFkZHJlc3MuCisKKyAgICAtIHNtdHA6IHVzZSBQeXRob24ncyBzbXRwbGliLiAgVGhpcyBpcyB1c2VmdWwgd2hlbiB0aGUgc2VuZG1haWwKKyAgICAgIGNvbW1hbmQgaXMgbm90IGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtLiAgVGhpcyBtb2RlIGNhbiBiZQorICAgICAgZnVydGhlciBjdXN0b21pemVkIHZpYSB0aGUgZm9sbG93aW5nIG9wdGlvbnM6CisKKyAgICAgICBtdWx0aW1haWxob29rLnNtdHBTZXJ2ZXIKKworICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgU01UUCBzZXJ2ZXIgdG8gY29ubmVjdCB0by4gIFRoZSB2YWx1ZSBjYW4KKyAgICAgICAgICAgYWxzbyBpbmNsdWRlIGEgY29sb24gYW5kIGEgcG9ydCBudW1iZXI7IGUuZy4sCisgICAgICAgICAgICJtYWlsLmV4YW1wbGUuY29tOjI1Ii4gIERlZmF1bHQgaXMgJ2xvY2FsaG9zdCcgdXNpbmcgcG9ydAorICAgICAgICAgICAyNS4KKworICAgICAgIG11bHRpbWFpbGhvb2suZW52ZWxvcGVTZW5kZXIKKworICAgICAgICAgICBUaGUgc2VuZGVyIGFkZHJlc3MgdG8gYmUgcGFzc2VkIHRvIHRoZSBTTVRQIHNlcnZlci4gIElmCisgICAgICAgICAgIHVuc2V0LCB0aGVuIHRoZSB2YWx1ZSBvZiBtdWx0aW1haWxob29rLmZyb20gaXMgdXNlZC4KKworbXVsdGltYWlsaG9vay5mcm9tCisKKyAgICBJZiBzZXQgdGhlbiB1c2UgdGhpcyB2YWx1ZSBpbiB0aGUgRnJvbTogZmllbGQgb2YgZ2VuZXJhdGVkIGVtYWlscy4KKyAgICBJZiB1bnNldCwgdGhlbiB1c2UgdGhlIHJlcG9zaXRvcnkncyB1c2VyIGNvbmZpZ3VyYXRpb24gKHVzZXIubmFtZQorICAgIGFuZCB1c2VyLmVtYWlsKS4gIElmIHVzZXIuZW1haWwgaXMgYWxzbyB1bnNldCwgdGhlbiB1c2UKKyAgICBtdWx0aW1haWxob29rLmVudmVsb3BlU2VuZGVyLgorCittdWx0aW1haWxob29rLmFkbWluaXN0cmF0b3IKKworICAgIFRoZSBuYW1lIGFuZC9vciBlbWFpbCBhZGRyZXNzIG9mIHRoZSBhZG1pbmlzdHJhdG9yIG9mIHRoZSBHaXQKKyAgICByZXBvc2l0b3J5OyB1c2VkIGluIEZPT1RFUl9URU1QTEFURS4gIERlZmF1bHQgaXMKKyAgICBtdWx0aW1haWxob29rLmVudmVsb3Blc2VuZGVyIGlmIGl0IGlzIHNldDsgb3RoZXJ3aXNlIGEgZ2VuZXJpYworICAgIHN0cmluZyBpcyB1c2VkLgorCittdWx0aW1haWxob29rLmVtYWlsUHJlZml4CisKKyAgICBBbGwgZW1haWxzIGhhdmUgdGhpcyBzdHJpbmcgcHJlcGVuZGVkIHRvIHRoZWlyIHN1YmplY3RzLCB0byBhaWQKKyAgICBlbWFpbCBmaWx0ZXJpbmcgKHRob3VnaCBmaWx0ZXJpbmcgYmFzZWQgb24gdGhlIFgtR2l0LSogZW1haWwKKyAgICBoZWFkZXJzIGlzIHByb2JhYmx5IG1vcmUgcm9idXN0KS4gIERlZmF1bHQgaXMgdGhlIHNob3J0IG5hbWUgb2YKKyAgICB0aGUgcmVwb3NpdG9yeSBpbiBzcXVhcmUgYnJhY2tldHM7IGUuZy4sICJbbXlyZXBvXSIuCisKK211bHRpbWFpbGhvb2suZW1haWxNYXhMaW5lcworCisgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGxpbmVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBib2R5IG9mCisgICAgYSBnZW5lcmF0ZWQgZW1haWwuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGVyZSBpcyBubyBsaW1pdC4gIExpbmVzCisgICAgYmV5b25kIHRoZSBsaW1pdCBhcmUgc3VwcHJlc3NlZCBhbmQgY291bnRlZCwgYW5kIGEgZmluYWwgbGluZSBpcworICAgIGFkZGVkIGluZGljYXRpbmcgdGhlIG51bWJlciBvZiBzdXBwcmVzc2VkIGxpbmVzLgorCittdWx0aW1haWxob29rLmVtYWlsTWF4TGluZUxlbmd0aAorCisgICAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgbGluZSBpbiB0aGUgZW1haWwgYm9keS4gIExpbmVzIGxvbmdlciB0aGFuCisgICAgdGhpcyBsaW1pdCBhcmUgdHJ1bmNhdGVkIHRvIHRoaXMgbGVuZ3RoIHdpdGggYSB0cmFpbGluZyAiIFsuLi5dIgorICAgIGFkZGVkIHRvIGluZGljYXRlIHRoZSBtaXNzaW5nIHRleHQuICBUaGUgZGVmYXVsdCBpcyA1MDAsIGJlY2F1c2UKKyAgICAoYSkgZGlmZnMgd2l0aCBsb25nZXIgbGluZXMgYXJlIHByb2JhYmx5IGZyb20gYmluYXJ5IGZpbGVzLCBmb3IKKyAgICB3aGljaCBhIGRpZmYgaXMgdXNlbGVzcywgYW5kIChiKSBldmVuIGlmIGEgdGV4dCBmaWxlIGhhcyBzdWNoIGxvbmcKKyAgICBsaW5lcywgdGhlIGRpZmZzIGFyZSBwcm9iYWJseSB1bnJlYWRhYmxlIGFueXdheS4gIFRvIGRpc2FibGUgbGluZQorICAgIHRydW5jYXRpb24sIHNldCB0aGlzIG9wdGlvbiB0byAwLgorCittdWx0aW1haWxob29rLm1heENvbW1pdEVtYWlscworCisgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbW1pdCBlbWFpbHMgdG8gc2VuZCBmb3IgYSBnaXZlbiBjaGFuZ2UuCisgICAgV2hlbiB0aGUgbnVtYmVyIG9mIHBhdGNoZXMgaXMgbGFyZ2VyIHRoYXQgdGhpcyB2YWx1ZSwgb25seSB0aGUKKyAgICBzdW1tYXJ5IHJlZmNoYW5nZSBlbWFpbCBpcyBzZW50LiAgVGhpcyBjYW4gYXZvaWQgYWNjaWRlbnRhbAorICAgIG1haWxib21iaW5nLCBmb3IgZXhhbXBsZSBvbiBhbiBpbml0aWFsIHB1c2guICBUbyBkaXNhYmxlIGNvbW1pdAorICAgIGVtYWlscyBsaW1pdCwgc2V0IHRoaXMgb3B0aW9uIHRvIDAuICBUaGUgZGVmYXVsdCBpcyA1MDAuCisKK211bHRpbWFpbGhvb2suZW1haWxTdHJpY3RVVEY4CisKKyAgICBJZiB0aGlzIGJvb2xlYW4gb3B0aW9uIGlzIHNldCB0byAidHJ1ZSIsIHRoZW4gdGhlIG1haW4gcGFydCBvZiB0aGUKKyAgICBlbWFpbCBib2R5IGlzIGZvcmNlZCB0byBiZSB2YWxpZCBVVEYtOC4gIEFueSBjaGFyYWN0ZXJzIHRoYXQgYXJlCisgICAgbm90IHZhbGlkIFVURi04IGFyZSBjb252ZXJ0ZWQgdG8gdGhlIFVuaWNvZGUgcmVwbGFjZW1lbnQKKyAgICBjaGFyYWN0ZXIsIFUrRkZGRC4gIFRoZSBkZWZhdWx0IGlzICJ0cnVlIi4KKworbXVsdGltYWlsaG9vay5kaWZmT3B0cworCisgICAgT3B0aW9ucyBwYXNzZWQgdG8gImdpdCBkaWZmLXRyZWUiIHdoZW4gZ2VuZXJhdGluZyB0aGUgc3VtbWFyeQorICAgIGluZm9ybWF0aW9uIGZvciBSZWZlcmVuY2VDaGFuZ2UgZW1haWxzLiAgRGVmYXVsdCBpcyAiLS1zdGF0CisgICAgLS1zdW1tYXJ5IC0tZmluZC1jb3BpZXMtaGFyZGVyIi4gIEFkZCAtcCB0byB0aG9zZSBvcHRpb25zIHRvCisgICAgaW5jbHVkZSBhIHVuaWZpZWQgZGlmZiBvZiBjaGFuZ2VzIGluIGFkZGl0aW9uIHRvIHRoZSB1c3VhbCBzdW1tYXJ5CisgICAgb3V0cHV0LiAgU2hlbGwgcXVvdGluZyBpcyBhbGxvd2VkOyBzZWUgbXVsdGltYWlsaG9vay5sb2dPcHRzIGZvcgorICAgIGRldGFpbHMuCisKK211bHRpbWFpbGhvb2subG9nT3B0cworCisgICAgT3B0aW9ucyBwYXNzZWQgdG8gImdpdCBsb2ciIHRvIGdlbmVyYXRlIGFkZGl0aW9uYWwgaW5mbyBmb3IKKyAgICByZWZlcmVuY2UgY2hhbmdlIGVtYWlscyAodXNlZCBvbmx5IGlmIHJlZmNoYW5nZVNob3dMb2cgaXMgc2V0KS4KKyAgICBGb3IgZXhhbXBsZSwgYWRkaW5nIC0tZ3JhcGggd2lsbCBzaG93IHRoZSBncmFwaCBvZiByZXZpc2lvbnMsIC1wCisgICAgd2lsbCBzaG93IHRoZSBjb21wbGV0ZSBkaWZmLCBldGMuICBUaGUgZGVmYXVsdCBpcyBlbXB0eS4KKworICAgIFNoZWxsIHF1b3RpbmcgaXMgYWxsb3dlZDsgZm9yIGV4YW1wbGUsIGEgbG9nIGZvcm1hdCB0aGF0IGNvbnRhaW5zCisgICAgc3BhY2VzIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgc29tZXRoaW5nIGxpa2U6CisKKyAgICAgIGdpdCBjb25maWcgbXVsdGltYWlsaG9vay5sb2dvcHRzICctLXByZXR0eT1mb3JtYXQ6IiVoICVhTiA8JWFFPiVuJXMlbiVuJWIlbiInCisKKyAgICBJZiB5b3Ugd2FudCB0byBzZXQgdGhpcyBieSBlZGl0aW5nIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlCisgICAgZGlyZWN0bHksIHJlbWVtYmVyIHRoYXQgR2l0IHJlcXVpcmVzIGRvdWJsZS1xdW90ZXMgdG8gYmUgZXNjYXBlZAorICAgIChzZWUgZ2l0LWNvbmZpZygxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbik6CisKKyAgICAgIFttdWx0aW1haWxob29rXQorICAgICAgICAgICAgICBsb2dvcHRzID0gLS1wcmV0dHk9Zm9ybWF0OlwiJWggJWFOIDwlYUU+JW4lcyVuJW4lYiVuXCIKKworbXVsdGltYWlsaG9vay5lbWFpbERvbWFpbgorCisgICAgRG9tYWluIG5hbWUgYXBwZW5kZWQgdG8gdGhlIHVzZXJuYW1lIG9mIHRoZSBwZXJzb24gZG9pbmcgdGhlIHB1c2gKKyAgICB0byBjb252ZXJ0IGl0IGludG8gYW4gZW1haWwgYWRkcmVzcyAodmlhICIlc0AlcyIgJSAodXNlcm5hbWUsCisgICAgZW1haWxkb21haW4pKS4gIE1vcmUgY29tcGxpY2F0ZWQgc2NoZW1lcyBjYW4gYmUgaW1wbGVtZW50ZWQgYnkKKyAgICBvdmVycmlkaW5nIEVudmlyb25tZW50IGFuZCBvdmVycmlkaW5nIGl0cyBnZXRfcHVzaGVyX2VtYWlsKCkKKyAgICBtZXRob2QuCisKK211bHRpbWFpbGhvb2sucmVwbHlUbworbXVsdGltYWlsaG9vay5yZXBseVRvQ29tbWl0CittdWx0aW1haWxob29rLnJlcGx5VG9SZWZjaGFuZ2UKKworICAgIEFkZHJlc3NlcyB0byB1c2UgaW4gdGhlIFJlcGx5LVRvOiBmaWVsZCBmb3IgY29tbWl0IGVtYWlscworICAgIChyZXBseVRvQ29tbWl0KSBhbmQgcmVmY2hhbmdlIGVtYWlscyAocmVwbHlUb1JlZmNoYW5nZSkuCisgICAgbXVsdGltYWlsaG9vay5yZXBseVRvIGlzIHVzZWQgYXMgZGVmYXVsdCB3aGVuIHJlcGx5VG9Db21taXQgb3IKKyAgICByZXBseVRvUmVmY2hhbmdlIGlzIG5vdCBzZXQuICBUaGUgdmFsdWUgZm9yIHRoZXNlIHZhcmlhYmxlcyBjYW4gYmUKKyAgICBlaXRoZXI6CisKKyAgICAtIEFuIGVtYWlsIGFkZHJlc3MsIHdoaWNoIHdpbGwgYmUgdXNlZCBkaXJlY3RseS4KKworICAgIC0gVGhlIHZhbHVlICJwdXNoZXIiLCBpbiB3aGljaCBjYXNlIHRoZSBwdXNoZXIncyBhZGRyZXNzIChpZgorICAgICAgYXZhaWxhYmxlKSB3aWxsIGJlIHVzZWQuICBUaGlzIGlzIHRoZSBkZWZhdWx0IGZvciByZWZjaGFuZ2UKKyAgICAgIGVtYWlscy4KKworICAgIC0gVGhlIHZhbHVlICJhdXRob3IiIChtZWFuaW5nZnVsIG9ubHkgZm9yIHJlcGx5VG9Db21taXQpLCBpbiB3aGljaAorICAgICAgY2FzZSB0aGUgY29tbWl0IGF1dGhvcidzIGFkZHJlc3Mgd2lsbCBiZSB1c2VkLiAgVGhpcyBpcyB0aGUKKyAgICAgIGRlZmF1bHQgZm9yIGNvbW1pdCBlbWFpbHMuCisKKyAgICAtIFRoZSB2YWx1ZSAibm9uZSIsIGluIHdoaWNoIGNhc2UgdGhlIFJlcGx5LVRvOiBmaWVsZCB3aWxsIGJlCisgICAgICBvbWl0dGVkLgorCisKK0VtYWlsIGZpbHRlcmluZyBhaWRzCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBbGwgZW1haWxzIGluY2x1ZGUgZXh0cmEgaGVhZGVycyB0byBlbmFibGUgZmluZSB0dW5lZCBmaWx0ZXJpbmcgYW5kCitnaXZlIGluZm9ybWF0aW9uIGZvciBkZWJ1Z2dpbmcuICBBbGwgZW1haWxzIGluY2x1ZGUgdGhlIGhlYWRlcnMKKyJYLUdpdC1SZXBvIiwgIlgtR2l0LVJlZm5hbWUiLCBhbmQgIlgtR2l0LVJlZnR5cGUiLiAgUmVmZXJlbmNlQ2hhbmdlCitlbWFpbHMgYWxzbyBpbmNsdWRlIGhlYWRlcnMgIlgtR2l0LU9sZHJldiIgYW5kICJYLUdpdC1OZXdyZXYiOworUmV2aXNpb24gZW1haWxzIGFsc28gaW5jbHVkZSBoZWFkZXIgIlgtR2l0LVJldiIuCisKKworQ3VzdG9taXppbmcgZW1haWwgY29udGVudHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2dpdC1tdWx0aW1haWwgbW9zdGx5IGdlbmVyYXRlcyBlbWFpbHMgYnkgZXhwYW5kaW5nIHRlbXBsYXRlcy4gIFRoZQordGVtcGxhdGVzIGNhbiBiZSBjdXN0b21pemVkLiAgVG8gYXZvaWQgdGhlIG5lZWQgdG8gZWRpdAorZ2l0X211bHRpbWFpbC5weSBkaXJlY3RseSwgdGhlIHByZWZlcnJlZCB3YXkgdG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZXMKK2lzIHRvIHdyaXRlIGEgc2VwYXJhdGUgUHl0aG9uIHNjcmlwdCB0aGF0IGltcG9ydHMgZ2l0X211bHRpbWFpbC5weSBhcworYSBtb2R1bGUsIHRoZW4gcmVwbGFjZXMgdGhlIHRlbXBsYXRlcyBpbiBwbGFjZS4gIFNlZSB0aGUgcHJvdmlkZWQKK3Bvc3QtcmVjZWl2ZSBzY3JpcHQgZm9yIGFuIGV4YW1wbGUgb2YgaG93IHRoaXMgaXMgZG9uZS4KKworCitDdXN0b21pemluZyBnaXQtbXVsdGltYWlsIGZvciB5b3VyIGVudmlyb25tZW50CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2dpdC1tdWx0aW1haWwgaXMgbW9zdGx5IGN1c3RvbWl6ZWQgdmlhIGFuICJlbnZpcm9ubWVudCIgdGhhdCBkZXNjcmliZXMKK3RoZSBsb2NhbCBlbnZpcm9ubWVudCBpbiB3aGljaCBHaXQgaXMgcnVubmluZy4gIFR3byB0eXBlcyBvZgorZW52aXJvbm1lbnQgYXJlIGJ1aWx0IGluOgorCisqIEdlbmVyaWNFbnZpcm9ubWVudDogYSBzdGFuZC1hbG9uZSBHaXQgcmVwb3NpdG9yeS4KKworKiBHaXRvbGl0ZUVudmlyb25tZW50OiBhIEdpdCByZXBvc2l0b3J5IHRoYXQgaXMgbWFuYWdlZCBieSBnaXRvbGl0ZQorICBbM10uICBGb3Igc3VjaCByZXBvc2l0b3JpZXMsIHRoZSBpZGVudGl0eSBvZiB0aGUgcHVzaGVyIGlzIHJlYWQgZnJvbQorICBlbnZpcm9ubWVudCB2YXJpYWJsZSAkR0xfVVNFUiwgYW5kIHRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IGlzCisgIHJlYWQgZnJvbSAkR0xfUkVQTyAoaWYgaXQgaXMgbm90IG92ZXJyaWRkZW4gYnkKKyAgbXVsdGltYWlsaG9vay5yZXBvbmFtZSkuCisKK0J5IGRlZmF1bHQsIGdpdC1tdWx0aW1haWwgYXNzdW1lcyBHaXRvbGl0ZUVudmlyb25tZW50IGlmICRHTF9VU0VSIGFuZAorJEdMX1JFUE8gYXJlIHNldCwgYW5kIG90aGVyd2lzZSBhc3N1bWVzIEdlbmVyaWNFbnZpcm9ubWVudC4KK0FsdGVybmF0aXZlbHksIHlvdSBjYW4gY2hvb3NlIG9uZSBvZiB0aGVzZSB0d28gZW52aXJvbm1lbnRzIGV4cGxpY2l0bHkKK2J5IHNldHRpbmcgYSAibXVsdGltYWlsaG9vay5lbnZpcm9ubWVudCIgY29uZmlnIHNldHRpbmcgKHdoaWNoIGNhbgoraGF2ZSB0aGUgdmFsdWUgImdlbmVyaWMiIG9yICJnaXRvbGl0ZSIpIG9yIGJ5IHBhc3NpbmcgYW4gLS1lbnZpcm9ubWVudAorb3B0aW9uIHRvIHRoZSBzY3JpcHQuCisKK0lmIHlvdSBuZWVkIHRvIGN1c3RvbWl6ZSB0aGUgc2NyaXB0IGluIHdheXMgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBieQordGhlIGV4aXN0aW5nIGVudmlyb25tZW50cywgeW91IGNhbiBkZWZpbmUgeW91ciBvd24gZW52aXJvbm1lbnQgY2xhc3MKK2NsYXNzIHVzaW5nIGFyYml0cmFyeSBQeXRob24gY29kZS4gIFRvIGRvIHNvLCB5b3UgbmVlZCB0byBpbXBvcnQKK2dpdF9tdWx0aW1haWwucHkgYXMgYSBQeXRob24gbW9kdWxlLCBhcyBkZW1vbnN0cmF0ZWQgYnkgdGhlIGV4YW1wbGUKK3Bvc3QtcmVjZWl2ZSBzY3JpcHQuICBUaGVuIGltcGxlbWVudCB5b3VyIGVudmlyb25tZW50IGNsYXNzOyBpdCBzaG91bGQKK3VzdWFsbHkgaW5oZXJpdCBmcm9tIG9uZSBvZiB0aGUgZXhpc3RpbmcgRW52aXJvbm1lbnQgY2xhc3NlcyBhbmQKK3Bvc3NpYmx5IG9uZSBvciBtb3JlIG9mIHRoZSBFbnZpcm9ubWVudE1peGluIGNsYXNzZXMuICBUaGVuIHNldCB0aGUKKyJlbnZpcm9ubWVudCIgdmFyaWFibGUgdG8gYW4gaW5zdGFuY2Ugb2YgeW91ciBvd24gZW52aXJvbm1lbnQgY2xhc3MKK2FuZCBwYXNzIGl0IHRvIHJ1bl9hc19wb3N0X3JlY2VpdmVfaG9vaygpLgorCitUaGUgc3RhbmRhcmQgZW52aXJvbm1lbnQgY2xhc3NlcywgR2VuZXJpY0Vudmlyb25tZW50IGFuZAorR2l0b2xpdGVFbnZpcm9ubWVudCwgYXJlIGluIGZhY3QgdGhlbXNlbHZlcyBwdXQgdG9nZXRoZXIgb3V0IG9mIGEKK251bWJlciBvZiBtaXhpbiBjbGFzc2VzLCBlYWNoIG9mIHdoaWNoIGhhbmRsZXMgb25lIGFzcGVjdCBvZiB0aGUKK2N1c3RvbWl6YXRpb24uICBGb3IgdGhlIGZpbmVzdCBjb250cm9sIG92ZXIgeW91ciBjb25maWd1cmF0aW9uLCB5b3UKK2NhbiBzcGVjaWZ5IGV4YWN0bHkgd2hpY2ggbWl4aW4gY2xhc3NlcyB5b3VyIG93biBlbnZpcm9ubWVudCBjbGFzcworc2hvdWxkIGluaGVyaXQgZnJvbSwgYW5kIG92ZXJyaWRlIGluZGl2aWR1YWwgbWV0aG9kcyAob3IgZXZlbiBhZGQgeW91cgorb3duIG1peGluIGNsYXNzZXMpIHRvIGltcGxlbWVudCBlbnRpcmVseSBuZXcgYmVoYXZpb3JzLiAgSWYgeW91CitpbXBsZW1lbnQgYW55IG1peGlucyB0aGF0IG1pZ2h0IGJlIHVzZWZ1bCB0byBvdGhlciBwZW9wbGUsIHBsZWFzZQorY29uc2lkZXIgc2hhcmluZyB0aGVtIHdpdGggdGhlIGNvbW11bml0eSEKKworCitHZXR0aW5nIGludm9sdmVkCistLS0tLS0tLS0tLS0tLS0tCisKK2dpdC1tdWx0aW1haWwgaXMgYW4gb3Blbi1zb3VyY2UgcHJvamVjdCwgYnVpbHQgYnkgdm9sdW50ZWVycy4gIFdlCit3b3VsZCB3ZWxjb21lIHlvdXIgaGVscCEKKworVGhlIGN1cnJlbnQgbWFpbnRhaW5lciBpcyBNaWNoYWVsIEhhZ2dlcnR5IDxtaGFnZ2VyQGFsdW0ubWl0LmVkdT4uCisKK0dlbmVyYWwgZGlzY3Vzc2lvbiBvZiBnaXQtbXVsdGltYWlsIHRha2VzIHBsYWNlIG9uIHRoZSBtYWluIEdpdAorbWFpbGluZyBsaXN0LAorCisgICAgZ2l0QHZnZXIua2VybmVsLm9yZworCitQbGVhc2UgQ0MgZW1haWxzIHJlZ2FyZGluZyBnaXQtbXVsdGltYWlsIHRvIG1lIHNvIHRoYXQgSSBkb24ndAorb3Zlcmxvb2sgdGhlbS4KKworVGhlIGdpdC1tdWx0aW1haWwgcHJvamVjdCBpdHNlbGYgaXMgY3VycmVudGx5IGhvc3RlZCBvbiBHaXRIdWI6CisKKyAgICBodHRwczovL2dpdGh1Yi5jb20vbWhhZ2dlci9naXQtbXVsdGltYWlsCisKK1dlIHVzZSB0aGUgR2l0SHViIGlzc3VlIHRyYWNrZXIgdG8ga2VlcCB0cmFjayBvZiBidWdzIGFuZCBmZWF0dXJlCityZXF1ZXN0cywgYW5kIEdpdEh1YiBwdWxsIHJlcXVlc3RzIHRvIGV4Y2hhbmdlIHBhdGNoZXMgKHRob3VnaCwgaWYgeW91CitwcmVmZXIsIHlvdSBjYW4gc2VuZCBwYXRjaGVzIHZpYSB0aGUgR2l0IG1haWxpbmcgbGlzdCB3aXRoIGNjIHRvIG1lKS4KKworUGxlYXNlIG5vdGUgdGhhdCBhbHRob3VnaCBhIGNvcHkgb2YgZ2l0LW11bHRpbWFpbCB3aWxsIHByb2JhYmx5IGJlCitkaXN0cmlidXRlZCBpbiB0aGUgImNvbnRyaWIiIHNlY3Rpb24gb2YgdGhlIG1haW4gR2l0IHByb2plY3QsCitkZXZlbG9wbWVudCB0YWtlcyBwbGFjZSBpbiB0aGUgc2VwYXJhdGUgZ2l0LW11bHRpbWFpbCByZXBvc2l0b3J5IG9uCitHaXRIdWIhICAoV2hlbmV2ZXIgZW5vdWdoIGNoYW5nZXMgdG8gZ2l0LW11bHRpbWFpbCBoYXZlIGFjY3VtdWxhdGVkLCBhCituZXcgY29kZS1kcm9wIG9mIGdpdC1tdWx0aW1haWwgd2lsbCBiZSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUKK0dpdCBwcm9qZWN0LikKKworCitGb290bm90ZXMKKy0tLS0tLS0tLQorCitbMV0gaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMzk0LworCitbMl0gQmVjYXVzZSBvZiB0aGUgd2F5IGluZm9ybWF0aW9uIGlzIHBhc3NlZCB0byB1cGRhdGUgaG9va3MsIHRoZQorICAgIHNjcmlwdCdzIG1ldGhvZCBvZiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgY29tbWl0IGhhcyBhbHJlYWR5IGJlZW4KKyAgICBzZWVuIGRvZXMgbm90IHdvcmsgd2hlbiBpdCBpcyB1c2VkIGFzIGFuICJ1cGRhdGUiIHNjcmlwdC4gIEluCisgICAgcGFydGljdWxhciwgbm8gbm90aWZpY2F0aW9uIGVtYWlsIHdpbGwgYmUgZ2VuZXJhdGVkIGZvciBhIG5ldworICAgIGNvbW1pdCB0aGF0IGlzIGFkZGVkIHRvIG11bHRpcGxlIHJlZmVyZW5jZXMgaW4gdGhlIHNhbWUgcHVzaC4KKworWzNdIGh0dHBzOi8vZ2l0aHViLmNvbS9zaXRhcmFtYy9naXRvbGl0ZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9ob29rcy9tdWx0aW1haWwvUkVBRE1FLkdpdCBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL1JFQURNRS5HaXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWMyZTY2YQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL1JFQURNRS5HaXQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyBjb3B5IG9mIGdpdC1tdWx0aW1haWwgaXMgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiB0aGUgImNvbnRyaWIiCitzZWN0aW9uIG9mIHRoZSBHaXQgcHJvamVjdCBhcyBhIGNvbnZlbmllbmNlIHRvIEdpdCB1c2Vycy4KK2dpdC1tdWx0aW1haWwgaXMgZGV2ZWxvcGVkIGFzIGFuIGluZGVwZW5kZW50IHByb2plY3QgYXQgdGhlIGZvbGxvd2luZword2Vic2l0ZToKKworICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9taGFnZ2VyL2dpdC1tdWx0aW1haWwKKworVGhlIHZlcnNpb24gaW4gdGhpcyBkaXJlY3Rvcnkgd2FzIG9idGFpbmVkIGZyb20gdGhlIHVwc3RyZWFtIHByb2plY3QKK29uIDIwMTMtMDctMTQgYW5kIGNvbnNpc3RzIG9mIHRoZSAiZ2l0LW11bHRpbWFpbCIgc3ViZGlyZWN0b3J5IGZyb20KK3JldmlzaW9uCisKKyAgICAxYTVjYjA5YzY5OGE3NGQxNWE3MTVhODZiMDllYWQ1ZjU2YmY0YjA2CisKK1BsZWFzZSBzZWUgdGhlIFJFQURNRSBmaWxlIGluIHRoaXMgZGlyZWN0b3J5IGZvciBpbmZvcm1hdGlvbiBhYm91dCBob3cKK3RvIHJlcG9ydCBidWdzIG9yIGNvbnRyaWJ1dGUgdG8gZ2l0LW11bHRpbWFpbC4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL1JFQURNRS5taWdyYXRlLWZyb20tcG9zdC1yZWNlaXZlLWVtYWlsIGIvY29udHJpYi9ob29rcy9tdWx0aW1haWwvUkVBRE1FLm1pZ3JhdGUtZnJvbS1wb3N0LXJlY2VpdmUtZW1haWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU2YTk3NgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL1JFQURNRS5taWdyYXRlLWZyb20tcG9zdC1yZWNlaXZlLWVtYWlsCkBAIC0wLDAgKzEsMTQ1IEBACitnaXQtbXVsdGltYWlsIGlzIGNsb3NlIHRvLCBidXQgbm90IGV4YWN0bHksIGEgcGx1Zy1pbiByZXBsYWNlbWVudCBmb3IKK3RoZSBvbGQgR2l0IHByb2plY3Qgc2NyaXB0IGNvbnRyaWIvaG9va3MvcG9zdC1yZWNlaXZlLWVtYWlsLiAgVGhpcworZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBkaWZmZXJlbmNlcyBhbmQgZXhwbGFpbnMgaG93IHRvIGNvbmZpZ3VyZQorZ2l0LW11bHRpbWFpbCB0byBnZXQgYmVoYXZpb3IgY2xvc2VzdCB0byB0aGF0IG9mIHBvc3QtcmVjZWl2ZS1lbWFpbC4KKworSWYgeW91IGFyZSBpbiBhIGh1cnJ5Cis9PT09PT09PT09PT09PT09PT09PT0KKworQSBzY3JpcHQgY2FsbGVkIG1pZ3JhdGUtbWFpbGhvb2stY29uZmlnIGlzIGluY2x1ZGVkIHdpdGgKK2dpdC1tdWx0aW1haWwuICBJZiB5b3UgcnVuIHRoaXMgc2NyaXB0IHdpdGhpbiBhIEdpdCByZXBvc2l0b3J5IHRoYXQgaXMKK2NvbmZpZ3VyZWQgdG8gdXNlIHBvc3QtcmVjZWl2ZS1lbWFpbCwgaXQgd2lsbCBjb252ZXJ0IHRoZQorY29uZmlndXJhdGlvbiBzZXR0aW5ncyBpbnRvIHRoZSBhcHByb3hpbWF0ZSBlcXVpdmFsZW50IHNldHRpbmdzIGZvcgorZ2l0LW11bHRpbWFpbC4gIEZvciBtb3JlIGluZm9ybWF0aW9uLCBydW4KKworICAgIG1pZ3JhdGUtbWFpbGhvb2stY29uZmlnIC0taGVscAorCisKK0NvbmZpZ3VyYXRpb24gZGlmZmVyZW5jZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBUaGUgbmFtZXMgb2YgdGhlIGNvbmZpZyBvcHRpb25zIGZvciBnaXQtbXVsdGltYWlsIGFyZSBpbiBuYW1lc3BhY2UKKyAgIm11bHRpbWFpbGhvb2suKiIgaW5zdGVhZCBvZiAiaG9va3MuKiIuICAoRWRpdG9yaWFsIGNvbW1lbnQ6CisgIHBvc3QtcmVjZWl2ZS1lbWFpbCBzaG91bGQgbmV2ZXIgaGF2ZSB1c2VkIHN1Y2ggYSBnZW5lcmljIHRvcC1sZXZlbAorICBuYW1lc3BhY2UuKQorCisqIEluIGVtYWlscyBhYm91dCBuZXcgYW5ub3RhdGVkIHRhZ3MsIHBvc3QtcmVjZWl2ZS1lbWFpbCBpbmNsdWRlcyBhCisgIHNob3J0bG9nIG9mIGFsbCBjaGFuZ2VzIHNpbmNlIHRoZSBwcmV2aW91cyBhbm5vdGF0ZWQgdGFnLiAgVG8gZ2V0CisgIHRoaXMgYmVoYXZpb3Igd2l0aCBnaXQtbXVsdGltYWlsLCB5b3UgbmVlZCB0byBzZXQKKyAgbXVsdGltYWlsaG9vay5hbm5vdW5jZXNob3J0bG9nIHRvIHRydWU6CisKKyAgICAgIGdpdCBjb25maWcgbXVsdGltYWlsaG9vay5hbm5vdW5jZXNob3J0bG9nIHRydWUKKworKiBtdWx0aW1haWxob29rLmNvbW1pdGxpc3QgLS0gVGhpcyBpcyBhIG5ldyBjb25maWd1cmF0aW9uIHZhcmlhYmxlLgorICBSZWNpcGllbnRzIGxpc3RlZCBoZXJlIHdpbGwgcmVjZWl2ZSBhIHNlcGFyYXRlIGVtYWlsIGZvciBlYWNoIG5ldworICBjb21taXQuICBIb3dldmVyLCBpZiB0aGlzIHZhcmlhYmxlIGlzICpub3QqIHNldCwgaXQgZGVmYXVsdHMgdG8gdGhlCisgIHZhbHVlIG9mIG11bHRpbWFpbGhvb2subWFpbGluZ2xpc3QuICBUaGVyZWZvcmUsIGlmIHlvdSAqZG9uJ3QqIHdhbnQKKyAgdGhlIG1lbWJlcnMgb2YgbXVsdGltYWlsaG9vay5tYWlsaW5nbGlzdCB0byByZWNlaXZlIG9uZSBlbWFpbCBwZXIKKyAgY29tbWl0LCB0aGVuIHNldCB0aGlzIHZhbHVlIHRvIHRoZSBlbXB0eSBzdHJpbmc6CisKKyAgICAgIGdpdCBjb25maWcgbXVsdGltYWlsaG9vay5jb21taXRsaXN0ICcnCisKKyogbXVsdGltYWlsaG9vay5lbWFpbHByZWZpeCAtLSBJZiB0aGlzIHZhbHVlIGlzIG5vdCBzZXQsIHRoZW4gdGhlCisgIHN1YmplY3RzIG9mIGdlbmVyYXRlZCBlbWFpbHMgYXJlIHByZWZpeGVkIHdpdGggdGhlIHNob3J0IG5hbWUgb2YgdGhlCisgIHJlcG9zaXRvcnkgZW5jbG9zZWQgaW4gc3F1YXJlIGJyYWNrZXRzOyBlLmcuLCAiW215cmVwb10iLgorICBwb3N0LXJlY2VpdmUtZW1haWwgZGVmYXVsdHMgdG8gcHJlZml4ICJbU0NNXSIgaWYgdGhpcyBvcHRpb24gaXMgbm90CisgIHNldC4gIFNvIGlmIHlvdSB3ZXJlIHVzaW5nIHRoZSBvbGQgZGVmYXVsdCBhbmQgd2FudCB0byByZXRhaW4gaXQKKyAgKGZvciBleGFtcGxlLCB0byBhdm9pZCBoYXZpbmcgdG8gY2hhbmdlIHlvdXIgZW1haWwgZmlsdGVycyksIHNldAorICB0aGlzIHZhcmlhYmxlIGV4cGxpY2l0bHkgdG8gdGhlIG9sZCB2YWx1ZToKKworICAgICAgZ2l0IGNvbmZpZyBtdWx0aW1haWxob29rLmVtYWlscHJlZml4ICJbU0NNXSIKKworKiBUaGUgIm11bHRpbWFpbGhvb2suc2hvd3JldiIgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgbm90IHN1cHBvcnRlZC4KKyAgSXRzIG1haW4gdXNlIGlzIG9ic29sZXRlZCBieSB0aGUgb25lLWVtYWlsLXBlci1jb21taXQgZmVhdHVyZSBvZgorICBnaXQtbXVsdGltYWlsLgorCisKK090aGVyIGRpZmZlcmVuY2VzCis9PT09PT09PT09PT09PT09PQorCitUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIG90aGVyIGRpZmZlcmVuY2VzIGluIHRoZSBiZWhhdmlvciBvZgorZ2l0LW11bHRpbWFpbCB2cy4gcG9zdC1yZWNlaXZlLWVtYWlsLiAgRm9yIGZ1bGwgZGV0YWlscywgcGxlYXNlIHJlZmVyCit0byB0aGUgbWFpbiBSRUFETUUgZmlsZToKKworKiBPbmUgZW1haWwgcGVyIGNvbW1pdC4gIEZvciBlYWNoIHJlZmVyZW5jZSBjaGFuZ2UsIHRoZSBzY3JpcHQgZmlyc3QKKyAgb3V0cHV0cyBvbmUgZW1haWwgc3VtbWFyaXppbmcgdGhlIHJlZmVyZW5jZSBjaGFuZ2UgKGluY2x1ZGluZworICBvbmUtbGluZSBzdW1tYXJpZXMgb2YgdGhlIG5ldyBjb21taXRzKSwgdGhlbiBpdCBvdXRwdXRzIGEgc2VwYXJhdGUKKyAgZW1haWwgZm9yIGVhY2ggbmV3IGNvbW1pdCB0aGF0IHdhcyBpbnRyb2R1Y2VkLCBpbmNsdWRpbmcgcGF0Y2hlcy4KKyAgVGhlc2Ugb25lLWVtYWlsLXBlci1jb21taXQgZW1haWxzIGdvIHRvIHRoZSBhZGRyZXNzZXMgbGlzdGVkIGluCisgIG11bHRpbWFpbGhvb2suY29tbWl0bGlzdC4gIHBvc3QtcmVjZWl2ZS1lbWFpbCBzZW5kcyBvbmx5IG9uZSBlbWFpbAorICBmb3IgZWFjaCAqcmVmZXJlbmNlKiB0aGF0IGlzIGNoYW5nZWQsIG5vIG1hdHRlciBob3cgbWFueSBjb21taXRzCisgIHdlcmUgYWRkZWQgdG8gdGhlIHJlZmVyZW5jZS4KKworKiBCZXR0ZXIgYWxnb3JpdGhtIGZvciBkZXRlY3RpbmcgbmV3IGNvbW1pdHMuICBwb3N0LXJlY2VpdmUtZW1haWwKKyAgcHJvY2Vzc2VzIG9uZSByZWZlcmVuY2UgY2hhbmdlIGF0IGEgdGltZSwgd2hpY2ggY2F1c2VzIGl0IHRvIGZhaWwgdG8KKyAgZGVzY3JpYmUgbmV3IGNvbW1pdHMgdGhhdCB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIGJyYW5jaGVzLiAgRm9yCisgIGV4YW1wbGUsIGlmIGEgc2luZ2xlIHB1c2ggYWRkcyB0aGUgIioiIGNvbW1pdHMgaW4gdGhlIGRpYWdyYW0gYmVsb3csCisgIHRoZW4gcG9zdC1yZWNlaXZlLWVtYWlsIHdvdWxkIG5ldmVyIGluY2x1ZGUgdGhlIGRldGFpbHMgb2YgdGhlIHR3bworICBjb21taXRzIHRoYXQgYXJlIGNvbW1vbiB0byAibWFzdGVyIiBhbmQgImJyYW5jaCIgaW4gaXRzCisgIG5vdGlmaWNhdGlvbnMuCisKKyAgICAgIG8tLS1vLS0tby0tLSotLS0qLS0tKiAgICA8LS0gbWFzdGVyCisgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICotLS0qICA8LS0gYnJhbmNoCisKKyAgZ2l0LW11bHRpbWFpbCBhbmFseXplcyBhbGwgcmVmZXJlbmNlIG1vZGlmaWNhdGlvbnMgdG8gZGV0ZXJtaW5lCisgIHdoaWNoIGNvbW1pdHMgd2VyZSBub3QgcHJlc2VudCBiZWZvcmUgdGhlIGNoYW5nZSwgdGhlcmVmb3JlIGF2b2lkaW5nCisgIHRoYXQgZXJyb3IuCisKKyogSW4gcmVmZXJlbmNlIGNoYW5nZSBlbWFpbHMsIGdpdC1tdWx0aW1haWwgdGVsbHMgd2hpY2ggY29tbWl0cyBoYXZlCisgIGJlZW4gYWRkZWQgdG8gdGhlIHJlZmVyZW5jZSB2cy4gYXJlIGVudGlyZWx5IG5ldyB0byB0aGUgcmVwb3NpdG9yeSwKKyAgYW5kIHdoaWNoIGNvbW1pdHMgdGhhdCBoYXZlIGJlZW4gb21pdHRlZCBmcm9tIHRoZSByZWZlcmVuY2UKKyAgdnMuIGVudGlyZWx5IGRpc2NhcmRlZCBmcm9tIHRoZSByZXBvc2l0b3J5LgorCisqIFRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBHaXQgaXMgcnVubmluZyBjYW4gYmUgY29uZmlndXJlZCB2aWEgYW4KKyAgIkVudmlyb25tZW50IiBhYnN0cmFjdGlvbi4KKworKiBCdWlsdC1pbiBzdXBwb3J0IGZvciBHaXRvbGl0ZS1tYW5hZ2VkIHJlcG9zaXRvcmllcy4KKworKiBJbnN0ZWFkIG9mIHVzaW5nIGZ1bGwgU0hBMSBvYmplY3QgbmFtZXMgaW4gZW1haWxzLCBnaXQtbXVsdGltYWlsCisgIG1vc3RseSB1c2VzIGFiYnJldmlhdGVkIFNIQTFzLCBwbHVzIG9uZS1saW5lIGxvZyBtZXNzYWdlIHN1bW1hcmllcworICB3aGVyZSBhcHByb3ByaWF0ZS4KKworKiBJbiB0aGUgc2NoZW1hdGljIGRpYWdyYW1zIHRoYXQgZXhwbGFpbiBub24tZmFzdC1mb3J3YXJkIGNvbW1pdHMsCisgIGdpdC1tdWx0aW1haWwgc2hvd3MgdGhlIG5hbWVzIG9mIHRoZSBicmFuY2hlcyBpbnZvbHZlZC4KKworKiBUaGUgZW1haWxzIGdlbmVyYXRlZCBieSBnaXQtbXVsdGltYWlsIGluY2x1ZGUgdGhlIG5hbWUgb2YgdGhlIEdpdAorICByZXBvc2l0b3J5IHRoYXQgd2FzIG1vZGlmaWVkOyB0aGlzIGlzIGNvbnZlbmllbnQgZm9yIHJlY2lwaWVudHMgd2hvCisgIGFyZSBtb25pdG9yaW5nIG11bHRpcGxlIHJlcG9zaXRvcmllcy4KKworKiBnaXQtbXVsdGltYWlsIGFsbG93cyB0aGUgZW1haWwgIkZyb20iIGFkZHJlc3NlcyB0byBiZSBjb25maWd1cmVkLgorCisqIFRoZSByZWNpcGllbnRzIGxpc3RzIChtdWx0aW1haWxob29rLm1haWxpbmdsaXN0LAorICBtdWx0aW1haWxob29rLnJlZmNoYW5nZWxpc3QsIG11bHRpbWFpbGhvb2suYW5ub3VuY2VsaXN0LCBhbmQKKyAgbXVsdGltYWlsaG9vay5jb21taXRsaXN0KSBjYW4gYmUgY29tbWEtc2VwYXJhdGVkIHZhbHVlcyBhbmQvb3IKKyAgbXVsdGl2YWx1ZWQgc2V0dGluZ3MgaW4gdGhlIGNvbmZpZyBmaWxlOyBlLmcuLAorCisgICAgICBbbXVsdGltYWlsaG9va10KKyAgICAgICAgICAgICAgbWFpbGluZ2xpc3QgPSBtci5icm93bkBleGFtcGxlLmNvbSwgbXIuYmxhY2tAZXhhbXBsZS5jb20KKyAgICAgICAgICAgICAgYW5ub3VuY2VsaXN0ID0gSGltIDxoaW1AZXhhbXBsZS5jb20+CisgICAgICAgICAgICAgIGFubm91bmNlbGlzdCA9IEppbSA8amltQGV4YW1wbGUuY29tPgorICAgICAgICAgICAgICBhbm5vdW5jZWxpc3QgPSBwb3BAZXhhbXBsZS5jb20KKworICBUaGlzIG1pZ2h0IG1ha2UgaXQgZWFzaWVyIHRvIG1haW50YWluIHNob3J0IHJlY2lwaWVudHMgbGlzdHMgd2l0aG91dAorICByZXF1aXJpbmcgZnVsbC1mbGVkZ2VkIG1haWxpbmcgbGlzdCBzb2Z0d2FyZS4KKworKiBCeSBkZWZhdWx0LCBnaXQtbXVsdGltYWlsIHNldHMgZW1haWwgIlJlcGx5LVRvIiBoZWFkZXJzIHRvIHJlcGx5IHRvCisgIHRoZSBwdXNoZXIgKGZvciByZWZlcmVuY2UgdXBkYXRlcykgYW5kIHRvIHRoZSBhdXRob3IgKGZvciBjb21taXQKKyAgbm90aWZpY2F0aW9ucykuICBCeSBkZWZhdWx0LCB0aGUgcHVzaGVyJ3MgZW1haWwgYWRkcmVzcyBpcworICBjb25zdHJ1Y3RlZCBieSBhcHBlbmRpbmcgIm11bHRpbWFpbGhvb2suZW1haWxkb21haW4iIHRvIHRoZSBwdXNoZXIncworICB1c2VybmFtZS4KKworKiBUaGUgZ2VuZXJhdGVkIGVtYWlscyBjb250YWluIGEgY29uZmlndXJhYmxlIGZvb3Rlci4gIEJ5IGRlZmF1bHQsIGl0CisgIGxpc3RzIHRoZSBuYW1lIG9mIHRoZSBhZG1pbmlzdHJhdG9yIHdobyBzaG91bGQgYmUgY29udGFjdGVkIHRvCisgIHVuc3Vic2NyaWJlIGZyb20gbm90aWZpY2F0aW9uIGVtYWlscy4KKworKiBOZXcgb3B0aW9uIG11bHRpbWFpbGhvb2suZW1haWxtYXhsaW5lbGVuZ3RoIHRvIGxpbWl0IHRoZSBsZW5ndGggb2YKKyAgbGluZXMgaW4gdGhlIG1haW4gcGFydCBvZiB0aGUgZW1haWwgYm9keS4gIFRoZSBkZWZhdWx0IGxpbWl0IGlzIDUwMAorICBjaGFyYWN0ZXJzLgorCisqIE5ldyBvcHRpb24gbXVsdGltYWlsaG9vay5lbWFpbHN0cmljdHV0ZjggdG8gZW5zdXJlIHRoYXQgdGhlIG1haW4KKyAgcGFydCBvZiB0aGUgZW1haWwgYm9keSBpcyB2YWxpZCBVVEYtOC4gIEludmFsaWQgY2hhcmFjdGVycyBhcmUKKyAgdHVybmVkIGludG8gdGhlIFVuaWNvZGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLCBVK0ZGRkQuICBCeSBkZWZhdWx0CisgIHRoaXMgb3B0aW9uIGlzIHR1cm5lZCBvbi4KKworKiBXcml0dGVuIGluIFB5dGhvbi4gIEVhc2llciB0byBhZGQgbmV3IGZlYXR1cmVzLgpkaWZmIC0tZ2l0IGEvY29udHJpYi9ob29rcy9tdWx0aW1haWwvZ2l0X211bHRpbWFpbC5weSBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL2dpdF9tdWx0aW1haWwucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODFjNmE1MQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL2dpdF9tdWx0aW1haWwucHkKQEAgLTAsMCArMSwyMzkzIEBACisjISAvdXNyL2Jpbi9lbnYgcHl0aG9uMgorCisjIENvcHlyaWdodCAoYykgMjAxMiwyMDEzIE1pY2hhZWwgSGFnZ2VydHkKKyMgRGVyaXZlZCBmcm9tIGNvbnRyaWIvaG9va3MvcG9zdC1yZWNlaXZlLWVtYWlsLCB3aGljaCBpcworIyBDb3B5cmlnaHQgKGMpIDIwMDcgQW5keSBQYXJraW5zCisjIGFuZCBhbHNvIGluY2x1ZGVzIGNvbnRyaWJ1dGlvbnMgYnkgb3RoZXIgYXV0aG9ycy4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZ2l0LW11bHRpbWFpbC4KKyMKKyMgZ2l0LW11bHRpbWFpbCBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbgorIyAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlCisjIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworIiIiR2VuZXJhdGUgbm90aWZpY2F0aW9uIGVtYWlscyBmb3IgcHVzaGVzIHRvIGEgZ2l0IHJlcG9zaXRvcnkuCisKK1RoaXMgaG9vayBzZW5kcyBlbWFpbHMgZGVzY3JpYmluZyBjaGFuZ2VzIGludHJvZHVjZWQgYnkgcHVzaGVzIHRvIGEKK2dpdCByZXBvc2l0b3J5LiAgRm9yIGVhY2ggcmVmZXJlbmNlIHRoYXQgd2FzIGNoYW5nZWQsIGl0IGVtaXRzIG9uZQorUmVmZXJlbmNlQ2hhbmdlIGVtYWlsIHN1bW1hcml6aW5nIGhvdyB0aGUgcmVmZXJlbmNlIHdhcyBjaGFuZ2VkLAorZm9sbG93ZWQgYnkgb25lIFJldmlzaW9uIGVtYWlsIGZvciBlYWNoIG5ldyBjb21taXQgdGhhdCB3YXMgaW50cm9kdWNlZAorYnkgdGhlIHJlZmVyZW5jZSBjaGFuZ2UuCisKK0VhY2ggY29tbWl0IGlzIGFubm91bmNlZCBpbiBleGFjdGx5IG9uZSBSZXZpc2lvbiBlbWFpbC4gIElmIHRoZSBzYW1lCitjb21taXQgaXMgbWVyZ2VkIGludG8gYW5vdGhlciBicmFuY2ggaW4gdGhlIHNhbWUgb3IgYSBsYXRlciBwdXNoLCB0aGVuCit0aGUgUmVmZXJlbmNlQ2hhbmdlIGVtYWlsIHdpbGwgbGlzdCB0aGUgY29tbWl0J3MgU0hBMSBhbmQgaXRzIG9uZS1saW5lCitzdW1tYXJ5LCBidXQgbm8gbmV3IFJldmlzaW9uIGVtYWlsIHdpbGwgYmUgZ2VuZXJhdGVkLgorCitUaGlzIHNjcmlwdCBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIGFzIGEgInBvc3QtcmVjZWl2ZSIgaG9vayBpbiBhIGdpdAorcmVwb3NpdG9yeSAoc2VlIGdpdGhvb2tzKDUpKS4gIEl0IGNhbiBhbHNvIGJlIHVzZWQgYXMgYW4gInVwZGF0ZSIKK3NjcmlwdCwgYnV0IHRoaXMgdXNhZ2UgaXMgbm90IGNvbXBsZXRlbHkgcmVsaWFibGUgYW5kIGlzIGRlcHJlY2F0ZWQuCisKK1RvIGhlbHAgd2l0aCBkZWJ1Z2dpbmcsIHRoaXMgc2NyaXB0IGFjY2VwdHMgYSAtLXN0ZG91dCBvcHRpb24sIHdoaWNoCitjYXVzZXMgdGhlIGVtYWlscyB0byBiZSB3cml0dGVuIHRvIHN0YW5kYXJkIG91dHB1dCByYXRoZXIgdGhhbiBzZW50Cit1c2luZyBzZW5kbWFpbC4KKworU2VlIHRoZSBhY2NvbXBhbnlpbmcgUkVBRE1FIGZpbGUgZm9yIHRoZSBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLgorCisiIiIKKworaW1wb3J0IHN5cworaW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBiaXNlY3QKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc2hsZXgKK2ltcG9ydCBvcHRwYXJzZQoraW1wb3J0IHNtdHBsaWIKKwordHJ5OgorICAgIGZyb20gZW1haWwudXRpbHMgaW1wb3J0IG1ha2VfbXNnaWQKKyAgICBmcm9tIGVtYWlsLnV0aWxzIGltcG9ydCBnZXRhZGRyZXNzZXMKKyAgICBmcm9tIGVtYWlsLnV0aWxzIGltcG9ydCBmb3JtYXRhZGRyCisgICAgZnJvbSBlbWFpbC5oZWFkZXIgaW1wb3J0IEhlYWRlcgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgUHJpb3IgdG8gUHl0aG9uIDIuNSwgdGhlIGVtYWlsIG1vZHVsZSB1c2VkIGRpZmZlcmVudCBuYW1lczoKKyAgICBmcm9tIGVtYWlsLlV0aWxzIGltcG9ydCBtYWtlX21zZ2lkCisgICAgZnJvbSBlbWFpbC5VdGlscyBpbXBvcnQgZ2V0YWRkcmVzc2VzCisgICAgZnJvbSBlbWFpbC5VdGlscyBpbXBvcnQgZm9ybWF0YWRkcgorICAgIGZyb20gZW1haWwuSGVhZGVyIGltcG9ydCBIZWFkZXIKKworCitERUJVRyA9IEZhbHNlCisKK1pFUk9TID0gJzAnICogNDAKK0xPR0JFR0lOID0gJy0gTG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4nCitMT0dFTkQgPSAnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbicKKworCisjIEl0IGlzIGFzc3VtZWQgaW4gbWFueSBwbGFjZXMgdGhhdCB0aGUgZW5jb2RpbmcgaXMgdW5pZm9ybWx5IFVURi04LAorIyBzbyBjaGFuZ2luZyB0aGVzZSBjb25zdGFudHMgaXMgdW5zdXBwb3J0ZWQuICBCdXQgZGVmaW5lIHRoZW0gaGVyZQorIyBhbnl3YXksIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZpbmQgKGF0IGxlYXN0IG1vc3Qgb2YpIHRoZSBwbGFjZXMKKyMgd2hlcmUgdGhlIGVuY29kaW5nIGlzIGltcG9ydGFudC4KKyhFTkNPRElORywgQ0hBUlNFVCkgPSAoJ1VURi04JywgJ3V0Zi04JykKKworCitSRUZfQ1JFQVRFRF9TVUJKRUNUX1RFTVBMQVRFID0gKAorICAgICclKGVtYWlscHJlZml4KXMlKHJlZm5hbWVfdHlwZSlzICUoc2hvcnRfcmVmbmFtZSlzIGNyZWF0ZWQnCisgICAgJyAobm93ICUobmV3cmV2X3Nob3J0KXMpJworICAgICkKK1JFRl9VUERBVEVEX1NVQkpFQ1RfVEVNUExBVEUgPSAoCisgICAgJyUoZW1haWxwcmVmaXgpcyUocmVmbmFtZV90eXBlKXMgJShzaG9ydF9yZWZuYW1lKXMgdXBkYXRlZCcKKyAgICAnICglKG9sZHJldl9zaG9ydClzIC0+ICUobmV3cmV2X3Nob3J0KXMpJworICAgICkKK1JFRl9ERUxFVEVEX1NVQkpFQ1RfVEVNUExBVEUgPSAoCisgICAgJyUoZW1haWxwcmVmaXgpcyUocmVmbmFtZV90eXBlKXMgJShzaG9ydF9yZWZuYW1lKXMgZGVsZXRlZCcKKyAgICAnICh3YXMgJShvbGRyZXZfc2hvcnQpcyknCisgICAgKQorCitSRUZDSEFOR0VfSEVBREVSX1RFTVBMQVRFID0gIiIiXAorVG86ICUocmVjaXBpZW50cylzCitTdWJqZWN0OiAlKHN1YmplY3QpcworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0lKGNoYXJzZXQpcworQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorTWVzc2FnZS1JRDogJShtc2dpZClzCitGcm9tOiAlKGZyb21hZGRyKXMKK1JlcGx5LVRvOiAlKHJlcGx5X3RvKXMKK1gtR2l0LVJlcG86ICUocmVwb19zaG9ydG5hbWUpcworWC1HaXQtUmVmbmFtZTogJShyZWZuYW1lKXMKK1gtR2l0LVJlZnR5cGU6ICUocmVmbmFtZV90eXBlKXMKK1gtR2l0LU9sZHJldjogJShvbGRyZXYpcworWC1HaXQtTmV3cmV2OiAlKG5ld3JldilzCitBdXRvLVN1Ym1pdHRlZDogYXV0by1nZW5lcmF0ZWQKKyIiIgorCitSRUZDSEFOR0VfSU5UUk9fVEVNUExBVEUgPSAiIiJcCitUaGlzIGlzIGFuIGF1dG9tYXRlZCBlbWFpbCBmcm9tIHRoZSBnaXQgaG9va3MvcG9zdC1yZWNlaXZlIHNjcmlwdC4KKworJShwdXNoZXIpcyBwdXNoZWQgYSBjaGFuZ2UgdG8gJShyZWZuYW1lX3R5cGUpcyAlKHNob3J0X3JlZm5hbWUpcworaW4gcmVwb3NpdG9yeSAlKHJlcG9fc2hvcnRuYW1lKXMuCisKKyIiIgorCisKK0ZPT1RFUl9URU1QTEFURSA9ICIiIlwKKworLS0gXG5cCitUbyBzdG9wIHJlY2VpdmluZyBub3RpZmljYXRpb24gZW1haWxzIGxpa2UgdGhpcyBvbmUsIHBsZWFzZSBjb250YWN0CislKGFkbWluaXN0cmF0b3Ipcy4KKyIiIgorCisKK1JFV0lORF9PTkxZX1RFTVBMQVRFID0gIiIiXAorVGhpcyB1cGRhdGUgcmVtb3ZlZCBleGlzdGluZyByZXZpc2lvbnMgZnJvbSB0aGUgcmVmZXJlbmNlLCBsZWF2aW5nIHRoZQorcmVmZXJlbmNlIHBvaW50aW5nIGF0IGEgcHJldmlvdXMgcG9pbnQgaW4gdGhlIHJlcG9zaXRvcnkgaGlzdG9yeS4KKworICogLS0gKiAtLSBOICAgJShyZWZuYW1lKXMgKCUobmV3cmV2X3Nob3J0KXMpCisgICAgICAgICAgICBcXAorICAgICAgICAgICAgIE8gLS0gTyAtLSBPICAgKCUob2xkcmV2X3Nob3J0KXMpCisKK0FueSByZXZpc2lvbnMgbWFya2VkICJvbWl0cyIgYXJlIG5vdCBnb25lOyBvdGhlciByZWZlcmVuY2VzIHN0aWxsCityZWZlciB0byB0aGVtLiAgQW55IHJldmlzaW9ucyBtYXJrZWQgImRpc2NhcmRzIiBhcmUgZ29uZSBmb3JldmVyLgorIiIiCisKKworTk9OX0ZGX1RFTVBMQVRFID0gIiIiXAorVGhpcyB1cGRhdGUgYWRkZWQgbmV3IHJldmlzaW9ucyBhZnRlciB1bmRvaW5nIGV4aXN0aW5nIHJldmlzaW9ucy4KK1RoYXQgaXMgdG8gc2F5LCBzb21lIHJldmlzaW9ucyB0aGF0IHdlcmUgaW4gdGhlIG9sZCB2ZXJzaW9uIG9mIHRoZQorJShyZWZuYW1lX3R5cGUpcyBhcmUgbm90IGluIHRoZSBuZXcgdmVyc2lvbi4gIFRoaXMgc2l0dWF0aW9uIG9jY3Vycword2hlbiBhIHVzZXIgLS1mb3JjZSBwdXNoZXMgYSBjaGFuZ2UgYW5kIGdlbmVyYXRlcyBhIHJlcG9zaXRvcnkKK2NvbnRhaW5pbmcgc29tZXRoaW5nIGxpa2UgdGhpczoKKworICogLS0gKiAtLSBCIC0tIE8gLS0gTyAtLSBPICAgKCUob2xkcmV2X3Nob3J0KXMpCisgICAgICAgICAgICBcXAorICAgICAgICAgICAgIE4gLS0gTiAtLSBOICAgJShyZWZuYW1lKXMgKCUobmV3cmV2X3Nob3J0KXMpCisKK1lvdSBzaG91bGQgYWxyZWFkeSBoYXZlIHJlY2VpdmVkIG5vdGlmaWNhdGlvbiBlbWFpbHMgZm9yIGFsbCBvZiB0aGUgTworcmV2aXNpb25zLCBhbmQgc28gdGhlIGZvbGxvd2luZyBlbWFpbHMgZGVzY3JpYmUgb25seSB0aGUgTiByZXZpc2lvbnMKK2Zyb20gdGhlIGNvbW1vbiBiYXNlLCBCLgorCitBbnkgcmV2aXNpb25zIG1hcmtlZCAib21pdHMiIGFyZSBub3QgZ29uZTsgb3RoZXIgcmVmZXJlbmNlcyBzdGlsbAorcmVmZXIgdG8gdGhlbS4gIEFueSByZXZpc2lvbnMgbWFya2VkICJkaXNjYXJkcyIgYXJlIGdvbmUgZm9yZXZlci4KKyIiIgorCisKK05PX05FV19SRVZJU0lPTlNfVEVNUExBVEUgPSAiIiJcCitObyBuZXcgcmV2aXNpb25zIHdlcmUgYWRkZWQgYnkgdGhpcyB1cGRhdGUuCisiIiIKKworCitESVNDQVJERURfUkVWSVNJT05TX1RFTVBMQVRFID0gIiIiXAorVGhpcyBjaGFuZ2UgcGVybWFuZW50bHkgZGlzY2FyZHMgdGhlIGZvbGxvd2luZyByZXZpc2lvbnM6CisiIiIKKworCitOT19ESVNDQVJERURfUkVWSVNJT05TX1RFTVBMQVRFID0gIiIiXAorVGhlIHJldmlzaW9ucyB0aGF0IHdlcmUgb24gdGhpcyAlKHJlZm5hbWVfdHlwZSlzIGFyZSBzdGlsbCBjb250YWluZWQgaW4KK290aGVyIHJlZmVyZW5jZXM7IHRoZXJlZm9yZSwgdGhpcyBjaGFuZ2UgZG9lcyBub3QgZGlzY2FyZCBhbnkgY29tbWl0cworZnJvbSB0aGUgcmVwb3NpdG9yeS4KKyIiIgorCisKK05FV19SRVZJU0lPTlNfVEVNUExBVEUgPSAiIiJcCitUaGUgJSh0b3QpcyByZXZpc2lvbnMgbGlzdGVkIGFib3ZlIGFzICJuZXciIGFyZSBlbnRpcmVseSBuZXcgdG8gdGhpcworcmVwb3NpdG9yeSBhbmQgd2lsbCBiZSBkZXNjcmliZWQgaW4gc2VwYXJhdGUgZW1haWxzLiAgVGhlIHJldmlzaW9ucworbGlzdGVkIGFzICJhZGRzIiB3ZXJlIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgcmVwb3NpdG9yeSBhbmQgaGF2ZSBvbmx5CitiZWVuIGFkZGVkIHRvIHRoaXMgcmVmZXJlbmNlLgorCisiIiIKKworCitUQUdfQ1JFQVRFRF9URU1QTEFURSA9ICIiIlwKKyAgICAgICAgYXQgICUobmV3cmV2X3Nob3J0KS05cyAoJShuZXdyZXZfdHlwZSlzKQorIiIiCisKKworVEFHX1VQREFURURfVEVNUExBVEUgPSAiIiJcCisqKiogV0FSTklORzogdGFnICUoc2hvcnRfcmVmbmFtZSlzIHdhcyBtb2RpZmllZCEgKioqCisKKyAgICAgIGZyb20gICUob2xkcmV2X3Nob3J0KS05cyAoJShvbGRyZXZfdHlwZSlzKQorICAgICAgICB0byAgJShuZXdyZXZfc2hvcnQpLTlzICglKG5ld3Jldl90eXBlKXMpCisiIiIKKworCitUQUdfREVMRVRFRF9URU1QTEFURSA9ICIiIlwKKyoqKiBXQVJOSU5HOiB0YWcgJShzaG9ydF9yZWZuYW1lKXMgd2FzIGRlbGV0ZWQhICoqKgorCisiIiIKKworCisjIFRoZSB0ZW1wbGF0ZSB1c2VkIGluIHN1bW1hcnkgdGFibGVzLiAgSXQgbG9va3MgYmVzdCBpZiB0aGlzIHVzZXMgdGhlCisjIHNhbWUgYWxpZ25tZW50IGFzIFRBR19DUkVBVEVEX1RFTVBMQVRFIGFuZCBUQUdfVVBEQVRFRF9URU1QTEFURS4KK0JSSUVGX1NVTU1BUllfVEVNUExBVEUgPSAiIiJcCislKGFjdGlvbikxMHMgICUocmV2X3Nob3J0KS05cyAlKHRleHQpcworIiIiCisKKworTk9OX0NPTU1JVF9VUERBVEVfVEVNUExBVEUgPSAiIiJcCitUaGlzIGlzIGFuIHVudXN1YWwgcmVmZXJlbmNlIGNoYW5nZSBiZWNhdXNlIHRoZSByZWZlcmVuY2UgZGlkIG5vdAorcmVmZXIgdG8gYSBjb21taXQgZWl0aGVyIGJlZm9yZSBvciBhZnRlciB0aGUgY2hhbmdlLiAgV2UgZG8gbm90IGtub3cKK2hvdyB0byBwcm92aWRlIGZ1bGwgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyByZWZlcmVuY2UgY2hhbmdlLgorIiIiCisKKworUkVWSVNJT05fSEVBREVSX1RFTVBMQVRFID0gIiIiXAorVG86ICUocmVjaXBpZW50cylzCitTdWJqZWN0OiAlKGVtYWlscHJlZml4KXMlKG51bSkwMmQvJSh0b3QpMDJkOiAlKG9uZWxpbmUpcworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0lKGNoYXJzZXQpcworQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorRnJvbTogJShmcm9tYWRkcilzCitSZXBseS1UbzogJShyZXBseV90bylzCitJbi1SZXBseS1UbzogJShyZXBseV90b19tc2dpZClzCitSZWZlcmVuY2VzOiAlKHJlcGx5X3RvX21zZ2lkKXMKK1gtR2l0LVJlcG86ICUocmVwb19zaG9ydG5hbWUpcworWC1HaXQtUmVmbmFtZTogJShyZWZuYW1lKXMKK1gtR2l0LVJlZnR5cGU6ICUocmVmbmFtZV90eXBlKXMKK1gtR2l0LVJldjogJShyZXYpcworQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkCisiIiIKKworUkVWSVNJT05fSU5UUk9fVEVNUExBVEUgPSAiIiJcCitUaGlzIGlzIGFuIGF1dG9tYXRlZCBlbWFpbCBmcm9tIHRoZSBnaXQgaG9va3MvcG9zdC1yZWNlaXZlIHNjcmlwdC4KKworJShwdXNoZXIpcyBwdXNoZWQgYSBjb21taXQgdG8gJShyZWZuYW1lX3R5cGUpcyAlKHNob3J0X3JlZm5hbWUpcworaW4gcmVwb3NpdG9yeSAlKHJlcG9fc2hvcnRuYW1lKXMuCisKKyIiIgorCisKK1JFVklTSU9OX0ZPT1RFUl9URU1QTEFURSA9IEZPT1RFUl9URU1QTEFURQorCisKK2NsYXNzIENvbW1hbmRFcnJvcihFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjbWQsIHJldGNvZGUpOgorICAgICAgICBzZWxmLmNtZCA9IGNtZAorICAgICAgICBzZWxmLnJldGNvZGUgPSByZXRjb2RlCisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXygKKyAgICAgICAgICAgIHNlbGYsCisgICAgICAgICAgICAnQ29tbWFuZCAiJXMiIGZhaWxlZCB3aXRoIHJldGNvZGUgJXMnICUgKCcgJy5qb2luKGNtZCksIHJldGNvZGUsKQorICAgICAgICAgICAgKQorCisKK2NsYXNzIENvbmZpZ3VyYXRpb25FeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworZGVmIHJlYWRfZ2l0X291dHB1dChhcmdzLCBpbnB1dD1Ob25lLCBrZWVwZW5kcz1GYWxzZSwgKiprdyk6CisgICAgIiIiUmVhZCB0aGUgb3V0cHV0IG9mIGEgR2l0IGNvbW1hbmQuIiIiCisKKyAgICByZXR1cm4gcmVhZF9vdXRwdXQoCisgICAgICAgIFsnZ2l0JywgJy1jJywgJ2kxOG4ubG9nb3V0cHV0ZW5jb2Rpbmc9JXMnICUgKEVOQ09ESU5HLCldICsgYXJncywKKyAgICAgICAgaW5wdXQ9aW5wdXQsIGtlZXBlbmRzPWtlZXBlbmRzLCAqKmt3CisgICAgICAgICkKKworCitkZWYgcmVhZF9vdXRwdXQoY21kLCBpbnB1dD1Ob25lLCBrZWVwZW5kcz1GYWxzZSwgKiprdyk6CisgICAgaWYgaW5wdXQ6CisgICAgICAgIHN0ZGluID0gc3VicHJvY2Vzcy5QSVBFCisgICAgZWxzZToKKyAgICAgICAgc3RkaW4gPSBOb25lCisgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oCisgICAgICAgIGNtZCwgc3RkaW49c3RkaW4sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsICoqa3cKKyAgICAgICAgKQorICAgIChvdXQsIGVycikgPSBwLmNvbW11bmljYXRlKGlucHV0KQorICAgIHJldGNvZGUgPSBwLndhaXQoKQorICAgIGlmIHJldGNvZGU6CisgICAgICAgIHJhaXNlIENvbW1hbmRFcnJvcihjbWQsIHJldGNvZGUpCisgICAgaWYgbm90IGtlZXBlbmRzOgorICAgICAgICBvdXQgPSBvdXQucnN0cmlwKCdcblxyJykKKyAgICByZXR1cm4gb3V0CisKKworZGVmIHJlYWRfZ2l0X2xpbmVzKGFyZ3MsIGtlZXBlbmRzPUZhbHNlLCAqKmt3KToKKyAgICAiIiJSZXR1cm4gdGhlIGxpbmVzIG91dHB1dCBieSBHaXQgY29tbWFuZC4KKworICAgIFJldHVybiBhcyBzaW5nbGUgbGluZXMsIHdpdGggbmV3bGluZXMgc3RyaXBwZWQgb2ZmLiIiIgorCisgICAgcmV0dXJuIHJlYWRfZ2l0X291dHB1dChhcmdzLCBrZWVwZW5kcz1UcnVlLCAqKmt3KS5zcGxpdGxpbmVzKGtlZXBlbmRzKQorCisKK2NsYXNzIENvbmZpZyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZWN0aW9uLCBnaXRfY29uZmlnPU5vbmUpOgorICAgICAgICAiIiJSZXByZXNlbnQgYSBzZWN0aW9uIG9mIHRoZSBnaXQgY29uZmlndXJhdGlvbi4KKworICAgICAgICBJZiBnaXRfY29uZmlnIGlzIHNwZWNpZmllZCwgaXQgaXMgcGFzc2VkIHRvICJnaXQgY29uZmlnIiBpbgorICAgICAgICB0aGUgR0lUX0NPTkZJRyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgbWVhbmluZyB0aGF0ICJnaXQgY29uZmlnIgorICAgICAgICB3aWxsIHJlYWQgdGhlIHNwZWNpZmllZCBwYXRoIHJhdGhlciB0aGFuIHRoZSBHaXQgZGVmYXVsdAorICAgICAgICBjb25maWcgcGF0aHMuIiIiCisKKyAgICAgICAgc2VsZi5zZWN0aW9uID0gc2VjdGlvbgorICAgICAgICBpZiBnaXRfY29uZmlnOgorICAgICAgICAgICAgc2VsZi5lbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAgICAgICAgc2VsZi5lbnZbJ0dJVF9DT05GSUcnXSA9IGdpdF9jb25maWcKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZW52ID0gTm9uZQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfc3BsaXQocyk6CisgICAgICAgICIiIlNwbGl0IE5VTC10ZXJtaW5hdGVkIHZhbHVlcy4iIiIKKworICAgICAgICB3b3JkcyA9IHMuc3BsaXQoJ1wwJykKKyAgICAgICAgYXNzZXJ0IHdvcmRzWy0xXSA9PSAnJworICAgICAgICByZXR1cm4gd29yZHNbOi0xXQorCisgICAgZGVmIGdldChzZWxmLCBuYW1lLCBkZWZhdWx0PU5vbmUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB2YWx1ZXMgPSBzZWxmLl9zcGxpdChyZWFkX2dpdF9vdXRwdXQoCisgICAgICAgICAgICAgICAgICAgIFsnY29uZmlnJywgJy0tZ2V0JywgJy0tbnVsbCcsICclcy4lcycgJSAoc2VsZi5zZWN0aW9uLCBuYW1lKV0sCisgICAgICAgICAgICAgICAgICAgIGVudj1zZWxmLmVudiwga2VlcGVuZHM9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgKSkKKyAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAxCisgICAgICAgICAgICByZXR1cm4gdmFsdWVzWzBdCisgICAgICAgIGV4Y2VwdCBDb21tYW5kRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorCisgICAgZGVmIGdldF9ib29sKHNlbGYsIG5hbWUsIGRlZmF1bHQ9Tm9uZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZhbHVlID0gcmVhZF9naXRfb3V0cHV0KAorICAgICAgICAgICAgICAgIFsnY29uZmlnJywgJy0tZ2V0JywgJy0tYm9vbCcsICclcy4lcycgJSAoc2VsZi5zZWN0aW9uLCBuYW1lKV0sCisgICAgICAgICAgICAgICAgZW52PXNlbGYuZW52LAorICAgICAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IENvbW1hbmRFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBkZWZhdWx0CisgICAgICAgIHJldHVybiB2YWx1ZSA9PSAndHJ1ZScKKworICAgIGRlZiBnZXRfYWxsKHNlbGYsIG5hbWUsIGRlZmF1bHQ9Tm9uZSk6CisgICAgICAgICIiIlJlYWQgYSAocG9zc2libHkgbXVsdGl2YWx1ZWQpIHNldHRpbmcgZnJvbSB0aGUgY29uZmlndXJhdGlvbi4KKworICAgICAgICBSZXR1cm4gdGhlIHJlc3VsdCBhcyBhIGxpc3Qgb2YgdmFsdWVzLCBvciBkZWZhdWx0IGlmIHRoZSBuYW1lCisgICAgICAgIGlzIHVuc2V0LiIiIgorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zcGxpdChyZWFkX2dpdF9vdXRwdXQoCisgICAgICAgICAgICAgICAgWydjb25maWcnLCAnLS1nZXQtYWxsJywgJy0tbnVsbCcsICclcy4lcycgJSAoc2VsZi5zZWN0aW9uLCBuYW1lKV0sCisgICAgICAgICAgICAgICAgZW52PXNlbGYuZW52LCBrZWVwZW5kcz1UcnVlLAorICAgICAgICAgICAgICAgICkpCisgICAgICAgIGV4Y2VwdCBDb21tYW5kRXJyb3IsIGU6CisgICAgICAgICAgICBpZiBlLnJldGNvZGUgPT0gMToKKyAgICAgICAgICAgICAgICAjICJ0aGUgc2VjdGlvbiBvciBrZXkgaXMgaW52YWxpZCI7IGkuZS4sIHRoZXJlIGlzIG5vCisgICAgICAgICAgICAgICAgIyB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBrZXkuCisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgIGRlZiBnZXRfcmVjaXBpZW50cyhzZWxmLCBuYW1lLCBkZWZhdWx0PU5vbmUpOgorICAgICAgICAiIiJSZWFkIGEgcmVjaXBpZW50cyBsaXN0IGZyb20gdGhlIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgUmV0dXJuIHRoZSByZXN1bHQgYXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbAorICAgICAgICBhZGRyZXNzZXMsIG9yIGRlZmF1bHQgaWYgdGhlIG9wdGlvbiBpcyB1bnNldC4gIElmIHRoZSBzZXR0aW5nCisgICAgICAgIGhhcyBtdWx0aXBsZSB2YWx1ZXMsIGNvbmNhdGVuYXRlIHRoZW0gd2l0aCBjb21tYSBzZXBhcmF0b3JzLiIiIgorCisgICAgICAgIGxpbmVzID0gc2VsZi5nZXRfYWxsKG5hbWUsIGRlZmF1bHQ9Tm9uZSkKKyAgICAgICAgaWYgbGluZXMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBkZWZhdWx0CisgICAgICAgIHJldHVybiAnLCAnLmpvaW4obGluZS5zdHJpcCgpIGZvciBsaW5lIGluIGxpbmVzKQorCisgICAgZGVmIHNldChzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIHJlYWRfZ2l0X291dHB1dCgKKyAgICAgICAgICAgIFsnY29uZmlnJywgJyVzLiVzJyAlIChzZWxmLnNlY3Rpb24sIG5hbWUpLCB2YWx1ZV0sCisgICAgICAgICAgICBlbnY9c2VsZi5lbnYsCisgICAgICAgICAgICApCisKKyAgICBkZWYgYWRkKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgcmVhZF9naXRfb3V0cHV0KAorICAgICAgICAgICAgWydjb25maWcnLCAnLS1hZGQnLCAnJXMuJXMnICUgKHNlbGYuc2VjdGlvbiwgbmFtZSksIHZhbHVlXSwKKyAgICAgICAgICAgIGVudj1zZWxmLmVudiwKKyAgICAgICAgICAgICkKKworICAgIGRlZiBoYXNfa2V5KHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5nZXRfYWxsKG5hbWUsIGRlZmF1bHQ9Tm9uZSkgaXMgbm90IE5vbmUKKworICAgIGRlZiB1bnNldF9hbGwoc2VsZiwgbmFtZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlYWRfZ2l0X291dHB1dCgKKyAgICAgICAgICAgICAgICBbJ2NvbmZpZycsICctLXVuc2V0LWFsbCcsICclcy4lcycgJSAoc2VsZi5zZWN0aW9uLCBuYW1lKV0sCisgICAgICAgICAgICAgICAgZW52PXNlbGYuZW52LAorICAgICAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IENvbW1hbmRFcnJvciwgZToKKyAgICAgICAgICAgIGlmIGUucmV0Y29kZSA9PSA1OgorICAgICAgICAgICAgICAgICMgVGhlIG5hbWUgZG9lc24ndCBleGlzdCwgd2hpY2ggaXMgd2hhdCB3ZSB3YW50ZWQgYW55d2F5Li4uCisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZQorCisgICAgZGVmIHNldF9yZWNpcGllbnRzKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgc2VsZi51bnNldF9hbGwobmFtZSkKKyAgICAgICAgZm9yIHBhaXIgaW4gZ2V0YWRkcmVzc2VzKFt2YWx1ZV0pOgorICAgICAgICAgICAgc2VsZi5hZGQobmFtZSwgZm9ybWF0YWRkcihwYWlyKSkKKworCitkZWYgZ2VuZXJhdGVfc3VtbWFyaWVzKCpsb2dfYXJncyk6CisgICAgIiIiR2VuZXJhdGUgYSBicmllZiBzdW1tYXJ5IGZvciBlYWNoIHJldmlzaW9uIHJlcXVlc3RlZC4KKworICAgIGxvZ19hcmdzIGFyZSBzdHJpbmdzIHRoYXQgd2lsbCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gImdpdCBsb2ciIGFzCisgICAgcmV2aXNpb24gc2VsZWN0b3JzLiAgSXRlcmF0ZSBvdmVyIChzaGExX3Nob3J0LCBzdWJqZWN0KSBmb3IgZWFjaAorICAgIGNvbW1pdCBzcGVjaWZpZWQgYnkgbG9nX2FyZ3MgKHN1YmplY3QgaXMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlCisgICAgY29tbWl0IG1lc3NhZ2UgYXMgYSBzdHJpbmcgd2l0aG91dCBFT0xzKS4iIiIKKworICAgIGNtZCA9IFsKKyAgICAgICAgJ2xvZycsICctLWFiYnJldicsICctLWZvcm1hdD0laCAlcycsCisgICAgICAgIF0gKyBsaXN0KGxvZ19hcmdzKSArIFsnLS0nXQorICAgIGZvciBsaW5lIGluIHJlYWRfZ2l0X2xpbmVzKGNtZCk6CisgICAgICAgIHlpZWxkIHR1cGxlKGxpbmUuc3BsaXQoJyAnLCAxKSkKKworCitkZWYgbGltaXRfbGluZXMobGluZXMsIG1heF9saW5lcyk6CisgICAgZm9yIChpbmRleCwgbGluZSkgaW4gZW51bWVyYXRlKGxpbmVzKToKKyAgICAgICAgaWYgaW5kZXggPCBtYXhfbGluZXM6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBpZiBpbmRleCA+PSBtYXhfbGluZXM6CisgICAgICAgIHlpZWxkICcuLi4gJWQgbGluZXMgc3VwcHJlc3NlZCAuLi5cbicgJSAoaW5kZXggKyAxIC0gbWF4X2xpbmVzLCkKKworCitkZWYgbGltaXRfbGluZWxlbmd0aChsaW5lcywgbWF4X2xpbmVsZW5ndGgpOgorICAgIGZvciBsaW5lIGluIGxpbmVzOgorICAgICAgICAjIERvbid0IGZvcmdldCB0aGF0IGxpbmVzIGFsd2F5cyBpbmNsdWRlIGEgdHJhaWxpbmcgbmV3bGluZS4KKyAgICAgICAgaWYgbGVuKGxpbmUpID4gbWF4X2xpbmVsZW5ndGggKyAxOgorICAgICAgICAgICAgbGluZSA9IGxpbmVbOm1heF9saW5lbGVuZ3RoIC0gN10gKyAnIFsuLi5dXG4nCisgICAgICAgIHlpZWxkIGxpbmUKKworCitjbGFzcyBDb21taXRTZXQob2JqZWN0KToKKyAgICAiIiJBIChjb25zdGFudCkgc2V0IG9mIG9iamVjdCBuYW1lcy4KKworICAgIFRoZSBzZXQgc2hvdWxkIGJlIGluaXRpYWxpemVkIHdpdGggZnVsbCBTSEExIG9iamVjdCBuYW1lcy4gIFRoZQorICAgIF9fY29udGFpbnNfXygpIG1ldGhvZCByZXR1cm5zIFRydWUgaWZmIGl0cyBhcmd1bWVudCBpcyBhbgorICAgIGFiYnJldmlhdGlvbiBvZiBhbnkgdGhlIG5hbWVzIGluIHRoZSBzZXQuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZXMpOgorICAgICAgICBzZWxmLl9uYW1lcyA9IHNvcnRlZChuYW1lcykKKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gbGVuKHNlbGYuX25hbWVzKQorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBzaGExX2FiYnJldik6CisgICAgICAgICIiIlJldHVybiBUcnVlIGlmZiB0aGlzIHNldCBjb250YWlucyBzaGExX2FiYnJldiAod2hpY2ggbWlnaHQgYmUgYWJicmV2aWF0ZWQpLiIiIgorCisgICAgICAgIGkgPSBiaXNlY3QuYmlzZWN0X2xlZnQoc2VsZi5fbmFtZXMsIHNoYTFfYWJicmV2KQorICAgICAgICByZXR1cm4gaSA8IGxlbihzZWxmKSBhbmQgc2VsZi5fbmFtZXNbaV0uc3RhcnRzd2l0aChzaGExX2FiYnJldikKKworCitjbGFzcyBHaXRPYmplY3Qob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2hhMSwgdHlwZT1Ob25lKToKKyAgICAgICAgaWYgc2hhMSA9PSBaRVJPUzoKKyAgICAgICAgICAgIHNlbGYuc2hhMSA9IHNlbGYudHlwZSA9IHNlbGYuY29tbWl0X3NoYTEgPSBOb25lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnNoYTEgPSBzaGExCisgICAgICAgICAgICBzZWxmLnR5cGUgPSB0eXBlIG9yIHJlYWRfZ2l0X291dHB1dChbJ2NhdC1maWxlJywgJy10Jywgc2VsZi5zaGExXSkKKworICAgICAgICAgICAgaWYgc2VsZi50eXBlID09ICdjb21taXQnOgorICAgICAgICAgICAgICAgIHNlbGYuY29tbWl0X3NoYTEgPSBzZWxmLnNoYTEKKyAgICAgICAgICAgIGVsaWYgc2VsZi50eXBlID09ICd0YWcnOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21taXRfc2hhMSA9IHJlYWRfZ2l0X291dHB1dCgKKyAgICAgICAgICAgICAgICAgICAgICAgIFsncmV2LXBhcnNlJywgJy0tdmVyaWZ5JywgJyVzXjAnICUgKHNlbGYuc2hhMSwpXQorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBDb21tYW5kRXJyb3I6CisgICAgICAgICAgICAgICAgICAgICMgQ2Fubm90IGRlcmVmIHRhZyB0byBkZXRlcm1pbmUgY29tbWl0X3NoYTEKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21taXRfc2hhMSA9IE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5jb21taXRfc2hhMSA9IE5vbmUKKworICAgICAgICBzZWxmLnNob3J0ID0gcmVhZF9naXRfb3V0cHV0KFsncmV2LXBhcnNlJywgJy0tc2hvcnQnLCBzaGExXSkKKworICAgIGRlZiBnZXRfc3VtbWFyeShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIChzaGExX3Nob3J0LCBzdWJqZWN0KSBmb3IgdGhpcyBjb21taXQuIiIiCisKKyAgICAgICAgaWYgbm90IHNlbGYuc2hhMToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0VtcHR5IGNvbW1pdCBoYXMgbm8gc3VtbWFyeScpCisKKyAgICAgICAgcmV0dXJuIGl0ZXIoZ2VuZXJhdGVfc3VtbWFyaWVzKCctLW5vLXdhbGsnLCBzZWxmLnNoYTEpKS5uZXh0KCkKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gaXNpbnN0YW5jZShvdGhlciwgR2l0T2JqZWN0KSBhbmQgc2VsZi5zaGExID09IG90aGVyLnNoYTEKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5zaGExKQorCisgICAgZGVmIF9fbm9uemVyb19fKHNlbGYpOgorICAgICAgICByZXR1cm4gYm9vbChzZWxmLnNoYTEpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2hhMSBvciBaRVJPUworCisKK2NsYXNzIENoYW5nZShvYmplY3QpOgorICAgICIiIkEgQ2hhbmdlIHRoYXQgaGFzIGJlZW4gbWFkZSB0byB0aGUgR2l0IHJlcG9zaXRvcnkuCisKKyAgICBBYnN0cmFjdCBjbGFzcyBmcm9tIHdoaWNoIGJvdGggUmV2aXNpb25zIGFuZCBSZWZlcmVuY2VDaGFuZ2VzIGFyZQorICAgIGRlcml2ZWQuICBBIENoYW5nZSBrbm93cyBob3cgdG8gZ2VuZXJhdGUgYSBub3RpZmljYXRpb24gZW1haWwKKyAgICBkZXNjcmliaW5nIGl0c2VsZi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbnZpcm9ubWVudCk6CisgICAgICAgIHNlbGYuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudAorICAgICAgICBzZWxmLl92YWx1ZXMgPSBOb25lCisKKyAgICBkZWYgX2NvbXB1dGVfdmFsdWVzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gYSBkaWN0aW9uYXJ5IHtrZXl3b3JkIDogZXhwYW5zaW9ufSBmb3IgdGhpcyBDaGFuZ2UuCisKKyAgICAgICAgRGVyaXZlZCBjbGFzc2VzIG92ZXJsb2FkIHRoaXMgbWV0aG9kIHRvIGFkZCBtb3JlIGVudHJpZXMgdG8KKyAgICAgICAgdGhlIHJldHVybiB2YWx1ZS4gIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW50ZXJuYWxseSBieQorICAgICAgICBnZXRfdmFsdWVzKCkuICBUaGUgcmV0dXJuIHZhbHVlIHNob3VsZCBhbHdheXMgYmUgYSBuZXcKKyAgICAgICAgZGljdGlvbmFyeS4iIiIKKworICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9ubWVudC5nZXRfdmFsdWVzKCkKKworICAgIGRlZiBnZXRfdmFsdWVzKHNlbGYsICoqZXh0cmFfdmFsdWVzKToKKyAgICAgICAgIiIiUmV0dXJuIGEgZGljdGlvbmFyeSB7a2V5d29yZCA6IGV4cGFuc2lvbn0gZm9yIHRoaXMgQ2hhbmdlLgorCisgICAgICAgIFJldHVybiBhIGRpY3Rpb25hcnkgbWFwcGluZyBrZXl3b3JkcyB0byB0aGUgdmFsdWVzIHRoYXQgdGhleQorICAgICAgICBzaG91bGQgYmUgZXhwYW5kZWQgdG8gZm9yIHRoaXMgQ2hhbmdlICh1c2VkIHdoZW4gaW50ZXJwb2xhdGluZworICAgICAgICB0ZW1wbGF0ZSBzdHJpbmdzKS4gIElmIGFueSBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgc3VwcGxpZWQsIGFkZAorICAgICAgICB0aG9zZSB0byB0aGUgcmV0dXJuIHZhbHVlIGFzIHdlbGwuICBUaGUgcmV0dXJuIHZhbHVlIGlzIGFsd2F5cworICAgICAgICBhIG5ldyBkaWN0aW9uYXJ5LiIiIgorCisgICAgICAgIGlmIHNlbGYuX3ZhbHVlcyBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fdmFsdWVzID0gc2VsZi5fY29tcHV0ZV92YWx1ZXMoKQorCisgICAgICAgIHZhbHVlcyA9IHNlbGYuX3ZhbHVlcy5jb3B5KCkKKyAgICAgICAgaWYgZXh0cmFfdmFsdWVzOgorICAgICAgICAgICAgdmFsdWVzLnVwZGF0ZShleHRyYV92YWx1ZXMpCisgICAgICAgIHJldHVybiB2YWx1ZXMKKworICAgIGRlZiBleHBhbmQoc2VsZiwgdGVtcGxhdGUsICoqZXh0cmFfdmFsdWVzKToKKyAgICAgICAgIiIiRXhwYW5kIHRlbXBsYXRlLgorCisgICAgICAgIEV4cGFuZCB0aGUgdGVtcGxhdGUgKHdoaWNoIHNob3VsZCBiZSBhIHN0cmluZykgdXNpbmcgc3RyaW5nCisgICAgICAgIGludGVycG9sYXRpb24gb2YgdGhlIHZhbHVlcyBmb3IgdGhpcyBDaGFuZ2UuICBJZiBhbnkga2V5d29yZAorICAgICAgICBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLCBhbHNvIGluY2x1ZGUgdGhvc2UgaW4gdGhlIGtleXdvcmRzCisgICAgICAgIGF2YWlsYWJsZSBmb3IgaW50ZXJwb2xhdGlvbi4iIiIKKworICAgICAgICByZXR1cm4gdGVtcGxhdGUgJSBzZWxmLmdldF92YWx1ZXMoKipleHRyYV92YWx1ZXMpCisKKyAgICBkZWYgZXhwYW5kX2xpbmVzKHNlbGYsIHRlbXBsYXRlLCAqKmV4dHJhX3ZhbHVlcyk6CisgICAgICAgICIiIkJyZWFrIHRlbXBsYXRlIGludG8gbGluZXMgYW5kIGV4cGFuZCBlYWNoIGxpbmUuIiIiCisKKyAgICAgICAgdmFsdWVzID0gc2VsZi5nZXRfdmFsdWVzKCoqZXh0cmFfdmFsdWVzKQorICAgICAgICBmb3IgbGluZSBpbiB0ZW1wbGF0ZS5zcGxpdGxpbmVzKFRydWUpOgorICAgICAgICAgICAgeWllbGQgbGluZSAlIHZhbHVlcworCisgICAgZGVmIGV4cGFuZF9oZWFkZXJfbGluZXMoc2VsZiwgdGVtcGxhdGUsICoqZXh0cmFfdmFsdWVzKToKKyAgICAgICAgIiIiQnJlYWsgdGVtcGxhdGUgaW50byBsaW5lcyBhbmQgZXhwYW5kIGVhY2ggbGluZSBhcyBhbiBSRkMgMjgyMiBoZWFkZXIuCisKKyAgICAgICAgRW5jb2RlIHZhbHVlcyBhbmQgc3BsaXQgdXAgbGluZXMgdGhhdCBhcmUgdG9vIGxvbmcuICBTaWxlbnRseQorICAgICAgICBza2lwIGxpbmVzIHRoYXQgY29udGFpbiByZWZlcmVuY2VzIHRvIHVua25vd24gdmFyaWFibGVzLiIiIgorCisgICAgICAgIHZhbHVlcyA9IHNlbGYuZ2V0X3ZhbHVlcygqKmV4dHJhX3ZhbHVlcykKKyAgICAgICAgZm9yIGxpbmUgaW4gdGVtcGxhdGUuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgKG5hbWUsIHZhbHVlKSA9IGxpbmUuc3BsaXQoJzonLCAxKQorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSAlIHZhbHVlcworICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yLCBlOgorICAgICAgICAgICAgICAgIGlmIERFQlVHOgorICAgICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgJ1dhcm5pbmc6IHVua25vd24gdmFyaWFibGUgJXIgaW4gdGhlIGZvbGxvd2luZyBsaW5lOyBsaW5lIHNraXBwZWQ6XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAnICAgICVzXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAlIChlLmFyZ3NbMF0sIGxpbmUsKQorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGggPSBIZWFkZXIodmFsdWUsIGhlYWRlcl9uYW1lPW5hbWUpCisgICAgICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgaCA9IEhlYWRlcih2YWx1ZSwgaGVhZGVyX25hbWU9bmFtZSwgY2hhcnNldD1DSEFSU0VULCBlcnJvcnM9J3JlcGxhY2UnKQorICAgICAgICAgICAgICAgIGZvciBzcGxpdGxpbmUgaW4gKCclczogJXNcbicgJSAobmFtZSwgaC5lbmNvZGUoKSwpKS5zcGxpdGxpbmVzKFRydWUpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBzcGxpdGxpbmUKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9oZWFkZXIoc2VsZik6CisgICAgICAgICIiIkdlbmVyYXRlIHRoZSBSRkMgMjgyMiBlbWFpbCBoZWFkZXJzIGZvciB0aGlzIENoYW5nZSwgYSBsaW5lIGF0IGEgdGltZS4KKworICAgICAgICBUaGUgb3V0cHV0IHNob3VsZCBub3QgaW5jbHVkZSB0aGUgdHJhaWxpbmcgYmxhbmsgbGluZS4iIiIKKworICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9pbnRybyhzZWxmKToKKyAgICAgICAgIiIiR2VuZXJhdGUgdGhlIGVtYWlsIGludHJvIGZvciB0aGlzIENoYW5nZSwgYSBsaW5lIGF0IGEgdGltZS4KKworICAgICAgICBUaGUgb3V0cHV0IHdpbGwgYmUgdXNlZCBhcyB0aGUgc3RhbmRhcmQgYm9pbGVycGxhdGUgYXQgdGhlIHRvcAorICAgICAgICBvZiB0aGUgZW1haWwgYm9keS4iIiIKKworICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9ib2R5KHNlbGYpOgorICAgICAgICAiIiJHZW5lcmF0ZSB0aGUgbWFpbiBwYXJ0IG9mIHRoZSBlbWFpbCBib2R5LCBhIGxpbmUgYXQgYSB0aW1lLgorCisgICAgICAgIFRoZSB0ZXh0IGluIHRoZSBib2R5IG1pZ2h0IGJlIHRydW5jYXRlZCBhZnRlciBhIHNwZWNpZmllZAorICAgICAgICBudW1iZXIgb2YgbGluZXMgKHNlZSBtdWx0aW1haWxob29rLmVtYWlsbWF4bGluZXMpLiIiIgorCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisgICAgZGVmIGdlbmVyYXRlX2VtYWlsX2Zvb3RlcihzZWxmKToKKyAgICAgICAgIiIiR2VuZXJhdGUgdGhlIGZvb3RlciBvZiB0aGUgZW1haWwsIGEgbGluZSBhdCBhIHRpbWUuCisKKyAgICAgICAgVGhlIGZvb3RlciBpcyBhbHdheXMgaW5jbHVkZWQsIGlycmVzcGVjdGl2ZSBvZgorICAgICAgICBtdWx0aW1haWxob29rLmVtYWlsbWF4bGluZXMuIiIiCisKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgZ2VuZXJhdGVfZW1haWwoc2VsZiwgcHVzaCwgYm9keV9maWx0ZXI9Tm9uZSk6CisgICAgICAgICIiIkdlbmVyYXRlIGFuIGVtYWlsIGRlc2NyaWJpbmcgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgSXRlcmF0ZSBvdmVyIHRoZSBsaW5lcyAoaW5jbHVkaW5nIHRoZSBoZWFkZXIgbGluZXMpIG9mIGFuCisgICAgICAgIGVtYWlsIGRlc2NyaWJpbmcgdGhpcyBjaGFuZ2UuICBJZiBib2R5X2ZpbHRlciBpcyBub3QgTm9uZSwKKyAgICAgICAgdGhlbiB1c2UgaXQgdG8gZmlsdGVyIHRoZSBsaW5lcyB0aGF0IGFyZSBpbnRlbmRlZCBmb3IgdGhlCisgICAgICAgIGVtYWlsIGJvZHkuIiIiCisKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5nZW5lcmF0ZV9lbWFpbF9oZWFkZXIoKToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKyAgICAgICAgeWllbGQgJ1xuJworICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmdlbmVyYXRlX2VtYWlsX2ludHJvKCk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgYm9keSA9IHNlbGYuZ2VuZXJhdGVfZW1haWxfYm9keShwdXNoKQorICAgICAgICBpZiBib2R5X2ZpbHRlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJvZHkgPSBib2R5X2ZpbHRlcihib2R5KQorICAgICAgICBmb3IgbGluZSBpbiBib2R5OgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZ2VuZXJhdGVfZW1haWxfZm9vdGVyKCk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKworY2xhc3MgUmV2aXNpb24oQ2hhbmdlKToKKyAgICAiIiJBIENoYW5nZSBjb25zaXN0aW5nIG9mIGEgc2luZ2xlIGdpdCBjb21taXQuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVmZXJlbmNlX2NoYW5nZSwgcmV2LCBudW0sIHRvdCk6CisgICAgICAgIENoYW5nZS5fX2luaXRfXyhzZWxmLCByZWZlcmVuY2VfY2hhbmdlLmVudmlyb25tZW50KQorICAgICAgICBzZWxmLnJlZmVyZW5jZV9jaGFuZ2UgPSByZWZlcmVuY2VfY2hhbmdlCisgICAgICAgIHNlbGYucmV2ID0gcmV2CisgICAgICAgIHNlbGYuY2hhbmdlX3R5cGUgPSBzZWxmLnJlZmVyZW5jZV9jaGFuZ2UuY2hhbmdlX3R5cGUKKyAgICAgICAgc2VsZi5yZWZuYW1lID0gc2VsZi5yZWZlcmVuY2VfY2hhbmdlLnJlZm5hbWUKKyAgICAgICAgc2VsZi5udW0gPSBudW0KKyAgICAgICAgc2VsZi50b3QgPSB0b3QKKyAgICAgICAgc2VsZi5hdXRob3IgPSByZWFkX2dpdF9vdXRwdXQoWydsb2cnLCAnLS1uby13YWxrJywgJy0tZm9ybWF0PSVhTiA8JWFFPicsIHNlbGYucmV2LnNoYTFdKQorICAgICAgICBzZWxmLnJlY2lwaWVudHMgPSBzZWxmLmVudmlyb25tZW50LmdldF9yZXZpc2lvbl9yZWNpcGllbnRzKHNlbGYpCisKKyAgICBkZWYgX2NvbXB1dGVfdmFsdWVzKHNlbGYpOgorICAgICAgICB2YWx1ZXMgPSBDaGFuZ2UuX2NvbXB1dGVfdmFsdWVzKHNlbGYpCisKKyAgICAgICAgb25lbGluZSA9IHJlYWRfZ2l0X291dHB1dCgKKyAgICAgICAgICAgIFsnbG9nJywgJy0tZm9ybWF0PSVzJywgJy0tbm8td2FsaycsIHNlbGYucmV2LnNoYTFdCisgICAgICAgICAgICApCisKKyAgICAgICAgdmFsdWVzWydyZXYnXSA9IHNlbGYucmV2LnNoYTEKKyAgICAgICAgdmFsdWVzWydyZXZfc2hvcnQnXSA9IHNlbGYucmV2LnNob3J0CisgICAgICAgIHZhbHVlc1snY2hhbmdlX3R5cGUnXSA9IHNlbGYuY2hhbmdlX3R5cGUKKyAgICAgICAgdmFsdWVzWydyZWZuYW1lJ10gPSBzZWxmLnJlZm5hbWUKKyAgICAgICAgdmFsdWVzWydzaG9ydF9yZWZuYW1lJ10gPSBzZWxmLnJlZmVyZW5jZV9jaGFuZ2Uuc2hvcnRfcmVmbmFtZQorICAgICAgICB2YWx1ZXNbJ3JlZm5hbWVfdHlwZSddID0gc2VsZi5yZWZlcmVuY2VfY2hhbmdlLnJlZm5hbWVfdHlwZQorICAgICAgICB2YWx1ZXNbJ3JlcGx5X3RvX21zZ2lkJ10gPSBzZWxmLnJlZmVyZW5jZV9jaGFuZ2UubXNnaWQKKyAgICAgICAgdmFsdWVzWydudW0nXSA9IHNlbGYubnVtCisgICAgICAgIHZhbHVlc1sndG90J10gPSBzZWxmLnRvdAorICAgICAgICB2YWx1ZXNbJ3JlY2lwaWVudHMnXSA9IHNlbGYucmVjaXBpZW50cworICAgICAgICB2YWx1ZXNbJ29uZWxpbmUnXSA9IG9uZWxpbmUKKyAgICAgICAgdmFsdWVzWydhdXRob3InXSA9IHNlbGYuYXV0aG9yCisKKyAgICAgICAgcmVwbHlfdG8gPSBzZWxmLmVudmlyb25tZW50LmdldF9yZXBseV90b19jb21taXQoc2VsZikKKyAgICAgICAgaWYgcmVwbHlfdG86CisgICAgICAgICAgICB2YWx1ZXNbJ3JlcGx5X3RvJ10gPSByZXBseV90bworCisgICAgICAgIHJldHVybiB2YWx1ZXMKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9oZWFkZXIoc2VsZik6CisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2hlYWRlcl9saW5lcyhSRVZJU0lPTl9IRUFERVJfVEVNUExBVEUpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgZGVmIGdlbmVyYXRlX2VtYWlsX2ludHJvKHNlbGYpOgorICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhSRVZJU0lPTl9JTlRST19URU1QTEFURSk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBkZWYgZ2VuZXJhdGVfZW1haWxfYm9keShzZWxmLCBwdXNoKToKKyAgICAgICAgIiIiU2hvdyB0aGlzIHJldmlzaW9uLiIiIgorCisgICAgICAgIHJldHVybiByZWFkX2dpdF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAnbG9nJywgJy1DJywKKyAgICAgICAgICAgICAgICAgJy0tc3RhdCcsICctcCcsICctLWNjJywKKyAgICAgICAgICAgICAgICAnLTEnLCBzZWxmLnJldi5zaGExLAorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICBrZWVwZW5kcz1UcnVlLAorICAgICAgICAgICAgKQorCisgICAgZGVmIGdlbmVyYXRlX2VtYWlsX2Zvb3RlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZXhwYW5kX2xpbmVzKFJFVklTSU9OX0ZPT1RFUl9URU1QTEFURSkKKworCitjbGFzcyBSZWZlcmVuY2VDaGFuZ2UoQ2hhbmdlKToKKyAgICAiIiJBIENoYW5nZSB0byBhIEdpdCByZWZlcmVuY2UuCisKKyAgICBBbiBhYnN0cmFjdCBjbGFzcyByZXByZXNlbnRpbmcgYSBjcmVhdGUsIHVwZGF0ZSwgb3IgZGVsZXRlIG9mIGEKKyAgICBHaXQgcmVmZXJlbmNlLiAgRGVyaXZlZCBjbGFzc2VzIGhhbmRsZSBzcGVjaWZpYyB0eXBlcyBvZiByZWZlcmVuY2UKKyAgICAoZS5nLiwgdGFncyB2cy4gYnJhbmNoZXMpLiAgVGhlc2UgY2xhc3NlcyBnZW5lcmF0ZSB0aGUgbWFpbgorICAgIHJlZmVyZW5jZSBjaGFuZ2UgZW1haWwgc3VtbWFyaXppbmcgdGhlIHJlZmVyZW5jZSBjaGFuZ2UgYW5kCisgICAgd2hldGhlciBpdCBjYXVzZWQgYW55IGFueSBjb21taXRzIHRvIGJlIGFkZGVkIG9yIHJlbW92ZWQuCisKKyAgICBSZWZlcmVuY2VDaGFuZ2Ugb2JqZWN0cyBhcmUgdXN1YWxseSBjcmVhdGVkIHVzaW5nIHRoZSBzdGF0aWMKKyAgICBjcmVhdGUoKSBtZXRob2QsIHdoaWNoIGhhcyB0aGUgbG9naWMgdG8gZGVjaWRlIHdoaWNoIGRlcml2ZWQgY2xhc3MKKyAgICB0byBpbnN0YW50aWF0ZS4iIiIKKworICAgIFJFRl9SRSA9IHJlLmNvbXBpbGUocidecmVmc1wvKD9QPGFyZWE+W15cL10rKVwvKD9QPHNob3J0bmFtZT4uKikkJykKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgY3JlYXRlKGVudmlyb25tZW50LCBvbGRyZXYsIG5ld3JldiwgcmVmbmFtZSk6CisgICAgICAgICIiIlJldHVybiBhIFJlZmVyZW5jZUNoYW5nZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBjaGFuZ2UuCisKKyAgICAgICAgUmV0dXJuIGFuIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgY2hhbmdlIHRoYXQgaXMgYmVpbmcKKyAgICAgICAgbWFkZS4gb2xkcmV2IGFuZCBuZXdyZXYgc2hvdWxkIGJlIFNIQTFzIG9yIFpFUk9TLiIiIgorCisgICAgICAgIG9sZCA9IEdpdE9iamVjdChvbGRyZXYpCisgICAgICAgIG5ldyA9IEdpdE9iamVjdChuZXdyZXYpCisgICAgICAgIHJldiA9IG5ldyBvciBvbGQKKworICAgICAgICAjIFRoZSByZXZpc2lvbiB0eXBlIHRlbGxzIHVzIHdoYXQgdHlwZSB0aGUgY29tbWl0IGlzLCBjb21iaW5lZCB3aXRoCisgICAgICAgICMgdGhlIGxvY2F0aW9uIG9mIHRoZSByZWYgd2UgY2FuIGRlY2lkZSBiZXR3ZWVuCisgICAgICAgICMgIC0gd29ya2luZyBicmFuY2gKKyAgICAgICAgIyAgLSB0cmFja2luZyBicmFuY2gKKyAgICAgICAgIyAgLSB1bmFubm90YXRlZCB0YWcKKyAgICAgICAgIyAgLSBhbm5vdGF0ZWQgdGFnCisgICAgICAgIG0gPSBSZWZlcmVuY2VDaGFuZ2UuUkVGX1JFLm1hdGNoKHJlZm5hbWUpCisgICAgICAgIGlmIG06CisgICAgICAgICAgICBhcmVhID0gbS5ncm91cCgnYXJlYScpCisgICAgICAgICAgICBzaG9ydF9yZWZuYW1lID0gbS5ncm91cCgnc2hvcnRuYW1lJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFyZWEgPSAnJworICAgICAgICAgICAgc2hvcnRfcmVmbmFtZSA9IHJlZm5hbWUKKworICAgICAgICBpZiByZXYudHlwZSA9PSAndGFnJzoKKyAgICAgICAgICAgICMgQW5ub3RhdGVkIHRhZzoKKyAgICAgICAgICAgIGtsYXNzID0gQW5ub3RhdGVkVGFnQ2hhbmdlCisgICAgICAgIGVsaWYgcmV2LnR5cGUgPT0gJ2NvbW1pdCc6CisgICAgICAgICAgICBpZiBhcmVhID09ICd0YWdzJzoKKyAgICAgICAgICAgICAgICAjIE5vbi1hbm5vdGF0ZWQgdGFnOgorICAgICAgICAgICAgICAgIGtsYXNzID0gTm9uQW5ub3RhdGVkVGFnQ2hhbmdlCisgICAgICAgICAgICBlbGlmIGFyZWEgPT0gJ2hlYWRzJzoKKyAgICAgICAgICAgICAgICAjIEJyYW5jaDoKKyAgICAgICAgICAgICAgICBrbGFzcyA9IEJyYW5jaENoYW5nZQorICAgICAgICAgICAgZWxpZiBhcmVhID09ICdyZW1vdGVzJzoKKyAgICAgICAgICAgICAgICAjIFRyYWNraW5nIGJyYW5jaDoKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAnKioqIFB1c2gtdXBkYXRlIG9mIHRyYWNraW5nIGJyYW5jaCAlclxuJworICAgICAgICAgICAgICAgICAgICAnKioqICAtIGluY29tcGxldGUgZW1haWwgZ2VuZXJhdGVkLlxuJworICAgICAgICAgICAgICAgICAgICAgJSAocmVmbmFtZSwpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBrbGFzcyA9IE90aGVyUmVmZXJlbmNlQ2hhbmdlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgU29tZSBvdGhlciByZWZlcmVuY2UgbmFtZXNwYWNlOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICcqKiogUHVzaC11cGRhdGUgb2Ygc3RyYW5nZSByZWZlcmVuY2UgJXJcbicKKyAgICAgICAgICAgICAgICAgICAgJyoqKiAgLSBpbmNvbXBsZXRlIGVtYWlsIGdlbmVyYXRlZC5cbicKKyAgICAgICAgICAgICAgICAgICAgICUgKHJlZm5hbWUsKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAga2xhc3MgPSBPdGhlclJlZmVyZW5jZUNoYW5nZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBBbnl0aGluZyBlbHNlIChpcyB0aGVyZSBhbnl0aGluZyBlbHNlPykKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgJyoqKiBVbmtub3duIHR5cGUgb2YgdXBkYXRlIHRvICVyICglcylcbicKKyAgICAgICAgICAgICAgICAnKioqICAtIGluY29tcGxldGUgZW1haWwgZ2VuZXJhdGVkLlxuJworICAgICAgICAgICAgICAgICAlIChyZWZuYW1lLCByZXYudHlwZSwpCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAga2xhc3MgPSBPdGhlclJlZmVyZW5jZUNoYW5nZQorCisgICAgICAgIHJldHVybiBrbGFzcygKKyAgICAgICAgICAgIGVudmlyb25tZW50LAorICAgICAgICAgICAgcmVmbmFtZT1yZWZuYW1lLCBzaG9ydF9yZWZuYW1lPXNob3J0X3JlZm5hbWUsCisgICAgICAgICAgICBvbGQ9b2xkLCBuZXc9bmV3LCByZXY9cmV2LAorICAgICAgICAgICAgKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb25tZW50LCByZWZuYW1lLCBzaG9ydF9yZWZuYW1lLCBvbGQsIG5ldywgcmV2KToKKyAgICAgICAgQ2hhbmdlLl9faW5pdF9fKHNlbGYsIGVudmlyb25tZW50KQorICAgICAgICBzZWxmLmNoYW5nZV90eXBlID0geworICAgICAgICAgICAgKEZhbHNlLCBUcnVlKSA6ICdjcmVhdGUnLAorICAgICAgICAgICAgKFRydWUsIFRydWUpIDogJ3VwZGF0ZScsCisgICAgICAgICAgICAoVHJ1ZSwgRmFsc2UpIDogJ2RlbGV0ZScsCisgICAgICAgICAgICB9W2Jvb2wob2xkKSwgYm9vbChuZXcpXQorICAgICAgICBzZWxmLnJlZm5hbWUgPSByZWZuYW1lCisgICAgICAgIHNlbGYuc2hvcnRfcmVmbmFtZSA9IHNob3J0X3JlZm5hbWUKKyAgICAgICAgc2VsZi5vbGQgPSBvbGQKKyAgICAgICAgc2VsZi5uZXcgPSBuZXcKKyAgICAgICAgc2VsZi5yZXYgPSByZXYKKyAgICAgICAgc2VsZi5tc2dpZCA9IG1ha2VfbXNnaWQoKQorICAgICAgICBzZWxmLmRpZmZvcHRzID0gZW52aXJvbm1lbnQuZGlmZm9wdHMKKyAgICAgICAgc2VsZi5sb2dvcHRzID0gZW52aXJvbm1lbnQubG9nb3B0cworICAgICAgICBzZWxmLnNob3dsb2cgPSBlbnZpcm9ubWVudC5yZWZjaGFuZ2Vfc2hvd2xvZworCisgICAgZGVmIF9jb21wdXRlX3ZhbHVlcyhzZWxmKToKKyAgICAgICAgdmFsdWVzID0gQ2hhbmdlLl9jb21wdXRlX3ZhbHVlcyhzZWxmKQorCisgICAgICAgIHZhbHVlc1snY2hhbmdlX3R5cGUnXSA9IHNlbGYuY2hhbmdlX3R5cGUKKyAgICAgICAgdmFsdWVzWydyZWZuYW1lX3R5cGUnXSA9IHNlbGYucmVmbmFtZV90eXBlCisgICAgICAgIHZhbHVlc1sncmVmbmFtZSddID0gc2VsZi5yZWZuYW1lCisgICAgICAgIHZhbHVlc1snc2hvcnRfcmVmbmFtZSddID0gc2VsZi5zaG9ydF9yZWZuYW1lCisgICAgICAgIHZhbHVlc1snbXNnaWQnXSA9IHNlbGYubXNnaWQKKyAgICAgICAgdmFsdWVzWydyZWNpcGllbnRzJ10gPSBzZWxmLnJlY2lwaWVudHMKKyAgICAgICAgdmFsdWVzWydvbGRyZXYnXSA9IHN0cihzZWxmLm9sZCkKKyAgICAgICAgdmFsdWVzWydvbGRyZXZfc2hvcnQnXSA9IHNlbGYub2xkLnNob3J0CisgICAgICAgIHZhbHVlc1snbmV3cmV2J10gPSBzdHIoc2VsZi5uZXcpCisgICAgICAgIHZhbHVlc1snbmV3cmV2X3Nob3J0J10gPSBzZWxmLm5ldy5zaG9ydAorCisgICAgICAgIGlmIHNlbGYub2xkOgorICAgICAgICAgICAgdmFsdWVzWydvbGRyZXZfdHlwZSddID0gc2VsZi5vbGQudHlwZQorICAgICAgICBpZiBzZWxmLm5ldzoKKyAgICAgICAgICAgIHZhbHVlc1snbmV3cmV2X3R5cGUnXSA9IHNlbGYubmV3LnR5cGUKKworICAgICAgICByZXBseV90byA9IHNlbGYuZW52aXJvbm1lbnQuZ2V0X3JlcGx5X3RvX3JlZmNoYW5nZShzZWxmKQorICAgICAgICBpZiByZXBseV90bzoKKyAgICAgICAgICAgIHZhbHVlc1sncmVwbHlfdG8nXSA9IHJlcGx5X3RvCisKKyAgICAgICAgcmV0dXJuIHZhbHVlcworCisgICAgZGVmIGdldF9zdWJqZWN0KHNlbGYpOgorICAgICAgICB0ZW1wbGF0ZSA9IHsKKyAgICAgICAgICAgICdjcmVhdGUnIDogUkVGX0NSRUFURURfU1VCSkVDVF9URU1QTEFURSwKKyAgICAgICAgICAgICd1cGRhdGUnIDogUkVGX1VQREFURURfU1VCSkVDVF9URU1QTEFURSwKKyAgICAgICAgICAgICdkZWxldGUnIDogUkVGX0RFTEVURURfU1VCSkVDVF9URU1QTEFURSwKKyAgICAgICAgICAgIH1bc2VsZi5jaGFuZ2VfdHlwZV0KKyAgICAgICAgcmV0dXJuIHNlbGYuZXhwYW5kKHRlbXBsYXRlKQorCisgICAgZGVmIGdlbmVyYXRlX2VtYWlsX2hlYWRlcihzZWxmKToKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfaGVhZGVyX2xpbmVzKAorICAgICAgICAgICAgUkVGQ0hBTkdFX0hFQURFUl9URU1QTEFURSwgc3ViamVjdD1zZWxmLmdldF9zdWJqZWN0KCksCisgICAgICAgICAgICApOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgZGVmIGdlbmVyYXRlX2VtYWlsX2ludHJvKHNlbGYpOgorICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhSRUZDSEFOR0VfSU5UUk9fVEVNUExBVEUpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgZGVmIGdlbmVyYXRlX2VtYWlsX2JvZHkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkNhbGwgdGhlIGFwcHJvcHJpYXRlIGJvZHktZ2VuZXJhdGlvbiByb3V0aW5lLgorCisgICAgICAgIENhbGwgb25lIG9mIGdlbmVyYXRlX2NyZWF0ZV9zdW1tYXJ5KCkgLworICAgICAgICBnZW5lcmF0ZV91cGRhdGVfc3VtbWFyeSgpIC8gZ2VuZXJhdGVfZGVsZXRlX3N1bW1hcnkoKS4iIiIKKworICAgICAgICBjaGFuZ2Vfc3VtbWFyeSA9IHsKKyAgICAgICAgICAgICdjcmVhdGUnIDogc2VsZi5nZW5lcmF0ZV9jcmVhdGVfc3VtbWFyeSwKKyAgICAgICAgICAgICdkZWxldGUnIDogc2VsZi5nZW5lcmF0ZV9kZWxldGVfc3VtbWFyeSwKKyAgICAgICAgICAgICd1cGRhdGUnIDogc2VsZi5nZW5lcmF0ZV91cGRhdGVfc3VtbWFyeSwKKyAgICAgICAgICAgIH1bc2VsZi5jaGFuZ2VfdHlwZV0ocHVzaCkKKyAgICAgICAgZm9yIGxpbmUgaW4gY2hhbmdlX3N1bW1hcnk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5nZW5lcmF0ZV9yZXZpc2lvbl9jaGFuZ2Vfc3VtbWFyeShwdXNoKToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9mb290ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmV4cGFuZF9saW5lcyhGT09URVJfVEVNUExBVEUpCisKKyAgICBkZWYgZ2VuZXJhdGVfcmV2aXNpb25fY2hhbmdlX2xvZyhzZWxmLCBuZXdfY29tbWl0c19saXN0KToKKyAgICAgICAgaWYgc2VsZi5zaG93bG9nOgorICAgICAgICAgICAgeWllbGQgJ1xuJworICAgICAgICAgICAgeWllbGQgJ0RldGFpbGVkIGxvZyBvZiBuZXcgY29tbWl0czpcblxuJworICAgICAgICAgICAgZm9yIGxpbmUgaW4gcmVhZF9naXRfbGluZXMoCisgICAgICAgICAgICAgICAgICAgIFsnbG9nJywgJy0tbm8td2FsayddCisgICAgICAgICAgICAgICAgICAgICsgc2VsZi5sb2dvcHRzCisgICAgICAgICAgICAgICAgICAgICsgbmV3X2NvbW1pdHNfbGlzdAorICAgICAgICAgICAgICAgICAgICArIFsnLS0nXSwKKyAgICAgICAgICAgICAgICAgICAga2VlcGVuZHM9VHJ1ZSwKKyAgICAgICAgICAgICAgICApOgorICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgIGRlZiBnZW5lcmF0ZV9yZXZpc2lvbl9jaGFuZ2Vfc3VtbWFyeShzZWxmLCBwdXNoKToKKyAgICAgICAgIiIiR2VuZXJhdGUgYSBzdW1tYXJ5IG9mIHRoZSByZXZpc2lvbnMgYWRkZWQvcmVtb3ZlZCBieSB0aGlzIGNoYW5nZS4iIiIKKworICAgICAgICBpZiBzZWxmLm5ldy5jb21taXRfc2hhMSBhbmQgbm90IHNlbGYub2xkLmNvbW1pdF9zaGExOgorICAgICAgICAgICAgIyBBIG5ldyByZWZlcmVuY2Ugd2FzIGNyZWF0ZWQuICBMaXN0IHRoZSBuZXcgcmV2aXNpb25zCisgICAgICAgICAgICAjIGJyb3VnaHQgYnkgdGhlIG5ldyByZWZlcmVuY2UgKGkuZS4sIHRob3NlIHJldmlzaW9ucyB0aGF0CisgICAgICAgICAgICAjIHdlcmUgbm90IGluIHRoZSByZXBvc2l0b3J5IGJlZm9yZSB0aGlzIHJlZmVyZW5jZQorICAgICAgICAgICAgIyBjaGFuZ2UpLgorICAgICAgICAgICAgc2hhMXMgPSBsaXN0KHB1c2guZ2V0X25ld19jb21taXRzKHNlbGYpKQorICAgICAgICAgICAgc2hhMXMucmV2ZXJzZSgpCisgICAgICAgICAgICB0b3QgPSBsZW4oc2hhMXMpCisgICAgICAgICAgICBuZXdfcmV2aXNpb25zID0gWworICAgICAgICAgICAgICAgIFJldmlzaW9uKHNlbGYsIEdpdE9iamVjdChzaGExKSwgbnVtPWkrMSwgdG90PXRvdCkKKyAgICAgICAgICAgICAgICBmb3IgKGksIHNoYTEpIGluIGVudW1lcmF0ZShzaGExcykKKyAgICAgICAgICAgICAgICBdCisKKyAgICAgICAgICAgIGlmIG5ld19yZXZpc2lvbnM6CisgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5leHBhbmQoJ1RoaXMgJShyZWZuYW1lX3R5cGUpcyBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIG5ldyBjb21taXRzOlxuJykKKyAgICAgICAgICAgICAgICB5aWVsZCAnXG4nCisgICAgICAgICAgICAgICAgZm9yIHIgaW4gbmV3X3JldmlzaW9uczoKKyAgICAgICAgICAgICAgICAgICAgKHNoYTEsIHN1YmplY3QpID0gci5yZXYuZ2V0X3N1bW1hcnkoKQorICAgICAgICAgICAgICAgICAgICB5aWVsZCByLmV4cGFuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIEJSSUVGX1NVTU1BUllfVEVNUExBVEUsIGFjdGlvbj0nbmV3JywgdGV4dD1zdWJqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHlpZWxkICdcbicKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhORVdfUkVWSVNJT05TX1RFTVBMQVRFLCB0b3Q9dG90KToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgbGluZQorICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZ2VuZXJhdGVfcmV2aXNpb25fY2hhbmdlX2xvZyhbci5yZXYuc2hhMSBmb3IgciBpbiBuZXdfcmV2aXNpb25zXSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoTk9fTkVXX1JFVklTSU9OU19URU1QTEFURSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICBlbGlmIHNlbGYubmV3LmNvbW1pdF9zaGExIGFuZCBzZWxmLm9sZC5jb21taXRfc2hhMToKKyAgICAgICAgICAgICMgQSByZWZlcmVuY2Ugd2FzIGNoYW5nZWQgdG8gcG9pbnQgYXQgYSBkaWZmZXJlbnQgY29tbWl0LgorICAgICAgICAgICAgIyBMaXN0IHRoZSByZXZpc2lvbnMgdGhhdCB3ZXJlIHJlbW92ZWQgYW5kL29yIGFkZGVkICpmcm9tCisgICAgICAgICAgICAjIHRoYXQgcmVmZXJlbmNlKiBieSB0aGlzIHJlZmVyZW5jZSBjaGFuZ2UsIGFsb25nIHdpdGggYQorICAgICAgICAgICAgIyBkaWZmIGJldHdlZW4gdGhlIHRyZWVzIGZvciBpdHMgb2xkIGFuZCBuZXcgdmFsdWVzLgorCisgICAgICAgICAgICAjIExpc3Qgb2YgdGhlIHJldmlzaW9ucyB0aGF0IHdlcmUgYWRkZWQgdG8gdGhlIGJyYW5jaCBieQorICAgICAgICAgICAgIyB0aGlzIHVwZGF0ZS4gIE5vdGUgdGhpcyBsaXN0IGNhbiBpbmNsdWRlIHJldmlzaW9ucyB0aGF0CisgICAgICAgICAgICAjIGhhdmUgYWxyZWFkeSBoYWQgbm90aWZpY2F0aW9uIGVtYWlsczsgd2Ugd2FudCBzdWNoCisgICAgICAgICAgICAjIHJldmlzaW9ucyBpbiB0aGUgc3VtbWFyeSBldmVuIHRob3VnaCB3ZSB3aWxsIG5vdCBzZW5kCisgICAgICAgICAgICAjIG5ldyBub3RpZmljYXRpb24gZW1haWxzIGZvciB0aGVtLgorICAgICAgICAgICAgYWRkcyA9IGxpc3QoZ2VuZXJhdGVfc3VtbWFyaWVzKAorICAgICAgICAgICAgICAgICAgICAnLS10b3BvLW9yZGVyJywgJy0tcmV2ZXJzZScsICclcy4uJXMnCisgICAgICAgICAgICAgICAgICAgICUgKHNlbGYub2xkLmNvbW1pdF9zaGExLCBzZWxmLm5ldy5jb21taXRfc2hhMSwpCisgICAgICAgICAgICAgICAgICAgICkpCisKKyAgICAgICAgICAgICMgTGlzdCBvZiB0aGUgcmV2aXNpb25zIHRoYXQgd2VyZSByZW1vdmVkIGZyb20gdGhlIGJyYW5jaAorICAgICAgICAgICAgIyBieSB0aGlzIHVwZGF0ZS4gIFRoaXMgd2lsbCBiZSBlbXB0eSBleGNlcHQgZm9yCisgICAgICAgICAgICAjIG5vbi1mYXN0LWZvcndhcmQgdXBkYXRlcy4KKyAgICAgICAgICAgIGRpc2NhcmRzID0gbGlzdChnZW5lcmF0ZV9zdW1tYXJpZXMoCisgICAgICAgICAgICAgICAgICAgICclcy4uJXMnICUgKHNlbGYubmV3LmNvbW1pdF9zaGExLCBzZWxmLm9sZC5jb21taXRfc2hhMSwpCisgICAgICAgICAgICAgICAgICAgICkpCisKKyAgICAgICAgICAgIGlmIGFkZHM6CisgICAgICAgICAgICAgICAgbmV3X2NvbW1pdHNfbGlzdCA9IHB1c2guZ2V0X25ld19jb21taXRzKHNlbGYpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG5ld19jb21taXRzX2xpc3QgPSBbXQorICAgICAgICAgICAgbmV3X2NvbW1pdHMgPSBDb21taXRTZXQobmV3X2NvbW1pdHNfbGlzdCkKKworICAgICAgICAgICAgaWYgZGlzY2FyZHM6CisgICAgICAgICAgICAgICAgZGlzY2FyZGVkX2NvbW1pdHMgPSBDb21taXRTZXQocHVzaC5nZXRfZGlzY2FyZGVkX2NvbW1pdHMoc2VsZikpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRpc2NhcmRlZF9jb21taXRzID0gQ29tbWl0U2V0KFtdKQorCisgICAgICAgICAgICBpZiBkaXNjYXJkcyBhbmQgYWRkczoKKyAgICAgICAgICAgICAgICBmb3IgKHNoYTEsIHN1YmplY3QpIGluIGRpc2NhcmRzOgorICAgICAgICAgICAgICAgICAgICBpZiBzaGExIGluIGRpc2NhcmRlZF9jb21taXRzOgorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ2Rpc2NhcmRzJworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ29taXRzJworICAgICAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmV4cGFuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIEJSSUVGX1NVTU1BUllfVEVNUExBVEUsIGFjdGlvbj1hY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICByZXZfc2hvcnQ9c2hhMSwgdGV4dD1zdWJqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIGZvciAoc2hhMSwgc3ViamVjdCkgaW4gYWRkczoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2hhMSBpbiBuZXdfY29tbWl0czoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICduZXcnCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnYWRkcycKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5leHBhbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBCUklFRl9TVU1NQVJZX1RFTVBMQVRFLCBhY3Rpb249YWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgcmV2X3Nob3J0PXNoYTEsIHRleHQ9c3ViamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICB5aWVsZCAnXG4nCisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoTk9OX0ZGX1RFTVBMQVRFKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgICAgICBlbGlmIGRpc2NhcmRzOgorICAgICAgICAgICAgICAgIGZvciAoc2hhMSwgc3ViamVjdCkgaW4gZGlzY2FyZHM6CisgICAgICAgICAgICAgICAgICAgIGlmIHNoYTEgaW4gZGlzY2FyZGVkX2NvbW1pdHM6CisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnZGlzY2FyZHMnCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnb21pdHMnCisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuZXhwYW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgQlJJRUZfU1VNTUFSWV9URU1QTEFURSwgYWN0aW9uPWFjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldl9zaG9ydD1zaGExLCB0ZXh0PXN1YmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgeWllbGQgJ1xuJworICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2xpbmVzKFJFV0lORF9PTkxZX1RFTVBMQVRFKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgICAgICBlbGlmIGFkZHM6CisgICAgICAgICAgICAgICAgKHNoYTEsIHN1YmplY3QpID0gc2VsZi5vbGQuZ2V0X3N1bW1hcnkoKQorICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuZXhwYW5kKAorICAgICAgICAgICAgICAgICAgICBCUklFRl9TVU1NQVJZX1RFTVBMQVRFLCBhY3Rpb249J2Zyb20nLAorICAgICAgICAgICAgICAgICAgICByZXZfc2hvcnQ9c2hhMSwgdGV4dD1zdWJqZWN0LAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgZm9yIChzaGExLCBzdWJqZWN0KSBpbiBhZGRzOgorICAgICAgICAgICAgICAgICAgICBpZiBzaGExIGluIG5ld19jb21taXRzOgorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ25ldycKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdhZGRzJworICAgICAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmV4cGFuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIEJSSUVGX1NVTU1BUllfVEVNUExBVEUsIGFjdGlvbj1hY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICByZXZfc2hvcnQ9c2hhMSwgdGV4dD1zdWJqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICB5aWVsZCAnXG4nCisKKyAgICAgICAgICAgIGlmIG5ld19jb21taXRzOgorICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2xpbmVzKE5FV19SRVZJU0lPTlNfVEVNUExBVEUsIHRvdD1sZW4obmV3X2NvbW1pdHMpKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgbGluZQorICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZ2VuZXJhdGVfcmV2aXNpb25fY2hhbmdlX2xvZyhuZXdfY29tbWl0c19saXN0KToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgbGluZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhOT19ORVdfUkVWSVNJT05TX1RFTVBMQVRFKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgICAgICAjIFRoZSBkaWZmc3RhdCBpcyBzaG93biBmcm9tIHRoZSBvbGQgcmV2aXNpb24gdG8gdGhlIG5ldworICAgICAgICAgICAgIyByZXZpc2lvbi4gIFRoaXMgaXMgdG8gc2hvdyB0aGUgdHJ1dGggb2Ygd2hhdCBoYXBwZW5lZCBpbgorICAgICAgICAgICAgIyB0aGlzIGNoYW5nZS4gIFRoZXJlJ3Mgbm8gcG9pbnQgc2hvd2luZyB0aGUgc3RhdCBmcm9tIHRoZQorICAgICAgICAgICAgIyBiYXNlIHRvIHRoZSBuZXcgcmV2aXNpb24gYmVjYXVzZSB0aGUgYmFzZSBpcyBlZmZlY3RpdmVseSBhCisgICAgICAgICAgICAjIHJhbmRvbSByZXZpc2lvbiBhdCB0aGlzIHBvaW50IC0gdGhlIHVzZXIgd2lsbCBiZSBpbnRlcmVzdGVkCisgICAgICAgICAgICAjIGluIHdoYXQgdGhpcyByZXZpc2lvbiBjaGFuZ2VkIC0gaW5jbHVkaW5nIHRoZSB1bmRvaW5nIG9mCisgICAgICAgICAgICAjIHByZXZpb3VzIHJldmlzaW9ucyBpbiB0aGUgY2FzZSBvZiBub24tZmFzdC1mb3J3YXJkIHVwZGF0ZXMuCisgICAgICAgICAgICB5aWVsZCAnXG4nCisgICAgICAgICAgICB5aWVsZCAnU3VtbWFyeSBvZiBjaGFuZ2VzOlxuJworICAgICAgICAgICAgZm9yIGxpbmUgaW4gcmVhZF9naXRfbGluZXMoCisgICAgICAgICAgICAgICAgWydkaWZmLXRyZWUnXQorICAgICAgICAgICAgICAgICsgc2VsZi5kaWZmb3B0cworICAgICAgICAgICAgICAgICsgWyclcy4uJXMnICUgKHNlbGYub2xkLmNvbW1pdF9zaGExLCBzZWxmLm5ldy5jb21taXRfc2hhMSwpXSwKKyAgICAgICAgICAgICAgICBrZWVwZW5kcz1UcnVlLAorICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgIGVsaWYgc2VsZi5vbGQuY29tbWl0X3NoYTEgYW5kIG5vdCBzZWxmLm5ldy5jb21taXRfc2hhMToKKyAgICAgICAgICAgICMgQSByZWZlcmVuY2Ugd2FzIGRlbGV0ZWQuICBMaXN0IHRoZSByZXZpc2lvbnMgdGhhdCB3ZXJlCisgICAgICAgICAgICAjIHJlbW92ZWQgZnJvbSB0aGUgcmVwb3NpdG9yeSBieSB0aGlzIHJlZmVyZW5jZSBjaGFuZ2UuCisKKyAgICAgICAgICAgIHNoYTFzID0gbGlzdChwdXNoLmdldF9kaXNjYXJkZWRfY29tbWl0cyhzZWxmKSkKKyAgICAgICAgICAgIHRvdCA9IGxlbihzaGExcykKKyAgICAgICAgICAgIGRpc2NhcmRlZF9yZXZpc2lvbnMgPSBbCisgICAgICAgICAgICAgICAgUmV2aXNpb24oc2VsZiwgR2l0T2JqZWN0KHNoYTEpLCBudW09aSsxLCB0b3Q9dG90KQorICAgICAgICAgICAgICAgIGZvciAoaSwgc2hhMSkgaW4gZW51bWVyYXRlKHNoYTFzKQorICAgICAgICAgICAgICAgIF0KKworICAgICAgICAgICAgaWYgZGlzY2FyZGVkX3JldmlzaW9uczoKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhESVNDQVJERURfUkVWSVNJT05TX1RFTVBMQVRFKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgbGluZQorICAgICAgICAgICAgICAgIHlpZWxkICdcbicKKyAgICAgICAgICAgICAgICBmb3IgciBpbiBkaXNjYXJkZWRfcmV2aXNpb25zOgorICAgICAgICAgICAgICAgICAgICAoc2hhMSwgc3ViamVjdCkgPSByLnJldi5nZXRfc3VtbWFyeSgpCisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHIuZXhwYW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgQlJJRUZfU1VNTUFSWV9URU1QTEFURSwgYWN0aW9uPSdkaXNjYXJkcycsIHRleHQ9c3ViamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoTk9fRElTQ0FSREVEX1JFVklTSU9OU19URU1QTEFURSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICBlbGlmIG5vdCBzZWxmLm9sZC5jb21taXRfc2hhMSBhbmQgbm90IHNlbGYubmV3LmNvbW1pdF9zaGExOgorICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoTk9OX0NPTU1JVF9VUERBVEVfVEVNUExBVEUpOgorICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgIGRlZiBnZW5lcmF0ZV9jcmVhdGVfc3VtbWFyeShzZWxmLCBwdXNoKToKKyAgICAgICAgIiIiQ2FsbGVkIGZvciB0aGUgY3JlYXRpb24gb2YgYSByZWZlcmVuY2UuIiIiCisKKyAgICAgICAgIyBUaGlzIGlzIGEgbmV3IHJlZmVyZW5jZSBhbmQgc28gb2xkcmV2IGlzIG5vdCB2YWxpZAorICAgICAgICAoc2hhMSwgc3ViamVjdCkgPSBzZWxmLm5ldy5nZXRfc3VtbWFyeSgpCisgICAgICAgIHlpZWxkIHNlbGYuZXhwYW5kKAorICAgICAgICAgICAgQlJJRUZfU1VNTUFSWV9URU1QTEFURSwgYWN0aW9uPSdhdCcsCisgICAgICAgICAgICByZXZfc2hvcnQ9c2hhMSwgdGV4dD1zdWJqZWN0LAorICAgICAgICAgICAgKQorICAgICAgICB5aWVsZCAnXG4nCisKKyAgICBkZWYgZ2VuZXJhdGVfdXBkYXRlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkNhbGxlZCBmb3IgdGhlIGNoYW5nZSBvZiBhIHByZS1leGlzdGluZyBicmFuY2guIiIiCisKKyAgICAgICAgcmV0dXJuIGl0ZXIoW10pCisKKyAgICBkZWYgZ2VuZXJhdGVfZGVsZXRlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkNhbGxlZCBmb3IgdGhlIGRlbGV0aW9uIG9mIGFueSB0eXBlIG9mIHJlZmVyZW5jZS4iIiIKKworICAgICAgICAoc2hhMSwgc3ViamVjdCkgPSBzZWxmLm9sZC5nZXRfc3VtbWFyeSgpCisgICAgICAgIHlpZWxkIHNlbGYuZXhwYW5kKAorICAgICAgICAgICAgQlJJRUZfU1VNTUFSWV9URU1QTEFURSwgYWN0aW9uPSd3YXMnLAorICAgICAgICAgICAgcmV2X3Nob3J0PXNoYTEsIHRleHQ9c3ViamVjdCwKKyAgICAgICAgICAgICkKKyAgICAgICAgeWllbGQgJ1xuJworCisKK2NsYXNzIEJyYW5jaENoYW5nZShSZWZlcmVuY2VDaGFuZ2UpOgorICAgIHJlZm5hbWVfdHlwZSA9ICdicmFuY2gnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZW52aXJvbm1lbnQsIHJlZm5hbWUsIHNob3J0X3JlZm5hbWUsIG9sZCwgbmV3LCByZXYpOgorICAgICAgICBSZWZlcmVuY2VDaGFuZ2UuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBlbnZpcm9ubWVudCwKKyAgICAgICAgICAgIHJlZm5hbWU9cmVmbmFtZSwgc2hvcnRfcmVmbmFtZT1zaG9ydF9yZWZuYW1lLAorICAgICAgICAgICAgb2xkPW9sZCwgbmV3PW5ldywgcmV2PXJldiwKKyAgICAgICAgICAgICkKKyAgICAgICAgc2VsZi5yZWNpcGllbnRzID0gZW52aXJvbm1lbnQuZ2V0X3JlZmNoYW5nZV9yZWNpcGllbnRzKHNlbGYpCisKKworY2xhc3MgQW5ub3RhdGVkVGFnQ2hhbmdlKFJlZmVyZW5jZUNoYW5nZSk6CisgICAgcmVmbmFtZV90eXBlID0gJ2Fubm90YXRlZCB0YWcnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZW52aXJvbm1lbnQsIHJlZm5hbWUsIHNob3J0X3JlZm5hbWUsIG9sZCwgbmV3LCByZXYpOgorICAgICAgICBSZWZlcmVuY2VDaGFuZ2UuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBlbnZpcm9ubWVudCwKKyAgICAgICAgICAgIHJlZm5hbWU9cmVmbmFtZSwgc2hvcnRfcmVmbmFtZT1zaG9ydF9yZWZuYW1lLAorICAgICAgICAgICAgb2xkPW9sZCwgbmV3PW5ldywgcmV2PXJldiwKKyAgICAgICAgICAgICkKKyAgICAgICAgc2VsZi5yZWNpcGllbnRzID0gZW52aXJvbm1lbnQuZ2V0X2Fubm91bmNlX3JlY2lwaWVudHMoc2VsZikKKyAgICAgICAgc2VsZi5zaG93X3Nob3J0bG9nID0gZW52aXJvbm1lbnQuYW5ub3VuY2Vfc2hvd19zaG9ydGxvZworCisgICAgQU5OT1RBVEVEX1RBR19GT1JNQVQgPSAoCisgICAgICAgICclKCpvYmplY3RuYW1lKVxuJworICAgICAgICAnJSgqb2JqZWN0dHlwZSlcbicKKyAgICAgICAgJyUodGFnZ2VybmFtZSlcbicKKyAgICAgICAgJyUodGFnZ2VyZGF0ZSknCisgICAgICAgICkKKworICAgIGRlZiBkZXNjcmliZV90YWcoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkRlc2NyaWJlIHRoZSBuZXcgdmFsdWUgb2YgYW4gYW5ub3RhdGVkIHRhZy4iIiIKKworICAgICAgICAjIFVzZSBnaXQgZm9yLWVhY2gtcmVmIHRvIHB1bGwgb3V0IHRoZSBpbmRpdmlkdWFsIGZpZWxkcyBmcm9tCisgICAgICAgICMgdGhlIHRhZworICAgICAgICBbdGFnb2JqZWN0LCB0YWd0eXBlLCB0YWdnZXIsIHRhZ2dlZF0gPSByZWFkX2dpdF9saW5lcygKKyAgICAgICAgICAgIFsnZm9yLWVhY2gtcmVmJywgJy0tZm9ybWF0PSVzJyAlIChzZWxmLkFOTk9UQVRFRF9UQUdfRk9STUFULCksIHNlbGYucmVmbmFtZV0sCisgICAgICAgICAgICApCisKKyAgICAgICAgeWllbGQgc2VsZi5leHBhbmQoCisgICAgICAgICAgICBCUklFRl9TVU1NQVJZX1RFTVBMQVRFLCBhY3Rpb249J3RhZ2dpbmcnLAorICAgICAgICAgICAgcmV2X3Nob3J0PXRhZ29iamVjdCwgdGV4dD0nKCVzKScgJSAodGFndHlwZSwpLAorICAgICAgICAgICAgKQorICAgICAgICBpZiB0YWd0eXBlID09ICdjb21taXQnOgorICAgICAgICAgICAgIyBJZiB0aGUgdGFnZ2VkIG9iamVjdCBpcyBhIGNvbW1pdCwgdGhlbiB3ZSBhc3N1bWUgdGhpcyBpcyBhCisgICAgICAgICAgICAjIHJlbGVhc2UsIGFuZCBzbyB3ZSBjYWxjdWxhdGUgd2hpY2ggdGFnIHRoaXMgdGFnIGlzCisgICAgICAgICAgICAjIHJlcGxhY2luZworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHByZXZ0YWcgPSByZWFkX2dpdF9vdXRwdXQoWydkZXNjcmliZScsICctLWFiYnJldj0wJywgJyVzXicgJSAoc2VsZi5uZXcsKV0pCisgICAgICAgICAgICBleGNlcHQgQ29tbWFuZEVycm9yOgorICAgICAgICAgICAgICAgIHByZXZ0YWcgPSBOb25lCisgICAgICAgICAgICBpZiBwcmV2dGFnOgorICAgICAgICAgICAgICAgIHlpZWxkICcgIHJlcGxhY2VzICAlc1xuJyAlIChwcmV2dGFnLCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByZXZ0YWcgPSBOb25lCisgICAgICAgICAgICB5aWVsZCAnICAgIGxlbmd0aCAgJXMgYnl0ZXNcbicgJSAocmVhZF9naXRfb3V0cHV0KFsnY2F0LWZpbGUnLCAnLXMnLCB0YWdvYmplY3RdKSwpCisKKyAgICAgICAgeWllbGQgJyB0YWdnZWQgYnkgICVzXG4nICUgKHRhZ2dlciwpCisgICAgICAgIHlpZWxkICcgICAgICAgIG9uICAlc1xuJyAlICh0YWdnZWQsKQorICAgICAgICB5aWVsZCAnXG4nCisKKyAgICAgICAgIyBTaG93IHRoZSBjb250ZW50IG9mIHRoZSB0YWcgbWVzc2FnZTsgdGhpcyBtaWdodCBjb250YWluIGEKKyAgICAgICAgIyBjaGFuZ2UgbG9nIG9yIHJlbGVhc2Ugbm90ZXMgc28gaXMgd29ydGggZGlzcGxheWluZy4KKyAgICAgICAgeWllbGQgTE9HQkVHSU4KKyAgICAgICAgY29udGVudHMgPSBsaXN0KHJlYWRfZ2l0X2xpbmVzKFsnY2F0LWZpbGUnLCAndGFnJywgc2VsZi5uZXcuc2hhMV0sIGtlZXBlbmRzPVRydWUpKQorICAgICAgICBjb250ZW50cyA9IGNvbnRlbnRzW2NvbnRlbnRzLmluZGV4KCdcbicpICsgMTpdCisgICAgICAgIGlmIGNvbnRlbnRzIGFuZCBjb250ZW50c1stMV1bLTE6XSAhPSAnXG4nOgorICAgICAgICAgICAgY29udGVudHMuYXBwZW5kKCdcbicpCisgICAgICAgIGZvciBsaW5lIGluIGNvbnRlbnRzOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgIGlmIHNlbGYuc2hvd19zaG9ydGxvZyBhbmQgdGFndHlwZSA9PSAnY29tbWl0JzoKKyAgICAgICAgICAgICMgT25seSBjb21taXQgdGFncyBtYWtlIHNlbnNlIHRvIGhhdmUgcmV2LWxpc3Qgb3BlcmF0aW9ucworICAgICAgICAgICAgIyBwZXJmb3JtZWQgb24gdGhlbQorICAgICAgICAgICAgeWllbGQgJ1xuJworICAgICAgICAgICAgaWYgcHJldnRhZzoKKyAgICAgICAgICAgICAgICAjIFNob3cgY2hhbmdlcyBzaW5jZSB0aGUgcHJldmlvdXMgcmVsZWFzZQorICAgICAgICAgICAgICAgIHJldmxpc3QgPSByZWFkX2dpdF9vdXRwdXQoCisgICAgICAgICAgICAgICAgICAgIFsncmV2LWxpc3QnLCAnLS1wcmV0dHk9c2hvcnQnLCAnJXMuLiVzJyAlIChwcmV2dGFnLCBzZWxmLm5ldywpXSwKKyAgICAgICAgICAgICAgICAgICAga2VlcGVuZHM9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIE5vIHByZXZpb3VzIHRhZywgc2hvdyBhbGwgdGhlIGNoYW5nZXMgc2luY2UgdGltZQorICAgICAgICAgICAgICAgICMgYmVnYW4KKyAgICAgICAgICAgICAgICByZXZsaXN0ID0gcmVhZF9naXRfb3V0cHV0KAorICAgICAgICAgICAgICAgICAgICBbJ3Jldi1saXN0JywgJy0tcHJldHR5PXNob3J0JywgJyVzJyAlIChzZWxmLm5ldywpXSwKKyAgICAgICAgICAgICAgICAgICAga2VlcGVuZHM9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gcmVhZF9naXRfbGluZXMoWydzaG9ydGxvZyddLCBpbnB1dD1yZXZsaXN0LCBrZWVwZW5kcz1UcnVlKToKKyAgICAgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgeWllbGQgTE9HRU5ECisgICAgICAgIHlpZWxkICdcbicKKworICAgIGRlZiBnZW5lcmF0ZV9jcmVhdGVfc3VtbWFyeShzZWxmLCBwdXNoKToKKyAgICAgICAgIiIiQ2FsbGVkIGZvciB0aGUgY3JlYXRpb24gb2YgYW4gYW5ub3RhdGVkIHRhZy4iIiIKKworICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhUQUdfQ1JFQVRFRF9URU1QTEFURSk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5kZXNjcmliZV90YWcocHVzaCk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBkZWYgZ2VuZXJhdGVfdXBkYXRlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkNhbGxlZCBmb3IgdGhlIHVwZGF0ZSBvZiBhbiBhbm5vdGF0ZWQgdGFnLgorCisgICAgICAgIFRoaXMgaXMgcHJvYmFibHkgYSByYXJlIGV2ZW50IGFuZCBtYXkgbm90IGV2ZW4gYmUgYWxsb3dlZC4iIiIKKworICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhUQUdfVVBEQVRFRF9URU1QTEFURSk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5kZXNjcmliZV90YWcocHVzaCk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBkZWYgZ2VuZXJhdGVfZGVsZXRlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkNhbGxlZCB3aGVuIGEgbm9uLWFubm90YXRlZCByZWZlcmVuY2UgaXMgdXBkYXRlZC4iIiIKKworICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhUQUdfREVMRVRFRF9URU1QTEFURSk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgeWllbGQgc2VsZi5leHBhbmQoJyAgIHRhZyB3YXMgICUob2xkcmV2X3Nob3J0KXNcbicpCisgICAgICAgIHlpZWxkICdcbicKKworCitjbGFzcyBOb25Bbm5vdGF0ZWRUYWdDaGFuZ2UoUmVmZXJlbmNlQ2hhbmdlKToKKyAgICByZWZuYW1lX3R5cGUgPSAndGFnJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb25tZW50LCByZWZuYW1lLCBzaG9ydF9yZWZuYW1lLCBvbGQsIG5ldywgcmV2KToKKyAgICAgICAgUmVmZXJlbmNlQ2hhbmdlLl9faW5pdF9fKAorICAgICAgICAgICAgc2VsZiwgZW52aXJvbm1lbnQsCisgICAgICAgICAgICByZWZuYW1lPXJlZm5hbWUsIHNob3J0X3JlZm5hbWU9c2hvcnRfcmVmbmFtZSwKKyAgICAgICAgICAgIG9sZD1vbGQsIG5ldz1uZXcsIHJldj1yZXYsCisgICAgICAgICAgICApCisgICAgICAgIHNlbGYucmVjaXBpZW50cyA9IGVudmlyb25tZW50LmdldF9yZWZjaGFuZ2VfcmVjaXBpZW50cyhzZWxmKQorCisgICAgZGVmIGdlbmVyYXRlX2NyZWF0ZV9zdW1tYXJ5KHNlbGYsIHB1c2gpOgorICAgICAgICAiIiJDYWxsZWQgZm9yIHRoZSBjcmVhdGlvbiBvZiBhbiBhbm5vdGF0ZWQgdGFnLiIiIgorCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2xpbmVzKFRBR19DUkVBVEVEX1RFTVBMQVRFKToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgIGRlZiBnZW5lcmF0ZV91cGRhdGVfc3VtbWFyeShzZWxmLCBwdXNoKToKKyAgICAgICAgIiIiQ2FsbGVkIHdoZW4gYSBub24tYW5ub3RhdGVkIHJlZmVyZW5jZSBpcyB1cGRhdGVkLiIiIgorCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2xpbmVzKFRBR19VUERBVEVEX1RFTVBMQVRFKToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgIGRlZiBnZW5lcmF0ZV9kZWxldGVfc3VtbWFyeShzZWxmLCBwdXNoKToKKyAgICAgICAgIiIiQ2FsbGVkIHdoZW4gYSBub24tYW5ub3RhdGVkIHJlZmVyZW5jZSBpcyB1cGRhdGVkLiIiIgorCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2xpbmVzKFRBR19ERUxFVEVEX1RFTVBMQVRFKToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICBmb3IgbGluZSBpbiBSZWZlcmVuY2VDaGFuZ2UuZ2VuZXJhdGVfZGVsZXRlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKworY2xhc3MgT3RoZXJSZWZlcmVuY2VDaGFuZ2UoUmVmZXJlbmNlQ2hhbmdlKToKKyAgICByZWZuYW1lX3R5cGUgPSAncmVmZXJlbmNlJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb25tZW50LCByZWZuYW1lLCBzaG9ydF9yZWZuYW1lLCBvbGQsIG5ldywgcmV2KToKKyAgICAgICAgIyBXZSB1c2UgdGhlIGZ1bGwgcmVmbmFtZSBhcyBzaG9ydF9yZWZuYW1lLCBiZWNhdXNlIG90aGVyd2lzZQorICAgICAgICAjIHRoZSBmdWxsIG5hbWUgb2YgdGhlIHJlZmVyZW5jZSB3b3VsZCBub3QgYmUgb2J2aW91cyBmcm9tIHRoZQorICAgICAgICAjIHRleHQgb2YgdGhlIGVtYWlsLgorICAgICAgICBSZWZlcmVuY2VDaGFuZ2UuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBlbnZpcm9ubWVudCwKKyAgICAgICAgICAgIHJlZm5hbWU9cmVmbmFtZSwgc2hvcnRfcmVmbmFtZT1yZWZuYW1lLAorICAgICAgICAgICAgb2xkPW9sZCwgbmV3PW5ldywgcmV2PXJldiwKKyAgICAgICAgICAgICkKKyAgICAgICAgc2VsZi5yZWNpcGllbnRzID0gZW52aXJvbm1lbnQuZ2V0X3JlZmNoYW5nZV9yZWNpcGllbnRzKHNlbGYpCisKKworY2xhc3MgTWFpbGVyKG9iamVjdCk6CisgICAgIiIiQW4gb2JqZWN0IHRoYXQgY2FuIHNlbmQgZW1haWxzLiIiIgorCisgICAgZGVmIHNlbmQoc2VsZiwgbGluZXMsIHRvX2FkZHJzKToKKyAgICAgICAgIiIiU2VuZCBhbiBlbWFpbCBjb25zaXN0aW5nIG9mIGxpbmVzLgorCisgICAgICAgIGxpbmVzIG11c3QgYmUgYW4gaXRlcmFibGUgb3ZlciB0aGUgbGluZXMgY29uc3RpdHV0aW5nIHRoZQorICAgICAgICBoZWFkZXIgYW5kIGJvZHkgb2YgdGhlIGVtYWlsLiAgdG9fYWRkcnMgaXMgYSBsaXN0IG9mIHJlY2lwaWVudAorICAgICAgICBhZGRyZXNzZXMgKGNhbiBiZSBuZWVkZWQgZXZlbiBpZiBsaW5lcyBhbHJlYWR5IGNvbnRhaW5zIGEKKyAgICAgICAgIlRvOiIgZmllbGQpLiAgSXQgY2FuIGJlIGVpdGhlciBhIHN0cmluZyAoY29tbWEtc2VwYXJhdGVkIGxpc3QKKyAgICAgICAgb2YgZW1haWwgYWRkcmVzc2VzKSBvciBhIFB5dGhvbiBsaXN0IG9mIGluZGl2aWR1YWwgZW1haWwKKyAgICAgICAgYWRkcmVzc2VzLgorCisgICAgICAgICIiIgorCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisKK2NsYXNzIFNlbmRNYWlsZXIoTWFpbGVyKToKKyAgICAiIiJTZW5kIGVtYWlscyB1c2luZyAnc2VuZG1haWwgLXQnLiIiIgorCisgICAgU0VORE1BSUxfQ0FORElEQVRFUyA9IFsKKyAgICAgICAgJy91c3Ivc2Jpbi9zZW5kbWFpbCcsCisgICAgICAgICcvdXNyL2xpYi9zZW5kbWFpbCcsCisgICAgICAgIF0KKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZmluZF9zZW5kbWFpbCgpOgorICAgICAgICBmb3IgcGF0aCBpbiBTZW5kTWFpbGVyLlNFTkRNQUlMX0NBTkRJREFURVM6CisgICAgICAgICAgICBpZiBvcy5hY2Nlc3MocGF0aCwgb3MuWF9PSyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGgKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIENvbmZpZ3VyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ05vIHNlbmRtYWlsIGV4ZWN1dGFibGUgZm91bmQuICAnCisgICAgICAgICAgICAgICAgJ1RyeSBzZXR0aW5nIG11bHRpbWFpbGhvb2suc2VuZG1haWxDb21tYW5kLicKKyAgICAgICAgICAgICAgICApCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29tbWFuZD1Ob25lLCBlbnZlbG9wZXNlbmRlcj1Ob25lKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGEgU2VuZE1haWxlciBpbnN0YW5jZS4KKworICAgICAgICBjb21tYW5kIHNob3VsZCBiZSB0aGUgY29tbWFuZCBhbmQgYXJndW1lbnRzIHVzZWQgdG8gaW52b2tlCisgICAgICAgIHNlbmRtYWlsLCBhcyBhIGxpc3Qgb2Ygc3RyaW5ncy4gIElmIGFuIGVudmVsb3Blc2VuZGVyIGlzCisgICAgICAgIHByb3ZpZGVkLCBpdCB3aWxsIGFsc28gYmUgcGFzc2VkIHRvIHRoZSBjb21tYW5kLCB2aWEgJy1mCisgICAgICAgIGVudmVsb3Blc2VuZGVyJy4iIiIKKworICAgICAgICBpZiBjb21tYW5kOgorICAgICAgICAgICAgc2VsZi5jb21tYW5kID0gY29tbWFuZFs6XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5jb21tYW5kID0gW3NlbGYuZmluZF9zZW5kbWFpbCgpLCAnLXQnXQorCisgICAgICAgIGlmIGVudmVsb3Blc2VuZGVyOgorICAgICAgICAgICAgc2VsZi5jb21tYW5kLmV4dGVuZChbJy1mJywgZW52ZWxvcGVzZW5kZXJdKQorCisgICAgZGVmIHNlbmQoc2VsZiwgbGluZXMsIHRvX2FkZHJzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oc2VsZi5jb21tYW5kLCBzdGRpbj1zdWJwcm9jZXNzLlBJUEUpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yLCBlOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAnKioqIENhbm5vdCBleGVjdXRlIGNvbW1hbmQ6ICVzXG4nICUgJyAnLmpvaW4oc2VsZi5jb21tYW5kKQorICAgICAgICAgICAgICAgICsgJyoqKiAlc1xuJyAlIHN0cihlKQorICAgICAgICAgICAgICAgICsgJyoqKiBUcnkgc2V0dGluZyBtdWx0aW1haWxob29rLm1haWxlciB0byAic210cCJcbicKKyAgICAgICAgICAgICAgICAnKioqIHRvIHNlbmQgZW1haWxzIHdpdGhvdXQgdXNpbmcgdGhlIHNlbmRtYWlsIGNvbW1hbmQuXG4nCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcC5zdGRpbi53cml0ZWxpbmVzKGxpbmVzKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgICAgICcqKiogRXJyb3Igd2hpbGUgZ2VuZXJhdGluZyBjb21taXQgZW1haWxcbicKKyAgICAgICAgICAgICAgICAnKioqICAtIG1haWwgc2VuZGluZyBhYm9ydGVkLlxuJworICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHAudGVybWluYXRlKCkKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwLnN0ZGluLmNsb3NlKCkKKyAgICAgICAgICAgIHJldGNvZGUgPSBwLndhaXQoKQorICAgICAgICAgICAgaWYgcmV0Y29kZToKKyAgICAgICAgICAgICAgICByYWlzZSBDb21tYW5kRXJyb3Ioc2VsZi5jb21tYW5kLCByZXRjb2RlKQorCisKK2NsYXNzIFNNVFBNYWlsZXIoTWFpbGVyKToKKyAgICAiIiJTZW5kIGVtYWlscyB1c2luZyBQeXRob24ncyBzbXRwbGliLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmVsb3Blc2VuZGVyLCBzbXRwc2VydmVyKToKKyAgICAgICAgaWYgbm90IGVudmVsb3Blc2VuZGVyOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAnZmF0YWw6IGdpdF9tdWx0aW1haWw6IGNhbm5vdCB1c2UgU01UUE1haWxlciB3aXRob3V0IGEgc2VuZGVyIGFkZHJlc3MuXG4nCisgICAgICAgICAgICAgICAgJ3BsZWFzZSBzZXQgZWl0aGVyIG11bHRpbWFpbGhvb2suZW52ZWxvcGVTZW5kZXIgb3IgdXNlci5lbWFpbFxuJworICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgIHNlbGYuZW52ZWxvcGVzZW5kZXIgPSBlbnZlbG9wZXNlbmRlcgorICAgICAgICBzZWxmLnNtdHBzZXJ2ZXIgPSBzbXRwc2VydmVyCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuc210cCA9IHNtdHBsaWIuU01UUChzZWxmLnNtdHBzZXJ2ZXIpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCcqKiogRXJyb3IgZXN0YWJsaXNoaW5nIFNNVFAgY29ubmVjdGlvbiB0byAlcyoqKlxuJyAlIHNlbGYuc210cHNlcnZlcikKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJyoqKiAlc1xuJyAlIHN0cihlKSkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICBkZWYgX19kZWxfXyhzZWxmKToKKyAgICAgICAgc2VsZi5zbXRwLnF1aXQoKQorCisgICAgZGVmIHNlbmQoc2VsZiwgbGluZXMsIHRvX2FkZHJzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbXNnID0gJycuam9pbihsaW5lcykKKyAgICAgICAgICAgICMgdHVybiBjb21tYS1zZXBhcmF0ZWQgbGlzdCBpbnRvIFB5dGhvbiBsaXN0IGlmIG5lZWRlZC4KKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodG9fYWRkcnMsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgICAgIHRvX2FkZHJzID0gW2VtYWlsIGZvciAobmFtZSwgZW1haWwpIGluIGdldGFkZHJlc3NlcyhbdG9fYWRkcnNdKV0KKyAgICAgICAgICAgIHNlbGYuc210cC5zZW5kbWFpbChzZWxmLmVudmVsb3Blc2VuZGVyLCB0b19hZGRycywgbXNnKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnKioqIEVycm9yIHNlbmRpbmcgZW1haWwqKipcbicpCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCcqKiogJXNcbicgJSBzdHIoZSkpCisgICAgICAgICAgICBzZWxmLnNtdHAucXVpdCgpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisKK2NsYXNzIE91dHB1dE1haWxlcihNYWlsZXIpOgorICAgICIiIldyaXRlIGVtYWlscyB0byBhbiBvdXRwdXQgc3RyZWFtLCBicmFja2V0ZWQgYnkgbGluZXMgb2YgJz0nIGNoYXJhY3RlcnMuCisKKyAgICBUaGlzIGlzIGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuIiIiCisKKyAgICBTRVBBUkFUT1IgPSAnPScgKiA3NSArICdcbicKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmKToKKyAgICAgICAgc2VsZi5mID0gZgorCisgICAgZGVmIHNlbmQoc2VsZiwgbGluZXMsIHRvX2FkZHJzKToKKyAgICAgICAgc2VsZi5mLndyaXRlKHNlbGYuU0VQQVJBVE9SKQorICAgICAgICBzZWxmLmYud3JpdGVsaW5lcyhsaW5lcykKKyAgICAgICAgc2VsZi5mLndyaXRlKHNlbGYuU0VQQVJBVE9SKQorCisKK2RlZiBnZXRfZ2l0X2RpcigpOgorICAgICIiIkRldGVybWluZSBHSVRfRElSLgorCisgICAgRGV0ZXJtaW5lIEdJVF9ESVIgZWl0aGVyIGZyb20gdGhlIEdJVF9ESVIgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IKKyAgICBmcm9tIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgdXNpbmcgR2l0J3MgdXN1YWwgcnVsZXMuIiIiCisKKyAgICB0cnk6CisgICAgICAgIHJldHVybiByZWFkX2dpdF9vdXRwdXQoWydyZXYtcGFyc2UnLCAnLS1naXQtZGlyJ10pCisgICAgZXhjZXB0IENvbW1hbmRFcnJvcjoKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnZmF0YWw6IGdpdF9tdWx0aW1haWw6IG5vdCBpbiBhIGdpdCBkaXJlY3RvcnlcbicpCisgICAgICAgIHN5cy5leGl0KDEpCisKKworY2xhc3MgRW52aXJvbm1lbnQob2JqZWN0KToKKyAgICAiIiJEZXNjcmliZXMgdGhlIGVudmlyb25tZW50IGluIHdoaWNoIHRoZSBwdXNoIGlzIG9jY3VycmluZy4KKworICAgIEFuIEVudmlyb25tZW50IG9iamVjdCBlbmNhcHN1bGF0ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsCisgICAgZW52aXJvbm1lbnQuICBGb3IgZXhhbXBsZSwgaXQga25vd3MgaG93IHRvIGRldGVybWluZToKKworICAgICogdGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG8gd2hpY2ggdGhlIHB1c2ggb2NjdXJyZWQKKworICAgICogd2hhdCB1c2VyIGRpZCB0aGUgcHVzaAorCisgICAgKiB3aGF0IHVzZXJzIHdhbnQgdG8gYmUgaW5mb3JtZWQgYWJvdXQgdmFyaW91cyB0eXBlcyBvZiBjaGFuZ2VzLgorCisgICAgQW4gRW52aXJvbm1lbnQgb2JqZWN0IGlzIGV4cGVjdGVkIHRvIGhhdmUgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorCisgICAgICAgIGdldF9yZXBvX3Nob3J0bmFtZSgpCisKKyAgICAgICAgICAgIFJldHVybiBhIHNob3J0IG5hbWUgZm9yIHRoZSByZXBvc2l0b3J5LCBmb3IgZGlzcGxheQorICAgICAgICAgICAgcHVycG9zZXMuCisKKyAgICAgICAgZ2V0X3JlcG9fcGF0aCgpCisKKyAgICAgICAgICAgIFJldHVybiB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgR2l0IHJlcG9zaXRvcnkuCisKKyAgICAgICAgZ2V0X2VtYWlscHJlZml4KCkKKworICAgICAgICAgICAgUmV0dXJuIGEgc3RyaW5nIHRoYXQgd2lsbCBiZSBwcmVmaXhlZCB0byBldmVyeSBlbWFpbCdzCisgICAgICAgICAgICBzdWJqZWN0LgorCisgICAgICAgIGdldF9wdXNoZXIoKQorCisgICAgICAgICAgICBSZXR1cm4gdGhlIHVzZXJuYW1lIG9mIHRoZSBwZXJzb24gd2hvIHB1c2hlZCB0aGUgY2hhbmdlcy4KKyAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgdXNlZCBpbiB0aGUgZW1haWwgYm9keSB0byBpbmRpY2F0ZSB3aG8KKyAgICAgICAgICAgIHB1c2hlZCB0aGUgY2hhbmdlLgorCisgICAgICAgIGdldF9wdXNoZXJfZW1haWwoKSAobWF5IHJldHVybiBOb25lKQorCisgICAgICAgICAgICBSZXR1cm4gdGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHBlcnNvbiB3aG8gcHVzaGVkIHRoZQorICAgICAgICAgICAgY2hhbmdlcy4gIFRoZSB2YWx1ZSBzaG91bGQgYmUgYSBzaW5nbGUgUkZDIDI4MjIgZW1haWwKKyAgICAgICAgICAgIGFkZHJlc3MgYXMgYSBzdHJpbmc7IGUuZy4sICJKb2UgVXNlciA8dXNlckBleGFtcGxlLmNvbT4iCisgICAgICAgICAgICBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSAidXNlckBleGFtcGxlLmNvbSIuICBJZiBzZXQsIHRoZQorICAgICAgICAgICAgdmFsdWUgaXMgdXNlZCBhcyB0aGUgUmVwbHktVG8gYWRkcmVzcyBmb3IgcmVmY2hhbmdlCisgICAgICAgICAgICBlbWFpbHMuICBJZiBpdCBpcyBpbXBvc3NpYmxlIHRvIGRldGVybWluZSB0aGUgcHVzaGVyJ3MKKyAgICAgICAgICAgIGVtYWlsLCB0aGlzIGF0dHJpYnV0ZSBzaG91bGQgYmUgc2V0IHRvIE5vbmUgKGluIHdoaWNoIGNhc2UKKyAgICAgICAgICAgIG5vIFJlcGx5LVRvIGhlYWRlciB3aWxsIGJlIG91dHB1dCkuCisKKyAgICAgICAgZ2V0X3NlbmRlcigpCisKKyAgICAgICAgICAgIFJldHVybiB0aGUgYWRkcmVzcyB0byBiZSB1c2VkIGFzIHRoZSAnRnJvbScgZW1haWwgYWRkcmVzcworICAgICAgICAgICAgaW4gdGhlIGVtYWlsIGVudmVsb3BlLgorCisgICAgICAgIGdldF9mcm9tYWRkcigpCisKKyAgICAgICAgICAgIFJldHVybiB0aGUgJ0Zyb20nIGVtYWlsIGFkZHJlc3MgdXNlZCBpbiB0aGUgZW1haWwgJ0Zyb206JworICAgICAgICAgICAgaGVhZGVycy4gIChNYXkgYmUgYSBmdWxsIFJGQyAyODIyIGVtYWlsIGFkZHJlc3MgbGlrZSAnSm9lCisgICAgICAgICAgICBVc2VyIDx1c2VyQGV4YW1wbGUuY29tPicuKQorCisgICAgICAgIGdldF9hZG1pbmlzdHJhdG9yKCkKKworICAgICAgICAgICAgUmV0dXJuIHRoZSBuYW1lIGFuZC9vciBlbWFpbCBvZiB0aGUgcmVwb3NpdG9yeQorICAgICAgICAgICAgYWRtaW5pc3RyYXRvci4gIFRoaXMgdmFsdWUgaXMgdXNlZCBpbiB0aGUgZm9vdGVyIGFzIHRoZQorICAgICAgICAgICAgcGVyc29uIHRvIHdob20gcmVxdWVzdHMgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZQorICAgICAgICAgICAgbm90aWZpY2F0aW9uIGxpc3Qgc2hvdWxkIGJlIHNlbnQuICBJZGVhbGx5LCBpdCBzaG91bGQKKyAgICAgICAgICAgIGluY2x1ZGUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLgorCisgICAgICAgIGdldF9yZXBseV90b19yZWZjaGFuZ2UoKQorICAgICAgICBnZXRfcmVwbHlfdG9fY29tbWl0KCkKKworICAgICAgICAgICAgUmV0dXJuIHRoZSBhZGRyZXNzIHRvIHVzZSBpbiB0aGUgZW1haWwgIlJlcGx5LVRvIiBoZWFkZXIsCisgICAgICAgICAgICBhcyBhIHN0cmluZy4gIFRoZXNlIGNhbiBiZSBhbiBSRkMgMjgyMiBlbWFpbCBhZGRyZXNzLCBvcgorICAgICAgICAgICAgTm9uZSB0byBvbWl0IHRoZSAiUmVwbHktVG8iIGhlYWRlci4KKyAgICAgICAgICAgIGdldF9yZXBseV90b19yZWZjaGFuZ2UoKSBpcyB1c2VkIGZvciByZWZjaGFuZ2UgZW1haWxzOworICAgICAgICAgICAgZ2V0X3JlcGx5X3RvX2NvbW1pdCgpIGlzIHVzZWQgZm9yIGluZGl2aWR1YWwgY29tbWl0CisgICAgICAgICAgICBlbWFpbHMuCisKKyAgICBUaGV5IHNob3VsZCBhbHNvIGRlZmluZSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CisKKyAgICAgICAgYW5ub3VuY2Vfc2hvd19zaG9ydGxvZyAoYm9vbCkKKworICAgICAgICAgICAgVHJ1ZSBpZmYgYW5ub3VuY2UgZW1haWxzIHNob3VsZCBpbmNsdWRlIGEgc2hvcnRsb2cuCisKKyAgICAgICAgcmVmY2hhbmdlX3Nob3dsb2cgKGJvb2wpCisKKyAgICAgICAgICAgIFRydWUgaWZmIHJlZmNoYW5nZXMgZW1haWxzIHNob3VsZCBpbmNsdWRlIGEgZGV0YWlsZWQgbG9nLgorCisgICAgICAgIGRpZmZvcHRzIChsaXN0IG9mIHN0cmluZ3MpCisKKyAgICAgICAgICAgIFRoZSBvcHRpb25zIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB0byAnZ2l0IGRpZmYnIGZvciB0aGUKKyAgICAgICAgICAgIHN1bW1hcnkgZW1haWwuICBUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbGlzdCBvZiBzdHJpbmdzCisgICAgICAgICAgICByZXByZXNlbnRpbmcgd29yZHMgdG8gYmUgcGFzc2VkIHRvIHRoZSBjb21tYW5kLgorCisgICAgICAgIGxvZ29wdHMgKGxpc3Qgb2Ygc3RyaW5ncykKKworICAgICAgICAgICAgQW5hbG9nb3VzIHRvIGRpZmZvcHRzLCBidXQgY29udGFpbnMgb3B0aW9ucyBwYXNzZWQgdG8KKyAgICAgICAgICAgICdnaXQgbG9nJyB3aGVuIGdlbmVyYXRpbmcgdGhlIGRldGFpbGVkIGxvZyBmb3IgYSBzZXQgb2YKKyAgICAgICAgICAgIGNvbW1pdHMgKHNlZSByZWZjaGFuZ2Vfc2hvd2xvZykKKworICAgICIiIgorCisgICAgUkVQT19OQU1FX1JFID0gcmUuY29tcGlsZShyJ14oP1A8bmFtZT4uKz8pKD86XC5naXQpJCcpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3NlbnY9Tm9uZSk6CisgICAgICAgIHNlbGYub3NlbnYgPSBvc2VudiBvciBvcy5lbnZpcm9uCisgICAgICAgIHNlbGYuYW5ub3VuY2Vfc2hvd19zaG9ydGxvZyA9IEZhbHNlCisgICAgICAgIHNlbGYubWF4Y29tbWl0ZW1haWxzID0gNTAwCisgICAgICAgIHNlbGYuZGlmZm9wdHMgPSBbJy0tc3RhdCcsICctLXN1bW1hcnknLCAnLS1maW5kLWNvcGllcy1oYXJkZXInXQorICAgICAgICBzZWxmLmxvZ29wdHMgPSBbXQorICAgICAgICBzZWxmLnJlZmNoYW5nZV9zaG93bG9nID0gRmFsc2UKKworICAgICAgICBzZWxmLkNPTVBVVEVEX0tFWVMgPSBbCisgICAgICAgICAgICAnYWRtaW5pc3RyYXRvcicsCisgICAgICAgICAgICAnY2hhcnNldCcsCisgICAgICAgICAgICAnZW1haWxwcmVmaXgnLAorICAgICAgICAgICAgJ2Zyb21hZGRyJywKKyAgICAgICAgICAgICdwdXNoZXInLAorICAgICAgICAgICAgJ3B1c2hlcl9lbWFpbCcsCisgICAgICAgICAgICAncmVwb19wYXRoJywKKyAgICAgICAgICAgICdyZXBvX3Nob3J0bmFtZScsCisgICAgICAgICAgICAnc2VuZGVyJywKKyAgICAgICAgICAgIF0KKworICAgICAgICBzZWxmLl92YWx1ZXMgPSBOb25lCisKKyAgICBkZWYgZ2V0X3JlcG9fc2hvcnRuYW1lKHNlbGYpOgorICAgICAgICAiIiJVc2UgdGhlIGxhc3QgcGFydCBvZiB0aGUgcmVwbyBwYXRoLCB3aXRoICIuZ2l0IiBzdHJpcHBlZCBvZmYgaWYgcHJlc2VudC4iIiIKKworICAgICAgICBiYXNlbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUob3MucGF0aC5hYnNwYXRoKHNlbGYuZ2V0X3JlcG9fcGF0aCgpKSkKKyAgICAgICAgbSA9IHNlbGYuUkVQT19OQU1FX1JFLm1hdGNoKGJhc2VuYW1lKQorICAgICAgICBpZiBtOgorICAgICAgICAgICAgcmV0dXJuIG0uZ3JvdXAoJ25hbWUnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGJhc2VuYW1lCisKKyAgICBkZWYgZ2V0X3B1c2hlcihzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgZ2V0X3B1c2hlcl9lbWFpbChzZWxmKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBnZXRfYWRtaW5pc3RyYXRvcihzZWxmKToKKyAgICAgICAgcmV0dXJuICd0aGUgYWRtaW5pc3RyYXRvciBvZiB0aGlzIHJlcG9zaXRvcnknCisKKyAgICBkZWYgZ2V0X2VtYWlscHJlZml4KHNlbGYpOgorICAgICAgICByZXR1cm4gJycKKworICAgIGRlZiBnZXRfcmVwb19wYXRoKHNlbGYpOgorICAgICAgICBpZiByZWFkX2dpdF9vdXRwdXQoWydyZXYtcGFyc2UnLCAnLS1pcy1iYXJlLXJlcG9zaXRvcnknXSkgPT0gJ3RydWUnOgorICAgICAgICAgICAgcGF0aCA9IGdldF9naXRfZGlyKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhdGggPSByZWFkX2dpdF9vdXRwdXQoWydyZXYtcGFyc2UnLCAnLS1zaG93LXRvcGxldmVsJ10pCisgICAgICAgIHJldHVybiBvcy5wYXRoLmFic3BhdGgocGF0aCkKKworICAgIGRlZiBnZXRfY2hhcnNldChzZWxmKToKKyAgICAgICAgcmV0dXJuIENIQVJTRVQKKworICAgIGRlZiBnZXRfdmFsdWVzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gYSBkaWN0aW9uYXJ5IHtrZXl3b3JkIDogZXhwYW5zaW9ufSBmb3IgdGhpcyBFbnZpcm9ubWVudC4KKworICAgICAgICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgQ2hhbmdlLl9jb21wdXRlX3ZhbHVlcygpLiAgVGhlIGtleXMKKyAgICAgICAgaW4gdGhlIHJldHVybmVkIGRpY3Rpb25hcnkgYXJlIGF2YWlsYWJsZSB0byBiZSB1c2VkIGluIGFueSBvZgorICAgICAgICB0aGUgdGVtcGxhdGVzLiAgVGhlIGRpY3Rpb25hcnkgaXMgY3JlYXRlZCBieSBjYWxsaW5nCisgICAgICAgIHNlbGYuZ2V0X05BTUUoKSBmb3IgZWFjaCBvZiB0aGUgYXR0cmlidXRlcyBuYW1lZCBpbgorICAgICAgICBDT01QVVRFRF9LRVlTIGFuZCByZWNvcmRpbmcgdGhvc2UgdGhhdCBkbyBub3QgcmV0dXJuIE5vbmUuCisgICAgICAgIFRoZSByZXR1cm4gdmFsdWUgaXMgYWx3YXlzIGEgbmV3IGRpY3Rpb25hcnkuIiIiCisKKyAgICAgICAgaWYgc2VsZi5fdmFsdWVzIGlzIE5vbmU6CisgICAgICAgICAgICB2YWx1ZXMgPSB7fQorCisgICAgICAgICAgICBmb3Iga2V5IGluIHNlbGYuQ09NUFVURURfS0VZUzoKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldGF0dHIoc2VsZiwgJ2dldF8lcycgJSAoa2V5LCkpKCkKKyAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPSB2YWx1ZQorCisgICAgICAgICAgICBzZWxmLl92YWx1ZXMgPSB2YWx1ZXMKKworICAgICAgICByZXR1cm4gc2VsZi5fdmFsdWVzLmNvcHkoKQorCisgICAgZGVmIGdldF9yZWZjaGFuZ2VfcmVjaXBpZW50cyhzZWxmLCByZWZjaGFuZ2UpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHJlY2lwaWVudHMgZm9yIG5vdGlmaWNhdGlvbnMgYWJvdXQgcmVmY2hhbmdlLgorCisgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMgdG8gd2hpY2ggbm90aWZpY2F0aW9ucworICAgICAgICBhYm91dCB0aGUgc3BlY2lmaWVkIFJlZmVyZW5jZUNoYW5nZSBzaG91bGQgYmUgc2VudC4iIiIKKworICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIGRlZiBnZXRfYW5ub3VuY2VfcmVjaXBpZW50cyhzZWxmLCBhbm5vdGF0ZWRfdGFnX2NoYW5nZSk6CisgICAgICAgICIiIlJldHVybiB0aGUgcmVjaXBpZW50cyBmb3Igbm90aWZpY2F0aW9ucyBhYm91dCBhbm5vdGF0ZWRfdGFnX2NoYW5nZS4KKworICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzIHRvIHdoaWNoIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgYWJvdXQgdGhlIHNwZWNpZmllZCBBbm5vdGF0ZWRUYWdDaGFuZ2Ugc2hvdWxkIGJlIHNlbnQuIiIiCisKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgZ2V0X3JlcGx5X3RvX3JlZmNoYW5nZShzZWxmLCByZWZjaGFuZ2UpOgorICAgICAgICByZXR1cm4gc2VsZi5nZXRfcHVzaGVyX2VtYWlsKCkKKworICAgIGRlZiBnZXRfcmV2aXNpb25fcmVjaXBpZW50cyhzZWxmLCByZXZpc2lvbik6CisgICAgICAgICIiIlJldHVybiB0aGUgcmVjaXBpZW50cyBmb3IgbWVzc2FnZXMgYWJvdXQgcmV2aXNpb24uCisKKyAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGVtYWlsIGFkZHJlc3NlcyB0byB3aGljaCBub3RpZmljYXRpb25zCisgICAgICAgIGFib3V0IHRoZSBzcGVjaWZpZWQgUmV2aXNpb24gc2hvdWxkIGJlIHNlbnQuICBUaGlzIG1ldGhvZAorICAgICAgICBjb3VsZCBiZSBvdmVycmlkZGVuLCBmb3IgZXhhbXBsZSwgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlCisgICAgICAgIGNvbnRlbnRzIG9mIHRoZSByZXZpc2lvbiB3aGVuIGRlY2lkaW5nIHdob20gdG8gbm90aWZ5IGFib3V0CisgICAgICAgIGl0LiAgRm9yIGV4YW1wbGUsIHRoZXJlIGNvdWxkIGJlIGEgc2NoZW1lIGZvciB1c2VycyB0byBleHByZXNzCisgICAgICAgIGludGVyZXN0IGluIHBhcnRpY3VsYXIgZmlsZXMgb3Igc3ViZGlyZWN0b3JpZXMsIGFuZCBvbmx5CisgICAgICAgIHJlY2VpdmUgbm90aWZpY2F0aW9uIGVtYWlscyBmb3IgcmV2aXNpb25zIHRoYXQgYWZmZWN0aW5nIHRob3NlCisgICAgICAgIGZpbGVzLiIiIgorCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisgICAgZGVmIGdldF9yZXBseV90b19jb21taXQoc2VsZiwgcmV2aXNpb24pOgorICAgICAgICByZXR1cm4gcmV2aXNpb24uYXV0aG9yCisKKyAgICBkZWYgZmlsdGVyX2JvZHkoc2VsZiwgbGluZXMpOgorICAgICAgICAiIiJGaWx0ZXIgdGhlIGxpbmVzIGludGVuZGVkIGZvciBhbiBlbWFpbCBib2R5LgorCisgICAgICAgIGxpbmVzIGlzIGFuIGl0ZXJhYmxlIG92ZXIgdGhlIGxpbmVzIHRoYXQgd291bGQgZ28gaW50byB0aGUKKyAgICAgICAgZW1haWwgYm9keS4gIEZpbHRlciBpdCAoZS5nLiwgbGltaXQgdGhlIG51bWJlciBvZiBsaW5lcywgdGhlCisgICAgICAgIGxpbmUgbGVuZ3RoLCBjaGFyYWN0ZXIgc2V0LCBldGMuKSwgcmV0dXJuaW5nIGFub3RoZXIgaXRlcmFibGUuCisgICAgICAgIFNlZSBGaWx0ZXJMaW5lc0Vudmlyb25tZW50TWl4aW4gYW5kIE1heGxpbmVzRW52aXJvbm1lbnRNaXhpbgorICAgICAgICBmb3IgY2xhc3NlcyBpbXBsZW1lbnRpbmcgdGhpcyBmdW5jdGlvbmFsaXR5LiIiIgorCisgICAgICAgIHJldHVybiBsaW5lcworCisKK2NsYXNzIENvbmZpZ0Vudmlyb25tZW50TWl4aW4oRW52aXJvbm1lbnQpOgorICAgICIiIkEgbWl4aW4gdGhhdCBzZXRzIHNlbGYuY29uZmlnIHRvIGl0cyBjb25zdHJ1Y3RvcidzIGNvbmZpZyBhcmd1bWVudC4KKworICAgIFRoaXMgY2xhc3MncyBjb25zdHJ1Y3RvciBjb25zdW1lcyB0aGUgImNvbmZpZyIgYXJndW1lbnQuCisKKyAgICBNaXhpbnMgdGhhdCBuZWVkIHRvIGluc3BlY3QgdGhlIGNvbmZpZyBzaG91bGQgaW5oZXJpdCBmcm9tIHRoaXMKKyAgICBjbGFzcyAoMSkgdG8gbWFrZSBzdXJlIHRoYXQgImNvbmZpZyIgaXMgc3RpbGwgaW4gdGhlIGNvbnN0cnVjdG9yCisgICAgYXJndW1lbnRzIHdpdGggaXRzIG93biBjb25zdHJ1Y3RvciBydW5zIGFuZC9vciAoMikgdG8gYmUgc3VyZSB0aGF0CisgICAgc2VsZi5jb25maWcgaXMgc2V0IGFmdGVyIGNvbnN0cnVjdGlvbi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcsICoqa3cpOgorICAgICAgICBzdXBlcihDb25maWdFbnZpcm9ubWVudE1peGluLCBzZWxmKS5fX2luaXRfXygqKmt3KQorICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZworCisKK2NsYXNzIENvbmZpZ09wdGlvbnNFbnZpcm9ubWVudE1peGluKENvbmZpZ0Vudmlyb25tZW50TWl4aW4pOgorICAgICIiIkFuIEVudmlyb25tZW50IHRoYXQgcmVhZHMgbW9zdCBvZiBpdHMgaW5mb3JtYXRpb24gZnJvbSAiZ2l0IGNvbmZpZyIuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCAqKmt3KToKKyAgICAgICAgc3VwZXIoQ29uZmlnT3B0aW9uc0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLl9faW5pdF9fKAorICAgICAgICAgICAgY29uZmlnPWNvbmZpZywgKiprdworICAgICAgICAgICAgKQorCisgICAgICAgIHNlbGYuYW5ub3VuY2Vfc2hvd19zaG9ydGxvZyA9IGNvbmZpZy5nZXRfYm9vbCgKKyAgICAgICAgICAgICdhbm5vdW5jZXNob3J0bG9nJywgZGVmYXVsdD1zZWxmLmFubm91bmNlX3Nob3dfc2hvcnRsb2cKKyAgICAgICAgICAgICkKKworICAgICAgICBzZWxmLnJlZmNoYW5nZV9zaG93bG9nID0gY29uZmlnLmdldF9ib29sKAorICAgICAgICAgICAgJ3JlZmNoYW5nZXNob3dsb2cnLCBkZWZhdWx0PXNlbGYucmVmY2hhbmdlX3Nob3dsb2cKKyAgICAgICAgICAgICkKKworICAgICAgICBtYXhjb21taXRlbWFpbHMgPSBjb25maWcuZ2V0KCdtYXhjb21taXRlbWFpbHMnKQorICAgICAgICBpZiBtYXhjb21taXRlbWFpbHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5tYXhjb21taXRlbWFpbHMgPSBpbnQobWF4Y29tbWl0ZW1haWxzKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgJyoqKiBNYWxmb3JtZWQgdmFsdWUgZm9yIG11bHRpbWFpbGhvb2subWF4Q29tbWl0RW1haWxzOiAlc1xuJyAlIG1heGNvbW1pdGVtYWlscworICAgICAgICAgICAgICAgICAgICArICcqKiogRXhwZWN0ZWQgYSBudW1iZXIuICBJZ25vcmluZy5cbicKKyAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGRpZmZvcHRzID0gY29uZmlnLmdldCgnZGlmZm9wdHMnKQorICAgICAgICBpZiBkaWZmb3B0cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuZGlmZm9wdHMgPSBzaGxleC5zcGxpdChkaWZmb3B0cykKKworICAgICAgICBsb2dvcHRzID0gY29uZmlnLmdldCgnbG9nb3B0cycpCisgICAgICAgIGlmIGxvZ29wdHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ29wdHMgPSBzaGxleC5zcGxpdChsb2dvcHRzKQorCisgICAgICAgIHJlcGx5X3RvID0gY29uZmlnLmdldCgncmVwbHlUbycpCisgICAgICAgIHNlbGYuX19yZXBseV90b19yZWZjaGFuZ2UgPSBjb25maWcuZ2V0KCdyZXBseVRvUmVmY2hhbmdlJywgZGVmYXVsdD1yZXBseV90bykKKyAgICAgICAgaWYgKAorICAgICAgICAgICAgc2VsZi5fX3JlcGx5X3RvX3JlZmNoYW5nZSBpcyBub3QgTm9uZQorICAgICAgICAgICAgYW5kIHNlbGYuX19yZXBseV90b19yZWZjaGFuZ2UubG93ZXIoKSA9PSAnYXV0aG9yJworICAgICAgICAgICAgKToKKyAgICAgICAgICAgIHJhaXNlIENvbmZpZ3VyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJyJhdXRob3IiIGlzIG5vdCBhbiBhbGxvd2VkIHNldHRpbmcgZm9yIHJlcGx5VG9SZWZjaGFuZ2UnCisgICAgICAgICAgICAgICAgKQorICAgICAgICBzZWxmLl9fcmVwbHlfdG9fY29tbWl0ID0gY29uZmlnLmdldCgncmVwbHlUb0NvbW1pdCcsIGRlZmF1bHQ9cmVwbHlfdG8pCisKKyAgICBkZWYgZ2V0X2FkbWluaXN0cmF0b3Ioc2VsZik6CisgICAgICAgIHJldHVybiAoCisgICAgICAgICAgICBzZWxmLmNvbmZpZy5nZXQoJ2FkbWluaXN0cmF0b3InKQorICAgICAgICAgICAgb3Igc2VsZi5nZXRfc2VuZGVyKCkKKyAgICAgICAgICAgIG9yIHN1cGVyKENvbmZpZ09wdGlvbnNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5nZXRfYWRtaW5pc3RyYXRvcigpCisgICAgICAgICAgICApCisKKyAgICBkZWYgZ2V0X3JlcG9fc2hvcnRuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgc2VsZi5jb25maWcuZ2V0KCdyZXBvbmFtZScpCisgICAgICAgICAgICBvciBzdXBlcihDb25maWdPcHRpb25zRW52aXJvbm1lbnRNaXhpbiwgc2VsZikuZ2V0X3JlcG9fc2hvcnRuYW1lKCkKKyAgICAgICAgICAgICkKKworICAgIGRlZiBnZXRfZW1haWxwcmVmaXgoc2VsZik6CisgICAgICAgIGVtYWlscHJlZml4ID0gc2VsZi5jb25maWcuZ2V0KCdlbWFpbHByZWZpeCcpCisgICAgICAgIGlmIGVtYWlscHJlZml4IGFuZCBlbWFpbHByZWZpeC5zdHJpcCgpOgorICAgICAgICAgICAgcmV0dXJuIGVtYWlscHJlZml4LnN0cmlwKCkgKyAnICcKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAnWyVzXSAnICUgKHNlbGYuZ2V0X3JlcG9fc2hvcnRuYW1lKCksKQorCisgICAgZGVmIGdldF9zZW5kZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmNvbmZpZy5nZXQoJ2VudmVsb3Blc2VuZGVyJykKKworICAgIGRlZiBnZXRfZnJvbWFkZHIoc2VsZik6CisgICAgICAgIGZyb21hZGRyID0gc2VsZi5jb25maWcuZ2V0KCdmcm9tJykKKyAgICAgICAgaWYgZnJvbWFkZHI6CisgICAgICAgICAgICByZXR1cm4gZnJvbWFkZHIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbmZpZyA9IENvbmZpZygndXNlcicpCisgICAgICAgICAgICBmcm9tbmFtZSA9IGNvbmZpZy5nZXQoJ25hbWUnLCBkZWZhdWx0PScnKQorICAgICAgICAgICAgZnJvbWVtYWlsID0gY29uZmlnLmdldCgnZW1haWwnLCBkZWZhdWx0PScnKQorICAgICAgICAgICAgaWYgZnJvbWVtYWlsOgorICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXRhZGRyKFtmcm9tbmFtZSwgZnJvbWVtYWlsXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X3NlbmRlcigpCisKKyAgICBkZWYgZ2V0X3JlcGx5X3RvX3JlZmNoYW5nZShzZWxmLCByZWZjaGFuZ2UpOgorICAgICAgICBpZiBzZWxmLl9fcmVwbHlfdG9fcmVmY2hhbmdlIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoQ29uZmlnT3B0aW9uc0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLmdldF9yZXBseV90b19yZWZjaGFuZ2UocmVmY2hhbmdlKQorICAgICAgICBlbGlmIHNlbGYuX19yZXBseV90b19yZWZjaGFuZ2UubG93ZXIoKSA9PSAncHVzaGVyJzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdldF9wdXNoZXJfZW1haWwoKQorICAgICAgICBlbGlmIHNlbGYuX19yZXBseV90b19yZWZjaGFuZ2UubG93ZXIoKSA9PSAnbm9uZSc6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19yZXBseV90b19yZWZjaGFuZ2UKKworICAgIGRlZiBnZXRfcmVwbHlfdG9fY29tbWl0KHNlbGYsIHJldmlzaW9uKToKKyAgICAgICAgaWYgc2VsZi5fX3JlcGx5X3RvX2NvbW1pdCBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKENvbmZpZ09wdGlvbnNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5nZXRfcmVwbHlfdG9fY29tbWl0KHJldmlzaW9uKQorICAgICAgICBlbGlmIHNlbGYuX19yZXBseV90b19jb21taXQubG93ZXIoKSA9PSAnYXV0aG9yJzoKKyAgICAgICAgICAgIHJldHVybiByZXZpc2lvbi5nZXRfYXV0aG9yKCkKKyAgICAgICAgZWxpZiBzZWxmLl9fcmVwbHlfdG9fY29tbWl0Lmxvd2VyKCkgPT0gJ3B1c2hlcic6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRfcHVzaGVyX2VtYWlsKCkKKyAgICAgICAgZWxpZiBzZWxmLl9fcmVwbHlfdG9fY29tbWl0Lmxvd2VyKCkgPT0gJ25vbmUnOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fcmVwbHlfdG9fY29tbWl0CisKKworY2xhc3MgRmlsdGVyTGluZXNFbnZpcm9ubWVudE1peGluKEVudmlyb25tZW50KToKKyAgICAiIiJIYW5kbGUgZW5jb2RpbmcgYW5kIG1heGltdW0gbGluZSBsZW5ndGggb2YgYm9keSBsaW5lcy4KKworICAgICAgICBlbWFpbG1heGxpbmVsZW5ndGggKGludCBvciBOb25lKQorCisgICAgICAgICAgICBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW55IHNpbmdsZSBsaW5lIGluIHRoZSBlbWFpbCBib2R5LgorICAgICAgICAgICAgTG9uZ2VyIGxpbmVzIGFyZSB0cnVuY2F0ZWQgYXQgdGhhdCBsZW5ndGggd2l0aCAnIFsuLi5dJworICAgICAgICAgICAgYXBwZW5kZWQuCisKKyAgICAgICAgc3RyaWN0X3V0ZjggKGJvb2wpCisKKyAgICAgICAgICAgIElmIHRoaXMgZmllbGQgaXMgc2V0IHRvIFRydWUsIHRoZW4gdGhlIGVtYWlsIGJvZHkgdGV4dCBpcworICAgICAgICAgICAgZXhwZWN0ZWQgdG8gYmUgVVRGLTguICBBbnkgaW52YWxpZCBjaGFyYWN0ZXJzIGFyZQorICAgICAgICAgICAgY29udmVydGVkIHRvIFUrRkZGRCwgdGhlIFVuaWNvZGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyCisgICAgICAgICAgICAoZW5jb2RlZCBhcyBVVEYtOCwgb2YgY291cnNlKS4KKworICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmljdF91dGY4PVRydWUsIGVtYWlsbWF4bGluZWxlbmd0aD01MDAsICoqa3cpOgorICAgICAgICBzdXBlcihGaWx0ZXJMaW5lc0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLl9faW5pdF9fKCoqa3cpCisgICAgICAgIHNlbGYuX19zdHJpY3RfdXRmOCA9IHN0cmljdF91dGY4CisgICAgICAgIHNlbGYuX19lbWFpbG1heGxpbmVsZW5ndGggPSBlbWFpbG1heGxpbmVsZW5ndGgKKworICAgIGRlZiBmaWx0ZXJfYm9keShzZWxmLCBsaW5lcyk6CisgICAgICAgIGxpbmVzID0gc3VwZXIoRmlsdGVyTGluZXNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5maWx0ZXJfYm9keShsaW5lcykKKyAgICAgICAgaWYgc2VsZi5fX3N0cmljdF91dGY4OgorICAgICAgICAgICAgbGluZXMgPSAobGluZS5kZWNvZGUoRU5DT0RJTkcsICdyZXBsYWNlJykgZm9yIGxpbmUgaW4gbGluZXMpCisgICAgICAgICAgICAjIExpbWl0IHRoZSBsaW5lIGxlbmd0aCBpbiBVbmljb2RlLXNwYWNlIHRvIGF2b2lkCisgICAgICAgICAgICAjIHNwbGl0dGluZyBjaGFyYWN0ZXJzOgorICAgICAgICAgICAgaWYgc2VsZi5fX2VtYWlsbWF4bGluZWxlbmd0aDoKKyAgICAgICAgICAgICAgICBsaW5lcyA9IGxpbWl0X2xpbmVsZW5ndGgobGluZXMsIHNlbGYuX19lbWFpbG1heGxpbmVsZW5ndGgpCisgICAgICAgICAgICBsaW5lcyA9IChsaW5lLmVuY29kZShFTkNPRElORywgJ3JlcGxhY2UnKSBmb3IgbGluZSBpbiBsaW5lcykKKyAgICAgICAgZWxpZiBzZWxmLl9fZW1haWxtYXhsaW5lbGVuZ3RoOgorICAgICAgICAgICAgbGluZXMgPSBsaW1pdF9saW5lbGVuZ3RoKGxpbmVzLCBzZWxmLl9fZW1haWxtYXhsaW5lbGVuZ3RoKQorCisgICAgICAgIHJldHVybiBsaW5lcworCisKK2NsYXNzIENvbmZpZ0ZpbHRlckxpbmVzRW52aXJvbm1lbnRNaXhpbigKKyAgICBDb25maWdFbnZpcm9ubWVudE1peGluLAorICAgIEZpbHRlckxpbmVzRW52aXJvbm1lbnRNaXhpbiwKKyAgICApOgorICAgICIiIkhhbmRsZSBlbmNvZGluZyBhbmQgbWF4aW11bSBsaW5lIGxlbmd0aCBiYXNlZCBvbiBjb25maWcuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCAqKmt3KToKKyAgICAgICAgc3RyaWN0X3V0ZjggPSBjb25maWcuZ2V0X2Jvb2woJ2VtYWlsc3RyaWN0dXRmOCcsIGRlZmF1bHQ9Tm9uZSkKKyAgICAgICAgaWYgc3RyaWN0X3V0ZjggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBrd1snc3RyaWN0X3V0ZjgnXSA9IHN0cmljdF91dGY4CisKKyAgICAgICAgZW1haWxtYXhsaW5lbGVuZ3RoID0gY29uZmlnLmdldCgnZW1haWxtYXhsaW5lbGVuZ3RoJykKKyAgICAgICAgaWYgZW1haWxtYXhsaW5lbGVuZ3RoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAga3dbJ2VtYWlsbWF4bGluZWxlbmd0aCddID0gaW50KGVtYWlsbWF4bGluZWxlbmd0aCkKKworICAgICAgICBzdXBlcihDb25maWdGaWx0ZXJMaW5lc0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLl9faW5pdF9fKAorICAgICAgICAgICAgY29uZmlnPWNvbmZpZywgKiprdworICAgICAgICAgICAgKQorCisKK2NsYXNzIE1heGxpbmVzRW52aXJvbm1lbnRNaXhpbihFbnZpcm9ubWVudCk6CisgICAgIiIiTGltaXQgdGhlIGVtYWlsIGJvZHkgdG8gYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGxpbmVzLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVtYWlsbWF4bGluZXMsICoqa3cpOgorICAgICAgICBzdXBlcihNYXhsaW5lc0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLl9faW5pdF9fKCoqa3cpCisgICAgICAgIHNlbGYuX19lbWFpbG1heGxpbmVzID0gZW1haWxtYXhsaW5lcworCisgICAgZGVmIGZpbHRlcl9ib2R5KHNlbGYsIGxpbmVzKToKKyAgICAgICAgbGluZXMgPSBzdXBlcihNYXhsaW5lc0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLmZpbHRlcl9ib2R5KGxpbmVzKQorICAgICAgICBpZiBzZWxmLl9fZW1haWxtYXhsaW5lczoKKyAgICAgICAgICAgIGxpbmVzID0gbGltaXRfbGluZXMobGluZXMsIHNlbGYuX19lbWFpbG1heGxpbmVzKQorICAgICAgICByZXR1cm4gbGluZXMKKworCitjbGFzcyBDb25maWdNYXhsaW5lc0Vudmlyb25tZW50TWl4aW4oCisgICAgQ29uZmlnRW52aXJvbm1lbnRNaXhpbiwKKyAgICBNYXhsaW5lc0Vudmlyb25tZW50TWl4aW4sCisgICAgKToKKyAgICAiIiJMaW1pdCB0aGUgZW1haWwgYm9keSB0byB0aGUgbnVtYmVyIG9mIGxpbmVzIHNwZWNpZmllZCBpbiBjb25maWcuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCAqKmt3KToKKyAgICAgICAgZW1haWxtYXhsaW5lcyA9IGludChjb25maWcuZ2V0KCdlbWFpbG1heGxpbmVzJywgZGVmYXVsdD0nMCcpKQorICAgICAgICBzdXBlcihDb25maWdNYXhsaW5lc0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLl9faW5pdF9fKAorICAgICAgICAgICAgY29uZmlnPWNvbmZpZywKKyAgICAgICAgICAgIGVtYWlsbWF4bGluZXM9ZW1haWxtYXhsaW5lcywKKyAgICAgICAgICAgICoqa3cKKyAgICAgICAgICAgICkKKworCitjbGFzcyBQdXNoZXJEb21haW5FbnZpcm9ubWVudE1peGluKENvbmZpZ0Vudmlyb25tZW50TWl4aW4pOgorICAgICIiIkRlZHVjZSBwdXNoZXJfZW1haWwgZnJvbSBwdXNoZXIgYnkgYXBwZW5kaW5nIGFuIGVtYWlsZG9tYWluLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3cpOgorICAgICAgICBzdXBlcihQdXNoZXJEb21haW5FbnZpcm9ubWVudE1peGluLCBzZWxmKS5fX2luaXRfXygqKmt3KQorICAgICAgICBzZWxmLl9fZW1haWxkb21haW4gPSBzZWxmLmNvbmZpZy5nZXQoJ2VtYWlsZG9tYWluJykKKworICAgIGRlZiBnZXRfcHVzaGVyX2VtYWlsKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9fZW1haWxkb21haW46CisgICAgICAgICAgICAjIERlcml2ZSB0aGUgcHVzaGVyJ3MgZnVsbCBlbWFpbCBhZGRyZXNzIGluIHRoZSBkZWZhdWx0IHdheToKKyAgICAgICAgICAgIHJldHVybiAnJXNAJXMnICUgKHNlbGYuZ2V0X3B1c2hlcigpLCBzZWxmLl9fZW1haWxkb21haW4pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoUHVzaGVyRG9tYWluRW52aXJvbm1lbnRNaXhpbiwgc2VsZikuZ2V0X3B1c2hlcl9lbWFpbCgpCisKKworY2xhc3MgU3RhdGljUmVjaXBpZW50c0Vudmlyb25tZW50TWl4aW4oRW52aXJvbm1lbnQpOgorICAgICIiIlNldCByZWNpcGllbnRzIHN0YXRpY2FsbHkgYmFzZWQgb24gY29uc3RydWN0b3IgcGFyYW1ldGVycy4iIiIKKworICAgIGRlZiBfX2luaXRfXygKKyAgICAgICAgc2VsZiwKKyAgICAgICAgcmVmY2hhbmdlX3JlY2lwaWVudHMsIGFubm91bmNlX3JlY2lwaWVudHMsIHJldmlzaW9uX3JlY2lwaWVudHMsCisgICAgICAgICoqa3cKKyAgICAgICAgKToKKyAgICAgICAgc3VwZXIoU3RhdGljUmVjaXBpZW50c0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLl9faW5pdF9fKCoqa3cpCisKKyAgICAgICAgIyBUaGUgcmVjaXBpZW50cyBmb3IgdmFyaW91cyB0eXBlcyBvZiBub3RpZmljYXRpb24gZW1haWxzLCBhcworICAgICAgICAjIFJGQyAyODIyIGVtYWlsIGFkZHJlc3NlcyBzZXBhcmF0ZWQgYnkgY29tbWFzIChvciB0aGUgZW1wdHkKKyAgICAgICAgIyBzdHJpbmcgaWYgbm8gcmVjaXBpZW50cyBhcmUgY29uZmlndXJlZCkuICBBbHRob3VnaCB0aGVyZSBpcworICAgICAgICAjIGEgbWVjaGFuaXNtIHRvIGNob29zZSB0aGUgcmVjaXBpZW50IGxpc3RzIGJhc2VkIG9uIG9uIHRoZQorICAgICAgICAjIGFjdHVhbCAqY29udGVudHMqIG9mIHRoZSBjaGFuZ2UgYmVpbmcgcmVwb3J0ZWQsIHdlIG9ubHkKKyAgICAgICAgIyBjaG9vc2UgYmFzZWQgb24gdGhlICp0eXBlKiBvZiB0aGUgY2hhbmdlLiAgVGhlcmVmb3JlIHdlIGNhbgorICAgICAgICAjIGNvbXB1dGUgdGhlbSBvbmNlIGFuZCBmb3IgYWxsOgorICAgICAgICBzZWxmLl9fcmVmY2hhbmdlX3JlY2lwaWVudHMgPSByZWZjaGFuZ2VfcmVjaXBpZW50cworICAgICAgICBzZWxmLl9fYW5ub3VuY2VfcmVjaXBpZW50cyA9IGFubm91bmNlX3JlY2lwaWVudHMKKyAgICAgICAgc2VsZi5fX3JldmlzaW9uX3JlY2lwaWVudHMgPSByZXZpc2lvbl9yZWNpcGllbnRzCisKKyAgICBkZWYgZ2V0X3JlZmNoYW5nZV9yZWNpcGllbnRzKHNlbGYsIHJlZmNoYW5nZSk6CisgICAgICAgIHJldHVybiBzZWxmLl9fcmVmY2hhbmdlX3JlY2lwaWVudHMKKworICAgIGRlZiBnZXRfYW5ub3VuY2VfcmVjaXBpZW50cyhzZWxmLCBhbm5vdGF0ZWRfdGFnX2NoYW5nZSk6CisgICAgICAgIHJldHVybiBzZWxmLl9fYW5ub3VuY2VfcmVjaXBpZW50cworCisgICAgZGVmIGdldF9yZXZpc2lvbl9yZWNpcGllbnRzKHNlbGYsIHJldmlzaW9uKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX19yZXZpc2lvbl9yZWNpcGllbnRzCisKKworY2xhc3MgQ29uZmlnUmVjaXBpZW50c0Vudmlyb25tZW50TWl4aW4oCisgICAgQ29uZmlnRW52aXJvbm1lbnRNaXhpbiwKKyAgICBTdGF0aWNSZWNpcGllbnRzRW52aXJvbm1lbnRNaXhpbgorICAgICk6CisgICAgIiIiRGV0ZXJtaW5lIHJlY2lwaWVudHMgc3RhdGljYWxseSBiYXNlZCBvbiBjb25maWcuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCAqKmt3KToKKyAgICAgICAgc3VwZXIoQ29uZmlnUmVjaXBpZW50c0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLl9faW5pdF9fKAorICAgICAgICAgICAgY29uZmlnPWNvbmZpZywKKyAgICAgICAgICAgIHJlZmNoYW5nZV9yZWNpcGllbnRzPXNlbGYuX2dldF9yZWNpcGllbnRzKAorICAgICAgICAgICAgICAgIGNvbmZpZywgJ3JlZmNoYW5nZWxpc3QnLCAnbWFpbGluZ2xpc3QnLAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICBhbm5vdW5jZV9yZWNpcGllbnRzPXNlbGYuX2dldF9yZWNpcGllbnRzKAorICAgICAgICAgICAgICAgIGNvbmZpZywgJ2Fubm91bmNlbGlzdCcsICdyZWZjaGFuZ2VsaXN0JywgJ21haWxpbmdsaXN0JywKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgcmV2aXNpb25fcmVjaXBpZW50cz1zZWxmLl9nZXRfcmVjaXBpZW50cygKKyAgICAgICAgICAgICAgICBjb25maWcsICdjb21taXRsaXN0JywgJ21haWxpbmdsaXN0JywKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKiprdworICAgICAgICAgICAgKQorCisgICAgZGVmIF9nZXRfcmVjaXBpZW50cyhzZWxmLCBjb25maWcsICpuYW1lcyk6CisgICAgICAgICIiIlJldHVybiB0aGUgcmVjaXBpZW50cyBmb3IgYSBwYXJ0aWN1bGFyIHR5cGUgb2YgbWVzc2FnZS4KKworICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzIHRvIHdoaWNoIGEgcGFydGljdWxhciB0eXBlCisgICAgICAgIG9mIG5vdGlmaWNhdGlvbiBlbWFpbCBzaG91bGQgYmUgc2VudCwgYnkgbG9va2luZyBhdCB0aGUgY29uZmlnCisgICAgICAgIHZhbHVlIGZvciAibXVsdGltYWlsaG9vay4kbmFtZSIgZm9yIGVhY2ggb2YgbmFtZXMuICBVc2UgdGhlCisgICAgICAgIHZhbHVlIGZyb20gdGhlIGZpcnN0IG5hbWUgdGhhdCBpcyBjb25maWd1cmVkLiAgVGhlIHJldHVybgorICAgICAgICB2YWx1ZSBpcyBhIChwb3NzaWJseSBlbXB0eSkgc3RyaW5nIGNvbnRhaW5pbmcgUkZDIDI4MjIgZW1haWwKKyAgICAgICAgYWRkcmVzc2VzIHNlcGFyYXRlZCBieSBjb21tYXMuICBJZiBubyBjb25maWd1cmF0aW9uIGNvdWxkIGJlCisgICAgICAgIGZvdW5kLCByYWlzZSBhIENvbmZpZ3VyYXRpb25FeGNlcHRpb24uIiIiCisKKyAgICAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CisgICAgICAgICAgICByZXR2YWwgPSBjb25maWcuZ2V0X3JlY2lwaWVudHMobmFtZSkKKyAgICAgICAgICAgIGlmIHJldHZhbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0dmFsCisgICAgICAgIGlmIGxlbihuYW1lcykgPT0gMToKKyAgICAgICAgICAgIGhpbnQgPSAnUGxlYXNlIHNldCAiJXMuJXMiJyAlIChjb25maWcuc2VjdGlvbiwgbmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGhpbnQgPSAoCisgICAgICAgICAgICAgICAgJ1BsZWFzZSBzZXQgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gICAgIiVzIicKKyAgICAgICAgICAgICAgICAlICgnIlxuICAgICInLmpvaW4oJyVzLiVzJyAlIChjb25maWcuc2VjdGlvbiwgbmFtZSkgZm9yIG5hbWUgaW4gbmFtZXMpKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICByYWlzZSBDb25maWd1cmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgJ1RoZSBsaXN0IG9mIHJlY2lwaWVudHMgZm9yICVzIGlzIG5vdCBjb25maWd1cmVkLlxuJXMnICUgKG5hbWVzWzBdLCBoaW50KQorICAgICAgICAgICAgKQorCisKK2NsYXNzIFByb2plY3RkZXNjRW52aXJvbm1lbnRNaXhpbihFbnZpcm9ubWVudCk6CisgICAgIiIiTWFrZSBhICJwcm9qZWN0ZGVzYyIgdmFsdWUgYXZhaWxhYmxlIGZvciB0ZW1wbGF0ZXMuCisKKyAgICBCeSBkZWZhdWx0LCBpdCBpcyBzZXQgdG8gdGhlIGZpcnN0IGxpbmUgb2YgJEdJVF9ESVIvZGVzY3JpcHRpb24KKyAgICAoaWYgdGhhdCBmaWxlIGlzIHByZXNlbnQgYW5kIGFwcGVhcnMgdG8gYmUgc2V0IG1lYW5pbmdmdWxseSkuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiprdyk6CisgICAgICAgIHN1cGVyKFByb2plY3RkZXNjRW52aXJvbm1lbnRNaXhpbiwgc2VsZikuX19pbml0X18oKiprdykKKyAgICAgICAgc2VsZi5DT01QVVRFRF9LRVlTICs9IFsncHJvamVjdGRlc2MnXQorCisgICAgZGVmIGdldF9wcm9qZWN0ZGVzYyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGEgb25lLWxpbmUgZGVzY3JpcGl0aW9uIG9mIHRoZSBwcm9qZWN0LiIiIgorCisgICAgICAgIGdpdF9kaXIgPSBnZXRfZ2l0X2RpcigpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHByb2plY3RkZXNjID0gb3Blbihvcy5wYXRoLmpvaW4oZ2l0X2RpciwgJ2Rlc2NyaXB0aW9uJykpLnJlYWRsaW5lKCkuc3RyaXAoKQorICAgICAgICAgICAgaWYgcHJvamVjdGRlc2MgYW5kIG5vdCBwcm9qZWN0ZGVzYy5zdGFydHN3aXRoKCdVbm5hbWVkIHJlcG9zaXRvcnknKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvamVjdGRlc2MKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgcmV0dXJuICdVTk5BTUVEIFBST0pFQ1QnCisKKworY2xhc3MgR2VuZXJpY0Vudmlyb25tZW50TWl4aW4oRW52aXJvbm1lbnQpOgorICAgIGRlZiBnZXRfcHVzaGVyKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5vc2Vudi5nZXQoJ1VTRVInLCAndW5rbm93biB1c2VyJykKKworCitjbGFzcyBHZW5lcmljRW52aXJvbm1lbnQoCisgICAgUHJvamVjdGRlc2NFbnZpcm9ubWVudE1peGluLAorICAgIENvbmZpZ01heGxpbmVzRW52aXJvbm1lbnRNaXhpbiwKKyAgICBDb25maWdGaWx0ZXJMaW5lc0Vudmlyb25tZW50TWl4aW4sCisgICAgQ29uZmlnUmVjaXBpZW50c0Vudmlyb25tZW50TWl4aW4sCisgICAgUHVzaGVyRG9tYWluRW52aXJvbm1lbnRNaXhpbiwKKyAgICBDb25maWdPcHRpb25zRW52aXJvbm1lbnRNaXhpbiwKKyAgICBHZW5lcmljRW52aXJvbm1lbnRNaXhpbiwKKyAgICBFbnZpcm9ubWVudCwKKyAgICApOgorICAgIHBhc3MKKworCitjbGFzcyBHaXRvbGl0ZUVudmlyb25tZW50TWl4aW4oRW52aXJvbm1lbnQpOgorICAgIGRlZiBnZXRfcmVwb19zaG9ydG5hbWUoc2VsZik6CisgICAgICAgICMgVGhlIGdpdG9saXRlIGVudmlyb25tZW50IHZhcmlhYmxlICRHTF9SRVBPIGlzIGEgcHJldHR5IGdvb2QKKyAgICAgICAgIyByZXBvX3Nob3J0bmFtZSAodGhvdWdoIGl0J3MgcHJvYmFibHkgbm90IGFzIGdvb2QgYXMgYSB2YWx1ZQorICAgICAgICAjIHRoZSB1c2VyIG1pZ2h0IGhhdmUgZXhwbGljaXRseSBwdXQgaW4gaGlzIGNvbmZpZykuCisgICAgICAgIHJldHVybiAoCisgICAgICAgICAgICBzZWxmLm9zZW52LmdldCgnR0xfUkVQTycsIE5vbmUpCisgICAgICAgICAgICBvciBzdXBlcihHaXRvbGl0ZUVudmlyb25tZW50TWl4aW4sIHNlbGYpLmdldF9yZXBvX3Nob3J0bmFtZSgpCisgICAgICAgICAgICApCisKKyAgICBkZWYgZ2V0X3B1c2hlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYub3NlbnYuZ2V0KCdHTF9VU0VSJywgJ3Vua25vd24gdXNlcicpCisKKworY2xhc3MgR2l0b2xpdGVFbnZpcm9ubWVudCgKKyAgICBQcm9qZWN0ZGVzY0Vudmlyb25tZW50TWl4aW4sCisgICAgQ29uZmlnTWF4bGluZXNFbnZpcm9ubWVudE1peGluLAorICAgIENvbmZpZ0ZpbHRlckxpbmVzRW52aXJvbm1lbnRNaXhpbiwKKyAgICBDb25maWdSZWNpcGllbnRzRW52aXJvbm1lbnRNaXhpbiwKKyAgICBQdXNoZXJEb21haW5FbnZpcm9ubWVudE1peGluLAorICAgIENvbmZpZ09wdGlvbnNFbnZpcm9ubWVudE1peGluLAorICAgIEdpdG9saXRlRW52aXJvbm1lbnRNaXhpbiwKKyAgICBFbnZpcm9ubWVudCwKKyAgICApOgorICAgIHBhc3MKKworCitjbGFzcyBQdXNoKG9iamVjdCk6CisgICAgIiIiUmVwcmVzZW50IGFuIGVudGlyZSBwdXNoIChpLmUuLCBhIGdyb3VwIG9mIFJlZmVyZW5jZUNoYW5nZXMpLgorCisgICAgSXQgaXMgZWFzeSB0byBmaWd1cmUgb3V0IHdoYXQgY29tbWl0cyB3ZXJlIGFkZGVkIHRvIGEgKmJyYW5jaCogYnkKKyAgICBhIFJlZmVyZW5jZSBjaGFuZ2U6CisKKyAgICAgICAgZ2l0IHJldi1saXN0IGNoYW5nZS5vbGQuLmNoYW5nZS5uZXcKKworICAgIG9yIHJlbW92ZWQgZnJvbSBhICpicmFuY2gqOgorCisgICAgICAgIGdpdCByZXYtbGlzdCBjaGFuZ2UubmV3Li5jaGFuZ2Uub2xkCisKKyAgICBCdXQgaXQgaXMgbm90IHF1aXRlIHNvIHRyaXZpYWwgdG8gZGV0ZXJtaW5lIHdoaWNoIGVudGlyZWx5IG5ldworICAgIGNvbW1pdHMgd2VyZSBhZGRlZCB0byB0aGUgKnJlcG9zaXRvcnkqIGJ5IGEgcHVzaCBhbmQgd2hpY2ggb2xkCisgICAgY29tbWl0cyB3ZXJlIGRpc2NhcmRlZCBieSBhIHB1c2guICBBIGJpZyBwYXJ0IG9mIHRoZSBqb2Igb2YgdGhpcworICAgIGNsYXNzIGlzIHRvIGZpZ3VyZSBvdXQgdGhlc2UgdGhpbmdzLCBhbmQgdG8gbWFrZSBzdXJlIHRoYXQgbmV3CisgICAgY29tbWl0cyBhcmUgb25seSBkZXRhaWxlZCBvbmNlIGV2ZW4gaWYgdGhleSB3ZXJlIGFkZGVkIHRvIG11bHRpcGxlCisgICAgcmVmZXJlbmNlcy4KKworICAgIFRoZSBmaXJzdCBzdGVwIGlzIHRvIGRldGVybWluZSB0aGUgIm90aGVyIiByZWZlcmVuY2VzLS10aG9zZQorICAgIHVuYWZmZWN0ZWQgYnkgdGhlIGN1cnJlbnQgcHVzaC4gIFRoZXkgYXJlIGNvbXB1dGVkIGJ5CisgICAgUHVzaC5fY29tcHV0ZV9vdGhlcl9yZWZfc2hhMXMoKSBieSBsaXN0aW5nIGFsbCByZWZlcmVuY2VzIHRoZW4KKyAgICByZW1vdmluZyBhbnkgYWZmZWN0ZWQgYnkgdGhpcyBwdXNoLgorCisgICAgVGhlIGNvbW1pdHMgY29udGFpbmVkIGluIHRoZSByZXBvc2l0b3J5IGJlZm9yZSB0aGlzIHB1c2ggd2VyZQorCisgICAgICAgIGdpdCByZXYtbGlzdCBvdGhlcjEgb3RoZXIyIG90aGVyMyAuLi4gY2hhbmdlMS5vbGQgY2hhbmdlMi5vbGQgLi4uCisKKyAgICBXaGVyZSAiY2hhbmdlTi5vbGQiIGlzIHRoZSBvbGQgdmFsdWUgb2Ygb25lIG9mIHRoZSByZWZlcmVuY2VzCisgICAgYWZmZWN0ZWQgYnkgdGhpcyBwdXNoLgorCisgICAgVGhlIGNvbW1pdHMgY29udGFpbmVkIGluIHRoZSByZXBvc2l0b3J5IGFmdGVyIHRoaXMgcHVzaCBhcmUKKworICAgICAgICBnaXQgcmV2LWxpc3Qgb3RoZXIxIG90aGVyMiBvdGhlcjMgLi4uIGNoYW5nZTEubmV3IGNoYW5nZTIubmV3IC4uLgorCisgICAgVGhlIGNvbW1pdHMgYWRkZWQgYnkgdGhpcyBwdXNoIGFyZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlCisgICAgdHdvIHNldHMsIHdoaWNoIGNhbiBiZSB3cml0dGVuCisKKyAgICAgICAgZ2l0IHJldi1saXN0IFwKKyAgICAgICAgICAgIF5vdGhlcjEgXm90aGVyMiAuLi4gXAorICAgICAgICAgICAgXmNoYW5nZTEub2xkIF5jaGFuZ2UyLm9sZCAuLi4gXAorICAgICAgICAgICAgY2hhbmdlMS5uZXcgY2hhbmdlMi5uZXcgLi4uCisKKyAgICBUaGUgY29tbWl0cyByZW1vdmVkIGJ5IHRoaXMgcHVzaCBjYW4gYmUgY29tcHV0ZWQgYnkKKworICAgICAgICBnaXQgcmV2LWxpc3QgXAorICAgICAgICAgICAgXm90aGVyMSBeb3RoZXIyIC4uLiBcCisgICAgICAgICAgICBeY2hhbmdlMS5uZXcgXmNoYW5nZTIubmV3IC4uLiBcCisgICAgICAgICAgICBjaGFuZ2UxLm9sZCBjaGFuZ2UyLm9sZCAuLi4KKworICAgIFRoZSBsYXN0IHBvaW50IGlzIHRoYXQgaXQgaXMgcG9zc2libGUgdGhhdCBvdGhlciBwdXNoZXMgYXJlCisgICAgb2NjdXJyaW5nIHNpbXVsdGFuZW91c2x5IHRvIHRoaXMgb25lLCBzbyByZWZlcmVuY2UgdmFsdWVzIGNhbgorICAgIGNoYW5nZSBhdCBhbnkgdGltZS4gIEl0IGlzIGltcG9zc2libGUgdG8gZWxpbWluYXRlIGFsbCByYWNlCisgICAgY29uZGl0aW9ucywgYnV0IHdlIHJlZHVjZSB0aGUgd2luZG93IG9mIHRpbWUgZHVyaW5nIHdoaWNoIHByb2JsZW1zCisgICAgY2FuIG9jY3VyIGJ5IHRyYW5zbGF0aW5nIHJlZmVyZW5jZSBuYW1lcyB0byBTSEExcyBhcyBzb29uIGFzCisgICAgcG9zc2libGUgYW5kIHdvcmtpbmcgd2l0aCBTSEExcyB0aGVyZWFmdGVyIChiZWNhdXNlIFNIQTFzIGFyZQorICAgIGltbXV0YWJsZSkuIiIiCisKKyAgICAjIEEgbWFwIHsoY2hhbmdlY2xhc3MsIGNoYW5nZXR5cGUpIDogaW50ZWdlcn0gc3BlY2lmeWluZyB0aGUgb3JkZXIKKyAgICAjIHRoYXQgcmVmZXJlbmNlIGNoYW5nZXMgd2lsbCBiZSBwcm9jZXNzZWQgaWYgbXVsdGlwbGUgcmVmZXJlbmNlCisgICAgIyBjaGFuZ2VzIGFyZSBpbmNsdWRlZCBpbiBhIHNpbmdsZSBwdXNoLiAgVGhlIG9yZGVyIGlzIHNpZ25pZmljYW50CisgICAgIyBtb3N0bHkgYmVjYXVzZSBuZXcgY29tbWl0IG5vdGlmaWNhdGlvbnMgYXJlIHRocmVhZGVkIHRvZ2V0aGVyCisgICAgIyB3aXRoIHRoZSBmaXJzdCByZWZlcmVuY2UgY2hhbmdlIHRoYXQgaW5jbHVkZXMgdGhlIGNvbW1pdC4gIFRoZQorICAgICMgZm9sbG93aW5nIG9yZGVyIHRodXMgY2F1c2VzIGNvbW1pdHMgdG8gYmUgZ3JvdXBlZCB3aXRoIGJyYW5jaAorICAgICMgY2hhbmdlcyAoYXMgb3Bwb3NlZCB0byB0YWcgY2hhbmdlcykgaWYgcG9zc2libGUuCisgICAgU09SVF9PUkRFUiA9IGRpY3QoCisgICAgICAgICh2YWx1ZSwgaSkgZm9yIChpLCB2YWx1ZSkgaW4gZW51bWVyYXRlKFsKKyAgICAgICAgICAgIChCcmFuY2hDaGFuZ2UsICd1cGRhdGUnKSwKKyAgICAgICAgICAgIChCcmFuY2hDaGFuZ2UsICdjcmVhdGUnKSwKKyAgICAgICAgICAgIChBbm5vdGF0ZWRUYWdDaGFuZ2UsICd1cGRhdGUnKSwKKyAgICAgICAgICAgIChBbm5vdGF0ZWRUYWdDaGFuZ2UsICdjcmVhdGUnKSwKKyAgICAgICAgICAgIChOb25Bbm5vdGF0ZWRUYWdDaGFuZ2UsICd1cGRhdGUnKSwKKyAgICAgICAgICAgIChOb25Bbm5vdGF0ZWRUYWdDaGFuZ2UsICdjcmVhdGUnKSwKKyAgICAgICAgICAgIChCcmFuY2hDaGFuZ2UsICdkZWxldGUnKSwKKyAgICAgICAgICAgIChBbm5vdGF0ZWRUYWdDaGFuZ2UsICdkZWxldGUnKSwKKyAgICAgICAgICAgIChOb25Bbm5vdGF0ZWRUYWdDaGFuZ2UsICdkZWxldGUnKSwKKyAgICAgICAgICAgIChPdGhlclJlZmVyZW5jZUNoYW5nZSwgJ3VwZGF0ZScpLAorICAgICAgICAgICAgKE90aGVyUmVmZXJlbmNlQ2hhbmdlLCAnY3JlYXRlJyksCisgICAgICAgICAgICAoT3RoZXJSZWZlcmVuY2VDaGFuZ2UsICdkZWxldGUnKSwKKyAgICAgICAgICAgIF0pCisgICAgICAgICkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGFuZ2VzKToKKyAgICAgICAgc2VsZi5jaGFuZ2VzID0gc29ydGVkKGNoYW5nZXMsIGtleT1zZWxmLl9zb3J0X2tleSkKKworICAgICAgICAjIFRoZSBTSEEtMXMgb2YgY29tbWl0cyByZWZlcnJlZCB0byBieSByZWZlcmVuY2VzIHVuYWZmZWN0ZWQKKyAgICAgICAgIyBieSB0aGlzIHB1c2g6CisgICAgICAgIG90aGVyX3JlZl9zaGExcyA9IHNlbGYuX2NvbXB1dGVfb3RoZXJfcmVmX3NoYTFzKCkKKworICAgICAgICBzZWxmLl9vbGRfcmV2X2V4Y2x1c2lvbl9zcGVjID0gc2VsZi5fY29tcHV0ZV9yZXZfZXhjbHVzaW9uX3NwZWMoCisgICAgICAgICAgICBvdGhlcl9yZWZfc2hhMXMudW5pb24oCisgICAgICAgICAgICAgICAgY2hhbmdlLm9sZC5zaGExCisgICAgICAgICAgICAgICAgZm9yIGNoYW5nZSBpbiBzZWxmLmNoYW5nZXMKKyAgICAgICAgICAgICAgICBpZiBjaGFuZ2Uub2xkLnR5cGUgaW4gWydjb21taXQnLCAndGFnJ10KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIHNlbGYuX25ld19yZXZfZXhjbHVzaW9uX3NwZWMgPSBzZWxmLl9jb21wdXRlX3Jldl9leGNsdXNpb25fc3BlYygKKyAgICAgICAgICAgIG90aGVyX3JlZl9zaGExcy51bmlvbigKKyAgICAgICAgICAgICAgICBjaGFuZ2UubmV3LnNoYTEKKyAgICAgICAgICAgICAgICBmb3IgY2hhbmdlIGluIHNlbGYuY2hhbmdlcworICAgICAgICAgICAgICAgIGlmIGNoYW5nZS5uZXcudHlwZSBpbiBbJ2NvbW1pdCcsICd0YWcnXQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfc29ydF9rZXkoa2xhc3MsIGNoYW5nZSk6CisgICAgICAgIHJldHVybiAoa2xhc3MuU09SVF9PUkRFUltjaGFuZ2UuX19jbGFzc19fLCBjaGFuZ2UuY2hhbmdlX3R5cGVdLCBjaGFuZ2UucmVmbmFtZSwpCisKKyAgICBkZWYgX2NvbXB1dGVfb3RoZXJfcmVmX3NoYTFzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIEdpdE9iamVjdHMgcmVmZXJyZWQgdG8gYnkgcmVmZXJlbmNlcyB1bmFmZmVjdGVkIGJ5IHRoaXMgcHVzaC4iIiIKKworICAgICAgICAjIFRoZSByZWZuYW1lcyBiZWluZyBjaGFuZ2VkIGJ5IHRoaXMgcHVzaDoKKyAgICAgICAgdXBkYXRlZF9yZWZzID0gc2V0KAorICAgICAgICAgICAgY2hhbmdlLnJlZm5hbWUKKyAgICAgICAgICAgIGZvciBjaGFuZ2UgaW4gc2VsZi5jaGFuZ2VzCisgICAgICAgICAgICApCisKKyAgICAgICAgIyBUaGUgU0hBLTFzIG9mIGNvbW1pdHMgcmVmZXJyZWQgdG8gYnkgYWxsIHJlZmVyZW5jZXMgaW4gdGhpcworICAgICAgICAjIHJlcG9zaXRvcnkgKmV4Y2VwdCogdXBkYXRlZF9yZWZzOgorICAgICAgICBzaGExcyA9IHNldCgpCisgICAgICAgIGZtdCA9ICgKKyAgICAgICAgICAgICclKG9iamVjdG5hbWUpICUob2JqZWN0dHlwZSkgJShyZWZuYW1lKVxuJworICAgICAgICAgICAgJyUoKm9iamVjdG5hbWUpICUoKm9iamVjdHR5cGUpICUocmVmbmFtZSknCisgICAgICAgICAgICApCisgICAgICAgIGZvciBsaW5lIGluIHJlYWRfZ2l0X2xpbmVzKFsnZm9yLWVhY2gtcmVmJywgJy0tZm9ybWF0PSVzJyAlIChmbXQsKV0pOgorICAgICAgICAgICAgKHNoYTEsIHR5cGUsIG5hbWUpID0gbGluZS5zcGxpdCgnICcsIDIpCisgICAgICAgICAgICBpZiBzaGExIGFuZCB0eXBlID09ICdjb21taXQnIGFuZCBuYW1lIG5vdCBpbiB1cGRhdGVkX3JlZnM6CisgICAgICAgICAgICAgICAgc2hhMXMuYWRkKHNoYTEpCisKKyAgICAgICAgcmV0dXJuIHNoYTFzCisKKyAgICBkZWYgX2NvbXB1dGVfcmV2X2V4Y2x1c2lvbl9zcGVjKHNlbGYsIHNoYTFzKToKKyAgICAgICAgIiIiUmV0dXJuIGFuIGV4Y2x1c2lvbiBzcGVjaWZpY2F0aW9uIGZvciAnZ2l0IHJldi1saXN0Jy4KKworICAgICAgICBnaXRfb2JqZWN0cyBpcyBhbiBpdGVyYWJsZSBvdmVyIEdpdE9iamVjdCBpbnN0YW5jZXMuICBSZXR1cm4gYQorICAgICAgICBzdHJpbmcgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBzdGFuZGFyZCBpbnB1dCBvZiAnZ2l0CisgICAgICAgIHJldi1saXN0IC0tc3RkaW4nIHRvIGV4Y2x1ZGUgYWxsIG9mIHRoZSBjb21taXRzIHJlZmVycmVkIHRvIGJ5CisgICAgICAgIGdpdF9vYmplY3RzLiIiIgorCisgICAgICAgIHJldHVybiAnJy5qb2luKAorICAgICAgICAgICAgWydeJXNcbicgJSAoc2hhMSwpIGZvciBzaGExIGluIHNvcnRlZChzaGExcyldCisgICAgICAgICAgICApCisKKyAgICBkZWYgZ2V0X25ld19jb21taXRzKHNlbGYsIHJlZmVyZW5jZV9jaGFuZ2U9Tm9uZSk6CisgICAgICAgICIiIlJldHVybiBhIGxpc3Qgb2YgY29tbWl0cyBhZGRlZCBieSB0aGlzIHB1c2guCisKKyAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgb2JqZWN0IG5hbWVzIG9mIGNvbW1pdHMgdGhhdCB3ZXJlIGFkZGVkCisgICAgICAgIGJ5IHRoZSBwYXJ0IG9mIHRoaXMgcHVzaCByZXByZXNlbnRlZCBieSByZWZlcmVuY2VfY2hhbmdlLiAgSWYKKyAgICAgICAgcmVmZXJlbmNlX2NoYW5nZSBpcyBOb25lLCB0aGVuIHJldHVybiBhIGxpc3Qgb2YgKmFsbCogY29tbWl0cworICAgICAgICBhZGRlZCBieSB0aGlzIHB1c2guIiIiCisKKyAgICAgICAgaWYgbm90IHJlZmVyZW5jZV9jaGFuZ2U6CisgICAgICAgICAgICBuZXdfcmV2cyA9IHNvcnRlZCgKKyAgICAgICAgICAgICAgICBjaGFuZ2UubmV3LnNoYTEKKyAgICAgICAgICAgICAgICBmb3IgY2hhbmdlIGluIHNlbGYuY2hhbmdlcworICAgICAgICAgICAgICAgIGlmIGNoYW5nZS5uZXcKKyAgICAgICAgICAgICAgICApCisgICAgICAgIGVsaWYgbm90IHJlZmVyZW5jZV9jaGFuZ2UubmV3LmNvbW1pdF9zaGExOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuZXdfcmV2cyA9IFtyZWZlcmVuY2VfY2hhbmdlLm5ldy5jb21taXRfc2hhMV0KKworICAgICAgICBjbWQgPSBbJ3Jldi1saXN0JywgJy0tc3RkaW4nXSArIG5ld19yZXZzCisgICAgICAgIHJldHVybiByZWFkX2dpdF9saW5lcyhjbWQsIGlucHV0PXNlbGYuX29sZF9yZXZfZXhjbHVzaW9uX3NwZWMpCisKKyAgICBkZWYgZ2V0X2Rpc2NhcmRlZF9jb21taXRzKHNlbGYsIHJlZmVyZW5jZV9jaGFuZ2UpOgorICAgICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGNvbW1pdHMgZGlzY2FyZGVkIGJ5IHRoaXMgcHVzaC4KKworICAgICAgICBSZXR1cm4gYSBsaXN0IG9mIHRoZSBvYmplY3QgbmFtZXMgb2YgY29tbWl0cyB0aGF0IHdlcmUKKyAgICAgICAgZW50aXJlbHkgZGlzY2FyZGVkIGZyb20gdGhlIHJlcG9zaXRvcnkgYnkgdGhlIHBhcnQgb2YgdGhpcworICAgICAgICBwdXNoIHJlcHJlc2VudGVkIGJ5IHJlZmVyZW5jZV9jaGFuZ2UuIiIiCisKKyAgICAgICAgaWYgbm90IHJlZmVyZW5jZV9jaGFuZ2Uub2xkLmNvbW1pdF9zaGExOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvbGRfcmV2cyA9IFtyZWZlcmVuY2VfY2hhbmdlLm9sZC5jb21taXRfc2hhMV0KKworICAgICAgICBjbWQgPSBbJ3Jldi1saXN0JywgJy0tc3RkaW4nXSArIG9sZF9yZXZzCisgICAgICAgIHJldHVybiByZWFkX2dpdF9saW5lcyhjbWQsIGlucHV0PXNlbGYuX25ld19yZXZfZXhjbHVzaW9uX3NwZWMpCisKKyAgICBkZWYgc2VuZF9lbWFpbHMoc2VsZiwgbWFpbGVyLCBib2R5X2ZpbHRlcj1Ob25lKToKKyAgICAgICAgIiIiVXNlIHNlbmQgYWxsIG9mIHRoZSBub3RpZmljYXRpb24gZW1haWxzIG5lZWRlZCBmb3IgdGhpcyBwdXNoLgorCisgICAgICAgIFVzZSBzZW5kIGFsbCBvZiB0aGUgbm90aWZpY2F0aW9uIGVtYWlscyAoaW5jbHVkaW5nIHJlZmVyZW5jZQorICAgICAgICBjaGFuZ2UgZW1haWxzIGFuZCBjb21taXQgZW1haWxzKSBuZWVkZWQgZm9yIHRoaXMgcHVzaC4gIFNlbmQKKyAgICAgICAgdGhlIGVtYWlscyB1c2luZyBtYWlsZXIuICBJZiBib2R5X2ZpbHRlciBpcyBub3QgTm9uZSwgdGhlbiB1c2UKKyAgICAgICAgaXQgdG8gZmlsdGVyIHRoZSBsaW5lcyB0aGF0IGFyZSBpbnRlbmRlZCBmb3IgdGhlIGVtYWlsCisgICAgICAgIGJvZHkuIiIiCisKKyAgICAgICAgIyBUaGUgc2hhMXMgb2YgY29tbWl0cyB0aGF0IHdlcmUgaW50cm9kdWNlZCBieSB0aGlzIHB1c2guCisgICAgICAgICMgVGhleSB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGlzIHNldCBhcyB0aGV5IGFyZSBwcm9jZXNzZWQsIHRvCisgICAgICAgICMgZ3VhcmFudGVlIHRoYXQgb25lIChhbmQgb25seSBvbmUpIGVtYWlsIGlzIGdlbmVyYXRlZCBmb3IKKyAgICAgICAgIyBlYWNoIG5ldyBjb21taXQuCisgICAgICAgIHVuaGFuZGxlZF9zaGExcyA9IHNldChzZWxmLmdldF9uZXdfY29tbWl0cygpKQorICAgICAgICBmb3IgY2hhbmdlIGluIHNlbGYuY2hhbmdlczoKKyAgICAgICAgICAgICMgQ2hlY2sgaWYgd2UndmUgZ290IGFueW9uZSB0byBzZW5kIHRvCisgICAgICAgICAgICBpZiBub3QgY2hhbmdlLnJlY2lwaWVudHM6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgJyoqKiBubyByZWNpcGllbnRzIGNvbmZpZ3VyZWQgc28gbm8gZW1haWwgd2lsbCBiZSBzZW50XG4nCisgICAgICAgICAgICAgICAgICAgICcqKiogZm9yICVyIHVwZGF0ZSAlcy0+JXNcbicKKyAgICAgICAgICAgICAgICAgICAgJSAoY2hhbmdlLnJlZm5hbWUsIGNoYW5nZS5vbGQuc2hhMSwgY2hhbmdlLm5ldy5zaGExLCkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdTZW5kaW5nIG5vdGlmaWNhdGlvbiBlbWFpbHMgdG86ICVzXG4nICUgKGNoYW5nZS5yZWNpcGllbnRzLCkpCisgICAgICAgICAgICAgICAgbWFpbGVyLnNlbmQoY2hhbmdlLmdlbmVyYXRlX2VtYWlsKHNlbGYsIGJvZHlfZmlsdGVyKSwgY2hhbmdlLnJlY2lwaWVudHMpCisKKyAgICAgICAgICAgIHNoYTFzID0gW10KKyAgICAgICAgICAgIGZvciBzaGExIGluIHJldmVyc2VkKGxpc3Qoc2VsZi5nZXRfbmV3X2NvbW1pdHMoY2hhbmdlKSkpOgorICAgICAgICAgICAgICAgIGlmIHNoYTEgaW4gdW5oYW5kbGVkX3NoYTFzOgorICAgICAgICAgICAgICAgICAgICBzaGExcy5hcHBlbmQoc2hhMSkKKyAgICAgICAgICAgICAgICAgICAgdW5oYW5kbGVkX3NoYTFzLnJlbW92ZShzaGExKQorCisgICAgICAgICAgICBtYXhfZW1haWxzID0gY2hhbmdlLmVudmlyb25tZW50Lm1heGNvbW1pdGVtYWlscworICAgICAgICAgICAgaWYgbWF4X2VtYWlscyBhbmQgbGVuKHNoYTFzKSA+IG1heF9lbWFpbHM6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgJyoqKiBUb28gbWFueSBuZXcgY29tbWl0cyAoJWQpLCBub3Qgc2VuZGluZyBjb21taXQgZW1haWxzLlxuJyAlIGxlbihzaGExcykKKyAgICAgICAgICAgICAgICAgICAgKyAnKioqIFRyeSBzZXR0aW5nIG11bHRpbWFpbGhvb2subWF4Q29tbWl0RW1haWxzIHRvIGEgZ3JlYXRlciB2YWx1ZVxuJworICAgICAgICAgICAgICAgICAgICArICcqKiogQ3VycmVudGx5LCBtdWx0aW1haWxob29rLm1heENvbW1pdEVtYWlscz0lZFxuJyAlIG1heF9lbWFpbHMKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICBmb3IgKG51bSwgc2hhMSkgaW4gZW51bWVyYXRlKHNoYTFzKToKKyAgICAgICAgICAgICAgICByZXYgPSBSZXZpc2lvbihjaGFuZ2UsIEdpdE9iamVjdChzaGExKSwgbnVtPW51bSsxLCB0b3Q9bGVuKHNoYTFzKSkKKyAgICAgICAgICAgICAgICBpZiByZXYucmVjaXBpZW50czoKKyAgICAgICAgICAgICAgICAgICAgbWFpbGVyLnNlbmQocmV2LmdlbmVyYXRlX2VtYWlsKHNlbGYsIGJvZHlfZmlsdGVyKSwgcmV2LnJlY2lwaWVudHMpCisKKyAgICAgICAgIyBDb25zaXN0ZW5jeSBjaGVjazoKKyAgICAgICAgaWYgdW5oYW5kbGVkX3NoYTFzOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAnRVJST1I6IE5vIGVtYWlscyB3ZXJlIHNlbnQgZm9yIHRoZSBmb2xsb3dpbmcgbmV3IGNvbW1pdHM6XG4nCisgICAgICAgICAgICAgICAgJyAgICAlc1xuJworICAgICAgICAgICAgICAgICUgKCdcbiAgICAnLmpvaW4oc29ydGVkKHVuaGFuZGxlZF9zaGExcykpLCkKKyAgICAgICAgICAgICAgICApCisKKworZGVmIHJ1bl9hc19wb3N0X3JlY2VpdmVfaG9vayhlbnZpcm9ubWVudCwgbWFpbGVyKToKKyAgICBjaGFuZ2VzID0gW10KKyAgICBmb3IgbGluZSBpbiBzeXMuc3RkaW46CisgICAgICAgIChvbGRyZXYsIG5ld3JldiwgcmVmbmFtZSkgPSBsaW5lLnN0cmlwKCkuc3BsaXQoJyAnLCAyKQorICAgICAgICBjaGFuZ2VzLmFwcGVuZCgKKyAgICAgICAgICAgIFJlZmVyZW5jZUNoYW5nZS5jcmVhdGUoZW52aXJvbm1lbnQsIG9sZHJldiwgbmV3cmV2LCByZWZuYW1lKQorICAgICAgICAgICAgKQorICAgIHB1c2ggPSBQdXNoKGNoYW5nZXMpCisgICAgcHVzaC5zZW5kX2VtYWlscyhtYWlsZXIsIGJvZHlfZmlsdGVyPWVudmlyb25tZW50LmZpbHRlcl9ib2R5KQorCisKK2RlZiBydW5fYXNfdXBkYXRlX2hvb2soZW52aXJvbm1lbnQsIG1haWxlciwgcmVmbmFtZSwgb2xkcmV2LCBuZXdyZXYpOgorICAgIGNoYW5nZXMgPSBbCisgICAgICAgIFJlZmVyZW5jZUNoYW5nZS5jcmVhdGUoCisgICAgICAgICAgICBlbnZpcm9ubWVudCwKKyAgICAgICAgICAgIHJlYWRfZ2l0X291dHB1dChbJ3Jldi1wYXJzZScsICctLXZlcmlmeScsIG9sZHJldl0pLAorICAgICAgICAgICAgcmVhZF9naXRfb3V0cHV0KFsncmV2LXBhcnNlJywgJy0tdmVyaWZ5JywgbmV3cmV2XSksCisgICAgICAgICAgICByZWZuYW1lLAorICAgICAgICAgICAgKSwKKyAgICAgICAgXQorICAgIHB1c2ggPSBQdXNoKGNoYW5nZXMpCisgICAgcHVzaC5zZW5kX2VtYWlscyhtYWlsZXIsIGJvZHlfZmlsdGVyPWVudmlyb25tZW50LmZpbHRlcl9ib2R5KQorCisKK2RlZiBjaG9vc2VfbWFpbGVyKGNvbmZpZywgZW52aXJvbm1lbnQpOgorICAgIG1haWxlciA9IGNvbmZpZy5nZXQoJ21haWxlcicsIGRlZmF1bHQ9J3NlbmRtYWlsJykKKworICAgIGlmIG1haWxlciA9PSAnc210cCc6CisgICAgICAgIHNtdHBzZXJ2ZXIgPSBjb25maWcuZ2V0KCdzbXRwc2VydmVyJywgZGVmYXVsdD0nbG9jYWxob3N0JykKKyAgICAgICAgbWFpbGVyID0gU01UUE1haWxlcigKKyAgICAgICAgICAgIGVudmVsb3Blc2VuZGVyPShlbnZpcm9ubWVudC5nZXRfc2VuZGVyKCkgb3IgZW52aXJvbm1lbnQuZ2V0X2Zyb21hZGRyKCkpLAorICAgICAgICAgICAgc210cHNlcnZlcj1zbXRwc2VydmVyLAorICAgICAgICAgICAgKQorICAgIGVsaWYgbWFpbGVyID09ICdzZW5kbWFpbCc6CisgICAgICAgIGNvbW1hbmQgPSBjb25maWcuZ2V0KCdzZW5kbWFpbGNvbW1hbmQnKQorICAgICAgICBpZiBjb21tYW5kOgorICAgICAgICAgICAgY29tbWFuZCA9IHNobGV4LnNwbGl0KGNvbW1hbmQpCisgICAgICAgIG1haWxlciA9IFNlbmRNYWlsZXIoY29tbWFuZD1jb21tYW5kLCBlbnZlbG9wZXNlbmRlcj1lbnZpcm9ubWVudC5nZXRfc2VuZGVyKCkpCisgICAgZWxzZToKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICdmYXRhbDogbXVsdGltYWlsaG9vay5tYWlsZXIgaXMgc2V0IHRvIGFuIGluY29ycmVjdCB2YWx1ZTogIiVzIlxuJyAlIG1haWxlcgorICAgICAgICAgICAgKyAncGxlYXNlIHVzZSBvbmUgb2YgInNtdHAiIG9yICJzZW5kbWFpbCIuXG4nCisgICAgICAgICAgICApCisgICAgICAgIHN5cy5leGl0KDEpCisgICAgcmV0dXJuIG1haWxlcgorCisKK0tOT1dOX0VOVklST05NRU5UUyA9IHsKKyAgICAnZ2VuZXJpYycgOiBHZW5lcmljRW52aXJvbm1lbnRNaXhpbiwKKyAgICAnZ2l0b2xpdGUnIDogR2l0b2xpdGVFbnZpcm9ubWVudE1peGluLAorICAgIH0KKworCitkZWYgY2hvb3NlX2Vudmlyb25tZW50KGNvbmZpZywgb3NlbnY9Tm9uZSwgZW52PU5vbmUsIHJlY2lwaWVudHM9Tm9uZSk6CisgICAgaWYgbm90IG9zZW52OgorICAgICAgICBvc2VudiA9IG9zLmVudmlyb24KKworICAgIGVudmlyb25tZW50X21peGlucyA9IFsKKyAgICAgICAgUHJvamVjdGRlc2NFbnZpcm9ubWVudE1peGluLAorICAgICAgICBDb25maWdNYXhsaW5lc0Vudmlyb25tZW50TWl4aW4sCisgICAgICAgIENvbmZpZ0ZpbHRlckxpbmVzRW52aXJvbm1lbnRNaXhpbiwKKyAgICAgICAgUHVzaGVyRG9tYWluRW52aXJvbm1lbnRNaXhpbiwKKyAgICAgICAgQ29uZmlnT3B0aW9uc0Vudmlyb25tZW50TWl4aW4sCisgICAgICAgIF0KKyAgICBlbnZpcm9ubWVudF9rdyA9IHsKKyAgICAgICAgJ29zZW52JyA6IG9zZW52LAorICAgICAgICAnY29uZmlnJyA6IGNvbmZpZywKKyAgICAgICAgfQorCisgICAgaWYgbm90IGVudjoKKyAgICAgICAgZW52ID0gY29uZmlnLmdldCgnZW52aXJvbm1lbnQnKQorCisgICAgaWYgbm90IGVudjoKKyAgICAgICAgaWYgJ0dMX1VTRVInIGluIG9zZW52IGFuZCAnR0xfUkVQTycgaW4gb3NlbnY6CisgICAgICAgICAgICBlbnYgPSAnZ2l0b2xpdGUnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlbnYgPSAnZ2VuZXJpYycKKworICAgIGVudmlyb25tZW50X21peGlucy5hcHBlbmQoS05PV05fRU5WSVJPTk1FTlRTW2Vudl0pCisKKyAgICBpZiByZWNpcGllbnRzOgorICAgICAgICBlbnZpcm9ubWVudF9taXhpbnMuaW5zZXJ0KDAsIFN0YXRpY1JlY2lwaWVudHNFbnZpcm9ubWVudE1peGluKQorICAgICAgICBlbnZpcm9ubWVudF9rd1sncmVmY2hhbmdlX3JlY2lwaWVudHMnXSA9IHJlY2lwaWVudHMKKyAgICAgICAgZW52aXJvbm1lbnRfa3dbJ2Fubm91bmNlX3JlY2lwaWVudHMnXSA9IHJlY2lwaWVudHMKKyAgICAgICAgZW52aXJvbm1lbnRfa3dbJ3JldmlzaW9uX3JlY2lwaWVudHMnXSA9IHJlY2lwaWVudHMKKyAgICBlbHNlOgorICAgICAgICBlbnZpcm9ubWVudF9taXhpbnMuaW5zZXJ0KDAsIENvbmZpZ1JlY2lwaWVudHNFbnZpcm9ubWVudE1peGluKQorCisgICAgZW52aXJvbm1lbnRfa2xhc3MgPSB0eXBlKAorICAgICAgICAnRWZmZWN0aXZlRW52aXJvbm1lbnQnLAorICAgICAgICB0dXBsZShlbnZpcm9ubWVudF9taXhpbnMpICsgKEVudmlyb25tZW50LCksCisgICAgICAgIHt9LAorICAgICAgICApCisgICAgcmV0dXJuIGVudmlyb25tZW50X2tsYXNzKCoqZW52aXJvbm1lbnRfa3cpCisKKworZGVmIG1haW4oYXJncyk6CisgICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKAorICAgICAgICBkZXNjcmlwdGlvbj1fX2RvY19fLAorICAgICAgICB1c2FnZT0nJXByb2cgW09QVElPTlNdXG4gICBvcjogJXByb2cgW09QVElPTlNdIFJFRk5BTUUgT0xEUkVWIE5FV1JFVicsCisgICAgICAgICkKKworICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1lbnZpcm9ubWVudCcsICctLWVudicsIGFjdGlvbj0nc3RvcmUnLCB0eXBlPSdjaG9pY2UnLAorICAgICAgICBjaG9pY2VzPVsnZ2VuZXJpYycsICdnaXRvbGl0ZSddLCBkZWZhdWx0PU5vbmUsCisgICAgICAgIGhlbHA9KAorICAgICAgICAgICAgJ0Nob29zZSB0eXBlIG9mIGVudmlyb25tZW50IGlzIGluIHVzZS4gIERlZmF1bHQgaXMgdGFrZW4gZnJvbSAnCisgICAgICAgICAgICAnbXVsdGltYWlsaG9vay5lbnZpcm9ubWVudCBpZiBzZXQ7IG90aGVyd2lzZSAiZ2VuZXJpYyIuJworICAgICAgICAgICAgKSwKKyAgICAgICAgKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1zdGRvdXQnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICBoZWxwPSdPdXRwdXQgZW1haWxzIHRvIHN0ZG91dCByYXRoZXIgdGhhbiBzZW5kaW5nIHRoZW0uJywKKyAgICAgICAgKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1yZWNpcGllbnRzJywgYWN0aW9uPSdzdG9yZScsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgaGVscD0nU2V0IGxpc3Qgb2YgZW1haWwgcmVjaXBpZW50cyBmb3IgYWxsIHR5cGVzIG9mIGVtYWlscy4nLAorICAgICAgICApCisgICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgICAgICctLXNob3ctZW52JywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgaGVscD0oCisgICAgICAgICAgICAnV3JpdGUgdG8gc3RkZXJyIHRoZSB2YWx1ZXMgZGV0ZXJtaW5lZCBmb3IgdGhlIGVudmlyb25tZW50ICcKKyAgICAgICAgICAgICcoaW50ZW5kZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcykuJworICAgICAgICAgICAgKSwKKyAgICAgICAgKQorCisgICAgKG9wdGlvbnMsIGFyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKKworICAgIGNvbmZpZyA9IENvbmZpZygnbXVsdGltYWlsaG9vaycpCisKKyAgICB0cnk6CisgICAgICAgIGVudmlyb25tZW50ID0gY2hvb3NlX2Vudmlyb25tZW50KAorICAgICAgICAgICAgY29uZmlnLCBvc2Vudj1vcy5lbnZpcm9uLAorICAgICAgICAgICAgZW52PW9wdGlvbnMuZW52aXJvbm1lbnQsCisgICAgICAgICAgICByZWNpcGllbnRzPW9wdGlvbnMucmVjaXBpZW50cywKKyAgICAgICAgICAgICkKKworICAgICAgICBpZiBvcHRpb25zLnNob3dfZW52OgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnRW52aXJvbm1lbnQgdmFsdWVzOlxuJykKKyAgICAgICAgICAgIGZvciAoayx2KSBpbiBzb3J0ZWQoZW52aXJvbm1lbnQuZ2V0X3ZhbHVlcygpLml0ZW1zKCkpOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJyAgICAlcyA6ICVyXG4nICUgKGssdikpCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdcbicpCisKKyAgICAgICAgaWYgb3B0aW9ucy5zdGRvdXQ6CisgICAgICAgICAgICBtYWlsZXIgPSBPdXRwdXRNYWlsZXIoc3lzLnN0ZG91dCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1haWxlciA9IGNob29zZV9tYWlsZXIoY29uZmlnLCBlbnZpcm9ubWVudCkKKworICAgICAgICAjIER1YWwgbW9kZTogaWYgYXJndW1lbnRzIHdlcmUgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUsIHJ1bgorICAgICAgICAjIGxpa2UgYW4gdXBkYXRlIGhvb2s7IG90aGVyd2lzZSwgcnVuIGFzIGEgcG9zdC1yZWNlaXZlIGhvb2suCisgICAgICAgIGlmIGFyZ3M6CisgICAgICAgICAgICBpZiBsZW4oYXJncykgIT0gMzoKKyAgICAgICAgICAgICAgICBwYXJzZXIuZXJyb3IoJ05lZWQgemVybyBvciB0aHJlZSBub24tb3B0aW9uIGFyZ3VtZW50cycpCisgICAgICAgICAgICAocmVmbmFtZSwgb2xkcmV2LCBuZXdyZXYpID0gYXJncworICAgICAgICAgICAgcnVuX2FzX3VwZGF0ZV9ob29rKGVudmlyb25tZW50LCBtYWlsZXIsIHJlZm5hbWUsIG9sZHJldiwgbmV3cmV2KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcnVuX2FzX3Bvc3RfcmVjZWl2ZV9ob29rKGVudmlyb25tZW50LCBtYWlsZXIpCisgICAgZXhjZXB0IENvbmZpZ3VyYXRpb25FeGNlcHRpb24sIGU6CisgICAgICAgIHN5cy5leGl0KHN0cihlKSkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIG1haW4oc3lzLmFyZ3ZbMTpdKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9ob29rcy9tdWx0aW1haWwvbWlncmF0ZS1tYWlsaG9vay1jb25maWcgYi9jb250cmliL2hvb2tzL211bHRpbWFpbC9taWdyYXRlLW1haWxob29rLWNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNGVlYWFjCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9ob29rcy9tdWx0aW1haWwvbWlncmF0ZS1tYWlsaG9vay1jb25maWcKQEAgLTAsMCArMSwyNjkgQEAKKyMhIC91c3IvYmluL2VudiBweXRob24yCisKKyIiIk1pZ3JhdGUgYSBwb3N0LXJlY2VpdmUtZW1haWwgY29uZmlndXJhdGlvbiB0byBiZSB1c2FibGUgd2l0aCBnaXRfbXVsdGltYWlsLnB5LgorCitTZWUgUkVBRE1FLm1pZ3JhdGUtZnJvbS1wb3N0LXJlY2VpdmUtZW1haWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKyIiIgorCitpbXBvcnQgc3lzCitpbXBvcnQgb3B0cGFyc2UKKworZnJvbSBnaXRfbXVsdGltYWlsIGltcG9ydCBDb21tYW5kRXJyb3IKK2Zyb20gZ2l0X211bHRpbWFpbCBpbXBvcnQgQ29uZmlnCitmcm9tIGdpdF9tdWx0aW1haWwgaW1wb3J0IHJlYWRfb3V0cHV0CisKKworT0xEX05BTUVTID0gWworICAgICdtYWlsaW5nbGlzdCcsCisgICAgJ2Fubm91bmNlbGlzdCcsCisgICAgJ2VudmVsb3Blc2VuZGVyJywKKyAgICAnZW1haWxwcmVmaXgnLAorICAgICdzaG93cmV2JywKKyAgICAnZW1haWxtYXhsaW5lcycsCisgICAgJ2RpZmZvcHRzJywKKyAgICBdCisKK05FV19OQU1FUyA9IFsKKyAgICAnZW52aXJvbm1lbnQnLAorICAgICdyZXBvbmFtZScsCisgICAgJ21haWxpbmdsaXN0JywKKyAgICAncmVmY2hhbmdlbGlzdCcsCisgICAgJ2NvbW1pdGxpc3QnLAorICAgICdhbm5vdW5jZWxpc3QnLAorICAgICdhbm5vdW5jZXNob3J0bG9nJywKKyAgICAnZW52ZWxvcGVzZW5kZXInLAorICAgICdhZG1pbmlzdHJhdG9yJywKKyAgICAnZW1haWxwcmVmaXgnLAorICAgICdlbWFpbG1heGxpbmVzJywKKyAgICAnZGlmZm9wdHMnLAorICAgICdlbWFpbGRvbWFpbicsCisgICAgXQorCisKK0lORk8gPSAiIiJcCisKK1NVQ0NFU1MhCisKK1lvdXIgcG9zdC1yZWNlaXZlLWVtYWlsIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gY29udmVydGVkIHRvCitnaXQtbXVsdGltYWlsIGZvcm1hdC4gIFBsZWFzZSBzZWUgUkVBRE1FIGFuZAorUkVBRE1FLm1pZ3JhdGUtZnJvbS1wb3N0LXJlY2VpdmUtZW1haWwgdG8gbGVhcm4gYWJvdXQgb3RoZXIKK2dpdC1tdWx0aW1haWwgY29uZmlndXJhdGlvbiBwb3NzaWJpbGl0aWVzLgorCitGb3IgZXhhbXBsZSwgZ2l0LW11bHRpbWFpbCBoYXMgdGhlIGZvbGxvd2luZyBuZXcgb3B0aW9ucyB3aXRoIG5vCitlcXVpdmFsZW50IGluIHBvc3QtcmVjZWl2ZS1lbWFpbC4gIFlvdSBtaWdodCB3YW50IHRvIHJlYWQgYWJvdXQgdGhlbQordG8gc2VlIGlmIHRoZXkgd291bGQgYmUgdXNlZnVsIGluIHlvdXIgc2l0dWF0aW9uOgorCisiIiIKKworCitkZWYgX2NoZWNrX29sZF9jb25maWdfZXhpc3RzKG9sZCk6CisgICAgIiIiQ2hlY2sgdGhhdCBhdCBsZWFzdCBvbmUgb2xkIGNvbmZpZ3VyYXRpb24gdmFsdWUgaXMgc2V0LiIiIgorCisgICAgZm9yIG5hbWUgaW4gT0xEX05BTUVTOgorICAgICAgICBpZiBvbGQuaGFzX2tleShuYW1lKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICByZXR1cm4gRmFsc2UKKworCitkZWYgX2NoZWNrX25ld19jb25maWdfY2xlYXIobmV3KToKKyAgICAiIiJDaGVjayB0aGF0IG5vbmUgb2YgdGhlIG5ldyBjb25maWd1cmF0aW9uIG5hbWVzIGFyZSBzZXQuIiIiCisKKyAgICByZXR2YWwgPSBUcnVlCisgICAgZm9yIG5hbWUgaW4gTkVXX05BTUVTOgorICAgICAgICBpZiBuZXcuaGFzX2tleShuYW1lKToKKyAgICAgICAgICAgIGlmIHJldHZhbDoKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdJTkZPOiBUaGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGFscmVhZHkgZXhpc3Q6XG5cbicpCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCcgICAgIiVzLiVzIlxuJyAlIChuZXcuc2VjdGlvbiwgbmFtZSkpCisgICAgICAgICAgICByZXR2YWwgPSBGYWxzZQorCisgICAgcmV0dXJuIHJldHZhbAorCisKK2RlZiBlcmFzZV92YWx1ZXMoY29uZmlnLCBuYW1lcyk6CisgICAgZm9yIG5hbWUgaW4gbmFtZXM6CisgICAgICAgIGlmIGNvbmZpZy5oYXNfa2V5KG5hbWUpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJy4uLnVuc2V0dGluZyAiJXMuJXMiXG4nICUgKGNvbmZpZy5zZWN0aW9uLCBuYW1lKSkKKyAgICAgICAgICAgICAgICBjb25maWcudW5zZXRfYWxsKG5hbWUpCisgICAgICAgICAgICBleGNlcHQgQ29tbWFuZEVycm9yOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICdcbldBUk5JTkc6IGNvdWxkIG5vdCB1bnNldCAiJXMuJXMiLiAgJworICAgICAgICAgICAgICAgICAgICAnUGVyaGFwcyBpdCBpcyBub3Qgc2V0IGF0IHRoZSAtLWxvY2FsIGxldmVsP1xuXG4nCisgICAgICAgICAgICAgICAgICAgICUgKGNvbmZpZy5zZWN0aW9uLCBuYW1lKQorICAgICAgICAgICAgICAgICAgICApCisKKworZGVmIGlzX3NlY3Rpb25fZW1wdHkoc2VjdGlvbiwgbG9jYWwpOgorICAgICIiIlJldHVybiBUcnVlIGlmZiB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gc2VjdGlvbiBpcyBlbXB0eS4KKworICAgIElmZiBsb2NhbCBpcyBUcnVlLCB1c2UgdGhlIC0tbG9jYWwgb3B0aW9uIHdoZW4gaW52b2tpbmcgJ2dpdAorICAgIGNvbmZpZycuIiIiCisKKyAgICBpZiBsb2NhbDoKKyAgICAgICAgbG9jYWxfb3B0aW9uID0gWyctLWxvY2FsJ10KKyAgICBlbHNlOgorICAgICAgICBsb2NhbF9vcHRpb24gPSBbXQorCisgICAgdHJ5OgorICAgICAgICByZWFkX291dHB1dCgKKyAgICAgICAgICAgIFsnZ2l0JywgJ2NvbmZpZyddCisgICAgICAgICAgICArIGxvY2FsX29wdGlvbgorICAgICAgICAgICAgKyBbJy0tZ2V0LXJlZ2V4cCcsICdeJXNcLicgJSAoc2VjdGlvbiwpXQorICAgICAgICAgICAgKQorICAgIGV4Y2VwdCBDb21tYW5kRXJyb3IsIGU6CisgICAgICAgIGlmIGUucmV0Y29kZSA9PSAxOgorICAgICAgICAgICAgIyBUaGlzIG1lYW5zIHRoYXQgbm8gc2V0dGluZ3Mgd2VyZSBmb3VuZC4KKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBGYWxzZQorCisKK2RlZiByZW1vdmVfc2VjdGlvbl9pZl9lbXB0eShzZWN0aW9uKToKKyAgICAiIiJJZiB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gc2VjdGlvbiBpcyBlbXB0eSwgZGVsZXRlIGl0LiIiIgorCisgICAgdHJ5OgorICAgICAgICBlbXB0eSA9IGlzX3NlY3Rpb25fZW1wdHkoc2VjdGlvbiwgbG9jYWw9VHJ1ZSkKKyAgICBleGNlcHQgQ29tbWFuZEVycm9yOgorICAgICAgICAjIE9sZGVyIHZlcnNpb25zIG9mIGdpdCBkbyBub3Qgc3VwcG9ydCB0aGUgLS1sb2NhbCBvcHRpb24sIHNvCisgICAgICAgICMgaWYgdGhlIGZpcnN0IGF0dGVtcHQgZmFpbHMsIHRyeSB3aXRob3V0IC0tbG9jYWwuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGVtcHR5ID0gaXNfc2VjdGlvbl9lbXB0eShzZWN0aW9uLCBsb2NhbD1GYWxzZSkKKyAgICAgICAgZXhjZXB0IENvbW1hbmRFcnJvcjoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgJ1xuSU5GTzogSWYgY29uZmlndXJhdGlvbiBzZWN0aW9uICIlcy4qIiBpcyBlbXB0eSwgeW91IG1pZ2h0IHdhbnQgJworICAgICAgICAgICAgICAgICd0byBkZWxldGUgaXQuXG5cbicKKyAgICAgICAgICAgICAgICAlIChzZWN0aW9uLCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICByZXR1cm4KKworICAgIGlmIGVtcHR5OgorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCcuLi5yZW1vdmluZyBzZWN0aW9uICIlcy4qIlxuJyAlIChzZWN0aW9uLCkpCisgICAgICAgIHJlYWRfb3V0cHV0KFsnZ2l0JywgJ2NvbmZpZycsICctLXJlbW92ZS1zZWN0aW9uJywgc2VjdGlvbl0pCisgICAgZWxzZToKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICdcbklORk86IENvbmZpZ3VyYXRpb24gc2VjdGlvbiAiJXMuKiIgc3RpbGwgaGFzIGNvbnRlbnRzLiAgJworICAgICAgICAgICAgJ0l0IHdpbGwgbm90IGJlIGRlbGV0ZWQuXG5cbicKKyAgICAgICAgICAgICUgKHNlY3Rpb24sKQorICAgICAgICAgICAgKQorCisKK2RlZiBtaWdyYXRlX2NvbmZpZyhzdHJpY3Q9RmFsc2UsIHJldGFpbj1GYWxzZSwgb3ZlcndyaXRlPUZhbHNlKToKKyAgICBvbGQgPSBDb25maWcoJ2hvb2tzJykKKyAgICBuZXcgPSBDb25maWcoJ211bHRpbWFpbGhvb2snKQorICAgIGlmIG5vdCBfY2hlY2tfb2xkX2NvbmZpZ19leGlzdHMob2xkKToKKyAgICAgICAgc3lzLmV4aXQoCisgICAgICAgICAgICAnWW91ciByZXBvc2l0b3J5IGhhcyBubyBwb3N0LXJlY2VpdmUtZW1haWwgY29uZmlndXJhdGlvbi4gICcKKyAgICAgICAgICAgICdOb3RoaW5nIHRvIGRvLicKKyAgICAgICAgICAgICkKKyAgICBpZiBub3QgX2NoZWNrX25ld19jb25maWdfY2xlYXIobmV3KToKKyAgICAgICAgaWYgb3ZlcndyaXRlOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnXG5XQVJOSU5HOiBFcmFzaW5nIHRoZSBhYm92ZSB2YWx1ZXMuLi5cblxuJykKKyAgICAgICAgICAgIGVyYXNlX3ZhbHVlcyhuZXcsIE5FV19OQU1FUykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHN5cy5leGl0KAorICAgICAgICAgICAgICAgICdcbkVSUk9SOiBSZWZ1c2luZyB0byBvdmVyd3JpdGUgZXhpc3RpbmcgdmFsdWVzLiAgVXNlIHRoZSAtLW92ZXJ3cml0ZVxuJworICAgICAgICAgICAgICAgICdvcHRpb24gdG8gY29udGludWUgYW55d2F5LicKKyAgICAgICAgICAgICAgICApCisKKyAgICBuYW1lID0gJ3Nob3dyZXYnCisgICAgaWYgb2xkLmhhc19rZXkobmFtZSk6CisgICAgICAgIG1zZyA9ICdnaXQtbXVsdGltYWlsIGRvZXMgbm90IHN1cHBvcnQgIiVzLiVzIicgJSAob2xkLnNlY3Rpb24sIG5hbWUsKQorICAgICAgICBpZiBzdHJpY3Q6CisgICAgICAgICAgICBzeXMuZXhpdCgKKyAgICAgICAgICAgICAgICAnRVJST1I6ICVzLlxuJworICAgICAgICAgICAgICAgICdQbGVhc2UgdW5zZXQgdGhhdCB2YWx1ZSB0aGVuIHRyeSBhZ2Fpbiwgb3IgcnVuIHdpdGhvdXQgLS1zdHJpY3QuJworICAgICAgICAgICAgICAgICUgKG1zZywpCisgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnXG5XQVJOSU5HOiAlcyAoaWdub3JpbmcpLlxuXG4nICUgKG1zZywpKQorCisgICAgZm9yIG5hbWUgaW4gWydtYWlsaW5nbGlzdCcsICdhbm5vdW5jZWxpc3QnXToKKyAgICAgICAgaWYgb2xkLmhhc19rZXkobmFtZSk6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgICAgICcuLi5jb3B5aW5nICIlcy4lcyIgdG8gIiVzLiVzIlxuJyAlIChvbGQuc2VjdGlvbiwgbmFtZSwgbmV3LnNlY3Rpb24sIG5hbWUpCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgbmV3LnNldF9yZWNpcGllbnRzKG5hbWUsIG9sZC5nZXRfcmVjaXBpZW50cyhuYW1lKSkKKworICAgIGlmIHN0cmljdDoKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICcuLi5zZXR0aW5nICIlcy5jb21taXRsaXN0IiB0byB0aGUgZW1wdHkgc3RyaW5nXG4nICUgKG5ldy5zZWN0aW9uLCkKKyAgICAgICAgICAgICkKKyAgICAgICAgbmV3LnNldF9yZWNpcGllbnRzKCdjb21taXRsaXN0JywgJycpCisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAnLi4uc2V0dGluZyAiJXMuYW5ub3VuY2VzaG9ydGxvZyIgdG8gInRydWUiXG4nICUgKG5ldy5zZWN0aW9uLCkKKyAgICAgICAgICAgICkKKyAgICAgICAgbmV3LnNldCgnYW5ub3VuY2VzaG9ydGxvZycsICd0cnVlJykKKworICAgIGZvciBuYW1lIGluIFsnZW52ZWxvcGVzZW5kZXInLCAnZW1haWxtYXhsaW5lcycsICdkaWZmb3B0cyddOgorICAgICAgICBpZiBvbGQuaGFzX2tleShuYW1lKToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgJy4uLmNvcHlpbmcgIiVzLiVzIiB0byAiJXMuJXMiXG4nICUgKG9sZC5zZWN0aW9uLCBuYW1lLCBuZXcuc2VjdGlvbiwgbmFtZSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBuZXcuc2V0KG5hbWUsIG9sZC5nZXQobmFtZSkpCisKKyAgICBuYW1lID0gJ2VtYWlscHJlZml4JworICAgIGlmIG9sZC5oYXNfa2V5KG5hbWUpOgorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgJy4uLmNvcHlpbmcgIiVzLiVzIiB0byAiJXMuJXMiXG4nICUgKG9sZC5zZWN0aW9uLCBuYW1lLCBuZXcuc2VjdGlvbiwgbmFtZSkKKyAgICAgICAgICAgICkKKyAgICAgICAgbmV3LnNldChuYW1lLCBvbGQuZ2V0KG5hbWUpKQorICAgIGVsaWYgc3RyaWN0OgorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgJy4uLnNldHRpbmcgIiVzLiVzIiB0byAiW1NDTV0iIHRvIHByZXNlcnZlIG9sZCBzdWJqZWN0IGxpbmVzXG4nCisgICAgICAgICAgICAlIChuZXcuc2VjdGlvbiwgbmFtZSkKKyAgICAgICAgICAgICkKKyAgICAgICAgbmV3LnNldChuYW1lLCAnW1NDTV0nKQorCisgICAgaWYgbm90IHJldGFpbjoKKyAgICAgICAgZXJhc2VfdmFsdWVzKG9sZCwgT0xEX05BTUVTKQorICAgICAgICByZW1vdmVfc2VjdGlvbl9pZl9lbXB0eShvbGQuc2VjdGlvbikKKworICAgIHN5cy5zdGRlcnIud3JpdGUoSU5GTykKKyAgICBmb3IgbmFtZSBpbiBORVdfTkFNRVM6CisgICAgICAgIGlmIG5hbWUgbm90IGluIE9MRF9OQU1FUzoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJyAgICAiJXMuJXMiXG4nICUgKG5ldy5zZWN0aW9uLCBuYW1lLCkpCisgICAgc3lzLnN0ZGVyci53cml0ZSgnXG4nKQorCisKK2RlZiBtYWluKGFyZ3MpOgorICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigKKyAgICAgICAgZGVzY3JpcHRpb249X19kb2NfXywKKyAgICAgICAgdXNhZ2U9JyVwcm9nIFtPUFRJT05TXScsCisgICAgICAgICkKKworICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1zdHJpY3QnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICBoZWxwPSgKKyAgICAgICAgICAgICdTbGF2aXNobHkgY29uZmlndXJlIGdpdC1tdWx0aW1haWwgYXMgY2xvc2VseSBhcyBwb3NzaWJsZSB0byAnCisgICAgICAgICAgICAndGhlIHBvc3QtcmVjZWl2ZS1lbWFpbCBjb25maWd1cmF0aW9uLiAgRGVmYXVsdCBpcyB0byB0dXJuICcKKyAgICAgICAgICAgICdvbiBzb21lIG5ldyBmZWF0dXJlcyB0aGF0IGhhdmUgbm8gZXF1aXZhbGVudCBpbiBwb3N0LXJlY2VpdmUtZW1haWwuJworICAgICAgICAgICAgKSwKKyAgICAgICAgKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1yZXRhaW4nLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICBoZWxwPSgKKyAgICAgICAgICAgICdSZXRhaW4gdGhlIHBvc3QtcmVjZWl2ZS1lbWFpbCBjb25maWd1cmF0aW9uIHZhbHVlcy4gICcKKyAgICAgICAgICAgICdEZWZhdWx0IGlzIHRvIGRlbGV0ZSB0aGVtIGFmdGVyIHRoZSBuZXcgdmFsdWVzIGFyZSBzZXQuJworICAgICAgICAgICAgKSwKKyAgICAgICAgKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1vdmVyd3JpdGUnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICBoZWxwPSgKKyAgICAgICAgICAgICdPdmVyd3JpdGUgYW55IGV4aXN0aW5nIGdpdC1tdWx0aW1haWwgY29uZmlndXJhdGlvbiBzZXR0aW5ncy4gICcKKyAgICAgICAgICAgICdEZWZhdWx0IGlzIHRvIGFib3J0IGlmIHN1Y2ggc2V0dGluZ3MgYWxyZWFkeSBleGlzdC4nCisgICAgICAgICAgICApLAorICAgICAgICApCisKKyAgICAob3B0aW9ucywgYXJncykgPSBwYXJzZXIucGFyc2VfYXJncyhhcmdzKQorCisgICAgaWYgYXJnczoKKyAgICAgICAgcGFyc2VyLmVycm9yKCdVbmV4cGVjdGVkIGFyZ3VtZW50czogJXMnICUgKCcgJy5qb2luKGFyZ3MpLCkpCisKKyAgICBtaWdyYXRlX2NvbmZpZyhzdHJpY3Q9b3B0aW9ucy5zdHJpY3QsIHJldGFpbj1vcHRpb25zLnJldGFpbiwgb3ZlcndyaXRlPW9wdGlvbnMub3ZlcndyaXRlKQorCisKK21haW4oc3lzLmFyZ3ZbMTpdKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9ob29rcy9tdWx0aW1haWwvcG9zdC1yZWNlaXZlIGIvY29udHJpYi9ob29rcy9tdWx0aW1haWwvcG9zdC1yZWNlaXZlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkzZWJiNDMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2hvb2tzL211bHRpbWFpbC9wb3N0LXJlY2VpdmUKQEAgLTAsMCArMSw5MCBAQAorIyEgL3Vzci9iaW4vZW52IHB5dGhvbjIKKworIiIiRXhhbXBsZSBwb3N0LXJlY2VpdmUgaG9vayBiYXNlZCBvbiBnaXQtbXVsdGltYWlsLgorCitUaGlzIHNjcmlwdCBpcyBhIHNpbXBsZSBleGFtcGxlIG9mIGEgcG9zdC1yZWNlaXZlIGhvb2sgaW1wbGVtZW50ZWQKK3VzaW5nIGdpdF9tdWx0aW1haWwucHkgYXMgYSBQeXRob24gbW9kdWxlLiAgSXQgaXMgaW50ZW5kZWQgdG8gYmUKK2N1c3RvbWl6ZWQgYmVmb3JlIHVzZTsgc2VlIHRoZSBjb21tZW50cyBpbiB0aGUgc2NyaXB0IHRvIGhlbHAgeW91IGdldAorc3RhcnRlZC4KKworSXQgaXMgcG9zc2libGUgdG8gdXNlIGdpdF9tdWx0aW1haWwucHkgaXRzZWxmIGFzIGEgcG9zdC1yZWNlaXZlIG9yCit1cGRhdGUgaG9vaywgY29uZmlndXJlZCB2aWEgZ2l0IGNvbmZpZyBzZXR0aW5ncyBhbmQvb3IgY29tbWFuZC1saW5lCitwYXJhbWV0ZXJzLiAgQnV0IGZvciBtb3JlIGZsZXhpYmlsaXR5LCBpdCBjYW4gYWxzbyBiZSBpbXBvcnRlZCBhcyBhCitQeXRob24gbW9kdWxlIGJ5IGEgY3VzdG9tIHBvc3QtcmVjZWl2ZSBzY3JpcHQgYXMgZG9uZSBoZXJlLiAgVGhlCitsYXR0ZXIgaGFzIHRoZSBmb2xsb3dpbmcgYWR2YW50YWdlczoKKworKiBUaGUgdG9vbCdzIGJlaGF2aW9yIGNhbiBiZSBjdXN0b21pemVkIHVzaW5nIGFyYml0cmFyeSBQeXRob24gY29kZSwKKyAgd2l0aG91dCBoYXZpbmcgdG8gZWRpdCBnaXRfbXVsdGltYWlsLnB5LgorCisqIENvbmZpZ3VyYXRpb24gc2V0dGluZ3MgY2FuIGJlIHJlYWQgZnJvbSBvdGhlciBzb3VyY2VzOyBmb3IgZXhhbXBsZSwKKyAgdXNlciBuYW1lcyBhbmQgZW1haWwgYWRkcmVzc2VzIGNvdWxkIGJlIHJlYWQgZnJvbSBMREFQIG9yIGZyb20gYQorICBkYXRhYmFzZS4gIE9yIHRoZSBzZXR0aW5ncyBjYW4gZXZlbiBiZSBoYXJkY29kZWQgaW4gdGhlIGltcG9ydGluZworICBQeXRob24gc2NyaXB0LCBpZiB0aGlzIGlzIHByZWZlcnJlZC4KKworVGhpcyBzY3JpcHQgaXMgYSB2ZXJ5IGJhc2ljIGV4YW1wbGUgb2YgaG93IHRvIHVzZSBnaXRfbXVsdGltYWlsLnB5IGFzCithIG1vZHVsZS4gIFRoZSBjb21tZW50cyBiZWxvdyBleHBsYWluIHNvbWUgb2YgdGhlIHBvaW50cyBhdCB3aGljaCB0aGUKK3NjcmlwdCdzIGJlaGF2aW9yIGNvdWxkIGJlIGNoYW5nZWQgb3IgY3VzdG9taXplZC4KKworIiIiCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCisjIElmIG5lY2Vzc2FyeSwgYWRkIHRoZSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZworIyBnaXRfbXVsdGltYWlsLnB5IHRvIHRoZSBQeXRob24gcGF0aCBhcyBmb2xsb3dzLiAgKFRoaXMgaXMgbm90CisjIG5lY2Vzc2FyeSBpZiBnaXRfbXVsdGltYWlsLnB5IGlzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGlzCisjIHNjcmlwdCk6CisKKyNMSUJESVIgPSAncGF0aC90by9kaXJlY3RvcnkvY29udGFpbmluZy9tb2R1bGUnCisjc3lzLnBhdGguaW5zZXJ0KDAsIExJQkRJUikKKworaW1wb3J0IGdpdF9tdWx0aW1haWwKKworCisjIEl0IGlzIHBvc3NpYmxlIHRvIG1vZGlmeSB0aGUgb3V0cHV0IHRlbXBsYXRlcyBoZXJlOyBlLmcuOgorCisjZ2l0X211bHRpbWFpbC5GT09URVJfVEVNUExBVEUgPSAiIiJcCisjCisjLS0gXG5cCisjVGhpcyBlbWFpbCB3YXMgZ2VuZXJhdGVkIGJ5IHRoZSB3b25kZXJmdWwgZ2l0LW11bHRpbWFpbCB0b29sLgorIyIiIgorCisKKyMgU3BlY2lmeSB3aGljaCAiZ2l0IGNvbmZpZyIgc2VjdGlvbiBjb250YWlucyB0aGUgY29uZmlndXJhdGlvbiBmb3IKKyMgZ2l0LW11bHRpbWFpbDoKK2NvbmZpZyA9IGdpdF9tdWx0aW1haWwuQ29uZmlnKCdtdWx0aW1haWxob29rJykKKworCisjIFNlbGVjdCB0aGUgdHlwZSBvZiBlbnZpcm9ubWVudDoKK2Vudmlyb25tZW50ID0gZ2l0X211bHRpbWFpbC5HZW5lcmljRW52aXJvbm1lbnQoY29uZmlnPWNvbmZpZykKKyNlbnZpcm9ubWVudCA9IGdpdF9tdWx0aW1haWwuR2l0b2xpdGVFbnZpcm9ubWVudChjb25maWc9Y29uZmlnKQorCisKKyMgQ2hvb3NlIHRoZSBtZXRob2Qgb2Ygc2VuZGluZyBlbWFpbHMgYmFzZWQgb24gdGhlIGdpdCBjb25maWc6CittYWlsZXIgPSBnaXRfbXVsdGltYWlsLmNob29zZV9tYWlsZXIoY29uZmlnLCBlbnZpcm9ubWVudCkKKworIyBBbHRlcm5hdGl2ZWx5LCB5b3UgbWF5IGhhcmRjb2RlIHRoZSBtYWlsZXIgdXNpbmcgY29kZSBsaWtlIG9uZSBvZgorIyB0aGUgZm9sbG93aW5nOgorCisjIFVzZSAiL3Vzci9zYmluL3NlbmRtYWlsIC10IiB0byBzZW5kIGVtYWlscy4gIFRoZSBlbnZlbG9wZXNlbmRlcgorIyBhcmd1bWVudCBpcyBvcHRpb25hbDoKKyNtYWlsZXIgPSBnaXRfbXVsdGltYWlsLlNlbmRNYWlsZXIoCisjICAgIGNvbW1hbmQ9WycvdXNyL3NiaW4vc2VuZG1haWwnLCAnLXQnXSwKKyMgICAgZW52ZWxvcGVzZW5kZXI9J2dpdC1yZXBvQGV4YW1wbGUuY29tJywKKyMgICAgKQorCisjIFVzZSBQeXRob24ncyBzbXRwbGliIHRvIHNlbmQgZW1haWxzLiAgQm90aCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkLgorI21haWxlciA9IGdpdF9tdWx0aW1haWwuU01UUE1haWxlcigKKyMgICAgZW52ZWxvcGVzZW5kZXI9J2dpdC1yZXBvQGV4YW1wbGUuY29tJywKKyMgICAgIyBUaGUgc210cHNlcnZlciBhcmd1bWVudCBjYW4gYWxzbyBpbmNsdWRlIGEgcG9ydCBudW1iZXI7IGUuZy4sCisjICAgICMgICAgIHNtdHBzZXJ2ZXI9J21haWwuZXhhbXBsZS5jb206MjUnCisjICAgIHNtdHBzZXJ2ZXI9J21haWwuZXhhbXBsZS5jb20nLAorIyAgICApCisKKyMgT3V0cHV0TWFpbGVyIGlzIGludGVuZGVkIG9ubHkgZm9yIHRlc3Rpbmc7IGl0IHdyaXRlcyB0aGUgZW1haWxzIHRvCisjIHRoZSBzcGVjaWZpZWQgZmlsZSBzdHJlYW0uCisjbWFpbGVyID0gZ2l0X211bHRpbWFpbC5PdXRwdXRNYWlsZXIoc3lzLnN0ZG91dCkKKworCisjIFJlYWQgY2hhbmdlcyBmcm9tIHN0ZGluIGFuZCBzZW5kIG5vdGlmaWNhdGlvbiBlbWFpbHM6CitnaXRfbXVsdGltYWlsLnJ1bl9hc19wb3N0X3JlY2VpdmVfaG9vayhlbnZpcm9ubWVudCwgbWFpbGVyKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9ob29rcy9wb3N0LXJlY2VpdmUtZW1haWwgYi9jb250cmliL2hvb2tzL3Bvc3QtcmVjZWl2ZS1lbWFpbAppbmRleCAwZTViNzJkLi4xNTMxMTUwIDEwMDc1NQotLS0gYS9jb250cmliL2hvb2tzL3Bvc3QtcmVjZWl2ZS1lbWFpbAorKysgYi9jb250cmliL2hvb2tzL3Bvc3QtcmVjZWl2ZS1lbWFpbApAQCAtMiwxMCArMiwxOSBAQAogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDcgQW5keSBQYXJraW5zCiAjCi0jIEFuIGV4YW1wbGUgaG9vayBzY3JpcHQgdG8gbWFpbCBvdXQgY29tbWl0IHVwZGF0ZSBpbmZvcm1hdGlvbi4gIFRoaXMgaG9vawotIyBzZW5kcyBlbWFpbHMgbGlzdGluZyBuZXcgcmV2aXNpb25zIHRvIHRoZSByZXBvc2l0b3J5IGludHJvZHVjZWQgYnkgdGhlCi0jIGNoYW5nZSBiZWluZyByZXBvcnRlZC4gIFRoZSBydWxlIGlzIHRoYXQgKGZvciBicmFuY2ggdXBkYXRlcykgZWFjaCBjb21taXQKLSMgd2lsbCBhcHBlYXIgb24gb25lIGVtYWlsIGFuZCBvbmUgZW1haWwgb25seS4KKyMgQW4gZXhhbXBsZSBob29rIHNjcmlwdCB0byBtYWlsIG91dCBjb21taXQgdXBkYXRlIGluZm9ybWF0aW9uLgorIworIyBOT1RFOiBUaGlzIHNjcmlwdCBpcyBubyBsb25nZXIgdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50LiAgVGhlcmUKKyMgaXMgYW5vdGhlciBzY3JpcHQsIGdpdC1tdWx0aW1haWwsIHdoaWNoIGlzIG1vcmUgY2FwYWJsZSBhbmQKKyMgY29uZmlndXJhYmxlIGFuZCBpcyBsYXJnZWx5IGJhY2t3YXJkcy1jb21wYXRpYmxlIHdpdGggdGhpcyBzY3JpcHQ7CisjIHBsZWFzZSBzZWUgImNvbnRyaWIvaG9va3MvbXVsdGltYWlsLyIuICBGb3IgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0bworIyBtaWdyYXRlIGZyb20gcG9zdC1yZWNlaXZlLWVtYWlsIHRvIGdpdC1tdWx0aW1haWwsIHBsZWFzZSBzZWUKKyMgIlJFQURNRS5taWdyYXRlLWZyb20tcG9zdC1yZWNlaXZlLWVtYWlsIiBpbiB0aGF0IGRpcmVjdG9yeS4KKyMKKyMgVGhpcyBob29rIHNlbmRzIGVtYWlscyBsaXN0aW5nIG5ldyByZXZpc2lvbnMgdG8gdGhlIHJlcG9zaXRvcnkKKyMgaW50cm9kdWNlZCBieSB0aGUgY2hhbmdlIGJlaW5nIHJlcG9ydGVkLiAgVGhlIHJ1bGUgaXMgdGhhdCAoZm9yCisjIGJyYW5jaCB1cGRhdGVzKSBlYWNoIGNvbW1pdCB3aWxsIGFwcGVhciBvbiBvbmUgZW1haWwgYW5kIG9uZSBlbWFpbAorIyBvbmx5LgogIwogIyBUaGlzIGhvb2sgaXMgc3RvcmVkIGluIHRoZSBjb250cmliL2hvb2tzIGRpcmVjdG9yeS4gIFlvdXIgZGlzdHJpYnV0aW9uCiAjIHdpbGwgaGF2ZSBwdXQgdGhpcyBzb21ld2hlcmUgc3RhbmRhcmQuICBZb3Ugc2hvdWxkIG1ha2UgdGhpcyBzY3JpcHQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbXctdG8tZ2l0Ly5naXRpZ25vcmUgYi9jb250cmliL213LXRvLWdpdC8uZ2l0aWdub3JlCmluZGV4IGI5MTk2NTUuLmFlNTQ1YjAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbXctdG8tZ2l0Ly5naXRpZ25vcmUKKysrIGIvY29udHJpYi9tdy10by1naXQvLmdpdGlnbm9yZQpAQCAtMSArMSwyIEBACiBnaXQtcmVtb3RlLW1lZGlhd2lraQorZ2l0LW13CmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC8ucGVybGNyaXRpY3JjIGIvY29udHJpYi9tdy10by1naXQvLnBlcmxjcml0aWNyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTk5NTVkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9tdy10by1naXQvLnBlcmxjcml0aWNyYwpAQCAtMCwwICsxLDI4IEBACisjIFRoZXNlIDMgcnVsZXMgZGVtYW5kIHRvIGFkZCB0aGUgcywgbSBhbmQgeCBmbGFnIHRvICpldmVyeSogcmVnZXhwLiBUaGlzIGlzCisjIG92ZXJraWxsIGFuZCB3b3VsZCBiZSBoYXJtZnVsIGZvciByZWFkYWJpbGl0eS4KK1stUmVndWxhckV4cHJlc3Npb25zOjpSZXF1aXJlRXh0ZW5kZWRGb3JtYXR0aW5nXQorWy1SZWd1bGFyRXhwcmVzc2lvbnM6OlJlcXVpcmVEb3RNYXRjaEFueXRoaW5nXQorWy1SZWd1bGFyRXhwcmVzc2lvbnM6OlJlcXVpcmVMaW5lQm91bmRhcnlNYXRjaGluZ10KKworIyBUaGlzIHJ1bGUgc2F5cyB0aGF0IGJ1aWx0aW4gZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggcGFyZW50aGVzZXMKKyMgZS5nLjogKHRha2VuIGZyb20gQ1BBTidzIGRvY3VtZW50YXRpb24pCisjIG9wZW4oJGhhbmRsZSwgJz4nLCAkZmlsZW5hbWUpOyAjbm90IG9rCisjIG9wZW4gJGhhbmRsZSwgJz4nLCAkZmlsZW5hbWU7ICAjb2sKKyMgQXBwbHlpbmcgc3VjaCBhIHJ1bGUgd291bGQgbWVhbiBtb2RpZnlpbmcgYSBodWdlIG51bWJlciBvZiBsaW5lcyBmb3IgYQorIyBxdWVzdGlvbiBvZiBzdHlsZS4KK1stQ29kZUxheW91dDo6UHJvaGliaXRQYXJlbnNXaXRoQnVpbHRpbnNdCisKKyMgVGhpcyBydWxlIHN0YXRlcyB0aGF0IGVhY2ggc3lzdGVtIGNhbGwgc2hvdWxkIGhhdmUgaXRzIHJldHVybiB2YWx1ZSBjaGVja2VkCisjIFRoZSBwcm9ibGVtIGlzIHRoYXQgaXQgaW5jbHVkZXMgdGhlIHByaW50IGNhbGwuIENoZWNraW5nIGV2ZXJ5IHByaW50IGNhbGwncworIyByZXR1cm4gdmFsdWUgd291bGQgYmUgaGFybWZ1bCB0byB0aGUgY29kZSByZWFkYWJpbHR5LgorIyBUaGlzIGNvbmZpZ3VyYXRpb24ga2VlcHMgYWxsIGRlZmF1bHQgZnVuY3Rpb24gYnV0IHByaW50LgorW0lucHV0T3V0cHV0OjpSZXF1aXJlQ2hlY2tlZFN5c2NhbGxzXQorZnVuY3Rpb25zID0gb3BlbiBzYXkgY2xvc2UKKworIyBUaGlzIHJ1bGVzIGRlbWFuZHMgdG8gYWRkIGEgZGVwZW5kYW5jeSBmb3IgdGhlIFJlYWRvbmx5IG1vZHVsZS4gVGhpcyBpcyBub3QKKyMgd2lzaGVkLgorWy1WYWx1ZXNBbmRFeHByZXNzaW9uczo6UHJvaGliaXRDb25zdGFudFByYWdtYV0KKworIyBUaGlzIHJ1bGUgaXMgbm90IHJlYWxseSB1c2VmdWwgKHJhdGhlciBhIHF1ZXN0aW9uIG9mIHN0eWxlKSBhbmQgcHJvZHVjZXMgbWFueQorIyB3YXJuaW5ncyBhbW9uZyB0aGUgY29kZS4KK1stVmFsdWVzQW5kRXhwcmVzc2lvbnM6OlByb2hpYml0Tm9pc3lRdW90ZXNdCmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC9HaXQvTWVkaWF3aWtpLnBtIGIvY29udHJpYi9tdy10by1naXQvR2l0L01lZGlhd2lraS5wbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTNjNGRmCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9tdy10by1naXQvR2l0L01lZGlhd2lraS5wbQpAQCAtMCwwICsxLDEwMCBAQAorcGFja2FnZSBHaXQ6Ok1lZGlhd2lraTsKKwordXNlIDUuMDA4OwordXNlIHN0cmljdDsKK3VzZSBHaXQ7CisKK0JFR0lOIHsKKworb3VyICgkVkVSU0lPTiwgQElTQSwgQEVYUE9SVCwgQEVYUE9SVF9PSyk7CisKKyMgVG90YWxseSB1bnN0YWJsZSBBUEkuCiskVkVSU0lPTiA9ICcwLjAxJzsKKworcmVxdWlyZSBFeHBvcnRlcjsKKworQElTQSA9IHF3KEV4cG9ydGVyKTsKKworQEVYUE9SVCA9ICgpOworCisjIE1ldGhvZHMgd2hpY2ggY2FuIGJlIGNhbGxlZCBhcyBzdGFuZGFsb25lIGZ1bmN0aW9ucyBhcyB3ZWxsOgorQEVYUE9SVF9PSyA9IHF3KGNsZWFuX2ZpbGVuYW1lIHNtdWRnZV9maWxlbmFtZSBjb25uZWN0X21heWJlCisJCQkJRU1QVFkgSFRUUF9DT0RFX09LIEhUVFBfQ09ERV9QQUdFX05PVF9GT1VORCk7Cit9CisKKyMgTWVkaWF3aWtpIGZpbGVuYW1lcyBjYW4gY29udGFpbiBmb3J3YXJkIHNsYXNoZXMuIFRoaXMgdmFyaWFibGUgZGVjaWRlcyBieSB3aGljaCBwYXR0ZXJuIHRoZXkgc2hvdWxkIGJlIHJlcGxhY2VkCit1c2UgY29uc3RhbnQgU0xBU0hfUkVQTEFDRU1FTlQgPT4gJyUyRic7CisKKyMgVXNlZCB0byB0ZXN0IGZvciBlbXB0eSBzdHJpbmdzCit1c2UgY29uc3RhbnQgRU1QVFkgPT4gcXt9OworCisjIEhUVFAgY29kZXMKK3VzZSBjb25zdGFudCBIVFRQX0NPREVfT0sgPT4gMjAwOwordXNlIGNvbnN0YW50IEhUVFBfQ09ERV9QQUdFX05PVF9GT1VORCA9PiA0MDQ7CisKK3N1YiBjbGVhbl9maWxlbmFtZSB7CisJbXkgJGZpbGVuYW1lID0gc2hpZnQ7CisJJGZpbGVuYW1lID1+IHN7QHtbU0xBU0hfUkVQTEFDRU1FTlRdfX17L31nOworCSMgWywgXSwgfCwgeywgYW5kIH0gYXJlIGZvcmJpZGRlbiBieSBNZWRpYVdpa2ksIGV2ZW4gVVJMLWVuY29kZWQuCisJIyBEbyBhIHZhcmlhbnQgb2YgVVJMLWVuY29kaW5nLCBpLmUuIGxvb2tzIGxpa2UgVVJMLWVuY29kaW5nLAorCSMgYnV0IHdpdGggXyBhZGRlZCB0byBwcmV2ZW50IE1lZGlhV2lraSBmcm9tIHRoaW5raW5nIHRoaXMgaXMKKwkjIGFuIGFjdHVhbCBzcGVjaWFsIGNoYXJhY3Rlci4KKwkkZmlsZW5hbWUgPX4gcy9bXFtcXVx7XH1cfF0vc3ByaW50ZigiXyUlXyV4Iiwgb3JkKCQmKSkvZ2U7CisJIyBJZiB3ZSB1c2UgdGhlIHVyaSBlc2NhcGUgYmVmb3JlCisJIyB3ZSBzaG91bGQgdW5lc2NhcGUgaGVyZSwgYmVmb3JlIGFueXRoaW5nCisKKwlyZXR1cm4gJGZpbGVuYW1lOworfQorCitzdWIgc211ZGdlX2ZpbGVuYW1lIHsKKwlteSAkZmlsZW5hbWUgPSBzaGlmdDsKKwkkZmlsZW5hbWUgPX4gc3svfXtAe1tTTEFTSF9SRVBMQUNFTUVOVF19fWc7CisJJGZpbGVuYW1lID1+IHMvIC9fL2c7CisJIyBEZWNvZGUgZm9yYmlkZGVuIGNoYXJhY3RlcnMgZW5jb2RlZCBpbiBjbGVhbl9maWxlbmFtZQorCSRmaWxlbmFtZSA9fiBzL18lXyhbMC05YS1mQS1GXVswLTlhLWZBLUZdKS9zcHJpbnRmKCclYycsIGhleCgkMSkpL2dlOworCXJldHVybiAkZmlsZW5hbWU7Cit9CisKK3N1YiBjb25uZWN0X21heWJlIHsKKwlteSAkd2lraSA9IHNoaWZ0OworCWlmICgkd2lraSkgeworCQlyZXR1cm4gJHdpa2k7CisJfQorCisJbXkgJHJlbW90ZV9uYW1lID0gc2hpZnQ7CisJbXkgJHJlbW90ZV91cmwgPSBzaGlmdDsKKwlteSAoJHdpa2lfbG9naW4sICR3aWtpX3Bhc3N3b3JkLCAkd2lraV9kb21haW4pOworCisJJHdpa2lfbG9naW4gPSBHaXQ6OmNvbmZpZygicmVtb3RlLiR7cmVtb3RlX25hbWV9Lm13TG9naW4iKTsKKwkkd2lraV9wYXNzd29yZCA9IEdpdDo6Y29uZmlnKCJyZW1vdGUuJHtyZW1vdGVfbmFtZX0ubXdQYXNzd29yZCIpOworCSR3aWtpX2RvbWFpbiA9IEdpdDo6Y29uZmlnKCJyZW1vdGUuJHtyZW1vdGVfbmFtZX0ubXdEb21haW4iKTsKKworCSR3aWtpID0gTWVkaWFXaWtpOjpBUEktPm5ldzsKKwkkd2lraS0+e2NvbmZpZ30tPnthcGlfdXJsfSA9ICIke3JlbW90ZV91cmx9L2FwaS5waHAiOworCWlmICgkd2lraV9sb2dpbikgeworCQlteSAlY3JlZGVudGlhbCA9ICgKKwkJCSd1cmwnID0+ICRyZW1vdGVfdXJsLAorCQkJJ3VzZXJuYW1lJyA9PiAkd2lraV9sb2dpbiwKKwkJCSdwYXNzd29yZCcgPT4gJHdpa2lfcGFzc3dvcmQKKwkJKTsKKwkJR2l0OjpjcmVkZW50aWFsKFwlY3JlZGVudGlhbCk7CisJCW15ICRyZXF1ZXN0ID0ge2xnbmFtZSA9PiAkY3JlZGVudGlhbHt1c2VybmFtZX0sCisJCQkgICAgICAgbGdwYXNzd29yZCA9PiAkY3JlZGVudGlhbHtwYXNzd29yZH0sCisJCQkgICAgICAgbGdkb21haW4gPT4gJHdpa2lfZG9tYWlufTsKKwkJaWYgKCR3aWtpLT5sb2dpbigkcmVxdWVzdCkpIHsKKwkJCUdpdDo6Y3JlZGVudGlhbChcJWNyZWRlbnRpYWwsICdhcHByb3ZlJyk7CisJCQlwcmludCB7KlNUREVSUn0gcXEoTG9nZ2VkIGluIG1lZGlhd2lraSB1c2VyICIkY3JlZGVudGlhbHt1c2VybmFtZX0iLlxuKTsKKwkJfSBlbHNlIHsKKwkJCXByaW50IHsqU1RERVJSfSBxcShGYWlsZWQgdG8gbG9nIGluIG1lZGlhd2lraSB1c2VyICIkY3JlZGVudGlhbHt1c2VybmFtZX0iIG9uICR7cmVtb3RlX3VybH1cbik7CisJCQlwcmludCB7KlNUREVSUn0gJyAgKGVycm9yICcgLgorCQkJCSR3aWtpLT57ZXJyb3J9LT57Y29kZX0gLiAnOiAnIC4KKwkJCQkkd2lraS0+e2Vycm9yfS0+e2RldGFpbHN9IC4gIilcbiI7CisJCQlHaXQ6OmNyZWRlbnRpYWwoXCVjcmVkZW50aWFsLCAncmVqZWN0Jyk7CisJCQlleGl0IDE7CisJCX0KKwl9CisKKwlyZXR1cm4gJHdpa2k7Cit9CisKKzE7ICMgRmFtb3VzIGxhc3Qgd29yZHMKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbXctdG8tZ2l0L01ha2VmaWxlIGIvY29udHJpYi9tdy10by1naXQvTWFrZWZpbGUKaW5kZXggZjE0OTcxOS4uNzZmY2Q0ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9tdy10by1naXQvTWFrZWZpbGUKKysrIGIvY29udHJpYi9tdy10by1naXQvTWFrZWZpbGUKQEAgLTIsMTYgKzIsNDMgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEzCiAjICAgICBNYXR0aGlldSBNb3kgPE1hdHRoaWV1Lk1veUBpbWFnLmZyPgogIwotIyMgQnVpbGQgZ2l0LXJlbW90ZS1tZWRpYXdpa2kKKyMgVG8gYnVpbGQgYW5kIHRlc3Q6CisjCisjICAgbWFrZQorIyAgIGJpbi13cmFwcGVyL2dpdCBtdyBwcmV2aWV3IFNvbWVfcGFnZS5tdworIyAgIGJpbi13cmFwcGVyL2dpdCBjbG9uZSBtZWRpYXdpa2k6Omh0dHA6Ly9leGFtcGxlLmNvbS93aWtpLworIworIyBUbyBpbnN0YWxsLCBydW4gR2l0J3MgdG9wbGV2ZWwgJ21ha2UgaW5zdGFsbCcgdGhlbiBydW46CisjCisjICAgbWFrZSBpbnN0YWxsCiAKK0dJVF9NRURJQVdJS0lfUE09R2l0L01lZGlhd2lraS5wbQogU0NSSVBUX1BFUkw9Z2l0LXJlbW90ZS1tZWRpYXdpa2kucGVybAorU0NSSVBUX1BFUkwrPWdpdC1tdy5wZXJsCiBHSVRfUk9PVF9ESVI9Li4vLi4KIEhFUkU9Y29udHJpYi9tdy10by1naXQvCiAKIFNDUklQVF9QRVJMX0ZVTEw9JChwYXRzdWJzdCAlLCQoSEVSRSkvJSwkKFNDUklQVF9QRVJMKSkKK0lOU1RMSUJESVI9JChzaGVsbCAkKE1BS0UpIC1DICQoR0lUX1JPT1RfRElSKS9wZXJsIFwKKyAgICAgICAgICAgICAgICAtcyAtLW5vLXByaW50LWRpcmVjdG9yeSBpbnN0bGliZGlyKQogCiBhbGw6IGJ1aWxkCiAKLWJ1aWxkIGluc3RhbGwgY2xlYW46Ci0JJChNQUtFKSAtQyAkKEdJVF9ST09UX0RJUikgU0NSSVBUX1BFUkw9JChTQ1JJUFRfUEVSTF9GVUxMKSBcCi0gICAgICAgICAgICAgICAgJEAtcGVybC1zY3JpcHQKK2luc3RhbGxfcG06CisJaW5zdGFsbCAkKEdJVF9NRURJQVdJS0lfUE0pICQoSU5TVExJQkRJUikvJChHSVRfTUVESUFXSUtJX1BNKQorCitidWlsZDoKKwkkKE1BS0UpIC1DICQoR0lUX1JPT1RfRElSKSBTQ1JJUFRfUEVSTD0iJChTQ1JJUFRfUEVSTF9GVUxMKSIgXAorICAgICAgICAgICAgICAgIGJ1aWxkLXBlcmwtc2NyaXB0CisKK2luc3RhbGw6IGluc3RhbGxfcG0KKwkkKE1BS0UpIC1DICQoR0lUX1JPT1RfRElSKSBTQ1JJUFRfUEVSTD0iJChTQ1JJUFRfUEVSTF9GVUxMKSIgXAorICAgICAgICAgICAgICAgIGluc3RhbGwtcGVybC1zY3JpcHQKKworY2xlYW46CisJJChNQUtFKSAtQyAkKEdJVF9ST09UX0RJUikgU0NSSVBUX1BFUkw9IiQoU0NSSVBUX1BFUkxfRlVMTCkiIFwKKyAgICAgICAgICAgICAgICBjbGVhbi1wZXJsLXNjcmlwdAorCXJtICQoSU5TVExJQkRJUikvJChHSVRfTUVESUFXSUtJX1BNKQorCitwZXJsY3JpdGljOgorCXBlcmxjcml0aWMgLTIgKi5wZXJsCmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC9iaW4td3JhcHBlci9naXQgYi9jb250cmliL213LXRvLWdpdC9iaW4td3JhcHBlci9naXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjY2M2FlNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0L2Jpbi13cmFwcGVyL2dpdApAQCAtMCwwICsxLDE0IEBACisjIS9iaW4vc2gKKworIyBnaXQgZXhlY3V0YWJsZSB3cmFwcGVyIHNjcmlwdCBmb3IgR2l0LU1lZGlhd2lraSB0byBydW4gdGVzdHMgd2l0aG91dAorIyBpbnN0YWxsaW5nIGFsbCB0aGUgc2NyaXB0cyBhbmQgcGVybCBwYWNrYWdlcy4KKworR0lUX1JPT1RfRElSPS4uLy4uLy4uCitHSVRfRVhFQ19QQVRIPSQoY2QgIiQoZGlybmFtZSAiJDAiKSIgJiYgY2QgJHtHSVRfUk9PVF9ESVJ9ICYmIHB3ZCkKKworR0lUUEVSTExJQj0iJEdJVF9FWEVDX1BBVEgiJy9jb250cmliL213LXRvLWdpdCciJHtHSVRQRVJMTElCOis6JEdJVFBFUkxMSUJ9IgorUEFUSD0iJEdJVF9FWEVDX1BBVEgiJy9jb250cmliL213LXRvLWdpdDonIiRQQVRIIgorCitleHBvcnQgR0lUUEVSTExJQiBQQVRICisKK2V4ZWMgIiR7R0lUX0VYRUNfUEFUSH0vYmluLXdyYXBwZXJzL2dpdCIgIiRAIgpkaWZmIC0tZ2l0IGEvY29udHJpYi9tdy10by1naXQvZ2l0LW13LnBlcmwgYi9jb250cmliL213LXRvLWdpdC9naXQtbXcucGVybApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOGRmM2VlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9tdy10by1naXQvZ2l0LW13LnBlcmwKQEAgLTAsMCArMSwzNjggQEAKKyMhL3Vzci9iaW4vcGVybAorCisjIENvcHlyaWdodCAoQykgMjAxMworIyAgICAgQmVub2l0IFBlcnNvbiA8YmVub2l0LnBlcnNvbkBlbnNpbWFnLmltYWcuZnI+CisjICAgICBDZWxlc3RpbiBNYXR0ZSA8Y2VsZXN0aW4ubWF0dGVAZW5zaW1hZy5pbWFnLmZyPgorIyBMaWNlbnNlOiBHUEwgdjIgb3IgbGF0ZXIKKworIyBTZXQgb2YgdG9vbHMgZm9yIGdpdCByZXBvIHdpdGggYSBtZWRpYXdpa2kgcmVtb3RlLgorIyBEb2N1bWVudGF0aW9uICYgYnVndHJhY2tlcjogaHR0cHM6Ly9naXRodWIuY29tL21veS9HaXQtTWVkaWF3aWtpLworCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgR2V0b3B0OjpMb25nOwordXNlIFVSSTo6VVJMIHF3KHVybCk7Cit1c2UgTFdQOjpVc2VyQWdlbnQ7Cit1c2UgSFRNTDo6VHJlZUJ1aWxkZXI7CisKK3VzZSBHaXQ7Cit1c2UgTWVkaWFXaWtpOjpBUEk7Cit1c2UgR2l0OjpNZWRpYXdpa2kgcXcoY2xlYW5fZmlsZW5hbWUgY29ubmVjdF9tYXliZQorCQkJCQlFTVBUWSBIVFRQX0NPREVfUEFHRV9OT1RfRk9VTkQpOworCisjIEJ5IGRlZmF1bHQsIHVzZSBVVEYtOCB0byBjb21tdW5pY2F0ZSB3aXRoIEdpdCBhbmQgdGhlIHVzZXIKK2Jpbm1vZGUgU1RERVJSLCAnOmVuY29kaW5nKFVURi04KSc7CitiaW5tb2RlIFNURE9VVCwgJzplbmNvZGluZyhVVEYtOCknOworCisjIEdsb2JhbCBwYXJhbWV0ZXJzCitteSAkdmVyYm9zZSA9IDA7CitzdWIgdl9wcmludCB7CisJaWYgKCR2ZXJib3NlKSB7CisJCXJldHVybiBwcmludCB7KlNUREVSUn0gQF87CisJfQorCXJldHVybjsKK30KKworIyBQcmV2aWV3IHBhcmFtZXRlcnMKK215ICRmaWxlX25hbWUgPSBFTVBUWTsKK215ICRyZW1vdGVfbmFtZSA9IEVNUFRZOworbXkgJHByZXZpZXdfZmlsZV9uYW1lID0gRU1QVFk7CitteSAkYXV0b2xvYWQgPSAwOworc3ViIGZpbGUgeworCSRmaWxlX25hbWUgPSBzaGlmdDsKKwlyZXR1cm4gJGZpbGVfbmFtZTsKK30KKworbXkgJWNvbW1hbmRzID0gKAorCSdoZWxwJyA9PgorCQlbXCZoZWxwLCB7fSwgXCZoZWxwXSwKKwkncHJldmlldycgPT4KKwkJW1wmcHJldmlldywgeworCQkJJzw+JyA9PiBcJmZpbGUsCisJCQknb3V0cHV0fG89cycgPT4gXCRwcmV2aWV3X2ZpbGVfbmFtZSwKKwkJCSdyZW1vdGV8cj1zJyA9PiBcJHJlbW90ZV9uYW1lLAorCQkJJ2F1dG9sb2FkfGEnID0+IFwkYXV0b2xvYWQKKwkJfSwgXCZwcmV2aWV3X2hlbHBdCispOworCisjIFNlYXJjaCBmb3Igc3ViLWNvbW1hbmQKK215ICRjbWQgPSAkY29tbWFuZHN7J2hlbHAnfTsKK2ZvciAoMC4uQEFSR1YtMSkgeworCWlmIChkZWZpbmVkICRjb21tYW5kc3skQVJHVlskX119KSB7CisJCSRjbWQgPSAkY29tbWFuZHN7JEFSR1ZbJF9dfTsKKwkJc3BsaWNlIEBBUkdWLCAkXywgMTsKKwkJbGFzdDsKKwl9Cit9OworR2V0T3B0aW9ucyggJXskY21kLT5bMV19LAorCSdoZWxwfGgnID0+IFwmeyRjbWQtPlsyXX0sCisJJ3ZlcmJvc2V8dicgID0+IFwkdmVyYm9zZSk7CisKKyMgTGF1bmNoIGNvbW1hbmQKKyZ7JGNtZC0+WzBdfTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgUHJldmlldyBGdW5jdGlvbnMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworc3ViIHByZXZpZXdfaGVscCB7CisJcHJpbnQgeypTVERPVVR9IDw8J0VORCc7CitVU0FHRTogZ2l0IG13IHByZXZpZXcgWy0tcmVtb3RlfC1yIDxyZW1vdGUgbmFtZT5dIFstLWF1dG9sb2FkfC1hXQorICAgICAgICAgICAgICAgICAgICAgIFstLW91dHB1dHwtbyA8b3V0cHV0IGZpbGVuYW1lPl0gWy0tdmVyYm9zZXwtdl0KKyAgICAgICAgICAgICAgICAgICAgICA8YmxvYj4gfCA8ZmlsZW5hbWU+CisKK0RFU0NSSVBUSU9OOgorUHJldmlldyBpcyBhbiB1dGlsaXkgdG8gcHJldmlldyBsb2NhbCBjb250ZW50IG9mIGEgbWVkaWF3aWtpIHJlcG8gYXMgaWYgaXQgd2FzCitwdXNoZWQgb24gdGhlIHJlbW90ZS4KKworRm9yIHRoYXQsIHByZXZpZXcgc2VhcmNoZXMgZm9yIHRoZSByZW1vdGUgbmFtZSBvZiB0aGUgY3VycmVudCBicmFuY2gncwordXBzdHJlYW0gaWYgLS1yZW1vdGUgaXMgbm90IHNldC4gSWYgdGhhdCByZW1vdGUgaXMgbm90IGZvdW5kIG9yIGlmIGl0CitpcyBub3QgYSBtZWRpYXdpa2ksIGl0IGxpc3RzIGFsbCBtZWRpYXdpa2kgcmVtb3RlcyBjb25maWd1cmVkIGFuZCBhc2tzCit5b3UgdG8gcmVwbGF5IHlvdXIgY29tbWFuZCB3aXRoIHRoZSAtLXJlbW90ZSBvcHRpb24gc2V0IHByb3Blcmx5LgorCitUaGVuLCBpdCBzZWFyY2hlcyBmb3IgYSBmaWxlIG5hbWVkICdmaWxlbmFtZScuIElmIGl0J3Mgbm90IGZvdW5kIGluCit0aGUgY3VycmVudCBkaXIsIGl0IHdpbGwgYXNzdW1lIGl0J3MgYSBibG9iLgorCitUaGUgY29udGVudCByZXRyaWV2ZWQgaW4gdGhlIGZpbGUgKG9yIGluIHRoZSBibG9iKSB3aWxsIHRoZW4gYmUgcGFyc2VkCitieSB0aGUgcmVtb3RlIG1lZGlhd2lraSBhbmQgY29tYmluZWQgd2l0aCBhIHRlbXBsYXRlIHJldHJpZXZlZCBmcm9tCit0aGUgbWVkaWF3aWtpLgorCitGaW5hbGx5LCBwcmV2aWV3IHdpbGwgc2F2ZSB0aGUgSFRNTCByZXN1bHQgaW4gYSBmaWxlLiBhbmQgYXV0b2xvYWQgaXQKK2luIHlvdXIgZGVmYXVsdCB3ZWIgYnJvd3NlciBpZiB0aGUgb3B0aW9uIC0tYXV0b2xvYWQgaXMgcHJlc2VudC4KKworT1BUSU9OUzoKKyAgICAtciA8cmVtb3RlIG5hbWU+LCAtLXJlbW90ZSA8cmVtb3RlIG5hbWU+CisgICAgICAgIElmIHRoZSByZW1vdGUgaXMgYSBtZWRpYXdpa2ksIHRoZSB0ZW1wbGF0ZSBhbmQgdGhlIHBhcnNlIGVuZ2luZQorICAgICAgICB1c2VkIGZvciB0aGUgcHJldmlldyB3aWxsIGJlIHRob3NlIG9mIHRoYXQgcmVtb3RlLgorICAgICAgICBJZiBub3QsIGEgbGlzdCBvZiB2YWxpZCByZW1vdGVzIHdpbGwgYmUgc2hvd24uCisKKyAgICAtYSwgLS1hdXRvbG9hZAorICAgICAgICBUcnkgdG8gbG9hZCB0aGUgSFRNTCBvdXRwdXQgaW4gYSBuZXcgdGFiIChvciBuZXcgd2luZG93KSBvZiB5b3VyCisgICAgICAgIGRlZmF1bHQgd2ViIGJyb3dzZXIuCisKKyAgICAtbyA8b3V0cHV0IGZpbGVuYW1lPiwgLS1vdXRwdXQgPG91dHB1dCBmaWxlbmFtZT4KKyAgICAgICAgQ2hhbmdlIHRoZSBIVE1MIG91dHB1dCBmaWxlbmFtZS4gRGVmYXVsdCBmaWxlbmFtZSBpcyBiYXNlZCBvbiB0aGUKKyAgICAgICAgaW5wdXQgZmlsZW5hbWUgd2l0aCBpdHMgZXh0ZW5zaW9uIHJlcGxhY2VkIGJ5ICcuaHRtbCcuCisKKyAgICAtdiwgLS12ZXJib3NlCisgICAgICAgIFNob3cgbW9yZSBpbmZvcm1hdGlvbiBvbiB3aGF0J3MgZ29pbmcgb24gdW5kZXIgdGhlIGhvb2QuCitFTkQKKwlleGl0OworfQorCitzdWIgcHJldmlldyB7CisJbXkgJHdpa2k7CisJbXkgKCRyZW1vdGVfdXJsLCAkd2lraV9wYWdlX25hbWUpOworCW15ICgkbmV3X2NvbnRlbnQsICR0ZW1wbGF0ZSk7CisJbXkgJGZpbGVfY29udGVudDsKKworCWlmICgkZmlsZV9uYW1lIGVxIEVNUFRZKSB7CisJCWRpZSAiTWlzc2luZyBmaWxlIGFyZ3VtZW50LCBzZWUgYGdpdCBtdyBoZWxwYFxuIjsKKwl9CisKKwl2X3ByaW50KCIjIyMgU2VsZWN0aW5nIHJlbW90ZVxuIik7CisJaWYgKCRyZW1vdGVfbmFtZSBlcSBFTVBUWSkgeworCQkkcmVtb3RlX25hbWUgPSBmaW5kX3Vwc3RyZWFtX3JlbW90ZV9uYW1lKCk7CisJCWlmICgkcmVtb3RlX25hbWUpIHsKKwkJCSRyZW1vdGVfdXJsID0gbWVkaWF3aWtpX3JlbW90ZV91cmxfbWF5YmUoJHJlbW90ZV9uYW1lKTsKKwkJfQorCisJCWlmICghICRyZW1vdGVfdXJsKSB7CisJCQlteSBAdmFsaWRfcmVtb3RlcyA9IGZpbmRfbWVkaWF3aWtpX3JlbW90ZXMoKTsKKworCQkJaWYgKCQjdmFsaWRfcmVtb3RlcyA9PSAwKSB7CisJCQkJcHJpbnQgeypTVERFUlJ9ICJObyBtZWRpYXdpa2kgcmVtb3RlIGluIHRoaXMgcmVwby4gXG4iOworCQkJCWV4aXQgMTsKKwkJCX0gZWxzZSB7CisJCQkJbXkgJHJlbW90ZXNfbGlzdCA9IGpvaW4oIlxuXHQiLCBAdmFsaWRfcmVtb3Rlcyk7CisJCQkJcHJpbnQgeypTVERFUlJ9IDw8Ik1FU1NBR0UiOworVGhlcmUgYXJlIG11bHRpcGxlIG1lZGlhd2lraSByZW1vdGVzLCB3aGljaCBvZjoKKwkke3JlbW90ZXNfbGlzdH0KK2RvIHlvdSB3YW50ID8gVXNlIHRoZSAtciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgcmVtb3RlLgorTUVTU0FHRQorCQkJfQorCisJCQlleGl0IDE7CisJCX0KKwl9IGVsc2UgeworCQlpZiAoIWlzX3ZhbGlkX3JlbW90ZSgkcmVtb3RlX25hbWUpKSB7CisJCQlkaWUgIiR7cmVtb3RlX25hbWV9IGlzIG5vdCBhIHJlbW90ZVxuIjsKKwkJfQorCisJCSRyZW1vdGVfdXJsID0gbWVkaWF3aWtpX3JlbW90ZV91cmxfbWF5YmUoJHJlbW90ZV9uYW1lKTsKKwkJaWYgKCEgJHJlbW90ZV91cmwpIHsKKwkJCWRpZSAiJHtyZW1vdGVfbmFtZX0gaXMgbm90IGEgbWVkaWF3aWtpIHJlbW90ZVxuIjsKKwkJfQorCX0KKwl2X3ByaW50KCJzZWxlY3RlZCByZW1vdGU6XG5cdG5hbWU6ICR7cmVtb3RlX25hbWV9XG5cdHVybDogJHtyZW1vdGVfdXJsfVxuIik7CisKKwkkd2lraSA9IGNvbm5lY3RfbWF5YmUoJHdpa2ksICRyZW1vdGVfbmFtZSwgJHJlbW90ZV91cmwpOworCisJIyBSZWFkIGZpbGUgY29udGVudAorCWlmICghIC1lICRmaWxlX25hbWUpIHsKKwkJJGZpbGVfY29udGVudCA9IGdpdF9jbWRfdHJ5IHsKKwkJCUdpdDo6Y29tbWFuZCgnY2F0LWZpbGUnLCAnYmxvYicsICRmaWxlX25hbWUpOyB9CisJCQkiJXMgZmFpbGVkIHcvIGNvZGUgJWQiOworCisJCWlmICgkZmlsZV9uYW1lID1+IC8oLispOiguKykvKSB7CisJCQkkZmlsZV9uYW1lID0gJDI7CisJCX0KKwl9IGVsc2UgeworCQlvcGVuIG15ICRyZWFkX2ZoLCAiPCIsICRmaWxlX25hbWUKKwkJCW9yIGRpZSAiY291bGQgbm90IG9wZW4gJHtmaWxlX25hbWV9OiAkIVxuIjsKKwkJJGZpbGVfY29udGVudCA9IGRvIHsgbG9jYWwgJC8gPSB1bmRlZjsgPCRyZWFkX2ZoPiB9OworCQljbG9zZSAkcmVhZF9maAorCQkJb3IgZGllICJ1bmFibGUgdG8gY2xvc2U6ICQhXG4iOworCX0KKworCXZfcHJpbnQoIiMjIyBSZXRyaWV2aW5nIHRlbXBsYXRlXG4iKTsKKwkoJHdpa2lfcGFnZV9uYW1lID0gY2xlYW5fZmlsZW5hbWUoJGZpbGVfbmFtZSkpID1+IHMvXC5bXi5dKyQvLzsKKwkkdGVtcGxhdGUgPSBnZXRfdGVtcGxhdGUoJHJlbW90ZV91cmwsICR3aWtpX3BhZ2VfbmFtZSk7CisKKwl2X3ByaW50KCIjIyMgUGFyc2luZyBsb2NhbCBjb250ZW50XG4iKTsKKwkkbmV3X2NvbnRlbnQgPSAkd2lraS0+YXBpKHsKKwkJYWN0aW9uID0+ICdwYXJzZScsCisJCXRleHQgPT4gJGZpbGVfY29udGVudCwKKwkJdGl0bGUgPT4gJHdpa2lfcGFnZV9uYW1lCisJfSwgeworCQlza2lwX2VuY29kaW5nID0+IDEKKwl9KSBvciBkaWUgIk5vIHJlc3BvbnNlIGZyb20gcmVtb3RlIG1lZGlhd2lraVxuIjsKKwkkbmV3X2NvbnRlbnQgPSAkbmV3X2NvbnRlbnQtPnsncGFyc2UnfS0+eyd0ZXh0J30tPnsnKid9OworCisJdl9wcmludCgiIyMjIE1lcmdpbmcgY29udGVudHNcbiIpOworCWlmICgkcHJldmlld19maWxlX25hbWUgZXEgRU1QVFkpIHsKKwkJKCRwcmV2aWV3X2ZpbGVfbmFtZSA9ICRmaWxlX25hbWUpID1+IHMvXC5bXi5dKyQvLmh0bWwvOworCX0KKwlvcGVuKG15ICRzYXZlX2ZoLCAnPjplbmNvZGluZyhVVEYtOCknLCAkcHJldmlld19maWxlX25hbWUpCisJCW9yIGRpZSAiQ291bGQgbm90IG9wZW46ICQhXG4iOworCXByaW50IHskc2F2ZV9maH0gbWVyZ2VfY29udGVudHMoJHRlbXBsYXRlLCAkbmV3X2NvbnRlbnQsICRyZW1vdGVfdXJsKTsKKwljbG9zZSgkc2F2ZV9maCkKKwkJb3IgZGllICJDb3VsZCBub3QgY2xvc2U6ICQhXG4iOworCisJdl9wcmludCgiIyMjIFJlc3VsdHNcbiIpOworCWlmICgkYXV0b2xvYWQpIHsKKwkJdl9wcmludCgiTGF1bmNoaW5nIGJyb3dzZXIgdy8gZmlsZTogJHtwcmV2aWV3X2ZpbGVfbmFtZX0iKTsKKwkJc3lzdGVtKCdnaXQnLCAnd2ViLS1icm93c2UnLCAkcHJldmlld19maWxlX25hbWUpOworCX0gZWxzZSB7CisJCXByaW50IHsqU1RERVJSfSAiUHJldmlldyBmaWxlIHNhdmVkIGFzOiAke3ByZXZpZXdfZmlsZV9uYW1lfVxuIjsKKwl9CisKKwlleGl0OworfQorCisjIHVzZXMgZ2xvYmFsIHNjb3BlIHZhcmlhYmxlOiAkcmVtb3RlX25hbWUKK3N1YiBtZXJnZV9jb250ZW50cyB7CisJbXkgJHRlbXBsYXRlID0gc2hpZnQ7CisJbXkgJGNvbnRlbnQgPSBzaGlmdDsKKwlteSAkcmVtb3RlX3VybCA9IHNoaWZ0OworCW15ICgkY29udGVudF90cmVlLCAkaHRtbF90cmVlLCAkbXdfY29udGVudF90ZXh0KTsKKwlteSAkdGVtcGxhdGVfY29udGVudF9pZCA9ICdib2R5Q29udGVudCc7CisKKwkkaHRtbF90cmVlID0gSFRNTDo6VHJlZUJ1aWxkZXItPm5ldzsKKwkkaHRtbF90cmVlLT5wYXJzZSgkdGVtcGxhdGUpOworCisJJGNvbnRlbnRfdHJlZSA9IEhUTUw6OlRyZWVCdWlsZGVyLT5uZXc7CisJJGNvbnRlbnRfdHJlZS0+cGFyc2UoJGNvbnRlbnQpOworCisJJHRlbXBsYXRlX2NvbnRlbnRfaWQgPSBHaXQ6OmNvbmZpZygicmVtb3RlLiR7cmVtb3RlX25hbWV9Lm13SURjb250ZW50IikKKwkJfHwgJHRlbXBsYXRlX2NvbnRlbnRfaWQ7CisJdl9wcmludCgiVXNpbmcgJyR7dGVtcGxhdGVfY29udGVudF9pZH0nIGFzIHRoZSBjb250ZW50IElEXG4iKTsKKworCSRtd19jb250ZW50X3RleHQgPSAkaHRtbF90cmVlLT5sb29rX2Rvd24oJ2lkJywgJHRlbXBsYXRlX2NvbnRlbnRfaWQpOworCWlmICghZGVmaW5lZCAkbXdfY29udGVudF90ZXh0KSB7CisJCXByaW50IHsqU1RERVJSfSA8PCJDT05GSUciOworQ291bGQgbm90IGNvbWJpbmUgdGhlIG5ldyBjb250ZW50IHdpdGggdGhlIHRlbXBsYXRlLiBZb3UgbWlnaHQgd2FudCB0bworY29uZmlndXJlIGBtZWRpYXdpa2kuSURDb250ZW50YCBpbiB5b3VyIGNvbmZpZzoKKwlnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS4ke3JlbW90ZV9uYW1lfS5td0lEY29udGVudCA8aWQ+CithbmQgcmUtcnVuIHRoZSBjb21tYW5kIGFmdGVyd2FyZC4KK0NPTkZJRworCQlleGl0IDE7CisJfQorCSRtd19jb250ZW50X3RleHQtPmRlbGV0ZV9jb250ZW50KCk7CisJJG13X2NvbnRlbnRfdGV4dC0+cHVzaF9jb250ZW50KCRjb250ZW50X3RyZWUpOworCisJbWFrZV9saW5rc19hYnNvbHV0ZSgkaHRtbF90cmVlLCAkcmVtb3RlX3VybCk7CisKKwlyZXR1cm4gJGh0bWxfdHJlZS0+YXNfSFRNTDsKK30KKworc3ViIG1ha2VfbGlua3NfYWJzb2x1dGUgeworCW15ICRodG1sX3RyZWUgPSBzaGlmdDsKKwlteSAkcmVtb3RlX3VybCA9IHNoaWZ0OworCWZvciAoQHsgJGh0bWxfdHJlZS0+ZXh0cmFjdF9saW5rcygpIH0pIHsKKwkJbXkgKCRsaW5rLCAkZWxlbWVudCwgJGF0dHIpID0gQHsgJF8gfTsKKwkJbXkgJHVybCA9IHVybCgkbGluayktPmNhbm9uaWNhbDsKKwkJaWYgKCR1cmwgIX4gLyMvKSB7CisJCQkkZWxlbWVudC0+YXR0cigkYXR0ciwgVVJJLT5uZXdfYWJzKCR1cmwsICRyZW1vdGVfdXJsKSk7CisJCX0KKwl9CisJcmV0dXJuICRodG1sX3RyZWU7Cit9CisKK3N1YiBpc192YWxpZF9yZW1vdGUgeworCW15ICRyZW1vdGUgPSBzaGlmdDsKKwlteSBAcmVtb3RlcyA9IGdpdF9jbWRfdHJ5IHsKKwkJR2l0Ojpjb21tYW5kKCdyZW1vdGUnKSB9CisJCSIlcyBmYWlsZWQgdy8gY29kZSAlZCI7CisJbXkgJGZvdW5kX3JlbW90ZSA9IDA7CisJZm9yZWFjaCBteSAkcmVtb3RlIChAcmVtb3RlcykgeworCQlpZiAoJHJlbW90ZSBlcSAkcmVtb3RlKSB7CisJCQkkZm91bmRfcmVtb3RlID0gMTsKKwkJCWxhc3Q7CisJCX0KKwl9CisJcmV0dXJuICRmb3VuZF9yZW1vdGU7Cit9CisKK3N1YiBmaW5kX21lZGlhd2lraV9yZW1vdGVzIHsKKwlteSBAcmVtb3RlcyA9IGdpdF9jbWRfdHJ5IHsKKwkJR2l0Ojpjb21tYW5kKCdyZW1vdGUnKTsgfQorCQkiJXMgZmFpbGVkIHcvIGNvZGUgJWQiOworCW15ICRyZW1vdGVfdXJsOworCW15IEB2YWxpZF9yZW1vdGVzID0gKCk7CisJZm9yZWFjaCBteSAkcmVtb3RlIChAcmVtb3RlcykgeworCQkkcmVtb3RlX3VybCA9IG1lZGlhd2lraV9yZW1vdGVfdXJsX21heWJlKCRyZW1vdGUpOworCQlpZiAoJHJlbW90ZV91cmwpIHsKKwkJCXB1c2goQHZhbGlkX3JlbW90ZXMsICRyZW1vdGUpOworCQl9CisJfQorCXJldHVybiBAdmFsaWRfcmVtb3RlczsKK30KKworc3ViIGZpbmRfdXBzdHJlYW1fcmVtb3RlX25hbWUgeworCW15ICRjdXJyZW50X2JyYW5jaCA9IGdpdF9jbWRfdHJ5IHsKKwkJR2l0Ojpjb21tYW5kX29uZWxpbmUoJ3N5bWJvbGljLXJlZicsICctLXNob3J0JywgJ0hFQUQnKSB9CisJCSIlcyBmYWlsZWQgdy8gY29kZSAlZCI7CisJcmV0dXJuIEdpdDo6Y29uZmlnKCJicmFuY2guJHtjdXJyZW50X2JyYW5jaH0ucmVtb3RlIik7Cit9CisKK3N1YiBtZWRpYXdpa2lfcmVtb3RlX3VybF9tYXliZSB7CisJbXkgJHJlbW90ZSA9IHNoaWZ0OworCisJIyBGaW5kIHJlbW90ZSB1cmwKKwlteSAkcmVtb3RlX3VybCA9IEdpdDo6Y29uZmlnKCJyZW1vdGUuJHtyZW1vdGV9LnVybCIpOworCWlmICgkcmVtb3RlX3VybCA9fiBzL21lZGlhd2lraTo6KC4qKS8kMS8pIHsKKwkJcmV0dXJuIHVybCgkcmVtb3RlX3VybCktPmNhbm9uaWNhbDsKKwl9CisKKwlyZXR1cm47Cit9CisKK3N1YiBnZXRfdGVtcGxhdGUgeworCW15ICR1cmwgPSBzaGlmdDsKKwlteSAkcGFnZV9uYW1lID0gc2hpZnQ7CisJbXkgKCRyZXEsICRyZXMsICRjb2RlLCAkdXJsX2FmdGVyKTsKKworCSRyZXEgPSBMV1A6OlVzZXJBZ2VudC0+bmV3OworCWlmICgkdmVyYm9zZSkgeworCQkkcmVxLT5zaG93X3Byb2dyZXNzKDEpOworCX0KKworCSRyZXMgPSAkcmVxLT5nZXQoIiR7dXJsfS9pbmRleC5waHA/dGl0bGU9JHtwYWdlX25hbWV9Iik7CisJaWYgKCEkcmVzLT5pc19zdWNjZXNzKSB7CisJCSRjb2RlID0gJHJlcy0+Y29kZTsKKwkJJHVybF9hZnRlciA9ICRyZXMtPnJlcXVlc3QoKS0+dXJpKCk7ICMgcmVzb2x2ZSBhbGwgcmVkaXJlY3Rpb25zCisJCWlmICgkY29kZSA9PSBIVFRQX0NPREVfUEFHRV9OT1RfRk9VTkQpIHsKKwkJCWlmICgkdmVyYm9zZSkgeworCQkJCXByaW50IHsqU1RERVJSfSA8PCJXQVJOSU5HIjsKK1dhcm5pbmc6IEZhaWxlZCB0byByZXRyaWV2ZSAnJHBhZ2VfbmFtZScuIENyZWF0ZSBpdCBvbiB0aGUgbWVkaWF3aWtpIGlmIHlvdSB3YW50CithbGwgdGhlIGxpbmtzIHRvIHdvcmsgcHJvcGVybHkuCitUcnlpbmcgdG8gdXNlIHRoZSBtZWRpYXdpa2kgaG9tZXBhZ2UgYXMgYSBmYWxsYmFjayB0ZW1wbGF0ZSAuLi4KK1dBUk5JTkcKKwkJCX0KKworCQkJIyBMV1AgYXV0b21hdGljYWxseSByZWRpcmVjdHMgR0VUIHJlcXVlc3QKKwkJCSRyZXMgPSAkcmVxLT5nZXQoIiR7dXJsfS9pbmRleC5waHAiKTsKKwkJCWlmICghJHJlcy0+aXNfc3VjY2VzcykgeworCQkJCSR1cmxfYWZ0ZXIgPSAkcmVzLT5yZXF1ZXN0KCktPnVyaSgpOyAjIHJlc29sdmUgYWxsIHJlZGlyZWN0aW9ucworCQkJCWRpZSAiRmFpbGVkIHRvIGdldCBob21lcGFnZSBAICR7dXJsX2FmdGVyfSB3LyBjb2RlICR7Y29kZX1cbiI7CisJCQl9CisJCX0gZWxzZSB7CisJCQlkaWUgIkZhaWxlZCB0byBnZXQgJyR7cGFnZV9uYW1lfScgQCAke3VybF9hZnRlcn0gdy8gY29kZSAke2NvZGV9XG4iOworCQl9CisJfQorCisJcmV0dXJuICRyZXMtPmRlY29kZWRfY29udGVudDsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIEhlbHAgRnVuY3Rpb25zICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworc3ViIGhlbHAgeworCXByaW50IHsqU1RET1VUfSA8PCdFTkQnOwordXNhZ2U6IGdpdCBtdyA8Y29tbWFuZD4gPGFyZ3M+CisKK2dpdCBtdyBjb21tYW5kcyBhcmU6CisgICAgaGVscCAgICAgICAgRGlzcGxheSBoZWxwIGluZm9ybWF0aW9uIGFib3V0IGdpdCBtdworICAgIHByZXZpZXcgICAgIFBhcnNlIGFuZCByZW5kZXIgbG9jYWwgZmlsZSBpbnRvIEhUTUwKK0VORAorCWV4aXQ7Cit9CmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC9naXQtcmVtb3RlLW1lZGlhd2lraS5wZXJsIGIvY29udHJpYi9tdy10by1naXQvZ2l0LXJlbW90ZS1tZWRpYXdpa2kucGVybAppbmRleCA5YzE0YzFmLi44NWQwYzQyIDEwMDc1NQotLS0gYS9jb250cmliL213LXRvLWdpdC9naXQtcmVtb3RlLW1lZGlhd2lraS5wZXJsCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0L2dpdC1yZW1vdGUtbWVkaWF3aWtpLnBlcmwKQEAgLTEzLDE5ICsxMywxNyBAQAogCiB1c2Ugc3RyaWN0OwogdXNlIE1lZGlhV2lraTo6QVBJOwordXNlIEdpdDsKK3VzZSBHaXQ6Ok1lZGlhd2lraSBxdyhjbGVhbl9maWxlbmFtZSBzbXVkZ2VfZmlsZW5hbWUgY29ubmVjdF9tYXliZQorCQkJCQlFTVBUWSBIVFRQX0NPREVfT0spOwogdXNlIERhdGVUaW1lOjpGb3JtYXQ6OklTTzg2MDE7Ci0KLSMgQnkgZGVmYXVsdCwgdXNlIFVURi04IHRvIGNvbW11bmljYXRlIHdpdGggR2l0IGFuZCB0aGUgdXNlcgotYmlubW9kZSBTVERFUlIsICI6dXRmOCI7Ci1iaW5tb2RlIFNURE9VVCwgIjp1dGY4IjsKLQotdXNlIFVSSTo6RXNjYXBlOwotdXNlIElQQzo6T3BlbjI7Ci0KIHVzZSB3YXJuaW5nczsKIAotIyBNZWRpYXdpa2kgZmlsZW5hbWVzIGNhbiBjb250YWluIGZvcndhcmQgc2xhc2hlcy4gVGhpcyB2YXJpYWJsZSBkZWNpZGVzIGJ5IHdoaWNoIHBhdHRlcm4gdGhleSBzaG91bGQgYmUgcmVwbGFjZWQKLXVzZSBjb25zdGFudCBTTEFTSF9SRVBMQUNFTUVOVCA9PiAiJTJGIjsKKyMgQnkgZGVmYXVsdCwgdXNlIFVURi04IHRvIGNvbW11bmljYXRlIHdpdGggR2l0IGFuZCB0aGUgdXNlcgorYmlubW9kZSBTVERFUlIsICc6ZW5jb2RpbmcoVVRGLTgpJzsKK2Jpbm1vZGUgU1RET1VULCAnOmVuY29kaW5nKFVURi04KSc7CisKK3VzZSBVUkk6OkVzY2FwZTsKIAogIyBJdCdzIG5vdCBhbHdheXMgcG9zc2libGUgdG8gZGVsZXRlIHBhZ2VzIChtYXkgcmVxdWlyZSBzb21lCiAjIHByaXZpbGVnZXMpLiBEZWxldGVkIHBhZ2VzIGFyZSByZXBsYWNlZCB3aXRoIHRoaXMgY29udGVudC4KQEAgLTM2LDQ1ICszNCw1NyBAQAogdXNlIGNvbnN0YW50IEVNUFRZX0NPTlRFTlQgPT4gIjwhLS0gZW1wdHkgcGFnZSAtLT5cbiI7CiAKICMgdXNlZCB0byByZWZsZWN0IGZpbGUgY3JlYXRpb24gb3IgZGVsZXRpb24gaW4gZGlmZi4KLXVzZSBjb25zdGFudCBOVUxMX1NIQTEgPT4gIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiOwordXNlIGNvbnN0YW50IE5VTExfU0hBMSA9PiAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7CiAKICMgVXNlZCBvbiBHaXQncyBzaWRlIHRvIHJlZmxlY3QgZW1wdHkgZWRpdCBtZXNzYWdlcyBvbiB0aGUgd2lraQogdXNlIGNvbnN0YW50IEVNUFRZX01FU1NBR0UgPT4gJypFbXB0eSBNZWRpYVdpa2kgTWVzc2FnZSonOwogCisjIE51bWJlciBvZiBwYWdlcyB0YWtlbiBpbnRvIGFjY291bnQgYXQgb25jZSBpbiBzdWJtb2R1bGUgZ2V0X213X3BhZ2VfbGlzdAordXNlIGNvbnN0YW50IFNMSUNFX1NJWkUgPT4gNTA7CisKKyMgTnVtYmVyIG9mIGxpbmtlZCBtZWRpYWZpbGUgdG8gZ2V0IGF0IG9uY2UgaW4gZ2V0X2xpbmtlZF9tZWRpYWZpbGVzCisjIFRoZSBxdWVyeSBpcyBzcGxpdCBpbiBzbWFsbCBiYXRjaGVzIGJlY2F1c2Ugb2YgdGhlIE1XIEFQSSBsaW1pdCBvZgorIyB0aGUgbnVtYmVyIG9mIGxpbmtzIHRvIGJlIHJldHVybmVkICg1MDAgbGlua3MgbWF4KS4KK3VzZSBjb25zdGFudCBCQVRDSF9TSVpFID0+IDEwOworCitpZiAoQEFSR1YgIT0gMikgeworCWV4aXRfZXJyb3JfdXNhZ2UoKTsKK30KKwogbXkgJHJlbW90ZW5hbWUgPSAkQVJHVlswXTsKIG15ICR1cmwgPSAkQVJHVlsxXTsKIAogIyBBY2NlcHQgYm90aCBzcGFjZS1zZXBhcmF0ZWQgYW5kIG11bHRpcGxlIGtleXMgaW4gY29uZmlnIGZpbGUuCiAjIFNwYWNlcyBzaG91bGQgYmUgd3JpdHRlbiBhcyBfIGFueXdheSBiZWNhdXNlIHdlJ2xsIHVzZSBjaG9tcC4KLW15IEB0cmFja2VkX3BhZ2VzID0gc3BsaXQoL1sgXG5dLywgcnVuX2dpdCgiY29uZmlnIC0tZ2V0LWFsbCByZW1vdGUuIi4gJHJlbW90ZW5hbWUgLiIucGFnZXMiKSk7CitteSBAdHJhY2tlZF9wYWdlcyA9IHNwbGl0KC9bIFxuXS8sIHJ1bl9naXQoImNvbmZpZyAtLWdldC1hbGwgcmVtb3RlLiR7cmVtb3RlbmFtZX0ucGFnZXMiKSk7CiBjaG9tcChAdHJhY2tlZF9wYWdlcyk7CiAKICMgSnVzdCBsaWtlIEB0cmFja2VkX3BhZ2VzLCBidXQgZm9yIE1lZGlhV2lraSBjYXRlZ29yaWVzLgotbXkgQHRyYWNrZWRfY2F0ZWdvcmllcyA9IHNwbGl0KC9bIFxuXS8sIHJ1bl9naXQoImNvbmZpZyAtLWdldC1hbGwgcmVtb3RlLiIuICRyZW1vdGVuYW1lIC4iLmNhdGVnb3JpZXMiKSk7CitteSBAdHJhY2tlZF9jYXRlZ29yaWVzID0gc3BsaXQoL1sgXG5dLywgcnVuX2dpdCgiY29uZmlnIC0tZ2V0LWFsbCByZW1vdGUuJHtyZW1vdGVuYW1lfS5jYXRlZ29yaWVzIikpOwogY2hvbXAoQHRyYWNrZWRfY2F0ZWdvcmllcyk7CiAKICMgSW1wb3J0IG1lZGlhIGZpbGVzIG9uIHB1bGwKLW15ICRpbXBvcnRfbWVkaWEgPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgLS1ib29sIHJlbW90ZS4iLiAkcmVtb3RlbmFtZSAuIi5tZWRpYWltcG9ydCIpOworbXkgJGltcG9ydF9tZWRpYSA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCAtLWJvb2wgcmVtb3RlLiR7cmVtb3RlbmFtZX0ubWVkaWFpbXBvcnQiKTsKIGNob21wKCRpbXBvcnRfbWVkaWEpOwotJGltcG9ydF9tZWRpYSA9ICgkaW1wb3J0X21lZGlhIGVxICJ0cnVlIik7CiskaW1wb3J0X21lZGlhID0gKCRpbXBvcnRfbWVkaWEgZXEgJ3RydWUnKTsKIAogIyBFeHBvcnQgbWVkaWEgZmlsZXMgb24gcHVzaAotbXkgJGV4cG9ydF9tZWRpYSA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCAtLWJvb2wgcmVtb3RlLiIuICRyZW1vdGVuYW1lIC4iLm1lZGlhZXhwb3J0Iik7CitteSAkZXhwb3J0X21lZGlhID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IC0tYm9vbCByZW1vdGUuJHtyZW1vdGVuYW1lfS5tZWRpYWV4cG9ydCIpOwogY2hvbXAoJGV4cG9ydF9tZWRpYSk7Ci0kZXhwb3J0X21lZGlhID0gISgkZXhwb3J0X21lZGlhIGVxICJmYWxzZSIpOworJGV4cG9ydF9tZWRpYSA9ICEoJGV4cG9ydF9tZWRpYSBlcSAnZmFsc2UnKTsKIAotbXkgJHdpa2lfbG9naW4gPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgcmVtb3RlLiIuICRyZW1vdGVuYW1lIC4iLm13TG9naW4iKTsKK215ICR3aWtpX2xvZ2luID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IHJlbW90ZS4ke3JlbW90ZW5hbWV9Lm13TG9naW4iKTsKICMgTm90ZTogbXdQYXNzd29yZCBpcyBkaXNjb3VycmFnZWQuIFVzZSB0aGUgY3JlZGVudGlhbCBzeXN0ZW0gaW5zdGVhZC4KLW15ICR3aWtpX3Bhc3N3ZCA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCByZW1vdGUuIi4gJHJlbW90ZW5hbWUgLiIubXdQYXNzd29yZCIpOwotbXkgJHdpa2lfZG9tYWluID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IHJlbW90ZS4iLiAkcmVtb3RlbmFtZSAuIi5td0RvbWFpbiIpOworbXkgJHdpa2lfcGFzc3dkID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IHJlbW90ZS4ke3JlbW90ZW5hbWV9Lm13UGFzc3dvcmQiKTsKK215ICR3aWtpX2RvbWFpbiA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCByZW1vdGUuJHtyZW1vdGVuYW1lfS5td0RvbWFpbiIpOwogY2hvbXAoJHdpa2lfbG9naW4pOwogY2hvbXAoJHdpa2lfcGFzc3dkKTsKIGNob21wKCR3aWtpX2RvbWFpbik7CiAKICMgSW1wb3J0IG9ubHkgbGFzdCByZXZpc2lvbnMgKGJvdGggZm9yIGNsb25lIGFuZCBmZXRjaCkKLW15ICRzaGFsbG93X2ltcG9ydCA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCAtLWJvb2wgcmVtb3RlLiIuICRyZW1vdGVuYW1lIC4iLnNoYWxsb3ciKTsKK215ICRzaGFsbG93X2ltcG9ydCA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCAtLWJvb2wgcmVtb3RlLiR7cmVtb3RlbmFtZX0uc2hhbGxvdyIpOwogY2hvbXAoJHNoYWxsb3dfaW1wb3J0KTsKLSRzaGFsbG93X2ltcG9ydCA9ICgkc2hhbGxvd19pbXBvcnQgZXEgInRydWUiKTsKKyRzaGFsbG93X2ltcG9ydCA9ICgkc2hhbGxvd19pbXBvcnQgZXEgJ3RydWUnKTsKIAogIyBGZXRjaCAoY2xvbmUgYW5kIHB1bGwpIGJ5IHJldmlzaW9ucyBpbnN0ZWFkIG9mIGJ5IHBhZ2VzLiBUaGlzIGJlaGF2aW9yCiAjIGlzIG1vcmUgZWZmaWNpZW50IHdoZW4gd2UgaGF2ZSBhIHdpa2kgd2l0aCBsb3RzIG9mIHBhZ2VzIGFuZCB3ZSBmZXRjaApAQCAtODIsMTUgKzkyLDE4IEBACiAjIFBvc3NpYmxlIHZhbHVlczoKICMgLSBieV9yZXY6IHBlcmZvcm0gb25lIHF1ZXJ5IHBlciBuZXcgcmV2aXNpb24gb24gdGhlIHJlbW90ZSB3aWtpCiAjIC0gYnlfcGFnZTogcXVlcnkgZWFjaCB0cmFja2VkIHBhZ2UgZm9yIG5ldyByZXZpc2lvbgotbXkgJGZldGNoX3N0cmF0ZWd5ID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IHJlbW90ZS4kcmVtb3RlbmFtZS5mZXRjaFN0cmF0ZWd5Iik7Ci11bmxlc3MgKCRmZXRjaF9zdHJhdGVneSkgewotCSRmZXRjaF9zdHJhdGVneSA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCBtZWRpYXdpa2kuZmV0Y2hTdHJhdGVneSIpOworbXkgJGZldGNoX3N0cmF0ZWd5ID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IHJlbW90ZS4ke3JlbW90ZW5hbWV9LmZldGNoU3RyYXRlZ3kiKTsKK2lmICghJGZldGNoX3N0cmF0ZWd5KSB7CisJJGZldGNoX3N0cmF0ZWd5ID0gcnVuX2dpdCgnY29uZmlnIC0tZ2V0IG1lZGlhd2lraS5mZXRjaFN0cmF0ZWd5Jyk7CiB9CiBjaG9tcCgkZmV0Y2hfc3RyYXRlZ3kpOwotdW5sZXNzICgkZmV0Y2hfc3RyYXRlZ3kpIHsKLQkkZmV0Y2hfc3RyYXRlZ3kgPSAiYnlfcGFnZSI7CitpZiAoISRmZXRjaF9zdHJhdGVneSkgeworCSRmZXRjaF9zdHJhdGVneSA9ICdieV9wYWdlJzsKIH0KIAorIyBSZW1lbWJlciB0aGUgdGltZXN0YW1wIGNvcnJlc3BvbmRpbmcgdG8gYSByZXZpc2lvbiBpZC4KK215ICViYXNldGltZXN0YW1wczsKKwogIyBEdW1iIHB1c2g6IGRvbid0IHVwZGF0ZSBub3RlcyBhbmQgbWVkaWF3aWtpIHJlZiB0byByZWZsZWN0IHRoZSBsYXN0IHB1c2guCiAjCiAjIENvbmZpZ3VyYWJsZSB3aXRoIG1lZGlhd2lraS5kdW1iUHVzaCwgb3IgcGVyLXJlbW90ZSB3aXRoCkBAIC0xMDUsNDggKzExOCwyNSBAQAogIyB3aWxsIGdldCB0aGUgaGlzdG9yeSB3aXRoIGluZm9ybWF0aW9uIGxvc3QpLiBJZiB0aGUgaW1wb3J0IGlzCiAjIGRldGVybWluaXN0aWMsIHRoaXMgbWVhbnMgZXZlcnlib2R5IGdldHMgdGhlIHNhbWUgc2hhMSBmb3IgZWFjaAogIyBNZWRpYVdpa2kgcmV2aXNpb24uCi1teSAkZHVtYl9wdXNoID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IC0tYm9vbCByZW1vdGUuJHJlbW90ZW5hbWUuZHVtYlB1c2giKTsKLXVubGVzcyAoJGR1bWJfcHVzaCkgewotCSRkdW1iX3B1c2ggPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgLS1ib29sIG1lZGlhd2lraS5kdW1iUHVzaCIpOworbXkgJGR1bWJfcHVzaCA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCAtLWJvb2wgcmVtb3RlLiR7cmVtb3RlbmFtZX0uZHVtYlB1c2giKTsKK2lmICghJGR1bWJfcHVzaCkgeworCSRkdW1iX3B1c2ggPSBydW5fZ2l0KCdjb25maWcgLS1nZXQgLS1ib29sIG1lZGlhd2lraS5kdW1iUHVzaCcpOwogfQogY2hvbXAoJGR1bWJfcHVzaCk7Ci0kZHVtYl9wdXNoID0gKCRkdW1iX3B1c2ggZXEgInRydWUiKTsKKyRkdW1iX3B1c2ggPSAoJGR1bWJfcHVzaCBlcSAndHJ1ZScpOwogCiBteSAkd2lraV9uYW1lID0gJHVybDsKLSR3aWtpX25hbWUgPX4gcy9bXlwvXSo6XC9cLy8vOworJHdpa2lfbmFtZSA9fiBze1teL10qOi8vfXt9OwogIyBJZiBVUkwgaXMgbGlrZSBodHRwOi8vdXNlcjpwYXNzd29yZEBleGFtcGxlLmNvbS8sIHdlIGNsZWFybHkgZG9uJ3QKICMgd2FudCB0aGUgcGFzc3dvcmQgaW4gJHdpa2lfbmFtZS4gV2hpbGUgd2UncmUgdGhlcmUsIGFsc28gcmVtb3ZlIHVzZXIKICMgYW5kICdAJyBzaWduLCB0byBhdm9pZCBhdXRob3IgbGlrZSBNV1VzZXJASFRUUFVzZXJAaG9zdC5jb20KICR3aWtpX25hbWUgPX4gcy9eLipALy87CiAKICMgQ29tbWFuZHMgcGFyc2VyCi1teSAkZW50cnk7Ci1teSBAY21kOwogd2hpbGUgKDxTVERJTj4pIHsKIAljaG9tcDsKLQlAY21kID0gc3BsaXQoLyAvKTsKLQlpZiAoZGVmaW5lZCgkY21kWzBdKSkgewotCQkjIExpbmUgbm90IGJsYW5rCi0JCWlmICgkY21kWzBdIGVxICJjYXBhYmlsaXRpZXMiKSB7Ci0JCQlkaWUoIlRvbyBtYW55IGFyZ3VtZW50cyBmb3IgY2FwYWJpbGl0aWVzIikgdW5sZXNzICghZGVmaW5lZCgkY21kWzFdKSk7Ci0JCQltd19jYXBhYmlsaXRpZXMoKTsKLQkJfSBlbHNpZiAoJGNtZFswXSBlcSAibGlzdCIpIHsKLQkJCWRpZSgiVG9vIG1hbnkgYXJndW1lbnRzIGZvciBsaXN0IikgdW5sZXNzICghZGVmaW5lZCgkY21kWzJdKSk7Ci0JCQltd19saXN0KCRjbWRbMV0pOwotCQl9IGVsc2lmICgkY21kWzBdIGVxICJpbXBvcnQiKSB7Ci0JCQlkaWUoIkludmFsaWQgYXJndW1lbnRzIGZvciBpbXBvcnQiKSB1bmxlc3MgKCRjbWRbMV0gbmUgIiIgJiYgIWRlZmluZWQoJGNtZFsyXSkpOwotCQkJbXdfaW1wb3J0KCRjbWRbMV0pOwotCQl9IGVsc2lmICgkY21kWzBdIGVxICJvcHRpb24iKSB7Ci0JCQlkaWUoIlRvbyBtYW55IGFyZ3VtZW50cyBmb3Igb3B0aW9uIikgdW5sZXNzICgkY21kWzFdIG5lICIiICYmICRjbWRbMl0gbmUgIiIgJiYgIWRlZmluZWQoJGNtZFszXSkpOwotCQkJbXdfb3B0aW9uKCRjbWRbMV0sJGNtZFsyXSk7Ci0JCX0gZWxzaWYgKCRjbWRbMF0gZXEgInB1c2giKSB7Ci0JCQltd19wdXNoKCRjbWRbMV0pOwotCQl9IGVsc2UgewotCQkJcHJpbnQgU1RERVJSICJVbmtub3duIGNvbW1hbmQuIEFib3J0aW5nLi4uXG4iOwotCQkJbGFzdDsKLQkJfQotCX0gZWxzZSB7Ci0JCSMgYmxhbmsgbGluZTogd2Ugc2hvdWxkIHRlcm1pbmF0ZQorCisJaWYgKCFwYXJzZV9jb21tYW5kKCRfKSkgewogCQlsYXN0OwogCX0KIApAQCAtMTU2LDEwNyArMTQ2LDkxIEBACiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIEZ1bmN0aW9ucyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotIyMgY3JlZGVudGlhbCBBUEkgbWFuYWdlbWVudCAoZ2VuZXJpYyBmdW5jdGlvbnMpCi0KLXN1YiBjcmVkZW50aWFsX3JlYWQgewotCW15ICVjcmVkZW50aWFsOwotCW15ICRyZWFkZXIgPSBzaGlmdDsKLQlteSAkb3AgPSBzaGlmdDsKLQl3aGlsZSAoPCRyZWFkZXI+KSB7Ci0JCW15ICgka2V5LCAkdmFsdWUpID0gLyhbXj1dKik9KC4qKS87Ci0JCWlmIChub3QgZGVmaW5lZCAka2V5KSB7Ci0JCQlkaWUgIkVSUk9SIHJlY2VpdmluZyByZXNwb25zZSBmcm9tIGdpdCBjcmVkZW50aWFsICRvcDpcbiRfXG4iOwotCQl9Ci0JCSRjcmVkZW50aWFseyRrZXl9ID0gJHZhbHVlOwotCX0KLQlyZXR1cm4gJWNyZWRlbnRpYWw7CisjIyBlcnJvciBoYW5kbGluZworc3ViIGV4aXRfZXJyb3JfdXNhZ2UgeworCWRpZSAiRVJST1I6IGdpdC1yZW1vdGUtbWVkaWF3aWtpIG1vZHVsZSB3YXMgbm90IGNhbGxlZCB3aXRoIGEgY29ycmVjdCBudW1iZXIgb2ZcbiIgLgorCSAgICAicGFyYW1ldGVyc1xuIiAuCisJICAgICJZb3UgbWF5IG9idGFpbiB0aGlzIGVycm9yIGJlY2F1c2UgeW91IGF0dGVtcHRlZCB0byBydW4gdGhlIGdpdC1yZW1vdGUtbWVkaWF3aWtpXG4iIC4KKyAgICAgICAgICAgICJtb2R1bGUgZGlyZWN0bHkuXG4iIC4KKwkgICAgIlRoaXMgbW9kdWxlIGNhbiBiZSB1c2VkIHRoZSBmb2xsb3dpbmcgd2F5OlxuIiAuCisJICAgICJcdGdpdCBjbG9uZSBtZWRpYXdpa2k6Ly88YWRkcmVzcyBvZiBhIG1lZGlhd2lraT5cbiIgLgorCSAgICAiVGhlbiwgdXNlIGdpdCBjb21taXQsIHB1c2ggYW5kIHB1bGwgYXMgd2l0aCBldmVyeSBub3JtYWwgZ2l0IHJlcG9zaXRvcnkuXG4iOwogfQogCi1zdWIgY3JlZGVudGlhbF93cml0ZSB7Ci0JbXkgJGNyZWRlbnRpYWwgPSBzaGlmdDsKLQlteSAkd3JpdGVyID0gc2hpZnQ7Ci0JIyB1cmwgb3ZlcndyaXRlcyBvdGhlciBmaWVsZHMsIHNvIGl0IG11c3QgY29tZSBmaXJzdAotCXByaW50ICR3cml0ZXIgInVybD0kY3JlZGVudGlhbC0+e3VybH1cbiIgaWYgZXhpc3RzICRjcmVkZW50aWFsLT57dXJsfTsKLQl3aGlsZSAobXkgKCRrZXksICR2YWx1ZSkgPSBlYWNoKCUkY3JlZGVudGlhbCkgKSB7Ci0JCWlmIChsZW5ndGggJHZhbHVlICYmICRrZXkgbmUgJ3VybCcpIHsKLQkJCXByaW50ICR3cml0ZXIgIiRrZXk9JHZhbHVlXG4iOwotCQl9CitzdWIgcGFyc2VfY29tbWFuZCB7CisJbXkgKCRsaW5lKSA9IEBfOworCW15IEBjbWQgPSBzcGxpdCgvIC8sICRsaW5lKTsKKwlpZiAoIWRlZmluZWQgJGNtZFswXSkgeworCQlyZXR1cm4gMDsKIAl9Ci19Ci0KLXN1YiBjcmVkZW50aWFsX3J1biB7Ci0JbXkgJG9wID0gc2hpZnQ7Ci0JbXkgJGNyZWRlbnRpYWwgPSBzaGlmdDsKLQlteSAkcGlkID0gb3BlbjIobXkgJHJlYWRlciwgbXkgJHdyaXRlciwgImdpdCBjcmVkZW50aWFsICRvcCIpOwotCWNyZWRlbnRpYWxfd3JpdGUoJGNyZWRlbnRpYWwsICR3cml0ZXIpOwotCXByaW50ICR3cml0ZXIgIlxuIjsKLQljbG9zZSgkd3JpdGVyKTsKLQotCWlmICgkb3AgZXEgImZpbGwiKSB7Ci0JCSUkY3JlZGVudGlhbCA9IGNyZWRlbnRpYWxfcmVhZCgkcmVhZGVyLCAkb3ApOworCWlmICgkY21kWzBdIGVxICdjYXBhYmlsaXRpZXMnKSB7CisJCWRpZSgiVG9vIG1hbnkgYXJndW1lbnRzIGZvciBjYXBhYmlsaXRpZXNcbiIpCisJCSAgICBpZiAoZGVmaW5lZCgkY21kWzFdKSk7CisJCW13X2NhcGFiaWxpdGllcygpOworCX0gZWxzaWYgKCRjbWRbMF0gZXEgJ2xpc3QnKSB7CisJCWRpZSgiVG9vIG1hbnkgYXJndW1lbnRzIGZvciBsaXN0XG4iKSBpZiAoZGVmaW5lZCgkY21kWzJdKSk7CisJCW13X2xpc3QoJGNtZFsxXSk7CisJfSBlbHNpZiAoJGNtZFswXSBlcSAnaW1wb3J0JykgeworCQlkaWUoIkludmFsaWQgYXJndW1lbnQgZm9yIGltcG9ydFxuIikKKwkJICAgIGlmICgkY21kWzFdIGVxIEVNUFRZKTsKKwkJZGllKCJUb28gbWFueSBhcmd1bWVudHMgZm9yIGltcG9ydFxuIikKKwkJICAgIGlmIChkZWZpbmVkKCRjbWRbMl0pKTsKKwkJbXdfaW1wb3J0KCRjbWRbMV0pOworCX0gZWxzaWYgKCRjbWRbMF0gZXEgJ29wdGlvbicpIHsKKwkJZGllKCJJbnZhbGlkIGFyZ3VtZW50cyBmb3Igb3B0aW9uXG4iKQorCQkgICAgaWYgKCRjbWRbMV0gZXEgRU1QVFkgfHwgJGNtZFsyXSBlcSBFTVBUWSk7CisJCWRpZSgiVG9vIG1hbnkgYXJndW1lbnRzIGZvciBvcHRpb25cbiIpCisJCSAgICBpZiAoZGVmaW5lZCgkY21kWzNdKSk7CisJCW13X29wdGlvbigkY21kWzFdLCRjbWRbMl0pOworCX0gZWxzaWYgKCRjbWRbMF0gZXEgJ3B1c2gnKSB7CisJCW13X3B1c2goJGNtZFsxXSk7CiAJfSBlbHNlIHsKLQkJaWYgKDwkcmVhZGVyPikgewotCQkJZGllICJFUlJPUiB3aGlsZSBydW5uaW5nIGdpdCBjcmVkZW50aWFsICRvcDpcbiRfIjsKLQkJfQorCQlwcmludCB7KlNUREVSUn0gIlVua25vd24gY29tbWFuZC4gQWJvcnRpbmcuLi5cbiI7CisJCXJldHVybiAwOwogCX0KLQljbG9zZSgkcmVhZGVyKTsKLQl3YWl0cGlkKCRwaWQsIDApOwotCW15ICRjaGlsZF9leGl0X3N0YXR1cyA9ICQ/ID4+IDg7Ci0JaWYgKCRjaGlsZF9leGl0X3N0YXR1cyAhPSAwKSB7Ci0JCWRpZSAiJ2dpdCBjcmVkZW50aWFsICRvcCcgZmFpbGVkIHdpdGggY29kZSAkY2hpbGRfZXhpdF9zdGF0dXMuIjsKLQl9CisJcmV0dXJuIDE7CiB9CiAKICMgTWVkaWFXaWtpIEFQSSBpbnN0YW5jZSwgY3JlYXRlZCBsYXppbHkuCiBteSAkbWVkaWF3aWtpOwogCi1zdWIgbXdfY29ubmVjdF9tYXliZSB7Ci0JaWYgKCRtZWRpYXdpa2kpIHsKLQkJcmV0dXJuOworc3ViIGZhdGFsX213X2Vycm9yIHsKKwlteSAkYWN0aW9uID0gc2hpZnQ7CisJcHJpbnQgU1RERVJSICJmYXRhbDogY291bGQgbm90ICRhY3Rpb24uXG4iOworCXByaW50IFNUREVSUiAiZmF0YWw6ICckdXJsJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSBtZWRpYXdpa2lcbiI7CisJaWYgKCR1cmwgPX4gL15odHRwcy8pIHsKKwkJcHJpbnQgU1RERVJSICJmYXRhbDogbWFrZSBzdXJlICckdXJsL2FwaS5waHAnIGlzIGEgdmFsaWQgcGFnZVxuIjsKKwkJcHJpbnQgU1RERVJSICJmYXRhbDogYW5kIHRoZSBTU0wgY2VydGlmaWNhdGUgaXMgY29ycmVjdC5cbiI7CisJfSBlbHNlIHsKKwkJcHJpbnQgU1RERVJSICJmYXRhbDogbWFrZSBzdXJlICckdXJsL2FwaS5waHAnIGlzIGEgdmFsaWQgcGFnZS5cbiI7CiAJfQotCSRtZWRpYXdpa2kgPSBNZWRpYVdpa2k6OkFQSS0+bmV3OwotCSRtZWRpYXdpa2ktPntjb25maWd9LT57YXBpX3VybH0gPSAiJHVybC9hcGkucGhwIjsKLQlpZiAoJHdpa2lfbG9naW4pIHsKLQkJbXkgJWNyZWRlbnRpYWwgPSAodXJsID0+ICR1cmwpOwotCQkkY3JlZGVudGlhbHt1c2VybmFtZX0gPSAkd2lraV9sb2dpbjsKLQkJJGNyZWRlbnRpYWx7cGFzc3dvcmR9ID0gJHdpa2lfcGFzc3dkOwotCQljcmVkZW50aWFsX3J1bigiZmlsbCIsIFwlY3JlZGVudGlhbCk7Ci0JCW15ICRyZXF1ZXN0ID0ge2xnbmFtZSA9PiAkY3JlZGVudGlhbHt1c2VybmFtZX0sCi0JCQkgICAgICAgbGdwYXNzd29yZCA9PiAkY3JlZGVudGlhbHtwYXNzd29yZH0sCi0JCQkgICAgICAgbGdkb21haW4gPT4gJHdpa2lfZG9tYWlufTsKLQkJaWYgKCRtZWRpYXdpa2ktPmxvZ2luKCRyZXF1ZXN0KSkgewotCQkJY3JlZGVudGlhbF9ydW4oImFwcHJvdmUiLCBcJWNyZWRlbnRpYWwpOwotCQkJcHJpbnQgU1RERVJSICJMb2dnZWQgaW4gbWVkaWF3aWtpIHVzZXIgXCIkY3JlZGVudGlhbHt1c2VybmFtZX1cIi5cbiI7Ci0JCX0gZWxzZSB7Ci0JCQlwcmludCBTVERFUlIgIkZhaWxlZCB0byBsb2cgaW4gbWVkaWF3aWtpIHVzZXIgXCIkY3JlZGVudGlhbHt1c2VybmFtZX1cIiBvbiAkdXJsXG4iOwotCQkJcHJpbnQgU1RERVJSICIgIChlcnJvciAiIC4KLQkJCQkkbWVkaWF3aWtpLT57ZXJyb3J9LT57Y29kZX0gLiAnOiAnIC4KLQkJCQkkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc30gLiAiKVxuIjsKLQkJCWNyZWRlbnRpYWxfcnVuKCJyZWplY3QiLCBcJWNyZWRlbnRpYWwpOwotCQkJZXhpdCAxOwotCQl9Ci0JfQorCXByaW50IFNUREVSUiAiZmF0YWw6IChlcnJvciAiIC4KKwkgICAgJG1lZGlhd2lraS0+e2Vycm9yfS0+e2NvZGV9IC4gJzogJyAuCisJICAgICRtZWRpYXdpa2ktPntlcnJvcn0tPntkZXRhaWxzfSAuICIpXG4iOworCWV4aXQgMTsKIH0KIAogIyMgRnVuY3Rpb25zIGZvciBsaXN0aW5nIHBhZ2VzIG9uIHRoZSByZW1vdGUgd2lraQogc3ViIGdldF9td190cmFja2VkX3BhZ2VzIHsKIAlteSAkcGFnZXMgPSBzaGlmdDsKIAlnZXRfbXdfcGFnZV9saXN0KFxAdHJhY2tlZF9wYWdlcywgJHBhZ2VzKTsKKwlyZXR1cm47CiB9CiAKIHN1YiBnZXRfbXdfcGFnZV9saXN0IHsKIAlteSAkcGFnZV9saXN0ID0gc2hpZnQ7CiAJbXkgJHBhZ2VzID0gc2hpZnQ7Ci0JbXkgQHNvbWVfcGFnZXMgPSBAJHBhZ2VfbGlzdDsKKwlteSBAc29tZV9wYWdlcyA9IEB7JHBhZ2VfbGlzdH07CiAJd2hpbGUgKEBzb21lX3BhZ2VzKSB7Ci0JCW15ICRsYXN0ID0gNTA7Ci0JCWlmICgkI3NvbWVfcGFnZXMgPCAkbGFzdCkgewotCQkJJGxhc3QgPSAkI3NvbWVfcGFnZXM7CisJCW15ICRsYXN0X3BhZ2UgPSBTTElDRV9TSVpFOworCQlpZiAoJCNzb21lX3BhZ2VzIDwgJGxhc3RfcGFnZSkgeworCQkJJGxhc3RfcGFnZSA9ICQjc29tZV9wYWdlczsKIAkJfQotCQlteSBAc2xpY2UgPSBAc29tZV9wYWdlc1swLi4kbGFzdF07CisJCW15IEBzbGljZSA9IEBzb21lX3BhZ2VzWzAuLiRsYXN0X3BhZ2VdOwogCQlnZXRfbXdfZmlyc3RfcGFnZXMoXEBzbGljZSwgJHBhZ2VzKTsKLQkJQHNvbWVfcGFnZXMgPSBAc29tZV9wYWdlc1s1MS4uJCNzb21lX3BhZ2VzXTsKKwkJQHNvbWVfcGFnZXMgPSBAc29tZV9wYWdlc1soU0xJQ0VfU0laRSArIDEpLi4kI3NvbWVfcGFnZXNdOwogCX0KKwlyZXR1cm47CiB9CiAKIHN1YiBnZXRfbXdfdHJhY2tlZF9jYXRlZ29yaWVzIHsKQEAgLTI2Niw3ICsyNDAsNyBAQAogCQkJIyBNZWRpYXdpa2kgcmVxdWlyZXMgdGhlIENhdGVnb3J5CiAJCQkjIHByZWZpeCwgYnV0IGxldCdzIG5vdCBmb3JjZSB0aGUgdXNlcgogCQkJIyB0byBzcGVjaWZ5IGl0LgotCQkJJGNhdGVnb3J5ID0gIkNhdGVnb3J5OiIgLiAkY2F0ZWdvcnk7CisJCQkkY2F0ZWdvcnkgPSAiQ2F0ZWdvcnk6JHtjYXRlZ29yeX0iOwogCQl9CiAJCW15ICRtd19wYWdlcyA9ICRtZWRpYXdpa2ktPmxpc3QoIHsKIAkJCWFjdGlvbiA9PiAncXVlcnknLApAQCAtMjc0LDExICsyNDgsMTIgQEAKIAkJCWNtdGl0bGUgPT4gJGNhdGVnb3J5LAogCQkJY21saW1pdCA9PiAnbWF4JyB9ICkKIAkJCXx8IGRpZSAkbWVkaWF3aWtpLT57ZXJyb3J9LT57Y29kZX0gLiAnOiAnCi0JCQkJLiAkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc307CisJCQkJLiAkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc30gLiAiXG4iOwogCQlmb3JlYWNoIG15ICRwYWdlIChAeyRtd19wYWdlc30pIHsKIAkJCSRwYWdlcy0+eyRwYWdlLT57dGl0bGV9fSA9ICRwYWdlOwogCQl9CiAJfQorCXJldHVybjsKIH0KIAogc3ViIGdldF9td19hbGxfcGFnZXMgewpAQCAtMjkwLDE0ICsyNjUsMTIgQEAKIAkJYXBsaW1pdCA9PiAnbWF4JwogCX0pOwogCWlmICghZGVmaW5lZCgkbXdfcGFnZXMpKSB7Ci0JCXByaW50IFNUREVSUiAiZmF0YWw6IGNvdWxkIG5vdCBnZXQgdGhlIGxpc3Qgb2Ygd2lraSBwYWdlcy5cbiI7Ci0JCXByaW50IFNUREVSUiAiZmF0YWw6ICckdXJsJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSBtZWRpYXdpa2lcbiI7Ci0JCXByaW50IFNUREVSUiAiZmF0YWw6IG1ha2Ugc3VyZSAnJHVybC9hcGkucGhwJyBpcyBhIHZhbGlkIHBhZ2UuXG4iOwotCQlleGl0IDE7CisJCWZhdGFsX213X2Vycm9yKCJnZXQgdGhlIGxpc3Qgb2Ygd2lraSBwYWdlcyIpOwogCX0KIAlmb3JlYWNoIG15ICRwYWdlIChAeyRtd19wYWdlc30pIHsKIAkJJHBhZ2VzLT57JHBhZ2UtPnt0aXRsZX19ID0gJHBhZ2U7CiAJfQorCXJldHVybjsKIH0KIAogIyBxdWVyaWVzIHRoZSB3aWtpIGZvciBhIHNldCBvZiBwYWdlcy4gTWVhbnQgdG8gYmUgdXNlZCB3aXRoaW4gYSBsb29wCkBAIC0zMTYsMjUgKzI4OSwyMyBAQAogCQl0aXRsZXMgPT4gJHRpdGxlcywKIAl9KTsKIAlpZiAoIWRlZmluZWQoJG13X3BhZ2VzKSkgewotCQlwcmludCBTVERFUlIgImZhdGFsOiBjb3VsZCBub3QgcXVlcnkgdGhlIGxpc3Qgb2Ygd2lraSBwYWdlcy5cbiI7Ci0JCXByaW50IFNUREVSUiAiZmF0YWw6ICckdXJsJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSBtZWRpYXdpa2lcbiI7Ci0JCXByaW50IFNUREVSUiAiZmF0YWw6IG1ha2Ugc3VyZSAnJHVybC9hcGkucGhwJyBpcyBhIHZhbGlkIHBhZ2UuXG4iOwotCQlleGl0IDE7CisJCWZhdGFsX213X2Vycm9yKCJxdWVyeSB0aGUgbGlzdCBvZiB3aWtpIHBhZ2VzIik7CiAJfQogCXdoaWxlIChteSAoJGlkLCAkcGFnZSkgPSBlYWNoKCV7JG13X3BhZ2VzLT57cXVlcnl9LT57cGFnZXN9fSkpIHsKIAkJaWYgKCRpZCA8IDApIHsKLQkJCXByaW50IFNUREVSUiAiV2FybmluZzogcGFnZSAkcGFnZS0+e3RpdGxlfSBub3QgZm91bmQgb24gd2lraVxuIjsKKwkJCXByaW50IHsqU1RERVJSfSAiV2FybmluZzogcGFnZSAkcGFnZS0+e3RpdGxlfSBub3QgZm91bmQgb24gd2lraVxuIjsKIAkJfSBlbHNlIHsKIAkJCSRwYWdlcy0+eyRwYWdlLT57dGl0bGV9fSA9ICRwYWdlOwogCQl9CiAJfQorCXJldHVybjsKIH0KIAogIyBHZXQgdGhlIGxpc3Qgb2YgcGFnZXMgdG8gYmUgZmV0Y2hlZCBhY2NvcmRpbmcgdG8gY29uZmlndXJhdGlvbi4KIHN1YiBnZXRfbXdfcGFnZXMgewotCW13X2Nvbm5lY3RfbWF5YmUoKTsKKwkkbWVkaWF3aWtpID0gY29ubmVjdF9tYXliZSgkbWVkaWF3aWtpLCAkcmVtb3RlbmFtZSwgJHVybCk7CiAKLQlwcmludCBTVERFUlIgIkxpc3RpbmcgcGFnZXMgb24gcmVtb3RlIHdpa2kuLi5cbiI7CisJcHJpbnQgeypTVERFUlJ9ICJMaXN0aW5nIHBhZ2VzIG9uIHJlbW90ZSB3aWtpLi4uXG4iOwogCiAJbXkgJXBhZ2VzOyAjIGhhc2ggb24gcGFnZSB0aXRsZXMgdG8gYXZvaWQgZHVwbGljYXRlcwogCW15ICR1c2VyX2RlZmluZWQ7CkBAIC0zNTIsMTQgKzMyMywxNCBAQAogCQlnZXRfbXdfYWxsX3BhZ2VzKFwlcGFnZXMpOwogCX0KIAlpZiAoJGltcG9ydF9tZWRpYSkgewotCQlwcmludCBTVERFUlIgIkdldHRpbmcgbWVkaWEgZmlsZXMgZm9yIHNlbGVjdGVkIHBhZ2VzLi4uXG4iOworCQlwcmludCB7KlNUREVSUn0gIkdldHRpbmcgbWVkaWEgZmlsZXMgZm9yIHNlbGVjdGVkIHBhZ2VzLi4uXG4iOwogCQlpZiAoJHVzZXJfZGVmaW5lZCkgewogCQkJZ2V0X2xpbmtlZF9tZWRpYWZpbGVzKFwlcGFnZXMpOwogCQl9IGVsc2UgewogCQkJZ2V0X2FsbF9tZWRpYWZpbGVzKFwlcGFnZXMpOwogCQl9CiAJfQotCXByaW50IFNUREVSUiAoc2NhbGFyIGtleXMgJXBhZ2VzKSAuICIgcGFnZXMgZm91bmQuXG4iOworCXByaW50IHsqU1RERVJSfSAoc2NhbGFyIGtleXMgJXBhZ2VzKSAuICIgcGFnZXMgZm91bmQuXG4iOwogCXJldHVybiAlcGFnZXM7CiB9CiAKQEAgLTM2Nyw5ICszMzgsMTMgQEAKICMgICAgICAgICRvdXQgPSBydW5fZ2l0KCJjb21tYW5kIGFyZ3MiLCAicmF3Iik7ICMgZG9uJ3QgaW50ZXJwcmV0IG91dHB1dCBhcyBVVEYtOC4KIHN1YiBydW5fZ2l0IHsKIAlteSAkYXJncyA9IHNoaWZ0OwotCW15ICRlbmNvZGluZyA9IChzaGlmdCB8fCAiZW5jb2RpbmcoVVRGLTgpIik7Ci0Jb3BlbihteSAkZ2l0LCAiLXw6JGVuY29kaW5nIiwgImdpdCAiIC4gJGFyZ3MpOwotCW15ICRyZXMgPSBkbyB7IGxvY2FsICQvOyA8JGdpdD4gfTsKKwlteSAkZW5jb2RpbmcgPSAoc2hpZnQgfHwgJ2VuY29kaW5nKFVURi04KScpOworCW9wZW4obXkgJGdpdCwgIi18OiR7ZW5jb2Rpbmd9IiwgImdpdCAke2FyZ3N9IikKKwkgICAgb3IgZGllICJVbmFibGUgdG8gZm9yazogJCFcbiI7CisJbXkgJHJlcyA9IGRvIHsKKwkJbG9jYWwgJC8gPSB1bmRlZjsKKwkJPCRnaXQ+CisJfTsKIAljbG9zZSgkZ2l0KTsKIAogCXJldHVybiAkcmVzOwpAQCAtMzg0LDI3ICszNTksMjYgQEAKIAlteSAkbXdfcGFnZXMgPSAkbWVkaWF3aWtpLT5saXN0KHsKIAkJYWN0aW9uID0+ICdxdWVyeScsCiAJCWxpc3QgPT4gJ2FsbHBhZ2VzJywKLQkJYXBuYW1lc3BhY2UgPT4gZ2V0X213X25hbWVzcGFjZV9pZCgiRmlsZSIpLAorCQlhcG5hbWVzcGFjZSA9PiBnZXRfbXdfbmFtZXNwYWNlX2lkKCdGaWxlJyksCiAJCWFwbGltaXQgPT4gJ21heCcKIAl9KTsKIAlpZiAoIWRlZmluZWQoJG13X3BhZ2VzKSkgewotCQlwcmludCBTVERFUlIgImZhdGFsOiBjb3VsZCBub3QgZ2V0IHRoZSBsaXN0IG9mIHBhZ2VzIGZvciBtZWRpYSBmaWxlcy5cbiI7Ci0JCXByaW50IFNUREVSUiAiZmF0YWw6ICckdXJsJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSBtZWRpYXdpa2lcbiI7Ci0JCXByaW50IFNUREVSUiAiZmF0YWw6IG1ha2Ugc3VyZSAnJHVybC9hcGkucGhwJyBpcyBhIHZhbGlkIHBhZ2UuXG4iOworCQlwcmludCB7KlNUREVSUn0gImZhdGFsOiBjb3VsZCBub3QgZ2V0IHRoZSBsaXN0IG9mIHBhZ2VzIGZvciBtZWRpYSBmaWxlcy5cbiI7CisJCXByaW50IHsqU1RERVJSfSAiZmF0YWw6ICckdXJsJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSBtZWRpYXdpa2lcbiI7CisJCXByaW50IHsqU1RERVJSfSAiZmF0YWw6IG1ha2Ugc3VyZSAnJHVybC9hcGkucGhwJyBpcyBhIHZhbGlkIHBhZ2UuXG4iOwogCQlleGl0IDE7CiAJfQogCWZvcmVhY2ggbXkgJHBhZ2UgKEB7JG13X3BhZ2VzfSkgewogCQkkcGFnZXMtPnskcGFnZS0+e3RpdGxlfX0gPSAkcGFnZTsKIAl9CisJcmV0dXJuOwogfQogCiBzdWIgZ2V0X2xpbmtlZF9tZWRpYWZpbGVzIHsKIAlteSAkcGFnZXMgPSBzaGlmdDsKLQlteSBAdGl0bGVzID0gbWFwICRfLT57dGl0bGV9LCB2YWx1ZXMoJXskcGFnZXN9KTsKKwlteSBAdGl0bGVzID0gbWFwIHsgJF8tPnt0aXRsZX0gfSB2YWx1ZXMoJXskcGFnZXN9KTsKIAotCSMgVGhlIHF1ZXJ5IGlzIHNwbGl0IGluIHNtYWxsIGJhdGNoZXMgYmVjYXVzZSBvZiB0aGUgTVcgQVBJIGxpbWl0IG9mCi0JIyB0aGUgbnVtYmVyIG9mIGxpbmtzIHRvIGJlIHJldHVybmVkICg1MDAgbGlua3MgbWF4KS4KLQlteSAkYmF0Y2ggPSAxMDsKKwlteSAkYmF0Y2ggPSBCQVRDSF9TSVpFOwogCXdoaWxlIChAdGl0bGVzKSB7CiAJCWlmICgkI3RpdGxlcyA8ICRiYXRjaCkgewogCQkJJGJhdGNoID0gJCN0aXRsZXM7CkBAIC00MjAsNyArMzk0LDcgQEAKIAkJCWFjdGlvbiA9PiAncXVlcnknLAogCQkJcHJvcCA9PiAnbGlua3N8aW1hZ2VzJywKIAkJCXRpdGxlcyA9PiAkbXdfdGl0bGVzLAotCQkJcGxuYW1lc3BhY2UgPT4gZ2V0X213X25hbWVzcGFjZV9pZCgiRmlsZSIpLAorCQkJcGxuYW1lc3BhY2UgPT4gZ2V0X213X25hbWVzcGFjZV9pZCgnRmlsZScpLAogCQkJcGxsaW1pdCA9PiAnbWF4JwogCQl9OwogCQlteSAkcmVzdWx0ID0gJG1lZGlhd2lraS0+YXBpKCRxdWVyeSk7CkBAIC00MjgsMTEgKzQwMiwxMyBAQAogCQl3aGlsZSAobXkgKCRpZCwgJHBhZ2UpID0gZWFjaCgleyRyZXN1bHQtPntxdWVyeX0tPntwYWdlc319KSkgewogCQkJbXkgQG1lZGlhX3RpdGxlczsKIAkJCWlmIChkZWZpbmVkKCRwYWdlLT57bGlua3N9KSkgewotCQkJCW15IEBsaW5rX3RpdGxlcyA9IG1hcCAkXy0+e3RpdGxlfSwgQHskcGFnZS0+e2xpbmtzfX07CisJCQkJbXkgQGxpbmtfdGl0bGVzCisJCQkJICAgID0gbWFwIHsgJF8tPnt0aXRsZX0gfSBAeyRwYWdlLT57bGlua3N9fTsKIAkJCQlwdXNoKEBtZWRpYV90aXRsZXMsIEBsaW5rX3RpdGxlcyk7CiAJCQl9CiAJCQlpZiAoZGVmaW5lZCgkcGFnZS0+e2ltYWdlc30pKSB7Ci0JCQkJbXkgQGltYWdlX3RpdGxlcyA9IG1hcCAkXy0+e3RpdGxlfSwgQHskcGFnZS0+e2ltYWdlc319OworCQkJCW15IEBpbWFnZV90aXRsZXMKKwkJCQkgICAgPSBtYXAgeyAkXy0+e3RpdGxlfSB9IEB7JHBhZ2UtPntpbWFnZXN9fTsKIAkJCQlwdXNoKEBtZWRpYV90aXRsZXMsIEBpbWFnZV90aXRsZXMpOwogCQkJfQogCQkJaWYgKEBtZWRpYV90aXRsZXMpIHsKQEAgLTQ0Miw2ICs0MTgsNyBAQAogCiAJCUB0aXRsZXMgPSBAdGl0bGVzWygkYmF0Y2grMSkuLiQjdGl0bGVzXTsKIAl9CisJcmV0dXJuOwogfQogCiBzdWIgZ2V0X213X21lZGlhZmlsZV9mb3JfcGFnZV9yZXZpc2lvbiB7CkBAIC00NTUsNyArNDMyLDcgQEAKIAlteSAkcXVlcnkgPSB7CiAJCWFjdGlvbiA9PiAncXVlcnknLAogCQlwcm9wID0+ICdpbWFnZWluZm8nLAotCQl0aXRsZXMgPT4gIkZpbGU6IiAuICRmaWxlbmFtZSwKKwkJdGl0bGVzID0+ICJGaWxlOiR7ZmlsZW5hbWV9IiwKIAkJaWlzdGFydCA9PiAkdGltZXN0YW1wLAogCQlpaWVuZCA9PiAkdGltZXN0YW1wLAogCQlpaXByb3AgPT4gJ3RpbWVzdGFtcHxhcmNoaXZlbmFtZXx1cmwnLApAQCAtNDczLDUzICs0NTAsNTAgQEAKIAkJJG1lZGlhZmlsZXt0aW1lc3RhbXB9ID0gJGZpbGVpbmZvLT57dGltZXN0YW1wfTsKIAkJIyBNZWRpYXdpa2k6OkFQSSdzIGRvd25sb2FkIGZ1bmN0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBodHRwcyBVUkxzCiAJCSMgYW5kIGNhbid0IGRvd25sb2FkIG9sZCB2ZXJzaW9ucyBvZiBmaWxlcy4KLQkJcHJpbnQgU1RERVJSICJcdERvd25sb2FkaW5nIGZpbGUgJG1lZGlhZmlsZXt0aXRsZX0sIHZlcnNpb24gJG1lZGlhZmlsZXt0aW1lc3RhbXB9XG4iOworCQlwcmludCB7KlNUREVSUn0gIlx0RG93bmxvYWRpbmcgZmlsZSAkbWVkaWFmaWxle3RpdGxlfSwgdmVyc2lvbiAkbWVkaWFmaWxle3RpbWVzdGFtcH1cbiI7CiAJCSRtZWRpYWZpbGV7Y29udGVudH0gPSBkb3dubG9hZF9td19tZWRpYWZpbGUoJGZpbGVpbmZvLT57dXJsfSk7CiAJfQogCXJldHVybiAlbWVkaWFmaWxlOwogfQogCiBzdWIgZG93bmxvYWRfbXdfbWVkaWFmaWxlIHsKLQlteSAkdXJsID0gc2hpZnQ7CisJbXkgJGRvd25sb2FkX3VybCA9IHNoaWZ0OwogCi0JbXkgJHJlc3BvbnNlID0gJG1lZGlhd2lraS0+e3VhfS0+Z2V0KCR1cmwpOwotCWlmICgkcmVzcG9uc2UtPmNvZGUgPT0gMjAwKSB7CisJbXkgJHJlc3BvbnNlID0gJG1lZGlhd2lraS0+e3VhfS0+Z2V0KCRkb3dubG9hZF91cmwpOworCWlmICgkcmVzcG9uc2UtPmNvZGUgPT0gSFRUUF9DT0RFX09LKSB7CiAJCXJldHVybiAkcmVzcG9uc2UtPmRlY29kZWRfY29udGVudDsKIAl9IGVsc2UgewotCQlwcmludCBTVERFUlIgIkVycm9yIGRvd25sb2FkaW5nIG1lZGlhZmlsZSBmcm9tIDpcbiI7Ci0JCXByaW50IFNUREVSUiAiVVJMOiAkdXJsXG4iOwotCQlwcmludCBTVERFUlIgIlNlcnZlciByZXNwb25zZTogIiAuICRyZXNwb25zZS0+Y29kZSAuICIgIiAuICRyZXNwb25zZS0+bWVzc2FnZSAuICJcbiI7CisJCXByaW50IHsqU1RERVJSfSAiRXJyb3IgZG93bmxvYWRpbmcgbWVkaWFmaWxlIGZyb20gOlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJVUkw6ICR7ZG93bmxvYWRfdXJsfVxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICdTZXJ2ZXIgcmVzcG9uc2U6ICcgLiAkcmVzcG9uc2UtPmNvZGUgLiBxeyB9IC4gJHJlc3BvbnNlLT5tZXNzYWdlIC4gIlxuIjsKIAkJZXhpdCAxOwogCX0KIH0KIAogc3ViIGdldF9sYXN0X2xvY2FsX3JldmlzaW9uIHsKIAkjIEdldCBub3RlIHJlZ2FyZGluZyBsYXN0IG1lZGlhd2lraSByZXZpc2lvbgotCW15ICRub3RlID0gcnVuX2dpdCgibm90ZXMgLS1yZWY9JHJlbW90ZW5hbWUvbWVkaWF3aWtpIHNob3cgcmVmcy9tZWRpYXdpa2kvJHJlbW90ZW5hbWUvbWFzdGVyIDI+L2Rldi9udWxsIik7CisJbXkgJG5vdGUgPSBydW5fZ2l0KCJub3RlcyAtLXJlZj0ke3JlbW90ZW5hbWV9L21lZGlhd2lraSBzaG93IHJlZnMvbWVkaWF3aWtpLyR7cmVtb3RlbmFtZX0vbWFzdGVyIDI+L2Rldi9udWxsIik7CiAJbXkgQG5vdGVfaW5mbyA9IHNwbGl0KC8gLywgJG5vdGUpOwogCiAJbXkgJGxhc3RyZXZpc2lvbl9udW1iZXI7Ci0JaWYgKCEoZGVmaW5lZCgkbm90ZV9pbmZvWzBdKSAmJiAkbm90ZV9pbmZvWzBdIGVxICJtZWRpYXdpa2lfcmV2aXNpb246IikpIHsKLQkJcHJpbnQgU1RERVJSICJObyBwcmV2aW91cyBtZWRpYXdpa2kgcmV2aXNpb24gZm91bmQiOworCWlmICghKGRlZmluZWQoJG5vdGVfaW5mb1swXSkgJiYgJG5vdGVfaW5mb1swXSBlcSAnbWVkaWF3aWtpX3JldmlzaW9uOicpKSB7CisJCXByaW50IHsqU1RERVJSfSAnTm8gcHJldmlvdXMgbWVkaWF3aWtpIHJldmlzaW9uIGZvdW5kJzsKIAkJJGxhc3RyZXZpc2lvbl9udW1iZXIgPSAwOwogCX0gZWxzZSB7CiAJCSMgTm90ZXMgYXJlIGZvcm1hdHRlZCA6IG1lZGlhd2lraV9yZXZpc2lvbjogI251bWJlcgogCQkkbGFzdHJldmlzaW9uX251bWJlciA9ICRub3RlX2luZm9bMV07CiAJCWNob21wKCRsYXN0cmV2aXNpb25fbnVtYmVyKTsKLQkJcHJpbnQgU1RERVJSICJMYXN0IGxvY2FsIG1lZGlhd2lraSByZXZpc2lvbiBmb3VuZCBpcyAkbGFzdHJldmlzaW9uX251bWJlciI7CisJCXByaW50IHsqU1RERVJSfSAiTGFzdCBsb2NhbCBtZWRpYXdpa2kgcmV2aXNpb24gZm91bmQgaXMgJHtsYXN0cmV2aXNpb25fbnVtYmVyfSI7CiAJfQogCXJldHVybiAkbGFzdHJldmlzaW9uX251bWJlcjsKIH0KIAotIyBSZW1lbWJlciB0aGUgdGltZXN0YW1wIGNvcnJlc3BvbmRpbmcgdG8gYSByZXZpc2lvbiBpZC4KLW15ICViYXNldGltZXN0YW1wczsKLQogIyBHZXQgdGhlIGxhc3QgcmVtb3RlIHJldmlzaW9uIHdpdGhvdXQgdGFraW5nIGluIGFjY291bnQgd2hpY2ggcGFnZXMgYXJlCiAjIHRyYWNrZWQgb3Igbm90LiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2luZ2xlIHJlcXVlc3QgdG8gdGhlIHdpa2kgdGh1cwogIyBhdm9pZCBhIGxvb3Agb250byBhbGwgdHJhY2tlZCBwYWdlcy4gVGhpcyBpcyB1c2VmdWwgZm9yIHRoZSBmZXRjaC1ieS1yZXYKICMgb3B0aW9uLgogc3ViIGdldF9sYXN0X2dsb2JhbF9yZW1vdGVfcmV2IHsKLQltd19jb25uZWN0X21heWJlKCk7CisJJG1lZGlhd2lraSA9IGNvbm5lY3RfbWF5YmUoJG1lZGlhd2lraSwgJHJlbW90ZW5hbWUsICR1cmwpOwogCiAJbXkgJHF1ZXJ5ID0gewogCQlhY3Rpb24gPT4gJ3F1ZXJ5JywKQEAgLTUzNSwxNCArNTA5LDE0IEBACiAjIEdldCB0aGUgbGFzdCByZW1vdGUgcmV2aXNpb24gY29uY2VybmluZyB0aGUgdHJhY2tlZCBwYWdlcyBhbmQgdGhlIHRyYWNrZWQKICMgY2F0ZWdvcmllcy4KIHN1YiBnZXRfbGFzdF9yZW1vdGVfcmV2aXNpb24gewotCW13X2Nvbm5lY3RfbWF5YmUoKTsKKwkkbWVkaWF3aWtpID0gY29ubmVjdF9tYXliZSgkbWVkaWF3aWtpLCAkcmVtb3RlbmFtZSwgJHVybCk7CiAKIAlteSAlcGFnZXNfaGFzaCA9IGdldF9td19wYWdlcygpOwogCW15IEBwYWdlcyA9IHZhbHVlcyglcGFnZXNfaGFzaCk7CiAKIAlteSAkbWF4X3Jldl9udW0gPSAwOwogCi0JcHJpbnQgU1RERVJSICJHZXR0aW5nIGxhc3QgcmV2aXNpb24gaWQgb24gdHJhY2tlZCBwYWdlcy4uLlxuIjsKKwlwcmludCB7KlNUREVSUn0gIkdldHRpbmcgbGFzdCByZXZpc2lvbiBpZCBvbiB0cmFja2VkIHBhZ2VzLi4uXG4iOwogCiAJZm9yZWFjaCBteSAkcGFnZSAoQHBhZ2VzKSB7CiAJCW15ICRpZCA9ICRwYWdlLT57cGFnZWlkfTsKQEAgLTU2Myw3ICs1MzcsNyBAQAogCQkkbWF4X3Jldl9udW0gPSAoJGxhc3RyZXYtPntyZXZpZH0gPiAkbWF4X3Jldl9udW0gPyAkbGFzdHJldi0+e3JldmlkfSA6ICRtYXhfcmV2X251bSk7CiAJfQogCi0JcHJpbnQgU1RERVJSICJMYXN0IHJlbW90ZSByZXZpc2lvbiBmb3VuZCBpcyAkbWF4X3Jldl9udW0uXG4iOworCXByaW50IHsqU1RERVJSfSAiTGFzdCByZW1vdGUgcmV2aXNpb24gZm91bmQgaXMgJG1heF9yZXZfbnVtLlxuIjsKIAlyZXR1cm4gJG1heF9yZXZfbnVtOwogfQogCkBAIC01NzQsNyArNTQ4LDcgQEAKIAkjIE1lZGlhd2lraSBkb2VzIG5vdCBhbGxvdyBibGFuayBzcGFjZSBhdCB0aGUgZW5kIG9mIGEgcGFnZSBhbmQgZW5kcyB3aXRoIGEgc2luZ2xlIFxuLgogCSMgVGhpcyBmdW5jdGlvbiByaWdodCB0cmltcyBhIHN0cmluZyBhbmQgYWRkcyBhIFxuIGF0IHRoZSBlbmQgdG8gZm9sbG93IHRoaXMgcnVsZQogCSRzdHJpbmcgPX4gcy9ccyskLy87Ci0JaWYgKCRzdHJpbmcgZXEgIiIgJiYgJHBhZ2VfY3JlYXRlZCkgeworCWlmICgkc3RyaW5nIGVxIEVNUFRZICYmICRwYWdlX2NyZWF0ZWQpIHsKIAkJIyBDcmVhdGluZyBlbXB0eSBwYWdlcyBpcyBmb3JiaWRkZW4uCiAJCSRzdHJpbmcgPSBFTVBUWV9DT05URU5UOwogCX0KQEAgLTU4NSwzOCArNTU5LDE2IEBACiBzdWIgbWVkaWF3aWtpX3NtdWRnZSB7CiAJbXkgJHN0cmluZyA9IHNoaWZ0OwogCWlmICgkc3RyaW5nIGVxIEVNUFRZX0NPTlRFTlQpIHsKLQkJJHN0cmluZyA9ICIiOworCQkkc3RyaW5nID0gRU1QVFk7CiAJfQogCSMgVGhpcyBcbiBpcyBpbXBvcnRhbnQuIFRoaXMgaXMgZHVlIHRvIG1lZGlhd2lraSdzIHdheSB0byBoYW5kbGUgZW5kIG9mIGZpbGVzLgotCXJldHVybiAkc3RyaW5nLiJcbiI7Ci19Ci0KLXN1YiBtZWRpYXdpa2lfY2xlYW5fZmlsZW5hbWUgewotCW15ICRmaWxlbmFtZSA9IHNoaWZ0OwotCSRmaWxlbmFtZSA9fiBzL0B7W1NMQVNIX1JFUExBQ0VNRU5UXX0vXC8vZzsKLQkjIFssIF0sIHwsIHssIGFuZCB9IGFyZSBmb3JiaWRkZW4gYnkgTWVkaWFXaWtpLCBldmVuIFVSTC1lbmNvZGVkLgotCSMgRG8gYSB2YXJpYW50IG9mIFVSTC1lbmNvZGluZywgaS5lLiBsb29rcyBsaWtlIFVSTC1lbmNvZGluZywKLQkjIGJ1dCB3aXRoIF8gYWRkZWQgdG8gcHJldmVudCBNZWRpYVdpa2kgZnJvbSB0aGlua2luZyB0aGlzIGlzCi0JIyBhbiBhY3R1YWwgc3BlY2lhbCBjaGFyYWN0ZXIuCi0JJGZpbGVuYW1lID1+IHMvW1xbXF1ce1x9XHxdL3NwcmludGYoIl8lJV8leCIsIG9yZCgkJikpL2dlOwotCSMgSWYgd2UgdXNlIHRoZSB1cmkgZXNjYXBlIGJlZm9yZQotCSMgd2Ugc2hvdWxkIHVuZXNjYXBlIGhlcmUsIGJlZm9yZSBhbnl0aGluZwotCi0JcmV0dXJuICRmaWxlbmFtZTsKLX0KLQotc3ViIG1lZGlhd2lraV9zbXVkZ2VfZmlsZW5hbWUgewotCW15ICRmaWxlbmFtZSA9IHNoaWZ0OwotCSRmaWxlbmFtZSA9fiBzL1wvL0B7W1NMQVNIX1JFUExBQ0VNRU5UXX0vZzsKLQkkZmlsZW5hbWUgPX4gcy8gL18vZzsKLQkjIERlY29kZSBmb3JiaWRkZW4gY2hhcmFjdGVycyBlbmNvZGVkIGluIG1lZGlhd2lraV9jbGVhbl9maWxlbmFtZQotCSRmaWxlbmFtZSA9fiBzL18lXyhbMC05YS1mQS1GXVswLTlhLWZBLUZdKS9zcHJpbnRmKCIlYyIsIGhleCgkMSkpL2dlOwotCXJldHVybiAkZmlsZW5hbWU7CisJcmV0dXJuICIke3N0cmluZ31cbiI7CiB9CiAKIHN1YiBsaXRlcmFsX2RhdGEgewogCW15ICgkY29udGVudCkgPSBAXzsKLQlwcmludCBTVERPVVQgImRhdGEgIiwgYnl0ZXM6Omxlbmd0aCgkY29udGVudCksICJcbiIsICRjb250ZW50OworCXByaW50IHsqU1RET1VUfSAnZGF0YSAnLCBieXRlczo6bGVuZ3RoKCRjb250ZW50KSwgIlxuIiwgJGNvbnRlbnQ7CisJcmV0dXJuOwogfQogCiBzdWIgbGl0ZXJhbF9kYXRhX3JhdyB7CkBAIC02MjQsMzMgKzU3NiwzNyBAQAogCW15ICgkY29udGVudCkgPSBAXzsKIAkjIEF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIHNpemUgaW4gYnl0ZXMgYW5kIGluIGNoYXJhY3RlcnMKIAl1dGY4Ojpkb3duZ3JhZGUoJGNvbnRlbnQpOwotCWJpbm1vZGUgU1RET1VULCAiOnJhdyI7Ci0JcHJpbnQgU1RET1VUICJkYXRhICIsIGJ5dGVzOjpsZW5ndGgoJGNvbnRlbnQpLCAiXG4iLCAkY29udGVudDsKLQliaW5tb2RlIFNURE9VVCwgIjp1dGY4IjsKKwliaW5tb2RlIFNURE9VVCwgJzpyYXcnOworCXByaW50IHsqU1RET1VUfSAnZGF0YSAnLCBieXRlczo6bGVuZ3RoKCRjb250ZW50KSwgIlxuIiwgJGNvbnRlbnQ7CisJYmlubW9kZSBTVERPVVQsICc6ZW5jb2RpbmcoVVRGLTgpJzsKKwlyZXR1cm47CiB9CiAKIHN1YiBtd19jYXBhYmlsaXRpZXMgewogCSMgUmV2aXNpb25zIGFyZSBpbXBvcnRlZCB0byB0aGUgcHJpdmF0ZSBuYW1lc3BhY2UKIAkjIHJlZnMvbWVkaWF3aWtpLyRyZW1vdGVuYW1lLyBieSB0aGUgaGVscGVyIGFuZCBmZXRjaGVkIGludG8KIAkjIHJlZnMvcmVtb3Rlcy8kcmVtb3RlbmFtZSBsYXRlciBieSBmZXRjaC4KLQlwcmludCBTVERPVVQgInJlZnNwZWMgcmVmcy9oZWFkcy8qOnJlZnMvbWVkaWF3aWtpLyRyZW1vdGVuYW1lLypcbiI7Ci0JcHJpbnQgU1RET1VUICJpbXBvcnRcbiI7Ci0JcHJpbnQgU1RET1VUICJsaXN0XG4iOwotCXByaW50IFNURE9VVCAicHVzaFxuIjsKLQlwcmludCBTVERPVVQgIlxuIjsKKwlwcmludCB7KlNURE9VVH0gInJlZnNwZWMgcmVmcy9oZWFkcy8qOnJlZnMvbWVkaWF3aWtpLyR7cmVtb3RlbmFtZX0vKlxuIjsKKwlwcmludCB7KlNURE9VVH0gImltcG9ydFxuIjsKKwlwcmludCB7KlNURE9VVH0gImxpc3RcbiI7CisJcHJpbnQgeypTVERPVVR9ICJwdXNoXG4iOworCXByaW50IHsqU1RET1VUfSAiXG4iOworCXJldHVybjsKIH0KIAogc3ViIG13X2xpc3QgewogCSMgTWVkaWFXaWtpIGRvIG5vdCBoYXZlIGJyYW5jaGVzLCB3ZSBjb25zaWRlciBvbmUgYnJhbmNoIGFyYml0cmFyaWx5CiAJIyBjYWxsZWQgbWFzdGVyLCBhbmQgSEVBRCBwb2ludGluZyB0byBpdC4KLQlwcmludCBTVERPVVQgIj8gcmVmcy9oZWFkcy9tYXN0ZXJcbiI7Ci0JcHJpbnQgU1RET1VUICJcQHJlZnMvaGVhZHMvbWFzdGVyIEhFQURcbiI7Ci0JcHJpbnQgU1RET1VUICJcbiI7CisJcHJpbnQgeypTVERPVVR9ICI/IHJlZnMvaGVhZHMvbWFzdGVyXG4iOworCXByaW50IHsqU1RET1VUfSAiXEByZWZzL2hlYWRzL21hc3RlciBIRUFEXG4iOworCXByaW50IHsqU1RET1VUfSAiXG4iOworCXJldHVybjsKIH0KIAogc3ViIG13X29wdGlvbiB7Ci0JcHJpbnQgU1RERVJSICJyZW1vdGUtaGVscGVyIGNvbW1hbmQgJ29wdGlvbiAkX1swXScgbm90IHlldCBpbXBsZW1lbnRlZFxuIjsKLQlwcmludCBTVERPVVQgInVuc3VwcG9ydGVkXG4iOworCXByaW50IHsqU1RERVJSfSAicmVtb3RlLWhlbHBlciBjb21tYW5kICdvcHRpb24gJF9bMF0nIG5vdCB5ZXQgaW1wbGVtZW50ZWRcbiI7CisJcHJpbnQgeypTVERPVVR9ICJ1bnN1cHBvcnRlZFxuIjsKKwlyZXR1cm47CiB9CiAKIHN1YiBmZXRjaF9td19yZXZpc2lvbnNfZm9yX3BhZ2UgewpAQCAtNjY2LDYgKzYyMiw5IEBACiAJCXJ2c3RhcnRpZCA9PiAkZmV0Y2hfZnJvbSwKIAkJcnZsaW1pdCA9PiA1MDAsCiAJCXBhZ2VpZHMgPT4gJGlkLAorCisJCSMgTGV0IE1lZGlhV2lraSBrbm93IHRoYXQgd2Ugc3VwcG9ydCB0aGUgbGF0ZXN0IEFQSS4KKwkJY29udGludWUgPT4gJycsCiAJfTsKIAogCW15ICRyZXZudW0gPSAwOwpAQCAtNjgxLDE1ICs2NDAsMjIgQEAKIAkJCXB1c2goQHBhZ2VfcmV2cywgJHBhZ2VfcmV2X2lkcyk7CiAJCQkkcmV2bnVtKys7CiAJCX0KLQkJbGFzdCB1bmxlc3MgJHJlc3VsdC0+eydxdWVyeS1jb250aW51ZSd9OwotCQkkcXVlcnktPntydnN0YXJ0aWR9ID0gJHJlc3VsdC0+eydxdWVyeS1jb250aW51ZSd9LT57cmV2aXNpb25zfS0+e3J2c3RhcnRpZH07CisKKwkJaWYgKCRyZXN1bHQtPnsncXVlcnktY29udGludWUnfSkgeyAjIEZvciBsZWdhY3kgQVBJcworCQkJJHF1ZXJ5LT57cnZzdGFydGlkfSA9ICRyZXN1bHQtPnsncXVlcnktY29udGludWUnfS0+e3JldmlzaW9uc30tPntydnN0YXJ0aWR9OworCQl9IGVsc2lmICgkcmVzdWx0LT57Y29udGludWV9KSB7ICMgRm9yIG5ld2VyIEFQSXMKKwkJCSRxdWVyeS0+e3J2c3RhcnRpZH0gPSAkcmVzdWx0LT57Y29udGludWV9LT57cnZjb250aW51ZX07CisJCQkkcXVlcnktPntjb250aW51ZX0gPSAkcmVzdWx0LT57Y29udGludWV9LT57Y29udGludWV9OworCQl9IGVsc2UgeworCQkJbGFzdDsKKwkJfQogCX0KIAlpZiAoJHNoYWxsb3dfaW1wb3J0ICYmIEBwYWdlX3JldnMpIHsKLQkJcHJpbnQgU1RERVJSICIgIEZvdW5kIDEgcmV2aXNpb24gKHNoYWxsb3cgaW1wb3J0KS5cbiI7CisJCXByaW50IHsqU1RERVJSfSAiICBGb3VuZCAxIHJldmlzaW9uIChzaGFsbG93IGltcG9ydCkuXG4iOwogCQlAcGFnZV9yZXZzID0gc29ydCB7JGItPntyZXZpZH0gPD0+ICRhLT57cmV2aWR9fSAoQHBhZ2VfcmV2cyk7CiAJCXJldHVybiAkcGFnZV9yZXZzWzBdOwogCX0KLQlwcmludCBTVERFUlIgIiAgRm91bmQgIiwgJHJldm51bSwgIiByZXZpc2lvbihzKS5cbiI7CisJcHJpbnQgeypTVERFUlJ9ICIgIEZvdW5kICR7cmV2bnVtfSByZXZpc2lvbihzKS5cbiI7CiAJcmV0dXJuIEBwYWdlX3JldnM7CiB9CiAKQEAgLTcwMSw4ICs2NjcsNyBAQAogCW15ICRuID0gMTsKIAlmb3JlYWNoIG15ICRwYWdlIChAcGFnZXMpIHsKIAkJbXkgJGlkID0gJHBhZ2UtPntwYWdlaWR9OwotCi0JCXByaW50IFNUREVSUiAicGFnZSAkbi8iLCBzY2FsYXIoQHBhZ2VzKSwgIjogIi4gJHBhZ2UtPnt0aXRsZX0gLiJcbiI7CisJCXByaW50IHsqU1RERVJSfSAicGFnZSAke259LyIsIHNjYWxhcihAcGFnZXMpLCAnOiAnLCAkcGFnZS0+e3RpdGxlfSwgIlxuIjsKIAkJJG4rKzsKIAkJbXkgQHBhZ2VfcmV2cyA9IGZldGNoX213X3JldmlzaW9uc19mb3JfcGFnZSgkcGFnZSwgJGlkLCAkZmV0Y2hfZnJvbSk7CiAJCUByZXZpc2lvbnMgPSAoQHBhZ2VfcmV2cywgQHJldmlzaW9ucyk7CkBAIC03MTYsNyArNjgxLDcgQEAKICAgICAkcGF0aCA9fiBzL1xcL1xcXFwvZzsKICAgICAkcGF0aCA9fiBzLyIvXFwiL2c7CiAgICAgJHBhdGggPX4gcy9cbi9cXG4vZzsKLSAgICByZXR1cm4gJyInIC4gJHBhdGggLiAnIic7CisgICAgcmV0dXJuIHFxKCIke3BhdGh9Iik7CiB9CiAKIHN1YiBpbXBvcnRfZmlsZV9yZXZpc2lvbiB7CkBAIC03MzYsNDIgKzcwMSw0MyBAQAogCW15ICRhdXRob3IgPSAkY29tbWl0e2F1dGhvcn07CiAJbXkgJGRhdGUgPSAkY29tbWl0e2RhdGV9OwogCi0JcHJpbnQgU1RET1VUICJjb21taXQgcmVmcy9tZWRpYXdpa2kvJHJlbW90ZW5hbWUvbWFzdGVyXG4iOwotCXByaW50IFNURE9VVCAibWFyayA6JG5cbiI7Ci0JcHJpbnQgU1RET1VUICJjb21taXR0ZXIgJGF1dGhvciA8JGF1dGhvclxAJHdpa2lfbmFtZT4gIiwgJGRhdGUtPmVwb2NoLCAiICswMDAwXG4iOworCXByaW50IHsqU1RET1VUfSAiY29tbWl0IHJlZnMvbWVkaWF3aWtpLyR7cmVtb3RlbmFtZX0vbWFzdGVyXG4iOworCXByaW50IHsqU1RET1VUfSAibWFyayA6JHtufVxuIjsKKwlwcmludCB7KlNURE9VVH0gImNvbW1pdHRlciAke2F1dGhvcn0gPCR7YXV0aG9yfVxAJHt3aWtpX25hbWV9PiAiIC4gJGRhdGUtPmVwb2NoIC4gIiArMDAwMFxuIjsKIAlsaXRlcmFsX2RhdGEoJGNvbW1lbnQpOwogCiAJIyBJZiBpdCdzIG5vdCBhIGNsb25lLCB3ZSBuZWVkIHRvIGtub3cgd2hlcmUgdG8gc3RhcnQgZnJvbQogCWlmICghJGZ1bGxfaW1wb3J0ICYmICRuID09IDEpIHsKLQkJcHJpbnQgU1RET1VUICJmcm9tIHJlZnMvbWVkaWF3aWtpLyRyZW1vdGVuYW1lL21hc3Rlcl4wXG4iOworCQlwcmludCB7KlNURE9VVH0gImZyb20gcmVmcy9tZWRpYXdpa2kvJHtyZW1vdGVuYW1lfS9tYXN0ZXJeMFxuIjsKIAl9CiAJaWYgKCRjb250ZW50IG5lIERFTEVURURfQ09OVEVOVCkgewotCQlwcmludCBTVERPVVQgIk0gNjQ0IGlubGluZSAiIC4KLQkJICAgIGZlX2VzY2FwZV9wYXRoKCR0aXRsZSAuICIubXciKSAuICJcbiI7CisJCXByaW50IHsqU1RET1VUfSAnTSA2NDQgaW5saW5lICcgLgorCQkgICAgZmVfZXNjYXBlX3BhdGgoIiR7dGl0bGV9Lm13IikgLiAiXG4iOwogCQlsaXRlcmFsX2RhdGEoJGNvbnRlbnQpOwogCQlpZiAoJW1lZGlhZmlsZSkgewotCQkJcHJpbnQgU1RET1VUICJNIDY0NCBpbmxpbmUgIgorCQkJcHJpbnQgeypTVERPVVR9ICdNIDY0NCBpbmxpbmUgJwogCQkJICAgIC4gZmVfZXNjYXBlX3BhdGgoJG1lZGlhZmlsZXt0aXRsZX0pIC4gIlxuIjsKIAkJCWxpdGVyYWxfZGF0YV9yYXcoJG1lZGlhZmlsZXtjb250ZW50fSk7CiAJCX0KLQkJcHJpbnQgU1RET1VUICJcblxuIjsKKwkJcHJpbnQgeypTVERPVVR9ICJcblxuIjsKIAl9IGVsc2UgewotCQlwcmludCBTVERPVVQgIkQgIiAuIGZlX2VzY2FwZV9wYXRoKCR0aXRsZSAuICIubXciKSAuICJcbiI7CisJCXByaW50IHsqU1RET1VUfSAnRCAnIC4gZmVfZXNjYXBlX3BhdGgoIiR7dGl0bGV9Lm13IikgLiAiXG4iOwogCX0KIAogCSMgbWVkaWF3aWtpIHJldmlzaW9uIG51bWJlciBpbiB0aGUgZ2l0IG5vdGUKIAlpZiAoJGZ1bGxfaW1wb3J0ICYmICRuID09IDEpIHsKLQkJcHJpbnQgU1RET1VUICJyZXNldCByZWZzL25vdGVzLyRyZW1vdGVuYW1lL21lZGlhd2lraVxuIjsKKwkJcHJpbnQgeypTVERPVVR9ICJyZXNldCByZWZzL25vdGVzLyR7cmVtb3RlbmFtZX0vbWVkaWF3aWtpXG4iOwogCX0KLQlwcmludCBTVERPVVQgImNvbW1pdCByZWZzL25vdGVzLyRyZW1vdGVuYW1lL21lZGlhd2lraVxuIjsKLQlwcmludCBTVERPVVQgImNvbW1pdHRlciAkYXV0aG9yIDwkYXV0aG9yXEAkd2lraV9uYW1lPiAiLCAkZGF0ZS0+ZXBvY2gsICIgKzAwMDBcbiI7Ci0JbGl0ZXJhbF9kYXRhKCJOb3RlIGFkZGVkIGJ5IGdpdC1tZWRpYXdpa2kgZHVyaW5nIGltcG9ydCIpOworCXByaW50IHsqU1RET1VUfSAiY29tbWl0IHJlZnMvbm90ZXMvJHtyZW1vdGVuYW1lfS9tZWRpYXdpa2lcbiI7CisJcHJpbnQgeypTVERPVVR9ICJjb21taXR0ZXIgJHthdXRob3J9IDwke2F1dGhvcn1cQCR7d2lraV9uYW1lfT4gIiAuICRkYXRlLT5lcG9jaCAuICIgKzAwMDBcbiI7CisJbGl0ZXJhbF9kYXRhKCdOb3RlIGFkZGVkIGJ5IGdpdC1tZWRpYXdpa2kgZHVyaW5nIGltcG9ydCcpOwogCWlmICghJGZ1bGxfaW1wb3J0ICYmICRuID09IDEpIHsKLQkJcHJpbnQgU1RET1VUICJmcm9tIHJlZnMvbm90ZXMvJHJlbW90ZW5hbWUvbWVkaWF3aWtpXjBcbiI7CisJCXByaW50IHsqU1RET1VUfSAiZnJvbSByZWZzL25vdGVzLyR7cmVtb3RlbmFtZX0vbWVkaWF3aWtpXjBcbiI7CiAJfQotCXByaW50IFNURE9VVCAiTiBpbmxpbmUgOiRuXG4iOwotCWxpdGVyYWxfZGF0YSgibWVkaWF3aWtpX3JldmlzaW9uOiAiIC4gJGNvbW1pdHttd19yZXZpc2lvbn0pOwotCXByaW50IFNURE9VVCAiXG5cbiI7CisJcHJpbnQgeypTVERPVVR9ICJOIGlubGluZSA6JHtufVxuIjsKKwlsaXRlcmFsX2RhdGEoIm1lZGlhd2lraV9yZXZpc2lvbjogJGNvbW1pdHttd19yZXZpc2lvbn0iKTsKKwlwcmludCB7KlNURE9VVH0gIlxuXG4iOworCXJldHVybjsKIH0KIAogIyBwYXJzZSBhIHNlcXVlbmNlIG9mCkBAIC03ODQsMjMgKzc1MCwyNSBAQAogCW15IEByZWZzOwogCXdoaWxlICgxKSB7CiAJCW15ICRsaW5lID0gPFNURElOPjsKLQkJaWYgKCRsaW5lID1+IG0vXiRjbWQgKC4qKSQvKSB7CisJCWlmICgkbGluZSA9fiAvXiRjbWQgKC4qKSQvKSB7CiAJCQlwdXNoKEByZWZzLCAkMSk7CiAJCX0gZWxzaWYgKCRsaW5lIGVxICJcbiIpIHsKIAkJCXJldHVybiBAcmVmczsKIAkJfSBlbHNlIHsKLQkJCWRpZSgiSW52YWxpZCBjb21tYW5kIGluIGEgJyRjbWQnIGJhdGNoOiAiLiAkXyk7CisJCQlkaWUoIkludmFsaWQgY29tbWFuZCBpbiBhICckY21kJyBiYXRjaDogJF9cbiIpOwogCQl9CiAJfQorCXJldHVybjsKIH0KIAogc3ViIG13X2ltcG9ydCB7CiAJIyBtdWx0aXBsZSBpbXBvcnQgY29tbWFuZHMgY2FuIGZvbGxvdyBlYWNoIG90aGVyLgotCW15IEByZWZzID0gKHNoaWZ0LCBnZXRfbW9yZV9yZWZzKCJpbXBvcnQiKSk7CisJbXkgQHJlZnMgPSAoc2hpZnQsIGdldF9tb3JlX3JlZnMoJ2ltcG9ydCcpKTsKIAlmb3JlYWNoIG15ICRyZWYgKEByZWZzKSB7CiAJCW13X2ltcG9ydF9yZWYoJHJlZik7CiAJfQotCXByaW50IFNURE9VVCAiZG9uZVxuIjsKKwlwcmludCB7KlNURE9VVH0gImRvbmVcbiI7CisJcmV0dXJuOwogfQogCiBzdWIgbXdfaW1wb3J0X3JlZiB7CkBAIC04MTAsNDAgKzc3OCw0MSBAQAogCSMgU2luY2UgSEVBRCBpcyBhIHN5bWJvbGljIHJlZiB0byBtYXN0ZXIgKGJ5IGNvbnZlbnRpb24sCiAJIyBmb2xsb3dlZCBieSB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kICJsaXN0IiB0aGF0IHdlIGdhdmUpLAogCSMgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBpbiB0aGlzIGNhc2UuCi0JaWYgKCRyZWYgZXEgIkhFQUQiKSB7CisJaWYgKCRyZWYgZXEgJ0hFQUQnKSB7CiAJCXJldHVybjsKIAl9CiAKLQltd19jb25uZWN0X21heWJlKCk7CisJJG1lZGlhd2lraSA9IGNvbm5lY3RfbWF5YmUoJG1lZGlhd2lraSwgJHJlbW90ZW5hbWUsICR1cmwpOwogCi0JcHJpbnQgU1RERVJSICJTZWFyY2hpbmcgcmV2aXNpb25zLi4uXG4iOworCXByaW50IHsqU1RERVJSfSAiU2VhcmNoaW5nIHJldmlzaW9ucy4uLlxuIjsKIAlteSAkbGFzdF9sb2NhbCA9IGdldF9sYXN0X2xvY2FsX3JldmlzaW9uKCk7CiAJbXkgJGZldGNoX2Zyb20gPSAkbGFzdF9sb2NhbCArIDE7CiAJaWYgKCRmZXRjaF9mcm9tID09IDEpIHsKLQkJcHJpbnQgU1RERVJSICIsIGZldGNoaW5nIGZyb20gYmVnaW5uaW5nLlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICIsIGZldGNoaW5nIGZyb20gYmVnaW5uaW5nLlxuIjsKIAl9IGVsc2UgewotCQlwcmludCBTVERFUlIgIiwgZmV0Y2hpbmcgZnJvbSBoZXJlLlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICIsIGZldGNoaW5nIGZyb20gaGVyZS5cbiI7CiAJfQogCiAJbXkgJG4gPSAwOwotCWlmICgkZmV0Y2hfc3RyYXRlZ3kgZXEgImJ5X3JldiIpIHsKLQkJcHJpbnQgU1RERVJSICJGZXRjaGluZyAmIHdyaXRpbmcgZXhwb3J0IGRhdGEgYnkgcmV2cy4uLlxuIjsKKwlpZiAoJGZldGNoX3N0cmF0ZWd5IGVxICdieV9yZXYnKSB7CisJCXByaW50IHsqU1RERVJSfSAiRmV0Y2hpbmcgJiB3cml0aW5nIGV4cG9ydCBkYXRhIGJ5IHJldnMuLi5cbiI7CiAJCSRuID0gbXdfaW1wb3J0X3JlZl9ieV9yZXZzKCRmZXRjaF9mcm9tKTsKLQl9IGVsc2lmICgkZmV0Y2hfc3RyYXRlZ3kgZXEgImJ5X3BhZ2UiKSB7Ci0JCXByaW50IFNUREVSUiAiRmV0Y2hpbmcgJiB3cml0aW5nIGV4cG9ydCBkYXRhIGJ5IHBhZ2VzLi4uXG4iOworCX0gZWxzaWYgKCRmZXRjaF9zdHJhdGVneSBlcSAnYnlfcGFnZScpIHsKKwkJcHJpbnQgeypTVERFUlJ9ICJGZXRjaGluZyAmIHdyaXRpbmcgZXhwb3J0IGRhdGEgYnkgcGFnZXMuLi5cbiI7CiAJCSRuID0gbXdfaW1wb3J0X3JlZl9ieV9wYWdlcygkZmV0Y2hfZnJvbSk7CiAJfSBlbHNlIHsKLQkJcHJpbnQgU1RERVJSICJmYXRhbDogaW52YWxpZCBmZXRjaCBzdHJhdGVneSBcIiRmZXRjaF9zdHJhdGVneVwiLlxuIjsKLQkJcHJpbnQgU1RERVJSICJDaGVjayB5b3VyIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIHJlbW90ZS4kcmVtb3RlbmFtZS5mZXRjaFN0cmF0ZWd5IGFuZCBtZWRpYXdpa2kuZmV0Y2hTdHJhdGVneVxuIjsKKwkJcHJpbnQgeypTVERFUlJ9IHFxKGZhdGFsOiBpbnZhbGlkIGZldGNoIHN0cmF0ZWd5ICIke2ZldGNoX3N0cmF0ZWd5fSIuXG4pOworCQlwcmludCB7KlNUREVSUn0gIkNoZWNrIHlvdXIgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgcmVtb3RlLiR7cmVtb3RlbmFtZX0uZmV0Y2hTdHJhdGVneSBhbmQgbWVkaWF3aWtpLmZldGNoU3RyYXRlZ3lcbiI7CiAJCWV4aXQgMTsKIAl9CiAKIAlpZiAoJGZldGNoX2Zyb20gPT0gMSAmJiAkbiA9PSAwKSB7Ci0JCXByaW50IFNUREVSUiAiWW91IGFwcGVhciB0byBoYXZlIGNsb25lZCBhbiBlbXB0eSBNZWRpYVdpa2kuXG4iOworCQlwcmludCB7KlNUREVSUn0gIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgTWVkaWFXaWtpLlxuIjsKIAkJIyBTb21ldGhpbmcgaGFzIHRvIGJlIGRvbmUgcmVtb3RlLWhlbHBlciBzaWRlLiBJZiBub3RoaW5nIGlzIGRvbmUsIGFuIGVycm9yIGlzCiAJCSMgdGhyb3duIHNheWluZyB0aGF0IEhFQUQgaXMgcmVmZXJyaW5nIHRvIHVua25vd24gb2JqZWN0IDAwMDAwMDAwMDAwMDAwMDAwMDAKIAkJIyBhbmQgdGhlIGNsb25lIGZhaWxzLgogCX0KKwlyZXR1cm47CiB9CiAKIHN1YiBtd19pbXBvcnRfcmVmX2J5X3BhZ2VzIHsKQEAgLTg1NSw3ICs4MjQsNyBAQAogCW15ICgkbiwgQHJldmlzaW9ucykgPSBmZXRjaF9td19yZXZpc2lvbnMoXEBwYWdlcywgJGZldGNoX2Zyb20pOwogCiAJQHJldmlzaW9ucyA9IHNvcnQgeyRhLT57cmV2aWR9IDw9PiAkYi0+e3JldmlkfX0gQHJldmlzaW9uczsKLQlteSBAcmV2aXNpb25faWRzID0gbWFwICRfLT57cmV2aWR9LCBAcmV2aXNpb25zOworCW15IEByZXZpc2lvbl9pZHMgPSBtYXAgeyAkXy0+e3JldmlkfSB9IEByZXZpc2lvbnM7CiAKIAlyZXR1cm4gbXdfaW1wb3J0X3JldmlkcygkZmV0Y2hfZnJvbSwgXEByZXZpc2lvbl9pZHMsIFwlcGFnZXNfaGFzaCk7CiB9CkBAIC04ODIsNyArODUxLDcgQEAKIAlteSAkbl9hY3R1YWwgPSAwOwogCW15ICRsYXN0X3RpbWVzdGFtcCA9IDA7ICMgUGxhY2Vob2xlciBpbiBjYXNlICRyZXYtPnRpbWVzdGFtcCBpcyB1bmRlZmluZWQKIAotCWZvcmVhY2ggbXkgJHBhZ2VyZXZpZCAoQCRyZXZpc2lvbl9pZHMpIHsKKwlmb3JlYWNoIG15ICRwYWdlcmV2aWQgKEB7JHJldmlzaW9uX2lkc30pIHsKIAkgICAgICAgICMgQ291bnQgcGFnZSBldmVuIGlmIHdlIHNraXAgaXQsIHNpbmNlIHdlIGRpc3BsYXkKIAkJIyAkbi8kdG90YWwgYW5kICR0b3RhbCBpbmNsdWRlcyBza2lwcGVkIHBhZ2VzLgogCQkkbisrOwpAQCAtODk4LDcgKzg2Nyw3IEBACiAJCW15ICRyZXN1bHQgPSAkbWVkaWF3aWtpLT5hcGkoJHF1ZXJ5KTsKIAogCQlpZiAoISRyZXN1bHQpIHsKLQkJCWRpZSAiRmFpbGVkIHRvIHJldHJpZXZlIG1vZGlmaWVkIHBhZ2UgZm9yIHJldmlzaW9uICRwYWdlcmV2aWQiOworCQkJZGllICJGYWlsZWQgdG8gcmV0cmlldmUgbW9kaWZpZWQgcGFnZSBmb3IgcmV2aXNpb24gJHBhZ2VyZXZpZFxuIjsKIAkJfQogCiAJCWlmIChkZWZpbmVkKCRyZXN1bHQtPntxdWVyeX0tPntiYWRyZXZpZHN9LT57JHBhZ2VyZXZpZH0pKSB7CkBAIC05MDcsNyArODc2LDcgQEAKIAkJfQogCiAJCWlmICghZGVmaW5lZCgkcmVzdWx0LT57cXVlcnl9LT57cGFnZXN9KSkgewotCQkJZGllICJJbnZhbGlkIHJldmlzaW9uICRwYWdlcmV2aWQuIjsKKwkJCWRpZSAiSW52YWxpZCByZXZpc2lvbiAke3BhZ2VyZXZpZH0uXG4iOwogCQl9CiAKIAkJbXkgQHJlc3VsdF9wYWdlcyA9IHZhbHVlcygleyRyZXN1bHQtPntxdWVyeX0tPntwYWdlc319KTsKQEAgLTkxNyw4ICs4ODYsOCBAQAogCQlteSAkcGFnZV90aXRsZSA9ICRyZXN1bHRfcGFnZS0+e3RpdGxlfTsKIAogCQlpZiAoIWV4aXN0cygkcGFnZXMtPnskcGFnZV90aXRsZX0pKSB7Ci0JCQlwcmludCBTVERFUlIgIiRuLyIsIHNjYWxhcihAJHJldmlzaW9uX2lkcyksCi0JCQkJIjogU2tpcHBpbmcgcmV2aXNpb24gIyRyZXYtPntyZXZpZH0gb2YgJHBhZ2VfdGl0bGVcbiI7CisJCQlwcmludCB7KlNUREVSUn0gIiR7bn0vIiwgc2NhbGFyKEB7JHJldmlzaW9uX2lkc30pLAorCQkJCSI6IFNraXBwaW5nIHJldmlzaW9uICMkcmV2LT57cmV2aWR9IG9mICR7cGFnZV90aXRsZX1cbiI7CiAJCQluZXh0OwogCQl9CiAKQEAgLTkyNyw3ICs4OTYsNyBAQAogCQlteSAlY29tbWl0OwogCQkkY29tbWl0e2F1dGhvcn0gPSAkcmV2LT57dXNlcn0gfHwgJ0Fub255bW91cyc7CiAJCSRjb21taXR7Y29tbWVudH0gPSAkcmV2LT57Y29tbWVudH0gfHwgRU1QVFlfTUVTU0FHRTsKLQkJJGNvbW1pdHt0aXRsZX0gPSBtZWRpYXdpa2lfc211ZGdlX2ZpbGVuYW1lKCRwYWdlX3RpdGxlKTsKKwkJJGNvbW1pdHt0aXRsZX0gPSBzbXVkZ2VfZmlsZW5hbWUoJHBhZ2VfdGl0bGUpOwogCQkkY29tbWl0e213X3JldmlzaW9ufSA9ICRyZXYtPntyZXZpZH07CiAJCSRjb21taXR7Y29udGVudH0gPSBtZWRpYXdpa2lfc211ZGdlKCRyZXYtPnsnKid9KTsKIApAQCAtOTQzLDE0ICs5MTIsMTQgQEAKIAkJbXkgJW1lZGlhZmlsZTsKIAkJaWYgKCRuYW1lc3BhY2UpIHsKIAkJCW15ICRpZCA9IGdldF9td19uYW1lc3BhY2VfaWQoJG5hbWVzcGFjZSk7Ci0JCQlpZiAoJGlkICYmICRpZCA9PSBnZXRfbXdfbmFtZXNwYWNlX2lkKCJGaWxlIikpIHsKKwkJCWlmICgkaWQgJiYgJGlkID09IGdldF9td19uYW1lc3BhY2VfaWQoJ0ZpbGUnKSkgewogCQkJCSVtZWRpYWZpbGUgPSBnZXRfbXdfbWVkaWFmaWxlX2Zvcl9wYWdlX3JldmlzaW9uKCRmaWxlbmFtZSwgJHJldi0+e3RpbWVzdGFtcH0pOwogCQkJfQogCQl9CiAJCSMgSWYgdGhpcyBpcyBhIHJldmlzaW9uIG9mIHRoZSBtZWRpYSBwYWdlIGZvciBuZXcgdmVyc2lvbgogCQkjIG9mIGEgZmlsZSBkbyBvbmUgY29tbW9uIGNvbW1pdCBmb3IgYm90aCBmaWxlIGFuZCBtZWRpYSBwYWdlLgogCQkjIEVsc2UgZG8gY29tbWl0IG9ubHkgZm9yIHRoYXQgcGFnZS4KLQkJcHJpbnQgU1RERVJSICIkbi8iLCBzY2FsYXIoQCRyZXZpc2lvbl9pZHMpLCAiOiBSZXZpc2lvbiAjJHJldi0+e3JldmlkfSBvZiAkY29tbWl0e3RpdGxlfVxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICIke259LyIsIHNjYWxhcihAeyRyZXZpc2lvbl9pZHN9KSwgIjogUmV2aXNpb24gIyRyZXYtPntyZXZpZH0gb2YgJGNvbW1pdHt0aXRsZX1cbiI7CiAJCWltcG9ydF9maWxlX3JldmlzaW9uKFwlY29tbWl0LCAoJGZldGNoX2Zyb20gPT0gMSksICRuX2FjdHVhbCwgXCVtZWRpYWZpbGUpOwogCX0KIApAQCAtOTU4LDE3ICs5MjcsMTcgQEAKIH0KIAogc3ViIGVycm9yX25vbl9mYXN0X2ZvcndhcmQgewotCW15ICRhZHZpY2UgPSBydW5fZ2l0KCJjb25maWcgLS1ib29sIGFkdmljZS5wdXNoTm9uRmFzdEZvcndhcmQiKTsKKwlteSAkYWR2aWNlID0gcnVuX2dpdCgnY29uZmlnIC0tYm9vbCBhZHZpY2UucHVzaE5vbkZhc3RGb3J3YXJkJyk7CiAJY2hvbXAoJGFkdmljZSk7Ci0JaWYgKCRhZHZpY2UgbmUgImZhbHNlIikgeworCWlmICgkYWR2aWNlIG5lICdmYWxzZScpIHsKIAkJIyBOYXRpdmUgZ2l0LXB1c2ggd291bGQgc2hvdyB0aGlzIGFmdGVyIHRoZSBzdW1tYXJ5LgogCQkjIFdlIGNhbid0IGFzayBpdCB0byBkaXNwbGF5IGl0IGNsZWFubHksIHNvIHByaW50IGl0CiAJCSMgb3Vyc2VsdmVzIGJlZm9yZS4KLQkJcHJpbnQgU1RERVJSICJUbyBwcmV2ZW50IHlvdSBmcm9tIGxvc2luZyBoaXN0b3J5LCBub24tZmFzdC1mb3J3YXJkIHVwZGF0ZXMgd2VyZSByZWplY3RlZFxuIjsKLQkJcHJpbnQgU1RERVJSICJNZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy4gJ2dpdCBwdWxsJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uIFNlZSB0aGVcbiI7Ci0JCXByaW50IFNUREVSUiAiJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgc2VjdGlvbiBvZiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy5cbiI7CisJCXByaW50IHsqU1RERVJSfSAiVG8gcHJldmVudCB5b3UgZnJvbSBsb3NpbmcgaGlzdG9yeSwgbm9uLWZhc3QtZm9yd2FyZCB1cGRhdGVzIHdlcmUgcmVqZWN0ZWRcbiI7CisJCXByaW50IHsqU1RERVJSfSAiTWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuICdnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLiBTZWUgdGhlXG4iOworCQlwcmludCB7KlNUREVSUn0gIidOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIHNlY3Rpb24gb2YgJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuXG4iOwogCX0KLQlwcmludCBTVERPVVQgImVycm9yICRfWzBdIFwibm9uLWZhc3QtZm9yd2FyZFwiXG4iOworCXByaW50IHsqU1RET1VUfSBxcShlcnJvciAkX1swXSAibm9uLWZhc3QtZm9yd2FyZCJcbik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTk3OSwzNCArOTQ4LDM0IEBACiAJbXkgJGZpbGVfZGVsZXRlZCA9IHNoaWZ0OwogCW15ICRzdW1tYXJ5ID0gc2hpZnQ7CiAJbXkgJG5ld3JldmlkOwotCW15ICRwYXRoID0gIkZpbGU6IiAuICRjb21wbGV0ZV9maWxlX25hbWU7CisJbXkgJHBhdGggPSAiRmlsZToke2NvbXBsZXRlX2ZpbGVfbmFtZX0iOwogCW15ICVoYXNoRmlsZXMgPSBnZXRfYWxsb3dlZF9maWxlX2V4dGVuc2lvbnMoKTsKIAlpZiAoIWV4aXN0cygkaGFzaEZpbGVzeyRleHRlbnNpb259KSkgewotCQlwcmludCBTVERFUlIgIiRjb21wbGV0ZV9maWxlX25hbWUgaXMgbm90IGEgcGVybWl0dGVkIGZpbGUgb24gdGhpcyB3aWtpLlxuIjsKLQkJcHJpbnQgU1RERVJSICJDaGVjayB0aGUgY29uZmlndXJhdGlvbiBvZiBmaWxlIHVwbG9hZHMgaW4geW91ciBtZWRpYXdpa2kuXG4iOworCQlwcmludCB7KlNUREVSUn0gIiR7Y29tcGxldGVfZmlsZV9uYW1lfSBpcyBub3QgYSBwZXJtaXR0ZWQgZmlsZSBvbiB0aGlzIHdpa2kuXG4iOworCQlwcmludCB7KlNUREVSUn0gIkNoZWNrIHRoZSBjb25maWd1cmF0aW9uIG9mIGZpbGUgdXBsb2FkcyBpbiB5b3VyIG1lZGlhd2lraS5cbiI7CiAJCXJldHVybiAkbmV3cmV2aWQ7CiAJfQogCSMgRGVsZXRpbmcgYW5kIHVwbG9hZGluZyBhIGZpbGUgcmVxdWlyZXMgYSBwcml2aWxlZGdlZCB1c2VyCiAJaWYgKCRmaWxlX2RlbGV0ZWQpIHsKLQkJbXdfY29ubmVjdF9tYXliZSgpOworCQkkbWVkaWF3aWtpID0gY29ubmVjdF9tYXliZSgkbWVkaWF3aWtpLCAkcmVtb3RlbmFtZSwgJHVybCk7CiAJCW15ICRxdWVyeSA9IHsKIAkJCWFjdGlvbiA9PiAnZGVsZXRlJywKIAkJCXRpdGxlID0+ICRwYXRoLAogCQkJcmVhc29uID0+ICRzdW1tYXJ5CiAJCX07CiAJCWlmICghJG1lZGlhd2lraS0+ZWRpdCgkcXVlcnkpKSB7Ci0JCQlwcmludCBTVERFUlIgIkZhaWxlZCB0byBkZWxldGUgZmlsZSBvbiByZW1vdGUgd2lraVxuIjsKLQkJCXByaW50IFNUREVSUiAiQ2hlY2sgeW91ciBwZXJtaXNzaW9ucyBvbiB0aGUgcmVtb3RlIHNpdGUuIEVycm9yIGNvZGU6XG4iOwotCQkJcHJpbnQgU1RERVJSICRtZWRpYXdpa2ktPntlcnJvcn0tPntjb2RlfSAuICc6JyAuICRtZWRpYXdpa2ktPntlcnJvcn0tPntkZXRhaWxzfTsKKwkJCXByaW50IHsqU1RERVJSfSAiRmFpbGVkIHRvIGRlbGV0ZSBmaWxlIG9uIHJlbW90ZSB3aWtpXG4iOworCQkJcHJpbnQgeypTVERFUlJ9ICJDaGVjayB5b3VyIHBlcm1pc3Npb25zIG9uIHRoZSByZW1vdGUgc2l0ZS4gRXJyb3IgY29kZTpcbiI7CisJCQlwcmludCB7KlNUREVSUn0gJG1lZGlhd2lraS0+e2Vycm9yfS0+e2NvZGV9IC4gJzonIC4gJG1lZGlhd2lraS0+e2Vycm9yfS0+e2RldGFpbHN9OwogCQkJZXhpdCAxOwogCQl9CiAJfSBlbHNlIHsKIAkJIyBEb24ndCBsZXQgcGVybCB0cnkgdG8gaW50ZXJwcmV0IGZpbGUgY29udGVudCBhcyBVVEYtOCA9PiB1c2UgInJhdyIKLQkJbXkgJGNvbnRlbnQgPSBydW5fZ2l0KCJjYXQtZmlsZSBibG9iICRuZXdfc2hhMSIsICJyYXciKTsKLQkJaWYgKCRjb250ZW50IG5lICIiKSB7Ci0JCQltd19jb25uZWN0X21heWJlKCk7CisJCW15ICRjb250ZW50ID0gcnVuX2dpdCgiY2F0LWZpbGUgYmxvYiAke25ld19zaGExfSIsICdyYXcnKTsKKwkJaWYgKCRjb250ZW50IG5lIEVNUFRZKSB7CisJCQkkbWVkaWF3aWtpID0gY29ubmVjdF9tYXliZSgkbWVkaWF3aWtpLCAkcmVtb3RlbmFtZSwgJHVybCk7CiAJCQkkbWVkaWF3aWtpLT57Y29uZmlnfS0+e3VwbG9hZF91cmx9ID0KLQkJCQkiJHVybC9pbmRleC5waHAvU3BlY2lhbDpVcGxvYWQiOworCQkJCSIke3VybH0vaW5kZXgucGhwL1NwZWNpYWw6VXBsb2FkIjsKIAkJCSRtZWRpYXdpa2ktPmVkaXQoewogCQkJCWFjdGlvbiA9PiAndXBsb2FkJywKIAkJCQlmaWxlbmFtZSA9PiAkY29tcGxldGVfZmlsZV9uYW1lLApAQCAtMTAxOCwxMiArOTg3LDEyIEBACiAJCQl9LCB7CiAJCQkJc2tpcF9lbmNvZGluZyA9PiAxCiAJCQl9ICkgfHwgZGllICRtZWRpYXdpa2ktPntlcnJvcn0tPntjb2RlfSAuICc6JwotCQkJCSAuICRtZWRpYXdpa2ktPntlcnJvcn0tPntkZXRhaWxzfTsKKwkJCQkgLiAkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc30gLiAiXG4iOwogCQkJbXkgJGxhc3RfZmlsZV9wYWdlID0gJG1lZGlhd2lraS0+Z2V0X3BhZ2Uoe3RpdGxlID0+ICRwYXRofSk7CiAJCQkkbmV3cmV2aWQgPSAkbGFzdF9maWxlX3BhZ2UtPntyZXZpZH07Ci0JCQlwcmludCBTVERFUlIgIlB1c2hlZCBmaWxlOiAkbmV3X3NoYTEgLSAkY29tcGxldGVfZmlsZV9uYW1lLlxuIjsKKwkJCXByaW50IHsqU1RERVJSfSAiUHVzaGVkIGZpbGU6ICR7bmV3X3NoYTF9IC0gJHtjb21wbGV0ZV9maWxlX25hbWV9LlxuIjsKIAkJfSBlbHNlIHsKLQkJCXByaW50IFNUREVSUiAiRW1wdHkgZmlsZSAkY29tcGxldGVfZmlsZV9uYW1lIG5vdCBwdXNoZWQuXG4iOworCQkJcHJpbnQgeypTVERFUlJ9ICJFbXB0eSBmaWxlICR7Y29tcGxldGVfZmlsZV9uYW1lfSBub3QgcHVzaGVkLlxuIjsKIAkJfQogCX0KIAlyZXR1cm4gJG5ld3JldmlkOwpAQCAtMTA0NSwyNCArMTAxNCwyNCBAQAogCW15ICRuZXdyZXZpZDsKIAogCWlmICgkc3VtbWFyeSBlcSBFTVBUWV9NRVNTQUdFKSB7Ci0JCSRzdW1tYXJ5ID0gJyc7CisJCSRzdW1tYXJ5ID0gRU1QVFk7CiAJfQogCiAJbXkgJG5ld19zaGExID0gJGRpZmZfaW5mb19zcGxpdFszXTsKIAlteSAkb2xkX3NoYTEgPSAkZGlmZl9pbmZvX3NwbGl0WzJdOwogCW15ICRwYWdlX2NyZWF0ZWQgPSAoJG9sZF9zaGExIGVxIE5VTExfU0hBMSk7CiAJbXkgJHBhZ2VfZGVsZXRlZCA9ICgkbmV3X3NoYTEgZXEgTlVMTF9TSEExKTsKLQkkY29tcGxldGVfZmlsZV9uYW1lID0gbWVkaWF3aWtpX2NsZWFuX2ZpbGVuYW1lKCRjb21wbGV0ZV9maWxlX25hbWUpOworCSRjb21wbGV0ZV9maWxlX25hbWUgPSBjbGVhbl9maWxlbmFtZSgkY29tcGxldGVfZmlsZV9uYW1lKTsKIAogCW15ICgkdGl0bGUsICRleHRlbnNpb24pID0gJGNvbXBsZXRlX2ZpbGVfbmFtZSA9fiAvXiguKilcLihbXlwuXSopJC87CiAJaWYgKCFkZWZpbmVkKCRleHRlbnNpb24pKSB7Ci0JCSRleHRlbnNpb24gPSAiIjsKKwkJJGV4dGVuc2lvbiA9IEVNUFRZOwogCX0KLQlpZiAoJGV4dGVuc2lvbiBlcSAibXciKSB7CisJaWYgKCRleHRlbnNpb24gZXEgJ213JykgewogCQlteSAkbnMgPSBnZXRfbXdfbmFtZXNwYWNlX2lkX2Zvcl9wYWdlKCRjb21wbGV0ZV9maWxlX25hbWUpOwotCQlpZiAoJG5zICYmICRucyA9PSBnZXRfbXdfbmFtZXNwYWNlX2lkKCJGaWxlIikgJiYgKCEkZXhwb3J0X21lZGlhKSkgewotCQkJcHJpbnQgU1RERVJSICJJZ25vcmluZyBtZWRpYSBmaWxlIHJlbGF0ZWQgcGFnZTogJGNvbXBsZXRlX2ZpbGVfbmFtZVxuIjsKLQkJCXJldHVybiAoJG9sZHJldmlkLCAib2siKTsKKwkJaWYgKCRucyAmJiAkbnMgPT0gZ2V0X213X25hbWVzcGFjZV9pZCgnRmlsZScpICYmICghJGV4cG9ydF9tZWRpYSkpIHsKKwkJCXByaW50IHsqU1RERVJSfSAiSWdub3JpbmcgbWVkaWEgZmlsZSByZWxhdGVkIHBhZ2U6ICR7Y29tcGxldGVfZmlsZV9uYW1lfVxuIjsKKwkJCXJldHVybiAoJG9sZHJldmlkLCAnb2snKTsKIAkJfQogCQlteSAkZmlsZV9jb250ZW50OwogCQlpZiAoJHBhZ2VfZGVsZXRlZCkgewpAQCAtMTA3MiwxMCArMTA0MSwxMCBAQAogCQkJIyB3aXRoIHRoaXMgY29udGVudCBpbnN0ZWFkOgogCQkJJGZpbGVfY29udGVudCA9IERFTEVURURfQ09OVEVOVDsKIAkJfSBlbHNlIHsKLQkJCSRmaWxlX2NvbnRlbnQgPSBydW5fZ2l0KCJjYXQtZmlsZSBibG9iICRuZXdfc2hhMSIpOworCQkJJGZpbGVfY29udGVudCA9IHJ1bl9naXQoImNhdC1maWxlIGJsb2IgJHtuZXdfc2hhMX0iKTsKIAkJfQogCi0JCW13X2Nvbm5lY3RfbWF5YmUoKTsKKwkJJG1lZGlhd2lraSA9IGNvbm5lY3RfbWF5YmUoJG1lZGlhd2lraSwgJHJlbW90ZW5hbWUsICR1cmwpOwogCiAJCW15ICRyZXN1bHQgPSAkbWVkaWF3aWtpLT5lZGl0KCB7CiAJCQlhY3Rpb24gPT4gJ2VkaXQnLApAQCAtMTA4OSw0OSArMTA1OCw0OSBAQAogCQlpZiAoISRyZXN1bHQpIHsKIAkJCWlmICgkbWVkaWF3aWtpLT57ZXJyb3J9LT57Y29kZX0gPT0gMykgewogCQkJCSMgZWRpdCBjb25mbGljdHMsIGNvbnNpZGVyZWQgYXMgbm9uLWZhc3QtZm9yd2FyZAotCQkJCXByaW50IFNUREVSUiAnV2FybmluZzogRXJyb3IgJyAuCisJCQkJcHJpbnQgeypTVERFUlJ9ICdXYXJuaW5nOiBFcnJvciAnIC4KIAkJCQkgICAgJG1lZGlhd2lraS0+e2Vycm9yfS0+e2NvZGV9IC4KLQkJCQkgICAgJyBmcm9tIG1lZGl3aWtpOiAnIC4gJG1lZGlhd2lraS0+e2Vycm9yfS0+e2RldGFpbHN9IC4KKwkJCQkgICAgJyBmcm9tIG1lZGlhd2lraTogJyAuICRtZWRpYXdpa2ktPntlcnJvcn0tPntkZXRhaWxzfSAuCiAJCQkJICAgICIuXG4iOwotCQkJCXJldHVybiAoJG9sZHJldmlkLCAibm9uLWZhc3QtZm9yd2FyZCIpOworCQkJCXJldHVybiAoJG9sZHJldmlkLCAnbm9uLWZhc3QtZm9yd2FyZCcpOwogCQkJfSBlbHNlIHsKIAkJCQkjIE90aGVyIGVycm9ycy4gU2hvdWxkbid0IGhhcHBlbiA9PiBqdXN0IGRpZSgpCiAJCQkJZGllICdGYXRhbDogRXJyb3IgJyAuCiAJCQkJICAgICRtZWRpYXdpa2ktPntlcnJvcn0tPntjb2RlfSAuCi0JCQkJICAgICcgZnJvbSBtZWRpd2lraTogJyAuICRtZWRpYXdpa2ktPntlcnJvcn0tPntkZXRhaWxzfTsKKwkJCQkgICAgJyBmcm9tIG1lZGlhd2lraTogJyAuICRtZWRpYXdpa2ktPntlcnJvcn0tPntkZXRhaWxzfSAuICJcbiI7CiAJCQl9CiAJCX0KIAkJJG5ld3JldmlkID0gJHJlc3VsdC0+e2VkaXR9LT57bmV3cmV2aWR9OwotCQlwcmludCBTVERFUlIgIlB1c2hlZCBmaWxlOiAkbmV3X3NoYTEgLSAkdGl0bGVcbiI7CisJCXByaW50IHsqU1RERVJSfSAiUHVzaGVkIGZpbGU6ICR7bmV3X3NoYTF9IC0gJHt0aXRsZX1cbiI7CiAJfSBlbHNpZiAoJGV4cG9ydF9tZWRpYSkgewogCQkkbmV3cmV2aWQgPSBtd191cGxvYWRfZmlsZSgkY29tcGxldGVfZmlsZV9uYW1lLCAkbmV3X3NoYTEsCiAJCQkJCSAgICRleHRlbnNpb24sICRwYWdlX2RlbGV0ZWQsCiAJCQkJCSAgICRzdW1tYXJ5KTsKIAl9IGVsc2UgewotCQlwcmludCBTVERFUlIgIklnbm9yaW5nIG1lZGlhIGZpbGUgJHRpdGxlXG4iOworCQlwcmludCB7KlNUREVSUn0gIklnbm9yaW5nIG1lZGlhIGZpbGUgJHt0aXRsZX1cbiI7CiAJfQogCSRuZXdyZXZpZCA9ICgkbmV3cmV2aWQgb3IgJG9sZHJldmlkKTsKLQlyZXR1cm4gKCRuZXdyZXZpZCwgIm9rIik7CisJcmV0dXJuICgkbmV3cmV2aWQsICdvaycpOwogfQogCiBzdWIgbXdfcHVzaCB7CiAJIyBtdWx0aXBsZSBwdXNoIHN0YXRlbWVudHMgY2FuIGZvbGxvdyBlYWNoIG90aGVyCi0JbXkgQHJlZnNzcGVjcyA9IChzaGlmdCwgZ2V0X21vcmVfcmVmcygicHVzaCIpKTsKKwlteSBAcmVmc3NwZWNzID0gKHNoaWZ0LCBnZXRfbW9yZV9yZWZzKCdwdXNoJykpOwogCW15ICRwdXNoZWQ7CiAJZm9yIG15ICRyZWZzcGVjIChAcmVmc3NwZWNzKSB7CiAJCW15ICgkZm9yY2UsICRsb2NhbCwgJHJlbW90ZSkgPSAkcmVmc3BlYyA9fiAvXihcKyk/KFteOl0qKTooW146XSopJC8KLQkJICAgIG9yIGRpZSgiSW52YWxpZCByZWZzcGVjIGZvciBwdXNoLiBFeHBlY3RlZCA8c3JjPjo8ZHN0PiBvciArPHNyYz46PGRzdD4iKTsKKwkJICAgIG9yIGRpZSgiSW52YWxpZCByZWZzcGVjIGZvciBwdXNoLiBFeHBlY3RlZCA8c3JjPjo8ZHN0PiBvciArPHNyYz46PGRzdD5cbiIpOwogCQlpZiAoJGZvcmNlKSB7Ci0JCQlwcmludCBTVERFUlIgIldhcm5pbmc6IGZvcmNlZCBwdXNoIG5vdCBhbGxvd2VkIG9uIGEgTWVkaWFXaWtpLlxuIjsKKwkJCXByaW50IHsqU1RERVJSfSAiV2FybmluZzogZm9yY2VkIHB1c2ggbm90IGFsbG93ZWQgb24gYSBNZWRpYVdpa2kuXG4iOwogCQl9Ci0JCWlmICgkbG9jYWwgZXEgIiIpIHsKLQkJCXByaW50IFNUREVSUiAiQ2Fubm90IGRlbGV0ZSByZW1vdGUgYnJhbmNoIG9uIGEgTWVkaWFXaWtpXG4iOwotCQkJcHJpbnQgU1RET1VUICJlcnJvciAkcmVtb3RlIGNhbm5vdCBkZWxldGVcbiI7CisJCWlmICgkbG9jYWwgZXEgRU1QVFkpIHsKKwkJCXByaW50IHsqU1RERVJSfSAiQ2Fubm90IGRlbGV0ZSByZW1vdGUgYnJhbmNoIG9uIGEgTWVkaWFXaWtpXG4iOworCQkJcHJpbnQgeypTVERPVVR9ICJlcnJvciAke3JlbW90ZX0gY2Fubm90IGRlbGV0ZVxuIjsKIAkJCW5leHQ7CiAJCX0KLQkJaWYgKCRyZW1vdGUgbmUgInJlZnMvaGVhZHMvbWFzdGVyIikgewotCQkJcHJpbnQgU1RERVJSICJPbmx5IHB1c2ggdG8gdGhlIGJyYW5jaCAnbWFzdGVyJyBpcyBzdXBwb3J0ZWQgb24gYSBNZWRpYVdpa2lcbiI7Ci0JCQlwcmludCBTVERPVVQgImVycm9yICRyZW1vdGUgb25seSBtYXN0ZXIgYWxsb3dlZFxuIjsKKwkJaWYgKCRyZW1vdGUgbmUgJ3JlZnMvaGVhZHMvbWFzdGVyJykgeworCQkJcHJpbnQgeypTVERFUlJ9ICJPbmx5IHB1c2ggdG8gdGhlIGJyYW5jaCAnbWFzdGVyJyBpcyBzdXBwb3J0ZWQgb24gYSBNZWRpYVdpa2lcbiI7CisJCQlwcmludCB7KlNURE9VVH0gImVycm9yICR7cmVtb3RlfSBvbmx5IG1hc3RlciBhbGxvd2VkXG4iOwogCQkJbmV4dDsKIAkJfQogCQlpZiAobXdfcHVzaF9yZXZpc2lvbigkbG9jYWwsICRyZW1vdGUpKSB7CkBAIC0xMTQwLDMwICsxMTA5LDMyIEBACiAJfQogCiAJIyBOb3RpZnkgR2l0IHRoYXQgdGhlIHB1c2ggaXMgZG9uZQotCXByaW50IFNURE9VVCAiXG4iOworCXByaW50IHsqU1RET1VUfSAiXG4iOwogCiAJaWYgKCRwdXNoZWQgJiYgJGR1bWJfcHVzaCkgewotCQlwcmludCBTVERFUlIgIkp1c3QgcHVzaGVkIHNvbWUgcmV2aXNpb25zIHRvIE1lZGlhV2lraS5cbiI7Ci0JCXByaW50IFNUREVSUiAiVGhlIHB1c2hlZCByZXZpc2lvbnMgbm93IGhhdmUgdG8gYmUgcmUtaW1wb3J0ZWQsIGFuZCB5b3VyIGN1cnJlbnQgYnJhbmNoXG4iOwotCQlwcmludCBTVERFUlIgIm5lZWRzIHRvIGJlIHVwZGF0ZWQgd2l0aCB0aGVzZSByZS1pbXBvcnRlZCBjb21taXRzLiBZb3UgY2FuIGRvIHRoaXMgd2l0aFxuIjsKLQkJcHJpbnQgU1RERVJSICJcbiI7Ci0JCXByaW50IFNUREVSUiAiICBnaXQgcHVsbCAtLXJlYmFzZVxuIjsKLQkJcHJpbnQgU1RERVJSICJcbiI7CisJCXByaW50IHsqU1RERVJSfSAiSnVzdCBwdXNoZWQgc29tZSByZXZpc2lvbnMgdG8gTWVkaWFXaWtpLlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJUaGUgcHVzaGVkIHJldmlzaW9ucyBub3cgaGF2ZSB0byBiZSByZS1pbXBvcnRlZCwgYW5kIHlvdXIgY3VycmVudCBicmFuY2hcbiI7CisJCXByaW50IHsqU1RERVJSfSAibmVlZHMgdG8gYmUgdXBkYXRlZCB3aXRoIHRoZXNlIHJlLWltcG9ydGVkIGNvbW1pdHMuIFlvdSBjYW4gZG8gdGhpcyB3aXRoXG4iOworCQlwcmludCB7KlNUREVSUn0gIlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICIgIGdpdCBwdWxsIC0tcmViYXNlXG4iOworCQlwcmludCB7KlNUREVSUn0gIlxuIjsKIAl9CisJcmV0dXJuOwogfQogCiBzdWIgbXdfcHVzaF9yZXZpc2lvbiB7CiAJbXkgJGxvY2FsID0gc2hpZnQ7CiAJbXkgJHJlbW90ZSA9IHNoaWZ0OyAjIGFjdHVhbGx5LCB0aGlzIGhhcyB0byBiZSAicmVmcy9oZWFkcy9tYXN0ZXIiIGF0IHRoaXMgcG9pbnQuCiAJbXkgJGxhc3RfbG9jYWxfcmV2aWQgPSBnZXRfbGFzdF9sb2NhbF9yZXZpc2lvbigpOwotCXByaW50IFNUREVSUiAiLlxuIjsgIyBGaW5pc2ggc2VudGVuY2Ugc3RhcnRlZCBieSBnZXRfbGFzdF9sb2NhbF9yZXZpc2lvbigpCisJcHJpbnQgeypTVERFUlJ9ICIuXG4iOyAjIEZpbmlzaCBzZW50ZW5jZSBzdGFydGVkIGJ5IGdldF9sYXN0X2xvY2FsX3JldmlzaW9uKCkKIAlteSAkbGFzdF9yZW1vdGVfcmV2aWQgPSBnZXRfbGFzdF9yZW1vdGVfcmV2aXNpb24oKTsKIAlteSAkbXdfcmV2aXNpb24gPSAkbGFzdF9yZW1vdGVfcmV2aWQ7CiAKIAkjIEdldCBzaGExIG9mIGNvbW1pdCBwb2ludGVkIGJ5IGxvY2FsIEhFQUQKLQlteSAkSEVBRF9zaGExID0gcnVuX2dpdCgicmV2LXBhcnNlICRsb2NhbCAyPi9kZXYvbnVsbCIpOyBjaG9tcCgkSEVBRF9zaGExKTsKKwlteSAkSEVBRF9zaGExID0gcnVuX2dpdCgicmV2LXBhcnNlICR7bG9jYWx9IDI+L2Rldi9udWxsIik7CisJY2hvbXAoJEhFQURfc2hhMSk7CiAJIyBHZXQgc2hhMSBvZiBjb21taXQgcG9pbnRlZCBieSByZW1vdGVzLyRyZW1vdGVuYW1lL21hc3RlcgotCW15ICRyZW1vdGVvcmlnaW5fc2hhMSA9IHJ1bl9naXQoInJldi1wYXJzZSByZWZzL3JlbW90ZXMvJHJlbW90ZW5hbWUvbWFzdGVyIDI+L2Rldi9udWxsIik7CisJbXkgJHJlbW90ZW9yaWdpbl9zaGExID0gcnVuX2dpdCgicmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy8ke3JlbW90ZW5hbWV9L21hc3RlciAyPi9kZXYvbnVsbCIpOwogCWNob21wKCRyZW1vdGVvcmlnaW5fc2hhMSk7CiAKIAlpZiAoJGxhc3RfbG9jYWxfcmV2aWQgPiAwICYmCkBAIC0xMTgyLDIyICsxMTUzLDIyIEBACiAJaWYgKCRsYXN0X2xvY2FsX3JldmlkID4gMCkgewogCQlteSAkcGFyc2VkX3NoYTEgPSAkcmVtb3Rlb3JpZ2luX3NoYTE7CiAJCSMgRmluZCBhIHBhdGggZnJvbSBsYXN0IE1lZGlhV2lraSBjb21taXQgdG8gcHVzaGVkIGNvbW1pdAotCQlwcmludCBTVERFUlIgIkNvbXB1dGluZyBwYXRoIGZyb20gbG9jYWwgdG8gcmVtb3RlIC4uLlxuIjsKLQkJbXkgQGxvY2FsX2FuY2VzdHJ5ID0gc3BsaXQoL1xuLywgcnVuX2dpdCgicmV2LWxpc3QgLS1ib3VuZGFyeSAtLXBhcmVudHMgJGxvY2FsIF4kcGFyc2VkX3NoYTEiKSk7CisJCXByaW50IHsqU1RERVJSfSAiQ29tcHV0aW5nIHBhdGggZnJvbSBsb2NhbCB0byByZW1vdGUgLi4uXG4iOworCQlteSBAbG9jYWxfYW5jZXN0cnkgPSBzcGxpdCgvXG4vLCBydW5fZ2l0KCJyZXYtbGlzdCAtLWJvdW5kYXJ5IC0tcGFyZW50cyAke2xvY2FsfSBeJHtwYXJzZWRfc2hhMX0iKSk7CiAJCW15ICVsb2NhbF9hbmNlc3RyeTsKIAkJZm9yZWFjaCBteSAkbGluZSAoQGxvY2FsX2FuY2VzdHJ5KSB7Ci0JCQlpZiAobXkgKCRjaGlsZCwgJHBhcmVudHMpID0gJGxpbmUgPX4gbS9eLT8oW2EtZjAtOV0rKSAoW2EtZjAtOSBdKykvKSB7Ci0JCQkJZm9yZWFjaCBteSAkcGFyZW50IChzcGxpdCgnICcsICRwYXJlbnRzKSkgeworCQkJaWYgKG15ICgkY2hpbGQsICRwYXJlbnRzKSA9ICRsaW5lID1+IC9eLT8oW2EtZjAtOV0rKSAoW2EtZjAtOSBdKykvKSB7CisJCQkJZm9yZWFjaCBteSAkcGFyZW50IChzcGxpdCgvIC8sICRwYXJlbnRzKSkgewogCQkJCQkkbG9jYWxfYW5jZXN0cnl7JHBhcmVudH0gPSAkY2hpbGQ7CiAJCQkJfQotCQkJfSBlbHNpZiAoISRsaW5lID1+IG0vXihbYS1mMC05XSspLykgewotCQkJCWRpZSAiVW5leHBlY3RlZCBvdXRwdXQgZnJvbSBnaXQgcmV2LWxpc3Q6ICRsaW5lIjsKKwkJCX0gZWxzaWYgKCEkbGluZSA9fiAvXihbYS1mMC05XSspLykgeworCQkJCWRpZSAiVW5leHBlY3RlZCBvdXRwdXQgZnJvbSBnaXQgcmV2LWxpc3Q6ICR7bGluZX1cbiI7CiAJCQl9CiAJCX0KIAkJd2hpbGUgKCRwYXJzZWRfc2hhMSBuZSAkSEVBRF9zaGExKSB7CiAJCQlteSAkY2hpbGQgPSAkbG9jYWxfYW5jZXN0cnl7JHBhcnNlZF9zaGExfTsKIAkJCWlmICghJGNoaWxkKSB7Ci0JCQkJcHJpbnRmIFNUREVSUiAiQ2Fubm90IGZpbmQgYSBwYXRoIGluIGhpc3RvcnkgZnJvbSByZW1vdGUgY29tbWl0IHRvIGxhc3QgY29tbWl0XG4iOworCQkJCXByaW50IHsqU1RERVJSfSAiQ2Fubm90IGZpbmQgYSBwYXRoIGluIGhpc3RvcnkgZnJvbSByZW1vdGUgY29tbWl0IHRvIGxhc3QgY29tbWl0XG4iOwogCQkJCXJldHVybiBlcnJvcl9ub25fZmFzdF9mb3J3YXJkKCRyZW1vdGUpOwogCQkJfQogCQkJcHVzaChAY29tbWl0X3BhaXJzLCBbJHBhcnNlZF9zaGExLCAkY2hpbGRdKTsKQEAgLTEyMDYsMTIgKzExNzcsMTIgQEAKIAl9IGVsc2UgewogCQkjIE5vIHJlbW90ZSBtZWRpYXdpa2kgcmV2aXNpb24uIEV4cG9ydCB0aGUgd2hvbGUKIAkJIyBoaXN0b3J5IChsaW5lYXJpemVkIHdpdGggLS1maXJzdC1wYXJlbnQpCi0JCXByaW50IFNUREVSUiAiV2FybmluZzogbm8gY29tbW9uIGFuY2VzdG9yLCBwdXNoaW5nIGNvbXBsZXRlIGhpc3RvcnlcbiI7Ci0JCW15ICRoaXN0b3J5ID0gcnVuX2dpdCgicmV2LWxpc3QgLS1maXJzdC1wYXJlbnQgLS1jaGlsZHJlbiAkbG9jYWwiKTsKLQkJbXkgQGhpc3RvcnkgPSBzcGxpdCgnXG4nLCAkaGlzdG9yeSk7CisJCXByaW50IHsqU1RERVJSfSAiV2FybmluZzogbm8gY29tbW9uIGFuY2VzdG9yLCBwdXNoaW5nIGNvbXBsZXRlIGhpc3RvcnlcbiI7CisJCW15ICRoaXN0b3J5ID0gcnVuX2dpdCgicmV2LWxpc3QgLS1maXJzdC1wYXJlbnQgLS1jaGlsZHJlbiAke2xvY2FsfSIpOworCQlteSBAaGlzdG9yeSA9IHNwbGl0KC9cbi8sICRoaXN0b3J5KTsKIAkJQGhpc3RvcnkgPSBAaGlzdG9yeVsxLi4kI2hpc3RvcnldOwogCQlmb3JlYWNoIG15ICRsaW5lIChyZXZlcnNlIEBoaXN0b3J5KSB7Ci0JCQlteSBAY29tbWl0X2luZm9fc3BsaXQgPSBzcGxpdCgvIHxcbi8sICRsaW5lKTsKKwkJCW15IEBjb21taXRfaW5mb19zcGxpdCA9IHNwbGl0KC9bIFxuXS8sICRsaW5lKTsKIAkJCXB1c2goQGNvbW1pdF9wYWlycywgXEBjb21taXRfaW5mb19zcGxpdCk7CiAJCX0KIAl9CkBAIC0xMjE5LDEyICsxMTkwLDEyIEBACiAJZm9yZWFjaCBteSAkY29tbWl0X2luZm9fc3BsaXQgKEBjb21taXRfcGFpcnMpIHsKIAkJbXkgJHNoYTFfY2hpbGQgPSBAeyRjb21taXRfaW5mb19zcGxpdH1bMF07CiAJCW15ICRzaGExX2NvbW1pdCA9IEB7JGNvbW1pdF9pbmZvX3NwbGl0fVsxXTsKLQkJbXkgJGRpZmZfaW5mb3MgPSBydW5fZ2l0KCJkaWZmLXRyZWUgLXIgLS1yYXcgLXogJHNoYTFfY2hpbGQgJHNoYTFfY29tbWl0Iik7CisJCW15ICRkaWZmX2luZm9zID0gcnVuX2dpdCgiZGlmZi10cmVlIC1yIC0tcmF3IC16ICR7c2hhMV9jaGlsZH0gJHtzaGExX2NvbW1pdH0iKTsKIAkJIyBUT0RPOiB3ZSBjb3VsZCBkZXRlY3QgcmVuYW1lLCBhbmQgZW5jb2RlIHRoZW0gd2l0aCBhICNyZWRpcmVjdCBvbiB0aGUgd2lraS4KIAkJIyBUT0RPOiBmb3Igbm93LCBpdCdzIGp1c3QgYSBkZWxldGUrYWRkCiAJCW15IEBkaWZmX2luZm9fbGlzdCA9IHNwbGl0KC9cMC8sICRkaWZmX2luZm9zKTsKIAkJIyBLZWVwIHRoZSBzdWJqZWN0IGxpbmUgb2YgdGhlIGNvbW1pdCBtZXNzYWdlIGFzIG1lZGlhd2lraSBjb21tZW50IGZvciB0aGUgcmV2aXNpb24KLQkJbXkgJGNvbW1pdF9tc2cgPSBydW5fZ2l0KCJsb2cgLS1uby13YWxrIC0tZm9ybWF0PVwiJXNcIiAkc2hhMV9jb21taXQiKTsKKwkJbXkgJGNvbW1pdF9tc2cgPSBydW5fZ2l0KHFxKGxvZyAtLW5vLXdhbGsgLS1mb3JtYXQ9IiVzIiAke3NoYTFfY29tbWl0fSkpOwogCQljaG9tcCgkY29tbWl0X21zZyk7CiAJCSMgUHVzaCBldmVyeSBibG9iCiAJCXdoaWxlIChAZGlmZl9pbmZvX2xpc3QpIHsKQEAgLTEyMzYsNyArMTIwNyw3IEBACiAJCQlteSAkaW5mbyA9IHNoaWZ0KEBkaWZmX2luZm9fbGlzdCk7CiAJCQlteSAkZmlsZSA9IHNoaWZ0KEBkaWZmX2luZm9fbGlzdCk7CiAJCQkoJG13X3JldmlzaW9uLCAkc3RhdHVzKSA9IG13X3B1c2hfZmlsZSgkaW5mbywgJGZpbGUsICRjb21taXRfbXNnLCAkbXdfcmV2aXNpb24pOwotCQkJaWYgKCRzdGF0dXMgZXEgIm5vbi1mYXN0LWZvcndhcmQiKSB7CisJCQlpZiAoJHN0YXR1cyBlcSAnbm9uLWZhc3QtZm9yd2FyZCcpIHsKIAkJCQkjIHdlIG1heSBhbHJlYWR5IGhhdmUgc2VudCBwYXJ0IG9mIHRoZQogCQkJCSMgY29tbWl0IHRvIE1lZGlhV2lraSwgYnV0IGl0J3MgdG9vCiAJCQkJIyBsYXRlIHRvIGNhbmNlbCBpdC4gU3RvcCB0aGUgcHVzaCBpbgpAQCAtMTI0NCwyMiArMTIxNSwyMiBAQAogCQkJCSMgYWNjdXJhdGUgZXJyb3IgbWVzc2FnZS4KIAkJCQlyZXR1cm4gZXJyb3Jfbm9uX2Zhc3RfZm9yd2FyZCgkcmVtb3RlKTsKIAkJCX0KLQkJCWlmICgkc3RhdHVzIG5lICJvayIpIHsKLQkJCQlkaWUoIlVua25vd24gZXJyb3IgZnJvbSBtd19wdXNoX2ZpbGUoKSIpOworCQkJaWYgKCRzdGF0dXMgbmUgJ29rJykgeworCQkJCWRpZSgiVW5rbm93biBlcnJvciBmcm9tIG13X3B1c2hfZmlsZSgpXG4iKTsKIAkJCX0KIAkJfQotCQl1bmxlc3MgKCRkdW1iX3B1c2gpIHsKLQkJCXJ1bl9naXQoIm5vdGVzIC0tcmVmPSRyZW1vdGVuYW1lL21lZGlhd2lraSBhZGQgLWYgLW0gXCJtZWRpYXdpa2lfcmV2aXNpb246ICRtd19yZXZpc2lvblwiICRzaGExX2NvbW1pdCIpOwotCQkJcnVuX2dpdCgidXBkYXRlLXJlZiAtbSBcIkdpdC1NZWRpYVdpa2kgcHVzaFwiIHJlZnMvbWVkaWF3aWtpLyRyZW1vdGVuYW1lL21hc3RlciAkc2hhMV9jb21taXQgJHNoYTFfY2hpbGQiKTsKKwkJaWYgKCEkZHVtYl9wdXNoKSB7CisJCQlydW5fZ2l0KHFxKG5vdGVzIC0tcmVmPSR7cmVtb3RlbmFtZX0vbWVkaWF3aWtpIGFkZCAtZiAtbSAibWVkaWF3aWtpX3JldmlzaW9uOiAke213X3JldmlzaW9ufSIgJHtzaGExX2NvbW1pdH0pKTsKKwkJCXJ1bl9naXQocXEodXBkYXRlLXJlZiAtbSAiR2l0LU1lZGlhV2lraSBwdXNoIiByZWZzL21lZGlhd2lraS8ke3JlbW90ZW5hbWV9L21hc3RlciAke3NoYTFfY29tbWl0fSAke3NoYTFfY2hpbGR9KSk7CiAJCX0KIAl9CiAKLQlwcmludCBTVERPVVQgIm9rICRyZW1vdGVcbiI7CisJcHJpbnQgeypTVERPVVR9ICJvayAke3JlbW90ZX1cbiI7CiAJcmV0dXJuIDE7CiB9CiAKIHN1YiBnZXRfYWxsb3dlZF9maWxlX2V4dGVuc2lvbnMgewotCW13X2Nvbm5lY3RfbWF5YmUoKTsKKwkkbWVkaWF3aWtpID0gY29ubmVjdF9tYXliZSgkbWVkaWF3aWtpLCAkcmVtb3RlbmFtZSwgJHVybCk7CiAKIAlteSAkcXVlcnkgPSB7CiAJCWFjdGlvbiA9PiAncXVlcnknLApAQCAtMTI2Nyw4ICsxMjM4LDggQEAKIAkJc2lwcm9wID0+ICdmaWxlZXh0ZW5zaW9ucycKIAkJfTsKIAlteSAkcmVzdWx0ID0gJG1lZGlhd2lraS0+YXBpKCRxdWVyeSk7Ci0JbXkgQGZpbGVfZXh0ZW5zaW9ucz0gbWFwICRfLT57ZXh0fSxAeyRyZXN1bHQtPntxdWVyeX0tPntmaWxlZXh0ZW5zaW9uc319OwotCW15ICVoYXNoRmlsZSA9IG1hcCB7JF8gPT4gMX1AZmlsZV9leHRlbnNpb25zOworCW15IEBmaWxlX2V4dGVuc2lvbnMgPSBtYXAgeyAkXy0+e2V4dH19IEB7JHJlc3VsdC0+e3F1ZXJ5fS0+e2ZpbGVleHRlbnNpb25zfX07CisJbXkgJWhhc2hGaWxlID0gbWFwIHsgJF8gPT4gMSB9IEBmaWxlX2V4dGVuc2lvbnM7CiAKIAlyZXR1cm4gJWhhc2hGaWxlOwogfQpAQCAtMTI4MywxNSArMTI1NCwxNSBAQAogIyBSZXR1cm4gTWVkaWFXaWtpIGlkIGZvciBhIGNhbm9uaWNhbCBuYW1lc3BhY2UgbmFtZS4KICMgRXguOiAiRmlsZSIsICJQcm9qZWN0Ii4KIHN1YiBnZXRfbXdfbmFtZXNwYWNlX2lkIHsKLQltd19jb25uZWN0X21heWJlKCk7CisJJG1lZGlhd2lraSA9IGNvbm5lY3RfbWF5YmUoJG1lZGlhd2lraSwgJHJlbW90ZW5hbWUsICR1cmwpOwogCW15ICRuYW1lID0gc2hpZnQ7CiAKIAlpZiAoIWV4aXN0cyAkbmFtZXNwYWNlX2lkeyRuYW1lfSkgewogCQkjIExvb2sgYXQgY29uZmlndXJhdGlvbiBmaWxlLCBpZiB0aGUgcmVjb3JkIGZvciB0aGF0IG5hbWVzcGFjZSBpcwogCQkjIGFscmVhZHkgY2FjaGVkLiBOYW1lc3BhY2VzIGFyZSBzdG9yZWQgaW4gZm9ybToKIAkJIyAiTmFtZV9vZl9uYW1lc3BhY2U6SWRfbmFtZXNwYWNlIiwgZXguOiAiRmlsZTo2Ii4KLQkJbXkgQHRlbXAgPSBzcGxpdCgvW1xuXS8sIHJ1bl9naXQoImNvbmZpZyAtLWdldC1hbGwgcmVtb3RlLiIKLQkJCQkJCS4gJHJlbW90ZW5hbWUgLiIubmFtZXNwYWNlQ2FjaGUiKSk7CisJCW15IEB0ZW1wID0gc3BsaXQoL1xuLywKKwkJCQkgcnVuX2dpdCgiY29uZmlnIC0tZ2V0LWFsbCByZW1vdGUuJHtyZW1vdGVuYW1lfS5uYW1lc3BhY2VDYWNoZSIpKTsKIAkJY2hvbXAoQHRlbXApOwogCQlmb3JlYWNoIG15ICRucyAoQHRlbXApIHsKIAkJCW15ICgkbiwgJGlkKSA9IHNwbGl0KC86LywgJG5zKTsKQEAgLTEzMDUsNyArMTI3Niw3IEBACiAJfQogCiAJaWYgKCFleGlzdHMgJG5hbWVzcGFjZV9pZHskbmFtZX0pIHsKLQkJcHJpbnQgU1RERVJSICJOYW1lc3BhY2UgJG5hbWUgbm90IGZvdW5kIGluIGNhY2hlLCBxdWVyeWluZyB0aGUgd2lraSAuLi5cbiI7CisJCXByaW50IHsqU1RERVJSfSAiTmFtZXNwYWNlICR7bmFtZX0gbm90IGZvdW5kIGluIGNhY2hlLCBxdWVyeWluZyB0aGUgd2lraSAuLi5cbiI7CiAJCSMgTlMgbm90IGZvdW5kID0+IGdldCBuYW1lc3BhY2UgaWQgZnJvbSBNVyBhbmQgc3RvcmUgaXQgaW4KIAkgICAgICAgICMgY29uZmlndXJhdGlvbiBmaWxlLgogCSAgICAgICAgbXkgJHF1ZXJ5ID0gewpAQCAtMTMyOSw4ICsxMzAwLDggQEAKIAlteSAkbnMgPSAkbmFtZXNwYWNlX2lkeyRuYW1lfTsKIAlteSAkaWQ7CiAKLQl1bmxlc3MgKGRlZmluZWQgJG5zKSB7Ci0JCXByaW50IFNUREVSUiAiTm8gc3VjaCBuYW1lc3BhY2UgJG5hbWUgb24gTWVkaWFXaWtpLlxuIjsKKwlpZiAoIWRlZmluZWQgJG5zKSB7CisJCXByaW50IHsqU1RERVJSfSAiTm8gc3VjaCBuYW1lc3BhY2UgJHtuYW1lfSBvbiBNZWRpYVdpa2kuXG4iOwogCQkkbnMgPSB7aXNfbmFtZXNwYWNlID0+IDB9OwogCQkkbmFtZXNwYWNlX2lkeyRuYW1lfSA9ICRuczsKIAl9CkBAIC0xMzQ0LDE1ICsxMzE1LDE1IEBACiAKIAkjIFN0b3JlIGV4cGxpY2l0ZWx5IHJlcXVlc3RlZCBuYW1lc3BhY2VzIG9uIGRpc2sKIAlpZiAoIWV4aXN0cyAkY2FjaGVkX213X25hbWVzcGFjZV9pZHskbmFtZX0pIHsKLQkJcnVuX2dpdCgiY29uZmlnIC0tYWRkIHJlbW90ZS4iLiAkcmVtb3RlbmFtZQotCQkJLiIubmFtZXNwYWNlQ2FjaGUgXCIiLiAkbmFtZSAuIjoiLiAkc3RvcmVfaWQgLiJcIiIpOworCQlydW5fZ2l0KHFxKGNvbmZpZyAtLWFkZCByZW1vdGUuJHtyZW1vdGVuYW1lfS5uYW1lc3BhY2VDYWNoZSAiJHtuYW1lfToke3N0b3JlX2lkfSIpKTsKIAkJJGNhY2hlZF9td19uYW1lc3BhY2VfaWR7JG5hbWV9ID0gMTsKIAl9CiAJcmV0dXJuICRpZDsKIH0KIAogc3ViIGdldF9td19uYW1lc3BhY2VfaWRfZm9yX3BhZ2UgewotCWlmIChteSAoJG5hbWVzcGFjZSkgPSAkX1swXSA9fiAvXihbXjpdKik6LykgeworCW15ICRuYW1lc3BhY2UgPSBzaGlmdDsKKwlpZiAoJG5hbWVzcGFjZSA9fiAvXihbXjpdKik6LykgewogCQlyZXR1cm4gZ2V0X213X25hbWVzcGFjZV9pZCgkbmFtZXNwYWNlKTsKIAl9IGVsc2UgewogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC90L3Q5MzY1LWNvbnRpbnVpbmctcXVlcmllcy5zaCBiL2NvbnRyaWIvbXctdG8tZ2l0L3QvdDkzNjUtY29udGludWluZy1xdWVyaWVzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI3ZTI2N2YKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL213LXRvLWdpdC90L3Q5MzY1LWNvbnRpbnVpbmctcXVlcmllcy5zaApAQCAtMCwwICsxLDIzIEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nVGVzdCB0aGUgR2l0IE1lZGlhd2lraSByZW1vdGUgaGVscGVyOiBxdWVyaWVzIHcvIG1vcmUgdGhhbiA1MDAgcmVzdWx0cycKKworLiAuL3Rlc3QtZ2l0bXctbGliLnNoCisuICRURVNUX0RJUkVDVE9SWS90ZXN0LWxpYi5zaAorCit0ZXN0X2NoZWNrX3ByZWNvbmQKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY3JlYXRpbmcgcGFnZSB3LyA+NTAwIHJldmlzaW9ucycgJworCXdpa2lfcmVzZXQgJiYKKwlmb3IgaSBpbiBgdGVzdF9zZXEgNTAxYAorCWRvCisJCWVjaG8gImNyZWF0aW5nIHJldmlzaW9uICRpIiAmJgorCQl3aWtpX2VkaXRwYWdlIGZvbyAicmV2aXNpb24gJGk8YnIvPiIgdHJ1ZQorCWRvbmUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmluZyBwYWdlIHcvID41MDAgcmV2aXNpb25zJyAnCisJZ2l0IGNsb25lIG1lZGlhd2lraTo6JyIkV0lLSV9VUkwiJyBtd19kaXIKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC90L3Rlc3QtZ2l0bXctbGliLnNoIGIvY29udHJpYi9tdy10by1naXQvdC90ZXN0LWdpdG13LWxpYi5zaAppbmRleCAzYjJjZmFjLi5jYTY4NjBmIDEwMDc1NQotLS0gYS9jb250cmliL213LXRvLWdpdC90L3Rlc3QtZ2l0bXctbGliLnNoCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0L3QvdGVzdC1naXRtdy1saWIuc2gKQEAgLTYyLDEyICs2Miw4IEBACiAJCXRlc3RfZG9uZQogCWZpCiAKLQlpZiBbICEgLWYgIiRHSVRfQlVJTERfRElSIi9naXQtcmVtb3RlLW1lZGlhd2lraSBdOwotCXRoZW4KLQkJZWNobyAiTm8gcmVtb3RlIG1lZGlhd2lraSBmb3IgZ2l0IGZvdW5kLiBDb3B5aW5nIGl0IGluIGdpdCIKLQkJZWNobyAiY3AgJEdJVF9CVUlMRF9ESVIvY29udHJpYi9tdy10by1naXQvZ2l0LXJlbW90ZS1tZWRpYXdpa2kgJEdJVF9CVUlMRF9ESVIvIgotCQlsbiAtcyAiJEdJVF9CVUlMRF9ESVIiL2NvbnRyaWIvbXctdG8tZ2l0L2dpdC1yZW1vdGUtbWVkaWF3aWtpICIkR0lUX0JVSUxEX0RJUiIKLQlmaQorCUdJVF9FWEVDX1BBVEg9JChjZCAiJChkaXJuYW1lICIkMCIpIiAmJiBjZCAiLi4vLi4iICYmIHB3ZCkKKwlQQVRIPSIkR0lUX0VYRUNfUEFUSCInL2Jpbi13cmFwcGVyOiciJFBBVEgiCiAKIAlpZiBbICEgLWQgIiRXSUtJX0RJUl9JTlNULyRXSUtJX0RJUl9OQU1FIiBdOwogCXRoZW4KQEAgLTMzNiwyMCArMzMyLDIxIEBACiAJZmkKIAogCSMgRmV0Y2ggTWVkaWFXaWtpJ3MgYXJjaGl2ZSBpZiBub3QgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBUTVAgZGlyZWN0b3J5CisJTVdfRklMRU5BTUU9Im1lZGlhd2lraS0kTVdfVkVSU0lPTl9NQUpPUi4kTVdfVkVSU0lPTl9NSU5PUi50YXIuZ3oiCiAJY2QgIiRUTVAiCi0JaWYgWyAhIC1mICIkTVdfVkVSU0lPTi50YXIuZ3oiIF0gOyB0aGVuCi0JCWVjaG8gIkRvd25sb2FkaW5nICRNV19WRVJTSU9OIHNvdXJjZXMgLi4uIgotCQl3Z2V0ICJodHRwOi8vZG93bmxvYWQud2lraW1lZGlhLm9yZy9tZWRpYXdpa2kvMS4xOS9tZWRpYXdpa2ktMS4xOS4wLnRhci5neiIgfHwKKwlpZiBbICEgLWYgJE1XX0ZJTEVOQU1FIF0gOyB0aGVuCisJCWVjaG8gIkRvd25sb2FkaW5nICRNV19WRVJTSU9OX01BSk9SLiRNV19WRVJTSU9OX01JTk9SIHNvdXJjZXMgLi4uIgorCQl3Z2V0ICJodHRwOi8vZG93bmxvYWQud2lraW1lZGlhLm9yZy9tZWRpYXdpa2kvJE1XX1ZFUlNJT05fTUFKT1IvJE1XX0ZJTEVOQU1FIiB8fAogCQkJZXJyb3IgIlVuYWJsZSB0byBkb3dubG9hZCAiXAotCQkJImh0dHA6Ly9kb3dubG9hZC53aWtpbWVkaWEub3JnL21lZGlhd2lraS8xLjE5LyJcCi0JCQkibWVkaWF3aWtpLTEuMTkuMC50YXIuZ3ouICJcCisJCQkiaHR0cDovL2Rvd25sb2FkLndpa2ltZWRpYS5vcmcvbWVkaWF3aWtpLyRNV19WRVJTSU9OX01BSk9SLyJcCisJCQkiJE1XX0ZJTEVOQU1FLiAiXAogCQkJIlBsZWFzZSBmaXggeW91ciBjb25uZWN0aW9uIGFuZCBsYXVuY2ggdGhlIHNjcmlwdCBhZ2Fpbi4iCi0JCWVjaG8gIiRNV19WRVJTSU9OLnRhci5neiBkb3dubG9hZGVkIGluIGBwd2RgLiAiXAorCQllY2hvICIkTVdfRklMRU5BTUUgZG93bmxvYWRlZCBpbiBgcHdkYC4gIlwKIAkJCSJZb3UgY2FuIGRlbGV0ZSBpdCBsYXRlciBpZiB5b3Ugd2FudC4iCiAJZWxzZQotCQllY2hvICJSZXVzaW5nIGV4aXN0aW5nICRNV19WRVJTSU9OLnRhci5neiBkb3dubG9hZGVkIGluIGBwd2RgLiIKKwkJZWNobyAiUmV1c2luZyBleGlzdGluZyAkTVdfRklMRU5BTUUgZG93bmxvYWRlZCBpbiBgcHdkYC4iCiAJZmkKLQlhcmNoaXZlX2Fic19wYXRoPSQocHdkKS8iJE1XX1ZFUlNJT04udGFyLmd6IgorCWFyY2hpdmVfYWJzX3BhdGg9JChwd2QpLyRNV19GSUxFTkFNRQogCWNkICIkV0lLSV9ESVJfSU5TVC8kV0lLSV9ESVJfTkFNRS8iIHx8CiAJCWVycm9yICJjYW4ndCBjZCB0byAkV0lLSV9ESVJfSU5TVC8kV0lLSV9ESVJfTkFNRS8iCiAJdGFyIHh6ZiAiJGFyY2hpdmVfYWJzX3BhdGgiIC0tc3RyaXAtY29tcG9uZW50cz0xIHx8CkBAIC00MzEsNSArNDI4LDUgQEAKIAkjIERlbGV0ZSB0aGUgd2lraSdzIFNRTGl0ZSBkYXRhYmFzZQogCXJtIC1mICIkVE1QLyREQl9GSUxFIiB8fCBlcnJvciAiRGF0YWJhc2UgJFRNUC8kREJfRklMRSBjb3VsZCBub3QgYmUgZGVsZXRlZC4iCiAJcm0gLWYgIiRGSUxFU19GT0xERVIvJERCX0ZJTEUiCi0Jcm0gLXJmICIkVE1QLyRNV19WRVJTSU9OIgorCXJtIC1yZiAiJFRNUC9tZWRpYXdpa2ktJE1XX1ZFUlNJT05fTUFKT1IuJE1XX1ZFUlNJT05fTUlOT1IudGFyLmd6IgogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9tdy10by1naXQvdC90ZXN0LmNvbmZpZyBiL2NvbnRyaWIvbXctdG8tZ2l0L3QvdGVzdC5jb25maWcKaW5kZXggOTU4YjM3Yi4uNGNmZWJlOSAxMDA2NDQKLS0tIGEvY29udHJpYi9tdy10by1naXQvdC90ZXN0LmNvbmZpZworKysgYi9jb250cmliL213LXRvLWdpdC90L3Rlc3QuY29uZmlnCkBAIC0zMCw2ICszMCw4IEBACiAKICMgVGhlIHZhcmlhYmxlcyBiZWxvdyBhcmUgdXNlZCBieSB0aGUgc2NyaXB0IHRvIGluc3RhbGwgYSB3aWtpLgogIyBZb3Ugc2hvdWxkIG5vdCBtb2RpZnkgdGhlc2UgdW5sZXNzIHlvdSBhcmUgbW9kaWZ5aW5nIHRoZSBzY3JpcHQgaXRzZWxmLgotTVdfVkVSU0lPTj1tZWRpYXdpa2ktMS4xOS4wCisjIHRlc3RlZCB2ZXJzaW9uczogMS4xOS5YIC0+IDEuMjEuMQorTVdfVkVSU0lPTl9NQUpPUj0xLjIxCitNV19WRVJTSU9OX01JTk9SPTEKIEZJTEVTX0ZPTERFUj1pbnN0YWxsLXdpa2kKIERCX0lOU1RBTExfU0NSSVBUPWRiX2luc3RhbGwucGhwCmRpZmYgLS1naXQgYS9jb250cmliL3BhdGNoZXMvZG9jYm9vay14c2wtbWFucGFnZXMtY2hhcm1hcC5wYXRjaCBiL2NvbnRyaWIvcGF0Y2hlcy9kb2Nib29rLXhzbC1tYW5wYWdlcy1jaGFybWFwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMmIwOGI0Li4wMDAwMDAwCi0tLSBhL2NvbnRyaWIvcGF0Y2hlcy9kb2Nib29rLXhzbC1tYW5wYWdlcy1jaGFybWFwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotRnJvbTogSXNtYWlsIETDtm5tZXogPGlzbWFpbEBwYXJkdXMub3JnLnRyPgotCi1UcnlpbmcgdG8gYnVpbGQgdGhlIGRvY3VtZW50YXRpb24gd2l0aCBkb2Nib29rLXhzbCAxLjczIG1heSByZXN1bHQgaW4KLXRoZSBmb2xsb3dpbmcgZXJyb3IuICBUaGlzIHBhdGNoIGZpeGVzIGl0LgotCi0kIHhtbHRvIC1tIGNhbGxvdXRzLnhzbCBtYW4gZ2l0LWFkZC54bWwKLXJ1bnRpbWUgZXJyb3I6IGZpbGUKLWZpbGU6Ly8vdXNyL3NoYXJlL3NnbWwvZG9jYm9vay94c2wtc3R5bGVzaGVldHMtMS43My4wL21hbnBhZ2VzL290aGVyLnhzbCBsaW5lCi0xMjkgZWxlbWVudCBjYWxsLXRlbXBsYXRlCi1UaGUgY2FsbGVkIHRlbXBsYXRlICdyZWFkLWNoYXJhY3Rlci1tYXAnIHdhcyBub3QgZm91bmQuCi0KLS0tLSBkb2Nib29rLXhzbC0xLjczLjAvbWFucGFnZXMvZG9jYm9vay54c2wubWFucGFnZXMtY2hhcm1hcAkyMDA3LTA3LTIzIDE2OjI0OjIzLjAwMDAwMDAwMCArMDEwMAotKysrIGRvY2Jvb2steHNsLTEuNzMuMC9tYW5wYWdlcy9kb2Nib29rLnhzbAkyMDA3LTA3LTIzIDE2OjI1OjE2LjAwMDAwMDAwMCArMDEwMAotQEAgLTM3LDYgKzM3LDcgQEAKLSAgIDx4c2w6aW5jbHVkZSBocmVmPSJsaXN0cy54c2wiLz4KLSAgIDx4c2w6aW5jbHVkZSBocmVmPSJlbmRub3Rlcy54c2wiLz4KLSAgIDx4c2w6aW5jbHVkZSBocmVmPSJ0YWJsZS54c2wiLz4KLSsgIDx4c2w6aW5jbHVkZSBocmVmPSIuLi9jb21tb24vY2hhcm1hcC54c2wiLz4KLQotICAgPCEtLSAqIHdlIHJlbmFtZSB0aGUgZm9sbG93aW5nIGp1c3QgdG8gYXZvaWQgdXNpbmcgcGFyYW1zIHdpdGggIm1hbiIgLS0+Ci0gICA8IS0tICogcHJlZml4ZXMgaW4gdGhlIHRhYmxlLnhzbCBzdHlsZXNoZWV0IChiZWNhdXNlIHRoYXQgc3R5bGVzaGVldCAtLT4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvZ2l0LXJlbW90ZS1ienIgYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL2dpdC1yZW1vdGUtYnpyCmluZGV4IDEwMzAwYzYuLmMzYTNjYWMgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvZ2l0LXJlbW90ZS1ienIKKysrIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy9naXQtcmVtb3RlLWJ6cgpAQCAtMTE2LDcgKzExNiwxMCBAQAogICAgICAgICBzZWxmLmxhc3RfbWFyayA9IG1hcmsKIAogICAgIGRlZiBnZXRfdGlwKHNlbGYsIGJyYW5jaCk6Ci0gICAgICAgIHJldHVybiBzZWxmLnRpcHMuZ2V0KGJyYW5jaCwgTm9uZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHN0cihzZWxmLnRpcHNbYnJhbmNoXSkKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIGRlZiBzZXRfdGlwKHNlbGYsIGJyYW5jaCwgdGlwKToKICAgICAgICAgc2VsZi50aXBzW2JyYW5jaF0gPSB0aXAKQEAgLTI3OCw3ICsyODEsNyBAQAogICAgIHJlZiA9ICclcy9oZWFkcy8lcycgJSAocHJlZml4LCBuYW1lKQogICAgIHRpcCA9IG1hcmtzLmdldF90aXAobmFtZSkKIAotICAgIGJyYW5jaCA9IGJ6cmxpYi5icmFuY2guQnJhbmNoLm9wZW4oYnJhbmNoZXNbbmFtZV0pCisgICAgYnJhbmNoID0gZ2V0X3JlbW90ZV9icmFuY2gobmFtZSkKICAgICByZXBvID0gYnJhbmNoLnJlcG9zaXRvcnkKIAogICAgIGJyYW5jaC5sb2NrX3JlYWQoKQpAQCAtNTkwLDcgKzU5Myw3IEBACiAKICAgICBpZiByZWYuc3RhcnRzd2l0aCgncmVmcy9oZWFkcy8nKToKICAgICAgICAgbmFtZSA9IHJlZltsZW4oJ3JlZnMvaGVhZHMvJyk6XQotICAgICAgICBicmFuY2ggPSBienJsaWIuYnJhbmNoLkJyYW5jaC5vcGVuKGJyYW5jaGVzW25hbWVdKQorICAgICAgICBicmFuY2ggPSBnZXRfcmVtb3RlX2JyYW5jaChuYW1lKQogICAgIGVsc2U6CiAgICAgICAgIGRpZSgndW5rbm93biByZWYnKQogCkBAIC02MjEsNyArNjI0LDcgQEAKICAgICAgICAgICAgIG1hcmsgPSBpbnQobWFya19yZWZbMTpdKQogICAgICAgICAgICAgZiA9IHsgJ21vZGUnIDogbSwgJ21hcmsnIDogbWFyayB9CiAgICAgICAgIGVsaWYgcGFyc2VyLmNoZWNrKCdEJyk6Ci0gICAgICAgICAgICB0LCBwYXRoID0gbGluZS5zcGxpdCgnICcpCisgICAgICAgICAgICB0LCBwYXRoID0gbGluZS5zcGxpdCgnICcsIDEpCiAgICAgICAgICAgICBmID0geyAnZGVsZXRlZCcgOiBUcnVlIH0KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGRpZSgnVW5rbm93biBmaWxlIGNvbW1hbmQ6ICVzJyAlIGxpbmUpCkBAIC02OTIsNyArNjk1LDcgQEAKICAgICBmb3IgcmVmLCByZXZpZCBpbiBwYXJzZWRfcmVmcy5pdGVyaXRlbXMoKToKICAgICAgICAgaWYgcmVmLnN0YXJ0c3dpdGgoJ3JlZnMvaGVhZHMvJyk6CiAgICAgICAgICAgICBuYW1lID0gcmVmW2xlbigncmVmcy9oZWFkcy8nKTpdCi0gICAgICAgICAgICBicmFuY2ggPSBienJsaWIuYnJhbmNoLkJyYW5jaC5vcGVuKGJyYW5jaGVzW25hbWVdKQorICAgICAgICAgICAgYnJhbmNoID0gZ2V0X3JlbW90ZV9icmFuY2gobmFtZSkKICAgICAgICAgICAgIGJyYW5jaC5nZW5lcmF0ZV9yZXZpc2lvbl9oaXN0b3J5KHJldmlkLCBtYXJrcy5nZXRfdGlwKG5hbWUpKQogCiAgICAgICAgICAgICBpZiBuYW1lIGluIHBlZXJzOgpAQCAtNzQ5LDcgKzc1Miw3IEBACiAgICAgICAgICAgICBtYXN0ZXJfYnJhbmNoID0gbmFtZQogICAgICAgICBwcmludCAiPyByZWZzL2hlYWRzLyVzIiAlIG5hbWUKIAotICAgIGJyYW5jaCA9IGJ6cmxpYi5icmFuY2guQnJhbmNoLm9wZW4oYnJhbmNoZXNbbWFzdGVyX2JyYW5jaF0pCisgICAgYnJhbmNoID0gZ2V0X3JlbW90ZV9icmFuY2gobWFzdGVyX2JyYW5jaCkKICAgICBicmFuY2gubG9ja19yZWFkKCkKICAgICBmb3IgdGFnLCByZXZpZCBpbiBicmFuY2gudGFncy5nZXRfdGFnX2RpY3QoKS5pdGVtcygpOgogICAgICAgICB0cnk6CkBAIC03NjUsMzAgKzc2OCw0MCBAQAogICAgIHByaW50ICJAcmVmcy9oZWFkcy8lcyBIRUFEIiAlIG1hc3Rlcl9icmFuY2gKICAgICBwcmludAogCi1kZWYgZ2V0X3JlbW90ZV9icmFuY2gob3JpZ2luLCByZW1vdGVfYnJhbmNoLCBuYW1lKToKLSAgICBnbG9iYWwgZGlybmFtZSwgcGVlcnMKK2RlZiBjbG9uZShwYXRoLCByZW1vdGVfYnJhbmNoKToKKyAgICB0cnk6CisgICAgICAgIGJkaXIgPSBienJsaWIuYnpyZGlyLkJ6ckRpci5jcmVhdGUocGF0aCkKKyAgICBleGNlcHQgYnpybGliLmVycm9ycy5BbHJlYWR5Q29udHJvbERpckVycm9yOgorICAgICAgICBiZGlyID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihwYXRoKQorICAgIHJlcG8gPSBiZGlyLmZpbmRfcmVwb3NpdG9yeSgpCisgICAgcmVwby5mZXRjaChyZW1vdGVfYnJhbmNoLnJlcG9zaXRvcnkpCisgICAgcmV0dXJuIHJlbW90ZV9icmFuY2guc3Byb3V0KGJkaXIsIHJlcG9zaXRvcnk9cmVwbykKKworZGVmIGdldF9yZW1vdGVfYnJhbmNoKG5hbWUpOgorICAgIGdsb2JhbCBkaXJuYW1lLCBicmFuY2hlcworCisgICAgcmVtb3RlX2JyYW5jaCA9IGJ6cmxpYi5icmFuY2guQnJhbmNoLm9wZW4oYnJhbmNoZXNbbmFtZV0pCisgICAgaWYgaXNpbnN0YW5jZShyZW1vdGVfYnJhbmNoLnVzZXJfdHJhbnNwb3J0LCBienJsaWIudHJhbnNwb3J0LmxvY2FsLkxvY2FsVHJhbnNwb3J0KToKKyAgICAgICAgcmV0dXJuIHJlbW90ZV9icmFuY2gKIAogICAgIGJyYW5jaF9wYXRoID0gb3MucGF0aC5qb2luKGRpcm5hbWUsICdjbG9uZScsIG5hbWUpCi0gICAgaWYgb3MucGF0aC5leGlzdHMoYnJhbmNoX3BhdGgpOgorCisgICAgdHJ5OgorICAgICAgICBicmFuY2ggPSBienJsaWIuYnJhbmNoLkJyYW5jaC5vcGVuKGJyYW5jaF9wYXRoKQorICAgIGV4Y2VwdCBienJsaWIuZXJyb3JzLk5vdEJyYW5jaEVycm9yOgorICAgICAgICAjIGNsb25lCisgICAgICAgIGJyYW5jaCA9IGNsb25lKGJyYW5jaF9wYXRoLCByZW1vdGVfYnJhbmNoKQorICAgIGVsc2U6CiAgICAgICAgICMgcHVsbAotICAgICAgICBkID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihicmFuY2hfcGF0aCkKLSAgICAgICAgYnJhbmNoID0gZC5vcGVuX2JyYW5jaCgpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIGJyYW5jaC5wdWxsKHJlbW90ZV9icmFuY2gsIFtdLCBOb25lLCBGYWxzZSkKKyAgICAgICAgICAgIGJyYW5jaC5wdWxsKHJlbW90ZV9icmFuY2gsIG92ZXJ3cml0ZT1UcnVlKQogICAgICAgICBleGNlcHQgYnpybGliLmVycm9ycy5EaXZlcmdlZEJyYW5jaGVzOgogICAgICAgICAgICAgIyB1c2UgcmVtb3RlIGJyYW5jaCBmb3Igbm93CiAgICAgICAgICAgICByZXR1cm4gcmVtb3RlX2JyYW5jaAotICAgIGVsc2U6Ci0gICAgICAgICMgY2xvbmUKLSAgICAgICAgZCA9IG9yaWdpbi5zcHJvdXQoYnJhbmNoX3BhdGgsIE5vbmUsCi0gICAgICAgICAgICAgICAgaGFyZGxpbms9VHJ1ZSwgY3JlYXRlX3RyZWVfaWZfbG9jYWw9RmFsc2UsCi0gICAgICAgICAgICAgICAgZm9yY2VfbmV3X3JlcG89RmFsc2UsCi0gICAgICAgICAgICAgICAgc291cmNlX2JyYW5jaD1yZW1vdGVfYnJhbmNoKQotICAgICAgICBicmFuY2ggPSBkLm9wZW5fYnJhbmNoKCkKIAogICAgIHJldHVybiBicmFuY2gKIAotZGVmIGZpbmRfYnJhbmNoZXMocmVwbywgd2FudGVkKToKK2RlZiBmaW5kX2JyYW5jaGVzKHJlcG8pOgogICAgIHRyYW5zcG9ydCA9IHJlcG8uYnpyZGlyLnJvb3RfdHJhbnNwb3J0CiAKICAgICBmb3IgZm4gaW4gdHJhbnNwb3J0Lml0ZXJfZmlsZXNfcmVjdXJzaXZlKCk6CkBAIC03OTksMTYgKzgxMiwxMyBAQAogICAgICAgICBuYW1lID0gbmFtZSBpZiBuYW1lICE9ICcnIGVsc2UgJ21hc3RlcicKICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZSgnLycsICcrJykKIAotICAgICAgICBpZiB3YW50ZWQgYW5kIG5vdCBuYW1lIGluIHdhbnRlZDoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0KICAgICAgICAgdHJ5OgogICAgICAgICAgICAgY3VyID0gdHJhbnNwb3J0LmNsb25lKHN1YmRpcikKICAgICAgICAgICAgIGJyYW5jaCA9IGJ6cmxpYi5icmFuY2guQnJhbmNoLm9wZW5fZnJvbV90cmFuc3BvcnQoY3VyKQogICAgICAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob3RCcmFuY2hFcnJvcjoKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB5aWVsZCBuYW1lLCBicmFuY2gKKyAgICAgICAgICAgIHlpZWxkIG5hbWUsIGJyYW5jaC5iYXNlCiAKIGRlZiBnZXRfcmVwbyh1cmwsIGFsaWFzKToKICAgICBnbG9iYWwgZGlybmFtZSwgcGVlciwgYnJhbmNoZXMKQEAgLTg0MSw0NCArODUxLDM1IEBACiAgICAgICAgICAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob1JlcG9zaXRvcnlQcmVzZW50OgogICAgICAgICAgICAgICAgIHBhc3MKIAotICAgIHRyeToKLSAgICAgICAgcmVwbyA9IG9yaWdpbi5vcGVuX3JlcG9zaXRvcnkoKQotICAgICAgICBpZiBub3QgcmVwby51c2VyX3RyYW5zcG9ydC5saXN0YWJsZSgpOgotICAgICAgICAgICAgIyB0aGlzIHJlcG9zaXRvcnkgaXMgbm90IHVzYWJsZSBmb3IgdXMKLSAgICAgICAgICAgIHJhaXNlIGJ6cmxpYi5lcnJvcnMuTm9SZXBvc2l0b3J5UHJlc2VudChyZXBvLmJ6cmRpcikKLSAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob1JlcG9zaXRvcnlQcmVzZW50OgotICAgICAgICAjIGJyYW5jaAorICAgIHdhbnRlZCA9IGdldF9jb25maWcoJ3JlbW90ZS1ienIuYnJhbmNoZXMnKS5yc3RyaXAoKS5zcGxpdCgnLCAnKQorICAgICMgc3R1cGlkIHB5dGhvbgorICAgIHdhbnRlZCA9IFtlIGZvciBlIGluIHdhbnRlZCBpZiBlXQogCi0gICAgICAgIG5hbWUgPSAnbWFzdGVyJwotICAgICAgICByZW1vdGVfYnJhbmNoID0gb3JpZ2luLm9wZW5fYnJhbmNoKCkKKyAgICBpZiBub3Qgd2FudGVkOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXBvID0gb3JpZ2luLm9wZW5fcmVwb3NpdG9yeSgpCisgICAgICAgICAgICBpZiBub3QgcmVwby51c2VyX3RyYW5zcG9ydC5saXN0YWJsZSgpOgorICAgICAgICAgICAgICAgICMgdGhpcyByZXBvc2l0b3J5IGlzIG5vdCB1c2FibGUgZm9yIHVzCisgICAgICAgICAgICAgICAgcmFpc2UgYnpybGliLmVycm9ycy5Ob1JlcG9zaXRvcnlQcmVzZW50KHJlcG8uYnpyZGlyKQorICAgICAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob1JlcG9zaXRvcnlQcmVzZW50OgorICAgICAgICAgICAgd2FudGVkID0gWydtYXN0ZXInXQogCi0gICAgICAgIGlmIG5vdCBpc19sb2NhbDoKLSAgICAgICAgICAgIHBlZXJzW25hbWVdID0gcmVtb3RlX2JyYW5jaC5iYXNlCi0gICAgICAgICAgICBicmFuY2ggPSBnZXRfcmVtb3RlX2JyYW5jaChvcmlnaW4sIHJlbW90ZV9icmFuY2gsIG5hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBicmFuY2ggPSByZW1vdGVfYnJhbmNoCisgICAgaWYgd2FudGVkOgorICAgICAgICBkZWYgbGlzdF93YW50ZWQodXJsLCB3YW50ZWQpOgorICAgICAgICAgICAgZm9yIG5hbWUgaW4gd2FudGVkOgorICAgICAgICAgICAgICAgIHN1YmRpciA9IG5hbWUgaWYgbmFtZSAhPSAnbWFzdGVyJyBlbHNlICcnCisgICAgICAgICAgICAgICAgeWllbGQgbmFtZSwgYnpybGliLnVybHV0aWxzLmpvaW4odXJsLCBzdWJkaXIpCiAKLSAgICAgICAgYnJhbmNoZXNbbmFtZV0gPSBicmFuY2guYmFzZQotCi0gICAgICAgIHJldHVybiBicmFuY2gucmVwb3NpdG9yeQorICAgICAgICBicmFuY2hfbGlzdCA9IGxpc3Rfd2FudGVkKHVybCwgd2FudGVkKQogICAgIGVsc2U6Ci0gICAgICAgICMgcmVwb3NpdG9yeQorICAgICAgICBicmFuY2hfbGlzdCA9IGZpbmRfYnJhbmNoZXMocmVwbykKIAotICAgICAgICB3YW50ZWQgPSBnZXRfY29uZmlnKCdyZW1vdGUtYnpyLmJyYW5jaGVzJykucnN0cmlwKCkuc3BsaXQoJywgJykKLSAgICAgICAgIyBzdHVwaWQgcHl0aG9uCi0gICAgICAgIHdhbnRlZCA9IFtlIGZvciBlIGluIHdhbnRlZCBpZiBlXQorICAgIGZvciBuYW1lLCB1cmwgaW4gYnJhbmNoX2xpc3Q6CisgICAgICAgIGlmIG5vdCBpc19sb2NhbDoKKyAgICAgICAgICAgIHBlZXJzW25hbWVdID0gdXJsCisgICAgICAgIGJyYW5jaGVzW25hbWVdID0gdXJsCiAKLSAgICAgICAgZm9yIG5hbWUsIHJlbW90ZV9icmFuY2ggaW4gZmluZF9icmFuY2hlcyhyZXBvLCB3YW50ZWQpOgotCi0gICAgICAgICAgICBpZiBub3QgaXNfbG9jYWw6Ci0gICAgICAgICAgICAgICAgcGVlcnNbbmFtZV0gPSByZW1vdGVfYnJhbmNoLmJhc2UKLSAgICAgICAgICAgICAgICBicmFuY2ggPSBnZXRfcmVtb3RlX2JyYW5jaChvcmlnaW4sIHJlbW90ZV9icmFuY2gsIG5hbWUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGJyYW5jaCA9IHJlbW90ZV9icmFuY2gKLQotICAgICAgICAgICAgYnJhbmNoZXNbbmFtZV0gPSBicmFuY2guYmFzZQotCi0gICAgICAgIHJldHVybiByZXBvCisgICAgcmV0dXJuIG9yaWdpbgogCiBkZWYgZml4X3BhdGgoYWxpYXMsIG9yaWdfdXJsKToKICAgICB1cmwgPSB1cmxwYXJzZS51cmxwYXJzZShvcmlnX3VybCwgJ2ZpbGUnKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9yZW1vdGUtaGVscGVycy9naXQtcmVtb3RlLWhnIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy9naXQtcmVtb3RlLWhnCmluZGV4IDFkZDNkNzAuLjAxOTRjNjcgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvZ2l0LXJlbW90ZS1oZworKysgYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL2dpdC1yZW1vdGUtaGcKQEAgLTEyLDcgKzEyLDcgQEAKICMgRm9yIHJlbW90ZSByZXBvc2l0b3JpZXMgYSBsb2NhbCBjbG9uZSBpcyBzdG9yZWQgaW4KICMgIiRHSVRfRElSL2hnL29yaWdpbi9jbG9uZS8uaGcvIi4KIAotZnJvbSBtZXJjdXJpYWwgaW1wb3J0IGhnLCB1aSwgYm9va21hcmtzLCBjb250ZXh0LCBlbmNvZGluZywgbm9kZSwgZXJyb3IsIGV4dGVuc2lvbnMKK2Zyb20gbWVyY3VyaWFsIGltcG9ydCBoZywgdWksIGJvb2ttYXJrcywgY29udGV4dCwgZW5jb2RpbmcsIG5vZGUsIGVycm9yLCBleHRlbnNpb25zLCBkaXNjb3ZlcnksIHV0aWwKIAogaW1wb3J0IHJlCiBpbXBvcnQgc3lzCkBAIC0yOSw5ICsyOSw2IEBACiAjIG5hbWVkIGJyYW5jaGVzOgogIyBnaXQgY29uZmlnIC0tZ2xvYmFsIHJlbW90ZS1oZy50cmFjay1icmFuY2hlcyBmYWxzZQogIwotIyBJZiB5b3UgZG9uJ3Qgd2FudCB0byBmb3JjZSBwdXNoZXMgKGFuZCB0aHVzIHJpc2sgY3JlYXRpbmcgbmV3IHJlbW90ZSBoZWFkcyk6Ci0jIGdpdCBjb25maWcgLS1nbG9iYWwgcmVtb3RlLWhnLmZvcmNlLXB1c2ggZmFsc2UKLSMKICMgSWYgeW91IHdhbnQgdGhlIGVxdWl2YWxlbnQgb2YgaGcncyBjbG9uZS9wdWxsLS1pbnNlY3VyZSBvcHRpb246CiAjIGdpdCBjb25maWcgLS1nbG9iYWwgcmVtb3RlLWhnLmluc2VjdXJlIHRydWUKICMKQEAgLTU1LDYgKzUyLDggQEAKIEFVVEhPUl9IR19SRSA9IHJlLmNvbXBpbGUoJ14oLio/KSA/PCguKj8pKD86PiguKyk/KT8kJykKIFJBV19BVVRIT1JfUkUgPSByZS5jb21waWxlKCdeKFx3KykgKD86KC4rKT8gKT88KC4qKT4gKFxkKykgKFsrLV1cZCspJykKIAorVkVSU0lPTiA9IDIKKwogZGVmIGRpZShtc2csICphcmdzKToKICAgICBzeXMuc3RkZXJyLndyaXRlKCdFUlJPUjogJXNcbicgJSAobXNnICUgYXJncykpCiAgICAgc3lzLmV4aXQoMSkKQEAgLTcyLDggKzcxLDExIEBACiAgICAgbSA9IHsgJzEwMDc1NSc6ICd4JywgJzEyMDAwMCc6ICdsJyB9CiAgICAgcmV0dXJuIG0uZ2V0KG1vZGUsICcnKQogCi1kZWYgaGdoZXgobm9kZSk6Ci0gICAgcmV0dXJuIGhnLm5vZGUuaGV4KG5vZGUpCitkZWYgaGdoZXgobik6CisgICAgcmV0dXJuIG5vZGUuaGV4KG4pCisKK2RlZiBoZ2JpbihuKToKKyAgICByZXR1cm4gbm9kZS5iaW4obikKIAogZGVmIGhncmVmKHJlZik6CiAgICAgcmV0dXJuIHJlZi5yZXBsYWNlKCdfX18nLCAnICcpCkBAIC04MSw2ICs4MywxMSBAQAogZGVmIGdpdHJlZihyZWYpOgogICAgIHJldHVybiByZWYucmVwbGFjZSgnICcsICdfX18nKQogCitkZWYgY2hlY2tfdmVyc2lvbigqY2hlY2spOgorICAgIGlmIG5vdCBoZ192ZXJzaW9uOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHJldHVybiBoZ192ZXJzaW9uID49IGNoZWNrCisKIGRlZiBnZXRfY29uZmlnKGNvbmZpZyk6CiAgICAgY21kID0gWydnaXQnLCAnY29uZmlnJywgJy0tZ2V0JywgY29uZmlnXQogICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKQEAgLTk4LDE0ICsxMDUsMjcgQEAKIAogY2xhc3MgTWFya3M6CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIHJlcG8pOgogICAgICAgICBzZWxmLnBhdGggPSBwYXRoCisgICAgICAgIHNlbGYucmVwbyA9IHJlcG8KKyAgICAgICAgc2VsZi5jbGVhcigpCisgICAgICAgIHNlbGYubG9hZCgpCisKKyAgICAgICAgaWYgc2VsZi52ZXJzaW9uIDwgVkVSU0lPTjoKKyAgICAgICAgICAgIGlmIHNlbGYudmVyc2lvbiA9PSAxOgorICAgICAgICAgICAgICAgIHNlbGYudXBncmFkZV9vbmUoKQorCisgICAgICAgICAgICAjIHVwZ3JhZGVkPworICAgICAgICAgICAgaWYgc2VsZi52ZXJzaW9uIDwgVkVSU0lPTjoKKyAgICAgICAgICAgICAgICBzZWxmLmNsZWFyKCkKKyAgICAgICAgICAgICAgICBzZWxmLnZlcnNpb24gPSBWRVJTSU9OCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CiAgICAgICAgIHNlbGYudGlwcyA9IHt9CiAgICAgICAgIHNlbGYubWFya3MgPSB7fQogICAgICAgICBzZWxmLnJldl9tYXJrcyA9IHt9CiAgICAgICAgIHNlbGYubGFzdF9tYXJrID0gMAotCi0gICAgICAgIHNlbGYubG9hZCgpCisgICAgICAgIHNlbGYudmVyc2lvbiA9IDAKIAogICAgIGRlZiBsb2FkKHNlbGYpOgogICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5wYXRoKToKQEAgLTExNiwxMiArMTM2LDIxIEBACiAgICAgICAgIHNlbGYudGlwcyA9IHRtcFsndGlwcyddCiAgICAgICAgIHNlbGYubWFya3MgPSB0bXBbJ21hcmtzJ10KICAgICAgICAgc2VsZi5sYXN0X21hcmsgPSB0bXBbJ2xhc3QtbWFyayddCisgICAgICAgIHNlbGYudmVyc2lvbiA9IHRtcC5nZXQoJ3ZlcnNpb24nLCAxKQogCiAgICAgICAgIGZvciByZXYsIG1hcmsgaW4gc2VsZi5tYXJrcy5pdGVyaXRlbXMoKToKLSAgICAgICAgICAgIHNlbGYucmV2X21hcmtzW21hcmtdID0gaW50KHJldikKKyAgICAgICAgICAgIHNlbGYucmV2X21hcmtzW21hcmtdID0gcmV2CisKKyAgICBkZWYgdXBncmFkZV9vbmUoc2VsZik6CisgICAgICAgIGRlZiBnZXRfaWQocmV2KToKKyAgICAgICAgICAgIHJldHVybiBoZ2hleChzZWxmLnJlcG8uY2hhbmdlbG9nLm5vZGUoaW50KHJldikpKQorICAgICAgICBzZWxmLnRpcHMgPSBkaWN0KChuYW1lLCBnZXRfaWQocmV2KSkgZm9yIG5hbWUsIHJldiBpbiBzZWxmLnRpcHMuaXRlcml0ZW1zKCkpCisgICAgICAgIHNlbGYubWFya3MgPSBkaWN0KChnZXRfaWQocmV2KSwgbWFyaykgZm9yIHJldiwgbWFyayBpbiBzZWxmLm1hcmtzLml0ZXJpdGVtcygpKQorICAgICAgICBzZWxmLnJldl9tYXJrcyA9IGRpY3QoKG1hcmssIGdldF9pZChyZXYpKSBmb3IgbWFyaywgcmV2IGluIHNlbGYucmV2X21hcmtzLml0ZXJpdGVtcygpKQorICAgICAgICBzZWxmLnZlcnNpb24gPSAyCiAKICAgICBkZWYgZGljdChzZWxmKToKLSAgICAgICAgcmV0dXJuIHsgJ3RpcHMnOiBzZWxmLnRpcHMsICdtYXJrcyc6IHNlbGYubWFya3MsICdsYXN0LW1hcmsnIDogc2VsZi5sYXN0X21hcmsgfQorICAgICAgICByZXR1cm4geyAndGlwcyc6IHNlbGYudGlwcywgJ21hcmtzJzogc2VsZi5tYXJrcywgJ2xhc3QtbWFyaycgOiBzZWxmLmxhc3RfbWFyaywgJ3ZlcnNpb24nIDogc2VsZi52ZXJzaW9uIH0KIAogICAgIGRlZiBzdG9yZShzZWxmKToKICAgICAgICAganNvbi5kdW1wKHNlbGYuZGljdCgpLCBvcGVuKHNlbGYucGF0aCwgJ3cnKSkKQEAgLTEzMCwxMCArMTU5LDEwIEBACiAgICAgICAgIHJldHVybiBzdHIoc2VsZi5kaWN0KCkpCiAKICAgICBkZWYgZnJvbV9yZXYoc2VsZiwgcmV2KToKLSAgICAgICAgcmV0dXJuIHNlbGYubWFya3Nbc3RyKHJldildCisgICAgICAgIHJldHVybiBzZWxmLm1hcmtzW3Jldl0KIAogICAgIGRlZiB0b19yZXYoc2VsZiwgbWFyayk6Ci0gICAgICAgIHJldHVybiBzZWxmLnJldl9tYXJrc1ttYXJrXQorICAgICAgICByZXR1cm4gc3RyKHNlbGYucmV2X21hcmtzW21hcmtdKQogCiAgICAgZGVmIG5leHRfbWFyayhzZWxmKToKICAgICAgICAgc2VsZi5sYXN0X21hcmsgKz0gMQpAQCAtMTQxLDE5ICsxNzAsMTkgQEAKIAogICAgIGRlZiBnZXRfbWFyayhzZWxmLCByZXYpOgogICAgICAgICBzZWxmLmxhc3RfbWFyayArPSAxCi0gICAgICAgIHNlbGYubWFya3Nbc3RyKHJldildID0gc2VsZi5sYXN0X21hcmsKKyAgICAgICAgc2VsZi5tYXJrc1tyZXZdID0gc2VsZi5sYXN0X21hcmsKICAgICAgICAgcmV0dXJuIHNlbGYubGFzdF9tYXJrCiAKICAgICBkZWYgbmV3X21hcmsoc2VsZiwgcmV2LCBtYXJrKToKLSAgICAgICAgc2VsZi5tYXJrc1tzdHIocmV2KV0gPSBtYXJrCisgICAgICAgIHNlbGYubWFya3NbcmV2XSA9IG1hcmsKICAgICAgICAgc2VsZi5yZXZfbWFya3NbbWFya10gPSByZXYKICAgICAgICAgc2VsZi5sYXN0X21hcmsgPSBtYXJrCiAKICAgICBkZWYgaXNfbWFya2VkKHNlbGYsIHJldik6Ci0gICAgICAgIHJldHVybiBzdHIocmV2KSBpbiBzZWxmLm1hcmtzCisgICAgICAgIHJldHVybiByZXYgaW4gc2VsZi5tYXJrcwogCiAgICAgZGVmIGdldF90aXAoc2VsZiwgYnJhbmNoKToKLSAgICAgICAgcmV0dXJuIHNlbGYudGlwcy5nZXQoYnJhbmNoLCAwKQorICAgICAgICByZXR1cm4gc3RyKHNlbGYudGlwc1ticmFuY2hdKQogCiAgICAgZGVmIHNldF90aXAoc2VsZiwgYnJhbmNoLCB0aXApOgogICAgICAgICBzZWxmLnRpcHNbYnJhbmNoXSA9IHRpcApAQCAtMjYxLDcgKzI5MCw3IEBACiAgICAgcmVtb3ZlZCA9IHNldCgpCiAKICAgICAjIGxvYWQgZWFybGllc3QgbWFuaWZlc3QgZmlyc3QgZm9yIGNhY2hpbmcgcmVhc29ucwotICAgIHByZXYgPSByZXBvW3BhcmVudF0ubWFuaWZlc3QoKS5jb3B5KCkKKyAgICBwcmV2ID0gcGFyZW50Lm1hbmlmZXN0KCkuY29weSgpCiAgICAgY3VyID0gY3R4Lm1hbmlmZXN0KCkKIAogICAgIGZvciBmbiBpbiBjdXI6CkBAIC0zMjksNiArMzU4LDIxIEBACiAKICAgICByZXR1cm4gJyVzIDwlcz4nICUgKG5hbWUsIG1haWwpCiAKK2RlZiB1cGRhdGVib29rbWFya3MocmVwbywgcGVlcik6CisgICAgcmVtb3RlbWFya3MgPSBwZWVyLmxpc3RrZXlzKCdib29rbWFya3MnKQorICAgIGxvY2FsbWFya3MgPSByZXBvLl9ib29rbWFya3MKKworICAgIGlmIG5vdCByZW1vdGVtYXJrczoKKyAgICAgICAgcmV0dXJuCisKKyAgICBmb3IgaywgdiBpbiByZW1vdGVtYXJrcy5pdGVyaXRlbXMoKToKKyAgICAgICAgbG9jYWxtYXJrc1trXSA9IGhnYmluKHYpCisKKyAgICBpZiBoYXNhdHRyKGxvY2FsbWFya3MsICd3cml0ZScpOgorICAgICAgICBsb2NhbG1hcmtzLndyaXRlKCkKKyAgICBlbHNlOgorICAgICAgICBib29rbWFya3Mud3JpdGUocmVwbykKKwogZGVmIGdldF9yZXBvKHVybCwgYWxpYXMpOgogICAgIGdsb2JhbCBkaXJuYW1lLCBwZWVyCiAKQEAgLTMzOSwzNSArMzgzLDQxIEBACiAgICAgaWYgZ2V0X2NvbmZpZ19ib29sKCdyZW1vdGUtaGcuaW5zZWN1cmUnKToKICAgICAgICAgbXl1aS5zZXRjb25maWcoJ3dlYicsICdjYWNlcnRzJywgJycpCiAKLSAgICB0cnk6Ci0gICAgICAgIG1vZCA9IGV4dGVuc2lvbnMubG9hZChteXVpLCAnaGdleHQuc2NoZW1lcycsIE5vbmUpCi0gICAgICAgIG1vZC5leHRzZXR1cChteXVpKQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcGFzcworICAgIGV4dGVuc2lvbnMubG9hZGFsbChteXVpKQogCi0gICAgaWYgaGcuaXNsb2NhbCh1cmwpOgorICAgIGlmIGhnLmlzbG9jYWwodXJsKSBhbmQgbm90IG9zLmVudmlyb24uZ2V0KCdHSVRfUkVNT1RFX0hHX1RFU1RfUkVNT1RFJyk6CiAgICAgICAgIHJlcG8gPSBoZy5yZXBvc2l0b3J5KG15dWksIHVybCkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRpcm5hbWUpOgorICAgICAgICAgICAgb3MubWFrZWRpcnMoZGlybmFtZSkKICAgICBlbHNlOgorICAgICAgICBzaGFyZWRfcGF0aCA9IG9zLnBhdGguam9pbihnaXRkaXIsICdoZycpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzaGFyZWRfcGF0aCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaGcuY2xvbmUobXl1aSwge30sIHVybCwgc2hhcmVkX3BhdGgsIHVwZGF0ZT1GYWxzZSwgcHVsbD1UcnVlKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIGRpZSgnUmVwb3NpdG9yeSBlcnJvcicpCisKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRpcm5hbWUpOgorICAgICAgICAgICAgb3MubWFrZWRpcnMoZGlybmFtZSkKKwogICAgICAgICBsb2NhbF9wYXRoID0gb3MucGF0aC5qb2luKGRpcm5hbWUsICdjbG9uZScpCiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhsb2NhbF9wYXRoKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBwZWVyLCBkc3RwZWVyID0gaGcuY2xvbmUobXl1aSwge30sIHVybCwgbG9jYWxfcGF0aCwgdXBkYXRlPVRydWUsIHB1bGw9VHJ1ZSkKLSAgICAgICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgICAgICBkaWUoJ1JlcG9zaXRvcnkgZXJyb3InKQotICAgICAgICAgICAgcmVwbyA9IGRzdHBlZXIubG9jYWwoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVwbyA9IGhnLnJlcG9zaXRvcnkobXl1aSwgbG9jYWxfcGF0aCkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBwZWVyID0gaGcucGVlcihteXVpLCB7fSwgdXJsKQotICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIGRpZSgnUmVwb3NpdG9yeSBlcnJvcicpCi0gICAgICAgICAgICByZXBvLnB1bGwocGVlciwgaGVhZHM9Tm9uZSwgZm9yY2U9VHJ1ZSkKKyAgICAgICAgICAgIGhnLnNoYXJlKG15dWksIHNoYXJlZF9wYXRoLCBsb2NhbF9wYXRoLCB1cGRhdGU9RmFsc2UpCisKKyAgICAgICAgcmVwbyA9IGhnLnJlcG9zaXRvcnkobXl1aSwgbG9jYWxfcGF0aCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGVlciA9IGhnLnBlZXIobXl1aSwge30sIHVybCkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgZGllKCdSZXBvc2l0b3J5IGVycm9yJykKKyAgICAgICAgcmVwby5wdWxsKHBlZXIsIGhlYWRzPU5vbmUsIGZvcmNlPVRydWUpCisKKyAgICAgICAgdXBkYXRlYm9va21hcmtzKHJlcG8sIHBlZXIpCiAKICAgICByZXR1cm4gcmVwbwogCiBkZWYgcmV2X3RvX21hcmsocmV2KToKICAgICBnbG9iYWwgbWFya3MKLSAgICByZXR1cm4gbWFya3MuZnJvbV9yZXYocmV2KQorICAgIHJldHVybiBtYXJrcy5mcm9tX3JldihyZXYuaGV4KCkpCiAKIGRlZiBtYXJrX3RvX3JldihtYXJrKToKICAgICBnbG9iYWwgbWFya3MKQEAgLTM3NywxNyArNDI3LDI0IEBACiAgICAgZ2xvYmFsIHByZWZpeCwgbWFya3MsIG1vZGUKIAogICAgIGVuYW1lID0gJyVzLyVzJyAlIChraW5kLCBuYW1lKQotICAgIHRpcCA9IG1hcmtzLmdldF90aXAoZW5hbWUpCisgICAgdHJ5OgorICAgICAgICB0aXAgPSBtYXJrcy5nZXRfdGlwKGVuYW1lKQorICAgICAgICB0aXAgPSByZXBvW3RpcF0ucmV2KCkKKyAgICBleGNlcHQ6CisgICAgICAgIHRpcCA9IDAKIAogICAgIHJldnMgPSB4cmFuZ2UodGlwLCBoZWFkLnJldigpICsgMSkKLSAgICBjb3VudCA9IDAKLQotICAgIHJldnMgPSBbcmV2IGZvciByZXYgaW4gcmV2cyBpZiBub3QgbWFya3MuaXNfbWFya2VkKHJldildCisgICAgdG90YWwgPSBsZW4ocmV2cykKIAogICAgIGZvciByZXYgaW4gcmV2czoKIAogICAgICAgICBjID0gcmVwb1tyZXZdCi0gICAgICAgIChtYW5pZmVzdCwgdXNlciwgKHRpbWUsIHR6KSwgZmlsZXMsIGRlc2MsIGV4dHJhKSA9IHJlcG8uY2hhbmdlbG9nLnJlYWQoYy5ub2RlKCkpCisgICAgICAgIG5vZGUgPSBjLm5vZGUoKQorCisgICAgICAgIGlmIG1hcmtzLmlzX21hcmtlZChjLmhleCgpKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgKG1hbmlmZXN0LCB1c2VyLCAodGltZSwgdHopLCBmaWxlcywgZGVzYywgZXh0cmEpID0gcmVwby5jaGFuZ2Vsb2cucmVhZChub2RlKQogICAgICAgICByZXZfYnJhbmNoID0gZXh0cmFbJ2JyYW5jaCddCiAKICAgICAgICAgYXV0aG9yID0gIiVzICVkICVzIiAlIChmaXh1cF91c2VyKHVzZXIpLCB0aW1lLCBnaXR0eih0eikpCkBAIC0zOTcsNyArNDU0LDcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGNvbW1pdHRlciA9IGF1dGhvcgogCi0gICAgICAgIHBhcmVudHMgPSBbcCBmb3IgcCBpbiByZXBvLmNoYW5nZWxvZy5wYXJlbnRyZXZzKHJldikgaWYgcCA+PSAwXQorICAgICAgICBwYXJlbnRzID0gW3JlcG9bcF0gZm9yIHAgaW4gcmVwby5jaGFuZ2Vsb2cucGFyZW50cmV2cyhyZXYpIGlmIHAgPj0gMF0KIAogICAgICAgICBpZiBsZW4ocGFyZW50cykgPT0gMDoKICAgICAgICAgICAgIG1vZGlmaWVkID0gYy5tYW5pZmVzdCgpLmtleXMoKQpAQCAtNDM5LDcgKzQ5Niw3IEBACiAgICAgICAgIG1vZGlmaWVkX2ZpbmFsID0gZXhwb3J0X2ZpbGVzKGMuZmlsZWN0eChmKSBmb3IgZiBpbiBtb2RpZmllZCkKIAogICAgICAgICBwcmludCAiY29tbWl0ICVzLyVzIiAlIChwcmVmaXgsIGVuYW1lKQotICAgICAgICBwcmludCAibWFyayA6JWQiICUgKG1hcmtzLmdldF9tYXJrKHJldikpCisgICAgICAgIHByaW50ICJtYXJrIDolZCIgJSAobWFya3MuZ2V0X21hcmsoYy5oZXgoKSkpCiAgICAgICAgIHByaW50ICJhdXRob3IgJXMiICUgKGF1dGhvcikKICAgICAgICAgcHJpbnQgImNvbW1pdHRlciAlcyIgJSAoY29tbWl0dGVyKQogICAgICAgICBwcmludCAiZGF0YSAlZCIgJSAobGVuKGRlc2MpKQpAQCAtNDUwLDIyICs1MDcsMjIgQEAKICAgICAgICAgICAgIGlmIGxlbihwYXJlbnRzKSA+IDE6CiAgICAgICAgICAgICAgICAgcHJpbnQgIm1lcmdlIDolcyIgJSAocmV2X3RvX21hcmsocGFyZW50c1sxXSkpCiAKLSAgICAgICAgZm9yIGYgaW4gbW9kaWZpZWRfZmluYWw6Ci0gICAgICAgICAgICBwcmludCAiTSAlcyA6JXUgJXMiICUgZgogICAgICAgICBmb3IgZiBpbiByZW1vdmVkOgogICAgICAgICAgICAgcHJpbnQgIkQgJXMiICUgKGZpeF9maWxlX3BhdGgoZikpCisgICAgICAgIGZvciBmIGluIG1vZGlmaWVkX2ZpbmFsOgorICAgICAgICAgICAgcHJpbnQgIk0gJXMgOiV1ICVzIiAlIGYKICAgICAgICAgcHJpbnQKIAotICAgICAgICBjb3VudCArPSAxCi0gICAgICAgIGlmIChjb3VudCAlIDEwMCA9PSAwKToKLSAgICAgICAgICAgIHByaW50ICJwcm9ncmVzcyByZXZpc2lvbiAlZCAnJXMnICglZC8lZCkiICUgKHJldiwgbmFtZSwgY291bnQsIGxlbihyZXZzKSkKKyAgICAgICAgcHJvZ3Jlc3MgPSAocmV2IC0gdGlwKQorICAgICAgICBpZiAocHJvZ3Jlc3MgJSAxMDAgPT0gMCk6CisgICAgICAgICAgICBwcmludCAicHJvZ3Jlc3MgcmV2aXNpb24gJWQgJyVzJyAoJWQvJWQpIiAlIChyZXYsIG5hbWUsIHByb2dyZXNzLCB0b3RhbCkKIAogICAgICMgbWFrZSBzdXJlIHRoZSByZWYgaXMgdXBkYXRlZAogICAgIHByaW50ICJyZXNldCAlcy8lcyIgJSAocHJlZml4LCBlbmFtZSkKLSAgICBwcmludCAiZnJvbSA6JXUiICUgcmV2X3RvX21hcmsocmV2KQorICAgIHByaW50ICJmcm9tIDoldSIgJSByZXZfdG9fbWFyayhoZWFkKQogICAgIHByaW50CiAKLSAgICBtYXJrcy5zZXRfdGlwKGVuYW1lLCByZXYpCisgICAgbWFya3Muc2V0X3RpcChlbmFtZSwgaGVhZC5oZXgoKSkKIAogZGVmIGV4cG9ydF90YWcocmVwbywgdGFnKToKICAgICBleHBvcnRfcmVmKHJlcG8sIHRhZywgJ3RhZ3MnLCByZXBvW2hncmVmKHRhZyldKQpAQCAtNDk3LDE1ICs1NTQsMTIgQEAKICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKICAgICAgICAgcHJpbnQgIippbXBvcnQtbWFya3MgJXMiICUgcGF0aAogICAgIHByaW50ICIqZXhwb3J0LW1hcmtzICVzIiAlIHBhdGgKKyAgICBwcmludCAib3B0aW9uIgogCiAgICAgcHJpbnQKIAotZGVmIGJyYW5jaF90aXAocmVwbywgYnJhbmNoKToKLSAgICAjIG9sZGVyIHZlcnNpb25zIG9mIG1lcmN1cmlhbCBkb24ndCBoYXZlIHRoaXMKLSAgICBpZiBoYXNhdHRyKHJlcG8sICdicmFuY2h0aXAnKToKLSAgICAgICAgcmV0dXJuIHJlcG8uYnJhbmNodGlwKGJyYW5jaCkKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gcmVwby5icmFuY2h0YWdzKClbYnJhbmNoXQorZGVmIGJyYW5jaF90aXAoYnJhbmNoKToKKyAgICByZXR1cm4gYnJhbmNoZXNbYnJhbmNoXVstMV0KIAogZGVmIGdldF9icmFuY2hfdGlwKHJlcG8sIGJyYW5jaCk6CiAgICAgZ2xvYmFsIGJyYW5jaGVzCkBAIC01MTcsMjcgKzU3MSwyMSBAQAogICAgICMgdmVyaWZ5IHRoZXJlJ3Mgb25seSBvbmUgaGVhZAogICAgIGlmIChsZW4oaGVhZHMpID4gMSk6CiAgICAgICAgIHdhcm4oIkJyYW5jaCAnJXMnIGhhcyBtb3JlIHRoYW4gb25lIGhlYWQsIGNvbnNpZGVyIG1lcmdpbmciICUgYnJhbmNoKQotICAgICAgICByZXR1cm4gYnJhbmNoX3RpcChyZXBvLCBoZ3JlZihicmFuY2gpKQorICAgICAgICByZXR1cm4gYnJhbmNoX3RpcChoZ3JlZihicmFuY2gpKQogCiAgICAgcmV0dXJuIGhlYWRzWzBdCiAKIGRlZiBsaXN0X2hlYWQocmVwbywgY3VyKToKLSAgICBnbG9iYWwgZ19oZWFkLCBibWFya3MKKyAgICBnbG9iYWwgZ19oZWFkLCBibWFya3MsIGZha2VfYm1hcmsKIAotICAgIGhlYWQgPSBib29rbWFya3MucmVhZGN1cnJlbnQocmVwbykKLSAgICBpZiBoZWFkOgotICAgICAgICBub2RlID0gcmVwb1toZWFkXQotICAgIGVsc2U6Ci0gICAgICAgICMgZmFrZSBib29rbWFyayBmcm9tIGN1cnJlbnQgYnJhbmNoCi0gICAgICAgIGhlYWQgPSBjdXIKLSAgICAgICAgbm9kZSA9IHJlcG9bJy4nXQotICAgICAgICBpZiBub3Qgbm9kZToKLSAgICAgICAgICAgIG5vZGUgPSByZXBvWyd0aXAnXQotICAgICAgICBpZiBub3Qgbm9kZToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBoZWFkID09ICdkZWZhdWx0JzoKLSAgICAgICAgICAgIGhlYWQgPSAnbWFzdGVyJwotICAgICAgICBibWFya3NbaGVhZF0gPSBub2RlCisgICAgaWYgJ2RlZmF1bHQnIG5vdCBpbiBicmFuY2hlczoKKyAgICAgICAgIyBlbXB0eSByZXBvCisgICAgICAgIHJldHVybgorCisgICAgbm9kZSA9IHJlcG9bYnJhbmNoX3RpcCgnZGVmYXVsdCcpXQorICAgIGhlYWQgPSAnbWFzdGVyJyBpZiBub3QgJ21hc3RlcicgaW4gYm1hcmtzIGVsc2UgJ2RlZmF1bHQnCisgICAgZmFrZV9ibWFyayA9IGhlYWQKKyAgICBibWFya3NbaGVhZF0gPSBub2RlCiAKICAgICBoZWFkID0gZ2l0cmVmKGhlYWQpCiAgICAgcHJpbnQgIkByZWZzL2hlYWRzLyVzIEhFQUQiICUgaGVhZApAQCAtNTUxLDE1ICs1OTksMTcgQEAKICAgICAgICAgYm1hcmtzW2JtYXJrXSA9IHJlcG9bbm9kZV0KIAogICAgIGN1ciA9IHJlcG8uZGlyc3RhdGUuYnJhbmNoKCkKKyAgICBvcmlnID0gcGVlciBpZiBwZWVyIGVsc2UgcmVwbworCisgICAgZm9yIGJyYW5jaCwgaGVhZHMgaW4gb3JpZy5icmFuY2htYXAoKS5pdGVyaXRlbXMoKToKKyAgICAgICAgIyBvbmx5IG9wZW4gaGVhZHMKKyAgICAgICAgaGVhZHMgPSBbaCBmb3IgaCBpbiBoZWFkcyBpZiAnY2xvc2UnIG5vdCBpbiByZXBvLmNoYW5nZWxvZy5yZWFkKGgpWzVdXQorICAgICAgICBpZiBoZWFkczoKKyAgICAgICAgICAgIGJyYW5jaGVzW2JyYW5jaF0gPSBoZWFkcwogCiAgICAgbGlzdF9oZWFkKHJlcG8sIGN1cikKIAogICAgIGlmIHRyYWNrX2JyYW5jaGVzOgotICAgICAgICBmb3IgYnJhbmNoIGluIHJlcG8uYnJhbmNobWFwKCk6Ci0gICAgICAgICAgICBoZWFkcyA9IHJlcG8uYnJhbmNoaGVhZHMoYnJhbmNoKQotICAgICAgICAgICAgaWYgbGVuKGhlYWRzKToKLSAgICAgICAgICAgICAgICBicmFuY2hlc1ticmFuY2hdID0gaGVhZHMKLQogICAgICAgICBmb3IgYnJhbmNoIGluIGJyYW5jaGVzOgogICAgICAgICAgICAgcHJpbnQgIj8gcmVmcy9oZWFkcy9icmFuY2hlcy8lcyIgJSBnaXRyZWYoYnJhbmNoKQogCkBAIC01ODIsNiArNjMyLDcgQEAKICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKICAgICAgICAgcHJpbnQgImZlYXR1cmUgaW1wb3J0LW1hcmtzPSVzIiAlIHBhdGgKICAgICBwcmludCAiZmVhdHVyZSBleHBvcnQtbWFya3M9JXMiICUgcGF0aAorICAgIHByaW50ICJmZWF0dXJlIGZvcmNlIgogICAgIHN5cy5zdGRvdXQuZmx1c2goKQogCiAgICAgdG1wID0gZW5jb2RpbmcuZW5jb2RpbmcKQEAgLTY3MSw2ICs3MjIsMTEgQEAKICAgICAgICAgICAgIGRpZSgnVW5rbm93biBmaWxlIGNvbW1hbmQ6ICVzJyAlIGxpbmUpCiAgICAgICAgIGZpbGVzW3BhdGhdID0gZgogCisgICAgIyBvbmx5IGV4cG9ydCB0aGUgY29tbWl0cyBpZiB3ZSBhcmUgb24gYW4gaW50ZXJuYWwgcHJveHkgcmVwbworICAgIGlmIGRyeV9ydW4gYW5kIG5vdCBwZWVyOgorICAgICAgICBwYXJzZWRfcmVmc1tyZWZdID0gTm9uZQorICAgICAgICByZXR1cm4KKwogICAgIGRlZiBnZXRmaWxlY3R4KHJlcG8sIG1lbWN0eCwgZik6CiAgICAgICAgIG9mID0gZmlsZXNbZl0KICAgICAgICAgaWYgJ2RlbGV0ZWQnIGluIG9mOgpAQCAtNjkyLDE0ICs3NDgsMTQgQEAKICAgICAgICAgZXh0cmFbJ2NvbW1pdHRlciddID0gIiVzICV1ICV1IiAlIGNvbW1pdHRlcgogCiAgICAgaWYgZnJvbV9tYXJrOgotICAgICAgICBwMSA9IHJlcG8uY2hhbmdlbG9nLm5vZGUobWFya190b19yZXYoZnJvbV9tYXJrKSkKKyAgICAgICAgcDEgPSBtYXJrX3RvX3Jldihmcm9tX21hcmspCiAgICAgZWxzZToKLSAgICAgICAgcDEgPSAnXDAnICogMjAKKyAgICAgICAgcDEgPSAnMCcgKiA0MAogCiAgICAgaWYgbWVyZ2VfbWFyazoKLSAgICAgICAgcDIgPSByZXBvLmNoYW5nZWxvZy5ub2RlKG1hcmtfdG9fcmV2KG1lcmdlX21hcmspKQorICAgICAgICBwMiA9IG1hcmtfdG9fcmV2KG1lcmdlX21hcmspCiAgICAgZWxzZToKLSAgICAgICAgcDIgPSAnXDAnICogMjAKKyAgICAgICAgcDIgPSAnMCcgKiA0MAogCiAgICAgIwogICAgICMgSWYgZmlsZXMgY2hhbmdlZCBmcm9tIGFueSBvZiB0aGUgcGFyZW50cywgaGcgd2FudHMgdG8ga25vdywgYnV0IGluIGdpdCBpZgpAQCAtNzM1LDE0ICs3OTEsMTIgQEAKICAgICB0bXAgPSBlbmNvZGluZy5lbmNvZGluZwogICAgIGVuY29kaW5nLmVuY29kaW5nID0gJ3V0Zi04JwogCi0gICAgbm9kZSA9IHJlcG8uY29tbWl0Y3R4KGN0eCkKKyAgICBub2RlID0gaGdoZXgocmVwby5jb21taXRjdHgoY3R4KSkKIAogICAgIGVuY29kaW5nLmVuY29kaW5nID0gdG1wCiAKLSAgICByZXYgPSByZXBvW25vZGVdLnJldigpCi0KICAgICBwYXJzZWRfcmVmc1tyZWZdID0gbm9kZQotICAgIG1hcmtzLm5ld19tYXJrKHJldiwgY29tbWl0X21hcmspCisgICAgbWFya3MubmV3X21hcmsobm9kZSwgY29tbWl0X21hcmspCiAKIGRlZiBwYXJzZV9yZXNldChwYXJzZXIpOgogICAgIGdsb2JhbCBwYXJzZWRfcmVmcwpAQCAtNzU4LDggKzgxMiwxMSBAQAogICAgIGZyb21fbWFyayA9IHBhcnNlci5nZXRfbWFyaygpCiAgICAgcGFyc2VyLm5leHQoKQogCi0gICAgbm9kZSA9IHBhcnNlci5yZXBvLmNoYW5nZWxvZy5ub2RlKG1hcmtfdG9fcmV2KGZyb21fbWFyaykpCi0gICAgcGFyc2VkX3JlZnNbcmVmXSA9IG5vZGUKKyAgICB0cnk6CisgICAgICAgIHJldiA9IG1hcmtfdG9fcmV2KGZyb21fbWFyaykKKyAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgIHJldiA9IE5vbmUKKyAgICBwYXJzZWRfcmVmc1tyZWZdID0gcmV2CiAKIGRlZiBwYXJzZV90YWcocGFyc2VyKToKICAgICBuYW1lID0gcGFyc2VyWzFdCkBAIC03NzUsNyArODMyLDcgQEAKIAogZGVmIHdyaXRlX3RhZyhyZXBvLCB0YWcsIG5vZGUsIG1zZywgYXV0aG9yKToKICAgICBicmFuY2ggPSByZXBvW25vZGVdLmJyYW5jaCgpCi0gICAgdGlwID0gYnJhbmNoX3RpcChyZXBvLCBicmFuY2gpCisgICAgdGlwID0gYnJhbmNoX3RpcChicmFuY2gpCiAgICAgdGlwID0gcmVwb1t0aXBdCiAKICAgICBkZWYgZ2V0ZmlsZWN0eChyZXBvLCBtZW1jdHgsIGYpOgpAQCAtNzg0LDE4ICs4NDEsMjggQEAKICAgICAgICAgICAgIGRhdGEgPSBmY3R4LmRhdGEoKQogICAgICAgICBleGNlcHQgZXJyb3IuTWFuaWZlc3RMb29rdXBFcnJvcjoKICAgICAgICAgICAgIGRhdGEgPSAiIgotICAgICAgICBjb250ZW50ID0gZGF0YSArICIlcyAlc1xuIiAlIChoZ2hleChub2RlKSwgdGFnKQorICAgICAgICBjb250ZW50ID0gZGF0YSArICIlcyAlc1xuIiAlIChub2RlLCB0YWcpCiAgICAgICAgIHJldHVybiBjb250ZXh0Lm1lbWZpbGVjdHgoZiwgY29udGVudCwgRmFsc2UsIEZhbHNlLCBOb25lKQogCiAgICAgcDEgPSB0aXAuaGV4KCkKLSAgICBwMiA9ICdcMCcgKiAyMAotICAgIGlmIG5vdCBhdXRob3I6Ci0gICAgICAgIGF1dGhvciA9IChOb25lLCAwLCAwKQotICAgIHVzZXIsIGRhdGUsIHR6ID0gYXV0aG9yCisgICAgcDIgPSAnMCcgKiA0MAorICAgIGlmIGF1dGhvcjoKKyAgICAgICAgdXNlciwgZGF0ZSwgdHogPSBhdXRob3IKKyAgICAgICAgZGF0ZV90eiA9IChkYXRlLCB0eikKKyAgICBlbHNlOgorICAgICAgICBjbWQgPSBbJ2dpdCcsICd2YXInLCAnR0lUX0NPTU1JVFRFUl9JREVOVCddCisgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKKyAgICAgICAgb3V0cHV0LCBfID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCisgICAgICAgIG0gPSByZS5tYXRjaCgnXi4qIDwuKj4nLCBvdXRwdXQpCisgICAgICAgIGlmIG06CisgICAgICAgICAgICB1c2VyID0gbS5ncm91cCgwKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdXNlciA9IHJlcG8udWkudXNlcm5hbWUoKQorICAgICAgICBkYXRlX3R6ID0gTm9uZQogCiAgICAgY3R4ID0gY29udGV4dC5tZW1jdHgocmVwbywgKHAxLCBwMiksIG1zZywKICAgICAgICAgICAgIFsnLmhndGFncyddLCBnZXRmaWxlY3R4LAotICAgICAgICAgICAgdXNlciwgKGRhdGUsIHR6KSwgeydicmFuY2gnIDogYnJhbmNofSkKKyAgICAgICAgICAgIHVzZXIsIGRhdGVfdHosIHsnYnJhbmNoJyA6IGJyYW5jaH0pCiAKICAgICB0bXAgPSBlbmNvZGluZy5lbmNvZGluZwogICAgIGVuY29kaW5nLmVuY29kaW5nID0gJ3V0Zi04JwpAQCAtODA0LDEyICs4NzEsMTMyIEBACiAKICAgICBlbmNvZGluZy5lbmNvZGluZyA9IHRtcAogCi0gICAgcmV0dXJuIHRhZ25vZGUKKyAgICByZXR1cm4gKHRhZ25vZGUsIGJyYW5jaCkKKworZGVmIGNoZWNraGVhZHNfYm1hcmsocmVwbywgcmVmLCBjdHgpOgorICAgIGJtYXJrID0gcmVmW2xlbigncmVmcy9oZWFkcy8nKTpdCisgICAgaWYgbm90IGJtYXJrIGluIGJtYXJrczoKKyAgICAgICAgIyBuZXcgYm1hcmsKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGN0eF9vbGQgPSBibWFya3NbYm1hcmtdCisgICAgY3R4X25ldyA9IGN0eAorICAgIGlmIG5vdCByZXBvLmNoYW5nZWxvZy5kZXNjZW5kYW50KGN0eF9vbGQucmV2KCksIGN0eF9uZXcucmV2KCkpOgorICAgICAgICBpZiBmb3JjZV9wdXNoOgorICAgICAgICAgICAgcHJpbnQgIm9rICVzIGZvcmNlZCB1cGRhdGUiICUgcmVmCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCAiZXJyb3IgJXMgbm9uLWZhc3QgZm9yd2FyZCIgJSByZWYKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgcmV0dXJuIFRydWUKKworZGVmIGNoZWNraGVhZHMocmVwbywgcmVtb3RlLCBwX3JldnMpOgorCisgICAgcmVtb3RlbWFwID0gcmVtb3RlLmJyYW5jaG1hcCgpCisgICAgaWYgbm90IHJlbW90ZW1hcDoKKyAgICAgICAgIyBlbXB0eSByZXBvCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBuZXcgPSB7fQorICAgIHJldCA9IFRydWUKKworICAgIGZvciBub2RlLCByZWYgaW4gcF9yZXZzLml0ZXJpdGVtcygpOgorICAgICAgICBjdHggPSByZXBvW25vZGVdCisgICAgICAgIGJyYW5jaCA9IGN0eC5icmFuY2goKQorICAgICAgICBpZiBub3QgYnJhbmNoIGluIHJlbW90ZW1hcDoKKyAgICAgICAgICAgICMgbmV3IGJyYW5jaAorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgbm90IHJlZi5zdGFydHN3aXRoKCdyZWZzL2hlYWRzL2JyYW5jaGVzJyk6CisgICAgICAgICAgICBpZiByZWYuc3RhcnRzd2l0aCgncmVmcy9oZWFkcy8nKToKKyAgICAgICAgICAgICAgICBpZiBub3QgY2hlY2toZWFkc19ibWFyayhyZXBvLCByZWYsIGN0eCk6CisgICAgICAgICAgICAgICAgICAgIHJldCA9IEZhbHNlCisKKyAgICAgICAgICAgICMgb25seSBjaGVjayBicmFuY2hlcworICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgbmV3LnNldGRlZmF1bHQoYnJhbmNoLCBbXSkuYXBwZW5kKGN0eC5yZXYoKSkKKworICAgIGZvciBicmFuY2gsIGhlYWRzIGluIG5ldy5pdGVyaXRlbXMoKToKKyAgICAgICAgb2xkID0gW3JlcG8uY2hhbmdlbG9nLnJldih4KSBmb3IgeCBpbiByZW1vdGVtYXBbYnJhbmNoXV0KKyAgICAgICAgZm9yIHJldiBpbiBoZWFkczoKKyAgICAgICAgICAgIGlmIGNoZWNrX3ZlcnNpb24oMiwgMyk6CisgICAgICAgICAgICAgICAgYW5jZXN0b3JzID0gcmVwby5jaGFuZ2Vsb2cuYW5jZXN0b3JzKFtyZXZdLCBzdG9wcmV2PW1pbihvbGQpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhbmNlc3RvcnMgPSByZXBvLmNoYW5nZWxvZy5hbmNlc3RvcnMocmV2KQorICAgICAgICAgICAgZm91bmQgPSBGYWxzZQorCisgICAgICAgICAgICBmb3IgeCBpbiBvbGQ6CisgICAgICAgICAgICAgICAgaWYgeCBpbiBhbmNlc3RvcnM6CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICBpZiBmb3VuZDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBub2RlID0gcmVwby5jaGFuZ2Vsb2cubm9kZShyZXYpCisgICAgICAgICAgICByZWYgPSBwX3JldnNbbm9kZV0KKyAgICAgICAgICAgIGlmIGZvcmNlX3B1c2g6CisgICAgICAgICAgICAgICAgcHJpbnQgIm9rICVzIGZvcmNlZCB1cGRhdGUiICUgcmVmCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50ICJlcnJvciAlcyBub24tZmFzdCBmb3J3YXJkIiAlIHJlZgorICAgICAgICAgICAgICAgIHJldCA9IEZhbHNlCisKKyAgICByZXR1cm4gcmV0CisKK2RlZiBwdXNoX3Vuc2FmZShyZXBvLCByZW1vdGUsIHBhcnNlZF9yZWZzLCBwX3JldnMpOgorCisgICAgZm9yY2UgPSBmb3JjZV9wdXNoCisKKyAgICBmY2kgPSBkaXNjb3ZlcnkuZmluZGNvbW1vbmluY29taW5nCisgICAgY29tbW9uaW5jID0gZmNpKHJlcG8sIHJlbW90ZSwgZm9yY2U9Zm9yY2UpCisgICAgY29tbW9uLCBfLCByZW1vdGVoZWFkcyA9IGNvbW1vbmluYworCisgICAgaWYgbm90IGNoZWNraGVhZHMocmVwbywgcmVtb3RlLCBwX3JldnMpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgY2cgPSByZXBvLmdldGJ1bmRsZSgncHVzaCcsIGhlYWRzPWxpc3QocF9yZXZzKSwgY29tbW9uPWNvbW1vbikKKworICAgIHVuYnVuZGxlID0gcmVtb3RlLmNhcGFibGUoJ3VuYnVuZGxlJykKKyAgICBpZiB1bmJ1bmRsZToKKyAgICAgICAgaWYgZm9yY2U6CisgICAgICAgICAgICByZW1vdGVoZWFkcyA9IFsnZm9yY2UnXQorICAgICAgICByZXR1cm4gcmVtb3RlLnVuYnVuZGxlKGNnLCByZW1vdGVoZWFkcywgJ3B1c2gnKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiByZW1vdGUuYWRkY2hhbmdlZ3JvdXAoY2csICdwdXNoJywgcmVwby51cmwoKSkKKworZGVmIHB1c2gocmVwbywgcmVtb3RlLCBwYXJzZWRfcmVmcywgcF9yZXZzKToKKyAgICBpZiBoYXNhdHRyKHJlbW90ZSwgJ2NhbnB1c2gnKSBhbmQgbm90IHJlbW90ZS5jYW5wdXNoKCk6CisgICAgICAgIHByaW50ICJlcnJvciBjYW5ub3QgcHVzaCIKKworICAgIGlmIG5vdCBwX3JldnM6CisgICAgICAgICMgbm90aGluZyB0byBwdXNoCisgICAgICAgIHJldHVybgorCisgICAgbG9jayA9IE5vbmUKKyAgICB1bmJ1bmRsZSA9IHJlbW90ZS5jYXBhYmxlKCd1bmJ1bmRsZScpCisgICAgaWYgbm90IHVuYnVuZGxlOgorICAgICAgICBsb2NrID0gcmVtb3RlLmxvY2soKQorICAgIHRyeToKKyAgICAgICAgcmV0ID0gcHVzaF91bnNhZmUocmVwbywgcmVtb3RlLCBwYXJzZWRfcmVmcywgcF9yZXZzKQorICAgIGZpbmFsbHk6CisgICAgICAgIGlmIGxvY2sgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBsb2NrLnJlbGVhc2UoKQorCisgICAgcmV0dXJuIHJldAorCitkZWYgY2hlY2tfdGlwKHJlZiwga2luZCwgbmFtZSwgaGVhZHMpOgorICAgIHRyeToKKyAgICAgICAgZW5hbWUgPSAnJXMvJXMnICUgKGtpbmQsIG5hbWUpCisgICAgICAgIHRpcCA9IG1hcmtzLmdldF90aXAoZW5hbWUpCisgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiB0aXAgaW4gaGVhZHMKIAogZGVmIGRvX2V4cG9ydChwYXJzZXIpOgogICAgIGdsb2JhbCBwYXJzZWRfcmVmcywgYm1hcmtzLCBwZWVyCiAKICAgICBwX2JtYXJrcyA9IFtdCisgICAgcF9yZXZzID0ge30KIAogICAgIHBhcnNlci5uZXh0KCkKIApAQCAtODI3LDcyICsxMDE0LDExNCBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZGllKCd1bmhhbmRsZWQgZXhwb3J0IGNvbW1hbmQ6ICVzJyAlIGxpbmUpCiAKKyAgICBuZWVkX2ZldGNoID0gRmFsc2UKKwogICAgIGZvciByZWYsIG5vZGUgaW4gcGFyc2VkX3JlZnMuaXRlcml0ZW1zKCk6CisgICAgICAgIGJub2RlID0gaGdiaW4obm9kZSkgaWYgbm9kZSBlbHNlIE5vbmUKICAgICAgICAgaWYgcmVmLnN0YXJ0c3dpdGgoJ3JlZnMvaGVhZHMvYnJhbmNoZXMnKToKICAgICAgICAgICAgIGJyYW5jaCA9IHJlZltsZW4oJ3JlZnMvaGVhZHMvYnJhbmNoZXMvJyk6XQotICAgICAgICAgICAgaWYgYnJhbmNoIGluIGJyYW5jaGVzIGFuZCBub2RlIGluIGJyYW5jaGVzW2JyYW5jaF06CisgICAgICAgICAgICBpZiBicmFuY2ggaW4gYnJhbmNoZXMgYW5kIGJub2RlIGluIGJyYW5jaGVzW2JyYW5jaF06CiAgICAgICAgICAgICAgICAgIyB1cCB0byBkYXRlCiAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgaWYgcGVlcjoKKyAgICAgICAgICAgICAgICByZW1vdGVtYXAgPSBwZWVyLmJyYW5jaG1hcCgpCisgICAgICAgICAgICAgICAgaWYgcmVtb3RlbWFwIGFuZCBicmFuY2ggaW4gcmVtb3RlbWFwOgorICAgICAgICAgICAgICAgICAgICBoZWFkcyA9IFtoZ2hleChlKSBmb3IgZSBpbiByZW1vdGVtYXBbYnJhbmNoXV0KKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGNoZWNrX3RpcChyZWYsICdicmFuY2hlcycsIGJyYW5jaCwgaGVhZHMpOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgImVycm9yICVzIGZldGNoIGZpcnN0IiAlIHJlZgorICAgICAgICAgICAgICAgICAgICAgICAgbmVlZF9mZXRjaCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIHBfcmV2c1tibm9kZV0gPSByZWYKICAgICAgICAgICAgIHByaW50ICJvayAlcyIgJSByZWYKICAgICAgICAgZWxpZiByZWYuc3RhcnRzd2l0aCgncmVmcy9oZWFkcy8nKToKICAgICAgICAgICAgIGJtYXJrID0gcmVmW2xlbigncmVmcy9oZWFkcy8nKTpdCi0gICAgICAgICAgICBwX2JtYXJrcy5hcHBlbmQoKGJtYXJrLCBub2RlKSkKLSAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBuZXcgPSBub2RlCisgICAgICAgICAgICBvbGQgPSBibWFya3NbYm1hcmtdLmhleCgpIGlmIGJtYXJrIGluIGJtYXJrcyBlbHNlICcnCisKKyAgICAgICAgICAgIGlmIG9sZCA9PSBuZXc6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgcHJpbnQgIm9rICVzIiAlIHJlZgorICAgICAgICAgICAgaWYgYm1hcmsgIT0gZmFrZV9ibWFyayBhbmQgXAorICAgICAgICAgICAgICAgICAgICBub3QgKGJtYXJrID09ICdtYXN0ZXInIGFuZCBibWFyayBub3QgaW4gcGFyc2VyLnJlcG8uX2Jvb2ttYXJrcyk6CisgICAgICAgICAgICAgICAgcF9ibWFya3MuYXBwZW5kKChyZWYsIGJtYXJrLCBvbGQsIG5ldykpCisKKyAgICAgICAgICAgIGlmIHBlZXI6CisgICAgICAgICAgICAgICAgcmVtb3RlX29sZCA9IHBlZXIubGlzdGtleXMoJ2Jvb2ttYXJrcycpLmdldChibWFyaykKKyAgICAgICAgICAgICAgICBpZiByZW1vdGVfb2xkOgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgY2hlY2tfdGlwKHJlZiwgJ2Jvb2ttYXJrcycsIGJtYXJrLCByZW1vdGVfb2xkKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJlcnJvciAlcyBmZXRjaCBmaXJzdCIgJSByZWYKKyAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRfZmV0Y2ggPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBwX3JldnNbYm5vZGVdID0gcmVmCiAgICAgICAgIGVsaWYgcmVmLnN0YXJ0c3dpdGgoJ3JlZnMvdGFncy8nKToKKyAgICAgICAgICAgIGlmIGRyeV9ydW46CisgICAgICAgICAgICAgICAgcHJpbnQgIm9rICVzIiAlIHJlZgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICB0YWcgPSByZWZbbGVuKCdyZWZzL3RhZ3MvJyk6XQogICAgICAgICAgICAgdGFnID0gaGdyZWYodGFnKQogICAgICAgICAgICAgYXV0aG9yLCBtc2cgPSBwYXJzZWRfdGFncy5nZXQodGFnLCAoTm9uZSwgTm9uZSkpCiAgICAgICAgICAgICBpZiBtb2RlID09ICdnaXQnOgogICAgICAgICAgICAgICAgIGlmIG5vdCBtc2c6Ci0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICdBZGRlZCB0YWcgJXMgZm9yIGNoYW5nZXNldCAlcycgJSAodGFnLCBoZ2hleChub2RlWzo2XSkpOwotICAgICAgICAgICAgICAgIHdyaXRlX3RhZyhwYXJzZXIucmVwbywgdGFnLCBub2RlLCBtc2csIGF1dGhvcikKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gJ0FkZGVkIHRhZyAlcyBmb3IgY2hhbmdlc2V0ICVzJyAlICh0YWcsIG5vZGVbOjEyXSk7CisgICAgICAgICAgICAgICAgdGFnbm9kZSwgYnJhbmNoID0gd3JpdGVfdGFnKHBhcnNlci5yZXBvLCB0YWcsIG5vZGUsIG1zZywgYXV0aG9yKQorICAgICAgICAgICAgICAgIHBfcmV2c1t0YWdub2RlXSA9ICdyZWZzL2hlYWRzL2JyYW5jaGVzLycgKyBnaXRyZWYoYnJhbmNoKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBmcCA9IHBhcnNlci5yZXBvLm9wZW5lcignbG9jYWx0YWdzJywgJ2EnKQotICAgICAgICAgICAgICAgIGZwLndyaXRlKCclcyAlc1xuJyAlIChoZ2hleChub2RlKSwgdGFnKSkKKyAgICAgICAgICAgICAgICBmcC53cml0ZSgnJXMgJXNcbicgJSAobm9kZSwgdGFnKSkKICAgICAgICAgICAgICAgICBmcC5jbG9zZSgpCisgICAgICAgICAgICBwX3JldnNbYm5vZGVdID0gcmVmCiAgICAgICAgICAgICBwcmludCAib2sgJXMiICUgcmVmCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAjIHRyYW5zcG9ydC1oZWxwZXIvZmFzdC1leHBvcnQgYnVncwogICAgICAgICAgICAgY29udGludWUKIAorICAgIGlmIG5lZWRfZmV0Y2g6CisgICAgICAgIHByaW50CisgICAgICAgIHJldHVybgorCisgICAgaWYgZHJ5X3J1bjoKKyAgICAgICAgaWYgcGVlciBhbmQgbm90IGZvcmNlX3B1c2g6CisgICAgICAgICAgICBjaGVja2hlYWRzKHBhcnNlci5yZXBvLCBwZWVyLCBwX3JldnMpCisgICAgICAgIHByaW50CisgICAgICAgIHJldHVybgorCiAgICAgaWYgcGVlcjoKLSAgICAgICAgcGFyc2VyLnJlcG8ucHVzaChwZWVyLCBmb3JjZT1mb3JjZV9wdXNoLCBuZXdicmFuY2g9VHJ1ZSkKKyAgICAgICAgaWYgbm90IHB1c2gocGFyc2VyLnJlcG8sIHBlZXIsIHBhcnNlZF9yZWZzLCBwX3JldnMpOgorICAgICAgICAgICAgIyBkbyBub3QgdXBkYXRlIGJvb2ttYXJrcworICAgICAgICAgICAgcHJpbnQKKyAgICAgICAgICAgIHJldHVybgogCi0gICAgIyBoYW5kbGUgYm9va21hcmtzCi0gICAgZm9yIGJtYXJrLCBub2RlIGluIHBfYm1hcmtzOgotICAgICAgICByZWYgPSAncmVmcy9oZWFkcy8nICsgYm1hcmsKLSAgICAgICAgbmV3ID0gaGdoZXgobm9kZSkKLQotICAgICAgICBpZiBibWFyayBpbiBibWFya3M6Ci0gICAgICAgICAgICBvbGQgPSBibWFya3NbYm1hcmtdLmhleCgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvbGQgPSAnJwotCi0gICAgICAgIGlmIG9sZCA9PSBuZXc6Ci0gICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgIGlmIGJtYXJrID09ICdtYXN0ZXInIGFuZCAnbWFzdGVyJyBub3QgaW4gcGFyc2VyLnJlcG8uX2Jvb2ttYXJrczoKLSAgICAgICAgICAgICMgZmFrZSBib29rbWFyawotICAgICAgICAgICAgcHJpbnQgIm9rICVzIiAlIHJlZgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZWxpZiBib29rbWFya3MucHVzaGJvb2ttYXJrKHBhcnNlci5yZXBvLCBibWFyaywgb2xkLCBuZXcpOgotICAgICAgICAgICAgIyB1cGRhdGVkIGxvY2FsbHkKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHByaW50ICJlcnJvciAlcyIgJSByZWYKLSAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgaWYgcGVlcjoKLSAgICAgICAgICAgIHJiID0gcGVlci5saXN0a2V5cygnYm9va21hcmtzJykKLSAgICAgICAgICAgIG9sZCA9IHJiLmdldChibWFyaywgJycpCisgICAgICAgICMgdXBkYXRlIHJlbW90ZSBib29rbWFya3MKKyAgICAgICAgcmVtb3RlX2JtYXJrcyA9IHBlZXIubGlzdGtleXMoJ2Jvb2ttYXJrcycpCisgICAgICAgIGZvciByZWYsIGJtYXJrLCBvbGQsIG5ldyBpbiBwX2JtYXJrczoKKyAgICAgICAgICAgIGlmIGZvcmNlX3B1c2g6CisgICAgICAgICAgICAgICAgb2xkID0gcmVtb3RlX2JtYXJrcy5nZXQoYm1hcmssICcnKQogICAgICAgICAgICAgaWYgbm90IHBlZXIucHVzaGtleSgnYm9va21hcmtzJywgYm1hcmssIG9sZCwgbmV3KToKICAgICAgICAgICAgICAgICBwcmludCAiZXJyb3IgJXMiICUgcmVmCi0gICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICBwcmludCAib2sgJXMiICUgcmVmCisgICAgZWxzZToKKyAgICAgICAgIyB1cGRhdGUgbG9jYWwgYm9va21hcmtzCisgICAgICAgIGZvciByZWYsIGJtYXJrLCBvbGQsIG5ldyBpbiBwX2JtYXJrczoKKyAgICAgICAgICAgIGlmIG5vdCBib29rbWFya3MucHVzaGJvb2ttYXJrKHBhcnNlci5yZXBvLCBibWFyaywgb2xkLCBuZXcpOgorICAgICAgICAgICAgICAgIHByaW50ICJlcnJvciAlcyIgJSByZWYKIAogICAgIHByaW50CiAKK2RlZiBkb19vcHRpb24ocGFyc2VyKToKKyAgICBnbG9iYWwgZHJ5X3J1biwgZm9yY2VfcHVzaAorICAgIF8sIGtleSwgdmFsdWUgPSBwYXJzZXIubGluZS5zcGxpdCgnICcpCisgICAgaWYga2V5ID09ICdkcnktcnVuJzoKKyAgICAgICAgZHJ5X3J1biA9ICh2YWx1ZSA9PSAndHJ1ZScpCisgICAgICAgIHByaW50ICdvaycKKyAgICBlbGlmIGtleSA9PSAnZm9yY2UnOgorICAgICAgICBmb3JjZV9wdXNoID0gKHZhbHVlID09ICd0cnVlJykKKyAgICAgICAgcHJpbnQgJ29rJworICAgIGVsc2U6CisgICAgICAgIHByaW50ICd1bnN1cHBvcnRlZCcKKwogZGVmIGZpeF9wYXRoKGFsaWFzLCByZXBvLCBvcmlnX3VybCk6CiAgICAgdXJsID0gdXJscGFyc2UudXJscGFyc2Uob3JpZ191cmwsICdmaWxlJykKICAgICBpZiB1cmwuc2NoZW1lICE9ICdmaWxlJyBvciBvcy5wYXRoLmlzYWJzKHVybC5wYXRoKToKQEAgLTkwMiwxMiArMTEzMSwxNCBAQAogICAgIHN1YnByb2Nlc3MuY2FsbChjbWQpCiAKIGRlZiBtYWluKGFyZ3MpOgotICAgIGdsb2JhbCBwcmVmaXgsIGRpcm5hbWUsIGJyYW5jaGVzLCBibWFya3MKKyAgICBnbG9iYWwgcHJlZml4LCBnaXRkaXIsIGRpcm5hbWUsIGJyYW5jaGVzLCBibWFya3MKICAgICBnbG9iYWwgbWFya3MsIGJsb2JfbWFya3MsIHBhcnNlZF9yZWZzCiAgICAgZ2xvYmFsIHBlZXIsIG1vZGUsIGJhZF9tYWlsLCBiYWRfbmFtZQogICAgIGdsb2JhbCB0cmFja19icmFuY2hlcywgZm9yY2VfcHVzaCwgaXNfdG1wCiAgICAgZ2xvYmFsIHBhcnNlZF90YWdzCiAgICAgZ2xvYmFsIGZpbGVub2RlcworICAgIGdsb2JhbCBmYWtlX2JtYXJrLCBoZ192ZXJzaW9uCisgICAgZ2xvYmFsIGRyeV9ydW4KIAogICAgIGFsaWFzID0gYXJnc1sxXQogICAgIHVybCA9IGFyZ3NbMl0KQEAgLTkxNSw3ICsxMTQ2LDcgQEAKIAogICAgIGhnX2dpdF9jb21wYXQgPSBnZXRfY29uZmlnX2Jvb2woJ3JlbW90ZS1oZy5oZy1naXQtY29tcGF0JykKICAgICB0cmFja19icmFuY2hlcyA9IGdldF9jb25maWdfYm9vbCgncmVtb3RlLWhnLnRyYWNrLWJyYW5jaGVzJywgVHJ1ZSkKLSAgICBmb3JjZV9wdXNoID0gZ2V0X2NvbmZpZ19ib29sKCdyZW1vdGUtaGcuZm9yY2UtcHVzaCcpCisgICAgZm9yY2VfcHVzaCA9IEZhbHNlCiAKICAgICBpZiBoZ19naXRfY29tcGF0OgogICAgICAgICBtb2RlID0gJ2hnJwpAQCAtOTQxLDYgKzExNzIsMTIgQEAKICAgICBtYXJrcyA9IE5vbmUKICAgICBwYXJzZWRfdGFncyA9IHt9CiAgICAgZmlsZW5vZGVzID0ge30KKyAgICBmYWtlX2JtYXJrID0gTm9uZQorICAgIHRyeToKKyAgICAgICAgaGdfdmVyc2lvbiA9IHR1cGxlKGludChlKSBmb3IgZSBpbiB1dGlsLnZlcnNpb24oKS5zcGxpdCgnLicpKQorICAgIGV4Y2VwdDoKKyAgICAgICAgaGdfdmVyc2lvbiA9IE5vbmUKKyAgICBkcnlfcnVuID0gRmFsc2UKIAogICAgIHJlcG8gPSBnZXRfcmVwbyh1cmwsIGFsaWFzKQogICAgIHByZWZpeCA9ICdyZWZzL2hnLyVzJyAlIGFsaWFzCkBAIC05NDgsMTEgKzExODUsOCBAQAogICAgIGlmIG5vdCBpc190bXA6CiAgICAgICAgIGZpeF9wYXRoKGFsaWFzLCBwZWVyIG9yIHJlcG8sIHVybCkKIAotICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkaXJuYW1lKToKLSAgICAgICAgb3MubWFrZWRpcnMoZGlybmFtZSkKLQogICAgIG1hcmtzX3BhdGggPSBvcy5wYXRoLmpvaW4oZGlybmFtZSwgJ21hcmtzLWhnJykKLSAgICBtYXJrcyA9IE1hcmtzKG1hcmtzX3BhdGgpCisgICAgbWFya3MgPSBNYXJrcyhtYXJrc19wYXRoLCByZXBvKQogCiAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CiAgICAgICAgIGltcG9ydCBtc3ZjcnQKQEAgLTk2OCw2ICsxMjAyLDggQEAKICAgICAgICAgICAgIGRvX2ltcG9ydChwYXJzZXIpCiAgICAgICAgIGVsaWYgcGFyc2VyLmNoZWNrKCdleHBvcnQnKToKICAgICAgICAgICAgIGRvX2V4cG9ydChwYXJzZXIpCisgICAgICAgIGVsaWYgcGFyc2VyLmNoZWNrKCdvcHRpb24nKToKKyAgICAgICAgICAgIGRvX29wdGlvbihwYXJzZXIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBkaWUoJ3VuaGFuZGxlZCBjb21tYW5kOiAlcycgJSBsaW5lKQogICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1ienIuc2ggYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtYnpyLnNoCmluZGV4IDVkZmEwNzAuLmRjZTI4MWYgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1ienIuc2gKKysrIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWJ6ci5zaApAQCAtMTIsODYgKzEyLDkwIEBACiAJdGVzdF9kb25lCiBmaQogCi1pZiAhICIkUFlUSE9OX1BBVEgiIC1jICdpbXBvcnQgYnpybGliJzsgdGhlbgoraWYgISBweXRob24gLWMgJ2ltcG9ydCBienJsaWInOyB0aGVuCiAJc2tpcF9hbGw9J3NraXBwaW5nIHJlbW90ZS1ienIgdGVzdHM7IGJ6ciBub3QgYXZhaWxhYmxlJwogCXRlc3RfZG9uZQogZmkKIAogY2hlY2sgKCkgewotCShjZCAkMSAmJgotCWdpdCBsb2cgLS1mb3JtYXQ9JyVzJyAtMSAmJgotCWdpdCBzeW1ib2xpYy1yZWYgSEVBRCkgPiBhY3R1YWwgJiYKLQkoZWNobyAkMiAmJgotCWVjaG8gInJlZnMvaGVhZHMvJDMiKSA+IGV4cGVjdGVkICYmCisJZWNobyAkMyA+IGV4cGVjdGVkICYmCisJZ2l0IC0tZ2l0LWRpcj0kMS8uZ2l0IGxvZyAtLWZvcm1hdD0nJXMnIC0xICQyID4gYWN0dWFsCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiB9CiAKIGJ6ciB3aG9hbWkgIkEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+IgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uaW5nJyAnCi0gIChienIgaW5pdCBienJyZXBvICYmCi0gIGNkIGJ6cnJlcG8gJiYKLSAgZWNobyBvbmUgPiBjb250ZW50ICYmCi0gIGJ6ciBhZGQgY29udGVudCAmJgotICBienIgY29tbWl0IC1tIG9uZQotICApICYmCisJKAorCWJ6ciBpbml0IGJ6cnJlcG8gJiYKKwljZCBienJyZXBvICYmCisJZWNobyBvbmUgPiBjb250ZW50ICYmCisJYnpyIGFkZCBjb250ZW50ICYmCisJYnpyIGNvbW1pdCAtbSBvbmUKKwkpICYmCiAKLSAgZ2l0IGNsb25lICJienI6OiRQV0QvYnpycmVwbyIgZ2l0cmVwbyAmJgotICBjaGVjayBnaXRyZXBvIG9uZSBtYXN0ZXIKKwlnaXQgY2xvbmUgImJ6cjo6YnpycmVwbyIgZ2l0cmVwbyAmJgorCWNoZWNrIGdpdHJlcG8gSEVBRCBvbmUKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZycgJwotICAoY2QgYnpycmVwbyAmJgotICBlY2hvIHR3byA+IGNvbnRlbnQgJiYKLSAgYnpyIGNvbW1pdCAtbSB0d28KLSAgKSAmJgorCSgKKwljZCBienJyZXBvICYmCisJZWNobyB0d28gPiBjb250ZW50ICYmCisJYnpyIGNvbW1pdCAtbSB0d28KKwkpICYmCiAKLSAgKGNkIGdpdHJlcG8gJiYgZ2l0IHB1bGwpICYmCisJKGNkIGdpdHJlcG8gJiYgZ2l0IHB1bGwpICYmCiAKLSAgY2hlY2sgZ2l0cmVwbyB0d28gbWFzdGVyCisJY2hlY2sgZ2l0cmVwbyBIRUFEIHR3bwogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoaW5nJyAnCi0gIChjZCBnaXRyZXBvICYmCi0gIGVjaG8gdGhyZWUgPiBjb250ZW50ICYmCi0gIGdpdCBjb21taXQgLWEgLW0gdGhyZWUgJiYKLSAgZ2l0IHB1c2gKLSAgKSAmJgorCSgKKwljZCBnaXRyZXBvICYmCisJZWNobyB0aHJlZSA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIHRocmVlICYmCisJZ2l0IHB1c2gKKwkpICYmCiAKLSAgZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCi0gIGNhdCBienJyZXBvL2NvbnRlbnQgPiBhY3R1YWwgJiYKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCisJY2F0IGJ6cnJlcG8vY29udGVudCA+IGFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyb3VuZHRyaXAnICcKLSAgKGNkIGdpdHJlcG8gJiYKLSAgZ2l0IHB1bGwgJiYKLSAgZ2l0IGxvZyAtLWZvcm1hdD0iJXMiIC0xIG9yaWdpbi9tYXN0ZXIgPiBhY3R1YWwpICYmCi0gIGVjaG8gdGhyZWUgPiBleHBlY3RlZCAmJgotICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwgJiYKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBwdWxsICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0iJXMiIC0xIG9yaWdpbi9tYXN0ZXIgPiBhY3R1YWwKKwkpICYmCisJZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCiAKLSAgKGNkIGdpdHJlcG8gJiYgZ2l0IHB1c2ggJiYgZ2l0IHB1bGwpICYmCisJKGNkIGdpdHJlcG8gJiYgZ2l0IHB1c2ggJiYgZ2l0IHB1bGwpICYmCiAKLSAgKGNkIGJ6cnJlcG8gJiYKLSAgZWNobyBmb3VyID4gY29udGVudCAmJgotICBienIgY29tbWl0IC1tIGZvdXIKLSAgKSAmJgorCSgKKwljZCBienJyZXBvICYmCisJZWNobyBmb3VyID4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gZm91cgorCSkgJiYKIAotICAoY2QgZ2l0cmVwbyAmJiBnaXQgcHVsbCAmJiBnaXQgcHVzaCkgJiYKKwkoY2QgZ2l0cmVwbyAmJiBnaXQgcHVsbCAmJiBnaXQgcHVzaCkgJiYKIAotICBjaGVjayBnaXRyZXBvIGZvdXIgbWFzdGVyICYmCisJY2hlY2sgZ2l0cmVwbyBIRUFEIGZvdXIgJiYKIAotICAoY2QgZ2l0cmVwbyAmJgotICBlY2hvIGZpdmUgPiBjb250ZW50ICYmCi0gIGdpdCBjb21taXQgLWEgLW0gZml2ZSAmJgotICBnaXQgcHVzaCAmJiBnaXQgcHVsbAotICApICYmCisJKAorCWNkIGdpdHJlcG8gJiYKKwllY2hvIGZpdmUgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtYSAtbSBmaXZlICYmCisJZ2l0IHB1c2ggJiYgZ2l0IHB1bGwKKwkpICYmCiAKLSAgKGNkIGJ6cnJlcG8gJiYgYnpyIHJldmVydCkgJiYKKwkoY2QgYnpycmVwbyAmJiBienIgcmV2ZXJ0KSAmJgogCi0gIGVjaG8gZml2ZSA+IGV4cGVjdGVkICYmCi0gIGNhdCBienJyZXBvL2NvbnRlbnQgPiBhY3R1YWwgJiYKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJZWNobyBmaXZlID4gZXhwZWN0ZWQgJiYKKwljYXQgYnpycmVwby9jb250ZW50ID4gYWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKIGNhdCA+IGV4cGVjdGVkIDw8RU9GCkBAIC0xMDEsMjkgKzEwNSwzNSBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NwZWNpYWwgbW9kZXMnICcKLSAgKGNkIGJ6cnJlcG8gJiYKLSAgZWNobyBleGVjID4gZXhlY3V0YWJsZQotICBjaG1vZCAreCBleGVjdXRhYmxlICYmCi0gIGJ6ciBhZGQgZXhlY3V0YWJsZQotICBienIgY29tbWl0IC1tIGV4ZWMgJiYKLSAgbG4gLXMgY29udGVudCBsaW5rCi0gIGJ6ciBhZGQgbGluawotICBienIgY29tbWl0IC1tIGxpbmsgJiYKLSAgbWtkaXIgZGlyICYmCi0gIGJ6ciBhZGQgZGlyICYmCi0gIGJ6ciBjb21taXQgLW0gZGlyKSAmJgorCSgKKwljZCBienJyZXBvICYmCisJZWNobyBleGVjID4gZXhlY3V0YWJsZQorCWNobW9kICt4IGV4ZWN1dGFibGUgJiYKKwlienIgYWRkIGV4ZWN1dGFibGUKKwlienIgY29tbWl0IC1tIGV4ZWMgJiYKKwlsbiAtcyBjb250ZW50IGxpbmsKKwlienIgYWRkIGxpbmsKKwlienIgY29tbWl0IC1tIGxpbmsgJiYKKwlta2RpciBkaXIgJiYKKwlienIgYWRkIGRpciAmJgorCWJ6ciBjb21taXQgLW0gZGlyCisJKSAmJgogCi0gIChjZCBnaXRyZXBvICYmCi0gIGdpdCBwdWxsCi0gIGdpdCBscy10cmVlIEhFQUQgPiAuLi9hY3R1YWwpICYmCisJKAorCWNkIGdpdHJlcG8gJiYKKwlnaXQgcHVsbAorCWdpdCBscy10cmVlIEhFQUQgPiAuLi9hY3R1YWwKKwkpICYmCiAKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCiAKLSAgKGNkIGdpdHJlcG8gJiYKLSAgZ2l0IGNhdC1maWxlIC1wIEhFQUQ6bGluayA+IC4uL2FjdHVhbCkgJiYKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBjYXQtZmlsZSAtcCBIRUFEOmxpbmsgPiAuLi9hY3R1YWwKKwkpICYmCiAKLSAgcHJpbnRmIGNvbnRlbnQgPiBleHBlY3RlZCAmJgotICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwlwcmludGYgY29udGVudCA+IGV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKIGNhdCA+IGV4cGVjdGVkIDw8RU9GCkBAIC0xMzQsMTM0ICsxNDQsMTQ1IEBACiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbW92aW5nIGRpcmVjdG9yeScgJwotICAoY2QgYnpycmVwbyAmJgotICBta2RpciBtb3ZlZGlyICYmCi0gIGVjaG8gb25lID4gbW92ZWRpci9vbmUgJiYKLSAgZWNobyB0d28gPiBtb3ZlZGlyL3R3byAmJgotICBienIgYWRkIG1vdmVkaXIgJiYKLSAgYnpyIGNvbW1pdCAtbSBtb3ZlZGlyICYmCi0gIGJ6ciBtdiBtb3ZlZGlyIG1vdmVkaXItbmV3ICYmCi0gIGJ6ciBjb21taXQgLW0gbW92ZWRpci1uZXcpICYmCisJKAorCWNkIGJ6cnJlcG8gJiYKKwlta2RpciBtb3ZlZGlyICYmCisJZWNobyBvbmUgPiBtb3ZlZGlyL29uZSAmJgorCWVjaG8gdHdvID4gbW92ZWRpci90d28gJiYKKwlienIgYWRkIG1vdmVkaXIgJiYKKwlienIgY29tbWl0IC1tIG1vdmVkaXIgJiYKKwlienIgbXYgbW92ZWRpciBtb3ZlZGlyLW5ldyAmJgorCWJ6ciBjb21taXQgLW0gbW92ZWRpci1uZXcKKwkpICYmCiAKLSAgKGNkIGdpdHJlcG8gJiYKLSAgZ2l0IHB1bGwgJiYKLSAgZ2l0IGxzLXRyZWUgSEVBRCA+IC4uL2FjdHVhbCkgJiYKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBwdWxsICYmCisJZ2l0IGxzLXRyZWUgSEVBRCA+IC4uL2FjdHVhbAorCSkgJiYKIAotICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlmZmVyZW50IGF1dGhvcnMnICcKLSAgKGNkIGJ6cnJlcG8gJiYKLSAgZWNobyBqb2huID4+IGNvbnRlbnQgJiYKLSAgYnpyIGNvbW1pdCAtbSBqb2huIFwKLSAgICAtLWF1dGhvciAiSmFuZSBSZXkgPGpyZXlAZXhhbXBsZS5jb20+IiBcCi0gICAgLS1hdXRob3IgIkpvaG4gRG9lIDxqZG9lQGV4YW1wbGUuY29tPiIpICYmCisJKAorCWNkIGJ6cnJlcG8gJiYKKwllY2hvIGpvaG4gPj4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gam9obiBcCisJICAtLWF1dGhvciAiSmFuZSBSZXkgPGpyZXlAZXhhbXBsZS5jb20+IiBcCisJICAtLWF1dGhvciAiSm9obiBEb2UgPGpkb2VAZXhhbXBsZS5jb20+IgorCSkgJiYKIAotICAoY2QgZ2l0cmVwbyAmJgotICBnaXQgcHVsbCAmJgotICBnaXQgc2hvdyAtLWZvcm1hdD0iJWFuIDwlYWU+LCAlY24gPCVjZT4iIC0tcXVpZXQgPiAuLi9hY3R1YWwpICYmCisJKAorCWNkIGdpdHJlcG8gJiYKKwlnaXQgcHVsbCAmJgorCWdpdCBzaG93IC0tZm9ybWF0PSIlYW4gPCVhZT4sICVjbiA8JWNlPiIgLS1xdWlldCA+IC4uL2FjdHVhbAorCSkgJiYKIAotICBlY2hvICJKYW5lIFJleSA8anJleUBleGFtcGxlLmNvbT4sIEEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+IiA+IGV4cGVjdGVkICYmCi0gIHRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorCWVjaG8gIkphbmUgUmV5IDxqcmV5QGV4YW1wbGUuY29tPiwgQSBVIFRob3IgPGF1dGhvckBleGFtcGxlLmNvbT4iID4gZXhwZWN0ZWQgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIAorIyBjbGVhbnVwIHByZXZpb3VzIHN0dWZmCitybSAtcmYgYnpycmVwbyBnaXRyZXBvCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIHV0Zi04IGZpbGVuYW1lcycgJwotICBta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0gIHRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCAmJiBMQ19BTEw9QyIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBienJyZXBvIGdpdHJlcG8gJiYgTENfQUxMPUMiICYmCiAKLSAgTENfQUxMPWVuX1VTLlVURi04Ci0gIGV4cG9ydCBMQ19BTEwKLSAgKAotICBienIgaW5pdCBienJyZXBvICYmCi0gIGNkIGJ6cnJlcG8gJiYKKwlMQ19BTEw9ZW5fVVMuVVRGLTgKKwlleHBvcnQgTENfQUxMCiAKLSAgZWNobyB0ZXN0ID4+ICLDpnLDuCIgJiYKLSAgYnpyIGFkZCAiw6Zyw7giICYmCi0gIGVjaG8gdGVzdCA+PiAiw7h+PyIgJiYKLSAgYnpyIGFkZCAiw7h+PyIgJiYKLSAgYnpyIGNvbW1pdCAtbSBhZGQtdXRmLTggJiYKLSAgZWNobyB0ZXN0ID4+ICLDpnLDuCIgJiYKLSAgYnpyIGNvbW1pdCAtbSB0ZXN0LXV0Zi04ICYmCi0gIGJ6ciBybSAiw7h+PyIgJiYKLSAgYnpyIG12ICLDpnLDuCIgIsO4fj8iICYmCi0gIGJ6ciBjb21taXQgLW0gYnpyLW12LXV0Zi04Ci0gICkgJiYKKwkoCisJYnpyIGluaXQgYnpycmVwbyAmJgorCWNkIGJ6cnJlcG8gJiYKIAotICAoCi0gIGdpdCBjbG9uZSAiYnpyOjokUFdEL2J6cnJlcG8iIGdpdHJlcG8gJiYKLSAgY2QgZ2l0cmVwbyAmJgotICBnaXQgLWMgY29yZS5xdW90ZXBhdGg9ZmFsc2UgbHMtZmlsZXMgPiAuLi9hY3R1YWwKLSAgKSAmJgotICBlY2hvICLDuH4/IiA+IGV4cGVjdGVkICYmCi0gIHRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorCWVjaG8gdGVzdCA+PiAiw6Zyw7giICYmCisJYnpyIGFkZCAiw6Zyw7giICYmCisJZWNobyB0ZXN0ID4+ICLDuH4/IiAmJgorCWJ6ciBhZGQgIsO4fj8iICYmCisJYnpyIGNvbW1pdCAtbSBhZGQtdXRmLTggJiYKKwllY2hvIHRlc3QgPj4gIsOmcsO4IiAmJgorCWJ6ciBjb21taXQgLW0gdGVzdC11dGYtOCAmJgorCWJ6ciBybSAiw7h+PyIgJiYKKwlienIgbXYgIsOmcsO4IiAiw7h+PyIgJiYKKwlienIgY29tbWl0IC1tIGJ6ci1tdi11dGYtOAorCSkgJiYKKworCSgKKwlnaXQgY2xvbmUgImJ6cjo6YnpycmVwbyIgZ2l0cmVwbyAmJgorCWNkIGdpdHJlcG8gJiYKKwlnaXQgLWMgY29yZS5xdW90ZXBhdGg9ZmFsc2UgbHMtZmlsZXMgPiAuLi9hY3R1YWwKKwkpICYmCisJZWNobyAiw7h+PyIgPiBleHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIHV0Zi04IGZpbGVuYW1lcycgJwotICBta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0gIHRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCAmJiBMQ19BTEw9QyIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBienJyZXBvIGdpdHJlcG8gJiYgTENfQUxMPUMiICYmCiAKLSAgTENfQUxMPWVuX1VTLlVURi04Ci0gIGV4cG9ydCBMQ19BTEwKKwlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCiAKLSAgKAotICBienIgaW5pdCBienJyZXBvICYmCi0gIGNkIGJ6cnJlcG8gJiYKKwlMQ19BTEw9ZW5fVVMuVVRGLTgKKwlleHBvcnQgTENfQUxMCiAKLSAgZWNobyBvbmUgPj4gY29udGVudCAmJgotICBienIgYWRkIGNvbnRlbnQgJiYKLSAgYnpyIGNvbW1pdCAtbSBvbmUKLSAgKSAmJgorCSgKKwlienIgaW5pdCBienJyZXBvICYmCisJY2QgYnpycmVwbyAmJgogCi0gICgKLSAgZ2l0IGNsb25lICJienI6OiRQV0QvYnpycmVwbyIgZ2l0cmVwbyAmJgotICBjZCBnaXRyZXBvICYmCisJZWNobyBvbmUgPj4gY29udGVudCAmJgorCWJ6ciBhZGQgY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gb25lCisJKSAmJgogCi0gIGVjaG8gdGVzdCA+PiAiw6Zyw7giICYmCi0gIGdpdCBhZGQgIsOmcsO4IiAmJgotICBnaXQgY29tbWl0IC1tIHV0Zi04ICYmCisJKAorCWdpdCBjbG9uZSAiYnpyOjpienJyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgogCi0gIGdpdCBwdXNoCi0gICkgJiYKKwllY2hvIHRlc3QgPj4gIsOmcsO4IiAmJgorCWdpdCBhZGQgIsOmcsO4IiAmJgorCWdpdCBjb21taXQgLW0gdXRmLTggJiYKIAotICAoY2QgYnpycmVwbyAmJiBienIgbHMgPiAuLi9hY3R1YWwpICYmCi0gIHByaW50ZiAiY29udGVudFxuw6Zyw7hcbiIgPiBleHBlY3RlZCAmJgotICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwlnaXQgcHVzaAorCSkgJiYKKworCShjZCBienJyZXBvICYmIGJ6ciBscyA+IC4uL2FjdHVhbCkgJiYKKwlwcmludGYgImNvbnRlbnRcbsOmcsO4XG4iID4gZXhwZWN0ZWQgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaGluZyBhIG1lcmdlJyAnCi0gIG1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLSAgdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGJ6cnJlcG8gZ2l0cmVwbyIgJiYKIAotICAoCi0gIGJ6ciBpbml0IGJ6cnJlcG8gJiYKLSAgY2QgYnpycmVwbyAmJgotICBlY2hvIG9uZSA+IGNvbnRlbnQgJiYKLSAgYnpyIGFkZCBjb250ZW50ICYmCi0gIGJ6ciBjb21taXQgLW0gb25lCi0gICkgJiYKKwkoCisJYnpyIGluaXQgYnpycmVwbyAmJgorCWNkIGJ6cnJlcG8gJiYKKwllY2hvIG9uZSA+IGNvbnRlbnQgJiYKKwlienIgYWRkIGNvbnRlbnQgJiYKKwlienIgY29tbWl0IC1tIG9uZQorCSkgJiYKIAotICBnaXQgY2xvbmUgImJ6cjo6JFBXRC9ienJyZXBvIiBnaXRyZXBvICYmCisJZ2l0IGNsb25lICJienI6OmJ6cnJlcG8iIGdpdHJlcG8gJiYKIAotICAoCi0gIGNkIGJ6cnJlcG8gJiYKLSAgZWNobyB0d28gPiBjb250ZW50ICYmCi0gIGJ6ciBjb21taXQgLW0gdHdvCi0gICkgJiYKKwkoCisJY2QgYnpycmVwbyAmJgorCWVjaG8gdHdvID4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gdHdvCisJKSAmJgogCi0gICgKLSAgY2QgZ2l0cmVwbyAmJgotICBlY2hvIHRocmVlID4gY29udGVudCAmJgotICBnaXQgY29tbWl0IC1hIC1tIHRocmVlICYmCi0gIGdpdCBmZXRjaCAmJgotICBnaXQgbWVyZ2Ugb3JpZ2luL21hc3RlciB8fCB0cnVlICYmCi0gIGVjaG8gdGhyZWUgPiBjb250ZW50ICYmCi0gIGdpdCBjb21taXQgLWEgLS1uby1lZGl0ICYmCi0gIGdpdCBwdXNoCi0gICkgJiYKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWVjaG8gdGhyZWUgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtYSAtbSB0aHJlZSAmJgorCWdpdCBmZXRjaCAmJgorCWdpdCBtZXJnZSBvcmlnaW4vbWFzdGVyIHx8IHRydWUgJiYKKwllY2hvIHRocmVlID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLWEgLS1uby1lZGl0ICYmCisJZ2l0IHB1c2gKKwkpICYmCiAKLSAgZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCi0gIGNhdCBienJyZXBvL2NvbnRlbnQgPiBhY3R1YWwgJiYKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCisJY2F0IGJ6cnJlcG8vY29udGVudCA+IGFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCiBjYXQgPiBleHBlY3RlZCA8PEVPRgpAQCAtMjcxLDcxICsyOTIsNzAgQEAKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9wZXIgYnpyIHJlcG8nICcKLSAgbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotICB0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgYnpycmVwbyBnaXRyZXBvIiAmJgogCi0gIGJ6ciBpbml0LXJlcG8gYnpycmVwbyAmJgorCWJ6ciBpbml0LXJlcG8gYnpycmVwbyAmJgogCi0gIGJ6ciBpbml0IGJ6cnJlcG8vdHJ1bmsgJiYKLSAgKAotICBjZCBienJyZXBvL3RydW5rICYmCi0gIGVjaG8gb25lID4+IGNvbnRlbnQgJiYKLSAgYnpyIGFkZCBjb250ZW50ICYmCi0gIGJ6ciBjb21taXQgLW0gb25lCi0gICkgJiYKKwkoCisJYnpyIGluaXQgYnpycmVwby90cnVuayAmJgorCWNkIGJ6cnJlcG8vdHJ1bmsgJiYKKwllY2hvIG9uZSA+PiBjb250ZW50ICYmCisJYnpyIGFkZCBjb250ZW50ICYmCisJYnpyIGNvbW1pdCAtbSBvbmUKKwkpICYmCiAKLSAgYnpyIGJyYW5jaCBienJyZXBvL3RydW5rIGJ6cnJlcG8vYnJhbmNoICYmCi0gICgKLSAgY2QgYnpycmVwby9icmFuY2ggJiYKLSAgZWNobyB0d28gPj4gY29udGVudCAmJgotICBienIgY29tbWl0IC1tIG9uZQotICApICYmCisJKAorCWJ6ciBicmFuY2ggYnpycmVwby90cnVuayBienJyZXBvL2JyYW5jaCAmJgorCWNkIGJ6cnJlcG8vYnJhbmNoICYmCisJZWNobyB0d28gPj4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gb25lCisJKSAmJgogCi0gIGdpdCBjbG9uZSAiYnpyOjokUFdEL2J6cnJlcG8iIGdpdHJlcG8gJiYKLSAgKAotICBjZCBnaXRyZXBvICYmCi0gIGdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQgIiUocmVmbmFtZTpzaG9ydCkiIHJlZnMvcmVtb3Rlcy9vcmlnaW4gPiAuLi9hY3R1YWwKLSAgKSAmJgorCSgKKwlnaXQgY2xvbmUgImJ6cjo6YnpycmVwbyIgZ2l0cmVwbyAmJgorCWNkIGdpdHJlcG8gJiYKKwlnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0ICIlKHJlZm5hbWU6c2hvcnQpIiByZWZzL3JlbW90ZXMvb3JpZ2luID4gLi4vYWN0dWFsCisJKSAmJgogCi0gIHRlc3RfY21wIC4uL2V4cGVjdGVkIGFjdHVhbAorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdHJpcCcgJwotICAjIERvIG5vdCBpbWl0YXRlIHRoaXMgc3R5bGU7IGFsd2F5cyBjaGRpciBpbnNpZGUgYSBzdWJzaGVsbCBpbnN0ZWFkCi0gIG1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLSAgdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGJ6cnJlcG8gZ2l0cmVwbyIgJiYKIAotICAoCi0gIGJ6ciBpbml0IGJ6cnJlcG8gJiYKLSAgY2QgYnpycmVwbyAmJgorCSgKKwlienIgaW5pdCBienJyZXBvICYmCisJY2QgYnpycmVwbyAmJgogCi0gIGVjaG8gb25lID4+IGNvbnRlbnQgJiYKLSAgYnpyIGFkZCBjb250ZW50ICYmCi0gIGJ6ciBjb21taXQgLW0gb25lICYmCisJZWNobyBvbmUgPj4gY29udGVudCAmJgorCWJ6ciBhZGQgY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gb25lICYmCiAKLSAgZWNobyB0d28gPj4gY29udGVudCAmJgotICBienIgY29tbWl0IC1tIHR3bwotICApICYmCisJZWNobyB0d28gPj4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gdHdvCisJKSAmJgogCi0gIGdpdCBjbG9uZSAiYnpyOjokUFdEL2J6cnJlcG8iIGdpdHJlcG8gJiYKKwlnaXQgY2xvbmUgImJ6cjo6YnpycmVwbyIgZ2l0cmVwbyAmJgogCi0gICgKLSAgY2QgYnpycmVwbyAmJgotICBienIgdW5jb21taXQgLS1mb3JjZSAmJgorCSgKKwljZCBienJyZXBvICYmCisJYnpyIHVuY29tbWl0IC0tZm9yY2UgJiYKIAotICBlY2hvIHRocmVlID4+IGNvbnRlbnQgJiYKLSAgYnpyIGNvbW1pdCAtbSB0aHJlZSAmJgorCWVjaG8gdGhyZWUgPj4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gdGhyZWUgJiYKIAotICBlY2hvIGZvdXIgPj4gY29udGVudCAmJgotICBienIgY29tbWl0IC1tIGZvdXIgJiYKLSAgYnpyIGxvZyAtLWxpbmUgfCBzZWQgLWUgInMvXlswLTldWzAtOV0qOiAvLyIgPiAuLi9leHBlY3RlZAotICApICYmCisJZWNobyBmb3VyID4+IGNvbnRlbnQgJiYKKwlienIgY29tbWl0IC1tIGZvdXIgJiYKKwlienIgbG9nIC0tbGluZSB8IHNlZCAtZSAicy9eWzAtOV1bMC05XSo6IC8vIiA+IC4uL2V4cGVjdGVkCisJKSAmJgogCi0gIChjZCBnaXRyZXBvICYmCi0gIGdpdCBmZXRjaCAmJgotICBnaXQgbG9nIC0tZm9ybWF0PSIlYW4gJWFkICVzIiAtLWRhdGU9c2hvcnQgb3JpZ2luL21hc3RlciA+IC4uL2FjdHVhbCkgJiYKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBmZXRjaCAmJgorCWdpdCBsb2cgLS1mb3JtYXQ9IiVhbiAlYWQgJXMiIC0tZGF0ZT1zaG9ydCBvcmlnaW4vbWFzdGVyID4gLi4vYWN0dWFsCisJKSAmJgogCi0gIHRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy1iaWRpLnNoIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWJpZGkuc2gKaW5kZXggZjU2OTY5Ny4uZjgzZDY3ZCAxMDA3NTUKLS0tIGEvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWJpZGkuc2gKKysrIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWJpZGkuc2gKQEAgLTE1LDIzICsxNSwyMiBAQAogCXRlc3RfZG9uZQogZmkKIAotaWYgISAiJFBZVEhPTl9QQVRIIiAtYyAnaW1wb3J0IG1lcmN1cmlhbCc7IHRoZW4KK2lmICEgcHl0aG9uIC1jICdpbXBvcnQgbWVyY3VyaWFsJzsgdGhlbgogCXNraXBfYWxsPSdza2lwcGluZyByZW1vdGUtaGcgdGVzdHM7IG1lcmN1cmlhbCBub3QgYXZhaWxhYmxlJwogCXRlc3RfZG9uZQogZmkKIAogIyBjbG9uZSB0byBhIGdpdCByZXBvCiBnaXRfY2xvbmUgKCkgewotCWdpdCBjbG9uZSAtcSAiaGc6OiRQV0QvJDEiICQyCisJZ2l0IGNsb25lIC1xICJoZzo6JDEiICQyCiB9CiAKICMgY2xvbmUgdG8gYW4gaGcgcmVwbwogaGdfY2xvbmUgKCkgewogCSgKIAloZyBpbml0ICQyICYmCi0JaGcgLVIgJDIgYm9va21hcmsgLWkgbWFzdGVyICYmCiAJY2QgJDEgJiYKLQlnaXQgcHVzaCAtcSAiaGc6OiRQV0QvLi4vJDIiICdyZWZzL3RhZ3MvKjpyZWZzL3RhZ3MvKicgJ3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzLyonCisJZ2l0IHB1c2ggLXEgImhnOjouLi8kMiIgJ3JlZnMvdGFncy8qOnJlZnMvdGFncy8qJyAncmVmcy9oZWFkcy8qOnJlZnMvaGVhZHMvKicKIAkpICYmCiAKIAkoY2QgJDIgJiYgaGcgLXEgdXBkYXRlKQpAQCAtNDEsMTcgKzQwLDE1IEBACiBoZ19wdXNoICgpIHsKIAkoCiAJY2QgJDIKLQlvbGQ9JChnaXQgc3ltYm9saWMtcmVmIC0tc2hvcnQgSEVBRCkKIAlnaXQgY2hlY2tvdXQgLXEgLWIgdG1wICYmCi0JZ2l0IGZldGNoIC1xICJoZzo6JFBXRC8uLi8kMSIgJ3JlZnMvdGFncy8qOnJlZnMvdGFncy8qJyAncmVmcy9oZWFkcy8qOnJlZnMvaGVhZHMvKicgJiYKLQlnaXQgY2hlY2tvdXQgLXEgJG9sZCAmJgorCWdpdCBmZXRjaCAtcSAiaGc6Oi4uLyQxIiAncmVmcy90YWdzLyo6cmVmcy90YWdzLyonICdyZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy8qJyAmJgorCWdpdCBjaGVja291dCAtcSBAey0xfSAmJgogCWdpdCBicmFuY2ggLXEgLUQgdG1wIDI+IC9kZXYvbnVsbCB8fCB0cnVlCiAJKQogfQogCiBoZ19sb2cgKCkgewotCWhnIC1SICQxIGxvZyAtLWdyYXBoIC0tZGVidWcgPmxvZyAmJgotCWdyZXAgLXYgJ3RhZzogKmRlZmF1bHQvJyBsb2cKKwloZyAtUiAkMSBsb2cgLS1ncmFwaCAtLWRlYnVnCiB9CiAKIHNldHVwICgpIHsKQEAgLTY3LDYgKzY0LDcgQEAKIAllY2hvICJncmFwaGxvZyA9IgogCSkgPj4gIiRIT01FIi8uaGdyYyAmJgogCWdpdCBjb25maWcgLS1nbG9iYWwgcmVtb3RlLWhnLmhnLWdpdC1jb21wYXQgdHJ1ZQorCWdpdCBjb25maWcgLS1nbG9iYWwgcmVtb3RlLWhnLnRyYWNrLWJyYW5jaGVzIHRydWUKIAogCUhHRURJVE9SPS91c3IvYmluL3RydWUKIAlHSVRfQVVUSE9SX0RBVEU9IjIwMDctMDEtMDEgMDA6MDA6MDAgKzAyMzAiCkBAIC03Nyw4ICs3NSw3IEBACiBzZXR1cAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdlbmNvZGluZycgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCkBAIC0xMTUsOCArMTEyLDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmlsZSByZW1vdmFsJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJKAogCWdpdCBpbml0IC1xIGdpdHJlcG8gJiYKQEAgLTE0OCw4ICsxNDQsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgdGFncycgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCkBAIC0xNzcsOCArMTcyLDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaGcgYnJhbmNoJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJKAogCWdpdCBpbml0IC1xIGdpdHJlcG8gJiYKQEAgLTE5NCw3ICsxODgsNyBAQAogCWhnX2Nsb25lIGdpdHJlcG8gaGdyZXBvICYmCiAKIAljZCBoZ3JlcG8gJiYKLQloZyAtcSBjbyBtYXN0ZXIgJiYKKwloZyAtcSBjbyBkZWZhdWx0ICYmCiAJaGcgbXYgYWxwaGEgYmV0YSAmJgogCWhnIC1xIGNvbW1pdCAtbSAicmVuYW1lIGFscGhhIHRvIGJldGEiICYmCiAJaGcgYnJhbmNoIGdhbW1hIHwgZ3JlcCAtdiAicGVybWFuZW50IGFuZCBnbG9iYWwiICYmCkBAIC0yMTQsOCArMjA4LDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaGcgdGFncycgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCkBAIC0yMzEsNyArMjI0LDcgQEAKIAloZ19jbG9uZSBnaXRyZXBvIGhncmVwbyAmJgogCiAJY2QgaGdyZXBvICYmCi0JaGcgY28gbWFzdGVyICYmCisJaGcgY28gZGVmYXVsdCAmJgogCWhnIHRhZyBhbHBoYQogCSkgJiYKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWhnLWdpdC5zaCBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy1oZy1naXQuc2gKaW5kZXggN2Y1NzljOC4uMjIxOTI4NCAxMDA3NTUKLS0tIGEvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWhnLWdpdC5zaAorKysgYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtaGctaGctZ2l0LnNoCkBAIC0xNSwxOSArMTUsMjAgQEAKIAl0ZXN0X2RvbmUKIGZpCiAKLWlmICEgIiRQWVRIT05fUEFUSCIgLWMgJ2ltcG9ydCBtZXJjdXJpYWwnOyB0aGVuCitpZiAhIHB5dGhvbiAtYyAnaW1wb3J0IG1lcmN1cmlhbCc7IHRoZW4KIAlza2lwX2FsbD0nc2tpcHBpbmcgcmVtb3RlLWhnIHRlc3RzOyBtZXJjdXJpYWwgbm90IGF2YWlsYWJsZScKIAl0ZXN0X2RvbmUKIGZpCiAKLWlmICEgIiRQWVRIT05fUEFUSCIgLWMgJ2ltcG9ydCBoZ2dpdCc7IHRoZW4KK2lmICEgcHl0aG9uIC1jICdpbXBvcnQgaGdnaXQnOyB0aGVuCiAJc2tpcF9hbGw9J3NraXBwaW5nIHJlbW90ZS1oZyB0ZXN0czsgaGctZ2l0IG5vdCBhdmFpbGFibGUnCiAJdGVzdF9kb25lCiBmaQogCiAjIGNsb25lIHRvIGEgZ2l0IHJlcG8gd2l0aCBnaXQKIGdpdF9jbG9uZV9naXQgKCkgewotCWdpdCBjbG9uZSAtcSAiaGc6OiRQV0QvJDEiICQyCisJZ2l0IGNsb25lIC1xICJoZzo6JDEiICQyICYmCisJKGNkICQyICYmIGdpdCBjaGVja291dCBtYXN0ZXIgJiYgZ2l0IGJyYW5jaCAtRCBkZWZhdWx0KQogfQogCiAjIGNsb25lIHRvIGFuIGhnIHJlcG8gd2l0aCBnaXQKQEAgLTM2LDcgKzM3LDcgQEAKIAloZyBpbml0ICQyICYmCiAJaGcgLVIgJDIgYm9va21hcmsgLWkgbWFzdGVyICYmCiAJY2QgJDEgJiYKLQlnaXQgcHVzaCAtcSAiaGc6OiRQV0QvLi4vJDIiICdyZWZzL3RhZ3MvKjpyZWZzL3RhZ3MvKicgJ3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzLyonCisJZ2l0IHB1c2ggLXEgImhnOjouLi8kMiIgJ3JlZnMvdGFncy8qOnJlZnMvdGFncy8qJyAncmVmcy9oZWFkcy8qOnJlZnMvaGVhZHMvKicKIAkpICYmCiAKIAkoY2QgJDIgJiYgaGcgLXEgdXBkYXRlKQpAQCAtNjEsMTAgKzYyLDEwIEBACiBoZ19wdXNoX2dpdCAoKSB7CiAJKAogCWNkICQyCi0Jb2xkPSQoZ2l0IHN5bWJvbGljLXJlZiAtLXNob3J0IEhFQUQpCiAJZ2l0IGNoZWNrb3V0IC1xIC1iIHRtcCAmJgotCWdpdCBmZXRjaCAtcSAiaGc6OiRQV0QvLi4vJDEiICdyZWZzL3RhZ3MvKjpyZWZzL3RhZ3MvKicgJ3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzLyonICYmCi0JZ2l0IGNoZWNrb3V0IC1xICRvbGQgJiYKKwlnaXQgZmV0Y2ggLXEgImhnOjouLi8kMSIgJ3JlZnMvdGFncy8qOnJlZnMvdGFncy8qJyAncmVmcy9oZWFkcy8qOnJlZnMvaGVhZHMvKicgJiYKKwlnaXQgYnJhbmNoIC1EIGRlZmF1bHQgJiYKKwlnaXQgY2hlY2tvdXQgLXEgQHstMX0gJiYKIAlnaXQgYnJhbmNoIC1xIC1EIHRtcCAyPiAvZGV2L251bGwgfHwgdHJ1ZQogCSkKIH0KQEAgLTEwNCwxOCArMTA1LDE4IEBACiAJZ2l0IGNvbmZpZyAtLWdsb2JhbCByZW1vdGUtaGcuaGctZ2l0LWNvbXBhdCB0cnVlCiAJZ2l0IGNvbmZpZyAtLWdsb2JhbCByZW1vdGUtaGcudHJhY2stYnJhbmNoZXMgZmFsc2UKIAotCUhHRURJVE9SPS91c3IvYmluL3RydWUKKwlIR0VESVRPUj10cnVlCisJSEdNRVJHRT10cnVlCiAKIAlHSVRfQVVUSE9SX0RBVEU9IjIwMDctMDEtMDEgMDA6MDA6MDAgKzAyMzAiCiAJR0lUX0NPTU1JVFRFUl9EQVRFPSIkR0lUX0FVVEhPUl9EQVRFIgotCWV4cG9ydCBIR0VESVRPUiBHSVRfQVVUSE9SX0RBVEUgR0lUX0NPTU1JVFRFUl9EQVRFCisJZXhwb3J0IEhHRURJVE9SIEhHTUVSR0UgR0lUX0FVVEhPUl9EQVRFIEdJVF9DT01NSVRURVJfREFURQogfQogCiBzZXR1cAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdleGVjdXRhYmxlIGJpdCcgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCkBAIC0xNTAsOCArMTUxLDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3ltbGluaycgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCkBAIC0xODEsOCArMTgxLDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbWVyZ2UgY29uZmxpY3QgMScgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAloZyBpbml0IGhncmVwbzEgJiYKQEAgLTE5OCw3ICsxOTcsNyBAQAogCWVjaG8gQyA+IGFmaWxlICYmCiAJaGcgY2kgLW0gIkEtPkMiICYmCiAKLQloZyBtZXJnZSAtcjEgfHwgdHJ1ZSAmJgorCWhnIG1lcmdlIC1yMSAmJgogCWVjaG8gQyA+IGFmaWxlICYmCiAJaGcgcmVzb2x2ZSAtbSBhZmlsZSAmJgogCWhnIGNpIC1tICJtZXJnZSB0byBDIgpAQCAtMjE2LDggKzIxNSw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21lcmdlIGNvbmZsaWN0IDInICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAkoCiAJaGcgaW5pdCBoZ3JlcG8xICYmCkBAIC0yNTEsOCArMjQ5LDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY29udmVyZ2VkIG1lcmdlJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJKAogCWhnIGluaXQgaGdyZXBvMSAmJgpAQCAtMjg3LDggKzI4NCw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2VuY29kaW5nJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJKAogCWdpdCBpbml0IC1xIGdpdHJlcG8gJiYKQEAgLTMyNyw4ICszMjMsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdmaWxlIHJlbW92YWwnICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAkoCiAJZ2l0IGluaXQgLXEgZ2l0cmVwbyAmJgpAQCAtMzY3LDggKzM2Miw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCB0YWdzJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJKAogCWdpdCBpbml0IC1xIGdpdHJlcG8gJiYKQEAgLTM5NCw4ICszODgsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdoZyBhdXRob3InICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAlmb3IgeCBpbiBoZyBnaXQ7IGRvCiAJCSgKQEAgLTQ2MSw4ICs0NTQsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdoZyBicmFuY2gnICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAlmb3IgeCBpbiBoZyBnaXQ7IGRvCiAJCSgKQEAgLTQ5OCw4ICs0OTAsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdoZyB0YWdzJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJZm9yIHggaW4gaGcgZ2l0OyBkbwogCQkoCmRpZmYgLS1naXQgYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtaGcuc2ggYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtaGcuc2gKaW5kZXggOGRlMmFhNy4uZjdjZThhYSAxMDA3NTUKLS0tIGEvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLnNoCisrKyBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy5zaApAQCAtMTUsMTQzICsxNSw2NzggQEAKIAl0ZXN0X2RvbmUKIGZpCiAKLWlmICEgIiRQWVRIT05fUEFUSCIgLWMgJ2ltcG9ydCBtZXJjdXJpYWwnOyB0aGVuCitpZiAhIHB5dGhvbiAtYyAnaW1wb3J0IG1lcmN1cmlhbCc7IHRoZW4KIAlza2lwX2FsbD0nc2tpcHBpbmcgcmVtb3RlLWhnIHRlc3RzOyBtZXJjdXJpYWwgbm90IGF2YWlsYWJsZScKIAl0ZXN0X2RvbmUKIGZpCiAKIGNoZWNrICgpIHsKLQkoY2QgJDEgJiYKLQlnaXQgbG9nIC0tZm9ybWF0PSclcycgLTEgJiYKLQlnaXQgc3ltYm9saWMtcmVmIEhFQUQpID4gYWN0dWFsICYmCi0JKGVjaG8gJDIgJiYKLQllY2hvICJyZWZzL2hlYWRzLyQzIikgPiBleHBlY3RlZCAmJgorCWVjaG8gJDMgPiBleHBlY3RlZCAmJgorCWdpdCAtLWdpdC1kaXI9JDEvLmdpdCBsb2cgLS1mb3JtYXQ9JyVzJyAtMSAkMiA+IGFjdHVhbAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogfQogCitjaGVja19icmFuY2ggKCkgeworCWlmIFsgLW4gIiQzIiBdOyB0aGVuCisJCWVjaG8gJDMgPiBleHBlY3RlZCAmJgorCQloZyAtUiAkMSBsb2cgLXIgJDIgLS10ZW1wbGF0ZSAne2Rlc2N9XG4nID4gYWN0dWFsICYmCisJCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorCWVsc2UKKwkJaGcgLVIgJDEgYnJhbmNoZXMgPiBvdXQgJiYKKwkJISBncmVwICQyIG91dAorCWZpCit9CisKK2NoZWNrX2Jvb2ttYXJrICgpIHsKKwlpZiBbIC1uICIkMyIgXTsgdGhlbgorCQllY2hvICQzID4gZXhwZWN0ZWQgJiYKKwkJaGcgLVIgJDEgbG9nIC1yICJib29rbWFyaygnJDInKSIgLS10ZW1wbGF0ZSAne2Rlc2N9XG4nID4gYWN0dWFsICYmCisJCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorCWVsc2UKKwkJaGcgLVIgJDEgYm9va21hcmtzID4gb3V0ICYmCisJCSEgZ3JlcCAkMiBvdXQKKwlmaQorfQorCitjaGVja19wdXNoICgpIHsKKwlsb2NhbCBleHBlY3RlZF9yZXQ9JDEgcmV0PTAgcmVmX3JldD0wIElGUz0nOicKKworCXNoaWZ0CisJZ2l0IHB1c2ggb3JpZ2luICIkQCIgMj4gZXJyb3IKKwlyZXQ9JD8KKwljYXQgZXJyb3IKKworCXdoaWxlIHJlYWQgYnJhbmNoIGtpbmQKKwlkbworCQljYXNlICIka2luZCIgaW4KKwkJJ25ldycpCisJCQlncmVwICJeIFwqIFxbbmV3IGJyYW5jaFxdICoke2JyYW5jaH0gLT4gJHticmFuY2h9JCIgZXJyb3IgfHwgcmVmX3JldD0xCisJCQk7OworCQknbm9uLWZhc3QtZm9yd2FyZCcpCisJCQlncmVwICJeICEgXFtyZWplY3RlZFxdICoke2JyYW5jaH0gLT4gJHticmFuY2h9IChub24tZmFzdC1mb3J3YXJkKSQiIGVycm9yIHx8IHJlZl9yZXQ9MQorCQkJOzsKKwkJJ2ZldGNoLWZpcnN0JykKKwkJCWdyZXAgIl4gISBcW3JlamVjdGVkXF0gKiR7YnJhbmNofSAtPiAke2JyYW5jaH0gKGZldGNoIGZpcnN0KSQiIGVycm9yIHx8IHJlZl9yZXQ9MQorCQkJOzsKKwkJJ2ZvcmNlZC11cGRhdGUnKQorCQkJZ3JlcCAiXiArIFthLWYwLTldKlwuXC5cLlthLWYwLTldKiAqJHticmFuY2h9IC0+ICR7YnJhbmNofSAoZm9yY2VkIHVwZGF0ZSkkIiBlcnJvciB8fCByZWZfcmV0PTEKKwkJCTs7CisJCScnKQorCQkJZ3JlcCAiXiAgIFthLWYwLTldKlwuXC5bYS1mMC05XSogKiR7YnJhbmNofSAtPiAke2JyYW5jaH0kIiBlcnJvciB8fCByZWZfcmV0PTEKKwkJCTs7CisJCWVzYWMKKwkJbGV0ICdyZWZfcmV0JyAmJiBlY2hvICJtYXRjaCBmb3IgJyRicmFuY2gnIGZhaWxlZCIgJiYgYnJlYWsKKwlkb25lCisKKwlpZiBsZXQgJ2V4cGVjdGVkX3JldCAhPSByZXQgfHwgcmVmX3JldCcKKwl0aGVuCisJCXJldHVybiAxCisJZmkKKworCXJldHVybiAwCit9CisKIHNldHVwICgpIHsKIAkoCiAJZWNobyAiW3VpXSIKIAllY2hvICJ1c2VybmFtZSA9IEggRyBXZWxscyA8d2VsbHNAZXhhbXBsZS5jb20+IgotCSkgPj4gIiRIT01FIi8uaGdyYworCWVjaG8gIltleHRlbnNpb25zXSIKKwllY2hvICJtcSA9IgorCSkgPj4gIiRIT01FIi8uaGdyYyAmJgorCisJR0lUX0FVVEhPUl9EQVRFPSIyMDA3LTAxLTAxIDAwOjAwOjAwICswMjMwIiAmJgorCUdJVF9DT01NSVRURVJfREFURT0iJEdJVF9BVVRIT1JfREFURSIgJiYKKwlleHBvcnQgR0lUX0NPTU1JVFRFUl9EQVRFIEdJVF9BVVRIT1JfREFURQogfQogCiBzZXR1cAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uaW5nJyAnCi0gIHRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgogCi0gICgKLSAgaGcgaW5pdCBoZ3JlcG8gJiYKLSAgY2QgaGdyZXBvICYmCi0gIGVjaG8gemVybyA+IGNvbnRlbnQgJiYKLSAgaGcgYWRkIGNvbnRlbnQgJiYKLSAgaGcgY29tbWl0IC1tIHplcm8KLSAgKSAmJgorCSgKKwloZyBpbml0IGhncmVwbyAmJgorCWNkIGhncmVwbyAmJgorCWVjaG8gemVybyA+IGNvbnRlbnQgJiYKKwloZyBhZGQgY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSB6ZXJvCisJKSAmJgogCi0gIGdpdCBjbG9uZSAiaGc6OiRQV0QvaGdyZXBvIiBnaXRyZXBvICYmCi0gIGNoZWNrIGdpdHJlcG8gemVybyBtYXN0ZXIKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKwljaGVjayBnaXRyZXBvIEhFQUQgemVybwogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uaW5nIHdpdGggYnJhbmNoZXMnICcKLSAgdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyoiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyoiICYmCiAKLSAgKAotICBjZCBoZ3JlcG8gJiYKLSAgaGcgYnJhbmNoIG5leHQgJiYKLSAgZWNobyBuZXh0ID4gY29udGVudCAmJgotICBoZyBjb21taXQgLW0gbmV4dAotICApICYmCisJKAorCWNkIGhncmVwbyAmJgorCWhnIGJyYW5jaCBuZXh0ICYmCisJZWNobyBuZXh0ID4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSBuZXh0CisJKSAmJgogCi0gIGdpdCBjbG9uZSAiaGc6OiRQV0QvaGdyZXBvIiBnaXRyZXBvICYmCi0gIGNoZWNrIGdpdHJlcG8gbmV4dCBuZXh0ICYmCi0KLSAgKGNkIGhncmVwbyAmJiBoZyBjaGVja291dCBkZWZhdWx0KSAmJgotCi0gIGdpdCBjbG9uZSAiaGc6OiRQV0QvaGdyZXBvIiBnaXRyZXBvMiAmJgotICBjaGVjayBnaXRyZXBvMiB6ZXJvIG1hc3RlcgorCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCWNoZWNrIGdpdHJlcG8gb3JpZ2luL2JyYW5jaGVzL25leHQgbmV4dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uaW5nIHdpdGggYm9va21hcmtzJyAnCi0gIHRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgogCi0gICgKLSAgY2QgaGdyZXBvICYmCi0gIGhnIGJvb2ttYXJrIGZlYXR1cmUtYSAmJgotICBlY2hvIGZlYXR1cmUtYSA+IGNvbnRlbnQgJiYKLSAgaGcgY29tbWl0IC1tIGZlYXR1cmUtYQotICApICYmCisJKAorCWNkIGhncmVwbyAmJgorCWhnIGNoZWNrb3V0IGRlZmF1bHQgJiYKKwloZyBib29rbWFyayBmZWF0dXJlLWEgJiYKKwllY2hvIGZlYXR1cmUtYSA+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gZmVhdHVyZS1hCisJKSAmJgogCi0gIGdpdCBjbG9uZSAiaGc6OiRQV0QvaGdyZXBvIiBnaXRyZXBvICYmCi0gIGNoZWNrIGdpdHJlcG8gZmVhdHVyZS1hIGZlYXR1cmUtYQotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uaW5nIHdpdGggZGV0YWNoZWQgaGVhZCcgJwotICB0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKLQotICAoCi0gIGNkIGhncmVwbyAmJgotICBoZyB1cGRhdGUgLXIgMAotICApICYmCi0KLSAgZ2l0IGNsb25lICJoZzo6JFBXRC9oZ3JlcG8iIGdpdHJlcG8gJiYKLSAgY2hlY2sgZ2l0cmVwbyB6ZXJvIG1hc3RlcgorCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCWNoZWNrIGdpdHJlcG8gb3JpZ2luL2ZlYXR1cmUtYSBmZWF0dXJlLWEKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGJvb2ttYXJrJyAnCi0gIHRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgogCi0gICgKLSAgY2QgaGdyZXBvICYmCi0gIGhnIGJvb2ttYXJrIGRldmVsCi0gICkgJiYKKwkoCisJY2QgaGdyZXBvICYmCisJaGcgYm9va21hcmsgZGV2ZWwKKwkpICYmCiAKLSAgKAotICBnaXQgY2xvbmUgImhnOjokUFdEL2hncmVwbyIgZ2l0cmVwbyAmJgotICBjZCBnaXRyZXBvICYmCi0gIGdpdCBjaGVja291dCBkZXZlbCAmJgotICBlY2hvIGRldmVsID4gY29udGVudCAmJgotICBnaXQgY29tbWl0IC1hIC1tIGRldmVsICYmCi0gIGdpdCBwdXNoCi0gICkgJiYKKwkoCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBjaGVja291dCAtLXF1aWV0IGRldmVsICYmCisJZWNobyBkZXZlbCA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIGRldmVsICYmCisJZ2l0IHB1c2ggLS1xdWlldAorCSkgJiYKIAotICBoZyAtUiBoZ3JlcG8gYm9va21hcmtzIHwgZWdyZXAgImRldmVsWwkgXSszOiIKKwljaGVja19ib29rbWFyayBoZ3JlcG8gZGV2ZWwgZGV2ZWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnbmV3IGJvb2ttYXJrJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyoiICYmCisKKwkoCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBjaGVja291dCAtLXF1aWV0IC1iIGZlYXR1cmUtYiAmJgorCWVjaG8gZmVhdHVyZS1iID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLWEgLW0gZmVhdHVyZS1iICYmCisJZ2l0IHB1c2ggLS1xdWlldCBvcmlnaW4gZmVhdHVyZS1iCisJKSAmJgorCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGZlYXR1cmUtYiBmZWF0dXJlLWIKKycKKworIyBjbGVhbnVwIHByZXZpb3VzIHN0dWZmCitybSAtcmYgaGdyZXBvCisKIGF1dGhvcl90ZXN0ICgpIHsKLSAgZWNobyAkMSA+PiBjb250ZW50ICYmCi0gIGhnIGNvbW1pdCAtdSAiJDIiIC1tICJhZGQgJDEiICYmCi0gIGVjaG8gIiQzIiA+PiAuLi9leHBlY3RlZAorCWVjaG8gJDEgPj4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtdSAiJDIiIC1tICJhZGQgJDEiICYmCisJZWNobyAiJDMiID4+IC4uL2V4cGVjdGVkCiB9CiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2F1dGhvcnMnICcKLSAgbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotICB0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgaGdyZXBvIGdpdHJlcG8iICYmCiAKLSAgKAotICBoZyBpbml0IGhncmVwbyAmJgotICBjZCBoZ3JlcG8gJiYKKwkoCisJaGcgaW5pdCBoZ3JlcG8gJiYKKwljZCBoZ3JlcG8gJiYKIAotICB0b3VjaCBjb250ZW50ICYmCi0gIGhnIGFkZCBjb250ZW50ICYmCisJdG91Y2ggY29udGVudCAmJgorCWhnIGFkZCBjb250ZW50ICYmCiAKLSAgYXV0aG9yX3Rlc3QgYWxwaGEgIiIgIkggRyBXZWxscyA8d2VsbHNAZXhhbXBsZS5jb20+IiAmJgotICBhdXRob3JfdGVzdCBiZXRhICJ0ZXN0IiAidGVzdCA8dW5rbm93bj4iICYmCi0gIGF1dGhvcl90ZXN0IGJldGEgInRlc3QgPHRlc3RAZXhhbXBsZS5jb20+IChjb21tZW50KSIgInRlc3QgPHRlc3RAZXhhbXBsZS5jb20+IiAmJgotICBhdXRob3JfdGVzdCBnYW1tYSAiPHRlc3RAZXhhbXBsZS5jb20+IiAiVW5rbm93biA8dGVzdEBleGFtcGxlLmNvbT4iICYmCi0gIGF1dGhvcl90ZXN0IGRlbHRhICJuYW1lPHRlc3RAZXhhbXBsZS5jb20+IiAibmFtZSA8dGVzdEBleGFtcGxlLmNvbT4iICYmCi0gIGF1dGhvcl90ZXN0IGVwc2lsb24gIm5hbWUgPHRlc3RAZXhhbXBsZS5jb20iICJuYW1lIDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKLSAgYXV0aG9yX3Rlc3QgemV0YSAiIHRlc3QgIiAidGVzdCA8dW5rbm93bj4iICYmCi0gIGF1dGhvcl90ZXN0IGV0YSAidGVzdCA8IHRlc3RAZXhhbXBsZS5jb20gPiIgInRlc3QgPHRlc3RAZXhhbXBsZS5jb20+IiAmJgotICBhdXRob3JfdGVzdCB0aGV0YSAidGVzdCA+dGVzdEBleGFtcGxlLmNvbT4iICJ0ZXN0IDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKLSAgYXV0aG9yX3Rlc3QgaW90YSAidGVzdCA8IHRlc3QgPGF0PiBleGFtcGxlIDxkb3Q+IGNvbT4iICJ0ZXN0IDx1bmtub3duPiIgJiYKLSAgYXV0aG9yX3Rlc3Qga2FwcGEgInRlc3RAZXhhbXBsZS5jb20iICJVbmtub3duIDx0ZXN0QGV4YW1wbGUuY29tPiIKLSAgKSAmJgorCT4gLi4vZXhwZWN0ZWQgJiYKKwlhdXRob3JfdGVzdCBhbHBoYSAiIiAiSCBHIFdlbGxzIDx3ZWxsc0BleGFtcGxlLmNvbT4iICYmCisJYXV0aG9yX3Rlc3QgYmV0YSAidGVzdCIgInRlc3QgPHVua25vd24+IiAmJgorCWF1dGhvcl90ZXN0IGJldGEgInRlc3QgPHRlc3RAZXhhbXBsZS5jb20+IChjb21tZW50KSIgInRlc3QgPHRlc3RAZXhhbXBsZS5jb20+IiAmJgorCWF1dGhvcl90ZXN0IGdhbW1hICI8dGVzdEBleGFtcGxlLmNvbT4iICJVbmtub3duIDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKKwlhdXRob3JfdGVzdCBkZWx0YSAibmFtZTx0ZXN0QGV4YW1wbGUuY29tPiIgIm5hbWUgPHRlc3RAZXhhbXBsZS5jb20+IiAmJgorCWF1dGhvcl90ZXN0IGVwc2lsb24gIm5hbWUgPHRlc3RAZXhhbXBsZS5jb20iICJuYW1lIDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKKwlhdXRob3JfdGVzdCB6ZXRhICIgdGVzdCAiICJ0ZXN0IDx1bmtub3duPiIgJiYKKwlhdXRob3JfdGVzdCBldGEgInRlc3QgPCB0ZXN0QGV4YW1wbGUuY29tID4iICJ0ZXN0IDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKKwlhdXRob3JfdGVzdCB0aGV0YSAidGVzdCA+dGVzdEBleGFtcGxlLmNvbT4iICJ0ZXN0IDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKKwlhdXRob3JfdGVzdCBpb3RhICJ0ZXN0IDwgdGVzdCA8YXQ+IGV4YW1wbGUgPGRvdD4gY29tPiIgInRlc3QgPHVua25vd24+IiAmJgorCWF1dGhvcl90ZXN0IGthcHBhICJ0ZXN0QGV4YW1wbGUuY29tIiAiVW5rbm93biA8dGVzdEBleGFtcGxlLmNvbT4iCisJKSAmJgogCi0gIGdpdCBjbG9uZSAiaGc6OiRQV0QvaGdyZXBvIiBnaXRyZXBvICYmCi0gIGdpdCAtLWdpdC1kaXI9Z2l0cmVwby8uZ2l0IGxvZyAtLXJldmVyc2UgLS1mb3JtYXQ9IiVhbiA8JWFlPiIgPiBhY3R1YWwgJiYKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKwlnaXQgLS1naXQtZGlyPWdpdHJlcG8vLmdpdCBsb2cgLS1yZXZlcnNlIC0tZm9ybWF0PSIlYW4gPCVhZT4iID4gYWN0dWFsICYmCiAKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0cmlwJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgaGdyZXBvIGdpdHJlcG8iICYmCisKKwkoCisJaGcgaW5pdCBoZ3JlcG8gJiYKKwljZCBoZ3JlcG8gJiYKKworCWVjaG8gb25lID4+IGNvbnRlbnQgJiYKKwloZyBhZGQgY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSBvbmUgJiYKKworCWVjaG8gdHdvID4+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gdHdvCisJKSAmJgorCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisKKwkoCisJY2QgaGdyZXBvICYmCisJaGcgc3RyaXAgMSAmJgorCisJZWNobyB0aHJlZSA+PiBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIHRocmVlICYmCisKKwllY2hvIGZvdXIgPj4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSBmb3VyCisJKSAmJgorCisJKAorCWNkIGdpdHJlcG8gJiYKKwlnaXQgZmV0Y2ggJiYKKwlnaXQgbG9nIC0tZm9ybWF0PSIlcyIgb3JpZ2luL21hc3RlciA+IC4uL2FjdHVhbAorCSkgJiYKKworCWhnIC1SIGhncmVwbyBsb2cgLS10ZW1wbGF0ZSAie2Rlc2N9XG4iID4gZXhwZWN0ZWQgJiYKKwl0ZXN0X2NtcCBhY3R1YWwgZXhwZWN0ZWQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIHB1c2ggd2l0aCBtYXN0ZXIgYm9va21hcmsnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBoZ3JlcG8gZ2l0cmVwbyoiICYmCisKKwkoCisJaGcgaW5pdCBoZ3JlcG8gJiYKKwljZCBoZ3JlcG8gJiYKKwllY2hvIHplcm8gPiBjb250ZW50ICYmCisJaGcgYWRkIGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gemVybyAmJgorCWhnIGJvb2ttYXJrIG1hc3RlciAmJgorCWVjaG8gb25lID4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSBvbmUKKwkpICYmCisKKwkoCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWVjaG8gdHdvID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLWEgLW0gdHdvICYmCisJZ2l0IHB1c2gKKwkpICYmCisKKwljaGVja19icmFuY2ggaGdyZXBvIGRlZmF1bHQgdHdvCisnCisKK2NhdCA+IGV4cGVjdGVkIDw8RU9GCitjaGFuZ2VzZXQ6ICAgMDo2ZTIxMjY0ODlkM2QKK3RhZzogICAgICAgICB0aXAKK3VzZXI6ICAgICAgICBBIFUgVGhvciA8YXV0aG9yQGV4YW1wbGUuY29tPgorZGF0ZTogICAgICAgIE1vbiBKYW4gMDEgMDA6MDA6MDAgMjAwNyArMDIzMAorc3VtbWFyeTogICAgIG9uZQorCitFT0YKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIHB1c2ggZnJvbSBtYXN0ZXIgYnJhbmNoJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgaGdyZXBvIGdpdHJlcG8qIiAmJgorCisJaGcgaW5pdCBoZ3JlcG8gJiYKKworCSgKKwlnaXQgaW5pdCBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWdpdCByZW1vdGUgYWRkIG9yaWdpbiAiaGc6Oi4uL2hncmVwbyIgJiYKKwllY2hvIG9uZSA+IGNvbnRlbnQgJiYKKwlnaXQgYWRkIGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIG9uZSAmJgorCWdpdCBwdXNoIG9yaWdpbiBtYXN0ZXIKKwkpICYmCisKKwloZyAtUiBoZ3JlcG8gbG9nID4gYWN0dWFsICYmCisJY2F0IGFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbCAmJgorCisJY2hlY2tfYnJhbmNoIGhncmVwbyBkZWZhdWx0IG9uZQorJworCitHSVRfUkVNT1RFX0hHX1RFU1RfUkVNT1RFPTEKK2V4cG9ydCBHSVRfUkVNT1RFX0hHX1RFU1RfUkVNT1RFCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW90ZSBjbG9uaW5nJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyoiICYmCisKKwkoCisJaGcgaW5pdCBoZ3JlcG8gJiYKKwljZCBoZ3JlcG8gJiYKKwllY2hvIHplcm8gPiBjb250ZW50ICYmCisJaGcgYWRkIGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gemVybworCSkgJiYKKworCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCWNoZWNrIGdpdHJlcG8gSEVBRCB6ZXJvCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW90ZSB1cGRhdGUgYm9va21hcmsnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKKworCSgKKwljZCBoZ3JlcG8gJiYKKwloZyBib29rbWFyayBkZXZlbAorCSkgJiYKKworCSgKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKwljZCBnaXRyZXBvICYmCisJZ2l0IGNoZWNrb3V0IC0tcXVpZXQgZGV2ZWwgJiYKKwllY2hvIGRldmVsID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLWEgLW0gZGV2ZWwgJiYKKwlnaXQgcHVzaCAtLXF1aWV0CisJKSAmJgorCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGRldmVsIGRldmVsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW90ZSBuZXcgYm9va21hcmsnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKKworCSgKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKwljZCBnaXRyZXBvICYmCisJZ2l0IGNoZWNrb3V0IC0tcXVpZXQgLWIgZmVhdHVyZS1iICYmCisJZWNobyBmZWF0dXJlLWIgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtYSAtbSBmZWF0dXJlLWIgJiYKKwlnaXQgcHVzaCAtLXF1aWV0IG9yaWdpbiBmZWF0dXJlLWIKKwkpICYmCisKKwljaGVja19ib29rbWFyayBoZ3JlcG8gZmVhdHVyZS1iIGZlYXR1cmUtYgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdGUgcHVzaCBkaXZlcmdlZCcgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgorCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisKKwkoCisJY2QgaGdyZXBvICYmCisJaGcgY2hlY2tvdXQgZGVmYXVsdCAmJgorCWVjaG8gYnVtcCA+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gYnVtcAorCSkgJiYKKworCSgKKwljZCBnaXRyZXBvICYmCisJZWNobyBkaXZlcmdlID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLWEgLW0gZGl2ZXJnZWQgJiYKKwljaGVja19wdXNoIDEgPDwtRU9GCisJbWFzdGVyOm5vbi1mYXN0LWZvcndhcmQKKwlFT0YKKwkpICYmCisKKwljaGVja19icmFuY2ggaGdyZXBvIGRlZmF1bHQgYnVtcAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdGUgdXBkYXRlIGJvb2ttYXJrIGRpdmVyZ2UnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKKworCSgKKwljZCBoZ3JlcG8gJiYKKwloZyBjaGVja291dCB0aXBeICYmCisJaGcgYm9va21hcmsgZGl2ZXJnZQorCSkgJiYKKworCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCisJKAorCWNkIGhncmVwbyAmJgorCWVjaG8gImJ1bXAgYm9va21hcmsiID4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSAiYnVtcCBib29rbWFyayIKKwkpICYmCisKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBjaGVja291dCAtLXF1aWV0IGRpdmVyZ2UgJiYKKwllY2hvIGRpdmVyZ2UgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtYSAtbSBkaXZlcmdlICYmCisJY2hlY2tfcHVzaCAxIDw8LUVPRgorCWRpdmVyZ2U6ZmV0Y2gtZmlyc3QKKwlFT0YKKwkpICYmCisKKwljaGVja19ib29rbWFyayBoZ3JlcG8gZGl2ZXJnZSAiYnVtcCBib29rbWFyayIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIG5ldyBib29rbWFyayBtdWx0aXBsZSBicmFuY2ggaGVhZCcgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgorCisJKAorCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCWNkIGdpdHJlcG8gJiYKKwlnaXQgY2hlY2tvdXQgLS1xdWlldCAtYiBmZWF0dXJlLWMgSEVBRF4gJiYKKwllY2hvIGZlYXR1cmUtYyA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIGZlYXR1cmUtYyAmJgorCWdpdCBwdXNoIC0tcXVpZXQgb3JpZ2luIGZlYXR1cmUtYworCSkgJiYKKworCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBmZWF0dXJlLWMgZmVhdHVyZS1jCisnCisKKyMgY2xlYW51cCBwcmV2aW91cyBzdHVmZgorcm0gLXJmIGhncmVwbworCitzZXR1cF9iaWdfcHVzaCAoKSB7CisJKAorCWhnIGluaXQgaGdyZXBvICYmCisJY2QgaGdyZXBvICYmCisJZWNobyB6ZXJvID4gY29udGVudCAmJgorCWhnIGFkZCBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIHplcm8gJiYKKwloZyBib29rbWFyayBiYWRfYm1hcmsxICYmCisJZWNobyBvbmUgPiBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIG9uZSAmJgorCWhnIGJvb2ttYXJrIGJhZF9ibWFyazIgJiYKKwloZyBib29rbWFyayBnb29kX2JtYXJrICYmCisJaGcgYm9va21hcmsgLWkgZ29vZF9ibWFyayAmJgorCWhnIC1xIGJyYW5jaCBnb29kX2JyYW5jaCAmJgorCWVjaG8gImdvb2QgYnJhbmNoIiA+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gImdvb2QgYnJhbmNoIiAmJgorCWhnIC1xIGJyYW5jaCBiYWRfYnJhbmNoICYmCisJZWNobyAiYmFkIGJyYW5jaCIgPiBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tICJiYWQgYnJhbmNoIgorCSkgJiYKKworCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCisJKAorCWNkIGdpdHJlcG8gJiYKKwllY2hvIHR3byA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1xIC1hIC1tIHR3byAmJgorCisJZ2l0IGNoZWNrb3V0IC1xIGdvb2RfYm1hcmsgJiYKKwllY2hvIHRocmVlID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLXEgLWEgLW0gdGhyZWUgJiYKKworCWdpdCBjaGVja291dCAtcSBiYWRfYm1hcmsxICYmCisJZ2l0IHJlc2V0IC0taGFyZCBIRUFEXiAmJgorCWVjaG8gZm91ciA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1xIC1hIC1tIGZvdXIgJiYKKworCWdpdCBjaGVja291dCAtcSBiYWRfYm1hcmsyICYmCisJZ2l0IHJlc2V0IC0taGFyZCBIRUFEXiAmJgorCWVjaG8gZml2ZSA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1xIC1hIC1tIGZpdmUgJiYKKworCWdpdCBjaGVja291dCAtcSAtYiBuZXdfYm1hcmsgbWFzdGVyICYmCisJZWNobyBzaXggPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSBzaXggJiYKKworCWdpdCBjaGVja291dCAtcSBicmFuY2hlcy9nb29kX2JyYW5jaCAmJgorCWVjaG8gc2V2ZW4gPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSBzZXZlbiAmJgorCWVjaG8gZWlnaHQgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSBlaWdodCAmJgorCisJZ2l0IGNoZWNrb3V0IC1xIGJyYW5jaGVzL2JhZF9icmFuY2ggJiYKKwlnaXQgcmVzZXQgLS1oYXJkIEhFQUReICYmCisJZWNobyBuaW5lID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLXEgLWEgLW0gbmluZSAmJgorCisJZ2l0IGNoZWNrb3V0IC1xIC1iIGJyYW5jaGVzL25ld19icmFuY2ggbWFzdGVyICYmCisJZWNobyB0ZW4gPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSB0ZW4KKwkpCit9CisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW90ZSBiaWcgcHVzaCcgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGhncmVwbyBnaXRyZXBvKiIgJiYKKworCXNldHVwX2JpZ19wdXNoCisKKwkoCisJY2QgZ2l0cmVwbyAmJgorCisJY2hlY2tfcHVzaCAxIC0tYWxsIDw8LUVPRgorCW1hc3RlcgorCWdvb2RfYm1hcmsKKwlicmFuY2hlcy9nb29kX2JyYW5jaAorCW5ld19ibWFyazpuZXcKKwlicmFuY2hlcy9uZXdfYnJhbmNoOm5ldworCWJhZF9ibWFyazE6bm9uLWZhc3QtZm9yd2FyZAorCWJhZF9ibWFyazI6bm9uLWZhc3QtZm9yd2FyZAorCWJyYW5jaGVzL2JhZF9icmFuY2g6bm9uLWZhc3QtZm9yd2FyZAorCUVPRgorCSkgJiYKKworCWNoZWNrX2JyYW5jaCBoZ3JlcG8gZGVmYXVsdCBvbmUgJiYKKwljaGVja19icmFuY2ggaGdyZXBvIGdvb2RfYnJhbmNoICJnb29kIGJyYW5jaCIgJiYKKwljaGVja19icmFuY2ggaGdyZXBvIGJhZF9icmFuY2ggImJhZCBicmFuY2giICYmCisJY2hlY2tfYnJhbmNoIGhncmVwbyBuZXdfYnJhbmNoICcnICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGdvb2RfYm1hcmsgb25lICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGJhZF9ibWFyazEgb25lICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGJhZF9ibWFyazIgb25lICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIG5ld19ibWFyayAnJworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdGUgYmlnIHB1c2ggZmV0Y2ggZmlyc3QnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBoZ3JlcG8gZ2l0cmVwbyoiICYmCisKKwkoCisJaGcgaW5pdCBoZ3JlcG8gJiYKKwljZCBoZ3JlcG8gJiYKKwllY2hvIHplcm8gPiBjb250ZW50ICYmCisJaGcgYWRkIGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gemVybyAmJgorCWhnIGJvb2ttYXJrIGJhZF9ibWFyayAmJgorCWhnIGJvb2ttYXJrIGdvb2RfYm1hcmsgJiYKKwloZyBib29rbWFyayAtaSBnb29kX2JtYXJrICYmCisJaGcgLXEgYnJhbmNoIGdvb2RfYnJhbmNoICYmCisJZWNobyAiZ29vZCBicmFuY2giID4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSAiZ29vZCBicmFuY2giICYmCisJaGcgLXEgYnJhbmNoIGJhZF9icmFuY2ggJiYKKwllY2hvICJiYWQgYnJhbmNoIiA+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gImJhZCBicmFuY2giCisJKSAmJgorCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisKKwkoCisJY2QgaGdyZXBvICYmCisJaGcgYm9va21hcmsgLWYgYmFkX2JtYXJrICYmCisJZWNobyB1cGRhdGVfYm1hcmsgPiBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tICJ1cGRhdGUgYm1hcmsiCisJKSAmJgorCisJKAorCWNkIGdpdHJlcG8gJiYKKwllY2hvIHR3byA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1xIC1hIC1tIHR3byAmJgorCisJZ2l0IGNoZWNrb3V0IC1xIGdvb2RfYm1hcmsgJiYKKwllY2hvIHRocmVlID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLXEgLWEgLW0gdGhyZWUgJiYKKworCWdpdCBjaGVja291dCAtcSBiYWRfYm1hcmsgJiYKKwllY2hvIGZvdXIgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSBmb3VyICYmCisKKwlnaXQgY2hlY2tvdXQgLXEgYnJhbmNoZXMvYmFkX2JyYW5jaCAmJgorCWVjaG8gZml2ZSA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1xIC1hIC1tIGZpdmUgJiYKKworCWNoZWNrX3B1c2ggMSAtLWFsbCA8PC1FT0YKKwltYXN0ZXIKKwlnb29kX2JtYXJrCisJbmV3X2JtYXJrOm5ldworCW5ld19icmFuY2g6bmV3CisJYmFkX2JtYXJrOmZldGNoLWZpcnN0CisJYnJhbmNoZXMvYmFkX2JyYW5jaDpmZXN0Y2gtZmlyc3QKKwlFT0YKKworCWdpdCBmZXRjaCAmJgorCisJY2hlY2tfcHVzaCAxIC0tYWxsIDw8LUVPRgorCW1hc3RlcgorCWdvb2RfYm1hcmsKKwliYWRfYm1hcms6bm9uLWZhc3QtZm9yd2FyZAorCWJyYW5jaGVzL2JhZF9icmFuY2g6bm9uLWZhc3QtZm9yd2FyZAorCUVPRgorCSkKKycKKwordGVzdF9leHBlY3RfZmFpbHVyZSAncmVtb3RlIGJpZyBwdXNoIGZvcmNlJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgaGdyZXBvIGdpdHJlcG8qIiAmJgorCisJc2V0dXBfYmlnX3B1c2gKKworCSgKKwljZCBnaXRyZXBvICYmCisKKwljaGVja19wdXNoIDAgLS1mb3JjZSAtLWFsbCA8PC1FT0YKKwltYXN0ZXIKKwlnb29kX2JtYXJrCisJYnJhbmNoZXMvZ29vZF9icmFuY2gKKwluZXdfYm1hcms6bmV3CisJYnJhbmNoZXMvbmV3X2JyYW5jaDpuZXcKKwliYWRfYm1hcmsxOmZvcmNlZC11cGRhdGUKKwliYWRfYm1hcmsyOmZvcmNlZC11cGRhdGUKKwlicmFuY2hlcy9iYWRfYnJhbmNoOmZvcmNlZC11cGRhdGUKKwlFT0YKKwkpICYmCisKKwljaGVja19icmFuY2ggaGdyZXBvIGRlZmF1bHQgc2l4ICYmCisJY2hlY2tfYnJhbmNoIGhncmVwbyBnb29kX2JyYW5jaCBlaWdodCAmJgorCWNoZWNrX2JyYW5jaCBoZ3JlcG8gYmFkX2JyYW5jaCBuaW5lICYmCisJY2hlY2tfYnJhbmNoIGhncmVwbyBuZXdfYnJhbmNoIHRlbiAmJgorCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBnb29kX2JtYXJrIHRocmVlICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGJhZF9ibWFyazEgZm91ciAmJgorCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBiYWRfYm1hcmsyIGZpdmUgJiYKKwljaGVja19ib29rbWFyayBoZ3JlcG8gbmV3X2JtYXJrIHNpeAorJworCit0ZXN0X2V4cGVjdF9mYWlsdXJlICdyZW1vdGUgYmlnIHB1c2ggZHJ5LXJ1bicgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGhncmVwbyBnaXRyZXBvKiIgJiYKKworCXNldHVwX2JpZ19wdXNoCisKKwkoCisJY2QgZ2l0cmVwbyAmJgorCisJY2hlY2tfcHVzaCAwIC0tZHJ5LXJ1biAtLWFsbCA8PC1FT0YKKwltYXN0ZXIKKwlnb29kX2JtYXJrCisJYnJhbmNoZXMvZ29vZF9icmFuY2gKKwluZXdfYm1hcms6bmV3CisJYnJhbmNoZXMvbmV3X2JyYW5jaDpuZXcKKwliYWRfYm1hcmsxOm5vbi1mYXN0LWZvcndhcmQKKwliYWRfYm1hcmsyOm5vbi1mYXN0LWZvcndhcmQKKwlicmFuY2hlcy9iYWRfYnJhbmNoOm5vbi1mYXN0LWZvcndhcmQKKwlFT0YKKworCWNoZWNrX3B1c2ggMCAtLWRyeS1ydW4gbWFzdGVyIGdvb2RfYm1hcmsgbmV3X2JtYXJrIGJyYW5jaGVzL2dvb2RfYnJhbmNoIGJyYW5jaGVzL25ld19icmFuY2ggPDwtRU9GCisJbWFzdGVyCisJZ29vZF9ibWFyaworCWJyYW5jaGVzL2dvb2RfYnJhbmNoCisJbmV3X2JtYXJrOm5ldworCWJyYW5jaGVzL25ld19icmFuY2g6bmV3CisJRU9GCisJKSAmJgorCisJY2hlY2tfYnJhbmNoIGhncmVwbyBkZWZhdWx0IG9uZSAmJgorCWNoZWNrX2JyYW5jaCBoZ3JlcG8gZ29vZF9icmFuY2ggImdvb2QgYnJhbmNoIiAmJgorCWNoZWNrX2JyYW5jaCBoZ3JlcG8gYmFkX2JyYW5jaCAiYmFkIGJyYW5jaCIgJiYKKwljaGVja19icmFuY2ggaGdyZXBvIG5ld19icmFuY2ggJycgJiYKKwljaGVja19ib29rbWFyayBoZ3JlcG8gZ29vZF9ibWFyayBvbmUgJiYKKwljaGVja19ib29rbWFyayBoZ3JlcG8gYmFkX2JtYXJrMSBvbmUgJiYKKwljaGVja19ib29rbWFyayBoZ3JlcG8gYmFkX2JtYXJrMiBvbmUgJiYKKwljaGVja19ib29rbWFyayBoZ3JlcG8gbmV3X2JtYXJrICcnCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW90ZSBkb3VibGUgZmFpbGVkIHB1c2gnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBoZ3JlcG8gZ2l0cmVwbyoiICYmCisKKwkoCisJaGcgaW5pdCBoZ3JlcG8gJiYKKwljZCBoZ3JlcG8gJiYKKwllY2hvIHplcm8gPiBjb250ZW50ICYmCisJaGcgYWRkIGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gemVybyAmJgorCWVjaG8gb25lID4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSBvbmUKKwkpICYmCisKKwkoCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKKwllY2hvIHR3byA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIHR3byAmJgorCXRlc3RfZXhwZWN0X2NvZGUgMSBnaXQgcHVzaCAmJgorCXRlc3RfZXhwZWN0X2NvZGUgMSBnaXQgcHVzaAorCSkKICcKIAogdGVzdF9kb25lCmRpZmYgLS1naXQgYS9jb250cmliL3N1YnRyZWUvTWFrZWZpbGUgYi9jb250cmliL3N1YnRyZWUvTWFrZWZpbGUKaW5kZXggYjUwNzUwNS4uNDM1YjJkZSAxMDA2NDQKLS0tIGEvY29udHJpYi9zdWJ0cmVlL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvc3VidHJlZS9NYWtlZmlsZQpAQCAtMzAsNiArMzAsNyBAQAogZG9jOiAkKEdJVF9TVUJUUkVFX0RPQykKIAogaW5zdGFsbDogJChHSVRfU1VCVFJFRSkKKwkkKElOU1RBTEwpIC1kIC1tIDc1NSAkKERFU1RESVIpJChsaWJleGVjZGlyKQogCSQoSU5TVEFMTCkgLW0gNzU1ICQoR0lUX1NVQlRSRUUpICQoREVTVERJUikkKGxpYmV4ZWNkaXIpCiAKIGluc3RhbGwtZG9jOiBpbnN0YWxsLW1hbgpkaWZmIC0tZ2l0IGEvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnNoIGIvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnNoCmluZGV4IDhhMjNmNTguLjdkN2FmMDMgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvc3VidHJlZS9naXQtc3VidHJlZS5zaAorKysgYi9jb250cmliL3N1YnRyZWUvZ2l0LXN1YnRyZWUuc2gKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnR4dCBiL2NvbnRyaWIvc3VidHJlZS9naXQtc3VidHJlZS50eHQKaW5kZXggN2JhODUzZS4uZTA5NTdlZSAxMDA2NDQKLS0tIGEvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnR4dAorKysgYi9jb250cmliL3N1YnRyZWUvZ2l0LXN1YnRyZWUudHh0CkBAIC0yNzAsNyArMjcwLDcgQEAKIG5hbWUKIAogWW91IGNhbiBvbWl0IHRoZSAtLXNxdWFzaCBmbGFnLCBidXQgZG9pbmcgc28gd2lsbCBpbmNyZWFzZSB0aGUgbnVtYmVyCi1vZiBjb21taXRzIHRoYXQgYXJlIGluY2xkdWVkIGluIHlvdXIgbG9jYWwgcmVwb3NpdG9yeS4KK29mIGNvbW1pdHMgdGhhdCBhcmUgaW5jbHVkZWQgaW4geW91ciBsb2NhbCByZXBvc2l0b3J5LgogCiBXZSBub3cgaGF2ZSBhIH4vZ2l0LWV4dGVuc2lvbnMvZ2l0LXN1YnRyZWUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgY29kZQogZnJvbSB0aGUgbWFzdGVyIGJyYW5jaCBvZiBnaXQ6Ly9naXRodWIuY29tL2FwZW53YXJyL2dpdC1zdWJ0cmVlLmdpdApkaWZmIC0tZ2l0IGEvY29udHJpYi9zdWJ0cmVlL3QvdDc5MDAtc3VidHJlZS5zaCBiL2NvbnRyaWIvc3VidHJlZS90L3Q3OTAwLXN1YnRyZWUuc2gKaW5kZXggYjBmODUzNi4uNjZjZTRiMCAxMDA3NTUKLS0tIGEvY29udHJpYi9zdWJ0cmVlL3QvdDc5MDAtc3VidHJlZS5zaAorKysgYi9jb250cmliL3N1YnRyZWUvdC90NzkwMC1zdWJ0cmVlLnNoCkBAIC0xODIsOSArMTgyLDkgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0NoZWNrIHRoYXQgcHJlZml4IGFyZ3VtZW50IGlzIHJlcXVpcmVkIGZvciBzcGxpdCcgJwogICAgICAgICBlY2hvICJZb3UgbXVzdCBwcm92aWRlIHRoZSAtLXByZWZpeCBvcHRpb24uIiA+IGV4cGVjdGVkICYmCiAgICAgICAgIHRlc3RfbXVzdF9mYWlsIGdpdCBzdWJ0cmVlIHNwbGl0ID4gYWN0dWFsIDI+JjEgJiYKLSAgICAgICAgdGVzdF9kZWJ1ZyAiZWNobyAtbiBleHBlY3RlZDogIiAmJgorCXRlc3RfZGVidWcgInByaW50ZiAnIiciJ2V4cGVjdGVkOiAnIiciJyIgJiYKICAgICAgICAgdGVzdF9kZWJ1ZyAiY2F0IGV4cGVjdGVkIiAmJgotICAgICAgICB0ZXN0X2RlYnVnICJlY2hvIC1uIGFjdHVhbDogIiAmJgorCXRlc3RfZGVidWcgInByaW50ZiAnIiciJ2FjdHVhbDogJyInIiciICYmCiAgICAgICAgIHRlc3RfZGVidWcgImNhdCBhY3R1YWwiICYmCiAgICAgICAgIHRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbCAmJgogICAgICAgICBybSAtZiBleHBlY3RlZCBhY3R1YWwKQEAgLTE5Myw5ICsxOTMsOSBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnQ2hlY2sgdGhhdCB0aGUgPHByZWZpeD4gZXhpc3RzIGZvciBhIHNwbGl0JyAnCiAgICAgICAgIGVjaG8gIiciJyInbm9uLWV4aXN0ZW50LWRpcmVjdG9yeSciJyInIiBkb2VzIG5vdCBleGlzdFw7IHVzZSAiJyInIidnaXQgc3VidHJlZSBhZGQnIiciJyIgPiBleHBlY3RlZCAmJgogICAgICAgICB0ZXN0X211c3RfZmFpbCBnaXQgc3VidHJlZSBzcGxpdCAtLXByZWZpeD1ub24tZXhpc3RlbnQtZGlyZWN0b3J5ID4gYWN0dWFsIDI+JjEgJiYKLSAgICAgICAgdGVzdF9kZWJ1ZyAiZWNobyAtbiBleHBlY3RlZDogIiAmJgorCXRlc3RfZGVidWcgInByaW50ZiAnIiciJ2V4cGVjdGVkOiAnIiciJyIgJiYKICAgICAgICAgdGVzdF9kZWJ1ZyAiY2F0IGV4cGVjdGVkIiAmJgotICAgICAgICB0ZXN0X2RlYnVnICJlY2hvIC1uIGFjdHVhbDogIiAmJgorCXRlc3RfZGVidWcgInByaW50ZiAnIiciJ2FjdHVhbDogJyInIiciICYmCiAgICAgICAgIHRlc3RfZGVidWcgImNhdCBhY3R1YWwiICYmCiAgICAgICAgIHRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogIyAgICAgICAgcm0gLWYgZXhwZWN0ZWQgYWN0dWFsCmRpZmYgLS1naXQgYS9jb252ZXJ0LmMgYi9jb252ZXJ0LmMKaW5kZXggMmEyZTQ2Yy4uMTFhOTVmYyAxMDA2NDQKLS0tIGEvY29udmVydC5jCisrKyBiL2NvbnZlcnQuYwpAQCAtODM1LDcgKzgzNSw3IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIFN0cmVhbWluZyBjb252ZXJpc29uIHN1cHBvcnQKKyAqIFN0cmVhbWluZyBjb252ZXJzaW9uIHN1cHBvcnQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2NvbnZlcnQuaCBiL2NvbnZlcnQuaAppbmRleCBlYzVmZDY5Li4wYzIxNDNjIDEwMDY0NAotLS0gYS9jb252ZXJ0LmgKKysrIGIvY29udmVydC5oCkBAIC00OCw3ICs0OCw3IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIFN0cmVhbWluZyBjb252ZXJpc29uIHN1cHBvcnQKKyAqIFN0cmVhbWluZyBjb252ZXJzaW9uIHN1cHBvcnQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2NyZWRlbnRpYWwtc3RvcmUuYyBiL2NyZWRlbnRpYWwtc3RvcmUuYwppbmRleCAyNmY3NTg5Li5mOTE0NmU1IDEwMDY0NAotLS0gYS9jcmVkZW50aWFsLXN0b3JlLmMKKysrIGIvY3JlZGVudGlhbC1zdG9yZS5jCkBAIC0xMTQsNyArMTE0LDcgQEAKIAlyZXR1cm4gYy0+dXNlcm5hbWUgJiYgYy0+cGFzc3dvcmQ7CiB9CiAKLWludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljb25zdCBjaGFyICogY29uc3QgdXNhZ2VbXSA9IHsKIAkJImdpdCBjcmVkZW50aWFsLXN0b3JlIFtvcHRpb25zXSA8YWN0aW9uPiIsCkBAIC0xMzEsNyArMTMxLDcgQEAKIAogCXVtYXNrKDA3Nyk7CiAKLQlhcmdjID0gcGFyc2Vfb3B0aW9ucyhhcmdjLCBhcmd2LCBOVUxMLCBvcHRpb25zLCB1c2FnZSwgMCk7CisJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgKGNvbnN0IGNoYXIgKiopYXJndiwgTlVMTCwgb3B0aW9ucywgdXNhZ2UsIDApOwogCWlmIChhcmdjICE9IDEpCiAJCXVzYWdlX3dpdGhfb3B0aW9ucyh1c2FnZSwgb3B0aW9ucyk7CiAJb3AgPSBhcmd2WzBdOwpkaWZmIC0tZ2l0IGEvZGFlbW9uLmMgYi9kYWVtb24uYwppbmRleCA2YWVkZGNiLi4zNDkxNmM1IDEwMDY0NAotLS0gYS9kYWVtb24uYworKysgYi9kYWVtb24uYwpAQCAtNzYwLDcgKzc2MCw3IEBACiAJCXNucHJpbnRmKHBvcnRidWYsIHNpemVvZihwb3J0YnVmKSwgIlJFTU9URV9QT1JUPSVkIiwKIAkJICAgIG50b2hzKHNpbl9hZGRyLT5zaW5fcG9ydCkpOwogI2lmbmRlZiBOT19JUFY2Ci0JfSBlbHNlIGlmIChhZGRyICYmIGFkZHItPnNhX2ZhbWlseSA9PSBBRl9JTkVUNikgeworCX0gZWxzZSBpZiAoYWRkci0+c2FfZmFtaWx5ID09IEFGX0lORVQ2KSB7CiAJCXN0cnVjdCBzb2NrYWRkcl9pbjYgKnNpbjZfYWRkciA9ICh2b2lkICopIGFkZHI7CiAKIAkJY2hhciAqYnVmID0gYWRkcmJ1ZiArIDEyOwpAQCAtMTA0NywxOCArMTA0Nyw2IEBACiAJfQogfQogCi0vKiBpZiBhbnkgc3RhbmRhcmQgZmlsZSBkZXNjcmlwdG9yIGlzIG1pc3Npbmcgb3BlbiBpdCB0byAvZGV2L251bGwgKi8KLXN0YXRpYyB2b2lkIHNhbml0aXplX3N0ZGZkcyh2b2lkKQotewotCWludCBmZCA9IG9wZW4oIi9kZXYvbnVsbCIsIE9fUkRXUiwgMCk7Ci0Jd2hpbGUgKGZkICE9IC0xICYmIGZkIDwgMikKLQkJZmQgPSBkdXAoZmQpOwotCWlmIChmZCA9PSAtMSkKLQkJZGllX2Vycm5vKCJvcGVuIC9kZXYvbnVsbCBvciBkdXAgZmFpbGVkIik7Ci0JaWYgKGZkID4gMikKLQkJY2xvc2UoZmQpOwotfQotCiAjaWZkZWYgTk9fUE9TSVhfR09PRElFUwogCiBzdHJ1Y3QgY3JlZGVudGlhbHM7CmRpZmYgLS1naXQgYS9kYXRlLmMgYi9kYXRlLmMKaW5kZXggZGYyMGQwYi4uMjlmMTU0MCAxMDA2NDQKLS0tIGEvZGF0ZS5jCisrKyBiL2RhdGUuYwpAQCAtNzExLDYgKzcxMSwyOCBAQAogCXJldHVybiAwOyAvKiBzdWNjZXNzICovCiB9CiAKK2ludCBwYXJzZV9leHBpcnlfZGF0ZShjb25zdCBjaGFyICpkYXRlLCB1bnNpZ25lZCBsb25nICp0aW1lc3RhbXApCit7CisJaW50IGVycm9ycyA9IDA7CisKKwlpZiAoIXN0cmNtcChkYXRlLCAibmV2ZXIiKSB8fCAhc3RyY21wKGRhdGUsICJmYWxzZSIpKQorCQkqdGltZXN0YW1wID0gMDsKKwllbHNlIGlmICghc3RyY21wKGRhdGUsICJhbGwiKSB8fCAhc3RyY21wKGRhdGUsICJub3ciKSkKKwkJLyoKKwkJICogV2UgdGFrZSBvdmVyICJub3ciIGhlcmUsIHdoaWNoIHVzdWFsbHkgdHJhbnNsYXRlcworCQkgKiB0byB0aGUgY3VycmVudCB0aW1lc3RhbXAuICBUaGlzIGlzIGJlY2F1c2UgdGhlIHVzZXIKKwkJICogcmVhbGx5IG1lYW5zIHRvIGV4cGlyZSBldmVyeXRoaW5nIHNoZSBoYXMgZG9uZSBpbgorCQkgKiB0aGUgcGFzdCwgYW5kIGJ5IGRlZmluaXRpb24gcmVmbG9ncyBhcmUgdGhlIHJlY29yZAorCQkgKiBvZiB0aGUgcGFzdCwgYW5kIHRoZXJlIGlzIG5vdGhpbmcgZnJvbSB0aGUgZnV0dXJlCisJCSAqIHRvIGJlIGtlcHQuCisJCSAqLworCQkqdGltZXN0YW1wID0gVUxPTkdfTUFYOworCWVsc2UKKwkJKnRpbWVzdGFtcCA9IGFwcHJveGlkYXRlX2NhcmVmdWwoZGF0ZSwgJmVycm9ycyk7CisKKwlyZXR1cm4gZXJyb3JzOworfQorCiBpbnQgcGFyc2VfZGF0ZShjb25zdCBjaGFyICpkYXRlLCBjaGFyICpyZXN1bHQsIGludCBtYXhsZW4pCiB7CiAJdW5zaWduZWQgbG9uZyB0aW1lc3RhbXA7CmRpZmYgLS1naXQgYS9kZWNvcmF0ZS5jIGIvZGVjb3JhdGUuYwppbmRleCAyZjhhNjNlLi43Y2I1ZDI5IDEwMDY0NAotLS0gYS9kZWNvcmF0ZS5jCisrKyBiL2RlY29yYXRlLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKIAkJY29uc3Qgc3RydWN0IG9iamVjdCAqYmFzZSA9IG9sZF9oYXNoW2ldLmJhc2U7CiAJCXZvaWQgKmRlY29yYXRpb24gPSBvbGRfaGFzaFtpXS5kZWNvcmF0aW9uOwogCi0JCWlmICghYmFzZSkKKwkJaWYgKCFkZWNvcmF0aW9uKQogCQkJY29udGludWU7CiAJCWluc2VydF9kZWNvcmF0aW9uKG4sIGJhc2UsIGRlY29yYXRpb24pOwogCX0KZGlmZiAtLWdpdCBhL2RpZmYtbGliLmMgYi9kaWZmLWxpYi5jCmluZGV4IGYzNWRlMGYuLmI2ZjRiMjEgMTAwNjQ0Ci0tLSBhL2RpZmYtbGliLmMKKysrIGIvZGlmZi1saWIuYwpAQCAtNjQsOCArNjQsOSBAQAogICogY29tbWl0cywgdW50cmFja2VkIGNvbnRlbnQgYW5kL29yIG1vZGlmaWVkIGNvbnRlbnQpLgogICovCiBzdGF0aWMgaW50IG1hdGNoX3N0YXRfd2l0aF9zdWJtb2R1bGUoc3RydWN0IGRpZmZfb3B0aW9ucyAqZGlmZm9wdCwKLQkJCQkgICAgICBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RhdCAqc3QsCi0JCQkJICAgICAgdW5zaWduZWQgY2Vfb3B0aW9uLCB1bnNpZ25lZCAqZGlydHlfc3VibW9kdWxlKQorCQkJCSAgICAgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJCQkgICAgIHN0cnVjdCBzdGF0ICpzdCwgdW5zaWduZWQgY2Vfb3B0aW9uLAorCQkJCSAgICAgdW5zaWduZWQgKmRpcnR5X3N1Ym1vZHVsZSkKIHsKIAlpbnQgY2hhbmdlZCA9IGNlX21hdGNoX3N0YXQoY2UsIHN0LCBjZV9vcHRpb24pOwogCWlmIChTX0lTR0lUTElOSyhjZS0+Y2VfbW9kZSkpIHsKQEAgLTIzNyw3ICsyMzgsNyBAQAogLyogQSBmaWxlIGVudHJ5IHdlbnQgYXdheSBvciBhcHBlYXJlZCAqLwogc3RhdGljIHZvaWQgZGlmZl9pbmRleF9zaG93X2ZpbGUoc3RydWN0IHJldl9pbmZvICpyZXZzLAogCQkJCSBjb25zdCBjaGFyICpwcmVmaXgsCi0JCQkJIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkJIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCiAJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCBzaGExX3ZhbGlkLAogCQkJCSB1bnNpZ25lZCBpbnQgbW9kZSwKIAkJCQkgdW5zaWduZWQgZGlydHlfc3VibW9kdWxlKQpAQCAtMjQ2LDcgKzI0Nyw3IEBACiAJCSAgICAgICBzaGExLCBzaGExX3ZhbGlkLCBjZS0+bmFtZSwgZGlydHlfc3VibW9kdWxlKTsKIH0KIAotc3RhdGljIGludCBnZXRfc3RhdF9kYXRhKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCitzdGF0aWMgaW50IGdldF9zdGF0X2RhdGEoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKIAkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICoqc2hhMXAsCiAJCQkgdW5zaWduZWQgaW50ICptb2RlcCwKIAkJCSBpbnQgY2FjaGVkLCBpbnQgbWF0Y2hfbWlzc2luZywKQEAgLTI4Myw3ICsyODQsNyBAQAogfQogCiBzdGF0aWMgdm9pZCBzaG93X25ld19maWxlKHN0cnVjdCByZXZfaW5mbyAqcmV2cywKLQkJCSAgc3RydWN0IGNhY2hlX2VudHJ5ICpuZXcsCisJCQkgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqbmV3LAogCQkJICBpbnQgY2FjaGVkLCBpbnQgbWF0Y2hfbWlzc2luZykKIHsKIAljb25zdCB1bnNpZ25lZCBjaGFyICpzaGExOwpAQCAtMzAyLDggKzMwMyw4IEBACiB9CiAKIHN0YXRpYyBpbnQgc2hvd19tb2RpZmllZChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCi0JCQkgc3RydWN0IGNhY2hlX2VudHJ5ICpvbGQsCi0JCQkgc3RydWN0IGNhY2hlX2VudHJ5ICpuZXcsCisJCQkgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpvbGQsCisJCQkgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpuZXcsCiAJCQkgaW50IHJlcG9ydF9taXNzaW5nLAogCQkJIGludCBjYWNoZWQsIGludCBtYXRjaF9taXNzaW5nKQogewpAQCAtMzYyLDggKzM2Myw4IEBACiAgKiBnaXZlIHlvdSB0aGUgcG9zaXRpb24gYW5kIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBpbmRleCkuCiAgKi8KIHN0YXRpYyB2b2lkIGRvX29uZXdheV9kaWZmKHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbywKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmlkeCwKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKnRyZWUpCisJCQkgICBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmlkeCwKKwkJCSAgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqdHJlZSkKIHsKIAlzdHJ1Y3QgcmV2X2luZm8gKnJldnMgPSBvLT51bnBhY2tfZGF0YTsKIAlpbnQgbWF0Y2hfbWlzc2luZywgY2FjaGVkOwpAQCAtNDIzLDEwICs0MjQsMTEgQEAKICAqIHRoZSBmYWlybHkgY29tcGxleCB1bnBhY2tfdHJlZXMoKSBzZW1hbnRpYyByZXF1aXJlbWVudHMsIGluY2x1ZGluZwogICogdGhlIHNraXBwaW5nLCB0aGUgcGF0aCBtYXRjaGluZywgdGhlIHR5cGUgY29uZmxpY3QgY2FzZXMgZXRjLgogICovCi1zdGF0aWMgaW50IG9uZXdheV9kaWZmKHN0cnVjdCBjYWNoZV9lbnRyeSAqKnNyYywgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQorc3RhdGljIGludCBvbmV3YXlfZGlmZihjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqc3JjLAorCQkgICAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqaWR4ID0gc3JjWzBdOwotCXN0cnVjdCBjYWNoZV9lbnRyeSAqdHJlZSA9IHNyY1sxXTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmlkeCA9IHNyY1swXTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKnRyZWUgPSBzcmNbMV07CiAJc3RydWN0IHJldl9pbmZvICpyZXZzID0gby0+dW5wYWNrX2RhdGE7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvZGlmZi1uby1pbmRleC5jIGIvZGlmZi1uby1pbmRleC5jCmluZGV4IDc0ZGE2NTkuLmU2NmZkZjMgMTAwNjQ0Ci0tLSBhL2RpZmYtbm8taW5kZXguYworKysgYi9kaWZmLW5vLWluZGV4LmMKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogCWlmICghcGF0aCB8fCAhc3RyY21wKHBhdGgsICIvZGV2L251bGwiKSkKIAkJKm1vZGUgPSAwOwotI2lmZGVmIF9XSU4zMgorI2lmZGVmIEdJVF9XSU5ET1dTX05BVElWRQogCWVsc2UgaWYgKCFzdHJjYXNlY21wKHBhdGgsICJudWwiKSkKIAkJKm1vZGUgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9kaWZmLmMgYi9kaWZmLmMKaW5kZXggZjBiM2U3Yy4uMjY2MTEyYyAxMDA2NDQKLS0tIGEvZGlmZi5jCisrKyBiL2RpZmYuYwpAQCAtMTY4Myw5ICsxNjgzLDcgQEAKIAkJZGVsID0gZGVsZXRlZDsKIAogCQlpZiAoZ3JhcGhfd2lkdGggPD0gbWF4X2NoYW5nZSkgewotCQkJaW50IHRvdGFsID0gYWRkICsgZGVsOwotCi0JCQl0b3RhbCA9IHNjYWxlX2xpbmVhcihhZGQgKyBkZWwsIGdyYXBoX3dpZHRoLCBtYXhfY2hhbmdlKTsKKwkJCWludCB0b3RhbCA9IHNjYWxlX2xpbmVhcihhZGQgKyBkZWwsIGdyYXBoX3dpZHRoLCBtYXhfY2hhbmdlKTsKIAkJCWlmICh0b3RhbCA8IDIgJiYgYWRkICYmIGRlbCkKIAkJCQkvKiB3aWR0aCA+PSAyIGR1ZSB0byB0aGUgc2FuaXR5IGNoZWNrICovCiAJCQkJdG90YWwgPSAyOwpAQCAtMjU4Niw3ICsyNTg0LDcgQEAKICAqLwogc3RhdGljIGludCByZXVzZV93b3JrdHJlZV9maWxlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCB3YW50X2ZpbGUpCiB7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCXN0cnVjdCBzdGF0IHN0OwogCWludCBwb3MsIGxlbjsKIApAQCAtMjY3Nyw2ICsyNjc1LDE0IEBACiBpbnQgZGlmZl9wb3B1bGF0ZV9maWxlc3BlYyhzdHJ1Y3QgZGlmZl9maWxlc3BlYyAqcywgaW50IHNpemVfb25seSkKIHsKIAlpbnQgZXJyID0gMDsKKwkvKgorCSAqIGRlbW90ZSBGQUlMIHRvIFdBUk4gdG8gYWxsb3cgaW5zcGVjdGluZyB0aGUgc2l0dWF0aW9uCisJICogaW5zdGVhZCBvZiByZWZ1c2luZy4KKwkgKi8KKwllbnVtIHNhZmVfY3JsZiBjcmxmX3dhcm4gPSAoc2FmZV9jcmxmID09IFNBRkVfQ1JMRl9GQUlMCisJCQkJICAgID8gU0FGRV9DUkxGX1dBUk4KKwkJCQkgICAgOiBzYWZlX2NybGYpOworCiAJaWYgKCFESUZGX0ZJTEVfVkFMSUQocykpCiAJCWRpZSgiaW50ZXJuYWwgZXJyb3I6IGFza2luZyB0byBwb3B1bGF0ZSBpbnZhbGlkIGZpbGUuIik7CiAJaWYgKFNfSVNESVIocy0+bW9kZSkpCkBAIC0yNzMyLDcgKzI3MzgsNyBAQAogCQkvKgogCQkgKiBDb252ZXJ0IGZyb20gd29ya2luZyB0cmVlIGZvcm1hdCB0byBjYW5vbmljYWwgZ2l0IGZvcm1hdAogCQkgKi8KLQkJaWYgKGNvbnZlcnRfdG9fZ2l0KHMtPnBhdGgsIHMtPmRhdGEsIHMtPnNpemUsICZidWYsIHNhZmVfY3JsZikpIHsKKwkJaWYgKGNvbnZlcnRfdG9fZ2l0KHMtPnBhdGgsIHMtPmRhdGEsIHMtPnNpemUsICZidWYsIGNybGZfd2FybikpIHsKIAkJCXNpemVfdCBzaXplID0gMDsKIAkJCW11bm1hcChzLT5kYXRhLCBzLT5zaXplKTsKIAkJCXMtPnNob3VsZF9tdW5tYXAgPSAwOwpAQCAtMzQ5Nyw2ICszNTAzLDExIEBACiAJcmV0dXJuIDE7CiB9CiAKK3N0YXRpYyB2b2lkIGVuYWJsZV9wYXRjaF9vdXRwdXQoaW50ICpmbXQpIHsKKwkqZm10ICY9IH5ESUZGX0ZPUk1BVF9OT19PVVRQVVQ7CisJKmZtdCB8PSBESUZGX0ZPUk1BVF9QQVRDSDsKK30KKwogaW50IGRpZmZfb3B0X3BhcnNlKHN0cnVjdCBkaWZmX29wdGlvbnMgKm9wdGlvbnMsIGNvbnN0IGNoYXIgKiphdiwgaW50IGFjKQogewogCWNvbnN0IGNoYXIgKmFyZyA9IGF2WzBdOwpAQCAtMzUwNCwxNSArMzUxNSwxNSBAQAogCWludCBhcmdjb3VudDsKIAogCS8qIE91dHB1dCBmb3JtYXQgb3B0aW9ucyAqLwotCWlmICghc3RyY21wKGFyZywgIi1wIikgfHwgIXN0cmNtcChhcmcsICItdSIpIHx8ICFzdHJjbXAoYXJnLCAiLS1wYXRjaCIpKQotCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX1BBVENIOwotCWVsc2UgaWYgKG9wdF9hcmcoYXJnLCAnVScsICJ1bmlmaWVkIiwgJm9wdGlvbnMtPmNvbnRleHQpKQotCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX1BBVENIOworCWlmICghc3RyY21wKGFyZywgIi1wIikgfHwgIXN0cmNtcChhcmcsICItdSIpIHx8ICFzdHJjbXAoYXJnLCAiLS1wYXRjaCIpCisJICAgIHx8IG9wdF9hcmcoYXJnLCAnVScsICJ1bmlmaWVkIiwgJm9wdGlvbnMtPmNvbnRleHQpKQorCQllbmFibGVfcGF0Y2hfb3V0cHV0KCZvcHRpb25zLT5vdXRwdXRfZm9ybWF0KTsKIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0tcmF3IikpCiAJCW9wdGlvbnMtPm91dHB1dF9mb3JtYXQgfD0gRElGRl9GT1JNQVRfUkFXOwotCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1wYXRjaC13aXRoLXJhdyIpKQotCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX1BBVENIIHwgRElGRl9GT1JNQVRfUkFXOwotCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1udW1zdGF0IikpCisJZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXBhdGNoLXdpdGgtcmF3IikpIHsKKwkJZW5hYmxlX3BhdGNoX291dHB1dCgmb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCk7CisJCW9wdGlvbnMtPm91dHB1dF9mb3JtYXQgfD0gRElGRl9GT1JNQVRfUkFXOworCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLW51bXN0YXQiKSkKIAkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9OVU1TVEFUOwogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1zaG9ydHN0YXQiKSkKIAkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9TSE9SVFNUQVQ7CkBAIC0zNTM0LDEzICszNTQ1LDE0IEBACiAJCW9wdGlvbnMtPm91dHB1dF9mb3JtYXQgfD0gRElGRl9GT1JNQVRfQ0hFQ0tESUZGOwogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1zdW1tYXJ5IikpCiAJCW9wdGlvbnMtPm91dHB1dF9mb3JtYXQgfD0gRElGRl9GT1JNQVRfU1VNTUFSWTsKLQllbHNlIGlmICghc3RyY21wKGFyZywgIi0tcGF0Y2gtd2l0aC1zdGF0IikpCi0JCW9wdGlvbnMtPm91dHB1dF9mb3JtYXQgfD0gRElGRl9GT1JNQVRfUEFUQ0ggfCBESUZGX0ZPUk1BVF9ESUZGU1RBVDsKLQllbHNlIGlmICghc3RyY21wKGFyZywgIi0tbmFtZS1vbmx5IikpCisJZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXBhdGNoLXdpdGgtc3RhdCIpKSB7CisJCWVuYWJsZV9wYXRjaF9vdXRwdXQoJm9wdGlvbnMtPm91dHB1dF9mb3JtYXQpOworCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX0RJRkZTVEFUOworCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLW5hbWUtb25seSIpKQogCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX05BTUU7CiAJZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLW5hbWUtc3RhdHVzIikpCiAJCW9wdGlvbnMtPm91dHB1dF9mb3JtYXQgfD0gRElGRl9GT1JNQVRfTkFNRV9TVEFUVVM7Ci0JZWxzZSBpZiAoIXN0cmNtcChhcmcsICItcyIpKQorCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLXMiKSB8fCAhc3RyY21wKGFyZywgIi0tbm8tcGF0Y2giKSkKIAkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9OT19PVVRQVVQ7CiAJZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLXN0YXQiKSkKIAkJLyogLS1zdGF0LCAtLXN0YXQtd2lkdGgsIC0tc3RhdC1uYW1lLXdpZHRoLCBvciAtLXN0YXQtY291bnQgKi8KQEAgLTM1OTMsNiArMzYwNSw4IEBACiAJCURJRkZfWERMX1NFVChvcHRpb25zLCBJR05PUkVfV0hJVEVTUEFDRV9DSEFOR0UpOwogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1pZ25vcmUtc3BhY2UtYXQtZW9sIikpCiAJCURJRkZfWERMX1NFVChvcHRpb25zLCBJR05PUkVfV0hJVEVTUEFDRV9BVF9FT0wpOworCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1pZ25vcmUtYmxhbmstbGluZXMiKSkKKwkJRElGRl9YRExfU0VUKG9wdGlvbnMsIElHTk9SRV9CTEFOS19MSU5FUyk7CiAJZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXBhdGllbmNlIikpCiAJCW9wdGlvbnMtPnhkbF9vcHRzID0gRElGRl9XSVRIX0FMRyhvcHRpb25zLCBQQVRJRU5DRV9ESUZGKTsKIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0taGlzdG9ncmFtIikpCkBAIC0zNjExLDcgKzM2MjUsNyBAQAogCiAJLyogZmxhZ3Mgb3B0aW9ucyAqLwogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1iaW5hcnkiKSkgewotCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX1BBVENIOworCQllbmFibGVfcGF0Y2hfb3V0cHV0KCZvcHRpb25zLT5vdXRwdXRfZm9ybWF0KTsKIAkJRElGRl9PUFRfU0VUKG9wdGlvbnMsIEJJTkFSWSk7CiAJfQogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1mdWxsLWluZGV4IikpCkBAIC00NDUwLDcgKzQ0NjQsNyBAQAogCSAgICBESUZGX09QVF9UU1Qob3B0aW9ucywgRElGRl9GUk9NX0NPTlRFTlRTKSkgewogCQkvKgogCQkgKiBydW4gZGlmZl9mbHVzaF9wYXRjaCBmb3IgdGhlIGV4aXQgc3RhdHVzLiBzZXR0aW5nCi0JCSAqIG9wdGlvbnMtPmZpbGUgdG8gL2Rldi9udWxsIHNob3VsZCBiZSBzYWZlLCBiZWNhdWUgd2UKKwkJICogb3B0aW9ucy0+ZmlsZSB0byAvZGV2L251bGwgc2hvdWxkIGJlIHNhZmUsIGJlY2F1c2Ugd2UKIAkJICogYXJlbid0IHN1cHBvc2VkIHRvIHByb2R1Y2UgYW55IG91dHB1dCBhbnl3YXkuCiAJCSAqLwogCQlpZiAob3B0aW9ucy0+Y2xvc2VfZmlsZSkKZGlmZiAtLWdpdCBhL2RpZmZjb3JlLXBpY2theGUuYyBiL2RpZmZjb3JlLXBpY2theGUuYwppbmRleCA2MzcyMmY4Li40MDFlYjcyIDEwMDY0NAotLS0gYS9kaWZmY29yZS1waWNrYXhlLmMKKysrIGIvZGlmZmNvcmUtcGlja2F4ZS5jCkBAIC0xMjIsNyArMTIyLDcgQEAKIAkJY2hhciBlcnJidWZbMTAyNF07CiAJCXJlZ2Vycm9yKGVyciwgJnJlZ2V4LCBlcnJidWYsIDEwMjQpOwogCQlyZWdmcmVlKCZyZWdleCk7Ci0JCWRpZSgiaW52YWxpZCBsb2ctZ3JlcCByZWdleDogJXMiLCBlcnJidWYpOworCQlkaWUoImludmFsaWQgcmVnZXg6ICVzIiwgZXJyYnVmKTsKIAl9CiAKIAlwaWNrYXhlKCZkaWZmX3F1ZXVlZF9kaWZmLCBvLCAmcmVnZXgsIE5VTEwsIGRpZmZfZ3JlcCk7CkBAIC0xMzEsOCArMTMxLDcgQEAKIAlyZXR1cm47CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgY29udGFpbnMobW1maWxlX3QgKm1mLCBzdHJ1Y3QgZGlmZl9vcHRpb25zICpvLAotCQkJICAgICByZWdleF90ICpyZWdleHAsIGt3c2V0X3Qga3dzKQorc3RhdGljIHVuc2lnbmVkIGludCBjb250YWlucyhtbWZpbGVfdCAqbWYsIHJlZ2V4X3QgKnJlZ2V4cCwga3dzZXRfdCBrd3MpCiB7CiAJdW5zaWduZWQgaW50IGNudDsKIAl1bnNpZ25lZCBsb25nIHN6OwpAQCAtMTc2LDExICsxNzUsOSBAQAogCQkgICAgICAgc3RydWN0IGRpZmZfb3B0aW9ucyAqbywKIAkJICAgICAgIHJlZ2V4X3QgKnJlZ2V4cCwga3dzZXRfdCBrd3MpCiB7Ci0JaWYgKCFvbmUpCi0JCXJldHVybiBjb250YWlucyh0d28sIG8sIHJlZ2V4cCwga3dzKSAhPSAwOwotCWlmICghdHdvKQotCQlyZXR1cm4gY29udGFpbnMob25lLCBvLCByZWdleHAsIGt3cykgIT0gMDsKLQlyZXR1cm4gY29udGFpbnMob25lLCBvLCByZWdleHAsIGt3cykgIT0gY29udGFpbnModHdvLCBvLCByZWdleHAsIGt3cyk7CisJdW5zaWduZWQgaW50IG9uZV9jb250YWlucyA9IG9uZSA/IGNvbnRhaW5zKG9uZSwgcmVnZXhwLCBrd3MpIDogMDsKKwl1bnNpZ25lZCBpbnQgdHdvX2NvbnRhaW5zID0gdHdvID8gY29udGFpbnModHdvLCByZWdleHAsIGt3cykgOiAwOworCXJldHVybiBvbmVfY29udGFpbnMgIT0gdHdvX2NvbnRhaW5zOwogfQogCiBzdGF0aWMgaW50IHBpY2theGVfbWF0Y2goc3RydWN0IGRpZmZfZmlsZXBhaXIgKnAsIHN0cnVjdCBkaWZmX29wdGlvbnMgKm8sCkBAIC0yNDYsNyArMjQzLDcgQEAKIAkJCWNoYXIgZXJyYnVmWzEwMjRdOwogCQkJcmVnZXJyb3IoZXJyLCAmcmVnZXgsIGVycmJ1ZiwgMTAyNCk7CiAJCQlyZWdmcmVlKCZyZWdleCk7Ci0JCQlkaWUoImludmFsaWQgcGlja2F4ZSByZWdleDogJXMiLCBlcnJidWYpOworCQkJZGllKCJpbnZhbGlkIHJlZ2V4OiAlcyIsIGVycmJ1Zik7CiAJCX0KIAkJcmVnZXhwID0gJnJlZ2V4OwogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kaXIuYyBiL2Rpci5jCmluZGV4IGE1OTI2ZmIuLjkxMGJmY2QgMTAwNjQ0Ci0tLSBhL2Rpci5jCisrKyBiL2Rpci5jCkBAIC04MjEsNiArODIxLDkgQEAKIAkJCQlkaXItPmJhc2VidWYsIHN0ay0+YmFzZWxlbiAtIDEsCiAJCQkJZGlyLT5iYXNlYnVmICsgY3VycmVudCwgJmR0KTsKIAkJCWRpci0+YmFzZWJ1ZltzdGstPmJhc2VsZW4gLSAxXSA9ICcvJzsKKwkJCWlmIChkaXItPmV4Y2x1ZGUgJiYKKwkJCSAgICBkaXItPmV4Y2x1ZGUtPmZsYWdzICYgRVhDX0ZMQUdfTkVHQVRJVkUpCisJCQkJZGlyLT5leGNsdWRlID0gTlVMTDsKIAkJCWlmIChkaXItPmV4Y2x1ZGUpIHsKIAkJCQlkaXItPmJhc2VidWZbc3RrLT5iYXNlbGVuXSA9IDA7CiAJCQkJZGlyLT5leGNsdWRlX3N0YWNrID0gc3RrOwpAQCAtOTMwLDcgKzkzMyw3IEBACiAgKi8KIHN0YXRpYyBlbnVtIGV4aXN0X3N0YXR1cyBkaXJlY3RvcnlfZXhpc3RzX2luX2luZGV4X2ljYXNlKGNvbnN0IGNoYXIgKmRpcm5hbWUsIGludCBsZW4pCiB7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGluZGV4X25hbWVfZXhpc3RzKCZ0aGVfaW5kZXgsIGRpcm5hbWUsIGxlbiArIDEsIGlnbm9yZV9jYXNlKTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gaW5kZXhfbmFtZV9leGlzdHMoJnRoZV9pbmRleCwgZGlybmFtZSwgbGVuICsgMSwgaWdub3JlX2Nhc2UpOwogCXVuc2lnbmVkIGNoYXIgZW5kY2hhcjsKIAogCWlmICghY2UpCkBAIC05NzQsNyArOTc3LDcgQEAKIAlpZiAocG9zIDwgMCkKIAkJcG9zID0gLXBvcy0xOwogCXdoaWxlIChwb3MgPCBhY3RpdmVfbnIpIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3MrK107CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbcG9zKytdOwogCQl1bnNpZ25lZCBjaGFyIGVuZGNoYXI7CiAKIAkJaWYgKHN0cm5jbXAoY2UtPm5hbWUsIGRpcm5hbWUsIGxlbikpCkBAIC0xMDMzLDkgKzEwMzYsNyBAQAogCQlyZXR1cm4gcGF0aF9yZWN1cnNlOwogCiAJY2FzZSBpbmRleF9naXRkaXI6Ci0JCWlmIChkaXItPmZsYWdzICYgRElSX1NIT1dfT1RIRVJfRElSRUNUT1JJRVMpCi0JCQlyZXR1cm4gcGF0aF9ub25lOwotCQlyZXR1cm4gcGF0aF91bnRyYWNrZWQ7CisJCXJldHVybiBwYXRoX25vbmU7CiAKIAljYXNlIGluZGV4X25vbmV4aXN0ZW50OgogCQlpZiAoZGlyLT5mbGFncyAmIERJUl9TSE9XX09USEVSX0RJUkVDVE9SSUVTKQpAQCAtMTExMiw3ICsxMTEzLDcgQEAKIHN0YXRpYyBpbnQgZ2V0X2luZGV4X2R0eXBlKGNvbnN0IGNoYXIgKnBhdGgsIGludCBsZW4pCiB7CiAJaW50IHBvczsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CiAKIAljZSA9IGNhY2hlX25hbWVfZXhpc3RzKHBhdGgsIGxlbiwgMCk7CiAJaWYgKGNlKSB7CkBAIC0xNTQyLDkgKzE1NDMsOSBAQAogCQlob21lX2NvbmZpZ19wYXRocyhOVUxMLCAmeGRnX3BhdGgsICJpZ25vcmUiKTsKIAkJZXhjbHVkZXNfZmlsZSA9IHhkZ19wYXRoOwogCX0KLQlpZiAoIWFjY2Vzc19vcl93YXJuKHBhdGgsIFJfT0spKQorCWlmICghYWNjZXNzX29yX3dhcm4ocGF0aCwgUl9PSywgMCkpCiAJCWFkZF9leGNsdWRlc19mcm9tX2ZpbGUoZGlyLCBwYXRoKTsKLQlpZiAoZXhjbHVkZXNfZmlsZSAmJiAhYWNjZXNzX29yX3dhcm4oZXhjbHVkZXNfZmlsZSwgUl9PSykpCisJaWYgKGV4Y2x1ZGVzX2ZpbGUgJiYgIWFjY2Vzc19vcl93YXJuKGV4Y2x1ZGVzX2ZpbGUsIFJfT0ssIDApKQogCQlhZGRfZXhjbHVkZXNfZnJvbV9maWxlKGRpciwgZXhjbHVkZXNfZmlsZSk7CiB9CiAKZGlmZiAtLWdpdCBhL2VudHJ5LmMgYi9lbnRyeS5jCmluZGV4IGQ3YzEzMWQuLmFjYzg5MmYgMTAwNjQ0Ci0tLSBhL2VudHJ5LmMKKysrIGIvZW50cnkuYwpAQCAtNzksNyArNzksNyBAQAogCXJldHVybiBvcGVuKHBhdGgsIE9fV1JPTkxZIHwgT19DUkVBVCB8IE9fRVhDTCwgbW9kZSk7CiB9CiAKLXN0YXRpYyB2b2lkICpyZWFkX2Jsb2JfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgdW5zaWduZWQgbG9uZyAqc2l6ZSkKK3N0YXRpYyB2b2lkICpyZWFkX2Jsb2JfZW50cnkoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgdW5zaWduZWQgbG9uZyAqc2l6ZSkKIHsKIAllbnVtIG9iamVjdF90eXBlIHR5cGU7CiAJdm9pZCAqbmV3ID0gcmVhZF9zaGExX2ZpbGUoY2UtPnNoYTEsICZ0eXBlLCBzaXplKTsKQEAgLTkyLDcgKzkyLDcgQEAKIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGludCBvcGVuX291dHB1dF9mZChjaGFyICpwYXRoLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBpbnQgdG9fdGVtcGZpbGUpCitzdGF0aWMgaW50IG9wZW5fb3V0cHV0X2ZkKGNoYXIgKnBhdGgsIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIGludCB0b190ZW1wZmlsZSkKIHsKIAlpbnQgc3ltbGluayA9IChjZS0+Y2VfbW9kZSAmIFNfSUZNVCkgIT0gU19JRlJFRzsKIAlpZiAodG9fdGVtcGZpbGUpIHsKQEAgLTExNSw3ICsxMTUsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHN0cmVhbWluZ193cml0ZV9lbnRyeShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBjaGFyICpwYXRoLAorc3RhdGljIGludCBzdHJlYW1pbmdfd3JpdGVfZW50cnkoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgY2hhciAqcGF0aCwKIAkJCQkgc3RydWN0IHN0cmVhbV9maWx0ZXIgKmZpbHRlciwKIAkJCQkgY29uc3Qgc3RydWN0IGNoZWNrb3V0ICpzdGF0ZSwgaW50IHRvX3RlbXBmaWxlLAogCQkJCSBpbnQgKmZzdGF0X2RvbmUsIHN0cnVjdCBzdGF0ICpzdGF0YnVmKQpAQCAtMTM2LDcgKzEzNiw4IEBACiAJcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGludCB3cml0ZV9lbnRyeShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBjaGFyICpwYXRoLCBjb25zdCBzdHJ1Y3QgY2hlY2tvdXQgKnN0YXRlLCBpbnQgdG9fdGVtcGZpbGUpCitzdGF0aWMgaW50IHdyaXRlX2VudHJ5KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCSAgICAgICBjaGFyICpwYXRoLCBjb25zdCBzdHJ1Y3QgY2hlY2tvdXQgKnN0YXRlLCBpbnQgdG9fdGVtcGZpbGUpCiB7CiAJdW5zaWduZWQgaW50IGNlX21vZGVfc19pZm10ID0gY2UtPmNlX21vZGUgJiBTX0lGTVQ7CiAJaW50IGZkLCByZXQsIGZzdGF0X2RvbmUgPSAwOwpAQCAtMTk5LDkgKzIwMCw5IEBACiAJCWJyZWFrOwogCWNhc2UgU19JRkdJVExJTks6CiAJCWlmICh0b190ZW1wZmlsZSkKLQkJCXJldHVybiBlcnJvcigiY2Fubm90IGNyZWF0ZSB0ZW1wb3Jhcnkgc3VicHJvamVjdCAlcyIsIHBhdGgpOworCQkJcmV0dXJuIGVycm9yKCJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBzdWJtb2R1bGUgJXMiLCBwYXRoKTsKIAkJaWYgKG1rZGlyKHBhdGgsIDA3NzcpIDwgMCkKLQkJCXJldHVybiBlcnJvcigiY2Fubm90IGNyZWF0ZSBzdWJwcm9qZWN0IGRpcmVjdG9yeSAlcyIsIHBhdGgpOworCQkJcmV0dXJuIGVycm9yKCJjYW5ub3QgY3JlYXRlIHN1Ym1vZHVsZSBkaXJlY3RvcnkgJXMiLCBwYXRoKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIGVycm9yKCJ1bmtub3duIGZpbGUgbW9kZSBmb3IgJXMgaW4gaW5kZXgiLCBwYXRoKTsKQEAgLTIzMyw3ICsyMzQsOCBAQAogCXJldHVybiBsc3RhdChwYXRoLCBzdCk7CiB9CiAKLWludCBjaGVja291dF9lbnRyeShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBjb25zdCBzdHJ1Y3QgY2hlY2tvdXQgKnN0YXRlLCBjaGFyICp0b3BhdGgpCitpbnQgY2hlY2tvdXRfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJICAgY29uc3Qgc3RydWN0IGNoZWNrb3V0ICpzdGF0ZSwgY2hhciAqdG9wYXRoKQogewogCXN0YXRpYyBjaGFyIHBhdGhbUEFUSF9NQVggKyAxXTsKIAlzdHJ1Y3Qgc3RhdCBzdDsKZGlmZiAtLWdpdCBhL2Vudmlyb25tZW50LmMgYi9lbnZpcm9ubWVudC5jCmluZGV4IGUyZTc1YzEuLjUzOThjMzYgMTAwNjQ0Ci0tLSBhL2Vudmlyb25tZW50LmMKKysrIGIvZW52aXJvbm1lbnQuYwpAQCAtMjIsNiArMjIsNyBAQAogaW50IGlzX2JhcmVfcmVwb3NpdG9yeV9jZmcgPSAtMTsgLyogdW5zcGVjaWZpZWQgKi8KIGludCBsb2dfYWxsX3JlZl91cGRhdGVzID0gLTE7IC8qIHVuc3BlY2lmaWVkICovCiBpbnQgd2Fybl9hbWJpZ3VvdXNfcmVmcyA9IDE7CitpbnQgd2Fybl9vbl9vYmplY3RfcmVmbmFtZV9hbWJpZ3VpdHkgPSAxOwogaW50IHJlcG9zaXRvcnlfZm9ybWF0X3ZlcnNpb247CiBjb25zdCBjaGFyICpnaXRfY29tbWl0X2VuY29kaW5nOwogY29uc3QgY2hhciAqZ2l0X2xvZ19vdXRwdXRfZW5jb2Rpbmc7CkBAIC0zNyw3ICszOCw2IEBACiBzaXplX3QgcGFja2VkX2dpdF9saW1pdCA9IERFRkFVTFRfUEFDS0VEX0dJVF9MSU1JVDsKIHNpemVfdCBkZWx0YV9iYXNlX2NhY2hlX2xpbWl0ID0gMTYgKiAxMDI0ICogMTAyNDsKIHVuc2lnbmVkIGxvbmcgYmlnX2ZpbGVfdGhyZXNob2xkID0gNTEyICogMTAyNCAqIDEwMjQ7Ci1jb25zdCBjaGFyICpsb2dfcGFja19hY2Nlc3M7CiBjb25zdCBjaGFyICpwYWdlcl9wcm9ncmFtOwogaW50IHBhZ2VyX3VzZV9jb2xvciA9IDE7CiBjb25zdCBjaGFyICplZGl0b3JfcHJvZ3JhbTsKZGlmZiAtLWdpdCBhL2V4ZWNfY21kLmggYi9leGVjX2NtZC5oCmluZGV4IGUyYjU0NmIuLmU0Yzk3MDIgMTAwNjQ0Ci0tLSBhL2V4ZWNfY21kLmgKKysrIGIvZXhlY19jbWQuaApAQCAtNyw2ICs3LDcgQEAKIGV4dGVybiB2b2lkIHNldHVwX3BhdGgodm9pZCk7CiBleHRlcm4gY29uc3QgY2hhciAqKnByZXBhcmVfZ2l0X2NtZChjb25zdCBjaGFyICoqYXJndik7CiBleHRlcm4gaW50IGV4ZWN2X2dpdF9jbWQoY29uc3QgY2hhciAqKmFyZ3YpOyAvKiBOVUxMIHRlcm1pbmF0ZWQgKi8KK0xBU1RfQVJHX01VU1RfQkVfTlVMTAogZXh0ZXJuIGludCBleGVjbF9naXRfY21kKGNvbnN0IGNoYXIgKmNtZCwgLi4uKTsKIGV4dGVybiBjb25zdCBjaGFyICpzeXN0ZW1fcGF0aChjb25zdCBjaGFyICpwYXRoKTsKIApkaWZmIC0tZ2l0IGEvZmFzdC1pbXBvcnQuYyBiL2Zhc3QtaW1wb3J0LmMKaW5kZXggNWY1MzlkNy4uMjNmNjI1ZiAxMDA2NDQKLS0tIGEvZmFzdC1pbXBvcnQuYworKysgYi9mYXN0LWltcG9ydC5jCkBAIC0yOTcsNyArMjk3LDcgQEAKIHN0YXRpYyBGSUxFICpwYWNrX2VkZ2VzOwogc3RhdGljIHVuc2lnbmVkIGludCBzaG93X3N0YXRzID0gMTsKIHN0YXRpYyBpbnQgZ2xvYmFsX2FyZ2M7Ci1zdGF0aWMgY29uc3QgY2hhciAqKmdsb2JhbF9hcmd2Oworc3RhdGljIGNoYXIgKipnbG9iYWxfYXJndjsKIAogLyogTWVtb3J5IHBvb2xzICovCiBzdGF0aWMgc2l6ZV90IG1lbV9wb29sX2FsbG9jID0gMioxMDI0KjEwMjQgLSBzaXplb2Yoc3RydWN0IG1lbV9wb29sKTsKQEAgLTE4MjIsNyArMTgyMiw3IEBACiAJCSplbmQgPSAwOwogCQltYXJrID0gc3RydG91bWF4KGxpbmUgKyAxLCAmZW5kLCAxMCk7CiAJCWlmICghbWFyayB8fCBlbmQgPT0gbGluZSArIDEKLQkJCXx8ICplbmQgIT0gJyAnIHx8IGdldF9zaGExKGVuZCArIDEsIHNoYTEpKQorCQkJfHwgKmVuZCAhPSAnICcgfHwgZ2V0X3NoYTFfaGV4KGVuZCArIDEsIHNoYTEpKQogCQkJZGllKCJjb3JydXB0IG1hcmsgbGluZTogJXMiLCBsaW5lKTsKIAkJZSA9IGZpbmRfb2JqZWN0KHNoYTEpOwogCQlpZiAoIWUpIHsKQEAgLTMzNDcsNyArMzM0Nyw3IEBACiAJCXJlYWRfbWFya3MoKTsKIH0KIAotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIGludCBpOwogCmRpZmYgLS1naXQgYS9mZXRjaC1wYWNrLmMgYi9mZXRjaC1wYWNrLmMKaW5kZXggZjE1NmRkNC4uZjVkOTljMSAxMDA2NDQKLS0tIGEvZmV0Y2gtcGFjay5jCisrKyBiL2ZldGNoLXBhY2suYwpAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgInJ1bi1jb21tYW5kLmgiCiAjaW5jbHVkZSAidHJhbnNwb3J0LmgiCiAjaW5jbHVkZSAidmVyc2lvbi5oIgorI2luY2x1ZGUgInByaW8tcXVldWUuaCIKIAogc3RhdGljIGludCB0cmFuc2Zlcl91bnBhY2tfbGltaXQgPSAtMTsKIHN0YXRpYyBpbnQgZmV0Y2hfdW5wYWNrX2xpbWl0ID0gLTE7CkBAIC0yMCw2ICsyMSw4IEBACiBzdGF0aWMgaW50IGZldGNoX2ZzY2tfb2JqZWN0cyA9IC0xOwogc3RhdGljIGludCB0cmFuc2Zlcl9mc2NrX29iamVjdHMgPSAtMTsKIHN0YXRpYyBpbnQgYWdlbnRfc3VwcG9ydGVkOworc3RhdGljIHN0cnVjdCBsb2NrX2ZpbGUgc2hhbGxvd19sb2NrOworc3RhdGljIGNvbnN0IGNoYXIgKmFsdGVybmF0ZV9zaGFsbG93X2ZpbGU7CiAKICNkZWZpbmUgQ09NUExFVEUJKDFVIDw8IDApCiAjZGVmaW5lIENPTU1PTgkJKDFVIDw8IDEpCkBAIC0zNSw3ICszOCw3IEBACiAgKi8KICNkZWZpbmUgTUFYX0lOX1ZBSU4gMjU2CiAKLXN0YXRpYyBzdHJ1Y3QgY29tbWl0X2xpc3QgKnJldl9saXN0Oworc3RhdGljIHN0cnVjdCBwcmlvX3F1ZXVlIHJldl9saXN0ID0geyBjb21wYXJlX2NvbW1pdHNfYnlfY29tbWl0X2RhdGUgfTsKIHN0YXRpYyBpbnQgbm9uX2NvbW1vbl9yZXZzLCBtdWx0aV9hY2ssIHVzZV9zaWRlYmFuZCwgYWxsb3dfdGlwX3NoYTFfaW5fd2FudDsKIAogc3RhdGljIHZvaWQgcmV2X2xpc3RfcHVzaChzdHJ1Y3QgY29tbWl0ICpjb21taXQsIGludCBtYXJrKQpAQCAtNDcsNyArNTAsNyBAQAogCQkJaWYgKHBhcnNlX2NvbW1pdChjb21taXQpKQogCQkJCXJldHVybjsKIAotCQljb21taXRfbGlzdF9pbnNlcnRfYnlfZGF0ZShjb21taXQsICZyZXZfbGlzdCk7CisJCXByaW9fcXVldWVfcHV0KCZyZXZfbGlzdCwgY29tbWl0KTsKIAogCQlpZiAoIShjb21taXQtPm9iamVjdC5mbGFncyAmIENPTU1PTikpCiAJCQlub25fY29tbW9uX3JldnMrKzsKQEAgLTEyMCwxMCArMTIzLDEwIEBACiAJCXVuc2lnbmVkIGludCBtYXJrOwogCQlzdHJ1Y3QgY29tbWl0X2xpc3QgKnBhcmVudHM7CiAKLQkJaWYgKHJldl9saXN0ID09IE5VTEwgfHwgbm9uX2NvbW1vbl9yZXZzID09IDApCisJCWlmIChyZXZfbGlzdC5uciA9PSAwIHx8IG5vbl9jb21tb25fcmV2cyA9PSAwKQogCQkJcmV0dXJuIE5VTEw7CiAKLQkJY29tbWl0ID0gcmV2X2xpc3QtPml0ZW07CisJCWNvbW1pdCA9IHByaW9fcXVldWVfZ2V0KCZyZXZfbGlzdCk7CiAJCWlmICghY29tbWl0LT5vYmplY3QucGFyc2VkKQogCQkJcGFyc2VfY29tbWl0KGNvbW1pdCk7CiAJCXBhcmVudHMgPSBjb21taXQtPnBhcmVudHM7CkBAIC0xNTAsOCArMTUzLDYgQEAKIAkJCQltYXJrX2NvbW1vbihwYXJlbnRzLT5pdGVtLCAxLCAwKTsKIAkJCXBhcmVudHMgPSBwYXJlbnRzLT5uZXh0OwogCQl9Ci0KLQkJcmV2X2xpc3QgPSByZXZfbGlzdC0+bmV4dDsKIAl9CiAKIAlyZXR1cm4gY29tbWl0LT5vYmplY3Quc2hhMTsKQEAgLTQ0MCw3ICs0NDEsNyBAQAogCQkJCQlpbl92YWluID0gMDsKIAkJCQkJZ290X2NvbnRpbnVlID0gMTsKIAkJCQkJaWYgKGFjayA9PSBBQ0tfcmVhZHkpIHsKLQkJCQkJCXJldl9saXN0ID0gTlVMTDsKKwkJCQkJCWNsZWFyX3ByaW9fcXVldWUoJnJldl9saXN0KTsKIAkJCQkJCWdvdF9yZWFkeSA9IDE7CiAJCQkJCX0KIAkJCQkJYnJlYWs7CkBAIC01MDMsNyArNTA0LDcgQEAKIAkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gKHN0cnVjdCBjb21taXQgKilvOwogCQlpZiAoIShjb21taXQtPm9iamVjdC5mbGFncyAmIENPTVBMRVRFKSkgewogCQkJY29tbWl0LT5vYmplY3QuZmxhZ3MgfD0gQ09NUExFVEU7Ci0JCQljb21taXRfbGlzdF9pbnNlcnRfYnlfZGF0ZShjb21taXQsICZjb21wbGV0ZSk7CisJCQljb21taXRfbGlzdF9pbnNlcnQoY29tbWl0LCAmY29tcGxldGUpOwogCQl9CiAJfQogCXJldHVybiAwOwpAQCAtNjIwLDYgKzYyMSw3IEBACiAJaWYgKCFhcmdzLT5kZXB0aCkgewogCQlmb3JfZWFjaF9yZWYobWFya19jb21wbGV0ZSwgTlVMTCk7CiAJCWZvcl9lYWNoX2FsdGVybmF0ZV9yZWYobWFya19hbHRlcm5hdGVfY29tcGxldGUsIE5VTEwpOworCQljb21taXRfbGlzdF9zb3J0X2J5X2RhdGUoJmNvbXBsZXRlKTsKIAkJaWYgKGN1dG9mZikKIAkJCW1hcmtfcmVjZW50X2NvbXBsZXRlX2NvbW1pdHMoYXJncywgY3V0b2ZmKTsKIAl9CkBAIC02ODMsMTIgKzY4NSwxMyBAQAogCQkgICAgaW50IHhkWzJdLCBjaGFyICoqcGFja19sb2NrZmlsZSkKIHsKIAlzdHJ1Y3QgYXN5bmMgZGVtdXg7Ci0JY29uc3QgY2hhciAqYXJndlsyMF07CisJY29uc3QgY2hhciAqYXJndlsyMl07CiAJY2hhciBrZWVwX2FyZ1syNTZdOwogCWNoYXIgaGRyX2FyZ1syNTZdOwogCWNvbnN0IGNoYXIgKiphdjsKIAlpbnQgZG9fa2VlcCA9IGFyZ3MtPmtlZXBfcGFjazsKIAlzdHJ1Y3QgY2hpbGRfcHJvY2VzcyBjbWQ7CisJaW50IHJldDsKIAogCW1lbXNldCgmZGVtdXgsIDAsIHNpemVvZihkZW11eCkpOwogCWlmICh1c2Vfc2lkZWJhbmQpIHsKQEAgLTcyNCw2ICs3MjcsMTEgQEAKIAkJCWRvX2tlZXAgPSAxOwogCX0KIAorCWlmIChhbHRlcm5hdGVfc2hhbGxvd19maWxlKSB7CisJCSphdisrID0gIi0tc2hhbGxvdy1maWxlIjsKKwkJKmF2KysgPSBhbHRlcm5hdGVfc2hhbGxvd19maWxlOworCX0KKwogCWlmIChkb19rZWVwKSB7CiAJCWlmIChwYWNrX2xvY2tmaWxlKQogCQkJY21kLm91dCA9IC0xOwpAQCAtNzQwLDExICs3NDgsMTQgQEAKIAkJCQlzdHJjcHkoa2VlcF9hcmcgKyBzLCAibG9jYWxob3N0Iik7CiAJCQkqYXYrKyA9IGtlZXBfYXJnOwogCQl9CisJCWlmIChhcmdzLT5jaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkKQorCQkJKmF2KysgPSAiLS1jaGVjay1zZWxmLWNvbnRhaW5lZC1hbmQtY29ubmVjdGVkIjsKIAl9CiAJZWxzZSB7CiAJCSphdisrID0gInVucGFjay1vYmplY3RzIjsKIAkJaWYgKGFyZ3MtPnF1aWV0IHx8IGFyZ3MtPm5vX3Byb2dyZXNzKQogCQkJKmF2KysgPSAiLXEiOworCQlhcmdzLT5jaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkID0gMDsKIAl9CiAJaWYgKCpoZHJfYXJnKQogCQkqYXYrKyA9IGhkcl9hcmc7CkBAIC03NjUsNyArNzc2LDEyIEBACiAJCWNsb3NlKGNtZC5vdXQpOwogCX0KIAotCWlmIChmaW5pc2hfY29tbWFuZCgmY21kKSkKKwlyZXQgPSBmaW5pc2hfY29tbWFuZCgmY21kKTsKKwlpZiAoIXJldCB8fCAoYXJncy0+Y2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCAmJiByZXQgPT0gMSkpCisJCWFyZ3MtPnNlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgPQorCQkJYXJncy0+Y2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCAmJgorCQkJcmV0ID09IDA7CisJZWxzZQogCQlkaWUoIiVzIGZhaWxlZCIsIGFyZ3ZbMF0pOwogCWlmICh1c2Vfc2lkZWJhbmQgJiYgZmluaXNoX2FzeW5jKCZkZW11eCkpCiAJCWRpZSgiZXJyb3IgaW4gc2lkZWJhbmQgZGVtdWx0aXBsZXhlciIpOwpAQCAtNzc5LDYgKzc5NSwyNyBAQAogCXJldHVybiBzdHJjbXAoYS0+bmFtZSwgYi0+bmFtZSk7CiB9CiAKK3N0YXRpYyB2b2lkIHNldHVwX2FsdGVybmF0ZV9zaGFsbG93KHZvaWQpCit7CisJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOworCWludCBmZDsKKworCWNoZWNrX3NoYWxsb3dfZmlsZV9mb3JfdXBkYXRlKCk7CisJZmQgPSBob2xkX2xvY2tfZmlsZV9mb3JfdXBkYXRlKCZzaGFsbG93X2xvY2ssIGdpdF9wYXRoKCJzaGFsbG93IiksCisJCQkJICAgICAgIExPQ0tfRElFX09OX0VSUk9SKTsKKwlpZiAod3JpdGVfc2hhbGxvd19jb21taXRzKCZzYiwgMCkpIHsKKwkJaWYgKHdyaXRlX2luX2Z1bGwoZmQsIHNiLmJ1Ziwgc2IubGVuKSAhPSBzYi5sZW4pCisJCQlkaWVfZXJybm8oImZhaWxlZCB0byB3cml0ZSB0byAlcyIsIHNoYWxsb3dfbG9jay5maWxlbmFtZSk7CisJCWFsdGVybmF0ZV9zaGFsbG93X2ZpbGUgPSBzaGFsbG93X2xvY2suZmlsZW5hbWU7CisJfSBlbHNlCisJCS8qCisJCSAqIGlzX3JlcG9zaXRvcnlfc2hhbGxvdygpIHNlZXMgZW1wdHkgc3RyaW5nIGFzICJubworCQkgKiBzaGFsbG93IGZpbGUiLgorCQkgKi8KKwkJYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSA9ICIiOworCXN0cmJ1Zl9yZWxlYXNlKCZzYik7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgcmVmICpkb19mZXRjaF9wYWNrKHN0cnVjdCBmZXRjaF9wYWNrX2FyZ3MgKmFyZ3MsCiAJCQkJIGludCBmZFsyXSwKIAkJCQkgY29uc3Qgc3RydWN0IHJlZiAqb3JpZ19yZWYsCkBAIC04NTgsNiArODk1LDEwIEBACiAKIAlpZiAoYXJncy0+c3RhdGVsZXNzX3JwYykKIAkJcGFja2V0X2ZsdXNoKGZkWzFdKTsKKwlpZiAoYXJncy0+ZGVwdGggPiAwKQorCQlzZXR1cF9hbHRlcm5hdGVfc2hhbGxvdygpOworCWVsc2UKKwkJYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSA9IE5VTEw7CiAJaWYgKGdldF9wYWNrKGFyZ3MsIGZkLCBwYWNrX2xvY2tmaWxlKSkKIAkJZGllKCJnaXQgZmV0Y2gtcGFjazogZmV0Y2ggZmFpbGVkLiIpOwogCkBAIC05MzYsMTUgKzk3Nyw5IEBACiAJCSAgICAgICBzdHJ1Y3QgcmVmICoqc291Z2h0LCBpbnQgbnJfc291Z2h0LAogCQkgICAgICAgY2hhciAqKnBhY2tfbG9ja2ZpbGUpCiB7Ci0Jc3RydWN0IHN0YXQgc3Q7CiAJc3RydWN0IHJlZiAqcmVmX2NweTsKIAogCWZldGNoX3BhY2tfc2V0dXAoKTsKLQlpZiAoYXJncy0+ZGVwdGggPiAwKSB7Ci0JCWlmIChzdGF0KGdpdF9wYXRoKCJzaGFsbG93IiksICZzdCkpCi0JCQlzdC5zdF9tdGltZSA9IDA7Ci0JfQotCiAJaWYgKG5yX3NvdWdodCkKIAkJbnJfc291Z2h0ID0gcmVtb3ZlX2R1cGxpY2F0ZXNfaW5fcmVmcyhzb3VnaHQsIG5yX3NvdWdodCk7CiAKQEAgLTk1NCwzNSArOTg5LDEyIEBACiAJfQogCXJlZl9jcHkgPSBkb19mZXRjaF9wYWNrKGFyZ3MsIGZkLCByZWYsIHNvdWdodCwgbnJfc291Z2h0LCBwYWNrX2xvY2tmaWxlKTsKIAotCWlmIChhcmdzLT5kZXB0aCA+IDApIHsKLQkJc3RhdGljIHN0cnVjdCBsb2NrX2ZpbGUgbG9jazsKLQkJc3RydWN0IGNhY2hlX3RpbWUgbXRpbWU7Ci0JCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKLQkJY2hhciAqc2hhbGxvdyA9IGdpdF9wYXRoKCJzaGFsbG93Iik7Ci0JCWludCBmZDsKLQotCQltdGltZS5zZWMgPSBzdC5zdF9tdGltZTsKLQkJbXRpbWUubnNlYyA9IFNUX01USU1FX05TRUMoc3QpOwotCQlpZiAoc3RhdChzaGFsbG93LCAmc3QpKSB7Ci0JCQlpZiAobXRpbWUuc2VjKQotCQkJCWRpZSgic2hhbGxvdyBmaWxlIHdhcyByZW1vdmVkIGR1cmluZyBmZXRjaCIpOwotCQl9IGVsc2UgaWYgKHN0LnN0X210aW1lICE9IG10aW1lLnNlYwotI2lmZGVmIFVTRV9OU0VDCi0JCQkJfHwgU1RfTVRJTUVfTlNFQyhzdCkgIT0gbXRpbWUubnNlYwotI2VuZGlmCi0JCQkgICkKLQkJCWRpZSgic2hhbGxvdyBmaWxlIHdhcyBjaGFuZ2VkIGR1cmluZyBmZXRjaCIpOwotCi0JCWZkID0gaG9sZF9sb2NrX2ZpbGVfZm9yX3VwZGF0ZSgmbG9jaywgc2hhbGxvdywKLQkJCQkJICAgICAgIExPQ0tfRElFX09OX0VSUk9SKTsKLQkJaWYgKCF3cml0ZV9zaGFsbG93X2NvbW1pdHMoJnNiLCAwKQotCQkgfHwgd3JpdGVfaW5fZnVsbChmZCwgc2IuYnVmLCBzYi5sZW4pICE9IHNiLmxlbikgewotCQkJdW5saW5rX29yX3dhcm4oc2hhbGxvdyk7Ci0JCQlyb2xsYmFja19sb2NrX2ZpbGUoJmxvY2spOwotCQl9IGVsc2UgewotCQkJY29tbWl0X2xvY2tfZmlsZSgmbG9jayk7Ci0JCX0KLQkJc3RyYnVmX3JlbGVhc2UoJnNiKTsKKwlpZiAoYXJncy0+ZGVwdGggPiAwICYmIGFsdGVybmF0ZV9zaGFsbG93X2ZpbGUpIHsKKwkJaWYgKCphbHRlcm5hdGVfc2hhbGxvd19maWxlID09ICdcMCcpIHsgLyogLS11bnNoYWxsb3cgKi8KKwkJCXVubGlua19vcl93YXJuKGdpdF9wYXRoKCJzaGFsbG93IikpOworCQkJcm9sbGJhY2tfbG9ja19maWxlKCZzaGFsbG93X2xvY2spOworCQl9IGVsc2UKKwkJCWNvbW1pdF9sb2NrX2ZpbGUoJnNoYWxsb3dfbG9jayk7CiAJfQogCiAJcmVwcmVwYXJlX3BhY2tlZF9naXQoKTsKZGlmZiAtLWdpdCBhL2ZldGNoLXBhY2suaCBiL2ZldGNoLXBhY2suaAppbmRleCBkYzUyNjZjLi40MGYwOGJhIDEwMDY0NAotLS0gYS9mZXRjaC1wYWNrLmgKKysrIGIvZmV0Y2gtcGFjay5oCkBAIC0xNiw3ICsxNiw5IEBACiAJCXZlcmJvc2U6MSwKIAkJbm9fcHJvZ3Jlc3M6MSwKIAkJaW5jbHVkZV90YWc6MSwKLQkJc3RhdGVsZXNzX3JwYzoxOworCQlzdGF0ZWxlc3NfcnBjOjEsCisJCWNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQ6MSwKKwkJc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZDoxOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2ZpeHVwLWJ1aWx0aW5zIGIvZml4dXAtYnVpbHRpbnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDYzZGZhNGMuLjAwMDAwMDAKLS0tIGEvZml4dXAtYnVpbHRpbnMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0jIS9iaW4vc2gKLXdoaWxlIFsgIiQxIiBdCi1kbwotCWlmIFsgIiQxIiAhPSAiZ2l0LXNoLXNldHVwIiAtYSAiJDEiICE9ICJnaXQtcGFyc2UtcmVtb3RlIiAtYSAiJDEiICE9ICJnaXQtc3ZuIiBdOyB0aGVuCi0JCW9sZD0iJDEiCi0JCW5ldz0kKGVjaG8gIiQxIiB8IHNlZCAncy9naXQtL2dpdCAvJykKLQkJZWNobyAiQ29udmVydGluZyAnJG9sZCcgdG8gJyRuZXcnIgotCQlzZWQgLWkgInMvXFw8JG9sZFxcPi8kbmV3L2ciICQoZ2l0IGxzLWZpbGVzICcqLnNoJykKLQlmaQotCXNoaWZ0Ci1kb25lCi0KLXNlZCAtaSAncy9naXQgbWVyZ2Utb25lLWZpbGUvZ2l0LW1lcmdlLW9uZS1maWxlL2cKLXMvZ2l0IHJlYmFzZS10b2RvL2dpdC1yZWJhc2UtdG9kby9nJyAkKGdpdCBscy1maWxlcyAnKi5zaCcpCi1naXQgdXBkYXRlLWluZGV4IC0tcmVmcmVzaCA+JiAvZGV2L251bGwKLWV4aXQgMApkaWZmIC0tZ2l0IGEvZ2l0LWFkZC0taW50ZXJhY3RpdmUucGVybCBiL2dpdC1hZGQtLWludGVyYWN0aXZlLnBlcmwKaW5kZXggZDJjNGNlNi4uNzVhOTkxZiAxMDA3NTUKLS0tIGEvZ2l0LWFkZC0taW50ZXJhY3RpdmUucGVybAorKysgYi9naXQtYWRkLS1pbnRlcmFjdGl2ZS5wZXJsCkBAIC00NCw2ICs0NCw4IEBACiAKIG15ICRub3JtYWxfY29sb3IgPSAkcmVwby0+Z2V0X2NvbG9yKCIiLCAicmVzZXQiKTsKIAorbXkgJGRpZmZfYWxnb3JpdGhtID0gJHJlcG8tPmNvbmZpZygnZGlmZi5hbGdvcml0aG0nKTsKKwogbXkgJHVzZV9yZWFka2V5ID0gMDsKIG15ICR1c2VfdGVybWNhcCA9IDA7CiBteSAldGVybV9lc2NhcGVzOwpAQCAtNzMxLDYgKzczMyw5IEBACiBzdWIgcGFyc2VfZGlmZiB7CiAJbXkgKCRwYXRoKSA9IEBfOwogCW15IEBkaWZmX2NtZCA9IHNwbGl0KCIgIiwgJHBhdGNoX21vZGVfZmxhdm91cntESUZGfSk7CisJaWYgKGRlZmluZWQgJGRpZmZfYWxnb3JpdGhtKSB7CisJCXNwbGljZSBAZGlmZl9jbWQsIDEsIDAsICItLWRpZmYtYWxnb3JpdGhtPSR7ZGlmZl9hbGdvcml0aG19IjsKKwl9CiAJaWYgKGRlZmluZWQgJHBhdGNoX21vZGVfcmV2aXNpb24pIHsKIAkJcHVzaCBAZGlmZl9jbWQsICRwYXRjaF9tb2RlX3JldmlzaW9uOwogCX0KZGlmZiAtLWdpdCBhL2dpdC1hbS5zaCBiL2dpdC1hbS5zaAppbmRleCBjMDkyODU1Li43ZWE0MGZlIDEwMDc1NQotLS0gYS9naXQtYW0uc2gKKysrIGIvZ2l0LWFtLnNoCkBAIC02LDcgKzYsNyBAQAogT1BUSU9OU19LRUVQREFTSERBU0g9CiBPUFRJT05TX1NQRUM9IlwKIGdpdCBhbSBbb3B0aW9uc10gWyg8bWJveD58PE1haWxkaXI+KS4uLl0KLWdpdCBhbSBbb3B0aW9uc10gKC0tcmVzb2x2ZWQgfCAtLXNraXAgfCAtLWFib3J0KQorZ2l0IGFtIFtvcHRpb25zXSAoLS1jb250aW51ZSB8IC0tc2tpcCB8IC0tYWJvcnQpCiAtLQogaSxpbnRlcmFjdGl2ZSAgIHJ1biBpbnRlcmFjdGl2ZWx5CiBiLGJpbmFyeSogICAgICAgKGhpc3RvcmljYWwgb3B0aW9uIC0tIG5vLW9wKQpAQCAtMTAyLDcgKzEwMiw3IEBACiAJICAgIHByaW50ZiAnJXNcbicgIiRyZXNvbHZlbXNnIgogCSAgICBzdG9wX2hlcmUgJDEKICAgICBmaQotICAgIGV2YWxfZ2V0dGV4dGxuICJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiXCRjbWRsaW5lIC0tcmVzb2x2ZWRcIi4KKyAgICBldmFsX2dldHRleHRsbiAiV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIlwkY21kbGluZSAtLWNvbnRpbnVlXCIuCiBJZiB5b3UgcHJlZmVyIHRvIHNraXAgdGhpcyBwYXRjaCwgcnVuIFwiXCRjbWRsaW5lIC0tc2tpcFwiIGluc3RlYWQuCiBUbyByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2ggYW5kIHN0b3AgcGF0Y2hpbmcsIHJ1biBcIlwkY21kbGluZSAtLWFib3J0XCIuIgogCkBAIC00NDYsNiArNDQ2LDggQEAKICMgSWYgdGhlIGRvdGVzdCBkaXJlY3RvcnkgZXhpc3RzLCBidXQgd2UgaGF2ZSBmaW5pc2hlZCBhcHBseWluZyBhbGwgdGhlCiAjIHBhdGNoZXMgaW4gdGhlbSwgY2xlYXIgaXQgb3V0LgogaWYgdGVzdCAtZCAiJGRvdGVzdCIgJiYKKyAgIHRlc3QgLWYgIiRkb3Rlc3QvbGFzdCIgJiYKKyAgIHRlc3QgLWYgIiRkb3Rlc3QvbmV4dCIgJiYKICAgIGxhc3Q9JChjYXQgIiRkb3Rlc3QvbGFzdCIpICYmCiAgICBuZXh0PSQoY2F0ICIkZG90ZXN0L25leHQiKSAmJgogICAgdGVzdCAkIyAhPSAwICYmCkBAIC00NTQsNyArNDU2LDcgQEAKICAgIHJtIC1mciAiJGRvdGVzdCIKIGZpCiAKLWlmIHRlc3QgLWQgIiRkb3Rlc3QiCitpZiB0ZXN0IC1kICIkZG90ZXN0IiAmJiB0ZXN0IC1mICIkZG90ZXN0L2xhc3QiICYmIHRlc3QgLWYgIiRkb3Rlc3QvbmV4dCIKIHRoZW4KIAljYXNlICIkIywkc2tpcCRyZXNvbHZlZCRhYm9ydCIgaW4KIAkwLCp0KikKQEAgLTUwNCw3ICs1MDYsMjQgQEAKIAllc2FjCiAJcm0gLWYgIiRkb3Rlc3QvZGlydHlpbmRleCIKIGVsc2UKLQkjIE1ha2Ugc3VyZSB3ZSBhcmUgbm90IGdpdmVuIC0tc2tpcCwgLS1yZXNvbHZlZCwgbm9yIC0tYWJvcnQKKwkjIFBvc3NpYmxlIHN0cmF5ICRkb3Rlc3QgZGlyZWN0b3J5IGluIHRoZSBpbmRlcGVuZGVudC1ydW4KKwkjIGNhc2U7IGluIHRoZSAtLXJlYmFzaW5nIGNhc2UsIGl0IGlzIHVwdG8gdGhlIGNhbGxlcgorCSMgKGdpdC1yZWJhc2UtLWFtKSB0byB0YWtlIGNhcmUgb2Ygc3RyYXkgZGlyZWN0b3JpZXMuCisJaWYgdGVzdCAtZCAiJGRvdGVzdCIgJiYgdGVzdCAteiAiJHJlYmFzaW5nIgorCXRoZW4KKwkJY2FzZSAiJHNraXAsJHJlc29sdmVkLCRhYm9ydCIgaW4KKwkJLCx0KQorCQkJcm0gLWZyICIkZG90ZXN0IgorCQkJZXhpdCAwCisJCQk7OworCQkqKQorCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiU3RyYXkgXCRkb3Rlc3QgZGlyZWN0b3J5IGZvdW5kLgorVXNlIFwiZ2l0IGFtIC0tYWJvcnRcIiB0byByZW1vdmUgaXQuIikiCisJCQk7OworCQllc2FjCisJZmkKKworCSMgTWFrZSBzdXJlIHdlIGFyZSBub3QgZ2l2ZW4gLS1za2lwLCAtLWNvbnRpbnVlLCBub3IgLS1hYm9ydAogCXRlc3QgIiRza2lwJHJlc29sdmVkJGFib3J0IiA9ICIiIHx8CiAJCWRpZSAiJChnZXR0ZXh0ICJSZXNvbHZlIG9wZXJhdGlvbiBub3QgaW4gcHJvZ3Jlc3MsIHdlIGFyZSBub3QgcmVzdW1pbmcuIikiCiAKQEAgLTY1MSw3ICs2NzAsNyBAQAogCSMgIC0gcGF0Y2ggaXMgdGhlIHBhdGNoIGJvZHkuCiAJIwogCSMgV2hlbiB3ZSBhcmUgcmVzdW1pbmcsIHRoZXNlIGZpbGVzIGFyZSBlaXRoZXIgYWxyZWFkeSBwcmVwYXJlZAotCSMgYnkgdGhlIHVzZXIsIG9yIHRoZSB1c2VyIGNhbiB0ZWxsIHVzIHRvIGRvIHNvIGJ5IC0tcmVzb2x2ZWQgZmxhZy4KKwkjIGJ5IHRoZSB1c2VyLCBvciB0aGUgdXNlciBjYW4gdGVsbCB1cyB0byBkbyBzbyBieSAtLWNvbnRpbnVlIGZsYWcuCiAJY2FzZSAiJHJlc3VtZSIgaW4KIAknJykKIAkJaWYgdGVzdCAtZiAiJGRvdGVzdC9yZWJhc2luZyIKQEAgLTkwNCw1ICs5MjMsMTAgQEAKICAgICBmaQogZmkKIAotcm0gLWZyICIkZG90ZXN0IgotZ2l0IGdjIC0tYXV0bworIyBJZiBhbSB3YXMgY2FsbGVkIHdpdGggLS1yZWJhc2luZyAoZnJvbSBnaXQtcmViYXNlLS1hbSksIGl0J3MgdXAgdG8KKyMgdGhlIGNhbGxlciB0byB0YWtlIGNhcmUgb2YgaG91c2VrZWVwaW5nLgoraWYgISB0ZXN0IC1mICIkZG90ZXN0L3JlYmFzaW5nIgordGhlbgorCXJtIC1mciAiJGRvdGVzdCIKKwlnaXQgZ2MgLS1hdXRvCitmaQpkaWZmIC0tZ2l0IGEvZ2l0LWJpc2VjdC5zaCBiL2dpdC1iaXNlY3Quc2gKaW5kZXggZDc1MThlOS4uOWYwNjRiNiAxMDA3NTUKLS0tIGEvZ2l0LWJpc2VjdC5zaAorKysgYi9naXQtYmlzZWN0LnNoCkBAIC0zMjAsOCArMzIwLDggQEAKIAllbGlmIHRlc3QgJHJlcyAtZXEgMgogCXRoZW4KIAkJZWNobyAiIyBvbmx5IHNraXBwZWQgY29tbWl0cyBsZWZ0IHRvIHRlc3QiID4+IiRHSVRfRElSL0JJU0VDVF9MT0ciCi0JCWdvb2RfcmV2cz0kKGdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQ9Ii0tbm90ICUob2JqZWN0bmFtZSkiICJyZWZzL2Jpc2VjdC9nb29kLSoiKQotCQlmb3Igc2tpcHBlZCBpbiAkKGdpdCByZXYtbGlzdCByZWZzL2Jpc2VjdC9iYWQgJGdvb2RfcmV2cykKKwkJZ29vZF9yZXZzPSQoZ2l0IGZvci1lYWNoLXJlZiAtLWZvcm1hdD0iJShvYmplY3RuYW1lKSIgInJlZnMvYmlzZWN0L2dvb2QtKiIpCisJCWZvciBza2lwcGVkIGluICQoZ2l0IHJldi1saXN0IHJlZnMvYmlzZWN0L2JhZCAtLW5vdCAkZ29vZF9yZXZzKQogCQlkbwogCQkJc2tpcHBlZF9jb21taXQ9JChnaXQgc2hvdy1icmFuY2ggJHNraXBwZWQpCiAJCQllY2hvICIjIHBvc3NpYmxlIGZpcnN0IGJhZCBjb21taXQ6ICRza2lwcGVkX2NvbW1pdCIgPj4iJEdJVF9ESVIvQklTRUNUX0xPRyIKZGlmZiAtLWdpdCBhL2dpdC1jb21wYXQtdXRpbC5oIGIvZ2l0LWNvbXBhdC11dGlsLmgKaW5kZXggZTk1NWJiNS4uOTZkODg4MSAxMDA2NDQKLS0tIGEvZ2l0LWNvbXBhdC11dGlsLmgKKysrIGIvZ2l0LWNvbXBhdC11dGlsLmgKQEAgLTg1LDEzICs4NSwxNCBAQAogI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCiAjZGVmaW5lIF9TR0lfU09VUkNFIDEKIAotI2lmZGVmIFdJTjMyIC8qIEJvdGggTWluR1cgYW5kIE1TVkMgKi8KKyNpZiBkZWZpbmVkKFdJTjMyKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKSAvKiBCb3RoIE1pbkdXIGFuZCBNU1ZDICovCiAjIGlmIGRlZmluZWQgKF9NU0NfVkVSKQogIyAgZGVmaW5lIF9XSU4zMl9XSU5OVCAweDA1MDIKICMgZW5kaWYKICNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTiAgLyogc3RvcHMgd2luZG93cy5oIGluY2x1ZGluZyB3aW5zb2NrLmggKi8KICNpbmNsdWRlIDx3aW5zb2NrMi5oPgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNkZWZpbmUgR0lUX1dJTkRPV1NfTkFUSVZFCiAjZW5kaWYKIAogI2luY2x1ZGUgPHVuaXN0ZC5oPgpAQCAtMTI3LDYgKzEyOCw3IEBACiAjZWxzZQogI2luY2x1ZGUgPHBvbGwuaD4KICNlbmRpZgorCiAjaWYgZGVmaW5lZChfX01JTkdXMzJfXykKIC8qIHB1bGwgaW4gV2luZG93cyBjb21wYXRpYmlsaXR5IHN0dWZmICovCiAjaW5jbHVkZSAiY29tcGF0L21pbmd3LmgiCkBAIC0xNjMsMTIgKzE2NSwxMCBAQAogdHlwZWRlZiBsb25nIGludHB0cl90OwogdHlwZWRlZiB1bnNpZ25lZCBsb25nIHVpbnRwdHJfdDsKICNlbmRpZgotaW50IGdldF9zdF9tb2RlX2JpdHMoY29uc3QgY2hhciAqcGF0aCwgaW50ICptb2RlKTsKICNpZiBkZWZpbmVkKF9fQ1lHV0lOX18pCiAjdW5kZWYgX1hPUEVOX1NPVVJDRQogI2luY2x1ZGUgPGdycC5oPgogI2RlZmluZSBfWE9QRU5fU09VUkNFIDYwMAotI2luY2x1ZGUgImNvbXBhdC9jeWd3aW4uaCIKICNlbHNlCiAjdW5kZWYgX0FMTF9TT1VSQ0UgLyogQUlYIDUuM0wgZGVmaW5lcyBhIHN0cnVjdCBsaXN0IHdpdGggX0FMTF9TT1VSQ0UuICovCiAjaW5jbHVkZSA8Z3JwLmg+CkBAIC0yOTUsNiArMjk1LDEzIEBACiAjZW5kaWYKICNlbmRpZgogCisvKiBUaGUgc2VudGluZWwgYXR0cmlidXRlIGlzIHZhbGlkIGZyb20gZ2NjIHZlcnNpb24gNC4wICovCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID49IDQpCisjZGVmaW5lIExBU1RfQVJHX01VU1RfQkVfTlVMTCBfX2F0dHJpYnV0ZV9fKChzZW50aW5lbCkpCisjZWxzZQorI2RlZmluZSBMQVNUX0FSR19NVVNUX0JFX05VTEwKKyNlbmRpZgorCiAjaW5jbHVkZSAiY29tcGF0L2Jzd2FwLmgiCiAKICNpZmRlZiBVU0VfV0lMRE1BVENICkBAIC02OTIsOCArNjk5LDkgQEAKICAqIENhbGwgYWNjZXNzKDIpLCBidXQgd2FybiBmb3IgYW55IGVycm9yIGV4Y2VwdCAibWlzc2luZyBmaWxlIgogICogKEVOT0VOVCBvciBFTk9URElSKS4KICAqLwotaW50IGFjY2Vzc19vcl93YXJuKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlKTsKLWludCBhY2Nlc3Nfb3JfZGllKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlKTsKKyNkZWZpbmUgQUNDRVNTX0VBQ0NFU19PSyAoMVUgPDwgMCkKK2ludCBhY2Nlc3Nfb3Jfd2Fybihjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSwgdW5zaWduZWQgZmxhZyk7CitpbnQgYWNjZXNzX29yX2RpZShjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSwgdW5zaWduZWQgZmxhZyk7CiAKIC8qIFdhcm4gb24gYW4gaW5hY2Nlc3NpYmxlIGZpbGUgdGhhdCBvdWdodCB0byBiZSBhY2Nlc3NpYmxlICovCiB2b2lkIHdhcm5fb25faW5hY2Nlc3NpYmxlKGNvbnN0IGNoYXIgKnBhdGgpOwpkaWZmIC0tZ2l0IGEvZ2l0LWRpZmZ0b29sLnBlcmwgYi9naXQtZGlmZnRvb2wucGVybAppbmRleCA4YTc1MjA1Li5lNTdkM2QxMiAxMDA3NTUKLS0tIGEvZ2l0LWRpZmZ0b29sLnBlcmwKKysrIGIvZ2l0LWRpZmZ0b29sLnBlcmwKQEAgLTg1LDEzICs4NSw5IEBACiAKIHN1YiB1c2Vfd3RfZmlsZQogewotCW15ICgkcmVwbywgJHdvcmtkaXIsICRmaWxlLCAkc2hhMSwgJHN5bWxpbmtzKSA9IEBfOworCW15ICgkcmVwbywgJHdvcmtkaXIsICRmaWxlLCAkc2hhMSkgPSBAXzsKIAlteSAkbnVsbF9zaGExID0gJzAnIHggNDA7CiAKLQlpZiAoJHNoYTEgbmUgJG51bGxfc2hhMSBhbmQgbm90ICRzeW1saW5rcykgewotCQlyZXR1cm4gMDsKLQl9Ci0KIAlpZiAoISAtZSAiJHdvcmtkaXIvJGZpbGUiKSB7CiAJCSMgSWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdCBpbiB0aGUgd29ya2luZyB0cmVlLCB3ZSBjYW5ub3QKIAkJIyB1c2UgaXQuCkBAIC0yMTMsOCArMjA5LDcgQEAKIAogCQlpZiAoJHJtb2RlIG5lICRudWxsX21vZGUpIHsKIAkJCW15ICgkdXNlLCAkd3Rfc2hhMSkgPSB1c2Vfd3RfZmlsZSgkcmVwbywgJHdvcmtkaXIsCi0JCQkJCQkJICAkZHN0X3BhdGgsICRyc2hhMSwKLQkJCQkJCQkgICRzeW1saW5rcyk7CisJCQkJCQkJICAkZHN0X3BhdGgsICRyc2hhMSk7CiAJCQlpZiAoJHVzZSkgewogCQkJCXB1c2ggQHdvcmtpbmdfdHJlZSwgJGRzdF9wYXRoOwogCQkJCSR3dGluZGV4IC49ICIkcm1vZGUgJHd0X3NoYTFcdCRkc3RfcGF0aFwwIjsKZGlmZiAtLWdpdCBhL2dpdC1ndWkvR0lULVZFUlNJT04tR0VOIGIvZ2l0LWd1aS9HSVQtVkVSU0lPTi1HRU4KaW5kZXggNDliNjJlYS4uMGExZjhkNCAxMDA3NTUKLS0tIGEvZ2l0LWd1aS9HSVQtVkVSU0lPTi1HRU4KKysrIGIvZ2l0LWd1aS9HSVQtVkVSU0lPTi1HRU4KQEAgLTEsNyArMSw3IEBACiAjIS9iaW4vc2gKIAogR1ZGPUdJVC1WRVJTSU9OLUZJTEUKLURFRl9WRVI9MC4xNy5HSVRHVUkKK0RFRl9WRVI9MC4xOC5HSVRHVUkKIAogTEY9JwogJwpkaWZmIC0tZ2l0IGEvZ2l0LWd1aS9NYWtlZmlsZSBiL2dpdC1ndWkvTWFrZWZpbGUKaW5kZXggZTIyYmE1Yy4uZTljMmJjMyAxMDA2NDQKLS0tIGEvZ2l0LWd1aS9NYWtlZmlsZQorKysgYi9naXQtZ3VpL01ha2VmaWxlCkBAIC0yNTQsNyArMjU0LDcgQEAKIAkgIGF1dG9fbWtpbmRleCBsaWIgJyoudGNsJyBcCiAJfCAkKFRDTF9QQVRIKSAkKFFVSUVUXzJERVZOVUxMKTsgdGhlbiA6IG9rOyBcCiAJZWxzZSBcCi0JIGVjaG8gMT4mMiAiICAgICogJChUQ0xfUEFUSCkgZmFpbGVkOyB1c2luZyB1bm9wdGltaXplZCBsb2FkaW5nIjsgXAorCSBlY2hvID4mMiAiICAgICogJChUQ0xfUEFUSCkgZmFpbGVkOyB1c2luZyB1bm9wdGltaXplZCBsb2FkaW5nIjsgXAogCSBybSAtZiAkQCA7IFwKIAkgZWNobyAnIyBBdXRvZ2VuZXJhdGVkIGJ5IGdpdC1ndWkgTWFrZWZpbGUnID4kQCAmJiBcCiAJIGVjaG8gPj4kQCAmJiBcCkBAIC0yNzQsOCArMjc0LDggQEAKIEdJVC1HVUktVkFSUzogRk9SQ0UKIAlAVkFSUz0nJChUUkFDS19WQVJTKSc7IFwKIAlpZiB0ZXN0IHgiJCRWQVJTIiAhPSB4ImBjYXQgJEAgMj4vZGV2L251bGxgIiA7IHRoZW4gXAotCQllY2hvIDE+JjIgIiAgICAqIG5ldyBsb2NhdGlvbnMgb3IgVGNsL1RrIGludGVycHJldGVyIjsgXAotCQllY2hvIDE+JEAgIiQkVkFSUyI7IFwKKwkJZWNobyA+JjIgIiAgICAqIG5ldyBsb2NhdGlvbnMgb3IgVGNsL1RrIGludGVycHJldGVyIjsgXAorCQllY2hvID4kQCAiJCRWQVJTIjsgXAogCWZpCiAKIGlmZGVmIEdJVEdVSV9NQUNPU1hBUFAKZGlmZiAtLWdpdCBhL2dpdC1ndWkvZ2l0LWd1aS5zaCBiL2dpdC1ndWkvZ2l0LWd1aS5zaAppbmRleCA4OWY2MzZmLi4xNTNmODVkIDEwMDc1NQotLS0gYS9naXQtZ3VpL2dpdC1ndWkuc2gKKysrIGIvZ2l0LWd1aS9naXQtZ3VpLnNoCkBAIC0xMzcsNiArMTM3LDIwIEBACiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjCisjIyBPbiBNYWMsIGJyaW5nIHRoZSBjdXJyZW50IFdpc2ggcHJvY2VzcyB3aW5kb3cgdG8gZnJvbnQKKworaWYge1t0ayB3aW5kb3dpbmdzeXN0ZW1dIGVxICJhcXVhIn0geworCWNhdGNoIHsKKwkJZXhlYyBvc2FzY3JpcHQgLWUgW2Zvcm1hdCB7CisJCQl0ZWxsIGFwcGxpY2F0aW9uICJTeXN0ZW0gRXZlbnRzIgorCQkJCXNldCBmcm9udG1vc3Qgb2YgcHJvY2Vzc2VzIHdob3NlIHVuaXggaWQgaXMgJWQgdG8gdHJ1ZQorCQkJZW5kIHRlbGwKKwkJfSBbcGlkXV0KKwl9Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjCiAjIyByZWFkIG9ubHkgZ2xvYmFscwogCiBzZXQgX2FwcG5hbWUge0dpdCBHdWl9CkBAIC0zMDAzLDE4ICszMDE3LDExIEBACiAJc2V0IGp1bXBfc3BlYyB7fQogCXNldCBpc19wYXRoIDAKIAlmb3JlYWNoIGEgJGFyZ3YgewotCQlpZiB7W2ZpbGUgZXhpc3RzICRhXX0gewotCQkJaWYgeyRwYXRoIG5lIHt9fSB1c2FnZQotCQkJc2V0IHBhdGggW25vcm1hbGl6ZV9yZWxwYXRoICRhXQotCQkJYnJlYWsKLQkJfSBlbHNlaWYge1tmaWxlIGV4aXN0cyAkX3ByZWZpeCRhXX0gewotCQkJaWYgeyRwYXRoIG5lIHt9fSB1c2FnZQotCQkJc2V0IHBhdGggW25vcm1hbGl6ZV9yZWxwYXRoICRfcHJlZml4JGFdCi0JCQlicmVhawotCQl9CisJCXNldCBwIFtmaWxlIGpvaW4gJF9wcmVmaXggJGFdCiAKLQkJaWYgeyRpc19wYXRofSB7CisJCWlmIHskaXNfcGF0aCB8fCBbZmlsZSBleGlzdHMgJHBdfSB7CiAJCQlpZiB7JHBhdGggbmUge319IHVzYWdlCisJCQlzZXQgcGF0aCBbbm9ybWFsaXplX3JlbHBhdGggJHBdCiAJCQlicmVhawogCQl9IGVsc2VpZiB7JGEgZXEgey0tfX0gewogCQkJaWYgeyRwYXRoIG5lIHt9fSB7CmRpZmYgLS1naXQgYS9naXQtZ3VpL2xpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2wgYi9naXQtZ3VpL2xpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2wKaW5kZXggNjU3ZjdkNS4uZWU1ODk4MSAxMDA2NDQKLS0tIGEvZ2l0LWd1aS9saWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsCisrKyBiL2dpdC1ndWkvbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbApAQCAtMjg2LDcgKzI4Niw5IEBACiAJZGVzdHJveSAkd19ib2R5CiAJaWYgeyFbd2luZm8gZXhpc3RzICR3X25leHRdfSB7CiAJCSR7TlN9OjpidXR0b24gJHdfbmV4dCAtZGVmYXVsdCBhY3RpdmUKLQkJcGFjayAkd19uZXh0IC1zaWRlIHJpZ2h0IC1wYWR4IDUgLWJlZm9yZSAkd19xdWl0CisJCXNldCBwb3MgLWJlZm9yZQorCQlpZiB7W3RrIHdpbmRvd2luZ3N5c3RlbV0gZXEgIndpbjMyIn0geyBzZXQgcG9zIC1hZnRlciB9CisJCXBhY2sgJHdfbmV4dCAtc2lkZSByaWdodCAtcGFkeCA1ICRwb3MgJHdfcXVpdAogCX0KIAlfZG9fJGFjdGlvbiAkdGhpcwogfQpkaWZmIC0tZ2l0IGEvZ2l0LWd1aS9saWIvZGlmZi50Y2wgYi9naXQtZ3VpL2xpYi9kaWZmLnRjbAppbmRleCBlYzQ0MDU1Li4zMGQ5YTc5IDEwMDY0NAotLS0gYS9naXQtZ3VpL2xpYi9kaWZmLnRjbAorKysgYi9naXQtZ3VpL2xpYi9kaWZmLnRjbApAQCAtNzY0LDggKzc2NCwxNSBAQAogCQkJCSMgY29udGV4dCBsaW5lCiAJCQkJc2V0IGxuIFskdWlfZGlmZiBnZXQgJGlfbCAkbmV4dF9sXQogCQkJCXNldCBwYXRjaCAiJHBhdGNoJHByZV9jb250ZXh0JGxuIgotCQkJCXNldCBuIFtleHByICRuKzFdCi0JCQkJc2V0IG0gW2V4cHIgJG0rMV0KKwkJCQkjIFNraXAgdGhlICJcIE5vIG5ld2xpbmUgYXQgZW5kIG9mCisJCQkJIyBmaWxlIi4gRGVwZW5kaW5nIG9uIHRoZSBsb2NhbGUgc2V0dGluZworCQkJCSMgd2UgZG9uJ3Qga25vdyB3aGF0IHRoaXMgbGluZSBsb29rcworCQkJCSMgbGlrZSBleGFjdGx5LiBUaGUgb25seSB0aGluZyB3ZSBkbworCQkJCSMga25vdyBpcyB0aGF0IGl0IHN0YXJ0cyB3aXRoICJcICIKKwkJCQlpZiB7IVtzdHJpbmcgbWF0Y2gge1xcICp9ICRsbl19IHsKKwkJCQkJc2V0IG4gW2V4cHIgJG4rMV0KKwkJCQkJc2V0IG0gW2V4cHIgJG0rMV0KKwkJCQl9CiAJCQkJc2V0IHByZV9jb250ZXh0IHt9CiAJCQl9IGVsc2VpZiB7JGMxIGVxICR0b19jb250ZXh0fSB7CiAJCQkJIyB0dXJuIGNoYW5nZSBsaW5lIGludG8gY29udGV4dCBsaW5lCmRpZmYgLS1naXQgYS9naXQtZ3VpL2xpYi9tZXJnZXRvb2wudGNsIGIvZ2l0LWd1aS9saWIvbWVyZ2V0b29sLnRjbAppbmRleCAzYzhlNzNiLi4xMjBiYzQwIDEwMDY0NAotLS0gYS9naXQtZ3VpL2xpYi9tZXJnZXRvb2wudGNsCisrKyBiL2dpdC1ndWkvbGliL21lcmdldG9vbC50Y2wKQEAgLTE4OSw5ICsxODksOSBAQAogCX0KIAliYzMgewogCQlpZiB7JGJhc2Vfc3RhZ2UgbmUge319IHsKLQkJCXNldCBjbWRsaW5lIFtsaXN0ICIkbWVyZ2VfdG9vbF9wYXRoIiAiJExPQ0FMIiAiJFJFTU9URSIgIiRCQVNFIiAtbWVyZ2VvdXRwdXQ9IiRNRVJHRUQiXQorCQkJc2V0IGNtZGxpbmUgW2xpc3QgIiRtZXJnZV90b29sX3BhdGgiICIkTE9DQUwiICIkUkVNT1RFIiAiJEJBU0UiICItbWVyZ2VvdXRwdXQ9JE1FUkdFRCJdCiAJCX0gZWxzZSB7Ci0JCQlzZXQgY21kbGluZSBbbGlzdCAiJG1lcmdlX3Rvb2xfcGF0aCIgIiRMT0NBTCIgIiRSRU1PVEUiIC1tZXJnZW91dHB1dD0iJE1FUkdFRCJdCisJCQlzZXQgY21kbGluZSBbbGlzdCAiJG1lcmdlX3Rvb2xfcGF0aCIgIiRMT0NBTCIgIiRSRU1PVEUiICItbWVyZ2VvdXRwdXQ9JE1FUkdFRCJdCiAJCX0KIAl9CiAJZWNtZXJnZSB7CmRpZmYgLS1naXQgYS9naXQtZ3VpL2xpYi9yZW1vdGUudGNsIGIvZ2l0LWd1aS9saWIvcmVtb3RlLnRjbAppbmRleCA1ZTRlN2Y0Li40ZTVjNzg0IDEwMDY0NAotLS0gYS9naXQtZ3VpL2xpYi9yZW1vdGUudGNsCisrKyBiL2dpdC1ndWkvbGliL3JlbW90ZS50Y2wKQEAgLTI0NSw3ICsyNDUsOCBAQAogCXNldCBwcnVuZV9tICRyZW1vdGVfbS5wcnVuZQogCWlmIHskaGF2ZV9yZW1vdGUgPiAxfSB7CiAJCW1ha2Vfc3VyZV9yZW1vdGVfc3VibWVudWVzX2V4aXN0ICRyZW1vdGVfbQotCQlpZiB7WyRmZXRjaF9tIGVudHJ5Y2dldCBlbmQgLWxhYmVsXSBuZSAiQWxsIn0geworCQlpZiB7WyRmZXRjaF9tIHR5cGUgZW5kXSBlcSAiY29tbWFuZCIgXAorCQkJJiYgWyRmZXRjaF9tIGVudHJ5Y2dldCBlbmQgLWxhYmVsXSBuZSAiQWxsIn0gewogCiAJCQkkZmV0Y2hfbSBpbnNlcnQgZW5kIHNlcGFyYXRvcgogCQkJJGZldGNoX20gaW5zZXJ0IGVuZCBjb21tYW5kIFwKQEAgLTI1OSw3ICsyNjAsOCBAQAogCQl9CiAJfSBlbHNlIHsKIAkJaWYge1t3aW5mbyBleGlzdHMgJGZldGNoX21dfSB7Ci0JCQlpZiB7WyRmZXRjaF9tIGVudHJ5Y2dldCBlbmQgLWxhYmVsXSBlcSAiQWxsIn0geworCQkJaWYge1skZmV0Y2hfbSB0eXBlIGVuZF0gZXEgImNvbW1hbmQiIFwKKwkJCQkmJiBbJGZldGNoX20gZW50cnljZ2V0IGVuZCAtbGFiZWxdIGVxICJBbGwifSB7CiAKIAkJCQlkZWxldGVfZnJvbV9tZW51ICRmZXRjaF9tIGVuZAogCQkJCWRlbGV0ZV9mcm9tX21lbnUgJGZldGNoX20gZW5kCmRpZmYgLS1naXQgYS9naXQtZ3VpL3BvL2ZyLnBvIGIvZ2l0LWd1aS9wby9mci5wbwppbmRleCA0MDQ0MWRiLi4wYWZmMTg2IDEwMDY0NAotLS0gYS9naXQtZ3VpL3BvL2ZyLnBvCisrKyBiL2dpdC1ndWkvcG8vZnIucG8KQEAgLTExMzksNyArMTEzOSw3IEBACiAKICM6IGxpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2w6NTE0CiBtc2dpZCAiRnVsbCBDb3B5IChTbG93ZXIsIFJlZHVuZGFudCBCYWNrdXApIgotbXNnc3RyICJDb3B5IGNvbXBsw6h0ZSAocGx1cyBsZW50LCBzYXV2ZWdhcmRlIHJlZG9uZGFudGUpIgorbXNnc3RyICJDb3BpZSBjb21wbMOodGUgKHBsdXMgbGVudCwgc2F1dmVnYXJkZSByZWRvbmRhbnRlKSIKIAogIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo1MjAKIG1zZ2lkICJTaGFyZWQgKEZhc3Rlc3QsIE5vdCBSZWNvbW1lbmRlZCwgTm8gQmFja3VwKSIKZGlmZiAtLWdpdCBhL2dpdC1tZXJnZXRvb2wtLWxpYi5zaCBiL2dpdC1tZXJnZXRvb2wtLWxpYi5zaAppbmRleCBlMzM4YmU1Li5mZWVlNmE0IDEwMDY0NAotLS0gYS9naXQtbWVyZ2V0b29sLS1saWIuc2gKKysrIGIvZ2l0LW1lcmdldG9vbC0tbGliLnNoCkBAIC0xMTQsMTAgKzExNCwzNyBAQAogCXRlc3QgLW4gIiRjbWQiCiB9CiAKK3NldHVwX3VzZXJfdG9vbCAoKSB7CisJbWVyZ2VfdG9vbF9jbWQ9JChnZXRfbWVyZ2VfdG9vbF9jbWQgIiR0b29sIikKKwl0ZXN0IC1uICIkbWVyZ2VfdG9vbF9jbWQiIHx8IHJldHVybiAxCisKKwlkaWZmX2NtZCAoKSB7CisJCSggZXZhbCAkbWVyZ2VfdG9vbF9jbWQgKQorCQlzdGF0dXM9JD8KKwkJcmV0dXJuICRzdGF0dXMKKwl9CisKKwltZXJnZV9jbWQgKCkgeworCQl0cnVzdF9leGl0X2NvZGU9JChnaXQgY29uZmlnIC0tYm9vbCBcCisJCQkibWVyZ2V0b29sLiQxLnRydXN0RXhpdENvZGUiIHx8IGVjaG8gZmFsc2UpCisJCWlmIHRlc3QgIiR0cnVzdF9leGl0X2NvZGUiID0gImZhbHNlIgorCQl0aGVuCisJCQl0b3VjaCAiJEJBQ0tVUCIKKwkJCSggZXZhbCAkbWVyZ2VfdG9vbF9jbWQgKQorCQkJc3RhdHVzPSQ/CisJCQljaGVja191bmNoYW5nZWQKKwkJZWxzZQorCQkJKCBldmFsICRtZXJnZV90b29sX2NtZCApCisJCQlzdGF0dXM9JD8KKwkJZmkKKwkJcmV0dXJuICRzdGF0dXMKKwl9Cit9CisKIHNldHVwX3Rvb2wgKCkgewogCXRvb2w9IiQxIgogCi0JIyBGYWxsYmFjayBkZWZpbml0aW9ucywgdG8gYmUgb3ZlcnJpZGVuIGJ5IHRvb2xzLgorCSMgRmFsbGJhY2sgZGVmaW5pdGlvbnMsIHRvIGJlIG92ZXJyaWRkZW4gYnkgdG9vbHMuCiAJY2FuX21lcmdlICgpIHsKIAkJcmV0dXJuIDAKIAl9CkBAIC0xNDIsMTUgKzE2OSwxNSBAQAogCiAJaWYgISB0ZXN0IC1mICIkTUVSR0VfVE9PTFNfRElSLyR0b29sIgogCXRoZW4KLQkJIyBVc2UgYSBzcGVjaWFsIHJldHVybiBjb2RlIGZvciB0aGlzIGNhc2Ugc2luY2Ugd2Ugd2FudCB0bwotCQkjIHNvdXJjZSAiZGVmYXVsdHMiIGV2ZW4gd2hlbiBhbiBleHBsaWNpdCB0b29sIHBhdGggaXMKLQkJIyBjb25maWd1cmVkIHNpbmNlIHRoZSB1c2VyIGNhbiB1c2UgdGhhdCB0byBvdmVycmlkZSB0aGUKLQkJIyBkZWZhdWx0IHBhdGggaW4gdGhlIHNjcmlwdGxldC4KLQkJcmV0dXJuIDIKKwkJc2V0dXBfdXNlcl90b29sCisJCXJldHVybiAkPwogCWZpCiAKIAkjIExvYWQgdGhlIHJlZGVmaW5lZCBmdW5jdGlvbnMKIAkuICIkTUVSR0VfVE9PTFNfRElSLyR0b29sIgorCSMgTm93IGxldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb21tYW5kIGZvciB0aGUgdG9vbC4gIElmCisJIyB0aGV5IGhhdmUgbm90IGRvbmUgc28gdGhlbiB0aGlzIHdpbGwgcmV0dXJuIDEgd2hpY2ggd2UgaWdub3JlLgorCXNldHVwX3VzZXJfdG9vbAogCiAJaWYgbWVyZ2VfbW9kZSAmJiAhIGNhbl9tZXJnZQogCXRoZW4KQEAgLTE4NywyMCArMjE0LDcgQEAKIAlzdGF0dXM9MAogCiAJIyBCcmluZyB0b29sLXNwZWNpZmljIGZ1bmN0aW9ucyBpbnRvIHNjb3BlCi0Jc2V0dXBfdG9vbCAiJDEiCi0JZXhpdGNvZGU9JD8KLQljYXNlICRleGl0Y29kZSBpbgotCTApCi0JCToKLQkJOzsKLQkyKQotCQkjIFRoZSBjb25maWd1cmVkIHRvb2wgaXMgbm90IGEgYnVpbHQtaW4gdG9vbC4KLQkJdGVzdCAtbiAiJG1lcmdlX3Rvb2xfcGF0aCIgfHwgcmV0dXJuIDEKLQkJOzsKLQkqKQotCQlyZXR1cm4gJGV4aXRjb2RlCi0JCTs7Ci0JZXNhYworCXNldHVwX3Rvb2wgIiQxIiB8fCByZXR1cm4gMQogCiAJaWYgbWVyZ2VfbW9kZQogCXRoZW4KQEAgLTIxMywzOCArMjI3LDEyIEBACiAKICMgUnVuIGEgZWl0aGVyIGEgY29uZmlndXJlZCBvciBidWlsdC1pbiBkaWZmIHRvb2wKIHJ1bl9kaWZmX2NtZCAoKSB7Ci0JbWVyZ2VfdG9vbF9jbWQ9JChnZXRfbWVyZ2VfdG9vbF9jbWQgIiQxIikKLQlpZiB0ZXN0IC1uICIkbWVyZ2VfdG9vbF9jbWQiCi0JdGhlbgotCQkoIGV2YWwgJG1lcmdlX3Rvb2xfY21kICkKLQkJc3RhdHVzPSQ/Ci0JCXJldHVybiAkc3RhdHVzCi0JZWxzZQotCQlkaWZmX2NtZCAiJDEiCi0JZmkKKwlkaWZmX2NtZCAiJDEiCiB9CiAKICMgUnVuIGEgZWl0aGVyIGEgY29uZmlndXJlZCBvciBidWlsdC1pbiBtZXJnZSB0b29sCiBydW5fbWVyZ2VfY21kICgpIHsKLQltZXJnZV90b29sX2NtZD0kKGdldF9tZXJnZV90b29sX2NtZCAiJDEiKQotCWlmIHRlc3QgLW4gIiRtZXJnZV90b29sX2NtZCIKLQl0aGVuCi0JCXRydXN0X2V4aXRfY29kZT0kKGdpdCBjb25maWcgLS1ib29sIFwKLQkJCSJtZXJnZXRvb2wuJDEudHJ1c3RFeGl0Q29kZSIgfHwgZWNobyBmYWxzZSkKLQkJaWYgdGVzdCAiJHRydXN0X2V4aXRfY29kZSIgPSAiZmFsc2UiCi0JCXRoZW4KLQkJCXRvdWNoICIkQkFDS1VQIgotCQkJKCBldmFsICRtZXJnZV90b29sX2NtZCApCi0JCQlzdGF0dXM9JD8KLQkJCWNoZWNrX3VuY2hhbmdlZAotCQllbHNlCi0JCQkoIGV2YWwgJG1lcmdlX3Rvb2xfY21kICkKLQkJCXN0YXR1cz0kPwotCQlmaQotCQlyZXR1cm4gJHN0YXR1cwotCWVsc2UKLQkJbWVyZ2VfY21kICIkMSIKLQlmaQorCW1lcmdlX2NtZCAiJDEiCiB9CiAKIGxpc3RfbWVyZ2VfdG9vbF9jYW5kaWRhdGVzICgpIHsKZGlmZiAtLWdpdCBhL2dpdC1wNC5weSBiL2dpdC1wNC5weQppbmRleCA5MTFiYmNlLi4zMWU3MWZmIDEwMDc1NQotLS0gYS9naXQtcDQucHkKKysrIGIvZ2l0LXA0LnB5CkBAIC0xNzg2LDcgKzE3ODYsNyBAQAogICAgICAgICAgICAgbWlzc2luZ0dpdFRhZ3MgPSBnaXRUYWdzIC0gcDRMYWJlbHMKICAgICAgICAgICAgIHNlbGYuZXhwb3J0R2l0VGFncyhtaXNzaW5nR2l0VGFncykKIAotICAgICAgICAjIGV4aXQgd2l0aCBlcnJvciB1bmxlc3MgZXZlcnl0aGluZyBhcHBsaWVkIHBlcmZlY2x5CisgICAgICAgICMgZXhpdCB3aXRoIGVycm9yIHVubGVzcyBldmVyeXRoaW5nIGFwcGxpZWQgcGVyZmVjdGx5CiAgICAgICAgIGlmIGxlbihjb21taXRzKSAhPSBsZW4oYXBwbGllZCk6CiAgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKIApAQCAtMzE2OCw3ICszMTY4LDcgQEAKICAgICAgICAgaWYgb3Muc3lzdGVtKCJnaXQgdXBkYXRlLWluZGV4IC0tcmVmcmVzaCIpICE9IDA6CiAgICAgICAgICAgICBkaWUoIlNvbWUgZmlsZXMgaW4geW91ciB3b3JraW5nIGRpcmVjdG9yeSBhcmUgbW9kaWZpZWQgYW5kIGRpZmZlcmVudCB0aGFuIHdoYXQgaXMgaW4geW91ciBpbmRleC4gWW91IGNhbiB1c2UgZ2l0IHVwZGF0ZS1pbmRleCA8ZmlsZW5hbWU+IHRvIGJyaW5nIHRoZSBpbmRleCB1cC10by1kYXRlIG9yIHN0YXNoIGF3YXkgYWxsIHlvdXIgY2hhbmdlcyB3aXRoIGdpdCBzdGFzaC4iKTsKICAgICAgICAgaWYgbGVuKHJlYWRfcGlwZSgiZ2l0IGRpZmYtaW5kZXggSEVBRCAtLSIpKSA+IDA6Ci0gICAgICAgICAgICBkaWUoIllvdSBoYXZlIHVuY29tbWl0ZWQgY2hhbmdlcy4gUGxlYXNlIGNvbW1pdCB0aGVtIGJlZm9yZSByZWJhc2luZyBvciBzdGFzaCB0aGVtIGF3YXkgd2l0aCBnaXQgc3Rhc2guIik7CisgICAgICAgICAgICBkaWUoIllvdSBoYXZlIHVuY29tbWl0dGVkIGNoYW5nZXMuIFBsZWFzZSBjb21taXQgdGhlbSBiZWZvcmUgcmViYXNpbmcgb3Igc3Rhc2ggdGhlbSBhd2F5IHdpdGggZ2l0IHN0YXNoLiIpOwogCiAgICAgICAgIFt1cHN0cmVhbSwgc2V0dGluZ3NdID0gZmluZFVwc3RyZWFtQnJhbmNoUG9pbnQoKQogICAgICAgICBpZiBsZW4odXBzdHJlYW0pID09IDA6CmRpZmYgLS1naXQgYS9naXQtcHVsbC5zaCBiL2dpdC1wdWxsLnNoCmluZGV4IDYzOGFhYmIuLmYwZGY0MWMgMTAwNzU1Ci0tLSBhL2dpdC1wdWxsLnNoCisrKyBiL2dpdC1wdWxsLnNoCkBAIC01LDcgKzUsNyBAQAogIyBGZXRjaCBvbmUgb3IgbW9yZSByZW1vdGUgcmVmcyBhbmQgbWVyZ2UgaXQvdGhlbSBpbnRvIHRoZSBjdXJyZW50IEhFQUQuCiAKIFVTQUdFPSdbLW4gfCAtLW5vLXN0YXRdIFstLVtuby1dY29tbWl0XSBbLS1bbm8tXXNxdWFzaF0gWy0tW25vLV1mZl0gWy1zIHN0cmF0ZWd5XS4uLiBbPGZldGNoLW9wdGlvbnM+XSA8cmVwbz4gPGhlYWQ+Li4uJwotTE9OR19VU0FHRT0nRmV0Y2ggb25lIG9yIG1vcmUgcmVtb3RlIHJlZnMgYW5kIG1lcmdlIGl0L3RoZW0gaW50byB0aGUgY3VycmVudCBIRUFELicKK0xPTkdfVVNBR0U9J0ZldGNoIG9uZSBvciBtb3JlIHJlbW90ZSByZWZzIGFuZCBpbnRlZ3JhdGUgaXQvdGhlbSB3aXRoIHRoZSBjdXJyZW50IEhFQUQuJwogU1VCRElSRUNUT1JZX09LPVllcwogT1BUSU9OU19TUEVDPQogLiBnaXQtc2gtc2V0dXAKQEAgLTI2NiwxMCArMjY2LDE3IEBACiAJOzsKIGVzYWMKIAorIyBQdWxsaW5nIGludG8gdW5ib3JuIGJyYW5jaDogYSBzaG9ydGhhbmQgZm9yIGJyYW5jaGluZyBvZmYKKyMgRkVUQ0hfSEVBRCwgZm9yIGxhenkgdHlwZXJzLgogaWYgdGVzdCAteiAiJG9yaWdfaGVhZCIKIHRoZW4KLQlnaXQgdXBkYXRlLXJlZiAtbSAiaW5pdGlhbCBwdWxsIiBIRUFEICRtZXJnZV9oZWFkICIkY3Vycl9oZWFkIiAmJgotCWdpdCByZWFkLXRyZWUgLW0gLXUgSEVBRCB8fCBleGl0IDEKKwkjIFR3by13YXkgbWVyZ2U6IHdlIGNsYWltIHRoZSBpbmRleCBpcyBiYXNlZCBvbiBhbiBlbXB0eSB0cmVlLAorCSMgYW5kIHRyeSB0byBmYXN0LWZvcndhcmQgdG8gSEVBRC4gIFRoaXMgZW5zdXJlcyB3ZSB3aWxsIG5vdAorCSMgbG9zZSBpbmRleC93b3JrdHJlZSBjaGFuZ2VzIHRoYXQgdGhlIHVzZXIgYWxyZWFkeSBtYWRlIG9uCisJIyB0aGUgdW5ib3JuIGJyYW5jaC4KKwllbXB0eV90cmVlPTRiODI1ZGM2NDJjYjZlYjlhMDYwZTU0YmY4ZDY5Mjg4ZmJlZTQ5MDQKKwlnaXQgcmVhZC10cmVlIC1tIC11ICRlbXB0eV90cmVlICRtZXJnZV9oZWFkICYmCisJZ2l0IHVwZGF0ZS1yZWYgLW0gImluaXRpYWwgcHVsbCIgSEVBRCAkbWVyZ2VfaGVhZCAiJGN1cnJfaGVhZCIKIAlleGl0CiBmaQogCmRpZmYgLS1naXQgYS9naXQtcmViYXNlLS1hbS5zaCBiL2dpdC1yZWJhc2UtLWFtLnNoCmluZGV4IGY4NDg1NGYuLjM0ZTMxMDIgMTAwNjQ0Ci0tLSBhL2dpdC1yZWJhc2UtLWFtLnNoCisrKyBiL2dpdC1yZWJhc2UtLWFtLnNoCkBAIC03LDEyICs3LDEyIEBACiBjb250aW51ZSkKIAlnaXQgYW0gLS1yZXNvbHZlZCAtLXJlc29sdmVtc2c9IiRyZXNvbHZlbXNnIiAmJgogCW1vdmVfdG9fb3JpZ2luYWxfYnJhbmNoCi0JZXhpdAorCXJldHVybgogCTs7CiBza2lwKQogCWdpdCBhbSAtLXNraXAgLS1yZXNvbHZlbXNnPSIkcmVzb2x2ZW1zZyIgJiYKIAltb3ZlX3RvX29yaWdpbmFsX2JyYW5jaAotCWV4aXQKKwlyZXR1cm4KIAk7OwogZXNhYwogCkBAIC01Niw3ICs1Niw3IEBACiAKIAkJQXMgYSByZXN1bHQsIGdpdCBjYW5ub3QgcmViYXNlIHRoZW0uCiAJCUVPRgotCQlleGl0ICQ/CisJCXJldHVybiAkPwogCWZpCiAKIAlnaXQgYW0gJGdpdF9hbV9vcHQgLS1yZWJhc2luZyAtLXJlc29sdmVtc2c9IiRyZXNvbHZlbXNnIiA8IiRHSVRfRElSL3JlYmFzZWQtcGF0Y2hlcyIKQEAgLTY4LDcgKzY4LDcgQEAKIGlmIHRlc3QgMCAhPSAkcmV0CiB0aGVuCiAJdGVzdCAtZCAiJHN0YXRlX2RpciIgJiYgd3JpdGVfYmFzaWNfc3RhdGUKLQlleGl0ICRyZXQKKwlyZXR1cm4gJHJldAogZmkKIAogbW92ZV90b19vcmlnaW5hbF9icmFuY2gKZGlmZiAtLWdpdCBhL2dpdC1yZWJhc2UtLWludGVyYWN0aXZlLnNoIGIvZ2l0LXJlYmFzZS0taW50ZXJhY3RpdmUuc2gKaW5kZXggNTgyMmIyYy4uODNkNmQ0NiAxMDA2NDQKLS0tIGEvZ2l0LXJlYmFzZS0taW50ZXJhY3RpdmUuc2gKKysrIGIvZ2l0LXJlYmFzZS0taW50ZXJhY3RpdmUuc2gKQEAgLTgwLDYgKzgwLDE4IEBACiByZXdyaXR0ZW5fbGlzdD0iJHN0YXRlX2RpciIvcmV3cml0dGVuLWxpc3QKIHJld3JpdHRlbl9wZW5kaW5nPSIkc3RhdGVfZGlyIi9yZXdyaXR0ZW4tcGVuZGluZwogCitzdHJhdGVneV9hcmdzPQoraWYgdGVzdCAtbiAiJGRvX21lcmdlIgordGhlbgorCXN0cmF0ZWd5X2FyZ3M9JHtzdHJhdGVneTorLS1zdHJhdGVneT0kc3RyYXRlZ3l9CisJZXZhbCAnCisJCWZvciBzdHJhdGVneV9vcHQgaW4gJyIkc3RyYXRlZ3lfb3B0cyInCisJCWRvCisJCQlzdHJhdGVneV9hcmdzPSIkc3RyYXRlZ3lfYXJncyAtWCQoZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlICIke3N0cmF0ZWd5X29wdCMtLX0iKSIKKwkJZG9uZQorCScKK2ZpCisKIEdJVF9DSEVSUllfUElDS19IRUxQPSIkcmVzb2x2ZW1zZyIKIGV4cG9ydCBHSVRfQ0hFUlJZX1BJQ0tfSEVMUAogCkBAIC0yMzksNyArMjUxLDcgQEAKIAogCXRlc3QgLWQgIiRyZXdyaXR0ZW4iICYmCiAJCXBpY2tfb25lX3ByZXNlcnZpbmdfbWVyZ2VzICIkQCIgJiYgcmV0dXJuCi0Jb3V0cHV0IGdpdCBjaGVycnktcGljayAkZW1wdHlfYXJncyAkZmYgIiRAIgorCW91dHB1dCBldmFsIGdpdCBjaGVycnktcGljayAiJHN0cmF0ZWd5X2FyZ3MiICRlbXB0eV9hcmdzICRmZiAiJEAiCiB9CiAKIHBpY2tfb25lX3ByZXNlcnZpbmdfbWVyZ2VzICgpIHsKQEAgLTM0MCw5ICszNTIsOCBAQAogCQkJbXNnX2NvbnRlbnQ9IiQoY29tbWl0X21lc3NhZ2UgJHNoYTEpIgogCQkJIyBObyBwb2ludCBpbiBtZXJnaW5nIHRoZSBmaXJzdCBwYXJlbnQsIHRoYXQncyBIRUFECiAJCQluZXdfcGFyZW50cz0ke25ld19wYXJlbnRzIyAkZmlyc3RfcGFyZW50fQotCQkJaWYgISBkb193aXRoX2F1dGhvciBvdXRwdXQgXAotCQkJCWdpdCBtZXJnZSAtLW5vLWZmICR7c3RyYXRlZ3k6Ky1zICRzdHJhdGVneX0gLW0gXAotCQkJCQkiJG1zZ19jb250ZW50IiAkbmV3X3BhcmVudHMKKwkJCWlmICEgZG9fd2l0aF9hdXRob3Igb3V0cHV0IGV2YWwgXAorCQkJJ2dpdCBtZXJnZSAtLW5vLWZmICRzdHJhdGVneV9hcmdzIC1tICIkbXNnX2NvbnRlbnQiICRuZXdfcGFyZW50cycKIAkJCXRoZW4KIAkJCQlwcmludGYgIiVzXG4iICIkbXNnX2NvbnRlbnQiID4gIiRHSVRfRElSIi9NRVJHRV9NU0cKIAkJCQlkaWVfd2l0aF9wYXRjaCAkc2hhMSAiRXJyb3IgcmVkb2luZyBtZXJnZSAkc2hhMSIKQEAgLTM1MCw3ICszNjEsNyBAQAogCQkJZWNobyAiJHNoYTEgJChnaXQgcmV2LXBhcnNlIEhFQUReMCkiID4+ICIkcmV3cml0dGVuX2xpc3QiCiAJCQk7OwogCQkqKQotCQkJb3V0cHV0IGdpdCBjaGVycnktcGljayAiJEAiIHx8CisJCQlvdXRwdXQgZXZhbCBnaXQgY2hlcnJ5LXBpY2sgIiRzdHJhdGVneV9hcmdzIiAiJEAiIHx8CiAJCQkJZGllX3dpdGhfcGF0Y2ggJHNoYTEgIkNvdWxkIG5vdCBwaWNrICRzaGExIgogCQkJOzsKIAkJZXNhYwpAQCAtNjI4LDE3ICs2MzksMTYgQEAKIAkJIiRHSVRfRElSIi9ob29rcy9wb3N0LXJld3JpdGUgcmViYXNlIDwgIiRyZXdyaXR0ZW5fbGlzdCIKIAkJdHJ1ZSAjIHdlIGRvbid0IGNhcmUgaWYgdGhpcyBob29rIGZhaWxlZAogCWZpICYmCi0Jcm0gLXJmICIkc3RhdGVfZGlyIiAmJgotCWdpdCBnYyAtLWF1dG8gJiYKIAl3YXJuICJTdWNjZXNzZnVsbHkgcmViYXNlZCBhbmQgdXBkYXRlZCAkaGVhZF9uYW1lLiIKIAotCWV4aXQKKwlyZXR1cm4gMSAjIG5vdCBmYWlsdXJlOyBqdXN0IHRvIGJyZWFrIHRoZSBkb19yZXN0IGxvb3AKIH0KIAorIyBjYW4gb25seSByZXR1cm4gMCwgd2hlbiB0aGUgaW5maW5pdGUgbG9vcCBicmVha3MKIGRvX3Jlc3QgKCkgewogCXdoaWxlIDoKIAlkbwotCQlkb19uZXh0CisJCWRvX25leHQgfHwgYnJlYWsKIAlkb25lCiB9CiAKQEAgLTY5MCw4ICs3MDAsMjIgQEAKIAkJY2FzZSAiJG1lc3NhZ2UiIGluCiAJCSJzcXVhc2ghICIqfCJmaXh1cCEgIiopCiAJCQlhY3Rpb249IiR7bWVzc2FnZSUlISp9IgotCQkJcmVzdD0iJHttZXNzYWdlIyohIH0iCi0JCQllY2hvICIkc2hhMSAkYWN0aW9uICRyZXN0IgorCQkJcmVzdD0kbWVzc2FnZQorCQkJcHJlZml4PQorCQkJIyBza2lwIGFsbCBzcXVhc2ghIG9yIGZpeHVwISAoYnV0IHNhdmUgZm9yIGxhdGVyKQorCQkJd2hpbGUgOgorCQkJZG8KKwkJCQljYXNlICIkcmVzdCIgaW4KKwkJCQkic3F1YXNoISAiKnwiZml4dXAhICIqKQorCQkJCQlwcmVmaXg9IiRwcmVmaXgke3Jlc3QlJSEqfSwiCisJCQkJCXJlc3Q9IiR7cmVzdCMqISB9IgorCQkJCQk7OworCQkJCSopCisJCQkJCWJyZWFrCisJCQkJCTs7CisJCQkJZXNhYworCQkJZG9uZQorCQkJZWNobyAiJHNoYTEgJGFjdGlvbiAkcHJlZml4ICRyZXN0IgogCQkJIyBpZiBpdCdzIGEgc2luZ2xlIHdvcmQsIHRyeSB0byByZXNvbHZlIHRvIGEgZnVsbCBzaGExIGFuZAogCQkJIyBlbWl0IGEgc2Vjb25kIGNvcHkuIFRoaXMgYWxsb3dzIHVzIHRvIG1hdGNoIG9uIGJvdGggbWVzc2FnZQogCQkJIyBhbmQgb24gc2hhMSBwcmVmaXgKQEAgLTcwMCw3ICs3MjQsNyBAQAogCQkJCWlmIHRlc3QgLW4gIiRmdWxsc2hhIjsgdGhlbgogCQkJCQkjIHByZWZpeCB0aGUgYWN0aW9uIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgbGluZSBhcwogCQkJCQkjIGludGVuZGVkIGZvciBmdWxsIHNoYTEgbWF0Y2gKLQkJCQkJZWNobyAiJHNoYTEgKyRhY3Rpb24gJGZ1bGxzaGEiCisJCQkJCWVjaG8gIiRzaGExICskYWN0aW9uICRwcmVmaXggJGZ1bGxzaGEiCiAJCQkJZmkKIAkJCWZpCiAJCWVzYWMKQEAgLTcxNSw3ICs3MzksNyBAQAogCQllc2FjCiAJCXByaW50ZiAnJXNcbicgIiRwaWNrICRzaGExICRtZXNzYWdlIgogCQl1c2VkPSIkdXNlZCRzaGExICIKLQkJd2hpbGUgcmVhZCAtciBzcXVhc2ggYWN0aW9uIG1zZ19jb250ZW50CisJCXdoaWxlIHJlYWQgLXIgc3F1YXNoIGFjdGlvbiBtc2dfcHJlZml4IG1zZ19jb250ZW50CiAJCWRvCiAJCQljYXNlICIgJHVzZWQiIGluCiAJCQkqIiAkc3F1YXNoICIqKSBjb250aW51ZSA7OwpAQCAtNzMxLDcgKzc1NSw4IEBACiAJCQkJY2FzZSAiJG1lc3NhZ2UiIGluICIkbXNnX2NvbnRlbnQiKikgZW1pdD0xOzsgZXNhYyA7OwogCQkJZXNhYwogCQkJaWYgdGVzdCAkZW1pdCA9IDE7IHRoZW4KLQkJCQlwcmludGYgJyVzXG4nICIkYWN0aW9uICRzcXVhc2ggJGFjdGlvbiEgJG1zZ19jb250ZW50IgorCQkJCXJlYWxfcHJlZml4PSQoZWNobyAiJG1zZ19wcmVmaXgiIHwgc2VkICJzLywvISAvZyIpCisJCQkJcHJpbnRmICclc1xuJyAiJGFjdGlvbiAkc3F1YXNoICR7cmVhbF9wcmVmaXh9JG1zZ19jb250ZW50IgogCQkJCXVzZWQ9IiR1c2VkJHNxdWFzaCAiCiAJCQlmaQogCQlkb25lIDwiJDEuc3EiCkBAIC04MDUsMTEgKzgzMCwxMyBAQAogCiAJcmVxdWlyZV9jbGVhbl93b3JrX3RyZWUgInJlYmFzZSIKIAlkb19yZXN0CisJcmV0dXJuIDAKIAk7Owogc2tpcCkKIAlnaXQgcmVyZXJlIGNsZWFyCiAKIAlkb19yZXN0CisJcmV0dXJuIDAKIAk7OwogZWRpdC10b2RvKQogCWdpdCBzdHJpcHNwYWNlIC0tc3RyaXAtY29tbWVudHMgPCIkdG9kbyIgPiIkdG9kbyIubmV3CkBAIC04MzcsMTIgKzg2NCwxNSBAQAogCiBpZiB0ZXN0ICEgLXogIiRzd2l0Y2hfdG8iCiB0aGVuCisJR0lUX1JFRkxPR19BQ1RJT049IiRHSVRfUkVGTE9HX0FDVElPTjogY2hlY2tvdXQgJHN3aXRjaF90byIKIAlvdXRwdXQgZ2l0IGNoZWNrb3V0ICIkc3dpdGNoX3RvIiAtLSB8fAotCQlkaWUgIkNvdWxkIG5vdCBjaGVja291dCAkc3dpdGNoX3RvIgorCWRpZSAiQ291bGQgbm90IGNoZWNrb3V0ICRzd2l0Y2hfdG8iCisKKwljb21tZW50X2Zvcl9yZWZsb2cgc3RhcnQKIGZpCiAKIG9yaWdfaGVhZD0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgSEVBRCkgfHwgZGllICJObyBIRUFEPyIKLW1rZGlyICIkc3RhdGVfZGlyIiB8fCBkaWUgIkNvdWxkIG5vdCBjcmVhdGUgdGVtcG9yYXJ5ICRzdGF0ZV9kaXIiCitta2RpciAtcCAiJHN0YXRlX2RpciIgfHwgZGllICJDb3VsZCBub3QgY3JlYXRlIHRlbXBvcmFyeSAkc3RhdGVfZGlyIgogCiA6ID4gIiRzdGF0ZV9kaXIiL2ludGVyYWN0aXZlIHx8IGRpZSAiQ291bGQgbm90IG1hcmsgYXMgaW50ZXJhY3RpdmUiCiB3cml0ZV9iYXNpY19zdGF0ZQpAQCAtOTgwLDYgKzEwMTAsNyBAQAogCiB0ZXN0IC1kICIkcmV3cml0dGVuIiB8fCB0ZXN0IC1uICIkZm9yY2VfcmViYXNlIiB8fCBza2lwX3VubmVjZXNzYXJ5X3BpY2tzCiAKK0dJVF9SRUZMT0dfQUNUSU9OPSIkR0lUX1JFRkxPR19BQ1RJT046IGNoZWNrb3V0ICRvbnRvX25hbWUiCiBvdXRwdXQgZ2l0IGNoZWNrb3V0ICRvbnRvIHx8IGRpZV9hYm9ydCAiY291bGQgbm90IGRldGFjaCBIRUFEIgogZ2l0IHVwZGF0ZS1yZWYgT1JJR19IRUFEICRvcmlnX2hlYWQKIGRvX3Jlc3QKZGlmZiAtLWdpdCBhL2dpdC1yZWJhc2UtLW1lcmdlLnNoIGIvZ2l0LXJlYmFzZS0tbWVyZ2Uuc2gKaW5kZXggYjEwZjJjZi4uMTZkMTgxNyAxMDA2NDQKLS0tIGEvZ2l0LXJlYmFzZS0tbWVyZ2Uuc2gKKysrIGIvZ2l0LXJlYmFzZS0tbWVyZ2Uuc2gKQEAgLTk2LDcgKzk2LDYgQEAKIAkJCSIkR0lUX0RJUiIvaG9va3MvcG9zdC1yZXdyaXRlIHJlYmFzZSA8IiRzdGF0ZV9kaXIiL3Jld3JpdHRlbgogCQlmaQogCWZpCi0Jcm0gLXIgIiRzdGF0ZV9kaXIiCiAJc2F5IEFsbCBkb25lLgogfQogCkBAIC0xMTAsNyArMTA5LDcgQEAKIAkJY29udGludWVfbWVyZ2UKIAlkb25lCiAJZmluaXNoX3JiX21lcmdlCi0JZXhpdAorCXJldHVybgogCTs7CiBza2lwKQogCXJlYWRfc3RhdGUKQEAgLTEyMiw3ICsxMjEsNyBAQAogCQljb250aW51ZV9tZXJnZQogCWRvbmUKIAlmaW5pc2hfcmJfbWVyZ2UKLQlleGl0CisJcmV0dXJuCiAJOzsKIGVzYWMKIApkaWZmIC0tZ2l0IGEvZ2l0LXJlYmFzZS5zaCBiL2dpdC1yZWJhc2Uuc2gKaW5kZXggMmM2OTJjMy4uOGQ3NjU5YSAxMDA3NTUKLS0tIGEvZ2l0LXJlYmFzZS5zaAorKysgYi9naXQtcmViYXNlLnNoCkBAIC0xMyw2ICsxMyw3IEBACiAgQXZhaWxhYmxlIG9wdGlvbnMgYXJlCiB2LHZlcmJvc2UhICAgICAgICAgZGlzcGxheSBhIGRpZmZzdGF0IG9mIHdoYXQgY2hhbmdlZCB1cHN0cmVhbQogcSxxdWlldCEgICAgICAgICAgIGJlIHF1aWV0LiBpbXBsaWVzIC0tbm8tc3RhdAorYXV0b3N0YXNoISAgICAgICAgIGF1dG9tYXRpY2FsbHkgc3Rhc2gvc3Rhc2ggcG9wIGJlZm9yZSBhbmQgYWZ0ZXIKIG9udG89ISAgICAgICAgICAgICByZWJhc2Ugb250byBnaXZlbiBicmFuY2ggaW5zdGVhZCBvZiB1cHN0cmVhbQogcCxwcmVzZXJ2ZS1tZXJnZXMhIHRyeSB0byByZWNyZWF0ZSBtZXJnZXMgaW5zdGVhZCBvZiBpZ25vcmluZyB0aGVtCiBzLHN0cmF0ZWd5PSEgICAgICAgdXNlIHRoZSBnaXZlbiBtZXJnZSBzdHJhdGVneQpAQCAtNjQsNiArNjUsNyBAQAogdmVyYm9zZT0KIGRpZmZzdGF0PQogdGVzdCAiJChnaXQgY29uZmlnIC0tYm9vbCByZWJhc2Uuc3RhdCkiID0gdHJ1ZSAmJiBkaWZmc3RhdD10CithdXRvc3Rhc2g9IiQoZ2l0IGNvbmZpZyAtLWJvb2wgcmViYXNlLmF1dG9zdGFzaCB8fCBlY2hvIGZhbHNlKSIKIGdpdF9hbV9vcHQ9CiByZWJhc2Vfcm9vdD0KIGZvcmNlX3JlYmFzZT0KQEAgLTgyLDYgKzg0LDggQEAKIHRlc3QgIiQoZ2l0IGNvbmZpZyAtLWJvb2wgcmViYXNlLmF1dG9zcXVhc2gpIiA9ICJ0cnVlIiAmJiBhdXRvc3F1YXNoPXQKIAogcmVhZF9iYXNpY19zdGF0ZSAoKSB7CisJdGVzdCAtZiAiJHN0YXRlX2Rpci9oZWFkLW5hbWUiICYmCisJdGVzdCAtZiAiJHN0YXRlX2Rpci9vbnRvIiAmJgogCWhlYWRfbmFtZT0kKGNhdCAiJHN0YXRlX2RpciIvaGVhZC1uYW1lKSAmJgogCW9udG89JChjYXQgIiRzdGF0ZV9kaXIiL29udG8pICYmCiAJIyBXZSBhbHdheXMgd3JpdGUgdG8gb3JpZy1oZWFkLCBidXQgaW50ZXJhY3RpdmUgcmViYXNlIHVzZWQgdG8gd3JpdGUgdG8KQEAgLTE0Myw2ICsxNDcsMjYgQEAKIAllc2FjCiB9CiAKK2ZpbmlzaF9yZWJhc2UgKCkgeworCWlmIHRlc3QgLWYgIiRzdGF0ZV9kaXIvYXV0b3N0YXNoIgorCXRoZW4KKwkJc3Rhc2hfc2hhMT0kKGNhdCAiJHN0YXRlX2Rpci9hdXRvc3Rhc2giKQorCQlpZiBnaXQgc3Rhc2ggYXBwbHkgJHN0YXNoX3NoYTEgMj4mMSA+L2Rldi9udWxsCisJCXRoZW4KKwkJCWVjaG8gIiQoZ2V0dGV4dCAnQXBwbGllZCBhdXRvc3Rhc2guJykiCisJCWVsc2UKKwkJCWdpdCBzdGFzaCBzdG9yZSAtbSAiYXV0b3N0YXNoIiAtcSAkc3Rhc2hfc2hhMSB8fAorCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiQ2Fubm90IHN0b3JlIFwkc3Rhc2hfc2hhMSIpIgorCQkJZ2V0dGV4dCAnQXBwbHlpbmcgYXV0b3N0YXNoIHJlc3VsdGVkIGluIGNvbmZsaWN0cy4KK1lvdXIgY2hhbmdlcyBhcmUgc2FmZSBpbiB0aGUgc3Rhc2guCitZb3UgY2FuIHJ1biAiZ2l0IHN0YXNoIHBvcCIgb3IgImdpdCBzdGFzaCBkcm9wIiBhdCBhbnkgdGltZS4KKycKKwkJZmkKKwlmaQorCWdpdCBnYyAtLWF1dG8gJiYKKwlybSAtcmYgIiRzdGF0ZV9kaXIiCit9CisKIHJ1bl9zcGVjaWZpY19yZWJhc2UgKCkgewogCWlmIFsgIiRpbnRlcmFjdGl2ZV9yZWJhc2UiID0gaW1wbGllZCBdOyB0aGVuCiAJCUdJVF9FRElUT1I9OgpAQCAtMTUwLDYgKzE3NCwxMiBAQAogCQlhdXRvc3F1YXNoPQogCWZpCiAJLiBnaXQtcmViYXNlLS0kdHlwZQorCXJldD0kPworCWlmIHRlc3QgJHJldCAtZXEgMAorCXRoZW4KKwkJZmluaXNoX3JlYmFzZQorCWZpCisJZXhpdCAkcmV0CiB9CiAKIHJ1bl9wcmVfcmViYXNlX2hvb2sgKCkgewpAQCAtMjQxLDYgKzI3MSw5IEBACiAJLS1zdGF0KQogCQlkaWZmc3RhdD10CiAJCTs7CisJLS1hdXRvc3Rhc2gpCisJCWF1dG9zdGFzaD10cnVlCisJCTs7CiAJLXYpCiAJCXZlcmJvc2U9dAogCQlkaWZmc3RhdD10CkBAIC0zNDEsNyArMzc0LDcgQEAKIAkJOzsKIAllc2FjCiAJb3V0cHV0IGdpdCByZXNldCAtLWhhcmQgJG9yaWdfaGVhZAotCXJtIC1yICIkc3RhdGVfZGlyIgorCWZpbmlzaF9yZWJhc2UKIAlleGl0CiAJOzsKIGVkaXQtdG9kbykKQEAgLTQwMCw3ICs0MzMsNyBAQAogCQlzaGlmdAogCQk7OwogCWVzYWMKLQl1cHN0cmVhbT1gZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAiJHt1cHN0cmVhbV9uYW1lfV4wImAgfHwKKwl1cHN0cmVhbT0kKHBlZWxfY29tbWl0dGlzaCAiJHt1cHN0cmVhbV9uYW1lfSIpIHx8CiAJZGllICIkKGV2YWxfZ2V0dGV4dCAiaW52YWxpZCB1cHN0cmVhbSBcJHVwc3RyZWFtX25hbWUiKSIKIAl1cHN0cmVhbV9hcmc9IiR1cHN0cmVhbV9uYW1lIgogZWxzZQpAQCAtNDM2LDcgKzQ2OSw3IEBACiAJZmkKIAk7OwogKikKLQlvbnRvPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAiJHtvbnRvX25hbWV9XjAiKSB8fAorCW9udG89JChwZWVsX2NvbW1pdHRpc2ggIiRvbnRvX25hbWUiKSB8fAogCWRpZSAiJChldmFsX2dldHRleHQgIkRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgY29tbWl0OiBcJG9udG9fbmFtZSIpIgogCTs7CiBlc2FjCkBAIC00ODAsNiArNTEzLDE4IEBACiAJOzsKIGVzYWMKIAoraWYgdGVzdCAiJGF1dG9zdGFzaCIgPSB0cnVlICYmICEgKHJlcXVpcmVfY2xlYW5fd29ya190cmVlKSAyPi9kZXYvbnVsbAordGhlbgorCXN0YXNoX3NoYTE9JChnaXQgc3Rhc2ggY3JlYXRlICJhdXRvc3Rhc2giKSB8fAorCWRpZSAiJChnZXR0ZXh0ICdDYW5ub3QgYXV0b3N0YXNoJykiCisKKwlta2RpciAtcCAiJHN0YXRlX2RpciIgJiYKKwllY2hvICRzdGFzaF9zaGExID4iJHN0YXRlX2Rpci9hdXRvc3Rhc2giICYmCisJc3Rhc2hfYWJicmV2PSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0ICRzdGFzaF9zaGExKSAmJgorCWVjaG8gIiQoZXZhbF9nZXR0ZXh0ICdDcmVhdGVkIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldicpIiAmJgorCWdpdCByZXNldCAtLWhhcmQKK2ZpCisKIHJlcXVpcmVfY2xlYW5fd29ya190cmVlICJyZWJhc2UiICIkKGdldHRleHQgIlBsZWFzZSBjb21taXQgb3Igc3Rhc2ggdGhlbS4iKSIKIAogIyBOb3cgd2UgYXJlIHJlYmFzaW5nIGNvbW1pdHMgJHVwc3RyZWFtLi4kb3JpZ19oZWFkIChvciB3aXRoIC0tcm9vdCwKQEAgLTQ5Nyw4ICs1NDIsMTEgQEAKIAlpZiB0ZXN0IC16ICIkZm9yY2VfcmViYXNlIgogCXRoZW4KIAkJIyBMYXppbHkgc3dpdGNoIHRvIHRoZSB0YXJnZXQgYnJhbmNoIGlmIG5lZWRlZC4uLgotCQl0ZXN0IC16ICIkc3dpdGNoX3RvIiB8fCBnaXQgY2hlY2tvdXQgIiRzd2l0Y2hfdG8iIC0tCisJCXRlc3QgLXogIiRzd2l0Y2hfdG8iIHx8CisJCUdJVF9SRUZMT0dfQUNUSU9OPSIkR0lUX1JFRkxPR19BQ1RJT046IGNoZWNrb3V0ICRzd2l0Y2hfdG8iIFwKKwkJCWdpdCBjaGVja291dCAiJHN3aXRjaF90byIgLS0KIAkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiQ3VycmVudCBicmFuY2ggXCRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLiIpIgorCQlmaW5pc2hfcmViYXNlCiAJCWV4aXQgMAogCWVsc2UKIAkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiQ3VycmVudCBicmFuY2ggXCRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkLiIpIgpAQCAtNTIyLDcgKzU3MCw5IEBACiAKICMgRGV0YWNoIEhFQUQgYW5kIHJlc2V0IHRoZSB0cmVlCiBzYXkgIiQoZ2V0dGV4dCAiRmlyc3QsIHJld2luZGluZyBoZWFkIHRvIHJlcGxheSB5b3VyIHdvcmsgb24gdG9wIG9mIGl0Li4uIikiCi1naXQgY2hlY2tvdXQgLXEgIiRvbnRvXjAiIHx8IGRpZSAiY291bGQgbm90IGRldGFjaCBIRUFEIgorCitHSVRfUkVGTE9HX0FDVElPTj0iJEdJVF9SRUZMT0dfQUNUSU9OOiBjaGVja291dCAkb250b19uYW1lIiBcCisJZ2l0IGNoZWNrb3V0IC1xICIkb250b14wIiB8fCBkaWUgImNvdWxkIG5vdCBkZXRhY2ggSEVBRCIKIGdpdCB1cGRhdGUtcmVmIE9SSUdfSEVBRCAkb3JpZ19oZWFkCiAKICMgSWYgdGhlICRvbnRvIGlzIGEgcHJvcGVyIGRlc2NlbmRhbnQgb2YgdGhlIHRpcCBvZiB0aGUgYnJhbmNoLCB0aGVuCkBAIC01MzEsNiArNTgxLDcgQEAKIHRoZW4KIAlzYXkgIiQoZXZhbF9nZXR0ZXh0ICJGYXN0LWZvcndhcmRlZCBcJGJyYW5jaF9uYW1lIHRvIFwkb250b19uYW1lLiIpIgogCW1vdmVfdG9fb3JpZ2luYWxfYnJhbmNoCisJZmluaXNoX3JlYmFzZQogCWV4aXQgMAogZmkKIApkaWZmIC0tZ2l0IGEvZ2l0LXJlbW90ZS10ZXN0Z2l0IGIvZ2l0LXJlbW90ZS10ZXN0Z2l0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBlN2VkM2EzLi4wMDAwMDAwCi0tLSBhL2dpdC1yZW1vdGUtdGVzdGdpdAorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IGJhc2gKLSMgQ29weXJpZ2h0IChjKSAyMDEyIEZlbGlwZSBDb250cmVyYXMKLQotYWxpYXM9JDEKLXVybD0kMgotCi1kaXI9IiRHSVRfRElSL3Rlc3RnaXQvJGFsaWFzIgotcHJlZml4PSJyZWZzL3Rlc3RnaXQvJGFsaWFzIgotCi1kZWZhdWx0X3JlZnNwZWM9InJlZnMvaGVhZHMvKjoke3ByZWZpeH0vaGVhZHMvKiIKLQotcmVmc3BlYz0iJHtHSVRfUkVNT1RFX1RFU1RHSVRfUkVGU1BFQy0kZGVmYXVsdF9yZWZzcGVjfSIKLQotdGVzdCAteiAiJHJlZnNwZWMiICYmIHByZWZpeD0icmVmcyIKLQotZXhwb3J0IEdJVF9ESVI9IiR1cmwvLmdpdCIKLQotbWtkaXIgLXAgIiRkaXIiCi0KLWlmIHRlc3QgLXogIiRHSVRfUkVNT1RFX1RFU1RHSVRfTk9fTUFSS1MiCi10aGVuCi0JZ2l0bWFya3M9IiRkaXIvZ2l0Lm1hcmtzIgotCXRlc3RnaXRtYXJrcz0iJGRpci90ZXN0Z2l0Lm1hcmtzIgotCXRlc3QgLWUgIiRnaXRtYXJrcyIgfHwgPiIkZ2l0bWFya3MiCi0JdGVzdCAtZSAiJHRlc3RnaXRtYXJrcyIgfHwgPiIkdGVzdGdpdG1hcmtzIgotCXRlc3RnaXRtYXJrc19hcmdzPSggIi0tIntpbXBvcnQsZXhwb3J0fSItbWFya3M9JHRlc3RnaXRtYXJrcyIgKQotZmkKLQotd2hpbGUgcmVhZCBsaW5lCi1kbwotCWNhc2UgJGxpbmUgaW4KLQljYXBhYmlsaXRpZXMpCi0JCWVjaG8gJ2ltcG9ydCcKLQkJZWNobyAnZXhwb3J0JwotCQl0ZXN0IC1uICIkcmVmc3BlYyIgJiYgZWNobyAicmVmc3BlYyAkcmVmc3BlYyIKLQkJaWYgdGVzdCAtbiAiJGdpdG1hcmtzIgotCQl0aGVuCi0JCQllY2hvICIqaW1wb3J0LW1hcmtzICRnaXRtYXJrcyIKLQkJCWVjaG8gIipleHBvcnQtbWFya3MgJGdpdG1hcmtzIgotCQlmaQotCQl0ZXN0IC1uICIkR0lUX1JFTU9URV9URVNUR0lUX1NJR05FRF9UQUdTIiAmJiBlY2hvICJzaWduZWQtdGFncyIKLQkJZWNobwotCQk7OwotCWxpc3QpCi0JCWdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQ9Jz8gJShyZWZuYW1lKScgJ3JlZnMvaGVhZHMvJwotCQloZWFkPSQoZ2l0IHN5bWJvbGljLXJlZiBIRUFEKQotCQllY2hvICJAJGhlYWQgSEVBRCIKLQkJZWNobwotCQk7OwotCWltcG9ydCopCi0JCSMgcmVhZCBhbGwgaW1wb3J0IGxpbmVzCi0JCXdoaWxlIHRydWUKLQkJZG8KLQkJCXJlZj0iJHtsaW5lIyogfSIKLQkJCXJlZnM9IiRyZWZzICRyZWYiCi0JCQlyZWFkIGxpbmUKLQkJCXRlc3QgIiR7bGluZSUlICp9IiAhPSAiaW1wb3J0IiAmJiBicmVhawotCQlkb25lCi0KLQkJaWYgdGVzdCAtbiAiJGdpdG1hcmtzIgotCQl0aGVuCi0JCQllY2hvICJmZWF0dXJlIGltcG9ydC1tYXJrcz0kZ2l0bWFya3MiCi0JCQllY2hvICJmZWF0dXJlIGV4cG9ydC1tYXJrcz0kZ2l0bWFya3MiCi0JCWZpCi0JCWVjaG8gImZlYXR1cmUgZG9uZSIKLQkJZ2l0IGZhc3QtZXhwb3J0ICIke3Rlc3RnaXRtYXJrc19hcmdzW0BdfSIgJHJlZnMgfAotCQlzZWQgLWUgInMjcmVmcy9oZWFkcy8jJHtwcmVmaXh9L2hlYWRzLyNnIgotCQllY2hvICJkb25lIgotCQk7OwotCWV4cG9ydCkKLQkJYmVmb3JlPSQoZ2l0IGZvci1lYWNoLXJlZiAtLWZvcm1hdD0nJShyZWZuYW1lKSAlKG9iamVjdG5hbWUpJykKLQotCQlnaXQgZmFzdC1pbXBvcnQgIiR7dGVzdGdpdG1hcmtzX2FyZ3NbQF19IiAtLXF1aWV0Ci0KLQkJYWZ0ZXI9JChnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PSclKHJlZm5hbWUpICUob2JqZWN0bmFtZSknKQotCi0JCSMgZmlndXJlIG91dCB3aGljaCByZWZzIHdlcmUgdXBkYXRlZAotCQlqb2luIC1lIDAgLW8gJzAgMS4yIDIuMicgLWEgMiA8KGVjaG8gIiRiZWZvcmUiKSA8KGVjaG8gIiRhZnRlciIpIHwKLQkJd2hpbGUgcmVhZCByZWYgYSBiCi0JCWRvCi0JCQl0ZXN0ICRhID09ICRiICYmIGNvbnRpbnVlCi0JCQllY2hvICJvayAkcmVmIgotCQlkb25lCi0KLQkJZWNobwotCQk7OwotCScnKQotCQlleGl0Ci0JCTs7Ci0JZXNhYwotZG9uZQpkaWZmIC0tZ2l0IGEvZ2l0LXJlbW90ZS10ZXN0Z2l0LnNoIGIvZ2l0LXJlbW90ZS10ZXN0Z2l0LnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxMDkwNzAKLS0tIC9kZXYvbnVsbAorKysgYi9naXQtcmVtb3RlLXRlc3RnaXQuc2gKQEAgLTAsMCArMSwxMjEgQEAKKyMhL2Jpbi9zaAorIyBDb3B5cmlnaHQgKGMpIDIwMTIgRmVsaXBlIENvbnRyZXJhcworCithbGlhcz0kMQordXJsPSQyCisKK2Rpcj0iJEdJVF9ESVIvdGVzdGdpdC8kYWxpYXMiCitwcmVmaXg9InJlZnMvdGVzdGdpdC8kYWxpYXMiCisKK2RlZmF1bHRfcmVmc3BlYz0icmVmcy9oZWFkcy8qOiR7cHJlZml4fS9oZWFkcy8qIgorCityZWZzcGVjPSIke0dJVF9SRU1PVEVfVEVTVEdJVF9SRUZTUEVDLSRkZWZhdWx0X3JlZnNwZWN9IgorCit0ZXN0IC16ICIkcmVmc3BlYyIgJiYgcHJlZml4PSJyZWZzIgorCitleHBvcnQgR0lUX0RJUj0iJHVybC8uZ2l0IgorCitta2RpciAtcCAiJGRpciIKKworaWYgdGVzdCAteiAiJEdJVF9SRU1PVEVfVEVTVEdJVF9OT19NQVJLUyIKK3RoZW4KKwlnaXRtYXJrcz0iJGRpci9naXQubWFya3MiCisJdGVzdGdpdG1hcmtzPSIkZGlyL3Rlc3RnaXQubWFya3MiCisJdGVzdCAtZSAiJGdpdG1hcmtzIiB8fCA+IiRnaXRtYXJrcyIKKwl0ZXN0IC1lICIkdGVzdGdpdG1hcmtzIiB8fCA+IiR0ZXN0Z2l0bWFya3MiCitmaQorCit3aGlsZSByZWFkIGxpbmUKK2RvCisJY2FzZSAkbGluZSBpbgorCWNhcGFiaWxpdGllcykKKwkJZWNobyAnaW1wb3J0JworCQllY2hvICdleHBvcnQnCisJCXRlc3QgLW4gIiRyZWZzcGVjIiAmJiBlY2hvICJyZWZzcGVjICRyZWZzcGVjIgorCQlpZiB0ZXN0IC1uICIkZ2l0bWFya3MiCisJCXRoZW4KKwkJCWVjaG8gIippbXBvcnQtbWFya3MgJGdpdG1hcmtzIgorCQkJZWNobyAiKmV4cG9ydC1tYXJrcyAkZ2l0bWFya3MiCisJCWZpCisJCXRlc3QgLW4gIiRHSVRfUkVNT1RFX1RFU1RHSVRfU0lHTkVEX1RBR1MiICYmIGVjaG8gInNpZ25lZC10YWdzIgorCQllY2hvCisJCTs7CisJbGlzdCkKKwkJZ2l0IGZvci1lYWNoLXJlZiAtLWZvcm1hdD0nPyAlKHJlZm5hbWUpJyAncmVmcy9oZWFkcy8nCisJCWhlYWQ9JChnaXQgc3ltYm9saWMtcmVmIEhFQUQpCisJCWVjaG8gIkAkaGVhZCBIRUFEIgorCQllY2hvCisJCTs7CisJaW1wb3J0KikKKwkJIyByZWFkIGFsbCBpbXBvcnQgbGluZXMKKwkJd2hpbGUgdHJ1ZQorCQlkbworCQkJcmVmPSIke2xpbmUjKiB9IgorCQkJcmVmcz0iJHJlZnMgJHJlZiIKKwkJCXJlYWQgbGluZQorCQkJdGVzdCAiJHtsaW5lJSUgKn0iICE9ICJpbXBvcnQiICYmIGJyZWFrCisJCWRvbmUKKworCQlpZiB0ZXN0IC1uICIkZ2l0bWFya3MiCisJCXRoZW4KKwkJCWVjaG8gImZlYXR1cmUgaW1wb3J0LW1hcmtzPSRnaXRtYXJrcyIKKwkJCWVjaG8gImZlYXR1cmUgZXhwb3J0LW1hcmtzPSRnaXRtYXJrcyIKKwkJZmkKKworCQlpZiB0ZXN0IC1uICIkR0lUX1JFTU9URV9URVNUR0lUX0ZBSUxVUkUiCisJCXRoZW4KKwkJCWVjaG8gImZlYXR1cmUgZG9uZSIKKwkJCWV4aXQgMQorCQlmaQorCisJCWVjaG8gImZlYXR1cmUgZG9uZSIKKwkJZ2l0IGZhc3QtZXhwb3J0IFwKKwkJCSR7dGVzdGdpdG1hcmtzOisiLS1pbXBvcnQtbWFya3M9JHRlc3RnaXRtYXJrcyJ9IFwKKwkJCSR7dGVzdGdpdG1hcmtzOisiLS1leHBvcnQtbWFya3M9JHRlc3RnaXRtYXJrcyJ9IFwKKwkJCSRyZWZzIHwKKwkJc2VkIC1lICJzI3JlZnMvaGVhZHMvIyR7cHJlZml4fS9oZWFkcy8jZyIKKwkJZWNobyAiZG9uZSIKKwkJOzsKKwlleHBvcnQpCisJCWlmIHRlc3QgLW4gIiRHSVRfUkVNT1RFX1RFU1RHSVRfRkFJTFVSRSIKKwkJdGhlbgorCQkJIyBjb25zdW1lIGlucHV0IHNvIGZhc3QtZXhwb3J0IGRvZXNuJ3QgZ2V0IFNJR1BJUEU7CisJCQkjIGdpdCB3b3VsZCBhbHNvIG5vdGljZSB0aGF0IGNhc2UsIGJ1dCB3ZSB3YW50CisJCQkjIHRvIG1ha2Ugc3VyZSB3ZSBhcmUgZXhlcmNpc2luZyB0aGUgbGF0ZXIKKwkJCSMgZXJyb3IgY2hlY2tzCisJCQl3aGlsZSByZWFkIGxpbmU7IGRvCisJCQkJdGVzdCAiZG9uZSIgPSAiJGxpbmUiICYmIGJyZWFrCisJCQlkb25lCisJCQlleGl0IDEKKwkJZmkKKworCQliZWZvcmU9JChnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PScgJShyZWZuYW1lKSAlKG9iamVjdG5hbWUpICcpCisKKwkJZ2l0IGZhc3QtaW1wb3J0IFwKKwkJCSR7dGVzdGdpdG1hcmtzOisiLS1pbXBvcnQtbWFya3M9JHRlc3RnaXRtYXJrcyJ9IFwKKwkJCSR7dGVzdGdpdG1hcmtzOisiLS1leHBvcnQtbWFya3M9JHRlc3RnaXRtYXJrcyJ9IFwKKwkJCS0tcXVpZXQKKworCQkjIGZpZ3VyZSBvdXQgd2hpY2ggcmVmcyB3ZXJlIHVwZGF0ZWQKKwkJZ2l0IGZvci1lYWNoLXJlZiAtLWZvcm1hdD0nJShyZWZuYW1lKSAlKG9iamVjdG5hbWUpJyB8CisJCXdoaWxlIHJlYWQgcmVmIGEKKwkJZG8KKwkJCWNhc2UgIiRiZWZvcmUiIGluCisJCQkqIiAkcmVmICRhICIqKQorCQkJCWNvbnRpbnVlIDs7CSMgdW5jaGFuZ2VkCisJCQllc2FjCisJCQlpZiB0ZXN0IC16ICIkR0lUX1JFTU9URV9URVNUR0lUX1BVU0hfRVJST1IiCisJCQl0aGVuCisJCQkJZWNobyAib2sgJHJlZiIKKwkJCWVsc2UKKwkJCQllY2hvICJlcnJvciAkcmVmICRHSVRfUkVNT1RFX1RFU1RHSVRfUFVTSF9FUlJPUiIKKwkJCWZpCisJCWRvbmUKKworCQllY2hvCisJCTs7CisJJycpCisJCWV4aXQKKwkJOzsKKwllc2FjCitkb25lCmRpZmYgLS1naXQgYS9naXQtcmVxdWVzdC1wdWxsLnNoIGIvZ2l0LXJlcXVlc3QtcHVsbC5zaAppbmRleCBkNTY2MDE1Li5lYmYxMjY5IDEwMDc1NQotLS0gYS9naXQtcmVxdWVzdC1wdWxsLnNoCisrKyBiL2dpdC1yZXF1ZXN0LXB1bGwuc2gKQEAgLTUxLDggKzUxLDE4IEBACiB0YWdfbmFtZT0kKGdpdCBkZXNjcmliZSAtLWV4YWN0ICIkaGVhZF4wIiAyPi9kZXYvbnVsbCkKIAogdGVzdCAtbiAiJGJhc2UiICYmIHRlc3QgLW4gIiR1cmwiIHx8IHVzYWdlCi1iYXNlcmV2PSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAiJGJhc2UiXjApICYmCi1oZWFkcmV2PSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAiJGhlYWQiXjApIHx8IGV4aXQKKworYmFzZXJldj0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1xdWlldCAiJGJhc2UiXjApCitpZiB0ZXN0IC16ICIkYmFzZXJldiIKK3RoZW4KKyAgICBkaWUgImZhdGFsOiBOb3QgYSB2YWxpZCByZXZpc2lvbjogJGJhc2UiCitmaQorCitoZWFkcmV2PSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtLXF1aWV0ICIkaGVhZCJeMCkKK2lmIHRlc3QgLXogIiRoZWFkcmV2IgordGhlbgorICAgIGRpZSAiZmF0YWw6IE5vdCBhIHZhbGlkIHJldmlzaW9uOiAkaGVhZCIKK2ZpCiAKIG1lcmdlX2Jhc2U9JChnaXQgbWVyZ2UtYmFzZSAkYmFzZXJldiAkaGVhZHJldikgfHwKIGRpZSAiZmF0YWw6IE5vIGNvbW1pdHMgaW4gY29tbW9uIGJldHdlZW4gJGJhc2UgYW5kICRoZWFkIgpkaWZmIC0tZ2l0IGEvZ2l0LXNlbmQtZW1haWwucGVybCBiL2dpdC1zZW5kLWVtYWlsLnBlcmwKaW5kZXggYmQxM2NjOC4uMzc4MmMzYiAxMDA3NTUKLS0tIGEvZ2l0LXNlbmQtZW1haWwucGVybAorKysgYi9naXQtc2VuZC1lbWFpbC5wZXJsCkBAIC02OSw2ICs2OSw5IEBACiAgICAgLS1zbXRwLXBhc3MgICAgICAgICAgICAgPHN0cj4gICogUGFzc3dvcmQgZm9yIFNNVFAtQVVUSDsgbm90IG5lY2Vzc2FyeS4KICAgICAtLXNtdHAtZW5jcnlwdGlvbiAgICAgICA8c3RyPiAgKiB0bHMgb3Igc3NsOyBhbnl0aGluZyBlbHNlIGRpc2FibGVzLgogICAgIC0tc210cC1zc2wgICAgICAgICAgICAgICAgICAgICAqIERlcHJlY2F0ZWQuIFVzZSAnLS1zbXRwLWVuY3J5cHRpb24gc3NsJy4KKyAgICAtLXNtdHAtc3NsLWNlcnQtcGF0aCAgICA8c3RyPiAgKiBQYXRoIHRvIGNhLWNlcnRpZmljYXRlcyAoZWl0aGVyIGRpcmVjdG9yeSBvciBmaWxlKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzIGFuIGVtcHR5IHN0cmluZyB0byBkaXNhYmxlIGNlcnRpZmljYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZpY2F0aW9uLgogICAgIC0tc210cC1kb21haW4gICAgICAgICAgIDxzdHI+ICAqIFRoZSBkb21haW4gbmFtZSBzZW50IHRvIEhFTE8vRUhMTyBoYW5kc2hha2UKICAgICAtLXNtdHAtZGVidWcgICAgICAgICAgICA8MHwxPiAgKiBEaXNhYmxlLCBlbmFibGUgTmV0OjpTTVRQIGRlYnVnLgogCkBAIC0xOTQsNyArMTk3LDcgQEAKIG15ICgkdGhyZWFkLCAkY2hhaW5fcmVwbHlfdG8sICRzdXBwcmVzc19mcm9tLCAkc2lnbmVkX29mZl9ieV9jYyk7CiBteSAoJHRvX2NtZCwgJGNjX2NtZCk7CiBteSAoJHNtdHBfc2VydmVyLCAkc210cF9zZXJ2ZXJfcG9ydCwgQHNtdHBfc2VydmVyX29wdGlvbnMpOwotbXkgKCRzbXRwX2F1dGh1c2VyLCAkc210cF9lbmNyeXB0aW9uKTsKK215ICgkc210cF9hdXRodXNlciwgJHNtdHBfZW5jcnlwdGlvbiwgJHNtdHBfc3NsX2NlcnRfcGF0aCk7CiBteSAoJGlkZW50aXR5LCAkYWxpYXNmaWxldHlwZSwgQGFsaWFzX2ZpbGVzLCAkc210cF9kb21haW4pOwogbXkgKCR2YWxpZGF0ZSwgJGNvbmZpcm0pOwogbXkgKEBzdXBwcmVzc19jYyk7CkBAIC0yMDMsMTEgKzIwNiw5IEBACiAKIG15ICgkZGVidWdfbmV0X3NtdHApID0gMDsJCSMgTmV0OjpTTVRQLCBzZWUgc2VuZF9tZXNzYWdlKCkKIAotbXkgJG5vdF9zZXRfYnlfdXNlciA9ICJ0cnVlIGJ1dCBub3Qgc2V0IGJ5IHRoZSB1c2VyIjsKLQogbXkgJWNvbmZpZ19ib29sX3NldHRpbmdzID0gKAogICAgICJ0aHJlYWQiID0+IFtcJHRocmVhZCwgMV0sCi0gICAgImNoYWlucmVwbHl0byIgPT4gW1wkY2hhaW5fcmVwbHlfdG8sICRub3Rfc2V0X2J5X3VzZXJdLAorICAgICJjaGFpbnJlcGx5dG8iID0+IFtcJGNoYWluX3JlcGx5X3RvLCAwXSwKICAgICAic3VwcHJlc3Nmcm9tIiA9PiBbXCRzdXBwcmVzc19mcm9tLCB1bmRlZl0sCiAgICAgInNpZ25lZG9mZmJ5Y2MiID0+IFtcJHNpZ25lZF9vZmZfYnlfY2MsIHVuZGVmXSwKICAgICAic2lnbmVkb2ZmY2MiID0+IFtcJHNpZ25lZF9vZmZfYnlfY2MsIHVuZGVmXSwgICAgICAjIERlcHJlY2F0ZWQKQEAgLTIyMiw2ICsyMjMsNyBAQAogICAgICJzbXRwc2VydmVyb3B0aW9uIiA9PiBcQHNtdHBfc2VydmVyX29wdGlvbnMsCiAgICAgInNtdHB1c2VyIiA9PiBcJHNtdHBfYXV0aHVzZXIsCiAgICAgInNtdHBwYXNzIiA9PiBcJHNtdHBfYXV0aHBhc3MsCisgICAgInNtdHBzc2xjZXJ0cGF0aCIgPT4gXCRzbXRwX3NzbF9jZXJ0X3BhdGgsCiAgICAgInNtdHBkb21haW4iID0+IFwkc210cF9kb21haW4sCiAgICAgInRvIiA9PiBcQGluaXRpYWxfdG8sCiAgICAgInRvY21kIiA9PiBcJHRvX2NtZCwKQEAgLTI0MSwxOSArMjQzLDYgQEAKICAgICAiYWxpYXNlc2ZpbGUiID0+IFxAYWxpYXNfZmlsZXMsCiApOwogCi0jIEhlbHAgdXNlcnMgcHJlcGFyZSBmb3IgMS43LjAKLXN1YiBjaGFpbl9yZXBseV90byB7Ci0JaWYgKGRlZmluZWQgJGNoYWluX3JlcGx5X3RvICYmCi0JICAgICRjaGFpbl9yZXBseV90byBlcSAkbm90X3NldF9ieV91c2VyKSB7Ci0JCXByaW50IFNUREVSUgotCQkgICAgIkluIGdpdCAxLjcuMCwgdGhlIGRlZmF1bHQgaGFzIGNoYW5nZWQgdG8gLS1uby1jaGFpbi1yZXBseS10b1xuIiAuCi0JCSAgICAiU2V0IHNlbmRlbWFpbC5jaGFpbnJlcGx5dG8gY29uZmlndXJhdGlvbiB2YXJpYWJsZSB0byB0cnVlIGlmXG4iIC4KLQkJICAgICJ5b3Ugd2FudCB0byBrZWVwIC0tY2hhaW4tcmVwbHktdG8gYXMgeW91ciBkZWZhdWx0LlxuIjsKLQkJJGNoYWluX3JlcGx5X3RvID0gMDsKLQl9Ci0JcmV0dXJuICRjaGFpbl9yZXBseV90bzsKLX0KLQogIyBIYW5kbGUgVW5jb3V0aCBUZXJtaW5hdGlvbgogc3ViIHNpZ25hbF9oYW5kbGVyIHsKIApAQCAtMzAyLDYgKzI5MSw3IEBACiAJCSAgICAic210cC1wYXNzOnMiID0+IFwkc210cF9hdXRocGFzcywKIAkJICAgICJzbXRwLXNzbCIgPT4gc3ViIHsgJHNtdHBfZW5jcnlwdGlvbiA9ICdzc2wnIH0sCiAJCSAgICAic210cC1lbmNyeXB0aW9uPXMiID0+IFwkc210cF9lbmNyeXB0aW9uLAorCQkgICAgInNtdHAtc3NsLWNlcnQtcGF0aCIgPT4gXCRzbXRwX3NzbF9jZXJ0X3BhdGgsCiAJCSAgICAic210cC1kZWJ1ZzppIiA9PiBcJGRlYnVnX25ldF9zbXRwLAogCQkgICAgInNtdHAtZG9tYWluOnMiID0+IFwkc210cF9kb21haW4sCiAJCSAgICAiaWRlbnRpdHk9cyIgPT4gXCRpZGVudGl0eSwKQEAgLTc2MCw2ICs3NTAsMTEgQEAKIAkkc2VuZGVyID0gJHJlcG9hdXRob3IgfHwgJHJlcG9jb21taXR0ZXIgfHwgJyc7CiB9CiAKKyMgJHNlbmRlciBjb3VsZCBiZSBhbiBhbHJlYWR5IHNhbml0aXplZCBhZGRyZXNzCisjIChlLmcuIHNlbmRlbWFpbC5mcm9tIGNvdWxkIGJlIG1hbnVhbGx5IHNhbml0aXplZCBieSB1c2VyKS4KKyMgQnV0IGl0J3MgYSBuby1vcCB0byBydW4gc2FuaXRpemVfYWRkcmVzcyBvbiBhbiBhbHJlYWR5IHNhbml0aXplZCBhZGRyZXNzLgorJHNlbmRlciA9IHNhbml0aXplX2FkZHJlc3MoJHNlbmRlcik7CisKIG15ICRwcm9tcHRpbmcgPSAwOwogaWYgKCFAaW5pdGlhbF90byAmJiAhZGVmaW5lZCAkdG9fY21kKSB7CiAJbXkgJHRvID0gYXNrKCJXaG8gc2hvdWxkIHRoZSBlbWFpbHMgYmUgc2VudCB0byAoaWYgYW55KT8gIiwKQEAgLTEwODksNiArMTA4NCwzNCBAQAogCXJldHVybiAkYXV0aDsKIH0KIAorc3ViIHNzbF92ZXJpZnlfcGFyYW1zIHsKKwlldmFsIHsKKwkJcmVxdWlyZSBJTzo6U29ja2V0OjpTU0w7CisJCUlPOjpTb2NrZXQ6OlNTTC0+aW1wb3J0KHF3L1NTTF9WRVJJRllfUEVFUiBTU0xfVkVSSUZZX05PTkUvKTsKKwl9OworCWlmICgkQCkgeworCQlwcmludCBTVERFUlIgIk5vdCB1c2luZyBTU0xfVkVSSUZZX1BFRVIgZHVlIHRvIG91dC1vZi1kYXRlIElPOjpTb2NrZXQ6OlNTTC5cbiI7CisJCXJldHVybjsKKwl9CisKKwlpZiAoIWRlZmluZWQgJHNtdHBfc3NsX2NlcnRfcGF0aCkgeworCQkkc210cF9zc2xfY2VydF9wYXRoID0gIi9ldGMvc3NsL2NlcnRzIjsKKwl9CisKKwlpZiAoJHNtdHBfc3NsX2NlcnRfcGF0aCBlcSAiIikgeworCQlyZXR1cm4gKFNTTF92ZXJpZnlfbW9kZSA9PiBTU0xfVkVSSUZZX05PTkUoKSk7CisJfSBlbHNpZiAoLWQgJHNtdHBfc3NsX2NlcnRfcGF0aCkgeworCQlyZXR1cm4gKFNTTF92ZXJpZnlfbW9kZSA9PiBTU0xfVkVSSUZZX1BFRVIoKSwKKwkJCVNTTF9jYV9wYXRoID0+ICRzbXRwX3NzbF9jZXJ0X3BhdGgpOworCX0gZWxzaWYgKC1mICRzbXRwX3NzbF9jZXJ0X3BhdGgpIHsKKwkJcmV0dXJuIChTU0xfdmVyaWZ5X21vZGUgPT4gU1NMX1ZFUklGWV9QRUVSKCksCisJCQlTU0xfY2FfZmlsZSA9PiAkc210cF9zc2xfY2VydF9wYXRoKTsKKwl9IGVsc2UgeworCQlwcmludCBTVERFUlIgIk5vdCB1c2luZyBTU0xfVkVSSUZZX1BFRVIgYmVjYXVzZSB0aGUgQ0EgcGF0aCBkb2VzIG5vdCBleGlzdC5cbiI7CisJCXJldHVybiAoU1NMX3ZlcmlmeV9tb2RlID0+IFNTTF9WRVJJRllfTk9ORSgpKTsKKwl9Cit9CisKICMgUmV0dXJucyAxIGlmIHRoZSBtZXNzYWdlIHdhcyBzZW50LCBhbmQgMCBvdGhlcndpc2UuCiAjIEluIGFjdHVhbGl0eSwgdGhlIHdob2xlIHByb2dyYW0gZGllcyB3aGVuIHRoZXJlCiAjIGlzIGFuIGVycm9yIHNlbmRpbmcgYSBtZXNzYWdlLgpAQCAtMTExMywxMCArMTEzNiw5IEBACiAJaWYgKCRjYyBuZSAnJykgewogCQkkY2NsaW5lID0gIlxuQ2M6ICRjYyI7CiAJfQotCW15ICRzYW5pdGl6ZWRfc2VuZGVyID0gc2FuaXRpemVfYWRkcmVzcygkc2VuZGVyKTsKIAltYWtlX21lc3NhZ2VfaWQoKSB1bmxlc3MgZGVmaW5lZCgkbWVzc2FnZV9pZCk7CiAKLQlteSAkaGVhZGVyID0gIkZyb206ICRzYW5pdGl6ZWRfc2VuZGVyCisJbXkgJGhlYWRlciA9ICJGcm9tOiAkc2VuZGVyCiBUbzogJHRvJHtjY2xpbmV9CiBTdWJqZWN0OiAkc3ViamVjdAogRGF0ZTogJGRhdGUKQEAgLTExMzMsNyArMTE1NSw3IEBACiAJfQogCiAJbXkgQHNlbmRtYWlsX3BhcmFtZXRlcnMgPSAoJy1pJywgQHJlY2lwaWVudHMpOwotCW15ICRyYXdfZnJvbSA9ICRzYW5pdGl6ZWRfc2VuZGVyOworCW15ICRyYXdfZnJvbSA9ICRzZW5kZXI7CiAJaWYgKGRlZmluZWQgJGVudmVsb3BlX3NlbmRlciAmJiAkZW52ZWxvcGVfc2VuZGVyIG5lICJhdXRvIikgewogCQkkcmF3X2Zyb20gPSAkZW52ZWxvcGVfc2VuZGVyOwogCX0KQEAgLTExOTQsMjEgKzEyMTYsMjUgQEAKIAkJCSRzbXRwX2RvbWFpbiB8fD0gbWFpbGRvbWFpbigpOwogCQkJJHNtdHAgfHw9IE5ldDo6U01UUDo6U1NMLT5uZXcoJHNtdHBfc2VydmVyLAogCQkJCQkJICAgICAgSGVsbG8gPT4gJHNtdHBfZG9tYWluLAotCQkJCQkJICAgICAgUG9ydCA9PiAkc210cF9zZXJ2ZXJfcG9ydCk7CisJCQkJCQkgICAgICBQb3J0ID0+ICRzbXRwX3NlcnZlcl9wb3J0LAorCQkJCQkJICAgICAgc3NsX3ZlcmlmeV9wYXJhbXMoKSk7CiAJCX0KIAkJZWxzZSB7CiAJCQlyZXF1aXJlIE5ldDo6U01UUDsKIAkJCSRzbXRwX2RvbWFpbiB8fD0gbWFpbGRvbWFpbigpOwotCQkJJHNtdHAgfHw9IE5ldDo6U01UUC0+bmV3KHNtdHBfaG9zdF9zdHJpbmcoKSwKKwkJCSRzbXRwX3NlcnZlcl9wb3J0IHx8PSAyNTsKKwkJCSRzbXRwIHx8PSBOZXQ6OlNNVFAtPm5ldygkc210cF9zZXJ2ZXIsCiAJCQkJCQkgSGVsbG8gPT4gJHNtdHBfZG9tYWluLAotCQkJCQkJIERlYnVnID0+ICRkZWJ1Z19uZXRfc210cCk7CisJCQkJCQkgRGVidWcgPT4gJGRlYnVnX25ldF9zbXRwLAorCQkJCQkJIFBvcnQgPT4gJHNtdHBfc2VydmVyX3BvcnQpOwogCQkJaWYgKCRzbXRwX2VuY3J5cHRpb24gZXEgJ3RscycgJiYgJHNtdHApIHsKIAkJCQlyZXF1aXJlIE5ldDo6U01UUDo6U1NMOwogCQkJCSRzbXRwLT5jb21tYW5kKCdTVEFSVFRMUycpOwogCQkJCSRzbXRwLT5yZXNwb25zZSgpOwogCQkJCWlmICgkc210cC0+Y29kZSA9PSAyMjApIHsKLQkJCQkJJHNtdHAgPSBOZXQ6OlNNVFA6OlNTTC0+c3RhcnRfU1NMKCRzbXRwKQotCQkJCQkJb3IgZGllICJTVEFSVFRMUyBmYWlsZWQhICIuJHNtdHAtPm1lc3NhZ2U7CisJCQkJCSRzbXRwID0gTmV0OjpTTVRQOjpTU0wtPnN0YXJ0X1NTTCgkc210cCwKKwkJCQkJCQkJCSAgc3NsX3ZlcmlmeV9wYXJhbXMoKSkKKwkJCQkJCW9yIGRpZSAiU1RBUlRUTFMgZmFpbGVkISAiLklPOjpTb2NrZXQ6OlNTTDo6ZXJyc3RyKCk7CiAJCQkJCSRzbXRwX2VuY3J5cHRpb24gPSAnJzsKIAkJCQkJIyBTZW5kIEVITE8gYWdhaW4gdG8gcmVjZWl2ZSBmcmVzaAogCQkJCQkjIHN1cHBvcnRlZCBjb21tYW5kcwpAQCAtMTI3MCw2ICsxMjk2LDcgQEAKIAlvcGVuIG15ICRmaCwgIjwiLCAkdCBvciBkaWUgImNhbid0IG9wZW4gZmlsZSAkdCI7CiAKIAlteSAkYXV0aG9yID0gdW5kZWY7CisJbXkgJHNhdXRob3IgPSB1bmRlZjsKIAlteSAkYXV0aG9yX2VuY29kaW5nOwogCW15ICRoYXNfY29udGVudF90eXBlOwogCW15ICRib2R5X2VuY29kaW5nOwpAQCAtMTMwOCw4ICsxMzM1LDkgQEAKIAkJCX0KIAkJCWVsc2lmICgvXkZyb206XHMrKC4qKSQvaSkgewogCQkJCSgkYXV0aG9yLCAkYXV0aG9yX2VuY29kaW5nKSA9IHVucXVvdGVfcmZjMjA0NygkMSk7CisJCQkJJHNhdXRob3IgPSBzYW5pdGl6ZV9hZGRyZXNzKCRhdXRob3IpOwogCQkJCW5leHQgaWYgJHN1cHByZXNzX2NjeydhdXRob3InfTsKLQkJCQluZXh0IGlmICRzdXBwcmVzc19jY3snc2VsZid9IGFuZCAkYXV0aG9yIGVxICRzZW5kZXI7CisJCQkJbmV4dCBpZiAkc3VwcHJlc3NfY2N7J3NlbGYnfSBhbmQgJHNhdXRob3IgZXEgJHNlbmRlcjsKIAkJCQlwcmludGYoIihtYm94KSBBZGRpbmcgY2M6ICVzIGZyb20gbGluZSAnJXMnXG4iLAogCQkJCQkkMSwgJF8pIHVubGVzcyAkcXVpZXQ7CiAJCQkJcHVzaCBAY2MsICQxOwpAQCAtMTMyMyw3ICsxMzUxLDkgQEAKIAkJCX0KIAkJCWVsc2lmICgvXkNjOlxzKyguKikkL2kpIHsKIAkJCQlmb3JlYWNoIG15ICRhZGRyIChwYXJzZV9hZGRyZXNzX2xpbmUoJDEpKSB7Ci0JCQkJCWlmICh1bnF1b3RlX3JmYzIwNDcoJGFkZHIpIGVxICRzZW5kZXIpIHsKKwkJCQkJbXkgJHFhZGRyID0gdW5xdW90ZV9yZmMyMDQ3KCRhZGRyKTsKKwkJCQkJbXkgJHNhZGRyID0gc2FuaXRpemVfYWRkcmVzcygkcWFkZHIpOworCQkJCQlpZiAoJHNhZGRyIGVxICRzZW5kZXIpIHsKIAkJCQkJCW5leHQgaWYgKCRzdXBwcmVzc19jY3snc2VsZid9KTsKIAkJCQkJfSBlbHNlIHsKIAkJCQkJCW5leHQgaWYgKCRzdXBwcmVzc19jY3snY2MnfSk7CkBAIC0xMzcwLDcgKzE0MDAsOCBAQAogCQkJY2hvbXA7CiAJCQlteSAoJHdoYXQsICRjKSA9ICgkMSwgJDIpOwogCQkJY2hvbXAgJGM7Ci0JCQlpZiAoJGMgZXEgJHNlbmRlcikgeworCQkJbXkgJHNjID0gc2FuaXRpemVfYWRkcmVzcygkYyk7CisJCQlpZiAoJHNjIGVxICRzZW5kZXIpIHsKIAkJCQluZXh0IGlmICgkc3VwcHJlc3NfY2N7J3NlbGYnfSk7CiAJCQl9IGVsc2UgewogCQkJCW5leHQgaWYgJHN1cHByZXNzX2Njeydzb2InfSBhbmQgJHdoYXQgPX4gL1NpZ25lZC1vZmYtYnkvaTsKQEAgLTE0MDAsNyArMTQzMSw3IEBACiAJCSRzdWJqZWN0ID0gcXVvdGVfc3ViamVjdCgkc3ViamVjdCwgJGF1dG9fOGJpdF9lbmNvZGluZyk7CiAJfQogCi0JaWYgKGRlZmluZWQgJGF1dGhvciBhbmQgJGF1dGhvciBuZSAkc2VuZGVyKSB7CisJaWYgKGRlZmluZWQgJHNhdXRob3IgYW5kICRzYXV0aG9yIG5lICRzZW5kZXIpIHsKIAkJJG1lc3NhZ2UgPSAiRnJvbTogJGF1dGhvclxuXG4kbWVzc2FnZSI7CiAJCWlmIChkZWZpbmVkICRhdXRob3JfZW5jb2RpbmcpIHsKIAkJCWlmICgkaGFzX2NvbnRlbnRfdHlwZSkgewpAQCAtMTQzNyw3ICsxNDY4LDcgQEAKIAogCSMgc2V0IHVwIGZvciB0aGUgbmV4dCBtZXNzYWdlCiAJaWYgKCR0aHJlYWQgJiYgJG1lc3NhZ2Vfd2FzX3NlbnQgJiYKLQkJKGNoYWluX3JlcGx5X3RvKCkgfHwgIWRlZmluZWQgJHJlcGx5X3RvIHx8IGxlbmd0aCgkcmVwbHlfdG8pID09IDAgfHwKKwkJKCRjaGFpbl9yZXBseV90byB8fCAhZGVmaW5lZCAkcmVwbHlfdG8gfHwgbGVuZ3RoKCRyZXBseV90bykgPT0gMCB8fAogCQkkbWVzc2FnZV9udW0gPT0gMSkpIHsKIAkJJHJlcGx5X3RvID0gJG1lc3NhZ2VfaWQ7CiAJCWlmIChsZW5ndGggJHJlZmVyZW5jZXMgPiAwKSB7CkBAIC0xNDU0LDcgKzE0ODUsNiBAQAogc3ViIHJlY2lwaWVudHNfY21kIHsKIAlteSAoJHByZWZpeCwgJHdoYXQsICRjbWQsICRmaWxlKSA9IEBfOwogCi0JbXkgJHNhbml0aXplZF9zZW5kZXIgPSBzYW5pdGl6ZV9hZGRyZXNzKCRzZW5kZXIpOwogCW15IEBhZGRyZXNzZXMgPSAoKTsKIAlvcGVuIG15ICRmaCwgIi18IiwgIiRjbWQgXFEkZmlsZVxFIgogCSAgICBvciBkaWUgIigkcHJlZml4KSBDb3VsZCBub3QgZXhlY3V0ZSAnJGNtZCciOwpAQCAtMTQ2Miw3ICsxNDkyLDcgQEAKIAkJJGFkZHJlc3MgPX4gcy9eXHMqLy9nOwogCQkkYWRkcmVzcyA9fiBzL1xzKiQvL2c7CiAJCSRhZGRyZXNzID0gc2FuaXRpemVfYWRkcmVzcygkYWRkcmVzcyk7Ci0JCW5leHQgaWYgKCRhZGRyZXNzIGVxICRzYW5pdGl6ZWRfc2VuZGVyIGFuZCAkc3VwcHJlc3NfZnJvbSk7CisJCW5leHQgaWYgKCRhZGRyZXNzIGVxICRzZW5kZXIgYW5kICRzdXBwcmVzc19jY3snc2VsZid9KTsKIAkJcHVzaCBAYWRkcmVzc2VzLCAkYWRkcmVzczsKIAkJcHJpbnRmKCIoJHByZWZpeCkgQWRkaW5nICVzOiAlcyBmcm9tOiAnJXMnXG4iLAogCQkgICAgICAgJHdoYXQsICRhZGRyZXNzLCAkY21kKSB1bmxlc3MgJHF1aWV0OwpkaWZmIC0tZ2l0IGEvZ2l0LXNoLXNldHVwLnNoIGIvZ2l0LXNoLXNldHVwLnNoCmluZGV4IDJmNzgzNTkuLmUxNWJlNTEgMTAwNjQ0Ci0tLSBhL2dpdC1zaC1zZXR1cC5zaAorKysgYi9naXQtc2gtc2V0dXAuc2gKQEAgLTUzLDcgKzUzLDcgQEAKIGRpZV93aXRoX3N0YXR1cyAoKSB7CiAJc3RhdHVzPSQxCiAJc2hpZnQKLQllY2hvID4mMiAiJCoiCisJcHJpbnRmID4mMiAnJXNcbicgIiQqIgogCWV4aXQgIiRzdGF0dXMiCiB9CiAKQEAgLTMxMywzICszMTMsMTUgQEAKIAl9CiAJOiAke0dJVF9PQkpFQ1RfRElSRUNUT1JZPSIkR0lUX0RJUi9vYmplY3RzIn0KIGZpCisKK3BlZWxfY29tbWl0dGlzaCAoKSB7CisJY2FzZSAiJDEiIGluCisJOi8qKQorCQlwZWVsdG1wPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAiJDEiKSAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5ICIke3BlZWx0bXB9XjAiCisJCTs7CisJKikKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAiJHsxfV4wIgorCQk7OworCWVzYWMKK30KZGlmZiAtLWdpdCBhL2dpdC1zdGFzaC5zaCBiL2dpdC1zdGFzaC5zaAppbmRleCBiYmVmZGY2Li4xZTU0MWEyIDEwMDc1NQotLS0gYS9naXQtc3Rhc2guc2gKKysrIGIvZ2l0LXN0YXNoLnNoCkBAIC0xNTYsNiArMTU2LDQxIEBACiAJZGllICIkKGdldHRleHQgIkNhbm5vdCByZWNvcmQgd29ya2luZyB0cmVlIHN0YXRlIikiCiB9CiAKK3N0b3JlX3N0YXNoICgpIHsKKwl3aGlsZSB0ZXN0ICQjICE9IDAKKwlkbworCQljYXNlICIkMSIgaW4KKwkJLW18LS1tZXNzYWdlKQorCQkJc2hpZnQKKwkJCXN0YXNoX21zZz0iJDEiCisJCQk7OworCQktcXwtLXF1aWV0KQorCQkJcXVpZXQ9dAorCQkJOzsKKwkJKikKKwkJCWJyZWFrCisJCQk7OworCQllc2FjCisJCXNoaWZ0CisJZG9uZQorCXRlc3QgJCMgPSAxIHx8CisJZGllICIkKGV2YWxfZ2V0dGV4dCAiXCIkZGFzaGxlc3Mgc3RvcmVcIiByZXF1aXJlcyBvbmUgPGNvbW1pdD4gYXJndW1lbnQiKSIKKworCXdfY29tbWl0PSIkMSIKKwlpZiB0ZXN0IC16ICIkc3Rhc2hfbXNnIgorCXRoZW4KKwkJc3Rhc2hfbXNnPSJDcmVhdGVkIHZpYSBcImdpdCBzdGFzaCBzdG9yZVwiLiIKKwlmaQorCisJIyBNYWtlIHN1cmUgdGhlIHJlZmxvZyBmb3Igc3Rhc2ggaXMga2VwdC4KKwk6ID4+IiRHSVRfRElSL2xvZ3MvJHJlZl9zdGFzaCIKKwlnaXQgdXBkYXRlLXJlZiAtbSAiJHN0YXNoX21zZyIgJHJlZl9zdGFzaCAkd19jb21taXQKKwlyZXQ9JD8KKwl0ZXN0ICRyZXQgIT0gMCAmJiB0ZXN0IC16ICRxdWlldCAmJgorCWRpZSAiJChldmFsX2dldHRleHQgIkNhbm5vdCB1cGRhdGUgXCRyZWZfc3Rhc2ggd2l0aCBcJHdfY29tbWl0IikiCisJcmV0dXJuICRyZXQKK30KKwogc2F2ZV9zdGFzaCAoKSB7CiAJa2VlcF9pbmRleD0KIAlwYXRjaF9tb2RlPQpAQCAtMjI3LDEyICsyNjIsOCBAQAogCQljbGVhcl9zdGFzaCB8fCBkaWUgIiQoZ2V0dGV4dCAiQ2Fubm90IGluaXRpYWxpemUgc3Rhc2giKSIKIAogCWNyZWF0ZV9zdGFzaCAiJHN0YXNoX21zZyIgJHVudHJhY2tlZAotCi0JIyBNYWtlIHN1cmUgdGhlIHJlZmxvZyBmb3Igc3Rhc2ggaXMga2VwdC4KLQk6ID4+IiRHSVRfRElSL2xvZ3MvJHJlZl9zdGFzaCIKLQotCWdpdCB1cGRhdGUtcmVmIC1tICIkc3Rhc2hfbXNnIiAkcmVmX3N0YXNoICR3X2NvbW1pdCB8fAotCQlkaWUgIiQoZ2V0dGV4dCAiQ2Fubm90IHNhdmUgdGhlIGN1cnJlbnQgc3RhdHVzIikiCisJc3RvcmVfc3Rhc2ggLW0gIiRzdGFzaF9tc2ciIC1xICR3X2NvbW1pdCB8fAorCWRpZSAiJChnZXR0ZXh0ICJDYW5ub3Qgc2F2ZSB0aGUgY3VycmVudCBzdGF0dXMiKSIKIAlzYXkgU2F2ZWQgd29ya2luZyBkaXJlY3RvcnkgYW5kIGluZGV4IHN0YXRlICIkc3Rhc2hfbXNnIgogCiAJaWYgdGVzdCAteiAiJHBhdGNoX21vZGUiCkBAIC01NDYsMTIgKzU3NywxMyBAQAogCWNsZWFyX3N0YXNoICIkQCIKIAk7OwogY3JlYXRlKQotCWlmIHRlc3QgJCMgLWd0IDAgJiYgdGVzdCAiJDEiID0gY3JlYXRlCi0JdGhlbgotCQlzaGlmdAotCWZpCisJc2hpZnQKIAljcmVhdGVfc3Rhc2ggIiQqIiAmJiBlY2hvICIkd19jb21taXQiCiAJOzsKK3N0b3JlKQorCXNoaWZ0CisJc3RvcmVfc3Rhc2ggIiRAIgorCTs7CiBkcm9wKQogCXNoaWZ0CiAJZHJvcF9zdGFzaCAiJEAiCmRpZmYgLS1naXQgYS9naXQtc3VibW9kdWxlLnNoIGIvZ2l0LXN1Ym1vZHVsZS5zaAppbmRleCA3OWJmYWFjLi4yOTc5MTk3IDEwMDc1NQotLS0gYS9naXQtc3VibW9kdWxlLnNoCisrKyBiL2dpdC1zdWJtb2R1bGUuc2gKQEAgLTE0LDEwICsxNCwxMyBAQAogICAgb3I6ICRkYXNobGVzcyBbLS1xdWlldF0gZm9yZWFjaCBbLS1yZWN1cnNpdmVdIDxjb21tYW5kPgogICAgb3I6ICRkYXNobGVzcyBbLS1xdWlldF0gc3luYyBbLS1yZWN1cnNpdmVdIFstLV0gWzxwYXRoPi4uLl0iCiBPUFRJT05TX1NQRUM9CitTVUJESVJFQ1RPUllfT0s9WWVzCiAuIGdpdC1zaC1zZXR1cAogLiBnaXQtc2gtaTE4bgogLiBnaXQtcGFyc2UtcmVtb3RlCiByZXF1aXJlX3dvcmtfdHJlZQord3RfcHJlZml4PSQoZ2l0IHJldi1wYXJzZSAtLXNob3ctcHJlZml4KQorY2RfdG9fdG9wbGV2ZWwKIAogY29tbWFuZD0KIGJyYW5jaD0KQEAgLTMyLDYgKzM1LDcgQEAKIHVwZGF0ZT0KIHByZWZpeD0KIGN1c3RvbV9uYW1lPQorZGVwdGg9CiAKICMgVGhlIGZ1bmN0aW9uIHRha2VzIGF0IG1vc3QgMiBhcmd1bWVudHMuIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUKICMgVVJMIHRoYXQgbmF2aWdhdGVzIHRvIHRoZSBzdWJtb2R1bGUgb3JpZ2luIHJlcG8uIFdoZW4gcmVsYXRpdmUsIHRoaXMgVVJMCkBAIC0xMDYsMTQgKzExMCw1MCBAQAogCWVjaG8gIiR7aXNfcmVsYXRpdmU6KyR7dXBfcGF0aH19JHtyZW1vdGV1cmwjLi99IgogfQogCisjIFJlc29sdmUgYSBwYXRoIHRvIGJlIHJlbGF0aXZlIHRvIGFub3RoZXIgcGF0aC4gIFRoaXMgaXMgaW50ZW5kZWQgZm9yCisjIGNvbnZlcnRpbmcgc3VibW9kdWxlIHBhdGhzIHdoZW4gZ2l0LXN1Ym1vZHVsZSBpcyBydW4gaW4gYSBzdWJkaXJlY3RvcnkKKyMgYW5kIG9ubHkgaGFuZGxlcyBwYXRocyB3aGVyZSB0aGUgZGlyZWN0b3J5IHNlcGFyYXRvciBpcyAnLycuCisjCisjIFRoZSBvdXRwdXQgaXMgdGhlIGZpcnN0IGFyZ3VtZW50IGFzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgc2Vjb25kIGFyZ3VtZW50LAorIyB3aGljaCBkZWZhdWx0cyB0byAkd3RfcHJlZml4IGlmIGl0IGlzIG9taXR0ZWQuCityZWxhdGl2ZV9wYXRoICgpCit7CisJbG9jYWwgdGFyZ2V0IGN1cmRpciByZXN1bHQKKwl0YXJnZXQ9JDEKKwljdXJkaXI9JHsyLSR3dF9wcmVmaXh9CisJY3VyZGlyPSR7Y3VyZGlyJS99CisJcmVzdWx0PQorCisJd2hpbGUgdGVzdCAtbiAiJGN1cmRpciIKKwlkbworCQljYXNlICIkdGFyZ2V0IiBpbgorCQkiJGN1cmRpci8iKikKKwkJCXRhcmdldD0ke3RhcmdldCMiJGN1cmRpciIvfQorCQkJYnJlYWsKKwkJCTs7CisJCWVzYWMKKworCQlyZXN1bHQ9IiR7cmVzdWx0fS4uLyIKKwkJaWYgdGVzdCAiJGN1cmRpciIgPSAiJHtjdXJkaXIlLyp9IgorCQl0aGVuCisJCQljdXJkaXI9CisJCWVsc2UKKwkJCWN1cmRpcj0iJHtjdXJkaXIlLyp9IgorCQlmaQorCWRvbmUKKworCWVjaG8gIiRyZXN1bHQkdGFyZ2V0IgorfQorCiAjCiAjIEdldCBzdWJtb2R1bGUgaW5mbyBmb3IgcmVnaXN0ZXJlZCBzdWJtb2R1bGVzCiAjICRAID0gcGF0aCB0byBsaW1pdCBzdWJtb2R1bGUgbGlzdAogIwogbW9kdWxlX2xpc3QoKQogeworCWV2YWwgInNldCAkKGdpdCByZXYtcGFyc2UgLS1zcSAtLXByZWZpeCAiJHd0X3ByZWZpeCIgLS0gIiRAIikiCiAJKAotCQlnaXQgbHMtZmlsZXMgLS1lcnJvci11bm1hdGNoIC0tc3RhZ2UgLS0gIiRAIiB8fAorCQlnaXQgbHMtZmlsZXMgLXogLS1lcnJvci11bm1hdGNoIC0tc3RhZ2UgLS0gIiRAIiB8fAogCQllY2hvICJ1bm1hdGNoZWQgcGF0aHNwZWMgZXhpc3RzIgogCSkgfAogCXBlcmwgLWUgJwpAQCAtMTIxLDYgKzE2MSw3IEBACiAJbXkgKCRudWxsX3NoYTEpID0gKCIwIiB4IDQwKTsKIAlteSBAb3V0ID0gKCk7CiAJbXkgJHVubWF0Y2hlZCA9IDA7CisJJC8gPSAiXDAiOwogCXdoaWxlICg8U1RESU4+KSB7CiAJCWlmICgvXnVubWF0Y2hlZCBwYXRoc3BlYy8pIHsKIAkJCSR1bm1hdGNoZWQgPSAxOwpAQCAtMjExLDYgKzI1Miw3IEBACiAJbmFtZT0kMgogCXVybD0kMwogCXJlZmVyZW5jZT0iJDQiCisJZGVwdGg9IiQ1IgogCXF1aWV0PQogCWlmIHRlc3QgLW4gIiRHSVRfUVVJRVQiCiAJdGhlbgpAQCAtMjMzLDcgKzI3NSw3IEBACiAJCW1rZGlyIC1wICIkZ2l0ZGlyX2Jhc2UiCiAJCSgKIAkJCWNsZWFyX2xvY2FsX2dpdF9lbnYKLQkJCWdpdCBjbG9uZSAkcXVpZXQgLW4gJHtyZWZlcmVuY2U6KyIkcmVmZXJlbmNlIn0gXAorCQkJZ2l0IGNsb25lICRxdWlldCAke2RlcHRoOisiJGRlcHRoIn0gLW4gJHtyZWZlcmVuY2U6KyIkcmVmZXJlbmNlIn0gXAogCQkJCS0tc2VwYXJhdGUtZ2l0LWRpciAiJGdpdGRpciIgIiR1cmwiICIkc21fcGF0aCIKIAkJKSB8fAogCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJDbG9uZSBvZiAnXCR1cmwnIGludG8gc3VibW9kdWxlIHBhdGggJ1wkc21fcGF0aCcgZmFpbGVkIikiCkBAIC0yODIsNiArMzI0LDcgQEAKIGNtZF9hZGQoKQogewogCSMgcGFyc2UgJGFyZ3MgYWZ0ZXIgInN1Ym1vZHVsZSAuLi4gYWRkIi4KKwlyZWZlcmVuY2VfcGF0aD0KIAl3aGlsZSB0ZXN0ICQjIC1uZSAwCiAJZG8KIAkJY2FzZSAiJDEiIGluCkBAIC0yOTgsMTcgKzM0MSwyNSBAQAogCQkJOzsKIAkJLS1yZWZlcmVuY2UpCiAJCQljYXNlICIkMiIgaW4gJycpIHVzYWdlIDs7IGVzYWMKLQkJCXJlZmVyZW5jZT0iLS1yZWZlcmVuY2U9JDIiCisJCQlyZWZlcmVuY2VfcGF0aD0kMgogCQkJc2hpZnQKIAkJCTs7CiAJCS0tcmVmZXJlbmNlPSopCi0JCQlyZWZlcmVuY2U9IiQxIgorCQkJcmVmZXJlbmNlX3BhdGg9IiR7MSMtLXJlZmVyZW5jZT19IgogCQkJOzsKIAkJLS1uYW1lKQogCQkJY2FzZSAiJDIiIGluICcnKSB1c2FnZSA7OyBlc2FjCiAJCQljdXN0b21fbmFtZT0kMgogCQkJc2hpZnQKIAkJCTs7CisJCS0tZGVwdGgpCisJCQljYXNlICIkMiIgaW4gJycpIHVzYWdlIDs7IGVzYWMKKwkJCWRlcHRoPSItLWRlcHRoPSQyIgorCQkJc2hpZnQKKwkJCTs7CisJCS0tZGVwdGg9KikKKwkJCWRlcHRoPSQxCisJCQk7OwogCQktLSkKIAkJCXNoaWZ0CiAJCQlicmVhawpAQCAtMzIzLDYgKzM3NCwxNCBAQAogCQlzaGlmdAogCWRvbmUKIAorCWlmIHRlc3QgLW4gIiRyZWZlcmVuY2VfcGF0aCIKKwl0aGVuCisJCWlzX2Fic29sdXRlX3BhdGggIiRyZWZlcmVuY2VfcGF0aCIgfHwKKwkJcmVmZXJlbmNlX3BhdGg9IiR3dF9wcmVmaXgkcmVmZXJlbmNlX3BhdGgiCisKKwkJcmVmZXJlbmNlPSItLXJlZmVyZW5jZT0kcmVmZXJlbmNlX3BhdGgiCisJZmkKKwogCXJlcG89JDEKIAlzbV9wYXRoPSQyCiAKQEAgLTMzNSw5ICszOTQsMTQgQEAKIAkJdXNhZ2UKIAlmaQogCisJaXNfYWJzb2x1dGVfcGF0aCAiJHNtX3BhdGgiIHx8IHNtX3BhdGg9IiR3dF9wcmVmaXgkc21fcGF0aCIKKwogCSMgYXNzdXJlIHJlcG8gaXMgYWJzb2x1dGUgb3IgcmVsYXRpdmUgdG8gcGFyZW50CiAJY2FzZSAiJHJlcG8iIGluCiAJLi8qfC4uLyopCisJCXRlc3QgLXogIiR3dF9wcmVmaXgiIHx8CisJCWRpZSAiJChnZXR0ZXh0ICJSZWxhdGl2ZSBwYXRoIGNhbiBvbmx5IGJlIHVzZWQgZnJvbSB0aGUgdG9wbGV2ZWwgb2YgdGhlIHdvcmtpbmcgdHJlZSIpIgorCiAJCSMgZGVyZWZlcmVuY2Ugc291cmNlIHVybCByZWxhdGl2ZSB0byBwYXJlbnQncyB1cmwKIAkJcmVhbHJlcG89JChyZXNvbHZlX3JlbGF0aXZlX3VybCAiJHJlcG8iKSB8fCBleGl0CiAJCTs7CkBAIC00MDUsNyArNDY5LDcgQEAKIAkJCQllY2hvICIkKGV2YWxfZ2V0dGV4dCAiUmVhY3RpdmF0aW5nIGxvY2FsIGdpdCBkaXJlY3RvcnkgZm9yIHN1Ym1vZHVsZSAnXCRzbV9uYW1lJy4iKSIKIAkJCWZpCiAJCWZpCi0JCW1vZHVsZV9jbG9uZSAiJHNtX3BhdGgiICIkc21fbmFtZSIgIiRyZWFscmVwbyIgIiRyZWZlcmVuY2UiIHx8IGV4aXQKKwkJbW9kdWxlX2Nsb25lICIkc21fcGF0aCIgIiRzbV9uYW1lIiAiJHJlYWxyZXBvIiAiJHJlZmVyZW5jZSIgIiRkZXB0aCIgfHwgZXhpdAogCQkoCiAJCQljbGVhcl9sb2NhbF9naXRfZW52CiAJCQljZCAiJHNtX3BhdGgiICYmCkBAIC00NzEsMjEgKzUzNSwyMyBAQAogCQlkaWVfaWZfdW5tYXRjaGVkICIkbW9kZSIKIAkJaWYgdGVzdCAtZSAiJHNtX3BhdGgiLy5naXQKIAkJdGhlbgotCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiRW50ZXJpbmcgJ1wkcHJlZml4XCRzbV9wYXRoJyIpIgorCQkJZGlzcGxheXBhdGg9JChyZWxhdGl2ZV9wYXRoICIkc21fcGF0aCIpCisJCQlzYXkgIiQoZXZhbF9nZXR0ZXh0ICJFbnRlcmluZyAnXCRwcmVmaXhcJGRpc3BsYXlwYXRoJyIpIgogCQkJbmFtZT0kKG1vZHVsZV9uYW1lICIkc21fcGF0aCIpCiAJCQkoCiAJCQkJcHJlZml4PSIkcHJlZml4JHNtX3BhdGgvIgogCQkJCWNsZWFyX2xvY2FsX2dpdF9lbnYKLQkJCQkjIHdlIG1ha2UgJHBhdGggYXZhaWxhYmxlIHRvIHNjcmlwdHMgLi4uCi0JCQkJcGF0aD0kc21fcGF0aAogCQkJCWNkICIkc21fcGF0aCIgJiYKKwkJCQlzbV9wYXRoPSQocmVsYXRpdmVfcGF0aCAiJHNtX3BhdGgiKSAmJgorCQkJCSMgd2UgbWFrZSAkcGF0aCBhdmFpbGFibGUgdG8gc2NyaXB0cyAuLi4KKwkJCQlwYXRoPSRzbV9wYXRoICYmCiAJCQkJZXZhbCAiJEAiICYmCiAJCQkJaWYgdGVzdCAtbiAiJHJlY3Vyc2l2ZSIKIAkJCQl0aGVuCiAJCQkJCWNtZF9mb3JlYWNoICItLXJlY3Vyc2l2ZSIgIiRAIgogCQkJCWZpCiAJCQkpIDwmMyAzPCYtIHx8Ci0JCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJTdG9wcGluZyBhdCAnXCRzbV9wYXRoJzsgc2NyaXB0IHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4iKSIKKwkJCWRpZSAiJChldmFsX2dldHRleHQgIlN0b3BwaW5nIGF0ICdcJHByZWZpeFwkZGlzcGxheXBhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIpIgogCQlmaQogCWRvbmUKIH0KQEAgLTUyNCwxMiArNTkwLDE0IEBACiAJCWRpZV9pZl91bm1hdGNoZWQgIiRtb2RlIgogCQluYW1lPSQobW9kdWxlX25hbWUgIiRzbV9wYXRoIikgfHwgZXhpdAogCisJCWRpc3BsYXlwYXRoPSQocmVsYXRpdmVfcGF0aCAiJHNtX3BhdGgiKQorCiAJCSMgQ29weSB1cmwgc2V0dGluZyB3aGVuIGl0IGlzIG5vdCBzZXQgeWV0CiAJCWlmIHRlc3QgLXogIiQoZ2l0IGNvbmZpZyAic3VibW9kdWxlLiRuYW1lLnVybCIpIgogCQl0aGVuCiAJCQl1cmw9JChnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS4iJG5hbWUiLnVybCkKIAkJCXRlc3QgLXogIiR1cmwiICYmCi0JCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICdcJHNtX3BhdGgnIGluIC5naXRtb2R1bGVzIikiCisJCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJyBpbiAuZ2l0bW9kdWxlcyIpIgogCiAJCQkjIFBvc3NpYmx5IGEgdXJsIHJlbGF0aXZlIHRvIHBhcmVudAogCQkJY2FzZSAiJHVybCIgaW4KQEAgLTUzOCw5ICs2MDYsOSBAQAogCQkJCTs7CiAJCQllc2FjCiAJCQlnaXQgY29uZmlnIHN1Ym1vZHVsZS4iJG5hbWUiLnVybCAiJHVybCIgfHwKLQkJCWRpZSAiJChldmFsX2dldHRleHQgIkZhaWxlZCB0byByZWdpc3RlciB1cmwgZm9yIHN1Ym1vZHVsZSBwYXRoICdcJHNtX3BhdGgnIikiCisJCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXJsIGZvciBzdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCciKSIKIAotCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlICdcJG5hbWUnIChcJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnXCRzbV9wYXRoJyIpIgorCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlICdcJG5hbWUnIChcJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnXCRkaXNwbGF5cGF0aCciKSIKIAkJZmkKIAogCQkjIENvcHkgInVwZGF0ZSIgc2V0dGluZyB3aGVuIGl0IGlzIG5vdCBzZXQgeWV0CkBAIC01NDgsNyArNjE2LDcgQEAKIAkJdGVzdCAteiAiJHVwZCIgfHwKIAkJdGVzdCAtbiAiJChnaXQgY29uZmlnIHN1Ym1vZHVsZS4iJG5hbWUiLnVwZGF0ZSkiIHx8CiAJCWdpdCBjb25maWcgc3VibW9kdWxlLiIkbmFtZSIudXBkYXRlICIkdXBkIiB8fAotCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXBkYXRlIG1vZGUgZm9yIHN1Ym1vZHVsZSBwYXRoICdcJHNtX3BhdGgnIikiCisJCWRpZSAiJChldmFsX2dldHRleHQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJ1wkZGlzcGxheXBhdGgnIikiCiAJZG9uZQogfQogCkBAIC01OTQsMjcgKzY2MiwyOSBAQAogCQlkaWVfaWZfdW5tYXRjaGVkICIkbW9kZSIKIAkJbmFtZT0kKG1vZHVsZV9uYW1lICIkc21fcGF0aCIpIHx8IGV4aXQKIAorCQlkaXNwbGF5cGF0aD0kKHJlbGF0aXZlX3BhdGggIiRzbV9wYXRoIikKKwogCQkjIFJlbW92ZSB0aGUgc3VibW9kdWxlIHdvcmsgdHJlZSAodW5sZXNzIHRoZSB1c2VyIGFscmVhZHkgZGlkIGl0KQogCQlpZiB0ZXN0IC1kICIkc21fcGF0aCIKIAkJdGhlbgogCQkJIyBQcm90ZWN0IHN1Ym1vZHVsZXMgY29udGFpbmluZyBhIC5naXQgZGlyZWN0b3J5CiAJCQlpZiB0ZXN0IC1kICIkc21fcGF0aC8uZ2l0IgogCQkJdGhlbgotCQkJCWVjaG8gPiYyICIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnXCRzbV9wYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IikiCisJCQkJZWNobyA+JjIgIiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgd29yayB0cmVlICdcJGRpc3BsYXlwYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IikiCiAJCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIikiCiAJCQlmaQogCiAJCQlpZiB0ZXN0IC16ICIkZm9yY2UiCiAJCQl0aGVuCiAJCQkJZ2l0IHJtIC1xbiAiJHNtX3BhdGgiIHx8Ci0JCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnXCRzbV9wYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byBkaXNjYXJkIHRoZW0iKSIKKwkJCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgd29yayB0cmVlICdcJGRpc3BsYXlwYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byBkaXNjYXJkIHRoZW0iKSIKIAkJCWZpCiAJCQlybSAtcmYgIiRzbV9wYXRoIiAmJgotCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiQ2xlYXJlZCBkaXJlY3RvcnkgJ1wkc21fcGF0aCciKSIgfHwKLQkJCXNheSAiJChldmFsX2dldHRleHQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnXCRzbV9wYXRoJyIpIgorCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiQ2xlYXJlZCBkaXJlY3RvcnkgJ1wkZGlzcGxheXBhdGgnIikiIHx8CisJCQlzYXkgIiQoZXZhbF9nZXR0ZXh0ICJDb3VsZCBub3QgcmVtb3ZlIHN1Ym1vZHVsZSB3b3JrIHRyZWUgJ1wkZGlzcGxheXBhdGgnIikiCiAJCWZpCiAKLQkJbWtkaXIgIiRzbV9wYXRoIiB8fCBzYXkgIiQoZXZhbF9nZXR0ZXh0ICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJ1wkc21fcGF0aCciKSIKKwkJbWtkaXIgIiRzbV9wYXRoIiB8fCBzYXkgIiQoZXZhbF9nZXR0ZXh0ICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJ1wkZGlzcGxheXBhdGgnIikiCiAKIAkJIyBSZW1vdmUgdGhlIC5naXQvY29uZmlnIGVudHJpZXMgKHVubGVzcyB0aGUgdXNlciBhbHJlYWR5IGRpZCBpdCkKIAkJaWYgdGVzdCAtbiAiJChnaXQgY29uZmlnIC0tZ2V0LXJlZ2V4cCBzdWJtb2R1bGUuIiRuYW1lXC4iKSIKQEAgLTYyMyw3ICs2OTMsNyBAQAogCQkJIyB0aGUgdXNlciBsYXRlciBkZWNpZGVzIHRvIGluaXQgdGhpcyBzdWJtb2R1bGUgYWdhaW4KIAkJCXVybD0kKGdpdCBjb25maWcgc3VibW9kdWxlLiIkbmFtZSIudXJsKQogCQkJZ2l0IGNvbmZpZyAtLXJlbW92ZS1zZWN0aW9uIHN1Ym1vZHVsZS4iJG5hbWUiIDI+L2Rldi9udWxsICYmCi0JCQlzYXkgIiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgJ1wkbmFtZScgKFwkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJ1wkc21fcGF0aCciKSIKKwkJCXNheSAiJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSAnXCRuYW1lJyAoXCR1cmwpIHVucmVnaXN0ZXJlZCBmb3IgcGF0aCAnXCRkaXNwbGF5cGF0aCciKSIKIAkJZmkKIAlkb25lCiB9CkBAIC02NzYsNiArNzQ2LDE0IEBACiAJCS0tY2hlY2tvdXQpCiAJCQl1cGRhdGU9ImNoZWNrb3V0IgogCQkJOzsKKwkJLS1kZXB0aCkKKwkJCWNhc2UgIiQyIiBpbiAnJykgdXNhZ2UgOzsgZXNhYworCQkJZGVwdGg9Ii0tZGVwdGg9JDIiCisJCQlzaGlmdAorCQkJOzsKKwkJLS1kZXB0aD0qKQorCQkJZGVwdGg9JDEKKwkJCTs7CiAJCS0tKQogCQkJc2hpZnQKIAkJCWJyZWFrCkBAIC03MTcsOSArNzk1LDExIEBACiAJCQl1cGRhdGVfbW9kdWxlPSQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuIiRuYW1lIi51cGRhdGUpCiAJCWZpCiAKKwkJZGlzcGxheXBhdGg9JChyZWxhdGl2ZV9wYXRoICIkcHJlZml4JHNtX3BhdGgiKQorCiAJCWlmIHRlc3QgIiR1cGRhdGVfbW9kdWxlIiA9ICJub25lIgogCQl0aGVuCi0JCQllY2hvICJTa2lwcGluZyBzdWJtb2R1bGUgJyRwcmVmaXgkc21fcGF0aCciCisJCQllY2hvICJTa2lwcGluZyBzdWJtb2R1bGUgJyRkaXNwbGF5cGF0aCciCiAJCQljb250aW51ZQogCQlmaQogCkBAIC03MjgsMjAgKzgwOCwyMCBAQAogCQkJIyBPbmx5IG1lbnRpb24gdW5pbml0aWFsaXplZCBzdWJtb2R1bGVzIHdoZW4gaXRzCiAJCQkjIHBhdGggaGF2ZSBiZWVuIHNwZWNpZmllZAogCQkJdGVzdCAiJCMiICE9ICIwIiAmJgotCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJyBub3QgaW5pdGlhbGl6ZWQKKwkJCXNheSAiJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJyBub3QgaW5pdGlhbGl6ZWQKIE1heWJlIHlvdSB3YW50IHRvIHVzZSAndXBkYXRlIC0taW5pdCc/IikiCiAJCQljb250aW51ZQogCQlmaQogCiAJCWlmICEgdGVzdCAtZCAiJHNtX3BhdGgiLy5naXQgLW8gLWYgIiRzbV9wYXRoIi8uZ2l0CiAJCXRoZW4KLQkJCW1vZHVsZV9jbG9uZSAiJHNtX3BhdGgiICIkbmFtZSIgIiR1cmwiICIkcmVmZXJlbmNlIiB8fCBleGl0CisJCQltb2R1bGVfY2xvbmUgIiRzbV9wYXRoIiAiJG5hbWUiICIkdXJsIiAiJHJlZmVyZW5jZSIgIiRkZXB0aCIgfHwgZXhpdAogCQkJY2xvbmVkX21vZHVsZXM9IiRjbG9uZWRfbW9kdWxlczskbmFtZSIKIAkJCXN1YnNoYTE9CiAJCWVsc2UKIAkJCXN1YnNoYTE9JChjbGVhcl9sb2NhbF9naXRfZW52OyBjZCAiJHNtX3BhdGgiICYmCiAJCQkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEKSB8fAotCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnXCRwcmVmaXhcJHNtX3BhdGgnIikiCisJCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJVbmFibGUgdG8gZmluZCBjdXJyZW50IHJldmlzaW9uIGluIHN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJyIpIgogCQlmaQogCiAJCWlmIHRlc3QgLW4gIiRyZW1vdGUiCkBAIC03NzQsNyArODU0LDcgQEAKIAkJCQkoY2xlYXJfbG9jYWxfZ2l0X2VudjsgY2QgIiRzbV9wYXRoIiAmJgogCQkJCQkoIChyZXY9JChnaXQgcmV2LWxpc3QgLW4gMSAkc2hhMSAtLW5vdCAtLWFsbCAyPi9kZXYvbnVsbCkgJiYKIAkJCQkJIHRlc3QgLXogIiRyZXYiKSB8fCBnaXQtZmV0Y2gpKSB8fAotCQkJCWRpZSAiJChldmFsX2dldHRleHQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnXCRwcmVmaXhcJHNtX3BhdGgnIikiCisJCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJyIpIgogCQkJZmkKIAogCQkJIyBJcyB0aGlzIHNvbWV0aGluZyB3ZSBqdXN0IGNsb25lZD8KQEAgLTc4OCwyMCArODY4LDI2IEBACiAJCQljYXNlICIkdXBkYXRlX21vZHVsZSIgaW4KIAkJCXJlYmFzZSkKIAkJCQljb21tYW5kPSJnaXQgcmViYXNlIgotCQkJCWRpZV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJVbmFibGUgdG8gcmViYXNlICdcJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICdcJHByZWZpeFwkc21fcGF0aCciKSIKLQkJCQlzYXlfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJzogcmViYXNlZCBpbnRvICdcJHNoYTEnIikiCisJCQkJZGllX21zZz0iJChldmFsX2dldHRleHQgIlVuYWJsZSB0byByZWJhc2UgJ1wkc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJ1wkZGlzcGxheXBhdGgnIikiCisJCQkJc2F5X21zZz0iJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJzogcmViYXNlZCBpbnRvICdcJHNoYTEnIikiCiAJCQkJbXVzdF9kaWVfb25fZmFpbHVyZT15ZXMKIAkJCQk7OwogCQkJbWVyZ2UpCiAJCQkJY29tbWFuZD0iZ2l0IG1lcmdlIgotCQkJCWRpZV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJVbmFibGUgdG8gbWVyZ2UgJ1wkc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJyIpIgotCQkJCXNheV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgcGF0aCAnXCRwcmVmaXhcJHNtX3BhdGgnOiBtZXJnZWQgaW4gJ1wkc2hhMSciKSIKKwkJCQlkaWVfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiVW5hYmxlIHRvIG1lcmdlICdcJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJyIpIgorCQkJCXNheV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCc6IG1lcmdlZCBpbiAnXCRzaGExJyIpIgorCQkJCW11c3RfZGllX29uX2ZhaWx1cmU9eWVzCisJCQkJOzsKKwkJCSEqKQorCQkJCWNvbW1hbmQ9IiR7dXBkYXRlX21vZHVsZSMhfSIKKwkJCQlkaWVfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiRXhlY3V0aW9uIG9mICdcJGNvbW1hbmQgXCRzaGExJyBmYWlsZWQgaW4gc3VibW9kdWxlICBwYXRoICdcJHByZWZpeFwkc21fcGF0aCciKSIKKwkJCQlzYXlfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJzogJ1wkY29tbWFuZCBcJHNoYTEnIikiCiAJCQkJbXVzdF9kaWVfb25fZmFpbHVyZT15ZXMKIAkJCQk7OwogCQkJKikKIAkJCQljb21tYW5kPSJnaXQgY2hlY2tvdXQgJHN1YmZvcmNlIC1xIgotCQkJCWRpZV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJVbmFibGUgdG8gY2hlY2tvdXQgJ1wkc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJyIpIgotCQkJCXNheV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgcGF0aCAnXCRwcmVmaXhcJHNtX3BhdGgnOiBjaGVja2VkIG91dCAnXCRzaGExJyIpIgorCQkJCWRpZV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJVbmFibGUgdG8gY2hlY2tvdXQgJ1wkc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJ1wkZGlzcGxheXBhdGgnIikiCisJCQkJc2F5X21zZz0iJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJzogY2hlY2tlZCBvdXQgJ1wkc2hhMSciKSIKIAkJCQk7OwogCQkJZXNhYwogCkBAIC04MjgsNyArOTE0LDcgQEAKIAkJCXJlcz0kPwogCQkJaWYgdGVzdCAkcmVzIC1ndCAwCiAJCQl0aGVuCi0JCQkJZGllX21zZz0iJChldmFsX2dldHRleHQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJyIpIgorCQkJCWRpZV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJyIpIgogCQkJCWlmIHRlc3QgJHJlcyAtZXEgMQogCQkJCXRoZW4KIAkJCQkJZXJyPSIke2Vycn07JGRpZV9tc2ciCkBAIC05NDIsNiArMTAyOCw3IEBACiAJZmkKIAogCWNkX3RvX3RvcGxldmVsCisJZXZhbCAic2V0ICQoZ2l0IHJldi1wYXJzZSAtLXNxIC0tcHJlZml4ICIkd3RfcHJlZml4IiAtLSAiJEAiKSIKIAkjIEdldCBtb2RpZmllZCBtb2R1bGVzIGNhcmVkIGJ5IHVzZXIKIAltb2R1bGVzPSQoZ2l0ICRkaWZmX2NtZCAkY2FjaGVkIC0taWdub3JlLXN1Ym1vZHVsZXM9ZGlydHkgLS1yYXcgJGhlYWQgLS0gIiRAIiB8CiAJCXNhbmVfZWdyZXAgJ146KFswLTddKiApPzE2MDAwMCcgfApAQCAtOTkxLDE2ICsxMDc4LDE4IEBACiAJCSEgR0lUX0RJUj0iJG5hbWUvLmdpdCIgZ2l0LXJldi1wYXJzZSAtcSAtLXZlcmlmeSAkc2hhMV9kc3ReMCA+L2Rldi9udWxsICYmCiAJCW1pc3NpbmdfZHN0PXQKIAorCQlkaXNwbGF5X25hbWU9JChyZWxhdGl2ZV9wYXRoICIkbmFtZSIpCisKIAkJdG90YWxfY29tbWl0cz0KIAkJY2FzZSAiJG1pc3Npbmdfc3JjLCRtaXNzaW5nX2RzdCIgaW4KIAkJdCwpCi0JCQllcnJtc2c9IiQoZXZhbF9nZXR0ZXh0ICIgIFdhcm46IFwkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0IFwkc2hhMV9zcmMiKSIKKwkJCWVycm1zZz0iJChldmFsX2dldHRleHQgIiAgV2FybjogXCRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCBcJHNoYTFfc3JjIikiCiAJCQk7OwogCQksdCkKLQkJCWVycm1zZz0iJChldmFsX2dldHRleHQgIiAgV2FybjogXCRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgXCRzaGExX2RzdCIpIgorCQkJZXJybXNnPSIkKGV2YWxfZ2V0dGV4dCAiICBXYXJuOiBcJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0IFwkc2hhMV9kc3QiKSIKIAkJCTs7CiAJCXQsdCkKLQkJCWVycm1zZz0iJChldmFsX2dldHRleHQgIiAgV2FybjogXCRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzIFwkc2hhMV9zcmMgYW5kIFwkc2hhMV9kc3QiKSIKKwkJCWVycm1zZz0iJChldmFsX2dldHRleHQgIiAgV2FybjogXCRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdHMgXCRzaGExX3NyYyBhbmQgXCRzaGExX2RzdCIpIgogCQkJOzsKIAkJKikKIAkJCWVycm1zZz0KQEAgLTEwMjksMTIgKzExMTgsMTIgQEAKIAkJCXN1Ym1vZHVsZT0iJChnZXR0ZXh0ICJzdWJtb2R1bGUiKSIKIAkJCWlmIHRlc3QgJG1vZF9kc3QgPSAxNjAwMDAKIAkJCXRoZW4KLQkJCQllY2hvICIqICRuYW1lICRzaGExX2FiYnJfc3JjKCRibG9iKS0+JHNoYTFfYWJicl9kc3QoJHN1Ym1vZHVsZSkkdG90YWxfY29tbWl0czoiCisJCQkJZWNobyAiKiAkZGlzcGxheV9uYW1lICRzaGExX2FiYnJfc3JjKCRibG9iKS0+JHNoYTFfYWJicl9kc3QoJHN1Ym1vZHVsZSkkdG90YWxfY29tbWl0czoiCiAJCQllbHNlCi0JCQkJZWNobyAiKiAkbmFtZSAkc2hhMV9hYmJyX3NyYygkc3VibW9kdWxlKS0+JHNoYTFfYWJicl9kc3QoJGJsb2IpJHRvdGFsX2NvbW1pdHM6IgorCQkJCWVjaG8gIiogJGRpc3BsYXlfbmFtZSAkc2hhMV9hYmJyX3NyYygkc3VibW9kdWxlKS0+JHNoYTFfYWJicl9kc3QoJGJsb2IpJHRvdGFsX2NvbW1pdHM6IgogCQkJZmkKIAkJZWxzZQotCQkJZWNobyAiKiAkbmFtZSAkc2hhMV9hYmJyX3NyYy4uLiRzaGExX2FiYnJfZHN0JHRvdGFsX2NvbW1pdHM6IgorCQkJZWNobyAiKiAkZGlzcGxheV9uYW1lICRzaGExX2FiYnJfc3JjLi4uJHNoYTFfYWJicl9kc3QkdG90YWxfY29tbWl0czoiCiAJCWZpCiAJCWlmIHRlc3QgLW4gIiRlcnJtc2ciCiAJCXRoZW4KQEAgLTExMTgsNyArMTIwNyw3IEBACiAJCWRpZV9pZl91bm1hdGNoZWQgIiRtb2RlIgogCQluYW1lPSQobW9kdWxlX25hbWUgIiRzbV9wYXRoIikgfHwgZXhpdAogCQl1cmw9JChnaXQgY29uZmlnIHN1Ym1vZHVsZS4iJG5hbWUiLnVybCkKLQkJZGlzcGxheXBhdGg9IiRwcmVmaXgkc21fcGF0aCIKKwkJZGlzcGxheXBhdGg9JChyZWxhdGl2ZV9wYXRoICIkcHJlZml4JHNtX3BhdGgiKQogCQlpZiB0ZXN0ICIkc3RhZ2UiID0gVQogCQl0aGVuCiAJCQlzYXkgIlUkc2hhMSAkZGlzcGxheXBhdGgiCkBAIC0xMTI5LDE2ICsxMjE4LDE2IEBACiAJCQlzYXkgIi0kc2hhMSAkZGlzcGxheXBhdGgiCiAJCQljb250aW51ZTsKIAkJZmkKLQkJc2V0X25hbWVfcmV2ICIkc21fcGF0aCIgIiRzaGExIgogCQlpZiBnaXQgZGlmZi1maWxlcyAtLWlnbm9yZS1zdWJtb2R1bGVzPWRpcnR5IC0tcXVpZXQgLS0gIiRzbV9wYXRoIgogCQl0aGVuCisJCQlzZXRfbmFtZV9yZXYgIiRzbV9wYXRoIiAiJHNoYTEiCiAJCQlzYXkgIiAkc2hhMSAkZGlzcGxheXBhdGgkcmV2bmFtZSIKIAkJZWxzZQogCQkJaWYgdGVzdCAteiAiJGNhY2hlZCIKIAkJCXRoZW4KIAkJCQlzaGExPSQoY2xlYXJfbG9jYWxfZ2l0X2VudjsgY2QgIiRzbV9wYXRoIiAmJiBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpCi0JCQkJc2V0X25hbWVfcmV2ICIkc21fcGF0aCIgIiRzaGExIgogCQkJZmkKKwkJCXNldF9uYW1lX3JldiAiJHNtX3BhdGgiICIkc2hhMSIKIAkJCXNheSAiKyRzaGExICRkaXNwbGF5cGF0aCRyZXZuYW1lIgogCQlmaQogCkBAIC0xMjEzLDcgKzEzMDIsOCBAQAogCiAJCWlmIGdpdCBjb25maWcgInN1Ym1vZHVsZS4kbmFtZS51cmwiID4vZGV2L251bGwgMj4vZGV2L251bGwKIAkJdGhlbgotCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnXCRwcmVmaXhcJHNtX3BhdGgnIikiCisJCQlkaXNwbGF5cGF0aD0kKHJlbGF0aXZlX3BhdGggIiRwcmVmaXgkc21fcGF0aCIpCisJCQlzYXkgIiQoZXZhbF9nZXR0ZXh0ICJTeW5jaHJvbml6aW5nIHN1Ym1vZHVsZSB1cmwgZm9yICdcJGRpc3BsYXlwYXRoJyIpIgogCQkJZ2l0IGNvbmZpZyBzdWJtb2R1bGUuIiRuYW1lIi51cmwgIiRzdXBlcl9jb25maWdfdXJsIgogCiAJCQlpZiB0ZXN0IC1lICIkc21fcGF0aCIvLmdpdApkaWZmIC0tZ2l0IGEvZ2l0LXN2bi5wZXJsIGIvZ2l0LXN2bi5wZXJsCmluZGV4IGQwNzBkZTAuLmZmMWNlM2QgMTAwNzU1Ci0tLSBhL2dpdC1zdm4ucGVybAorKysgYi9naXQtc3ZuLnBlcmwKQEAgLTgzMSw3ICs4MzEsNyBAQAogc3ViIGNtZF9kY29tbWl0IHsKIAlteSAkaGVhZCA9IHNoaWZ0OwogCWNvbW1hbmRfbm9pc3kocXcvdXBkYXRlLWluZGV4IC0tcmVmcmVzaC8pOwotCWdpdF9jbWRfdHJ5IHsgY29tbWFuZF9vbmVsaW5lKHF3L2RpZmYtaW5kZXggLS1xdWlldCBIRUFELykgfQorCWdpdF9jbWRfdHJ5IHsgY29tbWFuZF9vbmVsaW5lKHF3L2RpZmYtaW5kZXggLS1xdWlldCBIRUFEIC0tLykgfQogCQknQ2Fubm90IGRjb21taXQgd2l0aCBhIGRpcnR5IGluZGV4LiAgQ29tbWl0IHlvdXIgY2hhbmdlcyBmaXJzdCwgJwogCQkuICJvciBzdGFzaCB0aGVtIHdpdGggYGdpdCBzdGFzaCcuXG4iOwogCSRoZWFkIHx8PSAnSEVBRCc7CkBAIC0xMjQ2LDcgKzEyNDYsNyBAQAogCQlyZXR1cm47CiAJfQogCWlmIChjb21tYW5kKHF3L2RpZmYtaW5kZXggSEVBRCAtLS8pKSB7Ci0JCXByaW50IFNUREVSUiAiQ2Fubm90IHJlYmFzZSB3aXRoIHVuY29tbWl0ZWQgY2hhbmdlczpcbiI7CisJCXByaW50IFNUREVSUiAiQ2Fubm90IHJlYmFzZSB3aXRoIHVuY29tbWl0dGVkIGNoYW5nZXM6XG4iOwogCQljb21tYW5kX25vaXN5KCdzdGF0dXMnKTsKIAkJZXhpdCAxOwogCX0KQEAgLTE5MzIsNyArMTkzMiw3IEBACiBzdWIgd29ya2luZ19oZWFkX2luZm8gewogCW15ICgkaGVhZCwgJHJlZnMpID0gQF87CiAJbXkgQGFyZ3MgPSBxdy9yZXYtbGlzdCAtLWZpcnN0LXBhcmVudCAtLXByZXR0eT1tZWRpdW0vOwotCW15ICgkZmgsICRjdHgpID0gY29tbWFuZF9vdXRwdXRfcGlwZShAYXJncywgJGhlYWQpOworCW15ICgkZmgsICRjdHgpID0gY29tbWFuZF9vdXRwdXRfcGlwZShAYXJncywgJGhlYWQsICItLSIpOwogCW15ICRoYXNoOwogCW15ICVtYXg7CiAJd2hpbGUgKDwkZmg+KSB7CmRpZmYgLS1naXQgYS9naXQtd2ViLS1icm93c2Uuc2ggYi9naXQtd2ViLS1icm93c2Uuc2gKaW5kZXggOWY0NDY3OS4uMWQ3MmVjNyAxMDA3NTUKLS0tIGEvZ2l0LXdlYi0tYnJvd3NlLnNoCisrKyBiL2dpdC13ZWItLWJyb3dzZS5zaApAQCAtMzIsOCArMzIsOSBAQAogdmFsaWRfdG9vbCgpIHsKIAljYXNlICIkMSIgaW4KIAlmaXJlZm94IHwgaWNld2Vhc2VsIHwgc2VhbW9ua2V5IHwgaWNlYXBlIHwgXAotCWNocm9tZSB8IGdvb2dsZS1jaHJvbWUgfCBjaHJvbWl1bSB8IGNocm9taXVtLWJyb3dzZXIgfFwKLQlrb25xdWVyb3IgfCBvcGVyYSB8IHczbSB8IGVsaW5rcyB8IGxpbmtzIHwgbHlueCB8IGRpbGxvIHwgb3BlbiB8IHN0YXJ0KQorCWNocm9tZSB8IGdvb2dsZS1jaHJvbWUgfCBjaHJvbWl1bSB8IGNocm9taXVtLWJyb3dzZXIgfCBcCisJa29ucXVlcm9yIHwgb3BlcmEgfCB3M20gfCBlbGlua3MgfCBsaW5rcyB8IGx5bnggfCBkaWxsbyB8IG9wZW4gfCBcCisJc3RhcnQgfCBjeWdzdGFydCkKIAkJOzsgIyBoYXBweQogCSopCiAJCXZhbGlkX2N1c3RvbV90b29sICIkMSIgfHwgcmV0dXJuIDEKQEAgLTEyNyw2ICsxMjgsMTAgQEAKIAlpZiB0ZXN0IC14IC9iaW4vc3RhcnQ7IHRoZW4KIAkJYnJvd3Nlcl9jYW5kaWRhdGVzPSJzdGFydCAkYnJvd3Nlcl9jYW5kaWRhdGVzIgogCWZpCisJIyAvdXNyL2Jpbi9jeWdzdGFydCBpbmRpY2F0ZXMgQ3lnd2luCisJaWYgdGVzdCAteCAvdXNyL2Jpbi9jeWdzdGFydDsgdGhlbgorCQlicm93c2VyX2NhbmRpZGF0ZXM9ImN5Z3N0YXJ0ICRicm93c2VyX2NhbmRpZGF0ZXMiCisJZmkKIAogCWZvciBpIGluICRicm93c2VyX2NhbmRpZGF0ZXM7IGRvCiAJCWluaXRfYnJvd3Nlcl9wYXRoICRpCkBAIC0xNzQsNyArMTc5LDcgQEAKIAkJOzsKIAllc2FjCiAJOzsKLXczbXxlbGlua3N8bGlua3N8bHlueHxvcGVuKQordzNtfGVsaW5rc3xsaW5rc3xseW54fG9wZW58Y3lnc3RhcnQpCiAJIiRicm93c2VyX3BhdGgiICIkQCIKIAk7Owogc3RhcnQpCmRpZmYgLS1naXQgYS9naXQuYyBiL2dpdC5jCmluZGV4IDFhZGExNjkuLjIwMjVmNzcgMTAwNjQ0Ci0tLSBhL2dpdC5jCisrKyBiL2dpdC5jCkBAIC00LDYgKzQsNyBAQAogI2luY2x1ZGUgImhlbHAuaCIKICNpbmNsdWRlICJxdW90ZS5oIgogI2luY2x1ZGUgInJ1bi1jb21tYW5kLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCiAKIGNvbnN0IGNoYXIgZ2l0X3VzYWdlX3N0cmluZ1tdID0KIAkiZ2l0IFstLXZlcnNpb25dIFstLWhlbHBdIFstYyBuYW1lPXZhbHVlXVxuIgpAQCAtMTQ2LDYgKzE0NywxMiBAQAogCQkJc2V0ZW52KEdJVF9MSVRFUkFMX1BBVEhTUEVDU19FTlZJUk9OTUVOVCwgIjAiLCAxKTsKIAkJCWlmIChlbnZjaGFuZ2VkKQogCQkJCSplbnZjaGFuZ2VkID0gMTsKKwkJfSBlbHNlIGlmICghc3RyY21wKGNtZCwgIi0tc2hhbGxvdy1maWxlIikpIHsKKwkJCSgqYXJndikrKzsKKwkJCSgqYXJnYyktLTsKKwkJCXNldF9hbHRlcm5hdGVfc2hhbGxvd19maWxlKCgqYXJndilbMF0pOworCQkJaWYgKGVudmNoYW5nZWQpCisJCQkJKmVudmNoYW5nZWQgPSAxOwogCQl9IGVsc2UgewogCQkJZnByaW50ZihzdGRlcnIsICJVbmtub3duIG9wdGlvbjogJXNcbiIsIGNtZCk7CiAJCQl1c2FnZShnaXRfdXNhZ2Vfc3RyaW5nKTsKQEAgLTMxNyw2ICszMjQsNyBAQAogCQl7ICJjYXQtZmlsZSIsIGNtZF9jYXRfZmlsZSwgUlVOX1NFVFVQIH0sCiAJCXsgImNoZWNrLWF0dHIiLCBjbWRfY2hlY2tfYXR0ciwgUlVOX1NFVFVQIH0sCiAJCXsgImNoZWNrLWlnbm9yZSIsIGNtZF9jaGVja19pZ25vcmUsIFJVTl9TRVRVUCB8IE5FRURfV09SS19UUkVFIH0sCisJCXsgImNoZWNrLW1haWxtYXAiLCBjbWRfY2hlY2tfbWFpbG1hcCwgUlVOX1NFVFVQIH0sCiAJCXsgImNoZWNrLXJlZi1mb3JtYXQiLCBjbWRfY2hlY2tfcmVmX2Zvcm1hdCB9LAogCQl7ICJjaGVja291dCIsIGNtZF9jaGVja291dCwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKIAkJeyAiY2hlY2tvdXQtaW5kZXgiLCBjbWRfY2hlY2tvdXRfaW5kZXgsCkBAIC01MDcsOCArNTE1LDkgQEAKIH0KIAogCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmF2KQogeworCWNvbnN0IGNoYXIgKiphcmd2ID0gKGNvbnN0IGNoYXIgKiopIGF2OwogCWNvbnN0IGNoYXIgKmNtZDsKIAogCXN0YXJ0dXBfaW5mbyA9ICZnaXRfc3RhcnR1cF9pbmZvOwpAQCAtNTE3LDYgKzUyNiwxMyBAQAogCWlmICghY21kKQogCQljbWQgPSAiZ2l0LWhlbHAiOwogCisJLyoKKwkgKiBBbHdheXMgb3BlbiBmaWxlIGRlc2NyaXB0b3JzIDAvMS8yIHRvIGF2b2lkIGNsb2JiZXJpbmcgZmlsZXMKKwkgKiBpbiBkaWUoKS4gIEl0IGFsc28gYXZvaWRzIG1lc3NpbmcgdXAgd2hlbiB0aGUgcGlwZXMgYXJlIGR1cCdlZAorCSAqIG9udG8gc3RkaW4vc3Rkb3V0L3N0ZGVyciBpbiB0aGUgY2hpbGQgcHJvY2Vzc2VzIHdlIHNwYXduLgorCSAqLworCXNhbml0aXplX3N0ZGZkcygpOworCiAJZ2l0X3NldHVwX2dldHRleHQoKTsKIAogCS8qCmRpZmYgLS1naXQgYS9naXQucmMgYi9naXQucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNlNmRiOQotLS0gL2Rldi9udWxsCisrKyBiL2dpdC5yYwpAQCAtMCwwICsxLDIyIEBACisxIFZFUlNJT05JTkZPCitGSUxFVkVSU0lPTiAgICAgTUFKT1IsTUlOT1IsUEFUQ0gsMAorUFJPRFVDVFZFUlNJT04gIE1BSk9SLE1JTk9SLFBBVENILDAKK0JFR0lOCisgIEJMT0NLICJTdHJpbmdGaWxlSW5mbyIKKyAgQkVHSU4KKyAgICBCTE9DSyAiMDQwOTA0YjAiICAgLyogTEFOR19FTkdMSVNIL1NVQkxBTkdfRU5HTElTSF9VUywgVW5pY29kZSBDUCAqLworICAgIEJFR0lOCisgICAgICBWQUxVRSAiQ29tcGFueU5hbWUiLCAiVGhlIEdpdCBEZXZlbG9wbWVudCBDb21tdW5pdHlcMCIKKyAgICAgIFZBTFVFICJGaWxlRGVzY3JpcHRpb24iLCAiR2l0IGZvciBXaW5kb3dzXDAiCisgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwgImdpdFwwIgorICAgICAgVkFMVUUgIk9yaWdpbmFsRmlsZW5hbWUiLCAiZ2l0LmV4ZVwwIgorICAgICAgVkFMVUUgIlByb2R1Y3ROYW1lIiwgIkdpdFwwIgorICAgICAgVkFMVUUgIlByb2R1Y3RWZXJzaW9uIiwgR0lUX1ZFUlNJT04gIlwwIgorICAgIEVORAorICBFTkQKKworICBCTE9DSyAiVmFyRmlsZUluZm8iCisgIEJFR0lOCisgICAgVkFMVUUgIlRyYW5zbGF0aW9uIiwgMHg0MDksIDEyMDAKKyAgRU5ECitFTkQKZGlmZiAtLWdpdCBhL2dpdHdlYi9naXR3ZWIucGVybCBiL2dpdHdlYi9naXR3ZWIucGVybAppbmRleCA4MDk1MGMwLi5mNDI5Zjc1IDEwMDc1NQotLS0gYS9naXR3ZWIvZ2l0d2ViLnBlcmwKKysrIGIvZ2l0d2ViL2dpdHdlYi5wZXJsCkBAIC04NSw2ICs4NSw5IEBACiAjIHN0cmluZyBvZiB0aGUgaG9tZSBsaW5rIG9uIHRvcCBvZiBhbGwgcGFnZXMKIG91ciAkaG9tZV9saW5rX3N0ciA9ICIrK0dJVFdFQl9IT01FX0xJTktfU1RSKysiOwogCisjIGV4dHJhIGJyZWFkY3J1bWJzIHByZWNlZGluZyB0aGUgaG9tZSBsaW5rCitvdXIgQGV4dHJhX2JyZWFkY3J1bWJzID0gKCk7CisKICMgbmFtZSBvZiB5b3VyIHNpdGUgb3Igb3JnYW5pemF0aW9uIHRvIGFwcGVhciBpbiBwYWdlIHRpdGxlcwogIyByZXBsYWNlIHRoaXMgd2l0aCBzb21ldGhpbmcgbW9yZSBkZXNjcmlwdGl2ZSBmb3IgY2xlYXJlciBib29rbWFya3MKIG91ciAkc2l0ZV9uYW1lID0gIisrR0lUV0VCX1NJVEVOQU1FKysiCkBAIC0xMDg2LDcgKzEwODksNyBAQAogCW91ciAkc2VhcmNoX3VzZV9yZWdleHAgPSAkaW5wdXRfcGFyYW1zeydzZWFyY2hfdXNlX3JlZ2V4cCd9OwogCiAJb3VyICRzZWFyY2h0ZXh0ID0gJGlucHV0X3BhcmFtc3snc2VhcmNodGV4dCd9OwotCW91ciAkc2VhcmNoX3JlZ2V4cDsKKwlvdXIgJHNlYXJjaF9yZWdleHAgPSB1bmRlZjsKIAlpZiAoZGVmaW5lZCAkc2VhcmNodGV4dCkgewogCQlpZiAobGVuZ3RoKCRzZWFyY2h0ZXh0KSA8IDIpIHsKIAkJCWRpZV9lcnJvcig0MDMsICJBdCBsZWFzdCB0d28gY2hhcmFjdGVycyBhcmUgcmVxdWlyZWQgZm9yIHNlYXJjaCBwYXJhbWV0ZXIiKTsKQEAgLTM5ODIsNyArMzk4NSw5IEBACiBzdWIgcHJpbnRfbmF2X2JyZWFkY3J1bWJzIHsKIAlteSAlb3B0cyA9IEBfOwogCi0JcHJpbnQgJGNnaS0+YSh7LWhyZWYgPT4gZXNjX3VybCgkaG9tZV9saW5rKX0sICRob21lX2xpbmtfc3RyKSAuICIgLyAiOworCWZvciBteSAkY3J1bWIgKEBleHRyYV9icmVhZGNydW1icywgWyAkaG9tZV9saW5rX3N0ciA9PiAkaG9tZV9saW5rIF0pIHsKKwkJcHJpbnQgJGNnaS0+YSh7LWhyZWYgPT4gZXNjX3VybCgkY3J1bWItPlsxXSl9LCAkY3J1bWItPlswXSkgLiAiIC8gIjsKKwl9CiAJaWYgKGRlZmluZWQgJHByb2plY3QpIHsKIAkJbXkgQGRpcm5hbWUgPSBzcGxpdCAnLycsICRwcm9qZWN0OwogCQlteSAkcHJvamVjdGJhc2VuYW1lID0gcG9wIEBkaXJuYW1lOwpkaWZmIC0tZ2l0IGEvaGVscC5jIGIvaGVscC5jCmluZGV4IDAyYmEwNDMuLmYwNjg5MjUgMTAwNjQ0Ci0tLSBhL2hlbHAuYworKysgYi9oZWxwLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSAic3RyaW5nLWxpc3QuaCIKICNpbmNsdWRlICJjb2x1bW4uaCIKICNpbmNsdWRlICJ2ZXJzaW9uLmgiCisjaW5jbHVkZSAicmVmcy5oIgogCiB2b2lkIGFkZF9jbWRuYW1lKHN0cnVjdCBjbWRuYW1lcyAqY21kcywgY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbikKIHsKQEAgLTEwNiwxMCArMTA3LDcgQEAKIAkgICAgIVNfSVNSRUcoc3Quc3RfbW9kZSkpCiAJCXJldHVybiAwOwogCi0jaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9fKQotI2lmIGRlZmluZWQoX19DWUdXSU5fXykKLWlmICgoc3Quc3RfbW9kZSAmIFNfSVhVU1IpID09IDApCi0jZW5kaWYKKyNpZiBkZWZpbmVkKEdJVF9XSU5ET1dTX05BVElWRSkKIHsJLyogY2Fubm90IHRydXN0IHRoZSBleGVjdXRhYmxlIGJpdCwgcGVlayBpbnRvIHRoZSBmaWxlIGluc3RlYWQgKi8KIAljaGFyIGJ1ZlszXSA9IHsgMCB9OwogCWludCBuOwpAQCAtNDA0LDMgKzQwMiw1MiBAQAogCXByaW50ZigiZ2l0IHZlcnNpb24gJXNcbiIsIGdpdF92ZXJzaW9uX3N0cmluZyk7CiAJcmV0dXJuIDA7CiB9CisKK3N0cnVjdCBzaW1pbGFyX3JlZl9jYiB7CisJY29uc3QgY2hhciAqYmFzZV9yZWY7CisJc3RydWN0IHN0cmluZ19saXN0ICpzaW1pbGFyX3JlZnM7Cit9OworCitzdGF0aWMgaW50IGFwcGVuZF9zaW1pbGFyX3JlZihjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAorCQkJICAgICAgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQoreworCXN0cnVjdCBzaW1pbGFyX3JlZl9jYiAqY2IgPSAoc3RydWN0IHNpbWlsYXJfcmVmX2NiICopKGNiX2RhdGEpOworCWNoYXIgKmJyYW5jaCA9IHN0cnJjaHIocmVmbmFtZSwgJy8nKSArIDE7CisJLyogQSByZW1vdGUgYnJhbmNoIG9mIHRoZSBzYW1lIG5hbWUgaXMgZGVlbWVkIHNpbWlsYXIgKi8KKwlpZiAoIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy9yZW1vdGVzLyIpICYmCisJICAgICFzdHJjbXAoYnJhbmNoLCBjYi0+YmFzZV9yZWYpKQorCQlzdHJpbmdfbGlzdF9hcHBlbmQoY2ItPnNpbWlsYXJfcmVmcywKKwkJCQkgICByZWZuYW1lICsgc3RybGVuKCJyZWZzL3JlbW90ZXMvIikpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHN0cmluZ19saXN0IGd1ZXNzX3JlZnMoY29uc3QgY2hhciAqcmVmKQoreworCXN0cnVjdCBzaW1pbGFyX3JlZl9jYiByZWZfY2I7CisJc3RydWN0IHN0cmluZ19saXN0IHNpbWlsYXJfcmVmcyA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CisKKwlyZWZfY2IuYmFzZV9yZWYgPSByZWY7CisJcmVmX2NiLnNpbWlsYXJfcmVmcyA9ICZzaW1pbGFyX3JlZnM7CisJZm9yX2VhY2hfcmVmKGFwcGVuZF9zaW1pbGFyX3JlZiwgJnJlZl9jYik7CisJcmV0dXJuIHNpbWlsYXJfcmVmczsKK30KKwordm9pZCBoZWxwX3Vua25vd25fcmVmKGNvbnN0IGNoYXIgKnJlZiwgY29uc3QgY2hhciAqY21kLCBjb25zdCBjaGFyICplcnJvcikKK3sKKwlpbnQgaTsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3Qgc3VnZ2VzdGVkX3JlZnMgPSBndWVzc19yZWZzKHJlZik7CisKKwlmcHJpbnRmX2xuKHN0ZGVyciwgXygiJXM6ICVzIC0gJXMiKSwgY21kLCByZWYsIGVycm9yKTsKKworCWlmIChzdWdnZXN0ZWRfcmVmcy5uciA+IDApIHsKKwkJZnByaW50Zl9sbihzdGRlcnIsCisJCQkgICBRXygiXG5EaWQgeW91IG1lYW4gdGhpcz8iLAorCQkJICAgICAgIlxuRGlkIHlvdSBtZWFuIG9uZSBvZiB0aGVzZT8iLAorCQkJICAgICAgc3VnZ2VzdGVkX3JlZnMubnIpKTsKKwkJZm9yIChpID0gMDsgaSA8IHN1Z2dlc3RlZF9yZWZzLm5yOyBpKyspCisJCQlmcHJpbnRmKHN0ZGVyciwgIlx0JXNcbiIsIHN1Z2dlc3RlZF9yZWZzLml0ZW1zW2ldLnN0cmluZyk7CisJfQorCisJc3RyaW5nX2xpc3RfY2xlYXIoJnN1Z2dlc3RlZF9yZWZzLCAwKTsKKwlleGl0KDEpOworfQpkaWZmIC0tZ2l0IGEvaGVscC5oIGIvaGVscC5oCmluZGV4IDBhZTVhMTIuLmIyMWQ3YzkgMTAwNjQ0Ci0tLSBhL2hlbHAuaAorKysgYi9oZWxwLmgKQEAgLTI3LDQgKzI3LDkgQEAKIGV4dGVybiBpbnQgaXNfaW5fY21kbGlzdChzdHJ1Y3QgY21kbmFtZXMgKmNtZHMsIGNvbnN0IGNoYXIgKm5hbWUpOwogZXh0ZXJuIHZvaWQgbGlzdF9jb21tYW5kcyh1bnNpZ25lZCBpbnQgY29sb3B0cywgc3RydWN0IGNtZG5hbWVzICptYWluX2NtZHMsIHN0cnVjdCBjbWRuYW1lcyAqb3RoZXJfY21kcyk7CiAKKy8qCisgKiBjYWxsIHRoaXMgdG8gZGllKCksIHdoZW4gaXQgaXMgc3VzcGVjdGVkIHRoYXQgdGhlIHVzZXIgbWlzdHlwZWQgYQorICogcmVmIHRvIHRoZSBjb21tYW5kLCB0byBnaXZlIHN1Z2dlc3RlZCAiY29ycmVjdCIgcmVmcy4KKyAqLworZXh0ZXJuIHZvaWQgaGVscF91bmtub3duX3JlZihjb25zdCBjaGFyICpyZWYsIGNvbnN0IGNoYXIgKmNtZCwgY29uc3QgY2hhciAqZXJyb3IpOwogI2VuZGlmIC8qIEhFTFBfSCAqLwpkaWZmIC0tZ2l0IGEvaHR0cC1iYWNrZW5kLmMgYi9odHRwLWJhY2tlbmQuYwppbmRleCA2Yjg1ZmZhLi4wMzI0NDE3IDEwMDY0NAotLS0gYS9odHRwLWJhY2tlbmQuYworKysgYi9odHRwLWJhY2tlbmQuYwpAQCAtNDEwLDE0ICs0MTAsMTQgQEAKIAlzdHJidWZfcmVsZWFzZSgmYnVmKTsKIH0KIAotc3RhdGljIGludCBzaG93X2hlYWRfcmVmKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsCitzdGF0aWMgaW50IHNob3dfaGVhZF9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKIAlpbnQgZmxhZywgdm9pZCAqY2JfZGF0YSkKIHsKIAlzdHJ1Y3Qgc3RyYnVmICpidWYgPSBjYl9kYXRhOwogCiAJaWYgKGZsYWcgJiBSRUZfSVNTWU1SRUYpIHsKLQkJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKLQkJY29uc3QgY2hhciAqdGFyZ2V0ID0gcmVzb2x2ZV9yZWZfdW5zYWZlKG5hbWUsIHNoYTEsIDEsIE5VTEwpOworCQl1bnNpZ25lZCBjaGFyIHVudXNlZFsyMF07CisJCWNvbnN0IGNoYXIgKnRhcmdldCA9IHJlc29sdmVfcmVmX3Vuc2FmZShyZWZuYW1lLCB1bnVzZWQsIDEsIE5VTEwpOwogCQljb25zdCBjaGFyICp0YXJnZXRfbm9ucyA9IHN0cmlwX25hbWVzcGFjZSh0YXJnZXQpOwogCiAJCXN0cmJ1Zl9hZGRmKGJ1ZiwgInJlZjogJXNcbiIsIHRhcmdldF9ub25zKTsKZGlmZiAtLWdpdCBhL2h0dHAtcHVzaC5jIGIvaHR0cC1wdXNoLmMKaW5kZXggMzk1YThjZi4uNmRhZDE4OCAxMDA2NDQKLS0tIGEvaHR0cC1wdXNoLmMKKysrIGIvaHR0cC1wdXNoLmMKQEAgLTY2Myw3ICs2NjMsNyBAQAogCiBzdGF0aWMgaW50IGFkZF9zZW5kX3JlcXVlc3Qoc3RydWN0IG9iamVjdCAqb2JqLCBzdHJ1Y3QgcmVtb3RlX2xvY2sgKmxvY2spCiB7Ci0Jc3RydWN0IHRyYW5zZmVyX3JlcXVlc3QgKnJlcXVlc3QgPSByZXF1ZXN0X3F1ZXVlX2hlYWQ7CisJc3RydWN0IHRyYW5zZmVyX3JlcXVlc3QgKnJlcXVlc3Q7CiAJc3RydWN0IHBhY2tlZF9naXQgKnRhcmdldDsKIAogCS8qIEtlZXAgbG9ja3MgYWN0aXZlICovCmRpZmYgLS1naXQgYS9odHRwLmMgYi9odHRwLmMKaW5kZXggOTJhYmE1OS4uMmQwODZhZSAxMDA2NDQKLS0tIGEvaHR0cC5jCisrKyBiL2h0dHAuYwpAQCAtMjI4LDkgKzIyOCwxNSBAQAogI2Vsc2UKIAl7CiAJCXN0YXRpYyBzdHJ1Y3Qgc3RyYnVmIHVwID0gU1RSQlVGX0lOSVQ7Ci0JCXN0cmJ1Zl9yZXNldCgmdXApOwotCQlzdHJidWZfYWRkZigmdXAsICIlczolcyIsCi0JCQkgICAgaHR0cF9hdXRoLnVzZXJuYW1lLCBodHRwX2F1dGgucGFzc3dvcmQpOworCQkvKgorCQkgKiBOb3RlIHRoYXQgd2UgYXNzdW1lIHdlIG9ubHkgZXZlciBoYXZlIGEgc2luZ2xlIHNldCBvZgorCQkgKiBjcmVkZW50aWFscyBpbiBhIGdpdmVuIHByb2dyYW0gcnVuLCBzbyB3ZSBkbyBub3QgaGF2ZQorCQkgKiB0byB3b3JyeSBhYm91dCB1cGRhdGluZyB0aGlzIGJ1ZmZlciwgb25seSBzZXR0aW5nIGl0cworCQkgKiBpbml0aWFsIHZhbHVlLgorCQkgKi8KKwkJaWYgKCF1cC5sZW4pCisJCQlzdHJidWZfYWRkZigmdXAsICIlczolcyIsCisJCQkJaHR0cF9hdXRoLnVzZXJuYW1lLCBodHRwX2F1dGgucGFzc3dvcmQpOwogCQljdXJsX2Vhc3lfc2V0b3B0KHJlc3VsdCwgQ1VSTE9QVF9VU0VSUFdELCB1cC5idWYpOwogCX0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW1hcC1zZW5kLmMgYi9pbWFwLXNlbmQuYwppbmRleCBkOWJjZmI0Li5kNmI2NWUyIDEwMDY0NAotLS0gYS9pbWFwLXNlbmQuYworKysgYi9pbWFwLXNlbmQuYwpAQCAtMjksOCArMjksMTggQEAKICNpZmRlZiBOT19PUEVOU1NMCiB0eXBlZGVmIHZvaWQgKlNTTDsKICNlbHNlCisjaWZkZWYgQVBQTEVfQ09NTU9OX0NSWVBUTworI2luY2x1ZGUgPENvbW1vbkNyeXB0by9Db21tb25ITUFDLmg+CisjZGVmaW5lIEhNQUNfQ1RYIENDSG1hY0NvbnRleHQKKyNkZWZpbmUgSE1BQ19Jbml0KGhtYWMsIGtleSwgbGVuLCBhbGdvKSBDQ0htYWNJbml0KGhtYWMsIGFsZ28sIGtleSwgbGVuKQorI2RlZmluZSBITUFDX1VwZGF0ZSBDQ0htYWNVcGRhdGUKKyNkZWZpbmUgSE1BQ19GaW5hbChobWFjLCBoYXNoLCBwdHIpIENDSG1hY0ZpbmFsKGhtYWMsIGhhc2gpCisjZGVmaW5lIEhNQUNfQ1RYX2NsZWFudXAoaWdub3JlKQorI2RlZmluZSBFVlBfbWQ1KCkga0NDSG1hY0FsZ01ENQorI2Vsc2UKICNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgogI2luY2x1ZGUgPG9wZW5zc2wvaG1hYy5oPgorI2VuZGlmCiAjaW5jbHVkZSA8b3BlbnNzbC94NTA5djMuaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9rd3NldC5jIGIva3dzZXQuYwppbmRleCA1ODAwOTk5Li5hMGY0OWIzIDEwMDY0NAotLS0gYS9rd3NldC5jCisrKyBiL2t3c2V0LmMKQEAgLTY1LDcgKzY1LDcgQEAKICAgc3RydWN0IHRyaWUgKmZhaWw7CQkvKiBBaG8tQ29yYXNpY2sgZmFpbHVyZSBmdW5jdGlvbi4gKi8KICAgaW50IGRlcHRoOwkJCS8qIERlcHRoIG9mIHRoaXMgbm9kZSBmcm9tIHRoZSByb290LiAqLwogICBpbnQgc2hpZnQ7CQkJLyogU2hpZnQgZnVuY3Rpb24gZm9yIHNlYXJjaCBmYWlsdXJlcy4gKi8KLSAgaW50IG1heHNoaWZ0OwkJCS8qIE1heCBzaGlmdCBvZiBzZWxmIGFuZCBkZXNjZW5kZW50cy4gKi8KKyAgaW50IG1heHNoaWZ0OwkJCS8qIE1heCBzaGlmdCBvZiBzZWxmIGFuZCBkZXNjZW5kYW50cy4gKi8KIH07CiAKIC8qIFN0cnVjdHVyZSByZXR1cm5lZCBvcGFxdWVseSB0byB0aGUgY2FsbGVyLCBjb250YWluaW5nIGV2ZXJ5dGhpbmcuICovCkBAIC0zMDgsNyArMzA4LDcgQEAKICAgdHJlZWZhaWxzKHRyZWUtPnJsaW5rLCBmYWlsLCByZWNvdXJzZSk7CiAKICAgLyogRmluZCwgaW4gdGhlIGNoYWluIG9mIGZhaWxzIGdvaW5nIGJhY2sgdG8gdGhlIHJvb3QsIHRoZSBmaXJzdAotICAgICBub2RlIHRoYXQgaGFzIGEgZGVzY2VuZGVudCBvbiB0aGUgY3VycmVudCBsYWJlbC4gKi8KKyAgICAgbm9kZSB0aGF0IGhhcyBhIGRlc2NlbmRhbnQgb24gdGhlIGN1cnJlbnQgbGFiZWwuICovCiAgIHdoaWxlIChmYWlsKQogICAgIHsKICAgICAgIGxpbmsgPSBmYWlsLT5saW5rczsKQEAgLTQyNiwxMyArNDI2LDEzIEBACiAJIGNvbXB1dGluZyB0aGUgZGVsdGEgdGFibGUsIGZhaWx1cmUgZnVuY3Rpb24sIGFuZCBzaGlmdCBmdW5jdGlvbi4gKi8KICAgICAgIGZvciAoY3VyciA9IGxhc3QgPSBrd3NldC0+dHJpZTsgY3VycjsgY3VyciA9IGN1cnItPm5leHQpCiAJewotCSAgLyogRW5xdWV1ZSB0aGUgaW1tZWRpYXRlIGRlc2NlbmRlbnRzIGluIHRoZSBsZXZlbCBvcmRlciBxdWV1ZS4gKi8KKwkgIC8qIEVucXVldWUgdGhlIGltbWVkaWF0ZSBkZXNjZW5kYW50cyBpbiB0aGUgbGV2ZWwgb3JkZXIgcXVldWUuICovCiAJICBlbnF1ZXVlKGN1cnItPmxpbmtzLCAmbGFzdCk7CiAKIAkgIGN1cnItPnNoaWZ0ID0ga3dzZXQtPm1pbmQ7CiAJICBjdXJyLT5tYXhzaGlmdCA9IGt3c2V0LT5taW5kOwogCi0JICAvKiBVcGRhdGUgdGhlIGRlbHRhIHRhYmxlIGZvciB0aGUgZGVzY2VuZGVudHMgb2YgdGhpcyBub2RlLiAqLworCSAgLyogVXBkYXRlIHRoZSBkZWx0YSB0YWJsZSBmb3IgdGhlIGRlc2NlbmRhbnRzIG9mIHRoaXMgbm9kZS4gKi8KIAkgIHRyZWVkZWx0YShjdXJyLT5saW5rcywgY3Vyci0+ZGVwdGgsIGRlbHRhKTsKIAogCSAgLyogQ29tcHV0ZSB0aGUgZmFpbHVyZSBmdW5jdGlvbiBmb3IgdGhlIGRlc2NlbmRhbnRzIG9mIHRoaXMgbm9kZS4gKi8KQEAgLTQ1MCw3ICs0NTAsNyBAQAogCQkgIGZhaWwtPnNoaWZ0ID0gY3Vyci0+ZGVwdGggLSBmYWlsLT5kZXB0aDsKIAogCSAgICAgIC8qIElmIHRoZSBjdXJyZW50IG5vZGUgaXMgYWNjZXB0aW5nIHRoZW4gdGhlIHNoaWZ0IGF0IHRoZQotCQkgZmFpbCBhbmQgaXRzIGRlc2NlbmRlbnRzIHNob3VsZCBiZSBubyBsYXJnZXIgdGhhbiB0aGUKKwkJIGZhaWwgYW5kIGl0cyBkZXNjZW5kYW50cyBzaG91bGQgYmUgbm8gbGFyZ2VyIHRoYW4gdGhlCiAJCSBkaWZmZXJlbmNlIG9mIHRoZWlyIGRlcHRocy4gKi8KIAkgICAgICBpZiAoY3Vyci0+YWNjZXB0aW5nICYmIGZhaWwtPm1heHNoaWZ0ID4gY3Vyci0+ZGVwdGggLSBmYWlsLT5kZXB0aCkKIAkJZmFpbC0+bWF4c2hpZnQgPSBjdXJyLT5kZXB0aCAtIGZhaWwtPmRlcHRoOwpkaWZmIC0tZ2l0IGEvbGluZS1sb2cuYyBiL2xpbmUtbG9nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJkMDFkYwotLS0gL2Rldi9udWxsCisrKyBiL2xpbmUtbG9nLmMKQEAgLTAsMCArMSwxMjc3IEBACisjaW5jbHVkZSAiZ2l0LWNvbXBhdC11dGlsLmgiCisjaW5jbHVkZSAibGluZS1yYW5nZS5oIgorI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAidGFnLmgiCisjaW5jbHVkZSAiYmxvYi5oIgorI2luY2x1ZGUgInRyZWUuaCIKKyNpbmNsdWRlICJkaWZmLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCisjaW5jbHVkZSAiZGVjb3JhdGUuaCIKKyNpbmNsdWRlICJyZXZpc2lvbi5oIgorI2luY2x1ZGUgInhkaWZmLWludGVyZmFjZS5oIgorI2luY2x1ZGUgInN0cmJ1Zi5oIgorI2luY2x1ZGUgImxvZy10cmVlLmgiCisjaW5jbHVkZSAiZ3JhcGguaCIKKyNpbmNsdWRlICJ1c2VyZGlmZi5oIgorI2luY2x1ZGUgImxpbmUtbG9nLmgiCisKK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9ncm93KHN0cnVjdCByYW5nZV9zZXQgKnJzLCBzaXplX3QgZXh0cmEpCit7CisJQUxMT0NfR1JPVyhycy0+cmFuZ2VzLCBycy0+bnIgKyBleHRyYSwgcnMtPmFsbG9jKTsKK30KKworLyogRWl0aGVyIGluaXRpYWxpemF0aW9uIHdvdWxkIGJlIGZpbmUgKi8KKyNkZWZpbmUgUkFOR0VfU0VUX0lOSVQgezB9CisKK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9pbml0KHN0cnVjdCByYW5nZV9zZXQgKnJzLCBzaXplX3QgcHJlYWxsb2MpCit7CisJcnMtPmFsbG9jID0gcnMtPm5yID0gMDsKKwlycy0+cmFuZ2VzID0gTlVMTDsKKwlpZiAocHJlYWxsb2MpCisJCXJhbmdlX3NldF9ncm93KHJzLCBwcmVhbGxvYyk7Cit9CisKK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9yZWxlYXNlKHN0cnVjdCByYW5nZV9zZXQgKnJzKQoreworCWZyZWUocnMtPnJhbmdlcyk7CisJcnMtPmFsbG9jID0gcnMtPm5yID0gMDsKKwlycy0+cmFuZ2VzID0gTlVMTDsKK30KKworLyogZHN0IG11c3QgYmUgdW5pbml0aWFsaXplZCEgKi8KK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9jb3B5KHN0cnVjdCByYW5nZV9zZXQgKmRzdCwgc3RydWN0IHJhbmdlX3NldCAqc3JjKQoreworCXJhbmdlX3NldF9pbml0KGRzdCwgc3JjLT5ucik7CisJbWVtY3B5KGRzdC0+cmFuZ2VzLCBzcmMtPnJhbmdlcywgc3JjLT5ucipzaXplb2Yoc3RydWN0IHJhbmdlX3NldCkpOworCWRzdC0+bnIgPSBzcmMtPm5yOworfQorc3RhdGljIHZvaWQgcmFuZ2Vfc2V0X21vdmUoc3RydWN0IHJhbmdlX3NldCAqZHN0LCBzdHJ1Y3QgcmFuZ2Vfc2V0ICpzcmMpCit7CisJcmFuZ2Vfc2V0X3JlbGVhc2UoZHN0KTsKKwlkc3QtPnJhbmdlcyA9IHNyYy0+cmFuZ2VzOworCWRzdC0+bnIgPSBzcmMtPm5yOworCWRzdC0+YWxsb2MgPSBzcmMtPmFsbG9jOworCXNyYy0+cmFuZ2VzID0gTlVMTDsKKwlzcmMtPmFsbG9jID0gc3JjLT5uciA9IDA7Cit9CisKKy8qIHRhY2sgb24gYSBfbmV3XyByYW5nZSBfYXQgdGhlIGVuZF8gKi8KK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9hcHBlbmRfdW5zYWZlKHN0cnVjdCByYW5nZV9zZXQgKnJzLCBsb25nIGEsIGxvbmcgYikKK3sKKwlhc3NlcnQoYSA8PSBiKTsKKwlyYW5nZV9zZXRfZ3JvdyhycywgMSk7CisJcnMtPnJhbmdlc1tycy0+bnJdLnN0YXJ0ID0gYTsKKwlycy0+cmFuZ2VzW3JzLT5ucl0uZW5kID0gYjsKKwlycy0+bnIrKzsKK30KKworc3RhdGljIHZvaWQgcmFuZ2Vfc2V0X2FwcGVuZChzdHJ1Y3QgcmFuZ2Vfc2V0ICpycywgbG9uZyBhLCBsb25nIGIpCit7CisJYXNzZXJ0KHJzLT5uciA9PSAwIHx8IHJzLT5yYW5nZXNbcnMtPm5yLTFdLmVuZCA8PSBhKTsKKwlyYW5nZV9zZXRfYXBwZW5kX3Vuc2FmZShycywgYSwgYik7Cit9CisKK3N0YXRpYyBpbnQgcmFuZ2VfY21wKGNvbnN0IHZvaWQgKl9yLCBjb25zdCB2b2lkICpfcykKK3sKKwljb25zdCBzdHJ1Y3QgcmFuZ2UgKnIgPSBfcjsKKwljb25zdCBzdHJ1Y3QgcmFuZ2UgKnMgPSBfczsKKworCS8qIHRoaXMgY291bGQgYmUgc2ltcGx5ICdyZXR1cm4gci5zdGFydC1zLnN0YXJ0JywgYnV0IGZvciB0aGUgdHlwZXMgKi8KKwlpZiAoci0+c3RhcnQgPT0gcy0+c3RhcnQpCisJCXJldHVybiAwOworCWlmIChyLT5zdGFydCA8IHMtPnN0YXJ0KQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIDE7Cit9CisKKy8qCisgKiBDaGVjayB0aGF0IHRoZSByYW5nZXMgYXJlIG5vbi1lbXB0eSwgc29ydGVkIGFuZCBub24tb3ZlcmxhcHBpbmcKKyAqLworc3RhdGljIHZvaWQgcmFuZ2Vfc2V0X2NoZWNrX2ludmFyaWFudHMoc3RydWN0IHJhbmdlX3NldCAqcnMpCit7CisJaW50IGk7CisKKwlpZiAoIXJzKQorCQlyZXR1cm47CisKKwlpZiAocnMtPm5yKQorCQlhc3NlcnQocnMtPnJhbmdlc1swXS5zdGFydCA8IHJzLT5yYW5nZXNbMF0uZW5kKTsKKworCWZvciAoaSA9IDE7IGkgPCBycy0+bnI7IGkrKykgeworCQlhc3NlcnQocnMtPnJhbmdlc1tpLTFdLmVuZCA8IHJzLT5yYW5nZXNbaV0uc3RhcnQpOworCQlhc3NlcnQocnMtPnJhbmdlc1tpXS5zdGFydCA8IHJzLT5yYW5nZXNbaV0uZW5kKTsKKwl9Cit9CisKKy8qCisgKiBJbi1wbGFjZSBwYXNzIG9mIHNvcnRpbmcgYW5kIG1lcmdpbmcgdGhlIHJhbmdlcyBpbiB0aGUgcmFuZ2Ugc2V0LAorICogdG8gZXN0YWJsaXNoIHRoZSBpbnZhcmlhbnRzIHdoZW4gd2UgZ2V0IHRoZSByYW5nZXMgZnJvbSB0aGUgdXNlcgorICovCitzdGF0aWMgdm9pZCBzb3J0X2FuZF9tZXJnZV9yYW5nZV9zZXQoc3RydWN0IHJhbmdlX3NldCAqcnMpCit7CisJaW50IGk7CisJaW50IG8gPSAwOyAvKiBvdXRwdXQgY3Vyc29yICovCisKKwlxc29ydChycy0+cmFuZ2VzLCBycy0+bnIsIHNpemVvZihzdHJ1Y3QgcmFuZ2UpLCByYW5nZV9jbXApOworCisJZm9yIChpID0gMDsgaSA8IHJzLT5ucjsgaSsrKSB7CisJCWlmIChycy0+cmFuZ2VzW2ldLnN0YXJ0ID09IHJzLT5yYW5nZXNbaV0uZW5kKQorCQkJY29udGludWU7CisJCWlmIChvID4gMCAmJiBycy0+cmFuZ2VzW2ldLnN0YXJ0IDw9IHJzLT5yYW5nZXNbby0xXS5lbmQpIHsKKwkJCWlmIChycy0+cmFuZ2VzW28tMV0uZW5kIDwgcnMtPnJhbmdlc1tpXS5lbmQpCisJCQkJcnMtPnJhbmdlc1tvLTFdLmVuZCA9IHJzLT5yYW5nZXNbaV0uZW5kOworCQl9IGVsc2UgeworCQkJcnMtPnJhbmdlc1tvXS5zdGFydCA9IHJzLT5yYW5nZXNbaV0uc3RhcnQ7CisJCQlycy0+cmFuZ2VzW29dLmVuZCA9IHJzLT5yYW5nZXNbaV0uZW5kOworCQkJbysrOworCQl9CisJfQorCWFzc2VydChvIDw9IHJzLT5ucik7CisJcnMtPm5yID0gbzsKKworCXJhbmdlX3NldF9jaGVja19pbnZhcmlhbnRzKHJzKTsKK30KKworLyoKKyAqIFVuaW9uIG9mIHJhbmdlIHNldHMgKGkuZS4sIHNldHMgb2YgbGluZSBudW1iZXJzKS4gIFVzZWQgdG8gbWVyZ2UKKyAqIHRoZW0gd2hlbiBzZWFyY2hlcyBtZWV0IGF0IGEgY29tbW9uIGFuY2VzdG9yLgorICoKKyAqIFRoaXMgaXMgYWxzbyB3aGVyZSB0aGUgcmFuZ2VzIGFyZSBjb25zb2xpZGF0ZWQgaW50byBjYW5vbmljYWwgZm9ybToKKyAqIG92ZXJsYXBwaW5nIGFuZCBhZGphY2VudCByYW5nZXMgYXJlIG1lcmdlZCwgYW5kIGVtcHR5IHJhbmdlcyBhcmUKKyAqIHJlbW92ZWQuCisgKi8KK3N0YXRpYyB2b2lkIHJhbmdlX3NldF91bmlvbihzdHJ1Y3QgcmFuZ2Vfc2V0ICpvdXQsCisJCQkgICAgIHN0cnVjdCByYW5nZV9zZXQgKmEsIHN0cnVjdCByYW5nZV9zZXQgKmIpCit7CisJaW50IGkgPSAwLCBqID0gMCwgbyA9IDA7CisJc3RydWN0IHJhbmdlICpyYSA9IGEtPnJhbmdlczsKKwlzdHJ1Y3QgcmFuZ2UgKnJiID0gYi0+cmFuZ2VzOworCS8qIGNhbm5vdCBtYWtlIGFuIGFsaWFzIG9mIG91dC0+cmFuZ2VzOiBpdCBtYXkgY2hhbmdlIGR1cmluZyBncm93ICovCisKKwlhc3NlcnQob3V0LT5uciA9PSAwKTsKKwl3aGlsZSAoaSA8IGEtPm5yIHx8IGogPCBiLT5ucikgeworCQlzdHJ1Y3QgcmFuZ2UgKm5ldzsKKwkJaWYgKGkgPCBhLT5uciAmJiBqIDwgYi0+bnIpIHsKKwkJCWlmIChyYVtpXS5zdGFydCA8IHJiW2pdLnN0YXJ0KQorCQkJCW5ldyA9ICZyYVtpKytdOworCQkJZWxzZSBpZiAocmFbaV0uc3RhcnQgPiByYltqXS5zdGFydCkKKwkJCQluZXcgPSAmcmJbaisrXTsKKwkJCWVsc2UgaWYgKHJhW2ldLmVuZCA8IHJiW2pdLmVuZCkKKwkJCQluZXcgPSAmcmFbaSsrXTsKKwkJCWVsc2UKKwkJCQluZXcgPSAmcmJbaisrXTsKKwkJfSBlbHNlIGlmIChpIDwgYS0+bnIpICAgICAgLyogYiBleGhhdXN0ZWQgKi8KKwkJCW5ldyA9ICZyYVtpKytdOworCQllbHNlICAgICAgICAgICAgICAgICAgICAgICAvKiBhIGV4aGF1c3RlZCAqLworCQkJbmV3ID0gJnJiW2orK107CisJCWlmIChuZXctPnN0YXJ0ID09IG5ldy0+ZW5kKQorCQkJOyAvKiBlbXB0eSByYW5nZSAqLworCQllbHNlIGlmICghbyB8fCBvdXQtPnJhbmdlc1tvLTFdLmVuZCA8IG5ldy0+c3RhcnQpIHsKKwkJCXJhbmdlX3NldF9ncm93KG91dCwgMSk7CisJCQlvdXQtPnJhbmdlc1tvXS5zdGFydCA9IG5ldy0+c3RhcnQ7CisJCQlvdXQtPnJhbmdlc1tvXS5lbmQgPSBuZXctPmVuZDsKKwkJCW8rKzsKKwkJfSBlbHNlIGlmIChvdXQtPnJhbmdlc1tvLTFdLmVuZCA8IG5ldy0+ZW5kKSB7CisJCQlvdXQtPnJhbmdlc1tvLTFdLmVuZCA9IG5ldy0+ZW5kOworCQl9CisJfQorCW91dC0+bnIgPSBvOworfQorCisvKgorICogRGlmZmVyZW5jZSBvZiByYW5nZSBzZXRzIChvdXQgPSBhIFwgYikuICBQYXNzIHRoZSAiaW50ZXJlc3RpbmciCisgKiByYW5nZXMgYXMgJ2EnIGFuZCB0aGUgdGFyZ2V0IHNpZGUgb2YgdGhlIGRpZmYgYXMgJ2InOiBpdCByZW1vdmVzCisgKiB0aGUgcmFuZ2VzIGZvciB3aGljaCB0aGUgY29tbWl0IGlzIHJlc3BvbnNpYmxlLgorICovCitzdGF0aWMgdm9pZCByYW5nZV9zZXRfZGlmZmVyZW5jZShzdHJ1Y3QgcmFuZ2Vfc2V0ICpvdXQsCisJCQkJICBzdHJ1Y3QgcmFuZ2Vfc2V0ICphLCBzdHJ1Y3QgcmFuZ2Vfc2V0ICpiKQoreworCWludCBpLCBqID0gIDA7CisJZm9yIChpID0gMDsgaSA8IGEtPm5yOyBpKyspIHsKKwkJbG9uZyBzdGFydCA9IGEtPnJhbmdlc1tpXS5zdGFydDsKKwkJbG9uZyBlbmQgPSBhLT5yYW5nZXNbaV0uZW5kOworCQl3aGlsZSAoc3RhcnQgPCBlbmQpIHsKKwkJCXdoaWxlIChqIDwgYi0+bnIgJiYgc3RhcnQgPj0gYi0+cmFuZ2VzW2pdLmVuZCkKKwkJCQkvKgorCQkJCSAqIGE6ICAgICAgICAgfC0tLS0tLS0KKwkJCQkgKiBiOiAtLS0tLS18CisJCQkJICovCisJCQkJaisrOworCQkJaWYgKGogPj0gYi0+bnIgfHwgZW5kIDwgYi0+cmFuZ2VzW2pdLnN0YXJ0KSB7CisJCQkJLyoKKwkJCQkgKiBiIGV4aGF1c3RlZCwgb3IKKwkJCQkgKiBhOiAgLS0tLXwKKwkJCQkgKiBiOiAgICAgICAgIHwtLS0tCisJCQkJICovCisJCQkJcmFuZ2Vfc2V0X2FwcGVuZChvdXQsIHN0YXJ0LCBlbmQpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHN0YXJ0ID49IGItPnJhbmdlc1tqXS5zdGFydCkgeworCQkJCS8qCisJCQkJICogYTogICAgIHwtLT8/Pz8KKwkJCQkgKiBiOiB8LS0tLS0tfAorCQkJCSAqLworCQkJCXN0YXJ0ID0gYi0+cmFuZ2VzW2pdLmVuZDsKKwkJCX0gZWxzZSBpZiAoZW5kID4gYi0+cmFuZ2VzW2pdLnN0YXJ0KSB7CisJCQkJLyoKKwkJCQkgKiBhOiB8LS0tLS18CisJCQkJICogYjogICAgfC0tPz8/Pz8KKwkJCQkgKi8KKwkJCQlpZiAoc3RhcnQgPCBiLT5yYW5nZXNbal0uc3RhcnQpCisJCQkJCXJhbmdlX3NldF9hcHBlbmQob3V0LCBzdGFydCwgYi0+cmFuZ2VzW2pdLnN0YXJ0KTsKKwkJCQlzdGFydCA9IGItPnJhbmdlc1tqXS5lbmQ7CisJCQl9CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIGRpZmZfcmFuZ2VzX2luaXQoc3RydWN0IGRpZmZfcmFuZ2VzICpkaWZmKQoreworCXJhbmdlX3NldF9pbml0KCZkaWZmLT5wYXJlbnQsIDApOworCXJhbmdlX3NldF9pbml0KCZkaWZmLT50YXJnZXQsIDApOworfQorCitzdGF0aWMgdm9pZCBkaWZmX3Jhbmdlc19yZWxlYXNlKHN0cnVjdCBkaWZmX3JhbmdlcyAqZGlmZikKK3sKKwlyYW5nZV9zZXRfcmVsZWFzZSgmZGlmZi0+cGFyZW50KTsKKwlyYW5nZV9zZXRfcmVsZWFzZSgmZGlmZi0+dGFyZ2V0KTsKK30KKwordm9pZCBsaW5lX2xvZ19kYXRhX2luaXQoc3RydWN0IGxpbmVfbG9nX2RhdGEgKnIpCit7CisJbWVtc2V0KHIsIDAsIHNpemVvZihzdHJ1Y3QgbGluZV9sb2dfZGF0YSkpOworCXJhbmdlX3NldF9pbml0KCZyLT5yYW5nZXMsIDApOworfQorCitzdGF0aWMgdm9pZCBsaW5lX2xvZ19kYXRhX2NsZWFyKHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyKQoreworCXJhbmdlX3NldF9yZWxlYXNlKCZyLT5yYW5nZXMpOworCWlmIChyLT5wYWlyKQorCQlkaWZmX2ZyZWVfZmlsZXBhaXIoci0+cGFpcik7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfbGluZV9sb2dfZGF0YShzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcikKK3sKKwl3aGlsZSAocikgeworCQlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqbmV4dCA9IHItPm5leHQ7CisJCWxpbmVfbG9nX2RhdGFfY2xlYXIocik7CisJCWZyZWUocik7CisJCXIgPSBuZXh0OworCX0KK30KKworc3RhdGljIHN0cnVjdCBsaW5lX2xvZ19kYXRhICoKK3NlYXJjaF9saW5lX2xvZ19kYXRhKHN0cnVjdCBsaW5lX2xvZ19kYXRhICpsaXN0LCBjb25zdCBjaGFyICpwYXRoLAorCQkgICAgIHN0cnVjdCBsaW5lX2xvZ19kYXRhICoqaW5zZXJ0aW9uX3BvaW50KQoreworCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpwID0gbGlzdDsKKwlpZiAoaW5zZXJ0aW9uX3BvaW50KQorCQkqaW5zZXJ0aW9uX3BvaW50ID0gTlVMTDsKKwl3aGlsZSAocCkgeworCQlpbnQgY21wID0gc3RyY21wKHAtPnBhdGgsIHBhdGgpOworCQlpZiAoIWNtcCkKKwkJCXJldHVybiBwOworCQlpZiAoaW5zZXJ0aW9uX3BvaW50ICYmIGNtcCA8IDApCisJCQkqaW5zZXJ0aW9uX3BvaW50ID0gcDsKKwkJcCA9IHAtPm5leHQ7CisJfQorCXJldHVybiBOVUxMOworfQorCisvKgorICogTm90ZTogdGFrZXMgb3duZXJzaGlwIG9mICdwYXRoJywgd2hpY2ggaGFwcGVucyB0byBiZSB3aGF0IHRoZSBvbmx5CisgKiBjYWxsZXIgbmVlZHMuCisgKi8KK3N0YXRpYyB2b2lkIGxpbmVfbG9nX2RhdGFfaW5zZXJ0KHN0cnVjdCBsaW5lX2xvZ19kYXRhICoqbGlzdCwKKwkJCQkgY2hhciAqcGF0aCwKKwkJCQkgbG9uZyBiZWdpbiwgbG9uZyBlbmQpCit7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKmlwOworCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpwID0gc2VhcmNoX2xpbmVfbG9nX2RhdGEoKmxpc3QsIHBhdGgsICZpcCk7CisKKwlpZiAocCkgeworCQlyYW5nZV9zZXRfYXBwZW5kX3Vuc2FmZSgmcC0+cmFuZ2VzLCBiZWdpbiwgZW5kKTsKKwkJc29ydF9hbmRfbWVyZ2VfcmFuZ2Vfc2V0KCZwLT5yYW5nZXMpOworCQlmcmVlKHBhdGgpOworCQlyZXR1cm47CisJfQorCisJcCA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBsaW5lX2xvZ19kYXRhKSk7CisJcC0+cGF0aCA9IHBhdGg7CisJcmFuZ2Vfc2V0X2FwcGVuZCgmcC0+cmFuZ2VzLCBiZWdpbiwgZW5kKTsKKwlzb3J0X2FuZF9tZXJnZV9yYW5nZV9zZXQoJnAtPnJhbmdlcyk7CisJaWYgKGlwKSB7CisJCXAtPm5leHQgPSBpcC0+bmV4dDsKKwkJaXAtPm5leHQgPSBwOworCX0gZWxzZSB7CisJCXAtPm5leHQgPSAqbGlzdDsKKwkJKmxpc3QgPSBwOworCX0KK30KKworc3RydWN0IGNvbGxlY3RfZGlmZl9jYmRhdGEgeworCXN0cnVjdCBkaWZmX3JhbmdlcyAqZGlmZjsKK307CisKK3N0YXRpYyBpbnQgY29sbGVjdF9kaWZmX2NiKGxvbmcgc3RhcnRfYSwgbG9uZyBjb3VudF9hLAorCQkJICAgbG9uZyBzdGFydF9iLCBsb25nIGNvdW50X2IsCisJCQkgICB2b2lkICpkYXRhKQoreworCXN0cnVjdCBjb2xsZWN0X2RpZmZfY2JkYXRhICpkID0gZGF0YTsKKworCWlmIChjb3VudF9hID49IDApCisJCXJhbmdlX3NldF9hcHBlbmQoJmQtPmRpZmYtPnBhcmVudCwgc3RhcnRfYSwgc3RhcnRfYSArIGNvdW50X2EpOworCWlmIChjb3VudF9iID49IDApCisJCXJhbmdlX3NldF9hcHBlbmQoJmQtPmRpZmYtPnRhcmdldCwgc3RhcnRfYiwgc3RhcnRfYiArIGNvdW50X2IpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNvbGxlY3RfZGlmZihtbWZpbGVfdCAqcGFyZW50LCBtbWZpbGVfdCAqdGFyZ2V0LCBzdHJ1Y3QgZGlmZl9yYW5nZXMgKm91dCkKK3sKKwlzdHJ1Y3QgY29sbGVjdF9kaWZmX2NiZGF0YSBjYmRhdGEgPSB7TlVMTH07CisJeHBwYXJhbV90IHhwcDsKKwl4ZGVtaXRjb25mX3QgeGVjZmc7CisJeGRlbWl0Y2JfdCBlY2I7CisKKwltZW1zZXQoJnhwcCwgMCwgc2l6ZW9mKHhwcCkpOworCW1lbXNldCgmeGVjZmcsIDAsIHNpemVvZih4ZWNmZykpOworCXhlY2ZnLmN0eGxlbiA9IHhlY2ZnLmludGVyaHVua2N0eGxlbiA9IDA7CisKKwljYmRhdGEuZGlmZiA9IG91dDsKKwl4ZWNmZy5odW5rX2Z1bmMgPSBjb2xsZWN0X2RpZmZfY2I7CisJbWVtc2V0KCZlY2IsIDAsIHNpemVvZihlY2IpKTsKKwllY2IucHJpdiA9ICZjYmRhdGE7CisJeGRpX2RpZmYocGFyZW50LCB0YXJnZXQsICZ4cHAsICZ4ZWNmZywgJmVjYik7Cit9CisKKy8qCisgKiBUaGVzZSBhcmUgaGFuZHkgZm9yIGRlYnVnZ2luZy4gIFJlbW92aW5nIHRoZW0gd2l0aCAjaWYgMCBzaWxlbmNlcworICogdGhlICJ1bnVzZWQgZnVuY3Rpb24iIHdhcm5pbmcuCisgKi8KKyNpZiAwCitzdGF0aWMgdm9pZCBkdW1wX3JhbmdlX3NldChzdHJ1Y3QgcmFuZ2Vfc2V0ICpycywgY29uc3QgY2hhciAqZGVzYykKK3sKKwlpbnQgaTsKKwlwcmludGYoInJhbmdlIHNldCAlcyAoJWQgaXRlbXMpOlxuIiwgZGVzYywgcnMtPm5yKTsKKwlmb3IgKGkgPSAwOyBpIDwgcnMtPm5yOyBpKyspCisJCXByaW50ZigiXHRbJWxkLCVsZF1cbiIsIHJzLT5yYW5nZXNbaV0uc3RhcnQsIHJzLT5yYW5nZXNbaV0uZW5kKTsKK30KKworc3RhdGljIHZvaWQgZHVtcF9saW5lX2xvZ19kYXRhKHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyKQoreworCWNoYXIgYnVmWzQwOTZdOworCXdoaWxlIChyKSB7CisJCXNucHJpbnRmKGJ1ZiwgNDA5NiwgImZpbGUgJXNcbiIsIHItPnBhdGgpOworCQlkdW1wX3JhbmdlX3NldCgmci0+cmFuZ2VzLCBidWYpOworCQlyID0gci0+bmV4dDsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGR1bXBfZGlmZl9yYW5nZXMoc3RydWN0IGRpZmZfcmFuZ2VzICpkaWZmLCBjb25zdCBjaGFyICpkZXNjKQoreworCWludCBpOworCWFzc2VydChkaWZmLT5wYXJlbnQubnIgPT0gZGlmZi0+dGFyZ2V0Lm5yKTsKKwlwcmludGYoImRpZmYgcmFuZ2VzICVzICglZCBpdGVtcyk6XG4iLCBkZXNjLCBkaWZmLT5wYXJlbnQubnIpOworCXByaW50ZigiXHRwYXJlbnRcdHRhcmdldFxuIik7CisJZm9yIChpID0gMDsgaSA8IGRpZmYtPnBhcmVudC5ucjsgaSsrKSB7CisJCXByaW50ZigiXHRbJWxkLCVsZF1cdFslbGQsJWxkXVxuIiwKKwkJICAgICAgIGRpZmYtPnBhcmVudC5yYW5nZXNbaV0uc3RhcnQsCisJCSAgICAgICBkaWZmLT5wYXJlbnQucmFuZ2VzW2ldLmVuZCwKKwkJICAgICAgIGRpZmYtPnRhcmdldC5yYW5nZXNbaV0uc3RhcnQsCisJCSAgICAgICBkaWZmLT50YXJnZXQucmFuZ2VzW2ldLmVuZCk7CisJfQorfQorI2VuZGlmCisKKworc3RhdGljIGludCByYW5nZXNfb3ZlcmxhcChzdHJ1Y3QgcmFuZ2UgKmEsIHN0cnVjdCByYW5nZSAqYikKK3sKKwlyZXR1cm4gIShhLT5lbmQgPD0gYi0+c3RhcnQgfHwgYi0+ZW5kIDw9IGEtPnN0YXJ0KTsKK30KKworLyoKKyAqIEdpdmVuIGEgZGlmZiBhbmQgdGhlIHNldCBvZiBpbnRlcmVzdGluZyByYW5nZXMsIGRldGVybWluZSBhbGwgaHVua3MKKyAqIG9mIHRoZSBkaWZmIHdoaWNoIHRvdWNoIChvdmVybGFwKSBhdCBsZWFzdCBvbmUgb2YgdGhlIGludGVyZXN0aW5nCisgKiByYW5nZXMgaW4gdGhlIHRhcmdldC4KKyAqLworc3RhdGljIHZvaWQgZGlmZl9yYW5nZXNfZmlsdGVyX3RvdWNoZWQoc3RydWN0IGRpZmZfcmFuZ2VzICpvdXQsCisJCQkJICAgICAgIHN0cnVjdCBkaWZmX3JhbmdlcyAqZGlmZiwKKwkJCQkgICAgICAgc3RydWN0IHJhbmdlX3NldCAqcnMpCit7CisJaW50IGksIGogPSAwOworCisJYXNzZXJ0KG91dC0+dGFyZ2V0Lm5yID09IDApOworCisJZm9yIChpID0gMDsgaSA8IGRpZmYtPnRhcmdldC5ucjsgaSsrKSB7CisJCXdoaWxlIChkaWZmLT50YXJnZXQucmFuZ2VzW2ldLnN0YXJ0ID4gcnMtPnJhbmdlc1tqXS5lbmQpIHsKKwkJCWorKzsKKwkJCWlmIChqID09IHJzLT5ucikKKwkJCQlyZXR1cm47CisJCX0KKwkJaWYgKHJhbmdlc19vdmVybGFwKCZkaWZmLT50YXJnZXQucmFuZ2VzW2ldLCAmcnMtPnJhbmdlc1tqXSkpIHsKKwkJCXJhbmdlX3NldF9hcHBlbmQoJm91dC0+cGFyZW50LAorCQkJCQkgZGlmZi0+cGFyZW50LnJhbmdlc1tpXS5zdGFydCwKKwkJCQkJIGRpZmYtPnBhcmVudC5yYW5nZXNbaV0uZW5kKTsKKwkJCXJhbmdlX3NldF9hcHBlbmQoJm91dC0+dGFyZ2V0LAorCQkJCQkgZGlmZi0+dGFyZ2V0LnJhbmdlc1tpXS5zdGFydCwKKwkJCQkJIGRpZmYtPnRhcmdldC5yYW5nZXNbaV0uZW5kKTsKKwkJfQorCX0KK30KKworLyoKKyAqIEFkanVzdCB0aGUgbGluZSBjb3VudHMgaW4gJ3JzJyB0byBhY2NvdW50IGZvciB0aGUgbGluZXMKKyAqIGFkZGVkL3JlbW92ZWQgaW4gdGhlIGRpZmYuCisgKi8KK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9zaGlmdF9kaWZmKHN0cnVjdCByYW5nZV9zZXQgKm91dCwKKwkJCQkgc3RydWN0IHJhbmdlX3NldCAqcnMsCisJCQkJIHN0cnVjdCBkaWZmX3JhbmdlcyAqZGlmZikKK3sKKwlpbnQgaSwgaiA9IDA7CisJbG9uZyBvZmZzZXQgPSAwOworCXN0cnVjdCByYW5nZSAqc3JjID0gcnMtPnJhbmdlczsKKwlzdHJ1Y3QgcmFuZ2UgKnRhcmdldCA9IGRpZmYtPnRhcmdldC5yYW5nZXM7CisJc3RydWN0IHJhbmdlICpwYXJlbnQgPSBkaWZmLT5wYXJlbnQucmFuZ2VzOworCisJZm9yIChpID0gMDsgaSA8IHJzLT5ucjsgaSsrKSB7CisJCXdoaWxlIChqIDwgZGlmZi0+dGFyZ2V0Lm5yICYmIHNyY1tpXS5zdGFydCA+PSB0YXJnZXRbal0uc3RhcnQpIHsKKwkJCW9mZnNldCArPSAocGFyZW50W2pdLmVuZC1wYXJlbnRbal0uc3RhcnQpCisJCQkJLSAodGFyZ2V0W2pdLmVuZC10YXJnZXRbal0uc3RhcnQpOworCQkJaisrOworCQl9CisJCXJhbmdlX3NldF9hcHBlbmQob3V0LCBzcmNbaV0uc3RhcnQrb2Zmc2V0LCBzcmNbaV0uZW5kK29mZnNldCk7CisJfQorfQorCisvKgorICogR2l2ZW4gYSBkaWZmIGFuZCB0aGUgc2V0IG9mIGludGVyZXN0aW5nIHJhbmdlcywgbWFwIHRoZSByYW5nZXMKKyAqIGFjcm9zcyB0aGUgZGlmZi4gIFRoYXQgaXM6IG9ic2VydmUgdGhhdCB0aGUgdGFyZ2V0IGNvbW1pdCB0YWtlcworICogYmxhbWUgZm9yIGFsbCB0aGUgKyAodGFyZ2V0LXNpZGUpIHJhbmdlcy4gIFNvIGZvciBldmVyeSBwYWlyIG9mCisgKiByYW5nZXMgaW4gdGhlIGRpZmYgdGhhdCB3YXMgdG91Y2hlZCwgd2UgcmVtb3ZlIHRoZSBsYXR0ZXIgYW5kIGFkZAorICogaXRzIHBhcmVudCBzaWRlLgorICovCitzdGF0aWMgdm9pZCByYW5nZV9zZXRfbWFwX2Fjcm9zc19kaWZmKHN0cnVjdCByYW5nZV9zZXQgKm91dCwKKwkJCQkgICAgICBzdHJ1Y3QgcmFuZ2Vfc2V0ICpycywKKwkJCQkgICAgICBzdHJ1Y3QgZGlmZl9yYW5nZXMgKmRpZmYsCisJCQkJICAgICAgc3RydWN0IGRpZmZfcmFuZ2VzICoqdG91Y2hlZF9vdXQpCit7CisJc3RydWN0IGRpZmZfcmFuZ2VzICp0b3VjaGVkID0geG1hbGxvYyhzaXplb2YoKnRvdWNoZWQpKTsKKwlzdHJ1Y3QgcmFuZ2Vfc2V0IHRtcDEgPSBSQU5HRV9TRVRfSU5JVDsKKwlzdHJ1Y3QgcmFuZ2Vfc2V0IHRtcDIgPSBSQU5HRV9TRVRfSU5JVDsKKworCWRpZmZfcmFuZ2VzX2luaXQodG91Y2hlZCk7CisJZGlmZl9yYW5nZXNfZmlsdGVyX3RvdWNoZWQodG91Y2hlZCwgZGlmZiwgcnMpOworCXJhbmdlX3NldF9kaWZmZXJlbmNlKCZ0bXAxLCBycywgJnRvdWNoZWQtPnRhcmdldCk7CisJcmFuZ2Vfc2V0X3NoaWZ0X2RpZmYoJnRtcDIsICZ0bXAxLCBkaWZmKTsKKwlyYW5nZV9zZXRfdW5pb24ob3V0LCAmdG1wMiwgJnRvdWNoZWQtPnBhcmVudCk7CisJcmFuZ2Vfc2V0X3JlbGVhc2UoJnRtcDEpOworCXJhbmdlX3NldF9yZWxlYXNlKCZ0bXAyKTsKKworCSp0b3VjaGVkX291dCA9IHRvdWNoZWQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY29tbWl0ICpjaGVja19zaW5nbGVfY29tbWl0KHN0cnVjdCByZXZfaW5mbyAqcmV2cykKK3sKKwlzdHJ1Y3Qgb2JqZWN0ICpjb21taXQgPSBOVUxMOworCWludCBmb3VuZCA9IC0xOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHJldnMtPnBlbmRpbmcubnI7IGkrKykgeworCQlzdHJ1Y3Qgb2JqZWN0ICpvYmogPSByZXZzLT5wZW5kaW5nLm9iamVjdHNbaV0uaXRlbTsKKwkJaWYgKG9iai0+ZmxhZ3MgJiBVTklOVEVSRVNUSU5HKQorCQkJY29udGludWU7CisJCXdoaWxlIChvYmotPnR5cGUgPT0gT0JKX1RBRykKKwkJCW9iaiA9IGRlcmVmX3RhZyhvYmosIE5VTEwsIDApOworCQlpZiAob2JqLT50eXBlICE9IE9CSl9DT01NSVQpCisJCQlkaWUoIk5vbiBjb21taXQgJXM/IiwgcmV2cy0+cGVuZGluZy5vYmplY3RzW2ldLm5hbWUpOworCQlpZiAoY29tbWl0KQorCQkJZGllKCJNb3JlIHRoYW4gb25lIGNvbW1pdCB0byBkaWcgZnJvbTogJXMgYW5kICVzPyIsCisJCQkgICAgcmV2cy0+cGVuZGluZy5vYmplY3RzW2ldLm5hbWUsCisJCQkgICAgcmV2cy0+cGVuZGluZy5vYmplY3RzW2ZvdW5kXS5uYW1lKTsKKwkJY29tbWl0ID0gb2JqOworCQlmb3VuZCA9IGk7CisJfQorCisJaWYgKCFjb21taXQpCisJCWRpZSgiTm8gY29tbWl0IHNwZWNpZmllZD8iKTsKKworCXJldHVybiAoc3RydWN0IGNvbW1pdCAqKSBjb21taXQ7Cit9CisKK3N0YXRpYyB2b2lkIGZpbGxfYmxvYl9zaGExKHN0cnVjdCBjb21taXQgKmNvbW1pdCwgc3RydWN0IGRpZmZfZmlsZXNwZWMgKnNwZWMpCit7CisJdW5zaWduZWQgbW9kZTsKKwl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOworCisJaWYgKGdldF90cmVlX2VudHJ5KGNvbW1pdC0+b2JqZWN0LnNoYTEsIHNwZWMtPnBhdGgsCisJCQkgICBzaGExLCAmbW9kZSkpCisJCWRpZSgiVGhlcmUgaXMgbm8gcGF0aCAlcyBpbiB0aGUgY29tbWl0Iiwgc3BlYy0+cGF0aCk7CisJZmlsbF9maWxlc3BlYyhzcGVjLCBzaGExLCAxLCBtb2RlKTsKKworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgZmlsbF9saW5lX2VuZHMoc3RydWN0IGRpZmZfZmlsZXNwZWMgKnNwZWMsIGxvbmcgKmxpbmVzLAorCQkJICAgdW5zaWduZWQgbG9uZyAqKmxpbmVfZW5kcykKK3sKKwlpbnQgbnVtID0gMCwgc2l6ZSA9IDUwOworCWxvbmcgY3VyID0gMDsKKwl1bnNpZ25lZCBsb25nICplbmRzID0gTlVMTDsKKwljaGFyICpkYXRhID0gTlVMTDsKKworCWlmIChkaWZmX3BvcHVsYXRlX2ZpbGVzcGVjKHNwZWMsIDApKQorCQlkaWUoIkNhbm5vdCByZWFkIGJsb2IgJXMiLCBzaGExX3RvX2hleChzcGVjLT5zaGExKSk7CisKKwllbmRzID0geG1hbGxvYyhzaXplICogc2l6ZW9mKCplbmRzKSk7CisJZW5kc1tjdXIrK10gPSAwOworCWRhdGEgPSBzcGVjLT5kYXRhOworCXdoaWxlIChudW0gPCBzcGVjLT5zaXplKSB7CisJCWlmIChkYXRhW251bV0gPT0gJ1xuJyB8fCBudW0gPT0gc3BlYy0+c2l6ZSAtIDEpIHsKKwkJCUFMTE9DX0dST1coZW5kcywgKGN1ciArIDEpLCBzaXplKTsKKwkJCWVuZHNbY3VyKytdID0gbnVtOworCQl9CisJCW51bSsrOworCX0KKworCS8qIHNocmluayB0aGUgYXJyYXkgdG8gZml0IHRoZSBlbGVtZW50cyAqLworCWVuZHMgPSB4cmVhbGxvYyhlbmRzLCBjdXIgKiBzaXplb2YoKmVuZHMpKTsKKwkqbGluZXMgPSBjdXItMTsKKwkqbGluZV9lbmRzID0gZW5kczsKK30KKworc3RydWN0IG50aF9saW5lX2NiIHsKKwlzdHJ1Y3QgZGlmZl9maWxlc3BlYyAqc3BlYzsKKwlsb25nIGxpbmVzOworCXVuc2lnbmVkIGxvbmcgKmxpbmVfZW5kczsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpudGhfbGluZSh2b2lkICpkYXRhLCBsb25nIGxpbmUpCit7CisJc3RydWN0IG50aF9saW5lX2NiICpkID0gZGF0YTsKKwlhc3NlcnQoZCAmJiBsaW5lIDw9IGQtPmxpbmVzKTsKKwlhc3NlcnQoZC0+c3BlYyAmJiBkLT5zcGVjLT5kYXRhKTsKKworCWlmIChsaW5lID09IDApCisJCXJldHVybiAoY2hhciAqKWQtPnNwZWMtPmRhdGE7CisJZWxzZQorCQlyZXR1cm4gKGNoYXIgKilkLT5zcGVjLT5kYXRhICsgZC0+bGluZV9lbmRzW2xpbmVdICsgMTsKK30KKworc3RhdGljIHN0cnVjdCBsaW5lX2xvZ19kYXRhICoKK3BhcnNlX2xpbmVzKHN0cnVjdCBjb21taXQgKmNvbW1pdCwgY29uc3QgY2hhciAqcHJlZml4LCBzdHJ1Y3Qgc3RyaW5nX2xpc3QgKmFyZ3MpCit7CisJbG9uZyBsaW5lcyA9IDA7CisJdW5zaWduZWQgbG9uZyAqZW5kcyA9IE5VTEw7CisJc3RydWN0IG50aF9saW5lX2NiIGNiX2RhdGE7CisJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW07CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlcyA9IE5VTEw7CisKKwlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sIGFyZ3MpIHsKKwkJY29uc3QgY2hhciAqbmFtZV9wYXJ0LCAqcmFuZ2VfcGFydDsKKwkJY2hhciAqZnVsbF9uYW1lOworCQlzdHJ1Y3QgZGlmZl9maWxlc3BlYyAqc3BlYzsKKwkJbG9uZyBiZWdpbiA9IDAsIGVuZCA9IDA7CisKKwkJbmFtZV9wYXJ0ID0gc2tpcF9yYW5nZV9hcmcoaXRlbS0+c3RyaW5nKTsKKwkJaWYgKCFuYW1lX3BhcnQgfHwgKm5hbWVfcGFydCAhPSAnOicgfHwgIW5hbWVfcGFydFsxXSkKKwkJCWRpZSgiLUwgYXJndW1lbnQgJyVzJyBub3Qgb2YgdGhlIGZvcm0gc3RhcnQsZW5kOmZpbGUiLAorCQkJICAgIGl0ZW0tPnN0cmluZyk7CisJCXJhbmdlX3BhcnQgPSB4c3RybmR1cChpdGVtLT5zdHJpbmcsIG5hbWVfcGFydCAtIGl0ZW0tPnN0cmluZyk7CisJCW5hbWVfcGFydCsrOworCisJCWZ1bGxfbmFtZSA9IHByZWZpeF9wYXRoKHByZWZpeCwgcHJlZml4ID8gc3RybGVuKHByZWZpeCkgOiAwLAorCQkJCQluYW1lX3BhcnQpOworCisJCXNwZWMgPSBhbGxvY19maWxlc3BlYyhmdWxsX25hbWUpOworCQlmaWxsX2Jsb2Jfc2hhMShjb21taXQsIHNwZWMpOworCQlmaWxsX2xpbmVfZW5kcyhzcGVjLCAmbGluZXMsICZlbmRzKTsKKwkJY2JfZGF0YS5zcGVjID0gc3BlYzsKKwkJY2JfZGF0YS5saW5lcyA9IGxpbmVzOworCQljYl9kYXRhLmxpbmVfZW5kcyA9IGVuZHM7CisKKwkJaWYgKHBhcnNlX3JhbmdlX2FyZyhyYW5nZV9wYXJ0LCBudGhfbGluZSwgJmNiX2RhdGEsCisJCQkJICAgIGxpbmVzLCAmYmVnaW4sICZlbmQsCisJCQkJICAgIGZ1bGxfbmFtZSkpCisJCQlkaWUoIm1hbGZvcm1lZCAtTCBhcmd1bWVudCAnJXMnIiwgcmFuZ2VfcGFydCk7CisJCWlmIChiZWdpbiA8IDEpCisJCQliZWdpbiA9IDE7CisJCWlmIChlbmQgPCAxKQorCQkJZW5kID0gbGluZXM7CisJCWJlZ2luLS07CisJCWlmIChsaW5lcyA8IGVuZCB8fCBsaW5lcyA8IGJlZ2luKQorCQkJZGllKCJmaWxlICVzIGhhcyBvbmx5ICVsZCBsaW5lcyIsIG5hbWVfcGFydCwgbGluZXMpOworCQlsaW5lX2xvZ19kYXRhX2luc2VydCgmcmFuZ2VzLCBmdWxsX25hbWUsIGJlZ2luLCBlbmQpOworCisJCWZyZWVfZmlsZXNwZWMoc3BlYyk7CisJCWZyZWUoZW5kcyk7CisJCWVuZHMgPSBOVUxMOworCX0KKworCXJldHVybiByYW5nZXM7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqbGluZV9sb2dfZGF0YV9jb3B5X29uZShzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcikKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmV0ID0geG1hbGxvYyhzaXplb2YoKnJldCkpOworCisJYXNzZXJ0KHIpOworCWxpbmVfbG9nX2RhdGFfaW5pdChyZXQpOworCXJhbmdlX3NldF9jb3B5KCZyZXQtPnJhbmdlcywgJnItPnJhbmdlcyk7CisKKwlyZXQtPnBhdGggPSB4c3RyZHVwKHItPnBhdGgpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHN0cnVjdCBsaW5lX2xvZ19kYXRhICoKK2xpbmVfbG9nX2RhdGFfY29weShzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcikKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmV0ID0gTlVMTDsKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqdG1wID0gTlVMTCwgKnByZXYgPSBOVUxMOworCisJYXNzZXJ0KHIpOworCXJldCA9IHRtcCA9IHByZXYgPSBsaW5lX2xvZ19kYXRhX2NvcHlfb25lKHIpOworCXIgPSByLT5uZXh0OworCXdoaWxlIChyKSB7CisJCXRtcCA9IGxpbmVfbG9nX2RhdGFfY29weV9vbmUocik7CisJCXByZXYtPm5leHQgPSB0bXA7CisJCXByZXYgPSB0bXA7CisJCXIgPSByLT5uZXh0OworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qIG1lcmdlIHR3byByYW5nZSBzZXRzIGFjcm9zcyBmaWxlcyAqLworc3RhdGljIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpsaW5lX2xvZ19kYXRhX21lcmdlKHN0cnVjdCBsaW5lX2xvZ19kYXRhICphLAorCQkJCQkJIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpiKQoreworCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpoZWFkID0gTlVMTCwgKipwcCA9ICZoZWFkOworCisJd2hpbGUgKGEgfHwgYikgeworCQlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqc3JjOworCQlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqc3JjMiA9IE5VTEw7CisJCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpkOworCQlpbnQgY21wOworCQlpZiAoIWEpCisJCQljbXAgPSAxOworCQllbHNlIGlmICghYikKKwkJCWNtcCA9IC0xOworCQllbHNlCisJCQljbXAgPSBzdHJjbXAoYS0+cGF0aCwgYi0+cGF0aCk7CisJCWlmIChjbXAgPCAwKSB7CisJCQlzcmMgPSBhOworCQkJYSA9IGEtPm5leHQ7CisJCX0gZWxzZSBpZiAoY21wID09IDApIHsKKwkJCXNyYyA9IGE7CisJCQlhID0gYS0+bmV4dDsKKwkJCXNyYzIgPSBiOworCQkJYiA9IGItPm5leHQ7CisJCX0gZWxzZSB7CisJCQlzcmMgPSBiOworCQkJYiA9IGItPm5leHQ7CisJCX0KKwkJZCA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBsaW5lX2xvZ19kYXRhKSk7CisJCWxpbmVfbG9nX2RhdGFfaW5pdChkKTsKKwkJZC0+cGF0aCA9IHhzdHJkdXAoc3JjLT5wYXRoKTsKKwkJKnBwID0gZDsKKwkJcHAgPSAmZC0+bmV4dDsKKwkJaWYgKHNyYzIpCisJCQlyYW5nZV9zZXRfdW5pb24oJmQtPnJhbmdlcywgJnNyYy0+cmFuZ2VzLCAmc3JjMi0+cmFuZ2VzKTsKKwkJZWxzZQorCQkJcmFuZ2Vfc2V0X2NvcHkoJmQtPnJhbmdlcywgJnNyYy0+cmFuZ2VzKTsKKwl9CisKKwlyZXR1cm4gaGVhZDsKK30KKworc3RhdGljIHZvaWQgYWRkX2xpbmVfcmFuZ2Uoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQsCisJCQkgICBzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UpCit7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKm9sZCA9IE5VTEw7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKm5ldyA9IE5VTEw7CisKKwlvbGQgPSBsb29rdXBfZGVjb3JhdGlvbigmcmV2cy0+bGluZV9sb2dfZGF0YSwgJmNvbW1pdC0+b2JqZWN0KTsKKwlpZiAob2xkICYmIHJhbmdlKSB7CisJCW5ldyA9IGxpbmVfbG9nX2RhdGFfbWVyZ2Uob2xkLCByYW5nZSk7CisJCWZyZWVfbGluZV9sb2dfZGF0YShvbGQpOworCX0gZWxzZSBpZiAocmFuZ2UpCisJCW5ldyA9IGxpbmVfbG9nX2RhdGFfY29weShyYW5nZSk7CisKKwlpZiAobmV3KQorCQlhZGRfZGVjb3JhdGlvbigmcmV2cy0+bGluZV9sb2dfZGF0YSwgJmNvbW1pdC0+b2JqZWN0LCBuZXcpOworfQorCitzdGF0aWMgdm9pZCBjbGVhcl9jb21taXRfbGluZV9yYW5nZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcjsKKwlyID0gbG9va3VwX2RlY29yYXRpb24oJnJldnMtPmxpbmVfbG9nX2RhdGEsICZjb21taXQtPm9iamVjdCk7CisJaWYgKCFyKQorCQlyZXR1cm47CisJZnJlZV9saW5lX2xvZ19kYXRhKHIpOworCWFkZF9kZWNvcmF0aW9uKCZyZXZzLT5saW5lX2xvZ19kYXRhLCAmY29tbWl0LT5vYmplY3QsIE5VTEwpOworfQorCitzdGF0aWMgc3RydWN0IGxpbmVfbG9nX2RhdGEgKmxvb2t1cF9saW5lX3JhbmdlKHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCQkJICAgICAgIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmV0ID0gTlVMTDsKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqZDsKKworCXJldCA9IGxvb2t1cF9kZWNvcmF0aW9uKCZyZXZzLT5saW5lX2xvZ19kYXRhLCAmY29tbWl0LT5vYmplY3QpOworCisJZm9yIChkID0gcmV0OyBkOyBkID0gZC0+bmV4dCkKKwkJcmFuZ2Vfc2V0X2NoZWNrX2ludmFyaWFudHMoJmQtPnJhbmdlcyk7CisKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGxpbmVfbG9nX2luaXQoc3RydWN0IHJldl9pbmZvICpyZXYsIGNvbnN0IGNoYXIgKnByZWZpeCwgc3RydWN0IHN0cmluZ19saXN0ICphcmdzKQoreworCXN0cnVjdCBjb21taXQgKmNvbW1pdCA9IE5VTEw7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlOworCisJY29tbWl0ID0gY2hlY2tfc2luZ2xlX2NvbW1pdChyZXYpOworCXJhbmdlID0gcGFyc2VfbGluZXMoY29tbWl0LCBwcmVmaXgsIGFyZ3MpOworCWFkZF9saW5lX3JhbmdlKHJldiwgY29tbWl0LCByYW5nZSk7CisKKwlpZiAoIXJldi0+ZGlmZm9wdC5kZXRlY3RfcmVuYW1lKSB7CisJCWludCBpLCBjb3VudCA9IDA7CisJCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpyID0gcmFuZ2U7CisJCWNvbnN0IGNoYXIgKipwYXRoczsKKwkJd2hpbGUgKHIpIHsKKwkJCWNvdW50Kys7CisJCQlyID0gci0+bmV4dDsKKwkJfQorCQlwYXRocyA9IHhtYWxsb2MoKGNvdW50KzEpKnNpemVvZihjaGFyICopKTsKKwkJciA9IHJhbmdlOworCQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworCQkJcGF0aHNbaV0gPSB4c3RyZHVwKHItPnBhdGgpOworCQkJciA9IHItPm5leHQ7CisJCX0KKwkJcGF0aHNbY291bnRdID0gTlVMTDsKKwkJaW5pdF9wYXRoc3BlYygmcmV2LT5kaWZmb3B0LnBhdGhzcGVjLCBwYXRocyk7CisJCWZyZWUocGF0aHMpOworCX0KK30KKworc3RhdGljIHZvaWQgbG9hZF90cmVlX2Rlc2Moc3RydWN0IHRyZWVfZGVzYyAqZGVzYywgdm9pZCAqKnRyZWUsCisJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQoreworCXVuc2lnbmVkIGxvbmcgc2l6ZTsKKwkqdHJlZSA9IHJlYWRfb2JqZWN0X3dpdGhfcmVmZXJlbmNlKHNoYTEsIHRyZWVfdHlwZSwgJnNpemUsIE5VTEwpOworCWlmICghKnRyZWUpCisJCWRpZSgiVW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIiwgc2hhMV90b19oZXgoc2hhMSkpOworCWluaXRfdHJlZV9kZXNjKGRlc2MsICp0cmVlLCBzaXplKTsKK30KKworc3RhdGljIGludCBjb3VudF9wYXJlbnRzKHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKnBhcmVudHMgPSBjb21taXQtPnBhcmVudHM7CisJaW50IGNvdW50ID0gMDsKKwl3aGlsZSAocGFyZW50cykgeworCQljb3VudCsrOworCQlwYXJlbnRzID0gcGFyZW50cy0+bmV4dDsKKwl9CisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgdm9pZCBtb3ZlX2RpZmZfcXVldWUoc3RydWN0IGRpZmZfcXVldWVfc3RydWN0ICpkc3QsCisJCQkgICAgc3RydWN0IGRpZmZfcXVldWVfc3RydWN0ICpzcmMpCit7CisJYXNzZXJ0KHNyYyAhPSBkc3QpOworCW1lbWNweShkc3QsIHNyYywgc2l6ZW9mKHN0cnVjdCBkaWZmX3F1ZXVlX3N0cnVjdCkpOworCURJRkZfUVVFVUVfQ0xFQVIoc3JjKTsKK30KKworc3RhdGljIHZvaWQgZmlsdGVyX2RpZmZzX2Zvcl9wYXRocyhzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UsIGludCBrZWVwX2RlbGV0aW9ucykKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgZGlmZl9xdWV1ZV9zdHJ1Y3Qgb3V0cTsKKwlESUZGX1FVRVVFX0NMRUFSKCZvdXRxKTsKKworCWZvciAoaSA9IDA7IGkgPCBkaWZmX3F1ZXVlZF9kaWZmLm5yOyBpKyspIHsKKwkJc3RydWN0IGRpZmZfZmlsZXBhaXIgKnAgPSBkaWZmX3F1ZXVlZF9kaWZmLnF1ZXVlW2ldOworCQlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmcgPSBOVUxMOworCisJCWlmICghRElGRl9GSUxFX1ZBTElEKHAtPnR3bykpIHsKKwkJCWlmIChrZWVwX2RlbGV0aW9ucykKKwkJCQlkaWZmX3EoJm91dHEsIHApOworCQkJZWxzZQorCQkJCWRpZmZfZnJlZV9maWxlcGFpcihwKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWZvciAocmcgPSByYW5nZTsgcmc7IHJnID0gcmctPm5leHQpIHsKKwkJCWlmICghc3RyY21wKHJnLT5wYXRoLCBwLT50d28tPnBhdGgpKQorCQkJCWJyZWFrOworCQl9CisJCWlmIChyZykKKwkJCWRpZmZfcSgmb3V0cSwgcCk7CisJCWVsc2UKKwkJCWRpZmZfZnJlZV9maWxlcGFpcihwKTsKKwl9CisJZnJlZShkaWZmX3F1ZXVlZF9kaWZmLnF1ZXVlKTsKKwlkaWZmX3F1ZXVlZF9kaWZmID0gb3V0cTsKK30KKworc3RhdGljIGlubGluZSBpbnQgZGlmZl9taWdodF9iZV9yZW5hbWUodm9pZCkKK3sKKwlpbnQgaTsKKwlmb3IgKGkgPSAwOyBpIDwgZGlmZl9xdWV1ZWRfZGlmZi5ucjsgaSsrKQorCQlpZiAoIURJRkZfRklMRV9WQUxJRChkaWZmX3F1ZXVlZF9kaWZmLnF1ZXVlW2ldLT5vbmUpKSB7CisJCQkvKiBmcHJpbnRmKHN0ZGVyciwgImRpZmZfbWlnaHRfYmVfcmVuYW1lIGZvdW5kIGNyZWF0aW9uIG9mOiAlc1xuIiwgKi8KKwkJCS8qIAlkaWZmX3F1ZXVlZF9kaWZmLnF1ZXVlW2ldLT50d28tPnBhdGgpOyAqLworCQkJcmV0dXJuIDE7CisJCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcXVldWVfZGlmZnMoc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlLAorCQkJc3RydWN0IGRpZmZfb3B0aW9ucyAqb3B0LAorCQkJc3RydWN0IGRpZmZfcXVldWVfc3RydWN0ICpxdWV1ZSwKKwkJCXN0cnVjdCBjb21taXQgKmNvbW1pdCwgc3RydWN0IGNvbW1pdCAqcGFyZW50KQoreworCXZvaWQgKnRyZWUxID0gTlVMTCwgKnRyZWUyID0gTlVMTDsKKwlzdHJ1Y3QgdHJlZV9kZXNjIGRlc2MxLCBkZXNjMjsKKworCWFzc2VydChjb21taXQpOworCWxvYWRfdHJlZV9kZXNjKCZkZXNjMiwgJnRyZWUyLCBjb21taXQtPnRyZWUtPm9iamVjdC5zaGExKTsKKwlpZiAocGFyZW50KQorCQlsb2FkX3RyZWVfZGVzYygmZGVzYzEsICZ0cmVlMSwgcGFyZW50LT50cmVlLT5vYmplY3Quc2hhMSk7CisJZWxzZQorCQlpbml0X3RyZWVfZGVzYygmZGVzYzEsICIiLCAwKTsKKworCURJRkZfUVVFVUVfQ0xFQVIoJmRpZmZfcXVldWVkX2RpZmYpOworCWRpZmZfdHJlZSgmZGVzYzEsICZkZXNjMiwgIiIsIG9wdCk7CisJaWYgKG9wdC0+ZGV0ZWN0X3JlbmFtZSkgeworCQlmaWx0ZXJfZGlmZnNfZm9yX3BhdGhzKHJhbmdlLCAxKTsKKwkJaWYgKGRpZmZfbWlnaHRfYmVfcmVuYW1lKCkpCisJCQlkaWZmY29yZV9zdGQob3B0KTsKKwkJZmlsdGVyX2RpZmZzX2Zvcl9wYXRocyhyYW5nZSwgMCk7CisJfQorCW1vdmVfZGlmZl9xdWV1ZShxdWV1ZSwgJmRpZmZfcXVldWVkX2RpZmYpOworCisJaWYgKHRyZWUxKQorCQlmcmVlKHRyZWUxKTsKKwlpZiAodHJlZTIpCisJCWZyZWUodHJlZTIpOworfQorCitzdGF0aWMgY2hhciAqZ2V0X250aF9saW5lKGxvbmcgbGluZSwgdW5zaWduZWQgbG9uZyAqZW5kcywgdm9pZCAqZGF0YSkKK3sKKwlpZiAobGluZSA9PSAwKQorCQlyZXR1cm4gKGNoYXIgKilkYXRhOworCWVsc2UKKwkJcmV0dXJuIChjaGFyICopZGF0YSArIGVuZHNbbGluZV0gKyAxOworfQorCitzdGF0aWMgdm9pZCBwcmludF9saW5lKGNvbnN0IGNoYXIgKnByZWZpeCwgY2hhciBmaXJzdCwKKwkJICAgICAgIGxvbmcgbGluZSwgdW5zaWduZWQgbG9uZyAqZW5kcywgdm9pZCAqZGF0YSwKKwkJICAgICAgIGNvbnN0IGNoYXIgKmNvbG9yLCBjb25zdCBjaGFyICpyZXNldCkKK3sKKwljaGFyICpiZWdpbiA9IGdldF9udGhfbGluZShsaW5lLCBlbmRzLCBkYXRhKTsKKwljaGFyICplbmQgPSBnZXRfbnRoX2xpbmUobGluZSsxLCBlbmRzLCBkYXRhKTsKKwlpbnQgaGFkX25sID0gMDsKKworCWlmIChlbmQgPiBiZWdpbiAmJiBlbmRbLTFdID09ICdcbicpIHsKKwkJZW5kLS07CisJCWhhZF9ubCA9IDE7CisJfQorCisJZnB1dHMocHJlZml4LCBzdGRvdXQpOworCWZwdXRzKGNvbG9yLCBzdGRvdXQpOworCXB1dGNoYXIoZmlyc3QpOworCWZ3cml0ZShiZWdpbiwgMSwgZW5kLWJlZ2luLCBzdGRvdXQpOworCWZwdXRzKHJlc2V0LCBzdGRvdXQpOworCXB1dGNoYXIoJ1xuJyk7CisJaWYgKCFoYWRfbmwpCisJCWZwdXRzKCJcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlXG4iLCBzdGRvdXQpOworfQorCitzdGF0aWMgY2hhciAqb3V0cHV0X3ByZWZpeChzdHJ1Y3QgZGlmZl9vcHRpb25zICpvcHQpCit7CisJY2hhciAqcHJlZml4ID0gIiI7CisKKwlpZiAob3B0LT5vdXRwdXRfcHJlZml4KSB7CisJCXN0cnVjdCBzdHJidWYgKnNiID0gb3B0LT5vdXRwdXRfcHJlZml4KG9wdCwgb3B0LT5vdXRwdXRfcHJlZml4X2RhdGEpOworCQlwcmVmaXggPSBzYi0+YnVmOworCX0KKworCXJldHVybiBwcmVmaXg7Cit9CisKK3N0YXRpYyB2b2lkIGR1bXBfZGlmZl9oYWNreV9vbmUoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyYW5nZSkKK3sKKwlpbnQgaSwgaiA9IDA7CisJbG9uZyBwX2xpbmVzLCB0X2xpbmVzOworCXVuc2lnbmVkIGxvbmcgKnBfZW5kcyA9IE5VTEwsICp0X2VuZHMgPSBOVUxMOworCXN0cnVjdCBkaWZmX2ZpbGVwYWlyICpwYWlyID0gcmFuZ2UtPnBhaXI7CisJc3RydWN0IGRpZmZfcmFuZ2VzICpkaWZmID0gJnJhbmdlLT5kaWZmOworCisJc3RydWN0IGRpZmZfb3B0aW9ucyAqb3B0ID0gJnJldi0+ZGlmZm9wdDsKKwljaGFyICpwcmVmaXggPSBvdXRwdXRfcHJlZml4KG9wdCk7CisJY29uc3QgY2hhciAqY19yZXNldCA9IGRpZmZfZ2V0X2NvbG9yKG9wdC0+dXNlX2NvbG9yLCBESUZGX1JFU0VUKTsKKwljb25zdCBjaGFyICpjX2ZyYWcgPSBkaWZmX2dldF9jb2xvcihvcHQtPnVzZV9jb2xvciwgRElGRl9GUkFHSU5GTyk7CisJY29uc3QgY2hhciAqY19tZXRhID0gZGlmZl9nZXRfY29sb3Iob3B0LT51c2VfY29sb3IsIERJRkZfTUVUQUlORk8pOworCWNvbnN0IGNoYXIgKmNfb2xkID0gZGlmZl9nZXRfY29sb3Iob3B0LT51c2VfY29sb3IsIERJRkZfRklMRV9PTEQpOworCWNvbnN0IGNoYXIgKmNfbmV3ID0gZGlmZl9nZXRfY29sb3Iob3B0LT51c2VfY29sb3IsIERJRkZfRklMRV9ORVcpOworCWNvbnN0IGNoYXIgKmNfcGxhaW4gPSBkaWZmX2dldF9jb2xvcihvcHQtPnVzZV9jb2xvciwgRElGRl9QTEFJTik7CisKKwlpZiAoIXBhaXIgfHwgIWRpZmYpCisJCXJldHVybjsKKworCWlmIChwYWlyLT5vbmUtPnNoYTFfdmFsaWQpCisJCWZpbGxfbGluZV9lbmRzKHBhaXItPm9uZSwgJnBfbGluZXMsICZwX2VuZHMpOworCWZpbGxfbGluZV9lbmRzKHBhaXItPnR3bywgJnRfbGluZXMsICZ0X2VuZHMpOworCisJcHJpbnRmKCIlcyVzZGlmZiAtLWdpdCBhLyVzIGIvJXMlc1xuIiwgcHJlZml4LCBjX21ldGEsIHBhaXItPm9uZS0+cGF0aCwgcGFpci0+dHdvLT5wYXRoLCBjX3Jlc2V0KTsKKwlwcmludGYoIiVzJXMtLS0gJXMlcyVzXG4iLCBwcmVmaXgsIGNfbWV0YSwKKwkgICAgICAgcGFpci0+b25lLT5zaGExX3ZhbGlkID8gImEvIiA6ICIiLAorCSAgICAgICBwYWlyLT5vbmUtPnNoYTFfdmFsaWQgPyBwYWlyLT5vbmUtPnBhdGggOiAiL2Rldi9udWxsIiwKKwkgICAgICAgY19yZXNldCk7CisJcHJpbnRmKCIlcyVzKysrIGIvJXMlc1xuIiwgcHJlZml4LCBjX21ldGEsIHBhaXItPnR3by0+cGF0aCwgY19yZXNldCk7CisJZm9yIChpID0gMDsgaSA8IHJhbmdlLT5yYW5nZXMubnI7IGkrKykgeworCQlsb25nIHBfc3RhcnQsIHBfZW5kOworCQlsb25nIHRfc3RhcnQgPSByYW5nZS0+cmFuZ2VzLnJhbmdlc1tpXS5zdGFydDsKKwkJbG9uZyB0X2VuZCA9IHJhbmdlLT5yYW5nZXMucmFuZ2VzW2ldLmVuZDsKKwkJbG9uZyB0X2N1ciA9IHRfc3RhcnQ7CisJCWludCBqX2xhc3Q7CisKKwkJd2hpbGUgKGogPCBkaWZmLT50YXJnZXQubnIgJiYgZGlmZi0+dGFyZ2V0LnJhbmdlc1tqXS5lbmQgPCB0X3N0YXJ0KQorCQkJaisrOworCQlpZiAoaiA9PSBkaWZmLT50YXJnZXQubnIgfHwgZGlmZi0+dGFyZ2V0LnJhbmdlc1tqXS5zdGFydCA+IHRfZW5kKQorCQkJY29udGludWU7CisKKwkJLyogU2NhbiBhaGVhZCB0byBkZXRlcm1pbmUgdGhlIGxhc3QgZGlmZiB0aGF0IGZhbGxzIGluIHRoaXMgcmFuZ2UgKi8KKwkJal9sYXN0ID0gajsKKwkJd2hpbGUgKGpfbGFzdCA8IGRpZmYtPnRhcmdldC5uciAmJiBkaWZmLT50YXJnZXQucmFuZ2VzW2pfbGFzdF0uc3RhcnQgPCB0X2VuZCkKKwkJCWpfbGFzdCsrOworCQlpZiAoal9sYXN0ID4gaikKKwkJCWpfbGFzdC0tOworCisJCS8qCisJCSAqIENvbXB1dGUgcGFyZW50IGh1bmsgaGVhZGVyczogd2Uga25vdyB0aGF0IHRoZSBkaWZmCisJCSAqIGhhcyB0aGUgY29ycmVjdCBsaW5lIG51bWJlcnMgKGJ1dCBub3QgYWxsIGh1bmtzKS4KKwkJICogU28gaXQgc3VmZmljZXMgdG8gc2hpZnQgdGhlIHN0YXJ0L2VuZCBhY2NvcmRpbmcgdG8KKwkJICogdGhlIGxpbmUgbnVtYmVycyBvZiB0aGUgZmlyc3QvbGFzdCBodW5rKHMpIHRoYXQKKwkJICogZmFsbCBpbiB0aGlzIHJhbmdlLgorCQkgKi8KKwkJaWYgKHRfc3RhcnQgPCBkaWZmLT50YXJnZXQucmFuZ2VzW2pdLnN0YXJ0KQorCQkJcF9zdGFydCA9IGRpZmYtPnBhcmVudC5yYW5nZXNbal0uc3RhcnQgLSAoZGlmZi0+dGFyZ2V0LnJhbmdlc1tqXS5zdGFydC10X3N0YXJ0KTsKKwkJZWxzZQorCQkJcF9zdGFydCA9IGRpZmYtPnBhcmVudC5yYW5nZXNbal0uc3RhcnQ7CisJCWlmICh0X2VuZCA+IGRpZmYtPnRhcmdldC5yYW5nZXNbal9sYXN0XS5lbmQpCisJCQlwX2VuZCA9IGRpZmYtPnBhcmVudC5yYW5nZXNbal9sYXN0XS5lbmQgKyAodF9lbmQtZGlmZi0+dGFyZ2V0LnJhbmdlc1tqX2xhc3RdLmVuZCk7CisJCWVsc2UKKwkJCXBfZW5kID0gZGlmZi0+cGFyZW50LnJhbmdlc1tqX2xhc3RdLmVuZDsKKworCQlpZiAoIXBfc3RhcnQgJiYgIXBfZW5kKSB7CisJCQlwX3N0YXJ0ID0gLTE7CisJCQlwX2VuZCA9IC0xOworCQl9CisKKwkJLyogTm93IG91dHB1dCBhIGRpZmYgaHVuayBmb3IgdGhpcyByYW5nZSAqLworCQlwcmludGYoIiVzJXNAQCAtJWxkLCVsZCArJWxkLCVsZCBAQCVzXG4iLAorCQkgICAgICAgcHJlZml4LCBjX2ZyYWcsCisJCSAgICAgICBwX3N0YXJ0KzEsIHBfZW5kLXBfc3RhcnQsIHRfc3RhcnQrMSwgdF9lbmQtdF9zdGFydCwKKwkJICAgICAgIGNfcmVzZXQpOworCQl3aGlsZSAoaiA8IGRpZmYtPnRhcmdldC5uciAmJiBkaWZmLT50YXJnZXQucmFuZ2VzW2pdLnN0YXJ0IDwgdF9lbmQpIHsKKwkJCWludCBrOworCQkJZm9yICg7IHRfY3VyIDwgZGlmZi0+dGFyZ2V0LnJhbmdlc1tqXS5zdGFydDsgdF9jdXIrKykKKwkJCQlwcmludF9saW5lKHByZWZpeCwgJyAnLCB0X2N1ciwgdF9lbmRzLCBwYWlyLT50d28tPmRhdGEsCisJCQkJCSAgIGNfcGxhaW4sIGNfcmVzZXQpOworCQkJZm9yIChrID0gZGlmZi0+cGFyZW50LnJhbmdlc1tqXS5zdGFydDsgayA8IGRpZmYtPnBhcmVudC5yYW5nZXNbal0uZW5kOyBrKyspCisJCQkJcHJpbnRfbGluZShwcmVmaXgsICctJywgaywgcF9lbmRzLCBwYWlyLT5vbmUtPmRhdGEsCisJCQkJCSAgIGNfb2xkLCBjX3Jlc2V0KTsKKwkJCWZvciAoOyB0X2N1ciA8IGRpZmYtPnRhcmdldC5yYW5nZXNbal0uZW5kICYmIHRfY3VyIDwgdF9lbmQ7IHRfY3VyKyspCisJCQkJcHJpbnRfbGluZShwcmVmaXgsICcrJywgdF9jdXIsIHRfZW5kcywgcGFpci0+dHdvLT5kYXRhLAorCQkJCQkgICBjX25ldywgY19yZXNldCk7CisJCQlqKys7CisJCX0KKwkJZm9yICg7IHRfY3VyIDwgdF9lbmQ7IHRfY3VyKyspCisJCQlwcmludF9saW5lKHByZWZpeCwgJyAnLCB0X2N1ciwgdF9lbmRzLCBwYWlyLT50d28tPmRhdGEsCisJCQkJICAgY19wbGFpbiwgY19yZXNldCk7CisJfQorCisJZnJlZShwX2VuZHMpOworCWZyZWUodF9lbmRzKTsKK30KKworLyoKKyAqIE5FRURTV09SSzogbWFudWFsbHkgYnVpbGRpbmcgYSBkaWZmIGhlcmUgaXMgbm90IHRoZSBSaWdodAorICogVGhpbmcodG0pLiAgbG9nIC1MIHNob3VsZCBiZSBidWlsdCBpbnRvIHRoZSBkaWZmIHBpcGVsaW5lLgorICovCitzdGF0aWMgdm9pZCBkdW1wX2RpZmZfaGFja3koc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyYW5nZSkKK3sKKwlwdXRzKG91dHB1dF9wcmVmaXgoJnJldi0+ZGlmZm9wdCkpOworCXdoaWxlIChyYW5nZSkgeworCQlkdW1wX2RpZmZfaGFja3lfb25lKHJldiwgcmFuZ2UpOworCQlyYW5nZSA9IHJhbmdlLT5uZXh0OworCX0KK30KKworLyoKKyAqIFVubGlrZSBtb3N0IG90aGVyIGZ1bmN0aW9ucywgdGhpcyBkZXN0cnVjdGl2ZWx5IG9wZXJhdGVzIG9uCisgKiAncmFuZ2UnLgorICovCitzdGF0aWMgaW50IHByb2Nlc3NfZGlmZl9maWxlcGFpcihzdHJ1Y3QgcmV2X2luZm8gKnJldiwKKwkJCQkgc3RydWN0IGRpZmZfZmlsZXBhaXIgKnBhaXIsCisJCQkJIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyYW5nZSwKKwkJCQkgc3RydWN0IGRpZmZfcmFuZ2VzICoqZGlmZl9vdXQpCit7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJnID0gcmFuZ2U7CisJc3RydWN0IHJhbmdlX3NldCB0bXA7CisJc3RydWN0IGRpZmZfcmFuZ2VzIGRpZmY7CisJbW1maWxlX3QgZmlsZV9wYXJlbnQsIGZpbGVfdGFyZ2V0OworCisJYXNzZXJ0KHBhaXItPnR3by0+cGF0aCk7CisJd2hpbGUgKHJnKSB7CisJCWFzc2VydChyZy0+cGF0aCk7CisJCWlmICghc3RyY21wKHJnLT5wYXRoLCBwYWlyLT50d28tPnBhdGgpKQorCQkJYnJlYWs7CisJCXJnID0gcmctPm5leHQ7CisJfQorCisJaWYgKCFyZykKKwkJcmV0dXJuIDA7CisJaWYgKHJnLT5yYW5nZXMubnIgPT0gMCkKKwkJcmV0dXJuIDA7CisKKwlhc3NlcnQocGFpci0+dHdvLT5zaGExX3ZhbGlkKTsKKwlkaWZmX3BvcHVsYXRlX2ZpbGVzcGVjKHBhaXItPnR3bywgMCk7CisJZmlsZV90YXJnZXQucHRyID0gcGFpci0+dHdvLT5kYXRhOworCWZpbGVfdGFyZ2V0LnNpemUgPSBwYWlyLT50d28tPnNpemU7CisKKwlpZiAocGFpci0+b25lLT5zaGExX3ZhbGlkKSB7CisJCWRpZmZfcG9wdWxhdGVfZmlsZXNwZWMocGFpci0+b25lLCAwKTsKKwkJZmlsZV9wYXJlbnQucHRyID0gcGFpci0+b25lLT5kYXRhOworCQlmaWxlX3BhcmVudC5zaXplID0gcGFpci0+b25lLT5zaXplOworCX0gZWxzZSB7CisJCWZpbGVfcGFyZW50LnB0ciA9ICIiOworCQlmaWxlX3BhcmVudC5zaXplID0gMDsKKwl9CisKKwlkaWZmX3Jhbmdlc19pbml0KCZkaWZmKTsKKwljb2xsZWN0X2RpZmYoJmZpbGVfcGFyZW50LCAmZmlsZV90YXJnZXQsICZkaWZmKTsKKworCS8qIE5FRURTV09SSyBzaG91bGQgYXBwbHkgc29tZSBoZXVyaXN0aWNzIHRvIHByZXZlbnQgbWlzbWF0Y2hlcyAqLworCWZyZWUocmctPnBhdGgpOworCXJnLT5wYXRoID0geHN0cmR1cChwYWlyLT5vbmUtPnBhdGgpOworCisJcmFuZ2Vfc2V0X2luaXQoJnRtcCwgMCk7CisJcmFuZ2Vfc2V0X21hcF9hY3Jvc3NfZGlmZigmdG1wLCAmcmctPnJhbmdlcywgJmRpZmYsIGRpZmZfb3V0KTsKKwlyYW5nZV9zZXRfcmVsZWFzZSgmcmctPnJhbmdlcyk7CisJcmFuZ2Vfc2V0X21vdmUoJnJnLT5yYW5nZXMsICZ0bXApOworCisJZGlmZl9yYW5nZXNfcmVsZWFzZSgmZGlmZik7CisKKwlyZXR1cm4gKCgqZGlmZl9vdXQpLT5wYXJlbnQubnIgPiAwKTsKK30KKworc3RhdGljIHN0cnVjdCBkaWZmX2ZpbGVwYWlyICpkaWZmX2ZpbGVwYWlyX2R1cChzdHJ1Y3QgZGlmZl9maWxlcGFpciAqcGFpcikKK3sKKwlzdHJ1Y3QgZGlmZl9maWxlcGFpciAqbmV3ID0geG1hbGxvYyhzaXplb2Yoc3RydWN0IGRpZmZfZmlsZXBhaXIpKTsKKwluZXctPm9uZSA9IHBhaXItPm9uZTsKKwluZXctPnR3byA9IHBhaXItPnR3bzsKKwluZXctPm9uZS0+Y291bnQrKzsKKwluZXctPnR3by0+Y291bnQrKzsKKwlyZXR1cm4gbmV3OworfQorCitzdGF0aWMgdm9pZCBmcmVlX2RpZmZxdWV1ZXMoaW50IG4sIHN0cnVjdCBkaWZmX3F1ZXVlX3N0cnVjdCAqZHEpCit7CisJaW50IGksIGo7CisJZm9yIChpID0gMDsgaSA8IG47IGkrKykKKwkJZm9yIChqID0gMDsgaiA8IGRxW2ldLm5yOyBqKyspCisJCQlkaWZmX2ZyZWVfZmlsZXBhaXIoZHFbaV0ucXVldWVbal0pOworCWZyZWUoZHEpOworfQorCitzdGF0aWMgaW50IHByb2Nlc3NfYWxsX2ZpbGVzKHN0cnVjdCBsaW5lX2xvZ19kYXRhICoqcmFuZ2Vfb3V0LAorCQkJICAgICBzdHJ1Y3QgcmV2X2luZm8gKnJldiwKKwkJCSAgICAgc3RydWN0IGRpZmZfcXVldWVfc3RydWN0ICpxdWV1ZSwKKwkJCSAgICAgc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlKQoreworCWludCBpLCBjaGFuZ2VkID0gMDsKKworCSpyYW5nZV9vdXQgPSBsaW5lX2xvZ19kYXRhX2NvcHkocmFuZ2UpOworCisJZm9yIChpID0gMDsgaSA8IHF1ZXVlLT5ucjsgaSsrKSB7CisJCXN0cnVjdCBkaWZmX3JhbmdlcyAqcGFpcmRpZmYgPSBOVUxMOworCQlzdHJ1Y3QgZGlmZl9maWxlcGFpciAqcGFpciA9IHF1ZXVlLT5xdWV1ZVtpXTsKKwkJaWYgKHByb2Nlc3NfZGlmZl9maWxlcGFpcihyZXYsIHBhaXIsICpyYW5nZV9vdXQsICZwYWlyZGlmZikpIHsKKwkJCS8qCisJCQkgKiBTdG9yZSBhd2F5IHRoZSBkaWZmIGZvciBsYXRlciBvdXRwdXQuICBXZQorCQkJICogdHVjayBpdCBpbiB0aGUgcmFuZ2VzIHdlIGdvdCBhcyBfaW5wdXRfLAorCQkJICogc2luY2UgdGhhdCdzIHRoZSBjb21taXQgdGhhdCBjYXVzZWQgdGhlCisJCQkgKiBkaWZmLgorCQkJICoKKwkJCSAqIE5FRURTV09SSyBub3QgZW5vdWdoIHdoZW4gd2UgZ2V0IGFyb3VuZCB0bworCQkJICogZG9pbmcgc29tZXRoaW5nIGludGVyZXN0aW5nIHdpdGggbWVyZ2VzOworCQkJICogY3VycmVudGx5IGVhY2ggaW52b2NhdGlvbiBvbiBhIG1lcmdlIHBhcmVudAorCQkJICogdHJhc2hlcyB0aGUgcHJldmlvdXMgb25lJ3MgZGlmZi4KKwkJCSAqCisJCQkgKiBORUVEU1dPUksgdHJhbXBsZXMgb3ZlciBkYXRhIHN0cnVjdHVyZXMgbm90IG93bmVkIGhlcmUKKwkJCSAqLworCQkJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJnID0gcmFuZ2U7CisJCQljaGFuZ2VkKys7CisJCQl3aGlsZSAocmcgJiYgc3RyY21wKHJnLT5wYXRoLCBwYWlyLT50d28tPnBhdGgpKQorCQkJCXJnID0gcmctPm5leHQ7CisJCQlhc3NlcnQocmcpOworCQkJcmctPnBhaXIgPSBkaWZmX2ZpbGVwYWlyX2R1cChxdWV1ZS0+cXVldWVbaV0pOworCQkJbWVtY3B5KCZyZy0+ZGlmZiwgcGFpcmRpZmYsIHNpemVvZihzdHJ1Y3QgZGlmZl9yYW5nZXMpKTsKKwkJfQorCX0KKworCXJldHVybiBjaGFuZ2VkOworfQorCitpbnQgbGluZV9sb2dfcHJpbnQoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UgPSBsb29rdXBfbGluZV9yYW5nZShyZXYsIGNvbW1pdCk7CisKKwlzaG93X2xvZyhyZXYpOworCWR1bXBfZGlmZl9oYWNreShyZXYsIHJhbmdlKTsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBwcm9jZXNzX3Jhbmdlc19vcmRpbmFyeV9jb21taXQoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBjb21taXQgKmNvbW1pdCwKKwkJCQkJICBzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UpCit7CisJc3RydWN0IGNvbW1pdCAqcGFyZW50ID0gTlVMTDsKKwlzdHJ1Y3QgZGlmZl9xdWV1ZV9zdHJ1Y3QgcXVldWU7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnBhcmVudF9yYW5nZTsKKwlpbnQgY2hhbmdlZDsKKworCWlmIChjb21taXQtPnBhcmVudHMpCisJCXBhcmVudCA9IGNvbW1pdC0+cGFyZW50cy0+aXRlbTsKKworCXF1ZXVlX2RpZmZzKHJhbmdlLCAmcmV2LT5kaWZmb3B0LCAmcXVldWUsIGNvbW1pdCwgcGFyZW50KTsKKwljaGFuZ2VkID0gcHJvY2Vzc19hbGxfZmlsZXMoJnBhcmVudF9yYW5nZSwgcmV2LCAmcXVldWUsIHJhbmdlKTsKKwlpZiAocGFyZW50KQorCQlhZGRfbGluZV9yYW5nZShyZXYsIHBhcmVudCwgcGFyZW50X3JhbmdlKTsKKwlyZXR1cm4gY2hhbmdlZDsKK30KKworc3RhdGljIGludCBwcm9jZXNzX3Jhbmdlc19tZXJnZV9jb21taXQoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBjb21taXQgKmNvbW1pdCwKKwkJCQkgICAgICAgc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlKQoreworCXN0cnVjdCBkaWZmX3F1ZXVlX3N0cnVjdCAqZGlmZnF1ZXVlczsKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqKmNhbmQ7CisJc3RydWN0IGNvbW1pdCAqKnBhcmVudHM7CisJc3RydWN0IGNvbW1pdF9saXN0ICpwOworCWludCBpOworCWludCBucGFyZW50cyA9IGNvdW50X3BhcmVudHMoY29tbWl0KTsKKworCWRpZmZxdWV1ZXMgPSB4bWFsbG9jKG5wYXJlbnRzICogc2l6ZW9mKCpkaWZmcXVldWVzKSk7CisJY2FuZCA9IHhtYWxsb2MobnBhcmVudHMgKiBzaXplb2YoKmNhbmQpKTsKKwlwYXJlbnRzID0geG1hbGxvYyhucGFyZW50cyAqIHNpemVvZigqcGFyZW50cykpOworCisJcCA9IGNvbW1pdC0+cGFyZW50czsKKwlmb3IgKGkgPSAwOyBpIDwgbnBhcmVudHM7IGkrKykgeworCQlwYXJlbnRzW2ldID0gcC0+aXRlbTsKKwkJcCA9IHAtPm5leHQ7CisJCXF1ZXVlX2RpZmZzKHJhbmdlLCAmcmV2LT5kaWZmb3B0LCAmZGlmZnF1ZXVlc1tpXSwgY29tbWl0LCBwYXJlbnRzW2ldKTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbnBhcmVudHM7IGkrKykgeworCQlpbnQgY2hhbmdlZDsKKwkJY2FuZFtpXSA9IE5VTEw7CisJCWNoYW5nZWQgPSBwcm9jZXNzX2FsbF9maWxlcygmY2FuZFtpXSwgcmV2LCAmZGlmZnF1ZXVlc1tpXSwgcmFuZ2UpOworCQlpZiAoIWNoYW5nZWQpIHsKKwkJCS8qCisJCQkgKiBUaGlzIHBhcmVudCBjYW4gdGFrZSBhbGwgdGhlIGJsYW1lLCBzbyB3ZQorCQkJICogZG9uJ3QgZm9sbG93IGFueSBvdGhlciBwYXRoIGluIGhpc3RvcnkKKwkJCSAqLworCQkJYWRkX2xpbmVfcmFuZ2UocmV2LCBwYXJlbnRzW2ldLCBjYW5kW2ldKTsKKwkJCWNsZWFyX2NvbW1pdF9saW5lX3JhbmdlKHJldiwgY29tbWl0KTsKKwkJCWNvbW1pdC0+cGFyZW50cyA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBjb21taXRfbGlzdCkpOworCQkJY29tbWl0LT5wYXJlbnRzLT5pdGVtID0gcGFyZW50c1tpXTsKKwkJCWNvbW1pdC0+cGFyZW50cy0+bmV4dCA9IE5VTEw7CisJCQlmcmVlKHBhcmVudHMpOworCQkJZnJlZShjYW5kKTsKKwkJCWZyZWVfZGlmZnF1ZXVlcyhucGFyZW50cywgZGlmZnF1ZXVlcyk7CisJCQkvKiBORUVEU1dPUksgbGVha2luZyBsaWtlIGEgc2lldmUgKi8KKwkJCXJldHVybiAwOworCQl9CisJfQorCisJLyoKKwkgKiBObyBzaW5nbGUgcGFyZW50IHRvb2sgdGhlIGJsYW1lLiAgV2UgYWRkIHRoZSBjYW5kaWRhdGVzCisJICogZnJvbSB0aGUgYWJvdmUgbG9vcCB0byB0aGUgcGFyZW50cy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnBhcmVudHM7IGkrKykgeworCQlhZGRfbGluZV9yYW5nZShyZXYsIHBhcmVudHNbaV0sIGNhbmRbaV0pOworCX0KKworCWNsZWFyX2NvbW1pdF9saW5lX3JhbmdlKHJldiwgY29tbWl0KTsKKwlmcmVlKHBhcmVudHMpOworCWZyZWUoY2FuZCk7CisJZnJlZV9kaWZmcXVldWVzKG5wYXJlbnRzLCBkaWZmcXVldWVzKTsKKwlyZXR1cm4gMTsKKworCS8qIE5FRURTV09SSyBldmlsIG1lcmdlIGRldGVjdGlvbiBzdHVmZiAqLworCS8qIE5FRURTV09SSyBsZWFraW5nIGxpa2UgYSBzaWV2ZSAqLworfQorCitzdGF0aWMgaW50IHByb2Nlc3NfcmFuZ2VzX2FyYml0cmFyeV9jb21taXQoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UgPSBsb29rdXBfbGluZV9yYW5nZShyZXYsIGNvbW1pdCk7CisJaW50IGNoYW5nZWQgPSAwOworCisJaWYgKHJhbmdlKSB7CisJCWlmICghY29tbWl0LT5wYXJlbnRzIHx8ICFjb21taXQtPnBhcmVudHMtPm5leHQpCisJCQljaGFuZ2VkID0gcHJvY2Vzc19yYW5nZXNfb3JkaW5hcnlfY29tbWl0KHJldiwgY29tbWl0LCByYW5nZSk7CisJCWVsc2UKKwkJCWNoYW5nZWQgPSBwcm9jZXNzX3Jhbmdlc19tZXJnZV9jb21taXQocmV2LCBjb21taXQsIHJhbmdlKTsKKwl9CisKKwlpZiAoIWNoYW5nZWQpCisJCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IFRSRUVTQU1FOworCisJcmV0dXJuIGNoYW5nZWQ7Cit9CisKK3N0YXRpYyBlbnVtIHJld3JpdGVfcmVzdWx0IGxpbmVfbG9nX3Jld3JpdGVfb25lKHN0cnVjdCByZXZfaW5mbyAqcmV2LCBzdHJ1Y3QgY29tbWl0ICoqcHApCit7CisJZm9yICg7OykgeworCQlzdHJ1Y3QgY29tbWl0ICpwID0gKnBwOworCQlpZiAocC0+cGFyZW50cyAmJiBwLT5wYXJlbnRzLT5uZXh0KQorCQkJcmV0dXJuIHJld3JpdGVfb25lX29rOworCQlpZiAocC0+b2JqZWN0LmZsYWdzICYgVU5JTlRFUkVTVElORykKKwkJCXJldHVybiByZXdyaXRlX29uZV9vazsKKwkJaWYgKCEocC0+b2JqZWN0LmZsYWdzICYgVFJFRVNBTUUpKQorCQkJcmV0dXJuIHJld3JpdGVfb25lX29rOworCQlpZiAoIXAtPnBhcmVudHMpCisJCQlyZXR1cm4gcmV3cml0ZV9vbmVfbm9wYXJlbnRzOworCQkqcHAgPSBwLT5wYXJlbnRzLT5pdGVtOworCX0KK30KKworaW50IGxpbmVfbG9nX2ZpbHRlcihzdHJ1Y3QgcmV2X2luZm8gKnJldikKK3sKKwlzdHJ1Y3QgY29tbWl0ICpjb21taXQ7CisJc3RydWN0IGNvbW1pdF9saXN0ICpsaXN0ID0gcmV2LT5jb21taXRzOworCXN0cnVjdCBjb21taXRfbGlzdCAqb3V0ID0gTlVMTCwgKipwcCA9ICZvdXQ7CisKKwl3aGlsZSAobGlzdCkgeworCQlzdHJ1Y3QgY29tbWl0X2xpc3QgKnRvX2ZyZWUgPSBOVUxMOworCQljb21taXQgPSBsaXN0LT5pdGVtOworCQlpZiAocHJvY2Vzc19yYW5nZXNfYXJiaXRyYXJ5X2NvbW1pdChyZXYsIGNvbW1pdCkpIHsKKwkJCSpwcCA9IGxpc3Q7CisJCQlwcCA9ICZsaXN0LT5uZXh0OworCQl9IGVsc2UKKwkJCXRvX2ZyZWUgPSBsaXN0OworCQlsaXN0ID0gbGlzdC0+bmV4dDsKKwkJZnJlZSh0b19mcmVlKTsKKwl9CisJKnBwID0gTlVMTDsKKworCWZvciAobGlzdCA9IG91dDsgbGlzdDsgbGlzdCA9IGxpc3QtPm5leHQpCisJCXJld3JpdGVfcGFyZW50cyhyZXYsIGxpc3QtPml0ZW0sIGxpbmVfbG9nX3Jld3JpdGVfb25lKTsKKworCXJldi0+Y29tbWl0cyA9IG91dDsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbGluZS1sb2cuaCBiL2xpbmUtbG9nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJlYTQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpbmUtbG9nLmgKQEAgLTAsMCArMSw1MyBAQAorI2lmbmRlZiBMSU5FX0xPR19ICisjZGVmaW5lIExJTkVfTE9HX0gKKworI2luY2x1ZGUgImRpZmZjb3JlLmgiCisKK3N0cnVjdCByZXZfaW5mbzsKK3N0cnVjdCBjb21taXQ7CisKKy8qIEEgcmFuZ2UgW3N0YXJ0LGVuZF0uICBMaW5lcyBhcmUgbnVtYmVyZWQgc3RhcnRpbmcgYXQgMCwgYW5kIHRoZQorICogcmFuZ2VzIGluY2x1ZGUgc3RhcnQgYnV0IGV4Y2x1ZGUgZW5kLiAqLworc3RydWN0IHJhbmdlIHsKKwlsb25nIHN0YXJ0LCBlbmQ7Cit9OworCisvKiBBIHNldCBvZiByYW5nZXMuICBUaGUgcmFuZ2VzIG11c3QgYWx3YXlzIGJlIGRpc2pvaW50IGFuZCBzb3J0ZWQuICovCitzdHJ1Y3QgcmFuZ2Vfc2V0IHsKKwlpbnQgYWxsb2MsIG5yOworCXN0cnVjdCByYW5nZSAqcmFuZ2VzOworfTsKKworLyogQSBkaWZmLCBlbmNvZGVkIGFzIHRoZSBzZXQgb2YgcHJlLSBhbmQgcG9zdC1pbWFnZSByYW5nZXMgd2hlcmUgdGhlCisgKiBmaWxlcyBkaWZmZXIuIEEgcGFpciBvZiByYW5nZXMgY29ycmVzcG9uZHMgdG8gYSBodW5rLiAqLworc3RydWN0IGRpZmZfcmFuZ2VzIHsKKwlzdHJ1Y3QgcmFuZ2Vfc2V0IHBhcmVudDsKKwlzdHJ1Y3QgcmFuZ2Vfc2V0IHRhcmdldDsKK307CisKKy8qIExpbmtlZCBsaXN0IG9mIGludGVyZXN0aW5nIGZpbGVzIGFuZCB0aGVpciBhc3NvY2lhdGVkIHJhbmdlcy4gIFRoZQorICogbGlzdCBtdXN0IGJlIGtlcHQgc29ydGVkIGJ5IHBhdGguCisgKgorICogRm9yIHNpbXBsaWNpdHksIGV2ZW4gdGhvdWdoIHRoaXMgaXMgaGlnaGx5IHJlZHVuZGFudCwgZWFjaAorICogbGluZV9sb2dfZGF0YSBvd25zIGl0cyAncGF0aCcuCisgKi8KK3N0cnVjdCBsaW5lX2xvZ19kYXRhIHsKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqbmV4dDsKKwljaGFyICpwYXRoOworCWNoYXIgc3RhdHVzOworCXN0cnVjdCByYW5nZV9zZXQgcmFuZ2VzOworCWludCBhcmdfYWxsb2MsIGFyZ19ucjsKKwljb25zdCBjaGFyICoqYXJnczsKKwlzdHJ1Y3QgZGlmZl9maWxlcGFpciAqcGFpcjsKKwlzdHJ1Y3QgZGlmZl9yYW5nZXMgZGlmZjsKK307CisKK2V4dGVybiB2b2lkIGxpbmVfbG9nX2RhdGFfaW5pdChzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcik7CisKK2V4dGVybiB2b2lkIGxpbmVfbG9nX2luaXQoc3RydWN0IHJldl9pbmZvICpyZXYsIGNvbnN0IGNoYXIgKnByZWZpeCwgc3RydWN0IHN0cmluZ19saXN0ICphcmdzKTsKKworZXh0ZXJuIGludCBsaW5lX2xvZ19maWx0ZXIoc3RydWN0IHJldl9pbmZvICpyZXYpOworCitleHRlcm4gaW50IGxpbmVfbG9nX3ByaW50KHN0cnVjdCByZXZfaW5mbyAqcmV2LCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpOworCisjZW5kaWYgLyogTElORV9MT0dfSCAqLwpkaWZmIC0tZ2l0IGEvbGluZS1yYW5nZS5jIGIvbGluZS1yYW5nZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NDI0NzUKLS0tIC9kZXYvbnVsbAorKysgYi9saW5lLXJhbmdlLmMKQEAgLTAsMCArMSwyNTAgQEAKKyNpbmNsdWRlICJnaXQtY29tcGF0LXV0aWwuaCIKKyNpbmNsdWRlICJsaW5lLXJhbmdlLmgiCisjaW5jbHVkZSAieGRpZmYtaW50ZXJmYWNlLmgiCisjaW5jbHVkZSAic3RyYnVmLmgiCisjaW5jbHVkZSAidXNlcmRpZmYuaCIKKworLyoKKyAqIFBhcnNlIG9uZSBpdGVtIGluIHRoZSAtTCBvcHRpb24KKyAqLworc3RhdGljIGNvbnN0IGNoYXIgKnBhcnNlX2xvYyhjb25zdCBjaGFyICpzcGVjLCBudGhfbGluZV9mbl90IG50aF9saW5lLAorCQkJICAgICB2b2lkICpkYXRhLCBsb25nIGxpbmVzLCBsb25nIGJlZ2luLCBsb25nICpyZXQpCit7CisJY2hhciAqdGVybTsKKwljb25zdCBjaGFyICpsaW5lOworCWxvbmcgbnVtOworCWludCByZWdfZXJyb3I7CisJcmVnZXhfdCByZWdleHA7CisJcmVnbWF0Y2hfdCBtYXRjaFsxXTsKKworCS8qIEFsbG93ICItTCA8c29tZXRoaW5nPiwrMjAiIHRvIG1lYW4gc3RhcnRpbmcgYXQgPHNvbWV0aGluZz4KKwkgKiBmb3IgMjAgbGluZXMsIG9yICItTCA8c29tZXRoaW5nPiwtNSIgZm9yIDUgbGluZXMgZW5kaW5nIGF0CisJICogPHNvbWV0aGluZz4uCisJICovCisJaWYgKDEgPCBiZWdpbiAmJiAoc3BlY1swXSA9PSAnKycgfHwgc3BlY1swXSA9PSAnLScpKSB7CisJCW51bSA9IHN0cnRvbChzcGVjICsgMSwgJnRlcm0sIDEwKTsKKwkJaWYgKHRlcm0gIT0gc3BlYyArIDEpIHsKKwkJCWlmICghcmV0KQorCQkJCXJldHVybiB0ZXJtOworCQkJaWYgKHNwZWNbMF0gPT0gJy0nKQorCQkJCW51bSA9IDAgLSBudW07CisJCQlpZiAoMCA8IG51bSkKKwkJCQkqcmV0ID0gYmVnaW4gKyBudW0gLSAyOworCQkJZWxzZSBpZiAoIW51bSkKKwkJCQkqcmV0ID0gYmVnaW47CisJCQllbHNlCisJCQkJKnJldCA9IGJlZ2luICsgbnVtOworCQkJcmV0dXJuIHRlcm07CisJCX0KKwkJcmV0dXJuIHNwZWM7CisJfQorCW51bSA9IHN0cnRvbChzcGVjLCAmdGVybSwgMTApOworCWlmICh0ZXJtICE9IHNwZWMpIHsKKwkJaWYgKHJldCkKKwkJCSpyZXQgPSBudW07CisJCXJldHVybiB0ZXJtOworCX0KKwlpZiAoc3BlY1swXSAhPSAnLycpCisJCXJldHVybiBzcGVjOworCisJLyogaXQgY291bGQgYmUgYSByZWdleHAgb2YgZm9ybSAvLi4uLyAqLworCWZvciAodGVybSA9IChjaGFyICopIHNwZWMgKyAxOyAqdGVybSAmJiAqdGVybSAhPSAnLyc7IHRlcm0rKykgeworCQlpZiAoKnRlcm0gPT0gJ1xcJykKKwkJCXRlcm0rKzsKKwl9CisJaWYgKCp0ZXJtICE9ICcvJykKKwkJcmV0dXJuIHNwZWM7CisKKwkvKiBpbiB0aGUgc2Nhbi1vbmx5IGNhc2Ugd2UgYXJlIG5vdCBpbnRlcmVzdGVkIGluIHRoZSByZWdleCAqLworCWlmICghcmV0KQorCQlyZXR1cm4gdGVybSsxOworCisJLyogdHJ5IFtzcGVjKzEgLi4gdGVybS0xXSBhcyByZWdleHAgKi8KKwkqdGVybSA9IDA7CisJYmVnaW4tLTsgLyogaW5wdXQgaXMgaW4gaHVtYW4gdGVybXMgKi8KKwlsaW5lID0gbnRoX2xpbmUoZGF0YSwgYmVnaW4pOworCisJaWYgKCEocmVnX2Vycm9yID0gcmVnY29tcCgmcmVnZXhwLCBzcGVjICsgMSwgUkVHX05FV0xJTkUpKSAmJgorCSAgICAhKHJlZ19lcnJvciA9IHJlZ2V4ZWMoJnJlZ2V4cCwgbGluZSwgMSwgbWF0Y2gsIDApKSkgeworCQljb25zdCBjaGFyICpjcCA9IGxpbmUgKyBtYXRjaFswXS5ybV9zbzsKKwkJY29uc3QgY2hhciAqbmxpbmU7CisKKwkJd2hpbGUgKGJlZ2luKysgPCBsaW5lcykgeworCQkJbmxpbmUgPSBudGhfbGluZShkYXRhLCBiZWdpbik7CisJCQlpZiAobGluZSA8PSBjcCAmJiBjcCA8IG5saW5lKQorCQkJCWJyZWFrOworCQkJbGluZSA9IG5saW5lOworCQl9CisJCSpyZXQgPSBiZWdpbjsKKwkJcmVnZnJlZSgmcmVnZXhwKTsKKwkJKnRlcm0rKyA9ICcvJzsKKwkJcmV0dXJuIHRlcm07CisJfQorCWVsc2UgeworCQljaGFyIGVycmJ1ZlsxMDI0XTsKKwkJcmVnZXJyb3IocmVnX2Vycm9yLCAmcmVnZXhwLCBlcnJidWYsIDEwMjQpOworCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnOiAlcyIsIHNwZWMgKyAxLCBlcnJidWYpOworCX0KK30KKworc3RhdGljIGludCBtYXRjaF9mdW5jbmFtZSh4ZGVtaXRjb25mX3QgKnhlY2ZnLCBjb25zdCBjaGFyICpib2wsIGNvbnN0IGNoYXIgKmVvbCkKK3sKKwlpZiAoeGVjZmcpIHsKKwkJY2hhciBidWZbMV07CisJCXJldHVybiB4ZWNmZy0+ZmluZF9mdW5jKGJvbCwgZW9sIC0gYm9sLCBidWYsIDEsCisJCQkJCXhlY2ZnLT5maW5kX2Z1bmNfcHJpdikgPj0gMDsKKwl9CisKKwlpZiAoYm9sID09IGVvbCkKKwkJcmV0dXJuIDA7CisJaWYgKGlzYWxwaGEoKmJvbCkgfHwgKmJvbCA9PSAnXycgfHwgKmJvbCA9PSAnJCcpCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqZmluZF9mdW5jbmFtZV9tYXRjaGluZ19yZWdleHAoeGRlbWl0Y29uZl90ICp4ZWNmZywgY29uc3QgY2hhciAqc3RhcnQsCisJCQkJCQkgcmVnZXhfdCAqcmVnZXhwKQoreworCWludCByZWdfZXJyb3I7CisJcmVnbWF0Y2hfdCBtYXRjaFsxXTsKKwl3aGlsZSAoMSkgeworCQljb25zdCBjaGFyICpib2wsICplb2w7CisJCXJlZ19lcnJvciA9IHJlZ2V4ZWMocmVnZXhwLCBzdGFydCwgMSwgbWF0Y2gsIDApOworCQlpZiAocmVnX2Vycm9yID09IFJFR19OT01BVENIKQorCQkJcmV0dXJuIE5VTEw7CisJCWVsc2UgaWYgKHJlZ19lcnJvcikgeworCQkJY2hhciBlcnJidWZbMTAyNF07CisJCQlyZWdlcnJvcihyZWdfZXJyb3IsIHJlZ2V4cCwgZXJyYnVmLCAxMDI0KTsKKwkJCWRpZSgiLUwgcGFyYW1ldGVyOiByZWdleGVjKCkgZmFpbGVkOiAlcyIsIGVycmJ1Zik7CisJCX0KKwkJLyogZGV0ZXJtaW5lIGV4dGVudCBvZiBsaW5lIG1hdGNoZWQgKi8KKwkJYm9sID0gc3RhcnQrbWF0Y2hbMF0ucm1fc287CisJCWVvbCA9IHN0YXJ0K21hdGNoWzBdLnJtX2VvOworCQl3aGlsZSAoYm9sID4gc3RhcnQgJiYgKmJvbCAhPSAnXG4nKQorCQkJYm9sLS07CisJCWlmICgqYm9sID09ICdcbicpCisJCQlib2wrKzsKKwkJd2hpbGUgKCplb2wgJiYgKmVvbCAhPSAnXG4nKQorCQkJZW9sKys7CisJCWlmICgqZW9sID09ICdcbicpCisJCQllb2wrKzsKKwkJLyogaXMgaXQgYSBmdW5jbmFtZSBsaW5lPyAqLworCQlpZiAobWF0Y2hfZnVuY25hbWUoeGVjZmcsIChjaGFyKikgYm9sLCAoY2hhciopIGVvbCkpCisJCQlyZXR1cm4gYm9sOworCQlzdGFydCA9IGVvbDsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpwYXJzZV9yYW5nZV9mdW5jbmFtZShjb25zdCBjaGFyICphcmcsIG50aF9saW5lX2ZuX3QgbnRoX2xpbmVfY2IsCisJCQkJCXZvaWQgKmNiX2RhdGEsIGxvbmcgbGluZXMsIGxvbmcgKmJlZ2luLCBsb25nICplbmQsCisJCQkJCWNvbnN0IGNoYXIgKnBhdGgpCit7CisJY2hhciAqcGF0dGVybjsKKwljb25zdCBjaGFyICp0ZXJtOworCXN0cnVjdCB1c2VyZGlmZl9kcml2ZXIgKmRydjsKKwl4ZGVtaXRjb25mX3QgKnhlY2ZnID0gTlVMTDsKKwljb25zdCBjaGFyICpzdGFydDsKKwljb25zdCBjaGFyICpwOworCWludCByZWdfZXJyb3I7CisJcmVnZXhfdCByZWdleHA7CisKKwlhc3NlcnQoKmFyZyA9PSAnOicpOworCXRlcm0gPSBhcmcrMTsKKwl3aGlsZSAoKnRlcm0gJiYgKnRlcm0gIT0gJzonKSB7CisJCWlmICgqdGVybSA9PSAnXFwnICYmICoodGVybSsxKSkKKwkJCXRlcm0rKzsKKwkJdGVybSsrOworCX0KKwlpZiAodGVybSA9PSBhcmcrMSkKKwkJcmV0dXJuIE5VTEw7CisJaWYgKCFiZWdpbikgLyogc2tpcF9yYW5nZV9hcmcgY2FzZSAqLworCQlyZXR1cm4gdGVybTsKKworCXBhdHRlcm4gPSB4c3RybmR1cChhcmcrMSwgdGVybS0oYXJnKzEpKTsKKworCXN0YXJ0ID0gbnRoX2xpbmVfY2IoY2JfZGF0YSwgMCk7CisKKwlkcnYgPSB1c2VyZGlmZl9maW5kX2J5X3BhdGgocGF0aCk7CisJaWYgKGRydiAmJiBkcnYtPmZ1bmNuYW1lLnBhdHRlcm4pIHsKKwkJY29uc3Qgc3RydWN0IHVzZXJkaWZmX2Z1bmNuYW1lICpwZSA9ICZkcnYtPmZ1bmNuYW1lOworCQl4ZWNmZyA9IHhjYWxsb2MoMSwgc2l6ZW9mKCp4ZWNmZykpOworCQl4ZGlmZl9zZXRfZmluZF9mdW5jKHhlY2ZnLCBwZS0+cGF0dGVybiwgcGUtPmNmbGFncyk7CisJfQorCisJcmVnX2Vycm9yID0gcmVnY29tcCgmcmVnZXhwLCBwYXR0ZXJuLCBSRUdfTkVXTElORSk7CisJaWYgKHJlZ19lcnJvcikgeworCQljaGFyIGVycmJ1ZlsxMDI0XTsKKwkJcmVnZXJyb3IocmVnX2Vycm9yLCAmcmVnZXhwLCBlcnJidWYsIDEwMjQpOworCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnOiAlcyIsIHBhdHRlcm4sIGVycmJ1Zik7CisJfQorCisJcCA9IGZpbmRfZnVuY25hbWVfbWF0Y2hpbmdfcmVnZXhwKHhlY2ZnLCAoY2hhciopIHN0YXJ0LCAmcmVnZXhwKTsKKwlpZiAoIXApCisJCWRpZSgiLUwgcGFyYW1ldGVyICclcyc6IG5vIG1hdGNoIiwgcGF0dGVybik7CisJKmJlZ2luID0gMDsKKwl3aGlsZSAocCA+IG50aF9saW5lX2NiKGNiX2RhdGEsICpiZWdpbikpCisJCSgqYmVnaW4pKys7CisKKwlpZiAoKmJlZ2luID49IGxpbmVzKQorCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnIG1hdGNoZXMgYXQgRU9GIiwgcGF0dGVybik7CisKKwkqZW5kID0gKmJlZ2luKzE7CisJd2hpbGUgKCplbmQgPCBsaW5lcykgeworCQljb25zdCBjaGFyICpib2wgPSBudGhfbGluZV9jYihjYl9kYXRhLCAqZW5kKTsKKwkJY29uc3QgY2hhciAqZW9sID0gbnRoX2xpbmVfY2IoY2JfZGF0YSwgKmVuZCsxKTsKKwkJaWYgKG1hdGNoX2Z1bmNuYW1lKHhlY2ZnLCBib2wsIGVvbCkpCisJCQlicmVhazsKKwkJKCplbmQpKys7CisJfQorCisJcmVnZnJlZSgmcmVnZXhwKTsKKwlmcmVlKHhlY2ZnKTsKKwlmcmVlKHBhdHRlcm4pOworCisJLyogY29tcGVuc2F0ZSBmb3IgMS1iYXNlZCBudW1iZXJpbmcgKi8KKwkoKmJlZ2luKSsrOworCisJcmV0dXJuIHRlcm07Cit9CisKK2ludCBwYXJzZV9yYW5nZV9hcmcoY29uc3QgY2hhciAqYXJnLCBudGhfbGluZV9mbl90IG50aF9saW5lX2NiLAorCQkgICAgdm9pZCAqY2JfZGF0YSwgbG9uZyBsaW5lcywgbG9uZyAqYmVnaW4sIGxvbmcgKmVuZCwKKwkJICAgIGNvbnN0IGNoYXIgKnBhdGgpCit7CisJKmJlZ2luID0gKmVuZCA9IDA7CisKKwlpZiAoKmFyZyA9PSAnOicpIHsKKwkJYXJnID0gcGFyc2VfcmFuZ2VfZnVuY25hbWUoYXJnLCBudGhfbGluZV9jYiwgY2JfZGF0YSwgbGluZXMsIGJlZ2luLCBlbmQsIHBhdGgpOworCQlpZiAoIWFyZyB8fCAqYXJnKQorCQkJcmV0dXJuIC0xOworCQlyZXR1cm4gMDsKKwl9CisKKwlhcmcgPSBwYXJzZV9sb2MoYXJnLCBudGhfbGluZV9jYiwgY2JfZGF0YSwgbGluZXMsIDEsIGJlZ2luKTsKKworCWlmICgqYXJnID09ICcsJykKKwkJYXJnID0gcGFyc2VfbG9jKGFyZyArIDEsIG50aF9saW5lX2NiLCBjYl9kYXRhLCBsaW5lcywgKmJlZ2luICsgMSwgZW5kKTsKKworCWlmICgqYXJnKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoKmJlZ2luICYmICplbmQgJiYgKmVuZCA8ICpiZWdpbikgeworCQlsb25nIHRtcDsKKwkJdG1wID0gKmVuZDsgKmVuZCA9ICpiZWdpbjsgKmJlZ2luID0gdG1wOworCX0KKworCXJldHVybiAwOworfQorCitjb25zdCBjaGFyICpza2lwX3JhbmdlX2FyZyhjb25zdCBjaGFyICphcmcpCit7CisJaWYgKCphcmcgPT0gJzonKQorCQlyZXR1cm4gcGFyc2VfcmFuZ2VfZnVuY25hbWUoYXJnLCBOVUxMLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKKworCWFyZyA9IHBhcnNlX2xvYyhhcmcsIE5VTEwsIE5VTEwsIDAsIC0xLCBOVUxMKTsKKworCWlmICgqYXJnID09ICcsJykKKwkJYXJnID0gcGFyc2VfbG9jKGFyZysxLCBOVUxMLCBOVUxMLCAwLCAwLCBOVUxMKTsKKworCXJldHVybiBhcmc7Cit9CmRpZmYgLS1naXQgYS9saW5lLXJhbmdlLmggYi9saW5lLXJhbmdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWUzZDAxMgotLS0gL2Rldi9udWxsCisrKyBiL2xpbmUtcmFuZ2UuaApAQCAtMCwwICsxLDM2IEBACisjaWZuZGVmIExJTkVfUkFOR0VfSAorI2RlZmluZSBMSU5FX1JBTkdFX0gKKworLyoKKyAqIFBhcnNlIG9uZSBpdGVtIGluIGFuIC1MIGJlZ2luLGVuZCBvcHRpb24gdy5yLnQuIHRoZSBub3Rpb25hbCBmaWxlCisgKiBvYmplY3QgJ2NiX2RhdGEnIGNvbnNpc3Rpbmcgb2YgJ2xpbmVzJyBsaW5lcy4KKyAqCisgKiBUaGUgJ250aF9saW5lX2NiJyBjYWxsYmFjayBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc3RhcnQgb2YgdGhlCisgKiBsaW5lICdsbm8nIGluc2lkZSB0aGUgJ2NiX2RhdGEnLiAgVGhlIGNhbGxlciBpcyBleHBlY3RlZCB0byBhbHJlYWR5CisgKiBoYXZlIGEgc3VpdGFibGUgbWFwIGF0IGhhbmQgdG8gbWFrZSB0aGlzIGEgY29uc3RhbnQtdGltZSBsb29rdXAuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaWYgdGhlcmUgd2FzIGFuIGVycm9yLiAgVGhlCisgKiBhY3R1YWwgcmFuZ2UgaXMgc3RvcmVkIGluICpiZWdpbiBhbmQgKmVuZC4gIFRoZSBjb3VudGluZyBzdGFydHMKKyAqIGF0IDEhICBJbiBjYXNlIG9mIGVycm9yLCB0aGUgY2FsbGVyIHNob3VsZCBzaG93IHVzYWdlIG1lc3NhZ2UuCisgKi8KKwordHlwZWRlZiBjb25zdCBjaGFyICooKm50aF9saW5lX2ZuX3QpKHZvaWQgKmRhdGEsIGxvbmcgbG5vKTsKKworZXh0ZXJuIGludCBwYXJzZV9yYW5nZV9hcmcoY29uc3QgY2hhciAqYXJnLAorCQkJICAgbnRoX2xpbmVfZm5fdCBudGhfbGluZV9jYiwKKwkJCSAgIHZvaWQgKmNiX2RhdGEsIGxvbmcgbGluZXMsCisJCQkgICBsb25nICpiZWdpbiwgbG9uZyAqZW5kLAorCQkJICAgY29uc3QgY2hhciAqcGF0aCk7CisKKy8qCisgKiBTY2FuIHBhc3QgYSByYW5nZSBhcmd1bWVudCB0aGF0IGNvdWxkIGJlIHBhcnNlZCBieQorICogJ3BhcnNlX3JhbmdlX2FyZycsIHRvIGhlbHAgdGhlIGNhbGxlciBkZXRlcm1pbmUgdGhlIHN0YXJ0IG9mIHRoZQorICogZmlsZW5hbWUgaW4gJy1MIG4sbTpmaWxlJyBzeW50YXguCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgJ24sbScgcGFydCwgb3IKKyAqIE5VTEwgaW4gY2FzZSB0aGUgYXJndW1lbnQgaXMgb2J2aW91c2x5IG1hbGZvcm1lZC4KKyAqLworCitleHRlcm4gY29uc3QgY2hhciAqc2tpcF9yYW5nZV9hcmcoY29uc3QgY2hhciAqYXJnKTsKKworI2VuZGlmIC8qIExJTkVfUkFOR0VfSCAqLwpkaWZmIC0tZ2l0IGEvbG9ja2ZpbGUuYyBiL2xvY2tmaWxlLmMKaW5kZXggYzZmYjc3Yi4uOGZiY2I2YSAxMDA2NDQKLS0tIGEvbG9ja2ZpbGUuYworKysgYi9sb2NrZmlsZS5jCkBAIC0xMjQsMTUgKzEyNCwxNyBAQAogCiBzdGF0aWMgaW50IGxvY2tfZmlsZShzdHJ1Y3QgbG9ja19maWxlICpsaywgY29uc3QgY2hhciAqcGF0aCwgaW50IGZsYWdzKQogewotCWlmIChzdHJsZW4ocGF0aCkgPj0gc2l6ZW9mKGxrLT5maWxlbmFtZSkpCi0JCXJldHVybiAtMTsKLQlzdHJjcHkobGstPmZpbGVuYW1lLCBwYXRoKTsKIAkvKgogCSAqIHN1YnRyYWN0IDUgZnJvbSBzaXplIHRvIG1ha2Ugc3VyZSB0aGVyZSdzIHJvb20gZm9yIGFkZGluZwogCSAqICIubG9jayIgZm9yIHRoZSBsb2NrIGZpbGUgbmFtZQogCSAqLworCXN0YXRpYyBjb25zdCBzaXplX3QgbWF4X3BhdGhfbGVuID0gc2l6ZW9mKGxrLT5maWxlbmFtZSkgLSA1OworCisJaWYgKHN0cmxlbihwYXRoKSA+PSBtYXhfcGF0aF9sZW4pCisJCXJldHVybiAtMTsKKwlzdHJjcHkobGstPmZpbGVuYW1lLCBwYXRoKTsKIAlpZiAoIShmbGFncyAmIExPQ0tfTk9ERVJFRikpCi0JCXJlc29sdmVfc3ltbGluayhsay0+ZmlsZW5hbWUsIHNpemVvZihsay0+ZmlsZW5hbWUpLTUpOworCQlyZXNvbHZlX3N5bWxpbmsobGstPmZpbGVuYW1lLCBtYXhfcGF0aF9sZW4pOwogCXN0cmNhdChsay0+ZmlsZW5hbWUsICIubG9jayIpOwogCWxrLT5mZCA9IG9wZW4obGstPmZpbGVuYW1lLCBPX1JEV1IgfCBPX0NSRUFUIHwgT19FWENMLCAwNjY2KTsKIAlpZiAoMCA8PSBsay0+ZmQpIHsKZGlmZiAtLWdpdCBhL2xvZy10cmVlLmMgYi9sb2ctdHJlZS5jCmluZGV4IDE5NDZlOWMuLjg1MzRkOTEgMTAwNjQ0Ci0tLSBhL2xvZy10cmVlLmMKKysrIGIvbG9nLXRyZWUuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgImNvbG9yLmgiCiAjaW5jbHVkZSAiZ3BnLWludGVyZmFjZS5oIgogI2luY2x1ZGUgInNlcXVlbmNlci5oIgorI2luY2x1ZGUgImxpbmUtbG9nLmgiCiAKIHN0cnVjdCBkZWNvcmF0aW9uIG5hbWVfZGVjb3JhdGlvbiA9IHsgIm9iamVjdCBuYW1lcyIgfTsKIApAQCAtNjE2LDYgKzYxNyw5IEBACiAJY3R4LmZtdCA9IG9wdC0+Y29tbWl0X2Zvcm1hdDsKIAljdHgubWFpbG1hcCA9IG9wdC0+bWFpbG1hcDsKIAljdHguY29sb3IgPSBvcHQtPmRpZmZvcHQudXNlX2NvbG9yOworCWN0eC5vdXRwdXRfZW5jb2RpbmcgPSBnZXRfbG9nX291dHB1dF9lbmNvZGluZygpOworCWlmIChvcHQtPmZyb21faWRlbnQubWFpbF9iZWdpbiAmJiBvcHQtPmZyb21faWRlbnQubmFtZV9iZWdpbikKKwkJY3R4LmZyb21faWRlbnQgPSAmb3B0LT5mcm9tX2lkZW50OwogCXByZXR0eV9wcmludF9jb21taXQoJmN0eCwgY29tbWl0LCAmbXNnYnVmKTsKIAogCWlmIChvcHQtPmFkZF9zaWdub2ZmKQpAQCAtNzM0LDcgKzczOCw3IEBACiAJc2hhMSA9IGNvbW1pdC0+dHJlZS0+b2JqZWN0LnNoYTE7CiAKIAkvKiBSb290IGNvbW1pdD8gKi8KLQlwYXJlbnRzID0gY29tbWl0LT5wYXJlbnRzOworCXBhcmVudHMgPSBnZXRfc2F2ZWRfcGFyZW50cyhvcHQsIGNvbW1pdCk7CiAJaWYgKCFwYXJlbnRzKSB7CiAJCWlmIChvcHQtPnNob3dfcm9vdF9kaWZmKSB7CiAJCQlkaWZmX3Jvb3RfdHJlZV9zaGExKHNoYTEsICIiLCAmb3B0LT5kaWZmb3B0KTsKQEAgLTc5Niw2ICs4MDAsOSBAQAogCWxvZy5wYXJlbnQgPSBOVUxMOwogCW9wdC0+bG9naW5mbyA9ICZsb2c7CiAKKwlpZiAob3B0LT5saW5lX2xldmVsX3RyYXZlcnNlKQorCQlyZXR1cm4gbGluZV9sb2dfcHJpbnQob3B0LCBjb21taXQpOworCiAJc2hvd24gPSBsb2dfdHJlZV9kaWZmKG9wdCwgY29tbWl0LCAmbG9nKTsKIAlpZiAoIXNob3duICYmIG9wdC0+bG9naW5mbyAmJiBvcHQtPmFsd2F5c19zaG93X2hlYWRlcikgewogCQlsb2cucGFyZW50ID0gTlVMTDsKZGlmZiAtLWdpdCBhL21haWxtYXAuYyBiL21haWxtYXAuYwppbmRleCAyYTdiMzY2Li4zMDYxNDM0IDEwMDY0NAotLS0gYS9tYWlsbWFwLmMKKysrIGIvbWFpbG1hcC5jCkBAIC01LDggKzUsMTAgQEAKICNkZWZpbmUgREVCVUdfTUFJTE1BUCAwCiAjaWYgREVCVUdfTUFJTE1BUAogI2RlZmluZSBkZWJ1Z19tbSguLi4pIGZwcmludGYoc3RkZXJyLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgZGVidWdfc3RyKFgpICgoWCkgPyAoWCkgOiAiKG5vbmUpIikKICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQgZGVidWdfbW0oY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pIHt9CitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmRlYnVnX3N0cihjb25zdCBjaGFyICpzKSB7IHJldHVybiBzOyB9CiAjZW5kaWYKIAogY29uc3QgY2hhciAqZ2l0X21haWxtYXBfZmlsZTsKQEAgLTI5LDcgKzMxLDggQEAKIHN0YXRpYyB2b2lkIGZyZWVfbWFpbG1hcF9pbmZvKHZvaWQgKnAsIGNvbnN0IGNoYXIgKnMpCiB7CiAJc3RydWN0IG1haWxtYXBfaW5mbyAqbWkgPSAoc3RydWN0IG1haWxtYXBfaW5mbyAqKXA7Ci0JZGVidWdfbW0oIm1haWxtYXA6IC0tIGNvbXBsZXg6ICclcycgLT4gJyVzJyA8JXM+XG4iLCBzLCBtaS0+bmFtZSwgbWktPmVtYWlsKTsKKwlkZWJ1Z19tbSgibWFpbG1hcDogLS0gY29tcGxleDogJyVzJyAtPiAnJXMnIDwlcz5cbiIsCisJCSBzLCBkZWJ1Z19zdHIobWktPm5hbWUpLCBkZWJ1Z19zdHIobWktPmVtYWlsKSk7CiAJZnJlZShtaS0+bmFtZSk7CiAJZnJlZShtaS0+ZW1haWwpOwogfQpAQCAtMzcsOCArNDAsMTEgQEAKIHN0YXRpYyB2b2lkIGZyZWVfbWFpbG1hcF9lbnRyeSh2b2lkICpwLCBjb25zdCBjaGFyICpzKQogewogCXN0cnVjdCBtYWlsbWFwX2VudHJ5ICptZSA9IChzdHJ1Y3QgbWFpbG1hcF9lbnRyeSAqKXA7Ci0JZGVidWdfbW0oIm1haWxtYXA6IHJlbW92aW5nIGVudHJpZXMgZm9yIDwlcz4sIHdpdGggJWQgc3ViLWVudHJpZXNcbiIsIHMsIG1lLT5uYW1lbWFwLm5yKTsKLQlkZWJ1Z19tbSgibWFpbG1hcDogLSBzaW1wbGU6ICclcycgPCVzPlxuIiwgbWUtPm5hbWUsIG1lLT5lbWFpbCk7CisJZGVidWdfbW0oIm1haWxtYXA6IHJlbW92aW5nIGVudHJpZXMgZm9yIDwlcz4sIHdpdGggJWQgc3ViLWVudHJpZXNcbiIsCisJCSBzLCBtZS0+bmFtZW1hcC5ucik7CisJZGVidWdfbW0oIm1haWxtYXA6IC0gc2ltcGxlOiAnJXMnIDwlcz5cbiIsCisJCSBkZWJ1Z19zdHIobWUtPm5hbWUpLCBkZWJ1Z19zdHIobWUtPmVtYWlsKSk7CisKIAlmcmVlKG1lLT5uYW1lKTsKIAlmcmVlKG1lLT5lbWFpbCk7CiAKQEAgLTQ3LDE4ICs1MywxMSBAQAogfQogCiBzdGF0aWMgdm9pZCBhZGRfbWFwcGluZyhzdHJ1Y3Qgc3RyaW5nX2xpc3QgKm1hcCwKLQkJCWNoYXIgKm5ld19uYW1lLCBjaGFyICpuZXdfZW1haWwsIGNoYXIgKm9sZF9uYW1lLCBjaGFyICpvbGRfZW1haWwpCisJCQljaGFyICpuZXdfbmFtZSwgY2hhciAqbmV3X2VtYWlsLAorCQkJY2hhciAqb2xkX25hbWUsIGNoYXIgKm9sZF9lbWFpbCkKIHsKIAlzdHJ1Y3QgbWFpbG1hcF9lbnRyeSAqbWU7CiAJaW50IGluZGV4OwotCWNoYXIgKnA7Ci0KLQlpZiAob2xkX2VtYWlsKQotCQlmb3IgKHAgPSBvbGRfZW1haWw7ICpwOyBwKyspCi0JCQkqcCA9IHRvbG93ZXIoKnApOwotCWlmIChuZXdfZW1haWwpCi0JCWZvciAocCA9IG5ld19lbWFpbDsgKnA7IHArKykKLQkJCSpwID0gdG9sb3dlcigqcCk7CiAKIAlpZiAob2xkX2VtYWlsID09IE5VTEwpIHsKIAkJb2xkX2VtYWlsID0gbmV3X2VtYWlsOwpAQCAtNjgsMTYgKzY3LDIxIEBACiAJaWYgKChpbmRleCA9IHN0cmluZ19saXN0X2ZpbmRfaW5zZXJ0X2luZGV4KG1hcCwgb2xkX2VtYWlsLCAxKSkgPCAwKSB7CiAJCS8qIG1haWxtYXAgZW50cnkgZXhpc3RzLCBpbnZlcnQgaW5kZXggdmFsdWUgKi8KIAkJaW5kZXggPSAtMSAtIGluZGV4OworCQltZSA9IChzdHJ1Y3QgbWFpbG1hcF9lbnRyeSAqKW1hcC0+aXRlbXNbaW5kZXhdLnV0aWw7CiAJfSBlbHNlIHsKIAkJLyogY3JlYXRlIG1haWxtYXAgZW50cnkgKi8KLQkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW0gPSBzdHJpbmdfbGlzdF9pbnNlcnRfYXRfaW5kZXgobWFwLCBpbmRleCwgb2xkX2VtYWlsKTsKLQkJaXRlbS0+dXRpbCA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBtYWlsbWFwX2VudHJ5KSk7Ci0JCSgoc3RydWN0IG1haWxtYXBfZW50cnkgKilpdGVtLT51dGlsKS0+bmFtZW1hcC5zdHJkdXBfc3RyaW5ncyA9IDE7CisJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtOworCisJCWl0ZW0gPSBzdHJpbmdfbGlzdF9pbnNlcnRfYXRfaW5kZXgobWFwLCBpbmRleCwgb2xkX2VtYWlsKTsKKwkJbWUgPSB4Y2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgbWFpbG1hcF9lbnRyeSkpOworCQltZS0+bmFtZW1hcC5zdHJkdXBfc3RyaW5ncyA9IDE7CisJCW1lLT5uYW1lbWFwLmNtcCA9IHN0cmNhc2VjbXA7CisJCWl0ZW0tPnV0aWwgPSBtZTsKIAl9Ci0JbWUgPSAoc3RydWN0IG1haWxtYXBfZW50cnkgKiltYXAtPml0ZW1zW2luZGV4XS51dGlsOwogCiAJaWYgKG9sZF9uYW1lID09IE5VTEwpIHsKLQkJZGVidWdfbW0oIm1haWxtYXA6IGFkZGluZyAoc2ltcGxlKSBlbnRyeSBmb3IgJXMgYXQgaW5kZXggJWRcbiIsIG9sZF9lbWFpbCwgaW5kZXgpOworCQlkZWJ1Z19tbSgibWFpbG1hcDogYWRkaW5nIChzaW1wbGUpIGVudHJ5IGZvciAlcyBhdCBpbmRleCAlZFxuIiwKKwkJCSBvbGRfZW1haWwsIGluZGV4KTsKIAkJLyogUmVwbGFjZSBjdXJyZW50IG5hbWUgYW5kIG5ldyBlbWFpbCBmb3Igc2ltcGxlIGVudHJ5ICovCiAJCWlmIChuZXdfbmFtZSkgewogCQkJZnJlZShtZS0+bmFtZSk7CkBAIC04OSw3ICs5Myw4IEBACiAJCX0KIAl9IGVsc2UgewogCQlzdHJ1Y3QgbWFpbG1hcF9pbmZvICptaSA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBtYWlsbWFwX2luZm8pKTsKLQkJZGVidWdfbW0oIm1haWxtYXA6IGFkZGluZyAoY29tcGxleCkgZW50cnkgZm9yICVzIGF0IGluZGV4ICVkXG4iLCBvbGRfZW1haWwsIGluZGV4KTsKKwkJZGVidWdfbW0oIm1haWxtYXA6IGFkZGluZyAoY29tcGxleCkgZW50cnkgZm9yICVzIGF0IGluZGV4ICVkXG4iLAorCQkJIG9sZF9lbWFpbCwgaW5kZXgpOwogCQlpZiAobmV3X25hbWUpCiAJCQltaS0+bmFtZSA9IHhzdHJkdXAobmV3X25hbWUpOwogCQlpZiAobmV3X2VtYWlsKQpAQCAtOTgsMTEgKzEwMywxMiBAQAogCX0KIAogCWRlYnVnX21tKCJtYWlsbWFwOiAgJyVzJyA8JXM+IC0+ICclcycgPCVzPlxuIiwKLQkJIG9sZF9uYW1lLCBvbGRfZW1haWwsIG5ld19uYW1lLCBuZXdfZW1haWwpOworCQkgZGVidWdfc3RyKG9sZF9uYW1lKSwgb2xkX2VtYWlsLAorCQkgZGVidWdfc3RyKG5ld19uYW1lKSwgZGVidWdfc3RyKG5ld19lbWFpbCkpOwogfQogCiBzdGF0aWMgY2hhciAqcGFyc2VfbmFtZV9hbmRfZW1haWwoY2hhciAqYnVmZmVyLCBjaGFyICoqbmFtZSwKLQkJY2hhciAqKmVtYWlsLCBpbnQgYWxsb3dfZW1wdHlfZW1haWwpCisJCQkJICBjaGFyICoqZW1haWwsIGludCBhbGxvd19lbXB0eV9lbWFpbCkKIHsKIAljaGFyICpsZWZ0LCAqcmlnaHQsICpuc3RhcnQsICpuZW5kOwogCSpuYW1lID0gKmVtYWlsID0gTlVMTDsKQEAgLTEyMiw3ICsxMjgsNyBAQAogCXdoaWxlIChuZW5kID4gbnN0YXJ0ICYmIGlzc3BhY2UoKm5lbmQpKQogCQktLW5lbmQ7CiAKLQkqbmFtZSA9IChuc3RhcnQgPCBuZW5kID8gbnN0YXJ0IDogTlVMTCk7CisJKm5hbWUgPSAobnN0YXJ0IDw9IG5lbmQgPyBuc3RhcnQgOiBOVUxMKTsKIAkqZW1haWwgPSBsZWZ0KzE7CiAJKihuZW5kKzEpID0gJ1wwJzsKIAkqcmlnaHQrKyA9ICdcMCc7CkBAIC0xODcsMjAgKzE5MywxNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCByZWFkX21haWxtYXBfYnVmKHN0cnVjdCBzdHJpbmdfbGlzdCAqbWFwLAotCQkJICAgICBjb25zdCBjaGFyICpidWYsIHVuc2lnbmVkIGxvbmcgbGVuLAotCQkJICAgICBjaGFyICoqcmVwb19hYmJyZXYpCitzdGF0aWMgdm9pZCByZWFkX21haWxtYXBfc3RyaW5nKHN0cnVjdCBzdHJpbmdfbGlzdCAqbWFwLCBjaGFyICpidWYsCisJCQkJY2hhciAqKnJlcG9fYWJicmV2KQogewotCXdoaWxlIChsZW4pIHsKLQkJY29uc3QgY2hhciAqZW5kID0gc3RyY2hybnVsKGJ1ZiwgJ1xuJyk7Ci0JCXVuc2lnbmVkIGxvbmcgbGluZWxlbiA9IGVuZCAtIGJ1ZiArIDE7Ci0JCWNoYXIgKmxpbmUgPSB4bWVtZHVweihidWYsIGxpbmVsZW4pOworCXdoaWxlICgqYnVmKSB7CisJCWNoYXIgKmVuZCA9IHN0cmNocm51bChidWYsICdcbicpOwogCi0JCXJlYWRfbWFpbG1hcF9saW5lKG1hcCwgbGluZSwgcmVwb19hYmJyZXYpOworCQlpZiAoKmVuZCkKKwkJCSplbmQrKyA9ICdcMCc7CiAKLQkJZnJlZShsaW5lKTsKLQkJYnVmICs9IGxpbmVsZW47Ci0JCWxlbiAtPSBsaW5lbGVuOworCQlyZWFkX21haWxtYXBfbGluZShtYXAsIGJ1ZiwgcmVwb19hYmJyZXYpOworCQlidWYgPSBlbmQ7CiAJfQogfQogCkBAIC0yMjQsNyArMjI3LDcgQEAKIAlpZiAodHlwZSAhPSBPQkpfQkxPQikKIAkJcmV0dXJuIGVycm9yKCJtYWlsbWFwIGlzIG5vdCBhIGJsb2I6ICVzIiwgbmFtZSk7CiAKLQlyZWFkX21haWxtYXBfYnVmKG1hcCwgYnVmLCBzaXplLCByZXBvX2FiYnJldik7CisJcmVhZF9tYWlsbWFwX3N0cmluZyhtYXAsIGJ1ZiwgcmVwb19hYmJyZXYpOwogCiAJZnJlZShidWYpOwogCXJldHVybiAwOwpAQCAtMzA2LDIxICszMDksMjUgQEAKIH0KIAogaW50IG1hcF91c2VyKHN0cnVjdCBzdHJpbmdfbGlzdCAqbWFwLAotCQkJIGNvbnN0IGNoYXIgKiplbWFpbCwgc2l6ZV90ICplbWFpbGxlbiwKLQkJCSBjb25zdCBjaGFyICoqbmFtZSwgc2l6ZV90ICpuYW1lbGVuKQorCSAgICAgY29uc3QgY2hhciAqKmVtYWlsLCBzaXplX3QgKmVtYWlsbGVuLAorCSAgICAgY29uc3QgY2hhciAqKm5hbWUsIHNpemVfdCAqbmFtZWxlbikKIHsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKIAlzdHJ1Y3QgbWFpbG1hcF9lbnRyeSAqbWU7CiAKIAlkZWJ1Z19tbSgibWFwX3VzZXI6IG1hcCAnJS4qcycgPCUuKnM+XG4iLAotCQkgKm5hbWUsICpuYW1lbGVuLCAqZW1haWxsZW4sICplbWFpbCk7CisJCSAoaW50KSpuYW1lbGVuLCBkZWJ1Z19zdHIoKm5hbWUpLAorCQkgKGludCkqZW1haWxsZW4sIGRlYnVnX3N0cigqZW1haWwpKTsKIAogCWl0ZW0gPSBsb29rdXBfcHJlZml4KG1hcCwgKmVtYWlsLCAqZW1haWxsZW4pOwogCWlmIChpdGVtICE9IE5VTEwpIHsKIAkJbWUgPSAoc3RydWN0IG1haWxtYXBfZW50cnkgKilpdGVtLT51dGlsOwogCQlpZiAobWUtPm5hbWVtYXAubnIpIHsKLQkJCS8qIFRoZSBpdGVtIGhhcyBtdWx0aXBsZSBpdGVtcywgc28gd2UnbGwgbG9vayB1cCBvbiBuYW1lIHRvbyAqLwotCQkJLyogSWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kLCB3ZSBjaG9vc2UgdGhlIHNpbXBsZSBlbnRyeSAgICAgICovCisJCQkvKgorCQkJICogVGhlIGl0ZW0gaGFzIG11bHRpcGxlIGl0ZW1zLCBzbyB3ZSdsbCBsb29rIHVwIG9uCisJCQkgKiBuYW1lIHRvby4gSWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kLCB3ZSBjaG9vc2UgdGhlCisJCQkgKiBzaW1wbGUgZW50cnkuCisJCQkgKi8KIAkJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICpzdWJpdGVtOwogCQkJc3ViaXRlbSA9IGxvb2t1cF9wcmVmaXgoJm1lLT5uYW1lbWFwLCAqbmFtZSwgKm5hbWVsZW4pOwogCQkJaWYgKHN1Yml0ZW0pCkBAIC0zNDEsOCArMzQ4LDkgQEAKIAkJCQkqbmFtZSA9IG1pLT5uYW1lOwogCQkJCSpuYW1lbGVuID0gc3RybGVuKCpuYW1lKTsKIAkJfQotCQlkZWJ1Z19tbSgibWFwX3VzZXI6ICB0byAnJS4qcycgPC4qJXM+XG4iLCAqbmFtZWxlbiwgKm5hbWUsCi0JCQkJICplbWFpbGxlbiwgKmVtYWlsKTsKKwkJZGVidWdfbW0oIm1hcF91c2VyOiAgdG8gJyUuKnMnIDwlLipzPlxuIiwKKwkJCSAoaW50KSpuYW1lbGVuLCBkZWJ1Z19zdHIoKm5hbWUpLAorCQkJIChpbnQpKmVtYWlsbGVuLCBkZWJ1Z19zdHIoKmVtYWlsKSk7CiAJCXJldHVybiAxOwogCX0KIAlkZWJ1Z19tbSgibWFwX3VzZXI6ICAtLVxuIik7CmRpZmYgLS1naXQgYS9tYXRjaC10cmVlcy5jIGIvbWF0Y2gtdHJlZXMuYwppbmRleCAyYmI3MzRkLi43ODczY2RlIDEwMDY0NAotLS0gYS9tYXRjaC10cmVlcy5jCisrKyBiL21hdGNoLXRyZWVzLmMKQEAgLTQ3LDYgKzQ3LDIyIEBACiAJcmV0dXJuIHNjb3JlOwogfQogCitzdGF0aWMgdm9pZCAqZmlsbF90cmVlX2Rlc2Nfc3RyaWN0KHN0cnVjdCB0cmVlX2Rlc2MgKmRlc2MsCisJCQkJICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCkKK3sKKwl2b2lkICpidWZmZXI7CisJZW51bSBvYmplY3RfdHlwZSB0eXBlOworCXVuc2lnbmVkIGxvbmcgc2l6ZTsKKworCWJ1ZmZlciA9IHJlYWRfc2hhMV9maWxlKGhhc2gsICZ0eXBlLCAmc2l6ZSk7CisJaWYgKCFidWZmZXIpCisJCWRpZSgidW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIiwgc2hhMV90b19oZXgoaGFzaCkpOworCWlmICh0eXBlICE9IE9CSl9UUkVFKQorCQlkaWUoIiVzIGlzIG5vdCBhIHRyZWUiLCBzaGExX3RvX2hleChoYXNoKSk7CisJaW5pdF90cmVlX2Rlc2MoZGVzYywgYnVmZmVyLCBzaXplKTsKKwlyZXR1cm4gYnVmZmVyOworfQorCiBzdGF0aWMgaW50IGJhc2VfbmFtZV9lbnRyaWVzX2NvbXBhcmUoY29uc3Qgc3RydWN0IG5hbWVfZW50cnkgKmEsCiAJCQkJICAgICBjb25zdCBzdHJ1Y3QgbmFtZV9lbnRyeSAqYikKIHsKQEAgLTYxLDIzICs3NywxMCBAQAogewogCXN0cnVjdCB0cmVlX2Rlc2Mgb25lOwogCXN0cnVjdCB0cmVlX2Rlc2MgdHdvOwotCXZvaWQgKm9uZV9idWYsICp0d29fYnVmOworCXZvaWQgKm9uZV9idWYgPSBmaWxsX3RyZWVfZGVzY19zdHJpY3QoJm9uZSwgaGFzaDEpOworCXZvaWQgKnR3b19idWYgPSBmaWxsX3RyZWVfZGVzY19zdHJpY3QoJnR3bywgaGFzaDIpOwogCWludCBzY29yZSA9IDA7Ci0JZW51bSBvYmplY3RfdHlwZSB0eXBlOwotCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAotCW9uZV9idWYgPSByZWFkX3NoYTFfZmlsZShoYXNoMSwgJnR5cGUsICZzaXplKTsKLQlpZiAoIW9uZV9idWYpCi0JCWRpZSgidW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIiwgc2hhMV90b19oZXgoaGFzaDEpKTsKLQlpZiAodHlwZSAhPSBPQkpfVFJFRSkKLQkJZGllKCIlcyBpcyBub3QgYSB0cmVlIiwgc2hhMV90b19oZXgoaGFzaDEpKTsKLQlpbml0X3RyZWVfZGVzYygmb25lLCBvbmVfYnVmLCBzaXplKTsKLQl0d29fYnVmID0gcmVhZF9zaGExX2ZpbGUoaGFzaDIsICZ0eXBlLCAmc2l6ZSk7Ci0JaWYgKCF0d29fYnVmKQotCQlkaWUoInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIsIHNoYTFfdG9faGV4KGhhc2gyKSk7Ci0JaWYgKHR5cGUgIT0gT0JKX1RSRUUpCi0JCWRpZSgiJXMgaXMgbm90IGEgdHJlZSIsIHNoYTFfdG9faGV4KGhhc2gyKSk7Ci0JaW5pdF90cmVlX2Rlc2MoJnR3bywgdHdvX2J1Ziwgc2l6ZSk7CiAJZm9yICg7OykgewogCQlzdHJ1Y3QgbmFtZV9lbnRyeSBlMSwgZTI7CiAJCWludCBnb3RfZW50cnlfZnJvbV9vbmUgPSB0cmVlX2VudHJ5KCZvbmUsICZlMSk7CkBAIC0xMjQsMTYgKzEyNyw3IEBACiAJCQlpbnQgcmVjdXJzZV9saW1pdCkKIHsKIAlzdHJ1Y3QgdHJlZV9kZXNjIG9uZTsKLQl2b2lkICpvbmVfYnVmOwotCWVudW0gb2JqZWN0X3R5cGUgdHlwZTsKLQl1bnNpZ25lZCBsb25nIHNpemU7Ci0KLQlvbmVfYnVmID0gcmVhZF9zaGExX2ZpbGUoaGFzaDEsICZ0eXBlLCAmc2l6ZSk7Ci0JaWYgKCFvbmVfYnVmKQotCQlkaWUoInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIsIHNoYTFfdG9faGV4KGhhc2gxKSk7Ci0JaWYgKHR5cGUgIT0gT0JKX1RSRUUpCi0JCWRpZSgiJXMgaXMgbm90IGEgdHJlZSIsIHNoYTFfdG9faGV4KGhhc2gxKSk7Ci0JaW5pdF90cmVlX2Rlc2MoJm9uZSwgb25lX2J1Ziwgc2l6ZSk7CisJdm9pZCAqb25lX2J1ZiA9IGZpbGxfdHJlZV9kZXNjX3N0cmljdCgmb25lLCBoYXNoMSk7CiAKIAl3aGlsZSAob25lLnNpemUpIHsKIAkJY29uc3QgY2hhciAqcGF0aDsKZGlmZiAtLWdpdCBhL21lcmdlLXJlY3Vyc2l2ZS5jIGIvbWVyZ2UtcmVjdXJzaXZlLmMKaW5kZXggZWE5ZGJkMy4uZjk1OTMzYiAxMDA2NDQKLS0tIGEvbWVyZ2UtcmVjdXJzaXZlLmMKKysrIGIvbWVyZ2UtcmVjdXJzaXZlLmMKQEAgLTI1MSw3ICsyNTEsNyBAQAogCQlpbnQgaTsKIAkJZnByaW50ZihzdGRlcnIsICJCVUc6IFRoZXJlIGFyZSB1bm1lcmdlZCBpbmRleCBlbnRyaWVzOlxuIik7CiAJCWZvciAoaSA9IDA7IGkgPCBhY3RpdmVfbnI7IGkrKykgewotCQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CiAJCQlpZiAoY2Vfc3RhZ2UoY2UpKQogCQkJCWZwcmludGYoc3RkZXJyLCAiQlVHOiAlZCAlLipzXG4iLCBjZV9zdGFnZShjZSksCiAJCQkJCShpbnQpY2VfbmFtZWxlbihjZSksIGNlLT5uYW1lKTsKQEAgLTI2NCw3ICsyNjQsOCBAQAogCiAJaWYgKCFjYWNoZV90cmVlX2Z1bGx5X3ZhbGlkKGFjdGl2ZV9jYWNoZV90cmVlKSAmJgogCSAgICBjYWNoZV90cmVlX3VwZGF0ZShhY3RpdmVfY2FjaGVfdHJlZSwKLQkJCSAgICAgIGFjdGl2ZV9jYWNoZSwgYWN0aXZlX25yLCAwKSA8IDApCisJCQkgICAgICAoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKilhY3RpdmVfY2FjaGUsCisJCQkgICAgICBhY3RpdmVfbnIsIDApIDwgMCkKIAkJZGllKF8oImVycm9yIGJ1aWxkaW5nIHRyZWVzIikpOwogCiAJcmVzdWx0ID0gbG9va3VwX3RyZWUoYWN0aXZlX2NhY2hlX3RyZWUtPnNoYTEpOwpAQCAtMzM5LDcgKzM0MCw3IEBACiAJZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjsgaSsrKSB7CiAJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtOwogCQlzdHJ1Y3Qgc3RhZ2VfZGF0YSAqZTsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJaWYgKCFjZV9zdGFnZShjZSkpCiAJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvbm90ZXMtbWVyZ2UuYyBiL25vdGVzLW1lcmdlLmMKaW5kZXggMGY2N2JkMy4uYWIxODg1NyAxMDA2NDQKLS0tIGEvbm90ZXMtbWVyZ2UuYworKysgYi9ub3Rlcy1tZXJnZS5jCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgIm5vdGVzLmgiCiAjaW5jbHVkZSAibm90ZXMtbWVyZ2UuaCIKICNpbmNsdWRlICJzdHJidWYuaCIKKyNpbmNsdWRlICJub3Rlcy11dGlscy5oIgogCiBzdHJ1Y3Qgbm90ZXNfbWVyZ2VfcGFpciB7CiAJdW5zaWduZWQgY2hhciBvYmpbMjBdLCBiYXNlWzIwXSwgbG9jYWxbMjBdLCByZW1vdGVbMjBdOwpAQCAtNTMwLDMyICs1MzEsNiBAQAogCXJldHVybiBjb25mbGljdHMgPyAtMSA6IDE7CiB9CiAKLXZvaWQgY3JlYXRlX25vdGVzX2NvbW1pdChzdHJ1Y3Qgbm90ZXNfdHJlZSAqdCwgc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzLAotCQkJIGNvbnN0IHN0cnVjdCBzdHJidWYgKm1zZywgdW5zaWduZWQgY2hhciAqcmVzdWx0X3NoYTEpCi17Ci0JdW5zaWduZWQgY2hhciB0cmVlX3NoYTFbMjBdOwotCi0JYXNzZXJ0KHQtPmluaXRpYWxpemVkKTsKLQotCWlmICh3cml0ZV9ub3Rlc190cmVlKHQsIHRyZWVfc2hhMSkpCi0JCWRpZSgiRmFpbGVkIHRvIHdyaXRlIG5vdGVzIHRyZWUgdG8gZGF0YWJhc2UiKTsKLQotCWlmICghcGFyZW50cykgewotCQkvKiBEZWR1Y2UgcGFyZW50IGNvbW1pdCBmcm9tIHQtPnJlZiAqLwotCQl1bnNpZ25lZCBjaGFyIHBhcmVudF9zaGExWzIwXTsKLQkJaWYgKCFyZWFkX3JlZih0LT5yZWYsIHBhcmVudF9zaGExKSkgewotCQkJc3RydWN0IGNvbW1pdCAqcGFyZW50ID0gbG9va3VwX2NvbW1pdChwYXJlbnRfc2hhMSk7Ci0JCQlpZiAoIXBhcmVudCB8fCBwYXJzZV9jb21taXQocGFyZW50KSkKLQkJCQlkaWUoIkZhaWxlZCB0byBmaW5kL3BhcnNlIGNvbW1pdCAlcyIsIHQtPnJlZik7Ci0JCQljb21taXRfbGlzdF9pbnNlcnQocGFyZW50LCAmcGFyZW50cyk7Ci0JCX0KLQkJLyogZWxzZTogdC0+cmVmIHBvaW50cyB0byBub3RoaW5nLCBhc3N1bWUgcm9vdC9vcnBoYW4gY29tbWl0ICovCi0JfQotCi0JaWYgKGNvbW1pdF90cmVlKG1zZywgdHJlZV9zaGExLCBwYXJlbnRzLCByZXN1bHRfc2hhMSwgTlVMTCwgTlVMTCkpCi0JCWRpZSgiRmFpbGVkIHRvIGNvbW1pdCBub3RlcyB0cmVlIHRvIGRhdGFiYXNlIik7Ci19Ci0KIGludCBub3Rlc19tZXJnZShzdHJ1Y3Qgbm90ZXNfbWVyZ2Vfb3B0aW9ucyAqbywKIAkJc3RydWN0IG5vdGVzX3RyZWUgKmxvY2FsX3RyZWUsCiAJCXVuc2lnbmVkIGNoYXIgKnJlc3VsdF9zaGExKQpkaWZmIC0tZ2l0IGEvbm90ZXMtbWVyZ2UuaCBiL25vdGVzLW1lcmdlLmgKaW5kZXggMGMxMWIxNy4uMWQwMWY2YSAxMDA2NDQKLS0tIGEvbm90ZXMtbWVyZ2UuaAorKysgYi9ub3Rlcy1tZXJnZS5oCkBAIC0yNiwyMCArMjYsNiBAQAogdm9pZCBpbml0X25vdGVzX21lcmdlX29wdGlvbnMoc3RydWN0IG5vdGVzX21lcmdlX29wdGlvbnMgKm8pOwogCiAvKgotICogQ3JlYXRlIG5ldyBub3RlcyBjb21taXQgZnJvbSB0aGUgZ2l2ZW4gbm90ZXMgdHJlZQotICoKLSAqIFByb3BlcnRpZXMgb2YgdGhlIGNyZWF0ZWQgY29tbWl0OgotICogLSB0cmVlOiB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgdCB0byBhIHRyZWUgb2JqZWN0IHdpdGggd3JpdGVfbm90ZXNfdHJlZSgpLgotICogLSBwYXJlbnRzOiB0aGUgZ2l2ZW4gcGFyZW50cyBPUiAoaWYgTlVMTCkgdGhlIGNvbW1pdCByZWZlcmVuY2VkIGJ5IHQtPnJlZi4KLSAqIC0gYXV0aG9yL2NvbW1pdHRlcjogdGhlIGRlZmF1bHQgZGV0ZXJtaW5lZCBieSBjb21tbWl0X3RyZWUoKS4KLSAqIC0gY29tbWl0IG1lc3NhZ2U6IG1zZwotICoKLSAqIFRoZSByZXN1bHRpbmcgY29tbWl0IFNIQTEgaXMgc3RvcmVkIGluIHJlc3VsdF9zaGExLgotICovCi12b2lkIGNyZWF0ZV9ub3Rlc19jb21taXQoc3RydWN0IG5vdGVzX3RyZWUgKnQsIHN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50cywKLQkJCSBjb25zdCBzdHJ1Y3Qgc3RyYnVmICptc2csIHVuc2lnbmVkIGNoYXIgKnJlc3VsdF9zaGExKTsKLQotLyoKICAqIE1lcmdlIG5vdGVzIGZyb20gby0+cmVtb3RlX3JlZiBpbnRvIG8tPmxvY2FsX3JlZgogICoKICAqIFRoZSBnaXZlbiBub3Rlc190cmVlICdsb2NhbF90cmVlJyBtdXN0IGJlIHRoZSBub3Rlc190cmVlIHJlZmVyZW5jZWQgYnkgdGhlCmRpZmYgLS1naXQgYS9ub3Rlcy11dGlscy5jIGIvbm90ZXMtdXRpbHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTA3YzM3Ci0tLSAvZGV2L251bGwKKysrIGIvbm90ZXMtdXRpbHMuYwpAQCAtMCwwICsxLDE1NyBAQAorI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCisjaW5jbHVkZSAicmVmcy5oIgorI2luY2x1ZGUgIm5vdGVzLXV0aWxzLmgiCisKK3ZvaWQgY3JlYXRlX25vdGVzX2NvbW1pdChzdHJ1Y3Qgbm90ZXNfdHJlZSAqdCwgc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzLAorCQkJIGNvbnN0IHN0cnVjdCBzdHJidWYgKm1zZywgdW5zaWduZWQgY2hhciAqcmVzdWx0X3NoYTEpCit7CisJdW5zaWduZWQgY2hhciB0cmVlX3NoYTFbMjBdOworCisJYXNzZXJ0KHQtPmluaXRpYWxpemVkKTsKKworCWlmICh3cml0ZV9ub3Rlc190cmVlKHQsIHRyZWVfc2hhMSkpCisJCWRpZSgiRmFpbGVkIHRvIHdyaXRlIG5vdGVzIHRyZWUgdG8gZGF0YWJhc2UiKTsKKworCWlmICghcGFyZW50cykgeworCQkvKiBEZWR1Y2UgcGFyZW50IGNvbW1pdCBmcm9tIHQtPnJlZiAqLworCQl1bnNpZ25lZCBjaGFyIHBhcmVudF9zaGExWzIwXTsKKwkJaWYgKCFyZWFkX3JlZih0LT5yZWYsIHBhcmVudF9zaGExKSkgeworCQkJc3RydWN0IGNvbW1pdCAqcGFyZW50ID0gbG9va3VwX2NvbW1pdChwYXJlbnRfc2hhMSk7CisJCQlpZiAoIXBhcmVudCB8fCBwYXJzZV9jb21taXQocGFyZW50KSkKKwkJCQlkaWUoIkZhaWxlZCB0byBmaW5kL3BhcnNlIGNvbW1pdCAlcyIsIHQtPnJlZik7CisJCQljb21taXRfbGlzdF9pbnNlcnQocGFyZW50LCAmcGFyZW50cyk7CisJCX0KKwkJLyogZWxzZTogdC0+cmVmIHBvaW50cyB0byBub3RoaW5nLCBhc3N1bWUgcm9vdC9vcnBoYW4gY29tbWl0ICovCisJfQorCisJaWYgKGNvbW1pdF90cmVlKG1zZywgdHJlZV9zaGExLCBwYXJlbnRzLCByZXN1bHRfc2hhMSwgTlVMTCwgTlVMTCkpCisJCWRpZSgiRmFpbGVkIHRvIGNvbW1pdCBub3RlcyB0cmVlIHRvIGRhdGFiYXNlIik7Cit9CisKK3ZvaWQgY29tbWl0X25vdGVzKHN0cnVjdCBub3Rlc190cmVlICp0LCBjb25zdCBjaGFyICptc2cpCit7CisJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKwl1bnNpZ25lZCBjaGFyIGNvbW1pdF9zaGExWzIwXTsKKworCWlmICghdCkKKwkJdCA9ICZkZWZhdWx0X25vdGVzX3RyZWU7CisJaWYgKCF0LT5pbml0aWFsaXplZCB8fCAhdC0+cmVmIHx8ICEqdC0+cmVmKQorCQlkaWUoXygiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIikpOworCWlmICghdC0+ZGlydHkpCisJCXJldHVybjsgLyogZG9uJ3QgaGF2ZSB0byBjb21taXQgYW4gdW5jaGFuZ2VkIHRyZWUgKi8KKworCS8qIFByZXBhcmUgY29tbWl0IG1lc3NhZ2UgYW5kIHJlZmxvZyBtZXNzYWdlICovCisJc3RyYnVmX2FkZHN0cigmYnVmLCBtc2cpOworCWlmIChidWYuYnVmW2J1Zi5sZW4gLSAxXSAhPSAnXG4nKQorCQlzdHJidWZfYWRkY2goJmJ1ZiwgJ1xuJyk7IC8qIE1ha2Ugc3VyZSBtc2cgZW5kcyB3aXRoIG5ld2xpbmUgKi8KKworCWNyZWF0ZV9ub3Rlc19jb21taXQodCwgTlVMTCwgJmJ1ZiwgY29tbWl0X3NoYTEpOworCXN0cmJ1Zl9pbnNlcnQoJmJ1ZiwgMCwgIm5vdGVzOiAiLCA3KTsgLyogY29tbWl0IG1lc3NhZ2Ugc3RhcnRzIGF0IGluZGV4IDcgKi8KKwl1cGRhdGVfcmVmKGJ1Zi5idWYsIHQtPnJlZiwgY29tbWl0X3NoYTEsIE5VTEwsIDAsIERJRV9PTl9FUlIpOworCisJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7Cit9CisKK3N0YXRpYyBjb21iaW5lX25vdGVzX2ZuIHBhcnNlX2NvbWJpbmVfbm90ZXNfZm4oY29uc3QgY2hhciAqdikKK3sKKwlpZiAoIXN0cmNhc2VjbXAodiwgIm92ZXJ3cml0ZSIpKQorCQlyZXR1cm4gY29tYmluZV9ub3Rlc19vdmVyd3JpdGU7CisJZWxzZSBpZiAoIXN0cmNhc2VjbXAodiwgImlnbm9yZSIpKQorCQlyZXR1cm4gY29tYmluZV9ub3Rlc19pZ25vcmU7CisJZWxzZSBpZiAoIXN0cmNhc2VjbXAodiwgImNvbmNhdGVuYXRlIikpCisJCXJldHVybiBjb21iaW5lX25vdGVzX2NvbmNhdGVuYXRlOworCWVsc2UgaWYgKCFzdHJjYXNlY21wKHYsICJjYXRfc29ydF91bmlxIikpCisJCXJldHVybiBjb21iaW5lX25vdGVzX2NhdF9zb3J0X3VuaXE7CisJZWxzZQorCQlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGludCBub3Rlc19yZXdyaXRlX2NvbmZpZyhjb25zdCBjaGFyICprLCBjb25zdCBjaGFyICp2LCB2b2lkICpjYikKK3sKKwlzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMgPSBjYjsKKwlpZiAoIXByZWZpeGNtcChrLCAibm90ZXMucmV3cml0ZS4iKSAmJiAhc3RyY21wKGsrMTQsIGMtPmNtZCkpIHsKKwkJYy0+ZW5hYmxlZCA9IGdpdF9jb25maWdfYm9vbChrLCB2KTsKKwkJcmV0dXJuIDA7CisJfSBlbHNlIGlmICghYy0+bW9kZV9mcm9tX2VudiAmJiAhc3RyY21wKGssICJub3Rlcy5yZXdyaXRlbW9kZSIpKSB7CisJCWlmICghdikKKwkJCWNvbmZpZ19lcnJvcl9ub25ib29sKGspOworCQljLT5jb21iaW5lID0gcGFyc2VfY29tYmluZV9ub3Rlc19mbih2KTsKKwkJaWYgKCFjLT5jb21iaW5lKSB7CisJCQllcnJvcihfKCJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciKSwgdik7CisJCQlyZXR1cm4gMTsKKwkJfQorCQlyZXR1cm4gMDsKKwl9IGVsc2UgaWYgKCFjLT5yZWZzX2Zyb21fZW52ICYmICFzdHJjbXAoaywgIm5vdGVzLnJld3JpdGVyZWYiKSkgeworCQkvKiBub3RlIHRoYXQgYSByZWZzLyBwcmVmaXggaXMgaW1wbGllZCBpbiB0aGUKKwkJICogdW5kZXJseWluZyBmb3JfZWFjaF9nbG9iX3JlZiAqLworCQlpZiAoIXByZWZpeGNtcCh2LCAicmVmcy9ub3Rlcy8iKSkKKwkJCXN0cmluZ19saXN0X2FkZF9yZWZzX2J5X2dsb2IoYy0+cmVmcywgdik7CisJCWVsc2UKKwkJCXdhcm5pbmcoXygiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyIKKwkJCQkiIChvdXRzaWRlIG9mIHJlZnMvbm90ZXMvKSIpLCB2KTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKworc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICppbml0X2NvcHlfbm90ZXNfZm9yX3Jld3JpdGUoY29uc3QgY2hhciAqY21kKQoreworCXN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZyAqYyA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZykpOworCWNvbnN0IGNoYXIgKnJld3JpdGVfbW9kZV9lbnYgPSBnZXRlbnYoR0lUX05PVEVTX1JFV1JJVEVfTU9ERV9FTlZJUk9OTUVOVCk7CisJY29uc3QgY2hhciAqcmV3cml0ZV9yZWZzX2VudiA9IGdldGVudihHSVRfTk9URVNfUkVXUklURV9SRUZfRU5WSVJPTk1FTlQpOworCWMtPmNtZCA9IGNtZDsKKwljLT5lbmFibGVkID0gMTsKKwljLT5jb21iaW5lID0gY29tYmluZV9ub3Rlc19jb25jYXRlbmF0ZTsKKwljLT5yZWZzID0geGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IHN0cmluZ19saXN0KSk7CisJYy0+cmVmcy0+c3RyZHVwX3N0cmluZ3MgPSAxOworCWMtPnJlZnNfZnJvbV9lbnYgPSAwOworCWMtPm1vZGVfZnJvbV9lbnYgPSAwOworCWlmIChyZXdyaXRlX21vZGVfZW52KSB7CisJCWMtPm1vZGVfZnJvbV9lbnYgPSAxOworCQljLT5jb21iaW5lID0gcGFyc2VfY29tYmluZV9ub3Rlc19mbihyZXdyaXRlX21vZGVfZW52KTsKKwkJaWYgKCFjLT5jb21iaW5lKQorCQkJLyogVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKKwkJCSAgIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZSAqLworCQkJZXJyb3IoXygiQmFkICVzIHZhbHVlOiAnJXMnIiksIEdJVF9OT1RFU19SRVdSSVRFX01PREVfRU5WSVJPTk1FTlQsCisJCQkJCXJld3JpdGVfbW9kZV9lbnYpOworCX0KKwlpZiAocmV3cml0ZV9yZWZzX2VudikgeworCQljLT5yZWZzX2Zyb21fZW52ID0gMTsKKwkJc3RyaW5nX2xpc3RfYWRkX3JlZnNfZnJvbV9jb2xvbl9zZXAoYy0+cmVmcywgcmV3cml0ZV9yZWZzX2Vudik7CisJfQorCWdpdF9jb25maWcobm90ZXNfcmV3cml0ZV9jb25maWcsIGMpOworCWlmICghYy0+ZW5hYmxlZCB8fCAhYy0+cmVmcy0+bnIpIHsKKwkJc3RyaW5nX2xpc3RfY2xlYXIoYy0+cmVmcywgMCk7CisJCWZyZWUoYy0+cmVmcyk7CisJCWZyZWUoYyk7CisJCXJldHVybiBOVUxMOworCX0KKwljLT50cmVlcyA9IGxvYWRfbm90ZXNfdHJlZXMoYy0+cmVmcyk7CisJc3RyaW5nX2xpc3RfY2xlYXIoYy0+cmVmcywgMCk7CisJZnJlZShjLT5yZWZzKTsKKwlyZXR1cm4gYzsKK30KKworaW50IGNvcHlfbm90ZV9mb3JfcmV3cml0ZShzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMsCisJCQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb21fb2JqLCBjb25zdCB1bnNpZ25lZCBjaGFyICp0b19vYmopCit7CisJaW50IHJldCA9IDA7CisJaW50IGk7CisJZm9yIChpID0gMDsgYy0+dHJlZXNbaV07IGkrKykKKwkJcmV0ID0gY29weV9ub3RlKGMtPnRyZWVzW2ldLCBmcm9tX29iaiwgdG9fb2JqLCAxLCBjLT5jb21iaW5lKSB8fCByZXQ7CisJcmV0dXJuIHJldDsKK30KKwordm9pZCBmaW5pc2hfY29weV9ub3Rlc19mb3JfcmV3cml0ZShzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMsIGNvbnN0IGNoYXIgKm1zZykKK3sKKwlpbnQgaTsKKwlmb3IgKGkgPSAwOyBjLT50cmVlc1tpXTsgaSsrKSB7CisJCWNvbW1pdF9ub3RlcyhjLT50cmVlc1tpXSwgbXNnKTsKKwkJZnJlZV9ub3RlcyhjLT50cmVlc1tpXSk7CisJfQorCWZyZWUoYy0+dHJlZXMpOworCWZyZWUoYyk7Cit9CmRpZmYgLS1naXQgYS9ub3Rlcy11dGlscy5oIGIvbm90ZXMtdXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGNiMWJmCi0tLSAvZGV2L251bGwKKysrIGIvbm90ZXMtdXRpbHMuaApAQCAtMCwwICsxLDM3IEBACisjaWZuZGVmIE5PVEVTX1VUSUxTX0gKKyNkZWZpbmUgTk9URVNfVVRJTFNfSAorCisjaW5jbHVkZSAibm90ZXMuaCIKKworLyoKKyAqIENyZWF0ZSBuZXcgbm90ZXMgY29tbWl0IGZyb20gdGhlIGdpdmVuIG5vdGVzIHRyZWUKKyAqCisgKiBQcm9wZXJ0aWVzIG9mIHRoZSBjcmVhdGVkIGNvbW1pdDoKKyAqIC0gdHJlZTogdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIHQgdG8gYSB0cmVlIG9iamVjdCB3aXRoIHdyaXRlX25vdGVzX3RyZWUoKS4KKyAqIC0gcGFyZW50czogdGhlIGdpdmVuIHBhcmVudHMgT1IgKGlmIE5VTEwpIHRoZSBjb21taXQgcmVmZXJlbmNlZCBieSB0LT5yZWYuCisgKiAtIGF1dGhvci9jb21taXR0ZXI6IHRoZSBkZWZhdWx0IGRldGVybWluZWQgYnkgY29tbW1pdF90cmVlKCkuCisgKiAtIGNvbW1pdCBtZXNzYWdlOiBtc2cKKyAqCisgKiBUaGUgcmVzdWx0aW5nIGNvbW1pdCBTSEExIGlzIHN0b3JlZCBpbiByZXN1bHRfc2hhMS4KKyAqLwordm9pZCBjcmVhdGVfbm90ZXNfY29tbWl0KHN0cnVjdCBub3Rlc190cmVlICp0LCBzdHJ1Y3QgY29tbWl0X2xpc3QgKnBhcmVudHMsCisJCQkgY29uc3Qgc3RydWN0IHN0cmJ1ZiAqbXNnLCB1bnNpZ25lZCBjaGFyICpyZXN1bHRfc2hhMSk7CisKK3ZvaWQgY29tbWl0X25vdGVzKHN0cnVjdCBub3Rlc190cmVlICp0LCBjb25zdCBjaGFyICptc2cpOworCitzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgeworCXN0cnVjdCBub3Rlc190cmVlICoqdHJlZXM7CisJY29uc3QgY2hhciAqY21kOworCWludCBlbmFibGVkOworCWNvbWJpbmVfbm90ZXNfZm4gY29tYmluZTsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgKnJlZnM7CisJaW50IHJlZnNfZnJvbV9lbnY7CisJaW50IG1vZGVfZnJvbV9lbnY7Cit9OworCitzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmluaXRfY29weV9ub3Rlc19mb3JfcmV3cml0ZShjb25zdCBjaGFyICpjbWQpOworaW50IGNvcHlfbm90ZV9mb3JfcmV3cml0ZShzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMsCisJCQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb21fb2JqLCBjb25zdCB1bnNpZ25lZCBjaGFyICp0b19vYmopOwordm9pZCBmaW5pc2hfY29weV9ub3Rlc19mb3JfcmV3cml0ZShzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMsIGNvbnN0IGNoYXIgKm1zZyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbm90ZXMuYyBiL25vdGVzLmMKaW5kZXggZjYzZmQ1Ny4uYjY5YzBiOCAxMDA2NDQKLS0tIGEvbm90ZXMuYworKysgYi9ub3Rlcy5jCkBAIC05MTgsMTcgKzkxOCwyMSBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgc3RyaW5nX2xpc3RfYWRkX29uZV9yZWYoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKK3N0YXRpYyBpbnQgc3RyaW5nX2xpc3RfYWRkX29uZV9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKIAkJCQkgICBpbnQgZmxhZywgdm9pZCAqY2IpCiB7CiAJc3RydWN0IHN0cmluZ19saXN0ICpyZWZzID0gY2I7Ci0JaWYgKCF1bnNvcnRlZF9zdHJpbmdfbGlzdF9oYXNfc3RyaW5nKHJlZnMsIHBhdGgpKQotCQlzdHJpbmdfbGlzdF9hcHBlbmQocmVmcywgcGF0aCk7CisJaWYgKCF1bnNvcnRlZF9zdHJpbmdfbGlzdF9oYXNfc3RyaW5nKHJlZnMsIHJlZm5hbWUpKQorCQlzdHJpbmdfbGlzdF9hcHBlbmQocmVmcywgcmVmbmFtZSk7CiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBUaGUgbGlzdCBhcmd1bWVudCBtdXN0IGhhdmUgc3RyZHVwX3N0cmluZ3Mgc2V0IG9uIGl0LgorICovCiB2b2lkIHN0cmluZ19saXN0X2FkZF9yZWZzX2J5X2dsb2Ioc3RydWN0IHN0cmluZ19saXN0ICpsaXN0LCBjb25zdCBjaGFyICpnbG9iKQogeworCWFzc2VydChsaXN0LT5zdHJkdXBfc3RyaW5ncyk7CiAJaWYgKGhhc19nbG9iX3NwZWNpYWxzKGdsb2IpKSB7CiAJCWZvcl9lYWNoX2dsb2JfcmVmKHN0cmluZ19saXN0X2FkZF9vbmVfcmVmLCBnbG9iLCBsaXN0KTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvbm90ZXMuaCBiL25vdGVzLmgKaW5kZXggMzMyNGM0OC4uMmEzZjkyMyAxMDA2NDQKLS0tIGEvbm90ZXMuaAorKysgYi9ub3Rlcy5oCkBAIC03Nyw3ICs3Nyw3IEBACiAgKiB2YXJpYWJsZSBpcyB1c2VkLCBhbmQgaWYgdGhhdCBpcyBtaXNzaW5nLCB0aGUgZGVmYXVsdCBub3RlcyByZWYgaXMgdXNlZAogICogKCJyZWZzL25vdGVzL2NvbW1pdHMiKS4KICAqCi0gKiBJZiB5b3UgbmVlZCB0byByZS1pbnRpYWxpemUgYSBub3Rlc190cmVlIHN0cnVjdHVyZSAoZS5nLiB3aGVuIHN3aXRjaGluZyBmcm9tCisgKiBJZiB5b3UgbmVlZCB0byByZS1pbml0aWFsaXplIGEgbm90ZXNfdHJlZSBzdHJ1Y3R1cmUgKGUuZy4gd2hlbiBzd2l0Y2hpbmcgZnJvbQogICogb25lIG5vdGVzIHJlZiB0byBhbm90aGVyKSwgeW91IG11c3QgZmlyc3QgZGUtaW5pdGlhbGl6ZSB0aGUgbm90ZXNfdHJlZQogICogc3RydWN0dXJlIGJ5IGNhbGxpbmcgZnJlZV9ub3RlcyhzdHJ1Y3Qgbm90ZXNfdHJlZSAqKS4KICAqCmRpZmYgLS1naXQgYS9vYmplY3QuYyBiL29iamVjdC5jCmluZGV4IDIwNzAzZjUuLmQ4YTRiMWYgMTAwNjQ0Ci0tLSBhL29iamVjdC5jCisrKyBiL29iamVjdC5jCkBAIC03MSwxMyArNzEsMTMgQEAKIAogc3RydWN0IG9iamVjdCAqbG9va3VwX29iamVjdChjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQogewotCXVuc2lnbmVkIGludCBpOworCXVuc2lnbmVkIGludCBpLCBmaXJzdDsKIAlzdHJ1Y3Qgb2JqZWN0ICpvYmo7CiAKIAlpZiAoIW9ial9oYXNoKQogCQlyZXR1cm4gTlVMTDsKIAotCWkgPSBoYXNodGFibGVfaW5kZXgoc2hhMSk7CisJZmlyc3QgPSBpID0gaGFzaHRhYmxlX2luZGV4KHNoYTEpOwogCXdoaWxlICgob2JqID0gb2JqX2hhc2hbaV0pICE9IE5VTEwpIHsKIAkJaWYgKCFoYXNoY21wKHNoYTEsIG9iai0+c2hhMSkpCiAJCQlicmVhazsKQEAgLTg1LDYgKzg1LDE2IEBACiAJCWlmIChpID09IG9ial9oYXNoX3NpemUpCiAJCQlpID0gMDsKIAl9CisJaWYgKG9iaiAmJiBpICE9IGZpcnN0KSB7CisJCS8qCisJCSAqIE1vdmUgb2JqZWN0IHRvIHdoZXJlIHdlIHN0YXJ0ZWQgdG8gbG9vayBmb3IgaXQgc28KKwkJICogdGhhdCB3ZSBkbyBub3QgbmVlZCB0byB3YWxrIHRoZSBoYXNoIHRhYmxlIHRoZSBuZXh0CisJCSAqIHRpbWUgd2UgbG9vayBmb3IgaXQuCisJCSAqLworCQlzdHJ1Y3Qgb2JqZWN0ICp0bXAgPSBvYmpfaGFzaFtpXTsKKwkJb2JqX2hhc2hbaV0gPSBvYmpfaGFzaFtmaXJzdF07CisJCW9ial9oYXNoW2ZpcnN0XSA9IHRtcDsKKwl9CiAJcmV0dXJuIG9iajsKIH0KIApAQCAtMTM1LDcgKzE0NSw3IEBACiBzdHJ1Y3Qgb2JqZWN0ICpwYXJzZV9vYmplY3RfYnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIGVudW0gb2JqZWN0X3R5cGUgdHlwZSwgdW5zaWduZWQgbG9uZyBzaXplLCB2b2lkICpidWZmZXIsIGludCAqZWF0ZW5fcCkKIHsKIAlzdHJ1Y3Qgb2JqZWN0ICpvYmo7Ci0JaW50IGVhdGVuID0gMDsKKwkqZWF0ZW5fcCA9IDA7CiAKIAlvYmogPSBOVUxMOwogCWlmICh0eXBlID09IE9CSl9CTE9CKSB7CkBAIC0xNTQsNyArMTY0LDcgQEAKIAkJCWlmICghdHJlZS0+b2JqZWN0LnBhcnNlZCkgewogCQkJCWlmIChwYXJzZV90cmVlX2J1ZmZlcih0cmVlLCBidWZmZXIsIHNpemUpKQogCQkJCQlyZXR1cm4gTlVMTDsKLQkJCQllYXRlbiA9IDE7CisJCQkJKmVhdGVuX3AgPSAxOwogCQkJfQogCQl9CiAJfSBlbHNlIGlmICh0eXBlID09IE9CSl9DT01NSVQpIHsKQEAgLTE2NCw3ICsxNzQsNyBAQAogCQkJCXJldHVybiBOVUxMOwogCQkJaWYgKCFjb21taXQtPmJ1ZmZlcikgewogCQkJCWNvbW1pdC0+YnVmZmVyID0gYnVmZmVyOwotCQkJCWVhdGVuID0gMTsKKwkJCQkqZWF0ZW5fcCA9IDE7CiAJCQl9CiAJCQlvYmogPSAmY29tbWl0LT5vYmplY3Q7CiAJCX0KQEAgLTE4MSw3ICsxOTEsNiBAQAogCX0KIAlpZiAob2JqICYmIG9iai0+dHlwZSA9PSBPQkpfTk9ORSkKIAkJb2JqLT50eXBlID0gdHlwZTsKLQkqZWF0ZW5fcCA9IGVhdGVuOwogCXJldHVybiBvYmo7CiB9CiAKQEAgLTI2MCwxMSArMjY5LDE4IEBACiAJYWRkX29iamVjdF9hcnJheV93aXRoX21vZGUob2JqLCBuYW1lLCBhcnJheSwgU19JRklOVkFMSUQpOwogfQogCisvKgorICogQSB6ZXJvLWxlbmd0aCBzdHJpbmcgdG8gd2hpY2ggb2JqZWN0X2FycmF5X2VudHJ5OjpuYW1lIGNhbiBiZQorICogaW5pdGlhbGl6ZWQgd2l0aG91dCByZXF1aXJpbmcgYSBtYWxsb2MvZnJlZS4KKyAqLworc3RhdGljIGNoYXIgb2JqZWN0X2FycmF5X3Nsb3BidWZbMV07CisKIHZvaWQgYWRkX29iamVjdF9hcnJheV93aXRoX21vZGUoc3RydWN0IG9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSwgdW5zaWduZWQgbW9kZSkKIHsKIAl1bnNpZ25lZCBuciA9IGFycmF5LT5ucjsKIAl1bnNpZ25lZCBhbGxvYyA9IGFycmF5LT5hbGxvYzsKIAlzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICpvYmplY3RzID0gYXJyYXktPm9iamVjdHM7CisJc3RydWN0IG9iamVjdF9hcnJheV9lbnRyeSAqZW50cnk7CiAKIAlpZiAobnIgPj0gYWxsb2MpIHsKIAkJYWxsb2MgPSAoYWxsb2MgKyAzMikgKiAyOwpAQCAtMjcyLDI4ICsyODgsNjcgQEAKIAkJYXJyYXktPmFsbG9jID0gYWxsb2M7CiAJCWFycmF5LT5vYmplY3RzID0gb2JqZWN0czsKIAl9Ci0Jb2JqZWN0c1tucl0uaXRlbSA9IG9iajsKLQlvYmplY3RzW25yXS5uYW1lID0gbmFtZTsKLQlvYmplY3RzW25yXS5tb2RlID0gbW9kZTsKKwllbnRyeSA9ICZvYmplY3RzW25yXTsKKwllbnRyeS0+aXRlbSA9IG9iajsKKwlpZiAoIW5hbWUpCisJCWVudHJ5LT5uYW1lID0gTlVMTDsKKwllbHNlIGlmICghKm5hbWUpCisJCS8qIFVzZSBvdXIgb3duIGVtcHR5IHN0cmluZyBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgb25lOiAqLworCQllbnRyeS0+bmFtZSA9IG9iamVjdF9hcnJheV9zbG9wYnVmOworCWVsc2UKKwkJZW50cnktPm5hbWUgPSB4c3RyZHVwKG5hbWUpOworCWVudHJ5LT5tb2RlID0gbW9kZTsKIAlhcnJheS0+bnIgPSArK25yOwogfQogCit2b2lkIG9iamVjdF9hcnJheV9maWx0ZXIoc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXksCisJCQkgb2JqZWN0X2FycmF5X2VhY2hfZnVuY190IHdhbnQsIHZvaWQgKmNiX2RhdGEpCit7CisJdW5zaWduZWQgbnIgPSBhcnJheS0+bnIsIHNyYywgZHN0OworCXN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgKm9iamVjdHMgPSBhcnJheS0+b2JqZWN0czsKKworCWZvciAoc3JjID0gZHN0ID0gMDsgc3JjIDwgbnI7IHNyYysrKSB7CisJCWlmICh3YW50KCZvYmplY3RzW3NyY10sIGNiX2RhdGEpKSB7CisJCQlpZiAoc3JjICE9IGRzdCkKKwkJCQlvYmplY3RzW2RzdF0gPSBvYmplY3RzW3NyY107CisJCQlkc3QrKzsKKwkJfSBlbHNlIHsKKwkJCWlmIChvYmplY3RzW3NyY10ubmFtZSAhPSBvYmplY3RfYXJyYXlfc2xvcGJ1ZikKKwkJCQlmcmVlKG9iamVjdHNbc3JjXS5uYW1lKTsKKwkJfQorCX0KKwlhcnJheS0+bnIgPSBkc3Q7Cit9CisKKy8qCisgKiBSZXR1cm4gdHJ1ZSBpZmYgYXJyYXkgYWxyZWFkeSBjb250YWlucyBhbiBlbnRyeSB3aXRoIG5hbWUuCisgKi8KK3N0YXRpYyBpbnQgY29udGFpbnNfbmFtZShzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSwgY29uc3QgY2hhciAqbmFtZSkKK3sKKwl1bnNpZ25lZCBuciA9IGFycmF5LT5uciwgaTsKKwlzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICpvYmplY3QgPSBhcnJheS0+b2JqZWN0czsKKworCWZvciAoaSA9IDA7IGkgPCBucjsgaSsrLCBvYmplY3QrKykKKwkJaWYgKCFzdHJjbXAob2JqZWN0LT5uYW1lLCBuYW1lKSkKKwkJCXJldHVybiAxOworCXJldHVybiAwOworfQorCiB2b2lkIG9iamVjdF9hcnJheV9yZW1vdmVfZHVwbGljYXRlcyhzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSkKIHsKLQl1bnNpZ25lZCBpbnQgcmVmLCBzcmMsIGRzdDsKKwl1bnNpZ25lZCBuciA9IGFycmF5LT5uciwgc3JjOwogCXN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgKm9iamVjdHMgPSBhcnJheS0+b2JqZWN0czsKIAotCWZvciAocmVmID0gMDsgcmVmICsgMSA8IGFycmF5LT5ucjsgcmVmKyspIHsKLQkJZm9yIChzcmMgPSByZWYgKyAxLCBkc3QgPSBzcmM7Ci0JCSAgICAgc3JjIDwgYXJyYXktPm5yOwotCQkgICAgIHNyYysrKSB7Ci0JCQlpZiAoIXN0cmNtcChvYmplY3RzW3JlZl0ubmFtZSwgb2JqZWN0c1tzcmNdLm5hbWUpKQotCQkJCWNvbnRpbnVlOwotCQkJaWYgKHNyYyAhPSBkc3QpCi0JCQkJb2JqZWN0c1tkc3RdID0gb2JqZWN0c1tzcmNdOwotCQkJZHN0Kys7CisJYXJyYXktPm5yID0gMDsKKwlmb3IgKHNyYyA9IDA7IHNyYyA8IG5yOyBzcmMrKykgeworCQlpZiAoIWNvbnRhaW5zX25hbWUoYXJyYXksIG9iamVjdHNbc3JjXS5uYW1lKSkgeworCQkJaWYgKHNyYyAhPSBhcnJheS0+bnIpCisJCQkJb2JqZWN0c1thcnJheS0+bnJdID0gb2JqZWN0c1tzcmNdOworCQkJYXJyYXktPm5yKys7CisJCX0gZWxzZSB7CisJCQlpZiAob2JqZWN0c1tzcmNdLm5hbWUgIT0gb2JqZWN0X2FycmF5X3Nsb3BidWYpCisJCQkJZnJlZShvYmplY3RzW3NyY10ubmFtZSk7CiAJCX0KLQkJYXJyYXktPm5yID0gZHN0OwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvb2JqZWN0LmggYi9vYmplY3QuaAppbmRleCA5N2QzODRiLi4yZmY2OGM1IDEwMDY0NAotLS0gYS9vYmplY3QuaAorKysgYi9vYmplY3QuaApAQCAtMTEsNyArMTEsMTMgQEAKIAl1bnNpZ25lZCBpbnQgYWxsb2M7CiAJc3RydWN0IG9iamVjdF9hcnJheV9lbnRyeSB7CiAJCXN0cnVjdCBvYmplY3QgKml0ZW07Ci0JCWNvbnN0IGNoYXIgKm5hbWU7CisJCS8qCisJCSAqIG5hbWUgb3IgTlVMTC4gIElmIG5vbi1OVUxMLCB0aGUgbWVtb3J5IHBvaW50ZWQgdG8KKwkJICogaXMgb3duZWQgYnkgdGhpcyBvYmplY3QgKmV4Y2VwdCogaWYgaXQgcG9pbnRzIGF0CisJCSAqIG9iamVjdF9hcnJheV9zbG9wYnVmLCB3aGljaCBpcyBhIHN0YXRpYyBjb3B5IG9mIHRoZQorCQkgKiBlbXB0eSBzdHJpbmcuCisJCSAqLworCQljaGFyICpuYW1lOwogCQl1bnNpZ25lZCBtb2RlOwogCX0gKm9iamVjdHM7CiB9OwpAQCAtODUsNyArOTEsMjIgQEAKIC8qIE9iamVjdCBhcnJheSBoYW5kbGluZyAuLiAqLwogdm9pZCBhZGRfb2JqZWN0X2FycmF5KHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXkpOwogdm9pZCBhZGRfb2JqZWN0X2FycmF5X3dpdGhfbW9kZShzdHJ1Y3Qgb2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBvYmplY3RfYXJyYXkgKmFycmF5LCB1bnNpZ25lZCBtb2RlKTsKLXZvaWQgb2JqZWN0X2FycmF5X3JlbW92ZV9kdXBsaWNhdGVzKHN0cnVjdCBvYmplY3RfYXJyYXkgKik7CisKK3R5cGVkZWYgaW50ICgqb2JqZWN0X2FycmF5X2VhY2hfZnVuY190KShzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICosIHZvaWQgKik7CisKKy8qCisgKiBBcHBseSB3YW50IHRvIGVhY2ggZW50cnkgaW4gYXJyYXksIHJldGFpbmluZyBvbmx5IHRoZSBlbnRyaWVzIGZvcgorICogd2hpY2ggdGhlIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZS4gIFByZXNlcnZlIHRoZSBvcmRlciBvZiB0aGUgZW50cmllcworICogdGhhdCBhcmUgcmV0YWluZWQuCisgKi8KK3ZvaWQgb2JqZWN0X2FycmF5X2ZpbHRlcihzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSwKKwkJCSBvYmplY3RfYXJyYXlfZWFjaF9mdW5jX3Qgd2FudCwgdm9pZCAqY2JfZGF0YSk7CisKKy8qCisgKiBSZW1vdmUgZnJvbSBhcnJheSBhbGwgYnV0IHRoZSBmaXJzdCBlbnRyeSB3aXRoIGEgZ2l2ZW4gbmFtZS4KKyAqIFdhcm5pbmc6IHRoaXMgZnVuY3Rpb24gdXNlcyBhbiBPKE5eMikgYWxnb3JpdGhtLgorICovCit2b2lkIG9iamVjdF9hcnJheV9yZW1vdmVfZHVwbGljYXRlcyhzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSk7CiAKIHZvaWQgY2xlYXJfb2JqZWN0X2ZsYWdzKHVuc2lnbmVkIGZsYWdzKTsKIApkaWZmIC0tZ2l0IGEvcGFjay1yZWZzLmMgYi9wYWNrLXJlZnMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ2MWY3MS4uMDAwMDAwMAotLS0gYS9wYWNrLXJlZnMuYworKysgL2Rldi9udWxsCkBAIC0xLDE0OCArMCwwIEBACi0jaW5jbHVkZSAiY2FjaGUuaCIKLSNpbmNsdWRlICJyZWZzLmgiCi0jaW5jbHVkZSAidGFnLmgiCi0jaW5jbHVkZSAicGFjay1yZWZzLmgiCi0KLXN0cnVjdCByZWZfdG9fcHJ1bmUgewotCXN0cnVjdCByZWZfdG9fcHJ1bmUgKm5leHQ7Ci0JdW5zaWduZWQgY2hhciBzaGExWzIwXTsKLQljaGFyIG5hbWVbRkxFWF9BUlJBWV07Ci19OwotCi1zdHJ1Y3QgcGFja19yZWZzX2NiX2RhdGEgewotCXVuc2lnbmVkIGludCBmbGFnczsKLQlzdHJ1Y3QgcmVmX3RvX3BydW5lICpyZWZfdG9fcHJ1bmU7Ci0JRklMRSAqcmVmc19maWxlOwotfTsKLQotc3RhdGljIGludCBkb19ub3RfcHJ1bmUoaW50IGZsYWdzKQotewotCS8qIElmIGl0IGlzIGFscmVhZHkgcGFja2VkIG9yIGlmIGl0IGlzIGEgc3ltcmVmLAotCSAqIGRvIG5vdCBwcnVuZSBpdC4KLQkgKi8KLQlyZXR1cm4gKGZsYWdzICYgKFJFRl9JU1NZTVJFRnxSRUZfSVNQQUNLRUQpKTsKLX0KLQotc3RhdGljIGludCBoYW5kbGVfb25lX3JlZihjb25zdCBjaGFyICpwYXRoLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAotCQkJICBpbnQgZmxhZ3MsIHZvaWQgKmNiX2RhdGEpCi17Ci0Jc3RydWN0IHBhY2tfcmVmc19jYl9kYXRhICpjYiA9IGNiX2RhdGE7Ci0Jc3RydWN0IG9iamVjdCAqbzsKLQlpbnQgaXNfdGFnX3JlZjsKLQotCS8qIERvIG5vdCBwYWNrIHRoZSBzeW1ib2xpYyByZWZzICovCi0JaWYgKChmbGFncyAmIFJFRl9JU1NZTVJFRikpCi0JCXJldHVybiAwOwotCWlzX3RhZ19yZWYgPSAhcHJlZml4Y21wKHBhdGgsICJyZWZzL3RhZ3MvIik7Ci0KLQkvKiBBTFdBWVMgcGFjayByZWZzIHRoYXQgd2VyZSBhbHJlYWR5IHBhY2tlZCBvciBhcmUgdGFncyAqLwotCWlmICghKGNiLT5mbGFncyAmIFBBQ0tfUkVGU19BTEwpICYmICFpc190YWdfcmVmICYmICEoZmxhZ3MgJiBSRUZfSVNQQUNLRUQpKQotCQlyZXR1cm4gMDsKLQotCWZwcmludGYoY2ItPnJlZnNfZmlsZSwgIiVzICVzXG4iLCBzaGExX3RvX2hleChzaGExKSwgcGF0aCk7Ci0KLQlvID0gcGFyc2Vfb2JqZWN0X29yX2RpZShzaGExLCBwYXRoKTsKLQlpZiAoby0+dHlwZSA9PSBPQkpfVEFHKSB7Ci0JCW8gPSBkZXJlZl90YWcobywgcGF0aCwgMCk7Ci0JCWlmIChvKQotCQkJZnByaW50ZihjYi0+cmVmc19maWxlLCAiXiVzXG4iLAotCQkJCXNoYTFfdG9faGV4KG8tPnNoYTEpKTsKLQl9Ci0KLQlpZiAoKGNiLT5mbGFncyAmIFBBQ0tfUkVGU19QUlVORSkgJiYgIWRvX25vdF9wcnVuZShmbGFncykpIHsKLQkJaW50IG5hbWVsZW4gPSBzdHJsZW4ocGF0aCkgKyAxOwotCQlzdHJ1Y3QgcmVmX3RvX3BydW5lICpuID0geGNhbGxvYygxLCBzaXplb2YoKm4pICsgbmFtZWxlbik7Ci0JCWhhc2hjcHkobi0+c2hhMSwgc2hhMSk7Ci0JCXN0cmNweShuLT5uYW1lLCBwYXRoKTsKLQkJbi0+bmV4dCA9IGNiLT5yZWZfdG9fcHJ1bmU7Ci0JCWNiLT5yZWZfdG9fcHJ1bmUgPSBuOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIFJlbW92ZSBlbXB0eSBwYXJlbnRzLCBidXQgc3BhcmUgcmVmcy8gYW5kIGltbWVkaWF0ZSBzdWJkaXJzLgotICogTm90ZTogbXVuZ2VzICpuYW1lLgotICovCi1zdGF0aWMgdm9pZCB0cnlfcmVtb3ZlX2VtcHR5X3BhcmVudHMoY2hhciAqbmFtZSkKLXsKLQljaGFyICpwLCAqcTsKLQlpbnQgaTsKLQlwID0gbmFtZTsKLQlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7IC8qIHJlZnMve2hlYWRzLHRhZ3MsLi4ufS8gKi8KLQkJd2hpbGUgKCpwICYmICpwICE9ICcvJykKLQkJCXArKzsKLQkJLyogdG9sZXJhdGUgZHVwbGljYXRlIHNsYXNoZXM7IHNlZSBjaGVja19yZWZuYW1lX2Zvcm1hdCgpICovCi0JCXdoaWxlICgqcCA9PSAnLycpCi0JCQlwKys7Ci0JfQotCWZvciAocSA9IHA7ICpxOyBxKyspCi0JCTsKLQl3aGlsZSAoMSkgewotCQl3aGlsZSAocSA+IHAgJiYgKnEgIT0gJy8nKQotCQkJcS0tOwotCQl3aGlsZSAocSA+IHAgJiYgKihxLTEpID09ICcvJykKLQkJCXEtLTsKLQkJaWYgKHEgPT0gcCkKLQkJCWJyZWFrOwotCQkqcSA9ICdcMCc7Ci0JCWlmIChybWRpcihnaXRfcGF0aCgiJXMiLCBuYW1lKSkpCi0JCQlicmVhazsKLQl9Ci19Ci0KLS8qIG1ha2Ugc3VyZSBub2JvZHkgdG91Y2hlZCB0aGUgcmVmLCBhbmQgdW5saW5rICovCi1zdGF0aWMgdm9pZCBwcnVuZV9yZWYoc3RydWN0IHJlZl90b19wcnVuZSAqcikKLXsKLQlzdHJ1Y3QgcmVmX2xvY2sgKmxvY2sgPSBsb2NrX3JlZl9zaGExKHItPm5hbWUgKyA1LCByLT5zaGExKTsKLQotCWlmIChsb2NrKSB7Ci0JCXVubGlua19vcl93YXJuKGdpdF9wYXRoKCIlcyIsIHItPm5hbWUpKTsKLQkJdW5sb2NrX3JlZihsb2NrKTsKLQkJdHJ5X3JlbW92ZV9lbXB0eV9wYXJlbnRzKHItPm5hbWUpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgcHJ1bmVfcmVmcyhzdHJ1Y3QgcmVmX3RvX3BydW5lICpyKQotewotCXdoaWxlIChyKSB7Ci0JCXBydW5lX3JlZihyKTsKLQkJciA9IHItPm5leHQ7Ci0JfQotfQotCi1zdGF0aWMgc3RydWN0IGxvY2tfZmlsZSBwYWNrZWQ7Ci0KLWludCBwYWNrX3JlZnModW5zaWduZWQgaW50IGZsYWdzKQotewotCWludCBmZDsKLQlzdHJ1Y3QgcGFja19yZWZzX2NiX2RhdGEgY2JkYXRhOwotCi0JbWVtc2V0KCZjYmRhdGEsIDAsIHNpemVvZihjYmRhdGEpKTsKLQljYmRhdGEuZmxhZ3MgPSBmbGFnczsKLQotCWZkID0gaG9sZF9sb2NrX2ZpbGVfZm9yX3VwZGF0ZSgmcGFja2VkLCBnaXRfcGF0aCgicGFja2VkLXJlZnMiKSwKLQkJCQkgICAgICAgTE9DS19ESUVfT05fRVJST1IpOwotCWNiZGF0YS5yZWZzX2ZpbGUgPSBmZG9wZW4oZmQsICJ3Iik7Ci0JaWYgKCFjYmRhdGEucmVmc19maWxlKQotCQlkaWVfZXJybm8oInVuYWJsZSB0byBjcmVhdGUgcmVmLXBhY2sgZmlsZSBzdHJ1Y3R1cmUiKTsKLQotCS8qIHBlcmhhcHMgb3RoZXIgdHJhaXRzIGxhdGVyIGFzIHdlbGwgKi8KLQlmcHJpbnRmKGNiZGF0YS5yZWZzX2ZpbGUsICIjIHBhY2stcmVmcyB3aXRoOiBwZWVsZWQgZnVsbHktcGVlbGVkIFxuIik7Ci0KLQlmb3JfZWFjaF9yZWYoaGFuZGxlX29uZV9yZWYsICZjYmRhdGEpOwotCWlmIChmZXJyb3IoY2JkYXRhLnJlZnNfZmlsZSkpCi0JCWRpZSgiZmFpbGVkIHRvIHdyaXRlIHJlZi1wYWNrIGZpbGUiKTsKLQlpZiAoZmZsdXNoKGNiZGF0YS5yZWZzX2ZpbGUpIHx8IGZzeW5jKGZkKSB8fCBmY2xvc2UoY2JkYXRhLnJlZnNfZmlsZSkpCi0JCWRpZV9lcnJubygiZmFpbGVkIHRvIHdyaXRlIHJlZi1wYWNrIGZpbGUiKTsKLQkvKgotCSAqIFNpbmNlIHRoZSBsb2NrIGZpbGUgd2FzIGZkb3BlbigpJ2VkIGFuZCB0aGVuIGZjbG9zZSgpJ2VkIGFib3ZlLAotCSAqIGFzc2lnbiAtMSB0byB0aGUgbG9jayBmaWxlIGRlc2NyaXB0b3Igc28gdGhhdCBjb21taXRfbG9ja19maWxlKCkKLQkgKiB3b24ndCB0cnkgdG8gY2xvc2UoKSBpdC4KLQkgKi8KLQlwYWNrZWQuZmQgPSAtMTsKLQlpZiAoY29tbWl0X2xvY2tfZmlsZSgmcGFja2VkKSA8IDApCi0JCWRpZV9lcnJubygidW5hYmxlIHRvIG92ZXJ3cml0ZSBvbGQgcmVmLXBhY2sgZmlsZSIpOwotCXBydW5lX3JlZnMoY2JkYXRhLnJlZl90b19wcnVuZSk7Ci0JcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9wYWNrLXJlZnMuaCBiL3BhY2stcmVmcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MThhY2ZiLi4wMDAwMDAwCi0tLSBhL3BhY2stcmVmcy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotI2lmbmRlZiBQQUNLX1JFRlNfSAotI2RlZmluZSBQQUNLX1JFRlNfSAotCi0vKgotICogRmxhZ3MgZm9yIGNvbnRyb2xsaW5nIGJlaGF2aW91ciBvZiBwYWNrX3JlZnMoKQotICogUEFDS19SRUZTX1BSVU5FOiBQcnVuZSBsb29zZSByZWZzIGFmdGVyIHBhY2tpbmcKLSAqIFBBQ0tfUkVGU19BTEw6ICAgUGFjayBfYWxsXyByZWZzLCBub3QganVzdCB0YWdzIGFuZCBhbHJlYWR5IHBhY2tlZCByZWZzCi0gKi8KLSNkZWZpbmUgUEFDS19SRUZTX1BSVU5FIDB4MDAwMQotI2RlZmluZSBQQUNLX1JFRlNfQUxMICAgMHgwMDAyCi0KLS8qCi0gKiBXcml0ZSBhIHBhY2tlZC1yZWZzIGZpbGUgZm9yIHRoZSBjdXJyZW50IHJlcG9zaXRvcnkuCi0gKiBmbGFnczogQ29tYmluYXRpb24gb2YgdGhlIGFib3ZlIFBBQ0tfUkVGU18qIGZsYWdzLgotICovCi1pbnQgcGFja19yZWZzKHVuc2lnbmVkIGludCBmbGFncyk7Ci0KLSNlbmRpZiAvKiBQQUNLX1JFRlNfSCAqLwpkaWZmIC0tZ2l0IGEvcGFjay1yZXZpbmRleC5jIGIvcGFjay1yZXZpbmRleC5jCmluZGV4IDc3YTA0NjUuLmI0ZDJiMzUgMTAwNjQ0Ci0tLSBhL3BhY2stcmV2aW5kZXguYworKysgYi9wYWNrLXJldmluZGV4LmMKQEAgLTU5LDExICs1OSwxMDEgQEAKIAkvKiByZXZpbmRleCBlbGVtZW50cyBhcmUgbGF6aWx5IGluaXRpYWxpemVkICovCiB9CiAKLXN0YXRpYyBpbnQgY21wX29mZnNldChjb25zdCB2b2lkICphXywgY29uc3Qgdm9pZCAqYl8pCisvKgorICogVGhpcyBpcyBhIGxlYXN0LXNpZ25pZmljYW50LWRpZ2l0IHJhZGl4IHNvcnQuCisgKgorICogSXQgc29ydHMgZWFjaCBvZiB0aGUgIm4iIGl0ZW1zIGluICJlbnRyaWVzIiBieSBpdHMgb2Zmc2V0IGZpZWxkLiBUaGUgIm1heCIKKyAqIHBhcmFtZXRlciBtdXN0IGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHRoZSBsYXJnZXN0IG9mZnNldCBpbiB0aGUgYXJyYXksCisgKiBhbmQgbGV0cyB1cyBxdWl0IHRoZSBzb3J0IGVhcmx5LgorICovCitzdGF0aWMgdm9pZCBzb3J0X3JldmluZGV4KHN0cnVjdCByZXZpbmRleF9lbnRyeSAqZW50cmllcywgdW5zaWduZWQgbiwgb2ZmX3QgbWF4KQogewotCWNvbnN0IHN0cnVjdCByZXZpbmRleF9lbnRyeSAqYSA9IGFfOwotCWNvbnN0IHN0cnVjdCByZXZpbmRleF9lbnRyeSAqYiA9IGJfOwotCXJldHVybiAoYS0+b2Zmc2V0IDwgYi0+b2Zmc2V0KSA/IC0xIDogKGEtPm9mZnNldCA+IGItPm9mZnNldCkgPyAxIDogMDsKKwkvKgorCSAqIFdlIHVzZSBhICJkaWdpdCIgc2l6ZSBvZiAxNiBiaXRzLiBUaGF0IGtlZXBzIG91ciBtZW1vcnkKKwkgKiB1c2FnZSByZWFzb25hYmxlLCBhbmQgd2UgY2FuIGdlbmVyYWxseSAoZm9yIGEgNEcgb3Igc21hbGxlcgorCSAqIHBhY2tmaWxlKSBxdWl0IGFmdGVyIHR3byByb3VuZHMgb2YgcmFkaXgtc29ydGluZy4KKwkgKi8KKyNkZWZpbmUgRElHSVRfU0laRSAoMTYpCisjZGVmaW5lIEJVQ0tFVFMgKDEgPDwgRElHSVRfU0laRSkKKwkvKgorCSAqIFdlIHdhbnQgdG8ga25vdyB0aGUgYnVja2V0IHRoYXQgYVtpXSB3aWxsIGdvIGludG8gd2hlbiB3ZSBhcmUgdXNpbmcKKwkgKiB0aGUgZGlnaXQgdGhhdCBpcyBOIGJpdHMgZnJvbSB0aGUgKGxlYXN0IHNpZ25pZmljYW50KSBlbmQuCisJICovCisjZGVmaW5lIEJVQ0tFVF9GT1IoYSwgaSwgYml0cykgKCgoYSlbKGkpXS5vZmZzZXQgPj4gKGJpdHMpKSAmIChCVUNLRVRTLTEpKQorCisJLyoKKwkgKiBXZSBuZWVkIE8obikgdGVtcG9yYXJ5IHN0b3JhZ2UuIFJhdGhlciB0aGFuIGRvIGFuIGV4dHJhIGNvcHkgb2YgdGhlCisJICogcGFydGlhbCByZXN1bHRzIGludG8gImVudHJpZXMiLCB3ZSBzb3J0IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gdGhlCisJICogcmVhbCBhcnJheSBhbmQgdGVtcG9yYXJ5IHN0b3JhZ2UuIEluIGVhY2ggaXRlcmF0aW9uIG9mIHRoZSBsb29wLCB3ZQorCSAqIGtlZXAgdHJhY2sgb2YgdGhlbSB3aXRoIGFsaWFzIHBvaW50ZXJzLCBhbHdheXMgc29ydGluZyBmcm9tICJmcm9tIgorCSAqIHRvICJ0byIuCisJICovCisJc3RydWN0IHJldmluZGV4X2VudHJ5ICp0bXAgPSB4bWFsbG9jKG4gKiBzaXplb2YoKnRtcCkpOworCXN0cnVjdCByZXZpbmRleF9lbnRyeSAqZnJvbSA9IGVudHJpZXMsICp0byA9IHRtcDsKKwlpbnQgYml0czsKKwl1bnNpZ25lZCAqcG9zID0geG1hbGxvYyhCVUNLRVRTICogc2l6ZW9mKCpwb3MpKTsKKworCS8qCisJICogSWYgKG1heCA+PiBiaXRzKSBpcyB6ZXJvLCB0aGVuIHdlIGtub3cgdGhhdCB0aGUgcmFkaXggZGlnaXQgd2UgYXJlCisJICogb24gKGFuZCBhbnkgaGlnaGVyKSB3aWxsIGJlIHplcm8gZm9yIGFsbCBlbnRyaWVzLCBhbmQgb3VyIGxvb3Agd2lsbAorCSAqIGJlIGEgbm8tb3AsIGFzIGV2ZXJ5Ym9keSBsYW5kcyBpbiB0aGUgc2FtZSB6ZXJvLXRoIGJ1Y2tldC4KKwkgKi8KKwlmb3IgKGJpdHMgPSAwOyBtYXggPj4gYml0czsgYml0cyArPSBESUdJVF9TSVpFKSB7CisJCXN0cnVjdCByZXZpbmRleF9lbnRyeSAqc3dhcDsKKwkJdW5zaWduZWQgaTsKKworCQltZW1zZXQocG9zLCAwLCBCVUNLRVRTICogc2l6ZW9mKCpwb3MpKTsKKworCQkvKgorCQkgKiBXZSB3YW50IHBvc1tpXSB0byBzdG9yZSB0aGUgaW5kZXggb2YgdGhlIGxhc3QgZWxlbWVudCB0aGF0CisJCSAqIHdpbGwgZ28gaW4gYnVja2V0ICJpIiAoYWN0dWFsbHkgb25lIHBhc3QgdGhlIGxhc3QgZWxlbWVudCkuCisJCSAqIFRvIGRvIHRoaXMsIHdlIGZpcnN0IGNvdW50IHRoZSBpdGVtcyB0aGF0IHdpbGwgZ28gaW4gZWFjaAorCQkgKiBidWNrZXQsIHdoaWNoIGdpdmVzIHVzIGEgcmVsYXRpdmUgb2Zmc2V0IGZyb20gdGhlIGxhc3QKKwkJICogYnVja2V0LiBXZSBjYW4gdGhlbiBjdW11bGF0aXZlbHkgYWRkIHRoZSBpbmRleCBmcm9tIHRoZQorCQkgKiBwcmV2aW91cyBidWNrZXQgdG8gZ2V0IHRoZSB0cnVlIGluZGV4LgorCQkgKi8KKwkJZm9yIChpID0gMDsgaSA8IG47IGkrKykKKwkJCXBvc1tCVUNLRVRfRk9SKGZyb20sIGksIGJpdHMpXSsrOworCQlmb3IgKGkgPSAxOyBpIDwgQlVDS0VUUzsgaSsrKQorCQkJcG9zW2ldICs9IHBvc1tpLTFdOworCisJCS8qCisJCSAqIE5vdyB3ZSBjYW4gZHJvcCB0aGUgZWxlbWVudHMgaW50byB0aGVpciBjb3JyZWN0IGJ1Y2tldHMgKGluCisJCSAqIG91ciB0ZW1wb3JhcnkgYXJyYXkpLiAgV2UgaXRlcmF0ZSB0aGUgcG9zIGNvdW50ZXIgYmFja3dhcmRzCisJCSAqIHRvIGF2b2lkIHVzaW5nIGFuIGV4dHJhIGluZGV4IHRvIGNvdW50IHVwLiBBbmQgc2luY2Ugd2UgYXJlCisJCSAqIGdvaW5nIGJhY2t3YXJkcyB0aGVyZSwgd2UgbXVzdCBhbHNvIGdvIGJhY2t3YXJkcyB0aHJvdWdoIHRoZQorCQkgKiBhcnJheSBpdHNlbGYsIHRvIGtlZXAgdGhlIHNvcnQgc3RhYmxlLgorCQkgKgorCQkgKiBOb3RlIHRoYXQgd2UgdXNlIGFuIHVuc2lnbmVkIGl0ZXJhdG9yIHRvIG1ha2Ugc3VyZSB3ZSBjYW4KKwkJICogaGFuZGxlIDJeMzItMSBvYmplY3RzLCBldmVuIG9uIGEgMzItYml0IHN5c3RlbS4gQnV0IHRoaXMKKwkJICogbWVhbnMgd2UgY2Fubm90IHVzZSB0aGUgbW9yZSBvYnZpb3VzICJpID49IDAiIGxvb3AgY29uZGl0aW9uCisJCSAqIGZvciBjb3VudGluZyBiYWNrd2FyZHMsIGFuZCBtdXN0IGluc3RlYWQgY2hlY2sgZm9yCisJCSAqIHdyYXAtYXJvdW5kIHdpdGggVUlOVF9NQVguCisJCSAqLworCQlmb3IgKGkgPSBuIC0gMTsgaSAhPSBVSU5UX01BWDsgaS0tKQorCQkJdG9bLS1wb3NbQlVDS0VUX0ZPUihmcm9tLCBpLCBiaXRzKV1dID0gZnJvbVtpXTsKKworCQkvKgorCQkgKiBOb3cgInRvIiBjb250YWlucyB0aGUgbW9zdCBzb3J0ZWQgbGlzdCwgc28gd2Ugc3dhcCAiZnJvbSIgYW5kCisJCSAqICJ0byIgZm9yIHRoZSBuZXh0IGl0ZXJhdGlvbi4KKwkJICovCisJCXN3YXAgPSBmcm9tOworCQlmcm9tID0gdG87CisJCXRvID0gc3dhcDsKKwl9CisKKwkvKgorCSAqIElmIHdlIGVuZGVkIHdpdGggb3VyIGRhdGEgaW4gdGhlIG9yaWdpbmFsIGFycmF5LCBncmVhdC4gSWYgbm90LAorCSAqIHdlIGhhdmUgdG8gbW92ZSBpdCBiYWNrIGZyb20gdGhlIHRlbXBvcmFyeSBzdG9yYWdlLgorCSAqLworCWlmIChmcm9tICE9IGVudHJpZXMpCisJCW1lbWNweShlbnRyaWVzLCB0bXAsIG4gKiBzaXplb2YoKmVudHJpZXMpKTsKKwlmcmVlKHRtcCk7CisJZnJlZShwb3MpOworCisjdW5kZWYgQlVDS0VUX0ZPUgorI3VuZGVmIEJVQ0tFVFMKKyN1bmRlZiBESUdJVF9TSVpFCiB9CiAKIC8qCkBAIC03Miw4ICsxNjIsOCBAQAogc3RhdGljIHZvaWQgY3JlYXRlX3BhY2tfcmV2aW5kZXgoc3RydWN0IHBhY2tfcmV2aW5kZXggKnJpeCkKIHsKIAlzdHJ1Y3QgcGFja2VkX2dpdCAqcCA9IHJpeC0+cDsKLQlpbnQgbnVtX2VudCA9IHAtPm51bV9vYmplY3RzOwotCWludCBpOworCXVuc2lnbmVkIG51bV9lbnQgPSBwLT5udW1fb2JqZWN0czsKKwl1bnNpZ25lZCBpOwogCWNvbnN0IGNoYXIgKmluZGV4ID0gcC0+aW5kZXhfZGF0YTsKIAogCXJpeC0+cmV2aW5kZXggPSB4bWFsbG9jKHNpemVvZigqcml4LT5yZXZpbmRleCkgKiAobnVtX2VudCArIDEpKTsKQEAgLTEwOCwxMyArMTk4LDEzIEBACiAJICovCiAJcml4LT5yZXZpbmRleFtudW1fZW50XS5vZmZzZXQgPSBwLT5wYWNrX3NpemUgLSAyMDsKIAlyaXgtPnJldmluZGV4W251bV9lbnRdLm5yID0gLTE7Ci0JcXNvcnQocml4LT5yZXZpbmRleCwgbnVtX2VudCwgc2l6ZW9mKCpyaXgtPnJldmluZGV4KSwgY21wX29mZnNldCk7CisJc29ydF9yZXZpbmRleChyaXgtPnJldmluZGV4LCBudW1fZW50LCBwLT5wYWNrX3NpemUpOwogfQogCiBzdHJ1Y3QgcmV2aW5kZXhfZW50cnkgKmZpbmRfcGFja19yZXZpbmRleChzdHJ1Y3QgcGFja2VkX2dpdCAqcCwgb2ZmX3Qgb2ZzKQogewogCWludCBudW07Ci0JaW50IGxvLCBoaTsKKwl1bnNpZ25lZCBsbywgaGk7CiAJc3RydWN0IHBhY2tfcmV2aW5kZXggKnJpeDsKIAlzdHJ1Y3QgcmV2aW5kZXhfZW50cnkgKnJldmluZGV4OwogCkBAIC0xMzIsNyArMjIyLDcgQEAKIAlsbyA9IDA7CiAJaGkgPSBwLT5udW1fb2JqZWN0cyArIDE7CiAJZG8gewotCQlpbnQgbWkgPSAobG8gKyBoaSkgLyAyOworCQl1bnNpZ25lZCBtaSA9IGxvICsgKGhpIC0gbG8pIC8gMjsKIAkJaWYgKHJldmluZGV4W21pXS5vZmZzZXQgPT0gb2ZzKSB7CiAJCQlyZXR1cm4gcmV2aW5kZXggKyBtaTsKIAkJfSBlbHNlIGlmIChvZnMgPCByZXZpbmRleFttaV0ub2Zmc2V0KQpkaWZmIC0tZ2l0IGEvcGFyc2Utb3B0aW9ucy1jYi5jIGIvcGFyc2Utb3B0aW9ucy1jYi5jCmluZGV4IDBkZTVmYjEuLmJlOGM0MTMgMTAwNjQ0Ci0tLSBhL3BhcnNlLW9wdGlvbnMtY2IuYworKysgYi9wYXJzZS1vcHRpb25zLWNiLmMKQEAgLTMzLDYgKzMzLDEyIEBACiAJcmV0dXJuIDA7CiB9CiAKK2ludCBwYXJzZV9vcHRfZXhwaXJ5X2RhdGVfY2IoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LCBjb25zdCBjaGFyICphcmcsCisJCQkgICAgIGludCB1bnNldCkKK3sKKwlyZXR1cm4gcGFyc2VfZXhwaXJ5X2RhdGUoYXJnLCAodW5zaWduZWQgbG9uZyAqKW9wdC0+dmFsdWUpOworfQorCiBpbnQgcGFyc2Vfb3B0X2NvbG9yX2ZsYWdfY2IoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LCBjb25zdCBjaGFyICphcmcsCiAJCQkgICAgaW50IHVuc2V0KQogewpkaWZmIC0tZ2l0IGEvcGFyc2Utb3B0aW9ucy5oIGIvcGFyc2Utb3B0aW9ucy5oCmluZGV4IDFjOGJkOGQuLjliOTQ1OTYgMTAwNjQ0Ci0tLSBhL3BhcnNlLW9wdGlvbnMuaAorKysgYi9wYXJzZS1vcHRpb25zLmgKQEAgLTE0MCw2ICsxNDAsOSBAQAogI2RlZmluZSBPUFRfREFURShzLCBsLCB2LCBoKSBcCiAJeyBPUFRJT05fQ0FMTEJBQ0ssIChzKSwgKGwpLCAodiksIE5fKCJ0aW1lIiksKGgpLCAwLAlcCiAJICBwYXJzZV9vcHRfYXBwcm94aWRhdGVfY2IgfQorI2RlZmluZSBPUFRfRVhQSVJZX0RBVEUocywgbCwgdiwgaCkgXAorCXsgT1BUSU9OX0NBTExCQUNLLCAocyksIChsKSwgKHYpLCBOXygiZXhwaXJ5IGRhdGUiKSwoaCksIDAsCVwKKwkgIHBhcnNlX29wdF9leHBpcnlfZGF0ZV9jYiB9CiAjZGVmaW5lIE9QVF9DQUxMQkFDSyhzLCBsLCB2LCBhLCBoLCBmKSBcCiAJeyBPUFRJT05fQ0FMTEJBQ0ssIChzKSwgKGwpLCAodiksIChhKSwgKGgpLCAwLCAoZikgfQogI2RlZmluZSBPUFRfTlVNQkVSX0NBTExCQUNLKHYsIGgsIGYpIFwKQEAgLTE3Nyw3ICsxODAsNyBAQAogCiBleHRlcm4gaW50IG9wdGJ1Zyhjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsIGNvbnN0IGNoYXIgKnJlYXNvbik7CiBleHRlcm4gaW50IG9wdGVycm9yKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdCwgY29uc3QgY2hhciAqcmVhc29uLCBpbnQgZmxhZ3MpOwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmICEgZGVmaW5lZChjbGFuZykKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhIGRlZmluZWQoX19jbGFuZ19fKQogI2RlZmluZSBvcHRlcnJvcihvLHIsZikgKG9wdGVycm9yKChvKSwociksKGYpKSwgLTEpCiAjZW5kaWYKIApAQCAtMjE5LDYgKzIyMiw3IEBACiAvKi0tLS0tIHNvbWUgb2Z0ZW4gdXNlZCBvcHRpb25zIC0tLS0tKi8KIGV4dGVybiBpbnQgcGFyc2Vfb3B0X2FiYnJldl9jYihjb25zdCBzdHJ1Y3Qgb3B0aW9uICosIGNvbnN0IGNoYXIgKiwgaW50KTsKIGV4dGVybiBpbnQgcGFyc2Vfb3B0X2FwcHJveGlkYXRlX2NiKGNvbnN0IHN0cnVjdCBvcHRpb24gKiwgY29uc3QgY2hhciAqLCBpbnQpOworZXh0ZXJuIGludCBwYXJzZV9vcHRfZXhwaXJ5X2RhdGVfY2IoY29uc3Qgc3RydWN0IG9wdGlvbiAqLCBjb25zdCBjaGFyICosIGludCk7CiBleHRlcm4gaW50IHBhcnNlX29wdF9jb2xvcl9mbGFnX2NiKGNvbnN0IHN0cnVjdCBvcHRpb24gKiwgY29uc3QgY2hhciAqLCBpbnQpOwogZXh0ZXJuIGludCBwYXJzZV9vcHRfdmVyYm9zaXR5X2NiKGNvbnN0IHN0cnVjdCBvcHRpb24gKiwgY29uc3QgY2hhciAqLCBpbnQpOwogZXh0ZXJuIGludCBwYXJzZV9vcHRfd2l0aF9jb21taXQoY29uc3Qgc3RydWN0IG9wdGlvbiAqLCBjb25zdCBjaGFyICosIGludCk7CmRpZmYgLS1naXQgYS9wYXRoLmMgYi9wYXRoLmMKaW5kZXggMDRmZjE0OC4uM2QyNDRkMyAxMDA2NDQKLS0tIGEvcGF0aC5jCisrKyBiL3BhdGguYwpAQCAtNSwxMyArNSw3IEBACiAjaW5jbHVkZSAic3RyYnVmLmgiCiAjaW5jbHVkZSAic3RyaW5nLWxpc3QuaCIKIAotI2lmbmRlZiBnZXRfc3RfbW9kZV9iaXRzCi0vKgotICogVGhlIHJlcGxhY2VtZW50IGxzdGF0KDIpIHdlIHVzZSBvbiBDeWd3aW4gaXMgaW5jb21wbGV0ZSBhbmQKLSAqIG1heSByZXR1cm4gd3JvbmcgcGVybWlzc2lvbiBiaXRzLiBNb3N0IG9mIHRoZSB0aW1lIHdlIGRvIG5vdCBjYXJlLAotICogYnV0IHRoZSBjYWxsc2l0ZXMgb2YgdGhpcyB3cmFwcGVyIGRvIGNhcmUuCi0gKi8KLWludCBnZXRfc3RfbW9kZV9iaXRzKGNvbnN0IGNoYXIgKnBhdGgsIGludCAqbW9kZSkKK3N0YXRpYyBpbnQgZ2V0X3N0X21vZGVfYml0cyhjb25zdCBjaGFyICpwYXRoLCBpbnQgKm1vZGUpCiB7CiAJc3RydWN0IHN0YXQgc3Q7CiAJaWYgKGxzdGF0KHBhdGgsICZzdCkgPCAwKQpAQCAtMTksNyArMTMsNiBAQAogCSptb2RlID0gc3Quc3RfbW9kZTsKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgogCiBzdGF0aWMgY2hhciBiYWRfcGF0aFtdID0gIi9iYWQtcGF0aC8iOwogCkBAIC00NDEsNDIgKzQzNCwxMDAgQEAKIAlyZXR1cm4gMDsKIH0KIAotY29uc3QgY2hhciAqcmVsYXRpdmVfcGF0aChjb25zdCBjaGFyICphYnMsIGNvbnN0IGNoYXIgKmJhc2UpCisvKgorICogR2l2ZSBwYXRoIGFzIHJlbGF0aXZlIHRvIHByZWZpeC4KKyAqCisgKiBUaGUgc3RyYnVmIG1heSBvciBtYXkgbm90IGJlIHVzZWQsIHNvIGRvIG5vdCBhc3N1bWUgaXQgY29udGFpbnMgdGhlCisgKiByZXR1cm5lZCBwYXRoLgorICovCitjb25zdCBjaGFyICpyZWxhdGl2ZV9wYXRoKGNvbnN0IGNoYXIgKmluLCBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkgIHN0cnVjdCBzdHJidWYgKnNiKQogewotCXN0YXRpYyBjaGFyIGJ1ZltQQVRIX01BWCArIDFdOworCWludCBpbl9sZW4gPSBpbiA/IHN0cmxlbihpbikgOiAwOworCWludCBwcmVmaXhfbGVuID0gcHJlZml4ID8gc3RybGVuKHByZWZpeCkgOiAwOworCWludCBpbl9vZmYgPSAwOworCWludCBwcmVmaXhfb2ZmID0gMDsKIAlpbnQgaSA9IDAsIGogPSAwOwogCi0JaWYgKCFiYXNlIHx8ICFiYXNlWzBdKQotCQlyZXR1cm4gYWJzOwotCXdoaWxlIChiYXNlW2ldKSB7Ci0JCWlmIChpc19kaXJfc2VwKGJhc2VbaV0pKSB7Ci0JCQlpZiAoIWlzX2Rpcl9zZXAoYWJzW2pdKSkKLQkJCQlyZXR1cm4gYWJzOwotCQkJd2hpbGUgKGlzX2Rpcl9zZXAoYmFzZVtpXSkpCisJaWYgKCFpbl9sZW4pCisJCXJldHVybiAiLi8iOworCWVsc2UgaWYgKCFwcmVmaXhfbGVuKQorCQlyZXR1cm4gaW47CisKKwl3aGlsZSAoaSA8IHByZWZpeF9sZW4gJiYgaiA8IGluX2xlbiAmJiBwcmVmaXhbaV0gPT0gaW5bal0pIHsKKwkJaWYgKGlzX2Rpcl9zZXAocHJlZml4W2ldKSkgeworCQkJd2hpbGUgKGlzX2Rpcl9zZXAocHJlZml4W2ldKSkKIAkJCQlpKys7Ci0JCQl3aGlsZSAoaXNfZGlyX3NlcChhYnNbal0pKQorCQkJd2hpbGUgKGlzX2Rpcl9zZXAoaW5bal0pKQogCQkJCWorKzsKKwkJCXByZWZpeF9vZmYgPSBpOworCQkJaW5fb2ZmID0gajsKKwkJfSBlbHNlIHsKKwkJCWkrKzsKKwkJCWorKzsKKwkJfQorCX0KKworCWlmICgKKwkgICAgLyogInByZWZpeCIgc2VlbXMgbGlrZSBwcmVmaXggb2YgImluIiAqLworCSAgICBpID49IHByZWZpeF9sZW4gJiYKKwkgICAgLyoKKwkgICAgICogYnV0ICIvZm9vIiBpcyBub3QgYSBwcmVmaXggb2YgIi9mb29iYXIiCisJICAgICAqIChpLmUuIHByZWZpeCBub3QgZW5kIHdpdGggJy8nKQorCSAgICAgKi8KKwkgICAgcHJlZml4X29mZiA8IHByZWZpeF9sZW4pIHsKKwkJaWYgKGogPj0gaW5fbGVuKSB7CisJCQkvKiBpbj0iL2EvYiIsIHByZWZpeD0iL2EvYiIgKi8KKwkJCWluX29mZiA9IGluX2xlbjsKKwkJfSBlbHNlIGlmIChpc19kaXJfc2VwKGluW2pdKSkgeworCQkJLyogaW49Ii9hL2IvYyIsIHByZWZpeD0iL2EvYiIgKi8KKwkJCXdoaWxlIChpc19kaXJfc2VwKGluW2pdKSkKKwkJCQlqKys7CisJCQlpbl9vZmYgPSBqOworCQl9IGVsc2UgeworCQkJLyogaW49Ii9hL2JiYi9jIiwgcHJlZml4PSIvYS9iIiAqLworCQkJaSA9IHByZWZpeF9vZmY7CisJCX0KKwl9IGVsc2UgaWYgKAorCQkgICAvKiAiaW4iIGlzIHNob3J0IHRoYW4gInByZWZpeCIgKi8KKwkJICAgaiA+PSBpbl9sZW4gJiYKKwkJICAgLyogImluIiBub3QgZW5kIHdpdGggJy8nICovCisJCSAgIGluX29mZiA8IGluX2xlbikgeworCQlpZiAoaXNfZGlyX3NlcChwcmVmaXhbaV0pKSB7CisJCQkvKiBpbj0iL2EvYiIsIHByZWZpeD0iL2EvYi9jLyIgKi8KKwkJCXdoaWxlIChpc19kaXJfc2VwKHByZWZpeFtpXSkpCisJCQkJaSsrOworCQkJaW5fb2ZmID0gaW5fbGVuOworCQl9CisJfQorCWluICs9IGluX29mZjsKKwlpbl9sZW4gLT0gaW5fb2ZmOworCisJaWYgKGkgPj0gcHJlZml4X2xlbikgeworCQlpZiAoIWluX2xlbikKKwkJCXJldHVybiAiLi8iOworCQllbHNlCisJCQlyZXR1cm4gaW47CisJfQorCisJc3RyYnVmX3Jlc2V0KHNiKTsKKwlzdHJidWZfZ3JvdyhzYiwgaW5fbGVuKTsKKworCXdoaWxlIChpIDwgcHJlZml4X2xlbikgeworCQlpZiAoaXNfZGlyX3NlcChwcmVmaXhbaV0pKSB7CisJCQlzdHJidWZfYWRkc3RyKHNiLCAiLi4vIik7CisJCQl3aGlsZSAoaXNfZGlyX3NlcChwcmVmaXhbaV0pKQorCQkJCWkrKzsKIAkJCWNvbnRpbnVlOwotCQl9IGVsc2UgaWYgKGFic1tqXSAhPSBiYXNlW2ldKSB7Ci0JCQlyZXR1cm4gYWJzOwogCQl9CiAJCWkrKzsKLQkJaisrOwogCX0KLQlpZiAoCi0JICAgIC8qICIvZm9vIiBpcyBhIHByZWZpeCBvZiAiL2ZvbyIgKi8KLQkgICAgYWJzW2pdICYmCi0JICAgIC8qICIvZm9vIiBpcyBub3QgYSBwcmVmaXggb2YgIi9mb29iYXIiICovCi0JICAgICFpc19kaXJfc2VwKGJhc2VbaS0xXSkgJiYgIWlzX2Rpcl9zZXAoYWJzW2pdKQotCSAgICkKLQkJcmV0dXJuIGFiczsKLQl3aGlsZSAoaXNfZGlyX3NlcChhYnNbal0pKQotCQlqKys7Ci0JaWYgKCFhYnNbal0pCi0JCXN0cmNweShidWYsICIuIik7Ci0JZWxzZQotCQlzdHJjcHkoYnVmLCBhYnMgKyBqKTsKLQlyZXR1cm4gYnVmOworCWlmICghaXNfZGlyX3NlcChwcmVmaXhbcHJlZml4X2xlbiAtIDFdKSkKKwkJc3RyYnVmX2FkZHN0cihzYiwgIi4uLyIpOworCisJc3RyYnVmX2FkZHN0cihzYiwgaW4pOworCisJcmV0dXJuIHNiLT5idWY7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9wYXRoc3BlYy5jIGIvcGF0aHNwZWMuYwppbmRleCAyODRmMzk3Li42ZWEwODY3IDEwMDY0NAotLS0gYS9wYXRoc3BlYy5jCisrKyBiL3BhdGhzcGVjLmMKQEAgLTMyLDcgKzMyLDcgQEAKIAlpZiAoIW51bV91bm1hdGNoZWQpCiAJCXJldHVybjsKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJbWF0Y2hfcGF0aHNwZWMocGF0aHNwZWMsIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSwgMCwgc2Vlbik7CiAJfQogfQpAQCAtNjcsNyArNjcsNyBAQAogewogCWludCBpLCBwYXRoX2xlbiA9IHN0cmxlbihwYXRoKTsKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJaWYgKFNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSkgewogCQkJaW50IGNlX2xlbiA9IGNlX25hbWVsZW4oY2UpOwogCQkJaWYgKHBhdGhfbGVuIDw9IGNlX2xlbiB8fCBwYXRoW2NlX2xlbl0gIT0gJy8nIHx8CmRpZmYgLS1naXQgYS9wby9URUFNUyBiL3BvL1RFQU1TCmluZGV4IDVlYjVhYWQuLjEwN2FhNTkgMTAwNjQ0Ci0tLSBhL3BvL1RFQU1TCisrKyBiL3BvL1RFQU1TCkBAIC0xMiw2ICsxMiwxMSBAQAogCQlKYW4gS3LDvGdlciA8amtAamsuZ3M+CiAJCUNocmlzdGlhbiBTdGltbWluZyA8c3RpbW1pbmdAdHVoaC5kZT4KIAorTGFuZ3VhZ2U6CWZyIChGcmVuY2gpCitSZXBvc2l0b3J5OglodHRwczovL2dpdGh1Yi5jb20vam5hdmlsYS9naXQKK0xlYWRlcjoJCUplYW4tTm/Dq2wgQXZpbGEgPGpuLmF2aWxhQGZyZWUuZnI+CitNZW1iZXJzOglTw6liYXN0aWVuIEhlbGxldSA8Zmxhc2hjb2RlQGZsYXNodHV4Lm9yZz4KKwogTGFuZ3VhZ2U6CWlzIChJY2VsYW5kaWMpCiBMZWFkZXI6CQnDhnZhciBBcm5masO2csOwIEJqYXJtYXNvbiA8YXZhcmFiQGdtYWlsLmNvbT4KIApkaWZmIC0tZ2l0IGEvcG8vZGUucG8gYi9wby9kZS5wbwppbmRleCA0OTAxNDg4Li5mNDA3NmZiIDEwMDY0NAotLS0gYS9wby9kZS5wbworKysgYi9wby9kZS5wbwpAQCAtNSwxMCArNSwxMCBAQAogIwogbXNnaWQgIiIKIG1zZ3N0ciAiIgotIlByb2plY3QtSWQtVmVyc2lvbjogZ2l0IDEuOC4zXG4iCisiUHJvamVjdC1JZC1WZXJzaW9uOiBnaXQgMS44LjRcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wNC0zMCAwODoyNSswODAwXG4iCi0iUE8tUmV2aXNpb24tRGF0ZTogMjAxMi0xMC0wMiAxOTozNSswMjAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDgtMDYgMTQ6MTArMDgwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMDctMjggMTg6NDIrMDIwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogUmFsZiBUaGllbG93IDxyYWxmLnRoaWVsb3dAZ21haWwuY29tPlxuIgogIkxhbmd1YWdlLVRlYW06IEdlcm1hbiA8PlxuIgogIkxhbmd1YWdlOiBkZVxuIgpAQCAtMTcsNyArMTcsNyBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKICJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiE9MSk7XG4iCiAKLSM6IGFkdmljZS5jOjUzCisjOiBhZHZpY2UuYzo1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJoaW50OiAlLipzXG4iCiBtc2dzdHIgIkhpbndlaXM6ICUuKnNcbiIKQEAgLTI2LDIxICsyNiwyMSBAQAogIy4gKiBNZXNzYWdlIHVzZWQgYm90aCB3aGVuICdnaXQgY29tbWl0JyBmYWlscyBhbmQgd2hlbgogIy4gKiBvdGhlciBjb21tYW5kcyBkb2luZyBhIG1lcmdlIGRvLgogIy4KLSM6IGFkdmljZS5jOjgzCisjOiBhZHZpY2UuYzo4NwogbXNnaWQgIiIKICJGaXggdGhlbSB1cCBpbiB0aGUgd29yayB0cmVlLFxuIgogImFuZCB0aGVuIHVzZSAnZ2l0IGFkZC9ybSA8ZmlsZT4nIGFzXG4iCiAiYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uIGFuZCBtYWtlIGEgY29tbWl0LFxuIgogIm9yIHVzZSAnZ2l0IGNvbW1pdCAtYScuIgogbXNnc3RyICIiCi0iS29ycmlnaWVyZW4gU2llIGRpZXMgaW0gQXJiZWl0c2JhdW0sXG4iCisiS29ycmlnaWVyZW4gU2llIGRpZXMgaW0gQXJiZWl0c3ZlcnplaWNobmlzLFxuIgogInVuZCBiZW51dHplbiBTaWUgZGFubiAnZ2l0IGFkZC9ybSA8RGF0ZWk+J1xuIgotInVtIGRpZSBBdWZsw7ZzdW5nIGVudHNwcmVjaGVuZCB6dSBtYXJraWVyZW4gdW5kIGVpbnp1dHJhZ2VuLFxuIgorInVtIGRpZSBBdWZsw7ZzdW5nIGVudHNwcmVjaGVuZCB6dSBtYXJraWVyZW4gdW5kIHp1IGNvbW1pdHRlbixcbiIKICJvZGVyIGJlbnV0emVuIFNpZSAnZ2l0IGNvbW1pdCAtYScuIgogCiAjOiBhcmNoaXZlLmM6MTAKIG1zZ2lkICJnaXQgYXJjaGl2ZSBbb3B0aW9uc10gPHRyZWUtaXNoPiBbPHBhdGg+Li4uXSIKLW1zZ3N0ciAiZ2l0IGFyY2hpdmUgW09wdGlvbmVuXSA8VmVyc2lvbnNyZWZlcmVuej4gWzxQZmFkPi4uLl0iCittc2dzdHIgImdpdCBhcmNoaXZlIFtPcHRpb25lbl0gPENvbW1pdC1SZWZlcmVuej4gWzxQZmFkPi4uLl0iCiAKICM6IGFyY2hpdmUuYzoxMQogbXNnaWQgImdpdCBhcmNoaXZlIC0tbGlzdCIKQEAgLTUwLDEyICs1MCwxMiBAQAogbXNnaWQgIiIKICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8cmVwbz4gWy0tZXhlYyA8Y21kPl0gW29wdGlvbnNdIDx0cmVlLWlzaD4gWzxwYXRoPi4uLl0iCiBtc2dzdHIgIiIKLSJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8UHJvamVrdGFyY2hpdj4gWy0tZXhlYyA8UHJvZ3JhbW0+XSBbT3B0aW9uZW5dICIKLSI8VmVyc2lvbnNyZWZlcmVuej4gW1BmYWQuLi5dIgorImdpdCBhcmNoaXZlIC0tcmVtb3RlIDxSZXBvc2l0b3J5PiBbLS1leGVjIDxQcm9ncmFtbT5dIFtPcHRpb25lbl0gPENvbW1pdC0iCisiUmVmZXJlbno+IFtQZmFkLi4uXSIKIAogIzogYXJjaGl2ZS5jOjEzCiBtc2dpZCAiZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPHJlcG8+IFstLWV4ZWMgPGNtZD5dIC0tbGlzdCIKLW1zZ3N0ciAiZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPFByb2pla3RhcmNoaXY+IFstLWV4ZWMgPFByb2dyYW1tPl0gLS1saXN0IgorbXNnc3RyICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8UmVwb3NpdG9yeT4gWy0tZXhlYyA8UHJvZ3JhbW0+XSAtLWxpc3QiCiAKICM6IGFyY2hpdmUuYzozMjMKIG1zZ2lkICJmbXQiCkBAIC02MywyNyArNjMsMjcgQEAKIAogIzogYXJjaGl2ZS5jOjMyMwogbXNnaWQgImFyY2hpdmUgZm9ybWF0IgotbXNnc3RyICJBdXNnYWJlZm9ybWF0IgorbXNnc3RyICJBcmNoaXZmb3JtYXQiCiAKLSM6IGFyY2hpdmUuYzozMjQgYnVpbHRpbi9sb2cuYzoxMTI2CisjOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTE3MwogbXNnaWQgInByZWZpeCIKIG1zZ3N0ciAiUHJlZml4IgogCiAjOiBhcmNoaXZlLmM6MzI1CiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKLW1zZ3N0ciAic3RlbGx0IGVpbmVuIFByw6RmaXggdm9yIGplZGVuIFBmYWRuYW1lbiBpbiBkZXIgQXVzZ2FiZSIKK21zZ3N0ciAic3RlbGx0IGVpbmVuIFByw6RmaXggdm9yIGplZGVuIFBmYWRuYW1lbiBpbiBkZW0gQXJjaGl2IgogCi0jOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMzcxCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MiBidWlsdGluL2NvbmZpZy5jOjU1IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjUKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjcgYnVpbHRpbi9ncmVwLmM6NzE1IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NwotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MCBidWlsdGluL2xzLWZpbGVzLmM6NDkzIGJ1aWx0aW4vbm90ZXMuYzo1MzYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OTMgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDcgcGFyc2Utb3B0aW9ucy5oOjE0OQorIzogYXJjaGl2ZS5jOjMyNiBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjI5MgorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTMgYnVpbHRpbi9jb25maWcuYzo1NiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjczCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1IGJ1aWx0aW4vZ3JlcC5jOjcxNCBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTYgYnVpbHRpbi9scy1maWxlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NDA4CisjOiBidWlsdGluL25vdGVzLmM6NTY1IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4IHBhcnNlLW9wdGlvbnMuaDoxNTIKIG1zZ2lkICJmaWxlIgogbXNnc3RyICJEYXRlaSIKIAogIzogYXJjaGl2ZS5jOjMyNyBidWlsdGluL2FyY2hpdmUuYzo4OQogbXNnaWQgIndyaXRlIHRoZSBhcmNoaXZlIHRvIHRoaXMgZmlsZSIKLW1zZ3N0ciAic2NocmVpYnQgZGllIEF1c2dhYmUgaW4gZGllc2UgRGF0ZWkiCittc2dzdHIgInNjaHJlaWJ0IGRhcyBBcmNoaXYgaW4gZGllc2UgRGF0ZWkiCiAKICM6IGFyY2hpdmUuYzozMjkKIG1zZ2lkICJyZWFkIC5naXRhdHRyaWJ1dGVzIGluIHdvcmtpbmcgZGlyZWN0b3J5IgpAQCAtMTA3LDE3ICsxMDcsMTcgQEAKIAogIzogYXJjaGl2ZS5jOjM0MwogbXNnaWQgImxpc3Qgc3VwcG9ydGVkIGFyY2hpdmUgZm9ybWF0cyIKLW1zZ3N0ciAibGlzdGV0IHVudGVyc3TDvHR6dGUgQXVzZ2FiZWZvcm1hdGUgYXVmIgorbXNnc3RyICJsaXN0ZXQgdW50ZXJzdMO8dHp0ZSBBcmNoaXZmb3JtYXRlIGF1ZiIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODYKKyM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg1CiBtc2dpZCAicmVwbyIKLW1zZ3N0ciAiUHJvamVrdGFyY2hpdiIKK21zZ3N0ciAiUmVwb3NpdG9yeSIKIAogIzogYXJjaGl2ZS5jOjM0NiBidWlsdGluL2FyY2hpdmUuYzo5MQogbXNnaWQgInJldHJpZXZlIHRoZSBhcmNoaXZlIGZyb20gcmVtb3RlIHJlcG9zaXRvcnkgPHJlcG8+IgotbXNnc3RyICJydWZ0IGRhcyBBcmNoaXYgdm9uIGV4dGVybmVtIFByb2pla3RhcmNoaXYgPFByb2pla3RhcmNoaXY+IGFiIgorbXNnc3RyICJydWZ0IGRhcyBBcmNoaXYgdm9uIFJlbW90ZS1SZXBvc2l0b3J5IDxSZXBvc2l0b3J5PiBhYiIKIAotIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NjE1CisjOiBhcmNoaXZlLmM6MzQ3IGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo0ODcKIG1zZ2lkICJjb21tYW5kIgogbXNnc3RyICJQcm9ncmFtbSIKIApAQCAtMTM2LDg4ICsxMzYsOTAgQEAKICM6IGJyYW5jaC5jOjYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBzZXR0aW5nIGJyYW5jaCAlcyBhcyBpdHMgb3duIHVwc3RyZWFtLiIKLW1zZ3N0ciAiWndlaWcgJXMga2FubiBuaWNodCBzZWluIGVpZ2VuZXIgw5xiZXJuYWhtZXp3ZWlnIHNlaW4uIgorbXNnc3RyICJCcmFuY2ggJXMga2FubiBuaWNodCBzZWluIGVpZ2VuZXIgVXBzdHJlYW0tQnJhbmNoIHNlaW4uIgogCiAjOiBicmFuY2guYzo4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIHJlbW90ZSBicmFuY2ggJXMgZnJvbSAlcyBieSByZWJhc2luZy4iCi1tc2dzdHIgIlp3ZWlnICVzIGtvbmZpZ3VyaWVydCB6dW0gRm9sZ2VuIHZvbiBleHRlcm5lbSBad2VpZyAlcyB2b24gJXMgZHVyY2ggIgotIk5ldWF1ZmJhdS4iCittc2dzdHIgIiIKKyJCcmFuY2ggJXMga29uZmlndXJpZXJ0IHp1bSBGb2xnZW4gdm9uIFJlbW90ZS1CcmFuY2ggJXMgdm9uICVzIGR1cmNoIFJlYmFzZS4iCiAKICM6IGJyYW5jaC5jOjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIGJyYW5jaCAlcyBmcm9tICVzLiIKLW1zZ3N0ciAiWndlaWcgJXMga29uZmlndXJpZXJ0IHp1bSBGb2xnZW4gdm9uIGV4dGVybmVtIFp3ZWlnICVzIHZvbiAlcy4iCittc2dzdHIgIkJyYW5jaCAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gUmVtb3RlLUJyYW5jaCAlcyB2b24gJXMuIgogCiAjOiBicmFuY2guYzo4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIGxvY2FsIGJyYW5jaCAlcyBieSByZWJhc2luZy4iCi1tc2dzdHIgIlp3ZWlnICVzIGtvbmZpZ3VyaWVydCB6dW0gRm9sZ2VuIHZvbiBsb2thbGVtIFp3ZWlnICVzIGR1cmNoIE5ldWF1ZmJhdS4iCittc2dzdHIgIkJyYW5jaCAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gbG9rYWxlbSBCcmFuY2ggJXMgZHVyY2ggUmViYXNlLiIKIAogIzogYnJhbmNoLmM6ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCBicmFuY2ggJXMuIgotbXNnc3RyICJad2VpZyAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gbG9rYWxlbSBad2VpZyAlcy4iCittc2dzdHIgIkJyYW5jaCAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gbG9rYWxlbSBCcmFuY2ggJXMuIgogCiAjOiBicmFuY2guYzo5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIHJlbW90ZSByZWYgJXMgYnkgcmViYXNpbmcuIgotbXNnc3RyICJad2VpZyAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gZXh0ZXJuZXIgUmVmZXJlbnogJXMgZHVyY2ggIgotIk5ldWF1ZmJhdS4iCittc2dzdHIgIkJyYW5jaCAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gUmVtb3RlLVJlZmVyZW56ICVzIGR1cmNoIFJlYmFzZS4iCiAKICM6IGJyYW5jaC5jOjkzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIHJlZiAlcy4iCi1tc2dzdHIgIlp3ZWlnICVzIGtvbmZpZ3VyaWVydCB6dW0gRm9sZ2VuIHZvbiBleHRlcm5lciBSZWZlcmVueiAlcy4iCittc2dzdHIgIkJyYW5jaCAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gUmVtb3RlLVJlZmVyZW56ICVzLiIKIAogIzogYnJhbmNoLmM6OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCByZWYgJXMgYnkgcmViYXNpbmcuIgotbXNnc3RyICJad2VpZyAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gbG9rYWxlciBSZWZlcmVueiAlcyBkdXJjaCAiCi0iTmV1YXVmYmF1LiIKK21zZ3N0ciAiIgorIkJyYW5jaCAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gbG9rYWxlciBSZWZlcmVueiAlcyBkdXJjaCBSZWJhc2UuIgogCiAjOiBicmFuY2guYzo5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIGxvY2FsIHJlZiAlcy4iCi1tc2dzdHIgIlp3ZWlnICVzIGtvbmZpZ3VyaWVydCB6dW0gRm9sZ2VuIHZvbiBsb2thbGVyIFJlZmVyZW56ICVzLiIKK21zZ3N0ciAiQnJhbmNoICVzIGtvbmZpZ3VyaWVydCB6dW0gRm9sZ2VuIHZvbiBsb2thbGVyIFJlZmVyZW56ICVzLiIKIAogIzogYnJhbmNoLmM6MTE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRyYWNraW5nIG5vdCBzZXQgdXA6IG5hbWUgdG9vIGxvbmc6ICVzIgotbXNnc3RyICJLb25maWd1cmF0aW9uIHp1bSBGb2xnZW4gdm9uIFp3ZWlnIG5pY2h0IGVpbmdlcmljaHRldC4gTmFtZSB6dSBsYW5nOiAlcyIKK21zZ3N0ciAiIgorIktvbmZpZ3VyYXRpb24genVtIEZvbGdlbiB2b24gQnJhbmNoIG5pY2h0IGVpbmdlcmljaHRldC4gTmFtZSB6dSBsYW5nOiAlcyIKIAogIzogYnJhbmNoLmM6MTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCB0cmFja2luZzogYW1iaWd1b3VzIGluZm9ybWF0aW9uIGZvciByZWYgJXMiCi1tc2dzdHIgIktvbmZpZ3VyYXRpb24genVtIEZvbGdlbiB2b24gWndlaWcgbmljaHQgZWluZ2VyaWNodGV0LiBSZWZlcmVueiAlcyBpc3QgbWVocmRldXRpZy4iCittc2dzdHIgIiIKKyJLb25maWd1cmF0aW9uIHp1bSBGb2xnZW4gdm9uIEJyYW5jaCBuaWNodCBlaW5nZXJpY2h0ZXQuIFJlZmVyZW56ICVzIGlzdCAiCisibWVocmRldXRpZy4iCiAKICM6IGJyYW5jaC5jOjE4MgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIGJyYW5jaCBuYW1lLiIKLW1zZ3N0ciAiJyVzJyBpc3Qga2VpbiBnw7xsdGlnZXIgWndlaWduYW1lLiIKK21zZ3N0ciAiJyVzJyBpc3Qga2VpbiBnw7xsdGlnZXIgQnJhbmNobmFtZS4iCiAKICM6IGJyYW5jaC5jOjE4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJBIGJyYW5jaCBuYW1lZCAnJXMnIGFscmVhZHkgZXhpc3RzLiIKLW1zZ3N0ciAiWndlaWcgJyVzJyBleGlzdGllcnQgYmVyZWl0cy4iCittc2dzdHIgIkJyYW5jaCAnJXMnIGV4aXN0aWVydCBiZXJlaXRzLiIKIAogIzogYnJhbmNoLmM6MTk1CiBtc2dpZCAiQ2Fubm90IGZvcmNlIHVwZGF0ZSB0aGUgY3VycmVudCBicmFuY2guIgotbXNnc3RyICJLYW5uIEFrdHVhbGlzaWVydW5nIGRlcyBha3R1ZWxsZW4gWndlaWdlcyBuaWNodCBlcnp3aW5nZW4uIgorbXNnc3RyICJLYW5uIEFrdHVhbGlzaWVydW5nIGRlcyBha3R1ZWxsZW4gQnJhbmNoZXMgbmljaHQgZXJ6d2luZ2VuLiIKIAotIzogYnJhbmNoLmM6MjAxCisjOiBicmFuY2guYzoyMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNldHVwIHRyYWNraW5nIGluZm9ybWF0aW9uOyBzdGFydGluZyBwb2ludCAnJXMnIGlzIG5vdCBhIGJyYW5jaC4iCiBtc2dzdHIgIiIKLSJLYW5uIEluZm9ybWF0aW9uZW4genVtIMOcYmVybmFobWV6d2VpZyBuaWNodCBlaW5yaWNodGVuOyBTdGFydHB1bmt0ICclcycgaXN0ICIKLSJrZWluIFp3ZWlnLiIKKyJLYW5uIFRyYWNraW5nLUluZm9ybWF0aW9uZW4gbmljaHQgZWlucmljaHRlbjsgU3RhcnRwdW5rdCAnJXMnIGlzdCBrZWluICIKKyJCcmFuY2guIgogCi0jOiBicmFuY2guYzoyMDMKKyM6IGJyYW5jaC5jOjIxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgotbXNnc3RyICJkZXIgYW5nZWZvcmRlcnRlIGV4dGVybmUgw5xiZXJuYWhtZXp3ZWlnICclcycgZXhpc3RpZXJ0IG5pY2h0IgorbXNnc3RyICJkZXIgYW5nZWZvcmRlcnRlIFVwc3RyZWFtLUJyYW5jaCAnJXMnIGV4aXN0aWVydCBuaWNodCIKIAotIzogYnJhbmNoLmM6MjA1CisjOiBicmFuY2guYzoyMjAKIG1zZ2lkICIiCiAiXG4iCiAiSWYgeW91IGFyZSBwbGFubmluZyBvbiBiYXNpbmcgeW91ciB3b3JrIG9uIGFuIHVwc3RyZWFtXG4iCkBAIC0yMjksMzUgKzIzMSwzNSBAQAogIlwiZ2l0IHB1c2ggLXVcIiB0byBzZXQgdGhlIHVwc3RyZWFtIGNvbmZpZyBhcyB5b3UgcHVzaC4iCiBtc2dzdHIgIiIKICJcbiIKLSJGYWxscyBTaWUgdm9yaGFiZW4sIElocmUgQXJiZWl0IGF1ZiBlaW5lbSBiZXJlaXRzIGV4aXN0aWVyZW5kZW4sXG4iCi0iZXh0ZXJuZW4gw5xiZXJuYWhtZXp3ZWlnIGF1Znp1YmF1ZW4sIHNvbGx0ZW4gU2llIFwiZ2l0IGZldGNoXCJcbiIKKyJGYWxscyBTaWUgdm9yaGFiZW4sIElocmUgQXJiZWl0IGF1ZiBlaW5lbSBiZXJlaXRzIGV4aXN0aWVyZW5kZW5cbiIKKyJVcHN0cmVhbS1CcmFuY2ggYXVmenViYXVlbiwgc29sbHRlbiBTaWUgXCJnaXQgZmV0Y2hcIlxuIgogImF1c2bDvGhyZW4sIHVtIGRpZXNlbiBhYnp1cnVmZW4uXG4iCiAiXG4iCi0iRmFsbHMgU2llIHZvcmhhYmVuLCBlaW5lbiBuZXVlbiBsb2thbGVuIFp3ZWlnIHp1IHZlcnNlbmRlblxuIgorIkZhbGxzIFNpZSB2b3JoYWJlbiwgZWluZW4gbmV1ZW4gbG9rYWxlbiBCcmFuY2ggenUgdmVyc2VuZGVuXG4iCiAiZGVyIHNlaW5lbSBleHRlcm5lbiBHZWdlbnN0w7xjayBmb2xnZW4gc29sbCwga8O2bm5lbiBTaWVcbiIKLSJcImdpdCBwdXNoIC11XCIgdmVyd2VuZGVuLCB1bSBkZW4gZXh0ZXJuZW4gw5xiZXJuYWhtZXp3ZWlnXG4iCi0iYmVpbSBWZXJzYW5kIHp1IGtvbmZpZ3VyaWVyZW4uIgorIlwiZ2l0IHB1c2ggLXVcIiB2ZXJ3ZW5kZW4sIHVtIGRlbiBVcHN0cmVhbS1CcmFuY2ggYmVpbSBcInB1c2hcIlxuIgorInp1IGtvbmZpZ3VyaWVyZW4uIgogCi0jOiBicmFuY2guYzoyNTAKKyM6IGJyYW5jaC5jOjI2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZTogJyVzJy4iCiBtc2dzdHIgIlVuZ8O8bHRpZ2VyIE9iamVrdC1OYW1lOiAnJXMnIgogCi0jOiBicmFuY2guYzoyNzAKKyM6IGJyYW5jaC5jOjI4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJBbWJpZ3VvdXMgb2JqZWN0IG5hbWU6ICclcycuIgogbXNnc3RyICJtZWhyZGV1dGlnZXIgT2JqZWt0LU5hbWU6ICclcyciCiAKLSM6IGJyYW5jaC5jOjI3NQorIzogYnJhbmNoLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCi1tc2dzdHIgIlVuZ8O8bHRpZ2VyIFZlcnp3ZWlndW5nc3B1bmt0OiAnJXMnIgorbXNnc3RyICJVbmfDvGx0aWdlciBCcmFuY2hwdW5rdDogJyVzJyIKIAotIzogYnJhbmNoLmM6MjgxCisjOiBicmFuY2guYzoyOTYKIG1zZ2lkICJGYWlsZWQgdG8gbG9jayByZWYgZm9yIHVwZGF0ZSIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gU3BlcnJlbiBkZXIgUmVmZXJlbnogenVyIEFrdHVhbGlzaWVydW5nLiIKIAotIzogYnJhbmNoLmM6Mjk5CisjOiBicmFuY2guYzozMTQKIG1zZ2lkICJGYWlsZWQgdG8gd3JpdGUgcmVmIgogbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hyZWliZW4gZGVyIFJlZmVyZW56LiIKIApAQCAtMjcxLDE4ICsyNzMsMTggQEAKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaGVhZGVyOiAlcyVzICglZCkiCiBtc2dzdHIgIm5pY2h0IGVya2FubnRlciBLb3BmYmVyZWljaDogJXMlcyAoJWQpIgogCi0jOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY3NgorIzogYnVuZGxlLmM6ODkgYnVpbHRpbi9jb21taXQuYzo2OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAiS29ubnRlICclcycgbmljaHQgw7ZmZm5lbiIKIAogIzogYnVuZGxlLmM6MTQwCiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyB0aGVzZSBwcmVyZXF1aXNpdGUgY29tbWl0czoiCi1tc2dzdHIgIkRlbSBQcm9qZWt0YXJjaGl2IGZlaGxlbiBmb2xnZW5kZSB2b3JhdXNnZXNldHp0ZSBWZXJzaW9uZW46IgorbXNnc3RyICJEZW0gUmVwb3NpdG9yeSBmZWhsZW4gZm9sZ2VuZGUgdm9yYXVzZ2VzZXR6dGUgQ29tbWl0czoiCiAKLSM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NTEgc2VxdWVuY2VyLmM6MTEwMSBidWlsdGluL2xvZy5jOjMwMAotIzogYnVpbHRpbi9sb2cuYzo3NzAgYnVpbHRpbi9sb2cuYzoxMzQ0IGJ1aWx0aW4vbG9nLmM6MTU3MCBidWlsdGluL21lcmdlLmM6MzQ5Ci0jOiBidWlsdGluL3Nob3J0bG9nLmM6MTU1CisjOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjYxIHNlcXVlbmNlci5jOjExMTEgYnVpbHRpbi9sb2cuYzozMzEKKyM6IGJ1aWx0aW4vbG9nLmM6ODAxIGJ1aWx0aW4vbG9nLmM6MTM5OSBidWlsdGluL2xvZy5jOjE2MjUgYnVpbHRpbi9tZXJnZS5jOjM2NAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NgogbXNnaWQgInJldmlzaW9uIHdhbGsgc2V0dXAgZmFpbGVkIgogbXNnc3RyICJFaW5yaWNodHVuZyBkZXMgUmV2aXNpb25zZ2FuZ3MgZmVobGdlc2NobGFnZW4iCiAKQEAgLTMwOCw3ICszMTAsNyBAQAogbXNnaWQgInJldi1saXN0IGRpZWQiCiBtc2dzdHIgIlwicmV2LWxpc3RcIiBhYmdlYnJvY2hlbiIKIAotIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTI1NSBidWlsdGluL3Nob3J0bG9nLmM6MjU4CisjOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMzEwIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAlcyIKIG1zZ3N0ciAibmljaHQgZXJrYW5udGVzIEFyZ3VtZW50OiAlcyIKQEAgLTMzOSwzMCArMzQxLDMwIEBACiBtc2dpZCAiaW5kZXgtcGFjayBkaWVkIgogbXNnc3RyICJFcnN0ZWxsdW5nIGRlciBQYWtldGluZGV4ZGF0ZWkgYWJnZWJyb2NoZW4iCiAKLSM6IGNvbW1pdC5jOjUwCisjOiBjb21taXQuYzo1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgJXMiCiBtc2dzdHIgImtvbm50ZSAlcyBuaWNodCBwYXJzZW4iCiAKLSM6IGNvbW1pdC5jOjUyCisjOiBjb21taXQuYzo1NQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyAlcyBpcyBub3QgYSBjb21taXQhIgotbXNnc3RyICIlcyAlcyBpc3Qga2VpbmUgVmVyc2lvbiEiCittc2dzdHIgIiVzICVzIGlzdCBrZWluIENvbW1pdCEiCiAKICM6IGNvbXBhdC9vYnN0YWNrLmM6NDA2IGNvbXBhdC9vYnN0YWNrLmM6NDA4CiBtc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKIG1zZ3N0ciAiU3BlaWNoZXIgdmVyYnJhdWNodCIKIAotIzogY29ubmVjdGVkLmM6MzkKKyM6IGNvbm5lY3RlZC5jOjYwCiBtc2dpZCAiQ291bGQgbm90IHJ1biAnZ2l0IHJldi1saXN0JyIKIG1zZ3N0ciAiS29ubnRlICdnaXQgcmV2LWxpc3QnIG5pY2h0IGF1c2bDvGhyZW4iCiAKLSM6IGNvbm5lY3RlZC5jOjQ4CisjOiBjb25uZWN0ZWQuYzo4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgd3JpdGUgdG8gcmV2LWxpc3Q6ICVzIgogbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hyZWliZW4gbmFjaCByZXYtbGlzdDogJXMiCiAKLSM6IGNvbm5lY3RlZC5jOjU2CisjOiBjb25uZWN0ZWQuYzo4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY2xvc2UgcmV2LWxpc3QncyBzdGRpbjogJXMiCiBtc2dzdHIgIkZlaGxlciBiZWltIFNjaGxpZcOfZW4gdm9uIHJldi1saXN0J3MgU3RhbmRhcmQtRWluZ2FiZTogJXMiCkBAIC00NTksNyArNDYxLDcgQEAKICJGZWhsZXIgaW4gJ2RpZmYuZGlyc3RhdCcgS29uZmlndXJhdGlvbnN2YXJpYWJsZSBnZWZ1bmRlbjpcbiIKICIlcyIKIAotIzogZGlmZi5jOjM0ODEKKyM6IGRpZmYuYzozNDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJGYWlsZWQgdG8gcGFyc2UgLS1kaXJzdGF0Ly1YIG9wdGlvbiBwYXJhbWV0ZXI6XG4iCkBAIC00NjgsNyArNDcwLDcgQEAKICJGZWhsZXIgYmVpbSBQYXJzZW4gZGVzIC0tZGlyc3RhdC8tWCBPcHRpb25zcGFyYW1ldGVyczpcbiIKICIlcyIKIAotIzogZGlmZi5jOjM0OTUKKyM6IGRpZmYuYzozNTAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBwYXJzZSAtLXN1Ym1vZHVsZSBvcHRpb24gcGFyYW1ldGVyOiAnJXMnIgogbXNnc3RyICJGZWhsZXIgYmVpbSBQYXJzZW4gZGVzIC0tc3VibW9kdWxlIE9wdGlvbnNwYXJhbWV0ZXJzOiAnJXMnIgpAQCAtNTEwLDIwICs1MTIsMjAgQEAKIG1zZ2lkICInJXMnOiBzaG9ydCByZWFkICVzIgogbXNnc3RyICInJXMnOiByZWFkKCkgenUga3VyeiAlcyIKIAotIzogaGVscC5jOjIxMgorIzogaGVscC5jOjIxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJhdmFpbGFibGUgZ2l0IGNvbW1hbmRzIGluICclcyciCiBtc2dzdHIgIlZvcmhhbmRlbmUgR2l0LUtvbW1hbmRvcyBpbiAnJXMnIgogCi0jOiBoZWxwLmM6MjE5CisjOiBoZWxwLmM6MjE3CiBtc2dpZCAiZ2l0IGNvbW1hbmRzIGF2YWlsYWJsZSBmcm9tIGVsc2V3aGVyZSBvbiB5b3VyICRQQVRIIgogbXNnc3RyICJWb3JoYW5kZW5lIEdpdC1Lb21tYW5kb3MgaXJnZW5kd28gaW4gSWhyZW0gJFBBVEgiCiAKLSM6IGhlbHAuYzoyMzUKKyM6IGhlbHAuYzoyMzMKIG1zZ2lkICJUaGUgbW9zdCBjb21tb25seSB1c2VkIGdpdCBjb21tYW5kcyBhcmU6IgogbXNnc3RyICJEaWUgYWxsZ2VtZWluIHZlcndlbmRldGVuIEdpdC1Lb21tYW5kb3Mgc2luZDoiCiAKLSM6IGhlbHAuYzoyOTIKKyM6IGhlbHAuYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiclcycgYXBwZWFycyB0byBiZSBhIGdpdCBjb21tYW5kLCBidXQgd2Ugd2VyZSBub3RcbiIKQEAgLTUzMiwxMSArNTM0LDExIEBACiAiJyVzJyBzY2hlaW50IGVpbiBnaXQtS29tbWFuZG8genUgc2Vpbiwga29ubnRlIGFiZXJcbiIKICJuaWNodCBhdXNnZWbDvGhydCB3ZXJkZW4uIFZpZWxsZWljaHQgaXN0IGdpdC0lcyBmZWhsZXJoYWZ0PyIKIAotIzogaGVscC5jOjM0OQorIzogaGVscC5jOjM0NwogbXNnaWQgIlVoIG9oLiBZb3VyIHN5c3RlbSByZXBvcnRzIG5vIEdpdCBjb21tYW5kcyBhdCBhbGwuIgogbXNnc3RyICJVaCBvaC4gS2VpbmUgR2l0LUtvbW1hbmRvcyBhdWYgSWhyZW0gU3lzdGVtIHZvcmhhbmRlbi4iCiAKLSM6IGhlbHAuYzozNzEKKyM6IGhlbHAuYzozNjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIldBUk5JTkc6IFlvdSBjYWxsZWQgYSBHaXQgY29tbWFuZCBuYW1lZCAnJXMnLCB3aGljaCBkb2VzIG5vdCBleGlzdC5cbiIKQEAgLTU0NSwxNyArNTQ3LDE3IEBACiAiV2FybnVuZzogU2llIGhhYmVuIGRhcyBuaWNodCBleGlzdGllcmVuZGUgR2l0LUtvbW1hbmRvICclcycgYXVzZ2Vmw7xocnQuXG4iCiAiU2V0emUgZm9ydCB1bnRlciBkZXIgQW5uYWhtZSwgZGFzcyBTaWUgJyVzJyBnZW1laW50IGhhYmVuIgogCi0jOiBoZWxwLmM6Mzc2CisjOiBoZWxwLmM6Mzc0CiAjLCBjLWZvcm1hdAogbXNnaWQgImluICUwLjFmIHNlY29uZHMgYXV0b21hdGljYWxseS4uLiIKIG1zZ3N0ciAiYXV0b21hdGlzY2ggaW4gJTAuMWYgU2VrdW5kZW4uLi4iCiAKLSM6IGhlbHAuYzozODMKKyM6IGhlbHAuYzozODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0OiAnJXMnIGlzIG5vdCBhIGdpdCBjb21tYW5kLiBTZWUgJ2dpdCAtLWhlbHAnLiIKIG1zZ3N0ciAiZ2l0OiAnJXMnIGlzdCBrZWluIEdpdC1Lb21tYW5kby4gU2llaGUgJ2dpdCAtLWhlbHAnLiIKIAotIzogaGVscC5jOjM4NworIzogaGVscC5jOjM4NSBoZWxwLmM6NDQ0CiBtc2dpZCAiIgogIlxuIgogIkRpZCB5b3UgbWVhbiB0aGlzPyIKQEAgLTU2OSw4OSArNTcxLDk0IEBACiAiXG4iCiAiSGFiZW4gU2llIGVpbmVzIHZvbiBkaWVzZW4gZ2VtZWludD8iCiAKKyM6IGhlbHAuYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIC0gJXMiCittc2dzdHIgIiVzOiAlcyAtICVzIgorCiAjOiBtZXJnZS5jOjU2CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGhlIGNhY2hlIgogbXNnc3RyICJMZXNlbiBkZXMgWndpc2NoZW5zcGVpY2hlcnMgZmVobGdlc2NobGFnZW4iCiAKICM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNjUgYnVpbHRpbi9jaGVja291dC5jOjU2NgotIzogYnVpbHRpbi9jbG9uZS5jOjY0NQorIzogYnVpbHRpbi9jbG9uZS5jOjY1NgogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKLW1zZ3N0ciAiS29ubnRlIG5ldWUgQmVyZWl0c3RlbGx1bmdzZGF0ZWkgbmljaHQgc2NocmVpYmVuLiIKK21zZ3N0ciAiS29ubnRlIG5ldWUgU3RhZ2luZy1BcmVhLURhdGVpIG5pY2h0IHNjaHJlaWJlbi4iCiAKICM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5MAogIywgYy1mb3JtYXQKIG1zZ2lkICIoYmFkIGNvbW1pdClcbiIKLW1zZ3N0ciAiKHVuZ8O8bHRpZ2UgVmVyc2lvbilcbiIKK21zZ3N0ciAiKHVuZ8O8bHRpZ2VyIENvbW1pdClcbiIKIAogIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjA2CiAjLCBjLWZvcm1hdAogbXNnaWQgImFkZGluZm9fY2FjaGUgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgImFkZGluZm9fY2FjaGUgZsO8ciBQZmFkICclcycgZmVobGdlc2NobGFnZW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjI2OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjY5CiBtc2dpZCAiZXJyb3IgYnVpbGRpbmcgdHJlZXMiCi1tc2dzdHIgIkZlaGxlciBiZWltIEVyc3RlbGxlbiBkZXIgQsOkdW1lIgorbXNnc3RyICJGZWhsZXIgYmVpbSBFcnN0ZWxsZW4gZGVyIFwiVHJlZVwiLU9iamVrdGUiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY3MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgcGF0aCAnJXMnJXMiCiBtc2dzdHIgIkZlaGxlciBiZWltIEVyc3RlbGxlbiBkZXMgUGZhZGVzICclcyclcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjgzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2ODQKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXMgdG8gbWFrZSByb29tIGZvciBzdWJkaXJlY3RvcnlcbiIKIG1zZ3N0ciAiRW50ZmVybmUgJXMgdW0gUGxhdHogZsO8ciBVbnRlcnZlcnplaWNobmlzIHp1IHNjaGFmZmVuXG4iCiAKICMuIHNvbWV0aGluZyBlbHNlIGV4aXN0cwogIy4gLi4gYnV0IG5vdCBzb21lIG90aGVyIGVycm9yICh3aG8gcmVhbGx5IGNhcmVzIHdoYXQ/KQotIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njk3IG1lcmdlLXJlY3Vyc2l2ZS5jOjcxOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njk4IG1lcmdlLXJlY3Vyc2l2ZS5jOjcxOQogbXNnaWQgIjogcGVyaGFwcyBhIEQvRiBjb25mbGljdD8iCiBtc2dzdHIgIjogdmllbGxlaWNodCBlaW4gVmVyemVpY2huaXMvRGF0ZWktS29uZmxpa3Q/IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3MDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjcwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZ1c2luZyB0byBsb3NlIHVudHJhY2tlZCBmaWxlIGF0ICclcyciCiBtc2dzdHIgInZlcndlaWdlcmUsIGRhIHVuYmVvYmFjaHRldGUgRGF0ZWllbiBpbiAnJXMnIHZlcmxvcmVuIGdlaGVuIHfDvHJkZW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc0OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIG9iamVjdCAlcyAnJXMnIgogbXNnc3RyICJrYW5uIE9iamVrdCAlcyAnJXMnIG5pY2h0IGxlc2VuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NTAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJibG9iIGV4cGVjdGVkIGZvciAlcyAnJXMnIgogbXNnc3RyICJCbG9iIGVyd2FydGV0IGbDvHIgJXMgJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzczIGJ1aWx0aW4vY2xvbmUuYzozMTMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3NCBidWlsdGluL2Nsb25lLmM6MzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBvcGVuICclcyciCiBtc2dzdHIgIkZlaGxlciBiZWltIMOWZmZuZW4gdm9uICclcyciCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzeW1saW5rICclcyciCi1tc2dzdHIgIkZlaGxlciBiZWltIEVyc3RlbGxlbiBlaW5lciBzeW1ib2xpc2NoZW4gVmVya27DvHBmdW5nIGbDvHIgJyVzJyIKK21zZ3N0ciAiRmVobGVyIGJlaW0gRXJzdGVsbGVuIGVpbmVzIHN5bWJvbGlzY2hlbiBWZXJ3ZWlzZXMgZsO8ciAnJXMnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJkbyBub3Qga25vdyB3aGF0IHRvIGRvIHdpdGggJTA2byAlcyAnJXMnIgogbXNnc3RyICJ3ZWnDnyBuaWNodCB3YXMgbWl0ICUwNm8gJXMgJyVzJyB6dSBtYWNoZW4gaXN0IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyMwogbXNnaWQgIkZhaWxlZCB0byBleGVjdXRlIGludGVybmFsIG1lcmdlIgotbXNnc3RyICJGZWhsZXIgYmVpIEF1c2bDvGhydW5nIGRlciBpbnRlcm5lbiBadXNhbW1lbmbDvGhydW5nIgorbXNnc3RyICJGZWhsZXIgYmVpIEF1c2bDvGhydW5nIGRlcyBpbnRlcm5lbiBNZXJnZXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBhZGQgJXMgdG8gZGF0YWJhc2UiCiBtc2dzdHIgIktvbm50ZSAlcyBuaWNodCB6dXIgRGF0ZW5iYW5rIGhpbnp1ZsO8Z2VuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo5NDIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjk0MwogbXNnaWQgInVuc3VwcG9ydGVkIG9iamVjdCB0eXBlIGluIHRoZSB0cmVlIgotbXNnc3RyICJuaWNodCB1bnRlcnN0w7x0enRlciBPYmpla3R0eXAgaW0gQmF1bSIKK21zZ3N0ciAibmljaHQgdW50ZXJzdMO8dHp0ZXIgT2JqZWt0dHlwIGltIFZlcnplaWNobmlzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIxIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjIgbWVyZ2UtcmVjdXJzaXZlLmM6MTAzNgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgpAQCAtNjYwLDcgKzY2Nyw3IEBACiAiS09ORkxJS1QgKCVzL2zDtnNjaGVuKTogJXMgZ2Vsw7ZzY2h0IGluICVzIHVuZCAlcyBpbiAlcy4gU3RhbmQgJXMgdm9uICVzIHd1cmRlICIKICJpbSBBcmJlaXRzYmVyZWljaCBnZWxhc3Nlbi4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjcgbWVyZ2UtcmVjdXJzaXZlLmM6MTA0MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyOCBtZXJnZS1yZWN1cnNpdmUuYzoxMDQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDT05GTElDVCAoJXMvZGVsZXRlKTogJXMgZGVsZXRlZCBpbiAlcyBhbmQgJXMgaW4gJXMuIFZlcnNpb24gJXMgb2YgJXMgbGVmdCAiCkBAIC02NjksMTc0ICs2NzYsMTk3IEBACiAiS09ORkxJS1QgKCVzL2zDtnNjaGVuKTogJXMgZ2Vsw7ZzY2h0IGluICVzIHVuZCAlcyBpbiAlcy4gU3RhbmQgJXMgdm9uICVzIHd1cmRlICIKICJpbSBBcmJlaXRzYmVyZWljaCBiZWkgJXMgZ2VsYXNzZW4uIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgyCiBtc2dpZCAicmVuYW1lIgogbXNnc3RyICJ1bWJlbmVubmVuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgyCiBtc2dpZCAicmVuYW1lZCIKIG1zZ3N0ciAidW1iZW5hbm50IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTM3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGlzIGEgZGlyZWN0b3J5IGluICVzIGFkZGluZyBhcyAlcyBpbnN0ZWFkIgogbXNnc3RyICIlcyBpc3QgZWluIFZlcnplaWNobmlzIGluICVzLCBmw7xnZSBlcyBzdGF0dGRlc3NlbiBhbHMgJXMgaGluenUiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNTkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUIChyZW5hbWUvcmVuYW1lKTogUmVuYW1lIFwiJXNcIi0+XCIlc1wiIGluIGJyYW5jaCBcIiVzXCIgcmVuYW1lIFwiJXMiCiAiXCItPlwiJXNcIiBpbiBcIiVzXCIlcyIKIG1zZ3N0ciAiIgotIktPTkZMSUtUICh1bWJlbmVubmVuL3VtYmVuZW5uZW4pOiBCZW5lbm5lIHVtIFwiJXNcIi0+XCIlc1wiIGluIFp3ZWlnIFwiJXNcIiAiCi0idW5kIFwiJXNcIi0+XCIlc1wiIGluIFp3ZWlnIFwiJXNcIiVzIgorIktPTkZMSUtUICh1bWJlbmVubmVuL3VtYmVuZW5uZW4pOiBCZW5lbm5lIHVtIFwiJXNcIi0+XCIlc1wiIGluIEJyYW5jaCBcIiVzXCIgIgorInVuZCBcIiVzXCItPlwiJXNcIiBpbiBCcmFuY2ggXCIlc1wiJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjUKIG1zZ2lkICIgKGxlZnQgdW5yZXNvbHZlZCkiCiBtc2dzdHIgIiAoYmxlaWJ0IHVuYXVmZ2Vsw7ZzdCkiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyMTgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKHJlbmFtZS9yZW5hbWUpOiBSZW5hbWUgJXMtPiVzIGluICVzLiBSZW5hbWUgJXMtPiVzIGluICVzIgogbXNnc3RyICIiCiAiS09ORkxJS1QgKHVtYmVuZW5uZW4vdW1iZW5lbm5lbik6IEJlbmVubmUgdW0gJXMtPiVzIGluICVzLiBCZW5lbm5lIHVtICVzLT4lcyAiCiAiaW4gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyNDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1pbmcgJXMgdG8gJXMgYW5kICVzIHRvICVzIGluc3RlYWQiCiBtc2dzdHIgIkJlbmVubmUgc3RhdHRkZXNzZW4gJXMgbmFjaCAlcyB1bmQgJXMgbmFjaCAlcyB1bSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ0NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAocmVuYW1lL2FkZCk6IFJlbmFtZSAlcy0+JXMgaW4gJXMuICVzIGFkZGVkIGluICVzIgogbXNnc3RyICIiCiAiS09ORkxJS1QgKHVtYmVuZW5uZW4vaGluenVmw7xnZW4pOiBCZW5lbm5lIHVtICVzLT4lcyBpbiAlcy4gJXMgaGluenVnZWbDvGd0IGluICIKICIlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgbWVyZ2VkICVzIgogbXNnc3RyICJGw7xnZSB6dXNhbW1lbmdlZsO8aHJ0ZSBEYXRlaSAlcyBoaW56dSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MiBtZXJnZS1yZWN1cnNpdmUuYzoxNjYwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDYzIG1lcmdlLXJlY3Vyc2l2ZS5jOjE2NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIkbDvGdlIHN0YXR0ZGVzc2VuIGFscyAlcyBoaW56dSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBvYmplY3QgJXMiCiBtc2dzdHIgImthbm4gT2JqZWt0ICVzIG5pY2h0IGxlc2VuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTE2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAlcyBpcyBub3QgYSBibG9iIgogbXNnc3RyICJPYmpla3QgJXMgaXN0IGtlaW4gQmxvYiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NQogbXNnaWQgIm1vZGlmeSIKIG1zZ3N0ciAiw6RuZGVybiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NQogbXNnaWQgIm1vZGlmaWVkIgogbXNnc3RyICJnZcOkbmRlcnQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NzQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NzUKIG1zZ2lkICJjb250ZW50IgogbXNnc3RyICJJbmhhbHQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1ODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1ODIKIG1zZ2lkICJhZGQvYWRkIgogbXNnc3RyICJoaW56dWbDvGdlbi9oaW56dWbDvGdlbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGVkICVzIChtZXJnZWQgc2FtZSBhcyBleGlzdGluZykiCi1tc2dzdHIgIiVzIGF1c2dlbGFzc2VuIChFcmdlYm5pcyBkZXIgWnVzYW1tZW5mw7xocnVuZyBleGlzdGllcnQgYmVyZWl0cykiCittc2dzdHIgIiVzIGF1c2dlbGFzc2VuIChFcmdlYm5pcyBkZXMgTWVyZ2VzIGV4aXN0aWVydCBiZXJlaXRzKSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYyOQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCi1tc2dzdHIgImF1dG9tYXRpc2NoZSBadXNhbW1lbmbDvGhydW5nIHZvbiAlcyIKK21zZ3N0ciAiYXV0b21hdGlzY2hlciBNZXJnZSB2b24gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzMgZ2l0LXN1Ym1vZHVsZS5zaDoxMDI5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0IGdpdC1zdWJtb2R1bGUuc2g6MTExOAogbXNnaWQgInN1Ym1vZHVsZSIKLW1zZ3N0ciAiVW50ZXJwcm9qZWt0IgorbXNnc3RyICJTdWJtb2R1bCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAoJXMpOiBNZXJnZSBjb25mbGljdCBpbiAlcyIKLW1zZ3N0ciAiS09ORkxJS1QgKCVzKTogWnVzYW1tZW5mw7xocnVuZ3Nrb25mbGlrdCBpbiAlcyIKK21zZ3N0ciAiS09ORkxJS1QgKCVzKTogTWVyZ2UtS29uZmxpa3QgaW4gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3MjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXMiCiBtc2dzdHIgIkVudGZlcm5lICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzQ5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzUwCiBtc2dpZCAiZmlsZS9kaXJlY3RvcnkiCiBtc2dzdHIgIkRhdGVpL1ZlcnplaWNobmlzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzU1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzU2CiBtc2dpZCAiZGlyZWN0b3J5L2ZpbGUiCiBtc2dzdHIgIlZlcnplaWNobmlzL0RhdGVpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzYwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUICglcyk6IFRoZXJlIGlzIGEgZGlyZWN0b3J5IHdpdGggbmFtZSAlcyBpbiAlcy4gQWRkaW5nICVzIGFzICVzIgogbXNnc3RyICIiCiAiS09ORkxJS1QgKCVzKTogRXMgZXhpc3RpZXJ0IGJlcmVpdHMgZWluIFZlcnplaWNobmlzICVzIGluICVzLiBGw7xnZSAlcyBhbHMgJXMgIgogImhpbnp1LiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgJXMiCiBtc2dzdHIgIkbDvGdlICVzIGhpbnp1IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzg3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzg4CiBtc2dpZCAiRmF0YWwgbWVyZ2UgZmFpbHVyZSwgc2hvdWxkbid0IGhhcHBlbi4iCi1tc2dzdHIgIkZhdGFsZXIgRmVobGVyIGJlaSBkZXIgWnVzYW1tZW5mw7xocnVuZy4gU29sbHRlIG5pY2h0IHBhc3NpZXJlbi4iCittc2dzdHIgIkZhdGFsZXIgTWVyZ2UtRmVobGVyLiBTb2xsdGUgbmljaHQgcGFzc2llcmVuLiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgwNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgwNwogbXNnaWQgIkFscmVhZHkgdXAtdG8tZGF0ZSEiCiBtc2dzdHIgIkJlcmVpdHMgYWt0dWVsbCEiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MTUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibWVyZ2luZyBvZiB0cmVlcyAlcyBhbmQgJXMgZmFpbGVkIgotbXNnc3RyICJadXNhbW1lbmbDvGhyZW4gZGVyIELDpHVtZSAlcyB1bmQgJXMgZmVobGdlc2NobGFnZW4iCittc2dzdHIgIlp1c2FtbWVuZsO8aHJlbiBkZXIgXCJUcmVlXCItT2JqZWt0ZSAlcyB1bmQgJXMgZmVobGdlc2NobGFnZW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4NDUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5wcm9jZXNzZWQgcGF0aD8/PyAlcyIKIG1zZ3N0ciAidW52ZXJhcmJlaXRldGVyIFBmYWQ/Pz8gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTEKIG1zZ2lkICJNZXJnaW5nOiIKLW1zZ3N0ciAiWnVzYW1tZW5mw7xocnVuZzoiCittc2dzdHIgIk1lcmdlOiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTkwMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTkwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmb3VuZCAldSBjb21tb24gYW5jZXN0b3I6IgogbXNnaWRfcGx1cmFsICJmb3VuZCAldSBjb21tb24gYW5jZXN0b3JzOiIKLW1zZ3N0clswXSAiJXUgZ2VtZWluc2FtZW4gVm9yZmFocmVuIGdlZnVuZGVuIgotbXNnc3RyWzFdICIldSBnZW1laW5zYW1lIFZvcmZhaHJlbiBnZWZ1bmRlbiIKK21zZ3N0clswXSAiJXUgZ2VtZWluc2FtZW4gVm9yZ8Okbmdlci1Db21taXQgZ2VmdW5kZW4iCittc2dzdHJbMV0gIiV1IGdlbWVpbnNhbWUgVm9yZ8Okbmdlci1Db21taXRzIGdlZnVuZGVuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTQwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTQxCiBtc2dpZCAibWVyZ2UgcmV0dXJuZWQgbm8gY29tbWl0IgotbXNnc3RyICJadXNhbW1lbmbDvGhydW5nIGhhdCBrZWluZSBWZXJzaW9uIHp1csO8Y2tnZWdlYmVuIgorbXNnc3RyICJNZXJnZSBoYXQga2VpbmVuIENvbW1pdCB6dXLDvGNrZ2VnZWJlbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcyciCiBtc2dzdHIgIktvbm50ZSBPYmpla3QgJyVzJyBuaWNodCBwYXJzZW4uIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDA5IGJ1aWx0aW4vbWVyZ2UuYzo2NTgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjIwMTAgYnVpbHRpbi9tZXJnZS5jOjY3MgogbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbmRleC4iCi1tc2dzdHIgIktvbm50ZSBCZXJlaXRzdGVsbHVuZyBuaWNodCBzY2hyZWliZW4uIgorbXNnc3RyICJLb25udGUgU3RhZ2luZy1BcmVhIG5pY2h0IHNjaHJlaWJlbi4iCiAKLSM6IG9iamVjdC5jOjE5NQorIzogbm90ZXMtdXRpbHMuYzo0MAorbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKK21zZ3N0ciAiIgorIkthbm4gdW5pbml0aWFsaXNpZXJ0ZXMvdW5yZWZlcmVuemllcnRlIE5vdGl6LVZlcnplaWNobmlzIG5pY2h0IGNvbW1pdHRlbi4iCisKKyM6IG5vdGVzLXV0aWxzLmM6ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG5vdGVzLnJld3JpdGVNb2RlIHZhbHVlOiAnJXMnIgorbXNnc3RyICJVbmfDvGx0aWdlciBub3Rlcy5yZXdyaXRlTW9kZSBXZXJ0OiAnJXMnIgorCisjOiBub3Rlcy11dGlscy5jOjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgorbXNnc3RyICIiCisiVW1zY2hyZWliZW4gZGVyIE5vdGl6ZW4gaW4gJXMgenVyw7xja2dld2llc2VuIChhdcOfZXJoYWxiIHZvbiByZWZzL25vdGVzLykiCisKKyMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgaXMgdGhlIG5hbWUgb2YgdGhlCisjLiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHNlY29uZCAlcyBpcyBpdHMgdmFsdWUKKyM6IG5vdGVzLXV0aWxzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCAlcyB2YWx1ZTogJyVzJyIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgJXMgV2VydDogJyVzJyIKKworIzogb2JqZWN0LmM6MjA0CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBwYXJzZSBvYmplY3Q6ICVzIgogbXNnc3RyICJLb25udGUgT2JqZWt0ICclcycgbmljaHQgcGFyc2VuLiIKQEAgLTg2OSw0MSArODk5LDQwIEBACiAjOiBwYXRoc3BlYy5jOjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlBhdGggJyVzJyBpcyBpbiBzdWJtb2R1bGUgJyUuKnMnIgotbXNnc3RyICJQZmFkICclcycgYmVmaW5kZXQgc2ljaCBpbiBVbnRlcnByb2pla3QgJyUuKnMnIgorbXNnc3RyICJQZmFkICclcycgYmVmaW5kZXQgc2ljaCBpbiBTdWJtb2R1bCAnJS4qcyciCiAKICM6IHBhdGhzcGVjLmM6OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBpcyBiZXlvbmQgYSBzeW1ib2xpYyBsaW5rIgotbXNnc3RyICInJXMnIGlzdCDDvGJlciBlaW5lbSBzeW1ib2xpc2NoZW4gTGluayIKK21zZ3N0ciAiJyVzJyBpc3QgaGludGVyIGVpbmVtIHN5bWJvbGlzY2hlbiBWZXJ3ZWlzIgogCi0jOiByZW1vdGUuYzoxNzgxCisjOiByZW1vdGUuYzoxNzg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0LlxuIgogbXNnaWRfcGx1cmFsICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdHMuXG4iCi1tc2dzdHJbMF0gIklociBad2VpZyBpc3Qgdm9yICclcycgdW0gJWQgVmVyc2lvbi5cbiIKLW1zZ3N0clsxXSAiSWhyIFp3ZWlnIGlzdCB2b3IgJyVzJyB1bSAlZCBWZXJzaW9uZW4uXG4iCittc2dzdHJbMF0gIklociBCcmFuY2ggaXN0IHZvciAnJXMnIHVtICVkIENvbW1pdC5cbiIKK21zZ3N0clsxXSAiSWhyIEJyYW5jaCBpc3Qgdm9yICclcycgdW0gJWQgQ29tbWl0cy5cbiIKIAotIzogcmVtb3RlLmM6MTc4NworIzogcmVtb3RlLmM6MTc5NAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdXNoXCIgdG8gcHVibGlzaCB5b3VyIGxvY2FsIGNvbW1pdHMpXG4iCi1tc2dzdHIgIiAgKGJlbnV0emVuIFNpZSBcImdpdCBwdXNoXCIgdW0gbG9rYWxlbiBWZXJzaW9uZW4gaGVyYXVzenVicmluZ2VuKVxuIgorbXNnc3RyICIgIChiZW51dHplbiBTaWUgXCJnaXQgcHVzaFwiIHVtIGxva2FsZSBDb21taXRzIHp1IHB1YmxpemllcmVuKVxuIgogCi0jOiByZW1vdGUuYzoxNzkwCisjOiByZW1vdGUuYzoxNzk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGJlaGluZCAnJXMnIGJ5ICVkIGNvbW1pdCwgYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIKIG1zZ2lkX3BsdXJhbCAiIgogIllvdXIgYnJhbmNoIGlzIGJlaGluZCAnJXMnIGJ5ICVkIGNvbW1pdHMsIGFuZCBjYW4gYmUgZmFzdC1mb3J3YXJkZWQuXG4iCiBtc2dzdHJbMF0gIiIKLSJJaHIgWndlaWcgaXN0IHp1ICclcycgdW0gJWQgVmVyc2lvbiBoaW50ZXJoZXIsIHVuZCBrYW5uIHZvcmdlc3B1bHQgd2VyZGVuLlxuIgorIklociBCcmFuY2ggaXN0IHp1ICclcycgdW0gJWQgQ29tbWl0IGhpbnRlcmhlciwgdW5kIGthbm4gdm9yZ2VzcHVsdCB3ZXJkZW4uXG4iCiBtc2dzdHJbMV0gIiIKLSJJaHIgWndlaWcgaXN0IHp1ICclcycgdW0gJWQgVmVyc2lvbmVuIGhpbnRlcmhlciwgdW5kIGthbm4gdm9yZ2VzcHVsdCAiCi0id2VyZGVuLlxuIgorIklociBCcmFuY2ggaXN0IHp1ICclcycgdW0gJWQgQ29tbWl0cyBoaW50ZXJoZXIsIHVuZCBrYW5uIHZvcmdlc3B1bHQgd2VyZGVuLlxuIgogCi0jOiByZW1vdGUuYzoxNzk4CisjOiByZW1vdGUuYzoxODA1CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1bGxcIiB0byB1cGRhdGUgeW91ciBsb2NhbCBicmFuY2gpXG4iCiBtc2dzdHIgIiIKLSIgIChiZW51dHplbiBTaWUgXCJnaXQgcHVsbFwiIHVtIElocmVuIGxva2FsZW4gWndlaWcgenUgYWt0dWFsaXNpZXJlbilcbiIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgcHVsbFwiIHVtIElocmVuIGxva2FsZW4gQnJhbmNoIHp1IGFrdHVhbGlzaWVyZW4pXG4iCiAKLSM6IHJlbW90ZS5jOjE4MDEKKyM6IHJlbW90ZS5jOjE4MDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdXIgYnJhbmNoIGFuZCAnJXMnIGhhdmUgZGl2ZXJnZWQsXG4iCkBAIC05MTIsMjYgKzk0MSwzNSBAQAogIllvdXIgYnJhbmNoIGFuZCAnJXMnIGhhdmUgZGl2ZXJnZWQsXG4iCiAiYW5kIGhhdmUgJWQgYW5kICVkIGRpZmZlcmVudCBjb21taXRzIGVhY2gsIHJlc3BlY3RpdmVseS5cbiIKIG1zZ3N0clswXSAiIgotIklociBad2VpZyB1bmQgJyVzJyBzaW5kIGRpdmVyZ2llcnQsXG4iCi0idW5kIGhhYmVuIGpld2VpbHMgJWQgdW5kICVkIHVudGVyc2NoaWVkbGljaGUgVmVyc2lvbmVuLlxuIgorIklociBCcmFuY2ggdW5kICclcycgc2luZCBkaXZlcmdpZXJ0LFxuIgorInVuZCBoYWJlbiBqZXdlaWxzICVkIHVuZCAlZCB1bnRlcnNjaGllZGxpY2hlIENvbW1pdHMuXG4iCiBtc2dzdHJbMV0gIiIKLSJJaHIgWndlaWcgdW5kICclcycgc2luZCBkaXZlcmdpZXJ0LFxuIgotInVuZCBoYWJlbiBqZXdlaWxzICVkIHVuZCAlZCB1bnRlcnNjaGllZGxpY2hlIFZlcnNpb25lbi5cbiIKKyJJaHIgQnJhbmNoIHVuZCAnJXMnIHNpbmQgZGl2ZXJnaWVydCxcbiIKKyJ1bmQgaGFiZW4gamV3ZWlscyAlZCB1bmQgJWQgdW50ZXJzY2hpZWRsaWNoZSBDb21taXRzLlxuIgogCi0jOiByZW1vdGUuYzoxODExCisjOiByZW1vdGUuYzoxODE4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1bGxcIiB0byBtZXJnZSB0aGUgcmVtb3RlIGJyYW5jaCBpbnRvIHlvdXJzKVxuIgogbXNnc3RyICIiCi0iICAoYmVudXR6ZW4gU2llIFwiZ2l0IHB1bGxcIiB1bSBJaHJlbiBad2VpZyBtaXQgZGVtIGV4dGVybmVuICIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgcHVsbFwiIHVtIElocmVuIEJyYW5jaCBtaXQgZGVtIFJlbW90ZS1CcmFuY2ggIgogInp1c2FtbWVuenVmw7xocmVuKVxuIgogCi0jOiBzZXF1ZW5jZXIuYzoyMDYgYnVpbHRpbi9tZXJnZS5jOjc3NiBidWlsdGluL21lcmdlLmM6ODg5IGJ1aWx0aW4vbWVyZ2UuYzo5OTkKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDA5CisjOiBydW4tY29tbWFuZC5jOjgwCittc2dpZCAib3BlbiAvZGV2L251bGwgZmFpbGVkIgorbXNnc3RyICLDlmZmbmVuIHZvbiAvZGV2L251bGwgZmVobGdlc2NobGFnZW4iCisKKyM6IHJ1bi1jb21tYW5kLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHVwMiglZCwlZCkgZmFpbGVkIgorbXNnc3RyICJkdXAyKCVkLCVkKSBmZWhsZ2VzY2hsYWdlbiIKKworIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3OTAgYnVpbHRpbi9tZXJnZS5jOjkwMworIzogYnVpbHRpbi9tZXJnZS5jOjEwMTMgYnVpbHRpbi9tZXJnZS5jOjEwMjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZyIKIG1zZ3N0ciAiS29ubnRlICclcycgbmljaHQgenVtIFNjaHJlaWJlbiDDtmZmbmVuLiIKIAotIzogc2VxdWVuY2VyLmM6MjA4IGJ1aWx0aW4vbWVyZ2UuYzozMzUgYnVpbHRpbi9tZXJnZS5jOjc3OQotIzogYnVpbHRpbi9tZXJnZS5jOjEwMDEgYnVpbHRpbi9tZXJnZS5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjIwOCBidWlsdGluL21lcmdlLmM6MzUwIGJ1aWx0aW4vbWVyZ2UuYzo3OTMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDE1IGJ1aWx0aW4vbWVyZ2UuYzoxMDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAnJXMnIgogbXNnc3RyICJLb25udGUgbmljaHQgbmFjaCAnJXMnIHNjaHJlaWJlbi4iCkBAIC05NTQsNyArOTkyLDcgQEAKICJtaXQgJ2dpdCBhZGQgPFBmYWRlPicgb2RlciAnZ2l0IHJtIDxQZmFkZT4ndW5kIHRyYWdlbiBTaWUgZGFzIEVyZ2VibmlzIG1pdFxuIgogIidnaXQgY29tbWl0JyBlaW4iCiAKLSM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4NTkgc2VxdWVuY2VyLmM6OTQyCisjOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODY5IHNlcXVlbmNlci5jOjk1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgdG8gJXMiCiBtc2dzdHIgIktvbm50ZSBuaWNodCBuYWNoICVzIHNjaHJlaWJlbiIKQEAgLTk3OSwzOTYgKzEwMTcsNDIxIEBACiAiVHJhZ2VuIFNpZSBJaHJlIMOEbmRlcnVuZ2VuIGVpbiBvZGVyIGJlbnV0emVuIFNpZSBcInN0YXNoXCIgdW0gZm9ydHp1ZmFocmVuLiIKIAogIy4gVFJBTlNMQVRPUlM6ICVzIHdpbGwgYmUgInJldmVydCIgb3IgImNoZXJyeS1waWNrIgotIzogc2VxdWVuY2VyLmM6MzE5CisjOiBzZXF1ZW5jZXIuYzozMjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IFVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKLW1zZ3N0ciAiJXM6IEtvbm50ZSBuZXVlIEJlcmVpdHN0ZWxsdW5nc2RhdGVpIG5pY2h0IHNjaHJlaWJlbiIKK21zZ3N0ciAiJXM6IEtvbm50ZSBuZXVlIFN0YWdpbmctQXJlYS1EYXRlaSBuaWNodCBzY2hyZWliZW4iCiAKLSM6IHNlcXVlbmNlci5jOjM1MAorIzogc2VxdWVuY2VyLmM6MzU1CiBtc2dpZCAiQ291bGQgbm90IHJlc29sdmUgSEVBRCBjb21taXRcbiIKLW1zZ3N0ciAiS29ubnRlIFZlcnNpb24gZGVyIFp3ZWlnc3BpdHplIChIRUFEKSBuaWNodCBhdWZsw7ZzZW5cbiIKK21zZ3N0ciAiS29ubnRlIENvbW1pdCB2b24gSEVBRCBuaWNodCBhdWZsw7ZzZW5cbiIKIAotIzogc2VxdWVuY2VyLmM6MzcxCisjOiBzZXF1ZW5jZXIuYzozNzcKIG1zZ2lkICJVbmFibGUgdG8gdXBkYXRlIGNhY2hlIHRyZWVcbiIKLW1zZ3N0ciAiS29ubnRlIHp3aXNjaGVuZ2VzcGVpY2hlcnRlbiBCYXVtIG5pY2h0IGFrdHVhbGlzaWVyZW5cbiIKK21zZ3N0ciAiS29ubnRlIENhY2hlLVZlcnplaWNobmlzIG5pY2h0IGFrdHVhbGlzaWVyZW5cbiIKIAotIzogc2VxdWVuY2VyLmM6NDE2CisjOiBzZXF1ZW5jZXIuYzo0MjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGNvbW1pdCAlc1xuIgotbXNnc3RyICJLb25udGUgVmVyc2lvbiAlcyBuaWNodCBwYXJzZW5cbiIKK21zZ3N0ciAiS29ubnRlIENvbW1pdCAlcyBuaWNodCBwYXJzZW5cbiIKIAotIzogc2VxdWVuY2VyLmM6NDIxCisjOiBzZXF1ZW5jZXIuYzo0MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIHBhcmVudCBjb21taXQgJXNcbiIKLW1zZ3N0ciAiS29ubnRlIEVsdGVybnZlcnNpb24gJXMgbmljaHQgcGFyc2VuXG4iCittc2dzdHIgIktvbm50ZSBFbHRlcm4tQ29tbWl0ICVzIG5pY2h0IHBhcnNlblxuIgogCi0jOiBzZXF1ZW5jZXIuYzo0ODcKKyM6IHNlcXVlbmNlci5jOjQ5MwogbXNnaWQgIllvdXIgaW5kZXggZmlsZSBpcyB1bm1lcmdlZC4iCi1tc2dzdHIgIklocmUgQmVyZWl0c3RlbGx1bmdzZGF0ZWkgaXN0IG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnQuIgorbXNnc3RyICJJaHJlIFN0YWdpbmctQXJlYS1EYXRlaSBpc3QgbmljaHQgenVzYW1tZW5nZWbDvGhydC4iCiAKLSM6IHNlcXVlbmNlci5jOjUwNgorIzogc2VxdWVuY2VyLmM6NTEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBpcyBhIG1lcmdlIGJ1dCBubyAtbSBvcHRpb24gd2FzIGdpdmVuLiIKLW1zZ3N0ciAiIgotIlZlcnNpb24gJXMgaXN0IGVpbmUgWnVzYW1tZW5mw7xocnVuZywgYWJlciBkaWUgT3B0aW9uIC1tIHd1cmRlIG5pY2h0ICIKLSJhbmdlZ2ViZW4uIgorbXNnc3RyICJDb21taXQgJXMgaXN0IGVpbiBNZXJnZSwgYWJlciBkaWUgT3B0aW9uIC1tIHd1cmRlIG5pY2h0IGFuZ2VnZWJlbi4iCiAKLSM6IHNlcXVlbmNlci5jOjUxNAorIzogc2VxdWVuY2VyLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIHBhcmVudCAlZCIKLW1zZ3N0ciAiVmVyc2lvbiAlcyBoYXQga2VpbmVuIEVsdGVybnRlaWwgJWQiCittc2dzdHIgIkNvbW1pdCAlcyBoYXQga2VpbmVuIEVsdGVybnRlaWwgJWQiCiAKLSM6IHNlcXVlbmNlci5jOjUxOAorIzogc2VxdWVuY2VyLmM6NTI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1haW5saW5lIHdhcyBzcGVjaWZpZWQgYnV0IGNvbW1pdCAlcyBpcyBub3QgYSBtZXJnZS4iCi1tc2dzdHIgIiIKLSJIYXVwdGxpbmllIHd1cmRlIHNwZXppZml6aWVydCwgYWJlciBWZXJzaW9uICVzIGlzdCBrZWluZSBadXNhbW1lbmbDvGhydW5nLiIKK21zZ3N0ciAiSGF1cHRsaW5pZSB3dXJkZSBzcGV6aWZpemllcnQsIGFiZXIgQ29tbWl0ICVzIGlzdCBrZWluIE1lcmdlLiIKIAogIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyB3aWxsIGJlICJyZXZlcnQiIG9yCiAjLiAiY2hlcnJ5LXBpY2siLCB0aGUgc2Vjb25kICVzIGEgU0hBMQotIzogc2VxdWVuY2VyLmM6NTMxCisjOiBzZXF1ZW5jZXIuYzo1MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbm5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzIgotbXNnc3RyICIlczoga2FubiBFbHRlcm52ZXJzaW9uICVzIG5pY2h0IHBhcnNlbiIKK21zZ3N0ciAiJXM6IGthbm4gRWx0ZXJuLUNvbW1pdCAlcyBuaWNodCBwYXJzZW4iCiAKLSM6IHNlcXVlbmNlci5jOjUzNQorIzogc2VxdWVuY2VyLmM6NTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBnZXQgY29tbWl0IG1lc3NhZ2UgZm9yICVzIgotbXNnc3RyICJLYW5uIGtlaW5lIFZlcnNpb25zYmVzY2hyZWlidW5nIGbDvHIgJXMgYmVrb21tZW4iCittc2dzdHIgIkthbm4ga2VpbmUgQ29tbWl0LUJlc2NocmVpYnVuZyBmw7xyICVzIGJla29tbWVuIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjEKKyM6IHNlcXVlbmNlci5jOjYyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmV2ZXJ0ICVzLi4uICVzIgotbXNnc3RyICJLb25udGUgJXMgbmljaHQgenVyw7xja25laG1lbi4uLiAlcyIKK21zZ3N0ciAiS29ubnRlIFwicmV2ZXJ0XCIgbmljaHQgYXVmICVzIGF1c2bDvGhyZW4uLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjYyMgorIzogc2VxdWVuY2VyLmM6NjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBhcHBseSAlcy4uLiAlcyIKIG1zZ3N0ciAiS29ubnRlICVzIG5pY2h0IGFud2VuZGVuLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2NTQKKyM6IHNlcXVlbmNlci5jOjY2NAogbXNnaWQgImVtcHR5IGNvbW1pdCBzZXQgcGFzc2VkIgotbXNnc3RyICJsZWVyZSBNZW5nZSB2b24gVmVyc2lvbmVuIMO8YmVyZ2ViZW4iCittc2dzdHIgImxlZXJlIE1lbmdlIHZvbiBDb21taXRzIMO8YmVyZ2ViZW4iCiAKLSM6IHNlcXVlbmNlci5jOjY2MgorIzogc2VxdWVuY2VyLmM6NjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlYWQgdGhlIGluZGV4IgotbXNnc3RyICJnaXQgJXM6IEZlaGxlciBiZWltIExlc2VuIGRlciBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAiZ2l0ICVzOiBGZWhsZXIgYmVpbSBMZXNlbiBkZXIgU3RhZ2luZy1BcmVhIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjcKKyM6IHNlcXVlbmNlci5jOjY3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWZyZXNoIHRoZSBpbmRleCIKLW1zZ3N0ciAiZ2l0ICVzOiBGZWhsZXIgYmVpbSBBa3R1YWxpc2llcmVuIGRlciBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAiZ2l0ICVzOiBGZWhsZXIgYmVpbSBBa3R1YWxpc2llcmVuIGRlciBTdGFnaW5nLUFyZWEiCiAKLSM6IHNlcXVlbmNlci5jOjcyNQorIzogc2VxdWVuY2VyLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCAlcyBkdXJpbmcgYSAlcyIKIG1zZ3N0ciAiS2FubiAlcyBuaWNodCB3w6RocmVuZCBlaW5lcyAlcyBkdXJjaGbDvGhyZW4iCiAKLSM6IHNlcXVlbmNlci5jOjc0NworIzogc2VxdWVuY2VyLmM6NzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBsaW5lICVkLiIKIG1zZ3N0ciAiS29ubnRlIFplaWxlICVkIG5pY2h0IHBhcnNlbi4iCiAKLSM6IHNlcXVlbmNlci5jOjc1MgorIzogc2VxdWVuY2VyLmM6NzYyCiBtc2dpZCAiTm8gY29tbWl0cyBwYXJzZWQuIgotbXNnc3RyICJLZWluZSBWZXJzaW9uZW4gZ2VwYXJzdC4iCittc2dzdHIgIktlaW5lIENvbW1pdHMgZ2VwYXJzdC4iCiAKLSM6IHNlcXVlbmNlci5jOjc2NQorIzogc2VxdWVuY2VyLmM6Nzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzIgogbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lbiIKIAotIzogc2VxdWVuY2VyLmM6NzY5CisjOiBzZXF1ZW5jZXIuYzo3NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgJXMuIgogbXNnc3RyICJLb25udGUgJXMgbmljaHQgbGVzZW4uIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzYKKyM6IHNlcXVlbmNlci5jOjc4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCiBtc2dzdHIgIlVuYmVudXR6YmFyZXMgSW5zdHJ1a3Rpb25zYmxhdHQ6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDQKKyM6IHNlcXVlbmNlci5jOjgxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGtleTogJXMiCiBtc2dzdHIgIlVuZ8O8bHRpZ2VyIFNjaGzDvHNzZWw6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDcKKyM6IHNlcXVlbmNlci5jOjgxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCiBtc2dzdHIgIlVuZ8O8bHRpZ2VyIFdlcnQgZsO8ciAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgxOQorIzogc2VxdWVuY2VyLmM6ODI5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBvcHRpb25zIHNoZWV0OiAlcyIKIG1zZ3N0ciAiRmVobGVyaGFmdGVzIE9wdGlvbnNibGF0dDogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjg0MAorIzogc2VxdWVuY2VyLmM6ODUwCiBtc2dpZCAiYSBjaGVycnktcGljayBvciByZXZlcnQgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyIKIG1zZ3N0ciAiXCJjaGVycnktcGlja1wiIG9kZXIgXCJyZXZlcnRcIiBpc3QgYmVyZWl0cyBpbSBHYW5nIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDEKKyM6IHNlcXVlbmNlci5jOjg1MQogbXNnaWQgInRyeSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiBtc2dzdHIgInZlcnN1Y2hlbiBTaWUgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDUKKyM6IHNlcXVlbmNlci5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIHNlcXVlbmNlciBkaXJlY3RvcnkgJXMiCiBtc2dzdHIgIktvbm50ZSBcInNlcXVlbmNlclwiLVZlcnplaWNobmlzICVzIG5pY2h0IGVyc3RlbGxlbiIKIAotIzogc2VxdWVuY2VyLmM6ODYxIHNlcXVlbmNlci5jOjk0NgorIzogc2VxdWVuY2VyLmM6ODcxIHNlcXVlbmNlci5jOjk1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciB3cmFwcGluZyB1cCAlcy4iCiBtc2dzdHIgIkZlaGxlciBiZWltIEVpbnBhY2tlbiB2b24gJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODAgc2VxdWVuY2VyLmM6MTAxNAorIzogc2VxdWVuY2VyLmM6ODkwIHNlcXVlbmNlci5jOjEwMjQKIG1zZ2lkICJubyBjaGVycnktcGljayBvciByZXZlcnQgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgImtlaW4gXCJjaGVycnktcGlja1wiIG9kZXIgXCJyZXZlcnRcIiBpbSBHYW5nIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODIKKyM6IHNlcXVlbmNlci5jOjg5MgogbXNnaWQgImNhbm5vdCByZXNvbHZlIEhFQUQiCi1tc2dzdHIgImthbm4gWndlaWdzcGl0emUgKEhFQUQpIG5pY2h0IGF1ZmzDtnNlbiIKK21zZ3N0ciAia2FubiBIRUFEIG5pY2h0IGF1ZmzDtnNlbiIKIAotIzogc2VxdWVuY2VyLmM6ODg0CisjOiBzZXF1ZW5jZXIuYzo4OTQKIG1zZ2lkICJjYW5ub3QgYWJvcnQgZnJvbSBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKLW1zZ3N0ciAia2FubiBuaWNodCBhYmJyZWNoZW46IGJpbiBhdWYgZWluZW0gWndlaWcsIGRlciBub2NoIGdlYm9yZW4gd2lyZCIKK21zZ3N0ciAia2FubiBuaWNodCBhYmJyZWNoZW46IGJpbiBhdWYgZWluZW0gQnJhbmNoLCBkZXIgbm9jaCBnZWJvcmVuIHdpcmQiCiAKLSM6IHNlcXVlbmNlci5jOjkwNiBidWlsdGluL2FwcGx5LmM6NDA2MAorIzogc2VxdWVuY2VyLmM6OTE2IGJ1aWx0aW4vYXBwbHkuYzo0MDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAiS2FubiAlcyBuaWNodCDDtmZmbmVuOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6OTA5CisjOiBzZXF1ZW5jZXIuYzo5MTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICJLYW5uICVzIG5pY2h0IGxlc2VuOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6OTEwCisjOiBzZXF1ZW5jZXIuYzo5MjAKIG1zZ2lkICJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIgogbXNnc3RyICJVbmVyd2FydGV0ZXMgRGF0ZWllbmRlIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTYKKyM6IHNlcXVlbmNlci5jOjkyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJzdG9yZWQgcHJlLWNoZXJyeS1waWNrIEhFQUQgZmlsZSAnJXMnIGlzIGNvcnJ1cHQiCi1tc2dzdHIgIiIKLSJnZXNwZWljaGVydGUgXCJwcmUtY2hlcnJ5LXBpY2tcIiBEYXRlaSBkZXIgWndlaWdzcGl0emUgKEhFQUQpICclcycgaXN0ICIKLSJiZXNjaMOkZGlndCIKK21zZ3N0ciAiZ2VzcGVpY2hlcnRlIFwicHJlLWNoZXJyeS1waWNrXCIgSEVBRCBEYXRlaSAnJXMnIGlzdCBiZXNjaMOkZGlndCIKIAotIzogc2VxdWVuY2VyLmM6OTM5CisjOiBzZXF1ZW5jZXIuYzo5NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZvcm1hdCAlcy4iCiBtc2dzdHIgIktvbm50ZSAlcyBuaWNodCBmb3JtYXRpZXJlbi4iCiAKLSM6IHNlcXVlbmNlci5jOjEwODMKKyM6IHNlcXVlbmNlci5jOjEwOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbid0IGNoZXJyeS1waWNrIGEgJXMiCiBtc2dzdHIgIiVzOiAlcyBrYW5uIG5pY2h0IGluIFwiY2hlcnJ5LXBpY2tcIiBiZW51dHp0IHdlcmRlbiIKIAotIzogc2VxdWVuY2VyLmM6MTA4NQorIzogc2VxdWVuY2VyLmM6MTA5NQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogYmFkIHJldmlzaW9uIgotbXNnc3RyICIlczogdW5nw7xsdGlnZSBSZXZpc2lvbiIKK21zZ3N0ciAiJXM6IHVuZ8O8bHRpZ2VyIENvbW1pdCIKIAotIzogc2VxdWVuY2VyLmM6MTExOQorIzogc2VxdWVuY2VyLmM6MTEyOQogbXNnaWQgIkNhbid0IHJldmVydCBhcyBpbml0aWFsIGNvbW1pdCIKLW1zZ3N0ciAiUsO8Y2tuYWhtZS1WZXJzaW9uIGthbm4gbmljaHQgaW5pdGlhbCBzZWluLiIKK21zZ3N0ciAiS2FubiBuaWNodCBhbHMgYWxsZXJlcnN0ZW4gQ29tbWl0IGVpbmVuIFJldmVydCBhdXNmw7xocmVuLiIKIAotIzogc2VxdWVuY2VyLmM6MTEyMAorIzogc2VxdWVuY2VyLmM6MTEzMAogbXNnaWQgIkNhbid0IGNoZXJyeS1waWNrIGludG8gZW1wdHkgaGVhZCIKLW1zZ3N0ciAiS2FubiBcImNoZXJyeS1waWNrXCIgbmljaHQgaW4gZWluZW0gbGVlcmVuIFp3ZWlnIGF1c2bDvGhyZW4uIgorbXNnc3RyICJLYW5uIG5pY2h0IGFscyBhbGxlcmVyc3RlbiBDb21taXQgZWluZW4gQ2hlcnJ5LVBpY2sgYXVzZsO8aHJlbi4iCiAKLSM6IHNoYTFfbmFtZS5jOjEwMzYKKyM6IHNoYTFfbmFtZS5jOjQ0MAorbXNnaWQgIiIKKyJHaXQgbm9ybWFsbHkgbmV2ZXIgY3JlYXRlcyBhIHJlZiB0aGF0IGVuZHMgd2l0aCA0MCBoZXggY2hhcmFjdGVyc1xuIgorImJlY2F1c2UgaXQgd2lsbCBiZSBpZ25vcmVkIHdoZW4geW91IGp1c3Qgc3BlY2lmeSA0MC1oZXguIFRoZXNlIHJlZnNcbiIKKyJtYXkgYmUgY3JlYXRlZCBieSBtaXN0YWtlLiBGb3IgZXhhbXBsZSxcbiIKKyJcbiIKKyIgIGdpdCBjaGVja291dCAtYiAkYnIgJChnaXQgcmV2LXBhcnNlIC4uLilcbiIKKyJcbiIKKyJ3aGVyZSBcIiRiclwiIGlzIHNvbWVob3cgZW1wdHkgYW5kIGEgNDAtaGV4IHJlZiBpcyBjcmVhdGVkLiBQbGVhc2VcbiIKKyJleGFtaW5lIHRoZXNlIHJlZnMgYW5kIG1heWJlIGRlbGV0ZSB0aGVtLiBUdXJuIHRoaXMgbWVzc2FnZSBvZmYgYnlcbiIKKyJydW5uaW5nIFwiZ2l0IGNvbmZpZyBhZHZpY2Uub2JqZWN0TmFtZVdhcm5pbmcgZmFsc2VcIiIKK21zZ3N0ciAiIgorIkdpdCBlcnpldWd0IG5vcm1hbGVyd2Vpc2Uga2VpbmUgUmVmZXJlbnplbiBkaWUgbWl0XG4iCisiNDAgSGV4LVplaWNoZW4gZW5kZW4sIGRhIGRpZXNlIGlnbm9yaWVydCB3ZXJkZW4gd2VublxuIgorIlNpZSBkaWVzZSBhbmdlYmVuLiBEaWVzZSBSZWZlcmVuemVuIGvDtm5udGVuIGF1cyBWZXJzZWhlblxuIgorImVyemV1Z3Qgd29yZGVuIHNlaW4uIFp1bSBCZWlzcGllbCxcbiIKKyJcbiIKKyIgIGdpdCBjaGVja291dCAtYiAkYnIgJChnaXQgcmV2LXBhcnNlIC4uLilcbiIKKyJcbiIKKyJ3b2JlaSBcIiRiclwiIGxlZXIgaXN0IHVuZCBlaW5lIDQwLUhleC1SZWZlcmVueiBlcnpldWd0XG4iCisid3VyZGUuIEJpdHRlIHByw7xmZW4gU2llIGRpZXNlIFJlZmVyZW56ZW4gdW5kIGzDtnNjaGVuXG4iCisiU2llIHNpZSBnZWdlYmVuZW5mYWxscy4gVW50ZXJkcsO8Y2tlbiBTaWUgZGllc2UgTWVsZHVuZ1xuIgorImluZGVtIFNpZSBcImdpdCBjb25maWcgYWR2aWNlLm9iamVjdE5hbWVXYXJuaW5nIGZhbHNlXCJcbiIKKyJhdXNmw7xocmVuLiIKKworIzogc2hhMV9uYW1lLmM6MTA5NwogbXNnaWQgIkhFQUQgZG9lcyBub3QgcG9pbnQgdG8gYSBicmFuY2giCi1tc2dzdHIgIlp3ZWlnc3BpdHplIChIRUFEKSB6ZWlndCBhdWYga2VpbmVuIFp3ZWlnIgorbXNnc3RyICJIRUFEIHplaWd0IGF1ZiBrZWluZW4gQnJhbmNoIgogCi0jOiBzaGExX25hbWUuYzoxMDM5CisjOiBzaGExX25hbWUuYzoxMTAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHN1Y2ggYnJhbmNoOiAnJXMnIgotbXNnc3RyICJLZWluIHNvbGNoZXIgWndlaWcgJyVzJyIKK21zZ3N0ciAiS2VpbiBzb2xjaGVyIEJyYW5jaCAnJXMnIgogCi0jOiBzaGExX25hbWUuYzoxMDQxCisjOiBzaGExX25hbWUuYzoxMTAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIgotbXNnc3RyICJLZWluIGVudGZlcm50ZXMgUHJvamVrdGFyY2hpdiBmw7xyIFp3ZWlnICclcycga29uZmlndXJpZXJ0LiIKK21zZ3N0ciAiS2VpbiBVcHN0cmVhbS1CcmFuY2ggZsO8ciBCcmFuY2ggJyVzJyBrb25maWd1cmllcnQuIgogCi0jOiBzaGExX25hbWUuYzoxMDQ0CisjOiBzaGExX25hbWUuYzoxMTA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVwc3RyZWFtIGJyYW5jaCAnJXMnIG5vdCBzdG9yZWQgYXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIgotbXNnc3RyICIiCi0iWndlaWcgJyVzJyBkZXMgZW50ZmVybnRlbiBQcm9qZWt0YXJjaGl2cyBpc3Qga2VpbiBnZWZvbGd0ZXIgw5xiZXJuYWhtZXp3ZWlnIgorbXNnc3RyICJVcHN0cmVhbS1CcmFuY2ggJyVzJyBpc3QgbmljaHQgYWxzIFJlbW90ZS1UcmFja2luZy1CcmFuY2ggZ2VzcGVpY2hlcnQiCiAKICM6IHdyYXBwZXIuYzo0MDgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGFjY2VzcyAnJXMnOiAlcyIKIG1zZ3N0ciAia29ubnRlIG5pY2h0IGF1ZiAnJXMnIHp1Z3JlaWZlbjogJXMiCiAKLSM6IHdyYXBwZXIuYzo0MjMKKyM6IHdyYXBwZXIuYzo0MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGFjY2VzcyAnJXMnIgogbXNnc3RyICJrb25udGUgbmljaHQgYXVmICclcycgenVncmVpZmVuIgogCi0jOiB3cmFwcGVyLmM6NDM0CisjOiB3cmFwcGVyLmM6NDQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBsb29rIHVwIGN1cnJlbnQgdXNlciBpbiB0aGUgcGFzc3dkIGZpbGU6ICVzIgogbXNnc3RyICJrb25udGUgYWt0dWVsbGVuIEJlbnV0emVyIG5pY2h0IGluIFBhc3N3b3J0LURhdGVpIGZpbmRlbjogJXMiCiAKLSM6IHdyYXBwZXIuYzo0MzUKKyM6IHdyYXBwZXIuYzo0NDEKIG1zZ2lkICJubyBzdWNoIHVzZXIiCiBtc2dzdHIgImtlaW4gc29sY2hlciBCZW51dHplciIKIAotIzogd3Qtc3RhdHVzLmM6MTQwCisjOiB3dC1zdGF0dXMuYzoxNDEKIG1zZ2lkICJVbm1lcmdlZCBwYXRoczoiCiBtc2dzdHIgIk5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIFBmYWRlOiIKIAotIzogd3Qtc3RhdHVzLmM6MTY3IHd0LXN0YXR1cy5jOjE5NAorIzogd3Qtc3RhdHVzLmM6MTY4IHd0LXN0YXR1cy5jOjE5NQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmVzZXQgJXMgPGZpbGU+Li4uXCIgdG8gdW5zdGFnZSkiCiBtc2dzdHIgIiIKLSIgIChiZW51dHplbiBTaWUgXCJnaXQgcmVzZXQgJXMgPERhdGVpPi4uLlwiIHp1bSBIZXJhdXNuZWhtZW4gYXVzIGRlciAiCi0iQmVyZWl0c3RlbGx1bmcpIgorIiAgKGJlbnV0emVuIFNpZSBcImdpdCByZXNldCAlcyA8RGF0ZWk+Li4uXCIgenVtIEVudGZlcm5lbiBhdXMgZGVyIFN0YWdpbmctIgorIkFyZWEpIgogCi0jOiB3dC1zdGF0dXMuYzoxNjkgd3Qtc3RhdHVzLmM6MTk2CisjOiB3dC1zdGF0dXMuYzoxNzAgd3Qtc3RhdHVzLmM6MTk3CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIiCi0iICAoYmVudXR6ZW4gU2llIFwiZ2l0IHJtIC0tY2FjaGVkIDxEYXRlaT4uLi5cIiB6dW0gSGVyYXVzbmVobWVuIGF1cyBkZXIgIgotIkJlcmVpdHN0ZWxsdW5nKSIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgcm0gLS1jYWNoZWQgPERhdGVpPi4uLlwiIHp1bSBFbnRmZXJuZW4gYXVzIGRlciBTdGFnaW5nLSIKKyJBcmVhKSIKIAotIzogd3Qtc3RhdHVzLmM6MTczCisjOiB3dC1zdGF0dXMuYzoxNzQKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiIKICIgIChiZW51dHplbiBTaWUgXCJnaXQgYWRkL3JtIDxEYXRlaT4uLi5cIiB1bSBkaWUgQXVmbMO2c3VuZyB6dSBtYXJraWVyZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoxNzUgd3Qtc3RhdHVzLmM6MTc5CisjOiB3dC1zdGF0dXMuYzoxNzYgd3Qtc3RhdHVzLmM6MTgwCiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZC9ybSA8ZmlsZT4uLi5cIiBhcyBhcHByb3ByaWF0ZSB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIiCiAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGFkZC9ybSA8RGF0ZWk+Li4uXCIgdW0gZGllIEF1ZmzDtnN1bmcgZW50c3ByZWNoZW5kIHp1ICIKICJtYXJraWVyZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoxNzcKKyM6IHd0LXN0YXR1cy5jOjE3OAogbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIiCiAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGFkZC9ybSA8RGF0ZWk+Li4uXCIgdW0gZGllIEF1ZmzDtnN1bmcgenUgbWFya2llcmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTg4CisjOiB3dC1zdGF0dXMuYzoxODkKIG1zZ2lkICJDaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCi1tc2dzdHIgInp1bSBFaW50cmFnZW4gYmVyZWl0Z2VzdGVsbHRlIMOEbmRlcnVuZ2VuOiIKK21zZ3N0ciAienVtIENvbW1pdCB2b3JnZW1lcmt0ZSDDhG5kZXJ1bmdlbjoiCiAKLSM6IHd0LXN0YXR1cy5jOjIwNgorIzogd3Qtc3RhdHVzLmM6MjA3CiBtc2dpZCAiQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6IgotbXNnc3RyICLDhG5kZXJ1bmdlbiwgZGllIG5pY2h0IHp1bSBFaW50cmFnZW4gYmVyZWl0Z2VzdGVsbHQgc2luZDoiCittc2dzdHIgIsOEbmRlcnVuZ2VuLCBkaWUgbmljaHQgenVtIENvbW1pdCB2b3JnZW1lcmt0IHNpbmQ6IgogCi0jOiB3dC1zdGF0dXMuYzoyMTAKKyM6IHd0LXN0YXR1cy5jOjIxMQogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQgPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgotbXNnc3RyICIgIChiZW51dHplbiBTaWUgXCJnaXQgYWRkIDxEYXRlaT4uLi5cIiB6dW0gQmVyZWl0c3RlbGxlbikiCi0KLSM6IHd0LXN0YXR1cy5jOjIxMgotbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgotbXNnc3RyICIgIChiZW51dHplbiBTaWUgXCJnaXQgYWRkL3JtIDxEYXRlaT4uLi5cIiB6dW0gQmVyZWl0c3RlbGxlbikiCittc2dzdHIgIiIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgYWRkIDxEYXRlaT4uLi5cIiB1bSBkaWUgw4RuZGVydW5nZW4genVtIENvbW1pdCAiCisidm9yenVtZXJrZW4pIgogCiAjOiB3dC1zdGF0dXMuYzoyMTMKK21zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKK21zZ3N0ciAiIgorIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhZGQvcm0gPERhdGVpPi4uLlwiIHVtIGRpZSDDhG5kZXJ1bmdlbiB6dW0gQ29tbWl0ICIKKyJ2b3J6dW1lcmtlbikiCisKKyM6IHd0LXN0YXR1cy5jOjIxNAogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uXCIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBjaGVja291dCAtLSA8RGF0ZWk+Li4uXCIgdW0gZGllIMOEbmRlcnVuZ2VuIGltICIKICJBcmJlaXRzdmVyemVpY2huaXMgenUgdmVyd2VyZmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MjE1CisjOiB3dC1zdGF0dXMuYzoyMTYKIG1zZ2lkICIgIChjb21taXQgb3IgZGlzY2FyZCB0aGUgdW50cmFja2VkIG9yIG1vZGlmaWVkIGNvbnRlbnQgaW4gc3VibW9kdWxlcykiCiBtc2dzdHIgIiIKLSIgICh0cmFnZW4gU2llIGVpbiBvZGVyIHZlcndlcmZlbiBTaWUgZGVuIHVuYmVvYmFjaHRldGVuIG9kZXIgZ2XDpG5kZXJ0ZW4gIgotIkluaGFsdCBpbiBkZW4gVW50ZXJwcm9qZWt0ZW4pIgorIiAgKGNvbW1pdHRlbiBvZGVyIHZlcndlcmZlbiBTaWUgZGVuIHVuYmVvYmFjaHRldGVuIG9kZXIgZ2XDpG5kZXJ0ZW4gSW5oYWx0IGluICIKKyJkZW4gU3VibW9kdWxlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjIyNworIzogd3Qtc3RhdHVzLmM6MjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCAlcyA8ZmlsZT4uLi5cIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgotbXNnc3RyICIgIChiZW51dHplbiBTaWUgXCJnaXQgJXMgPERhdGVpPi4uLlwiIHp1bSBFaW5mw7xnZW4gaW4gZGllIEVpbnRyYWd1bmcpIgorbXNnc3RyICIiCisiICAoYmVudXR6ZW4gU2llIFwiZ2l0ICVzIDxEYXRlaT4uLi5cIiB1bSBkaWUgw4RuZGVydW5nZW4genVtIENvbW1pdCAiCisidm9yenVtZXJrZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyNDQKKyM6IHd0LXN0YXR1cy5jOjI0NQogbXNnaWQgImJ1ZyIKIG1zZ3N0ciAiRmVobGVyIgogCi0jOiB3dC1zdGF0dXMuYzoyNDkKKyM6IHd0LXN0YXR1cy5jOjI1MAogbXNnaWQgImJvdGggZGVsZXRlZDoiCiBtc2dzdHIgImJlaWRlIGdlbMO2c2NodDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MAorIzogd3Qtc3RhdHVzLmM6MjUxCiBtc2dpZCAiYWRkZWQgYnkgdXM6IgogbXNnc3RyICJ2b24gdW5zIGhpbnp1Z2Vmw7xndDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MQorIzogd3Qtc3RhdHVzLmM6MjUyCiBtc2dpZCAiZGVsZXRlZCBieSB0aGVtOiIKIG1zZ3N0ciAidm9uIGRlbmVuIGdlbMO2c2NodDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MgorIzogd3Qtc3RhdHVzLmM6MjUzCiBtc2dpZCAiYWRkZWQgYnkgdGhlbToiCiBtc2dzdHIgInZvbiBkZW5lbiBoaW56dWdlZsO8Z3Q6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTMKKyM6IHd0LXN0YXR1cy5jOjI1NAogbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgogbXNnc3RyICJ2b24gdW5zIGdlbMO2c2NodDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NAorIzogd3Qtc3RhdHVzLmM6MjU1CiBtc2dpZCAiYm90aCBhZGRlZDoiCiBtc2dzdHIgInZvbiBiZWlkZW4gaGluenVnZWbDvGd0OiIKIAotIzogd3Qtc3RhdHVzLmM6MjU1CisjOiB3dC1zdGF0dXMuYzoyNTYKIG1zZ2lkICJib3RoIG1vZGlmaWVkOiIKIG1zZ3N0ciAidm9uIGJlaWRlbiBnZcOkbmRlcnQ6IgogCi0jOiB3dC1zdGF0dXMuYzoyODUKKyM6IHd0LXN0YXR1cy5jOjI4NgogbXNnaWQgIm5ldyBjb21taXRzLCAiCi1tc2dzdHIgIm5ldWUgVmVyc2lvbmVuLCAiCittc2dzdHIgIm5ldWUgQ29tbWl0cywgIgogCi0jOiB3dC1zdGF0dXMuYzoyODcKKyM6IHd0LXN0YXR1cy5jOjI4OAogbXNnaWQgIm1vZGlmaWVkIGNvbnRlbnQsICIKIG1zZ3N0ciAiZ2XDpG5kZXJ0ZXIgSW5oYWx0LCAiCiAKLSM6IHd0LXN0YXR1cy5jOjI4OQorIzogd3Qtc3RhdHVzLmM6MjkwCiBtc2dpZCAidW50cmFja2VkIGNvbnRlbnQsICIKIG1zZ3N0ciAidW5iZW9iYWNodGV0ZXIgSW5oYWx0LCAiCiAKLSM6IHd0LXN0YXR1cy5jOjMwNgorIzogd3Qtc3RhdHVzLmM6MzA3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBmaWxlOiAgICVzIgogbXNnc3RyICJuZXVlIERhdGVpOiAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMDkKKyM6IHd0LXN0YXR1cy5jOjMxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKIG1zZ3N0ciAia29waWVydDogICAgICVzIC0+ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMTIKKyM6IHd0LXN0YXR1cy5jOjMxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJkZWxldGVkOiAgICAlcyIKIG1zZ3N0ciAiZ2Vsw7ZzY2h0OiAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE1CisjOiB3dC1zdGF0dXMuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9kaWZpZWQ6ICAgJXMiCiBtc2dzdHIgImdlw6RuZGVydDogICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE4CisjOiB3dC1zdGF0dXMuYzozMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVuYW1lZDogICAgJXMgLT4gJXMiCiBtc2dzdHIgInVtYmVuYW5udDogICAgJXMgLT4gJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMyMQorIzogd3Qtc3RhdHVzLmM6MzIyCiAjLCBjLWZvcm1hdAogbXNnaWQgInR5cGVjaGFuZ2U6ICVzIgogbXNnc3RyICJUeXDDpG5kZXJ1bmc6ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjQKKyM6IHd0LXN0YXR1cy5jOjMyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duOiAgICAlcyIKIG1zZ3N0ciAidW5iZWthbm50OiAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzI3CisjOiB3dC1zdGF0dXMuYzozMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5tZXJnZWQ6ICAgJXMiCiBtc2dzdHIgIm5pY2h0IHp1c2FtbWVuZ2Vmw7xocnQ6ICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMzMAorIzogd3Qtc3RhdHVzLmM6MzMxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJ1ZzogdW5oYW5kbGVkIGRpZmYgc3RhdHVzICVjIgogbXNnc3RyICJGZWhsZXI6IHVuYmVoYW5kZWx0ZXIgRGlmZmVyZW56LVN0YXR1cyAlYyIKQEAgLTEzNzcsMTggKzE0NDAsMTcgQEAKIG1zZ2lkICJZb3UgaGF2ZSB1bm1lcmdlZCBwYXRocy4iCiBtc2dzdHIgIlNpZSBoYWJlbiBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBQZmFkZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjgwNiB3dC1zdGF0dXMuYzo5NTgKKyM6IHd0LXN0YXR1cy5jOjgwNgogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjb21taXRcIikiCiBtc2dzdHIgIiAoYmVoZWJlbiBTaWUgZGllIEtvbmZsaWt0ZSB1bmQgZsO8aHJlbiBTaWUgXCJnaXQgY29tbWl0XCIgYXVzKSIKIAogIzogd3Qtc3RhdHVzLmM6ODA5CiBtc2dpZCAiQWxsIGNvbmZsaWN0cyBmaXhlZCBidXQgeW91IGFyZSBzdGlsbCBtZXJnaW5nLiIKLW1zZ3N0ciAiIgotIkFsbGUgS29uZmxpa3RlIHNpbmQgYmVob2JlbiwgYWJlciBTaWUgc2luZCBpbW1lciBub2NoIGJlaW0gWnVzYW1tZW5mw7xocmVuLiIKK21zZ3N0ciAiQWxsZSBLb25mbGlrdGUgc2luZCBiZWhvYmVuLCBhYmVyIFNpZSBzaW5kIGltbWVyIG5vY2ggYmVpbSBNZXJnZS4iCiAKICM6IHd0LXN0YXR1cy5jOjgxMgogbXNnaWQgIiAgKHVzZSBcImdpdCBjb21taXRcIiB0byBjb25jbHVkZSBtZXJnZSkiCi1tc2dzdHIgIiAgKGJlbnV0emVuIFNpZSBcImdpdCBjb21taXRcIiB1bSBkaWUgWnVzYW1tZW5mw7xocnVuZyBhYnp1c2NobGllw59lbikiCittc2dzdHIgIiAgKGJlbnV0emVuIFNpZSBcImdpdCBjb21taXRcIiB1bSBkZW4gTWVyZ2UgYWJ6dXNjaGxpZcOfZW4pIgogCiAjOiB3dC1zdGF0dXMuYzo4MjIKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW4gYW0gc2Vzc2lvbi4iCkBAIC0xMzk5LDI4ICsxNDYxLDI4IEBACiBtc2dzdHIgIkRlciBha3R1ZWxsZSBQYXRjaCBpc3QgbGVlci4iCiAKICM6IHd0LXN0YXR1cy5jOjgyOQotbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgotIiAgKGJlaGViZW4gU2llIGRpZSBLb25mbGlrdGUgdW5kIGbDvGhyZW4gU2llIGRhbm4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiIGF1cykiCisiICAoYmVoZWJlbiBTaWUgZGllIEtvbmZsaWt0ZSB1bmQgZsO8aHJlbiBTaWUgZGFubiBcImdpdCBhbSAtLWNvbnRpbnVlXCIgYXVzKSIKIAogIzogd3Qtc3RhdHVzLmM6ODMxCiBtc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tc2tpcFwiIHRvIHNraXAgdGhpcyBwYXRjaCkiCi1tc2dzdHIgIiAoYmVudXR6ZW4gU2llIFwiZ2l0IGFtIC0tc2tpcFwiIHVtIGRpZXNlbiBQYXRjaCBhdXN6dWxhc3NlbikiCittc2dzdHIgIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhbSAtLXNraXBcIiB1bSBkaWVzZW4gUGF0Y2ggYXVzenVsYXNzZW4pIgogCiAjOiB3dC1zdGF0dXMuYzo4MzMKIG1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiIKLSIgIChiZW51dHplbiBTaWUgXCJnaXQgYW0gLS1hYm9ydFwiIHVtIGRlbiB1cnNwcsO8bmdsaWNoZW4gWndlaWcgIgorIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhbSAtLWFib3J0XCIgdW0gZGVuIHVyc3Byw7xuZ2xpY2hlbiBCcmFuY2ggIgogIndpZWRlcmhlcnp1c3RlbGxlbikiCiAKICM6IHd0LXN0YXR1cy5jOjg5MyB3dC1zdGF0dXMuYzo5MTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCi1tc2dzdHIgIlNpZSBzaW5kIGdlcmFkZSBiZWltIE5ldWF1ZmJhdSB2b24gWndlaWcgJyVzJyBhdWYgJyVzJy4iCittc2dzdHIgIlNpZSBzaW5kIGdlcmFkZSBiZWltIFJlYmFzZSB2b24gQnJhbmNoICclcycgYXVmICclcycuIgogCiAjOiB3dC1zdGF0dXMuYzo4OTggd3Qtc3RhdHVzLmM6OTE1CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcuIgotbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYmVpbSBOZXVhdWZiYXUuIgorbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYmVpbSBSZWJhc2UuIgogCiAjOiB3dC1zdGF0dXMuYzo5MDEKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKQEAgLTE0MzUsNyArMTQ5Nyw3IEBACiAjOiB3dC1zdGF0dXMuYzo5MDUKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiB0byBjaGVjayBvdXQgdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiIKLSIgIChiZW51dHplbiBTaWUgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiB1bSBkZW4gdXJzcHLDvG5nbGljaGVuIFp3ZWlnICIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiB1bSBkZW4gdXJzcHLDvG5nbGljaGVuIEJyYW5jaCAiCiAiYXVzenVjaGVja2VuKSIKIAogIzogd3Qtc3RhdHVzLmM6OTE4CkBAIC0xNDQ3LDM0ICsxNTA5LDM0IEBACiBtc2dpZCAiIgogIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAiIgotIlNpZSB0ZWlsZW4gZ2VyYWRlIGVpbmUgVmVyc2lvbiBhdWYsIHfDpGhyZW5kIGVpbiBOZXVhdWZiYXUgdm9uIFp3ZWlnICclcycgYXVmICIKKyJTaWUgdGVpbGVuIGdlcmFkZSBlaW5lbiBDb21taXQgYXVmLCB3w6RocmVuZCBlaW4gUmViYXNlIHZvbiBCcmFuY2ggJyVzJyBhdWYgIgogIiclcycgaW0gR2FuZ2UgaXN0LiIKIAogIzogd3Qtc3RhdHVzLmM6OTI3CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IGR1cmluZyBhIHJlYmFzZS4iCi1tc2dzdHIgIlNpZSB0ZWlsZW4gZ2VyYWRlIGVpbmUgVmVyc2lvbiB3w6RocmVuZCBlaW5lcyBOZXVhdWZiYXVzIGF1Zi4iCittc2dzdHIgIlNpZSB0ZWlsZW4gZ2VyYWRlIGVpbmVuIENvbW1pdCB3w6RocmVuZCBlaW5lcyBSZWJhc2UgYXVmLiIKIAogIzogd3Qtc3RhdHVzLmM6OTMwCiBtc2dpZCAiICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKLSIgIChTb2JhbGQgSWhyIEFyYmVpdHN2ZXJ6ZWljaG5pcyBzYXViZXIgaXN0LCBmw7xocmVuIFNpZSBcImdpdCByZWJhc2UgLS0iCisiICAoU29iYWxkIElociBBcmJlaXRzdmVyemVpY2huaXMgdW52ZXLDpG5kZXJ0IGlzdCwgZsO8aHJlbiBTaWUgXCJnaXQgcmViYXNlIC0tIgogImNvbnRpbnVlXCIgYXVzKSIKIAogIzogd3Qtc3RhdHVzLmM6OTM0CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCiBtc2dzdHIgIiIKLSJTaWUgZWRpdGllcmVuIGdlcmFkZSBlaW5lIFZlcnNpb24gd8OkaHJlbmQgZWluZXMgTmV1YXVmYmF1cyB2b24gWndlaWcgJyVzJyAiCi0iYXVmICclcycuIgorIlNpZSBlZGl0aWVyZW4gZ2VyYWRlIGVpbmVuIENvbW1pdCB3w6RocmVuZCBlaW5lcyBSZWJhc2Ugdm9uIEJyYW5jaCAnJXMnIGF1ZiAiCisiJyVzJy4iCiAKICM6IHd0LXN0YXR1cy5jOjkzOQogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKLW1zZ3N0ciAiU2llIGVkaXRpZXJlbiBnZXJhZGUgZWluZSBWZXJzaW9uIHfDpGhyZW5kIGVpbmVzIE5ldWF1ZmJhdXMuIgorbXNnc3RyICJTaWUgZWRpdGllcmVuIGdlcmFkZSBlaW5lbiBDb21taXQgd8OkaHJlbmQgZWluZXMgUmViYXNlLiIKIAogIzogd3Qtc3RhdHVzLmM6OTQyCiBtc2dpZCAiICAodXNlIFwiZ2l0IGNvbW1pdCAtLWFtZW5kXCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KSIKIG1zZ3N0ciAiIgotIiAgKGJlbnV0emVuIFNpZSBcImdpdCBjb21taXQgLS1hbWVuZFwiIHVtIGRpZSBha3R1ZWxsZSBWZXJzaW9uIG5hY2h6dWJlc3Nlcm4pIgorIiAgKGJlbnV0emVuIFNpZSBcImdpdCBjb21taXQgLS1hbWVuZFwiIHVtIGRlbiBha3R1ZWxsZW4gQ29tbWl0IG5hY2h6dWJlc3Nlcm4pIgogCiAjOiB3dC1zdGF0dXMuYzo5NDQKIG1zZ2lkICIiCkBAIC0xNDg3LDc0ICsxNTQ5LDkxIEBACiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuIgogbXNnc3RyICJTaWUgZsO8aHJlbiBnZXJhZGUgXCJjaGVycnktcGlja1wiIGF1cy4iCiAKLSM6IHd0LXN0YXR1cy5jOjk2MQotbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiCi1tc2dzdHIgIiAgKGFsbGUgS29uZmxpa3RlIGJlaG9iZW46IGbDvGhyZW4gU2llIFwiZ2l0IGNvbW1pdFwiIGF1cykiCisjOiB3dC1zdGF0dXMuYzo5NTgKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiIgorIiAgKGJlaGViZW4gU2llIGRpZSBLb25mbGlrdGUgdW5kIGbDvGhyZW4gU2llIGRhbm4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZSIKKyJcIiBhdXMpIgogCi0jOiB3dC1zdGF0dXMuYzo5NzAKKyM6IHd0LXN0YXR1cy5jOjk2MQorbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIiCisiICAoYWxsZSBLb25mbGlrdGUgYmVob2JlbjogZsO8aHJlbiBTaWUgXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiIGF1cykiCisKKyM6IHd0LXN0YXR1cy5jOjk2MworbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgorbXNnc3RyICIiCisiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnRcIiB1bSBkaWUgQ2hlcnJ5LVBpY2stT3BlcmF0aW9uICIKKyJhYnp1YnJlY2hlbikiCisKKyM6IHd0LXN0YXR1cy5jOjk3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZXZlcnRpbmcgY29tbWl0ICVzLiIKLW1zZ3N0ciAiU2llIG5laG1lbiBnZXJhZGUgVmVyc2lvbiAnJXMnIHp1csO8Y2suIgorbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYW4gZWluZW0gUmV2ZXJ0IHZvbiBDb21taXQgJyVzJy4iCiAKLSM6IHd0LXN0YXR1cy5jOjk3NQorIzogd3Qtc3RhdHVzLmM6OTc3CiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCiAiICAoYmVoZWJlbiBTaWUgZGllIEtvbmZsaWt0ZSB1bmQgZsO8aHJlbiBTaWUgZGFubiBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiICIKICJhdXMpIgogCi0jOiB3dC1zdGF0dXMuYzo5NzgKKyM6IHd0LXN0YXR1cy5jOjk4MAogbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAoYWxsZSBLb25mbGlrdGUgYmVob2JlbjogZsO8aHJlbiBTaWUgXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIiBhdXMpIgogCi0jOiB3dC1zdGF0dXMuYzo5ODAKKyM6IHd0LXN0YXR1cy5jOjk4MgogbXNnaWQgIiAgKHVzZSBcImdpdCByZXZlcnQgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikiCiBtc2dzdHIgIiIKLSIgIChiZW51dHplbiBTaWUgXCJnaXQgcmV2ZXJ0IC0tYWJvcnRcIiB1bSBkaWUgVW1rZWhyb3BlcmF0aW9uIGFienVicmVjaGVuKSIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgcmV2ZXJ0IC0tYWJvcnRcIiB1bSBkaWUgUmV2ZXJ0LU9wZXJhdGlvbiBhYnp1YnJlY2hlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjk5MQorIzogd3Qtc3RhdHVzLmM6OTkzCiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZywgc3RhcnRlZCBmcm9tIGJyYW5jaCAnJXMnLiIKLW1zZ3N0ciAiU2llIHNpbmQgZ2VyYWRlIGJlaSBlaW5lciBiaW7DpHJlbiBTdWNoZSwgZ2VzdGFydGV0IHZvbiBad2VpZyAnJXMnLiIKK21zZ3N0ciAiU2llIHNpbmQgZ2VyYWRlIGJlaSBlaW5lciBiaW7DpHJlbiBTdWNoZSwgZ2VzdGFydGV0IHZvbiBCcmFuY2ggJyVzJy4iCiAKLSM6IHd0LXN0YXR1cy5jOjk5NQorIzogd3Qtc3RhdHVzLmM6OTk3CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLiIKIG1zZ3N0ciAiU2llIHNpbmQgZ2VyYWRlIGJlaSBlaW5lciBiaW7DpHJlbiBTdWNoZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjk5OAorIzogd3Qtc3RhdHVzLmM6MTAwMAogbXNnaWQgIiAgKHVzZSBcImdpdCBiaXNlY3QgcmVzZXRcIiB0byBnZXQgYmFjayB0byB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiIgotIiAgKGJlbnV0emVuIFNpZSBcImdpdCBiaXNlY3QgcmVzZXRcIiB1bSB6dW0gdXJzcHLDvG5nbGljaGVuIFp3ZWlnICIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgYmlzZWN0IHJlc2V0XCIgdW0genVtIHVyc3Byw7xuZ2xpY2hlbiBCcmFuY2ggIgogInp1csO8Y2t6dWtlaHJlbikiCiAKICM6IHd0LXN0YXR1cy5jOjExNzMKIG1zZ2lkICJPbiBicmFuY2ggIgotbXNnc3RyICJBdWYgWndlaWcgIgorbXNnc3RyICJBdWYgQnJhbmNoICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NAorIzogd3Qtc3RhdHVzLmM6MTE4MAorbXNnaWQgInJlYmFzZSBpbiBwcm9ncmVzczsgb250byAiCittc2dzdHIgIlJlYmFzZSBpbSBHYW5nZTsgYXVmICIKKworIzogd3Qtc3RhdHVzLmM6MTE4NwogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgotbXNnc3RyICJad2VpZ3NwaXR6ZSAoSEVBRCkgbG9zZ2Vsw7ZzdCBiZWkgIgotCi0jOiB3dC1zdGF0dXMuYzoxMTg2Ci1tc2dpZCAiSEVBRCBkZXRhY2hlZCBmcm9tICIKLW1zZ3N0ciAiWndlaWdzcGl0emUgKEhFQUQpIGxvc2dlbMO2c3Qgdm9uICIKK21zZ3N0ciAiSEVBRCBsb3NnZWzDtnN0IGJlaSAiCiAKICM6IHd0LXN0YXR1cy5jOjExODkKK21zZ2lkICJIRUFEIGRldGFjaGVkIGZyb20gIgorbXNnc3RyICJIRUFEIGxvc2dlbMO2c3Qgdm9uICIKKworIzogd3Qtc3RhdHVzLmM6MTE5MgogbXNnaWQgIk5vdCBjdXJyZW50bHkgb24gYW55IGJyYW5jaC4iCi1tc2dzdHIgIkltIE1vbWVudCBhdWYga2VpbmVtIFp3ZWlnLiIKK21zZ3N0ciAiSW0gTW9tZW50IGF1ZiBrZWluZW0gQnJhbmNoLiIKIAotIzogd3Qtc3RhdHVzLmM6MTIwNgorIzogd3Qtc3RhdHVzLmM6MTIwOQogbXNnaWQgIkluaXRpYWwgY29tbWl0IgotbXNnc3RyICJJbml0aWFsZSBWZXJzaW9uIgorbXNnc3RyICJJbml0aWFsZXIgQ29tbWl0IgogCi0jOiB3dC1zdGF0dXMuYzoxMjIwCisjOiB3dC1zdGF0dXMuYzoxMjIzCiBtc2dpZCAiVW50cmFja2VkIGZpbGVzIgogbXNnc3RyICJVbmJlb2JhY2h0ZXRlIERhdGVpZW4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjIKKyM6IHd0LXN0YXR1cy5jOjEyMjUKIG1zZ2lkICJJZ25vcmVkIGZpbGVzIgogbXNnc3RyICJJZ25vcmllcnRlIERhdGVpZW4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjYKKyM6IHd0LXN0YXR1cy5jOjEyMjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHRvb2sgJS4yZiBzZWNvbmRzIHRvIGVudW1lcmF0ZSB1bnRyYWNrZWQgZmlsZXMuICdzdGF0dXMgLXVubydcbiIKQEAgLTE1NjUsOTAgKzE2NDQsOTAgQEAKICInc3RhdHVzIC11bm8nIGvDtm5udGUgZGFzIGJlc2NobGV1bmlnZW4sIGFiZXIgU2llIG3DvHNzZW4gZGFyYXVmIGFjaHRlbixcbiIKICJuZXVlIERhdGVpZW4gc2VsYnN0c3TDpG5kaWcgaGluenV6dWbDvGdlbiAoc2llaGUgJ2dpdCBoZWxwIHN0YXR1cycpLiIKIAotIzogd3Qtc3RhdHVzLmM6MTIzMgorIzogd3Qtc3RhdHVzLmM6MTIzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICJVbmJlb2JhY2h0ZXRlIERhdGVpZW4gbmljaHQgYXVmZ2VsaXN0ZXQlcyIKIAotIzogd3Qtc3RhdHVzLmM6MTIzNAorIzogd3Qtc3RhdHVzLmM6MTIzNwogbXNnaWQgIiAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykiCiBtc2dzdHIgIiAoYmVudXR6ZW4gU2llIGRpZSBPcHRpb24gLXUgdW0gdW5iZW9iYWNodGV0ZW4gRGF0ZWllbiBhbnp1emVpZ2VuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0MAorIzogd3Qtc3RhdHVzLmM6MTI0MwogbXNnaWQgIk5vIGNoYW5nZXMiCiBtc2dzdHIgIktlaW5lIMOEbmRlcnVuZ2VuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQ1CisjOiB3dC1zdGF0dXMuYzoxMjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgXCJnaXQgYWRkXCIgYW5kL29yIFwiZ2l0IGNvbW1pdCAtYVwiKVxuIgogbXNnc3RyICIiCi0ia2VpbmUgw4RuZGVydW5nZW4genVtIEVpbnRyYWdlbiBoaW56dWdlZsO8Z3QgKGJlbnV0emVuIFNpZSBcImdpdCBhZGRcIiB1bmQvIgotIm9kZXIgXCJnaXQgY29tbWl0IC1hXCIpXG4iCi0KLSM6IHd0LXN0YXR1cy5jOjEyNDgKLSMsIGMtZm9ybWF0Ci1tc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKLW1zZ3N0ciAia2VpbmUgw4RuZGVydW5nZW4genVtIEVpbnRyYWdlbiBoaW56dWdlZsO8Z3RcbiIKKyJrZWluZSDDhG5kZXJ1bmdlbiB6dW0gQ29tbWl0IHZvcmdlbWVya3QgKGJlbnV0emVuIFNpZSBcImdpdCBhZGRcIiB1bmQvb2RlciAiCisiXCJnaXQgY29tbWl0IC1hXCIpXG4iCiAKICM6IHd0LXN0YXR1cy5jOjEyNTEKICMsIGMtZm9ybWF0Cittc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKK21zZ3N0ciAia2VpbmUgw4RuZGVydW5nZW4genVtIENvbW1pdCB2b3JnZW1lcmt0XG4iCisKKyM6IHd0LXN0YXR1cy5jOjEyNTQKKyMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudCAodXNlIFwiZ2l0IGFkZFwiIHRvICIKICJ0cmFjaylcbiIKIG1zZ3N0ciAiIgotIm5pY2h0cyB6dW0gRWludHJhZ2VuIGhpbnp1Z2Vmw7xndCwgYWJlciBlcyBnaWJ0IHVuYmVvYmFjaHRldGUgRGF0ZWllbiAiCi0iKGJlbnV0emVuIFNpZSBcImdpdCBhZGRcIiB6dW0gQmVvYmFjaHRlbilcbiIKLQotIzogd3Qtc3RhdHVzLmM6MTI1NAotIywgYy1mb3JtYXQKLW1zZ2lkICJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzIHByZXNlbnRcbiIKLW1zZ3N0ciAibmljaHRzIHp1bSBFaW50cmFnZW4gaGluenVnZWbDvGd0LCBhYmVyIGVzIGdpYnQgdW5iZW9iYWNodGV0ZSBEYXRlaWVuXG4iCisibmljaHRzIHp1bSBDb21taXQgdm9yZ2VtZXJrdCwgYWJlciBlcyBnaWJ0IHVuYmVvYmFjaHRldGUgRGF0ZWllbiAoYmVudXR6ZW4gIgorIlNpZSBcImdpdCBhZGRcIiB6dW0gQmVvYmFjaHRlbilcbiIKIAogIzogd3Qtc3RhdHVzLmM6MTI1NwogIywgYy1mb3JtYXQKK21zZ2lkICJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzIHByZXNlbnRcbiIKK21zZ3N0ciAibmljaHRzIHp1bSBDb21taXQgdm9yZ2VtZXJrdCwgYWJlciBlcyBnaWJ0IHVuYmVvYmFjaHRldGUgRGF0ZWllblxuIgorCisjOiB3dC1zdGF0dXMuYzoxMjYwCisjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0IChjcmVhdGUvY29weSBmaWxlcyBhbmQgdXNlIFwiZ2l0IGFkZFwiIHRvIHRyYWNrKVxuIgogbXNnc3RyICIiCi0ibmljaHRzIGVpbnp1dHJhZ2VuIChFcnN0ZWxsZW4vS29waWVyZW4gU2llIERhdGVpZW4gdW5kIGJlbnV0emVuIFNpZSBcImdpdCBhZGQiCi0iXCIgenVtIEJlb2JhY2h0ZW4pXG4iCisibmljaHRzIHp1IGNvbW1pdHRlbiAoRXJzdGVsbGVuL0tvcGllcmVuIFNpZSBEYXRlaWVuIHVuZCBiZW51dHplbiBTaWUgXCJnaXQgIgorImFkZFwiIHp1bSBCZW9iYWNodGVuKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYwIHd0LXN0YXR1cy5jOjEyNjUKKyM6IHd0LXN0YXR1cy5jOjEyNjMgd3Qtc3RhdHVzLmM6MTI2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdFxuIgotbXNnc3RyICJuaWNodHMgZWluenV0cmFnZW5cbiIKK21zZ3N0ciAibmljaHRzIHp1IGNvbW1pdHRlblxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYzCisjOiB3dC1zdGF0dXMuYzoxMjY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpXG4iCiBtc2dzdHIgIiIKLSJuaWNodHMgZWluenV0cmFnZW4gKGJlbnV0emVuIFNpZSBkaWUgT3B0aW9uIC11LCB1bSB1bmJlb2JhY2h0ZXRlIERhdGVpZW4gIgorIm5pY2h0cyB6dSBjb21taXR0ZW4gKGJlbnV0emVuIFNpZSBkaWUgT3B0aW9uIC11LCB1bSB1bmJlb2JhY2h0ZXRlIERhdGVpZW4gIgogImFuenV6ZWlnZW4pXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjcKKyM6IHd0LXN0YXR1cy5jOjEyNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgZGlyZWN0b3J5IGNsZWFuXG4iCi1tc2dzdHIgIm5pY2h0cyBlaW56dXRyYWdlbiwgQXJiZWl0c3ZlcnplaWNobmlzIHNhdWJlclxuIgorbXNnc3RyICJuaWNodHMgenUgY29tbWl0dGVuLCBBcmJlaXRzdmVyemVpY2huaXMgdW52ZXLDpG5kZXJ0XG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEzNzUKKyM6IHd0LXN0YXR1cy5jOjEzNzgKIG1zZ2lkICJIRUFEIChubyBicmFuY2gpIgotbXNnc3RyICJIRUFEIChrZWluIFp3ZWlnKSIKK21zZ3N0ciAiSEVBRCAoa2VpbiBCcmFuY2gpIgogCi0jOiB3dC1zdGF0dXMuYzoxMzgxCisjOiB3dC1zdGF0dXMuYzoxMzg0CiBtc2dpZCAiSW5pdGlhbCBjb21taXQgb24gIgotbXNnc3RyICJJbml0aWFsZSBWZXJzaW9uIGF1ZiAiCittc2dzdHIgIkluaXRpYWxlciBDb21taXQgYXVmICIKIAotIzogd3Qtc3RhdHVzLmM6MTM5NgorIzogd3Qtc3RhdHVzLmM6MTM5OQogbXNnaWQgImJlaGluZCAiCiBtc2dzdHIgImhpbnRlcmhlciAiCiAKLSM6IHd0LXN0YXR1cy5jOjEzOTkgd3Qtc3RhdHVzLmM6MTQwMgorIzogd3Qtc3RhdHVzLmM6MTQwMiB3dC1zdGF0dXMuYzoxNDA1CiBtc2dpZCAiYWhlYWQgIgogbXNnc3RyICJ2b3JhdXMgIgogCi0jOiB3dC1zdGF0dXMuYzoxNDA0CisjOiB3dC1zdGF0dXMuYzoxNDA3CiBtc2dpZCAiLCBiZWhpbmQgIgogbXNnc3RyICIsIGhpbnRlcmhlciAiCiAKLSM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUyCisjOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTggYnVpbHRpbi9jbG9uZS5jOjM1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gdW5saW5rICclcyciCiBtc2dzdHIgIktvbm50ZSAnJXMnIG5pY2h0IGVudGZlcm5lbi4iCkBAIC0xNzI0LDExICsxODAzLDkgQEAKICJkaWVzZXIgVmVyc2lvbiB2b24gR2l0IGlnbm9yaWVydC5cbiIKICJcbiIKICIqICdnaXQgYWRkIC0taWdub3JlLXJlbW92YWwgPFBmYWRzcGV6aWZpa2F0aW9uPicsIHdhcyBkZXIgYWt0dWVsbGVcbiIKLSIgIFN0YW5kYXJkd2VydCBpc3QsIGlnbm9yaWVydCBnZWzDtnNjaHRlIFBmYWRlIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcy4iCi0iXG4iCisiICBTdGFuZGFyZHdlcnQgaXN0LCBpZ25vcmllcnQgZ2Vsw7ZzY2h0ZSBQZmFkZSBpbSBBcmJlaXRzdmVyemVpY2huaXMuXG4iCiAiKiAnZ2l0IGFkZCAtLWFsbCA8UGZhZHNwZXppZmlrYXRpb24+JyBiZXLDvGNrc2ljaHRpZ3QgZWJlbmZhbGxzIGdlbMO2c2NodGVcbiIKLSIgIFBmYWRlLiIKLSJcbiIKKyIgIFBmYWRlLlxuIgogIkbDvGhyZW4gU2llICdnaXQgc3RhdHVzJyBhdXMsIHVtIGRpZSBnZWzDtnNjaHRlbiBQZmFkZSB6dSDDvGJlcnByw7xmZW4uXG4iCiAKICM6IGJ1aWx0aW4vYWRkLmM6MTQ0CkBAIC0xNzM2LDcgKzE4MTMsNyBAQAogbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCiBtc2dzdHIgInVuZXJ3YXJ0ZXRlciBEaWZmZXJlbnotU3RhdHVzICVjIgogCi0jOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjIzMworIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyNTIKIG1zZ2lkICJ1cGRhdGluZyBmaWxlcyBmYWlsZWQiCiBtc2dzdHIgIkFrdHVhbGlzaWVydW5nIGRlciBEYXRlaWVuIGZlaGxnZXNjaGxhZ2VuIgogCkBAIC0xNzQ4LDE0NyArMTgyNSwxNDYgQEAKICM6IGJ1aWx0aW4vYWRkLmM6MjUzCiBtc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZWZyZXNoaW5nIHRoZSBpbmRleDoiCiBtc2dzdHIgIiIKLSJOaWNodCBiZXJlaXRnZXN0ZWxsdGUgw4RuZGVydW5nZW4gbmFjaCBBa3R1YWxpc2llcnVuZyBkZXIgQmVyZWl0c3RlbGx1bmc6IgorIk5pY2h0IHp1bSBDb21taXQgdm9yZ2VtZXJrdGUgw4RuZGVydW5nZW4gbmFjaCBBa3R1YWxpc2llcnVuZyBkZXIgU3RhZ2luZy1BcmVhOiIKIAotIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzIgYnVpbHRpbi9ybS5jOjI3NQorIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzMgYnVpbHRpbi9ybS5jOjMzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgogbXNnc3RyICJQZmFkc3BlemlmaWthdGlvbiAnJXMnIHN0aW1tdCBtaXQga2VpbmVuIERhdGVpZW4gw7xiZXJlaW4iCiAKICM6IGJ1aWx0aW4vYWRkLmM6MzM5CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgdGhlIGluZGV4IgotbXNnc3RyICJLb25udGUgZGllIEJlcmVpdHN0ZWxsdW5nIG5pY2h0IGxlc2VuIgorbXNnc3RyICJLb25udGUgZGllIFN0YWdpbmctQXJlYSBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9hZGQuYzozNDkKKyM6IGJ1aWx0aW4vYWRkLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmcuIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCB6dW0gU2NocmVpYmVuIMO2ZmZuZW4uIgogCi0jOiBidWlsdGluL2FkZC5jOjM1MworIzogYnVpbHRpbi9hZGQuYzozNTQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgcGF0Y2giCiBtc2dzdHIgIktvbm50ZSBQYXRjaCBuaWNodCBzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzU4CisjOiBidWlsdGluL2FkZC5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgogbXNnc3RyICJLb25udGUgVmVyemVpY2huaXMgJyVzJyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9hZGQuYzozNjAKKyM6IGJ1aWx0aW4vYWRkLmM6MzYxCiBtc2dpZCAiRW1wdHkgcGF0Y2guIEFib3J0ZWQuIgogbXNnc3RyICJMZWVyZXIgUGF0Y2guIEFiZ2Vicm9jaGVuLiIKIAotIzogYnVpbHRpbi9hZGQuYzozNjYKKyM6IGJ1aWx0aW4vYWRkLmM6MzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBhbndlbmRlbi4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzc2CisjOiBidWlsdGluL2FkZC5jOjM3NwogbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKIG1zZ3N0ciAiIgogIkRpZSBmb2xnZW5kZW4gUGZhZGUgd2VyZGVuIGR1cmNoIGVpbmUgSWhyZXIgXCIuZ2l0aWdub3JlXCIgRGF0ZWllbiAiCiAiaWdub3JpZXJ0OlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjM5MyBidWlsdGluL2NsZWFuLmM6MTYxIGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKLSM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzYgYnVpbHRpbi9wdXNoLmM6NDI1IGJ1aWx0aW4vcmVtb3RlLmM6MTI1MwotIzogYnVpbHRpbi9ybS5jOjIwNgorIzogYnVpbHRpbi9hZGQuYzozOTQgYnVpbHRpbi9jbGVhbi5jOjg3NSBidWlsdGluL2ZldGNoLmM6NzggYnVpbHRpbi9tdi5jOjYzCisjOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjczIGJ1aWx0aW4vcHVzaC5jOjQ1MSBidWlsdGluL3JlbW90ZS5jOjEyNTMKKyM6IGJ1aWx0aW4vcm0uYzoyNjgKIG1zZ2lkICJkcnkgcnVuIgogbXNnc3RyICJQcm9iZWxhdWYiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vYXBwbHkuYzo0NDA5IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1MiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTMKLSM6IGJ1aWx0aW4vbG9nLmM6MTUxOCBidWlsdGluL212LmM6NjIgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTIKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk1IGJ1aWx0aW4vYXBwbHkuYzo0NDEwIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMCBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTU3MyBidWlsdGluL212LmM6NjIgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKIG1zZ2lkICJiZSB2ZXJib3NlIgogbXNnc3RyICJlcndlaXRlcnRlIEF1c2dhYmVuIgogCi0jOiBidWlsdGluL2FkZC5jOjM5NgorIzogYnVpbHRpbi9hZGQuYzozOTcKIG1zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgogbXNnc3RyICJpbnRlcmFrdGl2ZXMgQXVzd8OkaGxlbiIKIAotIzogYnVpbHRpbi9hZGQuYzozOTcgYnVpbHRpbi9jaGVja291dC5jOjEwNjMgYnVpbHRpbi9yZXNldC5jOjI1OAorIzogYnVpbHRpbi9hZGQuYzozOTggYnVpbHRpbi9jaGVja291dC5jOjEwNzMgYnVpbHRpbi9yZXNldC5jOjI2MQogbXNnaWQgInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IgotbXNnc3RyICJpbnRlcmFrdGl2IEJlcmVpY2hlIGF1c3fDpGhsZW4iCittc2dzdHIgIkJsw7Zja2UgaW50ZXJha3RpdiBhdXN3w6RobGVuIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OAorIzogYnVpbHRpbi9hZGQuYzozOTkKIG1zZ2lkICJlZGl0IGN1cnJlbnQgZGlmZiBhbmQgYXBwbHkiCiBtc2dzdHIgImFrdHVlbGxlIFVudGVyc2NoaWVkZSBlZGl0aWVyZW4gdW5kIGFud2VuZGVuIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OQorIzogYnVpbHRpbi9hZGQuYzo0MDAKIG1zZ2lkICJhbGxvdyBhZGRpbmcgb3RoZXJ3aXNlIGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgImVybGF1YnQgZGFzIEhpbnp1ZsO8Z2VuIGFuZGVybmZhbGxzIGlnbm9yaWVydGVyIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAwCisjOiBidWlsdGluL2FkZC5jOjQwMQogbXNnaWQgInVwZGF0ZSB0cmFja2VkIGZpbGVzIgogbXNnc3RyICJha3R1YWxpc2llcnQgYmVvYmFjaHRldGUgRGF0ZWllbiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDEKKyM6IGJ1aWx0aW4vYWRkLmM6NDAyCiBtc2dpZCAicmVjb3JkIG9ubHkgdGhlIGZhY3QgdGhhdCB0aGUgcGF0aCB3aWxsIGJlIGFkZGVkIGxhdGVyIgogbXNnc3RyICJzcGVpY2hlcnQgbnVyLCBkYXNzIGRlciBQZmFkIHNww6R0ZXIgaGluenVnZWbDvGd0IHdlcmRlbiBzb2xsIgogCi0jOiBidWlsdGluL2FkZC5jOjQwMgorIzogYnVpbHRpbi9hZGQuYzo0MDMKIG1zZ2lkICJhZGQgY2hhbmdlcyBmcm9tIGFsbCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIiIKICJmw7xndCDDhG5kZXJ1bmdlbiB2b24gYWxsZW4gYmVvYmFjaHRldGVuIHVuZCB1bmJlb2JhY2h0ZXRlbiBEYXRlaWVuIGhpbnp1IgogCiAjLiB0YWtlcyBubyBhcmd1bWVudHMKLSM6IGJ1aWx0aW4vYWRkLmM6NDA1CisjOiBidWlsdGluL2FkZC5jOjQwNgogbXNnaWQgImlnbm9yZSBwYXRocyByZW1vdmVkIGluIHRoZSB3b3JraW5nIHRyZWUgKHNhbWUgYXMgLS1uby1hbGwpIgotbXNnc3RyICJpZ25vcmllcnQgZ2Vsw7ZzY2h0ZSBQZmFkZSBpbSBBcmJlaXRzdmVyemVpY2huaXMgKGdlbmF1IHdpZSAiCi0iLS1uby1hbGwpIgotCi0jOiBidWlsdGluL2FkZC5jOjQwNwotbXNnaWQgImRvbid0IGFkZCwgb25seSByZWZyZXNoIHRoZSBpbmRleCIKLW1zZ3N0ciAiZsO8Z3QgbmljaHRzIGhpbnp1LCBha3R1YWxpc2llcnQgbnVyIGRpZSBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAiaWdub3JpZXJ0IGdlbMO2c2NodGUgUGZhZGUgaW0gQXJiZWl0c3ZlcnplaWNobmlzIChnZW5hdSB3aWUgLS1uby1hbGwpIgogCiAjOiBidWlsdGluL2FkZC5jOjQwOAorbXNnaWQgImRvbid0IGFkZCwgb25seSByZWZyZXNoIHRoZSBpbmRleCIKK21zZ3N0ciAiZsO8Z3QgbmljaHRzIGhpbnp1LCBha3R1YWxpc2llcnQgbnVyIGRpZSBTdGFnaW5nLUFyZWEiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDA5CiBtc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKIG1zZ3N0ciAiIgogIsO8YmVyc3ByaW5ndCBEYXRlaWVuLCBkaWUgYXVmZ3J1bmQgdm9uIEZlaGxlcm4gbmljaHQgaGluenVnZWbDvGd0IHdlcmRlbiAiCiAia29ubnRlbiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDkKKyM6IGJ1aWx0aW4vYWRkLmM6NDEwCiBtc2dpZCAiY2hlY2sgaWYgLSBldmVuIG1pc3NpbmcgLSBmaWxlcyBhcmUgaWdub3JlZCBpbiBkcnkgcnVuIgogbXNnc3RyICJwcsO8ZnQgb2IgLSBhdWNoIGZlaGxlbmRlIC0gRGF0ZWllbiBpbSBQcm9iZWxhdWYgaWdub3JpZXJ0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MzEKKyM6IGJ1aWx0aW4vYWRkLmM6NDMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSAtZiBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHRoZW0uXG4iCiBtc2dzdHIgIlZlcndlbmRlbiBTaWUgLWYgd2VubiBTaWUgZGllc2Ugd2lya2xpY2ggaGluenVmw7xnZW4gbcO2Y2h0ZW4uXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDMyCisjOiBidWlsdGluL2FkZC5jOjQzMwogbXNnaWQgIm5vIGZpbGVzIGFkZGVkIgogbXNnc3RyICJrZWluZSBEYXRlaWVuIGhpbnp1Z2Vmw7xndCIKIAotIzogYnVpbHRpbi9hZGQuYzo0MzgKKyM6IGJ1aWx0aW4vYWRkLmM6NDM5CiBtc2dpZCAiYWRkaW5nIGZpbGVzIGZhaWxlZCIKIG1zZ3N0ciAiSGluenVmw7xnZW4gdm9uIERhdGVpZW4gZmVobGdlc2NobGFnZW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDc3CisjOiBidWlsdGluL2FkZC5jOjQ3OAogbXNnaWQgIi1BIGFuZCAtdSBhcmUgbXV0dWFsbHkgaW5jb21wYXRpYmxlIgogbXNnc3RyICJEaWUgT3B0aW9uZW4gLUEgdW5kIC11IHNpbmQgenVlaW5hbmRlciBpbmtvbXBhdGliZWwuIgogCi0jOiBidWlsdGluL2FkZC5jOjQ5NQorIzogYnVpbHRpbi9hZGQuYzo0OTYKIG1zZ2lkICJPcHRpb24gLS1pZ25vcmUtbWlzc2luZyBjYW4gb25seSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggLS1kcnktcnVuIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbiAtLWlnbm9yZS1taXNzaW5nIGthbm4gbnVyIHp1c2FtbWVuIG1pdCAtLWRyeS1ydW4gdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTI1CisjOiBidWlsdGluL2FkZC5jOjUyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3RoaW5nIHNwZWNpZmllZCwgbm90aGluZyBhZGRlZC5cbiIKIG1zZ3N0ciAiTmljaHRzIHNwZXppZml6aWVydCwgbmljaHRzIGhpbnp1Z2Vmw7xndC5cbiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MjYKKyM6IGJ1aWx0aW4vYWRkLmM6NTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1heWJlIHlvdSB3YW50ZWQgdG8gc2F5ICdnaXQgYWRkIC4nP1xuIgogbXNnc3RyICJXb2xsdGVuIFNpZSB2aWVsbGVpY2h0ICdnaXQgYWRkIC4nIHNhZ2VuP1xuIgogCi0jOiBidWlsdGluL2FkZC5jOjUzMiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjY2IGJ1aWx0aW4vY2xlYW4uYzoyMDQKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MjkzIGJ1aWx0aW4vbXYuYzo4MiBidWlsdGluL3JtLmM6MjM1CisjOiBidWlsdGluL2FkZC5jOjUzMyBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MSBidWlsdGluL2NsZWFuLmM6OTE5CisjOiBidWlsdGluL2NvbW1pdC5jOjMxMiBidWlsdGluL212LmM6ODIgYnVpbHRpbi9ybS5jOjI5NwogbXNnaWQgImluZGV4IGZpbGUgY29ycnVwdCIKLW1zZ3N0ciAiQmVyZWl0c3RlbGx1bmdzZGF0ZWkgYmVzY2jDpGRpZ3QiCittc2dzdHIgIlN0YWdpbmctQXJlYS1EYXRlaSBiZXNjaMOkZGlndCIKIAotIzogYnVpbHRpbi9hZGQuYzo2MDQgYnVpbHRpbi9hcHBseS5jOjQ1MDUgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6MzcwCisjOiBidWlsdGluL2FkZC5jOjYwNSBidWlsdGluL2FwcGx5LmM6NDUwNiBidWlsdGluL212LmM6MjI5IGJ1aWx0aW4vcm0uYzo0MzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCi1tc2dzdHIgIktvbm50ZSBuZXVlIEJlcmVpdHN0ZWxsdW5nc2RhdGVpIG5pY2h0IHNjaHJlaWJlbi4iCittc2dzdHIgIktvbm50ZSBuZXVlIFN0YWdpbmctQXJlYS1EYXRlaSBuaWNodCBzY2hyZWliZW4uIgogCiAjOiBidWlsdGluL2FwcGx5LmM6NTcKIG1zZ2lkICJnaXQgYXBwbHkgW29wdGlvbnNdIFs8cGF0Y2g+Li4uXSIKQEAgLTE4OTcsMTIgKzE5NzMsMTIgQEAKICM6IGJ1aWx0aW4vYXBwbHkuYzoxMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIHdoaXRlc3BhY2Ugb3B0aW9uICclcyciCi1tc2dzdHIgIm5pY2h0IGVya2FubnRlIE9wdGlvbiBmw7xyIExlZXJ6ZWljaGVuOiAnJXMnIgorbXNnc3RyICJuaWNodCBlcmthbm50ZSBXaGl0ZXNwYWNlLU9wdGlvbjogJyVzJyIKIAogIzogYnVpbHRpbi9hcHBseS5jOjEyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgd2hpdGVzcGFjZSBpZ25vcmUgb3B0aW9uICclcyciCi1tc2dzdHIgIm5pY2h0IGVya2FubnRlIE9wdGlvbiB6dW0gSWdub3JpZXJlbiB2b24gTGVlcnplaWNoZW46ICclcyciCittc2dzdHIgIm5pY2h0IGVya2FubnRlIE9wdGlvbiB6dW0gSWdub3JpZXJlbiB2b24gV2hpdGVzcGFjZTogJyVzJyIKIAogIzogYnVpbHRpbi9hcHBseS5jOjgyMwogIywgYy1mb3JtYXQKQEAgLTIwMTUsNyArMjA5MSw3IEBACiAjOiBidWlsdGluL2FwcGx5LmM6MjA3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCBzeW1saW5rICVzIgotbXNnc3RyICJrb25udGUgc3ltYm9saXNjaGUgVmVya27DvHBmdW5nICVzIG5pY2h0IGxlc2VuIgorbXNnc3RyICJrb25udGUgc3ltYm9saXNjaGVuIFZlcndlaXMgJXMgbmljaHQgbGVzZW4iCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzoyMDgwCiAjLCBjLWZvcm1hdApAQCAtMjA3NSwzMTkgKzIxNTEsMzE1IEBACiBtc2dpZCAiY2Fubm90IGNoZWNrb3V0ICVzIgogbXNnc3RyICJrYW5uICVzIG5pY2h0IGF1c2NoZWNrZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMTQwIGJ1aWx0aW4vYXBwbHkuYzozMTQ5IGJ1aWx0aW4vYXBwbHkuYzozMTkzCisjOiBidWlsdGluL2FwcGx5LmM6MzE0MCBidWlsdGluL2FwcGx5LmM6MzE0OSBidWlsdGluL2FwcGx5LmM6MzE5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkIG9mICVzIGZhaWxlZCIKIG1zZ3N0ciAiS29ubnRlICVzIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzE3MyBidWlsdGluL2FwcGx5LmM6MzM5NQorIzogYnVpbHRpbi9hcHBseS5jOjMxNzQgYnVpbHRpbi9hcHBseS5jOjMzOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAlcyBoYXMgYmVlbiByZW5hbWVkL2RlbGV0ZWQiCiBtc2dzdHIgIlBmYWQgJXMgd3VyZGUgdW1iZW5hbm50L2dlbMO2c2NodCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNTQgYnVpbHRpbi9hcHBseS5jOjM0MDkKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjU1IGJ1aWx0aW4vYXBwbHkuYzozNDEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleCIKLW1zZ3N0ciAiJXMgaXN0IG5pY2h0IGJlcmVpdGdlc3RlbGx0IgorbXNnc3RyICIlcyBpc3QgbmljaHQgaW4gZGVyIFN0YWdpbmctQXJlYSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNTggYnVpbHRpbi9hcHBseS5jOjM0MDEgYnVpbHRpbi9hcHBseS5jOjM0MjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjU5IGJ1aWx0aW4vYXBwbHkuYzozNDAyIGJ1aWx0aW4vYXBwbHkuYzozNDI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiAlcyIKIG1zZ3N0ciAiJXM6ICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI2MyBidWlsdGluL2FwcGx5LmM6MzQxNworIzogYnVpbHRpbi9hcHBseS5jOjMyNjQgYnVpbHRpbi9hcHBseS5jOjM0MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGRvZXMgbm90IG1hdGNoIGluZGV4IgotbXNnc3RyICIlcyBlbnRzcHJpY2h0IG5pY2h0IGRlciBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAiJXMgZW50c3ByaWNodCBuaWNodCBkZXIgVmVyc2lvbiBpbiBkZXIgU3RhZ2luZy1BcmVhIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzM2NQorIzogYnVpbHRpbi9hcHBseS5jOjMzNjYKIG1zZ2lkICJyZW1vdmFsIHBhdGNoIGxlYXZlcyBmaWxlIGNvbnRlbnRzIgogbXNnc3RyICJMw7ZzY2gtUGF0Y2ggaGludGVybMOkc3N0IERhdGVpaW5oYWx0ZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiB3cm9uZyB0eXBlIgogbXNnc3RyICIlczogZmFsc2NoZXIgVHlwIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzQzNgorIzogYnVpbHRpbi9hcHBseS5jOjM0MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaGFzIHR5cGUgJW8sIGV4cGVjdGVkICVvIgogbXNnc3RyICIlcyBpc3Qgdm9tIFR5cCAlbywgZXJ3YXJ0ZXRlICVvIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzUzNworIzogYnVpbHRpbi9hcHBseS5jOjM1MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIGluZGV4IgogbXNnc3RyICIlcyBpc3QgYmVyZWl0cyBiZXJlaXRnZXN0ZWxsdCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NDAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBhbHJlYWR5IGV4aXN0cyBpbiB3b3JraW5nIGRpcmVjdG9yeSIKIG1zZ3N0ciAiJXMgZXhpc3RpZXJ0IGJlcmVpdHMgaW0gQXJiZWl0c3ZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU2MAorIzogYnVpbHRpbi9hcHBseS5jOjM1NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IG1vZGUgKCVvKSBvZiAlcyBkb2VzIG5vdCBtYXRjaCBvbGQgbW9kZSAoJW8pIgogbXNnc3RyICJuZXVlciBNb2R1cyAoJW8pIHZvbiAlcyBlbnRzcHJpY2h0IG5pY2h0IGRlbSBhbHRlbiBNb2R1cyAoJW8pIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU2NQorIzogYnVpbHRpbi9hcHBseS5jOjM1NjYKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IG1vZGUgKCVvKSBvZiAlcyBkb2VzIG5vdCBtYXRjaCBvbGQgbW9kZSAoJW8pIG9mICVzIgogbXNnc3RyICJuZXVlciBNb2R1cyAoJW8pIHZvbiAlcyBlbnRzcHJpY2h0IG5pY2h0IGRlbSBhbHRlbiBNb2R1cyAoJW8pIHZvbiAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NzMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBwYXRjaCBkb2VzIG5vdCBhcHBseSIKIG1zZ3N0ciAiJXM6IFBhdGNoIGtvbm50ZSBuaWNodCBhbmdld2VuZGV0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1ODYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIHBhdGNoICVzLi4uIgogbXNnc3RyICJQcsO8ZmUgUGF0Y2ggJXMuLi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNjc5IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTYgYnVpbHRpbi9yZXNldC5jOjEyNAorIzogYnVpbHRpbi9hcHBseS5jOjM2ODAgYnVpbHRpbi9jaGVja291dC5jOjIxNiBidWlsdGluL3Jlc2V0LmM6MTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1ha2VfY2FjaGVfZW50cnkgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgIm1ha2VfY2FjaGVfZW50cnkgZsO8ciBQZmFkICclcycgZmVobGdlc2NobGFnZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODIyCisjOiBidWlsdGluL2FwcGx5LmM6MzgyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlICVzIGZyb20gaW5kZXgiCi1tc2dzdHIgImtvbm50ZSAlcyBuaWNodCBhdXMgZGVyIEJlcmVpdHN0ZWxsdW5nIGVudGZlcm5lbiIKK21zZ3N0ciAia29ubnRlICVzIG5pY2h0IGF1cyBkZXIgU3RhZ2luZy1BcmVhIGVudGZlcm5lbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODUxCiAjLCBjLWZvcm1hdAotbXNnaWQgImNvcnJ1cHQgcGF0Y2ggZm9yIHN1YnByb2plY3QgJXMiCi1tc2dzdHIgImZlaGxlcmhhZnRlciBQYXRjaCBmw7xyIFVudGVycHJvamVrdCAlcyIKK21zZ2lkICJjb3JydXB0IHBhdGNoIGZvciBzdWJtb2R1bGUgJXMiCittc2dzdHIgImZlaGxlcmhhZnRlciBQYXRjaCBmw7xyIFN1Ym1vZHVsICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1NAorIzogYnVpbHRpbi9hcHBseS5jOjM4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHN0YXQgbmV3bHkgY3JlYXRlZCBmaWxlICclcyciCiBtc2dzdHIgImtvbm50ZSBuZXUgZXJzdGVsbHRlIERhdGVpICclcycgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODU5CisjOiBidWlsdGluL2FwcGx5LmM6Mzg2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIGJhY2tpbmcgc3RvcmUgZm9yIG5ld2x5IGNyZWF0ZWQgZmlsZSAlcyIKIG1zZ3N0ciAia2FubiBpbnRlcm5lbiBTcGVpY2hlciBmw7xyIGViZW4gZXJzdGVsbHRlIERhdGVpICVzIG5pY2h0IGVyemV1Z2VuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg2MiBidWlsdGluL2FwcGx5LmM6Mzk3MAorIzogYnVpbHRpbi9hcHBseS5jOjM4NjMgYnVpbHRpbi9hcHBseS5jOjM5NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGFkZCBjYWNoZSBlbnRyeSBmb3IgJXMiCiBtc2dzdHIgImthbm4gZsO8ciAlcyBrZWluZW4gRWludHJhZyBpbiBkZW4gWndpc2NoZW5zcGVpY2hlciBoaW56dWbDvGdlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4OTUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODk2CiAjLCBjLWZvcm1hdAogbXNnaWQgImNsb3NpbmcgZmlsZSAnJXMnIgogbXNnc3RyICJzY2hsaWXDn2UgRGF0ZWkgJyVzJyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM5NDQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozOTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBmaWxlICclcycgbW9kZSAlbyIKIG1zZ3N0ciAia29ubnRlIERhdGVpICclcycgbWl0IE1vZHVzICVvIG5pY2h0IHNjaHJlaWJlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFwcGxpZWQgcGF0Y2ggJXMgY2xlYW5seS4iCiBtc2dzdHIgIlBhdGNoICVzIHNhdWJlciBhbmdld2VuZGV0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDAzOQorIzogYnVpbHRpbi9hcHBseS5jOjQwNDAKIG1zZ2lkICJpbnRlcm5hbCBlcnJvciIKIG1zZ3N0ciAiaW50ZXJuZXIgRmVobGVyIgogCiAjLiBTYXkgdGhpcyBldmVuIHdpdGhvdXQgLS12ZXJib3NlCi0jOiBidWlsdGluL2FwcGx5LmM6NDA0MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0Li4uIgogbXNnaWRfcGx1cmFsICJBcHBseWluZyBwYXRjaCAlJXMgd2l0aCAlZCByZWplY3RzLi4uIgogbXNnc3RyWzBdICJXZW5kZSBQYXRjaCAlJXMgbWl0ICVkIFp1csO8Y2t3ZWlzdW5nIGFuLi4uIgogbXNnc3RyWzFdICJXZW5kZSBQYXRjaCAlJXMgbWl0ICVkIFp1csO8Y2t3ZWlzdW5nZW4gYW4uLi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDUyCisjOiBidWlsdGluL2FwcGx5LmM6NDA1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0cnVuY2F0aW5nIC5yZWogZmlsZW5hbWUgdG8gJS4qcy5yZWoiCiBtc2dzdHIgIlZlcmvDvHJ6ZSBOYW1lIHZvbiAucmVqIERhdGVpIHp1ICUuKnMucmVqIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA3MworIzogYnVpbHRpbi9hcHBseS5jOjQwNzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiSHVuayAjJWQgYXBwbGllZCBjbGVhbmx5LiIKIG1zZ3N0ciAiUGF0Y2gtQmVyZWljaCAjJWQgc2F1YmVyIGFuZ2V3ZW5kZXQuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA3NgorIzogYnVpbHRpbi9hcHBseS5jOjQwNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVqZWN0ZWQgaHVuayAjJWQuIgotbXNnc3RyICJQYXRjaC1CZXJlaWNoICMlZCB6dXLDvGNrZ2V3aWVzZW4uIgorbXNnc3RyICJQYXRjaC1CbG9jayAjJWQgenVyw7xja2dld2llc2VuLiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQyMjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MjI3CiBtc2dpZCAidW5yZWNvZ25pemVkIGlucHV0IgogbXNnc3RyICJuaWNodCBlcmthbm50ZSBFaW5nYWJlIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDIzNworIzogYnVpbHRpbi9hcHBseS5jOjQyMzgKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCBpbmRleCBmaWxlIgotbXNnc3RyICJLb25udGUgQmVyZWl0c3RlbGx1bmdzZGF0ZWkgbmljaHQgbGVzZW4iCittc2dzdHIgIktvbm50ZSBTdGFnaW5nLUFyZWEtRGF0ZWkgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU2IGJ1aWx0aW4vYXBwbHkuYzo0MzU5IGJ1aWx0aW4vY2xvbmUuYzo5MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNTcgYnVpbHRpbi9hcHBseS5jOjQzNjAgYnVpbHRpbi9jbG9uZS5jOjkxCiAjOiBidWlsdGluL2ZldGNoLmM6NjMKIG1zZ2lkICJwYXRoIgogbXNnc3RyICJQZmFkIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NworIzogYnVpbHRpbi9hcHBseS5jOjQzNTgKIG1zZ2lkICJkb24ndCBhcHBseSBjaGFuZ2VzIG1hdGNoaW5nIHRoZSBnaXZlbiBwYXRoIgogbXNnc3RyICJ3ZW5kZXQga2VpbmUgw4RuZGVydW5nZW4gaW0gYW5nZWdlYmVuZW4gUGZhZCBhbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYxCiBtc2dpZCAiYXBwbHkgY2hhbmdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcGF0aCIKIG1zZ3N0ciAid2VuZGV0IMOEbmRlcnVuZ2VuIG51ciBpbSBhbmdlZ2ViZW5lbiBQZmFkIGFuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNjMKIG1zZ2lkICJudW0iCiBtc2dzdHIgIkFuemFobCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY0CiBtc2dpZCAicmVtb3ZlIDxudW0+IGxlYWRpbmcgc2xhc2hlcyBmcm9tIHRyYWRpdGlvbmFsIGRpZmYgcGF0aHMiCiBtc2dzdHIgIiIKICJlbnRmZXJudCA8QW56YWhsPiB2b3Jhbmdlc3RlbGx0ZSBTY2hyw6Rnc3RyaWNoZSB2b24gaGVya8O2bW1saWNoZW4gIgogIkRpZmZlcmVuenBmYWRlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY3CiBtc2dpZCAiaWdub3JlIGFkZGl0aW9ucyBtYWRlIGJ5IHRoZSBwYXRjaCIKIG1zZ3N0ciAiaWdub3JpZXJ0IGhpbnp1Z2Vmw7xndGUgWmVpbGVuIGRlcyBQYXRjaGVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2OAorIzogYnVpbHRpbi9hcHBseS5jOjQzNjkKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgb3V0cHV0IGRpZmZzdGF0IGZvciB0aGUgaW5wdXQiCiBtc2dzdHIgIiIKICJhbnN0YXR0IGRlciBBbndlbmR1bmcgZGVzIFBhdGNoZXMsIHdpcmQgZGVyIFwiZGlmZnN0YXRcIiBmw7xyIGRpZSBFaW5nYWJlICIKICJhdXNnZWdlYmVuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzMKIG1zZ2lkICJzaG93IG51bWJlciBvZiBhZGRlZCBhbmQgZGVsZXRlZCBsaW5lcyBpbiBkZWNpbWFsIG5vdGF0aW9uIgogbXNnc3RyICIiCiAiemVpZ3QgZGllIEFuemFobCB2b24gaGluenVnZWbDvGd0ZW4vZW50ZmVybnRlbiBaZWlsZW4gaW4gRGV6aW1hbG5vdGF0aW9uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3NAorIzogYnVpbHRpbi9hcHBseS5jOjQzNzUKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgb3V0cHV0IGEgc3VtbWFyeSBmb3IgdGhlIGlucHV0IgogbXNnc3RyICIiCiAiYW5zdGF0dCBkZXIgQW53ZW5kdW5nIGRlcyBQYXRjaGVzLCB3aXJkIGVpbmUgWnVzYW1tZW5mYXNzdW5nIGbDvHIgZGllIEVpbmdhYmUgIgogImF1c2dlZ2ViZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc2CisjOiBidWlsdGluL2FwcGx5LmM6NDM3NwogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBzZWUgaWYgdGhlIHBhdGNoIGlzIGFwcGxpY2FibGUiCiBtc2dzdHIgIiIKICJhbnN0YXR0IGRlciBBbndlbmR1bmcgZGVzIFBhdGNoZXMsIHplaWdlIG9iIFBhdGNoIGFuZ2V3ZW5kZXQgd2VyZGVuIGthbm4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc4CisjOiBidWlsdGluL2FwcGx5LmM6NDM3OQogbXNnaWQgIm1ha2Ugc3VyZSB0aGUgcGF0Y2ggaXMgYXBwbGljYWJsZSB0byB0aGUgY3VycmVudCBpbmRleCIKIG1zZ3N0ciAiIgotInN0ZWxsdCBzaWNoZXIsIGRhc3MgZGVyIFBhdGNoIGluIGRlciBha3R1ZWxsZW4gQmVyZWl0c3RlbGx1bmcgYW5nZXdlbmRldCAiCisic3RlbGx0IHNpY2hlciwgZGFzcyBkZXIgUGF0Y2ggaW4gZGVyIGFrdHVlbGxlbiBTdGFnaW5nLUFyZWEgYW5nZXdlbmRldCAiCiAid2VyZGVuIGthbm4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgwCisjOiBidWlsdGluL2FwcGx5LmM6NDM4MQogbXNnaWQgImFwcGx5IGEgcGF0Y2ggd2l0aG91dCB0b3VjaGluZyB0aGUgd29ya2luZyB0cmVlIgotbXNnc3RyICJ3ZW5kZXQgZWluZW4gUGF0Y2ggYW4sIG9obmUgw4RuZGVydW5nZW4gaW0gQXJiZWl0c3p3ZWlnIHZvcnp1bmVobWVuIgorbXNnc3RyICIiCisid2VuZGV0IGVpbmVuIFBhdGNoIGFuLCBvaG5lIMOEbmRlcnVuZ2VuIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyB2b3J6dW5laG1lbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgzCiBtc2dpZCAiYWxzbyBhcHBseSB0aGUgcGF0Y2ggKHVzZSB3aXRoIC0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiCiBtc2dzdHIgIndlbmRldCBkZW4gUGF0Y2ggYW4gKEJlbnV0enVuZyBtaXQgLS1zdGF0Ly0tc3VtbWFyeS8tLWNoZWNrKSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg1CiBtc2dpZCAiYXR0ZW1wdCB0aHJlZS13YXkgbWVyZ2UgaWYgYSBwYXRjaCBkb2VzIG5vdCBhcHBseSIKLW1zZ3N0ciAiIgotInZlcnN1Y2h0IDMtV2VnZS1adXNhbW1lbmbDvGhydW5nLCB3ZW5uIGRlciBQYXRjaCBuaWNodCBhbmdld2VuZGV0IHdlcmRlbiAiCi0ia29ubnRlIgorbXNnc3RyICJ2ZXJzdWNodCAzLVdlZ2UtTWVyZ2UsIHdlbm4gZGVyIFBhdGNoIG5pY2h0IGFuZ2V3ZW5kZXQgd2VyZGVuIGtvbm50ZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg3CiBtc2dpZCAiYnVpbGQgYSB0ZW1wb3JhcnkgaW5kZXggYmFzZWQgb24gZW1iZWRkZWQgaW5kZXggaW5mb3JtYXRpb24iCiBtc2dzdHIgIiIKLSJlcnN0ZWxsdCBlaW5lIHRlbXBvcsOkcmUgQmVyZWl0c3RlbGx1bmcgYmFzaWVyZW5kIGF1ZiBkZW4gaW50ZWdyaWVydGVuICIKLSJCZXJlaXRzdGVsbHVuZ3NpbmZvcm1hdGlvbmVuIgorImVyc3RlbGx0IGVpbmUgdGVtcG9yw6RyZSBTdGFnaW5nLUFyZWEgYmFzaWVyZW5kIGF1ZiBkZW4gaW50ZWdyaWVydGVuIFN0YWdpbmctIgorIkFyZWEtSW5mb3JtYXRpb25lbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODggYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDU2CisjOiBidWlsdGluL2FwcGx5LmM6NDM4OSBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjIKIG1zZ2lkICJwYXRocyBhcmUgc2VwYXJhdGVkIHdpdGggTlVMIGNoYXJhY3RlciIKIG1zZ3N0ciAiUGZhZGUgc2luZCBnZXRyZW5udCBkdXJjaCBOVUwgWmVpY2hlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCiBtc2dpZCAiZW5zdXJlIGF0IGxlYXN0IDxuPiBsaW5lcyBvZiBjb250ZXh0IG1hdGNoIgogbXNnc3RyICJzdGVsbHQgc2ljaGVyLCBkYXNzIG1pbmRlc3RlbnMgPG4+IFplaWxlbiBkZXMgS29udGV4dGVzIMO8YmVyZWluc3RpbW1lbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkzCiBtc2dpZCAiYWN0aW9uIgogbXNnc3RyICJBa3Rpb24iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkzCisjOiBidWlsdGluL2FwcGx5LmM6NDM5NAogbXNnaWQgImRldGVjdCBuZXcgb3IgbW9kaWZpZWQgbGluZXMgdGhhdCBoYXZlIHdoaXRlc3BhY2UgZXJyb3JzIgotbXNnc3RyICJlcm1pdHRlbHQgbmV1ZSBvZGVyIGdlw6RuZGVydGUgWmVpbGVuIGRpZSBGZWhsZXIgaW4gTGVlcnplaWNoZW4gaGFiZW4iCittc2dzdHIgImVybWl0dGVsdCBuZXVlIG9kZXIgZ2XDpG5kZXJ0ZSBaZWlsZW4gZGllIFdoaXRlc3BhY2UtRmVobGVyIGhhYmVuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5NiBidWlsdGluL2FwcGx5LmM6NDM5OQorIzogYnVpbHRpbi9hcHBseS5jOjQzOTcgYnVpbHRpbi9hcHBseS5jOjQ0MDAKIG1zZ2lkICJpZ25vcmUgY2hhbmdlcyBpbiB3aGl0ZXNwYWNlIHdoZW4gZmluZGluZyBjb250ZXh0IgotbXNnc3RyICJpZ25vcmllcnQgw4RuZGVydW5nZW4gaW4gTGVlcnplaWNoZW4gYmVpIGRlciBTdWNoZSBkZXMgS29udGV4dGVzIgorbXNnc3RyICJpZ25vcmllcnQgw4RuZGVydW5nZW4gaW0gV2hpdGVzcGFjZSBiZWkgZGVyIFN1Y2hlIGRlcyBLb250ZXh0ZXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDAyCisjOiBidWlsdGluL2FwcGx5LmM6NDQwMwogbXNnaWQgImFwcGx5IHRoZSBwYXRjaCBpbiByZXZlcnNlIgogbXNnc3RyICJ3ZW5kZXQgZGVuIFBhdGNoIGluIHVtZ2VrZWhydGVyIFJlaWhlbmZvbGdlIGFuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDUKIG1zZ2lkICJkb24ndCBleHBlY3QgYXQgbGVhc3Qgb25lIGxpbmUgb2YgY29udGV4dCIKIG1zZ3N0ciAiZXJ3YXJ0ZXQga2VpbmVuIEtvbnRleHQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA2CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNwogbXNnaWQgImxlYXZlIHRoZSByZWplY3RlZCBodW5rcyBpbiBjb3JyZXNwb25kaW5nICoucmVqIGZpbGVzIgogbXNnc3RyICIiCi0iaGludGVybMOkc3N0IHp1csO8Y2tnZXdpZXNlbmUgUGF0Y2gtQmVyZWljaGUgaW4gZGVuIGVudHNwcmVjaGVuZGVuICoucmVqICIKLSJEYXRlaWVuIgorImhpbnRlcmzDpHNzdCB6dXLDvGNrZ2V3aWVzZW5lIFBhdGNoLUJsw7Zja2UgaW4gZW50c3ByZWNoZW5kZW4gKi5yZWogRGF0ZWllbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MDgKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA5CiBtc2dpZCAiYWxsb3cgb3ZlcmxhcHBpbmcgaHVua3MiCi1tc2dzdHIgImVybGF1YnQgc2ljaCDDvGJlcmxhcHBlbmRlIFBhdGNoLUJlcmVpY2hlIgorbXNnc3RyICJlcmxhdWJ0IHNpY2ggw7xiZXJsYXBwZW5kZSBQYXRjaC1CbMO2Y2tlIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxMQorIzogYnVpbHRpbi9hcHBseS5jOjQ0MTIKIG1zZ2lkICJ0b2xlcmF0ZSBpbmNvcnJlY3RseSBkZXRlY3RlZCBtaXNzaW5nIG5ldy1saW5lIGF0IHRoZSBlbmQgb2YgZmlsZSIKIG1zZ3N0ciAidG9sZXJpZXJ0IGZlaGxlcmhhZnQgZXJrYW5udGVuIGZlaGxlbmRlbiBaZWlsZW51bWJydWNoIGFtIERhdGVpZW5kZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE1CiBtc2dpZCAiZG8gbm90IHRydXN0IHRoZSBsaW5lIGNvdW50cyBpbiB0aGUgaHVuayBoZWFkZXJzIgotbXNnc3RyICJ2ZXJ0cmF1dCBuaWNodCBkZW4gWmVpbGVubnVtbWVybiBpbSBLb3BmIGRlcyBQYXRjaC1CZXJlaWNoZXMiCittc2dzdHIgInZlcnRyYXV0IG5pY2h0IGRlbiBaZWlsZW5udW1tZXJuIGltIEtvcGYgZGVzIFBhdGNoLUJsb2NrcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE3CiBtc2dpZCAicm9vdCIKIG1zZ3N0ciAiV3VyemVsdmVyemVpY2huaXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE3CisjOiBidWlsdGluL2FwcGx5LmM6NDQxOAogbXNnaWQgInByZXBlbmQgPHJvb3Q+IHRvIGFsbCBmaWxlbmFtZXMiCiBtc2dzdHIgInN0ZWxsdCA8V3VyemVsdmVyemVpY2huaXM+IHZvciBhbGxlIERhdGVpbmFtZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDM5CisjOiBidWlsdGluL2FwcGx5LmM6NDQ0MAogbXNnaWQgIi0tM3dheSBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgotIkRpZSBPcHRpb24gLS0zd2F5IGthbm4gbmljaHQgYXXDn2VyaGFsYiBlaW5lcyBQcm9qZWt0YXJjaGl2cyB2ZXJ3ZW5kZXQgd2VyZGVuLiIKKyJEaWUgT3B0aW9uIC0tM3dheSBrYW5uIG5pY2h0IGF1w59lcmhhbGIgZWluZXMgUmVwb3NpdG9yaWVzIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ0NworIzogYnVpbHRpbi9hcHBseS5jOjQ0NDgKIG1zZ2lkICItLWluZGV4IG91dHNpZGUgYSByZXBvc2l0b3J5IgogbXNnc3RyICIiCi0iRGllIE9wdGlvbiAtLWluZGV4IGthbm4gbmljaHQgYXXDn2VyaGFsYiBlaW5lcyBQcm9qZWt0YXJjaGl2cyB2ZXJ3ZW5kZXQgIgotIndlcmRlbi4iCisiRGllIE9wdGlvbiAtLWluZGV4IGthbm4gbmljaHQgYXXDn2VyaGFsYiBlaW5lcyBSZXBvc2l0b3JpZXMgdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDUwCisjOiBidWlsdGluL2FwcGx5LmM6NDQ1MQogbXNnaWQgIi0tY2FjaGVkIG91dHNpZGUgYSByZXBvc2l0b3J5IgogbXNnc3RyICIiCi0iRGllIE9wdGlvbiAtLWNhY2hlZCBrYW5uIG5pY2h0IGF1w59lcmhhbGIgZWluZXMgUHJvamVrdGFyY2hpdnMgdmVyd2VuZGV0ICIKLSJ3ZXJkZW4uIgorIkRpZSBPcHRpb24gLS1jYWNoZWQga2FubiBuaWNodCBhdcOfZXJoYWxiIGVpbmVzIFJlcG9zaXRvcmllcyB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbid0IG9wZW4gcGF0Y2ggJyVzJyIKIG1zZ3N0ciAia2FubiBQYXRjaCAnJXMnIG5pY2h0IMO2ZmZuZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDgwCisjOiBidWlsdGluL2FwcGx5LmM6NDQ4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJzcXVlbGNoZWQgJWQgd2hpdGVzcGFjZSBlcnJvciIKIG1zZ2lkX3BsdXJhbCAic3F1ZWxjaGVkICVkIHdoaXRlc3BhY2UgZXJyb3JzIgotbXNnc3RyWzBdICJ1bnRlcmRyw7xja3RlICVkIEZlaGxlciBpbiBMZWVyemVpY2hlbiIKLW1zZ3N0clsxXSAidW50ZXJkcsO8Y2t0ZSAlZCBGZWhsZXIgaW4gTGVlcnplaWNoZW4iCittc2dzdHJbMF0gInVudGVyZHLDvGNrdGUgJWQgV2hpdGVzcGFjZS1GZWhsZXIiCittc2dzdHJbMV0gInVudGVyZHLDvGNrdGUgJWQgV2hpdGVzcGFjZS1GZWhsZXIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDg2IGJ1aWx0aW4vYXBwbHkuYzo0NDk2CisjOiBidWlsdGluL2FwcGx5LmM6NDQ4NyBidWlsdGluL2FwcGx5LmM6NDQ5NwogIywgYy1mb3JtYXQKIG1zZ2lkICIlZCBsaW5lIGFkZHMgd2hpdGVzcGFjZSBlcnJvcnMuIgogbXNnaWRfcGx1cmFsICIlZCBsaW5lcyBhZGQgd2hpdGVzcGFjZSBlcnJvcnMuIgotbXNnc3RyWzBdICIlZCBaZWlsZSBmw7xndCBGZWhsZXIgaW4gTGVlcnplaWNoZW4gaGluenUuIgotbXNnc3RyWzFdICIlZCBaZWlsZW4gZsO8Z2VuIEZlaGxlciBpbiBMZWVyemVpY2hlbiBoaW56dS4iCittc2dzdHJbMF0gIiVkIFplaWxlIGbDvGd0IFdoaXRlc3BhY2UtRmVobGVyIGhpbnp1LiIKK21zZ3N0clsxXSAiJWQgWmVpbGVuIGbDvGdlbiBXaGl0ZXNwYWNlLUZlaGxlciBoaW56dS4iCiAKICM6IGJ1aWx0aW4vYXJjaGl2ZS5jOjE3CiAjLCBjLWZvcm1hdApAQCAtMjQzNCwxMDYgKzI1MDYsMTA2IEBACiAKICM6IGJ1aWx0aW4vYmlzZWN0LS1oZWxwZXIuYzoxOQogbXNnaWQgInVwZGF0ZSBCSVNFQ1RfSEVBRCBpbnN0ZWFkIG9mIGNoZWNraW5nIG91dCB0aGUgY3VycmVudCBjb21taXQiCi1tc2dzdHIgImFrdHVhbGlzaWVydCBCSVNFQ1RfSEVBRCwgYW5zdGF0dCBkaWUgYWt0dWVsbGUgVmVyc2lvbiBhdXN6dWNoZWNrZW4iCittc2dzdHIgImFrdHVhbGlzaWVydCBCSVNFQ1RfSEVBRCwgYW5zdGF0dCBkZW4gYWt0dWVsbGVuIENvbW1pdCBhdXN6dWNoZWNrZW4iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyNQorIzogYnVpbHRpbi9ibGFtZS5jOjI2CiBtc2dpZCAiZ2l0IGJsYW1lIFtvcHRpb25zXSBbcmV2LW9wdHNdIFtyZXZdIFstLV0gZmlsZSIKIG1zZ3N0ciAiZ2l0IGJsYW1lIFtPcHRpb25lbl0gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIERhdGVpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MzAKKyM6IGJ1aWx0aW4vYmxhbWUuYzozMQogbXNnaWQgIltyZXYtb3B0c10gYXJlIGRvY3VtZW50ZWQgaW4gZ2l0LXJldi1saXN0KDEpIgogbXNnc3RyICJbcmV2LW9wdHNdIHNpbmQgZG9rdW1lbnRpZXJ0IGluIGdpdC1yZXYtbGlzdCgxKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc2CiBtc2dpZCAiU2hvdyBibGFtZSBlbnRyaWVzIGFzIHdlIGZpbmQgdGhlbSwgaW5jcmVtZW50YWxseSIKIG1zZ3N0ciAiWmVpZ3QgXCJibGFtZVwiLUVpbnRyw6RnZSBzY2hyaXR0d2Vpc2UsIHfDpGhyZW5kIHdpciBzaWUgZ2VuZXJpZXJlbiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc3CiBtc2dpZCAiU2hvdyBibGFuayBTSEEtMSBmb3IgYm91bmRhcnkgY29tbWl0cyAoRGVmYXVsdDogb2ZmKSIKLW1zZ3N0ciAiWmVpZ3QgbGVlcmUgU0hBLTEgZsO8ciBHcmVuenZlcnNpb25lbiAoU3RhbmRhcmQ6IGF1cykiCittc2dzdHIgIlplaWd0IGxlZXJlIFNIQS0xIGbDvHIgR3JlbnotQ29tbWl0cyAoU3RhbmRhcmQ6IGF1cykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU3CisjOiBidWlsdGluL2JsYW1lLmM6MjI3OAogbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKLW1zZ3N0ciAiQmVoYW5kZWx0IFVyc3BydW5nc3ZlcnNpb25lbiBuaWNodCBhbHMgR3JlbnplbiAoU3RhbmRhcmQ6IGF1cykiCittc2dzdHIgIkJlaGFuZGVsdCBVcnNwcnVuZ3MtQ29tbWl0IG5pY2h0IGFscyBHcmVuemVuIChTdGFuZGFyZDogYXVzKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTgKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc5CiBtc2dpZCAiU2hvdyB3b3JrIGNvc3Qgc3RhdGlzdGljcyIKIG1zZ3N0ciAiWmVpZ3QgU3RhdGlzdGlrZW4genVtIEFyYmVpdHNhdWZ3YW5kIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1OQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODAKIG1zZ2lkICJTaG93IG91dHB1dCBzY29yZSBmb3IgYmxhbWUgZW50cmllcyIKIG1zZ3N0ciAiWmVpZ3QgQXVzZ2FiZWJld2VydHVuZyBmw7xyIFwiYmxhbWVcIi1FaW50csOkZ2UiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYwCisjOiBidWlsdGluL2JsYW1lLmM6MjI4MQogbXNnaWQgIlNob3cgb3JpZ2luYWwgZmlsZW5hbWUgKERlZmF1bHQ6IGF1dG8pIgogbXNnc3RyICJaZWlndCB1cnNwcsO8bmdsaWNoZW4gRGF0ZWluYW1lbiAoU3RhbmRhcmQ6IGF1dG8pIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODIKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGxpbmVudW1iZXIgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlplaWd0IHVyc3Byw7xuZ2xpY2hlIFplaWxlbm51bW1lciAoU3RhbmRhcmQ6IGF1cykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYyCisjOiBidWlsdGluL2JsYW1lLmM6MjI4MwogbXNnaWQgIlNob3cgaW4gYSBmb3JtYXQgZGVzaWduZWQgZm9yIG1hY2hpbmUgY29uc3VtcHRpb24iCiBtc2dzdHIgIkFuemVpZ2UgaW4gZWluZW0gRm9ybWF0IGbDvHIgbWFzY2hpbmVsbGUgQXVzd2VydHVuZyIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg0CiBtc2dpZCAiU2hvdyBwb3JjZWxhaW4gZm9ybWF0IHdpdGggcGVyLWxpbmUgY29tbWl0IGluZm9ybWF0aW9uIgogbXNnc3RyICIiCi0iQW56ZWlnZSBpbiBGb3JtYXQgZsO8ciBGcmVtZHByb2dyYW1tZSBtaXQgVmVyc2lvbnNpbmZvcm1hdGlvbmVuIHBybyBaZWlsZSIKKyJBbnplaWdlIGluIEZvcm1hdCBmw7xyIEZyZW1kcHJvZ3JhbW1lIG1pdCBDb21taXQtSW5mb3JtYXRpb25lbiBwcm8gWmVpbGUiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY0CisjOiBidWlsdGluL2JsYW1lLmM6MjI4NQogbXNnaWQgIlVzZSB0aGUgc2FtZSBvdXRwdXQgbW9kZSBhcyBnaXQtYW5ub3RhdGUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIkJlbnV0enQgZGVuIGdsZWljaGVuIEF1c2dhYmVtb2R1cyB3aWUgXCJnaXQtYW5ub3RhdGVcIiAoU3RhbmRhcmQ6IGF1cykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY1CisjOiBidWlsdGluL2JsYW1lLmM6MjI4NgogbXNnaWQgIlNob3cgcmF3IHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiWmVpZ3QgdW5iZWFyYmVpdGV0ZW4gWmVpdHN0ZW1wZWwgKFN0YW5kYXJkOiBhdXMpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyODcKIG1zZ2lkICJTaG93IGxvbmcgY29tbWl0IFNIQTEgKERlZmF1bHQ6IG9mZikiCi1tc2dzdHIgIlplaWd0IGxhbmdlbiBWZXJzaW9ucy1TSEExIChTdGFuZGFyZDogYXVzKSIKK21zZ3N0ciAiWmVpZ3QgbGFuZ2VuIENvbW1pdC1TSEExIChTdGFuZGFyZDogYXVzKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg4CiBtc2dpZCAiU3VwcHJlc3MgYXV0aG9yIG5hbWUgYW5kIHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVW50ZXJkcsO8Y2t0IGRlbiBOYW1lbiBkZXMgQXV0b3JzIHVuZCBkZW4gWmVpdHN0ZW1wZWwgKFN0YW5kYXJkOiBhdXMpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2OAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODkKIG1zZ2lkICJTaG93IGF1dGhvciBlbWFpbCBpbnN0ZWFkIG9mIG5hbWUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlplaWd0IGFuc3RhdHQgZGVzIE5hbWVucyBkaWUgRW1haWwtQWRyZXNzZSBkZXMgQXV0b3JzIChTdGFuZGFyZDogYXVzKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkwCiBtc2dpZCAiSWdub3JlIHdoaXRlc3BhY2UgZGlmZmVyZW5jZXMiCi1tc2dzdHIgIklnbm9yaWVydCBVbnRlcnNjaGllZGUgaW4gTGVlcnplaWNoZW4iCittc2dzdHIgIklnbm9yaWVydCBVbnRlcnNjaGllZGUgaW0gV2hpdGVzcGFjZSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkxCiBtc2dpZCAiU3BlbmQgZXh0cmEgY3ljbGVzIHRvIGZpbmQgYmV0dGVyIG1hdGNoIgogbXNnc3RyICJhcmJlaXRlIGzDpG5nZXIsIHVtIGJlc3NlcmUgw5xiZXJlaW5zdGltbXVuZ2VuIHp1IGZpbmRlbiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCiBtc2dpZCAiVXNlIHJldmlzaW9ucyBmcm9tIDxmaWxlPiBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2l0LXJldi1saXN0IgotbXNnc3RyICJCZW51dHp0IFJldmlzaW9uZW4gdm9uIDxEYXRlaT4gYW5zdGF0dCBcImdpdC1yZXYtbGlzdFwiIGF1Znp1cnVmZW4iCittc2dzdHIgIkJlbnV0enQgQ29tbWl0cyB2b24gPERhdGVpPiBhbnN0YXR0IFwiZ2l0LXJldi1saXN0XCIgYXVmenVydWZlbiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzCiBtc2dpZCAiVXNlIDxmaWxlPidzIGNvbnRlbnRzIGFzIHRoZSBmaW5hbCBpbWFnZSIKIG1zZ3N0ciAiQmVudXR6dCBJbmhhbHRlIGRlciA8RGF0ZWk+ZW4gYWxzIGVudGfDvGx0aWdlcyBBYmJpbGQiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzczIGJ1aWx0aW4vYmxhbWUuYzoyMzc0CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NCBidWlsdGluL2JsYW1lLmM6MjI5NQogbXNnaWQgInNjb3JlIgogbXNnc3RyICJCZXdlcnR1bmciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzczCisjOiBidWlsdGluL2JsYW1lLmM6MjI5NAogbXNnaWQgIkZpbmQgbGluZSBjb3BpZXMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIkZpbmRldCBrb3BpZXJ0ZSBaZWlsZW4gaW5uZXJoYWxiIG9kZXIgendpc2NoZW4gRGF0ZWllbiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk1CiBtc2dpZCAiRmluZCBsaW5lIG1vdmVtZW50cyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAiRmluZGV0IHZlcnNjaG9iZW5lIFplaWxlbiBpbm5lcmhhbGIgb2RlciB6d2lzY2hlbiBEYXRlaWVuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTYKIG1zZ2lkICJuLG0iCiBtc2dzdHIgIm4sbSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CiBtc2dpZCAiUHJvY2VzcyBvbmx5IGxpbmUgcmFuZ2UgbixtLCBjb3VudGluZyBmcm9tIDEiCiBtc2dzdHIgIlZlcmFyYmVpdGV0IG51ciBaZWlsZW4gaW0gQmVyZWljaCBuLG0sIGdlesOkaGx0IHZvbiAxIgogCkBAIC0yNTQzLDE1ICsyNjE1LDE1IEBACiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjUKIG1zZ2lkICJnaXQgYnJhbmNoIFtvcHRpb25zXSBbLWxdIFstZl0gPGJyYW5jaG5hbWU+IFs8c3RhcnQtcG9pbnQ+XSIKLW1zZ3N0ciAiZ2l0IGJyYW5jaCBbT3B0aW9uZW5dIFstbF0gWy1mXSA8WndlaWduYW1lPiBbPFN0YXJ0cHVua3Q+XSIKK21zZ3N0ciAiZ2l0IGJyYW5jaCBbT3B0aW9uZW5dIFstbF0gWy1mXSA8QnJhbmNobmFtZT4gWzxTdGFydHB1bmt0Pl0iCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjYKIG1zZ2lkICJnaXQgYnJhbmNoIFtvcHRpb25zXSBbLXJdICgtZCB8IC1EKSA8YnJhbmNobmFtZT4uLi4iCi1tc2dzdHIgImdpdCBicmFuY2ggW09wdGlvbmVuXSBbLXJdICgtZCB8IC1EKSA8WndlaWduYW1lPi4uLiIKK21zZ3N0ciAiZ2l0IGJyYW5jaCBbT3B0aW9uZW5dIFstcl0gKC1kIHwgLUQpIDxCcmFuY2huYW1lPi4uLiIKIAogIzogYnVpbHRpbi9icmFuY2guYzoyNwogbXNnaWQgImdpdCBicmFuY2ggW29wdGlvbnNdICgtbSB8IC1NKSBbPG9sZGJyYW5jaD5dIDxuZXdicmFuY2g+IgotbXNnc3RyICJnaXQgYnJhbmNoIFtPcHRpb25lbl0gKC1tIHwgLU0pIFs8YWx0ZXJad2VpZz5dIDxuZXVlclp3ZWlnPiIKK21zZ3N0ciAiZ2l0IGJyYW5jaCBbT3B0aW9uZW5dICgtbSB8IC1NKSBbPGFsdGVyQnJhbmNoPl0gPG5ldWVyQnJhbmNoPiIKIAogIzogYnVpbHRpbi9icmFuY2guYzoxNTAKICMsIGMtZm9ybWF0CkBAIC0yNTU5LDkgKzI2MzEsOCBAQAogImRlbGV0aW5nIGJyYW5jaCAnJXMnIHRoYXQgaGFzIGJlZW4gbWVyZ2VkIHRvXG4iCiAiICAgICAgICAgJyVzJywgYnV0IG5vdCB5ZXQgbWVyZ2VkIHRvIEhFQUQuIgogbXNnc3RyICIiCi0iZW50ZmVybmUgWndlaWcgJyVzJywgZGVyIHp1c2FtbWVuZ2Vmw7xocnQgd3VyZGUgbWl0XG4iCi0iICAgICAgICAgJyVzJywgYWJlciBub2NoIG5pY2h0IG1pdCBkZXIgWndlaWdzcGl0emUgKEhFQUQpIHp1c2FtbWVuZ2Vmw7xocnQgIgotInd1cmRlLiIKKyJlbnRmZXJuZSBCcmFuY2ggJyVzJywgZGVyIHp1c2FtbWVuZ2Vmw7xocnQgd3VyZGUgbWl0XG4iCisiICAgICAgICAgJyVzJywgYWJlciBub2NoIG5pY2h0IG1pdCBIRUFEIHp1c2FtbWVuZ2Vmw7xocnQgd3VyZGUuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjE1NAogIywgYy1mb3JtYXQKQEAgLTI1NjksMTMgKzI2NDAsMTMgQEAKICJub3QgZGVsZXRpbmcgYnJhbmNoICclcycgdGhhdCBpcyBub3QgeWV0IG1lcmdlZCB0b1xuIgogIiAgICAgICAgICclcycsIGV2ZW4gdGhvdWdoIGl0IGlzIG1lcmdlZCB0byBIRUFELiIKIG1zZ3N0ciAiIgotImVudGZlcm5lIFp3ZWlnICclcycgbmljaHQsIGRlciBub2NoIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnQgd3VyZGUgbWl0XG4iCi0iICAgICAgICAgJyVzJywgb2J3b2hsIGVyIG1pdCBkZXIgWndlaWdzcGl0emUgKEhFQUQpIHp1c2FtbWVuZ2Vmw7xocnQgd3VyZGUuIgorImVudGZlcm5lIEJyYW5jaCAnJXMnIG5pY2h0LCBkZXIgbm9jaCBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0IHd1cmRlIG1pdFxuIgorIiAgICAgICAgICclcycsIG9id29obCBlciBtaXQgSEVBRCB6dXNhbW1lbmdlZsO8aHJ0IHd1cmRlLiIKIAogIzogYnVpbHRpbi9icmFuY2guYzoxNjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGRuJ3QgbG9vayB1cCBjb21taXQgb2JqZWN0IGZvciAnJXMnIgotbXNnc3RyICJLb25udGUgVmVyc2lvbnNvYmpla3QgZsO8ciAnJXMnIG5pY2h0IG5hY2hzY2hsYWdlbi4iCittc2dzdHIgIktvbm50ZSBDb21taXQtT2JqZWt0IGbDvHIgJyVzJyBuaWNodCBuYWNoc2NobGFnZW4uIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjE3MgogIywgYy1mb3JtYXQKQEAgLTI1ODMsOCArMjY1NCw4IEBACiAiVGhlIGJyYW5jaCAnJXMnIGlzIG5vdCBmdWxseSBtZXJnZWQuXG4iCiAiSWYgeW91IGFyZSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBpdCwgcnVuICdnaXQgYnJhbmNoIC1EICVzJy4iCiBtc2dzdHIgIiIKLSJEZXIgWndlaWcgJyVzJyBpc3QgbmljaHQgdm9sbHN0w6RuZGlnIHp1c2FtbWVuZ2Vmw7xocnQuXG4iCi0iV2VubiBTaWUgc2ljaGVyIHNpbmQgZGllc2VuIFp3ZWlnIHp1IGVudGZlcm5lbiwgZsO8aHJlbiBTaWUgJ2dpdCBicmFuY2ggLUQgIgorIkRlciBCcmFuY2ggJyVzJyBpc3QgbmljaHQgdm9sbHN0w6RuZGlnIHp1c2FtbWVuZ2Vmw7xocnQuXG4iCisiV2VubiBTaWUgc2ljaGVyIHNpbmQgZGllc2VuIEJyYW5jaCB6dSBlbnRmZXJuZW4sIGbDvGhyZW4gU2llICdnaXQgYnJhbmNoIC1EICIKICIlcycgYXVzLiIKIAogIzogYnVpbHRpbi9icmFuY2guYzoxODUKQEAgLTI1OTcsNDggKzI2NjgsNDggQEAKIAogIzogYnVpbHRpbi9icmFuY2guYzoyMTkKIG1zZ2lkICJDb3VsZG4ndCBsb29rIHVwIGNvbW1pdCBvYmplY3QgZm9yIEhFQUQiCi1tc2dzdHIgIktvbm50ZSBWZXJzaW9uc29iamVrdCBmw7xyIFp3ZWlnc3BpdHplIChIRUFEKSBuaWNodCBuYWNoc2NobGFnZW4uIgorbXNnc3RyICJLb25udGUgQ29tbWl0LU9iamVrdCBmw7xyIEhFQUQgbmljaHQgbmFjaHNjaGxhZ2VuLiIKIAogIzogYnVpbHRpbi9icmFuY2guYzoyMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRlbGV0ZSB0aGUgYnJhbmNoICclcycgd2hpY2ggeW91IGFyZSBjdXJyZW50bHkgb24uIgogbXNnc3RyICIiCi0iS2FubiBad2VpZyAnJXMnIG5pY2h0IGVudGZlcm5lbiwgZGEgU2llIHNpY2ggZ2VyYWRlIGF1ZiBkaWVzZW0gYmVmaW5kZW4uIgorIkthbm4gQnJhbmNoICclcycgbmljaHQgZW50ZmVybmVuLCBkYSBTaWUgc2ljaCBnZXJhZGUgYXVmIGRpZXNlbSBiZWZpbmRlbi4iCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlbW90ZSBicmFuY2ggJyVzJyBub3QgZm91bmQuIgotbXNnc3RyICJleHRlcm5lciBad2VpZyAnJXMnIG5pY2h0IGdlZnVuZGVuIgorbXNnc3RyICJSZW1vdGUtQnJhbmNoICclcycgbmljaHQgZ2VmdW5kZW4iCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJyYW5jaCAnJXMnIG5vdCBmb3VuZC4iCi1tc2dzdHIgIlp3ZWlnICclcycgbmljaHQgZ2VmdW5kZW4uIgorbXNnc3RyICJCcmFuY2ggJyVzJyBuaWNodCBnZWZ1bmRlbi4iCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIGRlbGV0aW5nIHJlbW90ZSBicmFuY2ggJyVzJyIKLW1zZ3N0ciAiRmVobGVyIGJlaW0gRW50ZmVybmVuIGRlcyBleHRlcm5lbiBad2VpZ2VzICclcyciCittc2dzdHIgIkZlaGxlciBiZWltIEVudGZlcm5lbiBkZXMgUmVtb3RlLUJyYW5jaGVzICclcyciCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIGRlbGV0aW5nIGJyYW5jaCAnJXMnIgotbXNnc3RyICJGZWhsZXIgYmVpbSBFbnRmZXJuZW4gZGVzIFp3ZWlnZXMgJyVzJyIKK21zZ3N0ciAiRmVobGVyIGJlaW0gRW50ZmVybmVuIGRlcyBCcmFuY2hlcyAnJXMnIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjI2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIHJlbW90ZSBicmFuY2ggJXMgKHdhcyAlcykuXG4iCi1tc2dzdHIgIkV4dGVybmVyIFp3ZWlnICVzIGVudGZlcm50ICh3YXIgJXMpLlxuIgorbXNnc3RyICJSZW1vdGUtQnJhbmNoICVzIGVudGZlcm50ICh3YXIgJXMpLlxuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjI2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIGJyYW5jaCAlcyAod2FzICVzKS5cbiIKLW1zZ3N0ciAiWndlaWcgJXMgZW50ZmVybnQgKHdhciAlcykuXG4iCittc2dzdHIgIkJyYW5jaCAlcyBlbnRmZXJudCAod2FyICVzKS5cbiIKIAogIzogYnVpbHRpbi9icmFuY2guYzozNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiYnJhbmNoICclcycgZG9lcyBub3QgcG9pbnQgYXQgYSBjb21taXQiCi1tc2dzdHIgIlp3ZWlnICclcycgemVpZ3QgYXVmIGtlaW5lIFZlcnNpb24iCittc2dzdHIgIkJyYW5jaCAnJXMnIHplaWd0IGF1ZiBrZWluZW4gQ29tbWl0IgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjQ1MwogIywgYy1mb3JtYXQKQEAgLTI2NzcsMTIgKzI3NDgsMTIgQEAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6NTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIihubyBicmFuY2gsIHJlYmFzaW5nICVzKSIKLW1zZ3N0ciAiKGtlaW4gWndlaWcsIE5ldWF1ZmJhdSB2b24gWndlaWcgJXMgaW0gR2FuZ2UpIgorbXNnc3RyICIoa2VpbiBCcmFuY2gsIFJlYmFzZSB2b24gQnJhbmNoICVzIGltIEdhbmdlKSIKIAogIzogYnVpbHRpbi9icmFuY2guYzo1ODUKICMsIGMtZm9ybWF0CiBtc2dpZCAiKG5vIGJyYW5jaCwgYmlzZWN0IHN0YXJ0ZWQgb24gJXMpIgotbXNnc3RyICIoa2VpbiBad2VpZywgTmV1YXVmYmF1IGJlZ29ubmVuIGJlaSAlcykiCittc2dzdHIgIihrZWluIEJyYW5jaCwgYmluw6RyZSBTdWNoZSBiZWdvbm5lbiBiZWkgJXMpIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjU4OAogIywgYy1mb3JtYXQKQEAgLTI2OTEsMTIgKzI3NjIsMTIgQEAKIAogIzogYnVpbHRpbi9icmFuY2guYzo1OTEKIG1zZ2lkICIobm8gYnJhbmNoKSIKLW1zZ3N0ciAiKGtlaW4gWndlaWcpIgorbXNnc3RyICIoa2VpbiBCcmFuY2gpIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjYzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKLW1zZ3N0ciAiT2JqZWt0ICclcycgemVpZ3QgYXVmIGtlaW5lIFZlcnNpb24iCittc2dzdHIgIk9iamVrdCAnJXMnIHplaWd0IGF1ZiBrZWluZW4gQ29tbWl0IgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjY2OQogbXNnaWQgInNvbWUgcmVmcyBjb3VsZCBub3QgYmUgcmVhZCIKQEAgLTI3MDUsMzEgKzI3NzYsMzEgQEAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6NjgyCiBtc2dpZCAiY2Fubm90IHJlbmFtZSB0aGUgY3VycmVudCBicmFuY2ggd2hpbGUgbm90IG9uIGFueS4iCiBtc2dzdHIgIiIKLSJLYW5uIGFrdHVlbGxlbiBad2VpZyBuaWNodCB1bWJlbmVubmVuLCBzb2xhbmdlIFNpZSBzaWNoIGF1ZiBrZWluZW0gYmVmaW5kZW4uIgorIkthbm4gYWt0dWVsbGVuIEJyYW5jaCBuaWNodCB1bWJlbmVubmVuLCBzb2xhbmdlIFNpZSBzaWNoIGF1ZiBrZWluZW0gYmVmaW5kZW4uIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjY5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGJyYW5jaCBuYW1lOiAnJXMnIgotbXNnc3RyICJVbmfDvGx0aWdlciBad2VpZy1OYW1lOiAnJXMnIgorbXNnc3RyICJVbmfDvGx0aWdlciBCcmFuY2huYW1lOiAnJXMnIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjcwNwogbXNnaWQgIkJyYW5jaCByZW5hbWUgZmFpbGVkIgotbXNnc3RyICJVbWJlbmVubnVuZyBkZXMgWndlaWdlcyBmZWhsZ2VzY2hsYWdlbiIKK21zZ3N0ciAiVW1iZW5lbm51bmcgZGVzIEJyYW5jaGVzIGZlaGxnZXNjaGxhZ2VuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjcxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWVkIGEgbWlzbmFtZWQgYnJhbmNoICclcycgYXdheSIKLW1zZ3N0ciAiZmFsc2NoIGJlbmFubnRlbiBad2VpZyAnJXMnIHVtYmVuYW5udCIKK21zZ3N0ciAiZmFsc2NoIGJlbmFubnRlbiBCcmFuY2ggJyVzJyB1bWJlbmFubnQiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6NzE1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCByZW5hbWVkIHRvICVzLCBidXQgSEVBRCBpcyBub3QgdXBkYXRlZCEiCi1tc2dzdHIgIlp3ZWlnIHVtYmVuYW5udCB6dSAlcywgYWJlciBad2VpZ3NwaXR6ZSAoSEVBRCkgaXN0IG5pY2h0IGFrdHVhbGlzaWVydCEiCittc2dzdHIgIkJyYW5jaCB1bWJlbmFubnQgenUgJXMsIGFiZXIgSEVBRCBpc3QgbmljaHQgYWt0dWFsaXNpZXJ0ISIKIAogIzogYnVpbHRpbi9icmFuY2guYzo3MjIKIG1zZ2lkICJCcmFuY2ggaXMgcmVuYW1lZCwgYnV0IHVwZGF0ZSBvZiBjb25maWctZmlsZSBmYWlsZWQiCiBtc2dzdHIgIiIKLSJad2VpZyBpc3QgdW1iZW5hbm50LCBhYmVyIGRpZSBBa3R1YWxpc2llcnVuZyBkZXIgS29uZmlndXJhdGlvbnNkYXRlaSBpc3QgIgorIkJyYW5jaCBpc3QgdW1iZW5hbm50LCBhYmVyIGRpZSBBa3R1YWxpc2llcnVuZyBkZXIgS29uZmlndXJhdGlvbnNkYXRlaSBpc3QgIgogImZlaGxnZXNjaGxhZ2VuLiIKIAogIzogYnVpbHRpbi9icmFuY2guYzo3MzcKQEAgLTI3NDAsNyArMjgxMSw3IEBACiAjOiBidWlsdGluL2JyYW5jaC5jOjc2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgYnJhbmNoIGRlc2NyaXB0aW9uIHRlbXBsYXRlOiAlcyIKLW1zZ3N0ciAiS29ubnRlIEJlc2NocmVpYnVuZ3N2b3JsYWdlIGbDvHIgWndlaWcgbmljaHQgc2NocmVpYmVuOiAlcyIKK21zZ3N0ciAiS29ubnRlIEJlc2NocmVpYnVuZ3N2b3JsYWdlIGbDvHIgQnJhbmNoIG5pY2h0IHNjaHJlaWJlbjogJXMiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkxCiBtc2dpZCAiR2VuZXJpYyBvcHRpb25zIgpAQCAtMjc0OCw3ICsyODE5LDcgQEAKIAogIzogYnVpbHRpbi9icmFuY2guYzo3OTMKIG1zZ2lkICJzaG93IGhhc2ggYW5kIHN1YmplY3QsIGdpdmUgdHdpY2UgZm9yIHVwc3RyZWFtIGJyYW5jaCIKLW1zZ3N0ciAiWmVpZ3QgSGFzaCB1bmQgQmV0cmVmZjsgLXZ2OiB6dXPDpHR6bGljaCBleHRlcm5lbiDDnGJlcm5haG1lendlaWciCittc2dzdHIgIlplaWd0IEhhc2ggdW5kIEJldHJlZmY7IC12djogenVzw6R0emxpY2ggVXBzdHJlYW0tQnJhbmNoIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjc5NAogbXNnaWQgInN1cHByZXNzIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMiCkBAIC0yNzYwLDcgKzI4MzEsNyBAQAogCiAjOiBidWlsdGluL2JyYW5jaC5jOjc5NwogbXNnaWQgImNoYW5nZSB1cHN0cmVhbSBpbmZvIgotbXNnc3RyICLDpG5kZXJ0IEluZm9ybWF0aW9uZW4genVtIGV4dGVybmVuIMOcYmVybmFobWV6d2VpZyIKK21zZ3N0ciAiw6RuZGVydCBJbmZvcm1hdGlvbmVuIHp1bSBVcHN0cmVhbS1CcmFuY2giCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCiBtc2dpZCAidXNlIGNvbG9yZWQgb3V0cHV0IgpAQCAtMjc2OCwxNyArMjgzOSwxNyBAQAogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgwMgogbXNnaWQgImFjdCBvbiByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiCi1tc2dzdHIgIndpcmt0IGF1ZiBleHRlcm5lIMOcYmVybmFobWV6d2VpZ2UiCittc2dzdHIgIndpcmt0IGF1ZiBSZW1vdGUtVHJhY2tpbmctQnJhbmNoZXMiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA1IGJ1aWx0aW4vYnJhbmNoLmM6ODExIGJ1aWx0aW4vYnJhbmNoLmM6ODMyCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjEzNjggYnVpbHRpbi9jb21taXQuYzoxMzY5Ci0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzAgYnVpbHRpbi9jb21taXQuYzoxMzcxIGJ1aWx0aW4vdGFnLmM6NDY4CisjOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjE0MzMgYnVpbHRpbi9jb21taXQuYzoxNDM0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzUgYnVpbHRpbi9jb21taXQuYzoxNDM2IGJ1aWx0aW4vdGFnLmM6NDY4CiBtc2dpZCAiY29tbWl0IgotbXNnc3RyICJWZXJzaW9uIgorbXNnc3RyICJDb21taXQiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA2IGJ1aWx0aW4vYnJhbmNoLmM6ODEyCiBtc2dpZCAicHJpbnQgb25seSBicmFuY2hlcyB0aGF0IGNvbnRhaW4gdGhlIGNvbW1pdCIKLW1zZ3N0ciAiZ2lidCBudXIgWndlaWdlIGF1cywgd2VsY2hlIGRpZXNlIFZlcnNpb24gYmVpbmhhbHRlbiIKK21zZ3N0ciAiZ2lidCBudXIgQnJhbmNoZXMgYXVzLCB3ZWxjaGUgZGllc2VuIENvbW1pdCBiZWluaGFsdGVuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgxOAogbXNnaWQgIlNwZWNpZmljIGdpdC1icmFuY2ggYWN0aW9uczoiCkBAIC0yNzg2LDYwICsyODU3LDYwIEBACiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE5CiBtc2dpZCAibGlzdCBib3RoIHJlbW90ZS10cmFja2luZyBhbmQgbG9jYWwgYnJhbmNoZXMiCi1tc2dzdHIgImxpc3RldCBleHRlcm5lIMOcYmVybmFobWV6d2VpZ2UgdW5kIGxva2FsZSBad2VpZ2UgYXVmIgorbXNnc3RyICJsaXN0ZXQgUmVtb3RlLVRyYWNraW5nIHVuZCBsb2thbGUgQnJhbmNoZXMgYXVmIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgyMQogbXNnaWQgImRlbGV0ZSBmdWxseSBtZXJnZWQgYnJhbmNoIgotbXNnc3RyICJlbnRmZXJudCB2b2xsc3TDpG5kaWcgenVzYW1tZW5nZWbDvGhydGVuIFp3ZWlnIgorbXNnc3RyICJlbnRmZXJudCB2b2xsc3TDpG5kaWcgenVzYW1tZW5nZWbDvGhydGVuIEJyYW5jaCIKIAogIzogYnVpbHRpbi9icmFuY2guYzo4MjIKIG1zZ2lkICJkZWxldGUgYnJhbmNoIChldmVuIGlmIG5vdCBtZXJnZWQpIgotbXNnc3RyICJsw7ZzY2h0IFp3ZWlnIChhdWNoIHdlbm4gbmljaHQgenVzYW1tZW5nZWbDvGhydCkiCittc2dzdHIgImzDtnNjaHQgQnJhbmNoIChhdWNoIHdlbm4gbmljaHQgenVzYW1tZW5nZWbDvGhydCkiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIzCiBtc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2ggYW5kIGl0cyByZWZsb2ciCi1tc2dzdHIgInZlcnNjaGllYnQvYmVuZW5udCBlaW5lbiBad2VpZyB1bmQgZGVzc2VuIFJlZmVyZW56cHJvdG9rb2xsIHVtIgorbXNnc3RyICJ2ZXJzY2hpZWJ0L2JlbmVubnQgZWluZW4gQnJhbmNoIHVuZCBkZXNzZW4gUmVmbG9nIHVtIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgyNAogbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoLCBldmVuIGlmIHRhcmdldCBleGlzdHMiCiBtc2dzdHIgIiIKLSJ2ZXJzY2hpZWJ0L2JlbmVubnQgZWluZW4gWndlaWcgdW0sIGF1Y2ggd2VubiBkYXMgWmllbCBiZXJlaXRzIGV4aXN0aWVydCIKKyJ2ZXJzY2hpZWJ0L2JlbmVubnQgZWluZW4gQnJhbmNoIHVtLCBhdWNoIHdlbm4gZGFzIFppZWwgYmVyZWl0cyBleGlzdGllcnQiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI1CiBtc2dpZCAibGlzdCBicmFuY2ggbmFtZXMiCi1tc2dzdHIgImxpc3RldCBad2VpZ25hbWVuIGF1ZiIKK21zZ3N0ciAibGlzdGV0IEJyYW5jaG5hbWVuIGF1ZiIKIAogIzogYnVpbHRpbi9icmFuY2guYzo4MjYKIG1zZ2lkICJjcmVhdGUgdGhlIGJyYW5jaCdzIHJlZmxvZyIKLW1zZ3N0ciAiZXJ6ZXVndCBkYXMgUmVmZXJlbnpwcm90b2tvbGwgZGVzIFp3ZWlnZXMiCittc2dzdHIgImVyemV1Z3QgZGFzIFJlZmxvZyBkZXMgQnJhbmNoZXMiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI4CiBtc2dpZCAiZWRpdCB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSBicmFuY2giCi1tc2dzdHIgImJlYXJiZWl0ZXQgZGllIEJlc2NocmVpYnVuZyBmw7xyIGRlbiBad2VpZyIKK21zZ3N0ciAiYmVhcmJlaXRldCBkaWUgQmVzY2hyZWlidW5nIGbDvHIgZGVuIEJyYW5jaCIKIAogIzogYnVpbHRpbi9icmFuY2guYzo4MjkKIG1zZ2lkICJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiCi1tc2dzdHIgImVyemV1Z2UgYXVjaCwgd2VubiBkZXIgWndlaWcgYmVyZWl0cyBleGlzdGllcnQiCittc2dzdHIgImVyemV1Z2UgYXVjaCwgd2VubiBkZXIgQnJhbmNoIGJlcmVpdHMgZXhpc3RpZXJ0IgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgzMgogbXNnaWQgInByaW50IG9ubHkgbm90IG1lcmdlZCBicmFuY2hlcyIKLW1zZ3N0ciAiZ2lidCBudXIgWndlaWdlIGF1cywgZGllIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnQgc2luZCIKK21zZ3N0ciAiZ2lidCBudXIgQnJhbmNoZXMgYXVzLCBkaWUgbmljaHQgenVzYW1tZW5nZWbDvGhydCBzaW5kIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgzOAogbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgotbXNnc3RyICJnaWJ0IG51ciBad2VpZ2UgYXVzLCBkaWUgenVzYW1tZW5nZWbDvGhydCBzaW5kIgorbXNnc3RyICJnaWJ0IG51ciBCcmFuY2hlcyBhdXMsIGRpZSB6dXNhbW1lbmdlZsO8aHJ0IHNpbmQiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODQyCiBtc2dpZCAibGlzdCBicmFuY2hlcyBpbiBjb2x1bW5zIgotbXNnc3RyICJsaXN0ZXQgWndlaWdlIGluIFNwYWx0ZW4gYXVmIgorbXNnc3RyICJsaXN0ZXQgQnJhbmNoZXMgaW4gU3BhbHRlbiBhdWYiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODU1CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgSEVBRCBhcyBhIHZhbGlkIHJlZi4iCi1tc2dzdHIgIktvbm50ZSBad2VpZ3NwaXR6ZSAoSEVBRCkgbmljaHQgYWxzIGfDvGx0aWdlIFJlZmVyZW56IGF1ZmzDtnNlbi4iCittc2dzdHIgIktvbm50ZSBIRUFEIG5pY2h0IGFscyBnw7xsdGlnZSBSZWZlcmVueiBhdWZsw7ZzZW4uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg2MCBidWlsdGluL2Nsb25lLmM6NjE5CisjOiBidWlsdGluL2JyYW5jaC5jOjg2MCBidWlsdGluL2Nsb25lLmM6NjMwCiBtc2dpZCAiSEVBRCBub3QgZm91bmQgYmVsb3cgcmVmcy9oZWFkcyEiCi1tc2dzdHIgIlp3ZWlnc3BpdHplIChIRUFEKSB3dXJkZSBuaWNodCB1bnRlciBcInJlZnMvaGVhZHNcIiBnZWZ1bmRlbiEiCittc2dzdHIgIkhFQUQgd3VyZGUgbmljaHQgdW50ZXIgXCJyZWZzL2hlYWRzXCIgZ2VmdW5kZW4hIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjg4MwogbXNnaWQgIi0tY29sdW1uIGFuZCAtLXZlcmJvc2UgYXJlIGluY29tcGF0aWJsZSIKQEAgLTI4NDcsNjggKzI5MTgsNjcgQEAKIAogIzogYnVpbHRpbi9icmFuY2guYzo4ODkgYnVpbHRpbi9icmFuY2guYzo5MjgKIG1zZ2lkICJicmFuY2ggbmFtZSByZXF1aXJlZCIKLW1zZ3N0ciAiWndlaWduYW1lIGVyZm9yZGVybGljaCIKK21zZ3N0ciAiQnJhbmNobmFtZSBlcmZvcmRlcmxpY2giCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0CiBtc2dpZCAiQ2Fubm90IGdpdmUgZGVzY3JpcHRpb24gdG8gZGV0YWNoZWQgSEVBRCIKLW1zZ3N0ciAiIgotInp1IGxvc2dlbMO2c3RlciBad2VpZ3NwaXR6ZSAoSEVBRCkga2FubiBrZWluZSBCZXNjaHJlaWJ1bmcgaGludGVybGVndCB3ZXJkZW4iCittc2dzdHIgInp1IGxvc2dlbMO2c3RlbSBIRUFEIGthbm4ga2VpbmUgQmVzY2hyZWlidW5nIGhpbnRlcmxlZ3Qgd2VyZGVuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjkwOQogbXNnaWQgImNhbm5vdCBlZGl0IGRlc2NyaXB0aW9uIG9mIG1vcmUgdGhhbiBvbmUgYnJhbmNoIgotbXNnc3RyICJCZXNjaHJlaWJ1bmcgdm9uIG1laHIgYWxzIGVpbmVtIFp3ZWlnIGthbm4gbmljaHQgYmVhcmJlaXRldCB3ZXJkZW4iCittc2dzdHIgIkJlc2NocmVpYnVuZyB2b24gbWVociBhbHMgZWluZW0gQnJhbmNoIGthbm4gbmljaHQgYmVhcmJlaXRldCB3ZXJkZW4iCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGNvbW1pdCBvbiBicmFuY2ggJyVzJyB5ZXQuIgotbXNnc3RyICJOb2NoIGtlaW5lIFZlcnNpb24gaW4gWndlaWcgJyVzJy4iCittc2dzdHIgIk5vY2gga2VpbiBDb21taXQgaW4gQnJhbmNoICclcycuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjkxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBicmFuY2ggbmFtZWQgJyVzJy4iCi1tc2dzdHIgIlp3ZWlnICclcycgbmljaHQgdm9yaGFuZGVuLiIKK21zZ3N0ciAiQnJhbmNoICclcycgbmljaHQgdm9yaGFuZGVuLiIKIAogIzogYnVpbHRpbi9icmFuY2guYzo5MzQKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyBmb3IgYSByZW5hbWUgb3BlcmF0aW9uIgotbXNnc3RyICJ6dSB2aWVsZSBad2VpZ2UgZsO8ciBlaW5lIFVtYmVuZW5uZW4tT3BlcmF0aW9uIGFuZ2VnZWJlbiIKK21zZ3N0ciAienUgdmllbGUgQnJhbmNoZXMgZsO8ciBlaW5lIFVtYmVuZW5uZW4tT3BlcmF0aW9uIGFuZ2VnZWJlbiIKIAogIzogYnVpbHRpbi9icmFuY2guYzo5MzkKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyB0byBzZXQgbmV3IHVwc3RyZWFtIgotbXNnc3RyICJ6dSB2aWVsZSBad2VpZ2UgYW5nZWdlYmVuIHVtIG5ldWVuIMOcYmVybmFobWV6d2VpZyB6dSBzZXR6ZW4iCittc2dzdHIgInp1IHZpZWxlIEJyYW5jaGVzIGFuZ2VnZWJlbiB1bSBVcHN0cmVhbS1CcmFuY2ggenUgc2V0emVuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjk0MwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiY291bGQgbm90IHNldCB1cHN0cmVhbSBvZiBIRUFEIHRvICVzIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIiIKLSJLb25udGUga2VpbmVuIG5ldWVuIMOcYmVybmFobWV6d2VpZyB2b24gWndlaWdzcGl0emUgKEhFQUQpIHp1ICVzIHNldHplbixcbiIKLSJkYSBkaWVzZSBhdWYga2VpbmVuIFp3ZWlnIHplaWd0LiIKKyJLb25udGUga2VpbmVuIG5ldWVuIFVwc3RyZWFtLUJyYW5jaCB2b24gSEVBRCB6dSAlcyBzZXR6ZW4sIGRhIGRpZXNlciBhdWZcbiIKKyJrZWluZW4gQnJhbmNoIHplaWd0LiIKIAogIzogYnVpbHRpbi9icmFuY2guYzo5NDYgYnVpbHRpbi9icmFuY2guYzo5NjggYnVpbHRpbi9icmFuY2guYzo5OTAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gc3VjaCBicmFuY2ggJyVzJyIKLW1zZ3N0ciAiS2VpbiBzb2xjaGVyIFp3ZWlnICclcyciCittc2dzdHIgIktlaW4gc29sY2hlciBCcmFuY2ggJyVzJyIKIAogIzogYnVpbHRpbi9icmFuY2guYzo5NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiYnJhbmNoICclcycgZG9lcyBub3QgZXhpc3QiCi1tc2dzdHIgIlp3ZWlnICclcycgZXhpc3RpZXJ0IG5pY2h0IgorbXNnc3RyICJCcmFuY2ggJyVzJyBleGlzdGllcnQgbmljaHQiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6OTYyCiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gdW5zZXQgdXBzdHJlYW0iCiBtc2dzdHIgIiIKLSJ6dSB2aWVsZSBad2VpZ2UgYW5nZWdlYmVuIHVtIEtvbmZpZ3VyYXRpb24genUgw5xiZXJuYWhtZXp3ZWlnIHp1IGVudGZlcm5lbiIKKyJ6dSB2aWVsZSBCcmFuY2hlcyBhbmdlZ2ViZW4gdW0gS29uZmlndXJhdGlvbiB6dSBVcHN0cmVhbS1CcmFuY2ggenUgZW50ZmVybmVuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjk2NgogbXNnaWQgImNvdWxkIG5vdCB1bnNldCB1cHN0cmVhbSBvZiBIRUFEIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIiIKLSJLb25udGUgS29uZmlndXJhdGlvbiB6dW0gw5xiZXJuYWhtZXp3ZWlnIHZvbiBad2VpZ3NwaXR6ZSAoSEVBRCkgbmljaHRcbiIKLSJlbnRmZXJuZW4sIGRhIGRpZXNlIGF1ZiBrZWluZW4gWndlaWcgemVpZ3QuIgorIktvbm50ZSBLb25maWd1cmF0aW9uIHp1IFVwc3RyZWFtLUJyYW5jaCB2b24gSEVBRCBuaWNodCBlbnRmZXJuZW4sIGRhIGRpZXNlclxuIgorImF1ZiBrZWluZW4gQnJhbmNoIHplaWd0LiIKIAogIzogYnVpbHRpbi9icmFuY2guYzo5NzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQnJhbmNoICclcycgaGFzIG5vIHVwc3RyZWFtIGluZm9ybWF0aW9uIgotbXNnc3RyICJad2VpZyAnJXMnIGhhdCBrZWluZW4gZXh0ZXJuZW4gw5xiZXJuYWhtZXp3ZWlnIGdlc2V0enQiCittc2dzdHIgIkJyYW5jaCAnJXMnIGhhdCBrZWluZW4gVXBzdHJlYW0tQnJhbmNoIGdlc2V0enQiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6OTg3CiBtc2dpZCAiaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjcmVhdGUgJ0hFQUQnIG1hbnVhbGx5IgpAQCAtMjkxOCw3ICsyOTg4LDcgQEAKIG1zZ2lkICItYSBhbmQgLXIgb3B0aW9ucyB0byAnZ2l0IGJyYW5jaCcgZG8gbm90IG1ha2Ugc2Vuc2Ugd2l0aCBhIGJyYW5jaCBuYW1lIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC1hIHVuZCAtciBiZWkgJ2dpdCBicmFuY2gnIGvDtm5uZW4gbmljaHQgZ2VtZWltc2FtIG1pdCBlaW5lbSAiCi0iWndlaWduYW1lbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKKyJCcmFuY2huYW1lbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAogIzogYnVpbHRpbi9icmFuY2guYzo5OTYKICMsIGMtZm9ybWF0CkBAIC0yOTM3LDggKzMwMDcsOCBAQAogIlxuIgogbXNnc3RyICIiCiAiXG4iCi0iV2VubiBTaWUgd29sbHRlbiwgZGFzcyAnJXMnIGRlbiBad2VpZyAnJXMnIGFscyBleHRlcm5lbiDDnGJlcm5haG1lendlaWcgaGF0LCAiCi0iZsO8aHJlbiBTaWUgYXVzOlxuIgorIldlbm4gU2llIHdvbGx0ZW4sIGRhc3MgJyVzJyBkZW4gQnJhbmNoICclcycgYWxzIFVwc3RyZWFtLUJyYW5jaCBoYXQsIGbDvGhyZW4gIgorIlNpZSBhdXM6XG4iCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNAogIywgYy1mb3JtYXQKQEAgLTI5NTcsNTEgKzMwMjcsNTEgQEAKIAogIzogYnVpbHRpbi9idW5kbGUuYzo1NgogbXNnaWQgIk5lZWQgYSByZXBvc2l0b3J5IHRvIGNyZWF0ZSBhIGJ1bmRsZS4iCi1tc2dzdHIgIlVtIGVpbiBQYWtldCB6dSBlcnN0ZWxsZW4gd2lyZCBlaW4gUHJvamVrdGFyY2hpdiBiZW7DtnRpZ3QuIgorbXNnc3RyICJVbSBlaW4gUGFrZXQgenUgZXJzdGVsbGVuIHdpcmQgZWluIFJlcG9zaXRvcnkgYmVuw7Z0aWd0LiIKIAogIzogYnVpbHRpbi9idW5kbGUuYzo2MAogbXNnaWQgIk5lZWQgYSByZXBvc2l0b3J5IHRvIHVuYnVuZGxlLiIKLW1zZ3N0ciAiWnVtIEVudHBhY2tlbiB3aXJkIGVpbiBQcm9qZWt0YXJjaGl2IGJlbsO2dGlndC4iCittc2dzdHIgIlp1bSBFbnRwYWNrZW4gd2lyZCBlaW4gUmVwb3NpdG9yeSBiZW7DtnRpZ3QuIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MTc2CisjOiBidWlsdGluL2NhdC1maWxlLmM6Mjg1CiBtc2dpZCAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw8dHlwZT58LS10ZXh0Y29udikgPG9iamVjdD4iCiBtc2dzdHIgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PEFydD58LS10ZXh0Y29udikgPE9iamVrdD4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxNzcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODYKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA8bGlzdF9vZl9vYmplY3RzPiIKIG1zZ3N0ciAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPExpc3RlX3Zvbl9PYmpla3Rlbj4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTUKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjMKIG1zZ2lkICI8dHlwZT4gY2FuIGJlIG9uZSBvZjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiBtc2dzdHIgIjxBcnQ+IGthbm4gc2VpbjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTYKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjQKIG1zZ2lkICJzaG93IG9iamVjdCB0eXBlIgogbXNnc3RyICJ6ZWlndCBPYmpla3RhcnQiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjUKIG1zZ2lkICJzaG93IG9iamVjdCBzaXplIgogbXNnc3RyICJ6ZWlndCBPYmpla3RncsO2w59lIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MTk5CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI3CiBtc2dpZCAiZXhpdCB3aXRoIHplcm8gd2hlbiB0aGVyZSdzIG5vIGVycm9yIgogbXNnc3RyICJiZWVuZGV0IG1pdCBSw7xja2dhYmV3ZXJ0IDAsIHdlbm4ga2VpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjAwCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI4CiBtc2dpZCAicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiCiBtc2dzdHIgImFuc3ByZWNoZW5kZSBBbnplaWdlIGRlcyBPYmpla3RpbmhhbHRlcyIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwMgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMAogbXNnaWQgImZvciBibG9iIG9iamVjdHMsIHJ1biB0ZXh0Y29udiBvbiBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICJmw7xocnQgZWluZSBUZXh0a29udmVydGllcnVuZyBhdWYgZGVuIEluaGFsdCB2b24gQmxvYi1PYmpla3RlbiBhdXMiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDQKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzIKIG1zZ2lkICJzaG93IGluZm8gYW5kIGNvbnRlbnQgb2Ygb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIiIKICJBbnplaWdlIHZvbiBJbmZvcm1hdGlvbmVuIHVuZCBJbmhhbHQgdm9uIE9iamVrdGVuLCBnZWxlc2VuIHZvbiBkZXIgU3RhbmRhcmQtIgogIkVpbmdhYmUiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzUKIG1zZ2lkICJzaG93IGluZm8gYWJvdXQgb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIiIKICJBbnplaWdlIHZvbiBJbmZvcm1hdGlvbmVuIMO8YmVyIE9iamVrdGUsIGdlbGVzZW4gdm9uIGRlciBTdGFuZGFyZC1FaW5nYWJlIgpAQCAtMzAyMSw3ICszMDkxLDcgQEAKIAogIzogYnVpbHRpbi9jaGVjay1hdHRyLmM6MjAKIG1zZ2lkICJ1c2UgLmdpdGF0dHJpYnV0ZXMgb25seSBmcm9tIHRoZSBpbmRleCIKLW1zZ3N0ciAidmVyd2VuZGV0IC5naXRhdHRyaWJ1dGVzIG51ciB2b24gZGVyIEJlcmVpdHN0ZWxsdW5nIgorbXNnc3RyICJ2ZXJ3ZW5kZXQgLmdpdGF0dHJpYnV0ZXMgbnVyIHZvbiBkZXIgU3RhZ2luZy1BcmVhIgogCiAjOiBidWlsdGluL2NoZWNrLWF0dHIuYzoyMSBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjIyIGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NQogbXNnaWQgInJlYWQgZmlsZSBuYW1lcyBmcm9tIHN0ZGluIgpAQCAtMzAzMSwzOCArMzEwMSw2MyBAQAogbXNnaWQgImlucHV0IHBhdGhzIGFyZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCBjaGFyYWN0ZXIiCiBtc2dzdHIgIkVpbmdhYmVwZmFkZSBzaW5kIGR1cmNoIGVpbiBOVUwgWmVpY2hlbiBhYmdlc2NobG9zc2VuIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ0IGJ1aWx0aW4vZ2MuYzoxNzcKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTggYnVpbHRpbi9jaGVja291dC5jOjEwNTQgYnVpbHRpbi9nYy5jOjE3NwogbXNnaWQgInN1cHByZXNzIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAidW50ZXJkcsO8Y2t0IEZvcnRzY2hyaXR0c2FuemVpZ2UiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ2CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjI2Cittc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgaW5wdXQgcGF0aHMiCittc2dzdHIgInplaWd0IEVpbmdhYmUtUGZhZGUgb2huZSDDnGJlcmVpbnN0aW1tdW5nZW4iCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQzCiBtc2dpZCAiY2Fubm90IHNwZWNpZnkgcGF0aG5hbWVzIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAiQW5nYWJlIHZvbiBQZmFkbmFtZW4ga2FubiBuaWNodCBnZW1laW5zYW0gbWl0IC0tc3RkaW4gdmVyd2VuZGV0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDkKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ2CiBtc2dpZCAiLXogb25seSBtYWtlcyBzZW5zZSB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgIkRpZSBPcHRpb24gLXoga2FubiBudXIgbWl0IC0tc3RkaW4gdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTUxCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OAogbXNnaWQgIm5vIHBhdGggc3BlY2lmaWVkIgogbXNnc3RyICJrZWluIFBmYWQgYW5nZWdlYmVuIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTIKIG1zZ2lkICItLXF1aWV0IGlzIG9ubHkgdmFsaWQgd2l0aCBhIHNpbmdsZSBwYXRobmFtZSIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLXF1aWV0IGlzdCBudXIgbWl0IGVpbmVtIGVpbnplbG5lbiBQZmFkbmFtZW4gZ8O8bHRpZy4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAogbXNnaWQgImNhbm5vdCBoYXZlIGJvdGggLS1xdWlldCBhbmQgLS12ZXJib3NlIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC0tcXVpZXQgdW5kIC0tdmVyYm9zZSBrw7ZubmVuIG5pY2h0IGdlbWVpbnNhbSB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTcKK21zZ2lkICItLW5vbi1tYXRjaGluZyBpcyBvbmx5IHZhbGlkIHdpdGggLS12ZXJib3NlIgorbXNnc3RyICItLW5vbi1tYXRjaGluZyBpc3QgbnVyIG1pdCAtLXZlcmJvc2UgenVsw6Rzc2lnIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzo4Cittc2dpZCAiZ2l0IGNoZWNrLW1haWxtYXAgW29wdGlvbnNdIDxjb250YWN0Pi4uLiIKK21zZ3N0ciAiZ2l0IGNoZWNrLW1haWxtYXAgW09wdGlvbmVuXSA8S29udGFrdD4uLi4iCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjEzCittc2dpZCAiYWxzbyByZWFkIGNvbnRhY3RzIGZyb20gc3RkaW4iCittc2dzdHIgImxpZXN0IGViZW5mYWxscyBLb250YWt0ZSB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBwYXJzZSBjb250YWN0OiAlcyIKK21zZ3N0ciAiS29ubnRlIEtvbnRha3QgJyVzJyBuaWNodCBwYXJzZW4uIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzo0NworbXNnaWQgIm5vIGNvbnRhY3RzIHNwZWNpZmllZCIKK21zZ3N0ciAia2VpbmUgS29udGFrdGUgYW5nZWdlYmVuIgorCiAjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTI2CiBtc2dpZCAiZ2l0IGNoZWNrb3V0LWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgogbXNnc3RyICJnaXQgY2hlY2tvdXQtaW5kZXggW09wdGlvbmVuXSBbLS1dIFs8RGF0ZWk+Li4uXSIKIAogIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE4NwogbXNnaWQgImNoZWNrIG91dCBhbGwgZmlsZXMgaW4gdGhlIGluZGV4IgotbXNnc3RyICJjaGVja3QgYWxsZSBEYXRlaWVuIGluIGRlciBCZXJlaXRzdGVsbHVuZyBhdXMiCittc2dzdHIgImNoZWNrdCBhbGxlIERhdGVpZW4gaW4gZGVyIFN0YWdpbmctQXJlYSBhdXMiCiAKICM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxODgKIG1zZ2lkICJmb3JjZSBvdmVyd3JpdGUgb2YgZXhpc3RpbmcgZmlsZXMiCkBAIC0zMDcyLDcgKzMxNjcsNyBAQAogbXNnaWQgIm5vIHdhcm5pbmcgZm9yIGV4aXN0aW5nIGZpbGVzIGFuZCBmaWxlcyBub3QgaW4gaW5kZXgiCiBtc2dzdHIgIiIKICJrZWluZSBXYXJudW5nIGbDvHIgZXhpc3RpZXJlbmRlIERhdGVpZW4sIHVuZCBEYXRlaWVuLCBkaWUgc2ljaCBuaWNodCBpbiBkZXIgIgotIkJlcmVpdHN0ZWxsdW5nIGJlZmluZGVuIgorIlN0YWdpbmctQXJlYSBiZWZpbmRlbiIKIAogIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5MgogbXNnaWQgImRvbid0IGNoZWNrb3V0IG5ldyBmaWxlcyIKQEAgLTMwODAsNyArMzE3NSw3IEBACiAKICM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTQKIG1zZ2lkICJ1cGRhdGUgc3RhdCBpbmZvcm1hdGlvbiBpbiB0aGUgaW5kZXggZmlsZSIKLW1zZ3N0ciAiYWt0dWFsaXNpZXJ0IERhdGVpaW5mb3JtYXRpb25lbiBpbiBkZXIgQmVyZWl0c3RlbGx1bmdzZGF0ZWkiCittc2dzdHIgImFrdHVhbGlzaWVydCBEYXRlaWluZm9ybWF0aW9uZW4gaW4gZGVyIFN0YWdpbmctQXJlYS1EYXRlaSIKIAogIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjIwMAogbXNnaWQgInJlYWQgbGlzdCBvZiBwYXRocyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKQEAgLTMxMDUsMTEgKzMyMDAsMTEgQEAKIAogIzogYnVpbHRpbi9jaGVja291dC5jOjI1CiBtc2dpZCAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSA8YnJhbmNoPiIKLW1zZ3N0ciAiZ2l0IGNoZWNrb3V0IFtPcHRpb25lbl0gPFp3ZWlnPiIKK21zZ3N0ciAiZ2l0IGNoZWNrb3V0IFtPcHRpb25lbl0gPEJyYW5jaD4iCiAKICM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNgogbXNnaWQgImdpdCBjaGVja291dCBbb3B0aW9uc10gWzxicmFuY2g+XSAtLSA8ZmlsZT4uLi4iCi1tc2dzdHIgImdpdCBjaGVja291dCBbT3B0aW9uZW5dIFtad2VpZz5dIC0tIDxEYXRlaT4uLi4iCittc2dzdHIgImdpdCBjaGVja291dCBbT3B0aW9uZW5dIFs8QnJhbmNoPl0gLS0gPERhdGVpPi4uLiIKIAogIzogYnVpbHRpbi9jaGVja291dC5jOjExNyBidWlsdGluL2NoZWNrb3V0LmM6MTUwCiAjLCBjLWZvcm1hdApAQCAtMzEzOSw3ICszMjM0LDcgQEAKICM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCBtZXJnZSByZXN1bHQgZm9yICclcyciCi1tc2dzdHIgIktvbm50ZSBFcmdlYm5pcyBkZXIgWnVzYW1tZW5mw7xocnVuZyB2b24gJyVzJyBuaWNodCBoaW56dWbDvGdlbi4iCittc2dzdHIgIktvbm50ZSBNZXJnZS1FcmdlYm5pcyB2b24gJyVzJyBuaWNodCBoaW56dWbDvGdlbi4iCiAKICM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzcgYnVpbHRpbi9jaGVja291dC5jOjI0MCBidWlsdGluL2NoZWNrb3V0LmM6MjQzCiAjOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ2CkBAIC0zMTU1LDExICszMjUwLDEyIEBACiAjOiBidWlsdGluL2NoZWNrb3V0LmM6MjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLiIKLW1zZ3N0ciAiS2FubiBuaWNodCBnbGVpY2h6ZWl0aWcgUGZhZGUgYWt0dWFsaXNpZXJlbiB1bmQgenUgWndlaWcgJyVzJyB3ZWNoc2VsbiIKK21zZ3N0ciAiIgorIkthbm4gbmljaHQgZ2xlaWNoemVpdGlnIFBmYWRlIGFrdHVhbGlzaWVyZW4gdW5kIHp1IEJyYW5jaCAnJXMnIHdlY2hzZWxuIgogCiAjOiBidWlsdGluL2NoZWNrb3V0LmM6MjY2IGJ1aWx0aW4vY2hlY2tvdXQuYzo0NTgKIG1zZ2lkICJjb3JydXB0IGluZGV4IGZpbGUiCi1tc2dzdHIgImJlc2Now6RkaWd0ZSBCZXJlaXRzdGVsbHVuZ3NkYXRlaSIKK21zZ3N0ciAiYmVzY2jDpGRpZ3RlIFN0YWdpbmctQXJlYS1EYXRlaSIKIAogIzogYnVpbHRpbi9jaGVja291dC5jOjMyOSBidWlsdGluL2NoZWNrb3V0LmM6MzM2CiAjLCBjLWZvcm1hdApAQCAtMzE2OCw0OSArMzI2NCw0OSBAQAogCiAjOiBidWlsdGluL2NoZWNrb3V0LmM6NDgwCiBtc2dpZCAieW91IG5lZWQgdG8gcmVzb2x2ZSB5b3VyIGN1cnJlbnQgaW5kZXggZmlyc3QiCi1tc2dzdHIgIlNpZSBtw7xzc2VuIHp1ZXJzdCBJaHJlIGFrdHVlbGxlIEJlcmVpdHN0ZWxsdW5nIGF1ZmzDtnNlbi4iCittc2dzdHIgIlNpZSBtw7xzc2VuIHp1ZXJzdCBJaHJlIGFrdHVlbGxlIFN0YWdpbmctQXJlYSBhdWZsw7ZzZW4uIgogCiAjOiBidWlsdGluL2NoZWNrb3V0LmM6NjAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbiBub3QgZG8gcmVmbG9nIGZvciAnJXMnXG4iCiBtc2dzdHIgIktvbm50ZSBcInJlZmxvZ1wiIGbDvHIgJyVzJyBuaWNodCBkdXJjaGbDvGhyZW5cbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYzNAorIzogYnVpbHRpbi9jaGVja291dC5jOjYzOQogbXNnaWQgIkhFQUQgaXMgbm93IGF0IgotbXNnc3RyICJad2VpZ3NwaXR6ZSAoSEVBRCkgaXN0IGpldHp0IGJlaSIKK21zZ3N0ciAiSEVBRCBpc3QgamV0enQgYmVpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlc2V0IGJyYW5jaCAnJXMnXG4iCi1tc2dzdHIgIlNldHplIFp3ZWlnICclcycgbmV1XG4iCittc2dzdHIgIlNldHplIEJyYW5jaCAnJXMnIG5ldVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFscmVhZHkgb24gJyVzJ1xuIgogbXNnc3RyICJCZXJlaXRzIGF1ZiAnJXMnXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYW5kIHJlc2V0IGJyYW5jaCAnJXMnXG4iCi1tc2dzdHIgIkdld2VjaHNlbHQgenUgbmV1IGdlc2V0enRlbSBad2VpZyAnJXMnXG4iCittc2dzdHIgIkdld2VjaHNlbHQgenUgdW1nZXNldHp0ZW4gQnJhbmNoICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1MCBidWlsdGluL2NoZWNrb3V0LmM6OTg3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjU1IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYSBuZXcgYnJhbmNoICclcydcbiIKLW1zZ3N0ciAiR2V3ZWNoc2VsdCB6dSBlaW5lbSBuZXVlbiBad2VpZyAnJXMnXG4iCittc2dzdHIgIkdld2VjaHNlbHQgenUgZWluZW0gbmV1ZW0gQnJhbmNoICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1MgorIzogYnVpbHRpbi9jaGVja291dC5jOjY1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBicmFuY2ggJyVzJ1xuIgotbXNnc3RyICJHZXdlY2hzZWx0IHp1IFp3ZWlnICclcydcbiIKK21zZ3N0ciAiR2V3ZWNoc2VsdCB6dSBCcmFuY2ggJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzA4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAuLi4gYW5kICVkIG1vcmUuXG4iCiBtc2dzdHIgIiAuLi4gdW5kICVkIHdlaXRlcmUuXG4iCiAKICMuIFRoZSBzaW5ndWxhciB2ZXJzaW9uCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzE0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJXYXJuaW5nOiB5b3UgYXJlIGxlYXZpbmcgJWQgY29tbWl0IGJlaGluZCwgbm90IGNvbm5lY3RlZCB0b1xuIgpAQCAtMzIyMywxNyArMzMxOSwxNyBAQAogIlxuIgogIiVzXG4iCiBtc2dzdHJbMF0gIiIKLSJXYXJudW5nOiBTaWUgc2luZCB1bSAlZCBWZXJzaW9uIGhpbnRlcmhlciwgbmljaHQgdmVyYnVuZGVuIHp1XG4iCi0iZWluZW0gSWhyZXIgWndlaWdlOlxuIgorIldhcm51bmc6IFNpZSBzaW5kIHVtICVkIENvbW1pdCBoaW50ZXJoZXIsIG5pY2h0IHZlcmJ1bmRlbiB6dVxuIgorImVpbmVtIElocmVyIEJyYW5jaGVzOlxuIgogIlxuIgogIiVzXG4iCiBtc2dzdHJbMV0gIiIKLSJXYXJudW5nOiBTaWUgc2luZCB1bSAlZCBWZXJzaW9uZW4gaGludGVyaGVyLCBuaWNodCB2ZXJidW5kZW4genVcbiIKLSJlaW5lbSBJaHJlciBad2VpZ2U6XG4iCisiV2FybnVuZzogU2llIHNpbmQgdW0gJWQgQ29tbWl0cyBoaW50ZXJoZXIsIG5pY2h0IHZlcmJ1bmRlbiB6dVxuIgorImVpbmVtIElocmVyIEJyYW5jaGVzOlxuIgogIlxuIgogIiVzXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MzIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIGtlZXAgdGhlbSBieSBjcmVhdGluZyBhIG5ldyBicmFuY2gsIHRoaXMgbWF5IGJlIGEgZ29vZCB0aW1lXG4iCkBAIC0zMjQyLDM3NiArMzMzOCw0NzggQEAKICIgZ2l0IGJyYW5jaCBuZXdfYnJhbmNoX25hbWUgJXNcbiIKICJcbiIKIG1zZ3N0ciAiIgotIldlbm4gU2llIGRpZXNlIGR1cmNoIGVpbmVuIG5ldWVuIFp3ZWlnIGJlaGFsdGVuIG3DtmNodGVuLCBkYW5uIGvDtm5udGUgamV0enRcbiIKKyJXZW5uIFNpZSBkaWVzZSBkdXJjaCBlaW5lbiBuZXVlbiBCcmFuY2ggYmVoYWx0ZW4gbcO2Y2h0ZW4sIGRhbm4ga8O2bm50ZSBqZXR6dFxuIgogImVpbiBndXRlciBaZWl0cHVua3Qgc2VpbiBkaWVzIHp1IHR1biBtaXQ6XG4iCiAiXG4iCi0iIGdpdCBicmFuY2ggbmV1ZXJfendlaWdfbmFtZSAlc1xuIgorIiBnaXQgYnJhbmNoIG5ldWVyX2JyYW5jaF9uYW1lICVzXG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjcKIG1zZ2lkICJpbnRlcm5hbCBlcnJvciBpbiByZXZpc2lvbiB3YWxrIgogbXNnc3RyICJpbnRlcm5lciBGZWhsZXIgaW0gUmV2aXNpb25zZ2FuZyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2NgorIzogYnVpbHRpbi9jaGVja291dC5jOjc3MQogbXNnaWQgIlByZXZpb3VzIEhFQUQgcG9zaXRpb24gd2FzIgotbXNnc3RyICJWb3JoZXJpZ2UgUG9zaXRpb24gZGVyIFp3ZWlnc3BpdHplIChIRUFEKSB3YXIiCittc2dzdHIgIlZvcmhlcmlnZSBQb3NpdGlvbiB2b24gSEVBRCB3YXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTMgYnVpbHRpbi9jaGVja291dC5jOjk4MgorIzogYnVpbHRpbi9jaGVja291dC5jOjc5OCBidWlsdGluL2NoZWNrb3V0LmM6OTkyCiBtc2dpZCAiWW91IGFyZSBvbiBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKLW1zZ3N0ciAiU2llIHNpbmQgYXVmIGVpbmVtIFp3ZWlnLCBkZXIgbm9jaCBnZWJvcmVuIHdpcmQiCittc2dzdHIgIlNpZSBzaW5kIGF1ZiBlaW5lbSBCcmFuY2gsIGRlciBub2NoIGdlYm9yZW4gd2lyZCIKIAogIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2U6ICVzIgogbXNnc3RyICJVbmfDvGx0aWdlIFJlZmVyZW56OiAlcyIKIAogIy4gY2FzZSAoMSk6IHdhbnQgYSB0cmVlCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKLW1zZ3N0ciAiUmVmZXJlbnogaXN0IGtlaW4gQmF1bTogJXMiCittc2dzdHIgIlJlZmVyZW56IGlzdCBrZWluIFwiVHJlZVwiLU9iamVrdDogJXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA2CiBtc2dpZCAicGF0aHMgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCi1tc2dzdHIgIlBmYWRlIGvDtm5uZW4gbmljaHQgYmVpbSBXZWNoc2VsbiB2b24gWndlaWdlbiB2ZXJ3ZW5kZXQgd2VyZGVuIgorbXNnc3RyICJQZmFkZSBrw7ZubmVuIG5pY2h0IGJlaW0gV2VjaHNlbG4gdm9uIEJyYW5jaGVzIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTkgYnVpbHRpbi9jaGVja291dC5jOjEwMDMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCi1tc2dzdHIgIiclcycga2FubiBuaWNodCBiZWltIFdlY2hzZWxuIHZvbiBad2VpZ2VuIHZlcndlbmRldCB3ZXJkZW4iCittc2dzdHIgIiclcycga2FubiBuaWNodCBiZWltIFdlY2hzZWxuIHZvbiBCcmFuY2hlcyB2ZXJ3ZW5kZXQgd2VyZGVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwNyBidWlsdGluL2NoZWNrb3V0LmM6MTAxMCBidWlsdGluL2NoZWNrb3V0LmM6MTAxNQotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDIwIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDI1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggJyVzJyIKIG1zZ3N0ciAiJyVzJyBrYW5uIG5pY2h0IG1pdCAnJXMnIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDIzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc3dpdGNoIGJyYW5jaCB0byBhIG5vbi1jb21taXQgJyVzJyIKLW1zZ3N0ciAiS2FubiBad2VpZyBuaWNodCB6dSBOaWNodC1WZXJzaW9uICclcycgd2VjaHNlbG4iCittc2dzdHIgIkthbm4gQnJhbmNoIG5pY2h0IHp1IE5pY2h0LUNvbW1pdCAnJXMnIHdlY2hzZWxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NSBidWlsdGluL2NoZWNrb3V0LmM6MTA0NyBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vY2xvbmUuYzo4OQogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjkgYnVpbHRpbi9yZW1vdGUuYzoxNzEKIG1zZ2lkICJicmFuY2giCi1tc2dzdHIgIlp3ZWlnIgorbXNnc3RyICJCcmFuY2giCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgogbXNnaWQgImNyZWF0ZSBhbmQgY2hlY2tvdXQgYSBuZXcgYnJhbmNoIgotbXNnc3RyICJlcnpldWd0IHVuZCBjaGVja3QgZWluZW4gbmV1ZW4gWndlaWcgYXVzIgorbXNnc3RyICJlcnpldWd0IHVuZCBjaGVja3QgZWluZW4gbmV1ZW4gQnJhbmNoIGF1cyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4CiBtc2dpZCAiY3JlYXRlL3Jlc2V0IGFuZCBjaGVja291dCBhIGJyYW5jaCIKLW1zZ3N0ciAiZXJ6ZXVndC9zZXR6dCBuZXUgdW5kIGNoZWNrdCBlaW5lbiBad2VpZyBhdXMiCittc2dzdHIgImVyemV1Z3Qvc2V0enQgdW0gdW5kIGNoZWNrdCBlaW5lbiBCcmFuY2ggYXVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKIG1zZ2lkICJjcmVhdGUgcmVmbG9nIGZvciBuZXcgYnJhbmNoIgotbXNnc3RyICJlcnpldWd0IFJlZmVyZW56cHJvdG9rb2xsIGbDvHIgZGVuIG5ldWVuIFp3ZWlnIgorbXNnc3RyICJlcnpldWd0IGRhcyBSZWZsb2cgZsO8ciBkZW4gbmV1ZW4gQnJhbmNoIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAKIG1zZ2lkICJkZXRhY2ggdGhlIEhFQUQgYXQgbmFtZWQgY29tbWl0IgotbXNnc3RyICJzZXR6dCBkaWUgWndlaWdzcGl0emUgKEhFQUQpIHp1IGJlbmFubnRlciBWZXJzaW9uIgorbXNnc3RyICJzZXR6dCBIRUFEIHp1IGJlbmFubnRlbSBDb21taXQiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MQogbXNnaWQgInNldCB1cHN0cmVhbSBpbmZvIGZvciBuZXcgYnJhbmNoIgotbXNnc3RyICJzZXR6dCBJbmZvcm1hdGlvbmVuIHp1bSBleHRlcm5lbiDDnGJlcm5haG1lendlaWcgZsO8ciBkZW4gbmV1ZW4gWndlaWciCittc2dzdHIgInNldHp0IEluZm9ybWF0aW9uZW4genVtIFVwc3RyZWFtLUJyYW5jaCBmw7xyIGRlbiBuZXVlbiBCcmFuY2giCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyBicmFuY2giCi1tc2dzdHIgIm5ldWVyIFp3ZWlnIgorbXNnc3RyICJuZXVlciBCcmFuY2giCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKLW1zZ3N0ciAibmV1ZXIgWndlaWcgb2huZSBFbHRlcm52ZXJzaW9uIgorbXNnc3RyICJuZXVlciBCcmFuY2ggb2huZSBFbHRlcm4tQ29tbWl0IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjQKIG1zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgImNoZWNrdCB1bnNlcmUgVmFyaWFudGUgZsO8ciBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBEYXRlaWVuIGF1cyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY2CiBtc2dpZCAiY2hlY2tvdXQgdGhlaXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgImNoZWNrdCBpaHJlIFZhcmlhbnRlIGbDvHIgbmljaHQgenVzYW1tZW5nZWbDvGhydGUgRGF0ZWllbiBhdXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OAogbXNnaWQgImZvcmNlIGNoZWNrb3V0ICh0aHJvdyBhd2F5IGxvY2FsIG1vZGlmaWNhdGlvbnMpIgogbXNnc3RyICJlcnp3aW5ndCBBdXNjaGVja2VuICh2ZXJ3aXJmdCBsb2thbGUgw4RuZGVydW5nZW4pIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjkKIG1zZ2lkICJwZXJmb3JtIGEgMy13YXkgbWVyZ2Ugd2l0aCB0aGUgbmV3IGJyYW5jaCIKLW1zZ3N0ciAiZsO8aHJ0IGVpbmUgMy1XZWdlLVp1c2FtbWVuZsO8aHJ1bmcgbWl0IGRlbSBuZXVlbiBad2VpZyBhdXMiCittc2dzdHIgImbDvGhydCBlaW5lbiAzLVdlZ2UtTWVyZ2UgbWl0IGRlbSBuZXVlbiBCcmFuY2ggYXVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MCBidWlsdGluL21lcmdlLmM6MjE3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MCBidWlsdGluL21lcmdlLmM6MjMyCiBtc2dpZCAidXBkYXRlIGlnbm9yZWQgZmlsZXMgKGRlZmF1bHQpIgogbXNnc3RyICJha3R1YWxpc2llcnQgaWdub3JpZXJ0ZSBEYXRlaWVuIChTdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxIGJ1aWx0aW4vbG9nLmM6MTE1OCBwYXJzZS1vcHRpb25zLmg6MjQ1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MSBidWlsdGluL2xvZy5jOjEyMDggcGFyc2Utb3B0aW9ucy5oOjI0OQogbXNnaWQgInN0eWxlIgogbXNnc3RyICJTdGlsIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzIKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICJLb25mbGlrdHN0aWwgKG1lcmdlIG9kZXIgZGlmZjMpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzUKIG1zZ2lkICJkbyBub3QgbGltaXQgcGF0aHNwZWNzIHRvIHNwYXJzZSBlbnRyaWVzIG9ubHkiCiBtc2dzdHIgIlBmYWRzcGV6aWZpa2F0aW9uZW4gaWdub3JpZXJlbiBFaW5zdGVsbHVuZ2VuIHp1bSBwYXJ0aWVsbGVuIEF1c2NoZWNrZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3NwogbXNnaWQgInNlY29uZCBndWVzcyAnZ2l0IGNoZWNrb3V0IG5vLXN1Y2gtYnJhbmNoJyIKIG1zZ3N0ciAic2Vjb25kIGd1ZXNzICdnaXQgY2hlY2tvdXQgbm8tc3VjaC1icmFuY2gnIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5MQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDEKIG1zZ2lkICItYiwgLUIgYW5kIC0tb3JwaGFuIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtYiwgLUIgdW5kIC0tb3JwaGFuIHNjaGxpZcOfZW4gc2ljaCBnZWdlbnNlaXRpZyBhdXMuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwOAorIzogYnVpbHRpbi9jaGVja291dC5jOjExMTgKIG1zZ2lkICItLXRyYWNrIG5lZWRzIGEgYnJhbmNoIG5hbWUiCi1tc2dzdHIgIkJlaSBkZXIgT3B0aW9uIC0tdHJhY2sgbXVzcyBlaW4gWndlaWduYW1lIGFuZ2VnZWJlbiB3ZXJkZW4uIgorbXNnc3RyICJCZWkgZGVyIE9wdGlvbiAtLXRyYWNrIG11c3MgZWluIEJyYW5jaG5hbWUgYW5nZWdlYmVuIHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTE1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEyNQogbXNnaWQgIk1pc3NpbmcgYnJhbmNoIG5hbWU7IHRyeSAtYiIKLW1zZ3N0ciAiVmVybWlzc2UgWndlaWduYW1lbjsgdmVyc3VjaGVuIFNpZSAtYiIKK21zZ3N0ciAiVmVybWlzc2UgQnJhbmNobmFtZW47IHZlcnN1Y2hlbiBTaWUgLWIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTUwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2MAogbXNnaWQgImludmFsaWQgcGF0aCBzcGVjaWZpY2F0aW9uIgogbXNnc3RyICJ1bmfDvGx0aWdlIFBmYWRzcGV6aWZpa2F0aW9uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1NworIzogYnVpbHRpbi9jaGVja291dC5jOjExNjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLlxuIgogIkRpZCB5b3UgaW50ZW5kIHRvIGNoZWNrb3V0ICclcycgd2hpY2ggY2FuIG5vdCBiZSByZXNvbHZlZCBhcyBjb21taXQ/IgogbXNnc3RyICIiCi0iS2FubiBuaWNodCBnbGVpY2h6ZWl0aWcgUGZhZGUgYWt0dWFsaXNpZXJlbiB1bmQgenUgWndlaWcgJyVzJyB3ZWNoc2Vsbi5cbiIKLSJIYWJlbiBTaWUgYmVhYnNpY2h0aWd0ICclcycgYXVzenVjaGVja2VuLCB3ZWxjaGVyIG5pY2h0IGFscyBWZXJzaW9uICIKLSJhdWZnZWzDtnN0IHdlcmRlbiBrYW5uPyIKKyJLYW5uIG5pY2h0IGdsZWljaHplaXRpZyBQZmFkZSBha3R1YWxpc2llcmVuIHVuZCB6dSBCcmFuY2ggJyVzJyB3ZWNoc2Vsbi5cbiIKKyJIYWJlbiBTaWUgYmVhYnNpY2h0aWd0ICclcycgYXVzenVjaGVja2VuLCB3ZWxjaGVyIG5pY2h0IGFscyBDb21taXQgYXVmZ2Vsw7ZzdCAiCisid2VyZGVuIGthbm4/IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBkb2VzIG5vdCB0YWtlIGEgcGF0aCBhcmd1bWVudCAnJXMnIgogbXNnc3RyICJnaXQgY2hlY2tvdXQ6IC0tZGV0YWNoIG5pbW10IGtlaW4gUGZhZC1Bcmd1bWVudCAnJXMnIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2NgorIzogYnVpbHRpbi9jaGVja291dC5jOjExNzYKIG1zZ2lkICIiCiAiZ2l0IGNoZWNrb3V0OiAtLW91cnMvLS10aGVpcnMsIC0tZm9yY2UgYW5kIC0tbWVyZ2UgYXJlIGluY29tcGF0aWJsZSB3aGVuXG4iCiAiY2hlY2tpbmcgb3V0IG9mIHRoZSBpbmRleC4iCiBtc2dzdHIgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSB1bmQgLS1tZXJnZSBzaW5kIGlua29tcGF0aWJlbCB3ZW5uXG4iCi0iU2llIGF1cyBkZXIgQmVyZWl0c3RlbGx1bmcgYXVzY2hlY2tlbi4iCisiU2llIGF1cyBkZXIgU3RhZ2luZy1BcmVhIGF1c2NoZWNrZW4uIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjAKLW1zZ2lkICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIgotbXNnc3RyICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPE11c3Rlcj5dIFsteCB8IC1YXSBbLS1dIDxQZmFkZT4uLi4iCisjOiBidWlsdGluL2NsZWFuLmM6MjUKK21zZ2lkICIiCisiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIgorbXNnc3RyICIiCisiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPE11c3Rlcj5dIFsteCB8IC1YXSBbLS1dIDxQZmFkZT4uLi4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNAorIzogYnVpbHRpbi9jbGVhbi5jOjI5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzXG4iCiBtc2dzdHIgIkzDtnNjaGUgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI1CisjOiBidWlsdGluL2NsZWFuLmM6MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgcmVtb3ZlICVzXG4iCiBtc2dzdHIgIlfDvHJkZSAlcyBsw7ZzY2hlblxuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjYKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMQogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGluZyByZXBvc2l0b3J5ICVzXG4iCi1tc2dzdHIgIsOcYmVyc3ByaW5nZSBQcm9qZWt0YXJjaGl2ICVzXG4iCittc2dzdHIgIsOcYmVyc3ByaW5nZSBSZXBvc2l0b3J5ICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNworIzogYnVpbHRpbi9jbGVhbi5jOjMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHNraXAgcmVwb3NpdG9yeSAlc1xuIgotbXNnc3RyICJXw7xyZGUgUHJvamVrdGFyY2hpdiAlcyDDvGJlcnNwcmluZ2VuXG4iCittc2dzdHIgIlfDvHJkZSBSZXBvc2l0b3J5ICVzIMO8YmVyc3ByaW5nZW5cbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI4CisjOiBidWlsdGluL2NsZWFuLmM6MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gTMO2c2NoZW4gdm9uICVzIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTYwCisjOiBidWlsdGluL2NsZWFuLmM6MjkzCittc2dpZCAiIgorIlByb21wdCBoZWxwOlxuIgorIjEgICAgICAgICAgLSBzZWxlY3QgYSBudW1iZXJlZCBpdGVtXG4iCisiZm9vICAgICAgICAtIHNlbGVjdCBpdGVtIGJhc2VkIG9uIHVuaXF1ZSBwcmVmaXhcbiIKKyIgICAgICAgICAgIC0gKGVtcHR5KSBzZWxlY3Qgbm90aGluZyIKK21zZ3N0ciAiIgorIkVpbmdhYmVoaWxmZTpcbiIKKyIxICAgICAgICAgIC0gbnVtbWVyaWVydGVzIEVsZW1lbnQgYXVzd8OkaGxlblxuIgorImZvbyAgICAgICAgLSBFbGVtZW50IGFuaGFuZCBlaW5lcyBlaW5kZXV0aWdlbiBQcmVmaXggYXVzd8OkaGxlblxuIgorIiAgICAgICAgICAgLSAobGVlcikgbmljaHRzIGF1c3fDpGhsZW4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTcKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCisiMy01ICAgICAgICAtIHNlbGVjdCBhIHJhbmdlIG9mIGl0ZW1zXG4iCisiMi0zLDYtOSAgICAtIHNlbGVjdCBtdWx0aXBsZSByYW5nZXNcbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIi0uLi4gICAgICAgLSB1bnNlbGVjdCBzcGVjaWZpZWQgaXRlbXNcbiIKKyIqICAgICAgICAgIC0gY2hvb3NlIGFsbCBpdGVtc1xuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmciCittc2dzdHIgIiIKKyJFaW5nYWJlaGlsZmU6XG4iCisiMSAgICAgICAgICAtIGVpbnplbG5lcyBFbGVtZW50IGF1c3fDpGhsZW5cbiIKKyIzLTUgICAgICAgIC0gQmVyZWljaCB2b24gRWxlbWVudGVuIGF1c3fDpGhsZW5cbiIKKyIyLTMsNi05ICAgIC0gbWVocmVyZSBCZXJlaWNoZSBhdXN3w6RobGVuXG4iCisiZm9vICAgICAgICAtIEVsZW1lbnQgYW5oYW5kIGVpbmVzIGVpbmRldXRpZ2VuIFByZWZpeCBhdXN3w6RobGVuXG4iCisiLS4uLiAgICAgICAtIGFuZ2VnZWJlbmVzIEVsZW1lbnQgYWJ3w6RobGVuXG4iCisiKiAgICAgICAgICAtIGFsbGUgRWxlbWVudGUgYXVzd8OkaGxlblxuIgorIiAgICAgICAgICAgLSAobGVlcikgQXVzd2FobCBiZWVuZGVuIgorCisjOiBidWlsdGluL2NsZWFuLmM6NTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkh1aCAoJXMpPyIKK21zZ3N0ciAiV2llIGJpdHRlICglcyk/IgorCisjOiBidWlsdGluL2NsZWFuLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGlnbm9yZSBwYXR0ZXJucz4+ICIKK21zZ3N0ciAiSWdub3JpZXItTXVzdGVyIGVpbmdlYmVuPj4gIgorCisjOiBidWlsdGluL2NsZWFuLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IENhbm5vdCBmaW5kIGl0ZW1zIG1hdGNoZWQgYnk6ICVzIgorbXNnc3RyICJXQVJOVU5HOiBLYW5uIGtlaW5lIEVpbnRyw6RnZSBmaW5kZW4gZGllIE11c3RlciBlbnRzcHJlY2hlbjogJXMiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3MTYKK21zZ2lkICJTZWxlY3QgaXRlbXMgdG8gZGVsZXRlIgorbXNnc3RyICJXw6RobGVuIFNpZSBFaW50csOkZ2UgenVtIEzDtnNjaGVuIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW92ZSAlcz8gIgorbXNnc3RyICInJXMnIGzDtnNjaGVuPyAiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODEKK21zZ2lkICJCeWUuIgorbXNnc3RyICJUc2Now7xzcy4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODkKK21zZ2lkICIiCisiY2xlYW4gICAgICAgICAgICAgICAtIHN0YXJ0IGNsZWFuaW5nXG4iCisiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIGV4Y2x1ZGUgaXRlbXMgZnJvbSBkZWxldGlvblxuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBzZWxlY3QgaXRlbXMgdG8gYmUgZGVsZXRlZCBieSBudW1iZXJzXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIGNvbmZpcm0gZWFjaCBkZWxldGlvbiAobGlrZSBcInJtIC1pXCIpXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIHN0b3AgY2xlYW5pbmdcbiIKKyJoZWxwICAgICAgICAgICAgICAgIC0gdGhpcyBzY3JlZW5cbiIKKyI/ICAgICAgICAgICAgICAgICAgIC0gaGVscCBmb3IgcHJvbXB0IHNlbGVjdGlvbiIKK21zZ3N0ciAiIgorImNsZWFuICAgICAgICAgICAgICAgLSBDbGVhbiBzdGFydGVuXG4iCisiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIEVpbnRyw6RnZSB2b24gTMO2c2NodW5nIGF1c3NjaGxpZcOfZW5cbiIKKyJzZWxlY3QgYnkgbnVtYmVycyAgIC0gQXVzd2FobCB2b24gRWludHLDpGdlbiDDvGJlciBOdW1tZXJuXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIGplZGUgTMO2c2NodW5nIGJlc3TDpHRpZ2VuICh3aWUgXCJybSAtaVwiKVxuIgorInF1aXQgICAgICAgICAgICAgICAgLSBDbGVhbiBiZWVuZGVuXG4iCisiaGVscCAgICAgICAgICAgICAgICAtIGRpZXNlIE1lbGR1bmcgYW56ZWlnZW5cbiIKKyI/ICAgICAgICAgICAgICAgICAgIC0gSGlsZmUgenVyIEF1c3dhaGwgbWl0dGVscyBFaW5nYWJlIGFuemVpZ2VuIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE2Cittc2dpZCAiKioqIENvbW1hbmRzICoqKiIKK21zZ3N0ciAiKioqIEtvbW1hbmRvcyAqKioiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MTcKK21zZ2lkICJXaGF0IG5vdyIKK21zZ3N0ciAiV2FzIG51biIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgyNQorbXNnaWQgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW06IgorbXNnaWRfcGx1cmFsICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtczoiCittc2dzdHJbMF0gIlfDvHJkZSBkYXMgZm9sZ2VuZGUgRWxlbWVudCBlbnRmZXJuZW46IgorbXNnc3RyWzFdICJXw7xyZGUgZGllIGZvbGdlbmRlbiBFbGVtZW50ZSBlbnRmZXJuZW46IgorCisjOiBidWlsdGluL2NsZWFuLmM6ODQyCittc2dpZCAiTm8gbW9yZSBmaWxlcyB0byBjbGVhbiwgZXhpdGluZy4iCittc2dzdHIgIktlaW5lIERhdGVpZW4gbWVociB6dW0gTMO2c2NoZW4sIGJlZW5kZS4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzQKIG1zZ2lkICJkbyBub3QgcHJpbnQgbmFtZXMgb2YgZmlsZXMgcmVtb3ZlZCIKIG1zZ3N0ciAiZ2lidCBrZWluZSBOYW1lbiB2b24gZ2Vsw7ZzY2h0ZW4gRGF0ZWllbiBhdXMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjIKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzYKIG1zZ2lkICJmb3JjZSIKIG1zZ3N0ciAiZXJ6d2luZ3QgQWt0aW9uIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY0CisjOiBidWlsdGluL2NsZWFuLmM6ODc3Cittc2dpZCAiaW50ZXJhY3RpdmUgY2xlYW5pbmciCittc2dzdHIgImludGVyYWt0aXZlcyBDbGVhbiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3OQogbXNnaWQgInJlbW92ZSB3aG9sZSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAibMO2c2NodCBnYW56ZSBWZXJ6ZWljaG5pc3NlIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY1IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTIgYnVpbHRpbi9ncmVwLmM6NzE3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg3IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzEgYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorIzogYnVpbHRpbi9jbGVhbi5jOjg4MCBidWlsdGluL2Rlc2NyaWJlLmM6NDIwIGJ1aWx0aW4vZ3JlcC5jOjcxNgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MyBidWlsdGluL25hbWUtcmV2LmM6MzE1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKIG1zZ2lkICJwYXR0ZXJuIgogbXNnc3RyICJNdXN0ZXIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODEKIG1zZ2lkICJhZGQgPHBhdHRlcm4+IHRvIGlnbm9yZSBydWxlcyIKIG1zZ3N0ciAiZsO8Z3QgPE11c3Rlcj4genUgZGVuIFJlZ2VsbiBmw7xyIGlnbm9yaWVydGUgUGZhZGUgaGluenUiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODIKIG1zZ2lkICJyZW1vdmUgaWdub3JlZCBmaWxlcywgdG9vIgogbXNnc3RyICJsw7ZzY2h0IGF1Y2ggaWdub3JpZXJ0ZSBEYXRlaWVuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY5CisjOiBidWlsdGluL2NsZWFuLmM6ODg0CiBtc2dpZCAicmVtb3ZlIG9ubHkgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAibMO2c2NodCBudXIgaWdub3JpZXJ0ZSBEYXRlaWVuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTg3CisjOiBidWlsdGluL2NsZWFuLmM6OTAyCiBtc2dpZCAiLXggYW5kIC1YIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICJEaWUgT3B0aW9uZW4gLXggdW5kIC1YIGvDtm5uZW4gbmljaHQgZ2VtZWluc2FtIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTkxCisjOiBidWlsdGluL2NsZWFuLmM6OTA2CiBtc2dpZCAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSBzZXQgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvIGNsZWFuIgotbXNnc3RyICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIGF1ZiBcInRydWVcIiBnZXNldHp0IHVuZCB3ZWRlciAtbiBub2NoIC1mIGdlZ2ViZW47ICIKLSJTw6R1YmVydW5nIHZlcndlaWdlcnQiCi0KLSM6IGJ1aWx0aW4vY2xlYW4uYzoxOTQKLW1zZ2lkICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIGRlZmF1bHRzIHRvIHRydWUgYW5kIG5laXRoZXIgLW4gbm9yIC1mIGdpdmVuOyByZWZ1c2luZyB0byAiCisiY2xlYW4ucmVxdWlyZUZvcmNlIHNldCB0byB0cnVlIGFuZCBuZWl0aGVyIC1pLCAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvICIKICJjbGVhbiIKIG1zZ3N0ciAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSBzdGFuZGFyZG3DpMOfaWcgYXVmIFwidHJ1ZVwiIGdlc2V0enQgdW5kIHdlZGVyIC1uIG5vY2ggLWYgIgotImdlZ2ViZW47IFPDpHViZXJ1bmcgdmVyd2VpZ2VydCIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgYXVmIFwidHJ1ZVwiIGdlc2V0enQgdW5kIHdlZGVyIC1pLCAtbiBub2NoIC1mIGdlZ2ViZW47ICIKKyJcImNsZWFuXCIgdmVyd2VpZ2VydCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM3CisjOiBidWlsdGluL2NsZWFuLmM6OTA5Cittc2dpZCAiIgorImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1pLCAtbiBub3IgLWYgZ2l2ZW47ICIKKyJyZWZ1c2luZyB0byBjbGVhbiIKK21zZ3N0ciAiIgorImNsZWFuLnJlcXVpcmVGb3JjZSBzdGFuZGFyZG3DpMOfaWcgYXVmIFwidHJ1ZVwiIGdlc2V0enQgdW5kIHdlZGVyIC1pLCAtbiBub2NoIC0iCisiZiBnZWdlYmVuOyBcImNsZWFuXCIgdmVyd2VpZ2VydCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjM2CiBtc2dpZCAiZ2l0IGNsb25lIFtvcHRpb25zXSBbLS1dIDxyZXBvPiBbPGRpcj5dIgotbXNnc3RyICJnaXQgY2xvbmUgW09wdGlvbmVuXSBbLS1dIDxQcm9qZWt0YXJjaGl2PiBbPFZlcnplaWNobmlzPl0iCittc2dzdHIgImdpdCBjbG9uZSBbT3B0aW9uZW5dIFstLV0gPFJlcG9zaXRvcnk+IFs8VmVyemVpY2huaXM+XSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY1IGJ1aWx0aW4vZmV0Y2guYzo4MiBidWlsdGluL21lcmdlLmM6MjE0Ci0jOiBidWlsdGluL3B1c2guYzo0MzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NCBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIyOQorIzogYnVpbHRpbi9wdXNoLmM6NDYyCiBtc2dpZCAiZm9yY2UgcHJvZ3Jlc3MgcmVwb3J0aW5nIgogbXNnc3RyICJlcnp3aW5ndCBGb3J0c2Nocml0dHNhbnplaWdlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NgogbXNnaWQgImRvbid0IGNyZWF0ZSBhIGNoZWNrb3V0IgogbXNnc3RyICJrZWluIEF1c2NoZWNrZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2OCBidWlsdGluL2Nsb25lLmM6NzAgYnVpbHRpbi9pbml0LWRiLmM6NDg4CisjOiBidWlsdGluL2Nsb25lLmM6NjcgYnVpbHRpbi9jbG9uZS5jOjY5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4OAogbXNnaWQgImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIKLW1zZ3N0ciAiZXJzdGVsbHQgZWluIGJsb8OfZXMgUHJvamVrdGFyY2hpdiIKK21zZ3N0ciAiZXJzdGVsbHQgZWluIEJhcmUtUmVwb3NpdG9yeSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjczCisjOiBidWlsdGluL2Nsb25lLmM6NzIKIG1zZ2lkICJjcmVhdGUgYSBtaXJyb3IgcmVwb3NpdG9yeSAoaW1wbGllcyBiYXJlKSIKLW1zZ3N0ciAiZXJzdGVsbHQgZWluIFNwaWVnZWxhcmNoaXYgKGltcGxpemllcnQgYmxvw59lcyBQcm9qZWt0YXJjaGl2KSIKK21zZ3N0ciAiZXJzdGVsbHQgZWluIFNwaWVnZWxhcmNoaXYgKGltcGxpemllcnQgLS1iYXJlKSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc1CisjOiBidWlsdGluL2Nsb25lLmM6NzQKIG1zZ2lkICJ0byBjbG9uZSBmcm9tIGEgbG9jYWwgcmVwb3NpdG9yeSIKLW1zZ3N0ciAidW0gdm9uIGVpbmVtIGxva2FsZW4gUHJvamVrdGFyY2hpdiB6dSBrbG9uZW4iCittc2dzdHIgInVtIHZvbiBlaW5lbSBsb2thbGVuIFJlcG9zaXRvcnkgenUga2xvbmVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NgogbXNnaWQgImRvbid0IHVzZSBsb2NhbCBoYXJkbGlua3MsIGFsd2F5cyBjb3B5IgotbXNnc3RyICJ2ZXJ3ZW5kZXQgbG9rYWwga2VpbmUgaGFydGVuIExpbmtzLCBpbW1lciBLb3BpZW4iCittc2dzdHIgInZlcndlbmRldCBsb2thbCBrZWluZSBoYXJ0ZW4gVmVyd2Vpc2UsIGltbWVyIEtvcGllbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5CisjOiBidWlsdGluL2Nsb25lLmM6NzgKIG1zZ2lkICJzZXR1cCBhcyBzaGFyZWQgcmVwb3NpdG9yeSIKLW1zZ3N0ciAiRWlucmljaHR1bmcgYWxzIHZlcnRlaWx0ZXMgUHJvamVrdGFyY2hpdiIKK21zZ3N0ciAiRWlucmljaHR1bmcgYWxzIHZlcnRlaWx0ZXMgUmVwb3NpdG9yeSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxIGJ1aWx0aW4vY2xvbmUuYzo4MworIzogYnVpbHRpbi9jbG9uZS5jOjgwIGJ1aWx0aW4vY2xvbmUuYzo4MgogbXNnaWQgImluaXRpYWxpemUgc3VibW9kdWxlcyBpbiB0aGUgY2xvbmUiCi1tc2dzdHIgImluaXRpYWxpc2llcnQgVW50ZXJwcm9qZWt0ZSBpbSBLbG9uIgorbXNnc3RyICJpbml0aWFsaXNpZXJ0IFN1Ym1vZHVsZSBpbSBLbG9uIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg1CisjOiBidWlsdGluL2Nsb25lLmM6ODMgYnVpbHRpbi9pbml0LWRiLmM6NDg1CiBtc2dpZCAidGVtcGxhdGUtZGlyZWN0b3J5IgogbXNnc3RyICJWb3JsYWdlbnZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODUgYnVpbHRpbi9pbml0LWRiLmM6NDg2CisjOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg2CiBtc2dpZCAiZGlyZWN0b3J5IGZyb20gd2hpY2ggdGVtcGxhdGVzIHdpbGwgYmUgdXNlZCIKIG1zZ3N0ciAiVmVyemVpY2huaXMsIHZvbiB3ZWxjaGVtIGRpZSBWb3JsYWdlbiB2ZXJ3ZW5kZXQgd2VyZGVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NgogbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5IgotbXNnc3RyICJyZWZlcmVuemllcnQgUHJvamVrdGFyY2hpdiIKK21zZ3N0ciAicmVmZXJlbnppZXJ0IFJlcG9zaXRvcnkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OCBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CisjOiBidWlsdGluL2Nsb25lLmM6ODcgYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAogbXNnaWQgIm5hbWUiCiBtc2dzdHIgIk5hbWUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jbG9uZS5jOjg4CiBtc2dpZCAidXNlIDxuYW1lPiBpbnN0ZWFkIG9mICdvcmlnaW4nIHRvIHRyYWNrIHVwc3RyZWFtIgotbXNnc3RyICJ2ZXJ3ZW5kZXQgPE5hbWU+IHN0YXR0ICdvcmlnaW4nIGbDvHIgZXh0ZXJuZXMgUHJvamVrdGFyY2hpdiIKK21zZ3N0ciAidmVyd2VuZGV0IDxOYW1lPiBzdGF0dCAnb3JpZ2luJyBmw7xyIFVwc3RyZWFtLVJlcG9zaXRvcnkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MQorIzogYnVpbHRpbi9jbG9uZS5jOjkwCiBtc2dpZCAiY2hlY2tvdXQgPGJyYW5jaD4gaW5zdGVhZCBvZiB0aGUgcmVtb3RlJ3MgSEVBRCIKLW1zZ3N0ciAiIgotImNoZWNrdCA8WndlaWc+IGF1cywgYW5zdGF0dCBad2VpZ3NwaXR6ZSAoSEVBRCkgZGVzIGV4dGVybmVuIFByb2pla3RhcmNoaXZzIgorbXNnc3RyICJjaGVja3QgPEJyYW5jaD4gYXVzLCBhbnN0YXR0IEhFQUQgZGVzIFJlbW90ZS1SZXBvc2l0b3JpZXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MworIzogYnVpbHRpbi9jbG9uZS5jOjkyCiBtc2dpZCAicGF0aCB0byBnaXQtdXBsb2FkLXBhY2sgb24gdGhlIHJlbW90ZSIKIG1zZ3N0ciAiUGZhZCB6dSBcImdpdC11cGxvYWQtcGFja1wiIGF1ZiBkZXIgR2VnZW5zZWl0ZSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk0IGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MyBidWlsdGluL2ZldGNoLmM6ODMgYnVpbHRpbi9ncmVwLmM6NjYxCiBtc2dpZCAiZGVwdGgiCiBtc2dzdHIgIlRpZWZlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NAogbXNnaWQgImNyZWF0ZSBhIHNoYWxsb3cgY2xvbmUgb2YgdGhhdCBkZXB0aCIKIG1zZ3N0ciAiZXJzdGVsbHQgZWluZW4gZmxhY2hlbiBLbG9uIG1pdCBkaWVzZXIgVGllZmUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NworIzogYnVpbHRpbi9jbG9uZS5jOjk2CiBtc2dpZCAiY2xvbmUgb25seSBvbmUgYnJhbmNoLCBIRUFEIG9yIC0tYnJhbmNoIgotbXNnc3RyICJrbG9udCBudXIgZWluZW4gWndlaWcsIFp3ZWlnc3BpdHplIChIRUFEKSBvZGVyIC0tYnJhbmNoIgorbXNnc3RyICJrbG9udCBudXIgZWluZW4gQnJhbmNoLCBIRUFEIG9kZXIgLS1icmFuY2giCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OCBidWlsdGluL2luaXQtZGIuYzo0OTQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NyBidWlsdGluL2luaXQtZGIuYzo0OTQKIG1zZ2lkICJnaXRkaXIiCiBtc2dzdHIgIi5naXQtVmVyemVpY2huaXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OSBidWlsdGluL2luaXQtZGIuYzo0OTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5OCBidWlsdGluL2luaXQtZGIuYzo0OTUKIG1zZ2lkICJzZXBhcmF0ZSBnaXQgZGlyIGZyb20gd29ya2luZyB0cmVlIgotbXNnc3RyICJzZXBhcmllcnQgR2l0LVZlcnplaWNobmlzIHZvbSBBcmJlaXRzYmF1bSIKK21zZ3N0ciAic2VwYXJpZXJ0IEdpdC1WZXJ6ZWljaG5pcyB2b20gQXJiZWl0c3ZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJrZXk9dmFsdWUiCiBtc2dzdHIgIlNjaGzDvHNzZWw9V2VydCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjEwMQorIzogYnVpbHRpbi9jbG9uZS5jOjEwMAogbXNnaWQgInNldCBjb25maWcgaW5zaWRlIHRoZSBuZXcgcmVwb3NpdG9yeSIKLW1zZ3N0ciAic2V0enQgS29uZmlndXJhdGlvbiBpbm5lcmhhbGIgZGVzIG5ldWVuIFByb2pla3RhcmNoaXZzIgorbXNnc3RyICJzZXR6dCBLb25maWd1cmF0aW9uIGlubmVyaGFsYiBkZXMgbmV1ZW4gUmVwb3NpdG9yaWVzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MjU0CisjOiBidWlsdGluL2Nsb25lLmM6MjUzCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5ICclcycgaXMgbm90IGEgbG9jYWwgcmVwb3NpdG9yeS4iCi1tc2dzdHIgIlJlZmVyZW56aWVydGVzIFByb2pla3RhcmNoaXYgJyVzJyBpc3Qga2VpbiBsb2thbGVzIFByb2pla3RhcmNoaXYuIgorbXNnc3RyICJSZWZlcmVuemllcnRlcyBSZXBvc2l0b3J5ICclcycgaXN0IGtlaW4gbG9rYWxlcyBSZXBvc2l0b3J5LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMxNworIzogYnVpbHRpbi9jbG9uZS5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICJGZWhsZXIgYmVpbSBFcnN0ZWxsZW4gdm9uIFZlcnplaWNobmlzICclcyciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTkgYnVpbHRpbi9kaWZmLmM6NzcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTggYnVpbHRpbi9kaWZmLmM6NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJyVzJyIKIG1zZ3N0ciAiS29ubnRlICclcycgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgZXhpc3RzIGFuZCBpcyBub3QgYSBkaXJlY3RvcnkiCiBtc2dzdHIgIiVzIGV4aXN0aWVydCB1bmQgaXN0IGtlaW4gVmVyemVpY2huaXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMzUKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJXNcbiIKIG1zZ3N0ciAiS29ubnRlICVzIG5pY2h0IGxlc2VuXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNTcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaW5rICclcyciCi1tc2dzdHIgIktvbm50ZSBWZXJrbsO8cGZ1bmcgJyVzJyBuaWNodCBlcnN0ZWxsZW4iCittc2dzdHIgIktvbm50ZSBWZXJ3ZWlzICclcycgbmljaHQgZXJzdGVsbGVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzYxCisjOiBidWlsdGluL2Nsb25lLmM6MzYwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjb3B5IGZpbGUgdG8gJyVzJyIKIG1zZ3N0ciAiS29ubnRlIERhdGVpIG5pY2h0IG5hY2ggJyVzJyBrb3BpZXJlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM4NAorIzogYnVpbHRpbi9jbG9uZS5jOjM4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJkb25lLlxuIgogbXNnc3RyICJGZXJ0aWcuXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozOTcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozOTYKIG1zZ2lkICIiCiAiQ2xvbmUgc3VjY2VlZGVkLCBidXQgY2hlY2tvdXQgZmFpbGVkLlxuIgogIllvdSBjYW4gaW5zcGVjdCB3aGF0IHdhcyBjaGVja2VkIG91dCB3aXRoICdnaXQgc3RhdHVzJ1xuIgpAQCAtMzYyMSw5NiArMzgxOSwxMTAgQEAKICJTaWUga8O2bm5lbiBtaXQgJ2dpdCBzdGF0dXMnIHByw7xmZW4sIHdhcyBhdXNnZWNoZWNrdCB3b3JkZW4gaXN0XG4iCiAidW5kIGRhcyBBdXNjaGVja2VuIG1pdCAnZ2l0IGNoZWNrb3V0IC1mIEhFQUQnIGVybmV1dCB2ZXJzdWNoZW4uXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo0NzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZpbmQgcmVtb3RlIGJyYW5jaCAlcyB0byBjbG9uZS4iCi1tc2dzdHIgIktvbm50ZSB6dSBrbG9uZW5kZW4gZXh0ZXJuZXIgWndlaWcgJXMgbmljaHQgZmluZGVuLiIKK21zZ3N0ciAiS29ubnRlIHp1IGtsb25lbmRlbiBSZW1vdGUtQnJhbmNoICVzIG5pY2h0IGZpbmRlbi4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo1NTAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hlY2tpbmcgY29ubmVjdGl2aXR5Li4uICIKK21zZ3N0ciAiUHLDvGZlIEtvbm5la3Rpdml0w6R0Li4uICIKKworIzogYnVpbHRpbi9jbG9uZS5jOjU1OAogbXNnaWQgInJlbW90ZSBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzIgotbXNnc3RyICJGZXJuYXJjaGl2IGhhdCBuaWNodCBhbGxlIGVyZm9yZGVybGljaGVuIE9iamVrdGUgZ2VzZW5kZXQuIgorbXNnc3RyICJSZW1vdGUtUmVwb3NpdG9yeSBoYXQgbmljaHQgYWxsZSBlcmZvcmRlcmxpY2hlbiBPYmpla3RlIGdlc2VuZGV0LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjYxMAorIzogYnVpbHRpbi9jbG9uZS5jOjU2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgIkZlcnRpZ1xuIgorCisjOiBidWlsdGluL2Nsb25lLmM6NjIxCiBtc2dpZCAicmVtb3RlIEhFQUQgcmVmZXJzIHRvIG5vbmV4aXN0ZW50IHJlZiwgdW5hYmxlIHRvIGNoZWNrb3V0LlxuIgogbXNnc3RyICIiCi0iRXh0ZXJuZSBad2VpZ3NwaXR6ZSAoSEVBRCkgYmV6aWVodCBzaWNoIGF1ZiBlaW5lIG5pY2h0IGV4aXN0aWVyZW5kZSBSZWZlcmVueiAiCi0idW5kIGthbm4gbmljaHQgYXVzZ2VjaGVja3Qgd2VyZGVuLlxuIgorIkV4dGVybmVyIEhFQUQgYmV6aWVodCBzaWNoIGF1ZiBlaW5lIG5pY2h0IGV4aXN0aWVyZW5kZSBSZWZlcmVueiB1bmQga2FubiAiCisibmljaHQgYXVzZ2VjaGVja3Qgd2VyZGVuLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjQxCisjOiBidWlsdGluL2Nsb25lLmM6NjUyCiBtc2dpZCAidW5hYmxlIHRvIGNoZWNrb3V0IHdvcmtpbmcgdHJlZSIKLW1zZ3N0ciAiQXJiZWl0c2JhdW0ga29ubnRlIG5pY2h0IGF1c2dlY2hlY2t0IHdlcmRlbiIKK21zZ3N0ciAiQXJiZWl0c3ZlcnplaWNobmlzIGtvbm50ZSBuaWNodCBhdXNnZWNoZWNrdCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NDkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NjAKIG1zZ2lkICJUb28gbWFueSBhcmd1bWVudHMuIgogbXNnc3RyICJadSB2aWVsZSBBcmd1bWVudGUuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzUzCi1tc2dpZCAiWW91IG11c3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgdG8gY2xvbmUuIgotbXNnc3RyICJTaWUgbcO8c3NlbiBlaW4gUHJvamVrdGFyY2hpdiB6dW0gS2xvbmVuIGFuZ2ViZW4uIgotCiAjOiBidWlsdGluL2Nsb25lLmM6NzY0Cittc2dpZCAiWW91IG11c3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgdG8gY2xvbmUuIgorbXNnc3RyICJTaWUgbcO8c3NlbiBlaW4gUmVwb3NpdG9yeSB6dW0gS2xvbmVuIGFuZ2ViZW4uIgorCisjOiBidWlsdGluL2Nsb25lLmM6Nzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIi0tYmFyZSBhbmQgLS1vcmlnaW4gJXMgb3B0aW9ucyBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAiRGllIE9wdGlvbmVuIC0tYmFyZSB1bmQgLS1vcmlnaW4gJXMgc2luZCBpbmtvbXBhdGliZWwuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzY3CisjOiBidWlsdGluL2Nsb25lLmM6Nzc4CiBtc2dpZCAiLS1iYXJlIGFuZCAtLXNlcGFyYXRlLWdpdC1kaXIgYXJlIGluY29tcGF0aWJsZS4iCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLWJhcmUgdW5kIC0tc2VwYXJhdGUtZ2l0LWRpciBzaW5kIGlua29tcGF0aWJlbC4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVwb3NpdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0IgotbXNnc3RyICJQcm9qZWt0YXJjaGl2ICclcycgZXhpc3RpZXJ0IG5pY2h0LiIKK21zZ3N0ciAiUmVwb3NpdG9yeSAnJXMnIGV4aXN0aWVydCBuaWNodC4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTYKIG1zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb24gLS1kZXB0aCB3aXJkIGluIGxva2FsZW4gS2xvbmVuIGlnbm9yaWVydDsgYmVudXR6ZW4gU2llICIKICJzdGF0dGRlc3NlbiBmaWxlOi8vIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzk1CisjOiBidWlsdGluL2Nsb25lLmM6Nzk4Cittc2dpZCAiLS1sb2NhbCBpcyBpZ25vcmVkIgorbXNnc3RyICItLWxvY2FsIHdpcmQgaWdub3JpZXJ0IgorCisjOiBidWlsdGluL2Nsb25lLmM6ODA4CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlc3RpbmF0aW9uIHBhdGggJyVzJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGFuIGVtcHR5IGRpcmVjdG9yeS4iCiBtc2dzdHIgIlppZWxwZmFkICclcycgZXhpc3RpZXJ0IGJlcmVpdHMgdW5kIGlzdCBrZWluIGxlZXJlcyBWZXJ6ZWljaG5pcy4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MDUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAid29ya2luZyB0cmVlICclcycgYWxyZWFkeSBleGlzdHMuIgotbXNnc3RyICJBcmJlaXRzYmF1bSAnJXMnIGV4aXN0aWVydCBiZXJlaXRzLiIKK21zZ3N0ciAiQXJiZWl0c3ZlcnplaWNobmlzICclcycgZXhpc3RpZXJ0IGJlcmVpdHMuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODE4IGJ1aWx0aW4vY2xvbmUuYzo4MzAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzEgYnVpbHRpbi9jbG9uZS5jOjg0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGxlYWRpbmcgZGlyZWN0b3JpZXMgb2YgJyVzJyIKIG1zZ3N0ciAiS29ubnRlIGbDvGhyZW5kZSBWZXJ6ZWljaG5pc3NlIHZvbiAnJXMnIG5pY2h0IGVyc3RlbGxlbi4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSB3b3JrIHRyZWUgZGlyICclcycuIgogbXNnc3RyICJLb25udGUgQXJiZWl0c3ZlcnplaWNobmlzICclcycgbmljaHQgZXJzdGVsbGVuLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0MAorIzogYnVpbHRpbi9jbG9uZS5jOjg1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gYmFyZSByZXBvc2l0b3J5ICclcycuLi5cbiIKLW1zZ3N0ciAiS2xvbmUgaW4gYmxvw59lcyBQcm9qZWt0YXJjaGl2ICclcycuLi5cbiIKK21zZ3N0ciAiS2xvbmUgaW4gQmFyZS1SZXBvc2l0b3J5ICclcycuLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0MgorIzogYnVpbHRpbi9jbG9uZS5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gJyVzJy4uLlxuIgogbXNnc3RyICJLbG9uZSBuYWNoICclcycuLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg3NworIzogYnVpbHRpbi9jbG9uZS5jOjg5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBjbG9uZSAlcyIKIG1zZ3N0ciAiV2Vpw58gbmljaHQgd2llICVzIHp1IGtsb25lbiBpc3QuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTI2CisjOiBidWlsdGluL2Nsb25lLmM6OTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW90ZSBicmFuY2ggJXMgbm90IGZvdW5kIGluIHVwc3RyZWFtICVzIgotbXNnc3RyICJleHRlcm5lciBad2VpZyAlcyBuaWNodCBpbSBhbmRlcmVuIFByb2pla3RhcmNoaXYgJXMgZ2VmdW5kZW4iCittc2dzdHIgIlJlbW90ZS1CcmFuY2ggJXMgbmljaHQgaW0gVXBzdHJlYW0tUmVwb3NpdG9yeSAlcyBnZWZ1bmRlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzMworIzogYnVpbHRpbi9jbG9uZS5jOjk0OQogbXNnaWQgIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgcmVwb3NpdG9yeS4iCi1tc2dzdHIgIlNpZSBzY2hlaW5lbiBlaW4gbGVlcmVzIFByb2pla3RhcmNoaXYgZ2VrbG9udCB6dSBoYWJlbi4iCittc2dzdHIgIlNpZSBzY2hlaW5lbiBlaW4gbGVlcmVzIFJlcG9zaXRvcnkgZ2VrbG9udCB6dSBoYWJlbi4iCiAKICM6IGJ1aWx0aW4vY29sdW1uLmM6OQogbXNnaWQgImdpdCBjb2x1bW4gW29wdGlvbnNdIgpAQCAtMzc0NCwxNSArMzk1NiwxNSBAQAogbXNnaWQgIi0tY29tbWFuZCBtdXN0IGJlIHRoZSBmaXJzdCBhcmd1bWVudCIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLWNvbW1hbmQgbXVzcyBhbiBlcnN0ZXIgU3RlbGxlIHN0ZWhlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzUKIG1zZ2lkICJnaXQgY29tbWl0IFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiBtc2dzdHIgImdpdCBjb21taXQgW09wdGlvbmVuXSBbLS1dIDxQZmFkc3BlemlmaWthdGlvbj4uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDAKIG1zZ2lkICJnaXQgc3RhdHVzIFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiBtc2dzdHIgImdpdCBzdGF0dXMgW09wdGlvbmVuXSBbLS1dIDxQZmFkc3BlemlmaWthdGlvbj4uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDUKIG1zZ2lkICIiCiAiWW91ciBuYW1lIGFuZCBlbWFpbCBhZGRyZXNzIHdlcmUgY29uZmlndXJlZCBhdXRvbWF0aWNhbGx5IGJhc2VkXG4iCiAib24geW91ciB1c2VybmFtZSBhbmQgaG9zdG5hbWUuIFBsZWFzZSBjaGVjayB0aGF0IHRoZXkgYXJlIGFjY3VyYXRlLlxuIgpAQCAtMzc3MywxMjkgKzM5ODUsMTQ0IEBACiAiICAgIGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiSWhyIE5hbWVcIlxuIgogIiAgICBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgaWhyZUBlbWFpbGFkcmVzc2UuZGVcbiIKICJcbiIKLSJOYWNoZGVtIFNpZSBkYXMgZ2V0YW4gaGFzdCwga8O2bm5lbiBTaWUgSWhyZSBJZGVudGl0w6R0IGbDvHIgZGllc2UgVmVyc2lvbiAiCisiTmFjaGRlbSBTaWUgZGFzIGdldGFuIGhhc3QsIGvDtm5uZW4gU2llIElocmUgSWRlbnRpdMOkdCBmw7xyIGRpZXNlbiBDb21taXQgIgogIsOkbmRlcm4gbWl0OlxuIgogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYW1lbmQgLS1yZXNldC1hdXRob3JcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NgorIzogYnVpbHRpbi9jb21taXQuYzo1NwogbXNnaWQgIiIKICJZb3UgYXNrZWQgdG8gYW1lbmQgdGhlIG1vc3QgcmVjZW50IGNvbW1pdCwgYnV0IGRvaW5nIHNvIHdvdWxkIG1ha2VcbiIKICJpdCBlbXB0eS4gWW91IGNhbiByZXBlYXQgeW91ciBjb21tYW5kIHdpdGggLS1hbGxvdy1lbXB0eSwgb3IgeW91IGNhblxuIgogInJlbW92ZSB0aGUgY29tbWl0IGVudGlyZWx5IHdpdGggXCJnaXQgcmVzZXQgSEVBRF5cIi5cbiIKIG1zZ3N0ciAiIgotIlNpZSBmcmFndGVuIGRpZSBqw7xuZ3N0ZSBWZXJzaW9uIG5hY2h6dWJlc3Nlcm4sIGFiZXIgZGFzIHfDvHJkZSBkaWVzZSBsZWVyXG4iCi0ibWFjaGVuLiBTaWUga8O2bm5lbiBJaHIgS29tbWFuZG8gbWl0IC0tYWxsb3ctZW1wdHkgd2llZGVyaG9sZW4sIG9kZXIgZGllXG4iCi0iVmVyc2lvbiBtaXQgXCJnaXQgcmVzZXQgSEVBRF5cIiB2b2xsc3TDpG5kaWcgZW50ZmVybmVuLlxuIgorIlNpZSBmcmFndGVuIGRlbiBqw7xuZ3N0ZW4gQ29tbWl0IG5hY2h6dWJlc3Nlcm4sIGFiZXIgZGFzIHfDvHJkZSBkaWVzZW4gbGVlclxuIgorIm1hY2hlbi4gU2llIGvDtm5uZW4gSWhyIEtvbW1hbmRvIG1pdCAtLWFsbG93LWVtcHR5IHdpZWRlcmhvbGVuLCBvZGVyIGRpZXNlblxuIgorIkNvbW1pdCBtaXQgXCJnaXQgcmVzZXQgSEVBRF5cIiB2b2xsc3TDpG5kaWcgZW50ZmVybmVuLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxCisjOiBidWlsdGluL2NvbW1pdC5jOjYyCiBtc2dpZCAiIgogIlRoZSBwcmV2aW91cyBjaGVycnktcGljayBpcyBub3cgZW1wdHksIHBvc3NpYmx5IGR1ZSB0byBjb25mbGljdCByZXNvbHV0aW9uLlxuIgogIklmIHlvdSB3aXNoIHRvIGNvbW1pdCBpdCBhbnl3YXksIHVzZTpcbiIKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCi0iT3RoZXJ3aXNlLCBwbGVhc2UgdXNlICdnaXQgcmVzZXQnXG4iCiBtc2dzdHIgIiIKICJEZXIgbGV0enRlIFwiY2hlcnJ5LXBpY2tcIiBpc3QgamV0enQgbGVlciwgbcO2Z2xpY2hlcndlaXNlIGR1cmNoIGVpbmUgIgogIktvbmZsaWt0YXVmbMO2c3VuZy5cbiIKLSJXZW5uIFNpZSBkaWVzIHRyb3R6ZGVtIGVpbnRyYWdlbiB3b2xsZW4sIGJlbnV0emVuIFNpZTpcbiIKKyJXZW5uIFNpZSBkaWVzIHRyb3R6ZGVtIGNvbW1pdHRlbiB3b2xsZW4sIGJlbnV0emVuIFNpZTpcbiIKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCi0iQW5kZXJuZmFsbHMgYmVudXR6ZW4gU2llIGJpdHRlICdnaXQgcmVzZXQnXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MjYwCisjOiBidWlsdGluL2NvbW1pdC5jOjY5Cittc2dpZCAiT3RoZXJ3aXNlLCBwbGVhc2UgdXNlICdnaXQgcmVzZXQnXG4iCittc2dzdHIgIkFuZGVybmZhbGxzIGJlbnV0emVuIFNpZSBiaXR0ZSAnZ2l0IHJlc2V0J1xuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjcyCittc2dpZCAiIgorIklmIHlvdSB3aXNoIHRvIHNraXAgdGhpcyBjb21taXQsIHVzZTpcbiIKKyJcbiIKKyIgICAgZ2l0IHJlc2V0XG4iCisiXG4iCisiVGhlbiBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIgd2lsbCByZXN1bWUgY2hlcnJ5LXBpY2tpbmdcbiIKKyJ0aGUgcmVtYWluaW5nIGNvbW1pdHMuXG4iCittc2dzdHIgIiIKKyJXZW5uIFNpZSBkaWVzZW4gQ29tbWl0IGF1c2xhc3NlbiBtw7ZjaHRlbiwgYmVudXR6ZW4gU2llOlxuIgorIlxuIgorIiAgICBnaXQgcmVzZXRcbiIKKyJcbiIKKyJCZW51dHplbiBTaWUgYW5zY2hsaWXDn2VuZCBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIsIHVtIGRpZVxuIgorIkNoZXJyeS1QaWNrLU9wZXJhdGlvbiBtaXQgZGVuIHZlcmJsZWliZW5kZW4gQ29tbWl0cyBmb3J0enVzZXR6ZW4uXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Mjc5CiBtc2dpZCAiZmFpbGVkIHRvIHVucGFjayBIRUFEIHRyZWUgb2JqZWN0IgotbXNnc3RyICJGZWhsZXIgYmVpbSBFbnRwYWNrZW4gZGVzIEJhdW0tT2JqZWt0ZXMgZGVyIFp3ZWlnc3BpdHplIChIRUFEKS4iCittc2dzdHIgIkZlaGxlciBiZWltIEVudHBhY2tlbiBkZXMgXCJUcmVlXCItT2JqZWt0ZXMgdm9uIEhFQUQuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMwMgorIzogYnVpbHRpbi9jb21taXQuYzozMjEKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRlbXBvcmFyeSBpbmRleCIKLW1zZ3N0ciAiS29ubnRlIHRlbXBvcsOkcmUgQmVyZWl0c3RlbGx1bmcgbmljaHQgZXJzdGVsbGVuLiIKK21zZ3N0ciAiS29ubnRlIHRlbXBvcsOkcmUgU3RhZ2luZy1BcmVhIG5pY2h0IGVyc3RlbGxlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzA4CisjOiBidWlsdGluL2NvbW1pdC5jOjMyNwogbXNnaWQgImludGVyYWN0aXZlIGFkZCBmYWlsZWQiCiBtc2dzdHIgImludGVyYWt0aXZlcyBIaW56dWbDvGdlbiBmZWhsZ2VzY2hsYWdlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNDEgYnVpbHRpbi9jb21taXQuYzozNjIgYnVpbHRpbi9jb21taXQuYzo0MTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzYwIGJ1aWx0aW4vY29tbWl0LmM6MzgxIGJ1aWx0aW4vY29tbWl0LmM6NDMxCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ld19pbmRleCBmaWxlIgogbXNnc3RyICJLb25udGUgbmV3X2luZGV4IERhdGVpIG5pY2h0IHNjaHJlaWJlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDEyCiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgbWVyZ2UuIgotbXNnc3RyICIiCi0iS2FubiBrZWluZSBwYXJ0aWVsbGUgRWludHJhZ3VuZyBkdXJjaGbDvGhyZW4sIHfDpGhyZW5kIGVpbmUgWnVzYW1tZW5mw7xocnVuZyBpbSAiCi0iR2FuZ2UgaXN0LiIKK21zZ3N0ciAiS2FubiBrZWluZW4gVGVpbC1Db21taXQgZHVyY2hmw7xocmVuLCB3w6RocmVuZCBlaW4gTWVyZ2UgaW0gR2FuZ2UgaXN0LiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDE0CiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgY2hlcnJ5LXBpY2suIgogbXNnc3RyICIiCi0iS2FubiBrZWluZSBwYXJ0aWVsbGUgRWludHJhZ3VuZyBkdXJjaGbDvGhyZW4sIHfDpGhyZW5kIFwiY2hlcnJ5LXBpY2tcIiBpbSAiCi0iR2FuZ2UgaXN0LiIKKyJLYW5uIGtlaW5lbiBUZWlsLUNvbW1pdCBkdXJjaGbDvGhyZW4sIHfDpGhyZW5kIFwiY2hlcnJ5LXBpY2tcIiBpbSBHYW5nZSBpc3QuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQwNQorIzogYnVpbHRpbi9jb21taXQuYzo0MjQKIG1zZ2lkICJjYW5ub3QgcmVhZCB0aGUgaW5kZXgiCi1tc2dzdHIgIkthbm4gQmVyZWl0c3RlbGx1bmcgbmljaHQgbGVzZW4iCittc2dzdHIgIkthbm4gU3RhZ2luZy1BcmVhIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQyNQorIzogYnVpbHRpbi9jb21taXQuYzo0NDQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgdGVtcG9yYXJ5IGluZGV4IGZpbGUiCi1tc2dzdHIgIktvbm50ZSB0ZW1wb3LDpHJlIEJlcmVpdHN0ZWxsdW5nc2RhdGVpIG5pY2h0IHNjaHJlaWJlbi4iCittc2dzdHIgIktvbm50ZSB0ZW1wb3LDpHJlIFN0YWdpbmctQXJlYS1EYXRlaSBuaWNodCBzY2hyZWliZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjUxMyBidWlsdGluL2NvbW1pdC5jOjUxOQorIzogYnVpbHRpbi9jb21taXQuYzo1MzUgYnVpbHRpbi9jb21taXQuYzo1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBjb21taXQ6ICVzIgotbXNnc3RyICJVbmfDvGx0aWdlIFZlcnNpb246ICVzIgorbXNnc3RyICJVbmfDvGx0aWdlciBDb21taXQ6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU0MgorIzogYnVpbHRpbi9jb21taXQuYzo1NjMKIG1zZ2lkICJtYWxmb3JtZWQgLS1hdXRob3IgcGFyYW1ldGVyIgogbXNnc3RyICJGZWhsZXJoYWZ0ZXIgLS1hdXRob3IgUGFyYW1ldGVyIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU2MgorIzogYnVpbHRpbi9jb21taXQuYzo1ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlkZW50IHN0cmluZzogJyVzJyIKLW1zZ3N0ciAiRmVobGVyaGFmdGUgSWRlbnRpZmlrYXRpb25zLVN0cmluZzogJyVzJyIKK21zZ3N0ciAiRmVobGVyaGFmdGVyIElkZW50LVN0cmluZzogJyVzJyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MDAgYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9jb21taXQuYzo5NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjIxIGJ1aWx0aW4vY29tbWl0LmM6NjU0IGJ1aWx0aW4vY29tbWl0LmM6OTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBsb29rdXAgY29tbWl0ICVzIgotbXNnc3RyICJLb25udGUgVmVyc2lvbiAlcyBuaWNodCBuYWNoc2NobGFnZW4iCittc2dzdHIgIktvbm50ZSBDb21taXQgJXMgbmljaHQgbmFjaHNjaGxhZ2VuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxMiBidWlsdGluL3Nob3J0bG9nLmM6MjcwCisjOiBidWlsdGluL2NvbW1pdC5jOjYzMyBidWlsdGluL3Nob3J0bG9nLmM6MjcxCiAjLCBjLWZvcm1hdAogbXNnaWQgIihyZWFkaW5nIGxvZyBtZXNzYWdlIGZyb20gc3RhbmRhcmQgaW5wdXQpXG4iCiBtc2dzdHIgIihsZXNlIExvZy1OYWNocmljaHQgdm9uIFN0YW5kYXJkLUVpbmdhYmUpXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjE0CisjOiBidWlsdGluL2NvbW1pdC5jOjYzNQogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJLb25udGUgTG9nIG5pY2h0IHZvbiBTdGFuZGFyZC1FaW5nYWJlIGxlc2VuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MTgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjM5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmaWxlICclcyciCiBtc2dzdHIgIktvbm50ZSBMb2ctRGF0ZWkgJyVzJyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MjQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ1CiBtc2dpZCAiY29tbWl0IGhhcyBlbXB0eSBtZXNzYWdlIgotbXNnc3RyICJWZXJzaW9uIGhhdCBlaW5lIGxlZXJlIEJlc2NocmVpYnVuZyIKK21zZ3N0ciAiQ29tbWl0IGhhdCBlaW5lIGxlZXJlIEJlc2NocmVpYnVuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjYxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTVNHIgogbXNnc3RyICJLb25udGUgTUVSR0VfTVNHIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0NAorIzogYnVpbHRpbi9jb21taXQuYzo2NjUKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBTUVVBU0hfTVNHIgogbXNnc3RyICJLb25udGUgU1FVQVNIX01TRyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjY5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkICclcyciCiBtc2dzdHIgIktvbm50ZSAnJXMnIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcwOQorIzogYnVpbHRpbi9jb21taXQuYzo3MzAKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgY29tbWl0IHRlbXBsYXRlIgotbXNnc3RyICJLb25udGUgVmVyc2lvbnN2b3JsYWdlIG5pY2h0IHNjaHJlaWJlbiIKK21zZ3N0ciAiS29ubnRlIENvbW1pdC1Wb3JsYWdlIG5pY2h0IHNjaHJlaWJlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM5MDUsMTIgKzQxMzIsMTIgQEAKICJhbmQgdHJ5IGFnYWluLlxuIgogbXNnc3RyICIiCiAiXG4iCi0iRXMgc2llaHQgc28gYXVzLCBhbHMgdHJhZ2VuIFNpZSBlaW5lIFp1c2FtbWVuZsO8aHJ1bmcgZWluLlxuIgorIkVzIHNpZWh0IHNvIGF1cywgYWxzIGNvbW1pdHRlbiBTaWUgZWluZW4gTWVyZ2UuXG4iCiAiRmFsbHMgZGFzIG5pY2h0IGtvcnJla3QgaXN0LCBsw7ZzY2hlbiBTaWUgYml0dGUgZGllIERhdGVpXG4iCiAiXHQlc1xuIgogInVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM5MjAsNDA2ICs0MTQ3LDQwNiBAQAogImFuZCB0cnkgYWdhaW4uXG4iCiBtc2dzdHIgIiIKICJcbiIKLSJFcyBzaWVodCBzbyBhdXMsIGFscyB0cmFnZW4gU2llIGVpbiBcImNoZXJyeS1waWNrXCIgZWluLlxuIgorIkVzIHNpZWh0IHNvIGF1cywgYWxzIGNvbW1pdHRlbiBTaWUgZWluZW4gXCJjaGVycnktcGlja1wiLlxuIgogIkZhbGxzIGRhcyBuaWNodCBrb3JyZWt0IGlzdCwgbMO2c2NoZW4gU2llIGJpdHRlIGRpZSBEYXRlaVxuIgogIlx0JXNcbiIKICJ1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzM3CisjOiBidWlsdGluL2NvbW1pdC5jOjc1OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgogIndpdGggJyVjJyB3aWxsIGJlIGlnbm9yZWQsIGFuZCBhbiBlbXB0eSBtZXNzYWdlIGFib3J0cyB0aGUgY29tbWl0LlxuIgogbXNnc3RyICIiCi0iQml0dGUgZ2ViZW4gU2llIGVpbmUgVmVyc2lvbnNiZXNjaHJlaWJ1bmcgZsO8ciBJaHJlIMOEbmRlcnVuZ2VuIGVpbi4gWmVpbGVuLFxuIgotImRpZSBtaXQgJyVjJyBiZWdpbm5lbiwgd2VyZGVuIGlnbm9yaWVydCwgdW5kIGVpbmUgbGVlcmUgIgotIlZlcnNpb25zYmVzY2hyZWlidW5nXG4iCi0iYnJpY2h0IGRpZSBFaW50cmFndW5nIGFiLlxuIgorIkJpdHRlIGdlYmVuIFNpZSBlaW5lIENvbW1pdC1CZXNjaHJlaWJ1bmcgZsO8ciBJaHJlIMOEbmRlcnVuZ2VuIGVpbi4gWmVpbGVuLFxuIgorImRpZSBtaXQgJyVjJyBiZWdpbm5lbiwgd2VyZGVuIGlnbm9yaWVydCwgdW5kIGVpbmUgbGVlcmUgQmVzY2hyZWlidW5nXG4iCisiYnJpY2h0IGRlbiBDb21taXQgYWIuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzQyCisjOiBidWlsdGluL2NvbW1pdC5jOjc2MwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgogIndpdGggJyVjJyB3aWxsIGJlIGtlcHQ7IHlvdSBtYXkgcmVtb3ZlIHRoZW0geW91cnNlbGYgaWYgeW91IHdhbnQgdG8uXG4iCiAiQW4gZW1wdHkgbWVzc2FnZSBhYm9ydHMgdGhlIGNvbW1pdC5cbiIKIG1zZ3N0ciAiIgotIkJpdHRlIGdlYmVuIFNpZSBlaW5lIFZlcnNpb25zYmVzY2hyZWlidW5nIGbDvHIgSWhyZSDDhG5kZXJ1bmdlbiBlaW4uIFplaWxlbiwgIgorIkJpdHRlIGdlYmVuIFNpZSBlaW5lIENvbW1pdC1CZXNjaHJlaWJ1bmcgZsO8ciBJaHJlIMOEbmRlcnVuZ2VuIGVpbi4gWmVpbGVuLCAiCiAiZGllXG4iCiAibWl0ICclYycgYmVnaW5uZW4sIHdlcmRlbiBiZWliZWhhbHRlbjsgd2VubiBTaWUgbcO2Y2h0ZW4sIGvDtm5uZW4gU2llIGRpZXNlICIKICJlbnRmZXJuZW4uXG4iCi0iRWluZSBsZWVyZSBWZXJzaW9uc2Jlc2NocmVpYnVuZyBicmljaHQgZGllIEVpbnRyYWd1bmcgYWIuXG4iCisiRWluZSBsZWVyZSBCZXNjaHJlaWJ1bmcgYnJpY2h0IGRlbiBDb21taXQgYWIuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzU1CisjOiBidWlsdGluL2NvbW1pdC5jOjc3NgogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0F1dGhvcjogICAgJXMiCiBtc2dzdHIgIiVzQXV0b3I6ICAgICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc2MgorIzogYnVpbHRpbi9jb21taXQuYzo3ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNDb21taXR0ZXI6ICVzIgotbXNnc3RyICIlc0VpbnRyYWdlbmRlcjogJXMiCittc2dzdHIgIiVzQ29tbWl0LUVyc3RlbGxlcjogJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzgyCisjOiBidWlsdGluL2NvbW1pdC5jOjgwMwogbXNnaWQgIkNhbm5vdCByZWFkIGluZGV4IgotbXNnc3RyICJLYW5uIEJlcmVpdHN0ZWxsdW5nIG5pY2h0IGxlc2VuIgorbXNnc3RyICJLYW5uIFN0YWdpbmctQXJlYSBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODQ1CiBtc2dpZCAiRXJyb3IgYnVpbGRpbmcgdHJlZXMiCi1tc2dzdHIgIkZlaGxlciBiZWltIEVyemV1Z2VuIGRlciBad2VpZ2UiCittc2dzdHIgIkZlaGxlciBiZWltIEVyemV1Z2VuIGRlciBcIlRyZWVcIi1PYmpla3RlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjgzNCBidWlsdGluL3RhZy5jOjM1OQorIzogYnVpbHRpbi9jb21taXQuYzo4NjAgYnVpbHRpbi90YWcuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUGxlYXNlIHN1cHBseSB0aGUgbWVzc2FnZSB1c2luZyBlaXRoZXIgLW0gb3IgLUYgb3B0aW9uLlxuIgotbXNnc3RyICJCaXR0ZSBsaWVmZXJlIGVpbmUgQmVzY2hyZWlidW5nIGVudHdlZGVyIG1pdCBkZXIgT3B0aW9uIC1tIG9kZXIgLUYuXG4iCittc2dzdHIgIiIKKyJCaXR0ZSBsaWVmZXJuIFNpZSBlaW5lIEJlc2NocmVpYnVuZyBlbnR3ZWRlciBtaXQgZGVyIE9wdGlvbiAtbSBvZGVyIC1GLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjkzMQorIzogYnVpbHRpbi9jb21taXQuYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gZXhpc3RpbmcgYXV0aG9yIGZvdW5kIHdpdGggJyVzJyIKIG1zZ3N0ciAiS2VpbiBleGlzdGllcmVuZGVyIEF1dG9yIG1pdCAnJXMnIGdlZnVuZGVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NDYgYnVpbHRpbi9jb21taXQuYzoxMTQwCisjOiBidWlsdGluL2NvbW1pdC5jOjk3MiBidWlsdGluL2NvbW1pdC5jOjEyMDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB1bnRyYWNrZWQgZmlsZXMgbW9kZSAnJXMnIgogbXNnc3RyICJVbmfDvGx0aWdlciBNb2R1cyAnJXMnIGbDvHIgdW5iZW9iYWNodGV0ZSBEYXRlaWVuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk3NgorIzogYnVpbHRpbi9jb21taXQuYzoxMDA5Cittc2dpZCAiLS1sb25nIGFuZCAteiBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICJEaWUgT3B0aW9uZW4gLS1sb25nIHVuZCAteiBzaW5kIGlua29tcGF0aWJlbC4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOQogbXNnaWQgIlVzaW5nIGJvdGggLS1yZXNldC1hdXRob3IgYW5kIC0tYXV0aG9yIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uZW4gLS1yZXNldC1hdXRob3IgdW5kIC0tYXV0aG9yIGvDtm5uZW4gbmljaHQgZ2VtZWluc2FtIHZlcndlbmRldCAiCiAid2VyZGVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5ODcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MAogbXNnaWQgIllvdSBoYXZlIG5vdGhpbmcgdG8gYW1lbmQuIgotbXNnc3RyICJTaWUgaGFiZW4gbmljaHRzIHp1bSBuYWNoYmVzc2Vybi4iCittc2dzdHIgIlNpZSBoYWJlbiBuaWNodHMgZsO8ciBcIi0tYW1lbmRcIi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTkwCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSAtLSBjYW5ub3QgYW1lbmQuIgotbXNnc3RyICJFaW5lIFp1c2FtbWVuZsO8aHJ1bmcgaXN0IGltIEdhbmdlIC0tIGthbm4gbmljaHQgbmFjaGJlc3Nlcm4uIgorbXNnc3RyICJFaW4gTWVyZ2UgaXN0IGltIEdhbmdlIC0tIGthbm4gXCItLWFtZW5kXCIgbmljaHQgYXVzZsO8aHJlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTkyCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTUKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBjaGVycnktcGljayAtLSBjYW5ub3QgYW1lbmQuIgotbXNnc3RyICJcImNoZXJyeS1waWNrXCIgaXN0IGltIEdhbmdlIC0tIGthbm4gbmljaHQgbmFjaGJlc3Nlcm4uIgorbXNnc3RyICJcImNoZXJyeS1waWNrXCIgaXN0IGltIEdhbmdlIC0tIGthbm4gXCItLWFtZW5kXCIgbmljaHQgYXVzZsO8aHJlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTk1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTgKIG1zZ2lkICJPcHRpb25zIC0tc3F1YXNoIGFuZCAtLWZpeHVwIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC0tc3F1YXNoIHVuZCAtLWZpeHVwIGvDtm5uZW4gbmljaHQgZ2VtZWluc2FtIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA2OAogbXNnaWQgIk9ubHkgb25lIG9mIC1jLy1DLy1GLy0tZml4dXAgY2FuIGJlIHVzZWQuIgogbXNnc3RyICJFcyBrYW5uIG51ciBlaW5lIE9wdGlvbiB2b24gLWMvLUMvLUYvLS1maXh1cCB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDA3CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNzAKIG1zZ2lkICJPcHRpb24gLW0gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggLWMvLUMvLUYvLS1maXh1cC4iCiBtc2dzdHIgIkRpZSBPcHRpb24gLW0ga2FubiBuaWNodCBtaXQgLWMvLUMvLUYvLS1maXh1cCBrb21iaW5pZXJ0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAxNQorIzogYnVpbHRpbi9jb21taXQuYzoxMDc4CiBtc2dpZCAiLS1yZXNldC1hdXRob3IgY2FuIGJlIHVzZWQgb25seSB3aXRoIC1DLCAtYyBvciAtLWFtZW5kLiIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb24gLS1yZXNldC0tYXV0aG9yIGthbm4gbnVyIG1pdCAtQywgLWMgb2RlciAtLWFtZW5kIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NQogbXNnaWQgIk9ubHkgb25lIG9mIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIGNhbiBiZSB1c2VkLiIKIG1zZ3N0ciAiIgogIkVzIGthbm4gbnVyIGVpbmUgT3B0aW9uIHZvbiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCAiCiAidmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNAorIzogYnVpbHRpbi9jb21taXQuYzoxMDk3CiBtc2dpZCAiTm8gcGF0aHMgd2l0aCAtLWluY2x1ZGUvLS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC0taW5jbHVkZSB1bmQgLS1vbmx5IGvDtm5uZW4gbnVyIG1pdCBkZXIgQW5nYWJlIHZvbiBQZmFkZW4gIgogInZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5OQogbXNnaWQgIkNsZXZlci4uLiBhbWVuZGluZyB0aGUgbGFzdCBvbmUgd2l0aCBkaXJ0eSBpbmRleC4iCiBtc2dzdHIgIiIKLSJLbHVnLi4uIGRpZSBsZXR6dGUgVmVyc2lvbiBtaXQgZWluZXIgdW5zYXViZXJlbiBCZXJlaXRzdGVsbHVuZyBuYWNoYmVzc2Vybi4iCisiS2x1Zy4uLiBkZW4gbGV0enRlbiBDb21taXQgbWl0IGVpbmVyIGdlw6RuZGVydGVuIFN0YWdpbmctQXJlYSBuYWNoYmVzc2Vybi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOAorIzogYnVpbHRpbi9jb21taXQuYzoxMTAxCiBtc2dpZCAiRXhwbGljaXQgcGF0aHMgc3BlY2lmaWVkIHdpdGhvdXQgLWkgbm9yIC1vOyBhc3N1bWluZyAtLW9ubHkgcGF0aHMuLi4iCiBtc2dzdHIgIiIKICJFeHBsaXppdGUgUGZhZGUgb2huZSAtaSBvZGVyIC1vIGFuZ2VnZWJlbjsgdW50ZXIgZGVyIEFubmFobWUgdm9uIC0tb25seSAiCiAiUGZhZGVuLi4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNDggYnVpbHRpbi90YWcuYzo1NzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTExMSBidWlsdGluL3RhZy5jOjU3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGNsZWFudXAgbW9kZSAlcyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgXCJjbGVhbnVwXCIgTW9kdXMgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MworIzogYnVpbHRpbi9jb21taXQuYzoxMTE2CiBtc2dpZCAiUGF0aHMgd2l0aCAtYSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtYSBrYW5uIG51ciBtaXQgZGVyIEFuZ2FiZSB2b24gUGZhZGVuIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTkgYnVpbHRpbi9jb21taXQuYzoxMTk0Ci1tc2dpZCAiLS1sb25nIGFuZCAteiBhcmUgaW5jb21wYXRpYmxlIgotbXNnc3RyICJEaWUgT3B0aW9uZW4gLS1sb25nIHVuZCAteiBzaW5kIGlua29tcGF0aWJlbC4iCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1NCBidWlsdGluL2NvbW1pdC5jOjEzOTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMiBidWlsdGluL2NvbW1pdC5jOjE0NTUKIG1zZ2lkICJzaG93IHN0YXR1cyBjb25jaXNlbHkiCiBtc2dzdHIgInplaWd0IFN0YXR1cyBpbSBLdXJ6Zm9ybWF0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTYgYnVpbHRpbi9jb21taXQuYzoxMzkyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjQgYnVpbHRpbi9jb21taXQuYzoxNDU3CiBtc2dpZCAic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iCi1tc2dzdHIgInplaWd0IFp3ZWlnaW5mb3JtYXRpb25lbiIKK21zZ3N0ciAiemVpZ3QgQnJhbmNoaW5mb3JtYXRpb25lbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTU4IGJ1aWx0aW4vY29tbWl0LmM6MTM5NCBidWlsdGluL3B1c2guYzo0MjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNiBidWlsdGluL2NvbW1pdC5jOjE0NTkgYnVpbHRpbi9wdXNoLmM6NDUyCiBtc2dpZCAibWFjaGluZS1yZWFkYWJsZSBvdXRwdXQiCiBtc2dzdHIgIm1hc2NoaW5lbmxlc2JhcmUgQXVzZ2FiZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTYxIGJ1aWx0aW4vY29tbWl0LmM6MTM5NgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI5IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQogbXNnaWQgInNob3cgc3RhdHVzIGluIGxvbmcgZm9ybWF0IChkZWZhdWx0KSIKIG1zZ3N0ciAiemVpZ3QgU3RhdHVzIGltIExhbmdmb3JtYXQgKFN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY0IGJ1aWx0aW4vY29tbWl0LmM6MTM5OQorIzogYnVpbHRpbi9jb21taXQuYzoxMjMyIGJ1aWx0aW4vY29tbWl0LmM6MTQ2NAogbXNnaWQgInRlcm1pbmF0ZSBlbnRyaWVzIHdpdGggTlVMIgogbXNnc3RyICJzY2hsaWXDn3QgRWludHLDpGdlIG1pdCBOVUwtWmVpY2hlbiBhYiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY2IGJ1aWx0aW4vY29tbWl0LmM6MTQwMiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU5Ci0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYyIGJ1aWx0aW4vdGFnLmM6NDU5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzQgYnVpbHRpbi9jb21taXQuYzoxNDY3IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjcKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzAgYnVpbHRpbi90YWcuYzo0NTkKIG1zZ2lkICJtb2RlIgogbXNnc3RyICJNb2R1cyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY3IGJ1aWx0aW4vY29tbWl0LmM6MTQwMgorIzogYnVpbHRpbi9jb21taXQuYzoxMjM1IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NwogbXNnaWQgInNob3cgdW50cmFja2VkIGZpbGVzLCBvcHRpb25hbCBtb2RlczogYWxsLCBub3JtYWwsIG5vLiAoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAiIgogInplaWd0IG5pY2h0IGJlb2JhY2h0ZXRlIERhdGVpZW4sIG9wdGlvbmFsZSBNb2RpOiBhbGwsIG5vcm1hbCwgbm8uIChTdGFuZGFyZDogIgogImFsbCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MAorIzogYnVpbHRpbi9jb21taXQuYzoxMjM4CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJ6ZWlndCBpZ25vcmllcnRlIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MSBwYXJzZS1vcHRpb25zLmg6MTUxCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzkgcGFyc2Utb3B0aW9ucy5oOjE1NAogbXNnaWQgIndoZW4iCiBtc2dzdHIgIndhbm4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MgorIzogYnVpbHRpbi9jb21taXQuYzoxMjQwCiBtc2dpZCAiIgogImlnbm9yZSBjaGFuZ2VzIHRvIHN1Ym1vZHVsZXMsIG9wdGlvbmFsIHdoZW46IGFsbCwgZGlydHksIHVudHJhY2tlZC4gIgogIihEZWZhdWx0OiBhbGwpIgogbXNnc3RyICIiCi0iaWdub3JpZXJ0IMOEbmRlcnVuZ2VuIGluIFVudGVycHJvamVrdGVuLCBvcHRpb25hbCB3ZW5uOiBhbGwsIGRpcnR5LCAiCi0idW50cmFja2VkLiAoU3RhbmRhcmQ6IGFsbCkiCisiaWdub3JpZXJ0IMOEbmRlcnVuZ2VuIGluIFN1Ym1vZHVsZW4sIG9wdGlvbmFsIHdlbm46IGFsbCwgZGlydHksIHVudHJhY2tlZC4gIgorIihTdGFuZGFyZDogYWxsKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTc0CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNDIKIG1zZ2lkICJsaXN0IHVudHJhY2tlZCBmaWxlcyBpbiBjb2x1bW5zIgogbXNnc3RyICJsaXN0ZXQgdW5iZW9iYWNodGV0ZSBEYXRlaWVuIGluIFNwYWx0ZW4gYXVmIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxMwogbXNnaWQgImNvdWxkbid0IGxvb2sgdXAgbmV3bHkgY3JlYXRlZCBjb21taXQiCi1tc2dzdHIgIktvbm50ZSBuZXUgZXJzdGVsbHRlIFZlcnNpb24gbmljaHQgbmFjaHNjaGxhZ2VuLiIKK21zZ3N0ciAiS29ubnRlIG5ldSBlcnN0ZWxsdGVuIENvbW1pdCBuaWNodCBuYWNoc2NobGFnZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxNQogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBuZXdseSBjcmVhdGVkIGNvbW1pdCIKLW1zZ3N0ciAiS29ubnRlIG5ldWxpY2ggZXJzdGVsbHRlIFZlcnNpb24gbmljaHQgYW5hbHlzaWVyZW4uIgorbXNnc3RyICJLb25udGUgbmV1bGljaCBlcnN0ZWxsdGVuIENvbW1pdCBuaWNodCBhbmFseXNpZXJlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI5MQorIzogYnVpbHRpbi9jb21taXQuYzoxMzU2CiBtc2dpZCAiZGV0YWNoZWQgSEVBRCIKLW1zZ3N0ciAibG9zZ2Vsw7ZzdGUgWndlaWdzcGl0emUgKEhFQUQpIgorbXNnc3RyICJsb3NnZWzDtnN0ZXIgSEVBRCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjkzCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNTgKIG1zZ2lkICIgKHJvb3QtY29tbWl0KSIKLW1zZ3N0ciAiIChCYXNpcy1WZXJzaW9uKSIKK21zZ3N0ciAiIChCYXNpcy1Db21taXQpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyNQogbXNnaWQgInN1cHByZXNzIHN1bW1hcnkgYWZ0ZXIgc3VjY2Vzc2Z1bCBjb21taXQiCi1tc2dzdHIgInVudGVyZHLDvGNrdCBadXNhbW1lbmZhc3N1bmcgbmFjaCBlcmZvbGdyZWljaGVyIEVpbnRyYWd1bmciCittc2dzdHIgInVudGVyZHLDvGNrdCBadXNhbW1lbmZhc3N1bmcgbmFjaCBlcmZvbGdyZWljaGVtIENvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjYKIG1zZ2lkICJzaG93IGRpZmYgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCi1tc2dzdHIgInplaWd0IFVudGVyc2NoaWVkZSBpbiBWZXJzaW9uc2Jlc2NocmVpYnVuZ3N2b3JsYWdlIGFuIgorbXNnc3RyICJ6ZWlndCBVbnRlcnNjaGllZGUgaW4gQ29tbWl0LUJlc2NocmVpYnVuZ3N2b3JsYWdlIGFuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyOAogbXNnaWQgIkNvbW1pdCBtZXNzYWdlIG9wdGlvbnMiCi1tc2dzdHIgIk9wdGlvbmVuIGbDvHIgVmVyc2lvbnNiZXNjaHJlaWJ1bmciCittc2dzdHIgIk9wdGlvbmVuIGbDvHIgQ29tbWl0LUJlc2NocmVpYnVuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY0IGJ1aWx0aW4vdGFnLmM6NDU3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjkgYnVpbHRpbi90YWcuYzo0NTcKIG1zZ2lkICJyZWFkIG1lc3NhZ2UgZnJvbSBmaWxlIgogbXNnc3RyICJsaWVzdCBCZXNjaHJlaWJ1bmcgdm9uIERhdGVpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAogbXNnaWQgImF1dGhvciIKIG1zZ3N0ciAiQXV0b3IiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCiBtc2dpZCAib3ZlcnJpZGUgYXV0aG9yIGZvciBjb21taXQiCi1tc2dzdHIgIsO8YmVyc2NocmVpYnQgQXV0b3Igdm9uIFZlcnNpb24iCittc2dzdHIgIsO8YmVyc2NocmVpYnQgQXV0b3IgZWluZXMgQ29tbWl0cyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY2IGJ1aWx0aW4vZ2MuYzoxNzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMSBidWlsdGluL2djLmM6MTc4CiBtc2dpZCAiZGF0ZSIKIG1zZ3N0ciAiRGF0dW0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDMxCiBtc2dpZCAib3ZlcnJpZGUgZGF0ZSBmb3IgY29tbWl0IgotbXNnc3RyICLDvGJlcnNjaHJlaWJ0IERhdHVtIHZvbiBWZXJzaW9uIgorbXNnc3RyICLDvGJlcnNjaHJlaWJ0IERhdHVtIGVpbmVzIENvbW1pdHMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NyBidWlsdGluL21lcmdlLmM6MjA4IGJ1aWx0aW4vbm90ZXMuYzo1MzMKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OTAgYnVpbHRpbi90YWcuYzo0NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMiBidWlsdGluL21lcmdlLmM6MjIzIGJ1aWx0aW4vbm90ZXMuYzo0MDUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NjIgYnVpbHRpbi90YWcuYzo0NTUKIG1zZ2lkICJtZXNzYWdlIgogbXNnc3RyICJCZXNjaHJlaWJ1bmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NworIzogYnVpbHRpbi9jb21taXQuYzoxNDMyCiBtc2dpZCAiY29tbWl0IG1lc3NhZ2UiCi1tc2dzdHIgIlZlcnNpb25zYmVzY2hyZWlidW5nIgorbXNnc3RyICJDb21taXQtQmVzY2hyZWlidW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMwogbXNnaWQgInJldXNlIGFuZCBlZGl0IG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgotbXNnc3RyICJ2ZXJ3ZW5kZXQgd2llZGVyIHVuZCBlZGl0aWVydCBCZXNjaHJlaWJ1bmcgdm9uIGRlciBhbmdlZ2ViZW5lbiBWZXJzaW9uIgorbXNnc3RyICJ2ZXJ3ZW5kZXQgd2llZGVyIHVuZCBlZGl0aWVydCBCZXNjaHJlaWJ1bmcgZGVzIGFuZ2VnZWJlbmVuIENvbW1pdHMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM0CiBtc2dpZCAicmV1c2UgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCi1tc2dzdHIgInZlcndlbmRldCBCZXNjaHJlaWJ1bmcgZGVyIGFuZ2VnZWJlbmVuIFZlcnNpb24gd2llZGVyIgorbXNnc3RyICJ2ZXJ3ZW5kZXQgQmVzY2hyZWlidW5nIGRlcyBhbmdlZ2ViZW5lbiBDb21taXRzIHdpZWRlciIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzUKIG1zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBmaXh1cCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCi0idmVyd2VuZGV0IGVpbmUgYXV0b21hdGlzY2ggenVzYW1tZW5nZXNldHp0ZSBCZXNjaHJlaWJ1bmcgenVtIE5hY2hiZXNzZXJuIGRlciAiCi0iYW5nZWdlYmVuZW4gVmVyc2lvbiIKKyJ2ZXJ3ZW5kZXQgZWluZSBhdXRvbWF0aXNjaCB6dXNhbW1lbmdlc2V0enRlIEJlc2NocmVpYnVuZyB6dW0gTmFjaGJlc3Nlcm4gZGVzICIKKyJhbmdlZ2ViZW5lbiBDb21taXRzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNgogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIHNxdWFzaCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCi0idmVyd2VuZGV0IGVpbmUgYXV0b21hdGlzY2ggenVzYW1tZW5nZXNldHp0ZSBCZXNjaHJlaWJ1bmcgenVtIFp1c2FtbWVuZsO8aHJlbiAiCi0iZGVyIGFuZ2VnZWJlbmVuIFZlcnNpb24iCisidmVyd2VuZGV0IGVpbmUgYXV0b21hdGlzY2ggenVzYW1tZW5nZXNldHp0ZSBCZXNjaHJlaWJ1bmcgYmVpbSBcInNxdWFzaFwiIGRlcyAiCisiYW5nZWdlYmVuZW4gQ29tbWl0cyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzcKIG1zZ2lkICJ0aGUgY29tbWl0IGlzIGF1dGhvcmVkIGJ5IG1lIG5vdyAodXNlZCB3aXRoIC1DLy1jLy0tYW1lbmQpIgotbXNnc3RyICJTZXR6dCBTaWUgYWxzIEF1dG9yIGRlciBWZXJzaW9uICh2ZXJ3ZW5kZXQgbWl0IC1DLy1jLy0tYW1lbmQpIgorbXNnc3RyICJTZXR6dCBTaWUgYWxzIEF1dG9yIGRlcyBDb21taXRzICh2ZXJ3ZW5kZXQgbWl0IC1DLy1jLy0tYW1lbmQpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzMgYnVpbHRpbi9sb2cuYzoxMTEzIGJ1aWx0aW4vcmV2ZXJ0LmM6MTA5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzggYnVpbHRpbi9sb2cuYzoxMTYwIGJ1aWx0aW4vcmV2ZXJ0LmM6MTExCiBtc2dpZCAiYWRkIFNpZ25lZC1vZmYtYnk6IgogbXNnc3RyICJmw7xndCAnU2lnbmVkLW9mZi1ieTonLVplaWxlIGhpbnp1IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOQogbXNnaWQgInVzZSBzcGVjaWZpZWQgdGVtcGxhdGUgZmlsZSIKIG1zZ3N0ciAidmVyd2VuZGV0IGFuZ2VnZWJlbmUgVm9ybGFnZW5kYXRlaSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDAKIG1zZ2lkICJmb3JjZSBlZGl0IG9mIGNvbW1pdCIKLW1zZ3N0ciAiZXJ6d2luZ3QgQmVhcmJlaXR1bmcgZGVyIFZlcnNpb24iCittc2dzdHIgImVyendpbmd0IEJlYXJiZWl0dW5nIGRlcyBDb21taXRzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQogbXNnaWQgImRlZmF1bHQiCiBtc2dzdHIgIlN0YW5kYXJkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzYgYnVpbHRpbi90YWcuYzo0NjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MSBidWlsdGluL3RhZy5jOjQ2MAogbXNnaWQgImhvdyB0byBzdHJpcCBzcGFjZXMgYW5kICNjb21tZW50cyBmcm9tIG1lc3NhZ2UiCiBtc2dzdHIgIiIKICJ3aWUgTGVlcnplaWNoZW4gdW5kICNLb21tZW50YXJlIHZvbiBkZXIgQmVzY2hyZWlidW5nIGdldHJlbm50IHdlcmRlbiBzb2xsZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NworIzogYnVpbHRpbi9jb21taXQuYzoxNDQyCiBtc2dpZCAiaW5jbHVkZSBzdGF0dXMgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCi1tc2dzdHIgImbDvGd0IFN0YXR1cyBpbiBkaWUgVmVyc2lvbnNiZXNjaHJlaWJ1bmdzdm9ybGFnZSBlaW4iCittc2dzdHIgImbDvGd0IFN0YXR1cyBpbiBkaWUgQ29tbWl0LUJlc2NocmVpYnVuZ3N2b3JsYWdlIGVpbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc4IGJ1aWx0aW4vbWVyZ2UuYzoyMTUgYnVpbHRpbi90YWcuYzo0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MyBidWlsdGluL21lcmdlLmM6MjMwIGJ1aWx0aW4vdGFnLmM6NDYxCiBtc2dpZCAia2V5IGlkIgogbXNnc3RyICJTY2hsw7xzc2VsLUlEIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzkgYnVpbHRpbi9tZXJnZS5jOjIxNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ0IGJ1aWx0aW4vbWVyZ2UuYzoyMzEKIG1zZ2lkICJHUEcgc2lnbiBjb21taXQiCi1tc2dzdHIgInNpZ25pZXJ0IFZlcnNpb24gbWl0IEdQRyIKK21zZ3N0ciAic2lnbmllcnQgQ29tbWl0IG1pdCBHUEciCiAKICMuIGVuZCBjb21taXQgbWVzc2FnZSBvcHRpb25zCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0NwogbXNnaWQgIkNvbW1pdCBjb250ZW50cyBvcHRpb25zIgotbXNnc3RyICJPcHRpb25lbiBmw7xyIFZlcnNpb25zaW5oYWx0IgorbXNnc3RyICJPcHRpb25lbiBmw7xyIENvbW1pdC1JbmhhbHQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MworIzogYnVpbHRpbi9jb21taXQuYzoxNDQ4CiBtc2dpZCAiY29tbWl0IGFsbCBjaGFuZ2VkIGZpbGVzIgotbXNnc3RyICJ0csOkZ3QgYWxsZSBnZcOkbmRlcnRlbiBEYXRlaWVuIGVpbiIKK21zZ3N0ciAiY29tbWl0dGV0IGFsbGUgZ2XDpG5kZXJ0ZW4gRGF0ZWllbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDkKIG1zZ2lkICJhZGQgc3BlY2lmaWVkIGZpbGVzIHRvIGluZGV4IGZvciBjb21taXQiCi1tc2dzdHIgInRyw6RndCBkaWUgYW5nZWdlYmVuZW4gRGF0ZWllbiB6dXPDpHR6bGljaCB6dXIgQmVyZWl0c3RlbGx1bmcgZWluIgorbXNnc3RyICJtZXJrdCBkaWUgYW5nZWdlYmVuZW4gRGF0ZWllbiB6dXPDpHR6bGljaCB6dW0gQ29tbWl0IHZvciIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTAKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBmaWxlcyIKIG1zZ3N0ciAiaW50ZXJha3RpdmVzIEhpbnp1ZsO8Z2VuIHZvbiBEYXRlaWVuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MQogbXNnaWQgImludGVyYWN0aXZlbHkgYWRkIGNoYW5nZXMiCiBtc2dzdHIgImludGVyYWt0aXZlcyBIaW56dWbDvGdlbiB2b24gw4RuZGVydW5nZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NworIzogYnVpbHRpbi9jb21taXQuYzoxNDUyCiBtc2dpZCAiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIgotbXNnc3RyICJ0csOkZ3QgbnVyIGRpZSBhbmdlZ2ViZW5lbiBEYXRlaWVuIGVpbiIKK21zZ3N0ciAiY29tbWl0dGV0IG51ciBkaWUgYW5nZWdlYmVuZW4gRGF0ZWllbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTMKIG1zZ2lkICJieXBhc3MgcHJlLWNvbW1pdCBob29rIgogbXNnc3RyICJ1bWdlaHQgXCJwcmUtY29tbWl0IGhvb2tcIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTQKIG1zZ2lkICJzaG93IHdoYXQgd291bGQgYmUgY29tbWl0dGVkIgotbXNnc3RyICJ6ZWlndCBhbiwgd2FzIGVpbmdldHJhZ2VuIHdlcmRlbiB3w7xyZGUiCittc2dzdHIgInplaWd0IGFuLCB3YXMgY29tbWl0dGV0IHdlcmRlbiB3w7xyZGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwMAorIzogYnVpbHRpbi9jb21taXQuYzoxNDY1CiBtc2dpZCAiYW1lbmQgcHJldmlvdXMgY29tbWl0IgotbXNnc3RyICLDpG5kZXJ0IHZvcmhlcmlnZSBWZXJzaW9uIgorbXNnc3RyICLDpG5kZXJ0IHZvcmhlcmlnZW4gQ29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NgogbXNnaWQgImJ5cGFzcyBwb3N0LXJld3JpdGUgaG9vayIKIG1zZ3N0ciAidW1nZWh0IFwicG9zdC1yZXdyaXRlIGhvb2tcIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDA2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzEKIG1zZ2lkICJvayB0byByZWNvcmQgYW4gZW1wdHkgY2hhbmdlIgogbXNnc3RyICJlcmxhdWJ0IEF1ZnplaWNobnVuZyBlaW5lciBsZWVyZW4gw4RuZGVydW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NAogbXNnaWQgIm9rIHRvIHJlY29yZCBhIGNoYW5nZSB3aXRoIGFuIGVtcHR5IG1lc3NhZ2UiCiBtc2dzdHIgImVybGF1YnQgQXVmemVpY2hudW5nIGVpbmVyIMOEbmRlcnVuZyBtaXQgZWluZXIgbGVlcmVuIEJlc2NocmVpYnVuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQxCisjOiBidWlsdGluL2NvbW1pdC5jOjE1MDcKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgSEVBRCBjb21taXQiCi1tc2dzdHIgIktvbm50ZSBWZXJzaW9uIGRlciBad2VpZ3NwaXR6ZSAoSEVBRCkgbmljaHQgYW5hbHlzaWVyZW4uIgorbXNnc3RyICJLb25udGUgQ29tbWl0IHZvbiBIRUFEIG5pY2h0IGFuYWx5c2llcmVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDc5IGJ1aWx0aW4vbWVyZ2UuYzo1MTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NSBidWlsdGluL21lcmdlLmM6NTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuICclcycgZm9yIHJlYWRpbmciCiBtc2dzdHIgIktvbm50ZSAnJXMnIG5pY2h0IHp1bSBMZXNlbiDDtmZmbmVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE1NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29ycnVwdCBNRVJHRV9IRUFEIGZpbGUgKCVzKSIKIG1zZ3N0ciAiQmVzY2jDpGRpZ3RlIE1FUkdFX0hFQUQtRGF0ZWkgKCVzKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDkzCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NTkKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NT0RFIgogbXNnc3RyICJLb25udGUgTUVSR0VfTU9ERSBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTEyCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgY29tbWl0IG1lc3NhZ2U6ICVzIgotbXNnc3RyICJLb25udGUgVmVyc2lvbnNiZXNjaHJlaWJ1bmcgbmljaHQgbGVzZW46ICVzIgorbXNnc3RyICJLb25udGUgQ29tbWl0LUJlc2NocmVpYnVuZyBuaWNodCBsZXNlbjogJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUyNgorIzogYnVpbHRpbi9jb21taXQuYzoxNTkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdDsgeW91IGRpZCBub3QgZWRpdCB0aGUgbWVzc2FnZS5cbiIKLW1zZ3N0ciAiRWludHJhZ3VuZyBhYmdlYnJvY2hlbjsgU2llIGhhYmVuIGRpZSBCZXNjaHJlaWJ1bmcgbmljaHQgZWRpdGllcnQuXG4iCittc2dzdHIgIkNvbW1pdCBhYmdlYnJvY2hlbjsgU2llIGhhYmVuIGRpZSBCZXNjaHJlaWJ1bmcgbmljaHQgZWRpdGllcnQuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCi1tc2dzdHIgIkVpbnRyYWd1bmcgYXVmZ3J1bmQgbGVlcmVyIFZlcnNpb25zYmVzY2hyZWlidW5nIGFiZ2Vicm9jaGVuLlxuIgorbXNnc3RyICJDb21taXQgYXVmZ3J1bmQgbGVlcmVyIEJlc2NocmVpYnVuZyBhYmdlYnJvY2hlbi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTQ2IGJ1aWx0aW4vbWVyZ2UuYzo4NDcgYnVpbHRpbi9tZXJnZS5jOjg3MgorIzogYnVpbHRpbi9jb21taXQuYzoxNjEyIGJ1aWx0aW4vbWVyZ2UuYzo4NjEgYnVpbHRpbi9tZXJnZS5jOjg4NgogbXNnaWQgImZhaWxlZCB0byB3cml0ZSBjb21taXQgb2JqZWN0IgotbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hyZWliZW4gZGVzIFZlcnNpb25zb2JqZWt0ZXMuIgorbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hyZWliZW4gZGVzIENvbW1pdC1PYmpla3Rlcy4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU2NworIzogYnVpbHRpbi9jb21taXQuYzoxNjMzCiBtc2dpZCAiY2Fubm90IGxvY2sgSEVBRCByZWYiCi1tc2dzdHIgIkthbm4gUmVmZXJlbnogZGVyIFp3ZWlnc3BpdHplIChIRUFEKSBuaWNodCBzcGVycmVuLiIKK21zZ3N0ciAiS2FubiBSZWZlcmVueiB2b24gSEVBRCBuaWNodCBzcGVycmVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTcxCisjOiBidWlsdGluL2NvbW1pdC5jOjE2MzcKIG1zZ2lkICJjYW5ub3QgdXBkYXRlIEhFQUQgcmVmIgotbXNnc3RyICJLYW5uIFJlZmVyZW56IGRlciBad2VpZ3NwaXR6ZSAoSEVBRCkgbmljaHQgYWt0dWFsaXNpZXJlbi4iCittc2dzdHIgIkthbm4gUmVmZXJlbnogdm9uIEhFQUQgbmljaHQgYWt0dWFsaXNpZXJlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU4MgorIzogYnVpbHRpbi9jb21taXQuYzoxNjQ4CiBtc2dpZCAiIgogIlJlcG9zaXRvcnkgaGFzIGJlZW4gdXBkYXRlZCwgYnV0IHVuYWJsZSB0byB3cml0ZVxuIgogIm5ld19pbmRleCBmaWxlLiBDaGVjayB0aGF0IGRpc2sgaXMgbm90IGZ1bGwgb3IgcXVvdGEgaXNcbiIKICJub3QgZXhjZWVkZWQsIGFuZCB0aGVuIFwiZ2l0IHJlc2V0IEhFQURcIiB0byByZWNvdmVyLiIKIG1zZ3N0ciAiIgotIkRhcyBQcm9qZWt0YXJjaGl2IHd1cmRlIGFrdHVhbGlzaWVydCwgYWJlciBkaWUgXCJuZXdfaW5kZXhcIi1EYXRlaVxuIgorIkRhcyBSZXBvc2l0b3J5IHd1cmRlIGFrdHVhbGlzaWVydCwgYWJlciBkaWUgXCJuZXdfaW5kZXhcIi1EYXRlaVxuIgogImtvbm50ZSBuaWNodCBnZXNjaHJpZWJlbiB3ZXJkZW4uIFByw7xmZW4gU2llLCBkYXNzIElocmUgRmVzdHBsYXR0ZSBuaWNodFxuIgogInZvbGwgdW5kIElociBLb250aW5nZW50IG5pY2h0IGF1ZmdlYnJhdWNodCBpc3QgdW5kIGbDvGhyZW4gU2llXG4iCiAiYW5zY2hsaWXDn2VuZCBcImdpdCByZXNldCBIRUFEXCIgenUgV2llZGVyaGVyc3RlbGx1bmcgYXVzLiIKQEAgLTQzMjgsMTE1ICs0NTU1LDEyMyBAQAogbXNnaWQgImdpdCBjb25maWcgW29wdGlvbnNdIgogbXNnc3RyICJnaXQgY29uZmlnIFtPcHRpb25lbl0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKIG1zZ2lkICJDb25maWcgZmlsZSBsb2NhdGlvbiIKIG1zZ3N0ciAiT3J0IGRlciBLb25maWd1cmF0aW9uc2RhdGVpIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUyCisjOiBidWlsdGluL2NvbmZpZy5jOjUzCiBtc2dpZCAidXNlIGdsb2JhbCBjb25maWcgZmlsZSIKIG1zZ3N0ciAidmVyd2VuZGV0IGdsb2JhbGUgS29uZmlndXJhdGlvbnNkYXRlaSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MworIzogYnVpbHRpbi9jb25maWcuYzo1NAogbXNnaWQgInVzZSBzeXN0ZW0gY29uZmlnIGZpbGUiCiBtc2dzdHIgInZlcndlbmRldCBzeXN0ZW13ZWl0ZSBLb25maWd1cmF0aW9uc2RhdGVpIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU0Ci1tc2dpZCAidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiCi1tc2dzdHIgInZlcndlbmRldCBLb25maWd1cmF0aW9uc2RhdGVpIGRlcyBQcm9qZWt0YXJjaGl2cyIKLQogIzogYnVpbHRpbi9jb25maWcuYzo1NQorbXNnaWQgInVzZSByZXBvc2l0b3J5IGNvbmZpZyBmaWxlIgorbXNnc3RyICJ2ZXJ3ZW5kZXQgS29uZmlndXJhdGlvbnNkYXRlaSBkZXMgUmVwb3NpdG9yaWVzIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjU2CiBtc2dpZCAidXNlIGdpdmVuIGNvbmZpZyBmaWxlIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgZGllIGFuZ2VnZWJlbmUgS29uZmlndXJhdGlvbnNkYXRlaSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NgorIzogYnVpbHRpbi9jb25maWcuYzo1NworbXNnaWQgImJsb2ItaWQiCittc2dzdHIgIkJsb2ItSWQiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKK21zZ2lkICJyZWFkIGNvbmZpZyBmcm9tIGdpdmVuIGJsb2Igb2JqZWN0IgorbXNnc3RyICJsaWVzdCBLb25maWd1cmF0aW9uIHZvbiBhbmdlZ2ViZW5lbSBCbG9iLU9iamVrdCIKKworIzogYnVpbHRpbi9jb25maWcuYzo1OAogbXNnaWQgIkFjdGlvbiIKIG1zZ3N0ciAiQWt0aW9uIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU3CisjOiBidWlsdGluL2NvbmZpZy5jOjU5CiBtc2dpZCAiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImdpYnQgV2VydCB6dXLDvGNrOiBOYW1lIFtXZXJ0LXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OAorIzogYnVpbHRpbi9jb25maWcuYzo2MAogbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiZ2lidCBhbGxlIFdlcnRlIHp1csO8Y2s6IFNjaGzDvHNzZWwgW1dlcnQtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU5CisjOiBidWlsdGluL2NvbmZpZy5jOjYxCiBtc2dpZCAiZ2V0IHZhbHVlcyBmb3IgcmVnZXhwOiBuYW1lLXJlZ2V4IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImdpYnQgV2VydGUgZsO8ciBkZW4gcmVndWzDpHJlbiBBdXNkcnVjayB6dXLDvGNrOiBOYW1lLXJlZ2V4IFtXZXJ0LXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MAorIzogYnVpbHRpbi9jb25maWcuYzo2MgogbXNnaWQgInJlcGxhY2UgYWxsIG1hdGNoaW5nIHZhcmlhYmxlczogbmFtZSB2YWx1ZSBbdmFsdWVfcmVnZXhdIgogbXNnc3RyICJlcnNldHp0IGFsbGUgcGFzc2VuZGVuIFZhcmlhYmxlbjogTmFtZSBXZXJ0IFtXZXJ0LXJlZ2V4XSAiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKIG1zZ2lkICJhZGQgYSBuZXcgdmFyaWFibGU6IG5hbWUgdmFsdWUiCiBtc2dzdHIgImbDvGd0IG5ldWUgVmFyaWFibGUgaGluenU6IE5hbWUgV2VydCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MgorIzogYnVpbHRpbi9jb25maWcuYzo2NAogbXNnaWQgInJlbW92ZSBhIHZhcmlhYmxlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImVudGZlcm50IGVpbmUgVmFyaWFibGU6IE5hbWUgW1dlcnQtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYzCisjOiBidWlsdGluL2NvbmZpZy5jOjY1CiBtc2dpZCAicmVtb3ZlIGFsbCBtYXRjaGVzOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImVudGZlcm50IGFsbGUgw5xiZXJlaW5zdGltbXVuZ2VuOiBOYW1lIFtXZXJ0LXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NAorIzogYnVpbHRpbi9jb25maWcuYzo2NgogbXNnaWQgInJlbmFtZSBzZWN0aW9uOiBvbGQtbmFtZSBuZXctbmFtZSIKIG1zZ3N0ciAiYmVuZW5udCBlaW5lIFNla3Rpb24gdW06IGFsdGVyLU5hbWUgbmV1ZXItTmFtZSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NQorIzogYnVpbHRpbi9jb25maWcuYzo2NwogbXNnaWQgInJlbW92ZSBhIHNlY3Rpb246IG5hbWUiCiBtc2dzdHIgImVudGZlcm50IGVpbmUgU2VrdGlvbjogTmFtZSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NgorIzogYnVpbHRpbi9jb25maWcuYzo2OAogbXNnaWQgImxpc3QgYWxsIgogbXNnc3RyICJsaXN0ZXQgYWxsZXMgYXVmIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY3CisjOiBidWlsdGluL2NvbmZpZy5jOjY5CiBtc2dpZCAib3BlbiBhbiBlZGl0b3IiCiBtc2dzdHIgIsO2ZmZuZXQgZWluZW4gRWRpdG9yIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4IGJ1aWx0aW4vY29uZmlnLmM6NjkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzAgYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgInNsb3QiCiBtc2dzdHIgIlNsb3QiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzAKIG1zZ2lkICJmaW5kIHRoZSBjb2xvciBjb25maWd1cmVkOiBbZGVmYXVsdF0iCiBtc2dzdHIgImZpbmRldCBkaWUga29uZmlndXJpZXJ0ZSBGYXJiZTogW1N0YW5kYXJkXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2OQorIzogYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgImZpbmQgdGhlIGNvbG9yIHNldHRpbmc6IFtzdGRvdXQtaXMtdHR5XSIKIG1zZ3N0ciAiZmluZGV0IGRpZSBGYXJiZWluc3RlbGx1bmc6IFtTdGFuZGFyZC1BdXNnYWJlLWlzdC1UZXJtaW5hbF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzAKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzIKIG1zZ2lkICJUeXBlIgogbXNnc3RyICJUeXAiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKIG1zZ2lkICJ2YWx1ZSBpcyBcInRydWVcIiBvciBcImZhbHNlXCIiCiBtc2dzdHIgIldlcnQgaXN0IFwidHJ1ZVwiIG9kZXIgXCJmYWxzZVwiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcyCisjOiBidWlsdGluL2NvbmZpZy5jOjc0CiBtc2dpZCAidmFsdWUgaXMgZGVjaW1hbCBudW1iZXIiCiBtc2dzdHIgIldlcnQgaXN0IGVpbmUgRGV6aW1hbHphaGwiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKIG1zZ2lkICJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiCiBtc2dzdHIgIldlcnQgaXN0IC0tYm9vbCBvZGVyIC0taW50IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc0CisjOiBidWlsdGluL2NvbmZpZy5jOjc2CiBtc2dpZCAidmFsdWUgaXMgYSBwYXRoIChmaWxlIG9yIGRpcmVjdG9yeSBuYW1lKSIKIG1zZ3N0ciAiV2VydCBpc3QgZWluIFBmYWQgKERhdGVpIG9kZXIgVmVyemVpY2huaXNuYW1lKSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NQorIzogYnVpbHRpbi9jb25maWcuYzo3NwogbXNnaWQgIk90aGVyIgogbXNnc3RyICJTb25zdGlnZXMiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzgKIG1zZ2lkICJ0ZXJtaW5hdGUgdmFsdWVzIHdpdGggTlVMIGJ5dGUiCiBtc2dzdHIgInNjaGxpZcOfdCBXZXJ0ZSBtaXQgTlVMLUJ5dGUgYWIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKIG1zZ2lkICJyZXNwZWN0IGluY2x1ZGUgZGlyZWN0aXZlcyBvbiBsb29rdXAiCiBtc2dzdHIgImJlYWNodGV0IFwiaW5jbHVkZVwiLURpcmVrdGl2ZW4gYmVpbSBOYWNoc2NobGFnZW4iCiAKQEAgLTQ0NDgsMTczICs0NjgzLDE3MyBAQAogbXNnaWQgInByaW50IHNpemVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm1hdCIKIG1zZ3N0ciAiZ2lidCBHcsO2w59lbmFuZ2FiZW4gaW4gbWVuc2NoZW5sZXNiYXJlbiBGb3JtYXQgYXVzIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MTUKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNgogbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gPGNvbW1pdHRpc2g+KiIKIG1zZ3N0ciAiZ2l0IGRlc2NyaWJlIFtPcHRpb25lbl0gPGNvbW1pdHRpc2g+KiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjE2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTcKIG1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIC0tZGlydHkiCiBtc2dzdHIgImdpdCBkZXNjcmliZSBbT3B0aW9uZW5dIC0tZGlydHkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBub3QgYXZhaWxhYmxlIgotbXNnc3RyICJhbm5vdGllcnRlIE1hcmtpZXJ1bmcgJXMgaXN0IG5pY2h0IHZlcmbDvGdiYXIiCi0KICM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzcKICMsIGMtZm9ybWF0Ci1tc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBoYXMgbm8gZW1iZWRkZWQgbmFtZSIKLW1zZ3N0ciAiYW5ub3RpZXJ0ZSBNYXJraWVydW5nICVzIGhhdCBrZWluZW4gZWluZ2ViZXR0ZXRlbiBOYW1lbiIKK21zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIG5vdCBhdmFpbGFibGUiCittc2dzdHIgImFubm90aWVydGVzIFRhZyAlcyBpc3QgbmljaHQgdmVyZsO8Z2JhciIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzOQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIGhhcyBubyBlbWJlZGRlZCBuYW1lIgorbXNnc3RyICJhbm5vdGllcnRlcyBUYWcgJXMgaGF0IGtlaW5lbiBlaW5nZWJldHRldGVuIE5hbWVuIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgInRhZyAnJXMnIGlzIHJlYWxseSAnJXMnIGhlcmUiCi1tc2dzdHIgIk1hcmtpZXJ1bmcgJyVzJyBpc3QgZWlnZW50bGljaCAnJXMnIGhpZXIiCittc2dzdHIgIlRhZyAnJXMnIGlzdCBlaWdlbnRsaWNoICclcycgaGllciIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZSAlcyIKIG1zZ3N0ciAiJXMgaXN0IGtlaW4gZ8O8bHRpZ2VyIE9iamVrdC1OYW1lIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjY5CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjczCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGlzIG5vdCBhIHZhbGlkICclcycgb2JqZWN0IgogbXNnc3RyICIlcyBpc3Qga2VpbiBnw7xsdGlnZXMgJyVzJyBPYmpla3QiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyODYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gdGFnIGV4YWN0bHkgbWF0Y2hlcyAnJXMnIgotbXNnc3RyICJrZWluIE1hcmtpZXJ1bmcgZW50c3ByaWNodCBleGFrdCAnJXMnIgorbXNnc3RyICJrZWluIFRhZyBlbnRzcHJpY2h0IGV4YWt0ICclcyciCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyODgKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAic2VhcmNoaW5nIHRvIGRlc2NyaWJlICVzXG4iCiBtc2dzdHIgInN1Y2hlIHp1ciBCZXNjaHJlaWJ1bmcgdm9uICVzXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMjgKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmluaXNoZWQgc2VhcmNoIGF0ICVzXG4iCiBtc2dzdHIgImJlZW5kZXRlIFN1Y2hlIGJlaSAlc1xuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzUyCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJObyBhbm5vdGF0ZWQgdGFncyBjYW4gZGVzY3JpYmUgJyVzJy5cbiIKICJIb3dldmVyLCB0aGVyZSB3ZXJlIHVuYW5ub3RhdGVkIHRhZ3M6IHRyeSAtLXRhZ3MuIgogbXNnc3RyICIiCi0iS2VpbmUgYW5ub3RpZXJ0ZW4gTWFya2llcnVuZ2VuIGvDtm5uZW4gJyVzJyBiZXNjaHJlaWJlbi5cbiIKLSJKZWRvY2ggZ2FiIGVzIG5pY2h0IGFubm90aWVydGUgTWFya2llcnVuZ2VuOiB2ZXJzdWNoZW4gU2llIC0tdGFncy4iCisiS2VpbmUgYW5ub3RpZXJ0ZW4gVGFncyBrw7ZubmVuICclcycgYmVzY2hyZWliZW4uXG4iCisiSmVkb2NoIGdhYiBlcyBuaWNodC1hbm5vdGllcnRlIFRhZ3M6IHZlcnN1Y2hlbiBTaWUgLS10YWdzLiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM2MwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiTm8gdGFncyBjYW4gZGVzY3JpYmUgJyVzJy5cbiIKICJUcnkgLS1hbHdheXMsIG9yIGNyZWF0ZSBzb21lIHRhZ3MuIgogbXNnc3RyICIiCi0iS2VpbmUgTWFya2llcnVuZ2VuIGvDtm5uZW4gJyVzJyBiZXNjaHJlaWJlbi5cbiIKLSJWZXJzdWNoZW4gU2llIC0tYWx3YXlzIG9kZXIgZXJzdGVsbGVuIFNpZSBlaW5pZ2UgTWFya2llcnVuZ2VuLiIKKyJLZWluZSBUYWdzIGvDtm5uZW4gJyVzJyBiZXNjaHJlaWJlbi5cbiIKKyJWZXJzdWNoZW4gU2llIC0tYWx3YXlzIG9kZXIgZXJzdGVsbGVuIFNpZSBlaW5pZ2UgVGFncy4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNzcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJhdmVyc2VkICVsdSBjb21taXRzXG4iCi1tc2dzdHIgIiVsdSBWZXJzaW9uZW4gZHVyY2hsYXVmZW5cbiIKK21zZ3N0ciAiJWx1IENvbW1pdHMgZHVyY2hsYXVmZW5cbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM4MAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM4NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibW9yZSB0aGFuICVpIHRhZ3MgZm91bmQ7IGxpc3RlZCAlaSBtb3N0IHJlY2VudFxuIgogImdhdmUgdXAgc2VhcmNoIGF0ICVzXG4iCiBtc2dzdHIgIiIKLSJtZWhyIGFscyAlaSBNYXJraWVydW5nZW4gZ2VmdW5kZW47IEbDvGhyZSBkaWUgZXJzdGVuICVpIGF1ZlxuIgorIm1laHIgYWxzICVpIFRhZ3MgZ2VmdW5kZW47IEbDvGhyZSBkaWUgZXJzdGVuICVpIGF1ZlxuIgogIlN1Y2hlIGJlaSAlcyBhdWZnZWdlYmVuXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDkKIG1zZ2lkICJmaW5kIHRoZSB0YWcgdGhhdCBjb21lcyBhZnRlciB0aGUgY29tbWl0IgotbXNnc3RyICJmaW5kZXQgZGllIE1hcmtpZXJ1bmcsIGRpZSBuYWNoIGRlciBWZXJzaW9uIGtvbW10IgorbXNnc3RyICJmaW5kZXQgZGFzIFRhZywgZGFzIG5hY2ggQ29tbWl0IGtvbW10IgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDAzCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEwCiBtc2dpZCAiZGVidWcgc2VhcmNoIHN0cmF0ZWd5IG9uIHN0ZGVyciIKIG1zZ3N0ciAicHJvdG9rb2xsaWVydCBkaWUgU3VjaHN0cmF0ZWdpZSBpbiBkZXIgU3RhbmRhcmQtRmVobGVyYXVzZ2FiZSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMQogbXNnaWQgInVzZSBhbnkgcmVmIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgYWxsZSBSZWZlcmVuemVuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA1CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEyCiBtc2dpZCAidXNlIGFueSB0YWcsIGV2ZW4gdW5hbm5vdGF0ZWQiCi1tc2dzdHIgInZlcndlbmRldCBqZWRlIE1hcmtpZXJ1bmcsIGF1Y2ggbmljaHQtYW5ub3RpZXJ0ZSIKK21zZ3N0ciAidmVyd2VuZGV0IGplZGVzIFRhZywgYXVjaCBuaWNodC1hbm5vdGllcnRlIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEzCiBtc2dpZCAiYWx3YXlzIHVzZSBsb25nIGZvcm1hdCIKIG1zZ3N0ciAidmVyd2VuZGV0IGltbWVyIGxhbmdlcyBGb3JtYXQiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDkKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTQKK21zZ2lkICJvbmx5IGZvbGxvdyBmaXJzdCBwYXJlbnQiCittc2dzdHIgImZvbGd0IG51ciBlcnN0ZW0gRWx0ZXJudGVpbCIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNwogbXNnaWQgIm9ubHkgb3V0cHV0IGV4YWN0IG1hdGNoZXMiCiBtc2dzdHIgImdpYnQgbnVyIGV4YWt0ZSDDnGJlcmVpbnN0aW1tdW5nZW4gYXVzIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE5CiBtc2dpZCAiY29uc2lkZXIgPG4+IG1vc3QgcmVjZW50IHRhZ3MgKGRlZmF1bHQ6IDEwKSIKLW1zZ3N0ciAiYmV0cmFjaHRldCBkaWUgasO8bmdzdGVuIDxuPiBNYXJraWVydW5nZW4gKFN0YW5kYXJkOiAxMCkiCittc2dzdHIgImJldHJhY2h0ZXQgZGllIGrDvG5nc3RlbiA8bj4gVGFncyAoU3RhbmRhcmQ6IDEwKSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyMQogbXNnaWQgIm9ubHkgY29uc2lkZXIgdGFncyBtYXRjaGluZyA8cGF0dGVybj4iCi1tc2dzdHIgImJldHJhY2h0ZXQgbnVyIE1hcmtpZXJ1bmdlbiBkaWUgPE11c3Rlcj4gZW50c3ByZWNoZW4iCittc2dzdHIgImJldHJhY2h0ZXQgbnVyIFRhZ3MgZGllIDxNdXN0ZXI+IGVudHNwcmVjaGVuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE1IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzgKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjMgYnVpbHRpbi9uYW1lLXJldi5jOjMyMgogbXNnaWQgInNob3cgYWJicmV2aWF0ZWQgY29tbWl0IG9iamVjdCBhcyBmYWxsYmFjayIKLW1zZ3N0ciAiemVpZ3QgZ2Vrw7xyenRlcyBWZXJzaW9uc29iamVrdCwgd2VubiBzb25zdCBuaWNodHMgenV0cmlmZnQiCittc2dzdHIgInplaWd0IGdla8O8cnp0ZXMgQ29tbWl0LU9iamVrdCwgd2VubiBzb25zdCBuaWNodHMgenV0cmlmZnQiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjQKIG1zZ2lkICJtYXJrIgogbXNnc3RyICJLZW5uemVpY2hlbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyNQogbXNnaWQgImFwcGVuZCA8bWFyaz4gb24gZGlydHkgd29ya2luZyB0cmVlIChkZWZhdWx0OiBcIi1kaXJ0eVwiKSIKIG1zZ3N0ciAiIgotImbDvGd0IDxLZW5uemVpY2hlbj4gYmVpIGdlw6RuZGVydGVtIEFyYmVpdHNiYXVtIGhpbnp1IChTdGFuZGFyZDogXCItZGlydHlcIikiCisiZsO8Z3QgPEtlbm56ZWljaGVuPiBiZWkgZ2XDpG5kZXJ0ZW0gQXJiZWl0c3ZlcnplaWNobmlzIGhpbnp1IChTdGFuZGFyZDogXCItIgorImRpcnR5XCIpIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDM1CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDQzCiBtc2dpZCAiLS1sb25nIGlzIGluY29tcGF0aWJsZSB3aXRoIC0tYWJicmV2PTAiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLWxvbmcgdW5kIC0tYWJicmV2PTAgc2luZCBpbmtvbXBhdGliZWwuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDYxCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDY5CiBtc2dpZCAiTm8gbmFtZXMgZm91bmQsIGNhbm5vdCBkZXNjcmliZSBhbnl0aGluZy4iCiBtc2dzdHIgIktlaW5lIE5hbWVuIGdlZnVuZGVuLCBrYW5uIG5pY2h0cyBiZXNjaHJlaWJlbi4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODkKIG1zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdHRpc2hlcyIKLW1zZ3N0ciAiRGllIE9wdGlvbiAtLWRpcnR5IGthbm4gbmljaHQgbWl0IFZlcnNpb25lbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKK21zZ3N0ciAiRGllIE9wdGlvbiAtLWRpcnR5IGthbm4gbmljaHQgbWl0IENvbW1pdHMgdmVyd2VuZGV0IHdlcmRlbi4iCiAKICM6IGJ1aWx0aW4vZGlmZi5jOjc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcyc6IG5vdCBhIHJlZ3VsYXIgZmlsZSBvciBzeW1saW5rIgotbXNnc3RyICInJXMnOiBrZWluZSByZWd1bMOkcmUgRGF0ZWkgb2RlciBzeW1ib2xpc2NoZXIgTGluayIKK21zZ3N0ciAiJyVzJzoga2VpbmUgcmVndWzDpHJlIERhdGVpIG9kZXIgc3ltYm9saXNjaGVyIFZlcndlaXMiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjIyOAorIzogYnVpbHRpbi9kaWZmLmM6MjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb3B0aW9uOiAlcyIKIG1zZ3N0ciAiVW5nw7xsdGlnZSBPcHRpb246ICVzIgogCi0jOiBidWlsdGluL2RpZmYuYzozMDUKKyM6IGJ1aWx0aW4vZGlmZi5jOjMwNwogbXNnaWQgIk5vdCBhIGdpdCByZXBvc2l0b3J5IgotbXNnc3RyICJLZWluIEdpdC1Qcm9qZWt0YXJjaGl2IgorbXNnc3RyICJLZWluIEdpdC1SZXBvc2l0b3J5IgogCi0jOiBidWlsdGluL2RpZmYuYzozNDgKKyM6IGJ1aWx0aW4vZGlmZi5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG9iamVjdCAnJXMnIGdpdmVuLiIKIG1zZ3N0ciAiT2JqZWt0ICclcycgaXN0IHVuZ8O8bHRpZy4iCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM1MwotIywgYy1mb3JtYXQKLW1zZ2lkICJtb3JlIHRoYW4gJWQgdHJlZXMgZ2l2ZW46ICclcyciCi1tc2dzdHIgIk1laHIgYWxzICVkIFp3ZWlnZSBhbmdlZ2ViZW46ICclcyciCi0KLSM6IGJ1aWx0aW4vZGlmZi5jOjM2MworIzogYnVpbHRpbi9kaWZmLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vcmUgdGhhbiB0d28gYmxvYnMgZ2l2ZW46ICclcyciCiBtc2dzdHIgIk1laHIgYWxzIHp3ZWkgQmxvYnMgYW5nZWdlYmVuOiAnJXMnIgogCi0jOiBidWlsdGluL2RpZmYuYzozNzEKKyM6IGJ1aWx0aW4vZGlmZi5jOjM2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmhhbmRsZWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICJ1bmJlaGFuZGVsdGVzIE9iamVrdCAnJXMnIGFuZ2VnZWJlbiIKQEAgLTQ2MjMsNDYgKzQ4NTgsNDUgQEAKIG1zZ2lkICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogbXNnc3RyICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU4CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CiBtc2dpZCAic2hvdyBwcm9ncmVzcyBhZnRlciA8bj4gb2JqZWN0cyIKIG1zZ3N0ciAiemVpZ3QgRm9ydHNjaHJpdHQgbmFjaCA8bj4gT2JqZWt0ZW4gYW4iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2Ygc2lnbmVkIHRhZ3MiCi1tc2dzdHIgInfDpGhsdCBCZWhhbmRsdW5nIHZvbiBzaWduaWVydGVuIE1hcmtpZXJ1bmdlbiIKK21zZ3N0ciAid8OkaGx0IEJlaGFuZGx1bmcgdm9uIHNpZ25pZXJ0ZW4gVGFncyIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2MworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MQogbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiB0YWdzIHRoYXQgdGFnIGZpbHRlcmVkIG9iamVjdHMiCi1tc2dzdHIgInfDpGhsdCBCZWhhbmRsdW5nIHZvbiBNYXJraWVydW5nZW4sIGRpZSBnZWZpbHRlcnRlIE9iamVrdGUgbWFya2llcmVuIgorbXNnc3RyICJ3w6RobHQgQmVoYW5kbHVuZyB2b24gVGFncywgZGllIGdlZmlsdGVydGUgT2JqZWt0ZSBtYXJraWVyZW4iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKIG1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAiU2NocmVpYnQgS2VubnplaWNoZW4gaW4gZGllc2UgRGF0ZWkiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzYKIG1zZ2lkICJJbXBvcnQgbWFya3MgZnJvbSB0aGlzIGZpbGUiCiBtc2dzdHIgIkltcG9ydGllcnQgS2VubnplaWNoZW4gdm9uIGRpZXNlciBEYXRlaSIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3OAogbXNnaWQgIkZha2UgYSB0YWdnZXIgd2hlbiB0YWdzIGxhY2sgb25lIgotbXNnc3RyICIiCi0iZXJ6ZXVndCBrw7xuc3RsaWNoIGVpbmVuIE1hcmtpZXJ1bmdzZXJzdGVsbGVyLCB3ZW5uIGRpZSBNYXJraWVydW5nIGtlaW5lbiBoYXQiCittc2dzdHIgImVyemV1Z3Qga8O8bnN0bGljaCBlaW5lbiBUYWctRXJzdGVsbGVyLCB3ZW5uIGRhcyBUYWcga2VpbmVuIGhhdCIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MgorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MAogbXNnaWQgIk91dHB1dCBmdWxsIHRyZWUgZm9yIGVhY2ggY29tbWl0IgotbXNnc3RyICJnaWJ0IGbDvHIgamVkZSBWZXJzaW9uIGRlbiBnZXNhbXRlbiBCYXVtIGF1cyIKK21zZ3N0ciAiZ2lidCBmw7xyIGplZGVuIENvbW1pdCBkYXMgZ2VzYW10ZSBWZXJ6ZWljaG5pcyBhdXMiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODIKIG1zZ2lkICJVc2UgdGhlIGRvbmUgZmVhdHVyZSB0byB0ZXJtaW5hdGUgdGhlIHN0cmVhbSIKIG1zZ3N0ciAiQmVudXR6dCBkaWUgXCJkb25lXCItRnVua3Rpb24gdW0gZGVuIFN0cm9tIGFienVzY2hsaWXDn2VuIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgzCiBtc2dpZCAiU2tpcCBvdXRwdXQgb2YgYmxvYiBkYXRhIgogbXNnc3RyICLDnGJlcnNwcmluZ3QgQXVzZ2FiZSB2b24gQmxvYi1EYXRlbiIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjIwCiBtc2dpZCAiZ2l0IGZldGNoIFs8b3B0aW9ucz5dIFs8cmVwb3NpdG9yeT4gWzxyZWZzcGVjPi4uLl1dIgotbXNnc3RyICJnaXQgZmV0Y2ggWzxPcHRpb25lbj5dIFs8UHJvamVrdGFyY2hpdj4gWzxSZWZlcmVuenNwZXppZmlrYXRpb24+Li4uXV0iCittc2dzdHIgImdpdCBmZXRjaCBbPE9wdGlvbmVuPl0gWzxSZXBvc2l0b3J5PiBbPFJlZnNwZWM+Li4uXV0iCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzoyMQogbXNnaWQgImdpdCBmZXRjaCBbPG9wdGlvbnM+XSA8Z3JvdXA+IgpAQCAtNDY3MCw3ICs0OTA0LDcgQEAKIAogIzogYnVpbHRpbi9mZXRjaC5jOjIyCiBtc2dpZCAiZ2l0IGZldGNoIC0tbXVsdGlwbGUgWzxvcHRpb25zPl0gWyg8cmVwb3NpdG9yeT4gfCA8Z3JvdXA+KS4uLl0iCi1tc2dzdHIgImdpdCBmZXRjaCAtLW11bHRpcGxlIFs8T3B0aW9uZW4+XSBbKDxQcm9qZWt0YXJjaGl2PiB8IDxHcnVwcGU+KS4uLl0iCittc2dzdHIgImdpdCBmZXRjaCAtLW11bHRpcGxlIFs8T3B0aW9uZW4+XSBbKDxSZXBvc2l0b3J5PiB8IDxHcnVwcGU+KS4uLl0iCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzoyMwogbXNnaWQgImdpdCBmZXRjaCAtLWFsbCBbPG9wdGlvbnM+XSIKQEAgLTQ2NzgsNyArNDkxMiw3IEBACiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo2MAogbXNnaWQgImZldGNoIGZyb20gYWxsIHJlbW90ZXMiCi1tc2dzdHIgImZvcmRlcnQgdm9uIGFsbGVuIGV4dGVybmVuIFByb2pla3RhcmNoaXZlbiBhbiIKK21zZ3N0ciAiZm9yZGVydCB2b24gYWxsZW4gUmVtb3RlLVJlcG9zaXRvcmllcyBhbiIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjYyCiBtc2dpZCAiYXBwZW5kIHRvIC5naXQvRkVUQ0hfSEVBRCBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIgpAQCAtNDY5MCwyNCArNDkyNCwyNSBAQAogCiAjOiBidWlsdGluL2ZldGNoLmM6NjUKIG1zZ2lkICJmb3JjZSBvdmVyd3JpdGUgb2YgbG9jYWwgYnJhbmNoIgotbXNnc3RyICJlcnp3aW5ndCBkYXMgw5xiZXJzY2hyZWliZW4gdm9uIGxva2FsZW4gWndlaWdlbiIKK21zZ3N0ciAiZXJ6d2luZ3QgZGFzIMOcYmVyc2NocmVpYmVuIHZvbiBsb2thbGVuIEJyYW5jaGVzIgogCiAjOiBidWlsdGluL2ZldGNoLmM6NjcKIG1zZ2lkICJmZXRjaCBmcm9tIG11bHRpcGxlIHJlbW90ZXMiCi1tc2dzdHIgImZvcmRlcnQgdm9uIG1laHJlcmVuIGV4dGVybmVuIFByb2pla3RhcmNoaXZlbiBhbiIKK21zZ3N0ciAiZm9yZGVydCB2b24gbWVocmVyZW4gUmVtb3RlLVJlcG9zaXRvcmllcyBhbiIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjY5CiBtc2dpZCAiZmV0Y2ggYWxsIHRhZ3MgYW5kIGFzc29jaWF0ZWQgb2JqZWN0cyIKLW1zZ3N0ciAiZm9yZGVydCBhbGxlIE1hcmtpZXJ1bmdlbiB1bmQgdmVyYnVuZGVuZSBPYmpla3RlIGFuIgorbXNnc3RyICJmb3JkZXJ0IGFsbGUgVGFncyB1bmQgdmVyYnVuZGVuZSBPYmpla3RlIGFuIgogCiAjOiBidWlsdGluL2ZldGNoLmM6NzEKIG1zZ2lkICJkbyBub3QgZmV0Y2ggYWxsIHRhZ3MgKC0tbm8tdGFncykiCi1tc2dzdHIgImZvcmRlcnQgbmljaHQgYWxsZSBNYXJraWVydW5nZW4gYW4gKC0tbm8tdGFncykiCittc2dzdHIgImZvcmRlcnQgbmljaHQgYWxsZSBUYWdzIGFuICgtLW5vLXRhZ3MpIgogCiAjOiBidWlsdGluL2ZldGNoLmM6NzMKIG1zZ2lkICJwcnVuZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgbm8gbG9uZ2VyIG9uIHJlbW90ZSIKIG1zZ3N0ciAiIgotImVudGZlcm50IGV4dGVybmUgw5xiZXJuYWhtZXp3ZWlnZSwgZGllIHNpY2ggbmljaHQgbWVociBpbSBGZXJuYXJjaGl2IGJlZmluZGVuIgorImVudGZlcm50IFJlbW90ZS1UcmFja2luZy1CcmFuY2hlcywgZGllIHNpY2ggbmljaHQgbWVociBpbSBSZW1vdGUtUmVwb3NpdG9yeSAiCisiYmVmaW5kZW4iCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo3NAogbXNnaWQgIm9uLWRlbWFuZCIKQEAgLTQ3MTUsNyArNDk1MCw3IEBACiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo3NQogbXNnaWQgImNvbnRyb2wgcmVjdXJzaXZlIGZldGNoaW5nIG9mIHN1Ym1vZHVsZXMiCi1tc2dzdHIgImtvbnRyb2xsaWVydCByZWt1cnNpdmUgQW5mb3JkZXJ1bmdlbiB2b24gVW50ZXJwcm9qZWt0ZW4iCittc2dzdHIgImtvbnRyb2xsaWVydCByZWt1cnNpdmUgQW5mb3JkZXJ1bmdlbiB2b24gU3VibW9kdWxlbiIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjc5CiBtc2dpZCAia2VlcCBkb3dubG9hZGVkIHBhY2siCkBAIC00NzI3LDIwMyArNDk2MiwyMDQgQEAKIAogIzogYnVpbHRpbi9mZXRjaC5jOjg0CiBtc2dpZCAiZGVlcGVuIGhpc3Rvcnkgb2Ygc2hhbGxvdyBjbG9uZSIKLW1zZ3N0ciAidmVydGllZnQgZGllIEhpc3RvcmllIGVpbmVzIGZsYWNoZW4gS2xvbiIKK21zZ3N0ciAidmVydGllZnQgZGllIEhpc3RvcmllIGVpbmVzIGZsYWNoZW4gS2xvbnMiCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo4NgogbXNnaWQgImNvbnZlcnQgdG8gYSBjb21wbGV0ZSByZXBvc2l0b3J5IgotbXNnc3RyICJrb252ZXJ0aWVydCB6dSBlaW5lbSB2b2xsc3TDpG5kaWdlbiBQcm9qZWt0YXJjaGl2IgorbXNnc3RyICJrb252ZXJ0aWVydCB6dSBlaW5lbSB2b2xsc3TDpG5kaWdlbiBSZXBvc2l0b3J5IgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTMwCisjOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTc3CiBtc2dpZCAiZGlyIgogbXNnc3RyICJWZXJ6ZWljaG5pcyIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjg5CiBtc2dpZCAicHJlcGVuZCB0aGlzIHRvIHN1Ym1vZHVsZSBwYXRoIG91dHB1dCIKLW1zZ3N0ciAic3RlbGx0IGRpZXMgYW4gZGllIEF1c2dhYmUgZGVyIFVudGVycHJvamVrdC1QZmFkZSB2b3JhbiIKK21zZ3N0ciAic3RlbGx0IGRpZXMgYW4gZGllIEF1c2dhYmUgZGVyIFN1Ym1vZHVsLVBmYWRlIHZvcmFuIgogCiAjOiBidWlsdGluL2ZldGNoLmM6OTIKIG1zZ2lkICJkZWZhdWx0IG1vZGUgZm9yIHJlY3Vyc2lvbiIKIG1zZ3N0ciAiU3RhbmRhcmQtTW9kdXMgZsO8ciBSZWt1cnNpb24iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyMjAKIG1zZ2lkICJDb3VsZG4ndCBmaW5kIHJlbW90ZSByZWYgSEVBRCIKLW1zZ3N0ciAiS29ubnRlIGV4dGVybmUgUmVmZXJlbnogZGVyIFp3ZWlnc3BpdHplIChIRUFEKSBuaWNodCBmaW5kZW4uIgorbXNnc3RyICJLb25udGUgUmVtb3RlLVJlZmVyZW56IHZvbiBIRUFEIG5pY2h0IGZpbmRlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNTcKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyNzMKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIG5vdCBmb3VuZCIKIG1zZ3N0ciAiT2JqZWt0ICVzIG5pY2h0IGdlZnVuZGVuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjYyCisjOiBidWlsdGluL2ZldGNoLmM6Mjc4CiBtc2dpZCAiW3VwIHRvIGRhdGVdIgogbXNnc3RyICJbYWt0dWVsbF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNzYKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiISAlLSpzICUtKnMgLT4gJXMgIChjYW4ndCBmZXRjaCBpbiBjdXJyZW50IGJyYW5jaCkiCi1tc2dzdHIgIiEgJS0qcyAlLSpzIC0+ICVzICAoa2FubiBuaWNodCBpbSBha3R1ZWxsZW4gWndlaWcgYW5mb3JkZXJuKSIKK21zZ3N0ciAiIgorIiEgJS0qcyAlLSpzIC0+ICVzICAoa2FubiBcImZldGNoXCIgaW0gYWt0dWVsbGVuIEJyYW5jaCBuaWNodCBhdXNmw7xocmVuKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NyBidWlsdGluL2ZldGNoLmM6MzYzCisjOiBidWlsdGluL2ZldGNoLmM6MjkzIGJ1aWx0aW4vZmV0Y2guYzozNzkKIG1zZ2lkICJbcmVqZWN0ZWRdIgogbXNnc3RyICJbenVyw7xja2dld2llc2VuXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI4OAorIzogYnVpbHRpbi9mZXRjaC5jOjMwNAogbXNnaWQgIlt0YWcgdXBkYXRlXSIKLW1zZ3N0ciAiW01hcmtpZXJ1bmdzYWt0dWFsaXNpZXJ1bmddIgorbXNnc3RyICJbVGFnIEFrdHVhbGlzaWVydW5nXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI5MCBidWlsdGluL2ZldGNoLmM6MzI1IGJ1aWx0aW4vZmV0Y2guYzozNDMKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDYgYnVpbHRpbi9mZXRjaC5jOjM0MSBidWlsdGluL2ZldGNoLmM6MzU5CiBtc2dpZCAiICAodW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYpIgogbXNnc3RyICIgIChrYW5uIGxva2FsZSBSZWZlcmVueiBuaWNodCBha3R1YWxpc2llcmVuKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMwOAorIzogYnVpbHRpbi9mZXRjaC5jOjMyNAogbXNnaWQgIltuZXcgdGFnXSIKLW1zZ3N0ciAiW25ldWUgTWFya2llcnVuZ10iCittc2dzdHIgIltuZXVlcyBUYWddIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzExCisjOiBidWlsdGluL2ZldGNoLmM6MzI3CiBtc2dpZCAiW25ldyBicmFuY2hdIgotbXNnc3RyICJbbmV1ZXIgWndlaWddIgorbXNnc3RyICJbbmV1ZXIgQnJhbmNoXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMxNAorIzogYnVpbHRpbi9mZXRjaC5jOjMzMAogbXNnaWQgIltuZXcgcmVmXSIKIG1zZ3N0ciAiW25ldWUgUmVmZXJlbnpdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6Mzc1CiBtc2dpZCAidW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYiCiBtc2dzdHIgImthbm4gbG9rYWxlIFJlZmVyZW56IG5pY2h0IGFrdHVhbGlzaWVyZW4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNTkKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKIG1zZ2lkICJmb3JjZWQgdXBkYXRlIgogbXNnc3RyICJBa3R1YWxpc2llcnVuZyBlcnp3dW5nZW4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNjUKKyM6IGJ1aWx0aW4vZmV0Y2guYzozODEKIG1zZ2lkICIobm9uLWZhc3QtZm9yd2FyZCkiCiBtc2dzdHIgIihrZWluIFZvcnNwdWxlbikiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozOTYgYnVpbHRpbi9mZXRjaC5jOjY4OAorIzogYnVpbHRpbi9mZXRjaC5jOjQxMiBidWlsdGluL2ZldGNoLmM6NzE4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlc1xuIgogbXNnc3RyICJrYW5uICVzIG5pY2h0IMO2ZmZuZW46ICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo0MDUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0c1xuIgogbXNnc3RyICIlcyBoYXQgbmljaHQgYWxsZSBlcmZvcmRlcmxpY2hlbiBPYmpla3RlIGdlc2VuZGV0XG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo0OTEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRnJvbSAlLipzXG4iCiBtc2dzdHIgIlZvbiAlLipzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1MDIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1MzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogInNvbWUgbG9jYWwgcmVmcyBjb3VsZCBub3QgYmUgdXBkYXRlZDsgdHJ5IHJ1bm5pbmdcbiIKICIgJ2dpdCByZW1vdGUgcHJ1bmUgJXMnIHRvIHJlbW92ZSBhbnkgb2xkLCBjb25mbGljdGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiIgogIkVpbmlnZSBsb2thbGUgUmVmZXJlbnplbiBrb25udGVuIG5pY2h0IGFrdHVhbGlzaWVydCB3ZXJkZW47IHZlcnN1Y2hlbiBTaWVcbiIKLSInZ2l0IHJlbW90ZSBwcnVuZSAlcycgdW0gamVkZW4gw6RsdGVyZW4sIHdpZGVyc3Byw7xjaGxpY2hlbiBad2VpZyB6dSBsw7ZzY2hlbi4iCisiJ2dpdCByZW1vdGUgcHJ1bmUgJXMnIHVtIGplZGVuIMOkbHRlcmVuLCB3aWRlcnNwcsO8Y2hsaWNoZW4gQnJhbmNoIHp1IGzDtnNjaGVuLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU1MgorIzogYnVpbHRpbi9mZXRjaC5jOjU4MQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAoJXMgd2lsbCBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIgICAoJXMgd2lyZCB1bnJlZmVyZW56aWVydCkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NTMKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIGhhcyBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIgICAoJXMgd3VyZGUgdW5yZWZlcmVuemllcnQpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTYwCisjOiBidWlsdGluL2ZldGNoLmM6NTg5CiBtc2dpZCAiW2RlbGV0ZWRdIgogbXNnc3RyICJbZ2Vsw7ZzY2h0XSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU2MSBidWlsdGluL3JlbW90ZS5jOjEwNTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1OTAgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CiBtc2dpZCAiKG5vbmUpIgogbXNnc3RyICIobmljaHRzKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY3OAorIzogYnVpbHRpbi9mZXRjaC5jOjcwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWZ1c2luZyB0byBmZXRjaCBpbnRvIGN1cnJlbnQgYnJhbmNoICVzIG9mIG5vbi1iYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKLSJEYXMgQW5mb3JkZXJuIGluIGRlbiBha3R1ZWxsZW4gWndlaWcgJXMgdm9uIGVpbmVtIG5pY2h0LWJsb8OfZW4gUHJvamVrdGFyY2hpdiAiCisiRGVyIFwiZmV0Y2hcIiBpbiBkZW4gYWt0dWVsbGVuIEJyYW5jaCAlcyB2b24gZWluZW0gbmljaHQtQmFyZS1SZXBvc2l0b3J5ICIKICJ3dXJkZSB2ZXJ3ZWlnZXJ0LiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjcxMgorIzogYnVpbHRpbi9mZXRjaC5jOjc0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBmZXRjaCBmcm9tICVzIgogbXNnc3RyICJXZWnDnyBuaWNodCB3aWUgdm9uICVzIGFuZ2Vmb3JkZXJ0IHdpcmQuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Nzg5CisjOiBidWlsdGluL2ZldGNoLmM6ODIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCiBtc2dzdHIgIk9wdGlvbiBcIiVzXCIgV2VydCBcIiVzXCIgaXN0IG5pY2h0IGfDvGx0aWcgZsO8ciAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc5MgorIzogYnVpbHRpbi9mZXRjaC5jOjgyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJPcHRpb24gXCIlc1wiIGlzIGlnbm9yZWQgZm9yICVzXG4iCiBtc2dzdHIgIk9wdGlvbiBcIiVzXCIgd2lyZCBpZ25vcmllcnQgZsO8ciAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODk0CisjOiBidWlsdGluL2ZldGNoLmM6OTI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZldGNoaW5nICVzXG4iCiBtc2dzdHIgIkZvcmRlcmUgYW4gdm9uICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OTYgYnVpbHRpbi9yZW1vdGUuYzoxMDAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MzAgYnVpbHRpbi9yZW1vdGUuYzoxMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZldGNoICVzIgogbXNnc3RyICJLb25udGUgbmljaHQgdm9uICVzIGFuZm9yZGVybiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkxNQorIzogYnVpbHRpbi9mZXRjaC5jOjk0OQogbXNnaWQgIiIKICJObyByZW1vdGUgcmVwb3NpdG9yeSBzcGVjaWZpZWQuICBQbGVhc2UsIHNwZWNpZnkgZWl0aGVyIGEgVVJMIG9yIGFcbiIKICJyZW1vdGUgbmFtZSBmcm9tIHdoaWNoIG5ldyByZXZpc2lvbnMgc2hvdWxkIGJlIGZldGNoZWQuIgogbXNnc3RyICIiCi0iS2VpbiBleHRlcm5lcyBQcm9qZWt0YXJjaGl2IGFuZ2VnZWJlbi4gQml0dGUgZ2ViZW4gU2llIGVudHdlZGVyIGVpbmUgVVJMXG4iCi0ib2RlciBkZW4gTmFtZW4gZGVzIGV4dGVybmVuIEFyY2hpdnMgYW4sIHZvbiB3ZWxjaGVtIG5ldWVcbiIKLSJSZXZpc2lvbmVuIGFuZ2Vmb3JkZXJ0IHdlcmRlbiBzb2xsZW4uIgorIktlaW4gUmVtb3RlLVJlcG9zaXRvcnkgYW5nZWdlYmVuLiBCaXR0ZSBnZWJlbiBTaWUgZW50d2VkZXIgZWluZSBVUkxcbiIKKyJvZGVyIGRlbiBOYW1lbiBkZXMgUmVtb3RlLVJlcG9zaXRvcmllcyBhbiwgdm9uIHdlbGNoZW0gbmV1ZVxuIgorIkNvbW1pdHMgYW5nZWZvcmRlcnQgd2VyZGVuIHNvbGxlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MzUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NjkKIG1zZ2lkICJZb3UgbmVlZCB0byBzcGVjaWZ5IGEgdGFnIG5hbWUuIgotbXNnc3RyICJTaWUgbcO8c3NlbiBkZW4gTmFtZW4gZGVyIE1hcmtpZXJ1bmcgYW5nZWJlbi4iCittc2dzdHIgIlNpZSBtw7xzc2VuIGRlbiBOYW1lbiBkZXMgVGFncyBhbmdlYmVuLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjk4MQorIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKIG1zZ2lkICItLWRlcHRoIGFuZCAtLXVuc2hhbGxvdyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb25lbiAtLWRlcHRoIHVuZCAtLXVuc2hhbGxvdyBrw7ZubmVuIG5pY2h0IGdlbWVpbnNhbSB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjk4MworIzogYnVpbHRpbi9mZXRjaC5jOjEwMTcKIG1zZ2lkICItLXVuc2hhbGxvdyBvbiBhIGNvbXBsZXRlIHJlcG9zaXRvcnkgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiIgotIkRpZSBPcHRpb24gLS11bnNoYWxsb3cga2FubiBuaWNodCBpbiBlaW5lbSB2b2xsc3TDpG5kaWdlbiBQcm9qZWt0YXJjaGl2ICIKKyJEaWUgT3B0aW9uIC0tdW5zaGFsbG93IGthbm4gbmljaHQgaW4gZWluZW0gdm9sbHN0w6RuZGlnZW4gUmVwb3NpdG9yeSAiCiAidmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDAyCisjOiBidWlsdGluL2ZldGNoLmM6MTAzNgogbXNnaWQgImZldGNoIC0tYWxsIGRvZXMgbm90IHRha2UgYSByZXBvc2l0b3J5IGFyZ3VtZW50IgotbXNnc3RyICJmZXRjaCAtLWFsbCBha3plcHRpZXJ0IGtlaW4gUHJvamVrdGFyY2hpdiBhbHMgQXJndW1lbnQiCittc2dzdHIgImZldGNoIC0tYWxsIGFremVwdGllcnQga2VpbiBSZXBvc2l0b3J5IGFscyBBcmd1bWVudCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM4CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgbWFrZSBzZW5zZSB3aXRoIHJlZnNwZWNzIgotbXNnc3RyICJmZXRjaCAtLWFsbCBrYW5uIG5pY2h0IG1pdCBSZWZlcmVuenNwZXppZmlrYXRpb25lbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKK21zZ3N0ciAiZmV0Y2ggLS1hbGwga2FubiBuaWNodCBtaXQgUmVmc3BlY3MgdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CisjOiBidWlsdGluL2ZldGNoLmM6MTA0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZSBvciByZW1vdGUgZ3JvdXA6ICVzIgotbXNnc3RyICJLZWluIGV4dGVybmVzIEFyY2hpdiAoZWluemVsbiBvZGVyIEdydXBwZSk6ICVzIgorbXNnc3RyICJLZWluIFJlbW90ZS1SZXBvc2l0b3J5IChlaW56ZWxuIG9kZXIgR3J1cHBlKTogJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDIzCisjOiBidWlsdGluL2ZldGNoLmM6MTA1NwogbXNnaWQgIkZldGNoaW5nIGEgZ3JvdXAgYW5kIHNwZWNpZnlpbmcgcmVmc3BlY3MgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiIgotIkRhcyBBYmhvbGVuIGVpbmVyIEdydXBwZSB2b24gZXh0ZXJuZW4gQXJjaGl2ZW4ga2FubiBuaWNodCBtaXQgZGVyIEFuZ2FiZVxuIgotInZvbiBSZWZlcmVuenNwZXppZmlrYXRpb25lbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKKyJEYXMgQWJob2xlbiBlaW5lciBHcnVwcGUgdm9uIFJlbW90ZS1SZXBvc2l0b3JpZXMga2FubiBuaWNodCBtaXQgZGVyIEFuZ2FiZVxuIgorInZvbiBSZWZzcGVjcyB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAogIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6MTMKIG1zZ2lkICJnaXQgZm10LW1lcmdlLW1zZyBbLW0gPG1lc3NhZ2U+XSBbLS1sb2dbPTxuPl18LS1uby1sb2ddIFstLWZpbGUgPGZpbGU+XSIKIG1zZ3N0ciAiIgogImdpdCBmbXQtbWVyZ2UtbXNnIFstbSA8QmVzY2hyZWlidW5nPl0gWy0tbG9nWz08bj5dfC0tbm8tbG9nXSBbLS1maWxlIDxEYXRlaT5dIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjMgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY2IGJ1aWx0aW4vZ3JlcC5jOjcwMQotIzogYnVpbHRpbi9tZXJnZS5jOjE4OCBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKLSM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzMgcGFyc2Utb3B0aW9ucy5oOjIzOQorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMgYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc5CisjOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyNDMKIG1zZ2lkICJuIgogbXNnc3RyICJBbnphaGwiCiAKQEAgLTUwMDEsNyArNTIzNyw3IEBACiAKICM6IGJ1aWx0aW4vZnNjay5jOjYxNgogbXNnaWQgInJlcG9ydCB0YWdzIgotbXNnc3RyICJtZWxkZXQgTWFya2llcnVuZ2VuIgorbXNnc3RyICJtZWxkZXQgVGFncyIKIAogIzogYnVpbHRpbi9mc2NrLmM6NjE3CiBtc2dpZCAicmVwb3J0IHJvb3Qgbm9kZXMiCkBAIC01MDA5LDExICs1MjQ1LDExIEBACiAKICM6IGJ1aWx0aW4vZnNjay5jOjYxOAogbXNnaWQgIm1ha2UgaW5kZXggb2JqZWN0cyBoZWFkIG5vZGVzIgotbXNnc3RyICJlcnpldWd0IEtvcGZrbm90ZW4gZGVyIEJlcmVpdHN0ZWxsdW5nc29iamVrdGUiCittc2dzdHIgInByw7xmdCBPYmpla3RlIGluIGRlciBTdGFnaW5nLUFyZWEiCiAKICM6IGJ1aWx0aW4vZnNjay5jOjYxOQogbXNnaWQgIm1ha2UgcmVmbG9ncyBoZWFkIG5vZGVzIChkZWZhdWx0KSIKLW1zZ3N0ciAiZXJ6ZXVndCBLb3Bma25vdGVuIGRlcyBSZWZlcmVuenByb3Rva29sbHMgKFN0YW5kYXJkKSIKK21zZ3N0ciAicHLDvGZ0IGRpZSBSZWZsb2dzIChTdGFuZGFyZCkiCiAKICM6IGJ1aWx0aW4vZnNjay5jOjYyMAogbXNnaWQgImFsc28gY29uc2lkZXIgcGFja3MgYW5kIGFsdGVybmF0ZSBvYmplY3RzIgpAQCAtNTA2Myw3ICs1Mjk5LDcgQEAKICJBdXRvIHBhY2tpbmcgdGhlIHJlcG9zaXRvcnkgZm9yIG9wdGltdW0gcGVyZm9ybWFuY2UuIFlvdSBtYXkgYWxzb1xuIgogInJ1biBcImdpdCBnY1wiIG1hbnVhbGx5LiBTZWUgXCJnaXQgaGVscCBnY1wiIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgogbXNnc3RyICIiCi0iRGllIERhdGVuYmFuayBkZXMgUHJvamVrdGFyY2hpdnMgd2lyZCBmw7xyIGVpbmUgb3B0aW1hbGUgUGVyZm9ybWFuY2VcbiIKKyJEaWUgRGF0ZW5iYW5rIGRlcyBSZXBvc2l0b3JpZXMgd2lyZCBmw7xyIGVpbmUgb3B0aW1hbGUgUGVyZm9ybWFuY2VcbiIKICJrb21wcmltaWVydC4gU2llIGvDtm5uZW4gYXVjaCBcImdpdCBnY1wiIG1hbnVlbGwgYXVzZsO8aHJlbi5cbiIKICJTaWVoZSBcImdpdCBoZWxwIGdjXCIgZsO8ciB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4uXG4iCiAKQEAgLTUwNzYsMjQwICs1MzEyLDI0MCBAQAogCiAjOiBidWlsdGluL2dyZXAuYzoyMgogbXNnaWQgImdpdCBncmVwIFtvcHRpb25zXSBbLWVdIDxwYXR0ZXJuPiBbPHJldj4uLi5dIFtbLS1dIDxwYXRoPi4uLl0iCi1tc2dzdHIgImdpdCBncmVwIFtPcHRpb25lbl0gWy1lXSA8TXVzdGVyPiBbPFJldmlzaW9uPi4uLl0gW1stLV0gPFBmYWQ+Li4uXSIKK21zZ3N0ciAiZ2l0IGdyZXAgW09wdGlvbmVuXSBbLWVdIDxNdXN0ZXI+IFs8Q29tbWl0Pi4uLl0gW1stLV0gPFBmYWQ+Li4uXSIKIAogIzogYnVpbHRpbi9ncmVwLmM6MjE3CiAjLCBjLWZvcm1hdAogbXNnaWQgImdyZXA6IGZhaWxlZCB0byBjcmVhdGUgdGhyZWFkOiAlcyIKIG1zZ3N0ciAiZ3JlcDogRmVobGVyIGJlaW0gRXJ6ZXVnZW4gZWluZXMgVGhyZWFkOiAlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6MzY1CisjOiBidWlsdGluL2dyZXAuYzozNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGNoZGlyOiAlcyIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gVmVyemVpY2huaXN3ZWNoc2VsOiAlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDQzIGJ1aWx0aW4vZ3JlcC5jOjQ3OAorIzogYnVpbHRpbi9ncmVwLmM6NDQyIGJ1aWx0aW4vZ3JlcC5jOjQ3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCB0cmVlICglcykiCi1tc2dzdHIgImtvbm50ZSBad2VpZyAoJXMpIG5pY2h0IGxlc2VuIgorbXNnc3RyICJrb25udGUgXCJUcmVlXCItT2JqZWt0ICglcykgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MworIzogYnVpbHRpbi9ncmVwLmM6NDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBncmVwIGZyb20gb2JqZWN0IG9mIHR5cGUgJXMiCiBtc2dzdHIgImthbm4gXCJncmVwXCIgbmljaHQgbWl0IE9iamVrdGVuIGRlcyBUeXBzICVzIGR1cmNoZsO8aHJlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NTUxCisjOiBidWlsdGluL2dyZXAuYzo1NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAic3dpdGNoIGAlYycgZXhwZWN0cyBhIG51bWVyaWNhbCB2YWx1ZSIKIG1zZ3N0ciAiU2NoYWx0ZXIgJyVjJyBlcndhcnRldCBlaW5lbiBudW1lcmlzY2hlbiBXZXJ0IgogCi0jOiBidWlsdGluL2dyZXAuYzo1NjgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJrYW5uICclcycgbmljaHQgw7ZmZm5lbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQzCisjOiBidWlsdGluL2dyZXAuYzo2NDIKIG1zZ2lkICJzZWFyY2ggaW4gaW5kZXggaW5zdGVhZCBvZiBpbiB0aGUgd29yayB0cmVlIgotbXNnc3RyICJzdWNodCBpbiBkZXIgQmVyZWl0c3RlbGx1bmcgYW5zdGF0dCBpbSBBcmJlaXRzYmF1bSIKK21zZ3N0ciAic3VjaHQgaW4gZGVyIFN0YWdpbmctQXJlYSBhbnN0YXR0IGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQ1CisjOiBidWlsdGluL2dyZXAuYzo2NDQKIG1zZ2lkICJmaW5kIGluIGNvbnRlbnRzIG5vdCBtYW5hZ2VkIGJ5IGdpdCIKIG1zZ3N0ciAiZmluZGV0IGF1Y2ggaW4gSW5oYWx0ZW4sIGRpZSBuaWNodCB2b24gR2l0IHZlcndhbHRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0NworIzogYnVpbHRpbi9ncmVwLmM6NjQ2CiBtc2dpZCAic2VhcmNoIGluIGJvdGggdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgogbXNnc3RyICJzdWNodCBpbiBiZW9iYWNodGV0ZW4gdW5kIHVuYmVvYmFjaHRldGVuIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0OQorIzogYnVpbHRpbi9ncmVwLmM6NjQ4CiBtc2dpZCAic2VhcmNoIGFsc28gaW4gaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAic3VjaHQgYXVjaCBpbiBpZ25vcmllcnRlbiBEYXRlaWVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1MQogbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICJ6ZWlndCBaZWlsZW4gb2huZSDDnGJlcmVpbnN0aW1tdW5nZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1NAorIzogYnVpbHRpbi9ncmVwLmM6NjUzCiBtc2dpZCAiY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyIKIG1zZ3N0ciAiZmluZGV0IMOcYmVyZWluc3RpbW11bmdlbiB1bmFiaMOkbmdpZyB2b24gR3Jvw58tIHVuZCBLbGVpbnNjaHJlaWJ1bmciCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1NgorIzogYnVpbHRpbi9ncmVwLmM6NjU1CiBtc2dpZCAibWF0Y2ggcGF0dGVybnMgb25seSBhdCB3b3JkIGJvdW5kYXJpZXMiCiBtc2dzdHIgInN1Y2h0IG51ciBnYW56ZSBXw7ZydGVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1NwogbXNnaWQgInByb2Nlc3MgYmluYXJ5IGZpbGVzIGFzIHRleHQiCiBtc2dzdHIgInZlcmFyYmVpdGV0IGJpbsOkcmUgRGF0ZWllbiBhbHMgVGV4dCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjYwCisjOiBidWlsdGluL2dyZXAuYzo2NTkKIG1zZ2lkICJkb24ndCBtYXRjaCBwYXR0ZXJucyBpbiBiaW5hcnkgZmlsZXMiCiBtc2dzdHIgImZpbmRldCBrZWluZSBNdXN0ZXIgaW4gQmluw6RyZGF0ZWllbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjYzCisjOiBidWlsdGluL2dyZXAuYzo2NjIKIG1zZ2lkICJkZXNjZW5kIGF0IG1vc3QgPGRlcHRoPiBsZXZlbHMiCiBtc2dzdHIgImR1cmNobMOkdWZ0IGjDtmNoc3RlbnMgPFRpZWZlPiBFYmVuZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2NworIzogYnVpbHRpbi9ncmVwLmM6NjY2CiBtc2dpZCAidXNlIGV4dGVuZGVkIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMiCiBtc2dzdHIgInZlcndlbmRldCBlcndlaXRlcnRlIHJlZ3Vsw6RyZSBBdXNkcsO8Y2tlIGF1cyBQT1NJWCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjcwCisjOiBidWlsdGluL2dyZXAuYzo2NjkKIG1zZ2lkICJ1c2UgYmFzaWMgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyAoZGVmYXVsdCkiCiBtc2dzdHIgInZlcndlbmRldCBncnVuZGxlZ2VuZGUgcmVndWzDpHJlIEF1c2Ryw7xja2UgYXVzIFBPU0lYIChTdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3MworIzogYnVpbHRpbi9ncmVwLmM6NjcyCiBtc2dpZCAiaW50ZXJwcmV0IHBhdHRlcm5zIGFzIGZpeGVkIHN0cmluZ3MiCiBtc2dzdHIgImludGVycHJldGllcnQgTXVzdGVyIGFscyBmZXN0ZSBaZWljaGVua2V0dGVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3NQogbXNnaWQgInVzZSBQZXJsLWNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAidmVyd2VuZGV0IFBlcmwta29tcGF0aWJsZSByZWd1bMOkcmUgQXVzZHLDvGNrZSIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc5CisjOiBidWlsdGluL2dyZXAuYzo2NzgKIG1zZ2lkICJzaG93IGxpbmUgbnVtYmVycyIKIG1zZ3N0ciAiemVpZ3QgWmVpbGVubnVtbWVybiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgwCisjOiBidWlsdGluL2dyZXAuYzo2NzkKIG1zZ2lkICJkb24ndCBzaG93IGZpbGVuYW1lcyIKIG1zZ3N0ciAiemVpZ3Qga2VpbmUgRGF0ZWluYW1lbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgxCisjOiBidWlsdGluL2dyZXAuYzo2ODAKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyIKIG1zZ3N0ciAiemVpZ3QgRGF0ZWluYW1lbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgzCisjOiBidWlsdGluL2dyZXAuYzo2ODIKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyByZWxhdGl2ZSB0byB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICJ6ZWlndCBEYXRlaW5hbWVuIHJlbGF0aXYgenVtIFByb2pla3R2ZXJ6ZWljaG5pcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg1CisjOiBidWlsdGluL2dyZXAuYzo2ODQKIG1zZ2lkICJzaG93IG9ubHkgZmlsZW5hbWVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgInplaWd0IG51ciBEYXRlaW5hbWVuIGFuc3RhdHQgw7xiZXJlaW5zdGltbWVuZGUgWmVpbGVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NgogbXNnaWQgInN5bm9ueW0gZm9yIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgogbXNnc3RyICJTeW5vbnltIGbDvHIgLS1maWxlcy13aXRoLW1hdGNoZXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MAorIzogYnVpbHRpbi9ncmVwLmM6Njg5CiBtc2dpZCAic2hvdyBvbmx5IHRoZSBuYW1lcyBvZiBmaWxlcyB3aXRob3V0IG1hdGNoIgogbXNnc3RyICJ6ZWlndCBudXIgZGllIERhdGVpbmFtZW4gb2huZSDDnGJlcmVpbnN0aW1tdW5nZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MgorIzogYnVpbHRpbi9ncmVwLmM6NjkxCiBtc2dpZCAicHJpbnQgTlVMIGFmdGVyIGZpbGVuYW1lcyIKIG1zZ3N0ciAiZ2lidCBOVUwtWmVpY2hlbiBuYWNoIERhdGVpbmFtZW4gYXVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MwogbXNnaWQgInNob3cgdGhlIG51bWJlciBvZiBtYXRjaGVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgInplaWd0LCBhbnN0YXR0IGRlciBaZWlsZW4sIGRpZSBBbnphaGwgZGVyIMO8YmVyZWluc3RpbW1lbmRlbiBaZWlsZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NQorIzogYnVpbHRpbi9ncmVwLmM6Njk0CiBtc2dpZCAiaGlnaGxpZ2h0IG1hdGNoZXMiCiBtc2dzdHIgImhlYnQgw5xiZXJlaW5zdGltbXVuZ2VuIGhlcnZvciIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk3CisjOiBidWlsdGluL2dyZXAuYzo2OTYKIG1zZ2lkICJwcmludCBlbXB0eSBsaW5lIGJldHdlZW4gbWF0Y2hlcyBmcm9tIGRpZmZlcmVudCBmaWxlcyIKIG1zZ3N0ciAiIgogImdpYnQgZWluZSBMZWVyemVpbGUgendpc2NoZW4gw5xiZXJlaW5zdGltbXVuZ2VuIGluIHZlcnNjaGllZGVuZW4gRGF0ZWllbiBhdXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5OQorIzogYnVpbHRpbi9ncmVwLmM6Njk4CiBtc2dpZCAic2hvdyBmaWxlbmFtZSBvbmx5IG9uY2UgYWJvdmUgbWF0Y2hlcyBmcm9tIHNhbWUgZmlsZSIKIG1zZ3N0ciAiIgogInplaWd0IGRlbiBEYXRlaW5hbWVuIG51ciBlaW5tYWwgb2JlcmhhbGIgZGVyIMOcYmVyZWluc3RpbW11bmdlbiBhdXMgZGllc2VyICIKICJEYXRlaSBhbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzAyCisjOiBidWlsdGluL2dyZXAuYzo3MDEKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBhbmQgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAiemVpZ3QgPG4+IFplaWxlbiB2b3IgdW5kIG5hY2ggZGVuIMOcYmVyZWluc3RpbW11bmdlbiBhbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA1CisjOiBidWlsdGluL2dyZXAuYzo3MDQKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICJ6ZWlndCA8bj4gWmVpbGVuIHZvciBkZW4gw5xiZXJlaW5zdGltbXVuZ2VuIGFuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNgogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAiemVpZ3QgPG4+IFplaWxlbiBuYWNoIGRlbiDDnGJlcmVpbnN0aW1tdW5nZW4gYW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwOAorIzogYnVpbHRpbi9ncmVwLmM6NzA3CiBtc2dpZCAic2hvcnRjdXQgZm9yIC1DIE5VTSIKIG1zZ3N0ciAiS3VyemZvcm0gZsO8ciAtQyBOVU0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMQorIzogYnVpbHRpbi9ncmVwLmM6NzEwCiBtc2dpZCAic2hvdyBhIGxpbmUgd2l0aCB0aGUgZnVuY3Rpb24gbmFtZSBiZWZvcmUgbWF0Y2hlcyIKIG1zZ3N0ciAiemVpZ3QgZWluZSBaZWlsZSBtaXQgZGVtIEZ1bmt0aW9uc25hbWVuIHZvciDDnGJlcmVpbnN0aW1tdW5nZW4gYW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMworIzogYnVpbHRpbi9ncmVwLmM6NzEyCiBtc2dpZCAic2hvdyB0aGUgc3Vycm91bmRpbmcgZnVuY3Rpb24iCiBtc2dzdHIgInplaWd0IGRpZSB1bWdlYmVuZGUgRnVua3Rpb24gYW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxNgorIzogYnVpbHRpbi9ncmVwLmM6NzE1CiBtc2dpZCAicmVhZCBwYXR0ZXJucyBmcm9tIGZpbGUiCiBtc2dzdHIgImxpZXN0IE11c3RlciB2b24gZWluZXIgRGF0ZWkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxOAorIzogYnVpbHRpbi9ncmVwLmM6NzE3CiBtc2dpZCAibWF0Y2ggPHBhdHRlcm4+IgogbXNnc3RyICJmaW5kZXQgPE11c3Rlcj4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcyMAorIzogYnVpbHRpbi9ncmVwLmM6NzE5CiBtc2dpZCAiY29tYmluZSBwYXR0ZXJucyBzcGVjaWZpZWQgd2l0aCAtZSIKIG1zZ3N0ciAia29tYmluaWVydCBNdXN0ZXIsIGRpZSBtaXQgLWUgYW5nZWdlYmVuIHd1cmRlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzMyCisjOiBidWlsdGluL2dyZXAuYzo3MzEKIG1zZ2lkICJpbmRpY2F0ZSBoaXQgd2l0aCBleGl0IHN0YXR1cyB3aXRob3V0IG91dHB1dCIKIG1zZ3N0ciAiemVpZ3Qgw5xiZXJlaW5zdGltbXVuZ2VuIG51ciBkdXJjaCBCZWVuZGlndW5nc3N0YXR1cyBhbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM0CisjOiBidWlsdGluL2dyZXAuYzo3MzMKIG1zZ2lkICJzaG93IG9ubHkgbWF0Y2hlcyBmcm9tIGZpbGVzIHRoYXQgbWF0Y2ggYWxsIHBhdHRlcm5zIgogbXNnc3RyICJ6ZWlndCBudXIgw5xiZXJlaW5zdGltbXVuZ2VuIHZvbiBEYXRlaWVuLCBkaWUgYWxsZW4gTXVzdGVybiBlbnRzcHJlY2hlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM2CisjOiBidWlsdGluL2dyZXAuYzo3MzUKIG1zZ2lkICJzaG93IHBhcnNlIHRyZWUgZm9yIGdyZXAgZXhwcmVzc2lvbiIKLW1zZ3N0ciAiemVpZ3QgZ2VwYXJzdGVuIEJhdW0gZsO8ciBcImdyZXBcIi1BdXNkcnVjayIKK21zZ3N0ciAiemVpZ3QgZ2VwYXJzdGVzIFZlcnplaWNobmlzIGbDvHIgXCJncmVwXCItQXVzZHJ1Y2siCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MAorIzogYnVpbHRpbi9ncmVwLmM6NzM5CiBtc2dpZCAicGFnZXIiCiBtc2dzdHIgIkFuemVpZ2Vwcm9ncmFtbSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQwCisjOiBidWlsdGluL2dyZXAuYzo3MzkKIG1zZ2lkICJzaG93IG1hdGNoaW5nIGZpbGVzIGluIHRoZSBwYWdlciIKIG1zZ3N0ciAiemVpZ3QgRGF0ZWllbiBtaXQgw5xiZXJlaW5zdGltbXVuZ2VuIGltIEFuemVpZ2Vwcm9ncmFtbSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQzCisjOiBidWlsdGluL2dyZXAuYzo3NDIKIG1zZ2lkICJhbGxvdyBjYWxsaW5nIG9mIGdyZXAoMSkgKGlnbm9yZWQgYnkgdGhpcyBidWlsZCkiCiBtc2dzdHIgImVybGF1YnQgZGVuIEF1ZnJ1ZiB2b24gZ3JlcCgxKSAodm9uIGRpZXNlciBQcm9ncmFtbXZlcnNpb24gaWdub3JpZXJ0KSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQ0IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MyBidWlsdGluL3Nob3ctcmVmLmM6MTg4CiBtc2dpZCAic2hvdyB1c2FnZSIKIG1zZ3N0ciAiemVpZ3QgVmVyd2VuZHVuZyIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODExCisjOiBidWlsdGluL2dyZXAuYzo4MTAKIG1zZ2lkICJubyBwYXR0ZXJuIGdpdmVuLiIKIG1zZ3N0ciAia2VpbmUgTXVzdGVyIGFuZ2VnZWJlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODY2CisjOiBidWlsdGluL2dyZXAuYzo4NjUKIG1zZ2lkICItLW9wZW4tZmlsZXMtaW4tcGFnZXIgb25seSB3b3JrcyBvbiB0aGUgd29ya3RyZWUiCiBtc2dzdHIgIiIKLSJEaWUgT3B0aW9uIC0tb3Blbi1maWxlcy1pbi1wYWdlciBrYW5uIG51ciBpbm5lcmhhbGIgZGVzIEFyYmVpdHNiYXVtcyAiCi0idmVyd2VuZGV0IHdlcmRlbi4iCisiRGllIE9wdGlvbiAtLW9wZW4tZmlsZXMtaW4tcGFnZXIga2FubiBudXIgaW5uZXJoYWxiIGRlcyAiCisiQXJiZWl0c3ZlcnplaWNobmlzc2VzIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2dyZXAuYzo4ODkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg4OAogbXNnaWQgIi0tY2FjaGVkIG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1uby1pbmRleC4iCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uZW4gLS1jYWNoZWQgdW5kIC0tdW50cmFja2VkIGvDtm5uZW4gbmljaHQgbWl0IC0tbm8taW5kZXggdmVyd2VuZGV0ICIKICJ3ZXJkZW4uIgogCi0jOiBidWlsdGluL2dyZXAuYzo4OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5MwogbXNnaWQgIi0tbm8taW5kZXggb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCByZXZzLiIKIG1zZ3N0ciAiIgotIkRpZSBPcHRpb25lbiAtLW5vLWluZGV4IHVuZCAtLXVudHJhY2tlZCBrw7ZubmVuIG5pY2h0IG1pdCBWZXJzaW9uZW4gdmVyd2VuZGV0ICIKKyJEaWUgT3B0aW9uZW4gLS1uby1pbmRleCB1bmQgLS11bnRyYWNrZWQga8O2bm5lbiBuaWNodCBtaXQgQ29tbWl0cyB2ZXJ3ZW5kZXQgIgogIndlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NworIzogYnVpbHRpbi9ncmVwLmM6ODk2CiBtc2dpZCAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQgY2Fubm90IGJlIHVzZWQgZm9yIHRyYWNrZWQgY29udGVudHMuIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbiAtLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBrYW5uIG5pY2h0IG1pdCBiZW9iYWNodGV0ZW4gSW5oYWx0ZW4gIgogInZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2dyZXAuYzo5MDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjkwNAogbXNnaWQgImJvdGggLS1jYWNoZWQgYW5kIHRyZWVzIGFyZSBnaXZlbi4iCi1tc2dzdHIgIkRpZSBPcHRpb24gLS1jYWNoZWQga2FubiBuaWNodCBtaXQgWndlaWdlbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKK21zZ3N0ciAiRGllIE9wdGlvbiAtLWNhY2hlZCBrYW5uIG5pY2h0IG1pdCBcIlRyZWVcIi1PYmpla3RlbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAogIzogYnVpbHRpbi9oYXNoLW9iamVjdC5jOjYwCiBtc2dpZCAiIgpAQCAtNTM0Nyw1NCArNTU4Myw1NCBAQAogbXNnaWQgInByb2Nlc3MgZmlsZSBhcyBpdCB3ZXJlIGZyb20gdGhpcyBwYXRoIgogbXNnc3RyICJ2ZXJhcmJlaXRldCBEYXRlaSwgYWxzIG9iIHNpZSB2b24gZGllc2VtIFBmYWQgd8OkcmUiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQzCisjOiBidWlsdGluL2hlbHAuYzo0MQogbXNnaWQgInByaW50IGFsbCBhdmFpbGFibGUgY29tbWFuZHMiCiBtc2dzdHIgIkFuemVpZ2UgYWxsZXIgdm9yaGFuZGVuZW4gS29tbWFuZG9zIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NAorIzogYnVpbHRpbi9oZWxwLmM6NDIKIG1zZ2lkICJwcmludCBsaXN0IG9mIHVzZWZ1bCBndWlkZXMiCiBtc2dzdHIgInplaWd0IExpc3RlIHZvbiBhbGxnZW1laW4gdmVyd2VuZGV0ZW4gQW5sZWl0dW5nZW4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ1CisjOiBidWlsdGluL2hlbHAuYzo0MwogbXNnaWQgInNob3cgbWFuIHBhZ2UiCiBtc2dzdHIgInplaWd0IEhhbmRidWNoIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NgorIzogYnVpbHRpbi9oZWxwLmM6NDQKIG1zZ2lkICJzaG93IG1hbnVhbCBpbiB3ZWIgYnJvd3NlciIKIG1zZ3N0ciAiemVpZ3QgSGFuZGJ1Y2ggaW4gZWluZW0gV2ViYnJvd3NlciIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDgKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2CiBtc2dpZCAic2hvdyBpbmZvIHBhZ2UiCiBtc2dzdHIgInplaWd0IEluZm8tU2VpdGUiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjU0CisjOiBidWlsdGluL2hlbHAuYzo1MgogbXNnaWQgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbY29tbWFuZF0iCiBtc2dzdHIgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbS29tbWFuZG9dIgogCi0jOiBidWlsdGluL2hlbHAuYzo2NgorIzogYnVpbHRpbi9oZWxwLmM6NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIGhlbHAgZm9ybWF0ICclcyciCiBtc2dzdHIgIm5pY2h0IGVya2FubnRlcyBIaWxmZWZvcm1hdDogJXMiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjk0CisjOiBidWlsdGluL2hlbHAuYzo5MgogbXNnaWQgIkZhaWxlZCB0byBzdGFydCBlbWFjc2NsaWVudC4iCiBtc2dzdHIgIktvbm50ZSBlbWFjc2NsaWVudCBuaWNodCBzdGFydGVuLiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MTA3CisjOiBidWlsdGluL2hlbHAuYzoxMDUKIG1zZ2lkICJGYWlsZWQgdG8gcGFyc2UgZW1hY3NjbGllbnQgdmVyc2lvbi4iCiBtc2dzdHIgIktvbm50ZSBWZXJzaW9uIGRlcyBlbWFjc2NsaWVudCBuaWNodCBwYXJzZW4uIgogCi0jOiBidWlsdGluL2hlbHAuYzoxMTUKKyM6IGJ1aWx0aW4vaGVscC5jOjExMwogIywgYy1mb3JtYXQKIG1zZ2lkICJlbWFjc2NsaWVudCB2ZXJzaW9uICclZCcgdG9vIG9sZCAoPCAyMikuIgogbXNnc3RyICJWZXJzaW9uIGRlcyBlbWFjc2NsaWVudCAnJWQnIGlzdCB6dSBhbHQgKDwgMjIpLiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MTMzIGJ1aWx0aW4vaGVscC5jOjE2MSBidWlsdGluL2hlbHAuYzoxNzAgYnVpbHRpbi9oZWxwLmM6MTc4CisjOiBidWlsdGluL2hlbHAuYzoxMzEgYnVpbHRpbi9oZWxwLmM6MTU5IGJ1aWx0aW4vaGVscC5jOjE2OCBidWlsdGluL2hlbHAuYzoxNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGV4ZWMgJyVzJzogJXMiCiBtc2dzdHIgIkZlaGxlciBiZWltIEF1c2bDvGhyZW4gdm9uICclcyc6ICVzIgogCi0jOiBidWlsdGluL2hlbHAuYzoyMTgKKyM6IGJ1aWx0aW4vaGVscC5jOjIxNgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiJyVzJzogcGF0aCBmb3IgdW5zdXBwb3J0ZWQgbWFuIHZpZXdlci5cbiIKQEAgLTU0MDMsNyArNTYzOSw3IEBACiAiJyVzJzogUGZhZCBmw7xyIG5pY2h0IHVudGVyc3TDvHR6dGVuIEhhbmRidWNoYmV0cmFjaHRlci5cbiIKICJTaWUga8O2bm50ZW4gc3RhdHRkZXNzZW4gJ21hbi48V2Vya3pldWc+LmNtZCcgYmVudXR6ZW4uIgogCi0jOiBidWlsdGluL2hlbHAuYzoyMzAKKyM6IGJ1aWx0aW4vaGVscC5jOjIyOAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiJyVzJzogY21kIGZvciBzdXBwb3J0ZWQgbWFuIHZpZXdlci5cbiIKQEAgLTU0MTIsMzM2ICs1NjQ4LDMzNiBAQAogIiclcyc6IEtvbW1hbmRvIGbDvHIgdW50ZXJzdMO8dHp0ZW4gSGFuZGJ1Y2hiZXRyYWNodGVyLlxuIgogIlNpZSBrw7ZubnRlbiBzdGF0dGRlc3NlbiAnbWFuLjxXZXJremV1Zz4ucGF0aCcgYmVudXR6ZW4uIgogCi0jOiBidWlsdGluL2hlbHAuYzozNTEKKyM6IGJ1aWx0aW4vaGVscC5jOjM0OQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiB1bmtub3duIG1hbiB2aWV3ZXIuIgogbXNnc3RyICInJXMnOiB1bmJla2FubnRlciBIYW5kYnVjaC1CZXRyYWNodGVyLiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MzY4CisjOiBidWlsdGluL2hlbHAuYzozNjYKIG1zZ2lkICJubyBtYW4gdmlld2VyIGhhbmRsZWQgdGhlIHJlcXVlc3QiCiBtc2dzdHIgImtlaW4gSGFuZGJ1Y2gtQmV0cmFjaHRlciBrb25udGUgbWl0IGRpZXNlciBBbmZyYWdlIHVtZ2VoZW4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjM3NgorIzogYnVpbHRpbi9oZWxwLmM6Mzc0CiBtc2dpZCAibm8gaW5mbyB2aWV3ZXIgaGFuZGxlZCB0aGUgcmVxdWVzdCIKIG1zZ3N0ciAia2VpbiBJbmZvcm1hdGlvbnMtQmV0cmFjaHRlciBrb25udGUgbWl0IGRpZXNlciBBbmZyYWdlIHVtZ2VoZW4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyMgorIzogYnVpbHRpbi9oZWxwLmM6NDIwCiBtc2dpZCAiRGVmaW5pbmcgYXR0cmlidXRlcyBwZXIgcGF0aCIKIG1zZ3N0ciAiRGVmaW5pdGlvbiB2b24gQXR0cmlidXRlbiBwcm8gUGZhZCIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDIzCisjOiBidWlsdGluL2hlbHAuYzo0MjEKIG1zZ2lkICJBIEdpdCBnbG9zc2FyeSIKIG1zZ3N0ciAiRWluIEdpdC1HbG9zc2FyIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjQKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMgogbXNnaWQgIlNwZWNpZmllcyBpbnRlbnRpb25hbGx5IHVudHJhY2tlZCBmaWxlcyB0byBpZ25vcmUiCiBtc2dzdHIgIlNwZXppZmlrYXRpb24gdm9uIGJld3Vzc3QgaWdub3JpZXJ0ZW4sIHVuYmVvYmFjaHRldGVuIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyNQorIzogYnVpbHRpbi9oZWxwLmM6NDIzCiBtc2dpZCAiRGVmaW5pbmcgc3VibW9kdWxlIHByb3BlcnRpZXMiCi1tc2dzdHIgIkRlZmluaXRpb24gdm9uIFVudGVycHJvamVrdC1FaWdlbnNjaGFmdGVuIgorbXNnc3RyICJEZWZpbml0aW9uIHZvbiBTdWJtb2R1bC1FaWdlbnNjaGFmdGVuIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjYKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNAogbXNnaWQgIlNwZWNpZnlpbmcgcmV2aXNpb25zIGFuZCByYW5nZXMgZm9yIEdpdCIKLW1zZ3N0ciAiU3BlemlmaWthdGlvbiB2b24gUmV2aXNpb25lbiB1bmQgQmVyZWljaGVuIGbDvHIgR2l0IgorbXNnc3RyICJTcGV6aWZpa2F0aW9uIHZvbiBDb21taXRzIHVuZCBCZXJlaWNoZW4gZsO8ciBHaXQiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyNworIzogYnVpbHRpbi9oZWxwLmM6NDI1CiBtc2dpZCAiQSB0dXRvcmlhbCBpbnRyb2R1Y3Rpb24gdG8gR2l0IChmb3IgdmVyc2lvbiAxLjUuMSBvciBuZXdlcikiCiBtc2dzdHIgIkVpbmUgZWluZsO8aHJlbmRlIEFubGVpdHVuZyB6dSBHaXQgKGbDvHIgVmVyc2lvbiAxLjUuMSBvZGVyIG5ldWVyKSIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDI4CisjOiBidWlsdGluL2hlbHAuYzo0MjYKIG1zZ2lkICJBbiBvdmVydmlldyBvZiByZWNvbW1lbmRlZCB3b3JrZmxvd3Mgd2l0aCBHaXQiCiBtc2dzdHIgIkVpbmUgw5xiZXJzaWNodCDDvGJlciBlbXBmb2hsZW5lIEFyYmVpdHNhYmzDpHVmZSBtaXQgR2l0IgogCi0jOiBidWlsdGluL2hlbHAuYzo0NDAKKyM6IGJ1aWx0aW4vaGVscC5jOjQzOAogbXNnaWQgIlRoZSBjb21tb24gR2l0IGd1aWRlcyBhcmU6XG4iCiBtc2dzdHIgIkRpZSBhbGxnZW1laW4gdmVyd2VuZGV0ZW4gR2l0LUFubGVpdHVuZ2VuIHNpbmQ6XG4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ2MiBidWlsdGluL2hlbHAuYzo0NzgKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2MCBidWlsdGluL2hlbHAuYzo0NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNhZ2U6ICVzJXMiCiBtc2dzdHIgIlZlcndlbmR1bmc6ICVzJXMiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ5NAorIzogYnVpbHRpbi9oZWxwLmM6NDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImBnaXQgJXMnIGlzIGFsaWFzZWQgdG8gYCVzJyIKIG1zZ3N0ciAiZsO8ciBgZ2l0ICVzJyB3dXJkZSBkZXIgQWxpYXMgYCVzJyBhbmdlbGVndCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxODQKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0IHR5cGUgbWlzbWF0Y2ggYXQgJXMiCiBtc2dzdHIgIk9iamVrdC1UeXBlbiBwYXNzZW4gYmVpICVzIG5pY2h0IHp1c2FtbWVuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyMDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIwNAogbXNnaWQgIm9iamVjdCBvZiB1bmV4cGVjdGVkIHR5cGUiCiBtc2dzdHIgIk9iamVrdCBoYXQgdW5lcndhcnRldGVuIFR5cCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjM5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZpbGwgJWQgYnl0ZSIKIG1zZ2lkX3BsdXJhbCAiY2Fubm90IGZpbGwgJWQgYnl0ZXMiCiBtc2dzdHJbMF0gImthbm4gJWQgQnl0ZSBuaWNodCBsZXNlbiIKIG1zZ3N0clsxXSAia2FubiAlZCBCeXRlcyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTQKIG1zZ2lkICJlYXJseSBFT0YiCiBtc2dzdHIgInp1IGZyw7xoZXMgRGF0ZWllbmRlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NQogbXNnaWQgInJlYWQgZXJyb3Igb24gaW5wdXQiCiBtc2dzdHIgIkZlaGxlciBiZWltIExlc2VuIGRlciBFaW5nYWJlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2NwogbXNnaWQgInVzZWQgbW9yZSBieXRlcyB0aGFuIHdlcmUgYXZhaWxhYmxlIgogbXNnc3RyICJ2ZXJ3ZW5kZXRlIG1laHIgQnl0ZXMgYWxzIHZlcmbDvGdiYXIgd2FyZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjc0CiBtc2dpZCAicGFjayB0b28gbGFyZ2UgZm9yIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiBvZmZfdCIKIG1zZ3N0ciAiUGFrZXQgaXN0IHp1IGdyb8OfIGbDvHIgZGllIGFrdHVlbGxlIERlZmluaXRpb24gdm9uIG9mZl90IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyODUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlICclcyciCiBtc2dzdHIgImtvbm50ZSAnJXMnIG5pY2h0IGVyc3RlbGxlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjkwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gcGFja2ZpbGUgJyVzJyIKIG1zZ3N0ciAiS2FubiBQYWtldGRhdGVpICclcycgbmljaHQgw7ZmZm5lbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMDkKIG1zZ2lkICJwYWNrIHNpZ25hdHVyZSBtaXNtYXRjaCIKIG1zZ3N0ciAiUGFrZXRzaWduYXR1ciBzdGltbXQgbmljaHQgw7xiZXJlaW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzExCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgdmVyc2lvbiAlPFBSSXUzMj4gdW5zdXBwb3J0ZWQiCiBtc2dzdHIgIlBha2V0dmVyc2lvbiAlPFBSSXUzMj4gbmljaHQgdW50ZXJzdMO8dHp0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzozMjQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyBiYWQgb2JqZWN0IGF0IG9mZnNldCAlbHU6ICVzIgogbXNnc3RyICJQYWtldCBoYXQgZWluIHVuZ8O8bHRpZ2VzIE9iamVrdCBiZWkgVmVyc2F0eiAlbHU6ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo0NDYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbmZsYXRlIHJldHVybmVkICVkIgogbXNnc3RyICJEZWtvbXByaW1pZXJ1bmcgZ2FiICVkIHp1csO8Y2siCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTAwCiBtc2dpZCAib2Zmc2V0IHZhbHVlIG92ZXJmbG93IGZvciBkZWx0YSBiYXNlIG9iamVjdCIKIG1zZ3N0ciAiV2VydCBmw7xyIFZlcnNhdHogYmVpIERpZmZlcmVuem9iamVrdCDDvGJlcmdlbGF1ZmVuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwOAogbXNnaWQgImRlbHRhIGJhc2Ugb2Zmc2V0IGlzIG91dCBvZiBib3VuZCIKIG1zZ3N0ciAiIgogIldlcnQgZsO8ciBWZXJzYXR6IGJlaSBEaWZmZXJlbnpvYmpla3QgbGllZ3QgYXXDn2VyaGFsYiBkZXMgZ8O8bHRpZ2VuIEJlcmVpY2hzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1MTEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIG9iamVjdCB0eXBlICVkIgogbXNnc3RyICJVbmJla2FubnRlciBPYmpla3QtVHlwICVkIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NwogbXNnaWQgImNhbm5vdCBwcmVhZCBwYWNrIGZpbGUiCiBtc2dzdHIgIkthbm4gUGFrZXRkYXRlaSAlcyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicHJlbWF0dXJlIGVuZCBvZiBwYWNrIGZpbGUsICVsdSBieXRlIG1pc3NpbmciCiBtc2dpZF9wbHVyYWwgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZXMgbWlzc2luZyIKIG1zZ3N0clswXSAiZnLDvGh6ZWl0aWdlcyBFbmRlIGRlciBQYWtldGRhdGVpLCB2ZXJtaXNzZSAlbHUgQnl0ZSIKIG1zZ3N0clsxXSAiZnLDvGh6ZWl0aWdlcyBFbmRlIGRlciBQYWtldGRhdGVpLCB2ZXJtaXNzZSAlbHUgQnl0ZXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTc1CiBtc2dpZCAic2VyaW91cyBpbmZsYXRlIGluY29uc2lzdGVuY3kiCiBtc2dzdHIgImVybnN0aGFmdGUgSW5rb25zaXN0ZW56IG5hY2ggRGVrb21wcmltaWVydW5nIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjEgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY5MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzI0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY2IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY3MiBidWlsdGluL2luZGV4LXBhY2suYzo2OTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjcyOSBidWlsdGluL2luZGV4LXBhY2suYzo3MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiU0hBMSBDT0xMSVNJT04gRk9VTkQgV0lUSCAlcyAhIgogbXNnc3RyICJTSEExIEtPTExJU0lPTiBNSVQgJXMgR0VGVU5ERU4gISIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTcwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICJrYW5uICVzIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3MzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBleGlzdGluZyBvYmplY3QgJXMiCiBtc2dzdHIgIkthbm4gZXhpc3RpZXJlbmRlcyBPYmpla3QgJXMgbmljaHQgbGVzZW4uIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGJsb2Igb2JqZWN0ICVzIgogbXNnc3RyICJ1bmfDvGx0aWdlcyBCbG9iLU9iamVrdCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzU5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCAlcyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgT2JqZWt0LVR5cCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjYKIG1zZ2lkICJFcnJvciBpbiBvYmplY3QiCiBtc2dzdHIgIkZlaGxlciBpbiBPYmpla3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhbGwgY2hpbGQgb2JqZWN0cyBvZiAlcyBhcmUgcmVhY2hhYmxlIgogbXNnc3RyICJOaWNodCBhbGxlIEtpbmQtT2JqZWt0ZSB2b24gJXMgc2luZCBlcnJlaWNoYmFyIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzMgYnVpbHRpbi9pbmRleC1wYWNrLmM6ODYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzggYnVpbHRpbi9pbmRleC1wYWNrLmM6ODY4CiBtc2dpZCAiZmFpbGVkIHRvIGFwcGx5IGRlbHRhIgogbXNnc3RyICJLb25udGUgRGF0ZWl1bnRlcnNjaGllZCBuaWNodCBhbndlbmRlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwOQogbXNnaWQgIlJlY2VpdmluZyBvYmplY3RzIgogbXNnc3RyICJFbXBmYW5nZSBPYmpla3RlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CiBtc2dpZCAiSW5kZXhpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiSW5kaXppZXJlIE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKIG1zZ2lkICJwYWNrIGlzIGNvcnJ1cHRlZCAoU0hBMSBtaXNtYXRjaCkiCiBtc2dzdHIgIlBha2V0IGlzdCBiZXNjaMOkZGlndCAoU0hBMSB1bnRlcnNjaGllZGxpY2gpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQwCiBtc2dpZCAiY2Fubm90IGZzdGF0IHBhY2tmaWxlIgogbXNnc3RyICJrYW5uIFBha2V0ZGF0ZWkgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDMKIG1zZ2lkICJwYWNrIGhhcyBqdW5rIGF0IHRoZSBlbmQiCiBtc2dzdHIgIlBha2V0ZW5kZSBlbnRow6RsdCBuaWNodCB2ZXJ3ZW5kYmFyZW4gSW5oYWx0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDU0CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSBpbiBwYXJzZV9wYWNrX29iamVjdHMoKSIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gQXVzZsO8aHJlbiB2b24gXCJwYXJzZV9wYWNrX29iamVjdHMoKVwiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDcyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDc3CiBtc2dpZCAiUmVzb2x2aW5nIGRlbHRhcyIKIG1zZ3N0ciAiTMO2c2UgVW50ZXJzY2hpZWRlIGF1ZiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgImthbm4gVGhyZWFkIG5pY2h0IGVyemV1Z2VuOiAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyOQogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkiCiBtc2dzdHIgIkZlaGxlciBiZWltIEF1ZmzDtnNlbiBkZXIgVW50ZXJzY2hpZWRlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBsZXRlZCB3aXRoICVkIGxvY2FsIG9iamVjdHMiCiBtc2dzdHIgInZlcnZvbGxzdMOkbmRpZ3QgbWl0ICVkIGxva2FsZW4gT2JqZWt0ZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5leHBlY3RlZCB0YWlsIGNoZWNrc3VtIGZvciAlcyAoZGlzayBjb3JydXB0aW9uPykiCiBtc2dzdHIgIlVuZXJ3YXJ0ZXRlIFByw7xmc3VtbWUgZsO8ciAlcyAoRmVzdHBsYXR0ZW5mZWhsZXI/KSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhIgogbXNnaWRfcGx1cmFsICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhcyIKIG1zZ3N0clswXSAiUGFrZXQgaGF0ICVkIHVuYXVmZ2Vsw7ZzdGUgVW50ZXJzY2hpZWQiCiBtc2dzdHJbMV0gIlBha2V0IGhhdCAlZCB1bmF1ZmdlbMO2c3RlIFVudGVyc2NoaWVkZSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZGVmbGF0ZSBhcHBlbmRlZCBvYmplY3QgKCVkKSIKIG1zZ3N0ciAiS29ubnRlIGFuZ2Vow6RuZ3RlcyBPYmpla3QgKCVkKSBuaWNodCBrb21wcmltaWVyZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNTUKICMsIGMtZm9ybWF0CiBtc2dpZCAibG9jYWwgb2JqZWN0ICVzIGlzIGNvcnJ1cHQiCiBtc2dzdHIgImxva2FsZXMgT2JqZWt0ICVzIGlzdCBiZXNjaMOkZGlndCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI3NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI3OQogbXNnaWQgImVycm9yIHdoaWxlIGNsb3NpbmcgcGFjayBmaWxlIgogbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hsaWXDn2VuIGRlciBQYWtldGRhdGVpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjg3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCB3cml0ZSBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAiS2FubiBQYWtldGJlc2NocmVpYnVuZ3NkYXRlaSAnJXMnIG5pY2h0IHNjaHJlaWJlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY2xvc2Ugd3JpdHRlbiBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAiS2FubiBlYmVuIGVyc3RlbGx0ZSBQYWtldGJlc2NocmVpYnVuZ3NkYXRlaSAnJXMnIG5pY2h0IHNjaGxpZcOfZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMDgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTMKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgcGFjayBmaWxlIgogbXNnc3RyICJLYW5uIFBha2V0ZGF0ZWkgbmljaHQgc3BlaWNoZXJuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzE5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzI0CiBtc2dpZCAiY2Fubm90IHN0b3JlIGluZGV4IGZpbGUiCiBtc2dzdHIgIkthbm4gSW5kZXhkYXRlaSBuaWNodCBzcGVpY2hlcm4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHBhY2suaW5kZXh2ZXJzaW9uPSU8UFJJdTMyPiIKIG1zZ3N0ciAiXCJwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj5cIiBpc3QgdW5nw7xsdGlnIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIHRocmVhZHMgc3BlY2lmaWVkICglZCkiCiBtc2dzdHIgInVuZ8O8bHRpZ2UgQW56YWhsIHZvbiBUaHJlYWRzIGFuZ2VnZWJlbiAoJWQpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0aHJlYWRzIHN1cHBvcnQsIGlnbm9yaW5nICVzIgogbXNnc3RyICJrZWluZSBVbnRlcnN0w7x0enVuZyB2b24gVGhyZWFkcywgJyVzJyB3aXJkIGlnbm9yaWVydCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGZpbGUgJyVzJyIKIG1zZ3N0ciAiS2FubiBleGlzdGllcmVuZGUgUGFrZXRkYXRlaSAnJXMnIG5pY2h0IMO2ZmZuZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBpZHggZmlsZSBmb3IgJyVzJyIKIG1zZ3N0ciAiS2FubiBleGlzdGllcmVuZGUgSW5kZXhkYXRlaSBmw7xyIFBha2V0ICclcycgbmljaHQgw7ZmZm5lbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJub24gZGVsdGE6ICVkIG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAibm9uIGRlbHRhOiAlZCBvYmplY3RzIgogbXNnc3RyWzBdICJrZWluIFVudGVyc2NoaWVkOiAlZCBPYmpla3QiCiBtc2dzdHJbMV0gImtlaW4gVW50ZXJzY2hpZWQ6ICVkIE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3QiCiBtc2dpZF9wbHVyYWwgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0cyIKIG1zZ3N0clswXSAiTMOkbmdlIGRlciBPYmpla3QtTGlzdGUgPSAlZDogJWx1IE9iamVrdCIKIG1zZ3N0clsxXSAiTMOkbmdlIGRlciBPYmpla3QtTGlzdGUgPSAlZDogJWx1IE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDkKIG1zZ2lkICJDYW5ub3QgY29tZSBiYWNrIHRvIGN3ZCIKIG1zZ3N0ciAiS2FubiBuaWNodCB6dXLDvGNrIHp1IEFyYmVpdHN2ZXJ6ZWljaG5pcyB3ZWNoc2VsbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTUwCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCAlcyIKIG1zZ3N0ciAiJXMgaXN0IHVuZ8O8bHRpZyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5MAogbXNnaWQgIi0tZml4LXRoaW4gY2Fubm90IGJlIHVzZWQgd2l0aG91dCAtLXN0ZGluIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tZml4LXRoaW4ga2FubiBuaWNodCBvaG5lIC0tc3RkaW4gdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1ODQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NCBidWlsdGluL2luZGV4LXBhY2suYzoxNjA0CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2tmaWxlIG5hbWUgJyVzJyBkb2VzIG5vdCBlbmQgd2l0aCAnLnBhY2snIgogbXNnc3RyICJOYW1lIGRlciBQYWtldGRhdGVpICclcycgZW5kZXQgbmljaHQgbWl0ICcucGFjayciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTMKIG1zZ2lkICItLXZlcmlmeSB3aXRoIG5vIHBhY2tmaWxlIG5hbWUgZ2l2ZW4iCiBtc2dzdHIgIkRpZSBPcHRpb24gLS12ZXJpZnkgd3VyZGUgb2huZSBOYW1lbiBkZXIgUGFrZXRkYXRlaSBhbmdlZ2ViZW4uIgogCkBAIC01NzczLDE3ICs2MDA5LDE3IEBACiAjOiBidWlsdGluL2luaXQtZGIuYzo5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZGxpbmsgJyVzJyIKLW1zZ3N0ciAia2FubiBWZXJrbsO8cGZ1bmcgJyVzJyBuaWNodCBsZXNlbiIKK21zZ3N0ciAia2FubiBWZXJ3ZWlzICclcycgbmljaHQgbGVzZW4iCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjk5CiAjLCBjLWZvcm1hdAogbXNnaWQgImluc2FuZWx5IGxvbmcgc3ltbGluayAlcyIKLW1zZ3N0ciAienUgbGFuZ2Ugc3ltYm9saXNjaGUgVmVya27DvHBmdW5nICVzIgorbXNnc3RyICJ6dSBsYW5nZXIgc3ltYm9saXNjaGVyIFZlcndlaXMgJXMiCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgc3ltbGluayAnJXMnICclcyciCi1tc2dzdHIgImthbm4gJyVzJyBuaWNodCBtaXQgJyVzJyBzeW1ib2xpc2NoIHZlcmtuw7xwZmVuIgorbXNnc3RyICJrYW5uIHN5bWJvbGlzY2hlbiBWZXJ3ZWlzICclcycgYXVmICclcycgbmljaHQgZXJzdGVsbGVuIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzoxMDYKICMsIGMtZm9ybWF0CkBAIC01ODMzLDcgKzYwNjksNyBAQAogIzogYnVpbHRpbi9pbml0LWRiLmM6MzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZ2l0IGxpbmsgJXMiCi1tc2dzdHIgIktvbm50ZSBnaXQtVmVya27DvHBmdW5nICVzIG5pY2h0IGVyc3RlbGxlbiIKK21zZ3N0ciAiS29ubnRlIGdpdC1WZXJ3ZWlzICVzIG5pY2h0IGVyc3RlbGxlbiIKIAogIy4KICMuICogVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAnJXMnIGlzIGVpdGhlciAiUmVpbml0aWFsaXplZApAQCAtNTg0Myw3ICs2MDc5LDcgQEAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQyMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyVzIEdpdCByZXBvc2l0b3J5IGluICVzJXNcbiIKLW1zZ3N0ciAiJXMlcyBHaXQtUHJvamVrdGFyY2hpdiBpbiAlcyVzXG4iCittc2dzdHIgIiVzJXMgR2l0LVJlcG9zaXRvcnkgaW4gJXMlc1xuIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo0MjEKIG1zZ2lkICJSZWluaXRpYWxpemVkIGV4aXN0aW5nIgpAQCAtNTg3NSwxMCArNjExMSw5IEBACiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MQogbXNnaWQgInNwZWNpZnkgdGhhdCB0aGUgZ2l0IHJlcG9zaXRvcnkgaXMgdG8gYmUgc2hhcmVkIGFtb25nc3Qgc2V2ZXJhbCB1c2VycyIKLW1zZ3N0ciAiIgotImdpYnQgYW4sIGRhc3MgZGFzIEdpdC1Qcm9qZWt0YXJjaGl2IG1pdCBtZWhyZXJlbiBCZW51dHplcm4gZ2V0ZWlsdCB3aXJkIgorbXNnc3RyICJnaWJ0IGFuLCBkYXNzIGRhcyBHaXQtUmVwb3NpdG9yeSBtaXQgbWVocmVyZW4gQmVudXR6ZXJuIGdldGVpbHQgd2lyZCIKIAotIzogYnVpbHRpbi9pbml0LWRiLmM6NDkzIGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzcKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CiBtc2dpZCAiYmUgcXVpZXQiCiBtc2dzdHIgIndlbmlnZXIgQXVzZ2FiZW4iCiAKQEAgLTU5MDgsMzY4ICs2MTQzLDM4NSBAQAogIzogYnVpbHRpbi9pbml0LWRiLmM6NTg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBhY2Nlc3Mgd29yayB0cmVlICclcyciCi1tc2dzdHIgIkthbm4gbmljaHQgYXVmIEFyYmVpdHNiYXVtICclcycgenVncmVpZmVuLiIKLQotIzogYnVpbHRpbi9sb2cuYzo0MAotbXNnaWQgImdpdCBsb2cgWzxvcHRpb25zPl0gWzxyZXZpc2lvbiByYW5nZT5dIFtbLS1dIDxwYXRoPi4uLl1cbiIKLW1zZ3N0ciAiZ2l0IGxvZyBbPE9wdGlvbmVuPl0gW1JldmlzaW9uc2JlcmVpY2g+XSBbWy0tXSA8UGZhZD4uLi5dXG4iCittc2dzdHIgIkthbm4gbmljaHQgYXVmIEFyYmVpdHN2ZXJ6ZWljaG5pcyAnJXMnIHp1Z3JlaWZlbi4iCiAKICM6IGJ1aWx0aW4vbG9nLmM6NDEKK21zZ2lkICJnaXQgbG9nIFs8b3B0aW9ucz5dIFs8cmV2aXNpb24gcmFuZ2U+XSBbWy0tXSA8cGF0aD4uLi5dXG4iCittc2dzdHIgImdpdCBsb2cgWzxPcHRpb25lbj5dIFtDb21taXRiZXJlaWNoPl0gW1stLV0gPFBmYWQ+Li4uXVxuIgorCisjOiBidWlsdGluL2xvZy5jOjQyCiBtc2dpZCAiICAgb3I6IGdpdCBzaG93IFtvcHRpb25zXSA8b2JqZWN0Pi4uLiIKIG1zZ3N0ciAiICAgb2RlcjogZ2l0IHNob3cgW09wdGlvbmVuXSA8T2JqZWt0Pi4uLiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDMKKyM6IGJ1aWx0aW4vbG9nLmM6MTI0CiBtc2dpZCAic3VwcHJlc3MgZGlmZiBvdXRwdXQiCiBtc2dzdHIgInVudGVyZHLDvGNrdCBBdXNnYWJlIGRlciBVbnRlcnNjaGllZGUiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA0CisjOiBidWlsdGluL2xvZy5jOjEyNQogbXNnaWQgInNob3cgc291cmNlIgogbXNnc3RyICJ6ZWlndCBRdWVsbGUiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA1CisjOiBidWlsdGluL2xvZy5jOjEyNgogbXNnaWQgIlVzZSBtYWlsIG1hcCBmaWxlIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgXCJtYWlsbWFwXCItRGF0ZWkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA2CisjOiBidWlsdGluL2xvZy5jOjEyNwogbXNnaWQgImRlY29yYXRlIG9wdGlvbnMiCiBtc2dzdHIgImRlY29yYXRlLU9wdGlvbmVuIgogCi0jOiBidWlsdGluL2xvZy5jOjE5OQorIzogYnVpbHRpbi9sb2cuYzoyMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmluYWwgb3V0cHV0OiAlZCAlc1xuIgogbXNnc3RyICJsZXR6dGUgQXVzZ2FiZTogJWQgJXNcbiIKIAotIzogYnVpbHRpbi9sb2cuYzo0MjIgYnVpbHRpbi9sb2cuYzo1MTQKKyM6IGJ1aWx0aW4vbG9nLmM6NDUzIGJ1aWx0aW4vbG9nLmM6NTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIG9iamVjdCAlcyIKIG1zZ3N0ciAiS2FubiBPYmpla3QgJXMgbmljaHQgbGVzZW4uIgogCi0jOiBidWlsdGluL2xvZy5jOjUzOAorIzogYnVpbHRpbi9sb2cuYzo1NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biB0eXBlOiAlZCIKIG1zZ3N0ciAiVW5iZWthbm50ZXIgVHlwOiAlZCIKIAotIzogYnVpbHRpbi9sb2cuYzo2MzgKKyM6IGJ1aWx0aW4vbG9nLmM6NjY5CiBtc2dpZCAiZm9ybWF0LmhlYWRlcnMgd2l0aG91dCB2YWx1ZSIKIG1zZ3N0ciAiZm9ybWF0LmhlYWRlcnMgb2huZSBXZXJ0IgogCi0jOiBidWlsdGluL2xvZy5jOjcyMAorIzogYnVpbHRpbi9sb2cuYzo3NTEKIG1zZ2lkICJuYW1lIG9mIG91dHB1dCBkaXJlY3RvcnkgaXMgdG9vIGxvbmciCiBtc2dzdHIgIk5hbWUgZGVzIEF1c2dhYmV2ZXJ6ZWljaG5pc3NlcyBpc3QgenUgbGFuZy4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzM2CisjOiBidWlsdGluL2xvZy5jOjc2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBwYXRjaCBmaWxlICVzIgogbXNnc3RyICJLYW5uIFBhdGNoLURhdGVpICVzIG5pY2h0IMO2ZmZuZW4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzUwCisjOiBidWlsdGluL2xvZy5jOjc4MQogbXNnaWQgIk5lZWQgZXhhY3RseSBvbmUgcmFuZ2UuIgotbXNnc3RyICJCcmF1Y2hlIGdlbmF1IGVpbmVuIFZlcnNpb25zYmVyZWljaC4iCittc2dzdHIgIkJyYXVjaGUgZ2VuYXUgZWluZW4gQ29tbWl0LUJlcmVpY2guIgogCi0jOiBidWlsdGluL2xvZy5jOjc1OAorIzogYnVpbHRpbi9sb2cuYzo3ODkKIG1zZ2lkICJOb3QgYSByYW5nZS4iCi1tc2dzdHIgIktlaW4gVmVyc2lvbnNiZXJlaWNoLiIKK21zZ3N0ciAiS2VpbiBDb21taXQtQmVyZWljaC4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6ODYwCisjOiBidWlsdGluL2xvZy5jOjg5MQogbXNnaWQgIkNvdmVyIGxldHRlciBuZWVkcyBlbWFpbCBmb3JtYXQiCiBtc2dzdHIgIkFuc2NocmVpYmVuIGJlbsO2dGlndCBFLU1haWwtRm9ybWF0IgogCi0jOiBidWlsdGluL2xvZy5jOjkzNgorIzogYnVpbHRpbi9sb2cuYzo5NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lIGluLXJlcGx5LXRvOiAlcyIKIG1zZ3N0ciAidW5nw7xsdGlnZXMgaW4tcmVwbHktdG86ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjk2NAorIzogYnVpbHRpbi9sb2cuYzo5OTUKIG1zZ2lkICJnaXQgZm9ybWF0LXBhdGNoIFtvcHRpb25zXSBbPHNpbmNlPiB8IDxyZXZpc2lvbiByYW5nZT5dIgotbXNnc3RyICJnaXQgZm9ybWF0LXBhdGNoIFtPcHRpb25lbl0gWzxzZWl0PiB8IDxSZXZpc2lvbnNiZXJlaWNoPl0iCittc2dzdHIgImdpdCBmb3JtYXQtcGF0Y2ggW09wdGlvbmVuXSBbPHNlaXQ+IHwgPENvbW1pdGJlcmVpY2g+XSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDA5CisjOiBidWlsdGluL2xvZy5jOjEwNDAKIG1zZ2lkICJUd28gb3V0cHV0IGRpcmVjdG9yaWVzPyIKIG1zZ3N0ciAiWndlaSBBdXNnYWJldmVyemVpY2huaXNzZT8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEwOAorIzogYnVpbHRpbi9sb2cuYzoxMTU1CiBtc2dpZCAidXNlIFtQQVRDSCBuL21dIGV2ZW4gd2l0aCBhIHNpbmdsZSBwYXRjaCIKIG1zZ3N0ciAidmVyd2VuZGV0IFtQQVRDSCBuL21dIGF1Y2ggbWl0IGVpbnplbG5lbSBQYXRjaCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTExCisjOiBidWlsdGluL2xvZy5jOjExNTgKIG1zZ2lkICJ1c2UgW1BBVENIXSBldmVuIHdpdGggbXVsdGlwbGUgcGF0Y2hlcyIKIG1zZ3N0ciAidmVyd2VuZGV0IFtQQVRDSF0gYXVjaCBtaXQgbWVocmVyZW4gUGF0Y2hlcyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE1CisjOiBidWlsdGluL2xvZy5jOjExNjIKIG1zZ2lkICJwcmludCBwYXRjaGVzIHRvIHN0YW5kYXJkIG91dCIKIG1zZ3N0ciAiQXVzZ2FiZSBkZXIgUGF0Y2hlcyBpbiBTdGFuZGFyZC1BdXNnYWJlIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2NAogbXNnaWQgImdlbmVyYXRlIGEgY292ZXIgbGV0dGVyIgogbXNnc3RyICJlcnpldWd0IGVpbiBEZWNrYmxhdHQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExOQorIzogYnVpbHRpbi9sb2cuYzoxMTY2CiBtc2dpZCAidXNlIHNpbXBsZSBudW1iZXIgc2VxdWVuY2UgZm9yIG91dHB1dCBmaWxlIG5hbWVzIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgZWluZmFjaGUgTnVtbWVybmZvbGdlIGbDvHIgZGllIE5hbWVuIGRlciBBdXNnYWJlZGF0ZWllbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTIwCisjOiBidWlsdGluL2xvZy5jOjExNjcKIG1zZ2lkICJzZngiCiBtc2dzdHIgIkRhdGVpZW5kdW5nIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2OAogbXNnaWQgInVzZSA8c2Z4PiBpbnN0ZWFkIG9mICcucGF0Y2gnIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgPERhdGVpZW5kdW5nPiBhbnN0YXR0ICcucGF0Y2gnIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjMKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3MAogbXNnaWQgInN0YXJ0IG51bWJlcmluZyBwYXRjaGVzIGF0IDxuPiBpbnN0ZWFkIG9mIDEiCiBtc2dzdHIgImJlZ2lubnQgZGllIE51bW1lcmllcnVuZyBkZXIgUGF0Y2hlcyBiZWkgPG4+IGFuc3RhdHQgYmVpIDEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNQorIzogYnVpbHRpbi9sb2cuYzoxMTcyCiBtc2dpZCAibWFyayB0aGUgc2VyaWVzIGFzIE50aCByZS1yb2xsIgogbXNnc3RyICJrZW5uemVpY2huZXQgZGllIFNlcmllIGFscyBuLXRlIEZhc3N1bmciCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNworIzogYnVpbHRpbi9sb2cuYzoxMTc0CiBtc2dpZCAiVXNlIFs8cHJlZml4Pl0gaW5zdGVhZCBvZiBbUEFUQ0hdIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgWzxQcmVmaXg+XSBhbnN0YXR0IFtQQVRDSF0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzMAorIzogYnVpbHRpbi9sb2cuYzoxMTc3CiBtc2dpZCAic3RvcmUgcmVzdWx0aW5nIGZpbGVzIGluIDxkaXI+IgogbXNnc3RyICJzcGVpY2hlcnQgZXJ6ZXVndGUgRGF0ZWllbiBpbiA8VmVyemVpY2huaXM+IgogCi0jOiBidWlsdGluL2xvZy5jOjExMzMKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4MAogbXNnaWQgImRvbid0IHN0cmlwL2FkZCBbUEFUQ0hdIgogbXNnc3RyICJbUEFUQ0hdIHdpcmQgbmljaHQgZW50ZmVybnQvaGluenVnZWbDvGd0IgogCi0jOiBidWlsdGluL2xvZy5jOjExMzYKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4MwogbXNnaWQgImRvbid0IG91dHB1dCBiaW5hcnkgZGlmZnMiCiBtc2dzdHIgImdpYnQga2VpbmUgYmluw6RyZW4gVW50ZXJzY2hpZWRlIGF1cyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM4CisjOiBidWlsdGluL2xvZy5jOjExODUKIG1zZ2lkICJkb24ndCBpbmNsdWRlIGEgcGF0Y2ggbWF0Y2hpbmcgYSBjb21taXQgdXBzdHJlYW0iCiBtc2dzdHIgIiIKLSJzY2hsaWXDn3Qga2VpbmUgUGF0Y2hlcyBlaW4sIGRpZSBlaW5lciBWZXJzaW9uIGltIMOcYmVybmFobWV6d2VpZyBlbnRzcHJlY2hlbiIKKyJzY2hsaWXDn3Qga2VpbmUgUGF0Y2hlcyBlaW4sIGRpZSBlaW5lbSBDb21taXQgaW0gVXBzdHJlYW0tQnJhbmNoIGVudHNwcmVjaGVuIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NwogbXNnaWQgInNob3cgcGF0Y2ggZm9ybWF0IGluc3RlYWQgb2YgZGVmYXVsdCAocGF0Y2ggKyBzdGF0KSIKIG1zZ3N0ciAiemVpZ3QgUGF0Y2hmb3JtYXQgYW5zdGF0dCBkZXMgU3RhbmRhcmRzIChQYXRjaCArIFp1c2FtbWVuZmFzc3VuZykiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MgorIzogYnVpbHRpbi9sb2cuYzoxMTg5CiBtc2dpZCAiTWVzc2FnaW5nIgogbXNnc3RyICJFbWFpbC1FaW5zdGVsbHVuZ2VuIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDMKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MAogbXNnaWQgImhlYWRlciIKIG1zZ3N0ciAiSGVhZGVyIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDQKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MQogbXNnaWQgImFkZCBlbWFpbCBoZWFkZXIiCiBtc2dzdHIgImbDvGd0IEVtYWlsLUhlYWRlciBoaW56dSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ1IGJ1aWx0aW4vbG9nLmM6MTE0NworIzogYnVpbHRpbi9sb2cuYzoxMTkyIGJ1aWx0aW4vbG9nLmM6MTE5NAogbXNnaWQgImVtYWlsIgogbXNnc3RyICJFbWFpbCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ1CisjOiBidWlsdGluL2xvZy5jOjExOTIKIG1zZ2lkICJhZGQgVG86IGhlYWRlciIKIG1zZ3N0ciAiZsO8Z3QgIFwiVG86XCItSGVhZGVyIGhpbnp1IgogCi0jOiBidWlsdGluL2xvZy5jOjExNDcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NAogbXNnaWQgImFkZCBDYzogaGVhZGVyIgogbXNnc3RyICJmw7xndCBcIkNjOlwiLUhlYWRlciBoaW56dSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ5CisjOiBidWlsdGluL2xvZy5jOjExOTYKK21zZ2lkICJpZGVudCIKK21zZ3N0ciAiSWRlbnQiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NworbXNnaWQgInNldCBGcm9tIGFkZHJlc3MgdG8gPGlkZW50PiAob3IgY29tbWl0dGVyIGlkZW50IGlmIGFic2VudCkiCittc2dzdHIgIiIKKyJzZXR6dCBcIkZyb21cIi1BZHJlc3NlIGF1ZiA8SWRlbnQ+IChvZGVyIElkZW50IGRlcyBDb21taXQtRXJzdGVsbGVycyx3ZW5uICIKKyJmZWhsZW5kKSIKKworIzogYnVpbHRpbi9sb2cuYzoxMTk5CiBtc2dpZCAibWVzc2FnZS1pZCIKIG1zZ3N0ciAibWVzc2FnZS1pZCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTUwCisjOiBidWlsdGluL2xvZy5jOjEyMDAKIG1zZ2lkICJtYWtlIGZpcnN0IG1haWwgYSByZXBseSB0byA8bWVzc2FnZS1pZD4iCiBtc2dzdHIgIm1hY2h0IGF1cyBlcnN0ZXIgRW1haWwgZWluZSBBbnR3b3J0IHp1IDxtZXNzYWdlLWlkPiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTUxIGJ1aWx0aW4vbG9nLmM6MTE1NAorIzogYnVpbHRpbi9sb2cuYzoxMjAxIGJ1aWx0aW4vbG9nLmM6MTIwNAogbXNnaWQgImJvdW5kYXJ5IgogbXNnc3RyICJHcmVuemUiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MgorIzogYnVpbHRpbi9sb2cuYzoxMjAyCiBtc2dpZCAiYXR0YWNoIHRoZSBwYXRjaCIKIG1zZ3N0ciAiaMOkbmd0IGVpbmVuIFBhdGNoIGFuIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwNQogbXNnaWQgImlubGluZSB0aGUgcGF0Y2giCiBtc2dzdHIgImbDvGd0IGRlbiBQYXRjaCBkaXJla3QgaW4gZGllIE5hY2hyaWNodCBlaW4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1OQorIzogYnVpbHRpbi9sb2cuYzoxMjA5CiBtc2dpZCAiZW5hYmxlIG1lc3NhZ2UgdGhyZWFkaW5nLCBzdHlsZXM6IHNoYWxsb3csIGRlZXAiCiBtc2dzdHIgImFrdGl2aWVydCBOYWNocmljaHRlbnZlcmtldHR1bmcsIFN0aWxlOiBzaGFsbG93LCBkZWVwIgogCi0jOiBidWlsdGluL2xvZy5jOjExNjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMQogbXNnaWQgInNpZ25hdHVyZSIKIG1zZ3N0ciAiU2lnbmF0dXIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2MgorIzogYnVpbHRpbi9sb2cuYzoxMjEyCiBtc2dpZCAiYWRkIGEgc2lnbmF0dXJlIgogbXNnc3RyICJmw7xndCBlaW5lIFNpZ25hdHVyIGhpbnp1IgogCi0jOiBidWlsdGluL2xvZy5jOjExNjQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNAogbXNnaWQgImRvbid0IHByaW50IHRoZSBwYXRjaCBmaWxlbmFtZXMiCiBtc2dzdHIgInplaWd0IGtlaW5lIERhdGVpbmFtZW4gZGVyIFBhdGNoZXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI0OAorIzogYnVpbHRpbi9sb2cuYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWRlbnQgbGluZTogJXMiCittc2dzdHIgIlVuZ8O8bHRpZ2UgSWRlbnRpZmlrYXRpb25zemVpbGU6ICVzIgorCisjOiBidWlsdGluL2xvZy5jOjEzMDMKIG1zZ2lkICItbiBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtbiB1bmQgLWsgc2NobGllw59lbiBzaWNoIGdlZ2Vuc2VpdGlnIGF1cy4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI1MAorIzogYnVpbHRpbi9sb2cuYzoxMzA1CiBtc2dpZCAiLS1zdWJqZWN0LXByZWZpeCBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLXN1YmplY3QtcHJlZml4IHVuZCAtayBzY2hsaWXDn2VuIHNpY2ggZ2VnZW5zZWl0aWcgYXVzLiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjU4CisjOiBidWlsdGluL2xvZy5jOjEzMTMKIG1zZ2lkICItLW5hbWUtb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tbmFtZS1vbmx5IGthbm4gbmljaHQgdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI2MAorIzogYnVpbHRpbi9sb2cuYzoxMzE1CiBtc2dpZCAiLS1uYW1lLXN0YXR1cyBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tbmFtZS1zdGF0dXMga2FubiBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjYyCisjOiBidWlsdGluL2xvZy5jOjEzMTcKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1jaGVjayBrYW5uIG5pY2h0IHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2xvZy5jOjEyODUKKyM6IGJ1aWx0aW4vbG9nLmM6MTM0MAogbXNnaWQgInN0YW5kYXJkIG91dHB1dCwgb3IgZGlyZWN0b3J5LCB3aGljaCBvbmU/IgogbXNnc3RyICJTdGFuZGFyZC1BdXNnYWJlIG9kZXIgVmVyemVpY2huaXMsIHdlbGNoZXMgdm9uIGJlaWRlbT8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI4NworIzogYnVpbHRpbi9sb2cuYzoxMzQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5ICclcyciCiBtc2dzdHIgIktvbm50ZSBWZXJ6ZWljaG5pcyAnJXMnIG5pY2h0IGVyc3RlbGxlbi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQzNQorIzogYnVpbHRpbi9sb2cuYzoxNDkwCiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIkZlaGxlciBiZWltIEVyc3RlbGxlbiBkZXIgQXVzZ2FiZWRhdGVpZW4uIgogCi0jOiBidWlsdGluL2xvZy5jOjE0ODQKLW1zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKLW1zZ3N0ciAiZ2l0IGNoZXJyeSBbLXZdIFs8w5xiZXJuYWhtZXp3ZWlnPiBbPEFyYmVpdHN6d2VpZz4gWzxMaW1pdD5dXV0iCi0KICM6IGJ1aWx0aW4vbG9nLmM6MTUzOQorbXNnaWQgImdpdCBjaGVycnkgWy12XSBbPHVwc3RyZWFtPiBbPGhlYWQ+IFs8bGltaXQ+XV1dIgorbXNnc3RyICJnaXQgY2hlcnJ5IFstdl0gWzxVcHN0cmVhbT4gWzxCcmFuY2g+IFs8TGltaXQ+XV1dIgorCisjOiBidWlsdGluL2xvZy5jOjE1OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNvdWxkIG5vdCBmaW5kIGEgdHJhY2tlZCByZW1vdGUgYnJhbmNoLCBwbGVhc2Ugc3BlY2lmeSA8dXBzdHJlYW0+IG1hbnVhbGx5LlxuIgogbXNnc3RyICIiCi0iS29ubnRlIGdlZm9sZ3RlbiwgZXh0ZXJuZW4gWndlaWcgbmljaHQgZmluZGVuLCBiaXR0ZSBnZWJlbiBTaWUgPHVwc3RyZWFtPiAiCisiS29ubnRlIGdlZm9sZ3RlbiBSZW1vdGUtQnJhbmNoIG5pY2h0IGZpbmRlbiwgYml0dGUgZ2ViZW4gU2llIDxVcHN0cmVhbT4gIgogIm1hbnVlbGwgYW4uXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTU1MiBidWlsdGluL2xvZy5jOjE1NTQgYnVpbHRpbi9sb2cuYzoxNTY2CisjOiBidWlsdGluL2xvZy5jOjE2MDcgYnVpbHRpbi9sb2cuYzoxNjA5IGJ1aWx0aW4vbG9nLmM6MTYyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKLW1zZ3N0ciAiVW5iZWthbm50ZSBWZXJzaW9uICVzIgorbXNnc3RyICJVbmJla2FubnRlciBDb21taXQgJXMiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0MDIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0MDgKIG1zZ2lkICJnaXQgbHMtZmlsZXMgW29wdGlvbnNdIFs8ZmlsZT4uLi5dIgogbXNnc3RyICJnaXQgbHMtZmlsZXMgW09wdGlvbmVuXSBbPERhdGVpPi4uLl0iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKIG1zZ2lkICJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIgotbXNnc3RyICJ6ZWlndCBkZW4gRGF0ZWlzdGF0dXMgbWl0IE1hcmtpZXJ1bmdlbiIKK21zZ3N0ciAiemVpZ3QgZGVuIERhdGVpc3RhdHVzIG1pdCBUYWdzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDYxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CiBtc2dpZCAidXNlIGxvd2VyY2FzZSBsZXR0ZXJzIGZvciAnYXNzdW1lIHVuY2hhbmdlZCcgZmlsZXMiCiBtc2dzdHIgIiIKICJ2ZXJ3ZW5kZXQgS2xlaW5idWNoc3RhYmVuIGbDvHIgRGF0ZWllbiBtaXQgJ2Fzc3VtZSB1bmNoYW5nZWQnIE1hcmtpZXJ1bmciCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjkKIG1zZ2lkICJzaG93IGNhY2hlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IChkZWZhdWx0KSIKIG1zZ3N0ciAiemVpZ3Qgendpc2NoZW5nZXNwZWljaGVydGVuIERhdGVpZW4gaW4gZGVyIEF1c2dhYmUgYW4gKFN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQogbXNnaWQgInNob3cgZGVsZXRlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ6ZWlndCBlbnRmZXJudGUgRGF0ZWllbiBpbiBkZXIgQXVzZ2FiZSBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MwogbXNnaWQgInNob3cgbW9kaWZpZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiemVpZ3QgZ2XDpG5kZXJ0ZSBEYXRlaWVuIGluIGRlciBBdXNnYWJlIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc1CiBtc2dpZCAic2hvdyBvdGhlciBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ6ZWlndCBzb25zdGlnZSBEYXRlaWVuIGluIGRlciBBdXNnYWJlIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDcxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc3CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgInplaWd0IGlnbm9yaWVydGUgRGF0ZWllbiBpbiBkZXIgQXVzZ2FiZSBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MAogbXNnaWQgInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IgotbXNnc3RyICJ6ZWlndCBPYmpla3RuYW1lbiB2b24gSW5oYWx0ZW4gaW4gZGVyIEJlcmVpdHN0ZWxsdW5nIGluIGRlciBBdXNnYWJlIGFuIgorbXNnc3RyICIiCisiemVpZ3QgT2JqZWt0bmFtZW4gdm9uIEluaGFsdGVuLCBkaWUgenVtIENvbW1pdCB2b3JnZW1lcmt0IHNpbmQsIGluIGRlciAiCisiQXVzZ2FiZSBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MgogbXNnaWQgInNob3cgZmlsZXMgb24gdGhlIGZpbGVzeXN0ZW0gdGhhdCBuZWVkIHRvIGJlIHJlbW92ZWQiCiBtc2dzdHIgInplaWd0IERhdGVpZW4gaW0gRGF0ZWlzeXN0ZW0sIGRpZSBnZWzDtnNjaHQgd2VyZGVuIG3DvHNzZW4sIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CiBtc2dpZCAic2hvdyAnb3RoZXInIGRpcmVjdG9yaWVzJyBuYW1lIG9ubHkiCiBtc2dzdHIgInplaWd0IG51ciBOYW1lbiB2b24gJ3NvbnN0aWdlbicgVmVyemVpY2huaXNzZW4gYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcKIG1zZ2lkICJkb24ndCBzaG93IGVtcHR5IGRpcmVjdG9yaWVzIgogbXNnc3RyICJ6ZWlndCBrZWluZSBsZWVyZW4gVmVyemVpY2huaXNzZSBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MAogbXNnaWQgInNob3cgdW5tZXJnZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiemVpZ3QgbmljaHQgenVzYW1tZW5nZWbDvGhydGUgRGF0ZWllbiBpbiBkZXIgQXVzZ2FiZSBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MgogbXNnaWQgInNob3cgcmVzb2x2ZS11bmRvIGluZm9ybWF0aW9uIgogbXNnc3RyICJ6ZWlndCAncmVzb2x2ZS11bmRvJyBJbmZvcm1hdGlvbmVuIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CiBtc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgogbXNnc3RyICJsw6Rzc3QgRGF0ZWllbiBhdXMsIGRpZSBlaW5lbSBNdXN0ZXIgZW50c3ByZWNoZW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcKIG1zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgogbXNnc3RyICJzY2hsaWXDn3QgTXVzdGVyLCBnZWxlc2VuIHZvbiA8RGF0ZWk+LCBhdXMiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAKIG1zZ2lkICJyZWFkIGFkZGl0aW9uYWwgcGVyLWRpcmVjdG9yeSBleGNsdWRlIHBhdHRlcm5zIGluIDxmaWxlPiIKIG1zZ3N0ciAibGllc3QgenVzw6R0emxpY2hlIHByby1WZXJ6ZWljaG5pcyBBdXNjaGx1c3NtdXN0ZXIgYXVzIDxEYXRlaT4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDIKIG1zZ2lkICJhZGQgdGhlIHN0YW5kYXJkIGdpdCBleGNsdXNpb25zIgogbXNnc3RyICJmw7xndCBkaWUgc3RhbmRhcmRtw6TDn2lnZW4gR2l0LUF1c3NjaGzDvHNzZSBoaW56dSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5OQorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNQogbXNnaWQgIm1ha2UgdGhlIG91dHB1dCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICJBdXNnYWJlIHJlbGF0aXYgenVtIFByb2pla3R2ZXJ6ZWljaG5pcyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOAogbXNnaWQgImlmIGFueSA8ZmlsZT4gaXMgbm90IGluIHRoZSBpbmRleCwgdHJlYXQgdGhpcyBhcyBhbiBlcnJvciIKIG1zZ3N0ciAiIgotImJlaGFuZGxlIGVzIGFscyBGZWhsZXIsIHdlbm4gc2ljaCBlaW5lIDxEYXRlaT4gbmljaHQgaW4gZGVyIEJlcmVpdHN0ZWxsdW5nICIKKyJiZWhhbmRsZSBlcyBhbHMgRmVobGVyLCB3ZW5uIHNpY2ggZWluZSA8RGF0ZWk+IG5pY2h0IGluIGRlciBTdGFnaW5nLUFyZWEgIgogImJlZmluZGV0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA5CiBtc2dpZCAidHJlZS1pc2giCi1tc2dzdHIgIlZlcnNpb25zcmVmZXJlbnoiCittc2dzdHIgIkNvbW1pdC1SZWZlcmVueiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMAogbXNnaWQgInByZXRlbmQgdGhhdCBwYXRocyByZW1vdmVkIHNpbmNlIDx0cmVlLWlzaD4gYXJlIHN0aWxsIHByZXNlbnQiCiBtc2dzdHIgIiIKLSJnaWJ0IHZvciwgZGFzcyBQZmFkZSwgZGllIHNlaXQgPFZlcnNpb25zcmVmZXJlbno+IGdlbMO2c2NodCB3dXJkZW4sIGltbWVyICIKLSJub2NoIHZvcmhhbmRlbiBzaW5kIgorImdpYnQgdm9yLCBkYXNzIFBmYWRlLCBkaWUgc2VpdCA8Q29tbWl0LVJlZmVyZW56PiBnZWzDtnNjaHQgd3VyZGVuLCBpbW1lciBub2NoICIKKyJ2b3JoYW5kZW4gc2luZCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMgogbXNnaWQgInNob3cgZGVidWdnaW5nIGRhdGEiCiBtc2dzdHIgInplaWd0IEF1c2dhYmVuIHp1ciBGZWhsZXJzdWNoZSBhbiIKIAogIzogYnVpbHRpbi9scy10cmVlLmM6MjcKIG1zZ2lkICJnaXQgbHMtdHJlZSBbPG9wdGlvbnM+XSA8dHJlZS1pc2g+IFs8cGF0aD4uLi5dIgotbXNnc3RyICJnaXQgbHMtdHJlZSBbPE9wdGlvbmVuPl0gPFZlcnNpb25zcmVmZXJlbno+IFs8UGZhZD4uLi5dIgorbXNnc3RyICJnaXQgbHMtdHJlZSBbPE9wdGlvbmVuPl0gPENvbW1pdC1SZWZlcmVuej4gWzxQZmFkPi4uLl0iCiAKICM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyNQogbXNnaWQgIm9ubHkgc2hvdyB0cmVlcyIKLW1zZ3N0ciAiemVpZ3QgbnVyIELDpHVtZSBhbiIKK21zZ3N0ciAiemVpZ3QgbnVyIFZlcnplaWNobmlzc2UgYW4iCiAKICM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyNwogbXNnaWQgInJlY3Vyc2UgaW50byBzdWJ0cmVlcyIKLW1zZ3N0ciAiZsO8aHJ0IFJla3Vyc2lvbiBpbiBUZWlsYsOkdW1lbiBkdXJjaCIKK21zZ3N0ciAiZsO8aHJ0IFJla3Vyc2lvbiBpbiBVbnRlcnZlcnplaWNobmlzc2VuIGR1cmNoIgogCiAjOiBidWlsdGluL2xzLXRyZWUuYzoxMjkKIG1zZ2lkICJzaG93IHRyZWVzIHdoZW4gcmVjdXJzaW5nIgotbXNnc3RyICJ6ZWlndCBCw6R1bWUgYmVpIFJla3Vyc2lvbiBhbiIKK21zZ3N0ciAiemVpZ3QgVmVyemVpY2huaXNzZSBiZWkgUmVrdXJzaW9uIGFuIgogCiAjOiBidWlsdGluL2xzLXRyZWUuYzoxMzIKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCBieXRlIgpAQCAtNjI5MCwxOTUgKzY1NDIsMTg3IEBACiAjOiBidWlsdGluL2xzLXRyZWUuYzoxNDIKIG1zZ2lkICJsaXN0IGVudGlyZSB0cmVlOyBub3QganVzdCBjdXJyZW50IGRpcmVjdG9yeSAoaW1wbGllcyAtLWZ1bGwtbmFtZSkiCiBtc2dzdHIgIiIKLSJsaXN0ZXQgZGVuIGdlc2FtdGVuIEJhdW0gYXVmOyBuaWNodCBudXIgZGFzIGFrdHVlbGxlIFZlcnplaWNobmlzIChpbXBsaXppZXJ0ICIKLSItLWZ1bGwtbmFtZSkiCisibGlzdGV0IGRhcyBnZXNhbXRlIFZlcnplaWNobmlzIGF1ZjsgbmljaHQgbnVyIGRhcyBha3R1ZWxsZSBWZXJ6ZWljaG5pcyAiCisiKGltcGxpemllcnQgLS1mdWxsLW5hbWUpIgogCiAjOiBidWlsdGluL21lcmdlLmM6NDMKIG1zZ2lkICJnaXQgbWVyZ2UgW29wdGlvbnNdIFs8Y29tbWl0Pi4uLl0iCi1tc2dzdHIgImdpdCBtZXJnZSBbT3B0aW9uZW5dIFs8VmVyc2lvbj4uLi5dIgorbXNnc3RyICJnaXQgbWVyZ2UgW09wdGlvbmVuXSBbPENvbW1pdD4uLi5dIgogCiAjOiBidWlsdGluL21lcmdlLmM6NDQKIG1zZ2lkICJnaXQgbWVyZ2UgW29wdGlvbnNdIDxtc2c+IEhFQUQgPGNvbW1pdD4iCi1tc2dzdHIgImdpdCBtZXJnZSBbT3B0aW9uZW5dIDxCZXNjaHJlaWJ1bmc+IEhFQUQgPFZlcnNpb24+IgorbXNnc3RyICJnaXQgbWVyZ2UgW09wdGlvbmVuXSA8QmVzY2hyZWlidW5nPiBIRUFEIDxDb21taXQ+IgogCiAjOiBidWlsdGluL21lcmdlLmM6NDUKIG1zZ2lkICJnaXQgbWVyZ2UgLS1hYm9ydCIKIG1zZ3N0ciAiZ2l0IG1lcmdlIC0tYWJvcnQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MAorIzogYnVpbHRpbi9tZXJnZS5jOjk4CiBtc2dpZCAic3dpdGNoIGBtJyByZXF1aXJlcyBhIHZhbHVlIgogbXNnc3RyICJTY2hhbHRlciAnbScgZXJmb3JkZXJ0IGVpbmVuIFdlcnQuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI3CisjOiBidWlsdGluL21lcmdlLmM6MTM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmaW5kIG1lcmdlIHN0cmF0ZWd5ICclcycuXG4iCi1tc2dzdHIgIktvbm50ZSBadXNhbW1lbmbDvGhydW5nc3N0cmF0ZWdpZSAnJXMnIG5pY2h0IGZpbmRlbi5cbiIKK21zZ3N0ciAiS29ubnRlIE1lcmdlLVN0cmF0ZWdpZSAnJXMnIG5pY2h0IGZpbmRlbi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyOAorIzogYnVpbHRpbi9tZXJnZS5jOjEzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgc3RyYXRlZ2llcyBhcmU6IgogbXNnc3RyICJWZXJmw7xnYmFyZSBTdHJhdGVnaWVuIHNpbmQ6IgogCi0jOiBidWlsdGluL21lcmdlLmM6MTMzCisjOiBidWlsdGluL21lcmdlLmM6MTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBjdXN0b20gc3RyYXRlZ2llcyBhcmU6IgogbXNnc3RyICJWZXJmw7xnYmFyZSBiZW51dHplcmRlZmluaWVydGUgU3RyYXRlZ2llbiBzaW5kOiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4MworIzogYnVpbHRpbi9tZXJnZS5jOjE5OAogbXNnaWQgImRvIG5vdCBzaG93IGEgZGlmZnN0YXQgYXQgdGhlIGVuZCBvZiB0aGUgbWVyZ2UiCi1tc2dzdHIgIiIKLSJ6ZWlndCBrZWluZSBadXNhbW1lbmZhc3N1bmcgZGVyIFVudGVyc2NoaWVkZSBhbSBTY2hsdXNzIGRlciBadXNhbW1lbmbDvGhydW5nICIKLSJhbiIKK21zZ3N0ciAiemVpZ3Qga2VpbmUgWnVzYW1tZW5mYXNzdW5nIGRlciBVbnRlcnNjaGllZGUgYW0gU2NobHVzcyBkZXMgTWVyZ2VzIGFuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg2CisjOiBidWlsdGluL21lcmdlLmM6MjAxCiBtc2dpZCAic2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgotbXNnc3RyICIiCi0iemVpZ3QgZWluZSBadXNhbW1lbmZhc3N1bmcgZGVyIFVudGVyc2NoaWVkZSBhbSBTY2hsdXNzIGRlciBadXNhbW1lbmbDvGhydW5nIGFuIgorbXNnc3RyICJ6ZWlndCBlaW5lIFp1c2FtbWVuZmFzc3VuZyBkZXIgVW50ZXJzY2hpZWRlIGFtIFNjaGx1c3MgZGVzIE1lcmdlcyBhbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4NworIzogYnVpbHRpbi9tZXJnZS5jOjIwMgogbXNnaWQgIihzeW5vbnltIHRvIC0tc3RhdCkiCiBtc2dzdHIgIihTeW5vbnltIGbDvHIgLS1zdGF0KSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4OQorIzogYnVpbHRpbi9tZXJnZS5jOjIwNAogbXNnaWQgImFkZCAoYXQgbW9zdCA8bj4pIGVudHJpZXMgZnJvbSBzaG9ydGxvZyB0byBtZXJnZSBjb21taXQgbWVzc2FnZSIKIG1zZ3N0ciAiIgotImbDvGd0IChow7ZjaHN0ZW5zIDxuPikgRWludHLDpGdlIHZvbiBcInNob3J0bG9nXCIgenVyIEJlc2NocmVpYnVuZyBkZXIgIgotIlp1c2FtbWVuZsO8aHJ1bmcgaGluenUiCisiZsO8Z3QgKGjDtmNoc3RlbnMgPG4+KSBFaW50csOkZ2Ugdm9uIFwic2hvcnRsb2dcIiB6dXIgQmVzY2hyZWlidW5nIGRlcyBNZXJnZS0iCisiQ29tbWl0cyBoaW56dSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5MgorIzogYnVpbHRpbi9tZXJnZS5jOjIwNwogbXNnaWQgImNyZWF0ZSBhIHNpbmdsZSBjb21taXQgaW5zdGVhZCBvZiBkb2luZyBhIG1lcmdlIgotbXNnc3RyICJlcnpldWd0IGVpbmUgZWluemVsbmUgVmVyc2lvbiBhbnN0YXR0IGVpbmVyIFp1c2FtbWVuZsO8aHJ1bmciCittc2dzdHIgImVyemV1Z3QgZWluZW4gZWluemVsbmVuIENvbW1pdCBhbnN0YXR0IGVpbmVzIE1lcmdlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5NAorIzogYnVpbHRpbi9tZXJnZS5jOjIwOQogbXNnaWQgInBlcmZvcm0gYSBjb21taXQgaWYgdGhlIG1lcmdlIHN1Y2NlZWRzIChkZWZhdWx0KSIKLW1zZ3N0ciAiIgotImbDvGhydCBlaW5lIEVpbnRyYWd1bmcgZHVyY2gsIHdlbm4gZGllIFp1c2FtbWVuZsO8aHJ1bmcgZXJmb2xncmVpY2ggd2FyICIKLSIoU3RhbmRhcmQpIgorbXNnc3RyICJmw7xocnQgZWluZW4gQ29tbWl0IGR1cmNoLCB3ZW5uIGRlciBNZXJnZSBlcmZvbGdyZWljaCB3YXIgKFN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5NgorIzogYnVpbHRpbi9tZXJnZS5jOjIxMQogbXNnaWQgImVkaXQgbWVzc2FnZSBiZWZvcmUgY29tbWl0dGluZyIKLW1zZ3N0ciAiQmVhcmJlaXR1bmcgZGVyIFZlcnNpb25zYmVzY2hyZWlidW5nIHZvciBkZXIgRWludHJhZ3VuZyIKK21zZ3N0ciAiQmVhcmJlaXR1bmcgZGVyIEJlc2NocmVpYnVuZyB2b3IgZGVtIENvbW1pdCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5OAorIzogYnVpbHRpbi9tZXJnZS5jOjIxMgogbXNnaWQgImFsbG93IGZhc3QtZm9yd2FyZCAoZGVmYXVsdCkiCiBtc2dzdHIgImVybGF1YnQgVm9yc3B1bGVuIChTdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTQKIG1zZ2lkICJhYm9ydCBpZiBmYXN0LWZvcndhcmQgaXMgbm90IHBvc3NpYmxlIgogbXNnc3RyICJicmljaHQgYWIsIHdlbm4ga2VpbiBWb3JzcHVsZW4gbcO2Z2xpY2ggaXN0IgogCi0jOiBidWlsdGluL21lcmdlLmM6MjAzCisjOiBidWlsdGluL21lcmdlLmM6MjE4CiBtc2dpZCAiVmVyaWZ5IHRoYXQgdGhlIG5hbWVkIGNvbW1pdCBoYXMgYSB2YWxpZCBHUEcgc2lnbmF0dXJlIgotbXNnc3RyICLDvGJlcnByw7xmdCBkaWUgZ2VuYW5udGUgVmVyc2lvbiBhdWYgZWluZSBnw7xsdGlnZSBHUEctU2lnbmF0dXIiCittc2dzdHIgIsO8YmVycHLDvGZ0IGRlbiBnZW5hbm50ZW4gQ29tbWl0IGF1ZiBlaW5lIGfDvGx0aWdlIEdQRy1TaWduYXR1ciIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNCBidWlsdGluL25vdGVzLmM6ODY2IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL21lcmdlLmM6MjE5IGJ1aWx0aW4vbm90ZXMuYzo3MzggYnVpbHRpbi9yZXZlcnQuYzoxMTQKIG1zZ2lkICJzdHJhdGVneSIKIG1zZ3N0ciAiU3RyYXRlZ2llIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA1CisjOiBidWlsdGluL21lcmdlLmM6MjIwCiBtc2dpZCAibWVyZ2Ugc3RyYXRlZ3kgdG8gdXNlIgotbXNnc3RyICJ6dSB2ZXJ3ZW5kZW5kZSBadXNhbW1lbmbDvGhydW5nc3N0cmF0ZWdpZSIKK21zZ3N0ciAienUgdmVyd2VuZGVuZGUgTWVyZ2UtU3RyYXRlZ2llIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA2CisjOiBidWlsdGluL21lcmdlLmM6MjIxCiBtc2dpZCAib3B0aW9uPXZhbHVlIgogbXNnc3RyICJPcHRpb249V2VydCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNworIzogYnVpbHRpbi9tZXJnZS5jOjIyMgogbXNnaWQgIm9wdGlvbiBmb3Igc2VsZWN0ZWQgbWVyZ2Ugc3RyYXRlZ3kiCi1tc2dzdHIgIk9wdGlvbiBmw7xyIGF1c2dld8OkaGx0ZSBadXNhbW1lbmbDvGhydW5nc3N0cmF0ZWdpZSIKK21zZ3N0ciAiT3B0aW9uIGbDvHIgYXVzZ2V3w6RobHRlIE1lcmdlLVN0cmF0ZWdpZSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwOQorIzogYnVpbHRpbi9tZXJnZS5jOjIyNAogbXNnaWQgIm1lcmdlIGNvbW1pdCBtZXNzYWdlIChmb3IgYSBub24tZmFzdC1mb3J3YXJkIG1lcmdlKSIKIG1zZ3N0ciAiIgotImbDvGhydCBWZXJzaW9uc2Jlc2NocmVpYnVuZyB6dXNhbW1lbiAoZsO8ciBlaW5lIFp1c2FtbWVuZsO8aHJ1bmcsIGRpZSBrZWluICIKLSJWb3JzcHVsZW4gd2FyKSIKKyJmw7xocnQgQ29tbWl0LUJlc2NocmVpYnVuZyB6dXNhbW1lbiAoZsO8ciBlaW5lbiBNZXJnZSwgZGVyIGtlaW4gVm9yc3B1bGVuIHdhcikiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjgKIG1zZ2lkICJhYm9ydCB0aGUgY3VycmVudCBpbi1wcm9ncmVzcyBtZXJnZSIKLW1zZ3N0ciAiYnJpY2h0IGRpZSBzaWNoIGltIEdhbmdlIGJlZmluZGxpY2hlIFp1c2FtbWVuZsO8aHJ1bmcgYWIiCittc2dzdHIgImJyaWNodCBkZW4gc2ljaCBpbSBHYW5nZSBiZWZpbmRsaWNoZW4gTWVyZ2UgYWIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNDIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNTcKIG1zZ2lkICJjb3VsZCBub3QgcnVuIHN0YXNoLiIKIG1zZ3N0ciAiS29ubnRlIFwic3Rhc2hcIiBuaWNodCBhdXNmw7xocmVuLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI0NworIzogYnVpbHRpbi9tZXJnZS5jOjI2MgogbXNnaWQgInN0YXNoIGZhaWxlZCIKIG1zZ3N0ciAiXCJzdGFzaFwiIGZlaGxnZXNjaGxhZ2VuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjUyCisjOiBidWlsdGluL21lcmdlLmM6MjY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCBhIHZhbGlkIG9iamVjdDogJXMiCiBtc2dzdHIgImtlaW4gZ8O8bHRpZ2VzIE9iamVrdDogJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNzEgYnVpbHRpbi9tZXJnZS5jOjI4OAorIzogYnVpbHRpbi9tZXJnZS5jOjI4NiBidWlsdGluL21lcmdlLmM6MzAzCiBtc2dpZCAicmVhZC10cmVlIGZhaWxlZCIKIG1zZ3N0ciAicmVhZC10cmVlIGZlaGxnZXNjaGxhZ2VuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzE4CisjOiBidWlsdGluL21lcmdlLmM6MzMzCiBtc2dpZCAiIChub3RoaW5nIHRvIHNxdWFzaCkiCiBtc2dzdHIgIiAobmljaHRzIHp1IHF1ZXRzY2hlbikiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozMzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3F1YXNoIGNvbW1pdCAtLSBub3QgdXBkYXRpbmcgSEVBRFxuIgotbXNnc3RyICJRdWV0c2NoZSBWZXJzaW9uIC0tIFp3ZWlnc3BpdHplIChIRUFEKSB3aXJkIG5pY2h0IGFrdHVhbGlzaWVydFxuIgorbXNnc3RyICJRdWV0c2NoZSBDb21taXQgLS0gSEVBRCB3aXJkIG5pY2h0IGFrdHVhbGlzaWVydFxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzYzCisjOiBidWlsdGluL21lcmdlLmM6Mzc4CiBtc2dpZCAiV3JpdGluZyBTUVVBU0hfTVNHIgogbXNnc3RyICJTY2hyZWliZSBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzY1CisjOiBidWlsdGluL21lcmdlLmM6MzgwCiBtc2dpZCAiRmluaXNoaW5nIFNRVUFTSF9NU0ciCiBtc2dzdHIgIlNjaGxpZcOfZSBTUVVBU0hfTVNHIGFiIgogCi0jOiBidWlsdGluL21lcmdlLmM6Mzg4CisjOiBidWlsdGluL21lcmdlLmM6NDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG1lcmdlIG1lc3NhZ2UgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKLW1zZ3N0ciAiIgotIktlaW5lIFp1c2FtbWVuZsO8aHJ1bmdzYmVzY2hyZWlidW5nIC0tIFp3ZWlnc3BpdHplIChIRUFEKSB3aXJkIG5pY2h0ICIKLSJha3R1YWxpc2llcnRcbiIKK21zZ3N0ciAiS2VpbmUgTWVyZ2UtQ29tbWl0LUJlc2NocmVpYnVuZyAtLSBIRUFEIHdpcmQgbmljaHQgYWt0dWFsaXNpZXJ0XG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo0MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKLW1zZ3N0ciAiJyVzJyB6ZWlndCBhdWYga2VpbmUgVmVyc2lvbiIKK21zZ3N0ciAiJyVzJyB6ZWlndCBhdWYga2VpbmVuIENvbW1pdCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjU1MAorIzogYnVpbHRpbi9tZXJnZS5jOjU2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJCYWQgYnJhbmNoLiVzLm1lcmdlb3B0aW9ucyBzdHJpbmc6ICVzIgogbXNnc3RyICJVbmfDvGx0aWdlciBicmFuY2guJXMubWVyZ2VvcHRpb25zIFN0cmluZzogJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2NDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2NTcKIG1zZ2lkICJnaXQgd3JpdGUtdHJlZSBmYWlsZWQgdG8gd3JpdGUgYSB0cmVlIgotbXNnc3RyICJcImdpdCB3cml0ZS10cmVlXCIgc2NobHVnIGJlaW0gU2NocmVpYmVuIGVpbmVzIEJhdW1lcyBmZWhsIgotCi0jOiBidWlsdGluL21lcmdlLmM6NjcxCi1tc2dpZCAiTm90IGhhbmRsaW5nIGFueXRoaW5nIG90aGVyIHRoYW4gdHdvIGhlYWRzIG1lcmdlLiIKLW1zZ3N0ciAiRXMgd2lyZCBudXIgZGllIFp1c2FtbWVuZsO8aHJ1bmcgdm9uIHp3ZWkgWndlaWdlbiBiZWhhbmRlbHQuIgorbXNnc3RyICJcImdpdCB3cml0ZS10cmVlXCIgc2NobHVnIGJlaW0gU2NocmVpYmVuIGVpbmVzIFwiVHJlZVwiLU9iamVrdGVzIGZlaGwiCiAKICM6IGJ1aWx0aW4vbWVyZ2UuYzo2ODUKK21zZ2lkICJOb3QgaGFuZGxpbmcgYW55dGhpbmcgb3RoZXIgdGhhbiB0d28gaGVhZHMgbWVyZ2UuIgorbXNnc3RyICJFcyB3aXJkIG51ciBkZXIgTWVyZ2Ugdm9uIHp3ZWkgQnJhbmNoZXMgYmVoYW5kZWx0LiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjY5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIG9wdGlvbiBmb3IgbWVyZ2UtcmVjdXJzaXZlOiAtWCVzIgogbXNnc3RyICJVbmJla2FubnRlIE9wdGlvbiBmw7xyIG1lcmdlLXJlY3Vyc2l2ZTogLVglcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY5OQorIzogYnVpbHRpbi9tZXJnZS5jOjcxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgJXMiCiBtc2dzdHIgImtvbm50ZSAlcyBuaWNodCBzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo3ODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgZnJvbSAnJXMnIgogbXNnc3RyICJrb25udGUgbmljaHQgdm9uICclcycgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo3OTcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGNvbW1pdHRpbmcgbWVyZ2U7IHVzZSAnZ2l0IGNvbW1pdCcgdG8gY29tcGxldGUgdGhlIG1lcmdlLlxuIgogbXNnc3RyICIiCi0iWnVzYW1tZW5mw7xocnVuZyB3dXJkZSBuaWNodCBlaW5nZXRyYWdlbjsgYmVudXR6ZW4gU2llICdnaXQgY29tbWl0JyB1bSBkaWUgIgotIlp1c2FtbWVuZsO8aHJ1bmcgYWJ6dXNjaGxpZcOfZW4uXG4iCisiTWVyZ2Ugd3VyZGUgbmljaHQgY29tbWl0dGV0OyBiZW51dHplbiBTaWUgJ2dpdCBjb21taXQnIHVtIGRlbiBNZXJnZSAiCisiYWJ6dXNjaGxpZcOfZW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciBhIGNvbW1pdCBtZXNzYWdlIHRvIGV4cGxhaW4gd2h5IHRoaXMgbWVyZ2UgaXMgbmVjZXNzYXJ5LFxuIgpAQCAtNjQ4NywyMTkgKzY3MzEsMjEyIEBACiAiTGluZXMgc3RhcnRpbmcgd2l0aCAnJWMnIHdpbGwgYmUgaWdub3JlZCwgYW5kIGFuIGVtcHR5IG1lc3NhZ2UgYWJvcnRzXG4iCiAidGhlIGNvbW1pdC5cbiIKIG1zZ3N0ciAiIgotIkJpdHRlIGdlYmVuIFNpZSBlaW5lIFZlcnNpb25zYmVzY2hyZWlidW5nIGVpbiB1bSB6dSBlcmtsw6RyZW4sIHdhcnVtIGRpZXNlICIKLSJadXNhbW1lbmbDvGhydW5nIGVyZm9yZGVybGljaCBpc3QsXG4iCi0iaW5zYmVzb25kZXJlIHdlbm4gZXMgZWluZW4gYWt0dWFsaXNpZXJ0ZW4sIGV4dGVybmVuIFp3ZWlnIG1pdCBlaW5lbSBUaGVtYS0iCi0iWndlaWcgenVzYW1tZW5mw7xocnQuXG4iCisiQml0dGUgZ2ViZW4gU2llIGVpbmUgQ29tbWl0LUJlc2NocmVpYnVuZyBlaW4gdW0genUgZXJrbMOkcmVuLCB3YXJ1bSBkaWVzZXJcbiIKKyJNZXJnZSBlcmZvcmRlcmxpY2ggaXN0LCBpbnNiZXNvbmRlcmUgd2VubiBlcyBlaW5lbiBha3R1YWxpc2llcnRlblxuIgorIlVwc3RyZWFtLUJyYW5jaCBtaXQgZWluZW0gVGhlbWEtQnJhbmNoIHp1c2FtbWVuZsO8aHJ0LlxuIgogIlxuIgotIlplaWxlbiBiZWdpbm5lbmQgbWl0ICclYycgd2VyZGVuIGlnbm9yaWVydCwgdW5kIGVpbmUgbGVlcmUgQmVzY2hyZWlidW5nICIKLSJicmljaHQgZGllIEVpbnRyYWd1bmcgYWIuXG4iCisiWmVpbGVuIGJlZ2lubmVuZCBtaXQgJyVjJyB3ZXJkZW4gaWdub3JpZXJ0LCB1bmQgZWluZSBsZWVyZSBCZXNjaHJlaWJ1bmdcbiIKKyJicmljaHQgZGVuIENvbW1pdCBhYi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjgyNworIzogYnVpbHRpbi9tZXJnZS5jOjg0MQogbXNnaWQgIkVtcHR5IGNvbW1pdCBtZXNzYWdlLiIKLW1zZ3N0ciAiTGVlcmUgVmVyc2lvbnNiZXNjaHJlaWJ1bmciCittc2dzdHIgIkxlZXJlIENvbW1pdC1CZXNjaHJlaWJ1bmciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MzkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiV29uZGVyZnVsLlxuIgogbXNnc3RyICJXdW5kZXJiYXIuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIGZhaWxlZDsgZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBjb21taXQgdGhlIHJlc3VsdC5cbiIKIG1zZ3N0ciAiIgotIkF1dG9tYXRpc2NoZSBadXNhbW1lbmbDvGhydW5nIGZlaGxnZXNjaGxhZ2VuOyBiZWhlYmVuIFNpZSBkaWUgS29uZmxpa3RlIHVuZCAiCi0idHJhZ2VuIFNpZSBkYW5uIGRhcyBFcmdlYm5pcyBlaW4uXG4iCisiQXV0b21hdGlzY2hlciBNZXJnZSBmZWhsZ2VzY2hsYWdlbjsgYmVoZWJlbiBTaWUgZGllIEtvbmZsaWt0ZSB1bmQgY29tbWl0dGVuICIKKyJTaWUgZGFubiBkYXMgRXJnZWJuaXMuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MjAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBpcyBub3QgYSBjb21taXQiCi1tc2dzdHIgIiclcycgaXN0IGtlaW5lIFZlcnNpb24iCittc2dzdHIgIiclcycgaXN0IGtlaW4gQ29tbWl0IgogCi0jOiBidWlsdGluL21lcmdlLmM6OTYxCisjOiBidWlsdGluL21lcmdlLmM6OTc1CiBtc2dpZCAiTm8gY3VycmVudCBicmFuY2guIgotbXNnc3RyICJTaWUgYmVmaW5kZW4gc2ljaCBhdWYga2VpbmVtIFp3ZWlnLiIKK21zZ3N0ciAiU2llIGJlZmluZGVuIHNpY2ggYXVmIGtlaW5lbSBCcmFuY2guIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTYzCisjOiBidWlsdGluL21lcmdlLmM6OTc3CiBtc2dpZCAiTm8gcmVtb3RlIGZvciB0aGUgY3VycmVudCBicmFuY2guIgotbXNnc3RyICJLZWluIGV4dGVybmVzIEFyY2hpdiBmw7xyIGRlbiBha3R1ZWxsZW4gWndlaWcuIgorbXNnc3RyICJLZWluIFJlbW90ZS1SZXBvc2l0b3J5IGbDvHIgZGVuIGFrdHVlbGxlbiBCcmFuY2guIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTY1CisjOiBidWlsdGluL21lcmdlLmM6OTc5CiBtc2dpZCAiTm8gZGVmYXVsdCB1cHN0cmVhbSBkZWZpbmVkIGZvciB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICIiCi0iRXMgaXN0IGtlaW4gZXh0ZXJuZXMgU3RhbmRhcmQtUHJvamVrdGFyY2hpdiBmw7xyIGRlbiBha3R1ZWxsZW4gWndlaWcgIgotImRlZmluaWVydC4iCisiRXMgaXN0IGtlaW4gU3RhbmRhcmQtVXBzdHJlYW0tQnJhbmNoIGbDvHIgZGVuIGFrdHVlbGxlbiBCcmFuY2ggZGVmaW5pZXJ0LiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk3MAorIzogYnVpbHRpbi9tZXJnZS5jOjk4NAogIywgYy1mb3JtYXQKLW1zZ2lkICJObyByZW1vdGUgdHJhY2tpbmcgYnJhbmNoIGZvciAlcyBmcm9tICVzIgotbXNnc3RyICJLZWluIGV4dGVybmVyIMOcYmVybmFobWV6d2VpZyBmw7xyICVzIHZvbiAlcyIKK21zZ2lkICJObyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGZvciAlcyBmcm9tICVzIgorbXNnc3RyICJLZWluIFJlbW90ZS1UcmFja2luZy1CcmFuY2ggZsO8ciAlcyB2b24gJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDU3IGJ1aWx0aW4vbWVyZ2UuYzoxMjE0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIiVzIC0gbm90IHNvbWV0aGluZyB3ZSBjYW4gbWVyZ2UiCi1tc2dzdHIgIiVzIC0gbmljaHRzIHdhcyB3aXIgenVzYW1tZW5mw7xocmVuIGvDtm5uZW4iCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTI1CisjOiBidWlsdGluL21lcmdlLmM6MTE0MAogbXNnaWQgIlRoZXJlIGlzIG5vIG1lcmdlIHRvIGFib3J0IChNRVJHRV9IRUFEIG1pc3NpbmcpLiIKLW1zZ3N0ciAiRXMgZ2lidCBrZWluZSBadXNhbW1lbmbDvGhydW5nIHp1bSBBYmJyZWNoZW4gKHZlcm1pc3NlIE1FUkdFX0hFQUQpIgorbXNnc3RyICJFcyBnaWJ0IGtlaW5lbiBNZXJnZSB6dW0gQWJicmVjaGVuICh2ZXJtaXNzZSBNRVJHRV9IRUFEKSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDEgZ2l0LXB1bGwuc2g6MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTU2IGdpdC1wdWxsLnNoOjMxCiBtc2dpZCAiIgogIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBtZXJnZSAoTUVSR0VfSEVBRCBleGlzdHMpLlxuIgogIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCiBtc2dzdHIgIiIKLSJTaWUgaGFiZW4gSWhyZSBadXNhbW1lbmbDvGhydW5nIG5pY2h0IGFiZ2VzY2hsb3NzZW4gKE1FUkdFX0hFQUQgZXhpc3RpZXJ0KS5cbiIKLSJCaXR0ZSB0cmFnZW4gU2llIElocmUgw4RuZGVydW5nZW4gZWluLCBiZXZvciBTaWUgenVzYW1tZW5mw7xocmVuIGvDtm5uZW4uIgorIlNpZSBoYWJlbiBJaHJlbiBNZXJnZSBuaWNodCBhYmdlc2NobG9zc2VuIChNRVJHRV9IRUFEIGV4aXN0aWVydCkuXG4iCisiQml0dGUgY29tbWl0dGVuIFNpZSBJaHJlIMOEbmRlcnVuZ2VuLCBiZXZvciBTaWUgXCJtZXJnZVwiIGF1c2bDvGhyZW4ga8O2bm5lbi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQ0IGdpdC1wdWxsLnNoOjM0CisjOiBidWlsdGluL21lcmdlLmM6MTE1OSBnaXQtcHVsbC5zaDozNAogbXNnaWQgIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBtZXJnZSAoTUVSR0VfSEVBRCBleGlzdHMpLiIKLW1zZ3N0ciAiIgotIlNpZSBoYWJlbiBJaHJlIFp1c2FtbWVuZsO8aHJ1bmcgbmljaHQgYWJnZXNjaGxvc3NlbiAoTUVSR0VfSEVBRCBleGlzdGllcnQpLiIKK21zZ3N0ciAiU2llIGhhYmVuIElocmVuIE1lcmdlIG5pY2h0IGFiZ2VzY2hsb3NzZW4gKE1FUkdFX0hFQUQgZXhpc3RpZXJ0KS4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQ4CisjOiBidWlsdGluL21lcmdlLmM6MTE2MwogbXNnaWQgIiIKICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RzKS5cbiIKICJQbGVhc2UsIGNvbW1pdCB5b3VyIGNoYW5nZXMgYmVmb3JlIHlvdSBjYW4gbWVyZ2UuIgogbXNnc3RyICIiCiAiU2llIGhhYmVuIFwiY2hlcnJ5LXBpY2tcIiBuaWNodCBhYmdlc2NobG9zc2VuIChDSEVSUllfUElDS19IRUFEIGV4aXN0aWVydCkuXG4iCi0iQml0dGUgdHJhZ2VuIFNpZSBJaHJlIMOEbmRlcnVuZ2VuIGVpbiwgYmV2b3IgU2llIHp1c2FtbWVuZsO8aHJlbiBrw7ZubmVuLiIKKyJCaXR0ZSBjb21taXR0ZW4gU2llIElocmUgw4RuZGVydW5nZW4sIGJldm9yIFNpZSBcIm1lcmdlXCIgYXVzZsO8aHJlbiBrw7ZubmVuLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNTEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTY2CiBtc2dpZCAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIGNoZXJyeS1waWNrIChDSEVSUllfUElDS19IRUFEIGV4aXN0cykuIgogbXNnc3RyICIiCiAiU2llIGhhYmVuIFwiY2hlcnJ5LXBpY2tcIiBuaWNodCBhYmdlc2NobG9zc2VuIChDSEVSUllfUElDS19IRUFEIGV4aXN0aWVydCkuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE2MAorIzogYnVpbHRpbi9tZXJnZS5jOjExNzUKIG1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1zcXVhc2ggd2l0aCAtLW5vLWZmLiIKIG1zZ3N0ciAiU2llIGvDtm5uZW4gLS1zcXVhc2ggbmljaHQgbWl0IC0tbm8tZmYga29tYmluaWVyZW4uIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE2NQotbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLW5vLWZmIHdpdGggLS1mZi1vbmx5LiIKLW1zZ3N0ciAiU2llIGvDtm5uZW4gLS1uby1mZiBuaWNodCBtaXQgLS1mZi0tb25seSBrb21iaW5pZXJlbi4iCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTcyCisjOiBidWlsdGluL21lcmdlLmM6MTE4NAogbXNnaWQgIk5vIGNvbW1pdCBzcGVjaWZpZWQgYW5kIG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIG5vdCBzZXQuIgotbXNnc3RyICJLZWluZSBWZXJzaW9uIGFuZ2VnZWJlbiB1bmQgbWVyZ2UuZGVmYXVsdFRvVXBzdHJlYW0gaXN0IG5pY2h0IGdlc2V0enQuIgorbXNnc3RyICJLZWluIENvbW1pdCBhbmdlZ2ViZW4gdW5kIG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIGlzdCBuaWNodCBnZXNldHp0LiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjE2CiBtc2dpZCAiQ2FuIG1lcmdlIG9ubHkgZXhhY3RseSBvbmUgY29tbWl0IGludG8gZW1wdHkgaGVhZCIKLW1zZ3N0ciAiS2FubiBudXIgZXhha3QgZWluZSBWZXJzaW9uIGluIGVpbmVtIGxlZXJlbiBad2VpZyB6dXNhbW1lbmbDvGhyZW4uIgorbXNnc3RyICJLYW5uIG51ciBleGFrdCBlaW5lbiBDb21taXQgaW4gZWluZW0gbGVlcmVuIEJyYW5jaCB6dXNhbW1lbmbDvGhyZW4uIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTIwNworIzogYnVpbHRpbi9tZXJnZS5jOjEyMTkKIG1zZ2lkICJTcXVhc2ggY29tbWl0IGludG8gZW1wdHkgaGVhZCBub3Qgc3VwcG9ydGVkIHlldCIKLW1zZ3N0ciAiQmluIGF1ZiBlaW5lbSBad2VpZywgZGVyIG5vY2ggZ2Vib3JlbiB3aXJkOyBrYW5uIG5pY2h0IHF1ZXRzY2hlbi4iCittc2dzdHIgIiIKKyJCaW4gYXVmIGVpbmVtIENvbW1pdCwgZGVyIG5vY2ggZ2Vib3JlbiB3aXJkOyBrYW5uIFwic3F1YXNoXCIgbmljaHQgYXVzZsO8aHJlbi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA5CisjOiBidWlsdGluL21lcmdlLmM6MTIyMQogbXNnaWQgIk5vbi1mYXN0LWZvcndhcmQgY29tbWl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgaW50byBhbiBlbXB0eSBoZWFkIgogbXNnc3RyICIiCi0iTmljaHQgdm9yenVzcHVsZW5kZSBWZXJzaW9uIGthbm4gbmljaHQgaW4gZWluZW0gbGVlcmVuIFp3ZWlnIHZlcndlbmRldCAiCisiTmljaHQgdm9yenVzcHVsZW5kZXIgQ29tbWl0IGthbm4gbmljaHQgaW4gZWluZW0gbGVlcmVuIEJyYW5jaCB2ZXJ3ZW5kZXQgIgogIndlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY1CisjOiBidWlsdGluL21lcmdlLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtIG5vdCBzb21ldGhpbmcgd2UgY2FuIG1lcmdlIgorbXNnc3RyICIlcyAtIG5pY2h0cyB3YXMgd2lyIHp1c2FtbWVuZsO8aHJlbiBrw7ZubmVuIgorCisjOiBidWlsdGluL21lcmdlLmM6MTI3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGFuIHVudHJ1c3RlZCBHUEcgc2lnbmF0dXJlLCBhbGxlZ2VkbHkgYnkgJXMuIgogbXNnc3RyICIiCi0iVmVyc2lvbiAlcyBoYXQgZWluZSBuaWNodCB2ZXJ0cmF1ZW5zd8O8cmRpZ2UgR1BHLVNpZ25hdHVyLCBhbmdlYmxpY2ggdm9uICVzLiIKKyJDb21taXQgJXMgaGF0IGVpbmUgbmljaHQgdmVydHJhdWVuc3fDvHJkaWdlIEdQRy1TaWduYXR1ciwgYW5nZWJsaWNoIHZvbiAlcy4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY4CisjOiBidWlsdGluL21lcmdlLmM6MTI4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGEgYmFkIEdQRyBzaWduYXR1cmUgYWxsZWdlZGx5IGJ5ICVzLiIKLW1zZ3N0ciAiVmVyc2lvbiAlcyBoYXQgZWluZSB1bmfDvGx0aWdlIEdQRy1TaWduYXR1ciwgYW5nZWJsaWNoIHZvbiAlcy4iCittc2dzdHIgIkNvbW1pdCAlcyBoYXQgZWluZSB1bmfDvGx0aWdlIEdQRy1TaWduYXR1ciwgYW5nZWJsaWNoIHZvbiAlcy4iCiAKICMuICdOJwotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIGEgR1BHIHNpZ25hdHVyZS4iCi1tc2dzdHIgIlZlcnNpb24gJXMgaGF0IGtlaW5lIEdQRy1TaWduYXR1ci4iCittc2dzdHIgIkNvbW1pdCAlcyBoYXQga2VpbmUgR1BHLVNpZ25hdHVyLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYSBnb29kIEdQRyBzaWduYXR1cmUgYnkgJXNcbiIKLW1zZ3N0ciAiVmVyc2lvbiAlcyBoYXQgZWluZSBnw7xsdGlnZSBHUEctU2lnbmF0dXIgdm9uICVzXG4iCittc2dzdHIgIkNvbW1pdCAlcyBoYXQgZWluZSBnw7xsdGlnZSBHUEctU2lnbmF0dXIgdm9uICVzXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzU4CisjOiBidWlsdGluL21lcmdlLmM6MTM3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJVcGRhdGluZyAlcy4uJXNcbiIKIG1zZ3N0ciAiQWt0dWFsaXNpZXJlICVzLi4lc1xuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTM5NworIzogYnVpbHRpbi9tZXJnZS5jOjE0MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIHJlYWxseSB0cml2aWFsIGluLWluZGV4IG1lcmdlLi4uXG4iCi1tc2dzdHIgIlByb2JpZXJlIHdpcmtsaWNoIHRyaXZpYWxlIFwiaW4taW5kZXhcIi1adXNhbW1lbmbDvGhydW5nLi4uXG4iCittc2dzdHIgIlByb2JpZXJlIHdpcmtsaWNoIHRyaXZpYWxlbiBcImluLWluZGV4XCItTWVyZ2UuLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vcGUuXG4iCiBtc2dzdHIgIk5laW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDM2CisjOiBidWlsdGluL21lcmdlLmM6MTQ0OAogbXNnaWQgIk5vdCBwb3NzaWJsZSB0byBmYXN0LWZvcndhcmQsIGFib3J0aW5nLiIKIG1zZ3N0ciAiVm9yc3B1bGVuIG5pY2h0IG3DtmdsaWNoLCBicmVjaGUgYWIuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ1OSBidWlsdGluL21lcmdlLmM6MTUzOAorIzogYnVpbHRpbi9tZXJnZS5jOjE0NzEgYnVpbHRpbi9tZXJnZS5jOjE1NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmV3aW5kaW5nIHRoZSB0cmVlIHRvIHByaXN0aW5lLi4uXG4iCi1tc2dzdHIgIlLDvGNrbGF1ZiBkZXMgWndlaWdlcyBiaXMgenVtIFVyc3BydW5nLi4uXG4iCittc2dzdHIgIlLDvGNrbGF1ZiBkZXMgVmVyemVpY2huaXNzZXMgYmlzIHp1bSBVcnNwcnVuZy4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ2MworIzogYnVpbHRpbi9tZXJnZS5jOjE0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIG1lcmdlIHN0cmF0ZWd5ICVzLi4uXG4iCi1tc2dzdHIgIlByb2JpZXJlIFp1c2FtbWVuZsO8aHJ1bmdzc3RyYXRlZ2llICVzLi4uXG4iCittc2dzdHIgIlByb2JpZXJlIE1lcmdlLVN0cmF0ZWdpZSAlcy4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUyOQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2Ugc3RyYXRlZ3kgaGFuZGxlZCB0aGUgbWVyZ2UuXG4iCi1tc2dzdHIgIktlaW5lIFp1c2FtbWVuZsO8aHJ1bmdzc3RyYXRlZ2llIGJlaGFuZGVsdCBkaWVzZSBadXNhbW1lbmbDvGhydW5nLlxuIgorbXNnc3RyICJLZWluZSBNZXJnZS1TdHJhdGVnaWUgYmVoYW5kZWx0IGRpZXNlbiBNZXJnZS5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1lcmdlIHdpdGggc3RyYXRlZ3kgJXMgZmFpbGVkLlxuIgotbXNnc3RyICJadXNhbW1lbmbDvGhydW5nIG1pdCBTdHJhdGVnaWUgJXMgZmVobGdlc2NobGFnZW4uXG4iCittc2dzdHIgIk1lcmdlIG1pdCBTdHJhdGVnaWUgJXMgZmVobGdlc2NobGFnZW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQwCisjOiBidWlsdGluL21lcmdlLmM6MTU1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2luZyB0aGUgJXMgdG8gcHJlcGFyZSByZXNvbHZpbmcgYnkgaGFuZC5cbiIKIG1zZ3N0ciAiQmVudXR6ZW4gU2llIFwiJXNcIiB1bSBkaWUgQXVmbMO2c3VuZyBwZXIgSGFuZCB2b3J6dWJlcmVpdGVuLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTU1MgorIzogYnVpbHRpbi9tZXJnZS5jOjE1NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIHdlbnQgd2VsbDsgc3RvcHBlZCBiZWZvcmUgY29tbWl0dGluZyBhcyByZXF1ZXN0ZWRcbiIKIG1zZ3N0ciAiIgotIkF1dG9tYXRpc2NoZSBadXNhbW1lbmbDvGhydW5nIGFiZ2VzY2hsb3NzZW47IGhhbHRlLCB3aWUgZ2V3w7xuc2NodCwgdm9yIGRlciAiCi0iRWludHJhZ3VuZyBhblxuIgorIkF1dG9tYXRpc2NoZXIgTWVyZ2UgYWJnZXNjaGxvc3NlbjsgaGFsdGUsIHdpZSBnZXfDvG5zY2h0LCB2b3IgZGVtIENvbW1pdCBhblxuIgogCiAjOiBidWlsdGluL21lcmdlLWJhc2UuYzoyNgogbXNnaWQgImdpdCBtZXJnZS1iYXNlIFstYXwtLWFsbF0gPGNvbW1pdD4gPGNvbW1pdD4uLi4iCi1tc2dzdHIgImdpdCBtZXJnZS1iYXNlIFstYXwtLWFsbF0gPFZlcnNpb24+IDxWZXJzaW9uPi4uLiIKK21zZ3N0ciAiZ2l0IG1lcmdlLWJhc2UgWy1hfC0tYWxsXSA8Q29tbWl0PiA8Q29tbWl0Pi4uLiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjcKIG1zZ2lkICJnaXQgbWVyZ2UtYmFzZSBbLWF8LS1hbGxdIC0tb2N0b3B1cyA8Y29tbWl0Pi4uLiIKLW1zZ3N0ciAiZ2l0IG1lcmdlLWJhc2UgWy1hfC0tYWxsXSAtLW9jdG9wdXMgPFZlcnNpb24+Li4uIgorbXNnc3RyICJnaXQgbWVyZ2UtYmFzZSBbLWF8LS1hbGxdIC0tb2N0b3B1cyA8Q29tbWl0Pi4uLiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjgKIG1zZ2lkICJnaXQgbWVyZ2UtYmFzZSAtLWluZGVwZW5kZW50IDxjb21taXQ+Li4uIgotbXNnc3RyICJnaXQgbWVyZ2UtYmFzZSAtLWluZGVwZW5kZW50IDxWZXJzaW9uPi4uLiIKK21zZ3N0ciAiZ2l0IG1lcmdlLWJhc2UgLS1pbmRlcGVuZGVudCA8Q29tbWl0Pi4uLiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjkKIG1zZ2lkICJnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yIDxjb21taXQ+IDxjb21taXQ+IgotbXNnc3RyICJnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yIDxWZXJzaW9uPiA8VmVyc2lvbj4iCittc2dzdHIgImdpdCBtZXJnZS1iYXNlIC0taXMtYW5jZXN0b3IgPENvbW1pdD4gPENvbW1pdD4iCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjk4CiBtc2dpZCAib3V0cHV0IGFsbCBjb21tb24gYW5jZXN0b3JzIgotbXNnc3RyICJBdXNnYWJlIGFsbGVyIGdlbWVpbnNhbWVuIFZvcmZhaHJlbiIKK21zZ3N0ciAiQXVzZ2FiZSBhbGxlciBnZW1laW5zYW1lbiBWb3Jnw6RuZ2VyLUNvbW1pdHMiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjk5CiBtc2dpZCAiZmluZCBhbmNlc3RvcnMgZm9yIGEgc2luZ2xlIG4td2F5IG1lcmdlIgotbXNnc3RyICJmaW5kZXQgVm9yZmFocmVuIGbDvHIgZWluZSBlaW56ZWxuZSBuLVdlZ2UtWnVzYW1tZW5mw7xocnVuZyIKK21zZ3N0ciAiZmluZGV0IFZvcmfDpG5nZXItQ29tbWl0cyBmw7xyIGVpbmVuIGVpbnplbG5lbiBuLVdlZ2UtTWVyZ2UiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjEwMAogbXNnaWQgImxpc3QgcmV2cyBub3QgcmVhY2hhYmxlIGZyb20gb3RoZXJzIgotbXNnc3RyICJsaXN0ZXQgVmVyc2lvbmVuIGF1ZiwgZGllIG5pY2h0IGR1cmNoIEFuZGVyZSBlcnJlaWNoYmFyIHNpbmQiCittc2dzdHIgImxpc3RldCBDb21taXRzIGF1ZiwgZGllIG5pY2h0IGR1cmNoIEFuZGVyZSBlcnJlaWNoYmFyIHNpbmQiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjEwMgogbXNnaWQgImlzIHRoZSBmaXJzdCBvbmUgYW5jZXN0b3Igb2YgdGhlIG90aGVyPyIKLW1zZ3N0ciAiaXN0IGRlciBFcnN0ZSBlaW4gVm9yZmFocmUgdm9uIGRlbSBBbmRlcmVuPyIKK21zZ3N0ciAiaXN0IGRlciBFcnN0ZSBlaW4gVm9yZ8Okbmdlci1Db21taXQgdm9uIGRlbSBBbmRlcmVuPyIKIAogIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6OAogbXNnaWQgIiIKQEAgLTY3MTUsNyArNjk1Miw3IEBACiAKICM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjM0CiBtc2dpZCAidXNlIGEgZGlmZjMgYmFzZWQgbWVyZ2UiCi1tc2dzdHIgInZlcndlbmRldCBlaW5lIGRpZmYzIGJhc2llcnRlIFp1c2FtbWVuZsO8aHJ1bmciCittc2dzdHIgInZlcndlbmRldCBlaW5lbiBkaWZmMyBiYXNpZXJ0ZW4gTWVyZ2UiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjM1CiBtc2dpZCAiZm9yIGNvbmZsaWN0cywgdXNlIG91ciB2ZXJzaW9uIgpAQCAtNjc1NSw3ICs2OTkyLDcgQEAKIAogIzogYnVpbHRpbi9ta3RyZWUuYzoxNTUKIG1zZ2lkICJhbGxvdyBjcmVhdGlvbiBvZiBtb3JlIHRoYW4gb25lIHRyZWUiCi1tc2dzdHIgImVybGF1YnQgZGllIEVyc3RlbGx1bmcgdm9uIG1laHIgYWxzIGVpbmVtIEJhdW0iCittc2dzdHIgImVybGF1YnQgZGllIEVyc3RlbGx1bmcgdm9uIG1laHIgYWxzIGVpbmVtIFwiVHJlZVwiLU9iamVrdCIKIAogIzogYnVpbHRpbi9tdi5jOjE0CiBtc2dpZCAiZ2l0IG12IFtvcHRpb25zXSA8c291cmNlPi4uLiA8ZGVzdGluYXRpb24+IgpAQCAtNjc4OSw3ICs3MDI2LDcgQEAKICM6IGJ1aWx0aW4vbXYuYzoxMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSHVoPyAlLipzIGlzIGluIGluZGV4PyIKLW1zZ3N0ciAiSHVoPyAlLipzIGlzdCBpbiBkZXIgQmVyZWl0c3RlbGx1bmc/IgorbXNnc3RyICJIdWg/ICUuKnMgaXN0IHp1bSBDb21taXQgdm9yZ2VtZXJrdD8iCiAKICM6IGJ1aWx0aW4vbXYuYzoxNDAKIG1zZ2lkICJzb3VyY2UgZGlyZWN0b3J5IGlzIGVtcHR5IgpAQCAtNjgzMSw0NyArNzA2OCw1MSBAQAogbXNnaWQgInJlbmFtaW5nICclcycgZmFpbGVkIgogbXNnc3RyICJVbWJlbmVubnVuZyB2b24gJyVzJyBmZWhsZ2VzY2hsYWdlbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI1OQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gPGNvbW1pdD4uLi4iCi1tc2dzdHIgImdpdCBuYW1lLXJldiBbT3B0aW9uZW5dIDxWZXJzaW9uPi4uLiIKK21zZ3N0ciAiZ2l0IG5hbWUtcmV2IFtPcHRpb25lbl0gPENvbW1pdD4uLi4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoxNzYKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyNjAKIG1zZ2lkICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIC0tYWxsIgogbXNnc3RyICJnaXQgbmFtZS1yZXYgW09wdGlvbmVuXSAtLWFsbCIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NworIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1zdGRpbiIKIG1zZ3N0ciAiZ2l0IG5hbWUtcmV2IFtPcHRpb25lbl0gLS1zdGRpbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIyOQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxMwogbXNnaWQgInByaW50IG9ubHkgbmFtZXMgKG5vIFNIQS0xKSIKIG1zZ3N0ciAiemVpZ3QgbnVyIE5hbWVuIGFuIChrZWluZSBTSEEtMSkiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzAKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTQKIG1zZ2lkICJvbmx5IHVzZSB0YWdzIHRvIG5hbWUgdGhlIGNvbW1pdHMiCi1tc2dzdHIgInZlcndlbmRldCBudXIgTWFya2llcnVuZ2VuIHVtIGRpZSBWZXJzaW9uZW4genUgYmVuZW5uZW4iCittc2dzdHIgInZlcndlbmRldCBudXIgVGFncyB1bSBkaWUgQ29tbWl0cyB6dSBiZW5lbm5lbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzMgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxNgogbXNnaWQgIm9ubHkgdXNlIHJlZnMgbWF0Y2hpbmcgPHBhdHRlcm4+IgogbXNnc3RyICJ2ZXJ3ZW5kZXQgbnVyIFJlZmVyZW56ZW4gZGllIDxNdXN0ZXI+IGVudHNwcmVjaGVuIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjM0CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE4CiBtc2dpZCAibGlzdCBhbGwgY29tbWl0cyByZWFjaGFibGUgZnJvbSBhbGwgcmVmcyIKLW1zZ3N0ciAibGlzdGV0IGFsbGUgVmVyc2lvbmVuIGF1ZiwgZGllIHZvbiBhbGxlbiBSZWZlcmVuemVuIGVycmVpY2hiYXIgc2luZCIKK21zZ3N0ciAibGlzdGV0IGFsbGUgQ29tbWl0cyBhdWYsIGRpZSB2b24gYWxsZW4gUmVmZXJlbnplbiBlcnJlaWNoYmFyIHNpbmQiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzUKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTkKIG1zZ2lkICJyZWFkIGZyb20gc3RkaW4iCiBtc2dzdHIgImxpZXN0IHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyMAogbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgogbXNnc3RyICJlcmxhdWJ0IEF1c2dhYmUgdm9uIGB1bmRlZmluaWVydGVuYCBOYW1lbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzI2Cittc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbiB0aGUgaW5wdXQgKGludGVybmFsIHVzZSkiCittc2dzdHIgImRlcmVmZXJlbnppZXJ0IFRhZ3MgaW4gZGVyIEVpbmdhYmUgKGludGVybmUgVmVyd2VuZHVuZykiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIFtsaXN0IFs8b2JqZWN0Pl1dIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxOb3Rpei1SZWZlcmVuej5dIFtsaXN0IFs8T2JqZWt0Pl1dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNQogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhZGQgWy1mXSBbLW0gPG1zZz4gfCAtRiA8ZmlsZT4gfCAoLWMgfCAtQykgIgogIjxvYmplY3Q+XSBbPG9iamVjdD5dIgpAQCAtNjg3OSwxMiArNzEyMCwxMiBAQAogImdpdCBub3RlcyBbLS1yZWYgPE5vdGl6LVJlZmVyZW56Pl0gYWRkIFstZl0gWy1tIDxOYWNocmljaHQ+IHwgLUYgPERhdGVpPiB8ICgtIgogImMgfCAtQykgPE9iamVrdD5dIFs8T2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyOAorIzogYnVpbHRpbi9ub3Rlcy5jOjI2CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gY29weSBbLWZdIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCiBtc2dzdHIgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxOb3Rpei1SZWZlcmVuej5dIGNvcHkgWy1mXSA8dm9uLU9iamVrdD4gPG5hY2gtT2JqZWt0PiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5CisjOiBidWlsdGluL25vdGVzLmM6MjcKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYXBwZW5kIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCkBAIC02ODkyLDIyMyArNzEzMywyMDEgQEAKICJnaXQgbm90ZXMgWy0tcmVmIDxOb3Rpei1SZWZlcmVuej5dIGFwcGVuZCBbLW0gPE5hY2hyaWNodD4gfCAtRiA8RGF0ZWk+IHwgKC1jICIKICJ8IC1DKSA8T2JqZWt0Pl0gWzxPYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjMwCisjOiBidWlsdGluL25vdGVzLmM6MjgKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBlZGl0IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPE5vdGl6LVJlZmVyZW56Pl0gZWRpdCBbPE9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8Tm90aXotUmVmZXJlbno+XSBzaG93IFs8T2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMgorIzogYnVpbHRpbi9ub3Rlcy5jOjMwCiBtc2dpZCAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIG1lcmdlIFstdiB8IC1xXSBbLXMgPHN0cmF0ZWd5PiBdIDxub3Rlc19yZWY+IgogbXNnc3RyICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8Tm90aXotUmVmZXJlbno+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDxTdHJhdGVnaWU+IF0gPE5vdGl6LSIKICJSZWZlcmVuej4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMworIzogYnVpbHRpbi9ub3Rlcy5jOjMxCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM0CisjOiBidWlsdGluL25vdGVzLmM6MzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM1CisjOiBidWlsdGluL25vdGVzLmM6MzMKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSByZW1vdmUgWzxvYmplY3Q+Li4uXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8Tm90aXotUmVmZXJlbno+XSByZW1vdmUgWzxPYmpla3Q+Li4uXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM2CisjOiBidWlsdGluL25vdGVzLmM6MzQKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBwcnVuZSBbLW4gfCAtdl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPE5vdGl6LVJlZmVyZW56Pl0gcHJ1bmUgWy1uIHwgLXZdIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzcKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGdldC1yZWYiCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPE5vdGl6LVJlZmVyZW56Pl0gZ2V0LXJlZiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQyCisjOiBidWlsdGluL25vdGVzLmM6NDAKIG1zZ2lkICJnaXQgbm90ZXMgW2xpc3QgWzxvYmplY3Q+XV0iCiBtc2dzdHIgImdpdCBub3RlcyBbbGlzdCBbPE9iamVrdD5dXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ3CisjOiBidWlsdGluL25vdGVzLmM6NDUKIG1zZ2lkICJnaXQgbm90ZXMgYWRkIFs8b3B0aW9ucz5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBhZGQgWzxPcHRpb25lbj5dIFs8T2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MgorIzogYnVpbHRpbi9ub3Rlcy5jOjUwCiBtc2dpZCAiZ2l0IG5vdGVzIGNvcHkgWzxvcHRpb25zPl0gPGZyb20tb2JqZWN0PiA8dG8tb2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGNvcHkgWzxPcHRpb25lbj5dIDx2b24tT2JqZWt0PiA8bmFjaC1PYmpla3Q+IgogCi0jOiBidWlsdGluL25vdGVzLmM6NTMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MQogbXNnaWQgImdpdCBub3RlcyBjb3B5IC0tc3RkaW4gWzxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD5dLi4uIgogbXNnc3RyICJnaXQgbm90ZXMgY29weSAtLXN0ZGluIFs8dm9uLU9iamVrdD4gPG5hY2gtT2JqZWt0Pl0uLi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2CiBtc2dpZCAiZ2l0IG5vdGVzIGFwcGVuZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgYXBwZW5kIFs8T3B0aW9uZW4+XSBbPE9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2MQogbXNnaWQgImdpdCBub3RlcyBlZGl0IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBlZGl0IFs8T2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjY2CiBtc2dpZCAiZ2l0IG5vdGVzIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIHNob3cgWzxPYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjczCisjOiBidWlsdGluL25vdGVzLmM6NzEKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgWzxvcHRpb25zPl0gPG5vdGVzX3JlZj4iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSBbPE9wdGlvbmVuPl0gPE5vdGl6LVJlZmVyZW56PiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjc0CisjOiBidWlsdGluL25vdGVzLmM6NzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbPE9wdGlvbmVuPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjczCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFs8T3B0aW9uZW4+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjgwCisjOiBidWlsdGluL25vdGVzLmM6NzgKIG1zZ2lkICJnaXQgbm90ZXMgcmVtb3ZlIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyByZW1vdmUgWzxPYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg1CisjOiBidWlsdGluL25vdGVzLmM6ODMKIG1zZ2lkICJnaXQgbm90ZXMgcHJ1bmUgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBwcnVuZSBbPE9wdGlvbmVuPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg4CiBtc2dpZCAiZ2l0IG5vdGVzIGdldC1yZWYiCiBtc2dzdHIgImdpdCBub3RlcyBnZXQtcmVmIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTM5CisjOiBidWlsdGluL25vdGVzLmM6MTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGFydCAnc2hvdycgZm9yIG9iamVjdCAnJXMnIgogbXNnc3RyICJrb25udGUgJ3Nob3cnIGbDvHIgT2JqZWt0ICclcycgbmljaHQgc3RhcnRlbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE0MworIzogYnVpbHRpbi9ub3Rlcy5jOjE0MQogbXNnaWQgImNvdWxkIG5vdCByZWFkICdzaG93JyBvdXRwdXQiCiBtc2dzdHIgIktvbm50ZSBBdXNnYWJlIHZvbiAnc2hvdycgbmljaHQgbGVzZW4uIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTUxCisjOiBidWlsdGluL25vdGVzLmM6MTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5pc2ggJ3Nob3cnIGZvciBvYmplY3QgJyVzJyIKIG1zZ3N0ciAia29ubnRlICdzaG93JyBmw7xyIE9iamVrdCAnJXMnIG5pY2h0IGFic2NobGllw59lbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE2OSBidWlsdGluL3RhZy5jOjM0MQorIzogYnVpbHRpbi9ub3Rlcy5jOjE2NyBidWlsdGluL3RhZy5jOjM0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGZpbGUgJyVzJyIKIG1zZ3N0ciAia29ubnRlIERhdGVpICclcycgbmljaHQgZXJzdGVsbGVuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTg4CisjOiBidWlsdGluL25vdGVzLmM6MTg2CiBtc2dpZCAiUGxlYXNlIHN1cHBseSB0aGUgbm90ZSBjb250ZW50cyB1c2luZyBlaXRoZXIgLW0gb3IgLUYgb3B0aW9uIgogbXNnc3RyICIiCiAiQml0dGUgbGllZmVybiBTaWUgZGVuIE5vdGl6LUluaGFsdCB1bnRlciBWZXJ3ZW5kdW5nIGRlciBPcHRpb24gLW0gb2RlciAtRi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyMDkgYnVpbHRpbi9ub3Rlcy5jOjk3MgorIzogYnVpbHRpbi9ub3Rlcy5jOjIwNyBidWlsdGluL25vdGVzLmM6ODQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nIG5vdGUgZm9yIG9iamVjdCAlc1xuIgogbXNnc3RyICJFbnRmZXJuZSBOb3RpeiBmw7xyIE9iamVrdCAlc1xuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjE0CisjOiBidWlsdGluL25vdGVzLmM6MjEyCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5vdGUgb2JqZWN0IgogbXNnc3RyICJLb25udGUgTm90aXotT2JqZWt0IG5pY2h0IHNjaHJlaWJlbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjIxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgbm90ZSBjb250ZW50cyBoYXMgYmVlbiBsZWZ0IGluICVzIgogbXNnc3RyICJEaWUgTm90aXotSW5oYWx0ZSB3dXJkZW4gaW4gJXMgYmVsYXNzZW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNDggYnVpbHRpbi90YWcuYzo1NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAia2FubiAnJXMnIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjUyIGJ1aWx0aW4vdGFnLmM6NTQzCisjOiBidWlsdGluL25vdGVzLmM6MjUwIGJ1aWx0aW4vdGFnLmM6NTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuIG9yIHJlYWQgJyVzJyIKIG1zZ3N0ciAia29ubnRlICclcycgbmljaHQgw7ZmZm5lbiBvZGVyIGxlc2VuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjcxIGJ1aWx0aW4vbm90ZXMuYzo0NDQgYnVpbHRpbi9ub3Rlcy5jOjQ0NgotIzogYnVpbHRpbi9ub3Rlcy5jOjUwNiBidWlsdGluL25vdGVzLmM6NTYwIGJ1aWx0aW4vbm90ZXMuYzo2NDMKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NDggYnVpbHRpbi9ub3Rlcy5jOjcyMyBidWlsdGluL25vdGVzLmM6NzY1Ci0jOiBidWlsdGluL25vdGVzLmM6OTY3IGJ1aWx0aW4vdGFnLmM6NTU2CisjOiBidWlsdGluL25vdGVzLmM6MjY5IGJ1aWx0aW4vbm90ZXMuYzozMTYgYnVpbHRpbi9ub3Rlcy5jOjMxOAorIzogYnVpbHRpbi9ub3Rlcy5jOjM3OCBidWlsdGluL25vdGVzLmM6NDMyIGJ1aWx0aW4vbm90ZXMuYzo1MTUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MjAgYnVpbHRpbi9ub3Rlcy5jOjU5NSBidWlsdGluL25vdGVzLmM6NjM3CisjOiBidWlsdGluL25vdGVzLmM6ODM5IGJ1aWx0aW4vdGFnLmM6NTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZWYuIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBhbHMgZ8O8bHRpZ2UgUmVmZXJlbnogYXVmbMO2c2VuLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjI3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVhZCBvYmplY3QgJyVzJy4iCiBtc2dzdHIgIkZlaGxlciBiZWltIExlc2VuIGRlcyBPYmpla3RlcyAnJXMnLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5OAotbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKLW1zZ3N0ciAiS2FubiB1bmluaXRpYWxpc2llcnRlbi91bnJlZmVyZW56aWVydGVuIE5vdGl6LUJhdW0gbmljaHQgZWludHJhZ2VuLiIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjMzOQotIywgYy1mb3JtYXQKLW1zZ2lkICJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciCi1tc2dzdHIgIlVuZ8O8bHRpZ2VyIG5vdGVzLnJld3JpdGVNb2RlIFdlcnQ6ICclcyciCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozNDkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCi1tc2dzdHIgIiIKLSJVbXNjaHJlaWJlbiBkZXIgTm90aXplbiBpbiAlcyB6dXLDvGNrZ2V3aWVzZW4gKGF1w59lcmhhbGIgdm9uIHJlZnMvbm90ZXMvKSIKLQotIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKLSMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQotIzogYnVpbHRpbi9ub3Rlcy5jOjM3NgotIywgYy1mb3JtYXQKLW1zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCi1tc2dzdHIgIlVuZ8O8bHRpZ2VyICVzIFdlcnQ6ICclcyciCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzo0NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlucHV0IGxpbmU6ICclcycuIgogbXNnc3RyICJGZWhsZXJoYWZ0ZSBFaW5nYWJlemVpbGU6ICclcycuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDU1CisjOiBidWlsdGluL25vdGVzLmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjb3B5IG5vdGVzIGZyb20gJyVzJyB0byAnJXMnIgogbXNnc3RyICJGZWhsZXIgYmVpbSBLb3BpZXJlbiBkZXIgTm90aXplbiB2b24gJyVzJyBuYWNoICclcyciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo0OTkgYnVpbHRpbi9ub3Rlcy5jOjU1MyBidWlsdGluL25vdGVzLmM6NjI2Ci0jOiBidWlsdGluL25vdGVzLmM6NjM4IGJ1aWx0aW4vbm90ZXMuYzo3MTEgYnVpbHRpbi9ub3Rlcy5jOjc1OAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwMzIKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNzEgYnVpbHRpbi9ub3Rlcy5jOjQyNSBidWlsdGluL25vdGVzLmM6NDk4CisjOiBidWlsdGluL25vdGVzLmM6NTEwIGJ1aWx0aW4vbm90ZXMuYzo1ODMgYnVpbHRpbi9ub3Rlcy5jOjYzMAorIzogYnVpbHRpbi9ub3Rlcy5jOjkwNAogbXNnaWQgInRvbyBtYW55IHBhcmFtZXRlcnMiCiBtc2dzdHIgInp1IHZpZWxlIFBhcmFtZXRlciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUxMiBidWlsdGluL25vdGVzLmM6NzcxCisjOiBidWlsdGluL25vdGVzLmM6Mzg0IGJ1aWx0aW4vbm90ZXMuYzo2NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbm90ZSBmb3VuZCBmb3Igb2JqZWN0ICVzLiIKIG1zZ3N0ciAiS2VpbiBOb3RpeiBmw7xyIE9iamVrdCAlcyBnZWZ1bmRlbi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzQgYnVpbHRpbi9ub3Rlcy5jOjY5MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQwNiBidWlsdGluL25vdGVzLmM6NTYzCiBtc2dpZCAibm90ZSBjb250ZW50cyBhcyBhIHN0cmluZyIKIG1zZ3N0ciAiTm90aXppbmhhbHRlIGFscyBaZWljaGVua2V0dGUiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzcgYnVpbHRpbi9ub3Rlcy5jOjY5NAorIzogYnVpbHRpbi9ub3Rlcy5jOjQwOSBidWlsdGluL25vdGVzLmM6NTY2CiBtc2dpZCAibm90ZSBjb250ZW50cyBpbiBhIGZpbGUiCiBtc2dzdHIgIk5vdGl6aW5oYWx0ZSBpbiBlaW5lciBEYXRlaSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzOSBidWlsdGluL25vdGVzLmM6NTQyIGJ1aWx0aW4vbm90ZXMuYzo2OTYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OTkgYnVpbHRpbi90YWcuYzo0NzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTEgYnVpbHRpbi9ub3Rlcy5jOjQxNCBidWlsdGluL25vdGVzLmM6NTY4CisjOiBidWlsdGluL25vdGVzLmM6NTcxIGJ1aWx0aW4vdGFnLmM6NDc0CiBtc2dpZCAib2JqZWN0IgogbXNnc3RyICJPYmpla3QiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDAgYnVpbHRpbi9ub3Rlcy5jOjY5NworIzogYnVpbHRpbi9ub3Rlcy5jOjQxMiBidWlsdGluL25vdGVzLmM6NTY5CiBtc2dpZCAicmV1c2UgYW5kIGVkaXQgc3BlY2lmaWVkIG5vdGUgb2JqZWN0IgogbXNnc3RyICJXaWVkZXJ2ZXJ3ZW5kdW5nIHVuZCBCZWFyYmVpdHVuZyBkZXMgYW5nZWdlYmVuZW4gTm90aXotT2JqZWt0ZXMiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDMgYnVpbHRpbi9ub3Rlcy5jOjcwMAorIzogYnVpbHRpbi9ub3Rlcy5jOjQxNSBidWlsdGluL25vdGVzLmM6NTcyCiBtc2dpZCAicmV1c2Ugc3BlY2lmaWVkIG5vdGUgb2JqZWN0IgogbXNnc3RyICJXaWVkZXJ2ZXJ3ZW5kdW5nIGRlcyBhbmdlZ2ViZW5lbiBOb3Rpei1PYmpla3RlcyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0NSBidWlsdGluL25vdGVzLmM6NjEzCisjOiBidWlsdGluL25vdGVzLmM6NDE3IGJ1aWx0aW4vbm90ZXMuYzo0ODUKIG1zZ2lkICJyZXBsYWNlIGV4aXN0aW5nIG5vdGVzIgogbXNnc3RyICJlcnNldHp0IGV4aXN0aWVyZW5kZSBOb3RpemVuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTc5CisjOiBidWlsdGluL25vdGVzLmM6NDUxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgYWRkIG5vdGVzLiBGb3VuZCBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzLiBVc2UgJy1mJyB0byBvdmVyd3JpdGUgIgpAQCAtNzExNywyNiArNzMzNiwyNiBAQAogIktvbm50ZSBOb3RpemVuIG5pY2h0IGhpbnp1ZsO8Z2VuLiBFeGlzdGllcmVuZGUgTm90aXplbiBmw7xyIE9iamVrdCAlcyAiCiAiZ2VmdW5kZW4uIFZlcndlbmRlbiBTaWUgJy1mJyB1bSBkaWUgZXhpc3RpZXJlbmRlbiBOb3RpemVuIHp1IMO8YmVyc2NocmVpYmVuLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU4NCBidWlsdGluL25vdGVzLmM6NjYxCisjOiBidWlsdGluL25vdGVzLmM6NDU2IGJ1aWx0aW4vbm90ZXMuYzo1MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3ZlcndyaXRpbmcgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlc1xuIgogbXNnc3RyICLDnGJlcnNjaHJlaWJlIGV4aXN0aWVyZW5kZSBOb3RpemVuIGbDvHIgT2JqZWt0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODYKIG1zZ2lkICJyZWFkIG9iamVjdHMgZnJvbSBzdGRpbiIKIG1zZ3N0ciAibGllc3QgT2JqZWt0ZSB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODgKIG1zZ2lkICJsb2FkIHJld3JpdGluZyBjb25maWcgZm9yIDxjb21tYW5kPiAoaW1wbGllcyAtLXN0ZGluKSIKIG1zZ3N0ciAiIgogImzDpGR0IEtvbmZpZ3VyYXRpb24gZsO8ciA8S29tbWFuZG8+IGJlaW0gVW1zY2hyZWliZW4gdm9uIFZlcnNpb25lbiAoaW1wbGl6aWVydCAiCiAiLS1zdGRpbikiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYKIG1zZ2lkICJ0b28gZmV3IHBhcmFtZXRlcnMiCiBtc2dzdHIgInp1IHdlbmlnIFBhcmFtZXRlciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY1NQorIzogYnVpbHRpbi9ub3Rlcy5jOjUyNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IGNvcHkgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCkBAIC03MTQ1LDEyICs3MzY0LDEyIEBACiAiS2FubiBOb3RpemVuIG5pY2h0IGtvcGllcmVuLiBFeGlzdGllcmVuZGUgTm90aXplbiBmw7xyIE9iamVrdCAlcyBnZWZ1bmRlbi4gIgogIlZlcndlbmRlbiBTaWUgJy1mJyB1bSBkaWUgZXhpc3RpZXJlbmRlbiBOb3RpemVuIHp1IMO8YmVyc2NocmVpYmVuLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY2NworIzogYnVpbHRpbi9ub3Rlcy5jOjUzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNaXNzaW5nIG5vdGVzIG9uIHNvdXJjZSBvYmplY3QgJXMuIENhbm5vdCBjb3B5LiIKIG1zZ3N0ciAiS2VpbmUgTm90aXplbiBmw7xyIFF1ZWxsLU9iamVrdCAlcy4gS29waWUgbmljaHQgbcO2Z2xpY2guIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzE2CisjOiBidWlsdGluL25vdGVzLmM6NTg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgLW0vLUYvLWMvLUMgb3B0aW9ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBmb3IgdGhlICdlZGl0JyBzdWJjb21tYW5kLlxuIgpAQCAtNzE1OSwxNSArNzM3OCwxNSBAQAogIkRpZSBPcHRpb25lbiAtbS8tRi8tYy8tQyBzaW5kIGbDvHIgZGFzIFVudGVya29tbWFuZG8gJ2VkaXQnIHZlcmFsdGV0LlxuIgogIkJpdHRlIGJlbnV0emVuIFNpZSBzdGF0dGRlc3NlbiAnZ2l0IG5vdGVzIGFkZCAtZiAtbS8tRi8tYy8tQycuXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzUKIG1zZ2lkICJHZW5lcmFsIG9wdGlvbnMiCiBtc2dzdHIgIkFsbGdlbWVpbmUgT3B0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzcKIG1zZ2lkICJNZXJnZSBvcHRpb25zIgotbXNnc3RyICJPcHRpb25lbiBmw7xyIFp1c2FtbWVuZsO8aHJ1bmciCittc2dzdHIgIk1lcmdlLU9wdGlvbmVuIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY3CisjOiBidWlsdGluL25vdGVzLmM6NzM5CiBtc2dpZCAiIgogInJlc29sdmUgbm90ZXMgY29uZmxpY3RzIHVzaW5nIHRoZSBnaXZlbiBzdHJhdGVneSAobWFudWFsL291cnMvdGhlaXJzL3VuaW9uLyIKICJjYXRfc29ydF91bmlxKSIKQEAgLTcxNzUsNDYgKzczOTQsNDYgQEAKICJsw7ZzdCBLb25mbGlrdGUgYmVpIE5vdGl6ZW4gbWl0IGRlciBhbmdlZ2ViZW5lbiBTdHJhdGVnaWUgYXVmIChtYW51YWwvb3Vycy8iCiAidGhlaXJzL3VuaW9uL2NhdF9zb3J0X3VuaXEpIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY5CisjOiBidWlsdGluL25vdGVzLmM6NzQxCiBtc2dpZCAiQ29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKIG1zZ3N0ciAidHLDpGd0IG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIE5vdGl6ZW4gZWluIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODcxCisjOiBidWlsdGluL25vdGVzLmM6NzQzCiBtc2dpZCAiZmluYWxpemUgbm90ZXMgbWVyZ2UgYnkgY29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKIG1zZ3N0ciAiIgotInNjaGxpZcOfdCBadXNhbW1lbmbDvGhydW5nIHZvbiBOb3RpemVuIGFiLCBpbiBkZW0gbmljaHQgenVzYW1tZW5nZWbDvGhydGUgIgotIk5vdGl6ZW4gZWluZ2V0cmFnZW4gd2VyZGVuIgorInNjaGxpZcOfdCBNZXJnZSB2b24gTm90aXplbiBhYiwgaW4gZGVtIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIE5vdGl6ZW4gIgorImNvbW1pdHRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDUKIG1zZ2lkICJBYm9ydGluZyBub3RlcyBtZXJnZSByZXNvbHV0aW9uIgotbXNnc3RyICJicmljaHQgS29uZmxpa3RhdWZsw7ZzdW5nIGJlaSBadXNhbW1lbmbDvGhydW5nIHZvbiBOb3RpemVuIGFiIgorbXNnc3RyICJicmljaHQgS29uZmxpa3RhdWZsw7ZzdW5nIGJlaW0gTWVyZ2Ugdm9uIE5vdGl6ZW4gYWIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDcKIG1zZ2lkICJhYm9ydCBub3RlcyBtZXJnZSIKLW1zZ3N0ciAiYnJpY2h0IFp1c2FtbWVuZsO8aHJ1bmcgdm9uIE5vdGl6ZW4gYWIiCittc2dzdHIgImJyaWNodCBNZXJnZSB2b24gTm90aXplbiBhYiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk3MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJPYmplY3QgJXMgaGFzIG5vIG5vdGVcbiIKIG1zZ3N0ciAiT2JqZWt0ICVzIGhhdCBrZWluZSBOb3RpelxuIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTgyCisjOiBidWlsdGluL25vdGVzLmM6ODU0CiBtc2dpZCAiYXR0ZW1wdCB0byByZW1vdmUgbm9uLWV4aXN0ZW50IG5vdGUgaXMgbm90IGFuIGVycm9yIgogbXNnc3RyICJkZXIgVmVyc3VjaCwgZWluZSBuaWNodCBleGlzdGllcmVuZGUgTm90aXogenUgbMO2c2NoZW4sIGlzdCBrZWluIEZlaGxlciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk4NQorIzogYnVpbHRpbi9ub3Rlcy5jOjg1NwogbXNnaWQgInJlYWQgb2JqZWN0IG5hbWVzIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJsaWVzdCBPYmpla3RuYW1lbiB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDY2CisjOiBidWlsdGluL25vdGVzLmM6OTM4CiBtc2dpZCAibm90ZXNfcmVmIgogbXNnc3RyICJOb3Rpei1SZWZlcmVueiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MzkKIG1zZ2lkICJ1c2Ugbm90ZXMgZnJvbSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAidmVyd2VuZGV0IE5vdGl6ZW4gdm9uIDxOb3Rpei1SZWZlcmVuej4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMTAyIGJ1aWx0aW4vcmVtb3RlLmM6MTU5OAorIzogYnVpbHRpbi9ub3Rlcy5jOjk3NCBidWlsdGluL3JlbW90ZS5jOjE1OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBzdWJjb21tYW5kOiAlcyIKIG1zZ3N0ciAiVW5iZWthbm50ZXMgVW50ZXJrb21tYW5kbzogJXMiCkBAIC03MjM3LDEyICs3NDU2LDEyIEBACiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzOTcKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5zdXBwb3J0ZWQgaW5kZXggdmVyc2lvbiAlcyIKLW1zZ3N0ciAiTmljaHQgdW50ZXJzdMO8dHp0ZSBCZXJlaXRzdGVsbHVuZ3N2ZXJzaW9uICVzIgorbXNnc3RyICJOaWNodCB1bnRlcnN0w7x0enRlIFN0YWdpbmctQXJlYS1WZXJzaW9uICVzIgogCiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGluZGV4IHZlcnNpb24gJyVzJyIKLW1zZ3N0ciAiVW5nw7xsdGlnZSBCZXJlaXRzdGVsbHVuZ3N2ZXJzaW9uICclcyciCittc2dzdHIgIlVuZ8O8bHRpZ2UgU3RhZ2luZy1BcmVhLVZlcnNpb24gJyVzJyIKIAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI0CiAjLCBjLWZvcm1hdApAQCAtNzMyOCw3ICs3NTQ3LDcgQEAKIAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgxCiBtc2dpZCAicmVhZCByZXZpc2lvbiBhcmd1bWVudHMgZnJvbSBzdGFuZGFyZCBpbnB1dCIKLW1zZ3N0ciAibGllc3QgQXJndW1lbnRlIGJlesO8Z2xpY2ggUmV2aXNpb25lbiB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUiCittc2dzdHIgImxpZXN0IEFyZ3VtZW50ZSBiZXrDvGdsaWNoIENvbW1pdHMgdm9uIGRlciBTdGFuZGFyZC1FaW5nYWJlIgogCiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODMKIG1zZ2lkICJsaW1pdCB0aGUgb2JqZWN0cyB0byB0aG9zZSB0aGF0IGFyZSBub3QgeWV0IHBhY2tlZCIKQEAgLTczNDEsOCArNzU2MCw3IEBACiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODkKIG1zZ2lkICJpbmNsdWRlIG9iamVjdHMgcmVmZXJyZWQgYnkgcmVmbG9nIGVudHJpZXMiCiBtc2dzdHIgIiIKLSJzY2hsaWXDn3QgT2JqZWt0ZSBlaW4sIGRpZSB2b24gRWludHLDpGdlbiBkZXMgUmVmZXJlbnpwcm90b2tvbGxzIHJlZmVyZW56aWVydCAiCi0id2VyZGVuIgorInNjaGxpZcOfdCBPYmpla3RlIGVpbiwgZGllIHZvbiBFaW50csOkZ2VuIGRlcyBSZWZsb2dzIHJlZmVyZW56aWVydCB3ZXJkZW4iCiAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5MgogbXNnaWQgIm91dHB1dCBwYWNrIHRvIHN0ZG91dCIKQEAgLTczNTAsOCArNzU2OCw3IEBACiAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NAogbXNnaWQgImluY2x1ZGUgdGFnIG9iamVjdHMgdGhhdCByZWZlciB0byBvYmplY3RzIHRvIGJlIHBhY2tlZCIKLW1zZ3N0ciAiIgotInNjaGxpZcOfdCBNYXJraWVydW5nc29iamVrdGUgZWluLCBkaWUgYXVmIGdlcGFja3RlIE9iamVrdGUgcmVmZXJlbnppZXJlbiIKK21zZ3N0ciAic2NobGllw590IFRhZy1PYmpla3RlIGVpbiwgZGllIGF1ZiBnZXBhY2t0ZSBPYmpla3RlIHJlZmVyZW56aWVyZW4iCiAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NgogbXNnaWQgImtlZXAgdW5yZWFjaGFibGUgb2JqZWN0cyIKQEAgLTczNzksNyArNzU5Niw3IEBACiAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNwogbXNnaWQgImRvIG5vdCBoaWRlIGNvbW1pdHMgYnkgZ3JhZnRzIgotbXNnc3RyICJ2ZXJiaXJndCBrZWluZSBWZXJzaW9uZW4gbWl0IGvDvG5zdGxpY2hlbiBWb3Jnw6RuZ2VybiAoXCJncmFmdHNcIikiCittc2dzdHIgInZlcmJpcmd0IGtlaW5lIENvbW1pdHMgbWl0IGvDvG5zdGxpY2hlbiBWb3Jnw6RuZ2VybiAoXCJncmFmdHNcIikiCiAKICM6IGJ1aWx0aW4vcGFjay1yZWZzLmM6NgogbXNnaWQgImdpdCBwYWNrLXJlZnMgW29wdGlvbnNdIgpAQCAtNzM5OSw3ICs3NjE2LDcgQEAKIAogIzogYnVpbHRpbi9wcnVuZS5jOjEyCiBtc2dpZCAiZ2l0IHBydW5lIFstbl0gWy12XSBbLS1leHBpcmUgPHRpbWU+XSBbLS1dIFs8aGVhZD4uLi5dIgotbXNnc3RyICJnaXQgcHJ1bmUgWy1uXSBbLXZdIFstLWV4cGlyZSA8WmVpdD5dIFstLV0gWzxad2VpZ3NwaXR6ZT4uLi5dIgorbXNnc3RyICJnaXQgcHJ1bmUgWy1uXSBbLXZdIFstLWV4cGlyZSA8WmVpdD5dIFstLV0gWzxoZWFkPi4uLl0iCiAKICM6IGJ1aWx0aW4vcHJ1bmUuYzoxMzIKIG1zZ2lkICJkbyBub3QgcmVtb3ZlLCBzaG93IG9ubHkiCkBAIC03NDE1LDExICs3NjMyLDExIEBACiAKICM6IGJ1aWx0aW4vcHVzaC5jOjE0CiBtc2dpZCAiZ2l0IHB1c2ggWzxvcHRpb25zPl0gWzxyZXBvc2l0b3J5PiBbPHJlZnNwZWM+Li4uXV0iCi1tc2dzdHIgImdpdCBwdXNoIFs8T3B0aW9uZW4+XSBbPFByb2pla3RhcmNoaXY+IFs8UmVmZXJlbnpzcGV6aWZpa2F0aW9uPi4uLl1dIgorbXNnc3RyICJnaXQgcHVzaCBbPE9wdGlvbmVuPl0gWzxSZXBvc2l0b3J5PiBbPFJlZnNwZWM+Li4uXV0iCiAKICM6IGJ1aWx0aW4vcHVzaC5jOjQ1CiBtc2dpZCAidGFnIHNob3J0aGFuZCB3aXRob3V0IDx0YWc+IgotbXNnc3RyICJLdXJ6c2NocmlmdCBmw7xyIE1hcmtpZXJ1bmcgb2huZSA8TWFya2llcnVuZz4iCittc2dzdHIgIkt1cnpzY2hyaWZ0IGbDvHIgVGFnIG9obmUgPFRhZz4iCiAKICM6IGJ1aWx0aW4vcHVzaC5jOjY0CiBtc2dpZCAiLS1kZWxldGUgb25seSBhY2NlcHRzIHBsYWluIHRhcmdldCByZWYgbmFtZXMiCkBAIC03NDQ4LDE5ICs3NjY1LDE5IEBACiAiICAgIGdpdCBwdXNoICVzICVzXG4iCiAiJXMiCiBtc2dzdHIgIiIKLSJEZXIgTmFtZSBkZXMgZXh0ZXJuZW4gw5xiZXJuYWhtZXp3ZWlnZXMgc3RpbW10IG5pY2h0IG1pdCBkZW0gTmFtZW4gSWhyZXNcbiIKLSJha3R1ZWxsZW4gWndlaWdlcyDDvGJlcmVpbi4gVW0gYXVmIGRlbiDDnGJlcm5haG1lendlaWcgaW4gZGVtIGV4dGVybmVuXG4iCi0iUHJvamVrdGFyY2hpdiB6dSB2ZXJzZW5kZW4sIGJlbnV0emVuIFNpZTpcbiIKKyJEZXIgTmFtZSBkZXMgVXBzdHJlYW0tQnJhbmNoZXMgc3RpbW10IG5pY2h0IG1pdCBkZW0gTmFtZW4gSWhyZXNcbiIKKyJha3R1ZWxsZW4gQnJhbmNoZXMgw7xiZXJlaW4uIFVtIGF1ZiBkZW4gVXBzdHJlYW0tQnJhbmNoIGluIGRlbSBSZW1vdGUtXG4iCisiUmVwb3NpdG9yeSB6dSB2ZXJzZW5kZW4sIGJlbnV0emVuIFNpZTpcbiIKICJcbiIKICIgICAgZ2l0IHB1c2ggJXMgSEVBRDolc1xuIgogIlxuIgotIlVtIGF1ZiBkZW4gWndlaWcgbWl0IGRlbSBzZWxiZW4gTmFtZW4gaW4gZGVtIGV4dGVybmVuIFByb2pla2FyY2hpdlxuIgotInp1IHZlcnNlbmRlbiwgYmVudXR6ZW4gU2llOlxuIgorIlVtIGF1ZiBkZW4gQnJhbmNoIG1pdCBkZW0gc2VsYmVuIE5hbWVuIGltIFJlbW90ZS1SZXBvc2l0b3J5IHp1IHZlcnNlbmRlbixcbiIKKyJiZW51dHplbiBTaWU6XG4iCiAiXG4iCiAiICAgIGdpdCBwdXNoICVzICVzXG4iCiAiJXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEyMQorIzogYnVpbHRpbi9wdXNoLmM6MTE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCkBAIC03NDY5LDEzICs3Njg2LDEzIEBACiAiXG4iCiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbWUtb2YtcmVtb3RlLWJyYW5jaD5cbiIKIG1zZ3N0ciAiIgotIlNpZSBiZWZpbmRlbiBzaWNoIGltIE1vbWVudCBhdWYga2VpbmVtIFp3ZWlnLlxuIgotIlVtIGRpZSBIaXN0b3JpZSwgZsO8aHJlbmQgenVtIGFrdHVlbGxlbiAoZnJlaXN0ZWhlbmRlIFp3ZWlnc3BpdHplIChIRUFEKSlcbiIKKyJTaWUgYmVmaW5kZW4gc2ljaCBpbSBNb21lbnQgYXVmIGtlaW5lbSBCcmFuY2guXG4iCisiVW0gZGllIEhpc3RvcmllLCBmw7xocmVuZCB6dW0gYWt0dWVsbGVuIChsb3NnZWzDtnN0ZXIgSEVBRClcbiIKICJTdGF0dXMgenUgdmVyc2VuZGVuLCBiZW51dHplbiBTaWVcbiIKICJcbiIKLSIgICAgZ2l0IHB1c2ggJXMgSEVBRDo8TmFtZS1kZXMtZXh0ZXJuZW4tWndlaWdlcz5cbiIKKyIgICAgZ2l0IHB1c2ggJXMgSEVBRDo8TmFtZS1kZXMtUmVtb3RlLUJyYW5jaGVzPlxuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCkBAIC03NDgzLDI5ICs3NzAwLDMwIEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIC0tc2V0LXVwc3RyZWFtICVzICVzXG4iCiBtc2dzdHIgIiIKLSJEZXIgYWt0dWVsbGUgWndlaWcgJXMgaGF0IGtlaW5lbiBad2VpZyBpbSBleHRlcm5lbiBQcm9qZWt0YXJjaGl2LlxuIgotIlVtIGRlbiBha3R1ZWxsZW4gWndlaWcgenUgdmVyc2VuZGVuIHVuZCBkYXMgRmVybmFyY2hpdiBhbHMgZXh0ZXJuZXNcbiIKLSJQcm9qZWt0YXJjaGl2IHp1IHZlcndlbmRlbiwgYmVudXR6ZW4gU2llXG4iCisiRGVyIGFrdHVlbGxlIEJyYW5jaCAlcyBoYXQga2VpbmVuIFVwc3RyZWFtLUJyYW5jaC5cbiIKKyJVbSBkZW4gYWt0dWVsbGVuIEJyYW5jaCB6dSB2ZXJzZW5kZW4gdW5kIGRlbiBSZW1vdGUtQnJhbmNoXG4iCisiYWxzIFVwc3RyZWFtLUJyYW5jaCB6dSBzZXR6ZW4sIGJlbnV0emVuIFNpZVxuIgogIlxuIgogIiAgICBnaXQgcHVzaCAtLXNldC11cHN0cmVhbSAlcyAlc1xuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMzYKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG11bHRpcGxlIHVwc3RyZWFtIGJyYW5jaGVzLCByZWZ1c2luZyB0byBwdXNoLiIKLW1zZ3N0ciAiRGVyIGFrdHVlbGxlIFp3ZWlnICVzIGhhdCBtZWhyZXJlIGV4dGVybmUgWndlaWdlLCBWZXJzYW5kIHZlcndlaWdlcnQuIgorbXNnc3RyICIiCisiRGVyIGFrdHVlbGxlIEJyYW5jaCAlcyBoYXQgbWVocmVyZSBVcHN0cmVhbS1CcmFuY2hlcywgXCJwdXNoXCIgdmVyd2VpZ2VydC4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzOQorIzogYnVpbHRpbi9wdXNoLmM6MTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIHB1c2hpbmcgdG8gcmVtb3RlICclcycsIHdoaWNoIGlzIG5vdCB0aGUgdXBzdHJlYW0gb2ZcbiIKICJ5b3VyIGN1cnJlbnQgYnJhbmNoICclcycsIHdpdGhvdXQgdGVsbGluZyBtZSB3aGF0IHRvIHB1c2hcbiIKICJ0byB1cGRhdGUgd2hpY2ggcmVtb3RlIGJyYW5jaC4iCiBtc2dzdHIgIiIKLSJTaWUgdmVyc2VuZGVuIG5hY2ggJyVzJywgd2VsY2hlcyBrZWluIGV4dGVybmVzIFByb2pla3RhcmNoaXYgSWhyZXNcbiIKLSJha3R1ZWxsZW4gWndlaWdlcyAnJXMnIGlzdCwgb2huZSBtaXIgbWl0enV0ZWlsZW4sIHdhcyBpY2ggdmVyc2VuZGVuXG4iCi0ic29sbCwgdW0gd2VsY2hlbiBleHRlcm5lbiBad2VpZyB6dSBha3R1YWxpc2llcmVuLiIKKyJTaWUgdmVyc2VuZGVuIG5hY2ggJyVzJywgd2VsY2hlcyBrZWluIFVwc3RyZWFtLVJlcG9zaXRvcnkgSWhyZXMgYWt0dWVsbGVuXG4iCisiQnJhbmNoZXMgJyVzJyBpc3QsIG9obmUgbWlyIG1pdHp1dGVpbGVuLCB3YXMgaWNoIHZlcnNlbmRlbiBzb2xsLCB1bSB3ZWxjaGVuXG4iCisiUmVtb3RlLUJyYW5jaCB6dSBha3R1YWxpc2llcmVuLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTUxCisjOiBidWlsdGluL3B1c2guYzoxNjUKIG1zZ2lkICIiCiAicHVzaC5kZWZhdWx0IGlzIHVuc2V0OyBpdHMgaW1wbGljaXQgdmFsdWUgaXMgY2hhbmdpbmcgaW5cbiIKICJHaXQgMi4wIGZyb20gJ21hdGNoaW5nJyB0byAnc2ltcGxlJy4gVG8gc3F1ZWxjaCB0aGlzIG1lc3NhZ2VcbiIKQEAgLTc1MjYsNiArNzc0NCw3IEBACiAid2lyZCBpbiBHaXQgMi4wIHZvbiAnbWF0Y2hpbmcnIG5hY2ggJ3NpbXBsZScgZ2XDpG5kZXJ0LiBVbSBkaWVzZSBNZWxkdW5nIHp1XG4iCiAidW50ZXJkcsO8Y2tlbiB1bmQgZGFzIGFrdHVlbGxlIFZlcmhhbHRlbiBuYWNoIMOEbmRlcnVuZyBkZXMgU3RhbmRhcmR3ZXJ0ZXNcbiIKICJiZWl6dWJlaGFsdGVuLCBiZW51dHplbiBTaWU6XG4iCisiXG4iCiAiICBnaXQgY29uZmlnIC0tZ2xvYmFsIHB1c2guZGVmYXVsdCBtYXRjaGluZ1xuIgogIlxuIgogIlVtIGRpZXNlIE1lbGR1bmcgenUgdW50ZXJkcsO8Y2tlbiB1bmQgZGFzIG5ldWUgVmVyaGFsdGVuIGpldHp0IHp1IMO8YmVybmVobWVuLCAiCkBAIC03NTM5LDI4ICs3NzU4LDI4IEBACiAiTW9kdXMgJ2N1cnJlbnQnIGFuc3RhdHQgJ3NpbXBsZScsIGZhbGxzIFNpZSBnZWxlZ2VudGxpY2ggw6RsdGVyZSBWZXJzaW9uZW4gIgogInZvbiBHaXQgYmVudXR6ZW4uKSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTk5CisjOiBidWlsdGluL3B1c2guYzoyMjUKIG1zZ2lkICIiCiAiWW91IGRpZG4ndCBzcGVjaWZ5IGFueSByZWZzcGVjcyB0byBwdXNoLCBhbmQgcHVzaC5kZWZhdWx0IGlzIFwibm90aGluZ1wiLiIKIG1zZ3N0ciAiIgotIlNpZSBoYWJlbiBrZWluZSBSZWZlcmVuenNwZXppZmlrYXRpb25lbiB6dW0gVmVyc2VuZGVuIGFuZ2VnZWJlbiwgdW5kIHB1c2guIgotImRlZmF1bHQgaXN0IFwibm90aGluZ1wiLiIKKyJTaWUgaGFiZW4ga2VpbmUgUmVmc3BlYyBmw7xyIFwicHVzaFwiIGFuZ2VnZWJlbiwgdW5kIHB1c2guZGVmYXVsdCBpc3QgIgorIlwibm90aGluZ1wiLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjA2CisjOiBidWlsdGluL3B1c2guYzoyMzIKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRpcCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGlzIGJlaGluZFxuIgotIml0cyByZW1vdGUgY291bnRlcnBhcnQuIE1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLiAnZ2l0IHB1bGwnKVxuIgotImJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorIml0cyByZW1vdGUgY291bnRlcnBhcnQuIEludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy5cbiIKKyInZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICJBa3R1YWxpc2llcnVuZ2VuIHd1cmRlbiB6dXLDvGNrZ2V3aWVzZW4sIHdlaWwgZGllIFNwaXR6ZSBJaHJlcyBha3R1ZWxsZW5cbiIKLSJad2VpZ2VzIGhpbnRlciBzZWluZW0gZXh0ZXJuZW4gR2VnZW5zdMO8Y2sgenVyw7xja2dlZmFsbGVuIGlzdC4gRsO8aHJlbiBTaWVcbiIKLSJkaWUgZXh0ZXJuZW4gw4RuZGVydW5nZW4genVzYW1tZW4gKHouQi4gJ2dpdCBwdWxsJykgYmV2b3IgU2llIGVybmV1dFxuIgotInZlcnNlbmRlbi5cbiIKKyJCcmFuY2hlcyBoaW50ZXIgc2VpbmVtIGV4dGVybmVuIEdlZ2Vuc3TDvGNrIHp1csO8Y2tnZWZhbGxlbiBpc3QuIEbDvGhyZW4gU2llXG4iCisiZGllIGV4dGVybmVuIMOEbmRlcnVuZ2VuIHp1c2FtbWVuICh6LkIuICdnaXQgcHVsbCAuLi4nKSBiZXZvciBTaWUgXCJwdXNoXCJcbiIKKyJlcm5ldXQgYXVzZsO8aHJlbi5cbiIKICJTaWVoZSBhdWNoIGRpZSBTZWt0aW9uICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnXG4iCiAiZsO8ciB3ZWl0ZXJlIERldGFpbHMuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMTIKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzOAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCiAiY291bnRlcnBhcnQuIElmIHlvdSBkaWQgbm90IGludGVuZCB0byBwdXNoIHRoYXQgYnJhbmNoLCB5b3UgbWF5IHdhbnQgdG9cbiIKQEAgLTc1NjgsODAgKzc3ODcsNzkgQEAKICJ0byAnc2ltcGxlJywgJ2N1cnJlbnQnIG9yICd1cHN0cmVhbScgdG8gcHVzaCBvbmx5IHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIiIKICJBa3R1YWxpc2llcnVuZ2VuIHd1cmRlbiB6dXLDvGNrZ2V3aWVzZW4sIHdlaWwgZGllIFNwaXR6ZSBlaW5lcyB2ZXJzZW5kZXRlblxuIgotIlp3ZWlnZXMgaGludGVyIHNlaW5lbSBleHRlcm5lbiBHZWdlbnN0w7xjayB6dXLDvGNrZ2VmYWxsZW4gaXN0LiBXZW5uIFNpZSAiCisiQnJhbmNoZXMgaGludGVyIHNlaW5lbSBleHRlcm5lbiBHZWdlbnN0w7xjayB6dXLDvGNrZ2VmYWxsZW4gaXN0LiBXZW5uIFNpZSAiCiAibmljaHRcbiIKLSJiZWFic2ljaHRpZ3QgaGFiZW4sIGRpZXNlbiBad2VpZyB6dSB2ZXJzZW5kZW4sIGvDtm5uZW4gU2llIGF1Y2ggZGVuIHp1ICIKKyJiZWFic2ljaHRpZ3QgaGFiZW4sIGRpZXNlbiBCcmFuY2ggenUgdmVyc2VuZGVuLCBrw7ZubmVuIFNpZSBhdWNoIGRlbiB6dSAiCiAidmVyc2VuZGVuZGVuXG4iCi0iWndlaWcgc3BlemlmaXppZXJlbiBvZGVyIGRpZSBLb25maWd1cmF0aW9uc3ZhcmlhYmxlICdwdXNoLmRlZmF1bHQnIHp1ICIKKyJCcmFuY2ggc3BlemlmaXppZXJlbiBvZGVyIGRpZSBLb25maWd1cmF0aW9uc3ZhcmlhYmxlICdwdXNoLmRlZmF1bHQnIHp1ICIKICInc2ltcGxlJywgJ2N1cnJlbnQnXG4iCi0ib2RlciAndXBzdHJlYW0nIHNldHplbiwgdW0gbnVyIGRlbiBha3R1ZWxsZW4gWndlaWcgenUgdmVyc2VuZGVuLiIKKyJvZGVyICd1cHN0cmVhbScgc2V0emVuLCB1bSBudXIgZGVuIGFrdHVlbGxlbiBCcmFuY2ggenUgdmVyc2VuZGVuLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjE4CisjOiBidWlsdGluL3B1c2guYzoyNDQKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgotImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgotIihlLmcuICdnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKKyIoZS5nLiAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICJBa3R1YWxpc2llcnVuZ2VuIHd1cmRlbiB6dXLDvGNrZ2V3aWVzZW4sIHdlaWwgZGllIFNwaXR6ZSBlaW5lcyB2ZXJzZW5kZXRlblxuIgotIlp3ZWlnZXMgaGludGVyIHNlaW5lbSBleHRlcm5lbiBHZWdlbnN0w7xjayB6dXLDvGNrZ2VmYWxsZW4gaXN0LiBDaGVja2VuIFNpZVxuIgotImRpZXNlbiBad2VpZyBhdXMgdW5kIGbDvGhyZW4gU2llIGRpZSBleHRlcm5lbiDDhG5kZXJ1bmdlbiB6dXNhbW1lblxuIgotIih6LkIuICdnaXQgcHVsbCcpIGJldm9yIFNpZSBlcm5ldXQgdmVyc2VuZGVuLlxuIgorIkJyYW5jaGVzIGhpbnRlciBzZWluZW0gZXh0ZXJuZW4gR2VnZW5zdMO8Y2sgenVyw7xja2dlZmFsbGVuIGlzdC4gQ2hlY2tlbiBTaWVcbiIKKyJkaWVzZW4gQnJhbmNoIGF1cyB1bmQgZsO8aHJlbiBTaWUgZGllIGV4dGVybmVuIMOEbmRlcnVuZ2VuIHp1c2FtbWVuXG4iCisiKHouQi4gJ2dpdCBwdWxsIC4uLicpIGJldm9yIFNpZSBlcm5ldXQgXCJwdXNoXCIgYXVzZsO8aHJlbi5cbiIKICJTaWVoZSBhdWNoIGRpZSBTZWt0aW9uICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnXG4iCiAiZsO8ciB3ZWl0ZXJlIERldGFpbHMuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjI1MAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgcmVtb3RlIGNvbnRhaW5zIHdvcmsgdGhhdCB5b3UgZG9cbiIKICJub3QgaGF2ZSBsb2NhbGx5LiBUaGlzIGlzIHVzdWFsbHkgY2F1c2VkIGJ5IGFub3RoZXIgcmVwb3NpdG9yeSBwdXNoaW5nXG4iCi0idG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuLFxuIgotIidnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorInRvIHRoZSBzYW1lIHJlZi4gWW91IG1heSB3YW50IHRvIGZpcnN0IGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKKyIoZS5nLiwgJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCi0iQWt0dWFsaXNpZXJ1bmdlbiB3dXJkZW4genVyw7xja2dld2llc2VuLCB3ZWlsIGRhcyBGZXJuYXJjaGl2IFZlcnNpb25lbiAiCisiQWt0dWFsaXNpZXJ1bmdlbiB3dXJkZW4genVyw7xja2dld2llc2VuLCB3ZWlsIGRhcyBSZW1vdGUtUmVwb3NpdG9yeSBDb21taXRzICIKICJlbnRow6RsdCxcbiIKLSJkaWUgbG9rYWwgbmljaHQgdm9yaGFuZGVuIHNpbmQuIERhcyB3aXJkIMO8YmxpY2hlcndlaXNlIGR1cmNoIGRhcyBWZXJzZW5kZW4gIgorImRpZSBsb2thbCBuaWNodCB2b3JoYW5kZW4gc2luZC4gRGFzIHdpcmQgw7xibGljaGVyd2Vpc2UgZHVyY2ggZWluZW4gXCJwdXNoXCIgIgogInZvblxuIgotIlZlcnNpb25lbiBhdWYgZGllc2VsYmUgUmVmZXJlbnogdm9uIGVpbmVtIGFuZGVyZW4gUHJvamVrdGFyY2hpdiBhdXMgIgotInZlcnVyc2FjaHQuXG4iCisiQ29tbWl0cyBhdWYgZGllc2VsYmUgUmVmZXJlbnogdm9uIGVpbmVtIGFuZGVyZW4gUmVwb3NpdG9yeSBhdXMgdmVydXJzYWNodC5cbiIKICJWaWVsbGVpY2h0IG3DvHNzZW4gU2llIGRpZSBleHRlcm5lbiDDhG5kZXJ1bmdlbiB6dXNhbW1lbnp1ZsO8aHJlbiAoei5CLiAnZ2l0ICIKLSJwdWxsJylcbiIKLSJiZXZvciBTaWUgZXJuZXV0IHZlcnNlbmRlbi5cbiIKKyJwdWxsIC4uLicpXG4iCisiYmV2b3IgU2llIGVybmV1dCBcInB1c2hcIiBhdXNmw7xocmVuLlxuIgogIlNpZWhlIGF1Y2ggZGllIFNla3Rpb24gJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCdcbiIKICJmw7xyIHdlaXRlcmUgRGV0YWlscy4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzMQorIzogYnVpbHRpbi9wdXNoLmM6MjU3CiBtc2dpZCAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRhZyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgcmVtb3RlLiIKIG1zZ3N0ciAiIgotIkFrdHVhbGlzaWVydW5nZW4gd3VyZGVuIHp1csO8Y2tnZXdpZXNlbiwgd2VpbCBkaWUgTWFya2llcnVuZyBiZXJlaXRzXG4iCi0iaW0gRmVybmFyY2hpdiBleGlzdGllcnQuIgorIkFrdHVhbGlzaWVydW5nZW4gd3VyZGVuIHp1csO8Y2tnZXdpZXNlbiwgd2VpbCBkYXMgVGFnIGJlcmVpdHNcbiIKKyJpbSBSZW1vdGUtUmVwb3NpdG9yeSBleGlzdGllcnQuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzQKKyM6IGJ1aWx0aW4vcHVzaC5jOjI2MAogbXNnaWQgIiIKICJZb3UgY2Fubm90IHVwZGF0ZSBhIHJlbW90ZSByZWYgdGhhdCBwb2ludHMgYXQgYSBub24tY29tbWl0IG9iamVjdCxcbiIKICJvciB1cGRhdGUgYSByZW1vdGUgcmVmIHRvIG1ha2UgaXQgcG9pbnQgYXQgYSBub24tY29tbWl0IG9iamVjdCxcbiIKICJ3aXRob3V0IHVzaW5nIHRoZSAnLS1mb3JjZScgb3B0aW9uLlxuIgogbXNnc3RyICIiCi0iU2llIGvDtm5uZW4ga2VpbmUgZXh0ZXJuZSBSZWZlcmVueiBha3R1YWxpc2llcmVuLCBkaWUgYXVmIGVpbiBPYmpla3QgemVpZ3QsXG4iCi0iZGFzIGtlaW5lIFZlcnNpb24gaXN0LCBvZGVyIGVzIGF1ZiBlaW4gc29sY2hlcyBPYmpla3QgemVpZ2VuIGxhc3Nlbiwgb2huZVxuIgorIlNpZSBrw7ZubmVuIGtlaW5lIFJlbW90ZS1SZWZlcmVueiBha3R1YWxpc2llcmVuLCBkaWUgYXVmIGVpbiBPYmpla3QgemVpZ3QsXG4iCisiZGFzIGtlaW4gQ29tbWl0IGlzdCwgb2RlciBlcyBhdWYgZWluIHNvbGNoZXMgT2JqZWt0IHplaWdlbiBsYXNzZW4sIG9obmVcbiIKICJkaWUgT3B0aW9uICctLWZvcmNlJyB6dSB2ZXJ3ZW5kZW4uXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI5NAorIzogYnVpbHRpbi9wdXNoLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlB1c2hpbmcgdG8gJXNcbiIKIG1zZ3N0ciAiVmVyc2VuZGUgbmFjaCAlc1xuIgogCi0jOiBidWlsdGluL3B1c2guYzoyOTgKKyM6IGJ1aWx0aW4vcHVzaC5jOjMyNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcHVzaCBzb21lIHJlZnMgdG8gJyVzJyIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gVmVyc2VuZGVuIGVpbmlnZXIgUmVmZXJlbnplbiBuYWNoICclcyciCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMzMQorIzogYnVpbHRpbi9wdXNoLmM6MzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCByZXBvc2l0b3J5ICclcyciCi1tc2dzdHIgInVuZ8O8bHRpZ2VzIFByb2pla3RhcmNoaXYgJyVzJyIKK21zZ3N0ciAidW5nw7xsdGlnZXMgUmVwb3NpdG9yeSAnJXMnIgogCi0jOiBidWlsdGluL3B1c2guYzozMzIKKyM6IGJ1aWx0aW4vcHVzaC5jOjM1OAogbXNnaWQgIiIKICJObyBjb25maWd1cmVkIHB1c2ggZGVzdGluYXRpb24uXG4iCiAiRWl0aGVyIHNwZWNpZnkgdGhlIFVSTCBmcm9tIHRoZSBjb21tYW5kLWxpbmUgb3IgY29uZmlndXJlIGEgcmVtb3RlICIKQEAgLTc2NTMsMTAwICs3ODcxLDk3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIDxuYW1lPlxuIgogbXNnc3RyICIiCi0iS2VpbiBaaWVsIHp1bSBWZXJzZW5kZW4ga29uZmlndXJpZXJ0LlxuIgorIktlaW4gWmllbCBmw7xyIFwicHVzaFwiIGtvbmZpZ3VyaWVydC5cbiIKICJFbnR3ZWRlciBzcGV6aWZpemllcmVuIFNpZSBkaWUgVVJMIHZvbiBkZXIgS29tbWFuZG96ZWlsZSBvZGVyIGtvbmZpZ3VyaWVyZW4gIgotImVpbiBleHRlcm5lcyBQcm9qZWt0YXJjaGl2IHVudGVyIEJlbnV0enVuZyB2b25cbiIKKyJlaW4gUmVtb3RlLVJlcG9zaXRvcnkgdW50ZXIgQmVudXR6dW5nIHZvblxuIgogIlxuIgogIiAgICBnaXQgcmVtb3RlIGFkZCA8TmFtZT4gPFVSTD5cbiIKICJcbiIKLSJ1bmQgdmVyc2VuZGVuIGRhbm4gdW50ZXIgQmVudXR6dW5nIGRpZXNlcyBOYW1lbnNcbiIKKyJ1bmQgZsO8aHJlbiBcInB1c2hcIiBkYW5uIHVudGVyIEJlbnV0enVuZyBkaWVzZXMgTmFtZW5zIGF1c1xuIgogIlxuIgogIiAgICBnaXQgcHVzaCA8TmFtZT5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ3CisjOiBidWlsdGluL3B1c2guYzozNzMKIG1zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLWFsbCB1bmQgLS10YWdzIHNpbmQgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ4CisjOiBidWlsdGluL3B1c2guYzozNzQKIG1zZ2lkICItLWFsbCBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgotbXNnc3RyICIiCi0iRGllIE9wdGlvbiAtLWFsbCBrYW5uIG5pY2h0IG1pdCBSZWZlcmVuenNwZXppZmlrYXRpb25lbiBrb21iaW5pZXJ0IHdlcmRlbi4iCittc2dzdHIgIkRpZSBPcHRpb24gLS1hbGwga2FubiBuaWNodCBtaXQgUmVmc3BlY3Mga29tYmluaWVydCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL3B1c2guYzozNTMKKyM6IGJ1aWx0aW4vcHVzaC5jOjM3OQogbXNnaWQgIi0tbWlycm9yIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiRGllIE9wdGlvbmVuIC0tbWlycm9yIHVuZCAtLXRhZ3Mgc2luZCBpbmtvbXBhdGliZWwuIgogCi0jOiBidWlsdGluL3B1c2guYzozNTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MAogbXNnaWQgIi0tbWlycm9yIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCi1tc2dzdHIgIiIKLSJEaWUgT3B0aW9uIC0tbWlycm9yIGthbm4gbmljaHQgbWl0IFJlZmVyZW56c3BlemlmaWthdGlvbmVuIGtvbWJpbmllcnQgd2VyZGVuLiIKK21zZ3N0ciAiRGllIE9wdGlvbiAtLW1pcnJvciBrYW5uIG5pY2h0IG1pdCBSZWZzcGVjcyBrb21iaW5pZXJ0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1OQorIzogYnVpbHRpbi9wdXNoLmM6Mzg1CiBtc2dpZCAiLS1hbGwgYW5kIC0tbWlycm9yIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLWFsbCB1bmQgLS1taXJyb3Igc2luZCBpbmtvbXBhdGliZWwuIgogCi0jOiBidWlsdGluL3B1c2guYzo0MTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NQogbXNnaWQgInJlcG9zaXRvcnkiCi1tc2dzdHIgIlByb2pla3RhcmNoaXYiCittc2dzdHIgIlJlcG9zaXRvcnkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMAorIzogYnVpbHRpbi9wdXNoLmM6NDQ2CiBtc2dpZCAicHVzaCBhbGwgcmVmcyIKIG1zZ3N0ciAidmVyc2VuZGV0IGFsbGUgUmVmZXJlbnplbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIxCisjOiBidWlsdGluL3B1c2guYzo0NDcKIG1zZ2lkICJtaXJyb3IgYWxsIHJlZnMiCiBtc2dzdHIgInNwaWVnZWx0IGFsbGUgUmVmZXJlbnplbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIzCisjOiBidWlsdGluL3B1c2guYzo0NDkKIG1zZ2lkICJkZWxldGUgcmVmcyIKIG1zZ3N0ciAibMO2c2NodCBSZWZlcmVuemVuIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAogbXNnaWQgInB1c2ggdGFncyAoY2FuJ3QgYmUgdXNlZCB3aXRoIC0tYWxsIG9yIC0tbWlycm9yKSIKLW1zZ3N0ciAiIgotInZlcnNlbmRldCBNYXJraWVydW5nZW4gKGthbm4gbmljaHQgbWl0IC0tYWxsIG9kZXIgLS1taXJyb3IgdmVyd2VuZGV0IHdlcmRlbikiCittc2dzdHIgInZlcnNlbmRldCBUYWdzIChrYW5uIG5pY2h0IG1pdCAtLWFsbCBvZGVyIC0tbWlycm9yIHZlcndlbmRldCB3ZXJkZW4pIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MwogbXNnaWQgImZvcmNlIHVwZGF0ZXMiCiBtc2dzdHIgImVyendpbmd0IEFrdHVhbGlzaWVydW5nIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NAogbXNnaWQgImNoZWNrIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyOQorIzogYnVpbHRpbi9wdXNoLmM6NDU1CiBtc2dpZCAiY29udHJvbCByZWN1cnNpdmUgcHVzaGluZyBvZiBzdWJtb2R1bGVzIgotbXNnc3RyICJzdGV1ZXJ0IHJla3Vyc2l2ZXMgVmVyc2VuZGVuIHZvbiBVbnRlcnByb2pla3RlbiIKK21zZ3N0ciAic3RldWVydCByZWt1cnNpdmVuIFwicHVzaFwiIHZvbiBTdWJtb2R1bGVuIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgInVzZSB0aGluIHBhY2siCiBtc2dzdHIgInZlcndlbmRldCBrbGVpbmVyZSBQYWtldGUiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzMiBidWlsdGluL3B1c2guYzo0MzMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1OCBidWlsdGluL3B1c2guYzo0NTkKIG1zZ2lkICJyZWNlaXZlIHBhY2sgcHJvZ3JhbSIKIG1zZ3N0ciAiJ3JlY2VpdmUgcGFjaycgUHJvZ3JhbW0iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNAorIzogYnVpbHRpbi9wdXNoLmM6NDYwCiBtc2dpZCAic2V0IHVwc3RyZWFtIGZvciBnaXQgcHVsbC9zdGF0dXMiCi1tc2dzdHIgInNldHp0IGV4dGVybmVzIFByb2pla3RhcmNoaXYgZsO8ciBcImdpdCBwdWxsL3N0YXR1c1wiIgorbXNnc3RyICJzZXR6dCBVcHN0cmVhbSBmw7xyIFwiZ2l0IHB1bGwvc3RhdHVzXCIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNworIzogYnVpbHRpbi9wdXNoLmM6NDYzCiBtc2dpZCAicHJ1bmUgbG9jYWxseSByZW1vdmVkIHJlZnMiCiBtc2dzdHIgImVudGZlcm50IGxva2FsIGdlbMO2c2NodGUgUmVmZXJlbnplbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM5CisjOiBidWlsdGluL3B1c2guYzo0NjUKIG1zZ2lkICJieXBhc3MgcHJlLXB1c2ggaG9vayIKIG1zZ3N0ciAidW1nZWh0IFwicHJlLXB1c2ggaG9va1wiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgogbXNnaWQgInB1c2ggbWlzc2luZyBidXQgcmVsZXZhbnQgdGFncyIKLW1zZ3N0ciAidmVyc2VuZGV0IGZlaGxlbmRlLCBhYmVyIHJlbGV2YW50ZSBNYXJraWVydW5nZW4iCittc2dzdHIgInZlcnNlbmRldCBmZWhsZW5kZSwgYWJlciByZWxldmFudGUgVGFncyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUwCisjOiBidWlsdGluL3B1c2guYzo0NzYKIG1zZ2lkICItLWRlbGV0ZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFsbCwgLS1taXJyb3IgYW5kIC0tdGFncyIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLWRlbGV0ZSBpc3QgaW5rb21wYXRpYmVsIG1pdCAtLWFsbCwgLS1taXJyb3IgdW5kIC0tdGFncy4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MgorIzogYnVpbHRpbi9wdXNoLmM6NDc4CiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1kZWxldGUga2FubiBudXIgbWl0IFJlZmVyZW56ZW4gdmVyd2VuZGV0IHdlcmRlbi4iCiAKQEAgLTc3NTgsNzYgKzc5NzMsODMgQEAKIG1zZ3N0ciAiIgogImdpdCByZWFkLXRyZWUgW1stbSBbLS10cml2aWFsXSBbLS1hZ2dyZXNzaXZlXSB8IC0tcmVzZXQgfCAtLXByZWZpeD08UHJlZml4Pl0gIgogIlstdSBbLS1leGNsdWRlLXBlci1kaXJlY3Rvcnk9PGdpdGlnbm9yZT5dIHwgLWldXSBbLS1uby1zcGFyc2UtY2hlY2tvdXRdIFstLSIKLSJpbmRleC1vdXRwdXQ9PERhdGVpPl0gKC0tZW1wdHkgfCA8VmVyc2lvbnNyZWZlcmVuejE+IFs8VmVyc2lvbnNyZWZlcmVuejI+ICIKLSJbPFZlcnNpb25zcmVmZXJlbnozPl1dKSIKKyJpbmRleC1vdXRwdXQ9PERhdGVpPl0gKC0tZW1wdHkgfCA8Q29tbWl0LVJlZmVyZW56MT4gWzxDb21taXQtUmVmZXJlbnoyPiAiCisiWzxDb21taXQtUmVmZXJlbnozPl1dKSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA5CiBtc2dpZCAid3JpdGUgcmVzdWx0aW5nIGluZGV4IHRvIDxmaWxlPiIKLW1zZ3N0ciAic2NocmVpYnQgcmVzdWx0aWVyZW5kZSBCZXJlaXRzdGVsbHVuZyBuYWNoIDxEYXRlaT4iCittc2dzdHIgInNjaHJlaWJ0IHJlc3VsdGllcmVuZGUgU3RhZ2luZy1BcmVhIG5hY2ggPERhdGVpPiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTEKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEyCiBtc2dpZCAib25seSBlbXB0eSB0aGUgaW5kZXgiCi1tc2dzdHIgImxlZXJ0IGRpZSBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAibGVlcnQgZGllIFN0YWdpbmctQXJlYSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE0CiBtc2dpZCAiTWVyZ2luZyIKLW1zZ3N0ciAiWnVzYW1tZW5mw7xocnVuZyIKK21zZ3N0ciAiTWVyZ2UiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNgogbXNnaWQgInBlcmZvcm0gYSBtZXJnZSBpbiBhZGRpdGlvbiB0byBhIHJlYWQiCi1tc2dzdHIgImbDvGhydCBlaW5lIFp1c2FtbWVuZsO8aHJ1bmcgenVzw6R0emxpY2ggenVtIExlc2VuIGF1cyIKK21zZ3N0ciAiZsO8aHJ0IGVpbmVuIE1lcmdlIHp1c8OkdHpsaWNoIHp1bSBMZXNlbiBhdXMiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE3CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExOAogbXNnaWQgIjMtd2F5IG1lcmdlIGlmIG5vIGZpbGUgbGV2ZWwgbWVyZ2luZyByZXF1aXJlZCIKLW1zZ3N0ciAiIgotIjMtV2VnZS1adXNhbW1lbmbDvGhydW5nLCB3ZW5uIGtlaW5lIFp1c2FtbWVuZsO8aHJ1bmcgYXVmIERhdGVpZWJlbmUgIgotImVyZm9yZGVybGljaCBpc3QiCittc2dzdHIgIjMtV2VnZS1NZXJnZSwgd2VubiBrZWluIE1lcmdlIGF1ZiBEYXRlaWViZW5lIGVyZm9yZGVybGljaCBpc3QiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMAogbXNnaWQgIjMtd2F5IG1lcmdlIGluIHByZXNlbmNlIG9mIGFkZHMgYW5kIHJlbW92ZXMiCi1tc2dzdHIgIiIKLSIzLVdlZ2UtWnVzYW1tZW5mw7xocnVuZyBiZWkgVm9yaGFuZGVuc2VpbiB2b24gaGluenVnZWbDvGd0ZW4vZW50ZmVybnRlbiBaZWlsZW4iCittc2dzdHIgIjMtV2VnZS1NZXJnZSBiZWkgVm9yaGFuZGVuc2VpbiB2b24gaGluenVnZWbDvGd0ZW4vZW50ZmVybnRlbiBaZWlsZW4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIxCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMgogbXNnaWQgInNhbWUgYXMgLW0sIGJ1dCBkaXNjYXJkIHVubWVyZ2VkIGVudHJpZXMiCiBtc2dzdHIgImdlbmF1IHdpZSAtbSwgdmVyd2lyZnQgYWJlciBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBFaW50csOkZ2UiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIyCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMwogbXNnaWQgIjxzdWJkaXJlY3Rvcnk+LyIKIG1zZ3N0ciAiPFVudGVydmVyemVpY2huaXM+LyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI0CiBtc2dpZCAicmVhZCB0aGUgdHJlZSBpbnRvIHRoZSBpbmRleCB1bmRlciA8c3ViZGlyZWN0b3J5Pi8iCi1tc2dzdHIgImxpZXN0IGRlbiBCYXVtIGluIGRpZSBCZXJlaXRzdGVsbHVuZyB1bnRlciA8VW50ZXJ2ZXJ6ZWljaG5pcz4vIgorbXNnc3RyICJsaWVzdCBkYXMgVmVyemVpY2huaXMgaW4gZGllIFN0YWdpbmctQXJlYSB1bnRlciA8VW50ZXJ2ZXJ6ZWljaG5pcz4vIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjcKIG1zZ2lkICJ1cGRhdGUgd29ya2luZyB0cmVlIHdpdGggbWVyZ2UgcmVzdWx0IgotbXNnc3RyICJha3R1YWxpc2llcnQgQXJiZWl0c2JhdW0gbWl0IEVyZ2VibmlzIGRlciBadXNhbW1lbmbDvGhydW5nIgorbXNnc3RyICJha3R1YWxpc2llcnQgQXJiZWl0c3ZlcnplaWNobmlzIG1pdCBkZW0gRXJnZWJuaXMgZGVzIE1lcmdlcyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CiBtc2dpZCAiZ2l0aWdub3JlIgogbXNnc3RyICJnaXRpZ25vcmUiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMAogbXNnaWQgImFsbG93IGV4cGxpY2l0bHkgaWdub3JlZCBmaWxlcyB0byBiZSBvdmVyd3JpdHRlbiIKIG1zZ3N0ciAiZXJsYXVidCBleHBsaXppdCBpZ25vcmllcnRlIERhdGVpZW4genUgw7xiZXJzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMyCi1tc2dpZCAiZG9uJ3QgY2hlY2sgdGhlIHdvcmtpbmcgdHJlZSBhZnRlciBtZXJnaW5nIgotbXNnc3RyICJwcsO8ZnQgbmljaHQgZGVuIEFyYmVpdHNiYXVtIG5hY2ggZGVyIFp1c2FtbWVuZsO8aHJ1bmciCi0KICM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMzCi1tc2dpZCAiZG9uJ3QgdXBkYXRlIHRoZSBpbmRleCBvciB0aGUgd29yayB0cmVlIgotbXNnc3RyICJha3R1YWxpc2llcnQgd2VkZXIgZGllIEJlcmVpdHN0ZWxsdW5nLCBub2NoIGRlbiBBcmJlaXRzYmF1bSIKK21zZ2lkICJkb24ndCBjaGVjayB0aGUgd29ya2luZyB0cmVlIGFmdGVyIG1lcmdpbmciCittc2dzdHIgInByw7xmdCBuaWNodCBkYXMgQXJiZWl0c3ZlcnplaWNobmlzIG5hY2ggZGVtIE1lcmdlIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzQKK21zZ2lkICJkb24ndCB1cGRhdGUgdGhlIGluZGV4IG9yIHRoZSB3b3JrIHRyZWUiCittc2dzdHIgImFrdHVhbGlzaWVydCB3ZWRlciBkaWUgU3RhZ2luZy1BcmVhLCBub2NoIGRhcyBBcmJlaXRzdmVyemVpY2huaXMiCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM2CiBtc2dpZCAic2tpcCBhcHBseWluZyBzcGFyc2UgY2hlY2tvdXQgZmlsdGVyIgogbXNnc3RyICLDvGJlcnNwcmluZ3QgQW53ZW5kdW5nIGRlcyBGaWx0ZXJzIGbDvHIgc3DDpHJsaWNoZXMgQXVzY2hlY2tlbiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzcKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM4CiBtc2dpZCAiZGVidWcgdW5wYWNrLXRyZWVzIgogbXNnc3RyICJwcm90b2tvbGxpZXJ0IEVudHBhY2tlbiBkZXIgQsOkdW1lIgogCisjOiBidWlsdGluL3JlZmxvZy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlcycgZm9yICclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgorbXNnc3RyICInJXMnIGbDvHIgJyVzJyBpc3Qga2VpbiBnw7xsdGlnZXIgWmVpdHN0ZW1wZWwiCisKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NjE2IGJ1aWx0aW4vcmVmbG9nLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgorbXNnc3RyICInJXMnIGlzdCBrZWluIGfDvGx0aWdlciBaZWl0c3RlbXBlbCIKKwogIzogYnVpbHRpbi9yZW1vdGUuYzoxMQogbXNnaWQgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSIKIG1zZ3N0ciAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIgpAQCAtNzgzNyw3ICs4MDU5LDcgQEAKICJnaXQgcmVtb3RlIGFkZCBbLXQgPGJyYW5jaD5dIFstbSA8bWFzdGVyPl0gWy1mXSBbLS10YWdzfC0tbm8tdGFnc10gWy0tIgogIm1pcnJvcj08ZmV0Y2h8cHVzaD5dIDxuYW1lPiA8dXJsPiIKIG1zZ3N0ciAiIgotImdpdCByZW1vdGUgYWRkIFstdCA8WndlaWc+XSBbLW0gPG1hc3Rlcj5dIFstZl0gWy0tdGFnc3wtLW5vLXRhZ3NdIFstLSIKKyJnaXQgcmVtb3RlIGFkZCBbLXQgPEJyYW5jaD5dIFstbSA8bWFzdGVyPl0gWy1mXSBbLS10YWdzfC0tbm8tdGFnc10gWy0tIgogIm1pcnJvcj08ZmV0Y2h8cHVzaD5dIDxOYW1lPiA8VVJMPiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMyBidWlsdGluL3JlbW90ZS5jOjMyCkBAIC03ODUwLDcgKzgwNzIsNyBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE1IGJ1aWx0aW4vcmVtb3RlLmM6NDIKIG1zZ2lkICJnaXQgcmVtb3RlIHNldC1oZWFkIDxuYW1lPiAoLWEgfCAtZCB8IDxicmFuY2g+KSIKLW1zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8TmFtZT4gKC1hIHwgLWQgfCA8WndlaWc+KSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8TmFtZT4gKC1hIHwgLWQgfCA8QnJhbmNoPikiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTYKIG1zZ2lkICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0gc2hvdyBbLW5dIDxuYW1lPiIKQEAgLTc4NjQsMTIgKzgwODYsMTEgQEAKIG1zZ2lkICIiCiAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxncm91cD4gfCA8cmVtb3RlPikuLi5dIgogbXNnc3RyICIiCi0iZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxHcnVwcGU+IHwgIgotIjxleHRlcm5lc1Byb2pla3RhcmNoaXY+KS4uLl0iCisiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxHcnVwcGU+IHwgPFJlbW90ZT4pLi4uXSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxOQogbXNnaWQgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIFstLWFkZF0gPG5hbWU+IDxicmFuY2g+Li4uIgotbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyBbLS1hZGRdIDxOYW1lPiA8WndlaWc+Li4uIgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyBbLS1hZGRdIDxOYW1lPiA8QnJhbmNoPi4uLiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoyMCBidWlsdGluL3JlbW90ZS5jOjY4CiBtc2dpZCAiZ2l0IHJlbW90ZSBzZXQtdXJsIFstLXB1c2hdIDxuYW1lPiA8bmV3dXJsPiBbPG9sZHVybD5dIgpAQCAtNzg4OSwxMSArODExMCwxMSBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjQ3CiBtc2dpZCAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgPG5hbWU+IDxicmFuY2g+Li4uIgotbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyA8TmFtZT4gPFp3ZWlnPi4uLiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgPE5hbWU+IDxCcmFuY2g+Li4uIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjQ4CiBtc2dpZCAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgLS1hZGQgPG5hbWU+IDxicmFuY2g+Li4uIgotbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyAtLWFkZCA8TmFtZT4gPFp3ZWlnPi4uLiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgLS1hZGQgPE5hbWU+IDxCcmFuY2g+Li4uIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjUzCiBtc2dpZCAiZ2l0IHJlbW90ZSBzaG93IFs8b3B0aW9ucz5dIDxuYW1lPiIKQEAgLTc5MDUsNyArODEyNiw3IEBACiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6NjMKIG1zZ2lkICJnaXQgcmVtb3RlIHVwZGF0ZSBbPG9wdGlvbnM+XSBbPGdyb3VwPiB8IDxyZW1vdGU+XS4uLiIKLW1zZ3N0ciAiZ2l0IHJlbW90ZSB1cGRhdGUgWzxPcHRpb25lbj5dIFs8R3J1cHBlPiB8IDxleHRlcm5lc1Byb2pla3RhcmNoaXY+XS4uLiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSB1cGRhdGUgWzxPcHRpb25lbj5dIFs8R3J1cHBlPiB8IDxleHRlcm5lc1JlcG9zaXRvcnk+XS4uLiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo5OAogIywgYy1mb3JtYXQKQEAgLTc5MjcsMTEgKzgxNDgsMTEgQEAKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjMKIG1zZ2lkICJmZXRjaCB0aGUgcmVtb3RlIGJyYW5jaGVzIgotbXNnc3RyICJmb3JkZXJ0IGRpZSBleHRlcm5lbiBad2VpZ2UgYW4iCittc2dzdHIgImZvcmRlcnQgZGllIFJlbW90ZS1CcmFuY2hlcyBhbiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjUKIG1zZ2lkICJpbXBvcnQgYWxsIHRhZ3MgYW5kIGFzc29jaWF0ZWQgb2JqZWN0cyB3aGVuIGZldGNoaW5nIgotbXNnc3RyICJpbXBvcnRpZXJ0IGFsbGUgTWFya2llcnVuZ2VuIHVuZCB2ZXJidW5kZW5lIE9iamVrdGUgYmVpbSBBbmZvcmRlcm4iCittc2dzdHIgImltcG9ydGllcnQgYWxsZSBUYWdzIHVuZCB2ZXJidW5kZW5lIE9iamVrdGUgYmVpbSBBbmZvcmRlcm4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY4CiBtc2dpZCAib3IgZG8gbm90IGZldGNoIGFueSB0YWcgYXQgYWxsICgtLW5vLXRhZ3MpIgpAQCAtNzkzOSwxMSArODE2MCwxMSBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE3MAogbXNnaWQgImJyYW5jaChlcykgdG8gdHJhY2siCi1tc2dzdHIgIlp3ZWlnZSB6dXIgw5xiZXJuYWhtZSIKK21zZ3N0ciAiQnJhbmNoKGVzKSB6dXIgw5xiZXJuYWhtZSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNzEKIG1zZ2lkICJtYXN0ZXIgYnJhbmNoIgotbXNnc3RyICJIYXVwdHp3ZWlnIgorbXNnc3RyICJIYXVwdGJyYW5jaCIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNzIKIG1zZ2lkICJwdXNofGZldGNoIgpAQCAtNzk1MiwzNCArODE3MywzNSBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNzMKIG1zZ2lkICJzZXQgdXAgcmVtb3RlIGFzIGEgbWlycm9yIHRvIHB1c2ggdG8gb3IgZmV0Y2ggZnJvbSIKIG1zZ3N0ciAiIgotIkF1ZnNldHplbiBkZXMgRmVybmFyY2hpdnMgYWxzIFNwaWVnZWxhcmNoaXYgenVtIFZlcnNlbmRlbiB1bmQgQW5mb3JkZXJuIgorIkF1ZnNldHplbiBkZXMgUmVtb3RlLVJlcG9zaXRvcmllcyBhbHMgU3BpZWdlbC1SZXBvc2l0b3J5IGbDvHIgXCJwdXNoXCIgdW5kICIKKyJcImZldGNoXCIiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTg1CiBtc2dpZCAic3BlY2lmeWluZyBhIG1hc3RlciBicmFuY2ggbWFrZXMgbm8gc2Vuc2Ugd2l0aCAtLW1pcnJvciIKIG1zZ3N0ciAiIgotIkRpZSBPcHRpb24gLS1taXJyb3Iga2FubiBuaWNodCBtaXQgZGVyIEFuZ2FiZSBlaW5lcyBIYXVwdHp3ZWlnZXMgdmVyd2VuZGV0ICIKKyJEaWUgT3B0aW9uIC0tbWlycm9yIGthbm4gbmljaHQgbWl0IGRlciBBbmdhYmUgZWluZXMgSGF1cHRicmFuY2hlcyB2ZXJ3ZW5kZXQgIgogIndlcmRlbi4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTg3CiBtc2dpZCAic3BlY2lmeWluZyBicmFuY2hlcyB0byB0cmFjayBtYWtlcyBzZW5zZSBvbmx5IHdpdGggZmV0Y2ggbWlycm9ycyIKIG1zZ3N0ciAiIgotIkRpZSBBbmdhYmUgdm9uIHp1IGZvbGdlbmRlbiBad2VpZ2VuIGthbm4gbnVyIG1pdCBkZW0gQW5mb3JkZXJuIHZvbiAiCisiRGllIEFuZ2FiZSB2b24genUgZm9sZ2VuZGVuIEJyYW5jaGVzIGthbm4gbnVyIG1pdCBkZW0gQW5mb3JkZXJuIHZvbiAiCiAiU3BpZWdlbGFyY2hpdmVuIHZlcndlbmRldCB3ZXJkZW4uIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE5NSBidWlsdGluL3JlbW90ZS5jOjY0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW1vdGUgJXMgYWxyZWFkeSBleGlzdHMuIgotbXNnc3RyICJleHRlcm5lcyBQcm9qZWt0YXJjaGl2ICVzIGV4aXN0aWVydCBiZXJlaXRzIgorbXNnc3RyICJleHRlcm5lcyBSZXBvc2l0b3J5ICVzIGV4aXN0aWVydCBiZXJlaXRzIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE5OSBidWlsdGluL3JlbW90ZS5jOjY1MAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIHJlbW90ZSBuYW1lIgotbXNnc3RyICInJXMnIGlzdCBrZWluIGfDvGx0aWdlciBOYW1lIGbDvHIgZWluIGV4dGVybmVzIFByb2pla3RhcmNoaXYiCittc2dzdHIgIiclcycgaXN0IGtlaW4gZ8O8bHRpZ2VyIE5hbWUgZsO8ciBlaW4gUmVtb3RlLVJlcG9zaXRvcnkiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBzZXR1cCBtYXN0ZXIgJyVzJyIKLW1zZ3N0ciAiS29ubnRlIHN5bWJvbGlzY2hlIFJlZmVyZW56IGbDvHIgSGF1cHR6d2VpZyB2b24gJyVzJyBuaWNodCBlaW5yaWNodGVuIgorbXNnc3RyICJLb25udGUgc3ltYm9saXNjaGUgUmVmZXJlbnogZsO8ciBIYXVwdGJyYW5jaCB2b24gJyVzJyBuaWNodCBlaW5yaWNodGVuIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjI5OQogIywgYy1mb3JtYXQKQEAgLTc5ODksNyArODIxMSw3IEBACiAjOiBidWlsdGluL3JlbW90ZS5jOjMzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZ2V0IGZldGNoIG1hcCBmb3IgcmVmc3BlYyAlcyIKLW1zZ3N0ciAiS29ubnRlIEFiaG9sdW5nc3p1b3JkbnVuZyBmw7xyIFJlZmVyZW56c3BlemlmaWthdGlvbiAlcyBuaWNodCBiZWtvbW1lbiIKK21zZ3N0ciAiS29ubnRlIEZldGNoLU1hcCBmw7xyIFJlZnNwZWMgJXMgbmljaHQgYmVrb21tZW4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6NDQwIGJ1aWx0aW4vcmVtb3RlLmM6NDQ4CiBtc2dpZCAiKG1hdGNoaW5nKSIKQEAgLTgwMDcsNyArODIyOSw3IEBACiAjOiBidWlsdGluL3JlbW90ZS5jOjYzOSBidWlsdGluL3JlbW90ZS5jOjc5MiBidWlsdGluL3JlbW90ZS5jOjg5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZTogJXMiCi1tc2dzdHIgIktlaW4gc29sY2hlcyBleHRlcm5lcyBBcmNoaXY6ICVzIgorbXNnc3RyICJLZWluIHNvbGNoZXMgUmVtb3RlLVJlcG9zaXRvcnk6ICVzIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjY1NgogIywgYy1mb3JtYXQKQEAgLTgwMjYsOCArODI0OCw3IEBACiAiXHQlc1xuIgogIlx0UGxlYXNlIHVwZGF0ZSB0aGUgY29uZmlndXJhdGlvbiBtYW51YWxseSBpZiBuZWNlc3NhcnkuIgogbXNnc3RyICIiCi0iS2VpbmUgQWt0dWFsaXNpZXJ1bmcgZGVyIG5pY2h0IHN0YW5kYXJkbcOkw59pZ2VuIFJlZmVyZW56c3BlemlmaWthdGlvbiB6dW0gIgotIkFiaG9sZW5cbiIKKyJLZWluZSBBa3R1YWxpc2llcnVuZyBkZXIgbmljaHQgc3RhbmRhcmRtw6TDn2lnZW4gUmVmc3BlYyBmw7xyIFwiZmV0Y2hcIlxuIgogIlx0JXNcbiIKICJcdEJpdHRlIGFrdHVhbGlzaWVyZW4gU2llLCBmYWxscyBub3R3ZW5kaWcsIGRpZSBLb25maWd1cmF0aW9uIG1hbnVlbGwuIgogCkBAIC04MDU0LDcgKzgyNzUsNyBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzo3NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlbW92ZSBicmFuY2ggJXMiCi1tc2dzdHIgIktvbm50ZSBad2VpZyAlcyBuaWNodCBsw7ZzY2hlbiIKK21zZ3N0ciAiS29ubnRlIEJyYW5jaCAlcyBuaWNodCBsw7ZzY2hlbiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo4MzQKIG1zZ2lkICIiCkBAIC04MDY0LDE4ICs4Mjg1LDE4IEBACiAiTm90ZTogU29tZSBicmFuY2hlcyBvdXRzaWRlIHRoZSByZWZzL3JlbW90ZXMvIGhpZXJhcmNoeSB3ZXJlIG5vdCByZW1vdmVkO1xuIgogInRvIGRlbGV0ZSB0aGVtLCB1c2U6IgogbXNnc3RyWzBdICIiCi0iSGlud2VpczogRWluIFp3ZWlnIGF1w59lcmhhbGIgZGVyIC9yZWZzL3JlbW90ZXMvIEhpZXJhY2hpZSB3dXJkZSBuaWNodCAiCisiSGlud2VpczogRWluIEJyYW5jaCBhdcOfZXJoYWxiIGRlciByZWZzL3JlbW90ZXMvIEhpZXJhY2hpZSB3dXJkZSBuaWNodCAiCiAiZ2Vsw7ZzY2h0O1xuIgogInVtIGRpZXNlbiB6dSBsw7ZzY2hlbiwgYmVudXR6ZW4gU2llOiIKIG1zZ3N0clsxXSAiIgotIkhpbndlaXM6IEVpbmlnZSBad2VpZ2UgYXXDn2VyIGRlciAvcmVmcy9yZW1vdGVzLyBIaWVyYXJjaGllIHd1cmRlbiBuaWNodCAiCisiSGlud2VpczogRWluaWdlIEJyYW5jaGVzIGF1w59lciBkZXIgcmVmcy9yZW1vdGVzLyBIaWVyYXJjaGllIHd1cmRlbiBuaWNodCAiCiAiZW50ZmVybnQ7XG4iCiAidW0gZGllc2UgenUgZW50ZmVybmVuLCBiZW51dHplbiBTaWU6IgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjk0MwogIywgYy1mb3JtYXQKIG1zZ2lkICIgbmV3IChuZXh0IGZldGNoIHdpbGwgc3RvcmUgaW4gcmVtb3Rlcy8lcykiCi1tc2dzdHIgIiBuZXUgKHdpcmQgYmVpIG7DpGNoc3RlciBBYmhvbHVuZyBpbiByZW1vdGVzLyVzIGdlc3BlaWNoZXJ0KSIKK21zZ3N0ciAiIG5ldSAod2lyZCBiZWkgbsOkY2hzdGVtIFwiZmV0Y2hcIiBpbiByZW1vdGVzLyVzIGdlc3BlaWNoZXJ0KSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo5NDYKIG1zZ2lkICIgdHJhY2tlZCIKQEAgLTgwOTIsMzAgKzgzMTMsMzAgQEAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6OTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgYnJhbmNoLiVzLm1lcmdlOyBjYW5ub3QgcmViYXNlIG9udG8gPiAxIGJyYW5jaCIKLW1zZ3N0ciAidW5nw7xsdGlnZXMgYnJhbmNoLiVzLm1lcmdlOyBrYW5uIG5pY2h0IGF1ZiA+IDEgWndlaWcgbmV1IGF1ZmJhdWVuIgorbXNnc3RyICJ1bmfDvGx0aWdlcyBicmFuY2guJXMubWVyZ2U7IGthbm4gUmViYXNlIG5pY2h0IGF1ZiA+IDEgQnJhbmNoIGF1c2bDvGhyZW4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6OTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYmFzZXMgb250byByZW1vdGUgJXMiCi1tc2dzdHIgImJhdXQgbmV1IGF1ZiBleHRlcm5lbiBad2VpZyAlcyBhdWYiCittc2dzdHIgIlJlYmFzZSBhdWYgUmVtb3RlLUJyYW5jaCAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMDAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiBtZXJnZXMgd2l0aCByZW1vdGUgJXMiCi1tc2dzdHIgIiBmw7xocnQgbWl0IGV4dGVybmVtIFp3ZWlnICVzIHp1c2FtbWVuIgorbXNnc3RyICIgZsO8aHJ0IG1pdCBSZW1vdGUtQnJhbmNoICVzIHp1c2FtbWVuIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEwMDIKIG1zZ2lkICIgICAgYW5kIHdpdGggcmVtb3RlIgotbXNnc3RyICIgICAgdW5kIG1pdCBleHRlcm5lbSBad2VpZyIKK21zZ3N0ciAiICAgIHVuZCBtaXQgUmVtb3RlLUJyYW5jaCIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMDA0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1lcmdlcyB3aXRoIHJlbW90ZSAlcyIKLW1zZ3N0ciAiZsO8aHJ0IG1pdCBleHRlcm5lbSBad2VpZyAlcyB6dXNhbW1lbiIKK21zZ3N0ciAiZsO8aHJ0IG1pdCBSZW1vdGUtQnJhbmNoICVzIHp1c2FtbWVuIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEwMDUKIG1zZ2lkICIgICBhbmQgd2l0aCByZW1vdGUiCi1tc2dzdHIgIiAgIHVuZCBtaXQgZXh0ZXJuZW0gWndlaWciCittc2dzdHIgIiAgIHVuZCBtaXQgUmVtb3RlLUJyYW5jaCIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMDUxCiBtc2dpZCAiY3JlYXRlIgpAQCAtODE1OSwxMiArODM4MCwxMiBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEwOTEKIG1zZ2lkICJkbyBub3QgcXVlcnkgcmVtb3RlcyIKLW1zZ3N0ciAia2VpbmUgQWJmcmFnZSB2b24gRmVybmFyY2hpdmVuIgorbXNnc3RyICJrZWluZSBBYmZyYWdlIHZvbiBSZW1vdGUtUmVwb3NpdG9yaWVzIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjExMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiKiByZW1vdGUgJXMiCi1tc2dzdHIgIiogZXh0ZXJuZXMgUHJvamVrdGFyY2hpdiAlcyIKK21zZ3N0ciAiKiBSZW1vdGUtUmVwb3NpdG9yeSAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMTE5CiAjLCBjLWZvcm1hdApAQCAtODE4MywyMiArODQwNCwyMiBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMTMzIGJ1aWx0aW4vcmVtb3RlLmM6MTEzNSBidWlsdGluL3JlbW90ZS5jOjExMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiICBIRUFEIGJyYW5jaDogJXMiCi1tc2dzdHIgIiAgSGF1cHR6d2VpZzogJXMiCittc2dzdHIgIiAgSGF1cHRicmFuY2g6ICVzIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjExMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiAgSEVBRCBicmFuY2ggKHJlbW90ZSBIRUFEIGlzIGFtYmlndW91cywgbWF5IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nKTpcbiIKIG1zZ3N0ciAiIgotIiAgSGF1cHR6d2VpZyAoZXh0ZXJuZXIgSGF1cHR6d2VpZyBpc3QgbWVocmRldXRpZywga8O2bm50ZSBlaW5lciBkZXIgZm9sZ2VuZGVuICIKKyIgIEhhdXB0YnJhbmNoIChleHRlcm5lciBIRUFEIGlzdCBtZWhyZGV1dGlnLCBrw7ZubnRlIGVpbmVyIGRlciBmb2xnZW5kZW4gIgogInNlaW4pOlxuIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjExNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiICBSZW1vdGUgYnJhbmNoOiVzIgogbXNnaWRfcGx1cmFsICIgIFJlbW90ZSBicmFuY2hlczolcyIKLW1zZ3N0clswXSAiICBleHRlcm5lciBad2VpZzolcyIKLW1zZ3N0clsxXSAiICBleHRlcm5lIFp3ZWlnZTolcyIKK21zZ3N0clswXSAiICBSZW1vdGUtQnJhbmNoOiVzIgorbXNnc3RyWzFdICIgIFJlbW90ZS1CcmFuY2hlczolcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMTU0IGJ1aWx0aW4vcmVtb3RlLmM6MTE4MQogbXNnaWQgIiAoc3RhdHVzIG5vdCBxdWVyaWVkKSIKQEAgLTgyMDcsOCArODQyOCw4IEBACiAjOiBidWlsdGluL3JlbW90ZS5jOjExNjMKIG1zZ2lkICIgIExvY2FsIGJyYW5jaCBjb25maWd1cmVkIGZvciAnZ2l0IHB1bGwnOiIKIG1zZ2lkX3BsdXJhbCAiICBMb2NhbCBicmFuY2hlcyBjb25maWd1cmVkIGZvciAnZ2l0IHB1bGwnOiIKLW1zZ3N0clswXSAiICBMb2thbGVyIFp3ZWlnIGtvbmZpZ3VyaWVydCBmw7xyICdnaXQgcHVsbCc6IgotbXNnc3RyWzFdICIgIExva2FsZSBad2VpZ2Uga29uZmlndXJpZXJ0IGbDvHIgJ2dpdCBwdWxsJzoiCittc2dzdHJbMF0gIiAgTG9rYWxlciBCcmFuY2gga29uZmlndXJpZXJ0IGbDvHIgJ2dpdCBwdWxsJzoiCittc2dzdHJbMV0gIiAgTG9rYWxlIEJyYW5jaGVzIGtvbmZpZ3VyaWVydCBmw7xyICdnaXQgcHVsbCc6IgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjExNzEKIG1zZ2lkICIgIExvY2FsIHJlZnMgd2lsbCBiZSBtaXJyb3JlZCBieSAnZ2l0IHB1c2gnIgpAQCAtODIyMyw3ICs4NDQ0LDcgQEAKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMTk5CiBtc2dpZCAic2V0IHJlZnMvcmVtb3Rlcy88bmFtZT4vSEVBRCBhY2NvcmRpbmcgdG8gcmVtb3RlIgotbXNnc3RyICJzZXR6dCByZWZzL3JlbW90ZXMvPE5hbWU+L0hFQUQgZ2Vtw6TDnyBkZW0gRmVybmFyY2hpdiIKK21zZ3N0ciAic2V0enQgcmVmcy9yZW1vdGVzLzxOYW1lPi9IRUFEIGdlbcOkw58gZGVtIFJlbW90ZS1SZXBvc2l0b3J5IgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEyMDEKIG1zZ2lkICJkZWxldGUgcmVmcy9yZW1vdGVzLzxuYW1lPi9IRUFEIgpAQCAtODIzMSwxMyArODQ1MiwxMyBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEyMTYKIG1zZ2lkICJDYW5ub3QgZGV0ZXJtaW5lIHJlbW90ZSBIRUFEIgotbXNnc3RyICJLYW5uIEhhdXB0endlaWcgZGVzIGV4dGVybmVuIFByb2pla3RhcmNoaXZzIG5pY2h0IGJlc3RpbW1lbiIKK21zZ3N0ciAiS2FubiBIRUFEIGRlcyBSZW1vdGUtUmVwb3NpdG9yaWVzIG5pY2h0IGJlc3RpbW1lbiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjE4CiBtc2dpZCAiTXVsdGlwbGUgcmVtb3RlIEhFQUQgYnJhbmNoZXMuIFBsZWFzZSBjaG9vc2Ugb25lIGV4cGxpY2l0bHkgd2l0aDoiCiBtc2dzdHIgIiIKLSJNZWhyZXJlIEhhdXB0endlaWdlIGltIGV4dGVybmVuIFByb2pla3RhcmNoaXYuIEJpdHRlIHfDpGhsZW4gU2llIGV4cGxpeml0ICIKLSJlaW5lbiBhdXMgbWl0OiIKKyJNZWhyZXJlIEhhdXB0YnJhbmNoZXMgaW0gUmVtb3RlLVJlcG9zaXRvcnkuIEJpdHRlIHfDpGhsZW4gU2llIGV4cGxpeml0IGVpbmVuICIKKyJhdXMgbWl0OiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjI4CiAjLCBjLWZvcm1hdApAQCAtODI2Nyw3ICs4NDg4LDcgQEAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTI4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJQcnVuaW5nICVzIgotbXNnc3RyICJlbnRmZXJuZSB2ZXJhbHRldGUgWndlaWdlIHZvbiAlcyIKK21zZ3N0ciAiZW50ZmVybmUgdmVyYWx0ZXRlIEJyYW5jaGVzIHZvbiAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjgyCiAjLCBjLWZvcm1hdApAQCAtODI3NywzMyArODQ5OCwzMyBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAqIFt3b3VsZCBwcnVuZV0gJXMiCi1tc2dzdHIgIiAqIFt3w7xyZGUgdmVyYWx0ZXRlbiBad2VpZyBlbnRmZXJuZW5dICVzIgorbXNnc3RyICIgKiBbd8O8cmRlIHZlcmFsdGV0ZW4gQnJhbmNoIGVudGZlcm5lbl0gJXMiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTI5OAogIywgYy1mb3JtYXQKIG1zZ2lkICIgKiBbcHJ1bmVkXSAlcyIKLW1zZ3N0ciAiKiBbdmVyYWx0ZXRlbiBad2VpZyBlbnRmZXJudF0gJXMiCittc2dzdHIgIiogW3ZlcmFsdGV0ZW4gQnJhbmNoIGVudGZlcm50XSAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMzIxCiBtc2dpZCAicHJ1bmUgcmVtb3RlcyBhZnRlciBmZXRjaGluZyIKLW1zZ3N0ciAiZW50ZmVybnQgdmVyYWx0ZXRlIFp3ZWlnZSBpbSBGZXJuYXJjaGl2IG5hY2ggZGVtIEFiaG9sZW4iCittc2dzdHIgImVudGZlcm50IHZlcmFsdGV0ZSBCcmFuY2hlcyBpbSBSZW1vdGUtUmVwb3NpdG9yeSBuYWNoIFwiZmV0Y2hcIiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMzg3IGJ1aWx0aW4vcmVtb3RlLmM6MTQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZSAnJXMnIgotbXNnc3RyICJLZWluIHNvbGNoZXMgZXh0ZXJuZXMgUHJvamVrdGFyY2hpdiAnJXMnIgorbXNnc3RyICJLZWluIHNvbGNoZXMgUmVtb3RlLVJlcG9zaXRvcnkgJyVzJyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNDA3CiBtc2dpZCAiYWRkIGJyYW5jaCIKLW1zZ3N0ciAiZsO8Z3QgWndlaWcgaGluenUiCittc2dzdHIgImbDvGd0IEJyYW5jaCBoaW56dSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNDE0CiBtc2dpZCAibm8gcmVtb3RlIHNwZWNpZmllZCIKLW1zZ3N0ciAia2VpbiBleHRlcm5lcyBQcm9qZWt0YXJjaGl2IGFuZ2VnZWJlbiIKK21zZ3N0ciAia2VpbiBSZW1vdGUtUmVwb3NpdG9yeSBhbmdlZ2ViZW4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQzNgogbXNnaWQgIm1hbmlwdWxhdGUgcHVzaCBVUkxzIgotbXNnc3RyICJtYW5pcHVsaWVydCBVUkxzIHp1bSBWZXJzZW5kZW4iCittc2dzdHIgIm1hbmlwdWxpZXJ0IFVSTHMgZsO8ciBcInB1c2hcIiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNDM4CiBtc2dpZCAiYWRkIFVSTCIKQEAgLTgzMzAsNyArODU1MSw3IEBACiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQ5NwogbXNnaWQgIldpbGwgbm90IGRlbGV0ZSBhbGwgbm9uLXB1c2ggVVJMcyIKLW1zZ3N0ciAiV2VyZGUga2VpbmUgVVJMcyBlbnRmZXJuZW4sIGRpZSBuaWNodCBmw7xyIGRlbiBWZXJzYW5kIGJlc3RpbW10IHNpbmQiCittc2dzdHIgIldlcmRlIGtlaW5lIFVSTHMgZW50ZmVybmVuLCBkaWUgbmljaHQgZsO8ciBcInB1c2hcIiBiZXN0aW1tdCBzaW5kIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE1NjkKIG1zZ2lkICJiZSB2ZXJib3NlOyBtdXN0IGJlIHBsYWNlZCBiZWZvcmUgYSBzdWJjb21tYW5kIgpAQCAtODM2NiwyMSArODU4NywyMSBAQAogCiAjOiBidWlsdGluL3JlcmVyZS5jOjU2CiBtc2dpZCAicmVnaXN0ZXIgY2xlYW4gcmVzb2x1dGlvbnMgaW4gaW5kZXgiCi1tc2dzdHIgInJlZ2lzdHJpZXJ0IHNhdWJlcmUgQXVmbMO2c3VuZ2VuIGluIGRlciBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAicmVnaXN0cmllcnQgc2F1YmVyZSBBdWZsw7ZzdW5nZW4gaW4gZGVyIFN0YWdpbmctQXJlYSIKIAogIzogYnVpbHRpbi9yZXNldC5jOjI1CiBtc2dpZCAiIgogImdpdCByZXNldCBbLS1taXhlZCB8IC0tc29mdCB8IC0taGFyZCB8IC0tbWVyZ2UgfCAtLWtlZXBdIFstcV0gWzxjb21taXQ+XSIKIG1zZ3N0ciAiIgotImdpdCByZXNldCBbLS1taXhlZCB8IC0tc29mdCB8IC0taGFyZCB8IC0tbWVyZ2UgfCAtLWtlZXBdIFstcV0gWzxWZXJzaW9uPl0iCisiZ2l0IHJlc2V0IFstLW1peGVkIHwgLS1zb2Z0IHwgLS1oYXJkIHwgLS1tZXJnZSB8IC0ta2VlcF0gWy1xXSBbPENvbW1pdD5dIgogCiAjOiBidWlsdGluL3Jlc2V0LmM6MjYKIG1zZ2lkICJnaXQgcmVzZXQgWy1xXSA8dHJlZS1pc2g+IFstLV0gPHBhdGhzPi4uLiIKLW1zZ3N0ciAiZ2l0IHJlc2V0IFstcV0gPFZlcnNpb25zcmVmZXJlbno+IFstLV0gPFBmYWRlPi4uLiIKK21zZ3N0ciAiZ2l0IHJlc2V0IFstcV0gPENvbW1pdC1SZWZlcmVuej4gWy0tXSA8UGZhZGU+Li4uIgogCiAjOiBidWlsdGluL3Jlc2V0LmM6MjcKIG1zZ2lkICJnaXQgcmVzZXQgLS1wYXRjaCBbPHRyZWUtaXNoPl0gWy0tXSBbPHBhdGhzPi4uLl0iCi1tc2dzdHIgImdpdCByZXNldCAtLXBhdGNoIFs8VmVyc2lvbnNyZWZlcmVuej5dIFstLV0gWzxQZmFkZT4uLi5dIgorbXNnc3RyICJnaXQgcmVzZXQgLS1wYXRjaCBbPENvbW1pdC1SZWZlcmVuej5dIFstLV0gWzxQZmFkZT4uLi5dIgogCiAjOiBidWlsdGluL3Jlc2V0LmM6MzMKIG1zZ2lkICJtaXhlZCIKQEAgLTg0MDQsMTEwICs4NjI1LDEwOCBAQAogCiAjOiBidWlsdGluL3Jlc2V0LmM6NzMKIG1zZ2lkICJZb3UgZG8gbm90IGhhdmUgYSB2YWxpZCBIRUFELiIKLW1zZ3N0ciAiU2llIGhhYmVuIGtlaW5lIGfDvGx0aWdlIFp3ZWlnc3BpdHplIChIRUFEKS4iCittc2dzdHIgIlNpZSBoYWJlbiBrZWluZW4gZ8O8bHRpZ2VuIEhFQUQuIgogCiAjOiBidWlsdGluL3Jlc2V0LmM6NzUKIG1zZ2lkICJGYWlsZWQgdG8gZmluZCB0cmVlIG9mIEhFQUQuIgotbXNnc3RyICJGZWhsZXIgYmVpbSBGaW5kZW4gZGVzIEJhdW1lcyBkZXIgWndlaWdzcGl0emUgKEhFQUQpLiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gRmluZGVuIGRlcyBcIlRyZWVcIi1PYmpla3RlcyB2b24gSEVBRC4iCiAKICM6IGJ1aWx0aW4vcmVzZXQuYzo4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gZmluZCB0cmVlIG9mICVzLiIKLW1zZ3N0ciAiRmVobGVyIGJlaW0gRmluZGVuIGRlcyBCYXVtZXMgdm9uICVzLiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gRmluZGVuIGRlcyBcIlRyZWVcIi1PYmpla3RlcyB2b24gJXMuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6OTgKKyM6IGJ1aWx0aW4vcmVzZXQuYzo5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCAlcyIKLW1zZ3N0ciAiWndlaWdzcGl0emUgKEhFQUQpIGlzdCBqZXR6dCBiZWkgJXMiCittc2dzdHIgIkhFQUQgaXN0IGpldHp0IGJlaSAlcyIKIAotIzogYnVpbHRpbi9yZXNldC5jOjE2OQorIzogYnVpbHRpbi9yZXNldC5jOjE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gYSAlcyByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UuIgotbXNnc3RyICIiCi0iS2FubiBrZWluZSAnJXMnIFp1csO8Y2tzZXR6dW5nIGR1cmNoZsO8aHJlbiwgd8OkaHJlbmQgZWluZSBadXNhbW1lbmbDvGhydW5nIGltICIKLSJHYW5nZSBpc3QuIgorbXNnc3RyICJLYW5uIGtlaW5lbiAnJXMnLVJlc2V0IGR1cmNoZsO8aHJlbiwgd8OkaHJlbmQgZWluIE1lcmdlIGltIEdhbmdlIGlzdC4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNDgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTEKIG1zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgogbXNnc3RyICJ3ZW5pZ2VyIEF1c2dhYmVuLCBtZWxkZXQgbnVyIEZlaGxlciIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MAorIzogYnVpbHRpbi9yZXNldC5jOjI1MwogbXNnaWQgInJlc2V0IEhFQUQgYW5kIGluZGV4IgotbXNnc3RyICJzZXR6dCBad2VpZ3NwaXR6ZSAoSEVBRCkgdW5kIEJlcmVpdHN0ZWxsdW5nIG5ldSIKK21zZ3N0ciAic2V0enQgSEVBRCB1bmQgU3RhZ2luZy1BcmVhIHVtIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUxCisjOiBidWlsdGluL3Jlc2V0LmM6MjU0CiBtc2dpZCAicmVzZXQgb25seSBIRUFEIgotbXNnc3RyICJzZXR6dCBudXIgWndlaWdzcGl0emUgKEhFQUQpIG5ldSIKK21zZ3N0ciAic2V0enQgbnVyIEhFQUQgdW0iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMgYnVpbHRpbi9yZXNldC5jOjI1NQorIzogYnVpbHRpbi9yZXNldC5jOjI1NiBidWlsdGluL3Jlc2V0LmM6MjU4CiBtc2dpZCAicmVzZXQgSEVBRCwgaW5kZXggYW5kIHdvcmtpbmcgdHJlZSIKLW1zZ3N0ciAic2V0enQgWndlaWdzcGl0emUgKEhFQUQpLCBCZXJlaXRzdGVsbHVuZyB1bmQgQXJiZWl0c2JhdW0gbmV1IgorbXNnc3RyICJzZXR6dCBIRUFELCBTdGFnaW5nLUFyZWEgdW5kIEFyYmVpdHN2ZXJ6ZWljaG5pcyB1bSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1NworIzogYnVpbHRpbi9yZXNldC5jOjI2MAogbXNnaWQgInJlc2V0IEhFQUQgYnV0IGtlZXAgbG9jYWwgY2hhbmdlcyIKLW1zZ3N0ciAic2V0enQgWndlaWdzcGl0emUgKEhFQUQpIG5ldSwgYmVow6RsdCBhYmVyIGxva2FsZSDDhG5kZXJ1bmdlbiIKK21zZ3N0ciAic2V0enQgSEVBRCB1bSwgYmVow6RsdCBhYmVyIGxva2FsZSDDhG5kZXJ1bmdlbiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3NQorIzogYnVpbHRpbi9yZXNldC5jOjI3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmV2aXNpb24uIgotbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBhbHMgZ8O8bHRpZ2UgUmV2aXNpb24gYXVmbMO2c2VuLiIKK21zZ3N0ciAiS29ubnRlICclcycgbmljaHQgYWxzIGfDvGx0aWdlbiBDb21taXQgYXVmbMO2c2VuLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3OCBidWlsdGluL3Jlc2V0LmM6Mjg2CisjOiBidWlsdGluL3Jlc2V0LmM6MjgxIGJ1aWx0aW4vcmVzZXQuYzoyODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIG9iamVjdCAnJXMnLiIKIG1zZ3N0ciAiS29ubnRlIE9iamVrdCAnJXMnIG5pY2h0IHBhcnNlbi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyODMKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHRyZWUuIgotbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBhbHMgZ8O8bHRpZ2VuIEJhdW0gYXVmbMO2c2VuLiIKK21zZ3N0ciAiS29ubnRlICclcycgbmljaHQgYWxzIGfDvGx0aWdlcyBcIlRyZWVcIi1PYmpla3QgYXVmbMO2c2VuLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI5MgorIzogYnVpbHRpbi9yZXNldC5jOjI5NQogbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIKIG1zZ3N0ciAiLS1wYXRjaCBpc3QgaW5rb21wYXRpYmVsIG1pdCAtLXtoYXJkLG1peGVkLHNvZnR9IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzAxCisjOiBidWlsdGluL3Jlc2V0LmM6MzA0CiBtc2dpZCAiLS1taXhlZCB3aXRoIHBhdGhzIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIGluc3RlYWQuIgogbXNnc3RyICIiCiAiLS1taXhlZCBtaXQgUGZhZGVuIGlzdCB2ZXJhbHRldDsgYmVudXR6ZW4gU2llIHN0YXR0ZGVzc2VuICdnaXQgcmVzZXQgLS0gIgogIjxQZmFkZT4nLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwMworIzogYnVpbHRpbi9yZXNldC5jOjMwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gJXMgcmVzZXQgd2l0aCBwYXRocy4iCi1tc2dzdHIgIkVpbmUgJyVzJyBadXLDvGNrc2V0enVuZyBtaXQgUGZhZGVuIGlzdCBuaWNodCBtw7ZnbGljaC4iCittc2dzdHIgIkVpbiAnJXMnLVJlc2V0IG1pdCBQZmFkZW4gaXN0IG5pY2h0IG3DtmdsaWNoLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMxMworIzogYnVpbHRpbi9yZXNldC5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyByZXNldCBpcyBub3QgYWxsb3dlZCBpbiBhIGJhcmUgcmVwb3NpdG9yeSIKLW1zZ3N0ciAiJyVzJyBadXLDvGNrc2V0enVuZyBpc3QgaW4gZWluZW0gYmxvw59lbiBQcm9qZWt0YXJjaGl2IG5pY2h0IGVybGF1YnQiCittc2dzdHIgIiclcyctUmVzZXQgaXN0IGluIGVpbmVtIEJhcmUtUmVwb3NpdG9yeSBuaWNodCBlcmxhdWJ0IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzMzCisjOiBidWlsdGluL3Jlc2V0LmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZXNldCBpbmRleCBmaWxlIHRvIHJldmlzaW9uICclcycuIgotbXNnc3RyICJLb25udGUgQmVyZWl0c3RlbGx1bmdzZGF0ZWkgbmljaHQgenUgUmV2aXNpb24gJyVzJyBzZXR6ZW4uIgorbXNnc3RyICJLb25udGUgU3RhZ2luZy1BcmVhLURhdGVpIG5pY2h0IHp1IENvbW1pdCAnJXMnIHNldHplbi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzkKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDIKIG1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKLW1zZ3N0ciAiTmljaHQgYmVyZWl0Z2VzdGVsbHRlIMOEbmRlcnVuZ2VuIG5hY2ggWnVyw7xja3NldHp1bmc6IgorbXNnc3RyICJOaWNodCB6dW0gQ29tbWl0IHZvcmdlbWVya3RlIMOEbmRlcnVuZ2VuIG5hY2ggWnVyw7xja3NldHp1bmc6IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQ0CisjOiBidWlsdGluL3Jlc2V0LmM6MzQ3CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIG5ldyBpbmRleCBmaWxlLiIKLW1zZ3N0ciAiS29ubnRlIG5ldWUgQmVyZWl0c3RlbGx1bmdzZGF0ZWkgbmljaHQgc2NocmVpYmVuLiIKK21zZ3N0ciAiS29ubnRlIG5ldWUgU3RhZ2luZy1BcmVhLURhdGVpIG5pY2h0IHNjaHJlaWJlbi4iCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzM5CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NQogbXNnaWQgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl0iCiBtc2dzdHIgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbT3B0aW9uZW5dIC0tIFs8QXJndW1lbnRlPi4uLl0iCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ0CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM1MAogbXNnaWQgImtlZXAgdGhlIGAtLWAgcGFzc2VkIGFzIGFuIGFyZyIKIG1zZ3N0ciAibMOkc3N0IGAtLWAgYWxzIEFyZ3VtZW50IgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NgorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNTIKIG1zZ2lkICJzdG9wIHBhcnNpbmcgYWZ0ZXIgdGhlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQiCiBtc2dzdHIgInN0b3BwdCBkYXMgUGFyc2VuIG5hY2ggZGVtIGVyc3RlbiBBcmd1bWVudCB3YXMga2VpbmUgT3B0aW9uIGlzdCIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzo0NjQKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6NDcwCiBtc2dpZCAiIgogImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl1cbiIKICIgICBvcjogZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlIFs8YXJnPi4uLl1cbiIKQEAgLTg1MjQsNyArODc0Myw3IEBACiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjIKIG1zZ2lkICJnaXQgcmV2ZXJ0IFtvcHRpb25zXSA8Y29tbWl0LWlzaD4uLi4iCi1tc2dzdHIgImdpdCByZXZlcnQgW09wdGlvbmVuXSA8VmVyc2lvbnNhbmdhYmU+Li4uIgorbXNnc3RyICJnaXQgcmV2ZXJ0IFtPcHRpb25lbl0gPENvbW1pdC1BbmdhYmU+Li4uIgogCiAjOiBidWlsdGluL3JldmVydC5jOjIzCiBtc2dpZCAiZ2l0IHJldmVydCA8c3ViY29tbWFuZD4iCkBAIC04NTMyLDE4NSArODc1MSwyMTIgQEAKIAogIzogYnVpbHRpbi9yZXZlcnQuYzoyOAogbXNnaWQgImdpdCBjaGVycnktcGljayBbb3B0aW9uc10gPGNvbW1pdC1pc2g+Li4uIgotbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgW09wdGlvbmVuXSA8VmVyc2lvbnNhbmdhYmU+Li4uIgorbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgW09wdGlvbmVuXSA8Q29tbWl0LUFuZ2FiZT4uLi4iCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjkKIG1zZ2lkICJnaXQgY2hlcnJ5LXBpY2sgPHN1YmNvbW1hbmQ+IgogbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgPFVudGVya29tbWFuZG8+IgogCi0jOiBidWlsdGluL3JldmVydC5jOjcwIGJ1aWx0aW4vcmV2ZXJ0LmM6OTIKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzEgYnVpbHRpbi9yZXZlcnQuYzo5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogJXMgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAiJXM6ICVzIGthbm4gbmljaHQgbWl0ICVzIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTAzCisjOiBidWlsdGluL3JldmVydC5jOjEwNQogbXNnaWQgImVuZCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgImJlZW5kZXQgXCJyZXZlcnRcIiBvZGVyIFwiY2hlcnJ5LXBpY2tcIiBBYmxhdWYiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA0CisjOiBidWlsdGluL3JldmVydC5jOjEwNgogbXNnaWQgInJlc3VtZSByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgInNldHp0IFwicmV2ZXJ0XCIgb2RlciBcImNoZXJyeS1waWNrXCIgQWJsYXVmIGZvcnQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA1CisjOiBidWlsdGluL3JldmVydC5jOjEwNwogbXNnaWQgImNhbmNlbCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgImJyaWNodCBcInJldmVydFwiIG9kZXIgXCJjaGVycnktcGlja1wiIEFibGF1ZiBhYiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA4CiBtc2dpZCAiZG9uJ3QgYXV0b21hdGljYWxseSBjb21taXQiCi1tc2dzdHIgInRyw6RndCBuaWNodCBhdXRvbWF0aXNjaCBlaW4iCittc2dzdHIgImNvbW1pdHRldCBuaWNodCBhdXRvbWF0aXNjaCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDcKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA5CiBtc2dpZCAiZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UiCi1tc2dzdHIgIkJlYXJiZWl0dW5nIGRlciBWZXJzaW9uc2Jlc2NocmVpYnVuZyIKK21zZ3N0ciAiQmVhcmJlaXR1bmcgZGVyIENvbW1pdC1CZXNjaHJlaWJ1bmciCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEwCisjOiBidWlsdGluL3JldmVydC5jOjExMgogbXNnaWQgInBhcmVudCBudW1iZXIiCiBtc2dzdHIgIk51bW1lciBkZXMgRWx0ZXJudGVpbHMiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL3JldmVydC5jOjExNAogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IgotbXNnc3RyICJadXNhbW1lbmbDvGhydW5nc3N0cmF0ZWdpZSIKK21zZ3N0ciAiTWVyZ2UtU3RyYXRlZ2llIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMTUKIG1zZ2lkICJvcHRpb24iCiBtc2dzdHIgIk9wdGlvbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE2CiBtc2dpZCAib3B0aW9uIGZvciBtZXJnZSBzdHJhdGVneSIKLW1zZ3N0ciAiT3B0aW9uIGbDvHIgWnVzYW1tZW5mw7xocnVuZ3NzdHJhdGVnaWUiCittc2dzdHIgIk9wdGlvbiBmw7xyIE1lcmdlLVN0cmF0ZWdpZSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI3CiBtc2dpZCAiYXBwZW5kIGNvbW1pdCBuYW1lIgotbXNnc3RyICJow6RuZ3QgVmVyc2lvbnNuYW1lbiBhbiIKK21zZ3N0ciAiaMOkbmd0IENvbW1pdC1OYW1lbiBhbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIgogbXNnc3RyICJlcmxhdWJ0IFZvcnNwdWxlbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjcKLW1zZ2lkICJwcmVzZXJ2ZSBpbml0aWFsbHkgZW1wdHkgY29tbWl0cyIKLW1zZ3N0ciAiZXJow6RsdCB1cnNwcsO8bmdsaWNoZSwgbGVlcmUgVmVyc2lvbmVuIgotCi0jOiBidWlsdGluL3JldmVydC5jOjEyOAotbXNnaWQgImFsbG93IGNvbW1pdHMgd2l0aCBlbXB0eSBtZXNzYWdlcyIKLW1zZ3N0ciAiZXJsYXVidCBWZXJzaW9uIG1pdCBsZWVyZXIgQmVzY2hyZWlidW5nIgotCiAjOiBidWlsdGluL3JldmVydC5jOjEyOQotbXNnaWQgImtlZXAgcmVkdW5kYW50LCBlbXB0eSBjb21taXRzIgotbXNnc3RyICJiZWjDpGx0IHJlZHVuZGFudGUsIGxlZXJlIFZlcnNpb25lbiIKK21zZ2lkICJwcmVzZXJ2ZSBpbml0aWFsbHkgZW1wdHkgY29tbWl0cyIKK21zZ3N0ciAiZXJow6RsdCB1cnNwcsO8bmdsaWNoZSwgbGVlcmUgQ29tbWl0cyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMzMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMwCittc2dpZCAiYWxsb3cgY29tbWl0cyB3aXRoIGVtcHR5IG1lc3NhZ2VzIgorbXNnc3RyICJlcmxhdWJ0IENvbW1pdHMgbWl0IGxlZXJlciBCZXNjaHJlaWJ1bmciCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMxCittc2dpZCAia2VlcCByZWR1bmRhbnQsIGVtcHR5IGNvbW1pdHMiCittc2dzdHIgImJlaMOkbHQgcmVkdW5kYW50ZSwgbGVlcmUgQ29tbWl0cyIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMzUKIG1zZ2lkICJwcm9ncmFtIGVycm9yIgogbXNnc3RyICJQcm9ncmFtbWZlaGxlciIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMjMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjI1CiBtc2dpZCAicmV2ZXJ0IGZhaWxlZCIKIG1zZ3N0ciAiXCJyZXZlcnRcIiBmZWhsZ2VzY2hsYWdlbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMzgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjQwCiBtc2dpZCAiY2hlcnJ5LXBpY2sgZmFpbGVkIgogbXNnc3RyICJcImNoZXJyeS1waWNrXCIgZmVobGdlc2NobGFnZW4iCiAKLSM6IGJ1aWx0aW4vcm0uYzoxNQorIzogYnVpbHRpbi9ybS5jOjE2CiBtc2dpZCAiZ2l0IHJtIFtvcHRpb25zXSBbLS1dIDxmaWxlPi4uLiIKIG1zZ3N0ciAiZ2l0IHJtIFtPcHRpb25lbl0gWy0tXSBbPERhdGVpPi4uLl0iCiAKLSM6IGJ1aWx0aW4vcm0uYzo2NCBidWlsdGluL3JtLmM6MTg2Ci0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjY0CiBtc2dpZCAiIgotInN1Ym1vZHVsZSAnJXMnIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKSB1c2VzIGEgLmdpdCBkaXJlY3RvcnlcbiIKKyJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZSAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKKyJ1c2VzIGEgLmdpdCBkaXJlY3Rvcnk6IgorbXNnaWRfcGx1cmFsICIiCisidGhlIGZvbGxvd2luZyBzdWJtb2R1bGVzIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKVxuIgorInVzZSBhIC5naXQgZGlyZWN0b3J5OiIKK21zZ3N0clswXSAiIgorImRhcyBmb2xnZW5kZSBTdWJtb2R1bCAob2RlciBlaW4gZ2VzY2hhY2h0ZWx0ZXMgU3VibW9kdWwgaGllcnZvbilcbiIKKyJiZW51dHp0IGVpbiAuZ2l0LVZlcnplaWNobmlzOiIKK21zZ3N0clsxXSAiIgorImRpZSBmb2xnZW5kZW4gU3VibW9kdWxlIChvZGVyIGVpbiBnZXNjaGFjaHRlbHRlcyBTdWJtb2R1bCBoaWVydm9uKVxuIgorImJlbnV0emVuIGVpbiAuZ2l0LVZlcnplaWNobmlzOiIKKworIzogYnVpbHRpbi9ybS5jOjcwCittc2dpZCAiIgorIlxuIgogIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIKIG1zZ3N0ciAiIgotIlVudGVycHJvamVrdCAnJXMnIChvZGVyIGVpbiBnZXNjaGFjaHRlbHRlcyBVbnRlcnByb2pla3QgaGllcnZvbikgdmVyd2VuZGV0XG4iCi0iZWluIC5naXQtVmVyemVpY2huaXMgKGJlbnV0emVuIFNpZSAncm0gLXJmJyB3ZW5uIFNpZSBkaWVzZXMgd2lya2xpY2ggIgotIm1pdHNhbXRcbiIKKyJcbiIKKyIoYmVudXR6ZW4gU2llICdybSAtcmYnIHdlbm4gU2llIGRpZXNlcyBTdWJtb2R1bCB3aXJrbGljaCBtaXRzYW10XG4iCiAic2VpbmVyIEhpc3RvcmllIGzDtnNjaGVuIG3DtmNodGVuKSIKIAotIzogYnVpbHRpbi9ybS5jOjE3NAotIywgYy1mb3JtYXQKKyM6IGJ1aWx0aW4vcm0uYzoyMzAKIG1zZ2lkICIiCi0iJyVzJyBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGUgZmlsZSBhbmQgdGhlIEhFQURcbiIKKyJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlXG4iCisiZmlsZSBhbmQgdGhlIEhFQUQ6IgorbXNnaWRfcGx1cmFsICIiCisidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlXG4iCisiZmlsZSBhbmQgdGhlIEhFQUQ6IgorbXNnc3RyWzBdICIiCisiZGllIGZvbGdlbmRlIERhdGVpIGhhdCB6dW0gQ29tbWl0IHZvcmdlbWVya3RlIMOEbmRlcnVuZ2VuIHVudGVyc2NoaWVkbGljaFxuIgorInp1IGRlciBEYXRlaSB1bmQgSEVBRDoiCittc2dzdHJbMV0gIiIKKyJkaWUgZm9sZ2VuZGVuIERhdGVpZW4gaGFiZW4genVtIENvbW1pdCB2b3JnZW1lcmt0ZSDDhG5kZXJ1bmdlbiAiCisidW50ZXJzY2hpZWRsaWNoXG4iCisienUgZGVyIERhdGVpIHVuZCBIRUFEOiIKKworIzogYnVpbHRpbi9ybS5jOjIzNQorbXNnaWQgIiIKKyJcbiIKICIodXNlIC1mIHRvIGZvcmNlIHJlbW92YWwpIgogbXNnc3RyICIiCi0iJyVzJyBoYXQgYmVyZWl0Z2VzdGVsbHRlbiBJbmhhbHQgdW50ZXJzY2hpZWRsaWNoIHp1IGRlciBEYXRlaSB1bmQgZGVyXG4iCi0iWndlaWdzcGl0emUgKEhFQUQpIChiZW51dHplbiBTaWUgLWYgdW0gZGllIEVudGZlcm51bmcgenUgZXJ6d2luZ2VuKSIKKyJcbiIKKyIoYmVudXR6ZW4gU2llIC1mIHVtIGRpZSBMw7ZzY2h1bmcgenUgZXJ6d2luZ2VuKSIKIAotIzogYnVpbHRpbi9ybS5jOjE4MAotIywgYy1mb3JtYXQKKyM6IGJ1aWx0aW4vcm0uYzoyMzkKK21zZ2lkICJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCittc2dpZF9wbHVyYWwgInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXg6IgorbXNnc3RyWzBdICJkaWUgZm9sZ2VuZGUgRGF0ZWkgaGF0IHp1bSBDb21taXQgdm9yZ2VtZXJrdGUgw4RuZGVydW5nZW46IgorbXNnc3RyWzFdICJkaWUgZm9sZ2VuZGVuIERhdGVpZW4gaGFiZW4genVtIENvbW1pdCB2b3JnZW1lcmt0ZSDDhG5kZXJ1bmdlbjoiCisKKyM6IGJ1aWx0aW4vcm0uYzoyNDMgYnVpbHRpbi9ybS5jOjI1NAogbXNnaWQgIiIKLSInJXMnIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXhcbiIKKyJcbiIKICIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgogbXNnc3RyICIiCi0iJyVzJyBoYXQgw4RuZGVydW5nZW4gaW4gZGVyIEJlcmVpdHN0ZWxsdW5nXG4iCisiXG4iCiAiKGJlbnV0emVuIFNpZSAtLWNhY2hlZCB1bSBkaWUgRGF0ZWkgenUgYmVoYWx0ZW4sIG9kZXIgLWYgdW0gZGllIEVudGZlcm51bmcgIgogInp1IGVyendpbmdlbikiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxOTEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiIgotIiclcycgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnNcbiIKLSIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgotbXNnc3RyICIiCi0iJyVzJyBoYXQgbG9rYWxlIE1vZGlmaWthdGlvbmVuXG4iCi0iKGJlbnV0emVuIFNpZSAtLWNhY2hlZCB1bSBkaWUgRGF0ZWkgenUgYmVoYWx0ZW4sIG9kZXIgLWYgdW0gZGllIEVudGZlcm51bmcgIgotInp1IGVyendpbmdlbikiCisjOiBidWlsdGluL3JtLmM6MjUxCittc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zOiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgorbXNnc3RyWzBdICJkaWUgZm9sZ2VuZGUgRGF0ZWkgaGF0IGxva2FsZSDDhG5kZXJ1bmdlbjoiCittc2dzdHJbMV0gImRpZSBmb2xnZW5kZW4gRGF0ZWllbiBoYWJlbiBsb2thbGUgw4RuZGVydW5nZW46IgogCi0jOiBidWlsdGluL3JtLmM6MjA3CisjOiBidWlsdGluL3JtLmM6MjY5CiBtc2dpZCAiZG8gbm90IGxpc3QgcmVtb3ZlZCBmaWxlcyIKIG1zZ3N0ciAibGlzdGV0IGtlaW5lIGdlbMO2c2NodGVuIERhdGVpZW4gYXVmIgogCi0jOiBidWlsdGluL3JtLmM6MjA4CisjOiBidWlsdGluL3JtLmM6MjcwCiBtc2dpZCAib25seSByZW1vdmUgZnJvbSB0aGUgaW5kZXgiCi1tc2dzdHIgImVudGZlcm50IG51ciBhdXMgZGVyIEJlcmVpdHN0ZWxsdW5nIgorbXNnc3RyICJlbnRmZXJudCBudXIgYXVzIGRlciBTdGFnaW5nLUFyZWEiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDkKKyM6IGJ1aWx0aW4vcm0uYzoyNzEKIG1zZ2lkICJvdmVycmlkZSB0aGUgdXAtdG8tZGF0ZSBjaGVjayIKIG1zZ3N0ciAiw7xiZXJzY2hyZWlidCBkaWUgXCJ1cC10by1kYXRlXCIgUHLDvGZ1bmciCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMTAKKyM6IGJ1aWx0aW4vcm0uYzoyNzIKIG1zZ2lkICJhbGxvdyByZWN1cnNpdmUgcmVtb3ZhbCIKIG1zZ3N0ciAiZXJsYXVidCByZWt1cnNpdmUgRW50ZmVybnVuZyIKIAotIzogYnVpbHRpbi9ybS5jOjIxMgorIzogYnVpbHRpbi9ybS5jOjI3NAogbXNnaWQgImV4aXQgd2l0aCBhIHplcm8gc3RhdHVzIGV2ZW4gaWYgbm90aGluZyBtYXRjaGVkIgogbXNnc3RyICJiZWVuZGV0IG1pdCBSw7xja2dhYmV3ZXJ0IDAsIHdlbm4ga2VpbmUgw5xiZXJlaW5zdGltbXVuZyBnZWZ1bmRlbiB3dXJkZSIKIAotIzogYnVpbHRpbi9ybS5jOjI4MworIzogYnVpbHRpbi9ybS5jOjM0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgcmVtb3ZpbmcgJyVzJyByZWN1cnNpdmVseSB3aXRob3V0IC1yIgogbXNnc3RyICInJXMnIHdpcmQgbmljaHQgb2huZSAtciByZWt1cnNpdiBlbnRmZXJudCIKIAotIzogYnVpbHRpbi9ybS5jOjMyMgorIzogYnVpbHRpbi9ybS5jOjM4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgcm06IHVuYWJsZSB0byByZW1vdmUgJXMiCiBtc2dzdHIgImdpdCBybToga29ubnRlICVzIG5pY2h0IGzDtnNjaGVuIgogCiAjOiBidWlsdGluL3Nob3J0bG9nLmM6MTMKIG1zZ2lkICJnaXQgc2hvcnRsb2cgWzxvcHRpb25zPl0gWzxyZXZpc2lvbiByYW5nZT5dIFtbLS1dIFs8cGF0aD4uLi5dXSIKLW1zZ3N0ciAiZ2l0IHNob3J0bG9nIFs8T3B0aW9uZW4+XSBbUmV2aXNpb25zYmVyZWljaF0gW1stLV0gPFBmYWQ+Li4uXSIKK21zZ3N0ciAiZ2l0IHNob3J0bG9nIFs8T3B0aW9uZW4+XSBbQ29tbWl0YmVyZWljaF0gW1stLV0gPFBmYWQ+Li4uXSIKIAogIzogYnVpbHRpbi9zaG9ydGxvZy5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJNaXNzaW5nIGF1dGhvcjogJXMiCiBtc2dzdHIgImZlaGxlbmRlciBBdXRvcjogJXMiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjcKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjgKIG1zZ2lkICJzb3J0IG91dHB1dCBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBjb21taXRzIHBlciBhdXRob3IiCi1tc2dzdHIgInNvcnRpZXJ0IGRpZSBBdXNnYWJlIGVudHNwcmVjaGVuZCBkZXIgQW56YWhsIHZvbiBWZXJzaW9uZW4gcHJvIEF1dG9yIgorbXNnc3RyICJzb3J0aWVydCBkaWUgQXVzZ2FiZSBlbnRzcHJlY2hlbmQgZGVyIEFuemFobCB2b24gQ29tbWl0cyBwcm8gQXV0b3IiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjkKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzAKIG1zZ2lkICJTdXBwcmVzcyBjb21taXQgZGVzY3JpcHRpb25zLCBvbmx5IHByb3ZpZGVzIGNvbW1pdCBjb3VudCIKLW1zZ3N0ciAiVW50ZXJkcsO8Y2t0IFZlcnNpb25zYmVzY2hyZWlidW5nZW4sIGxpZWZlcnQgbnVyIEFuemFobCBkZXIgVmVyc2lvbmVuIgorbXNnc3RyICJVbnRlcmRyw7xja3QgQ29tbWl0LUJlc2NocmVpYnVuZ2VuLCBsaWVmZXJ0IG51ciBBbnphaGwgZGVyIENvbW1pdHMiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzEKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKIG1zZ2lkICJTaG93IHRoZSBlbWFpbCBhZGRyZXNzIG9mIGVhY2ggYXV0aG9yIgogbXNnc3RyICJaZWlndCBkaWUgRW1haWwtQWRyZXNzZSB2b24gamVkZW0gQXV0b3IiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKIG1zZ2lkICJ3WyxpMVssaTJdXSIKIG1zZ3N0ciAid1ssaTFbLGkyXV0iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKIG1zZ2lkICJMaW5ld3JhcCBvdXRwdXQiCiBtc2dzdHIgIkF1c2dhYmUgbWl0IFplaWxlbnVtYnLDvGNoZW4iCiAKQEAgLTg3MjMsOCArODk2OSw4IEBACiBtc2dzdHIgIiIKICJnaXQgc2hvdy1icmFuY2ggWy1hfC0tYWxsXSBbLXJ8LS1yZW1vdGVzXSBbLS10b3BvLW9yZGVyIHwgLS1kYXRlLW9yZGVyXSBbLS0iCiAiY3VycmVudF0gWy0tY29sb3JbPTxXYW5uPl0gfCAtLW5vLWNvbG9yXSBbLS1zcGFyc2VdIFstLW1vcmU9PG4+IHwgLS1saXN0IHwgLS0iCi0iaW5kZXBlbmRlbnQgfCAtLW1lcmdlLWJhc2VdIFstLW5vLW5hbWUgfCAtLXNoYTEtbmFtZV0gWy0tdG9waWNzXSAiCi0iWyg8UmV2aXNpb24+IHwgPGdsb2I+KS4uLl0iCisiaW5kZXBlbmRlbnQgfCAtLW1lcmdlLWJhc2VdIFstLW5vLW5hbWUgfCAtLXNoYTEtbmFtZV0gWy0tdG9waWNzXSBbKDxDb21taXQ+ICIKKyJ8IDxnbG9iPikuLi5dIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6MTAKIG1zZ2lkICJnaXQgc2hvdy1icmFuY2ggKC1nfC0tcmVmbG9nKVs9PG4+Wyw8YmFzZT5dXSBbLS1saXN0XSBbPHJlZj5dIgpAQCAtODczMiwxOSArODk3OCwxOSBAQAogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUwCiBtc2dpZCAic2hvdyByZW1vdGUtdHJhY2tpbmcgYW5kIGxvY2FsIGJyYW5jaGVzIgotbXNnc3RyICJ6ZWlndCBleHRlcm5lIMOcYmVybmFobWV6d2VpZ2UgdW5kIGxva2FsZSBad2VpZ2UgYW4iCittc2dzdHIgInplaWd0IFJlbW90ZS1UcmFja2luZyB1bmQgbG9rYWxlIEJyYW5jaGVzIGFuIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUyCiBtc2dpZCAic2hvdyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiCi1tc2dzdHIgInplaWd0IGV4dGVybmUgw5xiZXJuYWhtZXp3ZWlnZSBhbiIKK21zZ3N0ciAiemVpZ3QgUmVtb3RlLVRyYWNraW5nLUJyYW5jaGVzIGFuIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU0CiBtc2dpZCAiY29sb3IgJyohKy0nIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGJyYW5jaCIKLW1zZ3N0ciAiZsOkcmJ0ICcqISstJyBlbnRzcHJlY2hlbmQgZGVzIFp3ZWlnZXMgZWluIgorbXNnc3RyICJmw6RyYnQgJyohKy0nIGVudHNwcmVjaGVuZCBkZXMgQnJhbmNoZXMgZWluIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU2CiBtc2dpZCAic2hvdyA8bj4gbW9yZSBjb21taXRzIGFmdGVyIHRoZSBjb21tb24gYW5jZXN0b3IiCi1tc2dzdHIgInplaWd0IDxuPiB3ZWl0ZXJlIFZlcnNpb25lbiBuYWNoIGRlbSBnZW1laW5zYW1lbiBWb3JmYWhyZW4iCittc2dzdHIgInplaWd0IDxuPiB3ZWl0ZXJlIENvbW1pdHMgbmFjaCBkZW0gZ2VtZWluc2FtZW4gVm9yZ8Okbmdlci1Db21taXQiCiAKICM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTgKIG1zZ2lkICJzeW5vbnltIHRvIG1vcmU9LTEiCkBAIC04NzU2LDE1ICs5MDAyLDE1IEBACiAKICM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjEKIG1zZ2lkICJpbmNsdWRlIHRoZSBjdXJyZW50IGJyYW5jaCIKLW1zZ3N0ciAiYmV6aWVodCBkZW4gYWt0dWVsbGVuIFp3ZWlnIGVpbiIKK21zZ3N0ciAiYmV6aWVodCBkZW4gYWt0dWVsbGVuIEJyYW5jaCBlaW4iCiAKICM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjMKIG1zZ2lkICJuYW1lIGNvbW1pdHMgd2l0aCB0aGVpciBvYmplY3QgbmFtZXMiCi1tc2dzdHIgImJlbmVubnQgVmVyc2lvbmVuIG5hY2ggaWhyZW4gT2JqZWt0bmFtZW4iCittc2dzdHIgImJlbmVubnQgQ29tbWl0cyBuYWNoIGlocmVuIE9iamVrdG5hbWVuIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY1CiBtc2dpZCAic2hvdyBwb3NzaWJsZSBtZXJnZSBiYXNlcyIKLW1zZ3N0ciAiemVpZ3QgbcO2Z2xpY2hlIEJhc2VuIGbDvHIgWnVzYW1tZW5mw7xocnVuZyIKK21zZ3N0ciAiemVpZ3QgbcO2Z2xpY2hlIE1lcmdlLUJhc2VuIGFuIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY3CiBtc2dpZCAic2hvdyByZWZzIHVucmVhY2hhYmxlIGZyb20gYW55IG90aGVyIHJlZiIKQEAgLTg3NzIsMjkgKzkwMTgsMjcgQEAKIAogIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2OQogbXNnaWQgInNob3cgY29tbWl0cyBpbiB0b3BvbG9naWNhbCBvcmRlciIKLW1zZ3N0ciAiemVpZ3QgVmVyc2lvbmVuIGluIHRvcG9sb2dpc2NoZXIgT3JkbnVuZyIKK21zZ3N0ciAiemVpZ3QgQ29tbWl0cyBpbiB0b3BvbG9naXNjaGVyIE9yZG51bmciCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzEKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzIKIG1zZ2lkICJzaG93IG9ubHkgY29tbWl0cyBub3Qgb24gdGhlIGZpcnN0IGJyYW5jaCIKLW1zZ3N0ciAiemVpZ3QgbnVyIFZlcnNpb25lbiwgZGllIHNpY2ggbmljaHQgaW0gZXJzdGVuIFp3ZWlnIGJlZmluZGVuIgorbXNnc3RyICJ6ZWlndCBudXIgQ29tbWl0cywgZGllIHNpY2ggbmljaHQgaW0gZXJzdGVuIEJyYW5jaCBiZWZpbmRlbiIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3MworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NAogbXNnaWQgInNob3cgbWVyZ2VzIHJlYWNoYWJsZSBmcm9tIG9ubHkgb25lIHRpcCIKLW1zZ3N0ciAiIgotInplaWd0IFp1c2FtbWVuZsO8aHJ1bmdlbiwgZGllIG51ciB2b24gZWluZXIgWndlaWdzcGl0emUgYXVzIGVycmVpY2hiYXIgc2luZCIKK21zZ3N0ciAiemVpZ3QgTWVyZ2VzLCBkaWUgbnVyIHZvbiBlaW5lbSBCcmFuY2ggYXVzIGVycmVpY2hiYXIgc2luZCIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NQotbXNnaWQgInNob3cgY29tbWl0cyB3aGVyZSBubyBwYXJlbnQgY29tZXMgYmVmb3JlIGl0cyBjaGlsZHJlbiIKLW1zZ3N0ciAiemVpZ3QgVmVyc2lvbmVuLCB3byBrZWluIEVsdGVybnRlaWwgdm9yIHNlaW5lbSBLaW5kIGtvbW10IgorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NgorbXNnaWQgInRvcG9sb2dpY2FsbHkgc29ydCwgbWFpbnRhaW5pbmcgZGF0ZSBvcmRlciB3aGVyZSBwb3NzaWJsZSIKK21zZ3N0ciAidG9wb2xvZ2lzY2hlIFNvcnRpZXJ1bmcsIEJlaWJlaGFsdHVuZyBEYXR1bXNvcmRudW5nIHdvIG3DtmdsaWNoIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc3CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc5CiBtc2dpZCAiPG4+Wyw8YmFzZT5dIgogbXNnc3RyICI8bj5bLDxCYXNpcz5dIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc4CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjgwCiBtc2dpZCAic2hvdyA8bj4gbW9zdCByZWNlbnQgcmVmLWxvZyBlbnRyaWVzIHN0YXJ0aW5nIGF0IGJhc2UiCi1tc2dzdHIgIiIKLSJ6ZWlndCBkaWUgPG4+IGrDvG5nc3RlbiBFaW50csOkZ2UgaW0gUmVmZXJlbnpwcm90b2tvbGwgYmVnaW5uZW5kIGFuIGRlciBCYXNpcyIKK21zZ3N0ciAiemVpZ3QgZGllIDxuPiBqw7xuZ3N0ZW4gRWludHLDpGdlIGltIFJlZmxvZyBiZWdpbm5lbmQgYW4gZGVyIEJhc2lzIgogCiAjOiBidWlsdGluL3Nob3ctcmVmLmM6MTAKIG1zZ2lkICIiCkBAIC04ODA4LDQwICs5MDUyLDQwIEBACiBtc2dpZCAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9cGF0dGVybl0gPCByZWYtbGlzdCIKIG1zZ3N0ciAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9TXVzdGVyXSA8IHJlZi1saXN0IgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY1CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY4CiBtc2dpZCAib25seSBzaG93IHRhZ3MgKGNhbiBiZSBjb21iaW5lZCB3aXRoIGhlYWRzKSIKLW1zZ3N0ciAiemVpZ3QgbnVyIE1hcmtpZXJ1bmdlbiAoa2FubiBtaXQgXCJoZWFkc1wiIGtvbWJpbmllcnQgd2VyZGVuKSIKK21zZ3N0ciAiemVpZ3QgbnVyIFRhZ3MgKGthbm4gbWl0IFwiaGVhZHNcIiBrb21iaW5pZXJ0IHdlcmRlbikiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjkKIG1zZ2lkICJvbmx5IHNob3cgaGVhZHMgKGNhbiBiZSBjb21iaW5lZCB3aXRoIHRhZ3MpIgotbXNnc3RyICJ6ZWlndCBudXIgWndlaWdzcGl0emVuIChrYW5uIG1pdCBcInRhZ3NcIiBrb21iaW5pZXJ0IHdlcmRlbikiCittc2dzdHIgInplaWd0IG51ciBCcmFuY2hlcyAoa2FubiBtaXQgXCJ0YWdzXCIga29tYmluaWVydCB3ZXJkZW4pIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY3CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwCiBtc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKIG1zZ3N0ciAic3RyZW5nZXJlIFJlZmVyZW56cHLDvGZ1bmcsIGVyZm9yZGVydCBleGFrdGVuIFJlZmVyZW56cGZhZCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MCBidWlsdGluL3Nob3ctcmVmLmM6MTcyCi1tc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiCi1tc2dzdHIgInplaWd0IFJlZmVyZW56IGRlciBad2VpZ3NwaXR6ZSAoSEVBRCkiCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTczIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzYKK21zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiCittc2dzdHIgInplaWd0IGRpZSBIRUFELVJlZmVyZW56LCBzZWxic3Qgd2VubiBkaWVzZSBhdXNnZWZpbHRlcnQgd2VyZGVuIHfDvHJkZSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OAogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgotbXNnc3RyICJkZXJlZmVyZW56aWVydCBNYXJraWVydW5nZW4gaW4gT2JqZWt0LUlkZW50aWZpa2F0aW9uZW4iCittc2dzdHIgImRlcmVmZXJlbnppZXJ0IFRhZ3MgaW4gT2JqZWt0LUlkZW50aWZpa2F0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKIG1zZ2lkICJvbmx5IHNob3cgU0hBMSBoYXNoIHVzaW5nIDxuPiBkaWdpdHMiCiBtc2dzdHIgInplaWd0IG51ciBTSEExIEhhc2ggbWl0IDxuPiBaaWZmZXJuIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgwCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg0CiBtc2dpZCAiZG8gbm90IHByaW50IHJlc3VsdHMgdG8gc3Rkb3V0ICh1c2VmdWwgd2l0aCAtLXZlcmlmeSkiCiBtc2dzdHIgIiIKICJrZWluZSBBdXNnYWJlIGRlciBFcmdlYm5pc3NlIGluIGRpZSBTdGFuZGFyZC1BdXNnYWJlIChuw7x0emxpY2ggbWl0IC0tdmVyaWZ5KSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NgogbXNnaWQgInNob3cgcmVmcyBmcm9tIHN0ZGluIHRoYXQgYXJlbid0IGluIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKICJ6ZWlndCBSZWZlcmVuemVuIHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSwgZGllIHNpY2ggbmljaHQgaW0gbG9rYWxlbiAiCi0iUHJvamVrdGFyY2hpdiBiZWZpbmRlbiwgYW4iCisiUmVwb3NpdG9yeSBiZWZpbmRlbiwgYW4iCiAKICM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NwogbXNnaWQgImdpdCBzeW1ib2xpYy1yZWYgW29wdGlvbnNdIG5hbWUgW3JlZl0iCkBAIC04ODc2LDI0ICs5MTIwLDI0IEBACiBtc2dpZCAiIgogImdpdCB0YWcgWy1hfC1zfC11IDxrZXktaWQ+XSBbLWZdIFstbSA8bXNnPnwtRiA8ZmlsZT5dIDx0YWduYW1lPiBbPGhlYWQ+XSIKIG1zZ3N0ciAiIgotImdpdCB0YWcgWy1hfC1zfC11IDxTY2hsw7xzc2VsLWlkPl0gWy1mXSBbLW0gPE5hY2hyaWNodD58LUYgPERhdGVpPl0gIgotIjxNYXJraWVydW5nc25hbWU+IFs8WndlaWc+XSIKKyJnaXQgdGFnIFstYXwtc3wtdSA8U2NobMO8c3NlbC1pZD5dIFstZl0gWy1tIDxOYWNocmljaHQ+fC1GIDxEYXRlaT5dIDxUYWduYW1lPiAiCisiWzxDb21taXQ+XSIKIAogIzogYnVpbHRpbi90YWcuYzoyMwogbXNnaWQgImdpdCB0YWcgLWQgPHRhZ25hbWU+Li4uIgotbXNnc3RyICJnaXQgdGFnIC1kIDxNYXJraWVydW5nc25hbWU+Li4uIgorbXNnc3RyICJnaXQgdGFnIC1kIDxUYWduYW1lPi4uLiIKIAogIzogYnVpbHRpbi90YWcuYzoyNAogbXNnaWQgIiIKICJnaXQgdGFnIC1sIFstbls8bnVtPl1dIFstLWNvbnRhaW5zIDxjb21taXQ+XSBbLS1wb2ludHMtYXQgPG9iamVjdD5dIFxuIgogIlx0XHRbPHBhdHRlcm4+Li4uXSIKIG1zZ3N0ciAiIgotImdpdCB0YWcgLWwgWy1uWzxOdW1tZXI+XV0gWy0tY29udGFpbnMgPFZlcnNpb24+XSBbLS1wb2ludHMtYXQgPE9iamVrdD5dIFxuIgorImdpdCB0YWcgLWwgWy1uWzxOdW1tZXI+XV0gWy0tY29udGFpbnMgPENvbW1pdD5dIFstLXBvaW50cy1hdCA8T2JqZWt0Pl0gXG4iCiAiXHRcdFs8TXVzdGVyPi4uLl0iCiAKICM6IGJ1aWx0aW4vdGFnLmM6MjYKIG1zZ2lkICJnaXQgdGFnIC12IDx0YWduYW1lPi4uLiIKLW1zZ3N0ciAiZ2l0IHRhZyAtdiA8TWFya2llcnVuZ3NuYW1lPi4uLiIKK21zZ3N0ciAiZ2l0IHRhZyAtdiA8VGFnbmFtZT4uLi4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6NjAKICMsIGMtZm9ybWF0CkBAIC04OTAzLDIyICs5MTQ3LDIyIEBACiAjOiBidWlsdGluL3RhZy5jOjIwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgbmFtZSB0b28gbG9uZzogJS4qcy4uLiIKLW1zZ3N0ciAiTWFya2llcnVuZ3NuYW1lIHp1IGxhbmc6ICUuKnMuLi4iCittc2dzdHIgIlRhZ25hbWUgenUgbGFuZzogJS4qcy4uLiIKIAogIzogYnVpbHRpbi90YWcuYzoyMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgbm90IGZvdW5kLiIKLW1zZ3N0ciAiTWFya2llcnVuZyAnJXMnIG5pY2h0IGdlZnVuZGVuLiIKK21zZ3N0ciAiVGFnICclcycgbmljaHQgZ2VmdW5kZW4uIgogCiAjOiBidWlsdGluL3RhZy5jOjIyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIHRhZyAnJXMnICh3YXMgJXMpXG4iCi1tc2dzdHIgIkdlbMO2c2NodGUgTWFya2llcnVuZyAnJXMnICh3YXIgJXMpXG4iCittc2dzdHIgIlRhZyAnJXMnIGdlbMO2c2NodCAod2FyICVzKVxuIgogCiAjOiBidWlsdGluL3RhZy5jOjIzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgdmVyaWZ5IHRoZSB0YWcgJyVzJyIKLW1zZ3N0ciAiS29ubnRlIE1hcmtpZXJ1bmcgJyVzJyBuaWNodCB2ZXJpZml6aWVyZW4iCittc2dzdHIgIktvbm50ZSBUYWcgJyVzJyBuaWNodCB2ZXJpZml6aWVyZW4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6MjQ5CiAjLCBjLWZvcm1hdApAQCAtODkyOCw3ICs5MTcyLDcgQEAKICJMaW5lcyBzdGFydGluZyB3aXRoICclYycgd2lsbCBiZSBpZ25vcmVkLlxuIgogbXNnc3RyICIiCiAiXG4iCi0iR2ViZW4gU2llIGVpbmUgTWFya2llcnVuZ3NiZXNjaHJlaWJ1bmcgZWluLlxuIgorIkdlYmVuIFNpZSBlaW5lIFRhZy1CZXNjaHJlaWJ1bmcgZWluLlxuIgogIlplaWxlbiwgZGllIG1pdCAnJWMnIGJlZ2lubmVuLCB3ZXJkZW4gaWdub3JpZXJ0LlxuIgogCiAjOiBidWlsdGluL3RhZy5jOjI1MwpAQCAtODk0MCwxNyArOTE4NCwxNyBAQAogIndhbnQgdG8uXG4iCiBtc2dzdHIgIiIKICJcbiIKLSJHZWJlbiBTaWUgZWluZSBNYXJraWVydW5nc2Jlc2NocmVpYnVuZyBlaW4uXG4iCisiR2ViZW4gU2llIGVpbmUgVGFnLUJlc2NocmVpYnVuZyBlaW4uXG4iCiAiWmVpbGVuLCBkaWUgbWl0ICclYycgYmVnaW5uZW4sIHdlcmRlbiBiZWhhbHRlbjsgU2llIGTDvHJmZW4gZGllc2VcbiIKICJzZWxic3QgZW50ZmVybmVuIHdlbm4gU2llIG3DtmNodGVuLlxuIgogCiAjOiBidWlsdGluL3RhZy5jOjI5MgogbXNnaWQgInVuYWJsZSB0byBzaWduIHRoZSB0YWciCi1tc2dzdHIgImtvbm50ZSBNYXJraWVydW5nIG5pY2h0IHNpZ25pZXJlbiIKK21zZ3N0ciAia29ubnRlIFRhZyBuaWNodCBzaWduaWVyZW4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6Mjk0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRhZyBmaWxlIgotbXNnc3RyICJrb25udGUgTWFya2llcnVuZ3NkYXRlaSBuaWNodCBzY2hyZWliZW4iCittc2dzdHIgImtvbm50ZSBUYWctRGF0ZWkgbmljaHQgc2NocmVpYmVuIgogCiAjOiBidWlsdGluL3RhZy5jOjMxOQogbXNnaWQgImJhZCBvYmplY3QgdHlwZS4iCkBAIC04OTU4LDE2ICs5MjAyLDE2IEBACiAKICM6IGJ1aWx0aW4vdGFnLmM6MzMyCiBtc2dpZCAidGFnIGhlYWRlciB0b28gYmlnLiIKLW1zZ3N0ciAiTWFya2llcnVuZ3Nrb3BmIHp1IGdyb8OfLiIKK21zZ3N0ciAiVGFnLUtvcGYgenUgZ3Jvw58uIgogCiAjOiBidWlsdGluL3RhZy5jOjM2OAogbXNnaWQgIm5vIHRhZyBtZXNzYWdlPyIKLW1zZ3N0ciAia2VpbmUgTWFya2llcnVuZ3NiZXNjaHJlaWJ1bmc/IgorbXNnc3RyICJrZWluZSBUYWctQmVzY2hyZWlidW5nPyIKIAogIzogYnVpbHRpbi90YWcuYzozNzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhlIHRhZyBtZXNzYWdlIGhhcyBiZWVuIGxlZnQgaW4gJXNcbiIKLW1zZ3N0ciAiRGllIE1hcmtpZXJ1bmdzYmVzY2hyZWlidW5nIHd1cmRlIGdlbGFzc2VuIGluICVzXG4iCittc2dzdHIgIkRpZSBUYWctQmVzY2hyZWlidW5nIHd1cmRlIGdlbGFzc2VuIGluICVzXG4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDIzCiBtc2dpZCAic3dpdGNoICdwb2ludHMtYXQnIHJlcXVpcmVzIGFuIG9iamVjdCIKQEAgLTg5ODAsNTkgKzkyMjQsNTkgQEAKIAogIzogYnVpbHRpbi90YWcuYzo0NDUKIG1zZ2lkICJsaXN0IHRhZyBuYW1lcyIKLW1zZ3N0ciAibGlzdGV0IE1hcmtpZXJ1bmdzbmFtZW4gYXVmIgorbXNnc3RyICJsaXN0ZXQgVGFnbmFtZW4gYXVmIgogCiAjOiBidWlsdGluL3RhZy5jOjQ0NwogbXNnaWQgInByaW50IDxuPiBsaW5lcyBvZiBlYWNoIHRhZyBtZXNzYWdlIgotbXNnc3RyICJ6ZWlndCA8bj4gWmVpbGVuIGplZGVyIE1hcmtpZXJ1bmdzYmVzY2hyZWlidW5nIgorbXNnc3RyICJ6ZWlndCA8bj4gWmVpbGVuIGplZGVyIFRhZy1CZXNjaHJlaWJ1bmciCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDQ5CiBtc2dpZCAiZGVsZXRlIHRhZ3MiCi1tc2dzdHIgImzDtnNjaHQgTWFya2llcnVuZ2VuIgorbXNnc3RyICJsw7ZzY2h0IFRhZ3MiCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDUwCiBtc2dpZCAidmVyaWZ5IHRhZ3MiCi1tc2dzdHIgIsO8YmVycHLDvGZ0IE1hcmtpZXJ1bmdlbiIKK21zZ3N0ciAiw7xiZXJwcsO8ZnQgVGFncyIKIAogIzogYnVpbHRpbi90YWcuYzo0NTIKIG1zZ2lkICJUYWcgY3JlYXRpb24gb3B0aW9ucyIKLW1zZ3N0ciAiT3B0aW9uZW4gZsO8ciBFcnN0ZWxsdW5nIHZvbiBNYXJraWVydW5nZW4iCittc2dzdHIgIk9wdGlvbmVuIGbDvHIgRXJzdGVsbHVuZyB2b24gVGFncyIKIAogIzogYnVpbHRpbi90YWcuYzo0NTQKIG1zZ2lkICJhbm5vdGF0ZWQgdGFnLCBuZWVkcyBhIG1lc3NhZ2UiCi1tc2dzdHIgImFubm90aWVydGUgTWFya2llcnVuZywgYmVuw7Z0aWd0IGVpbmUgQmVzY2hyZWlidW5nIgorbXNnc3RyICJhbm5vdGllcnRlcyBUYWcsIGJlbsO2dGlndCBlaW5lIEJlc2NocmVpYnVuZyIKIAogIzogYnVpbHRpbi90YWcuYzo0NTYKIG1zZ2lkICJ0YWcgbWVzc2FnZSIKLW1zZ3N0ciAiTWFya2llcnVuZ3NiZXNjaHJlaWJ1bmciCittc2dzdHIgIlRhZy1CZXNjaHJlaWJ1bmciCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDU4CiBtc2dpZCAiYW5ub3RhdGVkIGFuZCBHUEctc2lnbmVkIHRhZyIKLW1zZ3N0ciAiYW5ub3RpZXJ0ZSB1bmQgR1BHLXNpZ25pZXJ0ZSBNYXJraWVydW5nIgorbXNnc3RyICJhbm5vdGllcnRlcyB1bmQgR1BHLXNpZ25pZXJ0ZXMgVGFnIgogCiAjOiBidWlsdGluL3RhZy5jOjQ2MgogbXNnaWQgInVzZSBhbm90aGVyIGtleSB0byBzaWduIHRoZSB0YWciCi1tc2dzdHIgInZlcndlbmRldCBlaW5lbiBhbmRlcmVuIFNjaGzDvHNzZWwgdW0gZGllIE1hcmtpZXJ1bmcgenUgc2lnbmllcmVuIgorbXNnc3RyICJ2ZXJ3ZW5kZXQgZWluZW4gYW5kZXJlbiBTY2hsw7xzc2VsIHVtIGRhcyBUYWcgenUgc2lnbmllcmVuIgogCiAjOiBidWlsdGluL3RhZy5jOjQ2MwogbXNnaWQgInJlcGxhY2UgdGhlIHRhZyBpZiBleGlzdHMiCi1tc2dzdHIgImVyc2V0enQgZGllIE1hcmtpZXJ1bmcsIHdlbm4gc2llIGV4aXN0aWVydCIKK21zZ3N0ciAiZXJzZXR6dCBkYXMgVGFnLCB3ZW5uIGVzIGV4aXN0aWVydCIKIAogIzogYnVpbHRpbi90YWcuYzo0NjQKIG1zZ2lkICJzaG93IHRhZyBsaXN0IGluIGNvbHVtbnMiCi1tc2dzdHIgInplaWd0IExpc3RlIGRlciBNYXJraWVydW5nZW4gaW4gU3BhbHRlbiIKK21zZ3N0ciAiemVpZ3QgTGlzdGUgZGVyIFRhZ3MgaW4gU3BhbHRlbiIKIAogIzogYnVpbHRpbi90YWcuYzo0NjYKIG1zZ2lkICJUYWcgbGlzdGluZyBvcHRpb25zIgotbXNnc3RyICJPcHRpb25lbiBmw7xyIEF1Zmxpc3R1bmcgZGVyIE1hcmtpZXJ1bmdlbiIKK21zZ3N0ciAiT3B0aW9uZW4gZsO8ciBBdWZsaXN0dW5nIGRlciBUYWdzIgogCiAjOiBidWlsdGluL3RhZy5jOjQ2OQogbXNnaWQgInByaW50IG9ubHkgdGFncyB0aGF0IGNvbnRhaW4gdGhlIGNvbW1pdCIKLW1zZ3N0ciAiZ2lidCBudXIgTWFya2llcnVuZ2VuIGF1cywgZGllIGRpZXNlIFZlcnNpb24gYmVpbmhhbHRlbiIKK21zZ3N0ciAiZ2lidCBudXIgVGFncyBhdXMsIGRpZSBkaWVzZW4gQ29tbWl0IGJlaW5oYWx0ZW4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDc1CiBtc2dpZCAicHJpbnQgb25seSB0YWdzIG9mIHRoZSBvYmplY3QiCi1tc2dzdHIgImdpYnQgbnVyIE1hcmtpZXJ1bmdlbiB2b24gZGVtIE9iamVrdCBhdXMiCittc2dzdHIgImdpYnQgbnVyIFRhZ3Mgdm9uIGRlbSBPYmpla3QgYXVzIgogCiAjOiBidWlsdGluL3RhZy5jOjUwNAogbXNnaWQgIi0tY29sdW1uIGFuZCAtbiBhcmUgaW5jb21wYXRpYmxlIgpAQCAtOTA2MSwxMiArOTMwNSwxMiBAQAogIzogYnVpbHRpbi90YWcuYzo1NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0YWcgbmFtZS4iCi1tc2dzdHIgIiclcycgaXN0IGtlaW4gZ8O8bHRpZ2VyIE1hcmtpZXJ1bmdzbmFtZS4iCittc2dzdHIgIiclcycgaXN0IGtlaW4gZ8O8bHRpZ2VyIFRhZ25hbWUuIgogCiAjOiBidWlsdGluL3RhZy5jOjU2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBhbHJlYWR5IGV4aXN0cyIKLW1zZ3N0ciAiTWFya2llcnVuZyAnJXMnIGV4aXN0aWVydCBiZXJlaXRzIgorbXNnc3RyICJUYWcgJyVzJyBleGlzdGllcnQgYmVyZWl0cyIKIAogIzogYnVpbHRpbi90YWcuYzo1ODIKICMsIGMtZm9ybWF0CkBAIC05MDgxLDcgKzkzMjUsNyBAQAogIzogYnVpbHRpbi90YWcuYzo1ODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBkYXRlZCB0YWcgJyVzJyAod2FzICVzKVxuIgotbXNnc3RyICJBa3R1YWxpc2llcnRlIE1hcmtpZXJ1bmcgJyVzJyAod2FyICVzKVxuIgorbXNnc3RyICJUYWcgJyVzJyBha3R1YWxpc2llcnQgKHdhciAlcylcbiIKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo0MDEKIG1zZ2lkICJnaXQgdXBkYXRlLWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgpAQCAtOTA5MCwxMiArOTMzNCwxMiBAQAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MTgKIG1zZ2lkICJjb250aW51ZSByZWZyZXNoIGV2ZW4gd2hlbiBpbmRleCBuZWVkcyB1cGRhdGUiCiBtc2dzdHIgIiIKLSJBa3R1YWxpc2llcnVuZyBmb3J0c2V0emVuLCBhdWNoIHdlbm4gZGllIEJlcmVpdHN0ZWxsdW5nIGFrdHVhbGlzaWVydCB3ZXJkZW4gIgorIkFrdHVhbGlzaWVydW5nIGZvcnRzZXR6ZW4sIGF1Y2ggd2VubiBkaWUgU3RhZ2luZy1BcmVhIGFrdHVhbGlzaWVydCB3ZXJkZW4gIgogIm11c3MiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzIxCiBtc2dpZCAicmVmcmVzaDogaWdub3JlIHN1Ym1vZHVsZXMiCi1tc2dzdHIgIkFrdHVhbGlzaWVydW5nOiBpZ25vcmllcnQgVW50ZXJwcm9qZWt0ZSIKK21zZ3N0ciAiQWt0dWFsaXNpZXJ1bmc6IGlnbm9yaWVydCBTdWJtb2R1bGUiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI0CiBtc2dpZCAiZG8gbm90IGlnbm9yZSBuZXcgZmlsZXMiCkBAIC05MTA3LDEyICs5MzUxLDEyIEBACiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI4CiBtc2dpZCAibm90aWNlIGZpbGVzIG1pc3NpbmcgZnJvbSB3b3JrdHJlZSIKLW1zZ3N0ciAiYmVhY2h0ZXQgZmVobGVuZGUgRGF0ZWllbiBpbSBBcmJlaXRzYmF1bSIKK21zZ3N0ciAiYmVhY2h0ZXQgZmVobGVuZGUgRGF0ZWllbiBpbSBBcmJlaXRzdmVyemVpY2huaXMiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMwCiBtc2dpZCAicmVmcmVzaCBldmVuIGlmIGluZGV4IGNvbnRhaW5zIHVubWVyZ2VkIGVudHJpZXMiCiBtc2dzdHIgIiIKLSJha3R1YWxpc2llcnQsIGF1Y2ggd2VubiBkaWUgQmVyZWl0c3RlbGx1bmcgbmljaHQgenVzYW1tZW5nZWbDvGhydGUgRWludHLDpGdlICIKKyJha3R1YWxpc2llcnQsIGF1Y2ggd2VubiBkaWUgU3RhZ2luZy1BcmVhIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIEVpbnRyw6RnZSAiCiAiYmVpbmhhbHRldCIKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzMKQEAgLTkxMjksNyArOTM3Myw3IEBACiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQyCiBtc2dpZCAiYWRkIHRoZSBzcGVjaWZpZWQgZW50cnkgdG8gdGhlIGluZGV4IgotbXNnc3RyICJzdGVsbHQgZGVuIGFuZ2VnZWJlbmVuIEVpbnRyYWcgenVyIEVpbnRyYWd1bmcgYmVyZWl0IgorbXNnc3RyICJtZXJrdCBkZW4gYW5nZWdlYmVuZW4gRWludHJhZyB6dW0gQ29tbWl0IHZvciIKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDYKIG1zZ2lkICIoKy8tKXgiCkBAIC05MTU4LDEyICs5NDAyLDEzIEBACiAjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MwogbXNnaWQgImFkZCB0byBpbmRleCBvbmx5OyBkbyBub3QgYWRkIGNvbnRlbnQgdG8gb2JqZWN0IGRhdGFiYXNlIgogbXNnc3RyICIiCi0iZsO8Z3QgbnVyIGRlciBCZXJlaXRzdGVsbHVuZyBoaW56dTsgSW5oYWx0IHdpcmQgbmljaHQgZGVyIE9iamVrdC1EYXRlbmJhbmsgIgotImhpbnp1Z2Vmw7xndCIKKyJtZXJrdCBkaWUgw4RuZGVydW5nZW4gbnVyIHp1bSBDb21taXQgdm9yOyBJbmhhbHQgd2lyZCBuaWNodCBkZXIgT2JqZWt0LSIKKyJEYXRlbmJhbmsgaGluenVnZWbDvGd0IgogCiAjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NQogbXNnaWQgInJlbW92ZSBuYW1lZCBwYXRocyBldmVuIGlmIHByZXNlbnQgaW4gd29ya3RyZWUiCi1tc2dzdHIgImzDtnNjaHQgYmVuYW5udGUgUGZhZGUsIGF1Y2ggd2VubiBzaWUgc2ljaCBpbSBBcmJlaXRzYmF1bSBiZWZpbmRlbiIKK21zZ3N0ciAiIgorImzDtnNjaHQgYmVuYW5udGUgUGZhZGUsIGF1Y2ggd2VubiBzaWUgc2ljaCBpbSBBcmJlaXRzdmVyemVpY2huaXMgYmVmaW5kZW4iCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY3CiBtc2dpZCAid2l0aCAtLXN0ZGluOiBpbnB1dCBsaW5lcyBhcmUgdGVybWluYXRlZCBieSBudWxsIGJ5dGVzIgpAQCAtOTE3NSw3ICs5NDIwLDcgQEAKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzMKIG1zZ2lkICJhZGQgZW50cmllcyBmcm9tIHN0YW5kYXJkIGlucHV0IHRvIHRoZSBpbmRleCIKLW1zZ3N0ciAiZsO8Z3QgRWludHLDpGdlIHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSBkZXIgQmVyZWl0c3RlbGx1bmcgaGluenUiCittc2dzdHIgIm1lcmt0IEVpbnRyw6RnZSB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUgenVtIENvbW1pdCB2b3IiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc3CiBtc2dpZCAicmVwb3B1bGF0ZSBzdGFnZXMgIzIgYW5kICMzIGZvciB0aGUgbGlzdGVkIHBhdGhzIgpAQCAtOTE4NCwxMiArOTQyOSwxMSBAQAogCiAjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4MQogbXNnaWQgIm9ubHkgdXBkYXRlIGVudHJpZXMgdGhhdCBkaWZmZXIgZnJvbSBIRUFEIgotbXNnc3RyICIiCi0iYWt0dWFsaXNpZXJ0IG51ciBFaW50csOkZ2UsIGRpZSB1bnRlcnNjaGllZGxpY2ggenVyIFp3ZWlnc3BpdHplIChIRUFEKSBzaW5kIgorbXNnc3RyICJha3R1YWxpc2llcnQgbnVyIEVpbnRyw6RnZSwgZGllIHVudGVyc2NoaWVkbGljaCB6dSBIRUFEIHNpbmQiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg1CiBtc2dpZCAiaWdub3JlIGZpbGVzIG1pc3NpbmcgZnJvbSB3b3JrdHJlZSIKLW1zZ3N0ciAiaWdub3JpZXJ0IGZlaGxlbmRlIERhdGVpZW4gaW0gQXJiZWl0c2JhdW0iCittc2dzdHIgImlnbm9yaWVydCBmZWhsZW5kZSBEYXRlaWVuIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyIKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODgKIG1zZ2lkICJyZXBvcnQgYWN0aW9ucyB0byBzdGFuZGFyZCBvdXRwdXQiCkBAIC05MjAxLDcgKzk0NDUsNyBAQAogCiAjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5NAogbXNnaWQgIndyaXRlIGluZGV4IGluIHRoaXMgZm9ybWF0IgotbXNnc3RyICJzY2hyZWlidCBCZXJlaXRzdGVsbHVuZ3NkYXRlaSBpbiBkaWVzZW0gRm9ybWF0IgorbXNnc3RyICJzY2hyZWlidCBTdGFnaW5nLUFyZWEtRGF0ZWkgaW4gZGllc2VtIEZvcm1hdCIKIAogIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6NwogbXNnaWQgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAtZCA8cmVmbmFtZT4gWzxvbGR2YWw+XSIKQEAgLTkyNDEsMTEgKzk0ODUsMTEgQEAKIAogIzogYnVpbHRpbi92ZXJpZnktdGFnLmM6MTcKIG1zZ2lkICJnaXQgdmVyaWZ5LXRhZyBbLXZ8LS12ZXJib3NlXSA8dGFnPi4uLiIKLW1zZ3N0ciAiZ2l0IHZlcmlmeS10YWcgWy12fC0tdmVyYm9zZV0gPE1hcmtpZXJ1bmc+Li4uIgorbXNnc3RyICJnaXQgdmVyaWZ5LXRhZyBbLXZ8LS12ZXJib3NlXSA8VGFnPi4uLiIKIAogIzogYnVpbHRpbi92ZXJpZnktdGFnLmM6NzMKIG1zZ2lkICJwcmludCB0YWcgY29udGVudHMiCi1tc2dzdHIgImdpYnQgTWFya2llcnVuZ3NpbmhhbHRlIGF1cyIKK21zZ3N0ciAiZ2lidCBUYWctSW5oYWx0ZSBhdXMiCiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjEzCiBtc2dpZCAiZ2l0IHdyaXRlLXRyZWUgWy0tbWlzc2luZy1va10gWy0tcHJlZml4PTxwcmVmaXg+L10iCkBAIC05MjU3LDEzICs5NTAxLDEzIEBACiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjI3CiBtc2dpZCAid3JpdGUgdHJlZSBvYmplY3QgZm9yIGEgc3ViZGlyZWN0b3J5IDxwcmVmaXg+IgotbXNnc3RyICJzY2hyZWlidCBkYXMgQmF1bW9iamVrdCBmw7xyIGVpbiBVbnRlcnZlcnplaWNobmlzIDxQcmVmaXg+IgorbXNnc3RyICJzY2hyZWlidCBkYXMgXCJUcmVlXCItT2JqZWt0IGbDvHIgZWluIFVudGVydmVyemVpY2huaXMgPFByZWZpeD4iCiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjMwCiBtc2dpZCAib25seSB1c2VmdWwgZm9yIGRlYnVnZ2luZyIKIG1zZ3N0ciAibnVyIG7DvHR6bGljaCBmw7xyIEZlaGxlcnN1Y2hlIgogCi0jOiBnaXQuYzoxNgorIzogZ2l0LmM6MTcKIG1zZ2lkICIiCiAiJ2dpdCBoZWxwIC1hJyBhbmQgJ2dpdCBoZWxwIC1nJyBsaXN0cyBhdmFpbGFibGUgc3ViY29tbWFuZHMgYW5kIHNvbWVcbiIKICJjb25jZXB0IGd1aWRlcy4gU2VlICdnaXQgaGVscCA8Y29tbWFuZD4nIG9yICdnaXQgaGVscCA8Y29uY2VwdD4nXG4iCkBAIC05Mjc0LDI1ICs5NTE4LDI5IEBACiAib2RlciAnZ2l0IGhlbHAgPEtvbnplcHQ+JyB1bSBtZWhyIMO8YmVyIGVpbiBzcGV6aWZpc2NoZXMgS29tbWFuZG8gb2RlclxuIgogIktvbnplcHQgenUgZXJmYWhyZW4uIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MTU2CisjOiBwYXJzZS1vcHRpb25zLmg6MTQ0Cittc2dpZCAiZXhwaXJ5IGRhdGUiCittc2dzdHIgIlZlcmZhbGxzZGF0dW0iCisKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNTkKIG1zZ2lkICJuby1vcCAoYmFja3dhcmQgY29tcGF0aWJpbGl0eSkiCiBtc2dzdHIgIktlaW4gRWZmZWt0IChSw7xja3fDpHJ0c2tvbXBhdGliaWxpdMOkdCkiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzIKKyM6IHBhcnNlLW9wdGlvbnMuaDoyMzYKIG1zZ2lkICJiZSBtb3JlIHZlcmJvc2UiCiBtc2dzdHIgImVyd2VpdGVydGUgQXVzZ2FiZW4iCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzQKKyM6IHBhcnNlLW9wdGlvbnMuaDoyMzgKIG1zZ2lkICJiZSBtb3JlIHF1aWV0IgogbXNnc3RyICJ3ZW5pZ2VyIEF1c2dhYmVuIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjQwCisjOiBwYXJzZS1vcHRpb25zLmg6MjQ0CiBtc2dpZCAidXNlIDxuPiBkaWdpdHMgdG8gZGlzcGxheSBTSEEtMXMiCiBtc2dzdHIgImJlbnV0emUgPG4+IFppZmZlcm4genVyIEFuemVpZ2Ugdm9uIFNIQS0xcyIKIAogIzogY29tbW9uLWNtZHMuaDo4CiBtc2dpZCAiQWRkIGZpbGUgY29udGVudHMgdG8gdGhlIGluZGV4IgotbXNnc3RyICJzdGVsbHQgRGF0ZWlpbmhhbHRlIHp1ciBFaW50cmFndW5nIGJlcmVpdCIKK21zZ3N0ciAibWVya3QgRGF0ZWlpbmhhbHRlIHp1bSBDb21taXQgdm9yIgogCiAjOiBjb21tb24tY21kcy5oOjkKIG1zZ2lkICJGaW5kIGJ5IGJpbmFyeSBzZWFyY2ggdGhlIGNoYW5nZSB0aGF0IGludHJvZHVjZWQgYSBidWciCkBAIC05MzAxLDI3ICs5NTQ5LDI4IEBACiAKICM6IGNvbW1vbi1jbWRzLmg6MTAKIG1zZ2lkICJMaXN0LCBjcmVhdGUsIG9yIGRlbGV0ZSBicmFuY2hlcyIKLW1zZ3N0ciAiWmVpZ3QgYW4sIGVyc3RlbGx0IG9kZXIgZW50ZmVybnQgWndlaWdlIgorbXNnc3RyICJaZWlndCBhbiwgZXJzdGVsbHQgb2RlciBlbnRmZXJudCBCcmFuY2hlcyIKIAogIzogY29tbW9uLWNtZHMuaDoxMQogbXNnaWQgIkNoZWNrb3V0IGEgYnJhbmNoIG9yIHBhdGhzIHRvIHRoZSB3b3JraW5nIHRyZWUiCi1tc2dzdHIgIkNoZWNrdCBad2VpZ2Ugb2RlciBQZmFkZSBpbSBBcmJlaXRzendlaWcgYXVzIgorbXNnc3RyICJDaGVja3QgQnJhbmNoZXMgb2RlciBQZmFkZSBpbSBBcmJlaXRzdmVyemVpY2huaXMgYXVzIgogCiAjOiBjb21tb24tY21kcy5oOjEyCiBtc2dpZCAiQ2xvbmUgYSByZXBvc2l0b3J5IGludG8gYSBuZXcgZGlyZWN0b3J5IgotbXNnc3RyICJLbG9udCBlaW4gUHJvamVrdGFyY2hpdiBpbiBlaW5lbSBuZXVlbiBWZXJ6ZWljaG5pcyIKK21zZ3N0ciAiS2xvbnQgZWluIFJlcG9zaXRvcnkgaW4gZWluZW0gbmV1ZW4gVmVyemVpY2huaXMiCiAKICM6IGNvbW1vbi1jbWRzLmg6MTMKIG1zZ2lkICJSZWNvcmQgY2hhbmdlcyB0byB0aGUgcmVwb3NpdG9yeSIKLW1zZ3N0ciAiVHLDpGd0IMOEbmRlcnVuZ2VuIGluIGRhcyBQcm9qZWt0YXJjaGl2IGVpbiIKK21zZ3N0ciAiVHLDpGd0IMOEbmRlcnVuZ2VuIGluIGRhcyBSZXBvc2l0b3J5IGVpbiIKIAogIzogY29tbW9uLWNtZHMuaDoxNAogbXNnaWQgIlNob3cgY2hhbmdlcyBiZXR3ZWVuIGNvbW1pdHMsIGNvbW1pdCBhbmQgd29ya2luZyB0cmVlLCBldGMiCi1tc2dzdHIgIlplaWd0IMOEbmRlcnVuZ2VuIHp3aXNjaGVuIFZlcnNpb25lbiwgVmVyc2lvbiB1bmQgQXJiZWl0c3p3ZWlnLCBldGMuIGFuIgorbXNnc3RyICIiCisiWmVpZ3Qgw4RuZGVydW5nZW4gendpc2NoZW4gQ29tbWl0cywgQ29tbWl0IHVuZCBBcmJlaXRzdmVyemVpY2huaXMsIGV0Yy4gYW4iCiAKICM6IGNvbW1vbi1jbWRzLmg6MTUKIG1zZ2lkICJEb3dubG9hZCBvYmplY3RzIGFuZCByZWZzIGZyb20gYW5vdGhlciByZXBvc2l0b3J5IgotbXNnc3RyICJMw6RkdCBPYmpla3RlIHVuZCBSZWZlcmVuemVuIHZvbiBlaW5lbSBhbmRlcmVuIFByb2pla3RhcmNoaXYgaGVydW50ZXIiCittc2dzdHIgIkzDpGR0IE9iamVrdGUgdW5kIFJlZmVyZW56ZW4gdm9uIGVpbmVtIGFuZGVyZW4gUmVwb3NpdG9yeSBoZXJ1bnRlciIKIAogIzogY29tbW9uLWNtZHMuaDoxNgogbXNnaWQgIlByaW50IGxpbmVzIG1hdGNoaW5nIGEgcGF0dGVybiIKQEAgLTkzMzAsMTEgKzk1NzksMTEgQEAKICM6IGNvbW1vbi1jbWRzLmg6MTcKIG1zZ2lkICJDcmVhdGUgYW4gZW1wdHkgR2l0IHJlcG9zaXRvcnkgb3IgcmVpbml0aWFsaXplIGFuIGV4aXN0aW5nIG9uZSIKIG1zZ3N0ciAiIgotIkVyc3RlbGx0IGVpbiBsZWVyZXMgR2l0LVByb2pla3RhcmNoaXYgb2RlciBpbml0aWFsaXNpZXJ0IGVpbiBiZXN0ZWhlbmRlcyBuZXUiCisiRXJzdGVsbHQgZWluIGxlZXJlcyBHaXQtUmVwb3NpdG9yeSBvZGVyIGluaXRpYWxpc2llcnQgZWluIGJlc3RlaGVuZGVzIG5ldSIKIAogIzogY29tbW9uLWNtZHMuaDoxOAogbXNnaWQgIlNob3cgY29tbWl0IGxvZ3MiCi1tc2dzdHIgIlplaWd0IFZlcnNpb25zaGlzdG9yaWUgYW4iCittc2dzdHIgIlplaWd0IENvbW1pdC1IaXN0b3JpZSBhbiIKIAogIzogY29tbW9uLWNtZHMuaDoxOQogbXNnaWQgIkpvaW4gdHdvIG9yIG1vcmUgZGV2ZWxvcG1lbnQgaGlzdG9yaWVzIHRvZ2V0aGVyIgpAQCAtOTM0MywzMCArOTU5MiwzMCBAQAogIzogY29tbW9uLWNtZHMuaDoyMAogbXNnaWQgIk1vdmUgb3IgcmVuYW1lIGEgZmlsZSwgYSBkaXJlY3RvcnksIG9yIGEgc3ltbGluayIKIG1zZ3N0ciAiIgotIlZlcnNjaGllYnQgb2RlciBiZW5lbm50IGVpbmUgRGF0ZWksIGVpbiBWZXJ6ZWljaG5pcywgb2RlciBlaW5lIHN5bWJvbGlzY2hlICIKLSJWZXJrbsO8cGZ1bmcgdW0iCisiVmVyc2NoaWVidCBvZGVyIGJlbmVubnQgZWluZSBEYXRlaSwgZWluIFZlcnplaWNobmlzLCBvZGVyIGVpbmVuIHN5bWJvbGlzY2hlbiAiCisiVmVyd2VpcyB1bSIKIAogIzogY29tbW9uLWNtZHMuaDoyMQotbXNnaWQgIkZldGNoIGZyb20gYW5kIG1lcmdlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoIgorbXNnaWQgIkZldGNoIGZyb20gYW5kIGludGVncmF0ZSB3aXRoIGFub3RoZXIgcmVwb3NpdG9yeSBvciBhIGxvY2FsIGJyYW5jaCIKIG1zZ3N0ciAiIgotIkZvcmRlcnQgT2JqZWt0ZSB2b24gZWluZW0gZXh0ZXJuZW4gUHJvamVrdGFyY2hpdiBhbiB1bmQgZsO8aHJ0IHNpZSBtaXQgZWluZW0gIgotImFuZGVyZW4gUHJvamVrdGFyY2hpdiBvZGVyIGVpbmVtIGxva2FsZW4gWndlaWcgenVzYW1tZW4iCisiRm9yZGVydCBPYmpla3RlIHZvbiBlaW5lbSBleHRlcm5lbiBSZXBvc2l0b3J5IGFuIHVuZCBmw7xocnQgc2llIG1pdCBlaW5lbSAiCisiYW5kZXJlbiBSZXBvc2l0b3J5IG9kZXIgZWluZW0gbG9rYWxlbiBCcmFuY2ggenVzYW1tZW4iCiAKICM6IGNvbW1vbi1jbWRzLmg6MjIKIG1zZ2lkICJVcGRhdGUgcmVtb3RlIHJlZnMgYWxvbmcgd2l0aCBhc3NvY2lhdGVkIG9iamVjdHMiCi1tc2dzdHIgIkFrdHVhbGlzaWVydCBleHRlcm5lIFJlZmVyZW56ZW4gbWl0c2FtdCBkZW4gdmVyYnVuZGVuZW4gT2JqZWt0ZW4iCittc2dzdHIgIkFrdHVhbGlzaWVydCBSZW1vdGUtUmVmZXJlbnplbiBtaXRzYW10IGRlbiB2ZXJidW5kZW5lbiBPYmpla3RlbiIKIAogIzogY29tbW9uLWNtZHMuaDoyMwogbXNnaWQgIkZvcndhcmQtcG9ydCBsb2NhbCBjb21taXRzIHRvIHRoZSB1cGRhdGVkIHVwc3RyZWFtIGhlYWQiCi1tc2dzdHIgIkJhdXQgbG9rYWxlIFZlcnNpb25lbiBhdWYgZWluZW0gYWt0dWVsbGVyZW0gZXh0ZXJuZW4gWndlaWcgbmV1IGF1ZiIKK21zZ3N0ciAiQmF1dCBsb2thbGUgQ29tbWl0cyBhdWYgZWluZW0gYWt0dWVsbGVyZW0gVXBzdHJlYW0tQnJhbmNoIG5ldSBhdWYiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjQKIG1zZ2lkICJSZXNldCBjdXJyZW50IEhFQUQgdG8gdGhlIHNwZWNpZmllZCBzdGF0ZSIKLW1zZ3N0ciAiU2V0enQgZGllIGFrdHVlbGxlIFp3ZWlnc3BpdHplIChIRUFEKSB6dSBlaW5lbSBzcGV6aWZpemllcnRlbiBadXN0YW5kIgorbXNnc3RyICJTZXR6dCBha3R1ZWxsZW4gSEVBRCB6dSBlaW5lbSBzcGV6aWZpemllcnRlbiBadXN0YW5kIgogCiAjOiBjb21tb24tY21kcy5oOjI1CiBtc2dpZCAiUmVtb3ZlIGZpbGVzIGZyb20gdGhlIHdvcmtpbmcgdHJlZSBhbmQgZnJvbSB0aGUgaW5kZXgiCi1tc2dzdHIgIkzDtnNjaHQgRGF0ZWllbiBpbSBBcmJlaXRzendlaWcgdW5kIHZvbiBkZXIgQmVyZWl0c3RlbGx1bmciCittc2dzdHIgIkzDtnNjaHQgRGF0ZWllbiBpbSBBcmJlaXRzdmVyemVpY2huaXMgdW5kIHZvbiBkZXIgU3RhZ2luZy1BcmVhIgogCiAjOiBjb21tb24tY21kcy5oOjI2CiBtc2dpZCAiU2hvdyB2YXJpb3VzIHR5cGVzIG9mIG9iamVjdHMiCkBAIC05Mzc0LDU0ICs5NjIzLDUzIEBACiAKICM6IGNvbW1vbi1jbWRzLmg6MjcKIG1zZ2lkICJTaG93IHRoZSB3b3JraW5nIHRyZWUgc3RhdHVzIgotbXNnc3RyICJaZWlndCBkZW4gWnVzdGFuZCBkZXMgQXJiZWl0c3p3ZWlnZXMgYW4iCittc2dzdHIgIlplaWd0IGRlbiBadXN0YW5kIGRlcyBBcmJlaXRzdmVyemVpY2huaXNzZXMgYW4iCiAKICM6IGNvbW1vbi1jbWRzLmg6MjgKIG1zZ2lkICJDcmVhdGUsIGxpc3QsIGRlbGV0ZSBvciB2ZXJpZnkgYSB0YWcgb2JqZWN0IHNpZ25lZCB3aXRoIEdQRyIKIG1zZ3N0ciAiIgotIkVyemV1Z3QsIGxpc3RldCBhdWYsIGzDtnNjaHQgb2RlciB2ZXJpZml6aWVydCBlaW4gbWl0IEdQRyBzaWduaWVydGVzICIKLSJNYXJraWVydW5nc29iamVrdCIKKyJFcnpldWd0LCBsaXN0ZXQgYXVmLCBsw7ZzY2h0IG9kZXIgdmVyaWZpemllcnQgZWluIG1pdCBHUEcgc2lnbmllcnRlcyBUYWctIgorIk9iamVrdCIKIAogIzogZ2l0LWFtLnNoOjUwCiBtc2dpZCAiWW91IG5lZWQgdG8gc2V0IHlvdXIgY29tbWl0dGVyIGluZm8gZmlyc3QiCi1tc2dzdHIgIlNpZSBtw7xzc2VuIHp1ZXJzdCBkaWUgSW5mb3JtYXRpb25lbiBkZXMgRWludHJhZ2VuZGVuIHNldHplbi4iCittc2dzdHIgIlNpZSBtw7xzc2VuIHp1ZXJzdCBkaWUgSW5mb3JtYXRpb25lbiB6dW0gQ29tbWl0LUVyc3RlbGxlciBzZXR6ZW4uIgogCiAjOiBnaXQtYW0uc2g6OTUKIG1zZ2lkICIiCiAiWW91IHNlZW0gdG8gaGF2ZSBtb3ZlZCBIRUFEIHNpbmNlIHRoZSBsYXN0ICdhbScgZmFpbHVyZS5cbiIKICJOb3QgcmV3aW5kaW5nIHRvIE9SSUdfSEVBRCIKIG1zZ3N0ciAiIgotIlNpZSBzY2hlaW5lbiBzZWl0IGRlbSBsZXR6dGVuIGdlc2NoZWl0ZXJ0ZW4gJ2FtJyBkaWUgWndlaWdzcGl0emUgKEhFQUQpXG4iCi0iZ2XDpG5kZXJ0IHp1IGhhYmVuLlxuIgorIlNpZSBzY2hlaW5lbiBzZWl0IGRlbSBsZXR6dGVuIGdlc2NoZWl0ZXJ0ZW4gJ2FtJyBIRUFEIGdlw6RuZGVydCB6dSBoYWJlbi5cbiIKICJLZWluZSBadXLDvGNrc2V0enVuZyB6dSBPUklHX0hFQUQuIgogCiAjOiBnaXQtYW0uc2g6MTA1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCIkY21kbGluZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgogIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuIFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIG1zZ3N0ciAiIgotIldlbm4gU2llIGRhcyBQcm9ibGVtIGdlbMO2c3QgaGFiZW4sIGbDvGhyZW4gU2llIFwiJGNtZGxpbmUgLS1yZXNvbHZlZFwiIGF1cy5cbiIKKyJXZW5uIFNpZSBkYXMgUHJvYmxlbSBnZWzDtnN0IGhhYmVuLCBmw7xocmVuIFNpZSBcIiRjbWRsaW5lIC0tY29udGludWVcIiBhdXMuXG4iCiAiRmFsbHMgU2llIGRpZXNlbiBQYXRjaCBhdXNsYXNzZW4gbcO2Y2h0ZW4sIGbDvGhyZW4gU2llIHN0YXR0ZGVzc2VuXG4iCiAiXCIkY21kbGluZSAtLXNraXBcIiBhdXMuXG4iCi0iVW0gZGVuIHVyc3Byw7xuZ2xpY2hlbiBad2VpZyB3aWVkZXJoZXJ6dXN0ZWxsZW4gdW5kIGRpZSBBbndlbmR1bmcgZGVyXG4iCisiVW0gZGVuIHVyc3Byw7xuZ2xpY2hlbiBCcmFuY2ggd2llZGVyaGVyenVzdGVsbGVuIHVuZCBkaWUgQW53ZW5kdW5nIGRlclxuIgogIlBhdGNoZXMgYWJ6dWJyZWNoZW4sIGbDvGhyZW4gU2llIFwiJGNtZGxpbmUgLS1hYm9ydFwiIGF1cy4iCiAKICM6IGdpdC1hbS5zaDoxMjEKIG1zZ2lkICJDYW5ub3QgZmFsbCBiYWNrIHRvIHRocmVlLXdheSBtZXJnZS4iCi1tc2dzdHIgIkthbm4gbmljaHQgenUgMy1XZWdlLVp1c2FtbWVuZsO8aHJ1bmcgenVyw7xja2ZhbGxlbi4iCittc2dzdHIgIkthbm4gbmljaHQgenUgMy1XZWdlLU1lcmdlIHp1csO8Y2tmYWxsZW4uIgogCiAjOiBnaXQtYW0uc2g6MTM3CiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyBuZWNlc3NhcnkgYmxvYnMgdG8gZmFsbCBiYWNrIG9uIDMtd2F5IG1lcmdlLiIKIG1zZ3N0ciAiIgotIkRlbSBQcm9qZWt0YXJjaGl2IGZlaGxlbiBub3R3ZW5kaWdlIEJsb2JzIHVtIGF1ZiBlaW5lIDMtV2VnZS1adXNhbW1lbmbDvGhydW5nICIKKyJEZW0gUmVwb3NpdG9yeSBmZWhsZW4gbm90d2VuZGlnZSBCbG9icyB1bSBhdWYgZWluZW4gMy1XZWdlLU1lcmdlICIKICJ6dXLDvGNrenVmYWxsZW4uIgogCiAjOiBnaXQtYW0uc2g6MTM5CiBtc2dpZCAiVXNpbmcgaW5kZXggaW5mbyB0byByZWNvbnN0cnVjdCBhIGJhc2UgdHJlZS4uLiIKIG1zZ3N0ciAiIgotIlZlcndlbmRlIEluZm9ybWF0aW9uZW4gYXVzIGRlciBCZXJlaXRzdGVsbHVuZyB1bSBlaW5lbiBCYXNpc2JhdW0gIgorIlZlcndlbmRlIEluZm9ybWF0aW9uZW4gYXVzIGRlciBTdGFnaW5nLUFyZWEgdW0gZWluZW4gQmFzaXN2ZXJ6ZWljaG5pcyAiCiAibmFjaHp1c3RlbGxlbiIKIAogIzogZ2l0LWFtLnNoOjE1NApAQCAtOTQzNCwxMSArOTY4MiwxMSBAQAogCiAjOiBnaXQtYW0uc2g6MTYzCiBtc2dpZCAiRmFsbGluZyBiYWNrIHRvIHBhdGNoaW5nIGJhc2UgYW5kIDMtd2F5IG1lcmdlLi4uIgotbXNnc3RyICJGYWxsZSB6dXLDvGNrIHp1bSBQYXRjaGVuIGRlciBCYXNpcyB1bmQgZGVyIDMtV2VnZS1adXNhbW1lbmbDvGhydW5nLi4uIgorbXNnc3RyICJGYWxsZSB6dXLDvGNrIHp1bSBQYXRjaGVuIGRlciBCYXNpcyB1bmQgZGVzIDMtV2VnZS1NZXJnZXMuLi4iCiAKICM6IGdpdC1hbS5zaDoxNzkKIG1zZ2lkICJGYWlsZWQgdG8gbWVyZ2UgaW4gdGhlIGNoYW5nZXMuIgotbXNnc3RyICJadXNhbW1lbmbDvGhydW5nIGRlciDDhG5kZXJ1bmdlbiBmZWhsZ2VzY2hsYWdlbiIKK21zZ3N0ciAiTWVyZ2UgZGVyIMOEbmRlcnVuZ2VuIGZlaGxnZXNjaGxhZ2VuIgogCiAjOiBnaXQtYW0uc2g6Mjc0CiBtc2dpZCAiT25seSBvbmUgU3RHSVQgcGF0Y2ggc2VyaWVzIGNhbiBiZSBhcHBsaWVkIGF0IG9uY2UiCkBAIC05NDYxLDI4ICs5NzA5LDM1IEBACiAiRGllIC1iLy0tYmluYXJ5IE9wdGlvbiBoYXQgc2VpdCBMYW5nZW0ga2VpbmVuIEVmZmVrdCB1bmQgd2lyZFxuIgogImVudGZlcm50LiBCaXR0ZSBuaWNodCBtZWhyIHZlcndlbmRlbi4iCiAKLSM6IGdpdC1hbS5zaDo0NzcKKyM6IGdpdC1hbS5zaDo0NzkKICMsIHNoLWZvcm1hdAogbXNnaWQgInByZXZpb3VzIHJlYmFzZSBkaXJlY3RvcnkgJGRvdGVzdCBzdGlsbCBleGlzdHMgYnV0IG1ib3ggZ2l2ZW4uIgogbXNnc3RyICIiCi0iVm9yaGVyaWdlcyBWZXJ6ZWljaG5pcyBkZXMgTmV1YXVmYmF1cyAkZG90ZXN0IGV4aXN0aWVydCBub2NoLCBhYmVyIG1ib3ggIgotImdlZ2ViZW4uIgorIlZvcmhlcmlnZXMgUmViYXNlLVZlcnplaWNobmlzICRkb3Rlc3QgZXhpc3RpZXJ0IG5vY2gsIGFiZXIgbWJveCBnZWdlYmVuLiIKIAotIzogZ2l0LWFtLnNoOjQ4MgorIzogZ2l0LWFtLnNoOjQ4NAogbXNnaWQgIlBsZWFzZSBtYWtlIHVwIHlvdXIgbWluZC4gLS1za2lwIG9yIC0tYWJvcnQ/IgogbXNnc3RyICJCaXR0ZSB3ZXJkZW4gU2llIHNpY2gga2xhci4gLS1za2lwIG9kZXIgLS1hYm9ydD8iCiAKLSM6IGdpdC1hbS5zaDo1MDkKKyM6IGdpdC1hbS5zaDo1MjAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJTdHJheSAkZG90ZXN0IGRpcmVjdG9yeSBmb3VuZC5cbiIKKyJVc2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlbW92ZSBpdC4iCittc2dzdHIgIiIKKyJTdHJheSAkZG90ZXN0IFZlcnplaWNobmlzIGdlZnVuZGVuLlxuIgorIkJlbnV0emVuIFNpZSBcImdpdCBhbSAtLWFib3J0XCIgdW0gZXMgenUgZW50ZmVybmVuLiIKKworIzogZ2l0LWFtLnNoOjUyOAogbXNnaWQgIlJlc29sdmUgb3BlcmF0aW9uIG5vdCBpbiBwcm9ncmVzcywgd2UgYXJlIG5vdCByZXN1bWluZy4iCiBtc2dzdHIgIkVzIGlzdCBrZWluZSBBdWZsw7ZzdW5nIGltIEdhbmdlLCBlcyB3aXJkIG5pY2h0IGZvcnRnZXNldHp0LiIKIAotIzogZ2l0LWFtLnNoOjU3NQorIzogZ2l0LWFtLnNoOjU5NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiRGlydHkgaW5kZXg6IGNhbm5vdCBhcHBseSBwYXRjaGVzIChkaXJ0eTogJGZpbGVzKSIKLW1zZ3N0ciAiIgotIlVuc2F1YmVyZSBCZXJlaXRzdGVsbHVuZzoga2FubiBQYXRjaGVzIG5pY2h0IGFud2VuZGVuICh1bnNhdWJlcjogJGZpbGVzKSIKK21zZ3N0ciAiR2XDpG5kZXJ0ZSBTdGFnaW5nLUFyZWE6IGthbm4gUGF0Y2hlcyBuaWNodCBhbndlbmRlbiAoZ2XDpG5kZXJ0OiAkZmlsZXMpIgogCi0jOiBnaXQtYW0uc2g6Njc5CisjOiBnaXQtYW0uc2g6Njk4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiUGF0Y2ggaXMgZW1wdHkuICBXYXMgaXQgc3BsaXQgd3Jvbmc/XG4iCkBAIC05NDkyLDY1ICs5NzQ3LDY1IEBACiAiUGF0Y2ggaXN0IGxlZXIuIFd1cmRlIGVyIGZhbHNjaCBhdWZnZXRlaWx0P1xuIgogIldlbm4gU2llIGRpZXNlbiBQYXRjaCBhdXNsYXNzZW4gbcO2Y2h0ZW4sIGbDvGhyZW4gU2llIHN0YXR0ZGVzc2VuXG4iCiAiXCIkY21kbGluZSAtLXNraXBcIiBhdXMuXG4iCi0iVW0gZGVuIHVyc3Byw7xuZ2xpY2hlbiBad2VpZyB3aWVkZXJoZXJ6dXN0ZWxsZW4gdW5kIGRpZSBBbndlbmR1bmcgZGVyICIKKyJVbSBkZW4gdXJzcHLDvG5nbGljaGVuIEJyYW5jaCB3aWVkZXJoZXJ6dXN0ZWxsZW4gdW5kIGRpZSBBbndlbmR1bmcgZGVyICIKICJQYXRjaGVzXG4iCiAiYWJ6dWJyZWNoZW4sIGbDvGhyZW4gU2llIFwiJGNtZGxpbmUgLS1hYm9ydFwiIGF1cy4iCiAKLSM6IGdpdC1hbS5zaDo3MDYKKyM6IGdpdC1hbS5zaDo3MjUKIG1zZ2lkICJQYXRjaCBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuIgogbXNnc3RyICJQYXRjaCBlbnRow6RsdCBrZWluZSBnw7xsdGlnZSBFbWFpbC1BZHJlc3NlLiIKIAotIzogZ2l0LWFtLnNoOjc1MworIzogZ2l0LWFtLnNoOjc3MgogbXNnaWQgImNhbm5vdCBiZSBpbnRlcmFjdGl2ZSB3aXRob3V0IHN0ZGluIGNvbm5lY3RlZCB0byBhIHRlcm1pbmFsLiIKIG1zZ3N0ciAiIgogIkthbm4gbmljaHQgaW50ZXJha3RpdiBzZWluLCBvaG5lIGRhc3MgZGllIFN0YW5kYXJkLUVpbmdhYmUgbWl0IGVpbmVtICIKICJUZXJtaW5hbCB2ZXJidW5kZW4gaXN0LiIKIAotIzogZ2l0LWFtLnNoOjc1NworIzogZ2l0LWFtLnNoOjc3NgogbXNnaWQgIkNvbW1pdCBCb2R5IGlzOiIKLW1zZ3N0ciAiQmVzY2hyZWlidW5nIGRlciBFaW50cmFndW5nIGlzdDoiCittc2dzdHIgIkNvbW1pdC1CZXNjaHJlaWJ1bmcgaXN0OiIKIAogIy4gVFJBTlNMQVRPUlM6IE1ha2Ugc3VyZSB0byBpbmNsdWRlIFt5XSwgW25dLCBbZV0sIFt2XSBhbmQgW2FdCiAjLiBpbiB5b3VyIHRyYW5zbGF0aW9uLiBUaGUgcHJvZ3JhbSB3aWxsIG9ubHkgYWNjZXB0IEVuZ2xpc2gKICMuIGlucHV0IGF0IHRoaXMgcG9pbnQuCi0jOiBnaXQtYW0uc2g6NzY0CisjOiBnaXQtYW0uc2g6NzgzCiBtc2dpZCAiQXBwbHk/IFt5XWVzL1tuXW8vW2VdZGl0L1t2XWlldyBwYXRjaC9bYV1jY2VwdCBhbGwgIgogbXNnc3RyICJBbndlbmRlbj8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCiAKLSM6IGdpdC1hbS5zaDo4MDAKKyM6IGdpdC1hbS5zaDo4MTkKICMsIHNoLWZvcm1hdAogbXNnaWQgIkFwcGx5aW5nOiAkRklSU1RMSU5FIgogbXNnc3RyICJXZW5kZSBhbjogJEZJUlNUTElORSIKIAotIzogZ2l0LWFtLnNoOjgyMQorIzogZ2l0LWFtLnNoOjg0MAogbXNnaWQgIiIKICJObyBjaGFuZ2VzIC0gZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz9cbiIKICJJZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG8gc3RhZ2UsIGNoYW5jZXMgYXJlIHRoYXQgc29tZXRoaW5nIGVsc2VcbiIKICJhbHJlYWR5IGludHJvZHVjZWQgdGhlIHNhbWUgY2hhbmdlczsgeW91IG1pZ2h0IHdhbnQgdG8gc2tpcCB0aGlzIHBhdGNoLiIKIG1zZ3N0ciAiIgogIktlaW5lIMOEbmRlcnVuZ2VuIC0gaGFiZW4gU2llIHZlcmdlc3NlbiAnZ2l0IGFkZCcgenUgYmVudXR6ZW4/XG4iCi0iV2VubiBrZWluZSDDhG5kZXJ1bmdlbiBtZWhyIHp1bSBCZXJlaXRzdGVsbGVuIHZvcmhhbmRlbiBzaW5kLCBrw7ZubnRlblxuIgorIldlbm4ga2VpbmUgw4RuZGVydW5nZW4gbWVociB6dW0gQ29tbWl0IHZvcnp1bWVya2VuIHNpbmQsIGvDtm5udGVuXG4iCiAiZGllc2UgYmVyZWl0cyBhbmRlcndlaXRpZyBlaW5nZWbDvGd0IHdvcmRlbiBzZWluOyBTaWUga8O2bm50ZW4gZGllc2VuIFBhdGNoXG4iCiAiYXVzbGFzc2VuLiIKIAotIzogZ2l0LWFtLnNoOjgyOQorIzogZ2l0LWFtLnNoOjg0OAogbXNnaWQgIiIKICJZb3Ugc3RpbGwgaGF2ZSB1bm1lcmdlZCBwYXRocyBpbiB5b3VyIGluZGV4XG4iCiAiZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz8iCiBtc2dzdHIgIiIKLSJTaWUgaGFiZW4gaW1tZXIgbm9jaCBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBQZmFkZSBpbiBkZXIgQmVyZWl0c3RlbGx1bmcuXG4iCisiU2llIGhhYmVuIGltbWVyIG5vY2ggbmljaHQgenVzYW1tZW5nZWbDvGhydGUgUGZhZGUgaW4gZGVyIFN0YWdpbmctQXJlYS5cbiIKICJIYWJlbiBTaWUgdmVyZ2Vzc2VuICdnaXQgYWRkJyB6dSBiZW51dHplbj8iCiAKLSM6IGdpdC1hbS5zaDo4NDUKKyM6IGdpdC1hbS5zaDo4NjQKIG1zZ2lkICJObyBjaGFuZ2VzIC0tIFBhdGNoIGFscmVhZHkgYXBwbGllZC4iCiBtc2dzdHIgIktlaW5lIMOEbmRlcnVuZ2VuIC0tIFBhdGNoZXMgYmVyZWl0cyBhbmdld2VuZGV0LiIKIAotIzogZ2l0LWFtLnNoOjg1NQorIzogZ2l0LWFtLnNoOjg3NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiUGF0Y2ggZmFpbGVkIGF0ICRtc2dudW0gJEZJUlNUTElORSIKIG1zZ3N0ciAiQW53ZW5kdW5nIGRlcyBQYXRjaGVzIGZlaGxnZXNjaGxhZ2VuIGJlaSAkbXNnbnVtICRGSVJTVExJTkUiCiAKLSM6IGdpdC1hbS5zaDo4NTgKKyM6IGdpdC1hbS5zaDo4NzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgY29weSBvZiB0aGUgcGF0Y2ggdGhhdCBmYWlsZWQgaXMgZm91bmQgaW46XG4iCkBAIC05NTU5LDcgKzk4MTQsNyBAQAogIkRpZSBLb3BpZSBkZXMgZmVobGdlc2NobGFnZW5lbiBQYXRjaGVzIGJlZmluZGV0IHNpY2ggaW46XG4iCiAiICAgJGRvdGVzdC9wYXRjaCIKIAotIzogZ2l0LWFtLnNoOjg3NgorIzogZ2l0LWFtLnNoOjg5NQogbXNnaWQgImFwcGx5aW5nIHRvIGFuIGVtcHR5IGhpc3RvcnkiCiBtc2dzdHIgIndlbmRlIHp1IGxlZXJlciBIaXN0b3JpZSBhbiIKIApAQCAtOTU4MiwxMSArOTgzNywxMSBAQAogIzogZ2l0LWJpc2VjdC5zaDo5OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmcnIGRvZXMgbm90IGFwcGVhciB0byBiZSBhIHZhbGlkIHJldmlzaW9uIgotbXNnc3RyICInJGFyZycgc2NoZWludCBrZWluZSBnw7xsdGlnZSBSZXZpc2lvbiB6dSBzZWluIgorbXNnc3RyICInJGFyZycgc2NoZWludCBrZWluIGfDvGx0aWdlciBDb21taXQgenUgc2VpbiIKIAogIzogZ2l0LWJpc2VjdC5zaDoxMTcKIG1zZ2lkICJCYWQgSEVBRCAtIEkgbmVlZCBhIEhFQUQiCi1tc2dzdHIgIlVuZ8O8bHRpZ2UgWndlaWdzcGl0emUgKEhFQUQpIC0gWndlaWdzcGl0emUgKEhFQUQpIHdpcmQgYmVuw7Z0aWd0IgorbXNnc3RyICJVbmfDvGx0aWdlciBIRUFEIC0gSEVBRCB3aXJkIGJlbsO2dGlndCIKIAogIzogZ2l0LWJpc2VjdC5zaDoxMzAKICMsIHNoLWZvcm1hdApAQCAtOTU5NCwxNSArOTg0OSwxNSBAQAogIkNoZWNraW5nIG91dCAnJHN0YXJ0X2hlYWQnIGZhaWxlZC4gVHJ5ICdnaXQgYmlzZWN0IHJlc2V0IDx2YWxpZGJyYW5jaD4nLiIKIG1zZ3N0ciAiIgogIkF1c2NoZWNrZW4gdm9uICckc3RhcnRfaGVhZCcgZmVobGdlc2NobGFnZW4uIFZlcnN1Y2hlbiBTaWUgJ2dpdCBiaXNlY3QgcmVzZXQgIgotIjxndWVsdGlnZXJ6d2VpZz4nLiIKKyI8Z3VlbHRpZ2VyYnJhbmNoPicuIgogCiAjOiBnaXQtYmlzZWN0LnNoOjE0MAogbXNnaWQgIndvbid0IGJpc2VjdCBvbiBzZWVrZWQgdHJlZSIKLW1zZ3N0ciAiYmluw6RyZSBTdWNoZSBhdWYgZ2VzdWNodGVtIFp3ZWlnIG5pY2h0IG3DtmdsaWNoIgorbXNnc3RyICJiaW7DpHJlIFN1Y2hlIGF1ZiBnZXN1Y2h0ZW0gQnJhbmNoIG5pY2h0IG3DtmdsaWNoIgogCiAjOiBnaXQtYmlzZWN0LnNoOjE0NAogbXNnaWQgIkJhZCBIRUFEIC0gc3RyYW5nZSBzeW1ib2xpYyByZWYiCi1tc2dzdHIgIlVuZ8O8bHRpZ2UgWndlaWdzcGl0emUgKEhFQUQpIC0gbWVya3fDvHJkaWdlIHN5bWJvbGlzY2hlIFJlZmVyZW56IgorbXNnc3RyICJVbmfDvGx0aWdlciBIRUFEIC0gbWVya3fDvHJkaWdlIHN5bWJvbGlzY2hlIFJlZmVyZW56IgogCiAjOiBnaXQtYmlzZWN0LnNoOjE4OQogIywgc2gtZm9ybWF0CkBAIC05NjMxLDcgKzk4ODYsNyBAQAogIy4gdGhpcyBpcyBsZXNzIG9wdGltdW0uCiAjOiBnaXQtYmlzZWN0LnNoOjI3MwogbXNnaWQgIldhcm5pbmc6IGJpc2VjdGluZyBvbmx5IHdpdGggYSBiYWQgY29tbWl0LiIKLW1zZ3N0ciAiV2FybnVuZzogYmluw6RyZSBTdWNoZSBudXIgbWl0IGVpbmVyIGZlaGxlcmhhZnRlbiBWZXJzaW9uIgorbXNnc3RyICJXYXJudW5nOiBiaW7DpHJlIFN1Y2hlIG51ciBtaXQgZWluZW0gZmVobGVyaGFmdGVuIENvbW1pdCIKIAogIy4gVFJBTlNMQVRPUlM6IE1ha2Ugc3VyZSB0byBpbmNsdWRlIFtZXSBhbmQgW25dIGluIHlvdXIKICMuIHRyYW5zbGF0aW9uLiBUaGUgcHJvZ3JhbSB3aWxsIG9ubHkgYWNjZXB0IEVuZ2xpc2ggaW5wdXQKQEAgLTk2NDUsNyArOTkwMCw4IEBACiAiWW91IG5lZWQgdG8gZ2l2ZSBtZSBhdCBsZWFzdCBvbmUgZ29vZCBhbmQgb25lIGJhZCByZXZpc2lvbnMuXG4iCiAiKFlvdSBjYW4gdXNlIFwiZ2l0IGJpc2VjdCBiYWRcIiBhbmQgXCJnaXQgYmlzZWN0IGdvb2RcIiBmb3IgdGhhdC4pIgogbXNnc3RyICIiCi0iU2llIG3DvHNzZW4gbWluZGVzdGVucyBlaW5lIGtvcnJla3RlIHVuZCBlaW5lIGZlaGxlcmhhZnRlIFJldmlzaW9uIGFuZ2ViZW4uXG4iCisiU2llIG3DvHNzZW4gbWluZGVzdGVucyBlaW5lbiBrb3JyZWt0ZW4gdW5kIGVpbmVuIGZlaGxlcmhhZnRlbiBDb21taXQgIgorImFuZ2ViZW4uXG4iCiAiKFNpZSBrw7ZubmVuIGRhZsO8ciBcImdpdCBiaXNlY3QgYmFkXCIgdW5kIFwiZ2l0IGJpc2VjdCBnb29kXCIgYmVudXR6ZW4uKSIKIAogIzogZ2l0LWJpc2VjdC5zaDoyOTIKQEAgLTk2NTUsNyArOTkxMSw3IEBACiAiKFlvdSBjYW4gdXNlIFwiZ2l0IGJpc2VjdCBiYWRcIiBhbmQgXCJnaXQgYmlzZWN0IGdvb2RcIiBmb3IgdGhhdC4pIgogbXNnc3RyICIiCiAiU2llIG3DvHNzZW4gbWl0IFwiZ2l0IGJpc2VjdCBzdGFydFwiIGJlZ2lubmVuLlxuIgotIkRhbmFjaCBtw7xzc2VuIFNpZSBtaW5kZXN0ZW5zIGVpbmUga29ycmVrdGUgdW5kIGVpbmUgZmVobGVyaGFmdGUgUmV2aXNpb24gIgorIkRhbmFjaCBtw7xzc2VuIFNpZSBtaW5kZXN0ZW5zIGVpbmVuIGtvcnJla3RlbiB1bmQgZWluZW4gZmVobGVyaGFmdGVuIENvbW1pdCAiCiAiYW5nZWJlbi5cbiIKICIoU2llIGvDtm5uZW4gZGFmw7xyIFwiZ2l0IGJpc2VjdCBiYWRcIiB1bmQgXCJnaXQgYmlzZWN0IGdvb2RcIiBiZW51dHplbi4pIgogCkBAIC05NjY2LDcgKzk5MjIsNyBAQAogIzogZ2l0LWJpc2VjdC5zaDozNzAKICMsIHNoLWZvcm1hdAogbXNnaWQgIickaW52YWxpZCcgaXMgbm90IGEgdmFsaWQgY29tbWl0IgotbXNnc3RyICInJGludmFsaWQnIGlzdCBrZWluZSBnw7xsdGlnZSBWZXJzaW9uIgorbXNnc3RyICInJGludmFsaWQnIGlzdCBrZWluIGfDvGx0aWdlciBDb21taXQiCiAKICM6IGdpdC1iaXNlY3Quc2g6Mzc5CiAjLCBzaC1mb3JtYXQKQEAgLTk2NzQsOCArOTkzMCw4IEBACiAiQ291bGQgbm90IGNoZWNrIG91dCBvcmlnaW5hbCBIRUFEICckYnJhbmNoJy5cbiIKICJUcnkgJ2dpdCBiaXNlY3QgcmVzZXQgPGNvbW1pdD4nLiIKIG1zZ3N0ciAiIgotIktvbm50ZSBkaWUgdXJzcHLDvG5nbGljaGUgWndlaWdzcGl0emUgKEhFQUQpICckYnJhbmNoJyBuaWNodCBhdXNjaGVja2VuLlxuIgotIlZlcnN1Y2hlbiBTaWUgJ2dpdCBiaXNlY3QgcmVzZXQgPFZlcnNpb24+Jy4iCisiS29ubnRlIGRlbiB1cnNwcsO8bmdsaWNoZW4gSEVBRCAnJGJyYW5jaCcgbmljaHQgYXVzY2hlY2tlbi5cbiIKKyJWZXJzdWNoZW4gU2llICdnaXQgYmlzZWN0IHJlc2V0IDxDb21taXQ+Jy4iCiAKICM6IGdpdC1iaXNlY3Quc2g6NDA2CiBtc2dpZCAiTm8gbG9nZmlsZSBnaXZlbiIKQEAgLTk3MjgsMTAgKzk5ODQsOSBAQAogImFzIGFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbiwgb3IgdXNlICdnaXQgY29tbWl0IC1hJy4iCiBtc2dzdHIgIiIKICJcInB1bGxcIiBpc3QgbmljaHQgbcO2Z2xpY2gsIHdlaWwgU2llIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIERhdGVpZW4gaGFiZW4uXG4iCi0iQml0dGUga29ycmlnaWVyZW4gU2llIGRpZXMgaW0gQXJiZWl0c2JhdW0gdW5kIGJlbnV0emVuIFNpZSBkYW5uICdnaXQgYWRkL3JtICIKLSI8RGF0ZWk+J1xuIgotInVtIGRpZSBBdWZsw7ZzdW5nIGVudHNwcmVjaGVuZCB6dSBtYXJraWVyZW4sIG9kZXIgYmVudXR6ZW4gU2llICdnaXQgY29tbWl0IC0iCi0iYScuIgorIkJpdHRlIGtvcnJpZ2llcmVuIFNpZSBkaWVzIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyB1bmQgYmVudXR6ZW4gU2llIGRhbm4gXG4iCisiJ2dpdCBhZGQvcm0gPERhdGVpPicgdW0gZGllIEF1ZmzDtnN1bmcgZW50c3ByZWNoZW5kIHp1IG1hcmtpZXJlbiwgb2RlclxuIgorImJlbnV0emVuIFNpZSAnZ2l0IGNvbW1pdCAtYScuIgogCiAjOiBnaXQtcHVsbC5zaDoyNQogbXNnaWQgIlB1bGwgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2UgeW91IGhhdmUgdW5tZXJnZWQgZmlsZXMuIgpAQCAtOTc0MSw4ICs5OTk2LDggQEAKICM6IGdpdC1wdWxsLnNoOjIwMwogbXNnaWQgInVwZGF0aW5nIGFuIHVuYm9ybiBicmFuY2ggd2l0aCBjaGFuZ2VzIGFkZGVkIHRvIHRoZSBpbmRleCIKIG1zZ3N0ciAiIgotIkFrdHVhbGlzaWVyZSBlaW5lIHVuZ2Vib3JlbmVuIFp3ZWlnIG1pdCDDhG5kZXJ1bmdlbiwgZGllIHp1ciBCZXJlaXRzdGVsbHVuZyAiCi0iaGluenVnZWbDvGd0IHd1cmRlbiIKKyJBa3R1YWxpc2llcmUgZWluZW4gdW5nZWJvcmVuZW4gQnJhbmNoIG1pdCDDhG5kZXJ1bmdlbiwgZGllIHp1bSBDb21taXQgIgorInZvcmdlbWVya3Qgc2luZCIKIAogIy4gVGhlIGZldGNoIGludm9sdmVkIHVwZGF0aW5nIHRoZSBjdXJyZW50IGJyYW5jaC4KICMuIFRoZSB3b3JraW5nIHRyZWUgYW5kIHRoZSBpbmRleCBmaWxlIGlzIHN0aWxsIGJhc2VkIG9uIHRoZQpAQCAtOTc1NSwxOCArMTAwMTAsMTggQEAKICJXYXJuaW5nOiBmYXN0LWZvcndhcmRpbmcgeW91ciB3b3JraW5nIHRyZWUgZnJvbVxuIgogIldhcm5pbmc6IGNvbW1pdCAkb3JpZ19oZWFkLiIKIG1zZ3N0ciAiIgotIldhcm51bmc6IERpZSBBbmZvcmRlcnVuZyBha3R1YWxpc2llcnRlIGRpZSBTcGl0emUgZGVzIGFrdHVlbGxlbiBad2VpZ2VzLlxuIgotIldhcm51bmc6IFNwdWxlIElocmVuIEFyYmVpdHN6d2VpZyB2b24gVmVyc2lvbiAkb3JpZ19oZWFkIHZvci4iCisiV2FybnVuZzogXCJmZXRjaFwiIGFrdHVhbGlzaWVydGUgZGllIFNwaXR6ZSBkZXMgYWt0dWVsbGVuIEJyYW5jaGVzLlxuIgorIldhcm51bmc6IFNwdWxlIElociBBcmJlaXRzdmVyemVpY2huaXMgdm9uIENvbW1pdCAkb3JpZ19oZWFkIHZvci4iCiAKICM6IGdpdC1wdWxsLnNoOjI2MAogbXNnaWQgIkNhbm5vdCBtZXJnZSBtdWx0aXBsZSBicmFuY2hlcyBpbnRvIGVtcHR5IGhlYWQiCi1tc2dzdHIgIkthbm4gbmljaHQgbWVocmVyZSBad2VpZ2UgaW4gZWluZW4gdW5nZWJvcmVuZW4gWndlaWcgenVzYW1tZW5mw7xocmVuIgorbXNnc3RyICJLYW5uIG5pY2h0IG1laHJlcmUgQnJhbmNoZXMgaW4gZWluZW4gdW5nZWJvcmVuZW4gQnJhbmNoIHp1c2FtbWVuZsO8aHJlbiIKIAogIzogZ2l0LXB1bGwuc2g6MjY0CiBtc2dpZCAiQ2Fubm90IHJlYmFzZSBvbnRvIG11bHRpcGxlIGJyYW5jaGVzIgotbXNnc3RyICJrYW5uIG5pY2h0IGF1ZiBtZWhyZXJlIFp3ZWlnZSBuZXUgYXVmYmF1ZW4iCittc2dzdHIgImthbm4gUmViYXNlIG5pY2h0IGF1ZiBtZWhyZXJlIEJyYW5jaGVzIGF1c2bDvGhyZW4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTMKKyM6IGdpdC1yZWJhc2Uuc2g6NTQKIG1zZ2lkICIiCiAiV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCJnaXQgcmViYXNlIC0tc2tpcFwiIGluc3RlYWQuXG4iCkBAIC05Nzc3LDUwICsxMDAzMiw2OCBAQAogImF1cy5cbiIKICJGYWxscyBTaWUgZGllc2VuIFBhdGNoIGF1c2xhc3NlbiBtw7ZjaHRlbiwgZsO8aHJlbiBTaWUgc3RhdHRkZXNzZW4gXCJnaXQgIgogInJlYmFzZSAtLXNraXBcIiBhdXMuXG4iCi0iVW0gZGVuIHVyc3Byw7xuZ2xpY2hlbiBad2VpZyB3aWVkZXJoZXJ6dXN0ZWxsZW4gdW5kIGRlbiBOZXVhdWZiYXUgIgotImFienVicmVjaGVuLFxuIgorIlVtIGRlbiB1cnNwcsO8bmdsaWNoZW4gQnJhbmNoIHdpZWRlcmhlcnp1c3RlbGxlbiB1bmQgZGVuIFJlYmFzZSBhYnp1YnJlY2hlbixcbiIKICJmw7xocmVuIFNpZSBcImdpdCByZWJhc2UgLS1hYm9ydFwiIGF1cy4iCiAKKyM6IGdpdC1yZWJhc2Uuc2g6MTU2Cittc2dpZCAiQXBwbGllZCBhdXRvc3Rhc2guIgorbXNnc3RyICJcImF1dG9zdGFzaFwiIGFuZ2V3ZW5kZXQuIgorCisjOiBnaXQtcmViYXNlLnNoOjE1OQorIywgc2gtZm9ybWF0Cittc2dpZCAiQ2Fubm90IHN0b3JlICRzdGFzaF9zaGExIgorbXNnc3RyICJLYW5uICRzdGFzaF9zaGExIG5pY2h0IHNwZWljaGVybi4iCisKICM6IGdpdC1yZWJhc2Uuc2g6MTYwCittc2dpZCAiIgorIkFwcGx5aW5nIGF1dG9zdGFzaCByZXN1bHRlZCBpbiBjb25mbGljdHMuXG4iCisiWW91ciBjaGFuZ2VzIGFyZSBzYWZlIGluIHRoZSBzdGFzaC5cbiIKKyJZb3UgY2FuIHJ1biBcImdpdCBzdGFzaCBwb3BcIiBvciBcImdpdCBzdGFzaCBkcm9wXCIgYXQgYW55IHRpbWUuXG4iCittc2dzdHIgIiIKKyJBbndlbmR1bmcgdm9uIFwiYXV0b3N0YXNoXCIgcmVzdWx0aWVydGUgaW4gS29uZmxpa3Rlbi5cbiIKKyJJaHJlIMOEbmRlcnVuZ2VuIHNpbmQgaW0gU3Rhc2ggc2ljaGVyLlxuIgorIlNpZSBrw7ZubmVuIGplZGVyemVpdCBcImdpdCBzdGFzaCBwb3BcIiBvZGVyIFwiZ2l0IHN0YXNoIGRyb3BcIiBhdXNmw7xocmVuLlxuIgorCisjOiBnaXQtcmViYXNlLnNoOjE5MAogbXNnaWQgIlRoZSBwcmUtcmViYXNlIGhvb2sgcmVmdXNlZCB0byByZWJhc2UuIgotbXNnc3RyICJEZXIgXCJwcmUtcmViYXNlIGhvb2tcIiBoYXQgZGVuIE5ldWF1ZmJhdSB6dXLDvGNrZ2V3aWVzZW4uIgorbXNnc3RyICJEZXIgXCJwcmUtcmViYXNlIGhvb2tcIiBoYXQgZGVuIFJlYmFzZSB6dXLDvGNrZ2V3aWVzZW4uIgogCi0jOiBnaXQtcmViYXNlLnNoOjE2NQorIzogZ2l0LXJlYmFzZS5zaDoxOTUKIG1zZ2lkICJJdCBsb29rcyBsaWtlIGdpdC1hbSBpcyBpbiBwcm9ncmVzcy4gQ2Fubm90IHJlYmFzZS4iCi1tc2dzdHIgIlwiZ2l0LWFtXCIgc2NoZWludCBpbSBHYW5nZSB6dSBzZWluLiBLYW5uIG5pY2h0IG5ldSBhdWZiYXVlbi4iCittc2dzdHIgIlwiZ2l0LWFtXCIgc2NoZWludCBpbSBHYW5nZSB6dSBzZWluLiBLYW5uIFJlYmFzZSBuaWNodCBkdXJjaGbDvGhyZW4uIgogCi0jOiBnaXQtcmViYXNlLnNoOjI5NgorIzogZ2l0LXJlYmFzZS5zaDozMjkKIG1zZ2lkICJUaGUgLS1leGVjIG9wdGlvbiBtdXN0IGJlIHVzZWQgd2l0aCB0aGUgLS1pbnRlcmFjdGl2ZSBvcHRpb24iCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1leGVjIG11c3MgbWl0IC0taW50ZXJhY3RpdmUgdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzAxCisjOiBnaXQtcmViYXNlLnNoOjMzNAogbXNnaWQgIk5vIHJlYmFzZSBpbiBwcm9ncmVzcz8iCi1tc2dzdHIgIktlaW4gTmV1YXVmYmF1IGltIEdhbmdlPyIKK21zZ3N0ciAiS2VpbiBSZWJhc2UgaW0gR2FuZ2U/IgogCi0jOiBnaXQtcmViYXNlLnNoOjMxMgorIzogZ2l0LXJlYmFzZS5zaDozNDUKIG1zZ2lkICJUaGUgLS1lZGl0LXRvZG8gYWN0aW9uIGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIGludGVyYWN0aXZlIHJlYmFzZS4iCiBtc2dzdHIgIiIKLSJEaWUgLS1lZGl0LXRvZG8gQWt0aW9uIGthbm4gbnVyIHfDpGhyZW5kIGVpbmVzIGludGVyYWt0aXZlbiBOZXVhdWZiYXVzICIKLSJ2ZXJ3ZW5kZXQgd2VyZGVuLiIKKyJEaWUgLS1lZGl0LXRvZG8gQWt0aW9uIGthbm4gbnVyIHfDpGhyZW5kIGVpbmVzIGludGVyYWt0aXZlbiBSZWJhc2UgdmVyd2VuZGV0ICIKKyJ3ZXJkZW4uIgogCi0jOiBnaXQtcmViYXNlLnNoOjMxOQorIzogZ2l0LXJlYmFzZS5zaDozNTIKIG1zZ2lkICJDYW5ub3QgcmVhZCBIRUFEIgotbXNnc3RyICJLYW5uIFp3ZWlnc3BpdHplIChIRUFEKSBuaWNodCBsZXNlbiIKK21zZ3N0ciAiS2FubiBIRUFEIG5pY2h0IGxlc2VuIgogCi0jOiBnaXQtcmViYXNlLnNoOjMyMgorIzogZ2l0LXJlYmFzZS5zaDozNTUKIG1zZ2lkICIiCiAiWW91IG11c3QgZWRpdCBhbGwgbWVyZ2UgY29uZmxpY3RzIGFuZCB0aGVuXG4iCiAibWFyayB0aGVtIGFzIHJlc29sdmVkIHVzaW5nIGdpdCBhZGQiCiBtc2dzdHIgIiIKLSJTaWUgbcO8c3NlbiBhbGxlIFp1c2FtbWVuZsO8aHJ1bmdza29uZmxpa3RlIGVkaXRpZXJlbiB1bmQgZGllc2UgZGFublxuIgorIlNpZSBtw7xzc2VuIGFsbGUgTWVyZ2UtS29uZmxpa3RlIGVkaXRpZXJlbiB1bmQgZGllc2UgZGFublxuIgogIm1pdHRlbHMgXCJnaXQgYWRkXCIgYWxzIGF1ZmdlbMO2c3QgbWFya2llcmVuIgogCi0jOiBnaXQtcmViYXNlLnNoOjM0MAorIzogZ2l0LXJlYmFzZS5zaDozNzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBtb3ZlIGJhY2sgdG8gJGhlYWRfbmFtZSIKIG1zZ3N0ciAiS29ubnRlIG5pY2h0IHp1ICRoZWFkX25hbWUgenVyw7xja2dlaGVuIgogCi0jOiBnaXQtcmViYXNlLnNoOjM1OQorIzogZ2l0LXJlYmFzZS5zaDozOTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJJdCBzZWVtcyB0aGF0IHRoZXJlIGlzIGFscmVhZHkgYSAkc3RhdGVfZGlyX2Jhc2UgZGlyZWN0b3J5LCBhbmRcbiIKQEAgLTk4MzMsNyArMTAxMDYsNyBAQAogInZhbHVhYmxlIHRoZXJlLiIKIG1zZ3N0ciAiIgogIkVzIHNpZWh0IHNvIGF1cywgYWxzIG9iIGVzIGRhcyBWZXJ6ZWljaG5pcyAkc3RhdGVfZGlyX2Jhc2UgYmVyZWl0cyBnaWJ0XG4iCi0idW5kIGVzIGvDtm5udGUgZWluIGFuZGVyZXIgTmV1YXVmYmF1IGltIEdhbmdlIHNlaW4uIFdlbm4gZGFzIGRlciBGYWxsIGlzdCxcbiIKKyJ1bmQgZXMga8O2bm50ZSBlaW4gYW5kZXJlciBSZWJhc2UgaW0gR2FuZ2Ugc2Vpbi4gV2VubiBkYXMgZGVyIEZhbGwgaXN0LFxuIgogInByb2JpZXJlbiBTaWUgYml0dGVcbiIKICJcdCRjbWRfbGl2ZV9yZWJhc2VcbiIKICJXZW5uIGRhcyBuaWNodCBkZXIgRmFsbCBpc3QsIHByb2JpZXJlbiBTaWUgYml0dGVcbiIKQEAgLTk4NDEsNTkgKzEwMTE0LDY4IEBACiAidW5kIGbDvGhyZW4gU2llIGRpZXNlcyBLb21tYW5kbyBub2NobWFsIGF1cy4gRXMgd2lyZCBhbmdlaGFsdGVuLCBmYWxscyBub2NoXG4iCiAiZXR3YXMgU2Now7x0emVuc3dlcnRlcyB2b3JoYW5kZW4gaXN0LiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MDQKKyM6IGdpdC1yZWJhc2Uuc2g6NDM3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgotbXNnc3RyICJ1bmfDvGx0aWdlciDDnGJlcm5haG1lendlaWcgJHVwc3RyZWFtX25hbWUiCittc2dzdHIgInVuZ8O8bHRpZ2VyIFVwc3RyZWFtLUJyYW5jaCAkdXBzdHJlYW1fbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MjgKKyM6IGdpdC1yZWJhc2Uuc2g6NDYxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBtZXJnZSBiYXNlcyIKLW1zZ3N0ciAiJG9udG9fbmFtZTogZXMgZ2lidCBtZWhyIGFscyBlaW5lIFp1c2FtbWVuZsO8aHJ1bmdzYmFzaXMiCittc2dzdHIgIiRvbnRvX25hbWU6IGVzIGdpYnQgbWVociBhbHMgZWluZSBNZXJnZS1CYXNpcyIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MzEgZ2l0LXJlYmFzZS5zaDo0MzUKKyM6IGdpdC1yZWJhc2Uuc2g6NDY0IGdpdC1yZWJhc2Uuc2g6NDY4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBpcyBubyBtZXJnZSBiYXNlIgotbXNnc3RyICIkb250b19uYW1lOiBlcyBnaWJ0IGtlaW5lIFp1c2FtbWVuZsO8aHJ1bmdzYmFzaXMiCittc2dzdHIgIiRvbnRvX25hbWU6IGVzIGdpYnQga2VpbmUgTWVyZ2UtQmFzaXMiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDQwCisjOiBnaXQtcmViYXNlLnNoOjQ3MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiRG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBjb21taXQ6ICRvbnRvX25hbWUiCi1tc2dzdHIgIiRvbnRvX25hbWUgemVpZ3QgYXVmIGtlaW5lIGfDvGx0aWdlIFZlcnNpb24iCittc2dzdHIgIiRvbnRvX25hbWUgemVpZ3QgYXVmIGtlaW5lbiBnw7xsdGlnZW4gQ29tbWl0IgogCi0jOiBnaXQtcmViYXNlLnNoOjQ2MworIzogZ2l0LXJlYmFzZS5zaDo0OTYKICMsIHNoLWZvcm1hdAogbXNnaWQgImZhdGFsOiBubyBzdWNoIGJyYW5jaDogJGJyYW5jaF9uYW1lIgotbXNnc3RyICJmYXRhbDogWndlaWcgJGJyYW5jaF9uYW1lIG5pY2h0IGdlZnVuZGVuIgorbXNnc3RyICJmYXRhbDogQnJhbmNoICRicmFuY2hfbmFtZSBuaWNodCBnZWZ1bmRlbiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0ODMKKyM6IGdpdC1yZWJhc2Uuc2g6NTE5Cittc2dpZCAiQ2Fubm90IGF1dG9zdGFzaCIKK21zZ3N0ciAiS2FubiBcImF1dG9zdGFzaFwiIG5pY2h0IGF1c2bDvGhyZW4uIgorCisjOiBnaXQtcmViYXNlLnNoOjUyNAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ3JlYXRlZCBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYiCittc2dzdHIgIlwiYXV0b3N0YXNoXCIgZXJ6ZXVndDogJHN0YXNoX2FiYnJldiIKKworIzogZ2l0LXJlYmFzZS5zaDo1MjgKIG1zZ2lkICJQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHRoZW0uIgotbXNnc3RyICJCaXR0ZSB0cmFnZW4gU2llIGRpZSDDhG5kZXJ1bmdlbiBlaW4gb2RlciBiZW51dHplbiBTaWUgXCJzdGFzaFwiLiIKK21zZ3N0ciAiQml0dGUgY29tbWl0dGVuIFNpZSBkaWUgw4RuZGVydW5nZW4gb2RlciBiZW51dHplbiBTaWUgXCJzdGFzaFwiLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MDEKKyM6IGdpdC1yZWJhc2Uuc2g6NTQ4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZS4iCi1tc2dzdHIgIkFrdHVlbGxlciBad2VpZyAkYnJhbmNoX25hbWUgaXN0IGF1ZiBkZW0gbmV1c3RlbiBTdGFuZC4iCittc2dzdHIgIkFrdHVlbGxlciBCcmFuY2ggJGJyYW5jaF9uYW1lIGlzdCBhdWYgZGVtIG5ldXN0ZW4gU3RhbmQuIgogCi0jOiBnaXQtcmViYXNlLnNoOjUwNAorIzogZ2l0LXJlYmFzZS5zaDo1NTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkLiIKIG1zZ3N0ciAiIgotIkFrdHVlbGxlciBad2VpZyAkYnJhbmNoX25hbWUgaXN0IGF1ZiBkZW0gbmV1c3RlbiBTdGFuZCwgTmV1YXVmYmF1IGVyend1bmdlbi4iCisiQWt0dWVsbGVyIEJyYW5jaCAkYnJhbmNoX25hbWUgaXN0IGF1ZiBkZW0gbmV1c3RlbiBTdGFuZCwgUmViYXNlIGVyend1bmdlbi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTE1CisjOiBnaXQtcmViYXNlLnNoOjU2MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ2hhbmdlcyBmcm9tICRtYiB0byAkb250bzoiCiBtc2dzdHIgIsOEbmRlcnVuZ2VuIHZvbiAkbWIgenUgJG9udG86IgogCiAjLiBEZXRhY2ggSEVBRCBhbmQgcmVzZXQgdGhlIHRyZWUKLSM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjOiBnaXQtcmViYXNlLnNoOjU3MgogbXNnaWQgIkZpcnN0LCByZXdpbmRpbmcgaGVhZCB0byByZXBsYXkgeW91ciB3b3JrIG9uIHRvcCBvZiBpdC4uLiIKIG1zZ3N0ciAiIgotIlp1bsOkY2hzdCB3aXJkIGRpZSBad2VpZ3NwaXR6ZSB6dXLDvGNrZ2VzcHVsdCwgdW0gSWhyZSDDhG5kZXJ1bmdlblxuIgorIlp1bsOkY2hzdCB3aXJkIGRlciBCcmFuY2ggenVyw7xja2dlc3B1bHQsIHVtIElocmUgw4RuZGVydW5nZW5cbiIKICJkYXJhdWYgbmV1IGFuenV3ZW5kZW4uLi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTMyCisjOiBnaXQtcmViYXNlLnNoOjU4MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFzdC1mb3J3YXJkZWQgJGJyYW5jaF9uYW1lIHRvICRvbnRvX25hbWUuIgogbXNnc3RyICIkYnJhbmNoX25hbWUgenUgJG9udG9fbmFtZSB2b3JnZXNwdWx0LiIKQEAgLTk5MDQsMTUgKzEwMTg2LDE1IEBACiAKICM6IGdpdC1zdGFzaC5zaDo3NAogbXNnaWQgIllvdSBkbyBub3QgaGF2ZSB0aGUgaW5pdGlhbCBjb21taXQgeWV0IgotbXNnc3RyICJTaWUgaGFiZW4gYmlzaGVyIG5vY2gga2VpbmUgaW5pdGlhbGUgVmVyc2lvbiIKK21zZ3N0ciAiU2llIGhhYmVuIGJpc2hlciBub2NoIGtlaW5lbiBpbml0aWFsZW4gQ29tbWl0IgogCiAjOiBnaXQtc3Rhc2guc2g6ODkKIG1zZ2lkICJDYW5ub3Qgc2F2ZSB0aGUgY3VycmVudCBpbmRleCBzdGF0ZSIKLW1zZ3N0ciAiS2FubiBkZW4gYWt0dWVsbGVuIFp1c3RhbmQgZGVyIEJlcmVpdHN0ZWxsdW5nIG5pY2h0IHNwZWljaGVybiIKK21zZ3N0ciAiS2FubiBkZW4gYWt0dWVsbGVuIFp1c3RhbmQgZGVyIFN0YWdpbmctQXJlYSBuaWNodCBzcGVpY2hlcm4iCiAKICM6IGdpdC1zdGFzaC5zaDoxMjMgZ2l0LXN0YXNoLnNoOjEzNgogbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHdvcmt0cmVlIHN0YXRlIgotbXNnc3RyICJLYW5uIGRlbiBha3R1ZWxsZW4gWnVzdGFuZCBkZXMgQXJiZWl0c2JhdW1lcyBuaWNodCBzcGVpY2hlcm4iCittc2dzdHIgIkthbm4gZGVuIGFrdHVlbGxlbiBadXN0YW5kIGRlcyBBcmJlaXRzdmVyemVpY2huaXNzZXMgbmljaHQgc3BlaWNoZXJuIgogCiAjOiBnaXQtc3Rhc2guc2g6MTQwCiBtc2dpZCAiTm8gY2hhbmdlcyBzZWxlY3RlZCIKQEAgLTk5MjAsMTEgKzEwMjAyLDE2IEBACiAKICM6IGdpdC1zdGFzaC5zaDoxNDMKIG1zZ2lkICJDYW5ub3QgcmVtb3ZlIHRlbXBvcmFyeSBpbmRleCAoY2FuJ3QgaGFwcGVuKSIKLW1zZ3N0ciAiS2FubiB0ZW1wb3LDpHJlIEJlcmVpdHN0ZWxsdW5nIG5pY2h0IGzDtnNjaGVuIChrYW5uIG5pY2h0IHBhc3NpZXJlbikiCittc2dzdHIgIkthbm4gdGVtcG9yw6RyZSBTdGFnaW5nLUFyZWEgbmljaHQgbMO2c2NoZW4gKGthbm4gbmljaHQgcGFzc2llcmVuKSIKIAogIzogZ2l0LXN0YXNoLnNoOjE1NgogbXNnaWQgIkNhbm5vdCByZWNvcmQgd29ya2luZyB0cmVlIHN0YXRlIgotbXNnc3RyICJLYW5uIFp1c3RhbmQgZGVzIEFyYmVpdHNiYXVtZXMgbmljaHQgYXVmemVpY2huZW4iCittc2dzdHIgIkthbm4gWnVzdGFuZCBkZXMgQXJiZWl0c3ZlcnplaWNobmlzc2VzIG5pY2h0IGF1ZnplaWNobmVuIgorCisjOiBnaXQtc3Rhc2guc2g6MTkwCisjLCBzaC1mb3JtYXQKK21zZ2lkICJDYW5ub3QgdXBkYXRlICRyZWZfc3Rhc2ggd2l0aCAkd19jb21taXQiCittc2dzdHIgIkthbm4gJHJlZl9zdGFzaCBuaWNodCBtaXQgJHdfY29tbWl0IGFrdHVhbGlzaWVyZW4uIgogCiAjLiBUUkFOU0xBVE9SUzogJG9wdGlvbiBpcyBhbiBpbnZhbGlkIG9wdGlvbiwgbGlrZQogIy4gYC0tYmxhaC1ibGFoJy4gVGhlIDcgc3BhY2VzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCkBAIC05OTM2LDcgKzEwMjIzLDcgQEAKICMuICQgZ2l0IHN0YXNoIHNhdmUgLS1ibGFoLWJsYWggMj4mMSB8IGhlYWQgLW4gMgogIy4gZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6IC0tYmxhaC1ibGFoCiAjLiBUbyBwcm92aWRlIGEgbWVzc2FnZSwgdXNlIGdpdCBzdGFzaCBzYXZlIC0tICctLWJsYWgtYmxhaCcKLSM6IGdpdC1zdGFzaC5zaDoyMDIKKyM6IGdpdC1zdGFzaC5zaDoyNDEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogJG9wdGlvblxuIgpAQCAtOTk0NiwxMjIgKzEwMjMzLDE0MCBAQAogIiAgICAgICAgVW0gZWluZSBCZXNjaHJlaWJ1bmcgYW56dWdlYmVuLCBiZW51dHplbiBTaWUgXCJnaXQgc3Rhc2ggc2F2ZSAtLSAiCiAiJyRvcHRpb24nXCIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMjMKKyM6IGdpdC1zdGFzaC5zaDoyNjIKIG1zZ2lkICJObyBsb2NhbCBjaGFuZ2VzIHRvIHNhdmUiCiBtc2dzdHIgIktlaW5lIGxva2FsZW4gw4RuZGVydW5nZW4genVtIFNwZWljaGVybiIKIAotIzogZ2l0LXN0YXNoLnNoOjIyNworIzogZ2l0LXN0YXNoLnNoOjI2OAorbXNnaWQgIiIKKyJUaGUgZm9sbG93aW5nIHVudHJhY2tlZCBmaWxlcyB3b3VsZCBOT1QgYmUgc2F2ZWQgYnV0IG5lZWQgdG8gYmUgcmVtb3ZlZCBieSAiCisic3Rhc2ggc2F2ZToiCittc2dzdHIgIiIKKyJEaWUgZm9sZ2VuZGVuIHVuYmVvYmFjaHRldGVuIERhdGVpZW4gd8O8cmRlbiBOSUNIVCBnZXNwZWljaGVydCB3ZXJkZW4sXG4iCisibcO8c3NlbiBhYmVyIGR1cmNoIFwic3Rhc2ggc2F2ZVwiIGVudGZlcm50IHdlcmRlbjoiCisKKyM6IGdpdC1zdGFzaC5zaDoyNzAKK21zZ2lkICIiCisiQWJvcnRpbmcuIENvbnNpZGVyIHVzaW5nIGVpdGhlciB0aGUgLS1mb3JjZSBvciAtLWluY2x1ZGUtdW50cmFja2VkIG9wdGlvbi4iCittc2dzdHIgIiIKKyJBYmdlYnJvY2hlbi4gQmVudXR6ZW4gU2llIGVudHdlZGVyIGRpZSBPcHRpb24gLS1mb3JjZSBvZGVyIC0taW5jbHVkZS0iCisidW50cmFja2VkLiIKKworIzogZ2l0LXN0YXNoLnNoOjI3NAogbXNnaWQgIkNhbm5vdCBpbml0aWFsaXplIHN0YXNoIgogbXNnc3RyICJLYW5uIFwic3Rhc2hcIiBuaWNodCBpbml0aWFsaXNpZXJlbiIKIAotIzogZ2l0LXN0YXNoLnNoOjIzNQorIzogZ2l0LXN0YXNoLnNoOjI3OAogbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHN0YXR1cyIKIG1zZ3N0ciAiS2FubiBkZW4gYWt0dWVsbGVuIFN0YXR1cyBuaWNodCBzcGVpY2hlcm4iCiAKLSM6IGdpdC1zdGFzaC5zaDoyNTMKKyM6IGdpdC1zdGFzaC5zaDoyOTYKIG1zZ2lkICJDYW5ub3QgcmVtb3ZlIHdvcmt0cmVlIGNoYW5nZXMiCi1tc2dzdHIgIkthbm4gw4RuZGVydW5nZW4gYW0gQXJiZWl0c2JhdW0gbmljaHQgbMO2c2NoZW4iCittc2dzdHIgIkthbm4gw4RuZGVydW5nZW4gaW0gQXJiZWl0c3ZlcnplaWNobmlzIG5pY2h0IGzDtnNjaGVuIgogCi0jOiBnaXQtc3Rhc2guc2g6MzUyCisjOiBnaXQtc3Rhc2guc2g6Mzk1CiBtc2dpZCAiTm8gc3Rhc2ggZm91bmQuIgogbXNnc3RyICJLZWluIFwic3Rhc2hcIiBnZWZ1bmRlbi4iCiAKLSM6IGdpdC1zdGFzaC5zaDozNTkKKyM6IGdpdC1zdGFzaC5zaDo0MDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIlRvbyBtYW55IHJldmlzaW9ucyBzcGVjaWZpZWQ6ICRSRVYiCi1tc2dzdHIgIlp1IHZpZWxlIFJldmlzaW9uZW4gYW5nZWdlYmVuOiAkUkVWIgorbXNnc3RyICJadSB2aWVsZSBDb21taXRzIGFuZ2VnZWJlbjogJFJFViIKIAotIzogZ2l0LXN0YXNoLnNoOjM2NQorIzogZ2l0LXN0YXNoLnNoOjQwOAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJHJlZmVyZW5jZSBpcyBub3QgdmFsaWQgcmVmZXJlbmNlIgogbXNnc3RyICIkcmVmZXJlbmNlIGlzdCBrZWluZSBnw7xsdGlnZSBSZWZlcmVueiIKIAotIzogZ2l0LXN0YXNoLnNoOjM5MworIzogZ2l0LXN0YXNoLnNoOjQzNgogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaC1saWtlIGNvbW1pdCIKLW1zZ3N0ciAiJyRhcmdzJyBpc3Qga2VpbmUgXCJzdGFzaFwiLWFydGlnZSBWZXJzaW9uIgorbXNnc3RyICInJGFyZ3MnIGlzdCBrZWluIFwic3Rhc2hcIi1hcnRpZ2VyIENvbW1pdCIKIAotIzogZ2l0LXN0YXNoLnNoOjQwNAorIzogZ2l0LXN0YXNoLnNoOjQ0NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaCByZWZlcmVuY2UiCiBtc2dzdHIgIickYXJncycgaXN0IGtlaW5lIFwic3Rhc2hcIi1SZWZlcmVueiIKIAotIzogZ2l0LXN0YXNoLnNoOjQxMgorIzogZ2l0LXN0YXNoLnNoOjQ1NQogbXNnaWQgInVuYWJsZSB0byByZWZyZXNoIGluZGV4IgotbXNnc3RyICJ1bmbDpGhpZyBkaWUgQmVyZWl0c3RlbGx1bmcgenUgYWt0dWFsaXNpZXJlbiIKK21zZ3N0ciAidW5mw6RoaWcgZGllIFN0YWdpbmctQXJlYSB6dSBha3R1YWxpc2llcmVuIgogCi0jOiBnaXQtc3Rhc2guc2g6NDE2CisjOiBnaXQtc3Rhc2guc2g6NDU5CiBtc2dpZCAiQ2Fubm90IGFwcGx5IGEgc3Rhc2ggaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIgotbXNnc3RyICIiCi0iS2FubiBcInN0YXNoXCIgbmljaHQgYW53ZW5kZW4sIHNvbGFuZyBlaW5lIFp1c2FtbWVuZsO8aHJ1bmcgaW0gR2FuZ2UgaXN0IgorbXNnc3RyICJLYW5uIFwic3Rhc2hcIiBuaWNodCBhbndlbmRlbiwgc29sYW5nIGVpbiBNZXJnZSBpbSBHYW5nZSBpc3QiCiAKLSM6IGdpdC1zdGFzaC5zaDo0MjQKKyM6IGdpdC1zdGFzaC5zaDo0NjcKIG1zZ2lkICJDb25mbGljdHMgaW4gaW5kZXguIFRyeSB3aXRob3V0IC0taW5kZXguIgotbXNnc3RyICJLb25mbGlrdGUgaW4gZGVyIEJlcmVpdHN0ZWxsdW5nLiBWZXJzdWNoZW4gU2llIGVzIG9obmUgLS1pbmRleC4iCittc2dzdHIgIktvbmZsaWt0ZSBpbiBkZXIgU3RhZ2luZy1BcmVhLiBWZXJzdWNoZW4gU2llIGVzIG9obmUgLS1pbmRleC4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0MjYKKyM6IGdpdC1zdGFzaC5zaDo0NjkKIG1zZ2lkICJDb3VsZCBub3Qgc2F2ZSBpbmRleCB0cmVlIgotbXNnc3RyICJLb25udGUgQmVyZWl0c3RlbGx1bmdzYmF1bSBuaWNodCBzcGVpY2hlcm4iCittc2dzdHIgIktvbm50ZSBTdGFnaW5nLUFyZWEtVmVyemVpY2huaXMgbmljaHQgc3BlaWNoZXJuIgogCi0jOiBnaXQtc3Rhc2guc2g6NDYwCisjOiBnaXQtc3Rhc2guc2g6NTAzCiBtc2dpZCAiQ2Fubm90IHVuc3RhZ2UgbW9kaWZpZWQgZmlsZXMiCi1tc2dzdHIgIkthbm4gZ2XDpG5kZXJ0ZSBEYXRlaWVuIG5pY2h0IGF1cyBkZXIgQmVyZWl0c3RlbGx1bmcgaGVyYXVzbmVobWVuIgorbXNnc3RyICJLYW5uIGdlw6RuZGVydGUgRGF0ZWllbiBuaWNodCBhdXMgZGVyIFN0YWdpbmctQXJlYSBlbnRmZXJuZW4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0NzUKKyM6IGdpdC1zdGFzaC5zaDo1MTgKIG1zZ2lkICJJbmRleCB3YXMgbm90IHVuc3Rhc2hlZC4iCi1tc2dzdHIgIkJlcmVpdHN0ZWxsdW5nIHd1cmRlIG5pY2h0IGF1c2dlbGFnZXJ0LiIKK21zZ3N0ciAiU3RhZ2luZy1BcmVhIHd1cmRlIG5pY2h0IGF1cyBkZW0gU3Rhc2ggenVyw7xja2dlbGFkZW4uIgogCi0jOiBnaXQtc3Rhc2guc2g6NDkyCisjOiBnaXQtc3Rhc2guc2g6NTM1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJEcm9wcGVkICR7UkVWfSAoJHMpIgogbXNnc3RyICJHZWzDtnNjaHQgJHtSRVZ9ICgkcykiCiAKLSM6IGdpdC1zdGFzaC5zaDo0OTMKKyM6IGdpdC1zdGFzaC5zaDo1MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiR7UkVWfTogQ291bGQgbm90IGRyb3Agc3Rhc2ggZW50cnkiCiBtc2dzdHIgIiR7UkVWfTogS29ubnRlIFwic3Rhc2hcIi1FaW50cmFnIG5pY2h0IGzDtnNjaGVuIgogCi0jOiBnaXQtc3Rhc2guc2g6NTAwCisjOiBnaXQtc3Rhc2guc2g6NTQzCiBtc2dpZCAiTm8gYnJhbmNoIG5hbWUgc3BlY2lmaWVkIgotbXNnc3RyICJLZWluIFp3ZWlnbmFtZSBzcGV6aWZpemllcnQiCittc2dzdHIgIktlaW4gQnJhbmNobmFtZSBzcGV6aWZpemllcnQiCiAKLSM6IGdpdC1zdGFzaC5zaDo1NzEKKyM6IGdpdC1zdGFzaC5zaDo2MTUKIG1zZ2lkICIoVG8gcmVzdG9yZSB0aGVtIHR5cGUgXCJnaXQgc3Rhc2ggYXBwbHlcIikiCiBtc2dzdHIgIihadXIgV2llZGVyaGVyc3RlbGx1bmcgZ2ViZW4gU2llIFwiZ2l0IHN0YXNoIGFwcGx5XCIgZWluKSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo5NQogIywgc2gtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHN0cmlwIG9uZSBjb21wb25lbnQgb2ZmIHVybCAnJHJlbW90ZXVybCciCiBtc2dzdHIgIkthbm4gZWluZSBLb21wb25lbnRlIHZvbiBVUkwgJyRyZW1vdGV1cmwnIG5pY2h0IGV4dHJhaGllcmVuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjE5NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIk5vIHN1Ym1vZHVsZSBtYXBwaW5nIGZvdW5kIGluIC5naXRtb2R1bGVzIGZvciBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIiIKLSJLZWluZSBVbnRlcnByb2pla3QtWnVvcmRudW5nIGluIC5naXRtb2R1bGVzIGbDvHIgUGZhZCAnJHNtX3BhdGgnIGdlZnVuZGVuIgorbXNnc3RyICJLZWluZSBTdWJtb2R1bC1adW9yZG51bmcgaW4gLmdpdG1vZHVsZXMgZsO8ciBQZmFkICckc21fcGF0aCcgZ2VmdW5kZW4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MjM5CisjOiBnaXQtc3VibW9kdWxlLnNoOjI4MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ2xvbmUgb2YgJyR1cmwnIGludG8gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyBmYWlsZWQiCi1tc2dzdHIgIktsb25lbiB2b24gJyR1cmwnIGluIFVudGVycHJvamVrdC1QZmFkICckc21fcGF0aCcgZmVobGdlc2NobGFnZW4iCittc2dzdHIgIktsb25lbiB2b24gJyR1cmwnIGluIFN1Ym1vZHVsLVBmYWQgJyRzbV9wYXRoJyBmZWhsZ2VzY2hsYWdlbiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoyNTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjkzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJHaXRkaXIgJyRhJyBpcyBwYXJ0IG9mIHRoZSBzdWJtb2R1bGUgcGF0aCAnJGInIG9yIHZpY2UgdmVyc2EiCi1tc2dzdHIgIiIKLSJHaXQtVmVyemVpY2huaXMgJyRhJyBpc3QgVGVpbCBkZXMgVW50ZXJwcm9qZWt0LVBmYWRlcyAnJGInLCBvZGVyIHVtZ2VrZWhydCIKK21zZ3N0ciAiR2l0LVZlcnplaWNobmlzICckYScgaXN0IFRlaWwgZGVzIFN1Ym1vZHVsLVBmYWRlcyAnJGInLCBvZGVyIHVtZ2VrZWhydCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNDkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDAzCittc2dpZCAiUmVsYXRpdmUgcGF0aCBjYW4gb25seSBiZSB1c2VkIGZyb20gdGhlIHRvcGxldmVsIG9mIHRoZSB3b3JraW5nIHRyZWUiCittc2dzdHIgIiIKKyJSZWxhdGl2ZSBQZmFkZSBrw7ZubmVuIG51ciB2b24gZGVyIG9iZXJzdGVuIEViZW5lIGRlcyBBcmJlaXRzdmVyemVpY2huaXNzZXMgIgorImJlbnV0enQgd2VyZGVuLiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MTMKICMsIHNoLWZvcm1hdAogbXNnaWQgInJlcG8gVVJMOiAnJHJlcG8nIG11c3QgYmUgYWJzb2x1dGUgb3IgYmVnaW4gd2l0aCAuL3wuLi8iCiBtc2dzdHIgInJlcG8gVVJMOiAnJHJlcG8nIG11c3MgYWJzb2x1dCBzZWluIG9kZXIgbWl0IC4vfC4uLyBiZWdpbm5lbiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDMwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJHNtX3BhdGgnIGFscmVhZHkgZXhpc3RzIGluIHRoZSBpbmRleCIKLW1zZ3N0ciAiJyRzbV9wYXRoJyBleGlzdGllcnQgYmVyZWl0cyBpbiBkZXIgQmVyZWl0c3RlbGx1bmciCittc2dzdHIgIickc21fcGF0aCcgaXN0IGJlcmVpdHMgenVtIENvbW1pdCB2b3JnZW1lcmt0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM3MAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgZm9sbG93aW5nIHBhdGggaXMgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgpAQCAtMTAwNzIsMjUgKzEwMzc3LDI0IEBACiAiJHNtX3BhdGhcbiIKICJCZW51dHplbiBTaWUgLWYgd2VubiBTaWUgZGllc2VuIHdpcmtsaWNoIGhpbnp1ZsO8Z2VuIG3DtmNodGVuLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDUyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgZXhpc3RpbmcgcmVwbyBhdCAnJHNtX3BhdGgnIHRvIHRoZSBpbmRleCIKLW1zZ3N0ciAiIgotIkbDvGdlIGV4aXN0aWVyZW5kZXMgUHJvamVrdGFyY2hpdiBpbiAnJHNtX3BhdGgnIGRlciBCZXJlaXRzdGVsbHVuZyBoaW56dS4iCittc2dzdHIgIkbDvGdlIGV4aXN0aWVyZW5kZXMgUmVwb3NpdG9yeSBpbiAnJHNtX3BhdGgnIGRlciBTdGFnaW5nLUFyZWEgaGluenUuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM5MAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhIHZhbGlkIGdpdCByZXBvIgotbXNnc3RyICInJHNtX3BhdGgnIGV4aXN0aWVydCBiZXJlaXRzIHVuZCBpc3Qga2VpbiBnw7xsdGlnZXMgR2l0LVByb2pla3RhcmNoaXYiCittc2dzdHIgIickc21fcGF0aCcgZXhpc3RpZXJ0IGJlcmVpdHMgdW5kIGlzdCBrZWluIGfDvGx0aWdlcyBHaXQtUmVwb3NpdG9yeSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozOTgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDYyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBIGdpdCBkaXJlY3RvcnkgZm9yICckc21fbmFtZScgaXMgZm91bmQgbG9jYWxseSB3aXRoIHJlbW90ZShzKToiCiBtc2dzdHIgIiIKLSJFaW4gR2l0LVZlcnplaWNobmlzIGbDvHIgJyRzbV9uYW1lJyB3dXJkZSBsb2thbCBnZWZ1bmRlbiBtaXQgZGVuIEZlcm5hcmNoaXYiCi0iKGVuKToiCisiRWluIEdpdC1WZXJ6ZWljaG5pcyBmw7xyICckc21fbmFtZScgd3VyZGUgbG9rYWwgZ2VmdW5kZW4gbWl0IGRlbiBSZW1vdGUtIgorIlJlcG9zaXRvcmllczoiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIHJldXNlIHRoaXMgbG9jYWwgZ2l0IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIGNsb25pbmcgYWdhaW4gZnJvbSIKQEAgLTEwMDk4LDE1ICsxMDQwMiwxNSBAQAogIldlbm4gU2llIGRpZXNlcyBsb2thbGUgR2l0LVZlcnplaWNobmlzIHdpZWRlcnZlcndlbmRlbiBtw7ZjaHRlc3QsIGFuc3RhdHQgIgogImVybmV1dCB6dSBrbG9uZW4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAyCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogInVzZSB0aGUgJy0tZm9yY2UnIG9wdGlvbi4gSWYgdGhlIGxvY2FsIGdpdCBkaXJlY3RvcnkgaXMgbm90IHRoZSBjb3JyZWN0IHJlcG8iCiBtc2dzdHIgIiIKICJiZW51dHplbiBTaWUgZGllIE9wdGlvbiAnLS1mb3JjZScuIFdlbm4gZGFzIGxva2FsZSBHaXQtVmVyemVpY2huaXMgbmljaHQgZGFzICIKLSJrb3JyZWt0ZSBQcm9qZWt0YXJjaGl2IGlzdCIKKyJrb3JyZWt0ZSBSZXBvc2l0b3J5IGlzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAib3IgeW91IGFyZSB1bnN1cmUgd2hhdCB0aGlzIG1lYW5zIGNob29zZSBhbm90aGVyIG5hbWUgd2l0aCB0aGUgJy0tbmFtZScgIgpAQCAtMTAxMTUsMjI4ICsxMDQxOSwyODIgQEAKICJvZGVyIFNpZSBzaWNoIHVuc2ljaGVyIHNpbmQsIHdhcyBkYXMgYmVkZXV0ZXQsIHfDpGhsZW4gU2llIGVpbmVuIGFuZGVyZW4gIgogIk5hbWVubWl0IGRlciBPcHRpb24gJy0tbmFtZScuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwNQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjkKICMsIHNoLWZvcm1hdAogbXNnaWQgIlJlYWN0aXZhdGluZyBsb2NhbCBnaXQgZGlyZWN0b3J5IGZvciBzdWJtb2R1bGUgJyRzbV9uYW1lJy4iCi1tc2dzdHIgIlJlYWt0aXZpZXJlIGxva2FsZXMgR2l0LVZlcnplaWNobmlzIGbDvHIgVW50ZXJwcm9qZWt0ICckc21fbmFtZScuIgorbXNnc3RyICJSZWFrdGl2aWVyZSBsb2thbGVzIEdpdC1WZXJ6ZWljaG5pcyBmw7xyIFN1Ym1vZHVsICckc21fbmFtZScuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiVW5mw6RoaWcgVW50ZXJwcm9qZWt0ICckc21fcGF0aCcgYXVzenVjaGVja2VuIgorbXNnc3RyICJVbmbDpGhpZyBTdWJtb2R1bCAnJHNtX3BhdGgnIGF1c3p1Y2hlY2tlbiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MjIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDg2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gYWRkIHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgotbXNnc3RyICJIaW56dWbDvGdlbiB2b24gVW50ZXJwcm9qZWt0ICckc21fcGF0aCcgZmVobGdlc2NobGFnZW4iCittc2dzdHIgIkhpbnp1ZsO8Z2VuIHZvbiBTdWJtb2R1bCAnJHNtX3BhdGgnIGZlaGxnZXNjaGxhZ2VuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKK21zZ3N0ciAiRmVobGVyIGJlaW0gRWludHJhZ2VuIHZvbiBTdWJtb2R1bCAnJHNtX3BhdGgnIGluIGRpZSBLb25maWd1cmF0aW9uLiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo1MzkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkVudGVyaW5nICckcHJlZml4JGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiQmV0cmV0ZSAnJHByZWZpeCRkaXNwbGF5cGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTU0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdG9wcGluZyBhdCAnJHByZWZpeCRkaXNwbGF5cGF0aCc7IHNjcmlwdCByZXR1cm5lZCBub24temVybyBzdGF0dXMuIgorbXNnc3RyICJTdG9wcGUgYmVpICckcHJlZml4JGRpc3BsYXlwYXRoJzsgU2tyaXB0IGdhYiBuaWNodC1OdWxsIFN0YXR1cyB6dXLDvGNrLiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIk5vIHVybCBmb3VuZCBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCcgaW4gLmdpdG1vZHVsZXMiCittc2dzdHIgIktlaW5lIFVSTCBmw7xyIFN1Ym1vZHVsLVBmYWQgJyRkaXNwbGF5cGF0aCcgaW4gLmdpdG1vZHVsZXMgZ2VmdW5kZW4iCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjA5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXJsIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgotIkZlaGxlciBiZWltIEVpbnRyYWdlbiB2b24gVW50ZXJwcm9qZWt0ICckc21fcGF0aCcgaW4gZGllIEtvbmZpZ3VyYXRpb24uIgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQ3NAotIywgc2gtZm9ybWF0Ci1tc2dpZCAiRW50ZXJpbmcgJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIkJldHJldGUgJyRwcmVmaXgkc21fcGF0aCciCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDg4Ci0jLCBzaC1mb3JtYXQKLW1zZ2lkICJTdG9wcGluZyBhdCAnJHNtX3BhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKLW1zZ3N0ciAiU3RvcHBlIGJlaSAnJHNtX3BhdGgnOyBTa3JpcHQgZ2FiIG5pY2h0LU51bGwgU3RhdHVzIHp1csO8Y2suIgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjUzMgotIywgc2gtZm9ybWF0Ci1tc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGluIC5naXRtb2R1bGVzIgotbXNnc3RyICJLZWluZSBVUkwgZsO8ciBVbnRlcnByb2pla3QtUGZhZCAnJHNtX3BhdGgnIGluIC5naXRtb2R1bGVzIGdlZnVuZGVuIgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU0MQotIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiIgotIkZlaGxlciBiZWltIEVpbnRyYWdlbiBkZXIgVVJMIGbDvHIgVW50ZXJwcm9qZWt0LVBmYWQgJyRzbV9wYXRoJyBpbiBkaWUgIgorIkZlaGxlciBiZWltIEVpbnRyYWdlbiBkZXIgVVJMIGbDvHIgU3VibW9kdWwtUGZhZCAnJGRpc3BsYXlwYXRoJyBpbiBkaWUgIgogIktvbmZpZ3VyYXRpb24uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU0MworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTEKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSByZWdpc3RlcmVkIGZvciBwYXRoICckc21fcGF0aCciCittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKLSJVbnRlcnByb2pla3QgJyRuYW1lJyAoJHVybCkgZsO8ciBQZmFkICckc21fcGF0aCcgaW4gZGllIEtvbmZpZ3VyYXRpb24gIgotImVpbmdldHJhZ2VuIgorIlN1Ym1vZHVsICckbmFtZScgKCR1cmwpIGbDvHIgUGZhZCAnJGRpc3BsYXlwYXRoJyBpbiBkaWUgS29uZmlndXJhdGlvbiAiCisiZWluZ2V0cmFnZW4uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU1MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKK21zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXBkYXRlIG1vZGUgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCi0iRmVobGVyIGJlaSDDhG5kZXJ1bmcgZGVzIEFrdHVhbGlzaWVydW5nc21vZHVzIGbDvHIgVW50ZXJwcm9qZWt0LVBmYWQgIgotIickc21fcGF0aCcgaW4gZGVyIEtvbmZpZ3VyYXRpb24uIgorIkZlaGxlciBiZWkgw4RuZGVydW5nIGRlcyBBa3R1YWxpc2llcnVuZ3Ntb2R1cyBmw7xyIFN1Ym1vZHVsLVBmYWQgIgorIickZGlzcGxheXBhdGgnIGluIGRlciBLb25maWd1cmF0aW9uLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjU2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVc2UgJy4nIGlmIHlvdSByZWFsbHkgd2FudCB0byBkZWluaXRpYWxpemUgYWxsIHN1Ym1vZHVsZXMiCiBtc2dzdHIgIiIKLSJWZXJ3ZW5kZW4gU2llICcuJyB3ZW5uIFNpZSB3aXJrbGljaCBhbGxlIFVudGVycHJvamVrdGVcbiIKKyJWZXJ3ZW5kZW4gU2llICcuJyB3ZW5uIFNpZSB3aXJrbGljaCBhbGxlIFN1Ym1vZHVsZVxuIgogImRlaW5pdGlhbGlzaWVyZW4gbcO2Y2h0ZW4uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2NzMKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IgorbXNnaWQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIKIG1zZ3N0ciAiIgotIkFyYmVpdHNiYXVtIGRlcyBVbnRlcnByb2pla3RzIGluICckc21fcGF0aCcgZW50aMOkbHQgZWluIC5naXQtVmVyemVpY2huaXMiCisiQXJiZWl0c3ZlcnplaWNobmlzIGRlcyBTdWJtb2R1bHMgaW4gJyRkaXNwbGF5cGF0aCcgZW50aMOkbHQgZWluIC5naXQtIgorIlZlcnplaWNobmlzIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYwNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2NzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgaGlzdG9yeSkiCiBtc2dzdHIgIiIKLSIoYmVudXR6ZW4gU2llICdybSAtcmYnIHdlbm4gU2llIGRpZXNlcyBVbnRlcnByb2pla3Qgd2lya2xpY2ggbWl0c2FtdFxuIgorIihiZW51dHplbiBTaWUgJ3JtIC1yZicgd2VubiBTaWUgZGllc2VzIFN1Ym1vZHVsIHdpcmtsaWNoIG1pdHNhbXRcbiIKICJzZWluZXIgSGlzdG9yaWUgbMO2c2NoZW4gbcO2Y2h0ZW4pIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODAKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgorIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgogImRpc2NhcmQgdGhlbSIKIG1zZ3N0ciAiIgotIkFyYmVpdHNiYXVtIHZvbiBVbnRlcnByb2pla3QgaW4gJyRzbV9wYXRoJyBlbnRow6RsdCBsb2thbGUgw4RuZGVydW5nZW47ICIKKyJBcmJlaXRzdmVyemVpY2huaXMgdm9uIFN1Ym1vZHVsIGluICckZGlzcGxheXBhdGgnIGVudGjDpGx0IGxva2FsZSDDhG5kZXJ1bmdlbjsgIgogInZlcndlbmRlbiBTaWUgJy1mJyB1bSBkaWVzZSB6dSB2ZXJ3ZXJmZW4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEzCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiVmVyemVpY2huaXMgJyRzbV9wYXRoJyBiZXJlaW5pZ3QuIgorbXNnaWQgIkNsZWFyZWQgZGlyZWN0b3J5ICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJWZXJ6ZWljaG5pcyAnJGRpc3BsYXlwYXRoJyBiZXJlaW5pZ3QuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODQKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnJHNtX3BhdGgnIgotbXNnc3RyICJLb25udGUgQXJiZWl0c2JhdW0gZGVzIFVudGVycHJvamVrdGVzIGluICckc21fcGF0aCcgbmljaHQgbMO2c2NoZW4uIgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxNwotIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBlbXB0eSBzdWJtb2R1bGUgZGlyZWN0b3J5ICckc21fcGF0aCciCittc2dpZCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCi0iS29ubnRlIGtlaW4gbGVlcmVzIFZlcnplaWNobmlzIGbDvHIgVW50ZXJwcm9qZWt0IGluICckc21fcGF0aCcgZXJzdGVsbGVuLiIKKyJLb25udGUgQXJiZWl0c3ZlcnplaWNobmlzIGRlcyBTdWJtb2R1bHMgaW4gJyRkaXNwbGF5cGF0aCcgbmljaHQgbMO2c2NoZW4uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYyNgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKLSJVbnRlcnByb2pla3QgJyRuYW1lJyAoJHVybCkgZsO8ciBQZmFkICckc21fcGF0aCcgd3VyZGUgYXVzIGRlciBLb25maWd1cmF0aW9uICIKKyJLb25udGUga2VpbiBsZWVyZXMgVmVyemVpY2huaXMgZsO8ciBTdWJtb2R1bCBpbiAnJGRpc3BsYXlwYXRoJyBlcnN0ZWxsZW4uIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjY5NgorIywgc2gtZm9ybWF0Cittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHVucmVnaXN0ZXJlZCBmb3IgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIlN1Ym1vZHVsICckbmFtZScgKCR1cmwpIGbDvHIgUGZhZCAnJGRpc3BsYXlwYXRoJyB3dXJkZSBhdXMgZGVyIEtvbmZpZ3VyYXRpb24gIgogImVudGZlcm50LiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3MzEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODExCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCcgbm90IGluaXRpYWxpemVkXG4iCisiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCcgbm90IGluaXRpYWxpemVkXG4iCiAiTWF5YmUgeW91IHdhbnQgdG8gdXNlICd1cGRhdGUgLS1pbml0Jz8iCiBtc2dzdHIgIiIKLSJVbnRlcnByb2pla3QtUGZhZCAnJHByZWZpeCRzbV9wYXRoJyBpc3QgbmljaHQgaW5pdGlhbGlzaWVydC5cbiIKKyJTdWJtb2R1bC1QZmFkICckZGlzcGxheXBhdGgnIGlzdCBuaWNodCBpbml0aWFsaXNpZXJ0LlxuIgogIlZpZWxsZWljaHQgbcO2Y2h0ZW4gU2llICd1cGRhdGUgLS1pbml0JyBiZW51dHplbj8iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzQ0CisjOiBnaXQtc3VibW9kdWxlLnNoOjgyNAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiIgotIktvbm50ZSBha3R1ZWxsZSBSZXZpc2lvbiBpbiBVbnRlcnByb2pla3QtUGZhZCAnJHByZWZpeCRzbV9wYXRoJyBuaWNodCBmaW5kZW4uIgorbXNnaWQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIktvbm50ZSBha3R1ZWxsZW4gQ29tbWl0IGluIFN1Ym1vZHVsLVBmYWQgJyRkaXNwbGF5cGF0aCcgbmljaHQgZmluZGVuLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3NTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODMzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiS29ubnRlIGluIFVudGVycHJvamVrdC1QZmFkICckc21fcGF0aCcgbmljaHQgYW5mb3JkZXJuIgorbXNnc3RyICJLb25udGUgXCJmZXRjaFwiIGluIFN1Ym1vZHVsLVBmYWQgJyRzbV9wYXRoJyBuaWNodCBhdXNmw7xocmVuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc3NworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NTcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiS29ubnRlIGluIFVudGVycHJvamVrdC1QZmFkICckcHJlZml4JHNtX3BhdGgnIG5pY2h0IGFuZm9yZGVybiIKK21zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIktvbm50ZSBcImZldGNoXCIgaW4gU3VibW9kdWwtUGZhZCAnJGRpc3BsYXlwYXRoJyBuaWNodCBhdXNmw7xocmVuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzEKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byByZWJhc2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJVbmFibGUgdG8gcmViYXNlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIlJlYmFzZSBhdWYgJyRzaGExJyBpbiBTdWJtb2R1bC1QZmFkICckZGlzcGxheXBhdGgnIG5pY2h0IG3DtmdsaWNoIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjg3MgorIywgc2gtZm9ybWF0Cittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IHJlYmFzZWQgaW50byAnJHNoYTEnIgorbXNnc3RyICJTdWJtb2R1bC1QZmFkICckZGlzcGxheXBhdGgnOiBSZWJhc2UgYXVmICckc2hhMSciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODc3CisjLCBzaC1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gbWVyZ2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiTWVyZ2Ugdm9uICckc2hhMScgaW4gU3VibW9kdWwtUGZhZCAnJGRpc3BsYXlwYXRoJyBmZWhsZ2VzY2hsYWdlbiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzgKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiBtZXJnZWQgaW4gJyRzaGExJyIKK21zZ3N0ciAiU3VibW9kdWwtUGZhZCAnJGRpc3BsYXlwYXRoJzogenVzYW1tZW5nZWbDvGhydCBpbiAnJHNoYTEnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjg4MworIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIkV4ZWN1dGlvbiBvZiAnJGNvbW1hbmQgJHNoYTEnIGZhaWxlZCBpbiBzdWJtb2R1bGUgIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCiBtc2dzdHIgIiIKLSJOZXVhdWZiYXUgdm9uICckc2hhMScgaW4gVW50ZXJwcm9qZWt0LVBmYWQgJyRwcmVmaXgkc21fcGF0aCcgbmljaHQgbcO2Z2xpY2giCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzkyCi0jLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogcmViYXNlZCBpbnRvICckc2hhMSciCi1tc2dzdHIgIlVudGVycHJvamVrdC1QZmFkICckcHJlZml4JHNtX3BhdGgnOiBuZXUgYXVmZ2ViYXV0IGluICckc2hhMSciCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk3Ci0jLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gbWVyZ2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiIgotIlp1c2FtbWVuZsO8aHJ1bmcgdm9uICckc2hhMScgaW4gVW50ZXJwcm9qZWt0LVBmYWQgJyRwcmVmaXgkc21fcGF0aCcgIgorIkF1c2bDvGhydW5nIHZvbiAnJGNvbW1hbmQgJHNoYTEnIGluIFN1Ym1vZHVsLVBmYWQgJyRwcmVmaXgkc21fcGF0aCcgIgogImZlaGxnZXNjaGxhZ2VuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBtZXJnZWQgaW4gJyRzaGExJyIKLW1zZ3N0ciAiVW50ZXJwcm9qZWt0LVBmYWQgJyRwcmVmaXgkc21fcGF0aCc6IHp1c2FtbWVuZ2Vmw7xocnQgaW4gJyRzaGExJyIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogJyRjb21tYW5kICRzaGExJyIKK21zZ3N0ciAiU3VibW9kdWwtUGZhZCAnJHByZWZpeCRzbV9wYXRoJzogJyRjb21tYW5kICRzaGExJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODg5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiIgotIktvbm50ZSAnJHNoYTEnIGluIFVudGVycHJvamVrdC1QZmFkICckcHJlZml4JHNtX3BhdGgnIG5pY2h0IGF1c2NoZWNrZW4uIgorbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLb25udGUgJyRzaGExJyBpbiBTdWJtb2R1bC1QZmFkICckZGlzcGxheXBhdGgnIG5pY2h0IGF1c2NoZWNrZW4uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgwNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4OTAKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgotbXNnc3RyICJVbnRlcnByb2pla3QtUGZhZDogJyRwcmVmaXgkc21fcGF0aCc6ICckc2hhMScgYXVzZ2VjaGVja3QiCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IGNoZWNrZWQgb3V0ICckc2hhMSciCittc2dzdHIgIlN1Ym1vZHVsLVBmYWQ6ICckZGlzcGxheXBhdGgnOiAnJHNoYTEnIGF1c2dlY2hlY2t0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MTcKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIkZlaGxlciBiZWkgUmVrdXJzaW9uIGluIFVudGVycHJvamVrdC1QZmFkICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIkZlaGxlciBiZWkgUmVrdXJzaW9uIGluIFN1Ym1vZHVsLVBmYWQgJyRkaXNwbGF5cGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTM5CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwMjUKIG1zZ2lkICJUaGUgLS1jYWNoZWQgb3B0aW9uIGNhbm5vdCBiZSB1c2VkIHdpdGggdGhlIC0tZmlsZXMgb3B0aW9uIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC0tY2FjaGVkIHVuZCAtLWZpbGVzIGvDtm5uZW4gbmljaHQgZ2VtZWluc2FtIHZlcndlbmRldCB3ZXJkZW4uIgogCiAjLiB1bmV4cGVjdGVkIHR5cGUKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTc5CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwNjYKICMsIHNoLWZvcm1hdAogbXNnaWQgInVuZXhwZWN0ZWQgbW9kZSAkbW9kX2RzdCIKIG1zZ3N0ciAidW5lcndhcnRldGVyIE1vZHVzICRtb2RfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjk5NworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg2CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgotbXNnc3RyICIgIFdhcm51bmc6ICRuYW1lIGJlaW5oYWx0ZXQgbmljaHQgVmVyc2lvbiAkc2hhMV9zcmMiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgorbXNnc3RyICIgIFdhcm51bmc6ICRkaXNwbGF5X25hbWUgYmVpbmhhbHRldCBuaWNodCBDb21taXQgJHNoYTFfc3JjIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMDAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA4OQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKLW1zZ3N0ciAiICBXYXJudW5nOiAkbmFtZSBiZWluaGFsdGV0IG5pY2h0IFZlcnNpb24gJHNoYTFfZHN0IgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKK21zZ3N0ciAiICBXYXJudW5nOiAkZGlzcGxheV9uYW1lIGJlaW5oYWx0ZXQgbmljaHQgQ29tbWl0ICRzaGExX2RzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwOTIKICMsIHNoLWZvcm1hdAotbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdHMgJHNoYTFfc3JjIGFuZCAkc2hhMV9kc3QiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgogbXNnc3RyICIiCi0iICBXYXJudW5nOiAkbmFtZSBiZWluaGFsdGV0IG5pY2h0IGRpZSBWZXJzaW9uZW4gJHNoYTFfc3JjIHVuZCAkc2hhMV9kc3QiCisiICBXYXJudW5nOiAkZGlzcGxheV9uYW1lIGJlaW5oYWx0ZXQgbmljaHQgZGllIENvbW1pdHMgJHNoYTFfc3JjIHVuZCAkc2hhMV9kc3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAyOAorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTE3CiBtc2dpZCAiYmxvYiIKIG1zZ3N0ciAiQmxvYiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjExNTUKIG1zZ2lkICJTdWJtb2R1bGVzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkOiIKLW1zZ3N0ciAiVW50ZXJwcm9qZWt0ZSBnZcOkbmRlcnQsIGFiZXIgbmljaHQgYWt0dWFsaXNpZXJ0OiIKK21zZ3N0ciAiU3VibW9kdWxlIGdlw6RuZGVydCwgYWJlciBuaWNodCBha3R1YWxpc2llcnQ6IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwNjgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1NwogbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCi1tc2dzdHIgIsOEbmRlcnVuZ2VuIGluIFVudGVycHJvamVrdCB6dW0gRWludHJhZ2VuOiIKK21zZ3N0ciAiw4RuZGVydW5nZW4gaW4gU3VibW9kdWwgenVtIENvbW1pdHRlbjoiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1MworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjQyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIkZlaGxlciBiZWkgUmVrdXJzaW9uIGluIFVudGVycHJvamVrdC1QZmFkICckc21fcGF0aCciCittc2dzdHIgIkZlaGxlciBiZWkgUmVrdXJzaW9uIGluIFN1Ym1vZHVsLVBmYWQgJyRzbV9wYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjE2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEzMDYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIlN5bmNocm9uaXNpZXJlIFVudGVycHJvamVrdC1VUkwgZsO8ciAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJTeW5jaHJvbml6aW5nIHN1Ym1vZHVsZSB1cmwgZm9yICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJTeW5jaHJvbmlzaWVyZSBTdWJtb2R1bC1VUkwgZsO8ciAnJGRpc3BsYXlwYXRoJyIKKworI34gbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCisjfiBtc2dzdHIgIiIKKyN+ICIgIChiZWhlYmVuIFNpZSBkaWUgS29uZmxpa3RlIHVuZCBmw7xocmVuIFNpZSBkYW5uIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIiAiCisjfiAiYXVzKSIKKworI34gbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiCisjfiBtc2dzdHIgIiAgKGFsbGUgS29uZmxpa3RlIGJlaG9iZW46IGbDvGhyZW4gU2llIFwiZ2l0IGNvbW1pdFwiIGF1cykiCisKKyN+IG1zZ2lkICJtb3JlIHRoYW4gJWQgdHJlZXMgZ2l2ZW46ICclcyciCisjfiBtc2dzdHIgIk1laHIgYWxzICVkIFwiVHJlZVwiLU9iamVrdGUgYW5nZWdlYmVuOiAnJXMnIgorCisjfiBtc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tbm8tZmYgd2l0aCAtLWZmLW9ubHkuIgorI34gbXNnc3RyICJTaWUga8O2bm5lbiAtLW5vLWZmIG5pY2h0IG1pdCAtLWZmLS1vbmx5IGtvbWJpbmllcmVuLiIKKworI34gbXNnaWQgIiIKKyN+ICJzdWJtb2R1bGUgJyVzJyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCisjfiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzICIKKyN+ICJoaXN0b3J5KSIKKyN+IG1zZ3N0ciAiIgorI34gIlN1Ym1vZHVsICclcycgKG9kZXIgZWluIGdlc2NoYWNodGVsdGVzIFN1Ym1vZHVsIGhpZXJ2b24pIHZlcndlbmRldFxuIgorI34gImVpbiAuZ2l0LVZlcnplaWNobmlzIChiZW51dHplbiBTaWUgJ3JtIC1yZicgd2VubiBTaWUgZGllc2VzIHdpcmtsaWNoICIKKyN+ICJtaXRzYW10XG4iCisjfiAic2VpbmVyIEhpc3RvcmllIGzDtnNjaGVuIG3DtmNodGVuKSIKKworI34gbXNnaWQgIiIKKyN+ICInJXMnIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXhcbiIKKyN+ICIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgorI34gbXNnc3RyICIiCisjfiAiJyVzJyBoYXQgenVtIENvbW1pdCB2b3JnZW1lcmt0ZSDDhG5kZXJ1bmdlblxuIgorI34gIihiZW51dHplbiBTaWUgLS1jYWNoZWQgdW0gZGllIERhdGVpIHp1IGJlaGFsdGVuLCBvZGVyIC1mIHVtIGRpZSAiCisjfiAiRW50ZmVybnVuZyB6dSBlcnp3aW5nZW4pIgorCisjfiBtc2dpZCAic2hvdyBjb21taXRzIHdoZXJlIG5vIHBhcmVudCBjb21lcyBiZWZvcmUgaXRzIGNoaWxkcmVuIgorI34gbXNnc3RyICIiCisjfiAiemVpZ3QgQ29tbWl0cywgYmVpIGRlbmVuIGtlaW4gRWx0ZXJuLUNvbW1pdCB2b3Igc2VpbmVtIEtpbmQtQ29tbWl0IGtvbW10IgorCisjfiBtc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiCisjfiBtc2dzdHIgInplaWd0IFJlZmVyZW56IHZvbiBIRUFEIgorCisjfiBtc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorI34gbXNnc3RyICJLb25udGUgXCJmZXRjaFwiIGluIFN1Ym1vZHVsLVBmYWQgJyRwcmVmaXgkc21fcGF0aCcgbmljaHQgYXVzZsO8aHJlbiIKKworI34gbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCisjfiBtc2dzdHIgIkZlaGxlciBiZWkgUmVrdXJzaW9uIGluIFN1Ym1vZHVsLVBmYWQgJyRwcmVmaXgkc21fcGF0aCciCiAKICN+IG1zZ2lkICJJdCB0b29rICUuMmYgc2Vjb25kcyB0byBlbnVtZXJhdGUgdW50cmFja2VkIGZpbGVzLiAgJ3N0YXR1cyAtdW5vJyIKICN+IG1zZ3N0ciAiIgpkaWZmIC0tZ2l0IGEvcG8vZnIucG8gYi9wby9mci5wbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2RiNmY5Ci0tLSAvZGV2L251bGwKKysrIGIvcG8vZnIucG8KQEAgLTAsMCArMSw5ODIzIEBACisjIEZyZW5jaCB0cmFuc2xhdGlvbnMgZm9yIEdpdC4KKyMgQ29weXJpZ2h0IChDKSAyMDEzIEplYW4tTm/Dq2wgQXZpbGEgPGpuLmF2aWxhQGZyZWUuZnI+CisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHRoZSBHaXQgcGFja2FnZS4KKyMgSmVhbi1Ob8OrbCBBdmlsYSA8am4uYXZpbGFAZnJlZS5mcj4sIDIwMTMuCisjIFPDqWJhc3RpZW4gSGVsbGV1IDxmbGFzaGNvZGVAZmxhc2h0dXgub3JnPiwgMjAxMy4KKyMKKyMgRnJlbmNoIHRyYW5zbGF0aW9ucyBvZiBjb21tb24gR2l0IHdvcmRzIHVzZWQgaW4gdGhpcyBmaWxlOgorIworIyAgIEVuZ2xpc2ggICAgICAgICAgfCAgRnJlbmNoCisjICAgLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICAgI05OICAgICAgICAgICAgICB8ICBuwrBOTgorIyAgIGEgY29tbWl0ICAgICAgICAgfCAgdW4gY29tbWl0CisjICAgYmFja3dhcmQgICAgICAgICB8CisjICAgICBjb21wYXRpYmlsaXR5ICB8ICByw6l0cm9jb21wYXRpYmlsaXTDqQorIyAgIGJhcmUgcmVwb3NpdG9yeSAgfCAgZMOpcMO0dCBudQorIyAgIGJpc2VjdCAgICAgICAgICAgfCAgYmlzc2VjdGlvbgorIyAgIGJsb2IgICAgICAgICAgICAgfCAgYmxvYgorIyAgIGJ1ZyAgICAgICAgICAgICAgfCAgYm9ndWUKKyMgICBidW5kbGUgICAgICAgICAgIHwgIGNvbGlzCisjICAgY2hlcnJ5LXBpY2sgICAgICB8ICBwaWNvcmVyCisjICAgZGFuZ2xpbmcgICAgICAgICB8ICBlbiBzdXNwZW5zCisjICAgZGVidWdnaW5nICAgICAgICB8ICBkw6lib2dhZ2UKKyMgICBmYXN0LWZvcndhcmQgICAgIHwgIGF2YW5jZSByYXBpZGUKKyMgICBmYXN0LWZvcndhcmRlZCAgIHwgIG1pcyDDoCBqb3VyIGVuIGF2YW5jZSByYXBpZGUKKyMgICBnbG9iICAgICAgICAgICAgIHwgIGdsb2IKKyMgICBoYXNoICAgICAgICAgICAgIHwgIGhhY2hhZ2UKKyMgICBIRUFEICAgICAgICAgICAgIHwgIEhFQUQgKGdlbnJlIGbDqW1pbmluKQorIyAgIGhvb2sgICAgICAgICAgICAgfCAgaG9vaworIyAgIGh1bmsgICAgICAgICAgICAgfCAgc2VjdGlvbgorIyAgIG1lcmdlICAgICAgICAgICAgfCAgZnVzaW9uCisjICAgcGF0dGVybiAgICAgICAgICB8ICBtb3RpZgorIyAgIHJlcG9zaXRvcnkgICAgICAgfCAgZMOpcMO0dAorIyAgIHJlbW90ZSAgICAgICAgICAgfCAgZGlzdGFudGUgKG91IHNlcnZldXIgZGlzdGFudCkKKyMgICByZXZpc2lvbiAgICAgICAgIHwgIHLDqXZpc2lvbgorIyAgIHN0YXNoICAgICAgICAgICAgfCAgcmVtaXNhZ2UKKyMgICB0YWcgICAgICAgICAgICAgIHwgIMOpdGlxdWV0dGUKKyMgICB0ZW1wbGF0ZSAgICAgICAgIHwgIG1vZMOobGUKKyMgICB0byBjaGVja291dCAgICAgIHwgIGV4dHJhaXJlCisjICAgdG8gY29tbWl0ICAgICAgICB8ICB2YWxpZGVyCisjICAgdG8gZmV0Y2ggICAgICAgICB8ICByYXBhdHJpZXIKKyMgICB0byBwcnVuZSAgICAgICAgIHwgIMOpbGFndWVyCisjICAgdG8gcHVzaCAgICAgICAgICB8ICBwb3Vzc2VyCisjICAgdG8gcmViYXNlICAgICAgICB8ICByZWJhc2VyCisjICAgdG8gc3Rhc2ggICAgICAgICB8ICByZW1pc2VyCisjICAgdG8gdHJhY2sgICAgICAgICB8ICBzdWl2cmUKKyMgICB0byB1bnN0YWdlICAgICAgIHwgIGTDqXNpbmRleGVyCisjICAgdHJlZS1pc2ggICAgICAgICB8ICBhcmJyZQorIyAgIHVwc3RyZWFtICAgICAgICAgfCAgYW1vbnQKKyMgICB3b3JrdHJlZSAvICAgICAgIHwKKyMgICB3b3JrKGluZykgdHJlZSAgIHwgIGNvcGllIGRlIHRyYXZhaWwKKyMKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IGdpdFxuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBHaXQgTWFpbGluZyBMaXN0IDxnaXRAdmdlci5rZXJuZWwub3JnPlxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA0LTMwIDA4OjI1KzA4MDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDEzLTA4LTI3IDE5OjQzKzAyMDBcbiIKKyJMYXN0LVRyYW5zbGF0b3I6IFPDqWJhc3RpZW4gSGVsbGV1IDxmbGFzaGNvZGVAZmxhc2h0dXgub3JnPlxuIgorIkxhbmd1YWdlLVRlYW06IEplYW4tTm/Dq2wgQXZpbGEgPGpuLmF2aWxhQGZyZWUuZnI+XG4iCisiTGFuZ3VhZ2U6IGZyXG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9bjw9MSA/MCA6IDE7XG4iCisiWC1HZW5lcmF0b3I6IFBvZWRpdCAxLjUuNFxuIgorCisjOiBhZHZpY2UuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJoaW50OiAlLipzXG4iCittc2dzdHIgImFzdHVjZTogJS4qc1xuIgorCisjLgorIy4gKiBNZXNzYWdlIHVzZWQgYm90aCB3aGVuICdnaXQgY29tbWl0JyBmYWlscyBhbmQgd2hlbgorIy4gKiBvdGhlciBjb21tYW5kcyBkb2luZyBhIG1lcmdlIGRvLgorIy4KKyM6IGFkdmljZS5jOjgzCittc2dpZCAiIgorIkZpeCB0aGVtIHVwIGluIHRoZSB3b3JrIHRyZWUsXG4iCisiYW5kIHRoZW4gdXNlICdnaXQgYWRkL3JtIDxmaWxlPicgYXNcbiIKKyJhcHByb3ByaWF0ZSB0byBtYXJrIHJlc29sdXRpb24gYW5kIG1ha2UgYSBjb21taXQsXG4iCisib3IgdXNlICdnaXQgY29tbWl0IC1hJy4iCittc2dzdHIgIiIKKyJDb3JyaWdlei1sZXMgZGFucyBsYSBjb3BpZSBkZSB0cmF2YWlsLFxuIgorImV0IHV0aWxpc2V6ICdnaXQgYWRkL3JtIDxmaWNoaWVyPicgc2lcbiIKKyJuw6ljZXNzYWlyZSBwb3VyIG1hcnF1ZXIgbGEgcsOpc29sdXRpb24gZXQgdmFsaWRlcixcbiIKKyJvdSB1dGlsaXNleiAnZ2l0IGNvbW1pdCAtYScuIgorCisjOiBhcmNoaXZlLmM6MTAKK21zZ2lkICJnaXQgYXJjaGl2ZSBbb3B0aW9uc10gPHRyZWUtaXNoPiBbPHBhdGg+Li4uXSIKK21zZ3N0ciAiZ2l0IGFyY2hpdmUgW29wdGlvbnNdIDxhcmJyZT4gWzxjaGVtaW4+Li4uXSIKKworIzogYXJjaGl2ZS5jOjExCittc2dpZCAiZ2l0IGFyY2hpdmUgLS1saXN0IgorbXNnc3RyICJnaXQgYXJjaGl2ZSAtLWxpc3QiCisKKyM6IGFyY2hpdmUuYzoxMgorbXNnaWQgIiIKKyJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8cmVwbz4gWy0tZXhlYyA8Y21kPl0gW29wdGlvbnNdIDx0cmVlLWlzaD4gWzxwYXRoPi4uLl0iCittc2dzdHIgImdpdCBhcmNoaXZlIC0tcmVtb3RlIDxkw6lww7R0PiBbLS1leGVjIDxjb21tYW5kZT5dIFtvcHRpb25zXSA8YXJicmU+IFs8Y2hlbWluPi4uLl0iCisKKyM6IGFyY2hpdmUuYzoxMworbXNnaWQgImdpdCBhcmNoaXZlIC0tcmVtb3RlIDxyZXBvPiBbLS1leGVjIDxjbWQ+XSAtLWxpc3QiCittc2dzdHIgImdpdCBhcmNoaXZlIC0tcmVtb3RlIDxkw6lww7R0PiBbLS1leGVjIDxjb21tYW5kZT5dIC0tbGlzdCIKKworIzogYXJjaGl2ZS5jOjMyMworbXNnaWQgImZtdCIKK21zZ3N0ciAiZm10IgorCisjOiBhcmNoaXZlLmM6MzIzCittc2dpZCAiYXJjaGl2ZSBmb3JtYXQiCittc2dzdHIgImZvcm1hdCBkJ2FyY2hpdmUiCisKKyM6IGFyY2hpdmUuYzozMjQgYnVpbHRpbi9sb2cuYzoxMTI2Cittc2dpZCAicHJlZml4IgorbXNnc3RyICJwcsOpZml4ZSIKKworIzogYXJjaGl2ZS5jOjMyNQorbXNnaWQgInByZXBlbmQgcHJlZml4IHRvIGVhY2ggcGF0aG5hbWUgaW4gdGhlIGFyY2hpdmUiCittc2dzdHIgInByw6lmaXhlciBjaGFxdWUgY2hlbWluIGRlIGZpY2hpZXIgZGFucyBsJ2FyY2hpdmUiCisKKyM6IGFyY2hpdmUuYzozMjYgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIzNzEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcyIGJ1aWx0aW4vY29uZmlnLmM6NTUgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NQorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NyBidWlsdGluL2dyZXAuYzo3MTUgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwIGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9ub3Rlcy5jOjUzNgorIzogYnVpbHRpbi9ub3Rlcy5jOjY5MyBidWlsdGluL3JlYWQtdHJlZS5jOjEwNyBwYXJzZS1vcHRpb25zLmg6MTQ5Cittc2dpZCAiZmlsZSIKK21zZ3N0ciAiZmljaGllciIKKworIzogYXJjaGl2ZS5jOjMyNyBidWlsdGluL2FyY2hpdmUuYzo4OQorbXNnaWQgIndyaXRlIHRoZSBhcmNoaXZlIHRvIHRoaXMgZmlsZSIKK21zZ3N0ciAiw6ljcmlyZSBsJ2FyY2hpdmUgZGFucyBjZSBmaWNoaWVyIgorCisjOiBhcmNoaXZlLmM6MzI5Cittc2dpZCAicmVhZCAuZ2l0YXR0cmlidXRlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSIKK21zZ3N0ciAibGlyZSAuZ2l0YXR0cmlidXRlcyBkYW5zIGxlIHLDqXBlcnRvaXJlIGRlIHRyYXZhaWwiCisKKyM6IGFyY2hpdmUuYzozMzAKK21zZ2lkICJyZXBvcnQgYXJjaGl2ZWQgZmlsZXMgb24gc3RkZXJyIgorbXNnc3RyICJhZmZpY2hlciBsZXMgZmljaGllcnMgYXJjaGl2w6lzIHN1ciBzdGRlcnIiCisKKyM6IGFyY2hpdmUuYzozMzEKK21zZ2lkICJzdG9yZSBvbmx5IgorbXNnc3RyICJzdG9ja2FnZSBzZXVsZW1lbnQiCisKKyM6IGFyY2hpdmUuYzozMzIKK21zZ2lkICJjb21wcmVzcyBmYXN0ZXIiCittc2dzdHIgImNvbXByZXNzaW9uIHJhcGlkZSIKKworIzogYXJjaGl2ZS5jOjM0MAorbXNnaWQgImNvbXByZXNzIGJldHRlciIKK21zZ3N0ciAiY29tcHJlc3Npb24gZWZmaWNhY2UiCisKKyM6IGFyY2hpdmUuYzozNDMKK21zZ2lkICJsaXN0IHN1cHBvcnRlZCBhcmNoaXZlIGZvcm1hdHMiCittc2dzdHIgImxpc3RlciBsZXMgZm9ybWF0cyBkJ2FyY2hpdmUgc3VwcG9ydMOpcyIKKworIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODYKK21zZ2lkICJyZXBvIgorbXNnc3RyICJkw6lww7R0IgorCisjOiBhcmNoaXZlLmM6MzQ2IGJ1aWx0aW4vYXJjaGl2ZS5jOjkxCittc2dpZCAicmV0cmlldmUgdGhlIGFyY2hpdmUgZnJvbSByZW1vdGUgcmVwb3NpdG9yeSA8cmVwbz4iCittc2dzdHIgInLDqWN1cMOpcmVyIGwnYXJjaGl2ZSBkZXB1aXMgbGUgZMOpcMO0dCBkaXN0YW50IDxkw6lww7R0PiIKKworIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NjE1Cittc2dpZCAiY29tbWFuZCIKK21zZ3N0ciAiY29tbWFuZGUiCisKKyM6IGFyY2hpdmUuYzozNDggYnVpbHRpbi9hcmNoaXZlLmM6OTMKK21zZ2lkICJwYXRoIHRvIHRoZSByZW1vdGUgZ2l0LXVwbG9hZC1hcmNoaXZlIGNvbW1hbmQiCittc2dzdHIgImNoZW1pbiB2ZXJzIGxhIGNvbW1hbmRlIGRpc3RhbnRlIGdpdC11cGxvYWQtYXJjaGl2ZSIKKworIzogYXR0ci5jOjI1OQorbXNnaWQgIiIKKyJOZWdhdGl2ZSBwYXR0ZXJucyBhcmUgaWdub3JlZCBpbiBnaXQgYXR0cmlidXRlc1xuIgorIlVzZSAnXFwhJyBmb3IgbGl0ZXJhbCBsZWFkaW5nIGV4Y2xhbWF0aW9uLiIKK21zZ3N0ciAiIgorIkxlcyBtb3RpZnMgZGUgbsOpZ2F0aW9uIHNvbnQgaWdub3LDqXMgZGFucyBsZXMgYXR0cmlidXRzIGdpdFxuIgorIlV0aWxpc2V6ICdcXCEnIHBvdXIgdW4gcG9pbnQgZCdleGNsYW1hdGlvbiBsaXR0w6lyYWwuIgorCisjOiBicmFuY2guYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBicmFuY2ggJXMgYXMgaXRzIG93biB1cHN0cmVhbS4iCittc2dzdHIgIkxhIGJyYW5jaGUgJXMgbmUgcGV1dCBwYXMgw6p0cmUgc2EgcHJvcHJlIGJyYW5jaGUgYW1vbnQuIgorCisjOiBicmFuY2guYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIHJlbW90ZSBicmFuY2ggJXMgZnJvbSAlcyBieSByZWJhc2luZy4iCittc2dzdHIgIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSBicmFuY2hlIGRpc3RhbnRlICVzIGRlICVzIGVuIHJlYmFzYW50LiIKKworIzogYnJhbmNoLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgYnJhbmNoICVzIGZyb20gJXMuIgorbXNnc3RyICJMYSBicmFuY2hlICVzIGVzdCBwYXJhbcOpdHLDqWUgcG91ciBzdWl2cmUgbGEgYnJhbmNoZSBkaXN0YW50ZSAlcyBkZXB1aXMgJXMuIgorCisjOiBicmFuY2guYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIGxvY2FsIGJyYW5jaCAlcyBieSByZWJhc2luZy4iCittc2dzdHIgIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSBicmFuY2hlIGxvY2FsZSAlcyBlbiByZWJhc2FudC4iCisKKyM6IGJyYW5jaC5jOjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgYnJhbmNoICVzLiIKK21zZ3N0ciAiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIGJyYW5jaGUgbG9jYWxlICVzLiIKKworIzogYnJhbmNoLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgcmVmICVzIGJ5IHJlYmFzaW5nLiIKK21zZ3N0ciAiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIHLDqWbDqXJlbmNlIGRpc3RhbnRlICVzIGVuIHJlYmFzYW50LiIKKworIzogYnJhbmNoLmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgcmVmICVzLiIKK21zZ3N0ciAiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIHLDqWbDqXJlbmNlIGRpc3RhbnRlICVzLiIKKworIzogYnJhbmNoLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCByZWYgJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICJMYSBicmFuY2hlICVzIGVzdCBwYXJhbcOpdHLDqWUgcG91ciBzdWl2cmUgbGEgcsOpZsOpcmVuY2UgbG9jYWxlICVzIGVuIHJlYmFzYW50LiIKKworIzogYnJhbmNoLmM6OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCByZWYgJXMuIgorbXNnc3RyICJMYSBicmFuY2hlICVzIGVzdCBwYXJhbcOpdHLDqWUgcG91ciBzdWl2cmUgbGEgcsOpZsOpcmVuY2UgbG9jYWxlICVzLiIKKworIzogYnJhbmNoLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRyYWNraW5nIG5vdCBzZXQgdXA6IG5hbWUgdG9vIGxvbmc6ICVzIgorbXNnc3RyICJTdWl2aSBkZSBicmFuY2hlIG5vbiBwYXJhbcOpdHLDqSA6IGxlIG5vbSBlc3QgdHJvcCBsb25nIDogJXMiCisKKyM6IGJyYW5jaC5jOjEzNworIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgdHJhY2tpbmc6IGFtYmlndW91cyBpbmZvcm1hdGlvbiBmb3IgcmVmICVzIgorbXNnc3RyICJQYXMgZGUgc3VpdmkgOiBpbmZvcm1hdGlvbiBhbWJpZ3XDqyBwb3VyIGxhIHLDqWbDqXJlbmNlICVzIgorCisjOiBicmFuY2guYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCBicmFuY2ggbmFtZS4iCittc2dzdHIgIiclcycgbidlc3QgcGFzIHVuIG5vbSBkZSBicmFuY2hlIHZhbGlkZS4iCisKKyM6IGJyYW5jaC5jOjE4NworIywgYy1mb3JtYXQKK21zZ2lkICJBIGJyYW5jaCBuYW1lZCAnJXMnIGFscmVhZHkgZXhpc3RzLiIKK21zZ3N0ciAiVW5lIGJyYW5jaGUgbm9tbcOpZSAnJXMnIGV4aXN0ZSBkw6lqw6AuIgorCisjOiBicmFuY2guYzoxOTUKK21zZ2lkICJDYW5ub3QgZm9yY2UgdXBkYXRlIHRoZSBjdXJyZW50IGJyYW5jaC4iCittc2dzdHIgIkltcG9zc2libGUgZGUgZm9yY2VyIGxhIG1pc2Ugw6Agam91ciBkZSBsYSBicmFuY2hlIGNvdXJhbnRlLiIKKworIzogYnJhbmNoLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBzZXR1cCB0cmFja2luZyBpbmZvcm1hdGlvbjsgc3RhcnRpbmcgcG9pbnQgJyVzJyBpcyBub3QgYSBicmFuY2guIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHBhcmFtw6l0cmVyIGxlIHN1aXZpIGRlIGJyYW5jaGUgOyBsZSBwb2ludCBkZSBkw6lwYXJ0ICclcycgbidlc3QgcGFzIHVuZSBicmFuY2hlLiIKKworIzogYnJhbmNoLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgInRoZSByZXF1ZXN0ZWQgdXBzdHJlYW0gYnJhbmNoICclcycgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgImxhIGJyYW5jaGUgYW1vbnQgZGVtYW5kw6llICclcycgbidleGlzdGUgcGFzIgorCisjOiBicmFuY2guYzoyMDUKK21zZ2lkICIiCisiXG4iCisiSWYgeW91IGFyZSBwbGFubmluZyBvbiBiYXNpbmcgeW91ciB3b3JrIG9uIGFuIHVwc3RyZWFtXG4iCisiYnJhbmNoIHRoYXQgYWxyZWFkeSBleGlzdHMgYXQgdGhlIHJlbW90ZSwgeW91IG1heSBuZWVkIHRvXG4iCisicnVuIFwiZ2l0IGZldGNoXCIgdG8gcmV0cmlldmUgaXQuXG4iCisiXG4iCisiSWYgeW91IGFyZSBwbGFubmluZyB0byBwdXNoIG91dCBhIG5ldyBsb2NhbCBicmFuY2ggdGhhdFxuIgorIndpbGwgdHJhY2sgaXRzIHJlbW90ZSBjb3VudGVycGFydCwgeW91IG1heSB3YW50IHRvIHVzZVxuIgorIlwiZ2l0IHB1c2ggLXVcIiB0byBzZXQgdGhlIHVwc3RyZWFtIGNvbmZpZyBhcyB5b3UgcHVzaC4iCittc2dzdHIgIiIKKyJcbiIKKyJTaSB2b3VzIGNvbXB0ZXogYmFzZXIgdm90cmUgdHJhdmFpbCBzdXIgdW5lIGJyYW5jaGVcbiIKKyJhbW9udCBxdWkgZXhpc3RlIGTDqWrDoCBzdXIgbGUgc2VydmV1ciBkaXN0YW50LCB2b3VzIHBvdXJyaWV6XG4iCisiZGV2b2lyIGxhbmNlciBcImdpdCBmZXRjaFwiIHBvdXIgbGEgcsOpY3Vww6lyZXIuXG4iCisiXG4iCisiU2kgdm91cyBjb21wdGV6IHBvdXNzZXIgdW5lIG5vdXZlbGxlIGJyYW5jaGUgbG9jYWxlIHF1aSBzdWl2cmFcbiIKKyJzYSBqdW1lbGxlIGRpc3RhbnRlLCB2b3VzIHNvdWhhaXRlcmV6IHV0aWxpc2VyIFwiZ2l0IHB1c2ggLXVcIlxuIgorInBvdXIgcGFyYW3DqXRyZXIgbGUgc3VpdmkgZGlzdGFudCBlbiBtw6ptZSB0ZW1wcyBxdWUgdm91cyBwb3Vzc2V6LiIKKworIzogYnJhbmNoLmM6MjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBhIHZhbGlkIG9iamVjdCBuYW1lOiAnJXMnLiIKK21zZ3N0ciAiTm9tIGQnb2JqZXQgaW52YWxpZGUgOiAnJXMnLiIKKworIzogYnJhbmNoLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFtYmlndW91cyBvYmplY3QgbmFtZTogJyVzJy4iCittc2dzdHIgIk5vbSBkJ29iamV0IGFtYmlndSA6ICclcycuIgorCisjOiBicmFuY2guYzoyNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IGEgdmFsaWQgYnJhbmNoIHBvaW50OiAnJXMnLiIKK21zZ3N0ciAiUG9pbnQgZCdlbWJyYW5jaGVtZW50IGludmFsaWRlIDogJyVzJy4iCisKKyM6IGJyYW5jaC5jOjI4MQorbXNnaWQgIkZhaWxlZCB0byBsb2NrIHJlZiBmb3IgdXBkYXRlIgorbXNnc3RyICLDiWNoZWMgZHUgdmVycm91aWxsYWdlIGRlIGxhIHLDqWbDqXJlbmNlIHBvdXIgbWlzZSDDoCBqb3VyIgorCisjOiBicmFuY2guYzoyOTkKK21zZ2lkICJGYWlsZWQgdG8gd3JpdGUgcmVmIgorbXNnc3RyICLDiWNoZWMgZGUgbCfDqWNyaXR1cmUgZGUgbGEgcsOpZsOpcmVuY2UiCisKKyM6IGJ1bmRsZS5jOjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgZG9lcyBub3QgbG9vayBsaWtlIGEgdjIgYnVuZGxlIGZpbGUiCittc2dzdHIgIiclcycgbmUgc2VtYmxlIHBhcyDDqnRyZSB1biBmaWNoaWVyIGJ1bmRsZSB2MiIKKworIzogYnVuZGxlLmM6NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGhlYWRlcjogJXMlcyAoJWQpIgorbXNnc3RyICJlbi10w6p0ZSBub24gcmVjb25udSA6ICVzJXMgKCVkKSIKKworIzogYnVuZGxlLmM6ODkgYnVpbHRpbi9jb21taXQuYzo2NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ291dnJpciAnJXMnIgorCisjOiBidW5kbGUuYzoxNDAKK21zZ2lkICJSZXBvc2l0b3J5IGxhY2tzIHRoZXNlIHByZXJlcXVpc2l0ZSBjb21taXRzOiIKK21zZ3N0ciAiTGUgZMOpcMO0dCBuZSBkaXNwb3NlIHBhcyBkZXMgY29tbWl0cyBwcsOpcmVxdWlzIDoiCisKKyM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NTEgc2VxdWVuY2VyLmM6MTEwMSBidWlsdGluL2xvZy5jOjMwMAorIzogYnVpbHRpbi9sb2cuYzo3NzAgYnVpbHRpbi9sb2cuYzoxMzQ0IGJ1aWx0aW4vbG9nLmM6MTU3MCBidWlsdGluL21lcmdlLmM6MzQ5CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MTU1Cittc2dpZCAicmV2aXNpb24gd2FsayBzZXR1cCBmYWlsZWQiCittc2dzdHIgIsOpY2hlYyBkZSBsYSBwcsOpcGFyYXRpb24gZHUgcGFyY291cnMgZGVzIHLDqXZpc2lvbnMiCisKKyM6IGJ1bmRsZS5jOjE4NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgYnVuZGxlIGNvbnRhaW5zIHRoaXMgcmVmOiIKK21zZ2lkX3BsdXJhbCAiVGhlIGJ1bmRsZSBjb250YWlucyB0aGVzZSAlZCByZWZzOiIKK21zZ3N0clswXSAiTGUgY29saXMgY29udGllbnQgY2V0dGUgcsOpZsOpcmVuY2UgOiIKK21zZ3N0clsxXSAiTGUgY29saXMgY29udGllbnQgY2VzICVkIHLDqWbDqXJlbmNlcyA6IgorCisjOiBidW5kbGUuYzoxOTMKK21zZ2lkICJUaGUgYnVuZGxlIHJlY29yZHMgYSBjb21wbGV0ZSBoaXN0b3J5LiIKK21zZ3N0ciAiTGUgY29saXMgZW5yZWdpc3RyZSBsJ2hpc3RvcmlxdWUgY29tcGxldC4iCisKKyM6IGJ1bmRsZS5jOjE5NQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgYnVuZGxlIHJlcXVpcmVzIHRoaXMgcmVmOiIKK21zZ2lkX3BsdXJhbCAiVGhlIGJ1bmRsZSByZXF1aXJlcyB0aGVzZSAlZCByZWZzOiIKK21zZ3N0clswXSAiTGUgY29saXMgZXhpZ2UgY2V0dGUgcsOpZsOpcmVuY2UgOiIKK21zZ3N0clsxXSAiTGUgY29saXMgZXhpZ2UgY2VzICVkIHLDqWbDqXJlbmNlcyA6IgorCisjOiBidW5kbGUuYzoyOTQKK21zZ2lkICJyZXYtbGlzdCBkaWVkIgorbXNnc3RyICJyZXYtbGlzdCBhIGRpc3BhcnUiCisKKyM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEyNTUgYnVpbHRpbi9zaG9ydGxvZy5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICVzIgorbXNnc3RyICJhcmd1bWVudCBub24gcmVjb25udSA6ICVzIgorCisjOiBidW5kbGUuYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVmICclcycgaXMgZXhjbHVkZWQgYnkgdGhlIHJldi1saXN0IG9wdGlvbnMiCittc2dzdHIgImxhIHLDqWbDqXJlbmNlICclcycgZXN0IGV4Y2x1ZSBwYXIgbGVzIG9wdGlvbnMgZGUgcmV2LWxpc3QiCisKKyM6IGJ1bmRsZS5jOjM4MAorbXNnaWQgIlJlZnVzaW5nIHRvIGNyZWF0ZSBlbXB0eSBidW5kbGUuIgorbXNnc3RyICJSZWZ1cyBkZSBjcsOpZXIgdW4gY29saXMgdmlkZS4iCisKKyM6IGJ1bmRsZS5jOjM5OAorbXNnaWQgIkNvdWxkIG5vdCBzcGF3biBwYWNrLW9iamVjdHMiCittc2dzdHIgIkltcG9zc2libGUgZGUgY3LDqWVyIGRlcyBvYmpldHMgZ3JvdXDDqXMiCisKKyM6IGJ1bmRsZS5jOjQxNgorbXNnaWQgInBhY2stb2JqZWN0cyBkaWVkIgorbXNnc3RyICJsZXMgb2JqZXRzIGdyb3Vww6lzIG9udCBkaXNwYXJ1IgorCisjOiBidW5kbGUuYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGNyZWF0ZSAnJXMnIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNyw6llciAnJXMnIgorCisjOiBidW5kbGUuYzo0NDEKK21zZ2lkICJpbmRleC1wYWNrIGRpZWQiCittc2dzdHIgImwnaW5kZXggZGUgZ3JvdXBlIGEgZGlzcGFydSIKKworIzogY29tbWl0LmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IHBhcnNlICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnYW5hbHlzZXIgJXMiCisKKyM6IGNvbW1pdC5jOjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVzIGlzIG5vdCBhIGNvbW1pdCEiCittc2dzdHIgIiVzICVzIG4nZXN0IHBhcyB1biBjb21taXQgISIKKworIzogY29tcGF0L29ic3RhY2suYzo0MDYgY29tcGF0L29ic3RhY2suYzo0MDgKK21zZ2lkICJtZW1vcnkgZXhoYXVzdGVkIgorbXNnc3RyICJwbHVzIGRlIG3DqW1vaXJlIgorCisjOiBjb25uZWN0ZWQuYzozOQorbXNnaWQgIkNvdWxkIG5vdCBydW4gJ2dpdCByZXYtbGlzdCciCittc2dzdHIgIkltcG9zc2libGUgZGUgbGFuY2VyICdnaXQgcmV2LWxpc3QnIgorCisjOiBjb25uZWN0ZWQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgd3JpdGUgdG8gcmV2LWxpc3Q6ICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnw6ljcmlyZSBkYW5zIGxhIHJldi1saXN0IDogJXMiCisKKyM6IGNvbm5lY3RlZC5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBjbG9zZSByZXYtbGlzdCdzIHN0ZGluOiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBmZXJtZXIgbGUgc3RkaW4gZHUgcmV2LWxpc3QgOiAlcyIKKworIzogZGF0ZS5jOjk1Cittc2dpZCAiaW4gdGhlIGZ1dHVyZSIKK21zZ3N0ciAiZGFucyBsZSBmdXR1ciIKKworIzogZGF0ZS5jOjEwMQorIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgc2Vjb25kIGFnbyIKK21zZ2lkX3BsdXJhbCAiJWx1IHNlY29uZHMgYWdvIgorbXNnc3RyWzBdICJpbCB5IGEgJWx1IHNlY29uZGUiCittc2dzdHJbMV0gImlsIHkgYSAlbHUgc2Vjb25kZXMiCisKKyM6IGRhdGUuYzoxMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IG1pbnV0ZSBhZ28iCittc2dpZF9wbHVyYWwgIiVsdSBtaW51dGVzIGFnbyIKK21zZ3N0clswXSAiaWwgeSBhICVsdSBtaW51dGUiCittc2dzdHJbMV0gImlsIHkgYSAlbHUgbWludXRlcyIKKworIzogZGF0ZS5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgaG91ciBhZ28iCittc2dpZF9wbHVyYWwgIiVsdSBob3VycyBhZ28iCittc2dzdHJbMF0gImlsIHkgYSAlbHUgaGV1cmUiCittc2dzdHJbMV0gImlsIHkgYSAlbHUgaGV1cmVzIgorCisjOiBkYXRlLmM6MTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSBkYXkgYWdvIgorbXNnaWRfcGx1cmFsICIlbHUgZGF5cyBhZ28iCittc2dzdHJbMF0gImlsIHkgYSAlbHUgam91ciIKK21zZ3N0clsxXSAiaWwgeSBhICVsdSBqb3VycyIKKworIzogZGF0ZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgd2VlayBhZ28iCittc2dpZF9wbHVyYWwgIiVsdSB3ZWVrcyBhZ28iCittc2dzdHJbMF0gImlsIHkgYSAlbHUgc2VtYWluZSIKK21zZ3N0clsxXSAiaWwgeSBhICVsdSBzZW1haW5lcyIKKworIzogZGF0ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgbW9udGggYWdvIgorbXNnaWRfcGx1cmFsICIlbHUgbW9udGhzIGFnbyIKK21zZ3N0clswXSAiaWwgeSBhICVsdSBtb2lzIgorbXNnc3RyWzFdICJpbCB5IGEgJWx1IG1vaXMiCisKKyM6IGRhdGUuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IHllYXIiCittc2dpZF9wbHVyYWwgIiVsdSB5ZWFycyIKK21zZ3N0clswXSAiJWx1IGFuIgorbXNnc3RyWzFdICIlbHUgYW5zIgorCisjOiBkYXRlLmM6MTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLCAlbHUgbW9udGggYWdvIgorbXNnaWRfcGx1cmFsICIlcywgJWx1IG1vbnRocyBhZ28iCittc2dzdHJbMF0gImlsIHkgYSAlcyBldCAlbHUgbW9pcyIKK21zZ3N0clsxXSAiaWwgeSBhICVzIGV0ICVsdSBtb2lzIgorCisjOiBkYXRlLmM6MTU0IGRhdGUuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IHllYXIgYWdvIgorbXNnaWRfcGx1cmFsICIlbHUgeWVhcnMgYWdvIgorbXNnc3RyWzBdICJpbCB5IGEgJWx1IGFuIgorbXNnc3RyWzFdICJpbCB5IGEgJWx1IGFucyIKKworIzogZGlmZi5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICIgIEZhaWxlZCB0byBwYXJzZSBkaXJzdGF0IGN1dC1vZmYgcGVyY2VudGFnZSAnJXMnXG4iCittc2dzdHIgIiAgSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIHBvdXJjZW50YWdlIGRlIG1vZGlmaWNhdGlvbiBkZSBkaXJzdGF0ICclcydcbiIKKworIzogZGlmZi5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIgIFVua25vd24gZGlyc3RhdCBwYXJhbWV0ZXIgJyVzJ1xuIgorbXNnc3RyICIgIFBhcmFtw6h0cmUgZGlyc3RhdCBpbmNvbm51ICclcydcbiIKKworIzogZGlmZi5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIHZhbHVlIGZvciAnZGlmZi5zdWJtb2R1bGUnIGNvbmZpZyB2YXJpYWJsZTogJyVzJyIKK21zZ3N0ciAiVmFsZXVyIGluY29ubnVlIHBvdXIgbGEgdmFyaWFibGUgZGUgY29uZmlndXJhdGlvbiAnZGlmZi5zdWJtb2R1bGUnIDogJyVzJyIKKworIzogZGlmZi5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRm91bmQgZXJyb3JzIGluICdkaWZmLmRpcnN0YXQnIGNvbmZpZyB2YXJpYWJsZTpcbiIKKyIlcyIKK21zZ3N0ciAiRXJyZXVycyBkYW5zIGxhIHZhcmlhYmxlIGRlIGNvbmZpZ3VyYXRpb24gJ2RpZmYuZGlyc3RhdCcgOlxuIgorIiVzIgorCisjOiBkaWZmLmM6MzQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmFpbGVkIHRvIHBhcnNlIC0tZGlyc3RhdC8tWCBvcHRpb24gcGFyYW1ldGVyOlxuIgorIiVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYW5hbHlzZXIgbGUgcGFyYW3DqHRyZSBkZSBsJ29wdGlvbiAtLWRpcnN0YXQvLVggOlxuIgorIiVzIgorCisjOiBkaWZmLmM6MzQ5NQorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcGFyc2UgLS1zdWJtb2R1bGUgb3B0aW9uIHBhcmFtZXRlcjogJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIHBhcmFtw6h0cmUgZGUgbCdvcHRpb24gLS1zdWJtb2R1bGUgOiAnJXMnIgorCisjOiBncGctaW50ZXJmYWNlLmM6NTkgZ3BnLWludGVyZmFjZS5jOjEzMQorbXNnaWQgImNvdWxkIG5vdCBydW4gZ3BnLiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsYW5jZXIgZ3BnLiIKKworIzogZ3BnLWludGVyZmFjZS5jOjcxCittc2dpZCAiZ3BnIGRpZCBub3QgYWNjZXB0IHRoZSBkYXRhIgorbXNnc3RyICJncGcgbidhIHBhcyBhY2NlcHTDqSBsZXMgZG9ubsOpZXMiCisKKyM6IGdwZy1pbnRlcmZhY2UuYzo4MgorbXNnaWQgImdwZyBmYWlsZWQgdG8gc2lnbiB0aGUgZGF0YSIKK21zZ3N0ciAiZ3BnIG4nYSBwYXMgcHUgc2lnbmVyIGxlcyBkb25uw6llcyIKKworIzogZ3BnLWludGVyZmFjZS5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3QgY3JlYXRlIHRlbXBvcmFyeSBmaWxlICclcyc6ICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNyw6llciB1biBmaWNoaWVyIHRlbXBvcmFpcmUgJyVzJyA6ICVzIgorCisjOiBncGctaW50ZXJmYWNlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB3cml0aW5nIGRldGFjaGVkIHNpZ25hdHVyZSB0byAnJXMnOiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGEgc2lnbmF0dXJlIGTDqXRhY2jDqWUgZGFucyAnJXMnIDogJXMiCisKKyM6IGdyZXAuYzoxNjIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcyc6IHVuYWJsZSB0byByZWFkICVzIgorbXNnc3RyICInJXMnIDogbGVjdHVyZSBkZSAlcyBpbXBvc3NpYmxlIgorCisjOiBncmVwLmM6MTY0MAorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnOiAlcyIKK21zZ3N0ciAiJyVzJyA6ICVzIgorCisjOiBncmVwLmM6MTY1MQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnOiBzaG9ydCByZWFkICVzIgorbXNnc3RyICInJXMnIDogbGVjdHVyZSB0cm9ucXXDqWUgJXMiCisKKyM6IGhlbHAuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYXZhaWxhYmxlIGdpdCBjb21tYW5kcyBpbiAnJXMnIgorbXNnc3RyICJjb21tYW5kZXMgZ2l0IGRpc3BvbmlibGVzIGRhbnMgJyVzJyIKKworIzogaGVscC5jOjIxOQorbXNnaWQgImdpdCBjb21tYW5kcyBhdmFpbGFibGUgZnJvbSBlbHNld2hlcmUgb24geW91ciAkUEFUSCIKK21zZ3N0ciAiY29tbWFuZGVzIGdpdCBkaXNwb25pYmxlcyBkZXB1aXMgdW4gYXV0cmUgZW5kcm9pdCBkZSB2b3RyZSAkUEFUSCIKKworIzogaGVscC5jOjIzNQorbXNnaWQgIlRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgZ2l0IGNvbW1hbmRzIGFyZToiCittc2dzdHIgIkxlcyBjb21tYW5kZXMgZ2l0IGxlcyBwbHVzIHV0aWxpc8OpZXMgc29udCA6IgorCisjOiBoZWxwLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyInJXMnIGFwcGVhcnMgdG8gYmUgYSBnaXQgY29tbWFuZCwgYnV0IHdlIHdlcmUgbm90XG4iCisiYWJsZSB0byBleGVjdXRlIGl0LiBNYXliZSBnaXQtJXMgaXMgYnJva2VuPyIKK21zZ3N0ciAiIgorIiclcycgc2VtYmxlIMOqdHJlIHVuZSBjb21tYW5kZSBnaXQsIG1haXMgZWxsZSBuJ2EgcGFzIHB1XG4iCisiw6p0cmUgZXjDqWN1dMOpZS4gUGV1dC3DqnRyZSBnaXQtJXMgZXN0LWVsbGUgY2Fzc8OpZSA/IgorCisjOiBoZWxwLmM6MzQ5Cittc2dpZCAiVWggb2guIFlvdXIgc3lzdGVtIHJlcG9ydHMgbm8gR2l0IGNvbW1hbmRzIGF0IGFsbC4iCittc2dzdHIgIkFoZW0uIFZvdHJlIHN5c3TDqG1lIG4naW5kaXF1ZSBhdWN1bmUgY29tbWFuZGUgR2l0LiIKKworIzogaGVscC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV0FSTklORzogWW91IGNhbGxlZCBhIEdpdCBjb21tYW5kIG5hbWVkICclcycsIHdoaWNoIGRvZXMgbm90IGV4aXN0LlxuIgorIkNvbnRpbnVpbmcgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB5b3UgbWVhbnQgJyVzJyIKK21zZ3N0ciAiQVRURU5USU9OIDogdm91cyBhdmV6IGludm9xdcOpIHVuZSBjb21tYW5kZSBHaXQgbm9tbcOpZSAnJXMnIHF1aSBuJ2V4aXN0ZSBwYXMuXG4iCisiUG91cnN1aXRlIGVuIHN1cHBvc2FudCBxdWUgdm91cyBhdmV6IHZvdWx1IGRpcmUgJyVzJyIKKworIzogaGVscC5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbiAlMC4xZiBzZWNvbmRzIGF1dG9tYXRpY2FsbHkuLi4iCittc2dzdHIgImRhbnMgJTAuMWYgc2Vjb25kZXMgYXV0b21hdGlxdWVtZW50Li4uIgorCisjOiBoZWxwLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgImdpdDogJyVzJyBpcyBub3QgYSBnaXQgY29tbWFuZC4gU2VlICdnaXQgLS1oZWxwJy4iCittc2dzdHIgImdpdCA6ICclcycgbidlc3QgcGFzIHVuZSBjb21tYW5kZSBnaXQuIFZvaXIgJ2dpdCAtLWhlbHAnLiIKKworIzogaGVscC5jOjM4NworbXNnaWQgIiIKKyJcbiIKKyJEaWQgeW91IG1lYW4gdGhpcz8iCittc2dpZF9wbHVyYWwgIiIKKyJcbiIKKyJEaWQgeW91IG1lYW4gb25lIG9mIHRoZXNlPyIKK21zZ3N0clswXSAiXG4iCisiVm91bGllei12b3VzIGRpcmUgY2VsYSA/IgorbXNnc3RyWzFdICJcblZvdWxpZXotdm91cyBkaXJlIHVuIGRlIGNldXgtbMOgID8iCisKKyM6IG1lcmdlLmM6NTYKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aGUgY2FjaGUiCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBsZSBjYWNoZSIKKworIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM2NSBidWlsdGluL2NoZWNrb3V0LmM6NTY2CisjOiBidWlsdGluL2Nsb25lLmM6NjQ1Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBub3V2ZWF1IGZpY2hpZXIgZCdpbmRleCIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTkwCisjLCBjLWZvcm1hdAorbXNnaWQgIihiYWQgY29tbWl0KVxuIgorbXNnc3RyICIobWF1dmFpcyBjb21taXQpXG4iCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjIwNgorIywgYy1mb3JtYXQKK21zZ2lkICJhZGRpbmZvX2NhY2hlIGZhaWxlZCBmb3IgcGF0aCAnJXMnIgorbXNnc3RyICLDqWNoZWMgZGUgYWRkaW5mb19jYWNoZSBwb3VyIGxlIGNoZW1pbiAnJXMnIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyNjgKK21zZ2lkICJlcnJvciBidWlsZGluZyB0cmVlcyIKK21zZ3N0ciAiZXJyZXVyIGRlIGNvbnN0cnVjdGlvbiBkZXMgYXJicmVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBwYXRoICclcyclcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgY2hlbWluICclcycgJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY4MworIywgYy1mb3JtYXQKK21zZ2lkICJSZW1vdmluZyAlcyB0byBtYWtlIHJvb20gZm9yIHN1YmRpcmVjdG9yeVxuIgorbXNnc3RyICJTdXBwcmVzc2lvbiBkZSAlcyBwb3VyIGZhaXJlIGRlIGxhIHBsYWNlIHBvdXIgbGUgc291cy1yw6lwZXJ0b2lyZVxuIgorCisjLiBzb21ldGhpbmcgZWxzZSBleGlzdHMKKyMuIC4uIGJ1dCBub3Qgc29tZSBvdGhlciBlcnJvciAod2hvIHJlYWxseSBjYXJlcyB3aGF0PykKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY5NyBtZXJnZS1yZWN1cnNpdmUuYzo3MTgKK21zZ2lkICI6IHBlcmhhcHMgYSBEL0YgY29uZmxpY3Q/IgorbXNnc3RyICI6IHBldXQtw6p0cmUgdW4gY29uZmxpdCBEL0YgPyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzA4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlZnVzaW5nIHRvIGxvc2UgdW50cmFja2VkIGZpbGUgYXQgJyVzJyIKK21zZ3N0ciAicmVmdXMgZGUgcGVyZHJlIGxlIGZpY2hpZXIgbm9uIHN1aXZpICclcyciCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc0OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVhZCBvYmplY3QgJXMgJyVzJyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlIGwnb2JqZXQgJXMgJyVzJyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzUwCisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2IgZXhwZWN0ZWQgZm9yICVzICclcyciCittc2dzdHIgImJsb2IgYXR0ZW5kdSBwb3VyICVzICclcyciCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3MyBidWlsdGluL2Nsb25lLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBvcGVuICclcyciCittc2dzdHIgIsOpY2hlYyDDoCBsJ291dmVydHVyZSBkZSAnJXMnIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN5bWxpbmsgJyVzJyIKK21zZ3N0ciAiw6ljaGVjIMOgIGxhIGNyw6lhdGlvbiBkdSBsaWVuIHN5bWJvbGlxdWUgJyVzJyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgImRvIG5vdCBrbm93IHdoYXQgdG8gZG8gd2l0aCAlMDZvICVzICclcyciCittc2dzdHIgIm5lIHNhaXQgcGFzIHRyYWl0ZXIgJTA2byAlcyAnJXMnIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjIKK21zZ2lkICJGYWlsZWQgdG8gZXhlY3V0ZSBpbnRlcm5hbCBtZXJnZSIKK21zZ3N0ciAiw4ljaGVjIMOgIGwnZXjDqWN1dGlvbiBkZSBsYSBmdXNpb24gaW50ZXJuZSIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBhZGQgJXMgdG8gZGF0YWJhc2UiCittc2dzdHIgIkltcG9zc2libGUgZCdham91dGVyICVzIMOgIGxhIGJhc2UgZGUgZG9ubsOpZXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjk0MgorbXNnaWQgInVuc3VwcG9ydGVkIG9iamVjdCB0eXBlIGluIHRoZSB0cmVlIgorbXNnc3RyICJ0eXBlIGQnb2JqZXQgbm9uIHN1cHBvcnTDqSBkYW5zIGwnYXJicmUiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjEgbWVyZ2UtcmVjdXJzaXZlLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgorImluIHRyZWUuIgorbXNnc3RyICJDT05GTElUICglcy9zdXBwcmVzc2lvbikgOiAlcyBzdXBwcmltw6kgZGFucyAlcyBldCAlcyBkYW5zICVzLiBWZXJzaW9uICVzIGRlICVzIGxhaXNzw6llIGRhbnMgbCdhcmJyZS4iCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjcgbWVyZ2UtcmVjdXJzaXZlLmM6MTA0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgorImluIHRyZWUgYXQgJXMuIgorbXNnc3RyICJDT05GTElUICglcy9zdXBwcmVzc2lvbikgOiAlcyBzdXBwcmltw6kgZGFucyAlcyBldCAlcyBkYW5zICVzLiBWZXJzaW9uICVzIGRlICVzIGxhaXNzw6llIGRhbnMgbCdhcmJyZSBkYW5zIGxlIGZpY2hpZXIgJXMuIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCittc2dpZCAicmVuYW1lIgorbXNnc3RyICJyZW5vbW1hZ2UiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKK21zZ2lkICJyZW5hbWVkIgorbXNnc3RyICJyZW5vbW3DqSIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBhIGRpcmVjdG9yeSBpbiAlcyBhZGRpbmcgYXMgJXMgaW5zdGVhZCIKK21zZ3N0ciAiJXMgZXN0IHVuIHLDqXBlcnRvaXJlIGRhbnMgJXMgYWpvdXTDqSBwbHV0w7R0IGNvbW1lICVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDT05GTElDVCAocmVuYW1lL3JlbmFtZSk6IFJlbmFtZSBcIiVzXCItPlwiJXNcIiBpbiBicmFuY2ggXCIlc1wiIHJlbmFtZSBcIiVzIgorIlwiLT5cIiVzXCIgaW4gXCIlc1wiJXMiCittc2dzdHIgIkNPTkZMSVQgKHJlbm9tbWFnZS9yZW5vbW1hZ2UpIDogUmVub21tYWdlIGRlIFwiJXNcIi0+XCIlc1wiIGRhbnMgbGEgYnJhbmNoZSBcIiVzXCIgZXQgcmVub21tYWdlIFwiJXNcIi0+XCIlc1wiIGRhbnMgXCIlc1wiJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjQKK21zZ2lkICIgKGxlZnQgdW5yZXNvbHZlZCkiCittc2dzdHIgIiAobGFpc3PDqSBub24gcsOpc29sdSkiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ09ORkxJQ1QgKHJlbmFtZS9yZW5hbWUpOiBSZW5hbWUgJXMtPiVzIGluICVzLiBSZW5hbWUgJXMtPiVzIGluICVzIgorbXNnc3RyICJDT05GTElUIChyZW5vbW1hZ2UvcmVub21tYWdlKSA6IHJlbm9tbWFnZSAnJXMnLT4nJXMnIGRhbnMgJXMuIFJlbm9tbWFnZSAnJXMnLT4nJXMnIGRhbnMgJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVuYW1pbmcgJXMgdG8gJXMgYW5kICVzIHRvICVzIGluc3RlYWQiCittc2dzdHIgIlJlbm9tbWFnZSBkZSAlcyBlbiAlcyBldCBkZSAlcyBlbiAlcyDDoCBsYSBwbGFjZSIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJDT05GTElDVCAocmVuYW1lL2FkZCk6IFJlbmFtZSAlcy0+JXMgaW4gJXMuICVzIGFkZGVkIGluICVzIgorbXNnc3RyICJDT05GTElUIChyZW5vbW1hZ2UvYWpvdXQpIDogUmVub21tYWdlIGRlICVzLT4lcyBkYW5zICVzLiAlcyBham91dMOpIGRhbnMgJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nIG1lcmdlZCAlcyIKK21zZ3N0ciAiQWpvdXQgZGUgJXMgZnVzaW9ubsOpIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDYyIG1lcmdlLXJlY3Vyc2l2ZS5jOjE2NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nIGFzICVzIGluc3RlYWQiCittc2dzdHIgIkFqb3V0IHBsdXTDtHQgY29tbWUgJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbCdvYmpldCAlcyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNgorIywgYy1mb3JtYXQKK21zZ2lkICJvYmplY3QgJXMgaXMgbm90IGEgYmxvYiIKK21zZ3N0ciAibCdvYmpldCAlcyBuJ2VzdCBwYXMgdW4gYmxvYiIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NAorbXNnaWQgIm1vZGlmeSIKK21zZ3N0ciAibW9kaWZpY2F0aW9uIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0Cittc2dpZCAibW9kaWZpZWQiCittc2dzdHIgIm1vZGlmacOpIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTc0Cittc2dpZCAiY29udGVudCIKK21zZ3N0ciAiY29udGVudSIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU4MQorbXNnaWQgImFkZC9hZGQiCittc2dzdHIgImFqb3V0L2Fqb3V0IgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNraXBwZWQgJXMgKG1lcmdlZCBzYW1lIGFzIGV4aXN0aW5nKSIKK21zZ3N0ciAiJXMgaWdub3LDqSAoZnVzaW9uIGlkZW50aXF1ZSDDoCBsJ2V4aXN0YW50KSIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCittc2dzdHIgIkZ1c2lvbiBhdXRvbWF0aXF1ZSBkZSAlcyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMyBnaXQtc3VibW9kdWxlLnNoOjEwMjkKK21zZ2lkICJzdWJtb2R1bGUiCittc2dzdHIgInNvdXMtbW9kdWxlIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNPTkZMSUNUICglcyk6IE1lcmdlIGNvbmZsaWN0IGluICVzIgorbXNnc3RyICJDT05GTElUICglcykgOiBDb25mbGl0IGRlIGZ1c2lvbiBkYW5zICVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlbW92aW5nICVzIgorbXNnc3RyICJTdXBwcmVzc2lvbiBkZSAlcyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc0OQorbXNnaWQgImZpbGUvZGlyZWN0b3J5IgorbXNnc3RyICJmaWNoaWVyL3LDqXBlcnRvaXJlIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzU1Cittc2dpZCAiZGlyZWN0b3J5L2ZpbGUiCittc2dzdHIgInLDqXBlcnRvaXJlL2ZpY2hpZXIiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ09ORkxJQ1QgKCVzKTogVGhlcmUgaXMgYSBkaXJlY3Rvcnkgd2l0aCBuYW1lICVzIGluICVzLiBBZGRpbmcgJXMgYXMgJXMiCittc2dzdHIgIkNPTkZMSVQgKCVzKSA6IElsIHkgYSB1biByw6lwZXJ0b2lyZSBub21tw6kgJXMgZGFucyAlcy4gQWpvdXQgZGUgJXMgY29tbWUgJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nICVzIgorbXNnc3RyICJBam91dCBkZSAlcyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc4NworbXNnaWQgIkZhdGFsIG1lcmdlIGZhaWx1cmUsIHNob3VsZG4ndCBoYXBwZW4uIgorbXNnc3RyICLDiWNoZWMgZmF0YWwgZGUgZnVzaW9uLCBxdWkgbmUgZGV2cmFpdCBqYW1haXMgYXJyaXZlci4iCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MDYKK21zZ2lkICJBbHJlYWR5IHVwLXRvLWRhdGUhIgorbXNnc3RyICJEw6lqw6Agw6Agam91ciAhIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODE1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1lcmdpbmcgb2YgdHJlZXMgJXMgYW5kICVzIGZhaWxlZCIKK21zZ3N0ciAiw6ljaGVjIGRlIGZ1c2lvbiBkZXMgYXJicmVzICVzIGV0ICVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVucHJvY2Vzc2VkIHBhdGg/Pz8gJXMiCittc2dzdHIgIkNoZW1pbiBub24gdHJhaXTDqSA/Pz8gJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTAKK21zZ2lkICJNZXJnaW5nOiIKK21zZ3N0ciAiRnVzaW9uIDoiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZm91bmQgJXUgY29tbW9uIGFuY2VzdG9yOiIKK21zZ2lkX3BsdXJhbCAiZm91bmQgJXUgY29tbW9uIGFuY2VzdG9yczoiCittc2dzdHJbMF0gIiV1IGFuY8OqdHJlIGNvbW11biB0cm91dsOpIDoiCittc2dzdHJbMV0gIiV1IGFuY8OqdHJlcyBjb21tdW5zIHRyb3V2w6lzIDoiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5NDAKK21zZ2lkICJtZXJnZSByZXR1cm5lZCBubyBjb21taXQiCittc2dzdHIgImxhIGZ1c2lvbiBuJ2EgcGFzIHJldG91cm7DqSBkZSBjb21taXQiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHBhcnNlIG9iamVjdCAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYW5hbHlzZXIgbCdvYmpldCAnJXMnIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDA5IGJ1aWx0aW4vbWVyZ2UuYzo2NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5kZXguIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnw6ljcmlyZSBsJ2luZGV4LiIKKworIzogb2JqZWN0LmM6MTk1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBwYXJzZSBvYmplY3Q6ICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnYW5hbHlzZXIgbCdvYmpldCA6ICVzIgorCisjOiBwYXJzZS1vcHRpb25zLmM6NDg5Cittc2dpZCAiLi4uIgorbXNnc3RyICIuLi4iCisKKyM6IHBhcnNlLW9wdGlvbnMuYzo1MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIgorbXNnc3RyICJ1c2FnZSA6ICVzIgorCisjLiBUUkFOU0xBVE9SUzogdGhlIGNvbG9uIGhlcmUgc2hvdWxkIGFsaWduIHdpdGggdGhlCisjLiBvbmUgaW4gInVzYWdlOiAlcyIgdHJhbnNsYXRpb24KKyM6IHBhcnNlLW9wdGlvbnMuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgb3I6ICVzIgorbXNnc3RyICIgICBvdSA6ICVzIgorCisjOiBwYXJzZS1vcHRpb25zLmM6NTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAlcyIKK21zZ3N0ciAiICAgICVzIgorCisjOiBwYXJzZS1vcHRpb25zLmM6NTQ4Cittc2dpZCAiLU5VTSIKK21zZ3N0ciAiLU5VTSIKKworIzogcGF0aHNwZWMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXRoICclcycgaXMgaW4gc3VibW9kdWxlICclLipzJyIKK21zZ3N0ciAiTGUgY2hlbWluICclcycgZXN0IGRhbnMgbGUgc291cy1tb2R1bGUgJyUuKnMnIgorCisjOiBwYXRoc3BlYy5jOjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgYmV5b25kIGEgc3ltYm9saWMgbGluayIKK21zZ3N0ciAiJyVzJyBlc3QgYXUgZGVsw6AgZCd1biBsaWVuIHN5bWJvbGlxdWUiCisKKyM6IHJlbW90ZS5jOjE3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXQuXG4iCittc2dpZF9wbHVyYWwgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0cy5cbiIKK21zZ3N0clswXSAiVm90cmUgYnJhbmNoZSBlc3QgZW4gYXZhbmNlIHN1ciAnJXMnIGRlICVkIGNvbW1pdC5cbiIKK21zZ3N0clsxXSAiVm90cmUgYnJhbmNoZSBlc3QgZW4gYXZhbmNlIHN1ciAnJXMnIGRlICVkIGNvbW1pdHMuXG4iCisKKyM6IHJlbW90ZS5jOjE3ODcKK21zZ2lkICIgICh1c2UgXCJnaXQgcHVzaFwiIHRvIHB1Ymxpc2ggeW91ciBsb2NhbCBjb21taXRzKVxuIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBwdXNoXCIgcG91ciBwdWJsaWVyIHZvcyBjb21taXRzIGxvY2F1eClcbiIKKworIzogcmVtb3RlLmM6MTc5MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3VyIGJyYW5jaCBpcyBiZWhpbmQgJyVzJyBieSAlZCBjb21taXQsIGFuZCBjYW4gYmUgZmFzdC1mb3J3YXJkZWQuXG4iCittc2dpZF9wbHVyYWwgIiIKKyJZb3VyIGJyYW5jaCBpcyBiZWhpbmQgJyVzJyBieSAlZCBjb21taXRzLCBhbmQgY2FuIGJlIGZhc3QtZm9yd2FyZGVkLlxuIgorbXNnc3RyWzBdICJWb3RyZSBicmFuY2hlIGVzdCBlbiByZXRhcmQgc3VyICclcycgZGUgJWQgY29tbWl0LCBldCBwZXV0IMOqdHJlIG1pc2Ugw6Agam91ciBlbiBhdmFuY2UgcmFwaWRlLlxuIgorbXNnc3RyWzFdICJWb3RyZSBicmFuY2hlIGVzdCBlbiByZXRhcmQgc3VyICclcycgZGUgJWQgY29tbWl0cywgZXQgcGV1dCDDqnRyZSBtaXNlIMOgIGpvdXIgZW4gYXZhbmNlIHJhcGlkZS5cbiIKKworIzogcmVtb3RlLmM6MTc5OAorbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gdXBkYXRlIHlvdXIgbG9jYWwgYnJhbmNoKVxuIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBwdWxsXCIgcG91ciBtZXR0cmUgw6Agam91ciB2b3RyZSBicmFuY2hlIGxvY2FsZSlcbiIKKworIzogcmVtb3RlLmM6MTgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKKyJhbmQgaGF2ZSAlZCBhbmQgJWQgZGlmZmVyZW50IGNvbW1pdCBlYWNoLCByZXNwZWN0aXZlbHkuXG4iCittc2dpZF9wbHVyYWwgIiIKKyJZb3VyIGJyYW5jaCBhbmQgJyVzJyBoYXZlIGRpdmVyZ2VkLFxuIgorImFuZCBoYXZlICVkIGFuZCAlZCBkaWZmZXJlbnQgY29tbWl0cyBlYWNoLCByZXNwZWN0aXZlbHkuXG4iCittc2dzdHJbMF0gIlZvdHJlIGJyYW5jaGUgZXQgJyVzJyBvbnQgZGl2ZXJnw6ksXG4iCisiZXQgb250ICVkIGV0ICVkIGNvbW1pdCBkaWZmw6lyZW50IGNoYWN1bmUgcmVzcGVjdGl2ZW1lbnQuXG4iCittc2dzdHJbMV0gIlZvdHJlIGJyYW5jaGUgZXQgJyVzJyBvbnQgZGl2ZXJnw6ksXG4iCisiZXQgb250ICVkIGV0ICVkIGNvbW1pdHMgZGlmZsOpcmVudHMgY2hhY3VuZSByZXNwZWN0aXZlbWVudC5cbiIKKworIzogcmVtb3RlLmM6MTgxMQorbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gbWVyZ2UgdGhlIHJlbW90ZSBicmFuY2ggaW50byB5b3VycylcbiIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcHVsbFwiIHBvdXIgZnVzaW9ubmVyIGxhIGJyYW5jaGUgZGlzdGFudGUgZGFucyBsYSB2w7R0cmUpXG4iCisKKyM6IHNlcXVlbmNlci5jOjIwNiBidWlsdGluL21lcmdlLmM6Nzc2IGJ1aWx0aW4vbWVyZ2UuYzo4ODkgYnVpbHRpbi9tZXJnZS5jOjk5OQorIzogYnVpbHRpbi9tZXJnZS5jOjEwMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ291dnJpciAnJXMnIGVuIMOpY3JpdHVyZSIKKworIzogc2VxdWVuY2VyLmM6MjA4IGJ1aWx0aW4vbWVyZ2UuYzozMzUgYnVpbHRpbi9tZXJnZS5jOjc3OQorIzogYnVpbHRpbi9tZXJnZS5jOjEwMDEgYnVpbHRpbi9tZXJnZS5jOjEwMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICclcyciCittc2dzdHIgIkltcG9zc2libGUgZCfDqWNyaXJlIGRhbnMgJyVzJyIKKworIzogc2VxdWVuY2VyLmM6MjI5Cittc2dpZCAiIgorImFmdGVyIHJlc29sdmluZyB0aGUgY29uZmxpY3RzLCBtYXJrIHRoZSBjb3JyZWN0ZWQgcGF0aHNcbiIKKyJ3aXRoICdnaXQgYWRkIDxwYXRocz4nIG9yICdnaXQgcm0gPHBhdGhzPiciCittc2dzdHIgImFwcsOocyByw6lzb2x1dGlvbiBkZXMgY29uZmxpdHMsIG1hcnF1ZXogbGVzIGNoZW1pbnMgY29ycmlnw6lzXG4iCisiYXZlYyAnZ2l0IGFkZCA8Y2hlbWlucz4nIG91ICdnaXQgcm0gPGNoZW1pbnM+JyIKKworIzogc2VxdWVuY2VyLmM6MjMyCittc2dpZCAiIgorImFmdGVyIHJlc29sdmluZyB0aGUgY29uZmxpY3RzLCBtYXJrIHRoZSBjb3JyZWN0ZWQgcGF0aHNcbiIKKyJ3aXRoICdnaXQgYWRkIDxwYXRocz4nIG9yICdnaXQgcm0gPHBhdGhzPidcbiIKKyJhbmQgY29tbWl0IHRoZSByZXN1bHQgd2l0aCAnZ2l0IGNvbW1pdCciCittc2dzdHIgIiIKKyJhcHLDqHMgcsOpc29sdXRpb24gZGVzIGNvbmZsaXRzLCBtYXJxdWV6IGxlcyBjaGVtaW5zIGNvcnJpZ8Opc1xuIgorImF2ZWMgJ2dpdCBhZGQgPGNoZW1pbnM+JyBvdSAnZ2l0IHJtIDxjaGVtaW5zPidcbiIKKyJwdWlzIHZhbGlkZXogbGUgcsOpc3VsdGF0IGF2ZWMgJ2dpdCBjb21taXQnIgorCisjOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODU5IHNlcXVlbmNlci5jOjk0MgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgd3JpdGUgdG8gJXMiCittc2dzdHIgIkltcG9zc2libGUgZCfDqWNyaXJlIGRhbnMgJXMiCisKKyM6IHNlcXVlbmNlci5jOjI0OAorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciB3cmFwcGluZyB1cCAlcyIKK21zZ3N0ciAiRXJyZXVyIMOgIGwnZW1iYWxsYWdlIGRlICVzIgorCisjOiBzZXF1ZW5jZXIuYzoyNjMKK21zZ2lkICJZb3VyIGxvY2FsIGNoYW5nZXMgd291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgY2hlcnJ5LXBpY2suIgorbXNnc3RyICJWb3MgbW9kaWZpY2F0aW9ucyBsb2NhbGVzIHNlcmFpZW50IMOpY3Jhc8OpZXMgcGFyIGNoZXJyeS1waWNrLiIKKworIzogc2VxdWVuY2VyLmM6MjY1Cittc2dpZCAiWW91ciBsb2NhbCBjaGFuZ2VzIHdvdWxkIGJlIG92ZXJ3cml0dGVuIGJ5IHJldmVydC4iCittc2dzdHIgIlZvcyBtb2RpZmljYXRpb25zIGxvY2FsZXMgc2VyYWllbnQgw6ljcmFzw6llcyBwYXIgcmV2ZXJ0LiIKKworIzogc2VxdWVuY2VyLmM6MjY4Cittc2dpZCAiQ29tbWl0IHlvdXIgY2hhbmdlcyBvciBzdGFzaCB0aGVtIHRvIHByb2NlZWQuIgorbXNnc3RyICJWYWxpZGV6IHZvcyBtb2RpZmljYXRpb25zIG91IHJlbWlzZXotbGVzIHBvdXIgY29udGludWVyLiIKKworIy4gVFJBTlNMQVRPUlM6ICVzIHdpbGwgYmUgInJldmVydCIgb3IgImNoZXJyeS1waWNrIgorIzogc2VxdWVuY2VyLmM6MzE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCittc2dzdHIgIiVzOiBJbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBub3V2ZWF1IGZpY2hpZXIgaW5kZXgiCisKKyM6IHNlcXVlbmNlci5jOjM1MAorbXNnaWQgIkNvdWxkIG5vdCByZXNvbHZlIEhFQUQgY29tbWl0XG4iCittc2dzdHIgIkltcG9zc2libGUgZGUgcsOpc291ZHJlIGxlIGNvbW1pdCBIRUFEXG4iCisKKyM6IHNlcXVlbmNlci5jOjM3MQorbXNnaWQgIlVuYWJsZSB0byB1cGRhdGUgY2FjaGUgdHJlZVxuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIG1ldHRyZSDDoCBqb3VyIGwnYXJicmUgZGUgY2FjaGVcbiIKKworIzogc2VxdWVuY2VyLmM6NDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBjb21taXQgJXNcbiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIGNvbW1pdCAlc1xuIgorCisjOiBzZXF1ZW5jZXIuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHBhcnNlIHBhcmVudCBjb21taXQgJXNcbiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIGNvbW1pdCBwYXJlbnQgJXNcbiIKKworIzogc2VxdWVuY2VyLmM6NDg3Cittc2dpZCAiWW91ciBpbmRleCBmaWxlIGlzIHVubWVyZ2VkLiIKK21zZ3N0ciAiVm90cmUgZmljaGllciBkJ2luZGV4IG4nZXN0IHBhcyBmdXNpb25uw6kuIgorCisjOiBzZXF1ZW5jZXIuYzo1MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29tbWl0ICVzIGlzIGEgbWVyZ2UgYnV0IG5vIC1tIG9wdGlvbiB3YXMgZ2l2ZW4uIgorbXNnc3RyICJMZSBjb21taXQgJXMgZXN0IHVuZSBmdXNpb24gbWFpcyBsJ29wdGlvbiAtbSBuJ2EgcGFzIMOpdMOpIHNww6ljaWZpw6llLiIKKworIzogc2VxdWVuY2VyLmM6NTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIHBhcmVudCAlZCIKK21zZ3N0ciAiTGUgY29tbWl0ICVzIG4nYSBwYXMgbGUgcGFyZW50ICVkIgorCisjOiBzZXF1ZW5jZXIuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWFpbmxpbmUgd2FzIHNwZWNpZmllZCBidXQgY29tbWl0ICVzIGlzIG5vdCBhIG1lcmdlLiIKK21zZ3N0ciAiVW5lIGJyYW5jaGUgcHJpbmNpcGFsZSBhIMOpdMOpIHNww6ljaWZpw6llIG1haXMgbGUgY29tbWl0ICVzIG4nZXN0IHBhcyB1bmUgZnVzaW9uLiIKKworIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyB3aWxsIGJlICJyZXZlcnQiIG9yCisjLiAiY2hlcnJ5LXBpY2siLCB0aGUgc2Vjb25kICVzIGEgU0hBMQorIzogc2VxdWVuY2VyLmM6NTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlcyIKK21zZ3N0ciAiJXMgOiBpbXBvc3NpYmxlIGQnYW5hbHlzZXIgbGUgY29tbWl0IHBhcmVudCAlcyIKKworIzogc2VxdWVuY2VyLmM6NTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgY29tbWl0IG1lc3NhZ2UgZm9yICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnb2J0ZW5pciB1biBtZXNzYWdlIGRlIHZhbGlkYXRpb24gcG91ciAlcyIKKworIzogc2VxdWVuY2VyLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCByZXZlcnQgJXMuLi4gJXMiCittc2dzdHIgImltcG9zc2libGUgZCdhbm51bGVyICVzLi4uICVzIgorCisjOiBzZXF1ZW5jZXIuYzo2MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IGFwcGx5ICVzLi4uICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnYXBwbGlxdWVyICVzLi4uICVzIgorCisjOiBzZXF1ZW5jZXIuYzo2NTQKK21zZ2lkICJlbXB0eSBjb21taXQgc2V0IHBhc3NlZCIKK21zZ3N0ciAibCdlbnNlbWJsZSBkZSBjb21taXRzIHNww6lmaWNpZmnDqSBlc3QgdmlkZSIKKworIzogc2VxdWVuY2VyLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlYWQgdGhlIGluZGV4IgorbXNnc3RyICJnaXQgJXMgOiDDqWNoZWMgw6AgbGEgbGVjdHVyZSBkZSBsJ2luZGV4IgorCisjOiBzZXF1ZW5jZXIuYzo2NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2l0ICVzOiBmYWlsZWQgdG8gcmVmcmVzaCB0aGUgaW5kZXgiCittc2dzdHIgImdpdCAlcyA6IMOpY2hlYyBkdSByYWZmcmHDrmNoaXNzZW1lbnQgZGUgbCdpbmRleCIKKworIzogc2VxdWVuY2VyLmM6NzI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCAlcyBkdXJpbmcgYSAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSAlcyBwZW5kYW50IHVuICVzIgorCisjOiBzZXF1ZW5jZXIuYzo3NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHBhcnNlIGxpbmUgJWQuIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYW5hbHlzZXIgbGEgbGlnbmUgJWQuIgorCisjOiBzZXF1ZW5jZXIuYzo3NTIKK21zZ2lkICJObyBjb21taXRzIHBhcnNlZC4iCittc2dzdHIgIkF1Y3VuIGNvbW1pdCBhbmFseXPDqS4iCisKKyM6IHNlcXVlbmNlci5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ291dnJpciAlcyIKKworIzogc2VxdWVuY2VyLmM6NzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZWFkICVzLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBsaXJlICVzLiIKKworIzogc2VxdWVuY2VyLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNhYmxlIGluc3RydWN0aW9uIHNoZWV0OiAlcyIKK21zZ3N0ciAiRmV1aWxsZSBkJ2luc3RydWN0aW9uIGludXRpbGlzYWJsZSA6ICVzIgorCisjOiBzZXF1ZW5jZXIuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBrZXk6ICVzIgorbXNnc3RyICJDbMOpIGludmFsaWRlOiAlcyIKKworIzogc2VxdWVuY2VyLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWUgZm9yICVzOiAlcyIKK21zZ3N0ciAiVmFsZXVyIGludmFsaWRlIHBvdXIgJXMgOiAlcyIKKworIzogc2VxdWVuY2VyLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIk1hbGZvcm1lZCBvcHRpb25zIHNoZWV0OiAlcyIKK21zZ3N0ciAiRmV1aWxsZSBkJ29wdGlvbnMgbWFsZm9ybcOpZSA6ICVzIgorCisjOiBzZXF1ZW5jZXIuYzo4NDAKK21zZ2lkICJhIGNoZXJyeS1waWNrIG9yIHJldmVydCBpcyBhbHJlYWR5IGluIHByb2dyZXNzIgorbXNnc3RyICJ1biBwaWNvcmFnZSBvdSB1biByZXRvdXIgZXN0IGTDqWrDoCBlbiBjb3VycyIKKworIzogc2VxdWVuY2VyLmM6ODQxCittc2dpZCAidHJ5IFwiZ2l0IGNoZXJyeS1waWNrICgtLWNvbnRpbnVlIHwgLS1xdWl0IHwgLS1hYm9ydClcIiIKK21zZ3N0ciAiZXNzYXlleiBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZXwtLXF1aXR8LS0gYWJvcnQpXCIiCisKKyM6IHNlcXVlbmNlci5jOjg0NQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIHNlcXVlbmNlciBkaXJlY3RvcnkgJXMiCittc2dzdHIgIkltcG9zc2libGUgZGUgY3LDqWVyIGxlIHLDqXBlcnRvaXJlIGRlIHPDqXF1ZW5jZXVyICVzIgorCisjOiBzZXF1ZW5jZXIuYzo4NjEgc2VxdWVuY2VyLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyYXBwaW5nIHVwICVzLiIKK21zZ3N0ciAiRXJyZXVyIGxvcnMgZGUgbCdlbWJhbGxhZ2UgZGUgJXMuIgorCisjOiBzZXF1ZW5jZXIuYzo4ODAgc2VxdWVuY2VyLmM6MTAxNAorbXNnaWQgIm5vIGNoZXJyeS1waWNrIG9yIHJldmVydCBpbiBwcm9ncmVzcyIKK21zZ3N0ciAiYXVjdW4gcGljb3JhZ2Ugb3UgcmV0b3VyIGVuIGNvdXJzIgorCisjOiBzZXF1ZW5jZXIuYzo4ODIKK21zZ2lkICJjYW5ub3QgcmVzb2x2ZSBIRUFEIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHLDqXNvdWRyZSBIRUFEIgorCisjOiBzZXF1ZW5jZXIuYzo4ODQKK21zZ2lkICJjYW5ub3QgYWJvcnQgZnJvbSBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FiYW5kb25uZXIgZGVwdWlzIHVuZSBicmFuY2hlIG5vbiBlbmNvcmUgY3LDqcOpZSIKKworIzogc2VxdWVuY2VyLmM6OTA2IGJ1aWx0aW4vYXBwbHkuYzo0MDYwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ291dnJpciAlcyA6ICVzIgorCisjOiBzZXF1ZW5jZXIuYzo5MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgJXMgOiAlcyIKKworIzogc2VxdWVuY2VyLmM6OTEwCittc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSIKK21zZ3N0ciAiZmluIGRlIGZpY2hpZXIgaW5hdHRlbmR1ZSIKKworIzogc2VxdWVuY2VyLmM6OTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInN0b3JlZCBwcmUtY2hlcnJ5LXBpY2sgSEVBRCBmaWxlICclcycgaXMgY29ycnVwdCIKK21zZ3N0ciAibGUgZmljaGllciBIRUFEIGRlIHByw6lwYXJhdGlvbiBkZSBwaWNvcmFnZSAnJXMnIGVzdCBjb3Jyb21wdSIKKworIzogc2VxdWVuY2VyLmM6OTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmb3JtYXQgJXMuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGZvcm1hdGVyICVzLiIKKworIzogc2VxdWVuY2VyLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgY2hlcnJ5LXBpY2sgYSAlcyIKK21zZ3N0ciAiJXMgOiBpbXBvc3NpYmxlIGRlIHBpY29yZXIgdW4gJXMiCisKKyM6IHNlcXVlbmNlci5jOjEwODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCByZXZpc2lvbiIKK21zZ3N0ciAiJXMgOiBtYXV2YWlzZSByw6l2aXNpb24iCisKKyM6IHNlcXVlbmNlci5jOjExMTkKK21zZ2lkICJDYW4ndCByZXZlcnQgYXMgaW5pdGlhbCBjb21taXQiCittc2dzdHIgIkltcG9zc2libGUgZCdhbm51bGVyIGVuIHRhbnQgcXVlIGNvbW1pdCBpbml0aWFsIgorCisjOiBzZXF1ZW5jZXIuYzoxMTIwCittc2dpZCAiQ2FuJ3QgY2hlcnJ5LXBpY2sgaW50byBlbXB0eSBoZWFkIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHBpY29yZXIgdmVycyB1bmUgSEVBRCB2aWRlIgorCisjOiBzaGExX25hbWUuYzoxMDM2Cittc2dpZCAiSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaCIKK21zZ3N0ciAiSEVBRCBuZSBwb2ludGUgcGFzIHN1ciB1bmUgYnJhbmNoZSIKKworIzogc2hhMV9uYW1lLmM6MTAzOQorIywgYy1mb3JtYXQKK21zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKK21zZ3N0ciAiQnJhbmNoZSBpbmNvbm51ZSA6ICclcyciCisKKyM6IHNoYTFfbmFtZS5jOjEwNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXBzdHJlYW0gY29uZmlndXJlZCBmb3IgYnJhbmNoICclcyciCittc2dzdHIgIkF1Y3VuZSBicmFuY2hlIGFtb250IGNvbmZpZ3Vyw6llIHBvdXIgbGEgYnJhbmNoZSAnJXMnIgorCisjOiBzaGExX25hbWUuYzoxMDQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVwc3RyZWFtIGJyYW5jaCAnJXMnIG5vdCBzdG9yZWQgYXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIgorbXNnc3RyICJMYSBicmFuY2hlIGFtb250ICclcycgbidlc3QgcGFzIHN0b2Nrw6llIGNvbW1lIGJyYW5jaGUgZGUgc3VpdmkiCisKKyM6IHdyYXBwZXIuYzo0MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIGFjY2VzcyAnJXMnOiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FjY8OpZGVyIMOgICclcycgOiAlcyIKKworIzogd3JhcHBlci5jOjQyMworIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyciCittc2dzdHIgImltcG9zc2libGUgZCdhY2PDqWRlciDDoCAnJXMnIgorCisjOiB3cmFwcGVyLmM6NDM0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBsb29rIHVwIGN1cnJlbnQgdXNlciBpbiB0aGUgcGFzc3dkIGZpbGU6ICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHJlY2hlcmNoZXIgbCd1dGlsaXNhdGV1ciBhY3R1ZWwgZGFucyBsZSBmaWNoaWVyIGRlIG1vdHMgZGUgcGFzc2UgOiAlcyIKKworIzogd3JhcHBlci5jOjQzNQorbXNnaWQgIm5vIHN1Y2ggdXNlciIKK21zZ3N0ciAidXRpbGlzYXRldXIgaW5jb25udSIKKworIzogd3Qtc3RhdHVzLmM6MTQwCittc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgorbXNnc3RyICJDaGVtaW5zIG5vbiBmdXNpb25uw6lzIDoiCisKKyM6IHd0LXN0YXR1cy5jOjE2NyB3dC1zdGF0dXMuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAodXNlIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCByZXNldCAlcyA8ZmljaGllcj4uLi5cIiBwb3VyIGTDqXNpbmRleGVyKSIKKworIzogd3Qtc3RhdHVzLmM6MTY5IHd0LXN0YXR1cy5jOjE5NgorbXNnaWQgIiAgKHVzZSBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcm0gLS1jYWNoZWQgPGZpY2hpZXI+Li4uXCIgcG91ciBkw6lzaW5kZXhlcikiCisKKyM6IHd0LXN0YXR1cy5jOjE3MworbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQgPGZpbGU+Li4uXCIgdG8gbWFyayByZXNvbHV0aW9uKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgYWRkIDxmaWNoaWVyPi4uLlwiIHBvdXIgbWFycXVlciBjb21tZSByw6lzb2x1KSIKKworIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjE3OQorbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgYWRkL3JtIDxmaWNoaWVyPi4uLlwiIHNpIG7DqWNlc3NhaXJlIHBvdXIgbWFycXVlciBjb21tZSByw6lzb2x1KSIKKworIzogd3Qtc3RhdHVzLmM6MTc3Cittc2dpZCAiICAodXNlIFwiZ2l0IHJtIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IHJtIDxmaWNoaWVyPi4uLlwiIHBvdXIgbWFycXVlciBjb21tZSByw6lzb2x1KSIKKworIzogd3Qtc3RhdHVzLmM6MTg4Cittc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgorbXNnc3RyICJNb2RpZmljYXRpb25zIHF1aSBzZXJvbnQgdmFsaWTDqWVzIDoiCisKKyM6IHd0LXN0YXR1cy5jOjIwNgorbXNnaWQgIkNoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OiIKK21zZ3N0ciAiTW9kaWZpY2F0aW9ucyBxdWkgbmUgc2Vyb250IHBhcyB2YWxpZMOpZXMgOiIKKworIzogd3Qtc3RhdHVzLmM6MjEwCittc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IGFkZCA8ZmljaGllcj4uLi5cIiBwb3VyIG1ldHRyZSDDoCBqb3VyIGNlIHF1aSBzZXJhIHZhbGlkw6kpIgorCisjOiB3dC1zdGF0dXMuYzoyMTIKK21zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgYWRkL3JtIDxmaWNoaWVyPi4uLlwiIHBvdXIgbWV0dHJlIMOgIGpvdXIgY2UgcXVpIHNlcmEgdmFsaWTDqSkiCisKKyM6IHd0LXN0YXR1cy5jOjIxMworbXNnaWQgIiIKKyIgICh1c2UgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uXCIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgY2hlY2tvdXQgLS0gPGZpY2hpZXI+Li4uXCIgcG91ciBhbm51bGVyIGxlcyBtb2RpZmljYXRpb25zIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCkiCisKKyM6IHd0LXN0YXR1cy5jOjIxNQorbXNnaWQgIiAgKGNvbW1pdCBvciBkaXNjYXJkIHRoZSB1bnRyYWNrZWQgb3IgbW9kaWZpZWQgY29udGVudCBpbiBzdWJtb2R1bGVzKSIKK21zZ3N0ciAiICAodmFsaWRlciBvdSBhbm51bGVyIGxlIGNvbnRlbnUgbm9uIHN1aXZpIG91IG1vZGlmacOpIGRhbnMgbGVzIHNvdXMtbW9kdWxlcykiCisKKyM6IHd0LXN0YXR1cy5jOjIyNworIywgYy1mb3JtYXQKK21zZ2lkICIgICh1c2UgXCJnaXQgJXMgPGZpbGU+Li4uXCIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgJXMgPGZpY2hpZXI+Li4uXCIgcG91ciBpbmNsdXJlIGRhbnMgY2UgcXVpIHNlcmEgdmFsaWTDqSkiCisKKyM6IHd0LXN0YXR1cy5jOjI0NAorbXNnaWQgImJ1ZyIKK21zZ3N0ciAiYm9ndWUiCisKKyM6IHd0LXN0YXR1cy5jOjI0OQorbXNnaWQgImJvdGggZGVsZXRlZDoiCittc2dzdHIgInN1cHByaW3DqSBkZXMgZGV1eCBjw7R0w6lzIDoiCisKKyM6IHd0LXN0YXR1cy5jOjI1MAorbXNnaWQgImFkZGVkIGJ5IHVzOiIKK21zZ3N0ciAiYWpvdXTDqSBwYXIgbm91cyA6IgorCisjOiB3dC1zdGF0dXMuYzoyNTEKK21zZ2lkICJkZWxldGVkIGJ5IHRoZW06IgorbXNnc3RyICJzdXBwcmltw6kgcGFyIGV1eCA6IgorCisjOiB3dC1zdGF0dXMuYzoyNTIKK21zZ2lkICJhZGRlZCBieSB0aGVtOiIKK21zZ3N0ciAiYWpvdXTDqSBwYXIgZXV4IDoiCisKKyM6IHd0LXN0YXR1cy5jOjI1MworbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgorbXNnc3RyICJzdXBwcmltw6kgcGFyIG5vdXMgOiIKKworIzogd3Qtc3RhdHVzLmM6MjU0Cittc2dpZCAiYm90aCBhZGRlZDoiCittc2dzdHIgImFqb3V0w6kgZGUgZGV1eCBjw7R0w6lzIDoiCisKKyM6IHd0LXN0YXR1cy5jOjI1NQorbXNnaWQgImJvdGggbW9kaWZpZWQ6IgorbXNnc3RyICJtb2RpZmnDqSBkZXMgZGV1eCBjw7R0w6lzIDoiCisKKyM6IHd0LXN0YXR1cy5jOjI4NQorbXNnaWQgIm5ldyBjb21taXRzLCAiCittc2dzdHIgIm5vdXZlYXV4IGNvbW1pdHMsICIKKworIzogd3Qtc3RhdHVzLmM6Mjg3Cittc2dpZCAibW9kaWZpZWQgY29udGVudCwgIgorbXNnc3RyICJjb250ZW51IG1vZGlmacOpLCAiCisKKyM6IHd0LXN0YXR1cy5jOjI4OQorbXNnaWQgInVudHJhY2tlZCBjb250ZW50LCAiCittc2dzdHIgImNvbnRlbnUgbm9uIHN1aXZpLCAiCisKKyM6IHd0LXN0YXR1cy5jOjMwNgorIywgYy1mb3JtYXQKK21zZ2lkICJuZXcgZmlsZTogICAlcyIKK21zZ3N0ciAibm91dmVhdSA6ICAgJXMiCisKKyM6IHd0LXN0YXR1cy5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKK21zZ3N0ciAiY29wacOpIDogICAgICVzIC0+ICVzIgorCisjOiB3dC1zdGF0dXMuYzozMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVsZXRlZDogICAgJXMiCittc2dzdHIgInN1cHByaW3DqSA6ICAlcyIKKworIzogd3Qtc3RhdHVzLmM6MzE1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGlmaWVkOiAgICVzIgorbXNnc3RyICJtb2RpZmnDqSA6ICAgJXMiCisKKyM6IHd0LXN0YXR1cy5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5hbWVkOiAgICAlcyAtPiAlcyIKK21zZ3N0ciAicmVub21tw6kgOiAgICVzIC0+ICVzIgorCisjOiB3dC1zdGF0dXMuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZWNoYW5nZTogJXMiCittc2dzdHIgIm52IHR5cGUgOiAgICVzIgorCisjOiB3dC1zdGF0dXMuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93bjogICAgJXMiCittc2dzdHIgImluY29ubnUgOiAgICVzIgorCisjOiB3dC1zdGF0dXMuYzozMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5tZXJnZWQ6ICAgJXMiCittc2dzdHIgIm5vbiBmdXMuIDogICVzIgorCisjOiB3dC1zdGF0dXMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnVnOiB1bmhhbmRsZWQgZGlmZiBzdGF0dXMgJWMiCittc2dzdHIgImJvZ3VlIDogw6l0YXQgZGUgZGlmZiBub24gZ8OpcsOpICVjIgorCisjOiB3dC1zdGF0dXMuYzo4MDMKK21zZ2lkICJZb3UgaGF2ZSB1bm1lcmdlZCBwYXRocy4iCittc2dzdHIgIlZvdXMgYXZleiBkZXMgY2hlbWlucyBub24gZnVzaW9ubsOpcy4iCisKKyM6IHd0LXN0YXR1cy5jOjgwNiB3dC1zdGF0dXMuYzo5NTgKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY29tbWl0XCIpIgorbXNnc3RyICIgIChyw6lnbGV6IGxlcyBjb25mbGl0cyBldCBsYW5jZXogXCJnaXQgY29tbWl0XCIpIgorCisjOiB3dC1zdGF0dXMuYzo4MDkKK21zZ2lkICJBbGwgY29uZmxpY3RzIGZpeGVkIGJ1dCB5b3UgYXJlIHN0aWxsIG1lcmdpbmcuIgorbXNnc3RyICJUb3VzIGxlcyBjb25mbGl0cyBzb250IHLDqWdsw6lzIG1haXMgbGEgZnVzaW9uIG4nZXN0IHBhcyB0ZXJtaW7DqWUuIgorCisjOiB3dC1zdGF0dXMuYzo4MTIKK21zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0XCIgdG8gY29uY2x1ZGUgbWVyZ2UpIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBjb21taXRcIiBwb3VyIHRlcm1pbmVyIGxhIGZ1c2lvbikiCisKKyM6IHd0LXN0YXR1cy5jOjgyMgorbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBhbSBzZXNzaW9uLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBhdSBtaWxpZXUgZCd1bmUgc2Vzc2lvbiBhbS4iCisKKyM6IHd0LXN0YXR1cy5jOjgyNQorbXNnaWQgIlRoZSBjdXJyZW50IHBhdGNoIGlzIGVtcHR5LiIKK21zZ3N0ciAiTGUgcGF0Y2ggYWN0dWVsIGVzdCB2aWRlLiIKKworIzogd3Qtc3RhdHVzLmM6ODI5Cittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKK21zZ3N0ciAiICAocsOpZ2xleiBsZXMgY29uZmxpdHMgcHVpcyBsYW5jZXogXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKKworIzogd3Qtc3RhdHVzLmM6ODMxCittc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tc2tpcFwiIHRvIHNraXAgdGhpcyBwYXRjaCkiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IGFtIC0tc2tpcFwiIHBvdXIgc2F1dGVyIGNlIHBhdGNoKSIKKworIzogd3Qtc3RhdHVzLmM6ODMzCittc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tYWJvcnRcIiB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2gpIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBhbSAtLWFib3J0XCIgcG91ciByZXN0YXVyZXIgbGEgYnJhbmNoZSBkJ29yaWdpbmUpIgorCisjOiB3dC1zdGF0dXMuYzo4OTMgd3Qtc3RhdHVzLmM6OTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgorbXNnc3RyICJWb3VzIMOqdGVzIGVuIHRyYWluIGRlIHJlYmFzZXIgbGEgYnJhbmNoZSAnJXMnIHN1ciAnJXMnLiIKKworIzogd3Qtc3RhdHVzLmM6ODk4IHd0LXN0YXR1cy5jOjkxNQorbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBlbiB0cmFpbiBkZSByZWJhc2VyLiIKKworIzogd3Qtc3RhdHVzLmM6OTAxCittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCittc2dzdHIgIiAgKHLDqXNvbHZleiBsZXMgY29uZmxpdHMgcHVpcyBsYW5jZXogXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCisKKyM6IHd0LXN0YXR1cy5jOjkwMworbXNnaWQgIiAgKHVzZSBcImdpdCByZWJhc2UgLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcmViYXNlIC0tc2tpcFwiIHBvdXIgc2F1dGVyIGNlIHBhdGNoKSIKKworIzogd3Qtc3RhdHVzLmM6OTA1Cittc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWFib3J0XCIgdG8gY2hlY2sgb3V0IHRoZSBvcmlnaW5hbCBicmFuY2gpIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCByZWJhc2UgLS1hYm9ydFwiIHBvdXIgZXh0cmFpcmUgbGEgYnJhbmNoZSBkJ29yaWdpbmUpIgorCisjOiB3dC1zdGF0dXMuYzo5MTgKK21zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCittc2dzdHIgIiAgKHRvdXMgbGVzIGNvbmZsaXRzIHNvbnQgcsOpc29sdXMgOiBsYW5jZXogXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCisKKyM6IHd0LXN0YXR1cy5jOjkyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgorbXNnc3RyICJWb3VzIMOqdGVzIGFjdHVlbGxlbWVudCBlbiB0cmFpbiBkZSBmcmFjdGlvbm5lciB1biBjb21taXQgcGVuZGFudCB1biByZWJhc2FnZSBkZSBsYSBicmFuY2hlICclcycgc3VyICclcycuIgorCisjOiB3dC1zdGF0dXMuYzo5MjcKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBhY3R1ZWxsZW1lbnQgZW4gdHJhaW4gZGUgZnJhY3Rpb25uZXIgdW4gY29tbWl0IHBlbmRhbnQgdW4gcmViYXNhZ2UuIgorCisjOiB3dC1zdGF0dXMuYzo5MzAKK21zZ2lkICIgIChPbmNlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICAoVW5lIGZvaXMgbGEgY29waWUgZGUgdHJhdmFpbCBuZXR0b3nDqWUsIGxhbmNleiBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKKworIzogd3Qtc3RhdHVzLmM6OTM0CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCittc2dzdHIgIlZvdXMgw6p0ZXMgYWN0dWVsbGVtZW50IGVuIHRyYWluIGQnw6lkaXRlciB1biBjb21taXQgcGVuZGFudCB1biByZWJhc2FnZSBkZSBsYSBicmFuY2hlICclcycgc3VyICclcycuIgorCisjOiB3dC1zdGF0dXMuYzo5MzkKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IGR1cmluZyBhIHJlYmFzZS4iCittc2dzdHIgIlZvdXMgw6p0ZXMgYWN0dWVsbGVtZW50IGVuIHRyYWluIGQnw6lkaXRlciB1biBjb21taXQgcGVuZGFudCB1biByZWJhc2FnZS4iCisKKyM6IHd0LXN0YXR1cy5jOjk0MgorbXNnaWQgIiAgKHVzZSBcImdpdCBjb21taXQgLS1hbWVuZFwiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IGNvbW1pdCAtLWFtZW5kXCIgcG91ciBjb3JyaWdlciBsZSBjb21taXQgYWN0dWVsKSIKKworIzogd3Qtc3RhdHVzLmM6OTQ0Cittc2dpZCAiIgorIiAgKHVzZSBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiIHF1YW5kIHZvdXMgw6p0ZXMgc2F0aXNmYWl0IGRlIHZvcyBtb2RpZmljYXRpb25zKSIKKworIzogd3Qtc3RhdHVzLmM6OTU0Cittc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuIgorbXNnc3RyICJWb3VzIMOqdGVzIGFjdHVlbGxlbWVudCBlbiB0cmFpbiBkZSBwaWNvcmVyLiIKKworIzogd3Qtc3RhdHVzLmM6OTYxCittc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNvbW1pdFwiKSIKK21zZ3N0ciAiICAodG91cyBsZXMgY29uZmxpdHMgc29udCByw6lzb2x1cyA6IGxhbmNleiBcImdpdCBjb21taXRcIikiCisKKyM6IHd0LXN0YXR1cy5jOjk3MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZXZlcnRpbmcgY29tbWl0ICVzLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBhY3R1ZWxsZW1lbnQgZW4gdHJhaW4gZGUgcsOpdGFibGlyIGxlIGNvbW1pdCAlcy4iCisKKyM6IHd0LXN0YXR1cy5jOjk3NQorbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICAocsOpc29sdmV6IGxlcyBjb25mbGl0cyBldCBsYW5jZXogXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCisKKyM6IHd0LXN0YXR1cy5jOjk3OAorbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICAodG91cyBsZXMgY29uZmxpdHMgc29udCByw6lzb2x1cyA6IGxhbmNleiBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKKworIzogd3Qtc3RhdHVzLmM6OTgwCittc2dpZCAiICAodXNlIFwiZ2l0IHJldmVydCAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSByZXZlcnQgb3BlcmF0aW9uKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcmV2ZXJ0IC0tYWJvcnRcIiBwb3VyIGFubnVsZXIgbGUgcsOpdGFibGlzc2VtZW50KSIKKworIzogd3Qtc3RhdHVzLmM6OTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZywgc3RhcnRlZCBmcm9tIGJyYW5jaCAnJXMnLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBlbiBjb3VycyBkZSBiaXNzZWN0aW9uLCBkZXB1aXMgbGEgYnJhbmNoZSAnJXMnLiIKKworIzogd3Qtc3RhdHVzLmM6OTk1Cittc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBlbiBjb3VycyBkZSBiaXNzZWN0aW9uLiIKKworIzogd3Qtc3RhdHVzLmM6OTk4Cittc2dpZCAiICAodXNlIFwiZ2l0IGJpc2VjdCByZXNldFwiIHRvIGdldCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBicmFuY2gpIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBiaXNlY3QgcmVzZXRcIiBwb3VyIHJldmVuaXIgw6AgbGEgYnJhbmNoZSBkJ29yaWdpbmUpIgorCisjOiB3dC1zdGF0dXMuYzoxMTczCittc2dpZCAiT24gYnJhbmNoICIKK21zZ3N0ciAiU3VyIGxhIGJyYW5jaGUgIgorCisjOiB3dC1zdGF0dXMuYzoxMTg0Cittc2dpZCAiSEVBRCBkZXRhY2hlZCBhdCAiCittc2dzdHIgIkhFQUQgZMOpdGFjaMOpZSBzdXIgIgorCisjOiB3dC1zdGF0dXMuYzoxMTg2Cittc2dpZCAiSEVBRCBkZXRhY2hlZCBmcm9tICIKK21zZ3N0ciAiSEVBRCBkw6l0YWNow6llIGRlcHVpcyAiCisKKyM6IHd0LXN0YXR1cy5jOjExODkKK21zZ2lkICJOb3QgY3VycmVudGx5IG9uIGFueSBicmFuY2guIgorbXNnc3RyICJBY3R1ZWxsZW1lbnQgc3VyIGF1Y3VuIGJyYW5jaGUuIgorCisjOiB3dC1zdGF0dXMuYzoxMjA2Cittc2dpZCAiSW5pdGlhbCBjb21taXQiCittc2dzdHIgIlZhbGlkYXRpb24gaW5pdGlhbGUiCisKKyM6IHd0LXN0YXR1cy5jOjEyMjAKK21zZ2lkICJVbnRyYWNrZWQgZmlsZXMiCittc2dzdHIgIkZpY2hpZXJzIG5vbiBzdWl2aXMiCisKKyM6IHd0LXN0YXR1cy5jOjEyMjIKK21zZ2lkICJJZ25vcmVkIGZpbGVzIgorbXNnc3RyICJGaWNoaWVycyBpZ25vcsOpcyIKKworIzogd3Qtc3RhdHVzLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gJ3N0YXR1cyAtdW5vJ1xuIgorIm1heSBzcGVlZCBpdCB1cCwgYnV0IHlvdSBoYXZlIHRvIGJlIGNhcmVmdWwgbm90IHRvIGZvcmdldCB0byBhZGRcbiIKKyJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgorbXNnc3RyICJMJ8OpbnVtw6lyYXRpb24gZGVzIGZpY2hpZXJzIG5vbiBzdWl2aXMgYSBkdXLDqSAlLjJmIHNlY29uZGVzLiAnc3RhdHVzIC11bm8nXG4iCisicGV1dCBsJ2FjY8OpbGVyZXIsIG1haXMgdm91cyBkZXZleiBhbG9ycyBmYWlyZSBhdHRlbnRpb24gw6AgbmUgcGFzXG4iCisib3VibGllciBkJ2Fqb3V0ZXIgbGVzIG5vdXZlYXV4IGZpY2hpZXJzIHBhciB2b3VzLW3Dqm1lICh2b2lyICdnaXQgaGVscCBzdGF0dXMnKS4iCisKKyM6IHd0LXN0YXR1cy5jOjEyMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQlcyIKK21zZ3N0ciAiRmljaGllcnMgbm9uIHN1aXZpcyBub24gbGlzdMOpcyVzIgorCisjOiB3dC1zdGF0dXMuYzoxMjM0Cittc2dpZCAiICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKSIKK21zZ3N0ciAiICh1dGlsaXNleiAtdSBwb3VyIGFmZmljaGVyIGxlcyBmaWNoaWVycyBub24gc3VpdmlzKSIKKworIzogd3Qtc3RhdHVzLmM6MTI0MAorbXNnaWQgIk5vIGNoYW5nZXMiCittc2dzdHIgIkF1Y3VuZSBtb2RpZmljYXRpb24iCisKKyM6IHd0LXN0YXR1cy5jOjEyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSBcImdpdCBhZGRcIiBhbmQvb3IgXCJnaXQgY29tbWl0IC1hXCIpXG4iCittc2dzdHIgImF1Y3VuZSBtb2RpZmljYXRpb24gbidhIMOpdMOpIGFqb3V0w6llIMOgIGxhIHZhbGlkYXRpb24gKHV0aWxpc2V6IFwiZ2l0IGFkZFwiIG91IFwiZ2l0IGNvbW1pdCAtYVwiKVxuIgorCisjOiB3dC1zdGF0dXMuYzoxMjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0XG4iCittc2dzdHIgImF1Y3VuZSBtb2RpZmljYXRpb24gYWpvdXTDqWUgw6AgbGEgdmFsaWRhdGlvblxuIgorCisjOiB3dC1zdGF0dXMuYzoxMjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzIHByZXNlbnQgKHVzZSBcImdpdCBhZGRcIiB0byAiCisidHJhY2spXG4iCittc2dzdHIgImF1Y3VuZSBtb2RpZmljYXRpb24gYWpvdXTDqWUgw6AgbGEgdmFsaWRhdGlvbiBtYWlzIGRlcyBmaWNoaWVycyBub24gc3VpdmlzIHNvbnQgcHLDqXNlbnRzICh1dGlsaXNleiBcImdpdCBhZGRcIiBwb3VyIGxlcyBzdWl2cmUpXG4iCisKKyM6IHd0LXN0YXR1cy5jOjEyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50XG4iCittc2dzdHIgImF1Y3VuZSBtb2RpZmljYXRpb24gYWpvdXTDqWUgw6AgbGEgdmFsaWRhdGlvbiBtYWlzIGRlcyBmaWNoaWVycyBub24gc3VpdmlzIHNvbnQgcHLDqXNlbnRzXG4iCisKKyM6IHd0LXN0YXR1cy5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90aGluZyB0byBjb21taXQgKGNyZWF0ZS9jb3B5IGZpbGVzIGFuZCB1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iCittc2dzdHIgInJpZW4gw6AgdmFsaWRlciAoY3LDqWV6L2NvcGlleiBkZXMgZmljaGllcnMgZXQgdXRpbGlzZXogXCJnaXQgYWRkXCIgcG91ciBsZXMgc3VpdnJlKVxuIgorCisjOiB3dC1zdGF0dXMuYzoxMjYwIHd0LXN0YXR1cy5jOjEyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90aGluZyB0byBjb21taXRcbiIKK21zZ3N0ciAicmllbiDDoCB2YWxpZGVyXG4iCisKKyM6IHd0LXN0YXR1cy5jOjEyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcylcbiIKK21zZ3N0ciAicmllbiDDoCB2YWxpZGVyICh1dGlsaXNleiAtdSBwb3VyIGFmZmljaGVyIGxlcyBmaWNoaWVycyBub24gc3VpdmlzKVxuIgorCisjOiB3dC1zdGF0dXMuYzoxMjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIGRpcmVjdG9yeSBjbGVhblxuIgorbXNnc3RyICJyaWVuIMOgIHZhbGlkZXIsIGxhIGNvcGllIGRlIHRyYXZhaWwgZXN0IHByb3ByZVxuIgorCisjOiB3dC1zdGF0dXMuYzoxMzc1Cittc2dpZCAiSEVBRCAobm8gYnJhbmNoKSIKK21zZ3N0ciAiSEVBRCAoYXVjdW5lIGJyYW5jaGUpIgorCisjOiB3dC1zdGF0dXMuYzoxMzgxCittc2dpZCAiSW5pdGlhbCBjb21taXQgb24gIgorbXNnc3RyICJWYWxpZGF0aW9uIGluaXRpYWxlIHN1ciAiCisKKyM6IHd0LXN0YXR1cy5jOjEzOTYKK21zZ2lkICJiZWhpbmQgIgorbXNnc3RyICJkZXJyacOocmUgIgorCisjOiB3dC1zdGF0dXMuYzoxMzk5IHd0LXN0YXR1cy5jOjE0MDIKK21zZ2lkICJhaGVhZCAiCittc2dzdHIgImRldmFudCAiCisKKyM6IHd0LXN0YXR1cy5jOjE0MDQKK21zZ2lkICIsIGJlaGluZCAiCittc2dzdHIgIiwgZGVycmnDqHJlICIKKworIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHVubGluayAnJXMnIgorbXNnc3RyICJlY2hlYyBsb3JzIGRlIGwndW5saW5rIGRlICclcyciCisKKyM6IGJ1aWx0aW4vYWRkLmM6MjAKK21zZ2lkICJnaXQgYWRkIFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCittc2dzdHIgImdpdCBhZGQgW29wdGlvbnNdIFstLV0gPGNoZW1pbj4uLi4iCisKKyMuCisjLiAqIFRvIGJlIGNvbnNpc3RlbnQgd2l0aCAiZ2l0IGFkZCAtcCIgYW5kIG1vc3QgR2l0CisjLiAqIGNvbW1hbmRzLCB3ZSBzaG91bGQgZGVmYXVsdCB0byBiZWluZyB0cmVlLXdpZGUsIGJ1dAorIy4gKiB0aGlzIGlzIG5vdCB0aGUgb3JpZ2luYWwgYmVoYXZpb3IgYW5kIGNhbid0IGJlCisjLiAqIGNoYW5nZWQgdW50aWwgdXNlcnMgdHJhaW5lZCB0aGVtc2VsdmVzIG5vdCB0byB0eXBlCisjLiAqICJnaXQgYWRkIC11IiBvciAiZ2l0IGFkZCAtQSIuIEZvciBub3csIHdlIHdhcm4gYW5kCisjLiAqIGtlZXAgdGhlIG9sZCBiZWhhdmlvci4gTGF0ZXIsIHRoZSBiZWhhdmlvciBjYW4gYmUgY2hhbmdlZAorIy4gKiB0byB0cmVlLXdpZGUsIGtlZXBpbmcgdGhlIHdhcm5pbmcgZm9yIGEgd2hpbGUsIGFuZAorIy4gKiBldmVudHVhbGx5IHdlIGNhbiBkcm9wIHRoZSB3YXJuaW5nLgorIy4KKyM6IGJ1aWx0aW4vYWRkLmM6NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBiZWhhdmlvciBvZiAnZ2l0IGFkZCAlcyAob3IgJXMpJyB3aXRoIG5vIHBhdGggYXJndW1lbnQgZnJvbSBhXG4iCisic3ViZGlyZWN0b3J5IG9mIHRoZSB0cmVlIHdpbGwgY2hhbmdlIGluIEdpdCAyLjAgYW5kIHNob3VsZCBub3QgYmUgdXNlZCAiCisiYW55bW9yZS5cbiIKKyJUbyBhZGQgY29udGVudCBmb3IgdGhlIHdob2xlIHRyZWUsIHJ1bjpcbiIKKyJcbiIKKyIgIGdpdCBhZGQgJXMgOi9cbiIKKyIgIChvciBnaXQgYWRkICVzIDovKVxuIgorIlxuIgorIlRvIHJlc3RyaWN0IHRoZSBjb21tYW5kIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgcnVuOlxuIgorIlxuIgorIiAgZ2l0IGFkZCAlcyAuXG4iCisiICAob3IgZ2l0IGFkZCAlcyAuKVxuIgorIlxuIgorIldpdGggdGhlIGN1cnJlbnQgR2l0IHZlcnNpb24sIHRoZSBjb21tYW5kIGlzIHJlc3RyaWN0ZWQgdG8gdGhlIGN1cnJlbnQgIgorImRpcmVjdG9yeS5cbiIKK21zZ3N0ciAiIgorIkxlIGNvbXBvcnRlbWVudCBkZSAnZ2l0IGFkZCAlcyAob3UgJXMpJyBzYW5zIGFyZ3VtZW50IGRlIGNoZW1pbiBkZXB1aXMgdW5cbiIKKyJzb3VzLXLDqXBlcnRvaXJlIGR1IHByb2pldCB2YSBjaGFuZ2VyIGRhbnMgR2l0IDIuMCBldCBuZSBkb2l0IHBsdXMgw6p0cmUgdXRpbGlzw6kuXG4iCisiUG91ciBham91dGVyIGxlIGNvbnRlbnUgZGUgdG91dGUgbCdhcmJvcmVzY2VuY2UsIGxhbmNleiA6XG4iCisiXG4iCisiICBnaXQgYWRkICVzIDovXG4iCisiICAob3UgZ2l0IGFkZCAlcyA6LylcbiIKKyJcbiIKKyJQb3VyIHJlc3RyZWluZHJlIGxhIGNvbW1hbmRlIGF1IHLDqXBlcnRvaXJlIGNvdXJhbnQsIGxhbmNleiA6XG4iCisiXG4iCisiICBnaXQgYWRkICVzIC5cbiIKKyIgIChvdSBnaXQgYWRkICVzIC4pXG4iCisiXG4iCisiQXZlYyBsYSB2ZXJzaW9uIGFjdHVlbGxlIGRlIEdpdCwgbGEgY29tbWFuZGUgZXN0IHJlc3RyZWludGUgYXUgcsOpcGVydG9pcmUgY291cmFudC5cbiIKKworIzogYnVpbHRpbi9hZGQuYzoxMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSByYW4gJ2dpdCBhZGQnIHdpdGggbmVpdGhlciAnLUEgKC0tYWxsKScgb3IgJy0taWdub3JlLXJlbW92YWwnLFxuIgorIndob3NlIGJlaGF2aW91ciB3aWxsIGNoYW5nZSBpbiBHaXQgMi4wIHdpdGggcmVzcGVjdCB0byBwYXRocyB5b3UgcmVtb3ZlZC5cbiIKKyJQYXRocyBsaWtlICclcycgdGhhdCBhcmVcbiIKKyJyZW1vdmVkIGZyb20geW91ciB3b3JraW5nIHRyZWUgYXJlIGlnbm9yZWQgd2l0aCB0aGlzIHZlcnNpb24gb2YgR2l0LlxuIgorIlxuIgorIiogJ2dpdCBhZGQgLS1pZ25vcmUtcmVtb3ZhbCA8cGF0aHNwZWM+Jywgd2hpY2ggaXMgdGhlIGN1cnJlbnQgZGVmYXVsdCxcbiIKKyIgIGlnbm9yZXMgcGF0aHMgeW91IHJlbW92ZWQgZnJvbSB5b3VyIHdvcmtpbmcgdHJlZS5cbiIKKyJcbiIKKyIqICdnaXQgYWRkIC0tYWxsIDxwYXRoc3BlYz4nIHdpbGwgbGV0IHlvdSBhbHNvIHJlY29yZCB0aGUgcmVtb3ZhbHMuXG4iCisiXG4iCisiUnVuICdnaXQgc3RhdHVzJyB0byBjaGVjayB0aGUgcGF0aHMgeW91IHJlbW92ZWQgZnJvbSB5b3VyIHdvcmtpbmcgdHJlZS5cbiIKK21zZ3N0ciAiIgorIlZvdXMgYXZleiBsYW5jw6kgJ2dpdCBhZGQnIHNhbnMgJy1BICgtLWFsbCknIG5pICctLWlnbm9yZS1yZW1vdmFsJyxcbiIKKyJkb250IGxlIGNvbXBvcnRlbWVudCB2YSBjaGFuZ2VyIGRhbnMgR2l0IDIuMCBhdmVjIGxlIHJlc3BlY3QgZGVzIGNoZW1pbnMgcXVlIHZvdXMgc3VwcHJpbWV6LlxuIgorIkxlcyBjaGVtaW5zIHRlbHMgcXVlICclcycgcXVpIG9udCDDqXTDqVxuIgorInJldGlyw6lzIGRlIHZvdHJlIGNvcGllIGRlIHRyYXZhaWwgc29udCBpZ25vcsOpcyBhdmVjIGNldHRlIHZlcnNpb24gZGUgR2l0LlxuIgorIlxuIgorIiogJ2dpdCBhZGQgLS1pZ25vcmUtcmVtb3ZhbCA8Y2hlbWluPicsIHF1aSBlc3QgbCdvcHRpb24gcGFyIGTDqWZhdXQgYWN0dWVsbGUsXG4iCisiICBpZ25vcmUgbGVzIGNoZW1pbnMgcXVlIHZvdXMgYXZleiBzdXBwcmltw6lzIGRlIHZvdHJlIGNvcGllIGRlIHRyYXZhaWwuXG4iCisiXG4iCisiKiAnZ2l0IGFkZCAtLWFsbCA8Y2hlbWluPicgcGVybWV0IGQnZW5yZWdpc3RyZXIgYXVzc2kgbGVzIHN1cHByZXNzaW9ucy5cbiIKKyJcbiIKKyJMYW5jZXogJ2dpdCBzdGF0dXMnIHBvdXIgdsOpcmlmaWVyIGxlcyBjaGVtaW5zIHF1ZSB2b3VzIGF2ZXogc3VwcHJpbcOpcyBkZSB2b3RyZSBjb3BpZSBkZSB0cmF2YWlsLlxuIgorCisjOiBidWlsdGluL2FkZC5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmV4cGVjdGVkIGRpZmYgc3RhdHVzICVjIgorbXNnc3RyICJzdGF0dXMgZGUgZGlmZiBpbmF0dGVuZHUgJWMiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTQ5IGJ1aWx0aW4vY29tbWl0LmM6MjMzCittc2dpZCAidXBkYXRpbmcgZmlsZXMgZmFpbGVkIgorbXNnc3RyICLDqWNoZWMgZGUgbGEgbWlzZSDDoCBqb3VyIGRlcyBmaWNoaWVycyIKKworIzogYnVpbHRpbi9hZGQuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZlICclcydcbiIKK21zZ3N0ciAic3VwcHJlc3Npb24gZGUgJyVzJ1xuIgorCisjOiBidWlsdGluL2FkZC5jOjI1MworbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgorbXNnc3RyICJNb2RpZmljYXRpb25zIG5vbiBpbmRleMOpZXMgYXByw6hzIHJhZnJhw65jaGlzc2VtZW50IGRlIGwnaW5kZXggOiIKKworIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzIgYnVpbHRpbi9ybS5jOjI3NQorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgorbXNnc3RyICJsZSBjaGVtaW4gJyVzJyBuZSBjb3JyZXNwb25kIMOgIGF1Y3VuIGZpY2hpZXIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzM5Cittc2dpZCAiQ291bGQgbm90IHJlYWQgdGhlIGluZGV4IgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgbCdpbmRleCIKKworIzogYnVpbHRpbi9hZGQuYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZy4iCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgJyVzJyBlbiDDqWNyaXR1cmUuIgorCisjOiBidWlsdGluL2FkZC5jOjM1MworbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgcGF0Y2giCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgIlN0YXQgZGUgJyVzJyBpbXBvc3NpYmxlIgorCisjOiBidWlsdGluL2FkZC5jOjM2MAorbXNnaWQgIkVtcHR5IHBhdGNoLiBBYm9ydGVkLiIKK21zZ3N0ciAiUGF0Y2ggdmlkZS4gQWJhbmRvbi4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYXBwbGlxdWVyICclcyciCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzc2Cittc2dpZCAiVGhlIGZvbGxvd2luZyBwYXRocyBhcmUgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgorbXNnc3RyICJMZXMgY2hlbWlucyBzdWl2YW50cyBzb250IGlnbm9yw6lzIHBhciB1biBkZSB2b3MgZmljaGllcnMgLmdpdGlnbm9yZSA6XG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzkzIGJ1aWx0aW4vY2xlYW4uYzoxNjEgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MworIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NiBidWlsdGluL3B1c2guYzo0MjUgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCisjOiBidWlsdGluL3JtLmM6MjA2Cittc2dpZCAiZHJ5IHJ1biIKK21zZ3N0ciAiw6AgdmlkZSIKKworIzogYnVpbHRpbi9hZGQuYzozOTQgYnVpbHRpbi9hcHBseS5jOjQ0MDkgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQorIzogYnVpbHRpbi9jb21taXQuYzoxMTUyIGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMworIzogYnVpbHRpbi9sb2cuYzoxNTE4IGJ1aWx0aW4vbXYuYzo2MiBidWlsdGluL3JlYWQtdHJlZS5jOjExMgorbXNnaWQgImJlIHZlcmJvc2UiCittc2dzdHIgIm1vZGUgdmVyYmV1eCIKKworIzogYnVpbHRpbi9hZGQuYzozOTYKK21zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgorbXNnc3RyICJzw6lsZWN0aW9uIGludGVyYWN0aXZlIgorCisjOiBidWlsdGluL2FkZC5jOjM5NyBidWlsdGluL2NoZWNrb3V0LmM6MTA2MyBidWlsdGluL3Jlc2V0LmM6MjU4Cittc2dpZCAic2VsZWN0IGh1bmtzIGludGVyYWN0aXZlbHkiCittc2dzdHIgInPDqWxlY3Rpb24gaW50ZXJhY3RpdmUgZGVzIHNlY3Rpb25zIgorCisjOiBidWlsdGluL2FkZC5jOjM5OAorbXNnaWQgImVkaXQgY3VycmVudCBkaWZmIGFuZCBhcHBseSIKK21zZ3N0ciAiw6lkaXRpb24gZHUgZGlmZiBhY3R1ZWwgZXQgYXBwbGljYXRpb24iCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk5Cittc2dpZCAiYWxsb3cgYWRkaW5nIG90aGVyd2lzZSBpZ25vcmVkIGZpbGVzIgorbXNnc3RyICJwZXJtZXR0cmUgbCdham91dCBkZSBmaWNoaWVycyBpZ25vcsOpcyIKKworIzogYnVpbHRpbi9hZGQuYzo0MDAKK21zZ2lkICJ1cGRhdGUgdHJhY2tlZCBmaWxlcyIKK21zZ3N0ciAibWV0dHJlIMOgIGpvdXIgbGVzIGZpY2hpZXJzIHN1aXZpcyIKKworIzogYnVpbHRpbi9hZGQuYzo0MDEKK21zZ2lkICJyZWNvcmQgb25seSB0aGUgZmFjdCB0aGF0IHRoZSBwYXRoIHdpbGwgYmUgYWRkZWQgbGF0ZXIiCittc2dzdHIgImVucmVnaXN0cmVyIHNldWxlbWVudCBsZSBmYWl0IHF1ZSBsZSBjaGVtaW4gc2VyYSBham91dMOpIHBsdXMgdGFyZCIKKworIzogYnVpbHRpbi9hZGQuYzo0MDIKK21zZ2lkICJhZGQgY2hhbmdlcyBmcm9tIGFsbCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCittc2dzdHIgImFqb3V0ZXIgbGVzIG1vZGlmaWNhdGlvbnMgZGUgdG91cyBsZXMgZmljaGllcnMgc3VpdmlzIGV0IG5vbiBzdWl2aXMiCisKKyMuIHRha2VzIG5vIGFyZ3VtZW50cworIzogYnVpbHRpbi9hZGQuYzo0MDUKK21zZ2lkICJpZ25vcmUgcGF0aHMgcmVtb3ZlZCBpbiB0aGUgd29ya2luZyB0cmVlIChzYW1lIGFzIC0tbm8tYWxsKSIKK21zZ3N0ciAiaWdub3JlciBsZXMgY2hlbWlucyBlZmZhY8OpcyBkYW5zIGxhIGNvcGllIGRlIHRyYXZhaWwgKGlkZW50aXF1ZSDDoCAtLW5vLWFsbCkiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDA3Cittc2dpZCAiZG9uJ3QgYWRkLCBvbmx5IHJlZnJlc2ggdGhlIGluZGV4IgorbXNnc3RyICJuZSBwYXMgYWpvdXRlciwganVzdGUgcmFmcmHDrmNoaXIgbCdpbmRleCIKKworIzogYnVpbHRpbi9hZGQuYzo0MDgKK21zZ2lkICJqdXN0IHNraXAgZmlsZXMgd2hpY2ggY2Fubm90IGJlIGFkZGVkIGJlY2F1c2Ugb2YgZXJyb3JzIgorbXNnc3RyICJzYXV0ZXIgc2V1bGVtZW50IGxlcyBmaWNoaWVycyBxdWkgbmUgcGV1dmVudCBwYXMgw6p0cmUgYWpvdXTDqXMgZHUgZmFpdCBkJ2VycmV1cnMiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDA5Cittc2dpZCAiY2hlY2sgaWYgLSBldmVuIG1pc3NpbmcgLSBmaWxlcyBhcmUgaWdub3JlZCBpbiBkcnkgcnVuIgorbXNnc3RyICJ2w6lyaWZpZXIgc2kgZGVzIGZpY2hpZXJzIC0gbcOqbWUgbWFucXVhbnRzIC0gc29udCBpZ25vcsOpcywgw6AgdmlkZSIKKworIzogYnVpbHRpbi9hZGQuYzo0MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNlIC1mIGlmIHlvdSByZWFsbHkgd2FudCB0byBhZGQgdGhlbS5cbiIKK21zZ3N0ciAiVXRpbGlzZXogLWYgc2kgdm91cyB2b3VsZXogcsOpZWxsZW1lbnQgbGVzIGFqb3V0ZXIuXG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDMyCittc2dpZCAibm8gZmlsZXMgYWRkZWQiCittc2dzdHIgImF1Y3VuIGZpY2hpZXIgYWpvdXTDqSIKKworIzogYnVpbHRpbi9hZGQuYzo0MzgKK21zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgorbXNnc3RyICLDqWNoZWMgZGUgbCdham91dCBkZSBmaWNoaWVycyIKKworIzogYnVpbHRpbi9hZGQuYzo0NzcKK21zZ2lkICItQSBhbmQgLXUgYXJlIG11dHVhbGx5IGluY29tcGF0aWJsZSIKK21zZ3N0ciAiLUEgZXQgLXUgc29udCBtdXR1ZWxsZW1lbnQgaW5jb21wYXRpYmxlcyIKKworIzogYnVpbHRpbi9hZGQuYzo0OTUKK21zZ2lkICJPcHRpb24gLS1pZ25vcmUtbWlzc2luZyBjYW4gb25seSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggLS1kcnktcnVuIgorbXNnc3RyICJMJ29wdGlvbiAtLWlnbm9yZS1taXNzaW5nIG5lIHBldXQgw6p0cmUgdXRpbGlzw6llIHF1J2VuIGNvbXBsw6ltZW50IGRlIC0tZHJ5LXJ1biIKKworIzogYnVpbHRpbi9hZGQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90aGluZyBzcGVjaWZpZWQsIG5vdGhpbmcgYWRkZWQuXG4iCittc2dzdHIgIlJpZW4gZGUgc3DDqWNpZmnDqSwgcmllbiBuJ2Egw6l0w6kgYWpvdXTDqS5cbiIKKworIzogYnVpbHRpbi9hZGQuYzo1MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF5YmUgeW91IHdhbnRlZCB0byBzYXkgJ2dpdCBhZGQgLic/XG4iCittc2dzdHIgIlZvdXMgdm91bGlleiBzw7tyZW1lbnQgZGlyZSAnZ2l0IGFkZCAuJyA/XG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6NTMyIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6NjYgYnVpbHRpbi9jbGVhbi5jOjIwNAorIzogYnVpbHRpbi9jb21taXQuYzoyOTMgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyMzUKK21zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCittc2dzdHIgImZpY2hpZXIgZCdpbmRleCBjb3Jyb21wdSIKKworIzogYnVpbHRpbi9hZGQuYzo2MDQgYnVpbHRpbi9hcHBseS5jOjQ1MDUgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6MzcwCittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBub3V2ZWF1IGZpY2hpZXIgZCdpbmRleCIKKworIzogYnVpbHRpbi9hcHBseS5jOjU3Cittc2dpZCAiZ2l0IGFwcGx5IFtvcHRpb25zXSBbPHBhdGNoPi4uLl0iCittc2dzdHIgImdpdCBhcHBseSBbb3B0aW9uc10gWzxwYXRjaD4uLi5dIgorCisjOiBidWlsdGluL2FwcGx5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCB3aGl0ZXNwYWNlIG9wdGlvbiAnJXMnIgorbXNnc3RyICJvcHRpb24gZCdlc3BhY2Ugbm9uIHJlY29ubnVlICclcyciCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIHdoaXRlc3BhY2UgaWdub3JlIG9wdGlvbiAnJXMnIgorbXNnc3RyICJvcHRpb24gZCdpZ25vcmFuY2UgZCdlc3BjZSBub24gcmVjb25udWUgJyVzJyIKKworIzogYnVpbHRpbi9hcHBseS5jOjgyMworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgcHJlcGFyZSB0aW1lc3RhbXAgcmVnZXhwICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHByw6lwYXJlciBsYSByZWdleHAgZCdob3JvZGF0YWdlICVzIgorCisjOiBidWlsdGluL2FwcGx5LmM6ODMyCisjLCBjLWZvcm1hdAorbXNnaWQgInJlZ2V4ZWMgcmV0dXJuZWQgJWQgZm9yIGlucHV0OiAlcyIKK21zZ3N0ciAicmVnZXhlYyBhIHJldG91cm7DqSAlZCBwb3VyIGwnZW50csOpZSA6ICVzIgorCisjOiBidWlsdGluL2FwcGx5LmM6OTEzCisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBmaW5kIGZpbGVuYW1lIGluIHBhdGNoIGF0IGxpbmUgJWQiCittc2dzdHIgIm5vbSBkZSBmaWNoaWVyIGR1IHBhdGNoIGludHJvdXZhYmxlIMOgIGxhIGxpZ25lICVkIgorCisjOiBidWlsdGluL2FwcGx5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImdpdCBhcHBseTogYmFkIGdpdC1kaWZmIC0gZXhwZWN0ZWQgL2Rldi9udWxsLCBnb3QgJXMgb24gbGluZSAlZCIKK21zZ3N0ciAiZ2l0IGFwcGx5IDogbWF1dmFpcyBmb3JtYXQgZGUgZ2l0LWRpZmYgLSAvZGV2L251bGwgYXR0ZW5kdSwgJXMgdHJvdXbDqSDDoCBsYSBsaWduZSAlZCIKKworIzogYnVpbHRpbi9hcHBseS5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJnaXQgYXBwbHk6IGJhZCBnaXQtZGlmZiAtIGluY29uc2lzdGVudCBuZXcgZmlsZW5hbWUgb24gbGluZSAlZCIKK21zZ3N0ciAiZ2l0IGFwcGx5IDogbWF1dmFpcyBmb3JtYXQgZGUgZ2l0LWRpZmYgLSBub3V2ZWF1IG5vbSBkZSBmaWNoaWVyIGluY29uc2lzdGFudCDDoCBsYSBsaWduZSAlZCIKKworIzogYnVpbHRpbi9hcHBseS5jOjk1MAorIywgYy1mb3JtYXQKK21zZ2lkICJnaXQgYXBwbHk6IGJhZCBnaXQtZGlmZiAtIGluY29uc2lzdGVudCBvbGQgZmlsZW5hbWUgb24gbGluZSAlZCIKK21zZ3N0ciAiZ2l0IGFwcGx5IDogbWF1dmFpcyBmb3JtYXQgZGUgZ2l0LWRpZmYgLSBhbmNpZW4gbm9tIGRlIGZpY2hpZXIgaW5jb25zaXN0YW50IMOgIGxhIGxpZ25lICVkIgorCisjOiBidWlsdGluL2FwcGx5LmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgImdpdCBhcHBseTogYmFkIGdpdC1kaWZmIC0gZXhwZWN0ZWQgL2Rldi9udWxsIG9uIGxpbmUgJWQiCittc2dzdHIgImdpdCBhcHBseSA6IG1hdXZhaXMgZm9ybWF0IGRlIGdpdC1kaWZmIC0gL2Rldi9udWxsIGF0dGVuZHUgw6AgbGEgbGlnbmUgJWQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxNDIyCisjLCBjLWZvcm1hdAorbXNnaWQgInJlY291bnQ6IHVuZXhwZWN0ZWQgbGluZTogJS4qcyIKK21zZ3N0ciAicmVjb3VudCA6IGxpZ25lIGluYXR0ZW5kdWUgOiAlLipzIgorCisjOiBidWlsdGluL2FwcGx5LmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRjaCBmcmFnbWVudCB3aXRob3V0IGhlYWRlciBhdCBsaW5lICVkOiAlLipzIgorbXNnc3RyICJmcmFnbWVudCBkZSBwYXRjaCBzYW5zIGVuLXTDqnRlIMOgIGxhIGxpZ25lICVkIDogJS4qcyIKKworIzogYnVpbHRpbi9hcHBseS5jOjE0OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImdpdCBkaWZmIGhlYWRlciBsYWNrcyBmaWxlbmFtZSBpbmZvcm1hdGlvbiB3aGVuIHJlbW92aW5nICVkIGxlYWRpbmcgcGF0aG5hbWUgIgorImNvbXBvbmVudCAobGluZSAlZCkiCittc2dpZF9wbHVyYWwgIiIKKyJnaXQgZGlmZiBoZWFkZXIgbGFja3MgZmlsZW5hbWUgaW5mb3JtYXRpb24gd2hlbiByZW1vdmluZyAlZCBsZWFkaW5nIHBhdGhuYW1lICIKKyJjb21wb25lbnRzIChsaW5lICVkKSIKK21zZ3N0clswXSAiaW5mb3JtYXRpb24gZGUgbm9tIGRlIGZpY2hpZXIgbWFucXVhbnRlIGRhbnMgbCdlbi10w6p0ZSBkZSBnaXQgZGlmZiBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlICVkIGNvbXBvc2FudCBkZSBwcsOpZml4ZSBkZSBjaGVtaW4gKGxpZ25lICVkKSIKK21zZ3N0clsxXSAiaW5mb3JtYXRpb24gZGUgbm9tIGRlIGZpY2hpZXIgbWFucXVhbnRlIGRhbnMgbCdlbi10w6p0ZSBkZSBnaXQgZGlmZiBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlICVkIGNvbXBvc2FudHMgZGUgcHLDqWZpeGUgZGUgY2hlbWluIChsaWduZSAlZCkiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxNjU2Cittc2dpZCAibmV3IGZpbGUgZGVwZW5kcyBvbiBvbGQgY29udGVudHMiCittc2dzdHIgImxlIG5vdXZlYXUgZmljaGllciBkw6lwZW5kIGRlIGNvbnRlbnVzIGFuY2llbnMiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxNjU4Cittc2dpZCAiZGVsZXRlZCBmaWxlIHN0aWxsIGhhcyBjb250ZW50cyIKK21zZ3N0ciAibGUgZmljaGllciBzdXBwcmltw6kgYSBlbmNvcmUgZHUgY29udGVudSIKKworIzogYnVpbHRpbi9hcHBseS5jOjE2ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ycnVwdCBwYXRjaCBhdCBsaW5lICVkIgorbXNnc3RyICJwYXRjaCBjb3Jyb21wdSDDoCBsYSBsaWduZSAlZCIKKworIzogYnVpbHRpbi9hcHBseS5jOjE3MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAibmV3IGZpbGUgJXMgZGVwZW5kcyBvbiBvbGQgY29udGVudHMiCittc2dzdHIgImxlIG5vdXZlYXUgZmljaGllciAlcyBkw6lwZW5kIGRlIGNvbnRlbnVzIGFuY2llbnMiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxNzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImRlbGV0ZWQgZmlsZSAlcyBzdGlsbCBoYXMgY29udGVudHMiCittc2dzdHIgImxlIGZpY2hpZXIgc3VwcHJpbcOpICVzIGEgZW5jb3JlIGR1IGNvbnRlbnUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxNzI1CisjLCBjLWZvcm1hdAorbXNnaWQgIioqIHdhcm5pbmc6IGZpbGUgJXMgYmVjb21lcyBlbXB0eSBidXQgaXMgbm90IGRlbGV0ZWQiCittc2dzdHIgIioqIGF0dGVudGlvbiA6IGxlIGZpY2hpZXIgJXMgZGV2aWVudCB2aWRlIG1haXMgbidlc3QgcGFzIHN1cHByaW3DqSIKKworIzogYnVpbHRpbi9hcHBseS5jOjE4NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ycnVwdCBiaW5hcnkgcGF0Y2ggYXQgbGluZSAlZDogJS4qcyIKK21zZ3N0ciAicGF0Y2ggYmluYWlyZSBjb3Jyb21wdSDDoCBsYSBsaWduZSAlZCA6ICUuKnMiCisKKyMuIHRoZXJlIGhhcyB0byBiZSBvbmUgaHVuayAoZm9yd2FyZCBodW5rKQorIzogYnVpbHRpbi9hcHBseS5jOjE5MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGJpbmFyeSBwYXRjaCBhdCBsaW5lICVkIgorbXNnc3RyICJwYXRjaCBiaW5haXJlIG5vbiByZWNvbm51IMOgIGxhIGxpZ25lICVkIgorCisjOiBidWlsdGluL2FwcGx5LmM6MTk4NgorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRjaCB3aXRoIG9ubHkgZ2FyYmFnZSBhdCBsaW5lICVkIgorbXNnc3RyICJwYXRjaCB0b3RhbGVtZW50IGluY29tcHLDqWhlbnNpYmxlIMOgIGxhIGxpZ25lICVkIgorCisjOiBidWlsdGluL2FwcGx5LmM6MjA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzeW1saW5rICVzIgorbXNnc3RyICJsZWN0dXJlIGR1IGxpZW4gc3ltYm9saXF1ZSAlcyBpbXBvc3NpYmxlIgorCisjOiBidWlsdGluL2FwcGx5LmM6MjA4MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiBvciByZWFkICVzIgorbXNnc3RyICJvdXZlcnR1cmUgb3UgbGVjdHVyZSBkZSAlcyBpbXBvc3NpYmxlIgorCisjOiBidWlsdGluL2FwcGx5LmM6MjY4OAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHN0YXJ0IG9mIGxpbmU6ICclYyciCittc2dzdHIgImTDqWJ1dCBkZSBsaWduZSBpbnZhbGlkZSA6ICclYyciCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoyODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkh1bmsgIyVkIHN1Y2NlZWRlZCBhdCAlZCAob2Zmc2V0ICVkIGxpbmUpLiIKK21zZ2lkX3BsdXJhbCAiSHVuayAjJWQgc3VjY2VlZGVkIGF0ICVkIChvZmZzZXQgJWQgbGluZXMpLiIKK21zZ3N0clswXSAiTGEgc2VjdGlvbiBuwrAlZCBhIHLDqXVzc2kgw6AgbGEgbGlnbmUgJWQgKG9mZnNldCAlZCBsaWduZSkuIgorbXNnc3RyWzFdICJMYSBzZWN0aW9uIG7CsCVkIGEgcsOpdXNzaSDDoCBsYSBsaWduZSAlZCAob2Zmc2V0ICVkIGxpZ25lcykuIgorCisjOiBidWlsdGluL2FwcGx5LmM6MjgxOAorIywgYy1mb3JtYXQKK21zZ2lkICJDb250ZXh0IHJlZHVjZWQgdG8gKCVsZC8lbGQpIHRvIGFwcGx5IGZyYWdtZW50IGF0ICVkIgorbXNnc3RyICJDb250ZXh0ZSByw6lkdWl0IMOgICglbGQvJWxkKSBwb3VyIGFwcGxpcXVlciBsZSBmcmFnbWVudCDDoCBsYSBsaWduZSAlZCIKKworIzogYnVpbHRpbi9hcHBseS5jOjI4MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndoaWxlIHNlYXJjaGluZyBmb3I6XG4iCisiJS4qcyIKK21zZ3N0ciAicGVuZGFudCBsYSByZWNoZXJjaGUgZGUgOlxuIgorIiUuKnMiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoyODQzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pc3NpbmcgYmluYXJ5IHBhdGNoIGRhdGEgZm9yICclcyciCittc2dzdHIgImRvbm7DqWVzIGRlIHBhdGNoIGJpbmFpcmUgbWFucXVhbnRlcyBwb3VyICclcyciCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoyOTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImJpbmFyeSBwYXRjaCBkb2VzIG5vdCBhcHBseSB0byAnJXMnIgorbXNnc3RyICJsZSBwYXRjaCBiaW5haXJlIG5lIHMnYXBwbGlxdWUgcGFyIGNvcnJlY3RlbWVudCDDoCAnJXMnIgorCisjOiBidWlsdGluL2FwcGx5LmM6Mjk1MgorIywgYy1mb3JtYXQKK21zZ2lkICJiaW5hcnkgcGF0Y2ggdG8gJyVzJyBjcmVhdGVzIGluY29ycmVjdCByZXN1bHQgKGV4cGVjdGluZyAlcywgZ290ICVzKSIKK21zZ3N0ciAibGUgcGF0Y2ggYmluYWlyZSBzdXIgJyVzJyBjcsOpZSB1biByw6lzdWx0YXQgaW5jb3JyZWN0ICglcyBhdHRlbmR1LCBtYWlzICVzIHRyb3V2w6kpIgorCisjOiBidWlsdGluL2FwcGx5LmM6Mjk3MworIywgYy1mb3JtYXQKK21zZ2lkICJwYXRjaCBmYWlsZWQ6ICVzOiVsZCIKK21zZ3N0ciAibGUgcGF0Y2ggYSDDqWNob3XDqSA6ICVzOiVsZCIKKworIzogYnVpbHRpbi9hcHBseS5jOjMwOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGNoZWNrb3V0ICVzIgorbXNnc3RyICJleHRyYWN0aW9uIGRlICVzIGltcG9zc2libGUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMTQwIGJ1aWx0aW4vYXBwbHkuYzozMTQ5IGJ1aWx0aW4vYXBwbHkuYzozMTkzCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgb2YgJXMgZmFpbGVkIgorbXNnc3RyICJlY2hlYyBkZSBsYSBsZWN0dXJlIGRlICVzIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzE3MyBidWlsdGluL2FwcGx5LmM6MzM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoICVzIGhhcyBiZWVuIHJlbmFtZWQvZGVsZXRlZCIKK21zZ3N0ciAibGUgY2hlbWluICVzIGEgw6l0w6kgcmVub21tw6kvc3VwcHJpbcOpIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzI1NCBidWlsdGluL2FwcGx5LmM6MzQwOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgiCittc2dzdHIgIiVzIDogbidleGlzdGUgcGFzIGRhbnMgbCdpbmRleCIKKworIzogYnVpbHRpbi9hcHBseS5jOjMyNTggYnVpbHRpbi9hcHBseS5jOjM0MDEgYnVpbHRpbi9hcHBseS5jOjM0MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIgorbXNnc3RyICIlcyA6ICVzIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzI2MyBidWlsdGluL2FwcGx5LmM6MzQxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogZG9lcyBub3QgbWF0Y2ggaW5kZXgiCittc2dzdHIgIiVzIDogbmUgY29ycmVzcG9uZCBwYXMgw6AgbCdpbmRleCIKKworIzogYnVpbHRpbi9hcHBseS5jOjMzNjUKK21zZ2lkICJyZW1vdmFsIHBhdGNoIGxlYXZlcyBmaWxlIGNvbnRlbnRzIgorbXNnc3RyICJsZSBwYXRjaCBkZSBzdXBwcmVzc2lvbiBsYWlzc2UgdW4gY29udGVudSBkYW5zIGxlIGZpY2hpZXIiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cm9uZyB0eXBlIgorbXNnc3RyICIlcyA6IHR5cGUgZXJyb27DqSIKKworIzogYnVpbHRpbi9hcHBseS5jOjM0MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaGFzIHR5cGUgJW8sIGV4cGVjdGVkICVvIgorbXNnc3RyICIlcyBlc3QgZGUgdHlwZSAlbywgbWFpcyAlbyBhdHRlbmR1IgorCisjOiBidWlsdGluL2FwcGx5LmM6MzUzNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYWxyZWFkeSBleGlzdHMgaW4gaW5kZXgiCittc2dzdHIgIiVzIDogZXhpc3RlIGTDqWrDoCBkYW5zIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhbHJlYWR5IGV4aXN0cyBpbiB3b3JraW5nIGRpcmVjdG9yeSIKK21zZ3N0ciAiJXMgOiBleGlzdGUgZMOpasOgIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogYnVpbHRpbi9hcHBseS5jOjM1NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAibmV3IG1vZGUgKCVvKSBvZiAlcyBkb2VzIG5vdCBtYXRjaCBvbGQgbW9kZSAoJW8pIgorbXNnc3RyICJsZSBub3V2ZWF1IG1vZGUgKCVvKSBkZSAlcyBuZSBjb3JyZXNwb25kIHBhcyDDoCBsJ2FuY2llbiBtb2RlICglbykiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSBvZiAlcyIKK21zZ3N0ciAibGUgbm91dmVhdSBtb2RlICglbykgZGUgJXMgbmUgY29ycmVzcG9uZCBwYXMgw6AgbCdhbmNpZW4gbW9kZSAoJW8pIGRlICVzIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzU3MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogcGF0Y2ggZG9lcyBub3QgYXBwbHkiCittc2dzdHIgIiVzIDogbGUgcGF0Y2ggbmUgcydhcHBsaXF1ZSBwYXMiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoZWNraW5nIHBhdGNoICVzLi4uIgorbXNnc3RyICJWw6lyaWZpY2F0aW9uIGR1IHBhdGNoICVzLi4uIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzY3OSBidWlsdGluL2NoZWNrb3V0LmM6MjE2IGJ1aWx0aW4vcmVzZXQuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibWFrZV9jYWNoZV9lbnRyeSBmYWlsZWQgZm9yIHBhdGggJyVzJyIKK21zZ3N0ciAiZWNoZWMgZGUgbWFrZV9jYWNoZV9lbnRyeSBwb3VyIGxlIGNoZW1pbiAnJXMnIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzgyMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlICVzIGZyb20gaW5kZXgiCittc2dzdHIgInN1cHByZXNzaW9uIGRlICVzIGRhbnMgbCdpbmRleCBpbXBvc3NpYmxlIgorCisjOiBidWlsdGluL2FwcGx5LmM6Mzg1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb3JydXB0IHBhdGNoIGZvciBzdWJwcm9qZWN0ICVzIgorbXNnc3RyICJwYXRjaCBjb3Jyb21wdSBwb3VyIGxlIHNvdXMtcHJvamV0ICVzIgorCisjOiBidWlsdGluL2FwcGx5LmM6Mzg1NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCBuZXdseSBjcmVhdGVkIGZpbGUgJyVzJyIKK21zZ3N0ciAic3RhdCBkdSBmaWNoaWVyIG5vdXZlbGxlbWVudCBjcsOpw6kgJyVzJyBpbXBvc3NpYmxlIgorCisjOiBidWlsdGluL2FwcGx5LmM6Mzg1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIGJhY2tpbmcgc3RvcmUgZm9yIG5ld2x5IGNyZWF0ZWQgZmlsZSAlcyIKK21zZ3N0ciAiY3LDqWF0aW9uIGR1IG1hZ2FzaW4gZGUgc3RvY2thZ2UgcG91ciBsZSBmaWNoaWVyIG5vdXZlbGxlbWVudCBjcsOpw6kgJXMgaW1wb3NzaWJsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjM4NjIgYnVpbHRpbi9hcHBseS5jOjM5NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIGFkZCBjYWNoZSBlbnRyeSBmb3IgJXMiCittc2dzdHIgImFqb3V0IGRlIGwnZW50csOpZSBkZSBjYWNoZSAlcyBpbXBvc3NpYmxlIgorCisjOiBidWlsdGluL2FwcGx5LmM6Mzg5NQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9zaW5nIGZpbGUgJyVzJyIKK21zZ3N0ciAiZmVybWV0dXJlIGR1IGZpY2hpZXIgJyVzJyIKKworIzogYnVpbHRpbi9hcHBseS5jOjM5NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGZpbGUgJyVzJyBtb2RlICVvIgorbXNnc3RyICLDqWNyaXR1cmUgZHUgZmljaGllciAnJXMnIG1vZGUgJW8gaW1wb3NzaWJsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQwMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXBwbGllZCBwYXRjaCAlcyBjbGVhbmx5LiIKK21zZ3N0ciAiUGF0Y2ggJXMgYXBwbGlxdcOpIHByb3ByZW1lbnQuIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDAzOQorbXNnaWQgImludGVybmFsIGVycm9yIgorbXNnc3RyICJlcnJldXIgaW50ZXJuZSIKKworIy4gU2F5IHRoaXMgZXZlbiB3aXRob3V0IC0tdmVyYm9zZQorIzogYnVpbHRpbi9hcHBseS5jOjQwNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0Li4uIgorbXNnaWRfcGx1cmFsICJBcHBseWluZyBwYXRjaCAlJXMgd2l0aCAlZCByZWplY3RzLi4uIgorbXNnc3RyWzBdICJBcHBsaWNhdGlvbiBkdSBwYXRjaCAlJXMgYXZlYyAlZCByZWpldC4uLiIKK21zZ3N0clsxXSAiQXBwbGljYXRpb24gZHUgcGF0Y2ggJSVzIGF2ZWMgJWQgcmVqZXRzLi4uIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDA1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ0cnVuY2F0aW5nIC5yZWogZmlsZW5hbWUgdG8gJS4qcy5yZWoiCittc2dzdHIgInRyb25jYXR1cmUgZHUgbm9tIGRlIGZpY2hpZXIgLnJlaiBlbiAlLipzLnJlaiIKKworIzogYnVpbHRpbi9hcHBseS5jOjQwNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHVuayAjJWQgYXBwbGllZCBjbGVhbmx5LiIKK21zZ3N0ciAiU2VjdGlvbiBuwrAlZCBhcHBsaXF1w6llIHByb3ByZW1lbnQuIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJSZWplY3RlZCBodW5rICMlZC4iCittc2dzdHIgIlNlY3Rpb24gbsKwJWQgcmVqZXTDqWUuIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDIyNgorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dCIKK21zZ3N0ciAiZW50csOpZSBub24gcmVjb25udWUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MjM3Cittc2dpZCAidW5hYmxlIHRvIHJlYWQgaW5kZXggZmlsZSIKK21zZ3N0ciAibGVjdHVyZSBkdSBmaWNoaWVyIGQnaW5kZXggaW1wb3NzaWJsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzNTYgYnVpbHRpbi9hcHBseS5jOjQzNTkgYnVpbHRpbi9jbG9uZS5jOjkyCisjOiBidWlsdGluL2ZldGNoLmM6NjMKK21zZ2lkICJwYXRoIgorbXNnc3RyICJjaGVtaW4iCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3Cittc2dpZCAiZG9uJ3QgYXBwbHkgY2hhbmdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcGF0aCIKK21zZ3N0ciAibmUgcGFzIGFwcGxpcXVlciBsZXMgbW9kaWZpY2F0aW9ucyBxdWkgY29ycmVzcG9uZGVudCBhdSBjaGVtaW4gZG9ubsOpIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MAorbXNnaWQgImFwcGx5IGNoYW5nZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHBhdGgiCittc2dzdHIgImFwcGxpcXVlciBsZXMgbW9kaWZpY2F0aW9ucyBxdWkgY29ycmVzcG9uZGVudCBhdSBjaGVtaW4gZG9ubsOpIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MgorbXNnaWQgIm51bSIKK21zZ3N0ciAibnVtIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MworbXNnaWQgInJlbW92ZSA8bnVtPiBsZWFkaW5nIHNsYXNoZXMgZnJvbSB0cmFkaXRpb25hbCBkaWZmIHBhdGhzIgorbXNnc3RyICJzdXBwcmltZXIgPG51bT4gYmFycmVzIG9ibGlxdWVzIGRlcyBjaGVtaW5zIHRyYWRpdGlvbm5lbHMgZGUgZGlmZiIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzNjYKK21zZ2lkICJpZ25vcmUgYWRkaXRpb25zIG1hZGUgYnkgdGhlIHBhdGNoIgorbXNnc3RyICJpZ25vcmVyIGxlcyBhZGRpdGlvbnMgcsOpYWxpc8OpZXMgcGFyIGxlIHBhdGNoIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM2OAorbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgZGlmZnN0YXQgZm9yIHRoZSBpbnB1dCIKK21zZ3N0ciAiYXUgbGlldSBkJ2FwcGxpcXVlciBsZSBwYXRjaCwgYWZmaWNoZXIgbGUgZGlmZnN0YXQgZGUgbCdlbnRyw6llIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM3MgorbXNnaWQgInNob3cgbnVtYmVyIG9mIGFkZGVkIGFuZCBkZWxldGVkIGxpbmVzIGluIGRlY2ltYWwgbm90YXRpb24iCittc2dzdHIgImFmZmljaGVyIGxlIG5vbWJyZSBkZSBsaWduZXMgYWpvdXTDqWVzIGV0IHN1cHByaW3DqWVzIGVuIG5vdGF0aW9uIGTDqWNpbWFsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzNzQKK21zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgb3V0cHV0IGEgc3VtbWFyeSBmb3IgdGhlIGlucHV0IgorbXNnc3RyICJhdSBsaWV1IGQnYXBwbGlxdWVyIGxlIHBhdGNoLCBhZmZpY2hlciB1biByw6lzdW1lciBkZSBsJ2VudHLDqWUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc2Cittc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIHNlZSBpZiB0aGUgcGF0Y2ggaXMgYXBwbGljYWJsZSIKK21zZ3N0ciAiYXUgbGlldSBkJ2FwcGxpcXVlciBsZSBwYXRjaCwgdm9pciBzaSBsZSBwYXRjaCBlc3QgYXBwbGljYWJsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzNzgKK21zZ2lkICJtYWtlIHN1cmUgdGhlIHBhdGNoIGlzIGFwcGxpY2FibGUgdG8gdGhlIGN1cnJlbnQgaW5kZXgiCittc2dzdHIgInMnYXNzdXJlciBxdWUgbGUgcGF0Y2ggZXN0IGFwcGxpY2FibGUgc3VyIGwnaW5kZXggYWN0dWVsIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM4MAorbXNnaWQgImFwcGx5IGEgcGF0Y2ggd2l0aG91dCB0b3VjaGluZyB0aGUgd29ya2luZyB0cmVlIgorbXNnc3RyICJhcHBsaXF1ZXIgbGVzIHBhdGNoIHNhbnMgdG91Y2hlciDDoCBsYSBjb3BpZSBkZSB0cmF2YWlsIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM4MgorbXNnaWQgImFsc28gYXBwbHkgdGhlIHBhdGNoICh1c2Ugd2l0aCAtLXN0YXQvLS1zdW1tYXJ5Ly0tY2hlY2spIgorbXNnc3RyICJhcHBsaXF1ZXIgYXVzc2kgbGUgcGF0Y2ggKMOgIHV0aWxpc2VyIGF2ZWMgLS0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg0Cittc2dpZCAiYXR0ZW1wdCB0aHJlZS13YXkgbWVyZ2UgaWYgYSBwYXRjaCBkb2VzIG5vdCBhcHBseSIKK21zZ3N0ciAidGVudGVyIHVuZSBmdXNpb24gw6AgMyBwb2ludHMgc2kgbGUgcGF0Y2ggbmUgcydhcHBsaXF1ZSBwYXMgcHJvcHJlbWVudCIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzODYKK21zZ2lkICJidWlsZCBhIHRlbXBvcmFyeSBpbmRleCBiYXNlZCBvbiBlbWJlZGRlZCBpbmRleCBpbmZvcm1hdGlvbiIKK21zZ3N0ciAiY29uc3RydWlyZSB1biBpbmRleCB0ZW1wb3JhaXJlIGZvbmTDqSBzdXIgbCdpbmZvcm1hdGlvbiBkZSBsJ2luZGV4IGVtYmFycXXDqSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzODggYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDU2Cittc2dpZCAicGF0aHMgYXJlIHNlcGFyYXRlZCB3aXRoIE5VTCBjaGFyYWN0ZXIiCittc2dzdHIgImxlcyBjaGVtaW5zIHNvbnQgc8OpcGFyw6lzIHBhciB1biBjYXJhY3TDqHJlIE5VTCIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzOTEKK21zZ2lkICJlbnN1cmUgYXQgbGVhc3QgPG4+IGxpbmVzIG9mIGNvbnRleHQgbWF0Y2giCittc2dzdHIgInMnYXNzdXJlciBkJ2F1IG1vaW5zIDxuPiBsaWduZXMgZGUgY29ycmVzcG9uZGFuY2UgZGUgY29udGV4dGUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCittc2dpZCAiYWN0aW9uIgorbXNnc3RyICJhY3Rpb24iCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkzCittc2dpZCAiZGV0ZWN0IG5ldyBvciBtb2RpZmllZCBsaW5lcyB0aGF0IGhhdmUgd2hpdGVzcGFjZSBlcnJvcnMiCittc2dzdHIgImTDqXRlY3RlciBkZXMgbGlnbmVzIG5vdXZlbGxlcyBvdSBtb2RpZmnDqWVzIHF1aSBjb250aWVubmVudCBkZXMgZXJyZXVycyBkJ2VzcGFjZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzOTYgYnVpbHRpbi9hcHBseS5jOjQzOTkKK21zZ2lkICJpZ25vcmUgY2hhbmdlcyBpbiB3aGl0ZXNwYWNlIHdoZW4gZmluZGluZyBjb250ZXh0IgorbXNnc3RyICJpZ25vcmVyIGRlcyBtb2RpZmljYXRpb25zIGQnZXNwYWNlIGxvcnMgZGUgbGEgcmVjaGVyY2hlIGRlIGNvbnRleHRlIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDQwMgorbXNnaWQgImFwcGx5IHRoZSBwYXRjaCBpbiByZXZlcnNlIgorbXNnc3RyICJhcHBsaXF1ZXIgbGUgcGF0Y2ggZW4gc2VucyBpbnZlcnNlIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDQwNAorbXNnaWQgImRvbid0IGV4cGVjdCBhdCBsZWFzdCBvbmUgbGluZSBvZiBjb250ZXh0IgorbXNnc3RyICJuZSBwYXMgcydhdHRlbmRyZSDDoCBhdSBtb2lucyB1bmUgbGlnbmUgZGUgY29udGV4dGUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA2Cittc2dpZCAibGVhdmUgdGhlIHJlamVjdGVkIGh1bmtzIGluIGNvcnJlc3BvbmRpbmcgKi5yZWogZmlsZXMiCittc2dzdHIgImxhaXNzZXIgbGVzIHNlY3Rpb25zIHJlamV0w6llcyBkYW5zIGxlcyBmaWNoaWVycyAqLnJlaiBjb3JyZXNwb25kYW50cyIKKworIzogYnVpbHRpbi9hcHBseS5jOjQ0MDgKK21zZ2lkICJhbGxvdyBvdmVybGFwcGluZyBodW5rcyIKK21zZ3N0ciAiYWNjZXB0ZXIgbGVzIHJlY291dnJlbWVudHMgZGUgc2VjdGlvbnMiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDExCittc2dpZCAidG9sZXJhdGUgaW5jb3JyZWN0bHkgZGV0ZWN0ZWQgbWlzc2luZyBuZXctbGluZSBhdCB0aGUgZW5kIG9mIGZpbGUiCittc2dzdHIgInRvbMOpcmVyIGRlcyBlcnJldXJzIGRlIGTDqXRlY3Rpb24gZGUgcmV0b3VycyBjaGFyaW90IG1hbnF1YW50cyBlbiBmaW4gZGUgZmljaGllciIKKworIzogYnVpbHRpbi9hcHBseS5jOjQ0MTQKK21zZ2lkICJkbyBub3QgdHJ1c3QgdGhlIGxpbmUgY291bnRzIGluIHRoZSBodW5rIGhlYWRlcnMiCittc2dzdHIgIm5lIHBhcyBzZSBmaWVyIGF1IGNvbXB0ZSBkZSBsaWduZXMgZGFucyBsZXMgZW4tdMOqdGVzIGRlIHNlY3Rpb24iCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE2Cittc2dpZCAicm9vdCIKK21zZ3N0ciAicmFjaW5lIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDQxNworbXNnaWQgInByZXBlbmQgPHJvb3Q+IHRvIGFsbCBmaWxlbmFtZXMiCittc2dzdHIgInByw6lmaXhlciB0b3VzIGxlcyBub21zIGRlIGZpY2hpZXIgYXZlYyA8cm9vdD4iCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDM5Cittc2dpZCAiLS0zd2F5IG91dHNpZGUgYSByZXBvc2l0b3J5IgorbXNnc3RyICItLTN3YXkgaG9ycyBkJ3VuIGTDqXDDtHQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ3Cittc2dpZCAiLS1pbmRleCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKK21zZ3N0ciAiLS1pbmRleCBob3JzIGQndW4gZMOpcMO0dCIKKworIzogYnVpbHRpbi9hcHBseS5jOjQ0NTAKK21zZ2lkICItLWNhY2hlZCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKK21zZ3N0ciAiLS1jYWNoZWQgaG9ycyBkJ3VuIGTDqXDDtHQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDY2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gcGF0Y2ggJyVzJyIKK21zZ3N0ciAib3V2ZXJ0dXJlIGltcG9zc2libGUgZHUgcGF0Y2ggJyVzJyIKKworIzogYnVpbHRpbi9hcHBseS5jOjQ0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3F1ZWxjaGVkICVkIHdoaXRlc3BhY2UgZXJyb3IiCittc2dpZF9wbHVyYWwgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9ycyIKK21zZ3N0clswXSAiJWQgZXJyZXVyIGQnZXNwYWNlIGlnbm9yw6llIgorbXNnc3RyWzFdICIlZCBlcnJldXJzIGQnZXNwYWNlIGlnbm9yw6llcyIKKworIzogYnVpbHRpbi9hcHBseS5jOjQ0ODYgYnVpbHRpbi9hcHBseS5jOjQ0OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgbGluZSBhZGRzIHdoaXRlc3BhY2UgZXJyb3JzLiIKK21zZ2lkX3BsdXJhbCAiJWQgbGluZXMgYWRkIHdoaXRlc3BhY2UgZXJyb3JzLiIKK21zZ3N0clswXSAiJWQgbGlnbmUgYSBham91dMOpIGRlcyBlcnJldXJzIGQnZXNwYWNlLiIKK21zZ3N0clsxXSAiJWQgbGlnbmVzIG9udCBham91dMOpIGRlcyBlcnJldXJzIGQnZXNwYWNlLiIKKworIzogYnVpbHRpbi9hcmNoaXZlLmM6MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IGNyZWF0ZSBhcmNoaXZlIGZpbGUgJyVzJyIKK21zZ3N0ciAiY3LDqWF0aW9uIGltcG9zc2libGUgZHUgZmljaGllciBkJ2FyY2hpdmUgJyVzJyIKKworIzogYnVpbHRpbi9hcmNoaXZlLmM6MjAKK21zZ2lkICJjb3VsZCBub3QgcmVkaXJlY3Qgb3V0cHV0IgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHJlZGlyaWdlciBsYSBzb3J0aWUiCisKKyM6IGJ1aWx0aW4vYXJjaGl2ZS5jOjM3Cittc2dpZCAiZ2l0IGFyY2hpdmU6IFJlbW90ZSB3aXRoIG5vIFVSTCIKK21zZ3N0ciAiZ2l0IGFyY2hpdmUgOiBEw6lww7R0IGRpc3RhbnQgc2FucyBVUkwiCisKKyM6IGJ1aWx0aW4vYXJjaGl2ZS5jOjU4Cittc2dpZCAiZ2l0IGFyY2hpdmU6IGV4cGVjdGVkIEFDSy9OQUssIGdvdCBFT0YiCittc2dzdHIgImdpdCBhcmNoaXZlIDogQUNLL05BQ0sgYXR0ZW5kdSwgRU9GIHJlw6d1IgorCisjOiBidWlsdGluL2FyY2hpdmUuYzo2MQorIywgYy1mb3JtYXQKK21zZ2lkICJnaXQgYXJjaGl2ZTogTkFDSyAlcyIKK21zZ3N0ciAiZ2l0IGFyY2hpdmUgOiBOQUNLICVzIgorCisjOiBidWlsdGluL2FyY2hpdmUuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJyZW1vdGUgZXJyb3I6ICVzIgorbXNnc3RyICJlcnJldXIgZGlzdGFudGUgOiAlcyIKKworIzogYnVpbHRpbi9hcmNoaXZlLmM6NjQKK21zZ2lkICJnaXQgYXJjaGl2ZTogcHJvdG9jb2wgZXJyb3IiCittc2dzdHIgImdpdCBhcmNoaXZlIDogZXJyZXVyIGRlIHByb3RvY29sZSIKKworIzogYnVpbHRpbi9hcmNoaXZlLmM6NjgKK21zZ2lkICJnaXQgYXJjaGl2ZTogZXhwZWN0ZWQgYSBmbHVzaCIKK21zZ3N0ciAiZ2l0IGFyY2hpdmUgOiB2aWRhZ2UgYXR0ZW5kdSIKKworIzogYnVpbHRpbi9iaXNlY3QtLWhlbHBlci5jOjcKK21zZ2lkICJnaXQgYmlzZWN0LS1oZWxwZXIgLS1uZXh0LWFsbCBbLS1uby1jaGVja291dF0iCittc2dzdHIgImdpdCBiaXNlY3QgLS1oZWxwZXIgLS1uZXh0LWFsbCBbLS1uby1jaGVja291dF0iCisKKyM6IGJ1aWx0aW4vYmlzZWN0LS1oZWxwZXIuYzoxNworbXNnaWQgInBlcmZvcm0gJ2dpdCBiaXNlY3QgbmV4dCciCittc2dzdHIgImVmZmVjdHVlciAnZ2l0IGJpc2VjdCBuZXh0JyIKKworIzogYnVpbHRpbi9iaXNlY3QtLWhlbHBlci5jOjE5Cittc2dpZCAidXBkYXRlIEJJU0VDVF9IRUFEIGluc3RlYWQgb2YgY2hlY2tpbmcgb3V0IHRoZSBjdXJyZW50IGNvbW1pdCIKK21zZ3N0ciAibWV0dHJlIMOgIGpvdXIgQklTRUNUX0hFQUQgYXUgbGlldSBkJ2V4dHJhaXJlIGxlIGNvbW1pdCBhY3R1ZWwiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyNQorbXNnaWQgImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiCittc2dzdHIgImdpdCBibGFtZSBbb3B0aW9uc10gW29wdGlvbnMtZGUtcsOpdmlzaW9uXSBbcmV2XSBbLS1dIGZpY2hpZXIiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzozMAorbXNnaWQgIltyZXYtb3B0c10gYXJlIGRvY3VtZW50ZWQgaW4gZ2l0LXJldi1saXN0KDEpIgorbXNnc3RyICJbb3B0aW9ucy1kZS1yw6l2aXNpb25dIHNvbnQgZG9jdW1lbnTDqXMgZGFucyBnaXQtcmV2LWxpc3QoMSkiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU1Cittc2dpZCAiU2hvdyBibGFtZSBlbnRyaWVzIGFzIHdlIGZpbmQgdGhlbSwgaW5jcmVtZW50YWxseSIKK21zZ3N0ciAiTW9udHJlciBsZXMgZW50csOpZSBkZSBibMOibWUgYXUgZnVyIGV0IMOgIG1lc3VyZSBkZSBsZXVyIGTDqWNvdXZlcnRlLCBkZSBtYW5pw6hyZSBpbmNyw6ltZW50YWxlIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM1NgorbXNnaWQgIlNob3cgYmxhbmsgU0hBLTEgZm9yIGJvdW5kYXJ5IGNvbW1pdHMgKERlZmF1bHQ6IG9mZikiCittc2dzdHIgIk1vbnRyZXIgdW4gU0hBLTEgYmxhbmMgcG91ciBsZXMgY29tbWl0cyBkZSBsaW1pdGUgKETDqWZhdXQgOiBkw6lzYWN0aXbDqSkiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU3Cittc2dpZCAiRG8gbm90IHRyZWF0IHJvb3QgY29tbWl0cyBhcyBib3VuZGFyaWVzIChEZWZhdWx0OiBvZmYpIgorbXNnc3RyICJOZSBwYXMgdHJhaXRlciBsZXMgY29tbWl0cyByYWNpbmUgY29tbWUgZGVzIGxpbWl0ZXMgKETDqWZhdXQgOiBkw6lzYWN0aXbDqSkiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU4Cittc2dpZCAiU2hvdyB3b3JrIGNvc3Qgc3RhdGlzdGljcyIKK21zZ3N0ciAiTW9udHJlciBsZXMgc3RhdGlzdGlxdWVzIGRlIGNvw7t0IGQnYWN0aXZpdMOpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM1OQorbXNnaWQgIlNob3cgb3V0cHV0IHNjb3JlIGZvciBibGFtZSBlbnRyaWVzIgorbXNnc3RyICJNb250cmVyIGxlIHNjb3JlIGRlIHNvcnRpZSBwb3VyIGxlcyBlbnRyw6llcyBkZSBibMOibWUiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYwCittc2dpZCAiU2hvdyBvcmlnaW5hbCBmaWxlbmFtZSAoRGVmYXVsdDogYXV0bykiCittc2dzdHIgIk1vbnRyZXIgbGVzIG5vbXMgZGUgZmljaGllciBvcmlnaW5hdXggKETDqWZhdXQgOiBhdXRvKSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNjEKK21zZ2lkICJTaG93IG9yaWdpbmFsIGxpbmVudW1iZXIgKERlZmF1bHQ6IG9mZikiCittc2dzdHIgIk1vbnRyZXIgbGVzIG51bcOpcm9zIGRlIGxpZ25lcyBvcmlnaW5hdXggKETDqWZhdXQgOiBkw6lzYWN0aXbDqSkiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYyCittc2dpZCAiU2hvdyBpbiBhIGZvcm1hdCBkZXNpZ25lZCBmb3IgbWFjaGluZSBjb25zdW1wdGlvbiIKK21zZ3N0ciAiQWZmaWNoZXIgZGFucyB1biBmb3JtYXQgcHJvcGljZSDDoCBsYSBjb25zb21tYXRpb24gcGFyIG1hY2hpbmUiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYzCittc2dpZCAiU2hvdyBwb3JjZWxhaW4gZm9ybWF0IHdpdGggcGVyLWxpbmUgY29tbWl0IGluZm9ybWF0aW9uIgorbXNnc3RyICJBZmZpY2hlciBlbiBmb3JtYXQgcG9yY2VsYWluZSBhdmVjIGwnaW5mb3JtYXRpb24gZGUgY29tbWl0IHBhciBsaWduZSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNjQKK21zZ2lkICJVc2UgdGhlIHNhbWUgb3V0cHV0IG1vZGUgYXMgZ2l0LWFubm90YXRlIChEZWZhdWx0OiBvZmYpIgorbXNnc3RyICJVdGlsaXNlciBsZSBtw6ptZSBtb2RlIGRlIHNvcnRpZSBxdWUgZ2l0LWFubm90YXRlIChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM2NQorbXNnaWQgIlNob3cgcmF3IHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKK21zZ3N0ciAiQWZmaWNoZXIgbGVzIGhvcm9kYXRhZ2VzIGJydXRzIChEw6lmYXV0OiBkw6lzYWN0aXbDqSkiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY2Cittc2dpZCAiU2hvdyBsb25nIGNvbW1pdCBTSEExIChEZWZhdWx0OiBvZmYpIgorbXNnc3RyICJBZmZpY2hlciBsZXMgbG9uZ3MgU0hBMSBkZSBjb21taXRzIChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM2NworbXNnaWQgIlN1cHByZXNzIGF1dGhvciBuYW1lIGFuZCB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCittc2dzdHIgIlN1cHByaW1lciBsZSBub20gZGUgbCdhdXRldXIgZXQgbCdob3JvZGF0YWdlIChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM2OAorbXNnaWQgIlNob3cgYXV0aG9yIGVtYWlsIGluc3RlYWQgb2YgbmFtZSAoRGVmYXVsdDogb2ZmKSIKK21zZ3N0ciAiQWZmaWNoZXIgbCdlLW1haWwgZGUgbCdhdXRldXIgYXUgbGlldSBkdSBub20gKETDqWZhdXQgOiBkw6lzYWN0aXbDqSkiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY5Cittc2dpZCAiSWdub3JlIHdoaXRlc3BhY2UgZGlmZmVyZW5jZXMiCittc2dzdHIgIklnbm9yZXIgbGVzIGRpZmbDqXJlbmNlcyBkJ2VzcGFjZSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNzAKK21zZ2lkICJTcGVuZCBleHRyYSBjeWNsZXMgdG8gZmluZCBiZXR0ZXIgbWF0Y2giCittc2dzdHIgIkTDqXBlbnNlciBkZXMgY3ljbGVzIHN1cHBsw6ltZW50YWlyZXMgcG91ciB0cm91dmVyIHVuZSBtZWlsbGV1cmUgY29ycmVzcG9uZGFuY2UiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcxCittc2dpZCAiVXNlIHJldmlzaW9ucyBmcm9tIDxmaWxlPiBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2l0LXJldi1saXN0IgorbXNnc3RyICJVdGlsaXNlciBsZXMgcsOpdmlzaW9ucyBkdSBmaWNoaWVyIDxmaWNoaWVyPiBhdSBsaWV1IGQnYXBwZWxlciBnaXQtcmV2LWxpc3QiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcyCittc2dpZCAiVXNlIDxmaWxlPidzIGNvbnRlbnRzIGFzIHRoZSBmaW5hbCBpbWFnZSIKK21zZ3N0ciAiVXRpbGlzZXIgbGUgY29udGVudSBkZSA8ZmljaGllcj4gY29tbWUgaW1hZ2UgZmluYWxlIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM3MyBidWlsdGluL2JsYW1lLmM6MjM3NAorbXNnaWQgInNjb3JlIgorbXNnc3RyICJzY29yZSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNzMKK21zZ2lkICJGaW5kIGxpbmUgY29waWVzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgorbXNnc3RyICJUcm91dmVyIGxlcyBjb3BpZXMgZGUgbGlnbmUgZGFucyBldCBlbnRyZSBsZXMgZmljaGllcnMiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzc0Cittc2dpZCAiRmluZCBsaW5lIG1vdmVtZW50cyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKK21zZ3N0ciAiVHJvdXZlciBsZXMgbW91dmVtZW50cyBkZSBsaWduZSBkYW5zIGV0IGVudHJlIGxlcyBmaWNoaWVycyIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNzUKK21zZ2lkICJuLG0iCittc2dzdHIgIm4sbSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNzUKK21zZ2lkICJQcm9jZXNzIG9ubHkgbGluZSByYW5nZSBuLG0sIGNvdW50aW5nIGZyb20gMSIKK21zZ3N0ciAiVHJhaXRlciBzZXVsZW1lbnQgbCdpbnRlcnZhbGxlIGRlIGxpZ25lIG4sbSBlbiBjb21tZW7Dp2FudCBsZSBjb21wdGUgw6AgMSIKKworIzogYnVpbHRpbi9icmFuY2guYzoyNAorbXNnaWQgImdpdCBicmFuY2ggW29wdGlvbnNdIFstciB8IC1hXSBbLS1tZXJnZWQgfCAtLW5vLW1lcmdlZF0iCittc2dzdHIgImdpdCBicmFuY2ggW29wdGlvbnNdIFstciB8IC1hXSBbLS1tZXJnZWQgfCAtLW5vLW1lcmdlZF0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjUKK21zZ2lkICJnaXQgYnJhbmNoIFtvcHRpb25zXSBbLWxdIFstZl0gPGJyYW5jaG5hbWU+IFs8c3RhcnQtcG9pbnQ+XSIKK21zZ3N0ciAiZ2l0IGJyYW5jaCBbb3B0aW9uc10gWy1sXSBbLWZdIDxub21kZWJyYW5jaD4gWzxwb2ludC1kZS1kw6lwYXJ0Pl0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjYKK21zZ2lkICJnaXQgYnJhbmNoIFtvcHRpb25zXSBbLXJdICgtZCB8IC1EKSA8YnJhbmNobmFtZT4uLi4iCittc2dzdHIgImdpdCBicmFuY2ggW29wdGlvbnNdIFstcl0gKC1kIHwgLUQpIDxub21kZWJyYW5jaGU+Li4uIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjI3Cittc2dpZCAiZ2l0IGJyYW5jaCBbb3B0aW9uc10gKC1tIHwgLU0pIFs8b2xkYnJhbmNoPl0gPG5ld2JyYW5jaD4iCittc2dzdHIgImdpdCBicmFuY2ggW29wdGlvbnNdICgtbSB8IC1NKSBbPGFuY2llbm5lYnJhbmNoZT5dIDxub3V2ZWxsZWJyYW5jaGU+IgorCisjOiBidWlsdGluL2JyYW5jaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiZGVsZXRpbmcgYnJhbmNoICclcycgdGhhdCBoYXMgYmVlbiBtZXJnZWQgdG9cbiIKKyIgICAgICAgICAnJXMnLCBidXQgbm90IHlldCBtZXJnZWQgdG8gSEVBRC4iCittc2dzdHIgIiIKKyJzdXBwcmVzc2lvbiBkZSBsYSBicmFuY2hlICclcycgcXVpIGEgw6l0w6kgZnVzaW9ubsOpZSBkYW5zXG4iCisiICAgICAgICAgJyVzJywgbWFpcyBwYXMgZGFucyBIRUFELiIKKworIzogYnVpbHRpbi9icmFuY2guYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5vdCBkZWxldGluZyBicmFuY2ggJyVzJyB0aGF0IGlzIG5vdCB5ZXQgbWVyZ2VkIHRvXG4iCisiICAgICAgICAgJyVzJywgZXZlbiB0aG91Z2ggaXQgaXMgbWVyZ2VkIHRvIEhFQUQuIgorbXNnc3RyICIiCisiYnJhbmNoZSAnJXMnIG5vbiBzdXBwcmltw6llIGNhciBlbGxlIG4nYSBwYXMgw6l0w6kgZnVzaW9ubsOpZSBkYW5zXG4iCisiICAgICAgICAgJyVzJywgbcOqbWUgc2kgZWxsZSBlc3QgZnVzaW9ubsOpZSBkYW5zIEhFQUQuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb29rIHVwIGNvbW1pdCBvYmplY3QgZm9yICclcyciCittc2dzdHIgIkltcG9zc2libGUgZGUgcmVjaGVyY2hlciBsJ29iamV0IGNvbW1pdCBwb3VyICclcyciCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgYnJhbmNoICclcycgaXMgbm90IGZ1bGx5IG1lcmdlZC5cbiIKKyJJZiB5b3UgYXJlIHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGl0LCBydW4gJ2dpdCBicmFuY2ggLUQgJXMnLiIKK21zZ3N0ciAiIgorIkxhIGJyYW5jaGUgJyVzJyBuJ2VzdCBwYXMgdG90YWxlbWVudCBmdXNpb25uw6llLlxuIgorIlNpIHZvdXMgw6p0ZXMgc3VyIHF1ZSB2b3VzIHZvdWxleiBsYSBzdXBwcmltZXIsIGxhbmNleiAnZ2l0IGJyYW5jaCAtRCAlcycuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjE4NQorbXNnaWQgIlVwZGF0ZSBvZiBjb25maWctZmlsZSBmYWlsZWQiCittc2dzdHIgIsOJY2hlYyBkZSBsYSBtaXNlIMOgIGpvdXIgZHUgZmljaGllciBkZSBjb25maWciCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjEzCittc2dpZCAiY2Fubm90IHVzZSAtYSB3aXRoIC1kIgorbXNnc3RyICJpbXBvc3NpYmxlIGQndXRpbGlzZXIgLWEgYXZlYyAtZCIKKworIzogYnVpbHRpbi9icmFuY2guYzoyMTkKK21zZ2lkICJDb3VsZG4ndCBsb29rIHVwIGNvbW1pdCBvYmplY3QgZm9yIEhFQUQiCittc2dzdHIgIkltcG9zc2libGUgZGUgcmVjaGVyY2hlciBsJ29iamV0IGNvbW1pdCBwb3VyIEhFQUQiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBkZWxldGUgdGhlIGJyYW5jaCAnJXMnIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5IG9uLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgbGEgYnJhbmNoZSAnJXMnIHN1ciBsYXF1ZWxsZSB2b3VzIMOqdGVzLiIKKworIzogYnVpbHRpbi9icmFuY2guYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3RlIGJyYW5jaCAnJXMnIG5vdCBmb3VuZC4iCittc2dzdHIgImJyYW5jaGUgZGlzdGFudGUgJXMnIG5vbiB0cm91dsOpZS4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgImJyYW5jaCAnJXMnIG5vdCBmb3VuZC4iCittc2dzdHIgImJyYW5jaGUgJyVzJyBub24gdHJvdXbDqWUuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjI1NQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBkZWxldGluZyByZW1vdGUgYnJhbmNoICclcyciCittc2dzdHIgIkVycmV1ciBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlIGxhIGJyYW5jaGUgZGlzdGFudGUgJyVzJyIKKworIzogYnVpbHRpbi9icmFuY2guYzoyNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZGVsZXRpbmcgYnJhbmNoICclcyciCittc2dzdHIgIkVycmV1ciBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlIGxhIGJyYW5jaGUgJyVzJyIKKworIzogYnVpbHRpbi9icmFuY2guYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGVsZXRlZCByZW1vdGUgYnJhbmNoICVzICh3YXMgJXMpLlxuIgorbXNnc3RyICJCcmFuY2hlIGRpc3RhbnRlICVzIHN1cHByaW3DqWUgKHByw6ljw6lkZW1tZW50ICVzKS5cbiIKKworIzogYnVpbHRpbi9icmFuY2guYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGVsZXRlZCBicmFuY2ggJXMgKHdhcyAlcykuXG4iCittc2dzdHIgIkJyYW5jaGUgJXMgc3VwcHJpbcOpZSAocHLDqWPDqWRlbW1lbnQgJXMpLlxuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJicmFuY2ggJyVzJyBkb2VzIG5vdCBwb2ludCBhdCBhIGNvbW1pdCIKK21zZ3N0ciAibGEgYnJhbmNoZSAnJXMnIG5lIHBvaW50ZSBwYXMgc3VyIHVuIGNvbW1pdCIKKworIzogYnVpbHRpbi9icmFuY2guYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyVzOiBiZWhpbmQgJWRdIgorbXNnc3RyICJbJXM6IGVuIHJldGFyZCBkZSAlZF0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIltiZWhpbmQgJWRdIgorbXNnc3RyICJbZW4gcmV0YXJkIGRlICVkXSIKKworIzogYnVpbHRpbi9icmFuY2guYzo0NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyVzOiBhaGVhZCAlZF0iCittc2dzdHIgIlslcyA6IGVuIGF2YW5jZSBkZSAlZF0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlthaGVhZCAlZF0iCittc2dzdHIgIltlbiBhdmFuY2UgZGUgJWRdIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJbJXM6IGFoZWFkICVkLCBiZWhpbmQgJWRdIgorbXNnc3RyICJbJXMgOiBlbiBhdmFuY2UgZGUgJWQsIGVuIHJldGFyZCBkZSAlZF0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY3CisjLCBjLWZvcm1hdAorbXNnaWQgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIKK21zZ3N0ciAiW2VuIGF2YW5jZSBkZSAlZCwgZW4gcmV0YXJkIGRlICVkXSIKKworIzogYnVpbHRpbi9icmFuY2guYzo0OTAKK21zZ2lkICIgKioqKiBpbnZhbGlkIHJlZiAqKioqIgorbXNnc3RyICIgKioqKiByw6lmw6lyZW5jZSBpbnZhbGlkZSAqKioqIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjU4MgorIywgYy1mb3JtYXQKK21zZ2lkICIobm8gYnJhbmNoLCByZWJhc2luZyAlcykiCittc2dzdHIgIihhdWN1bmUgYnJhbmNoZSwgcmViYXNhZ2UgZGUgJXMpIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjU4NQorIywgYy1mb3JtYXQKK21zZ2lkICIobm8gYnJhbmNoLCBiaXNlY3Qgc3RhcnRlZCBvbiAlcykiCittc2dzdHIgIihhdWN1bmUgYnJhbmNoZSwgYmlzZWN0IGEgZMOpbWFycsOpIHN1ciAlcykiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIihkZXRhY2hlZCBmcm9tICVzKSIKK21zZ3N0ciAiKGTDqXRhY2jDqSBkZSAlcykiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTkxCittc2dpZCAiKG5vIGJyYW5jaCkiCittc2dzdHIgIihhdWN1bmUgYnJhbmNoZSkiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjM3CisjLCBjLWZvcm1hdAorbXNnaWQgIm9iamVjdCAnJXMnIGRvZXMgbm90IHBvaW50IHRvIGEgY29tbWl0IgorbXNnc3RyICJsJ29iamV0ICclcycgbmUgcG9pbnRlIHBhcyBzdXIgdW4gY29tbWl0IgorCisjOiBidWlsdGluL2JyYW5jaC5jOjY2OQorbXNnaWQgInNvbWUgcmVmcyBjb3VsZCBub3QgYmUgcmVhZCIKK21zZ3N0ciAiZGVzIHLDqWbDqXJlbmNlcyBuJ29udCBwYXMgcHUgw6p0cmUgbHVlcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo2ODIKK21zZ2lkICJjYW5ub3QgcmVuYW1lIHRoZSBjdXJyZW50IGJyYW5jaCB3aGlsZSBub3Qgb24gYW55LiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSByZW5vbW1lciBsYSBicmFuY2hlIGFjdHVlbGxlLCBpbCBuJ3kgZW4gYSBwYXMuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjY5MgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGJyYW5jaCBuYW1lOiAnJXMnIgorbXNnc3RyICJOb20gZGUgYnJhbmNoZSBpbnZhbGlkZSA6ICclcyciCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzA3Cittc2dpZCAiQnJhbmNoIHJlbmFtZSBmYWlsZWQiCittc2dzdHIgIkVjaGVjIGRlIHJlbm9tbWFnZSBkZSBsYSBicmFuY2hlIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjcxMQorIywgYy1mb3JtYXQKK21zZ2lkICJSZW5hbWVkIGEgbWlzbmFtZWQgYnJhbmNoICclcycgYXdheSIKK21zZ3N0ciAiUmVub21tYWdlIGQndW4gYnJhbmNoZSBtYWwgbm9tbcOpZSAnJXMnIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjcxNQorIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggcmVuYW1lZCB0byAlcywgYnV0IEhFQUQgaXMgbm90IHVwZGF0ZWQhIgorbXNnc3RyICJMYSBicmFuY2hlIGEgw6l0w6kgcmVub21tw6llIGVuICVzLCBtYWlzIEhFQUQgbidlc3QgcGFzIG1pc2Ugw6Agam91ciAhIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjcyMgorbXNnaWQgIkJyYW5jaCBpcyByZW5hbWVkLCBidXQgdXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKK21zZ3N0ciAiTGEgYnJhbmNoZSBlc3QgcmVub21tw6llLCBtYWlzIGxhIG1pc2Ugw6Agam91ciBkdSBmaWNoaWVyIGRlIGNvbmZpZyBhIMOpY2hvdcOpIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjczNworIywgYy1mb3JtYXQKK21zZ2lkICJtYWxmb3JtZWQgb2JqZWN0IG5hbWUgJXMiCittc2dzdHIgIm5vbSBkJ29iamV0IG1hbGZvcm3DqSAlcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo3NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IHdyaXRlIGJyYW5jaCBkZXNjcmlwdGlvbiB0ZW1wbGF0ZTogJXMiCittc2dzdHIgImltcG9zc2libGUgZCfDqWNyaXJlIGxlIG1vZMOobGUgZGUgZGVzY3JpcHRpb24gZGUgYnJhbmNoZSA6ICVzIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjc5MQorbXNnaWQgIkdlbmVyaWMgb3B0aW9ucyIKK21zZ3N0ciAiT3B0aW9ucyBnw6luw6lyaXF1ZXMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkzCittc2dpZCAic2hvdyBoYXNoIGFuZCBzdWJqZWN0LCBnaXZlIHR3aWNlIGZvciB1cHN0cmVhbSBicmFuY2giCittc2dzdHIgImFmZmljaGVyIGxlIGhhY2hhZ2UgZXQgbGUgc3VqZXQsIGRvdWJsw6kgcG91ciBsYSBicmFuY2hlIGFtb250IgorCisjOiBidWlsdGluL2JyYW5jaC5jOjc5NAorbXNnaWQgInN1cHByZXNzIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMiCittc2dzdHIgInN1cHByaW1lciBsZXMgbWVzc2FnZXMgZCdpbmZvcm1hdGlvbiIKKworIzogYnVpbHRpbi9icmFuY2guYzo3OTUKK21zZ2lkICJzZXQgdXAgdHJhY2tpbmcgbW9kZSAoc2VlIGdpdC1wdWxsKDEpKSIKK21zZ3N0ciAicsOpZ2xlciBsZSBtb2RlIGRlIHN1aXZpICh2b2lyIGdpdC1wdWxsKDEpKSIKKworIzogYnVpbHRpbi9icmFuY2guYzo3OTcKK21zZ2lkICJjaGFuZ2UgdXBzdHJlYW0gaW5mbyIKK21zZ3N0ciAibW9kaWZpZXIgbCdpbmZvcm1hdGlvbiBhbW9udCIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MDEKK21zZ2lkICJ1c2UgY29sb3JlZCBvdXRwdXQiCittc2dzdHIgInV0aWxpc2VyIGxhIGNvbG9yYXRpb24gZGFucyBsYSBzb3J0aWUiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAyCittc2dpZCAiYWN0IG9uIHJlbW90ZS10cmFja2luZyBicmFuY2hlcyIKK21zZ3N0ciAiYWdpciBzdXIgbGVzIGJyYW5jaGVzIGRlIHN1aXZpIGRpc3RhbnRlcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MDUgYnVpbHRpbi9icmFuY2guYzo4MTEgYnVpbHRpbi9icmFuY2guYzo4MzIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OCBidWlsdGluL2NvbW1pdC5jOjEzNjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MCBidWlsdGluL2NvbW1pdC5jOjEzNzEgYnVpbHRpbi90YWcuYzo0NjgKK21zZ2lkICJjb21taXQiCittc2dzdHIgInZhbGlkZXIiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA2IGJ1aWx0aW4vYnJhbmNoLmM6ODEyCittc2dpZCAicHJpbnQgb25seSBicmFuY2hlcyB0aGF0IGNvbnRhaW4gdGhlIGNvbW1pdCIKK21zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBicmFuY2hlcyBxdWkgY29udGllbm5lbnQgbGUgY29tbWl0IgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgxOAorbXNnaWQgIlNwZWNpZmljIGdpdC1icmFuY2ggYWN0aW9uczoiCittc2dzdHIgIkFjdGlvbnMgc3DDqWNpZmlxdWVzIMOgIGdpdC1icmFuY2ggOiIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MTkKK21zZ2lkICJsaXN0IGJvdGggcmVtb3RlLXRyYWNraW5nIGFuZCBsb2NhbCBicmFuY2hlcyIKK21zZ3N0ciAiYWZmaWNoZXIgw6AgbGEgZm9pcyBsZXMgYnJhbmNoZXMgZGUgc3VpdmkgZXQgbGVzIGJyYW5jaGVzIGxvY2FsZXMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIxCittc2dpZCAiZGVsZXRlIGZ1bGx5IG1lcmdlZCBicmFuY2giCittc2dzdHIgInN1cHByaW1lciB1bmUgYnJhbmNoZSB0b3RhbGVtZW50IGZ1c2lvbm7DqWUiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIyCittc2dpZCAiZGVsZXRlIGJyYW5jaCAoZXZlbiBpZiBub3QgbWVyZ2VkKSIKK21zZ3N0ciAic3VwcHJpbWVyIHVuZSBicmFuY2hlIChtw6ptZSBub24gZnVzaW9ubsOpZSkiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIzCittc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2ggYW5kIGl0cyByZWZsb2ciCittc2dzdHIgImTDqXBsYWNlci9yZW5vbW1lciB1bmUgYnJhbmNoZSBldCBzb24gcmVmbG9nIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgyNAorbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoLCBldmVuIGlmIHRhcmdldCBleGlzdHMiCittc2dzdHIgImTDqXBsYWNlci9yZW5vbW1lciB1bmUgYnJhbmNoZSwgbcOqbWUgc2kgbGEgY2libGUgZXhpc3RlIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgyNQorbXNnaWQgImxpc3QgYnJhbmNoIG5hbWVzIgorbXNnc3RyICJhZmZpY2hlciBsZXMgbm9tcyBkZXMgYnJhbmNoZXMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI2Cittc2dpZCAiY3JlYXRlIHRoZSBicmFuY2gncyByZWZsb2ciCittc2dzdHIgImNyw6llciBsZSByZWZsb2cgZGUgbGEgYnJhbmNoZSIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MjgKK21zZ2lkICJlZGl0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGJyYW5jaCIKK21zZ3N0ciAiw6lkaXRlciBsYSBkZXNjcmlwdGlvbiBkZSBsYSBicmFuY2hlIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgyOQorbXNnaWQgImZvcmNlIGNyZWF0aW9uICh3aGVuIGFscmVhZHkgZXhpc3RzKSIKK21zZ3N0ciAiZm9yY2VyIGxhIGNyw6lhdGlvbiAobcOqbWUgc2kgbGEgY2libGUgZXhpc3RlKSIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MzIKK21zZ2lkICJwcmludCBvbmx5IG5vdCBtZXJnZWQgYnJhbmNoZXMiCittc2dzdHIgImFmZmljaGVyIHNldWxlbWVudCBsZXMgYnJhbmNoZXMgbm9uIGZ1c2lvbm7DqWVzIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgzOAorbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgorbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGVzIGJyYW5jaGVzIGZ1c2lvbm7DqWVzIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjg0MgorbXNnaWQgImxpc3QgYnJhbmNoZXMgaW4gY29sdW1ucyIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGJyYW5jaGVzIGVuIGNvbG9ubmVzIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjg1NQorbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlIEhFQUQgYXMgYSB2YWxpZCByZWYuIgorbXNnc3RyICLDiWNoZWMgZGUgcsOpc29sdXRpb24gZGUgSEVBRCBjb21tZSByw6lmw6lyZW5jZSB2YWxpZGUuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjg2MCBidWlsdGluL2Nsb25lLmM6NjE5Cittc2dpZCAiSEVBRCBub3QgZm91bmQgYmVsb3cgcmVmcy9oZWFkcyEiCittc2dzdHIgIkhFQUQgbm9uIHRyb3V2w6llIHNvdXMgcmVmcy9oZWFkcyAhIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjg4MworbXNnaWQgIi0tY29sdW1uIGFuZCAtLXZlcmJvc2UgYXJlIGluY29tcGF0aWJsZSIKK21zZ3N0ciAiLS1jb2x1bW4gZXQgLS12ZXJib3NlIHNvbnQgaW5jb21wYXRpYmxlcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo4ODkgYnVpbHRpbi9icmFuY2guYzo5MjgKK21zZ2lkICJicmFuY2ggbmFtZSByZXF1aXJlZCIKK21zZ3N0ciAibGUgbm9tIGRlIGJyYW5jaGUgZXN0IHJlcXVpcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo5MDQKK21zZ2lkICJDYW5ub3QgZ2l2ZSBkZXNjcmlwdGlvbiB0byBkZXRhY2hlZCBIRUFEIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGTDqWNyaXJlIHVuZSBIRUFEIGTDqXRhY2jDqWUiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA5Cittc2dpZCAiY2Fubm90IGVkaXQgZGVzY3JpcHRpb24gb2YgbW9yZSB0aGFuIG9uZSBicmFuY2giCittc2dzdHIgImltcG9zc2libGUgZCfDqWRpdGVyIGxhIGRlc2NyaXB0aW9uIGRlIHBsdXMgZCd1bmUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9icmFuY2guYzo5MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gY29tbWl0IG9uIGJyYW5jaCAnJXMnIHlldC4iCittc2dzdHIgIkF1Y3VuIGNvbW1pdCBzdXIgbGEgYnJhbmNoZSAnJXMnLiIKKworIzogYnVpbHRpbi9icmFuY2guYzo5MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gYnJhbmNoIG5hbWVkICclcycuIgorbXNnc3RyICJBdWN1bmUgYnJhbmNoZSBub21tw6llICclcycuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjkzNAorbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIGZvciBhIHJlbmFtZSBvcGVyYXRpb24iCittc2dzdHIgInRyb3AgZGUgYnJhbmNoZXMgcG91ciB1bmUgb3DDqXJhdGlvbiBkZSByZW5vbW1hZ2UiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTM5Cittc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gc2V0IG5ldyB1cHN0cmVhbSIKK21zZ3N0ciAidHJvcCBkZSBicmFuY2hlcyBwb3VyIHNww6ljaWZpZXIgdW5lIGJyYW5jaGUgYW1vbnQiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJjb3VsZCBub3Qgc2V0IHVwc3RyZWFtIG9mIEhFQUQgdG8gJXMgd2hlbiBpdCBkb2VzIG5vdCBwb2ludCB0byBhbnkgYnJhbmNoLiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBzcMOpY2lmaWVyIHVuZSBicmFuY2hlIGFtb250IGRlIEhFQUQgcGFyICVzIHF1aSBuZSBwb2ludGUgc3VyIGF1Y3VuZSBicmFuY2hlLiIKKworIzogYnVpbHRpbi9icmFuY2guYzo5NDYgYnVpbHRpbi9icmFuY2guYzo5NjggYnVpbHRpbi9icmFuY2guYzo5OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gc3VjaCBicmFuY2ggJyVzJyIKK21zZ3N0ciAicGFzIGRlIGJyYW5jaGUgJyVzJyIKKworIzogYnVpbHRpbi9icmFuY2guYzo5NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnJhbmNoICclcycgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgImxhIGJyYW5jaGUgJyVzJyBuJ2V4aXN0ZSBwYXMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTYyCittc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gdW5zZXQgdXBzdHJlYW0iCittc2dzdHIgInRyb3AgZGUgYnJhbmNoZXMgcG91ciBkw6lzYWN0aXZlciB1biBhbW9udCIKKworIzogYnVpbHRpbi9icmFuY2guYzo5NjYKK21zZ2lkICJjb3VsZCBub3QgdW5zZXQgdXBzdHJlYW0gb2YgSEVBRCB3aGVuIGl0IGRvZXMgbm90IHBvaW50IHRvIGFueSBicmFuY2guIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGTDqXNhY3RpdmVyIHVuZSBicmFuY2hlIGFtb250IGRlIEhFQUQgcXVhbmQgZWxsZSBuZSBwb2ludGUgc3VyIGF1Y3VuZSBicmFuY2hlLiIKKworIzogYnVpbHRpbi9icmFuY2guYzo5NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICclcycgaGFzIG5vIHVwc3RyZWFtIGluZm9ybWF0aW9uIgorbXNnc3RyICJMYSBicmFuY2hlICclcycgbidhIGF1Y3VuZSBpbmZvcm1hdGlvbiBkZSBicmFuY2hlIGFtb250IgorCisjOiBidWlsdGluL2JyYW5jaC5jOjk4NworbXNnaWQgIml0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gY3JlYXRlICdIRUFEJyBtYW51YWxseSIKK21zZ3N0ciAiY3LDqWVyIG1hbnVlbGxlbWVudCAnSEVBRCcgbidhIGF1Y3VuIHNlbnMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTkzCittc2dpZCAiLWEgYW5kIC1yIG9wdGlvbnMgdG8gJ2dpdCBicmFuY2gnIGRvIG5vdCBtYWtlIHNlbnNlIHdpdGggYSBicmFuY2ggbmFtZSIKK21zZ3N0ciAibGVzIG9wdGlvbnMgLWEgZXQgLXIgZGUgJ2dpdCBicmFuY2gnIG4nb250IHBhcyBkZSBzZW5zIGF2ZWMgdW4gbm9tIGRlIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgLS1zZXQtdXBzdHJlYW0gZmxhZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIENvbnNpZGVyIHVzaW5nIC0tIgorInRyYWNrIG9yIC0tc2V0LXVwc3RyZWFtLXRvXG4iCittc2dzdHIgImwnb3B0aW9uIC0tc2V0LXVwc3RyZWFtIGVzdCBvYnNvbMOodGUgZXQgdmEgZGlzcGFyYcOudHJlLiBVdGlsaXNleiBwbHV0w7R0IC0tdHJhY2sgb3UgLS1zZXQtdXBzdHJlYW0tdG9cbiIKKworIzogYnVpbHRpbi9icmFuY2guYzoxMDEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJJZiB5b3Ugd2FudGVkIHRvIG1ha2UgJyVzJyB0cmFjayAnJXMnLCBkbyB0aGlzOlxuIgorIlxuIgorbXNnc3RyICJcbiIKKyJTaSB2b3VzIHZvdWxpZXogcXVlICclcycgc3VpdmUgJyVzJywgZmHDrnRlcyBjZWNpIDpcbiIKKyJcbiIKKworIzogYnVpbHRpbi9icmFuY2guYzoxMDE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICBnaXQgYnJhbmNoIC1kICVzXG4iCittc2dzdHIgIiAgICBnaXQgYnJhbmNoIC1kICVzXG4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgZ2l0IGJyYW5jaCAtLXNldC11cHN0cmVhbS10byAlc1xuIgorbXNnc3RyICIgICAgZ2l0IGJyYW5jaCAtc2V0LXVwc3RyZWFtLXRvICVzXG4iCisKKyM6IGJ1aWx0aW4vYnVuZGxlLmM6NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgb2theVxuIgorbXNnc3RyICIlcyBlc3QgY29ycmVjdFxuIgorCisjOiBidWlsdGluL2J1bmRsZS5jOjU2Cittc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gY3JlYXRlIGEgYnVuZGxlLiIKK21zZ3N0ciAiTGEgY3LDqWF0aW9uIGQndW4gY29saXMgcmVxdWllcnQgdW4gZMOpcMO0dC4iCisKKyM6IGJ1aWx0aW4vYnVuZGxlLmM6NjAKK21zZ2lkICJOZWVkIGEgcmVwb3NpdG9yeSB0byB1bmJ1bmRsZS4iCittc2dzdHIgIkxlIGTDqXBhcXVldGFnZSBkJ3VuIGNvbGlzIHJlcXVpZXJ0IHVuIGTDqXDDtHQuIgorCisjOiBidWlsdGluL2NhdC1maWxlLmM6MTc2Cittc2dpZCAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw8dHlwZT58LS10ZXh0Y29udikgPG9iamVjdD4iCittc2dzdHIgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PHR5cGU+fC0tdGV4dGNvbnYpIDxvYmpldD4iCisKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxNzcKK21zZ2lkICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA8bGlzdF9vZl9vYmplY3RzPiIKK21zZ3N0ciAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPGxpc3RlX2Rfb2JqZXRzPiIKKworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE5NQorbXNnaWQgIjx0eXBlPiBjYW4gYmUgb25lIG9mOiBibG9iLCB0cmVlLCBjb21taXQsIHRhZyIKK21zZ3N0ciAiPHR5cGU+IHBldXQgw6p0cmUgOiBibG9iLCB0cmVlLCBjb21taXQgb3UgdGFnIgorCisjOiBidWlsdGluL2NhdC1maWxlLmM6MTk2Cittc2dpZCAic2hvdyBvYmplY3QgdHlwZSIKK21zZ3N0ciAiYWZmaWNoZXIgbGUgdHlwZSBkZSBsJ29iamV0IgorCisjOiBidWlsdGluL2NhdC1maWxlLmM6MTk3Cittc2dpZCAic2hvdyBvYmplY3Qgc2l6ZSIKK21zZ3N0ciAiYWZmaWNoZXIgbGEgdGFpbGxlIGRlIGwnb2JqZXQiCisKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTkKK21zZ2lkICJleGl0IHdpdGggemVybyB3aGVuIHRoZXJlJ3Mgbm8gZXJyb3IiCittc2dzdHIgInNvcnRpciBhdmVjIHVuIGNvZGUgZCdlcnJldXIgbnVsIHF1YW5kIGlsIG4neSBhIGF1Y3VuZSBlcnJldXIiCisKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDAKK21zZ2lkICJwcmV0dHktcHJpbnQgb2JqZWN0J3MgY29udGVudCIKK21zZ3N0ciAiYWZmaWNoZXIgYXZlYyBtaXNlIGVuIGZvcm1lIGxlIGNvbnRlbnUgZGUgbCdvYmpldCIKKworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwMgorbXNnaWQgImZvciBibG9iIG9iamVjdHMsIHJ1biB0ZXh0Y29udiBvbiBvYmplY3QncyBjb250ZW50IgorbXNnc3RyICJwb3VyIGxlcyBvYmpldHMgYmxvYiwgbGFuY2VyIHRleHRjb252IHN1ciBsZSBjb250ZW51IGRlIGwnb2JqZXQiCisKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDQKK21zZ2lkICJzaG93IGluZm8gYW5kIGNvbnRlbnQgb2Ygb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCittc2dzdHIgImFmZmljaGVyIGwnaW5mb3JtYXRpb24gZXQgbGUgY29udGVudSBkZXMgb2JqZXRzIHBhc3PDqXMgZW4gZW50csOpZSBzdGFuZGFyZCIKKworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwNworbXNnaWQgInNob3cgaW5mbyBhYm91dCBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKK21zZ3N0ciAiYWZmaWNoZXIgbCdpbmZvcm1hdGlvbiBkZXMgb2JqZXRzIHBhc3PDqXMgZW4gZW50csOpZSBzdGFuZGFyZCIKKworIzogYnVpbHRpbi9jaGVjay1hdHRyLmM6MTEKK21zZ2lkICJnaXQgY2hlY2stYXR0ciBbLWEgfCAtLWFsbCB8IGF0dHIuLi5dIFstLV0gcGF0aG5hbWUuLi4iCittc2dzdHIgImdpdCBjaGVjay1hdHRyIFstYSB8IC0tYWxsIHwgYXR0ci4uLl0gWy0tXSBjaGVtaW4uLi4iCisKKyM6IGJ1aWx0aW4vY2hlY2stYXR0ci5jOjEyCittc2dpZCAiZ2l0IGNoZWNrLWF0dHIgLS1zdGRpbiBbLXpdIFstYSB8IC0tYWxsIHwgYXR0ci4uLl0gPCA8bGlzdC1vZi1wYXRocz4iCittc2dzdHIgImdpdCBjaGVjay1hdHRyIC0tc3RkaW4gWy16XSBbLWEgfCAtLWFsbCB8IGF0dHIuLi5dIDwgPGxpc3RlLWRlLWNoZW1pbnM+IgorCisjOiBidWlsdGluL2NoZWNrLWF0dHIuYzoxOQorbXNnaWQgInJlcG9ydCBhbGwgYXR0cmlidXRlcyBzZXQgb24gZmlsZSIKK21zZ3N0ciAiYWZmaWNoZXIgdG91cyBsZXMgYXR0cmlidXRzIGFzc29jacOpcyBhdSBmaWNoaWVyIgorCisjOiBidWlsdGluL2NoZWNrLWF0dHIuYzoyMAorbXNnaWQgInVzZSAuZ2l0YXR0cmlidXRlcyBvbmx5IGZyb20gdGhlIGluZGV4IgorbXNnc3RyICJ1dGlsaXNlciAuZ2l0YXR0cmlidXRlcyBzZXVsZW1lbnQgZGVwdWlzIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vY2hlY2stYXR0ci5jOjIxIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MjIgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc1Cittc2dpZCAicmVhZCBmaWxlIG5hbWVzIGZyb20gc3RkaW4iCittc2dzdHIgImxpcmUgbGVzIG5vbXMgZGUgZmljaGllciBkZXB1aXMgc3RkaW4iCisKKyM6IGJ1aWx0aW4vY2hlY2stYXR0ci5jOjIzIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MjQKK21zZ2lkICJpbnB1dCBwYXRocyBhcmUgdGVybWluYXRlZCBieSBhIG51bGwgY2hhcmFjdGVyIgorbXNnc3RyICJsZXMgY2hlbWlucyBlbiBlbnRyw6llIHNvbnQgdGVybWluw6lzIHBhciBsZSBjYXJhY3TDqHJlIG51bCIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA0NCBidWlsdGluL2djLmM6MTc3Cittc2dpZCAic3VwcHJlc3MgcHJvZ3Jlc3MgcmVwb3J0aW5nIgorbXNnc3RyICJzdXBwcmltZXIgbCfDqXRhdCBkJ2F2YW5jZW1lbnQiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ2Cittc2dpZCAiY2Fubm90IHNwZWNpZnkgcGF0aG5hbWVzIHdpdGggLS1zdGRpbiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBzcMOpY2lmaWVyIGxlcyBjaGVtaW5zIGF2ZWMgLS1zdGRpbiIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDkKK21zZ2lkICIteiBvbmx5IG1ha2VzIHNlbnNlIHdpdGggLS1zdGRpbiIKK21zZ3N0ciAiLXogbidhIGRlIHNlbnMgcXUnYXZlYyBsJ29wdGlvbiAtLXN0ZGluIgorCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MQorbXNnaWQgIm5vIHBhdGggc3BlY2lmaWVkIgorbXNnc3RyICJhdWN1biBjaGVtaW4gc3DDqWNpZmnDqSIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTUKK21zZ2lkICItLXF1aWV0IGlzIG9ubHkgdmFsaWQgd2l0aCBhIHNpbmdsZSBwYXRobmFtZSIKK21zZ3N0ciAiLS1xdWlldCBuJ2VzdCB2YWxpZGUgcXUnYXZlYyB1biBzZXVsIGNoZW1pbiIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTcKK21zZ2lkICJjYW5ub3QgaGF2ZSBib3RoIC0tcXVpZXQgYW5kIC0tdmVyYm9zZSIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2F2b2lyIC0tcXVpZXQgZXQgLS12ZXJib3NlIgorCisjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTI2Cittc2dpZCAiZ2l0IGNoZWNrb3V0LWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgorbXNnc3RyICJnaXQgY2hlY2tvdXQtaW5kZXggW29wdGlvbnNdIFstLV0gWzxmaWNoaWVyPi4uLl0iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxODcKK21zZ2lkICJjaGVjayBvdXQgYWxsIGZpbGVzIGluIHRoZSBpbmRleCIKK21zZ3N0ciAiZXh0cmFpcmUgdG91cyBsZXMgZmljaGllcnMgcHLDqXNlbnRzIGRhbnMgbCdpbmRleCIKKworIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE4OAorbXNnaWQgImZvcmNlIG92ZXJ3cml0ZSBvZiBleGlzdGluZyBmaWxlcyIKK21zZ3N0ciAiZm9yY2VyIGwnw6ljcmFzZW1lbnQgZGVzIGZpY2hpZXJzIGV4aXN0YW50cyIKKworIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5MAorbXNnaWQgIm5vIHdhcm5pbmcgZm9yIGV4aXN0aW5nIGZpbGVzIGFuZCBmaWxlcyBub3QgaW4gaW5kZXgiCittc2dzdHIgInBhcyBkJ2F2ZXJ0aXNzZW1lbnQgcG91ciBsZXMgZmljaGllcnMgZXhpc3RhbnRzIGV0IGxlcyBmaWNoaWVycyBhYnNlbnRzIGRlIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTIKK21zZ2lkICJkb24ndCBjaGVja291dCBuZXcgZmlsZXMiCittc2dzdHIgIm5lIHBhcyBleHRyYWlyZSBsZXMgbm91dmVhdXggZmljaGllcnMiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTQKK21zZ2lkICJ1cGRhdGUgc3RhdCBpbmZvcm1hdGlvbiBpbiB0aGUgaW5kZXggZmlsZSIKK21zZ3N0ciAibWV0dHJlIMOgIGpvdXIgbCdpbmZvcm1hdGlvbiBkZSBzdGF0IGRhbnMgbGUgZmljaGllciBkJ2luZGV4IgorCisjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MjAwCittc2dpZCAicmVhZCBsaXN0IG9mIHBhdGhzIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgorbXNnc3RyICJsaXJlIGxhIGxpc3RlIGRlcyBjaGVtaW5zIGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoyMDIKK21zZ2lkICJ3cml0ZSB0aGUgY29udGVudCB0byB0ZW1wb3JhcnkgZmlsZXMiCittc2dzdHIgIsOpY3JpcmUgbGUgY29udGVudSBkYW5zIGRlcyBmaWNoaWVycyB0ZW1wb3JhaXJlcyIKKworIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjIwMyBidWlsdGluL2NvbHVtbi5jOjMwCittc2dpZCAic3RyaW5nIgorbXNnc3RyICJjaGHDrm5lIgorCisjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MjA0Cittc2dpZCAid2hlbiBjcmVhdGluZyBmaWxlcywgcHJlcGVuZCA8c3RyaW5nPiIKK21zZ3N0ciAibG9ycyBkZSBsYSBjcsOpYXRpb24gZGUgZmljaGllcnMsIHByw6lmaXhlciBwYXIgPGNoYcOubmU+IgorCisjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MjA3Cittc2dpZCAiY29weSBvdXQgdGhlIGZpbGVzIGZyb20gbmFtZWQgc3RhZ2UiCittc2dzdHIgImNvcGllciBsZXMgZmljaGllcnMgZGVwdWlzIGwnaW5kZXggbm9tbcOpIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjUKK21zZ2lkICJnaXQgY2hlY2tvdXQgW29wdGlvbnNdIDxicmFuY2g+IgorbXNnc3RyICJnaXQgY2hlY2tvdXQgW29wdGlvbnNdIDxicmFuY2hlPiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjI2Cittc2dpZCAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSBbPGJyYW5jaD5dIC0tIDxmaWxlPi4uLiIKK21zZ3N0ciAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSBbPGJyYW5jaGU+XSAtLSA8ZmljaGllcj4uLi4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTcgYnVpbHRpbi9jaGVja291dC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBvdXIgdmVyc2lvbiIKK21zZ3N0ciAibGUgY2hlbWluICclcycgbidhIHBhcyBub3RyZSB2ZXJzaW9uIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgdGhlaXIgdmVyc2lvbiIKK21zZ3N0ciAibGUgY2hlbWluICclcycgbidhIHBhcyBsZXVyIHZlcnNpb24iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgYWxsIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKK21zZ3N0ciAibGUgY2hlbWluICclcycgbidhIGF1Y3VuZSBkZXMgdmVyc2lvbnMgbsOpY2Vzc2FpcmVzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKK21zZ3N0ciAibGUgY2hlbWluICclcycgbidhIHBhcyBsZXMgdmVyc2lvbnMgbsOpY2Vzc2FpcmVzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgInBhdGggJyVzJzogY2Fubm90IG1lcmdlIgorbXNnc3RyICJjaGVtaW4gJyVzJyA6IGltcG9zc2libGUgZGUgZnVzaW9ubmVyIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBhZGQgbWVyZ2UgcmVzdWx0IGZvciAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYWpvdXRlciBsZSByw6lzdWx0YXQgZGUgZnVzaW9uIHBvdXIgJyVzJyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjIzNyBidWlsdGluL2NoZWNrb3V0LmM6MjQwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHVwZGF0aW5nIHBhdGhzIgorbXNnc3RyICInJXMnIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpIGF2ZWMgZGVzIG1pc2VzIMOgIGpvdXIgZGUgY2hlbWlucyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjI0OSBidWlsdGluL2NoZWNrb3V0LmM6MjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKK21zZ3N0ciAiJyVzJyBuZSBwZXV0IHBhcyDDqnRyZSB1dGlsaXPDqSBhdmVjICVzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsZXMgY2hlbWlucyBldCBiYXNjdWxlciBzdXIgbGEgYnJhbmNoZSAnJXMnIGVuIG3Dqm1lIHRlbXBzLiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjI2NiBidWlsdGluL2NoZWNrb3V0LmM6NDU4Cittc2dpZCAiY29ycnVwdCBpbmRleCBmaWxlIgorbXNnc3RyICJmaWNoaWVyIGQnaW5kZXggY29ycm9tcHUiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzozMjkgYnVpbHRpbi9jaGVja291dC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoICclcycgaXMgdW5tZXJnZWQiCittc2dzdHIgImxlIGNoZW1pbiAnJXMnIG4nZXN0IHBhcyBmdXNpb25uw6kiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo0ODAKK21zZ2lkICJ5b3UgbmVlZCB0byByZXNvbHZlIHlvdXIgY3VycmVudCBpbmRleCBmaXJzdCIKK21zZ3N0ciAidm91cyBkZXZleiBkJ2Fib3JkIHLDqXNvdWRyZSB2b3RyZSBpbmRleCBjb3VyYW50IgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbiBub3QgZG8gcmVmbG9nIGZvciAnJXMnXG4iCittc2dzdHIgIkltcG9zc2libGUgZGUgZmFpcmUgdW4gcmVmbG9nIHBvdXIgJyVzJ1xuIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjM0Cittc2dpZCAiSEVBRCBpcyBub3cgYXQiCittc2dzdHIgIkhFQUQgZXN0IG1haW50ZW5hbnQgc3VyIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlc2V0IGJyYW5jaCAnJXMnXG4iCittc2dzdHIgIlJlbWlzZSDDoCB6w6lybyBkZSBsYSBicmFuY2hlICclcydcbiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjY0NAorIywgYy1mb3JtYXQKK21zZ2lkICJBbHJlYWR5IG9uICclcydcbiIKK21zZ3N0ciAiRMOpasOgIHN1ciAnJXMnXG4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dpdGNoZWQgdG8gYW5kIHJlc2V0IGJyYW5jaCAnJXMnXG4iCittc2dzdHIgIkJhc2N1bGVtZW50IGV0IHJlbWlzZSDDoCB6w6lybyBkZSBsYSBicmFuY2hlICclcydcbiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjY1MCBidWlsdGluL2NoZWNrb3V0LmM6OTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGVkIHRvIGEgbmV3IGJyYW5jaCAnJXMnXG4iCittc2dzdHIgIkJhc2N1bGVtZW50IHN1ciBsYSBub3V2ZWxsZSBicmFuY2hlICclcydcbiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hlZCB0byBicmFuY2ggJyVzJ1xuIgorbXNnc3RyICJCYXNjdWxlbWVudCBzdXIgbGEgYnJhbmNoZSAnJXMnXG4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIC4uLiBhbmQgJWQgbW9yZS5cbiIKK21zZ3N0ciAiIC4uLiBldCAlZCBlbiBwbHVzLlxuIgorCisjLiBUaGUgc2luZ3VsYXIgdmVyc2lvbgorIzogYnVpbHRpbi9jaGVja291dC5jOjcxNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogeW91IGFyZSBsZWF2aW5nICVkIGNvbW1pdCBiZWhpbmQsIG5vdCBjb25uZWN0ZWQgdG9cbiIKKyJhbnkgb2YgeW91ciBicmFuY2hlczpcbiIKKyJcbiIKKyIlc1xuIgorbXNnaWRfcGx1cmFsICIiCisiV2FybmluZzogeW91IGFyZSBsZWF2aW5nICVkIGNvbW1pdHMgYmVoaW5kLCBub3QgY29ubmVjdGVkIHRvXG4iCisiYW55IG9mIHlvdXIgYnJhbmNoZXM6XG4iCisiXG4iCisiJXNcbiIKK21zZ3N0clswXSAiIgorIkF0dGVudGlvbiA6IHZvdXMgbGFpc3NleiAlZCBjb21taXQgZW4gcmV0YXJkLCBub24gY29ubmVjdMOpcyDDoFxuIgorInVuZSBicmFuY2hlIDpcbiIKKyJcbiIKKyIlc1xuIgorbXNnc3RyWzFdICIiCisiQXR0ZW50aW9uIDogdm91cyBsYWlzc2V6ICVkIGNvbW1pdHMgZW4gcmV0YXJkLCBub24gY29ubmVjdMOpcyDDoFxuIgorInVuZSBicmFuY2hlIDpcbiIKKyJcbiIKKyIlc1xuIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBrZWVwIHRoZW0gYnkgY3JlYXRpbmcgYSBuZXcgYnJhbmNoLCB0aGlzIG1heSBiZSBhIGdvb2QgdGltZVxuIgorInRvIGRvIHNvIHdpdGg6XG4iCisiXG4iCisiIGdpdCBicmFuY2ggbmV3X2JyYW5jaF9uYW1lICVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJTaSB2b3VzIHNvdWhhaXRleiBsZXMgZ2FyZGVyIGVuIGNyw6lhbnQgdW5lIG5vdXZlbGxlIGJyYW5jaGUsIGMnZXN0IGxlIGJvbiBtb21lbnRcbiIKKyJkZSBsZSBmYWlyZSBhdmVjIDpcbiIKKyJcbiIKKyJnaXQgYnJhbmNoZSBub3V2ZWxsZV9icmFuY2hlICVzXG4iCisiXG4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjIKK21zZ2lkICJpbnRlcm5hbCBlcnJvciBpbiByZXZpc2lvbiB3YWxrIgorbXNnc3RyICJlcnJldXIgaW50ZXJuZSBsb3JzIGR1IHBhcmNvdXJzIGRlcyByw6l2aXNpb25zIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzY2Cittc2dpZCAiUHJldmlvdXMgSEVBRCBwb3NpdGlvbiB3YXMiCittc2dzdHIgIkxhIHBvc2l0aW9uIHByw6ljw6lkZW50ZSBkZSBIRUFEIMOpdGFpdCIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjc5MyBidWlsdGluL2NoZWNrb3V0LmM6OTgyCittc2dpZCAiWW91IGFyZSBvbiBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKK21zZ3N0ciAiVm91cyDDqnRlcyBzdXIgdW5lIGJyYW5jaGUgcXVpIGRvaXQgZW5jb3JlIG5hw650cmUiCisKKyMuIGNhc2UgKDEpCisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgcmVmZXJlbmNlOiAlcyIKK21zZ3N0ciAicsOpZsOpcmVuY2UgaW52YWxpZGUgOiAlcyIKKworIy4gY2FzZSAoMSk6IHdhbnQgYSB0cmVlCisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKK21zZ3N0ciAibGEgcsOpZsOpcmVuY2Ugbidlc3QgcGFzIHVuIGFyYnJlIDogJXMiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTYKK21zZ2lkICJwYXRocyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ3V0aWxpc2VyIGRlcyBjaGVtaW5zIGF2ZWMgdW4gYmFzY3VsZW1lbnQgZGUgYnJhbmNoZXMiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTkgYnVpbHRpbi9jaGVja291dC5jOjEwMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKK21zZ3N0ciAiJyVzJyBuZSBwZXV0IHBhcyDDqnRyZSB1dGlsaXPDqSBhdmVjIHVuIGJhc2N1bGVtZW50IGRlIGJyYW5jaGVzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwNyBidWlsdGluL2NoZWNrb3V0LmM6MTAxMCBidWlsdGluL2NoZWNrb3V0LmM6MTAxNQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoICclcyciCittc2dzdHIgIiclcycgbmUgcGV1dCBwYXMgw6p0cmUgdXRpbGlzw6kgYXZlYyAnJXMnIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAyMworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgc3dpdGNoIGJyYW5jaCB0byBhIG5vbi1jb21taXQgJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBiYXNjdWxlciBkZSBicmFuY2hlIHZlcnMgJyVzJyBxdWkgbidlc3QgcGFzIHVuIGNvbW1pdCIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDUgYnVpbHRpbi9jaGVja291dC5jOjEwNDcgYnVpbHRpbi9jbG9uZS5jOjkwCisjOiBidWlsdGluL3JlbW90ZS5jOjE2OSBidWlsdGluL3JlbW90ZS5jOjE3MQorbXNnaWQgImJyYW5jaCIKK21zZ3N0ciAiYnJhbmNoZSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDYKK21zZ2lkICJjcmVhdGUgYW5kIGNoZWNrb3V0IGEgbmV3IGJyYW5jaCIKK21zZ3N0ciAiY3LDqWVyIGV0IGV4dHJhaXJlIHVuZSBub3V2ZWxsZSBicmFuY2hlIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0OAorbXNnaWQgImNyZWF0ZS9yZXNldCBhbmQgY2hlY2tvdXQgYSBicmFuY2giCittc2dzdHIgImNyw6llci9yw6lpbml0aWFsaXNlciBldCBleHRyYWlyZSB1bmUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDkKK21zZ2lkICJjcmVhdGUgcmVmbG9nIGZvciBuZXcgYnJhbmNoIgorbXNnc3RyICJjcsOpZXIgdW4gcmVmb2cgcG91ciB1bmUgbm91dmVsbGUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTAKK21zZ2lkICJkZXRhY2ggdGhlIEhFQUQgYXQgbmFtZWQgY29tbWl0IgorbXNnc3RyICJkw6l0YWNoZXIgbGEgSEVBRCDDoCBsYSB2YWxpZGF0aW9uIG5vbW3DqWUiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUxCittc2dpZCAic2V0IHVwc3RyZWFtIGluZm8gZm9yIG5ldyBicmFuY2giCittc2dzdHIgInBhcmFtw6l0cmVyIGwnaW5mb3JtYXRpb24gZGUgYnJhbmNoZSBhbW9udCBwb3VyIHVuZSBub3V2ZWxsZSBicmFuY2hlIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MworbXNnaWQgIm5ldyBicmFuY2giCittc2dzdHIgIm5vdXZlbGxlIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCittc2dpZCAibmV3IHVucGFyZW50ZWQgYnJhbmNoIgorbXNnc3RyICJub3V2ZWxsZSBicmFuY2hlIHNhbnMgcGFyZW50IgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NAorbXNnaWQgImNoZWNrb3V0IG91ciB2ZXJzaW9uIGZvciB1bm1lcmdlZCBmaWxlcyIKK21zZ3N0ciAiZXh0cmFpcmUgbm90cmUgdmVyc2lvbiBwb3VyIGxlcyBmaWNoaWVycyBub24gZnVzaW9ubsOpcyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTYKK21zZ2lkICJjaGVja291dCB0aGVpciB2ZXJzaW9uIGZvciB1bm1lcmdlZCBmaWxlcyIKK21zZ3N0ciAiZXh0cmFpcmUgbGV1ciB2ZXJzaW9uIHBvdXIgbGVzIGZpY2hpZXJzIG5vbiBmdXNpb25uw6lzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OAorbXNnaWQgImZvcmNlIGNoZWNrb3V0ICh0aHJvdyBhd2F5IGxvY2FsIG1vZGlmaWNhdGlvbnMpIgorbXNnc3RyICJmb3JjZXIgbCdleHRyYWN0aW9uIChsYWlzc2VyIHRvbWJlciBsZXMgbW9kaWZpY2F0aW9ucyBsb2NhbGVzKSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKK21zZ2lkICJwZXJmb3JtIGEgMy13YXkgbWVyZ2Ugd2l0aCB0aGUgbmV3IGJyYW5jaCIKK21zZ3N0ciAicsOpYWxpc2VyIHVuZSBmdXNpb24gw6AgMyBwb2ludHMgYXZlYyBsYSBub3V2ZWxsZSBicmFuY2hlIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MCBidWlsdGluL21lcmdlLmM6MjE3Cittc2dpZCAidXBkYXRlIGlnbm9yZWQgZmlsZXMgKGRlZmF1bHQpIgorbXNnc3RyICJtZXR0cmUgw6Agam91ciBsZXMgZmljaGllcnMgaWdub3LDqXMgKHBhciBkw6lmYXV0KSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjEgYnVpbHRpbi9sb2cuYzoxMTU4IHBhcnNlLW9wdGlvbnMuaDoyNDUKK21zZ2lkICJzdHlsZSIKK21zZ3N0ciAic3R5bGUiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYyCittc2dpZCAiY29uZmxpY3Qgc3R5bGUgKG1lcmdlIG9yIGRpZmYzKSIKK21zZ3N0ciAic3R5bGUgZGUgY29uZmxpdCAoZnVzaW9uIG91IGRpZmYzKSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjUKK21zZ2lkICJkbyBub3QgbGltaXQgcGF0aHNwZWNzIHRvIHNwYXJzZSBlbnRyaWVzIG9ubHkiCittc2dzdHIgIm5lIHBhcyBsaW1pdGVyIGxlcyBzcMOpY2lmaWNhdGV1cnMgZGUgY2hlbWlucyBhdXggc2V1bGVzIGVudHLDqWVzIGNyZXVzZXMiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY3Cittc2dpZCAic2Vjb25kIGd1ZXNzICdnaXQgY2hlY2tvdXQgbm8tc3VjaC1icmFuY2gnIgorbXNnc3RyICJkZXV4acOobWUgY2hhbmNlICdnaXQgY2hlY2tvdXQgYnJhbmNoZS1pbmV4aXN0YW50ZSciCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDkxCittc2dpZCAiLWIsIC1CIGFuZCAtLW9ycGhhbiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgorbXNnc3RyICItYiwgLUIgZXQgLS1vcnBoYW4gc29udCBtdXR1ZWxsZW1lbnQgZXhjbHVzaWZzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwOAorbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKK21zZ3N0ciAiLS10cmFjayByZXF1aWVydCB1biBub20gZGUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjExMTUKK21zZ2lkICJNaXNzaW5nIGJyYW5jaCBuYW1lOyB0cnkgLWIiCittc2dzdHIgIk5vbSBkZSBicmFuY2hlIG1hbnF1YW50IDsgZXNzYXlleiAtYiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjExNTAKK21zZ2lkICJpbnZhbGlkIHBhdGggc3BlY2lmaWNhdGlvbiIKK21zZ3N0ciAic3DDqWNpZmljYXRpb24gZGUgY2hlbWluIGludmFsaWRlIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuXG4iCisiRGlkIHlvdSBpbnRlbmQgdG8gY2hlY2tvdXQgJyVzJyB3aGljaCBjYW4gbm90IGJlIHJlc29sdmVkIGFzIGNvbW1pdD8iCittc2dzdHIgIiIKKyJJbXBvc3NpYmxlIGRlIG1ldHRyZSDDoCBqb3VyIGxlcyBjaGVtaW5zIGV0IGRlIGJhc2N1bGVyIHN1ciBsYSBicmFuY2hlICclcycgZW4gbcOqbWUgdGVtcHMuXG4iCisiU291aGFpdGllei12b3VzIGV4dHJhaXJlICclcycgcXVpIG5lIHBldXQgw6p0cmUgcsOpc29sdSBjb21tZSBjb21taXQgPyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjExNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBkb2VzIG5vdCB0YWtlIGEgcGF0aCBhcmd1bWVudCAnJXMnIgorbXNnc3RyICJnaXQgY2hlY2tvdXQ6IC0tZGV0YWNoIG4nYWNjZXB0ZSBwYXMgdW4gYXJndW1lbnQgZGUgY2hlbWluICclcyciCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTY2Cittc2dpZCAiIgorImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIGFuZCAtLW1lcmdlIGFyZSBpbmNvbXBhdGlibGUgd2hlblxuIgorImNoZWNraW5nIG91dCBvZiB0aGUgaW5kZXguIgorbXNnc3RyICIiCisiZ2l0IGNoZWNrb3V0OiAtLW91cnMvLS10aGVpcnMsIC0tZm9yY2UgZXQgLS1tZXJnZSBzb250IGluY29tcGF0aWJsZXMgbG9yc1xuIgorImRlIGwnZXh0cmFjdGlvbiBkZSBsJ2luZGV4LiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjIwCittc2dpZCAiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKK21zZ3N0ciAiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLW5dIFstcV0gWy1lIDxtb3RpZj5dIFsteCB8IC1YXSBbLS1dIDxjaGVtaW5zPi4uLiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlbW92aW5nICVzXG4iCittc2dzdHIgIlN1cHByZXNzaW9uIGRlICVzXG4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyNQorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCByZW1vdmUgJXNcbiIKK21zZ3N0ciAiU3VwcHJpbWVyYWl0ICVzXG4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyNgorIywgYy1mb3JtYXQKK21zZ2lkICJTa2lwcGluZyByZXBvc2l0b3J5ICVzXG4iCittc2dzdHIgIklnbm9yZSBsZSBkw6lww7R0ICVzXG4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyNworIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCBza2lwIHJlcG9zaXRvcnkgJXNcbiIKK21zZ3N0ciAiSWdub3JlcmFpdCBsZSBkw6lww7R0ICVzXG4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVtb3ZlICVzIgorbXNnc3RyICLDqWNoZWMgZGUgbGEgc3VwcHJlc3Npb24gZGUgJXMiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoxNjAKK21zZ2lkICJkbyBub3QgcHJpbnQgbmFtZXMgb2YgZmlsZXMgcmVtb3ZlZCIKK21zZ3N0ciAibmUgcGFzIGFmZmljaGVyIGxlcyBub21zIGRlcyBmaWNoaWVycyBzdXBwcmltw6lzIgorCisjOiBidWlsdGluL2NsZWFuLmM6MTYyCittc2dpZCAiZm9yY2UiCittc2dzdHIgImZvcmNlciIKKworIzogYnVpbHRpbi9jbGVhbi5jOjE2NAorbXNnaWQgInJlbW92ZSB3aG9sZSBkaXJlY3RvcmllcyIKK21zZ3N0ciAic3VwcHJpbWVyIGxlcyByw6lwZXJ0b2lyZXMgZW50aWVycyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjE2NSBidWlsdGluL2Rlc2NyaWJlLmM6NDEyIGJ1aWx0aW4vZ3JlcC5jOjcxNworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NyBidWlsdGluL25hbWUtcmV2LmM6MjMxIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODIKK21zZ2lkICJwYXR0ZXJuIgorbXNnc3RyICJtb3RpZiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjE2NgorbXNnaWQgImFkZCA8cGF0dGVybj4gdG8gaWdub3JlIHJ1bGVzIgorbXNnc3RyICJham91dGVyIDxtb3RpZj4gYXV4IHLDqGdsZXMgaWdub3JlIgorCisjOiBidWlsdGluL2NsZWFuLmM6MTY3Cittc2dpZCAicmVtb3ZlIGlnbm9yZWQgZmlsZXMsIHRvbyIKK21zZ3N0ciAic3VwcHJpbWVyIGxlcyBmaWNoaWVycyBpZ25vcsOpcywgYXVzc2kiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoxNjkKK21zZ2lkICJyZW1vdmUgb25seSBpZ25vcmVkIGZpbGVzIgorbXNnc3RyICJzdXBwcmltZXIgc2V1bGVtZW50IGxlcyBmaWNoaWVycyBpZ25vcsOpcyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjE4NworbXNnaWQgIi14IGFuZCAtWCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKK21zZ3N0ciAiLXggZXQgLVggbmUgcGV1dmVudCBwYXMgw6p0cmUgdXRpbGlzw6lzIGVuc2VtYmxlIgorCisjOiBidWlsdGluL2NsZWFuLmM6MTkxCittc2dpZCAiIgorImNsZWFuLnJlcXVpcmVGb3JjZSBzZXQgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvIGNsZWFuIgorbXNnc3RyICJjbGVhbi5yZXF1aXJlRm9yY2UgcG9zaXRpb25uw6kgw6AgdHJ1ZSBldCBuaSAtbiBuaSAtZiBmb3VybmkgOyByZWZ1cyBkZSBuZXR0b3llciIKKworIzogYnVpbHRpbi9jbGVhbi5jOjE5NAorbXNnaWQgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvICIKKyJjbGVhbiIKK21zZ3N0ciAiY2xlYW4ucmVxdWlyZUZvcmNlIMOgIHRydWUgcGFyIGTDqWZhdXQgZXQgbmkgLW4gbmkgLWYgZm91cm5pIDsgcmVmdXMgZGUgbmV0dG95ZXIiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNworbXNnaWQgImdpdCBjbG9uZSBbb3B0aW9uc10gWy0tXSA8cmVwbz4gWzxkaXI+XSIKK21zZ3N0ciAiZ2l0IGNsb25lIFtvcHRpb25zXSBbLS1dIDxkw6lww7R0PiBbPHLDqXBlcnRvaXJlPl0iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NSBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIxNAorIzogYnVpbHRpbi9wdXNoLmM6NDM2Cittc2dpZCAiZm9yY2UgcHJvZ3Jlc3MgcmVwb3J0aW5nIgorbXNnc3RyICJmb3JjZXIgbCfDqXRhdCBkJ2F2YW5jZW1lbnQiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NworbXNnaWQgImRvbid0IGNyZWF0ZSBhIGNoZWNrb3V0IgorbXNnc3RyICJuZSBwYXMgY3LDqWVyIGQnZXh0cmFjdGlvbiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjY4IGJ1aWx0aW4vY2xvbmUuYzo3MCBidWlsdGluL2luaXQtZGIuYzo0ODgKK21zZ2lkICJjcmVhdGUgYSBiYXJlIHJlcG9zaXRvcnkiCittc2dzdHIgImNyw6llciB1biBkw6lww7R0IG51IgorCisjOiBidWlsdGluL2Nsb25lLmM6NzMKK21zZ2lkICJjcmVhdGUgYSBtaXJyb3IgcmVwb3NpdG9yeSAoaW1wbGllcyBiYXJlKSIKK21zZ3N0ciAiY3LDqWVyIHVuIGTDqXDDtHQgbWlyb2lyIChpbXBsaXF1ZSBkw6lww7R0IG51KSIKKworIzogYnVpbHRpbi9jbG9uZS5jOjc1Cittc2dpZCAidG8gY2xvbmUgZnJvbSBhIGxvY2FsIHJlcG9zaXRvcnkiCittc2dzdHIgInBvdXIgY2xvbmVyIGRlcHVpcyB1biBkw6lww7R0IGxvY2FsIgorCisjOiBidWlsdGluL2Nsb25lLmM6NzcKK21zZ2lkICJkb24ndCB1c2UgbG9jYWwgaGFyZGxpbmtzLCBhbHdheXMgY29weSIKK21zZ3N0ciAibmUgcGFzIHV0aWxpc2VyIGRlIGxpZW5zIGR1cnMgbG9jYXV4LCB0b3Vqb3VycyBjb3BpZXIiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OQorbXNnaWQgInNldHVwIGFzIHNoYXJlZCByZXBvc2l0b3J5IgorbXNnc3RyICJyw6lnbGVyIGNvbW1lIGTDqXDDtHQgcGFydGFnw6kiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MSBidWlsdGluL2Nsb25lLmM6ODMKK21zZ2lkICJpbml0aWFsaXplIHN1Ym1vZHVsZXMgaW4gdGhlIGNsb25lIgorbXNnc3RyICJpbml0aWFsaXNlciBsZXMgc291cy1tb2R1bGVzIGRhbnMgbGUgY2xvbmUiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODUKK21zZ2lkICJ0ZW1wbGF0ZS1kaXJlY3RvcnkiCittc2dzdHIgInLDqXBlcnRvaXJlLW1vZMOobGUiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NSBidWlsdGluL2luaXQtZGIuYzo0ODYKK21zZ2lkICJkaXJlY3RvcnkgZnJvbSB3aGljaCB0ZW1wbGF0ZXMgd2lsbCBiZSB1c2VkIgorbXNnc3RyICJyw6lwZXJ0b2lyZSBkZXB1aXMgbGVxdWVsIGxlcyBtb2TDqGxlcyB2b250IMOqdHJlIHV0aWxpc8OpcyIKKworIzogYnVpbHRpbi9jbG9uZS5jOjg3Cittc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkiCittc2dzdHIgImTDqXDDtHQgZGUgcsOpZsOpcmVuY2UiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4OCBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0Cittc2dpZCAibmFtZSIKK21zZ3N0ciAibm9tIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODkKK21zZ2lkICJ1c2UgPG5hbWU+IGluc3RlYWQgb2YgJ29yaWdpbicgdG8gdHJhY2sgdXBzdHJlYW0iCittc2dzdHIgInV0aWxpc2VyIDxub20+IGF1IGxpZXUgZGUgJ29yaWdpbicgcG91ciBzdWl2cmUgbGEgYnJhbmNoZSBhbW9udCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjkxCittc2dpZCAiY2hlY2tvdXQgPGJyYW5jaD4gaW5zdGVhZCBvZiB0aGUgcmVtb3RlJ3MgSEVBRCIKK21zZ3N0ciAiZXh0cmFpcmUgPGJyYW5jaGU+IGF1IGxpZXUgZGUgbGEgSEVBRCBkdSByw6lwZXJ0b2lyZSBkaXN0YW50IgorCisjOiBidWlsdGluL2Nsb25lLmM6OTMKK21zZ2lkICJwYXRoIHRvIGdpdC11cGxvYWQtcGFjayBvbiB0aGUgcmVtb3RlIgorbXNnc3RyICJjaGVtaW4gdmVycyBnaXQtdXBsb2FkLXBhY2sgc3VyIGxlIHNlcnZldXIgZGlzdGFudCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjk0IGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjIKK21zZ2lkICJkZXB0aCIKK21zZ3N0ciAicHJvZm9uZGV1ciIKKworIzogYnVpbHRpbi9jbG9uZS5jOjk1Cittc2dpZCAiY3JlYXRlIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGF0IGRlcHRoIgorbXNnc3RyICJjcsOpZXIgdW4gY2xvbmUgc3VwZXJmaWNpZWwgZGUgY2V0dGUgcHJvZm9uZGV1ciIKKworIzogYnVpbHRpbi9jbG9uZS5jOjk3Cittc2dpZCAiY2xvbmUgb25seSBvbmUgYnJhbmNoLCBIRUFEIG9yIC0tYnJhbmNoIgorbXNnc3RyICJjbG9uZXIgc2V1bGVtZW50IHVuZSBicmFuY2hlLCBIRUFEIG91IC0tYnJhbmNoIgorCisjOiBidWlsdGluL2Nsb25lLmM6OTggYnVpbHRpbi9pbml0LWRiLmM6NDk0Cittc2dpZCAiZ2l0ZGlyIgorbXNnc3RyICJnaXRkaXIiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5OSBidWlsdGluL2luaXQtZGIuYzo0OTUKK21zZ2lkICJzZXBhcmF0ZSBnaXQgZGlyIGZyb20gd29ya2luZyB0cmVlIgorbXNnc3RyICJzw6lwYXJlciBsZSByw6lwZXJ0b2lyZSBnaXQgZGUgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjEwMAorbXNnaWQgImtleT12YWx1ZSIKK21zZ3N0ciAiY2zDqT12YWxldXIiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzoxMDEKK21zZ2lkICJzZXQgY29uZmlnIGluc2lkZSB0aGUgbmV3IHJlcG9zaXRvcnkiCittc2dzdHIgInLDqWdsZXIgbGEgY29uZmlndXJhdGlvbiBkYW5zIGxlIG5vdXZlYXUgZMOpcMO0dCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSAnJXMnIGlzIG5vdCBhIGxvY2FsIHJlcG9zaXRvcnkuIgorbXNnc3RyICJsZSBkw6lww7R0IGRlIHLDqWbDqXJlbmNlICclcycgbidlc3QgcGFzIHVuIGTDqXDDtHQgbG9jYWwuIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgZGlyZWN0b3J5ICclcyciCittc2dzdHIgIsOpY2hlYyBkZSBsYSBjcsOpYXRpb24gZHUgcsOpcGVydG9pcmUgJyVzJyIKKworIzogYnVpbHRpbi9jbG9uZS5jOjMxOSBidWlsdGluL2RpZmYuYzo3NworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdCAnJXMnIgorbXNnc3RyICLDqWNoZWMgZHUgc3RhdCBkZSAnJXMnIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGV4aXN0cyBhbmQgaXMgbm90IGEgZGlyZWN0b3J5IgorbXNnc3RyICIlcyBleGlzdGUgZXQgbidlc3QgcGFzIHVuIHLDqXBlcnRvaXJlIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzdGF0ICVzXG4iCittc2dzdHIgIsOpY2hlYyBkdSBzdGF0IGRlICVzXG4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaW5rICclcyciCittc2dzdHIgIsOpY2hlYyBkZSBsYSBjcsOpYXRpb24gZHUgbGllbiAnJXMnIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzYxCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBjb3B5IGZpbGUgdG8gJyVzJyIKK21zZ3N0ciAiw6ljaGVjIGRlIGxhIGNvcGllIHZlcnMgJyVzJyIKKworIzogYnVpbHRpbi9jbG9uZS5jOjM4NAorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lLlxuIgorbXNnc3RyICJmYWl0LlxuIgorCisjOiBidWlsdGluL2Nsb25lLmM6Mzk3Cittc2dpZCAiIgorIkNsb25lIHN1Y2NlZWRlZCwgYnV0IGNoZWNrb3V0IGZhaWxlZC5cbiIKKyJZb3UgY2FuIGluc3BlY3Qgd2hhdCB3YXMgY2hlY2tlZCBvdXQgd2l0aCAnZ2l0IHN0YXR1cydcbiIKKyJhbmQgcmV0cnkgdGhlIGNoZWNrb3V0IHdpdGggJ2dpdCBjaGVja291dCAtZiBIRUFEJ1xuIgorbXNnc3RyICJMZSBjbG9uZSBhIHLDqXVzc2ksIG1haXMgbCdleHRyYWN0aW9uIGEgw6ljaG91w6kuXG4iCisiVm91cyBwb3V2ZXogaW5zcGVjdGVyIGNlIHF1aSBhIMOpdMOpIGV4dHJhaXQgYXZlYyAnZ2l0IHN0YXR1cydcbiIKKyJldCByw6llc3NheWVyIGwnZXh0cmFjdGlvbiBhdmVjICdnaXQgY2hlY2tvdXQgLWYgSEVBRCdcbiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCByZW1vdGUgYnJhbmNoICVzIHRvIGNsb25lLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSB0cm91dmVyIGxhIGJyYW5jaGUgZGlzdGFudGUgJyVzJyDDoCBjbG9uZXIuIgorCisjOiBidWlsdGluL2Nsb25lLmM6NTUwCittc2dpZCAicmVtb3RlIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHMiCittc2dzdHIgImxlIHNlcnZldXIgZGlzdGFudCBuJ2EgcGFzIGVudm95w6kgdG91cyBsZXMgb2JqZXRzIG7DqWNlc3NhaXJlcyIKKworIzogYnVpbHRpbi9jbG9uZS5jOjYxMAorbXNnaWQgInJlbW90ZSBIRUFEIHJlZmVycyB0byBub25leGlzdGVudCByZWYsIHVuYWJsZSB0byBjaGVja291dC5cbiIKK21zZ3N0ciAibGEgSEVBRCBkaXN0YW50ZSByw6lmw6hyZSDDoCB1bmUgcsOpZsOpcmVuY2Ugbm9uIGV4aXN0YW50ZSwgaW1wb3NzaWJsZSBkZSBsJ2V4dHJhaXJlLlxuIgorCisjOiBidWlsdGluL2Nsb25lLmM6NjQxCittc2dpZCAidW5hYmxlIHRvIGNoZWNrb3V0IHdvcmtpbmcgdHJlZSIKK21zZ3N0ciAiaW5wb3NzaWJsZSBkJ2V4dHJhaXJlIGxhIGNvcGllIGRlIHRyYXZhaWwiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NDkKK21zZ2lkICJUb28gbWFueSBhcmd1bWVudHMuIgorbXNnc3RyICJUcm9wIGQnYXJndW1lbnRzLiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjc1MworbXNnaWQgIllvdSBtdXN0IHNwZWNpZnkgYSByZXBvc2l0b3J5IHRvIGNsb25lLiIKK21zZ3N0ciAiVm91cyBkZXZleiBzcMOpY2lmaWVyIHVuIGTDqXDDtHQgw6AgY2xvbmVyLiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjc2NAorIywgYy1mb3JtYXQKK21zZ2lkICItLWJhcmUgYW5kIC0tb3JpZ2luICVzIG9wdGlvbnMgYXJlIGluY29tcGF0aWJsZS4iCittc2dzdHIgImxlcyBvcHRpb25zIC0tYmFyZSBldCAtLW9yaWdpbiAlcyBzb250IGluY29tcGF0aWJsZXMuIgorCisjOiBidWlsdGluL2Nsb25lLmM6NzY3Cittc2dpZCAiLS1iYXJlIGFuZCAtLXNlcGFyYXRlLWdpdC1kaXIgYXJlIGluY29tcGF0aWJsZS4iCittc2dzdHIgIi0tYmFyZSBldCAtLXNlcGFyYXRlLWdpdC1kaXIgc29udCBpbmNvbXBhdGlibGVzLiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXBvc2l0b3J5ICclcycgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgImxlIGTDqXDDtHQgJyVzJyBuJ2V4aXN0ZSBwYXMiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3ODUKK21zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKK21zZ3N0ciAiLS1kZXB0aCBlc3QgaWdub3LDqSBkYW5zIGxlcyBjbG9uZXMgbG9jYXV4IDogdXRpbGlzZXogcGx1dMO0dCBcImZpbGU6Ly9cIi4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVzdGluYXRpb24gcGF0aCAnJXMnIGFscmVhZHkgZXhpc3RzIGFuZCBpcyBub3QgYW4gZW1wdHkgZGlyZWN0b3J5LiIKK21zZ3N0ciAibGUgY2hlbWluIGRlIGRlc3RpbmF0aW9uICclcycgZXhpc3RlIGTDqWrDoCBldCBuJ2VzdCBwYXMgdW4gcsOpcGVydG9pcmUgdmlkZS4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAid29ya2luZyB0cmVlICclcycgYWxyZWFkeSBleGlzdHMuIgorbXNnc3RyICJsYSBjb3BpZSBkZSB0cmF2YWlsICclcycgZXhpc3RlIGTDqWrDoC4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MTggYnVpbHRpbi9jbG9uZS5jOjgzMAorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGxlYWRpbmcgZGlyZWN0b3JpZXMgb2YgJyVzJyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjcsOpZXIgbGVzIHLDqXBlcnRvaXJlcyBkZSBwcmVtaWVyIG5pdmVhdSBkYW5zICclcyciCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IGNyZWF0ZSB3b3JrIHRyZWUgZGlyICclcycuIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNyw6llciBsZSByw6lwZXJ0b2lyZSBkZSBsYSBjb3BpZSBkZSB0cmF2YWlsICclcycuIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb25pbmcgaW50byBiYXJlIHJlcG9zaXRvcnkgJyVzJy4uLlxuIgorbXNnc3RyICJDbG9uYWdlIGRhbnMgbGUgZMOpcMO0dCBudSAnJXMnXG4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvbmluZyBpbnRvICclcycuLi5cbiIKK21zZ3N0ciAiQ2xvbmFnZSBkYW5zICclcycuLi5cbiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjg3NworIywgYy1mb3JtYXQKK21zZ2lkICJEb24ndCBrbm93IGhvdyB0byBjbG9uZSAlcyIKK21zZ3N0ciAiSmUgbmUgc2FpcyBwYXMgY2xvbmVyICVzIgorCisjOiBidWlsdGluL2Nsb25lLmM6OTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlbW90ZSBicmFuY2ggJXMgbm90IGZvdW5kIGluIHVwc3RyZWFtICVzIgorbXNnc3RyICJMYSBicmFuY2hlIGRpc3RhbnRlICVzIG4nYSBwYXMgw6l0w6kgdHJvdXbDqWUgZGFucyBsZSBkw6lww7R0IGFtb250ICVzIgorCisjOiBidWlsdGluL2Nsb25lLmM6OTMzCittc2dpZCAiWW91IGFwcGVhciB0byBoYXZlIGNsb25lZCBhbiBlbXB0eSByZXBvc2l0b3J5LiIKK21zZ3N0ciAiVm91cyBzZW1ibGV6IGF2b2lyIGNsb27DqSB1biBkw6lww7R0IHZpZGUuIgorCisjOiBidWlsdGluL2NvbHVtbi5jOjkKK21zZ2lkICJnaXQgY29sdW1uIFtvcHRpb25zXSIKK21zZ3N0ciAiZ2l0IGNvbHVtbiBbb3B0aW9uc10iCisKKyM6IGJ1aWx0aW4vY29sdW1uLmM6MjYKK21zZ2lkICJsb29rdXAgY29uZmlnIHZhcnMiCittc2dzdHIgInJlY2hlcmNoZXIgbGVzIHZhcmlhYmxlcyBkZSBjb25maWd1cmF0aW9uIgorCisjOiBidWlsdGluL2NvbHVtbi5jOjI3IGJ1aWx0aW4vY29sdW1uLmM6MjgKK21zZ2lkICJsYXlvdXQgdG8gdXNlIgorbXNnc3RyICJtaXNlIGVuIHBhZ2Ugw6AgdXRpbGlzZXIiCisKKyM6IGJ1aWx0aW4vY29sdW1uLmM6MjkKK21zZ2lkICJNYXhpbXVtIHdpZHRoIgorbXNnc3RyICJMYXJnZXVyIG1heGltYWxlIgorCisjOiBidWlsdGluL2NvbHVtbi5jOjMwCittc2dpZCAiUGFkZGluZyBzcGFjZSBvbiBsZWZ0IGJvcmRlciIKK21zZ3N0ciAiUmVtcGxpc3NhZ2UgZCdlc3BhY2Ugc3VyIGxhIGJvcmR1cmUgZ2F1Y2hlIgorCisjOiBidWlsdGluL2NvbHVtbi5jOjMxCittc2dpZCAiUGFkZGluZyBzcGFjZSBvbiByaWdodCBib3JkZXIiCittc2dzdHIgIlJlbXBsaXNzYWdlIGQnZXNwYWNlIHN1ciBsZSBjw7R0w6kgZHJvaXQiCisKKyM6IGJ1aWx0aW4vY29sdW1uLmM6MzIKK21zZ2lkICJQYWRkaW5nIHNwYWNlIGJldHdlZW4gY29sdW1ucyIKK21zZ3N0ciAiUmVtcGxpc3NhZ2UgZCdlc3BhY2UgZW50cmUgbGVzIGNvbG9ubmVzIgorCisjOiBidWlsdGluL2NvbHVtbi5jOjUxCittc2dpZCAiLS1jb21tYW5kIG11c3QgYmUgdGhlIGZpcnN0IGFyZ3VtZW50IgorbXNnc3RyICItLWNvbW1hbmQgZG9pdCDDqnRyZSBsZSBwcmVtaWVyIGFyZ3VtZW50IgorCisjOiBidWlsdGluL2NvbW1pdC5jOjM0Cittc2dpZCAiZ2l0IGNvbW1pdCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgorbXNnc3RyICJnaXQgY29tbWl0IFtvcHRpb25zXSBbLS1dIDxzcMOpY2lmaWNhdGlvbi1kZS1jaGVtaW4+Li4uIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjM5Cittc2dpZCAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgorbXNnc3RyICJnaXQgc3RhdHVzIFtvcHRpb25zXSBbLS1dIDxzcMOpY2lmaWNhdGlvbi1kZS1jaGVtaW4+Li4uIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjQ0Cittc2dpZCAiIgorIllvdXIgbmFtZSBhbmQgZW1haWwgYWRkcmVzcyB3ZXJlIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseSBiYXNlZFxuIgorIm9uIHlvdXIgdXNlcm5hbWUgYW5kIGhvc3RuYW1lLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGV5IGFyZSBhY2N1cmF0ZS5cbiIKKyJZb3UgY2FuIHN1cHByZXNzIHRoaXMgbWVzc2FnZSBieSBzZXR0aW5nIHRoZW0gZXhwbGljaXRseTpcbiIKKyJcbiIKKyIgICAgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgXCJZb3VyIE5hbWVcIlxuIgorIiAgICBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgeW91QGV4YW1wbGUuY29tXG4iCisiXG4iCisiQWZ0ZXIgZG9pbmcgdGhpcywgeW91IG1heSBmaXggdGhlIGlkZW50aXR5IHVzZWQgZm9yIHRoaXMgY29tbWl0IHdpdGg6XG4iCisiXG4iCisiICAgIGdpdCBjb21taXQgLS1hbWVuZCAtLXJlc2V0LWF1dGhvclxuIgorbXNnc3RyICIiCisiVm90cmUgbm9tIGV0IHZvdHJlIGFkcmVzc2UgZS1tYWlsIG9udCDDqXTDqSBjb25maWd1csOpcyBhdXRvbWF0aXF1ZW1lbnQgZW4gc2UgZm9uZGFudFxuIgorInN1ciB2b3RyZSBub20gZCd1dGlsaXNhdGV1ciBldCB2b3RyZSBub20gZCdvcmRpbmF0ZXVyLiBWZXVpbGxleiB2w6lyaWZpZXIgcXUnaWxzIHNvbnQgY29ycmVjdHMuXG4iCisiVm91cyBwb3V2ZXogc3VwcHJpbWVyIGNlIG1lc3NhZ2UgZW4gbGVzIHBhcmFtw6l0cmFudCBleHBsaWNpdGVtZW50IDpcbiIKKyJcbiIKKyIgICAgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgXCJWb3RyZSBOb21cIlxuIgorIiAgICBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgdm91c0BleGVtcGxlLmNvbVxuIgorIlxuIgorIkFwcsOocyBjZWNpLCB2b3VzIHBvdXZleiBjb3JyaWdlciBsJ2lkZW50aXTDqSB1dGlsaXPDqWUgcG91ciBjZSBjb21taXQgYXZlYyA6XG4iCisiXG4iCisiICAgIGdpdCBjb21taXQgLS1hbWVuZCAtLXJlc2V0LWF1dGhvclxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjU2Cittc2dpZCAiIgorIllvdSBhc2tlZCB0byBhbWVuZCB0aGUgbW9zdCByZWNlbnQgY29tbWl0LCBidXQgZG9pbmcgc28gd291bGQgbWFrZVxuIgorIml0IGVtcHR5LiBZb3UgY2FuIHJlcGVhdCB5b3VyIGNvbW1hbmQgd2l0aCAtLWFsbG93LWVtcHR5LCBvciB5b3UgY2FuXG4iCisicmVtb3ZlIHRoZSBjb21taXQgZW50aXJlbHkgd2l0aCBcImdpdCByZXNldCBIRUFEXlwiLlxuIgorbXNnc3RyICJWb3VzIGF2ZXogZGVtYW5kw6kgZGUgY29ycmlnZXIgbGUgY29tbWl0IGxlIHBsdXMgcsOpY2VudCwgbWFpcyBsZSBmYWlyZSBsZSByZW5kcmFpdFxuIgorInZpZGUuIFZvdXMgcG91dmV6IHLDqXDDqXRlciB2b3RyZSBjb21tYW5kZSBhdmVjIC0tYWxsb3ctZW1wdHksIG91IHZvdXMgcG91dmV6XG4iCisic3VwcHJpbWVyIGNvbXBsw6h0ZW1lbnQgbGUgY29tbWl0IGF2ZWMgXCJnaXQgcmVzZXQgSEVBRF5cIi5cbiIKKworIzogYnVpbHRpbi9jb21taXQuYzo2MQorbXNnaWQgIiIKKyJUaGUgcHJldmlvdXMgY2hlcnJ5LXBpY2sgaXMgbm93IGVtcHR5LCBwb3NzaWJseSBkdWUgdG8gY29uZmxpY3QgcmVzb2x1dGlvbi5cbiIKKyJJZiB5b3Ugd2lzaCB0byBjb21taXQgaXQgYW55d2F5LCB1c2U6XG4iCisiXG4iCisiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgorIlxuIgorIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgorbXNnc3RyICIiCisiTGUgcGljb3JhZ2UgcHLDqWPDqWRlbnQgZXN0IMOgIHByw6lzZW50IHZpZGUsIHZyYWlzZW1ibGFibGVtZW50IGTDuyDDoCB1bmUgcsOpc29sdXRpb24gZGUgY29uZmxpdC5cbiIKKyJTaSB2b3VzIHNvdWhhaXRleiB0b3V0IGRlIG3Dqm1lIGxlIHZhbGlkZXIsIHV0aWxpc2V6IDpcbiIKKyJcbiIKKyIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCisiXG4iCisiU2lub24sIHV0aWxpc2V6ICdnaXQgcmVzZXQnXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MjYwCittc2dpZCAiZmFpbGVkIHRvIHVucGFjayBIRUFEIHRyZWUgb2JqZWN0IgorbXNnc3RyICLDqWNoZWMgZHUgZMOpcGFxdWV0YWdlIGRlIGwnb2JqZXQgYXJicmUgSEVBRCIKKworIzogYnVpbHRpbi9jb21taXQuYzozMDIKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRlbXBvcmFyeSBpbmRleCIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjcsOpZXIgbCdpbmRleCB0ZW1wb3JhaXJlIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjMwOAorbXNnaWQgImludGVyYWN0aXZlIGFkZCBmYWlsZWQiCittc2dzdHIgIsOpY2hlYyBkZSBsJ2Fqb3V0IGludGVyYWN0aWYiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzQxIGJ1aWx0aW4vY29tbWl0LmM6MzYyIGJ1aWx0aW4vY29tbWl0LmM6NDEyCittc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ld19pbmRleCBmaWxlIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBmaWNoaWVyIG5ld19pbmRleCIKKworIzogYnVpbHRpbi9jb21taXQuYzozOTMKK21zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBtZXJnZS4iCittc2dzdHIgImltcG9zc2libGUgZGUgZmFpcmUgdW5lIHZhbGlkYXRpb24gcGFydGllbGxlIHBlbmRhbnQgdW5lIGZ1c2lvbi4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Mzk1Cittc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgY2hlcnJ5LXBpY2suIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGZhaXJlIHVuZSB2YWxpZGF0aW9uIHBhcnRpZWxsZSBwZW5kYW50IHVuIHBpY29yYWdlLiIKKworIzogYnVpbHRpbi9jb21taXQuYzo0MDUKK21zZ2lkICJjYW5ub3QgcmVhZCB0aGUgaW5kZXgiCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBsJ2luZGV4IgorCisjOiBidWlsdGluL2NvbW1pdC5jOjQyNQorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB0ZW1wb3JhcnkgaW5kZXggZmlsZSIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgZmljaGllciBkJ2luZGV4IHRlbXBvcmFpcmUiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTEzIGJ1aWx0aW4vY29tbWl0LmM6NTE5CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgY29tbWl0OiAlcyIKK21zZ3N0ciAiY29tbWl0IGludmFsaWRlIDogJXMiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTQyCittc2dpZCAibWFsZm9ybWVkIC0tYXV0aG9yIHBhcmFtZXRlciIKK21zZ3N0ciAicGFyYW3DqHRyZSAtLWF1dGhvciBtYWwgZm9ybcOpIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjU2MgorIywgYy1mb3JtYXQKK21zZ2lkICJNYWxmb3JtZWQgaWRlbnQgc3RyaW5nOiAnJXMnIgorbXNnc3RyICJDaGHDrm5lIGlkZW50IG1hbCBmb3Jtw6llIDogJyVzJyIKKworIzogYnVpbHRpbi9jb21taXQuYzo2MDAgYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9jb21taXQuYzo5NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IGxvb2t1cCBjb21taXQgJXMiCittc2dzdHIgImltcG9zc2libGUgZGUgcmVjaGVyY2hlciBsZSBjb21taXQgJXMiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjEyIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiKHJlYWRpbmcgbG9nIG1lc3NhZ2UgZnJvbSBzdGFuZGFyZCBpbnB1dClcbiIKK21zZ3N0ciAiKGxlY3R1cmUgZHUgbWVzc2FnZSBkZSBqb3VybmFsIGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQpXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjE0Cittc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZyb20gc3RhbmRhcmQgaW5wdXQiCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBsZSBqb3VybmFsIGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmaWxlICclcyciCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBsZSBmaWNoaWVyIGRlIGpvdXJuYWwgJyVzJyIKKworIzogYnVpbHRpbi9jb21taXQuYzo2MjQKK21zZ2lkICJjb21taXQgaGFzIGVtcHR5IG1lc3NhZ2UiCittc2dzdHIgImxlIGNvbW1pdCBhIHVuIG1lc3NhZ2UgdmlkZSIKKworIzogYnVpbHRpbi9jb21taXQuYzo2NDAKK21zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NU0ciCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBNRVJHRV9NU0ciCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ0Cittc2dpZCAiY291bGQgbm90IHJlYWQgU1FVQVNIX01TRyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlIFNRVUFTSF9NU0ciCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCByZWFkICclcyciCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSAnJXMnIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjcwOQorbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBjb21taXQgdGVtcGxhdGUiCittc2dzdHIgImltcG9zc2libGUgZCfDqWNyaXJlIGxlIG1vZMOobGUgZGUgY29tbWl0IgorCisjOiBidWlsdGluL2NvbW1pdC5jOjcyMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSXQgbG9va3MgbGlrZSB5b3UgbWF5IGJlIGNvbW1pdHRpbmcgYSBtZXJnZS5cbiIKKyJJZiB0aGlzIGlzIG5vdCBjb3JyZWN0LCBwbGVhc2UgcmVtb3ZlIHRoZSBmaWxlXG4iCisiXHQlc1xuIgorImFuZCB0cnkgYWdhaW4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJJbCBzZW1ibGUgcXVlIHZvdXMgdmFsaWRpZXogdW5lIGZ1c2lvbi5cbiIKKyJTaSBjZSBuJ2VzdCBwYXMgbGUgY2FzLCB2ZXVpbGxleiBzdXBwcmltZXIgbGUgZmljaGllclxuIgorIlx0JXNcbiIKKyJldCBlc3NheWV6IMOgIG5vdXZlYXUuXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJJdCBsb29rcyBsaWtlIHlvdSBtYXkgYmUgY29tbWl0dGluZyBhIGNoZXJyeS1waWNrLlxuIgorIklmIHRoaXMgaXMgbm90IGNvcnJlY3QsIHBsZWFzZSByZW1vdmUgdGhlIGZpbGVcbiIKKyJcdCVzXG4iCisiYW5kIHRyeSBhZ2Fpbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIklsIHNlbWJsZSBxdWUgdm91cyB2YWxpZGlleiB1biBwaWNvcmFnZS5cbiIKKyJTaSBjZSBuJ2VzdCBwYXMgbGUgY2FzLCB2ZXVpbGxleiBzdXBwcmltZXIgbGUgZmljaGllclxuIgorIlx0JXNcbiIKKyJldCBlc3NheWV6IMOgIG5vdXZlYXUuXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nXG4iCisid2l0aCAnJWMnIHdpbGwgYmUgaWdub3JlZCwgYW5kIGFuIGVtcHR5IG1lc3NhZ2UgYWJvcnRzIHRoZSBjb21taXQuXG4iCittc2dzdHIgIiIKKyJWZXVpbGxleiBzYWlzaXIgbGUgbWVzc2FnZSBkZSB2YWxpZGF0aW9uIHBvdXIgdm9zIG1vZGlmaWNhdGlvbnMuIExlcyBsaWduZXNcbiIKKyJjb21tZW7Dp2FudCBwYXIgJyVjJyBzZXJvbnQgaWdub3LDqWVzLCBldCB1biBtZXNzYWdlIHZpZGUgYWJhbmRvbm5lIGxhIHZhbGlkYXRpb24uXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nXG4iCisid2l0aCAnJWMnIHdpbGwgYmUga2VwdDsgeW91IG1heSByZW1vdmUgdGhlbSB5b3Vyc2VsZiBpZiB5b3Ugd2FudCB0by5cbiIKKyJBbiBlbXB0eSBtZXNzYWdlIGFib3J0cyB0aGUgY29tbWl0LlxuIgorbXNnc3RyICIiCisiVmV1aWxsZXogc2Fpc2lyIGxlIG1lc3NhZ2UgZGUgdmFsaWRhdGlvbiBwb3VyIHZvcyBtb2RpZmljYXRpb25zLiBMZXMgbGlnbmVzXG4iCisiY29tbWVuw6dhbnQgcGFyICclYycgc2Vyb250IGNvbnNlcnbDqWVzIDsgdm91cyBwb3V2ZXogbGVzIHN1cHByaW1lciB2b3VzLW3Dqm1lXG4iCisic2kgdm91cyBsZSBzb3VoYWl0ZXouIFVuIG1lc3NhZ2UgdmlkZSBhYmFuZG9ubmUgbGEgdmFsaWRhdGlvbi5cbiIKKworIzogYnVpbHRpbi9jb21taXQuYzo3NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXNBdXRob3I6ICAgICVzIgorbXNnc3RyICIlc0F1dGV1ciA6ICAgICAlcyIKKworIzogYnVpbHRpbi9jb21taXQuYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXNDb21taXR0ZXI6ICVzIgorbXNnc3RyICIlc1ZhbGlkYXRldXIgOiAlcyIKKworIzogYnVpbHRpbi9jb21taXQuYzo3ODIKK21zZ2lkICJDYW5ub3QgcmVhZCBpbmRleCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBsaXJlIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODE5Cittc2dpZCAiRXJyb3IgYnVpbGRpbmcgdHJlZXMiCittc2dzdHIgIkVycmV1ciBsb3JzIGRlIGxhIGNvbnN0cnVjdGlvbiBkZXMgYXJicmVzIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjgzNCBidWlsdGluL3RhZy5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBtZXNzYWdlIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24uXG4iCittc2dzdHIgIlZldWlsbGV6IGZvdXJuaXIgbGUgbWVzc2FnZSBlbiB1dGlsaXNhbnQgbCdvcHRpb24gLW0gb3UgLUYuXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGV4aXN0aW5nIGF1dGhvciBmb3VuZCB3aXRoICclcyciCittc2dzdHIgIkF1Y3VuIGF1dGV1ciBleGlzdGFudCB0cm91dsOpIGF2ZWMgJyVzJyIKKworIzogYnVpbHRpbi9jb21taXQuYzo5NDYgYnVpbHRpbi9jb21taXQuYzoxMTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdW50cmFja2VkIGZpbGVzIG1vZGUgJyVzJyIKK21zZ3N0ciAiTW9kZSBkZSBmaWNoaWVyIG5vbiBzdWl2aSBpbnZhbGlkZSAnJXMnIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjk3NgorbXNnaWQgIlVzaW5nIGJvdGggLS1yZXNldC1hdXRob3IgYW5kIC0tYXV0aG9yIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCittc2dzdHIgIkwndXRpbGlzYXRpb24gc2ltdWx0YW7DqWUgZGUgLS1yZXNldC1hdXRob3IgZXQgLS1hdXRob3IgbidhIHBhcyBkZSBzZW5zIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjk4NworbXNnaWQgIllvdSBoYXZlIG5vdGhpbmcgdG8gYW1lbmQuIgorbXNnc3RyICJJbCBuJ3kgYSByaWVuIMOgIGNvcnJpZ2VyLiIKKworIzogYnVpbHRpbi9jb21taXQuYzo5OTAKK21zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSAtLSBjYW5ub3QgYW1lbmQuIgorbXNnc3RyICJWb3VzIMOqdGVzIGVuIHBsZWluZSBmdXNpb24gLS0gaW1wb3NzaWJsZSBkZSBjb3JyaWdlciAoYW1lbmQpLiIKKworIzogYnVpbHRpbi9jb21taXQuYzo5OTIKK21zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBjaGVycnktcGljayAtLSBjYW5ub3QgYW1lbmQuIgorbXNnc3RyICJWb3VzIMOqdGVzIGVuIHBsZWluIHBpY29yYWdlIC0tIGltcG9zc2libGUgZGUgY29ycmlnZXIgKGFtZW5kKS4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTk1Cittc2dpZCAiT3B0aW9ucyAtLXNxdWFzaCBhbmQgLS1maXh1cCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKK21zZ3N0ciAiTGVzIG9wdGlvbnMgLS1zcXVhc2ggZXQgLS1maXh1cCBuZSBwZXV2ZW50IHBhcyDDqnRyZSB1dGlsaXPDqWVzIGVuc2VtYmxlIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEwMDUKK21zZ2lkICJPbmx5IG9uZSBvZiAtYy8tQy8tRi8tLWZpeHVwIGNhbiBiZSB1c2VkLiIKK21zZ3N0ciAiVW5lIHNldWxlIG9wdGlvbiBwYXJtaSAtYy8tQy8tRi8tLWZpeHVwIHBldXQgw6p0cmUgdXRpbGlzw6llLiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDA3Cittc2dpZCAiT3B0aW9uIC1tIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIC1jLy1DLy1GLy0tZml4dXAuIgorbXNnc3RyICJMJ29wdGlvbiAtbSBuZSBwZXV0IHBhcyDDqnRyZSBjb21iaW7DqWUgYXZlYyAtYy8tQy8tRi8tLWZpeHVwLiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDE1Cittc2dpZCAiLS1yZXNldC1hdXRob3IgY2FuIGJlIHVzZWQgb25seSB3aXRoIC1DLCAtYyBvciAtLWFtZW5kLiIKK21zZ3N0ciAiLS1yZXNldC1hdXRob3IgbmUgcGV1dCDDqnRyZSB1dGlsaXPDqSBxdSdhdmVjIC1DLCAtYyBvdSAtLWFtZW5kLiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDMyCittc2dpZCAiT25seSBvbmUgb2YgLS1pbmNsdWRlLy0tb25seS8tLWFsbC8tLWludGVyYWN0aXZlLy0tcGF0Y2ggY2FuIGJlIHVzZWQuIgorbXNnc3RyICJVbmUgc2V1bGUgb3B0aW9uIHBhcm1pIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIHBldXQgw6p0cmUgdXRpbGlzw6llLiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDM0Cittc2dpZCAiTm8gcGF0aHMgd2l0aCAtLWluY2x1ZGUvLS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgorbXNnc3RyICJBdWN1biBjaGVtaW4gYXZlYyBsZXMgb3B0aW9ucyAtLWluY2x1ZGUvLS1vbmx5IG4nYSBwYXMgZGUgc2Vucy4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNgorbXNnaWQgIkNsZXZlci4uLiBhbWVuZGluZyB0aGUgbGFzdCBvbmUgd2l0aCBkaXJ0eSBpbmRleC4iCittc2dzdHIgIk1hbGluLi4uIGNvcnJlY3Rpb24gZHUgZGVybmllciBhdmVjIHVuIGluZGV4IHNhbGUuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEwMzgKK21zZ2lkICJFeHBsaWNpdCBwYXRocyBzcGVjaWZpZWQgd2l0aG91dCAtaSBub3IgLW87IGFzc3VtaW5nIC0tb25seSBwYXRocy4uLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNDggYnVpbHRpbi90YWcuYzo1NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBjbGVhbnVwIG1vZGUgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDUzCittc2dpZCAiUGF0aHMgd2l0aCAtYSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTkgYnVpbHRpbi9jb21taXQuYzoxMTk0Cittc2dpZCAiLS1sb25nIGFuZCAteiBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1NCBidWlsdGluL2NvbW1pdC5jOjEzOTAKK21zZ2lkICJzaG93IHN0YXR1cyBjb25jaXNlbHkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMTU2IGJ1aWx0aW4vY29tbWl0LmM6MTM5MgorbXNnaWQgInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1OCBidWlsdGluL2NvbW1pdC5jOjEzOTQgYnVpbHRpbi9wdXNoLmM6NDI2Cittc2dpZCAibWFjaGluZS1yZWFkYWJsZSBvdXRwdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMTYxIGJ1aWx0aW4vY29tbWl0LmM6MTM5NgorbXNnaWQgInNob3cgc3RhdHVzIGluIGxvbmcgZm9ybWF0IChkZWZhdWx0KSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjExNjQgYnVpbHRpbi9jb21taXQuYzoxMzk5Cittc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMTY2IGJ1aWx0aW4vY29tbWl0LmM6MTQwMiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU5CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYyIGJ1aWx0aW4vdGFnLmM6NDU5Cittc2dpZCAibW9kZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjExNjcgYnVpbHRpbi9jb21taXQuYzoxNDAyCittc2dpZCAic2hvdyB1bnRyYWNrZWQgZmlsZXMsIG9wdGlvbmFsIG1vZGVzOiBhbGwsIG5vcm1hbCwgbm8uIChEZWZhdWx0OiBhbGwpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MAorbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjExNzEgcGFyc2Utb3B0aW9ucy5oOjE1MQorbXNnaWQgIndoZW4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMTcyCittc2dpZCAiIgorImlnbm9yZSBjaGFuZ2VzIHRvIHN1Ym1vZHVsZXMsIG9wdGlvbmFsIHdoZW46IGFsbCwgZGlydHksIHVudHJhY2tlZC4gIgorIihEZWZhdWx0OiBhbGwpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3NAorbXNnaWQgImxpc3QgdW50cmFja2VkIGZpbGVzIGluIGNvbHVtbnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMjQ4Cittc2dpZCAiY291bGRuJ3QgbG9vayB1cCBuZXdseSBjcmVhdGVkIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNTAKK21zZ2lkICJjb3VsZCBub3QgcGFyc2UgbmV3bHkgY3JlYXRlZCBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMjkxCittc2dpZCAiZGV0YWNoZWQgSEVBRCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEyOTMKK21zZ2lkICIgKHJvb3QtY29tbWl0KSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNjAKK21zZ2lkICJzdXBwcmVzcyBzdW1tYXJ5IGFmdGVyIHN1Y2Nlc3NmdWwgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MQorbXNnaWQgInNob3cgZGlmZiBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNjMKK21zZ2lkICJDb21taXQgbWVzc2FnZSBvcHRpb25zIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NCBidWlsdGluL3RhZy5jOjQ1NworbXNnaWQgInJlYWQgbWVzc2FnZSBmcm9tIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzY1Cittc2dpZCAiYXV0aG9yIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQorbXNnaWQgIm92ZXJyaWRlIGF1dGhvciBmb3IgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NiBidWlsdGluL2djLmM6MTc4Cittc2dpZCAiZGF0ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNjYKK21zZ2lkICJvdmVycmlkZSBkYXRlIGZvciBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzY3IGJ1aWx0aW4vbWVyZ2UuYzoyMDggYnVpbHRpbi9ub3Rlcy5jOjUzMworIzogYnVpbHRpbi9ub3Rlcy5jOjY5MCBidWlsdGluL3RhZy5jOjQ1NQorbXNnaWQgIm1lc3NhZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzY3Cittc2dpZCAiY29tbWl0IG1lc3NhZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzY4Cittc2dpZCAicmV1c2UgYW5kIGVkaXQgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzY5Cittc2dpZCAicmV1c2UgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzcwCittc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gZml4dXAgc3BlY2lmaWVkIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNzEKK21zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBzcXVhc2ggc3BlY2lmaWVkIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNzIKK21zZ2lkICJ0aGUgY29tbWl0IGlzIGF1dGhvcmVkIGJ5IG1lIG5vdyAodXNlZCB3aXRoIC1DLy1jLy0tYW1lbmQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MyBidWlsdGluL2xvZy5jOjExMTMgYnVpbHRpbi9yZXZlcnQuYzoxMDkKK21zZ2lkICJhZGQgU2lnbmVkLW9mZi1ieToiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzc0Cittc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NQorbXNnaWQgImZvcmNlIGVkaXQgb2YgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NgorbXNnaWQgImRlZmF1bHQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzc2IGJ1aWx0aW4vdGFnLmM6NDYwCittc2dpZCAiaG93IHRvIHN0cmlwIHNwYWNlcyBhbmQgI2NvbW1lbnRzIGZyb20gbWVzc2FnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNzcKK21zZ2lkICJpbmNsdWRlIHN0YXR1cyBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNzggYnVpbHRpbi9tZXJnZS5jOjIxNSBidWlsdGluL3RhZy5jOjQ2MQorbXNnaWQgImtleSBpZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNzkgYnVpbHRpbi9tZXJnZS5jOjIxNgorbXNnaWQgIkdQRyBzaWduIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjLiBlbmQgY29tbWl0IG1lc3NhZ2Ugb3B0aW9ucworIzogYnVpbHRpbi9jb21taXQuYzoxMzgyCittc2dpZCAiQ29tbWl0IGNvbnRlbnRzIG9wdGlvbnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzgzCittc2dpZCAiY29tbWl0IGFsbCBjaGFuZ2VkIGZpbGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NAorbXNnaWQgImFkZCBzcGVjaWZpZWQgZmlsZXMgdG8gaW5kZXggZm9yIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzODUKK21zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBmaWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzODYKK21zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBjaGFuZ2VzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NworbXNnaWQgImNvbW1pdCBvbmx5IHNwZWNpZmllZCBmaWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzODgKK21zZ2lkICJieXBhc3MgcHJlLWNvbW1pdCBob29rIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OQorbXNnaWQgInNob3cgd2hhdCB3b3VsZCBiZSBjb21taXR0ZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDAwCittc2dpZCAiYW1lbmQgcHJldmlvdXMgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwMQorbXNnaWQgImJ5cGFzcyBwb3N0LXJld3JpdGUgaG9vayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MDYKK21zZ2lkICJvayB0byByZWNvcmQgYW4gZW1wdHkgY2hhbmdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwOQorbXNnaWQgIm9rIHRvIHJlY29yZCBhIGNoYW5nZSB3aXRoIGFuIGVtcHR5IG1lc3NhZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDQxCittc2dpZCAiY291bGQgbm90IHBhcnNlIEhFQUQgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3OSBidWlsdGluL21lcmdlLmM6NTEwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBvcGVuICclcycgZm9yIHJlYWRpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDg2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvcnJ1cHQgTUVSR0VfSEVBRCBmaWxlICglcykiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDkzCittc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IHJlYWQgY29tbWl0IG1lc3NhZ2U6ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTUyNgorIywgYy1mb3JtYXQKK21zZ2lkICJBYm9ydGluZyBjb21taXQ7IHlvdSBkaWQgbm90IGVkaXQgdGhlIG1lc3NhZ2UuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNTQ2IGJ1aWx0aW4vbWVyZ2UuYzo4NDcgYnVpbHRpbi9tZXJnZS5jOjg3MgorbXNnaWQgImZhaWxlZCB0byB3cml0ZSBjb21taXQgb2JqZWN0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU2NworbXNnaWQgImNhbm5vdCBsb2NrIEhFQUQgcmVmIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3MQorbXNnaWQgImNhbm5vdCB1cGRhdGUgSEVBRCByZWYiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNTgyCittc2dpZCAiIgorIlJlcG9zaXRvcnkgaGFzIGJlZW4gdXBkYXRlZCwgYnV0IHVuYWJsZSB0byB3cml0ZVxuIgorIm5ld19pbmRleCBmaWxlLiBDaGVjayB0aGF0IGRpc2sgaXMgbm90IGZ1bGwgb3IgcXVvdGEgaXNcbiIKKyJub3QgZXhjZWVkZWQsIGFuZCB0aGVuIFwiZ2l0IHJlc2V0IEhFQURcIiB0byByZWNvdmVyLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjcKK21zZ2lkICJnaXQgY29uZmlnIFtvcHRpb25zXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjUxCittc2dpZCAiQ29uZmlnIGZpbGUgbG9jYXRpb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo1MgorbXNnaWQgInVzZSBnbG9iYWwgY29uZmlnIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo1MworbXNnaWQgInVzZSBzeXN0ZW0gY29uZmlnIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo1NAorbXNnaWQgInVzZSByZXBvc2l0b3J5IGNvbmZpZyBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKK21zZ2lkICJ1c2UgZ2l2ZW4gY29uZmlnIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo1NgorbXNnaWQgIkFjdGlvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjU3Cittc2dpZCAiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo1OAorbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjU5Cittc2dpZCAiZ2V0IHZhbHVlcyBmb3IgcmVnZXhwOiBuYW1lLXJlZ2V4IFt2YWx1ZS1yZWdleF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo2MAorbXNnaWQgInJlcGxhY2UgYWxsIG1hdGNoaW5nIHZhcmlhYmxlczogbmFtZSB2YWx1ZSBbdmFsdWVfcmVnZXhdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKK21zZ2lkICJhZGQgYSBuZXcgdmFyaWFibGU6IG5hbWUgdmFsdWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo2MgorbXNnaWQgInJlbW92ZSBhIHZhcmlhYmxlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo2MworbXNnaWQgInJlbW92ZSBhbGwgbWF0Y2hlczogbmFtZSBbdmFsdWUtcmVnZXhdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKK21zZ2lkICJyZW5hbWUgc2VjdGlvbjogb2xkLW5hbWUgbmV3LW5hbWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo2NQorbXNnaWQgInJlbW92ZSBhIHNlY3Rpb246IG5hbWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo2NgorbXNnaWQgImxpc3QgYWxsIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjcKK21zZ2lkICJvcGVuIGFuIGVkaXRvciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjY4IGJ1aWx0aW4vY29uZmlnLmM6NjkKK21zZ2lkICJzbG90IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKK21zZ2lkICJmaW5kIHRoZSBjb2xvciBjb25maWd1cmVkOiBbZGVmYXVsdF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo2OQorbXNnaWQgImZpbmQgdGhlIGNvbG9yIHNldHRpbmc6IFtzdGRvdXQtaXMtdHR5XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjcwCittc2dpZCAiVHlwZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjcxCittc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzIKK21zZ2lkICJ2YWx1ZSBpcyBkZWNpbWFsIG51bWJlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjczCittc2dpZCAidmFsdWUgaXMgLS1ib29sIG9yIC0taW50IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzQKK21zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKK21zZ2lkICJPdGhlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjc2Cittc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKK21zZ2lkICJyZXNwZWN0IGluY2x1ZGUgZGlyZWN0aXZlcyBvbiBsb29rdXAiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6ODIKK21zZ2lkICJnaXQgY291bnQtb2JqZWN0cyBbLXZdIFstSCB8IC0taHVtYW4tcmVhZGFibGVdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk3Cittc2dpZCAicHJpbnQgc2l6ZXMgaW4gaHVtYW4gcmVhZGFibGUgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNQorbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gPGNvbW1pdHRpc2g+KiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKK21zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIC0tZGlydHkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzMworIywgYy1mb3JtYXQKK21zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIG5vdCBhdmFpbGFibGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzNworIywgYy1mb3JtYXQKK21zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIGhhcyBubyBlbWJlZGRlZCBuYW1lIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidGFnICclcycgaXMgcmVhbGx5ICclcycgaGVyZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBhIHZhbGlkIG9iamVjdCBuYW1lICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgdmFsaWQgJyVzJyBvYmplY3QiCittc2dzdHIgIiVzIG4nZXN0IHBhcyB1biBvYmpldCAnJXMnIHZhbGlkZSIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICJubyB0YWcgZXhhY3RseSBtYXRjaGVzICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWFyY2hpbmcgdG8gZGVzY3JpYmUgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgImZpbmlzaGVkIHNlYXJjaCBhdCAlc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vIGFubm90YXRlZCB0YWdzIGNhbiBkZXNjcmliZSAnJXMnLlxuIgorIkhvd2V2ZXIsIHRoZXJlIHdlcmUgdW5hbm5vdGF0ZWQgdGFnczogdHJ5IC0tdGFncy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm8gdGFncyBjYW4gZGVzY3JpYmUgJyVzJy5cbiIKKyJUcnkgLS1hbHdheXMsIG9yIGNyZWF0ZSBzb21lIHRhZ3MuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhdmVyc2VkICVsdSBjb21taXRzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW9yZSB0aGFuICVpIHRhZ3MgZm91bmQ7IGxpc3RlZCAlaSBtb3N0IHJlY2VudFxuIgorImdhdmUgdXAgc2VhcmNoIGF0ICVzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwMgorbXNnaWQgImZpbmQgdGhlIHRhZyB0aGF0IGNvbWVzIGFmdGVyIHRoZSBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwMworbXNnaWQgImRlYnVnIHNlYXJjaCBzdHJhdGVneSBvbiBzdGRlcnIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNAorbXNnaWQgInVzZSBhbnkgcmVmIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDUKK21zZ2lkICJ1c2UgYW55IHRhZywgZXZlbiB1bmFubm90YXRlZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA2Cittc2dpZCAiYWx3YXlzIHVzZSBsb25nIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5Cittc2dpZCAib25seSBvdXRwdXQgZXhhY3QgbWF0Y2hlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCittc2dpZCAiY29uc2lkZXIgPG4+IG1vc3QgcmVjZW50IHRhZ3MgKGRlZmF1bHQ6IDEwKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEzCittc2dpZCAib25seSBjb25zaWRlciB0YWdzIG1hdGNoaW5nIDxwYXR0ZXJuPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE1IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzgKK21zZ2lkICJzaG93IGFiYnJldmlhdGVkIGNvbW1pdCBvYmplY3QgYXMgZmFsbGJhY2siCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNgorbXNnaWQgIm1hcmsiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNworbXNnaWQgImFwcGVuZCA8bWFyaz4gb24gZGlydHkgd29ya2luZyB0cmVlIChkZWZhdWx0OiBcIi1kaXJ0eVwiKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDM1Cittc2dpZCAiLS1sb25nIGlzIGluY29tcGF0aWJsZSB3aXRoIC0tYWJicmV2PTAiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2MQorbXNnaWQgIk5vIG5hbWVzIGZvdW5kLCBjYW5ub3QgZGVzY3JpYmUgYW55dGhpbmcuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODEKK21zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdHRpc2hlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2RpZmYuYzo3OQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnOiBub3QgYSByZWd1bGFyIGZpbGUgb3Igc3ltbGluayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2RpZmYuYzoyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBvcHRpb246ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGlmZi5jOjMwNQorbXNnaWQgIk5vdCBhIGdpdCByZXBvc2l0b3J5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGlmZi5jOjM0OAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9iamVjdCAnJXMnIGdpdmVuLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2RpZmYuYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9yZSB0aGFuICVkIHRyZWVzIGdpdmVuOiAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGlmZi5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3JlIHRoYW4gdHdvIGJsb2JzIGdpdmVuOiAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGlmZi5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmhhbmRsZWQgb2JqZWN0ICclcycgZ2l2ZW4uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzoyMgorbXNnaWQgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1OAorbXNnaWQgInNob3cgcHJvZ3Jlc3MgYWZ0ZXIgPG4+IG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2MAorbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiBzaWduZWQgdGFncyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYzCittc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHRhZ3MgdGhhdCB0YWcgZmlsdGVyZWQgb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2Cittc2dpZCAiRHVtcCBtYXJrcyB0byB0aGlzIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2OAorbXNnaWQgIkltcG9ydCBtYXJrcyBmcm9tIHRoaXMgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcwCittc2dpZCAiRmFrZSBhIHRhZ2dlciB3aGVuIHRhZ3MgbGFjayBvbmUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MgorbXNnaWQgIk91dHB1dCBmdWxsIHRyZWUgZm9yIGVhY2ggY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKK21zZ2lkICJVc2UgdGhlIGRvbmUgZmVhdHVyZSB0byB0ZXJtaW5hdGUgdGhlIHN0cmVhbSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1Cittc2dpZCAiU2tpcCBvdXRwdXQgb2YgYmxvYiBkYXRhIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyMAorbXNnaWQgImdpdCBmZXRjaCBbPG9wdGlvbnM+XSBbPHJlcG9zaXRvcnk+IFs8cmVmc3BlYz4uLi5dXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MjEKK21zZ2lkICJnaXQgZmV0Y2ggWzxvcHRpb25zPl0gPGdyb3VwPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MjIKK21zZ2lkICJnaXQgZmV0Y2ggLS1tdWx0aXBsZSBbPG9wdGlvbnM+XSBbKDxyZXBvc2l0b3J5PiB8IDxncm91cD4pLi4uXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MjMKK21zZ2lkICJnaXQgZmV0Y2ggLS1hbGwgWzxvcHRpb25zPl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjYwCittc2dpZCAiZmV0Y2ggZnJvbSBhbGwgcmVtb3RlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NjIKK21zZ2lkICJhcHBlbmQgdG8gLmdpdC9GRVRDSF9IRUFEIGluc3RlYWQgb2Ygb3ZlcndyaXRpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjY0Cittc2dpZCAicGF0aCB0byB1cGxvYWQgcGFjayBvbiByZW1vdGUgZW5kIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo2NQorbXNnaWQgImZvcmNlIG92ZXJ3cml0ZSBvZiBsb2NhbCBicmFuY2giCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjY3Cittc2dpZCAiZmV0Y2ggZnJvbSBtdWx0aXBsZSByZW1vdGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo2OQorbXNnaWQgImZldGNoIGFsbCB0YWdzIGFuZCBhc3NvY2lhdGVkIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjcxCittc2dpZCAiZG8gbm90IGZldGNoIGFsbCB0YWdzICgtLW5vLXRhZ3MpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3MworbXNnaWQgInBydW5lIHJlbW90ZS10cmFja2luZyBicmFuY2hlcyBubyBsb25nZXIgb24gcmVtb3RlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NAorbXNnaWQgIm9uLWRlbWFuZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NzUKK21zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBmZXRjaGluZyBvZiBzdWJtb2R1bGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3OQorbXNnaWQgImtlZXAgZG93bmxvYWRlZCBwYWNrIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MQorbXNnaWQgImFsbG93IHVwZGF0aW5nIG9mIEhFQUQgcmVmIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4NAorbXNnaWQgImRlZXBlbiBoaXN0b3J5IG9mIHNoYWxsb3cgY2xvbmUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjg2Cittc2dpZCAiY29udmVydCB0byBhIGNvbXBsZXRlIHJlcG9zaXRvcnkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTEzMAorbXNnaWQgImRpciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6ODkKK21zZ2lkICJwcmVwZW5kIHRoaXMgdG8gc3VibW9kdWxlIHBhdGggb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MgorbXNnaWQgImRlZmF1bHQgbW9kZSBmb3IgcmVjdXJzaW9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyMDQKK21zZ2lkICJDb3VsZG4ndCBmaW5kIHJlbW90ZSByZWYgSEVBRCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIm9iamVjdCAlcyBub3QgZm91bmQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjI2MgorbXNnaWQgIlt1cCB0byBkYXRlXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiEgJS0qcyAlLSpzIC0+ICVzICAoY2FuJ3QgZmV0Y2ggaW4gY3VycmVudCBicmFuY2gpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyNzcgYnVpbHRpbi9mZXRjaC5jOjM2MworbXNnaWQgIltyZWplY3RlZF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjI4OAorbXNnaWQgIlt0YWcgdXBkYXRlXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MjkwIGJ1aWx0aW4vZmV0Y2guYzozMjUgYnVpbHRpbi9mZXRjaC5jOjM0MworbXNnaWQgIiAgKHVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MzA4Cittc2dpZCAiW25ldyB0YWddIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMTEKK21zZ2lkICJbbmV3IGJyYW5jaF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjMxNAorbXNnaWQgIltuZXcgcmVmXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MzU5Cittc2dpZCAidW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjM1OQorbXNnaWQgImZvcmNlZCB1cGRhdGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjM2NQorbXNnaWQgIihub24tZmFzdC1mb3J3YXJkKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6Mzk2IGJ1aWx0aW4vZmV0Y2guYzo2ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgImltcG9zc2libGUgZCdvdXZyaXIgJXMgOiAlc1xuIgorCisjOiBidWlsdGluL2ZldGNoLmM6NDA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHNcbiIKK21zZ3N0ciAiJXMgbidhIHBhcyBlbnZvecOpIHRvdXMgbGVzIG9iamV0cyBuw6ljZXNzYWlyZXNcbiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJGcm9tICUuKnNcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJzb21lIGxvY2FsIHJlZnMgY291bGQgbm90IGJlIHVwZGF0ZWQ7IHRyeSBydW5uaW5nXG4iCisiICdnaXQgcmVtb3RlIHBydW5lICVzJyB0byByZW1vdmUgYW55IG9sZCwgY29uZmxpY3RpbmcgYnJhbmNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjU1MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAoJXMgd2lsbCBiZWNvbWUgZGFuZ2xpbmcpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgKCVzIGhhcyBiZWNvbWUgZGFuZ2xpbmcpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1NjAKK21zZ2lkICJbZGVsZXRlZF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjU2MSBidWlsdGluL3JlbW90ZS5jOjEwNTUKK21zZ2lkICIobm9uZSkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjY3OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWZ1c2luZyB0byBmZXRjaCBpbnRvIGN1cnJlbnQgYnJhbmNoICVzIG9mIG5vbi1iYXJlIHJlcG9zaXRvcnkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjcxMgorIywgYy1mb3JtYXQKK21zZ2lkICJEb24ndCBrbm93IGhvdyB0byBmZXRjaCBmcm9tICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3B0aW9uIFwiJXNcIiB2YWx1ZSBcIiVzXCIgaXMgbm90IHZhbGlkIGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wdGlvbiBcIiVzXCIgaXMgaWdub3JlZCBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkZldGNoaW5nICVzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjg5NiBidWlsdGluL3JlbW90ZS5jOjEwMAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmV0Y2ggJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjkxNQorbXNnaWQgIiIKKyJObyByZW1vdGUgcmVwb3NpdG9yeSBzcGVjaWZpZWQuICBQbGVhc2UsIHNwZWNpZnkgZWl0aGVyIGEgVVJMIG9yIGFcbiIKKyJyZW1vdGUgbmFtZSBmcm9tIHdoaWNoIG5ldyByZXZpc2lvbnMgc2hvdWxkIGJlIGZldGNoZWQuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MzUKK21zZ2lkICJZb3UgbmVlZCB0byBzcGVjaWZ5IGEgdGFnIG5hbWUuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5ODEKK21zZ2lkICItLWRlcHRoIGFuZCAtLXVuc2hhbGxvdyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6OTgzCittc2dpZCAiLS11bnNoYWxsb3cgb24gYSBjb21wbGV0ZSByZXBvc2l0b3J5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjEwMDIKK21zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCB0YWtlIGEgcmVwb3NpdG9yeSBhcmd1bWVudCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MTAwNAorbXNnaWQgImZldGNoIC0tYWxsIGRvZXMgbm90IG1ha2Ugc2Vuc2Ugd2l0aCByZWZzcGVjcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MTAxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyBzdWNoIHJlbW90ZSBvciByZW1vdGUgZ3JvdXA6ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDIzCittc2dpZCAiRmV0Y2hpbmcgYSBncm91cCBhbmQgc3BlY2lmeWluZyByZWZzcGVjcyBkb2VzIG5vdCBtYWtlIHNlbnNlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjEzCittc2dpZCAiZ2l0IGZtdC1tZXJnZS1tc2cgWy1tIDxtZXNzYWdlPl0gWy0tbG9nWz08bj5dfC0tbm8tbG9nXSBbLS1maWxlIDxmaWxlPl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxODggYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc1CisjOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyMzkKK21zZ2lkICJuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NAorbXNnaWQgInBvcHVsYXRlIGxvZyB3aXRoIGF0IG1vc3QgPG4+IGVudHJpZXMgZnJvbSBzaG9ydGxvZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjcKK21zZ2lkICJhbGlhcyBmb3IgLS1sb2cgKGRlcHJlY2F0ZWQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY3MAorbXNnaWQgInRleHQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjcxCittc2dpZCAidXNlIDx0ZXh0PiBhcyBzdGFydCBvZiBtZXNzYWdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY3MgorbXNnaWQgImZpbGUgdG8gcmVhZCBmcm9tIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTc5Cittc2dpZCAiZ2l0IGZvci1lYWNoLXJlZiBbb3B0aW9uc10gWzxwYXR0ZXJuPl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTQKK21zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHNoZWxscyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk5NgorbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3IgcGVybCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk5OAorbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3IgcHl0aG9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwMAorbXNnaWQgInF1b3RlIHBsYWNlaG9sZGVycyBzdWl0YWJseSBmb3IgdGNsIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwMworbXNnaWQgInNob3cgb25seSA8bj4gbWF0Y2hlZCByZWZzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwNAorbXNnaWQgImZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDQKK21zZ2lkICJmb3JtYXQgdG8gdXNlIGZvciB0aGUgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6MTAwNQorbXNnaWQgImtleSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDYKK21zZ2lkICJmaWVsZCBuYW1lIHRvIHNvcnQgb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mc2NrLmM6NjA4Cittc2dpZCAiZ2l0IGZzY2sgW29wdGlvbnNdIFs8b2JqZWN0Pi4uLl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mc2NrLmM6NjE0Cittc2dpZCAic2hvdyB1bnJlYWNoYWJsZSBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNQorbXNnaWQgInNob3cgZGFuZ2xpbmcgb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZzY2suYzo2MTYKK21zZ2lkICJyZXBvcnQgdGFncyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZzY2suYzo2MTcKK21zZ2lkICJyZXBvcnQgcm9vdCBub2RlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZzY2suYzo2MTgKK21zZ2lkICJtYWtlIGluZGV4IG9iamVjdHMgaGVhZCBub2RlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZzY2suYzo2MTkKK21zZ2lkICJtYWtlIHJlZmxvZ3MgaGVhZCBub2RlcyAoZGVmYXVsdCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mc2NrLmM6NjIwCittc2dpZCAiYWxzbyBjb25zaWRlciBwYWNrcyBhbmQgYWx0ZXJuYXRlIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mc2NrLmM6NjIxCittc2dpZCAiZW5hYmxlIG1vcmUgc3RyaWN0IGNoZWNraW5nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZnNjay5jOjYyMworbXNnaWQgIndyaXRlIGRhbmdsaW5nIG9iamVjdHMgaW4gLmdpdC9sb3N0LWZvdW5kIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZnNjay5jOjYyNCBidWlsdGluL3BydW5lLmM6MTM0Cittc2dpZCAic2hvdyBwcm9ncmVzcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2djLmM6MjIKK21zZ2lkICJnaXQgZ2MgW29wdGlvbnNdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ2MuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkICVzOiAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ2MuYzo5MAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnNhbmVseSBsb25nIG9iamVjdCBkaXJlY3RvcnkgJS4qcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2djLmM6MTc5Cittc2dpZCAicHJ1bmUgdW5yZWZlcmVuY2VkIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9nYy5jOjE4MQorbXNnaWQgImJlIG1vcmUgdGhvcm91Z2ggKGluY3JlYXNlZCBydW50aW1lKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2djLmM6MTgyCittc2dpZCAiZW5hYmxlIGF1dG8tZ2MgbW9kZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2djLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJBdXRvIHBhY2tpbmcgdGhlIHJlcG9zaXRvcnkgZm9yIG9wdGltdW0gcGVyZm9ybWFuY2UuIFlvdSBtYXkgYWxzb1xuIgorInJ1biBcImdpdCBnY1wiIG1hbnVhbGx5LiBTZWUgXCJnaXQgaGVscCBnY1wiIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ2MuYzoyNDkKK21zZ2lkICIiCisiVGhlcmUgYXJlIHRvbyBtYW55IHVucmVhY2hhYmxlIGxvb3NlIG9iamVjdHM7IHJ1biAnZ2l0IHBydW5lJyB0byByZW1vdmUgdGhlbS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6MjIKK21zZ2lkICJnaXQgZ3JlcCBbb3B0aW9uc10gWy1lXSA8cGF0dGVybj4gWzxyZXY+Li4uXSBbWy0tXSA8cGF0aD4uLi5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICJncmVwOiBmYWlsZWQgdG8gY3JlYXRlIHRocmVhZDogJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6MzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBjaGRpcjogJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NDQzIGJ1aWx0aW4vZ3JlcC5jOjQ3OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCB0cmVlICglcykiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBncmVwIGZyb20gb2JqZWN0IG9mIHR5cGUgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NTUxCisjLCBjLWZvcm1hdAorbXNnaWQgInN3aXRjaCBgJWMnIGV4cGVjdHMgYSBudW1lcmljYWwgdmFsdWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NTY4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjQzCittc2dpZCAic2VhcmNoIGluIGluZGV4IGluc3RlYWQgb2YgaW4gdGhlIHdvcmsgdHJlZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NDUKK21zZ2lkICJmaW5kIGluIGNvbnRlbnRzIG5vdCBtYW5hZ2VkIGJ5IGdpdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NDcKK21zZ2lkICJzZWFyY2ggaW4gYm90aCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjQ5Cittc2dpZCAic2VhcmNoIGFsc28gaW4gaWdub3JlZCBmaWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NTIKK21zZ2lkICJzaG93IG5vbi1tYXRjaGluZyBsaW5lcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NTQKK21zZ2lkICJjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1NgorbXNnaWQgIm1hdGNoIHBhdHRlcm5zIG9ubHkgYXQgd29yZCBib3VuZGFyaWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1OAorbXNnaWQgInByb2Nlc3MgYmluYXJ5IGZpbGVzIGFzIHRleHQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjYwCittc2dpZCAiZG9uJ3QgbWF0Y2ggcGF0dGVybnMgaW4gYmluYXJ5IGZpbGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2MworbXNnaWQgImRlc2NlbmQgYXQgbW9zdCA8ZGVwdGg+IGxldmVscyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NjcKK21zZ2lkICJ1c2UgZXh0ZW5kZWQgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NzAKK21zZ2lkICJ1c2UgYmFzaWMgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyAoZGVmYXVsdCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjczCittc2dpZCAiaW50ZXJwcmV0IHBhdHRlcm5zIGFzIGZpeGVkIHN0cmluZ3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6Njc2Cittc2dpZCAidXNlIFBlcmwtY29tcGF0aWJsZSByZWd1bGFyIGV4cHJlc3Npb25zIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQorbXNnaWQgInNob3cgbGluZSBudW1iZXJzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAorbXNnaWQgImRvbid0IHNob3cgZmlsZW5hbWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MQorbXNnaWQgInNob3cgZmlsZW5hbWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MworbXNnaWQgInNob3cgZmlsZW5hbWVzIHJlbGF0aXZlIHRvIHRvcCBkaXJlY3RvcnkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6Njg1Cittc2dpZCAic2hvdyBvbmx5IGZpbGVuYW1lcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NworbXNnaWQgInN5bm9ueW0gZm9yIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MAorbXNnaWQgInNob3cgb25seSB0aGUgbmFtZXMgb2YgZmlsZXMgd2l0aG91dCBtYXRjaCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2OTIKK21zZ2lkICJwcmludCBOVUwgYWZ0ZXIgZmlsZW5hbWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NAorbXNnaWQgInNob3cgdGhlIG51bWJlciBvZiBtYXRjaGVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6Njk1Cittc2dpZCAiaGlnaGxpZ2h0IG1hdGNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6Njk3Cittc2dpZCAicHJpbnQgZW1wdHkgbGluZSBiZXR3ZWVuIG1hdGNoZXMgZnJvbSBkaWZmZXJlbnQgZmlsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6Njk5Cittc2dpZCAic2hvdyBmaWxlbmFtZSBvbmx5IG9uY2UgYWJvdmUgbWF0Y2hlcyBmcm9tIHNhbWUgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3MDIKK21zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBhbmQgYWZ0ZXIgbWF0Y2hlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3MDUKK21zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBtYXRjaGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNworbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYWZ0ZXIgbWF0Y2hlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3MDgKK21zZ2lkICJzaG9ydGN1dCBmb3IgLUMgTlVNIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMQorbXNnaWQgInNob3cgYSBsaW5lIHdpdGggdGhlIGZ1bmN0aW9uIG5hbWUgYmVmb3JlIG1hdGNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzEzCittc2dpZCAic2hvdyB0aGUgc3Vycm91bmRpbmcgZnVuY3Rpb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzE2Cittc2dpZCAicmVhZCBwYXR0ZXJucyBmcm9tIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzE4Cittc2dpZCAibWF0Y2ggPHBhdHRlcm4+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcyMAorbXNnaWQgImNvbWJpbmUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggLWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzMyCittc2dpZCAiaW5kaWNhdGUgaGl0IHdpdGggZXhpdCBzdGF0dXMgd2l0aG91dCBvdXRwdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzM0Cittc2dpZCAic2hvdyBvbmx5IG1hdGNoZXMgZnJvbSBmaWxlcyB0aGF0IG1hdGNoIGFsbCBwYXR0ZXJucyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3MzYKK21zZ2lkICJzaG93IHBhcnNlIHRyZWUgZm9yIGdyZXAgZXhwcmVzc2lvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3NDAKK21zZ2lkICJwYWdlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3NDAKK21zZ2lkICJzaG93IG1hdGNoaW5nIGZpbGVzIGluIHRoZSBwYWdlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3NDMKK21zZ2lkICJhbGxvdyBjYWxsaW5nIG9mIGdyZXAoMSkgKGlnbm9yZWQgYnkgdGhpcyBidWlsZCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzQ0IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKK21zZ2lkICJzaG93IHVzYWdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjgxMQorbXNnaWQgIm5vIHBhdHRlcm4gZ2l2ZW4uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg2NgorbXNnaWQgIi0tb3Blbi1maWxlcy1pbi1wYWdlciBvbmx5IHdvcmtzIG9uIHRoZSB3b3JrdHJlZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo4ODkKK21zZ2lkICItLWNhY2hlZCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIC0tbm8taW5kZXguIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5NAorbXNnaWQgIi0tbm8taW5kZXggb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCByZXZzLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo4OTcKK21zZ2lkICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBjYW5ub3QgYmUgdXNlZCBmb3IgdHJhY2tlZCBjb250ZW50cy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6OTA1Cittc2dpZCAiYm90aCAtLWNhY2hlZCBhbmQgdHJlZXMgYXJlIGdpdmVuLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NjAKK21zZ2lkICIiCisiZ2l0IGhhc2gtb2JqZWN0IFstdCA8dHlwZT5dIFstd10gWy0tcGF0aD08ZmlsZT58LS1uby1maWx0ZXJzXSBbLS1zdGRpbl0gWy0tXSAiCisiPGZpbGU+Li4uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo2MQorbXNnaWQgImdpdCBoYXNoLW9iamVjdCAgLS1zdGRpbi1wYXRocyA8IDxsaXN0LW9mLXBhdGhzPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzIKK21zZ2lkICJ0eXBlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3MgorbXNnaWQgIm9iamVjdCB0eXBlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3MworbXNnaWQgIndyaXRlIHRoZSBvYmplY3QgaW50byB0aGUgb2JqZWN0IGRhdGFiYXNlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NAorbXNnaWQgInJlYWQgdGhlIG9iamVjdCBmcm9tIHN0ZGluIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NgorbXNnaWQgInN0b3JlIGZpbGUgYXMgaXMgd2l0aG91dCBmaWx0ZXJzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NworbXNnaWQgInByb2Nlc3MgZmlsZSBhcyBpdCB3ZXJlIGZyb20gdGhpcyBwYXRoIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQzCittc2dpZCAicHJpbnQgYWxsIGF2YWlsYWJsZSBjb21tYW5kcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0NAorbXNnaWQgInByaW50IGxpc3Qgb2YgdXNlZnVsIGd1aWRlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0NQorbXNnaWQgInNob3cgbWFuIHBhZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDYKK21zZ2lkICJzaG93IG1hbnVhbCBpbiB3ZWIgYnJvd3NlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0OAorbXNnaWQgInNob3cgaW5mbyBwYWdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjU0Cittc2dpZCAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1ndWlkZXNdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtjb21tYW5kXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo2NgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bnJlY29nbml6ZWQgaGVscCBmb3JtYXQgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo5NAorbXNnaWQgIkZhaWxlZCB0byBzdGFydCBlbWFjc2NsaWVudC4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6MTA3Cittc2dpZCAiRmFpbGVkIHRvIHBhcnNlIGVtYWNzY2xpZW50IHZlcnNpb24uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJlbWFjc2NsaWVudCB2ZXJzaW9uICclZCcgdG9vIG9sZCAoPCAyMikuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjEzMyBidWlsdGluL2hlbHAuYzoxNjEgYnVpbHRpbi9oZWxwLmM6MTcwIGJ1aWx0aW4vaGVscC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlYyAnJXMnOiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzoyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiclcyc6IHBhdGggZm9yIHVuc3VwcG9ydGVkIG1hbiB2aWV3ZXIuXG4iCisiUGxlYXNlIGNvbnNpZGVyIHVzaW5nICdtYW4uPHRvb2w+LmNtZCcgaW5zdGVhZC4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyInJXMnOiBjbWQgZm9yIHN1cHBvcnRlZCBtYW4gdmlld2VyLlxuIgorIlBsZWFzZSBjb25zaWRlciB1c2luZyAnbWFuLjx0b29sPi5wYXRoJyBpbnN0ZWFkLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJzogdW5rbm93biBtYW4gdmlld2VyLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzozNjgKK21zZ2lkICJubyBtYW4gdmlld2VyIGhhbmRsZWQgdGhlIHJlcXVlc3QiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6Mzc2Cittc2dpZCAibm8gaW5mbyB2aWV3ZXIgaGFuZGxlZCB0aGUgcmVxdWVzdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjIKK21zZ2lkICJEZWZpbmluZyBhdHRyaWJ1dGVzIHBlciBwYXRoIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMworbXNnaWQgIkEgR2l0IGdsb3NzYXJ5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNAorbXNnaWQgIlNwZWNpZmllcyBpbnRlbnRpb25hbGx5IHVudHJhY2tlZCBmaWxlcyB0byBpZ25vcmUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDI1Cittc2dpZCAiRGVmaW5pbmcgc3VibW9kdWxlIHByb3BlcnRpZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDI2Cittc2dpZCAiU3BlY2lmeWluZyByZXZpc2lvbnMgYW5kIHJhbmdlcyBmb3IgR2l0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNworbXNnaWQgIkEgdHV0b3JpYWwgaW50cm9kdWN0aW9uIHRvIEdpdCAoZm9yIHZlcnNpb24gMS41LjEgb3IgbmV3ZXIpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyOAorbXNnaWQgIkFuIG92ZXJ2aWV3IG9mIHJlY29tbWVuZGVkIHdvcmtmbG93cyB3aXRoIEdpdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0NDAKK21zZ2lkICJUaGUgY29tbW9uIEdpdCBndWlkZXMgYXJlOlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2MiBidWlsdGluL2hlbHAuYzo0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDk0CisjLCBjLWZvcm1hdAorbXNnaWQgImBnaXQgJXMnIGlzIGFsaWFzZWQgdG8gYCVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAib2JqZWN0IHR5cGUgbWlzbWF0Y2ggYXQgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjAyCittc2dpZCAib2JqZWN0IG9mIHVuZXhwZWN0ZWQgdHlwZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbGwgJWQgYnl0ZSIKK21zZ2lkX3BsdXJhbCAiY2Fubm90IGZpbGwgJWQgYnl0ZXMiCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDkKK21zZ2lkICJlYXJseSBFT0YiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjUwCittc2dpZCAicmVhZCBlcnJvciBvbiBpbnB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjIKK21zZ2lkICJ1c2VkIG1vcmUgYnl0ZXMgdGhhbiB3ZXJlIGF2YWlsYWJsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjkKK21zZ2lkICJwYWNrIHRvbyBsYXJnZSBmb3IgY3VycmVudCBkZWZpbml0aW9uIG9mIG9mZl90IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjkwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhY2tmaWxlICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA0Cittc2dpZCAicGFjayBzaWduYXR1cmUgbWlzbWF0Y2giCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgInBhY2sgdmVyc2lvbiAlPFBSSXUzMj4gdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgInBhY2sgaGFzIGJhZCBvYmplY3QgYXQgb2Zmc2V0ICVsdTogJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImluZmxhdGUgcmV0dXJuZWQgJWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDk1Cittc2dpZCAib2Zmc2V0IHZhbHVlIG92ZXJmbG93IGZvciBkZWx0YSBiYXNlIG9iamVjdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDMKK21zZ2lkICJkZWx0YSBiYXNlIG9mZnNldCBpcyBvdXQgb2YgYm91bmQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gb2JqZWN0IHR5cGUgJWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQyCittc2dpZCAiY2Fubm90IHByZWFkIHBhY2sgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAicHJlbWF0dXJlIGVuZCBvZiBwYWNrIGZpbGUsICVsdSBieXRlIG1pc3NpbmciCittc2dpZF9wbHVyYWwgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZXMgbWlzc2luZyIKK21zZ3N0clswXSAiIgorbXNnc3RyWzFdICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3MAorbXNnaWQgInNlcmlvdXMgaW5mbGF0ZSBpbmNvbnNpc3RlbmN5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2MSBidWlsdGluL2luZGV4LXBhY2suYzo2NjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjkwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3MjQgYnVpbHRpbi9pbmRleC1wYWNrLmM6NzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIlNIQTEgQ09MTElTSU9OIEZPVU5EIFdJVEggJXMgISIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjQgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byByZWFkICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVhZCBleGlzdGluZyBvYmplY3QgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgYmxvYiBvYmplY3QgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzU5CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYxCittc2dpZCAiRXJyb3IgaW4gb2JqZWN0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgYWxsIGNoaWxkIG9iamVjdHMgb2YgJXMgYXJlIHJlYWNoYWJsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzMgYnVpbHRpbi9pbmRleC1wYWNrLmM6ODYzCittc2dpZCAiZmFpbGVkIHRvIGFwcGx5IGRlbHRhIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDQKK21zZ2lkICJSZWNlaXZpbmcgb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0Cittc2dpZCAiSW5kZXhpbmcgb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDMwCittc2dpZCAicGFjayBpcyBjb3JydXB0ZWQgKFNIQTEgbWlzbWF0Y2gpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKK21zZ2lkICJjYW5ub3QgZnN0YXQgcGFja2ZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzOAorbXNnaWQgInBhY2sgaGFzIGp1bmsgYXQgdGhlIGVuZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQ5Cittc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSBpbiBwYXJzZV9wYWNrX29iamVjdHMoKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDcyCittc2dpZCAiUmVzb2x2aW5nIGRlbHRhcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDgyCisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGhyZWFkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI0Cittc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbXBsZXRlZCB3aXRoICVkIGxvY2FsIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmV4cGVjdGVkIHRhaWwgY2hlY2tzdW0gZm9yICVzIChkaXNrIGNvcnJ1cHRpb24/KSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGEiCittc2dpZF9wbHVyYWwgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGFzIgorbXNnc3RyWzBdICIiCittc2dzdHJbMV0gIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gZGVmbGF0ZSBhcHBlbmRlZCBvYmplY3QgKCVkKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvY2FsIG9iamVjdCAlcyBpcyBjb3JydXB0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzQKK21zZ2lkICJlcnJvciB3aGlsZSBjbG9zaW5nIHBhY2sgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCB3cml0ZSBrZWVwIGZpbGUgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjk1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBjbG9zZSB3cml0dGVuIGtlZXAgZmlsZSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMDgKK21zZ2lkICJjYW5ub3Qgc3RvcmUgcGFjayBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTkKK21zZ2lkICJjYW5ub3Qgc3RvcmUgaW5kZXggZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzUyCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1OAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG51bWJlciBvZiB0aHJlYWRzIHNwZWNpZmllZCAoJWQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB0aHJlYWRzIHN1cHBvcnQsIGlnbm9yaW5nICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBmaWxlICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGlkeCBmaWxlIGZvciAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uIGRlbHRhOiAlZCBvYmplY3QiCittc2dpZF9wbHVyYWwgIm5vbiBkZWx0YTogJWQgb2JqZWN0cyIKK21zZ3N0clswXSAiIgorbXNnc3RyWzFdICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3QiCittc2dpZF9wbHVyYWwgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0cyIKK21zZ3N0clswXSAiIgorbXNnc3RyWzFdICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDMKK21zZ2lkICJDYW5ub3QgY29tZSBiYWNrIHRvIGN3ZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2NgorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4MAorbXNnaWQgIi0tZml4LXRoaW4gY2Fubm90IGJlIHVzZWQgd2l0aG91dCAtLXN0ZGluIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1ODQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWNrZmlsZSBuYW1lICclcycgZG9lcyBub3QgZW5kIHdpdGggJy5wYWNrJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNjAzCittc2dpZCAiLS12ZXJpZnkgd2l0aCBubyBwYWNrZmlsZSBuYW1lIGdpdmVuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBtYWtlICVzIHdyaXRhYmxlIGJ5IGdyb3VwIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjYyCisjLCBjLWZvcm1hdAorbXNnaWQgImluc2FuZWx5IGxvbmcgdGVtcGxhdGUgbmFtZSAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo2NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHRlbXBsYXRlICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW5kaXIgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVhZGxpbmsgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo5OQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnNhbmVseSBsb25nIHN5bWxpbmsgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6MTAyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzeW1saW5rICclcycgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzoxMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGNvcHkgJyVzJyB0byAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJpZ25vcmluZyB0ZW1wbGF0ZSAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5zYW5lbHkgbG9uZyB0ZW1wbGF0ZSBwYXRoICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ0ZW1wbGF0ZXMgbm90IGZvdW5kICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJub3QgY29weWluZyB0ZW1wbGF0ZXMgb2YgYSB3cm9uZyBmb3JtYXQgdmVyc2lvbiAlZCBmcm9tICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6MTkyCisjLCBjLWZvcm1hdAorbXNnaWQgImluc2FuZSBnaXQgZGlyZWN0b3J5ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjMyMyBidWlsdGluL2luaXQtZGIuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgYWxyZWFkeSBleGlzdHMiCittc2dzdHIgIiVzIGV4aXN0ZSBkw6lqw6AiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gaGFuZGxlIGZpbGUgdHlwZSAlZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG1vdmUgJXMgdG8gJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZ2l0IGxpbmsgJXMiCittc2dzdHIgIiIKKworIy4KKyMuICogVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAnJXMnIGlzIGVpdGhlciAiUmVpbml0aWFsaXplZAorIy4gKiBleGlzdGluZyIgb3IgIkluaXRpYWxpemVkIGVtcHR5IiwgdGhlIHNlY29uZCAiIHNoYXJlZCIgb3IKKyMuICogIiIsIGFuZCB0aGUgbGFzdCAnJXMlcycgaXMgdGhlIHZlcmJhdGltIGRpcmVjdG9yeSBuYW1lLgorIy4KKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQyMAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyVzIEdpdCByZXBvc2l0b3J5IGluICVzJXNcbiIKK21zZ3N0ciAiJXMlcyBEw6lww7R0IGdpdCBkYW5zICVzJXNcbiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NDIxCittc2dpZCAiUmVpbml0aWFsaXplZCBleGlzdGluZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo0MjEKK21zZ2lkICJJbml0aWFsaXplZCBlbXB0eSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo0MjIKK21zZ2lkICIgc2hhcmVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ0MQorbXNnaWQgImNhbm5vdCB0ZWxsIGN3ZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo0NjcKK21zZ2lkICIiCisiZ2l0IGluaXQgWy1xIHwgLS1xdWlldF0gWy0tYmFyZV0gWy0tdGVtcGxhdGU9PHRlbXBsYXRlLWRpcmVjdG9yeT5dIFstLSIKKyJzaGFyZWRbPTxwZXJtaXNzaW9ucz5dXSBbZGlyZWN0b3J5XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo0OTAKK21zZ2lkICJwZXJtaXNzaW9ucyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo0OTEKK21zZ2lkICJzcGVjaWZ5IHRoYXQgdGhlIGdpdCByZXBvc2l0b3J5IGlzIHRvIGJlIHNoYXJlZCBhbW9uZ3N0IHNldmVyYWwgdXNlcnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NDkzIGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzcKK21zZ2lkICJiZSBxdWlldCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo1MjIgYnVpbHRpbi9pbml0LWRiLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBta2RpciAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGNoZGlyIHRvICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjU1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgKG9yIC0td29yay10cmVlPTxkaXJlY3Rvcnk+KSBub3QgYWxsb3dlZCB3aXRob3V0IHNwZWNpZnlpbmcgJXMgKG9yIC0tZ2l0LSIKKyJkaXI9PGRpcmVjdG9yeT4pIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjU3OQorbXNnaWQgIkNhbm5vdCBhY2Nlc3MgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB3b3JrIHRyZWUgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjQwCittc2dpZCAiZ2l0IGxvZyBbPG9wdGlvbnM+XSBbPHJldmlzaW9uIHJhbmdlPl0gW1stLV0gPHBhdGg+Li4uXVxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6NDEKK21zZ2lkICIgICBvcjogZ2l0IHNob3cgW29wdGlvbnNdIDxvYmplY3Q+Li4uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTAzCittc2dpZCAic3VwcHJlc3MgZGlmZiBvdXRwdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMDQKK21zZ2lkICJzaG93IHNvdXJjZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjEwNQorbXNnaWQgIlVzZSBtYWlsIG1hcCBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTA2Cittc2dpZCAiZGVjb3JhdGUgb3B0aW9ucyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjE5OQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5hbCBvdXRwdXQ6ICVkICVzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzo0MjIgYnVpbHRpbi9sb2cuYzo1MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHJlYWQgb2JqZWN0ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6NTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gdHlwZTogJWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzo2MzgKK21zZ2lkICJmb3JtYXQuaGVhZGVycyB3aXRob3V0IHZhbHVlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6NzIwCittc2dpZCAibmFtZSBvZiBvdXRwdXQgZGlyZWN0b3J5IGlzIHRvbyBsb25nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6NzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIHBhdGNoIGZpbGUgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzo3NTAKK21zZ2lkICJOZWVkIGV4YWN0bHkgb25lIHJhbmdlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjc1OAorbXNnaWQgIk5vdCBhIHJhbmdlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjg2MAorbXNnaWQgIkNvdmVyIGxldHRlciBuZWVkcyBlbWFpbCBmb3JtYXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzo5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5zYW5lIGluLXJlcGx5LXRvOiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjk2NAorbXNnaWQgImdpdCBmb3JtYXQtcGF0Y2ggW29wdGlvbnNdIFs8c2luY2U+IHwgPHJldmlzaW9uIHJhbmdlPl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMDA5Cittc2dpZCAiVHdvIG91dHB1dCBkaXJlY3Rvcmllcz8iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTA4Cittc2dpZCAidXNlIFtQQVRDSCBuL21dIGV2ZW4gd2l0aCBhIHNpbmdsZSBwYXRjaCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExMTEKK21zZ2lkICJ1c2UgW1BBVENIXSBldmVuIHdpdGggbXVsdGlwbGUgcGF0Y2hlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExMTUKK21zZ2lkICJwcmludCBwYXRjaGVzIHRvIHN0YW5kYXJkIG91dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExMTcKK21zZ2lkICJnZW5lcmF0ZSBhIGNvdmVyIGxldHRlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExMTkKK21zZ2lkICJ1c2Ugc2ltcGxlIG51bWJlciBzZXF1ZW5jZSBmb3Igb3V0cHV0IGZpbGUgbmFtZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTIwCittc2dpZCAic2Z4IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTEyMQorbXNnaWQgInVzZSA8c2Z4PiBpbnN0ZWFkIG9mICcucGF0Y2gnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTEyMworbXNnaWQgInN0YXJ0IG51bWJlcmluZyBwYXRjaGVzIGF0IDxuPiBpbnN0ZWFkIG9mIDEiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTI1Cittc2dpZCAibWFyayB0aGUgc2VyaWVzIGFzIE50aCByZS1yb2xsIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTEyNworbXNnaWQgIlVzZSBbPHByZWZpeD5dIGluc3RlYWQgb2YgW1BBVENIXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExMzAKK21zZ2lkICJzdG9yZSByZXN1bHRpbmcgZmlsZXMgaW4gPGRpcj4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTMzCittc2dpZCAiZG9uJ3Qgc3RyaXAvYWRkIFtQQVRDSF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTM2Cittc2dpZCAiZG9uJ3Qgb3V0cHV0IGJpbmFyeSBkaWZmcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExMzgKK21zZ2lkICJkb24ndCBpbmNsdWRlIGEgcGF0Y2ggbWF0Y2hpbmcgYSBjb21taXQgdXBzdHJlYW0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTQwCittc2dpZCAic2hvdyBwYXRjaCBmb3JtYXQgaW5zdGVhZCBvZiBkZWZhdWx0IChwYXRjaCArIHN0YXQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE0MgorbXNnaWQgIk1lc3NhZ2luZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExNDMKK21zZ2lkICJoZWFkZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTQ0Cittc2dpZCAiYWRkIGVtYWlsIGhlYWRlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExNDUgYnVpbHRpbi9sb2cuYzoxMTQ3Cittc2dpZCAiZW1haWwiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTQ1Cittc2dpZCAiYWRkIFRvOiBoZWFkZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTQ3Cittc2dpZCAiYWRkIENjOiBoZWFkZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTQ5Cittc2dpZCAibWVzc2FnZS1pZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExNTAKK21zZ2lkICJtYWtlIGZpcnN0IG1haWwgYSByZXBseSB0byA8bWVzc2FnZS1pZD4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTUxIGJ1aWx0aW4vbG9nLmM6MTE1NAorbXNnaWQgImJvdW5kYXJ5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1MgorbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTU1Cittc2dpZCAiaW5saW5lIHRoZSBwYXRjaCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExNTkKK21zZ2lkICJlbmFibGUgbWVzc2FnZSB0aHJlYWRpbmcsIHN0eWxlczogc2hhbGxvdywgZGVlcCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExNjEKK21zZ2lkICJzaWduYXR1cmUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTYyCittc2dpZCAiYWRkIGEgc2lnbmF0dXJlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2NAorbXNnaWQgImRvbid0IHByaW50IHRoZSBwYXRjaCBmaWxlbmFtZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMjQ4Cittc2dpZCAiLW4gYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTI1MAorbXNnaWQgIi0tc3ViamVjdC1wcmVmaXggYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTI1OAorbXNnaWQgIi0tbmFtZS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMjYwCittc2dpZCAiLS1uYW1lLXN0YXR1cyBkb2VzIG5vdCBtYWtlIHNlbnNlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2MgorbXNnaWQgIi0tY2hlY2sgZG9lcyBub3QgbWFrZSBzZW5zZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjEyODUKK21zZ2lkICJzdGFuZGFyZCBvdXRwdXQsIG9yIGRpcmVjdG9yeSwgd2hpY2ggb25lPyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjEyODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjE0MzUKK21zZ2lkICJGYWlsZWQgdG8gY3JlYXRlIG91dHB1dCBmaWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjE0ODQKK21zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjE1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBmaW5kIGEgdHJhY2tlZCByZW1vdGUgYnJhbmNoLCBwbGVhc2Ugc3BlY2lmeSA8dXBzdHJlYW0+IG1hbnVhbGx5LlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTU1MiBidWlsdGluL2xvZy5jOjE1NTQgYnVpbHRpbi9sb2cuYzoxNTY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gY29tbWl0ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0MDIKK21zZ2lkICJnaXQgbHMtZmlsZXMgW29wdGlvbnNdIFs8ZmlsZT4uLi5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTkKK21zZ2lkICJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjEKK21zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDYzCittc2dpZCAic2hvdyBjYWNoZWQgZmlsZXMgaW4gdGhlIG91dHB1dCAoZGVmYXVsdCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NQorbXNnaWQgInNob3cgZGVsZXRlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKK21zZ2lkICJzaG93IG1vZGlmaWVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2OQorbXNnaWQgInNob3cgb3RoZXIgZmlsZXMgaW4gdGhlIG91dHB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDcxCittc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NAorbXNnaWQgInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzYKK21zZ2lkICJzaG93IGZpbGVzIG9uIHRoZSBmaWxlc3lzdGVtIHRoYXQgbmVlZCB0byBiZSByZW1vdmVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzgKK21zZ2lkICJzaG93ICdvdGhlcicgZGlyZWN0b3JpZXMnIG5hbWUgb25seSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgxCittc2dpZCAiZG9uJ3Qgc2hvdyBlbXB0eSBkaXJlY3RvcmllcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0Cittc2dpZCAic2hvdyB1bm1lcmdlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODYKK21zZ2lkICJzaG93IHJlc29sdmUtdW5kbyBpbmZvcm1hdGlvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg4Cittc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTEKK21zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTQKK21zZ2lkICJyZWFkIGFkZGl0aW9uYWwgcGVyLWRpcmVjdG9yeSBleGNsdWRlIHBhdHRlcm5zIGluIDxmaWxlPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk2Cittc2dpZCAiYWRkIHRoZSBzdGFuZGFyZCBnaXQgZXhjbHVzaW9ucyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk5Cittc2dpZCAibWFrZSB0aGUgb3V0cHV0IHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHRvcCBkaXJlY3RvcnkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgorbXNnaWQgImlmIGFueSA8ZmlsZT4gaXMgbm90IGluIHRoZSBpbmRleCwgdHJlYXQgdGhpcyBhcyBhbiBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAzCittc2dpZCAidHJlZS1pc2giCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNAorbXNnaWQgInByZXRlbmQgdGhhdCBwYXRocyByZW1vdmVkIHNpbmNlIDx0cmVlLWlzaD4gYXJlIHN0aWxsIHByZXNlbnQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNgorbXNnaWQgInNob3cgZGVidWdnaW5nIGRhdGEiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy10cmVlLmM6MjcKK21zZ2lkICJnaXQgbHMtdHJlZSBbPG9wdGlvbnM+XSA8dHJlZS1pc2g+IFs8cGF0aD4uLi5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyNQorbXNnaWQgIm9ubHkgc2hvdyB0cmVlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLXRyZWUuYzoxMjcKK21zZ2lkICJyZWN1cnNlIGludG8gc3VidHJlZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy10cmVlLmM6MTI5Cittc2dpZCAic2hvdyB0cmVlcyB3aGVuIHJlY3Vyc2luZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzIKK21zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCBieXRlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzMworbXNnaWQgImluY2x1ZGUgb2JqZWN0IHNpemUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy10cmVlLmM6MTM1IGJ1aWx0aW4vbHMtdHJlZS5jOjEzNworbXNnaWQgImxpc3Qgb25seSBmaWxlbmFtZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy10cmVlLmM6MTQwCittc2dpZCAidXNlIGZ1bGwgcGF0aCBuYW1lcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLXRyZWUuYzoxNDIKK21zZ2lkICJsaXN0IGVudGlyZSB0cmVlOyBub3QganVzdCBjdXJyZW50IGRpcmVjdG9yeSAoaW1wbGllcyAtLWZ1bGwtbmFtZSkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjQzCittc2dpZCAiZ2l0IG1lcmdlIFtvcHRpb25zXSBbPGNvbW1pdD4uLi5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0NAorbXNnaWQgImdpdCBtZXJnZSBbb3B0aW9uc10gPG1zZz4gSEVBRCA8Y29tbWl0PiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6NDUKK21zZ2lkICJnaXQgbWVyZ2UgLS1hYm9ydCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6OTAKK21zZ2lkICJzd2l0Y2ggYG0nIHJlcXVpcmVzIGEgdmFsdWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCBtZXJnZSBzdHJhdGVneSAnJXMnLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIHN0cmF0ZWdpZXMgYXJlOiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBjdXN0b20gc3RyYXRlZ2llcyBhcmU6IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxODMKK21zZ2lkICJkbyBub3Qgc2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxODYKK21zZ2lkICJzaG93IGEgZGlmZnN0YXQgYXQgdGhlIGVuZCBvZiB0aGUgbWVyZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE4NworbXNnaWQgIihzeW5vbnltIHRvIC0tc3RhdCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE4OQorbXNnaWQgImFkZCAoYXQgbW9zdCA8bj4pIGVudHJpZXMgZnJvbSBzaG9ydGxvZyB0byBtZXJnZSBjb21taXQgbWVzc2FnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTkyCittc2dpZCAiY3JlYXRlIGEgc2luZ2xlIGNvbW1pdCBpbnN0ZWFkIG9mIGRvaW5nIGEgbWVyZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE5NAorbXNnaWQgInBlcmZvcm0gYSBjb21taXQgaWYgdGhlIG1lcmdlIHN1Y2NlZWRzIChkZWZhdWx0KSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTk2Cittc2dpZCAiZWRpdCBtZXNzYWdlIGJlZm9yZSBjb21taXR0aW5nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKK21zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQgKGRlZmF1bHQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDAKK21zZ2lkICJhYm9ydCBpZiBmYXN0LWZvcndhcmQgaXMgbm90IHBvc3NpYmxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMKK21zZ2lkICJWZXJpZnkgdGhhdCB0aGUgbmFtZWQgY29tbWl0IGhhcyBhIHZhbGlkIEdQRyBzaWduYXR1cmUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjIwNCBidWlsdGluL25vdGVzLmM6ODY2IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCittc2dpZCAic3RyYXRlZ3kiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjIwNQorbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IHRvIHVzZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MjA2Cittc2dpZCAib3B0aW9uPXZhbHVlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDcKK21zZ2lkICJvcHRpb24gZm9yIHNlbGVjdGVkIG1lcmdlIHN0cmF0ZWd5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKK21zZ2lkICJtZXJnZSBjb21taXQgbWVzc2FnZSAoZm9yIGEgbm9uLWZhc3QtZm9yd2FyZCBtZXJnZSkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjIxMworbXNnaWQgImFib3J0IHRoZSBjdXJyZW50IGluLXByb2dyZXNzIG1lcmdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNDIKK21zZ2lkICJjb3VsZCBub3QgcnVuIHN0YXNoLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MjQ3Cittc2dpZCAic3Rhc2ggZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGEgdmFsaWQgb2JqZWN0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MjcxIGJ1aWx0aW4vbWVyZ2UuYzoyODgKK21zZ2lkICJyZWFkLXRyZWUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozMTgKK21zZ2lkICIgKG5vdGhpbmcgdG8gc3F1YXNoKSIKK21zZ3N0ciAiIChyaWVuIMOgIGNvbXByZXNzZXIpIgorCisjOiBidWlsdGluL21lcmdlLmM6MzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIlNxdWFzaCBjb21taXQgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MzYzCittc2dpZCAiV3JpdGluZyBTUVVBU0hfTVNHIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNjUKK21zZ2lkICJGaW5pc2hpbmcgU1FVQVNIX01TRyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIG1lcmdlIG1lc3NhZ2UgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6NDM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgZG9lcyBub3QgcG9pbnQgdG8gYSBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgYnJhbmNoLiVzLm1lcmdlb3B0aW9ucyBzdHJpbmc6ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2NDMKK21zZ2lkICJnaXQgd3JpdGUtdHJlZSBmYWlsZWQgdG8gd3JpdGUgYSB0cmVlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2NzEKK21zZ2lkICJOb3QgaGFuZGxpbmcgYW55dGhpbmcgb3RoZXIgdGhhbiB0d28gaGVhZHMgbWVyZ2UuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBvcHRpb24gZm9yIG1lcmdlLXJlY3Vyc2l2ZTogLVglcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6Njk5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6Nzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZWFkIGZyb20gJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6Nzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBjb21taXR0aW5nIG1lcmdlOyB1c2UgJ2dpdCBjb21taXQnIHRvIGNvbXBsZXRlIHRoZSBtZXJnZS5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6ODAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJQbGVhc2UgZW50ZXIgYSBjb21taXQgbWVzc2FnZSB0byBleHBsYWluIHdoeSB0aGlzIG1lcmdlIGlzIG5lY2Vzc2FyeSxcbiIKKyJlc3BlY2lhbGx5IGlmIGl0IG1lcmdlcyBhbiB1cGRhdGVkIHVwc3RyZWFtIGludG8gYSB0b3BpYyBicmFuY2guXG4iCisiXG4iCisiTGluZXMgc3RhcnRpbmcgd2l0aCAnJWMnIHdpbGwgYmUgaWdub3JlZCwgYW5kIGFuIGVtcHR5IG1lc3NhZ2UgYWJvcnRzXG4iCisidGhlIGNvbW1pdC5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6ODI3Cittc2dpZCAiRW1wdHkgY29tbWl0IG1lc3NhZ2UuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV29uZGVyZnVsLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXV0b21hdGljIG1lcmdlIGZhaWxlZDsgZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBjb21taXQgdGhlIHJlc3VsdC5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6OTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGEgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjEKK21zZ2lkICJObyBjdXJyZW50IGJyYW5jaC4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjk2MworbXNnaWQgIk5vIHJlbW90ZSBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6OTY1Cittc2dpZCAiTm8gZGVmYXVsdCB1cHN0cmVhbSBkZWZpbmVkIGZvciB0aGUgY3VycmVudCBicmFuY2guIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcmVtb3RlIHRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTA1NyBidWlsdGluL21lcmdlLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtIG5vdCBzb21ldGhpbmcgd2UgY2FuIG1lcmdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTI1Cittc2dpZCAiVGhlcmUgaXMgbm8gbWVyZ2UgdG8gYWJvcnQgKE1FUkdFX0hFQUQgbWlzc2luZykuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQxIGdpdC1wdWxsLnNoOjMxCittc2dpZCAiIgorIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBtZXJnZSAoTUVSR0VfSEVBRCBleGlzdHMpLlxuIgorIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjExNDQgZ2l0LXB1bGwuc2g6MzQKK21zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjExNDgKK21zZ2lkICIiCisiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIGNoZXJyeS1waWNrIChDSEVSUllfUElDS19IRUFEIGV4aXN0cykuXG4iCisiUGxlYXNlLCBjb21taXQgeW91ciBjaGFuZ2VzIGJlZm9yZSB5b3UgY2FuIG1lcmdlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTE1MQorbXNnaWQgIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdHMpLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTE2MAorbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLXNxdWFzaCB3aXRoIC0tbm8tZmYuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTY1Cittc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tbm8tZmYgd2l0aCAtLWZmLW9ubHkuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTcyCittc2dpZCAiTm8gY29tbWl0IHNwZWNpZmllZCBhbmQgbWVyZ2UuZGVmYXVsdFRvVXBzdHJlYW0gbm90IHNldC4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEyMDQKK21zZ2lkICJDYW4gbWVyZ2Ugb25seSBleGFjdGx5IG9uZSBjb21taXQgaW50byBlbXB0eSBoZWFkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA3Cittc2dpZCAiU3F1YXNoIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQgbm90IHN1cHBvcnRlZCB5ZXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEyMDkKK21zZ2lkICJOb24tZmFzdC1mb3J3YXJkIGNvbW1pdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGludG8gYW4gZW1wdHkgaGVhZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTI2NQorIywgYy1mb3JtYXQKK21zZ2lkICJDb21taXQgJXMgaGFzIGFuIHVudHJ1c3RlZCBHUEcgc2lnbmF0dXJlLCBhbGxlZ2VkbHkgYnkgJXMuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvbW1pdCAlcyBoYXMgYSBiYWQgR1BHIHNpZ25hdHVyZSBhbGxlZ2VkbHkgYnkgJXMuIgorbXNnc3RyICIiCisKKyMuICdOJworIzogYnVpbHRpbi9tZXJnZS5jOjEyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgYSBHUEcgc2lnbmF0dXJlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb21taXQgJXMgaGFzIGEgZ29vZCBHUEcgc2lnbmF0dXJlIGJ5ICVzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEzNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXBkYXRpbmcgJXMuLiVzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEzOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHJlYWxseSB0cml2aWFsIGluLWluZGV4IG1lcmdlLi4uXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm9wZS5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTQzNgorbXNnaWQgIk5vdCBwb3NzaWJsZSB0byBmYXN0LWZvcndhcmQsIGFib3J0aW5nLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTQ1OSBidWlsdGluL21lcmdlLmM6MTUzOAorIywgYy1mb3JtYXQKK21zZ2lkICJSZXdpbmRpbmcgdGhlIHRyZWUgdG8gcHJpc3RpbmUuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTQ2MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgbWVyZ2Ugc3RyYXRlZ3kgJXMuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJObyBtZXJnZSBzdHJhdGVneSBoYW5kbGVkIHRoZSBtZXJnZS5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTUzMQorIywgYy1mb3JtYXQKK21zZ2lkICJNZXJnZSB3aXRoIHN0cmF0ZWd5ICVzIGZhaWxlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTU0MAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyB0aGUgJXMgdG8gcHJlcGFyZSByZXNvbHZpbmcgYnkgaGFuZC5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTU1MgorIywgYy1mb3JtYXQKK21zZ2lkICJBdXRvbWF0aWMgbWVyZ2Ugd2VudCB3ZWxsOyBzdG9wcGVkIGJlZm9yZSBjb21taXR0aW5nIGFzIHJlcXVlc3RlZFxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjI2Cittc2dpZCAiZ2l0IG1lcmdlLWJhc2UgWy1hfC0tYWxsXSA8Y29tbWl0PiA8Y29tbWl0Pi4uLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWJhc2UuYzoyNworbXNnaWQgImdpdCBtZXJnZS1iYXNlIFstYXwtLWFsbF0gLS1vY3RvcHVzIDxjb21taXQ+Li4uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjI4Cittc2dpZCAiZ2l0IG1lcmdlLWJhc2UgLS1pbmRlcGVuZGVudCA8Y29tbWl0Pi4uLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWJhc2UuYzoyOQorbXNnaWQgImdpdCBtZXJnZS1iYXNlIC0taXMtYW5jZXN0b3IgPGNvbW1pdD4gPGNvbW1pdD4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6OTgKK21zZ2lkICJvdXRwdXQgYWxsIGNvbW1vbiBhbmNlc3RvcnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6OTkKK21zZ2lkICJmaW5kIGFuY2VzdG9ycyBmb3IgYSBzaW5nbGUgbi13YXkgbWVyZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MTAwCittc2dpZCAibGlzdCByZXZzIG5vdCByZWFjaGFibGUgZnJvbSBvdGhlcnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MTAyCittc2dpZCAiaXMgdGhlIGZpcnN0IG9uZSBhbmNlc3RvciBvZiB0aGUgb3RoZXI/IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjgKK21zZ2lkICIiCisiZ2l0IG1lcmdlLWZpbGUgW29wdGlvbnNdIFstTCBuYW1lMSBbLUwgb3JpZyBbLUwgbmFtZTJdXV0gZmlsZTEgb3JpZ19maWxlICIKKyJmaWxlMiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWZpbGUuYzozMworbXNnaWQgInNlbmQgcmVzdWx0cyB0byBzdGFuZGFyZCBvdXRwdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6MzQKK21zZ2lkICJ1c2UgYSBkaWZmMyBiYXNlZCBtZXJnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWZpbGUuYzozNQorbXNnaWQgImZvciBjb25mbGljdHMsIHVzZSBvdXIgdmVyc2lvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWZpbGUuYzozNworbXNnaWQgImZvciBjb25mbGljdHMsIHVzZSB0aGVpciB2ZXJzaW9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjM5Cittc2dpZCAiZm9yIGNvbmZsaWN0cywgdXNlIGEgdW5pb24gdmVyc2lvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWZpbGUuYzo0MgorbXNnaWQgImZvciBjb25mbGljdHMsIHVzZSB0aGlzIG1hcmtlciBzaXplIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQzCittc2dpZCAiZG8gbm90IHdhcm4gYWJvdXQgY29uZmxpY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ1Cittc2dpZCAic2V0IGxhYmVscyBmb3IgZmlsZTEvb3JpZ19maWxlL2ZpbGUyIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWt0cmVlLmM6NjcKK21zZ2lkICJnaXQgbWt0cmVlIFstel0gWy0tbWlzc2luZ10gWy0tYmF0Y2hdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWt0cmVlLmM6MTUzCittc2dpZCAiaW5wdXQgaXMgTlVMIHRlcm1pbmF0ZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ta3RyZWUuYzoxNTQgYnVpbHRpbi93cml0ZS10cmVlLmM6MjQKK21zZ2lkICJhbGxvdyBtaXNzaW5nIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ta3RyZWUuYzoxNTUKK21zZ2lkICJhbGxvdyBjcmVhdGlvbiBvZiBtb3JlIHRoYW4gb25lIHRyZWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjE0Cittc2dpZCAiZ2l0IG12IFtvcHRpb25zXSA8c291cmNlPi4uLiA8ZGVzdGluYXRpb24+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbXYuYzo2NAorbXNnaWQgImZvcmNlIG1vdmUvcmVuYW1lIGV2ZW4gaWYgdGFyZ2V0IGV4aXN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6NjUKK21zZ2lkICJza2lwIG1vdmUvcmVuYW1lIGVycm9ycyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6MTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoZWNraW5nIHJlbmFtZSBvZiAnJXMnIHRvICclcydcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6MTEyCittc2dpZCAiYmFkIHNvdXJjZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6MTE1Cittc2dpZCAiY2FuIG5vdCBtb3ZlIGRpcmVjdG9yeSBpbnRvIGl0c2VsZiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6MTE4Cittc2dpZCAiY2Fubm90IG1vdmUgZGlyZWN0b3J5IG92ZXIgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkh1aD8gJS4qcyBpcyBpbiBpbmRleD8iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjE0MAorbXNnaWQgInNvdXJjZSBkaXJlY3RvcnkgaXMgZW1wdHkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjE3MQorbXNnaWQgIm5vdCB1bmRlciB2ZXJzaW9uIGNvbnRyb2wiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjE3MworbXNnaWQgImRlc3RpbmF0aW9uIGV4aXN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIm92ZXJ3cml0aW5nICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjE4NAorbXNnaWQgIkNhbm5vdCBvdmVyd3JpdGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjE4NworbXNnaWQgIm11bHRpcGxlIHNvdXJjZXMgZm9yIHRoZSBzYW1lIHRhcmdldCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLCBzb3VyY2U9JXMsIGRlc3RpbmF0aW9uPSVzIgorbXNnc3RyICIlcywgc291cmNlPSVzLCBkZXN0aW5hdGlvbj0lcyIKKworIzogYnVpbHRpbi9tdi5jOjIxMgorIywgYy1mb3JtYXQKK21zZ2lkICJSZW5hbWluZyAlcyB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbXYuYzoyMTUgYnVpbHRpbi9yZW1vdGUuYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuYW1pbmcgJyVzJyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NQorbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gPGNvbW1pdD4uLi4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NgorbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1hbGwiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NworbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1zdGRpbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25hbWUtcmV2LmM6MjI5Cittc2dpZCAicHJpbnQgb25seSBuYW1lcyAobm8gU0hBLTEpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzAKK21zZ2lkICJvbmx5IHVzZSB0YWdzIHRvIG5hbWUgdGhlIGNvbW1pdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzMgorbXNnaWQgIm9ubHkgdXNlIHJlZnMgbWF0Y2hpbmcgPHBhdHRlcm4+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzQKK21zZ2lkICJsaXN0IGFsbCBjb21taXRzIHJlYWNoYWJsZSBmcm9tIGFsbCByZWZzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzUKK21zZ2lkICJyZWFkIGZyb20gc3RkaW4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNgorbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNgorbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIFtsaXN0IFs8b2JqZWN0Pl1dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNworbXNnaWQgIiIKKyJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhZGQgWy1mXSBbLW0gPG1zZz4gfCAtRiA8ZmlsZT4gfCAoLWMgfCAtQykgIgorIjxvYmplY3Q+XSBbPG9iamVjdD5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOAorbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGNvcHkgWy1mXSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOQorbXNnaWQgIiIKKyJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhcHBlbmQgWy1tIDxtc2c+IHwgLUYgPGZpbGU+IHwgKC1jIHwgLUMpICIKKyI8b2JqZWN0Pl0gWzxvYmplY3Q+XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MzAKK21zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBlZGl0IFs8b2JqZWN0Pl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjMxCittc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gc2hvdyBbPG9iamVjdD5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMgorbXNnaWQgIiIKKyJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDxzdHJhdGVneT4gXSA8bm90ZXNfcmVmPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MzMKK21zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWy12IHwgLXFdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNAorbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFstdiB8IC1xXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MzUKK21zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSByZW1vdmUgWzxvYmplY3Q+Li4uXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MzYKK21zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBwcnVuZSBbLW4gfCAtdl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjM3Cittc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZ2V0LXJlZiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NDIKK21zZ2lkICJnaXQgbm90ZXMgW2xpc3QgWzxvYmplY3Q+XV0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjQ3Cittc2dpZCAiZ2l0IG5vdGVzIGFkZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MgorbXNnaWQgImdpdCBub3RlcyBjb3B5IFs8b3B0aW9ucz5dIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjUzCittc2dpZCAiZ2l0IG5vdGVzIGNvcHkgLS1zdGRpbiBbPGZyb20tb2JqZWN0PiA8dG8tb2JqZWN0Pl0uLi4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjU4Cittc2dpZCAiZ2l0IG5vdGVzIGFwcGVuZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2MworbXNnaWQgImdpdCBub3RlcyBlZGl0IFs8b2JqZWN0Pl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjY4Cittc2dpZCAiZ2l0IG5vdGVzIHNob3cgWzxvYmplY3Q+XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NzMKK21zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgWzxvcHRpb25zPl0gPG5vdGVzX3JlZj4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjc0Cittc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFs8b3B0aW9ucz5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NQorbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFs8b3B0aW9ucz5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4MAorbXNnaWQgImdpdCBub3RlcyByZW1vdmUgWzxvYmplY3Q+XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6ODUKK21zZ2lkICJnaXQgbm90ZXMgcHJ1bmUgWzxvcHRpb25zPl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjkwCittc2dpZCAiZ2l0IG5vdGVzIGdldC1yZWYiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhcnQgJ3Nob3cnIGZvciBvYmplY3QgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MTQzCittc2dpZCAiY291bGQgbm90IHJlYWQgJ3Nob3cnIG91dHB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBmaW5pc2ggJ3Nob3cnIGZvciBvYmplY3QgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MTY5IGJ1aWx0aW4vdGFnLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgZmlsZSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxODgKK21zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBub3RlIGNvbnRlbnRzIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjIwOSBidWlsdGluL25vdGVzLmM6OTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlbW92aW5nIG5vdGUgZm9yIG9iamVjdCAlc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbm90ZSBvYmplY3QiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbm90ZSBjb250ZW50cyBoYXMgYmVlbiBsZWZ0IGluICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlYWQgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MjUyIGJ1aWx0aW4vdGFnLmM6NTQzCisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBvcGVuIG9yIHJlYWQgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MjcxIGJ1aWx0aW4vbm90ZXMuYzo0NDQgYnVpbHRpbi9ub3Rlcy5jOjQ0NgorIzogYnVpbHRpbi9ub3Rlcy5jOjUwNiBidWlsdGluL25vdGVzLmM6NTYwIGJ1aWx0aW4vbm90ZXMuYzo2NDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2NDggYnVpbHRpbi9ub3Rlcy5jOjcyMyBidWlsdGluL25vdGVzLmM6NzY1CisjOiBidWlsdGluL25vdGVzLmM6OTY3IGJ1aWx0aW4vdGFnLmM6NTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZWYuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlYWQgb2JqZWN0ICclcycuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOTgKK21zZ2lkICJDYW5ub3QgY29tbWl0IHVuaW5pdGlhbGl6ZWQvdW5yZWZlcmVuY2VkIG5vdGVzIHRyZWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjM0OQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWZ1c2luZyB0byByZXdyaXRlIG5vdGVzIGluICVzIChvdXRzaWRlIG9mIHJlZnMvbm90ZXMvKSIKK21zZ3N0ciAiIgorCisjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIGlzIHRoZSBuYW1lIG9mIHRoZQorIy4gZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBzZWNvbmQgJXMgaXMgaXRzIHZhbHVlCisjOiBidWlsdGluL25vdGVzLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCAlcyB2YWx1ZTogJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1hbGZvcm1lZCBpbnB1dCBsaW5lOiAnJXMnLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBjb3B5IG5vdGVzIGZyb20gJyVzJyB0byAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0OTkgYnVpbHRpbi9ub3Rlcy5jOjU1MyBidWlsdGluL25vdGVzLmM6NjI2CisjOiBidWlsdGluL25vdGVzLmM6NjM4IGJ1aWx0aW4vbm90ZXMuYzo3MTEgYnVpbHRpbi9ub3Rlcy5jOjc1OAorIzogYnVpbHRpbi9ub3Rlcy5jOjEwMzIKK21zZ2lkICJ0b28gbWFueSBwYXJhbWV0ZXJzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MTIgYnVpbHRpbi9ub3Rlcy5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICJObyBub3RlIGZvdW5kIGZvciBvYmplY3QgJXMuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MzQgYnVpbHRpbi9ub3Rlcy5jOjY5MQorbXNnaWQgIm5vdGUgY29udGVudHMgYXMgYSBzdHJpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjUzNyBidWlsdGluL25vdGVzLmM6Njk0Cittc2dpZCAibm90ZSBjb250ZW50cyBpbiBhIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjUzOSBidWlsdGluL25vdGVzLmM6NTQyIGJ1aWx0aW4vbm90ZXMuYzo2OTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2OTkgYnVpbHRpbi90YWcuYzo0NzQKK21zZ2lkICJvYmplY3QiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjU0MCBidWlsdGluL25vdGVzLmM6Njk3Cittc2dpZCAicmV1c2UgYW5kIGVkaXQgc3BlY2lmaWVkIG5vdGUgb2JqZWN0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NDMgYnVpbHRpbi9ub3Rlcy5jOjcwMAorbXNnaWQgInJldXNlIHNwZWNpZmllZCBub3RlIG9iamVjdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NTQ1IGJ1aWx0aW4vbm90ZXMuYzo2MTMKK21zZ2lkICJyZXBsYWNlIGV4aXN0aW5nIG5vdGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBhZGQgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCisiZXhpc3Rpbmcgbm90ZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjU4NCBidWlsdGluL25vdGVzLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgIk92ZXJ3cml0aW5nIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NjE0Cittc2dpZCAicmVhZCBvYmplY3RzIGZyb20gc3RkaW4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjYxNgorbXNnaWQgImxvYWQgcmV3cml0aW5nIGNvbmZpZyBmb3IgPGNvbW1hbmQ+IChpbXBsaWVzIC0tc3RkaW4pIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2MzQKK21zZ2lkICJ0b28gZmV3IHBhcmFtZXRlcnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNvcHkgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCisiZXhpc3Rpbmcgbm90ZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjY2NworIywgYy1mb3JtYXQKK21zZ2lkICJNaXNzaW5nIG5vdGVzIG9uIHNvdXJjZSBvYmplY3QgJXMuIENhbm5vdCBjb3B5LiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NzE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgLW0vLUYvLWMvLUMgb3B0aW9ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBmb3IgdGhlICdlZGl0JyBzdWJjb21tYW5kLlxuIgorIlBsZWFzZSB1c2UgJ2dpdCBub3RlcyBhZGQgLWYgLW0vLUYvLWMvLUMnIGluc3RlYWQuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjg2MworbXNnaWQgIkdlbmVyYWwgb3B0aW9ucyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6ODY1Cittc2dpZCAiTWVyZ2Ugb3B0aW9ucyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6ODY3Cittc2dpZCAiIgorInJlc29sdmUgbm90ZXMgY29uZmxpY3RzIHVzaW5nIHRoZSBnaXZlbiBzdHJhdGVneSAobWFudWFsL291cnMvdGhlaXJzL3VuaW9uLyIKKyJjYXRfc29ydF91bmlxKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6ODY5Cittc2dpZCAiQ29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6ODcxCittc2dpZCAiZmluYWxpemUgbm90ZXMgbWVyZ2UgYnkgY29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6ODczCittc2dpZCAiQWJvcnRpbmcgbm90ZXMgbWVyZ2UgcmVzb2x1dGlvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6ODc1Cittc2dpZCAiYWJvcnQgbm90ZXMgbWVyZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjk3MAorIywgYy1mb3JtYXQKK21zZ2lkICJPYmplY3QgJXMgaGFzIG5vIG5vdGVcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6OTgyCittc2dpZCAiYXR0ZW1wdCB0byByZW1vdmUgbm9uLWV4aXN0ZW50IG5vdGUgaXMgbm90IGFuIGVycm9yIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5ODUKK21zZ2lkICJyZWFkIG9iamVjdCBuYW1lcyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MTA2NgorbXNnaWQgIm5vdGVzX3JlZiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MTA2NworbXNnaWQgInVzZSBub3RlcyBmcm9tIDxub3Rlc19yZWY+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxMTAyIGJ1aWx0aW4vcmVtb3RlLmM6MTU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIHN1YmNvbW1hbmQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjMKK21zZ2lkICJnaXQgcGFjay1vYmplY3RzIC0tc3Rkb3V0IFtvcHRpb25zLi4uXSBbPCByZWYtbGlzdCB8IDwgb2JqZWN0LWxpc3RdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQKK21zZ2lkICJnaXQgcGFjay1vYmplY3RzIFtvcHRpb25zLi4uXSBiYXNlLW5hbWUgWzwgcmVmLWxpc3QgfCA8IG9iamVjdC1saXN0XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE4MyBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWZsYXRlIGVycm9yICglZCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyMzk3CisjLCBjLWZvcm1hdAorbXNnaWQgInVuc3VwcG9ydGVkIGluZGV4IHZlcnNpb24gJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDAxCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBpbmRleCB2ZXJzaW9uICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI0CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wdGlvbiAlcyBkb2VzIG5vdCBhY2NlcHQgbmVnYXRpdmUgZm9ybSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHBhcnNlIHZhbHVlICclcycgZm9yIG9wdGlvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NDcKK21zZ2lkICJkbyBub3Qgc2hvdyBwcm9ncmVzcyBtZXRlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NDkKK21zZ2lkICJzaG93IHByb2dyZXNzIG1ldGVyIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1MQorbXNnaWQgInNob3cgcHJvZ3Jlc3MgbWV0ZXIgZHVyaW5nIG9iamVjdCB3cml0aW5nIHBoYXNlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NAorbXNnaWQgInNpbWlsYXIgdG8gLS1hbGwtcHJvZ3Jlc3Mgd2hlbiBwcm9ncmVzcyBtZXRlciBpcyBzaG93biIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTUKK21zZ2lkICJ2ZXJzaW9uWyxvZmZzZXRdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1NgorbXNnaWQgIndyaXRlIHRoZSBwYWNrIGluZGV4IGZpbGUgaW4gdGhlIHNwZWNpZmllZCBpZHggZm9ybWF0IHZlcnNpb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU5Cittc2dpZCAibWF4aW11bSBzaXplIG9mIGVhY2ggb3V0cHV0IHBhY2sgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjEKK21zZ2lkICJpZ25vcmUgYm9ycm93ZWQgb2JqZWN0cyBmcm9tIGFsdGVybmF0ZSBvYmplY3Qgc3RvcmUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDYzCittc2dpZCAiaWdub3JlIHBhY2tlZCBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2NQorbXNnaWQgImxpbWl0IHBhY2sgd2luZG93IGJ5IG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY3Cittc2dpZCAibGltaXQgcGFjayB3aW5kb3cgYnkgbWVtb3J5IGluIGFkZGl0aW9uIHRvIG9iamVjdCBsaW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjkKK21zZ2lkICJtYXhpbXVtIGxlbmd0aCBvZiBkZWx0YSBjaGFpbiBhbGxvd2VkIGluIHRoZSByZXN1bHRpbmcgcGFjayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzEKK21zZ2lkICJyZXVzZSBleGlzdGluZyBkZWx0YXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDczCittc2dpZCAicmV1c2UgZXhpc3Rpbmcgb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzUKK21zZ2lkICJ1c2UgT0ZTX0RFTFRBIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc3Cittc2dpZCAidXNlIHRocmVhZHMgd2hlbiBzZWFyY2hpbmcgZm9yIGJlc3QgZGVsdGEgbWF0Y2hlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NzkKK21zZ2lkICJkbyBub3QgY3JlYXRlIGFuIGVtcHR5IHBhY2sgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MQorbXNnaWQgInJlYWQgcmV2aXNpb24gYXJndW1lbnRzIGZyb20gc3RhbmRhcmQgaW5wdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgzCittc2dpZCAibGltaXQgdGhlIG9iamVjdHMgdG8gdGhvc2UgdGhhdCBhcmUgbm90IHlldCBwYWNrZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg2Cittc2dpZCAiaW5jbHVkZSBvYmplY3RzIHJlYWNoYWJsZSBmcm9tIGFueSByZWZlcmVuY2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDg5Cittc2dpZCAiaW5jbHVkZSBvYmplY3RzIHJlZmVycmVkIGJ5IHJlZmxvZyBlbnRyaWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5MgorbXNnaWQgIm91dHB1dCBwYWNrIHRvIHN0ZG91dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTQKK21zZ2lkICJpbmNsdWRlIHRhZyBvYmplY3RzIHRoYXQgcmVmZXIgdG8gb2JqZWN0cyB0byBiZSBwYWNrZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk2Cittc2dpZCAia2VlcCB1bnJlYWNoYWJsZSBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NyBwYXJzZS1vcHRpb25zLmg6MTQxCittc2dpZCAidGltZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTgKK21zZ2lkICJ1bnBhY2sgdW5yZWFjaGFibGUgb2JqZWN0cyBuZXdlciB0aGFuIDx0aW1lPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDEKK21zZ2lkICJjcmVhdGUgdGhpbiBwYWNrcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDMKK21zZ2lkICJpZ25vcmUgcGFja3MgdGhhdCBoYXZlIGNvbXBhbmlvbiAua2VlcCBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNQorbXNnaWQgInBhY2sgY29tcHJlc3Npb24gbGV2ZWwiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTA3Cittc2dpZCAiZG8gbm90IGhpZGUgY29tbWl0cyBieSBncmFmdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLXJlZnMuYzo2Cittc2dpZCAiZ2l0IHBhY2stcmVmcyBbb3B0aW9uc10iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLXJlZnMuYzoxNAorbXNnaWQgInBhY2sgZXZlcnl0aGluZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stcmVmcy5jOjE1Cittc2dpZCAicHJ1bmUgbG9vc2UgcmVmcyAoZGVmYXVsdCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3Cittc2dpZCAiZ2l0IHBydW5lLXBhY2tlZCBbLW58LS1kcnktcnVuXSBbLXF8LS1xdWlldF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wcnVuZS5jOjEyCittc2dpZCAiZ2l0IHBydW5lIFstbl0gWy12XSBbLS1leHBpcmUgPHRpbWU+XSBbLS1dIFs8aGVhZD4uLi5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHJ1bmUuYzoxMzIKK21zZ2lkICJkbyBub3QgcmVtb3ZlLCBzaG93IG9ubHkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wcnVuZS5jOjEzMworbXNnaWQgInJlcG9ydCBwcnVuZWQgb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BydW5lLmM6MTM2Cittc2dpZCAiZXhwaXJlIG9iamVjdHMgb2xkZXIgdGhhbiA8dGltZT4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MTQKK21zZ2lkICJnaXQgcHVzaCBbPG9wdGlvbnM+XSBbPHJlcG9zaXRvcnk+IFs8cmVmc3BlYz4uLi5dXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0NQorbXNnaWQgInRhZyBzaG9ydGhhbmQgd2l0aG91dCA8dGFnPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo2NAorbXNnaWQgIi0tZGVsZXRlIG9ubHkgYWNjZXB0cyBwbGFpbiB0YXJnZXQgcmVmIG5hbWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjk5Cittc2dpZCAiIgorIlxuIgorIlRvIGNob29zZSBlaXRoZXIgb3B0aW9uIHBlcm1hbmVudGx5LCBzZWUgcHVzaC5kZWZhdWx0IGluICdnaXQgaGVscCBjb25maWcnLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoxMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB1cHN0cmVhbSBicmFuY2ggb2YgeW91ciBjdXJyZW50IGJyYW5jaCBkb2VzIG5vdCBtYXRjaFxuIgorInRoZSBuYW1lIG9mIHlvdXIgY3VycmVudCBicmFuY2guICBUbyBwdXNoIHRvIHRoZSB1cHN0cmVhbSBicmFuY2hcbiIKKyJvbiB0aGUgcmVtb3RlLCB1c2VcbiIKKyJcbiIKKyIgICAgZ2l0IHB1c2ggJXMgSEVBRDolc1xuIgorIlxuIgorIlRvIHB1c2ggdG8gdGhlIGJyYW5jaCBvZiB0aGUgc2FtZSBuYW1lIG9uIHRoZSByZW1vdGUsIHVzZVxuIgorIlxuIgorIiAgICBnaXQgcHVzaCAlcyAlc1xuIgorIiVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjEyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGFyZSBub3QgY3VycmVudGx5IG9uIGEgYnJhbmNoLlxuIgorIlRvIHB1c2ggdGhlIGhpc3RvcnkgbGVhZGluZyB0byB0aGUgY3VycmVudCAoZGV0YWNoZWQgSEVBRClcbiIKKyJzdGF0ZSBub3csIHVzZVxuIgorIlxuIgorIiAgICBnaXQgcHVzaCAlcyBIRUFEOjxuYW1lLW9mLXJlbW90ZS1icmFuY2g+XG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG5vIHVwc3RyZWFtIGJyYW5jaC5cbiIKKyJUbyBwdXNoIHRoZSBjdXJyZW50IGJyYW5jaCBhbmQgc2V0IHRoZSByZW1vdGUgYXMgdXBzdHJlYW0sIHVzZVxuIgorIlxuIgorIiAgICBnaXQgcHVzaCAtLXNldC11cHN0cmVhbSAlcyAlc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzNgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG11bHRpcGxlIHVwc3RyZWFtIGJyYW5jaGVzLCByZWZ1c2luZyB0byBwdXNoLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBhcmUgcHVzaGluZyB0byByZW1vdGUgJyVzJywgd2hpY2ggaXMgbm90IHRoZSB1cHN0cmVhbSBvZlxuIgorInlvdXIgY3VycmVudCBicmFuY2ggJyVzJywgd2l0aG91dCB0ZWxsaW5nIG1lIHdoYXQgdG8gcHVzaFxuIgorInRvIHVwZGF0ZSB3aGljaCByZW1vdGUgYnJhbmNoLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoxNTEKK21zZ2lkICIiCisicHVzaC5kZWZhdWx0IGlzIHVuc2V0OyBpdHMgaW1wbGljaXQgdmFsdWUgaXMgY2hhbmdpbmcgaW5cbiIKKyJHaXQgMi4wIGZyb20gJ21hdGNoaW5nJyB0byAnc2ltcGxlJy4gVG8gc3F1ZWxjaCB0aGlzIG1lc3NhZ2VcbiIKKyJhbmQgbWFpbnRhaW4gdGhlIGN1cnJlbnQgYmVoYXZpb3IgYWZ0ZXIgdGhlIGRlZmF1bHQgY2hhbmdlcywgdXNlOlxuIgorIlxuIgorIiAgZ2l0IGNvbmZpZyAtLWdsb2JhbCBwdXNoLmRlZmF1bHQgbWF0Y2hpbmdcbiIKKyJcbiIKKyJUbyBzcXVlbGNoIHRoaXMgbWVzc2FnZSBhbmQgYWRvcHQgdGhlIG5ldyBiZWhhdmlvciBub3csIHVzZTpcbiIKKyJcbiIKKyIgIGdpdCBjb25maWcgLS1nbG9iYWwgcHVzaC5kZWZhdWx0IHNpbXBsZVxuIgorIlxuIgorIlNlZSAnZ2l0IGhlbHAgY29uZmlnJyBhbmQgc2VhcmNoIGZvciAncHVzaC5kZWZhdWx0JyBmb3IgZnVydGhlciAiCisiaW5mb3JtYXRpb24uXG4iCisiKHRoZSAnc2ltcGxlJyBtb2RlIHdhcyBpbnRyb2R1Y2VkIGluIEdpdCAxLjcuMTEuIFVzZSB0aGUgc2ltaWxhciBtb2RlXG4iCisiJ2N1cnJlbnQnIGluc3RlYWQgb2YgJ3NpbXBsZScgaWYgeW91IHNvbWV0aW1lcyB1c2Ugb2xkZXIgdmVyc2lvbnMgb2YgR2l0KSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoxOTkKK21zZ2lkICIiCisiWW91IGRpZG4ndCBzcGVjaWZ5IGFueSByZWZzcGVjcyB0byBwdXNoLCBhbmQgcHVzaC5kZWZhdWx0IGlzIFwibm90aGluZ1wiLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoyMDYKK21zZ2lkICIiCisiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRpcCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGlzIGJlaGluZFxuIgorIml0cyByZW1vdGUgY291bnRlcnBhcnQuIE1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLiAnZ2l0IHB1bGwnKVxuIgorImJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjIxMgorbXNnaWQgIiIKKyJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCisiY291bnRlcnBhcnQuIElmIHlvdSBkaWQgbm90IGludGVuZCB0byBwdXNoIHRoYXQgYnJhbmNoLCB5b3UgbWF5IHdhbnQgdG9cbiIKKyJzcGVjaWZ5IGJyYW5jaGVzIHRvIHB1c2ggb3Igc2V0IHRoZSAncHVzaC5kZWZhdWx0JyBjb25maWd1cmF0aW9uIHZhcmlhYmxlXG4iCisidG8gJ3NpbXBsZScsICdjdXJyZW50JyBvciAndXBzdHJlYW0nIHRvIHB1c2ggb25seSB0aGUgY3VycmVudCBicmFuY2guIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjIxOAorbXNnaWQgIiIKKyJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCisiY291bnRlcnBhcnQuIENoZWNrIG91dCB0aGlzIGJyYW5jaCBhbmQgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCisiKGUuZy4gJ2dpdCBwdWxsJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MjI0Cittc2dpZCAiIgorIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSByZW1vdGUgY29udGFpbnMgd29yayB0aGF0IHlvdSBkb1xuIgorIm5vdCBoYXZlIGxvY2FsbHkuIFRoaXMgaXMgdXN1YWxseSBjYXVzZWQgYnkgYW5vdGhlciByZXBvc2l0b3J5IHB1c2hpbmdcbiIKKyJ0byB0aGUgc2FtZSByZWYuIFlvdSBtYXkgd2FudCB0byBmaXJzdCBtZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy4sXG4iCisiJ2dpdCBwdWxsJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MjMxCittc2dpZCAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRhZyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgcmVtb3RlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoyMzQKK21zZ2lkICIiCisiWW91IGNhbm5vdCB1cGRhdGUgYSByZW1vdGUgcmVmIHRoYXQgcG9pbnRzIGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCisib3IgdXBkYXRlIGEgcmVtb3RlIHJlZiB0byBtYWtlIGl0IHBvaW50IGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCisid2l0aG91dCB1c2luZyB0aGUgJy0tZm9yY2UnIG9wdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoyOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHVzaGluZyB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcHVzaCBzb21lIHJlZnMgdG8gJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzozMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHJlcG9zaXRvcnkgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzozMzIKK21zZ2lkICIiCisiTm8gY29uZmlndXJlZCBwdXNoIGRlc3RpbmF0aW9uLlxuIgorIkVpdGhlciBzcGVjaWZ5IHRoZSBVUkwgZnJvbSB0aGUgY29tbWFuZC1saW5lIG9yIGNvbmZpZ3VyZSBhIHJlbW90ZSAiCisicmVwb3NpdG9yeSB1c2luZ1xuIgorIlxuIgorIiAgICBnaXQgcmVtb3RlIGFkZCA8bmFtZT4gPHVybD5cbiIKKyJcbiIKKyJhbmQgdGhlbiBwdXNoIHVzaW5nIHRoZSByZW1vdGUgbmFtZVxuIgorIlxuIgorIiAgICBnaXQgcHVzaCA8bmFtZT5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzozNDcKK21zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MzQ4Cittc2dpZCAiLS1hbGwgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCByZWZzcGVjcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzozNTMKK21zZ2lkICItLW1pcnJvciBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MzU0Cittc2dpZCAiLS1taXJyb3IgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCByZWZzcGVjcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzozNTkKK21zZ2lkICItLWFsbCBhbmQgLS1taXJyb3IgYXJlIGluY29tcGF0aWJsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MTkKK21zZ2lkICJyZXBvc2l0b3J5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQyMAorbXNnaWQgInB1c2ggYWxsIHJlZnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDIxCittc2dpZCAibWlycm9yIGFsbCByZWZzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQyMworbXNnaWQgImRlbGV0ZSByZWZzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQyNAorbXNnaWQgInB1c2ggdGFncyAoY2FuJ3QgYmUgdXNlZCB3aXRoIC0tYWxsIG9yIC0tbWlycm9yKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MjcKK21zZ2lkICJmb3JjZSB1cGRhdGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQyOAorbXNnaWQgImNoZWNrIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQyOQorbXNnaWQgImNvbnRyb2wgcmVjdXJzaXZlIHB1c2hpbmcgb2Ygc3VibW9kdWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MzEKK21zZ2lkICJ1c2UgdGhpbiBwYWNrIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQzMiBidWlsdGluL3B1c2guYzo0MzMKK21zZ2lkICJyZWNlaXZlIHBhY2sgcHJvZ3JhbSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MzQKK21zZ2lkICJzZXQgdXBzdHJlYW0gZm9yIGdpdCBwdWxsL3N0YXR1cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MzcKK21zZ2lkICJwcnVuZSBsb2NhbGx5IHJlbW92ZWQgcmVmcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MzkKK21zZ2lkICJieXBhc3MgcHJlLXB1c2ggaG9vayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0NDAKK21zZ2lkICJwdXNoIG1pc3NpbmcgYnV0IHJlbGV2YW50IHRhZ3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDUwCittc2dpZCAiLS1kZWxldGUgaXMgaW5jb21wYXRpYmxlIHdpdGggLS1hbGwsIC0tbWlycm9yIGFuZCAtLXRhZ3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDUyCittc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzozNgorbXNnaWQgIiIKKyJnaXQgcmVhZC10cmVlIFtbLW0gWy0tdHJpdmlhbF0gWy0tYWdncmVzc2l2ZV0gfCAtLXJlc2V0IHwgLS1wcmVmaXg9PHByZWZpeD5dICIKKyJbLXUgWy0tZXhjbHVkZS1wZXItZGlyZWN0b3J5PTxnaXRpZ25vcmU+XSB8IC1pXV0gWy0tbm8tc3BhcnNlLWNoZWNrb3V0XSBbLS0iCisiaW5kZXgtb3V0cHV0PTxmaWxlPl0gKC0tZW1wdHkgfCA8dHJlZS1pc2gxPiBbPHRyZWUtaXNoMj4gWzx0cmVlLWlzaDM+XV0pIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4Cittc2dpZCAid3JpdGUgcmVzdWx0aW5nIGluZGV4IHRvIDxmaWxlPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMQorbXNnaWQgIm9ubHkgZW1wdHkgdGhlIGluZGV4IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCittc2dpZCAiTWVyZ2luZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNQorbXNnaWQgInBlcmZvcm0gYSBtZXJnZSBpbiBhZGRpdGlvbiB0byBhIHJlYWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTcKK21zZ2lkICIzLXdheSBtZXJnZSBpZiBubyBmaWxlIGxldmVsIG1lcmdpbmcgcmVxdWlyZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTkKK21zZ2lkICIzLXdheSBtZXJnZSBpbiBwcmVzZW5jZSBvZiBhZGRzIGFuZCByZW1vdmVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIxCittc2dpZCAic2FtZSBhcyAtbSwgYnV0IGRpc2NhcmQgdW5tZXJnZWQgZW50cmllcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMgorbXNnaWQgIjxzdWJkaXJlY3Rvcnk+LyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMworbXNnaWQgInJlYWQgdGhlIHRyZWUgaW50byB0aGUgaW5kZXggdW5kZXIgPHN1YmRpcmVjdG9yeT4vIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI2Cittc2dpZCAidXBkYXRlIHdvcmtpbmcgdHJlZSB3aXRoIG1lcmdlIHJlc3VsdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOAorbXNnaWQgImdpdGlnbm9yZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOQorbXNnaWQgImFsbG93IGV4cGxpY2l0bHkgaWdub3JlZCBmaWxlcyB0byBiZSBvdmVyd3JpdHRlbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMgorbXNnaWQgImRvbid0IGNoZWNrIHRoZSB3b3JraW5nIHRyZWUgYWZ0ZXIgbWVyZ2luZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMworbXNnaWQgImRvbid0IHVwZGF0ZSB0aGUgaW5kZXggb3IgdGhlIHdvcmsgdHJlZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNQorbXNnaWQgInNraXAgYXBwbHlpbmcgc3BhcnNlIGNoZWNrb3V0IGZpbHRlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNworbXNnaWQgImRlYnVnIHVucGFjay10cmVlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjExCittc2dpZCAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIgorbXNnc3RyICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTIKK21zZ2lkICIiCisiZ2l0IHJlbW90ZSBhZGQgWy10IDxicmFuY2g+XSBbLW0gPG1hc3Rlcj5dIFstZl0gWy0tdGFnc3wtLW5vLXRhZ3NdIFstLSIKKyJtaXJyb3I9PGZldGNofHB1c2g+XSA8bmFtZT4gPHVybD4iCittc2dzdHIgImdpdCByZW1vdGUgYWRkIFstdCA8YnJhbmNoZT5dIFstbSA8bWHDrnRyZXNzZT5dIFstZl0gWy0tdGFnc3wtLW5vLXRhZ3NdIFstLW1pcnJvcj08ZmV0Y2h8cHVzaD5dIDxub20+IDxVUkw+IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEzIGJ1aWx0aW4vcmVtb3RlLmM6MzIKK21zZ2lkICJnaXQgcmVtb3RlIHJlbmFtZSA8b2xkPiA8bmV3PiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSByZW5hbWUgPGFuY2llbm5lPiA8bm91dmVsbGU+IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE0IGJ1aWx0aW4vcmVtb3RlLmM6MzcKK21zZ2lkICJnaXQgcmVtb3RlIHJlbW92ZSA8bmFtZT4iCittc2dzdHIgImdpdCByZW1vdGUgcmVtb3ZlIDxub20+IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE1IGJ1aWx0aW4vcmVtb3RlLmM6NDIKK21zZ2lkICJnaXQgcmVtb3RlIHNldC1oZWFkIDxuYW1lPiAoLWEgfCAtZCB8IDxicmFuY2g+KSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bm9tPiAoLWEgfCAtZCB8IDxicmFuY2hlPikiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTYKK21zZ2lkICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0gc2hvdyBbLW5dIDxuYW1lPiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHNob3cgWy1uXSA8bm9tPiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNworbXNnaWQgImdpdCByZW1vdGUgcHJ1bmUgWy1uIHwgLS1kcnktcnVuXSA8bmFtZT4iCittc2dzdHIgImdpdCByZW1vdGUgcHJ1bmUgWy1uIHwgLS1kcnktcnVuXSA8bm9tPiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxOAorbXNnaWQgIiIKKyJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0gdXBkYXRlIFstcCB8IC0tcHJ1bmVdIFsoPGdyb3VwPiB8IDxyZW1vdGU+KS4uLl0iCittc2dzdHIgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSB1cGRhdGUgWy1wIHwgLS1wcnVuZV0gWyg8Z3JvdXBlPiB8IDxkaXN0YW50ZT4pLi4uXSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxOQorbXNnaWQgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIFstLWFkZF0gPG5hbWU+IDxicmFuY2g+Li4uIgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyBbLS1hZGRdIDxub20+IDxicmFuY2hlPi4uLiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoyMCBidWlsdGluL3JlbW90ZS5jOjY4Cittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtdXJsIFstLXB1c2hdIDxuYW1lPiA8bmV3dXJsPiBbPG9sZHVybD5dIgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC11cmwgWy0tcHVzaF0gPG5vbT4gPG5vdXZlbGxlLVVSTD4gWzxhbmNpZW5uZS1VUkw+XSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoyMSBidWlsdGluL3JlbW90ZS5jOjY5Cittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtdXJsIC0tYWRkIDxuYW1lPiA8bmV3dXJsPiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtdXJsIC0tYWRkIDxub20+IDxub3V2ZWxsZS1VUkw+IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjIyIGJ1aWx0aW4vcmVtb3RlLmM6NzAKK21zZ2lkICJnaXQgcmVtb3RlIHNldC11cmwgLS1kZWxldGUgPG5hbWU+IDx1cmw+IgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC11cmwgLS1kZWxldGUgPG5vbT4gPFVSTD4iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MjcKK21zZ2lkICJnaXQgcmVtb3RlIGFkZCBbPG9wdGlvbnM+XSA8bmFtZT4gPHVybD4iCittc2dzdHIgImdpdCByZW1vdGUgYWRkIFs8b3B0aW9ucz5dIDxub20+IDxVUkw+IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjQ3Cittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgPG5hbWU+IDxicmFuY2g+Li4uIgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyA8bm9tPiA8YnJhbmNoZT4uLi4iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NDgKK21zZ2lkICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyAtLWFkZCA8bmFtZT4gPGJyYW5jaD4uLi4iCittc2dzdHIgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIC0tYWRkIDxub20+IDxicmFuY2hlPi4uLiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo1MworbXNnaWQgImdpdCByZW1vdGUgc2hvdyBbPG9wdGlvbnM+XSA8bmFtZT4iCittc2dzdHIgImdpdCByZW1vdGUgc2hvdyBbPG9wdGlvbnM+XSA8bm9tPiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo1OAorbXNnaWQgImdpdCByZW1vdGUgcHJ1bmUgWzxvcHRpb25zPl0gPG5hbWU+IgorbXNnc3RyICJnaXQgcmVtb3RlIHBydW5lIFs8b3B0aW9ucz5dIDxub20+IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjYzCittc2dpZCAiZ2l0IHJlbW90ZSB1cGRhdGUgWzxvcHRpb25zPl0gWzxncm91cD4gfCA8cmVtb3RlPl0uLi4iCittc2dzdHIgImdpdCByZW1vdGUgdXBkYXRlIFs8b3B0aW9ucz5dIFs8Z3JvdXBlPiB8IDxkaXN0YW50ZT5dLi4uIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVwZGF0aW5nICVzIgorbXNnc3RyICJNaXNlIMOgIGpvdXIgZGUgJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTMwCittc2dpZCAiIgorIi0tbWlycm9yIGlzIGRhbmdlcm91cyBhbmQgZGVwcmVjYXRlZDsgcGxlYXNlXG4iCisiXHQgdXNlIC0tbWlycm9yPWZldGNoIG9yIC0tbWlycm9yPXB1c2ggaW5zdGVhZCIKK21zZ3N0ciAiIgorIi0tbWlycm9yIGVzdCBkYW5nZXJldXggZXQgb2Jzb2zDqHRlIDsgbWVyY2lcbiIKKyJcdCBkJ3V0aWxpc2VyIC0tbWlycm9yPWZldGNoIG91IC0tbWlycm9yPXB1c2ggw6AgbGEgcGxhY2UiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gbWlycm9yIGFyZ3VtZW50OiAlcyIKK21zZ3N0ciAiYXJndW1lbnQgbWlyb2lyIGluY29ubnUgOiAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNjMKK21zZ2lkICJmZXRjaCB0aGUgcmVtb3RlIGJyYW5jaGVzIgorbXNnc3RyICJyYXBhdHJpZXIgbGVzIGJyYW5jaGVzIGRpc3RhbnRlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNjUKK21zZ2lkICJpbXBvcnQgYWxsIHRhZ3MgYW5kIGFzc29jaWF0ZWQgb2JqZWN0cyB3aGVuIGZldGNoaW5nIgorbXNnc3RyICJpbXBvcnRlciB0b3V0ZXMgbGVzIMOpdGlxdWV0dGVzIGV0IGxlcyBvYmpldHMgYXNzb2Npw6lzIGxvcnMgZHUgcmFwYXRyaWVtZW50IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE2OAorbXNnaWQgIm9yIGRvIG5vdCBmZXRjaCBhbnkgdGFnIGF0IGFsbCAoLS1uby10YWdzKSIKK21zZ3N0ciAib3UgbmUgcmFwYXRyaWVyIGF1Y3VuZSDDqXRpcXVldHRlICgtLW5vLXRhZ3MpIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE3MAorbXNnaWQgImJyYW5jaChlcykgdG8gdHJhY2siCittc2dzdHIgImJyYW5jaGUocykgw6Agc3VpdnJlIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE3MQorbXNnaWQgIm1hc3RlciBicmFuY2giCittc2dzdHIgImJyYW5jaGUgbWHDrnRyZXNzZSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNzIKK21zZ2lkICJwdXNofGZldGNoIgorbXNnc3RyICJwdXNofGZldGNoIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE3MworbXNnaWQgInNldCB1cCByZW1vdGUgYXMgYSBtaXJyb3IgdG8gcHVzaCB0byBvciBmZXRjaCBmcm9tIgorbXNnc3RyICJwYXJhbcOpdHJlciBsYSBkaXN0YW50ZSBjb21tZSBtaXJvaXIgcG91ciBwb3Vzc2VyIG91IHBvdXIgcmFwYXRyaWVyIGRlcHVpcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxODUKK21zZ2lkICJzcGVjaWZ5aW5nIGEgbWFzdGVyIGJyYW5jaCBtYWtlcyBubyBzZW5zZSB3aXRoIC0tbWlycm9yIgorbXNnc3RyICJzcMOpY2lmaWVyIHVuZSBicmFuY2hlIG1hw650cmVzc2UgbidhIHBhcyBkZSBzZW5zIGF2ZWMgLS1taXJyb3IiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTg3Cittc2dpZCAic3BlY2lmeWluZyBicmFuY2hlcyB0byB0cmFjayBtYWtlcyBzZW5zZSBvbmx5IHdpdGggZmV0Y2ggbWlycm9ycyIKK21zZ3N0ciAic3DDqWNpZmllciBsZXMgYnJhbmNoZXMgw6Agc3VpdnJlIG4nYSBkZSBzZW5zIHF1J2F2ZWMgZGVzIG1pcm9pcnMgZGUgcmFwYXRyaWVtZW50IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE5NSBidWlsdGluL3JlbW90ZS5jOjY0NgorIywgYy1mb3JtYXQKK21zZ2lkICJyZW1vdGUgJXMgYWxyZWFkeSBleGlzdHMuIgorbXNnc3RyICJsYSBkaXN0YW50ZSAlcyBleGlzdGUgZMOpasOgLiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxOTkgYnVpbHRpbi9yZW1vdGUuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCByZW1vdGUgbmFtZSIKK21zZ3N0ciAiJyVzJyBuJ2VzdCBwYXMgdW4gbm9tIHZhbGlkZSBkZSBkaXN0YW50ZSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoyNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHNldHVwIG1hc3RlciAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHBhcmFtw6l0cmVyIGxhIG1hw650cmVzc2UgJyVzJyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoyOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9yZSB0aGFuIG9uZSAlcyIKK21zZ3N0ciAicGx1cyBkJ3VuICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZ2V0IGZldGNoIG1hcCBmb3IgcmVmc3BlYyAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjQ0MCBidWlsdGluL3JlbW90ZS5jOjQ0OAorbXNnaWQgIihtYXRjaGluZykiCittc2dzdHIgIihjb3JyZXNwb25kKSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo0NTIKK21zZ2lkICIoZGVsZXRlKSIKK21zZ3N0ciAiKHN1cHByaW1lcikiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NTk1IGJ1aWx0aW4vcmVtb3RlLmM6NjAxIGJ1aWx0aW4vcmVtb3RlLmM6NjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBhcHBlbmQgJyVzJyB0byAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYWpvdXRlciAnJXMnIMOgICclcyciCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NjM5IGJ1aWx0aW4vcmVtb3RlLmM6NzkyIGJ1aWx0aW4vcmVtb3RlLmM6ODkwCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHN1Y2ggcmVtb3RlOiAlcyIKK21zZ3N0ciAiRGlzdGFudGUgaW5jb25udWUgOiAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHJlbmFtZSBjb25maWcgc2VjdGlvbiAnJXMnIHRvICclcyciCittc2dzdHIgIkltcG9zc2libGUgZGUgcmVub21tZXIgbGEgc2VjdGlvbiBkZSBjb25maWd1cmF0aW9uICclcycgZW4gJyVzJyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo2NjIgYnVpbHRpbi9yZW1vdGUuYzo3OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHJlbW92ZSBjb25maWcgc2VjdGlvbiAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsYSBzZWN0aW9uIGRlIGNvbmZpZ3VyYXRpb24gJyVzJyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo2NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCB1cGRhdGluZyBub24tZGVmYXVsdCBmZXRjaCByZWZzcGVjXG4iCisiXHQlc1xuIgorIlx0UGxlYXNlIHVwZGF0ZSB0aGUgY29uZmlndXJhdGlvbiBtYW51YWxseSBpZiBuZWNlc3NhcnkuIgorbXNnc3RyICIiCisiUGFzIGRlIG1pc2Ugw6Agam91ciBkdSByZWZzcGVjIGRlIHJhcGF0cmllbWVudCBxdWkgbidlc3QgcGFzIHBhciBkw6lmYXV0XG4iCisiXHQlc1xuIgorIlx0TWVyY2kgZGUgbWV0dHJlIMOgIGpvdXIgbGEgY29uZmlndXJhdGlvbiBzaSBuw6ljZXNzYWlyZS4iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBhcHBlbmQgJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2Fqb3V0ZXIgJyVzJyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo2OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHNldCAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGTDqWZpbmlyICclcyciCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NzE2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbGV0aW5nICclcycgZmFpbGVkIgorbXNnc3RyICLDqWNoZWMgZGUgc3VwcHJlc3Npb24gZGUgJyVzJyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo3NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3JlYXRpbmcgJyVzJyBmYWlsZWQiCittc2dzdHIgIsOpY2hlYyBkZSBjcsOpYXRpb24gZGUgJyVzJyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHJlbW92ZSBicmFuY2ggJXMiCittc2dzdHIgIkltcG9zc2libGUgZGUgc3VwcHJpbWVyIGxhIGJyYW5jaGUgJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6ODM0Cittc2dpZCAiIgorIk5vdGU6IEEgYnJhbmNoIG91dHNpZGUgdGhlIHJlZnMvcmVtb3Rlcy8gaGllcmFyY2h5IHdhcyBub3QgcmVtb3ZlZDtcbiIKKyJ0byBkZWxldGUgaXQsIHVzZToiCittc2dpZF9wbHVyYWwgIiIKKyJOb3RlOiBTb21lIGJyYW5jaGVzIG91dHNpZGUgdGhlIHJlZnMvcmVtb3Rlcy8gaGllcmFyY2h5IHdlcmUgbm90IHJlbW92ZWQ7XG4iCisidG8gZGVsZXRlIHRoZW0sIHVzZToiCittc2dzdHJbMF0gIiIKKyJOb3RlIDogVW5lIGJyYW5jaGUgZW4gZGVob3JzIGRlIHJlZnMvcmVtb3Rlcy8gbidhIHBhcyDDqXTDqSBzdXBwcmltw6llIDtcbiIKKyJwb3VyIGxhIHN1cHByaW1lciwgdXRpbGlzZXogOiIKK21zZ3N0clsxXSAiIgorIk5vdGUgOiBQbHVzaWV1cnMgYnJhbmNoZXMgZW4gZGVob3JzIGRlIHJlZnMvcmVtb3Rlcy8gbidvbnQgcGFzIMOpdMOpIHN1cHByaW3DqWVzIDtcbiIKKyJwb3VyIGxlcyBzdXBwcmltZXIsIHV0aWxpc2V6IDoiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiBuZXcgKG5leHQgZmV0Y2ggd2lsbCBzdG9yZSBpbiByZW1vdGVzLyVzKSIKK21zZ3N0ciAiIG5vdXZlYXUgKGxlIHByb2NoYWluIHJhcGF0cmllbWVudCAoZmV0Y2gpIHN0b2NrZXJhIGRhbnMgcmVtb3Rlcy8lcykiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6OTQ2Cittc2dpZCAiIHRyYWNrZWQiCittc2dzdHIgIiBzdWl2aSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo5NDgKK21zZ2lkICIgc3RhbGUgKHVzZSAnZ2l0IHJlbW90ZSBwcnVuZScgdG8gcmVtb3ZlKSIKK21zZ3N0ciAiIGTDqXBhc3PDqSAodXRpbGlzZXogJ2dpdCByZW1vdGUgcHJ1bmUnIHBvdXIgc3VwcHJpbWVyKSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo5NTAKK21zZ2lkICIgPz8/IgorbXNnc3RyICIgPz8/IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjk5MQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGJyYW5jaC4lcy5tZXJnZTsgY2Fubm90IHJlYmFzZSBvbnRvID4gMSBicmFuY2giCittc2dzdHIgImJyYW5jaC4lcy5tZXJnZSBpbnZhbGlkZSA7IG5lIHBldXQgcGFzIHJlYmFzZXIgc3VyIHBsdXMgZCd1bmUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo5OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmViYXNlcyBvbnRvIHJlbW90ZSAlcyIKK21zZ3N0ciAicmViYXNlIHN1ciBsYSBkaXN0YW50ZSAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMDAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiBtZXJnZXMgd2l0aCByZW1vdGUgJXMiCittc2dzdHIgIiBmdXNpb25uZSBhdmVjIGxhIGRpc3RhbnRlICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEwMDIKK21zZ2lkICIgICAgYW5kIHdpdGggcmVtb3RlIgorbXNnc3RyICIgICAgZXQgYXZlYyBsYSBkaXN0YW50ZSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1lcmdlcyB3aXRoIHJlbW90ZSAlcyIKK21zZ3N0ciAiZnVzaW9ubmUgYXZlYyBsYSBkaXN0YW50ZSAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMDA1Cittc2dpZCAiICAgYW5kIHdpdGggcmVtb3RlIgorbXNnc3RyICIgICBldCBhdmVjIGxhIGRpc3RhbnRlIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEwNTEKK21zZ2lkICJjcmVhdGUiCittc2dzdHIgImNyw6llciIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMDU0Cittc2dpZCAiZGVsZXRlIgorbXNnc3RyICJzdXBwcmltZXIiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTA1OAorbXNnaWQgInVwIHRvIGRhdGUiCittc2dzdHIgIsOgIGpvdXIiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTA2MQorbXNnaWQgImZhc3QtZm9yd2FyZGFibGUiCittc2dzdHIgInBldXQgw6p0cmUgbWlzIMOgIGpvdXIgZW4gYXZhbmNlIHJhcGlkZSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMDY0Cittc2dpZCAibG9jYWwgb3V0IG9mIGRhdGUiCittc2dzdHIgImxlIGxvY2FsIG4nZXN0IHBhcyDDoCBqb3VyIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEwNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICUtKnMgZm9yY2VzIHRvICUtKnMgKCVzKSIKK21zZ3N0ciAiICAgICUtKnMgZm9yY2UgdmVycyAlLSpzICglcykiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTA3NAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgJS0qcyBwdXNoZXMgdG8gJS0qcyAoJXMpIgorbXNnc3RyICIgICAgJS0qcyBwb3Vzc2UgdmVycyAlLSpzICglcykiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTA3OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgJS0qcyBmb3JjZXMgdG8gJXMiCittc2dzdHIgIiAgICAlLSpzIGZvcmNlIHZlcnMgJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTA4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgJS0qcyBwdXNoZXMgdG8gJXMiCittc2dzdHIgIiAgICAlLSpzIHBvdXNzZSB2ZXJzICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEwOTEKK21zZ2lkICJkbyBub3QgcXVlcnkgcmVtb3RlcyIKK21zZ3N0ciAibmUgcGFzIGludGVycm9nZXIgbGVzIGRpc3RhbnRlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiogcmVtb3RlICVzIgorbXNnc3RyICIqIGRpc3RhbnRlICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjExMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBGZXRjaCBVUkw6ICVzIgorbXNnc3RyICIgIFVSTCBkZSByYXBhdHJpZW1lbnQgOiAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTIwIGJ1aWx0aW4vcmVtb3RlLmM6MTI4NQorbXNnaWQgIihubyBVUkwpIgorbXNnc3RyICIocGFzIGQnVVJMKSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTI5IGJ1aWx0aW4vcmVtb3RlLmM6MTEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFB1c2ggIFVSTDogJXMiCittc2dzdHIgIiAgVVJMIHB1c2ggOiAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTMzIGJ1aWx0aW4vcmVtb3RlLmM6MTEzNSBidWlsdGluL3JlbW90ZS5jOjExMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBIRUFEIGJyYW5jaDogJXMiCittc2dzdHIgIiAgQnJhbmNoZSBIRUFEIDogJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTEzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICBIRUFEIGJyYW5jaCAocmVtb3RlIEhFQUQgaXMgYW1iaWd1b3VzLCBtYXkgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcpOlxuIgorbXNnc3RyICIgIEJyYW5jaGUgSEVBRCAobGEgSEVBRCBkaXN0YW50ZSBlc3QgYW1iaWd1w6ssIHBldXQgw6p0cmUgbCd1bmUgZGVzIHN1aXZhbnRlcykgOlxuIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjExNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBSZW1vdGUgYnJhbmNoOiVzIgorbXNnaWRfcGx1cmFsICIgIFJlbW90ZSBicmFuY2hlczolcyIKK21zZ3N0clswXSAiICBCcmFuY2hlIGRpc3RhbnRlIDolcyIKK21zZ3N0clsxXSAiICBCcmFuY2hlcyBkaXN0YW50ZXMgOiVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjExNTQgYnVpbHRpbi9yZW1vdGUuYzoxMTgxCittc2dpZCAiIChzdGF0dXMgbm90IHF1ZXJpZWQpIgorbXNnc3RyICIgKHN0YXR1dCBub24gZGVtYW5kw6kpIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjExNjMKK21zZ2lkICIgIExvY2FsIGJyYW5jaCBjb25maWd1cmVkIGZvciAnZ2l0IHB1bGwnOiIKK21zZ2lkX3BsdXJhbCAiICBMb2NhbCBicmFuY2hlcyBjb25maWd1cmVkIGZvciAnZ2l0IHB1bGwnOiIKK21zZ3N0clswXSAiICBCcmFuY2hlIGxvY2FsZSBjb25maWd1csOpZSBwb3VyICdnaXQgcHVsbCcgOiIKK21zZ3N0clsxXSAiICBCcmFuY2hlcyBsb2NhbGVzIGNvbmZpZ3Vyw6llcyBwb3VyICdnaXQgcHVsbCcgOiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTcxCittc2dpZCAiICBMb2NhbCByZWZzIHdpbGwgYmUgbWlycm9yZWQgYnkgJ2dpdCBwdXNoJyIKK21zZ3N0ciAiICBMZXMgcsOpZsOpcmVuY2VzIGxvY2FsZXMgc2Vyb250IHJlZmzDqXTDqWVzIHBhciAnZ2l0IHB1c2gnIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjExNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBMb2NhbCByZWYgY29uZmlndXJlZCBmb3IgJ2dpdCBwdXNoJyVzOiIKK21zZ2lkX3BsdXJhbCAiICBMb2NhbCByZWZzIGNvbmZpZ3VyZWQgZm9yICdnaXQgcHVzaCclczoiCittc2dzdHJbMF0gIiAgUsOpZsOpcmVuY2UgbG9jYWxlIGNvbmZpZ3Vyw6llIHBvdXIgJ2dpdCBwdXNoJyVzIDoiCittc2dzdHJbMV0gIiAgUsOpZsOpcmVuY2VzIGxvY2FsZXMgY29uZmlndXLDqWVzIHBvdXIgJ2dpdCBwdXNoJyVzIDoiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTE5OQorbXNnaWQgInNldCByZWZzL3JlbW90ZXMvPG5hbWU+L0hFQUQgYWNjb3JkaW5nIHRvIHJlbW90ZSIKK21zZ3N0ciAiZMOpZmluaXIgcmVmcy9yZW1vdGVzLzxub20+L0hFQUQgc2Vsb24gbGEgZGlzdGFudGUiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTIwMQorbXNnaWQgImRlbGV0ZSByZWZzL3JlbW90ZXMvPG5hbWU+L0hFQUQiCittc2dzdHIgInN1cHByaW1lciByZWZzL3JlbW90ZXMvPG5vbT4vSEVBRCIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMjE2Cittc2dpZCAiQ2Fubm90IGRldGVybWluZSByZW1vdGUgSEVBRCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBkw6l0ZXJtaW5lciBsYSBIRUFEIGRpc3RhbnRlIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEyMTgKK21zZ2lkICJNdWx0aXBsZSByZW1vdGUgSEVBRCBicmFuY2hlcy4gUGxlYXNlIGNob29zZSBvbmUgZXhwbGljaXRseSB3aXRoOiIKK21zZ3N0ciAiSWwgeSBhIGRlIG11bHRpcGxlcyBicmFuY2hlcyBIRUFEIGRpc3RhbnRlcy4gTWVyY2kgZCdlbiBjaG9pc2lyIHVuZSBleHBsaWNpdGVtZW50IGF2ZWMgOiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBkZWxldGUgJXMiCittc2dzdHIgIkltcG9zc2libGUgZGUgc3VwcHJpbWVyICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IGEgdmFsaWQgcmVmOiAlcyIKK21zZ3N0ciAiUsOpZsOpcmVuY2Ugbm9uIHZhbGlkZSA6ICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHNldHVwICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHBhcmFtw6l0cmVyICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzIHdpbGwgYmVjb21lIGRhbmdsaW5nISIKK21zZ3N0ciAiICVzIGRldmllbmRyYSBlbiBzdXNwZW5zICEiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTI3NQorIywgYy1mb3JtYXQKK21zZ2lkICIgJXMgaGFzIGJlY29tZSBkYW5nbGluZyEiCittc2dzdHIgIiAlcyBlc3QgZGV2ZW51IGVuIHN1c3BlbnMgISIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBydW5pbmcgJXMiCittc2dzdHIgIsOJbGFnYWdlIGRlICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEyODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJMOiAlcyIKK21zZ3N0ciAiVVJMIDogJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgKiBbd291bGQgcHJ1bmVdICVzIgorbXNnc3RyICIgKiBbc2VyYWl0IMOpbGFndcOpXSAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAqIFtwcnVuZWRdICVzIgorbXNnc3RyICIgKiBbw6lsYWd1w6ldICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEzMjEKK21zZ2lkICJwcnVuZSByZW1vdGVzIGFmdGVyIGZldGNoaW5nIgorbXNnc3RyICLDqWxhZ3VlciBsZXMgZGlzdGFudHMgYXByw6hzIGxlIHJhcGF0cmllbWVudCIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMzg3IGJ1aWx0aW4vcmVtb3RlLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICJObyBzdWNoIHJlbW90ZSAnJXMnIgorbXNnc3RyICJQYXMgZGUgc2VydmV1ciByZW1vdGUgJyVzJyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNDA3Cittc2dpZCAiYWRkIGJyYW5jaCIKK21zZ3N0ciAiYWpvdXRlciB1bmUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNDE0Cittc2dpZCAibm8gcmVtb3RlIHNwZWNpZmllZCIKK21zZ3N0ciAicGFzIGRlIHNlcnZldXIgZGlzdGFudCBzcMOpY2lmacOpIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE0MzYKK21zZ2lkICJtYW5pcHVsYXRlIHB1c2ggVVJMcyIKK21zZ3N0ciAibWFuaXB1bGVyIGxlcyBVUkxzIHB1c2giCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQzOAorbXNnaWQgImFkZCBVUkwiCittc2dzdHIgImFqb3V0ZXIgdW5lIFVSTCIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNDQwCittc2dpZCAiZGVsZXRlIFVSTHMiCittc2dzdHIgInN1cHByaW1lciBkZXMgVVJMcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNDQ3Cittc2dpZCAiLS1hZGQgLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIgorbXNnc3RyICItLWFkZCAtLWRlbGV0ZSBuJ2EgYXVjdW4gc2VucyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNDg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb2xkIFVSTCBwYXR0ZXJuOiAlcyIKK21zZ3N0ciAiTW90aWYgZCdVUkwgYW5jaWVuIGludmFsaWRlIDogJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQ5NQorIywgYy1mb3JtYXQKK21zZ2lkICJObyBzdWNoIFVSTCBmb3VuZDogJXMiCittc2dzdHIgIlBhcyBkJ1VSTCB0cm91dsOpZSA6ICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE0OTcKK21zZ2lkICJXaWxsIG5vdCBkZWxldGUgYWxsIG5vbi1wdXNoIFVSTHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNTY5Cittc2dpZCAiYmUgdmVyYm9zZTsgbXVzdCBiZSBwbGFjZWQgYmVmb3JlIGEgc3ViY29tbWFuZCIKK21zZ3N0ciAiw6p0cmUgdmVyYmV1eCA6IGRvaXQgw6p0cmUgcGxhY8OpIGF2YW50IHVuZSBzb3VzLWNvbW1hbmRlIgorCisjOiBidWlsdGluL3JlcGxhY2UuYzoxNworbXNnaWQgImdpdCByZXBsYWNlIFstZl0gPG9iamVjdD4gPHJlcGxhY2VtZW50PiIKK21zZ3N0ciAiZ2l0IHJlcGxhY2UgWy1mXSA8b2JqZXQ+IDxyZW1wbGFjZW1lbnQ+IgorCisjOiBidWlsdGluL3JlcGxhY2UuYzoxOAorbXNnaWQgImdpdCByZXBsYWNlIC1kIDxvYmplY3Q+Li4uIgorbXNnc3RyICJnaXQgcmVwbGFjZSAtZCA8b2JqZXQ+Li4uIgorCisjOiBidWlsdGluL3JlcGxhY2UuYzoxOQorbXNnaWQgImdpdCByZXBsYWNlIC1sIFs8cGF0dGVybj5dIgorbXNnc3RyICJnaXQgcmVwbGFjZSAtbCBbPG1vdGlmPl0iCisKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEyMQorbXNnaWQgImxpc3QgcmVwbGFjZSByZWZzIgorbXNnc3RyICJhZmZpY2hlciBsZXMgcsOpZsOpcmVuY2VzIGRlIHJlbXBsYWNlbWVudCIKKworIzogYnVpbHRpbi9yZXBsYWNlLmM6MTIyCittc2dpZCAiZGVsZXRlIHJlcGxhY2UgcmVmcyIKK21zZ3N0ciAic3VwcHJpbWVyIGxlcyByw6lmw6lyZW5jZXMgZGUgcmVtcGxhY2VtZW50IgorCisjOiBidWlsdGluL3JlcGxhY2UuYzoxMjMKK21zZ2lkICJyZXBsYWNlIHRoZSByZWYgaWYgaXQgZXhpc3RzIgorbXNnc3RyICJyZW1wbGFjZXIgbGEgcsOpZsOpcmVuY2Ugc2kgZWxsZSBleGlzdGUiCisKKyM6IGJ1aWx0aW4vcmVyZXJlLmM6MTEKK21zZ2lkICJnaXQgcmVyZXJlIFtjbGVhciB8IGZvcmdldCBwYXRoLi4uIHwgc3RhdHVzIHwgcmVtYWluaW5nIHwgZGlmZiB8IGdjXSIKK21zZ3N0ciAiZ2l0IHJlcmVyZSBbY2xlYXIgfCBmb3JnZXQgY2hlbWluLi4uIHwgc3RhdHVzIHwgcmVtYWluaW5nIHwgZGlmZiB8IGdjXSIKKworIzogYnVpbHRpbi9yZXJlcmUuYzo1NgorbXNnaWQgInJlZ2lzdGVyIGNsZWFuIHJlc29sdXRpb25zIGluIGluZGV4IgorbXNnc3RyICJlbnJlZ2lzdHJlciBkZXMgcsOpc29sdXRpb25zIHByb3ByZXMgZGFucyBsJ2luZGV4IgorCisjOiBidWlsdGluL3Jlc2V0LmM6MjUKK21zZ2lkICIiCisiZ2l0IHJlc2V0IFstLW1peGVkIHwgLS1zb2Z0IHwgLS1oYXJkIHwgLS1tZXJnZSB8IC0ta2VlcF0gWy1xXSBbPGNvbW1pdD5dIgorbXNnc3RyICJnaXQgcmVzZXQgWy0tbWl4ZWQgfCAtLXNvZnQgfCAtLWhhcmQgfCAtLW1lcmdlIHwgLS1rZWVwXSBbLXFdIFs8Y29tbWl0Pl0iCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNgorbXNnaWQgImdpdCByZXNldCBbLXFdIDx0cmVlLWlzaD4gWy0tXSA8cGF0aHM+Li4uIgorbXNnc3RyICJnaXQgcmVzZXQgWy1xXSA8YXJicmU+IFstLV0gPGNoZW1pbnM+Li4uIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MjcKK21zZ2lkICJnaXQgcmVzZXQgLS1wYXRjaCBbPHRyZWUtaXNoPl0gWy0tXSBbPHBhdGhzPi4uLl0iCittc2dzdHIgImdpdCByZXNldCAtLXBhdGNoIFs8YXJicmU+XSBbLS1dIFs8Y2hlbWlucz4uLi5dIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzMKK21zZ2lkICJtaXhlZCIKK21zZ3N0ciAibWl4ZWQiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMworbXNnaWQgInNvZnQiCittc2dzdHIgInNvZnQiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMworbXNnaWQgImhhcmQiCittc2dzdHIgImhhcmQiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMworbXNnaWQgIm1lcmdlIgorbXNnc3RyICJtZXJnZSIKKworIzogYnVpbHRpbi9yZXNldC5jOjMzCittc2dpZCAia2VlcCIKK21zZ3N0ciAia2VlcCIKKworIzogYnVpbHRpbi9yZXNldC5jOjczCittc2dpZCAiWW91IGRvIG5vdCBoYXZlIGEgdmFsaWQgSEVBRC4iCittc2dzdHIgIlZvdXMgbidhdmV6IHBhcyB1bmUgSEVBRCB2YWxpZGUuIgorCisjOiBidWlsdGluL3Jlc2V0LmM6NzUKK21zZ2lkICJGYWlsZWQgdG8gZmluZCB0cmVlIG9mIEhFQUQuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbCdhcmJyZSBwb3VyIEhFQUQuIgorCisjOiBidWlsdGluL3Jlc2V0LmM6ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIGZpbmQgdHJlZSBvZiAlcy4iCittc2dzdHIgIkltcG9zc2libGUgZGUgdHJvdXZlciBsJ2FyYnJlIHBvdXIgJXMuIgorCisjOiBidWlsdGluL3Jlc2V0LmM6OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSEVBRCBpcyBub3cgYXQgJXMiCittc2dzdHIgIkhFQUQgZXN0IG1haW50ZW5hbnQgw6AgJXMiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGRvIGEgJXMgcmVzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmYWlyZSB1biBcInJlc2V0ICVzXCIgYXUgbWlsaWV1IGQndW5lIGZ1c2lvbi4iCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNDgKK21zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgorbXNnc3RyICLDqnRyZSBzaWxlbmNpZXV4LCBhZmZpY2hlciBzZXVsZW1lbnQgbGVzIGVycmV1cnMiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTAKK21zZ2lkICJyZXNldCBIRUFEIGFuZCBpbmRleCIKK21zZ3N0ciAicsOpaW5pdGlhbGlzZXIgSEVBRCBldCBsJ2luZGV4IgorCisjOiBidWlsdGluL3Jlc2V0LmM6MjUxCittc2dpZCAicmVzZXQgb25seSBIRUFEIgorbXNnc3RyICJyw6lpbml0aWFsaXNlciBzZXVsZW1lbnQgSEVBRCIKKworIzogYnVpbHRpbi9yZXNldC5jOjI1MyBidWlsdGluL3Jlc2V0LmM6MjU1Cittc2dpZCAicmVzZXQgSEVBRCwgaW5kZXggYW5kIHdvcmtpbmcgdHJlZSIKK21zZ3N0ciAicsOpaW5pdGlhbGlzZXIgSEVBRCwgbCdpbmRleCBldCBsYSBjb3BpZSBkZSB0cmF2YWlsIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MjU3Cittc2dpZCAicmVzZXQgSEVBRCBidXQga2VlcCBsb2NhbCBjaGFuZ2VzIgorbXNnc3RyICJyw6lpbml0aWFsaXNlciBIRUFEIG1haXMgZ2FyZGVyIGxlcyBjaGFuZ2VtZW50cyBsb2NhdXgiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJldmlzaW9uLiIKK21zZ3N0ciAiw4ljaGVjIGRlIHLDqXNvbHV0aW9uIGRlICclcycgY29tbWUgdW5lIHLDqXZpc2lvbiB2YWxpZGUuIgorCisjOiBidWlsdGluL3Jlc2V0LmM6Mjc4IGJ1aWx0aW4vcmVzZXQuYzoyODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHBhcnNlIG9iamVjdCAnJXMnLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGwnb2JqZXQgJyVzJy4iCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHRyZWUuIgorbXNnc3RyICLDiWNoZWMgZGUgcsOpc29sdXRpb24gZGUgJyVzJyBjb21tZSB1biBhcmJyZSB2YWxpZGUuIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MjkyCittc2dpZCAiLS1wYXRjaCBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLXtoYXJkLG1peGVkLHNvZnR9IgorbXNnc3RyICItLXBhdGNoIGVzdCBpbmNvbXBhdGlibGUgYXZlYyAtLXtoYXJkLG1peGVkLHNvZnR9IgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzAxCittc2dpZCAiLS1taXhlZCB3aXRoIHBhdGhzIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIGluc3RlYWQuIgorbXNnc3RyICItLW1peGVkIGF2ZWMgZGVzIGNoZW1pbnMgZXN0IG9ic29sw6h0ZSA7IHV0aWxpc2V6ICdnaXQgcmVzZXQgLS0gPHBhdGhzPicgw6AgbGEgcGxhY2UuIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBkbyAlcyByZXNldCB3aXRoIHBhdGhzLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmYWlyZSB1biBcIiVzIHJlc2V0XCIgYXZlYyBkZXMgY2hlbWlucy4iCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVzZXQgaXMgbm90IGFsbG93ZWQgaW4gYSBiYXJlIHJlcG9zaXRvcnkiCittc2dzdHIgIkxlIFwiJXMgcmVzZXRcIiBuJ2VzdCBwYXMgcGVybWlzIGRhbnMgdW4gZMOpcMO0dCBudSIKKworIzogYnVpbHRpbi9yZXNldC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgcmVzZXQgaW5kZXggZmlsZSB0byByZXZpc2lvbiAnJXMnLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSByw6lpbml0aWFsaXNlciBsZSBmaWNoaWVyIGQnaW5kZXggw6AgbGEgcsOpdmlzaW9uICclcycuIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzM5Cittc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZXNldDoiCittc2dzdHIgIk1vZGlmaWNhdGlvbnMgbm9uIGluZGV4w6llcyBhcHLDqHMgcmVzZXQgOiIKKworIzogYnVpbHRpbi9yZXNldC5jOjM0NAorbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBuZXcgaW5kZXggZmlsZS4iCittc2dzdHIgIkltcG9zc2libGUgZCfDqWNyaXJlIGxlIG5vdXZlYXUgZmljaGllciBkJ2luZGV4LiIKKworIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozMzkKK21zZ2lkICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW29wdGlvbnNdIC0tIFs8YXJncz4uLi5dIgorbXNnc3RyICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW29wdGlvbnNdIC0tIFs8YXJndW1lbnRzPi4uLl0iCisKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ0Cittc2dpZCAia2VlcCB0aGUgYC0tYCBwYXNzZWQgYXMgYW4gYXJnIgorbXNnc3RyICJnYXJkZXIgbGUgYC0tYCBwYXNzw6kgZW4gYXJndW1lbnQiCisKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ2Cittc2dpZCAic3RvcCBwYXJzaW5nIGFmdGVyIHRoZSBmaXJzdCBub24tb3B0aW9uIGFyZ3VtZW50IgorbXNnc3RyICJhcnLDqnQgZGUgbCdhbmFseXNlIGFwcsOocyBsZSBwcmVtaWVyIGFyZ3VtZW50IHF1aSBuJ2VzdCBwYXMgdW5lIG9wdGlvbiIKKworIzogYnVpbHRpbi9yZXYtcGFyc2UuYzo0NjQKK21zZ2lkICIiCisiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtvcHRpb25zXSAtLSBbPGFyZ3M+Li4uXVxuIgorIiAgIG9yOiBnaXQgcmV2LXBhcnNlIC0tc3EtcXVvdGUgWzxhcmc+Li4uXVxuIgorIiAgIG9yOiBnaXQgcmV2LXBhcnNlIFtvcHRpb25zXSBbPGFyZz4uLi5dXG4iCisiXG4iCisiUnVuIFwiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IC1oXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGZpcnN0IHVzYWdlLiIKK21zZ3N0ciAiIgorImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmd1bWVudHM+Li4uXVxuIgorIiAgIG91IDogZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlIFs8YXJndW1lbnQ+Li4uXVxuIgorIiAgIG91IDogZ2l0IHJldi1wYXJzZSBbb3B0aW9uc10gWzxhcmd1bWVudD4uLi5dXG4iCisiXG4iCisiTGFuY2V6IFwiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IC1oXCIgcG91ciBwbHVzIGQnaW5mb3JtYXRpb24gc3VyIGwndXRpbGlzYXRpb24gcHJpbmNpcGFsZS4iCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjIKK21zZ2lkICJnaXQgcmV2ZXJ0IFtvcHRpb25zXSA8Y29tbWl0LWlzaD4uLi4iCittc2dzdHIgImdpdCByZXZlcnQgW29wdGlvbnNdIDxjb21taXQ+Li4uIgorCisjOiBidWlsdGluL3JldmVydC5jOjIzCittc2dpZCAiZ2l0IHJldmVydCA8c3ViY29tbWFuZD4iCittc2dzdHIgImdpdCByZXZlcnQgPHNvdXMtY29tbWFuZGU+IgorCisjOiBidWlsdGluL3JldmVydC5jOjI4Cittc2dpZCAiZ2l0IGNoZXJyeS1waWNrIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4uLi4iCittc2dzdHIgImdpdCBjaGVycnktcGljayBbb3B0aW9uc10gPGNvbW1pdD4uLi4iCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjkKK21zZ2lkICJnaXQgY2hlcnJ5LXBpY2sgPHN1YmNvbW1hbmQ+IgorbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgPHNvdXMtY29tbWFuZGU+IgorCisjOiBidWlsdGluL3JldmVydC5jOjcwIGJ1aWx0aW4vcmV2ZXJ0LmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiCittc2dzdHIgIiVzIDogJXMgbmUgcGV1dCBwYXMgw6p0cmUgdXRpbGlzw6kgYXZlYyAlcyIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDMKK21zZ2lkICJlbmQgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgorbXNnc3RyICJtZXR0cmUgZmluIGF1IHJldG91ciBvdSBwaWNvcmFnZSIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDQKK21zZ2lkICJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgorbXNnc3RyICJyZXByZW5kcmUgbGUgcmV0b3VyIG91IHBpY29yYWdlIgorCisjOiBidWlsdGluL3JldmVydC5jOjEwNQorbXNnaWQgImNhbmNlbCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCittc2dzdHIgImFubnVsZXIgbGUgcmV0b3VyIG91IHBpY29yYWdlIgorCisjOiBidWlsdGluL3JldmVydC5jOjEwNgorbXNnaWQgImRvbid0IGF1dG9tYXRpY2FsbHkgY29tbWl0IgorbXNnc3RyICJuZSBwYXMgdmFsaWRlciBhdXRvbWF0aXF1ZW1lbnQiCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3Cittc2dpZCAiZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UiCittc2dzdHIgIsOpZGl0ZXIgbGUgbWVzc2FnZSBkZSB2YWxpZGF0aW9uIgorCisjOiBidWlsdGluL3JldmVydC5jOjExMAorbXNnaWQgInBhcmVudCBudW1iZXIiCittc2dzdHIgIm51bcOpcm8gZGUgcGFyZW50IgorCisjOiBidWlsdGluL3JldmVydC5jOjExMgorbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IgorbXNnc3RyICJzdHJhdMOpZ2llIGRlIGZ1c2lvbiIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMTMKK21zZ2lkICJvcHRpb24iCittc2dzdHIgIm9wdGlvbiIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKK21zZ2lkICJvcHRpb24gZm9yIG1lcmdlIHN0cmF0ZWd5IgorbXNnc3RyICJvcHRpb24gcG91ciBsYSBzdHJhdMOpZ2llIGRlIGZ1c2lvbiIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMjUKK21zZ2lkICJhcHBlbmQgY29tbWl0IG5hbWUiCittc2dzdHIgImFqb3V0ZXIgbGUgbm9tIGRlIHZhbGlkYXRpb24iCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI2Cittc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIgorbXNnc3RyICJhdXRvcmlzZXIgbCdhdmFuY2UgcmFwaWRlIgorCisjOiBidWlsdGluL3JldmVydC5jOjEyNworbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgorbXNnc3RyICJwcsOpc2VydmVyIGxlcyB2YWxpZGF0aW9ucyB2aWRlcyBpbml0aWFsZW1lbnQiCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4Cittc2dpZCAiYWxsb3cgY29tbWl0cyB3aXRoIGVtcHR5IG1lc3NhZ2VzIgorbXNnc3RyICJhdXRvcmlzZXIgbGVzIHZhbGlkYXRpb25zIGF2ZWMgZGVzIG1lc3NhZ2VzIHZpZGVzIgorCisjOiBidWlsdGluL3JldmVydC5jOjEyOQorbXNnaWQgImtlZXAgcmVkdW5kYW50LCBlbXB0eSBjb21taXRzIgorbXNnc3RyICJnYXJkZXIgbGVzIHZhbGlkYXRpb25zIHJlZG9uZGFudGVzLCB2aWRlcyIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMzMKK21zZ2lkICJwcm9ncmFtIGVycm9yIgorbXNnc3RyICJlcnJldXIgZHUgcHJvZ3JhbW1lIgorCisjOiBidWlsdGluL3JldmVydC5jOjIyMworbXNnaWQgInJldmVydCBmYWlsZWQiCittc2dzdHIgInJldmVydCBhIMOpY2hvdcOpIgorCisjOiBidWlsdGluL3JldmVydC5jOjIzOAorbXNnaWQgImNoZXJyeS1waWNrIGZhaWxlZCIKK21zZ3N0ciAibGUgcGljb3JhZ2UgYSDDqWNob3XDqSIKKworIzogYnVpbHRpbi9ybS5jOjE1Cittc2dpZCAiZ2l0IHJtIFtvcHRpb25zXSBbLS1dIDxmaWxlPi4uLiIKK21zZ3N0ciAiZ2l0IHJtIFtvcHRpb25zXSBbLS1dIDxmaWNoaWVyPi4uLiIKKworIzogYnVpbHRpbi9ybS5jOjY0IGJ1aWx0aW4vcm0uYzoxODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInN1Ym1vZHVsZSAnJXMnIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKSB1c2VzIGEgLmdpdCBkaXJlY3RvcnlcbiIKKyIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgaGlzdG9yeSkiCittc2dzdHIgIiIKKyJsZSBzb3VzLW1vZHVsZSAnJXMnIChvdSB1biBkZXMgc291cy1tb2R1bGVzIGltYnJpcXXDqXMpIHV0aWxpc2UgdW4gcsOpcGVydG9pcmUgLmdpdFxuIgorIih1dGlsaXNleiAncm0gLXJmJyBzaSB2b3VzIHNvdWhhaXRleiB2cmFpbWVudCBsZSBzdXBwcmltZXIgYXZlYyB0b3V0IHNvbiBoaXN0b3JpcXVlKSIKKworIzogYnVpbHRpbi9ybS5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJyVzJyBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGUgZmlsZSBhbmQgdGhlIEhFQURcbiIKKyIodXNlIC1mIHRvIGZvcmNlIHJlbW92YWwpIgorbXNnc3RyICIiCisiJyVzJyBhIGR1IGNvbnRlbnUgaW5kZXjDqSBkaWZmw6lyZW50IGR1IGZpY2hpZXIgZXQgZGUgSEVBRFxuIgorIih1dGlsaXNleiAtZiBwb3VyIGZvcmNlciBsYSBzdXBwcmVzc2lvbikiCisKKyM6IGJ1aWx0aW4vcm0uYzoxODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiclcycgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleFxuIgorIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCittc2dzdHIgIiIKKyInJXMnIGEgZGVzIGNoYW5nZW1lbnRzIGRhbnMgbCdpbmRleFxuIgorIih1dGlsaXNleiAtLWNhY2hlZCBwb3VyIGdhcmRlciBsZSBmaWNoaWVyLCBvdSAtZiBwb3VyIGZvcmNlciBsYSBzdXBwcmVzc2lvbikiCisKKyM6IGJ1aWx0aW4vcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiclcycgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnNcbiIKKyIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgorbXNnc3RyICIiCisiJyVzJyBhIGRlcyBtb2RpZmljYXRpb25zIGxvY2FsZXNcbiIKKyIodXRpbGlzZXogLS1jYWNoZWQgcG91ciBnYXJkZXIgbGUgZmljaGllciwgb3UgLWYgcG91ciBmb3JjZXIgbGEgc3VwcHJlc3Npb24pIgorCisjOiBidWlsdGluL3JtLmM6MjA3Cittc2dpZCAiZG8gbm90IGxpc3QgcmVtb3ZlZCBmaWxlcyIKK21zZ3N0ciAibmUgcGFzIGFmZmljaGVyIGxlcyBmaWNoaWVycyBzdXBwcmltw6lzIgorCisjOiBidWlsdGluL3JtLmM6MjA4Cittc2dpZCAib25seSByZW1vdmUgZnJvbSB0aGUgaW5kZXgiCittc2dzdHIgInN1cHByaW1lciBzZXVsZW1lbnQgZGUgbCdpbmRleCIKKworIzogYnVpbHRpbi9ybS5jOjIwOQorbXNnaWQgIm92ZXJyaWRlIHRoZSB1cC10by1kYXRlIGNoZWNrIgorbXNnc3RyICJvdXRyZXBhc3NlciBsYSB2w6lyaWZpY2F0aW9uIGRlcyBmaWNoaWVycyDDoCBqb3VyIgorCisjOiBidWlsdGluL3JtLmM6MjEwCittc2dpZCAiYWxsb3cgcmVjdXJzaXZlIHJlbW92YWwiCittc2dzdHIgImF1dG9yaXNlciBsYSBzdXBwcmVzc2lvbiByw6ljdXJzaXZlIgorCisjOiBidWlsdGluL3JtLmM6MjEyCittc2dpZCAiZXhpdCB3aXRoIGEgemVybyBzdGF0dXMgZXZlbiBpZiBub3RoaW5nIG1hdGNoZWQiCittc2dzdHIgInNvcnRpciBhdmVjIHVuIHN0YXR1dCB6w6lybyBtw6ptZSBzaSByaWVuIG5lIGNvcnJlc3BvbmRhaXQiCisKKyM6IGJ1aWx0aW4vcm0uYzoyODMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IHJlbW92aW5nICclcycgcmVjdXJzaXZlbHkgd2l0aG91dCAtciIKK21zZ3N0ciAicGFzIGRlIHN1cHByZXNzaW9uIHLDqWN1cnNpdmUgZGUgJyVzJyBzYW5zIC1yIgorCisjOiBidWlsdGluL3JtLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImdpdCBybTogdW5hYmxlIHRvIHJlbW92ZSAlcyIKK21zZ3N0ciAiZ2l0IHJtIDogaW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgJXMiCisKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMworbXNnaWQgImdpdCBzaG9ydGxvZyBbPG9wdGlvbnM+XSBbPHJldmlzaW9uIHJhbmdlPl0gW1stLV0gWzxwYXRoPi4uLl1dIgorbXNnc3RyICJnaXQgc2hvcnRsb2cgWzxvcHRpb25zPl0gWzxpbnRlcnZhbGxlIHLDqXZpc2lvbnM+XSBbWy0tXSBbPGNoZW1pbj4uLi5dXSIKKworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICJNaXNzaW5nIGF1dGhvcjogJXMiCittc2dzdHIgIkF1dGV1ciBtYW5xdWFudCA6ICVzIgorCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjI3Cittc2dpZCAic29ydCBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2YgY29tbWl0cyBwZXIgYXV0aG9yIgorbXNnc3RyICJ0cmllciBsYSBzb3J0aWUgc3VyIGxlIG5vbWJyZSBkZSB2YWxpZGF0aW9ucyBwYXIgYXV0ZXVyIgorCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjI5Cittc2dpZCAiU3VwcHJlc3MgY29tbWl0IGRlc2NyaXB0aW9ucywgb25seSBwcm92aWRlcyBjb21taXQgY291bnQiCittc2dzdHIgIlN1cHByaW1lciBsZXMgZGVzY3JpcHRpb25zIGRlIHZhbGlkYXRpb24sIGZvdXJuaXQgc2V1bGVtZW50IGxlIG5vbWJyZSBkZSB2YWxpZGF0aW9ucyIKKworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMQorbXNnaWQgIlNob3cgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgZWFjaCBhdXRob3IiCittc2dzdHIgIkFmZmljaGVyIGwnYWRyZXNzZSBlLW1haWwgZGUgY2hhcXVlIGF1dGV1ciIKKworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgorbXNnaWQgIndbLGkxWyxpMl1dIgorbXNnc3RyICJ3WyxpMVssaTJdXSIKKworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMworbXNnaWQgIkxpbmV3cmFwIG91dHB1dCIKK21zZ3N0ciAiQ291cGVyIGxlcyBsaWduZXMiCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo5Cittc2dpZCAiIgorImdpdCBzaG93LWJyYW5jaCBbLWF8LS1hbGxdIFstcnwtLXJlbW90ZXNdIFstLXRvcG8tb3JkZXIgfCAtLWRhdGUtb3JkZXJdIFstLSIKKyJjdXJyZW50XSBbLS1jb2xvcls9PHdoZW4+XSB8IC0tbm8tY29sb3JdIFstLXNwYXJzZV0gWy0tbW9yZT08bj4gfCAtLWxpc3QgfCAtLSIKKyJpbmRlcGVuZGVudCB8IC0tbWVyZ2UtYmFzZV0gWy0tbm8tbmFtZSB8IC0tc2hhMS1uYW1lXSBbLS10b3BpY3NdIFsoPHJldj4gfCAiCisiPGdsb2I+KS4uLl0iCittc2dzdHIgImdpdCBzaG93LWJyYW5jaCBbLWF8LS1hbGxdIFstcnwtLXJlbW90ZXNdIFstLXRvcG8tb3JkZXIgfCAtLWRhdGUtb3JkZXJdIFstLWN1cnJlbnRdIFstLWNvbG9yWz08cXVhbmQ+XSB8IC0tbm8tY29sb3JdIFstLXNwYXJzZV0gWy0tbW9yZT08bj4gfCAtLWxpc3QgfCAtLWluZGVwZW5kZW50IHwgLS1tZXJnZS1iYXNlXSBbLS1uby1uYW1lIHwgLS1zaGExLW5hbWVdIFstLXRvcGljc10gWyg8csOpdmlzaW9uPiB8IDxnbG9iPikuLi5dIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6MTAKK21zZ2lkICJnaXQgc2hvdy1icmFuY2ggKC1nfC0tcmVmbG9nKVs9PG4+Wyw8YmFzZT5dXSBbLS1saXN0XSBbPHJlZj5dIgorbXNnc3RyICJnaXQgc2hvdy1icmFuY2ggKC1nfC0tcmVmbG9nKVs9PG4+Wyw8YmFzZT5dXSBbLS1saXN0XSBbPHLDqWbDqXJlbmNlPl0iCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTAKK21zZ2lkICJzaG93IHJlbW90ZS10cmFja2luZyBhbmQgbG9jYWwgYnJhbmNoZXMiCittc2dzdHIgImFmZmljaGVyIGxlcyBicmFuY2hlcyBkZSBzdWl2aSBkaXN0YW50ZXMgZXQgbGVzIGJyYW5jaGVzIGxvY2FsZXMiCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTIKK21zZ2lkICJzaG93IHJlbW90ZS10cmFja2luZyBicmFuY2hlcyIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGJyYW5jaGVzIGRlIHN1aXZpIGRpc3RhbnRlcyIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NAorbXNnaWQgImNvbG9yICcqISstJyBjb3JyZXNwb25kaW5nIHRvIHRoZSBicmFuY2giCittc2dzdHIgImNvdWxldXIgJyohKy0nIGNvcnJlc3BvbmRhbnQgw6AgbGEgYnJhbmNoZSIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NgorbXNnaWQgInNob3cgPG4+IG1vcmUgY29tbWl0cyBhZnRlciB0aGUgY29tbW9uIGFuY2VzdG9yIgorbXNnc3RyICJhZmZpY2hlciA8bj4gdmFsaWRhdGlvbnMgZGUgcGx1cyBhcHLDqHMgbCdhbmPDqnRyZSBjb21tdW4iCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTgKK21zZ2lkICJzeW5vbnltIHRvIG1vcmU9LTEiCittc2dzdHIgInN5bm9ueW1lIGRlIG1vcmU9LTEiCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTkKK21zZ2lkICJzdXBwcmVzcyBuYW1pbmcgc3RyaW5ncyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYxCittc2dpZCAiaW5jbHVkZSB0aGUgY3VycmVudCBicmFuY2giCittc2dzdHIgImluY2x1cmUgbGEgYnJhbmNoZSBjb3VyYW50ZSIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2MworbXNnaWQgIm5hbWUgY29tbWl0cyB3aXRoIHRoZWlyIG9iamVjdCBuYW1lcyIKK21zZ3N0ciAibm9tbWVyIGxlcyB2YWxpZGF0aW9ucyBhdmVjIGxldXJzIG5vbXMgZCdvYmpldCIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2NQorbXNnaWQgInNob3cgcG9zc2libGUgbWVyZ2UgYmFzZXMiCittc2dzdHIgImFmZmljaGVyIGxlcyBiYXNlcyBwb3NzaWJsZXMgZGUgZnVzaW9uIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY3Cittc2dpZCAic2hvdyByZWZzIHVucmVhY2hhYmxlIGZyb20gYW55IG90aGVyIHJlZiIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIHLDqWbDqXJlbmNlcyBub24gYWNjZXNzaWJsZXMgZGVwdWlzIHRvdXRlIGF1dHJlIHLDqWbDqXJlbmNlIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY5Cittc2dpZCAic2hvdyBjb21taXRzIGluIHRvcG9sb2dpY2FsIG9yZGVyIgorbXNnc3RyICJhZmZpY2hlciBsZXMgdmFsaWRhdGlvbnMgZGFucyBsJ29yZHJlIHRvcG9sb2dpcXVlIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjcxCittc2dpZCAic2hvdyBvbmx5IGNvbW1pdHMgbm90IG9uIHRoZSBmaXJzdCBicmFuY2giCittc2dzdHIgImFmZmljaGVyIHNldWxlbWVudCBsZXMgdmFsaWRhdGlvbnMgcXVpIG5lIHNvbnQgcGFzIHN1ciBsYSBwcmVtacOocmUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3MworbXNnaWQgInNob3cgbWVyZ2VzIHJlYWNoYWJsZSBmcm9tIG9ubHkgb25lIHRpcCIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGZ1c2lvbnMgYWNjZXNzaWJsZXMgZGVwdWlzIHVuZSBzZXVsZSBwb2ludGUiCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzUKK21zZ2lkICJzaG93IGNvbW1pdHMgd2hlcmUgbm8gcGFyZW50IGNvbWVzIGJlZm9yZSBpdHMgY2hpbGRyZW4iCittc2dzdHIgImFmZmljaGVyIGxlcyB2YWxpZGF0aW9ucyBvw7kgYXVjdW4gcGFyZW50IG5lIHZpZW50IGF2YW50IHNlcyBlbmZhbnRzIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc3Cittc2dpZCAiPG4+Wyw8YmFzZT5dIgorbXNnc3RyICI8bj5bLDxiYXNlPl0iCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzgKK21zZ2lkICJzaG93IDxuPiBtb3N0IHJlY2VudCByZWYtbG9nIGVudHJpZXMgc3RhcnRpbmcgYXQgYmFzZSIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIDxuPiBwbHVzIHLDqWNlbnRlcyBlbnRyw6llcyBkZSByZWYtbG9nIGVuIGNvbW1lbsOnYW50IMOgIGxhIGJhc2UiCisKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxMAorbXNnaWQgIiIKKyJnaXQgc2hvdy1yZWYgWy1xfC0tcXVpZXRdIFstLXZlcmlmeV0gWy0taGVhZF0gWy1kfC0tZGVyZWZlcmVuY2VdIFstc3wtLSIKKyJoYXNoWz08bj5dXSBbLS1hYmJyZXZbPTxuPl1dIFstLXRhZ3NdIFstLWhlYWRzXSBbLS1dIFtwYXR0ZXJuKl0gIgorbXNnc3RyICJnaXQgc2hvdy1yZWYgWy1xfC0tcXVpZXRdIFstLXZlcmlmeV0gWy0taGVhZF0gWy1kfC0tZGVyZWZlcmVuY2VdIFstc3wtLWhhc2hbPTxuPl1dIFstLWFiYnJldls9PG4+XV0gWy0tdGFnc10gWy0taGVhZHNdIFstLV0gW21vdGlmKl0gIgorCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTEKK21zZ2lkICJnaXQgc2hvdy1yZWYgLS1leGNsdWRlLWV4aXN0aW5nWz1wYXR0ZXJuXSA8IHJlZi1saXN0IgorbXNnc3RyICJnaXQgc2hvdy1yZWYgLS1leGNsdWRlLWV4aXN0aW5nWz1tb3RpZl0gPCBsaXN0ZS1yw6lmw6lyZW5jZXMiCisKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjUKK21zZ2lkICJvbmx5IHNob3cgdGFncyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggaGVhZHMpIgorbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGVzIMOpdGlxdWV0dGVzIChwZXV0IMOqdHJlIGNvbWJpbsOpIGF2ZWMgZGVzIHTDqnRlcykiCisKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjYKK21zZ2lkICJvbmx5IHNob3cgaGVhZHMgKGNhbiBiZSBjb21iaW5lZCB3aXRoIHRhZ3MpIgorbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGVzIHTDqnRlcyAocGV1dCDDqnRyZSBjb21iaW7DqSBhdmVjIGRlcyDDqXRpcXVldHRlcykiCisKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjcKK21zZ2lkICJzdHJpY3RlciByZWZlcmVuY2UgY2hlY2tpbmcsIHJlcXVpcmVzIGV4YWN0IHJlZiBwYXRoIgorbXNnc3RyICJ2w6lyaWZpY2F0aW9uIGRlIHLDqWbDqXJlbmNlIHBsdXMgc3RyaWN0ZSwgcmVxdWllcnQgdW4gY2hlbWluIGRlIHLDqWbDqXJlbmNlIGV4YWN0IgorCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzIKK21zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSIKK21zZ3N0ciAiYWZmaWNoZXIgbGEgcsOpZsOpcmVuY2UgSEVBRCIKKworIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NAorbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgorbXNnc3RyICJkw6lyw6lmw6lyZW5jZXIgbGVzIMOpdGlxdWV0dGVzIGVuIElEcyBkJ29iamV0IgorCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTc2Cittc2dpZCAib25seSBzaG93IFNIQTEgaGFzaCB1c2luZyA8bj4gZGlnaXRzIgorbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGUgaGFjaGFnZSBTSEExIGVuIHV0aWxpc2FudCA8bj4gY2hpZmZyZXMiCisKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKK21zZ2lkICJkbyBub3QgcHJpbnQgcmVzdWx0cyB0byBzdGRvdXQgKHVzZWZ1bCB3aXRoIC0tdmVyaWZ5KSIKK21zZ3N0ciAibmUgcGFzIGFmZmljaGVyIGxlcyByw6lzdWx0YXRzIHN1ciBsYSBzb3J0aWUgc3RhbmRhcmQgKHByYXRpcXVlIGF2ZWMgLS12ZXJpZnkpIgorCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTgyCittc2dpZCAic2hvdyByZWZzIGZyb20gc3RkaW4gdGhhdCBhcmVuJ3QgaW4gbG9jYWwgcmVwb3NpdG9yeSIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIHLDqWbDqXJlbmNlcyBkZSBsJ2VudHLDqWUgc3RhbmRhcmQgcXVpIG5lIHNvbnQgcGFzIGRhbnMgbGUgZMOpcMO0dCBsb2NhbCIKKworIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo3Cittc2dpZCAiZ2l0IHN5bWJvbGljLXJlZiBbb3B0aW9uc10gbmFtZSBbcmVmXSIKK21zZ3N0ciAiZ2l0IHN5bWJvbGljLXJlZiBbb3B0aW9uc10gbm9tIFtyw6lmw6lyZW5jZV0iCisKKyM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6OAorbXNnaWQgImdpdCBzeW1ib2xpYy1yZWYgLWQgWy1xXSBuYW1lIgorbXNnc3RyICJnaXQgc3ltYm9saWMtcmVmIC1kIFstcV0gbm9tIgorCisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQwCittc2dpZCAic3VwcHJlc3MgZXJyb3IgbWVzc2FnZSBmb3Igbm9uLXN5bWJvbGljIChkZXRhY2hlZCkgcmVmcyIKK21zZ3N0ciAic3VwcHJpbWVyIGxlIG1lc3NhZ2UgZCdlcnJldXIgcG91ciB1bmUgcsOpZsOpcmVuY2Ugbm9uIHN5bWJvbGlxdWUgKGTDqXRhY2jDqWUpIgorCisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQxCittc2dpZCAiZGVsZXRlIHN5bWJvbGljIHJlZiIKK21zZ3N0ciAic3VwcHJpbWVyIGxhIHLDqWbDqXJlbmNlIHN5bWJvbGlxdWUiCisKKyM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDIKK21zZ2lkICJzaG9ydGVuIHJlZiBvdXRwdXQiCittc2dzdHIgInJhY2NvdXJjaXIgbCdhZmZpY2hhZ2UgZGUgbGEgcsOpZsOpcmVuY2UiCisKKyM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MTgKK21zZ2lkICJyZWFzb24iCittc2dzdHIgInJhaXNvbiIKKworIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo0MyBidWlsdGluL3VwZGF0ZS1yZWYuYzoxOAorbXNnaWQgInJlYXNvbiBvZiB0aGUgdXBkYXRlIgorbXNnc3RyICJyYWlzb24gZGUgbGEgbWlzZSDDoCBqb3VyIgorCisjOiBidWlsdGluL3RhZy5jOjIyCittc2dpZCAiIgorImdpdCB0YWcgWy1hfC1zfC11IDxrZXktaWQ+XSBbLWZdIFstbSA8bXNnPnwtRiA8ZmlsZT5dIDx0YWduYW1lPiBbPGhlYWQ+XSIKK21zZ3N0ciAiZ2l0IHRhZyBbLWF8LXN8LXUgPGlkLWNsw6k+XSBbLWZdIFstbSA8bXNnPnwtRiA8ZmlsZT5dIDxub23DqXRpcXVldHRlPiBbPGhlYWQ+XSIKKworIzogYnVpbHRpbi90YWcuYzoyMworbXNnaWQgImdpdCB0YWcgLWQgPHRhZ25hbWU+Li4uIgorbXNnc3RyICJnaXQgdGFnIC1kIDxub23DqXRpcXVldHRlPi4uLiIKKworIzogYnVpbHRpbi90YWcuYzoyNAorbXNnaWQgIiIKKyJnaXQgdGFnIC1sIFstbls8bnVtPl1dIFstLWNvbnRhaW5zIDxjb21taXQ+XSBbLS1wb2ludHMtYXQgPG9iamVjdD5dIFxuIgorIlx0XHRbPHBhdHRlcm4+Li4uXSIKK21zZ3N0ciAiIgorImdpdCB0YWcgLWwgWy1uWzxudW0+XV0gWy0tY29udGFpbnMgPGNvbW1pdD5dIFstLXBvaW50cy1hdCA8b2JqZXQ+XSBcbiIKKyJcdFx0Wzxtb3RpZj4uLi5dIgorCisjOiBidWlsdGluL3RhZy5jOjI2Cittc2dpZCAiZ2l0IHRhZyAtdiA8dGFnbmFtZT4uLi4iCittc2dzdHIgImdpdCB0YWcgLXYgPG5vbcOpdGlxdWV0dGU+Li4uIgorCisjOiBidWlsdGluL3RhZy5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1hbGZvcm1lZCBvYmplY3QgYXQgJyVzJyIKK21zZ3N0ciAib2JqZXQgbWFsZm9ybcOpIMOgICclcyciCisKKyM6IGJ1aWx0aW4vdGFnLmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgInRhZyBuYW1lIHRvbyBsb25nOiAlLipzLi4uIgorbXNnc3RyICJub20gZCfDqXRpcXVldHRlIHRyb3AgbG9uZyA6ICUuKnMuLi4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6MjEyCisjLCBjLWZvcm1hdAorbXNnaWQgInRhZyAnJXMnIG5vdCBmb3VuZC4iCittc2dzdHIgIsOpdGlxdWV0dGUgJyVzJyBub24gdHJvdXbDqWUuIgorCisjOiBidWlsdGluL3RhZy5jOjIyNworIywgYy1mb3JtYXQKK21zZ2lkICJEZWxldGVkIHRhZyAnJXMnICh3YXMgJXMpXG4iCittc2dzdHIgIsOJdGlxdWV0dGUgJyVzJyBzdXBwcmltw6llIChlbGxlIMOpdGFpdCAlcylcbiIKKworIzogYnVpbHRpbi90YWcuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IHZlcmlmeSB0aGUgdGFnICclcyciCittc2dzdHIgImltcG9zc2libGUgZGUgdsOpcmlmaWVyIGwnw6l0aXF1ZXR0ZSAnJXMnIgorCisjOiBidWlsdGluL3RhZy5jOjI0OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV3JpdGUgYSB0YWcgbWVzc2FnZVxuIgorIkxpbmVzIHN0YXJ0aW5nIHdpdGggJyVjJyB3aWxsIGJlIGlnbm9yZWQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLDiWNyaXJlIHVuIG1lc3NhZ2UgcG91ciBsJ8OpdGlxdWV0dGVcbiIKKyJMZXMgbGlnbmVzIGNvbW1lbsOnYW50IHBhciAnJWMnIHNlcm9udCBpZ25vcsOpZXMuXG4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXcml0ZSBhIHRhZyBtZXNzYWdlXG4iCisiTGluZXMgc3RhcnRpbmcgd2l0aCAnJWMnIHdpbGwgYmUga2VwdDsgeW91IG1heSByZW1vdmUgdGhlbSB5b3Vyc2VsZiBpZiB5b3UgIgorIndhbnQgdG8uXG4iCittc2dzdHIgIiIKKyJcbiIKKyLDiWNyaXJlIHVuIG1lc3NhZ2UgcG91ciBsJ8OpdGlxdWV0dGVcbiIKKyJMZXMgbGlnbmVzIGNvbW1lbsOnYW50IHBhciAnJWMnIHNlcm9udCBnYXJkw6llcyA7IHZvdXMgcG91dmV6IGxlcyByZXRpcmVyIHZvdXMtbcOqbWUgc2kgdm91cyBsZSBzb3VoYWl0ZXouXG4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6MjkyCittc2dpZCAidW5hYmxlIHRvIHNpZ24gdGhlIHRhZyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBzaWduZXIgbCfDqXRpcXVldHRlIgorCisjOiBidWlsdGluL3RhZy5jOjI5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB0YWcgZmlsZSIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgZmljaGllciBkJ8OpdGlxdWV0dGVzIgorCisjOiBidWlsdGluL3RhZy5jOjMxOQorbXNnaWQgImJhZCBvYmplY3QgdHlwZS4iCittc2dzdHIgIm1hdXZhaXMgdHlwZSBkJ29iamV0LiIKKworIzogYnVpbHRpbi90YWcuYzozMzIKK21zZ2lkICJ0YWcgaGVhZGVyIHRvbyBiaWcuIgorbXNnc3RyICJlbi10w6p0ZSBkJ8OpdGlxdWV0dGUgdHJvcCBncm9zLiIKKworIzogYnVpbHRpbi90YWcuYzozNjgKK21zZ2lkICJubyB0YWcgbWVzc2FnZT8iCittc2dzdHIgInBhcyBkZSBtZXNzYWdlIHBvdXIgbCfDqXRpcXVldHRlID8iCisKKyM6IGJ1aWx0aW4vdGFnLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSB0YWcgbWVzc2FnZSBoYXMgYmVlbiBsZWZ0IGluICVzXG4iCittc2dzdHIgIkxlIG1lc3NhZ2UgcG91ciBsJ8OpdGlxdWV0dGUgYSDDqXTDqSBsYWlzc8OpIGRhbnMgJXNcbiIKKworIzogYnVpbHRpbi90YWcuYzo0MjMKK21zZ2lkICJzd2l0Y2ggJ3BvaW50cy1hdCcgcmVxdWlyZXMgYW4gb2JqZWN0IgorbXNnc3RyICJsZSBjb21tdXRhdGV1ciAncG9pbnRzLWF0JyByZXF1aWVydCB1biBvYmpldCIKKworIzogYnVpbHRpbi90YWcuYzo0MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWFsZm9ybWVkIG9iamVjdCBuYW1lICclcyciCittc2dzdHIgIm5vbSBkJ29iamV0IG1hbGZvcm3DqSAnJXMnIgorCisjOiBidWlsdGluL3RhZy5jOjQ0NQorbXNnaWQgImxpc3QgdGFnIG5hbWVzIgorbXNnc3RyICJhZmZpY2hlciBsZXMgbm9tcyBkZXMgw6l0aXF1ZXR0ZXMiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDQ3Cittc2dpZCAicHJpbnQgPG4+IGxpbmVzIG9mIGVhY2ggdGFnIG1lc3NhZ2UiCittc2dzdHIgImFmZmljaGUgPG4+IGxpZ25lcyBkZSBjaGFxdWUgbWVzc2FnZSBkJ8OpdGlxdWV0dGUiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDQ5Cittc2dpZCAiZGVsZXRlIHRhZ3MiCittc2dzdHIgInN1cHByaW1lciBkZXMgw6l0aXF1ZXR0ZXMiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDUwCittc2dpZCAidmVyaWZ5IHRhZ3MiCittc2dzdHIgInbDqXJpZmllciBkZXMgw6l0aXF1ZXR0ZXMiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDUyCittc2dpZCAiVGFnIGNyZWF0aW9uIG9wdGlvbnMiCittc2dzdHIgIk9wdGlvbnMgZGUgY3LDqWF0aW9uIGRlIGwnw6l0aXF1ZXR0ZSIKKworIzogYnVpbHRpbi90YWcuYzo0NTQKK21zZ2lkICJhbm5vdGF0ZWQgdGFnLCBuZWVkcyBhIG1lc3NhZ2UiCittc2dzdHIgIsOpdGlxdWV0dGUgYW5ub3TDqWUsIG7DqWNlc3NpdGUgdW4gbWVzc2FnZSIKKworIzogYnVpbHRpbi90YWcuYzo0NTYKK21zZ2lkICJ0YWcgbWVzc2FnZSIKK21zZ3N0ciAibWVzc2FnZSBwb3VyIGwnw6l0aXF1ZXR0ZSIKKworIzogYnVpbHRpbi90YWcuYzo0NTgKK21zZ2lkICJhbm5vdGF0ZWQgYW5kIEdQRy1zaWduZWQgdGFnIgorbXNnc3RyICLDqXRpcXVldHRlIGFubm90w6llIGV0IHNpZ27DqWUgYXZlYyBHUEciCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDYyCittc2dpZCAidXNlIGFub3RoZXIga2V5IHRvIHNpZ24gdGhlIHRhZyIKK21zZ3N0ciAidXRpbGlzZXIgdW5lIGF1dHJlIGNsw6kgcG91ciBzaWduZXIgbCfDqXRpcXVldHRlIgorCisjOiBidWlsdGluL3RhZy5jOjQ2MworbXNnaWQgInJlcGxhY2UgdGhlIHRhZyBpZiBleGlzdHMiCittc2dzdHIgInJlbXBsYWNlciBsJ8OpdGlxdWV0dGUgc2kgZWxsZSBleGlzdGUiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDY0Cittc2dpZCAic2hvdyB0YWcgbGlzdCBpbiBjb2x1bW5zIgorbXNnc3RyICJhZmZpY2hlciBsYSBsaXN0ZSBkZXMgw6l0aXF1ZXR0ZXMgc291cyBmb3JtZSBkZSBjb2xvbm5lcyIKKworIzogYnVpbHRpbi90YWcuYzo0NjYKK21zZ2lkICJUYWcgbGlzdGluZyBvcHRpb25zIgorbXNnc3RyICJPcHRpb25zIGQnYWZmaWNoYWdlIGRlcyDDqXRpcXVldHRlcyIKKworIzogYnVpbHRpbi90YWcuYzo0NjkKK21zZ2lkICJwcmludCBvbmx5IHRhZ3MgdGhhdCBjb250YWluIHRoZSBjb21taXQiCittc2dzdHIgImFmZmljaGVyIHNldWxlbWVudCBsZXMgw6l0aXF1ZXR0ZXMgcXVpIGNvbnRpZW5uZW50IGxhIHZhbGlkYXRpb24iCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDc1Cittc2dpZCAicHJpbnQgb25seSB0YWdzIG9mIHRoZSBvYmplY3QiCittc2dzdHIgImFmZmljaGVyIHNldWxlbWVudCBsZXMgw6l0aXF1ZXR0ZXMgZGUgbCdvYmpldCIKKworIzogYnVpbHRpbi90YWcuYzo1MDQKK21zZ2lkICItLWNvbHVtbiBhbmQgLW4gYXJlIGluY29tcGF0aWJsZSIKK21zZ3N0ciAiLS1jb2x1bW4gZXQgLW4gc29udCBpbmNvbXBhdGlibGVzIgorCisjOiBidWlsdGluL3RhZy5jOjUyMQorbXNnaWQgIi1uIG9wdGlvbiBpcyBvbmx5IGFsbG93ZWQgd2l0aCAtbC4iCittc2dzdHIgImwnb3B0aW9uIC1uIGVzdCBhdXRvcmlzw6llIHNldWxlbWVudCBhdmVjIC1sLiIKKworIzogYnVpbHRpbi90YWcuYzo1MjMKK21zZ2lkICItLWNvbnRhaW5zIG9wdGlvbiBpcyBvbmx5IGFsbG93ZWQgd2l0aCAtbC4iCittc2dzdHIgImwnb3B0aW9uIC0tY29udGFpbnMgZXN0IGF1dG9yaXPDqWUgc2V1bGVtZW50IGF2ZWMgLWwuIgorCisjOiBidWlsdGluL3RhZy5jOjUyNQorbXNnaWQgIi0tcG9pbnRzLWF0IG9wdGlvbiBpcyBvbmx5IGFsbG93ZWQgd2l0aCAtbC4iCittc2dzdHIgImwnb3B0aW9uIC0tcG9pbnRzLWF0IGVzdCBhdXRvcmlzw6llIHNldWxlbWVudCBhdmVjIC1sLiIKKworIzogYnVpbHRpbi90YWcuYzo1MzMKK21zZ2lkICJvbmx5IG9uZSAtRiBvciAtbSBvcHRpb24gaXMgYWxsb3dlZC4iCittc2dzdHIgInVuZSBzZXVsZSBvcHRpb24gLUYgb3UgLW0gZXN0IGF1dG9yaXPDqWUuIgorCisjOiBidWlsdGluL3RhZy5jOjU1MworbXNnaWQgInRvbyBtYW55IHBhcmFtcyIKK21zZ3N0ciAidHJvcCBkZSBwYXJhbcOodHJlcyIKKworIzogYnVpbHRpbi90YWcuYzo1NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0YWcgbmFtZS4iCittc2dzdHIgIiclcycgbidlc3QgcGFzIHVuIG5vbSBkJ8OpdGlxdWV0dGUgdmFsaWRlLiIKKworIzogYnVpbHRpbi90YWcuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidGFnICclcycgYWxyZWFkeSBleGlzdHMiCittc2dzdHIgImwnw6l0aXF1ZXR0ZSAnJXMnIGV4aXN0ZSBkw6lqw6AiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgbG9jayB0aGUgcmVmIgorbXNnc3RyICIlcyA6IGltcG9zc2libGUgZGUgdmVycm91aWxsZXIgbGEgcsOpZsOpcmVuY2UiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NTg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgdXBkYXRlIHRoZSByZWYiCittc2dzdHIgIiVzIDogaW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsYSByw6lmw6lyZW5jZSIKKworIzogYnVpbHRpbi90YWcuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXBkYXRlZCB0YWcgJyVzJyAod2FzICVzKVxuIgorbXNnc3RyICLDiXRpcXVldHRlICclcycgbWlzZSDDoCBqb3VyIChlbGxlIMOpdGFpdCAlcylcbiIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo0MDEKK21zZ2lkICJnaXQgdXBkYXRlLWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgorbXNnc3RyICJnaXQgdXBkYXRlLWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmljaGllcj4uLi5dIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcxOAorbXNnaWQgImNvbnRpbnVlIHJlZnJlc2ggZXZlbiB3aGVuIGluZGV4IG5lZWRzIHVwZGF0ZSIKK21zZ3N0ciAiY29udGludWVyIGRlIHJhZnJhw65jaGlyIG3Dqm1lIHNpIGwnaW5kZXggYSBiZXNvaW4gZCd1bmUgbWlzZSDDoCBqb3VyIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyMQorbXNnaWQgInJlZnJlc2g6IGlnbm9yZSBzdWJtb2R1bGVzIgorbXNnc3RyICJyYWZyYcOuY2hpciA6IGlnbm9yZXIgbGVzIHNvdXMtbW9kdWxlcyIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjQKK21zZ2lkICJkbyBub3QgaWdub3JlIG5ldyBmaWxlcyIKK21zZ3N0ciAibmUgcGFzIGlnbm9yZXIgbGVzIG5vdXZlYXV4IGZpY2hpZXJzIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyNgorbXNnaWQgImxldCBmaWxlcyByZXBsYWNlIGRpcmVjdG9yaWVzIGFuZCB2aWNlLXZlcnNhIgorbXNnc3RyICJsYWlzc2VyIGxlcyBmaWNoaWVycyByZW1wbGFjZXIgZGVzIHLDqXBlcnRvaXJlcyBldCB2aWNlLXZlcnNhIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjcyOAorbXNnaWQgIm5vdGljZSBmaWxlcyBtaXNzaW5nIGZyb20gd29ya3RyZWUiCittc2dzdHIgImF2aXNlciBkZXMgZmljaGllcnMgbWFucXVhbnRzIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzAKK21zZ2lkICJyZWZyZXNoIGV2ZW4gaWYgaW5kZXggY29udGFpbnMgdW5tZXJnZWQgZW50cmllcyIKK21zZ3N0ciAicmFmcmHDrmNoaXIgbcOqbWUgc2kgbCdpbmRleCBjb250aWVudCBkZXMgZW50csOpZXMgbm9uIGZ1c2lvbm7DqWVzIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczMworbXNnaWQgInJlZnJlc2ggc3RhdCBpbmZvcm1hdGlvbiIKK21zZ3N0ciAicmFmcmHDrmNoaXIgbCdpbmZvcm1hdGlvbiBkZSBzdGF0IgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjczNworbXNnaWQgImxpa2UgLS1yZWZyZXNoLCBidXQgaWdub3JlIGFzc3VtZS11bmNoYW5nZWQgc2V0dGluZyIKK21zZ3N0ciAiY29tbWUgLS1yZWZyZXNoLCBtYWlzIGVuIGlnbm9yYW50IGwnb3B0aW9uIGFzc3VtZS11bmNoYW5nZWQiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQxCittc2dpZCAiPG1vZGU+IDxvYmplY3Q+IDxwYXRoPiIKK21zZ3N0ciAiPG1vZGU+IDxvYmpldD4gPGNoZW1pbj4iCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQyCittc2dpZCAiYWRkIHRoZSBzcGVjaWZpZWQgZW50cnkgdG8gdGhlIGluZGV4IgorbXNnc3RyICJham91dGVyIGwnZW50csOpZSBzcMOpY2lmacOpZSBkYW5zIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ2Cittc2dpZCAiKCsvLSl4IgorbXNnc3RyICIoKy8tKXgiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQ3Cittc2dpZCAib3ZlcnJpZGUgdGhlIGV4ZWN1dGFibGUgYml0IG9mIHRoZSBsaXN0ZWQgZmlsZXMiCittc2dzdHIgIm91dHJlcGFzc2VyIGxlIGJpdCBleMOpY3V0YWJsZSBwb3VyIGxlcyBmaWNoaWVycyBsaXN0w6lzIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1MQorbXNnaWQgIm1hcmsgZmlsZXMgYXMgXCJub3QgY2hhbmdpbmdcIiIKK21zZ3N0ciAibWFycXVlciBsZXMgZmljaGllcnMgY29tbWUgXCJub24gY2hhbmdlYW50c1wiIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1NAorbXNnaWQgImNsZWFyIGFzc3VtZWQtdW5jaGFuZ2VkIGJpdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc1NworbXNnaWQgIm1hcmsgZmlsZXMgYXMgXCJpbmRleC1vbmx5XCIiCittc2dzdHIgIm1hcnF1ZXIgbGVzIGZpY2hpZXJzIGNvbW1lIFwiaW5kZXggc2V1bGVtZW50XCIiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzYwCittc2dpZCAiY2xlYXIgc2tpcC13b3JrdHJlZSBiaXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjMKK21zZ2lkICJhZGQgdG8gaW5kZXggb25seTsgZG8gbm90IGFkZCBjb250ZW50IHRvIG9iamVjdCBkYXRhYmFzZSIKK21zZ3N0ciAiYWpvdXRlciBzZXVsZW1lbnQgw6AgbCdpbmRleCA7IG5lIHBhcyBham91dGVyIGxlIGNvbnRlbnUgZGFucyBsYSBiYXNlIGRlIGRvbm7DqWVzIGRlcyBvYmpldHMiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY1Cittc2dpZCAicmVtb3ZlIG5hbWVkIHBhdGhzIGV2ZW4gaWYgcHJlc2VudCBpbiB3b3JrdHJlZSIKK21zZ3N0ciAic3VwcHJpbWVyIGxlcyBjaGVtaW5zIG5vbW3DqXMgbcOqbWUgcydpbHMgc29udCBwcsOpc2VudHMgZGFucyBsYSBjb3BpZSBkZSB0cmF2YWlsIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NworbXNnaWQgIndpdGggLS1zdGRpbjogaW5wdXQgbGluZXMgYXJlIHRlcm1pbmF0ZWQgYnkgbnVsbCBieXRlcyIKK21zZ3N0ciAiYXZlYyAtLXN0ZGluIDogbGVzIGxpZ25lcyBlbiBlbnRyw6llIHNvbnQgdGVybWluw6llcyBwYXIgZGVzIG9jdGV0cyBudWxzIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2OQorbXNnaWQgInJlYWQgbGlzdCBvZiBwYXRocyB0byBiZSB1cGRhdGVkIGZyb20gc3RhbmRhcmQgaW5wdXQiCittc2dzdHIgImxpcmUgbGEgbGlzdGUgZGVzIGNoZW1pbnMgw6AgbWV0dHJlIMOgIGpvdXIgZGVwdWlzIGwnZW50csOpZSBzdGFuZGFyZCIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzMKK21zZ2lkICJhZGQgZW50cmllcyBmcm9tIHN0YW5kYXJkIGlucHV0IHRvIHRoZSBpbmRleCIKK21zZ3N0ciAiYWpvdXRlciBsZXMgZW50csOpZXMgZGVwdWlzIGwnZW50csOpZSBzdGFuZGFyZCDDoCBsJ2luZGV4IgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc3NworbXNnaWQgInJlcG9wdWxhdGUgc3RhZ2VzICMyIGFuZCAjMyBmb3IgdGhlIGxpc3RlZCBwYXRocyIKK21zZ3N0ciAicmVwZXVwbGVyIGxlcyDDqXRhcGVzIG7CsDIgZXQgbsKwMyBwb3VyIGxlcyBjaGVtaW5zIGxpc3TDqXMiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzgxCittc2dpZCAib25seSB1cGRhdGUgZW50cmllcyB0aGF0IGRpZmZlciBmcm9tIEhFQUQiCittc2dzdHIgIm1ldHRyZSDDoCBqb3VyIHNldWxlbWVudCBsZXMgZW50csOpZXMgcXVpIGRpZmbDqHJlbnQgZGUgSEVBRCIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODUKK21zZ2lkICJpZ25vcmUgZmlsZXMgbWlzc2luZyBmcm9tIHdvcmt0cmVlIgorbXNnc3RyICJpZ25vcmVyIGxlcyBmaWNoaWVycyBtYW5xdWFudHMgZGFucyBsYSBjb3BpZSBkZSB0cmF2YWlsIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4OAorbXNnaWQgInJlcG9ydCBhY3Rpb25zIHRvIHN0YW5kYXJkIG91dHB1dCIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGFjdGlvbnMgc3VyIGxhIHNvcnRpZSBzdGFuZGFyZCIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTAKK21zZ2lkICIoZm9yIHBvcmNlbGFpbnMpIGZvcmdldCBzYXZlZCB1bnJlc29sdmVkIGNvbmZsaWN0cyIKK21zZ3N0ciAiKHBvdXIgcG9yY2VsYWluZXMpIG91YmxpZXIgbGVzIGNvbmZsaXRzIHNhdXbDqXMgZXQgbm9uIHLDqXNvbHVzIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5NAorbXNnaWQgIndyaXRlIGluZGV4IGluIHRoaXMgZm9ybWF0IgorbXNnc3RyICLDqWNyaXJlIGwnaW5kZXggZGFucyBjZSBmb3JtYXQiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjcKK21zZ2lkICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gLWQgPHJlZm5hbWU+IFs8b2xkdmFsPl0iCittc2dzdHIgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAtZCA8bm9tcsOpZsOpcmVuY2U+IFs8YW5jaWVubmV2YWxldXI+XSIKKworIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6OAorbXNnaWQgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAgICA8cmVmbmFtZT4gPG5ld3ZhbD4gWzxvbGR2YWw+XSIKK21zZ3N0ciAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdICAgIDxub21yw6lmw6lyZW5jZT4gPG5vdXZlbGxldmFsZXVyPiBbPGFuY2llbm5ldmFsZXVyPl0iCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE5Cittc2dpZCAiZGVsZXRlIHRoZSByZWZlcmVuY2UiCittc2dzdHIgInN1cHByaW1lciBsYSByw6lmw6lyZW5jZSIKKworIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6MjEKK21zZ2lkICJ1cGRhdGUgPHJlZm5hbWU+IG5vdCB0aGUgb25lIGl0IHBvaW50cyB0byIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3VwZGF0ZS1zZXJ2ZXItaW5mby5jOjYKK21zZ2lkICJnaXQgdXBkYXRlLXNlcnZlci1pbmZvIFstLWZvcmNlXSIKK21zZ3N0ciAiZ2l0IHVwZGF0ZS1zZXJ2ZXItaW5mbyBbLS1mb3JjZV0iCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXNlcnZlci1pbmZvLmM6MTQKK21zZ2lkICJ1cGRhdGUgdGhlIGluZm8gZmlsZXMgZnJvbSBzY3JhdGNoIgorbXNnc3RyICJtZXR0cmUgw6Agam91ciBsZXMgZmljaGllcnMgZCdpbmZvcm1hdGlvbiDDoCBwYXJ0aXIgZGUgesOpcm8iCisKKyM6IGJ1aWx0aW4vdmVyaWZ5LXBhY2suYzo1NgorbXNnaWQgImdpdCB2ZXJpZnktcGFjayBbLXZ8LS12ZXJib3NlXSBbLXN8LS1zdGF0LW9ubHldIDxwYWNrPi4uLiIKK21zZ3N0ciAiZ2l0IHZlcmlmeS1wYWNrIFstdnwtLXZlcmJvc2VdIFstc3wtLXN0YXQtb25seV0gPHBhY2s+Li4uIgorCisjOiBidWlsdGluL3ZlcmlmeS1wYWNrLmM6NjYKK21zZ2lkICJ2ZXJib3NlIgorbXNnc3RyICJ2ZXJiZXV4IgorCisjOiBidWlsdGluL3ZlcmlmeS1wYWNrLmM6NjgKK21zZ2lkICJzaG93IHN0YXRpc3RpY3Mgb25seSIKK21zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBzdGF0aXN0aXF1ZXMiCisKKyM6IGJ1aWx0aW4vdmVyaWZ5LXRhZy5jOjE3Cittc2dpZCAiZ2l0IHZlcmlmeS10YWcgWy12fC0tdmVyYm9zZV0gPHRhZz4uLi4iCittc2dzdHIgImdpdCB2ZXJpZnktdGFnIFstdnwtLXZlcmJvc2VdIDzDqXRpcXVldHRlPi4uLiIKKworIzogYnVpbHRpbi92ZXJpZnktdGFnLmM6NzMKK21zZ2lkICJwcmludCB0YWcgY29udGVudHMiCittc2dzdHIgImFmZmljaGVyIGxlIGNvbnRlbnUgZGUgbCfDqXRpcXVldHRlIgorCisjOiBidWlsdGluL3dyaXRlLXRyZWUuYzoxMworbXNnaWQgImdpdCB3cml0ZS10cmVlIFstLW1pc3Npbmctb2tdIFstLXByZWZpeD08cHJlZml4Pi9dIgorbXNnc3RyICJnaXQgd3JpdGUtdHJlZSBbLS1taXNzaW5nLW9rXSBbLS1wcmVmaXg9PHByw6lmaXhlPi9dIgorCisjOiBidWlsdGluL3dyaXRlLXRyZWUuYzoyNgorbXNnaWQgIjxwcmVmaXg+LyIKK21zZ3N0ciAiPHByw6lmaXhlPi8iCisKKyM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjI3Cittc2dpZCAid3JpdGUgdHJlZSBvYmplY3QgZm9yIGEgc3ViZGlyZWN0b3J5IDxwcmVmaXg+IgorbXNnc3RyICLDqWNyaXJlIGwnb2JqZXQgYXJicmUgcG91ciB1biBzb3VzLXLDqXBlcnRvaXJlIDxwcsOpZml4ZT4iCisKKyM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjMwCittc2dpZCAib25seSB1c2VmdWwgZm9yIGRlYnVnZ2luZyIKK21zZ3N0ciAic2V1bGVtZW50IHV0aWxlIHBvdXIgbGUgZMOpYm9nYWdlIgorCisjOiBnaXQuYzoxNgorbXNnaWQgIiIKKyInZ2l0IGhlbHAgLWEnIGFuZCAnZ2l0IGhlbHAgLWcnIGxpc3RzIGF2YWlsYWJsZSBzdWJjb21tYW5kcyBhbmQgc29tZVxuIgorImNvbmNlcHQgZ3VpZGVzLiBTZWUgJ2dpdCBoZWxwIDxjb21tYW5kPicgb3IgJ2dpdCBoZWxwIDxjb25jZXB0PidcbiIKKyJ0byByZWFkIGFib3V0IGEgc3BlY2lmaWMgc3ViY29tbWFuZCBvciBjb25jZXB0LiIKK21zZ3N0ciAiIgorIidnaXQgaGVscCAtYScgZXQgJ2dpdCBoZWxwIC1nJyBsaXN0ZW50IGxlcyBzb3VzLWNvbW1hbmRlcyBkaXNwb25pYmxlcyBldFxuIgorInF1ZWxxdWVzIGNvbmNlcHRzLiBWb2lyICdnaXQgaGVscCA8Y29tbWFuZD4nIG91ICdnaXQgaGVscCA8Y29uY2VwdD4nXG4iCisicG91ciBlbiBsaXJlIHBsdXMgw6AgcHJvcG9zIGQndW5lIGNvbW1hbmRlIHNww6ljaWZpcXVlIG91IGQndW4gY29uY2VwdC4iCisKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNTYKK21zZ2lkICJuby1vcCAoYmFja3dhcmQgY29tcGF0aWJpbGl0eSkiCittc2dzdHIgInNhbnMgYWN0aW9uIChyw6l0cm9jb21wYXRpYmlsaXTDqSkiCisKKyM6IHBhcnNlLW9wdGlvbnMuaDoyMzIKK21zZ2lkICJiZSBtb3JlIHZlcmJvc2UiCittc2dzdHIgIsOqdHJlIHBsdXMgdmVyYmV1eCIKKworIzogcGFyc2Utb3B0aW9ucy5oOjIzNAorbXNnaWQgImJlIG1vcmUgcXVpZXQiCittc2dzdHIgIsOqdHJlIHBsdXMgc2lsZW5jaWV1eCIKKworIzogcGFyc2Utb3B0aW9ucy5oOjI0MAorbXNnaWQgInVzZSA8bj4gZGlnaXRzIHRvIGRpc3BsYXkgU0hBLTFzIgorbXNnc3RyICJ1dGlsaXNlciA8bj4gY2hpZmZyZXMgcG91ciBhZmZpY2hlciBsZXMgU0hBLTFzIgorCisjOiBjb21tb24tY21kcy5oOjgKK21zZ2lkICJBZGQgZmlsZSBjb250ZW50cyB0byB0aGUgaW5kZXgiCittc2dzdHIgIkFqb3V0ZXIgbGUgY29udGVudSBkdSBmaWNoaWVyIGRhbnMgbCdpbmRleCIKKworIzogY29tbW9uLWNtZHMuaDo5Cittc2dpZCAiRmluZCBieSBiaW5hcnkgc2VhcmNoIHRoZSBjaGFuZ2UgdGhhdCBpbnRyb2R1Y2VkIGEgYnVnIgorbXNnc3RyICJSZWNoZXJjaGVyIGRlIG1hbmnDqHJlIGJpbmFpcmUgbGUgY2hhbmdlbWVudCBxdWkgYSBpbnRyb2R1aXQgdW4gYm9ndWUiCisKKyM6IGNvbW1vbi1jbWRzLmg6MTAKK21zZ2lkICJMaXN0LCBjcmVhdGUsIG9yIGRlbGV0ZSBicmFuY2hlcyIKK21zZ3N0ciAiTGlzdGVyLCBjcsOpZXIgb3Ugc3VwcHJpbWVyIGRlcyBicmFuY2hlcyIKKworIzogY29tbW9uLWNtZHMuaDoxMQorbXNnaWQgIkNoZWNrb3V0IGEgYnJhbmNoIG9yIHBhdGhzIHRvIHRoZSB3b3JraW5nIHRyZWUiCittc2dzdHIgIkV4dHJhaXJlIHVuZSBicmFuY2hlIG91IGRlcyBjaGVtaW5zIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogY29tbW9uLWNtZHMuaDoxMgorbXNnaWQgIkNsb25lIGEgcmVwb3NpdG9yeSBpbnRvIGEgbmV3IGRpcmVjdG9yeSIKK21zZ3N0ciAiQ2xvbmVyIHVuIGTDqXDDtHQgZGFucyB1biBub3V2ZWF1IHLDqXBlcnRvaXJlIgorCisjOiBjb21tb24tY21kcy5oOjEzCittc2dpZCAiUmVjb3JkIGNoYW5nZXMgdG8gdGhlIHJlcG9zaXRvcnkiCittc2dzdHIgIkVucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cyBkYW5zIGxlIGTDqXDDtHQiCisKKyM6IGNvbW1vbi1jbWRzLmg6MTQKK21zZ2lkICJTaG93IGNoYW5nZXMgYmV0d2VlbiBjb21taXRzLCBjb21taXQgYW5kIHdvcmtpbmcgdHJlZSwgZXRjIgorbXNnc3RyICJBZmZpY2hlciBsZXMgY2hhbmdlbWVudHMgZW50cmUgbGVzIHZhbGlkYXRpb25zLCBlbnRyZSB2YWxpZGF0aW9uIGV0IGNvcGllIGRlIHRyYXZhaWwsIGV0YyIKKworIzogY29tbW9uLWNtZHMuaDoxNQorbXNnaWQgIkRvd25sb2FkIG9iamVjdHMgYW5kIHJlZnMgZnJvbSBhbm90aGVyIHJlcG9zaXRvcnkiCittc2dzdHIgIlTDqWzDqWNoYXJnZXIgbGVzIG9iamV0cyBldCByw6lmw6lyZW5jZXMgZGVwdWlzIHVuIGF1dHJlIGTDqXDDtHQiCisKKyM6IGNvbW1vbi1jbWRzLmg6MTYKK21zZ2lkICJQcmludCBsaW5lcyBtYXRjaGluZyBhIHBhdHRlcm4iCittc2dzdHIgIkFmZmljaGVyIGxlcyBsaWduZXMgY29ycmVzcG9uZGFudCDDoCB1biBtb3RpZiIKKworIzogY29tbW9uLWNtZHMuaDoxNworbXNnaWQgIkNyZWF0ZSBhbiBlbXB0eSBHaXQgcmVwb3NpdG9yeSBvciByZWluaXRpYWxpemUgYW4gZXhpc3Rpbmcgb25lIgorbXNnc3RyICJDcsOpZXIgdW4gZMOpcMO0dCBHaXQgdmlkZSBvdSByw6lpbml0aWFsaXNlciB1biBleGlzdGFudCIKKworIzogY29tbW9uLWNtZHMuaDoxOAorbXNnaWQgIlNob3cgY29tbWl0IGxvZ3MiCittc2dzdHIgIkFmZmljaGVyIGwnaGlzdG9yaXF1ZSBkZXMgdmFsaWRhdGlvbnMiCisKKyM6IGNvbW1vbi1jbWRzLmg6MTkKK21zZ2lkICJKb2luIHR3byBvciBtb3JlIGRldmVsb3BtZW50IGhpc3RvcmllcyB0b2dldGhlciIKK21zZ3N0ciAiSm9pbmRyZSBkZXV4IG91IHBsdXNpZXVycyBoaXN0b3JpcXVlcyBkZSBkw6l2ZWxvcHBlbWVudCBlbnNlbWJsZSIKKworIzogY29tbW9uLWNtZHMuaDoyMAorbXNnaWQgIk1vdmUgb3IgcmVuYW1lIGEgZmlsZSwgYSBkaXJlY3RvcnksIG9yIGEgc3ltbGluayIKK21zZ3N0ciAiRMOpcGxhY2VyIG91IHJlbm9tbWVyIHVuIGZpY2hpZXIsIHVuIHLDqXBlcnRvaXJlLCBvdSB1biBsaWVuIHN5bWJvbGlxdWUiCisKKyM6IGNvbW1vbi1jbWRzLmg6MjEKK21zZ2lkICJGZXRjaCBmcm9tIGFuZCBtZXJnZSB3aXRoIGFub3RoZXIgcmVwb3NpdG9yeSBvciBhIGxvY2FsIGJyYW5jaCIKK21zZ3N0ciAiUmFwYXRyaWVyIGV0IGZ1c2lvbm5lciBhdmVjIHVuIGF1dHJlIGTDqXDDtHQgb3UgdW5lIGJyYW5jaGUgbG9jYWxlIgorCisjOiBjb21tb24tY21kcy5oOjIyCittc2dpZCAiVXBkYXRlIHJlbW90ZSByZWZzIGFsb25nIHdpdGggYXNzb2NpYXRlZCBvYmplY3RzIgorbXNnc3RyICJNZXR0cmUgw6Agam91ciBsZXMgcsOpZsOpcmVuY2VzIGRpc3RhbnRlcyBhaW5zaSBxdWUgbGVzIG9iamV0cyBhc3NvY2nDqXMiCisKKyM6IGNvbW1vbi1jbWRzLmg6MjMKK21zZ2lkICJGb3J3YXJkLXBvcnQgbG9jYWwgY29tbWl0cyB0byB0aGUgdXBkYXRlZCB1cHN0cmVhbSBoZWFkIgorbXNnc3RyICJSZXBvcnRlciBlbiBhdmFudCBsZXMgdmFsaWRhdGlvbnMgbG9jYWxlcyBkYW5zIGxhIHTDqnRlIGVuIGFtb250IG1pc2Ugw6Agam91ciIKKworIzogY29tbW9uLWNtZHMuaDoyNAorbXNnaWQgIlJlc2V0IGN1cnJlbnQgSEVBRCB0byB0aGUgc3BlY2lmaWVkIHN0YXRlIgorbXNnc3RyICJSw6lpbml0aWFsaXNlciBsYSBIRUFEIGNvdXJhbnRlIMOgIGwnw6l0YXQgc3DDqWNpZmnDqSIKKworIzogY29tbW9uLWNtZHMuaDoyNQorbXNnaWQgIlJlbW92ZSBmaWxlcyBmcm9tIHRoZSB3b3JraW5nIHRyZWUgYW5kIGZyb20gdGhlIGluZGV4IgorbXNnc3RyICJTdXBwcmltZXIgbGVzIGZpY2hpZXJzIGRlIGxhIGNvcGllIGRlIHRyYXZhaWwgZXQgZGUgbCdpbmRleCIKKworIzogY29tbW9uLWNtZHMuaDoyNgorbXNnaWQgIlNob3cgdmFyaW91cyB0eXBlcyBvZiBvYmplY3RzIgorbXNnc3RyICJBZmZpY2hlciBkaWZmw6lyZW50cyB0eXBlcyBkJ29iamVjdHMiCisKKyM6IGNvbW1vbi1jbWRzLmg6MjcKK21zZ2lkICJTaG93IHRoZSB3b3JraW5nIHRyZWUgc3RhdHVzIgorbXNnc3RyICJBZmZpY2hlciBsZSBzdGF0dXQgZGUgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogY29tbW9uLWNtZHMuaDoyOAorbXNnaWQgIkNyZWF0ZSwgbGlzdCwgZGVsZXRlIG9yIHZlcmlmeSBhIHRhZyBvYmplY3Qgc2lnbmVkIHdpdGggR1BHIgorbXNnc3RyICJDcsOpZXIsIGxpc3Rlciwgc3VwcHJpbWVyIG91IHbDqXJpZmllciB1biBvYmpldCBkJ8OpdGlxdWV0dGUgc2lnbsOpIGF2ZWMgR1BHIgorCisjOiBnaXQtYW0uc2g6NTAKK21zZ2lkICJZb3UgbmVlZCB0byBzZXQgeW91ciBjb21taXR0ZXIgaW5mbyBmaXJzdCIKK21zZ3N0ciAiVm91cyBkZXZleiBkJ2Fib3JkIGTDqWZpbmlyIHZvcyBpbmZvcm1hdGlvbnMgZGUgdmFsaWRhdGV1ciIKKworIzogZ2l0LWFtLnNoOjk1Cittc2dpZCAiIgorIllvdSBzZWVtIHRvIGhhdmUgbW92ZWQgSEVBRCBzaW5jZSB0aGUgbGFzdCAnYW0nIGZhaWx1cmUuXG4iCisiTm90IHJld2luZGluZyB0byBPUklHX0hFQUQiCittc2dzdHIgIiIKKyJWb3VzIHNlbWJsZXogYXZvaXIgZMOpcGxhY8OpIGxhIEhFQUQgZGVwdWlzIGxlIGRlcm5pZXIgw6ljaGVjIGRlICdhbScuXG4iCisiUGFzIGRlIHJldG91ciDDoCBPUklHX0hFQUQiCisKKyM6IGdpdC1hbS5zaDoxMDUKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1yZXNvbHZlZFwiLlxuIgorIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCIkY21kbGluZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgorIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuIFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKK21zZ3N0ciAiIgorIkxvcnNxdWUgdm91cyBhdXJleiByw6lzb2x1IGNlIHByb2Jsw6htZSwgbGFuY2V6IFwiJGNtZGxpbmUgLS1yZXNvbHZlZFwiLlxuIgorIlNpIHZvdXMgcHLDqWbDqXJleiBzYXV0ZXIgY2UgcGF0Y2gsIGxhbmNleiBcIiRjbWRsaW5lIC0tc2tpcFwiIMOgIGxhIHBsYWNlLlxuIgorIlBvdXIgcmVzdGF1cmVyIGxhIGJyYW5jaGUgZCdvcmlnaW5lIGV0IHN0b3BwZXIgbGUgcGF0Y2hhZ2UsIGxhbmNleiBcIiRjbWRsaW5lIC0tYWJvcnRcIi4iCisKKyM6IGdpdC1hbS5zaDoxMjEKK21zZ2lkICJDYW5ub3QgZmFsbCBiYWNrIHRvIHRocmVlLXdheSBtZXJnZS4iCittc2dzdHIgIkltcG9zc2libGUgZGUgcmV0b3VybmVyIMOgIHVuZSBmdXNpb24gMy13YXkuIgorCisjOiBnaXQtYW0uc2g6MTM3Cittc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyBuZWNlc3NhcnkgYmxvYnMgdG8gZmFsbCBiYWNrIG9uIDMtd2F5IG1lcmdlLiIKK21zZ3N0ciAiTGUgZMOpcMO0dCBuJ2EgcGFzIGxlcyBibG9icyBuw6ljZXNzYWlyZXMgcG91ciB1biByZXRvdXIgw6AgdW5lIGZ1c2lvbiAzLXdheS4iCisKKyM6IGdpdC1hbS5zaDoxMzkKK21zZ2lkICJVc2luZyBpbmRleCBpbmZvIHRvIHJlY29uc3RydWN0IGEgYmFzZSB0cmVlLi4uIgorbXNnc3RyICJVdGlsaXNhdGlvbiBkZSBsJ2luZm9ybWF0aW9uIGRlIGwnaW5kZXggcG91ciByZWNvbnN0cnVpcmUgdW4gYXJicmUgZGUgYmFzZS4uLiIKKworIzogZ2l0LWFtLnNoOjE1NAorbXNnaWQgIiIKKyJEaWQgeW91IGhhbmQgZWRpdCB5b3VyIHBhdGNoP1xuIgorIkl0IGRvZXMgbm90IGFwcGx5IHRvIGJsb2JzIHJlY29yZGVkIGluIGl0cyBpbmRleC4iCittc2dzdHIgIiIKKyJBdmV6LXZvdXMgw6lkaXTDqSBsZSBwYXRjaCDDoCBsYSBtYWluID9cbiIKKyJJbCBuZSBzJ2FwcGxpcXVlIHBhcyBhdXggYmxvYnMgZW5yZWdpc3Ryw6lzIGRhbnMgc29uIGluZGV4LiIKKworIzogZ2l0LWFtLnNoOjE2MworbXNnaWQgIkZhbGxpbmcgYmFjayB0byBwYXRjaGluZyBiYXNlIGFuZCAzLXdheSBtZXJnZS4uLiIKK21zZ3N0ciAiUmV0b3VyIMOgIHVuIHBhdGNoIGRlIGxhIGJhc2UgZXQgZnVzaW9uIDMtd2F5Li4uIgorCisjOiBnaXQtYW0uc2g6MTc5Cittc2dpZCAiRmFpbGVkIHRvIG1lcmdlIGluIHRoZSBjaGFuZ2VzLiIKK21zZ3N0ciAiw4ljaGVjIGRlIGZ1c2lvbiBkYW5zIGxlcyBjaGFuZ2VtZW50cy4iCisKKyM6IGdpdC1hbS5zaDoyNzQKK21zZ2lkICJPbmx5IG9uZSBTdEdJVCBwYXRjaCBzZXJpZXMgY2FuIGJlIGFwcGxpZWQgYXQgb25jZSIKK21zZ3N0ciAiU2V1bGVtZW50IHVuZSBzw6lyaWUgZGUgcGF0Y2hlcyBTdEdJVCBwZXV0IMOqdHJlIGFwcGxpcXXDqWUgw6AgbGEgZm9pcyIKKworIzogZ2l0LWFtLnNoOjM2MQorIywgc2gtZm9ybWF0Cittc2dpZCAiUGF0Y2ggZm9ybWF0ICRwYXRjaF9mb3JtYXQgaXMgbm90IHN1cHBvcnRlZC4iCittc2dzdHIgIkxlIGZvcm1hdCBkZSBwYXRjaCAkcGF0Y2hfZm9ybWF0IG4nZXN0IHBhcyBzdXBwb3J0w6kuIgorCisjOiBnaXQtYW0uc2g6MzYzCittc2dpZCAiUGF0Y2ggZm9ybWF0IGRldGVjdGlvbiBmYWlsZWQuIgorbXNnc3RyICLDiWNoZWMgZGUgZMOpdGVjdGlvbiBkdSBmb3JtYXQgZHUgcGF0Y2guIgorCisjOiBnaXQtYW0uc2g6Mzg5Cittc2dpZCAiIgorIlRoZSAtYi8tLWJpbmFyeSBvcHRpb24gaGFzIGJlZW4gYSBuby1vcCBmb3IgbG9uZyB0aW1lLCBhbmRcbiIKKyJpdCB3aWxsIGJlIHJlbW92ZWQuIFBsZWFzZSBkbyBub3QgdXNlIGl0IGFueW1vcmUuIgorbXNnc3RyICIiCisiTCdvcHRpb24gLWIvLS1iaW5hcnkgbmUgZmFpdCBwbHVzIHJpZW4gZGVwdWlzIGxvbmd0ZW1wcyxcbiIKKyJldCBlbGxlIHNlcmEgc3VwcHJpbcOpZS4gTWVyY2kgZGUgbmUgcGx1cyBsJ3V0aWxpc2VyLiIKKworIzogZ2l0LWFtLnNoOjQ3NworIywgc2gtZm9ybWF0Cittc2dpZCAicHJldmlvdXMgcmViYXNlIGRpcmVjdG9yeSAkZG90ZXN0IHN0aWxsIGV4aXN0cyBidXQgbWJveCBnaXZlbi4iCittc2dzdHIgImxlIHLDqXBlcnRvaXJlIHByw6ljw6lkZW50IGRlIHJlYmFzYWdlICRkb3Rlc3QgZXhpc3RlIHRvdWpvdXJzIG1haXMgbWJveCBkb25uw6llLiIKKworIzogZ2l0LWFtLnNoOjQ4MgorbXNnaWQgIlBsZWFzZSBtYWtlIHVwIHlvdXIgbWluZC4gLS1za2lwIG9yIC0tYWJvcnQ/IgorbXNnc3RyICJEw6ljaWRlei12b3VzLiAtLXNraXAgb3UgLS1hYm9ydCA/IgorCisjOiBnaXQtYW0uc2g6NTA5Cittc2dpZCAiUmVzb2x2ZSBvcGVyYXRpb24gbm90IGluIHByb2dyZXNzLCB3ZSBhcmUgbm90IHJlc3VtaW5nLiIKK21zZ3N0ciAiUGFzIGRlIHLDqXNvbHV0aW9uIGRlIGwnb3DDqXJhdGlvbiBlbiBjb3Vycywgbm91cyBuZSBzb21tZXMgcGFzIGRhbnMgdW5lIHJlcHJpc2UuIgorCisjOiBnaXQtYW0uc2g6NTc1CisjLCBzaC1mb3JtYXQKK21zZ2lkICJEaXJ0eSBpbmRleDogY2Fubm90IGFwcGx5IHBhdGNoZXMgKGRpcnR5OiAkZmlsZXMpIgorbXNnc3RyICJJbmRleCBzYWxlIDogaW1wb3NzaWJsZSBkJ2FwcGxpcXVlciBkZXMgcGF0Y2hlcyAoc2FsZXMgOiAkZmlsZXMpIgorCisjOiBnaXQtYW0uc2g6Njc5CisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiUGF0Y2ggaXMgZW1wdHkuICBXYXMgaXQgc3BsaXQgd3Jvbmc/XG4iCisiSWYgeW91IHdvdWxkIHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIGluc3RlYWQgcnVuIFwiJGNtZGxpbmUgLS1za2lwXCIuXG4iCisiVG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoIGFuZCBzdG9wIHBhdGNoaW5nIHJ1biBcIiRjbWRsaW5lIC0tYWJvcnRcIi4iCittc2dzdHIgIiIKKyJMZSBwYXRjaCBlc3QgdmlkZS4gIMOJdGFpdC1pbCBtYWwgZMOpY291cMOpID9cbiIKKyJTaSB2b3VzIHByw6lmw6lyZXogc2F1dGVyIGNlIHBhdGNoLCBsYW5jZXogcGx1dMO0dCBcIiRjbWRsaW5lIC0tc2tpcFwiLlxuIgorIlBvdXIgcmVzdGF1cmVyIGxhIGJyYW5jaGUgZCdvcmlnaW5lIGV0IHN0b3BwZXIgbGUgcGF0Y2hhZ2UsIGxhbmNleiBcIiRjbWRsaW5lIC0tYWJvcnRcIi4iCisKKyM6IGdpdC1hbS5zaDo3MDYKK21zZ2lkICJQYXRjaCBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuIgorbXNnc3RyICJMZSBwYXRjaCBuJ2EgcGFzIGQnYWRyZXNzZSBlLW1haWwgdmFsaWRlLiIKKworIzogZ2l0LWFtLnNoOjc1MworbXNnaWQgImNhbm5vdCBiZSBpbnRlcmFjdGl2ZSB3aXRob3V0IHN0ZGluIGNvbm5lY3RlZCB0byBhIHRlcm1pbmFsLiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OqdHJlIGludGVyYWN0aWYgc2FucyBlbnRyw6llIHN0YW5kYXJkIGNvbm5lY3TDqWUgw6AgdW4gdGVybWluYWwuIgorCisjOiBnaXQtYW0uc2g6NzU3Cittc2dpZCAiQ29tbWl0IEJvZHkgaXM6IgorbXNnc3RyICJMZSBjb3JwcyBkZSBsYSB2YWxpZGF0aW9uIGVzdCA6IgorCisjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW3ldLCBbbl0sIFtlXSwgW3ZdIGFuZCBbYV0KKyMuIGluIHlvdXIgdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaAorIy4gaW5wdXQgYXQgdGhpcyBwb2ludC4KKyM6IGdpdC1hbS5zaDo3NjQKK21zZ2lkICJBcHBseT8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCittc2dzdHIgIkFwcGxpcXVlciA/IFt5XWVzL1tuXW8vW2VdZGl0L1t2XWlldyBwYXRjaC9bYV1jY2VwdCBhbGwgIgorCisjOiBnaXQtYW0uc2g6ODAwCisjLCBzaC1mb3JtYXQKK21zZ2lkICJBcHBseWluZzogJEZJUlNUTElORSIKK21zZ3N0ciAiQXBwbGljYXRpb24gOiAkRklSU1RMSU5FIgorCisjOiBnaXQtYW0uc2g6ODIxCittc2dpZCAiIgorIk5vIGNoYW5nZXMgLSBkaWQgeW91IGZvcmdldCB0byB1c2UgJ2dpdCBhZGQnP1xuIgorIklmIHRoZXJlIGlzIG5vdGhpbmcgbGVmdCB0byBzdGFnZSwgY2hhbmNlcyBhcmUgdGhhdCBzb21ldGhpbmcgZWxzZVxuIgorImFscmVhZHkgaW50cm9kdWNlZCB0aGUgc2FtZSBjaGFuZ2VzOyB5b3UgbWlnaHQgd2FudCB0byBza2lwIHRoaXMgcGF0Y2guIgorbXNnc3RyICIiCisKKyM6IGdpdC1hbS5zaDo4MjkKK21zZ2lkICIiCisiWW91IHN0aWxsIGhhdmUgdW5tZXJnZWQgcGF0aHMgaW4geW91ciBpbmRleFxuIgorImRpZCB5b3UgZm9yZ2V0IHRvIHVzZSAnZ2l0IGFkZCc/IgorbXNnc3RyICIiCisiVm91cyBhdmV6IHRvdWpvdXJzIGRlcyBjaGVtaW5zIG5vbiBmdXNpb25uw6lzIGRhbnMgdm90cmUgaW5kZXhcbiIKKyJhdXJpZXotdm91cyBvdWJsacOpIGRlIGZhaXJlICdnaXQgYWRkJyA/IgorCisjOiBnaXQtYW0uc2g6ODQ1Cittc2dpZCAiTm8gY2hhbmdlcyAtLSBQYXRjaCBhbHJlYWR5IGFwcGxpZWQuIgorbXNnc3RyICJQYXMgZGUgY2hhbmdlbWVudCAtLSBQYXRjaCBkw6lqw6AgYXBwbGlxdcOpLiIKKworIzogZ2l0LWFtLnNoOjg1NQorIywgc2gtZm9ybWF0Cittc2dpZCAiUGF0Y2ggZmFpbGVkIGF0ICRtc2dudW0gJEZJUlNUTElORSIKK21zZ3N0ciAiTGUgcGF0Y2ggYSDDqWNob3XDqSDDoCAkbXNnbnVtICRGSVJTVExJTkUiCisKKyM6IGdpdC1hbS5zaDo4NTgKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgY29weSBvZiB0aGUgcGF0Y2ggdGhhdCBmYWlsZWQgaXMgZm91bmQgaW46XG4iCisiICAgJGRvdGVzdC9wYXRjaCIKK21zZ3N0ciAiIgorIkxhIGNvcGllIGR1IHBhdGNoIHF1aSBhIMOpY2hvdcOpIHNlIHRyb3V2ZSBkYW5zIDpcbiIKKyIgICAkZG90ZXN0L3BhdGNoIgorCisjOiBnaXQtYW0uc2g6ODc2Cittc2dpZCAiYXBwbHlpbmcgdG8gYW4gZW1wdHkgaGlzdG9yeSIKK21zZ3N0ciAiYXBwbGljYXRpb24gw6AgdW4gaGlzdG9yaXF1ZSB2aWRlIgorCisjOiBnaXQtYmlzZWN0LnNoOjQ4Cittc2dpZCAiWW91IG5lZWQgdG8gc3RhcnQgYnkgXCJnaXQgYmlzZWN0IHN0YXJ0XCIiCittc2dzdHIgIlZvdXMgZGV2ZXogZMOpbWFycmVyIGF2ZWMgXCJnaXQgYmlzZWN0IHN0YXJ0XCIiCisKKyMuIFRSQU5TTEFUT1JTOiBNYWtlIHN1cmUgdG8gaW5jbHVkZSBbWV0gYW5kIFtuXSBpbiB5b3VyCisjLiB0cmFuc2xhdGlvbi4gVGhlIHByb2dyYW0gd2lsbCBvbmx5IGFjY2VwdCBFbmdsaXNoIGlucHV0CisjLiBhdCB0aGlzIHBvaW50LgorIzogZ2l0LWJpc2VjdC5zaDo1NAorbXNnaWQgIkRvIHlvdSB3YW50IG1lIHRvIGRvIGl0IGZvciB5b3UgW1kvbl0/ICIKK21zZ3N0ciAiU291aGFpdGV6LXZvdXMgcXVlIGplIGxlIGZhc3NlIHBvdXIgdm91cyBbWS9uXSA/ICIKKworIzogZ2l0LWJpc2VjdC5zaDo5NQorIywgc2gtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pc2VkIG9wdGlvbjogJyRhcmcnIgorbXNnc3RyICJvcHRpb24gaW5jb25udWUgOiAnJGFyZyciCisKKyM6IGdpdC1iaXNlY3Quc2g6OTkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIickYXJnJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSB2YWxpZCByZXZpc2lvbiIKK21zZ3N0ciAiJyRhcmcnIG5lIHNlbWJsZSDDqnRyZSB1bmUgcsOpdmlzaW9uIHZhbGlkZSIKKworIzogZ2l0LWJpc2VjdC5zaDoxMTcKK21zZ2lkICJCYWQgSEVBRCAtIEkgbmVlZCBhIEhFQUQiCittc2dzdHIgIk1hdXZhaXNlIEhFQUQgLSBqJ2FpIGJlc29pbiBkJ3VuZSBIRUFEIgorCisjOiBnaXQtYmlzZWN0LnNoOjEzMAorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIkNoZWNraW5nIG91dCAnJHN0YXJ0X2hlYWQnIGZhaWxlZC4gVHJ5ICdnaXQgYmlzZWN0IHJlc2V0IDx2YWxpZGJyYW5jaD4nLiIKK21zZ3N0ciAiTCdleHRyYWN0aW9uIGRlICckc3RhcnRfaGVhZCcgYSDDqWNob3XDqS4gRXNzYXlleiAnZ2l0IGJpc2VjdCByZXNldCA8YnJhbmNoZXZhbGlkZT4nLiIKKworIzogZ2l0LWJpc2VjdC5zaDoxNDAKK21zZ2lkICJ3b24ndCBiaXNlY3Qgb24gc2Vla2VkIHRyZWUiCittc2dzdHIgIiIKKworIzogZ2l0LWJpc2VjdC5zaDoxNDQKK21zZ2lkICJCYWQgSEVBRCAtIHN0cmFuZ2Ugc3ltYm9saWMgcmVmIgorbXNnc3RyICJNYXV2YWlzZSBIRUFEIC0gcsOpZsOpcmVuY2Ugc3ltYm9saXF1ZSBkb3V0ZXVzZSIKKworIzogZ2l0LWJpc2VjdC5zaDoxODkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkJhZCBiaXNlY3Rfd3JpdGUgYXJndW1lbnQ6ICRzdGF0ZSIKK21zZ3N0ciAiTWF1dmFpcyBhcmd1bWVudCBwb3VyIGJpc2VjdF93cml0ZSA6ICRzdGF0ZSIKKworIzogZ2l0LWJpc2VjdC5zaDoyMTgKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkJhZCByZXYgaW5wdXQ6ICRhcmciCittc2dzdHIgIk1hdXZhaXNlIHLDqXZpc2lvbiBlbiBlbnRyw6llIDogJGFyZyIKKworIzogZ2l0LWJpc2VjdC5zaDoyMzIKK21zZ2lkICJQbGVhc2UgY2FsbCAnYmlzZWN0X3N0YXRlJyB3aXRoIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4iCittc2dzdHIgIk1lcmNpIGQnYXBwZWxlciAnYmlzZWN0X3N0YXRlJyBhdmVjIGF1IG1vaW5zIHVuIGFyZ3VtZW50LiIKKworIzogZ2l0LWJpc2VjdC5zaDoyNDQKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkJhZCByZXYgaW5wdXQ6ICRyZXYiCittc2dzdHIgIk1hdXZhaXNlIHLDqXZpc2lvbiBlbiBlbnRyw6llIDogJHJldiIKKworIzogZ2l0LWJpc2VjdC5zaDoyNTAKK21zZ2lkICInZ2l0IGJpc2VjdCBiYWQnIGNhbiB0YWtlIG9ubHkgb25lIGFyZ3VtZW50LiIKK21zZ3N0ciAiJ2dpdCBiaXNlY3QgYmFkJyBuJ2FjY2VwdGUgcXUndW4gc2V1bCBhcmd1bWVudC4iCisKKyMuIGhhdmUgYmFkIGJ1dCBub3QgZ29vZC4gIHdlIGNvdWxkIGJpc2VjdCBhbHRob3VnaAorIy4gdGhpcyBpcyBsZXNzIG9wdGltdW0uCisjOiBnaXQtYmlzZWN0LnNoOjI3MworbXNnaWQgIldhcm5pbmc6IGJpc2VjdGluZyBvbmx5IHdpdGggYSBiYWQgY29tbWl0LiIKK21zZ3N0ciAiQXR0ZW50aW9uIDogYmlzc2VjdGlvbiBhdmVjIHNldWxlbWVudCB1bmUgbWF1dmFpc2UgdmFsaWRhdGlvbi4iCisKKyMuIFRSQU5TTEFUT1JTOiBNYWtlIHN1cmUgdG8gaW5jbHVkZSBbWV0gYW5kIFtuXSBpbiB5b3VyCisjLiB0cmFuc2xhdGlvbi4gVGhlIHByb2dyYW0gd2lsbCBvbmx5IGFjY2VwdCBFbmdsaXNoIGlucHV0CisjLiBhdCB0aGlzIHBvaW50LgorIzogZ2l0LWJpc2VjdC5zaDoyNzkKK21zZ2lkICJBcmUgeW91IHN1cmUgW1kvbl0/ICIKK21zZ3N0ciAiw4p0ZXMtdm91cyBzw7tyIFtZL25dID8gIgorCisjOiBnaXQtYmlzZWN0LnNoOjI4OQorbXNnaWQgIiIKKyJZb3UgbmVlZCB0byBnaXZlIG1lIGF0IGxlYXN0IG9uZSBnb29kIGFuZCBvbmUgYmFkIHJldmlzaW9ucy5cbiIKKyIoWW91IGNhbiB1c2UgXCJnaXQgYmlzZWN0IGJhZFwiIGFuZCBcImdpdCBiaXNlY3QgZ29vZFwiIGZvciB0aGF0LikiCittc2dzdHIgIiIKKyJWb3VzIGRldmV6IG1lIGRvbm5lciBhdSBtb2lucyB1bmUgYm9ubmUgZXQgdW5lIG1hdXZhaXNlIHLDqXZpc2lvbi5cbiIKKyIoVm91cyBwb3V2ZXogdXRpbGlzZXIgXCJnaXQgYmlzZWN0IGJhZFwiIGV0IFwiZ2l0IGJpc2VjdCBnb29kXCIgcG91ciBjZWxhLikiCisKKyM6IGdpdC1iaXNlY3Quc2g6MjkyCittc2dpZCAiIgorIllvdSBuZWVkIHRvIHN0YXJ0IGJ5IFwiZ2l0IGJpc2VjdCBzdGFydFwiLlxuIgorIllvdSB0aGVuIG5lZWQgdG8gZ2l2ZSBtZSBhdCBsZWFzdCBvbmUgZ29vZCBhbmQgb25lIGJhZCByZXZpc2lvbnMuXG4iCisiKFlvdSBjYW4gdXNlIFwiZ2l0IGJpc2VjdCBiYWRcIiBhbmQgXCJnaXQgYmlzZWN0IGdvb2RcIiBmb3IgdGhhdC4pIgorbXNnc3RyICIiCisiVm91cyBkZXZleiBkw6ltYXJyZXIgYXZlYyBcImdpdCBiaXNlY3Qgc3RhcnRcIi5cbiIKKyJQdWlzIHZvdXMgZGV2ZXogbWUgZG9ubmVyIGF1IG1vaW5zIHVuZSBib25uZSBldCB1bmUgbWF1dmFpc2UgcsOpdmlzaW9uLlxuIgorIihWb3VzIHBvdXZleiB1dGlsaXNlciBcImdpdCBiaXNlY3QgYmFkXCIgZXQgXCJnaXQgYmlzZWN0IGdvb2RcIiBwb3VyIGNlbGEuKSIKKworIzogZ2l0LWJpc2VjdC5zaDozNjMgZ2l0LWJpc2VjdC5zaDo0OTAKK21zZ2lkICJXZSBhcmUgbm90IGJpc2VjdGluZy4iCittc2dzdHIgIlBhcyBkZSBiaXNzZWN0aW9uIGVuIGNvdXJzLiIKKworIzogZ2l0LWJpc2VjdC5zaDozNzAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIickaW52YWxpZCcgaXMgbm90IGEgdmFsaWQgY29tbWl0IgorbXNnc3RyICInJGludmFsaWQnIG4nZXN0IHBhcyB1bmUgdmFsaWRhdGlvbiB2YWxpZGUiCisKKyM6IGdpdC1iaXNlY3Quc2g6Mzc5CisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiQ291bGQgbm90IGNoZWNrIG91dCBvcmlnaW5hbCBIRUFEICckYnJhbmNoJy5cbiIKKyJUcnkgJ2dpdCBiaXNlY3QgcmVzZXQgPGNvbW1pdD4nLiIKK21zZ3N0ciAiIgorIsOJY2hlYyBkJ2V4dHJhY3Rpb24gZGUgbGEgSEVBRCBkJ29yaWdpbmUgJyRicmFuY2gnLlxuIgorIkVzc2F5ZXogJ2dpdCBiaXNlY3QgcmVzZXQgPGNvbW1pdD4nLiIKKworIzogZ2l0LWJpc2VjdC5zaDo0MDYKK21zZ2lkICJObyBsb2dmaWxlIGdpdmVuIgorbXNnc3RyICJQYXMgZGUgZmljaGllciBkZSBsb2cgZG9ubsOpIgorCisjOiBnaXQtYmlzZWN0LnNoOjQwNworIywgc2gtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlYWQgJGZpbGUgZm9yIHJlcGxheWluZyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlICRmaWxlIHBvdXIgcmVqb3VlciIKKworIzogZ2l0LWJpc2VjdC5zaDo0MjQKK21zZ2lkICI/PyB3aGF0IGFyZSB5b3UgdGFsa2luZyBhYm91dD8iCittc2dzdHIgIj8/IGRlIHF1b2kgcGFybGV6LXZvdXMgPyIKKworIzogZ2l0LWJpc2VjdC5zaDo0MzYKKyMsIHNoLWZvcm1hdAorbXNnaWQgInJ1bm5pbmcgJGNvbW1hbmQiCittc2dzdHIgImxhbmNlbWVudCBkZSAkY29tbWFuZCIKKworIzogZ2l0LWJpc2VjdC5zaDo0NDMKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJiaXNlY3QgcnVuIGZhaWxlZDpcbiIKKyJleGl0IGNvZGUgJHJlcyBmcm9tICckY29tbWFuZCcgaXMgPCAwIG9yID49IDEyOCIKK21zZ3N0ciAiIgorImxhIGJpc3NlY3Rpb24gYSDDqWNob3XDqSA6XG4iCisibGUgY29kZSByZXRvdXIgJHJlcyBkZSAnJGNvbW1hbmQnIGVzdCA8IDAgb3UgPj0gMTI4IgorCisjOiBnaXQtYmlzZWN0LnNoOjQ2OQorbXNnaWQgImJpc2VjdCBydW4gY2Fubm90IGNvbnRpbnVlIGFueSBtb3JlIgorbXNnc3RyICJsYSBiaXNzZWN0aW9uIG5lIHBldXQgcGx1cyBjb250aW51ZXIiCisKKyM6IGdpdC1iaXNlY3Quc2g6NDc1CisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiYmlzZWN0IHJ1biBmYWlsZWQ6XG4iCisiJ2Jpc2VjdF9zdGF0ZSAkc3RhdGUnIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHJlcyIKK21zZ3N0ciAiIgorImxhIGJpc3NlY3Rpb24gYSDDqWNob3XDqSA6XG4iCisiJ2Jpc2VjdF9zdGF0ZSAkc3RhdGUnIGEgcmV0b3VybsOpIGxlIGNvZGUgZXJyZXVyICRyZXMiCisKKyM6IGdpdC1iaXNlY3Quc2g6NDgyCittc2dpZCAiYmlzZWN0IHJ1biBzdWNjZXNzIgorbXNnc3RyICJzdWNjw6hzIGRlIGxhIGJpc3NlY3Rpb24iCisKKyM6IGdpdC1wdWxsLnNoOjIxCittc2dpZCAiIgorIlB1bGwgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2UgeW91IGhhdmUgdW5tZXJnZWQgZmlsZXMuXG4iCisiUGxlYXNlLCBmaXggdGhlbSB1cCBpbiB0aGUgd29yayB0cmVlLCBhbmQgdGhlbiB1c2UgJ2dpdCBhZGQvcm0gPGZpbGU+J1xuIgorImFzIGFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbiwgb3IgdXNlICdnaXQgY29tbWl0IC1hJy4iCittc2dzdHIgIiIKKyJMZSBwdWxsIG4nZXN0IHBhcyBwb3NzaWJsZSBjYXIgdm91cyBhdmV6IGRlcyBmaWNoaWVycyBub24gZnVzaW9ubsOpcy5cbiIKKyJNZXJjaSBkZSBjb3JyaWdlciBkYW5zIHZvdHJlIGNvcGllIGRlIHRyYXZhaWwsIGV0IHV0aWxpc2V6IGFsb3JzICdnaXQgYWRkL3JtIDxmaWxlPidcbiIKKyJzaSBuw6ljZXNzYWlyZSBwb3VyIG1hcnF1ZXIgY29tbWUgcsOpc29sdSwgb3UgdXRpbGlzZXogJ2dpdCBjb21taXQgLWEnLiIKKworIzogZ2l0LXB1bGwuc2g6MjUKK21zZ2lkICJQdWxsIGlzIG5vdCBwb3NzaWJsZSBiZWNhdXNlIHlvdSBoYXZlIHVubWVyZ2VkIGZpbGVzLiIKK21zZ3N0ciAiTGUgcHVsbCBuJ2VzdCBwYXMgcG9zc2libGUgY2FyIHZvdXMgYXZleiBkZXMgZmljaGllcnMgbm9uIGZ1c2lvbm7DqXMuIgorCisjOiBnaXQtcHVsbC5zaDoyMDMKK21zZ2lkICJ1cGRhdGluZyBhbiB1bmJvcm4gYnJhbmNoIHdpdGggY2hhbmdlcyBhZGRlZCB0byB0aGUgaW5kZXgiCittc2dzdHIgIm1pc2Ugw6Agam91ciBkJ3VuZSBicmFuY2hlIG5vbiBlbmNvcmUgY3LDqcOpZSBhdmVjIGxlcyBjaGFuZ2VtZW50cyBham91dMOpcyBkYW5zIGwnaW5kZXgiCisKKyMuIFRoZSBmZXRjaCBpbnZvbHZlZCB1cGRhdGluZyB0aGUgY3VycmVudCBicmFuY2guCisjLiBUaGUgd29ya2luZyB0cmVlIGFuZCB0aGUgaW5kZXggZmlsZSBpcyBzdGlsbCBiYXNlZCBvbiB0aGUKKyMuICRvcmlnX2hlYWQgY29tbWl0LCBidXQgd2UgYXJlIG1lcmdpbmcgaW50byAkY3Vycl9oZWFkLgorIy4gRmlyc3QgdXBkYXRlIHRoZSB3b3JraW5nIHRyZWUgdG8gbWF0Y2ggJGN1cnJfaGVhZC4KKyM6IGdpdC1wdWxsLnNoOjIzNQorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGZldGNoIHVwZGF0ZWQgdGhlIGN1cnJlbnQgYnJhbmNoIGhlYWQuXG4iCisiV2FybmluZzogZmFzdC1mb3J3YXJkaW5nIHlvdXIgd29ya2luZyB0cmVlIGZyb21cbiIKKyJXYXJuaW5nOiBjb21taXQgJG9yaWdfaGVhZC4iCittc2dzdHIgIiIKKyJBdHRlbnRpb24gOiBmZXRjaCBhIG1pcyDDoCBqb3VyIGxhIHTDqnRlIGRlIGxhIGJyYW5jaGUgY291cmFudGUuXG4iCisiQXR0ZW50aW9uIDogbWlzZSDDoCBqb3VyIGVuIGF2YW5jZSByYXBpZGUgZGUgdm90cmUgY29waWUgZGUgdHJhdmFpbFxuIgorIkF0dGVudGlvbiA6IGRlcHVpcyBsYSB2YWxpZGF0aW9uICRvcmlnX2hlYWQuIgorCisjOiBnaXQtcHVsbC5zaDoyNjAKK21zZ2lkICJDYW5ub3QgbWVyZ2UgbXVsdGlwbGUgYnJhbmNoZXMgaW50byBlbXB0eSBoZWFkIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGZ1c2lvbm5lciBkZSBtdWx0aXBsZXMgYnJhbmNoZXMgc3VyIHVuZSB0w6p0ZSB2aWRlIgorCisjOiBnaXQtcHVsbC5zaDoyNjQKK21zZ2lkICJDYW5ub3QgcmViYXNlIG9udG8gbXVsdGlwbGUgYnJhbmNoZXMiCittc2dzdHIgIkltcG9zc2libGUgZGUgcmViYXNlciBzdXIgZGUgbXVsdGlwbGVzIGJyYW5jaGVzIgorCisjOiBnaXQtcmViYXNlLnNoOjUzCittc2dpZCAiIgorIldoZW4geW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIi5cbiIKKyJJZiB5b3UgcHJlZmVyIHRvIHNraXAgdGhpcyBwYXRjaCwgcnVuIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgorIlRvIGNoZWNrIG91dCB0aGUgb3JpZ2luYWwgYnJhbmNoIGFuZCBzdG9wIHJlYmFzaW5nLCBydW4gXCJnaXQgcmViYXNlIC0tYWJvcnQiCisiXCIuIgorbXNnc3RyICIiCisiTG9yc3F1ZSB2b3VzIGF1cmV6IHLDqXNvbHUgY2UgcHJvYmzDqG1lLCBsYW5jZXogXCJnaXQgcmViYXNlIC0tY29udGludWVcIi5cbiIKKyJTaSB2b3VzIHByw6lmw6lyZXogc2F1dGVyIGNlIHBhdGNoLCBsYW5jZXogXCJnaXQgcmViYXNlIC0tc2tpcFwiIMOgIGxhIHBsYWNlLlxuIgorIlBvdXIgZXh0cmFpcmUgbGEgYnJhbmNoZSBkJ29yaWdpbmUgZXQgc3RvcHBlciBsZSByZWJhc2FnZSwgbGFuY2V6IFwiZ2l0IHJlYmFzZSAtLWFib3J0XCIuIgorCisjOiBnaXQtcmViYXNlLnNoOjE2MAorbXNnaWQgIlRoZSBwcmUtcmViYXNlIGhvb2sgcmVmdXNlZCB0byByZWJhc2UuIgorbXNnc3RyICJMZSBob29rIHByZS1yZWJhc2UgYSByZWZ1c8OpIGRlIHJlYmFzZXIuIgorCisjOiBnaXQtcmViYXNlLnNoOjE2NQorbXNnaWQgIkl0IGxvb2tzIGxpa2UgZ2l0LWFtIGlzIGluIHByb2dyZXNzLiBDYW5ub3QgcmViYXNlLiIKK21zZ3N0ciAiSWwgc2VtYmxlIHF1ZSBnaXQtYW0gc29pdCBlbiBjb3Vycy4gSW1wb3NzaWJsZSBkZSByZWJhc2VyLiIKKworIzogZ2l0LXJlYmFzZS5zaDoyOTYKK21zZ2lkICJUaGUgLS1leGVjIG9wdGlvbiBtdXN0IGJlIHVzZWQgd2l0aCB0aGUgLS1pbnRlcmFjdGl2ZSBvcHRpb24iCittc2dzdHIgIkwnb3B0aW9uIC0tZXhlYyBkb2l0IMOqdHJlIHV0aWxpc8OpZSBhdmVjIGwnb3B0aW9uIC0taW50ZXJhY3RpdmUiCisKKyM6IGdpdC1yZWJhc2Uuc2g6MzAxCittc2dpZCAiTm8gcmViYXNlIGluIHByb2dyZXNzPyIKK21zZ3N0ciAiUGFzIGRlIHJlYmFzYWdlIGVuIGNvdXJzID8iCisKKyM6IGdpdC1yZWJhc2Uuc2g6MzEyCittc2dpZCAiVGhlIC0tZWRpdC10b2RvIGFjdGlvbiBjYW4gb25seSBiZSB1c2VkIGR1cmluZyBpbnRlcmFjdGl2ZSByZWJhc2UuIgorbXNnc3RyICJMJ2FjdGlvbiAtLWVkaXQtdG9kbyBwZXV0IHNldWxlbWVudCDDqnRyZSB1dGlsaXPDqWUgbG9ycyBkJ3VuIHJlYmFzYWdlIGludGVyYWN0aWYuIgorCisjOiBnaXQtcmViYXNlLnNoOjMxOQorbXNnaWQgIkNhbm5vdCByZWFkIEhFQUQiCittc2dzdHIgIkltcG9zc2libGUgZGUgbGlyZSBIRUFEIgorCisjOiBnaXQtcmViYXNlLnNoOjMyMgorbXNnaWQgIiIKKyJZb3UgbXVzdCBlZGl0IGFsbCBtZXJnZSBjb25mbGljdHMgYW5kIHRoZW5cbiIKKyJtYXJrIHRoZW0gYXMgcmVzb2x2ZWQgdXNpbmcgZ2l0IGFkZCIKK21zZ3N0ciAiIgorIlZvdXMgZGV2ZXogw6lkaXRlciB0b3VzIGxlcyBjb25mbGl0cyBkZSBmdXNpb24gZXRcbiIKKyJsZXMgbWFycXVlciBjb21tZSByw6lzb2x1cyBhdmVjIGdpdCBhZGQiCisKKyM6IGdpdC1yZWJhc2Uuc2g6MzQwCisjLCBzaC1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgbW92ZSBiYWNrIHRvICRoZWFkX25hbWUiCittc2dzdHIgIkltcG9zc2libGUgZGUgcmV2ZW5pciDDoCAkaGVhZF9uYW1lIgorCisjOiBnaXQtcmViYXNlLnNoOjM1OQorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIkl0IHNlZW1zIHRoYXQgdGhlcmUgaXMgYWxyZWFkeSBhICRzdGF0ZV9kaXJfYmFzZSBkaXJlY3RvcnksIGFuZFxuIgorIkkgd29uZGVyIGlmIHlvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhbm90aGVyIHJlYmFzZS4gIElmIHRoYXQgaXMgdGhlXG4iCisiY2FzZSwgcGxlYXNlIHRyeVxuIgorIlx0JGNtZF9saXZlX3JlYmFzZVxuIgorIklmIHRoYXQgaXMgbm90IHRoZSBjYXNlLCBwbGVhc2VcbiIKKyJcdCRjbWRfY2xlYXJfc3RhbGVfcmViYXNlXG4iCisiYW5kIHJ1biBtZSBhZ2Fpbi4gIEkgYW0gc3RvcHBpbmcgaW4gY2FzZSB5b3Ugc3RpbGwgaGF2ZSBzb21ldGhpbmdcbiIKKyJ2YWx1YWJsZSB0aGVyZS4iCittc2dzdHIgIiIKKyJJbCBzZW1ibGUgcXUnaWwgeSBhaXQgZMOpasOgIHVuIHLDqXBlcnRvaXJlICRzdGF0ZV9kaXJfYmFzZSwgZXQgamUgbWUgZGVtYW5kZVxuIgorInNpIHZvdXMgbifDqnRlcyBwYXMgYXUgbWlsaWV1IGQndW4gYXV0cmUgcmViYXNhZ2UuICBTaSBjJ2VzdCBsZSBjYXMsXG4iCisibWVyY2kgZCdlc3NheWVyXG4iCisiXHQkY21kX2xpdmVfcmViYXNlXG4iCisiU2kgw6dhIG4nZXN0IHBhcyBsZSBjYXMsIG1lcmNpIGRlXG4iCisiXHQkY21kX2NsZWFyX3N0YWxlX3JlYmFzZVxuIgorImV0IHJlbGFuY2VyIMOgIG5vdXZlYXUuICBKZSBtJ2FycsOqdGUgYXUgY2FzIG/DuSB2b3VzIGF1cmlleiBxdWVscXVlIGNob3NlXG4iCisiZCdpbXBvcnRhbnQgaWNpLiIKKworIzogZ2l0LXJlYmFzZS5zaDo0MDQKKyMsIHNoLWZvcm1hdAorbXNnaWQgImludmFsaWQgdXBzdHJlYW0gJHVwc3RyZWFtX25hbWUiCittc2dzdHIgImludmFsaWRlICR1cHN0cmVhbV9uYW1lIGVuIGFtb250IgorCisjOiBnaXQtcmViYXNlLnNoOjQyOAorIywgc2gtZm9ybWF0Cittc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgbWVyZ2UgYmFzZXMiCittc2dzdHIgIiRvbnRvX25hbWUgOiBpbCB5IGEgcGx1cyBkJ3VuZSBiYXNlIGRlIGZ1c2lvbiIKKworIzogZ2l0LXJlYmFzZS5zaDo0MzEgZ2l0LXJlYmFzZS5zaDo0MzUKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGlzIG5vIG1lcmdlIGJhc2UiCittc2dzdHIgIiRvbnRvX25hbWUgOiBpbCBuJ3kgYSBwYXMgZGUgYmFzZSBkZSBmdXNpb24iCisKKyM6IGdpdC1yZWJhc2Uuc2g6NDQwCisjLCBzaC1mb3JtYXQKK21zZ2lkICJEb2VzIG5vdCBwb2ludCB0byBhIHZhbGlkIGNvbW1pdDogJG9udG9fbmFtZSIKK21zZ3N0ciAiTmUgcG9pbnRlIHBhcyBzdXIgdW5lIHZhbGlkYXRpb24gdmFsaWRlIDogJG9udG9fbmFtZSIKKworIzogZ2l0LXJlYmFzZS5zaDo0NjMKKyMsIHNoLWZvcm1hdAorbXNnaWQgImZhdGFsOiBubyBzdWNoIGJyYW5jaDogJGJyYW5jaF9uYW1lIgorbXNnc3RyICJmYXRhbCA6IHBhcyBkZSBicmFuY2hlIDogJGJyYW5jaF9uYW1lIgorCisjOiBnaXQtcmViYXNlLnNoOjQ4MworbXNnaWQgIlBsZWFzZSBjb21taXQgb3Igc3Rhc2ggdGhlbS4iCittc2dzdHIgIk1lcmNpIGRlIGxlcyB2YWxpZGVyIG91IGRlIGxlcyByZW1pc2VyLiIKKworIzogZ2l0LXJlYmFzZS5zaDo1MDEKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLiIKK21zZ3N0ciAiTGEgYnJhbmNoZSBjb3VyYW50ZSAkYnJhbmNoX25hbWUgZXN0IMOgIGpvdXIuIgorCisjOiBnaXQtcmViYXNlLnNoOjUwNAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUsIHJlYmFzZSBmb3JjZWQuIgorbXNnc3RyICJMYSBicmFuY2hlIGNvdXJhbnRlICRicmFuY2hfbmFtZSBlc3Qgw6Agam91ciwgcmViYXNhZ2UgZm9yY8OpLiIKKworIzogZ2l0LXJlYmFzZS5zaDo1MTUKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNoYW5nZXMgZnJvbSAkbWIgdG8gJG9udG86IgorbXNnc3RyICJDaGFuZ2VtZW50cyBkZSAkbWIgc3VyICRvbnRvIDoiCisKKyMuIERldGFjaCBIRUFEIGFuZCByZXNldCB0aGUgdHJlZQorIzogZ2l0LXJlYmFzZS5zaDo1MjQKK21zZ2lkICJGaXJzdCwgcmV3aW5kaW5nIGhlYWQgdG8gcmVwbGF5IHlvdXIgd29yayBvbiB0b3Agb2YgaXQuLi4iCittc2dzdHIgIlByZW1pw6hyZW1lbnQsIHJldG91ciBkZSBoZWFkIHBvdXIgcmVqb3VlciB2b3RyZSB0cmF2YWlsIHBhci1kZXNzdXMuLi4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6NTMyCisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYXN0LWZvcndhcmRlZCAkYnJhbmNoX25hbWUgdG8gJG9udG9fbmFtZS4iCittc2dzdHIgIiRicmFuY2hfbmFtZSBtaXNlIMOgIGpvdXIgZW4gYXZhbmNlIHJhcGlkZSBzdXIgJG9udG9fbmFtZS4iCisKKyM6IGdpdC1zdGFzaC5zaDo1MQorbXNnaWQgImdpdCBzdGFzaCBjbGVhciB3aXRoIHBhcmFtZXRlcnMgaXMgdW5pbXBsZW1lbnRlZCIKK21zZ3N0ciAiZ2l0IHN0YXNoIGNsZWFyIGF2ZWMgZGVzIHBhcmFtw6h0cmVzIG4nZXN0IHBhcyBpbXBsw6ltZW50w6kiCisKKyM6IGdpdC1zdGFzaC5zaDo3NAorbXNnaWQgIllvdSBkbyBub3QgaGF2ZSB0aGUgaW5pdGlhbCBjb21taXQgeWV0IgorbXNnc3RyICJWb3VzIG4nYXZleiBwYXMgZW5jb3JlIGxhIHZhbGlkYXRpb24gaW5pdGlhbGUiCisKKyM6IGdpdC1zdGFzaC5zaDo4OQorbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IGluZGV4IHN0YXRlIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHNhdXZlciBsJ8OpdGF0IGNvdXJhbnQgZGUgbCdpbmRleCIKKworIzogZ2l0LXN0YXNoLnNoOjEyMyBnaXQtc3Rhc2guc2g6MTM2Cittc2dpZCAiQ2Fubm90IHNhdmUgdGhlIGN1cnJlbnQgd29ya3RyZWUgc3RhdGUiCittc2dzdHIgIkltcG9zc2libGUgZGUgc2F1dmVyIGwnw6l0YXQgY291cmFudCBkZSBsYSBjb3BpZSBkZSB0cmF2YWlsIgorCisjOiBnaXQtc3Rhc2guc2g6MTQwCittc2dpZCAiTm8gY2hhbmdlcyBzZWxlY3RlZCIKK21zZ3N0ciAiQXVjdW4gY2hhbmdlbWVudCBzw6lsZWN0aW9ubsOpIgorCisjOiBnaXQtc3Rhc2guc2g6MTQzCittc2dpZCAiQ2Fubm90IHJlbW92ZSB0ZW1wb3JhcnkgaW5kZXggKGNhbid0IGhhcHBlbikiCittc2dzdHIgIkltcG9zc2libGUgZGUgc3VwcHJpbWVyIGwnaW5kZXggdGVtcG9yYWlyZSAobmUgcGV1dCBwYXMgc2UgcHJvZHVpcmUpIgorCisjOiBnaXQtc3Rhc2guc2g6MTU2Cittc2dpZCAiQ2Fubm90IHJlY29yZCB3b3JraW5nIHRyZWUgc3RhdGUiCittc2dzdHIgIkltcG9zc2libGUgZCdlbnJlZ2lzdHJlciBsJ8OpdGF0IGRlIGxhIGNvcGllIGRlIHRyYXZhaWwiCisKKyMuIFRSQU5TTEFUT1JTOiAkb3B0aW9uIGlzIGFuIGludmFsaWQgb3B0aW9uLCBsaWtlCisjLiBgLS1ibGFoLWJsYWgnLiBUaGUgNyBzcGFjZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUKKyMuIHNlY29uZCBsaW5lIGNvcnJlc3BvbmQgdG8gImVycm9yOiAiLiBTbyB5b3Ugc2hvdWxkIGxpbmUKKyMuIHVwIHRoZSBzZWNvbmQgbGluZSB3aXRoIGhvd2V2ZXIgbWFueSBjaGFyYWN0ZXJzIHRoZQorIy4gdHJhbnNsYXRpb24gb2YgImVycm9yOiAiIHRha2VzIGluIHlvdXIgbGFuZ3VhZ2UuIEUuZy4gaW4KKyMuIEVuZ2xpc2ggdGhpcyBpczoKKyMuCisjLiAkIGdpdCBzdGFzaCBzYXZlIC0tYmxhaC1ibGFoIDI+JjEgfCBoZWFkIC1uIDIKKyMuIGVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAtLWJsYWgtYmxhaAorIy4gVG8gcHJvdmlkZSBhIG1lc3NhZ2UsIHVzZSBnaXQgc3Rhc2ggc2F2ZSAtLSAnLS1ibGFoLWJsYWgnCisjOiBnaXQtc3Rhc2guc2g6MjAyCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6ICRvcHRpb25cbiIKKyIgICAgICAgVG8gcHJvdmlkZSBhIG1lc3NhZ2UsIHVzZSBnaXQgc3Rhc2ggc2F2ZSAtLSAnJG9wdGlvbiciCittc2dzdHIgIiIKKyJlcnJldXI6IG9wdGlvbiBpbmNvbm51ZSBwb3VyICdzdGFzaCBzYXZlJzogJG9wdGlvblxuIgorIiAgICAgICAgUG91ciBmb3VybmlyIHVuIG1lc3NhZ2UsIHV0aWxpc2V6IGdpdCBzdGFzaCBzYXZlIC0tICckb3B0aW9uJyIKKworIzogZ2l0LXN0YXNoLnNoOjIyMworbXNnaWQgIk5vIGxvY2FsIGNoYW5nZXMgdG8gc2F2ZSIKK21zZ3N0ciAiUGFzIGRlIGNoYW5nZW1lbnRzIGVuIGxvY2FsIMOgIHNhdXZlciIKKworIzogZ2l0LXN0YXNoLnNoOjIyNworbXNnaWQgIkNhbm5vdCBpbml0aWFsaXplIHN0YXNoIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnaW5pdGlhbGlzZXIgbGUgcmVtaXNhZ2UiCisKKyM6IGdpdC1zdGFzaC5zaDoyMzUKK21zZ2lkICJDYW5ub3Qgc2F2ZSB0aGUgY3VycmVudCBzdGF0dXMiCittc2dzdHIgIkltcG9zc2libGUgZGUgc2F1dmVyIGxlIHN0YXR1dCBjb3VyYW50IgorCisjOiBnaXQtc3Rhc2guc2g6MjUzCittc2dpZCAiQ2Fubm90IHJlbW92ZSB3b3JrdHJlZSBjaGFuZ2VzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsZXMgY2hhbmdlbWVudHMgZGUgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogZ2l0LXN0YXNoLnNoOjM1MgorbXNnaWQgIk5vIHN0YXNoIGZvdW5kLiIKK21zZ3N0ciAiUGFzIGRlIHJlbWlzYWdlIHRyb3V2w6kuIgorCisjOiBnaXQtc3Rhc2guc2g6MzU5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJUb28gbWFueSByZXZpc2lvbnMgc3BlY2lmaWVkOiAkUkVWIgorbXNnc3RyICJUcm9wIGRlIHLDqXZpc2lvbnMgc3DDqWNpZmnDqWVzIDogJFJFViIKKworIzogZ2l0LXN0YXNoLnNoOjM2NQorIywgc2gtZm9ybWF0Cittc2dpZCAiJHJlZmVyZW5jZSBpcyBub3QgdmFsaWQgcmVmZXJlbmNlIgorbXNnc3RyICIkcmVmZXJlbmNlIG4nZXN0IHBhcyB1bmUgcsOpZsOpcmVuY2UgdmFsaWRlIgorCisjOiBnaXQtc3Rhc2guc2g6MzkzCisjLCBzaC1mb3JtYXQKK21zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoLWxpa2UgY29tbWl0IgorbXNnc3RyICInJGFyZ3MnIG4nZXN0IHBhcyB1bmUgdmFsaWRhdGlvbiBkZSB0eXBlIHJlbWlzYWdlIgorCisjOiBnaXQtc3Rhc2guc2g6NDA0CisjLCBzaC1mb3JtYXQKK21zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoIHJlZmVyZW5jZSIKK21zZ3N0ciAiJyRhcmdzJyBuJ2VzdCBwYXMgdW5lIHLDqWbDqXJlbmNlIGRlIHJlbWlzYWdlIgorCisjOiBnaXQtc3Rhc2guc2g6NDEyCittc2dpZCAidW5hYmxlIHRvIHJlZnJlc2ggaW5kZXgiCittc2dzdHIgImltcG9zc2libGUgZGUgcmFmcmHDrmNoaXIgbCdpbmRleCIKKworIzogZ2l0LXN0YXNoLnNoOjQxNgorbXNnaWQgIkNhbm5vdCBhcHBseSBhIHN0YXNoIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FwcGxpcXVlciB1biByZW1pc2FnZSBhdSBtaWxpZXUgZCd1bmUgZnVzaW9uIgorCisjOiBnaXQtc3Rhc2guc2g6NDI0Cittc2dpZCAiQ29uZmxpY3RzIGluIGluZGV4LiBUcnkgd2l0aG91dCAtLWluZGV4LiIKK21zZ3N0ciAiQ29uZmxpdHMgZGFucyBsJ2luZGV4LiBFc3NheWV6IHNhbnMgLS1pbmRleC4iCisKKyM6IGdpdC1zdGFzaC5zaDo0MjYKK21zZ2lkICJDb3VsZCBub3Qgc2F2ZSBpbmRleCB0cmVlIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHNhdXZlciBsJ2FyYnJlIGQnaW5kZXgiCisKKyM6IGdpdC1zdGFzaC5zaDo0NjAKK21zZ2lkICJDYW5ub3QgdW5zdGFnZSBtb2RpZmllZCBmaWxlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBkw6lzaW5kZXhlciBsZXMgZmljaGllcnMgbW9kaWZpw6lzIgorCisjOiBnaXQtc3Rhc2guc2g6NDc1Cittc2dpZCAiSW5kZXggd2FzIG5vdCB1bnN0YXNoZWQuIgorbXNnc3RyICIiCisKKyM6IGdpdC1zdGFzaC5zaDo0OTIKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkRyb3BwZWQgJHtSRVZ9ICgkcykiCittc2dzdHIgIiR7UkVWfSBzdXBwcmltw6kgKCRzKSIKKworIzogZ2l0LXN0YXNoLnNoOjQ5MworIywgc2gtZm9ybWF0Cittc2dpZCAiJHtSRVZ9OiBDb3VsZCBub3QgZHJvcCBzdGFzaCBlbnRyeSIKK21zZ3N0ciAiJHtSRVZ9OiBJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsJ2VudHLDqWUgZGUgc3Rhc2giCisKKyM6IGdpdC1zdGFzaC5zaDo1MDAKK21zZ2lkICJObyBicmFuY2ggbmFtZSBzcGVjaWZpZWQiCittc2dzdHIgIkF1Y3VuZSBicmFuY2hlIHNww6ljaWZpw6llIgorCisjOiBnaXQtc3Rhc2guc2g6NTcxCittc2dpZCAiKFRvIHJlc3RvcmUgdGhlbSB0eXBlIFwiZ2l0IHN0YXNoIGFwcGx5XCIpIgorbXNnc3RyICIoUG91ciBsZXMgcmVzdGF1cmVyIHRhcGV6IFwiZ2l0IHN0YXNoIGFwcGx5XCIpIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjkxCisjLCBzaC1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RyaXAgb25lIGNvbXBvbmVudCBvZmYgdXJsICckcmVtb3RldXJsJyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgdW4gY29tcG9zYW50IGRlIGwnVVJMICckcmVtb3RldXJsJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxOTYKKyMsIHNoLWZvcm1hdAorbXNnaWQgIk5vIHN1Ym1vZHVsZSBtYXBwaW5nIGZvdW5kIGluIC5naXRtb2R1bGVzIGZvciBwYXRoICckc21fcGF0aCciCittc2dzdHIgIlBhcyBkZSBtYXBwYWdlIGR1IHNvdXMtbW9kdWxlIHRyb3V2w6kgZGFucyAuZ2l0bW9kdWxlcyBwb3VyIGxlIGNoZW1pbiAnJHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjIzOQorIywgc2gtZm9ybWF0Cittc2dpZCAiQ2xvbmUgb2YgJyR1cmwnIGludG8gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyBmYWlsZWQiCittc2dzdHIgIkxlIGNsb25hZ2UgZGUgJyR1cmwnIGRhbnMgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckc21fcGF0aCcgYSDDqWNob3XDqSIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoyNTEKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkdpdGRpciAnJGEnIGlzIHBhcnQgb2YgdGhlIHN1Ym1vZHVsZSBwYXRoICckYicgb3IgdmljZSB2ZXJzYSIKK21zZ3N0ciAiTGUgcsOpcGVydG9pcmUgR2l0ICckYScgZmFpdCBwYXJ0aWUgZHUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckYicgb3UgdmljZS12ZXJzYSIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDozNDkKKyMsIHNoLWZvcm1hdAorbXNnaWQgInJlcG8gVVJMOiAnJHJlcG8nIG11c3QgYmUgYWJzb2x1dGUgb3IgYmVnaW4gd2l0aCAuL3wuLi8iCittc2dzdHIgIkwnVVJMIGRlIGTDqXDDtHQgJyRyZXBvJyBkb2l0IMOqdHJlIGFic29sdSBvdSBjb21tZW5jZXIgcGFyIC4vfC4uLyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDozNjYKKyMsIHNoLWZvcm1hdAorbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGluZGV4IgorbXNnc3RyICInJHNtX3BhdGgnIGV4aXN0ZSBkw6lqw6AgZGFucyBsJ2luZGV4IgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjM3MAorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBmb2xsb3dpbmcgcGF0aCBpcyBpZ25vcmVkIGJ5IG9uZSBvZiB5b3VyIC5naXRpZ25vcmUgZmlsZXM6XG4iCisiJHNtX3BhdGhcbiIKKyJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCBpdC4iCittc2dzdHIgIiIKKyJMZSBjaGVtaW4gc3VpdmFudCBlc3QgaWdub3LDqSBwYXIgdW4gZGUgdm9zIGZpY2hpZXJzIC5naXRpZ25vcmUgOlxuIgorIiRzbV9wYXRoXG4iCisiVXRpbGlzZXogLWYgc2kgdm91cyB2b3VsZXogdnJhaW1lbnQgbCdham91dGVyLiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDozODgKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkFkZGluZyBleGlzdGluZyByZXBvIGF0ICckc21fcGF0aCcgdG8gdGhlIGluZGV4IgorbXNnc3RyICJBam91dCBkdSBkw6lww7R0IGV4aXN0YW50IMOgICckc21fcGF0aCcgZGFucyBsJ2luZGV4IgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjM5MAorIywgc2gtZm9ybWF0Cittc2dpZCAiJyRzbV9wYXRoJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGEgdmFsaWQgZ2l0IHJlcG8iCittc2dzdHIgIickc21fcGF0aCcgZXhpc3RlIGTDqWrDoCBldCBuJ2VzdCBwYXMgdW4gZMOpcMO0dCBnaXQgdmFsaWRlIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjM5OAorIywgc2gtZm9ybWF0Cittc2dpZCAiQSBnaXQgZGlyZWN0b3J5IGZvciAnJHNtX25hbWUnIGlzIGZvdW5kIGxvY2FsbHkgd2l0aCByZW1vdGUocyk6IgorbXNnc3RyICJVbiByw6lwZXJ0b2lyZSBnaXQgcG91ciAnJHNtX25hbWUnIGVzdCB0cm91dsOpIGVuIGxvY2FsIGF2ZWMgbGUocykgc2VydmV1cihzKSBkaXN0YW50KHMpIDoiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDAwCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiSWYgeW91IHdhbnQgdG8gcmV1c2UgdGhpcyBsb2NhbCBnaXQgZGlyZWN0b3J5IGluc3RlYWQgb2YgY2xvbmluZyBhZ2FpbiBmcm9tIgorbXNnc3RyICJTaSB2b3VzIHZvdWxleiByw6l1dGlsaXNlciBjZSByw6lwZXJ0b2lyZSBnaXQgbG9jYWwgYXUgbGlldSBkZSBjbG9uZXIgw6Agbm91dmVhdSBkZXB1aXMiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDAyCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisidXNlIHRoZSAnLS1mb3JjZScgb3B0aW9uLiBJZiB0aGUgbG9jYWwgZ2l0IGRpcmVjdG9yeSBpcyBub3QgdGhlIGNvcnJlY3QgcmVwbyIKK21zZ3N0ciAidXRpbGlzZXogbCdvcHRpb24gJy0tZm9yY2UnLiBTaSBsZSByw6lwZXJ0b2lyZSBsb2NhbCBnaXQgbidlc3QgcGFzIGxlIGTDqXDDtHQgY29ycmVjdCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJvciB5b3UgYXJlIHVuc3VyZSB3aGF0IHRoaXMgbWVhbnMgY2hvb3NlIGFub3RoZXIgbmFtZSB3aXRoIHRoZSAnLS1uYW1lJyAiCisib3B0aW9uLiIKK21zZ3N0ciAib3Ugdm91cyBuZSBzYXZleiBwYXMgY2UgcXVlIGNlbGEgc2lnbmlmaWUgZGUgY2hvaXNpciB1biBhdXRyZSBub20gYXZlYyBsJ29wdGlvbiAnLS1uYW1lJy4iCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDA1CisjLCBzaC1mb3JtYXQKK21zZ2lkICJSZWFjdGl2YXRpbmcgbG9jYWwgZ2l0IGRpcmVjdG9yeSBmb3Igc3VibW9kdWxlICckc21fbmFtZScuIgorbXNnc3RyICJSw6lhY3RpdmF0aW9uIGR1IHLDqXBlcnRvaXJlIGdpdCBsb2NhbCBwb3VyIGxlIHNvdXMtbW9kdWxlICckc21fbmFtZScuIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQxNworIywgc2gtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGNoZWNrb3V0IHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnZXh0cmFpcmUgbGUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MjIKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBhZGQgc3VibW9kdWxlICckc21fcGF0aCciCittc2dzdHIgIsOJY2hlYyBkJ2Fqb3V0IGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDMxCisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgc3VibW9kdWxlICckc21fcGF0aCciCittc2dzdHIgIsOJY2hlYyBkJ2VucmVnaXN0cmVtZW50IGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDc0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ3N0ciAiRW50csOpZSBkYW5zICckcHJlZml4JHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ4OAorIywgc2gtZm9ybWF0Cittc2dpZCAiU3RvcHBpbmcgYXQgJyRzbV9wYXRoJzsgc2NyaXB0IHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4iCittc2dzdHIgIkFycsOqdCBzdXIgJyRzbV9wYXRoJyA7IGxlIHNjcmlwdCBhIHJldG91cm7DqSB1biBzdGF0dXQgbm9uIG51bC4iCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTMyCisjLCBzaC1mb3JtYXQKK21zZ2lkICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgaW4gLmdpdG1vZHVsZXMiCittc2dzdHIgIlVSTCBub24gdHJvdXbDqSBwb3VyIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIGRhbnMgLmdpdG1vZHVsZXMiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTQxCisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXJsIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgorbXNnc3RyICLDiWNoZWMgZCdlbnJlZ2lzdHJlbWVudCBkZSBsJ1VSTCBwb3VyIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjU0MworIywgc2gtZm9ybWF0Cittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKK21zZ3N0ciAiU291cy1tb2R1bGUgJyRuYW1lJyAoJHVybCkgZW5yZWdpc3Ryw6kgcG91ciBsZSBjaGVtaW4gJyRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NTEKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKK21zZ3N0ciAiw4ljaGVjIGQnZW5yZWdpc3RyZW1lbnQgZHUgbW9kZSBkZSBtaXNlIMOgIGpvdXIgcG91ciBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo1ODgKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlVzZSAnLicgaWYgeW91IHJlYWxseSB3YW50IHRvIGRlaW5pdGlhbGl6ZSBhbGwgc3VibW9kdWxlcyIKK21zZ3N0ciAiVXRpbGlzZXogJy4nIHNpIHZvdXMgdm91bGV6IHZyYWltZW50IHLDqWluaXRpYWxpc2VyIHRvdXMgbGVzIHNvdXMtbW9kdWxlcyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDMKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IgorbXNnc3RyICJMYSBjb3BpZSBkZSB0cmF2YWlsIGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCcgY29udGllbnQgdW4gcsOpcGVydG9pcmUgLmdpdCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDQKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgaGlzdG9yeSkiCittc2dzdHIgIih1dGlsaXNleiAncm0gLXJmJyBzaSB2b3VzIHZvdWxleiB2cmFpbWVudCBsZSBzdXBwcmltZXIgZW4gaW5jbHVhbnQgdG91dCBzb24gaGlzdG9yaXF1ZSkiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjEwCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiU3VibW9kdWxlIHdvcmsgdHJlZSAnJHNtX3BhdGgnIGNvbnRhaW5zIGxvY2FsIG1vZGlmaWNhdGlvbnM7IHVzZSAnLWYnIHRvICIKKyJkaXNjYXJkIHRoZW0iCittc2dzdHIgIkxhIGNvcGllIGRlIHRyYXZhaWwgZHUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyBjb250aWVudCBkZXMgbW9kaWZpY2F0aW9ucyBsb2NhbGVzOyB1dGlsaXNleiAnLWYnIHBvdXIgbGVzIGFubnVsZXIiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjEzCisjLCBzaC1mb3JtYXQKK21zZ2lkICJDbGVhcmVkIGRpcmVjdG9yeSAnJHNtX3BhdGgnIgorbXNnc3RyICJSw6lwZXJ0b2lyZSAnJHNtX3BhdGgnIG5ldHRvecOpIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxNAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCciCittc2dzdHIgIkltcG9zc2libGUgZGUgc3VwcHJpbWVyIGxhIGNvcGllIGRlIHRyYXZhaWwgZHUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTcKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZW1wdHkgc3VibW9kdWxlIGRpcmVjdG9yeSAnJHNtX3BhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGNyw6llciBsZSByw6lwZXJ0b2lyZSB2aWRlIGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjI2CisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgdW5yZWdpc3RlcmVkIGZvciBwYXRoICckc21fcGF0aCciCittc2dzdHIgIkxlIHNvdXMtbW9kdWxlICckbmFtZScgKCR1cmwpIG4nZXN0IHBhcyBlbnJlZ2lzdHLDqSBwb3VyIGxlIGNoZW1pbiAnJHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjczMQorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIG5vdCBpbml0aWFsaXplZFxuIgorIk1heWJlIHlvdSB3YW50IHRvIHVzZSAndXBkYXRlIC0taW5pdCc/IgorbXNnc3RyICIiCisiQ2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIG5vbiBpbml0aWFsaXPDqVxuIgorIlBldXQtw6p0cmUgc291aGFpdGV6LXZvdXMgdXRpbGlzZXIgJ3VwZGF0ZSAtLWluaXQnID8iCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NzQ0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gZmluZCBjdXJyZW50IHJldmlzaW9uIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGEgcsOpdmlzaW9uIGNvdXJhbnRlIGRhbnMgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjc1MworIywgc2gtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCittc2dzdHIgIkltcG9zc2libGUgZGUgcmFwYXRyaWVyIGRhbnMgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Nzc3CisjLCBzaC1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dzdHIgIkltcG9zc2libGUgZGUgcmFwYXRyaWVyIGRhbnMgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjc5MQorIywgc2gtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHJlYmFzZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJlYmFzZXIgJyRzaGExJyBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTIKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiByZWJhc2VkIGludG8gJyRzaGExJyIKK21zZ3N0ciAiQ2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIDogcmViYXPDqSBkYW5zICckc2hhMSciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk3CisjLCBzaC1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gbWVyZ2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmdXNpb25uZXIgJyRzaGExJyBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTgKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBtZXJnZWQgaW4gJyRzaGExJyIKK21zZ3N0ciAiQ2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIDogZnVzaW9ubsOpIGRhbnMgJyRzaGExJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDMKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnZXh0cmFpcmUgJyRzaGExJyBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDQKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgorbXNnc3RyICJDaGVtaW4gZGUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCcgOiAnJHNoYTEnIGV4dHJhaXQiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODMxCisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnc3RyICLDiWNoZWMgZGUgcGFyY291cnMgZGFucyBsZSBjaGVtaW4gZHUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTM5Cittc2dpZCAiVGhlIC0tY2FjaGVkIG9wdGlvbiBjYW5ub3QgYmUgdXNlZCB3aXRoIHRoZSAtLWZpbGVzIG9wdGlvbiIKK21zZ3N0ciAiTCdvcHRpb24gLS1jYWNoZWQgbmUgcGV1dCBwYXMgw6p0cmUgdXRpbGlzw6llIGF2ZWMgbCdvcHRpb24gLS1maWxlcyIKKworIy4gdW5leHBlY3RlZCB0eXBlCisjOiBnaXQtc3VibW9kdWxlLnNoOjk3OQorIywgc2gtZm9ybWF0Cittc2dpZCAidW5leHBlY3RlZCBtb2RlICRtb2RfZHN0IgorbXNnc3RyICJtb2RlICRtb2RfZHN0IGluYXR0ZW5kdSIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo5OTcKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9zcmMiCittc2dzdHIgIiAgQXR0ZW50aW9uIDogJG5hbWUgbmUgY29udGllbnQgcGFzIGxhIHZhbGlkYXRpb24gJHNoYTFfc3JjIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwMDAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9kc3QiCittc2dzdHIgIiAgQXR0ZW50aW9uIDogJG5hbWUgbmUgY29udGllbnQgcGFzIGxhIHZhbGlkYXRpb24gJHNoYTFfZHN0IgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwMDMKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdHMgJHNoYTFfc3JjIGFuZCAkc2hhMV9kc3QiCittc2dzdHIgIiAgQXR0ZW50aW9uIDogJG5hbWUgbmUgY29udGllbnQgcGFzIGxlcyB2YWxpZGF0aW9ucyAkc2hhMV9zcmMgZXQgJHNoYTFfZHN0IgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwMjgKK21zZ2lkICJibG9iIgorbXNnc3RyICJibG9iIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwNjYKK21zZ2lkICJTdWJtb2R1bGVzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkOiIKK21zZ3N0ciAiU291cy1tb2R1bGVzIG1vZGlmacOpcyBtYWlzIG5vbiBtaXMgw6Agam91ciA6IgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwNjgKK21zZ2lkICJTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgorbXNnc3RyICJDaGFuZ2VtZW50cyBkdSBzb3VzLW1vZHVsZSDDoCB2YWxpZGVyIDoiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1MworIywgc2gtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgorbXNnc3RyICLDiWNoZWMgZGUgcGFyY291cnMgZGFucyBsZSBjaGVtaW4gZHUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjE2CisjLCBzaC1mb3JtYXQKK21zZ2lkICJTeW5jaHJvbml6aW5nIHN1Ym1vZHVsZSB1cmwgZm9yICckcHJlZml4JHNtX3BhdGgnIgorbXNnc3RyICJTeW5jaHJvbmlzYXRpb24gZGUgbCdVUkwgc291cy1tb2R1bGUgcG91ciAnJHByZWZpeCRzbV9wYXRoJyIKZGlmZiAtLWdpdCBhL3BvL2dpdC5wb3QgYi9wby9naXQucG90CmluZGV4IDRhOWQ0ZWYuLmNmMWU0NDYgMTAwNjQ0Ci0tLSBhL3BvL2dpdC5wb3QKKysrIGIvcG8vZ2l0LnBvdApAQCAtOCw3ICs4LDcgQEAKIG1zZ3N0ciAiIgogIlByb2plY3QtSWQtVmVyc2lvbjogUEFDS0FHRSBWRVJTSU9OXG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IEdpdCBNYWlsaW5nIExpc3QgPGdpdEB2Z2VyLmtlcm5lbC5vcmc+XG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDQtMzAgMDg6MjUrMDgwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA4LTA2IDE0OjEwKzA4MDBcbiIKICJQTy1SZXZpc2lvbi1EYXRlOiBZRUFSLU1PLURBIEhPOk1JK1pPTkVcbiIKICJMYXN0LVRyYW5zbGF0b3I6IEZVTEwgTkFNRSA8RU1BSUxAQUREUkVTUz5cbiIKICJMYW5ndWFnZS1UZWFtOiBMQU5HVUFHRSA8TExAbGkub3JnPlxuIgpAQCAtMTgsNyArMTgsNyBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKICJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPUlOVEVHRVI7IHBsdXJhbD1FWFBSRVNTSU9OO1xuIgogCi0jOiBhZHZpY2UuYzo1MworIzogYWR2aWNlLmM6NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaGludDogJS4qc1xuIgogbXNnc3RyICIiCkBAIC0yNyw3ICsyNyw3IEBACiAjLiAqIE1lc3NhZ2UgdXNlZCBib3RoIHdoZW4gJ2dpdCBjb21taXQnIGZhaWxzIGFuZCB3aGVuCiAjLiAqIG90aGVyIGNvbW1hbmRzIGRvaW5nIGEgbWVyZ2UgZG8uCiAjLgotIzogYWR2aWNlLmM6ODMKKyM6IGFkdmljZS5jOjg3CiBtc2dpZCAiIgogIkZpeCB0aGVtIHVwIGluIHRoZSB3b3JrIHRyZWUsXG4iCiAiYW5kIHRoZW4gdXNlICdnaXQgYWRkL3JtIDxmaWxlPicgYXNcbiIKQEAgLTYwLDcgKzYwLDcgQEAKIG1zZ2lkICJhcmNoaXZlIGZvcm1hdCIKIG1zZ3N0ciAiIgogCi0jOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTEyNgorIzogYXJjaGl2ZS5jOjMyNCBidWlsdGluL2xvZy5jOjExNzMKIG1zZ2lkICJwcmVmaXgiCiBtc2dzdHIgIiIKIApAQCAtNjgsMTEgKzY4LDExIEBACiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKIG1zZ3N0ciAiIgogCi0jOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMzcxCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MiBidWlsdGluL2NvbmZpZy5jOjU1IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjUKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjcgYnVpbHRpbi9ncmVwLmM6NzE1IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NwotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MCBidWlsdGluL2xzLWZpbGVzLmM6NDkzIGJ1aWx0aW4vbm90ZXMuYzo1MzYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OTMgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDcgcGFyc2Utb3B0aW9ucy5oOjE0OQorIzogYXJjaGl2ZS5jOjMyNiBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjI5MgorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTMgYnVpbHRpbi9jb25maWcuYzo1NiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjczCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1IGJ1aWx0aW4vZ3JlcC5jOjcxNCBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTYgYnVpbHRpbi9scy1maWxlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NDA4CisjOiBidWlsdGluL25vdGVzLmM6NTY1IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4IHBhcnNlLW9wdGlvbnMuaDoxNTIKIG1zZ2lkICJmaWxlIgogbXNnc3RyICIiCiAKQEAgLTEwNCw3ICsxMDQsNyBAQAogbXNnaWQgImxpc3Qgc3VwcG9ydGVkIGFyY2hpdmUgZm9ybWF0cyIKIG1zZ3N0ciAiIgogCi0jOiBhcmNoaXZlLmM6MzQ1IGJ1aWx0aW4vYXJjaGl2ZS5jOjkwIGJ1aWx0aW4vY2xvbmUuYzo4NgorIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODUKIG1zZ2lkICJyZXBvIgogbXNnc3RyICIiCiAKQEAgLTExMiw3ICsxMTIsNyBAQAogbXNnaWQgInJldHJpZXZlIHRoZSBhcmNoaXZlIGZyb20gcmVtb3RlIHJlcG9zaXRvcnkgPHJlcG8+IgogbXNnc3RyICIiCiAKLSM6IGFyY2hpdmUuYzozNDcgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjYxNQorIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NDg3CiBtc2dpZCAiY29tbWFuZCIKIG1zZ3N0ciAiIgogCkBAIC0xOTUsMTcgKzE5NSwxNyBAQAogbXNnaWQgIkNhbm5vdCBmb3JjZSB1cGRhdGUgdGhlIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAiIgogCi0jOiBicmFuY2guYzoyMDEKKyM6IGJyYW5jaC5jOjIxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc2V0dXAgdHJhY2tpbmcgaW5mb3JtYXRpb247IHN0YXJ0aW5nIHBvaW50ICclcycgaXMgbm90IGEgYnJhbmNoLiIKIG1zZ3N0ciAiIgogCi0jOiBicmFuY2guYzoyMDMKKyM6IGJyYW5jaC5jOjIxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICIiCiAKLSM6IGJyYW5jaC5jOjIwNQorIzogYnJhbmNoLmM6MjIwCiBtc2dpZCAiIgogIlxuIgogIklmIHlvdSBhcmUgcGxhbm5pbmcgb24gYmFzaW5nIHlvdXIgd29yayBvbiBhbiB1cHN0cmVhbVxuIgpAQCAtMjE3LDI2ICsyMTcsMjYgQEAKICJcImdpdCBwdXNoIC11XCIgdG8gc2V0IHRoZSB1cHN0cmVhbSBjb25maWcgYXMgeW91IHB1c2guIgogbXNnc3RyICIiCiAKLSM6IGJyYW5jaC5jOjI1MAorIzogYnJhbmNoLmM6MjY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIG9iamVjdCBuYW1lOiAnJXMnLiIKIG1zZ3N0ciAiIgogCi0jOiBicmFuY2guYzoyNzAKKyM6IGJyYW5jaC5jOjI4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJBbWJpZ3VvdXMgb2JqZWN0IG5hbWU6ICclcycuIgogbXNnc3RyICIiCiAKLSM6IGJyYW5jaC5jOjI3NQorIzogYnJhbmNoLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogYnJhbmNoLmM6MjgxCisjOiBicmFuY2guYzoyOTYKIG1zZ2lkICJGYWlsZWQgdG8gbG9jayByZWYgZm9yIHVwZGF0ZSIKIG1zZ3N0ciAiIgogCi0jOiBicmFuY2guYzoyOTkKKyM6IGJyYW5jaC5jOjMxNAogbXNnaWQgIkZhaWxlZCB0byB3cml0ZSByZWYiCiBtc2dzdHIgIiIKIApAQCAtMjUwLDcgKzI1MCw3IEBACiBtc2dpZCAidW5yZWNvZ25pemVkIGhlYWRlcjogJXMlcyAoJWQpIgogbXNnc3RyICIiCiAKLSM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njc2CisjOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIgogbXNnc3RyICIiCkBAIC0yNTksOSArMjU5LDkgQEAKIG1zZ2lkICJSZXBvc2l0b3J5IGxhY2tzIHRoZXNlIHByZXJlcXVpc2l0ZSBjb21taXRzOiIKIG1zZ3N0ciAiIgogCi0jOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjUxIHNlcXVlbmNlci5jOjExMDEgYnVpbHRpbi9sb2cuYzozMDAKLSM6IGJ1aWx0aW4vbG9nLmM6NzcwIGJ1aWx0aW4vbG9nLmM6MTM0NCBidWlsdGluL2xvZy5jOjE1NzAgYnVpbHRpbi9tZXJnZS5jOjM0OQotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NQorIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY2MSBzZXF1ZW5jZXIuYzoxMTExIGJ1aWx0aW4vbG9nLmM6MzMxCisjOiBidWlsdGluL2xvZy5jOjgwMSBidWlsdGluL2xvZy5jOjEzOTkgYnVpbHRpbi9sb2cuYzoxNjI1IGJ1aWx0aW4vbWVyZ2UuYzozNjQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTYKIG1zZ2lkICJyZXZpc2lvbiB3YWxrIHNldHVwIGZhaWxlZCIKIG1zZ3N0ciAiIgogCkBAIC0yODcsNyArMjg3LDcgQEAKIG1zZ2lkICJyZXYtbGlzdCBkaWVkIgogbXNnc3RyICIiCiAKLSM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEyNTUgYnVpbHRpbi9zaG9ydGxvZy5jOjI1OAorIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTMxMCBidWlsdGluL3Nob3J0bG9nLmM6MjU5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVucmVjb2duaXplZCBhcmd1bWVudDogJXMiCiBtc2dzdHIgIiIKQEAgLTMxOCwxMiArMzE4LDEyIEBACiBtc2dpZCAiaW5kZXgtcGFjayBkaWVkIgogbXNnc3RyICIiCiAKLSM6IGNvbW1pdC5jOjUwCisjOiBjb21taXQuYzo1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgJXMiCiBtc2dzdHIgIiIKIAotIzogY29tbWl0LmM6NTIKKyM6IGNvbW1pdC5jOjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzICVzIGlzIG5vdCBhIGNvbW1pdCEiCiBtc2dzdHIgIiIKQEAgLTMzMiwxNiArMzMyLDE2IEBACiBtc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKIG1zZ3N0ciAiIgogCi0jOiBjb25uZWN0ZWQuYzozOQorIzogY29ubmVjdGVkLmM6NjAKIG1zZ2lkICJDb3VsZCBub3QgcnVuICdnaXQgcmV2LWxpc3QnIgogbXNnc3RyICIiCiAKLSM6IGNvbm5lY3RlZC5jOjQ4CisjOiBjb25uZWN0ZWQuYzo4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgd3JpdGUgdG8gcmV2LWxpc3Q6ICVzIgogbXNnc3RyICIiCiAKLSM6IGNvbm5lY3RlZC5jOjU2CisjOiBjb25uZWN0ZWQuYzo4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY2xvc2UgcmV2LWxpc3QncyBzdGRpbjogJXMiCiBtc2dzdHIgIiIKQEAgLTQzNSwxNCArNDM1LDE0IEBACiAiJXMiCiBtc2dzdHIgIiIKIAotIzogZGlmZi5jOjM0ODEKKyM6IGRpZmYuYzozNDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJGYWlsZWQgdG8gcGFyc2UgLS1kaXJzdGF0Ly1YIG9wdGlvbiBwYXJhbWV0ZXI6XG4iCiAiJXMiCiBtc2dzdHIgIiIKIAotIzogZGlmZi5jOjM0OTUKKyM6IGRpZmYuYzozNTAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBwYXJzZSAtLXN1Ym1vZHVsZSBvcHRpb24gcGFyYW1ldGVyOiAnJXMnIgogbXNnc3RyICIiCkBAIC00ODQsNDggKzQ4NCw0OCBAQAogbXNnaWQgIiclcyc6IHNob3J0IHJlYWQgJXMiCiBtc2dzdHIgIiIKIAotIzogaGVscC5jOjIxMgorIzogaGVscC5jOjIxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJhdmFpbGFibGUgZ2l0IGNvbW1hbmRzIGluICclcyciCiBtc2dzdHIgIiIKIAotIzogaGVscC5jOjIxOQorIzogaGVscC5jOjIxNwogbXNnaWQgImdpdCBjb21tYW5kcyBhdmFpbGFibGUgZnJvbSBlbHNld2hlcmUgb24geW91ciAkUEFUSCIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6MjM1CisjOiBoZWxwLmM6MjMzCiBtc2dpZCAiVGhlIG1vc3QgY29tbW9ubHkgdXNlZCBnaXQgY29tbWFuZHMgYXJlOiIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6MjkyCisjOiBoZWxwLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICInJXMnIGFwcGVhcnMgdG8gYmUgYSBnaXQgY29tbWFuZCwgYnV0IHdlIHdlcmUgbm90XG4iCiAiYWJsZSB0byBleGVjdXRlIGl0LiBNYXliZSBnaXQtJXMgaXMgYnJva2VuPyIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6MzQ5CisjOiBoZWxwLmM6MzQ3CiBtc2dpZCAiVWggb2guIFlvdXIgc3lzdGVtIHJlcG9ydHMgbm8gR2l0IGNvbW1hbmRzIGF0IGFsbC4iCiBtc2dzdHIgIiIKIAotIzogaGVscC5jOjM3MQorIzogaGVscC5jOjM2OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV0FSTklORzogWW91IGNhbGxlZCBhIEdpdCBjb21tYW5kIG5hbWVkICclcycsIHdoaWNoIGRvZXMgbm90IGV4aXN0LlxuIgogIkNvbnRpbnVpbmcgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB5b3UgbWVhbnQgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6Mzc2CisjOiBoZWxwLmM6Mzc0CiAjLCBjLWZvcm1hdAogbXNnaWQgImluICUwLjFmIHNlY29uZHMgYXV0b21hdGljYWxseS4uLiIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6MzgzCisjOiBoZWxwLmM6MzgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdDogJyVzJyBpcyBub3QgYSBnaXQgY29tbWFuZC4gU2VlICdnaXQgLS1oZWxwJy4iCiBtc2dzdHIgIiIKIAotIzogaGVscC5jOjM4NworIzogaGVscC5jOjM4NSBoZWxwLmM6NDQ0CiBtc2dpZCAiIgogIlxuIgogIkRpZCB5b3UgbWVhbiB0aGlzPyIKQEAgLTUzNSwxMiArNTM1LDE3IEBACiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCisjOiBoZWxwLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAtICVzIgorbXNnc3RyICIiCisKICM6IG1lcmdlLmM6NTYKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aGUgY2FjaGUiCiBtc2dzdHIgIiIKIAogIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM2NSBidWlsdGluL2NoZWNrb3V0LmM6NTY2Ci0jOiBidWlsdGluL2Nsb25lLmM6NjQ1CisjOiBidWlsdGluL2Nsb25lLmM6NjU2CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIiCiAKQEAgLTU1NCwyNDMgKzU1OSwyNjQgQEAKIG1zZ2lkICJhZGRpbmZvX2NhY2hlIGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjI2OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjY5CiBtc2dpZCAiZXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjcyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2NzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBwYXRoICclcyclcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2ODMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlcyB0byBtYWtlIHJvb20gZm9yIHN1YmRpcmVjdG9yeVxuIgogbXNnc3RyICIiCiAKICMuIHNvbWV0aGluZyBlbHNlIGV4aXN0cwogIy4gLi4gYnV0IG5vdCBzb21lIG90aGVyIGVycm9yICh3aG8gcmVhbGx5IGNhcmVzIHdoYXQ/KQotIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njk3IG1lcmdlLXJlY3Vyc2l2ZS5jOjcxOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njk4IG1lcmdlLXJlY3Vyc2l2ZS5jOjcxOQogbXNnaWQgIjogcGVyaGFwcyBhIEQvRiBjb25mbGljdD8iCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzA4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmdXNpbmcgdG8gbG9zZSB1bnRyYWNrZWQgZmlsZSBhdCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc0OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIG9iamVjdCAlcyAnJXMnIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc1MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJsb2IgZXhwZWN0ZWQgZm9yICVzICclcyciCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzczIGJ1aWx0aW4vY2xvbmUuYzozMTMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3NCBidWlsdGluL2Nsb25lLmM6MzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBvcGVuICclcyciCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN5bWxpbmsgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJkbyBub3Qga25vdyB3aGF0IHRvIGRvIHdpdGggJTA2byAlcyAnJXMnIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyMgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTIzCiBtc2dpZCAiRmFpbGVkIHRvIGV4ZWN1dGUgaW50ZXJuYWwgbWVyZ2UiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCAlcyB0byBkYXRhYmFzZSIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo5NDIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjk0MwogbXNnaWQgInVuc3VwcG9ydGVkIG9iamVjdCB0eXBlIGluIHRoZSB0cmVlIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjEgbWVyZ2UtcmVjdXJzaXZlLmM6MTAzNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyMiBtZXJnZS1yZWN1cnNpdmUuYzoxMDM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDT05GTElDVCAoJXMvZGVsZXRlKTogJXMgZGVsZXRlZCBpbiAlcyBhbmQgJXMgaW4gJXMuIFZlcnNpb24gJXMgb2YgJXMgbGVmdCAiCiAiaW4gdHJlZS4iCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyNyBtZXJnZS1yZWN1cnNpdmUuYzoxMDQwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI4IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKICJpbiB0cmVlIGF0ICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgyCiBtc2dpZCAicmVuYW1lIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWVkIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaXMgYSBkaXJlY3RvcnkgaW4gJXMgYWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE1OQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKHJlbmFtZS9yZW5hbWUpOiBSZW5hbWUgXCIlc1wiLT5cIiVzXCIgaW4gYnJhbmNoIFwiJXNcIiByZW5hbWUgXCIlcyIKICJcIi0+XCIlc1wiIGluIFwiJXNcIiVzIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjUKIG1zZ2lkICIgKGxlZnQgdW5yZXNvbHZlZCkiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTIxOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTIxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAocmVuYW1lL3JlbmFtZSk6IFJlbmFtZSAlcy0+JXMgaW4gJXMuIFJlbmFtZSAlcy0+JXMgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTI0OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTI0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWluZyAlcyB0byAlcyBhbmQgJXMgdG8gJXMgaW5zdGVhZCIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvYWRkKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gJXMgYWRkZWQgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgbWVyZ2VkICVzIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NjIgbWVyZ2UtcmVjdXJzaXZlLmM6MTY2MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MyBtZXJnZS1yZWN1cnNpdmUuYzoxNjYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyBhcyAlcyBpbnN0ZWFkIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIGlzIG5vdCBhIGJsb2IiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NQogbXNnaWQgIm1vZGlmeSIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY1CiBtc2dpZCAibW9kaWZpZWQiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NQogbXNnaWQgImNvbnRlbnQiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU4MgogbXNnaWQgImFkZC9hZGQiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGVkICVzIChtZXJnZWQgc2FtZSBhcyBleGlzdGluZykiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYyOQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMyBnaXQtc3VibW9kdWxlLnNoOjEwMjkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQgZ2l0LXN1Ym1vZHVsZS5zaDoxMTE4CiBtc2dpZCAic3VibW9kdWxlIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKCVzKTogTWVyZ2UgY29uZmxpY3QgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzQ5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzUwCiBtc2dpZCAiZmlsZS9kaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NgogbXNnaWQgImRpcmVjdG9yeS9maWxlIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NjAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKCVzKTogVGhlcmUgaXMgYSBkaXJlY3Rvcnkgd2l0aCBuYW1lICVzIGluICVzLiBBZGRpbmcgJXMgYXMgJXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgJXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc4NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc4OAogbXNnaWQgIkZhdGFsIG1lcmdlIGZhaWx1cmUsIHNob3VsZG4ndCBoYXBwZW4uIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MDYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MDcKIG1zZ2lkICJBbHJlYWR5IHVwLXRvLWRhdGUhIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MTUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibWVyZ2luZyBvZiB0cmVlcyAlcyBhbmQgJXMgZmFpbGVkIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4NDUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5wcm9jZXNzZWQgcGF0aD8/PyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODkwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODkxCiBtc2dpZCAiTWVyZ2luZzoiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTkwMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTkwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmb3VuZCAldSBjb21tb24gYW5jZXN0b3I6IgogbXNnaWRfcGx1cmFsICJmb3VuZCAldSBjb21tb24gYW5jZXN0b3JzOiIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5NDAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5NDEKIG1zZ2lkICJtZXJnZSByZXR1cm5lZCBubyBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcyciCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjAwOSBidWlsdGluL21lcmdlLmM6NjU4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDEwIGJ1aWx0aW4vbWVyZ2UuYzo2NzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5kZXguIgogbXNnc3RyICIiCiAKLSM6IG9iamVjdC5jOjE5NQorIzogbm90ZXMtdXRpbHMuYzo0MAorbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKK21zZ3N0ciAiIgorCisjOiBub3Rlcy11dGlscy5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIKK21zZ3N0ciAiIgorCisjOiBub3Rlcy11dGlscy5jOjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgorbXNnc3RyICIiCisKKyMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgaXMgdGhlIG5hbWUgb2YgdGhlCisjLiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHNlY29uZCAlcyBpcyBpdHMgdmFsdWUKKyM6IG5vdGVzLXV0aWxzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCAlcyB2YWx1ZTogJyVzJyIKK21zZ3N0ciAiIgorCisjOiBvYmplY3QuYzoyMDQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHBhcnNlIG9iamVjdDogJXMiCiBtc2dzdHIgIiIKQEAgLTgzMCwxOCArODU2LDE4IEBACiBtc2dpZCAiJyVzJyBpcyBiZXlvbmQgYSBzeW1ib2xpYyBsaW5rIgogbXNnc3RyICIiCiAKLSM6IHJlbW90ZS5jOjE3ODEKKyM6IHJlbW90ZS5jOjE3ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXQuXG4iCiBtc2dpZF9wbHVyYWwgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0cy5cbiIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IHJlbW90ZS5jOjE3ODcKKyM6IHJlbW90ZS5jOjE3OTQKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVzaFwiIHRvIHB1Ymxpc2ggeW91ciBsb2NhbCBjb21taXRzKVxuIgogbXNnc3RyICIiCiAKLSM6IHJlbW90ZS5jOjE3OTAKKyM6IHJlbW90ZS5jOjE3OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0LCBhbmQgY2FuIGJlIGZhc3QtZm9yd2FyZGVkLlxuIgogbXNnaWRfcGx1cmFsICIiCkBAIC04NDksMTEgKzg3NSwxMSBAQAogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogcmVtb3RlLmM6MTc5OAorIzogcmVtb3RlLmM6MTgwNQogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gdXBkYXRlIHlvdXIgbG9jYWwgYnJhbmNoKVxuIgogbXNnc3RyICIiCiAKLSM6IHJlbW90ZS5jOjE4MDEKKyM6IHJlbW90ZS5jOjE4MDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdXIgYnJhbmNoIGFuZCAnJXMnIGhhdmUgZGl2ZXJnZWQsXG4iCkBAIC04NjQsMTggKzg5MCwyNyBAQAogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogcmVtb3RlLmM6MTgxMQorIzogcmVtb3RlLmM6MTgxOAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gbWVyZ2UgdGhlIHJlbW90ZSBicmFuY2ggaW50byB5b3VycylcbiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzoyMDYgYnVpbHRpbi9tZXJnZS5jOjc3NiBidWlsdGluL21lcmdlLmM6ODg5IGJ1aWx0aW4vbWVyZ2UuYzo5OTkKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDA5CisjOiBydW4tY29tbWFuZC5jOjgwCittc2dpZCAib3BlbiAvZGV2L251bGwgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHJ1bi1jb21tYW5kLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHVwMiglZCwlZCkgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHNlcXVlbmNlci5jOjIwNiBidWlsdGluL21lcmdlLmM6NzkwIGJ1aWx0aW4vbWVyZ2UuYzo5MDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDEzIGJ1aWx0aW4vbWVyZ2UuYzoxMDIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmciCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6MjA4IGJ1aWx0aW4vbWVyZ2UuYzozMzUgYnVpbHRpbi9tZXJnZS5jOjc3OQotIzogYnVpbHRpbi9tZXJnZS5jOjEwMDEgYnVpbHRpbi9tZXJnZS5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjIwOCBidWlsdGluL21lcmdlLmM6MzUwIGJ1aWx0aW4vbWVyZ2UuYzo3OTMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDE1IGJ1aWx0aW4vbWVyZ2UuYzoxMDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAnJXMnIgogbXNnc3RyICIiCkBAIC04OTMsNyArOTI4LDcgQEAKICJhbmQgY29tbWl0IHRoZSByZXN1bHQgd2l0aCAnZ2l0IGNvbW1pdCciCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg1OSBzZXF1ZW5jZXIuYzo5NDIKKyM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4Njkgc2VxdWVuY2VyLmM6OTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAlcyIKIG1zZ3N0ciAiIgpAQCAtOTE2LDIxNSArOTUxLDIyOCBAQAogbXNnc3RyICIiCiAKICMuIFRSQU5TTEFUT1JTOiAlcyB3aWxsIGJlICJyZXZlcnQiIG9yICJjaGVycnktcGljayIKLSM6IHNlcXVlbmNlci5jOjMxOQorIzogc2VxdWVuY2VyLmM6MzI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6MzUwCisjOiBzZXF1ZW5jZXIuYzozNTUKIG1zZ2lkICJDb3VsZCBub3QgcmVzb2x2ZSBIRUFEIGNvbW1pdFxuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjM3MQorIzogc2VxdWVuY2VyLmM6Mzc3CiBtc2dpZCAiVW5hYmxlIHRvIHVwZGF0ZSBjYWNoZSB0cmVlXG4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NDE2CisjOiBzZXF1ZW5jZXIuYzo0MjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGNvbW1pdCAlc1xuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjQyMQorIzogc2VxdWVuY2VyLmM6NDI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NDg3CisjOiBzZXF1ZW5jZXIuYzo0OTMKIG1zZ2lkICJZb3VyIGluZGV4IGZpbGUgaXMgdW5tZXJnZWQuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjUwNgorIzogc2VxdWVuY2VyLmM6NTEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBpcyBhIG1lcmdlIGJ1dCBubyAtbSBvcHRpb24gd2FzIGdpdmVuLiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo1MTQKKyM6IHNlcXVlbmNlci5jOjUyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgZG9lcyBub3QgaGF2ZSBwYXJlbnQgJWQiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NTE4CisjOiBzZXF1ZW5jZXIuYzo1MjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFpbmxpbmUgd2FzIHNwZWNpZmllZCBidXQgY29tbWl0ICVzIGlzIG5vdCBhIG1lcmdlLiIKIG1zZ3N0ciAiIgogCiAjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIHdpbGwgYmUgInJldmVydCIgb3IKICMuICJjaGVycnktcGljayIsIHRoZSBzZWNvbmQgJXMgYSBTSEExCi0jOiBzZXF1ZW5jZXIuYzo1MzEKKyM6IHNlcXVlbmNlci5jOjUzNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IHBhcnNlIHBhcmVudCBjb21taXQgJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NTM1CisjOiBzZXF1ZW5jZXIuYzo1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGdldCBjb21taXQgbWVzc2FnZSBmb3IgJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NjIxCisjOiBzZXF1ZW5jZXIuYzo2MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJldmVydCAlcy4uLiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjIKKyM6IHNlcXVlbmNlci5jOjYyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgYXBwbHkgJXMuLi4gJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NjU0CisjOiBzZXF1ZW5jZXIuYzo2NjQKIG1zZ2lkICJlbXB0eSBjb21taXQgc2V0IHBhc3NlZCIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjIKKyM6IHNlcXVlbmNlci5jOjY3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjcKKyM6IHNlcXVlbmNlci5jOjY3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo3MjUKKyM6IHNlcXVlbmNlci5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgJXMgZHVyaW5nIGEgJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NzQ3CisjOiBzZXF1ZW5jZXIuYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGxpbmUgJWQuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjc1MgorIzogc2VxdWVuY2VyLmM6NzYyCiBtc2dpZCAiTm8gY29tbWl0cyBwYXJzZWQuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjc2NQorIzogc2VxdWVuY2VyLmM6Nzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjc2OQorIzogc2VxdWVuY2VyLmM6Nzc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzYKKyM6IHNlcXVlbmNlci5jOjc4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODA0CisjOiBzZXF1ZW5jZXIuYzo4MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBrZXk6ICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjgwNworIzogc2VxdWVuY2VyLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgdmFsdWUgZm9yICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTkKKyM6IHNlcXVlbmNlci5jOjgyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgb3B0aW9ucyBzaGVldDogJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODQwCisjOiBzZXF1ZW5jZXIuYzo4NTAKIG1zZ2lkICJhIGNoZXJyeS1waWNrIG9yIHJldmVydCBpcyBhbHJlYWR5IGluIHByb2dyZXNzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjg0MQorIzogc2VxdWVuY2VyLmM6ODUxCiBtc2dpZCAidHJ5IFwiZ2l0IGNoZXJyeS1waWNrICgtLWNvbnRpbnVlIHwgLS1xdWl0IHwgLS1hYm9ydClcIiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDUKKyM6IHNlcXVlbmNlci5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIHNlcXVlbmNlciBkaXJlY3RvcnkgJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODYxIHNlcXVlbmNlci5jOjk0NgorIzogc2VxdWVuY2VyLmM6ODcxIHNlcXVlbmNlci5jOjk1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciB3cmFwcGluZyB1cCAlcy4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODgwIHNlcXVlbmNlci5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjg5MCBzZXF1ZW5jZXIuYzoxMDI0CiBtc2dpZCAibm8gY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGluIHByb2dyZXNzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjg4MgorIzogc2VxdWVuY2VyLmM6ODkyCiBtc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODQKKyM6IHNlcXVlbmNlci5jOjg5NAogbXNnaWQgImNhbm5vdCBhYm9ydCBmcm9tIGEgYnJhbmNoIHlldCB0byBiZSBib3JuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjkwNiBidWlsdGluL2FwcGx5LmM6NDA2MAorIzogc2VxdWVuY2VyLmM6OTE2IGJ1aWx0aW4vYXBwbHkuYzo0MDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo5MDkKKyM6IHNlcXVlbmNlci5jOjkxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6OTEwCisjOiBzZXF1ZW5jZXIuYzo5MjAKIG1zZ2lkICJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjkxNgorIzogc2VxdWVuY2VyLmM6OTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgInN0b3JlZCBwcmUtY2hlcnJ5LXBpY2sgSEVBRCBmaWxlICclcycgaXMgY29ycnVwdCIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo5MzkKKyM6IHNlcXVlbmNlci5jOjk0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZm9ybWF0ICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzoxMDgzCisjOiBzZXF1ZW5jZXIuYzoxMDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW4ndCBjaGVycnktcGljayBhICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjEwODUKKyM6IHNlcXVlbmNlci5jOjEwOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGJhZCByZXZpc2lvbiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzoxMTE5CisjOiBzZXF1ZW5jZXIuYzoxMTI5CiBtc2dpZCAiQ2FuJ3QgcmV2ZXJ0IGFzIGluaXRpYWwgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjExMjAKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCBjaGVycnktcGljayBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIiIKIAotIzogc2hhMV9uYW1lLmM6MTAzNgorIzogc2hhMV9uYW1lLmM6NDQwCittc2dpZCAiIgorIkdpdCBub3JtYWxseSBuZXZlciBjcmVhdGVzIGEgcmVmIHRoYXQgZW5kcyB3aXRoIDQwIGhleCBjaGFyYWN0ZXJzXG4iCisiYmVjYXVzZSBpdCB3aWxsIGJlIGlnbm9yZWQgd2hlbiB5b3UganVzdCBzcGVjaWZ5IDQwLWhleC4gVGhlc2UgcmVmc1xuIgorIm1heSBiZSBjcmVhdGVkIGJ5IG1pc3Rha2UuIEZvciBleGFtcGxlLFxuIgorIlxuIgorIiAgZ2l0IGNoZWNrb3V0IC1iICRiciAkKGdpdCByZXYtcGFyc2UgLi4uKVxuIgorIlxuIgorIndoZXJlIFwiJGJyXCIgaXMgc29tZWhvdyBlbXB0eSBhbmQgYSA0MC1oZXggcmVmIGlzIGNyZWF0ZWQuIFBsZWFzZVxuIgorImV4YW1pbmUgdGhlc2UgcmVmcyBhbmQgbWF5YmUgZGVsZXRlIHRoZW0uIFR1cm4gdGhpcyBtZXNzYWdlIG9mZiBieVxuIgorInJ1bm5pbmcgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiIgorbXNnc3RyICIiCisKKyM6IHNoYTFfbmFtZS5jOjEwOTcKIG1zZ2lkICJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IHNoYTFfbmFtZS5jOjEwMzkKKyM6IHNoYTFfbmFtZS5jOjExMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gc3VjaCBicmFuY2g6ICclcyciCiBtc2dzdHIgIiIKIAotIzogc2hhMV9uYW1lLmM6MTA0MQorIzogc2hhMV9uYW1lLmM6MTEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBzaGExX25hbWUuYzoxMDQ0CisjOiBzaGExX25hbWUuYzoxMTA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVwc3RyZWFtIGJyYW5jaCAnJXMnIG5vdCBzdG9yZWQgYXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIgogbXNnc3RyICIiCkBAIC0xMTM0LDE2MCArMTE4MiwxNjAgQEAKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyc6ICVzIgogbXNnc3RyICIiCiAKLSM6IHdyYXBwZXIuYzo0MjMKKyM6IHdyYXBwZXIuYzo0MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGFjY2VzcyAnJXMnIgogbXNnc3RyICIiCiAKLSM6IHdyYXBwZXIuYzo0MzQKKyM6IHdyYXBwZXIuYzo0NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGxvb2sgdXAgY3VycmVudCB1c2VyIGluIHRoZSBwYXNzd2QgZmlsZTogJXMiCiBtc2dzdHIgIiIKIAotIzogd3JhcHBlci5jOjQzNQorIzogd3JhcHBlci5jOjQ0MQogbXNnaWQgIm5vIHN1Y2ggdXNlciIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxNDAKKyM6IHd0LXN0YXR1cy5jOjE0MQogbXNnaWQgIlVubWVyZ2VkIHBhdGhzOiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxNjcgd3Qtc3RhdHVzLmM6MTk0CisjOiB3dC1zdGF0dXMuYzoxNjggd3Qtc3RhdHVzLmM6MTk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXNldCAlcyA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxNjkgd3Qtc3RhdHVzLmM6MTk2CisjOiB3dC1zdGF0dXMuYzoxNzAgd3Qtc3RhdHVzLmM6MTk3CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE3MworIzogd3Qtc3RhdHVzLmM6MTc0CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE3NSB3dC1zdGF0dXMuYzoxNzkKKyM6IHd0LXN0YXR1cy5jOjE3NiB3dC1zdGF0dXMuYzoxODAKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIGFzIGFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTc3CisjOiB3dC1zdGF0dXMuYzoxNzgKIG1zZ2lkICIgICh1c2UgXCJnaXQgcm0gPGZpbGU+Li4uXCIgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxODgKKyM6IHd0LXN0YXR1cy5jOjE4OQogbXNnaWQgIkNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyMDYKKyM6IHd0LXN0YXR1cy5jOjIwNwogbXNnaWQgIkNoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyMTAKKyM6IHd0LXN0YXR1cy5jOjIxMQogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQgPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMgorIzogd3Qtc3RhdHVzLmM6MjEzCiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZC9ybSA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjEzCisjOiB3dC1zdGF0dXMuYzoyMTQKIG1zZ2lkICIiCiAiICAodXNlIFwiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLlwiIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjE1CisjOiB3dC1zdGF0dXMuYzoyMTYKIG1zZ2lkICIgIChjb21taXQgb3IgZGlzY2FyZCB0aGUgdW50cmFja2VkIG9yIG1vZGlmaWVkIGNvbnRlbnQgaW4gc3VibW9kdWxlcykiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjI3CisjOiB3dC1zdGF0dXMuYzoyMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0ICVzIDxmaWxlPi4uLlwiIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjQ0CisjOiB3dC1zdGF0dXMuYzoyNDUKIG1zZ2lkICJidWciCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjQ5CisjOiB3dC1zdGF0dXMuYzoyNTAKIG1zZ2lkICJib3RoIGRlbGV0ZWQ6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MAorIzogd3Qtc3RhdHVzLmM6MjUxCiBtc2dpZCAiYWRkZWQgYnkgdXM6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MQorIzogd3Qtc3RhdHVzLmM6MjUyCiBtc2dpZCAiZGVsZXRlZCBieSB0aGVtOiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyNTIKKyM6IHd0LXN0YXR1cy5jOjI1MwogbXNnaWQgImFkZGVkIGJ5IHRoZW06IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MworIzogd3Qtc3RhdHVzLmM6MjU0CiBtc2dpZCAiZGVsZXRlZCBieSB1czoiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjU0CisjOiB3dC1zdGF0dXMuYzoyNTUKIG1zZ2lkICJib3RoIGFkZGVkOiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyNTUKKyM6IHd0LXN0YXR1cy5jOjI1NgogbXNnaWQgImJvdGggbW9kaWZpZWQ6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI4NQorIzogd3Qtc3RhdHVzLmM6Mjg2CiBtc2dpZCAibmV3IGNvbW1pdHMsICIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyODcKKyM6IHd0LXN0YXR1cy5jOjI4OAogbXNnaWQgIm1vZGlmaWVkIGNvbnRlbnQsICIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyODkKKyM6IHd0LXN0YXR1cy5jOjI5MAogbXNnaWQgInVudHJhY2tlZCBjb250ZW50LCAiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MzA2CisjOiB3dC1zdGF0dXMuYzozMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IGZpbGU6ICAgJXMiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MzA5CisjOiB3dC1zdGF0dXMuYzozMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29waWVkOiAgICAgJXMgLT4gJXMiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MzEyCisjOiB3dC1zdGF0dXMuYzozMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVsZXRlZDogICAgJXMiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MzE1CisjOiB3dC1zdGF0dXMuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9kaWZpZWQ6ICAgJXMiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MzE4CisjOiB3dC1zdGF0dXMuYzozMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVuYW1lZDogICAgJXMgLT4gJXMiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MzIxCisjOiB3dC1zdGF0dXMuYzozMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAidHlwZWNoYW5nZTogJXMiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MzI0CisjOiB3dC1zdGF0dXMuYzozMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93bjogICAgJXMiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MzI3CisjOiB3dC1zdGF0dXMuYzozMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5tZXJnZWQ6ICAgJXMiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MzMwCisjOiB3dC1zdGF0dXMuYzozMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYnVnOiB1bmhhbmRsZWQgZGlmZiBzdGF0dXMgJWMiCiBtc2dzdHIgIiIKQEAgLTEyOTYsNyArMTM0NCw3IEBACiBtc2dpZCAiWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjgwNiB3dC1zdGF0dXMuYzo5NTgKKyM6IHd0LXN0YXR1cy5jOjgwNgogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjb21taXRcIikiCiBtc2dzdHIgIiIKIApAQCAtMTMxNyw3ICsxMzY1LDcgQEAKIG1zZ3N0ciAiIgogCiAjOiB3dC1zdGF0dXMuYzo4MjkKLW1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgorbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKIAogIzogd3Qtc3RhdHVzLmM6ODMxCkBAIC0xMzg5LDM3ICsxNDM3LDQ1IEBACiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk2MQotbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiCisjOiB3dC1zdGF0dXMuYzo5NTgKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5NzAKKyM6IHd0LXN0YXR1cy5jOjk2MQorbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIiCisKKyM6IHd0LXN0YXR1cy5jOjk2MworbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgorbXNnc3RyICIiCisKKyM6IHd0LXN0YXR1cy5jOjk3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZXZlcnRpbmcgY29tbWl0ICVzLiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5NzUKKyM6IHd0LXN0YXR1cy5jOjk3NwogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5NzgKKyM6IHd0LXN0YXR1cy5jOjk4MAogbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5ODAKKyM6IHd0LXN0YXR1cy5jOjk4MgogbXNnaWQgIiAgKHVzZSBcImdpdCByZXZlcnQgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6OTkxCisjOiB3dC1zdGF0dXMuYzo5OTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLCBzdGFydGVkIGZyb20gYnJhbmNoICclcycuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk5NQorIzogd3Qtc3RhdHVzLmM6OTk3CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5OTgKKyM6IHd0LXN0YXR1cy5jOjEwMDAKIG1zZ2lkICIgICh1c2UgXCJnaXQgYmlzZWN0IHJlc2V0XCIgdG8gZ2V0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiIKIApAQCAtMTQyNywzMSArMTQ4MywzNSBAQAogbXNnaWQgIk9uIGJyYW5jaCAiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NAorIzogd3Qtc3RhdHVzLmM6MTE4MAorbXNnaWQgInJlYmFzZSBpbiBwcm9ncmVzczsgb250byAiCittc2dzdHIgIiIKKworIzogd3Qtc3RhdHVzLmM6MTE4NwogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjExODYKKyM6IHd0LXN0YXR1cy5jOjExODkKIG1zZ2lkICJIRUFEIGRldGFjaGVkIGZyb20gIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjExODkKKyM6IHd0LXN0YXR1cy5jOjExOTIKIG1zZ2lkICJOb3QgY3VycmVudGx5IG9uIGFueSBicmFuY2guIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMDYKKyM6IHd0LXN0YXR1cy5jOjEyMDkKIG1zZ2lkICJJbml0aWFsIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjIwCisjOiB3dC1zdGF0dXMuYzoxMjIzCiBtc2dpZCAiVW50cmFja2VkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjIKKyM6IHd0LXN0YXR1cy5jOjEyMjUKIG1zZ2lkICJJZ25vcmVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjYKKyM6IHd0LXN0YXR1cy5jOjEyMjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHRvb2sgJS4yZiBzZWNvbmRzIHRvIGVudW1lcmF0ZSB1bnRyYWNrZWQgZmlsZXMuICdzdGF0dXMgLXVubydcbiIKQEAgLTE0NTksODIgKzE1MTksODIgQEAKICJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMzIKKyM6IHd0LXN0YXR1cy5jOjEyMzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjM0CisjOiB3dC1zdGF0dXMuYzoxMjM3CiBtc2dpZCAiICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQwCisjOiB3dC1zdGF0dXMuYzoxMjQzCiBtc2dpZCAiTm8gY2hhbmdlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQ1Ci0jLCBjLWZvcm1hdAotbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgXCJnaXQgYWRkXCIgYW5kL29yIFwiZ2l0IGNvbW1pdCAtYVwiKVxuIgotbXNnc3RyICIiCi0KICM6IHd0LXN0YXR1cy5jOjEyNDgKICMsIGMtZm9ybWF0Ci1tc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKK21zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlIFwiZ2l0IGFkZFwiIGFuZC9vciBcImdpdCBjb21taXQgLWFcIilcbiIKIG1zZ3N0ciAiIgogCiAjOiB3dC1zdGF0dXMuYzoxMjUxCiAjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0XG4iCittc2dzdHIgIiIKKworIzogd3Qtc3RhdHVzLmM6MTI1NAorIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50ICh1c2UgXCJnaXQgYWRkXCIgdG8gIgogInRyYWNrKVxuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTQKKyM6IHd0LXN0YXR1cy5jOjEyNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50XG4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1NworIzogd3Qtc3RhdHVzLmM6MTI2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAoY3JlYXRlL2NvcHkgZmlsZXMgYW5kIHVzZSBcImdpdCBhZGRcIiB0byB0cmFjaylcbiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYwIHd0LXN0YXR1cy5jOjEyNjUKKyM6IHd0LXN0YXR1cy5jOjEyNjMgd3Qtc3RhdHVzLmM6MTI2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdFxuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjMKKyM6IHd0LXN0YXR1cy5jOjEyNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcylcbiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjY3CisjOiB3dC1zdGF0dXMuYzoxMjcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIGRpcmVjdG9yeSBjbGVhblxuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEzNzUKKyM6IHd0LXN0YXR1cy5jOjEzNzgKIG1zZ2lkICJIRUFEIChubyBicmFuY2gpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEzODEKKyM6IHd0LXN0YXR1cy5jOjEzODQKIG1zZ2lkICJJbml0aWFsIGNvbW1pdCBvbiAiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTM5NgorIzogd3Qtc3RhdHVzLmM6MTM5OQogbXNnaWQgImJlaGluZCAiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTM5OSB3dC1zdGF0dXMuYzoxNDAyCisjOiB3dC1zdGF0dXMuYzoxNDAyIHd0LXN0YXR1cy5jOjE0MDUKIG1zZ2lkICJhaGVhZCAiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTQwNAorIzogd3Qtc3RhdHVzLmM6MTQwNwogbXNnaWQgIiwgYmVoaW5kICIKIG1zZ3N0ciAiIgogCi0jOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTggYnVpbHRpbi9jbG9uZS5jOjM1MgorIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHVubGluayAnJXMnIgogbXNnc3RyICIiCkBAIC0xNTk0LDcgKzE2NTQsNyBAQAogbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyMzMKKyM6IGJ1aWx0aW4vYWRkLmM6MTQ5IGJ1aWx0aW4vY29tbWl0LmM6MjUyCiBtc2dpZCAidXBkYXRpbmcgZmlsZXMgZmFpbGVkIgogbXNnc3RyICIiCiAKQEAgLTE2MDcsNyArMTY2Nyw3IEBACiBtc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZWZyZXNoaW5nIHRoZSBpbmRleDoiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzIgYnVpbHRpbi9ybS5jOjI3NQorIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzMgYnVpbHRpbi9ybS5jOjMzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgogbXNnc3RyICIiCkBAIC0xNjE2LDEyNyArMTY3NiwxMjcgQEAKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCB0aGUgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzozNDkKKyM6IGJ1aWx0aW4vYWRkLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmcuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzUzCisjOiBidWlsdGluL2FkZC5jOjM1NAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjM1OAorIzogYnVpbHRpbi9hZGQuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHN0YXQgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjM2MAorIzogYnVpbHRpbi9hZGQuYzozNjEKIG1zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzozNjYKKyM6IGJ1aWx0aW4vYWRkLmM6MzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzc2CisjOiBidWlsdGluL2FkZC5jOjM3NwogbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjM5MyBidWlsdGluL2NsZWFuLmM6MTYxIGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKLSM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzYgYnVpbHRpbi9wdXNoLmM6NDI1IGJ1aWx0aW4vcmVtb3RlLmM6MTI1MwotIzogYnVpbHRpbi9ybS5jOjIwNgorIzogYnVpbHRpbi9hZGQuYzozOTQgYnVpbHRpbi9jbGVhbi5jOjg3NSBidWlsdGluL2ZldGNoLmM6NzggYnVpbHRpbi9tdi5jOjYzCisjOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjczIGJ1aWx0aW4vcHVzaC5jOjQ1MSBidWlsdGluL3JlbW90ZS5jOjEyNTMKKyM6IGJ1aWx0aW4vcm0uYzoyNjgKIG1zZ2lkICJkcnkgcnVuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vYXBwbHkuYzo0NDA5IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1MiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTMKLSM6IGJ1aWx0aW4vbG9nLmM6MTUxOCBidWlsdGluL212LmM6NjIgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTIKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk1IGJ1aWx0aW4vYXBwbHkuYzo0NDEwIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMCBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTU3MyBidWlsdGluL212LmM6NjIgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKIG1zZ2lkICJiZSB2ZXJib3NlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk2CisjOiBidWlsdGluL2FkZC5jOjM5NwogbXNnaWQgImludGVyYWN0aXZlIHBpY2tpbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzozOTcgYnVpbHRpbi9jaGVja291dC5jOjEwNjMgYnVpbHRpbi9yZXNldC5jOjI1OAorIzogYnVpbHRpbi9hZGQuYzozOTggYnVpbHRpbi9jaGVja291dC5jOjEwNzMgYnVpbHRpbi9yZXNldC5jOjI2MQogbXNnaWQgInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk4CisjOiBidWlsdGluL2FkZC5jOjM5OQogbXNnaWQgImVkaXQgY3VycmVudCBkaWZmIGFuZCBhcHBseSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OQorIzogYnVpbHRpbi9hZGQuYzo0MDAKIG1zZ2lkICJhbGxvdyBhZGRpbmcgb3RoZXJ3aXNlIGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDAKKyM6IGJ1aWx0aW4vYWRkLmM6NDAxCiBtc2dpZCAidXBkYXRlIHRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDEKKyM6IGJ1aWx0aW4vYWRkLmM6NDAyCiBtc2dpZCAicmVjb3JkIG9ubHkgdGhlIGZhY3QgdGhhdCB0aGUgcGF0aCB3aWxsIGJlIGFkZGVkIGxhdGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAyCisjOiBidWlsdGluL2FkZC5jOjQwMwogbXNnaWQgImFkZCBjaGFuZ2VzIGZyb20gYWxsIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAiIgogCiAjLiB0YWtlcyBubyBhcmd1bWVudHMKLSM6IGJ1aWx0aW4vYWRkLmM6NDA1CisjOiBidWlsdGluL2FkZC5jOjQwNgogbXNnaWQgImlnbm9yZSBwYXRocyByZW1vdmVkIGluIHRoZSB3b3JraW5nIHRyZWUgKHNhbWUgYXMgLS1uby1hbGwpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDA3CisjOiBidWlsdGluL2FkZC5jOjQwOAogbXNnaWQgImRvbid0IGFkZCwgb25seSByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQwOAorIzogYnVpbHRpbi9hZGQuYzo0MDkKIG1zZ2lkICJqdXN0IHNraXAgZmlsZXMgd2hpY2ggY2Fubm90IGJlIGFkZGVkIGJlY2F1c2Ugb2YgZXJyb3JzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDA5CisjOiBidWlsdGluL2FkZC5jOjQxMAogbXNnaWQgImNoZWNrIGlmIC0gZXZlbiBtaXNzaW5nIC0gZmlsZXMgYXJlIGlnbm9yZWQgaW4gZHJ5IHJ1biIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMQorIzogYnVpbHRpbi9hZGQuYzo0MzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIC1mIGlmIHlvdSByZWFsbHkgd2FudCB0byBhZGQgdGhlbS5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMgorIzogYnVpbHRpbi9hZGQuYzo0MzMKIG1zZ2lkICJubyBmaWxlcyBhZGRlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQzOAorIzogYnVpbHRpbi9hZGQuYzo0MzkKIG1zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDc3CisjOiBidWlsdGluL2FkZC5jOjQ3OAogbXNnaWQgIi1BIGFuZCAtdSBhcmUgbXV0dWFsbHkgaW5jb21wYXRpYmxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDk1CisjOiBidWlsdGluL2FkZC5jOjQ5NgogbXNnaWQgIk9wdGlvbiAtLWlnbm9yZS1taXNzaW5nIGNhbiBvbmx5IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAtLWRyeS1ydW4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MjUKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTm90aGluZyBzcGVjaWZpZWQsIG5vdGhpbmcgYWRkZWQuXG4iCi1tc2dzdHIgIiIKLQogIzogYnVpbHRpbi9hZGQuYzo1MjYKICMsIGMtZm9ybWF0Cittc2dpZCAiTm90aGluZyBzcGVjaWZpZWQsIG5vdGhpbmcgYWRkZWQuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9hZGQuYzo1MjcKKyMsIGMtZm9ybWF0CiBtc2dpZCAiTWF5YmUgeW91IHdhbnRlZCB0byBzYXkgJ2dpdCBhZGQgLic/XG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MzIgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzo2NiBidWlsdGluL2NsZWFuLmM6MjA0Ci0jOiBidWlsdGluL2NvbW1pdC5jOjI5MyBidWlsdGluL212LmM6ODIgYnVpbHRpbi9ybS5jOjIzNQorIzogYnVpbHRpbi9hZGQuYzo1MzMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjEgYnVpbHRpbi9jbGVhbi5jOjkxOQorIzogYnVpbHRpbi9jb21taXQuYzozMTIgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyOTcKIG1zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo2MDQgYnVpbHRpbi9hcHBseS5jOjQ1MDUgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6MzcwCisjOiBidWlsdGluL2FkZC5jOjYwNSBidWlsdGluL2FwcGx5LmM6NDUwNiBidWlsdGluL212LmM6MjI5IGJ1aWx0aW4vcm0uYzo0MzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIiIKIApAQCAtMTkxMywyOTMgKzE5NzMsMjkzIEBACiBtc2dpZCAiY2Fubm90IGNoZWNrb3V0ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMTQwIGJ1aWx0aW4vYXBwbHkuYzozMTQ5IGJ1aWx0aW4vYXBwbHkuYzozMTkzCisjOiBidWlsdGluL2FwcGx5LmM6MzE0MCBidWlsdGluL2FwcGx5LmM6MzE0OSBidWlsdGluL2FwcGx5LmM6MzE5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkIG9mICVzIGZhaWxlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzE3MyBidWlsdGluL2FwcGx5LmM6MzM5NQorIzogYnVpbHRpbi9hcHBseS5jOjMxNzQgYnVpbHRpbi9hcHBseS5jOjMzOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAlcyBoYXMgYmVlbiByZW5hbWVkL2RlbGV0ZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNTQgYnVpbHRpbi9hcHBseS5jOjM0MDkKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjU1IGJ1aWx0aW4vYXBwbHkuYzozNDEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI1OCBidWlsdGluL2FwcGx5LmM6MzQwMSBidWlsdGluL2FwcGx5LmM6MzQyMworIzogYnVpbHRpbi9hcHBseS5jOjMyNTkgYnVpbHRpbi9hcHBseS5jOjM0MDIgYnVpbHRpbi9hcHBseS5jOjM0MjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjYzIGJ1aWx0aW4vYXBwbHkuYzozNDE3CisjOiBidWlsdGluL2FwcGx5LmM6MzI2NCBidWlsdGluL2FwcGx5LmM6MzQxOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogZG9lcyBub3QgbWF0Y2ggaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMzNjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMzY2CiBtc2dpZCAicmVtb3ZhbCBwYXRjaCBsZWF2ZXMgZmlsZSBjb250ZW50cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzQzNAorIzogYnVpbHRpbi9hcHBseS5jOjM0MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IHdyb25nIHR5cGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGhhcyB0eXBlICVvLCBleHBlY3RlZCAlbyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzUzNworIzogYnVpbHRpbi9hcHBseS5jOjM1MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTQwCisjOiBidWlsdGluL2FwcGx5LmM6MzU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogYWxyZWFkeSBleGlzdHMgaW4gd29ya2luZyBkaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU2NQorIzogYnVpbHRpbi9hcHBseS5jOjM1NjYKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IG1vZGUgKCVvKSBvZiAlcyBkb2VzIG5vdCBtYXRjaCBvbGQgbW9kZSAoJW8pIG9mICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTczCisjOiBidWlsdGluL2FwcGx5LmM6MzU3NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogcGF0Y2ggZG9lcyBub3QgYXBwbHkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1ODYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIHBhdGNoICVzLi4uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNjc5IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTYgYnVpbHRpbi9yZXNldC5jOjEyNAorIzogYnVpbHRpbi9hcHBseS5jOjM2ODAgYnVpbHRpbi9jaGVja291dC5jOjIxNiBidWlsdGluL3Jlc2V0LmM6MTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1ha2VfY2FjaGVfZW50cnkgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4MjIKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODIzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZW1vdmUgJXMgZnJvbSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1MAorIzogYnVpbHRpbi9hcHBseS5jOjM4NTEKICMsIGMtZm9ybWF0Ci1tc2dpZCAiY29ycnVwdCBwYXRjaCBmb3Igc3VicHJvamVjdCAlcyIKK21zZ2lkICJjb3JydXB0IHBhdGNoIGZvciBzdWJtb2R1bGUgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGF0IG5ld2x5IGNyZWF0ZWQgZmlsZSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODU5CisjOiBidWlsdGluL2FwcGx5LmM6Mzg2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIGJhY2tpbmcgc3RvcmUgZm9yIG5ld2x5IGNyZWF0ZWQgZmlsZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg2MiBidWlsdGluL2FwcGx5LmM6Mzk3MAorIzogYnVpbHRpbi9hcHBseS5jOjM4NjMgYnVpbHRpbi9hcHBseS5jOjM5NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGFkZCBjYWNoZSBlbnRyeSBmb3IgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4OTUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODk2CiAjLCBjLWZvcm1hdAogbXNnaWQgImNsb3NpbmcgZmlsZSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozOTQ0CisjOiBidWlsdGluL2FwcGx5LmM6Mzk0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgZmlsZSAnJXMnIG1vZGUgJW8iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFwcGxpZWQgcGF0Y2ggJXMgY2xlYW5seS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQwCiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IiCiBtc2dzdHIgIiIKIAogIy4gU2F5IHRoaXMgZXZlbiB3aXRob3V0IC0tdmVyYm9zZQotIzogYnVpbHRpbi9hcHBseS5jOjQwNDIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFwcGx5aW5nIHBhdGNoICUlcyB3aXRoICVkIHJlamVjdC4uLiIKIG1zZ2lkX3BsdXJhbCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0cy4uLiIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDUyCisjOiBidWlsdGluL2FwcGx5LmM6NDA1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0cnVuY2F0aW5nIC5yZWogZmlsZW5hbWUgdG8gJS4qcy5yZWoiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNzMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1bmsgIyVkIGFwcGxpZWQgY2xlYW5seS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlamVjdGVkIGh1bmsgIyVkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDIyNgorIzogYnVpbHRpbi9hcHBseS5jOjQyMjcKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaW5wdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQyMzcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MjM4CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgaW5kZXggZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NiBidWlsdGluL2FwcGx5LmM6NDM1OSBidWlsdGluL2Nsb25lLmM6OTIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3IGJ1aWx0aW4vYXBwbHkuYzo0MzYwIGJ1aWx0aW4vY2xvbmUuYzo5MQogIzogYnVpbHRpbi9mZXRjaC5jOjYzCiBtc2dpZCAicGF0aCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NworIzogYnVpbHRpbi9hcHBseS5jOjQzNTgKIG1zZ2lkICJkb24ndCBhcHBseSBjaGFuZ2VzIG1hdGNoaW5nIHRoZSBnaXZlbiBwYXRoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYwCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MQogbXNnaWQgImFwcGx5IGNoYW5nZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHBhdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYzCiBtc2dpZCAibnVtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYzCisjOiBidWlsdGluL2FwcGx5LmM6NDM2NAogbXNnaWQgInJlbW92ZSA8bnVtPiBsZWFkaW5nIHNsYXNoZXMgZnJvbSB0cmFkaXRpb25hbCBkaWZmIHBhdGhzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY2CisjOiBidWlsdGluL2FwcGx5LmM6NDM2NwogbXNnaWQgImlnbm9yZSBhZGRpdGlvbnMgbWFkZSBieSB0aGUgcGF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjgKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY5CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIG91dHB1dCBkaWZmc3RhdCBmb3IgdGhlIGlucHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzcyCisjOiBidWlsdGluL2FwcGx5LmM6NDM3MwogbXNnaWQgInNob3cgbnVtYmVyIG9mIGFkZGVkIGFuZCBkZWxldGVkIGxpbmVzIGluIGRlY2ltYWwgbm90YXRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc1CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIG91dHB1dCBhIHN1bW1hcnkgZm9yIHRoZSBpbnB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3NgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzcKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgc2VlIGlmIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc4CisjOiBidWlsdGluL2FwcGx5LmM6NDM3OQogbXNnaWQgIm1ha2Ugc3VyZSB0aGUgcGF0Y2ggaXMgYXBwbGljYWJsZSB0byB0aGUgY3VycmVudCBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4MAorIzogYnVpbHRpbi9hcHBseS5jOjQzODEKIG1zZ2lkICJhcHBseSBhIHBhdGNoIHdpdGhvdXQgdG91Y2hpbmcgdGhlIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4MgorIzogYnVpbHRpbi9hcHBseS5jOjQzODMKIG1zZ2lkICJhbHNvIGFwcGx5IHRoZSBwYXRjaCAodXNlIHdpdGggLS1zdGF0Ly0tc3VtbWFyeS8tLWNoZWNrKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4NAorIzogYnVpbHRpbi9hcHBseS5jOjQzODUKIG1zZ2lkICJhdHRlbXB0IHRocmVlLXdheSBtZXJnZSBpZiBhIHBhdGNoIGRvZXMgbm90IGFwcGx5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg2CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NwogbXNnaWQgImJ1aWxkIGEgdGVtcG9yYXJ5IGluZGV4IGJhc2VkIG9uIGVtYmVkZGVkIGluZGV4IGluZm9ybWF0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg4IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ1NgorIzogYnVpbHRpbi9hcHBseS5jOjQzODkgYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDYyCiBtc2dpZCAicGF0aHMgYXJlIHNlcGFyYXRlZCB3aXRoIE5VTCBjaGFyYWN0ZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCiBtc2dpZCAiZW5zdXJlIGF0IGxlYXN0IDxuPiBsaW5lcyBvZiBjb250ZXh0IG1hdGNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MwogbXNnaWQgImFjdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MworIzogYnVpbHRpbi9hcHBseS5jOjQzOTQKIG1zZ2lkICJkZXRlY3QgbmV3IG9yIG1vZGlmaWVkIGxpbmVzIHRoYXQgaGF2ZSB3aGl0ZXNwYWNlIGVycm9ycyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5NiBidWlsdGluL2FwcGx5LmM6NDM5OQorIzogYnVpbHRpbi9hcHBseS5jOjQzOTcgYnVpbHRpbi9hcHBseS5jOjQ0MDAKIG1zZ2lkICJpZ25vcmUgY2hhbmdlcyBpbiB3aGl0ZXNwYWNlIHdoZW4gZmluZGluZyBjb250ZXh0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDAyCisjOiBidWlsdGluL2FwcGx5LmM6NDQwMwogbXNnaWQgImFwcGx5IHRoZSBwYXRjaCBpbiByZXZlcnNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA0CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNQogbXNnaWQgImRvbid0IGV4cGVjdCBhdCBsZWFzdCBvbmUgbGluZSBvZiBjb250ZXh0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA2CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNwogbXNnaWQgImxlYXZlIHRoZSByZWplY3RlZCBodW5rcyBpbiBjb3JyZXNwb25kaW5nICoucmVqIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA4CisjOiBidWlsdGluL2FwcGx5LmM6NDQwOQogbXNnaWQgImFsbG93IG92ZXJsYXBwaW5nIGh1bmtzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDExCisjOiBidWlsdGluL2FwcGx5LmM6NDQxMgogbXNnaWQgInRvbGVyYXRlIGluY29ycmVjdGx5IGRldGVjdGVkIG1pc3NpbmcgbmV3LWxpbmUgYXQgdGhlIGVuZCBvZiBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE0CisjOiBidWlsdGluL2FwcGx5LmM6NDQxNQogbXNnaWQgImRvIG5vdCB0cnVzdCB0aGUgbGluZSBjb3VudHMgaW4gdGhlIGh1bmsgaGVhZGVycyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxNgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MTcKIG1zZ2lkICJyb290IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE3CisjOiBidWlsdGluL2FwcGx5LmM6NDQxOAogbXNnaWQgInByZXBlbmQgPHJvb3Q+IHRvIGFsbCBmaWxlbmFtZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MzkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQwCiBtc2dpZCAiLS0zd2F5IG91dHNpZGUgYSByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ3CisjOiBidWlsdGluL2FwcGx5LmM6NDQ0OAogbXNnaWQgIi0taW5kZXggb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NTAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDUxCiBtc2dpZCAiLS1jYWNoZWQgb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbid0IG9wZW4gcGF0Y2ggJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ4MAorIzogYnVpbHRpbi9hcHBseS5jOjQ0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAic3F1ZWxjaGVkICVkIHdoaXRlc3BhY2UgZXJyb3IiCiBtc2dpZF9wbHVyYWwgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9ycyIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDg2IGJ1aWx0aW4vYXBwbHkuYzo0NDk2CisjOiBidWlsdGluL2FwcGx5LmM6NDQ4NyBidWlsdGluL2FwcGx5LmM6NDQ5NwogIywgYy1mb3JtYXQKIG1zZ2lkICIlZCBsaW5lIGFkZHMgd2hpdGVzcGFjZSBlcnJvcnMuIgogbXNnaWRfcGx1cmFsICIlZCBsaW5lcyBhZGQgd2hpdGVzcGFjZSBlcnJvcnMuIgpAQCAtMjI1MywxMDMgKzIzMTMsMTAzIEBACiBtc2dpZCAidXBkYXRlIEJJU0VDVF9IRUFEIGluc3RlYWQgb2YgY2hlY2tpbmcgb3V0IHRoZSBjdXJyZW50IGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyNgogbXNnaWQgImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjMwCisjOiBidWlsdGluL2JsYW1lLmM6MzEKIG1zZ2lkICJbcmV2LW9wdHNdIGFyZSBkb2N1bWVudGVkIGluIGdpdC1yZXYtbGlzdCgxKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzYKIG1zZ2lkICJTaG93IGJsYW1lIGVudHJpZXMgYXMgd2UgZmluZCB0aGVtLCBpbmNyZW1lbnRhbGx5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU2CisjOiBidWlsdGluL2JsYW1lLmM6MjI3NwogbXNnaWQgIlNob3cgYmxhbmsgU0hBLTEgZm9yIGJvdW5kYXJ5IGNvbW1pdHMgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc4CiBtc2dpZCAiRG8gbm90IHRyZWF0IHJvb3QgY29tbWl0cyBhcyBib3VuZGFyaWVzIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU4CisjOiBidWlsdGluL2JsYW1lLmM6MjI3OQogbXNnaWQgIlNob3cgd29yayBjb3N0IHN0YXRpc3RpY3MiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgwCiBtc2dpZCAiU2hvdyBvdXRwdXQgc2NvcmUgZm9yIGJsYW1lIGVudHJpZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgxCiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBmaWxlbmFtZSAoRGVmYXVsdDogYXV0bykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgyCiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBsaW5lbnVtYmVyIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYyCisjOiBidWlsdGluL2JsYW1lLmM6MjI4MwogbXNnaWQgIlNob3cgaW4gYSBmb3JtYXQgZGVzaWduZWQgZm9yIG1hY2hpbmUgY29uc3VtcHRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg0CiBtc2dpZCAiU2hvdyBwb3JjZWxhaW4gZm9ybWF0IHdpdGggcGVyLWxpbmUgY29tbWl0IGluZm9ybWF0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY0CisjOiBidWlsdGluL2JsYW1lLmM6MjI4NQogbXNnaWQgIlVzZSB0aGUgc2FtZSBvdXRwdXQgbW9kZSBhcyBnaXQtYW5ub3RhdGUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg2CiBtc2dpZCAiU2hvdyByYXcgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY2CisjOiBidWlsdGluL2JsYW1lLmM6MjI4NwogbXNnaWQgIlNob3cgbG9uZyBjb21taXQgU0hBMSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NworIzogYnVpbHRpbi9ibGFtZS5jOjIyODgKIG1zZ2lkICJTdXBwcmVzcyBhdXRob3IgbmFtZSBhbmQgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY4CisjOiBidWlsdGluL2JsYW1lLmM6MjI4OQogbXNnaWQgIlNob3cgYXV0aG9yIGVtYWlsIGluc3RlYWQgb2YgbmFtZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2OQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTAKIG1zZ2lkICJJZ25vcmUgd2hpdGVzcGFjZSBkaWZmZXJlbmNlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTEKIG1zZ2lkICJTcGVuZCBleHRyYSBjeWNsZXMgdG8gZmluZCBiZXR0ZXIgbWF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCiBtc2dpZCAiVXNlIHJldmlzaW9ucyBmcm9tIDxmaWxlPiBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2l0LXJldi1saXN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcyCisjOiBidWlsdGluL2JsYW1lLmM6MjI5MwogbXNnaWQgIlVzZSA8ZmlsZT4ncyBjb250ZW50cyBhcyB0aGUgZmluYWwgaW1hZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzMgYnVpbHRpbi9ibGFtZS5jOjIzNzQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk0IGJ1aWx0aW4vYmxhbWUuYzoyMjk1CiBtc2dpZCAic2NvcmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk0CiBtc2dpZCAiRmluZCBsaW5lIGNvcGllcyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTUKIG1zZ2lkICJGaW5kIGxpbmUgbW92ZW1lbnRzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzc1CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NgogbXNnaWQgIm4sbSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTYKIG1zZ2lkICJQcm9jZXNzIG9ubHkgbGluZSByYW5nZSBuLG0sIGNvdW50aW5nIGZyb20gMSIKIG1zZ3N0ciAiIgogCkBAIC0yNTc1LDggKzI2MzUsOCBAQAogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA1IGJ1aWx0aW4vYnJhbmNoLmM6ODExIGJ1aWx0aW4vYnJhbmNoLmM6ODMyCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjEzNjggYnVpbHRpbi9jb21taXQuYzoxMzY5Ci0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzAgYnVpbHRpbi9jb21taXQuYzoxMzcxIGJ1aWx0aW4vdGFnLmM6NDY4CisjOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjE0MzMgYnVpbHRpbi9jb21taXQuYzoxNDM0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzUgYnVpbHRpbi9jb21taXQuYzoxNDM2IGJ1aWx0aW4vdGFnLmM6NDY4CiBtc2dpZCAiY29tbWl0IgogbXNnc3RyICIiCiAKQEAgLTI2NDAsNyArMjcwMCw3IEBACiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgSEVBRCBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NjAgYnVpbHRpbi9jbG9uZS5jOjYxOQorIzogYnVpbHRpbi9icmFuY2guYzo4NjAgYnVpbHRpbi9jbG9uZS5jOjYzMAogbXNnaWQgIkhFQUQgbm90IGZvdW5kIGJlbG93IHJlZnMvaGVhZHMhIgogbXNnc3RyICIiCiAKQEAgLTI3NTMsNDMgKzI4MTMsNDMgQEAKIG1zZ2lkICJOZWVkIGEgcmVwb3NpdG9yeSB0byB1bmJ1bmRsZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE3NgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NQogbXNnaWQgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PHR5cGU+fC0tdGV4dGNvbnYpIDxvYmplY3Q+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxNzcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODYKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA8bGlzdF9vZl9vYmplY3RzPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MTk1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzIzCiBtc2dpZCAiPHR5cGU+IGNhbiBiZSBvbmUgb2Y6IGJsb2IsIHRyZWUsIGNvbW1pdCwgdGFnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTYKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjQKIG1zZ2lkICJzaG93IG9iamVjdCB0eXBlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjUKIG1zZ2lkICJzaG93IG9iamVjdCBzaXplIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTkKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjcKIG1zZ2lkICJleGl0IHdpdGggemVybyB3aGVuIHRoZXJlJ3Mgbm8gZXJyb3IiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwMAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyOAogbXNnaWQgInByZXR0eS1wcmludCBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDIKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzAKIG1zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjA0CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzMyCiBtc2dpZCAic2hvdyBpbmZvIGFuZCBjb250ZW50IG9mIG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzUKIG1zZ2lkICJzaG93IGluZm8gYWJvdXQgb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIiIKIApAQCAtMjgxNywzMCArMjg3Nyw1NSBAQAogbXNnaWQgImlucHV0IHBhdGhzIGFyZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCBjaGFyYWN0ZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA0NCBidWlsdGluL2djLmM6MTc3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU0IGJ1aWx0aW4vZ2MuYzoxNzcKIG1zZ2lkICJzdXBwcmVzcyBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDYKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MjYKK21zZ2lkICJzaG93IG5vbi1tYXRjaGluZyBpbnB1dCBwYXRocyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0MwogbXNnaWQgImNhbm5vdCBzcGVjaWZ5IHBhdGhuYW1lcyB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDkKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ2CiBtc2dpZCAiLXogb25seSBtYWtlcyBzZW5zZSB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTEKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ4CiBtc2dpZCAibm8gcGF0aCBzcGVjaWZpZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTUKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTUyCiBtc2dpZCAiLS1xdWlldCBpcyBvbmx5IHZhbGlkIHdpdGggYSBzaW5nbGUgcGF0aG5hbWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTcKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU0CiBtc2dpZCAiY2Fubm90IGhhdmUgYm90aCAtLXF1aWV0IGFuZCAtLXZlcmJvc2UiCiBtc2dzdHIgIiIKIAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTcKK21zZ2lkICItLW5vbi1tYXRjaGluZyBpcyBvbmx5IHZhbGlkIHdpdGggLS12ZXJib3NlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjgKK21zZ2lkICJnaXQgY2hlY2stbWFpbG1hcCBbb3B0aW9uc10gPGNvbnRhY3Q+Li4uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjEzCittc2dpZCAiYWxzbyByZWFkIGNvbnRhY3RzIGZyb20gc3RkaW4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHBhcnNlIGNvbnRhY3Q6ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjQ3Cittc2dpZCAibm8gY29udGFjdHMgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKICM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxMjYKIG1zZ2lkICJnaXQgY2hlY2tvdXQtaW5kZXggW29wdGlvbnNdIFstLV0gWzxmaWxlPi4uLl0iCiBtc2dzdHIgIiIKQEAgLTI5NTcsNDIgKzMwNDIsNDIgQEAKIG1zZ2lkICJDYW4gbm90IGRvIHJlZmxvZyBmb3IgJyVzJ1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzkKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlc2V0IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0NAorIzogYnVpbHRpbi9jaGVja291dC5jOjY0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJBbHJlYWR5IG9uICclcydcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGFuZCByZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTAgYnVpbHRpbi9jaGVja291dC5jOjk4NworIzogYnVpbHRpbi9jaGVja291dC5jOjY1NSBidWlsdGluL2NoZWNrb3V0LmM6OTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGEgbmV3IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1MgorIzogYnVpbHRpbi9jaGVja291dC5jOjY1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MDgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIC4uLiBhbmQgJWQgbW9yZS5cbiIKIG1zZ3N0ciAiIgogCiAjLiBUaGUgc2luZ3VsYXIgdmVyc2lvbgotIzogYnVpbHRpbi9jaGVja291dC5jOjcxNAorIzogYnVpbHRpbi9jaGVja291dC5jOjcxOQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV2FybmluZzogeW91IGFyZSBsZWF2aW5nICVkIGNvbW1pdCBiZWhpbmQsIG5vdCBjb25uZWN0ZWQgdG9cbiIKQEAgLTMwMDcsNyArMzA5Miw3IEBACiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzMyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJJZiB5b3Ugd2FudCB0byBrZWVwIHRoZW0gYnkgY3JlYXRpbmcgYSBuZXcgYnJhbmNoLCB0aGlzIG1heSBiZSBhIGdvb2QgdGltZVxuIgpAQCAtMzAxNyw0NTAgKzMxMDIsNTQ3IEBACiAiXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjc2NwogbXNnaWQgImludGVybmFsIGVycm9yIGluIHJldmlzaW9uIHdhbGsiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2NgorIzogYnVpbHRpbi9jaGVja291dC5jOjc3MQogbXNnaWQgIlByZXZpb3VzIEhFQUQgcG9zaXRpb24gd2FzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTMgYnVpbHRpbi9jaGVja291dC5jOjk4MgorIzogYnVpbHRpbi9jaGVja291dC5jOjc5OCBidWlsdGluL2NoZWNrb3V0LmM6OTkyCiBtc2dpZCAiWW91IGFyZSBvbiBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKIG1zZ3N0ciAiIgogCiAjLiBjYXNlICgxKQotIzogYnVpbHRpbi9jaGVja291dC5jOjkxOAorIzogYnVpbHRpbi9jaGVja291dC5jOjkyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZTogJXMiCiBtc2dzdHIgIiIKIAogIy4gY2FzZSAoMSk6IHdhbnQgYSB0cmVlCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTk2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwNgogbXNnaWQgInBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTkgYnVpbHRpbi9jaGVja291dC5jOjEwMDMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDcgYnVpbHRpbi9jaGVja291dC5jOjEwMTAgYnVpbHRpbi9jaGVja291dC5jOjEwMTUKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxNyBidWlsdGluL2NoZWNrb3V0LmM6MTAyMCBidWlsdGluL2NoZWNrb3V0LmM6MTAyNQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBzd2l0Y2ggYnJhbmNoIHRvIGEgbm9uLWNvbW1pdCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ3IGJ1aWx0aW4vY2xvbmUuYzo5MAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTUgYnVpbHRpbi9jaGVja291dC5jOjEwNTcgYnVpbHRpbi9jbG9uZS5jOjg5CiAjOiBidWlsdGluL3JlbW90ZS5jOjE2OSBidWlsdGluL3JlbW90ZS5jOjE3MQogbXNnaWQgImJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTYKIG1zZ2lkICJjcmVhdGUgYW5kIGNoZWNrb3V0IGEgbmV3IGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0OAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTgKIG1zZ2lkICJjcmVhdGUvcmVzZXQgYW5kIGNoZWNrb3V0IGEgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OQogbXNnaWQgImNyZWF0ZSByZWZsb2cgZm9yIG5ldyBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYwCiBtc2dpZCAiZGV0YWNoIHRoZSBIRUFEIGF0IG5hbWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjEKIG1zZ2lkICJzZXQgdXBzdHJlYW0gaW5mbyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjMKIG1zZ2lkICJuZXcgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjQKIG1zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY2CiBtc2dpZCAiY2hlY2tvdXQgdGhlaXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY4CiBtc2dpZCAiZm9yY2UgY2hlY2tvdXQgKHRocm93IGF3YXkgbG9jYWwgbW9kaWZpY2F0aW9ucykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY5CiBtc2dpZCAicGVyZm9ybSBhIDMtd2F5IG1lcmdlIHdpdGggdGhlIG5ldyBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAgYnVpbHRpbi9tZXJnZS5jOjIxNworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzAgYnVpbHRpbi9tZXJnZS5jOjIzMgogbXNnaWQgInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MSBidWlsdGluL2xvZy5jOjExNTggcGFyc2Utb3B0aW9ucy5oOjI0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzEgYnVpbHRpbi9sb2cuYzoxMjA4IHBhcnNlLW9wdGlvbnMuaDoyNDkKIG1zZ2lkICJzdHlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzIKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3NQogbXNnaWQgImRvIG5vdCBsaW1pdCBwYXRoc3BlY3MgdG8gc3BhcnNlIGVudHJpZXMgb25seSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzcKIG1zZ2lkICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAxCiBtc2dpZCAiLWIsIC1CIGFuZCAtLW9ycGhhbiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExOAogbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTExNQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMjUKIG1zZ2lkICJNaXNzaW5nIGJyYW5jaCBuYW1lOyB0cnkgLWIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYwCiBtc2dpZCAiaW52YWxpZCBwYXRoIHNwZWNpZmljYXRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNTcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS5cbiIKICJEaWQgeW91IGludGVuZCB0byBjaGVja291dCAnJXMnIHdoaWNoIGNhbiBub3QgYmUgcmVzb2x2ZWQgYXMgY29tbWl0PyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBkb2VzIG5vdCB0YWtlIGEgcGF0aCBhcmd1bWVudCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTY2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3NgogbXNnaWQgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKICJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjAKLW1zZ2lkICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIgorIzogYnVpbHRpbi9jbGVhbi5jOjI1Cittc2dpZCAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNQorIzogYnVpbHRpbi9jbGVhbi5jOjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHJlbW92ZSAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNgorIzogYnVpbHRpbi9jbGVhbi5jOjMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwaW5nIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjcKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMgogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3VsZCBza2lwIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjgKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVtb3ZlICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjAKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTMKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIG51bWJlcmVkIGl0ZW1cbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIHNlbGVjdCBub3RoaW5nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTcKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCisiMy01ICAgICAgICAtIHNlbGVjdCBhIHJhbmdlIG9mIGl0ZW1zXG4iCisiMi0zLDYtOSAgICAtIHNlbGVjdCBtdWx0aXBsZSByYW5nZXNcbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIi0uLi4gICAgICAgLSB1bnNlbGVjdCBzcGVjaWZpZWQgaXRlbXNcbiIKKyIqICAgICAgICAgIC0gY2hvb3NlIGFsbCBpdGVtc1xuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJIdWggKCVzKT8iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnB1dCBpZ25vcmUgcGF0dGVybnM+PiAiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBDYW5ub3QgZmluZCBpdGVtcyBtYXRjaGVkIGJ5OiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzE2Cittc2dpZCAiU2VsZWN0IGl0ZW1zIHRvIGRlbGV0ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW92ZSAlcz8gIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODEKK21zZ2lkICJCeWUuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODkKK21zZ2lkICIiCisiY2xlYW4gICAgICAgICAgICAgICAtIHN0YXJ0IGNsZWFuaW5nXG4iCisiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIGV4Y2x1ZGUgaXRlbXMgZnJvbSBkZWxldGlvblxuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBzZWxlY3QgaXRlbXMgdG8gYmUgZGVsZXRlZCBieSBudW1iZXJzXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIGNvbmZpcm0gZWFjaCBkZWxldGlvbiAobGlrZSBcInJtIC1pXCIpXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIHN0b3AgY2xlYW5pbmdcbiIKKyJoZWxwICAgICAgICAgICAgICAgIC0gdGhpcyBzY3JlZW5cbiIKKyI/ICAgICAgICAgICAgICAgICAgIC0gaGVscCBmb3IgcHJvbXB0IHNlbGVjdGlvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE2Cittc2dpZCAiKioqIENvbW1hbmRzICoqKiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE3Cittc2dpZCAiV2hhdCBub3ciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgyNQorbXNnaWQgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW06IgorbXNnaWRfcGx1cmFsICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtczoiCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODQyCittc2dpZCAiTm8gbW9yZSBmaWxlcyB0byBjbGVhbiwgZXhpdGluZy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3NAogbXNnaWQgImRvIG5vdCBwcmludCBuYW1lcyBvZiBmaWxlcyByZW1vdmVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjIKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzYKIG1zZ2lkICJmb3JjZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY0CisjOiBidWlsdGluL2NsZWFuLmM6ODc3Cittc2dpZCAiaW50ZXJhY3RpdmUgY2xlYW5pbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3OQogbXNnaWQgInJlbW92ZSB3aG9sZSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY1IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTIgYnVpbHRpbi9ncmVwLmM6NzE3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg3IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzEgYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorIzogYnVpbHRpbi9jbGVhbi5jOjg4MCBidWlsdGluL2Rlc2NyaWJlLmM6NDIwIGJ1aWx0aW4vZ3JlcC5jOjcxNgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MyBidWlsdGluL25hbWUtcmV2LmM6MzE1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKIG1zZ2lkICJwYXR0ZXJuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODEKIG1zZ2lkICJhZGQgPHBhdHRlcm4+IHRvIGlnbm9yZSBydWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY3CisjOiBidWlsdGluL2NsZWFuLmM6ODgyCiBtc2dpZCAicmVtb3ZlIGlnbm9yZWQgZmlsZXMsIHRvbyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY5CisjOiBidWlsdGluL2NsZWFuLmM6ODg0CiBtc2dpZCAicmVtb3ZlIG9ubHkgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTg3CisjOiBidWlsdGluL2NsZWFuLmM6OTAyCiBtc2dpZCAiLXggYW5kIC1YIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxOTEKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDYKIG1zZ2lkICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIHNldCB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gY2xlYW4iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jbGVhbi5jOjE5NAotbXNnaWQgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvICIKKyJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgogImNsZWFuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNworIzogYnVpbHRpbi9jbGVhbi5jOjkwOQorbXNnaWQgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtaSwgLW4gbm9yIC1mIGdpdmVuOyAiCisicmVmdXNpbmcgdG8gY2xlYW4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjM2CiBtc2dpZCAiZ2l0IGNsb25lIFtvcHRpb25zXSBbLS1dIDxyZXBvPiBbPGRpcj5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NSBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIxNAotIzogYnVpbHRpbi9wdXNoLmM6NDM2CisjOiBidWlsdGluL2Nsb25lLmM6NjQgYnVpbHRpbi9mZXRjaC5jOjgyIGJ1aWx0aW4vbWVyZ2UuYzoyMjkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MgogbXNnaWQgImZvcmNlIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NgogbXNnaWQgImRvbid0IGNyZWF0ZSBhIGNoZWNrb3V0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2OCBidWlsdGluL2Nsb25lLmM6NzAgYnVpbHRpbi9pbml0LWRiLmM6NDg4CisjOiBidWlsdGluL2Nsb25lLmM6NjcgYnVpbHRpbi9jbG9uZS5jOjY5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4OAogbXNnaWQgImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3MgogbXNnaWQgImNyZWF0ZSBhIG1pcnJvciByZXBvc2l0b3J5IChpbXBsaWVzIGJhcmUpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NQorIzogYnVpbHRpbi9jbG9uZS5jOjc0CiBtc2dpZCAidG8gY2xvbmUgZnJvbSBhIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc3CisjOiBidWlsdGluL2Nsb25lLmM6NzYKIG1zZ2lkICJkb24ndCB1c2UgbG9jYWwgaGFyZGxpbmtzLCBhbHdheXMgY29weSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OAogbXNnaWQgInNldHVwIGFzIHNoYXJlZCByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MSBidWlsdGluL2Nsb25lLmM6ODMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MCBidWlsdGluL2Nsb25lLmM6ODIKIG1zZ2lkICJpbml0aWFsaXplIHN1Ym1vZHVsZXMgaW4gdGhlIGNsb25lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MyBidWlsdGluL2luaXQtZGIuYzo0ODUKIG1zZ2lkICJ0ZW1wbGF0ZS1kaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg1IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NgorIzogYnVpbHRpbi9jbG9uZS5jOjg0IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NgogbXNnaWQgImRpcmVjdG9yeSBmcm9tIHdoaWNoIHRlbXBsYXRlcyB3aWxsIGJlIHVzZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg3CisjOiBidWlsdGluL2Nsb25lLmM6ODYKIG1zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODggYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAorIzogYnVpbHRpbi9jbG9uZS5jOjg3IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKIG1zZ2lkICJuYW1lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jbG9uZS5jOjg4CiBtc2dpZCAidXNlIDxuYW1lPiBpbnN0ZWFkIG9mICdvcmlnaW4nIHRvIHRyYWNrIHVwc3RyZWFtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MQorIzogYnVpbHRpbi9jbG9uZS5jOjkwCiBtc2dpZCAiY2hlY2tvdXQgPGJyYW5jaD4gaW5zdGVhZCBvZiB0aGUgcmVtb3RlJ3MgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MgogbXNnaWQgInBhdGggdG8gZ2l0LXVwbG9hZC1wYWNrIG9uIHRoZSByZW1vdGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk0IGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MyBidWlsdGluL2ZldGNoLmM6ODMgYnVpbHRpbi9ncmVwLmM6NjYxCiBtc2dpZCAiZGVwdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk1CisjOiBidWlsdGluL2Nsb25lLmM6OTQKIG1zZ2lkICJjcmVhdGUgYSBzaGFsbG93IGNsb25lIG9mIHRoYXQgZGVwdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk3CisjOiBidWlsdGluL2Nsb25lLmM6OTYKIG1zZ2lkICJjbG9uZSBvbmx5IG9uZSBicmFuY2gsIEhFQUQgb3IgLS1icmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAogbXNnaWQgImdpdGRpciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTkgYnVpbHRpbi9pbml0LWRiLmM6NDk1CisjOiBidWlsdGluL2Nsb25lLmM6OTggYnVpbHRpbi9pbml0LWRiLmM6NDk1CiBtc2dpZCAic2VwYXJhdGUgZ2l0IGRpciBmcm9tIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJrZXk9dmFsdWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjEwMQorIzogYnVpbHRpbi9jbG9uZS5jOjEwMAogbXNnaWQgInNldCBjb25maWcgaW5zaWRlIHRoZSBuZXcgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MjU0CisjOiBidWlsdGluL2Nsb25lLmM6MjUzCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5ICclcycgaXMgbm90IGEgbG9jYWwgcmVwb3NpdG9yeS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMxNworIzogYnVpbHRpbi9jbG9uZS5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTkgYnVpbHRpbi9kaWZmLmM6NzcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTggYnVpbHRpbi9kaWZmLmM6NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzIxCisjOiBidWlsdGluL2Nsb25lLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGV4aXN0cyBhbmQgaXMgbm90IGEgZGlyZWN0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMzUKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzU3CisjOiBidWlsdGluL2Nsb25lLmM6MzU2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGluayAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNvcHkgZmlsZSB0byAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozODQKKyM6IGJ1aWx0aW4vY2xvbmUuYzozODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZG9uZS5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzk3CisjOiBidWlsdGluL2Nsb25lLmM6Mzk2CiBtc2dpZCAiIgogIkNsb25lIHN1Y2NlZWRlZCwgYnV0IGNoZWNrb3V0IGZhaWxlZC5cbiIKICJZb3UgY2FuIGluc3BlY3Qgd2hhdCB3YXMgY2hlY2tlZCBvdXQgd2l0aCAnZ2l0IHN0YXR1cydcbiIKICJhbmQgcmV0cnkgdGhlIGNoZWNrb3V0IHdpdGggJ2dpdCBjaGVja291dCAtZiBIRUFEJ1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo0NzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZpbmQgcmVtb3RlIGJyYW5jaCAlcyB0byBjbG9uZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjU1MAorIzogYnVpbHRpbi9jbG9uZS5jOjU1NQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGVja2luZyBjb25uZWN0aXZpdHkuLi4gIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTgKIG1zZ2lkICJyZW1vdGUgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjEwCisjOiBidWlsdGluL2Nsb25lLmM6NTYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRvbmVcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Nsb25lLmM6NjIxCiBtc2dpZCAicmVtb3RlIEhFQUQgcmVmZXJzIHRvIG5vbmV4aXN0ZW50IHJlZiwgdW5hYmxlIHRvIGNoZWNrb3V0LlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NDEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTIKIG1zZ2lkICJ1bmFibGUgdG8gY2hlY2tvdXQgd29ya2luZyB0cmVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NDkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NjAKIG1zZ2lkICJUb28gbWFueSBhcmd1bWVudHMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NTMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NjQKIG1zZ2lkICJZb3UgbXVzdCBzcGVjaWZ5IGEgcmVwb3NpdG9yeSB0byBjbG9uZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2NAorIzogYnVpbHRpbi9jbG9uZS5jOjc3NQogIywgYy1mb3JtYXQKIG1zZ2lkICItLWJhcmUgYW5kIC0tb3JpZ2luICVzIG9wdGlvbnMgYXJlIGluY29tcGF0aWJsZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2NworIzogYnVpbHRpbi9jbG9uZS5jOjc3OAogbXNnaWQgIi0tYmFyZSBhbmQgLS1zZXBhcmF0ZS1naXQtZGlyIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVwb3NpdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTYKIG1zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzk1CisjOiBidWlsdGluL2Nsb25lLmM6Nzk4Cittc2dpZCAiLS1sb2NhbCBpcyBpZ25vcmVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVzdGluYXRpb24gcGF0aCAnJXMnIGFscmVhZHkgZXhpc3RzIGFuZCBpcyBub3QgYW4gZW1wdHkgZGlyZWN0b3J5LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODA1CisjOiBidWlsdGluL2Nsb25lLmM6ODE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIndvcmtpbmcgdHJlZSAnJXMnIGFscmVhZHkgZXhpc3RzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODE4IGJ1aWx0aW4vY2xvbmUuYzo4MzAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzEgYnVpbHRpbi9jbG9uZS5jOjg0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGxlYWRpbmcgZGlyZWN0b3JpZXMgb2YgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODIxCisjOiBidWlsdGluL2Nsb25lLmM6ODM0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgd29yayB0cmVlIGRpciAnJXMnLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODQwCisjOiBidWlsdGluL2Nsb25lLmM6ODUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNsb25pbmcgaW50byBiYXJlIHJlcG9zaXRvcnkgJyVzJy4uLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NDIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvICclcycuLi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODc3CisjOiBidWlsdGluL2Nsb25lLmM6ODkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGNsb25lICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MjYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3RlIGJyYW5jaCAlcyBub3QgZm91bmQgaW4gdXBzdHJlYW0gJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzMworIzogYnVpbHRpbi9jbG9uZS5jOjk0OQogbXNnaWQgIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgcmVwb3NpdG9yeS4iCiBtc2dzdHIgIiIKIApAQCAtMzQ5NiwxNSArMzY3OCwxNSBAQAogbXNnaWQgIi0tY29tbWFuZCBtdXN0IGJlIHRoZSBmaXJzdCBhcmd1bWVudCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM0CisjOiBidWlsdGluL2NvbW1pdC5jOjM1CiBtc2dpZCAiZ2l0IGNvbW1pdCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDAKIG1zZ2lkICJnaXQgc3RhdHVzIFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0NAorIzogYnVpbHRpbi9jb21taXQuYzo0NQogbXNnaWQgIiIKICJZb3VyIG5hbWUgYW5kIGVtYWlsIGFkZHJlc3Mgd2VyZSBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWRcbiIKICJvbiB5b3VyIHVzZXJuYW1lIGFuZCBob3N0bmFtZS4gUGxlYXNlIGNoZWNrIHRoYXQgdGhleSBhcmUgYWNjdXJhdGUuXG4iCkBAIC0zNTE4LDExMCArMzcwMCwxMjMgQEAKICIgICAgZ2l0IGNvbW1pdCAtLWFtZW5kIC0tcmVzZXQtYXV0aG9yXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NgorIzogYnVpbHRpbi9jb21taXQuYzo1NwogbXNnaWQgIiIKICJZb3UgYXNrZWQgdG8gYW1lbmQgdGhlIG1vc3QgcmVjZW50IGNvbW1pdCwgYnV0IGRvaW5nIHNvIHdvdWxkIG1ha2VcbiIKICJpdCBlbXB0eS4gWW91IGNhbiByZXBlYXQgeW91ciBjb21tYW5kIHdpdGggLS1hbGxvdy1lbXB0eSwgb3IgeW91IGNhblxuIgogInJlbW92ZSB0aGUgY29tbWl0IGVudGlyZWx5IHdpdGggXCJnaXQgcmVzZXQgSEVBRF5cIi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxCisjOiBidWlsdGluL2NvbW1pdC5jOjYyCiBtc2dpZCAiIgogIlRoZSBwcmV2aW91cyBjaGVycnktcGljayBpcyBub3cgZW1wdHksIHBvc3NpYmx5IGR1ZSB0byBjb25mbGljdCByZXNvbHV0aW9uLlxuIgogIklmIHlvdSB3aXNoIHRvIGNvbW1pdCBpdCBhbnl3YXksIHVzZTpcbiIKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCi0iT3RoZXJ3aXNlLCBwbGVhc2UgdXNlICdnaXQgcmVzZXQnXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoyNjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjkKK21zZ2lkICJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjcyCittc2dpZCAiIgorIklmIHlvdSB3aXNoIHRvIHNraXAgdGhpcyBjb21taXQsIHVzZTpcbiIKKyJcbiIKKyIgICAgZ2l0IHJlc2V0XG4iCisiXG4iCisiVGhlbiBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIgd2lsbCByZXN1bWUgY2hlcnJ5LXBpY2tpbmdcbiIKKyJ0aGUgcmVtYWluaW5nIGNvbW1pdHMuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoyNzkKIG1zZ2lkICJmYWlsZWQgdG8gdW5wYWNrIEhFQUQgdHJlZSBvYmplY3QiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIxCiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzI3CiBtc2dpZCAiaW50ZXJhY3RpdmUgYWRkIGZhaWxlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM0MSBidWlsdGluL2NvbW1pdC5jOjM2MiBidWlsdGluL2NvbW1pdC5jOjQxMgorIzogYnVpbHRpbi9jb21taXQuYzozNjAgYnVpbHRpbi9jb21taXQuYzozODEgYnVpbHRpbi9jb21taXQuYzo0MzEKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbmV3X2luZGV4IGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDEyCiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgbWVyZ2UuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6Mzk1CisjOiBidWlsdGluL2NvbW1pdC5jOjQxNAogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIGNoZXJyeS1waWNrLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQwNQorIzogYnVpbHRpbi9jb21taXQuYzo0MjQKIG1zZ2lkICJjYW5ub3QgcmVhZCB0aGUgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDQ0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRlbXBvcmFyeSBpbmRleCBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTEzIGJ1aWx0aW4vY29tbWl0LmM6NTE5CisjOiBidWlsdGluL2NvbW1pdC5jOjUzNSBidWlsdGluL2NvbW1pdC5jOjU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGNvbW1pdDogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTYzCiBtc2dpZCAibWFsZm9ybWVkIC0tYXV0aG9yIHBhcmFtZXRlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU2MgorIzogYnVpbHRpbi9jb21taXQuYzo1ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlkZW50IHN0cmluZzogJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYwMCBidWlsdGluL2NvbW1pdC5jOjYzMyBidWlsdGluL2NvbW1pdC5jOjk1NgorIzogYnVpbHRpbi9jb21taXQuYzo2MjEgYnVpbHRpbi9jb21taXQuYzo2NTQgYnVpbHRpbi9jb21taXQuYzo5ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGxvb2t1cCBjb21taXQgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MTIgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MAorIzogYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MQogIywgYy1mb3JtYXQKIG1zZ2lkICIocmVhZGluZyBsb2cgbWVzc2FnZSBmcm9tIHN0YW5kYXJkIGlucHV0KVxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjE0CisjOiBidWlsdGluL2NvbW1pdC5jOjYzNQogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjE4CisjOiBidWlsdGluL2NvbW1pdC5jOjYzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZmlsZSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjI0CisjOiBidWlsdGluL2NvbW1pdC5jOjY0NQogbXNnaWQgImNvbW1pdCBoYXMgZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0MAorIzogYnVpbHRpbi9jb21taXQuYzo2NjEKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NU0ciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjY1CiBtc2dpZCAiY291bGQgbm90IHJlYWQgU1FVQVNIX01TRyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0OAorIzogYnVpbHRpbi9jb21taXQuYzo2NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcwOQorIzogYnVpbHRpbi9jb21taXQuYzo3MzAKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgY29tbWl0IHRlbXBsYXRlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzIwCisjOiBidWlsdGluL2NvbW1pdC5jOjc0MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC0zNjMxLDcgKzM4MjYsNyBAQAogImFuZCB0cnkgYWdhaW4uXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM2NDEsMTQgKzM4MzYsMTQgQEAKICJhbmQgdHJ5IGFnYWluLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzM3CisjOiBidWlsdGluL2NvbW1pdC5jOjc1OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgogIndpdGggJyVjJyB3aWxsIGJlIGlnbm9yZWQsIGFuZCBhbiBlbXB0eSBtZXNzYWdlIGFib3J0cyB0aGUgY29tbWl0LlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzQyCisjOiBidWlsdGluL2NvbW1pdC5jOjc2MwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgpAQCAtMzY1NiwzNTEgKzM4NTEsMzUxIEBACiAiQW4gZW1wdHkgbWVzc2FnZSBhYm9ydHMgdGhlIGNvbW1pdC5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc1NQorIzogYnVpbHRpbi9jb21taXQuYzo3NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNBdXRob3I6ICAgICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzYyCisjOiBidWlsdGluL2NvbW1pdC5jOjc4MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0NvbW1pdHRlcjogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3ODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODAzCiBtc2dpZCAiQ2Fubm90IHJlYWQgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODQ1CiBtc2dpZCAiRXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MzQgYnVpbHRpbi90YWcuYzozNTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODYwIGJ1aWx0aW4vdGFnLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG1lc3NhZ2UgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjkzMQorIzogYnVpbHRpbi9jb21taXQuYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gZXhpc3RpbmcgYXV0aG9yIGZvdW5kIHdpdGggJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk0NiBidWlsdGluL2NvbW1pdC5jOjExNDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTcyIGJ1aWx0aW4vY29tbWl0LmM6MTIwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHVudHJhY2tlZCBmaWxlcyBtb2RlICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwOQorbXNnaWQgIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEwMzkKIG1zZ2lkICJVc2luZyBib3RoIC0tcmVzZXQtYXV0aG9yIGFuZCAtLWF1dGhvciBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTg3CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTAKIG1zZ2lkICJZb3UgaGF2ZSBub3RoaW5nIHRvIGFtZW5kLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5MAorIzogYnVpbHRpbi9jb21taXQuYzoxMDUzCiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UgLS0gY2Fubm90IGFtZW5kLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5MgorIzogYnVpbHRpbi9jb21taXQuYzoxMDU1CiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY2hlcnJ5LXBpY2sgLS0gY2Fubm90IGFtZW5kLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5NQorIzogYnVpbHRpbi9jb21taXQuYzoxMDU4CiBtc2dpZCAiT3B0aW9ucyAtLXNxdWFzaCBhbmQgLS1maXh1cCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA2OAogbXNnaWQgIk9ubHkgb25lIG9mIC1jLy1DLy1GLy0tZml4dXAgY2FuIGJlIHVzZWQuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNworIzogYnVpbHRpbi9jb21taXQuYzoxMDcwCiBtc2dpZCAiT3B0aW9uIC1tIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIC1jLy1DLy1GLy0tZml4dXAuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAxNQorIzogYnVpbHRpbi9jb21taXQuYzoxMDc4CiBtc2dpZCAiLS1yZXNldC1hdXRob3IgY2FuIGJlIHVzZWQgb25seSB3aXRoIC1DLCAtYyBvciAtLWFtZW5kLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NQogbXNnaWQgIk9ubHkgb25lIG9mIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIGNhbiBiZSB1c2VkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NwogbXNnaWQgIk5vIHBhdGhzIHdpdGggLS1pbmNsdWRlLy0tb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5OQogbXNnaWQgIkNsZXZlci4uLiBhbWVuZGluZyB0aGUgbGFzdCBvbmUgd2l0aCBkaXJ0eSBpbmRleC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM4CisjOiBidWlsdGluL2NvbW1pdC5jOjExMDEKIG1zZ2lkICJFeHBsaWNpdCBwYXRocyBzcGVjaWZpZWQgd2l0aG91dCAtaSBub3IgLW87IGFzc3VtaW5nIC0tb25seSBwYXRocy4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNDggYnVpbHRpbi90YWcuYzo1NzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTExMSBidWlsdGluL3RhZy5jOjU3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGNsZWFudXAgbW9kZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTExNgogbXNnaWQgIlBhdGhzIHdpdGggLWEgZG9lcyBub3QgbWFrZSBzZW5zZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDU5IGJ1aWx0aW4vY29tbWl0LmM6MTE5NAotbXNnaWQgIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTQgYnVpbHRpbi9jb21taXQuYzoxMzkwCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjIgYnVpbHRpbi9jb21taXQuYzoxNDU1CiBtc2dpZCAic2hvdyBzdGF0dXMgY29uY2lzZWx5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1NiBidWlsdGluL2NvbW1pdC5jOjEzOTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNCBidWlsdGluL2NvbW1pdC5jOjE0NTcKIG1zZ2lkICJzaG93IGJyYW5jaCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTggYnVpbHRpbi9jb21taXQuYzoxMzk0IGJ1aWx0aW4vcHVzaC5jOjQyNgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI2IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OSBidWlsdGluL3B1c2guYzo0NTIKIG1zZ2lkICJtYWNoaW5lLXJlYWRhYmxlIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjEgYnVpbHRpbi9jb21taXQuYzoxMzk2CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjkgYnVpbHRpbi9jb21taXQuYzoxNDYxCiBtc2dpZCAic2hvdyBzdGF0dXMgaW4gbG9uZyBmb3JtYXQgKGRlZmF1bHQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NCBidWlsdGluL2NvbW1pdC5jOjEzOTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzMiBidWlsdGluL2NvbW1pdC5jOjE0NjQKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjYgYnVpbHRpbi9jb21taXQuYzoxNDAyIGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTkKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjIgYnVpbHRpbi90YWcuYzo0NTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNCBidWlsdGluL2NvbW1pdC5jOjE0NjcgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MCBidWlsdGluL3RhZy5jOjQ1OQogbXNnaWQgIm1vZGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY3IGJ1aWx0aW4vY29tbWl0LmM6MTQwMgorIzogYnVpbHRpbi9jb21taXQuYzoxMjM1IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NwogbXNnaWQgInNob3cgdW50cmFja2VkIGZpbGVzLCBvcHRpb25hbCBtb2RlczogYWxsLCBub3JtYWwsIG5vLiAoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOAogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzEgcGFyc2Utb3B0aW9ucy5oOjE1MQorIzogYnVpbHRpbi9jb21taXQuYzoxMjM5IHBhcnNlLW9wdGlvbnMuaDoxNTQKIG1zZ2lkICJ3aGVuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MgorIzogYnVpbHRpbi9jb21taXQuYzoxMjQwCiBtc2dpZCAiIgogImlnbm9yZSBjaGFuZ2VzIHRvIHN1Ym1vZHVsZXMsIG9wdGlvbmFsIHdoZW46IGFsbCwgZGlydHksIHVudHJhY2tlZC4gIgogIihEZWZhdWx0OiBhbGwpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3NAorIzogYnVpbHRpbi9jb21taXQuYzoxMjQyCiBtc2dpZCAibGlzdCB1bnRyYWNrZWQgZmlsZXMgaW4gY29sdW1ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxMwogbXNnaWQgImNvdWxkbid0IGxvb2sgdXAgbmV3bHkgY3JlYXRlZCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjUwCisjOiBidWlsdGluL2NvbW1pdC5jOjEzMTUKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgbmV3bHkgY3JlYXRlZCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjkxCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNTYKIG1zZ2lkICJkZXRhY2hlZCBIRUFEIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI5MworIzogYnVpbHRpbi9jb21taXQuYzoxMzU4CiBtc2dpZCAiIChyb290LWNvbW1pdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjUKIG1zZ2lkICJzdXBwcmVzcyBzdW1tYXJ5IGFmdGVyIHN1Y2Nlc3NmdWwgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDI2CiBtc2dpZCAic2hvdyBkaWZmIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MworIzogYnVpbHRpbi9jb21taXQuYzoxNDI4CiBtc2dpZCAiQ29tbWl0IG1lc3NhZ2Ugb3B0aW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjQgYnVpbHRpbi90YWcuYzo0NTcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyOSBidWlsdGluL3RhZy5jOjQ1NwogbXNnaWQgInJlYWQgbWVzc2FnZSBmcm9tIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzAKIG1zZ2lkICJhdXRob3IiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzAKIG1zZ2lkICJvdmVycmlkZSBhdXRob3IgZm9yIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjYgYnVpbHRpbi9nYy5jOjE3OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDMxIGJ1aWx0aW4vZ2MuYzoxNzgKIG1zZ2lkICJkYXRlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDMxCiBtc2dpZCAib3ZlcnJpZGUgZGF0ZSBmb3IgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NyBidWlsdGluL21lcmdlLmM6MjA4IGJ1aWx0aW4vbm90ZXMuYzo1MzMKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OTAgYnVpbHRpbi90YWcuYzo0NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMiBidWlsdGluL21lcmdlLmM6MjIzIGJ1aWx0aW4vbm90ZXMuYzo0MDUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NjIgYnVpbHRpbi90YWcuYzo0NTUKIG1zZ2lkICJtZXNzYWdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NworIzogYnVpbHRpbi9jb21taXQuYzoxNDMyCiBtc2dpZCAiY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzMKIG1zZ2lkICJyZXVzZSBhbmQgZWRpdCBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNAogbXNnaWQgInJldXNlIG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM1CiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gZml4dXAgc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNgogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIHNxdWFzaCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDM3CiBtc2dpZCAidGhlIGNvbW1pdCBpcyBhdXRob3JlZCBieSBtZSBub3cgKHVzZWQgd2l0aCAtQy8tYy8tLWFtZW5kKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzMgYnVpbHRpbi9sb2cuYzoxMTEzIGJ1aWx0aW4vcmV2ZXJ0LmM6MTA5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzggYnVpbHRpbi9sb2cuYzoxMTYwIGJ1aWx0aW4vcmV2ZXJ0LmM6MTExCiBtc2dpZCAiYWRkIFNpZ25lZC1vZmYtYnk6IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM5CiBtc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDQwCiBtc2dpZCAiZm9yY2UgZWRpdCBvZiBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKIG1zZ2lkICJkZWZhdWx0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NiBidWlsdGluL3RhZy5jOjQ2MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDQxIGJ1aWx0aW4vdGFnLmM6NDYwCiBtc2dpZCAiaG93IHRvIHN0cmlwIHNwYWNlcyBhbmQgI2NvbW1lbnRzIGZyb20gbWVzc2FnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MgogbXNnaWQgImluY2x1ZGUgc3RhdHVzIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3OCBidWlsdGluL21lcmdlLmM6MjE1IGJ1aWx0aW4vdGFnLmM6NDYxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDMgYnVpbHRpbi9tZXJnZS5jOjIzMCBidWlsdGluL3RhZy5jOjQ2MQogbXNnaWQgImtleSBpZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzkgYnVpbHRpbi9tZXJnZS5jOjIxNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ0IGJ1aWx0aW4vbWVyZ2UuYzoyMzEKIG1zZ2lkICJHUEcgc2lnbiBjb21taXQiCiBtc2dzdHIgIiIKIAogIy4gZW5kIGNvbW1pdCBtZXNzYWdlIG9wdGlvbnMKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ3CiBtc2dpZCAiQ29tbWl0IGNvbnRlbnRzIG9wdGlvbnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzgzCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDgKIG1zZ2lkICJjb21taXQgYWxsIGNoYW5nZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDkKIG1zZ2lkICJhZGQgc3BlY2lmaWVkIGZpbGVzIHRvIGluZGV4IGZvciBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTAKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MQogbXNnaWQgImludGVyYWN0aXZlbHkgYWRkIGNoYW5nZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTIKIG1zZ2lkICJjb21taXQgb25seSBzcGVjaWZpZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTMKIG1zZ2lkICJieXBhc3MgcHJlLWNvbW1pdCBob29rIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU0CiBtc2dpZCAic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NQogbXNnaWQgImFtZW5kIHByZXZpb3VzIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NgogbXNnaWQgImJ5cGFzcyBwb3N0LXJld3JpdGUgaG9vayIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3MQogbXNnaWQgIm9rIHRvIHJlY29yZCBhbiBlbXB0eSBjaGFuZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDA5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzQKIG1zZ2lkICJvayB0byByZWNvcmQgYSBjaGFuZ2Ugd2l0aCBhbiBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQorIzogYnVpbHRpbi9jb21taXQuYzoxNTA3CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIEhFQUQgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3OSBidWlsdGluL21lcmdlLmM6NTEwCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NDUgYnVpbHRpbi9tZXJnZS5jOjUyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIGZvciByZWFkaW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ4NgorIzogYnVpbHRpbi9jb21taXQuYzoxNTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvcnJ1cHQgTUVSR0VfSEVBRCBmaWxlICglcykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDkzCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NTkKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NT0RFIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUxMgorIzogYnVpbHRpbi9jb21taXQuYzoxNTc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGNvbW1pdCBtZXNzYWdlOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJBYm9ydGluZyBjb21taXQ7IHlvdSBkaWQgbm90IGVkaXQgdGhlIG1lc3NhZ2UuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTMxCisjOiBidWlsdGluL2NvbW1pdC5jOjE1OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWJvcnRpbmcgY29tbWl0IGR1ZSB0byBlbXB0eSBjb21taXQgbWVzc2FnZS5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NDYgYnVpbHRpbi9tZXJnZS5jOjg0NyBidWlsdGluL21lcmdlLmM6ODcyCisjOiBidWlsdGluL2NvbW1pdC5jOjE2MTIgYnVpbHRpbi9tZXJnZS5jOjg2MSBidWlsdGluL21lcmdlLmM6ODg2CiBtc2dpZCAiZmFpbGVkIHRvIHdyaXRlIGNvbW1pdCBvYmplY3QiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTY3CisjOiBidWlsdGluL2NvbW1pdC5jOjE2MzMKIG1zZ2lkICJjYW5ub3QgbG9jayBIRUFEIHJlZiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzNwogbXNnaWQgImNhbm5vdCB1cGRhdGUgSEVBRCByZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTgyCisjOiBidWlsdGluL2NvbW1pdC5jOjE2NDgKIG1zZ2lkICIiCiAiUmVwb3NpdG9yeSBoYXMgYmVlbiB1cGRhdGVkLCBidXQgdW5hYmxlIHRvIHdyaXRlXG4iCiAibmV3X2luZGV4IGZpbGUuIENoZWNrIHRoYXQgZGlzayBpcyBub3QgZnVsbCBvciBxdW90YSBpc1xuIgpAQCAtNDAxMSwxMTUgKzQyMDYsMTIzIEBACiBtc2dpZCAiZ2l0IGNvbmZpZyBbb3B0aW9uc10iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MQorIzogYnVpbHRpbi9jb25maWcuYzo1MgogbXNnaWQgIkNvbmZpZyBmaWxlIGxvY2F0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKIG1zZ2lkICJ1c2UgZ2xvYmFsIGNvbmZpZyBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKIG1zZ2lkICJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKIG1zZ2lkICJ1c2UgcmVwb3NpdG9yeSBjb25maWcgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU1CisjOiBidWlsdGluL2NvbmZpZy5jOjU2CiBtc2dpZCAidXNlIGdpdmVuIGNvbmZpZyBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTYKLW1zZ2lkICJBY3Rpb24iCisjOiBidWlsdGluL2NvbmZpZy5jOjU3Cittc2dpZCAiYmxvYi1pZCIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjU3Ci1tc2dpZCAiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCittc2dpZCAicmVhZCBjb25maWcgZnJvbSBnaXZlbiBibG9iIG9iamVjdCIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjU4Ci1tc2dpZCAiZ2V0IGFsbCB2YWx1ZXM6IGtleSBbdmFsdWUtcmVnZXhdIgorbXNnaWQgIkFjdGlvbiIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjU5Ci1tc2dpZCAiZ2V0IHZhbHVlcyBmb3IgcmVnZXhwOiBuYW1lLXJlZ2V4IFt2YWx1ZS1yZWdleF0iCittc2dpZCAiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo2MAotbXNnaWQgInJlcGxhY2UgYWxsIG1hdGNoaW5nIHZhcmlhYmxlczogbmFtZSB2YWx1ZSBbdmFsdWVfcmVnZXhdIgorbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjYxCi1tc2dpZCAiYWRkIGEgbmV3IHZhcmlhYmxlOiBuYW1lIHZhbHVlIgorbXNnaWQgImdldCB2YWx1ZXMgZm9yIHJlZ2V4cDogbmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKLW1zZ2lkICJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIgorbXNnaWQgInJlcGxhY2UgYWxsIG1hdGNoaW5nIHZhcmlhYmxlczogbmFtZSB2YWx1ZSBbdmFsdWVfcmVnZXhdIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKLW1zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKK21zZ2lkICJhZGQgYSBuZXcgdmFyaWFibGU6IG5hbWUgdmFsdWUiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo2NAotbXNnaWQgInJlbmFtZSBzZWN0aW9uOiBvbGQtbmFtZSBuZXctbmFtZSIKK21zZ2lkICJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKLW1zZ2lkICJyZW1vdmUgYSBzZWN0aW9uOiBuYW1lIgorbXNnaWQgInJlbW92ZSBhbGwgbWF0Y2hlczogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKLW1zZ2lkICJsaXN0IGFsbCIKK21zZ2lkICJyZW5hbWUgc2VjdGlvbjogb2xkLW5hbWUgbmV3LW5hbWUiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo2NwotbXNnaWQgIm9wZW4gYW4gZWRpdG9yIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjggYnVpbHRpbi9jb25maWcuYzo2OQotbXNnaWQgInNsb3QiCittc2dpZCAicmVtb3ZlIGEgc2VjdGlvbjogbmFtZSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjY4Ci1tc2dpZCAiZmluZCB0aGUgY29sb3IgY29uZmlndXJlZDogW2RlZmF1bHRdIgorbXNnaWQgImxpc3QgYWxsIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKLW1zZ2lkICJmaW5kIHRoZSBjb2xvciBzZXR0aW5nOiBbc3Rkb3V0LWlzLXR0eV0iCittc2dpZCAib3BlbiBhbiBlZGl0b3IiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo3MCBidWlsdGluL2NvbmZpZy5jOjcxCittc2dpZCAic2xvdCIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjcwCi1tc2dpZCAiVHlwZSIKK21zZ2lkICJmaW5kIHRoZSBjb2xvciBjb25maWd1cmVkOiBbZGVmYXVsdF0iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3MQotbXNnaWQgInZhbHVlIGlzIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiIKK21zZ2lkICJmaW5kIHRoZSBjb2xvciBzZXR0aW5nOiBbc3Rkb3V0LWlzLXR0eV0iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3MgotbXNnaWQgInZhbHVlIGlzIGRlY2ltYWwgbnVtYmVyIgorbXNnaWQgIlR5cGUiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3MwotbXNnaWQgInZhbHVlIGlzIC0tYm9vbCBvciAtLWludCIKK21zZ2lkICJ2YWx1ZSBpcyBcInRydWVcIiBvciBcImZhbHNlXCIiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3NAotbXNnaWQgInZhbHVlIGlzIGEgcGF0aCAoZmlsZSBvciBkaXJlY3RvcnkgbmFtZSkiCittc2dpZCAidmFsdWUgaXMgZGVjaW1hbCBudW1iZXIiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3NQotbXNnaWQgIk90aGVyIgorbXNnaWQgInZhbHVlIGlzIC0tYm9vbCBvciAtLWludCIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjc2Ci1tc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgorbXNnaWQgInZhbHVlIGlzIGEgcGF0aCAoZmlsZSBvciBkaXJlY3RvcnkgbmFtZSkiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3NworbXNnaWQgIk90aGVyIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzgKK21zZ2lkICJ0ZXJtaW5hdGUgdmFsdWVzIHdpdGggTlVMIGJ5dGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo3OQogbXNnaWQgInJlc3BlY3QgaW5jbHVkZSBkaXJlY3RpdmVzIG9uIGxvb2t1cCIKIG1zZ3N0ciAiIgogCkBAIC00MTMxLDEzMyArNDMzNCwxMzcgQEAKIG1zZ2lkICJwcmludCBzaXplcyBpbiBodW1hbiByZWFkYWJsZSBmb3JtYXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjE1CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKIG1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjE2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTcKIG1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIC0tZGlydHkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzMwotIywgYy1mb3JtYXQKLW1zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIG5vdCBhdmFpbGFibGUiCi1tc2dzdHIgIiIKLQogIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzNwogIywgYy1mb3JtYXQKK21zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIG5vdCBhdmFpbGFibGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MQorIywgYy1mb3JtYXQKIG1zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIGhhcyBubyBlbWJlZGRlZCBuYW1lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzkKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNDMKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgaXMgcmVhbGx5ICclcycgaGVyZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjY2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIG9iamVjdCBuYW1lICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNjkKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaXMgbm90IGEgdmFsaWQgJyVzJyBvYmplY3QiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI4NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0YWcgZXhhY3RseSBtYXRjaGVzICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI4OAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJzZWFyY2hpbmcgdG8gZGVzY3JpYmUgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzI4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzMyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZpbmlzaGVkIHNlYXJjaCBhdCAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIGFubm90YXRlZCB0YWdzIGNhbiBkZXNjcmliZSAnJXMnLlxuIgogIkhvd2V2ZXIsIHRoZXJlIHdlcmUgdW5hbm5vdGF0ZWQgdGFnczogdHJ5IC0tdGFncy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM2MwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiTm8gdGFncyBjYW4gZGVzY3JpYmUgJyVzJy5cbiIKICJUcnkgLS1hbHdheXMsIG9yIGNyZWF0ZSBzb21lIHRhZ3MuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNzcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJhdmVyc2VkICVsdSBjb21taXRzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM4MAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM4NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibW9yZSB0aGFuICVpIHRhZ3MgZm91bmQ7IGxpc3RlZCAlaSBtb3N0IHJlY2VudFxuIgogImdhdmUgdXAgc2VhcmNoIGF0ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwMgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwOQogbXNnaWQgImZpbmQgdGhlIHRhZyB0aGF0IGNvbWVzIGFmdGVyIHRoZSBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwMworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMAogbXNnaWQgImRlYnVnIHNlYXJjaCBzdHJhdGVneSBvbiBzdGRlcnIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMQogbXNnaWQgInVzZSBhbnkgcmVmIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDUKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTIKIG1zZ2lkICJ1c2UgYW55IHRhZywgZXZlbiB1bmFubm90YXRlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEzCiBtc2dpZCAiYWx3YXlzIHVzZSBsb25nIGZvcm1hdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5Ci1tc2dpZCAib25seSBvdXRwdXQgZXhhY3QgbWF0Y2hlcyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCi1tc2dpZCAiY29uc2lkZXIgPG4+IG1vc3QgcmVjZW50IHRhZ3MgKGRlZmF1bHQ6IDEwKSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEzCi1tc2dpZCAib25seSBjb25zaWRlciB0YWdzIG1hdGNoaW5nIDxwYXR0ZXJuPiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE1IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzgKLW1zZ2lkICJzaG93IGFiYnJldmlhdGVkIGNvbW1pdCBvYmplY3QgYXMgZmFsbGJhY2siCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNgotbXNnaWQgIm1hcmsiCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE0Cittc2dpZCAib25seSBmb2xsb3cgZmlyc3QgcGFyZW50IgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKK21zZ2lkICJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTkKK21zZ2lkICJjb25zaWRlciA8bj4gbW9zdCByZWNlbnQgdGFncyAoZGVmYXVsdDogMTApIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjEKK21zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjMgYnVpbHRpbi9uYW1lLXJldi5jOjMyMgorbXNnaWQgInNob3cgYWJicmV2aWF0ZWQgY29tbWl0IG9iamVjdCBhcyBmYWxsYmFjayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDI0Cittc2dpZCAibWFyayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDI1CiBtc2dpZCAiYXBwZW5kIDxtYXJrPiBvbiBkaXJ0eSB3b3JraW5nIHRyZWUgKGRlZmF1bHQ6IFwiLWRpcnR5XCIpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MzUKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0NDMKIG1zZ2lkICItLWxvbmcgaXMgaW5jb21wYXRpYmxlIHdpdGggLS1hYmJyZXY9MCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDYxCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDY5CiBtc2dpZCAiTm8gbmFtZXMgZm91bmQsIGNhbm5vdCBkZXNjcmliZSBhbnl0aGluZy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ4MQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ4OQogbXNnaWQgIi0tZGlydHkgaXMgaW5jb21wYXRpYmxlIHdpdGggY29tbWl0dGlzaGVzIgogbXNnc3RyICIiCiAKQEAgLTQyNjYsMzEgKzQ0NzMsMjYgQEAKIG1zZ2lkICInJXMnOiBub3QgYSByZWd1bGFyIGZpbGUgb3Igc3ltbGluayIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2RpZmYuYzoyMjgKKyM6IGJ1aWx0aW4vZGlmZi5jOjIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG9wdGlvbjogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzA1CisjOiBidWlsdGluL2RpZmYuYzozMDcKIG1zZ2lkICJOb3QgYSBnaXQgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2RpZmYuYzozNDgKKyM6IGJ1aWx0aW4vZGlmZi5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG9iamVjdCAnJXMnIGdpdmVuLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2RpZmYuYzozNTMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAibW9yZSB0aGFuICVkIHRyZWVzIGdpdmVuOiAnJXMnIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZGlmZi5jOjM2MworIzogYnVpbHRpbi9kaWZmLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vcmUgdGhhbiB0d28gYmxvYnMgZ2l2ZW46ICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzcxCisjOiBidWlsdGluL2RpZmYuYzozNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5oYW5kbGVkIG9iamVjdCAnJXMnIGdpdmVuLiIKIG1zZ3N0ciAiIgpAQCAtNDI5OSwzOSArNDUwMSwzOSBAQAogbXNnaWQgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1OAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NgogbXNnaWQgInNob3cgcHJvZ3Jlc3MgYWZ0ZXIgPG4+IG9iamVjdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2MAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2OAogbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiBzaWduZWQgdGFncyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYzCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcxCiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHRhZ3MgdGhhdCB0YWcgZmlsdGVyZWQgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CiBtc2dpZCAiRHVtcCBtYXJrcyB0byB0aGlzIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2OAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NgogbXNnaWQgIkltcG9ydCBtYXJrcyBmcm9tIHRoaXMgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcwCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc4CiBtc2dpZCAiRmFrZSBhIHRhZ2dlciB3aGVuIHRhZ3MgbGFjayBvbmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MgorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MAogbXNnaWQgIk91dHB1dCBmdWxsIHRyZWUgZm9yIGVhY2ggY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODIKIG1zZ2lkICJVc2UgdGhlIGRvbmUgZmVhdHVyZSB0byB0ZXJtaW5hdGUgdGhlIHN0cmVhbSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgzCiBtc2dpZCAiU2tpcCBvdXRwdXQgb2YgYmxvYiBkYXRhIgogbXNnc3RyICIiCiAKQEAgLTQ0MDcsNyArNDYwOSw3IEBACiBtc2dpZCAiY29udmVydCB0byBhIGNvbXBsZXRlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTEzMAorIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTE3NwogbXNnaWQgImRpciIKIG1zZ3N0ciAiIgogCkBAIC00NDE5LDE2MiArNDYyMSwxNjIgQEAKIG1zZ2lkICJkZWZhdWx0IG1vZGUgZm9yIHJlY3Vyc2lvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjA0CisjOiBidWlsdGluL2ZldGNoLmM6MjIwCiBtc2dpZCAiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI1NworIzogYnVpbHRpbi9mZXRjaC5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgbm90IGZvdW5kIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNjIKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyNzgKIG1zZ2lkICJbdXAgdG8gZGF0ZV0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NgorIzogYnVpbHRpbi9mZXRjaC5jOjI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICIhICUtKnMgJS0qcyAtPiAlcyAgKGNhbid0IGZldGNoIGluIGN1cnJlbnQgYnJhbmNoKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjc3IGJ1aWx0aW4vZmV0Y2guYzozNjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyOTMgYnVpbHRpbi9mZXRjaC5jOjM3OQogbXNnaWQgIltyZWplY3RlZF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI4OAorIzogYnVpbHRpbi9mZXRjaC5jOjMwNAogbXNnaWQgIlt0YWcgdXBkYXRlXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjkwIGJ1aWx0aW4vZmV0Y2guYzozMjUgYnVpbHRpbi9mZXRjaC5jOjM0MworIzogYnVpbHRpbi9mZXRjaC5jOjMwNiBidWlsdGluL2ZldGNoLmM6MzQxIGJ1aWx0aW4vZmV0Y2guYzozNTkKIG1zZ2lkICIgICh1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMwOAorIzogYnVpbHRpbi9mZXRjaC5jOjMyNAogbXNnaWQgIltuZXcgdGFnXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzExCisjOiBidWlsdGluL2ZldGNoLmM6MzI3CiBtc2dpZCAiW25ldyBicmFuY2hdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMzAKIG1zZ2lkICJbbmV3IHJlZl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjM3NQogbXNnaWQgInVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNTkKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKIG1zZ2lkICJmb3JjZWQgdXBkYXRlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNjUKKyM6IGJ1aWx0aW4vZmV0Y2guYzozODEKIG1zZ2lkICIobm9uLWZhc3QtZm9yd2FyZCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM5NiBidWlsdGluL2ZldGNoLmM6Njg4CisjOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjQwNQorIzogYnVpbHRpbi9mZXRjaC5jOjQyMQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjQ5MQorIzogYnVpbHRpbi9mZXRjaC5jOjUyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJGcm9tICUuKnNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTAyCisjOiBidWlsdGluL2ZldGNoLmM6NTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJzb21lIGxvY2FsIHJlZnMgY291bGQgbm90IGJlIHVwZGF0ZWQ7IHRyeSBydW5uaW5nXG4iCiAiICdnaXQgcmVtb3RlIHBydW5lICVzJyB0byByZW1vdmUgYW55IG9sZCwgY29uZmxpY3RpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU1MgorIzogYnVpbHRpbi9mZXRjaC5jOjU4MQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAoJXMgd2lsbCBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NTMKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIGhhcyBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODkKIG1zZ2lkICJbZGVsZXRlZF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU2MSBidWlsdGluL3JlbW90ZS5jOjEwNTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1OTAgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CiBtc2dpZCAiKG5vbmUpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NzgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3MDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVmdXNpbmcgdG8gZmV0Y2ggaW50byBjdXJyZW50IGJyYW5jaCAlcyBvZiBub24tYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Nzg5CisjOiBidWlsdGluL2ZldGNoLmM6ODIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc5MgorIzogYnVpbHRpbi9mZXRjaC5jOjgyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJPcHRpb24gXCIlc1wiIGlzIGlnbm9yZWQgZm9yICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg5NAorIzogYnVpbHRpbi9mZXRjaC5jOjkyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJGZXRjaGluZyAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OTYgYnVpbHRpbi9yZW1vdGUuYzoxMDAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MzAgYnVpbHRpbi9yZW1vdGUuYzoxMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZldGNoICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NDkKIG1zZ2lkICIiCiAiTm8gcmVtb3RlIHJlcG9zaXRvcnkgc3BlY2lmaWVkLiAgUGxlYXNlLCBzcGVjaWZ5IGVpdGhlciBhIFVSTCBvciBhXG4iCiAicmVtb3RlIG5hbWUgZnJvbSB3aGljaCBuZXcgcmV2aXNpb25zIHNob3VsZCBiZSBmZXRjaGVkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTM1CisjOiBidWlsdGluL2ZldGNoLmM6OTY5CiBtc2dpZCAiWW91IG5lZWQgdG8gc3BlY2lmeSBhIHRhZyBuYW1lLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTgxCisjOiBidWlsdGluL2ZldGNoLmM6MTAxNQogbXNnaWQgIi0tZGVwdGggYW5kIC0tdW5zaGFsbG93IGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE3CiBtc2dpZCAiLS11bnNoYWxsb3cgb24gYSBjb21wbGV0ZSByZXBvc2l0b3J5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDIKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM2CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgdGFrZSBhIHJlcG9zaXRvcnkgYXJndW1lbnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM4CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgbWFrZSBzZW5zZSB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CisjOiBidWlsdGluL2ZldGNoLmM6MTA0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZSBvciByZW1vdGUgZ3JvdXA6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDIzCisjOiBidWlsdGluL2ZldGNoLmM6MTA1NwogbXNnaWQgIkZldGNoaW5nIGEgZ3JvdXAgYW5kIHNwZWNpZnlpbmcgcmVmc3BlY3MgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiIgogCkBAIC00NTgyLDkgKzQ3ODQsOSBAQAogbXNnaWQgImdpdCBmbXQtbWVyZ2UtbXNnIFstbSA8bWVzc2FnZT5dIFstLWxvZ1s9PG4+XXwtLW5vLWxvZ10gWy0tZmlsZSA8ZmlsZT5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAxCi0jOiBidWlsdGluL21lcmdlLmM6MTg4IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3NQotIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzMyBwYXJzZS1vcHRpb25zLmg6MjM5CisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjMgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY2IGJ1aWx0aW4vZ3JlcC5jOjcwMAorIzogYnVpbHRpbi9tZXJnZS5jOjIwMyBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzkKKyM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzMgcGFyc2Utb3B0aW9ucy5oOjI0MwogbXNnaWQgIm4iCiBtc2dzdHIgIiIKIApAQCAtNDczOSwyMjAgKzQ5NDEsMjIwIEBACiBtc2dpZCAiZ3JlcDogZmFpbGVkIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjM2NQorIzogYnVpbHRpbi9ncmVwLmM6MzY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjaGRpcjogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDQzIGJ1aWx0aW4vZ3JlcC5jOjQ3OAorIzogYnVpbHRpbi9ncmVwLmM6NDQyIGJ1aWx0aW4vZ3JlcC5jOjQ3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCB0cmVlICglcykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDkzCisjOiBidWlsdGluL2dyZXAuYzo0OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGdyZXAgZnJvbSBvYmplY3Qgb2YgdHlwZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo1NTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJzd2l0Y2ggYCVjJyBleHBlY3RzIGEgbnVtZXJpY2FsIHZhbHVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU2OAorIzogYnVpbHRpbi9ncmVwLmM6NTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQzCisjOiBidWlsdGluL2dyZXAuYzo2NDIKIG1zZ2lkICJzZWFyY2ggaW4gaW5kZXggaW5zdGVhZCBvZiBpbiB0aGUgd29yayB0cmVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0NQorIzogYnVpbHRpbi9ncmVwLmM6NjQ0CiBtc2dpZCAiZmluZCBpbiBjb250ZW50cyBub3QgbWFuYWdlZCBieSBnaXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQ3CisjOiBidWlsdGluL2dyZXAuYzo2NDYKIG1zZ2lkICJzZWFyY2ggaW4gYm90aCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQ5CisjOiBidWlsdGluL2dyZXAuYzo2NDgKIG1zZ2lkICJzZWFyY2ggYWxzbyBpbiBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1MgorIzogYnVpbHRpbi9ncmVwLmM6NjUxCiBtc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU0CisjOiBidWlsdGluL2dyZXAuYzo2NTMKIG1zZ2lkICJjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1NgorIzogYnVpbHRpbi9ncmVwLmM6NjU1CiBtc2dpZCAibWF0Y2ggcGF0dGVybnMgb25seSBhdCB3b3JkIGJvdW5kYXJpZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU4CisjOiBidWlsdGluL2dyZXAuYzo2NTcKIG1zZ2lkICJwcm9jZXNzIGJpbmFyeSBmaWxlcyBhcyB0ZXh0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2MAorIzogYnVpbHRpbi9ncmVwLmM6NjU5CiBtc2dpZCAiZG9uJ3QgbWF0Y2ggcGF0dGVybnMgaW4gYmluYXJ5IGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2MworIzogYnVpbHRpbi9ncmVwLmM6NjYyCiBtc2dpZCAiZGVzY2VuZCBhdCBtb3N0IDxkZXB0aD4gbGV2ZWxzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2NworIzogYnVpbHRpbi9ncmVwLmM6NjY2CiBtc2dpZCAidXNlIGV4dGVuZGVkIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjcwCisjOiBidWlsdGluL2dyZXAuYzo2NjkKIG1zZ2lkICJ1c2UgYmFzaWMgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyAoZGVmYXVsdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjczCisjOiBidWlsdGluL2dyZXAuYzo2NzIKIG1zZ2lkICJpbnRlcnByZXQgcGF0dGVybnMgYXMgZml4ZWQgc3RyaW5ncyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3NQogbXNnaWQgInVzZSBQZXJsLWNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3OAogbXNnaWQgInNob3cgbGluZSBudW1iZXJzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAorIzogYnVpbHRpbi9ncmVwLmM6Njc5CiBtc2dpZCAiZG9uJ3Qgc2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgxCisjOiBidWlsdGluL2dyZXAuYzo2ODAKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgogbXNnaWQgInNob3cgZmlsZW5hbWVzIHJlbGF0aXZlIHRvIHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg1CisjOiBidWlsdGluL2dyZXAuYzo2ODQKIG1zZ2lkICJzaG93IG9ubHkgZmlsZW5hbWVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg3CisjOiBidWlsdGluL2dyZXAuYzo2ODYKIG1zZ2lkICJzeW5vbnltIGZvciAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4OQogbXNnaWQgInNob3cgb25seSB0aGUgbmFtZXMgb2YgZmlsZXMgd2l0aG91dCBtYXRjaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MQogbXNnaWQgInByaW50IE5VTCBhZnRlciBmaWxlbmFtZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk0CisjOiBidWlsdGluL2dyZXAuYzo2OTMKIG1zZ2lkICJzaG93IHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NQorIzogYnVpbHRpbi9ncmVwLmM6Njk0CiBtc2dpZCAiaGlnaGxpZ2h0IG1hdGNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk3CisjOiBidWlsdGluL2dyZXAuYzo2OTYKIG1zZ2lkICJwcmludCBlbXB0eSBsaW5lIGJldHdlZW4gbWF0Y2hlcyBmcm9tIGRpZmZlcmVudCBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5OAogbXNnaWQgInNob3cgZmlsZW5hbWUgb25seSBvbmNlIGFib3ZlIG1hdGNoZXMgZnJvbSBzYW1lIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzAyCisjOiBidWlsdGluL2dyZXAuYzo3MDEKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBhbmQgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNAogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA3CisjOiBidWlsdGluL2dyZXAuYzo3MDYKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA4CisjOiBidWlsdGluL2dyZXAuYzo3MDcKIG1zZ2lkICJzaG9ydGN1dCBmb3IgLUMgTlVNIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMQorIzogYnVpbHRpbi9ncmVwLmM6NzEwCiBtc2dpZCAic2hvdyBhIGxpbmUgd2l0aCB0aGUgZnVuY3Rpb24gbmFtZSBiZWZvcmUgbWF0Y2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMgogbXNnaWQgInNob3cgdGhlIHN1cnJvdW5kaW5nIGZ1bmN0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxNgorIzogYnVpbHRpbi9ncmVwLmM6NzE1CiBtc2dpZCAicmVhZCBwYXR0ZXJucyBmcm9tIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2dyZXAuYzo3MTcKIG1zZ2lkICJtYXRjaCA8cGF0dGVybj4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzIwCisjOiBidWlsdGluL2dyZXAuYzo3MTkKIG1zZ2lkICJjb21iaW5lIHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIC1lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczMgorIzogYnVpbHRpbi9ncmVwLmM6NzMxCiBtc2dpZCAiaW5kaWNhdGUgaGl0IHdpdGggZXhpdCBzdGF0dXMgd2l0aG91dCBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM0CisjOiBidWlsdGluL2dyZXAuYzo3MzMKIG1zZ2lkICJzaG93IG9ubHkgbWF0Y2hlcyBmcm9tIGZpbGVzIHRoYXQgbWF0Y2ggYWxsIHBhdHRlcm5zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczNgorIzogYnVpbHRpbi9ncmVwLmM6NzM1CiBtc2dpZCAic2hvdyBwYXJzZSB0cmVlIGZvciBncmVwIGV4cHJlc3Npb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQwCisjOiBidWlsdGluL2dyZXAuYzo3MzkKIG1zZ2lkICJwYWdlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczOQogbXNnaWQgInNob3cgbWF0Y2hpbmcgZmlsZXMgaW4gdGhlIHBhZ2VyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MworIzogYnVpbHRpbi9ncmVwLmM6NzQyCiBtc2dpZCAiYWxsb3cgY2FsbGluZyBvZiBncmVwKDEpIChpZ25vcmVkIGJ5IHRoaXMgYnVpbGQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0NCBidWlsdGluL3Nob3ctcmVmLmM6MTg0CisjOiBidWlsdGluL2dyZXAuYzo3NDMgYnVpbHRpbi9zaG93LXJlZi5jOjE4OAogbXNnaWQgInNob3cgdXNhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODExCisjOiBidWlsdGluL2dyZXAuYzo4MTAKIG1zZ2lkICJubyBwYXR0ZXJuIGdpdmVuLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo4NjYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg2NQogbXNnaWQgIi0tb3Blbi1maWxlcy1pbi1wYWdlciBvbmx5IHdvcmtzIG9uIHRoZSB3b3JrdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo4ODkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg4OAogbXNnaWQgIi0tY2FjaGVkIG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1uby1pbmRleC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODk0CisjOiBidWlsdGluL2dyZXAuYzo4OTMKIG1zZ2lkICItLW5vLWluZGV4IG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggcmV2cy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODk3CisjOiBidWlsdGluL2dyZXAuYzo4OTYKIG1zZ2lkICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBjYW5ub3QgYmUgdXNlZCBmb3IgdHJhY2tlZCBjb250ZW50cy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6OTA1CisjOiBidWlsdGluL2dyZXAuYzo5MDQKIG1zZ2lkICJib3RoIC0tY2FjaGVkIGFuZCB0cmVlcyBhcmUgZ2l2ZW4uIgogbXNnc3RyICIiCiAKQEAgLTQ5OTAsMzk2ICs1MTkyLDM5NiBAQAogbXNnaWQgInByb2Nlc3MgZmlsZSBhcyBpdCB3ZXJlIGZyb20gdGhpcyBwYXRoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQzCisjOiBidWlsdGluL2hlbHAuYzo0MQogbXNnaWQgInByaW50IGFsbCBhdmFpbGFibGUgY29tbWFuZHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDQKKyM6IGJ1aWx0aW4vaGVscC5jOjQyCiBtc2dpZCAicHJpbnQgbGlzdCBvZiB1c2VmdWwgZ3VpZGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ1CisjOiBidWlsdGluL2hlbHAuYzo0MwogbXNnaWQgInNob3cgbWFuIHBhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDYKKyM6IGJ1aWx0aW4vaGVscC5jOjQ0CiBtc2dpZCAic2hvdyBtYW51YWwgaW4gd2ViIGJyb3dzZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDgKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2CiBtc2dpZCAic2hvdyBpbmZvIHBhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NTQKKyM6IGJ1aWx0aW4vaGVscC5jOjUyCiBtc2dpZCAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1ndWlkZXNdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtjb21tYW5kXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzo2NgorIzogYnVpbHRpbi9oZWxwLmM6NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIGhlbHAgZm9ybWF0ICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9oZWxwLmM6OTQKKyM6IGJ1aWx0aW4vaGVscC5jOjkyCiBtc2dpZCAiRmFpbGVkIHRvIHN0YXJ0IGVtYWNzY2xpZW50LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzoxMDcKKyM6IGJ1aWx0aW4vaGVscC5jOjEwNQogbXNnaWQgIkZhaWxlZCB0byBwYXJzZSBlbWFjc2NsaWVudCB2ZXJzaW9uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzoxMTUKKyM6IGJ1aWx0aW4vaGVscC5jOjExMwogIywgYy1mb3JtYXQKIG1zZ2lkICJlbWFjc2NsaWVudCB2ZXJzaW9uICclZCcgdG9vIG9sZCAoPCAyMikuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjEzMyBidWlsdGluL2hlbHAuYzoxNjEgYnVpbHRpbi9oZWxwLmM6MTcwIGJ1aWx0aW4vaGVscC5jOjE3OAorIzogYnVpbHRpbi9oZWxwLmM6MTMxIGJ1aWx0aW4vaGVscC5jOjE1OSBidWlsdGluL2hlbHAuYzoxNjggYnVpbHRpbi9oZWxwLmM6MTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBleGVjICclcyc6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjIxOAorIzogYnVpbHRpbi9oZWxwLmM6MjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICInJXMnOiBwYXRoIGZvciB1bnN1cHBvcnRlZCBtYW4gdmlld2VyLlxuIgogIlBsZWFzZSBjb25zaWRlciB1c2luZyAnbWFuLjx0b29sPi5jbWQnIGluc3RlYWQuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjIzMAorIzogYnVpbHRpbi9oZWxwLmM6MjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICInJXMnOiBjbWQgZm9yIHN1cHBvcnRlZCBtYW4gdmlld2VyLlxuIgogIlBsZWFzZSBjb25zaWRlciB1c2luZyAnbWFuLjx0b29sPi5wYXRoJyBpbnN0ZWFkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzozNTEKKyM6IGJ1aWx0aW4vaGVscC5jOjM0OQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiB1bmtub3duIG1hbiB2aWV3ZXIuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjM2OAorIzogYnVpbHRpbi9oZWxwLmM6MzY2CiBtc2dpZCAibm8gbWFuIHZpZXdlciBoYW5kbGVkIHRoZSByZXF1ZXN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjM3NgorIzogYnVpbHRpbi9oZWxwLmM6Mzc0CiBtc2dpZCAibm8gaW5mbyB2aWV3ZXIgaGFuZGxlZCB0aGUgcmVxdWVzdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjIKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMAogbXNnaWQgIkRlZmluaW5nIGF0dHJpYnV0ZXMgcGVyIHBhdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDIzCisjOiBidWlsdGluL2hlbHAuYzo0MjEKIG1zZ2lkICJBIEdpdCBnbG9zc2FyeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjQKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMgogbXNnaWQgIlNwZWNpZmllcyBpbnRlbnRpb25hbGx5IHVudHJhY2tlZCBmaWxlcyB0byBpZ25vcmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDI1CisjOiBidWlsdGluL2hlbHAuYzo0MjMKIG1zZ2lkICJEZWZpbmluZyBzdWJtb2R1bGUgcHJvcGVydGllcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjYKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNAogbXNnaWQgIlNwZWNpZnlpbmcgcmV2aXNpb25zIGFuZCByYW5nZXMgZm9yIEdpdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjcKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNQogbXNnaWQgIkEgdHV0b3JpYWwgaW50cm9kdWN0aW9uIHRvIEdpdCAoZm9yIHZlcnNpb24gMS41LjEgb3IgbmV3ZXIpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyOAorIzogYnVpbHRpbi9oZWxwLmM6NDI2CiBtc2dpZCAiQW4gb3ZlcnZpZXcgb2YgcmVjb21tZW5kZWQgd29ya2Zsb3dzIHdpdGggR2l0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ0MAorIzogYnVpbHRpbi9oZWxwLmM6NDM4CiBtc2dpZCAiVGhlIGNvbW1vbiBHaXQgZ3VpZGVzIGFyZTpcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NjIgYnVpbHRpbi9oZWxwLmM6NDc4CisjOiBidWlsdGluL2hlbHAuYzo0NjAgYnVpbHRpbi9oZWxwLmM6NDc2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVzYWdlOiAlcyVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ5NAorIzogYnVpbHRpbi9oZWxwLmM6NDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImBnaXQgJXMnIGlzIGFsaWFzZWQgdG8gYCVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxODIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgdHlwZSBtaXNtYXRjaCBhdCAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyMDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIwNAogbXNnaWQgIm9iamVjdCBvZiB1bmV4cGVjdGVkIHR5cGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjM5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZpbGwgJWQgYnl0ZSIKIG1zZ2lkX3BsdXJhbCAiY2Fubm90IGZpbGwgJWQgYnl0ZXMiCiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NAogbXNnaWQgImVhcmx5IEVPRiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NQogbXNnaWQgInJlYWQgZXJyb3Igb24gaW5wdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjYyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjcKIG1zZ2lkICJ1c2VkIG1vcmUgYnl0ZXMgdGhhbiB3ZXJlIGF2YWlsYWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI3NAogbXNnaWQgInBhY2sgdG9vIGxhcmdlIGZvciBjdXJyZW50IGRlZmluaXRpb24gb2Ygb2ZmX3QiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjg1Ci0jLCBjLWZvcm1hdAotbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgJyVzJyIKLW1zZ3N0ciAiIgotCiAjOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTAKICMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5NQorIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBwYWNrZmlsZSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA5CiBtc2dpZCAicGFjayBzaWduYXR1cmUgbWlzbWF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFjayB2ZXJzaW9uICU8UFJJdTMyPiB1bnN1cHBvcnRlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzozMjQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyBiYWQgb2JqZWN0IGF0IG9mZnNldCAlbHU6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ0NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImluZmxhdGUgcmV0dXJuZWQgJWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDAKIG1zZ2lkICJvZmZzZXQgdmFsdWUgb3ZlcmZsb3cgZm9yIGRlbHRhIGJhc2Ugb2JqZWN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTA4CiBtc2dpZCAiZGVsdGEgYmFzZSBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUxMQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gb2JqZWN0IHR5cGUgJWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDcKIG1zZ2lkICJjYW5ub3QgcHJlYWQgcGFjayBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZSBtaXNzaW5nIgogbXNnaWRfcGx1cmFsICJwcmVtYXR1cmUgZW5kIG9mIHBhY2sgZmlsZSwgJWx1IGJ5dGVzIG1pc3NpbmciCiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3NQogbXNnaWQgInNlcmlvdXMgaW5mbGF0ZSBpbmNvbnNpc3RlbmN5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2MSBidWlsdGluL2luZGV4LXBhY2suYzo2NjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjkwCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3MjQgYnVpbHRpbi9pbmRleC1wYWNrLmM6NzMzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjYgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjcyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzI5IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczOAogIywgYy1mb3JtYXQKIG1zZ2lkICJTSEExIENPTExJU0lPTiBGT1VORCBXSVRIICVzICEiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTcwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIGV4aXN0aW5nIG9iamVjdCAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGJsb2Igb2JqZWN0ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc1OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjYKIG1zZ2lkICJFcnJvciBpbiBvYmplY3QiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGFsbCBjaGlsZCBvYmplY3RzIG9mICVzIGFyZSByZWFjaGFibGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODMzIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODM4IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2OAogbXNnaWQgImZhaWxlZCB0byBhcHBseSBkZWx0YSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CiBtc2dpZCAiUmVjZWl2aW5nIG9iamVjdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwOQogbXNnaWQgIkluZGV4aW5nIG9iamVjdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzNQogbXNnaWQgInBhY2sgaXMgY29ycnVwdGVkIChTSEExIG1pc21hdGNoKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQwCiBtc2dpZCAiY2Fubm90IGZzdGF0IHBhY2tmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDMKIG1zZ2lkICJwYWNrIGhhcyBqdW5rIGF0IHRoZSBlbmQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA1NAogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkgaW4gcGFyc2VfcGFja19vYmplY3RzKCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA3MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA3NwogbXNnaWQgIlJlc29sdmluZyBkZWx0YXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyOQogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb21wbGV0ZWQgd2l0aCAlZCBsb2NhbCBvYmplY3RzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5leHBlY3RlZCB0YWlsIGNoZWNrc3VtIGZvciAlcyAoZGlzayBjb3JydXB0aW9uPykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhIgogbXNnaWRfcGx1cmFsICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhcyIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGRlZmxhdGUgYXBwZW5kZWQgb2JqZWN0ICglZCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2NhbCBvYmplY3QgJXMgaXMgY29ycnVwdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjc0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjc5CiBtc2dpZCAiZXJyb3Igd2hpbGUgY2xvc2luZyBwYWNrIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI4NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgd3JpdGUga2VlcCBmaWxlICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY2xvc2Ugd3JpdHRlbiBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzA4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzEzCiBtc2dpZCAiY2Fubm90IHN0b3JlIHBhY2sgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzE5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzI0CiBtc2dpZCAiY2Fubm90IHN0b3JlIGluZGV4IGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgdGhyZWFkcyBzcGVjaWZpZWQgKCVkKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0aHJlYWRzIHN1cHBvcnQsIGlnbm9yaW5nICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBmaWxlICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGlkeCBmaWxlIGZvciAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NjkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAibm9uIGRlbHRhOiAlZCBvYmplY3QiCiBtc2dpZF9wbHVyYWwgIm5vbiBkZWx0YTogJWQgb2JqZWN0cyIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3QiCiBtc2dpZF9wbHVyYWwgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0cyIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDkKIG1zZ2lkICJDYW5ub3QgY29tZSBiYWNrIHRvIGN3ZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTYwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTcyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1ODAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTAKIG1zZ2lkICItLWZpeC10aGluIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgLS1zdGRpbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTg0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrZmlsZSBuYW1lICclcycgZG9lcyBub3QgZW5kIHdpdGggJy5wYWNrJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNjAzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNjEzCiBtc2dpZCAiLS12ZXJpZnkgd2l0aCBubyBwYWNrZmlsZSBuYW1lIGdpdmVuIgogbXNnc3RyICIiCiAKQEAgLTU1MTMsNyArNTcxNSw3IEBACiBtc2dpZCAic3BlY2lmeSB0aGF0IHRoZSBnaXQgcmVwb3NpdG9yeSBpcyB0byBiZSBzaGFyZWQgYW1vbmdzdCBzZXZlcmFsIHVzZXJzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc3CisjOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NQogbXNnaWQgImJlIHF1aWV0IgogbXNnc3RyICIiCiAKQEAgLTU1NDMsMzQwICs1NzQ1LDM1MyBAQAogbXNnaWQgIkNhbm5vdCBhY2Nlc3Mgd29yayB0cmVlICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo0MAorIzogYnVpbHRpbi9sb2cuYzo0MQogbXNnaWQgImdpdCBsb2cgWzxvcHRpb25zPl0gWzxyZXZpc2lvbiByYW5nZT5dIFtbLS1dIDxwYXRoPi4uLl1cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjQxCisjOiBidWlsdGluL2xvZy5jOjQyCiBtc2dpZCAiICAgb3I6IGdpdCBzaG93IFtvcHRpb25zXSA8b2JqZWN0Pi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEwMworIzogYnVpbHRpbi9sb2cuYzoxMjQKIG1zZ2lkICJzdXBwcmVzcyBkaWZmIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNAorIzogYnVpbHRpbi9sb2cuYzoxMjUKIG1zZ2lkICJzaG93IHNvdXJjZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNQorIzogYnVpbHRpbi9sb2cuYzoxMjYKIG1zZ2lkICJVc2UgbWFpbCBtYXAgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNgorIzogYnVpbHRpbi9sb2cuYzoxMjcKIG1zZ2lkICJkZWNvcmF0ZSBvcHRpb25zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTk5CisjOiBidWlsdGluL2xvZy5jOjIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJGaW5hbCBvdXRwdXQ6ICVkICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo0MjIgYnVpbHRpbi9sb2cuYzo1MTQKKyM6IGJ1aWx0aW4vbG9nLmM6NDUzIGJ1aWx0aW4vbG9nLmM6NTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIG9iamVjdCAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjUzOAorIzogYnVpbHRpbi9sb2cuYzo1NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biB0eXBlOiAlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjYzOAorIzogYnVpbHRpbi9sb2cuYzo2NjkKIG1zZ2lkICJmb3JtYXQuaGVhZGVycyB3aXRob3V0IHZhbHVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzIwCisjOiBidWlsdGluL2xvZy5jOjc1MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjczNgorIzogYnVpbHRpbi9sb2cuYzo3NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gcGF0Y2ggZmlsZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjc1MAorIzogYnVpbHRpbi9sb2cuYzo3ODEKIG1zZ2lkICJOZWVkIGV4YWN0bHkgb25lIHJhbmdlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjc1OAorIzogYnVpbHRpbi9sb2cuYzo3ODkKIG1zZ2lkICJOb3QgYSByYW5nZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo4NjAKKyM6IGJ1aWx0aW4vbG9nLmM6ODkxCiBtc2dpZCAiQ292ZXIgbGV0dGVyIG5lZWRzIGVtYWlsIGZvcm1hdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjkzNgorIzogYnVpbHRpbi9sb2cuYzo5NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lIGluLXJlcGx5LXRvOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjk2NAorIzogYnVpbHRpbi9sb2cuYzo5OTUKIG1zZ2lkICJnaXQgZm9ybWF0LXBhdGNoIFtvcHRpb25zXSBbPHNpbmNlPiB8IDxyZXZpc2lvbiByYW5nZT5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTAwOQorIzogYnVpbHRpbi9sb2cuYzoxMDQwCiBtc2dpZCAiVHdvIG91dHB1dCBkaXJlY3Rvcmllcz8iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTA4CisjOiBidWlsdGluL2xvZy5jOjExNTUKIG1zZ2lkICJ1c2UgW1BBVENIIG4vbV0gZXZlbiB3aXRoIGEgc2luZ2xlIHBhdGNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExMQorIzogYnVpbHRpbi9sb2cuYzoxMTU4CiBtc2dpZCAidXNlIFtQQVRDSF0gZXZlbiB3aXRoIG11bHRpcGxlIHBhdGNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE1CisjOiBidWlsdGluL2xvZy5jOjExNjIKIG1zZ2lkICJwcmludCBwYXRjaGVzIHRvIHN0YW5kYXJkIG91dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2NAogbXNnaWQgImdlbmVyYXRlIGEgY292ZXIgbGV0dGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExOQorIzogYnVpbHRpbi9sb2cuYzoxMTY2CiBtc2dpZCAidXNlIHNpbXBsZSBudW1iZXIgc2VxdWVuY2UgZm9yIG91dHB1dCBmaWxlIG5hbWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyMAorIzogYnVpbHRpbi9sb2cuYzoxMTY3CiBtc2dpZCAic2Z4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyMQorIzogYnVpbHRpbi9sb2cuYzoxMTY4CiBtc2dpZCAidXNlIDxzZng+IGluc3RlYWQgb2YgJy5wYXRjaCciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTIzCisjOiBidWlsdGluL2xvZy5jOjExNzAKIG1zZ2lkICJzdGFydCBudW1iZXJpbmcgcGF0Y2hlcyBhdCA8bj4gaW5zdGVhZCBvZiAxIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNQorIzogYnVpbHRpbi9sb2cuYzoxMTcyCiBtc2dpZCAibWFyayB0aGUgc2VyaWVzIGFzIE50aCByZS1yb2xsIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNworIzogYnVpbHRpbi9sb2cuYzoxMTc0CiBtc2dpZCAiVXNlIFs8cHJlZml4Pl0gaW5zdGVhZCBvZiBbUEFUQ0hdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzMAorIzogYnVpbHRpbi9sb2cuYzoxMTc3CiBtc2dpZCAic3RvcmUgcmVzdWx0aW5nIGZpbGVzIGluIDxkaXI+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzMworIzogYnVpbHRpbi9sb2cuYzoxMTgwCiBtc2dpZCAiZG9uJ3Qgc3RyaXAvYWRkIFtQQVRDSF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM2CisjOiBidWlsdGluL2xvZy5jOjExODMKIG1zZ2lkICJkb24ndCBvdXRwdXQgYmluYXJ5IGRpZmZzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzOAorIzogYnVpbHRpbi9sb2cuYzoxMTg1CiBtc2dpZCAiZG9uJ3QgaW5jbHVkZSBhIHBhdGNoIG1hdGNoaW5nIGEgY29tbWl0IHVwc3RyZWFtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MAorIzogYnVpbHRpbi9sb2cuYzoxMTg3CiBtc2dpZCAic2hvdyBwYXRjaCBmb3JtYXQgaW5zdGVhZCBvZiBkZWZhdWx0IChwYXRjaCArIHN0YXQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MgorIzogYnVpbHRpbi9sb2cuYzoxMTg5CiBtc2dpZCAiTWVzc2FnaW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MworIzogYnVpbHRpbi9sb2cuYzoxMTkwCiBtc2dpZCAiaGVhZGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0NAorIzogYnVpbHRpbi9sb2cuYzoxMTkxCiBtc2dpZCAiYWRkIGVtYWlsIGhlYWRlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDUgYnVpbHRpbi9sb2cuYzoxMTQ3CisjOiBidWlsdGluL2xvZy5jOjExOTIgYnVpbHRpbi9sb2cuYzoxMTk0CiBtc2dpZCAiZW1haWwiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ1CisjOiBidWlsdGluL2xvZy5jOjExOTIKIG1zZ2lkICJhZGQgVG86IGhlYWRlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NAogbXNnaWQgImFkZCBDYzogaGVhZGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0OQorIzogYnVpbHRpbi9sb2cuYzoxMTk2Cittc2dpZCAiaWRlbnQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTk3Cittc2dpZCAic2V0IEZyb20gYWRkcmVzcyB0byA8aWRlbnQ+IChvciBjb21taXR0ZXIgaWRlbnQgaWYgYWJzZW50KSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExOTkKIG1zZ2lkICJtZXNzYWdlLWlkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MAorIzogYnVpbHRpbi9sb2cuYzoxMjAwCiBtc2dpZCAibWFrZSBmaXJzdCBtYWlsIGEgcmVwbHkgdG8gPG1lc3NhZ2UtaWQ+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MSBidWlsdGluL2xvZy5jOjExNTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMSBidWlsdGluL2xvZy5jOjEyMDQKIG1zZ2lkICJib3VuZGFyeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMgogbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTU1CisjOiBidWlsdGluL2xvZy5jOjEyMDUKIG1zZ2lkICJpbmxpbmUgdGhlIHBhdGNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1OQorIzogYnVpbHRpbi9sb2cuYzoxMjA5CiBtc2dpZCAiZW5hYmxlIG1lc3NhZ2UgdGhyZWFkaW5nLCBzdHlsZXM6IHNoYWxsb3csIGRlZXAiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTYxCisjOiBidWlsdGluL2xvZy5jOjEyMTEKIG1zZ2lkICJzaWduYXR1cmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTYyCisjOiBidWlsdGluL2xvZy5jOjEyMTIKIG1zZ2lkICJhZGQgYSBzaWduYXR1cmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY0CisjOiBidWlsdGluL2xvZy5jOjEyMTQKIG1zZ2lkICJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI0OAorIzogYnVpbHRpbi9sb2cuYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWRlbnQgbGluZTogJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMzAzCiBtc2dpZCAiLW4gYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI1MAorIzogYnVpbHRpbi9sb2cuYzoxMzA1CiBtc2dpZCAiLS1zdWJqZWN0LXByZWZpeCBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjU4CisjOiBidWlsdGluL2xvZy5jOjEzMTMKIG1zZ2lkICItLW5hbWUtb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI2MAorIzogYnVpbHRpbi9sb2cuYzoxMzE1CiBtc2dpZCAiLS1uYW1lLXN0YXR1cyBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI2MgorIzogYnVpbHRpbi9sb2cuYzoxMzE3CiBtc2dpZCAiLS1jaGVjayBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI4NQorIzogYnVpbHRpbi9sb2cuYzoxMzQwCiBtc2dpZCAic3RhbmRhcmQgb3V0cHV0LCBvciBkaXJlY3RvcnksIHdoaWNoIG9uZT8iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjg3CisjOiBidWlsdGluL2xvZy5jOjEzNDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjE0MzUKKyM6IGJ1aWx0aW4vbG9nLmM6MTQ5MAogbXNnaWQgIkZhaWxlZCB0byBjcmVhdGUgb3V0cHV0IGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ4NAorIzogYnVpbHRpbi9sb2cuYzoxNTM5CiBtc2dpZCAiZ2l0IGNoZXJyeSBbLXZdIFs8dXBzdHJlYW0+IFs8aGVhZD4gWzxsaW1pdD5dXV0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNTM5CisjOiBidWlsdGluL2xvZy5jOjE1OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNvdWxkIG5vdCBmaW5kIGEgdHJhY2tlZCByZW1vdGUgYnJhbmNoLCBwbGVhc2Ugc3BlY2lmeSA8dXBzdHJlYW0+IG1hbnVhbGx5LlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTU1MiBidWlsdGluL2xvZy5jOjE1NTQgYnVpbHRpbi9sb2cuYzoxNTY2CisjOiBidWlsdGluL2xvZy5jOjE2MDcgYnVpbHRpbi9sb2cuYzoxNjA5IGJ1aWx0aW4vbG9nLmM6MTYyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDAyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDA4CiBtc2dpZCAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDU5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CiBtc2dpZCAiaWRlbnRpZnkgdGhlIGZpbGUgc3RhdHVzIHdpdGggdGFncyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDYxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CiBtc2dpZCAidXNlIGxvd2VyY2FzZSBsZXR0ZXJzIGZvciAnYXNzdW1lIHVuY2hhbmdlZCcgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2MworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2OQogbXNnaWQgInNob3cgY2FjaGVkIGZpbGVzIGluIHRoZSBvdXRwdXQgKGRlZmF1bHQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzEKIG1zZ2lkICJzaG93IGRlbGV0ZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDczCiBtc2dpZCAic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzUKIG1zZ2lkICJzaG93IG90aGVyIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NwogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODAKIG1zZ2lkICJzaG93IHN0YWdlZCBjb250ZW50cycgb2JqZWN0IG5hbWUgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgyCiBtc2dpZCAic2hvdyBmaWxlcyBvbiB0aGUgZmlsZXN5c3RlbSB0aGF0IG5lZWQgdG8gYmUgcmVtb3ZlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CiBtc2dpZCAic2hvdyAnb3RoZXInIGRpcmVjdG9yaWVzJyBuYW1lIG9ubHkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NwogbXNnaWQgImRvbid0IHNob3cgZW1wdHkgZGlyZWN0b3JpZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MAogbXNnaWQgInNob3cgdW5tZXJnZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkyCiBtc2dpZCAic2hvdyByZXNvbHZlLXVuZG8gaW5mb3JtYXRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4OAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NAogbXNnaWQgInNraXAgZmlsZXMgbWF0Y2hpbmcgcGF0dGVybiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk3CiBtc2dpZCAiZXhjbHVkZSBwYXR0ZXJucyBhcmUgcmVhZCBmcm9tIDxmaWxlPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAwCiBtc2dpZCAicmVhZCBhZGRpdGlvbmFsIHBlci1kaXJlY3RvcnkgZXhjbHVkZSBwYXR0ZXJucyBpbiA8ZmlsZT4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgogbXNnaWQgImFkZCB0aGUgc3RhbmRhcmQgZ2l0IGV4Y2x1c2lvbnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5OQorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNQogbXNnaWQgIm1ha2UgdGhlIG91dHB1dCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDgKIG1zZ2lkICJpZiBhbnkgPGZpbGU+IGlzIG5vdCBpbiB0aGUgaW5kZXgsIHRyZWF0IHRoaXMgYXMgYW4gZXJyb3IiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMworIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOQogbXNnaWQgInRyZWUtaXNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTAKIG1zZ2lkICJwcmV0ZW5kIHRoYXQgcGF0aHMgcmVtb3ZlZCBzaW5jZSA8dHJlZS1pc2g+IGFyZSBzdGlsbCBwcmVzZW50IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTIKIG1zZ2lkICJzaG93IGRlYnVnZ2luZyBkYXRhIgogbXNnc3RyICIiCiAKQEAgLTU5MjgsMTY3ICs2MTQzLDE2NyBAQAogbXNnaWQgImdpdCBtZXJnZSAtLWFib3J0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MAorIzogYnVpbHRpbi9tZXJnZS5jOjk4CiBtc2dpZCAic3dpdGNoIGBtJyByZXF1aXJlcyBhIHZhbHVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZpbmQgbWVyZ2Ugc3RyYXRlZ3kgJyVzJy5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI4CisjOiBidWlsdGluL21lcmdlLmM6MTM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBzdHJhdGVnaWVzIGFyZToiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzMworIzogYnVpbHRpbi9tZXJnZS5jOjE0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgY3VzdG9tIHN0cmF0ZWdpZXMgYXJlOiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTgzCisjOiBidWlsdGluL21lcmdlLmM6MTk4CiBtc2dpZCAiZG8gbm90IHNob3cgYSBkaWZmc3RhdCBhdCB0aGUgZW5kIG9mIHRoZSBtZXJnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg2CisjOiBidWlsdGluL21lcmdlLmM6MjAxCiBtc2dpZCAic2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDIKIG1zZ2lkICIoc3lub255bSB0byAtLXN0YXQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDQKIG1zZ2lkICJhZGQgKGF0IG1vc3QgPG4+KSBlbnRyaWVzIGZyb20gc2hvcnRsb2cgdG8gbWVyZ2UgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5MgorIzogYnVpbHRpbi9tZXJnZS5jOjIwNwogbXNnaWQgImNyZWF0ZSBhIHNpbmdsZSBjb21taXQgaW5zdGVhZCBvZiBkb2luZyBhIG1lcmdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKIG1zZ2lkICJwZXJmb3JtIGEgY29tbWl0IGlmIHRoZSBtZXJnZSBzdWNjZWVkcyAoZGVmYXVsdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5NgorIzogYnVpbHRpbi9tZXJnZS5jOjIxMQogbXNnaWQgImVkaXQgbWVzc2FnZSBiZWZvcmUgY29tbWl0dGluZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTk4CisjOiBidWlsdGluL21lcmdlLmM6MjEyCiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIChkZWZhdWx0KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjAwCisjOiBidWlsdGluL21lcmdlLmM6MjE0CiBtc2dpZCAiYWJvcnQgaWYgZmFzdC1mb3J3YXJkIGlzIG5vdCBwb3NzaWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjAzCisjOiBidWlsdGluL21lcmdlLmM6MjE4CiBtc2dpZCAiVmVyaWZ5IHRoYXQgdGhlIG5hbWVkIGNvbW1pdCBoYXMgYSB2YWxpZCBHUEcgc2lnbmF0dXJlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDQgYnVpbHRpbi9ub3Rlcy5jOjg2NiBidWlsdGluL3JldmVydC5jOjExMgorIzogYnVpbHRpbi9tZXJnZS5jOjIxOSBidWlsdGluL25vdGVzLmM6NzM4IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CiBtc2dpZCAic3RyYXRlZ3kiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNQorIzogYnVpbHRpbi9tZXJnZS5jOjIyMAogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IHRvIHVzZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA2CisjOiBidWlsdGluL21lcmdlLmM6MjIxCiBtc2dpZCAib3B0aW9uPXZhbHVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjIKIG1zZ2lkICJvcHRpb24gZm9yIHNlbGVjdGVkIG1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjQKIG1zZ2lkICJtZXJnZSBjb21taXQgbWVzc2FnZSAoZm9yIGEgbm9uLWZhc3QtZm9yd2FyZCBtZXJnZSkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIxMworIzogYnVpbHRpbi9tZXJnZS5jOjIyOAogbXNnaWQgImFib3J0IHRoZSBjdXJyZW50IGluLXByb2dyZXNzIG1lcmdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNDIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNTcKIG1zZ2lkICJjb3VsZCBub3QgcnVuIHN0YXNoLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjQ3CisjOiBidWlsdGluL21lcmdlLmM6MjYyCiBtc2dpZCAic3Rhc2ggZmFpbGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNTIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNjcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IGEgdmFsaWQgb2JqZWN0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjcxIGJ1aWx0aW4vbWVyZ2UuYzoyODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyODYgYnVpbHRpbi9tZXJnZS5jOjMwMwogbXNnaWQgInJlYWQtdHJlZSBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjMxOAorIzogYnVpbHRpbi9tZXJnZS5jOjMzMwogbXNnaWQgIiAobm90aGluZyB0byBzcXVhc2gpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozMzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3F1YXNoIGNvbW1pdCAtLSBub3QgdXBkYXRpbmcgSEVBRFxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozNjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNzgKIG1zZ2lkICJXcml0aW5nIFNRVUFTSF9NU0ciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM2NQorIzogYnVpbHRpbi9tZXJnZS5jOjM4MAogbXNnaWQgIkZpbmlzaGluZyBTUVVBU0hfTVNHIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2UgbWVzc2FnZSAtLSBub3QgdXBkYXRpbmcgSEVBRFxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo0MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6NTUwCisjOiBidWlsdGluL21lcmdlLmM6NTY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkJhZCBicmFuY2guJXMubWVyZ2VvcHRpb25zIHN0cmluZzogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY0MworIzogYnVpbHRpbi9tZXJnZS5jOjY1NwogbXNnaWQgImdpdCB3cml0ZS10cmVlIGZhaWxlZCB0byB3cml0ZSBhIHRyZWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY3MQotbXNnaWQgIk5vdCBoYW5kbGluZyBhbnl0aGluZyBvdGhlciB0aGFuIHR3byBoZWFkcyBtZXJnZS4iCi1tc2dzdHIgIiIKLQogIzogYnVpbHRpbi9tZXJnZS5jOjY4NQotIywgYy1mb3JtYXQKLW1zZ2lkICJVbmtub3duIG9wdGlvbiBmb3IgbWVyZ2UtcmVjdXJzaXZlOiAtWCVzIgorbXNnaWQgIk5vdCBoYW5kbGluZyBhbnl0aGluZyBvdGhlciB0aGFuIHR3byBoZWFkcyBtZXJnZS4iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9tZXJnZS5jOjY5OQogIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIG9wdGlvbiBmb3IgbWVyZ2UtcmVjdXJzaXZlOiAtWCVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo3MTMKKyMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo3ODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgZnJvbSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo3OTcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGNvbW1pdHRpbmcgbWVyZ2U7IHVzZSAnZ2l0IGNvbW1pdCcgdG8gY29tcGxldGUgdGhlIG1lcmdlLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciBhIGNvbW1pdCBtZXNzYWdlIHRvIGV4cGxhaW4gd2h5IHRoaXMgbWVyZ2UgaXMgbmVjZXNzYXJ5LFxuIgpAQCAtNjA5OCwxNjEgKzYzMTMsMTU3IEBACiAidGhlIGNvbW1pdC5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODI3CisjOiBidWlsdGluL21lcmdlLmM6ODQxCiBtc2dpZCAiRW1wdHkgY29tbWl0IG1lc3NhZ2UuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MzkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiV29uZGVyZnVsLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIGZhaWxlZDsgZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBjb21taXQgdGhlIHJlc3VsdC5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTIwCisjOiBidWlsdGluL21lcmdlLmM6OTM0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzUKIG1zZ2lkICJObyBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2MworIzogYnVpbHRpbi9tZXJnZS5jOjk3NwogbXNnaWQgIk5vIHJlbW90ZSBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTY1CisjOiBidWlsdGluL21lcmdlLmM6OTc5CiBtc2dpZCAiTm8gZGVmYXVsdCB1cHN0cmVhbSBkZWZpbmVkIGZvciB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5ODQKICMsIGMtZm9ybWF0Ci1tc2dpZCAiTm8gcmVtb3RlIHRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKK21zZ2lkICJObyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGZvciAlcyBmcm9tICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDU3IGJ1aWx0aW4vbWVyZ2UuYzoxMjE0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIiVzIC0gbm90IHNvbWV0aGluZyB3ZSBjYW4gbWVyZ2UiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjExMjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQwCiBtc2dpZCAiVGhlcmUgaXMgbm8gbWVyZ2UgdG8gYWJvcnQgKE1FUkdFX0hFQUQgbWlzc2luZykuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQxIGdpdC1wdWxsLnNoOjMxCisjOiBidWlsdGluL21lcmdlLmM6MTE1NiBnaXQtcHVsbC5zaDozMQogbXNnaWQgIiIKICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS5cbiIKICJQbGVhc2UsIGNvbW1pdCB5b3VyIGNoYW5nZXMgYmVmb3JlIHlvdSBjYW4gbWVyZ2UuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQ0IGdpdC1wdWxsLnNoOjM0CisjOiBidWlsdGluL21lcmdlLmM6MTE1OSBnaXQtcHVsbC5zaDozNAogbXNnaWQgIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBtZXJnZSAoTUVSR0VfSEVBRCBleGlzdHMpLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0OAorIzogYnVpbHRpbi9tZXJnZS5jOjExNjMKIG1zZ2lkICIiCiAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIGNoZXJyeS1waWNrIChDSEVSUllfUElDS19IRUFEIGV4aXN0cykuXG4iCiAiUGxlYXNlLCBjb21taXQgeW91ciBjaGFuZ2VzIGJlZm9yZSB5b3UgY2FuIG1lcmdlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE1MQorIzogYnVpbHRpbi9tZXJnZS5jOjExNjYKIG1zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RzKS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNjAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTc1CiBtc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tc3F1YXNoIHdpdGggLS1uby1mZi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNjUKLW1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1uby1mZiB3aXRoIC0tZmYtb25seS4iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjExNzIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTg0CiBtc2dpZCAiTm8gY29tbWl0IHNwZWNpZmllZCBhbmQgbWVyZ2UuZGVmYXVsdFRvVXBzdHJlYW0gbm90IHNldC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjE2CiBtc2dpZCAiQ2FuIG1lcmdlIG9ubHkgZXhhY3RseSBvbmUgY29tbWl0IGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTIwNworIzogYnVpbHRpbi9tZXJnZS5jOjEyMTkKIG1zZ2lkICJTcXVhc2ggY29tbWl0IGludG8gZW1wdHkgaGVhZCBub3Qgc3VwcG9ydGVkIHlldCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTIwOQorIzogYnVpbHRpbi9tZXJnZS5jOjEyMjEKIG1zZ2lkICJOb24tZmFzdC1mb3J3YXJkIGNvbW1pdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGludG8gYW4gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI2NQorIzogYnVpbHRpbi9tZXJnZS5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTI3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGFuIHVudHJ1c3RlZCBHUEcgc2lnbmF0dXJlLCBhbGxlZ2VkbHkgYnkgJXMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY4CisjOiBidWlsdGluL21lcmdlLmM6MTI4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGEgYmFkIEdQRyBzaWduYXR1cmUgYWxsZWdlZGx5IGJ5ICVzLiIKIG1zZ3N0ciAiIgogCiAjLiAnTicKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjcxCisjOiBidWlsdGluL21lcmdlLmM6MTI4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgZG9lcyBub3QgaGF2ZSBhIEdQRyBzaWduYXR1cmUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjc0CisjOiBidWlsdGluL21lcmdlLmM6MTI4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGEgZ29vZCBHUEcgc2lnbmF0dXJlIGJ5ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzNTgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVwZGF0aW5nICVzLi4lc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzk3CisjOiBidWlsdGluL21lcmdlLmM6MTQwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJUcnlpbmcgcmVhbGx5IHRyaXZpYWwgaW4taW5kZXggbWVyZ2UuLi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQwNAorIzogYnVpbHRpbi9tZXJnZS5jOjE0MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm9wZS5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQzNgorIzogYnVpbHRpbi9tZXJnZS5jOjE0NDgKIG1zZ2lkICJOb3QgcG9zc2libGUgdG8gZmFzdC1mb3J3YXJkLCBhYm9ydGluZy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0NTkgYnVpbHRpbi9tZXJnZS5jOjE1MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDcxIGJ1aWx0aW4vbWVyZ2UuYzoxNTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJld2luZGluZyB0aGUgdHJlZSB0byBwcmlzdGluZS4uLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDYzCisjOiBidWlsdGluL21lcmdlLmM6MTQ3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJUcnlpbmcgbWVyZ2Ugc3RyYXRlZ3kgJXMuLi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUyOQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2Ugc3RyYXRlZ3kgaGFuZGxlZCB0aGUgbWVyZ2UuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1lcmdlIHdpdGggc3RyYXRlZ3kgJXMgZmFpbGVkLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQwCisjOiBidWlsdGluL21lcmdlLmM6MTU1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2luZyB0aGUgJXMgdG8gcHJlcGFyZSByZXNvbHZpbmcgYnkgaGFuZC5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTU1MgorIzogYnVpbHRpbi9tZXJnZS5jOjE1NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIHdlbnQgd2VsbDsgc3RvcHBlZCBiZWZvcmUgY29tbWl0dGluZyBhcyByZXF1ZXN0ZWRcbiIKIG1zZ3N0ciAiIgpAQCAtNjQxNywzNjkgKzY2MjgsMzUyIEBACiBtc2dpZCAicmVuYW1pbmcgJyVzJyBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI1OQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gPGNvbW1pdD4uLi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MAogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1hbGwiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NworIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1zdGRpbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjI5CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzEzCiBtc2dpZCAicHJpbnQgb25seSBuYW1lcyAobm8gU0hBLTEpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzAKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTQKIG1zZ2lkICJvbmx5IHVzZSB0YWdzIHRvIG5hbWUgdGhlIGNvbW1pdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzMgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxNgogbXNnaWQgIm9ubHkgdXNlIHJlZnMgbWF0Y2hpbmcgPHBhdHRlcm4+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzQKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTgKIG1zZ2lkICJsaXN0IGFsbCBjb21taXRzIHJlYWNoYWJsZSBmcm9tIGFsbCByZWZzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzUKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTkKIG1zZ2lkICJyZWFkIGZyb20gc3RkaW4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyMAogbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyNgorbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW4gdGhlIGlucHV0IChpbnRlcm5hbCB1c2UpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIFtsaXN0IFs8b2JqZWN0Pl1dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNworIzogYnVpbHRpbi9ub3Rlcy5jOjI1CiBtc2dpZCAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGFkZCBbLWZdIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI4CisjOiBidWlsdGluL25vdGVzLmM6MjYKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBjb3B5IFstZl0gPGZyb20tb2JqZWN0PiA8dG8tb2JqZWN0PiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjkKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNwogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhcHBlbmQgWy1tIDxtc2c+IHwgLUYgPGZpbGU+IHwgKC1jIHwgLUMpICIKICI8b2JqZWN0Pl0gWzxvYmplY3Q+XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGVkaXQgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzIKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMAogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDxzdHJhdGVneT4gXSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMQogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbLXYgfCAtcV0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM0CisjOiBidWlsdGluL25vdGVzLmM6MzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM1CisjOiBidWlsdGluL25vdGVzLmM6MzMKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSByZW1vdmUgWzxvYmplY3Q+Li4uXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzYKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHBydW5lIFstbiB8IC12XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzcKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGdldC1yZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQyCisjOiBidWlsdGluL25vdGVzLmM6NDAKIG1zZ2lkICJnaXQgbm90ZXMgW2xpc3QgWzxvYmplY3Q+XV0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ3CisjOiBidWlsdGluL25vdGVzLmM6NDUKIG1zZ2lkICJnaXQgbm90ZXMgYWRkIFs8b3B0aW9ucz5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUyCisjOiBidWlsdGluL25vdGVzLmM6NTAKIG1zZ2lkICJnaXQgbm90ZXMgY29weSBbPG9wdGlvbnM+XSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MworIzogYnVpbHRpbi9ub3Rlcy5jOjUxCiBtc2dpZCAiZ2l0IG5vdGVzIGNvcHkgLS1zdGRpbiBbPGZyb20tb2JqZWN0PiA8dG8tb2JqZWN0Pl0uLi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU4CisjOiBidWlsdGluL25vdGVzLmM6NTYKIG1zZ2lkICJnaXQgbm90ZXMgYXBwZW5kIFs8b3B0aW9ucz5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYzCisjOiBidWlsdGluL25vdGVzLmM6NjEKIG1zZ2lkICJnaXQgbm90ZXMgZWRpdCBbPG9iamVjdD5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjY2CiBtc2dpZCAiZ2l0IG5vdGVzIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MQogbXNnaWQgImdpdCBub3RlcyBtZXJnZSBbPG9wdGlvbnM+XSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MgogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbPG9wdGlvbnM+XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MwogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFs8b3B0aW9ucz5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4MAorIzogYnVpbHRpbi9ub3Rlcy5jOjc4CiBtc2dpZCAiZ2l0IG5vdGVzIHJlbW92ZSBbPG9iamVjdD5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NQorIzogYnVpbHRpbi9ub3Rlcy5jOjgzCiBtc2dpZCAiZ2l0IG5vdGVzIHBydW5lIFs8b3B0aW9ucz5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg4CiBtc2dpZCAiZ2l0IG5vdGVzIGdldC1yZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEzOQorIzogYnVpbHRpbi9ub3Rlcy5jOjEzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gc3RhcnQgJ3Nob3cnIGZvciBvYmplY3QgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTQzCisjOiBidWlsdGluL25vdGVzLmM6MTQxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgJ3Nob3cnIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTUxCisjOiBidWlsdGluL25vdGVzLmM6MTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5pc2ggJ3Nob3cnIGZvciBvYmplY3QgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTY5IGJ1aWx0aW4vdGFnLmM6MzQxCisjOiBidWlsdGluL25vdGVzLmM6MTY3IGJ1aWx0aW4vdGFnLmM6MzQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgZmlsZSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxODgKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxODYKIG1zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBub3RlIGNvbnRlbnRzIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIwOSBidWlsdGluL25vdGVzLmM6OTcyCisjOiBidWlsdGluL25vdGVzLmM6MjA3IGJ1aWx0aW4vbm90ZXMuYzo4NDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3Zpbmcgbm90ZSBmb3Igb2JqZWN0ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIxNAorIzogYnVpbHRpbi9ub3Rlcy5jOjIxMgogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBub3RlIG9iamVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjE2CisjOiBidWlsdGluL25vdGVzLmM6MjE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoZSBub3RlIGNvbnRlbnRzIGhhcyBiZWVuIGxlZnQgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI1MCBidWlsdGluL3RhZy5jOjU0MAorIzogYnVpbHRpbi9ub3Rlcy5jOjI0OCBidWlsdGluL3RhZy5jOjU0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTIgYnVpbHRpbi90YWcuYzo1NDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gb3IgcmVhZCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNzEgYnVpbHRpbi9ub3Rlcy5jOjQ0NCBidWlsdGluL25vdGVzLmM6NDQ2Ci0jOiBidWlsdGluL25vdGVzLmM6NTA2IGJ1aWx0aW4vbm90ZXMuYzo1NjAgYnVpbHRpbi9ub3Rlcy5jOjY0MwotIzogYnVpbHRpbi9ub3Rlcy5jOjY0OCBidWlsdGluL25vdGVzLmM6NzIzIGJ1aWx0aW4vbm90ZXMuYzo3NjUKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5NjcgYnVpbHRpbi90YWcuYzo1NTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNjkgYnVpbHRpbi9ub3Rlcy5jOjMxNiBidWlsdGluL25vdGVzLmM6MzE4CisjOiBidWlsdGluL25vdGVzLmM6Mzc4IGJ1aWx0aW4vbm90ZXMuYzo0MzIgYnVpbHRpbi9ub3Rlcy5jOjUxNQorIzogYnVpbHRpbi9ub3Rlcy5jOjUyMCBidWlsdGluL25vdGVzLmM6NTk1IGJ1aWx0aW4vbm90ZXMuYzo2MzcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4MzkgYnVpbHRpbi90YWcuYzo1NTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjI3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVhZCBvYmplY3QgJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5OAotbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL25vdGVzLmM6MzM5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL25vdGVzLmM6MzQ5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgotbXNnc3RyICIiCi0KLSMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgaXMgdGhlIG5hbWUgb2YgdGhlCi0jLiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHNlY29uZCAlcyBpcyBpdHMgdmFsdWUKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNzYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzo0NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlucHV0IGxpbmU6ICclcycuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo0NTUKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGNvcHkgbm90ZXMgZnJvbSAnJXMnIHRvICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NTUzIGJ1aWx0aW4vbm90ZXMuYzo2MjYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzggYnVpbHRpbi9ub3Rlcy5jOjcxMSBidWlsdGluL25vdGVzLmM6NzU4Ci0jOiBidWlsdGluL25vdGVzLmM6MTAzMgorIzogYnVpbHRpbi9ub3Rlcy5jOjM3MSBidWlsdGluL25vdGVzLmM6NDI1IGJ1aWx0aW4vbm90ZXMuYzo0OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MTAgYnVpbHRpbi9ub3Rlcy5jOjU4MyBidWlsdGluL25vdGVzLmM6NjMwCisjOiBidWlsdGluL25vdGVzLmM6OTA0CiBtc2dpZCAidG9vIG1hbnkgcGFyYW1ldGVycyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTEyIGJ1aWx0aW4vbm90ZXMuYzo3NzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzozODQgYnVpbHRpbi9ub3Rlcy5jOjY0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBub3RlIGZvdW5kIGZvciBvYmplY3QgJXMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzQgYnVpbHRpbi9ub3Rlcy5jOjY5MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQwNiBidWlsdGluL25vdGVzLmM6NTYzCiBtc2dpZCAibm90ZSBjb250ZW50cyBhcyBhIHN0cmluZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTM3IGJ1aWx0aW4vbm90ZXMuYzo2OTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MDkgYnVpbHRpbi9ub3Rlcy5jOjU2NgogbXNnaWQgIm5vdGUgY29udGVudHMgaW4gYSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkgYnVpbHRpbi9ub3Rlcy5jOjU0MiBidWlsdGluL25vdGVzLmM6Njk2Ci0jOiBidWlsdGluL25vdGVzLmM6Njk5IGJ1aWx0aW4vdGFnLmM6NDc0CisjOiBidWlsdGluL25vdGVzLmM6NDExIGJ1aWx0aW4vbm90ZXMuYzo0MTQgYnVpbHRpbi9ub3Rlcy5jOjU2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU3MSBidWlsdGluL3RhZy5jOjQ3NAogbXNnaWQgIm9iamVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQwIGJ1aWx0aW4vbm90ZXMuYzo2OTcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTIgYnVpbHRpbi9ub3Rlcy5jOjU2OQogbXNnaWQgInJldXNlIGFuZCBlZGl0IHNwZWNpZmllZCBub3RlIG9iamVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQzIGJ1aWx0aW4vbm90ZXMuYzo3MDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTUgYnVpbHRpbi9ub3Rlcy5jOjU3MgogbXNnaWQgInJldXNlIHNwZWNpZmllZCBub3RlIG9iamVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQ1IGJ1aWx0aW4vbm90ZXMuYzo2MTMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTcgYnVpbHRpbi9ub3Rlcy5jOjQ4NQogbXNnaWQgInJlcGxhY2UgZXhpc3Rpbmcgbm90ZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU3OQorIzogYnVpbHRpbi9ub3Rlcy5jOjQ1MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IGFkZCBub3Rlcy4gRm91bmQgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlcy4gVXNlICctZicgdG8gb3ZlcndyaXRlICIKICJleGlzdGluZyBub3RlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTg0IGJ1aWx0aW4vbm90ZXMuYzo2NjEKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0NTYgYnVpbHRpbi9ub3Rlcy5jOjUzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJPdmVyd3JpdGluZyBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYxNAorIzogYnVpbHRpbi9ub3Rlcy5jOjQ4NgogbXNnaWQgInJlYWQgb2JqZWN0cyBmcm9tIHN0ZGluIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODgKIG1zZ2lkICJsb2FkIHJld3JpdGluZyBjb25maWcgZm9yIDxjb21tYW5kPiAoaW1wbGllcyAtLXN0ZGluKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjM0CisjOiBidWlsdGluL25vdGVzLmM6NTA2CiBtc2dpZCAidG9vIGZldyBwYXJhbWV0ZXJzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NTUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCBjb3B5IG5vdGVzLiBGb3VuZCBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzLiBVc2UgJy1mJyB0byBvdmVyd3JpdGUgIgogImV4aXN0aW5nIG5vdGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWlzc2luZyBub3RlcyBvbiBzb3VyY2Ugb2JqZWN0ICVzLiBDYW5ub3QgY29weS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjcxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjU4OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIC1tLy1GLy1jLy1DIG9wdGlvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZSAnZWRpdCcgc3ViY29tbWFuZC5cbiIKICJQbGVhc2UgdXNlICdnaXQgbm90ZXMgYWRkIC1mIC1tLy1GLy1jLy1DJyBpbnN0ZWFkLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzUKIG1zZ2lkICJHZW5lcmFsIG9wdGlvbnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2NQorIzogYnVpbHRpbi9ub3Rlcy5jOjczNwogbXNnaWQgIk1lcmdlIG9wdGlvbnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2NworIzogYnVpbHRpbi9ub3Rlcy5jOjczOQogbXNnaWQgIiIKICJyZXNvbHZlIG5vdGVzIGNvbmZsaWN0cyB1c2luZyB0aGUgZ2l2ZW4gc3RyYXRlZ3kgKG1hbnVhbC9vdXJzL3RoZWlycy91bmlvbi8iCiAiY2F0X3NvcnRfdW5pcSkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2OQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0MQogbXNnaWQgIkNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3MQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0MwogbXNnaWQgImZpbmFsaXplIG5vdGVzIG1lcmdlIGJ5IGNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3MworIzogYnVpbHRpbi9ub3Rlcy5jOjc0NQogbXNnaWQgIkFib3J0aW5nIG5vdGVzIG1lcmdlIHJlc29sdXRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0NwogbXNnaWQgImFib3J0IG5vdGVzIG1lcmdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5NzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiT2JqZWN0ICVzIGhhcyBubyBub3RlXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk4MgorIzogYnVpbHRpbi9ub3Rlcy5jOjg1NAogbXNnaWQgImF0dGVtcHQgdG8gcmVtb3ZlIG5vbi1leGlzdGVudCBub3RlIGlzIG5vdCBhbiBlcnJvciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTg1CisjOiBidWlsdGluL25vdGVzLmM6ODU3CiBtc2dpZCAicmVhZCBvYmplY3QgbmFtZXMgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MzgKIG1zZ2lkICJub3Rlc19yZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MzkKIG1zZ2lkICJ1c2Ugbm90ZXMgZnJvbSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTEwMiBidWlsdGluL3JlbW90ZS5jOjE1OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5NzQgYnVpbHRpbi9yZW1vdGUuYzoxNTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gc3ViY29tbWFuZDogJXMiCiBtc2dzdHIgIiIKQEAgLTcwMDIsNyArNzE5Niw3IEBACiAiJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTIxCisjOiBidWlsdGluL3B1c2guYzoxMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgbm90IGN1cnJlbnRseSBvbiBhIGJyYW5jaC5cbiIKQEAgLTcwMTIsNyArNzIwNiw3IEBACiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbWUtb2YtcmVtb3RlLWJyYW5jaD5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoxMjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCkBAIC03MDIxLDEyICs3MjE1LDEyIEBACiAiICAgIGdpdCBwdXNoIC0tc2V0LXVwc3RyZWFtICVzICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTM2CisjOiBidWlsdGluL3B1c2guYzoxMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBtdWx0aXBsZSB1cHN0cmVhbSBicmFuY2hlcywgcmVmdXNpbmcgdG8gcHVzaC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTM5CisjOiBidWlsdGluL3B1c2guYzoxNDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgcHVzaGluZyB0byByZW1vdGUgJyVzJywgd2hpY2ggaXMgbm90IHRoZSB1cHN0cmVhbSBvZlxuIgpAQCAtNzAzNCw3ICs3MjI4LDcgQEAKICJ0byB1cGRhdGUgd2hpY2ggcmVtb3RlIGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTUxCisjOiBidWlsdGluL3B1c2guYzoxNjUKIG1zZ2lkICIiCiAicHVzaC5kZWZhdWx0IGlzIHVuc2V0OyBpdHMgaW1wbGljaXQgdmFsdWUgaXMgY2hhbmdpbmcgaW5cbiIKICJHaXQgMi4wIGZyb20gJ21hdGNoaW5nJyB0byAnc2ltcGxlJy4gVG8gc3F1ZWxjaCB0aGlzIG1lc3NhZ2VcbiIKQEAgLTcwNTIsMjAgKzcyNDYsMjAgQEAKICInY3VycmVudCcgaW5zdGVhZCBvZiAnc2ltcGxlJyBpZiB5b3Ugc29tZXRpbWVzIHVzZSBvbGRlciB2ZXJzaW9ucyBvZiBHaXQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjE5OQorIzogYnVpbHRpbi9wdXNoLmM6MjI1CiBtc2dpZCAiIgogIllvdSBkaWRuJ3Qgc3BlY2lmeSBhbnkgcmVmc3BlY3MgdG8gcHVzaCwgYW5kIHB1c2guZGVmYXVsdCBpcyBcIm5vdGhpbmdcIi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjA2CisjOiBidWlsdGluL3B1c2guYzoyMzIKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRpcCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGlzIGJlaGluZFxuIgotIml0cyByZW1vdGUgY291bnRlcnBhcnQuIE1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLiAnZ2l0IHB1bGwnKVxuIgotImJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorIml0cyByZW1vdGUgY291bnRlcnBhcnQuIEludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy5cbiIKKyInZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjEyCisjOiBidWlsdGluL3B1c2guYzoyMzgKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgogImNvdW50ZXJwYXJ0LiBJZiB5b3UgZGlkIG5vdCBpbnRlbmQgdG8gcHVzaCB0aGF0IGJyYW5jaCwgeW91IG1heSB3YW50IHRvXG4iCkBAIC03MDczLDUwICs3MjY3LDUwIEBACiAidG8gJ3NpbXBsZScsICdjdXJyZW50JyBvciAndXBzdHJlYW0nIHRvIHB1c2ggb25seSB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIxOAorIzogYnVpbHRpbi9wdXNoLmM6MjQ0CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKLSJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBtZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKLSIoZS5nLiAnZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCisiKGUuZy4gJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIyNAorIzogYnVpbHRpbi9wdXNoLmM6MjUwCiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSByZW1vdGUgY29udGFpbnMgd29yayB0aGF0IHlvdSBkb1xuIgogIm5vdCBoYXZlIGxvY2FsbHkuIFRoaXMgaXMgdXN1YWxseSBjYXVzZWQgYnkgYW5vdGhlciByZXBvc2l0b3J5IHB1c2hpbmdcbiIKLSJ0byB0aGUgc2FtZSByZWYuIFlvdSBtYXkgd2FudCB0byBmaXJzdCBtZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy4sXG4iCi0iJ2dpdCBwdWxsJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisidG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorIihlLmcuLCAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjMxCisjOiBidWlsdGluL3B1c2guYzoyNTcKIG1zZ2lkICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGFnIGFscmVhZHkgZXhpc3RzIGluIHRoZSByZW1vdGUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzNAorIzogYnVpbHRpbi9wdXNoLmM6MjYwCiBtc2dpZCAiIgogIllvdSBjYW5ub3QgdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IHBvaW50cyBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIm9yIHVwZGF0ZSBhIHJlbW90ZSByZWYgdG8gbWFrZSBpdCBwb2ludCBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIndpdGhvdXQgdXNpbmcgdGhlICctLWZvcmNlJyBvcHRpb24uXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mjk0CisjOiBidWlsdGluL3B1c2guYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUHVzaGluZyB0byAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI5OAorIzogYnVpbHRpbi9wdXNoLmM6MzI0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBwdXNoIHNvbWUgcmVmcyB0byAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMzMQorIzogYnVpbHRpbi9wdXNoLmM6MzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCByZXBvc2l0b3J5ICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzMyCisjOiBidWlsdGluL3B1c2guYzozNTgKIG1zZ2lkICIiCiAiTm8gY29uZmlndXJlZCBwdXNoIGRlc3RpbmF0aW9uLlxuIgogIkVpdGhlciBzcGVjaWZ5IHRoZSBVUkwgZnJvbSB0aGUgY29tbWFuZC1saW5lIG9yIGNvbmZpZ3VyZSBhIHJlbW90ZSAiCkBAIC03MTI5LDg3ICs3MzIzLDg3IEBACiAiICAgIGdpdCBwdXNoIDxuYW1lPlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM0NworIzogYnVpbHRpbi9wdXNoLmM6MzczCiBtc2dpZCAiLS1hbGwgYW5kIC0tdGFncyBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM0OAorIzogYnVpbHRpbi9wdXNoLmM6Mzc0CiBtc2dpZCAiLS1hbGwgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCByZWZzcGVjcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzozNTMKKyM6IGJ1aWx0aW4vcHVzaC5jOjM3OQogbXNnaWQgIi0tbWlycm9yIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzozNTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MAogbXNnaWQgIi0tbWlycm9yIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzU5CisjOiBidWlsdGluL3B1c2guYzozODUKIG1zZ2lkICItLWFsbCBhbmQgLS1taXJyb3IgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0MTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NQogbXNnaWQgInJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIwCisjOiBidWlsdGluL3B1c2guYzo0NDYKIG1zZ2lkICJwdXNoIGFsbCByZWZzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMQorIzogYnVpbHRpbi9wdXNoLmM6NDQ3CiBtc2dpZCAibWlycm9yIGFsbCByZWZzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMworIzogYnVpbHRpbi9wdXNoLmM6NDQ5CiBtc2dpZCAiZGVsZXRlIHJlZnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI0CisjOiBidWlsdGluL3B1c2guYzo0NTAKIG1zZ2lkICJwdXNoIHRhZ3MgKGNhbid0IGJlIHVzZWQgd2l0aCAtLWFsbCBvciAtLW1pcnJvcikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI3CisjOiBidWlsdGluL3B1c2guYzo0NTMKIG1zZ2lkICJmb3JjZSB1cGRhdGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyOAorIzogYnVpbHRpbi9wdXNoLmM6NDU0CiBtc2dpZCAiY2hlY2siCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI5CisjOiBidWlsdGluL3B1c2guYzo0NTUKIG1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBwdXNoaW5nIG9mIHN1Ym1vZHVsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDMxCisjOiBidWlsdGluL3B1c2guYzo0NTcKIG1zZ2lkICJ1c2UgdGhpbiBwYWNrIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzMiBidWlsdGluL3B1c2guYzo0MzMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1OCBidWlsdGluL3B1c2guYzo0NTkKIG1zZ2lkICJyZWNlaXZlIHBhY2sgcHJvZ3JhbSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MAogbXNnaWQgInNldCB1cHN0cmVhbSBmb3IgZ2l0IHB1bGwvc3RhdHVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNworIzogYnVpbHRpbi9wdXNoLmM6NDYzCiBtc2dpZCAicHJ1bmUgbG9jYWxseSByZW1vdmVkIHJlZnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM5CisjOiBidWlsdGluL3B1c2guYzo0NjUKIG1zZ2lkICJieXBhc3MgcHJlLXB1c2ggaG9vayIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgogbXNnaWQgInB1c2ggbWlzc2luZyBidXQgcmVsZXZhbnQgdGFncyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3NgogbXNnaWQgIi0tZGVsZXRlIGlzIGluY29tcGF0aWJsZSB3aXRoIC0tYWxsLCAtLW1pcnJvciBhbmQgLS10YWdzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MgorIzogYnVpbHRpbi9wdXNoLmM6NDc4CiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIiIKIApAQCAtNzIyMCw3MCArNzQxNCw4MCBAQAogImluZGV4LW91dHB1dD08ZmlsZT5dICgtLWVtcHR5IHwgPHRyZWUtaXNoMT4gWzx0cmVlLWlzaDI+IFs8dHJlZS1pc2gzPl1dKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEwOAorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDkKIG1zZ2lkICJ3cml0ZSByZXN1bHRpbmcgaW5kZXggdG8gPGZpbGU+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTExCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMgogbXNnaWQgIm9ubHkgZW1wdHkgdGhlIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNAogbXNnaWQgIk1lcmdpbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTUKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE2CiBtc2dpZCAicGVyZm9ybSBhIG1lcmdlIGluIGFkZGl0aW9uIHRvIGEgcmVhZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTgKIG1zZ2lkICIzLXdheSBtZXJnZSBpZiBubyBmaWxlIGxldmVsIG1lcmdpbmcgcmVxdWlyZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTkKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIwCiBtc2dpZCAiMy13YXkgbWVyZ2UgaW4gcHJlc2VuY2Ugb2YgYWRkcyBhbmQgcmVtb3ZlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjIKIG1zZ2lkICJzYW1lIGFzIC1tLCBidXQgZGlzY2FyZCB1bm1lcmdlZCBlbnRyaWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIyCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMwogbXNnaWQgIjxzdWJkaXJlY3Rvcnk+LyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjQKIG1zZ2lkICJyZWFkIHRoZSB0cmVlIGludG8gdGhlIGluZGV4IHVuZGVyIDxzdWJkaXJlY3Rvcnk+LyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjcKIG1zZ2lkICJ1cGRhdGUgd29ya2luZyB0cmVlIHdpdGggbWVyZ2UgcmVzdWx0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI4CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOQogbXNnaWQgImdpdGlnbm9yZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzAKIG1zZ2lkICJhbGxvdyBleHBsaWNpdGx5IGlnbm9yZWQgZmlsZXMgdG8gYmUgb3ZlcndyaXR0ZW4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzIKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMzCiBtc2dpZCAiZG9uJ3QgY2hlY2sgdGhlIHdvcmtpbmcgdHJlZSBhZnRlciBtZXJnaW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNAogbXNnaWQgImRvbid0IHVwZGF0ZSB0aGUgaW5kZXggb3IgdGhlIHdvcmsgdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzYKIG1zZ2lkICJza2lwIGFwcGx5aW5nIHNwYXJzZSBjaGVja291dCBmaWx0ZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzcKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM4CiBtc2dpZCAiZGVidWcgdW5wYWNrLXRyZWVzIgogbXNnc3RyICIiCiAKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzJyBmb3IgJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWZsb2cuYzo2MTYgYnVpbHRpbi9yZWZsb2cuYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCittc2dzdHIgIiIKKwogIzogYnVpbHRpbi9yZW1vdGUuYzoxMQogbXNnaWQgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSIKIG1zZ3N0ciAiIgpAQCAtNzg0NCw5NSArODA0OCw5NSBAQAogbXNnaWQgIkZhaWxlZCB0byBmaW5kIHRyZWUgb2YgJXMuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzo5OAorIzogYnVpbHRpbi9yZXNldC5jOjk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkhFQUQgaXMgbm93IGF0ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoxNjkKKyM6IGJ1aWx0aW4vcmVzZXQuYzoxNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRvIGEgJXMgcmVzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjQ4CisjOiBidWlsdGluL3Jlc2V0LmM6MjUxCiBtc2dpZCAiYmUgcXVpZXQsIG9ubHkgcmVwb3J0IGVycm9ycyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUwCisjOiBidWlsdGluL3Jlc2V0LmM6MjUzCiBtc2dpZCAicmVzZXQgSEVBRCBhbmQgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MQorIzogYnVpbHRpbi9yZXNldC5jOjI1NAogbXNnaWQgInJlc2V0IG9ubHkgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUzIGJ1aWx0aW4vcmVzZXQuYzoyNTUKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTYgYnVpbHRpbi9yZXNldC5jOjI1OAogbXNnaWQgInJlc2V0IEhFQUQsIGluZGV4IGFuZCB3b3JraW5nIHRyZWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1NworIzogYnVpbHRpbi9yZXNldC5jOjI2MAogbXNnaWQgInJlc2V0IEhFQUQgYnV0IGtlZXAgbG9jYWwgY2hhbmdlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjc1CisjOiBidWlsdGluL3Jlc2V0LmM6Mjc4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZXZpc2lvbi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3OCBidWlsdGluL3Jlc2V0LmM6Mjg2CisjOiBidWlsdGluL3Jlc2V0LmM6MjgxIGJ1aWx0aW4vcmVzZXQuYzoyODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIG9iamVjdCAnJXMnLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjgzCisjOiBidWlsdGluL3Jlc2V0LmM6Mjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCB0cmVlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjkyCisjOiBidWlsdGluL3Jlc2V0LmM6Mjk1CiBtc2dpZCAiLS1wYXRjaCBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLXtoYXJkLG1peGVkLHNvZnR9IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMDEKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMDQKIG1zZ2lkICItLW1peGVkIHdpdGggcGF0aHMgaXMgZGVwcmVjYXRlZDsgdXNlICdnaXQgcmVzZXQgLS0gPHBhdGhzPicgaW5zdGVhZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwMworIzogYnVpbHRpbi9yZXNldC5jOjMwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gJXMgcmVzZXQgd2l0aCBwYXRocy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMxMworIzogYnVpbHRpbi9yZXNldC5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyByZXNldCBpcyBub3QgYWxsb3dlZCBpbiBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzMzCisjOiBidWlsdGluL3Jlc2V0LmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZXNldCBpbmRleCBmaWxlIHRvIHJldmlzaW9uICclcycuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzkKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDIKIG1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQ0CisjOiBidWlsdGluL3Jlc2V0LmM6MzQ3CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIG5ldyBpbmRleCBmaWxlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjMzOQorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDUKIG1zZ2lkICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW29wdGlvbnNdIC0tIFs8YXJncz4uLi5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ0CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM1MAogbXNnaWQgImtlZXAgdGhlIGAtLWAgcGFzc2VkIGFzIGFuIGFyZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NgorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNTIKIG1zZ2lkICJzdG9wIHBhcnNpbmcgYWZ0ZXIgdGhlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzo0NjQKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6NDcwCiBtc2dpZCAiIgogImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl1cbiIKICIgICBvcjogZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlIFs8YXJnPi4uLl1cbiIKQEAgLTc5NTcsMTM3ICs4MTYxLDE1OSBAQAogbXNnaWQgImdpdCBjaGVycnktcGljayA8c3ViY29tbWFuZD4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzo3MCBidWlsdGluL3JldmVydC5jOjkyCisjOiBidWlsdGluL3JldmVydC5jOjcxIGJ1aWx0aW4vcmV2ZXJ0LmM6OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA1CiBtc2dpZCAiZW5kIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKIG1zZ2lkICJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA1CisjOiBidWlsdGluL3JldmVydC5jOjEwNwogbXNnaWQgImNhbmNlbCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA4CiBtc2dpZCAiZG9uJ3QgYXV0b21hdGljYWxseSBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDcKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA5CiBtc2dpZCAiZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTAKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCiBtc2dpZCAicGFyZW50IG51bWJlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKIG1zZ2lkICJtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMTUKIG1zZ2lkICJvcHRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE2CiBtc2dpZCAib3B0aW9uIGZvciBtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMjcKIG1zZ2lkICJhcHBlbmQgY29tbWl0IG5hbWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI3CisjOiBidWlsdGluL3JldmVydC5jOjEyOQogbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CisjOiBidWlsdGluL3JldmVydC5jOjEzMAogbXNnaWQgImFsbG93IGNvbW1pdHMgd2l0aCBlbXB0eSBtZXNzYWdlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyOQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMzEKIG1zZ2lkICJrZWVwIHJlZHVuZGFudCwgZW1wdHkgY29tbWl0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMzUKIG1zZ2lkICJwcm9ncmFtIGVycm9yIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjIzCisjOiBidWlsdGluL3JldmVydC5jOjIyNQogbXNnaWQgInJldmVydCBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMzgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjQwCiBtc2dpZCAiY2hlcnJ5LXBpY2sgZmFpbGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxNQorIzogYnVpbHRpbi9ybS5jOjE2CiBtc2dpZCAiZ2l0IHJtIFtvcHRpb25zXSBbLS1dIDxmaWxlPi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6NjQgYnVpbHRpbi9ybS5jOjE4NgotIywgYy1mb3JtYXQKKyM6IGJ1aWx0aW4vcm0uYzo2NAogbXNnaWQgIiIKLSJzdWJtb2R1bGUgJyVzJyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCisidGhlIGZvbGxvd2luZyBzdWJtb2R1bGUgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCisidXNlcyBhIC5naXQgZGlyZWN0b3J5OiIKK21zZ2lkX3BsdXJhbCAiIgorInRoZSBmb2xsb3dpbmcgc3VibW9kdWxlcyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKKyJ1c2UgYSAuZ2l0IGRpcmVjdG9yeToiCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL3JtLmM6NzAKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxNzQKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6MjMwCiBtc2dpZCAiIgotIiclcycgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlIGZpbGUgYW5kIHRoZSBIRUFEXG4iCisidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgorImZpbGUgYW5kIHRoZSBIRUFEOiIKK21zZ2lkX3BsdXJhbCAiIgorInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgorImZpbGUgYW5kIHRoZSBIRUFEOiIKK21zZ3N0clswXSAiIgorbXNnc3RyWzFdICIiCisKKyM6IGJ1aWx0aW4vcm0uYzoyMzUKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MTgwCi0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzOQorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL3JtLmM6MjQzIGJ1aWx0aW4vcm0uYzoyNTQKIG1zZ2lkICIiCi0iJyVzJyBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4XG4iCisiXG4iCiAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MTkxCi0jLCBjLWZvcm1hdAotbXNnaWQgIiIKLSInJXMnIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zXG4iCi0iKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKLW1zZ3N0ciAiIgorIzogYnVpbHRpbi9ybS5jOjI1MQorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uczoiCittc2dpZF9wbHVyYWwgInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBsb2NhbCBtb2RpZmljYXRpb25zOiIKK21zZ3N0clswXSAiIgorbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDcKKyM6IGJ1aWx0aW4vcm0uYzoyNjkKIG1zZ2lkICJkbyBub3QgbGlzdCByZW1vdmVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDgKKyM6IGJ1aWx0aW4vcm0uYzoyNzAKIG1zZ2lkICJvbmx5IHJlbW92ZSBmcm9tIHRoZSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MjA5CisjOiBidWlsdGluL3JtLmM6MjcxCiBtc2dpZCAib3ZlcnJpZGUgdGhlIHVwLXRvLWRhdGUgY2hlY2siCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ybS5jOjIxMAorIzogYnVpbHRpbi9ybS5jOjI3MgogbXNnaWQgImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMTIKKyM6IGJ1aWx0aW4vcm0uYzoyNzQKIG1zZ2lkICJleGl0IHdpdGggYSB6ZXJvIHN0YXR1cyBldmVuIGlmIG5vdGhpbmcgbWF0Y2hlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MjgzCisjOiBidWlsdGluL3JtLmM6MzQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCByZW1vdmluZyAnJXMnIHJlY3Vyc2l2ZWx5IHdpdGhvdXQgLXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ybS5jOjMyMgorIzogYnVpbHRpbi9ybS5jOjM4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgcm06IHVuYWJsZSB0byByZW1vdmUgJXMiCiBtc2dzdHIgIiIKQEAgLTgxMDEsMjMgKzgzMjcsMjMgQEAKIG1zZ2lkICJNaXNzaW5nIGF1dGhvcjogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyNworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyOAogbXNnaWQgInNvcnQgb3V0cHV0IGFjY29yZGluZyB0byB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgcGVyIGF1dGhvciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjI5CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMwCiBtc2dpZCAiU3VwcHJlc3MgY29tbWl0IGRlc2NyaXB0aW9ucywgb25seSBwcm92aWRlcyBjb21taXQgY291bnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgogbXNnaWQgIlNob3cgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgZWFjaCBhdXRob3IiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMwogbXNnaWQgIndbLGkxWyxpMl1dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKIG1zZ2lkICJMaW5ld3JhcCBvdXRwdXQiCiBtc2dzdHIgIiIKIApAQCAtODE3NywyMyArODQwMywyMyBAQAogbXNnaWQgInNob3cgY29tbWl0cyBpbiB0b3BvbG9naWNhbCBvcmRlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjcxCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjcyCiBtc2dpZCAic2hvdyBvbmx5IGNvbW1pdHMgbm90IG9uIHRoZSBmaXJzdCBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3MworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NAogbXNnaWQgInNob3cgbWVyZ2VzIHJlYWNoYWJsZSBmcm9tIG9ubHkgb25lIHRpcCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc1Ci1tc2dpZCAic2hvdyBjb21taXRzIHdoZXJlIG5vIHBhcmVudCBjb21lcyBiZWZvcmUgaXRzIGNoaWxkcmVuIgorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NgorbXNnaWQgInRvcG9sb2dpY2FsbHkgc29ydCwgbWFpbnRhaW5pbmcgZGF0ZSBvcmRlciB3aGVyZSBwb3NzaWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc3CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc5CiBtc2dpZCAiPG4+Wyw8YmFzZT5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzgKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2ODAKIG1zZ2lkICJzaG93IDxuPiBtb3N0IHJlY2VudCByZWYtbG9nIGVudHJpZXMgc3RhcnRpbmcgYXQgYmFzZSIKIG1zZ3N0ciAiIgogCkBAIC04MjA3LDM1ICs4NDMzLDM1IEBACiBtc2dpZCAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9cGF0dGVybl0gPCByZWYtbGlzdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY1CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY4CiBtc2dpZCAib25seSBzaG93IHRhZ3MgKGNhbiBiZSBjb21iaW5lZCB3aXRoIGhlYWRzKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY2CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY5CiBtc2dpZCAib25seSBzaG93IGhlYWRzIChjYW4gYmUgY29tYmluZWQgd2l0aCB0YWdzKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY3CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwCiBtc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzIKLW1zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSIKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzMgYnVpbHRpbi9zaG93LXJlZi5jOjE3NgorbXNnaWQgInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlLCBldmVuIGlmIGl0IHdvdWxkIGJlIGZpbHRlcmVkIG91dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTc0CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTc4CiBtc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbnRvIG9iamVjdCBJRHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MAogbXNnaWQgIm9ubHkgc2hvdyBTSEExIGhhc2ggdXNpbmcgPG4+IGRpZ2l0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgwCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg0CiBtc2dpZCAiZG8gbm90IHByaW50IHJlc3VsdHMgdG8gc3Rkb3V0ICh1c2VmdWwgd2l0aCAtLXZlcmlmeSkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NgogbXNnaWQgInNob3cgcmVmcyBmcm9tIHN0ZGluIHRoYXQgYXJlbid0IGluIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIApAQCAtODYzOSwyNiArODg2NSwzMCBAQAogbXNnaWQgIm9ubHkgdXNlZnVsIGZvciBkZWJ1Z2dpbmciCiBtc2dzdHIgIiIKIAotIzogZ2l0LmM6MTYKKyM6IGdpdC5jOjE3CiBtc2dpZCAiIgogIidnaXQgaGVscCAtYScgYW5kICdnaXQgaGVscCAtZycgbGlzdHMgYXZhaWxhYmxlIHN1YmNvbW1hbmRzIGFuZCBzb21lXG4iCiAiY29uY2VwdCBndWlkZXMuIFNlZSAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBvciAnZ2l0IGhlbHAgPGNvbmNlcHQ+J1xuIgogInRvIHJlYWQgYWJvdXQgYSBzcGVjaWZpYyBzdWJjb21tYW5kIG9yIGNvbmNlcHQuIgogbXNnc3RyICIiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoxNTYKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNDQKK21zZ2lkICJleHBpcnkgZGF0ZSIKK21zZ3N0ciAiIgorCisjOiBwYXJzZS1vcHRpb25zLmg6MTU5CiBtc2dpZCAibm8tb3AgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpIgogbXNnc3RyICIiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzIKKyM6IHBhcnNlLW9wdGlvbnMuaDoyMzYKIG1zZ2lkICJiZSBtb3JlIHZlcmJvc2UiCiBtc2dzdHIgIiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzNAorIzogcGFyc2Utb3B0aW9ucy5oOjIzOAogbXNnaWQgImJlIG1vcmUgcXVpZXQiCiBtc2dzdHIgIiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjI0MAorIzogcGFyc2Utb3B0aW9ucy5oOjI0NAogbXNnaWQgInVzZSA8bj4gZGlnaXRzIHRvIGRpc3BsYXkgU0hBLTFzIgogbXNnc3RyICIiCiAKQEAgLTg3MTUsNyArODk0NSw3IEBACiBtc2dzdHIgIiIKIAogIzogY29tbW9uLWNtZHMuaDoyMQotbXNnaWQgIkZldGNoIGZyb20gYW5kIG1lcmdlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoIgorbXNnaWQgIkZldGNoIGZyb20gYW5kIGludGVncmF0ZSB3aXRoIGFub3RoZXIgcmVwb3NpdG9yeSBvciBhIGxvY2FsIGJyYW5jaCIKIG1zZ3N0ciAiIgogCiAjOiBjb21tb24tY21kcy5oOjIyCkBAIC04NzU5LDcgKzg5ODksNyBAQAogIzogZ2l0LWFtLnNoOjEwNQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIldoZW4geW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gXCIkY21kbGluZSAtLXJlc29sdmVkXCIuXG4iCisiV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIiRjbWRsaW5lIC0tY29udGludWVcIi5cbiIKICJJZiB5b3UgcHJlZmVyIHRvIHNraXAgdGhpcyBwYXRjaCwgcnVuIFwiJGNtZGxpbmUgLS1za2lwXCIgaW5zdGVhZC5cbiIKICJUbyByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2ggYW5kIHN0b3AgcGF0Y2hpbmcsIHJ1biBcIiRjbWRsaW5lIC0tYWJvcnRcIi4iCiBtc2dzdHIgIiIKQEAgLTg4MDksMjUgKzkwMzksMzIgQEAKICJpdCB3aWxsIGJlIHJlbW92ZWQuIFBsZWFzZSBkbyBub3QgdXNlIGl0IGFueW1vcmUuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo0NzcKKyM6IGdpdC1hbS5zaDo0NzkKICMsIHNoLWZvcm1hdAogbXNnaWQgInByZXZpb3VzIHJlYmFzZSBkaXJlY3RvcnkgJGRvdGVzdCBzdGlsbCBleGlzdHMgYnV0IG1ib3ggZ2l2ZW4uIgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo0ODIKKyM6IGdpdC1hbS5zaDo0ODQKIG1zZ2lkICJQbGVhc2UgbWFrZSB1cCB5b3VyIG1pbmQuIC0tc2tpcCBvciAtLWFib3J0PyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYW0uc2g6NTA5CisjOiBnaXQtYW0uc2g6NTIwCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiU3RyYXkgJGRvdGVzdCBkaXJlY3RvcnkgZm91bmQuXG4iCisiVXNlIFwiZ2l0IGFtIC0tYWJvcnRcIiB0byByZW1vdmUgaXQuIgorbXNnc3RyICIiCisKKyM6IGdpdC1hbS5zaDo1MjgKIG1zZ2lkICJSZXNvbHZlIG9wZXJhdGlvbiBub3QgaW4gcHJvZ3Jlc3MsIHdlIGFyZSBub3QgcmVzdW1pbmcuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo1NzUKKyM6IGdpdC1hbS5zaDo1OTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRpcnR5IGluZGV4OiBjYW5ub3QgYXBwbHkgcGF0Y2hlcyAoZGlydHk6ICRmaWxlcykiCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjY3OQorIzogZ2l0LWFtLnNoOjY5OAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlBhdGNoIGlzIGVtcHR5LiAgV2FzIGl0IHNwbGl0IHdyb25nP1xuIgpAQCAtODgzNSw2MCArOTA3Miw2MCBAQAogIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZyBydW4gXCIkY21kbGluZSAtLWFib3J0XCIuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo3MDYKKyM6IGdpdC1hbS5zaDo3MjUKIG1zZ2lkICJQYXRjaCBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo3NTMKKyM6IGdpdC1hbS5zaDo3NzIKIG1zZ2lkICJjYW5ub3QgYmUgaW50ZXJhY3RpdmUgd2l0aG91dCBzdGRpbiBjb25uZWN0ZWQgdG8gYSB0ZXJtaW5hbC4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjc1NworIzogZ2l0LWFtLnNoOjc3NgogbXNnaWQgIkNvbW1pdCBCb2R5IGlzOiIKIG1zZ3N0ciAiIgogCiAjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW3ldLCBbbl0sIFtlXSwgW3ZdIGFuZCBbYV0KICMuIGluIHlvdXIgdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaAogIy4gaW5wdXQgYXQgdGhpcyBwb2ludC4KLSM6IGdpdC1hbS5zaDo3NjQKKyM6IGdpdC1hbS5zaDo3ODMKIG1zZ2lkICJBcHBseT8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjgwMAorIzogZ2l0LWFtLnNoOjgxOQogIywgc2gtZm9ybWF0CiBtc2dpZCAiQXBwbHlpbmc6ICRGSVJTVExJTkUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjgyMQorIzogZ2l0LWFtLnNoOjg0MAogbXNnaWQgIiIKICJObyBjaGFuZ2VzIC0gZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz9cbiIKICJJZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG8gc3RhZ2UsIGNoYW5jZXMgYXJlIHRoYXQgc29tZXRoaW5nIGVsc2VcbiIKICJhbHJlYWR5IGludHJvZHVjZWQgdGhlIHNhbWUgY2hhbmdlczsgeW91IG1pZ2h0IHdhbnQgdG8gc2tpcCB0aGlzIHBhdGNoLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYW0uc2g6ODI5CisjOiBnaXQtYW0uc2g6ODQ4CiBtc2dpZCAiIgogIllvdSBzdGlsbCBoYXZlIHVubWVyZ2VkIHBhdGhzIGluIHlvdXIgaW5kZXhcbiIKICJkaWQgeW91IGZvcmdldCB0byB1c2UgJ2dpdCBhZGQnPyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYW0uc2g6ODQ1CisjOiBnaXQtYW0uc2g6ODY0CiBtc2dpZCAiTm8gY2hhbmdlcyAtLSBQYXRjaCBhbHJlYWR5IGFwcGxpZWQuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo4NTUKKyM6IGdpdC1hbS5zaDo4NzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIlBhdGNoIGZhaWxlZCBhdCAkbXNnbnVtICRGSVJTVExJTkUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjg1OAorIzogZ2l0LWFtLnNoOjg3NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBjb3B5IG9mIHRoZSBwYXRjaCB0aGF0IGZhaWxlZCBpcyBmb3VuZCBpbjpcbiIKICIgICAkZG90ZXN0L3BhdGNoIgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo4NzYKKyM6IGdpdC1hbS5zaDo4OTUKIG1zZ2lkICJhcHBseWluZyB0byBhbiBlbXB0eSBoaXN0b3J5IgogbXNnc3RyICIiCiAKQEAgLTkwNzEsNyArOTMwOCw3IEBACiBtc2dpZCAiQ2Fubm90IHJlYmFzZSBvbnRvIG11bHRpcGxlIGJyYW5jaGVzIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTMKKyM6IGdpdC1yZWJhc2Uuc2g6NTQKIG1zZ2lkICIiCiAiV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCJnaXQgcmViYXNlIC0tc2tpcFwiIGluc3RlYWQuXG4iCkBAIC05MDc5LDQyICs5MzE2LDU4IEBACiAiXCIuIgogbXNnc3RyICIiCiAKKyM6IGdpdC1yZWJhc2Uuc2g6MTU2Cittc2dpZCAiQXBwbGllZCBhdXRvc3Rhc2guIgorbXNnc3RyICIiCisKKyM6IGdpdC1yZWJhc2Uuc2g6MTU5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgc3RvcmUgJHN0YXNoX3NoYTEiCittc2dzdHIgIiIKKwogIzogZ2l0LXJlYmFzZS5zaDoxNjAKK21zZ2lkICIiCisiQXBwbHlpbmcgYXV0b3N0YXNoIHJlc3VsdGVkIGluIGNvbmZsaWN0cy5cbiIKKyJZb3VyIGNoYW5nZXMgYXJlIHNhZmUgaW4gdGhlIHN0YXNoLlxuIgorIllvdSBjYW4gcnVuIFwiZ2l0IHN0YXNoIHBvcFwiIG9yIFwiZ2l0IHN0YXNoIGRyb3BcIiBhdCBhbnkgdGltZS5cbiIKK21zZ3N0ciAiIgorCisjOiBnaXQtcmViYXNlLnNoOjE5MAogbXNnaWQgIlRoZSBwcmUtcmViYXNlIGhvb2sgcmVmdXNlZCB0byByZWJhc2UuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MTY1CisjOiBnaXQtcmViYXNlLnNoOjE5NQogbXNnaWQgIkl0IGxvb2tzIGxpa2UgZ2l0LWFtIGlzIGluIHByb2dyZXNzLiBDYW5ub3QgcmViYXNlLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjI5NgorIzogZ2l0LXJlYmFzZS5zaDozMjkKIG1zZ2lkICJUaGUgLS1leGVjIG9wdGlvbiBtdXN0IGJlIHVzZWQgd2l0aCB0aGUgLS1pbnRlcmFjdGl2ZSBvcHRpb24iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDozMDEKKyM6IGdpdC1yZWJhc2Uuc2g6MzM0CiBtc2dpZCAiTm8gcmViYXNlIGluIHByb2dyZXNzPyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjMxMgorIzogZ2l0LXJlYmFzZS5zaDozNDUKIG1zZ2lkICJUaGUgLS1lZGl0LXRvZG8gYWN0aW9uIGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIGludGVyYWN0aXZlIHJlYmFzZS4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDozMTkKKyM6IGdpdC1yZWJhc2Uuc2g6MzUyCiBtc2dpZCAiQ2Fubm90IHJlYWQgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjMyMgorIzogZ2l0LXJlYmFzZS5zaDozNTUKIG1zZ2lkICIiCiAiWW91IG11c3QgZWRpdCBhbGwgbWVyZ2UgY29uZmxpY3RzIGFuZCB0aGVuXG4iCiAibWFyayB0aGVtIGFzIHJlc29sdmVkIHVzaW5nIGdpdCBhZGQiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDozNDAKKyM6IGdpdC1yZWJhc2Uuc2g6MzczCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgbW92ZSBiYWNrIHRvICRoZWFkX25hbWUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDozNTkKKyM6IGdpdC1yZWJhc2Uuc2g6MzkyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgc2VlbXMgdGhhdCB0aGVyZSBpcyBhbHJlYWR5IGEgJHN0YXRlX2Rpcl9iYXNlIGRpcmVjdG9yeSwgYW5kXG4iCkBAIC05MTI3LDU2ICs5MzgwLDY1IEBACiAidmFsdWFibGUgdGhlcmUuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDA0CisjOiBnaXQtcmViYXNlLnNoOjQzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCB1cHN0cmVhbSAkdXBzdHJlYW1fbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjQyOAorIzogZ2l0LXJlYmFzZS5zaDo0NjEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG1lcmdlIGJhc2VzIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDMxIGdpdC1yZWJhc2Uuc2g6NDM1CisjOiBnaXQtcmViYXNlLnNoOjQ2NCBnaXQtcmViYXNlLnNoOjQ2OAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgaXMgbm8gbWVyZ2UgYmFzZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ0MAorIzogZ2l0LXJlYmFzZS5zaDo0NzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgY29tbWl0OiAkb250b19uYW1lIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDYzCisjOiBnaXQtcmViYXNlLnNoOjQ5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiZmF0YWw6IG5vIHN1Y2ggYnJhbmNoOiAkYnJhbmNoX25hbWUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0ODMKKyM6IGdpdC1yZWJhc2Uuc2g6NTE5Cittc2dpZCAiQ2Fubm90IGF1dG9zdGFzaCIKK21zZ3N0ciAiIgorCisjOiBnaXQtcmViYXNlLnNoOjUyNAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ3JlYXRlZCBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYiCittc2dzdHIgIiIKKworIzogZ2l0LXJlYmFzZS5zaDo1MjgKIG1zZ2lkICJQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHRoZW0uIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTAxCisjOiBnaXQtcmViYXNlLnNoOjU0OAogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTA0CisjOiBnaXQtcmViYXNlLnNoOjU1MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUsIHJlYmFzZSBmb3JjZWQuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTE1CisjOiBnaXQtcmViYXNlLnNoOjU2MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ2hhbmdlcyBmcm9tICRtYiB0byAkb250bzoiCiBtc2dzdHIgIiIKIAogIy4gRGV0YWNoIEhFQUQgYW5kIHJlc2V0IHRoZSB0cmVlCi0jOiBnaXQtcmViYXNlLnNoOjUyNAorIzogZ2l0LXJlYmFzZS5zaDo1NzIKIG1zZ2lkICJGaXJzdCwgcmV3aW5kaW5nIGhlYWQgdG8gcmVwbGF5IHlvdXIgd29yayBvbiB0b3Agb2YgaXQuLi4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MzIKKyM6IGdpdC1yZWJhc2Uuc2g6NTgyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYXN0LWZvcndhcmRlZCAkYnJhbmNoX25hbWUgdG8gJG9udG9fbmFtZS4iCiBtc2dzdHIgIiIKQEAgLTkyMDksNiArOTQ3MSwxMSBAQAogbXNnaWQgIkNhbm5vdCByZWNvcmQgd29ya2luZyB0cmVlIHN0YXRlIgogbXNnc3RyICIiCiAKKyM6IGdpdC1zdGFzaC5zaDoxOTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNhbm5vdCB1cGRhdGUgJHJlZl9zdGFzaCB3aXRoICR3X2NvbW1pdCIKK21zZ3N0ciAiIgorCiAjLiBUUkFOU0xBVE9SUzogJG9wdGlvbiBpcyBhbiBpbnZhbGlkIG9wdGlvbiwgbGlrZQogIy4gYC0tYmxhaC1ibGFoJy4gVGhlIDcgc3BhY2VzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCiAjLiBzZWNvbmQgbGluZSBjb3JyZXNwb25kIHRvICJlcnJvcjogIi4gU28geW91IHNob3VsZCBsaW5lCkBAIC05MjE5LDEyNiArOTQ4NiwxNDEgQEAKICMuICQgZ2l0IHN0YXNoIHNhdmUgLS1ibGFoLWJsYWggMj4mMSB8IGhlYWQgLW4gMgogIy4gZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6IC0tYmxhaC1ibGFoCiAjLiBUbyBwcm92aWRlIGEgbWVzc2FnZSwgdXNlIGdpdCBzdGFzaCBzYXZlIC0tICctLWJsYWgtYmxhaCcKLSM6IGdpdC1zdGFzaC5zaDoyMDIKKyM6IGdpdC1zdGFzaC5zaDoyNDEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogJG9wdGlvblxuIgogIiAgICAgICBUbyBwcm92aWRlIGEgbWVzc2FnZSwgdXNlIGdpdCBzdGFzaCBzYXZlIC0tICckb3B0aW9uJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6MjIzCisjOiBnaXQtc3Rhc2guc2g6MjYyCiBtc2dpZCAiTm8gbG9jYWwgY2hhbmdlcyB0byBzYXZlIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMjcKKyM6IGdpdC1zdGFzaC5zaDoyNjgKK21zZ2lkICIiCisiVGhlIGZvbGxvd2luZyB1bnRyYWNrZWQgZmlsZXMgd291bGQgTk9UIGJlIHNhdmVkIGJ1dCBuZWVkIHRvIGJlIHJlbW92ZWQgYnkgIgorInN0YXNoIHNhdmU6IgorbXNnc3RyICIiCisKKyM6IGdpdC1zdGFzaC5zaDoyNzAKK21zZ2lkICIiCisiQWJvcnRpbmcuIENvbnNpZGVyIHVzaW5nIGVpdGhlciB0aGUgLS1mb3JjZSBvciAtLWluY2x1ZGUtdW50cmFja2VkIG9wdGlvbi4iCittc2dzdHIgIiIKKworIzogZ2l0LXN0YXNoLnNoOjI3NAogbXNnaWQgIkNhbm5vdCBpbml0aWFsaXplIHN0YXNoIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMzUKKyM6IGdpdC1zdGFzaC5zaDoyNzgKIG1zZ2lkICJDYW5ub3Qgc2F2ZSB0aGUgY3VycmVudCBzdGF0dXMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjI1MworIzogZ2l0LXN0YXNoLnNoOjI5NgogbXNnaWQgIkNhbm5vdCByZW1vdmUgd29ya3RyZWUgY2hhbmdlcyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6MzUyCisjOiBnaXQtc3Rhc2guc2g6Mzk1CiBtc2dpZCAiTm8gc3Rhc2ggZm91bmQuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDozNTkKKyM6IGdpdC1zdGFzaC5zaDo0MDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIlRvbyBtYW55IHJldmlzaW9ucyBzcGVjaWZpZWQ6ICRSRVYiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjM2NQorIzogZ2l0LXN0YXNoLnNoOjQwOAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJHJlZmVyZW5jZSBpcyBub3QgdmFsaWQgcmVmZXJlbmNlIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDozOTMKKyM6IGdpdC1zdGFzaC5zaDo0MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgIickYXJncycgaXMgbm90IGEgc3Rhc2gtbGlrZSBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQwNAorIzogZ2l0LXN0YXNoLnNoOjQ0NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaCByZWZlcmVuY2UiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQxMgorIzogZ2l0LXN0YXNoLnNoOjQ1NQogbXNnaWQgInVuYWJsZSB0byByZWZyZXNoIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDo0MTYKKyM6IGdpdC1zdGFzaC5zaDo0NTkKIG1zZ2lkICJDYW5ub3QgYXBwbHkgYSBzdGFzaCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQyNAorIzogZ2l0LXN0YXNoLnNoOjQ2NwogbXNnaWQgIkNvbmZsaWN0cyBpbiBpbmRleC4gVHJ5IHdpdGhvdXQgLS1pbmRleC4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQyNgorIzogZ2l0LXN0YXNoLnNoOjQ2OQogbXNnaWQgIkNvdWxkIG5vdCBzYXZlIGluZGV4IHRyZWUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ2MAorIzogZ2l0LXN0YXNoLnNoOjUwMwogbXNnaWQgIkNhbm5vdCB1bnN0YWdlIG1vZGlmaWVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NzUKKyM6IGdpdC1zdGFzaC5zaDo1MTgKIG1zZ2lkICJJbmRleCB3YXMgbm90IHVuc3Rhc2hlZC4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ5MgorIzogZ2l0LXN0YXNoLnNoOjUzNQogIywgc2gtZm9ybWF0CiBtc2dpZCAiRHJvcHBlZCAke1JFVn0gKCRzKSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDkzCisjOiBnaXQtc3Rhc2guc2g6NTM2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIke1JFVn06IENvdWxkIG5vdCBkcm9wIHN0YXNoIGVudHJ5IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDo1MDAKKyM6IGdpdC1zdGFzaC5zaDo1NDMKIG1zZ2lkICJObyBicmFuY2ggbmFtZSBzcGVjaWZpZWQiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjU3MQorIzogZ2l0LXN0YXNoLnNoOjYxNQogbXNnaWQgIihUbyByZXN0b3JlIHRoZW0gdHlwZSBcImdpdCBzdGFzaCBhcHBseVwiKSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjkxCisjOiBnaXQtc3VibW9kdWxlLnNoOjk1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgc3RyaXAgb25lIGNvbXBvbmVudCBvZmYgdXJsICckcmVtb3RldXJsJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjE5NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIk5vIHN1Ym1vZHVsZSBtYXBwaW5nIGZvdW5kIGluIC5naXRtb2R1bGVzIGZvciBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjgxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDbG9uZSBvZiAnJHVybCcgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGZhaWxlZCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjI1MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyOTMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkdpdGRpciAnJGEnIGlzIHBhcnQgb2YgdGhlIHN1Ym1vZHVsZSBwYXRoICckYicgb3IgdmljZSB2ZXJzYSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM0OQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKK21zZ2lkICJSZWxhdGl2ZSBwYXRoIGNhbiBvbmx5IGJlIHVzZWQgZnJvbSB0aGUgdG9wbGV2ZWwgb2YgdGhlIHdvcmtpbmcgdHJlZSIKK21zZ3N0ciAiIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQxMwogIywgc2gtZm9ybWF0CiBtc2dpZCAicmVwbyBVUkw6ICckcmVwbycgbXVzdCBiZSBhYnNvbHV0ZSBvciBiZWdpbiB3aXRoIC4vfC4uLyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM2NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzAKICMsIHNoLWZvcm1hdAogbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzcwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQzNAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBmb2xsb3dpbmcgcGF0aCBpcyBpZ25vcmVkIGJ5IG9uZSBvZiB5b3VyIC5naXRpZ25vcmUgZmlsZXM6XG4iCkBAIC05MzQ2LDIzMyArOTYyOCwyNDQgQEAKICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCBpdC4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDUyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgZXhpc3RpbmcgcmVwbyBhdCAnJHNtX3BhdGgnIHRvIHRoZSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM5MAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhIHZhbGlkIGdpdCByZXBvIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Mzk4CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQSBnaXQgZGlyZWN0b3J5IGZvciAnJHNtX25hbWUnIGlzIGZvdW5kIGxvY2FsbHkgd2l0aCByZW1vdGUocyk6IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIHJldXNlIHRoaXMgbG9jYWwgZ2l0IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIGNsb25pbmcgYWdhaW4gZnJvbSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJ1c2UgdGhlICctLWZvcmNlJyBvcHRpb24uIElmIHRoZSBsb2NhbCBnaXQgZGlyZWN0b3J5IGlzIG5vdCB0aGUgY29ycmVjdCByZXBvIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIm9yIHlvdSBhcmUgdW5zdXJlIHdoYXQgdGhpcyBtZWFucyBjaG9vc2UgYW5vdGhlciBuYW1lIHdpdGggdGhlICctLW5hbWUnICIKICJvcHRpb24uIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDA1CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiUmVhY3RpdmF0aW5nIGxvY2FsIGdpdCBkaXJlY3RvcnkgZm9yIHN1Ym1vZHVsZSAnJHNtX25hbWUnLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQyMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODYKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBhZGQgc3VibW9kdWxlICckc21fcGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDk1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgc3VibW9kdWxlICckc21fcGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NzQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTM5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTU0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdG9wcGluZyBhdCAnJHNtX3BhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKK21zZ2lkICJTdG9wcGluZyBhdCAnJHByZWZpeCRkaXNwbGF5cGF0aCc7IHNjcmlwdCByZXR1cm5lZCBub24temVybyBzdGF0dXMuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTMyCisjOiBnaXQtc3VibW9kdWxlLnNoOjYwMAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGluIC5naXRtb2R1bGVzIgorbXNnaWQgIk5vIHVybCBmb3VuZCBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCcgaW4gLmdpdG1vZHVsZXMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NDEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjA5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXJsIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgorbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cmwgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTQzCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxMQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKK21zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU1MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKK21zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXBkYXRlIG1vZGUgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTg4CisjOiBnaXQtc3VibW9kdWxlLnNoOjY1NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiVXNlICcuJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gZGVpbml0aWFsaXplIGFsbCBzdWJtb2R1bGVzIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjY3MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnJHNtX3BhdGgnIGNvbnRhaW5zIGEgLmdpdCBkaXJlY3RvcnkiCittc2dpZCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjA0CisjOiBnaXQtc3VibW9kdWxlLnNoOjY3NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODAKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgorIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgogImRpc2NhcmQgdGhlbSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODMKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNsZWFyZWQgZGlyZWN0b3J5ICckc21fcGF0aCciCittc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njg0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgcmVtb3ZlIHN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyIKK21zZ2lkICJDb3VsZCBub3QgcmVtb3ZlIHN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njg3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njk2CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgdW5yZWdpc3RlcmVkIGZvciBwYXRoICckc21fcGF0aCciCittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHVucmVnaXN0ZXJlZCBmb3IgcGF0aCAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjczMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MTEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyBub3QgaW5pdGlhbGl6ZWRcbiIKKyJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyBub3QgaW5pdGlhbGl6ZWRcbiIKICJNYXliZSB5b3Ugd2FudCB0byB1c2UgJ3VwZGF0ZSAtLWluaXQnPyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc0NAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MjQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc1MworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzc3CisjOiBnaXQtc3VibW9kdWxlLnNoOjg1NwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzEKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byByZWJhc2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJVbmFibGUgdG8gcmViYXNlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODcyCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogcmViYXNlZCBpbnRvICckc2hhMSciCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IHJlYmFzZWQgaW50byAnJHNoYTEnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk3CisjOiBnaXQtc3VibW9kdWxlLnNoOjg3NwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIG1lcmdlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiVW5hYmxlIHRvIG1lcmdlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODc4CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogbWVyZ2VkIGluICckc2hhMSciCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6ODAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjg4MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGNoZWNrb3V0ICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiIgorIkV4ZWN1dGlvbiBvZiAnJGNvbW1hbmQgJHNoYTEnIGZhaWxlZCBpbiBzdWJtb2R1bGUgIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODg0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogY2hlY2tlZCBvdXQgJyRzaGExJyIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogJyRjb21tYW5kICRzaGExJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiVW5hYmxlIHRvIGNoZWNrb3V0ICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODkwCisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogY2hlY2tlZCBvdXQgJyRzaGExJyIKK21zZ3N0ciAiIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjkxNworIywgc2gtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwMjUKIG1zZ2lkICJUaGUgLS1jYWNoZWQgb3B0aW9uIGNhbm5vdCBiZSB1c2VkIHdpdGggdGhlIC0tZmlsZXMgb3B0aW9uIgogbXNnc3RyICIiCiAKICMuIHVuZXhwZWN0ZWQgdHlwZQotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5NzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA2NgogIywgc2gtZm9ybWF0CiBtc2dpZCAidW5leHBlY3RlZCBtb2RlICRtb2RfZHN0IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTk3CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwODYKICMsIHNoLWZvcm1hdAotbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9zcmMiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAwMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5MgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyAkc2hhMV9zcmMgYW5kICRzaGExX2RzdCIKK21zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdHMgJHNoYTFfc3JjIGFuZCAkc2hhMV9kc3QiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDI4CisjOiBnaXQtc3VibW9kdWxlLnNoOjExMTcKIG1zZ2lkICJibG9iIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTA2NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU1CiBtc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY4CisjOiBnaXQtc3VibW9kdWxlLnNoOjExNTcKIG1zZ2lkICJTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1MworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjQyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjE2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEzMDYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgpkaWZmIC0tZ2l0IGEvcG8vc3YucG8gYi9wby9zdi5wbwppbmRleCBhNWM4OGM5Li4xMmRmY2E5IDEwMDY0NAotLS0gYS9wby9zdi5wbworKysgYi9wby9zdi5wbwpAQCAtNSwxMCArNSwxMCBAQAogIwogbXNnaWQgIiIKIG1zZ3N0ciAiIgotIlByb2plY3QtSWQtVmVyc2lvbjogZ2l0IDEuOC4zXG4iCisiUHJvamVjdC1JZC1WZXJzaW9uOiBnaXQgMS44LjRcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wNC0zMCAwODoyNSswODAwXG4iCi0iUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0wNC0zMCAxMjoyMiswMTAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDgtMDYgMTQ6MTArMDgwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMDgtMDYgMTI6MzcrMDEwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogUGV0ZXIgS3JlZnRpbmcgPHBldGVyQHNvZnR3b2x2ZXMucHAuc2U+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogU3dlZGlzaCA8dHAtc3ZAbGlzdG9yLnRwLXN2LnNlPlxuIgogIkxhbmd1YWdlOiBzdlxuIgpAQCAtMTcsNyArMTcsNyBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKICJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKIAotIzogYWR2aWNlLmM6NTMKKyM6IGFkdmljZS5jOjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImhpbnQ6ICUuKnNcbiIKIG1zZ3N0ciAidGlwczogJS4qc1xuIgpAQCAtMjYsNyArMjYsNyBAQAogIy4gKiBNZXNzYWdlIHVzZWQgYm90aCB3aGVuICdnaXQgY29tbWl0JyBmYWlscyBhbmQgd2hlbgogIy4gKiBvdGhlciBjb21tYW5kcyBkb2luZyBhIG1lcmdlIGRvLgogIy4KLSM6IGFkdmljZS5jOjgzCisjOiBhZHZpY2UuYzo4NwogbXNnaWQgIiIKICJGaXggdGhlbSB1cCBpbiB0aGUgd29yayB0cmVlLFxuIgogImFuZCB0aGVuIHVzZSAnZ2l0IGFkZC9ybSA8ZmlsZT4nIGFzXG4iCkBAIC02NSw3ICs2NSw3IEBACiBtc2dpZCAiYXJjaGl2ZSBmb3JtYXQiCiBtc2dzdHIgImFya2l2Zm9ybWF0IgogCi0jOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTEyNgorIzogYXJjaGl2ZS5jOjMyNCBidWlsdGluL2xvZy5jOjExNzMKIG1zZ2lkICJwcmVmaXgiCiBtc2dzdHIgInByZWZpeCIKIApAQCAtNzMsMTEgKzczLDExIEBACiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBwcmVmaXggdGlsbCB2YXJqZSBzw7ZrdsOkZyBpIGFya2l2ZXQiCiAKLSM6IGFyY2hpdmUuYzozMjYgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIzNzEKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcyIGJ1aWx0aW4vY29uZmlnLmM6NTUgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NQotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NyBidWlsdGluL2dyZXAuYzo3MTUgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwIGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9ub3Rlcy5jOjUzNgotIzogYnVpbHRpbi9ub3Rlcy5jOjY5MyBidWlsdGluL3JlYWQtdHJlZS5jOjEwNyBwYXJzZS1vcHRpb25zLmg6MTQ5CisjOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCisjOiBidWlsdGluL2JsYW1lLmM6MjI5MyBidWlsdGluL2NvbmZpZy5jOjU2IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUgYnVpbHRpbi9ncmVwLmM6NzE0IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NiBidWlsdGluL2xzLWZpbGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo0MDgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NjUgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDggcGFyc2Utb3B0aW9ucy5oOjE1MgogbXNnaWQgImZpbGUiCiBtc2dzdHIgImZpbCIKIApAQCAtMTA5LDcgKzEwOSw3IEBACiBtc2dpZCAibGlzdCBzdXBwb3J0ZWQgYXJjaGl2ZSBmb3JtYXRzIgogbXNnc3RyICJ2aXNhIHVuZGVyc3TDtmRkYSBhcmtpdmZvcm1hdCIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODYKKyM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg1CiBtc2dpZCAicmVwbyIKIG1zZ3N0ciAiYXJraXYiCiAKQEAgLTExNyw3ICsxMTcsNyBAQAogbXNnaWQgInJldHJpZXZlIHRoZSBhcmNoaXZlIGZyb20gcmVtb3RlIHJlcG9zaXRvcnkgPHJlcG8+IgogbXNnc3RyICJow6RtdGEgYXJraXZldCBmcsOlbiBmasOkcnJhcmtpdmV0IDxhcmtpdj4iCiAKLSM6IGFyY2hpdmUuYzozNDcgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjYxNQorIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NDg3CiBtc2dpZCAiY29tbWFuZCIKIG1zZ3N0ciAia29tbWFuZG8iCiAKQEAgLTIwNCwxNyArMjA0LDE3IEBACiBtc2dpZCAiQ2Fubm90IGZvcmNlIHVwZGF0ZSB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICJLYW4gaW50ZSB0dmluZ2EgdXBwZGF0ZXJpbmcgYXYgYWt0dWVsbCBncmVuLiIKIAotIzogYnJhbmNoLmM6MjAxCisjOiBicmFuY2guYzoyMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNldHVwIHRyYWNraW5nIGluZm9ybWF0aW9uOyBzdGFydGluZyBwb2ludCAnJXMnIGlzIG5vdCBhIGJyYW5jaC4iCiBtc2dzdHIgIkthbiBpbnRlIHN0w6RsbGEgaW4gc3DDpXJuaW5nOyBzdGFydHB1bmt0ZW4gXCIlc1wiIMOkciBpbnRlIGVuIGdyZW4uIgogCi0jOiBicmFuY2guYzoyMDMKKyM6IGJyYW5jaC5jOjIxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJkZW4gZWZ0ZXJmcsOlZ2FkZSB1cHBzdHLDtm1zZ3JlbmVuIFwiJXNcIiBmaW5ucyBpbnRlIgogCi0jOiBicmFuY2guYzoyMDUKKyM6IGJyYW5jaC5jOjIyMAogbXNnaWQgIiIKICJcbiIKICJJZiB5b3UgYXJlIHBsYW5uaW5nIG9uIGJhc2luZyB5b3VyIHdvcmsgb24gYW4gdXBzdHJlYW1cbiIKQEAgLTIzNCwyNiArMjM0LDI2IEBACiAic3DDpXJhIGRlc3MgZmrDpHJybW90c3ZhcmlnaGV0IGthbiBkdSBhbnbDpG5kYSBcImdpdCBwdXNoIC11XCJcbiIKICJmw7ZyIGF0dCBzdMOkbGxhIGluIHVwcHN0csO2bXNrb25maWd1cmF0aW9uZW4gbsOkciBkdSBzw6RuZGVyIGluLiIKIAotIzogYnJhbmNoLmM6MjUwCisjOiBicmFuY2guYzoyNjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWU6ICclcycuIgogbXNnc3RyICJPYmpla3RuYW1uZXQgw6RyIGludGUgZ2lsdGlndDogXCIlc1wiLiIKIAotIzogYnJhbmNoLmM6MjcwCisjOiBicmFuY2guYzoyODUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQW1iaWd1b3VzIG9iamVjdCBuYW1lOiAnJXMnLiIKIG1zZ3N0ciAiT2JqZWt0bmFtbmV0IMOkciB0dmV0eWRpZ3Q6IFwiJXNcIi4iCiAKLSM6IGJyYW5jaC5jOjI3NQorIzogYnJhbmNoLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCiBtc2dzdHIgIkF2Z3JlbmluZ3NwdW5rdGVuIMOkciBpbnRlIGdpbHRpZzogXCIlc1wiIgogCi0jOiBicmFuY2guYzoyODEKKyM6IGJyYW5jaC5jOjI5NgogbXNnaWQgIkZhaWxlZCB0byBsb2NrIHJlZiBmb3IgdXBkYXRlIgogbXNnc3RyICJNaXNzbHlja2FkZXMgbMOlc2EgcmVmZXJlbnMgZsO2ciB1cHBkYXRlcmluZyIKIAotIzogYnJhbmNoLmM6Mjk5CisjOiBicmFuY2guYzozMTQKIG1zZ2lkICJGYWlsZWQgdG8gd3JpdGUgcmVmIgogbXNnc3RyICJNaXNzbHlja2FkZXMgc2tyaXZhIHJlZmVyZW5zIgogCkBAIC0yNjcsNyArMjY3LDcgQEAKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaGVhZGVyOiAlcyVzICglZCkiCiBtc2dzdHIgIm9rw6RudCBodXZ1ZDogJXMlcyAoJWQpIgogCi0jOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY3NgorIzogYnVuZGxlLmM6ODkgYnVpbHRpbi9jb21taXQuYzo2OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSDDtnBwbmEgXCIlc1wiIgpAQCAtMjc2LDkgKzI3Niw5IEBACiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyB0aGVzZSBwcmVyZXF1aXNpdGUgY29tbWl0czoiCiBtc2dzdHIgIkFya2l2ZXQgc2FrbmFyIGRlc3NhIG7DtmR2w6RuZGlnYSBpbmNoZWNrbmluZ2FyOiIKIAotIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY1MSBzZXF1ZW5jZXIuYzoxMTAxIGJ1aWx0aW4vbG9nLmM6MzAwCi0jOiBidWlsdGluL2xvZy5jOjc3MCBidWlsdGluL2xvZy5jOjEzNDQgYnVpbHRpbi9sb2cuYzoxNTcwIGJ1aWx0aW4vbWVyZ2UuYzozNDkKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTUKKyM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NjEgc2VxdWVuY2VyLmM6MTExMSBidWlsdGluL2xvZy5jOjMzMQorIzogYnVpbHRpbi9sb2cuYzo4MDEgYnVpbHRpbi9sb2cuYzoxMzk5IGJ1aWx0aW4vbG9nLmM6MTYyNSBidWlsdGluL21lcmdlLmM6MzY0CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MTU2CiBtc2dpZCAicmV2aXNpb24gd2FsayBzZXR1cCBmYWlsZWQiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBza2FwYSByZXZpc2lvbnN0cmF2ZXJzZXJpbmciCiAKQEAgLTMwNCw3ICszMDQsNyBAQAogbXNnaWQgInJldi1saXN0IGRpZWQiCiBtc2dzdHIgInJldi1saXN0IGRvZyIKIAotIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTI1NSBidWlsdGluL3Nob3J0bG9nLmM6MjU4CisjOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMzEwIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAlcyIKIG1zZ3N0ciAib2vDpG50IGFyZ3VtZW50OiAlcyIKQEAgLTMzNSwxMiArMzM1LDEyIEBACiBtc2dpZCAiaW5kZXgtcGFjayBkaWVkIgogbXNnc3RyICJpbmRleC1wYWNrIGRvZyIKIAotIzogY29tbWl0LmM6NTAKKyM6IGNvbW1pdC5jOjUzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSB0b2xrYSAlcyIKIAotIzogY29tbWl0LmM6NTIKKyM6IGNvbW1pdC5jOjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzICVzIGlzIG5vdCBhIGNvbW1pdCEiCiBtc2dzdHIgIiVzICVzIMOkciBpbnRlIGVuIGluY2hlY2tuaW5nISIKQEAgLTM0OSwxNiArMzQ5LDE2IEBACiBtc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKIG1zZ3N0ciAibWlubmV0IHNsdXQiCiAKLSM6IGNvbm5lY3RlZC5jOjM5CisjOiBjb25uZWN0ZWQuYzo2MAogbXNnaWQgIkNvdWxkIG5vdCBydW4gJ2dpdCByZXYtbGlzdCciCiBtc2dzdHIgIkt1bmRlIGludGUga8O2cmEgXCJnaXQgcmV2LWxpc3RcIiIKIAotIzogY29ubmVjdGVkLmM6NDgKKyM6IGNvbm5lY3RlZC5jOjgwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB3cml0ZSB0byByZXYtbGlzdDogJXMiCiBtc2dzdHIgImt1bmRlIGludGUgc2tyaXZhIHRpbGwgcmV2LWxpc3Q6ICVzIgogCi0jOiBjb25uZWN0ZWQuYzo1NgorIzogY29ubmVjdGVkLmM6ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNsb3NlIHJldi1saXN0J3Mgc3RkaW46ICVzIgogbXNnc3RyICJrdW5kZSBpbnRlIHN0w6RuZ2EgcmV2LWxpc3Q6cyBzdGFuZGFyZCBpbjogJXMiCkBAIC00NTQsNyArNDU0LDcgQEAKICJIaXR0YWRlIGZlbCBpIGtvbmZpZ3VyYXRpb25zdmFyaWFiZWxuIFwiZGlmZi5kaXJzdGF0XCI6XG4iCiAiJXMiCiAKLSM6IGRpZmYuYzozNDgxCisjOiBkaWZmLmM6MzQ4NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiRmFpbGVkIHRvIHBhcnNlIC0tZGlyc3RhdC8tWCBvcHRpb24gcGFyYW1ldGVyOlxuIgpAQCAtNDYzLDcgKzQ2Myw3IEBACiAiTWlzc2x5Y2thZGVzIHRvbGthIGFyZ3VtZW50IHRpbGwgZmxhZ2dhbiAtLWRpcnN0YXQvLVg7XG4iCiAiJXMiCiAKLSM6IGRpZmYuYzozNDk1CisjOiBkaWZmLmM6MzUwMQogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcGFyc2UgLS1zdWJtb2R1bGUgb3B0aW9uIHBhcmFtZXRlcjogJyVzJyIKIG1zZ3N0ciAiTWlzc2x5Y2thZGVzIHRvbGthIGFyZ3VtZW50IHRpbGwgZmxhZ2dhbiAtLXN1Ym1vZHVsZTogXCIlc1wiIgpAQCAtNTA1LDIwICs1MDUsMjAgQEAKIG1zZ2lkICInJXMnOiBzaG9ydCByZWFkICVzIgogbXNnc3RyICJcIiVzXCI6IGtvcnQgbMOkc25pbmcgJXMiCiAKLSM6IGhlbHAuYzoyMTIKKyM6IGhlbHAuYzoyMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiYXZhaWxhYmxlIGdpdCBjb21tYW5kcyBpbiAnJXMnIgogbXNnc3RyICJnaXQta29tbWFuZG9uIHRpbGxnw6RuZ2xpZ2EgaSBcIiVzXCIiCiAKLSM6IGhlbHAuYzoyMTkKKyM6IGhlbHAuYzoyMTcKIG1zZ2lkICJnaXQgY29tbWFuZHMgYXZhaWxhYmxlIGZyb20gZWxzZXdoZXJlIG9uIHlvdXIgJFBBVEgiCiBtc2dzdHIgImdpdC1rb21tYW5kb24gZnLDpW4gYW5kcmEgcGxhdHNlciBpIGRpbiAkUEFUSCIKIAotIzogaGVscC5jOjIzNQorIzogaGVscC5jOjIzMwogbXNnaWQgIlRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgZ2l0IGNvbW1hbmRzIGFyZToiCiBtc2dzdHIgIkRlIG1lc3QgYW52w6RuZGEgZ2l0LWtvbW1hbmRvbmEgw6RyOiIKIAotIzogaGVscC5jOjI5MgorIzogaGVscC5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiJyVzJyBhcHBlYXJzIHRvIGJlIGEgZ2l0IGNvbW1hbmQsIGJ1dCB3ZSB3ZXJlIG5vdFxuIgpAQCAtNTI3LDExICs1MjcsMTEgQEAKICJcIiVzXCIgdmVya2FyIHZhcmEgZXR0IGdpdC1rb21tYW5kbywgbWVuIHZpIGthbiBpbnRlXG4iCiAia8O2cmEgZGV0LiBLYW5za2UgZ2l0LSVzIMOkciB0cmFzaWd0PyIKIAotIzogaGVscC5jOjM0OQorIzogaGVscC5jOjM0NwogbXNnaWQgIlVoIG9oLiBZb3VyIHN5c3RlbSByZXBvcnRzIG5vIEdpdCBjb21tYW5kcyBhdCBhbGwuIgogbXNnc3RyICJPaiBkw6UuIERpdHQgc3lzdGVtIHJhcHBvcnRlcmFyIGluZ2EgR2l0LWtvbW1hbmRvbiBhbGxzLiIKIAotIzogaGVscC5jOjM3MQorIzogaGVscC5jOjM2OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV0FSTklORzogWW91IGNhbGxlZCBhIEdpdCBjb21tYW5kIG5hbWVkICclcycsIHdoaWNoIGRvZXMgbm90IGV4aXN0LlxuIgpAQCAtNTQwLDE3ICs1NDAsMTcgQEAKICJWQVJOSU5HOiBEdSBhbnJvcGFkZSBldHQgR2l0LWtvbW1hbmRvIHZpZCBuYW1uIFwiJXNcIiwgc29tIGludGUgZmlubnMuXG4iCiAiRm9ydHPDpHR0ZXIgdW5kZXIgZsO2cnV0c8OkdHRuaW5nZW4gYXR0IGR1IG1lbmFkZSBcIiVzXCIiCiAKLSM6IGhlbHAuYzozNzYKKyM6IGhlbHAuYzozNzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW4gJTAuMWYgc2Vjb25kcyBhdXRvbWF0aWNhbGx5Li4uIgogbXNnc3RyICJhdXRvbWF0aXNrdCBvbSAlMC4xZiBzZWt1bmRlci4uLiIKIAotIzogaGVscC5jOjM4MworIzogaGVscC5jOjM4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQ6ICclcycgaXMgbm90IGEgZ2l0IGNvbW1hbmQuIFNlZSAnZ2l0IC0taGVscCcuIgogbXNnc3RyICJnaXQ6IFwiJXNcIiDDpHIgaW50ZSBldHQgZ2l0LWtvbW1hbmRvLiBTZSBcImdpdCAtLWhlbHBcIi4iCiAKLSM6IGhlbHAuYzozODcKKyM6IGhlbHAuYzozODUgaGVscC5jOjQ0NAogbXNnaWQgIiIKICJcbiIKICJEaWQgeW91IG1lYW4gdGhpcz8iCkBAIC01NjQsMTIgKzU2NCwxNyBAQAogIlxuIgogIk1lbmFkZSBkdSBldHQgYXYgZGVzc2E/IgogCisjOiBoZWxwLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAtICVzIgorbXNnc3RyICIlczogJXMgLSAlcyIKKwogIzogbWVyZ2UuYzo1NgogbXNnaWQgImZhaWxlZCB0byByZWFkIHRoZSBjYWNoZSIKIG1zZ3N0ciAibWlzc2x5Y2thZHMgbMOkc2EgY2FjaGVuIgogCiAjOiBtZXJnZS5jOjExMCBidWlsdGluL2NoZWNrb3V0LmM6MzY1IGJ1aWx0aW4vY2hlY2tvdXQuYzo1NjYKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NDUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTYKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgImt1bmRlIGludGUgc2tyaXZhIG55IGluZGV4ZmlsIgogCkBAIC01ODMsNzAgKzU4OCw3MCBAQAogbXNnaWQgImFkZGluZm9fY2FjaGUgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgImFkZGluZm9fY2FjaGUgbWlzc2x5Y2thZGVzIGbDtnIgc8O2a3bDpGdlbiBcIiVzXCIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjI2OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjY5CiBtc2dpZCAiZXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgImZlbCB2aWQgYnlnZ2FuZGUgYXYgdHLDpGQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY3MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgcGF0aCAnJXMnJXMiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBza2FwYSBzw7ZrdsOkZ2VuIFwiJXNcIiVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2ODMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlcyB0byBtYWtlIHJvb20gZm9yIHN1YmRpcmVjdG9yeVxuIgogbXNnc3RyICJUYXIgYm9ydCAlcyBmw7ZyIGF0dCBnw7ZyYSBwbGF0cyBmw7ZyIHVuZGVya2F0YWxvZ1xuIgogCiAjLiBzb21ldGhpbmcgZWxzZSBleGlzdHMKICMuIC4uIGJ1dCBub3Qgc29tZSBvdGhlciBlcnJvciAod2hvIHJlYWxseSBjYXJlcyB3aGF0PykKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY5NyBtZXJnZS1yZWN1cnNpdmUuYzo3MTgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY5OCBtZXJnZS1yZWN1cnNpdmUuYzo3MTkKIG1zZ2lkICI6IHBlcmhhcHMgYSBEL0YgY29uZmxpY3Q/IgogbXNnc3RyICI6IGthbnNrZSBlbiBLL0Yta29uZmxpa3Q/IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3MDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjcwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZ1c2luZyB0byBsb3NlIHVudHJhY2tlZCBmaWxlIGF0ICclcyciCiBtc2dzdHIgInbDpGdyYXIgZsO2cmxvcmEgb3Nww6VyYWQgZmlsIHZpZCBcIiVzXCIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc0OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIG9iamVjdCAlcyAnJXMnIgogbXNnc3RyICJrYW4gaW50ZSBsw6RzYSBvYmpla3RldCAlczogXCIlc1wiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NTAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJibG9iIGV4cGVjdGVkIGZvciAlcyAnJXMnIgogbXNnc3RyICJibG9iIGbDtnJ2w6RudGFkZXMgZsO2ciAlcyBcIiVzXCIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3MyBidWlsdGluL2Nsb25lLmM6MzEzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzQgYnVpbHRpbi9jbG9uZS5jOjMxMgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gb3BlbiAnJXMnIgogbXNnc3RyICJtaXNzbHlja2FkZXMgw7ZwcG5hIFwiJXNcIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN5bWxpbmsgJyVzJyIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHRhIHNrYXBhIHN5bWJvbGlza2EgbMOkbmtlbiBcIiVzXCIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzg1CiAjLCBjLWZvcm1hdAogbXNnaWQgImRvIG5vdCBrbm93IHdoYXQgdG8gZG8gd2l0aCAlMDZvICVzICclcyciCiBtc2dzdHIgInZldCBpbnRlIGh1ciAlMDZvICVzIFwiJXNcIiBza2FsbCBoYW50ZXJhcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTIyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjMKIG1zZ2lkICJGYWlsZWQgdG8gZXhlY3V0ZSBpbnRlcm5hbCBtZXJnZSIKIG1zZ3N0ciAiTWlzc2x5Y2thZGVzIGV4ZWt2ZXJhIGludGVybiBzYW1tYW5zbGFnbmluZyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCAlcyB0byBkYXRhYmFzZSIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBsw6RnZ2EgdGlsbCAlcyB0aWxsIGRhdGFiYXNlbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTQyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5NDMKIG1zZ2lkICJ1bnN1cHBvcnRlZCBvYmplY3QgdHlwZSBpbiB0aGUgdHJlZSIKIG1zZ3N0ciAib2JqZWt0dHlwIHNvbSBlaiBzdMO2ZHMgdXBwdMOkY2t0ZXMgaSB0csOkZGV0IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIxIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjIgbWVyZ2UtcmVjdXJzaXZlLmM6MTAzNgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgpAQCAtNjU1LDcgKzY2MCw3IEBACiAiS09ORkxJS1QgKCVzL3JhZGVyYSk6ICVzIHJhZGVyYWQgaSAlcyBvY2ggJXMgaSAlcy4gVmVyc2lvbmVuICVzIGF2ICVzIGzDpG1uYWQgIgogImkgdHLDpGRldC4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjcgbWVyZ2UtcmVjdXJzaXZlLmM6MTA0MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyOCBtZXJnZS1yZWN1cnNpdmUuYzoxMDQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDT05GTElDVCAoJXMvZGVsZXRlKTogJXMgZGVsZXRlZCBpbiAlcyBhbmQgJXMgaW4gJXMuIFZlcnNpb24gJXMgb2YgJXMgbGVmdCAiCkBAIC02NjQsMjAgKzY2OSwyMCBAQAogIktPTkZMSUtUICglcy9yYWRlcmEpOiAlcyByYWRlcmFkIGkgJXMgb2NoICVzIGkgJXMuIFZlcnNpb25lbiAlcyBhdiAlcyBsw6RtbmFkICIKICJpIHRyw6RkZXQgdmlkICVzLiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTA4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTA4MgogbXNnaWQgInJlbmFtZSIKIG1zZ3N0ciAibmFtbmJ5dGUiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWVkIgogbXNnc3RyICJuYW1uYnl0dCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTEzNworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTEzOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBpcyBhIGRpcmVjdG9yeSBpbiAlcyBhZGRpbmcgYXMgJXMgaW5zdGVhZCIKIG1zZ3N0ciAiJXMgw6RyIGVuIGthdGFsb2cgaSAlcyBsw6RnZ2VyIHRpbGwgc29tICVzIGlzdMOkbGxldCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE1OQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKHJlbmFtZS9yZW5hbWUpOiBSZW5hbWUgXCIlc1wiLT5cIiVzXCIgaW4gYnJhbmNoIFwiJXNcIiByZW5hbWUgXCIlcyIKQEAgLTY4NiwxNDggKzY5MSwxNjkgQEAKICJLT05GTElLVCAobmFtbmJ5dGUvbmFtbmJ5dGUpOiBOYW1uYnl0ZSBcIiVzXCItPlwiJXNcIiBww6UgZ3JlbmVuIFwiJXNcIiAiCiAibmFtbmJ5dGUgXCIlc1wiLT5cIiVzXCIgaSBcIiVzXCIlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2NQogbXNnaWQgIiAobGVmdCB1bnJlc29sdmVkKSIKIG1zZ3N0ciAiIChsw6RtbmFkIG9sw7ZzdCkiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyMTgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKHJlbmFtZS9yZW5hbWUpOiBSZW5hbWUgJXMtPiVzIGluICVzLiBSZW5hbWUgJXMtPiVzIGluICVzIgogbXNnc3RyICIiCiAiS09ORkxJS1QgKG5hbW5ieXRlL25hbW5ieXRlKTogTmFtbmJ5dGUgJXMtPiVzIGkgJXMuIE5hbW5ieXRlICVzLT4lcyBpICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjQ4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbmFtaW5nICVzIHRvICVzIGFuZCAlcyB0byAlcyBpbnN0ZWFkIgogbXNnc3RyICJCeXRlciBuYW1uIHDDpSAlcyB0aWxsICVzIG9jaCAlcyB0aWxsICVzIGlzdMOkbGxldCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ0NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAocmVuYW1lL2FkZCk6IFJlbmFtZSAlcy0+JXMgaW4gJXMuICVzIGFkZGVkIGluICVzIgogbXNnc3RyICJLT05GTElLVCAobmFtbmJ5dGUvdGlsbMOkZ2cpOiBOYW1uYnl0ZSAlcy0+JXMgaSAlcy4gJXMgdGlsbGFnZCBpICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyBtZXJnZWQgJXMiCiBtc2dzdHIgIkzDpGdnZXIgdGlsbCBzYW1tYW5zbGFnZW4gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NjIgbWVyZ2UtcmVjdXJzaXZlLmM6MTY2MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MyBtZXJnZS1yZWN1cnNpdmUuYzoxNjYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyBhcyAlcyBpbnN0ZWFkIgogbXNnc3RyICJMw6RnZ2VyIHRpbGwgc29tICVzIGlzdMOkbGxlciIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBvYmplY3QgJXMiCiBtc2dzdHIgImthbiBpbnRlIGzDpHNhIG9iamVrdGV0ICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTE2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAlcyBpcyBub3QgYSBibG9iIgogbXNnc3RyICJvYmpla3RldCAlcyDDpHIgaW50ZSBlbiBibG9iIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY1CiBtc2dpZCAibW9kaWZ5IgogbXNnc3RyICLDpG5kcmEiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjUKIG1zZ2lkICJtb2RpZmllZCIKIG1zZ3N0ciAiw6RuZHJhZCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NQogbXNnaWQgImNvbnRlbnQiCiBtc2dzdHIgImlubmVow6VsbCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU4MgogbXNnaWQgImFkZC9hZGQiCiBtc2dzdHIgInRpbGzDpGdnL3RpbGzDpGdnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjE1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwZWQgJXMgKG1lcmdlZCBzYW1lIGFzIGV4aXN0aW5nKSIKIG1zZ3N0ciAiSG9wcGFkZSDDtnZlciAlcyAoc2FtbWFuc2xhZ2VuIHNhbW1hIHNvbSBiZWZpbnRsaWcpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjI5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF1dG8tbWVyZ2luZyAlcyIKIG1zZ3N0ciAiU2zDpXIgaWhvcCAlcyBhdXRvbWF0aXNrdCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMyBnaXQtc3VibW9kdWxlLnNoOjEwMjkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQgZ2l0LXN1Ym1vZHVsZS5zaDoxMTE4CiBtc2dpZCAic3VibW9kdWxlIgogbXNnc3RyICJ1bmRlcm1vZHVsIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUICglcyk6IE1lcmdlIGNvbmZsaWN0IGluICVzIgogbXNnc3RyICJLT05GTElLVCAoJXMpOiBTYW1tYW5zbGFnbmluZ3Nrb25mbGlrdCBpICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzI0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzIgogbXNnc3RyICJUYXIgYm9ydCAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc0OQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1MAogbXNnaWQgImZpbGUvZGlyZWN0b3J5IgogbXNnc3RyICJmaWwva2F0YWxvZyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NgogbXNnaWQgImRpcmVjdG9yeS9maWxlIgogbXNnc3RyICJrYXRhbG9nL2ZpbCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc2MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAoJXMpOiBUaGVyZSBpcyBhIGRpcmVjdG9yeSB3aXRoIG5hbWUgJXMgaW4gJXMuIEFkZGluZyAlcyBhcyAlcyIKIG1zZ3N0ciAiIgogIktPTkZMSUtUICglcyk6IERldCBmaW5ucyBlbiBrYXRhbG9nIG1lZCBuYW1uZXQgJXMgaSAlcy4gTMOkZ2dlciB0aWxsICVzIHNvbSAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgJXMiCiBtc2dzdHIgIkzDpGdnZXIgdGlsbCAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc4NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc4OAogbXNnaWQgIkZhdGFsIG1lcmdlIGZhaWx1cmUsIHNob3VsZG4ndCBoYXBwZW4uIgogbXNnc3RyICLDlmRlc2RpZ2VydCBzYW1tYW5zbGFnbmluZ3NmZWwsIGJvcmRlIGludGUgaW50csOkZmZhLiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgwNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgwNwogbXNnaWQgIkFscmVhZHkgdXAtdG8tZGF0ZSEiCiBtc2dzdHIgIlJlZGFuIMOgIGpvdXIhIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODE1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1lcmdpbmcgb2YgdHJlZXMgJXMgYW5kICVzIGZhaWxlZCIKIG1zZ3N0ciAic2FtbWFuc2xhZ25pbmcgYXYgdHLDpGRlbiAlcyBvY2ggJXMgbWlzc2x5Y2thZGVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODQ1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVucHJvY2Vzc2VkIHBhdGg/Pz8gJXMiCiBtc2dzdHIgIk9iZWhhbmRsYWQgc8O2a3bDpGc/Pz8gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTEKIG1zZ2lkICJNZXJnaW5nOiIKIG1zZ3N0ciAiU2zDpXIgaWhvcDoiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5MDMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZm91bmQgJXUgY29tbW9uIGFuY2VzdG9yOiIKIG1zZ2lkX3BsdXJhbCAiZm91bmQgJXUgY29tbW9uIGFuY2VzdG9yczoiCiBtc2dzdHJbMF0gImhpdHRhZGUgJXUgZ2VtZW5zYW0gZsO2cmZhZGVyOiIKIG1zZ3N0clsxXSAiaGl0dGFkZSAldSBnZW1lbnNhbW1hIGbDtnJmw6RkZXI6IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTQwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTQxCiBtc2dpZCAibWVyZ2UgcmV0dXJuZWQgbm8gY29tbWl0IgogbXNnc3RyICJzYW1tYW5zbGFnbmluZ2VuIHJldHVybmVyYWRlIGluZ2VuIGluY2hlY2tuaW5nIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTk3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSB0b2xrYSBvYmpla3RldCBcIiVzXCIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjIwMDkgYnVpbHRpbi9tZXJnZS5jOjY1OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjAxMCBidWlsdGluL21lcmdlLmM6NjcyCiBtc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGluZGV4LiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBza3JpdmEgaW5kZXhldC4iCiAKLSM6IG9iamVjdC5jOjE5NQorIzogbm90ZXMtdXRpbHMuYzo0MAorbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKK21zZ3N0ciAiS2FuIGludGUgY2hlY2thIGluIG9pbml0aWVyYXQvb3JlZmVyZXJhdCBhbnRlY2tuaW5nc3Ryw6RkIgorCisjOiBub3Rlcy11dGlscy5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIKK21zZ3N0ciAiRmVsYWt0aWd0IHbDpHJkZSBmw7ZyIG5vdGVzLnJld3JpdGVNb2RlOiAnJXMnIgorCisjOiBub3Rlcy11dGlscy5jOjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgorbXNnc3RyICJWw6RncmFyIHNrcml2YSDDtnZlciBhbnRlY2tuaW5nYXIgaSAlcyAodXRhbmbDtnIgcmVmcy9ub3Rlcy8pIgorCisjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIGlzIHRoZSBuYW1lIG9mIHRoZQorIy4gZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBzZWNvbmQgJXMgaXMgaXRzIHZhbHVlCisjOiBub3Rlcy11dGlscy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCittc2dzdHIgIkZlbGFrdGlndCB2w6RyZGUgcMOlICVzOiBcIiVzXCIiCisKKyM6IG9iamVjdC5jOjIwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcGFyc2Ugb2JqZWN0OiAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSB0b2xrYSBvYmpla3RldDogJXMiCkBAIC04NjcsMTggKzg5MywxOCBAQAogbXNnaWQgIiclcycgaXMgYmV5b25kIGEgc3ltYm9saWMgbGluayIKIG1zZ3N0ciAiXCIlc1wiIMOkciBww6UgYW5kcmEgc2lkYW4gYXYgZW4gc3ltYm9saXNrIGzDpG5rIgogCi0jOiByZW1vdGUuYzoxNzgxCisjOiByZW1vdGUuYzoxNzg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0LlxuIgogbXNnaWRfcGx1cmFsICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdHMuXG4iCiBtc2dzdHJbMF0gIkRpbiBncmVuIGxpZ2dlciBmw7ZyZSBcIiVzXCIgbWVkICVkIGluY2hlY2tuaW5nLlxuIgogbXNnc3RyWzFdICJEaW4gZ3JlbiBsaWdnZXIgZsO2cmUgXCIlc1wiIG1lZCAlZCBpbmNoZWNrbmluZ2FyLlxuIgogCi0jOiByZW1vdGUuYzoxNzg3CisjOiByZW1vdGUuYzoxNzk0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBwdXNoXCIgZsO2ciBhdHQgcHVibGljZXJhIGRpbmEgbG9rYWxhIGluY2hlY2tuaW5nYXIpXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTAKKyM6IHJlbW90ZS5jOjE3OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0LCBhbmQgY2FuIGJlIGZhc3QtZm9yd2FyZGVkLlxuIgogbXNnaWRfcGx1cmFsICIiCkBAIC04ODgsMTEgKzkxNCwxMSBAQAogbXNnc3RyWzFdICIiCiAiRGluIGdyZW4gbGlnZ2VyIGVmdGVyIFwiJXNcIiBtZWQgJWQgaW5jaGVja25pbmdhciwgb2NoIGthbiBzbmFiYnNwb2xhcy5cbiIKIAotIzogcmVtb3RlLmM6MTc5OAorIzogcmVtb3RlLmM6MTgwNQogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gdXBkYXRlIHlvdXIgbG9jYWwgYnJhbmNoKVxuIgogbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IHB1bGxcIiBmw7ZyIGF0dCB1cHBkYXRlcmEgZGluIGxva2FsYSBncmVuKVxuIgogCi0jOiByZW1vdGUuYzoxODAxCisjOiByZW1vdGUuYzoxODA4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3VyIGJyYW5jaCBhbmQgJyVzJyBoYXZlIGRpdmVyZ2VkLFxuIgpAQCAtOTA3LDE4ICs5MzMsMjcgQEAKICJEaW4gZ3JlbiBvY2ggXCIlc1wiIGhhciBkaXZlcmdlcmF0LFxuIgogIm9jaCBoYXIgJWQgcmVzcGVrdGl2ZSAlZCBvbGlrYSBpbmNoZWNrbmluZ2FyLlxuIgogCi0jOiByZW1vdGUuYzoxODExCisjOiByZW1vdGUuYzoxODE4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1bGxcIiB0byBtZXJnZSB0aGUgcmVtb3RlIGJyYW5jaCBpbnRvIHlvdXJzKVxuIgogbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IHB1bGxcIiBmw7ZyIGF0dCBzbMOlIGlob3AgZmrDpHJyZ3JlbmVuIG1lZCBkaW4gZWdlbilcbiIKIAotIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3NzYgYnVpbHRpbi9tZXJnZS5jOjg4OSBidWlsdGluL21lcmdlLmM6OTk5Ci0jOiBidWlsdGluL21lcmdlLmM6MTAwOQorIzogcnVuLWNvbW1hbmQuYzo4MAorbXNnaWQgIm9wZW4gL2Rldi9udWxsIGZhaWxlZCIKK21zZ3N0ciAibWlzc2x5Y2thZGVzIMO2cHBuYSAvZGV2L251bGwiCisKKyM6IHJ1bi1jb21tYW5kLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHVwMiglZCwlZCkgZmFpbGVkIgorbXNnc3RyICJkdXAyKCVkLCVkKSBtaXNzbHlja2FkZXMiCisKKyM6IHNlcXVlbmNlci5jOjIwNiBidWlsdGluL21lcmdlLmM6NzkwIGJ1aWx0aW4vbWVyZ2UuYzo5MDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDEzIGJ1aWx0aW4vbWVyZ2UuYzoxMDIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmciCiBtc2dzdHIgIkt1bmRlIGludGUgw7ZwcG5hIFwiJXNcIiBmw7ZyIHNrcml2bmluZyIKIAotIzogc2VxdWVuY2VyLmM6MjA4IGJ1aWx0aW4vbWVyZ2UuYzozMzUgYnVpbHRpbi9tZXJnZS5jOjc3OQotIzogYnVpbHRpbi9tZXJnZS5jOjEwMDEgYnVpbHRpbi9tZXJnZS5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjIwOCBidWlsdGluL21lcmdlLmM6MzUwIGJ1aWx0aW4vbWVyZ2UuYzo3OTMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDE1IGJ1aWx0aW4vbWVyZ2UuYzoxMDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAnJXMnIgogbXNnc3RyICJLdW5kZSBpbnRlIHNrcml2YSB0aWxsIFwiJXNcIiIKQEAgLTk0MSw3ICs5NzYsNyBAQAogIm1lZCBcImdpdCBhZGQgPHPDtmt2w6RnYXI+XCIgZWxsZXIgXCJnaXQgcm0gPHPDtmt2w6RnYXI+XCJcbiIKICJvY2ggY2hlY2thIGluIHJlc3VsdGF0ZXQgbWVkIFwiZ2l0IGNvbW1pdFwiIgogCi0jOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODU5IHNlcXVlbmNlci5jOjk0MgorIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg2OSBzZXF1ZW5jZXIuYzo5NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICVzIgogbXNnc3RyICJLdW5kZSBpbnRlIHNrcml2YSB0aWxsICVzIgpAQCAtOTY0LDIxNSArOTk5LDIzNyBAQAogbXNnc3RyICJDaGVja2EgaW4gZGluYSDDpG5kcmluZ2FyIGVsbGVyIGFudsOkbmQgXCJzdGFzaFwiIGbDtnIgYXR0IGZvcnRzw6R0dGEuIgogCiAjLiBUUkFOU0xBVE9SUzogJXMgd2lsbCBiZSAicmV2ZXJ0IiBvciAiY2hlcnJ5LXBpY2siCi0jOiBzZXF1ZW5jZXIuYzozMTkKKyM6IHNlcXVlbmNlci5jOjMyNAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIlczogS3VuZGUgaW50ZSBza3JpdmEgbnkgaW5kZXhmaWwiCiAKLSM6IHNlcXVlbmNlci5jOjM1MAorIzogc2VxdWVuY2VyLmM6MzU1CiBtc2dpZCAiQ291bGQgbm90IHJlc29sdmUgSEVBRCBjb21taXRcbiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBiZXN0w6RtbWEgSEVBRDpzIGluY2hlY2tuaW5nXG4iCiAKLSM6IHNlcXVlbmNlci5jOjM3MQorIzogc2VxdWVuY2VyLmM6Mzc3CiBtc2dpZCAiVW5hYmxlIHRvIHVwZGF0ZSBjYWNoZSB0cmVlXG4iCiBtc2dzdHIgIkthbiBpbnRlIHVwcGRhdGVyYSBjYWNoZXRyw6RkXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQxNgorIzogc2VxdWVuY2VyLmM6NDIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBjb21taXQgJXNcbiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSB0b2xrYSBpbmNoZWNrbmluZ2VuICVzXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQyMQorIzogc2VxdWVuY2VyLmM6NDI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzXG4iCiBtc2dzdHIgIkt1bmRlIGludGUgdG9sa2EgZsO2csOkbGRyYWluY2hlY2tuaW5nZW4gJXNcbiIKIAotIzogc2VxdWVuY2VyLmM6NDg3CisjOiBzZXF1ZW5jZXIuYzo0OTMKIG1zZ2lkICJZb3VyIGluZGV4IGZpbGUgaXMgdW5tZXJnZWQuIgogbXNnc3RyICJEaW4gaW5kZXhmaWwgaGFyIGludGUgc2xhZ2l0cyBpaG9wLiIKIAotIzogc2VxdWVuY2VyLmM6NTA2CisjOiBzZXF1ZW5jZXIuYzo1MTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGlzIGEgbWVyZ2UgYnV0IG5vIC1tIG9wdGlvbiB3YXMgZ2l2ZW4uIgogbXNnc3RyICJJbmNoZWNrbmluZyAlcyDDpHIgZW4gc2FtbWFuc2xhZ25pbmcsIG1lbiBmbGFnZ2FuIC1tIGFuZ2F2cyBpbnRlLiIKIAotIzogc2VxdWVuY2VyLmM6NTE0CisjOiBzZXF1ZW5jZXIuYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgcGFyZW50ICVkIgogbXNnc3RyICJJbmNoZWNrbmluZyAlcyBoYXIgaW50ZSBmw7Zyw6RsZGVyICVkIgogCi0jOiBzZXF1ZW5jZXIuYzo1MTgKKyM6IHNlcXVlbmNlci5jOjUyNAogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWlubGluZSB3YXMgc3BlY2lmaWVkIGJ1dCBjb21taXQgJXMgaXMgbm90IGEgbWVyZ2UuIgogbXNnc3RyICJIdXZ1ZGxpbmplIGFuZ2F2cywgbWVuIGluY2hlY2tuaW5nZW4gJXMgw6RyIGludGUgZW4gc2FtbWFuc2xhZ25pbmciCiAKICMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgd2lsbCBiZSAicmV2ZXJ0IiBvcgogIy4gImNoZXJyeS1waWNrIiwgdGhlIHNlY29uZCAlcyBhIFNIQTEKLSM6IHNlcXVlbmNlci5jOjUzMQorIzogc2VxdWVuY2VyLmM6NTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW5ub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlcyIKIG1zZ3N0ciAiJXM6IGthbiBpbnRlIHRvbGthIGbDtnLDpGxkcmFpbmNoZWNrbmluZ2VuICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo1MzUKKyM6IHNlcXVlbmNlci5jOjU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZ2V0IGNvbW1pdCBtZXNzYWdlIGZvciAlcyIKIG1zZ3N0ciAiS2FuIGludGUgaMOkbXRhIGluY2hlY2tuaW5nc21lZGRlbGFuZGUgZsO2ciAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjIxCisjOiBzZXF1ZW5jZXIuYzo2MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJldmVydCAlcy4uLiAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSDDpW5ncmEgJXMuLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjYyMgorIzogc2VxdWVuY2VyLmM6NjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBhcHBseSAlcy4uLiAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSB0aWxsw6RtcGEgJXMuLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjY1NAorIzogc2VxdWVuY2VyLmM6NjY0CiBtc2dpZCAiZW1wdHkgY29tbWl0IHNldCBwYXNzZWQiCiBtc2dzdHIgImRlbiBhbmdpdm5hIHVwcHPDpHR0bmluZ2VuIGluY2hlY2tuaW5nYXIgw6RyIHRvbSIKIAotIzogc2VxdWVuY2VyLmM6NjYyCisjOiBzZXF1ZW5jZXIuYzo2NzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0ICVzOiBmYWlsZWQgdG8gcmVhZCB0aGUgaW5kZXgiCiBtc2dzdHIgImdpdCAlczogbWlzc2x5Y2thZGVzIGzDpHNhIGluZGV4ZXQiCiAKLSM6IHNlcXVlbmNlci5jOjY2NworIzogc2VxdWVuY2VyLmM6Njc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICJnaXQgJXM6IG1pc3NseWNrYWRlcyB1cHBkYXRlcmEgaW5kZXhldCIKIAotIzogc2VxdWVuY2VyLmM6NzI1CisjOiBzZXF1ZW5jZXIuYzo3MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90ICVzIGR1cmluZyBhICVzIgogbXNnc3RyICJrYW4gaW50ZSAlcyB1bmRlciBlbiAlcyIKIAotIzogc2VxdWVuY2VyLmM6NzQ3CisjOiBzZXF1ZW5jZXIuYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGxpbmUgJWQuIgogbXNnc3RyICJLYW4gaW50ZSB0b2xrYSByYWQgJWQuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NTIKKyM6IHNlcXVlbmNlci5jOjc2MgogbXNnaWQgIk5vIGNvbW1pdHMgcGFyc2VkLiIKIG1zZ3N0ciAiSW5nYSBpbmNoZWNrbmluZ2FyIGzDpHN0ZXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NjUKKyM6IHNlcXVlbmNlci5jOjc3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAlcyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSDDtnBwbmEgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjc2OQorIzogc2VxdWVuY2VyLmM6Nzc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkICVzLiIKIG1zZ3N0ciAia3VuZGUgaW50ZSBsw6RzYSAlcy4iCiAKLSM6IHNlcXVlbmNlci5jOjc3NgorIzogc2VxdWVuY2VyLmM6Nzg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVudXNhYmxlIGluc3RydWN0aW9uIHNoZWV0OiAlcyIKIG1zZ3N0ciAiT2FudsOkbmRiYXJ0IG1hbnVzOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODA0CisjOiBzZXF1ZW5jZXIuYzo4MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBrZXk6ICVzIgogbXNnc3RyICJGZWxha3RpZyBueWNrZWw6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDcKKyM6IHNlcXVlbmNlci5jOjgxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCiBtc2dzdHIgIkZlbGFrdGlndCB2w6RyZGUgZsO2ciAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgxOQorIzogc2VxdWVuY2VyLmM6ODI5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBvcHRpb25zIHNoZWV0OiAlcyIKIG1zZ3N0ciAiVHJhc2lndCBtYW51czogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjg0MAorIzogc2VxdWVuY2VyLmM6ODUwCiBtc2dpZCAiYSBjaGVycnktcGljayBvciByZXZlcnQgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyIKIG1zZ3N0ciAiZW4gXCJjaGVycnktcGlja1wiIGVsbGVyIFwicmV2ZXJ0XCIgcMOlZ8OlciByZWRhbiIKIAotIzogc2VxdWVuY2VyLmM6ODQxCisjOiBzZXF1ZW5jZXIuYzo4NTEKIG1zZ2lkICJ0cnkgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogbXNnc3RyICJ0ZXN0YSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiAKLSM6IHNlcXVlbmNlci5jOjg0NQorIzogc2VxdWVuY2VyLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgc2VxdWVuY2VyIGRpcmVjdG9yeSAlcyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBza2FwYSBcInNlcXVlbmNlclwiLWthdGFsb2dlbiBcIiVzXCIiCiAKLSM6IHNlcXVlbmNlci5jOjg2MSBzZXF1ZW5jZXIuYzo5NDYKKyM6IHNlcXVlbmNlci5jOjg3MSBzZXF1ZW5jZXIuYzo5NTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRXJyb3Igd3JhcHBpbmcgdXAgJXMuIgogbXNnc3RyICJGZWwgdmlkIG9tYnJ5dG5pbmcgYXYgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODAgc2VxdWVuY2VyLmM6MTAxNAorIzogc2VxdWVuY2VyLmM6ODkwIHNlcXVlbmNlci5jOjEwMjQKIG1zZ2lkICJubyBjaGVycnktcGljayBvciByZXZlcnQgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgImluZ2VuIFwiY2hlcnJ5LXBpY2tcIiBlbGxlciBcInJldmVydFwiIHDDpWfDpXIiCiAKLSM6IHNlcXVlbmNlci5jOjg4MgorIzogc2VxdWVuY2VyLmM6ODkyCiBtc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKIG1zZ3N0ciAia2FuIGludGUgYmVzdMOkbW1hIEhFQUQiCiAKLSM6IHNlcXVlbmNlci5jOjg4NAorIzogc2VxdWVuY2VyLmM6ODk0CiBtc2dpZCAiY2Fubm90IGFib3J0IGZyb20gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgImthbiBpbnRlIGF2YnJ5dGEgZnLDpW4gZW4gZ3JlbiBzb20gw6RubnUgaW50ZSDDpHIgZsO2ZGQiCiAKLSM6IHNlcXVlbmNlci5jOjkwNiBidWlsdGluL2FwcGx5LmM6NDA2MAorIzogc2VxdWVuY2VyLmM6OTE2IGJ1aWx0aW4vYXBwbHkuYzo0MDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAia2FuIGludGUgw7ZwcG5hICVzOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6OTA5CisjOiBzZXF1ZW5jZXIuYzo5MTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICJrYW4gaW50ZSBsw6RzYSAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjkxMAorIzogc2VxdWVuY2VyLmM6OTIwCiBtc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSIKIG1zZ3N0ciAib3bDpG50YXQgZmlsc2x1dCIKIAotIzogc2VxdWVuY2VyLmM6OTE2CisjOiBzZXF1ZW5jZXIuYzo5MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RvcmVkIHByZS1jaGVycnktcGljayBIRUFEIGZpbGUgJyVzJyBpcyBjb3JydXB0IgogbXNnc3RyICJzcGFyYWQgSEVBRC1maWwgZnLDpW4gZsO2cmUgXCJjaGVycnktcGlja1wiLCBcIiVzXCIsIMOkciB0cmFzaWciCiAKLSM6IHNlcXVlbmNlci5jOjkzOQorIzogc2VxdWVuY2VyLmM6OTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmb3JtYXQgJXMuIgogbXNnc3RyICJLdW5kZSBpbnRlIGZvcm1hdGVyYSAlcy4iCiAKLSM6IHNlcXVlbmNlci5jOjEwODMKKyM6IHNlcXVlbmNlci5jOjEwOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbid0IGNoZXJyeS1waWNrIGEgJXMiCiBtc2dzdHIgIiVzOiBrYW4gaW50ZSBnw7ZyYSBcImNoZXJyeS1waWNrXCIgcMOlIHR5cGVuIFwiJXNcIiIKIAotIzogc2VxdWVuY2VyLmM6MTA4NQorIzogc2VxdWVuY2VyLmM6MTA5NQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogYmFkIHJldmlzaW9uIgogbXNnc3RyICIlczogZmVsYWt0aWcgcmV2aXNpb24iCiAKLSM6IHNlcXVlbmNlci5jOjExMTkKKyM6IHNlcXVlbmNlci5jOjExMjkKIG1zZ2lkICJDYW4ndCByZXZlcnQgYXMgaW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIkthbiBpbnRlIMOlbmdyYSBzb20gZsO2cnN0YSBpbmNoZWNrbmluZyIKIAotIzogc2VxdWVuY2VyLmM6MTEyMAorIzogc2VxdWVuY2VyLmM6MTEzMAogbXNnaWQgIkNhbid0IGNoZXJyeS1waWNrIGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiS2FuIGludGUgZ8O2cmEgXCJjaGVycnktcGlja1wiIGkgZXR0IHRvbXQgaHV2dWQiCiAKLSM6IHNoYTFfbmFtZS5jOjEwMzYKKyM6IHNoYTFfbmFtZS5jOjQ0MAorbXNnaWQgIiIKKyJHaXQgbm9ybWFsbHkgbmV2ZXIgY3JlYXRlcyBhIHJlZiB0aGF0IGVuZHMgd2l0aCA0MCBoZXggY2hhcmFjdGVyc1xuIgorImJlY2F1c2UgaXQgd2lsbCBiZSBpZ25vcmVkIHdoZW4geW91IGp1c3Qgc3BlY2lmeSA0MC1oZXguIFRoZXNlIHJlZnNcbiIKKyJtYXkgYmUgY3JlYXRlZCBieSBtaXN0YWtlLiBGb3IgZXhhbXBsZSxcbiIKKyJcbiIKKyIgIGdpdCBjaGVja291dCAtYiAkYnIgJChnaXQgcmV2LXBhcnNlIC4uLilcbiIKKyJcbiIKKyJ3aGVyZSBcIiRiclwiIGlzIHNvbWVob3cgZW1wdHkgYW5kIGEgNDAtaGV4IHJlZiBpcyBjcmVhdGVkLiBQbGVhc2VcbiIKKyJleGFtaW5lIHRoZXNlIHJlZnMgYW5kIG1heWJlIGRlbGV0ZSB0aGVtLiBUdXJuIHRoaXMgbWVzc2FnZSBvZmYgYnlcbiIKKyJydW5uaW5nIFwiZ2l0IGNvbmZpZyBhZHZpY2Uub2JqZWN0TmFtZVdhcm5pbmcgZmFsc2VcIiIKK21zZ3N0ciAiIgorIkdpdCBza2FwYXIgbm9ybWFsdCBhbGRyaWcgcmVmZXJlbnNlciBzb20gc2x1dGFyIG1lZCA0MCBoZXhhZGVjaW1hbGFcbiIKKyJ0ZWNrZW4sIGTDpSBkZXR0YSBpZ25vcmVyYXMgbsOkciBkdSBhbmdlciA0MC1oZXggZW5iYXJ0LiBEZXNzYVxuIgorInJlZmVyZW5zZXIga2FuIHNrYXBhcyBhdiBtaXNzdGFnLiBUaWxsIGV4ZW1wZWwsIGbDtnJcbiIKKyJcbiIKKyIgIGdpdCBjaGVja291dCAtYiAkYnIgJChnaXQgcmV2LXBhcnNlIC4uLilcbiIKKyJcbiIKKyJkw6RyIFwiJGJyXCIgcMOlIG7DpWdvdCBzw6R0dCBibGl2aXQgdG9tdCBvY2ggZW4gNDAtaGV4LXJlZmVyZW5zIHNrYXBhdHMuXG4iCisiVW5kZXJzw7ZrIHJlZmVyZW5zZXJuYSBvY2ggdGEga2Fuc2tlIGJvcnQgZGVtLiBTdMOkbmcgYXYgbWVkZGVsYW5kZXRcbiIKKyJnZW5vbSBhdHQga8O2cmEgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiIgorCisjOiBzaGExX25hbWUuYzoxMDk3CiBtc2dpZCAiSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaCIKIG1zZ3N0ciAiSEVBRCBwZWthciBpbnRlIHDDpSBlbiBncmVuIgogCi0jOiBzaGExX25hbWUuYzoxMDM5CisjOiBzaGExX25hbWUuYzoxMTAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHN1Y2ggYnJhbmNoOiAnJXMnIgogbXNnc3RyICJPa8OkbmQgZ3JlbjogXCIlc1wiIgogCi0jOiBzaGExX25hbWUuYzoxMDQxCisjOiBzaGExX25hbWUuYzoxMTAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIgogbXNnc3RyICJJbmdlbiBzdGFuZGFyZHVwcHN0csO2bSBhbmdpdmVuIGbDtnIgZ3JlbmVuIFwiJXNcIiIKIAotIzogc2hhMV9uYW1lLmM6MTA0NAorIzogc2hhMV9uYW1lLmM6MTEwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJVcHN0cmVhbSBicmFuY2ggJyVzJyBub3Qgc3RvcmVkIGFzIGEgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCIKIG1zZ3N0ciAiVXBwc3Ryw7Ztc2dyZW5lbiBcIiVzXCIgw6RyIGludGUgbGFncmFkIHNvbSBlbiBmasOkcnJzcMOlcmFuZGUgZ3JlbiIKQEAgLTExODIsMTY2ICsxMjM5LDE2NiBAQAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJzogJXMiCiBtc2dzdHIgImthbiBpbnRlIGtvbW1hIMOldCBcIiVzXCI6ICVzIgogCi0jOiB3cmFwcGVyLmM6NDIzCisjOiB3cmFwcGVyLmM6NDI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJyIKIG1zZ3N0ciAia2FuIGludGUga29tbWEgw6V0IFwiJXNcIiIKIAotIzogd3JhcHBlci5jOjQzNAorIzogd3JhcHBlci5jOjQ0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gbG9vayB1cCBjdXJyZW50IHVzZXIgaW4gdGhlIHBhc3N3ZCBmaWxlOiAlcyIKIG1zZ3N0ciAia2FuIGludGUgc2zDpSB1cHAgYWt0dWVsbCBhbnbDpG5kYXJlIGkgcGFzc3dkLWZpbGVuOiAlcyIKIAotIzogd3JhcHBlci5jOjQzNQorIzogd3JhcHBlci5jOjQ0MQogbXNnaWQgIm5vIHN1Y2ggdXNlciIKIG1zZ3N0ciAib2vDpG5kIGFudsOkbmRhcmUiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MAorIzogd3Qtc3RhdHVzLmM6MTQxCiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICJFaiBzYW1tYW5zbGFnbmEgc8O2a3bDpGdhcjoiCiAKLSM6IHd0LXN0YXR1cy5jOjE2NyB3dC1zdGF0dXMuYzoxOTQKKyM6IHd0LXN0YXR1cy5jOjE2OCB3dC1zdGF0dXMuYzoxOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IHJlc2V0ICVzIDxmaWw+Li4uXCIgZsO2ciBhdHQgdGEgYm9ydCBmcsOlbiBrw7YpIgogCi0jOiB3dC1zdGF0dXMuYzoxNjkgd3Qtc3RhdHVzLmM6MTk2CisjOiB3dC1zdGF0dXMuYzoxNzAgd3Qtc3RhdHVzLmM6MTk3CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWw+Li4uXCIgZsO2ciBhdHQgdGEgYm9ydCBmcsOlbiBrw7YpIgogCi0jOiB3dC1zdGF0dXMuYzoxNzMKKyM6IHd0LXN0YXR1cy5jOjE3NAogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQgPGZpbGU+Li4uXCIgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBhZGQgPGZpbD4uLi5cIiBmw7ZyIGF0dCBhbmdlIGzDtnNuaW5nKSIKIAotIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjE3OQorIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBhZGQvcm0gPGZpbD4uLi5cIiBzb20gbMOkbXBsaWd0IGbDtnIgYXR0IGFuZ2UgbMO2c25pbmcpIgogCi0jOiB3dC1zdGF0dXMuYzoxNzcKKyM6IHd0LXN0YXR1cy5jOjE3OAogbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IHJtIDxmaWw+Li4uXCIgZsO2ciBhdHQgYW5nZSBsw7ZzbmluZykiCiAKLSM6IHd0LXN0YXR1cy5jOjE4OAorIzogd3Qtc3RhdHVzLmM6MTg5CiBtc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICLDhG5kcmluZ2FyIGF0dCBjaGVja2EgaW46IgogCi0jOiB3dC1zdGF0dXMuYzoyMDYKKyM6IHd0LXN0YXR1cy5jOjIwNwogbXNnaWQgIkNoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OiIKIG1zZ3N0ciAiw4RuZHJpbmdhciBlaiBpIGluY2hlY2tuaW5nc2vDtm46IgogCi0jOiB3dC1zdGF0dXMuYzoyMTAKKyM6IHd0LXN0YXR1cy5jOjIxMQogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQgPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIiCiAiICAoYW52w6RuZCBcImdpdCBhZGQgPGZpbD4uLi5cIiBmw7ZyIGF0dCB1cHBkYXRlcmEgdmFkIHNvbSBza2FsbCBjaGVja2FzIGluKSIKIAotIzogd3Qtc3RhdHVzLmM6MjEyCisjOiB3dC1zdGF0dXMuYzoyMTMKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogIiAgKGFudsOkbmQgXCJnaXQgYWRkL3JtIDxmaWw+Li4uXCIgZsO2ciBhdHQgdXBwZGF0ZXJhIHZhZCBzb20gc2thbGwgY2hlY2thcyBpbikiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMworIzogd3Qtc3RhdHVzLmM6MjE0CiBtc2dpZCAiIgogIiAgKHVzZSBcImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi5cIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpIgogbXNnc3RyICIiCiAiICAoYW52w6RuZCBcImdpdCBjaGVja291dCAtLSA8ZmlsPi4uLlwiIGbDtnIgYXR0IGbDtnJrYXN0YSDDpG5kcmluZ2FyIGkgIgogImFyYmV0c2thdGFsb2dlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjIxNQorIzogd3Qtc3RhdHVzLmM6MjE2CiBtc2dpZCAiICAoY29tbWl0IG9yIGRpc2NhcmQgdGhlIHVudHJhY2tlZCBvciBtb2RpZmllZCBjb250ZW50IGluIHN1Ym1vZHVsZXMpIgogbXNnc3RyICIiCiAiICAoY2hlY2thIGluIGVsbGVyIGbDtnJrYXN0YSBvc3DDpXJhdCBlbGxlciDDpG5kcmF0IGlubmVow6VsbCBpIHVuZGVybW9kdWxlcikiCiAKLSM6IHd0LXN0YXR1cy5jOjIyNworIzogd3Qtc3RhdHVzLmM6MjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCAlcyA8ZmlsZT4uLi5cIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIiCiAiICAoYW52w6RuZCBcImdpdCAlcyA8ZmlsPi4uLlwiIGbDtnIgYXR0IHRhIG1lZCBpIGRldCBzb20gc2thbGwgY2hlY2thcyBpbikiCiAKLSM6IHd0LXN0YXR1cy5jOjI0NAorIzogd3Qtc3RhdHVzLmM6MjQ1CiBtc2dpZCAiYnVnIgogbXNnc3RyICJwcm9ncmFtZmVsIgogCi0jOiB3dC1zdGF0dXMuYzoyNDkKKyM6IHd0LXN0YXR1cy5jOjI1MAogbXNnaWQgImJvdGggZGVsZXRlZDoiCiBtc2dzdHIgImJvcnR0YWdldCBhdiBiw6RnZ2U6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTAKKyM6IHd0LXN0YXR1cy5jOjI1MQogbXNnaWQgImFkZGVkIGJ5IHVzOiIKIG1zZ3N0ciAidGlsbGFndCBhdiBvc3M6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTEKKyM6IHd0LXN0YXR1cy5jOjI1MgogbXNnaWQgImRlbGV0ZWQgYnkgdGhlbToiCiBtc2dzdHIgImJvcnR0YWdldCBhdiBkZW06IgogCi0jOiB3dC1zdGF0dXMuYzoyNTIKKyM6IHd0LXN0YXR1cy5jOjI1MwogbXNnaWQgImFkZGVkIGJ5IHRoZW06IgogbXNnc3RyICJ0aWxsYWd0IGF2IGRlbToiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MworIzogd3Qtc3RhdHVzLmM6MjU0CiBtc2dpZCAiZGVsZXRlZCBieSB1czoiCiBtc2dzdHIgImJvcnR0YWdldCBhdiBvc3M6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTQKKyM6IHd0LXN0YXR1cy5jOjI1NQogbXNnaWQgImJvdGggYWRkZWQ6IgogbXNnc3RyICJ0aWxsYWd0IGF2IGLDpGdnZToiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NQorIzogd3Qtc3RhdHVzLmM6MjU2CiBtc2dpZCAiYm90aCBtb2RpZmllZDoiCiBtc2dzdHIgIsOkbmRyYXQgYXYgYsOkZ2dlOiIKIAotIzogd3Qtc3RhdHVzLmM6Mjg1CisjOiB3dC1zdGF0dXMuYzoyODYKIG1zZ2lkICJuZXcgY29tbWl0cywgIgogbXNnc3RyICJueWEgaW5jaGVja25pbmdhciwgIgogCi0jOiB3dC1zdGF0dXMuYzoyODcKKyM6IHd0LXN0YXR1cy5jOjI4OAogbXNnaWQgIm1vZGlmaWVkIGNvbnRlbnQsICIKIG1zZ3N0ciAiw6RuZHJhdCBpbm5laMOlbGwsICIKIAotIzogd3Qtc3RhdHVzLmM6Mjg5CisjOiB3dC1zdGF0dXMuYzoyOTAKIG1zZ2lkICJ1bnRyYWNrZWQgY29udGVudCwgIgogbXNnc3RyICJvc3DDpXJhdCBpbm5laMOlbGwsICIKIAotIzogd3Qtc3RhdHVzLmM6MzA2CisjOiB3dC1zdGF0dXMuYzozMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IGZpbGU6ICAgJXMiCiBtc2dzdHIgIm55IGZpbDogICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMDkKKyM6IHd0LXN0YXR1cy5jOjMxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKIG1zZ3N0ciAia29waWVyYWQ6ICAgJXMgLT4gJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxMgorIzogd3Qtc3RhdHVzLmM6MzEzCiAjLCBjLWZvcm1hdAogbXNnaWQgImRlbGV0ZWQ6ICAgICVzIgogbXNnc3RyICJib3J0dGFnZW46ICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE1CisjOiB3dC1zdGF0dXMuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9kaWZpZWQ6ICAgJXMiCiBtc2dzdHIgIsOkbmRyYWQ6ICAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE4CisjOiB3dC1zdGF0dXMuYzozMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVuYW1lZDogICAgJXMgLT4gJXMiCiBtc2dzdHIgIm5hbW5ieXRlOiAgICVzIC0+ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjEKKyM6IHd0LXN0YXR1cy5jOjMyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJ0eXBlY2hhbmdlOiAlcyIKIG1zZ3N0ciAidHlwYnl0ZTogICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMyNAorIzogd3Qtc3RhdHVzLmM6MzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd246ICAgICVzIgogbXNnc3RyICJva8OkbmQ6ICAgICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMyNworIzogd3Qtc3RhdHVzLmM6MzI4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVubWVyZ2VkOiAgICVzIgogbXNnc3RyICJvc2FtbWFuc2wuOiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzMwCisjOiB3dC1zdGF0dXMuYzozMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYnVnOiB1bmhhbmRsZWQgZGlmZiBzdGF0dXMgJWMiCiBtc2dzdHIgInByb2dyYW1mZWw6IGRpZmYtc3RhdHVzICVjIGVqIGhhbnRlcmFkIgpAQCAtMTM1MCw3ICsxNDA3LDcgQEAKIG1zZ2lkICJZb3UgaGF2ZSB1bm1lcmdlZCBwYXRocy4iCiBtc2dzdHIgIkR1IGhhciBlaiBzYW1tYW5zbGFnbmEgc8O2a3bDpGdhci4iCiAKLSM6IHd0LXN0YXR1cy5jOjgwNiB3dC1zdGF0dXMuYzo5NTgKKyM6IHd0LXN0YXR1cy5jOjgwNgogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjb21taXRcIikiCiBtc2dzdHIgIiAgKHLDpHR0YSBrb25mbGlrdGVyIG9jaCBrw7ZyIFwiZ2l0IGNvbW1pdFwiKSIKIApAQCAtMTM3MSw4ICsxNDI4LDggQEAKIG1zZ3N0ciAiQWt0dWVsbCBwYXRjaCDDpHIgdG9tLiIKIAogIzogd3Qtc3RhdHVzLmM6ODI5Ci1tc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKLW1zZ3N0ciAiICAocsOkdHRhIGtvbmZsaWt0ZXIgb2NoIGvDtnIgc2VkYW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgIChyw6R0dGEga29uZmxpa3RlciBvY2gga8O2ciBzZWRhbiBcImdpdCBhbSAtLWNvbnRpbnVlXCIpIgogCiAjOiB3dC1zdGF0dXMuYzo4MzEKIG1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIKQEAgLTE0NDgsMzcgKzE1MDUsNDcgQEAKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZy4iCiBtc2dzdHIgIkR1IGjDpWxsZXIgcMOlIG1lZCBlbiBcImNoZXJyeS1waWNrXCIuIgogCi0jOiB3dC1zdGF0dXMuYzo5NjEKLW1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY29tbWl0XCIpIgotbXNnc3RyICIgIChhbGxhIGtvbmZsaWt0ZXIgaGFyIHLDpHR0YXRzOiBrw7ZyIFwiZ2l0IGNvbW1pdFwiKSIKKyM6IHd0LXN0YXR1cy5jOjk1OAorbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgIChyw6R0dGEga29uZmxpa3RlciBvY2gga8O2ciBzZWRhbiBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo5NzAKKyM6IHd0LXN0YXR1cy5jOjk2MQorbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgIChhbGxhIGtvbmZsaWt0ZXIgcsOkdHRhZGU6IGvDtnIgXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKKworIzogd3Qtc3RhdHVzLmM6OTYzCittc2dpZCAiICAodXNlIFwiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnRcIiB0byBjYW5jZWwgdGhlIGNoZXJyeS1waWNrIG9wZXJhdGlvbikiCittc2dzdHIgIiIKKyIgIChhbnbDpG5kIFwiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnRcIiBmw7ZyIGF0dCBhdmJyeXRhIFwiY2hlcnJ5LXBpY2tcIi0iCisib3BlcmF0aW9uZW4pIgorCisjOiB3dC1zdGF0dXMuYzo5NzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmV2ZXJ0aW5nIGNvbW1pdCAlcy4iCiBtc2dzdHIgIkR1IGjDpWxsZXIgcMOlIG1lZCBhdHQgw6VuZ3JhIGluY2hlY2tuaW5nZW4gJXMuIgogCi0jOiB3dC1zdGF0dXMuYzo5NzUKKyM6IHd0LXN0YXR1cy5jOjk3NwogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAocsOkdHRhIGtvbmZsaWt0ZXIgb2NoIGvDtnIgc2VkYW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjk3OAorIzogd3Qtc3RhdHVzLmM6OTgwCiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIgIChhbGxhIGtvbmZsaWt0ZXIgcsOkdHRhZGU6IGvDtnIgXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjk4MAorIzogd3Qtc3RhdHVzLmM6OTgyCiBtc2dpZCAiICAodXNlIFwiZ2l0IHJldmVydCAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSByZXZlcnQgb3BlcmF0aW9uKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCByZXZlcnQgLS1hYm9ydFwiIGbDtnIgYXR0IGF2YnJ5dGEgw6VuZ3JhbmRldCkiCiAKLSM6IHd0LXN0YXR1cy5jOjk5MQorIzogd3Qtc3RhdHVzLmM6OTkzCiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZywgc3RhcnRlZCBmcm9tIGJyYW5jaCAnJXMnLiIKIG1zZ3N0ciAiRHUgaMOlbGxlciBww6UgbWVkIGVuIFwiYmlzZWN0XCIsIHN0YXJ0YWQgZnLDpW4gZ3JlbmVuIFwiJXNcIi4iCiAKLSM6IHd0LXN0YXR1cy5jOjk5NQorIzogd3Qtc3RhdHVzLmM6OTk3CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLiIKIG1zZ3N0ciAiRHUgaMOlbGxlciBww6UgbWVkIGVuIFwiYmlzZWN0XCIuIgogCi0jOiB3dC1zdGF0dXMuYzo5OTgKKyM6IHd0LXN0YXR1cy5jOjEwMDAKIG1zZ2lkICIgICh1c2UgXCJnaXQgYmlzZWN0IHJlc2V0XCIgdG8gZ2V0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiIKICIgIChhbnbDpG5kIFwiZ2l0IGJpc2VjdCByZXNldFwiIGbDtnIgYXR0IGtvbW1hIHRpbGxiYWthIHRpbGwgdXJzcHJ1bmdzZ3JlbmVuKSIKQEAgLTE0ODcsMzEgKzE1NTQsMzUgQEAKIG1zZ2lkICJPbiBicmFuY2ggIgogbXNnc3RyICJQw6UgZ3JlbmVuICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NAorIzogd3Qtc3RhdHVzLmM6MTE4MAorbXNnaWQgInJlYmFzZSBpbiBwcm9ncmVzczsgb250byAiCittc2dzdHIgIm9tYmFzZXJpbmcgcMOlZ8Olcjsgb3ZhbnDDpSIKKworIzogd3Qtc3RhdHVzLmM6MTE4NwogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgogbXNnc3RyICJIRUFEIGZyw6Vua29wcGxhZCB2aWQgIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg2CisjOiB3dC1zdGF0dXMuYzoxMTg5CiBtc2dpZCAiSEVBRCBkZXRhY2hlZCBmcm9tICIKIG1zZ3N0ciAiSEVBRCBmcsOlbmtvcHBsYWQgZnLDpW4gIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg5CisjOiB3dC1zdGF0dXMuYzoxMTkyCiBtc2dpZCAiTm90IGN1cnJlbnRseSBvbiBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAiSW50ZSBww6UgbsOlZ29uIGdyZW4gZsO2ciBuw6RydmFyYW5kZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyMDYKKyM6IHd0LXN0YXR1cy5jOjEyMDkKIG1zZ2lkICJJbml0aWFsIGNvbW1pdCIKIG1zZ3N0ciAiRsO2cnN0YSBpbmNoZWNrbmluZyIKIAotIzogd3Qtc3RhdHVzLmM6MTIyMAorIzogd3Qtc3RhdHVzLmM6MTIyMwogbXNnaWQgIlVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAiT3Nww6VyYWRlIGZpbGVyIgogCi0jOiB3dC1zdGF0dXMuYzoxMjIyCisjOiB3dC1zdGF0dXMuYzoxMjI1CiBtc2dpZCAiSWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiSWdub3JlcmFkZSBmaWxlciIKIAotIzogd3Qtc3RhdHVzLmM6MTIyNgorIzogd3Qtc3RhdHVzLmM6MTIyOQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gJ3N0YXR1cyAtdW5vJ1xuIgpAQCAtMTUyMywzMiArMTU5NCwzMiBAQAogImzDpGdnYSB0aWxsIG55YSBmaWxlciBzasOkbHYgKHNlIFwiZ2l0IGhlbHAgc3RhdHVzXCIpLiIKIAogIyAlcyDDpHIgbsOkc3RhIHN0csOkbmcgZWxsZXIgdG9tLgotIzogd3Qtc3RhdHVzLmM6MTIzMgorIzogd3Qtc3RhdHVzLmM6MTIzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICJPc3DDpXJhZGUgZmlsZXIgdmlzYXMgZWolcyIKIAotIzogd3Qtc3RhdHVzLmM6MTIzNAorIzogd3Qtc3RhdHVzLmM6MTIzNwogbXNnaWQgIiAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykiCiBtc2dzdHIgIiAoYW52w6RuZCBmbGFnZ2FuIC11IGbDtnIgYXR0IHZpc2Egb3Nww6VyYWRlIGZpbGVyKSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0MAorIzogd3Qtc3RhdHVzLmM6MTI0MwogbXNnaWQgIk5vIGNoYW5nZXMiCiBtc2dzdHIgIkluZ2Egw6RuZHJpbmdhciIKIAotIzogd3Qtc3RhdHVzLmM6MTI0NQorIzogd3Qtc3RhdHVzLmM6MTI0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlIFwiZ2l0IGFkZFwiIGFuZC9vciBcImdpdCBjb21taXQgLWFcIilcbiIKIG1zZ3N0ciAiIgogImluZ2Egw6RuZHJpbmdhciBhdHQgY2hlY2thIGluIChhbnbDpG5kIFwiZ2l0IGFkZFwiIG9jaC9lbGxlciBcImdpdCBjb21taXQgLWEiCiAiXCIpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNDgKKyM6IHd0LXN0YXR1cy5jOjEyNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKIG1zZ3N0ciAiaW5nYSDDpG5kcmluZ2FyIGF0dCBjaGVja2EgaW5cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1MQorIzogd3Qtc3RhdHVzLmM6MTI1NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50ICh1c2UgXCJnaXQgYWRkXCIgdG8gIgpAQCAtMTU1Nyw1MiArMTYyOCw1MiBAQAogImluZ2V0IGvDtmF0IGbDtnIgaW5jaGVja25pbmcsIG1lbiBvc3DDpXJhZGUgZmlsZXIgZmlubnMgKHNww6VyYSBtZWQgXCJnaXQgYWRkIgogIlwiKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU0CisjOiB3dC1zdGF0dXMuYzoxMjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgogbXNnc3RyICJpbmdldCBrw7ZhdCBmw7ZyIGluY2hlY2tuaW5nLCBtZW4gb3Nww6VyYWRlIGZpbGVyIGZpbm5zXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTcKKyM6IHd0LXN0YXR1cy5jOjEyNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKGNyZWF0ZS9jb3B5IGZpbGVzIGFuZCB1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iCiBtc2dzdHIgImluZ2V0IGF0dCBjaGVja2EgaW4gKHNrYXBhL2tvcGllcmEgZmlsZXIgb2NoIHNww6VyYSBtZWQgXCJnaXQgYWRkXCIpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjAgd3Qtc3RhdHVzLmM6MTI2NQorIzogd3Qtc3RhdHVzLmM6MTI2MyB3dC1zdGF0dXMuYzoxMjY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0XG4iCiBtc2dzdHIgImluZ2V0IGF0dCBjaGVja2EgaW5cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2MworIzogd3Qtc3RhdHVzLmM6MTI2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKVxuIgogbXNnc3RyICJpbmdldCBhdHQgY2hlY2thIGluIChhbnbDpG5kIC11IGbDtnIgYXR0IHZpc2Egb3Nww6VyYWRlIGZpbGVyKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjY3CisjOiB3dC1zdGF0dXMuYzoxMjcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIGRpcmVjdG9yeSBjbGVhblxuIgogbXNnc3RyICJpbmdldCBhdHQgY2hlY2thIGluLCBhcmJldHNrYXRhbG9nZW4gcmVuXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEzNzUKKyM6IHd0LXN0YXR1cy5jOjEzNzgKIG1zZ2lkICJIRUFEIChubyBicmFuY2gpIgogbXNnc3RyICJIRUFEIChpbmdlbiBncmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTM4MQorIzogd3Qtc3RhdHVzLmM6MTM4NAogbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKIG1zZ3N0ciAiRsO2cnN0YSBpbmNoZWNrbmluZyBww6UgIgogCi0jOiB3dC1zdGF0dXMuYzoxMzk2CisjOiB3dC1zdGF0dXMuYzoxMzk5CiBtc2dpZCAiYmVoaW5kICIKIG1zZ3N0ciAiZWZ0ZXIgIgogCi0jOiB3dC1zdGF0dXMuYzoxMzk5IHd0LXN0YXR1cy5jOjE0MDIKKyM6IHd0LXN0YXR1cy5jOjE0MDIgd3Qtc3RhdHVzLmM6MTQwNQogbXNnaWQgImFoZWFkICIKIG1zZ3N0ciAiZsO2cmUgIgogCi0jOiB3dC1zdGF0dXMuYzoxNDA0CisjOiB3dC1zdGF0dXMuYzoxNDA3CiBtc2dpZCAiLCBiZWhpbmQgIgogbXNnc3RyICIsIGVmdGVyICIKIAotIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNTIKKyM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byB1bmxpbmsgJyVzJyIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHRhIGJvcnQgbMOkbmtlbiBcIiVzXCIiCkBAIC0xNjg4LDcgKzE3NTksNyBAQAogbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCiBtc2dzdHIgImRpZmYtc3RhdHVzICVjIGbDtnJ2w6RudGFkZXMgaW50ZSIKIAotIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyMzMKKyM6IGJ1aWx0aW4vYWRkLmM6MTQ5IGJ1aWx0aW4vY29tbWl0LmM6MjUyCiBtc2dpZCAidXBkYXRpbmcgZmlsZXMgZmFpbGVkIgogbXNnc3RyICJtaXNzbHlja2FkZXMgdXBwZGF0ZXJhIGZpbGVyIgogCkBAIC0xNzAxLDcgKzE3NzIsNyBAQAogbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgogbXNnc3RyICJPc3DDpXJhZGUgw6RuZHJpbmdhciBlZnRlciBhdHQgaGEgdXBwZGF0ZXJhdCBpbmRleGV0OiIKIAotIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzIgYnVpbHRpbi9ybS5jOjI3NQorIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzMgYnVpbHRpbi9ybS5jOjMzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgogbXNnc3RyICJzw7ZrdsOkZ3NhbmdpdmVsc2VuIFwiJXNcIiBtb3RzdmFyYWRlIGludGUgbsOlZ3JhIGZpbGVyIgpAQCAtMTcxMCwxMjcgKzE3ODEsMTI3IEBACiBtc2dpZCAiQ291bGQgbm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJLdW5kZSBpbnRlIGzDpHNhIGluZGV4ZXQiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzQ5CisjOiBidWlsdGluL2FkZC5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSDDtnBwbmEgXCIlc1wiIGbDtnIgc2tyaXZuaW5nIgogCi0jOiBidWlsdGluL2FkZC5jOjM1MworIzogYnVpbHRpbi9hZGQuYzozNTQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgcGF0Y2giCiBtc2dzdHIgIkt1bmRlIGludGUgc2tyaXZhIHBhdGNoIgogCi0jOiBidWlsdGluL2FkZC5jOjM1OAorIzogYnVpbHRpbi9hZGQuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHN0YXQgJyVzJyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSB0YSBzdGF0dXMgcMOlIFwiJXNcIiIKIAotIzogYnVpbHRpbi9hZGQuYzozNjAKKyM6IGJ1aWx0aW4vYWRkLmM6MzYxCiBtc2dpZCAiRW1wdHkgcGF0Y2guIEFib3J0ZWQuIgogbXNnc3RyICJUb20gcGF0Y2guIEF2YnJ5dGVyLiIKIAotIzogYnVpbHRpbi9hZGQuYzozNjYKKyM6IGJ1aWx0aW4vYWRkLmM6MzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgogbXNnc3RyICJLdW5kZSBpbnRlIHRpbGzDpG1wYSBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzc2CisjOiBidWlsdGluL2FkZC5jOjM3NwogbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKIG1zZ3N0ciAiRsO2bGphbmRlIHPDtmt2w6RnYXIgaWdub3JlcmFzIGF2IGVuIGF2IGRpbmEgLmdpdGlnbm9yZS1maWxlcjpcbiIKIAotIzogYnVpbHRpbi9hZGQuYzozOTMgYnVpbHRpbi9jbGVhbi5jOjE2MSBidWlsdGluL2ZldGNoLmM6NzggYnVpbHRpbi9tdi5jOjYzCi0jOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc2IGJ1aWx0aW4vcHVzaC5jOjQyNSBidWlsdGluL3JlbW90ZS5jOjEyNTMKLSM6IGJ1aWx0aW4vcm0uYzoyMDYKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vY2xlYW4uYzo4NzUgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MworIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3MyBidWlsdGluL3B1c2guYzo0NTEgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCisjOiBidWlsdGluL3JtLmM6MjY4CiBtc2dpZCAiZHJ5IHJ1biIKIG1zZ3N0ciAidGVzdGvDtnJuaW5nIgogCi0jOiBidWlsdGluL2FkZC5jOjM5NCBidWlsdGluL2FwcGx5LmM6NDQwOSBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5Ci0jOiBidWlsdGluL2NvbW1pdC5jOjExNTIgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCi0jOiBidWlsdGluL2xvZy5jOjE1MTggYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEyCisjOiBidWlsdGluL2FkZC5jOjM5NSBidWlsdGluL2FwcGx5LmM6NDQxMCBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjAgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCisjOiBidWlsdGluL2xvZy5jOjE1NzMgYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCiBtc2dpZCAiYmUgdmVyYm9zZSIKIG1zZ3N0ciAidmFyIHByYXRzYW0iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk2CisjOiBidWlsdGluL2FkZC5jOjM5NwogbXNnaWQgImludGVyYWN0aXZlIHBpY2tpbmciCiBtc2dzdHIgInBsb2NrYSBpbnRlcmFrdGl2dCIKIAotIzogYnVpbHRpbi9hZGQuYzozOTcgYnVpbHRpbi9jaGVja291dC5jOjEwNjMgYnVpbHRpbi9yZXNldC5jOjI1OAorIzogYnVpbHRpbi9hZGQuYzozOTggYnVpbHRpbi9jaGVja291dC5jOjEwNzMgYnVpbHRpbi9yZXNldC5jOjI2MQogbXNnaWQgInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IgogbXNnc3RyICJ2w6RsaiBzdHlja2VuIGludGVyYWt0aXZ0IgogCi0jOiBidWlsdGluL2FkZC5jOjM5OAorIzogYnVpbHRpbi9hZGQuYzozOTkKIG1zZ2lkICJlZGl0IGN1cnJlbnQgZGlmZiBhbmQgYXBwbHkiCiBtc2dzdHIgInJlZGlnZXJhIGFrdHVlbGwgZGlmZiBvY2ggYXBwbGljZXJhIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OQorIzogYnVpbHRpbi9hZGQuYzo0MDAKIG1zZ2lkICJhbGxvdyBhZGRpbmcgb3RoZXJ3aXNlIGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgInRpbGzDpXQgbMOkZ2dhIHRpbGwgYW5uYXJzIGlnbm9yZXJhZGUgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAwCisjOiBidWlsdGluL2FkZC5jOjQwMQogbXNnaWQgInVwZGF0ZSB0cmFja2VkIGZpbGVzIgogbXNnc3RyICJ1cHBkYXRlcmEgc3DDpXJhZGUgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAxCisjOiBidWlsdGluL2FkZC5jOjQwMgogbXNnaWQgInJlY29yZCBvbmx5IHRoZSBmYWN0IHRoYXQgdGhlIHBhdGggd2lsbCBiZSBhZGRlZCBsYXRlciIKIG1zZ3N0ciAicmVnaXN0cmVyYSBlbmRhc3QgYXR0IHPDtmt2w6RnZW4ga29tbWVyIGzDpGdnYXMgdGlsbCBzZW5hcmUiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAyCisjOiBidWlsdGluL2FkZC5jOjQwMwogbXNnaWQgImFkZCBjaGFuZ2VzIGZyb20gYWxsIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAibMOkZ2cgdGlsbCDDpG5kcmluZ2FyIGZyw6VuIGFsbGEgc3DDpXJhZGUgb2NoIG9zcMOlcmFkZSBmaWxlciIKIAogIy4gdGFrZXMgbm8gYXJndW1lbnRzCi0jOiBidWlsdGluL2FkZC5jOjQwNQorIzogYnVpbHRpbi9hZGQuYzo0MDYKIG1zZ2lkICJpZ25vcmUgcGF0aHMgcmVtb3ZlZCBpbiB0aGUgd29ya2luZyB0cmVlIChzYW1lIGFzIC0tbm8tYWxsKSIKIG1zZ3N0ciAiaWdub3JlcmEgc8O2a3bDpGdhciBib3J0dGFnbmEgaSBhcmJldHNrYXRhbG9nZW4gKHNhbW1hIHNvbSAtLW5vLWFsbCkiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDA3CisjOiBidWlsdGluL2FkZC5jOjQwOAogbXNnaWQgImRvbid0IGFkZCwgb25seSByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAibMOkZ2cgaW50ZSB0aWxsLCB1cHBkYXRlcmEgZW5kYXN0IGluZGV4ZXQiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDA4CisjOiBidWlsdGluL2FkZC5jOjQwOQogbXNnaWQgImp1c3Qgc2tpcCBmaWxlcyB3aGljaCBjYW5ub3QgYmUgYWRkZWQgYmVjYXVzZSBvZiBlcnJvcnMiCiBtc2dzdHIgImhvcHBhIGJhcmEgw7Z2ZXIgZmlsZXIgc29tIGludGUga2FuIGzDpGdnYXMgdGlsbCBww6UgZ3J1bmQgYXYgZmVsIgogCi0jOiBidWlsdGluL2FkZC5jOjQwOQorIzogYnVpbHRpbi9hZGQuYzo0MTAKIG1zZ2lkICJjaGVjayBpZiAtIGV2ZW4gbWlzc2luZyAtIGZpbGVzIGFyZSBpZ25vcmVkIGluIGRyeSBydW4iCiBtc2dzdHIgInNlIG9tIC0gw6R2ZW4gc2FrbmFkZSAtIGZpbGVyIGlnbm9yZXJhcyBpIHRlc3Rrw7ZybmluZyIKIAotIzogYnVpbHRpbi9hZGQuYzo0MzEKKyM6IGJ1aWx0aW4vYWRkLmM6NDMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSAtZiBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHRoZW0uXG4iCiBtc2dzdHIgIkFudsOkbmQgLWYgb20gZHUgdmVya2xpZ2VuIHZpbGwgbMOkZ2dhIHRpbGwgZGVtLlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjQzMgorIzogYnVpbHRpbi9hZGQuYzo0MzMKIG1zZ2lkICJubyBmaWxlcyBhZGRlZCIKIG1zZ3N0ciAiaW5nYSBmaWxlciBoYXIgbGFndHMgdGlsbCIKIAotIzogYnVpbHRpbi9hZGQuYzo0MzgKKyM6IGJ1aWx0aW4vYWRkLmM6NDM5CiBtc2dpZCAiYWRkaW5nIGZpbGVzIGZhaWxlZCIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIGzDpGdnYSB0aWxsIGZpbGVyIgogCi0jOiBidWlsdGluL2FkZC5jOjQ3NworIzogYnVpbHRpbi9hZGQuYzo0NzgKIG1zZ2lkICItQSBhbmQgLXUgYXJlIG11dHVhbGx5IGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLUEgb2NoIC11IMOkciDDtm1zZXNpZGlndCBpbmtvbXBhdGlibGEiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDk1CisjOiBidWlsdGluL2FkZC5jOjQ5NgogbXNnaWQgIk9wdGlvbiAtLWlnbm9yZS1taXNzaW5nIGNhbiBvbmx5IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAtLWRyeS1ydW4iCiBtc2dzdHIgIkZsYWdnYW4gLS1pZ25vcmUtbWlzc2luZyBrYW4gZW5kYXN0IGFudsOkbmRhcyB0aWxsc2FtbWFucyBtZWQgLS1kcnktcnVuIgogCi0jOiBidWlsdGluL2FkZC5jOjUyNQorIzogYnVpbHRpbi9hZGQuYzo1MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90aGluZyBzcGVjaWZpZWQsIG5vdGhpbmcgYWRkZWQuXG4iCiBtc2dzdHIgIkluZ2V0IGFuZ2l2ZXQsIGluZ2V0IHRpbGxhZ3QuXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTI2CisjOiBidWlsdGluL2FkZC5jOjUyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXliZSB5b3Ugd2FudGVkIHRvIHNheSAnZ2l0IGFkZCAuJz9cbiIKIG1zZ3N0ciAiS2Fuc2tlIG1lbmFkZSBkdSBhdHQgc2tyaXZhIFwiZ2l0IGFkZCAuXCI/XG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NTMyIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6NjYgYnVpbHRpbi9jbGVhbi5jOjIwNAotIzogYnVpbHRpbi9jb21taXQuYzoyOTMgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyMzUKKyM6IGJ1aWx0aW4vYWRkLmM6NTMzIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTYxIGJ1aWx0aW4vY2xlYW4uYzo5MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzEyIGJ1aWx0aW4vbXYuYzo4MiBidWlsdGluL3JtLmM6Mjk3CiBtc2dpZCAiaW5kZXggZmlsZSBjb3JydXB0IgogbXNnc3RyICJpbmRleGZpbGVuIHRyYXNpZyIKIAotIzogYnVpbHRpbi9hZGQuYzo2MDQgYnVpbHRpbi9hcHBseS5jOjQ1MDUgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6MzcwCisjOiBidWlsdGluL2FkZC5jOjYwNSBidWlsdGluL2FwcGx5LmM6NDUwNiBidWlsdGluL212LmM6MjI5IGJ1aWx0aW4vcm0uYzo0MzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIkt1bmRlIGludGUgc2tyaXZhIG55IGluZGV4ZmlsIgogCkBAIC0yMDE0LDI5MyArMjA4NSwyOTMgQEAKIG1zZ2lkICJjYW5ub3QgY2hlY2tvdXQgJXMiCiBtc2dzdHIgImthbiBpbnRlIGNoZWNrYSB1dCAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMxNDAgYnVpbHRpbi9hcHBseS5jOjMxNDkgYnVpbHRpbi9hcHBseS5jOjMxOTMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMTQwIGJ1aWx0aW4vYXBwbHkuYzozMTQ5IGJ1aWx0aW4vYXBwbHkuYzozMTk0CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYWQgb2YgJXMgZmFpbGVkIgogbXNnc3RyICJtaXNzbHlja2FkZXMgbMOkc2EgJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMTczIGJ1aWx0aW4vYXBwbHkuYzozMzk1CisjOiBidWlsdGluL2FwcGx5LmM6MzE3NCBidWlsdGluL2FwcGx5LmM6MzM5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICVzIGhhcyBiZWVuIHJlbmFtZWQvZGVsZXRlZCIKIG1zZ3N0ciAic8O2a3bDpGdlbiAlcyBoYXIgw6RuZHJhdCBuYW1uL3RhZ2l0cyBib3J0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI1NCBidWlsdGluL2FwcGx5LmM6MzQwOQorIzogYnVpbHRpbi9hcHBseS5jOjMyNTUgYnVpbHRpbi9hcHBseS5jOjM0MTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4IgogbXNnc3RyICIlczogZmlubnMgaW50ZSBpIGluZGV4ZXQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjU4IGJ1aWx0aW4vYXBwbHkuYzozNDAxIGJ1aWx0aW4vYXBwbHkuYzozNDIzCisjOiBidWlsdGluL2FwcGx5LmM6MzI1OSBidWlsdGluL2FwcGx5LmM6MzQwMiBidWlsdGluL2FwcGx5LmM6MzQyNAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogJXMiCiBtc2dzdHIgIiVzOiAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNjMgYnVpbHRpbi9hcHBseS5jOjM0MTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjY0IGJ1aWx0aW4vYXBwbHkuYzozNDE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBkb2VzIG5vdCBtYXRjaCBpbmRleCIKIG1zZ3N0ciAiJXM6IG1vdHN2YXJhciBpbnRlIGluZGV4ZXQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMzY1CisjOiBidWlsdGluL2FwcGx5LmM6MzM2NgogbXNnaWQgInJlbW92YWwgcGF0Y2ggbGVhdmVzIGZpbGUgY29udGVudHMiCiBtc2dzdHIgInBhdGNoIGbDtnIgYm9ydHRhZ25pbmcgbMOkbW5hciBrdmFyIGZpbGlubmVow6VsbCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiB3cm9uZyB0eXBlIgogbXNnc3RyICIlczogZmVsIHR5cCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGhhcyB0eXBlICVvLCBleHBlY3RlZCAlbyIKIG1zZ3N0ciAiJXMgaGFyIHR5cGVuICVvLCBmw7ZydsOkbnRhZGUgJW8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTM3CisjOiBidWlsdGluL2FwcGx5LmM6MzUzOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogYWxyZWFkeSBleGlzdHMgaW4gaW5kZXgiCiBtc2dzdHIgIiVzOiBmaW5ucyByZWRhbiBpIGluZGV4ZXQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTQwCisjOiBidWlsdGluL2FwcGx5LmM6MzU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogYWxyZWFkeSBleGlzdHMgaW4gd29ya2luZyBkaXJlY3RvcnkiCiBtc2dzdHIgIiVzOiBmaW5ucyByZWRhbiBpIGFyYmV0c2thdGFsb2dlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSIKIG1zZ3N0ciAibnl0dCBsw6RnZSAoJW8pIGbDtnIgJXMgbW90c3ZhcmFyIGludGUgZ2FtbWFsdCBsw6RnZSAoJW8pIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU2NQorIzogYnVpbHRpbi9hcHBseS5jOjM1NjYKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IG1vZGUgKCVvKSBvZiAlcyBkb2VzIG5vdCBtYXRjaCBvbGQgbW9kZSAoJW8pIG9mICVzIgogbXNnc3RyICJueXR0IGzDpGdlICglbykgZsO2ciAlcyBtb3RzdmFyYXIgaW50ZSBnYW1tYWx0IGzDpGdlICglbykgZsO2ciAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NzMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBwYXRjaCBkb2VzIG5vdCBhcHBseSIKIG1zZ3N0ciAiJXM6IHBhdGNoZW4ga2FuIGludGUgdGlsbMOkbXBhcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1ODYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIHBhdGNoICVzLi4uIgogbXNnc3RyICJLb250cm9sbGVyYXIgcGF0Y2hlbiAlcy4uLiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM2NzkgYnVpbHRpbi9jaGVja291dC5jOjIxNiBidWlsdGluL3Jlc2V0LmM6MTI0CisjOiBidWlsdGluL2FwcGx5LmM6MzY4MCBidWlsdGluL2NoZWNrb3V0LmM6MjE2IGJ1aWx0aW4vcmVzZXQuYzoxMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAibWFrZV9jYWNoZV9lbnRyeSBmYWlsZWQgZm9yIHBhdGggJyVzJyIKIG1zZ3N0ciAibWFrZV9jYWNoZV9lbnRyeSBtaXNzbHlja2FkZXMgZsO2ciBzw7ZrdsOkZ2VuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4MjIKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODIzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZW1vdmUgJXMgZnJvbSBpbmRleCIKIG1zZ3N0ciAia2FuIGludGUgdGEgYm9ydCAlcyBmcsOlbiBpbmRleGV0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1MAorIzogYnVpbHRpbi9hcHBseS5jOjM4NTEKICMsIGMtZm9ybWF0Ci1tc2dpZCAiY29ycnVwdCBwYXRjaCBmb3Igc3VicHJvamVjdCAlcyIKLW1zZ3N0ciAidHJhc2lnIHBhdGNoIGbDtnIgdW5kZXJwcm9qZWt0ZXQgJXMiCittc2dpZCAiY29ycnVwdCBwYXRjaCBmb3Igc3VibW9kdWxlICVzIgorbXNnc3RyICJ0cmFzaWcgcGF0Y2ggZsO2ciB1bmRlcm1vZHVsZW4gJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODU0CisjOiBidWlsdGluL2FwcGx5LmM6Mzg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gc3RhdCBuZXdseSBjcmVhdGVkIGZpbGUgJyVzJyIKIG1zZ3N0ciAia2FuIGludGUgdGEgc3RhdHVzIHDDpSBueWxpZ2VuIHNrYXBhZGUgZmlsZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1OQorIzogYnVpbHRpbi9hcHBseS5jOjM4NjAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBiYWNraW5nIHN0b3JlIGZvciBuZXdseSBjcmVhdGVkIGZpbGUgJXMiCiBtc2dzdHIgImthbiBpbnRlIHNrYXBhIHPDpGtlcmhldHNtaW5uZSBmw7ZyIG55bGlnZW4gc2thcGFkZSBmaWxlbiAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NjIgYnVpbHRpbi9hcHBseS5jOjM5NzAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODYzIGJ1aWx0aW4vYXBwbHkuYzozOTcxCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhZGQgY2FjaGUgZW50cnkgZm9yICVzIgogbXNnc3RyICJrYW4gaW50ZSBsw6RnZ2EgdGlsbCBjYWNoZXBvc3QgZsO2ciAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4OTUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODk2CiAjLCBjLWZvcm1hdAogbXNnaWQgImNsb3NpbmcgZmlsZSAnJXMnIgogbXNnc3RyICJzdMOkbmdlciBmaWxlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozOTQ0CisjOiBidWlsdGluL2FwcGx5LmM6Mzk0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgZmlsZSAnJXMnIG1vZGUgJW8iCiBtc2dzdHIgImthbiBpbnRlIHNrcml2YSBmaWxlbiBcIiVzXCIgbMOkZ2UgJW8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMxCisjOiBidWlsdGluL2FwcGx5LmM6NDAzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJBcHBsaWVkIHBhdGNoICVzIGNsZWFubHkuIgogbXNnc3RyICJUaWxsw6RtcGFkZSBwYXRjaGVuICVzIHJlbnQuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDAzOQorIzogYnVpbHRpbi9hcHBseS5jOjQwNDAKIG1zZ2lkICJpbnRlcm5hbCBlcnJvciIKIG1zZ3N0ciAiaW50ZXJudCBmZWwiCiAKICMuIFNheSB0aGlzIGV2ZW4gd2l0aG91dCAtLXZlcmJvc2UKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQyCisjOiBidWlsdGluL2FwcGx5LmM6NDA0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJBcHBseWluZyBwYXRjaCAlJXMgd2l0aCAlZCByZWplY3QuLi4iCiBtc2dpZF9wbHVyYWwgIkFwcGx5aW5nIHBhdGNoICUlcyB3aXRoICVkIHJlamVjdHMuLi4iCiBtc2dzdHJbMF0gIlRpbGzDpG1wYWRlIHBhdGNoZW4gJSVzIG1lZCAlZCByZWZ1c2VyYWQuLi4iCiBtc2dzdHJbMV0gIlRpbGzDpG1wYWRlIHBhdGNoZW4gJSVzIG1lZCAlZCByZWZ1c2VyYWRlLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA1MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJ1bmNhdGluZyAucmVqIGZpbGVuYW1lIHRvICUuKnMucmVqIgogbXNnc3RyICJ0cnVua2VyYXIgLnJlai1maWxuYW1uZXQgdGlsbCAlLipzLnJlaiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNzMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1bmsgIyVkIGFwcGxpZWQgY2xlYW5seS4iCiBtc2dzdHIgIlN0eWNrZSAlZCB0aWxsw6RtcGFkZXMgcmVudC4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc2CisjOiBidWlsdGluL2FwcGx5LmM6NDA3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWplY3RlZCBodW5rICMlZC4iCiBtc2dzdHIgIlJlZnVzZXJhciBzdHlja2UgJWQuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDIyNgorIzogYnVpbHRpbi9hcHBseS5jOjQyMjcKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaW5wdXQiCiBtc2dzdHIgImluZGF0YSBrw6RubnMgaW50ZSBpZ2VuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDIzNworIzogYnVpbHRpbi9hcHBseS5jOjQyMzgKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCBpbmRleCBmaWxlIgogbXNnc3RyICJrYW4gaW50ZSBsw6RzYSBpbmRleGZpbGVuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NiBidWlsdGluL2FwcGx5LmM6NDM1OSBidWlsdGluL2Nsb25lLmM6OTIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3IGJ1aWx0aW4vYXBwbHkuYzo0MzYwIGJ1aWx0aW4vY2xvbmUuYzo5MQogIzogYnVpbHRpbi9mZXRjaC5jOjYzCiBtc2dpZCAicGF0aCIKIG1zZ3N0ciAic8O2a3bDpGciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3CisjOiBidWlsdGluL2FwcGx5LmM6NDM1OAogbXNnaWQgImRvbid0IGFwcGx5IGNoYW5nZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHBhdGgiCiBtc2dzdHIgInRpbGzDpG1wYSBpbnRlIMOkbmRyaW5nYXIgc29tIG1vdHN2YXJhciBnaXZlbiBzw7ZrdsOkZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYxCiBtc2dpZCAiYXBwbHkgY2hhbmdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcGF0aCIKIG1zZ3N0ciAidGlsbMOkbXBhIMOkbmRyaW5nYXIgc29tIG1vdHN2YXJhciBnaXZlbiBzw7ZrdsOkZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYzCiBtc2dpZCAibnVtIgogbXNnc3RyICJhbnRhbCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY0CiBtc2dpZCAicmVtb3ZlIDxudW0+IGxlYWRpbmcgc2xhc2hlcyBmcm9tIHRyYWRpdGlvbmFsIGRpZmYgcGF0aHMiCiBtc2dzdHIgInRhIGJvcnQgPGFudGFsPiBpbmxlZGFuZGUgc25lZHN0cmVjayBmcsOlbiB0cmFkaXRpb25lbGxhIGRpZmYtc8O2a3bDpGdhciIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY3CiBtc2dpZCAiaWdub3JlIGFkZGl0aW9ucyBtYWRlIGJ5IHRoZSBwYXRjaCIKIG1zZ3N0ciAiaWdub3JlcmEgdGlsbMOkZ2cgZ2pvcmRhIGF2IHBhdGNoZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY4CisjOiBidWlsdGluL2FwcGx5LmM6NDM2OQogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgZGlmZnN0YXQgZm9yIHRoZSBpbnB1dCIKIG1zZ3N0ciAiaXN0w6RsbGV0IGbDtnIgYXR0IHRpbGzDpG1wYSBwYXRjaGVuLCBza3JpdiB1dCBkaWZmc3RhdCBmw7ZyIGluZGF0YSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzczCiBtc2dpZCAic2hvdyBudW1iZXIgb2YgYWRkZWQgYW5kIGRlbGV0ZWQgbGluZXMgaW4gZGVjaW1hbCBub3RhdGlvbiIKIG1zZ3N0ciAidmlzYSBhbnRhbCB0aWxsYWdkYSBvY2ggYm9ydHRhZ25hIHJhZGVyIGRlY2ltYWx0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3NAorIzogYnVpbHRpbi9hcHBseS5jOjQzNzUKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgb3V0cHV0IGEgc3VtbWFyeSBmb3IgdGhlIGlucHV0IgogbXNnc3RyICJpc3TDpGxsZXQgZsO2ciBhdHQgdGlsbMOkbXBhIHBhdGNoZW4sIHNrcml2IHV0IGVuIHN1bW1lcmluZyBhdiBpbmRhdGEiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc2CisjOiBidWlsdGluL2FwcGx5LmM6NDM3NwogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBzZWUgaWYgdGhlIHBhdGNoIGlzIGFwcGxpY2FibGUiCiBtc2dzdHIgImlzdMOkbGxldCBmw7ZyIGF0dCB0aWxsw6RtcGEgcGF0Y2hlbiwgc2Ugb20gcGF0Y2hlbiBrYW4gdGlsbMOkbXBhcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzgKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc5CiBtc2dpZCAibWFrZSBzdXJlIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIHRvIHRoZSBjdXJyZW50IGluZGV4IgogbXNnc3RyICJzZSB0aWxsIGF0dCBwYXRjaGVuIGthbiB0aWxsw6RtcGFzIHDDpSBha3R1ZWxsdCBpbmRleCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgxCiBtc2dpZCAiYXBwbHkgYSBwYXRjaCB3aXRob3V0IHRvdWNoaW5nIHRoZSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgInRpbGzDpG1wYSBlbiBwYXRjaCB1dGFuIGF0dCByw7ZyYSBhcmJldHNrYXRhbG9nZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgyCisjOiBidWlsdGluL2FwcGx5LmM6NDM4MwogbXNnaWQgImFsc28gYXBwbHkgdGhlIHBhdGNoICh1c2Ugd2l0aCAtLXN0YXQvLS1zdW1tYXJ5Ly0tY2hlY2spIgogbXNnc3RyICJ0aWxsw6RtcGEgb2Nrc8OlIHBhdGNoZW4gKGFudsOkbmQgbWVkIC0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg0CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NQogbXNnaWQgImF0dGVtcHQgdGhyZWUtd2F5IG1lcmdlIGlmIGEgcGF0Y2ggZG9lcyBub3QgYXBwbHkiCiBtc2dzdHIgImbDtnJzw7ZrIGVuIHRyZXbDpGdzc2FtbWFuc2xhZ25pbmcgb20gcGF0Y2hlbiBpbnRlIGthbiB0aWxsw6RtcGFzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4NgorIzogYnVpbHRpbi9hcHBseS5jOjQzODcKIG1zZ2lkICJidWlsZCBhIHRlbXBvcmFyeSBpbmRleCBiYXNlZCBvbiBlbWJlZGRlZCBpbmRleCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiYnlnZyBldHQgdGVtcG9yw6RydCBpbmRleCBiYXNlcmF0IHDDpSBpbmJ5Z2dkIGluZGV4aW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg4IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ1NgorIzogYnVpbHRpbi9hcHBseS5jOjQzODkgYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDYyCiBtc2dpZCAicGF0aHMgYXJlIHNlcGFyYXRlZCB3aXRoIE5VTCBjaGFyYWN0ZXIiCiBtc2dzdHIgInPDtmt2w6RnYXIgYXZkZWxhcyBtZWQgTlVMLXRlY2tlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCiBtc2dpZCAiZW5zdXJlIGF0IGxlYXN0IDxuPiBsaW5lcyBvZiBjb250ZXh0IG1hdGNoIgogbXNnc3RyICJzZSB0aWxsIGF0dCDDpXRtaW5zdG9uZSA8bj4gcmFkZXIgc2FtbWFuaGFuZyDDpHIgbGlrYSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkzCiBtc2dpZCAiYWN0aW9uIgogbXNnc3RyICLDpXRnw6RyZCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk0CiBtc2dpZCAiZGV0ZWN0IG5ldyBvciBtb2RpZmllZCBsaW5lcyB0aGF0IGhhdmUgd2hpdGVzcGFjZSBlcnJvcnMiCiBtc2dzdHIgImRldGVrdGVyYSBueWEgZWxsZXIgw6RuZHJhZGUgcmFkZXIgc29tIGhhciBmZWwgaSBibGFua3RlY2tlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTYgYnVpbHRpbi9hcHBseS5jOjQzOTkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk3IGJ1aWx0aW4vYXBwbHkuYzo0NDAwCiBtc2dpZCAiaWdub3JlIGNoYW5nZXMgaW4gd2hpdGVzcGFjZSB3aGVuIGZpbmRpbmcgY29udGV4dCIKIG1zZ3N0ciAiaWdub3JlcmEgw6RuZHJpbmdhciBpIGJsYW5rdGVja2VuIGbDtnIgc2FtbWFuaGFuZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MDIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDAzCiBtc2dpZCAiYXBwbHkgdGhlIHBhdGNoIGluIHJldmVyc2UiCiBtc2dzdHIgInRpbGzDpG1wYSBwYXRjaGVuIGJha2zDpG5nZXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA0CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNQogbXNnaWQgImRvbid0IGV4cGVjdCBhdCBsZWFzdCBvbmUgbGluZSBvZiBjb250ZXh0IgogbXNnc3RyICJmw7ZydsOkbnRhIGludGUgbWluc3QgZW4gcmFkIHNhbW1hbmhhbmciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA2CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNwogbXNnaWQgImxlYXZlIHRoZSByZWplY3RlZCBodW5rcyBpbiBjb3JyZXNwb25kaW5nICoucmVqIGZpbGVzIgogbXNnc3RyICJsw6RtbmEgcmVmdXNlcmFkZSBzdHlja2VuIGkgbW90c3ZhcmFuZGUgKi5yZWotZmlsZXIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA4CisjOiBidWlsdGluL2FwcGx5LmM6NDQwOQogbXNnaWQgImFsbG93IG92ZXJsYXBwaW5nIGh1bmtzIgogbXNnc3RyICJ0aWxsw6V0IMO2dmVybGFwcGFuZGUgc3R5Y2tlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDEyCiBtc2dpZCAidG9sZXJhdGUgaW5jb3JyZWN0bHkgZGV0ZWN0ZWQgbWlzc2luZyBuZXctbGluZSBhdCB0aGUgZW5kIG9mIGZpbGUiCiBtc2dzdHIgInRvbGVyZXJhIGZlbGFrdGlndCBkZXRla3RlcmFkZSBzYWtuYWRlIG55cmFkc3RlY2tlbiB2aWQgZmlsc2x1dCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE1CiBtc2dpZCAiZG8gbm90IHRydXN0IHRoZSBsaW5lIGNvdW50cyBpbiB0aGUgaHVuayBoZWFkZXJzIgogbXNnc3RyICJsaXRlIGludGUgcMOlIGFudGFsZXQgbGluamVyIGkgc3R5Y2tlaHV2dWRlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE3CiBtc2dpZCAicm9vdCIKIG1zZ3N0ciAicm90IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxNworIzogYnVpbHRpbi9hcHBseS5jOjQ0MTgKIG1zZ2lkICJwcmVwZW5kIDxyb290PiB0byBhbGwgZmlsZW5hbWVzIgogbXNnc3RyICJsw6RnZyB0aWxsIDxyb3Q+IGkgYWxsYSBmaWxuYW1uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQzOQorIzogYnVpbHRpbi9hcHBseS5jOjQ0NDAKIG1zZ2lkICItLTN3YXkgb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIi0tM3dheSB1dGFuZsO2ciBhcmtpdiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NDcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ4CiBtc2dpZCAiLS1pbmRleCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiLS1pbmRleCB1dGFuZsO2ciBhcmtpdiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NTAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDUxCiBtc2dpZCAiLS1jYWNoZWQgb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIi0tY2FjaGVkIHV0YW5mw7ZyIGFya2l2IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ2NgorIzogYnVpbHRpbi9hcHBseS5jOjQ0NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2FuJ3Qgb3BlbiBwYXRjaCAnJXMnIgogbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgcGF0Y2hlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDgwCisjOiBidWlsdGluL2FwcGx5LmM6NDQ4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJzcXVlbGNoZWQgJWQgd2hpdGVzcGFjZSBlcnJvciIKIG1zZ2lkX3BsdXJhbCAic3F1ZWxjaGVkICVkIHdoaXRlc3BhY2UgZXJyb3JzIgogbXNnc3RyWzBdICJ1bmRlcnRyeWNrdGUgJWQgZmVsIGkgYmxhbmtzdGVnIgogbXNnc3RyWzFdICJ1bmRlcnRyeWNrdGUgJWQgZmVsIGkgYmxhbmtzdGVnIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ4NiBidWlsdGluL2FwcGx5LmM6NDQ5NgorIzogYnVpbHRpbi9hcHBseS5jOjQ0ODcgYnVpbHRpbi9hcHBseS5jOjQ0OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWQgbGluZSBhZGRzIHdoaXRlc3BhY2UgZXJyb3JzLiIKIG1zZ2lkX3BsdXJhbCAiJWQgbGluZXMgYWRkIHdoaXRlc3BhY2UgZXJyb3JzLiIKQEAgLTIzNTQsMTAzICsyNDI1LDEwMyBAQAogbXNnaWQgInVwZGF0ZSBCSVNFQ1RfSEVBRCBpbnN0ZWFkIG9mIGNoZWNraW5nIG91dCB0aGUgY3VycmVudCBjb21taXQiCiBtc2dzdHIgInVwcGRhdGVyYSBCSVNFQ1RfSEVBRCBpc3TDpGxsZXQgZsO2ciBhdHQgY2hlY2thIHV0IGFrdHVlbGwgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyNQorIzogYnVpbHRpbi9ibGFtZS5jOjI2CiBtc2dpZCAiZ2l0IGJsYW1lIFtvcHRpb25zXSBbcmV2LW9wdHNdIFtyZXZdIFstLV0gZmlsZSIKIG1zZ3N0ciAiZ2l0IGJsYW1lIFtmbGFnZ29yXSBbcmV2LWZsYWdnb3JdIFtyZXZdIFstLV0gZmlsIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MzAKKyM6IGJ1aWx0aW4vYmxhbWUuYzozMQogbXNnaWQgIltyZXYtb3B0c10gYXJlIGRvY3VtZW50ZWQgaW4gZ2l0LXJldi1saXN0KDEpIgogbXNnc3RyICJbcmV2LWZsYWdnb3JdIGRva3VtZW50ZXJhcyBpIGdpdC1yZXYtbGlzdCgxKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc2CiBtc2dpZCAiU2hvdyBibGFtZSBlbnRyaWVzIGFzIHdlIGZpbmQgdGhlbSwgaW5jcmVtZW50YWxseSIKIG1zZ3N0ciAiVmlzYSBrbGFuZHJpbmdzcG9zdGVyIG7DpHIgdmkgaGl0dGFyIGRlbSwgaW50ZXJha3RpdnQiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU2CisjOiBidWlsdGluL2JsYW1lLmM6MjI3NwogbXNnaWQgIlNob3cgYmxhbmsgU0hBLTEgZm9yIGJvdW5kYXJ5IGNvbW1pdHMgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlZpc2EgYmxhbmsgU0hBLTEgZsO2ciBncsOkbnNpbmNoZWNrbmluZ2FyIChTdGFuZGFyZDogYXYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NworIzogYnVpbHRpbi9ibGFtZS5jOjIyNzgKIG1zZ2lkICJEbyBub3QgdHJlYXQgcm9vdCBjb21taXRzIGFzIGJvdW5kYXJpZXMgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIkJlaGFuZGxhIGludGUgcm90aW5jaGVja25pbmdhciBzb20gZ3LDpG5zZXIgKFN0YW5kYXJkOiBhdikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU4CisjOiBidWlsdGluL2JsYW1lLmM6MjI3OQogbXNnaWQgIlNob3cgd29yayBjb3N0IHN0YXRpc3RpY3MiCiBtc2dzdHIgIlZpc2Egc3RhdGlzdGlrIMO2dmVyIGFyYmV0c2tvc3RuYWQiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU5CisjOiBidWlsdGluL2JsYW1lLmM6MjI4MAogbXNnaWQgIlNob3cgb3V0cHV0IHNjb3JlIGZvciBibGFtZSBlbnRyaWVzIgogbXNnc3RyICJWaXNhIHV0ZGF0YXBvw6RuZyBmw7ZyIGtsYW5kcmluZ3Nwb3N0ZXIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYwCisjOiBidWlsdGluL2JsYW1lLmM6MjI4MQogbXNnaWQgIlNob3cgb3JpZ2luYWwgZmlsZW5hbWUgKERlZmF1bHQ6IGF1dG8pIgogbXNnc3RyICJWaXNhIG9yaWdpbmFsZmlsbmFtbiAoU3RhbmRhcmQ6IGF1dG8pIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODIKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGxpbmVudW1iZXIgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlZpc2EgdXJzcHJ1bmdsaWd0IHJhZG51bW1lciAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgzCiBtc2dpZCAiU2hvdyBpbiBhIGZvcm1hdCBkZXNpZ25lZCBmb3IgbWFjaGluZSBjb25zdW1wdGlvbiIKIG1zZ3N0ciAiVmlzYSBpIGV0dCBmb3JtYXQgYXZzZXR0IGbDtnIgbWFza2lua29uc3VtdGlvbiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg0CiBtc2dpZCAiU2hvdyBwb3JjZWxhaW4gZm9ybWF0IHdpdGggcGVyLWxpbmUgY29tbWl0IGluZm9ybWF0aW9uIgogbXNnc3RyICJWaXNhIHBvcnNsaW5zZm9ybWF0IG1lZCBwZXItcmFkLWluY2hlY2tuaW5nc2luZm9ybWF0aW9uIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODUKIG1zZ2lkICJVc2UgdGhlIHNhbWUgb3V0cHV0IG1vZGUgYXMgZ2l0LWFubm90YXRlIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJBbnbDpG5kIHNhbW1hIHV0ZGF0YWzDpGdlIHNvbSBnaXQtYW5ub3RhdGUgKFN0YW5kYXJkOiBhdikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY1CisjOiBidWlsdGluL2JsYW1lLmM6MjI4NgogbXNnaWQgIlNob3cgcmF3IHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVmlzYSByw6UgdGlkc3N0w6RtcGVsIChTdGFuZGFyZDogYXYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyODcKIG1zZ2lkICJTaG93IGxvbmcgY29tbWl0IFNIQTEgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlZpc2EgbMOlbmcgaW5jaGVja25pbmdzLVNIQTEgKFN0YW5kYXJkOiBhdikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY3CisjOiBidWlsdGluL2JsYW1lLmM6MjI4OAogbXNnaWQgIlN1cHByZXNzIGF1dGhvciBuYW1lIGFuZCB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlVuZGVydHJ5Y2sgZsO2cmZhdHRhcm5hbW4gb2NoIHRpZHNzdMOkbXBlbCAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjgKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg5CiBtc2dpZCAiU2hvdyBhdXRob3IgZW1haWwgaW5zdGVhZCBvZiBuYW1lIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJWaXNhIGbDtnJmYXR0YXJlbnMgZS1wb3N0IGlzdMOkbGxldCBmw7ZyIG5hbW4gKFN0YW5kYXJkOiBhdikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY5CisjOiBidWlsdGluL2JsYW1lLmM6MjI5MAogbXNnaWQgIklnbm9yZSB3aGl0ZXNwYWNlIGRpZmZlcmVuY2VzIgogbXNnc3RyICJJZ25vcmVyYSDDpG5kcmluZ2FyIGkgYmxhbmtzdGVnIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTEKIG1zZ2lkICJTcGVuZCBleHRyYSBjeWNsZXMgdG8gZmluZCBiZXR0ZXIgbWF0Y2giCiBtc2dzdHIgIlNsw7ZzYSBleHRyYSBjeWtsZXIgbWVkIGF0dCBoaXR0YSBiw6R0dHJlIHRyw6RmZiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCiBtc2dpZCAiVXNlIHJldmlzaW9ucyBmcm9tIDxmaWxlPiBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2l0LXJldi1saXN0IgogbXNnc3RyICJBbnbDpG5kIHJldmlzaW9uZXIgZnLDpW4gPGZpbD4gaXN0w6RsbGV0IGbDtnIgYXR0IGFucm9wYSBnaXQtcmV2LWxpc3QiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcyCisjOiBidWlsdGluL2JsYW1lLmM6MjI5MwogbXNnaWQgIlVzZSA8ZmlsZT4ncyBjb250ZW50cyBhcyB0aGUgZmluYWwgaW1hZ2UiCiBtc2dzdHIgIkFudsOkbmQgPGZpbD5zIGlubmVow6VsbCBzb20gc2x1dGdpbHRpZyBiaWxkIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MyBidWlsdGluL2JsYW1lLmM6MjM3NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQgYnVpbHRpbi9ibGFtZS5jOjIyOTUKIG1zZ2lkICJzY29yZSIKIG1zZ3N0ciAicG/DpG5nIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MworIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQKIG1zZ2lkICJGaW5kIGxpbmUgY29waWVzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICJIaXR0YSBrb3BpZXJhZGUgcmFkZXIgaW51dGkgb2NoIG1lbGxhbiBmaWxlciIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk1CiBtc2dpZCAiRmluZCBsaW5lIG1vdmVtZW50cyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAiSGl0dGEgZmx5dHRhZGUgcmFkZXIgaW51dGkgb2NoIG1lbGxhbiBmaWxlciIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CiBtc2dpZCAibixtIgogbXNnc3RyICJuLG0iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzc1CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NgogbXNnaWQgIlByb2Nlc3Mgb25seSBsaW5lIHJhbmdlIG4sbSwgY291bnRpbmcgZnJvbSAxIgogbXNnc3RyICJCZWhhbmRsYSBlbmRhc3QgcmFkaW50ZXJ2YWxsZXQgbixtLCBtZWQgYsO2cmphbiBww6UgMSIKIApAQCAtMjY4Myw4ICsyNzU0LDggQEAKIG1zZ3N0ciAiYXJiZXRhIHDDpSBmasOkcnJzcMOlcmFuZGUgZ3JlbmFyIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgwNSBidWlsdGluL2JyYW5jaC5jOjgxMSBidWlsdGluL2JyYW5jaC5jOjgzMgotIzogYnVpbHRpbi9icmFuY2guYzo4MzggYnVpbHRpbi9jb21taXQuYzoxMzY4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwIGJ1aWx0aW4vY29tbWl0LmM6MTM3MSBidWlsdGluL3RhZy5jOjQ2OAorIzogYnVpbHRpbi9icmFuY2guYzo4MzggYnVpbHRpbi9jb21taXQuYzoxNDMzIGJ1aWx0aW4vY29tbWl0LmM6MTQzNAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM1IGJ1aWx0aW4vY29tbWl0LmM6MTQzNiBidWlsdGluL3RhZy5jOjQ2OAogbXNnaWQgImNvbW1pdCIKIG1zZ3N0ciAiaW5jaGVja25pbmciCiAKQEAgLTI3NDgsNyArMjgxOSw3IEBACiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgSEVBRCBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBzbMOlIHVwcCBIRUFEIHNvbSBnaWx0aWcgcmVmZXJlbnMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MzAKIG1zZ2lkICJIRUFEIG5vdCBmb3VuZCBiZWxvdyByZWZzL2hlYWRzISIKIG1zZ3N0ciAiSEVBRCBoaXR0YWRlcyBpbnRlIHVuZGVyIHJlZnMvaGVhZHMhIgogCkBAIC0yODcwLDQzICsyOTQxLDQzIEBACiBtc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gdW5idW5kbGUuIgogbXNnc3RyICJCZWjDtnZlciBldHQgYXJraXYgZsO2ciBhdHQgcGFja2EgdXBwIGV0dCBwYWtldCAoYnVuZGxlKS4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxNzYKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODUKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXBlPnwtLXRleHRjb252KSA8b2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw8dHlwPnwtLXRleHRjb252KSA8b2JqZWt0PiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE3NworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NgogbXNnaWQgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxsaXN0X29mX29iamVjdHM+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA8b2JqZWt0bGlzdGE+IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MTk1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzIzCiBtc2dpZCAiPHR5cGU+IGNhbiBiZSBvbmUgb2Y6IGJsb2IsIHRyZWUsIGNvbW1pdCwgdGFnIgogbXNnc3RyICI8dHlwPiBrYW4gdmFyYSBlbiBhdjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTYKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjQKIG1zZ2lkICJzaG93IG9iamVjdCB0eXBlIgogbXNnc3RyICJ2aXNhIG9iamVrdHR5cCIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE5NworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNQogbXNnaWQgInNob3cgb2JqZWN0IHNpemUiCiBtc2dzdHIgInZpc2Egb2JqZWt0c3RvcmxlayIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE5OQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNwogbXNnaWQgImV4aXQgd2l0aCB6ZXJvIHdoZW4gdGhlcmUncyBubyBlcnJvciIKIG1zZ3N0ciAiYXZzbHV0YSBtZWQgbm9sbCBuw6RyIGRldCBpbnRlIHVwcHN0w6V0dCBuw6Vnb3QgZmVsIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjAwCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI4CiBtc2dpZCAicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiCiBtc2dzdHIgInZpc2Egb2JqZWt0ZXRzIGlubmVow6VsbCBzbnlnZ3QiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDIKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzAKIG1zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAiZsO2ciBibG9iLW9iamVrdCwga8O2ciB0ZXh0Y29udiBww6Ugb2JqZWt0ZXRzIGlubmVow6VsbCIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwNAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMgogbXNnaWQgInNob3cgaW5mbyBhbmQgY29udGVudCBvZiBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAidmlzYSBpbmZvcm1hdGlvbiBvY2ggaW5uZWjDpWxsIGbDtnIgb2JqZWt0IHNvbSBsaXN0YXMgcMOlIHN0YW5kYXJkIGluIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjA3CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzM1CiBtc2dpZCAic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJ2aXNhIGluZm9ybWF0aW9uIGbDtnIgb2JqZWt0IHNvbSBsaXN0YXMgcMOlIHN0YW5kYXJkIGluIgogCkBAIC0yOTM0LDMwICszMDA1LDU1IEBACiBtc2dpZCAiaW5wdXQgcGF0aHMgYXJlIHRlcm1pbmF0ZWQgYnkgYSBudWxsIGNoYXJhY3RlciIKIG1zZ3N0ciAic8O2a3bDpGdhciBhdmRlbGFzIG1lZCBudWxsLXRlY2tlbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA0NCBidWlsdGluL2djLmM6MTc3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU0IGJ1aWx0aW4vZ2MuYzoxNzcKIG1zZ2lkICJzdXBwcmVzcyBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgInVuZGVydHJ5Y2sgZsO2cmxvcHBzcmFwcG9ydGVyaW5nIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0NgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyNgorbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIgorbXNnc3RyICJ2aXNhIGluZGF0YXPDtmt2w6RnYXIgc29tIGludGUgdHLDpGZmYXMiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQzCiBtc2dpZCAiY2Fubm90IHNwZWNpZnkgcGF0aG5hbWVzIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAia2FuIGludGUgYW5nZSBzw7ZrdsOkZ3NuYW1uIG1lZCAtLXN0ZGluIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDYKIG1zZ2lkICIteiBvbmx5IG1ha2VzIHNlbnNlIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAiLXoga2FuIGVuZGFzdCBhbnbDpG5kYXMgdGlsbHNhbW1hbnMgbWVkIC0tc3RkaW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTUxCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OAogbXNnaWQgIm5vIHBhdGggc3BlY2lmaWVkIgogbXNnc3RyICJpbmdlbiBzw7ZrdsOkZyBhbmdhdnMiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU1CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MgogbXNnaWQgIi0tcXVpZXQgaXMgb25seSB2YWxpZCB3aXRoIGEgc2luZ2xlIHBhdGhuYW1lIgogbXNnc3RyICItLXF1aWV0IGthbiBlbmRhc3QgYW52w6RuZGFzIG1lZCBldHQgZW5rZWx0IHPDtmt2w6Rnc25hbW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAogbXNnaWQgImNhbm5vdCBoYXZlIGJvdGggLS1xdWlldCBhbmQgLS12ZXJib3NlIgogbXNnc3RyICJrYW4gaW50ZSBhbnbDpG5kYSBiw6VkZSAtLXF1aWV0IG9jaCAtLXZlcmJvc2UiCiAKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3Cittc2dpZCAiLS1ub24tbWF0Y2hpbmcgaXMgb25seSB2YWxpZCB3aXRoIC0tdmVyYm9zZSIKK21zZ3N0ciAiLS1ub24tbWF0Y2hpbmcgw6RyIGVuZGFzdCBnaWx0aWcgbWVkIC0tdmVyYm9zZSIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6OAorbXNnaWQgImdpdCBjaGVjay1tYWlsbWFwIFtvcHRpb25zXSA8Y29udGFjdD4uLi4iCittc2dzdHIgImdpdCBjaGVjay1tYWlsbWFwIFtmbGFnZ29yXSA8a29udGFrdD4uLi4iCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjEzCittc2dpZCAiYWxzbyByZWFkIGNvbnRhY3RzIGZyb20gc3RkaW4iCittc2dzdHIgImzDpHMgw6R2ZW4ga29udGFrdGVyIGZyw6VuIHN0YW5kYXJkIGluIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcGFyc2UgY29udGFjdDogJXMiCittc2dzdHIgImt1bmRlIGludGUgdG9sa2Ega29udGFrdDogJXMiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjQ3Cittc2dpZCAibm8gY29udGFjdHMgc3BlY2lmaWVkIgorbXNnc3RyICJpbmdhIGtvbnRha3RlciBhbmdhdnMiCisKICM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxMjYKIG1zZ2lkICJnaXQgY2hlY2tvdXQtaW5kZXggW29wdGlvbnNdIFstLV0gWzxmaWxlPi4uLl0iCiBtc2dzdHIgImdpdCBjaGVja291dC1pbmRleCBbZmxhZ2dvcl0gWy0tXSBbPGZpbD4uLi5dIgpAQCAtMzA3NCw0MiArMzE3MCw0MiBAQAogbXNnaWQgIkNhbiBub3QgZG8gcmVmbG9nIGZvciAnJXMnXG4iCiBtc2dzdHIgIkthbiBpbnRlIHNrYXBhIHJlZmVyZW5zbG9nIGbDtnIgXCIlc1wiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzkKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCIKIG1zZ3N0ciAiSEVBRCDDpHIgbnUgcMOlIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlc2V0IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIsOFdGVyc3TDpGxsIGdyZW4gXCIlc1wiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWxyZWFkeSBvbiAnJXMnXG4iCiBtc2dzdHIgIlJlZGFuIHDDpSBcIiVzXCJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0OAorIzogYnVpbHRpbi9jaGVja291dC5jOjY1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhbmQgcmVzZXQgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiVsOkeGxhZGUgdGlsbCBvY2ggbm9sbHN0w6RsbGRlIGdyZW5lbiBcIiVzXCJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1MCBidWlsdGluL2NoZWNrb3V0LmM6OTg3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjU1IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYSBuZXcgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiVsOkeGxhZGUgdGlsbCBlbiBueSBncmVuIFwiJXNcIlxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjUyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIlbDpHhsYWRlIHRpbGwgZ3JlbmVuIFwiJXNcIlxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzA4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAuLi4gYW5kICVkIG1vcmUuXG4iCiBtc2dzdHIgIiAuLi4gb2NoICVkIHRpbGwuXG4iCiAKICMuIFRoZSBzaW5ndWxhciB2ZXJzaW9uCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzE0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJXYXJuaW5nOiB5b3UgYXJlIGxlYXZpbmcgJWQgY29tbWl0IGJlaGluZCwgbm90IGNvbm5lY3RlZCB0b1xuIgpAQCAtMzEzMiw3ICszMjI4LDcgQEAKICJcbiIKICIlc1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzMyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJJZiB5b3Ugd2FudCB0byBrZWVwIHRoZW0gYnkgY3JlYXRpbmcgYSBuZXcgYnJhbmNoLCB0aGlzIG1heSBiZSBhIGdvb2QgdGltZVxuIgpAQCAtMzE0NywxMzYgKzMyNDMsMTM2IEBACiAiIGdpdCBicmFuY2ggbnl0dF9ncmVubmFtbiAlc1xuIgogIlxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzYyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzY3CiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IgaW4gcmV2aXNpb24gd2FsayIKIG1zZ3N0ciAiaW50ZXJudCBmZWwgdmlkIGdlbm9tZ8OlbmcgYXYgcmV2aXNpb25lciAocmV2aXNpb24gd2FsaykiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NzEKIG1zZ2lkICJQcmV2aW91cyBIRUFEIHBvc2l0aW9uIHdhcyIKIG1zZ3N0ciAiVGlkaWdhcmUgcG9zaXRpb24gZsO2ciBIRUFEIHZhciIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc5MyBidWlsdGluL2NoZWNrb3V0LmM6OTgyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6Nzk4IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTIKIG1zZ2lkICJZb3UgYXJlIG9uIGEgYnJhbmNoIHlldCB0byBiZSBib3JuIgogbXNnc3RyICJEdSDDpHIgcMOlIGVuIGdyZW4gc29tIMOkbm51IGludGUgw6RyIGbDtmRkIgogCiAjLiBjYXNlICgxKQotIzogYnVpbHRpbi9jaGVja291dC5jOjkxOAorIzogYnVpbHRpbi9jaGVja291dC5jOjkyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZTogJXMiCiBtc2dzdHIgImZlbGFrdGlnIHJlZmVyZW5zOiAlcyIKIAogIy4gY2FzZSAoMSk6IHdhbnQgYSB0cmVlCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKIG1zZ3N0ciAicmVmZXJlbnNlbiDDpHIgaW50ZSBldHQgdHLDpGQ6ICVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTk2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwNgogbXNnaWQgInBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIgogbXNnc3RyICJzw7ZrdsOkZ2FyIGthbiBpbnRlIGFudsOkbmRhcyB2aWQgYnl0ZSBhdiBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTk5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDAzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwOSBidWlsdGluL2NoZWNrb3V0LmM6MTAxMwogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIgogbXNnc3RyICJcIiVzXCIga2FuIGludGUgYW52w6RuZGFzIHZpZCBieXRlIGF2IGdyZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDEwIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE1Ci0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxOAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMTcgYnVpbHRpbi9jaGVja291dC5jOjEwMjAgYnVpbHRpbi9jaGVja291dC5jOjEwMjUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAnJXMnIgogbXNnc3RyICJcIiVzXCIga2FuIGludGUgYW52w6RuZGFzIG1lZCBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDIzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc3dpdGNoIGJyYW5jaCB0byBhIG5vbi1jb21taXQgJyVzJyIKIG1zZ3N0ciAiS2FuIGludGUgdsOkeGxhIGdyZW4gdGlsbCBpY2tlLWluY2hlY2tuaW5nZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NSBidWlsdGluL2NoZWNrb3V0LmM6MTA0NyBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vY2xvbmUuYzo4OQogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjkgYnVpbHRpbi9yZW1vdGUuYzoxNzEKIG1zZ2lkICJicmFuY2giCiBtc2dzdHIgImdyZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgogbXNnaWQgImNyZWF0ZSBhbmQgY2hlY2tvdXQgYSBuZXcgYnJhbmNoIgogbXNnc3RyICJza2FwYSBvY2ggY2hlY2thIHV0IGVuIG55IGdyZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OAogbXNnaWQgImNyZWF0ZS9yZXNldCBhbmQgY2hlY2tvdXQgYSBicmFuY2giCiBtc2dzdHIgInNrYXBhL25vbGxzdMOkbGwgb2NoIGNoZWNrYSB1dCBlbiBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKIG1zZ2lkICJjcmVhdGUgcmVmbG9nIGZvciBuZXcgYnJhbmNoIgogbXNnc3RyICJza2FwYSByZWZsb2dnIGbDtnIgbnkgZ3JlbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYwCiBtc2dpZCAiZGV0YWNoIHRoZSBIRUFEIGF0IG5hbWVkIGNvbW1pdCIKIG1zZ3N0ciAia29wcGxhIGZyw6VuIEhFQUQgdmlkIG5hbW5naXZlbiBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxCiBtc2dpZCAic2V0IHVwc3RyZWFtIGluZm8gZm9yIG5ldyBicmFuY2giCiBtc2dzdHIgInPDpHR0IHVwcHN0csO2bXNpbmZvcm1hdGlvbiBmw7ZyIG55IGdyZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyBicmFuY2giCiBtc2dzdHIgIm55IGdyZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKIG1zZ3N0ciAibnkgZ3JlbiB1dGFuIGbDtnLDpGxkZXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NAogbXNnaWQgImNoZWNrb3V0IG91ciB2ZXJzaW9uIGZvciB1bm1lcmdlZCBmaWxlcyIKIG1zZ3N0ciAiY2hlY2thIHV0IHbDpXIgdmVyc2lvbiBmw7ZyIGVqIHNhbW1hbnNsYWduYSBmaWxlciIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY2CiBtc2dpZCAiY2hlY2tvdXQgdGhlaXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgImNoZWNrYSB1dCBkZXJhcyB2ZXJzaW9uIGbDtnIgZWogc2FtbWFuc2xhZ25hIGZpbGVyIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjgKIG1zZ2lkICJmb3JjZSBjaGVja291dCAodGhyb3cgYXdheSBsb2NhbCBtb2RpZmljYXRpb25zKSIKIG1zZ3N0ciAidHZpbmdhIHV0Y2hlY2tuaW5nIChrYXN0YSBib3J0IGxva2FsYSDDpG5kcmluZ2FyKSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY5CiBtc2dpZCAicGVyZm9ybSBhIDMtd2F5IG1lcmdlIHdpdGggdGhlIG5ldyBicmFuY2giCiBtc2dzdHIgInV0ZsO2ciBlbiAzLXbDpGdzc2FtbWFuc2xhZ25pbmcgZsO2ciBkZW4gbnlhIGdyZW5lbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAgYnVpbHRpbi9tZXJnZS5jOjIxNworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzAgYnVpbHRpbi9tZXJnZS5jOjIzMgogbXNnaWQgInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIKIG1zZ3N0ciAidXBwZGF0ZXJhIGlnbm9yZXJhZGUgZmlsZXIgKHN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjEgYnVpbHRpbi9sb2cuYzoxMTU4IHBhcnNlLW9wdGlvbnMuaDoyNDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcxIGJ1aWx0aW4vbG9nLmM6MTIwOCBwYXJzZS1vcHRpb25zLmg6MjQ5CiBtc2dpZCAic3R5bGUiCiBtc2dzdHIgInN0aWwiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MgogbXNnaWQgImNvbmZsaWN0IHN0eWxlIChtZXJnZSBvciBkaWZmMykiCiBtc2dzdHIgImtvbmZsaWt0c3RpbCAobWVyZ2UgZWxsZXIgZGlmZjMpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzUKIG1zZ2lkICJkbyBub3QgbGltaXQgcGF0aHNwZWNzIHRvIHNwYXJzZSBlbnRyaWVzIG9ubHkiCiBtc2dzdHIgImJlZ3LDpG5zYSBpbnRlIHPDtmt2w6RnYXIgdGlsbCBlbmRhc3QgZ2xlc2EgcG9zdGVyIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzcKIG1zZ2lkICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiBtc2dzdHIgImbDtnJ1dHNww6UgXCJnaXQgY2hlY2tvdXQgZ3Jlbi1zYWtuYXNcIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwOTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAxCiBtc2dpZCAiLWIsIC1CIGFuZCAtLW9ycGhhbiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgogbXNnc3RyICItYiwgLUIgb2NoIC0tb3JwaGFuIMOkciDDtm1zZXNpZGlndCB1dGVzbHV0YW5kZSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMDgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTE4CiBtc2dpZCAiLS10cmFjayBuZWVkcyBhIGJyYW5jaCBuYW1lIgogbXNnc3RyICItLXRyYWNrIGJlaMO2dmVyIGV0dCBuYW1uIHDDpSBlbiBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTExNQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMjUKIG1zZ2lkICJNaXNzaW5nIGJyYW5jaCBuYW1lOyB0cnkgLWIiCiBtc2dzdHIgIkdyZW5uYW1uIHNha25hczsgZsO2cnPDtmsgbWVkIC1iIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1MAorIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKIG1zZ2lkICJpbnZhbGlkIHBhdGggc3BlY2lmaWNhdGlvbiIKIG1zZ3N0ciAiZmVsYWt0aWcgc8O2a3bDpGdzYW5naXZlbHNlIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1NworIzogYnVpbHRpbi9jaGVja291dC5jOjExNjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLlxuIgpAQCAtMzI4NSwxMiArMzM4MSwxMiBAQAogIkthbiBpbnRlIHVwcGRhdGVyYSBzw7ZrdsOkZ2FyIG9jaCB2w6R4bGEgdGlsbCBncmVuZW4gXCIlc1wiIHNhbXRpZGlndC5cbiIKICJWaWxsZSBkdSBjaGVja2EgdXQgXCIlc1wiIHNvbSBpbnRlIGthbiBsw7ZzYXMgc29tIGVuIHV0Y2hlY2tuaW5nPyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNjIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBjaGVja291dDogLS1kZXRhY2ggZG9lcyBub3QgdGFrZSBhIHBhdGggYXJndW1lbnQgJyVzJyIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCB0YXIgaW50ZSBlbiBzw7ZrdsOkZyBzb20gYXJndW1lbnQgXCIlc1wiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2NgorIzogYnVpbHRpbi9jaGVja291dC5jOjExNzYKIG1zZ2lkICIiCiAiZ2l0IGNoZWNrb3V0OiAtLW91cnMvLS10aGVpcnMsIC0tZm9yY2UgYW5kIC0tbWVyZ2UgYXJlIGluY29tcGF0aWJsZSB3aGVuXG4iCiAiY2hlY2tpbmcgb3V0IG9mIHRoZSBpbmRleC4iCkBAIC0zMjk4LDIxOCArMzM5NCwzMjEgQEAKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBvY2ggLS1tZXJnZSDDpHIgaW5rb21wYXRpYmxhIG7DpHJcbiIKICJkdSBjaGVja2FyIHV0IGZyw6VuIGluZGV4ZXQuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjAKLW1zZ2lkICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIgorIzogYnVpbHRpbi9jbGVhbi5jOjI1Cittc2dpZCAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKIG1zZ3N0ciAiIgotImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA8bcO2bnN0ZXI+XSBbLXggfCAtWF0gWy0tXSA8c8O2a3bDpGdhcj4uLi4iCisiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPG3Dtm5zdGVyPl0gWy14IHwgLVhdIFstLV0gIgorIjxzw7ZrdsOkZ2FyPi4uLiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI0CisjOiBidWlsdGluL2NsZWFuLmM6MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXNcbiIKIG1zZ3N0ciAiVGFyIGJvcnQgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI1CisjOiBidWlsdGluL2NsZWFuLmM6MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgcmVtb3ZlICVzXG4iCiBtc2dzdHIgIlNrdWxsZSB0YSBib3J0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNgorIzogYnVpbHRpbi9jbGVhbi5jOjMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwaW5nIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAiSG9wcGFyIMO2dmVyIGFya2l2ZXQgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI3CisjOiBidWlsdGluL2NsZWFuLmM6MzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgc2tpcCByZXBvc2l0b3J5ICVzXG4iCiBtc2dzdHIgIlNrdWxsZSBob3BwYSDDtnZlciBhcmtpdmV0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyOAorIzogYnVpbHRpbi9jbGVhbi5jOjMzCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZW1vdmUgJXMiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyB0YSBib3J0ICVzIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTYwCisjOiBidWlsdGluL2NsZWFuLmM6MjkzCittc2dpZCAiIgorIlByb21wdCBoZWxwOlxuIgorIjEgICAgICAgICAgLSBzZWxlY3QgYSBudW1iZXJlZCBpdGVtXG4iCisiZm9vICAgICAgICAtIHNlbGVjdCBpdGVtIGJhc2VkIG9uIHVuaXF1ZSBwcmVmaXhcbiIKKyIgICAgICAgICAgIC0gKGVtcHR5KSBzZWxlY3Qgbm90aGluZyIKK21zZ3N0ciAiIgorIktvbW1hbmRvaGrDpGxwOlxuIgorIjEgICAgICAgICAgLSBtYXJrZXJhIGVuIG51bXJlcmFkIHBvc3RcbiIKKyJmb28gICAgICAgIC0gbWFya2VyYSBwb3N0IGJhc2VyYWQgcMOlIHVuaWt0IHByZWZpeFxuIgorIiAgICAgICAgICAgLSAodG9tdCkgbWFya2VyYSBpbmdlbnRpbmciCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTcKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCisiMy01ICAgICAgICAtIHNlbGVjdCBhIHJhbmdlIG9mIGl0ZW1zXG4iCisiMi0zLDYtOSAgICAtIHNlbGVjdCBtdWx0aXBsZSByYW5nZXNcbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIi0uLi4gICAgICAgLSB1bnNlbGVjdCBzcGVjaWZpZWQgaXRlbXNcbiIKKyIqICAgICAgICAgIC0gY2hvb3NlIGFsbCBpdGVtc1xuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmciCittc2dzdHIgIiIKKyJLb21tYW5kb2hqw6RscDpcbiIKKyIxICAgICAgICAgIC0gbWFya2VyYSBlbiBlbnNhbSBwb3N0XG4iCisiMy01ICAgICAgICAtIG1hcmtlcmEgZXR0IGludGVydmFsbCBtZWQgcG9zdGVyXG4iCisiMi0zLDYtOSAgICAtIG1hcmtlcmEgZmxlcmEgaW50ZXJ2YWxsXG4iCisiZm9vICAgICAgICAtIG1hcmtlcmEgcG9zdCBiYXNlcmFkIHDDpSB1bmlrdCBwcmVmaXhcbiIKKyItLi4uICAgICAgIC0gYXZtYXJrZXJhIHNwZWNpZmlrYSBwb3N0ZXJcbiIKKyIqICAgICAgICAgIC0gdsOkbGogYWxsYSBwb3N0ZXJcbiIKKyIgICAgICAgICAgIC0gKHRvbXQpIGF2c2x1dGEgbWFya2VyaW5nIgorCisjOiBidWlsdGluL2NsZWFuLmM6NTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkh1aCAoJXMpPyIKK21zZ3N0ciAiVmFkw6UgKCVzKT8iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4gIgorbXNnc3RyICJBbmdlIGlnbm9yZXJpbmdzbcO2bnN0ZXI+PiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBDYW5ub3QgZmluZCBpdGVtcyBtYXRjaGVkIGJ5OiAlcyIKK21zZ3N0ciAiVkFSTklORzogSGl0dGFyIGludGUgcG9zdGVyIHNvbSBtb3RzdmFyYXI6ICVzIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzE2Cittc2dpZCAiU2VsZWN0IGl0ZW1zIHRvIGRlbGV0ZSIKK21zZ3N0ciAiVsOkbGogcG9zdGVyIGF0dCB0YSBib3J0IgorCisjOiBidWlsdGluL2NsZWFuLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW92ZSAlcz8gIgorbXNnc3RyICJ0YSBib3J0ICVzPyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjc4MQorbXNnaWQgIkJ5ZS4iCittc2dzdHIgIkhlaiBkw6UuIgorCisjOiBidWlsdGluL2NsZWFuLmM6Nzg5Cittc2dpZCAiIgorImNsZWFuICAgICAgICAgICAgICAgLSBzdGFydCBjbGVhbmluZ1xuIgorImZpbHRlciBieSBwYXR0ZXJuICAgLSBleGNsdWRlIGl0ZW1zIGZyb20gZGVsZXRpb25cbiIKKyJzZWxlY3QgYnkgbnVtYmVycyAgIC0gc2VsZWN0IGl0ZW1zIHRvIGJlIGRlbGV0ZWQgYnkgbnVtYmVyc1xuIgorImFzayBlYWNoICAgICAgICAgICAgLSBjb25maXJtIGVhY2ggZGVsZXRpb24gKGxpa2UgXCJybSAtaVwiKVxuIgorInF1aXQgICAgICAgICAgICAgICAgLSBzdG9wIGNsZWFuaW5nXG4iCisiaGVscCAgICAgICAgICAgICAgICAtIHRoaXMgc2NyZWVuXG4iCisiPyAgICAgICAgICAgICAgICAgICAtIGhlbHAgZm9yIHByb21wdCBzZWxlY3Rpb24iCittc2dzdHIgIiIKKyJjbGVhbiAgICAgICAgICAgICAgIC0gYsO2cmphIHN0w6RkYVxuIgorImZpbHRlciBieSBwYXR0ZXJuICAgLSB1dGVzbHV0IHBvc3RlciBmcsOlbiBib3J0dGFnbmluZ1xuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBtYXJrZXJhIHBvc3RlciBzb20gc2thIHRhcyBib3J0IG1lZCBzaWZmcm9yXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIGJla3LDpGZ0YSB2YXJqZSBib3J0dGFnbmluZyAoc29tIFwicm0gLWlcIilcbiIKKyJxdWl0ICAgICAgICAgICAgICAgIC0gc2x1dGEgc3TDpGRhXG4iCisiaGVscCAgICAgICAgICAgICAgICAtIGRlbm5hIHNrw6RybVxuIgorIj8gICAgICAgICAgICAgICAgICAgLSBoasOkbHAgZsO2ciBrb21tYW5kb3ZhbCIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgxNgorbXNnaWQgIioqKiBDb21tYW5kcyAqKioiCittc2dzdHIgIioqKiBLb21tYW5kb24gKioqIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE3Cittc2dpZCAiV2hhdCBub3ciCittc2dzdHIgIlZhZCBudSIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgyNQorbXNnaWQgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW06IgorbXNnaWRfcGx1cmFsICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtczoiCittc2dzdHJbMF0gIlNrdWxsZSB0YSBib3J0IGbDtmxqYW5kZSBwb3N0OiIKK21zZ3N0clsxXSAiU2t1bGxlIHRhIGJvcnQgZsO2bGphbmRlIHBvc3RlcjoiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NDIKK21zZ2lkICJObyBtb3JlIGZpbGVzIHRvIGNsZWFuLCBleGl0aW5nLiIKK21zZ3N0ciAiSW5nYSBmbGVyIGZpbGVyIGF0dCBzdMOkZGEsIGF2c2x1dGFyLiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3NAogbXNnaWQgImRvIG5vdCBwcmludCBuYW1lcyBvZiBmaWxlcyByZW1vdmVkIgogbXNnc3RyICJza3JpdiBpbnRlIHV0IG5hbW4gcMOlIGJvcnR0YWduYSBmaWxlciIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2MgorIzogYnVpbHRpbi9jbGVhbi5jOjg3NgogbXNnaWQgImZvcmNlIgogbXNnc3RyICJ0dmluZ2EiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzcKK21zZ2lkICJpbnRlcmFjdGl2ZSBjbGVhbmluZyIKK21zZ3N0ciAic3TDpGRhIGludGVyYWt0aXZ0IgorCisjOiBidWlsdGluL2NsZWFuLmM6ODc5CiBtc2dpZCAicmVtb3ZlIHdob2xlIGRpcmVjdG9yaWVzIgogbXNnc3RyICJ0YSBib3J0IGhlbGEga2F0YWxvZ2VyIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY1IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTIgYnVpbHRpbi9ncmVwLmM6NzE3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg3IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzEgYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorIzogYnVpbHRpbi9jbGVhbi5jOjg4MCBidWlsdGluL2Rlc2NyaWJlLmM6NDIwIGJ1aWx0aW4vZ3JlcC5jOjcxNgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MyBidWlsdGluL25hbWUtcmV2LmM6MzE1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKIG1zZ2lkICJwYXR0ZXJuIgogbXNnc3RyICJtw7Zuc3RlciIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NgorIzogYnVpbHRpbi9jbGVhbi5jOjg4MQogbXNnaWQgImFkZCA8cGF0dGVybj4gdG8gaWdub3JlIHJ1bGVzIgogbXNnc3RyICJsw6RnZyB0aWxsIDxtw7Zuc3Rlcj4gdGlsbCBpZ25vcmVyaW5nc3JlZ2xlciIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NworIzogYnVpbHRpbi9jbGVhbi5jOjg4MgogbXNnaWQgInJlbW92ZSBpZ25vcmVkIGZpbGVzLCB0b28iCiBtc2dzdHIgInRhIMOkdmVuIGJvcnQgaWdub3JlcmFkZSBmaWxlciIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2OQorIzogYnVpbHRpbi9jbGVhbi5jOjg4NAogbXNnaWQgInJlbW92ZSBvbmx5IGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgInRhIGVuZGFzdCBib3J0IGlnbm9yZXJhZGUgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxODcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDIKIG1zZ2lkICIteCBhbmQgLVggY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIi14IG9jaCAtWCBrYW4gaW50ZSBhbnbDpG5kYXMgc2FtdGlkaWd0IgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTkxCisjOiBidWlsdGluL2NsZWFuLmM6OTA2CiBtc2dpZCAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSBzZXQgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvIGNsZWFuIgotbXNnc3RyICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIHNhdHQgdGlsbCB0cnVlLCBtZW4gdmFya2VuIC1uIGVsbGVyIC1mIGFuZ2F2czsgdsOkZ3JhciAiCi0ic3TDpGRhIgotCi0jOiBidWlsdGluL2NsZWFuLmM6MTk0Ci1tc2dpZCAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgorImNsZWFuLnJlcXVpcmVGb3JjZSBzZXQgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtaSwgLW4gbm9yIC1mIGdpdmVuOyByZWZ1c2luZyB0byAiCiAiY2xlYW4iCiBtc2dzdHIgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgaGFyIHN0YW5kYXJkdsOkcmRldCB0cnVlLCBtZW4gdmFya2VuIC1uIGVsbGVyIC1mIGFuZ2F2czsgIgotInbDpGdyYXIgc3TDpGRhIgorImNsZWFuLnJlcXVpcmVGb3JjZSBzYXR0IHRpbGwgdHJ1ZSwgbWVuIHZhcmtlbiAtaSwgLW4gZWxsZXIgLWYgYW5nYXZzOyB2w6RncmFyICIKKyJzdMOkZGEiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNworIzogYnVpbHRpbi9jbGVhbi5jOjkwOQorbXNnaWQgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtaSwgLW4gbm9yIC1mIGdpdmVuOyAiCisicmVmdXNpbmcgdG8gY2xlYW4iCittc2dzdHIgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgaGFyIHN0YW5kYXJkdsOkcmRldCB0cnVlIG9jaCB2YXJrZW4gLWksIC1uIGVsbGVyIC1mICIKKyJhbmdhdnM7IHbDpGdyYXIgc3TDpGRhIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzYKIG1zZ2lkICJnaXQgY2xvbmUgW29wdGlvbnNdIFstLV0gPHJlcG8+IFs8ZGlyPl0iCiBtc2dzdHIgImdpdCBjbG9uZSBbZmxhZ2dvcl0gWy0tXSA8YXJraXY+IFs8a2F0Pl0iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NSBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIxNAotIzogYnVpbHRpbi9wdXNoLmM6NDM2CisjOiBidWlsdGluL2Nsb25lLmM6NjQgYnVpbHRpbi9mZXRjaC5jOjgyIGJ1aWx0aW4vbWVyZ2UuYzoyMjkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MgogbXNnaWQgImZvcmNlIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAidHZpbmdhIGbDtnJsb3Bwc3JhcHBvcnRlcmluZyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY3CisjOiBidWlsdGluL2Nsb25lLmM6NjYKIG1zZ2lkICJkb24ndCBjcmVhdGUgYSBjaGVja291dCIKIG1zZ3N0ciAic2thcGEgaW50ZSBuw6Vnb24gdXRjaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2OCBidWlsdGluL2Nsb25lLmM6NzAgYnVpbHRpbi9pbml0LWRiLmM6NDg4CisjOiBidWlsdGluL2Nsb25lLmM6NjcgYnVpbHRpbi9jbG9uZS5jOjY5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4OAogbXNnaWQgImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAic2thcGEgZXR0IG5ha2V0IChcImJhcmVcIikgYXJraXYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3MworIzogYnVpbHRpbi9jbG9uZS5jOjcyCiBtc2dpZCAiY3JlYXRlIGEgbWlycm9yIHJlcG9zaXRvcnkgKGltcGxpZXMgYmFyZSkiCiBtc2dzdHIgInNrYXBhIGV0dCBzcGVnZWxhcmtpdiAoaW1wbGljZXJhciBcImJhcmVcIikiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NQorIzogYnVpbHRpbi9jbG9uZS5jOjc0CiBtc2dpZCAidG8gY2xvbmUgZnJvbSBhIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgImbDtnIgYXR0IGtsb25hIGZyw6VuIGV0dCBsb2thbHQgYXJraXYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjc2CiBtc2dpZCAiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiCiBtc2dzdHIgInNrYXBhIGludGUgbG9rYWxhIGjDpXJkYSBsw6Rua2FyLCBrb3BpZXJhIGFsbHRpZCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5CisjOiBidWlsdGluL2Nsb25lLmM6NzgKIG1zZ2lkICJzZXR1cCBhcyBzaGFyZWQgcmVwb3NpdG9yeSIKIG1zZ3N0ciAic2thcGEgc29tIGV0dCBkZWxhdCBhcmtpdiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxIGJ1aWx0aW4vY2xvbmUuYzo4MworIzogYnVpbHRpbi9jbG9uZS5jOjgwIGJ1aWx0aW4vY2xvbmUuYzo4MgogbXNnaWQgImluaXRpYWxpemUgc3VibW9kdWxlcyBpbiB0aGUgY2xvbmUiCiBtc2dzdHIgImluaXRpZXJhIHVuZGVybW9kdWxlciBpIGtsb25lbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NQorIzogYnVpbHRpbi9jbG9uZS5jOjgzIGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NQogbXNnaWQgInRlbXBsYXRlLWRpcmVjdG9yeSIKIG1zZ3N0ciAibWFsbGthdGFsb2ciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NSBidWlsdGluL2luaXQtZGIuYzo0ODYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODYKIG1zZ2lkICJkaXJlY3RvcnkgZnJvbSB3aGljaCB0ZW1wbGF0ZXMgd2lsbCBiZSB1c2VkIgogbXNnc3RyICJrYXRhbG9nIGF0dCBhbnbDpG5kYSBtYWxsYXIgZnLDpW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NworIzogYnVpbHRpbi9jbG9uZS5jOjg2CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkiCiBtc2dzdHIgInJlZmVyZW5zYXJraXYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OCBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CisjOiBidWlsdGluL2Nsb25lLmM6ODcgYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAogbXNnaWQgIm5hbWUiCiBtc2dzdHIgIm5hbW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jbG9uZS5jOjg4CiBtc2dpZCAidXNlIDxuYW1lPiBpbnN0ZWFkIG9mICdvcmlnaW4nIHRvIHRyYWNrIHVwc3RyZWFtIgogbXNnc3RyICJhbnbDpG5kIDxuYW1uPiBpc3TDpGxsZXQgZsO2ciBcIm9yaWdpblwiIGbDtnIgYXR0IHNww6VyYSB1cHBzdHLDtm1zIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MAogbXNnaWQgImNoZWNrb3V0IDxicmFuY2g+IGluc3RlYWQgb2YgdGhlIHJlbW90ZSdzIEhFQUQiCiBtc2dzdHIgImNoZWNrYSB1dCA8Z3Jlbj4gaXN0w6RsbGV0IGbDtnIgZmrDpHJyZW5zIEhFQUQiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MworIzogYnVpbHRpbi9jbG9uZS5jOjkyCiBtc2dpZCAicGF0aCB0byBnaXQtdXBsb2FkLXBhY2sgb24gdGhlIHJlbW90ZSIKIG1zZ3N0ciAic8O2a3bDpGcgdGlsbCBnaXQtdXBsb2FkLXBhY2sgcMOlIGZqw6RycmVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTQgYnVpbHRpbi9mZXRjaC5jOjgzIGJ1aWx0aW4vZ3JlcC5jOjY2MgorIzogYnVpbHRpbi9jbG9uZS5jOjkzIGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjEKIG1zZ2lkICJkZXB0aCIKIG1zZ3N0ciAiZGp1cCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk1CisjOiBidWlsdGluL2Nsb25lLmM6OTQKIG1zZ2lkICJjcmVhdGUgYSBzaGFsbG93IGNsb25lIG9mIHRoYXQgZGVwdGgiCiBtc2dzdHIgInNrYXBhIGVuIGdydW5kIGtsb24gcMOlIGRldHRhIGRqdXAiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NworIzogYnVpbHRpbi9jbG9uZS5jOjk2CiBtc2dpZCAiY2xvbmUgb25seSBvbmUgYnJhbmNoLCBIRUFEIG9yIC0tYnJhbmNoIgogbXNnc3RyICJrbG9uYSBlbmRhc3QgZW4gZ3JlbiwgSEVBRCBlbGxlciAtLWJyYW5jaCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAogbXNnaWQgImdpdGRpciIKIG1zZ3N0ciAiZ2l0a2F0IgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTkgYnVpbHRpbi9pbml0LWRiLmM6NDk1CisjOiBidWlsdGluL2Nsb25lLmM6OTggYnVpbHRpbi9pbml0LWRiLmM6NDk1CiBtc2dpZCAic2VwYXJhdGUgZ2l0IGRpciBmcm9tIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAic2VwYXJlcmEgZ2l0a2F0YWxvZ2VuIGZyw6VuIGFyYmV0c2thdGFsb2dlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjEwMAorIzogYnVpbHRpbi9jbG9uZS5jOjk5CiBtc2dpZCAia2V5PXZhbHVlIgogbXNnc3RyICJueWNrZWw9dsOkcmRlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAxCisjOiBidWlsdGluL2Nsb25lLmM6MTAwCiBtc2dpZCAic2V0IGNvbmZpZyBpbnNpZGUgdGhlIG5ldyByZXBvc2l0b3J5IgogbXNnc3RyICJzdMOkbGwgaW4ga29uZmlndXJhdGlvbiBpIGRldCBueWEgYXJraXZldCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjI1NAorIzogYnVpbHRpbi9jbG9uZS5jOjI1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSAnJXMnIGlzIG5vdCBhIGxvY2FsIHJlcG9zaXRvcnkuIgogbXNnc3RyICJyZWZlcmVuc2Fya2l2ZXQgXCIlc1wiIMOkciBpbnRlIGV0dCBsb2thbHQgYXJraXYuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzE3CisjOiBidWlsdGluL2Nsb25lLmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgZGlyZWN0b3J5ICclcyciCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBza2FwYSBrYXRhbG9nZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzE5IGJ1aWx0aW4vZGlmZi5jOjc3CisjOiBidWlsdGluL2Nsb25lLmM6MzE4IGJ1aWx0aW4vZGlmZi5jOjc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICclcyciCiBtc2dzdHIgIm1pc3NseWNrYWRlcyB0YSBzdGF0dXMgcMOlIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMyMQorIzogYnVpbHRpbi9jbG9uZS5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBleGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiJXMgZmlubnMgb2NoIMOkciBpbmdlbiBrYXRhbG9nIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzM1CisjOiBidWlsdGluL2Nsb25lLmM6MzM0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICVzXG4iCiBtc2dzdHIgIm1pc3NseWNrYWRlcyB0YSBzdGF0dXMgcMOlICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNTcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaW5rICclcyciCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBza2FwYSBsw6Rua2VuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM2MQorIzogYnVpbHRpbi9jbG9uZS5jOjM2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY29weSBmaWxlIHRvICclcyciCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBrb3BpZXJhIGZpbGVuIHRpbGwgXCIlc1wiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzg0CisjOiBidWlsdGluL2Nsb25lLmM6MzgzCiAjLCBjLWZvcm1hdAogbXNnaWQgImRvbmUuXG4iCiBtc2dzdHIgImtsYXJ0LlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzk3CisjOiBidWlsdGluL2Nsb25lLmM6Mzk2CiBtc2dpZCAiIgogIkNsb25lIHN1Y2NlZWRlZCwgYnV0IGNoZWNrb3V0IGZhaWxlZC5cbiIKICJZb3UgY2FuIGluc3BlY3Qgd2hhdCB3YXMgY2hlY2tlZCBvdXQgd2l0aCAnZ2l0IHN0YXR1cydcbiIKQEAgLTM1MTksOTEgKzM3MTgsMTA1IEBACiAiRHUga2FuIGluc3Bla3RlcmEgZGV0IHNvbSBjaGVja2FkZXMgdXQgbWVkIFwiZ2l0IHN0YXR1c1wiXG4iCiAib2NoIGbDtnJzw7ZrYSBjaGVja2EgdXQgaWdlbiBtZWQgXCJnaXQgY2hlY2tvdXQgLWYgSEVBRFwiXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo0NzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZpbmQgcmVtb3RlIGJyYW5jaCAlcyB0byBjbG9uZS4iCiBtc2dzdHIgIkt1bmRlIGludGUgaGl0dGEgZmrDpHJyZ3JlbmVuICVzIGbDtnIgYXR0IGtsb25hLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjU1MAorIzogYnVpbHRpbi9jbG9uZS5jOjU1NQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGVja2luZyBjb25uZWN0aXZpdHkuLi4gIgorbXNnc3RyICJLb250cm9sbGVyYXIgYW5zbHV0bmluZy4uLiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjU1OAogbXNnaWQgInJlbW90ZSBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzIgogbXNnc3RyICJmasOkcnJlbiBzw6RuZGUgaW50ZSBhbGxhIG7DtmR2w6RuZGlnYSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2MTAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJrbGFydFxuIgorCisjOiBidWlsdGluL2Nsb25lLmM6NjIxCiBtc2dpZCAicmVtb3RlIEhFQUQgcmVmZXJzIHRvIG5vbmV4aXN0ZW50IHJlZiwgdW5hYmxlIHRvIGNoZWNrb3V0LlxuIgogbXNnc3RyICIiCiAiSEVBRCBob3MgZmrDpHJyZW4gcGVrYXIgcMOlIGVuIG9iZWZpbnRsaWcgcmVmZXJlbnMsIGthbiBpbnRlIGNoZWNrYSB1dC5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY0MQorIzogYnVpbHRpbi9jbG9uZS5jOjY1MgogbXNnaWQgInVuYWJsZSB0byBjaGVja291dCB3b3JraW5nIHRyZWUiCiBtc2dzdHIgImt1bmRlIGludGUgY2hlY2thIHV0IGFyYmV0c2thdGFsb2dlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc0OQorIzogYnVpbHRpbi9jbG9uZS5jOjc2MAogbXNnaWQgIlRvbyBtYW55IGFyZ3VtZW50cy4iCiBtc2dzdHIgIkbDtnIgbcOlbmdhIGFyZ3VtZW50LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc1MworIzogYnVpbHRpbi9jbG9uZS5jOjc2NAogbXNnaWQgIllvdSBtdXN0IHNwZWNpZnkgYSByZXBvc2l0b3J5IHRvIGNsb25lLiIKIG1zZ3N0ciAiRHUgbcOlc3RlIGFuZ2UgZXR0IGFya2l2IGF0dCBrbG9uYS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NjQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiLS1iYXJlIGFuZCAtLW9yaWdpbiAlcyBvcHRpb25zIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICJmbGFnZ29ybmEgLS1iYXJlIG9jaCAtLW9yaWdpbiAlcyDDpHIgaW5rb21wYXRpYmxhLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2NworIzogYnVpbHRpbi9jbG9uZS5jOjc3OAogbXNnaWQgIi0tYmFyZSBhbmQgLS1zZXBhcmF0ZS1naXQtZGlyIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICJmbGFnZ29ybmEgLS1iYXJlIG9jaCAtLXNlcGFyYXRlLWdpdC1kaXIgw6RyIGlua29tcGF0aWJsYS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVwb3NpdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJhcmtpdmV0IFwiJXNcIiBmaW5ucyBpbnRlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzg1CisjOiBidWlsdGluL2Nsb25lLmM6Nzk2CiBtc2dpZCAiLS1kZXB0aCBpcyBpZ25vcmVkIGluIGxvY2FsIGNsb25lczsgdXNlIGZpbGU6Ly8gaW5zdGVhZC4iCiBtc2dzdHIgIi0tZGVwdGggaWdub3JlcmFzIGkgbG9rYWxhIGtsb25pbmdhcjsgYW52w6RuZCBmaWxlOi8vIGlzdMOkbGxldCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5NQorIzogYnVpbHRpbi9jbG9uZS5jOjc5OAorbXNnaWQgIi0tbG9jYWwgaXMgaWdub3JlZCIKK21zZ3N0ciAiLS1sb2NhbCBpZ25vcmVyYXMiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVzdGluYXRpb24gcGF0aCAnJXMnIGFscmVhZHkgZXhpc3RzIGFuZCBpcyBub3QgYW4gZW1wdHkgZGlyZWN0b3J5LiIKIG1zZ3N0ciAiZGVzdGluYXRpb25zc8O2a3bDpGdlbiBcIiVzXCIgZmlubnMgcmVkYW4gb2NoIMOkciBpbnRlIGVuIHRvbSBrYXRhbG9nLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgwNQorIzogYnVpbHRpbi9jbG9uZS5jOjgxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ3b3JraW5nIHRyZWUgJyVzJyBhbHJlYWR5IGV4aXN0cy4iCiBtc2dzdHIgImFyYmV0c3Ryw6RkZXQgXCIlc1wiIGZpbm5zIHJlZGFuLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxOCBidWlsdGluL2Nsb25lLmM6ODMwCisjOiBidWlsdGluL2Nsb25lLmM6ODMxIGJ1aWx0aW4vY2xvbmUuYzo4NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSBsZWFkaW5nIGRpcmVjdG9yaWVzIG9mICclcyciCiBtc2dzdHIgImt1bmRlIGludGUgc2thcGEgaW5sZWRhbmRlIGthdGFsb2dlciBmw7ZyIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgyMQorIzogYnVpbHRpbi9jbG9uZS5jOjgzNAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIHdvcmsgdHJlZSBkaXIgJyVzJy4iCiBtc2dzdHIgImt1bmRlIGludGUgc2thcGEgYXJiZXRza2F0YWxvZ2VuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0MAorIzogYnVpbHRpbi9jbG9uZS5jOjg1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gYmFyZSByZXBvc2l0b3J5ICclcycuLi5cbiIKIG1zZ3N0ciAiS2xvbmFyIHRpbGwgZXR0IG5ha2V0IGFya2l2IFwiJXNcIi4uLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODQyCisjOiBidWlsdGluL2Nsb25lLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNsb25pbmcgaW50byAnJXMnLi4uXG4iCiBtc2dzdHIgIktsb25hciB0aWxsIFwiJXNcIi4uLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODc3CisjOiBidWlsdGluL2Nsb25lLmM6ODkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGNsb25lICVzIgogbXNnc3RyICJWZXQgaW50ZSBodXIgbWFuIGtsb25hciAlcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkyNgorIzogYnVpbHRpbi9jbG9uZS5jOjk0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdGUgYnJhbmNoICVzIG5vdCBmb3VuZCBpbiB1cHN0cmVhbSAlcyIKIG1zZ3N0ciAiRmrDpHJyZ3JlbmVuICVzIGhpdHRhZGVzIGludGUgaSB1cHBzdHLDtm1zYXJraXZldCAlcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzMworIzogYnVpbHRpbi9jbG9uZS5jOjk0OQogbXNnaWQgIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgcmVwb3NpdG9yeS4iCiBtc2dzdHIgIkR1IHZlcmthciBoYSBrbG9uYXQgZXR0IHRvbXQgYXJraXYuIgogCkBAIC0zNjM5LDE1ICszODUyLDE1IEBACiBtc2dpZCAiLS1jb21tYW5kIG11c3QgYmUgdGhlIGZpcnN0IGFyZ3VtZW50IgogbXNnc3RyICItLWNvbW1hbmQgbcOlc3RlIHZhcmEgZsO2cnN0YSBhcmd1bWVudCIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNAorIzogYnVpbHRpbi9jb21taXQuYzozNQogbXNnaWQgImdpdCBjb21taXQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IGNvbW1pdCBbZmxhZ2dvcl0gWy0tXSA8c8O2a3bDpGc+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5CisjOiBidWlsdGluL2NvbW1pdC5jOjQwCiBtc2dpZCAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgc3RhdHVzIFtmbGFnZ29yXSBbLS1dIDxzw7ZrdsOkZz4uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDUKIG1zZ2lkICIiCiAiWW91ciBuYW1lIGFuZCBlbWFpbCBhZGRyZXNzIHdlcmUgY29uZmlndXJlZCBhdXRvbWF0aWNhbGx5IGJhc2VkXG4iCiAib24geW91ciB1c2VybmFtZSBhbmQgaG9zdG5hbWUuIFBsZWFzZSBjaGVjayB0aGF0IHRoZXkgYXJlIGFjY3VyYXRlLlxuIgpAQCAtMzY3Miw3ICszODg1LDcgQEAKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFtZW5kIC0tcmVzZXQtYXV0aG9yXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTcKIG1zZ2lkICIiCiAiWW91IGFza2VkIHRvIGFtZW5kIHRoZSBtb3N0IHJlY2VudCBjb21taXQsIGJ1dCBkb2luZyBzbyB3b3VsZCBtYWtlXG4iCiAiaXQgZW1wdHkuIFlvdSBjYW4gcmVwZWF0IHlvdXIgY29tbWFuZCB3aXRoIC0tYWxsb3ctZW1wdHksIG9yIHlvdSBjYW5cbiIKQEAgLTM2ODIsMTA5ICszODk1LDEyNyBAQAogImJsaXIgZGVuIHRvbS4gRHUga2FuIGvDtnJhIGtvbW1hbmRvdCBww6Ugbnl0dCBtZWQgLS1hbGxvdy1lbXB0eSwgZWxsZXJcbiIKICJzw6Uga2FuIGR1IHRhIGJvcnQgaW5jaGVja25pbmdlbiBoZWx0IG1lZCBcImdpdCByZXNldCBIRUFEXlwiLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxCisjOiBidWlsdGluL2NvbW1pdC5jOjYyCiBtc2dpZCAiIgogIlRoZSBwcmV2aW91cyBjaGVycnktcGljayBpcyBub3cgZW1wdHksIHBvc3NpYmx5IGR1ZSB0byBjb25mbGljdCByZXNvbHV0aW9uLlxuIgogIklmIHlvdSB3aXNoIHRvIGNvbW1pdCBpdCBhbnl3YXksIHVzZTpcbiIKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCi0iT3RoZXJ3aXNlLCBwbGVhc2UgdXNlICdnaXQgcmVzZXQnXG4iCiBtc2dzdHIgIiIKICJEZW4gdGlkaWdhcmUgXCJjaGVycnktcGlja1wiOmVuIMOkciBudSB0b20sIGthbnNrZSBww6UgZ3J1bmQgYXYgZW4gbMO2c3RcbiIKICJrb25mbGlrdC4gT20gZHUgdmlsbCBjaGVja2EgaW4gZGVuIMOkbmTDpSBhbnbDpG5kZXIgZHU6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIkFubmFycyBhbnbDpG5kZXIgZHUgXCJnaXQgcmVzZXRcIlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjI2MAorIzogYnVpbHRpbi9jb21taXQuYzo2OQorbXNnaWQgIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgorbXNnc3RyICJBbnbDpG5kIGFubmFycyBcImdpdCByZXNldFwiXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzIKK21zZ2lkICIiCisiSWYgeW91IHdpc2ggdG8gc2tpcCB0aGlzIGNvbW1pdCwgdXNlOlxuIgorIlxuIgorIiAgICBnaXQgcmVzZXRcbiIKKyJcbiIKKyJUaGVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIiB3aWxsIHJlc3VtZSBjaGVycnktcGlja2luZ1xuIgorInRoZSByZW1haW5pbmcgY29tbWl0cy5cbiIKK21zZ3N0ciAiIgorIk9tIGR1IHZpbGwgaG9wcGEgw7Z2ZXIgaW5jaGVja25pbmdlbiwgYW52w6RuZDpcbiIKKyJcbiIKKyIgICAgZ2l0IHJlc2V0XG4iCisiXG4iCisiXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiIGtvbW1lciBkw6RyZWZ0ZXIgYXR0IMOldGVydXBwdGFcbiIKKyJjaGVycnktcGljayBmw7ZyIMOldGVyc3TDpWVuZGUgaW5jaGVja25pbmdhci5cbiIKKworIzogYnVpbHRpbi9jb21taXQuYzoyNzkKIG1zZ2lkICJmYWlsZWQgdG8gdW5wYWNrIEhFQUQgdHJlZSBvYmplY3QiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBwYWNrYSB1cHAgSEVBRDpzIHRyw6Rkb2JqZWt0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMwMgorIzogYnVpbHRpbi9jb21taXQuYzozMjEKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRlbXBvcmFyeSBpbmRleCIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza2FwYSB0ZW1wb3LDpHIgaW5kZXhmaWwiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzA4CisjOiBidWlsdGluL2NvbW1pdC5jOjMyNwogbXNnaWQgImludGVyYWN0aXZlIGFkZCBmYWlsZWQiCiBtc2dzdHIgImludGVyYWt0aXYgdGlsbMOkZ2duaW5nIG1pc3NseWNrYWRlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNDEgYnVpbHRpbi9jb21taXQuYzozNjIgYnVpbHRpbi9jb21taXQuYzo0MTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzYwIGJ1aWx0aW4vY29tbWl0LmM6MzgxIGJ1aWx0aW4vY29tbWl0LmM6NDMxCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ld19pbmRleCBmaWxlIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrcml2YSBmaWxlbiBuZXdfaW5kZXgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzkzCisjOiBidWlsdGluL2NvbW1pdC5jOjQxMgogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIG1lcmdlLiIKIG1zZ3N0ciAia2FuIGludGUgdXRmw7ZyYSBlbiBkZWx2aXMgaW5jaGVja25pbmcgdW5kZXIgZW4gc2FtbWFuc2xhZ25pbmcuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5NQorIzogYnVpbHRpbi9jb21taXQuYzo0MTQKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBjaGVycnktcGljay4iCiBtc2dzdHIgImthbiBpbnRlIHV0ZsO2cmEgZW4gZGVsdmlzIGluY2hlY2tuaW5nIHVuZGVyIGVuIGNoZXJyeS1waWNrLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDI0CiBtc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJrYW4gaW50ZSBsw6RzYSBpbmRleGV0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQyNQorIzogYnVpbHRpbi9jb21taXQuYzo0NDQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgdGVtcG9yYXJ5IGluZGV4IGZpbGUiCiBtc2dzdHIgImt1bmRlIGludGUgc2tyaXZhIHRlbXBvcsOkciBpbmRleGZpbCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1MTMgYnVpbHRpbi9jb21taXQuYzo1MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTM1IGJ1aWx0aW4vY29tbWl0LmM6NTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgY29tbWl0OiAlcyIKIG1zZ3N0ciAiZmVsYWt0aWcgaW5jaGVja25pbmc6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU0MgorIzogYnVpbHRpbi9jb21taXQuYzo1NjMKIG1zZ2lkICJtYWxmb3JtZWQgLS1hdXRob3IgcGFyYW1ldGVyIgogbXNnc3RyICJmZWxmb3JtYWQgXCItLWF1dGhvclwiLWZsYWdnYSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NjIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpZGVudCBzdHJpbmc6ICclcyciCiBtc2dzdHIgIkZlbGFrdGlnIGluZHJhZ25pbmdzc3Ryw6RuZzogXCIlc1wiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYwMCBidWlsdGluL2NvbW1pdC5jOjYzMyBidWlsdGluL2NvbW1pdC5jOjk1NgorIzogYnVpbHRpbi9jb21taXQuYzo2MjEgYnVpbHRpbi9jb21taXQuYzo2NTQgYnVpbHRpbi9jb21taXQuYzo5ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGxvb2t1cCBjb21taXQgJXMiCiBtc2dzdHIgImt1bmRlIGludGUgc2zDpSB1cHAgaW5jaGVja25pbmdlbiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MTIgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MAorIzogYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MQogIywgYy1mb3JtYXQKIG1zZ2lkICIocmVhZGluZyBsb2cgbWVzc2FnZSBmcm9tIHN0YW5kYXJkIGlucHV0KVxuIgogbXNnc3RyICIobMOkc2VyIGxvZ2dtZWRkZWxhbmRlIGZyw6VuIHN0YW5kYXJkIGluKVxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxNAorIzogYnVpbHRpbi9jb21taXQuYzo2MzUKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZnJvbSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAia3VuZGUgaW50ZSBsw6RzYSBsb2dnIGZyw6VuIHN0YW5kYXJkIGluIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxOAorIzogYnVpbHRpbi9jb21taXQuYzo2MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZpbGUgJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBsw6RzYSBsb2dnZmlsZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYyNAorIzogYnVpbHRpbi9jb21taXQuYzo2NDUKIG1zZ2lkICJjb21taXQgaGFzIGVtcHR5IG1lc3NhZ2UiCiBtc2dzdHIgImluY2hlY2tuaW5nZW4gaGFyIGV0dCB0b210IG1lZGRlbGFuZGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQwCisjOiBidWlsdGluL2NvbW1pdC5jOjY2MQogbXNnaWQgImNvdWxkIG5vdCByZWFkIE1FUkdFX01TRyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBsw6RzYSBNRVJHRV9NU0ciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ0CisjOiBidWlsdGluL2NvbW1pdC5jOjY2NQogbXNnaWQgImNvdWxkIG5vdCByZWFkIFNRVUFTSF9NU0ciCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgU1FVQVNIX01TRyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjY5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkICclcyciCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgXCIlc1wiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcwOQorIzogYnVpbHRpbi9jb21taXQuYzo3MzAKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgY29tbWl0IHRlbXBsYXRlIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrcml2YSBpbmNoZWNrbmluZ3NtYWxsIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcyMAorIzogYnVpbHRpbi9jb21taXQuYzo3NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMzc5OSw3ICs0MDMwLDcgQEAKICJcdCVzXG4iCiAib2NoIGbDtnJzw7ZrZXIgaWdlbi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM4MTQsNyArNDA0NSw3IEBACiAiXHQlc1xuIgogIm9jaCBmw7Zyc8O2a2VyIGlnZW4uXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzM3CisjOiBidWlsdGluL2NvbW1pdC5jOjc1OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgpAQCAtMzgyNCw3ICs0MDU1LDcgQEAKICJtZWQgXCIlY1wiIGtvbW1lciBpZ25vcmVyYXMsIG9jaCBldHQgdG9tdCBtZWRkZWxhbmRlIGF2YnJ5dGVyICIKICJpbmNoZWNrbmluZ2VuLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc0MgorIzogYnVpbHRpbi9jb21taXQuYzo3NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKQEAgLTM4MzUsMTM5ICs0MDY2LDEzOSBAQAogIm1lZCBcIiVjXCIga29tbWVyIGJlaMOlbGxhczsgZHUga2FuIHNqw6RsdiB0YSBib3J0IGRlbSBvbSBkdSB2aWxsLlxuIgogIkV0dCB0b210IG1lZGRlbGFuZGUgYXZicnl0ZXIgaW5jaGVja25pbmdlbi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Nzc2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQXV0aG9yOiAgICAlcyIKIG1zZ3N0ciAiJXNGw7ZyZmF0dGFyZTogJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzYyCisjOiBidWlsdGluL2NvbW1pdC5jOjc4MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0NvbW1pdHRlcjogJXMiCiBtc2dzdHIgIiVzSW5jaGVja2FyZTogJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzgyCisjOiBidWlsdGluL2NvbW1pdC5jOjgwMwogbXNnaWQgIkNhbm5vdCByZWFkIGluZGV4IgogbXNnc3RyICJLYW4gaW50ZSBsw6RzYSBpbmRleGV0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjgxOQorIzogYnVpbHRpbi9jb21taXQuYzo4NDUKIG1zZ2lkICJFcnJvciBidWlsZGluZyB0cmVlcyIKIG1zZ3N0ciAiRmVsIHZpZCBieWdnYW5kZSBhdiB0csOkZCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MzQgYnVpbHRpbi90YWcuYzozNTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODYwIGJ1aWx0aW4vdGFnLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG1lc3NhZ2UgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbi5cbiIKIG1zZ3N0ciAiQW5nZSBtZWRkZWxhbmRldCBlbiBhdiBmbGFnZ29ybmEgLW0gZWxsZXIgLUYuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTMxCisjOiBidWlsdGluL2NvbW1pdC5jOjk1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBleGlzdGluZyBhdXRob3IgZm91bmQgd2l0aCAnJXMnIgogbXNnc3RyICJIaXR0YWRlIGluZ2VuIGJlZmludGxpZyBmw7ZyZmF0dGFyZSBtZWQgXCIlc1wiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk0NiBidWlsdGluL2NvbW1pdC5jOjExNDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTcyIGJ1aWx0aW4vY29tbWl0LmM6MTIwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHVudHJhY2tlZCBmaWxlcyBtb2RlICclcyciCiBtc2dzdHIgIk9naWx0aWd0IGzDpGdlIGbDtnIgb3Nww6VyYWRlIGZpbGVyOiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTc2CisjOiBidWlsdGluL2NvbW1pdC5jOjEwMDkKK21zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIi0tbG9uZyBvY2ggLXogw6RyIGlua29tcGF0aWJsYSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDM5CiBtc2dpZCAiVXNpbmcgYm90aCAtLXJlc2V0LWF1dGhvciBhbmQgLS1hdXRob3IgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiS2FuIGludGUgYW52w6RuZGEgYsOlZGUgLS1yZXNldC1hdXRob3Igb2NoIC0tYXV0aG9yIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk4NworIzogYnVpbHRpbi9jb21taXQuYzoxMDUwCiBtc2dpZCAiWW91IGhhdmUgbm90aGluZyB0byBhbWVuZC4iCiBtc2dzdHIgIkR1IGhhciBpbmdldCBhdHQgdXTDtmthLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5OTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MwogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIkR1IMOkciBpIG1pdHRlbiBhdiBlbiBzYW1tYW5zbGFnbmluZyAtLSBrYW4gaW50ZSB1dMO2a2EuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5MgorIzogYnVpbHRpbi9jb21taXQuYzoxMDU1CiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY2hlcnJ5LXBpY2sgLS0gY2Fubm90IGFtZW5kLiIKIG1zZ3N0ciAiRHUgw6RyIGkgbWl0dGVuIGF2IGVuIGNoZXJyeS1waWNrIC0tIGthbiBpbnRlIHV0w7ZrYS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTk1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTgKIG1zZ2lkICJPcHRpb25zIC0tc3F1YXNoIGFuZCAtLWZpeHVwIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICJGbGFnZ29ybmEgLS1zcXVhc2ggb2NoIC0tZml4dXAga2FuIGludGUgYW52w6RuZGFzIHNhbXRpZGlndCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDA1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNjgKIG1zZ2lkICJPbmx5IG9uZSBvZiAtYy8tQy8tRi8tLWZpeHVwIGNhbiBiZSB1c2VkLiIKIG1zZ3N0ciAiRW5kYXN0IGVuIGF2IC1jLy1DLy1GLy0tZml4dXAga2FuIGFudsOkbmRhcy4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNworIzogYnVpbHRpbi9jb21taXQuYzoxMDcwCiBtc2dpZCAiT3B0aW9uIC1tIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIC1jLy1DLy1GLy0tZml4dXAuIgogbXNnc3RyICJGbGFnZ2FuIC1tIGthbiBpbnRlIGtvbWJpbmVyYXMgbWVkIC1jLy1DLy1GLy0tZml4dXAuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3OAogbXNnaWQgIi0tcmVzZXQtYXV0aG9yIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCAtQywgLWMgb3IgLS1hbWVuZC4iCiBtc2dzdHIgIi0tcmVzZXQtYXV0aG9yIGthbiBlbmRhc3QgYW52w6RuZGFzIG1lZCAtQywgLWMgZWxsZXIgLS1hbWVuZC4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzMgorIzogYnVpbHRpbi9jb21taXQuYzoxMDk1CiBtc2dpZCAiT25seSBvbmUgb2YgLS1pbmNsdWRlLy0tb25seS8tLWFsbC8tLWludGVyYWN0aXZlLy0tcGF0Y2ggY2FuIGJlIHVzZWQuIgogbXNnc3RyICIiCiAiRW5kYXN0IGVuIGF2IC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIGthbiBhbnbDpG5kYXMuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NwogbXNnaWQgIk5vIHBhdGhzIHdpdGggLS1pbmNsdWRlLy0tb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKIG1zZ3N0ciAiRHUgbcOlc3RlIGFuZ2Ugc8O2a3bDpGdhciB0aWxsc2FtbWFucyBtZWQgLS1pbmNsdWRlLy0tb25seS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNgorIzogYnVpbHRpbi9jb21taXQuYzoxMDk5CiBtc2dpZCAiQ2xldmVyLi4uIGFtZW5kaW5nIHRoZSBsYXN0IG9uZSB3aXRoIGRpcnR5IGluZGV4LiIKIG1zZ3N0ciAiU21hcnQuLi4gdXTDtmthIGRlbiBzZW5hc3RlIG1lZCBzbXV0c2lndCBpbmRleC4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOAorIzogYnVpbHRpbi9jb21taXQuYzoxMTAxCiBtc2dpZCAiRXhwbGljaXQgcGF0aHMgc3BlY2lmaWVkIHdpdGhvdXQgLWkgbm9yIC1vOyBhc3N1bWluZyAtLW9ubHkgcGF0aHMuLi4iCiBtc2dzdHIgIkV4cGxpY2l0YSBzw7ZrdsOkZ2FyIGFuZ2F2cyB1dGFuIC1pIGVsbGVyIC1vOyBhbnRhciAtLW9ubHkgc8O2a3bDpGdhci4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDQ4IGJ1aWx0aW4vdGFnLmM6NTc1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMTEgYnVpbHRpbi90YWcuYzo1NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBjbGVhbnVwIG1vZGUgJXMiCiBtc2dzdHIgIkZlbGFrdGlndCBzdMOkZG5pbmdzbMOkZ2UgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MworIzogYnVpbHRpbi9jb21taXQuYzoxMTE2CiBtc2dpZCAiUGF0aHMgd2l0aCAtYSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKIG1zZ3N0ciAiS2FuIGludGUgYW5nZSBzw7ZrdsOkZ2FyIG1lZCAtYS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1OSBidWlsdGluL2NvbW1pdC5jOjExOTQKLW1zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCi1tc2dzdHIgIi0tbG9uZyBvY2ggLXogw6RyIGlua29tcGF0aWJsYSIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMTU0IGJ1aWx0aW4vY29tbWl0LmM6MTM5MAorIzogYnVpbHRpbi9jb21taXQuYzoxMjIyIGJ1aWx0aW4vY29tbWl0LmM6MTQ1NQogbXNnaWQgInNob3cgc3RhdHVzIGNvbmNpc2VseSIKLW1zZ3N0ciAidmlzIGtvbmNpcyBzdGF0dXMiCittc2dzdHIgInZpc2Ega29uY2lzIHN0YXR1cyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTU2IGJ1aWx0aW4vY29tbWl0LmM6MTM5MgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI0IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NwogbXNnaWQgInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIgogbXNnc3RyICJ2aXNhIGluZm9ybWF0aW9uIG9tIGdyZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1OCBidWlsdGluL2NvbW1pdC5jOjEzOTQgYnVpbHRpbi9wdXNoLmM6NDI2CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjYgYnVpbHRpbi9jb21taXQuYzoxNDU5IGJ1aWx0aW4vcHVzaC5jOjQ1MgogbXNnaWQgIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IgogbXNnc3RyICJtYXNraW5sw6RzYmFyIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTYxIGJ1aWx0aW4vY29tbWl0LmM6MTM5NgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI5IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQogbXNnaWQgInNob3cgc3RhdHVzIGluIGxvbmcgZm9ybWF0IChkZWZhdWx0KSIKIG1zZ3N0ciAidmlzYSBzdGF0dXMgaSBsw6VuZ3QgZm9ybWF0IChzdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NCBidWlsdGluL2NvbW1pdC5jOjEzOTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzMiBidWlsdGluL2NvbW1pdC5jOjE0NjQKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCIKIG1zZ3N0ciAidGVybWluZXJhIHBvc3RlciBtZWQgTlVMIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjYgYnVpbHRpbi9jb21taXQuYzoxNDAyIGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTkKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjIgYnVpbHRpbi90YWcuYzo0NTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNCBidWlsdGluL2NvbW1pdC5jOjE0NjcgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MCBidWlsdGluL3RhZy5jOjQ1OQogbXNnaWQgIm1vZGUiCiBtc2dzdHIgImzDpGdlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjcgYnVpbHRpbi9jb21taXQuYzoxNDAyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzUgYnVpbHRpbi9jb21taXQuYzoxNDY3CiBtc2dpZCAic2hvdyB1bnRyYWNrZWQgZmlsZXMsIG9wdGlvbmFsIG1vZGVzOiBhbGwsIG5vcm1hbCwgbm8uIChEZWZhdWx0OiBhbGwpIgogbXNnc3RyICJ2aXNhIG9zcMOlcmFkZSBmaWxlciwgdmFsZnJpYSBsw6RnZW46IGFsbGEsIG5vcm1hbCwgbm8uIChTdGFuZGFyZDogYWxsKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTcwCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzgKIG1zZ2lkICJzaG93IGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgInZpc2EgaWdub3JlcmFkZSBmaWxlciIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTcxIHBhcnNlLW9wdGlvbnMuaDoxNTEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOSBwYXJzZS1vcHRpb25zLmg6MTU0CiBtc2dpZCAid2hlbiIKIG1zZ3N0ciAibsOkciIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTcyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNDAKIG1zZ2lkICIiCiAiaWdub3JlIGNoYW5nZXMgdG8gc3VibW9kdWxlcywgb3B0aW9uYWwgd2hlbjogYWxsLCBkaXJ0eSwgdW50cmFja2VkLiAiCiAiKERlZmF1bHQ6IGFsbCkiCkBAIC0zOTc1LDIxNyArNDIwNiwyMTcgQEAKICJpZ25vcmVyYSDDpG5kcmluZ2FyIGkgdW5kZXJtb2R1bGVyLCB2YWxmcml0dCBuw6RyOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoRGVmYXVsdDogYWxsKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTc0CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNDIKIG1zZ2lkICJsaXN0IHVudHJhY2tlZCBmaWxlcyBpbiBjb2x1bW5zIgogbXNnc3RyICJ2aXNhIG9zcMOlcmFkZSBmaWxlciBpIHNwYWx0ZXIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0OAorIzogYnVpbHRpbi9jb21taXQuYzoxMzEzCiBtc2dpZCAiY291bGRuJ3QgbG9vayB1cCBuZXdseSBjcmVhdGVkIGNvbW1pdCIKIG1zZ3N0ciAia3VuZGUgaW50ZSBzbMOlIHVwcCBlbiBwcmVjaXMgc2thcGFkIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxNQogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBuZXdseSBjcmVhdGVkIGNvbW1pdCIKIG1zZ3N0ciAia3VuZGUgaW50ZSB0b2xrYSBlbiBwcmVjaXMgc2thcGFkIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyOTEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1NgogbXNnaWQgImRldGFjaGVkIEhFQUQiCiBtc2dzdHIgImZyw6Vua29wcGxhZCBIRUFEIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyOTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1OAogbXNnaWQgIiAocm9vdC1jb21taXQpIgogbXNnc3RyICIgKHJvdGluY2hlY2tuaW5nKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjUKIG1zZ2lkICJzdXBwcmVzcyBzdW1tYXJ5IGFmdGVyIHN1Y2Nlc3NmdWwgY29tbWl0IgogbXNnc3RyICJ1bmRlcnRyeWNrIHNhbW1hbmZhdHRuaW5nIGVmdGVyIGZyYW1nw6VuZ3NyaWsgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDI2CiBtc2dpZCAic2hvdyBkaWZmIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgogbXNnc3RyICJ2aXNhIGRpZmYgaSBtYWxsZW4gZsO2ciBpbmNoZWNrbmluZ3NtZWRkZWxhbmRldCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYzCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjgKIG1zZ2lkICJDb21taXQgbWVzc2FnZSBvcHRpb25zIgogbXNnc3RyICJBbHRlcm5hdGl2IGbDtnIgaW5jaGVja25pbmdzbWVkZGVsYW5kZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY0IGJ1aWx0aW4vdGFnLmM6NDU3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjkgYnVpbHRpbi90YWcuYzo0NTcKIG1zZ2lkICJyZWFkIG1lc3NhZ2UgZnJvbSBmaWxlIgogbXNnc3RyICJsw6RzIG1lZGRlbGFuZGUgZnLDpW4gZmlsIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAogbXNnaWQgImF1dGhvciIKIG1zZ3N0ciAiZsO2cmZhdHRhcmUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCiBtc2dpZCAib3ZlcnJpZGUgYXV0aG9yIGZvciBjb21taXQiCiBtc2dzdHIgIsO2dmVyc3R5ciBmw7ZyZmF0dGFyZSBmw7ZyIGluY2hlY2tuaW5nZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NiBidWlsdGluL2djLmM6MTc4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzEgYnVpbHRpbi9nYy5jOjE3OAogbXNnaWQgImRhdGUiCiBtc2dzdHIgImRhdHVtIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMQogbXNnaWQgIm92ZXJyaWRlIGRhdGUgZm9yIGNvbW1pdCIKIG1zZ3N0ciAiw7Z2ZXJzdHlyIGRhdHVtIGbDtnIgaW5jaGVja25pZ25lbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY3IGJ1aWx0aW4vbWVyZ2UuYzoyMDggYnVpbHRpbi9ub3Rlcy5jOjUzMwotIzogYnVpbHRpbi9ub3Rlcy5jOjY5MCBidWlsdGluL3RhZy5jOjQ1NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMyIGJ1aWx0aW4vbWVyZ2UuYzoyMjMgYnVpbHRpbi9ub3Rlcy5jOjQwNQorIzogYnVpbHRpbi9ub3Rlcy5jOjU2MiBidWlsdGluL3RhZy5jOjQ1NQogbXNnaWQgIm1lc3NhZ2UiCiBtc2dzdHIgIm1lZGRlbGFuZGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NworIzogYnVpbHRpbi9jb21taXQuYzoxNDMyCiBtc2dpZCAiY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgImluY2hlY2tuaW5nc21lZGRlbGFuZGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDMzCiBtc2dpZCAicmV1c2UgYW5kIGVkaXQgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIsOldGVyYW52w6RuZCBvY2ggcmVkaWdlcmEgbWVkZGVsYW5kZSBmcsOlbiBhbmdpdmVuIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNAogbXNnaWQgInJldXNlIG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICLDpXRlcmFudsOkbmQgbWVkZGVsYW5kZSBmcsOlbiBhbmdpdmVuIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNQogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIGZpeHVwIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKICJhbnbDpG5kIGF1dG9zcXVhc2gtZm9ybWF0ZXJhdCBtZWRkZWxhbmRlIGbDtnIgYXR0IGZpeGEgYW5naXZlbiBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzYKIG1zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBzcXVhc2ggc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogImFudsOkbmQgYXV0b3NxdWFzaC1mb3JtYXRlcmF0IG1lZGRlbGFuZGUgZsO2ciBhdHQgc2zDpSBpaG9wIG1lZCBhbmdpdmVuICIKICJpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzcKIG1zZ2lkICJ0aGUgY29tbWl0IGlzIGF1dGhvcmVkIGJ5IG1lIG5vdyAodXNlZCB3aXRoIC1DLy1jLy0tYW1lbmQpIgogbXNnc3RyICJqYWcgw6RyIG51IGbDtnJmYXR0YXJlIGF2IGluY2hlY2tuaW5nZW4gKGFudsOkbmRzIG1lZCAtQy8tYy8tLWFtZW5kKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzczIGJ1aWx0aW4vbG9nLmM6MTExMyBidWlsdGluL3JldmVydC5jOjEwOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM4IGJ1aWx0aW4vbG9nLmM6MTE2MCBidWlsdGluL3JldmVydC5jOjExMQogbXNnaWQgImFkZCBTaWduZWQtb2ZmLWJ5OiIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBTaWduZWQtb2ZmLWJ5OiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzkKIG1zZ2lkICJ1c2Ugc3BlY2lmaWVkIHRlbXBsYXRlIGZpbGUiCiBtc2dzdHIgImFudsOkbmQgYW5naXZlbiBtYWxsZmlsIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MAogbXNnaWQgImZvcmNlIGVkaXQgb2YgY29tbWl0IgogbXNnc3RyICJ0dmluZ2EgcmVkaWdlcmluZyBhdiBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKIG1zZ2lkICJkZWZhdWx0IgogbXNnc3RyICJzdGFuZGFyZCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc2IGJ1aWx0aW4vdGFnLmM6NDYwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDEgYnVpbHRpbi90YWcuYzo0NjAKIG1zZ2lkICJob3cgdG8gc3RyaXAgc3BhY2VzIGFuZCAjY29tbWVudHMgZnJvbSBtZXNzYWdlIgogbXNnc3RyICJodXIgYmxhbmtzdGVnIG9jaCAja29tbWVudGFyZXIgc2thbGwgdGFzIGJvcnQgZnLDpW4gbWVkZGVsYW5kZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDIKIG1zZ2lkICJpbmNsdWRlIHN0YXR1cyBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKIG1zZ3N0ciAiaW5rbHVkZXJhIHN0YXR1cyBpIG1hbGxlbiBmw7ZyIGluY2hlY2tuaW5nc21lZGRlbGFuZGV0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzggYnVpbHRpbi9tZXJnZS5jOjIxNSBidWlsdGluL3RhZy5jOjQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDQzIGJ1aWx0aW4vbWVyZ2UuYzoyMzAgYnVpbHRpbi90YWcuYzo0NjEKIG1zZ2lkICJrZXkgaWQiCiBtc2dzdHIgIm55Y2tlbC1pZCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc5IGJ1aWx0aW4vbWVyZ2UuYzoyMTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0NCBidWlsdGluL21lcmdlLmM6MjMxCiBtc2dpZCAiR1BHIHNpZ24gY29tbWl0IgogbXNnc3RyICJHUEctc2lnbmVyYSBpbmNoZWNrbmluZyIKIAogIy4gZW5kIGNvbW1pdCBtZXNzYWdlIG9wdGlvbnMKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ3CiBtc2dpZCAiQ29tbWl0IGNvbnRlbnRzIG9wdGlvbnMiCiBtc2dzdHIgIkFsdGVybmF0aXYgZsO2ciBpbmNoZWNrbmluZ2VucyBpbm5laMOlbGwiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MworIzogYnVpbHRpbi9jb21taXQuYzoxNDQ4CiBtc2dpZCAiY29tbWl0IGFsbCBjaGFuZ2VkIGZpbGVzIgogbXNnc3RyICJjaGVja2EgaW4gYWxsYSDDpG5kcmFkZSBmaWxlciIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDkKIG1zZ2lkICJhZGQgc3BlY2lmaWVkIGZpbGVzIHRvIGluZGV4IGZvciBjb21taXQiCiBtc2dzdHIgImzDpGdnIHRpbGwgYW5naXZuYSBmaWxlciB0aWxsIGluZGV4ZXQgZsO2ciBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTAKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBmaWxlcyIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBmaWxlciBpbnRlcmFrdGl2dCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTEKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBjaGFuZ2VzIgogbXNnc3RyICJsw6RnZyB0aWxsIMOkbmRyaW5nYXIgaW50ZXJha3RpdnQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NworIzogYnVpbHRpbi9jb21taXQuYzoxNDUyCiBtc2dpZCAiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIgogbXNnc3RyICJjaGVja2EgZW5kYXN0IGluIGFuZ2l2bmEgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDUzCiBtc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKIG1zZ3N0ciAiZsO2cmJpZ8OlIHByZS1jb21taXQta3JvayIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTQKIG1zZ2lkICJzaG93IHdoYXQgd291bGQgYmUgY29tbWl0dGVkIgogbXNnc3RyICJ2aXNhIHZhZCBzb20gc2t1bGxlIGNoZWNrYXMgaW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwMAorIzogYnVpbHRpbi9jb21taXQuYzoxNDY1CiBtc2dpZCAiYW1lbmQgcHJldmlvdXMgY29tbWl0IgogbXNnc3RyICJsw6RnZyB0aWxsIGbDtnJlZ8OlZW5kZSBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDAxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjYKIG1zZ2lkICJieXBhc3MgcG9zdC1yZXdyaXRlIGhvb2siCiBtc2dzdHIgImbDtnJiaWfDpSBwb3N0LXJld3JpdGUta3JvayIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDA2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzEKIG1zZ2lkICJvayB0byByZWNvcmQgYW4gZW1wdHkgY2hhbmdlIgogbXNnc3RyICJvayBhdHQgcmVnaXN0cmVyYSBlbiB0b20gw6RuZHJpbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDc0CiBtc2dpZCAib2sgdG8gcmVjb3JkIGEgY2hhbmdlIHdpdGggYW4gZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAib2sgYXR0IHJlZ2lzdHJlcmEgZW4gw6RuZHJpbmcgbWVkIHRvbXQgbWVkZGVsYW5kZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQxCisjOiBidWlsdGluL2NvbW1pdC5jOjE1MDcKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgSEVBRCBjb21taXQiCiBtc2dzdHIgImt1bmRlIGludGUgdG9sa2EgSEVBRDpzIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NzkgYnVpbHRpbi9tZXJnZS5jOjUxMAorIzogYnVpbHRpbi9jb21taXQuYzoxNTQ1IGJ1aWx0aW4vbWVyZ2UuYzo1MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyBmb3IgcmVhZGluZyIKIG1zZ3N0ciAia3VuZGUgaW50ZSDDtnBwbmEgXCIlc1wiIGbDtnIgbMOkc25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ4NgorIzogYnVpbHRpbi9jb21taXQuYzoxNTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvcnJ1cHQgTUVSR0VfSEVBRCBmaWxlICglcykiCiBtc2dzdHIgIlRyYXNpZyBNRVJHRV9IRUFELWZpbCAoJXMpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0OTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1OQogbXNnaWQgImNvdWxkIG5vdCByZWFkIE1FUkdFX01PREUiCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgTUVSR0VfTU9ERSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTEyCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgY29tbWl0IG1lc3NhZ2U6ICVzIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhIGluY2hlY2tuaW5nc21lZGRlbGFuZGU6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJBYm9ydGluZyBjb21taXQ7IHlvdSBkaWQgbm90IGVkaXQgdGhlIG1lc3NhZ2UuXG4iCiBtc2dzdHIgIkF2YnJ5dGVyIGluY2hlY2tuaW5nOyBtZWRkZWxhbmRldCBpbnRlIHJlZGlnZXJhdC5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTMxCisjOiBidWlsdGluL2NvbW1pdC5jOjE1OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWJvcnRpbmcgY29tbWl0IGR1ZSB0byBlbXB0eSBjb21taXQgbWVzc2FnZS5cbiIKIG1zZ3N0ciAiQXZicnl0ZXIgcMOlIGdydW5kIGF2IHRvbXQgaW5jaGVja25pbmdzbWVkZGVsYW5kZS5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTQ2IGJ1aWx0aW4vbWVyZ2UuYzo4NDcgYnVpbHRpbi9tZXJnZS5jOjg3MgorIzogYnVpbHRpbi9jb21taXQuYzoxNjEyIGJ1aWx0aW4vbWVyZ2UuYzo4NjEgYnVpbHRpbi9tZXJnZS5jOjg4NgogbXNnaWQgImZhaWxlZCB0byB3cml0ZSBjb21taXQgb2JqZWN0IgogbXNnc3RyICJrdW5kZSBpbnRlIHNrcml2YSBpbmNoZWNrbmluZ3NvYmpla3QiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU2NworIzogYnVpbHRpbi9jb21taXQuYzoxNjMzCiBtc2dpZCAiY2Fubm90IGxvY2sgSEVBRCByZWYiCiBtc2dzdHIgImt1bmRlIGludGUgbMOlc2EgSEVBRC1yZWZlcmVucyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTcxCisjOiBidWlsdGluL2NvbW1pdC5jOjE2MzcKIG1zZ2lkICJjYW5ub3QgdXBkYXRlIEhFQUQgcmVmIgogbXNnc3RyICJrdW5kZSBpbnRlIHVwcGRhdGVyYSBIRUFELXJlZmVyZW5zIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1ODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY0OAogbXNnaWQgIiIKICJSZXBvc2l0b3J5IGhhcyBiZWVuIHVwZGF0ZWQsIGJ1dCB1bmFibGUgdG8gd3JpdGVcbiIKICJuZXdfaW5kZXggZmlsZS4gQ2hlY2sgdGhhdCBkaXNrIGlzIG5vdCBmdWxsIG9yIHF1b3RhIGlzXG4iCkBAIC00MjAwLDExNSArNDQzMSwxMjMgQEAKIG1zZ2lkICJnaXQgY29uZmlnIFtvcHRpb25zXSIKIG1zZ3N0ciAiZ2l0IGNvbmZpZyBbZmxhZ2dvcl0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKIG1zZ2lkICJDb25maWcgZmlsZSBsb2NhdGlvbiIKIG1zZ3N0ciAiS29uZmlndXJhdGlvbnNmaWxlbnMgcGxhdHMiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKIG1zZ2lkICJ1c2UgZ2xvYmFsIGNvbmZpZyBmaWxlIgogbXNnc3RyICJhbnbDpG5kIGdsb2JhbCBrb25maWd1cmF0aW9uc2ZpbCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MworIzogYnVpbHRpbi9jb25maWcuYzo1NAogbXNnaWQgInVzZSBzeXN0ZW0gY29uZmlnIGZpbGUiCiBtc2dzdHIgImFudsOkbmQgc3lzdGVtZXRzIGtvbmZpZ3VyYXRpb25zZmlsIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU0CisjOiBidWlsdGluL2NvbmZpZy5jOjU1CiBtc2dpZCAidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiCiBtc2dzdHIgImFudsOkbmQgYXJraXZldHMga29uZmlndXJhdGlvbnNmaWwiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTYKIG1zZ2lkICJ1c2UgZ2l2ZW4gY29uZmlnIGZpbGUiCiBtc2dzdHIgImFudsOkbmQgYW5naXZlbiBrb25maWd1cmF0aW9uc2lsIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU2CisjOiBidWlsdGluL2NvbmZpZy5jOjU3Cittc2dpZCAiYmxvYi1pZCIKK21zZ3N0ciAiYmxvYi1pZCIKKworIzogYnVpbHRpbi9jb25maWcuYzo1NworbXNnaWQgInJlYWQgY29uZmlnIGZyb20gZ2l2ZW4gYmxvYiBvYmplY3QiCittc2dzdHIgImzDpHMga29uZmlndXJhdGlvbiBmcsOlbiBnaXZldCBibG9iLW9iamVrdCIKKworIzogYnVpbHRpbi9jb25maWcuYzo1OAogbXNnaWQgIkFjdGlvbiIKIG1zZ3N0ciAiw4V0Z8OkcmQiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKIG1zZ2lkICJnZXQgdmFsdWU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiaMOkbXRhIHbDpHJkZTogbmFtbiBbdsOkcmRlLXJlZ3V0dHJdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU4CisjOiBidWlsdGluL2NvbmZpZy5jOjYwCiBtc2dpZCAiZ2V0IGFsbCB2YWx1ZXM6IGtleSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJow6RtdGEgYWxsYSB2w6RyZGVuOiBueWNrZWwgW3bDpHJkZS1yZWd1dHRyXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OQorIzogYnVpbHRpbi9jb25maWcuYzo2MQogbXNnaWQgImdldCB2YWx1ZXMgZm9yIHJlZ2V4cDogbmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJow6RtdGEgdsOkcmRlbiBmw7ZyIHJlZ3V0dHI6IG5hbW4tcmVndXR0ciBbdsOkcmRlLXJlZ3V0dHJdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYwCisjOiBidWlsdGluL2NvbmZpZy5jOjYyCiBtc2dpZCAicmVwbGFjZSBhbGwgbWF0Y2hpbmcgdmFyaWFibGVzOiBuYW1lIHZhbHVlIFt2YWx1ZV9yZWdleF0iCiBtc2dzdHIgImVyc8OkdHQgYWxsYSBtb3RzdmFyYW5kZSB2YXJpYWJsZXI6IG5hbW4gdsOkcmRlIFt2w6RyZGUtcmVndXR0cl0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKIG1zZ2lkICJhZGQgYSBuZXcgdmFyaWFibGU6IG5hbWUgdmFsdWUiCiBtc2dzdHIgImzDpGdnIHRpbGwgZW4gbnkgdmFyaWFiZWw6IG5hbW4gdsOkcmRlIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYyCisjOiBidWlsdGluL2NvbmZpZy5jOjY0CiBtc2dpZCAicmVtb3ZlIGEgdmFyaWFibGU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAidGEgYm9ydCBlbiB2YXJpYWJlbDogbmFtbiBbdsOkcmRlLXJlZ3V0dHJdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYzCisjOiBidWlsdGluL2NvbmZpZy5jOjY1CiBtc2dpZCAicmVtb3ZlIGFsbCBtYXRjaGVzOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgInRhIGJvcnQgYWxsYSB0csOkZmZhcjogbmFtbiBbdsOkcmRlLXJlZ3V0dHJdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY0CisjOiBidWlsdGluL2NvbmZpZy5jOjY2CiBtc2dpZCAicmVuYW1lIHNlY3Rpb246IG9sZC1uYW1lIG5ldy1uYW1lIgogbXNnc3RyICJieXQgbmFtbiBww6Ugc2VrdGlvbjogZ2FtbWFsdC1uYW1uIG55dHQtbmFtbiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NQorIzogYnVpbHRpbi9jb25maWcuYzo2NwogbXNnaWQgInJlbW92ZSBhIHNlY3Rpb246IG5hbWUiCiBtc2dzdHIgInRhIGJvcnQgZW4gc2VrdGlvbjogbmFtbiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NgorIzogYnVpbHRpbi9jb25maWcuYzo2OAogbXNnaWQgImxpc3QgYWxsIgogbXNnc3RyICJ2aXNhIGFsbGEiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKIG1zZ2lkICJvcGVuIGFuIGVkaXRvciIKIG1zZ3N0ciAiw7ZwcG5hIHRleHRyZWRpZ2VyaW5nc3Byb2dyYW0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjggYnVpbHRpbi9jb25maWcuYzo2OQorIzogYnVpbHRpbi9jb25maWcuYzo3MCBidWlsdGluL2NvbmZpZy5jOjcxCiBtc2dpZCAic2xvdCIKIG1zZ3N0ciAicGxhdHMiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzAKIG1zZ2lkICJmaW5kIHRoZSBjb2xvciBjb25maWd1cmVkOiBbZGVmYXVsdF0iCiBtc2dzdHIgImhpdHRhIGRlbiBpbnN0w6RsbGRhIGbDpHJnZW46IFtkZWZhdWx0XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2OQorIzogYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgImZpbmQgdGhlIGNvbG9yIHNldHRpbmc6IFtzdGRvdXQtaXMtdHR5XSIKIG1zZ3N0ciAiaGl0dGEgZsOkcmdpbnN0w6RsbG5pbmdlbjogW3N0ZG91dC1pcy10dHldIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcwCisjOiBidWlsdGluL2NvbmZpZy5jOjcyCiBtc2dpZCAiVHlwZSIKIG1zZ3N0ciAiVHlwIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcxCisjOiBidWlsdGluL2NvbmZpZy5jOjczCiBtc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgogbXNnc3RyICJ2w6RyZGV0IMOkciBcInRydWVcIiBlbGxlciBcImZhbHNlXCIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzQKIG1zZ2lkICJ2YWx1ZSBpcyBkZWNpbWFsIG51bWJlciIKIG1zZ3N0ciAidsOkcmRldCDDpHIgZXR0IGRlY2ltYWx0IHRhbCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MworIzogYnVpbHRpbi9jb25maWcuYzo3NQogbXNnaWQgInZhbHVlIGlzIC0tYm9vbCBvciAtLWludCIKIG1zZ3N0ciAidsOkcmRldCDDpHIgLS1ib29sIGVsbGVyIC0taW50IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc0CisjOiBidWlsdGluL2NvbmZpZy5jOjc2CiBtc2dpZCAidmFsdWUgaXMgYSBwYXRoIChmaWxlIG9yIGRpcmVjdG9yeSBuYW1lKSIKIG1zZ3N0ciAidsOkcmRldCDDpHIgZW4gc8O2a3bDpGcgKGZpbC0gZWxsZXIga2F0YWxvZ25hbW4pIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc1CisjOiBidWlsdGluL2NvbmZpZy5jOjc3CiBtc2dpZCAiT3RoZXIiCiBtc2dzdHIgIkFuZHJhIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc2CisjOiBidWlsdGluL2NvbmZpZy5jOjc4CiBtc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgogbXNnc3RyICJ0ZXJtaW5lcmEgdsOkcmRlbiBtZWQgTlVMLWJ5dGUiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKIG1zZ2lkICJyZXNwZWN0IGluY2x1ZGUgZGlyZWN0aXZlcyBvbiBsb29rdXAiCiBtc2dzdHIgInJlc3Bla3RlcmEgaW5rbHVkZXJpbmdzZGlyZWt0aXYgdmlkIHVwcHNsYWciCiAKQEAgLTQzMjAsNTUgKzQ1NTksNTUgQEAKIG1zZ2lkICJwcmludCBzaXplcyBpbiBodW1hbiByZWFkYWJsZSBmb3JtYXQiCiBtc2dzdHIgInNrcml2IHN0b3JsZWthciBpIG3DpG5uaXNrb2zDpHNiYXJ0IGZvcm1hdCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjE1CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKIG1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCiBtc2dzdHIgImdpdCBkZXNjcmliZSBbZmxhZ2dvcl0gPGluY2hlY2tuaW5nLWlndD4qIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNwogbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eSIKIG1zZ3N0ciAiZ2l0IGRlc2NyaWJlIFtmbGFnZ29yXSAtLWRpcnR5IgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjMzCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImFubm90YXRlZCB0YWcgJXMgbm90IGF2YWlsYWJsZSIKIG1zZ3N0ciAiZGVuIGFubm90ZXJhZGUgdGFnZ2VuICVzIGludGUgdGlsbGfDpG5nbGlnIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjM3CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImFubm90YXRlZCB0YWcgJXMgaGFzIG5vIGVtYmVkZGVkIG5hbWUiCiBtc2dzdHIgImRlbiBhbm5vdGVyYWRlIHRhZ2dlbiAlcyBoYXIgaW5nZXQgaW5iw6RkZGF0IG5hbW4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzkKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNDMKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgaXMgcmVhbGx5ICclcycgaGVyZSIKIG1zZ3N0ciAidGFnZ2VuIFwiJXNcIiDDpHIgaSB2ZXJrbGlnaGV0ZW4gXCIlc1wiIGjDpHIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNjYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgIk9iamVrdG5hbW5ldCDDpHIgaW50ZSBnaWx0aWd0OiAlcyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2OQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBpcyBub3QgYSB2YWxpZCAnJXMnIG9iamVjdCIKIG1zZ3N0ciAiJXMgw6RyIGludGUgZXR0IGdpbHRpZ3QgXCIlc1wiLW9iamVrdCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI4NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0YWcgZXhhY3RseSBtYXRjaGVzICclcyciCiBtc2dzdHIgImluZ2VuIHRhZ2cgbW90c3ZhcmFyIFwiJXNcIiBleGFrdCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI4OAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJzZWFyY2hpbmcgdG8gZGVzY3JpYmUgJXNcbiIKIG1zZ3N0ciAic8O2a2VyIGbDtnIgYXR0IGJlc2tyaXZhICVzXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMjgKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmluaXNoZWQgc2VhcmNoIGF0ICVzXG4iCiBtc2dzdHIgImF2c2x1dGFkZSBzw7ZrbmluZyBww6UgJXNcbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1MgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiTm8gYW5ub3RhdGVkIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCkBAIC00Mzc3LDcgKzQ2MTYsNyBAQAogIkluZ2EgYW5ub3RlcmFkZSB0YWdnYXIga2FuIGJlc2tyaXZhIFwiJXNcIi5cbiIKICJEZXQgZmlubnMgZG9jayBvYW5ub3RlcmFkZSB0YWdnYXI6IHRlc3RhIC0tdGFncy4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCkBAIC00Mzg2LDEyICs0NjI1LDEyIEBACiAiSW5nYSB0YWdnYXIga2FuIGJlc2tyaXZhIFwiJXNcIi5cbiIKICJUZXN0YSAtLWFsd2F5cywgZWxsZXIgc2thcGEgbsOlZ3JhIHRhZ2dhci4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNzcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJhdmVyc2VkICVsdSBjb21taXRzXG4iCiBtc2dzdHIgInRyYXZlcnNlcmFkZSAlbHUgaW5jaGVja25pbmdhclxuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzgwCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6Mzg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJtb3JlIHRoYW4gJWkgdGFncyBmb3VuZDsgbGlzdGVkICVpIG1vc3QgcmVjZW50XG4iCkBAIC00NDAwLDU5ICs0NjM5LDYzIEBACiAibWVyIMOkbiAlaSB0YWdnYXIgaGl0dGFkZXM7IGxpc3RhciBkZSAlaSBzZW5hc3RlXG4iCiAiZ2F2IHVwcCBzw7ZrbmluZ2VuIHZpZCAlc1xuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDAyCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5CiBtc2dpZCAiZmluZCB0aGUgdGFnIHRoYXQgY29tZXMgYWZ0ZXIgdGhlIGNvbW1pdCIKIG1zZ3N0ciAiaGl0dGEgdGFnZ2VuIHNvbSBrb21tZXIgZWZ0ZXIgaW5jaGVja25pbmdlbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwMworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMAogbXNnaWQgImRlYnVnIHNlYXJjaCBzdHJhdGVneSBvbiBzdGRlcnIiCiBtc2dzdHIgImZlbHPDtmsgc8O2a3N0cmF0ZWdpbiBww6Ugc3RhbmRhcmQgZmVsIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA0CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCiBtc2dpZCAidXNlIGFueSByZWYiCiBtc2dzdHIgImFudsOkbmQgYWxsYSByZWZlcmVuc2VyIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA1CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEyCiBtc2dpZCAidXNlIGFueSB0YWcsIGV2ZW4gdW5hbm5vdGF0ZWQiCiBtc2dzdHIgImFudsOkbmQgYWxsYSB0YWdnYXIsIMOkdmVuIG9hbm5vdGVyYWRlIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEzCiBtc2dpZCAiYWx3YXlzIHVzZSBsb25nIGZvcm1hdCIKIG1zZ3N0ciAiYW52w6RuZCBhbGx0aWQgbMOlbmd0IGZvcm1hdCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwOQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNAorbXNnaWQgIm9ubHkgZm9sbG93IGZpcnN0IHBhcmVudCIKK21zZ3N0ciAiZsO2bGogZW5kYXN0IGbDtnJzdGEgZsO2csOkbGRlcm4iCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKIG1zZ2lkICJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIgogbXNnc3RyICJza3JpdiBlbmRhc3QgdXQgZXhha3RhIHRyw6RmZmFyIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE5CiBtc2dpZCAiY29uc2lkZXIgPG4+IG1vc3QgcmVjZW50IHRhZ3MgKGRlZmF1bHQ6IDEwKSIKIG1zZ3N0ciAiw7Z2ZXJ2w6RnIGRlIDxuPiBueWFzdGUgdGFnZ2FybmEgKHN0YW5kYXJkOiAxMCkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjEKIG1zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgogbXNnc3RyICLDtnZlcnbDpGcgZW5kYXN0IHRhZ2dhciBzb20gbW90c3ZhcmFyIDxtw7Zuc3Rlcj4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTUgYnVpbHRpbi9uYW1lLXJldi5jOjIzOAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyMyBidWlsdGluL25hbWUtcmV2LmM6MzIyCiBtc2dpZCAic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIgogbXNnc3RyICJ2aXNhIGbDtnJrb3J0YWRlIGluY2hlY2tuaW5nc29iamVrdCBzb20gc3RhbmRhcmQiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjQKIG1zZ2lkICJtYXJrIgogbXNnc3RyICJtw6Rya2UiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjUKIG1zZ2lkICJhcHBlbmQgPG1hcms+IG9uIGRpcnR5IHdvcmtpbmcgdHJlZSAoZGVmYXVsdDogXCItZGlydHlcIikiCiBtc2dzdHIgImzDpGdnIHRpbGwgPG3DpHJrZT4gcMOlIGxvcnRpZ3QgYXJiZXRzdHLDpGQgKHN0YW5kYXJkOiBcIi1kaXJ0eVwiKSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQzNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ0MwogbXNnaWQgIi0tbG9uZyBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFiYnJldj0wIgogbXNnc3RyICItLWxvbmcgw6RyIGlua29tcGF0aWJlbCBtZWQgLS1hYmJyZXY9MCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2MQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2OQogbXNnaWQgIk5vIG5hbWVzIGZvdW5kLCBjYW5ub3QgZGVzY3JpYmUgYW55dGhpbmcuIgogbXNnc3RyICJJbmdhIG5hbW4gaGl0dGFkZXMsIGthbiBpbnRlIGJlc2tyaXZhIG7DpWdvdC4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODkKIG1zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdHRpc2hlcyIKIG1zZ3N0ciAiLS1kaXJ0eSDDpHIgaW5rb21wYXRpYmVsdCBtZWQgXCJjb21taXR0aXNoXCItdsOkcmRlbiIKIApAQCAtNDQ2MSwzMSArNDcwNCwyNiBAQAogbXNnaWQgIiclcyc6IG5vdCBhIHJlZ3VsYXIgZmlsZSBvciBzeW1saW5rIgogbXNnc3RyICJcIiVzXCI6IGludGUgZW4gbm9ybWFsIGZpbCBlbGxlciBzeW1ib2xpc2sgbMOkbmsiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjIyOAorIzogYnVpbHRpbi9kaWZmLmM6MjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb3B0aW9uOiAlcyIKIG1zZ3N0ciAib2dpbHRpZyBmbGFnZ2E6ICVzIgogCi0jOiBidWlsdGluL2RpZmYuYzozMDUKKyM6IGJ1aWx0aW4vZGlmZi5jOjMwNwogbXNnaWQgIk5vdCBhIGdpdCByZXBvc2l0b3J5IgogbXNnc3RyICJJbnRlIGV0dCBnaXQtYXJraXYiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM0OAorIzogYnVpbHRpbi9kaWZmLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICJvYmpla3RldCBcIiVzXCIgc29tIGFuZ2F2cyDDpHIgZmVsYWt0aWd0LiIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzUzCi0jLCBjLWZvcm1hdAotbXNnaWQgIm1vcmUgdGhhbiAlZCB0cmVlcyBnaXZlbjogJyVzJyIKLW1zZ3N0ciAibWVyIMOkbiAlZCB0csOkZCBhbmdhdnM6IFwiJXNcIiIKLQotIzogYnVpbHRpbi9kaWZmLmM6MzYzCisjOiBidWlsdGluL2RpZmYuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9yZSB0aGFuIHR3byBibG9icyBnaXZlbjogJyVzJyIKIG1zZ3N0ciAibWVyIMOkbiB0dsOlIGJsb2JiYXIgYW5nYXZzOiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM3MQorIzogYnVpbHRpbi9kaWZmLmM6MzY2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuaGFuZGxlZCBvYmplY3QgJyVzJyBnaXZlbi4iCiBtc2dzdHIgImVqIGhhbnRlcmF0IG9iamVrdCBcIiVzXCIgYW5nYXZzLiIKQEAgLTQ0OTQsMzkgKzQ3MzIsMzkgQEAKIG1zZ2lkICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogbXNnc3RyICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LWZsYWdnb3JdIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU4CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CiBtc2dpZCAic2hvdyBwcm9ncmVzcyBhZnRlciA8bj4gb2JqZWN0cyIKIG1zZ3N0ciAidmlzYSBmw7ZybG9wcCBlZnRlciA8bj4gb2JqZWt0IgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYwCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY4CiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHNpZ25lZCB0YWdzIgogbXNnc3RyICJ2w6RsaiBoYW50ZXJpbmcgYXYgc2lnbmVyYWRlIHRhZ2dhciIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2MworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MQogbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiB0YWdzIHRoYXQgdGFnIGZpbHRlcmVkIG9iamVjdHMiCiBtc2dzdHIgInbDpGxqIGhhbnRlcmluZyBhdiB0YWdnYXIgc29tIGhhciB0YWdnZmlsdHJlcmFkZSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKIG1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAiRHVtcCBtw6Rya2VuIHRpbGwgZmlsZW4iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzYKIG1zZ2lkICJJbXBvcnQgbWFya3MgZnJvbSB0aGlzIGZpbGUiCiBtc2dzdHIgIkltcG9ydGVyYSBtw6Rya2VuIGZyw6VuIGZpbGVuIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcwCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc4CiBtc2dpZCAiRmFrZSBhIHRhZ2dlciB3aGVuIHRhZ3MgbGFjayBvbmUiCiBtc2dzdHIgIkZlamthIHRhZ2dhcmUgbsOkciB0YWdnZW4gc2FrbmFyIGVuIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgwCiBtc2dpZCAiT3V0cHV0IGZ1bGwgdHJlZSBmb3IgZWFjaCBjb21taXQiCiBtc2dzdHIgIlNrcml2IHV0IGhlbGEgdHLDpGRldCBmw7ZyIHZhcmplIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgyCiBtc2dpZCAiVXNlIHRoZSBkb25lIGZlYXR1cmUgdG8gdGVybWluYXRlIHRoZSBzdHJlYW0iCiBtc2dzdHIgIkFudsOkbmQgZG9uZS1mdW5rdGlvbmVuIGbDtnIgYXR0IGF2c2x1dGEgc3Ryw7ZtbWVuIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgzCiBtc2dpZCAiU2tpcCBvdXRwdXQgb2YgYmxvYiBkYXRhIgogbXNnc3RyICJIb3BwYSDDtnZlciBza3Jpdm5pbmcgYXYgYmxvYi1kYXRhIgogCkBAIC00NjAyLDcgKzQ4NDAsNyBAQAogbXNnaWQgImNvbnZlcnQgdG8gYSBjb21wbGV0ZSByZXBvc2l0b3J5IgogbXNnc3RyICJrb252ZXJ0ZXJhIHRpbGwga29tcGxldHQgYXJraXYiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OCBidWlsdGluL2xvZy5jOjExMzAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4OCBidWlsdGluL2xvZy5jOjExNzcKIG1zZ2lkICJkaXIiCiBtc2dzdHIgImthdCIKIApAQCAtNDYxNCw3NiArNDg1Miw3NiBAQAogbXNnaWQgImRlZmF1bHQgbW9kZSBmb3IgcmVjdXJzaW9uIgogbXNnc3RyICJzdGFuZGFyZGzDpGdlIGbDtnIgcmVrdXJzaW9uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjA0CisjOiBidWlsdGluL2ZldGNoLmM6MjIwCiBtc2dpZCAiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiCiBtc2dzdHIgIkt1bmRlIGludGUgaGl0dGEgZmrDpHJyLXJlZmVyZW5zZW4gSEVBRCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI1NworIzogYnVpbHRpbi9mZXRjaC5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgbm90IGZvdW5kIgogbXNnc3RyICJvYmpla3RldCAlcyBoaXR0YWRlcyBpbnRlIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjYyCisjOiBidWlsdGluL2ZldGNoLmM6Mjc4CiBtc2dpZCAiW3VwIHRvIGRhdGVdIgogbXNnc3RyICJbw6Bqb3VyXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NgorIzogYnVpbHRpbi9mZXRjaC5jOjI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICIhICUtKnMgJS0qcyAtPiAlcyAgKGNhbid0IGZldGNoIGluIGN1cnJlbnQgYnJhbmNoKSIKIG1zZ3N0ciAiISAlLSpzICUtKnMgLT4gJXMgIChrYW4gaW50ZSBow6RtdGEgaSBha3R1ZWxsIGdyZW4pIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjc3IGJ1aWx0aW4vZmV0Y2guYzozNjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyOTMgYnVpbHRpbi9mZXRjaC5jOjM3OQogbXNnaWQgIltyZWplY3RlZF0iCiBtc2dzdHIgIltyZWZ1c2VyYWRdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjg4CisjOiBidWlsdGluL2ZldGNoLmM6MzA0CiBtc2dpZCAiW3RhZyB1cGRhdGVdIgogbXNnc3RyICJbdXBwZGF0ZXJhZCB0YWdnXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI5MCBidWlsdGluL2ZldGNoLmM6MzI1IGJ1aWx0aW4vZmV0Y2guYzozNDMKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDYgYnVpbHRpbi9mZXRjaC5jOjM0MSBidWlsdGluL2ZldGNoLmM6MzU5CiBtc2dpZCAiICAodW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYpIgogbXNnc3RyICIgIChrdW5kZSBpbnRlIHVwcGRhdGVyYSBsb2thbCByZWYpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzA4CisjOiBidWlsdGluL2ZldGNoLmM6MzI0CiBtc2dpZCAiW25ldyB0YWddIgogbXNnc3RyICJbbnkgdGFnZ10iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTEKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjcKIG1zZ2lkICJbbmV3IGJyYW5jaF0iCiBtc2dzdHIgIltueSBncmVuXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMxNAorIzogYnVpbHRpbi9mZXRjaC5jOjMzMAogbXNnaWQgIltuZXcgcmVmXSIKIG1zZ3N0ciAiW255IHJlZl0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNTkKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKIG1zZ2lkICJ1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZiIKIG1zZ3N0ciAia3VuZGUgaW50ZSB1cHBkYXRlcmEgbG9rYWwgcmVmIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6Mzc1CiBtc2dpZCAiZm9yY2VkIHVwZGF0ZSIKIG1zZ3N0ciAidHZpbmdhZCB1cHBkYXRlcmluZyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM2NQorIzogYnVpbHRpbi9mZXRjaC5jOjM4MQogbXNnaWQgIihub24tZmFzdC1mb3J3YXJkKSIKIG1zZ3N0ciAiKGVqIHNuYWJic3BvbGFkKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM5NiBidWlsdGluL2ZldGNoLmM6Njg4CisjOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzXG4iCiBtc2dzdHIgImthbiBpbnRlIMO2cHBuYSAlczogJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjQwNQorIzogYnVpbHRpbi9mZXRjaC5jOjQyMQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzXG4iCiBtc2dzdHIgIiVzIHPDpG5kZSBpbnRlIGFsbGEgbsO2ZHbDpG5kaWdhIG9iamVrdFxuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDkxCisjOiBidWlsdGluL2ZldGNoLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZyb20gJS4qc1xuIgogbXNnc3RyICJGcsOlbiAlLipzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1MDIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1MzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogInNvbWUgbG9jYWwgcmVmcyBjb3VsZCBub3QgYmUgdXBkYXRlZDsgdHJ5IHJ1bm5pbmdcbiIKQEAgLTQ2OTIsNTUgKzQ5MzAsNTUgQEAKICJ2aXNzYSBsb2thbGEgcmVmZXJlbnNlciBrdW5kZSBpbnRlIHVwcGRhdGVyYXM7IHRlc3RhIGF0dCBrw7ZyYVxuIgogIiBcImdpdCByZW1vdGUgcHJ1bmUgJXNcIiBmw7ZyIGF0dCB0YSBib3J0IGdhbWxhIGdyZW5hciBzb20gc3TDpXIgaSBrb25mbGlrdCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU1MgorIzogYnVpbHRpbi9mZXRjaC5jOjU4MQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAoJXMgd2lsbCBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIgICAoJXMga29tbWVyIGJsaSBkaW5nbGFuZGUpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTUzCisjOiBidWlsdGluL2ZldGNoLmM6NTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyBoYXMgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAgKCVzIGhhciBibGl2aXQgZGluZ2xhbmRlKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU2MAorIzogYnVpbHRpbi9mZXRjaC5jOjU4OQogbXNnaWQgIltkZWxldGVkXSIKIG1zZ3N0ciAiW2JvcnR0YWdlbl0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NjEgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CisjOiBidWlsdGluL2ZldGNoLmM6NTkwIGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQogbXNnaWQgIihub25lKSIKIG1zZ3N0ciAiKGluZ2VuKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY3OAorIzogYnVpbHRpbi9mZXRjaC5jOjcwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWZ1c2luZyB0byBmZXRjaCBpbnRvIGN1cnJlbnQgYnJhbmNoICVzIG9mIG5vbi1iYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIlbDpGdyYXIgaMOkbXRhIHRpbGwgYWt0dWVsbCBncmVuICVzIGkgZXR0IGlja2UtbmFrZXQgYXJraXYiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKIG1zZ3N0ciAiVmV0IGludGUgaHVyIG1hbiBow6RtdGFyIGZyw6VuICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Nzg5CisjOiBidWlsdGluL2ZldGNoLmM6ODIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCiBtc2dzdHIgIkZsYWdnYW4gXCIlc1wiIG9jaCB2w6RyZGV0IFwiJXNcIiDDpHIgaW50ZSBnaWx0aWd0IGbDtnIgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3OTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3B0aW9uIFwiJXNcIiBpcyBpZ25vcmVkIGZvciAlc1xuIgogbXNnc3RyICJGbGFnZ2FuIFwiJXNcIiBpZ25vcmVyYXMgZsO2ciAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODk0CisjOiBidWlsdGluL2ZldGNoLmM6OTI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZldGNoaW5nICVzXG4iCiBtc2dzdHIgIkjDpG10YXIgJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg5NiBidWlsdGluL3JlbW90ZS5jOjEwMAorIzogYnVpbHRpbi9mZXRjaC5jOjkzMCBidWlsdGluL3JlbW90ZS5jOjEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmV0Y2ggJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgaMOkbXRhICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTE1CisjOiBidWlsdGluL2ZldGNoLmM6OTQ5CiBtc2dpZCAiIgogIk5vIHJlbW90ZSByZXBvc2l0b3J5IHNwZWNpZmllZC4gIFBsZWFzZSwgc3BlY2lmeSBlaXRoZXIgYSBVUkwgb3IgYVxuIgogInJlbW90ZSBuYW1lIGZyb20gd2hpY2ggbmV3IHJldmlzaW9ucyBzaG91bGQgYmUgZmV0Y2hlZC4iCkBAIC00NzQ4LDMyICs0OTg2LDMyIEBACiAiSW5nZXQgZmrDpHJyYXJraXYgYW5nYXZzLiBBbmdlIGFudGluZ2VuIGVuIFVSTCBlbGxlciBuYW1uZXQgcMOlIGV0dFxuIgogImZqw6RycmFya2l2IHNvbSBueWEgaW5jaGVja25pbmdhciBza2FsbCBow6RtdGFzIGZyw6VuLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkzNQorIzogYnVpbHRpbi9mZXRjaC5jOjk2OQogbXNnaWQgIllvdSBuZWVkIHRvIHNwZWNpZnkgYSB0YWcgbmFtZS4iCiBtc2dzdHIgIkR1IG3DpXN0ZSBhbmdlIG5hbW5ldCBww6UgZW4gdGFnZy4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIi0tZGVwdGggb2NoIC0tdW5zaGFsbG93IGthbiBpbnRlIGFudsOkbmRhcyBzYW10aWRpZ3QiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE3CiBtc2dpZCAiLS11bnNoYWxsb3cgb24gYSBjb21wbGV0ZSByZXBvc2l0b3J5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tdW5zaGFsbG93IGthbiBpbnRlIGFudsOkbmRhcyBww6UgZXR0IGtvbXBsZXR0IGFya2l2IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAwMgorIzogYnVpbHRpbi9mZXRjaC5jOjEwMzYKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCB0YWtlIGEgcmVwb3NpdG9yeSBhcmd1bWVudCIKIG1zZ3N0ciAiZmV0Y2ggLS1hbGwgdGFyIGludGUgbmFtbmV0IHDDpSBldHQgYXJraXYgc29tIGFyZ3VtZW50IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAwNAorIzogYnVpbHRpbi9mZXRjaC5jOjEwMzgKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCBtYWtlIHNlbnNlIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgImZldGNoIC0tYWxsIGthbiBpbnRlIGFuZ2VzIG1lZCByZWZlcmVuc3NwZWNpZmlrYXRpb25lciIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHN1Y2ggcmVtb3RlIG9yIHJlbW90ZSBncm91cDogJXMiCiBtc2dzdHIgIkZqw6RycmVuIGVsbGVyIGZqw6RycmdydXBwZW4gZmlubnMgaW50ZTogJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDIzCisjOiBidWlsdGluL2ZldGNoLmM6MTA1NwogbXNnaWQgIkZldGNoaW5nIGEgZ3JvdXAgYW5kIHNwZWNpZnlpbmcgcmVmc3BlY3MgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiS2FuIGludGUgaMOkbXRhIGZyw6VuIGdydXBwIG9jaCBhbmdlIHJlZmVyZW5zc3BlY2lmaWthdGlvbmVyIgogCkBAIC00NzgyLDkgKzUwMjAsOSBAQAogbXNnc3RyICIiCiAiZ2l0IGZtdC1tZXJnZS1tc2cgWy1tIDxtZWRkZWxhbmRlPl0gWy0tbG9nWz08bj5dfC0tbm8tbG9nXSBbLS1maWxlIDxmaWw+XSIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDEKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODggYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc1Ci0jOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyMzkKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAwCisjOiBidWlsdGluL21lcmdlLmM6MjAzIGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3OQorIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzMyBwYXJzZS1vcHRpb25zLmg6MjQzCiBtc2dpZCAibiIKIG1zZ3N0ciAibiIKIApAQCAtNDk0MywyMjAgKzUxODEsMjIwIEBACiBtc2dpZCAiZ3JlcDogZmFpbGVkIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgogbXNnc3RyICJncmVwOiBtaXNzbHlja2FkZXMgc2thcGEgdHLDpWQuICVzIgogCi0jOiBidWlsdGluL2dyZXAuYzozNjUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjM2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY2hkaXI6ICVzIgogbXNnc3RyICJLdW5kZSBpbnRlIGJ5dGEga2F0YWxvZyAoY2hkaXIpOiAlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDQzIGJ1aWx0aW4vZ3JlcC5jOjQ3OAorIzogYnVpbHRpbi9ncmVwLmM6NDQyIGJ1aWx0aW4vZ3JlcC5jOjQ3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCB0cmVlICglcykiCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgdHLDpGQgKCVzKSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDkzCisjOiBidWlsdGluL2dyZXAuYzo0OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGdyZXAgZnJvbSBvYmplY3Qgb2YgdHlwZSAlcyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBcImdyZXBcIiBmcsOlbiBvYmpla3QgYXYgdHlwZW4gJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU1MQorIzogYnVpbHRpbi9ncmVwLmM6NTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgInN3aXRjaCBgJWMnIGV4cGVjdHMgYSBudW1lcmljYWwgdmFsdWUiCiBtc2dzdHIgImZsYWdnYW4gXCIlY1wiIGFudGFyIGV0dCBudW1lcmlza3QgdsOkcmRlIgogCi0jOiBidWlsdGluL2dyZXAuYzo1NjgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgXCIlc1wiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0MgogbXNnaWQgInNlYXJjaCBpbiBpbmRleCBpbnN0ZWFkIG9mIGluIHRoZSB3b3JrIHRyZWUiCiBtc2dzdHIgInPDtmsgaSBpbmRleGV0IGlzdMOkbGxldCBmw7ZyIGkgYXJiZXRza2F0YWxvZ2VuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0NAogbXNnaWQgImZpbmQgaW4gY29udGVudHMgbm90IG1hbmFnZWQgYnkgZ2l0IgogbXNnc3RyICJzw7ZrIGkgaW5uZWjDpWwgc29tIGludGUgaGFudGVyYXMgYXYgZ2l0IgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0NgogbXNnaWQgInNlYXJjaCBpbiBib3RoIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAic8O2ayBpIGLDpWRlIHNww6VyYWRlIG9jaCBvc3DDpXJhZGUgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0OQorIzogYnVpbHRpbi9ncmVwLmM6NjQ4CiBtc2dpZCAic2VhcmNoIGFsc28gaW4gaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAic8O2ayDDpHZlbiBpIGlnbm9yZXJhZGUgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1MgorIzogYnVpbHRpbi9ncmVwLmM6NjUxCiBtc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgbGluZXMiCi1tc2dzdHIgInZpcyByYWRlciBzb20gaW50ZSB0csOkZmZhcyIKK21zZ3N0ciAidmlzYSByYWRlciBzb20gaW50ZSB0csOkZmZhcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU0CisjOiBidWlsdGluL2dyZXAuYzo2NTMKIG1zZ2lkICJjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIgogbXNnc3RyICJza2lmdGzDpGdlc29rw6Ruc2xpZyBzw7ZrbmluZyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU2CisjOiBidWlsdGluL2dyZXAuYzo2NTUKIG1zZ2lkICJtYXRjaCBwYXR0ZXJucyBvbmx5IGF0IHdvcmQgYm91bmRhcmllcyIKIG1zZ3N0ciAibWF0Y2hhIGVuZGFzdCBtw7Zuc3RlciB2aWQgb3JkZ3LDpG5zZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1OAorIzogYnVpbHRpbi9ncmVwLmM6NjU3CiBtc2dpZCAicHJvY2VzcyBiaW5hcnkgZmlsZXMgYXMgdGV4dCIKIG1zZ3N0ciAiaGFudGVyYSBiaW7DpHJmaWxlciBzb20gdGV4dCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjYwCisjOiBidWlsdGluL2dyZXAuYzo2NTkKIG1zZ2lkICJkb24ndCBtYXRjaCBwYXR0ZXJucyBpbiBiaW5hcnkgZmlsZXMiCiBtc2dzdHIgInRyw6RmZmEgaW50ZSBtw7Zuc3RlciBpIGJpbsOkcmZpbGVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2MgogbXNnaWQgImRlc2NlbmQgYXQgbW9zdCA8ZGVwdGg+IGxldmVscyIKIG1zZ3N0ciAiZ8OlIHNvbSBtZXN0IG5lZCA8ZGp1cD4gbml2w6VlciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjY3CisjOiBidWlsdGluL2dyZXAuYzo2NjYKIG1zZ2lkICJ1c2UgZXh0ZW5kZWQgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAiYW52w6RuZCB1dMO2a2FkZSBQT1NJWC1yZWd1bGrDpHJhIHV0dHJ5Y2siCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3MAorIzogYnVpbHRpbi9ncmVwLmM6NjY5CiBtc2dpZCAidXNlIGJhc2ljIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGRlZmF1bHQpIgogbXNnc3RyICJhbnbDpG5kIGdydW5kbMOkZ2dhbmRlIFBPU0lYLXJlZ3VsasOkcmEgdXR0cnljayAoc3RhbmRhcmQpIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3MgogbXNnaWQgImludGVycHJldCBwYXR0ZXJucyBhcyBmaXhlZCBzdHJpbmdzIgogbXNnc3RyICJ0b2xrYSBtw7Zuc3RlciBzb20gZml4ZXJhZGUgc3Ryw6RuZ2FyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3NQogbXNnaWQgInVzZSBQZXJsLWNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAiYW52w6RuZCBQZXJsa29tcGF0aWJsYSByZWd1bGrDpHJhIHV0dHJ5Y2siCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQorIzogYnVpbHRpbi9ncmVwLmM6Njc4CiBtc2dpZCAic2hvdyBsaW5lIG51bWJlcnMiCiBtc2dzdHIgInZpc2EgcmFkbnVtbWVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQogbXNnaWQgImRvbid0IHNob3cgZmlsZW5hbWVzIgogbXNnc3RyICJ2aXNhIGludGUgZmlsbmFtbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgxCisjOiBidWlsdGluL2dyZXAuYzo2ODAKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyIKIG1zZ3N0ciAidmlzYSBmaWxuYW1uIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgogbXNnaWQgInNob3cgZmlsZW5hbWVzIHJlbGF0aXZlIHRvIHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgInZpc2EgZmlsbmFtbiByZWxhdGl2YSB0aWxsIHRvcHBrYXRhbG9nZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NQorIzogYnVpbHRpbi9ncmVwLmM6Njg0CiBtc2dpZCAic2hvdyBvbmx5IGZpbGVuYW1lcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICJ2aXNhIGVuZGFzdCBmaWxuYW1uIGlzdMOkbGxldCBmw7ZyIHRyw6RmZmFkZSByYWRlciIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg3CisjOiBidWlsdGluL2dyZXAuYzo2ODYKIG1zZ2lkICJzeW5vbnltIGZvciAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIKIG1zZ3N0ciAic3lub255bSBmw7ZyIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4OQogbXNnaWQgInNob3cgb25seSB0aGUgbmFtZXMgb2YgZmlsZXMgd2l0aG91dCBtYXRjaCIKIG1zZ3N0ciAidmlzYSBlbmRhc3QgbmFtbiBww6UgZmlsZXIgdXRhbiB0csOkZmZhciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkyCisjOiBidWlsdGluL2dyZXAuYzo2OTEKIG1zZ2lkICJwcmludCBOVUwgYWZ0ZXIgZmlsZW5hbWVzIgogbXNnc3RyICJza3JpdiBOVUwgZWZ0ZXIgZmlsbmFtbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk0CisjOiBidWlsdGluL2dyZXAuYzo2OTMKIG1zZ2lkICJzaG93IHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICJ2aXNhIGFudGFsIHRyw6RmZmFyIGlzdMOkbGxldCBmw7ZyIHRyw6RmZmFkZSByYWRlciIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk1CisjOiBidWlsdGluL2dyZXAuYzo2OTQKIG1zZ2lkICJoaWdobGlnaHQgbWF0Y2hlcyIKIG1zZ3N0ciAibGp1c21hcmtlcmEgdHLDpGZmYXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NworIzogYnVpbHRpbi9ncmVwLmM6Njk2CiBtc2dpZCAicHJpbnQgZW1wdHkgbGluZSBiZXR3ZWVuIG1hdGNoZXMgZnJvbSBkaWZmZXJlbnQgZmlsZXMiCiBtc2dzdHIgInNrcml2IHRvbW1hIHJhZGVyIG1lbGxhbiB0csOkZmZhciBmcsOlbiBvbGlrYSBmaWxlciIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk5CisjOiBidWlsdGluL2dyZXAuYzo2OTgKIG1zZ2lkICJzaG93IGZpbGVuYW1lIG9ubHkgb25jZSBhYm92ZSBtYXRjaGVzIGZyb20gc2FtZSBmaWxlIgogbXNnc3RyICJ2aXNhIGZpbG5hbW4gZW5kYXN0IGVuIGfDpW5nIG92YW5mw7ZyIHRyw6RmZmFyIGZyw6VuIHNhbW1hIGZpbCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzAyCisjOiBidWlsdGluL2dyZXAuYzo3MDEKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBhbmQgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAidmlzYSA8bj4gcmFkZXIgc2FtbWFuaGFuZyBmw7ZyZSBvY2ggZWZ0ZXIgdHLDpGZmYXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNQorIzogYnVpbHRpbi9ncmVwLmM6NzA0CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgbWF0Y2hlcyIKIG1zZ3N0ciAidmlzYSA8bj4gcmFkZXIgc2FtbWFuaGFuZyBmw7ZyZSB0csOkZmZhciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA3CisjOiBidWlsdGluL2dyZXAuYzo3MDYKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgInZpc2EgPG4+IHJhZGVyIHNhbW1hbmhhbmcgZWZ0ZXIgdHLDpGZmYXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwOAorIzogYnVpbHRpbi9ncmVwLmM6NzA3CiBtc2dpZCAic2hvcnRjdXQgZm9yIC1DIE5VTSIKIG1zZ3N0ciAiZ2VudsOkZyBmw7ZyIC1DIE5VTSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzExCisjOiBidWlsdGluL2dyZXAuYzo3MTAKIG1zZ2lkICJzaG93IGEgbGluZSB3aXRoIHRoZSBmdW5jdGlvbiBuYW1lIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICJ2aXNhIGVuIHJhZCBtZWQgZnVua3Rpb25zbmFtbmV0IGbDtnJlIHRyw6RmZmVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMgogbXNnaWQgInNob3cgdGhlIHN1cnJvdW5kaW5nIGZ1bmN0aW9uIgogbXNnc3RyICJ2aXNhIGRlbiBvbWtyaW5nbGlnZ2FuZGUgZnVua3Rpb25lbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE2CisjOiBidWlsdGluL2dyZXAuYzo3MTUKIG1zZ2lkICJyZWFkIHBhdHRlcm5zIGZyb20gZmlsZSIKIG1zZ3N0ciAibMOkcyBtw7Zuc3RlciBmcsOlbiBmaWwiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxOAorIzogYnVpbHRpbi9ncmVwLmM6NzE3CiBtc2dpZCAibWF0Y2ggPHBhdHRlcm4+IgogbXNnc3RyICJ0csOkZmZhIDxtw7Zuc3Rlcj4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcyMAorIzogYnVpbHRpbi9ncmVwLmM6NzE5CiBtc2dpZCAiY29tYmluZSBwYXR0ZXJucyBzcGVjaWZpZWQgd2l0aCAtZSIKIG1zZ3N0ciAia29tYmluZXJhIG3Dtm5zdGVyIHNvbSBhbmdlcyBtZWQgLWUiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczMgorIzogYnVpbHRpbi9ncmVwLmM6NzMxCiBtc2dpZCAiaW5kaWNhdGUgaGl0IHdpdGggZXhpdCBzdGF0dXMgd2l0aG91dCBvdXRwdXQiCiBtc2dzdHIgImFuZ2UgdHLDpGZmIG1lZCBzbHV0c3RhdHVza29kIHV0YW4gdXRkYXRhIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczMwogbXNnaWQgInNob3cgb25seSBtYXRjaGVzIGZyb20gZmlsZXMgdGhhdCBtYXRjaCBhbGwgcGF0dGVybnMiCiBtc2dzdHIgInZpc2EgZW5kYXN0IHRyw6RmZmFyIGZyw6VuIGZpbGVyIHNvbSB0csOkZmZhciBhbGxhIG3Dtm5zdGVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczNQogbXNnaWQgInNob3cgcGFyc2UgdHJlZSBmb3IgZ3JlcCBleHByZXNzaW9uIgogbXNnc3RyICJ2aXNhIGFuYWx5c3Ryw6RkIGbDtnIgZ3JlcC11dHRyeWNrIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczOQogbXNnaWQgInBhZ2VyIgogbXNnc3RyICJibMOkZGRyYXJlIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczOQogbXNnaWQgInNob3cgbWF0Y2hpbmcgZmlsZXMgaW4gdGhlIHBhZ2VyIgogbXNnc3RyICJ2aXNhIHRyw6RmZmFkZSBmaWxlciBpIGZpbGJsw6RkZHJhcmVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MgogbXNnaWQgImFsbG93IGNhbGxpbmcgb2YgZ3JlcCgxKSAoaWdub3JlZCBieSB0aGlzIGJ1aWxkKSIKIG1zZ3N0ciAidGlsbMOldCBhbnJvcGEgZ3JlcCgxKSAoaWdub3JlcmFzIGF2IGRldHRhIGJ5Z2dlKSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQ0IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MyBidWlsdGluL3Nob3ctcmVmLmM6MTg4CiBtc2dpZCAic2hvdyB1c2FnZSIKIG1zZ3N0ciAidmlzYSBhbnbDpG5kbmluZyIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODExCisjOiBidWlsdGluL2dyZXAuYzo4MTAKIG1zZ2lkICJubyBwYXR0ZXJuIGdpdmVuLiIKIG1zZ3N0ciAiaW5nZXQgbcO2bnN0ZXIgYW5nYXZzLiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODY2CisjOiBidWlsdGluL2dyZXAuYzo4NjUKIG1zZ2lkICItLW9wZW4tZmlsZXMtaW4tcGFnZXIgb25seSB3b3JrcyBvbiB0aGUgd29ya3RyZWUiCiBtc2dzdHIgIi0tb3Blbi1maWxlcy1pbi1wYWdlciBmdW5nZXJhciBlbmRhc3QgaSBhcmJldHNrYXRhbG9nZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg4OQorIzogYnVpbHRpbi9ncmVwLmM6ODg4CiBtc2dpZCAiLS1jYWNoZWQgb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCAtLW5vLWluZGV4LiIKIG1zZ3N0ciAiLS1jYWNoZWQgb2NoIC0tdW50cmFja2VkIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgLS1uby1pbmRleC4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NAorIzogYnVpbHRpbi9ncmVwLmM6ODkzCiBtc2dpZCAiLS1uby1pbmRleCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIHJldnMuIgogbXNnc3RyICItLW5vLWluZGV4IG9jaCAtLXVudHJhY2tlZCBrYW4gaW50ZSBhbnbDpG5kYXMgbWVkIHJldmlzaW9uZXIuIgogCi0jOiBidWlsdGluL2dyZXAuYzo4OTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5NgogbXNnaWQgIi0tW25vLV1leGNsdWRlLXN0YW5kYXJkIGNhbm5vdCBiZSB1c2VkIGZvciB0cmFja2VkIGNvbnRlbnRzLiIKIG1zZ3N0ciAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQga2FuIGludGUgYW52w6RuZGFzIGbDtnIgc3DDpXJhdCBpbm5laMOlbGwuIgogCi0jOiBidWlsdGluL2dyZXAuYzo5MDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjkwNAogbXNnaWQgImJvdGggLS1jYWNoZWQgYW5kIHRyZWVzIGFyZSBnaXZlbi4iCiBtc2dzdHIgImLDpWRlIC0tY2FjaGVkIG9jaCB0csOkZCBhbmdhdnMuIgogCkBAIC01MTk2LDU0ICs1NDM0LDU0IEBACiBtc2dpZCAicHJvY2VzcyBmaWxlIGFzIGl0IHdlcmUgZnJvbSB0aGlzIHBhdGgiCiBtc2dzdHIgImhhbnRlcmEgZmlsZW4gc29tIG9tIGRlbiBrb20gZnLDpW4gc8O2a3bDpGdlbiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDMKKyM6IGJ1aWx0aW4vaGVscC5jOjQxCiBtc2dpZCAicHJpbnQgYWxsIGF2YWlsYWJsZSBjb21tYW5kcyIKIG1zZ3N0ciAidmlzYSBhbGxhIHRpbGxnw6RuZ2xpZ2Ega29tbWFuZG9uIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NAorIzogYnVpbHRpbi9oZWxwLmM6NDIKIG1zZ2lkICJwcmludCBsaXN0IG9mIHVzZWZ1bCBndWlkZXMiCiBtc2dzdHIgImxpc3RhIGFudsOkbmRiYXJhIHbDpGdsZWRuaW5nYXIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ1CisjOiBidWlsdGluL2hlbHAuYzo0MwogbXNnaWQgInNob3cgbWFuIHBhZ2UiCiBtc2dzdHIgInZpc2EgbWFudWFsc2lkYSIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDYKKyM6IGJ1aWx0aW4vaGVscC5jOjQ0CiBtc2dpZCAic2hvdyBtYW51YWwgaW4gd2ViIGJyb3dzZXIiCiBtc2dzdHIgInZpc2EgbWFudWFsIGkgd2ViYmzDpHNhcmUiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ4CisjOiBidWlsdGluL2hlbHAuYzo0NgogbXNnaWQgInNob3cgaW5mbyBwYWdlIgogbXNnc3RyICJ2aXNhIGluZm8tc2lkYSIKIAotIzogYnVpbHRpbi9oZWxwLmM6NTQKKyM6IGJ1aWx0aW4vaGVscC5jOjUyCiBtc2dpZCAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1ndWlkZXNdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtjb21tYW5kXSIKIG1zZ3N0ciAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1ndWlkZXNdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtrb21tYW5kb10iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjY2CisjOiBidWlsdGluL2hlbHAuYzo2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaGVscCBmb3JtYXQgJyVzJyIKIG1zZ3N0ciAib2vDpG50IGhqw6RscGZvcm1hdDogJXMiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjk0CisjOiBidWlsdGluL2hlbHAuYzo5MgogbXNnaWQgIkZhaWxlZCB0byBzdGFydCBlbWFjc2NsaWVudC4iCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBzdGFydGEgZW1hY3NjbGllbnQuIgogCi0jOiBidWlsdGluL2hlbHAuYzoxMDcKKyM6IGJ1aWx0aW4vaGVscC5jOjEwNQogbXNnaWQgIkZhaWxlZCB0byBwYXJzZSBlbWFjc2NsaWVudCB2ZXJzaW9uLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSB0b2xrYSBlbWFjc2NsaWVudC12ZXJzaW9uLiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MTE1CisjOiBidWlsdGluL2hlbHAuYzoxMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZW1hY3NjbGllbnQgdmVyc2lvbiAnJWQnIHRvbyBvbGQgKDwgMjIpLiIKIG1zZ3N0ciAiZW1hY3NjbGllbnQgdmVyc2lvbiBcIiVkXCIgZsO2ciBnYW1tYWwgKDwgMjIpLiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MTMzIGJ1aWx0aW4vaGVscC5jOjE2MSBidWlsdGluL2hlbHAuYzoxNzAgYnVpbHRpbi9oZWxwLmM6MTc4CisjOiBidWlsdGluL2hlbHAuYzoxMzEgYnVpbHRpbi9oZWxwLmM6MTU5IGJ1aWx0aW4vaGVscC5jOjE2OCBidWlsdGluL2hlbHAuYzoxNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGV4ZWMgJyVzJzogJXMiCiBtc2dzdHIgImV4ZWMgbWlzc2x5Y2thZGVzIGbDtnIgXCIlc1wiOiAlcyIKIAotIzogYnVpbHRpbi9oZWxwLmM6MjE4CisjOiBidWlsdGluL2hlbHAuYzoyMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiclcyc6IHBhdGggZm9yIHVuc3VwcG9ydGVkIG1hbiB2aWV3ZXIuXG4iCkBAIC01MjUyLDcgKzU0OTAsNyBAQAogIlwiJXNcIjogc8O2a3bDpGcgZsO2ciBtYW4tdmlzYXJlIHNvbSBlaiBzdMO2ZHMuXG4iCiAiQW52w6RuZCBcIm1hbi48dmVya3R5Zz4uY21kXCIgaXN0w6RsbGV0LiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MjMwCisjOiBidWlsdGluL2hlbHAuYzoyMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiclcyc6IGNtZCBmb3Igc3VwcG9ydGVkIG1hbiB2aWV3ZXIuXG4iCkBAIC01MjYxLDMzNSArNTQ5OSwzMzUgQEAKICJcIiVzXCI6IGtvbW1hbmRvIGbDtnIgbWFuLXZpc2FyZSBzb20gc3TDtmRzLlxuIgogIkFudsOkbmQgXCJtYW4uPHZlcmt0eWc+LnBhdGhcIiBpc3TDpGxsZXQuIgogCi0jOiBidWlsdGluL2hlbHAuYzozNTEKKyM6IGJ1aWx0aW4vaGVscC5jOjM0OQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiB1bmtub3duIG1hbiB2aWV3ZXIuIgogbXNnc3RyICJcIiVzXCI6IG9rw6RuZCBtYW4tdmlzYXJlLiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MzY4CisjOiBidWlsdGluL2hlbHAuYzozNjYKIG1zZ2lkICJubyBtYW4gdmlld2VyIGhhbmRsZWQgdGhlIHJlcXVlc3QiCiBtc2dzdHIgImluZ2VuIG1hbi12aXNhcmUgaGFudGVyYWRlIGbDtnJmcsOlZ2FuIgogCi0jOiBidWlsdGluL2hlbHAuYzozNzYKKyM6IGJ1aWx0aW4vaGVscC5jOjM3NAogbXNnaWQgIm5vIGluZm8gdmlld2VyIGhhbmRsZWQgdGhlIHJlcXVlc3QiCiBtc2dzdHIgImluZ2VuIGluZm8tdmlzYXJlIGhhbnRlcmFkZSBmw7ZyZnLDpWdhbiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDIyCisjOiBidWlsdGluL2hlbHAuYzo0MjAKIG1zZ2lkICJEZWZpbmluZyBhdHRyaWJ1dGVzIHBlciBwYXRoIgogbXNnc3RyICJEZWZpbmllcmFyIGF0dHJpYnV0IHBlciBzw7ZrdsOkZyIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDIzCisjOiBidWlsdGluL2hlbHAuYzo0MjEKIG1zZ2lkICJBIEdpdCBnbG9zc2FyeSIKIG1zZ3N0ciAiRW4gR2l0LW9yZGxpc3RhIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjQKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMgogbXNnaWQgIlNwZWNpZmllcyBpbnRlbnRpb25hbGx5IHVudHJhY2tlZCBmaWxlcyB0byBpZ25vcmUiCiBtc2dzdHIgIkFuZ2UgYXZzaWt0bGlnZW4gb3Nww6VyYWRlIGZpbGVyIGF0dCBpZ25vcmVyYSIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDI1CisjOiBidWlsdGluL2hlbHAuYzo0MjMKIG1zZ2lkICJEZWZpbmluZyBzdWJtb2R1bGUgcHJvcGVydGllcyIKIG1zZ3N0ciAiQW5nZSBlZ2Vuc2thcGVyIGbDtnIgdW5kZXJtb2R1bGVyIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjYKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNAogbXNnaWQgIlNwZWNpZnlpbmcgcmV2aXNpb25zIGFuZCByYW5nZXMgZm9yIEdpdCIKIG1zZ3N0ciAiQW5nZSB2ZXJzaW9uZXIgb2NoIGludGVydmFsbCBpIEdpdCIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDI3CisjOiBidWlsdGluL2hlbHAuYzo0MjUKIG1zZ2lkICJBIHR1dG9yaWFsIGludHJvZHVjdGlvbiB0byBHaXQgKGZvciB2ZXJzaW9uIDEuNS4xIG9yIG5ld2VyKSIKIG1zZ3N0ciAiSW50cm9kdWt0aW9uIHRpbGwgR2l0IChmw7ZyIHZlcnNpb24gMS41LjEgb2NoIHNlbmFyZSkiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyOAorIzogYnVpbHRpbi9oZWxwLmM6NDI2CiBtc2dpZCAiQW4gb3ZlcnZpZXcgb2YgcmVjb21tZW5kZWQgd29ya2Zsb3dzIHdpdGggR2l0IgogbXNnc3RyICLDlnZlcnNpa3Qgw7Z2ZXIgcmVrb21tZW5kZXJhZGUgYXJiZXRzZmzDtmRlbiBtZWQgR2l0IgogCi0jOiBidWlsdGluL2hlbHAuYzo0NDAKKyM6IGJ1aWx0aW4vaGVscC5jOjQzOAogbXNnaWQgIlRoZSBjb21tb24gR2l0IGd1aWRlcyBhcmU6XG4iCiBtc2dzdHIgIkRlIHZhbmxpZ2EgR2l0LXbDpGdsZWRuaW5nYXJuYSDDpHI6XG4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ2MiBidWlsdGluL2hlbHAuYzo0NzgKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2MCBidWlsdGluL2hlbHAuYzo0NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNhZ2U6ICVzJXMiCiBtc2dzdHIgImFudsOkbmRuaW5nOiAlcyVzIgogCi0jOiBidWlsdGluL2hlbHAuYzo0OTQKKyM6IGJ1aWx0aW4vaGVscC5jOjQ5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJgZ2l0ICVzJyBpcyBhbGlhc2VkIHRvIGAlcyciCiBtc2dzdHIgIlwiZ2l0ICVzXCIgw6RyIGV0dCBhbGlhcyBmw7ZyIFwiJXNcIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxODQKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0IHR5cGUgbWlzbWF0Y2ggYXQgJXMiCiBtc2dzdHIgIm9iamVrdHR5cCBzdMOkbW1lciBpbnRlIMO2dmVyZW5zIHZpZCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjAyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyMDQKIG1zZ2lkICJvYmplY3Qgb2YgdW5leHBlY3RlZCB0eXBlIgogbXNnc3RyICJvYmpla3QgYXYgb3bDpG50YWQgdHlwIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyMzkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZmlsbCAlZCBieXRlIgogbXNnaWRfcGx1cmFsICJjYW5ub3QgZmlsbCAlZCBieXRlcyIKIG1zZ3N0clswXSAia2FuIGludGUgZnlsbGEgJWQgYnl0ZSIKIG1zZ3N0clsxXSAia2FuIGludGUgZnlsbGEgJWQgYnl0ZSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTQKIG1zZ2lkICJlYXJseSBFT0YiCiBtc2dzdHIgInRpZGlndCBmaWxzbHV0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NQogbXNnaWQgInJlYWQgZXJyb3Igb24gaW5wdXQiCiBtc2dzdHIgImluZGF0YWzDpHNmZWwiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjY3CiBtc2dpZCAidXNlZCBtb3JlIGJ5dGVzIHRoYW4gd2VyZSBhdmFpbGFibGUiCiBtc2dzdHIgImFudsOkbmRlIGZsZXIgYnl0ZSDDpG4gdGlsbGfDpG5nbGlndCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjY5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNzQKIG1zZ2lkICJwYWNrIHRvbyBsYXJnZSBmb3IgY3VycmVudCBkZWZpbml0aW9uIG9mIG9mZl90IgogbXNnc3RyICJwYWtldCBmw7ZyIHN0b3J0IGbDtnIgbnV2YXJhbmRlIGRlZmluaXRpb24gYXYgb2ZmX3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI4NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza2FwYSBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjk1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuIHBhY2tmaWxlICclcyciCiBtc2dzdHIgImthbiBpbnRlIMO2cHBuYSBwYWtldGZpbGVuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMDkKIG1zZ2lkICJwYWNrIHNpZ25hdHVyZSBtaXNtYXRjaCIKIG1zZ3N0ciAicGFrZXRzaWduYXR1ciBzdMOkbW1lciBpbnRlIMO2dmVyZW5zIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzozMDYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIHZlcnNpb24gJTxQUkl1MzI+IHVuc3VwcG9ydGVkIgogbXNnc3RyICJwYWtldHZlcnNpb24gJTxQUkl1MzI+IHN0w7ZkcyBlaiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzI0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMjkKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFjayBoYXMgYmFkIG9iamVjdCBhdCBvZmZzZXQgJWx1OiAlcyIKIG1zZ3N0ciAicGFrZXRldCBoYXIgZmVsYWt0aWd0IG9iamVrdCB2aWQgaW5kZXggJWx1OiAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDQ2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo0NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5mbGF0ZSByZXR1cm5lZCAlZCIKIG1zZ3N0ciAiaW5mbGF0ZSByZXR1cm5lcmFkZSAlZCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDAKIG1zZ2lkICJvZmZzZXQgdmFsdWUgb3ZlcmZsb3cgZm9yIGRlbHRhIGJhc2Ugb2JqZWN0IgogbXNnc3RyICJpbmRleHbDpHJkZXNwaWxsIGbDtnIgZGVsdGFiYXNvYmpla3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTA4CiBtc2dpZCAiZGVsdGEgYmFzZSBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kIgogbXNnc3RyICJkZWx0YWJhc2luZGV4IHV0YW5mw7ZyIGdyw6Ruc2VuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1MTEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIG9iamVjdCB0eXBlICVkIgogbXNnc3RyICJva8OkbmQgb2JqZWt0dHlwICVkIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NwogbXNnaWQgImNhbm5vdCBwcmVhZCBwYWNrIGZpbGUiCiBtc2dzdHIgImthbiBpbnRlIHV0ZsO2cmEgXCJwcmVhZFwiIHDDpSBwYWtldGZpbCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicHJlbWF0dXJlIGVuZCBvZiBwYWNrIGZpbGUsICVsdSBieXRlIG1pc3NpbmciCiBtc2dpZF9wbHVyYWwgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZXMgbWlzc2luZyIKIG1zZ3N0clswXSAiZsO2ciB0aWRpZ3Qgc2x1dCBww6UgcGFrZXRmaWxlbiwgJWx1IGJ5dGUgc2FrbmFzIgogbXNnc3RyWzFdICJmw7ZyIHRpZGlndCBzbHV0IHDDpSBwYWtldGZpbGVuLCAlbHUgYnl0ZSBzYWtuYXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTc1CiBtc2dpZCAic2VyaW91cyBpbmZsYXRlIGluY29uc2lzdGVuY3kiCiBtc2dzdHIgImFsbHZhcmxpZyBpbmZsYXRlLWlua29uc2VrdmVucyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjYxIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2NyBidWlsdGluL2luZGV4LXBhY2suYzo2OTAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjcyNCBidWlsdGluL2luZGV4LXBhY2suYzo3MzMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2NiBidWlsdGluL2luZGV4LXBhY2suYzo2NzIgYnVpbHRpbi9pbmRleC1wYWNrLmM6Njk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3MjkgYnVpbHRpbi9pbmRleC1wYWNrLmM6NzM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNIQTEgQ09MTElTSU9OIEZPVU5EIFdJVEggJXMgISIKIG1zZ3N0ciAiU0hBMS1LT0xMSVNJT04gVVBQVMOEQ0tUIFZJRCAlcyAhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjQgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2OSBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE3MAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNjIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgJXMiCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIGV4aXN0aW5nIG9iamVjdCAlcyIKIG1zZ3N0ciAia2FuIGludGUgbMOkc2EgYmVmaW50bGlndCBvYmpla3QgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc0NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgYmxvYiBvYmplY3QgJXMiCiBtc2dzdHIgIm9naWx0aWd0IGJsb2Itb2JqZWt0ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NTkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkICVzIgogbXNnc3RyICJvZ2lsdGlndCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjYKIG1zZ2lkICJFcnJvciBpbiBvYmplY3QiCiBtc2dzdHIgIkZlbCBpIG9iamVrdCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGFsbCBjaGlsZCBvYmplY3RzIG9mICVzIGFyZSByZWFjaGFibGUiCiBtc2dzdHIgIkludGUgYWxsYSBiYXJub2JqZWt0IGbDtnIgJXMga2FuIG7DpXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjgzMyBidWlsdGluL2luZGV4LXBhY2suYzo4NjMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjgzOCBidWlsdGluL2luZGV4LXBhY2suYzo4NjgKIG1zZ2lkICJmYWlsZWQgdG8gYXBwbHkgZGVsdGEiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyB0aWxsw6RtcGEgZGVsdGEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKIG1zZ2lkICJSZWNlaXZpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiVGFyIGVtb3Qgb2JqZWt0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CiBtc2dpZCAiSW5kZXhpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiU2thcGFyIGluZGV4IGbDtnIgb2JqZWt0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDMwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1CiBtc2dpZCAicGFjayBpcyBjb3JydXB0ZWQgKFNIQTEgbWlzbWF0Y2gpIgogbXNnc3RyICJwYWtldGV0IMOkciB0cmFzaWd0IChTSEExIHN0w6RtbWVyIGludGUpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQwCiBtc2dpZCAiY2Fubm90IGZzdGF0IHBhY2tmaWxlIgogbXNnc3RyICJrYW4gaW50ZSB1dGbDtnJhIFwiZnN0YXRcIiBww6UgcGFrZXRmaWwiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDMKIG1zZ2lkICJwYWNrIGhhcyBqdW5rIGF0IHRoZSBlbmQiCiBtc2dzdHIgInBha2V0IGhhciBza3LDpHAgaSBzbHV0ZXQiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNTQKIG1zZ2lkICJjb25mdXNpb24gYmV5b25kIGluc2FuaXR5IGluIHBhcnNlX3BhY2tfb2JqZWN0cygpIgogbXNnc3RyICJmw7ZydmlycmFkIGJvcnRvbSB2YW52ZXR0IGkgcGFyc2VfcGFja19vYmplY3RzKCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzcKIG1zZ2lkICJSZXNvbHZpbmcgZGVsdGFzIgogbXNnc3RyICJBbmFseXNlcmFyIGRlbHRhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGhyZWFkOiAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza2FwYSB0csOlZDogJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMjQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMjkKIG1zZ2lkICJjb25mdXNpb24gYmV5b25kIGluc2FuaXR5IgogbXNnc3RyICJmw7ZydmlycmFkIGJvcnRvbSB2YW52ZXR0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBsZXRlZCB3aXRoICVkIGxvY2FsIG9iamVjdHMiCiBtc2dzdHIgInNsdXRmw7ZyZGVzIG1lZCAlZCBsb2thbGEgb2JqZWt0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTQyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTQ3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVuZXhwZWN0ZWQgdGFpbCBjaGVja3N1bSBmb3IgJXMgKGRpc2sgY29ycnVwdGlvbj8pIgogbXNnc3RyICJPdsOkbnRhZCBzdmFuc2NoZWNrc3VtbWEgZsO2ciAlcyAodHJhc2lnIGRpc2s/KSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhIgogbXNnaWRfcGx1cmFsICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhcyIKIG1zZ3N0clswXSAicGFrZXRldCBoYXIgJWQgb2FuYWx5c2VyYXQgZGVsdGEiCiBtc2dzdHJbMV0gInBha2V0ZXQgaGFyICVkIG9hbmFseXNlcmFkZSBkZWx0YSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZGVmbGF0ZSBhcHBlbmRlZCBvYmplY3QgKCVkKSIKIG1zZ3N0ciAia3VuZGUgaW50ZSB1dGbDtnJhIFwiZGVmbGF0ZVwiIHDDpSB0aWxsYWd0IG9iamVrdCAoJWQpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjUwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImxvY2FsIG9iamVjdCAlcyBpcyBjb3JydXB0IgogbXNnc3RyICJsb2thbHQgb2JqZWt0ICVzIMOkciB0cmFzaWd0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjc0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjc5CiBtc2dpZCAiZXJyb3Igd2hpbGUgY2xvc2luZyBwYWNrIGZpbGUiCiBtc2dzdHIgImZlbCB2aWQgc3TDpG5nbmluZyBhdiBwYWtldGZpbCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI4NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgd3JpdGUga2VlcCBmaWxlICclcyciCiBtc2dzdHIgImthbiBpbnRlIHRhIHNrcml2YSBcImtlZXBcIi1maWwgXCIlc1wiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzAwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjbG9zZSB3cml0dGVuIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICJha24gaW50ZSBzdMOkbmdhIHNrcml2ZW4gXCJrZWVwXCItZmlsIFwiJXNcIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwOAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMxMwogbXNnaWQgImNhbm5vdCBzdG9yZSBwYWNrIGZpbGUiCiBtc2dzdHIgImthbiBpbnRlIHNwYXJhIHBha2V0ZmlsIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzE5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzI0CiBtc2dpZCAiY2Fubm90IHN0b3JlIGluZGV4IGZpbGUiCiBtc2dzdHIgImthbiBpbnRlIHNwYXJhIGluZGV4ZmlsIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzUyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCiBtc2dzdHIgImZlbGFrdGlnIHBhY2suaW5kZXh2ZXJzaW9uPSU8UFJJdTMyPiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1OAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG51bWJlciBvZiB0aHJlYWRzIHNwZWNpZmllZCAoJWQpIgogbXNnc3RyICJmZWxha3RpZ3QgYW50YWwgdHLDpWRhciBhbmdpdmV0ICglZCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUzNQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHRocmVhZHMgc3VwcG9ydCwgaWdub3JpbmcgJXMiCiBtc2dzdHIgInRyw6Vkc3TDtmQgc2FrbmFzLCBpZ25vcmVyYXIgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBmaWxlICclcyciCiBtc2dzdHIgIkthbiBpbnRlIMO2cHBuYSBiZWZpbnRsaWcgcGFrZXRmaWwgXCIlc1wiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDIyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgaWR4IGZpbGUgZm9yICclcyciCiBtc2dzdHIgIkthbiBpbnRlIMO2cHBuYSBiZWZpbnRsaWd0IHBha2V0LWlkeC1maWwgZsO2ciBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NjkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAibm9uIGRlbHRhOiAlZCBvYmplY3QiCiBtc2dpZF9wbHVyYWwgIm5vbiBkZWx0YTogJWQgb2JqZWN0cyIKIG1zZ3N0clswXSAiaWNrZS1kZWx0YTogJWQgb2JqZWt0IgogbXNnc3RyWzFdICJpY2tlLWRlbHRhOiAlZCBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3QiCiBtc2dpZF9wbHVyYWwgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0cyIKIG1zZ3N0clswXSAia2VkamVsw6RuZ2QgPSAlZDogJWx1IG9iamVrdCIKIG1zZ3N0clsxXSAia2VkamVsw6RuZ2QgPSAlZDogJWx1IG9iamVrdCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwOQogbXNnaWQgIkNhbm5vdCBjb21lIGJhY2sgdG8gY3dkIgogbXNnc3RyICJLYW4gaW50ZSBnw6UgdGlsbGJha2EgdGlsbCBhcmJldHNrYXRhbG9nZW4gKGN3ZCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NDcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTY2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTU3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgJXMiCiBtc2dzdHIgImZlbGFrdGlnICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTgwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTkwCiBtc2dpZCAiLS1maXgtdGhpbiBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IC0tc3RkaW4iCiBtc2dzdHIgIi0tZml4LXRoaW4ga2FuIGludGUgYW52w6RuZGFzIG1lZCAtLXN0ZGluIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTg0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrZmlsZSBuYW1lICclcycgZG9lcyBub3QgZW5kIHdpdGggJy5wYWNrJyIKIG1zZ3N0ciAicGFrZXRmaWxuYW1uZXQgXCIlc1wiIHNsdXRhciBpbnRlIG1lZCBcIi5wYWNrXCIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTMKIG1zZ2lkICItLXZlcmlmeSB3aXRoIG5vIHBhY2tmaWxlIG5hbWUgZ2l2ZW4iCiBtc2dzdHIgIi0tdmVyaWZ5IGFuZ2F2cyB1dGFuIHBha2V0ZmlsbmFtbiIKIApAQCAtNTcyNSw3ICs1OTYzLDcgQEAKIG1zZ2lkICJzcGVjaWZ5IHRoYXQgdGhlIGdpdCByZXBvc2l0b3J5IGlzIHRvIGJlIHNoYXJlZCBhbW9uZ3N0IHNldmVyYWwgdXNlcnMiCiBtc2dzdHIgImFuZ2UgYXR0IGdpdC1hcmtpdmV0IHNrYWxsIGRlbGFzIGJsYW5kIGZsZXJhIGFudsOkbmRhcmUiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc3CisjOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NQogbXNnaWQgImJlIHF1aWV0IgogbXNnc3RyICJ2YXIgdHlzdCIKIApAQCAtNTc1NywzNDAgKzU5OTUsMzUzIEBACiBtc2dpZCAiQ2Fubm90IGFjY2VzcyB3b3JrIHRyZWUgJyVzJyIKIG1zZ3N0ciAiS2FuIGludGUga29tbWEgw6V0IGFyYmV0c2thdGFsb2dlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NDAKKyM6IGJ1aWx0aW4vbG9nLmM6NDEKIG1zZ2lkICJnaXQgbG9nIFs8b3B0aW9ucz5dIFs8cmV2aXNpb24gcmFuZ2U+XSBbWy0tXSA8cGF0aD4uLi5dXG4iCiBtc2dzdHIgImdpdCBsb2cgWzxmbGFnZ29yPl0gWzx2ZXJzaW9uc2ludGVydmFsbD5dIFtbLS1dIDxzw7ZrdsOkZz4uLi5dXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NDEKKyM6IGJ1aWx0aW4vbG9nLmM6NDIKIG1zZ2lkICIgICBvcjogZ2l0IHNob3cgW29wdGlvbnNdIDxvYmplY3Q+Li4uIgogbXNnc3RyICIgICAgIGVsbGVyOiBnaXQgc2hvdyBbZmxhZ2dvcl0gPG9iamVrdD4uLi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTAzCisjOiBidWlsdGluL2xvZy5jOjEyNAogbXNnaWQgInN1cHByZXNzIGRpZmYgb3V0cHV0IgogbXNnc3RyICJ1bmRlcnRyeWNrIGRpZmYtdXRkYXRhIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNAorIzogYnVpbHRpbi9sb2cuYzoxMjUKIG1zZ2lkICJzaG93IHNvdXJjZSIKIG1zZ3N0ciAidmlzYSBrw6RsbGtvZCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDUKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2CiBtc2dpZCAiVXNlIG1haWwgbWFwIGZpbGUiCiBtc2dzdHIgIkFudsOkbmQgZS1wb3N0bWFwcG5pbmdzZmlsIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNgorIzogYnVpbHRpbi9sb2cuYzoxMjcKIG1zZ2lkICJkZWNvcmF0ZSBvcHRpb25zIgogbXNnc3RyICJkZWtvcmVyaW5nc2ZsYWdnb3IiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTk5CisjOiBidWlsdGluL2xvZy5jOjIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJGaW5hbCBvdXRwdXQ6ICVkICVzXG4iCiBtc2dzdHIgIlNsdXR1dGRhdGE6ICVkICVzXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NDIyIGJ1aWx0aW4vbG9nLmM6NTE0CisjOiBidWlsdGluL2xvZy5jOjQ1MyBidWlsdGluL2xvZy5jOjU0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCBvYmplY3QgJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgbMOkc2Egb2JqZWt0ZXQgJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NTM4CisjOiBidWlsdGluL2xvZy5jOjU2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIHR5cGU6ICVkIgogbXNnc3RyICJPa8OkbmQgdHlwOiAlZCIKIAotIzogYnVpbHRpbi9sb2cuYzo2MzgKKyM6IGJ1aWx0aW4vbG9nLmM6NjY5CiBtc2dpZCAiZm9ybWF0LmhlYWRlcnMgd2l0aG91dCB2YWx1ZSIKIG1zZ3N0ciAiZm9ybWF0LmhlYWRlcnMgdXRhbiB2w6RyZGUiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzIwCisjOiBidWlsdGluL2xvZy5jOjc1MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKIG1zZ3N0ciAibmFtbmV0IHDDpSB1dGRhdGFrYXRhbG9nZW4gw6RyIGbDtnIgbMOlbmd0IgogCi0jOiBidWlsdGluL2xvZy5jOjczNgorIzogYnVpbHRpbi9sb2cuYzo3NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gcGF0Y2ggZmlsZSAlcyIKIG1zZ3N0ciAiS2FuIGludGUgw7ZwcG5hIHBhdGNoZmlsZW4gJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzUwCisjOiBidWlsdGluL2xvZy5jOjc4MQogbXNnaWQgIk5lZWQgZXhhY3RseSBvbmUgcmFuZ2UuIgogbXNnc3RyICJCZWjDtnZlciBwcmVjaXMgZXR0IGludGVydmFsbC4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzU4CisjOiBidWlsdGluL2xvZy5jOjc4OQogbXNnaWQgIk5vdCBhIHJhbmdlLiIKIG1zZ3N0ciAiSW50ZSBldHQgaW50ZXJ2YWxsLiIKIAotIzogYnVpbHRpbi9sb2cuYzo4NjAKKyM6IGJ1aWx0aW4vbG9nLmM6ODkxCiBtc2dpZCAiQ292ZXIgbGV0dGVyIG5lZWRzIGVtYWlsIGZvcm1hdCIKIG1zZ3N0ciAiT21zbGFnc2JyZXZldCBiZWjDtnZlciBlLXBvc3Rmb3JtYXQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6OTM2CisjOiBidWlsdGluL2xvZy5jOjk2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnNhbmUgaW4tcmVwbHktdG86ICVzIgogbXNnc3RyICJ0b2tpZ3QgaW4tcmVwbHktdG86ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjk2NAorIzogYnVpbHRpbi9sb2cuYzo5OTUKIG1zZ2lkICJnaXQgZm9ybWF0LXBhdGNoIFtvcHRpb25zXSBbPHNpbmNlPiB8IDxyZXZpc2lvbiByYW5nZT5dIgogbXNnc3RyICJnaXQgZm9ybWF0LXBhdGNoIFtmbGFnZ29yXSBbPHNlZGFuPiB8IDxyZXZpc2lvbnNpbnRlcnZhbGw+XSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDA5CisjOiBidWlsdGluL2xvZy5jOjEwNDAKIG1zZ2lkICJUd28gb3V0cHV0IGRpcmVjdG9yaWVzPyIKIG1zZ3N0ciAiVHbDpSB1dGRhdGFrYXRhbG9nZXI/IgogCi0jOiBidWlsdGluL2xvZy5jOjExMDgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1NQogbXNnaWQgInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giCiBtc2dzdHIgImFudsOkbmQgW1BBVENIIG4vbV0gw6R2ZW4gZsO2ciBlbiBlbnNhbSBwYXRjaCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTExCisjOiBidWlsdGluL2xvZy5jOjExNTgKIG1zZ2lkICJ1c2UgW1BBVENIXSBldmVuIHdpdGggbXVsdGlwbGUgcGF0Y2hlcyIKIG1zZ3N0ciAiYW52w6RuZCBbUEFUQ0hdIMOkdmVuIGbDtnIgZmxlcmEgcGF0Y2hhciIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE1CisjOiBidWlsdGluL2xvZy5jOjExNjIKIG1zZ2lkICJwcmludCBwYXRjaGVzIHRvIHN0YW5kYXJkIG91dCIKIG1zZ3N0ciAic2tyaXYgcGF0Y2hhcm5hIHDDpSBzdG5hZGFyZCB1dCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE3CisjOiBidWlsdGluL2xvZy5jOjExNjQKIG1zZ2lkICJnZW5lcmF0ZSBhIGNvdmVyIGxldHRlciIKIG1zZ3N0ciAiZ2VuZXJlcmEgZXR0IGbDtmxqZWJyZXYiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExOQorIzogYnVpbHRpbi9sb2cuYzoxMTY2CiBtc2dpZCAidXNlIHNpbXBsZSBudW1iZXIgc2VxdWVuY2UgZm9yIG91dHB1dCBmaWxlIG5hbWVzIgogbXNnc3RyICJhbnbDpG5kIGVua2VsIG51bW1lcnNla3ZlbnMgZsO2ciB1dGRhdGFmaWxuYW1uIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2NwogbXNnaWQgInNmeCIKIG1zZ3N0ciAic2Z4IgogCi0jOiBidWlsdGluL2xvZy5jOjExMjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2OAogbXNnaWQgInVzZSA8c2Z4PiBpbnN0ZWFkIG9mICcucGF0Y2gnIgogbXNnc3RyICJhbnbDpG5kIDxzZng+IGlzdMOkbGxldCBmw7ZyIFwiLnBhdGNoXCIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyMworIzogYnVpbHRpbi9sb2cuYzoxMTcwCiBtc2dpZCAic3RhcnQgbnVtYmVyaW5nIHBhdGNoZXMgYXQgPG4+IGluc3RlYWQgb2YgMSIKIG1zZ3N0ciAiYsO2cmphIG51bXJlcmEgcGF0Y2hhciBww6UgPG4+IGlzdMOkbGxldCBmw7ZyIDEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNQorIzogYnVpbHRpbi9sb2cuYzoxMTcyCiBtc2dpZCAibWFyayB0aGUgc2VyaWVzIGFzIE50aCByZS1yb2xsIgogbXNnc3RyICJtYXJrZXJhIHNlcmllbiBzb20gTjp0ZSBmw7Zyc8O2ayIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTI3CisjOiBidWlsdGluL2xvZy5jOjExNzQKIG1zZ2lkICJVc2UgWzxwcmVmaXg+XSBpbnN0ZWFkIG9mIFtQQVRDSF0iCiBtc2dzdHIgIkFudsOkbmQgWzxwcmVmaXg+XSBpc3TDpGxsZXQgZsO2ciBbUEFUQ0hdIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3NwogbXNnaWQgInN0b3JlIHJlc3VsdGluZyBmaWxlcyBpbiA8ZGlyPiIKIG1zZ3N0ciAic3BhcmEgZmlsZXJuYSBpIDxrYXRhbG9nPiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMzCisjOiBidWlsdGluL2xvZy5jOjExODAKIG1zZ2lkICJkb24ndCBzdHJpcC9hZGQgW1BBVENIXSIKIG1zZ3N0ciAidGEgaW50ZSBib3J0IGVsbGVyIGzDpGdnIHRpbGwgW1BBVENIXSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM2CisjOiBidWlsdGluL2xvZy5jOjExODMKIG1zZ2lkICJkb24ndCBvdXRwdXQgYmluYXJ5IGRpZmZzIgogbXNnc3RyICJza3JpdiBpbnRlIGJpbsOkcmEgZGlmZmFyIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NQogbXNnaWQgImRvbid0IGluY2x1ZGUgYSBwYXRjaCBtYXRjaGluZyBhIGNvbW1pdCB1cHN0cmVhbSIKIG1zZ3N0ciAidGEgaW50ZSBtZWQgcGF0Y2hhciBzb20gbW90c3ZhcmFyIGVuIHVwcHN0csO2bXNpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQwCisjOiBidWlsdGluL2xvZy5jOjExODcKIG1zZ2lkICJzaG93IHBhdGNoIGZvcm1hdCBpbnN0ZWFkIG9mIGRlZmF1bHQgKHBhdGNoICsgc3RhdCkiCiBtc2dzdHIgInZpc2EgcGF0Y2hmb3JtYXQgaXN0w6RsbGV0IGbDtnIgc3RhbmRhcmQgKHBhdGNoICsgc3RhdCkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MgorIzogYnVpbHRpbi9sb2cuYzoxMTg5CiBtc2dpZCAiTWVzc2FnaW5nIgogbXNnc3RyICJFLXBvc3QiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MworIzogYnVpbHRpbi9sb2cuYzoxMTkwCiBtc2dpZCAiaGVhZGVyIgogbXNnc3RyICJodXZ1ZCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ0CisjOiBidWlsdGluL2xvZy5jOjExOTEKIG1zZ2lkICJhZGQgZW1haWwgaGVhZGVyIgogbXNnc3RyICJsw6RnZyB0aWxsIGUtcG9zdGh1dnVkIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDUgYnVpbHRpbi9sb2cuYzoxMTQ3CisjOiBidWlsdGluL2xvZy5jOjExOTIgYnVpbHRpbi9sb2cuYzoxMTk0CiBtc2dpZCAiZW1haWwiCiBtc2dzdHIgImVwb3N0IgogCi0jOiBidWlsdGluL2xvZy5jOjExNDUKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MgogbXNnaWQgImFkZCBUbzogaGVhZGVyIgogbXNnc3RyICJMw6RnZyB0aWxsIG1vdHRhZ2FyaHV2dWQgKFwiVG86XCIpIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NAogbXNnaWQgImFkZCBDYzogaGVhZGVyIgogbXNnc3RyICJMw6RnZyB0aWxsIGtvcGllaHV2dWQgKFwiQ2M6XCIpIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDkKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NgorbXNnaWQgImlkZW50IgorbXNnc3RyICJpZGVudCIKKworIzogYnVpbHRpbi9sb2cuYzoxMTk3Cittc2dpZCAic2V0IEZyb20gYWRkcmVzcyB0byA8aWRlbnQ+IChvciBjb21taXR0ZXIgaWRlbnQgaWYgYWJzZW50KSIKK21zZ3N0ciAic8OkdHQgRnLDpW4tYWRyZXNzIHRpbGwgPGlkZW50PiAoZWxsZXIgaW5jaGVja2FyZSBvbSBpZGVudCBzYWtuYXMpIgorCisjOiBidWlsdGluL2xvZy5jOjExOTkKIG1zZ2lkICJtZXNzYWdlLWlkIgogbXNnc3RyICJtZWRkZWxhbmRlLWlkIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMAogbXNnaWQgIm1ha2UgZmlyc3QgbWFpbCBhIHJlcGx5IHRvIDxtZXNzYWdlLWlkPiIKIG1zZ3N0ciAiR8O2ciBkZXQgZsO2cnN0YSBicmV2ZXQgZXR0IHN2YXIgdGlsbCA8bWVkZGVsYW5kZS1pZD4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MSBidWlsdGluL2xvZy5jOjExNTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMSBidWlsdGluL2xvZy5jOjEyMDQKIG1zZ2lkICJib3VuZGFyeSIKIG1zZ3N0ciAiZ3LDpG5zIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMgogbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCiBtc2dzdHIgImJpZm9nYSBwYXRjaGVuIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwNQogbXNnaWQgImlubGluZSB0aGUgcGF0Y2giCiBtc2dzdHIgImfDtnIgcGF0Y2hlbiBldHQgaW5saW5lLW9iamVrdCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTU5CisjOiBidWlsdGluL2xvZy5jOjEyMDkKIG1zZ2lkICJlbmFibGUgbWVzc2FnZSB0aHJlYWRpbmcsIHN0eWxlczogc2hhbGxvdywgZGVlcCIKIG1zZ3N0ciAiYWt0aXZlcmEgYnJldnRyw6VkbmluZywgdHlwZXI6IHNoYWxsb3csIGRlZXAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2MQorIzogYnVpbHRpbi9sb2cuYzoxMjExCiBtc2dpZCAic2lnbmF0dXJlIgogbXNnc3RyICJzaWduYXR1ciIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTYyCisjOiBidWlsdGluL2xvZy5jOjEyMTIKIG1zZ2lkICJhZGQgYSBzaWduYXR1cmUiCiBtc2dzdHIgImzDpGdnIHRpbGwgc2lnbmF0dXIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE2NAorIzogYnVpbHRpbi9sb2cuYzoxMjE0CiBtc2dpZCAiZG9uJ3QgcHJpbnQgdGhlIHBhdGNoIGZpbGVuYW1lcyIKIG1zZ3N0ciAidmlzYSBpbnRlIGZpbG5hbW4gZsO2ciBwYXRjaGFyIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNDgKKyM6IGJ1aWx0aW4vbG9nLmM6MTI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkZW50IGxpbmU6ICVzIgorbXNnc3RyICJvZ2lsdGlnIGlkZW50LXJhZDogJXMiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTMwMwogbXNnaWQgIi1uIGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiLW4gb2NoIC1rIGthbiBpbnRlIGFudsOkbmRhcyBzYW10aWRpZ3QuIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTMwNQogbXNnaWQgIi0tc3ViamVjdC1wcmVmaXggYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgogbXNnc3RyICItLXN1YmplY3QtcHJlZml4IG9jaCAtayBrYW4gaW50ZSBhbnbDpG5kYXMgc2FtdGlkaWd0LiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjU4CisjOiBidWlsdGluL2xvZy5jOjEzMTMKIG1zZ2lkICItLW5hbWUtb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICJrYW4gaW50ZSBhbnbDpG5kYSAtLW5hbWUtb25seSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjYwCisjOiBidWlsdGluL2xvZy5jOjEzMTUKIG1zZ2lkICItLW5hbWUtc3RhdHVzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgImthbiBpbnRlIGFudsOkbmRhIC0tbmFtZS1zdGF0dXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI2MgorIzogYnVpbHRpbi9sb2cuYzoxMzE3CiBtc2dpZCAiLS1jaGVjayBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICJrYW4gaW50ZSBhbnbDpG5kYSAtLWNoZWNrIgogCi0jOiBidWlsdGluL2xvZy5jOjEyODUKKyM6IGJ1aWx0aW4vbG9nLmM6MTM0MAogbXNnaWQgInN0YW5kYXJkIG91dHB1dCwgb3IgZGlyZWN0b3J5LCB3aGljaCBvbmU/IgogbXNnc3RyICJzdGFuZGFyZCB1dCwgZWxsZXIga2F0YWxvZywgdmlsa2VuIHNrYWxsIGRldCB2YXJhPyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjg3CisjOiBidWlsdGluL2xvZy5jOjEzNDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBza2FwYSBrYXRhbG9nZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2xvZy5jOjE0MzUKKyM6IGJ1aWx0aW4vbG9nLmM6MTQ5MAogbXNnaWQgIkZhaWxlZCB0byBjcmVhdGUgb3V0cHV0IGZpbGVzIgogbXNnc3RyICJNaXNzbHlja2FkZXMgc2thcGEgdXRkYXRhZmlsZXIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ4NAorIzogYnVpbHRpbi9sb2cuYzoxNTM5CiBtc2dpZCAiZ2l0IGNoZXJyeSBbLXZdIFs8dXBzdHJlYW0+IFs8aGVhZD4gWzxsaW1pdD5dXV0iCiBtc2dzdHIgImdpdCBjaGVycnkgWy12XSBbPHVwcHN0csO2bT4gWzxodXZ1ZD4gWzxncsOkbnM+XV1dIgogCi0jOiBidWlsdGluL2xvZy5jOjE1MzkKKyM6IGJ1aWx0aW4vbG9nLmM6MTU5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ291bGQgbm90IGZpbmQgYSB0cmFja2VkIHJlbW90ZSBicmFuY2gsIHBsZWFzZSBzcGVjaWZ5IDx1cHN0cmVhbT4gbWFudWFsbHkuXG4iCiBtc2dzdHIgIkt1bmRlIGludGUgaGl0dGEgZW4gc3DDpXJhZCBmasOkcnJncmVuLCBhbmdlIDx1cHBzdHLDtm0+IG1hbnVlbGx0LlxuIgogCi0jOiBidWlsdGluL2xvZy5jOjE1NTIgYnVpbHRpbi9sb2cuYzoxNTU0IGJ1aWx0aW4vbG9nLmM6MTU2NgorIzogYnVpbHRpbi9sb2cuYzoxNjA3IGJ1aWx0aW4vbG9nLmM6MTYwOSBidWlsdGluL2xvZy5jOjE2MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBjb21taXQgJXMiCiBtc2dzdHIgIk9rw6RuZCBpbmNoZWNrbmluZyAlcyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQwMgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQwOAogbXNnaWQgImdpdCBscy1maWxlcyBbb3B0aW9uc10gWzxmaWxlPi4uLl0iCiBtc2dzdHIgImdpdCBscy1maWxlcyBbZmxhZ2dvcl0gWzxmaWw+Li4uXSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ1OQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NQogbXNnaWQgImlkZW50aWZ5IHRoZSBmaWxlIHN0YXR1cyB3aXRoIHRhZ3MiCiBtc2dzdHIgImlkZW50aWZpZXJhIGZpbHN0YXR1cyBtZWQgdGFnZ2FyIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDYxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CiBtc2dpZCAidXNlIGxvd2VyY2FzZSBsZXR0ZXJzIGZvciAnYXNzdW1lIHVuY2hhbmdlZCcgZmlsZXMiCiBtc2dzdHIgImFudsOkbmQgc23DpSBib2tzdMOkdmVyIGbDtnIgXCJhbnRhIG9mw7Zyw6RuZHJhZGVcIi1maWxlciIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2MworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2OQogbXNnaWQgInNob3cgY2FjaGVkIGZpbGVzIGluIHRoZSBvdXRwdXQgKGRlZmF1bHQpIgogbXNnc3RyICJ2aXNhIGNhY2hhZGUgZmlsZXIgaSB1dGRhdGEgKHN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQogbXNnaWQgInNob3cgZGVsZXRlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIGJvcnR0YWduYSBmaWxlciBpIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MwogbXNnaWQgInNob3cgbW9kaWZpZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAidmlzYSBtb2RpZmllcmFkZSBmaWxlciBpIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2OQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NQogbXNnaWQgInNob3cgb3RoZXIgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAidmlzYSBhbmRyYSBmaWxlciBpIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NwogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIGlnbm9yZXJhZGUgZmlsZXIgaSB1dGRhdGEiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODAKIG1zZ2lkICJzaG93IHN0YWdlZCBjb250ZW50cycgb2JqZWN0IG5hbWUgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAidmlzYSBrw7ZhdCBpbm5laMOlbGxzIG9iamVrdG5hbW4gaSB1dGRhdGEiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODIKIG1zZ2lkICJzaG93IGZpbGVzIG9uIHRoZSBmaWxlc3lzdGVtIHRoYXQgbmVlZCB0byBiZSByZW1vdmVkIgogbXNnc3RyICJ2aXNhIGZpbGVyIGkgZmlsc3lzdGVtZXQgc29tIGJlaMO2dmVyIHRhcyBib3J0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CiBtc2dpZCAic2hvdyAnb3RoZXInIGRpcmVjdG9yaWVzJyBuYW1lIG9ubHkiCiBtc2dzdHIgInZpc2EgZW5kYXN0IG5hbW4gZsO2ciBcImFuZHJhXCIga2F0YWxvZ2VyIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDgxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg3CiBtc2dpZCAiZG9uJ3Qgc2hvdyBlbXB0eSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAidmlzYSBpbnRlIHRvbW1hIGthdGFsb2dlciIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MAogbXNnaWQgInNob3cgdW5tZXJnZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAidmlzYSBlaiBzYW1tYW5zbGFnbmEgZmlsZXIgaSB1dGRhdGEiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTIKIG1zZ2lkICJzaG93IHJlc29sdmUtdW5kbyBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAidmlzYSBcInJlc29sdmUtdW5kb1wiLWluZm9ybWF0aW9uIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CiBtc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgogbXNnc3RyICJob3BwYSDDtnZlciBmaWxlciBzb20gbW90c3ZhcmFyIG3Dtm5zdGVyIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk3CiBtc2dpZCAiZXhjbHVkZSBwYXR0ZXJucyBhcmUgcmVhZCBmcm9tIDxmaWxlPiIKIG1zZ3N0ciAiZXhrbHVkZXJhIG3Dtm5zdGVyIHNvbSBsw6RzZXMgZnLDpW4gPGZpbD4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAKIG1zZ2lkICJyZWFkIGFkZGl0aW9uYWwgcGVyLWRpcmVjdG9yeSBleGNsdWRlIHBhdHRlcm5zIGluIDxmaWxlPiIKIG1zZ3N0ciAibMOkcyB5dHRlcmxpZ2FyZSBwZXIta2F0YWxvZy1leGtsdWRlcmluZ3Ntw7Zuc3RlciBmcsOlbiA8ZmlsPiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMgogbXNnaWQgImFkZCB0aGUgc3RhbmRhcmQgZ2l0IGV4Y2x1c2lvbnMiCiBtc2dzdHIgImzDpGdnIHRpbGwgZ2l0OnMgc3RhbmRhcmRleGtsdWRlcmluZ2FyIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA1CiBtc2dpZCAibWFrZSB0aGUgb3V0cHV0IHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgImfDtnIgdXRkYXRhIHJlbGF0aXYgdGlsbCBwcm9qZWt0ZXRzIHRvcHBrYXRhbG9nIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA4CiBtc2dpZCAiaWYgYW55IDxmaWxlPiBpcyBub3QgaW4gdGhlIGluZGV4LCB0cmVhdCB0aGlzIGFzIGFuIGVycm9yIgogbXNnc3RyICJvbSBlbiA8ZmlsPiBpbnRlIMOkciBpbmRleGV0LCBiZXRyYWt0YSBkZXQgc29tIGV0dCBmZWwiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDkKIG1zZ2lkICJ0cmVlLWlzaCIKIG1zZ3N0ciAidHLDpGQtaWd0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTA0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTEwCiBtc2dpZCAicHJldGVuZCB0aGF0IHBhdGhzIHJlbW92ZWQgc2luY2UgPHRyZWUtaXNoPiBhcmUgc3RpbGwgcHJlc2VudCIKIG1zZ3N0ciAibMOldHNhcyBhdHQgc8O2a3bDpGdhciBib3J0dGFnbmEgc2VkYW4gPHRyw6RkLWlndD4gZm9ydGZhcmFuZGUgZmlubnMiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTIKIG1zZ2lkICJzaG93IGRlYnVnZ2luZyBkYXRhIgogbXNnc3RyICJ2aXNhIGZlbHPDtmtuaW5nc3V0ZGF0YSIKIApAQCAtNjE0MiwxNzAgKzYzOTMsMTcwIEBACiBtc2dpZCAiZ2l0IG1lcmdlIC0tYWJvcnQiCiBtc2dzdHIgImdpdCBtZXJnZSAtLWFib3J0IgogCi0jOiBidWlsdGluL21lcmdlLmM6OTAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5OAogbXNnaWQgInN3aXRjaCBgbScgcmVxdWlyZXMgYSB2YWx1ZSIKIG1zZ3N0ciAiZmxhZ2dhbiBcIm1cIiBiZWjDtnZlciBldHQgdsOkcmRlIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI3CisjOiBidWlsdGluL21lcmdlLmM6MTM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmaW5kIG1lcmdlIHN0cmF0ZWd5ICclcycuXG4iCiBtc2dzdHIgIkt1bmRlIGludGUgaGl0dGEgc2FtbWFuc2xhZ25pbmdzc3RyYXRlZ2luIFwiJXNcIi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyOAorIzogYnVpbHRpbi9tZXJnZS5jOjEzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgc3RyYXRlZ2llcyBhcmU6IgogbXNnc3RyICJUaWxsZ8OkbmdsaWdhIHN0cmF0ZWdpZXIgw6RyOiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzMworIzogYnVpbHRpbi9tZXJnZS5jOjE0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgY3VzdG9tIHN0cmF0ZWdpZXMgYXJlOiIKIG1zZ3N0ciAiVGlsbGfDpG5nbGlnYSBza3LDpGRkYXJzeWRkYSBzdHJhdGVnaWVyIMOkcjoiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKIG1zZ2lkICJkbyBub3Qgc2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgogbXNnc3RyICJ2aXNhIGludGUgZW4gZGlmZnN0YXQgbsOkciBzYW1tYW5zbGFnbmluZ2VuIMOkciBmw6RyZGlnIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg2CisjOiBidWlsdGluL21lcmdlLmM6MjAxCiBtc2dpZCAic2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgogbXNnc3RyICJ2aXNhIGVuIGRpZmZzdGF0IG7DpHIgc2FtbWFuc2xhZ25pbmdlbiDDpHIgZsOkcmRpZyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4NworIzogYnVpbHRpbi9tZXJnZS5jOjIwMgogbXNnaWQgIihzeW5vbnltIHRvIC0tc3RhdCkiCiBtc2dzdHIgIihzeW5vbnltIHRpbGwgLS1zdGF0KSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4OQorIzogYnVpbHRpbi9tZXJnZS5jOjIwNAogbXNnaWQgImFkZCAoYXQgbW9zdCA8bj4pIGVudHJpZXMgZnJvbSBzaG9ydGxvZyB0byBtZXJnZSBjb21taXQgbWVzc2FnZSIKIG1zZ3N0ciAiIgogImzDpGdnIHRpbGwgKHNvbSBtZXN0IDxuPikgcG9zdGVyIGZyw6VuIHNob3J0bG9nIHRpbGwgaW5jaGVja25pbmdzbWVkZGVsYW5kZXQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDcKIG1zZ2lkICJjcmVhdGUgYSBzaW5nbGUgY29tbWl0IGluc3RlYWQgb2YgZG9pbmcgYSBtZXJnZSIKIG1zZ3N0ciAic2thcGEgZW4gZW5zYW0gaW5jaGVja25pbmcgaXN0w6RsbGV0IGbDtnIgZW4gc2FtbWFuc2xhZ25pbmciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKIG1zZ2lkICJwZXJmb3JtIGEgY29tbWl0IGlmIHRoZSBtZXJnZSBzdWNjZWVkcyAoZGVmYXVsdCkiCiBtc2dzdHIgInV0ZsO2ciBlbiBpbmNoZWNrbmluZyBvbSBzYW1tYW5zbGFnbmluZ2VuIGx5Y2thZGVzIChzdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTEKIG1zZ2lkICJlZGl0IG1lc3NhZ2UgYmVmb3JlIGNvbW1pdHRpbmciCiBtc2dzdHIgInJlZGlnZXJhIG1lZGRlbGFuZGUgaW5uYW4gaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTIKIG1zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQgKGRlZmF1bHQpIgogbXNnc3RyICJ0aWxsw6V0IHNuYWJic3BvbG5pbmcgKHN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwMAorIzogYnVpbHRpbi9tZXJnZS5jOjIxNAogbXNnaWQgImFib3J0IGlmIGZhc3QtZm9yd2FyZCBpcyBub3QgcG9zc2libGUiCiBtc2dzdHIgImF2YnJ5dCBvbSBzbmFiYnNwb2xuaW5nIGludGUgw6RyIG3DtmpsaWciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTgKIG1zZ2lkICJWZXJpZnkgdGhhdCB0aGUgbmFtZWQgY29tbWl0IGhhcyBhIHZhbGlkIEdQRyBzaWduYXR1cmUiCiBtc2dzdHIgIkJla3LDpGZ0YSBhdHQgZGVuIG5hbW5naXZuYSBpbmNoZWNrbmluZ2VuIGhhciBlbiBnaWx0aWcgR1BHLXNpZ25hdHVyIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA0IGJ1aWx0aW4vbm90ZXMuYzo4NjYgYnVpbHRpbi9yZXZlcnQuYzoxMTIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTkgYnVpbHRpbi9ub3Rlcy5jOjczOCBidWlsdGluL3JldmVydC5jOjExNAogbXNnaWQgInN0cmF0ZWd5IgogbXNnc3RyICJzdHJhdGVnaSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNQorIzogYnVpbHRpbi9tZXJnZS5jOjIyMAogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IHRvIHVzZSIKIG1zZ3N0ciAic2FtbWFuc2xhZ25pbnNzdHJhdGVnaSBhdHQgYW52w6RuZGEiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjEKIG1zZ2lkICJvcHRpb249dmFsdWUiCiBtc2dzdHIgImFsdGVybmF0aXY9dsOkcmRlIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA3CisjOiBidWlsdGluL21lcmdlLmM6MjIyCiBtc2dpZCAib3B0aW9uIGZvciBzZWxlY3RlZCBtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiYWx0ZXJuYXRpdiBmw7ZyIHZhbGQgc2FtbWFuc2xhZ25pbmdzc3RyYXRlZ2kiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjQKIG1zZ2lkICJtZXJnZSBjb21taXQgbWVzc2FnZSAoZm9yIGEgbm9uLWZhc3QtZm9yd2FyZCBtZXJnZSkiCiBtc2dzdHIgImluY2hlY2tuaW5nc21lZGRlbGFuZGUgZsO2ciAoaWNrZSBzbmFiYnNwb2xhbmRlKSBzYW1tYW5zbGFnbmluZyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIxMworIzogYnVpbHRpbi9tZXJnZS5jOjIyOAogbXNnaWQgImFib3J0IHRoZSBjdXJyZW50IGluLXByb2dyZXNzIG1lcmdlIgogbXNnc3RyICJhdmJyeXQgZGVuIHDDpWfDpWVuZGUgc2FtbWFuc2xhZ25pbmdlbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI0MgorIzogYnVpbHRpbi9tZXJnZS5jOjI1NwogbXNnaWQgImNvdWxkIG5vdCBydW4gc3Rhc2guIgogbXNnc3RyICJrdW5kZSBrw7ZyYSBzdGFzaC4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNjIKIG1zZ2lkICJzdGFzaCBmYWlsZWQiCiBtc2dzdHIgInN0YXNoIG1pc3NseWNrYWRlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI1MgorIzogYnVpbHRpbi9tZXJnZS5jOjI2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgYSB2YWxpZCBvYmplY3Q6ICVzIgogbXNnc3RyICJpbnRlIGV0dCBnaWx0aWd0IG9iamVrdDogJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNzEgYnVpbHRpbi9tZXJnZS5jOjI4OAorIzogYnVpbHRpbi9tZXJnZS5jOjI4NiBidWlsdGluL21lcmdlLmM6MzAzCiBtc2dpZCAicmVhZC10cmVlIGZhaWxlZCIKIG1zZ3N0ciAicmVhZC10cmVlIG1pc3NseWNrYWRlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjMxOAorIzogYnVpbHRpbi9tZXJnZS5jOjMzMwogbXNnaWQgIiAobm90aGluZyB0byBzcXVhc2gpIgogbXNnc3RyICIgKGluZ2V0IGF0dCBwbGF0dGEgdGlsbCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozMzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3F1YXNoIGNvbW1pdCAtLSBub3QgdXBkYXRpbmcgSEVBRFxuIgogbXNnc3RyICJUaWxscGxhdHRuaW5nc2luY2hlY2tuaW5nIC0tIHVwcGRhdGVyYXIgaW50ZSBIRUFEXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozNjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNzgKIG1zZ2lkICJXcml0aW5nIFNRVUFTSF9NU0ciCiBtc2dzdHIgIlNrcml2ZXIgU1FVQVNIX01TRyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM2NQorIzogYnVpbHRpbi9tZXJnZS5jOjM4MAogbXNnaWQgIkZpbmlzaGluZyBTUVVBU0hfTVNHIgogbXNnc3RyICJBdnNsdXRhciBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL21lcmdlLmM6Mzg4CisjOiBidWlsdGluL21lcmdlLmM6NDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG1lcmdlIG1lc3NhZ2UgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKIG1zZ3N0ciAiSW5nZXQgc2FtbWFuc2xhZ25pbmdzbWVkZGVsYW5kZSAtLSB1cHBkYXRlcmFyIGludGUgSEVBRFxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6NDM4CisjOiBidWlsdGluL21lcmdlLmM6NDUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgZG9lcyBub3QgcG9pbnQgdG8gYSBjb21taXQiCiBtc2dzdHIgIlwiJXNcIiB2ZXJrYXIgaW50ZSBwZWthIHDDpSBlbiBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjU1MAorIzogYnVpbHRpbi9tZXJnZS5jOjU2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJCYWQgYnJhbmNoLiVzLm1lcmdlb3B0aW9ucyBzdHJpbmc6ICVzIgogbXNnc3RyICJGZWxha3RpZyBicmFuY2guJXMubWVyZ2VvcHRpb25zLXN0csOkbmc6ICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6NjQzCisjOiBidWlsdGluL21lcmdlLmM6NjU3CiBtc2dpZCAiZ2l0IHdyaXRlLXRyZWUgZmFpbGVkIHRvIHdyaXRlIGEgdHJlZSIKIG1zZ3N0ciAiZ2l0IHdyaXRlLXRyZWUgbWlzc2x5Y2thZGVzIHNrcml2YSBldHQgdHLDpGQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2NzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2ODUKIG1zZ2lkICJOb3QgaGFuZGxpbmcgYW55dGhpbmcgb3RoZXIgdGhhbiB0d28gaGVhZHMgbWVyZ2UuIgogbXNnc3RyICJIYW50ZXJhciBpbnRlIG7DpWdvdCBhbm5hdCDDpG4gZW4gc2FtbWFuc2xhZ25pbmcgYXYgdHbDpSBodXZ1ZGVuLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY4NQorIzogYnVpbHRpbi9tZXJnZS5jOjY5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIG9wdGlvbiBmb3IgbWVyZ2UtcmVjdXJzaXZlOiAtWCVzIgogbXNnc3RyICJGZWxha3RpZyBmbGFnZ2EgZsO2ciBtZXJnZS1yZWN1cnNpdmU6IC1YJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2OTkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo3MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlICVzIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrcml2YSAlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjc4OAorIzogYnVpbHRpbi9tZXJnZS5jOjgwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCBmcm9tICclcyciCiBtc2dzdHIgIkt1bmRlIGludGUgbMOkc2EgZnLDpW4gXCIlc1wiIgogCi0jOiBidWlsdGluL21lcmdlLmM6Nzk3CisjOiBidWlsdGluL21lcmdlLmM6ODExCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBjb21taXR0aW5nIG1lcmdlOyB1c2UgJ2dpdCBjb21taXQnIHRvIGNvbXBsZXRlIHRoZSBtZXJnZS5cbiIKIG1zZ3N0ciAiIgogIkNoZWNrYXIgaW50ZSBpbiBzYW1tYW5zbGFnbmluZ2VuOyBhbnbDpG5kIFwiZ2l0IGNvbW1pdFwiIGbDtnIgYXR0IHNsdXRmw7ZyYSAiCiAiZGVuLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODAzCisjOiBidWlsdGluL21lcmdlLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgYSBjb21taXQgbWVzc2FnZSB0byBleHBsYWluIHdoeSB0aGlzIG1lcmdlIGlzIG5lY2Vzc2FyeSxcbiIKQEAgLTYzMjEsNTMgKzY1NzIsNDggQEAKICJSYWRlciBzb20gaW5sZWRzIG1lZCBcIiVjXCIga29tbWVyIGlnbm9yZXJhcywgb2NoIGV0dCB0b210IG1lZGRlbGFuZGVcbiIKICJhdmJyeXRlciBpbmNoZWNrbmluZ2VuLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODI3CisjOiBidWlsdGluL21lcmdlLmM6ODQxCiBtc2dpZCAiRW1wdHkgY29tbWl0IG1lc3NhZ2UuIgogbXNnc3RyICJUb210IGluY2hlY2tuaW5nc21lZGRlbGFuZGUuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODM5CisjOiBidWlsdGluL21lcmdlLmM6ODUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvbmRlcmZ1bC5cbiIKIG1zZ3N0ciAiVW5kZXJiYXJ0LlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTA0CisjOiBidWlsdGluL21lcmdlLmM6OTE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkF1dG9tYXRpYyBtZXJnZSBmYWlsZWQ7IGZpeCBjb25mbGljdHMgYW5kIHRoZW4gY29tbWl0IHRoZSByZXN1bHQuXG4iCiBtc2dzdHIgIiIKICJLdW5kZSBpbnRlIHNsw6UgaWhvcCBhdXRvbWF0aXNrdDsgZml4YSBrb25mbGlrdGVyIG9jaCBjaGVja2EgaW4gcmVzdWx0YXRldC5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkyMAorIzogYnVpbHRpbi9tZXJnZS5jOjkzNAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIG5vdCBhIGNvbW1pdCIKIG1zZ3N0ciAiXCIlc1wiIMOkciBpbnRlIGVuIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTYxCisjOiBidWlsdGluL21lcmdlLmM6OTc1CiBtc2dpZCAiTm8gY3VycmVudCBicmFuY2guIgogbXNnc3RyICJJbnRlIHDDpSBuw6Vnb24gZ3Jlbi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzcKIG1zZ2lkICJObyByZW1vdGUgZm9yIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIkluZ2VuIGZqw6RyciBmw7ZyIGFrdHVlbGwgZ3Jlbi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzkKIG1zZ2lkICJObyBkZWZhdWx0IHVwc3RyZWFtIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIkluZ2VuIHN0YW5kYXJkdXBwc3Ryw7ZtIGFuZ2l2ZW4gZsO2ciBha3R1ZWxsIGdyZW4uIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTcwCisjOiBidWlsdGluL21lcmdlLmM6OTg0CiAjLCBjLWZvcm1hdAotbXNnaWQgIk5vIHJlbW90ZSB0cmFja2luZyBicmFuY2ggZm9yICVzIGZyb20gJXMiCittc2dpZCAiTm8gcmVtb3RlLXRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKIG1zZ3N0ciAiSW5nZW4gZmrDpHJyc3DDpXJhbmRlIGdyZW4gZsO2ciAlcyBmcsOlbiAlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEwNTcgYnVpbHRpbi9tZXJnZS5jOjEyMTQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIKLW1zZ3N0ciAiJXMgLSBpbnRlIG7DpWdvdCB2aSBrYW4gc2zDpSBpaG9wIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTEyNQorIzogYnVpbHRpbi9tZXJnZS5jOjExNDAKIG1zZ2lkICJUaGVyZSBpcyBubyBtZXJnZSB0byBhYm9ydCAoTUVSR0VfSEVBRCBtaXNzaW5nKS4iCiBtc2dzdHIgIkRldCBmaW5ucyBpbmdlbiBzYW1tYW5zbGFnbmluZyBhdHQgYXZicnl0YSAoTUVSR0VfSEVBRCBzYWtuYXMpLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDEgZ2l0LXB1bGwuc2g6MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTU2IGdpdC1wdWxsLnNoOjMxCiBtc2dpZCAiIgogIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBtZXJnZSAoTUVSR0VfSEVBRCBleGlzdHMpLlxuIgogIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCkBAIC02Mzc1LDExICs2NjIxLDExIEBACiAiRHUgaGFyIGludGUgYXZzbHV0YXQgc2FtbWFuc2xhZ25pbmdlbiAoTUVSR0VfSEVBRCBmaW5ucykuXG4iCiAiQ2hlY2thIGluIGRpbmEgw6RuZHJpbmdhciBpbm5hbiBkdSBrYW4gc2zDpSBpaG9wLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDQgZ2l0LXB1bGwuc2g6MzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTU5IGdpdC1wdWxsLnNoOjM0CiBtc2dpZCAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIG1lcmdlIChNRVJHRV9IRUFEIGV4aXN0cykuIgogbXNnc3RyICJEdSBoYXIgaW50ZSBhdnNsdXRhdCBzYW1tYW5zbGFnbmluZ2VuIChNRVJHRV9IRUFEIGZpbm5zKS4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQ4CisjOiBidWlsdGluL21lcmdlLmM6MTE2MwogbXNnaWQgIiIKICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RzKS5cbiIKICJQbGVhc2UsIGNvbW1pdCB5b3VyIGNoYW5nZXMgYmVmb3JlIHlvdSBjYW4gbWVyZ2UuIgpAQCAtNjM4NywxMDIgKzY2MzMsMTAzIEBACiAiRHUgaGFyIGludGUgYXZzbHV0YXQgZGluIFwiY2hlcnJ5LXBpY2tcIiAoQ0hFUlJZX1BJQ0tfSEVBRCBmaW5ucykuXG4iCiAiQ2hlY2thIGluIGRpbmEgw6RuZHJpbmdhciBpbm5hbiBkdSBrYW4gc2zDpSBpaG9wLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNTEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTY2CiBtc2dpZCAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIGNoZXJyeS1waWNrIChDSEVSUllfUElDS19IRUFEIGV4aXN0cykuIgogbXNnc3RyICJEdSBoYXIgaW50ZSBhdnNsdXRhdCBkaW4gXCJjaGVycnktcGlja1wiIChDSEVSUllfUElDS19IRUFEIGZpbm5zKS4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTYwCisjOiBidWlsdGluL21lcmdlLmM6MTE3NQogbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLXNxdWFzaCB3aXRoIC0tbm8tZmYuIgogbXNnc3RyICJEdSBrYW4gaW50ZSBrb21iaW5lcmEgLS1zcXVhc2ggbWVkIC0tbm8tZmYuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE2NQotbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLW5vLWZmIHdpdGggLS1mZi1vbmx5LiIKLW1zZ3N0ciAiRHUga2FuIGludGUga29tYmluZXJhIC0tbm8tZmYgbWVkIC0tZmYtb25seS4iCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTcyCisjOiBidWlsdGluL21lcmdlLmM6MTE4NAogbXNnaWQgIk5vIGNvbW1pdCBzcGVjaWZpZWQgYW5kIG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIG5vdCBzZXQuIgogbXNnc3RyICJJbmdlbiBpbmNoZWNrbmluZyBhbmdpdmVuIG9jaCBtZXJnZS5kZWZhdWx0VG9VcHN0cmVhbSDDpHIgZWogc2F0dC4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA0CisjOiBidWlsdGluL21lcmdlLmM6MTIxNgogbXNnaWQgIkNhbiBtZXJnZSBvbmx5IGV4YWN0bHkgb25lIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIkthbiBlbmRhc3Qgc2zDpSBpaG9wIGVuIGVuZGEgaW5jaGVja25pbmcgaSBldHQgdG9tdCBodXZ1ZC4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA3CisjOiBidWlsdGluL21lcmdlLmM6MTIxOQogbXNnaWQgIlNxdWFzaCBjb21taXQgaW50byBlbXB0eSBoZWFkIG5vdCBzdXBwb3J0ZWQgeWV0IgogbXNnc3RyICJTdMO2ZGVyIGludGUgZW4gdGlsbHBsYXR0bmluZ3NpbmNoZWNrbmluZyBww6UgZXR0IHRvbXQgaHV2dWQgw6RubnUiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA5CisjOiBidWlsdGluL21lcmdlLmM6MTIyMQogbXNnaWQgIk5vbi1mYXN0LWZvcndhcmQgY29tbWl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgaW50byBhbiBlbXB0eSBoZWFkIgogbXNnc3RyICJJY2tlLXNuYWJic3BvbGFkIGluY2hlY2tuaW5nIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgZXR0IHRvbXQgaHV2dWQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY1CisjOiBidWlsdGluL21lcmdlLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtIG5vdCBzb21ldGhpbmcgd2UgY2FuIG1lcmdlIgorbXNnc3RyICIlcyAtIGludGUgbsOlZ290IHZpIGthbiBzbMOlIGlob3AiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjc3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYW4gdW50cnVzdGVkIEdQRyBzaWduYXR1cmUsIGFsbGVnZWRseSBieSAlcy4iCiBtc2dzdHIgIiIKICJJbmNoZWNrbmluZ2VuICVzIGhhciBlbiBvYmV0cm9kZCBHUEctc2lnbmF0dXIgc29tIHDDpXN0w6VzIHZhcmEgZ2pvcmQgYXYgJXMuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI2OAorIzogYnVpbHRpbi9tZXJnZS5jOjEyODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGhhcyBhIGJhZCBHUEcgc2lnbmF0dXJlIGFsbGVnZWRseSBieSAlcy4iCiBtc2dzdHIgIiIKICJJbmNoZWNrbmluZ2VuICVzIGhhciBlbiBmZWxha3RpZyBHUEctc2lnbmF0dXIgc29tIHDDpXN0w6VzIHZhcmEgZ2pvcmQgYXYgJXMuIgogCiAjLiAnTicKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjcxCisjOiBidWlsdGluL21lcmdlLmM6MTI4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgZG9lcyBub3QgaGF2ZSBhIEdQRyBzaWduYXR1cmUuIgogbXNnc3RyICJJbmNoZWNrbmluZyAlcyBoYXIgaW50ZSBuw6Vnb24gR1BHLXNpZ25hdHVyLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYSBnb29kIEdQRyBzaWduYXR1cmUgYnkgJXNcbiIKIG1zZ3N0ciAiSW5jaGVja25pbmdlbiAlcyBoYXIgZW4ga29ycmVrdCBHUEctc2lnbmF0dXIgYXYgJXNcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzNTgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVwZGF0aW5nICVzLi4lc1xuIgogbXNnc3RyICJVcHBkYXRlcmFyICVzLi4lc1xuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTM5NworIzogYnVpbHRpbi9tZXJnZS5jOjE0MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIHJlYWxseSB0cml2aWFsIGluLWluZGV4IG1lcmdlLi4uXG4iCiBtc2dzdHIgIkbDtnJzw7ZrZXIgcmlrdGlndCBlbmtlbCBzYW1tYW5zbGFnbmluZyBpIGluZGV4ZXQuLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vcGUuXG4iCiBtc2dzdHIgIk5lai5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0MzYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDQ4CiBtc2dpZCAiTm90IHBvc3NpYmxlIHRvIGZhc3QtZm9yd2FyZCwgYWJvcnRpbmcuIgogbXNnc3RyICJLYW4gaW50ZSBzbmFiYnNwb2xhLCBhdmJyeXRlci4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDU5IGJ1aWx0aW4vbWVyZ2UuYzoxNTM4CisjOiBidWlsdGluL21lcmdlLmM6MTQ3MSBidWlsdGluL21lcmdlLmM6MTU1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZXdpbmRpbmcgdGhlIHRyZWUgdG8gcHJpc3RpbmUuLi5cbiIKIG1zZ3N0ciAiw4V0ZXJzcG9sYXIgdHLDpGRldCB0aWxsIG9yw7ZydC4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ2MworIzogYnVpbHRpbi9tZXJnZS5jOjE0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIG1lcmdlIHN0cmF0ZWd5ICVzLi4uXG4iCiBtc2dzdHIgIkbDtnJzw7ZrZXIgc2FtbWFuc2xhZ25pbnNzdHJhdGVnaW4gJXMuLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1MjkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG1lcmdlIHN0cmF0ZWd5IGhhbmRsZWQgdGhlIG1lcmdlLlxuIgogbXNnc3RyICJJbmdlbiBzYW1tYW5zbGFnbmluZ3NzdHJhdGVnaSBoYW50ZXJhZGUgc2FtbWFuc2xhZ25pbmdlbi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1lcmdlIHdpdGggc3RyYXRlZ3kgJXMgZmFpbGVkLlxuIgogbXNnc3RyICJTYW1tYW5zbGFnbmluZyBtZWQgc3RyYXRlZ2luICVzIG1pc3NseWNrYWRlcy5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1NDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzaW5nIHRoZSAlcyB0byBwcmVwYXJlIHJlc29sdmluZyBieSBoYW5kLlxuIgogbXNnc3RyICJBbnbDpG5kZXIgJXMgZsO2ciBhdHQgZsO2cmJlcmVkYSBsw7ZzbmluZyBmw7ZyIGhhbmQuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTUyCisjOiBidWlsdGluL21lcmdlLmM6MTU2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvbWF0aWMgbWVyZ2Ugd2VudCB3ZWxsOyBzdG9wcGVkIGJlZm9yZSBjb21taXR0aW5nIGFzIHJlcXVlc3RlZFxuIgogbXNnc3RyICIiCkBAIC02NjQ5LDQ3ICs2ODk2LDUxIEBACiBtc2dpZCAicmVuYW1pbmcgJyVzJyBmYWlsZWQiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBieXRhIG5hbW4gcMOlIFwiJXNcIiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI1OQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gPGNvbW1pdD4uLi4iCiBtc2dzdHIgImdpdCBuYW1lLXJldiBbZmxhZ2dvcl0gPGluY2hlY2tuaW5nPi4uLiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MAogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1hbGwiCiBtc2dzdHIgImdpdCBuYW1lLXJldiBbZmxhZ2dvcl0gLS1hbGwiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoxNzcKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyNjEKIG1zZ2lkICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIC0tc3RkaW4iCiBtc2dzdHIgImdpdCBuYW1lLXJldiBbZmxhZ2dvcl0gLS1zdGRpbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIyOQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxMwogbXNnaWQgInByaW50IG9ubHkgbmFtZXMgKG5vIFNIQS0xKSIKIG1zZ3N0ciAic2tyaXYgZW5kYXN0IG5hbW4gKGluZ2VuIFNIQS0xKSIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzMAorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxNAogbXNnaWQgIm9ubHkgdXNlIHRhZ3MgdG8gbmFtZSB0aGUgY29tbWl0cyIKIG1zZ3N0ciAiYW52w6RuZCBlbmRhc3QgdGFnZ2FyIGbDtnIgYXR0IG5hbW5nZSBpbmNoZWNrbmluZ2FyIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjMyCisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE2CiBtc2dpZCAib25seSB1c2UgcmVmcyBtYXRjaGluZyA8cGF0dGVybj4iCiBtc2dzdHIgImFudsOkbmQgZW5kYXN0IHJlZmVyZW5zZXIgc29tIG1vdHN2YXJhciA8bcO2bnN0ZXI+IgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjM0CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE4CiBtc2dpZCAibGlzdCBhbGwgY29tbWl0cyByZWFjaGFibGUgZnJvbSBhbGwgcmVmcyIKIG1zZ3N0ciAibGlzdGEgYWxsYSBpbmNoZWNrbmluZ2FyIHNvbSBrYW4gbsOlcyBhbGxhIHJlZmVyZW5zZXIiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzUKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTkKIG1zZ2lkICJyZWFkIGZyb20gc3RkaW4iCiBtc2dzdHIgImzDpHMgZnLDpW4gc3RhbmRhcmQgaW4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzYKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMjAKIG1zZ2lkICJhbGxvdyB0byBwcmludCBgdW5kZWZpbmVkYCBuYW1lcyIKIG1zZ3N0ciAidGlsbMOldCBhdHQgc2tyaXZhIFwib2RlZmluaWVyYWRlXCIgbmFtbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzI2Cittc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbiB0aGUgaW5wdXQgKGludGVybmFsIHVzZSkiCittc2dzdHIgImF2cmVmZXJlcmEgdGFnZ2FyIGkgaW5kYXRhIChhbnbDpG5kcyBpbnRlcm50KSIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjI0CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gW2xpc3QgWzxvYmplY3Q+XV0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPGFudGVja25pbmdzcmVmPl0gW2xpc3QgWzxvYmpla3Q+XV0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNworIzogYnVpbHRpbi9ub3Rlcy5jOjI1CiBtc2dpZCAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGFkZCBbLWZdIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCkBAIC02Njk3LDEyICs2OTQ4LDEyIEBACiAiZ2l0IG5vdGVzIFstLXJlZiA8YW50ZWNrbmluZ3NyZWY+XSBhZGQgWy1mXSBbLW0gPG1lZGQ+IHwgLUYgPGZpbD4gfCAoLWMgfCAtIgogIkMpIDxvYmpla3Q+XSBbPG9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNgogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGNvcHkgWy1mXSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgogbXNnc3RyICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8YW50ZWNrbmluZ3NyZWY+XSBjb3B5IFstZl0gPGZyw6VuLW9iamVrdD4gPHRpbGwtb2JqZWt0PiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5CisjOiBidWlsdGluL25vdGVzLmM6MjcKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYXBwZW5kIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCkBAIC02NzEwLDIyMSArNjk2MSwyMDAgQEAKICJnaXQgbm90ZXMgWy0tcmVmIDxhbnRlY2tuaW5nc3JlZj5dIGFwcGVuZCBbLW0gPG1lZGQ+IHwgLUYgPGZpbD4gfCAoLWMgfCAtQykgIgogIjxvYmpla3Q+XSBbPG9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGVkaXQgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8YW50ZWNrbmluZ3NyZWY+XSBlZGl0IFs8b2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMQorIzogYnVpbHRpbi9ub3Rlcy5jOjI5CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gc2hvdyBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxhbnRlY2tuaW5nc3JlZj5dIHNob3cgWzxvYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjMyCisjOiBidWlsdGluL25vdGVzLmM6MzAKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gbWVyZ2UgWy12IHwgLXFdIFstcyA8c3RyYXRlZ3k+IF0gPG5vdGVzX3JlZj4iCiBtc2dzdHIgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxhbnRlY2tuaW5nc3JlZj5dIG1lcmdlIFstdiB8IC1xXSBbLXMgPHN0cmF0ZWdpPiBdICIKICI8YW50ZWNrbmluZ3NyZWY+IgogCi0jOiBidWlsdGluL25vdGVzLmM6MzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMQogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbLXYgfCAtcV0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbLXYgfCAtcV0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNAorIzogYnVpbHRpbi9ub3Rlcy5jOjMyCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWy12IHwgLXFdIgogbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNQorIzogYnVpbHRpbi9ub3Rlcy5jOjMzCiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcmVtb3ZlIFs8b2JqZWN0Pi4uLl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPGFudGVja25pbmdzcmVmPl0gcmVtb3ZlIFs8b2JqZWt0Pi4uLl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNgorIzogYnVpbHRpbi9ub3Rlcy5jOjM0CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcHJ1bmUgWy1uIHwgLXZdIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxhbnRlY2tuaW5nc3JlZj5dIHBydW5lIFstbiB8IC12XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM3CisjOiBidWlsdGluL25vdGVzLmM6MzUKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBnZXQtcmVmIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxhbnRlY2tuaW5nc3JlZj5dIGdldC1yZWYiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo0MgorIzogYnVpbHRpbi9ub3Rlcy5jOjQwCiBtc2dpZCAiZ2l0IG5vdGVzIFtsaXN0IFs8b2JqZWN0Pl1dIgogbXNnc3RyICJnaXQgbm90ZXMgW2xpc3QgWzxvYmpla3Q+XV0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo0NworIzogYnVpbHRpbi9ub3Rlcy5jOjQ1CiBtc2dpZCAiZ2l0IG5vdGVzIGFkZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgYWRkIFs8ZmxhZ2dvcj5dIFs8b2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MgorIzogYnVpbHRpbi9ub3Rlcy5jOjUwCiBtc2dpZCAiZ2l0IG5vdGVzIGNvcHkgWzxvcHRpb25zPl0gPGZyb20tb2JqZWN0PiA8dG8tb2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGNvcHkgWzxmbGFnZ29yPl0gPGZyw6VuLW9iamVrdD4gPHRpbGwtb2JqZWt0PiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzCisjOiBidWlsdGluL25vdGVzLmM6NTEKIG1zZ2lkICJnaXQgbm90ZXMgY29weSAtLXN0ZGluIFs8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+XS4uLiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGNvcHkgLS1zdGRpbiBbPGZyw6VuLW9iamVrdD4gPHRpbGwtb2JqZWt0Pl0uLi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2CiBtc2dpZCAiZ2l0IG5vdGVzIGFwcGVuZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgYXBwZW5kIFs8ZmxhZ2dvcj5dIFs8b2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MworIzogYnVpbHRpbi9ub3Rlcy5jOjYxCiBtc2dpZCAiZ2l0IG5vdGVzIGVkaXQgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGVkaXQgWzxvYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY4CisjOiBidWlsdGluL25vdGVzLmM6NjYKIG1zZ2lkICJnaXQgbm90ZXMgc2hvdyBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgc2hvdyBbPG9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MQogbXNnaWQgImdpdCBub3RlcyBtZXJnZSBbPG9wdGlvbnM+XSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIFs8ZmxhZ2dvcj5dIDxhbnRlY2tuaW5nc3JlZj4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjcyCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFs8b3B0aW9ucz5dIgogbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWzxmbGFnZ29yPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjczCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFs8ZmxhZ2dvcj5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3OAogbXNnaWQgImdpdCBub3RlcyByZW1vdmUgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIHJlbW92ZSBbPG9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4MwogbXNnaWQgImdpdCBub3RlcyBwcnVuZSBbPG9wdGlvbnM+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIHBydW5lIFs8ZmxhZ2dvcj5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4OAogbXNnaWQgImdpdCBub3RlcyBnZXQtcmVmIgogbXNnc3RyICJnaXQgbm90ZXMgZ2V0LXJlZiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEzOQorIzogYnVpbHRpbi9ub3Rlcy5jOjEzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gc3RhcnQgJ3Nob3cnIGZvciBvYmplY3QgJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBzdGFydGEgXCJzaG93XCIgZsO2ciBvYmpla3RldCBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNDEKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCAnc2hvdycgb3V0cHV0IgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhIHV0ZGF0YSBmcsOlbiBcInNob3dcIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE1MQorIzogYnVpbHRpbi9ub3Rlcy5jOjE0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gZmluaXNoICdzaG93JyBmb3Igb2JqZWN0ICclcyciCiBtc2dzdHIgImt1bmRlIGludGUgYXZzbHV0YSBcInNob3dcIiBmw7ZyIG9iamVrdGV0IFwiJXNcIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE2OSBidWlsdGluL3RhZy5jOjM0MQorIzogYnVpbHRpbi9ub3Rlcy5jOjE2NyBidWlsdGluL3RhZy5jOjM0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGZpbGUgJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza2FwYSBmaWxlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxODgKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxODYKIG1zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBub3RlIGNvbnRlbnRzIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24iCiBtc2dzdHIgIkFuZ2UgaW5uZWjDpWxsIGbDtnIgYW50ZWNrbmluZ2VuIG1lZCBhbnRpbmdlbiAtbSBlbGxlciAtRiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIwOSBidWlsdGluL25vdGVzLmM6OTcyCisjOiBidWlsdGluL25vdGVzLmM6MjA3IGJ1aWx0aW4vbm90ZXMuYzo4NDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3Zpbmcgbm90ZSBmb3Igb2JqZWN0ICVzXG4iCiBtc2dzdHIgIlRhciBib3J0IGFudGVja25pbmcgZsO2ciBvYmpla3RldCAlc1xuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjE0CisjOiBidWlsdGluL25vdGVzLmM6MjEyCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5vdGUgb2JqZWN0IgogbXNnc3RyICJrdW5kZSBpbnRlIHNrcml2YSBhbnRlY2tuaW5nc29iamVrdCIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjIxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgbm90ZSBjb250ZW50cyBoYXMgYmVlbiBsZWZ0IGluICVzIgogbXNnc3RyICJBbnRlY2tuaW5nZW5zIGlubmVow6VsbCBoYXIgbMOkbW5hdHMga3ZhciBpICVzIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjUwIGJ1aWx0aW4vdGFnLmM6NTQwCisjOiBidWlsdGluL25vdGVzLmM6MjQ4IGJ1aWx0aW4vdGFnLmM6NTQwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICclcyciCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgXCIlc1wiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjUyIGJ1aWx0aW4vdGFnLmM6NTQzCisjOiBidWlsdGluL25vdGVzLmM6MjUwIGJ1aWx0aW4vdGFnLmM6NTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuIG9yIHJlYWQgJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSDDtnBwbmEgZWxsZXIgbMOkc2EgXCIlc1wiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjcxIGJ1aWx0aW4vbm90ZXMuYzo0NDQgYnVpbHRpbi9ub3Rlcy5jOjQ0NgotIzogYnVpbHRpbi9ub3Rlcy5jOjUwNiBidWlsdGluL25vdGVzLmM6NTYwIGJ1aWx0aW4vbm90ZXMuYzo2NDMKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NDggYnVpbHRpbi9ub3Rlcy5jOjcyMyBidWlsdGluL25vdGVzLmM6NzY1Ci0jOiBidWlsdGluL25vdGVzLmM6OTY3IGJ1aWx0aW4vdGFnLmM6NTU2CisjOiBidWlsdGluL25vdGVzLmM6MjY5IGJ1aWx0aW4vbm90ZXMuYzozMTYgYnVpbHRpbi9ub3Rlcy5jOjMxOAorIzogYnVpbHRpbi9ub3Rlcy5jOjM3OCBidWlsdGluL25vdGVzLmM6NDMyIGJ1aWx0aW4vbm90ZXMuYzo1MTUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MjAgYnVpbHRpbi9ub3Rlcy5jOjU5NSBidWlsdGluL25vdGVzLmM6NjM3CisjOiBidWlsdGluL25vdGVzLmM6ODM5IGJ1aWx0aW4vdGFnLmM6NTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZWYuIgogbXNnc3RyICJLdW5kZSBpbnRlIHNsw6UgdXBwIFwiJXNcIiBzb20gZW4gZ2lsdGlnIHJlZmVyZW5zLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjI3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVhZCBvYmplY3QgJyVzJy4iCiBtc2dzdHIgIkt1bmRlIGludGUgbMOkc2Egb2JqZWt0ZXQgXCIlc1wiLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5OAotbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKLW1zZ3N0ciAiS2FuIGludGUgY2hlY2thIGluIG9pbml0aWVyYXQvb3JlZmVyZXJhdCBhbnRlY2tuaW5nc3Ryw6RkIgotCi0jOiBidWlsdGluL25vdGVzLmM6MzM5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIKLW1zZ3N0ciAiRmVsYWt0aWd0IHbDpHJkZSBmw7ZyIG5vdGVzLnJld3JpdGVNb2RlOiAnJXMnIgotCi0jOiBidWlsdGluL25vdGVzLmM6MzQ5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgotbXNnc3RyICJWw6RncmFyIHNrcml2YSDDtnZlciBhbnRlY2tuaW5nYXIgaSAlcyAodXRhbmbDtnIgcmVmcy9ub3Rlcy8pIgotCi0jLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIGlzIHRoZSBuYW1lIG9mIHRoZQotIy4gZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBzZWNvbmQgJXMgaXMgaXRzIHZhbHVlCi0jOiBidWlsdGluL25vdGVzLmM6Mzc2Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkJhZCAlcyB2YWx1ZTogJyVzJyIKLW1zZ3N0ciAiRmVsYWt0aWd0IHbDpHJkZSBww6UgJXM6IFwiJXNcIiIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjQ0MAorIzogYnVpbHRpbi9ub3Rlcy5jOjMxMgogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgaW5wdXQgbGluZTogJyVzJy4iCiBtc2dzdHIgIkZlbGFrdGlnIGluZGF0YXJhZDogXCIlc1wiLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ1NQorIzogYnVpbHRpbi9ub3Rlcy5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY29weSBub3RlcyBmcm9tICclcycgdG8gJyVzJyIKIG1zZ3N0ciAiTWlzc2x5Y2thZGVzIGtvcGllcmEgYW50ZWNrbmluZ2FyIGZyw6VuIFwiJXNcIiB0aWxsIFwiJXNcIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NTUzIGJ1aWx0aW4vbm90ZXMuYzo2MjYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzggYnVpbHRpbi9ub3Rlcy5jOjcxMSBidWlsdGluL25vdGVzLmM6NzU4Ci0jOiBidWlsdGluL25vdGVzLmM6MTAzMgorIzogYnVpbHRpbi9ub3Rlcy5jOjM3MSBidWlsdGluL25vdGVzLmM6NDI1IGJ1aWx0aW4vbm90ZXMuYzo0OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MTAgYnVpbHRpbi9ub3Rlcy5jOjU4MyBidWlsdGluL25vdGVzLmM6NjMwCisjOiBidWlsdGluL25vdGVzLmM6OTA0CiBtc2dpZCAidG9vIG1hbnkgcGFyYW1ldGVycyIKIG1zZ3N0ciAiZsO2ciBtw6VuZ2EgcGFyYW1ldHJhciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUxMiBidWlsdGluL25vdGVzLmM6NzcxCisjOiBidWlsdGluL25vdGVzLmM6Mzg0IGJ1aWx0aW4vbm90ZXMuYzo2NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbm90ZSBmb3VuZCBmb3Igb2JqZWN0ICVzLiIKIG1zZ3N0ciAiSW5nYSBhbnRlY2tuaW5nYXIgaGl0dGFkZXMgZsO2ciBvYmpla3RldCAlcy4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzQgYnVpbHRpbi9ub3Rlcy5jOjY5MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQwNiBidWlsdGluL25vdGVzLmM6NTYzCiBtc2dpZCAibm90ZSBjb250ZW50cyBhcyBhIHN0cmluZyIKIG1zZ3N0ciAiYW50ZWNrbmluZ3Npbm5laMOlbGwgc29tIHN0csOkbmciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzcgYnVpbHRpbi9ub3Rlcy5jOjY5NAorIzogYnVpbHRpbi9ub3Rlcy5jOjQwOSBidWlsdGluL25vdGVzLmM6NTY2CiBtc2dpZCAibm90ZSBjb250ZW50cyBpbiBhIGZpbGUiCiBtc2dzdHIgImFudGVja25pbmdzaW5uZWjDpWxsIGkgZW4gZmlsIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTM5IGJ1aWx0aW4vbm90ZXMuYzo1NDIgYnVpbHRpbi9ub3Rlcy5jOjY5NgotIzogYnVpbHRpbi9ub3Rlcy5jOjY5OSBidWlsdGluL3RhZy5jOjQ3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjQxMSBidWlsdGluL25vdGVzLmM6NDE0IGJ1aWx0aW4vbm90ZXMuYzo1NjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NzEgYnVpbHRpbi90YWcuYzo0NzQKIG1zZ2lkICJvYmplY3QiCiBtc2dzdHIgIm9iamVrdCIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0MCBidWlsdGluL25vdGVzLmM6Njk3CisjOiBidWlsdGluL25vdGVzLmM6NDEyIGJ1aWx0aW4vbm90ZXMuYzo1NjkKIG1zZ2lkICJyZXVzZSBhbmQgZWRpdCBzcGVjaWZpZWQgbm90ZSBvYmplY3QiCiBtc2dzdHIgIsOldGVyYW52w6RuZCBvY2ggcmVkaWdlcmEgYW5naXZldCBhbnRlY2tuaW5nc29iamVrdCIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0MyBidWlsdGluL25vdGVzLmM6NzAwCisjOiBidWlsdGluL25vdGVzLmM6NDE1IGJ1aWx0aW4vbm90ZXMuYzo1NzIKIG1zZ2lkICJyZXVzZSBzcGVjaWZpZWQgbm90ZSBvYmplY3QiCiBtc2dzdHIgIsOldGVyYW52w6RuZCBhbmdpdmV0IGFudGVja25pbmdzb2JqZWt0IgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQ1IGJ1aWx0aW4vbm90ZXMuYzo2MTMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTcgYnVpbHRpbi9ub3Rlcy5jOjQ4NQogbXNnaWQgInJlcGxhY2UgZXhpc3Rpbmcgbm90ZXMiCiBtc2dzdHIgImVyc8OkdHQgYmVmaW50bGlnYSBhbnRlY2tuaW5nYXIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NzkKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCBhZGQgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCkBAIC02OTMzLDI0ICs3MTYzLDI0IEBACiAiS2FuIGludGUgbMOkZ2dhIHRpbGwgYW50ZWNrbmluZ2FyLiBIaXR0YWRlIGJlZmludGxpZ2EgYW50ZWNrbmluZ2FyIGbDtnIgIgogIm9iamVrdGV0ICVzLiBBbnbDpG5kIFwiLWZcIiBmw7ZyIGF0dCBza3JpdmEgw7Z2ZXIgYmVmaW50bGlnYSBhbnRlY2tuaW5nYXIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1ODQgYnVpbHRpbi9ub3Rlcy5jOjY2MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQ1NiBidWlsdGluL25vdGVzLmM6NTMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk92ZXJ3cml0aW5nIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXNcbiIKIG1zZ3N0ciAiU2tyaXZlciDDtnZlciBiZWZpbnRsaWdhIGFudGVja25pbmdhciBmw7ZyIG9iamVrdGV0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODYKIG1zZ2lkICJyZWFkIG9iamVjdHMgZnJvbSBzdGRpbiIKIG1zZ3N0ciAibMOkcyBvYmpla3QgZnLDpW4gc3RhbmRhcmQgaW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODgKIG1zZ2lkICJsb2FkIHJld3JpdGluZyBjb25maWcgZm9yIDxjb21tYW5kPiAoaW1wbGllcyAtLXN0ZGluKSIKIG1zZ3N0ciAibMOkcyBvbXNrcml2bmluZ3NpbnN0w6RsbG5pbmcgZsO2ciA8a29tbWFuZG8+IChpbXBsaWNlcmFyIC0tc3RkaW4pIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjM0CisjOiBidWlsdGluL25vdGVzLmM6NTA2CiBtc2dpZCAidG9vIGZldyBwYXJhbWV0ZXJzIgogbXNnc3RyICJmw7ZyIGbDpSBwYXJhbWV0cmFyIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjU1CisjOiBidWlsdGluL25vdGVzLmM6NTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgY29weSBub3Rlcy4gRm91bmQgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlcy4gVXNlICctZicgdG8gb3ZlcndyaXRlICIKQEAgLTY5NTksMTIgKzcxODksMTIgQEAKICJLYW4gaW50ZSBrb3BpZXJhIGFudGVja25pbmdhci4gSGl0dGFkZSBiZWZpbnRsaWdhIGFudGVja25pbmdhciBmw7ZyIG9iamVrdGV0ICIKICIlcy4gQW52w6RuZCBcIi1mXCIgZsO2ciBhdHQgc2tyaXZhIMO2dmVyIGJlZmludGxpZ2EgYW50ZWNrbmluZ2FyIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjY3CisjOiBidWlsdGluL25vdGVzLmM6NTM5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1pc3Npbmcgbm90ZXMgb24gc291cmNlIG9iamVjdCAlcy4gQ2Fubm90IGNvcHkuIgogbXNnc3RyICJBbnRlY2tuaW5nYXIgcMOlIGvDpGxsb2JqZWt0ZXQgJXMgc2FrbmFzLiBLYW4gaW50ZSBrb3BpZXJhLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjcxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjU4OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIC1tLy1GLy1jLy1DIG9wdGlvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZSAnZWRpdCcgc3ViY29tbWFuZC5cbiIKQEAgLTY5NzMsMTUgKzcyMDMsMTUgQEAKICJGbGFnZ29ybmEgLW0vLUYvLWMvLUMgcmVrb21tZW5kZXJhcyBpbnRlIGbDtnIgdW5kZXJrb21tYW5kb3QgXCJlZGl0XCIuXG4iCiAiQW52w6RuZCBcImdpdCBub3RlcyBhZGQgLWYgLW0vLUYvLWMvLUNcIiBpc3TDpGxsZXQuXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzUKIG1zZ2lkICJHZW5lcmFsIG9wdGlvbnMiCiBtc2dzdHIgIkFsbG3DpG5uYSBmbGFnZ29yIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY1CisjOiBidWlsdGluL25vdGVzLmM6NzM3CiBtc2dpZCAiTWVyZ2Ugb3B0aW9ucyIKIG1zZ3N0ciAiRmxhZ2dvciBmw7ZyIHNhbW1hbnNsYWduaW5nIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY3CisjOiBidWlsdGluL25vdGVzLmM6NzM5CiBtc2dpZCAiIgogInJlc29sdmUgbm90ZXMgY29uZmxpY3RzIHVzaW5nIHRoZSBnaXZlbiBzdHJhdGVneSAobWFudWFsL291cnMvdGhlaXJzL3VuaW9uLyIKICJjYXRfc29ydF91bmlxKSIKQEAgLTY5ODksNDYgKzcyMTksNDYgQEAKICJsw6RzIGtvbmZsaWt0ZXIgaSBhbnRlY2tuaW5nYXIgbWVkIGFuZ2l2ZW4gc3RyYXRlZ2kgKG1hbnVhbC9vdXJzL3RoZWlycy91bmlvbi8iCiAiY2F0X3NvcnRfdW5pcSkiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjkKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDEKIG1zZ2lkICJDb21taXR0aW5nIHVubWVyZ2VkIG5vdGVzIgogbXNnc3RyICJDaGVja2FyIGluIGVqIHNhbW1hbnNsYWduYSBhbnRlY2tuaW5nYXIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDMKIG1zZ2lkICJmaW5hbGl6ZSBub3RlcyBtZXJnZSBieSBjb21taXR0aW5nIHVubWVyZ2VkIG5vdGVzIgogbXNnc3RyICIiCiAiZsOkcmRpZ3N0w6RsbCBzYW1tYW5zbGFnbmluZyBhdiBhbnRlY2tuaW5nYXIgZ2Vub20gYXR0IGNoZWNrYSBpbiBlaiAiCiAic2FtbWFuc2xhZ25hIGFudGVja25pbmdhciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3MworIzogYnVpbHRpbi9ub3Rlcy5jOjc0NQogbXNnaWQgIkFib3J0aW5nIG5vdGVzIG1lcmdlIHJlc29sdXRpb24iCiBtc2dzdHIgIkF2YnJ5dCBsw7ZzbmluZyBhdiBzYW1tYW5zbGFnbmluZyBhdiBhbnRlY2tuaW5nYXIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDcKIG1zZ2lkICJhYm9ydCBub3RlcyBtZXJnZSIKIG1zZ3N0ciAiYXZicnl0IHNhbW1hbnNsYWduaW5nIGF2IGFudGVja25pbmdhciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk3MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJPYmplY3QgJXMgaGFzIG5vIG5vdGVcbiIKIG1zZ3N0ciAiT2JqZWt0ZXQgJXMgaGFyIGluZ2VuIGFudGVja25pbmdcbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk4MgorIzogYnVpbHRpbi9ub3Rlcy5jOjg1NAogbXNnaWQgImF0dGVtcHQgdG8gcmVtb3ZlIG5vbi1leGlzdGVudCBub3RlIGlzIG5vdCBhbiBlcnJvciIKIG1zZ3N0ciAiZsO2cnPDtmsgYXR0IHRhIGJvcnQgaWNrZS1leGlzdGVyYW5kZSBhbnRlY2tuaW5nYXIgw6RyIGludGUgZXR0IGZlbCIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk4NQorIzogYnVpbHRpbi9ub3Rlcy5jOjg1NwogbXNnaWQgInJlYWQgb2JqZWN0IG5hbWVzIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJsw6RzIG9iamVrdG5hbW4gZnLDpW4gc3RhbmRhcmQgaW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDY2CisjOiBidWlsdGluL25vdGVzLmM6OTM4CiBtc2dpZCAibm90ZXNfcmVmIgogbXNnc3RyICJhbnRlY2tuaW5nYXItcmVmIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTA2NworIzogYnVpbHRpbi9ub3Rlcy5jOjkzOQogbXNnaWQgInVzZSBub3RlcyBmcm9tIDxub3Rlc19yZWY+IgogbXNnc3RyICJhbnbDpG5kIGFudGVja25pbmdhciBmcsOlbiA8YW50ZWNrbmluZ3NyZWY+IgogCi0jOiBidWlsdGluL25vdGVzLmM6MTEwMiBidWlsdGluL3JlbW90ZS5jOjE1OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5NzQgYnVpbHRpbi9yZW1vdGUuYzoxNTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gc3ViY29tbWFuZDogJXMiCiBtc2dzdHIgIk9rw6RudCB1bmRlcmtvbW1hbmRvOiAlcyIKQEAgLTcyNjQsNyArNzQ5NCw3IEBACiAiICAgIGdpdCBwdXNoICVzICVzXG4iCiAiJXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEyMQorIzogYnVpbHRpbi9wdXNoLmM6MTE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCkBAIC03Mjc5LDcgKzc1MDksNyBAQAogIlxuIgogIiAgICBnaXQgcHVzaCAlcyBIRUFEOjxuYW1uLXDDpS1masOkcnJncmVuPlxuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCkBAIC03MjkyLDEyICs3NTIyLDEyIEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIC0tc2V0LXVwc3RyZWFtICVzICVzXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzNgorIzogYnVpbHRpbi9wdXNoLmM6MTM5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbXVsdGlwbGUgdXBzdHJlYW0gYnJhbmNoZXMsIHJlZnVzaW5nIHRvIHB1c2guIgogbXNnc3RyICJEZW4gYWt0dWVsbGEgZ3JlbmVuICVzIGhhciBmbGVyYSB1cHBzdHLDtm1zZ3JlbmFyLCB2w6RncmFyIHPDpG5kYS4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzOQorIzogYnVpbHRpbi9wdXNoLmM6MTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIHB1c2hpbmcgdG8gcmVtb3RlICclcycsIHdoaWNoIGlzIG5vdCB0aGUgdXBzdHJlYW0gb2ZcbiIKQEAgLTczMDgsNyArNzUzOCw3IEBACiAiYWt0dWVsbGEgZ3JlbmVuIFwiJXNcIiwgdXRhbiBhdHQgdGFsYSBvbSBmw7ZyIG1pZyB2YWQgc29tXG4iCiAic2thbGwgc8OkbmRhcyBmw7ZyIGF0dCB1cHBkYXRlcmEgZmrDpHJyZ3JlbmVuLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTUxCisjOiBidWlsdGluL3B1c2guYzoxNjUKIG1zZ2lkICIiCiAicHVzaC5kZWZhdWx0IGlzIHVuc2V0OyBpdHMgaW1wbGljaXQgdmFsdWUgaXMgY2hhbmdpbmcgaW5cbiIKICJHaXQgMi4wIGZyb20gJ21hdGNoaW5nJyB0byAnc2ltcGxlJy4gVG8gc3F1ZWxjaCB0aGlzIG1lc3NhZ2VcbiIKQEAgLTczNDIsMjYgKzc1NzIsMjYgQEAKICJsaWtuYW5kZSBsw6RnZXQgXCJjdXJyZW50XCIgaXN0w6RsbGV0IGbDtnIgXCJzaW1wbGVcIiBvbSBkdSBpYmxhbmQgYW52w6RuZGVyXG4iCiAiw6RsZHJlIHZlcnNpb25lciBhdiBHaXQuKSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTk5CisjOiBidWlsdGluL3B1c2guYzoyMjUKIG1zZ2lkICIiCiAiWW91IGRpZG4ndCBzcGVjaWZ5IGFueSByZWZzcGVjcyB0byBwdXNoLCBhbmQgcHVzaC5kZWZhdWx0IGlzIFwibm90aGluZ1wiLiIKIG1zZ3N0ciAiIgogIkR1IGFuZ2F2IGluZ2EgcmVmZXJlbnNzcGVjaWZpa2F0aW9uZXIgYXR0IHPDpG5kYSwgb2NoIHB1c2guZGVmYXVsdCDDpHIgIgogIlwibm90aGluZ1wiLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjA2CisjOiBidWlsdGluL3B1c2guYzoyMzIKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRpcCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGlzIGJlaGluZFxuIgotIml0cyByZW1vdGUgY291bnRlcnBhcnQuIE1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLiAnZ2l0IHB1bGwnKVxuIgotImJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorIml0cyByZW1vdGUgY291bnRlcnBhcnQuIEludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy5cbiIKKyInZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICJVcHBkYXRlcmluZ2FyIGF2dmlzYWRlcyBkw6Ugw6RuZGVuIHDDpSBkaW4gYmVmaW50bGlnYSBncmVuIMOkciBiYWtvbVxuIgotImRlc3MgZmrDpHJybW90c3ZhcmlnaGV0LiBTbMOlIGlob3AgZmrDpHJyw6RuZHJpbmdhcm5hICh0LmV4LiBcImdpdCBwdWxsXCIpXG4iCi0iaW5uYW4gZHUgc8OkbmRlciBpZ2VuLlxuIgorImRlc3MgZmrDpHJybW90c3ZhcmlnaGV0LiBJbnRlZ3JlcmEgZmrDpHJyw6RuZHJpbmdhcm5hICh0LmV4XG4iCisiXCJnaXQgcHVsbCAuLi4uXCIpIGlubmFuIGR1IHPDpG5kZXIgaWdlbi5cbiIKICJTZSBhdnNuaXR0ZXQgXCJOb3RlIGFib3V0IGZhc3QtZm9yd2FyZFwiIGkgXCJnaXQgcHVzaCAtLWhlbHBcIiBmw7ZyIGRldGFsamVyLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjEyCisjOiBidWlsdGluL3B1c2guYzoyMzgKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgogImNvdW50ZXJwYXJ0LiBJZiB5b3UgZGlkIG5vdCBpbnRlbmQgdG8gcHVzaCB0aGF0IGJyYW5jaCwgeW91IG1heSB3YW50IHRvXG4iCkBAIC03Mzc1LDM3ICs3NjA1LDM3IEBACiAiZW5kYXN0XG4iCiAic8OkbmRhIGFrdHVlbGwgZ3Jlbi4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIxOAorIzogYnVpbHRpbi9wdXNoLmM6MjQ0CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKLSJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBtZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKLSIoZS5nLiAnZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCisiKGUuZy4gJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCiAiVXBwZGF0ZXJpbmdhciBhdnZpc2FkZXMgZMOlIMOkbmRlbiBww6UgZW4gZ3JlbiBzb20gc8OkbmRzIGluIMOkciBiYWtvbSBkZXNzXG4iCi0iZmrDpHJybW90c3ZhcmlnaGV0LiBDaGVja2EgdXQgZ3JlbmVuIG9jaCBzbMOlIGlob3AgZmrDpHJyw6RuZHJpbmdhcm5hICh0LmV4LlxuIgotIlwiZ2l0IHB1bGxcIikgaW5uYW4gZHUgc8OkbmRlciBpZ2VuLlxuIgorImZqw6Rycm1vdHN2YXJpZ2hldC4gQ2hlY2thIHV0IGdyZW5lbiBvY2ggaW50ZWdyZXJhIGZqw6RycsOkbmRyaW5nYXJuYSAodC5leC5cbiIKKyJcImdpdCBwdWxsIC4uLlwiKSBpbm5hbiBkdSBzw6RuZGVyIGlnZW4uXG4iCiAiU2UgYXZzbml0dGV0IFwiTm90ZSBhYm91dCBmYXN0LWZvcndhcmRcIiBpIFwiZ2l0IHB1c2ggLS1oZWxwXCIgZsO2ciBkZXRhbGplci4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIyNAorIzogYnVpbHRpbi9wdXNoLmM6MjUwCiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSByZW1vdGUgY29udGFpbnMgd29yayB0aGF0IHlvdSBkb1xuIgogIm5vdCBoYXZlIGxvY2FsbHkuIFRoaXMgaXMgdXN1YWxseSBjYXVzZWQgYnkgYW5vdGhlciByZXBvc2l0b3J5IHB1c2hpbmdcbiIKLSJ0byB0aGUgc2FtZSByZWYuIFlvdSBtYXkgd2FudCB0byBmaXJzdCBtZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy4sXG4iCi0iJ2dpdCBwdWxsJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisidG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorIihlLmcuLCAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICJVcHBkYXRlcmluZ2FyIGF2dmlzYWRlcyBkw6UgZmrDpHJyZW4gaW5uZWjDpWxsZXIgw6RuZHJpbmdhciBzb20gZHUgaW50ZVxuIgogImhhciBsb2thbHQuIERldCBiZXJvciBvZnRhc3QgcMOlIGF0dCBldHQgYW5uYXQgYXJraXYgaGFyIHPDpG50IGluIHNhbW1hXG4iCi0icmVmZXJlbnNlci4gRGV0IGthbiB2YXJhIGVuIGlkw6kgYXR0IGbDtnJzdCBzbMOlIGlob3AgZmrDpHJyw6RuZHJpbmdhcm5hXG4iCi0iKHQuZXguIFwiZ2l0IHB1bGxcIikgaW5uYW4gZHUgc8OkbmRlciBpZ2VuLlxuIgorInJlZmVyZW5zZXIuIERldCBrYW4gdmFyYSBlbiBpZMOpIGF0dCBmw7Zyc3QgaW50ZWdyZXJhIGZqw6RycsOkbmRyaW5nYXJuYVxuIgorIih0LmV4LiBcImdpdCBwdWxsIC4uLlwiKSBpbm5hbiBkdSBzw6RuZGVyIGlnZW4uXG4iCiAiU2UgYXZzbml0dGV0IFwiTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzXCIgaSBcImdpdCBwdXNoIC0taGVscFwiIGbDtnIgZGV0YWxqZXIuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjI1NwogbXNnaWQgIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0YWcgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHJlbW90ZS4iCiBtc2dzdHIgIlVwcGRhdGVyaW5nYXJuYSBhdnZpc2FkZXMgZWZ0ZXJzb20gdGFnZ2VuIHJlZGFuIGZpbm5zIHDDpSBmasOkcnJlbi4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzNAorIzogYnVpbHRpbi9wdXNoLmM6MjYwCiBtc2dpZCAiIgogIllvdSBjYW5ub3QgdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IHBvaW50cyBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIm9yIHVwZGF0ZSBhIHJlbW90ZSByZWYgdG8gbWFrZSBpdCBwb2ludCBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgpAQCAtNzQxNiwyMiArNzY0NiwyMiBAQAogInBla2FyIHDDpSBuw6Vnb3Qgc29tIGludGUgw6RyIGVuIGluY2hlY2tuaW5nLCB1dGFuIGF0dCBhbnbDpG5kYSBmbGFnZ2FuXG4iCiAiXCItLWZvcmNlXCIuXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI5NAorIzogYnVpbHRpbi9wdXNoLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlB1c2hpbmcgdG8gJXNcbiIKIG1zZ3N0ciAiU8OkbmRlciB0aWxsICVzXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI5OAorIzogYnVpbHRpbi9wdXNoLmM6MzI0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBwdXNoIHNvbWUgcmVmcyB0byAnJXMnIgogbXNnc3RyICJtaXNzbHlja2FkZXMgc8OkbmRhIHZpc3NhIHJlZmVyZW5zZXIgdGlsbCBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMzMQorIzogYnVpbHRpbi9wdXNoLmM6MzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCByZXBvc2l0b3J5ICclcyciCiBtc2dzdHIgImZlbGFrdGlndCBhcmtpdiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMzMgorIzogYnVpbHRpbi9wdXNoLmM6MzU4CiBtc2dpZCAiIgogIk5vIGNvbmZpZ3VyZWQgcHVzaCBkZXN0aW5hdGlvbi5cbiIKICJFaXRoZXIgc3BlY2lmeSB0aGUgVVJMIGZyb20gdGhlIGNvbW1hbmQtbGluZSBvciBjb25maWd1cmUgYSByZW1vdGUgIgpAQCAtNzQ1Miw4NyArNzY4Miw4NyBAQAogIlxuIgogIiAgICBnaXQgcHVzaCA8bmFtbj5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ3CisjOiBidWlsdGluL3B1c2guYzozNzMKIG1zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tYWxsIG9jaCAtLXRhZ3Mgw6RyIGlua29tcGF0aWJsYSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ4CisjOiBidWlsdGluL3B1c2guYzozNzQKIG1zZ2lkICItLWFsbCBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICItLWFsbCBrYW4gaW50ZSBrb21iaW5lcmFzIG1lZCByZWZlcmVuc3NwZWNpZmlrYXRpb25lciIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzUzCisjOiBidWlsdGluL3B1c2guYzozNzkKIG1zZ2lkICItLW1pcnJvciBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tbWlycm9yIG9jaCAtLXRhZ3Mgw6RyIGlua29tcGF0aWJsYSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzU0CisjOiBidWlsdGluL3B1c2guYzozODAKIG1zZ2lkICItLW1pcnJvciBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICItLW1pcnJvciBrYW4gaW50ZSBrb21iaW5lcmFzIG1lZCByZWZlcmVuc3NwZWNpZmlrYXRpb25lciIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzU5CisjOiBidWlsdGluL3B1c2guYzozODUKIG1zZ2lkICItLWFsbCBhbmQgLS1taXJyb3IgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1hbGwgb2NoIC0tbWlycm9yIMOkciBpbmtvbXBhdGlibGEiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQxOQorIzogYnVpbHRpbi9wdXNoLmM6NDQ1CiBtc2dpZCAicmVwb3NpdG9yeSIKIG1zZ3N0ciAiYXJraXYiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMAorIzogYnVpbHRpbi9wdXNoLmM6NDQ2CiBtc2dpZCAicHVzaCBhbGwgcmVmcyIKIG1zZ3N0ciAic8OkbmQgYWxsYSByZWZlcmVuc2VyIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NwogbXNnaWQgIm1pcnJvciBhbGwgcmVmcyIKIG1zZ3N0ciAic3BlZ2xhIGFsbGEgcmVmZXJlbnNlciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIzCisjOiBidWlsdGluL3B1c2guYzo0NDkKIG1zZ2lkICJkZWxldGUgcmVmcyIKIG1zZ3N0ciAidGEgYm9ydCByZWZlcmVuc2VyIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAogbXNnaWQgInB1c2ggdGFncyAoY2FuJ3QgYmUgdXNlZCB3aXRoIC0tYWxsIG9yIC0tbWlycm9yKSIKIG1zZ3N0ciAic8OkbmQgdGFnZ2FyIChrYW4gaW50ZSBhbnbDpG5kYXMgbWVkIC0tYWxsIGVsbGVyIC0tbWlycm9yKSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI3CisjOiBidWlsdGluL3B1c2guYzo0NTMKIG1zZ2lkICJmb3JjZSB1cGRhdGVzIgogbXNnc3RyICJ0dmluZ2EgdXBwZGF0ZXJpbmdhciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI4CisjOiBidWlsdGluL3B1c2guYzo0NTQKIG1zZ2lkICJjaGVjayIKIG1zZ3N0ciAia29udHJvbGxlcmEiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyOQorIzogYnVpbHRpbi9wdXNoLmM6NDU1CiBtc2dpZCAiY29udHJvbCByZWN1cnNpdmUgcHVzaGluZyBvZiBzdWJtb2R1bGVzIgogbXNnc3RyICJzdHlyIHJla3Vyc2l2IGluc8OkbmRuaW5nIGF2IHVuZGVybW9kdWxlciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDMxCisjOiBidWlsdGluL3B1c2guYzo0NTcKIG1zZ2lkICJ1c2UgdGhpbiBwYWNrIgogbXNnc3RyICJhbnbDpG5kIHR1bm5hIHBha2V0IgogCi0jOiBidWlsdGluL3B1c2guYzo0MzIgYnVpbHRpbi9wdXNoLmM6NDMzCisjOiBidWlsdGluL3B1c2guYzo0NTggYnVpbHRpbi9wdXNoLmM6NDU5CiBtc2dpZCAicmVjZWl2ZSBwYWNrIHByb2dyYW0iCiBtc2dzdHIgInByb2dyYW0gZsO2ciBhdHQgdGEgZW1vdCBwYWtldCIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM0CisjOiBidWlsdGluL3B1c2guYzo0NjAKIG1zZ2lkICJzZXQgdXBzdHJlYW0gZm9yIGdpdCBwdWxsL3N0YXR1cyIKIG1zZ3N0ciAic3TDpGxsIGluIHVwcHN0csO2bSBmw7ZyIGdpdCBwdWxsL3N0YXR1cyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM3CisjOiBidWlsdGluL3B1c2guYzo0NjMKIG1zZ2lkICJwcnVuZSBsb2NhbGx5IHJlbW92ZWQgcmVmcyIKIG1zZ3N0ciAidGEgYm9ydCBsb2thbHQgYm9ydHRhZ25hIHJlZmVyZW5zZXIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzOQorIzogYnVpbHRpbi9wdXNoLmM6NDY1CiBtc2dpZCAiYnlwYXNzIHByZS1wdXNoIGhvb2siCiBtc2dzdHIgImbDtnJiaWfDpSBwcmUtcHVzaC1rcm9rIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgogbXNnaWQgInB1c2ggbWlzc2luZyBidXQgcmVsZXZhbnQgdGFncyIKIG1zZ3N0ciAic8OkbmQgaW4gc2FrbmFkZSBtZW4gcmVsZXZhbnRhIHRhZ2dhciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUwCisjOiBidWlsdGluL3B1c2guYzo0NzYKIG1zZ2lkICItLWRlbGV0ZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFsbCwgLS1taXJyb3IgYW5kIC0tdGFncyIKIG1zZ3N0ciAiLS1kZWxldGUgw6RyIGlta29tcGF0aWJlbCBtZWQgLS1hbGwsIC0tbWlycm9yIG9jaCAtLXRhZ3MiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MgorIzogYnVpbHRpbi9wdXNoLmM6NDc4CiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIi0tZGVsZXRlIGthbiBpbnRlIGFudsOkbmRhcyB1dGFuIHJlZmVyZW5zZXIiCiAKQEAgLTc1NDYsNzAgKzc3NzYsODAgQEAKICJbLXUgWy0tZXhjbHVkZS1wZXItZGlyZWN0b3J5PTxnaXRpZ25vcmU+XSB8IC1pXV0gWy0tbm8tc3BhcnNlLWNoZWNrb3V0XSBbLS0iCiAiaW5kZXgtb3V0cHV0PTxmaWw+XSAoLS1lbXB0eSB8IDx0csOkZC1pZ3QxPiBbPHRyw6RkLWlndDI+IFs8dHLDpGQtaWd0Mz5dXSkiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEwOQogbXNnaWQgIndyaXRlIHJlc3VsdGluZyBpbmRleCB0byA8ZmlsZT4iCiBtc2dzdHIgInNrcml2IHJlc3VsdGVyYW5kZSBpbmRleCB0aWxsIDxmaWw+IgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTIKIG1zZ2lkICJvbmx5IGVtcHR5IHRoZSBpbmRleCIKIG1zZ3N0ciAidMO2bSBiYXJhIGluZGV4ZXQiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNAogbXNnaWQgIk1lcmdpbmciCiBtc2dzdHIgIlNhbW1hbnNsYWduaW5nIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTYKIG1zZ2lkICJwZXJmb3JtIGEgbWVyZ2UgaW4gYWRkaXRpb24gdG8gYSByZWFkIgogbXNnc3RyICJ1dGbDtnIgZW4gc2FtbWFuc2xhZ25pbmcgaSB0aWxsw6RnZyB0aWxsIGVuIGzDpHNuaW5nIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTgKIG1zZ2lkICIzLXdheSBtZXJnZSBpZiBubyBmaWxlIGxldmVsIG1lcmdpbmcgcmVxdWlyZWQiCiBtc2dzdHIgIjMtdsOkZ3NzYW1tYW5zbGFnbmluZyBvbSBzYW1tYW5zbGFnbmluZyBww6UgZmlsbml2w6UgZWoga3LDpHZzIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExOQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjAKIG1zZ2lkICIzLXdheSBtZXJnZSBpbiBwcmVzZW5jZSBvZiBhZGRzIGFuZCByZW1vdmVzIgogbXNnc3RyICIzLXbDpGdzc2FtbWFuc2xhZ25pbmcgbsOkciBkZXQgZmlubnMgdGlsbMOkZ2cgb2NoIGJvcnR0YWduaW5nYXIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIxCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMgogbXNnaWQgInNhbWUgYXMgLW0sIGJ1dCBkaXNjYXJkIHVubWVyZ2VkIGVudHJpZXMiCiBtc2dzdHIgInNvbSAtbSwgbWVuIGthc3RhIGJvcnQgZWogc2FtbWFuc2xhZ25hIHBvc3RlciIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjIKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIzCiBtc2dpZCAiPHN1YmRpcmVjdG9yeT4vIgogbXNnc3RyICI8dW5kZXJrYXRhbG9nPi8iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNAogbXNnaWQgInJlYWQgdGhlIHRyZWUgaW50byB0aGUgaW5kZXggdW5kZXIgPHN1YmRpcmVjdG9yeT4vIgogbXNnc3RyICJsw6RzIGluIHRyw6RkZXQgaSBpbmRleGV0IHVuZGVyIDx1bmRlcmthdGFsb2c+LyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjYKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI3CiBtc2dpZCAidXBkYXRlIHdvcmtpbmcgdHJlZSB3aXRoIG1lcmdlIHJlc3VsdCIKIG1zZ3N0ciAidXBwZGF0ZXJhIGFyYmV0c2thdGFsb2dlbiBtZWQgcmVzdWx0YXRldCBmcsOlbiBzYW1tYW5zbGFnbmluZ2VuIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOAorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjkKIG1zZ2lkICJnaXRpZ25vcmUiCiBtc2dzdHIgImdpdGlnbm9yZSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjkKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMwCiBtc2dpZCAiYWxsb3cgZXhwbGljaXRseSBpZ25vcmVkIGZpbGVzIHRvIGJlIG92ZXJ3cml0dGVuIgogbXNnc3RyICJ0aWxsw6V0IGV4cGxpY2l0IGlnbm9yZXJhZGUgZmlsZXIgYXR0IHNrcml2YXMgw7Z2ZXIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMyCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMwogbXNnaWQgImRvbid0IGNoZWNrIHRoZSB3b3JraW5nIHRyZWUgYWZ0ZXIgbWVyZ2luZyIKIG1zZ3N0ciAia29udHJvbGxlcmEgaW50ZSBhcmJldHNrYXRhbG9nZW4gZWZ0ZXIgc2FtbWFuc2xhZ25pbmciCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNAogbXNnaWQgImRvbid0IHVwZGF0ZSB0aGUgaW5kZXggb3IgdGhlIHdvcmsgdHJlZSIKIG1zZ3N0ciAidXBwZGF0ZXJhIGludGUgaW5kZXhldCBlbGxlciBhcmJldHNrYXRhbG9nZW4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNgogbXNnaWQgInNraXAgYXBwbHlpbmcgc3BhcnNlIGNoZWNrb3V0IGZpbHRlciIKIG1zZ3N0ciAiaG9wcGEgw7Z2ZXIgYXR0IGFwcGxpY2VyYSBmaWx0ZXIgZsO2ciBnbGVzIHV0Y2hlY2tuaW5nIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzgKIG1zZ2lkICJkZWJ1ZyB1bnBhY2stdHJlZXMiCiBtc2dzdHIgImZlbHPDtmsgdW5wYWNrLXRyZWVzIgogCisjOiBidWlsdGluL3JlZmxvZy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlcycgZm9yICclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgorbXNnc3RyICJcIiVzXCIgZsO2ciBcIiVzXCIgw6RyIGludGUgZW4gZ2lsdGlnIHRpZHNzdMOkbXBlbCIKKworIzogYnVpbHRpbi9yZWZsb2cuYzo2MTYgYnVpbHRpbi9yZWZsb2cuYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCittc2dzdHIgIlwiJXNcIiDDpHIgaW50ZSBlbiBnaWx0aWcgdGlkc3N0w6RtcGVsIgorCiAjOiBidWlsdGluL3JlbW90ZS5jOjExCiBtc2dpZCAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIgogbXNnc3RyICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0iCkBAIC04MTgzLDk2ICs4NDIzLDk2IEBACiBtc2dpZCAiRmFpbGVkIHRvIGZpbmQgdHJlZSBvZiAlcy4iCiBtc2dzdHIgIkt1bmRlIGludGUgaGl0dGEgdHLDpGRlciBmw7ZyICVzLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjk4CisjOiBidWlsdGluL3Jlc2V0LmM6OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiSEVBRCBpcyBub3cgYXQgJXMiCiBtc2dzdHIgIkhFQUQgw6RyIG51IHDDpSAlcyIKIAotIzogYnVpbHRpbi9yZXNldC5jOjE2OQorIzogYnVpbHRpbi9yZXNldC5jOjE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gYSAlcyByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UuIgogbXNnc3RyICJLYW4gaW50ZSB1dGbDtnJhIGVuICVzIMOldGVyc3TDpGxsbmluZyBtaXR0IGkgZW4gc2FtbWFuc2xhZ25pbmcuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjQ4CisjOiBidWlsdGluL3Jlc2V0LmM6MjUxCiBtc2dpZCAiYmUgcXVpZXQsIG9ubHkgcmVwb3J0IGVycm9ycyIKIG1zZ3N0ciAidmFyIHR5c3QsIHJhcHBvcnRlcmEgZW5kYXN0IGZlbCIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MAorIzogYnVpbHRpbi9yZXNldC5jOjI1MwogbXNnaWQgInJlc2V0IEhFQUQgYW5kIGluZGV4IgogbXNnc3RyICLDpXRlcnN0w6RsbCBIRUFEIG9jaCBpbmRleCIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MQorIzogYnVpbHRpbi9yZXNldC5jOjI1NAogbXNnaWQgInJlc2V0IG9ubHkgSEVBRCIKIG1zZ3N0ciAiw6V0ZXJzdMOkbGwgZW5kYXN0IEhFQUQiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMgYnVpbHRpbi9yZXNldC5jOjI1NQorIzogYnVpbHRpbi9yZXNldC5jOjI1NiBidWlsdGluL3Jlc2V0LmM6MjU4CiBtc2dpZCAicmVzZXQgSEVBRCwgaW5kZXggYW5kIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiw6V0ZXJzdMOkbGwgSEVBRCwgaW5kZXggb2NoIGFyYmV0c2thdGFsb2ciCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTcKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjAKIG1zZ2lkICJyZXNldCBIRUFEIGJ1dCBrZWVwIGxvY2FsIGNoYW5nZXMiCiBtc2dzdHIgIsOldGVyc3TDpGxsIEhFQUQgbWVuIGJlaMOlbGwgbG9rYWxhIMOkbmRyaW5nYXIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNzUKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJldmlzaW9uLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBzbMOlIHVwcCBcIiVzXCIgc29tIGVuIGdpbHRpZyByZXZpc2lvbi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNzggYnVpbHRpbi9yZXNldC5jOjI4NgorIzogYnVpbHRpbi9yZXNldC5jOjI4MSBidWlsdGluL3Jlc2V0LmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJy4iCiBtc2dzdHIgIkthbiBpbnRlIHRvbGthIG9iamVrdGV0IFwiJXNcIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI4MworIzogYnVpbHRpbi9yZXNldC5jOjI4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgdHJlZS4iCiBtc2dzdHIgIkt1bmRlIGludGUgc2zDpSB1cHAgXCIlc1wiIHNvbSBldHQgZ2lsdGlndCB0csOkZC4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyOTIKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyOTUKIG1zZ2lkICItLXBhdGNoIGlzIGluY29tcGF0aWJsZSB3aXRoIC0te2hhcmQsbWl4ZWQsc29mdH0iCiBtc2dzdHIgIi0tcGF0Y2ggw6RyIGlua29tcGF0aWJlbCBtZWQgLS17aGFyZCxtaXhlZCxzb2Z0fSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwMQorIzogYnVpbHRpbi9yZXNldC5jOjMwNAogbXNnaWQgIi0tbWl4ZWQgd2l0aCBwYXRocyBpcyBkZXByZWNhdGVkOyB1c2UgJ2dpdCByZXNldCAtLSA8cGF0aHM+JyBpbnN0ZWFkLiIKIG1zZ3N0ciAiIgogIi0tbWl4ZWQgcmVrb21tZW5kZXJhcyBpbnRlIG1lZCBzw7ZrdsOkZ2FyOyBhbnbDpG5kIFwiZ2l0IHJlc2V0IC0tIDxzw7ZrdsOkZ2FyPlwiLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwMworIzogYnVpbHRpbi9yZXNldC5jOjMwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gJXMgcmVzZXQgd2l0aCBwYXRocy4iCiBtc2dzdHIgIkthbiBpbnRlIGfDtnJhICVzIMOldGVyc3TDpGxsbmluZyBtZWQgc8O2a3bDpGdhci4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMTMKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgcmVzZXQgaXMgbm90IGFsbG93ZWQgaW4gYSBiYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiVzIMOldGVyc3TDpGxsbmluZyB0aWxsw6V0cyBpbnRlIGkgZXR0IG5ha2V0IGFya2l2IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzMzCisjOiBidWlsdGluL3Jlc2V0LmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZXNldCBpbmRleCBmaWxlIHRvIHJldmlzaW9uICclcycuIgogbXNnc3RyICJLdW5kZSBpbnRlIMOldGVyc3TDpGxsYSBpbmRleGZpbGVuIHRpbGwgdmVyc2lvbmVuIFwiJXNcIi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzkKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDIKIG1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKIG1zZ3N0ciAiT2vDtmFkZSDDpG5kcmluZ2FyIGVmdGVyIMOldGVyc3TDpGxsbmluZzoiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozNDQKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDcKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgbmV3IGluZGV4IGZpbGUuIgogbXNnc3RyICJLdW5kZSBpbnRlIHNrcml2YSBueSBpbmRleGZpbC4iCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzM5CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NQogbXNnaWQgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl0iCiBtc2dzdHIgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmd1bWVudD4uLi5dIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NAorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNTAKIG1zZ2lkICJrZWVwIHRoZSBgLS1gIHBhc3NlZCBhcyBhbiBhcmciCiBtc2dzdHIgImJlaMOlbGwgXCItLVwiIHPDpG50IHNvbSBhcmd1bWVudCIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDYKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzUyCiBtc2dpZCAic3RvcCBwYXJzaW5nIGFmdGVyIHRoZSBmaXJzdCBub24tb3B0aW9uIGFyZ3VtZW50IgogbXNnc3RyICJzbHV0YSB0b2xrYSBlZnRlciBmw7Zyc3RhIGFyZ3VtZW50IHNvbSBpbnRlIMOkciBmbGFnZ2EiCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6NDY0CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjQ3MAogbXNnaWQgIiIKICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW29wdGlvbnNdIC0tIFs8YXJncz4uLi5dXG4iCiAiICAgb3I6IGdpdCByZXYtcGFyc2UgLS1zcS1xdW90ZSBbPGFyZz4uLi5dXG4iCkBAIC04MzAzLDE0NiArODU0MywxNzEgQEAKIG1zZ2lkICJnaXQgY2hlcnJ5LXBpY2sgPHN1YmNvbW1hbmQ+IgogbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgPHVuZGVya29tbWFuZG8+IgogCi0jOiBidWlsdGluL3JldmVydC5jOjcwIGJ1aWx0aW4vcmV2ZXJ0LmM6OTIKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzEgYnVpbHRpbi9yZXZlcnQuYzo5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogJXMgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAiJXM6ICVzIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgJXMiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTAzCisjOiBidWlsdGluL3JldmVydC5jOjEwNQogbXNnaWQgImVuZCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgImF2c2x1dGEgcmV2ZXJ0LSBlbGxlciBjaGVycnktcGljay1zZWt2ZW5zIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKIG1zZ2lkICJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICLDpXRlcnVwcHRhIHJldmVydC0gZWxsZXIgY2hlcnJ5LXBpY2stc2VrdmVucyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3CiBtc2dpZCAiY2FuY2VsIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAiYXZicnl0IHJldmVydC0gZWxsZXIgY2hlcnJ5LXBpY2stc2VrdmVucyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA4CiBtc2dpZCAiZG9uJ3QgYXV0b21hdGljYWxseSBjb21taXQiCiBtc2dzdHIgImNoZWNrYSBpbnRlIGluIGF1dG9tYXRpc2t0IgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDkKIG1zZ2lkICJlZGl0IHRoZSBjb21taXQgbWVzc2FnZSIKIG1zZ3N0ciAicmVkaWdlcmEgaW5jaGVja25pbmdzbWVkZGVsYW5kZXQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEwCisjOiBidWlsdGluL3JldmVydC5jOjExMgogbXNnaWQgInBhcmVudCBudW1iZXIiCiBtc2dzdHIgIm51bW1lciBww6UgZsO2csOkbGRlciIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTIKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CiBtc2dpZCAibWVyZ2Ugc3RyYXRlZ3kiCiBtc2dzdHIgInNhbW1hbnNsYWduaW5zc3RyYXRlZ2kiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEzCisjOiBidWlsdGluL3JldmVydC5jOjExNQogbXNnaWQgIm9wdGlvbiIKIG1zZ3N0ciAiYWx0ZXJuYXRpdiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE2CiBtc2dpZCAib3B0aW9uIGZvciBtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiYWx0ZXJuYXRpdiBmb8yIciBzYW1tYW5zbGFnbmluZ3NzdHJhdGVnaSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI3CiBtc2dpZCAiYXBwZW5kIGNvbW1pdCBuYW1lIgogbXNnc3RyICJsw6RnZyB0aWxsIGluY2hlY2tuaW5nc25hbW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI2CisjOiBidWlsdGluL3JldmVydC5jOjEyOAogbXNnaWQgImFsbG93IGZhc3QtZm9yd2FyZCIKIG1zZ3N0ciAidGlsbMOldCBzbmFiYnNwb2xuaW5nIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNworIzogYnVpbHRpbi9yZXZlcnQuYzoxMjkKIG1zZ2lkICJwcmVzZXJ2ZSBpbml0aWFsbHkgZW1wdHkgY29tbWl0cyIKIG1zZ3N0ciAiYmVow6VsbCBpbmNoZWNrbmluZ2FyIHNvbSBiw7ZyamFyIHNvbSB0b21tYSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMwCiBtc2dpZCAiYWxsb3cgY29tbWl0cyB3aXRoIGVtcHR5IG1lc3NhZ2VzIgogbXNnc3RyICJ0aWxsw6V0IGluY2hlY2tuaW5nYXIgbWVkIHRvbXQgbWVkZGVsYW5kZSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjkKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMxCiBtc2dpZCAia2VlcCByZWR1bmRhbnQsIGVtcHR5IGNvbW1pdHMiCiBtc2dzdHIgImJlaMOlbGwgcmVkdW5kYW50YSwgdG9tbWEgaW5jaGVja25pbmdhciIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMzMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTM1CiBtc2dpZCAicHJvZ3JhbSBlcnJvciIKIG1zZ3N0ciAicHJvZ3JhbWZlbCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMjMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjI1CiBtc2dpZCAicmV2ZXJ0IGZhaWxlZCIKIG1zZ3N0ciAiXCJyZXZlcnRcIiBtaXNzbHlja2FkZXMiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjM4CisjOiBidWlsdGluL3JldmVydC5jOjI0MAogbXNnaWQgImNoZXJyeS1waWNrIGZhaWxlZCIKIG1zZ3N0ciAiXCJjaGVycnktcGlja1wiIG1pc3NseWNrYWRlcyIKIAotIzogYnVpbHRpbi9ybS5jOjE1CisjOiBidWlsdGluL3JtLmM6MTYKIG1zZ2lkICJnaXQgcm0gW29wdGlvbnNdIFstLV0gPGZpbGU+Li4uIgogbXNnc3RyICJnaXQgcm0gW2ZsYWdnb3JdIFstLV0gPGZpbD4uLi4iCiAKLSM6IGJ1aWx0aW4vcm0uYzo2NCBidWlsdGluL3JtLmM6MTg2Ci0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjY0CiBtc2dpZCAiIgotInN1Ym1vZHVsZSAnJXMnIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKSB1c2VzIGEgLmdpdCBkaXJlY3RvcnlcbiIKKyJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZSAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKKyJ1c2VzIGEgLmdpdCBkaXJlY3Rvcnk6IgorbXNnaWRfcGx1cmFsICIiCisidGhlIGZvbGxvd2luZyBzdWJtb2R1bGVzIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKVxuIgorInVzZSBhIC5naXQgZGlyZWN0b3J5OiIKK21zZ3N0clswXSAiIgorImbDtmxqYW5kZSB1bmRlcm1vZHVsIChlbGxlciBlbiBhdiBkZXNzIG7DpHN0bGFkZSB1bmRlcm1vZHVsZXIpXG4iCisiYW52w6RuZGVyIGVuIC5naXQta2F0YWxvZzoiCittc2dzdHJbMV0gIiIKKyJmw7ZsamFuZGUgdW5kZXJtb2R1bGVyIChlbGxlciBlbiBhdiBkZXJhcyBuw6RzdGxhZGUgdW5kZXJtb2R1bGVyKVxuIgorImFudsOkbmRlciBlbiAuZ2l0LWthdGFsb2c6IgorCisjOiBidWlsdGluL3JtLmM6NzAKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICIiCi0idW5kZXJtb2R1bGVuIFwiJXNcIiAoZWxsZXIgZW4gYXYgZGVzcyB1bmRlcm1vZHVsZXIpIGFudsOkbmRlciBlbiAuZ2l0LSIKLSJrYXRhbG9nXG4iCisiXG4iCiAiKGFudsOkbmQgXCJybSAtcmZcIiBvbSBkdSB2ZXJrbGlnZW4gdmlsbCB0YSBib3J0IGRlbiBvY2ggYWxsIGRlc3MgaGlzdG9yaWspIgogCi0jOiBidWlsdGluL3JtLmM6MTc0Ci0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzMAogbXNnaWQgIiIKLSInJXMnIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZSBmaWxlIGFuZCB0aGUgSEVBRFxuIgorInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGVcbiIKKyJmaWxlIGFuZCB0aGUgSEVBRDoiCittc2dpZF9wbHVyYWwgIiIKKyJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGVcbiIKKyJmaWxlIGFuZCB0aGUgSEVBRDoiCittc2dzdHJbMF0gIiIKKyJmw7ZsamFuZGUgZmlsIGhhciBrw7ZhdCBpbm5laMOlbGwgc29tIHNraWxqZXIgc2lnIGLDpWRlIGZyw6VuIGZpbGVuIG9jaCBIRUFEOiIKK21zZ3N0clsxXSAiIgorImbDtmxqYW5kZSBmaWxlciBoYXIga8O2YXQgaW5uZWjDpWxsIHNvbSBza2lsamVyIHNpZyBiw6VkZSBmcsOlbiBmaWxlbiBvY2ggSEVBRDoiCisKKyM6IGJ1aWx0aW4vcm0uYzoyMzUKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgotIlwiJXNcIiBoYXIga8O2YXQgw6RuZHJpbmdhciBzb20gc2tpbGplciBzaWcgYsOlZGUgZnLDpW4gZmlsZW4gb2NoIEhFQURcbiIKKyJcbiIKICIoYW52w6RuZCAtZiBmw7ZyIGF0dCB0dmluZ2EgYm9ydHRhZ25pbmcpIgogCi0jOiBidWlsdGluL3JtLmM6MTgwCi0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzOQorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCittc2dzdHJbMF0gImbDtmxqYW5kZSBmaWwgaGFyIMOkbmRyaW5nYXIga8O2YWRlIGkgaW5kZXhldDoiCittc2dzdHJbMV0gImbDtmxqYW5kZSBmaWxlciBoYXIgw6RuZHJpbmdhciBrw7ZhZGUgaSBpbmRleGV0OiIKKworIzogYnVpbHRpbi9ybS5jOjI0MyBidWlsdGluL3JtLmM6MjU0CiBtc2dpZCAiIgotIiclcycgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleFxuIgorIlxuIgogIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCiBtc2dzdHIgIiIKLSJcIiVzXCIgaGFyIGvDtmFkZSDDpG5kcmluZ2FyIGkgaW5kZXhldFxuIgorIlxuIgogIihhbnbDpG5kIC0tY2FjaGVkIGbDtnIgYXR0IGJlaMOlbGxhIGZpbGVuIGVsbGVyIC1mIGbDtnIgYXR0IHR2aW5nYSBib3J0dGFnbmluZykiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxOTEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiIgotIiclcycgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnNcbiIKLSIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgotbXNnc3RyICIiCi0iXCIlc1wiIGhhciBsb2thbGEgw6RuZHJpbmdhclxuIgotIihhbnbDpG5kIC0tY2FjaGVkIGbDtnIgYXR0IGJlaMOlbGxhIGZpbGVuIGVsbGVyIC1mIGbDtnIgYXR0IHR2aW5nYSBib3J0dGFnbmluZykiCisjOiBidWlsdGluL3JtLmM6MjUxCittc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zOiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgorbXNnc3RyWzBdICJmw7ZsamFuZGUgZmlsIGhhciBsb2thbGEgw6RuZHJpbmdhcjoiCittc2dzdHJbMV0gImbDtmxqYW5kZSBmaWxlciBoYXIgbG9rYWxhIMOkbmRyaW5nYXI6IgogCi0jOiBidWlsdGluL3JtLmM6MjA3CisjOiBidWlsdGluL3JtLmM6MjY5CiBtc2dpZCAiZG8gbm90IGxpc3QgcmVtb3ZlZCBmaWxlcyIKIG1zZ3N0ciAibGlzdGEgaW50ZSBib3J0dGFnbmEgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDgKKyM6IGJ1aWx0aW4vcm0uYzoyNzAKIG1zZ2lkICJvbmx5IHJlbW92ZSBmcm9tIHRoZSBpbmRleCIKIG1zZ3N0ciAidGEgYmFyYSBib3J0IGZyw6VuIGluZGV4ZXQiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDkKKyM6IGJ1aWx0aW4vcm0uYzoyNzEKIG1zZ2lkICJvdmVycmlkZSB0aGUgdXAtdG8tZGF0ZSBjaGVjayIKIG1zZ3N0ciAiw7Z2ZXJzdHlyIMOgam91ci10ZXN0ZXQiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMTAKKyM6IGJ1aWx0aW4vcm0uYzoyNzIKIG1zZ2lkICJhbGxvdyByZWN1cnNpdmUgcmVtb3ZhbCIKIG1zZ3N0ciAidGlsbMOldCByZWt1cnNpdiBib3J0dGFnbmluZyIKIAotIzogYnVpbHRpbi9ybS5jOjIxMgorIzogYnVpbHRpbi9ybS5jOjI3NAogbXNnaWQgImV4aXQgd2l0aCBhIHplcm8gc3RhdHVzIGV2ZW4gaWYgbm90aGluZyBtYXRjaGVkIgogbXNnc3RyICJhdnNsdXRhIG1lZCBub2xsc3RhdHVzIMOkdmVuIG9tIGluZ2V0IHRyw6RmZmFkZXMiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyODMKKyM6IGJ1aWx0aW4vcm0uYzozNDUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHJlbW92aW5nICclcycgcmVjdXJzaXZlbHkgd2l0aG91dCAtciIKIG1zZ3N0ciAidGFyIGludGUgYm9ydCBcIiVzXCIgcmVrdXJzaXZ0IHV0YW4gLXIiCiAKLSM6IGJ1aWx0aW4vcm0uYzozMjIKKyM6IGJ1aWx0aW4vcm0uYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IHJtOiB1bmFibGUgdG8gcmVtb3ZlICVzIgogbXNnc3RyICJnaXQgcm06IGthbiBpbnRlIHRhIGJvcnQgJXMiCkBAIC04NDU2LDIzICs4NzIxLDIzIEBACiBtc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgogbXNnc3RyICJGw7ZyZmF0dGFyZSBzYWtuYXM6ICVzIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjI3CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjI4CiBtc2dpZCAic29ydCBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2YgY29tbWl0cyBwZXIgYXV0aG9yIgogbXNnc3RyICJzb3J0ZXJhIHV0ZGF0YSBlbmxpZ3QgYW50YWwgaW5jaGVja25pbmdhciBwZXIgZsO2cmZhdHRhcmUiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjkKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzAKIG1zZ2lkICJTdXBwcmVzcyBjb21taXQgZGVzY3JpcHRpb25zLCBvbmx5IHByb3ZpZGVzIGNvbW1pdCBjb3VudCIKIG1zZ3N0ciAiVW5kZXJ0cnljayBiZXNrcml2bmluZ2FyLCB2aXNhIGJhcmEgYW50YWwgaW5jaGVja25pbmdhciIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgogbXNnaWQgIlNob3cgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgZWFjaCBhdXRob3IiCiBtc2dzdHIgIlZpc2EgZS1wb3N0YWRyZXNzIGbDtnIgdmFyamUgZsO2cmZhdHRhcmUiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKIG1zZ2lkICJ3WyxpMVssaTJdXSIKIG1zZ3N0ciAid1ssaTFbLGkyXV0iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKIG1zZ2lkICJMaW5ld3JhcCBvdXRwdXQiCiBtc2dzdHIgIlJhZGJyeXQgdXRkYXRhIgogCkBAIC04NTM2LDIzICs4ODAxLDIzIEBACiBtc2dpZCAic2hvdyBjb21taXRzIGluIHRvcG9sb2dpY2FsIG9yZGVyIgogbXNnc3RyICJ2aXNhIGluY2hlY2tuaW5nYXIgaSB0b3BvbG9naXNrIG9yZG5pbmciCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzEKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzIKIG1zZ2lkICJzaG93IG9ubHkgY29tbWl0cyBub3Qgb24gdGhlIGZpcnN0IGJyYW5jaCIKIG1zZ3N0ciAidmlzYSBlbmRhc3QgaW5jaGVja25pbmdhciBpbnRlIHDDpSBkZW4gZsO2cnN0YSBncmVuZW4iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzMKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzQKIG1zZ2lkICJzaG93IG1lcmdlcyByZWFjaGFibGUgZnJvbSBvbmx5IG9uZSB0aXAiCiBtc2dzdHIgInZpc2Egc2FtbWFuc2xhZ25pbmdhciBzb20gZW5kYXN0IGthbiBuw6VzIGZyw6VuIGVuIHNwZXRzIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc1Ci1tc2dpZCAic2hvdyBjb21taXRzIHdoZXJlIG5vIHBhcmVudCBjb21lcyBiZWZvcmUgaXRzIGNoaWxkcmVuIgotbXNnc3RyICJ2aXNhIGluY2hlY2tuaW5nYXIgZMOkciBpbmdlbiBmw7Zyw6RsZGVyIGtvbW1lciBmw7ZyZSBkZXNzIGJhcm4iCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc2Cittc2dpZCAidG9wb2xvZ2ljYWxseSBzb3J0LCBtYWludGFpbmluZyBkYXRlIG9yZGVyIHdoZXJlIHBvc3NpYmxlIgorbXNnc3RyICJzb3J0ZXJhIHRvcG9sb2dpc2t0LCBiZWjDpWxsIGRhdHVtb3JkbmluZyBuw6RyIG3DtmpsaWd0IgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc3CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc5CiBtc2dpZCAiPG4+Wyw8YmFzZT5dIgogbXNnc3RyICI8bj5bLDxiYXM+XSIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3OAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY4MAogbXNnaWQgInNob3cgPG4+IG1vc3QgcmVjZW50IHJlZi1sb2cgZW50cmllcyBzdGFydGluZyBhdCBiYXNlIgogbXNnc3RyICJ2aXNhIDxuPiBueWFzdGUgcmVmbG9nZ3Bvc3RlciBtZWQgYsO2cmphbiBww6UgYmFzIgogCkBAIC04NTY4LDM1ICs4ODMzLDM1IEBACiBtc2dpZCAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9cGF0dGVybl0gPCByZWYtbGlzdCIKIG1zZ3N0ciAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9bcO2bnN0ZXJdIDwgcmVmbGlzdGEiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjUKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjgKIG1zZ2lkICJvbmx5IHNob3cgdGFncyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggaGVhZHMpIgogbXNnc3RyICJ2aXNhIGVuZGFzdCB0YWdnYXIgKGthbiBrb21iaW5lcmFzIG1lZCBodXZ1ZGVuKSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2OQogbXNnaWQgIm9ubHkgc2hvdyBoZWFkcyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggdGFncykiCiBtc2dzdHIgInZpc2EgZW5kYXN0IGh1dnVkZW4gKGthbiBrb21iaW5lcmFzIG1lZCB0YWdnYXIpIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY3CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwCiBtc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKIG1zZ3N0ciAic3RyaWt0YXJlIHJlZmVyZW5za29udHJvbGwsIGtyw6R2ZXIgZXhha3QgcmVmZXJlbnNzw7ZrdsOkZyIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MCBidWlsdGluL3Nob3ctcmVmLmM6MTcyCi1tc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiCi1tc2dzdHIgInZpc2EgSEVBRC1yZWZlcmVuc2VuIgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc2Cittc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgYmUgZmlsdGVyZWQgb3V0IgorbXNnc3RyICJ2aXNhIEhFQUQtcmVmcmVucywgw6R2ZW4gbsOkciBkZW4gc2t1bGxlIGZpbHRyZXJhcyB1dCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OAogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgogbXNnc3RyICJhdnJlZmVyZXJhIHRhZ2dhciB0aWxsIG9iamVrdC1pZCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MAogbXNnaWQgIm9ubHkgc2hvdyBTSEExIGhhc2ggdXNpbmcgPG4+IGRpZ2l0cyIKIG1zZ3N0ciAidmlzYSBTSEExLWhhc2ggZW5kYXN0IG1lZCA8bj4gc2lmZnJvciIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NAogbXNnaWQgImRvIG5vdCBwcmludCByZXN1bHRzIHRvIHN0ZG91dCAodXNlZnVsIHdpdGggLS12ZXJpZnkpIgogbXNnc3RyICJ2aXNhIGludGUgcmVzdWx0YXQgcMOlIHN0YW5kYXJkIHV0IChhbnbDpG5kYmFydCBtZWQgLS12ZXJpZnkpIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgyCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg2CiBtc2dpZCAic2hvdyByZWZzIGZyb20gc3RkaW4gdGhhdCBhcmVuJ3QgaW4gbG9jYWwgcmVwb3NpdG9yeSIKIG1zZ3N0ciAidmlzYSByZWZlcmVuc2VyIGZyw6VuIHN0YW5kYXJkIGluIHNvbSBpbnRlIGZpbm5zIGkgbG9rYWx0IGFya2l2IgogCkBAIC05MDExLDcgKzkyNzYsNyBAQAogbXNnaWQgIm9ubHkgdXNlZnVsIGZvciBkZWJ1Z2dpbmciCiBtc2dzdHIgImVuZGFzdCBhbnbDpG5kYmFydCB2aWQgZmVsc8O2a25pbmciCiAKLSM6IGdpdC5jOjE2CisjOiBnaXQuYzoxNwogbXNnaWQgIiIKICInZ2l0IGhlbHAgLWEnIGFuZCAnZ2l0IGhlbHAgLWcnIGxpc3RzIGF2YWlsYWJsZSBzdWJjb21tYW5kcyBhbmQgc29tZVxuIgogImNvbmNlcHQgZ3VpZGVzLiBTZWUgJ2dpdCBoZWxwIDxjb21tYW5kPicgb3IgJ2dpdCBoZWxwIDxjb25jZXB0PidcbiIKQEAgLTkwMjEsMTkgKzkyODYsMjMgQEAKICJuw6VncmEga29uY2VwdHbDpGdsZWRuaW5nYXIuIFNlIFwiZ2l0IGhlbHAgPGtvbW1hbmRvPlwiIGVsbGVyIFwiZ2l0IGhlbHBcbiIKICI8a29uY2VwdD5cIiBmw7ZyIGF0dCBsw6RzYSBtZXIgb20gc3BlY2lmaWthIHVuZGVya29tbWFuZG9uIG9jaCBrb25jZXB0LiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjE1NgorIzogcGFyc2Utb3B0aW9ucy5oOjE0NAorbXNnaWQgImV4cGlyeSBkYXRlIgorbXNnc3RyICJnaWx0aWcgdGlsbCIKKworIzogcGFyc2Utb3B0aW9ucy5oOjE1OQogbXNnaWQgIm5vLW9wIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSIKIG1zZ3N0ciAiaW5nZW4gZnVua3Rpb24gKGJha8OldGtvbXBhdGliaWxpdGV0KSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzMgorIzogcGFyc2Utb3B0aW9ucy5oOjIzNgogbXNnaWQgImJlIG1vcmUgdmVyYm9zZSIKIG1zZ3N0ciAidmFyIG1lciBwcmF0c2FtIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjM0CisjOiBwYXJzZS1vcHRpb25zLmg6MjM4CiBtc2dpZCAiYmUgbW9yZSBxdWlldCIKIG1zZ3N0ciAidmFyIG1lciB0eXN0IgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjQwCisjOiBwYXJzZS1vcHRpb25zLmg6MjQ0CiBtc2dpZCAidXNlIDxuPiBkaWdpdHMgdG8gZGlzcGxheSBTSEEtMXMiCiBtc2dzdHIgImFudsOkbmQgPG4+IHNpZmZyb3IgZsO2ciBhdHQgdmlzYSBTSEEtMTpvciIKIApAQCAtOTA5MCw4ICs5MzU5LDggQEAKIG1zZ3N0ciAiRmx5dHRhIGVsbGVyIGJ5dCBuYW1uIHDDpSBlbiBmaWwsIGthdGFsb2cgZWxsZXIgc3ltYm9saXNrIGzDpG5rIgogCiAjOiBjb21tb24tY21kcy5oOjIxCi1tc2dpZCAiRmV0Y2ggZnJvbSBhbmQgbWVyZ2Ugd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2giCi1tc2dzdHIgIkjDpG10YSBmcsOlbiBvY2ggc2zDpSBpaG9wIG1lZCBhbm5hdCBhcmtpdiBlbGxlciBlbiBsb2thbCBncmVuIgorbXNnaWQgIkZldGNoIGZyb20gYW5kIGludGVncmF0ZSB3aXRoIGFub3RoZXIgcmVwb3NpdG9yeSBvciBhIGxvY2FsIGJyYW5jaCIKK21zZ3N0ciAiSMOkbXRhIGZyw6VuIG9jaCBpbnRlZ3JlcmEgbWVkIGFubmF0IGFya2l2IGVsbGVyIGVuIGxva2FsIGdyZW4iCiAKICM6IGNvbW1vbi1jbWRzLmg6MjIKIG1zZ2lkICJVcGRhdGUgcmVtb3RlIHJlZnMgYWxvbmcgd2l0aCBhc3NvY2lhdGVkIG9iamVjdHMiCkBAIC05MTM2LDExICs5NDA1LDExIEBACiAjOiBnaXQtYW0uc2g6MTA1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCIkY21kbGluZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgogIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuIFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIG1zZ3N0ciAiIgotIk7DpHIgZHUgaGFyIGzDtnN0IHByb2JsZW1ldCBrw7ZyIGR1IFwiJGNtZGxpbmUgLS1yZXNvbHZlZFwiLlxuIgorIk7DpHIgZHUgaGFyIGzDtnN0IHByb2JsZW1ldCBrw7ZyIGR1IFwiJGNtZGxpbmUgLS1jb250aW51ZVwiLlxuIgogIk9tIGR1IHZpbGwgaG9wcGEgw7Z2ZXIgcGF0Y2hlbiBrw7ZyIGR1IGlzdMOkbGxldCBcIiRjbWRsaW5lIC0tc2tpcFwiLlxuIgogIkbDtnIgYXR0IMOldGVyc3TDpGxsYSBvcmlnaW5hbGdyZW5lbiBvY2ggYXZicnl0YSBrw7ZyIGR1IFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIApAQCAtOTE5NiwyNSArOTQ2NSwzNCBAQAogIkZsYWdnYW4gLWIvLS1iaW5hcnkgaGFyIHZhcml0IHV0YW4gZnVua3Rpb24gbMOkbmdlLCBvY2hcbiIKICJrb21tZXIgdGFzIGJvcnQuIFZpIGJlciBkaWcgYXR0IGludGUgYW52w6RuZGEgZGVuIGzDpG5ncmUuIgogCi0jOiBnaXQtYW0uc2g6NDc3CisjOiBnaXQtYW0uc2g6NDc5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJwcmV2aW91cyByZWJhc2UgZGlyZWN0b3J5ICRkb3Rlc3Qgc3RpbGwgZXhpc3RzIGJ1dCBtYm94IGdpdmVuLiIKIG1zZ3N0ciAidGlkaWdhcmUgcmViYXNlLWthdGFsb2cgJGRvdGVzdCBmaW5ucyBmb3J0ZmFyYW5kZSwgbWVuIG1ib3ggYW5nYXZzLiIKIAotIzogZ2l0LWFtLnNoOjQ4MgorIzogZ2l0LWFtLnNoOjQ4NAogbXNnaWQgIlBsZWFzZSBtYWtlIHVwIHlvdXIgbWluZC4gLS1za2lwIG9yIC0tYWJvcnQ/IgogbXNnc3RyICJCZXN0w6RtIGRpZy4gLS1za2lwIGVsbGVyIC0tYWJvcnQ/IgogCi0jOiBnaXQtYW0uc2g6NTA5CisjOiBnaXQtYW0uc2g6NTIwCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiU3RyYXkgJGRvdGVzdCBkaXJlY3RvcnkgZm91bmQuXG4iCisiVXNlIFwiZ2l0IGFtIC0tYWJvcnRcIiB0byByZW1vdmUgaXQuIgorbXNnc3RyICIiCisiS3ZhcmJsaXZlbiBrYXRhbG9nICRkb3Rlc3QgaGl0dGFkZXMuXG4iCisiQW52w6RuZCBcImdpdCBhbSAtLWFib3J0XCIgZsO2ciBhdHQgdGEgYm9ydCBkZW4uIgorCisjOiBnaXQtYW0uc2g6NTI4CiBtc2dpZCAiUmVzb2x2ZSBvcGVyYXRpb24gbm90IGluIHByb2dyZXNzLCB3ZSBhcmUgbm90IHJlc3VtaW5nLiIKIG1zZ3N0ciAiTMO2c25pbmdzb3BlcmF0aW9uIHDDpWfDpXIgaW50ZSwgdmkgw6V0ZXJ1cHB0YXIgaW50ZS4iCiAKLSM6IGdpdC1hbS5zaDo1NzUKKyM6IGdpdC1hbS5zaDo1OTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRpcnR5IGluZGV4OiBjYW5ub3QgYXBwbHkgcGF0Y2hlcyAoZGlydHk6ICRmaWxlcykiCiBtc2dzdHIgIlNtdXRzaWd0IGluZGV4OiBrYW4gaW50ZSB0aWxsw6RtcGEgcGF0Y2hhciAoc211dHNpZ2E6ICRmaWxlcykiCiAKLSM6IGdpdC1hbS5zaDo2NzkKKyM6IGdpdC1hbS5zaDo2OTgKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJQYXRjaCBpcyBlbXB0eS4gIFdhcyBpdCBzcGxpdCB3cm9uZz9cbiIKQEAgLTkyMjUsMzIgKzk1MDMsMzIgQEAKICJPbSBkdSB2aWxsIGhvcHBhIMO2dmVyIHBhdGNoZW4ga8O2ciBkdSBpc3TDpGxsZXQgXCIkY21kbGluZSAtLXNraXBcIi5cbiIKICJGw7ZyIGF0dCDDpXRlcnN0w6RsbGEgb3JpZ2luYWxncmVuZW4gb2NoIGF2YnJ5dGEga8O2ciBkdSBcIiRjbWRsaW5lIC0tYWJvcnRcIi4iCiAKLSM6IGdpdC1hbS5zaDo3MDYKKyM6IGdpdC1hbS5zaDo3MjUKIG1zZ2lkICJQYXRjaCBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuIgogbXNnc3RyICJQYXRjaGVuIGhhciBpbnRlIG7DpWdvbiBnaWx0aWcgZS1wb3N0YWRyZXNzLiIKIAotIzogZ2l0LWFtLnNoOjc1MworIzogZ2l0LWFtLnNoOjc3MgogbXNnaWQgImNhbm5vdCBiZSBpbnRlcmFjdGl2ZSB3aXRob3V0IHN0ZGluIGNvbm5lY3RlZCB0byBhIHRlcm1pbmFsLiIKIG1zZ3N0ciAiIgogImthbiBpbnRlIHZhcmEgaW50ZXJha3RpdiBvbSBzdGFuZGFyZCBpbiBpbnRlIMOkciBhbnNsdXRlbiB0aWxsIGVuIHRlcm1pbmFsLiIKIAotIzogZ2l0LWFtLnNoOjc1NworIzogZ2l0LWFtLnNoOjc3NgogbXNnaWQgIkNvbW1pdCBCb2R5IGlzOiIKIG1zZ3N0ciAiSW5jaGVja25pbmdza3JvcHBlbiDDpHI6IgogCiAjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW3ldLCBbbl0sIFtlXSwgW3ZdIGFuZCBbYV0KICMuIGluIHlvdXIgdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaAogIy4gaW5wdXQgYXQgdGhpcyBwb2ludC4KLSM6IGdpdC1hbS5zaDo3NjQKKyM6IGdpdC1hbS5zaDo3ODMKIG1zZ2lkICJBcHBseT8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCiBtc2dzdHIgIlRpbGzDpG1wYT8gWT1qYS9OPW5lai9FPXJlZGlnZXJhL1Y9dmlzYSBwYXRjaC9BPWdvZHRhIGFsbGEgIgogCi0jOiBnaXQtYW0uc2g6ODAwCisjOiBnaXQtYW0uc2g6ODE5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBcHBseWluZzogJEZJUlNUTElORSIKIG1zZ3N0ciAiVGlsbMOkbXBhcjogJEZJUlNUTElORSIKIAotIzogZ2l0LWFtLnNoOjgyMQorIzogZ2l0LWFtLnNoOjg0MAogbXNnaWQgIiIKICJObyBjaGFuZ2VzIC0gZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz9cbiIKICJJZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG8gc3RhZ2UsIGNoYW5jZXMgYXJlIHRoYXQgc29tZXRoaW5nIGVsc2VcbiIKQEAgLTkyNjAsNyArOTUzOCw3IEBACiAiT20gZGV0IGludGUgw6RyIG7DpWdvdCBrdmFyIGF0dCBrw7ZhIGthbiBkZXQgaMOkbmRhIGF0dCBuw6Vnb3QgYW5uYXQgcmVkYW5cbiIKICJpbnRyb2R1Y2VyYXQgc2FtbWEgw6RuZHJpbmdhcjsga2Fuc2tlIGR1IGLDtnIgaG9wcGEgw7Z2ZXIgcGF0Y2hlbi4iCiAKLSM6IGdpdC1hbS5zaDo4MjkKKyM6IGdpdC1hbS5zaDo4NDgKIG1zZ2lkICIiCiAiWW91IHN0aWxsIGhhdmUgdW5tZXJnZWQgcGF0aHMgaW4geW91ciBpbmRleFxuIgogImRpZCB5b3UgZm9yZ2V0IHRvIHVzZSAnZ2l0IGFkZCc/IgpAQCAtOTI2OCwxNiArOTU0NiwxNiBAQAogIkR1IGhhciBmb3J0ZmFyYW5kZSBzw7ZrdsOkZ2FyIHNvbSBpbnRlIHNsYWdpdHMgc2FtbWFuIGkgZGl0dCBpbmRleFxuIgogImdsw7ZtZGUgZHUgYW52w6RuZGEgXCJnaXQgYWRkXCI/IgogCi0jOiBnaXQtYW0uc2g6ODQ1CisjOiBnaXQtYW0uc2g6ODY0CiBtc2dpZCAiTm8gY2hhbmdlcyAtLSBQYXRjaCBhbHJlYWR5IGFwcGxpZWQuIgogbXNnc3RyICJJbmdhIMOkbmRyaW5nYXIgLS0gUGF0Y2hlbiBoYXIgcmVkYW4gdGlsbMOkbXBhdHMuIgogCi0jOiBnaXQtYW0uc2g6ODU1CisjOiBnaXQtYW0uc2g6ODc0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJQYXRjaCBmYWlsZWQgYXQgJG1zZ251bSAkRklSU1RMSU5FIgogbXNnc3RyICJQYXRjaGVuIG1pc3NseWNrYWRlcyB2aWQgJG1zZ251bSAkRklSU1RMSU5FIgogCi0jOiBnaXQtYW0uc2g6ODU4CisjOiBnaXQtYW0uc2g6ODc3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGNvcHkgb2YgdGhlIHBhdGNoIHRoYXQgZmFpbGVkIGlzIGZvdW5kIGluOlxuIgpAQCAtOTI4Niw3ICs5NTY0LDcgQEAKICJFbiBrb3BpYSBhdiBwYXRjaGVuIHNvbSBtaXNzbHlja2FkZXMgZmlubnMgaTpcbiIKICIgICAkZG90ZXN0L3BhdGNoIgogCi0jOiBnaXQtYW0uc2g6ODc2CisjOiBnaXQtYW0uc2g6ODk1CiBtc2dpZCAiYXBwbHlpbmcgdG8gYW4gZW1wdHkgaGlzdG9yeSIKIG1zZ3N0ciAidGlsbMOkbXBhciBww6UgZW4gdG9tIGhpc3RvcmlrIgogCkBAIC05NDg5LDcgKzk3NjcsNyBAQAogbXNnaWQgIkNhbm5vdCByZWJhc2Ugb250byBtdWx0aXBsZSBicmFuY2hlcyIKIG1zZ3N0ciAiS2FuIGludGUgdXRmw7ZyYSBlbiBcInJlYmFzZVwiIG92YW5ww6UgZmxlcmEgZ3JlbmFyIgogCi0jOiBnaXQtcmViYXNlLnNoOjUzCisjOiBnaXQtcmViYXNlLnNoOjU0CiBtc2dpZCAiIgogIldoZW4geW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIi5cbiIKICJJZiB5b3UgcHJlZmVyIHRvIHNraXAgdGhpcyBwYXRjaCwgcnVuIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgpAQCAtOTUwMCwzMSArOTc3OCw1MCBAQAogIk9tIGR1IHZpbGwgaG9wcGEgw7Z2ZXIgcGF0Y2hlbiBrw7ZyIGR1IGlzdMOkbGxldCBcImdpdCByZWJhc2UgLS1za2lwXCIuXG4iCiAiRsO2ciBhdHQgw6V0ZXJzdMOkbGxhIG9yaWdpbmFsZ3JlbmVuIG9jaCBhdmJyeXRhIGvDtnIgZHUgXCJnaXQgcmViYXNlIC0tYWJvcnRcIi4iCiAKKyM6IGdpdC1yZWJhc2Uuc2g6MTU2Cittc2dpZCAiQXBwbGllZCBhdXRvc3Rhc2guIgorbXNnc3RyICJUaWxsw6RtcGFkZSBhdXRvc3Rhc2guIgorCisjOiBnaXQtcmViYXNlLnNoOjE1OQorIywgc2gtZm9ybWF0Cittc2dpZCAiQ2Fubm90IHN0b3JlICRzdGFzaF9zaGExIgorbXNnc3RyICJLYW4gaW50ZSBzcGFyYSAkc3Rhc2hfc2hhMSIKKwogIzogZ2l0LXJlYmFzZS5zaDoxNjAKK21zZ2lkICIiCisiQXBwbHlpbmcgYXV0b3N0YXNoIHJlc3VsdGVkIGluIGNvbmZsaWN0cy5cbiIKKyJZb3VyIGNoYW5nZXMgYXJlIHNhZmUgaW4gdGhlIHN0YXNoLlxuIgorIllvdSBjYW4gcnVuIFwiZ2l0IHN0YXNoIHBvcFwiIG9yIFwiZ2l0IHN0YXNoIGRyb3BcIiBhdCBhbnkgdGltZS5cbiIKK21zZ3N0ciAiIgorIlRpbGzDpG1wbmluZyBhdiBhdXRvc3Rhc2ggZ2F2IGtvbmZsaWt0ZXIuXG4iCisiRGluYSDDpG5kcmluZ2FyIMOkciBzw6RrcmEgaSBzdGFzaGVuLlxuIgorIkR1IGthbiBuw6RyIHNvbSBoZWxzdCBhbnbDpG5kYSBcImdpdCBzdGFzaCBwb3BcIiBlbGxlciBcImdpdCBzdGFzaCBkcm9wXCIuXG4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6MTkwCiBtc2dpZCAiVGhlIHByZS1yZWJhc2UgaG9vayByZWZ1c2VkIHRvIHJlYmFzZS4iCiBtc2dzdHIgIktyb2tlbiBwcmUtcmViYXNlIHbDpGdyYWRlIG9tYmFzZXJpbmdlbi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MTY1CisjOiBnaXQtcmViYXNlLnNoOjE5NQogbXNnaWQgIkl0IGxvb2tzIGxpa2UgZ2l0LWFtIGlzIGluIHByb2dyZXNzLiBDYW5ub3QgcmViYXNlLiIKIG1zZ3N0ciAiRGV0IHZlcmthciBzb20gZW4gZ2l0LWFtIGvDtnJzLiBLYW4gaW50ZSBvbWJhc2VyYS4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6Mjk2CisjOiBnaXQtcmViYXNlLnNoOjMyOQogbXNnaWQgIlRoZSAtLWV4ZWMgb3B0aW9uIG11c3QgYmUgdXNlZCB3aXRoIHRoZSAtLWludGVyYWN0aXZlIG9wdGlvbiIKIG1zZ3N0ciAiRmxhZ2dhbiAtLWV4ZWMgbcOlc3RlIGFudsOkbmRhcyB0aWxsc2FtbWFucyBtZWQgZmxhZ2dhbiAtLWludGVyYWN0aXZlIgogCi0jOiBnaXQtcmViYXNlLnNoOjMwMQorIzogZ2l0LXJlYmFzZS5zaDozMzQKIG1zZ2lkICJObyByZWJhc2UgaW4gcHJvZ3Jlc3M/IgogbXNnc3RyICJJbmdlbiBvbWJhc2VyaW5nIHDDpWfDpXI/IgogCi0jOiBnaXQtcmViYXNlLnNoOjMxMgorIzogZ2l0LXJlYmFzZS5zaDozNDUKIG1zZ2lkICJUaGUgLS1lZGl0LXRvZG8gYWN0aW9uIGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIGludGVyYWN0aXZlIHJlYmFzZS4iCiBtc2dzdHIgIsOFdGfDpHJkZW4gLS1lZGl0LXRvZG8ga2FuIGVuZGFzdCBhbnbDpG5kYXMgdW5kZXIgaW50ZXJha3RpdiBvbWJhc2VyaW5nLiIKIAotIzogZ2l0LXJlYmFzZS5zaDozMTkKKyM6IGdpdC1yZWJhc2Uuc2g6MzUyCiBtc2dpZCAiQ2Fubm90IHJlYWQgSEVBRCIKIG1zZ3N0ciAiS2FuIGludGUgbMOkc2EgSEVBRCIKIAotIzogZ2l0LXJlYmFzZS5zaDozMjIKKyM6IGdpdC1yZWJhc2Uuc2g6MzU1CiBtc2dpZCAiIgogIllvdSBtdXN0IGVkaXQgYWxsIG1lcmdlIGNvbmZsaWN0cyBhbmQgdGhlblxuIgogIm1hcmsgdGhlbSBhcyByZXNvbHZlZCB1c2luZyBnaXQgYWRkIgpAQCAtOTUzMiwxMiArOTgyOSwxMiBAQAogIkR1IG3DpXN0ZSByZWRpZ2VyYSBhbGxhIHNhbW1hbnNsYWduaW5nc2tvbmZsaWt0ZXIgb2NoXG4iCiAiZMOkcmVmdGVyIG1hcmtlcmEgZGVtIHNvbSBsw7ZzdGEgbWVkIGdpdCBhZGQiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzQwCisjOiBnaXQtcmViYXNlLnNoOjM3MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG1vdmUgYmFjayB0byAkaGVhZF9uYW1lIgogbXNnc3RyICJLdW5kZSBpbnRlIGZseXR0YSB0aWxsYmFrYSB0aWxsICRoZWFkX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzU5CisjOiBnaXQtcmViYXNlLnNoOjM5MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHNlZW1zIHRoYXQgdGhlcmUgaXMgYWxyZWFkeSBhICRzdGF0ZV9kaXJfYmFzZSBkaXJlY3RvcnksIGFuZFxuIgpAQCAtOTU1OCw1NyArOTg1NSw2NiBAQAogIm9jaCBrw7ZyIHByb2dyYW1tZXQgaWdlbi4gSmFnIGF2c2x1dGFyIGlmYWxsIGR1IGZvcnRmYXJhbmRlIGhhclxuIgogIm7DpWdvdCBhdiB2w6RyZGUgZMOkci4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDA0CisjOiBnaXQtcmViYXNlLnNoOjQzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCB1cHN0cmVhbSAkdXBzdHJlYW1fbmFtZSIKIG1zZ3N0ciAib2dpbHRpZyB1cHBzdHLDtm0gJHVwc3RyZWFtX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDI4CisjOiBnaXQtcmViYXNlLnNoOjQ2MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgbWVyZ2UgYmFzZXMiCiBtc2dzdHIgIiRvbnRvX25hbWU6IG1lciDDpG4gZW4gc2FtbWFuc2xhZ25pbmdzYmFzIGZpbm5zIgogCi0jOiBnaXQtcmViYXNlLnNoOjQzMSBnaXQtcmViYXNlLnNoOjQzNQorIzogZ2l0LXJlYmFzZS5zaDo0NjQgZ2l0LXJlYmFzZS5zaDo0NjgKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGlzIG5vIG1lcmdlIGJhc2UiCiBtc2dzdHIgIiRvbnRvX25hbWU6IGluZ2VuIHNhbW1hbnNsYWduaW5nc2JhcyBmaW5ucyIKIAotIzogZ2l0LXJlYmFzZS5zaDo0NDAKKyM6IGdpdC1yZWJhc2Uuc2g6NDczCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJEb2VzIG5vdCBwb2ludCB0byBhIHZhbGlkIGNvbW1pdDogJG9udG9fbmFtZSIKIG1zZ3N0ciAiUGVrYSBww6UgZW4gZ2lsdGlnIGluY2hlY2tuaW5nOiAkb250b19uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ2MworIzogZ2l0LXJlYmFzZS5zaDo0OTYKICMsIHNoLWZvcm1hdAogbXNnaWQgImZhdGFsOiBubyBzdWNoIGJyYW5jaDogJGJyYW5jaF9uYW1lIgogbXNnc3RyICLDtmRlc2RpZ2VydDogaW5nZW4gc8OlZGFuIGdyZW46ICRicmFuY2hfbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDo0ODMKKyM6IGdpdC1yZWJhc2Uuc2g6NTE5Cittc2dpZCAiQ2Fubm90IGF1dG9zdGFzaCIKK21zZ3N0ciAiS2FuIGludGUgdXRmw7ZyYSBcImF1dG9zdGFzaFwiIgorCisjOiBnaXQtcmViYXNlLnNoOjUyNAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ3JlYXRlZCBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYiCittc2dzdHIgIlNrYXBhZGUgYXV0b3N0YXNoOiAkc3Rhc2hfYWJicmV2IgorCisjOiBnaXQtcmViYXNlLnNoOjUyOAogbXNnaWQgIlBsZWFzZSBjb21taXQgb3Igc3Rhc2ggdGhlbS4iCiBtc2dzdHIgIkNoZWNrYSBpbiBlbGxlciBhbnbDpG5kIFwic3Rhc2hcIiBww6UgZGVtLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MDEKKyM6IGdpdC1yZWJhc2Uuc2g6NTQ4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZS4iCiBtc2dzdHIgIkFrdHVlbGwgZ3JlbiAkYnJhbmNoX25hbWUgw6RyIMOgIGpvdXIuIgogCi0jOiBnaXQtcmViYXNlLnNoOjUwNAorIzogZ2l0LXJlYmFzZS5zaDo1NTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkLiIKIG1zZ3N0ciAiQWt0dWVsbCBncmVuICRicmFuY2hfbmFtZSDDpHIgw6Agam91ciwgb21iYXNlcmluZyBmcmFtdHZpbmdhZC4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTE1CisjOiBnaXQtcmViYXNlLnNoOjU2MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ2hhbmdlcyBmcm9tICRtYiB0byAkb250bzoiCiBtc2dzdHIgIsOEbmRyaW5nYXIgZnLDpW4gJG1iIHRpbGwgJG9udG86IgogCiAjLiBEZXRhY2ggSEVBRCBhbmQgcmVzZXQgdGhlIHRyZWUKLSM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjOiBnaXQtcmViYXNlLnNoOjU3MgogbXNnaWQgIkZpcnN0LCByZXdpbmRpbmcgaGVhZCB0byByZXBsYXkgeW91ciB3b3JrIG9uIHRvcCBvZiBpdC4uLiIKIG1zZ3N0ciAiIgogIkbDtnJzdCwgc3BvbGFyIHRpbGxiYWthIGh1dnVkZXQgZsO2ciBhdHQgc3BlbGEgYXYgZGl0dCBhcmJldGUgb3ZhbnDDpSBkZXQuLi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTMyCisjOiBnaXQtcmViYXNlLnNoOjU4MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFzdC1mb3J3YXJkZWQgJGJyYW5jaF9uYW1lIHRvICRvbnRvX25hbWUuIgogbXNnc3RyICJTbmFiYnNwb2xhZGUgJGJyYW5jaF9uYW1lIHRpbGwgJG9udG9fbmFtZS4iCkBAIC05NjQxLDYgKzk5NDcsMTEgQEAKIG1zZ2lkICJDYW5ub3QgcmVjb3JkIHdvcmtpbmcgdHJlZSBzdGF0ZSIKIG1zZ3N0ciAiS2FuIGludGUgcmVnaXN0cmVyYSB0aWxsc3TDpW5kIGbDtnIgYXJiZXRza2F0YWxvZyIKIAorIzogZ2l0LXN0YXNoLnNoOjE5MAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ2Fubm90IHVwZGF0ZSAkcmVmX3N0YXNoIHdpdGggJHdfY29tbWl0IgorbXNnc3RyICJLYW4gaW50ZSB1cHBkYXRlcmEgJHJlZl9zdGFzaCBtZWQgJHdfY29tbWl0IgorCiAjLiBUUkFOU0xBVE9SUzogJG9wdGlvbiBpcyBhbiBpbnZhbGlkIG9wdGlvbiwgbGlrZQogIy4gYC0tYmxhaC1ibGFoJy4gVGhlIDcgc3BhY2VzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCiAjLiBzZWNvbmQgbGluZSBjb3JyZXNwb25kIHRvICJlcnJvcjogIi4gU28geW91IHNob3VsZCBsaW5lCkBAIC05NjUxLDcgKzk5NjIsNyBAQAogIy4gJCBnaXQgc3Rhc2ggc2F2ZSAtLWJsYWgtYmxhaCAyPiYxIHwgaGVhZCAtbiAyCiAjLiBlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogLS1ibGFoLWJsYWgKICMuIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJy0tYmxhaC1ibGFoJwotIzogZ2l0LXN0YXNoLnNoOjIwMgorIzogZ2l0LXN0YXNoLnNoOjI0MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAkb3B0aW9uXG4iCkBAIC05NjYwLDEyMCArOTk3MSwxMzkgQEAKICJmZWw6IGZlbGFrdGlnIGZsYWdnYSBmw7ZyIFwic3Rhc2ggc2F2ZVwiOiAkb3B0aW9uXG4iCiAiICAgICBGw7ZyIGF0dCBhbmdlIGV0dCBtZWRkZWxhbmRlLCBhbnbDpG5kIGdpdCBzdGFzaCBzYXZlIC0tIFwiJG9wdGlvblwiIgogCi0jOiBnaXQtc3Rhc2guc2g6MjIzCisjOiBnaXQtc3Rhc2guc2g6MjYyCiBtc2dpZCAiTm8gbG9jYWwgY2hhbmdlcyB0byBzYXZlIgogbXNnc3RyICJJbmdhIGxva2FsYSDDpG5kcmluZ2FyIGF0dCBzcGFyYSIKIAotIzogZ2l0LXN0YXNoLnNoOjIyNworIzogZ2l0LXN0YXNoLnNoOjI2OAorbXNnaWQgIiIKKyJUaGUgZm9sbG93aW5nIHVudHJhY2tlZCBmaWxlcyB3b3VsZCBOT1QgYmUgc2F2ZWQgYnV0IG5lZWQgdG8gYmUgcmVtb3ZlZCBieSAiCisic3Rhc2ggc2F2ZToiCittc2dzdHIgIiIKKyJGw7ZsamFuZGUgb3Nww6VyYWRlIMOkbmRyaW5nYXIgc2t1bGxlIElOVEUgc3BhcmFzIHV0YW4gbcOlc3RlIHRhcyBib3J0IG1lZCAiCisiXCJzdGFzaCBzYXZlXCI6IgorCisjOiBnaXQtc3Rhc2guc2g6MjcwCittc2dpZCAiIgorIkFib3J0aW5nLiBDb25zaWRlciB1c2luZyBlaXRoZXIgdGhlIC0tZm9yY2Ugb3IgLS1pbmNsdWRlLXVudHJhY2tlZCBvcHRpb24uIgorbXNnc3RyICIiCisiQXZicnl0ZXIuIMOWdmVydsOkZyBhdHQgYW52w6RuZGEgYW50aW5nZW4gZmxhZ2dhbiAtLWZvcmNlIGVsbGVyIC0taW5jbHVkZS0iCisidW50cmFja2VkLiIKKworIzogZ2l0LXN0YXNoLnNoOjI3NAogbXNnaWQgIkNhbm5vdCBpbml0aWFsaXplIHN0YXNoIgogbXNnc3RyICJLYW4gaW50ZSBpbml0aWVyYSBcInN0YXNoXCIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMzUKKyM6IGdpdC1zdGFzaC5zaDoyNzgKIG1zZ2lkICJDYW5ub3Qgc2F2ZSB0aGUgY3VycmVudCBzdGF0dXMiCiBtc2dzdHIgIkthbiBpbnRlIHNwYXJhIGFrdHVlbGwgc3RhdHVzIgogCi0jOiBnaXQtc3Rhc2guc2g6MjUzCisjOiBnaXQtc3Rhc2guc2g6Mjk2CiBtc2dpZCAiQ2Fubm90IHJlbW92ZSB3b3JrdHJlZSBjaGFuZ2VzIgogbXNnc3RyICJLYW4gaW50ZSB0YSBib3J0IMOkbmRyaW5nYXIgaSBhcmJldHNrYXRhbG9nZW4iCiAKLSM6IGdpdC1zdGFzaC5zaDozNTIKKyM6IGdpdC1zdGFzaC5zaDozOTUKIG1zZ2lkICJObyBzdGFzaCBmb3VuZC4iCiBtc2dzdHIgIkluZ2VuIFwic3Rhc2hcIiBoaXR0YWRlcy4iCiAKLSM6IGdpdC1zdGFzaC5zaDozNTkKKyM6IGdpdC1zdGFzaC5zaDo0MDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIlRvbyBtYW55IHJldmlzaW9ucyBzcGVjaWZpZWQ6ICRSRVYiCiBtc2dzdHIgIkbDtnIgbcOlbmdhIHJldmlzaW9uZXIgYW5naXZuYTogJFJFViIKIAotIzogZ2l0LXN0YXNoLnNoOjM2NQorIzogZ2l0LXN0YXNoLnNoOjQwOAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJHJlZmVyZW5jZSBpcyBub3QgdmFsaWQgcmVmZXJlbmNlIgogbXNnc3RyICIkcmVmZXJlbmNlIMOkciBpbnRlIGVuIGdpbHRpZyByZWZlcmVucy4iCiAKLSM6IGdpdC1zdGFzaC5zaDozOTMKKyM6IGdpdC1zdGFzaC5zaDo0MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgIickYXJncycgaXMgbm90IGEgc3Rhc2gtbGlrZSBjb21taXQiCiBtc2dzdHIgIlwiJGFyZ3NcIiDDpHIgaW50ZSBlbiBcInN0YXNoXCItbGlrbmFuZGUgaW5jaGVja25pbmciCiAKLSM6IGdpdC1zdGFzaC5zaDo0MDQKKyM6IGdpdC1zdGFzaC5zaDo0NDcKICMsIHNoLWZvcm1hdAogbXNnaWQgIickYXJncycgaXMgbm90IGEgc3Rhc2ggcmVmZXJlbmNlIgogbXNnc3RyICJcIiRhcmdzXCIgw6RyIGludGUgZW4gXCJzdGFzaFwiLXJlZmVyZW5zIgogCi0jOiBnaXQtc3Rhc2guc2g6NDEyCisjOiBnaXQtc3Rhc2guc2g6NDU1CiBtc2dpZCAidW5hYmxlIHRvIHJlZnJlc2ggaW5kZXgiCiBtc2dzdHIgImthbiBpbnRlIHVwcGRhdGVyYSBpbmRleGV0IgogCi0jOiBnaXQtc3Rhc2guc2g6NDE2CisjOiBnaXQtc3Rhc2guc2g6NDU5CiBtc2dpZCAiQ2Fubm90IGFwcGx5IGEgc3Rhc2ggaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIgogbXNnc3RyICJLYW4gaW50ZSB0aWxsw6RtcGEgZW4gXCJzdGFzaFwiIG1pdHQgaSBlbiBzYW1tYW5zbGFnbmluZyIKIAotIzogZ2l0LXN0YXNoLnNoOjQyNAorIzogZ2l0LXN0YXNoLnNoOjQ2NwogbXNnaWQgIkNvbmZsaWN0cyBpbiBpbmRleC4gVHJ5IHdpdGhvdXQgLS1pbmRleC4iCiBtc2dzdHIgIktvbmZsaWt0ZXIgaSBpbmRleGV0LiBUZXN0YSB1dGFuIC0taW5kZXguIgogCi0jOiBnaXQtc3Rhc2guc2g6NDI2CisjOiBnaXQtc3Rhc2guc2g6NDY5CiBtc2dpZCAiQ291bGQgbm90IHNhdmUgaW5kZXggdHJlZSIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBzcGFyYSBpbmRleHRyw6RkIgogCi0jOiBnaXQtc3Rhc2guc2g6NDYwCisjOiBnaXQtc3Rhc2guc2g6NTAzCiBtc2dpZCAiQ2Fubm90IHVuc3RhZ2UgbW9kaWZpZWQgZmlsZXMiCiBtc2dzdHIgIkthbiBpbnRlIHRhIGJvcnQgw6RuZHJhZGUgZmlsZXIgdXIga8O2biIKIAotIzogZ2l0LXN0YXNoLnNoOjQ3NQorIzogZ2l0LXN0YXNoLnNoOjUxOAogbXNnaWQgIkluZGV4IHdhcyBub3QgdW5zdGFzaGVkLiIKIG1zZ3N0ciAiSW5kZXhldCBoYXIgaW50ZSB0YWdpdHMgdXIga8O2bi4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0OTIKKyM6IGdpdC1zdGFzaC5zaDo1MzUKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRyb3BwZWQgJHtSRVZ9ICgkcykiCiBtc2dzdHIgIkthc3RhZGUgJHtSRVZ9ICgkcykiCiAKLSM6IGdpdC1zdGFzaC5zaDo0OTMKKyM6IGdpdC1zdGFzaC5zaDo1MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiR7UkVWfTogQ291bGQgbm90IGRyb3Agc3Rhc2ggZW50cnkiCiBtc2dzdHIgIiR7UkVWfTogS3VuZGUgaW50ZSBrYXN0YSBcInN0YXNoXCItcG9zdCIKIAotIzogZ2l0LXN0YXNoLnNoOjUwMAorIzogZ2l0LXN0YXNoLnNoOjU0MwogbXNnaWQgIk5vIGJyYW5jaCBuYW1lIHNwZWNpZmllZCIKIG1zZ3N0ciAiSW5nZXQgZ3Jlbm5hbW4gYW5nYXZzIgogCi0jOiBnaXQtc3Rhc2guc2g6NTcxCisjOiBnaXQtc3Rhc2guc2g6NjE1CiBtc2dpZCAiKFRvIHJlc3RvcmUgdGhlbSB0eXBlIFwiZ2l0IHN0YXNoIGFwcGx5XCIpIgogbXNnc3RyICIoRsO2ciBhdHQgw6V0ZXJzdMOkbGxhIGRlbSwgc2tyaXYgXCJnaXQgc3Rhc2ggYXBwbHlcIikiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgImNhbm5vdCBzdHJpcCBvbmUgY29tcG9uZW50IG9mZiB1cmwgJyRyZW1vdGV1cmwnIgogbXNnc3RyICJrYW4gaW50ZSB0YSBib3J0IGVuIGtvbXBvbmVudCBmcsOlbiB1cmw6ZW4gXCIkcmVtb3RldXJsXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTk2CisjOiBnaXQtc3VibW9kdWxlLnNoOjIzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiTm8gc3VibW9kdWxlIG1hcHBpbmcgZm91bmQgaW4gLmdpdG1vZHVsZXMgZm9yIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAiIgogIkhpdHRhZGUgaW5nZW4gdW5kZXJtb2R1bG1hcHBuaW5nIGkgLmdpdG1vZHVsZXMgZsO2ciBzw7ZrdsOkZ2VuIFwiJHNtX3BhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjgxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDbG9uZSBvZiAnJHVybCcgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGZhaWxlZCIKIG1zZ3N0ciAiTWlzc2x5Y2thZGVzIGtsb25hIFwiJHVybFwiIHRpbGwgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkc21fcGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjI1MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyOTMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkdpdGRpciAnJGEnIGlzIHBhcnQgb2YgdGhlIHN1Ym1vZHVsZSBwYXRoICckYicgb3IgdmljZSB2ZXJzYSIKLW1zZ3N0ciAiR2l0a2F0YWxvZyBcIiRhXCIgaW5nw6VyIGkgdW5kZXJrYXRhbG9nc8O2a3bDpGdlbiBcIiRiXCIgZWxsZXIgb212w6RudCIKK21zZ3N0ciAiR2l0a2F0YWxvZyBcIiRhXCIgaW5nw6VyIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkYlwiIGVsbGVyIG9tdsOkbnQiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzQ5CisjOiBnaXQtc3VibW9kdWxlLnNoOjQwMworbXNnaWQgIlJlbGF0aXZlIHBhdGggY2FuIG9ubHkgYmUgdXNlZCBmcm9tIHRoZSB0b3BsZXZlbCBvZiB0aGUgd29ya2luZyB0cmVlIgorbXNnc3RyICJSZWxhdGl2IHPDtmt2w6RnIGthbiBlbmZhc3QgYW52w6RuZGFzIGZyw6VuIGFyYmV0c2thdGFsb2dlbnMgdG9wcG5pdsOlIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQxMwogIywgc2gtZm9ybWF0CiBtc2dpZCAicmVwbyBVUkw6ICckcmVwbycgbXVzdCBiZSBhYnNvbHV0ZSBvciBiZWdpbiB3aXRoIC4vfC4uLyIKIG1zZ3N0ciAiYXJraXYtVVJMOiBcIiRyZXBvXCIgbcOlc3RlIHZhcmEgYWJzb2x1dCBlbGxlciBiw7ZyamEgbWVkIC4vfC4uLyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDMwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJHNtX3BhdGgnIGFscmVhZHkgZXhpc3RzIGluIHRoZSBpbmRleCIKIG1zZ3N0ciAiXCIkc21fcGF0aFwiIGZpbm5zIHJlZGFuIGkgaW5kZXhldCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNzAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDM0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGZvbGxvd2luZyBwYXRoIGlzIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKQEAgLTk3ODQsMjIgKzEwMTE0LDIyIEBACiAiJHNtX3BhdGhcbiIKICJBbnbDpG5kIC1mIG9tIGR1IHZlcmtsaWdlbiB2aWxsIGzDpGdnYSB0aWxsIGRlbiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDUyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgZXhpc3RpbmcgcmVwbyBhdCAnJHNtX3BhdGgnIHRvIHRoZSBpbmRleCIKIG1zZ3N0ciAiTMOkZ2dlciB0aWxsIGJlZmludGxpZ3QgYXJraXYgaSBcIiRzbV9wYXRoXCIgaSBpbmRleGV0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM5MAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhIHZhbGlkIGdpdCByZXBvIgogbXNnc3RyICJcIiRzbV9wYXRoXCIgZmlubnMgcmVkYW4gb2NoIMOkciBpbnRlIGV0dCBnaWx0aWd0IGdpdC1hcmtpdiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozOTgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDYyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBIGdpdCBkaXJlY3RvcnkgZm9yICckc21fbmFtZScgaXMgZm91bmQgbG9jYWxseSB3aXRoIHJlbW90ZShzKToiCiBtc2dzdHIgIkVuIGdpdC1rYXRhbG9nIGbDtnIgXCIkc21fbmFtZVwiIGhpdHRhZGVzIGxva2FsdCBtZWQgZmrDpHJyKGFyKToiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIHJldXNlIHRoaXMgbG9jYWwgZ2l0IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIGNsb25pbmcgYWdhaW4gZnJvbSIKQEAgLTk4MDcsMTQgKzEwMTM3LDE0IEBACiAiRsO2ciBhdHQgw6V0ZXJhbnbDpG5kYSBkZW4gbG9rYWxhIGdpdC1rYXRhbG9nZW4gaXN0w6RsbGV0IGbDtnIgYXR0IHDDpSBueXR0IGtsb25hICIKICJmcsOlbiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAidXNlIHRoZSAnLS1mb3JjZScgb3B0aW9uLiBJZiB0aGUgbG9jYWwgZ2l0IGRpcmVjdG9yeSBpcyBub3QgdGhlIGNvcnJlY3QgcmVwbyIKIG1zZ3N0ciAiIgogImFudsOkbmQgZmxhZ2dhbiBcIi0tZm9yY2VcIi4gT20gZGVuIGxva2FsYSBnaXQta2F0YWxvZ2VuIGludGUgw6RyIHJpa3RpZ3QgYXJraXYiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIm9yIHlvdSBhcmUgdW5zdXJlIHdoYXQgdGhpcyBtZWFucyBjaG9vc2UgYW5vdGhlciBuYW1lIHdpdGggdGhlICctLW5hbWUnICIKQEAgLTk4MjMsMjEwICsxMDE1MywyNzAgQEAKICJlbGxlciBvbSBkdSDDpHIgb3PDpGtlciBww6UgdmFkIGRldCBpbm5lYsOkciwgdsOkbGogbnl0dCBuYW1uIG1lZCBmbGFnZ2FuIFwiLS1uYW1lIgogIlwiLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDUKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJSZWFjdGl2YXRpbmcgbG9jYWwgZ2l0IGRpcmVjdG9yeSBmb3Igc3VibW9kdWxlICckc21fbmFtZScuIgogbXNnc3RyICJBa3RpdmVyYXIgbG9rYWwgZ2l0LWthdGFsb2cgZsO2ciB1bmRlcm1vZHVsZW4gXCIkc21fbmFtZVwiIHDDpSBueXR0LiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDgxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgc3VibW9kdWxlICckc21fcGF0aCciCiBtc2dzdHIgIkthbiBpbnRlIGNoZWNrYSB1dCB1bmRlcm1vZHVsZW4gXCIkc21fcGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQyMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODYKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBhZGQgc3VibW9kdWxlICckc21fcGF0aCciCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBsw6RnZ2EgdGlsbCB1bmRlcm1vZHVsZW4gXCIkc21fcGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKIG1zZ3N0ciAiTWlzc2x5Y2thZGVzIHJlZ2lzdHJlcmEgdW5kZXJtb2R1bGVuIFwiJHNtX3BhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NzQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTM5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiR8OlciBpbiBpIFwiJHByZWZpeCRzbV9wYXRoXCIiCittc2dpZCAiRW50ZXJpbmcgJyRwcmVmaXgkZGlzcGxheXBhdGgnIgorbXNnc3RyICJHw6VyIGluIGkgXCIkcHJlZml4JGRpc3BsYXlwYXRoXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDg4CisjOiBnaXQtc3VibW9kdWxlLnNoOjU1NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3RvcHBpbmcgYXQgJyRzbV9wYXRoJzsgc2NyaXB0IHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4iCittc2dpZCAiU3RvcHBpbmcgYXQgJyRwcmVmaXgkZGlzcGxheXBhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKIG1zZ3N0ciAiIgotIlN0b3BwYXIgcMOlIFwiJHNtX3BhdGhcIjsgc2tyaXB0ZXQgcmV0dXJuZXJhZGUgZW4gc3RhdHVzIHNraWxkIGZyw6VuIG5vbGwuIgorIlN0b3BwYXIgcMOlIFwiJHByZWZpeCRkaXNwbGF5cGF0aFwiOyBza3JpcHRldCByZXR1cm5lcmFkZSBlbiBzdGF0dXMgc2tpbGQgIgorImZyw6VuIG5vbGwuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjUzMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDAKICMsIHNoLWZvcm1hdAotbXNnaWQgIk5vIHVybCBmb3VuZCBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyBpbiAuZ2l0bW9kdWxlcyIKLW1zZ3N0ciAiSGl0dGFkZSBpbmdlbiB1cmwgZsO2ciB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRzbV9wYXRoXCIgaSAuZ2l0bW9kdWxlcyIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NDEKLSMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cmwgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIk1pc3NseWNrYWRlcyByZWdpc3RyZXJhIHVybCBmw7ZyIHVuZGVya2F0YWxvZ3PDtmt2w6RnIFwiJHNtX3BhdGhcIiIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NDMKLSMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSByZWdpc3RlcmVkIGZvciBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIlVuZGVybW9kdWxlbiBcIiRuYW1lXCIgKCR1cmwpIHJlZ2lzdHJlcmFkIGbDtnIgc8O2a3bDpGdlbiBcIiRzbV9wYXRoXCIiCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTUxCi0jLCBzaC1mb3JtYXQKLW1zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXBkYXRlIG1vZGUgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCittc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyBpbiAuZ2l0bW9kdWxlcyIKIG1zZ3N0ciAiIgotIk1pc3NseWNrYWRlcyByZWdpc3RyZXJhIHVwcGRhdGVyaW5nc2zDpGdlIGbDtnIgdW5kZXJtb2R1bHPDtmt2w6RnIFwiJHNtX3BhdGhcIiIKKyJIaXR0YWRlIGluZ2VuIHVybCBmw7ZyIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJGRpc3BsYXlwYXRoXCIgaSAuZ2l0bW9kdWxlcyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjA5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXJsIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiTWlzc2x5Y2thZGVzIHJlZ2lzdHJlcmEgdXJsIGbDtnIgdW5kZXJtb2R1bHPDtmt2w6RnIFwiJGRpc3BsYXlwYXRoXCIiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjExCisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIlVuZGVybW9kdWxlbiBcIiRuYW1lXCIgKCR1cmwpIHJlZ2lzdHJlcmFkIGbDtnIgc8O2a3bDpGdlbiBcIiRkaXNwbGF5cGF0aFwiIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxOQorIywgc2gtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVwZGF0ZSBtb2RlIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIk1pc3NseWNrYWRlcyByZWdpc3RyZXJhIHVwcGRhdGVyaW5nc2zDpGdlIGbDtnIgdW5kZXJtb2R1bHPDtmt2w6RnIFwiJGRpc3BsYXlwYXRoIgorIlwiIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjY1NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiVXNlICcuJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gZGVpbml0aWFsaXplIGFsbCBzdWJtb2R1bGVzIgogbXNnc3RyICJBbnbDpG5kIFwiLlwiIG9tIGR1IHZlcmtsaWdlbiB2aWxsIGF2aW5pdGllcmEgYWxsYSB1bmRlcm1vZHVsZXIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjY3MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnJHNtX3BhdGgnIGNvbnRhaW5zIGEgLmdpdCBkaXJlY3RvcnkiCi1tc2dzdHIgIlVuZGVybW9kdWxlbnMgYXJiZXRza2F0YWxvZyBcIiRzbV9wYXRoXCIgaW5uZWjDpWxsZXIga2F0YWxvZ2VuIFwiLmdpdFwiIgorbXNnaWQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIKK21zZ3N0ciAiIgorIlVuZGVybW9kdWxlbnMgYXJiZXRza2F0YWxvZyBcIiRkaXNwbGF5cGF0aFwiIGlubmVow6VsbGVyIGthdGFsb2dlbiBcIi5naXRcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njc0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICIiCiAiKGFudsOkbmQgXCJybSAtcmZcIiBvbSBkdSB2ZXJrbGlnZW4gdmlsbCB0YSBib3J0IGRlbiBvY2ggYWxsIGRlc3MgaGlzdG9yaWspIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODAKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgorIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgogImRpc2NhcmQgdGhlbSIKIG1zZ3N0ciAiIgotIlVuZGVybW9kdWxlbnMgYXJiZXRza2F0YWxvZyBcIiRzbV9wYXRoXCIgaGFyIGxva2FsYSDDpG5kcmluZ2FyOyBcIi1mXCIga2FzdGFyICIKLSJib3J0IGRlbSIKKyJVbmRlcm1vZHVsZW5zIGFyYmV0c2thdGFsb2cgXCIkZGlzcGxheXBhdGhcIiBoYXIgbG9rYWxhIMOkbmRyaW5nYXI7IFwiLWZcIiAiCisia2FzdGFyIGJvcnQgZGVtIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODMKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNsZWFyZWQgZGlyZWN0b3J5ICckc21fcGF0aCciCi1tc2dzdHIgIlJlbnNhZGUga2F0YWxvZ2VuIFwiJHNtX3BhdGhcIiIKK21zZ2lkICJDbGVhcmVkIGRpcmVjdG9yeSAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiUmVuc2FkZSBrYXRhbG9nZW4gXCIkZGlzcGxheXBhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njg0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgcmVtb3ZlIHN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiS3VuZGUgaW50ZSB0YSBib3J0IHVuZGVya2F0YWxvZ2VucyBhcmJldHNrYXRhbG9nIFwiJHNtX3BhdGhcIiIKK21zZ2lkICJDb3VsZCBub3QgcmVtb3ZlIHN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIkt1bmRlIGludGUgdGEgYm9ydCB1bmRlcm1vZHVsZW5zIGFyYmV0c2thdGFsb2cgXCIkZGlzcGxheXBhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njg3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiS3VuZGUgaW50ZSBza2FwYSB0b20gdW5kZXJtb2R1bHNrYXRhbG9nIFwiJHNtX3BhdGhcIiIKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIkt1bmRlIGludGUgc2thcGEgdG9tIHVuZGVybW9kdWxza2F0YWxvZyBcIiRkaXNwbGF5cGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYyNgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2OTYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiVW5kZXJtb2R1bGVuIFwiJG5hbWVcIiAoJHVybCkgYXZyZWdpc3RyZXJhZCBmw7ZyIHPDtmt2w6RnZW4gXCIkc21fcGF0aFwiIgorbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIiIKKyJVbmRlcm1vZHVsZW4gXCIkbmFtZVwiICgkdXJsKSBhdnJlZ2lzdHJlcmFkIGbDtnIgc8O2a3bDpGdlbiBcIiRkaXNwbGF5cGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjczMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MTEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyBub3QgaW5pdGlhbGl6ZWRcbiIKKyJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyBub3QgaW5pdGlhbGl6ZWRcbiIKICJNYXliZSB5b3Ugd2FudCB0byB1c2UgJ3VwZGF0ZSAtLWluaXQnPyIKIG1zZ3N0ciAiIgotIlVuZGVybW9kdWxlbiBcIiRwcmVmaXgkc21fcGF0aFwiIGhhciBpbnRlIGluaXRpZXJhdHNcbiIKKyJVbmRlcm1vZHVsZW4gXCIkZGlzcGxheXBhdGhcIiBoYXIgaW50ZSBpbml0aWVyYXRzXG4iCiAiS2Fuc2tlIGR1IHZpbGwga8O2cmEgXCJ1cGRhdGUgLS1pbml0XCI/IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc0NAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MjQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIiIKLSJLYW4gaW50ZSBoaXR0YSBha3R1ZWxsIHJldmlzaW9uIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkcHJlZml4JHNtX3BhdGhcIiIKK21zZ2lkICJVbmFibGUgdG8gZmluZCBjdXJyZW50IHJldmlzaW9uIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLYW4gaW50ZSBoaXR0YSBha3R1ZWxsIHJldmlzaW9uIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkZGlzcGxheXBhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3NTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODMzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAiS2FuIGludGUgaMOkbXRhIGkgdW5kZXJtb2R1bHPDtmt2w6RnIFwiJHNtX3BhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3NzcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODU3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIkthbiBpbnRlIGjDpG10YSBpIHVuZGVybW9kdWxzw7ZrdsOkZyBcIiRwcmVmaXgkc21fcGF0aFwiIgorbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiS2FuIGludGUgaMOkbXRhIGkgdW5kZXJtb2R1bHPDtmt2w6RnIFwiJGRpc3BsYXlwYXRoXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzkxCisjOiBnaXQtc3VibW9kdWxlLnNoOjg3MQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIHJlYmFzZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICJLYW4gaW50ZSBvbWJhc2VyYSBcIiRzaGExXCIgaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRwcmVmaXgkc21fcGF0aFwiIgorbXNnaWQgIlVuYWJsZSB0byByZWJhc2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiS2FuIGludGUgb21iYXNlcmEgXCIkc2hhMVwiIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkZGlzcGxheXBhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODcyCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogcmViYXNlZCBpbnRvICckc2hhMSciCi1tc2dzdHIgIlVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHByZWZpeCRzbV9wYXRoXCI6IG9tYmFzZXJhZGUgaW4gaSBcIiRzaGExXCIiCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IHJlYmFzZWQgaW50byAnJHNoYTEnIgorbXNnc3RyICJVbmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRkaXNwbGF5cGF0aFwiOiBvbWJhc2VyYWRlIGluIGkgXCIkc2hhMVwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5NworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBtZXJnZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICJLYW4gaW50ZSBzbMOlIGlob3AgXCIkc2hhMVwiIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkcHJlZml4JHNtX3BhdGhcIiIKK21zZ2lkICJVbmFibGUgdG8gbWVyZ2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiS2FuIGludGUgc2zDpSBpaG9wIFwiJHNoYTFcIiBpIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJGRpc3BsYXlwYXRoXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk4CisjOiBnaXQtc3VibW9kdWxlLnNoOjg3OAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgotbXNnc3RyICJVbmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRwcmVmaXgkc21fcGF0aFwiOiBzYW1tYW5zbGFnZW4gaSBcIiRzaGExXCIiCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgorbXNnc3RyICJVbmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRkaXNwbGF5cGF0aFwiOiBzYW1tYW5zbGFnZW4gaSBcIiRzaGExXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6ODAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjg4MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGNoZWNrb3V0ICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIkthbiBpbnRlIGNoZWNrYSB1dCBcIiRzaGExXCIgaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRwcmVmaXgkc21fcGF0aFwiIgorbXNnaWQgIiIKKyJFeGVjdXRpb24gb2YgJyRjb21tYW5kICRzaGExJyBmYWlsZWQgaW4gc3VibW9kdWxlICBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnc3RyICIiCisiTWlzc2x5Y2thZGVzIGvDtnJhIFwiJGNvbW1hbmQgJHNoYTFcIiBpIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHByZWZpeCRzbV9wYXRoXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6ODA0CisjOiBnaXQtc3VibW9kdWxlLnNoOjg4NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IGNoZWNrZWQgb3V0ICckc2hhMSciCi1tc2dzdHIgIlVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHByZWZpeCRzbV9wYXRoXCI6IGNoZWNrYWRlIHV0IFwiJHNoYTFcIiIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogJyRjb21tYW5kICRzaGExJyIKK21zZ3N0ciAiVW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkcHJlZml4JHNtX3BhdGhcIjogXCIkY29tbWFuZCAkc2hhMVwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIk1pc3NseWNrYWRlcyByZWt1cnNlcmEgaW4gaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRwcmVmaXgkc21fcGF0aFwiIgorbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLYW4gaW50ZSBjaGVja2EgdXQgXCIkc2hhMVwiIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkZGlzcGxheXBhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODkwCisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogY2hlY2tlZCBvdXQgJyRzaGExJyIKK21zZ3N0ciAiVW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkZGlzcGxheXBhdGhcIjogY2hlY2thZGUgdXQgXCIkc2hhMVwiIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjkxNworIywgc2gtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiTWlzc2x5Y2thZGVzIHJla3Vyc2VyYSBpbiBpIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJGRpc3BsYXlwYXRoXCIiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTAyNQogbXNnaWQgIlRoZSAtLWNhY2hlZCBvcHRpb24gY2Fubm90IGJlIHVzZWQgd2l0aCB0aGUgLS1maWxlcyBvcHRpb24iCiBtc2dzdHIgIkZsYWdnYW4gLS1jYWNoZWQga2FuIGludGUgYW52w6RuZGFzIG1lZCBmbGFnZ2FuIC0tZmlsZXMiCiAKICMuIHVuZXhwZWN0ZWQgdHlwZQotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5NzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA2NgogIywgc2gtZm9ybWF0CiBtc2dpZCAidW5leHBlY3RlZCBtb2RlICRtb2RfZHN0IgogbXNnc3RyICJvdsOkbnRhdCBsw6RnZSAkbW9kX2RzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5OTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA4NgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX3NyYyIKLW1zZ3N0ciAiICBWYXJuaW5nOiAkbmFtZSBpbm5laMOlbGxlciBpbnRlIGluY2hlY2tuaW5nICRzaGExX3NyYyIKK21zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9zcmMiCittc2dzdHIgIiAgVmFybmluZzogJGRpc3BsYXlfbmFtZSBpbm5laMOlbGxlciBpbnRlIGluY2hlY2tuaW5nZW4gJHNoYTFfc3JjIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMDAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA4OQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKLW1zZ3N0ciAiICBWYXJuaW5nOiAkbmFtZSBpbm5laMOlbGxlciBpbnRlIGluY2hlY2tuaW5nICRzaGExX2RzdCIKK21zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9kc3QiCittc2dzdHIgIiAgVmFybmluZzogJGRpc3BsYXlfbmFtZSBpbm5laMOlbGxlciBpbnRlIGluY2hlY2tuaW5nZW4gJHNoYTFfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5MgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyAkc2hhMV9zcmMgYW5kICRzaGExX2RzdCIKLW1zZ3N0ciAiICBWYXJuaW5nOiAkbmFtZSBpbm5laMOlbGxlciBpbnRlIGluY2hlY2tuaW5nYXIgJHNoYTFfc3JjIG9jaCAkc2hhMV9kc3QiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgorbXNnc3RyICIiCisiICBWYXJuaW5nOiAkZGlzcGxheV9uYW1lIGlubmVow6VsbGVyIGludGUgaW5jaGVja25pbmdhcm5hICRzaGExX3NyYyBvY2ggIgorIiRzaGExX2RzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDI4CisjOiBnaXQtc3VibW9kdWxlLnNoOjExMTcKIG1zZ2lkICJibG9iIgogbXNnc3RyICJibG9iIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwNjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1NQogbXNnaWQgIlN1Ym1vZHVsZXMgY2hhbmdlZCBidXQgbm90IHVwZGF0ZWQ6IgogbXNnc3RyICJVbmRlcm1vZHVsZXIgw6RuZHJhZGUgbWVuIGludGUgdXBwZGF0ZXJhZGU6IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwNjgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1NwogbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCiBtc2dzdHIgIlVuZGVybW9kdWxlcnMgw6RuZHJpbmdhciBhdHQgY2hlY2thIGluOiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTUzCisjOiBnaXQtc3VibW9kdWxlLnNoOjEyNDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAiTWlzc2x5Y2thZGVzIHJla3Vyc2VyYSBpbiBpIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHNtX3BhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjE2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEzMDYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIlN5bmtyb25pc2VyYXIgdW5kZXJtb2R1bC11cmwgZsO2ciBcIiRwcmVmaXgkc21fcGF0aFwiIgorbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIlN5bmtyb25pc2VyYXIgdW5kZXJtb2R1bC11cmwgZsO2ciBcIiRkaXNwbGF5cGF0aFwiIgorCisjfiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKKyN+IG1zZ3N0ciAiICAocsOkdHRhIGtvbmZsaWt0ZXIgb2NoIGvDtnIgc2VkYW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKKworI34gbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiCisjfiBtc2dzdHIgIiAgKGFsbGEga29uZmxpa3RlciBoYXIgcsOkdHRhdHM6IGvDtnIgXCJnaXQgY29tbWl0XCIpIgorCisjfiBtc2dpZCAibW9yZSB0aGFuICVkIHRyZWVzIGdpdmVuOiAnJXMnIgorI34gbXNnc3RyICJtZXIgw6RuICVkIHRyw6RkIGFuZ2F2czogXCIlc1wiIgorCisjfiBtc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tbm8tZmYgd2l0aCAtLWZmLW9ubHkuIgorI34gbXNnc3RyICJEdSBrYW4gaW50ZSBrb21iaW5lcmEgLS1uby1mZiBtZWQgLS1mZi1vbmx5LiIKKworI34gbXNnaWQgIiIKKyN+ICJzdWJtb2R1bGUgJyVzJyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCisjfiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzICIKKyN+ICJoaXN0b3J5KSIKKyN+IG1zZ3N0ciAiIgorI34gInVuZGVybW9kdWxlbiBcIiVzXCIgKGVsbGVyIGVuIGF2IGRlc3MgdW5kZXJtb2R1bGVyKSBhbnbDpG5kZXIgZW4gLmdpdC0iCisjfiAia2F0YWxvZ1xuIgorI34gIihhbnbDpG5kIFwicm0gLXJmXCIgb20gZHUgdmVya2xpZ2VuIHZpbGwgdGEgYm9ydCBkZW4gb2NoIGFsbCBkZXNzIGhpc3RvcmlrKSIKKworI34gbXNnaWQgIiIKKyN+ICInJXMnIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXhcbiIKKyN+ICIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgorI34gbXNnc3RyICIiCisjfiAiXCIlc1wiIGhhciBrw7ZhZGUgw6RuZHJpbmdhciBpIGluZGV4ZXRcbiIKKyN+ICIoYW52w6RuZCAtLWNhY2hlZCBmw7ZyIGF0dCBiZWjDpWxsYSBmaWxlbiBlbGxlciAtZiBmw7ZyIGF0dCB0dmluZ2EgIgorI34gImJvcnR0YWduaW5nKSIKKworI34gbXNnaWQgInNob3cgY29tbWl0cyB3aGVyZSBubyBwYXJlbnQgY29tZXMgYmVmb3JlIGl0cyBjaGlsZHJlbiIKKyN+IG1zZ3N0ciAidmlzYSBpbmNoZWNrbmluZ2FyIGTDpHIgaW5nZW4gZsO2csOkbGRlciBrb21tZXIgZsO2cmUgZGVzcyBiYXJuIgorCisjfiBtc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiCisjfiBtc2dzdHIgInZpc2EgSEVBRC1yZWZlcmVuc2VuIgorCisjfiBtc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorI34gbXNnc3RyICJLYW4gaW50ZSBow6RtdGEgaSB1bmRlcm1vZHVsc8O2a3bDpGcgXCIkcHJlZml4JHNtX3BhdGhcIiIKKworI34gbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCisjfiBtc2dzdHIgIk1pc3NseWNrYWRlcyByZWt1cnNlcmEgaW4gaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRwcmVmaXgkc21fcGF0aFwiIgogCiAjfiBtc2dpZCAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gICdzdGF0dXMgLXVubyciCiAjfiBtc2dzdHIgIkRldCB0b2cgJS4yZiBzZWt1bmRlciBhdHQgcsOka25hIG9zcMOlcmFkZSBmaWxlci4gXCJzdGF0dXMgLXVub1wiIgpAQCAtMTAxODcsNzAgKzEwNTc3LDMgQEAKIAogI34gbXNnaWQgIkZhaWxlZCB0byB3cml0ZSBjdXJyZW50IG5vdGVzIHRyZWUgdG8gZGF0YWJhc2UiCiAjfiBtc2dzdHIgIkt1bmRlIGludGUgc2tyaXZhIGFrdHVlbGx0IGFudGVja25pbmdzdHLDpGQgdGlsbCBkYXRhYmFzZW4iCi0KLSMgRklYTUU6IFVudHJhbnNsYXRhYmxlIQotIwotI34gbXNnaWQgIlJlZnVzaW5nIHRvICVzIG5vdGVzIGluICVzIChvdXRzaWRlIG9mIHJlZnMvbm90ZXMvKSIKLSN+IG1zZ3N0ciAiVsOkZ3JhciAlcyBhbnRlY2tuaW5nYXIgaSAlcyAodXRhbmbDtnIgcmVmcy9ub3Rlcy8pIgotCi0jfiBtc2dpZCAiYWRkIgotI34gbXNnc3RyICJhZGQiCi0KLSN+IG1zZ2lkICJjb3B5IgotI34gbXNnc3RyICJjb3B5IgotCi0jfiBtc2dpZCAic2hvdyIKLSN+IG1zZ3N0ciAic2hvdyIKLQotI34gbXNnaWQgInJlbW92ZSIKLSN+IG1zZ3N0ciAicmVtb3ZlIgotCi0jfiBtc2dpZCAicHJ1bmUiCi0jfiBtc2dzdHIgInBydW5lIgotCi0jfiBtc2dpZCAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGlzIG5vdCB0cmFja2luZyBhbnl0aGluZy4iCi0jfiBtc2dzdHIgIkRlbiBha3R1ZWxsYSBncmVuZW4gJXMgc3DDpXJhciBpbmdlbnRpbmcuIgotCi0jfiBtc2dpZCAiTm8gZGVzdGluYXRpb24gY29uZmlndXJlZCB0byBwdXNoIHRvLiIKLSN+IG1zZ3N0ciAiSGFyIGludGUgc3TDpGxsdCBpbiBuw6Vnb24gZGVzdGluYXRpb24gYXR0IHPDpG5kYSB0aWxsLiIKLQotI34gbXNnaWQgIlJlZmxvZyBhY3Rpb24gbWVzc2FnZSB0b28gbG9uZzogJS4qcy4uLiIKLSN+IG1zZ3N0ciAiUmVmbG9nLWjDpG5kZWxzZW1lZGRlbGFuZGUgZsO2ciBsw6VuZ3Q6ICUuKnMuLi4iCi0KLSN+IG1zZ2lkICJDb3VsZCBub3QgcmVhZCBjb21taXQgbWVzc2FnZSBvZiAlcyIKLSN+IG1zZ3N0ciAiS3VuZGUgaW50ZSBsw6RzYSBpbmNoZWNrbmluZ3NtZWRkZWxhbmRldCBmw7ZyICVzIgotCi0jfiBtc2dpZCAiQ291bGQgbm90IGV4dHJhY3QgYXV0aG9yIGVtYWlsIGZyb20gJXMiCi0jfiBtc2dzdHIgIkt1bmRlIGludGUgaMOkbXRhIGbDtnJmYXR0YXJlbnMgZS1wb3N0YWRyZXNzIGZyw6VuICVzIgotCi0jfiBtc2dpZCAiQ291bGQgbm90IGV4dHJhY3QgYXV0aG9yIHRpbWUgZnJvbSAlcyIKLSN+IG1zZ3N0ciAiS3VuZGUgaW50ZSBow6RtdGEgZsO2cmZhdHRhcnRpZCBmcsOlbiAlcyIKLQotI34gbXNnaWQgImNoZXJyeS1waWNrIC0tZmYgY2Fubm90IGJlIHVzZWQgd2l0aCAtLXNpZ25vZmYiCi0jfiBtc2dzdHIgImNoZXJyeS1waWNrIC0tZmYga2FuIGludGUgYW52w6RuZGFzIG1lZCAtLXNpZ25vZmYiCi0KLSN+IG1zZ2lkICJjaGVycnktcGljayAtLWZmIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1uby1jb21taXQiCi0jfiBtc2dzdHIgImNoZXJyeS1waWNrIC0tZmYga2FuIGludGUgYW52w6RuZGFzIG1lZCAtLW5vLWNvbW1pdCIKLQotI34gbXNnaWQgImNoZXJyeS1waWNrIC0tZmYgY2Fubm90IGJlIHVzZWQgd2l0aCAteCIKLSN+IG1zZ3N0ciAiY2hlcnJ5LXBpY2sgLS1mZiBrYW4gaW50ZSBhbnbDpG5kYXMgbWVkIC14IgotCi0jfiBtc2dpZCAiY2hlcnJ5LXBpY2sgLS1mZiBjYW5ub3QgYmUgdXNlZCB3aXRoIC0tZWRpdCIKLSN+IG1zZ3N0ciAiY2hlcnJ5LXBpY2sgLS1mZiBrYW4gaW50ZSBhbnbDpG5kYXMgbWVkIC0tZWRpdCIKLQotI34gbXNnaWQgImNvbW1pdHRlciBpbmZvIHRvbyBsb25nLiIKLSN+IG1zZ3N0ciAiaW5jaGVja2FyaW5mb3JtYXRpb24gZsO2ciBsw6VuZy4iCi0KLSN+IG1zZ2lkICIiCi0jfiAiXG4iCi0jfiAiI1xuIgotI34gIiMgV3JpdGUgYSB0YWcgbWVzc2FnZVxuIgotI34gIiNcbiIKLSN+IG1zZ3N0ciAiIgotI34gIlxuIgotI34gIiNcbiIKLSN+ICIjIFNrcml2IGV0dCB0YWdnbWVkZGVsYW5kZVxuIgotI34gIiNcbiIKLQotI34gbXNnaWQgInNpZ25pbmcga2V5IHZhbHVlIHRvbyBsb25nICglLjEwcy4uLikiCi0jfiBtc2dzdHIgInNpZ25lcmluZ3NueWNrZWx2w6RyZGV0IGbDtnIgbMOlbmd0ICglLjEwcy4uLikiCmRpZmYgLS1naXQgYS9wby92aS5wbyBiL3BvL3ZpLnBvCmluZGV4IGM2YWY4ZDUuLmRkMmQyYTcgMTAwNjQ0Ci0tLSBhL3BvL3ZpLnBvCisrKyBiL3BvL3ZpLnBvCkBAIC0xLDE1ICsxLDE0IEBACiAjIFZpZXRuYW1lc2UgdHJhbnNsYXRpb24gZm9yIEdJVC1DT1JFLgotIyBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBUcuG6p24gTmfhu41jIFF1w6JuLgogIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgZ2l0LWNvcmUgcGFja2FnZS4KICMgRmlyc3QgdHJhbnNsYXRlZCBieSBUcuG6p24gTmfhu41jIFF1w6JuIDx2bndpbGRtYW5AZ21haWwuY29tPiwgMjAxMi0yMDEzLgogIyBOZ3V54buFbiBUaMOhaSBOZ+G7jWMgRHV5IDxwY2xvdWRzQGdtYWlsLmNvbT4sIDIwMTIuCiAjCiBtc2dpZCAiIgogbXNnc3RyICIiCi0iUHJvamVjdC1JZC1WZXJzaW9uOiBnaXQtdjEuOC4zLXJjMC0yMC1nYzZiYzdcbiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IGdpdC12MS44LjQtcmMxLTIyLWdiOGVjZjIzXG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IEdpdCBNYWlsaW5nIExpc3QgPGdpdEB2Z2VyLmtlcm5lbC5vcmc+XG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDQtMzAgMDg6MjUrMDgwMFxuIgotIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMDUtMDEgMTQ6MjYrMDcwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA4LTA2IDE0OjEwKzA4MDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDEzLTA4LTA2IDE0OjI4KzA3MDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IFRy4bqnbiBOZ+G7jWMgUXXDom4gPHZud2lsZG1hbkBnbWFpbC5jb20+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogVmlldG5hbWVzZSA8dHJhbnNsYXRpb24tdGVhbS12aUBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCiAiTGFuZ3VhZ2U6IHZpXG4iCkBAIC0yMiw3ICsyMSw3IEBACiAiWC1Qb2VkaXQtQmFzZXBhdGg6IC4uL1xuIgogIlgtR2VuZXJhdG9yOiBQb2VkaXQgMS41LjVcbiIKIAotIzogYWR2aWNlLmM6NTMKKyM6IGFkdmljZS5jOjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImhpbnQ6ICUuKnNcbiIKIG1zZ3N0ciAiZ+G7o2kgw706ICUuKnNcbiIKQEAgLTMxLDcgKzMwLDcgQEAKICMuICogTWVzc2FnZSB1c2VkIGJvdGggd2hlbiAnZ2l0IGNvbW1pdCcgZmFpbHMgYW5kIHdoZW4KICMuICogb3RoZXIgY29tbWFuZHMgZG9pbmcgYSBtZXJnZSBkby4KICMuCi0jOiBhZHZpY2UuYzo4MworIzogYWR2aWNlLmM6ODcKIG1zZ2lkICIiCiAiRml4IHRoZW0gdXAgaW4gdGhlIHdvcmsgdHJlZSxcbiIKICJhbmQgdGhlbiB1c2UgJ2dpdCBhZGQvcm0gPGZpbGU+JyBhc1xuIgpAQCAtMzksOSArMzgsOSBAQAogIm9yIHVzZSAnZ2l0IGNvbW1pdCAtYScuIgogbXNnc3RyICIiCiAiU+G7rWEgY2jDum5nIHRyb25nIGPDonkgbMOgbSB2aeG7h2MsXG4iCi0idsOgIHNhdSDEkcOzIGTDuW5nIGzhu4duaCDigJxnaXQgYWRkL3JtIDx04bqtcC10aW4+4oCdIGTDoG5oIHJpw6puZ1xuIgorInbDoCBzYXUgxJHDsyBkw7luZyBs4buHbmggXCJnaXQgYWRkL3JtIDx04bqtcC10aW4+XCIgZMOgbmggcmnDqm5nXG4iCiAiY2hvIHZp4buHYyDEkcOhbmggZOG6pXUgdOG6rXAgdGluIGPhuqduIGdp4bqjaSBxdXnhur90IHbDoCB04bqhbyBs4bqnbiBjaHV54buDbiBnaWFvLFxuIgotImhv4bq3YyBsw6AgZMO5bmcgbOG7h25oIOKAnGdpdCBjb21taXQgLWHigJ0uIgorImhv4bq3YyBsw6AgZMO5bmcgbOG7h25oIFwiZ2l0IGNvbW1pdCAtYVwiLiIKIAogIzogYXJjaGl2ZS5jOjEwCiBtc2dpZCAiZ2l0IGFyY2hpdmUgW29wdGlvbnNdIDx0cmVlLWlzaD4gWzxwYXRoPi4uLl0iCkBAIC03MCw3ICs2OSw3IEBACiBtc2dpZCAiYXJjaGl2ZSBmb3JtYXQiCiBtc2dzdHIgIsSR4buLbmggZOG6oW5nIGzGsHUgdHLhu68iCiAKLSM6IGFyY2hpdmUuYzozMjQgYnVpbHRpbi9sb2cuYzoxMTI2CisjOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTE3MwogbXNnaWQgInByZWZpeCIKIG1zZ3N0ciAidGnhu4FuIHThu5EiCiAKQEAgLTc4LDExICs3NywxMSBAQAogbXNnaWQgInByZXBlbmQgcHJlZml4IHRvIGVhY2ggcGF0aG5hbWUgaW4gdGhlIGFyY2hpdmUiCiBtc2dzdHIgIm7hu5FpIHRow6ptIHRp4buBbiB04buRIHbDoG8gdOG7q25nIMSRxrDhu51uZyBk4bqrbiB04bqtcCB0aW4gdHJvbmcga2hvIGzGsHUiCiAKLSM6IGFyY2hpdmUuYzozMjYgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIzNzEKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcyIGJ1aWx0aW4vY29uZmlnLmM6NTUgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NQotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NyBidWlsdGluL2dyZXAuYzo3MTUgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwIGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9ub3Rlcy5jOjUzNgotIzogYnVpbHRpbi9ub3Rlcy5jOjY5MyBidWlsdGluL3JlYWQtdHJlZS5jOjEwNyBwYXJzZS1vcHRpb25zLmg6MTQ5CisjOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCisjOiBidWlsdGluL2JsYW1lLmM6MjI5MyBidWlsdGluL2NvbmZpZy5jOjU2IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUgYnVpbHRpbi9ncmVwLmM6NzE0IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NiBidWlsdGluL2xzLWZpbGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo0MDgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NjUgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDggcGFyc2Utb3B0aW9ucy5oOjE1MgogbXNnaWQgImZpbGUiCiBtc2dzdHIgInThuq1wLXRpbiIKIApAQCAtMTE0LDcgKzExMyw3IEBACiBtc2dpZCAibGlzdCBzdXBwb3J0ZWQgYXJjaGl2ZSBmb3JtYXRzIgogbXNnc3RyICJsaeG7h3Qga8OqIGPDoWMga2nhu4N1IG7DqW4gxJHGsOG7o2MgaOG7lyB0cuG7oyIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODYKKyM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg1CiBtc2dpZCAicmVwbyIKIG1zZ3N0ciAia2hvIgogCkBAIC0xMjIsNyArMTIxLDcgQEAKIG1zZ2lkICJyZXRyaWV2ZSB0aGUgYXJjaGl2ZSBmcm9tIHJlbW90ZSByZXBvc2l0b3J5IDxyZXBvPiIKIG1zZ3N0ciAibmjhuq1uIGtobyBsxrB1IHThu6sga2hvIGNo4bupYSA8a2hvPiB0csOqbiBtw6F5IGNo4bunIgogCi0jOiBhcmNoaXZlLmM6MzQ3IGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo2MTUKKyM6IGFyY2hpdmUuYzozNDcgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjQ4NwogbXNnaWQgImNvbW1hbmQiCiBtc2dzdHIgImzhu4duaCIKIApAQCAtMjA5LDE5ICsyMDgsMTkgQEAKIG1zZ2lkICJDYW5ub3QgZm9yY2UgdXBkYXRlIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIktow7RuZyB0aOG7gyDDqXAgYnXhu5ljIGPhuq1wIG5o4bqtdCBuaMOhbmggaGnhu4duIGjDoG5oLiIKIAotIzogYnJhbmNoLmM6MjAxCisjOiBicmFuY2guYzoyMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNldHVwIHRyYWNraW5nIGluZm9ybWF0aW9uOyBzdGFydGluZyBwb2ludCAnJXMnIGlzIG5vdCBhIGJyYW5jaC4iCiBtc2dzdHIgIiIKICJLaMO0bmcgdGjhu4MgY8OgaSDEkeG6t3QgdGjDtG5nIHRpbiB0aGVvIHbhur90OyDEkWnhu4NtIGLhuq90IMSR4bqndSDigJwlc+KAnSBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCAiCiAibmjDoW5oLiIKIAotIzogYnJhbmNoLmM6MjAzCisjOiBicmFuY2guYzoyMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAidGhlIHJlcXVlc3RlZCB1cHN0cmVhbSBicmFuY2ggJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAibmjDoW5oIGTDsm5nIG5nxrDhu6NjIMSRw6MgecOqdSBj4bqndSDigJwlc+KAnSBjaMawYSBz4bq1biBjw7MiCiAKLSM6IGJyYW5jaC5jOjIwNQorIzogYnJhbmNoLmM6MjIwCiBtc2dpZCAiIgogIlxuIgogIklmIHlvdSBhcmUgcGxhbm5pbmcgb24gYmFzaW5nIHlvdXIgd29yayBvbiBhbiB1cHN0cmVhbVxuIgpAQCAtMjQxLDI2ICsyNDAsMjYgQEAKICJz4bq9IHRoZW8gZMO1aSBi4bqjbiDEkeG7kWkgY2hp4bq/dSBtw6F5IGNo4bunIGPhu6dhIG7DsywgYuG6oW4gY+G6p24gZMO5bmcgbOG7h25oXG4iCiAiXCJnaXQgcHVzaCAtdVwiIMSR4buDIMSR4bq3dCBj4bqldSBow6xuaCBkw7JuZyBuZ8aw4bujYyBi4bqhbiBtdeG7kW4gcHVzaC4iCiAKLSM6IGJyYW5jaC5jOjI1MAorIzogYnJhbmNoLmM6MjY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhIHZhbGlkIG9iamVjdCBuYW1lOiAnJXMnLiIKIG1zZ3N0ciAiS2jDtG5nIHBo4bqjaSB0w6puIMSR4buRaSB0xrDhu6NuZyBo4bujcCBs4buHOiDigJwlc+KAnS4iCiAKLSM6IGJyYW5jaC5jOjI3MAorIzogYnJhbmNoLmM6Mjg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFtYmlndW91cyBvYmplY3QgbmFtZTogJyVzJy4iCiBtc2dzdHIgIlTDqm4gxJHhu5FpIHTGsOG7o25nIGNoxrBhIHLDtSByw6BuZzog4oCcJXPigJ0uIgogCi0jOiBicmFuY2guYzoyNzUKKyM6IGJyYW5jaC5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBicmFuY2ggcG9pbnQ6ICclcycuIgogbXNnc3RyICJOaMOhbmgga2jDtG5nIGjhu6NwIGzhu4c6IOKAnCVz4oCdLiIKIAotIzogYnJhbmNoLmM6MjgxCisjOiBicmFuY2guYzoyOTYKIG1zZ2lkICJGYWlsZWQgdG8gbG9jayByZWYgZm9yIHVwZGF0ZSIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIGtow7NhIHRoYW0gY2hp4bq/dSAocmVmKSDEkeG7gyBj4bqtcCBuaOG6rXQiCiAKLSM6IGJyYW5jaC5jOjI5OQorIzogYnJhbmNoLmM6MzE0CiBtc2dpZCAiRmFpbGVkIHRvIHdyaXRlIHJlZiIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIGdoaSB0aGFtIGNoaeG6v3UgKHJlZikiCiAKQEAgLTI3NCw3ICsyNzMsNyBAQAogbXNnaWQgInVucmVjb2duaXplZCBoZWFkZXI6ICVzJXMgKCVkKSIKIG1zZ3N0ciAicGjhuqduIMSR4bqndSAoaGVhZGVyKSBraMO0bmcgxJHGsOG7o2MgdGjhu6thIG5o4bqtbjogJXMlcyAoJWQpIgogCi0jOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY3NgorIzogYnVuZGxlLmM6ODkgYnVpbHRpbi9jb21taXQuYzo2OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58g4oCcJXPigJ0iCkBAIC0yODMsMTEgKzI4MiwxMSBAQAogbXNnaWQgIlJlcG9zaXRvcnkgbGFja3MgdGhlc2UgcHJlcmVxdWlzaXRlIGNvbW1pdHM6IgogbXNnc3RyICJLaG8gY2jhu6lhIHRoaeG6v3Ugbmjhu69uZyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGPhuqduIHRyxrDhu5tjIGjhur90IG7DoHk6IgogCi0jOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjUxIHNlcXVlbmNlci5jOjExMDEgYnVpbHRpbi9sb2cuYzozMDAKLSM6IGJ1aWx0aW4vbG9nLmM6NzcwIGJ1aWx0aW4vbG9nLmM6MTM0NCBidWlsdGluL2xvZy5jOjE1NzAgYnVpbHRpbi9tZXJnZS5jOjM0OQotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NQorIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY2MSBzZXF1ZW5jZXIuYzoxMTExIGJ1aWx0aW4vbG9nLmM6MzMxCisjOiBidWlsdGluL2xvZy5jOjgwMSBidWlsdGluL2xvZy5jOjEzOTkgYnVpbHRpbi9sb2cuYzoxNjI1IGJ1aWx0aW4vbWVyZ2UuYzozNjQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTYKIG1zZ2lkICJyZXZpc2lvbiB3YWxrIHNldHVwIGZhaWxlZCIKLW1zZ3N0ciAiY8OgaSDEkeG6t3Qgdmnhu4djIGRpIGNodXnhu4NuIHF1YSBjw6FjIMSRaeG7g20geMOpdCBs4bqhaSBn4bq3cCBs4buXaSIKK21zZ3N0ciAiY8OgaSDEkeG6t3Qgdmnhu4djIGRpIGNodXnhu4NuIHF1YSBjw6FjIMSRaeG7g20geMOpdCBkdXnhu4d0IGfhurdwIGzhu5dpIgogCiAjOiBidW5kbGUuYzoxODYKICMsIGMtZm9ybWF0CkBAIC0zMTEsNyArMzEwLDcgQEAKIG1zZ2lkICJyZXYtbGlzdCBkaWVkIgogbXNnc3RyICJyZXYtbGlzdCDEkcOjIGNo4bq/dCIKIAotIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTI1NSBidWlsdGluL3Nob3J0bG9nLmM6MjU4CisjOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMzEwIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAlcyIKIG1zZ3N0ciAixJHhu5FpIHPhu5Ega2jDtG5nIMSRxrDhu6NjIHRo4burYSBuaOG6rW46ICVzIgpAQCAtMzQyLDEyICszNDEsMTIgQEAKIG1zZ2lkICJpbmRleC1wYWNrIGRpZWQiCiBtc2dzdHIgImluZGV4LXBhY2sgxJHDoyBjaOG6v3QiCiAKLSM6IGNvbW1pdC5jOjUwCisjOiBjb21taXQuYzo1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgJXMiCi1tc2dzdHIgImtow7RuZyB0aOG7gyBwaMOibiB0w61jaCAlcyIKK21zZ3N0ciAia2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIGPDuiBwaMOhcCAlcyIKIAotIzogY29tbWl0LmM6NTIKKyM6IGNvbW1pdC5jOjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzICVzIGlzIG5vdCBhIGNvbW1pdCEiCiBtc2dzdHIgIiVzICVzIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IGzhuqduIGNvbW1pdCEiCkBAIC0zNTYsMTYgKzM1NSwxNiBAQAogbXNnaWQgIm1lbW9yeSBleGhhdXN0ZWQiCiBtc2dzdHIgImjhur90IGLhu5kgbmjhu5siCiAKLSM6IGNvbm5lY3RlZC5jOjM5CisjOiBjb25uZWN0ZWQuYzo2MAogbXNnaWQgIkNvdWxkIG5vdCBydW4gJ2dpdCByZXYtbGlzdCciCiBtc2dzdHIgIktow7RuZyB0aOG7gyBjaOG6oXkg4oCcZ2l0IHJldi1saXN04oCdIgogCi0jOiBjb25uZWN0ZWQuYzo0OAorIzogY29ubmVjdGVkLmM6ODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHdyaXRlIHRvIHJldi1saXN0OiAlcyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIGdoaSB2w6BvIHJldi1saXN0OiAlcyIKIAotIzogY29ubmVjdGVkLmM6NTYKKyM6IGNvbm5lY3RlZC5jOjg4CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjbG9zZSByZXYtbGlzdCdzIHN0ZGluOiAlcyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIMSRw7NuZyDEkeG6p3UgdsOgbyBjaHXhuqluIHN0ZGluIGPhu6dhIHJldi1saXN0OiAlcyIKQEAgLTQ2MSw3ICs0NjAsNyBAQAogIlTDrG0gdGjhuqV5IGPDoWMgbOG7l2kgdHJvbmcgYmnhur9uIGPhuqV1IGjDrG5oIOKAnGRpZmYuZGlyc3RhdOKAnTpcbiIKICIlcyIKIAotIzogZGlmZi5jOjM0ODEKKyM6IGRpZmYuYzozNDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJGYWlsZWQgdG8gcGFyc2UgLS1kaXJzdGF0Ly1YIG9wdGlvbiBwYXJhbWV0ZXI6XG4iCkBAIC00NzAsNyArNDY5LDcgQEAKICJH4bq3cCBs4buXaSBraGkgcGjDom4gdMOtY2ggxJHhu5FpIHPhu5EgdMO5eSBjaOG7jW4gLS1kaXJzdGF0Ly1YOlxuIgogIiVzIgogCi0jOiBkaWZmLmM6MzQ5NQorIzogZGlmZi5jOjM1MDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHBhcnNlIC0tc3VibW9kdWxlIG9wdGlvbiBwYXJhbWV0ZXI6ICclcyciCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSBwaMOibiB0w61jaCDEkeG7kWkgc+G7kSB0w7l5IGNo4buNbiAtLXN1Ym1vZHVsZTog4oCcJXPigJ0iCkBAIC01MTIsMjAgKzUxMSwyMCBAQAogbXNnaWQgIiclcyc6IHNob3J0IHJlYWQgJXMiCiBtc2dzdHIgIuKAnCVz4oCdOiDEkeG7jWMgbmfhuq9uICVzIgogCi0jOiBoZWxwLmM6MjEyCisjOiBoZWxwLmM6MjEwCiAjLCBjLWZvcm1hdAogbXNnaWQgImF2YWlsYWJsZSBnaXQgY29tbWFuZHMgaW4gJyVzJyIKLW1zZ3N0ciAiY8OhYyBs4buHbmggZ2l0IHPhurVuIHPDoG5nIMSR4buDIGTDuW5nIHRyb25nIOKAnCVz4oCdIgorbXNnc3RyICJjw6FjIGzhu4duaCBnaXQgc+G6tW4gY8OzIHRyb25nIHRoxrAgbeG7pWMg4oCcJXPigJ06IgogCi0jOiBoZWxwLmM6MjE5CisjOiBoZWxwLmM6MjE3CiBtc2dpZCAiZ2l0IGNvbW1hbmRzIGF2YWlsYWJsZSBmcm9tIGVsc2V3aGVyZSBvbiB5b3VyICRQQVRIIgogbXNnc3RyICJjw6FjIGzhu4duaCBnaXQgc+G6tW4gc8OgbmcgxJHhu4MgZMO5bmcgdOG7qyBt4buZdCBuxqFpIGtow6FjIHRyb25nICRQQVRIIGPhu6dhIGLhuqFuIgogCi0jOiBoZWxwLmM6MjM1CisjOiBoZWxwLmM6MjMzCiBtc2dpZCAiVGhlIG1vc3QgY29tbW9ubHkgdXNlZCBnaXQgY29tbWFuZHMgYXJlOiIKIG1zZ3N0ciAiTmjhu69uZyBs4buHbmggZ2l0IGhheSDEkcaw4bujYyBz4butIGThu6VuZyBuaOG6pXQgbMOgOiIKIAotIzogaGVscC5jOjI5MgorIzogaGVscC5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiJyVzJyBhcHBlYXJzIHRvIGJlIGEgZ2l0IGNvbW1hbmQsIGJ1dCB3ZSB3ZXJlIG5vdFxuIgpAQCAtNTM0LDExICs1MzMsMTEgQEAKICLigJwlc+KAnSB0csO0bmcgbmjGsCBsw6AgbeG7mXQgbOG7h25oIGdpdCwgbmjGsG5nIGNow7puZyB0w7RpIGtow7RuZ1xuIgogInRo4buDIHRo4buxYyB0aGkgbsOzLiBDw7MgbOG6vSBsw6AgbOG7h25oIGdpdC0lcyDEkcOjIGLhu4sgaOG7j25nPyIKIAotIzogaGVscC5jOjM0OQorIzogaGVscC5jOjM0NwogbXNnaWQgIlVoIG9oLiBZb3VyIHN5c3RlbSByZXBvcnRzIG5vIEdpdCBjb21tYW5kcyBhdCBhbGwuIgogbXNnc3RyICLhu5BpIGNow6AuIEjhu4cgdGjhu5FuZyBj4bunYSBi4bqhbiBiw6FvIHLhurFuZyBjaOG6s25nIGPDsyBs4buHbmggR2l0IG7DoG8gY+G6oy4iCiAKLSM6IGhlbHAuYzozNzEKKyM6IGhlbHAuYzozNjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIldBUk5JTkc6IFlvdSBjYWxsZWQgYSBHaXQgY29tbWFuZCBuYW1lZCAnJXMnLCB3aGljaCBkb2VzIG5vdCBleGlzdC5cbiIKQEAgLTU0NywxNyArNTQ2LDE3IEBACiAiQ+G6ok5IIELDgU86IELhuqFuIMSRw6MgZ+G7jWkgbOG7h25oIEdpdCBjw7MgdMOqbiDigJwlc+KAnSwgbcOgIG7DsyBs4bqhaSBraMO0bmcgY8OzIHPhurVuLlxuIgogIkdp4bqjIMSR4buLbmggcuG6sW5nIMO9IGLhuqFuIGzDoCDigJwlc+KAnSIKIAotIzogaGVscC5jOjM3NgorIzogaGVscC5jOjM3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbiAlMC4xZiBzZWNvbmRzIGF1dG9tYXRpY2FsbHkuLi4iCiBtc2dzdHIgInRyb25nICUwLjFmIGdpw6J5IG3hu5l0IGPDoWNoIHThu7EgxJHhu5luZy4uLiIKIAotIzogaGVscC5jOjM4MworIzogaGVscC5jOjM4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQ6ICclcycgaXMgbm90IGEgZ2l0IGNvbW1hbmQuIFNlZSAnZ2l0IC0taGVscCcuIgogbXNnc3RyICJnaXQ6IOKAnCVz4oCdIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IGzhu4duaCBj4bunYSBnaXQuIFhlbSDigJxnaXQgLS1oZWxw4oCdLiIKIAotIzogaGVscC5jOjM4NworIzogaGVscC5jOjM4NSBoZWxwLmM6NDQ0CiBtc2dpZCAiIgogIlxuIgogIkRpZCB5b3UgbWVhbiB0aGlzPyIKQEAgLTU3MSwxMiArNTcwLDE3IEBACiAiXG4iCiAiQ8OzIHBo4bqjaSDDvSBi4bqhbiBsw6AgbeG7mXQgdHJvbmcgc+G7kSBuaOG7r25nIGPDoWkgbsOgeSBraMO0bmc/IgogCisjOiBoZWxwLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAtICVzIgorbXNnc3RyICIlczogJXMgLSAlcyIKKwogIzogbWVyZ2UuYzo1NgogbXNnaWQgImZhaWxlZCB0byByZWFkIHRoZSBjYWNoZSIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIMSR4buNYyBi4buZIG5o4bubIHThuqFtIgogCiAjOiBtZXJnZS5jOjExMCBidWlsdGluL2NoZWNrb3V0LmM6MzY1IGJ1aWx0aW4vY2hlY2tvdXQuYzo1NjYKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NDUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTYKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBnaGkgdOG6rXAgdGluIGzGsHUgYuG6o25nIG3hu6VjIGzhu6VjIG3hu5tpIgogCkBAIC01OTAsNzAgKzU5NCw3MCBAQAogbXNnaWQgImFkZGluZm9fY2FjaGUgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgImFkZGluZm9fY2FjaGUgZ+G6t3AgbOG7l2kgxJHhu5FpIHbhu5tpIMSRxrDhu51uZyBk4bqrbiDigJwlc+KAnSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjY4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyNjkKIG1zZ2lkICJlcnJvciBidWlsZGluZyB0cmVlcyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIHjDonkgZOG7sW5nIGPDonkiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY3MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgcGF0aCAnJXMnJXMiCiBtc2dzdHIgImfhurdwIGzhu5dpIGtoaSB04bqhbyDEkcaw4budbmcgZOG6q24g4oCcJXPigJ0lcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjgzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2ODQKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXMgdG8gbWFrZSByb29tIGZvciBzdWJkaXJlY3RvcnlcbiIKIG1zZ3N0ciAiR+G7oSBi4buPICVzIMSR4buDIHThuqFvIGNo4buXIChyb29tKSBjaG8gdGjGsCBt4bulYyBjb25cbiIKIAogIy4gc29tZXRoaW5nIGVsc2UgZXhpc3RzCiAjLiAuLiBidXQgbm90IHNvbWUgb3RoZXIgZXJyb3IgKHdobyByZWFsbHkgY2FyZXMgd2hhdD8pCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTcgbWVyZ2UtcmVjdXJzaXZlLmM6NzE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTggbWVyZ2UtcmVjdXJzaXZlLmM6NzE5CiBtc2dpZCAiOiBwZXJoYXBzIGEgRC9GIGNvbmZsaWN0PyIKIG1zZ3N0ciAiOiBjw7MgbOG6vSBsw6AgbeG7mXQgeHVuZyDEkeG7mXQgRC9GPyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzA4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmdXNpbmcgdG8gbG9zZSB1bnRyYWNrZWQgZmlsZSBhdCAnJXMnIgogbXNnc3RyICJ04burIGNo4buRaSDEkcOzbmcgdOG6rXAgdGluIGtow7RuZyDEkcaw4bujYyB0aGVvIHbhur90IHThuqFpIOKAnCVz4oCdIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBvYmplY3QgJXMgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyDEkeG7kWkgdMaw4bujbmcgJXMg4oCcJXPigJ0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc1MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJsb2IgZXhwZWN0ZWQgZm9yICVzICclcyciCiBtc2dzdHIgIsSR4buRaSB0xrDhu6NuZyBibG9iIMSRxrDhu6NjIG1vbmcgxJHhu6NpIGNobyAlcyDigJwlc+KAnSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzczIGJ1aWx0aW4vY2xvbmUuYzozMTMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3NCBidWlsdGluL2Nsb25lLmM6MzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBvcGVuICclcyciCiBtc2dzdHIgImfhurdwIGzhu5dpIGtoaSBt4bufIOKAnCVz4oCdIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3ltbGluayAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgdOG6oW8gbGnDqm4ga+G6v3QgdMaw4bujbmcgdHLGsG5nIChzeW1saW5rKSDigJwlc+KAnSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzg0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZG8gbm90IGtub3cgd2hhdCB0byBkbyB3aXRoICUwNm8gJXMgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIGhp4buDdSBwaOG6o2kgbMOgbSBnw6wgduG7m2kgJTA2byAlcyDigJwlc+KAnSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTIyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjMKIG1zZ2lkICJGYWlsZWQgdG8gZXhlY3V0ZSBpbnRlcm5hbCBtZXJnZSIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHRo4buxYyBoaeG7h24gdHLhu5luIG7hu5lpIGLhu5kiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBhZGQgJXMgdG8gZGF0YWJhc2UiCiBtc2dzdHIgIktow7RuZyB0aOG7gyB0aMOqbSAlcyB2w6BvIGPGoSBz4bufIGThu68gbGnhu4d1IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo5NDIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjk0MwogbXNnaWQgInVuc3VwcG9ydGVkIG9iamVjdCB0eXBlIGluIHRoZSB0cmVlIgogbXNnc3RyICJraeG7g3UgxJHhu5FpIHTGsOG7o25nIGtow7RuZyDEkcaw4bujYyBo4buXIHRy4bujIHRyb25nIGPDonkgKHRyZWUpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIxIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjIgbWVyZ2UtcmVjdXJzaXZlLmM6MTAzNgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgpAQCAtNjYyLDcgKzY2Niw3IEBACiAiWFVORyDEkOG7mFQgKCVzL3jDs2EpOiAlcyBi4buLIHjDs2EgdHJvbmcgJXMgdsOgICVzIHRyb25nICVzLiBQaGnDqm4gYuG6o24gJXMgY+G7p2EgJXMgIgogImPDsm4gbOG6oWkgdHJvbmcgY8OieSAodHJlZSkuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI3IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjggbWVyZ2UtcmVjdXJzaXZlLmM6MTA0MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgpAQCAtNjcxLDIwICs2NzUsMjAgQEAKICJYVU5HIMSQ4buYVCAoJXMveMOzYSk6ICVzIGLhu4sgeMOzYSB0cm9uZyAlcyB2w6AgJXMgdHJvbmcgJXMuIFBoacOqbiBi4bqjbiAlcyBj4bunYSAlcyAiCiAiY8OybiBs4bqhaSB0cm9uZyBjw6J5ICh0cmVlKSB04bqhaSAlcy4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWUiCiBtc2dzdHIgIsSR4buVaSB0w6puIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgyCiBtc2dpZCAicmVuYW1lZCIKIG1zZ3N0ciAixJHDoyDEkeG7lWkgdMOqbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTEzNworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTEzOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBpcyBhIGRpcmVjdG9yeSBpbiAlcyBhZGRpbmcgYXMgJXMgaW5zdGVhZCIKIG1zZ3N0ciAiJXMgbMOgIG3hu5l0IHRoxrAgbeG7pWMgdHJvbmcgJXMgdGhheSB2w6BvIMSRw7MgdGjDqm0gdsOgbyBuaMawIGzDoCAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE1OQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKHJlbmFtZS9yZW5hbWUpOiBSZW5hbWUgXCIlc1wiLT5cIiVzXCIgaW4gYnJhbmNoIFwiJXNcIiByZW5hbWUgXCIlcyIKQEAgLTY5MywxNTAgKzY5NywxNzMgQEAKICJYVU5HIMSQ4buYVCAoxJHhu5VpLXTDqm4vxJHhu5VpLXTDqm4pOiDEkOG7lWkgdMOqbiBcIiVzXCItPlwiJXNcIiB0cm9uZyBuaMOhbmggXCIlc1wiIMSR4buVaSAiCiAidMOqbiBcIiVzXCItPlwiJXNcIiB0cm9uZyBcIiVzXCIlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2NQogbXNnaWQgIiAobGVmdCB1bnJlc29sdmVkKSIKIG1zZ3N0ciAiIChj4bqnbiBnaeG6o2kgcXV54bq/dCkiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyMTgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKHJlbmFtZS9yZW5hbWUpOiBSZW5hbWUgJXMtPiVzIGluICVzLiBSZW5hbWUgJXMtPiVzIGluICVzIgogbXNnc3RyICIiCiAiWFVORyDEkOG7mFQgKMSR4buVaS10w6puL8SR4buVaS10w6puKTogxJDhu5VpIHTDqm4gJXMtPiVzIHRyb25nICVzLiDEkOG7lWkgdMOqbiAlcy0+JXMgdHJvbmcgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyNDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1pbmcgJXMgdG8gJXMgYW5kICVzIHRvICVzIGluc3RlYWQiCiBtc2dzdHIgIsSQYW5nIMSR4buVaSB0w6puICVzIHRow6BuaCAlcyB0aGF5IHbDrCAlcyB0aMOgbmggJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NDcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKHJlbmFtZS9hZGQpOiBSZW5hbWUgJXMtPiVzIGluICVzLiAlcyBhZGRlZCBpbiAlcyIKIG1zZ3N0ciAiIgogIlhVTkcgxJDhu5hUICjEkeG7lWktdMOqbi90aMOqbSk6IMSQ4buVaSB0w6puICVzLT4lcyB0cm9uZyAlcy4gJXMgxJHGsOG7o2MgdGjDqm0gdsOgbyB0cm9uZyAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgbWVyZ2VkICVzIgogbXNnc3RyICJUaMOqbSBow7JhIHRy4buZbiAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MiBtZXJnZS1yZWN1cnNpdmUuYzoxNjYwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDYzIG1lcmdlLXJlY3Vyc2l2ZS5jOjE2NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIlRoYXkgdsOgbyDEkcOzIHRow6ptIHbDoG8gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jIMSR4buRaSB0xrDhu6NuZyAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgaXMgbm90IGEgYmxvYiIKIG1zZ3N0ciAixJHhu5FpIHTGsOG7o25nICVzIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IGJsb2IiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjUKIG1zZ2lkICJtb2RpZnkiCiBtc2dzdHIgInPhu61hIMSR4buVaSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NQogbXNnaWQgIm1vZGlmaWVkIgogbXNnc3RyICLEkcOjIHPhu61hIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTc0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTc1CiBtc2dpZCAiY29udGVudCIKIG1zZ3N0ciAibuG7mWkgZHVuZyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU4MgogbXNnaWQgImFkZC9hZGQiCiBtc2dzdHIgInRow6ptL3Row6ptIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjE1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwZWQgJXMgKG1lcmdlZCBzYW1lIGFzIGV4aXN0aW5nKSIKIG1zZ3N0ciAixJDDoyBi4buPIHF1YSAlcyAoxJHDoyBjw7Mgc+G6tW4gbOG6p24gaMOyYSB0cuG7mW4gbsOgeSkiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MjkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0by1tZXJnaW5nICVzIgogbXNnc3RyICJU4buxLcSR4buZbmctaMOyYS10cuG7mW4gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzMgZ2l0LXN1Ym1vZHVsZS5zaDoxMDI5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0IGdpdC1zdWJtb2R1bGUuc2g6MTExOAogbXNnaWQgInN1Ym1vZHVsZSIKIG1zZ3N0ciAibcO0LcSRdW4tY29uIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUICglcyk6IE1lcmdlIGNvbmZsaWN0IGluICVzIgogbXNnc3RyICJYVU5HIMSQ4buYVCAoJXMpOiBYdW5nIMSR4buZdCBow7JhIHRy4buZbiB0cm9uZyAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlcyIKIG1zZ3N0ciAixJBhbmcgeMOzYSAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc0OQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1MAogbXNnaWQgImZpbGUvZGlyZWN0b3J5IgogbXNnc3RyICJ04bqtcC10aW4vdGjGsC1t4bulYyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NgogbXNnaWQgImRpcmVjdG9yeS9maWxlIgogbXNnc3RyICJ0aMawLW3hu6VjL3Thuq1wIHRpbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc2MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAoJXMpOiBUaGVyZSBpcyBhIGRpcmVjdG9yeSB3aXRoIG5hbWUgJXMgaW4gJXMuIEFkZGluZyAlcyBhcyAlcyIKIG1zZ3N0ciAiIgogIlhVTkcgxJDhu5hUICglcyk6IOG7niDEkcOieSBraMO0bmcgY8OzIHRoxrAgbeG7pWMgbsOgbyBjw7MgdMOqbiAlcyB0cm9uZyAlcy4gVGjDqm0gJXMgbmjGsCBsw6AgIgogIiVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzcwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzcxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyAlcyIKIG1zZ3N0ciAiVGjDqm0gXCIlc1wiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzg3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzg4CiBtc2dpZCAiRmF0YWwgbWVyZ2UgZmFpbHVyZSwgc2hvdWxkbid0IGhhcHBlbi4iCiBtc2dzdHIgIlZp4buHYyBow7JhIHRy4buZbiBo4buPbmcgbmdoacOqbSB0cuG7jW5nLCBraMO0bmcgbsOqbiDEkeG7gyB44bqjeSByYS4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MDYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MDcKIG1zZ2lkICJBbHJlYWR5IHVwLXRvLWRhdGUhIgogbXNnc3RyICLEkMOjIGPhuq1wIG5o4bqtdCBy4buTaSEiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MTUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibWVyZ2luZyBvZiB0cmVlcyAlcyBhbmQgJXMgZmFpbGVkIgogbXNnc3RyICJow7JhIHRy4buZbiBjw6J5ICh0cmVlKSAlcyB2w6AgJXMgZ+G6t3AgbOG7l2kiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4NDUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5wcm9jZXNzZWQgcGF0aD8/PyAlcyIKIG1zZ3N0ciAixJDGsOG7nW5nIGThuqtuIGNoxrBhIMSRxrDhu6NjIHjhu60gbMO9Pz8/ICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODkwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODkxCiBtc2dpZCAiTWVyZ2luZzoiCiBtc2dzdHIgIsSQYW5nIHRy4buZbjoiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5MDMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZm91bmQgJXUgY29tbW9uIGFuY2VzdG9yOiIKIG1zZ2lkX3BsdXJhbCAiZm91bmQgJXUgY29tbW9uIGFuY2VzdG9yczoiCiBtc2dzdHJbMF0gInTDrG0gdGjhuqV5ICV1IHThu5UgdGnDqm4gY2h1bmc6IgogbXNnc3RyWzFdICJ0w6xtIHRo4bqleSAldSB04buVIHRpw6puIGNodW5nOiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk0MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk0MQogbXNnaWQgIm1lcmdlIHJldHVybmVkIG5vIGNvbW1pdCIKIG1zZ3N0ciAiaMOyYSB0cuG7mW4ga2jDtG5nIHRy4bqjIHbhu4EgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBuw6BvIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTk3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIMSR4buRaSB0xrDhu6NuZyDigJwlc+KAnSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjAwOSBidWlsdGluL21lcmdlLmM6NjU4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDEwIGJ1aWx0aW4vbWVyZ2UuYzo2NzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5kZXguIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogb2JqZWN0LmM6MTk1CisjOiBub3Rlcy11dGlscy5jOjQwCittc2dpZCAiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIgorbXNnc3RyICIiCisiS2jDtG5nIHRo4buDIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgY2jGsGEgxJHGsOG7o2Mga2jhu59pIHThuqFvIGhv4bq3YyBraMO0bmcgxJHGsOG7o2MgdGhhbSBjaGnhur91ICIKKyJjw6J5IGdoaSBjaMO6IgorCisjOiBub3Rlcy11dGlscy5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIKK21zZ3N0ciAiR2nDoSB0cuG7iyBub3Rlcy5yZXdyaXRlTW9kZSBzYWk6IOKAnCVz4oCdIgorCisjOiBub3Rlcy11dGlscy5jOjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgorbXNnc3RyICJU4burIGNo4buRaSBnaGkgxJHDqCBnaGkgY2jDuiB0cm9uZyAlcyAobuG6sW0gbmdvw6BpIGPhu6dhIHJlZnMvbm90ZXMvKSIKKworIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKKyMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQorIzogbm90ZXMtdXRpbHMuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgorbXNnc3RyICJHacOhIHRy4buLICVzIHNhaTog4oCcJXPigJ0iCisKKyM6IG9iamVjdC5jOjIwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcGFyc2Ugb2JqZWN0OiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIMSR4buRaSB0xrDhu6NuZzog4oCcJXPigJ0iCkBAIC04NzYsMTggKzkwMywxOCBAQAogbXNnaWQgIiclcycgaXMgYmV5b25kIGEgc3ltYm9saWMgbGluayIKIG1zZ3N0ciAi4oCcJXPigJ0gbuG6sW0gbmdvw6BpIG3hu5l0IGxpw6puIGvhur90IHTGsOG7o25nIHRyxrBuZyIKIAotIzogcmVtb3RlLmM6MTc4MQorIzogcmVtb3RlLmM6MTc4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdC5cbiIKIG1zZ2lkX3BsdXJhbCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXRzLlxuIgogbXNnc3RyWzBdICJOaMOhbmggY+G7p2EgYuG6oW4gbMOgIMSR4bqndSBj4bunYSDigJwlc+KAnSBi4bufaSAlZCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpLlxuIgogbXNnc3RyWzFdICJOaMOhbmggY+G7p2EgYuG6oW4gbMOgIMSR4bqndSBj4bunYSDigJwlc+KAnSBi4bufaSAlZCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpLlxuIgogCi0jOiByZW1vdGUuYzoxNzg3CisjOiByZW1vdGUuYzoxNzk0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIKIG1zZ3N0ciAiICAoZMO5bmcgXCJnaXQgcHVzaFwiIMSR4buDIHh14bqldCBi4bqjbiBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gbuG7mWkgYuG7mSBj4bunYSBi4bqhbilcbiIKIAotIzogcmVtb3RlLmM6MTc5MAorIzogcmVtb3RlLmM6MTc5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3VyIGJyYW5jaCBpcyBiZWhpbmQgJyVzJyBieSAlZCBjb21taXQsIGFuZCBjYW4gYmUgZmFzdC1mb3J3YXJkZWQuXG4iCiBtc2dpZF9wbHVyYWwgIiIKQEAgLTg5OSwxMSArOTI2LDExIEBACiAiTmjDoW5oIGPhu6dhIGLhuqFuIHRow6wg4bufIMSR4bqxbmcgc2F1IOKAnCVz4oCdIGLhu59pICVkIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCksIHbDoCBjw7MgdGjhu4MgIgogIsSRxrDhu6NjIGZhc3QtZm9yd2FyZC5cbiIKIAotIzogcmVtb3RlLmM6MTc5OAorIzogcmVtb3RlLmM6MTgwNQogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gdXBkYXRlIHlvdXIgbG9jYWwgYnJhbmNoKVxuIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBwdWxsXCIgxJHhu4MgY+G6rXAgbmjhuq10IG5ow6FuaCBu4buZaSBi4buZIGPhu6dhIGLhuqFuKVxuIgogCi0jOiByZW1vdGUuYzoxODAxCisjOiByZW1vdGUuYzoxODA4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3VyIGJyYW5jaCBhbmQgJyVzJyBoYXZlIGRpdmVyZ2VkLFxuIgpAQCAtOTE5LDIwICs5NDYsMjkgQEAKICJZb3VyIGJyYW5jaCBhbmQg4oCcJXPigJ0gaGF2ZSBkaXZlcmdlZCxcbiIKICJhbmQgaGF2ZSAlZCBhbmQgJWQgZGlmZmVyZW50IGNvbW1pdCBlYWNoLCByZXNwZWN0aXZlbHkuXG4iCiAKLSM6IHJlbW90ZS5jOjE4MTEKKyM6IHJlbW90ZS5jOjE4MTgKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIG1lcmdlIHRoZSByZW1vdGUgYnJhbmNoIGludG8geW91cnMpXG4iCiBtc2dzdHIgIiIKICIgIChkw7luZyBcImdpdCBwdWxsXCIgxJHhu4MgaMOyYSB0cuG7mW4gbmjDoW5oIHRyw6puIG3DoXkgY2jhu6cgdsOgbyB0cm9uZyBuaMOhbmggY+G7p2EgIgogImLhuqFuKVxuIgogCi0jOiBzZXF1ZW5jZXIuYzoyMDYgYnVpbHRpbi9tZXJnZS5jOjc3NiBidWlsdGluL21lcmdlLmM6ODg5IGJ1aWx0aW4vbWVyZ2UuYzo5OTkKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDA5CisjOiBydW4tY29tbWFuZC5jOjgwCittc2dpZCAib3BlbiAvZGV2L251bGwgZmFpbGVkIgorbXNnc3RyICJn4bq3cCBs4buXaSBraGkgbeG7nyAvZGV2L251bGwiCisKKyM6IHJ1bi1jb21tYW5kLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHVwMiglZCwlZCkgZmFpbGVkIgorbXNnc3RyICJkdXAyKCVkLCVkKSBn4bq3cCBs4buXaSIKKworIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3OTAgYnVpbHRpbi9tZXJnZS5jOjkwMworIzogYnVpbHRpbi9tZXJnZS5jOjEwMTMgYnVpbHRpbi9tZXJnZS5jOjEwMjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIG3hu58g4oCcJXPigJ0gxJHhu4MgZ2hpIgogCi0jOiBzZXF1ZW5jZXIuYzoyMDggYnVpbHRpbi9tZXJnZS5jOjMzNSBidWlsdGluL21lcmdlLmM6Nzc5Ci0jOiBidWlsdGluL21lcmdlLmM6MTAwMSBidWlsdGluL21lcmdlLmM6MTAxNAorIzogc2VxdWVuY2VyLmM6MjA4IGJ1aWx0aW4vbWVyZ2UuYzozNTAgYnVpbHRpbi9tZXJnZS5jOjc5MworIzogYnVpbHRpbi9tZXJnZS5jOjEwMTUgYnVpbHRpbi9tZXJnZS5jOjEwMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgdsOgbyDigJwlc+KAnSIKQEAgLTk1NSw3ICs5OTEsNyBAQAogInbhu5tpIGzhu4duaCDigJxnaXQgYWRkIDzEkcaw4budbmdfZOG6q24+4oCdIGhv4bq3YyDigJxnaXQgcm0gPMSRxrDhu51uZ19k4bqrbj7igJ1cbiIKICJ2w6AgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBr4bq/dCBxdeG6oyBi4bqxbmcgbOG7h25oIOKAnGdpdCBjb21taXTigJ0iCiAKLSM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4NTkgc2VxdWVuY2VyLmM6OTQyCisjOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODY5IHNlcXVlbmNlci5jOjk1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgdG8gJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgdsOgbyAlcyIKQEAgLTk3OCw0NiArMTAxNCw0NiBAQAogbXNnc3RyICJDaHV54buDbiBnaWFvIChjb21taXQpIGPDoWMgdGhheSDEkeG7lWkgY+G7p2EgYuG6oW4gaGF5IHN0YXNoIGNow7puZyDEkeG7gyB44butIGzDvS4iCiAKICMuIFRSQU5TTEFUT1JTOiAlcyB3aWxsIGJlICJyZXZlcnQiIG9yICJjaGVycnktcGljayIKLSM6IHNlcXVlbmNlci5jOjMxOQorIzogc2VxdWVuY2VyLmM6MzI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIiVzOiBLaMO0bmcgdGjhu4MgZ2hpIHThuq1wIHRpbiBsxrB1IGLhuqNuZyBt4bulYyBs4bulYyBt4bubaSIKIAotIzogc2VxdWVuY2VyLmM6MzUwCisjOiBzZXF1ZW5jZXIuYzozNTUKIG1zZ2lkICJDb3VsZCBub3QgcmVzb2x2ZSBIRUFEIGNvbW1pdFxuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgcGjDom4gZ2nhuqNpIGNvbW1pdCAobOG6p24gY2h1eeG7g24gZ2lhbykgSEVBRFxuIgogCi0jOiBzZXF1ZW5jZXIuYzozNzEKKyM6IHNlcXVlbmNlci5jOjM3NwogbXNnaWQgIlVuYWJsZSB0byB1cGRhdGUgY2FjaGUgdHJlZVxuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgY+G6rXAgbmjhuq10IGPDonkgYuG7mSBuaOG7myDEkeG7h21cbiIKIAotIzogc2VxdWVuY2VyLmM6NDE2CisjOiBzZXF1ZW5jZXIuYzo0MjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGNvbW1pdCAlc1xuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggY29tbWl0IChs4bqnbiBjaHV54buDbiBnaWFvKSAlc1xuIgogCi0jOiBzZXF1ZW5jZXIuYzo0MjEKKyM6IHNlcXVlbmNlci5jOjQyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlc1xuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggY29tbWl0IChs4bqnbiBjaHV54buDbiBnaWFvKSBjaGEgbeG6uSAlc1xuIgogCi0jOiBzZXF1ZW5jZXIuYzo0ODcKKyM6IHNlcXVlbmNlci5jOjQ5MwogbXNnaWQgIllvdXIgaW5kZXggZmlsZSBpcyB1bm1lcmdlZC4iCiBtc2dzdHIgIlThuq1wIHRpbiBsxrB1IG3hu6VjIGzhu6VjIGPhu6dhIGLhuqFuIGtow7RuZyDEkcaw4bujYyBow7JhIHRy4buZbi4iCiAKLSM6IHNlcXVlbmNlci5jOjUwNgorIzogc2VxdWVuY2VyLmM6NTEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBpcyBhIG1lcmdlIGJ1dCBubyAtbSBvcHRpb24gd2FzIGdpdmVuLiIKIG1zZ3N0ciAiIgogIkzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgJXMgbMOgIG3hu5l0IGzhuqduIGjDsmEgdHLhu5luIG5oxrBuZyBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gLSIKICJtLiIKIAotIzogc2VxdWVuY2VyLmM6NTE0CisjOiBzZXF1ZW5jZXIuYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgcGFyZW50ICVkIgogbXNnc3RyICJM4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICVzIGtow7RuZyBjw7MgY2hhIG3hurkgJWQiCiAKLSM6IHNlcXVlbmNlci5jOjUxOAorIzogc2VxdWVuY2VyLmM6NTI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1haW5saW5lIHdhcyBzcGVjaWZpZWQgYnV0IGNvbW1pdCAlcyBpcyBub3QgYSBtZXJnZS4iCiBtc2dzdHIgIiIKQEAgLTEwMjYsMTcxICsxMDYyLDE5NSBAQAogCiAjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIHdpbGwgYmUgInJldmVydCIgb3IKICMuICJjaGVycnktcGljayIsIHRoZSBzZWNvbmQgJXMgYSBTSEExCi0jOiBzZXF1ZW5jZXIuYzo1MzEKKyM6IHNlcXVlbmNlci5jOjUzNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IHBhcnNlIHBhcmVudCBjb21taXQgJXMiCiBtc2dzdHIgIiVzOiBraMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggbOG6p24gY2h1eeG7g24gZ2lhbyBt4bq5IGPhu6dhICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo1MzUKKyM6IHNlcXVlbmNlci5jOjU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZ2V0IGNvbW1pdCBtZXNzYWdlIGZvciAlcyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGzhuqV5IHRow7RuZyDEkWnhu4dwIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgY2hvICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjEKKyM6IHNlcXVlbmNlci5jOjYyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmV2ZXJ0ICVzLi4uICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgcmV2ZXJ0ICVzLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjIKKyM6IHNlcXVlbmNlci5jOjYyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgYXBwbHkgJXMuLi4gJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBhcHBseSAow6FwIGThu6VuZyBtaeG6v25nIHbDoSkgJXMuLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjY1NAorIzogc2VxdWVuY2VyLmM6NjY0CiBtc2dpZCAiZW1wdHkgY29tbWl0IHNldCBwYXNzZWQiCiBtc2dzdHIgImzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgdHLhu5FuZyBy4buXbmcgxJHhurd0IGzDoCBo4bujcCBxdXkgY8OhY2giCiAKLSM6IHNlcXVlbmNlci5jOjY2MgorIzogc2VxdWVuY2VyLmM6NjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJnaXQgJXM6IGfhurdwIGzhu5dpIMSR4buNYyBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IHNlcXVlbmNlci5jOjY2NworIzogc2VxdWVuY2VyLmM6Njc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICJnaXQgJXM6IGfhurdwIGzhu5dpIGtoaSBsw6BtIHTGsMahaSBt4bubaSBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IHNlcXVlbmNlci5jOjcyNQorIzogc2VxdWVuY2VyLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCAlcyBkdXJpbmcgYSAlcyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDICVzIHRyb25nIGtoaSAlcyIKIAotIzogc2VxdWVuY2VyLmM6NzQ3CisjOiBzZXF1ZW5jZXIuYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGxpbmUgJWQuIgogbXNnc3RyICJLaMO0bmcgcGjDom4gdMOtY2ggxJHGsOG7o2MgZMOybmcgJWQuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NTIKKyM6IHNlcXVlbmNlci5jOjc2MgogbXNnaWQgIk5vIGNvbW1pdHMgcGFyc2VkLiIKIG1zZ3N0ciAiS2jDtG5nIGPDsyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIG7DoG8gxJHGsOG7o2MgcGjDom4gdMOtY2guIgogCi0jOiBzZXF1ZW5jZXIuYzo3NjUKKyM6IHNlcXVlbmNlci5jOjc3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAlcyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIG3hu58gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjc2OQorIzogc2VxdWVuY2VyLmM6Nzc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkICVzLiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4buNYyAlcy4iCiAKLSM6IHNlcXVlbmNlci5jOjc3NgorIzogc2VxdWVuY2VyLmM6Nzg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVudXNhYmxlIGluc3RydWN0aW9uIHNoZWV0OiAlcyIKIG1zZ3N0ciAiQuG6o25nIGNo4buJIHRo4buLIGtow7RuZyB0aOG7gyBkw7luZyDEkcaw4bujYzogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgwNAorIzogc2VxdWVuY2VyLmM6ODE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQga2V5OiAlcyIKIG1zZ3N0ciAiS2jDs2Ega2jDtG5nIMSRw7puZzogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgwNworIzogc2VxdWVuY2VyLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgdmFsdWUgZm9yICVzOiAlcyIKIG1zZ3N0ciAiR2nDoSB0cuG7iyBraMO0bmcgaOG7o3AgbOG7hyAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgxOQorIzogc2VxdWVuY2VyLmM6ODI5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBvcHRpb25zIHNoZWV0OiAlcyIKIG1zZ3N0ciAiQuG6o25nIHTDuXkgY2jhu41uIGThu4sgaMOsbmg6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDAKKyM6IHNlcXVlbmNlci5jOjg1MAogbXNnaWQgImEgY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgIm3hu5l0IHRoYW8gdMOhYyBjaGVycnktcGljayBob+G6t2MgcmV2ZXJ0IMSRYW5nIMSRxrDhu6NjIHRo4buxYyBoaeG7h24iCiAKLSM6IHNlcXVlbmNlci5jOjg0MQorIzogc2VxdWVuY2VyLmM6ODUxCiBtc2dpZCAidHJ5IFwiZ2l0IGNoZXJyeS1waWNrICgtLWNvbnRpbnVlIHwgLS1xdWl0IHwgLS1hYm9ydClcIiIKIG1zZ3N0ciAiaMOjeSB0aOG7rSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiAKLSM6IHNlcXVlbmNlci5jOjg0NQorIzogc2VxdWVuY2VyLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgc2VxdWVuY2VyIGRpcmVjdG9yeSAlcyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHThuqFvIHRoxrAgbeG7pWMgeOG6v3AgZMOjeSAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODYxIHNlcXVlbmNlci5jOjk0NgorIzogc2VxdWVuY2VyLmM6ODcxIHNlcXVlbmNlci5jOjk1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciB3cmFwcGluZyB1cCAlcy4iCiBtc2dzdHIgIkzhu5dpIGJhbyBi4buNYyAlcy4iCiAKLSM6IHNlcXVlbmNlci5jOjg4MCBzZXF1ZW5jZXIuYzoxMDE0CisjOiBzZXF1ZW5jZXIuYzo4OTAgc2VxdWVuY2VyLmM6MTAyNAogbXNnaWQgIm5vIGNoZXJyeS1waWNrIG9yIHJldmVydCBpbiBwcm9ncmVzcyIKIG1zZ3N0ciAia2jDtG5nIGNoZXJyeS1waWNrIGhheSByZXZlcnQgdHJvbmcgdGnhur9uIHRyw6xuaCIKIAotIzogc2VxdWVuY2VyLmM6ODgyCisjOiBzZXF1ZW5jZXIuYzo4OTIKIG1zZ2lkICJjYW5ub3QgcmVzb2x2ZSBIRUFEIgogbXNnc3RyICJraMO0bmcgdGjhu4MgcGjDom4gZ2nhuqNpIEhFQUQiCiAKLSM6IHNlcXVlbmNlci5jOjg4NAorIzogc2VxdWVuY2VyLmM6ODk0CiBtc2dpZCAiY2Fubm90IGFib3J0IGZyb20gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgImtow7RuZyB0aOG7gyBo4buneSBi4buPIHThu6sgbeG7mXQgbmjDoW5oIG3DoCBuw7MgY8OybiBjaMawYSDEkcaw4bujYyB04bqhbyByYSIKIAotIzogc2VxdWVuY2VyLmM6OTA2IGJ1aWx0aW4vYXBwbHkuYzo0MDYwCisjOiBzZXF1ZW5jZXIuYzo5MTYgYnVpbHRpbi9hcHBseS5jOjQwNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjkwOQorIzogc2VxdWVuY2VyLmM6OTE5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICVzOiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjkxMAorIzogc2VxdWVuY2VyLmM6OTIwCiBtc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSIKIG1zZ3N0ciAia+G6v3QgdGjDumMgdOG6rXAgdGluIMSR4buZdCB4deG6pXQiCiAKLSM6IHNlcXVlbmNlci5jOjkxNgorIzogc2VxdWVuY2VyLmM6OTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgInN0b3JlZCBwcmUtY2hlcnJ5LXBpY2sgSEVBRCBmaWxlICclcycgaXMgY29ycnVwdCIKIG1zZ3N0ciAidOG6rXAgdGluIEhFQUQg4oCccHJlLWNoZXJyeS1waWNr4oCdIMSRw6MgbMawdSDigJwlc+KAnSBi4buLIGjhu49uZyIKIAotIzogc2VxdWVuY2VyLmM6OTM5CisjOiBzZXF1ZW5jZXIuYzo5NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZvcm1hdCAlcy4iCiBtc2dzdHIgIktow7RuZyB0aOG7gyDEkeG7i25oIGThuqFuZyAlcy4iCiAKLSM6IHNlcXVlbmNlci5jOjEwODMKKyM6IHNlcXVlbmNlci5jOjEwOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbid0IGNoZXJyeS1waWNrIGEgJXMiCiBtc2dzdHIgIiVzOiBraMO0bmcgdGjhu4MgY2hlcnJ5LXBpY2sgbeG7mXQgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjEwODUKKyM6IHNlcXVlbmNlci5jOjEwOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGJhZCByZXZpc2lvbiIKIG1zZ3N0ciAiJXM6IMSRaeG7g20geMOpdCBkdXnhu4d0IHNhaSIKIAotIzogc2VxdWVuY2VyLmM6MTExOQorIzogc2VxdWVuY2VyLmM6MTEyOQogbXNnaWQgIkNhbid0IHJldmVydCBhcyBpbml0aWFsIGNvbW1pdCIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHJldmVydCBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGto4bufaSB04bqhbyIKIAotIzogc2VxdWVuY2VyLmM6MTEyMAorIzogc2VxdWVuY2VyLmM6MTEzMAogbXNnaWQgIkNhbid0IGNoZXJyeS1waWNrIGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGNoZXJyeS1waWNrIHbDoG8gbeG7mXQgxJHhuqd1IChoZWFkKSB0cuG7kW5nIHLhu5duZyIKIAotIzogc2hhMV9uYW1lLmM6MTAzNgorIzogc2hhMV9uYW1lLmM6NDQwCittc2dpZCAiIgorIkdpdCBub3JtYWxseSBuZXZlciBjcmVhdGVzIGEgcmVmIHRoYXQgZW5kcyB3aXRoIDQwIGhleCBjaGFyYWN0ZXJzXG4iCisiYmVjYXVzZSBpdCB3aWxsIGJlIGlnbm9yZWQgd2hlbiB5b3UganVzdCBzcGVjaWZ5IDQwLWhleC4gVGhlc2UgcmVmc1xuIgorIm1heSBiZSBjcmVhdGVkIGJ5IG1pc3Rha2UuIEZvciBleGFtcGxlLFxuIgorIlxuIgorIiAgZ2l0IGNoZWNrb3V0IC1iICRiciAkKGdpdCByZXYtcGFyc2UgLi4uKVxuIgorIlxuIgorIndoZXJlIFwiJGJyXCIgaXMgc29tZWhvdyBlbXB0eSBhbmQgYSA0MC1oZXggcmVmIGlzIGNyZWF0ZWQuIFBsZWFzZVxuIgorImV4YW1pbmUgdGhlc2UgcmVmcyBhbmQgbWF5YmUgZGVsZXRlIHRoZW0uIFR1cm4gdGhpcyBtZXNzYWdlIG9mZiBieVxuIgorInJ1bm5pbmcgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiIgorbXNnc3RyICIiCisiR2l0IHRoxrDhu51uZyBraMO0bmcgYmFvIGdp4budIHThuqFvIHRoYW0gY2hp4bq/dSBtw6AgbsOzIGvhur90IHRow7pjIHbhu5tpIDQwIGvDvSB04buxIGhleFxuIgorImLhu59pIHbDrCBuw7Mgc+G6vSBi4buLIGLhu48gcXVhIGtoaSBi4bqhbiBjaOG7iSDEkeG7i25oIDQwLWhleC4gTmjhu69uZyB0aGFtIGNoaeG6v3UgbsOgeVxuIgorImPDsyBs4bq9IMSRxrDhu6NjIHThuqFvIHJhIGLhu59pIG3hu5l0IHNhaSBzw7N0IG7DoG8gxJHDsy4gVsOtIGThu6UsXG4iCisiXG4iCisiICBnaXQgY2hlY2tvdXQgLWIgJGJyICQoZ2l0IHJldi1wYXJzZSAuLi4pXG4iCisiXG4iCisiduG7m2kgXCIkYnJcIiBraMO0bmcgaGnhu4N1IGzDvSBkbyB2w6wgc2FvIHRy4buRbmcgcuG7l25nIHbDoCBt4buZdCB0aGFtIGNoaeG6v3UgNDAtaGV4IMSRxrDhu6NjICIKKyJ04bqhbyByYS5cbiIKKyJYaW4gaMOjeSBraeG7g20gdHJhIG5o4buvbmcgdGhhbSBjaGnhur91IG7DoHkgdsOgIGPDsyB0aOG7gyB4w7NhIGNow7puZyDEkWkuIFThuq90IGzhu51pIG5o4bqvbiAiCisibsOgeVxuIgorImLhurFuZyBjw6FjaCBjaOG6oXkgbOG7h25oIFwiZ2l0IGNvbmZpZyBhZHZpY2Uub2JqZWN0TmFtZVdhcm5pbmcgZmFsc2VcIiIKKworIzogc2hhMV9uYW1lLmM6MTA5NwogbXNnaWQgIkhFQUQgZG9lcyBub3QgcG9pbnQgdG8gYSBicmFuY2giCiBtc2dzdHIgIkhFQUQga2jDtG5nIGNo4buJIMSR4bq/biBt4buZdCBuaMOhbmggbsOgbyBj4bqjIgogCi0jOiBzaGExX25hbWUuYzoxMDM5CisjOiBzaGExX25hbWUuYzoxMTAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHN1Y2ggYnJhbmNoOiAnJXMnIgogbXNnc3RyICJLaMO0bmcgY8OzIG5ow6FuaCBuw6BvIG5oxrAgdGjhur86IOKAnCVz4oCdIgogCi0jOiBzaGExX25hbWUuYzoxMDQxCisjOiBzaGExX25hbWUuYzoxMTAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIgogbXNnc3RyICJLaMO0bmcgY8OzIHRoxrDhu6NuZyBuZ3Xhu5NuICh1cHN0cmVhbSkgxJHGsOG7o2MgY+G6pXUgaMOsbmggY2hvIG5ow6FuaCDigJwlc+KAnSIKIAotIzogc2hhMV9uYW1lLmM6MTA0NAorIzogc2hhMV9uYW1lLmM6MTEwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJVcHN0cmVhbSBicmFuY2ggJyVzJyBub3Qgc3RvcmVkIGFzIGEgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCIKIG1zZ3N0ciAiIgpAQCAtMTIwMiwxNzIgKzEyNjIsMTcyIEBACiBtc2dpZCAidW5hYmxlIHRvIGFjY2VzcyAnJXMnOiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHRydXkgY+G6rXAg4oCcJXPigJ06ICVzIgogCi0jOiB3cmFwcGVyLmM6NDIzCisjOiB3cmFwcGVyLmM6NDI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHRydXkgY+G6rXAg4oCcJXPigJ0iCiAKLSM6IHdyYXBwZXIuYzo0MzQKKyM6IHdyYXBwZXIuYzo0NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGxvb2sgdXAgY3VycmVudCB1c2VyIGluIHRoZSBwYXNzd2QgZmlsZTogJXMiCiBtc2dzdHIgImtow7RuZyB0w6xtIHRo4bqleSBuZ8aw4budaSBkw7luZyBoaeG7h24gdOG6oWkgdHJvbmcgdOG6rXAgdGluIHBhc3N3ZDogJXMiCiAKLSM6IHdyYXBwZXIuYzo0MzUKKyM6IHdyYXBwZXIuYzo0NDEKIG1zZ2lkICJubyBzdWNoIHVzZXIiCiBtc2dzdHIgImtow7RuZyBjw7MgbmfGsOG7nWkgZMO5bmcgbmjGsCB24bqteSIKIAotIzogd3Qtc3RhdHVzLmM6MTQwCisjOiB3dC1zdGF0dXMuYzoxNDEKIG1zZ2lkICJVbm1lcmdlZCBwYXRoczoiCiBtc2dzdHIgIk5o4buvbmcgxJHGsOG7nW5nIGThuqtuIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luOiIKIAotIzogd3Qtc3RhdHVzLmM6MTY3IHd0LXN0YXR1cy5jOjE5NAorIzogd3Qtc3RhdHVzLmM6MTY4IHd0LXN0YXR1cy5jOjE5NQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmVzZXQgJXMgPGZpbGU+Li4uXCIgdG8gdW5zdGFnZSkiCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IHJlc2V0ICVzIDx04bqtcC10aW4+Li4uXCIgxJHhu4MgYuG7jyBt4buZdCBzdGFnZSAodHLhuqFuZyB0aMOhaSkpIgogCi0jOiB3dC1zdGF0dXMuYzoxNjkgd3Qtc3RhdHVzLmM6MTk2CisjOiB3dC1zdGF0dXMuYzoxNzAgd3Qtc3RhdHVzLmM6MTk3CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBybSAtLWNhY2hlZCA8dOG6rXAtdGluPi4uLlwiIMSR4buDIGLhu48gdHLhuqFuZyB0aMOhaSAoc3RhZ2UpKSIKIAotIzogd3Qtc3RhdHVzLmM6MTczCisjOiB3dC1zdGF0dXMuYzoxNzQKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IGFkZCA8dOG6rXAtdGluPi4uLlwiIMSR4buDIMSRw6FuaCBk4bqldSBsw6AgY+G6p24gZ2nhuqNpIHF1eeG6v3QpIgogCi0jOiB3dC1zdGF0dXMuYzoxNzUgd3Qtc3RhdHVzLmM6MTc5CisjOiB3dC1zdGF0dXMuYzoxNzYgd3Qtc3RhdHVzLmM6MTgwCiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZC9ybSA8ZmlsZT4uLi5cIiBhcyBhcHByb3ByaWF0ZSB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIiCiAiICAoZMO5bmcgXCJnaXQgYWRkL3JtIDx04bqtcC10aW4+Li4uXCIgbmjGsCBsw6AgbeG7mXQgY8OhY2ggIHRow61jaCBo4bujcCDEkeG7gyDEkcOhbmggZOG6pXUgIgogImzDoCBj4bqnbiDEkcaw4bujYyBnaeG6o2kgcXV54bq/dCkiCiAKLSM6IHd0LXN0YXR1cy5jOjE3NworIzogd3Qtc3RhdHVzLmM6MTc4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IHJtIDx04bqtcC10aW4+Li4uXCIgxJHhu4MgxJHDoW5oIGThuqV1IGzDoCBj4bqnbiBnaeG6o2kgcXV54bq/dCkiCiAKLSM6IHd0LXN0YXR1cy5jOjE4OAorIzogd3Qtc3RhdHVzLmM6MTg5CiBtc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICJOaOG7r25nIHRoYXkgxJHhu5VpIHPhur0gxJHGsOG7o2MgY2h1eeG7g24gZ2lhbzoiCiAKLSM6IHd0LXN0YXR1cy5jOjIwNgorIzogd3Qtc3RhdHVzLmM6MjA3CiBtc2dpZCAiQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6IgogbXNnc3RyICIiCiAiQ8OhYyB0aGF5IMSR4buVaSBraMO0bmcgxJHGsOG7o2MgxJHhurd0IHRy4bqhbmcgdGjDoWkgKHN0YWdlKSBjaG8gbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KToiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMAorIzogd3Qtc3RhdHVzLmM6MjExCiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCiBtc2dzdHIgIiIKICIgIChkw7luZyBcImdpdCBhZGQgPHThuq1wLXRpbj4uLi5cIiDEkeG7gyBj4bqtcCBuaOG6rXQgbmjhu69uZyBnw6wgY+G6p24gY2h1eeG7g24gZ2lhbyAiCiAiKGNvbW1pdCkpIgogCi0jOiB3dC1zdGF0dXMuYzoyMTIKKyM6IHd0LXN0YXR1cy5jOjIxMwogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIiCiAiICAoZMO5bmcgXCJnaXQgYWRkL3JtIDx04bqtcC10aW4+Li4uXCIgxJHhu4MgY+G6rXAgbmjhuq10IG5o4buvbmcgZ8OsIHPhur0gxJHGsOG7o2MgY2h1eeG7g24gZ2lhbykiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMworIzogd3Qtc3RhdHVzLmM6MjE0CiBtc2dpZCAiIgogIiAgKHVzZSBcImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi5cIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpIgogbXNnc3RyICIiCiAiICAoZMO5bmcgXCJnaXQgY2hlY2tvdXQgLS0gPHThuq1wLXRpbj4uLi5cIiDEkeG7gyBi4buPIHRoYXkgxJHhu5VpIHRyb25nIHRoxrAgbeG7pWMgbMOgbSAiCiAidmnhu4djKSIKIAotIzogd3Qtc3RhdHVzLmM6MjE1CisjOiB3dC1zdGF0dXMuYzoyMTYKIG1zZ2lkICIgIChjb21taXQgb3IgZGlzY2FyZCB0aGUgdW50cmFja2VkIG9yIG1vZGlmaWVkIGNvbnRlbnQgaW4gc3VibW9kdWxlcykiCiBtc2dzdHIgIiIKICIgIChjaHV54buDbiBnaWFvIChjb21taXQpIGhv4bq3YyBsw6AgbG/huqFpIGLhu48gY8OhYyBu4buZaSBkdW5nIGtow7RuZy1i4buLLXRoZW8tduG6v3QgaGF5ICIKICLEkcOjIGLhu4sgY2jhu4luaCBz4butYSB0cm9uZyBtw7QtxJF1bi1jb24pIgogCi0jOiB3dC1zdGF0dXMuYzoyMjcKKyM6IHd0LXN0YXR1cy5jOjIyOAogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgJXMgPGZpbGU+Li4uXCIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogIiAgKGTDuW5nIFwiZ2l0ICVzIDx04bqtcC10aW4+Li4uXCIgxJHhu4MgdGjDqm0gdsOgbyBuaOG7r25nIGfDrCBj4bqnbiBjaHV54buDbiBnaWFvICIKICIoY29tbWl0KSkiCiAKLSM6IHd0LXN0YXR1cy5jOjI0NAorIzogd3Qtc3RhdHVzLmM6MjQ1CiBtc2dpZCAiYnVnIgogbXNnc3RyICJs4buXaSIKIAotIzogd3Qtc3RhdHVzLmM6MjQ5CisjOiB3dC1zdGF0dXMuYzoyNTAKIG1zZ2lkICJib3RoIGRlbGV0ZWQ6IgogbXNnc3RyICJi4buLIHjDs2EgYuG7n2kgY+G6oyBoYWk6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTAKKyM6IHd0LXN0YXR1cy5jOjI1MQogbXNnaWQgImFkZGVkIGJ5IHVzOiIKIG1zZ3N0ciAixJHGsOG7o2MgdGjDqm0gdsOgbyBi4bufaSBjaMO6bmcgdGE6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTEKKyM6IHd0LXN0YXR1cy5jOjI1MgogbXNnaWQgImRlbGV0ZWQgYnkgdGhlbToiCiBtc2dzdHIgImLhu4sgeMOzYSDEkWkgYuG7n2kgaOG7jToiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MgorIzogd3Qtc3RhdHVzLmM6MjUzCiBtc2dpZCAiYWRkZWQgYnkgdGhlbToiCiBtc2dzdHIgIsSRxrDhu6NjIHRow6ptIHbDoG8gYuG7n2kgaOG7jToiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MworIzogd3Qtc3RhdHVzLmM6MjU0CiBtc2dpZCAiZGVsZXRlZCBieSB1czoiCiBtc2dzdHIgImLhu4sgeMOzYSBi4bufaSBjaMO6bmcgdGE6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTQKKyM6IHd0LXN0YXR1cy5jOjI1NQogbXNnaWQgImJvdGggYWRkZWQ6IgogbXNnc3RyICLEkcaw4bujYyB0aMOqbSB2w6BvIGLhu59pIGPhuqMgaGFpOiIKIAotIzogd3Qtc3RhdHVzLmM6MjU1CisjOiB3dC1zdGF0dXMuYzoyNTYKIG1zZ2lkICJib3RoIG1vZGlmaWVkOiIKIG1zZ3N0ciAiYuG7iyBz4butYSBi4bufaSBj4bqjIGhhaToiCiAKLSM6IHd0LXN0YXR1cy5jOjI4NQorIzogd3Qtc3RhdHVzLmM6Mjg2CiBtc2dpZCAibmV3IGNvbW1pdHMsICIKIG1zZ3N0ciAibOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBt4bubaSwgIgogCi0jOiB3dC1zdGF0dXMuYzoyODcKKyM6IHd0LXN0YXR1cy5jOjI4OAogbXNnaWQgIm1vZGlmaWVkIGNvbnRlbnQsICIKIG1zZ3N0ciAibuG7mWkgZHVuZyBi4buLIHPhu61hIMSR4buVaSwgIgogCi0jOiB3dC1zdGF0dXMuYzoyODkKKyM6IHd0LXN0YXR1cy5jOjI5MAogbXNnaWQgInVudHJhY2tlZCBjb250ZW50LCAiCiBtc2dzdHIgIm7hu5lpIGR1bmcgY2jGsGEgxJHGsOG7o2MgdGhlbyBkw7VpLCAiCiAKLSM6IHd0LXN0YXR1cy5jOjMwNgorIzogd3Qtc3RhdHVzLmM6MzA3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBmaWxlOiAgICVzIgogbXNnc3RyICJ04bqtcCB0aW4gbeG7m2k6ICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMwOQorIzogd3Qtc3RhdHVzLmM6MzEwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvcGllZDogICAgICVzIC0+ICVzIgogbXNnc3RyICLEkcOjIHNhbyBjaMOpcDogICAgICVzIC0+ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMTIKKyM6IHd0LXN0YXR1cy5jOjMxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJkZWxldGVkOiAgICAlcyIKIG1zZ3N0ciAixJHDoyB4w7NhOiAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE1CisjOiB3dC1zdGF0dXMuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9kaWZpZWQ6ICAgJXMiCiBtc2dzdHIgIsSRw6Mgc+G7rWEgxJHhu5VpOiAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMTgKKyM6IHd0LXN0YXR1cy5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW5hbWVkOiAgICAlcyAtPiAlcyIKIG1zZ3N0ciAixJHDoyDEkeG7lWkgdMOqbjogICAgJXMgLT4gJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMyMQorIzogd3Qtc3RhdHVzLmM6MzIyCiAjLCBjLWZvcm1hdAogbXNnaWQgInR5cGVjaGFuZ2U6ICVzIgogbXNnc3RyICLEkeG7lWkta2nhu4N1OiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzI0CisjOiB3dC1zdGF0dXMuYzozMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93bjogICAgJXMiCiBtc2dzdHIgImtow7RuZyBoaeG7g3U6ICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjcKKyM6IHd0LXN0YXR1cy5jOjMyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bm1lcmdlZDogICAlcyIKIG1zZ3N0ciAiY2jGsGEgaMOyYSB0cuG7mW46ICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMzMAorIzogd3Qtc3RhdHVzLmM6MzMxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJ1ZzogdW5oYW5kbGVkIGRpZmYgc3RhdHVzICVjIgogbXNnc3RyICJs4buXaToga2jDtG5nIGzhuqV5IMSRxrDhu6NjIHRy4bqhbmcgdGjDoWkgbOG7h25oIGRpZmYgJWMiCkBAIC0xMzc2LDcgKzE0MzYsNyBAQAogbXNnaWQgIllvdSBoYXZlIHVubWVyZ2VkIHBhdGhzLiIKIG1zZ3N0ciAiQuG6oW4gY8OzIG5o4buvbmcgxJHGsOG7nW5nIGThuqtuIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luLiIKIAotIzogd3Qtc3RhdHVzLmM6ODA2IHd0LXN0YXR1cy5jOjk1OAorIzogd3Qtc3RhdHVzLmM6ODA2CiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNvbW1pdFwiKSIKIG1zZ3N0ciAiICAoc+G7rWEgY8OhYyB4dW5nIMSR4buZdCBzYXUgxJHDsyBjaOG6oXkgXCJnaXQgY29tbWl0XCIpIgogCkBAIC0xMzk3LDggKzE0NTcsOCBAQAogbXNnc3RyICJNaeG6v25nIHbDoSBoaeG7h24gdOG6oWkgYuG7iyB0cuG7kW5nIHLhu5duZy4iCiAKICM6IHd0LXN0YXR1cy5jOjgyOQotbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCi1tc2dzdHIgIiAgKHPhu61hIGPDoWMgeHVuZyDEkeG7mXQgdsOgIHNhdSDEkcOzIGNo4bqheSBs4buHbmggXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgIChz4butYSBjw6FjIHh1bmcgxJHhu5l0IHbDoCBzYXUgxJHDsyBjaOG6oXkgbOG7h25oIFwiZ2l0IGFtIC0tY29udGludWVcIikiCiAKICM6IHd0LXN0YXR1cy5jOjgzMQogbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgpAQCAtMTQ4MSw0MCArMTU0MSw1MSBAQAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nLiIKIG1zZ3N0ciAiQuG6oW4gaGnhu4duIG5heSDEkWFuZyB0aOG7sWMgaGnhu4duIHZp4buHYyBjaGVycnktcGljay4iCiAKLSM6IHd0LXN0YXR1cy5jOjk2MQotbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiCi1tc2dzdHIgIiAgKGtoaSB04bqldCBj4bqjIGPDoWMgeHVuZyDEkeG7mXQgxJHDoyBz4butYSB4b25nOiBjaOG6oXkgbOG7h25oIFwiZ2l0IGNvbW1pdFwiKSIKKyM6IHd0LXN0YXR1cy5jOjk1OAorbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIiCisiICAoc+G7rWEgY8OhYyB4dW5nIMSR4buZdCB2w6Agc2F1IMSRw7MgY2jhuqF5IGzhu4duaCBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo5NzAKKyM6IHd0LXN0YXR1cy5jOjk2MQorbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIiCisiICAoa2hpIHThuqV0IGPhuqMgY8OhYyB4dW5nIMSR4buZdCDEkcOjIHPhu61hIHhvbmc6IGNo4bqheSBs4buHbmggXCJnaXQgY2hlcnJ5LXBpY2sgLS0iCisiY29udGludWVcIikiCisKKyM6IHd0LXN0YXR1cy5jOjk2MworbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgorbXNnc3RyICIgIChkw7luZyBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgxJHhu4MgaOG7p3kgYuG7jyB0aGFvIHTDoWMgY2hlcnJ5LXBpY2spIgorCisjOiB3dC1zdGF0dXMuYzo5NzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmV2ZXJ0aW5nIGNvbW1pdCAlcy4iCiBtc2dzdHIgIkLhuqFuIGhp4buHbiBuYXkgxJFhbmcgdGjhu7FjIGhp4buHbiB0aGFvIHTDoWMgcmV2ZXJ0IGzhuqduIGNodXnhu4NuIGdpYW8g4oCcJXPigJ0uIgogCi0jOiB3dC1zdGF0dXMuYzo5NzUKKyM6IHd0LXN0YXR1cy5jOjk3NwogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAoc+G7rWEgY8OhYyB4dW5nIMSR4buZdCB2w6Agc2F1IMSRw7MgY2jhuqF5IGzhu4duaCBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTc4CisjOiB3dC1zdGF0dXMuYzo5ODAKIG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKICIgIChraGkgdOG6pXQgY+G6oyBjw6FjIHh1bmcgxJHhu5l0IMSRw6Mgc+G7rWEgeG9uZzogY2jhuqF5IGzhu4duaCBcImdpdCByZXZlcnQgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTgwCisjOiB3dC1zdGF0dXMuYzo5ODIKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmV2ZXJ0IC0tYWJvcnRcIiB0byBjYW5jZWwgdGhlIHJldmVydCBvcGVyYXRpb24pIgogbXNnc3RyICIgIChkw7luZyBcImdpdCByZXZlcnQgLS1hYm9ydFwiIMSR4buDIGjhu6d5IGLhu48gdGhhbyB0w6FjIHJldmVydCkiCiAKLSM6IHd0LXN0YXR1cy5jOjk5MQorIzogd3Qtc3RhdHVzLmM6OTkzCiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZywgc3RhcnRlZCBmcm9tIGJyYW5jaCAnJXMnLiIKIG1zZ3N0ciAiIgogIkLhuqFuIGhp4buHbiBuYXkgxJFhbmcgdGjhu7FjIGhp4buHbiB0aGFvIHTDoWMgZGkgY2h1eeG7g24gbuG7rWEgYsaw4bubYyAoYmlzZWN0KSwgYuG6r3QgxJHhuqd1IHThu6sgIgogIm5ow6FuaCDigJwlc+KAnS4iCiAKLSM6IHd0LXN0YXR1cy5jOjk5NQorIzogd3Qtc3RhdHVzLmM6OTk3CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLiIKIG1zZ3N0ciAiQuG6oW4gaGnhu4duIHThuqFpIMSRYW5nIHRo4buxYyBoaeG7h24gdmnhu4djIGJpc2VjdCAoY2hpYSDEkcO0aSkuIgogCi0jOiB3dC1zdGF0dXMuYzo5OTgKKyM6IHd0LXN0YXR1cy5jOjEwMDAKIG1zZ2lkICIgICh1c2UgXCJnaXQgYmlzZWN0IHJlc2V0XCIgdG8gZ2V0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IGJpc2VjdCByZXNldFwiIMSR4buDIHF1YXkgdHLhu58gbOG6oWkgbmjDoW5oIG5ndXnDqm4gdGjhu6d5KSIKIApAQCAtMTUyMiwzMSArMTU5MywzNSBAQAogbXNnaWQgIk9uIGJyYW5jaCAiCiBtc2dzdHIgIlRyw6puIG5ow6FuaCAiCiAKLSM6IHd0LXN0YXR1cy5jOjExODQKKyM6IHd0LXN0YXR1cy5jOjExODAKK21zZ2lkICJyZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gIgorbXNnc3RyICJyZWJhc2UgxJFhbmcgxJHGsOG7o2MgdGjhu7FjIGhp4buHbjogbMOqbiB0csOqbiIKKworIzogd3Qtc3RhdHVzLmM6MTE4NwogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgogbXNnc3RyICJIRUFEIMSRxrDhu6NjIHTDoWNoIHLhu51pIHThuqFpIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg2CisjOiB3dC1zdGF0dXMuYzoxMTg5CiBtc2dpZCAiSEVBRCBkZXRhY2hlZCBmcm9tICIKIG1zZ3N0ciAiSEVBRCDEkcaw4bujYyB0w6FjaCBy4budaSB04burIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg5CisjOiB3dC1zdGF0dXMuYzoxMTkyCiBtc2dpZCAiTm90IGN1cnJlbnRseSBvbiBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAiSGnhu4duIHThuqFpIGNo4bqzbmcg4bufIG5ow6FuaCBuw6BvIGPhuqMuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjA2CisjOiB3dC1zdGF0dXMuYzoxMjA5CiBtc2dpZCAiSW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIkzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkga2jhu59pIMSR4bqndSIKIAotIzogd3Qtc3RhdHVzLmM6MTIyMAorIzogd3Qtc3RhdHVzLmM6MTIyMwogbXNnaWQgIlVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAiTmjhu69uZyB04bqtcCB0aW4gY2jGsGEgxJHGsOG7o2MgdGhlbyBkw7VpIgogCi0jOiB3dC1zdGF0dXMuYzoxMjIyCisjOiB3dC1zdGF0dXMuYzoxMjI1CiBtc2dpZCAiSWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiTmjhu69uZyB04bqtcCB0aW4gYuG7iyBs4budIMSRaSIKIAotIzogd3Qtc3RhdHVzLmM6MTIyNgorIzogd3Qtc3RhdHVzLmM6MTIyOQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gJ3N0YXR1cyAtdW5vJ1xuIgpAQCAtMTU1OCwzMiArMTYzMywzMiBAQAogImPDsyBs4bq9IGzDoG0gbsOzIG5oYW5oIGjGoW4sIG5oxrBuZyBi4bqhbiBwaOG6o2kgY+G6qW4gdGjhuq1uIMSR4burbmcgcXXDqm4gbcOsbmggcGjhuqNpXG4iCiAidOG7sSB0aMOqbSBjw6FjIHThuq1wIHRpbiBt4bubaSAoeGVtIOKAnGdpdCBoZWxwIHN0YXR1c+KAnS4uIgogCi0jOiB3dC1zdGF0dXMuYzoxMjMyCisjOiB3dC1zdGF0dXMuYzoxMjM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkJXMiCiBtc2dzdHIgIk5o4buvbmcgdOG6rXAgdGluIGtow7RuZyBi4buLIHRoZW8gduG6v3Qga2jDtG5nIMSRxrDhu6NjIGxp4buHdCBrw6ogcmEgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMzQKKyM6IHd0LXN0YXR1cy5jOjEyMzcKIG1zZ2lkICIgKHVzZSAtdSBvcHRpb24gdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpIgogbXNnc3RyICIgKGTDuW5nIHTDuXkgY2jhu41uIC11IMSR4buDIGhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiBjaMawYSDEkcaw4bujYyB0aGVvIGTDtWkpIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQwCisjOiB3dC1zdGF0dXMuYzoxMjQzCiBtc2dpZCAiTm8gY2hhbmdlcyIKIG1zZ3N0ciAiS2jDtG5nIGPDsyB0aGF5IMSR4buVaSBuw6BvIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQ1CisjOiB3dC1zdGF0dXMuYzoxMjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgXCJnaXQgYWRkXCIgYW5kL29yIFwiZ2l0IGNvbW1pdCAtYVwiKVxuIgogbXNnc3RyICIiCiAia2jDtG5nIGPDsyB0aGF5IMSR4buVaSBuw6BvIMSRxrDhu6NjIHRow6ptIHbDoG8gY29tbWl0IChkw7luZyBcImdpdCBhZGRcIiB2w6AvaG/hurdjIFwiZ2l0ICIKICJjb21taXQgLWFcIilcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI0OAorIzogd3Qtc3RhdHVzLmM6MTI1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdFxuIgogbXNnc3RyICJraMO0bmcgY8OzIHRoYXkgxJHhu5VpIG7DoG8gxJHGsOG7o2MgdGjDqm0gdsOgbyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTEKKyM6IHd0LXN0YXR1cy5jOjEyNTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudCAodXNlIFwiZ2l0IGFkZFwiIHRvICIKQEAgLTE1OTIsNTggKzE2NjcsNTggQEAKICJraMO0bmcgY8OzIGfDrCDEkcaw4bujYyB0aMOqbSB2w6BvIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgbmjGsG5nIGPDsyBuaOG7r25nIHThuq1wIHRpbiAiCiAia2jDtG5nIMSRxrDhu6NjIHRoZW8gZOG6pXUgduG6v3QgaGnhu4duIGRp4buHbiAoZMO5bmcgXCJnaXQgYWRkXCIgxJHhu4MgxJHGsGEgdsOgbyB0aGVvIGTDtWkpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTQKKyM6IHd0LXN0YXR1cy5jOjEyNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50XG4iCiBtc2dzdHIgIiIKICJraMO0bmcgY8OzIGfDrCDEkcaw4bujYyB0aMOqbSB2w6BvIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgbmjGsG5nIGPDsyBuaOG7r25nIHThuq1wIHRpbiAiCiAia2jDtG5nIMSRxrDhu6NjIHRoZW8gZOG6pXUgduG6v3QgaGnhu4duIGRp4buHblxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU3CisjOiB3dC1zdGF0dXMuYzoxMjYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0IChjcmVhdGUvY29weSBmaWxlcyBhbmQgdXNlIFwiZ2l0IGFkZFwiIHRvIHRyYWNrKVxuIgogbXNnc3RyICIiCiAiIGtow7RuZyBjw7MgZ8OsIMSR4buDIGNvbW1pdCAodOG6oW8vc2FvLWNow6lwIGPDoWMgdOG6rXAgdGluIHbDoCBkw7luZyBcImdpdCBhZGRcIiDEkeG7gyB0aGVvICIKICJkw7VpIGThuqV1IHbhur90KVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYwIHd0LXN0YXR1cy5jOjEyNjUKKyM6IHd0LXN0YXR1cy5jOjEyNjMgd3Qtc3RhdHVzLmM6MTI2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdFxuIgogbXNnc3RyICJraMO0bmcgY8OzIGfDrCDEkeG7gyBjaHV54buDbiBnaWFvIChjb21taXQpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjMKKyM6IHd0LXN0YXR1cy5jOjEyNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcylcbiIKIG1zZ3N0ciAiIgogImtow7RuZyBjw7MgZ8OsIMSR4buDIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgKGTDuW5nIC11IMSR4buDIGLhu48gY8OhYyB04bqtcCB0aW4gY+G6p24gdGhlbyBk4bqldSAiCiAiduG6v3QpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjcKKyM6IHd0LXN0YXR1cy5jOjEyNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgZGlyZWN0b3J5IGNsZWFuXG4iCiBtc2dzdHIgImtow7RuZyBjw7MgZ8OsIMSR4buDIGNodXnhu4NuIGdpYW8gKGNvbW1pdCksIHRoxrAgbeG7pWMgbMOgbSB2aeG7h2Mgc+G6oWNoIHPhur1cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTM3NQorIzogd3Qtc3RhdHVzLmM6MTM3OAogbXNnaWQgIkhFQUQgKG5vIGJyYW5jaCkiCiBtc2dzdHIgIkhFQUQgKGtow7RuZyBuaMOhbmgpIgogCi0jOiB3dC1zdGF0dXMuYzoxMzgxCisjOiB3dC1zdGF0dXMuYzoxMzg0CiBtc2dpZCAiSW5pdGlhbCBjb21taXQgb24gIgogbXNnc3RyICJM4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGto4bufaSB04bqhbyB0csOqbiAiCiAKLSM6IHd0LXN0YXR1cy5jOjEzOTYKKyM6IHd0LXN0YXR1cy5jOjEzOTkKIG1zZ2lkICJiZWhpbmQgIgogbXNnc3RyICLEkeG6sW5nIHNhdSAiCiAKLSM6IHd0LXN0YXR1cy5jOjEzOTkgd3Qtc3RhdHVzLmM6MTQwMgorIzogd3Qtc3RhdHVzLmM6MTQwMiB3dC1zdGF0dXMuYzoxNDA1CiBtc2dpZCAiYWhlYWQgIgogbXNnc3RyICJwaMOtYSB0csaw4bubYyAiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDQKKyM6IHd0LXN0YXR1cy5jOjE0MDcKIG1zZ2lkICIsIGJlaGluZCAiCiBtc2dzdHIgIiwgxJHhurFuZyBzYXUgIgogCi0jOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTggYnVpbHRpbi9jbG9uZS5jOjM1MgorIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHVubGluayAnJXMnIgogbXNnc3RyICJi4buPIGxpw6puIGvhur90ICh1bmxpbmspICVzIGtow7RuZyB0aMOgbmggY8O0bmciCkBAIC0xNzMxLDcgKzE4MDYsNyBAQAogbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCiBtc2dzdHIgInRy4bqhbmcgdGjDoWkgbOG7h25oIGRpZmYga2jDtG5nIG5oxrAgbW9uZyDEkeG7o2kgJWMiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MTQ5IGJ1aWx0aW4vY29tbWl0LmM6MjMzCisjOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjI1MgogbXNnaWQgInVwZGF0aW5nIGZpbGVzIGZhaWxlZCIKIG1zZ3N0ciAiQ+G6rXAgbmjhuq10IHThuq1wIHRpbiBn4bq3cCBs4buXaSIKIApAQCAtMTc0NSw3ICsxODIwLDcgQEAKIG1zZ3N0ciAiIgogIkPDoWMgdGhheSDEkeG7lWkga2jDtG5nIMSRxrDhu6NjIGzGsHUgdHLhuqFuZyB0aMOhaSBzYXUga2hpIGzDoG0gdMawxqFpIG3hu5tpIGzhuqFpIGLhuqNuZyBt4bulYyBs4bulYzoiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MjU2IGJ1aWx0aW4vYWRkLmM6NTcyIGJ1aWx0aW4vcm0uYzoyNzUKKyM6IGJ1aWx0aW4vYWRkLmM6MjU2IGJ1aWx0aW4vYWRkLmM6NTczIGJ1aWx0aW4vcm0uYzozMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aHNwZWMgJyVzJyBkaWQgbm90IG1hdGNoIGFueSBmaWxlcyIKIG1zZ3N0ciAicGF0aHNwZWMg4oCcJXPigJ0ga2jDtG5nIGto4bubcCB24bubaSBi4bqldCBr4buzIHThuq1wIHRpbiBuw6BvIgpAQCAtMTc1NCwxMzMgKzE4MjksMTMzIEBACiBtc2dpZCAiQ291bGQgbm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu41jIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9hZGQuYzozNDkKKyM6IGJ1aWx0aW4vYWRkLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmcuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgbeG7nyDigJwlc+KAnSDEkeG7gyBnaGkuIgogCi0jOiBidWlsdGluL2FkZC5jOjM1MworIzogYnVpbHRpbi9hZGQuYzozNTQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgcGF0Y2giCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgcmEgbWnhur9uZyB2w6EiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzU4CisjOiBidWlsdGluL2FkZC5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbOG6pXkgdHLhuqFuZyB0aMOhaSB24buBIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2FkZC5jOjM2MAorIzogYnVpbHRpbi9hZGQuYzozNjEKIG1zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCiBtc2dzdHIgIk1p4bq/bmcgdsOhIHRy4buRbmcgcuG7l25nLiDEkMOjIGLhu48gcXVhLiIKIAotIzogYnVpbHRpbi9hZGQuYzozNjYKKyM6IGJ1aWx0aW4vYWRkLmM6MzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgYXBwbHkgKMOhcCBk4bulbmcgbWnhur9uZyB2w6EpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2FkZC5jOjM3NgorIzogYnVpbHRpbi9hZGQuYzozNzcKIG1zZ2lkICJUaGUgZm9sbG93aW5nIHBhdGhzIGFyZSBpZ25vcmVkIGJ5IG9uZSBvZiB5b3VyIC5naXRpZ25vcmUgZmlsZXM6XG4iCiBtc2dzdHIgIiIKICJDw6FjIMSRxrDhu51uZyBk4bqrbiB0aGVvIHNhdSDEkcOieSBz4bq9IGLhu4sgbOG7nSDEkWkgYuG7n2kgbeG7mXQgdHJvbmcgY8OhYyB04bqtcCB0aW4gLmdpdGlnbm9yZSAiCiAiY+G7p2EgYuG6oW46XG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzkzIGJ1aWx0aW4vY2xlYW4uYzoxNjEgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MwotIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NiBidWlsdGluL3B1c2guYzo0MjUgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCi0jOiBidWlsdGluL3JtLmM6MjA2CisjOiBidWlsdGluL2FkZC5jOjM5NCBidWlsdGluL2NsZWFuLmM6ODc1IGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKKyM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzMgYnVpbHRpbi9wdXNoLmM6NDUxIGJ1aWx0aW4vcmVtb3RlLmM6MTI1MworIzogYnVpbHRpbi9ybS5jOjI2OAogbXNnaWQgImRyeSBydW4iCiBtc2dzdHIgImNo4bqheSB0aOG7rSIKIAotIzogYnVpbHRpbi9hZGQuYzozOTQgYnVpbHRpbi9hcHBseS5jOjQ0MDkgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQotIzogYnVpbHRpbi9jb21taXQuYzoxMTUyIGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMwotIzogYnVpbHRpbi9sb2cuYzoxNTE4IGJ1aWx0aW4vbXYuYzo2MiBidWlsdGluL3JlYWQtdHJlZS5jOjExMgorIzogYnVpbHRpbi9hZGQuYzozOTUgYnVpbHRpbi9hcHBseS5jOjQ0MTAgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQorIzogYnVpbHRpbi9jb21taXQuYzoxMjIwIGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMworIzogYnVpbHRpbi9sb2cuYzoxNTczIGJ1aWx0aW4vbXYuYzo2MiBidWlsdGluL3JlYWQtdHJlZS5jOjExMwogbXNnaWQgImJlIHZlcmJvc2UiCiBtc2dzdHIgImNoaSB0aeG6v3QiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk2CisjOiBidWlsdGluL2FkZC5jOjM5NwogbXNnaWQgImludGVyYWN0aXZlIHBpY2tpbmciCiBtc2dzdHIgInPhu61hIGLhurFuZyBjw6FjaCB0xrDGoW5nIHTDoWMiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYzIGJ1aWx0aW4vcmVzZXQuYzoyNTgKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDczIGJ1aWx0aW4vcmVzZXQuYzoyNjEKIG1zZ2lkICJzZWxlY3QgaHVua3MgaW50ZXJhY3RpdmVseSIKIG1zZ3N0ciAiY2jhu41uIOKAnGh1bmtz4oCdIG3hu5l0IGPDoWNoIHTGsMahbmcgdMOhYyIKIAotIzogYnVpbHRpbi9hZGQuYzozOTgKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk5CiBtc2dpZCAiZWRpdCBjdXJyZW50IGRpZmYgYW5kIGFwcGx5IgogbXNnc3RyICJz4butYSBkaWZmIGhp4buHbiBuYXkgdsOgIMOhcCBk4bulbmcgbsOzIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OQorIzogYnVpbHRpbi9hZGQuYzo0MDAKIG1zZ2lkICJhbGxvdyBhZGRpbmcgb3RoZXJ3aXNlIGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgImNobyBwaMOpcCB0aMOqbSBjw6FjIHThuq1wIHRpbiBi4buLIGLhu48gcXVhIGtow6FjIgogCi0jOiBidWlsdGluL2FkZC5jOjQwMAorIzogYnVpbHRpbi9hZGQuYzo0MDEKIG1zZ2lkICJ1cGRhdGUgdHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAiY+G6rXAgbmjhuq10IGPDoWMgdOG6rXAgdGluIMSRxrDhu6NjIHRoZW8gduG6v3QiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAxCisjOiBidWlsdGluL2FkZC5jOjQwMgogbXNnaWQgInJlY29yZCBvbmx5IHRoZSBmYWN0IHRoYXQgdGhlIHBhdGggd2lsbCBiZSBhZGRlZCBsYXRlciIKIG1zZ3N0ciAiY2jhu4kgZ2hpIGzhuqFpIHPhu7Egdmnhu4djIG3DoCDEkcaw4budbmcgZOG6q24gc+G6vSDEkcaw4bujYyB0aMOqbSB2w6BvIHNhdSIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDIKKyM6IGJ1aWx0aW4vYWRkLmM6NDAzCiBtc2dpZCAiYWRkIGNoYW5nZXMgZnJvbSBhbGwgdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgogbXNnc3RyICIiCiAidGjDqm0gY8OhYyB0aGF5IMSR4buVaSB04burIHThuqV0IGPhuqMgY8OhYyB04bqtcCB0aW4gY8OzIGPFqW5nIG5oxrAga2jDtG5nIMSRxrDhu6NjIHRoZW8gZMO1aSBk4bqldSAiCiAiduG6v3QiCiAKICMuIHRha2VzIG5vIGFyZ3VtZW50cwotIzogYnVpbHRpbi9hZGQuYzo0MDUKKyM6IGJ1aWx0aW4vYWRkLmM6NDA2CiBtc2dpZCAiaWdub3JlIHBhdGhzIHJlbW92ZWQgaW4gdGhlIHdvcmtpbmcgdHJlZSAoc2FtZSBhcyAtLW5vLWFsbCkiCiBtc2dzdHIgIiIKICJs4budIMSRaSBjw6FjIMSRxrDhu51uZyBk4bqrbiBi4buLIGfhu6EgYuG7jyB0cm9uZyBjw6J5IHRoxrAgbeG7pWMgbMOgbSB2aeG7h2MgKGdp4buRbmcgduG7m2kgLS1uby1hbGwpIgogCi0jOiBidWlsdGluL2FkZC5jOjQwNworIzogYnVpbHRpbi9hZGQuYzo0MDgKIG1zZ2lkICJkb24ndCBhZGQsIG9ubHkgcmVmcmVzaCB0aGUgaW5kZXgiCiBtc2dzdHIgImtow7RuZyB0aMOqbSwgY2jhu4kgbMOgbSB0xrDGoWkgbeG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL2FkZC5jOjQwOAorIzogYnVpbHRpbi9hZGQuYzo0MDkKIG1zZ2lkICJqdXN0IHNraXAgZmlsZXMgd2hpY2ggY2Fubm90IGJlIGFkZGVkIGJlY2F1c2Ugb2YgZXJyb3JzIgogbXNnc3RyICJjaGllIGLhu48gcXVhIG5o4buvbmcgdOG6rXAgdGluIG3DoCBuw7Mga2jDtG5nIHRo4buDIMSRxrDhu6NjIHRow6ptIHbDoG8gYuG7n2kgdsOsIGfhurdwIGzhu5dpIgogCi0jOiBidWlsdGluL2FkZC5jOjQwOQorIzogYnVpbHRpbi9hZGQuYzo0MTAKIG1zZ2lkICJjaGVjayBpZiAtIGV2ZW4gbWlzc2luZyAtIGZpbGVzIGFyZSBpZ25vcmVkIGluIGRyeSBydW4iCiBtc2dzdHIgIiIKICJraeG7g20gdHJhIHhlbSAtIHRo4bqtbSBjaMOtIHRoaeG6v3UgLSB04bqtcCB0aW4gYuG7iyBi4buPIHF1YSB0cm9uZyBxdcOhIHRyw6xuaCBjaOG6oXkgdGjhu60iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDMxCisjOiBidWlsdGluL2FkZC5jOjQzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCB0aGVtLlxuIgogbXNnc3RyICJT4butIGThu6VuZyB0w7l5IGNo4buNbiAtZiBu4bq/dSBi4bqhbiB0aOG7sWMgc+G7sSBtdeG7kW4gdGjDqm0gY2jDum5nIHbDoG8uXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDMyCisjOiBidWlsdGluL2FkZC5jOjQzMwogbXNnaWQgIm5vIGZpbGVzIGFkZGVkIgogbXNnc3RyICJjaMawYSBjw7MgdOG6rXAgdGluIG7DoG8gxJHGsOG7o2MgdGjDqm0gdsOgbyIKIAotIzogYnVpbHRpbi9hZGQuYzo0MzgKKyM6IGJ1aWx0aW4vYWRkLmM6NDM5CiBtc2dpZCAiYWRkaW5nIGZpbGVzIGZhaWxlZCIKIG1zZ3N0ciAidGjDqm0gdOG6rXAgdGluIGfhurdwIGzhu5dpIgogCi0jOiBidWlsdGluL2FkZC5jOjQ3NworIzogYnVpbHRpbi9hZGQuYzo0NzgKIG1zZ2lkICItQSBhbmQgLXUgYXJlIG11dHVhbGx5IGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLUEgdsOgIC11IHh1bmcga2jhuq9jIG5oYXUiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDk1CisjOiBidWlsdGluL2FkZC5jOjQ5NgogbXNnaWQgIk9wdGlvbiAtLWlnbm9yZS1taXNzaW5nIGNhbiBvbmx5IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAtLWRyeS1ydW4iCiBtc2dzdHIgIlTDuXkgY2jhu41uIC0taWdub3JlLW1pc3NpbmcgY2jhu4kgY8OzIHRo4buDIMSRxrDhu6NjIGTDuW5nIGPDuW5nIHbhu5tpIC0tZHJ5LXJ1biIKIAotIzogYnVpbHRpbi9hZGQuYzo1MjUKKyM6IGJ1aWx0aW4vYWRkLmM6NTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdGhpbmcgc3BlY2lmaWVkLCBub3RoaW5nIGFkZGVkLlxuIgogbXNnc3RyICJLaMO0bmcgY8OzIGfDrCDEkcaw4bujYyBjaOG7iSByYSwga2jDtG5nIGPDsyBnw6wgxJHGsOG7o2MgdGjDqm0gdsOgby5cbiIKIAotIzogYnVpbHRpbi9hZGQuYzo1MjYKKyM6IGJ1aWx0aW4vYWRkLmM6NTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1heWJlIHlvdSB3YW50ZWQgdG8gc2F5ICdnaXQgYWRkIC4nP1xuIgogbXNnc3RyICJDw7MgbOG6vSBi4bqhbiBtdeG7kW4gbMOgIOKAnGdpdCBhZGQgLuKAnSBwaOG6o2kga2jDtG5nP1xuIgogCi0jOiBidWlsdGluL2FkZC5jOjUzMiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjY2IGJ1aWx0aW4vY2xlYW4uYzoyMDQKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MjkzIGJ1aWx0aW4vbXYuYzo4MiBidWlsdGluL3JtLmM6MjM1CisjOiBidWlsdGluL2FkZC5jOjUzMyBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MSBidWlsdGluL2NsZWFuLmM6OTE5CisjOiBidWlsdGluL2NvbW1pdC5jOjMxMiBidWlsdGluL212LmM6ODIgYnVpbHRpbi9ybS5jOjI5NwogbXNnaWQgImluZGV4IGZpbGUgY29ycnVwdCIKIG1zZ3N0ciAidOG6rXAgdGluIGdoaSBi4bqjbmcgbeG7pWMgbOG7pWMgYuG7iyBo4buPbmciCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NjA0IGJ1aWx0aW4vYXBwbHkuYzo0NTA1IGJ1aWx0aW4vbXYuYzoyMjkgYnVpbHRpbi9ybS5jOjM3MAorIzogYnVpbHRpbi9hZGQuYzo2MDUgYnVpbHRpbi9hcHBseS5jOjQ1MDYgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6NDMyCiBtc2dpZCAiVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIHThuq1wIHRpbiBsxrB1IGLhuqNuZyBt4bulYyBs4bulYyBt4bubaSIKIApAQCAtMjA2NywyOTggKzIxNDIsMjk4IEBACiBtc2dpZCAiY2Fubm90IGNoZWNrb3V0ICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgXCJjaGVja291dFwiICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzE0MCBidWlsdGluL2FwcGx5LmM6MzE0OSBidWlsdGluL2FwcGx5LmM6MzE5MworIzogYnVpbHRpbi9hcHBseS5jOjMxNDAgYnVpbHRpbi9hcHBseS5jOjMxNDkgYnVpbHRpbi9hcHBseS5jOjMxOTQKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCBvZiAlcyBmYWlsZWQiCiBtc2dzdHIgIsSR4buNYyAlcyBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMxNzMgYnVpbHRpbi9hcHBseS5jOjMzOTUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMTc0IGJ1aWx0aW4vYXBwbHkuYzozMzk2CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJXMgaGFzIGJlZW4gcmVuYW1lZC9kZWxldGVkIgogbXNnc3RyICLEkcaw4budbmcgZOG6q24gJXMgxJHDoyBi4buLIHjDs2EvxJHhu5VpIHTDqm4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjU0IGJ1aWx0aW4vYXBwbHkuYzozNDA5CisjOiBidWlsdGluL2FwcGx5LmM6MzI1NSBidWlsdGluL2FwcGx5LmM6MzQxMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgiCiBtc2dzdHIgIiVzOiBraMO0bmcgdOG7k24gdOG6oWkgdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI1OCBidWlsdGluL2FwcGx5LmM6MzQwMSBidWlsdGluL2FwcGx5LmM6MzQyMworIzogYnVpbHRpbi9hcHBseS5jOjMyNTkgYnVpbHRpbi9hcHBseS5jOjM0MDIgYnVpbHRpbi9hcHBseS5jOjM0MjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6ICVzIgogbXNnc3RyICIlczogJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjYzIGJ1aWx0aW4vYXBwbHkuYzozNDE3CisjOiBidWlsdGluL2FwcGx5LmM6MzI2NCBidWlsdGluL2FwcGx5LmM6MzQxOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogZG9lcyBub3QgbWF0Y2ggaW5kZXgiCiBtc2dzdHIgIiVzOiBraMO0bmcga2jhu5twIHRyb25nIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzM2NQorIzogYnVpbHRpbi9hcHBseS5jOjMzNjYKIG1zZ2lkICJyZW1vdmFsIHBhdGNoIGxlYXZlcyBmaWxlIGNvbnRlbnRzIgogbXNnc3RyICJsb+G6oWkgYuG7jyBtaeG6v25nIHbDoSDEkeG7gyBs4bqhaSBu4buZaSBkdW5nIHThuq1wIHRpbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiB3cm9uZyB0eXBlIgogbXNnc3RyICIlczogc2FpIGtp4buDdSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGhhcyB0eXBlICVvLCBleHBlY3RlZCAlbyIKIG1zZ3N0ciAiJXMgY8OzIGtp4buDdSAlbywgbW9uZyBjaOG7nSAlbyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1MzcKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBhbHJlYWR5IGV4aXN0cyBpbiBpbmRleCIKIG1zZ3N0ciAiJXM6IMSRw6MgY8OzIHThu6sgdHLGsOG7m2MgdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU0MAorIzogYnVpbHRpbi9hcHBseS5jOjM1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIHdvcmtpbmcgZGlyZWN0b3J5IgogbXNnc3RyICIlczogxJHDoyBz4bq1biBjw7MgdHJvbmcgdGjGsCBt4bulYyDEkWFuZyBsw6BtIHZp4buHYyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSIKIG1zZ3N0ciAiY2jhur8gxJHhu5kgbeG7m2kgKCVvKSBj4bunYSAlcyBraMO0bmcga2jhu5twIHbhu5tpIGNo4bq/IMSR4buZIGPFqSAoJW8pIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU2NQorIzogYnVpbHRpbi9hcHBseS5jOjM1NjYKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IG1vZGUgKCVvKSBvZiAlcyBkb2VzIG5vdCBtYXRjaCBvbGQgbW9kZSAoJW8pIG9mICVzIgogbXNnc3RyICJjaOG6vyDEkeG7mSBt4bubaSAoJW8pIGPhu6dhICVzIGtow7RuZyBraOG7m3AgduG7m2kgY2jhur8gxJHhu5kgY8WpICglbykgY+G7p2EgJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTczCisjOiBidWlsdGluL2FwcGx5LmM6MzU3NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogcGF0Y2ggZG9lcyBub3QgYXBwbHkiCiBtc2dzdHIgIiVzOiBtaeG6v25nIHbDoSBraMO0bmcgxJHGsOG7o2Mgw6FwIGThu6VuZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1ODYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoZWNraW5nIHBhdGNoICVzLi4uIgogbXNnc3RyICLEkGFuZyBraeG7g20gdHJhIG1p4bq/bmcgdsOhICVzLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzY3OSBidWlsdGluL2NoZWNrb3V0LmM6MjE2IGJ1aWx0aW4vcmVzZXQuYzoxMjQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTYgYnVpbHRpbi9yZXNldC5jOjEyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWtlX2NhY2hlX2VudHJ5IGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICJtYWtlX2NhY2hlX2VudHJ5IGfhurdwIGzhu5dpIMSR4buRaSB24bubaSDEkcaw4budbmcgZOG6q24g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODIyCisjOiBidWlsdGluL2FwcGx5LmM6MzgyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlICVzIGZyb20gaW5kZXgiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBn4buhIGLhu48gJXMgdOG7qyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODUxCiAjLCBjLWZvcm1hdAotbXNnaWQgImNvcnJ1cHQgcGF0Y2ggZm9yIHN1YnByb2plY3QgJXMiCi1tc2dzdHIgIm1p4bq/bmcgdsOhIHNhaSBo4buPbmcgY2hvIGThu7Egw6FuIGNvbiAoc3VicHJvamVjdCkgJXMiCittc2dpZCAiY29ycnVwdCBwYXRjaCBmb3Igc3VibW9kdWxlICVzIgorbXNnc3RyICJtaeG6v25nIHbDoSBzYWkgaOG7j25nIGNobyBtw7QtxJF1bi1jb24gKHN1YnByb2plY3QpICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1NAorIzogYnVpbHRpbi9hcHBseS5jOjM4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHN0YXQgbmV3bHkgY3JlYXRlZCBmaWxlICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyBs4bqleSB0cuG6oW5nIHRow6FpIHbhu4EgdOG6rXAgdGluICVzIG3hu5tpIGjGoW4gxJHDoyDEkcaw4bujYyB04bqhbyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTkKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODYwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgYmFja2luZyBzdG9yZSBmb3IgbmV3bHkgY3JlYXRlZCBmaWxlICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgdOG6oW8g4oCcYmFja2luZyBzdG9yZeKAnSBjaG8gdOG6rXAgdGluIMSRxrDhu6NjIHThuqFvIG3hu5tpIGjGoW4gJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODYyIGJ1aWx0aW4vYXBwbHkuYzozOTcwCisjOiBidWlsdGluL2FwcGx5LmM6Mzg2MyBidWlsdGluL2FwcGx5LmM6Mzk3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWRkIGNhY2hlIGVudHJ5IGZvciAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHRow6ptIG3hu6VjIG5o4bubIHThuqFtIGNobyAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4OTUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODk2CiAjLCBjLWZvcm1hdAogbXNnaWQgImNsb3NpbmcgZmlsZSAnJXMnIgogbXNnc3RyICLEkWFuZyDEkcOzbmcgdOG6rXAgdGluIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzk0NAorIzogYnVpbHRpbi9hcHBseS5jOjM5NDUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIGZpbGUgJyVzJyBtb2RlICVvIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpIHbDoG8gdOG6rXAgdGluIOKAnCVz4oCdIGNo4bq/IMSR4buZIChtb2RlKSAlbyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFwcGxpZWQgcGF0Y2ggJXMgY2xlYW5seS4iCiBtc2dzdHIgIsSQw6Mgw6FwIGThu6VuZyBtaeG6v25nIHbDoCAlcyBt4buZdCBjw6FjaCBz4bqhY2ggc+G6vS4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDM5CisjOiBidWlsdGluL2FwcGx5LmM6NDA0MAogbXNnaWQgImludGVybmFsIGVycm9yIgogbXNnc3RyICJs4buXaSBu4buZaSBi4buZIgogCiAjLiBTYXkgdGhpcyBldmVuIHdpdGhvdXQgLS12ZXJib3NlCi0jOiBidWlsdGluL2FwcGx5LmM6NDA0MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0Li4uIgogbXNnaWRfcGx1cmFsICJBcHBseWluZyBwYXRjaCAlJXMgd2l0aCAlZCByZWplY3RzLi4uIgogbXNnc3RyWzBdICLEkGFuZyDDoXAgZOG7pW5nIG1p4bq/bmcgdsOhICUlcyB24bubaSAlZCBs4bqnbiB04burIGNo4buRaS4uLiIKIG1zZ3N0clsxXSAixJBhbmcgw6FwIGThu6VuZyBtaeG6v25nIHbDoSAlJXMgduG7m2kgJWQgbOG6p24gdOG7qyBjaOG7kWkuLi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDUyCisjOiBidWlsdGluL2FwcGx5LmM6NDA1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0cnVuY2F0aW5nIC5yZWogZmlsZW5hbWUgdG8gJS4qcy5yZWoiCiBtc2dzdHIgIsSRYW5nIGPhuq90IGPhu6V0IHTDqm4gdOG6rXAgdGluIC5yZWogdGjDoG5oICUuKnMucmVqIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA3MworIzogYnVpbHRpbi9hcHBseS5jOjQwNzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiSHVuayAjJWQgYXBwbGllZCBjbGVhbmx5LiIKIG1zZ3N0ciAiS2jhu5FpIG5o4bubICMlZCDEkcaw4bujYyDDoXAgZOG7pW5nIGfhu41uIGfDoG5nLiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlamVjdGVkIGh1bmsgIyVkLiIKIG1zZ3N0ciAiaHVuayAjJWQgYuG7iyB04burIGNo4buRaS4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MjI2CisjOiBidWlsdGluL2FwcGx5LmM6NDIyNwogbXNnaWQgInVucmVjb2duaXplZCBpbnB1dCIKIG1zZ3N0ciAia2jDtG5nIHRo4burYSBuaOG6rW4gxJHhuqd1IHbDoG8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MjM3CisjOiBidWlsdGluL2FwcGx5LmM6NDIzOAogbXNnaWQgInVuYWJsZSB0byByZWFkIGluZGV4IGZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgdOG6rXAgdGluIGzGsHUgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NiBidWlsdGluL2FwcGx5LmM6NDM1OSBidWlsdGluL2Nsb25lLmM6OTIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3IGJ1aWx0aW4vYXBwbHkuYzo0MzYwIGJ1aWx0aW4vY2xvbmUuYzo5MQogIzogYnVpbHRpbi9mZXRjaC5jOjYzCiBtc2dpZCAicGF0aCIKIG1zZ3N0ciAixJHGsOG7nW5nLWThuqtuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NworIzogYnVpbHRpbi9hcHBseS5jOjQzNTgKIG1zZ2lkICJkb24ndCBhcHBseSBjaGFuZ2VzIG1hdGNoaW5nIHRoZSBnaXZlbiBwYXRoIgogbXNnc3RyICJraMO0bmcgw6FwIGThu6VuZyBjw6FjIHRoYXkgxJHhu5VpIGto4bubcCB24bubaSDEkcaw4budbmcgZOG6q24gxJHDoyBjaG8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYwCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MQogbXNnaWQgImFwcGx5IGNoYW5nZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHBhdGgiCiBtc2dzdHIgIsOhcCBk4bulbmcgY8OhYyB0aGF5IMSR4buVaSBraOG7m3AgduG7m2kgxJHGsOG7nW5nIGThuqtuIMSRw6MgY2hvIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNjMKIG1zZ2lkICJudW0iCiBtc2dzdHIgInPhu5EiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYzCisjOiBidWlsdGluL2FwcGx5LmM6NDM2NAogbXNnaWQgInJlbW92ZSA8bnVtPiBsZWFkaW5nIHNsYXNoZXMgZnJvbSB0cmFkaXRpb25hbCBkaWZmIHBhdGhzIgogbXNnc3RyICJn4buhIGLhu48gPHPhu5E+IHBo4bqnbiBk4bqrbiDEkeG6p3UgKHNsYXNoZSkgdOG7qyDEkcaw4budbmcgZOG6q24gZGlmZiBj4buVIMSRaeG7g24iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY2CisjOiBidWlsdGluL2FwcGx5LmM6NDM2NwogbXNnaWQgImlnbm9yZSBhZGRpdGlvbnMgbWFkZSBieSB0aGUgcGF0Y2giCiBtc2dzdHIgImzhu50gxJFpIHBo4bqnbiBwaOG7pSB0aMOqbSB04bqhbyByYSBi4bufaSBtaeG6v25nIHbDoSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjgKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY5CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIG91dHB1dCBkaWZmc3RhdCBmb3IgdGhlIGlucHV0IgogbXNnc3RyICIiCiAidGhheSB2w6wgw6FwIGThu6VuZyBt4buZdCBtaeG6v25nIHbDoSwga+G6v3QgeHXhuqV0IGvhur90IHF14bqjIHThu6sgbOG7h25oIGRpZmZzdGF0IGNobyDEkeG6p3UgcmEiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzcyCisjOiBidWlsdGluL2FwcGx5LmM6NDM3MwogbXNnaWQgInNob3cgbnVtYmVyIG9mIGFkZGVkIGFuZCBkZWxldGVkIGxpbmVzIGluIGRlY2ltYWwgbm90YXRpb24iCiBtc2dzdHIgIiIKICJoaeG7g24gdGjhu4sgc+G7kSBsxrDhu6NuZyBjw6FjIGTDsm5nIMSRxrDhu6NjIHRow6ptIHbDoG8gdsOgIHjDs2EgxJFpIHRoZW8ga8O9IGhp4buHdSB0aOG6rXAgcGjDom4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc0CisjOiBidWlsdGluL2FwcGx5LmM6NDM3NQogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgYSBzdW1tYXJ5IGZvciB0aGUgaW5wdXQiCiBtc2dzdHIgInRoYXkgdsOsIMOhcCBk4bulbmcgbeG7mXQgbWnhur9uZyB2w6EsIGvhur90IHh14bqldCBr4bq/dCBxdeG6oyBjaG8gxJHhuqd1IHbDoG8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc2CisjOiBidWlsdGluL2FwcGx5LmM6NDM3NwogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBzZWUgaWYgdGhlIHBhdGNoIGlzIGFwcGxpY2FibGUiCiBtc2dzdHIgInRoYXkgdsOsIMOhcCBk4bulbmcgbWnhur9uZyB2w6EsIGjDo3kgeGVtIHhlbSBtaeG6v25nIHbDoSBjw7MgdGjDrWNoIGjhu6NwIGtow7RuZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzgKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc5CiBtc2dpZCAibWFrZSBzdXJlIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIHRvIHRoZSBjdXJyZW50IGluZGV4IgogbXNnc3RyICJow6N5IGNo4bqvYyBjaOG6r24gbMOgIG1p4bq/bmcgdsOhIHRow61jaCBo4bujcCB24bubaSBi4bqjbmcgbeG7pWMgbOG7pWMgaGnhu4duIGjDoG5oIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4MAorIzogYnVpbHRpbi9hcHBseS5jOjQzODEKIG1zZ2lkICJhcHBseSBhIHBhdGNoIHdpdGhvdXQgdG91Y2hpbmcgdGhlIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiw6FwIGThu6VuZyBt4buZdCBtaeG6v25nIHbDoSBtw6Aga2jDtG5nIMSR4buZbmcgY2jhuqFtIMSR4bq/biBjw6J5IGzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4MgorIzogYnVpbHRpbi9hcHBseS5jOjQzODMKIG1zZ2lkICJhbHNvIGFwcGx5IHRoZSBwYXRjaCAodXNlIHdpdGggLS1zdGF0Ly0tc3VtbWFyeS8tLWNoZWNrKSIKIG1zZ3N0ciAiIgogIsSR4buTbmcgdGjhu51pIMOhcCBk4bulbmcgbWnhur9uZyB2w6EgKGTDuW5nIHbhu5tpIHTDuXkgY2jhu41uIC0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg0CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NQogbXNnaWQgImF0dGVtcHQgdGhyZWUtd2F5IG1lcmdlIGlmIGEgcGF0Y2ggZG9lcyBub3QgYXBwbHkiCiBtc2dzdHIgInRo4butIGjDsmEgdHLhu5luIGtp4buDdSB0aHJlZS13YXkgbuG6v3Ugdmnhu4djIHbDoSBraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiDEkcaw4bujYyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg3CiBtc2dpZCAiYnVpbGQgYSB0ZW1wb3JhcnkgaW5kZXggYmFzZWQgb24gZW1iZWRkZWQgaW5kZXggaW5mb3JtYXRpb24iCiBtc2dzdHIgIiIKICJ4w6J5IGThu7FuZyBi4bqjbmcgbeG7pWMgbOG7pWMgdOG6oW0gdGjhu51pIHRyw6puIGPGoSBz4bufIHRow7RuZyB0aW4gYuG6o25nIG3hu6VjIGzhu6VjIMSRxrDhu6NjIG5ow7puZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODggYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDU2CisjOiBidWlsdGluL2FwcGx5LmM6NDM4OSBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjIKIG1zZ2lkICJwYXRocyBhcmUgc2VwYXJhdGVkIHdpdGggTlVMIGNoYXJhY3RlciIKIG1zZ3N0ciAiY8OhYyDEkcaw4budbmcgZOG6q24gYuG7iyBuZ8SDbiBjw6FjaCBi4bufaSBrw70gdOG7sSBOVUxMIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MQorIzogYnVpbHRpbi9hcHBseS5jOjQzOTIKIG1zZ2lkICJlbnN1cmUgYXQgbGVhc3QgPG4+IGxpbmVzIG9mIGNvbnRleHQgbWF0Y2giCiBtc2dzdHIgIsSR4bqjbSBi4bqjbyBy4bqxbmcgY8OzIMOtdCBuaOG6pXQgPG4+IGTDsm5nIG7hu5lpIGR1bmcga2jhu5twIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MgorIzogYnVpbHRpbi9hcHBseS5jOjQzOTMKIG1zZ2lkICJhY3Rpb24iCiBtc2dzdHIgImjDoG5oIMSR4buZbmciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkzCisjOiBidWlsdGluL2FwcGx5LmM6NDM5NAogbXNnaWQgImRldGVjdCBuZXcgb3IgbW9kaWZpZWQgbGluZXMgdGhhdCBoYXZlIHdoaXRlc3BhY2UgZXJyb3JzIgogbXNnc3RyICJ0w6xtIHRo4bqleSBt4buZdCBkw7JuZyBt4bubaSBob+G6t2MgYuG7iyBz4butYSDEkeG7lWkgbcOgIG7DsyBjw7MgbOG7l2kgZG8ga2hv4bqjbmcgdHLhuq9uZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTYgYnVpbHRpbi9hcHBseS5jOjQzOTkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk3IGJ1aWx0aW4vYXBwbHkuYzo0NDAwCiBtc2dpZCAiaWdub3JlIGNoYW5nZXMgaW4gd2hpdGVzcGFjZSB3aGVuIGZpbmRpbmcgY29udGV4dCIKIG1zZ3N0ciAibOG7nSDEkWkgc+G7sSB0aGF5IMSR4buVaSBkbyBraG/huqNuZyB0cuG6r25nIGtoaSBxdcOpdCBu4buZaSBkdW5nIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwMgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDMKIG1zZ2lkICJhcHBseSB0aGUgcGF0Y2ggaW4gcmV2ZXJzZSIKIG1zZ3N0ciAiw6FwIGThu6VuZyBtaeG6v25nIHbDoSB0aGVvIGNoaeG7gXUgbmfGsOG7o2MiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA0CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNQogbXNnaWQgImRvbid0IGV4cGVjdCBhdCBsZWFzdCBvbmUgbGluZSBvZiBjb250ZXh0IgogbXNnc3RyICLEkeG7q25nIGh5IHbhu41uZyBjw7Mgw610IG5o4bqldCBt4buZdCBkw7JuZyBu4buZaSBkdW5nIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDcKIG1zZ2lkICJsZWF2ZSB0aGUgcmVqZWN0ZWQgaHVua3MgaW4gY29ycmVzcG9uZGluZyAqLnJlaiBmaWxlcyIKIG1zZ3N0ciAixJHhu4MgbOG6oWkga2jhu5FpIGThu68gbGnhu4d1IGLhu4sgdOG7qyBjaOG7kWkgdHJvbmcgY8OhYyB04bqtcCB0aW4gKi5yZWogdMawxqFuZyDhu6luZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MDgKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA5CiBtc2dpZCAiYWxsb3cgb3ZlcmxhcHBpbmcgaHVua3MiCiBtc2dzdHIgImNobyBwaMOpcCBjaOG7k25nIGto4buRaSBuaOG7myIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDEyCiBtc2dpZCAidG9sZXJhdGUgaW5jb3JyZWN0bHkgZGV0ZWN0ZWQgbWlzc2luZyBuZXctbGluZSBhdCB0aGUgZW5kIG9mIGZpbGUiCiBtc2dzdHIgIiIKICLEkcOjIGTDsiB0w6xtIHRo4bqleSBkdW5nIHNhaSBraMO0bmcgY2jDrW5oIHjDoWMgdGhp4bq/dSBkw7JuZyBt4bubaSB04bqhaSBjdeG7kWkgdOG6rXAgdGluIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxNAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MTUKIG1zZ2lkICJkbyBub3QgdHJ1c3QgdGhlIGxpbmUgY291bnRzIGluIHRoZSBodW5rIGhlYWRlcnMiCiBtc2dzdHIgImtow7RuZyB0aW4gc+G7kSBsxrDhu6NuZyBkw7JuZyB0cm9uZyBwaOG6p24gxJHhuqd1IGto4buRaSBk4buvIGxp4buHdSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE3CiBtc2dpZCAicm9vdCIKIG1zZ3N0ciAicm9vdCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE4CiBtc2dpZCAicHJlcGVuZCA8cm9vdD4gdG8gYWxsIGZpbGVuYW1lcyIKIG1zZ3N0ciAidHJlbyB0aMOqbSA8cm9vdD4gdsOgbyB04bqldCBj4bqjIGPDoWMgdMOqbiB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDM5CisjOiBidWlsdGluL2FwcGx5LmM6NDQ0MAogbXNnaWQgIi0tM3dheSBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiLS0zd2F5IOG7nyBuZ2/DoGkgbeG7mXQga2hvIGNo4bupYSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NDcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ4CiBtc2dpZCAiLS1pbmRleCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiLS1pbmRleCDhu58gbmdvw6BpIG3hu5l0IGtobyBjaOG7qWEiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDUwCisjOiBidWlsdGluL2FwcGx5LmM6NDQ1MQogbXNnaWQgIi0tY2FjaGVkIG91dHNpZGUgYSByZXBvc2l0b3J5IgogbXNnc3RyICItLWNhY2hlZCDhu58gbmdvw6BpIG3hu5l0IGtobyBjaOG7qWEiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDY2CisjOiBidWlsdGluL2FwcGx5LmM6NDQ2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW4ndCBvcGVuIHBhdGNoICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyBt4bufIG1p4bq/bmcgdsOhIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ4MAorIzogYnVpbHRpbi9hcHBseS5jOjQ0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAic3F1ZWxjaGVkICVkIHdoaXRlc3BhY2UgZXJyb3IiCiBtc2dpZF9wbHVyYWwgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9ycyIKIG1zZ3N0clswXSAixJHDoyBjaOG6pW0gZOG7qXQgJWQgbOG7l2kga2hv4bqjbmcgdHLhuq9uZyIKIG1zZ3N0clsxXSAixJHDoyBjaOG6pW0gZOG7qXQgJWQgbOG7l2kga2hv4bqjbmcgdHLhuq9uZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0ODYgYnVpbHRpbi9hcHBseS5jOjQ0OTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDg3IGJ1aWx0aW4vYXBwbHkuYzo0NDk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVkIGxpbmUgYWRkcyB3aGl0ZXNwYWNlIGVycm9ycy4iCiBtc2dpZF9wbHVyYWwgIiVkIGxpbmVzIGFkZCB3aGl0ZXNwYWNlIGVycm9ycy4iCkBAIC0yNDE0LDEwNSArMjQ4OSwxMDUgQEAKICJj4bqtcCBuaOG6rXQgQklTRUNUX0hFQUQgdGhheSB2w6wgbOG6pXkgcmEgKGNoZWNraW5nIG91dCkgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSAiCiAiaGnhu4duIGjDoG5oIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyNgogbXNnaWQgImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiCiBtc2dzdHIgImdpdCBibGFtZSBbY8OhYy10w7l5LWNo4buNbl0gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIHThuq1wLXRpbiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjMwCisjOiBidWlsdGluL2JsYW1lLmM6MzEKIG1zZ2lkICJbcmV2LW9wdHNdIGFyZSBkb2N1bWVudGVkIGluIGdpdC1yZXYtbGlzdCgxKSIKIG1zZ3N0ciAiW3Jldi1vcHRzXSDEkcaw4bujYyBtw7QgdOG6oyB0cm9uZyBnaXQtcmV2LWxpc3QoMSkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU1CisjOiBidWlsdGluL2JsYW1lLmM6MjI3NgogbXNnaWQgIlNob3cgYmxhbWUgZW50cmllcyBhcyB3ZSBmaW5kIHRoZW0sIGluY3JlbWVudGFsbHkiCiBtc2dzdHIgIkhp4buDbiB0aOG7iyBjw6FjIG3hu6VjIOKAnGJsYW1l4oCdIG5oxrAgbMOgIGNow7puZyB0YSB0aOG6pXkgY2jDum5nLCB0xINuZyBk4bqnbiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc3CiBtc2dpZCAiU2hvdyBibGFuayBTSEEtMSBmb3IgYm91bmRhcnkgY29tbWl0cyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiIgogIkhp4buDbiB0aOG7iyBTSEEtMSB0cuG6r25nIGNobyBuaOG7r25nIGzhuqduIGNodXnhu4NuIGdpYW8gYmnDqm4gZ2nhu5tpIChN4bq3YyDEkeG7i25oOiBvZmYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NworIzogYnVpbHRpbi9ibGFtZS5jOjIyNzgKIG1zZ2lkICJEbyBub3QgdHJlYXQgcm9vdCBjb21taXRzIGFzIGJvdW5kYXJpZXMgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIktow7RuZyBjb2kgY8OhYyBs4bqnbiBjaHV54buDbiBnaWFvIGfhu5FjIGzDoCBnaeG7m2kgaOG6oW4gKE3hurdjIMSR4buLbmg6IG9mZikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU4CisjOiBidWlsdGluL2JsYW1lLmM6MjI3OQogbXNnaWQgIlNob3cgd29yayBjb3N0IHN0YXRpc3RpY3MiCiBtc2dzdHIgIkhp4buDbiB0aOG7iyB0aOG7kW5nIGvDqiBjw7RuZyBz4bupYyBsw6BtIHZp4buHYyIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgwCiBtc2dpZCAiU2hvdyBvdXRwdXQgc2NvcmUgZm9yIGJsYW1lIGVudHJpZXMiCiBtc2dzdHIgIkhp4buDbiB0aOG7iyBr4bq/dCB4deG6pXQgxJFp4buDbSBz4buRIGPDsyBjw6FjIG3hu6VjIHRpbiDigJxibGFtZeKAnSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgxCiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBmaWxlbmFtZSAoRGVmYXVsdDogYXV0bykiCiBtc2dzdHIgIkhp4buDbiB0aOG7iyB0w6puIHThuq1wIHRpbiBn4buRYyAoTeG6t2MgxJHhu4tuaDogYXV0bykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYxCisjOiBidWlsdGluL2JsYW1lLmM6MjI4MgogbXNnaWQgIlNob3cgb3JpZ2luYWwgbGluZW51bWJlciAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIHPhu5EgZMOybmcgZ+G7kWMgKE3hurdjIMSR4buLbmg6IG9mZikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYyCisjOiBidWlsdGluL2JsYW1lLmM6MjI4MwogbXNnaWQgIlNob3cgaW4gYSBmb3JtYXQgZGVzaWduZWQgZm9yIG1hY2hpbmUgY29uc3VtcHRpb24iCiBtc2dzdHIgIkhp4buDbiB0aOG7iyDhu58gxJHhu4tuaCBk4bqhbmcgxJHDoyB0aGnhur90IGvhur8gY2hvIHPhu7EgdGnDqnUgZMO5bmcgYuG6sW5nIG3DoXkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYzCisjOiBidWlsdGluL2JsYW1lLmM6MjI4NAogbXNnaWQgIlNob3cgcG9yY2VsYWluIGZvcm1hdCB3aXRoIHBlci1saW5lIGNvbW1pdCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIMSR4buLbmggZOG6oW5nIOKAnHBvcmNlbGFpbuKAnSB24bubaSB0aMO0bmcgdGluIGNodXnhu4NuIGdpYW8gbeG7l2kgZMOybmciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY0CisjOiBidWlsdGluL2JsYW1lLmM6MjI4NQogbXNnaWQgIlVzZSB0aGUgc2FtZSBvdXRwdXQgbW9kZSBhcyBnaXQtYW5ub3RhdGUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIkTDuW5nIGPDuW5nIGNo4bq/IMSR4buZIHh14bqldCByYSB2w7NpZ2l0LWFubm90YXRlIChN4bq3YyDEkeG7i25oOiBvZmYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODYKIG1zZ2lkICJTaG93IHJhdyB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIkhp4buDbiB0aOG7iyBk4bqldSB24bq/dCB0aOG7nWkgZ2lhbiBk4bqhbmcgdGjDtCAoTeG6t2MgxJHhu4tuaDogb2ZmKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg3CiBtc2dpZCAiU2hvdyBsb25nIGNvbW1pdCBTSEExIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJIaeG7g24gdGjhu4sgU0hBMSBj4bunYSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGThuqFuZyBkw6BpIChN4bq3YyDEkeG7i25oOiBvZmYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NworIzogYnVpbHRpbi9ibGFtZS5jOjIyODgKIG1zZ2lkICJTdXBwcmVzcyBhdXRob3IgbmFtZSBhbmQgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJLaMO0bmcgaGnhu4NuIHRo4buLIHTDqm4gdMOhYyBnaeG6oyB2w6AgZOG6pXUgduG6v3QgdGjhu51pIGdpYW4gKE3hurdjIMSR4buLbmg6IG9mZikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY4CisjOiBidWlsdGluL2JsYW1lLmM6MjI4OQogbXNnaWQgIlNob3cgYXV0aG9yIGVtYWlsIGluc3RlYWQgb2YgbmFtZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIHRoxrAgxJFp4buHbiB04butIGPhu6dhIHTDoWMgZ2nhuqMgdGhheSB2w6wgdMOqbiAoTeG6t2MgxJHhu4tuaDogb2ZmKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkwCiBtc2dpZCAiSWdub3JlIHdoaXRlc3BhY2UgZGlmZmVyZW5jZXMiCiBtc2dzdHIgIkLhu48gcXVhIGPDoWMga2jDoWMgYmnhu4d0IGRvIGtob+G6o25nIHRy4bqvbmcgZ8OieSByYSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkxCiBtc2dpZCAiU3BlbmQgZXh0cmEgY3ljbGVzIHRvIGZpbmQgYmV0dGVyIG1hdGNoIgogbXNnc3RyICJUacOqdSB0aOG7pSB0aMOqbSBuxINuZyB0w6BpIG5ndXnDqm4gbcOheSBtw7NjIMSR4buDIHTDrG0ga2nhur9tIHThu5F0IGjGoW4gbuG7r2EiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcxCisjOiBidWlsdGluL2JsYW1lLmM6MjI5MgogbXNnaWQgIlVzZSByZXZpc2lvbnMgZnJvbSA8ZmlsZT4gaW5zdGVhZCBvZiBjYWxsaW5nIGdpdC1yZXYtbGlzdCIKIG1zZ3N0ciAiIgogIlPhu60gZOG7pW5nIMSRaeG7g20geMOpdCBkdXnhu4d0IChyZXZpc2lvbikgdOG7qyA8dOG6rXAgdGluPiB0aGF5IHbDrCBn4buNaSDigJxnaXQtcmV2LWxpc3TigJ0iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcyCisjOiBidWlsdGluL2JsYW1lLmM6MjI5MwogbXNnaWQgIlVzZSA8ZmlsZT4ncyBjb250ZW50cyBhcyB0aGUgZmluYWwgaW1hZ2UiCiBtc2dzdHIgIlPhu60gZOG7pW5nIG7hu5lpIGR1bmcgY+G7p2EgPHThuq1wIHRpbj4gbmjGsCBsw6Ag4bqjbmggY3Xhu5FpIGPDuW5nIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MyBidWlsdGluL2JsYW1lLmM6MjM3NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQgYnVpbHRpbi9ibGFtZS5jOjIyOTUKIG1zZ2lkICJzY29yZSIKIG1zZ3N0ciAixJFp4buDbSBz4buRIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MworIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQKIG1zZ2lkICJGaW5kIGxpbmUgY29waWVzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICJUw6xtIGPDoWMgYuG6o24gc2FvIGNow6lwIGTDsm5nIHRyb25nIHbDoCBuZ2FuZyBxdWEgdOG6rXAgdGluIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTUKIG1zZ2lkICJGaW5kIGxpbmUgbW92ZW1lbnRzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICJUw6xtIGPDoWMgZGkgY2h1eeG7g24gZMOybmcgdHJvbmcgdsOgIG5nYW5nIHF1YSB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzc1CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NgogbXNnaWQgIm4sbSIKIG1zZ3N0ciAibixtIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTYKIG1zZ2lkICJQcm9jZXNzIG9ubHkgbGluZSByYW5nZSBuLG0sIGNvdW50aW5nIGZyb20gMSIKIG1zZ3N0ciAiWOG7rSBsw70gY2jhu4kgZMOybmcgdsO5bmcgbixtLCB0w61uaCB04burIDEiCiAKQEAgLTI3NDQsOCArMjgxOSw4IEBACiBtc2dzdHIgInRoYW8gdMOhYyB0csOqbiBuaMOhbmgg4oCccmVtb3RlLXRyYWNraW5n4oCdIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgwNSBidWlsdGluL2JyYW5jaC5jOjgxMSBidWlsdGluL2JyYW5jaC5jOjgzMgotIzogYnVpbHRpbi9icmFuY2guYzo4MzggYnVpbHRpbi9jb21taXQuYzoxMzY4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwIGJ1aWx0aW4vY29tbWl0LmM6MTM3MSBidWlsdGluL3RhZy5jOjQ2OAorIzogYnVpbHRpbi9icmFuY2guYzo4MzggYnVpbHRpbi9jb21taXQuYzoxNDMzIGJ1aWx0aW4vY29tbWl0LmM6MTQzNAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM1IGJ1aWx0aW4vY29tbWl0LmM6MTQzNiBidWlsdGluL3RhZy5jOjQ2OAogbXNnaWQgImNvbW1pdCIKIG1zZ3N0ciAiY29tbWl0IgogCkBAIC0yODA5LDcgKzI4ODQsNyBAQAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlIEhFQUQgYXMgYSB2YWxpZCByZWYuIgogbXNnc3RyICJH4bq3cCBs4buXaSBraGkgcGjDom4gZ2nhuqNpIEhFQUQgbmjGsCBsw6AgbeG7mXQgdGhhbSBjaGnhur91IChyZWYpIGjhu6NwIGzhu4cuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg2MCBidWlsdGluL2Nsb25lLmM6NjE5CisjOiBidWlsdGluL2JyYW5jaC5jOjg2MCBidWlsdGluL2Nsb25lLmM6NjMwCiBtc2dpZCAiSEVBRCBub3QgZm91bmQgYmVsb3cgcmVmcy9oZWFkcyEiCiBtc2dzdHIgImtow7RuZyB0w6xtIHRo4bqleSBIRUFEIOG7nyBkxrDhu5tpIHJlZnMvaGVhZHMhIgogCkBAIC0yOTMzLDQ0ICszMDA4LDQ0IEBACiBtc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gdW5idW5kbGUuIgogbXNnc3RyICJD4bqnbiBt4buZdCBraG8gY2jhu6lhIMSR4buDIG3DoCBidW5nIG3hu5l0IGJ1bmRsZS4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxNzYKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODUKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXBlPnwtLXRleHRjb252KSA8b2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw8a2nhu4N1PnwtLXRleHRjb252KSA8xJHhu5FpIHTGsOG7o25nPiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE3NworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NgogbXNnaWQgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxsaXN0X29mX29iamVjdHM+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA8ZGFuaC1zw6FjaC3EkeG7kWktdMaw4bujbmc+IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MTk1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzIzCiBtc2dpZCAiPHR5cGU+IGNhbiBiZSBvbmUgb2Y6IGJsb2IsIHRyZWUsIGNvbW1pdCwgdGFnIgogbXNnc3RyICI8a2nhu4N1PiBsw6AgbeG7mXQgdHJvbmcgc+G7kTogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTYKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjQKIG1zZ2lkICJzaG93IG9iamVjdCB0eXBlIgogbXNnc3RyICJoaeG7g24gdGjhu4sga2nhu4N1IMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE5NworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNQogbXNnaWQgInNob3cgb2JqZWN0IHNpemUiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBrw61jaCB0aMaw4bubYyDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTkKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjcKIG1zZ2lkICJleGl0IHdpdGggemVybyB3aGVuIHRoZXJlJ3Mgbm8gZXJyb3IiCiBtc2dzdHIgInRob8OhdCB24bubaSAwIGtoaSBraMO0bmcgY8OzIGzhu5dpIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjAwCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI4CiBtc2dpZCAicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiCiBtc2dzdHIgImluIG7hu5lpIGR1bmcgxJHhu5FpIHTGsOG7o25nIGThuqFuZyBk4buFIMSR4buNYyIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwMgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMAogbXNnaWQgImZvciBibG9iIG9iamVjdHMsIHJ1biB0ZXh0Y29udiBvbiBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICJ24bubaSDEkeG7kWkgdMaw4bujbmcgYmxvYiwgY2jhuqF5IGzhu4duaCB0ZXh0Y29udiB0csOqbiBu4buZaSBkdW5nIGPhu6dhIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwNAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMgogbXNnaWQgInNob3cgaW5mbyBhbmQgY29udGVudCBvZiBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAiIgogImhp4buDbiB0aOG7iyB0aMO0bmcgdGluIHbDoCBu4buZaSBkdW5nIGPhu6dhIGPDoWMgxJHhu5FpIHTGsOG7o25nIGzhuqV5IHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwNworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzNQogbXNnaWQgInNob3cgaW5mbyBhYm91dCBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdGjDtG5nIHRpbiB24buBIMSR4buRaSB0xrDhu6NuZyBmZWQgIHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbiIKIApAQCAtMjk5OSwzMCArMzA3NCw1NSBAQAogbXNnaWQgImlucHV0IHBhdGhzIGFyZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCBjaGFyYWN0ZXIiCiBtc2dzdHIgImPDoWMgxJHGsOG7nW5nIGThuqtuIMSRxrDhu6NjICBuZ8SDbiBjw6FjaCBi4bufaSBrw70gdOG7sSBudWxsIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ0IGJ1aWx0aW4vZ2MuYzoxNzcKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTggYnVpbHRpbi9jaGVja291dC5jOjEwNTQgYnVpbHRpbi9nYy5jOjE3NwogbXNnaWQgInN1cHByZXNzIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAiY2jhurduIGPDoWMgYsOhbyBjw6FvIHRp4bq/biB0csOsbmggaG/huqF0IMSR4buZbmciCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ2CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjI2Cittc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgaW5wdXQgcGF0aHMiCittc2dzdHIgImhp4buDbiB0aOG7iyBuaOG7r25nIMSRxrDhu51uZyBk4bqrbiDEkeG6p3UgdsOgbyBraMO0bmcga2jhu5twIHbhu5tpIG3huqt1IgorCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0MwogbXNnaWQgImNhbm5vdCBzcGVjaWZ5IHBhdGhuYW1lcyB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgImtow7RuZyB0aOG7gyBjaOG7iSDEkeG7i25oIGPDoWMgdMOqbiDEkcaw4budbmcgZOG6q24gduG7m2kgLS1zdGRpbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDkKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ2CiBtc2dpZCAiLXogb25seSBtYWtlcyBzZW5zZSB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgIi16IGNo4buJIGjhu6NwIGzDvSB24bubaSAtLXN0ZGluIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDgKIG1zZ2lkICJubyBwYXRoIHNwZWNpZmllZCIKIG1zZ3N0ciAiY2jGsGEgZ2hpIHLDtSDEkcaw4budbmcgZOG6q24iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU1CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MgogbXNnaWQgIi0tcXVpZXQgaXMgb25seSB2YWxpZCB3aXRoIGEgc2luZ2xlIHBhdGhuYW1lIgogbXNnc3RyICItLXF1aWV0IGNo4buJIGjhu6NwIGzhu4cgduG7m2kgdMOqbiDEkcaw4budbmcgZOG6q24gxJHGoW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAogbXNnaWQgImNhbm5vdCBoYXZlIGJvdGggLS1xdWlldCBhbmQgLS12ZXJib3NlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZMO5bmcgY+G6oyBoYWkgdMO5eSBjaOG7jW4gLS1xdWlldCB2w6AgLS12ZXJib3NlIgogCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NworbXNnaWQgIi0tbm9uLW1hdGNoaW5nIGlzIG9ubHkgdmFsaWQgd2l0aCAtLXZlcmJvc2UiCittc2dzdHIgInTDuXktY2jhu41uIC0tbm9uLW1hdGNoaW5nIGNo4buJIGjhu6NwIGzhu4cga2hpIGTDuW5nIHbhu5tpIC0tdmVyYm9zZSIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6OAorbXNnaWQgImdpdCBjaGVjay1tYWlsbWFwIFtvcHRpb25zXSA8Y29udGFjdD4uLi4iCittc2dzdHIgImdpdCBjaGVjay1tYWlsbWFwIFtjw6FjLXTDuXktY2jhu41uXSA8ZGFuaC1i4bqhPi4uLiIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6MTMKK21zZ2lkICJhbHNvIHJlYWQgY29udGFjdHMgZnJvbSBzdGRpbiIKK21zZ3N0ciAixJHhu5NuZyB0aOG7nWkgxJHhu41jIGPDoWMgZGFuaCBi4bqhIHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbiIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHBhcnNlIGNvbnRhY3Q6ICVzIgorbXNnc3RyICJraMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggZGFuaCBi4bqhOiDigJwlc+KAnSIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6NDcKK21zZ2lkICJubyBjb250YWN0cyBzcGVjaWZpZWQiCittc2dzdHIgImNoxrBhIGNo4buJIHJhIGRhbmggYuG6oSIKKwogIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjEyNgogbXNnaWQgImdpdCBjaGVja291dC1pbmRleCBbb3B0aW9uc10gWy0tXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0LWluZGV4IFtjw6FjLXTDuXktY2jhu41uXSBbLS1dIFs8dOG6rXAtdGluPi4uLl0iCkBAIC0zMTQxLDQyICszMjQxLDQyIEBACiBtc2dpZCAiQ2FuIG5vdCBkbyByZWZsb2cgZm9yICclcydcbiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gcmVmbG9nIGNobyDigJwlc+KAnVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjM0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjM5CiBtc2dpZCAiSEVBRCBpcyBub3cgYXQiCiBtc2dzdHIgIkhFQUQgaGnhu4duIGdp4budIHThuqFpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlc2V0IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIsSQ4bq3dCBs4bqhaSBuaMOhbmgg4oCcJXPigJ1cbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0NAorIzogYnVpbHRpbi9jaGVja291dC5jOjY0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJBbHJlYWR5IG9uICclcydcbiIKIG1zZ3N0ciAixJDDoyBz4bq1biBzw6BuZyB0csOqbiDigJwlc+KAnVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGFuZCByZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICLEkMOjIGNodXnhu4NuIHThu5tpIHbDoCByZXNldCBuaMOhbmgg4oCcJXPigJ1cbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1MCBidWlsdGluL2NoZWNrb3V0LmM6OTg3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjU1IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYSBuZXcgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAixJDDoyBjaHV54buDbiDEkeG6v24gbmjDoW5oIG3hu5tpIOKAnCVz4oCdXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYnJhbmNoICclcydcbiIKIG1zZ3N0ciAixJDDoyBjaHV54buDbiDEkeG6v24gbmjDoW5oIOKAnCVz4oCdXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MDgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIC4uLiBhbmQgJWQgbW9yZS5cbiIKIG1zZ3N0ciAiIC4uLiB2w6Agbmhp4buBdSBoxqFuICVkLlxuIgogCiAjLiBUaGUgc2luZ3VsYXIgdmVyc2lvbgotIzogYnVpbHRpbi9jaGVja291dC5jOjcxNAorIzogYnVpbHRpbi9jaGVja291dC5jOjcxOQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV2FybmluZzogeW91IGFyZSBsZWF2aW5nICVkIGNvbW1pdCBiZWhpbmQsIG5vdCBjb25uZWN0ZWQgdG9cbiIKQEAgLTMyMDEsNyArMzMwMSw3IEBACiAiXG4iCiAiJXNcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjczMgorIzogYnVpbHRpbi9jaGVja291dC5jOjczNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiSWYgeW91IHdhbnQgdG8ga2VlcCB0aGVtIGJ5IGNyZWF0aW5nIGEgbmV3IGJyYW5jaCwgdGhpcyBtYXkgYmUgYSBnb29kIHRpbWVcbiIKQEAgLTMyMTcsMTM4ICszMzE3LDEzOCBAQAogIiBnaXQgYnJhbmNoIHTDqm5fbmjDoW5oX23hu5tpICVzXG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjcKIG1zZ2lkICJpbnRlcm5hbCBlcnJvciBpbiByZXZpc2lvbiB3YWxrIgotbXNnc3RyICJs4buXaSBu4buZaSBi4buZIHRyb25nIGtoaSBkaSBjaHV54buDbiBxdWEgY8OhYyDEkWnhu4NtIHjDqXQgbOG6oWkiCittc2dzdHIgImzhu5dpIG7hu5lpIGLhu5kgdHJvbmcga2hpIGRpIGNodXnhu4NuIHF1YSBjw6FjIMSRaeG7g20geMOpdCBkdXnhu4d0IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzY2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzcxCiBtc2dpZCAiUHJldmlvdXMgSEVBRCBwb3NpdGlvbiB3YXMiCiBtc2dzdHIgIlbhu4sgdHLDrSBr4bq/IHRyxrDhu5tjIGPhu6dhIEhFQUQgbMOgIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzkzIGJ1aWx0aW4vY2hlY2tvdXQuYzo5ODIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTggYnVpbHRpbi9jaGVja291dC5jOjk5MgogbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIkLhuqFuIHThuqFpIG5ow6FuaCBtw6AgbsOzIGNoxrBhIGjhu4EgxJHGsOG7o2Mgc2luaCByYSIKIAogIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2U6ICVzIgogbXNnc3RyICJ0aGFtIGNoaeG6v3Ugc2FpOiAlcyIKIAogIy4gY2FzZSAoMSk6IHdhbnQgYSB0cmVlCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKIG1zZ3N0ciAidGhhbSBjaGnhur91IGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IGPDonkgKHRyZWUpOiVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTk2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwNgogbXNnaWQgInBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIgogbXNnc3RyICJjw6FjIMSRxrDhu51uZyBk4bqrbiBraMO0bmcgdGjhu4MgZMO5bmcgY8O5bmcgduG7m2kgY8OhYyBuaMOhbmggY2h1eeG7g24iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTkgYnVpbHRpbi9jaGVja291dC5jOjEwMDMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIuKAnCVz4oCdIGtow7RuZyB0aOG7gyDEkcaw4bujYyBz4butIGThu6VuZyB24bubaSBjw6FjIG5ow6FuaCBjaHV54buDbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDcgYnVpbHRpbi9jaGVja291dC5jOjEwMTAgYnVpbHRpbi9jaGVja291dC5jOjEwMTUKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxNyBidWlsdGluL2NoZWNrb3V0LmM6MTAyMCBidWlsdGluL2NoZWNrb3V0LmM6MTAyNQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoICclcyciCiBtc2dzdHIgIuKAnCVz4oCdIGtow7RuZyB0aOG7gyDEkcaw4bujYyBz4butIGThu6VuZyB24bubaSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBzd2l0Y2ggYnJhbmNoIHRvIGEgbm9uLWNvbW1pdCAnJXMnIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgY2h1eeG7g24gbmjDoW5oIMSR4bq/biBt4buZdCBub24tY29tbWl0IOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NSBidWlsdGluL2NoZWNrb3V0LmM6MTA0NyBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vY2xvbmUuYzo4OQogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjkgYnVpbHRpbi9yZW1vdGUuYzoxNzEKIG1zZ2lkICJicmFuY2giCiBtc2dzdHIgIm5ow6FuaCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2CiBtc2dpZCAiY3JlYXRlIGFuZCBjaGVja291dCBhIG5ldyBicmFuY2giCiBtc2dzdHIgInThuqFvIHbDoCBjaGVja291dCBt4buZdCBuaMOhbmggbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OAogbXNnaWQgImNyZWF0ZS9yZXNldCBhbmQgY2hlY2tvdXQgYSBicmFuY2giCiBtc2dzdHIgImNyZWF0ZS9yZXNldCB2w6AgY2hlY2tvdXQgbeG7mXQgbmjDoW5oIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKIG1zZ2lkICJjcmVhdGUgcmVmbG9nIGZvciBuZXcgYnJhbmNoIgogbXNnc3RyICJ04bqhbyByZWZsb2cgY2hvIG5ow6FuaCBt4bubaSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYwCiBtc2dpZCAiZGV0YWNoIHRoZSBIRUFEIGF0IG5hbWVkIGNvbW1pdCIKIG1zZ3N0ciAicuG7nWkgYuG7jyBIRUFEIHThuqFpIGzhuqduIGNodXnhu4NuIGdpYW8gZGFuaCBuZ2jEqWEiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MQogbXNnaWQgInNldCB1cHN0cmVhbSBpbmZvIGZvciBuZXcgYnJhbmNoIgogbXNnc3RyICLEkeG6t3QgdGjDtG5nIHRpbiB0aMaw4bujbmcgbmd14buTbiAodXBzdHJlYW0pIGNobyBuaMOhbmggbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyBicmFuY2giCiBtc2dzdHIgIm5ow6FuaCBt4bubaSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYzCiBtc2dpZCAibmV3IHVucGFyZW50ZWQgYnJhbmNoIgogbXNnc3RyICJuaMOhbmggbeG7kyBjw7RpIG3hu5tpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjQKIG1zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIiIKICJs4bqleSByYSAoY2hlY2tvdXQpIHBoacOqbiBi4bqjbiBj4bunYSBjaMO6bmcgdGEgY2hvIGPDoWMgdOG6rXAgdGluIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjYKIG1zZ2lkICJjaGVja291dCB0aGVpciB2ZXJzaW9uIGZvciB1bm1lcmdlZCBmaWxlcyIKIG1zZ3N0ciAiIgogImzhuqV5IHJhIChjaGVja291dCkgcGhpw6puIGLhuqNuIGPhu6dhIGNow7puZyBo4buNIGNobyBjw6FjIHThuq1wIHRpbiBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY4CiBtc2dpZCAiZm9yY2UgY2hlY2tvdXQgKHRocm93IGF3YXkgbG9jYWwgbW9kaWZpY2F0aW9ucykiCiBtc2dzdHIgIsOpcCBideG7mWMgbOG6pXkgcmEgKGNoZWNrb3V0KSAoYuG7jyDEkWkgbmjhu69uZyB0aGF5IMSR4buVaSBu4buZaSBi4buZKSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY5CiBtc2dpZCAicGVyZm9ybSBhIDMtd2F5IG1lcmdlIHdpdGggdGhlIG5ldyBicmFuY2giCiBtc2dzdHIgInRo4buxYyBoaeG7h24gaMOyYSB0cuG7mW4ga2nhu4N1IDMtd2F5IHbhu5tpIG5ow6FuaCBt4bubaSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAgYnVpbHRpbi9tZXJnZS5jOjIxNworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzAgYnVpbHRpbi9tZXJnZS5jOjIzMgogbXNnaWQgInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIKIG1zZ3N0ciAiY+G6rXAgbmjhuq10IGPDoWMgdOG6rXAgdGluIGLhu4sgYuG7jyBxdWEgKG3hurdjIMSR4buLbmgpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MSBidWlsdGluL2xvZy5jOjExNTggcGFyc2Utb3B0aW9ucy5oOjI0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzEgYnVpbHRpbi9sb2cuYzoxMjA4IHBhcnNlLW9wdGlvbnMuaDoyNDkKIG1zZ2lkICJzdHlsZSIKIG1zZ3N0ciAia2nhu4N1IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzIKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICJ4dW5nIMSR4buZdCBraeG7g3UgKGjDsmEgdHLhu5luIGhheSBkaWZmMykiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3NQogbXNnaWQgImRvIG5vdCBsaW1pdCBwYXRoc3BlY3MgdG8gc3BhcnNlIGVudHJpZXMgb25seSIKIG1zZ3N0ciAia2jDtG5nIGdp4bubaSBo4bqhbiBwYXRoc3BlY3MgY2jhu4kgdGjDoG5oIGPDoWMgbeG7pWMgdGjGsGEgdGjhu5t0IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzcKIG1zZ2lkICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiBtc2dzdHIgImfhu6NpIMO9IHRo4bupIGhhaSDigJxnaXQgY2hlY2tvdXQga2jDtG5nLW5ow6FuaC1uw6BvLW5oxrAtduG6rXnigJ0iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDkxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwMQogbXNnaWQgIi1iLCAtQiBhbmQgLS1vcnBoYW4gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKIG1zZ3N0ciAiVMO5eSBjaOG7jW4gLWJ8LUIgdsOgIC0tb3JwaGFuIGxv4bqhaSB04burIGzhuqtuIG5oYXUiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTA4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExOAogbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiLS10cmFjayBj4bqnbiB0w6puIG3hu5l0IG5ow6FuaCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTI1CiBtc2dpZCAiTWlzc2luZyBicmFuY2ggbmFtZTsgdHJ5IC1iIgogbXNnc3RyICJUaGnhur91IHTDqm4gbmjDoW5oOyBow6N5IHRo4butIC1iIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1MAorIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKIG1zZ2lkICJpbnZhbGlkIHBhdGggc3BlY2lmaWNhdGlvbiIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIMSRw6MgY2hvIGtow7RuZyBo4bujcCBs4buHIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1NworIzogYnVpbHRpbi9jaGVja291dC5jOjExNjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLlxuIgpAQCAtMzM1OCwxMiArMzQ1OCwxMiBAQAogIkLhuqFuIMSRw6MgY8OzIMO9IMSR4buLbmggY2hlY2tvdXQg4oCcJXPigJ0gY8OhaSBtw6Aga2jDtG5nIHRo4buDIMSRxrDhu6NjIHBow6JuIGdp4bqjaSBuaMawIGzDoCBs4bqnbiAiCiAiY2h1eeG7g24gZ2lhbyAoY29tbWl0KT8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgY2hlY2tvdXQ6IC0tZGV0YWNoIGRvZXMgbm90IHRha2UgYSBwYXRoIGFyZ3VtZW50ICclcyciCiBtc2dzdHIgImdpdCBjaGVja291dDogLS1kZXRhY2gga2jDtG5nIG5o4bqtbiBt4buZdCDEkeG7kWkgc+G7kSDEkcaw4budbmcgZOG6q24g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTY2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3NgogbXNnaWQgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKICJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKQEAgLTMzNzEsMjE3ICszNDcxLDMyMCBAQAogImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIHbDoCAtLW1lcmdlIGzDoCB4dW5nIGto4bqvYyB24bubaSBuaGF1IGtoaVxuIgogImNoZWNrb3V0IGLhuqNuZyBt4bulYyBs4bulYyAoaW5kZXgpLiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjIwCi1tc2dpZCAiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKLW1zZ3N0ciAiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLW5dIFstcV0gWy1lIDxt4bqrdT5dIFsteCB8IC1YXSBbLS1dIDzEkcaw4budbmctZOG6q24+Li4uIgorIzogYnVpbHRpbi9jbGVhbi5jOjI1Cittc2dpZCAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKK21zZ3N0ciAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxt4bqrdT5dIFsteCB8IC1YXSBbLS1dIDzEkcaw4budbmctZOG6q24+Li4uIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlc1xuIgogbXNnc3RyICLEkGFuZyBn4buhIGLhu48gJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI1CisjOiBidWlsdGluL2NsZWFuLmM6MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgcmVtb3ZlICVzXG4iCiBtc2dzdHIgIkPDsyB0aOG7gyBn4buhIGLhu48gJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI2CisjOiBidWlsdGluL2NsZWFuLmM6MzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiU2tpcHBpbmcgcmVwb3NpdG9yeSAlc1xuIgogbXNnc3RyICLEkGFuZyBi4buPIHF1YSBraG8gY2jhu6lhICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNworIzogYnVpbHRpbi9jbGVhbi5jOjMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHNraXAgcmVwb3NpdG9yeSAlc1xuIgogbXNnc3RyICJOw6puIGLhu48gcXVhIGtobyBjaOG7qWEgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI4CisjOiBidWlsdGluL2NsZWFuLmM6MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIGfhu6EgYuG7jyAlcyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2MAorIzogYnVpbHRpbi9jbGVhbi5jOjI5MworbXNnaWQgIiIKKyJQcm9tcHQgaGVscDpcbiIKKyIxICAgICAgICAgIC0gc2VsZWN0IGEgbnVtYmVyZWQgaXRlbVxuIgorImZvbyAgICAgICAgLSBzZWxlY3QgaXRlbSBiYXNlZCBvbiB1bmlxdWUgcHJlZml4XG4iCisiICAgICAgICAgICAtIChlbXB0eSkgc2VsZWN0IG5vdGhpbmciCittc2dzdHIgIiIKKyJUcuG7oyBnacO6cCB24buBIG5o4bqvYzpcbiIKKyIxICAgICAgICAgIC0gY2jhu41uIG3hu5l0IG3hu6VjIMSRxrDhu6NjIMSRw6FuaCBz4buRXG4iCisiZm9vICAgICAgICAtIGNo4buNbiBt4bulYyB0csOqbiBjxqEgc+G7nyB0aeG7gW4gdOG7kSBkdXkgbmjhuqV0XG4iCisiICAgICAgICAgICAtICh0cuG7kW5nIHLhu5duZykga2jDtG5nIGNo4buNbiBnw6wgY+G6oyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjI5NworbXNnaWQgIiIKKyJQcm9tcHQgaGVscDpcbiIKKyIxICAgICAgICAgIC0gc2VsZWN0IGEgc2luZ2xlIGl0ZW1cbiIKKyIzLTUgICAgICAgIC0gc2VsZWN0IGEgcmFuZ2Ugb2YgaXRlbXNcbiIKKyIyLTMsNi05ICAgIC0gc2VsZWN0IG11bHRpcGxlIHJhbmdlc1xuIgorImZvbyAgICAgICAgLSBzZWxlY3QgaXRlbSBiYXNlZCBvbiB1bmlxdWUgcHJlZml4XG4iCisiLS4uLiAgICAgICAtIHVuc2VsZWN0IHNwZWNpZmllZCBpdGVtc1xuIgorIiogICAgICAgICAgLSBjaG9vc2UgYWxsIGl0ZW1zXG4iCisiICAgICAgICAgICAtIChlbXB0eSkgZmluaXNoIHNlbGVjdGluZyIKK21zZ3N0ciAiIgorIlRy4bujIGdpw7pwIHbhu4Egbmjhuq9jOlxuIgorIjEgICAgICAgICAgLSBjaOG7jW4gbeG7mXQgbeG7pWMgxJHGoW5cbiIKKyIzLTUgICAgICAgIC0gY2jhu41uIG3hu5l0IHbDuW5nXG4iCisiMi0zLDYtOSAgICAtIGNo4buNbiBuaGnhu4F1IHbDuW5nXG4iCisiZm9vICAgICAgICAtIGNo4buNbiBt4bulYyBk4buxYSB0csOqbiB0aeG7gW4gdOG7kSBkdXkgbmjhuqV0XG4iCisiLS4uLiAgICAgICAtIGtow7RuZyBjaOG7jW4gY8OhYyBt4bulYyDEkcOjIGNo4buJIHJhXG4iCisiKiAgICAgICAgICAtIGNo4buNbiB04bqldFxuIgorIiAgICAgICAgICAgLSAodHLhu5FuZyBy4buXbmcpIGvhur90IHRow7pjIHZp4buHYyBjaOG7jW4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo1MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHVoICglcyk/IgorbXNnc3RyICJI4bqjICglcyk/IgorCisjOiBidWlsdGluL2NsZWFuLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGlnbm9yZSBwYXR0ZXJucz4+ICIKK21zZ3N0ciAiTeG6q3UgxJHhu4MgbOG7jWMgY8OhYyB04bqtcCB0aW4gY+G6p24gbOG7nSDEkWkgxJHhuqd1IHbDoG8+PiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBDYW5ub3QgZmluZCBpdGVtcyBtYXRjaGVkIGJ5OiAlcyIKK21zZ3N0ciAiQ+G6ok5IIELDgU86IEtow7RuZyB0w6xtIHRo4bqleSBjw6FjIG3hu6VjIMSRxrDhu6NjIGto4bubcCBi4bufaTogJXMiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3MTYKK21zZ2lkICJTZWxlY3QgaXRlbXMgdG8gZGVsZXRlIgorbXNnc3RyICJDaOG7jW4gbeG7pWMgbXXhu5FuIHjDs2EiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZlICVzPyAiCittc2dzdHIgImfhu6EgYuG7jyDigJwlc+KAnT8iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODEKK21zZ2lkICJCeWUuIgorbXNnc3RyICJU4bqhbSBiaeG7h3QuIgorCisjOiBidWlsdGluL2NsZWFuLmM6Nzg5Cittc2dpZCAiIgorImNsZWFuICAgICAgICAgICAgICAgLSBzdGFydCBjbGVhbmluZ1xuIgorImZpbHRlciBieSBwYXR0ZXJuICAgLSBleGNsdWRlIGl0ZW1zIGZyb20gZGVsZXRpb25cbiIKKyJzZWxlY3QgYnkgbnVtYmVycyAgIC0gc2VsZWN0IGl0ZW1zIHRvIGJlIGRlbGV0ZWQgYnkgbnVtYmVyc1xuIgorImFzayBlYWNoICAgICAgICAgICAgLSBjb25maXJtIGVhY2ggZGVsZXRpb24gKGxpa2UgXCJybSAtaVwiKVxuIgorInF1aXQgICAgICAgICAgICAgICAgLSBzdG9wIGNsZWFuaW5nXG4iCisiaGVscCAgICAgICAgICAgICAgICAtIHRoaXMgc2NyZWVuXG4iCisiPyAgICAgICAgICAgICAgICAgICAtIGhlbHAgZm9yIHByb21wdCBzZWxlY3Rpb24iCittc2dzdHIgIiIKKyJjbGVhbiAgICAgICAgICAgICAgIC0gYuG6r3QgxJHhuqd1IGThu41uIGThurlwXG4iCisiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIGxv4bqhaSB0cuG7qyBjw6FjIG3hu6VjIGto4buPaSB2aeG7h2MgeMOzYVxuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBjaOG7jW4gY8OhYyBt4bulYyBj4bqnbiB4w7NhIGLhurFuZyBz4buRXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIHjDoWMgbmjhuq1uIHRyxrDhu5tjIG3hu5dpIGzhuqduIHjDs2EgKGdp4buRbmcgbmjGsCBcInJtIC1pXCIpXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIGThu6tuZyB2aeG7h2MgZOG7jW4gZOG6uXAgbOG6oWlcbiIKKyJoZWxwICAgICAgICAgICAgICAgIC0gaGnhu4NuIHRo4buLIGNow61uaCB0cuG7oyBnacO6cCBuw6B5XG4iCisiPyAgICAgICAgICAgICAgICAgICAtIHRy4bujIGdpw7pwIGTDoG5oIGNobyBjaOG7jW4gYuG6sW5nIGPDoWNoIG5o4bqvYyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgxNgorbXNnaWQgIioqKiBDb21tYW5kcyAqKioiCittc2dzdHIgIioqKiBM4buHbmggKioqIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE3Cittc2dpZCAiV2hhdCBub3ciCittc2dzdHIgIkdp4budIHRow6wgc2FvIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODI1Cittc2dpZCAiV291bGQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgaXRlbToiCittc2dpZF9wbHVyYWwgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW1zOiIKK21zZ3N0clswXSAiQ8OzIG114buRbiBn4buhIGLhu48gbeG7pWMgc2F1IMSRw6J5IGtow7RuZzoiCittc2dzdHJbMV0gIkPDsyBtdeG7kW4gZ+G7oSBi4buPIGPDoWMgbeG7pWMgc2F1IMSRw6J5IGtow7RuZzoiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NDIKK21zZ2lkICJObyBtb3JlIGZpbGVzIHRvIGNsZWFuLCBleGl0aW5nLiIKK21zZ3N0ciAiS2jDtG5nIGPDsm4gdOG6rXAtdGluIG7DoG8gxJHhu4MgZOG7jW4gZOG6uXAsIMSRYW5nIHRob8OhdCByYS4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzQKIG1zZ2lkICJkbyBub3QgcHJpbnQgbmFtZXMgb2YgZmlsZXMgcmVtb3ZlZCIKIG1zZ3N0ciAia2jDtG5nIGhp4buDbiB0aOG7iyB0w6puIGPhu6dhIGPDoWMgdOG6rXAgdGluIMSRw6MgZ+G7oSBi4buPIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTYyCisjOiBidWlsdGluL2NsZWFuLmM6ODc2CiBtc2dpZCAiZm9yY2UiCiBtc2dzdHIgIsOpcCBideG7mWMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzcKK21zZ2lkICJpbnRlcmFjdGl2ZSBjbGVhbmluZyIKK21zZ3N0ciAic+G7rWEgYuG6sW5nIGPDoWNoIHTGsMahbmcgdMOhYyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3OQogbXNnaWQgInJlbW92ZSB3aG9sZSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAiZ+G7oSBi4buPIHRvw6BuIGLhu5kgdGjGsCBt4bulYyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NSBidWlsdGluL2Rlc2NyaWJlLmM6NDEyIGJ1aWx0aW4vZ3JlcC5jOjcxNwotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NyBidWlsdGluL25hbWUtcmV2LmM6MjMxIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODIKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODAgYnVpbHRpbi9kZXNjcmliZS5jOjQyMCBidWlsdGluL2dyZXAuYzo3MTYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9uYW1lLXJldi5jOjMxNSBidWlsdGluL3Nob3ctcmVmLmM6MTg2CiBtc2dpZCAicGF0dGVybiIKIG1zZ3N0ciAibeG6q3UiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODEKIG1zZ2lkICJhZGQgPHBhdHRlcm4+IHRvIGlnbm9yZSBydWxlcyIKIG1zZ3N0ciAidGjDqm0gPG3huqt1PiB2w6BvIHRyb25nIHF1aSB04bqvYyBi4buPIHF1YSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NworIzogYnVpbHRpbi9jbGVhbi5jOjg4MgogbXNnaWQgInJlbW92ZSBpZ25vcmVkIGZpbGVzLCB0b28iCiBtc2dzdHIgIsSR4buTbmcgdGjhu51pIGfhu6EgYuG7jyBj4bqjIGPDoWMgdOG6rXAgdGluIGLhu4sgYuG7jyBxdWEiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjkKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODQKIG1zZ2lkICJyZW1vdmUgb25seSBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJjaOG7iSBn4buhIGLhu48gbmjhu69uZyB04bqtcCB0aW4gYuG7iyBi4buPIHF1YSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE4NworIzogYnVpbHRpbi9jbGVhbi5jOjkwMgogbXNnaWQgIi14IGFuZCAtWCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAiLXggdsOgIC1YIGtow7RuZyB0aOG7gyBkw7luZyBjw7luZyBt4buZdCBsw7pjIHbhu5tpIG5oYXUiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxOTEKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDYKIG1zZ2lkICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIHNldCB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gY2xlYW4iCi1tc2dzdHIgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgxJHGsOG7o2MgxJHhurd0IHRow6BuaCB0cnVlIHbDoCBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gIC1uIG3DoCBjxaluZyAiCi0ia2jDtG5nIC1mOyB04burIGNo4buRaSBs4buHbmggZOG7jW4gZOG6uXAgKGNsZWFuKSIKLQotIzogYnVpbHRpbi9jbGVhbi5jOjE5NAotbXNnaWQgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvICIKKyJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgogImNsZWFuIgogbXNnc3RyICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIG3hurdjIMSR4buLbmggxJHGsOG7o2MgxJHhurd0IHRow6BuaCB0cnVlIHbDoCBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gIC1uICIKLSJtw6AgY8Wpbmcga2jDtG5nIC1mOyB04burIGNo4buRaSBs4buHbmggZOG7jW4gZOG6uXAgKGNsZWFuKSIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgxJHGsOG7o2MgxJHhurd0IHRow6BuaCB0cnVlIHbDoCBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gLW4gbcOgIGPFqW5nICIKKyJraMO0bmcgLWY7IHThu6sgY2jhu5FpIGzhu4duaCBk4buNbiBk4bq5cCAoY2xlYW4pIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDkKK21zZ2lkICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIGRlZmF1bHRzIHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgIgorInJlZnVzaW5nIHRvIGNsZWFuIgorbXNnc3RyICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIG3hurdjIMSR4buLbmggxJHGsOG7o2MgxJHhurd0IGzDoCB0cnVlIHbDoCBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gLW4gbcOgICIKKyJjxaluZyBraMO0bmcgLWY7IHThu6sgY2jhu5FpIGzhu4duaCBk4buNbiBk4bq5cCAoY2xlYW4pIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzYKIG1zZ2lkICJnaXQgY2xvbmUgW29wdGlvbnNdIFstLV0gPHJlcG8+IFs8ZGlyPl0iCiBtc2dzdHIgImdpdCBjbG9uZSBbY8OhYy10w7l5LWNo4buNbl0gWy0tXSA8a2hvPiBbPHQubeG7pWM+XSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY1IGJ1aWx0aW4vZmV0Y2guYzo4MiBidWlsdGluL21lcmdlLmM6MjE0Ci0jOiBidWlsdGluL3B1c2guYzo0MzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NCBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIyOQorIzogYnVpbHRpbi9wdXNoLmM6NDYyCiBtc2dpZCAiZm9yY2UgcHJvZ3Jlc3MgcmVwb3J0aW5nIgogbXNnc3RyICLDqXAgYnXhu5ljIGLDoW8gY8OhbyB0aeG6v24gdHLDrG5oIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NgogbXNnaWQgImRvbid0IGNyZWF0ZSBhIGNoZWNrb3V0IgogbXNnc3RyICJraMO0bmcgdOG6oW8gbeG7mXQgY2hlY2tvdXQiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2OCBidWlsdGluL2Nsb25lLmM6NzAgYnVpbHRpbi9pbml0LWRiLmM6NDg4CisjOiBidWlsdGluL2Nsb25lLmM6NjcgYnVpbHRpbi9jbG9uZS5jOjY5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4OAogbXNnaWQgImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAidOG6oW8ga2hvIGNo4bupYSBiYXJlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3MgogbXNnaWQgImNyZWF0ZSBhIG1pcnJvciByZXBvc2l0b3J5IChpbXBsaWVzIGJhcmUpIgogbXNnc3RyICJ04bqhbyBraG8gYuG6o24gc2FvIChtaXJyb3IpIChuZ+G7pSDDvSBsw6AgYmFyZSkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NQorIzogYnVpbHRpbi9jbG9uZS5jOjc0CiBtc2dpZCAidG8gY2xvbmUgZnJvbSBhIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIsSR4buDIG5ow6JuIGLhuqNuIHThu6sga2hvIG7hu5lpIGLhu5kiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjc2CiBtc2dpZCAiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiCiBtc2dzdHIgImtow7RuZyBz4butIGThu6VuZyBsacOqbiBr4bq/dCBj4bupbmcgbuG7mWkgYuG7mSwgbHXDtG4gc2FvIGNow6lwIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OAogbXNnaWQgInNldHVwIGFzIHNoYXJlZCByZXBvc2l0b3J5IgogbXNnc3RyICJjw6BpIMSR4bq3dCDEkcOieSBsw6Aga2hvIGNoaWEgc+G6uyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxIGJ1aWx0aW4vY2xvbmUuYzo4MworIzogYnVpbHRpbi9jbG9uZS5jOjgwIGJ1aWx0aW4vY2xvbmUuYzo4MgogbXNnaWQgImluaXRpYWxpemUgc3VibW9kdWxlcyBpbiB0aGUgY2xvbmUiCiBtc2dzdHIgImto4bufaSB04bqhbyBtw7QtxJF1bi1jb24gdHJvbmcgYuG6o24gc2FvIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg1CisjOiBidWlsdGluL2Nsb25lLmM6ODMgYnVpbHRpbi9pbml0LWRiLmM6NDg1CiBtc2dpZCAidGVtcGxhdGUtZGlyZWN0b3J5IgogbXNnc3RyICJ0aMawLW3hu6VjLXThuqFtIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODUgYnVpbHRpbi9pbml0LWRiLmM6NDg2CisjOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg2CiBtc2dpZCAiZGlyZWN0b3J5IGZyb20gd2hpY2ggdGVtcGxhdGVzIHdpbGwgYmUgdXNlZCIKIG1zZ3N0ciAidGjGsCBt4bulYyBtw6AgdOG6oWkgxJHDsyBjw6FjIG3huqt1IHPhur0gxJHGsOG7o2MgZMO5bmciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NworIzogYnVpbHRpbi9jbG9uZS5jOjg2CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkiCiBtc2dzdHIgImtobyB0aGFtIGNoaeG6v3UiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OCBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CisjOiBidWlsdGluL2Nsb25lLmM6ODcgYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAogbXNnaWQgIm5hbWUiCiBtc2dzdHIgInTDqm4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jbG9uZS5jOjg4CiBtc2dpZCAidXNlIDxuYW1lPiBpbnN0ZWFkIG9mICdvcmlnaW4nIHRvIHRyYWNrIHVwc3RyZWFtIgogbXNnc3RyICJkw7luZyA8dMOqbj4gdGhheSB2w6wg4oCcb3JpZ2lu4oCdIMSR4buDIHRoZW8gZMO1aSB0aMaw4bujbmcgbmd14buTbiAodXB0cmVhbSkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MQorIzogYnVpbHRpbi9jbG9uZS5jOjkwCiBtc2dpZCAiY2hlY2tvdXQgPGJyYW5jaD4gaW5zdGVhZCBvZiB0aGUgcmVtb3RlJ3MgSEVBRCIKIG1zZ3N0ciAibOG6pXkgcmEgbmjDoW5oIChjaGVja291dCA8bmjDoW5oPikgdGhheSB2w6wgSEVBRCBj4bunYSBtw6F5IGNo4bunIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MgogbXNnaWQgInBhdGggdG8gZ2l0LXVwbG9hZC1wYWNrIG9uIHRoZSByZW1vdGUiCiBtc2dzdHIgIsSRxrDhu51uZyBk4bqrbiDEkeG6v24gZ2l0LXVwbG9hZC1wYWNrIHRyw6puIG3DoXkgY2jhu6ciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NCBidWlsdGluL2ZldGNoLmM6ODMgYnVpbHRpbi9ncmVwLmM6NjYyCisjOiBidWlsdGluL2Nsb25lLmM6OTMgYnVpbHRpbi9mZXRjaC5jOjgzIGJ1aWx0aW4vZ3JlcC5jOjY2MQogbXNnaWQgImRlcHRoIgogbXNnc3RyICLEkeG7mSBzw6J1IgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NAogbXNnaWQgImNyZWF0ZSBhIHNoYWxsb3cgY2xvbmUgb2YgdGhhdCBkZXB0aCIKIG1zZ3N0ciAidOG6oW8gYuG6o24gc2FvIGtow7RuZyDEkeG6p3kgxJHhu6cgY2hvIG3hu6ljIHPDonUgxJHDoyBjaG8iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NworIzogYnVpbHRpbi9jbG9uZS5jOjk2CiBtc2dpZCAiY2xvbmUgb25seSBvbmUgYnJhbmNoLCBIRUFEIG9yIC0tYnJhbmNoIgogbXNnc3RyICJuaMOibiBi4bqjbiAoY2xvbmUpIGNo4buJIG3hu5l0IG5ow6FuaCwgSEVBRCBob+G6t2MgLS1icmFuY2giCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OCBidWlsdGluL2luaXQtZGIuYzo0OTQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NyBidWlsdGluL2luaXQtZGIuYzo0OTQKIG1zZ2lkICJnaXRkaXIiCiBtc2dzdHIgImdpdGRpciIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQorIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQogbXNnaWQgInNlcGFyYXRlIGdpdCBkaXIgZnJvbSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgImtow7RuZyBkw7luZyBjaHVuZyB0aMawIG3hu6VjIGTDoG5oIHJpw6puZyBjaG8gZ2l0IHbDoCB0aMawIG3hu6VjIGzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJrZXk9dmFsdWUiCiBtc2dzdHIgImtow7NhPWdpw6EgdHLhu4siCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoxMDEKKyM6IGJ1aWx0aW4vY2xvbmUuYzoxMDAKIG1zZ2lkICJzZXQgY29uZmlnIGluc2lkZSB0aGUgbmV3IHJlcG9zaXRvcnkiCiBtc2dzdHIgIsSR4bq3dCBj4bqldSBow6xuaCBiw6puIHRyb25nIG3hu5l0IGtobyBjaOG7qWEgbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoyNTQKKyM6IGJ1aWx0aW4vY2xvbmUuYzoyNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBub3QgYSBsb2NhbCByZXBvc2l0b3J5LiIKIG1zZ3N0ciAia2hvIHRoYW0gY2hp4bq/dSDigJwlc+KAnSBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBraG8gbuG7mWkgYuG7mS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAidOG6oW8gdGjGsCBt4bulYyBcIiVzXCIgZ+G6t3AgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTkgYnVpbHRpbi9kaWZmLmM6NzcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTggYnVpbHRpbi9kaWZmLmM6NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJyVzJyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kgc3RhdCAobOG6pXkgdHLhuqFuZyB0aMOhaSB24buBKSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMyMQorIzogYnVpbHRpbi9jbG9uZS5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBleGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiJXMgdOG7k24gdOG6oWkgbmjGsG5nIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHRoxrAgbeG7pWMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMzUKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJXNcbiIKIG1zZ3N0ciAibOG7l2kgc3RhdCAobOG6pXkgdHLhuqFuZyB0aMOhaSB24buBKSAlc1xuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzU3CisjOiBidWlsdGluL2Nsb25lLmM6MzU2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGluayAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgdOG6oW8gxJHGsOG7o2MgbGnDqm4ga+G6v3QgbeG7gW0gJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNvcHkgZmlsZSB0byAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgY2jDqXAgdOG6rXAgdGluIHThu5tpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzg0CisjOiBidWlsdGluL2Nsb25lLmM6MzgzCiAjLCBjLWZvcm1hdAogbXNnaWQgImRvbmUuXG4iCiBtc2dzdHIgImhvw6BuIHThuqV0LlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzk3CisjOiBidWlsdGluL2Nsb25lLmM6Mzk2CiBtc2dpZCAiIgogIkNsb25lIHN1Y2NlZWRlZCwgYnV0IGNoZWNrb3V0IGZhaWxlZC5cbiIKICJZb3UgY2FuIGluc3BlY3Qgd2hhdCB3YXMgY2hlY2tlZCBvdXQgd2l0aCAnZ2l0IHN0YXR1cydcbiIKQEAgLTM1OTEsOTAgKzM3OTQsMTA0IEBACiAiQuG6oW4ga2nhu4NtIHRyYSBr4bu5IHhlbSBjw6FpIGfDrCDEkcaw4bujYyBs4bqleSByYSBi4bqxbmcgbOG7h25oIOKAnGdpdCBzdGF0dXPigJ1cbiIKICJ2w6AgdGjhu60gY2hlY2tvdXQgduG7m2kgbOG7h25oIOKAnGdpdCBjaGVja291dCAtZiBIRUFE4oCdXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo0NzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZpbmQgcmVtb3RlIGJyYW5jaCAlcyB0byBjbG9uZS4iCiBtc2dzdHIgIktow7RuZyB0w6xtIHRo4bqleSBuaMOhbmggbcOheSBjaOG7pyAlcyDEkeG7gyBuaMOibiBi4bqjbiAoY2xvbmUpLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjU1MAorIzogYnVpbHRpbi9jbG9uZS5jOjU1NQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGVja2luZyBjb25uZWN0aXZpdHkuLi4gIgorbXNnc3RyICLEkGFuZyBraeG7g20gdHJhIGvhur90IG7hu5FpLi4uIgorCisjOiBidWlsdGluL2Nsb25lLmM6NTU4CiBtc2dpZCAicmVtb3RlIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHMiCiBtc2dzdHIgIm3DoXkgY2jhu6cgxJHDoyBraMO0bmcgZ+G7rWkgdOG6pXQgY+G6oyBjw6FjIMSR4buRaSB0xrDhu6NuZyBj4bqnbiB0aGnhur90IgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjEwCisjOiBidWlsdGluL2Nsb25lLmM6NTYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRvbmVcbiIKK21zZ3N0ciAieG9uZy5cbiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjYyMQogbXNnaWQgInJlbW90ZSBIRUFEIHJlZmVycyB0byBub25leGlzdGVudCByZWYsIHVuYWJsZSB0byBjaGVja291dC5cbiIKIG1zZ3N0ciAicmVmZXJzIEhFQUQgbcOheSBjaOG7pyAgY2jhu4kgxJHhur9uIHJlZiBraMO0bmcgdOG7k24gdOG6oWksIGtow7RuZyB0aOG7gyBjaGVja291dC5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY0MQorIzogYnVpbHRpbi9jbG9uZS5jOjY1MgogbXNnaWQgInVuYWJsZSB0byBjaGVja291dCB3b3JraW5nIHRyZWUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBs4bqleSByYSAoY2hlY2tvdXQpIGPDonkgbMOgbSB2aeG7h2MiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NDkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NjAKIG1zZ2lkICJUb28gbWFueSBhcmd1bWVudHMuIgogbXNnc3RyICJDw7MgcXXDoSBuaGnhu4F1IMSR4buRaSBz4buRLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc1MworIzogYnVpbHRpbi9jbG9uZS5jOjc2NAogbXNnaWQgIllvdSBtdXN0IHNwZWNpZnkgYSByZXBvc2l0b3J5IHRvIGNsb25lLiIKIG1zZ3N0ciAiQuG6oW4gcGjhuqNpIGNo4buJIMSR4buLbmggbeG7mXQga2hvIMSR4buDIG3DoCBuaMOibiBi4bqjbiAoY2xvbmUpLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2NAorIzogYnVpbHRpbi9jbG9uZS5jOjc3NQogIywgYy1mb3JtYXQKIG1zZ2lkICItLWJhcmUgYW5kIC0tb3JpZ2luICVzIG9wdGlvbnMgYXJlIGluY29tcGF0aWJsZS4iCiBtc2dzdHIgInTDuXkgY2jhu41uIC0tYmFyZSB2w6AgLS1vcmlnaW4gJXMgeHVuZyBraOG6r2MgbmhhdS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NjcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzgKIG1zZ2lkICItLWJhcmUgYW5kIC0tc2VwYXJhdGUtZ2l0LWRpciBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAidMO5eSBjaOG7jW4gLS1iYXJlIHbDoCAtLXNlcGFyYXRlLWdpdC1kaXIgeHVuZyBraOG6r2MgbmhhdS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVwb3NpdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJraG8gY2jhu6lhIOKAnCVz4oCdIGNoxrBhIHThu5NuIHThuqFpIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzg1CisjOiBidWlsdGluL2Nsb25lLmM6Nzk2CiBtc2dpZCAiLS1kZXB0aCBpcyBpZ25vcmVkIGluIGxvY2FsIGNsb25lczsgdXNlIGZpbGU6Ly8gaW5zdGVhZC4iCiBtc2dzdHIgIi0tZGVwdGggYuG7iyBs4budIMSRaSBraGkgbmjDom4gYuG6o24gbuG7mWkgYuG7mTsgaMOjeSBz4butIGThu6VuZyBmaWxlOi8vIMSR4buDIHRoYXkgdGjhur8uIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzk1CisjOiBidWlsdGluL2Nsb25lLmM6Nzk4Cittc2dpZCAiLS1sb2NhbCBpcyBpZ25vcmVkIgorbXNnc3RyICItLWxvY2FsIGLhu4sgbOG7nSDEkWkiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVzdGluYXRpb24gcGF0aCAnJXMnIGFscmVhZHkgZXhpc3RzIGFuZCBpcyBub3QgYW4gZW1wdHkgZGlyZWN0b3J5LiIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIMSRw61jaCDigJwlc+KAnSDEkcOjIGPDsyB04burIHRyxrDhu5tjIHbDoCBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCB0aMawIG3hu6VjIHLhu5duZy4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MDUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAid29ya2luZyB0cmVlICclcycgYWxyZWFkeSBleGlzdHMuIgogbXNnc3RyICJjw6J5IGzDoG0gdmnhu4djIOKAnCVz4oCdIMSRw6Mgc+G6tW4gdOG7k24gdOG6oWkgcuG7k2kuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODE4IGJ1aWx0aW4vY2xvbmUuYzo4MzAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzEgYnVpbHRpbi9jbG9uZS5jOjg0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGxlYWRpbmcgZGlyZWN0b3JpZXMgb2YgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHThuqFvIGPDoWMgdGjGsCBt4bulYyBk4bqrbiDEkeG6p3UgY+G7p2Eg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSB3b3JrIHRyZWUgZGlyICclcycuIgogbXNnc3RyICJraMO0bmcgdGjhu4MgdOG6oW8gY8OieSB0aMawIG3hu6VjIGzDoG0gdmnhu4djIGRpciDigJwlc+KAnS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NDAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvIGJhcmUgcmVwb3NpdG9yeSAnJXMnLi4uXG4iCiBtc2dzdHIgIsSQYW5nIG5ow6JuIGLhuqNuIHRow6BuaCBraG8gY2jhu6lhIGJhcmUg4oCcJXPigJ0uLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0MgorIzogYnVpbHRpbi9jbG9uZS5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gJyVzJy4uLlxuIgogbXNnc3RyICLEkGFuZyBuaMOibiBi4bqjbiB0aMOgbmgg4oCcJXPigJ0uLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg3NworIzogYnVpbHRpbi9jbG9uZS5jOjg5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBjbG9uZSAlcyIKIG1zZ3N0ciAiS2jDtG5nIGJp4bq/dCBsw6BtIGPDoWNoIG7DoG8gxJHhu4MgbmjDom4gYuG6o24gKGNsb25lKSAlcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkyNgorIzogYnVpbHRpbi9jbG9uZS5jOjk0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdGUgYnJhbmNoICVzIG5vdCBmb3VuZCBpbiB1cHN0cmVhbSAlcyIKIG1zZ3N0ciAiTmjDoW5oIG3DoXkgY2jhu6cgJXMga2jDtG5nIHTDrG0gdGjhuqV5IHRyb25nIHRoxrDhu6NuZyBuZ3Xhu5NuICh1cHN0cmVhbSkgJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MzMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NDkKIG1zZ2lkICJZb3UgYXBwZWFyIHRvIGhhdmUgY2xvbmVkIGFuIGVtcHR5IHJlcG9zaXRvcnkuIgogbXNnc3RyICJC4bqhbiBow6xuaCBuaMawIGzDoCDEkcOjIG5ow6JuIGLhuqNuIG3hu5l0IGtobyB0cuG7kW5nIHLhu5duZy4iCiAKQEAgLTM3MTAsMTUgKzM5MjcsMTUgQEAKIG1zZ2lkICItLWNvbW1hbmQgbXVzdCBiZSB0aGUgZmlyc3QgYXJndW1lbnQiCiBtc2dzdHIgIi0tY29tbWFuZCBwaOG6o2kgbMOgIMSR4buRaSBz4buRIMSR4bqndSB0acOqbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNAorIzogYnVpbHRpbi9jb21taXQuYzozNQogbXNnaWQgImdpdCBjb21taXQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IGNvbW1pdCBbY8OhYy10w7l5LWNo4buNbl0gWy0tXSA8cGF0aHNwZWM+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5CisjOiBidWlsdGluL2NvbW1pdC5jOjQwCiBtc2dpZCAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgc3RhdHVzIFtjw6FjLXTDuXktY2jhu41uXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDUKIG1zZ2lkICIiCiAiWW91ciBuYW1lIGFuZCBlbWFpbCBhZGRyZXNzIHdlcmUgY29uZmlndXJlZCBhdXRvbWF0aWNhbGx5IGJhc2VkXG4iCiAib24geW91ciB1c2VybmFtZSBhbmQgaG9zdG5hbWUuIFBsZWFzZSBjaGVjayB0aGF0IHRoZXkgYXJlIGFjY3VyYXRlLlxuIgpAQCAtMzc0Niw3ICszOTYzLDcgQEAKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFtZW5kIC0tcmVzZXQtYXV0aG9yXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTcKIG1zZ2lkICIiCiAiWW91IGFza2VkIHRvIGFtZW5kIHRoZSBtb3N0IHJlY2VudCBjb21taXQsIGJ1dCBkb2luZyBzbyB3b3VsZCBtYWtlXG4iCiAiaXQgZW1wdHkuIFlvdSBjYW4gcmVwZWF0IHlvdXIgY29tbWFuZCB3aXRoIC0tYWxsb3ctZW1wdHksIG9yIHlvdSBjYW5cbiIKQEAgLTM3NTksMTE0ICszOTc2LDEzMiBAQAogImhv4bq3YyBsw6AgYuG6oW4gZ+G7oSBi4buPIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyBt4buZdCBjw6FjaCBob8OgbiB0b8OgbiBi4bqxbmcgbOG7h25oOlxuIgogIlwiZ2l0IHJlc2V0IEhFQUReXCIuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjIKIG1zZ2lkICIiCiAiVGhlIHByZXZpb3VzIGNoZXJyeS1waWNrIGlzIG5vdyBlbXB0eSwgcG9zc2libHkgZHVlIHRvIGNvbmZsaWN0IHJlc29sdXRpb24uXG4iCiAiSWYgeW91IHdpc2ggdG8gY29tbWl0IGl0IGFueXdheSwgdXNlOlxuIgogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHlcbiIKICJcbiIKLSJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKIG1zZ3N0ciAiIgogIkzhuqduIGNoZXJyeS1waWNrIHRyxrDhu5tjIGhp4buHbiBuYXkgdHLhu5FuZyBy4buXbmcsIGPDsyBs4bq9IGzDoCBi4bufaSB2w6wgc+G7sSBwaMOibiBnaeG6o2kgeHVuZyAiCiAixJHhu5l0LlxuIgotIk7hur91IGLhuqFuIG114buRbiBjaHV54buDbiBnaWFvIG7DsyBjaG8gZMO5IHRo4bq/IG7DoG8gxJFpIG7hu69hLCBz4butIGThu6VuZzpcbiIKKyJO4bq/dSBi4bqhbiB24bqrbiBtdeG7kW4gY2h1eeG7g24gZ2lhbyBuw7MgY2hvIGTDuSB0aOG6vyBuw6BvIMSRaSBu4buvYSwgc+G7rSBk4bulbmc6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIk7hur91IGtow7RuZywgaMOjeSB0aOG7rSBkw7luZyDigJxnaXQgcmVzZXTigJ1cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoyNjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjkKK21zZ2lkICJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKK21zZ3N0ciAiTuG6v3Uga2jDtG5nIMSRxrDhu6NjIHRow6wgZMO5bmcgbOG7h25oIFwiZ2l0IHJlc2V0XCJcbiIKKworIzogYnVpbHRpbi9jb21taXQuYzo3MgorbXNnaWQgIiIKKyJJZiB5b3Ugd2lzaCB0byBza2lwIHRoaXMgY29tbWl0LCB1c2U6XG4iCisiXG4iCisiICAgIGdpdCByZXNldFxuIgorIlxuIgorIlRoZW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiIHdpbGwgcmVzdW1lIGNoZXJyeS1waWNraW5nXG4iCisidGhlIHJlbWFpbmluZyBjb21taXRzLlxuIgorbXNnc3RyICIiCisiTuG6v3UgYuG6oW4gbXXhu5FuIGLhu48gcXVhIGzhuqduIGNodXnhu4NuIGdpYW8gbsOgeSB0aMOsIGTDuW5nOlxuIgorIlxuIgorIiAgICBnaXQgcmVzZXRcbiIKKyJcbiIKKyJUaOG6vyB0aMOsIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIiBz4bq9IHBo4bulYyBo4buTaSBs4bqhaSB2aeG7h2MgY2hlcnJ5LXBpY2tcbiIKKyJuaOG7r25nIGzhuqduIGNodXnhu4NuIGdpYW8gY8OybiBs4bqhaS5cbiIKKworIzogYnVpbHRpbi9jb21taXQuYzoyNzkKIG1zZ2lkICJmYWlsZWQgdG8gdW5wYWNrIEhFQUQgdHJlZSBvYmplY3QiCiBtc2dzdHIgImfhurdwIGzhu5dpIGtoaSB0aMOhbyBk4buhIEhFQUQgxJHhu5FpIHTGsOG7o25nIGPDonkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzAyCisjOiBidWlsdGluL2NvbW1pdC5jOjMyMQogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGluZGV4IgogbXNnc3RyICJraMO0bmcgdGjhu4MgdOG6oW8gYuG6o25nIG3hu6VjIGzhu6VjIHThuqFtIHRo4budaSIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzI3CiBtc2dpZCAiaW50ZXJhY3RpdmUgYWRkIGZhaWxlZCIKIG1zZ3N0ciAidmnhu4djIHRow6ptIHTGsMahbmcgdMOhYyBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNDEgYnVpbHRpbi9jb21taXQuYzozNjIgYnVpbHRpbi9jb21taXQuYzo0MTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzYwIGJ1aWx0aW4vY29tbWl0LmM6MzgxIGJ1aWx0aW4vY29tbWl0LmM6NDMxCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ld19pbmRleCBmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpIHThuq1wIHRpbiBsxrB1IGLhuqNuZyBt4bulYyBs4bulYyBt4bubaSAobmV3X2luZGV4KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDEyCiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgbWVyZ2UuIgogbXNnc3RyICIiCiAia2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gdmnhu4djIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgY+G7pWMgYuG7mSB0cm9uZyBraGkgxJFhbmcgxJHGsOG7o2MgaMOyYSAiCiAidHLhu5luLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDE0CiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgY2hlcnJ5LXBpY2suIgogbXNnc3RyICIiCiAia2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gdmnhu4djIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgYuG7mSBwaOG6rW4gdHJvbmcga2hpIMSRYW5nIGNoZXJyeS0iCiAicGljay4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDA1CisjOiBidWlsdGluL2NvbW1pdC5jOjQyNAogbXNnaWQgImNhbm5vdCByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAia2jDtG5nIMSR4buNYyDEkcaw4bujYyBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDI1CisjOiBidWlsdGluL2NvbW1pdC5jOjQ0NAogbXNnaWQgInVuYWJsZSB0byB3cml0ZSB0ZW1wb3JhcnkgaW5kZXggZmlsZSIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGdoaSB04bqtcCB0aW4gbMawdSBi4bqjbmcgbeG7pWMgbOG7pWMgdOG6oW0gdGjhu51pIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjUxMyBidWlsdGluL2NvbW1pdC5jOjUxOQorIzogYnVpbHRpbi9jb21taXQuYzo1MzUgYnVpbHRpbi9jb21taXQuYzo1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBjb21taXQ6ICVzIgogbXNnc3RyICJs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGtow7RuZyBo4bujcCBs4buHOiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTYzCiBtc2dpZCAibWFsZm9ybWVkIC0tYXV0aG9yIHBhcmFtZXRlciIKIG1zZ3N0ciAixJHhu5FpIHPhu5EgLS1hdXRob3IgYuG7iyBk4buLIGjDrG5oIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU2MgorIzogYnVpbHRpbi9jb21taXQuYzo1ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlkZW50IHN0cmluZzogJyVzJyIKIG1zZ3N0ciAiQ2h14buXaSB0aOG7pXQgbOG7gSDEkeG6p3UgZMOybmcgZOG7iyBow6xuaDog4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjAwIGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vY29tbWl0LmM6OTU2CisjOiBidWlsdGluL2NvbW1pdC5jOjYyMSBidWlsdGluL2NvbW1pdC5jOjY1NCBidWlsdGluL2NvbW1pdC5jOjk4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgbG9va3VwIGNvbW1pdCAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHTDrG0ga2nhur9tIGNvbW1pdCAobOG6p24gY2h1eeG7g24gZ2lhbykgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjEyIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiKHJlYWRpbmcgbG9nIG1lc3NhZ2UgZnJvbSBzdGFuZGFyZCBpbnB1dClcbiIKIG1zZ3N0ciAiKMSRYW5nIMSR4buNYyB0aMO0bmcgxJFp4buHcCBuaOG6rXQga8O9IHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbilcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MTQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjM1CiBtc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZyb20gc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgbmjhuq10IGvDvSB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjE4CisjOiBidWlsdGluL2NvbW1pdC5jOjYzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZmlsZSAnJXMnIgogbXNnc3RyICJraMO0bmcgxJHhu41jIMSRxrDhu6NjIHThu4dwIG5o4bqtdCBrw70g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjI0CisjOiBidWlsdGluL2NvbW1pdC5jOjY0NQogbXNnaWQgImNvbW1pdCBoYXMgZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAibOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBjw7MgZ2hpIGNow7ogdHLhu5FuZyBy4buXbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQwCisjOiBidWlsdGluL2NvbW1pdC5jOjY2MQogbXNnaWQgImNvdWxkIG5vdCByZWFkIE1FUkdFX01TRyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyBNRVJHRV9NU0ciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ0CisjOiBidWlsdGluL2NvbW1pdC5jOjY2NQogbXNnaWQgImNvdWxkIG5vdCByZWFkIFNRVUFTSF9NU0ciCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgU1FVQVNIX01TRyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjY5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyDEkeG7jWMg4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcwOQorIzogYnVpbHRpbi9jb21taXQuYzo3MzAKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgY29tbWl0IHRlbXBsYXRlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpIG3huqt1IGNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM4ODEsNyArNDExNiw3IEBACiAiXHQlc1xuIgogInbDoCB0aOG7rSBs4bqhaS5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM4OTYsNyArNDEzMSw3IEBACiAiXHQlc1xuIgogInbDoCB0aOG7rSBs4bqhaS5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nXG4iCkBAIC0zOTA3LDcgKzQxNDIsNyBAQAogImLhuq90IMSR4bqndSBi4bqxbmcg4oCcJWPigJ0gc+G6vSDEkcaw4bujYyBi4buPIHF1YSwgbuG6v3UgcGjhuqduIGNow7ogdGjDrWNoIHLhu5duZyBz4bq9IGjhu6d5IGLhu48gbOG6p24gIgogImNodXnhu4NuIGdpYW8gKGNvbW1pdCkuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzQyCisjOiBidWlsdGluL2NvbW1pdC5jOjc2MwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgpAQCAtMzkxOSwzNzIgKzQxNTQsMzcyIEBACiAiYuG6r3QgxJHhuqd1IGLhurFuZyDigJwlY+KAnSBz4bq9IMSRxrDhu6NjIGLhu48gcXVhOyBi4bqhbiBjw7MgdGjhu4MgeMOzYSBjaMO6bmcgxJFpIG7hur91IG114buRbiB0aOG6vy5cbiIKICJQaOG6p24gY2jDuiB0aMOtY2ggbsOgeSBu4bq/dSB0cuG7kW5nIHLhu5duZyBz4bq9IGjhu6d5IGLhu48gbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KS5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Nzc2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQXV0aG9yOiAgICAlcyIKIG1zZ3N0ciAiJXNUw6FjIGdp4bqjOiAgICAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NjIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQ29tbWl0dGVyOiAlcyIKIG1zZ3N0ciAiJXNOZ8aw4budaSBjaHV54buDbiBnaWFvIChjb21taXQpOiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3ODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODAzCiBtc2dpZCAiQ2Fubm90IHJlYWQgaW5kZXgiCiBtc2dzdHIgImtow7RuZyDEkeG7jWMgxJHGsOG7o2MgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjgxOQorIzogYnVpbHRpbi9jb21taXQuYzo4NDUKIG1zZ2lkICJFcnJvciBidWlsZGluZyB0cmVlcyIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHjDonkgZOG7sW5nIGPDonkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODM0IGJ1aWx0aW4vdGFnLmM6MzU5CisjOiBidWlsdGluL2NvbW1pdC5jOjg2MCBidWlsdGluL3RhZy5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBtZXNzYWdlIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24uXG4iCiBtc2dzdHIgIlhpbiBow6N5IMOhcCBk4bulbmcgdGjDtG5nIMSRaeG7h3Agc+G7rSBk4bulbmcgaG/hurdjIGzDoCB0w7l5IGNo4buNbiAtbSBob+G6t2MgbMOgIC1GLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjkzMQorIzogYnVpbHRpbi9jb21taXQuYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gZXhpc3RpbmcgYXV0aG9yIGZvdW5kIHdpdGggJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5IHTDoWMgZ2nhuqMgY8OzIHPhurVuIHbhu5tpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk0NiBidWlsdGluL2NvbW1pdC5jOjExNDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTcyIGJ1aWx0aW4vY29tbWl0LmM6MTIwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHVudHJhY2tlZCBmaWxlcyBtb2RlICclcyciCiBtc2dzdHIgIkNo4bq/IMSR4buZIGNobyBjw6FjIHThuq1wIHRpbiBraMO0bmcgYuG7iyB0aGVvIHbhur90IGtow7RuZyBo4bujcCBs4buHIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk3NgorIzogYnVpbHRpbi9jb21taXQuYzoxMDA5Cittc2dpZCAiLS1sb25nIGFuZCAteiBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICJoYWkgdMO5eSBjaOG7jW4gLWxvbmcgdsOgIC16IGtow7RuZyB0xrDGoW5nIHRow61jaCB24bubaSBuaGF1IgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEwMzkKIG1zZ2lkICJVc2luZyBib3RoIC0tcmVzZXQtYXV0aG9yIGFuZCAtLWF1dGhvciBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICJT4butIGThu6VuZyBj4bqjIGhhaSB0w7l5IGNo4buNbiAtLXJlc2V0LWF1dGhvciB2w6AgLS1hdXRob3Iga2jDtG5nIGjhu6NwIGzDvSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5ODcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MAogbXNnaWQgIllvdSBoYXZlIG5vdGhpbmcgdG8gYW1lbmQuIgogbXNnc3RyICJLaMO0bmcgY8OzIGfDrCDEkeG7gyBhbWVuZCAodHUgYuG7lSkgY+G6oy4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTkwCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSAtLSBjYW5ub3QgYW1lbmQuIgogbXNnc3RyICIiCiAiQuG6oW4gxJFhbmcg4bufIGdp4buvYSBj4bunYSBxdcOhIHRyw6xuaCBow7JhIHRy4buZbiAtLSBraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBhbWVuZCAodHUgYuG7lSkuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5MgorIzogYnVpbHRpbi9jb21taXQuYzoxMDU1CiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY2hlcnJ5LXBpY2sgLS0gY2Fubm90IGFtZW5kLiIKIG1zZ3N0ciAiIgogIkLhuqFuIMSRYW5nIOG7nyBnaeG7r2EgY+G7p2EgcXXDoSB0csOsbmggY2hlcnJ5LXBpY2sgLS0ga2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gYW1lbmQgKHR1ICIKICJi4buVKS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTk1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTgKIG1zZ2lkICJPcHRpb25zIC0tc3F1YXNoIGFuZCAtLWZpeHVwIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICJDw6FjIHTDuXkgY2jhu41uIC0tc3F1YXNoIHbDoCAtLWZpeHVwIGtow7RuZyB0aOG7gyBz4butIGThu6VuZyBjw7luZyB24bubaSBuaGF1IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA2OAogbXNnaWQgIk9ubHkgb25lIG9mIC1jLy1DLy1GLy0tZml4dXAgY2FuIGJlIHVzZWQuIgogbXNnc3RyICJDaOG7iSBt4buZdCB0w7l5IGNo4buNbiB0cm9uZyBz4buRIC1jLy1DLy1GLy0tZml4dXAgxJHGsOG7o2Mgc+G7rSBk4bulbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNworIzogYnVpbHRpbi9jb21taXQuYzoxMDcwCiBtc2dpZCAiT3B0aW9uIC1tIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIC1jLy1DLy1GLy0tZml4dXAuIgogbXNnc3RyICJUw7l5IGNo4buNbiAtbSBraMO0bmcgdGjhu4MgxJHGsOG7o2MgdOG7lSBo4bujcCBjw7luZyB24bubaSAtYy8tQy8tRi8tLWZpeHVwLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDE1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNzgKIG1zZ2lkICItLXJlc2V0LWF1dGhvciBjYW4gYmUgdXNlZCBvbmx5IHdpdGggLUMsIC1jIG9yIC0tYW1lbmQuIgogbXNnc3RyICIiCiAiLS1yZXNldC1hdXRob3IgY2jhu4kgY8OzIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIHbhu5tpIHTDuXkgY2jhu41uIC1DLCAtYyBoYXkgLS1hbWVuZC4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzMgorIzogYnVpbHRpbi9jb21taXQuYzoxMDk1CiBtc2dpZCAiT25seSBvbmUgb2YgLS1pbmNsdWRlLy0tb25seS8tLWFsbC8tLWludGVyYWN0aXZlLy0tcGF0Y2ggY2FuIGJlIHVzZWQuIgogbXNnc3RyICIiCiAiQ2jhu4kgbeG7mXQgdHJvbmcgY8OhYyB0w7l5IGNo4buNbiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCDEkcaw4bujYyAiCiAic+G7rSBk4bulbmcuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NwogbXNnaWQgIk5vIHBhdGhzIHdpdGggLS1pbmNsdWRlLy0tb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKIG1zZ3N0ciAiS2jDtG5nIMSRxrDhu51uZyBk4bqrbiB24bubaSBjw6FjIHTDuXkgY2jhu41uIC0taW5jbHVkZS8tLW9ubHkga2jDtG5nIGjhu6NwIGzDvS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNgorIzogYnVpbHRpbi9jb21taXQuYzoxMDk5CiBtc2dpZCAiQ2xldmVyLi4uIGFtZW5kaW5nIHRoZSBsYXN0IG9uZSB3aXRoIGRpcnR5IGluZGV4LiIKIG1zZ3N0ciAiR2nhu49pLi4uICB0dSBi4buVIGPDoWkgY3Xhu5FpIHbhu5tpIGLhuqNuZyBt4bulYyBs4bulYyBwaGkgbmdoxKlhLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM4CisjOiBidWlsdGluL2NvbW1pdC5jOjExMDEKIG1zZ2lkICJFeHBsaWNpdCBwYXRocyBzcGVjaWZpZWQgd2l0aG91dCAtaSBub3IgLW87IGFzc3VtaW5nIC0tb25seSBwYXRocy4uLiIKIG1zZ3N0ciAiIgogIk5o4buvbmcgxJHGsOG7nW5nIGThuqtuIHLDtSByw6BuZyDEkcaw4bujYyBjaOG7iSByYSBraMO0bmcgY8OzIHTDuXkgY2jhu41uIC1pIGPFqW5nIGtow7RuZyAtbzsgxJFhbmcgIgogImdp4bqjIMSR4buLbmggLS1vbmx5IG5o4buvbmctxJHGsOG7nW5nLWThuqtuLi4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNDggYnVpbHRpbi90YWcuYzo1NzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTExMSBidWlsdGluL3RhZy5jOjU3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGNsZWFudXAgbW9kZSAlcyIKIG1zZ3N0ciAiQ2jhur8gxJHhu5kgZOG7jW4gZOG6uXAga2jDtG5nIGjhu6NwIGzhu4cgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MworIzogYnVpbHRpbi9jb21taXQuYzoxMTE2CiBtc2dpZCAiUGF0aHMgd2l0aCAtYSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKIG1zZ3N0ciAiQ8OhYyDEkcaw4budbmcgZOG6q24gduG7m2kgdMO5eSBjaOG7jW4gLWEga2jDtG5nIGjhu6NwIGzDvS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1OSBidWlsdGluL2NvbW1pdC5jOjExOTQKLW1zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCi1tc2dzdHIgImhhaSB0w7l5IGNo4buNbiAtbG9uZyB2w6AgLXoga2jDtG5nIHTGsMahbmcgdGjDrWNoIHbhu5tpIG5oYXUiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1NCBidWlsdGluL2NvbW1pdC5jOjEzOTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMiBidWlsdGluL2NvbW1pdC5jOjE0NTUKIG1zZ2lkICJzaG93IHN0YXR1cyBjb25jaXNlbHkiCiBtc2dzdHIgImhp4buDbiB0aOG7iyB0cuG6oW5nIHRow6FpIOG7nyBk4bqhbmcgc8O6YyB0w61jaCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTU2IGJ1aWx0aW4vY29tbWl0LmM6MTM5MgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI0IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NwogbXNnaWQgInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIgogbXNnc3RyICJoaeG7g24gdGjhu4sgdGjDtG5nIHRpbiBuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1OCBidWlsdGluL2NvbW1pdC5jOjEzOTQgYnVpbHRpbi9wdXNoLmM6NDI2CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjYgYnVpbHRpbi9jb21taXQuYzoxNDU5IGJ1aWx0aW4vcHVzaC5jOjQ1MgogbXNnaWQgIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IgogbXNnc3RyICJr4bq/dCB4deG6pXQgZOG6oW5nIG3DoXktY8OzLXRo4buDLcSR4buNYyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTYxIGJ1aWx0aW4vY29tbWl0LmM6MTM5NgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI5IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQogbXNnaWQgInNob3cgc3RhdHVzIGluIGxvbmcgZm9ybWF0IChkZWZhdWx0KSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHRy4bqhbmcgdGjDoWkg4bufIMSR4buLbmggZOG6oW5nIGTDoGkgKG3hurdjIMSR4buLbmgpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjQgYnVpbHRpbi9jb21taXQuYzoxMzk5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzIgYnVpbHRpbi9jb21taXQuYzoxNDY0CiBtc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwiCiBtc2dzdHIgImNo4bqlbSBk4bupdCBjw6FjIG3hu6VjIGLhurFuZyBOVUwiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NiBidWlsdGluL2NvbW1pdC5jOjE0MDIgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1OQotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2MiBidWlsdGluL3RhZy5jOjQ1OQorIzogYnVpbHRpbi9jb21taXQuYzoxMjM0IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NyBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY3CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcwIGJ1aWx0aW4vdGFnLmM6NDU5CiBtc2dpZCAibW9kZSIKIG1zZ3N0ciAiY2jhur8gxJHhu5kiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NyBidWlsdGluL2NvbW1pdC5jOjE0MDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNSBidWlsdGluL2NvbW1pdC5jOjE0NjcKIG1zZ2lkICJzaG93IHVudHJhY2tlZCBmaWxlcywgb3B0aW9uYWwgbW9kZXM6IGFsbCwgbm9ybWFsLCBuby4gKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgIiIKICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4gY2jGsGEgxJHGsOG7o2MgdGhlbyBkw7VpICBk4bqldSB24bq/dCwgY8OhYyBjaOG6vyDEkeG7mSB0w7l5IGNo4buNbjogIGFsbCwgIgogIm5vcm1hbCwgbm8uIChN4bq3YyDEkeG7i25oOiBhbGwpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOAogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdOG6rXAgdGluIOG6qW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MSBwYXJzZS1vcHRpb25zLmg6MTUxCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzkgcGFyc2Utb3B0aW9ucy5oOjE1NAogbXNnaWQgIndoZW4iCiBtc2dzdHIgImtoaSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTcyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNDAKIG1zZ2lkICIiCiAiaWdub3JlIGNoYW5nZXMgdG8gc3VibW9kdWxlcywgb3B0aW9uYWwgd2hlbjogYWxsLCBkaXJ0eSwgdW50cmFja2VkLiAiCiAiKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgIiIKLSJi4buPIHF1YSBjw6FjIHRoYXkgxJHhu5VpIHRyb25nIG3DtC3EkXVuIGNvbiwgdMO5eSBjaOG7jW4ga2hpOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKKyJi4buPIHF1YSBjw6FjIHRoYXkgxJHhu5VpIHRyb25nIG3DtC3EkXVuLWNvbiwgdMO5eSBjaOG7jW4ga2hpOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoTeG6t2MgxJHhu4tuaDogYWxsKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTc0CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNDIKIG1zZ2lkICJsaXN0IHVudHJhY2tlZCBmaWxlcyBpbiBjb2x1bW5zIgogbXNnc3RyICJoaeG7g24gdGjhu4sgZGFuaCBzw6FjaCBjw6FjIHThuq1wLXRpbiBjaMawYSDEkcaw4bujYyB0aGVvIGTDtWkgdHJvbmcgY8OhYyBj4buZdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjQ4CisjOiBidWlsdGluL2NvbW1pdC5jOjEzMTMKIG1zZ2lkICJjb3VsZG4ndCBsb29rIHVwIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICJraMO0bmcgdGjhu4MgdMOsbSB0aOG6pXkgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBt4bubaSBoxqFuIMSRw6MgxJHGsOG7o2MgdOG6oW8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1MAorIzogYnVpbHRpbi9jb21taXQuYzoxMzE1CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICIiCiAia2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIGPDuiBwaMOhcCBj4bunYSDEkeG7kWkgdMaw4bujbmcgY2h1eeG7g24gZ2lhbyBt4bubaSBoxqFuIMSRw6MgxJHGsOG7o2MgdOG6oW8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI5MQorIzogYnVpbHRpbi9jb21taXQuYzoxMzU2CiBtc2dpZCAiZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAixJHDoyBy4budaSBraOG7j2kgSEVBRCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjkzCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNTgKIG1zZ2lkICIgKHJvb3QtY29tbWl0KSIKIG1zZ3N0ciAiIChyb290LWNvbW1pdCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDI1CiBtc2dpZCAic3VwcHJlc3Mgc3VtbWFyeSBhZnRlciBzdWNjZXNzZnVsIGNvbW1pdCIKIG1zZ3N0ciAia2jDtG5nIGhp4buDbiB0aOG7iyB04buVbmcga+G6v3Qgc2F1IGtoaSBjaHV54buDbiBnaWFvIHRow6BuaCBjw7RuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjYKIG1zZ2lkICJzaG93IGRpZmYgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBz4buxIGtow6FjIGJp4buHdCB0cm9uZyBt4bqrdSB0aW4gbmjhuq9uIGNodXnhu4NuIGdpYW8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MworIzogYnVpbHRpbi9jb21taXQuYzoxNDI4CiBtc2dpZCAiQ29tbWl0IG1lc3NhZ2Ugb3B0aW9ucyIKIG1zZ3N0ciAiQ8OhYyB0w7l5IGNo4buNbiBnaGkgY2jDuiBjb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NCBidWlsdGluL3RhZy5jOjQ1NworIzogYnVpbHRpbi9jb21taXQuYzoxNDI5IGJ1aWx0aW4vdGFnLmM6NDU3CiBtc2dpZCAicmVhZCBtZXNzYWdlIGZyb20gZmlsZSIKIG1zZ3N0ciAixJHhu41jIGNow7ogdGjDrWNoIHThu6sgdOG6rXAgdGluIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAogbXNnaWQgImF1dGhvciIKIG1zZ3N0ciAidMOhYyBnaeG6oyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzAKIG1zZ2lkICJvdmVycmlkZSBhdXRob3IgZm9yIGNvbW1pdCIKIG1zZ3N0ciAiZ2hpIMSRw6ggdMOhYyBnaeG6oyBjaG8gY29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjYgYnVpbHRpbi9nYy5jOjE3OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDMxIGJ1aWx0aW4vZ2MuYzoxNzgKIG1zZ2lkICJkYXRlIgogbXNnc3RyICJuZ8OgeSB0aMOhbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDMxCiBtc2dpZCAib3ZlcnJpZGUgZGF0ZSBmb3IgY29tbWl0IgogbXNnc3RyICJnaGkgxJHDqCBuZ8OgeSB0aMOhbmcgY2hvIGNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY3IGJ1aWx0aW4vbWVyZ2UuYzoyMDggYnVpbHRpbi9ub3Rlcy5jOjUzMwotIzogYnVpbHRpbi9ub3Rlcy5jOjY5MCBidWlsdGluL3RhZy5jOjQ1NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMyIGJ1aWx0aW4vbWVyZ2UuYzoyMjMgYnVpbHRpbi9ub3Rlcy5jOjQwNQorIzogYnVpbHRpbi9ub3Rlcy5jOjU2MiBidWlsdGluL3RhZy5jOjQ1NQogbXNnaWQgIm1lc3NhZ2UiCiBtc2dzdHIgInRow7RuZyDEkWnhu4dwIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMgogbXNnaWQgImNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICJjaMO6IHRow61jaCBj4bunYSBs4bqnbiBjb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDMzCiBtc2dpZCAicmV1c2UgYW5kIGVkaXQgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKICJkw7luZyBs4bqhaSBjw6FjIGdoaSBjaMO6IHThu6sgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSDEkcOjIGNobyBuaMawbmcgY8OzIGNobyBz4butYSBjaOG7r2EiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM0CiBtc2dpZCAicmV1c2UgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgImTDuW5nIGzhuqFpIGPDoWMgZ2hpIGNow7ogdOG7qyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIMSRw6MgY2hvIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNQogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIGZpeHVwIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKICJkw7luZyBnaGkgY2jDuiBjw7MgxJHhu4tuaCBk4bqhbmcgYXV0b3NxdWFzaCDEkeG7gyBz4butYSBjaOG7r2EgbOG6p24gY2h1eeG7g24gZ2lhbyDEkcOjIGNo4buJIHJhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNgogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIHNxdWFzaCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCiAiZMO5bmcgbOG7nWkgbmjhuq9uIGPDsyDEkeG7i25oIGThuqFuZyB04buxIMSR4buZbmcgbsOpbiDEkeG7gyBuw6luIGzhuqFpIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyDEkcOjIGNo4buJICIKICJyYSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzcKIG1zZ2lkICJ0aGUgY29tbWl0IGlzIGF1dGhvcmVkIGJ5IG1lIG5vdyAodXNlZCB3aXRoIC1DLy1jLy0tYW1lbmQpIgogbXNnc3RyICIiCiAibOG6p24gY2h1eeG7g24gZ2lhbyBuaOG6rW4gdMO0aSBsw6AgdMOhYyBnaeG6oyAoxJHGsOG7o2MgZMO5bmcgduG7m2kgdMO5eSBjaOG7jW4gLUMvLWMvLS1hbWVuZCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MyBidWlsdGluL2xvZy5jOjExMTMgYnVpbHRpbi9yZXZlcnQuYzoxMDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOCBidWlsdGluL2xvZy5jOjExNjAgYnVpbHRpbi9yZXZlcnQuYzoxMTEKIG1zZ2lkICJhZGQgU2lnbmVkLW9mZi1ieToiCiBtc2dzdHIgInRow6ptIGTDsm5nIFNpZ25lZC1vZmYtYnk6IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOQogbXNnaWQgInVzZSBzcGVjaWZpZWQgdGVtcGxhdGUgZmlsZSIKIG1zZ3N0ciAic+G7rSBk4bulbmcgdOG6rXAgdGluIG3huqt1IMSRw6MgY2hvIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MAogbXNnaWQgImZvcmNlIGVkaXQgb2YgY29tbWl0IgogbXNnc3RyICLDqXAgYnXhu5ljIHPhu61hIGzhuqduIGNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKIG1zZ2lkICJkZWZhdWx0IgogbXNnc3RyICJt4bq3YyDEkeG7i25oIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzYgYnVpbHRpbi90YWcuYzo0NjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MSBidWlsdGluL3RhZy5jOjQ2MAogbXNnaWQgImhvdyB0byBzdHJpcCBzcGFjZXMgYW5kICNjb21tZW50cyBmcm9tIG1lc3NhZ2UiCiBtc2dzdHIgImzDoG0gdGjhur8gbsOgbyDEkeG7gyBj4bqvdCBi4buPIGtob+G6o25nIHRy4bqvbmcgdsOgICNnaGljaMO6IHThu6sgbeG6qXUgdGluIG5o4bqvbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDIKIG1zZ2lkICJpbmNsdWRlIHN0YXR1cyBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKIG1zZ3N0ciAiYmFvIGfhu5NtIGPDoWMgdHLhuqFuZyB0aMOhaSBnaGkgbeG6q3UgZ2hpIGNow7ogY2h1eeG7g24gZ2lhbyAoY29tbWl0KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc4IGJ1aWx0aW4vbWVyZ2UuYzoyMTUgYnVpbHRpbi90YWcuYzo0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MyBidWlsdGluL21lcmdlLmM6MjMwIGJ1aWx0aW4vdGFnLmM6NDYxCiBtc2dpZCAia2V5IGlkIgogbXNnc3RyICJpZCBraMOzYSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc5IGJ1aWx0aW4vbWVyZ2UuYzoyMTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0NCBidWlsdGluL21lcmdlLmM6MjMxCiBtc2dpZCAiR1BHIHNpZ24gY29tbWl0IgogbXNnc3RyICJrw70gbOG6p24gY29tbWl0IGTDuW5nIEdQRyIKIAogIy4gZW5kIGNvbW1pdCBtZXNzYWdlIG9wdGlvbnMKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ3CiBtc2dpZCAiQ29tbWl0IGNvbnRlbnRzIG9wdGlvbnMiCiBtc2dzdHIgIkPDoWMgdMO5eSBu4buZaSBkdW5nIGdoaSBjaMO6IGNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzgzCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDgKIG1zZ2lkICJjb21taXQgYWxsIGNoYW5nZWQgZmlsZXMiCiBtc2dzdHIgImNodXnhu4NuIGdpYW8gdOG6pXQgY+G6oyBjw6FjIHThuq1wIHRpbiBjw7MgdGhheSDEkeG7lWkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ5CiBtc2dpZCAiYWRkIHNwZWNpZmllZCBmaWxlcyB0byBpbmRleCBmb3IgY29tbWl0IgogbXNnc3RyICJ0aMOqbSBjw6FjIHThuq1wIHRpbiDEkcOjIGNo4buJIHJhIHbDoG8gYuG6o25nIG3hu6VjIGzhu6VjIMSR4buDIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDUwCiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiCiBtc2dzdHIgInRow6ptIGPDoWMgdOG6rXAtdGluIGLhurFuZyB0xrDGoW5nIHTDoWMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDUxCiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgY2hhbmdlcyIKIG1zZ3N0ciAidGjDqm0gY8OhYyB0aGF5IMSR4buVaSBi4bqxbmcgdMawxqFuZyB0w6FjIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MgogbXNnaWQgImNvbW1pdCBvbmx5IHNwZWNpZmllZCBmaWxlcyIKIG1zZ3N0ciAiY2jhu4kgY2h1eeG7g24gZ2lhbyBjw6FjIHThuq1wIHRpbiDEkcOjIGNo4buJIHJhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MwogbXNnaWQgImJ5cGFzcyBwcmUtY29tbWl0IGhvb2siCiBtc2dzdHIgInbDsm5nIHF1YSBtw7NjIChob29rKSBwcmUtY29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NAogbXNnaWQgInNob3cgd2hhdCB3b3VsZCBiZSBjb21taXR0ZWQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyB4ZW0gY8OhaSBnw6wgY8OzIHRo4buDIMSRxrDhu6NjIGNodXnhu4NuIGdpYW8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwMAorIzogYnVpbHRpbi9jb21taXQuYzoxNDY1CiBtc2dpZCAiYW1lbmQgcHJldmlvdXMgY29tbWl0IgogbXNnc3RyICJ0dSBi4buVIChhbWVuZCkgbOG6p24gY29tbWl0IHRyxrDhu5tjIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NgogbXNnaWQgImJ5cGFzcyBwb3N0LXJld3JpdGUgaG9vayIKIG1zZ3N0ciAidsOybmcgcXVhIG3Ds2MgKGhvb2spIHBvc3QtcmV3cml0ZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDA2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzEKIG1zZ2lkICJvayB0byByZWNvcmQgYW4gZW1wdHkgY2hhbmdlIgogbXNnc3RyICJvayDEkeG7gyBnaGkgbOG6oWkgbeG7mXQgdGhheSDEkeG7lWkgdHLhu5FuZyBy4buXbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDc0CiBtc2dpZCAib2sgdG8gcmVjb3JkIGEgY2hhbmdlIHdpdGggYW4gZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAib2sgxJHhu4MgZ2hpIGPDoWMgdGhheSDEkeG7lWkgduG7m2kgbOG7nWkgbmjhuq9uIHRy4buRbmcgcuG7l25nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTUwNwogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBIRUFEIGNvbW1pdCIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIGNvbW1pdCAobOG6p24gY2h1eeG7g24gZ2lhbykgSEVBRCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDc5IGJ1aWx0aW4vbWVyZ2UuYzo1MTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NSBidWlsdGluL21lcmdlLmM6NTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuICclcycgZm9yIHJlYWRpbmciCiBtc2dzdHIgImtow7RuZyB0aOG7gyBt4bufIOKAnCVz4oCdIMSR4buDIMSR4buNYyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE1NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29ycnVwdCBNRVJHRV9IRUFEIGZpbGUgKCVzKSIKIG1zZ3N0ciAiVOG6rXAgdGluIE1FUkdFX0hFQUQgc2FpIGjhu49uZyAoJXMpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0OTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1OQogbXNnaWQgImNvdWxkIG5vdCByZWFkIE1FUkdFX01PREUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgTUVSR0VfTU9ERSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTEyCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgY29tbWl0IG1lc3NhZ2U6ICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jIHRow7RuZyDEkWnhu4dwIChtZXNzYWdlKSBjb21taXQgKGzhuqduIGNodXnhu4NuIGdpYW8pOiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTI2CisjOiBidWlsdGluL2NvbW1pdC5jOjE1OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWJvcnRpbmcgY29tbWl0OyB5b3UgZGlkIG5vdCBlZGl0IHRoZSBtZXNzYWdlLlxuIgogbXNnc3RyICIiCiAixJBhbmcgYuG7jyBxdWEgdmnhu4djIGNodXnhu4NuIGdpYW8gKGNvbW1pdCk7IGLhuqFuIMSRw6Mga2jDtG5nIGJpw6puIHNv4bqhbiB0aMO0bmcgxJFp4buHcCAiCiAiKG1lc3NhZ2UpLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJBYm9ydGluZyBjb21taXQgZHVlIHRvIGVtcHR5IGNvbW1pdCBtZXNzYWdlLlxuIgogbXNnc3RyICIiCiAixJBhbmcgYuG7jyBxdWEgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBi4bufaSB2w6wgdGjDtG5nIMSRaeG7h3AgY+G7p2EgbsOzIHRy4buRbmcgcuG7l25nLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NDYgYnVpbHRpbi9tZXJnZS5jOjg0NyBidWlsdGluL21lcmdlLmM6ODcyCisjOiBidWlsdGluL2NvbW1pdC5jOjE2MTIgYnVpbHRpbi9tZXJnZS5jOjg2MSBidWlsdGluL21lcmdlLmM6ODg2CiBtc2dpZCAiZmFpbGVkIHRvIHdyaXRlIGNvbW1pdCBvYmplY3QiCiBtc2dzdHIgImfhurdwIGzhu5dpIGtoaSBnaGkgxJHhu5FpIHTGsOG7o25nIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU2NworIzogYnVpbHRpbi9jb21taXQuYzoxNjMzCiBtc2dpZCAiY2Fubm90IGxvY2sgSEVBRCByZWYiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBraMOzYSBIRUFEIHJlZiAodGhhbSBjaGnhur91KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTcxCisjOiBidWlsdGluL2NvbW1pdC5jOjE2MzcKIG1zZ2lkICJjYW5ub3QgdXBkYXRlIEhFQUQgcmVmIgogbXNnc3RyICJraMO0bmcgdGjhu4MgY+G6rXAgbmjhuq10IHJlZiAodGhhbSBjaGnhur91KSBIRUFEIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1ODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY0OAogbXNnaWQgIiIKICJSZXBvc2l0b3J5IGhhcyBiZWVuIHVwZGF0ZWQsIGJ1dCB1bmFibGUgdG8gd3JpdGVcbiIKICJuZXdfaW5kZXggZmlsZS4gQ2hlY2sgdGhhdCBkaXNrIGlzIG5vdCBmdWxsIG9yIHF1b3RhIGlzXG4iCkBAIC00Mjk5LDExNSArNDUzNCwxMjMgQEAKIG1zZ2lkICJnaXQgY29uZmlnIFtvcHRpb25zXSIKIG1zZ3N0ciAiZ2l0IGNvbmZpZyBbY8OhYy10w7l5LWNo4buNbl0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKIG1zZ2lkICJDb25maWcgZmlsZSBsb2NhdGlvbiIKIG1zZ3N0ciAiVuG7iyB0csOtIHThuq1wIHRpbiBj4bqldSBow6xuaCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MgorIzogYnVpbHRpbi9jb25maWcuYzo1MwogbXNnaWQgInVzZSBnbG9iYWwgY29uZmlnIGZpbGUiCiBtc2dzdHIgIsSR4bq3dCB04bqtcCB0aW4gY+G6pXUgaMOsbmggY+G6p24gdG/DoG4gY+G7pWMiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKIG1zZ2lkICJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIgogbXNnc3RyICJz4butIGThu6VuZyB04bqtcCB0aW4gY+G6pXUgaMOsbmggaOG7hyB0aOG7kW5nIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU0CisjOiBidWlsdGluL2NvbmZpZy5jOjU1CiBtc2dpZCAidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiCiBtc2dzdHIgImTDuW5nIHThuq1wIHRpbiBj4bqldSBow6xuaCBj4bunYSBraG8iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTYKIG1zZ2lkICJ1c2UgZ2l2ZW4gY29uZmlnIGZpbGUiCiBtc2dzdHIgInPhu60gZOG7pW5nIHThuq1wIHRpbiBj4bqldSBow6xuaCDEkcOjIGNobyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NgorIzogYnVpbHRpbi9jb25maWcuYzo1NworbXNnaWQgImJsb2ItaWQiCittc2dzdHIgImJsb2ItaWQiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKK21zZ2lkICJyZWFkIGNvbmZpZyBmcm9tIGdpdmVuIGJsb2Igb2JqZWN0IgorbXNnc3RyICLEkeG7jWMgY+G6pXUgaMOsbmggdOG7qyDEkeG7kWkgdMaw4bujbmcgYmxvYiDEkcOjIGNobyIKKworIzogYnVpbHRpbi9jb25maWcuYzo1OAogbXNnaWQgIkFjdGlvbiIKIG1zZ3N0ciAiSMOgbmggxJHhu5luZyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NworIzogYnVpbHRpbi9jb25maWcuYzo1OQogbXNnaWQgImdldCB2YWx1ZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJs4bqleSBnacOhLXRy4buLOiB0w6puIFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTgKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKIG1zZ2lkICJnZXQgYWxsIHZhbHVlczoga2V5IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImzhuqV5IHThuqV0IGPhuqMgZ2nDoS10cuG7izoga2jDs2EgW3ZhbHVlLXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OQorIzogYnVpbHRpbi9jb25maWcuYzo2MQogbXNnaWQgImdldCB2YWx1ZXMgZm9yIHJlZ2V4cDogbmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJs4bqleSBnacOhIHRy4buLIGNobyByZWdleHA6IG5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MAorIzogYnVpbHRpbi9jb25maWcuYzo2MgogbXNnaWQgInJlcGxhY2UgYWxsIG1hdGNoaW5nIHZhcmlhYmxlczogbmFtZSB2YWx1ZSBbdmFsdWVfcmVnZXhdIgogbXNnc3RyICJ0aGF5IHRo4bq/IHThuqV0IGPhuqMgY8OhYyBiaeG6v24ga2jhu5twIG3huqt1OiB0w6puIGdpw6EtdHLhu4sgW3ZhbHVlX3JlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MQorIzogYnVpbHRpbi9jb25maWcuYzo2MwogbXNnaWQgImFkZCBhIG5ldyB2YXJpYWJsZTogbmFtZSB2YWx1ZSIKIG1zZ3N0ciAidGjDqm0gYmnhur9uIG3hu5tpOiB0w6puIGdpw6EtdHLhu4siCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKIG1zZ2lkICJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJn4buhIGLhu48gYmnhur9uOiB0w6puIFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKIG1zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiZ+G7oSBi4buPIG3hu41pIGPDoWkga2jhu5twOiB0w6puIFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKIG1zZ2lkICJyZW5hbWUgc2VjdGlvbjogb2xkLW5hbWUgbmV3LW5hbWUiCiBtc2dzdHIgIsSR4buVaSB0w6puIGNoxrDGoW5nOiB0w6puLWPFqSB0w6puLW3hu5tpIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY1CisjOiBidWlsdGluL2NvbmZpZy5jOjY3CiBtc2dpZCAicmVtb3ZlIGEgc2VjdGlvbjogbmFtZSIKIG1zZ3N0ciAiZ+G7oSBi4buPIGNoxrDGoW5nOiB0w6puIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY2CisjOiBidWlsdGluL2NvbmZpZy5jOjY4CiBtc2dpZCAibGlzdCBhbGwiCiBtc2dzdHIgImxp4buHdCBrw6ogdOG6pXQiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKIG1zZ2lkICJvcGVuIGFuIGVkaXRvciIKIG1zZ3N0ciAibeG7nyBt4buZdCB0csOsbmggYmnDqm4gc2/huqFuIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4IGJ1aWx0aW4vY29uZmlnLmM6NjkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzAgYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgInNsb3QiCiBtc2dzdHIgImtoZSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2OAorIzogYnVpbHRpbi9jb25maWcuYzo3MAogbXNnaWQgImZpbmQgdGhlIGNvbG9yIGNvbmZpZ3VyZWQ6IFtkZWZhdWx0XSIKIG1zZ3N0ciAidMOsbSBj4bqldSBow6xuaCBtw6B1IHPhuq9jOiBbbeG6t2MgxJHhu4tuaF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKIG1zZ2lkICJmaW5kIHRoZSBjb2xvciBzZXR0aW5nOiBbc3Rkb3V0LWlzLXR0eV0iCiBtc2dzdHIgInTDrG0gY8OhYyBjw6BpIMSR4bq3dCB24buBIG3DoHUgc+G6r2M6IFtzdGRvdXQtbMOgLXR0eV0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzAKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzIKIG1zZ2lkICJUeXBlIgogbXNnc3RyICJLaeG7g3UiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKIG1zZ2lkICJ2YWx1ZSBpcyBcInRydWVcIiBvciBcImZhbHNlXCIiCiBtc2dzdHIgImdpw6EgdHLhu4sgbMOgIFwidHJ1ZVwiIGhv4bq3YyBcImZhbHNlXCIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzQKIG1zZ2lkICJ2YWx1ZSBpcyBkZWNpbWFsIG51bWJlciIKIG1zZ3N0ciAiZ2nDoSB0cuG7iyDhu58gZOG6oW5nIHPhu5EgdGjhuq1wIHBow6JuIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjczCisjOiBidWlsdGluL2NvbmZpZy5jOjc1CiBtc2dpZCAidmFsdWUgaXMgLS1ib29sIG9yIC0taW50IgogbXNnc3RyICJnacOhIHRy4buLIGzDoCAtLWJvb2wgaG/hurdjIC0taW50IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc0CisjOiBidWlsdGluL2NvbmZpZy5jOjc2CiBtc2dpZCAidmFsdWUgaXMgYSBwYXRoIChmaWxlIG9yIGRpcmVjdG9yeSBuYW1lKSIKIG1zZ3N0ciAiZ2nDoSB0cuG7iyBsw6AgxJHGsOG7nW5nIGThuqtuICh0w6puIHThuq1wIHRpbiBoYXkgdGjGsCBt4bulYykiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKIG1zZ2lkICJPdGhlciIKIG1zZ3N0ciAiS2jDoWMiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzgKIG1zZ2lkICJ0ZXJtaW5hdGUgdmFsdWVzIHdpdGggTlVMIGJ5dGUiCiBtc2dzdHIgImNo4bqlbSBk4bupdCBnacOhIHRy4buLIHbhu5tpIGJ5dGUgTlVMIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc3CisjOiBidWlsdGluL2NvbmZpZy5jOjc5CiBtc2dpZCAicmVzcGVjdCBpbmNsdWRlIGRpcmVjdGl2ZXMgb24gbG9va3VwIgogbXNnc3RyICJ0w7RuIHRy4buNbmcga+G7gyBjw6AgY8OhYyBoxrDhu5tuZyB0cm9uZyB0w6xtIGtp4bq/bSIKIApAQCAtNDQxOSw1NSArNDY2Miw1NSBAQAogbXNnaWQgInByaW50IHNpemVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm1hdCIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGvDrWNoIGPhu6EgdGhlbyDEkeG7i25oIGThuqFuZyBkw6BuaCBjaG8gbmfGsOG7nWkgxJHhu41jIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MTUKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNgogbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gPGNvbW1pdHRpc2g+KiIKIG1zZ3N0ciAiZ2l0IGRlc2NyaWJlIFtjw6FjLXTDuXktY2jhu41uXSA8Y29tbWl0dGlzaD4qIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNwogbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eSIKIG1zZ3N0ciAiZ2l0IGRlc2NyaWJlIFtjw6FjLXTDuXktY2jhu41uXSAtLWRpcnR5IgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjMzCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImFubm90YXRlZCB0YWcgJXMgbm90IGF2YWlsYWJsZSIKIG1zZ3N0ciAidGjhursgxJHDoyDEkcaw4bujYyBnaGkgY2jDuiAlcyBraMO0bmcgc+G6tW4gxJHhu4MgZMO5bmciCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBoYXMgbm8gZW1iZWRkZWQgbmFtZSIKIG1zZ3N0ciAidGjhursgxJHGsOG7o2MgY2jDuiBnaeG6o2kgJXMga2jDtG5nIGPDsyB0w6puIG5ow7puZyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzOQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBpcyByZWFsbHkgJyVzJyBoZXJlIgogbXNnc3RyICJ0aOG6uyDigJwlc+KAnSDEkcOjIHRo4buxYyBz4buxIOG7nyDEkcOieSDigJwlc+KAnSBy4buTaSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZSAlcyIKIG1zZ3N0ciAiS2jDtG5nIHBo4bqjaSB0w6puIMSR4buRaSB0xrDhu6NuZyAlcyBo4bujcCBs4buHIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjY5CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjczCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGlzIG5vdCBhIHZhbGlkICclcycgb2JqZWN0IgogbXNnc3RyICIlcyBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCDEkeG7kWkgdMaw4bujbmcg4oCcJXPigJ0gaOG7o3AgbOG7hyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI4NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0YWcgZXhhY3RseSBtYXRjaGVzICclcyciCiBtc2dzdHIgImtow7RuZyBjw7MgdGjhursgbsOgbyBraOG7m3AgY2jDrW5oIHjDoWMgduG7m2kg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyODgKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAic2VhcmNoaW5nIHRvIGRlc2NyaWJlICVzXG4iCiBtc2dzdHIgIsSQYW5nIHTDrG0ga2nhur9tIMSR4buDIG3DtCB04bqjICVzXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMjgKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmluaXNoZWQgc2VhcmNoIGF0ICVzXG4iCiBtc2dzdHIgInZp4buHYyB0w6xtIGtp4bq/bSDEkcOjIGvhur90IHRow7pjIHThuqFpICVzXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIGFubm90YXRlZCB0YWdzIGNhbiBkZXNjcmliZSAnJXMnLlxuIgpAQCAtNDQ3Niw3ICs0NzE5LDcgQEAKICJLaMO0bmcgY8OzIHRo4bq7IMSRxrDhu6NjIGNow7ogZ2nhuqNpIG7DoG8gxJHGsOG7o2MgbcO0IHThuqMgbMOgIOKAnCVz4oCdLlxuIgogIlR1eSBuaGnDqm4sIOG7nyDEkcOieSBjw7Mgbmjhu69uZyB0aOG6uyBraMO0bmcgxJHGsOG7o2MgY2jDuiBnaeG6o2k6IGjDo3kgdGjhu60gLS10YWdzLiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM2MwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiTm8gdGFncyBjYW4gZGVzY3JpYmUgJyVzJy5cbiIKQEAgLTQ0ODUsMTIgKzQ3MjgsMTIgQEAKICJLaMO0bmcgY8OzIHRo4bq7ICh0YWcpIGPDsyB0aOG7gyBtw7QgdOG6oyDigJwlc+KAnS5cbiIKICJIw6N5IHRo4butIC0tYWx3YXlzLCBob+G6t3QgdOG6oW8gbeG7mXQgc+G7kSB0aOG6uy4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNzcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJhdmVyc2VkICVsdSBjb21taXRzXG4iCiBtc2dzdHIgIsSRw6MgeHV5w6puICVsdSBxdWEgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KVxuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzgwCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6Mzg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJtb3JlIHRoYW4gJWkgdGFncyBmb3VuZDsgbGlzdGVkICVpIG1vc3QgcmVjZW50XG4iCkBAIC00NDk5LDU5ICs0NzQyLDYzIEBACiAidMOsbSB0aOG6pXkgbmhp4buBdSBoxqFuICVpIHRo4bq7ICh0YWcpOyDEkcOjIGxp4buHdCBrw6ogJWkgZ+G6p24gxJHDonkgbmjhuqV0XG4iCiAiYuG7jyDEkWkgdMOsbSBraeG6v20gdOG6oWkgJXNcbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwMgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwOQogbXNnaWQgImZpbmQgdGhlIHRhZyB0aGF0IGNvbWVzIGFmdGVyIHRoZSBjb21taXQiCiBtc2dzdHIgInTDrG0gY8OhYyB0aOG6uyBtw6AgbsOzIMSR4bq/biB0csaw4bubYyBs4bqnbiBjaHV54buDbiBnaWFvIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDAzCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEwCiBtc2dpZCAiZGVidWcgc2VhcmNoIHN0cmF0ZWd5IG9uIHN0ZGVyciIKIG1zZ3N0ciAiY2hp4bq/biBsxrDhu6NjIHTDrG0ga2nhur9tIHRyw6puIMSR4bqndSByYSBs4buXaSBjaHXhuqluIHN0ZGVyciIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMQogbXNnaWQgInVzZSBhbnkgcmVmIgogbXNnc3RyICJkw7luZyByZWYgYuG6pXQga+G7syIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMgogbXNnaWQgInVzZSBhbnkgdGFnLCBldmVuIHVuYW5ub3RhdGVkIgogbXNnc3RyICJkw7luZyB0aOG6uyBi4bqldCBr4buzLCBj4bqjIGtoaSDigJx1bmFubm90YXRlZOKAnSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMwogbXNnaWQgImFsd2F5cyB1c2UgbG9uZyBmb3JtYXQiCiBtc2dzdHIgImx1w7RuIGTDuW5nIMSR4buLbmggZOG6oW5nIGTDoGkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDkKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTQKK21zZ2lkICJvbmx5IGZvbGxvdyBmaXJzdCBwYXJlbnQiCittc2dzdHIgImNo4buJIHRoZW8gY2hhIG3hurkgxJHhuqd1IHRpw6puIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE3CiBtc2dpZCAib25seSBvdXRwdXQgZXhhY3QgbWF0Y2hlcyIKIG1zZ3N0ciAiY2jhu4kgeHXhuqV0IG5o4buvbmcgZ8OsIGto4bubcCBjaMOtbmggeMOhYyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxOQogbXNnaWQgImNvbnNpZGVyIDxuPiBtb3N0IHJlY2VudCB0YWdzIChkZWZhdWx0OiAxMCkiCiBtc2dzdHIgImNvaSBuaMawICA8bj4gdGjhursgZ+G6p24gxJHDonkgbmjhuqV0ICht4bq3YyDEkeG7i25oOiAxMCkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjEKIG1zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgogbXNnc3RyICJjaOG7iSBjw6JuIG5o4bqvYyDEkeG6v24gbmjhu69uZyB0aOG6uyBraOG7m3AgduG7m2kgIDxt4bqrdT4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTUgYnVpbHRpbi9uYW1lLXJldi5jOjIzOAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyMyBidWlsdGluL25hbWUtcmV2LmM6MzIyCiBtc2dpZCAic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIgogbXNnc3RyICJoaeG7g24gdGjhu4sgxJHhu5FpIHTGsOG7o25nIGNodXnhu4NuIGdpYW8gduG6r24gdOG6r3QgbmjGsCBsw6AgZmFsbGJhY2siCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjQKIG1zZ2lkICJtYXJrIgogbXNnc3RyICJk4bqldSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyNQogbXNnaWQgImFwcGVuZCA8bWFyaz4gb24gZGlydHkgd29ya2luZyB0cmVlIChkZWZhdWx0OiBcIi1kaXJ0eVwiKSIKIG1zZ3N0ciAidGjDqm0gPGThuqV1PiB0csOqbiBjw6J5IHRoxrAgbeG7pWMgbMOgbSB2aeG7h2MgYuG6qW4gKG3hurdjIMSR4buLbmggXCItZGlydHlcIikiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MzUKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0NDMKIG1zZ2lkICItLWxvbmcgaXMgaW5jb21wYXRpYmxlIHdpdGggLS1hYmJyZXY9MCIKIG1zZ3N0ciAiLS1sb25nIGzDoCB4dW5nIGto4bqvYyB24bubaSB0w7l5IGNo4buNbiAtLWFiYnJldj0wIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDYxCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDY5CiBtc2dpZCAiTm8gbmFtZXMgZm91bmQsIGNhbm5vdCBkZXNjcmliZSBhbnl0aGluZy4iCiBtc2dzdHIgIktow7RuZyB0w6xtIHRo4bqleSBjw6FjIHTDqm4sIGtow7RuZyB0aOG7gyBtw7QgdOG6oyBnw6wgY+G6oy4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODkKIG1zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdHRpc2hlcyIKIG1zZ3N0ciAiLS1kaXJ0eSBsw6AgeHVuZyBraOG6r2MgduG7m2kgY8OhYyB0w7l5IGNo4buNbiBkw6BuaCBjaG8gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSIKIApAQCAtNDU2MCwzMSArNDgwNywyNiBAQAogbXNnaWQgIiclcyc6IG5vdCBhIHJlZ3VsYXIgZmlsZSBvciBzeW1saW5rIgogbXNnc3RyICLigJwlc+KAnToga2jDtG5nIHBo4bqjaSB04bqtcCB0aW4gYsOsbmggdGjGsOG7nW5nIGhheSBsacOqbiBr4bq/dCB0xrDhu6NuZyB0csawbmciCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjIyOAorIzogYnVpbHRpbi9kaWZmLmM6MjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb3B0aW9uOiAlcyIKIG1zZ3N0ciAidMO5eSBjaOG7jW4gc2FpOiAlcyIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzA1CisjOiBidWlsdGluL2RpZmYuYzozMDcKIG1zZ2lkICJOb3QgYSBnaXQgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiS2jDtG5nIHBo4bqjaSBsw6Aga2hvIGdpdCIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzQ4CisjOiBidWlsdGluL2RpZmYuYzozNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBvYmplY3QgJyVzJyBnaXZlbi4iCiBtc2dzdHIgIsSR4buRaSB0xrDhu6NuZyDEkcOjIGNobyDigJwlc+KAnSBraMO0bmcgaOG7o3AgbOG7hy4iCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM1MwotIywgYy1mb3JtYXQKLW1zZ2lkICJtb3JlIHRoYW4gJWQgdHJlZXMgZ2l2ZW46ICclcyciCi1tc2dzdHIgIsSRw6MgY2jhu4kgcmEgbmhp4buBdSBoxqFuICVkIGPDonkgKHRyZWUpOiDigJwlc+KAnSIKLQotIzogYnVpbHRpbi9kaWZmLmM6MzYzCisjOiBidWlsdGluL2RpZmYuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9yZSB0aGFuIHR3byBibG9icyBnaXZlbjogJyVzJyIKIG1zZ3N0ciAixJHDoyBjaG8gbmhp4buBdSBoxqFuIGhhaSDEkeG7kWkgdMaw4bujbmcgYmxvYjog4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM3MQorIzogYnVpbHRpbi9kaWZmLmM6MzY2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuaGFuZGxlZCBvYmplY3QgJyVzJyBnaXZlbi4iCiBtc2dzdHIgIsSRw6MgY2hvIMSR4buRaSB0xrDhu6NuZyBraMO0bmcgdGjhu4MgbuG6r20gZ2nhu68g4oCcJXPigJ0uIgpAQCAtNDU5MywzOSArNDgzNSwzOSBAQAogbXNnaWQgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCiBtc2dzdHIgImdpdCBmYXN0LWV4cG9ydCBbcmV2LWxpc3Qtb3B0c10iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTgKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKIG1zZ2lkICJzaG93IHByb2dyZXNzIGFmdGVyIDxuPiBvYmplY3RzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgdGnhur9uIHRyaeG7g24gc2F1IDxuPiDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2Ygc2lnbmVkIHRhZ3MiCiBtc2dzdHIgImNo4buNbiDEkWnhu4F1IGtoaeG7g24gY+G7p2EgdGjhursgxJHDoyBrw70iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjMKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzEKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2YgdGFncyB0aGF0IHRhZyBmaWx0ZXJlZCBvYmplY3RzIgogbXNnc3RyICJjaOG7jW4gc+G7sSB44butIGzDvSBj4bunYSBjw6FjIHRo4bq7LCBjw6FpIG3DoCDEkcOhbmggdGjhursgY8OhYyDEkeG7kWkgdMaw4bujbmcgxJHGsOG7o2MgbOG7jWMgcmEiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKIG1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAixJDhu5UgY8OhYyDEkcOhbmggZOG6pXUgbsOgeSB2w6BvIHThuq1wLXRpbiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2OAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NgogbXNnaWQgIkltcG9ydCBtYXJrcyBmcm9tIHRoaXMgZmlsZSIKIG1zZ3N0ciAibmjhuq1wIHbDoG8gxJHDoW5oIGThuqV1IHThu6sgdOG6rXAgdGluIG7DoHkiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzgKIG1zZ2lkICJGYWtlIGEgdGFnZ2VyIHdoZW4gdGFncyBsYWNrIG9uZSIKIG1zZ3N0ciAiTMOgbSBnaeG6oyBt4buZdCBjw6FpIHRo4bq7IGtoaSB0aOG6uyBi4buLIHRoaeG6v3UgbeG7mXQgY8OhaSIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MgorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MAogbXNnaWQgIk91dHB1dCBmdWxsIHRyZWUgZm9yIGVhY2ggY29tbWl0IgogbXNnc3RyICJYdeG6pXQgcmEgdG/DoG4gYuG7mSBjw6J5IGNobyBt4buXaSBs4bqnbiBjaHV54buDbiBnaWFvIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgyCiBtc2dpZCAiVXNlIHRoZSBkb25lIGZlYXR1cmUgdG8gdGVybWluYXRlIHRoZSBzdHJlYW0iCiBtc2dzdHIgIlPhu60gZOG7pW5nIHTDrW5oIG7Eg25nIGRvbmUgxJHhu4MgY2jhuqVtIGThu6l0IGx14buTbmcgZOG7ryBsaeG7h3UiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKIG1zZ2lkICJTa2lwIG91dHB1dCBvZiBibG9iIGRhdGEiCiBtc2dzdHIgIkLhu48gcXVhIGvhur90IHh14bqldCBj4bunYSBk4buvIGxp4buHdSBibG9iIgogCkBAIC00NjQ3LDcgKzQ4ODksNyBAQAogCiAjOiBidWlsdGluL2ZldGNoLmM6NjAKIG1zZ2lkICJmZXRjaCBmcm9tIGFsbCByZW1vdGVzIgotbXNnc3RyICJmZXRjaCB04burIHThuqV0IGPhuqMgY8OhYyBtw6F5IGNo4bunIgorbXNnc3RyICJs4bqleSB24buBIHThu6sgdOG6pXQgY+G6oyBjw6FjIG3DoXkgY2jhu6ciCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo2MgogbXNnaWQgImFwcGVuZCB0byAuZ2l0L0ZFVENIX0hFQUQgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyIKQEAgLTQ2NjMsMTUgKzQ5MDUsMTUgQEAKIAogIzogYnVpbHRpbi9mZXRjaC5jOjY3CiBtc2dpZCAiZmV0Y2ggZnJvbSBtdWx0aXBsZSByZW1vdGVzIgotbXNnc3RyICJmZXRjaCB04burIG5oaeG7gXUgbcOheSBjaOG7pyBjw7luZyBsw7pjIgorbXNnc3RyICJs4bqleSB04burIG5oaeG7gXUgbcOheSBjaOG7pyBjw7luZyBsw7pjIgogCiAjOiBidWlsdGluL2ZldGNoLmM6NjkKIG1zZ2lkICJmZXRjaCBhbGwgdGFncyBhbmQgYXNzb2NpYXRlZCBvYmplY3RzIgotbXNnc3RyICJs4bqleSAoZmV0Y2gpIHThuqV0IGPhuqMgY8OhYyB0aOG6uyBjw7luZyB24bubaSBjw6FjIMSR4buRaSB0xrDhu6NuZyBsacOqbiBxdWFuIMSR4bq/biBuw7MiCittc2dzdHIgImzhuqV5IHThuqV0IGPhuqMgY8OhYyB0aOG6uyBjw7luZyB24bubaSBjw6FjIMSR4buRaSB0xrDhu6NuZyBsacOqbiBxdWFuIMSR4bq/biBuw7MiCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo3MQogbXNnaWQgImRvIG5vdCBmZXRjaCBhbGwgdGFncyAoLS1uby10YWdzKSIKLW1zZ3N0ciAia2jDtG5nIGzhuqV5IChmZXRjaCkgdOG6pXQgY+G6oyBjw6FjIHRo4bq7ICgtLW5vLXRhZ3MpIgorbXNnc3RyICJraMO0bmcgbOG6pXkgdOG6pXQgY+G6oyBjw6FjIHRo4bq7ICgtLW5vLXRhZ3MpIgogCiAjOiBidWlsdGluL2ZldGNoLmM6NzMKIG1zZ2lkICJwcnVuZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgbm8gbG9uZ2VyIG9uIHJlbW90ZSIKQEAgLTQ2ODUsNyArNDkyNyw3IEBACiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo3NQogbXNnaWQgImNvbnRyb2wgcmVjdXJzaXZlIGZldGNoaW5nIG9mIHN1Ym1vZHVsZXMiCi1tc2dzdHIgIsSRaeG7gXUga2hp4buDbiB2aeG7h2MgbOG6pXkgduG7gSAoZmV0Y2gpIMSR4buHIHF1eSB0cm9uZyBjw6FjIG3DtC3EkXVuLWNvbiIKK21zZ3N0ciAixJFp4buBdSBraGnhu4NuIHZp4buHYyBs4bqleSB24buBIMSR4buHIHF1eSB0cm9uZyBjw6FjIG3DtC3EkXVuLWNvbiIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjc5CiBtc2dpZCAia2VlcCBkb3dubG9hZGVkIHBhY2siCkBAIC00NjkzLDcgKzQ5MzUsNyBAQAogCiAjOiBidWlsdGluL2ZldGNoLmM6ODEKIG1zZ2lkICJhbGxvdyB1cGRhdGluZyBvZiBIRUFEIHJlZiIKLW1zZ3N0ciAiY2hvIHBow6lwIGPhuq1wIG5o4bqtdCByZWYgKHRoYW0gY2hp4bq/dSkgSEVBRCIKK21zZ3N0ciAiY2hvIHBow6lwIGPhuq1wIG5o4bqtdCB0aC5jaGnhur91IEhFQUQiCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo4NAogbXNnaWQgImRlZXBlbiBoaXN0b3J5IG9mIHNoYWxsb3cgY2xvbmUiCkBAIC00NzAzLDcgKzQ5NDUsNyBAQAogbXNnaWQgImNvbnZlcnQgdG8gYSBjb21wbGV0ZSByZXBvc2l0b3J5IgogbXNnc3RyICJjaHV54buDbiDEkeG7lWkgaG/DoG4gdG/DoG4gc2FuZyBraG8gZ2l0IgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTMwCisjOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTc3CiBtc2dpZCAiZGlyIgogbXNnc3RyICJ0beG7pWMiCiAKQEAgLTQ3MTUsNzYgKzQ5NTcsNzYgQEAKIG1zZ2lkICJkZWZhdWx0IG1vZGUgZm9yIHJlY3Vyc2lvbiIKIG1zZ3N0ciAiY2jhur8gxJHhu5kgbeG6t2MgxJHhu4tuaCBjaG8gxJHhu4cgcXVpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjA0CisjOiBidWlsdGluL2ZldGNoLmM6MjIwCiBtc2dpZCAiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiCiBtc2dzdHIgIktow7RuZyB0aOG7gyB0w6xtIHRo4bqleSBtw6F5IGNo4bunIGNobyB0aGFtIGNoaeG6v3UgSEVBRCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI1NworIzogYnVpbHRpbi9mZXRjaC5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgbm90IGZvdW5kIgogbXNnc3RyICJLaMO0bmcgdMOsbSB0aOG6pXkgxJHhu5FpIHTGsOG7o25nICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjYyCisjOiBidWlsdGluL2ZldGNoLmM6Mjc4CiBtc2dpZCAiW3VwIHRvIGRhdGVdIgogbXNnc3RyICJbxJHDoyBj4bqtcCBuaOG6rXRdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjc2CisjOiBidWlsdGluL2ZldGNoLmM6MjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiEgJS0qcyAlLSpzIC0+ICVzICAoY2FuJ3QgZmV0Y2ggaW4gY3VycmVudCBicmFuY2gpIgogbXNnc3RyICIhICUtKnMgJS0qcyAtPiAlcyAgKGtow7RuZyB0aOG7gyBmZXRjaCAobOG6pXkpIHbhu4EgbmjDoW5oIGhp4buHbiBow6BuaCkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNzcgYnVpbHRpbi9mZXRjaC5jOjM2MworIzogYnVpbHRpbi9mZXRjaC5jOjI5MyBidWlsdGluL2ZldGNoLmM6Mzc5CiBtc2dpZCAiW3JlamVjdGVkXSIKIG1zZ3N0ciAiW0Lhu4sgdOG7qyBjaOG7kWldIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjg4CisjOiBidWlsdGluL2ZldGNoLmM6MzA0CiBtc2dpZCAiW3RhZyB1cGRhdGVdIgogbXNnc3RyICJbY+G6rXAgbmjhuq10IHRo4bq7XSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI5MCBidWlsdGluL2ZldGNoLmM6MzI1IGJ1aWx0aW4vZmV0Y2guYzozNDMKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDYgYnVpbHRpbi9mZXRjaC5jOjM0MSBidWlsdGluL2ZldGNoLmM6MzU5CiBtc2dpZCAiICAodW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYpIgogbXNnc3RyICIgIChraMO0bmcgdGjhu4MgY+G6rXAgbmjhuq10IHRoYW0gY2hp4bq/dSAocmVmKSBu4buZaSBi4buZKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMwOAorIzogYnVpbHRpbi9mZXRjaC5jOjMyNAogbXNnaWQgIltuZXcgdGFnXSIKIG1zZ3N0ciAiW3Ro4bq7IG3hu5tpXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMxMQorIzogYnVpbHRpbi9mZXRjaC5jOjMyNwogbXNnaWQgIltuZXcgYnJhbmNoXSIKIG1zZ3N0ciAiW25ow6FuaCBt4bubaV0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMzAKIG1zZ2lkICJbbmV3IHJlZl0iCiBtc2dzdHIgIltyZWYgKHRoYW0gY2hp4bq/dSkgbeG7m2ldIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6Mzc1CiBtc2dpZCAidW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBj4bqtcCBuaOG6rXQgdGhhbSBjaGnhur91IChyZWYpIG7hu5lpIGLhu5kiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNTkKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKIG1zZ2lkICJmb3JjZWQgdXBkYXRlIgogbXNnc3RyICJjxrDhu6FuZyBi4bupYyBj4bqtcCBuaOG6rXQiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNjUKKyM6IGJ1aWx0aW4vZmV0Y2guYzozODEKIG1zZ2lkICIobm9uLWZhc3QtZm9yd2FyZCkiCiBtc2dzdHIgIihub24tZmFzdC1mb3J3YXJkKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM5NiBidWlsdGluL2ZldGNoLmM6Njg4CisjOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzXG4iCiBtc2dzdHIgImtow7RuZyB0aOG7gyBt4bufICVzOiAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDA1CisjOiBidWlsdGluL2ZldGNoLmM6NDIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHNcbiIKIG1zZ3N0ciAiJXMgxJHDoyBraMO0bmcgZ+G7rWkgdOG6pXQgY+G6oyBjw6FjIMSR4buRaSB0xrDhu6NuZyBj4bqnbiB0aGnhur90XG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo0OTEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRnJvbSAlLipzXG4iCiBtc2dzdHIgIlThu6sgJS4qc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTAyCisjOiBidWlsdGluL2ZldGNoLmM6NTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJzb21lIGxvY2FsIHJlZnMgY291bGQgbm90IGJlIHVwZGF0ZWQ7IHRyeSBydW5uaW5nXG4iCkBAIC00NzkzLDU3ICs1MDM1LDU3IEBACiAibeG7mXQgc+G7kSB0aGFtIGNoaeG6v3UgKHJlZnMpIG7hu5lpIGLhu5kga2jDtG5nIHRo4buDIMSRxrDhu6NjIGPhuq1wIG5o4bqtdDsgaMOjeSB0aOG7rSBjaOG6oXlcbiIKICIg4oCcZ2l0IHJlbW90ZSBwcnVuZSAlc+KAnSDEkeG7gyBi4buPIMSRaSBuaOG7r25nIG5ow6FuaCBjxaksIGhheSBi4buLIHh1bmcgxJHhu5l0IgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTUyCisjOiBidWlsdGluL2ZldGNoLmM6NTgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyB3aWxsIGJlY29tZSBkYW5nbGluZykiCiBtc2dzdHIgIiAgICglcyBz4bq9IHRy4bufIHRow6BuaCBraMO0bmcgxJHhuqd1IChraMO0bmcgxJHGsOG7o2MgcXXhuqNuIGzDvSkpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTUzCisjOiBidWlsdGluL2ZldGNoLmM6NTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyBoYXMgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAgKCVzIMSRw6MgdHLhu58gdGjDoG5oIGtow7RuZyDEkeG6p3UgKGtow7RuZyDEkcaw4bujYyBxdeG6o24gbMO9KSkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODkKIG1zZ2lkICJbZGVsZXRlZF0iCiBtc2dzdHIgIlvEkcOjIHjDs2FdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTYxIGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQorIzogYnVpbHRpbi9mZXRjaC5jOjU5MCBidWlsdGluL3JlbW90ZS5jOjEwNTUKIG1zZ2lkICIobm9uZSkiCiBtc2dzdHIgIihraMO0bmcpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Njc4CisjOiBidWlsdGluL2ZldGNoLmM6NzA4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlZnVzaW5nIHRvIGZldGNoIGludG8gY3VycmVudCBicmFuY2ggJXMgb2Ygbm9uLWJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogIlThu6sgY2jhu5FpIHZp4buHYyBs4bqleSAoZmV0Y2gpIHbDoG8gdHJvbmcgbmjDoW5oIGhp4buHbiB04bqhaSAlcyBj4bunYSBt4buZdCBraG8gY2jhu6lhIGtow7RuZyAiCiAicGjhuqNpIGtobyB0cuG6p24gKGJhcmUpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzEyCisjOiBidWlsdGluL2ZldGNoLmM6NzQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGZldGNoIGZyb20gJXMiCi1tc2dzdHIgIktow7RuZyBiaeG6v3QgbMOgbSBjw6FjaCBuw6BvIMSR4buDIGzhuqV5IHbhu4EgKGZldGNoKSB04burICVzIgorbXNnc3RyICJLaMO0bmcgYmnhur90IGzDoG0gY8OhY2ggbsOgbyDEkeG7gyBs4bqleSB24buBIHThu6sgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3ODkKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3B0aW9uIFwiJXNcIiB2YWx1ZSBcIiVzXCIgaXMgbm90IHZhbGlkIGZvciAlcyIKIG1zZ3N0ciAiVMO5eSBjaOG7jW4gXCIlc1wiIGPDsyBnacOhIHRy4buLIFwiJXNcIiBsw6Aga2jDtG5nIGjhu6NwIGzhu4cgY2hvICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzkyCisjOiBidWlsdGluL2ZldGNoLmM6ODI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgaXMgaWdub3JlZCBmb3IgJXNcbiIKIG1zZ3N0ciAiVMO5eSBjaOG7jW4gXCIlc1wiIGLhu4sgYuG7jyBxdWEgduG7m2kgJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg5NAorIzogYnVpbHRpbi9mZXRjaC5jOjkyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJGZXRjaGluZyAlc1xuIgotbXNnc3RyICLEkGFuZyBs4bqleSAoZmV0Y2gpICVzXG4iCittc2dzdHIgIsSQYW5nIGzhuqV5IHbhu4EgJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg5NiBidWlsdGluL3JlbW90ZS5jOjEwMAorIzogYnVpbHRpbi9mZXRjaC5jOjkzMCBidWlsdGluL3JlbW90ZS5jOjEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmV0Y2ggJXMiCi1tc2dzdHIgImtow7RuZyB0aOG7gyBmZXRjaCAobOG6pXkpICVzIgorbXNnc3RyICJraMO0bmcgdGjhu4MgbOG6pXkgduG7gSAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkxNQorIzogYnVpbHRpbi9mZXRjaC5jOjk0OQogbXNnaWQgIiIKICJObyByZW1vdGUgcmVwb3NpdG9yeSBzcGVjaWZpZWQuICBQbGVhc2UsIHNwZWNpZnkgZWl0aGVyIGEgVVJMIG9yIGFcbiIKICJyZW1vdGUgbmFtZSBmcm9tIHdoaWNoIG5ldyByZXZpc2lvbnMgc2hvdWxkIGJlIGZldGNoZWQuIgpAQCAtNDg1MSwzMiArNTA5MywzMiBAQAogIkNoxrBhIGNo4buJIHJhIGtobyBjaOG7qWEgbcOheSBjaOG7py4gIFhpbiBow6N5IGNo4buJIMSR4buLbmggaG/hurdjIGzDoCBVUkwgaG/hurdjXG4iCiAidMOqbiBtw6F5IGNo4bunIHThu6sgY8OhaSBtw6Agbmjhu69uZyDEkWnhu4NtIHjDqXQgZHV54buHdCBt4bubaSBjw7MgdGjhu4MgxJHGsOG7o2MgZmV0Y2ggKGzhuqV5IHbhu4EpLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkzNQorIzogYnVpbHRpbi9mZXRjaC5jOjk2OQogbXNnaWQgIllvdSBuZWVkIHRvIHNwZWNpZnkgYSB0YWcgbmFtZS4iCiBtc2dzdHIgIkLhuqFuIHBo4bqjaSDEkeG7i25oIHLDtSB0w6puIHRo4bq7LiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjk4MQorIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKIG1zZ2lkICItLWRlcHRoIGFuZCAtLXVuc2hhbGxvdyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAidMO5eSBjaOG7jW4gLS1kZXB0aCB2w6AgLS11bnNoYWxsb3cga2jDtG5nIHRo4buDIHPhu60gZOG7pW5nIGPDuW5nIHbhu5tpIG5oYXUiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE3CiBtc2dpZCAiLS11bnNoYWxsb3cgb24gYSBjb21wbGV0ZSByZXBvc2l0b3J5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tdW5zaGFsbG93IHRyw6puIGtobyBob8OgbiBjaOG7iW5oIGzDoCBraMO0bmcgaOG7o3AgbMO9IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAwMgorIzogYnVpbHRpbi9mZXRjaC5jOjEwMzYKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCB0YWtlIGEgcmVwb3NpdG9yeSBhcmd1bWVudCIKIG1zZ3N0ciAibOG7h25oIGzhuqV5IHbhu4EgXCJmZXRjaCAtLWFsbFwiIGtow7RuZyBs4bqleSDEkeG7kWkgc+G7kSBraG8gY2jhu6lhIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAwNAorIzogYnVpbHRpbi9mZXRjaC5jOjEwMzgKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCBtYWtlIHNlbnNlIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgImzhu4duaCBs4bqleSB24buBIFwiZmV0Y2ggLS1hbGxcIiBraMO0bmcgaOG7o3AgbMO9IHbhu5tpIHJlZnNwZWNzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAxNQorIzogYnVpbHRpbi9mZXRjaC5jOjEwNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gc3VjaCByZW1vdGUgb3IgcmVtb3RlIGdyb3VwOiAlcyIKIG1zZ3N0ciAia2jDtG5nIGPDsyBuaMOzbSBtw6F5IGNo4bunIGhheSBtw6F5IGNo4bunIG5oxrAgdGjhur86ICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAyMworIzogYnVpbHRpbi9mZXRjaC5jOjEwNTcKIG1zZ2lkICJGZXRjaGluZyBhIGdyb3VwIGFuZCBzcGVjaWZ5aW5nIHJlZnNwZWNzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIlZp4buHYyBs4bqleSB24buBIGPhuqMgbeG7mXQgbmjDs20gdsOgIGNo4buJIMSR4buLbmggcmVmc3BlY3Mga2jDtG5nIGjhu6NwIGzDvSIKIApAQCAtNDg4NSw5ICs1MTI3LDkgQEAKIG1zZ3N0ciAiIgogImdpdCBmbXQtbWVyZ2UtbXNnIFstbSA8dGjDtG5nIMSRaeG7h3A+XSBbLS1sb2dbPTxuPl18LS1uby1sb2ddIFstLWZpbGUgPHThuq1wLXRpbj5dIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjMgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY2IGJ1aWx0aW4vZ3JlcC5jOjcwMQotIzogYnVpbHRpbi9tZXJnZS5jOjE4OCBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKLSM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzMgcGFyc2Utb3B0aW9ucy5oOjIzOQorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMgYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc5CisjOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyNDMKIG1zZ2lkICJuIgogbXNnc3RyICJuIgogCkBAIC01MDQ3LDIyMyArNTI4OSwyMjMgQEAKIG1zZ2lkICJncmVwOiBmYWlsZWQgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgImdyZXA6IGfhurdwIGzhu5dpIHThuqFvIHR1eeG6v24gKHRocmVhZCk6ICVzIgogCi0jOiBidWlsdGluL2dyZXAuYzozNjUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjM2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY2hkaXI6ICVzIgogbXNnc3RyICJH4bq3cCBs4buXaSB24bubaSBs4buHbmggY2hkaXI6ICVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo0NDMgYnVpbHRpbi9ncmVwLmM6NDc4CisjOiBidWlsdGluL2dyZXAuYzo0NDIgYnVpbHRpbi9ncmVwLmM6NDc3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyBjw6J5ICglcykiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MworIzogYnVpbHRpbi9ncmVwLmM6NDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBncmVwIGZyb20gb2JqZWN0IG9mIHR5cGUgJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB0aOG7sWMgaGnhu4duIGzhu4duaCBncmVwIChs4buNYyB0w6xtKSB04burIMSR4buRaSB0xrDhu6NuZyB0aHXhu5ljIGtp4buDdSAlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NTUxCisjOiBidWlsdGluL2dyZXAuYzo1NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAic3dpdGNoIGAlYycgZXhwZWN0cyBhIG51bWVyaWNhbCB2YWx1ZSIKIG1zZ3N0ciAiY2h1eeG7g24gxJHhur9uIOKAnCVj4oCdIGPhuqduIG3hu5l0IGdpw6EgdHLhu4sgYuG6sW5nIHPhu5EiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU2OAorIzogYnVpbHRpbi9ncmVwLmM6NTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICclcyciCiBtc2dzdHIgImtow7RuZyBt4bufIMSRxrDhu6NjIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0MgogbXNnaWQgInNlYXJjaCBpbiBpbmRleCBpbnN0ZWFkIG9mIGluIHRoZSB3b3JrIHRyZWUiCiBtc2dzdHIgInTDrG0gdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjIHRoYXkgdsOsIHRyb25nIGPDonkgbMOgbSB2aeG7h2MiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0NQorIzogYnVpbHRpbi9ncmVwLmM6NjQ0CiBtc2dpZCAiZmluZCBpbiBjb250ZW50cyBub3QgbWFuYWdlZCBieSBnaXQiCiBtc2dzdHIgInTDrG0gdHJvbmcgbuG7mWkgZHVuZyBraMO0bmcgxJHGsOG7o2MgcXXhuqNuIGzDvSBi4bufaSBnaXQiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0NworIzogYnVpbHRpbi9ncmVwLmM6NjQ2CiBtc2dpZCAic2VhcmNoIGluIGJvdGggdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgogbXNnc3RyICJ0w6xtIGtp4bq/bSBjw6FjIHThuq1wIHRpbiDEkcaw4bujYyB2w6AgY2jGsGEgxJHGsOG7o2MgdGhlbyBkw7VpIGThuqV1IHbhur90IgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0OAogbXNnaWQgInNlYXJjaCBhbHNvIGluIGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgInTDrG0gY+G6oyB0cm9uZyBjw6FjIHThuq1wIHRpbiDEkcOjIGLhu4sgbOG7nSDEkWkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1MgorIzogYnVpbHRpbi9ncmVwLmM6NjUxCiBtc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyAgbmjhu69uZyBkw7JuZyBraMO0bmcga2jhu5twIHbhu5tpIG3huqt1IgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1MwogbXNnaWQgImNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmciCiBtc2dzdHIgInBow6JuIGJp4buHdCBjaOG7ryBob2EvdGjGsOG7nW5nIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1NQogbXNnaWQgIm1hdGNoIHBhdHRlcm5zIG9ubHkgYXQgd29yZCBib3VuZGFyaWVzIgogbXNnc3RyICJjaOG7iSBraOG7m3AgbeG6q3UgdOG6oWkgxJHGsOG7nW5nIHJhbmggZ2nhu5tpIHThu6siCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1OAorIzogYnVpbHRpbi9ncmVwLmM6NjU3CiBtc2dpZCAicHJvY2VzcyBiaW5hcnkgZmlsZXMgYXMgdGV4dCIKIG1zZ3N0ciAieOG7rSBsw70gdOG6rXAgdGluIG5o4buLIHBow6JuIG5oxrAgbMOgIGThuqFuZyB2xINuIGLhuqNuIHRoxrDhu51uZyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjYwCisjOiBidWlsdGluL2dyZXAuYzo2NTkKIG1zZ2lkICJkb24ndCBtYXRjaCBwYXR0ZXJucyBpbiBiaW5hcnkgZmlsZXMiCiBtc2dzdHIgImtow7RuZyBraOG7m3AgbeG6q3UgdHJvbmcgY8OhYyB04bqtcCB0aW4gbmjhu4sgcGjDom4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2MworIzogYnVpbHRpbi9ncmVwLmM6NjYyCiBtc2dpZCAiZGVzY2VuZCBhdCBtb3N0IDxkZXB0aD4gbGV2ZWxzIgogbXNnc3RyICJnaeG6o20geHXhu5FuZyDDrXQgbmjhuqV0IG3hu6ljIDxzw6J1PiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjY3CisjOiBidWlsdGluL2dyZXAuYzo2NjYKIG1zZ2lkICJ1c2UgZXh0ZW5kZWQgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAiZMO5bmcgYmnhu4N1IHRo4bupYyBjaMOtbmggcXVpIFBPU0lYIGPDsyBt4bufIHLhu5luZyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjcwCisjOiBidWlsdGluL2dyZXAuYzo2NjkKIG1zZ2lkICJ1c2UgYmFzaWMgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyAoZGVmYXVsdCkiCiBtc2dzdHIgInPhu60gZOG7pW5nIGJp4buDdSB0aOG7qWMgY2jDrW5oIHF1eSBraeG7g3UgUE9TSVggKG3hurdjIMSR4buLbmgpIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3MgogbXNnaWQgImludGVycHJldCBwYXR0ZXJucyBhcyBmaXhlZCBzdHJpbmdzIgogbXNnc3RyICJkaeG7hW4gZOG7i2NoIGPDoWMgbeG6q3UgbmjGsCBsw6AgY2h14buXaSBj4buRIMSR4buLbmgiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3NgorIzogYnVpbHRpbi9ncmVwLmM6Njc1CiBtc2dpZCAidXNlIFBlcmwtY29tcGF0aWJsZSByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICJz4butIGThu6VuZyBiaeG7g3UgdGjhu6ljIGNow61uaCBxdXkgdMawxqFuZyB0aMOtY2ggUGVybCIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc5CisjOiBidWlsdGluL2dyZXAuYzo2NzgKIG1zZ2lkICJzaG93IGxpbmUgbnVtYmVycyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHPhu5EgY+G7p2EgZMOybmciCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAorIzogYnVpbHRpbi9ncmVwLmM6Njc5CiBtc2dpZCAiZG9uJ3Qgc2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgImtow7RuZyBoaeG7g24gdGjhu4sgdMOqbiB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MQorIzogYnVpbHRpbi9ncmVwLmM6NjgwCiBtc2dpZCAic2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHTDqm4gdOG6rXAgdGluIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgogbXNnaWQgInNob3cgZmlsZW5hbWVzIHJlbGF0aXZlIHRvIHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgImhp4buDbiB0aOG7iyB0w6puIHThuq1wIHRpbiB0xrDGoW5nIMSR4buRaSB24bubaSB0aMawIG3hu6VjIMSR4buJbmggKHRvcCkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NQorIzogYnVpbHRpbi9ncmVwLmM6Njg0CiBtc2dpZCAic2hvdyBvbmx5IGZpbGVuYW1lcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICJjaOG7iSBoaeG7g24gdGjhu4sgdMOqbiB04bqtcCB0aW4gdGhheSB2w6wgbmjhu69uZyBkw7JuZyBraOG7m3AgduG7m2kgbeG6q3UiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NworIzogYnVpbHRpbi9ncmVwLmM6Njg2CiBtc2dpZCAic3lub255bSBmb3IgLS1maWxlcy13aXRoLW1hdGNoZXMiCiBtc2dzdHIgIsSR4buTbmcgbmdoxKlhIHbhu5tpIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4OQogbXNnaWQgInNob3cgb25seSB0aGUgbmFtZXMgb2YgZmlsZXMgd2l0aG91dCBtYXRjaCIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIHTDqm4gY2hvIG5o4buvbmcgdOG6rXAgdGluIGtow7RuZyBraOG7m3AgduG7m2kgbeG6q3UiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MgorIzogYnVpbHRpbi9ncmVwLmM6NjkxCiBtc2dpZCAicHJpbnQgTlVMIGFmdGVyIGZpbGVuYW1lcyIKIG1zZ3N0ciAidGjDqm0gTlVMIHbDoG8gc2F1IHTDqm4gdOG6rXAgdGluIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MwogbXNnaWQgInNob3cgdGhlIG51bWJlciBvZiBtYXRjaGVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBz4buRIGzGsOG7o25nIGto4bubcCB0aGF5IHbDrCBuaOG7r25nIGTDsm5nIGto4bubcCB24bubaSBt4bqrdSIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk1CisjOiBidWlsdGluL2dyZXAuYzo2OTQKIG1zZ2lkICJoaWdobGlnaHQgbWF0Y2hlcyIKIG1zZ3N0ciAidMO0IHPDoW5nIGPDoWkga2jhu5twIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgogbXNnaWQgInByaW50IGVtcHR5IGxpbmUgYmV0d2VlbiBtYXRjaGVzIGZyb20gZGlmZmVyZW50IGZpbGVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgZMOybmcgdHLhu5FuZyBnaeG7r2EgY8OhYyBs4bqnbiBraOG7m3AgdOG7qyBjw6FjIHThuq1wIHRpbiBraMOhYyBiaeG7h3QiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5OQorIzogYnVpbHRpbi9ncmVwLmM6Njk4CiBtc2dpZCAic2hvdyBmaWxlbmFtZSBvbmx5IG9uY2UgYWJvdmUgbWF0Y2hlcyBmcm9tIHNhbWUgZmlsZSIKIG1zZ3N0ciAiIgogImhp4buDbiB0aOG7iyB0w6puIHThuq1wIHRpbiBt4buZdCBs4bqnbiBwaMOtYSB0csOqbiBjw6FjIGzhuqduIGto4bubcCB04burIGPDuW5nIG3hu5l0IHThuq1wIHRpbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzAyCisjOiBidWlsdGluL2dyZXAuYzo3MDEKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBhbmQgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIDxuPiBkw7JuZyBu4buZaSBkdW5nIHBow61hIHRyxrDhu5tjIHbDoCBzYXUgY8OhYyBs4bqnbiBraOG7m3AiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNQorIzogYnVpbHRpbi9ncmVwLmM6NzA0CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgbWF0Y2hlcyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIDxuPiBkw7JuZyBu4buZaSBkdW5nIHRyxrDhu5tjIGto4bubcCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA3CisjOiBidWlsdGluL2dyZXAuYzo3MDYKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyA8bj4gZMOybmcgbuG7mWkgZHVuZyBzYXUga2jhu5twIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNwogbXNnaWQgInNob3J0Y3V0IGZvciAtQyBOVU0iCiBtc2dzdHIgIkThuqFuZyB04bqvdCBjaG8gLUMgU+G7kCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzExCisjOiBidWlsdGluL2dyZXAuYzo3MTAKIG1zZ2lkICJzaG93IGEgbGluZSB3aXRoIHRoZSBmdW5jdGlvbiBuYW1lIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgZMOybmcgdsOzaSB0w6puIGjDoG0gdHLGsOG7m2MgY8OhYyBs4bqnbiBraOG7m3AiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMworIzogYnVpbHRpbi9ncmVwLmM6NzEyCiBtc2dpZCAic2hvdyB0aGUgc3Vycm91bmRpbmcgZnVuY3Rpb24iCiBtc2dzdHIgImhp4buDbiB0aOG7iyBow6BtIGJhbyBxdWFuaCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE2CisjOiBidWlsdGluL2dyZXAuYzo3MTUKIG1zZ2lkICJyZWFkIHBhdHRlcm5zIGZyb20gZmlsZSIKIG1zZ3N0ciAixJHhu41jIG3huqt1IHThu6sgdOG6rXAtdGluIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNwogbXNnaWQgIm1hdGNoIDxwYXR0ZXJuPiIKIG1zZ3N0ciAibWF0Y2ggPG3huqt1PiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzIwCisjOiBidWlsdGluL2dyZXAuYzo3MTkKIG1zZ2lkICJjb21iaW5lIHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIC1lIgogbXNnc3RyICJ04buVIGjhu6NwIG3huqt1IMSRxrDhu6NjIGNo4buJIHJhIHbhu5tpIHTDuXkgY2jhu41uIC1lIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczMQogbXNnaWQgImluZGljYXRlIGhpdCB3aXRoIGV4aXQgc3RhdHVzIHdpdGhvdXQgb3V0cHV0IgogbXNnc3RyICLEkcawYSByYSBn4bujaSDDvSB24bubaSB0cuG6oW5nIHRow6FpIHRob8OhdCBtw6Aga2jDtG5nIGPDsyBr4bq/dCB4deG6pXQiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczNAorIzogYnVpbHRpbi9ncmVwLmM6NzMzCiBtc2dpZCAic2hvdyBvbmx5IG1hdGNoZXMgZnJvbSBmaWxlcyB0aGF0IG1hdGNoIGFsbCBwYXR0ZXJucyIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIG5o4buvbmcgY8OhaSBraOG7m3AgdOG7qyB04bqtcCB0aW4gbcOgIG7DsyBraOG7m3AgdG/DoG4gYuG7mSBjw6FjIG3huqt1IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczNQogbXNnaWQgInNob3cgcGFyc2UgdHJlZSBmb3IgZ3JlcCBleHByZXNzaW9uIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OieSBwaMOibiB0w61jaCBjw7ogcGjDoXAgY2hvIGJp4buDdSB0aOG7qWMg4oCcZ3JlcOKAnSAodMOsbSBraeG6v20pIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczOQogbXNnaWQgInBhZ2VyIgogbXNnc3RyICJ0cmFuZyBnaeG6pXkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MAorIzogYnVpbHRpbi9ncmVwLmM6NzM5CiBtc2dpZCAic2hvdyBtYXRjaGluZyBmaWxlcyBpbiB0aGUgcGFnZXIiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiBraOG7m3AgdHJvbmcgdHJhbmcgZ2nhuqV5IgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MgogbXNnaWQgImFsbG93IGNhbGxpbmcgb2YgZ3JlcCgxKSAoaWdub3JlZCBieSB0aGlzIGJ1aWxkKSIKIG1zZ3N0ciAiY2hvIHBow6lwIGfhu41pIGdyZXAoMSkgKGLhu4sgYuG7jyBxdWEgYuG7n2kgbOG6p24gZOG7i2NoIG7DoHkpIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDQgYnVpbHRpbi9zaG93LXJlZi5jOjE4NAorIzogYnVpbHRpbi9ncmVwLmM6NzQzIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODgKIG1zZ2lkICJzaG93IHVzYWdlIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhY2ggZMO5bmciCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjgxMQorIzogYnVpbHRpbi9ncmVwLmM6ODEwCiBtc2dpZCAibm8gcGF0dGVybiBnaXZlbi4iCiBtc2dzdHIgImNoxrBhIGNo4buJIHJhIG3huqt1LiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODY2CisjOiBidWlsdGluL2dyZXAuYzo4NjUKIG1zZ2lkICItLW9wZW4tZmlsZXMtaW4tcGFnZXIgb25seSB3b3JrcyBvbiB0aGUgd29ya3RyZWUiCiBtc2dzdHIgIi0tb3Blbi1maWxlcy1pbi1wYWdlciBjaOG7iSBsw6BtIHZp4buHYyB0csOqbiBjw6J5LWzDoG0tdmnhu4djIgogCi0jOiBidWlsdGluL2dyZXAuYzo4ODkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg4OAogbXNnaWQgIi0tY2FjaGVkIG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1uby1pbmRleC4iCiBtc2dzdHIgIi0tY2FjaGVkIGhheSAtLXVudHJhY2tlZCBraMO0bmcgxJHGsOG7o2Mgc+G7rSBk4bulbmcgduG7m2kgLS1uby1pbmRleC4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NAorIzogYnVpbHRpbi9ncmVwLmM6ODkzCiBtc2dpZCAiLS1uby1pbmRleCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIHJldnMuIgogbXNnc3RyICIiCiAiLS1uby1pbmRleCBoYXkgLS11bnRyYWNrZWQga2jDtG5nIMSRxrDhu6NjIHPhu60gZOG7pW5nIGPDuW5nIHbhu5tpIGPDoWMgdMO5eSBjaOG7jW4gbGnDqm4gIgogInF1YW4gxJHhur9uIHJldnMuIgogCi0jOiBidWlsdGluL2dyZXAuYzo4OTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5NgogbXNnaWQgIi0tW25vLV1leGNsdWRlLXN0YW5kYXJkIGNhbm5vdCBiZSB1c2VkIGZvciB0cmFja2VkIGNvbnRlbnRzLiIKIG1zZ3N0ciAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQga2jDtG5nIHRo4buDIHPhu60gZOG7pW5nIGNobyBu4buZaSBkdW5nIGzGsHUgZOG6pXUgduG6v3QuIgogCi0jOiBidWlsdGluL2dyZXAuYzo5MDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjkwNAogbXNnaWQgImJvdGggLS1jYWNoZWQgYW5kIHRyZWVzIGFyZSBnaXZlbi4iCiBtc2dzdHIgImPhuqMgaGFpIC0tY2FjaGVkIHbDoCBjw6FjIGPDonkgcGjhuqNpIMSRxrDhu6NjIGNo4buJIHJhLiIKIApAQCAtNTMwMyw1NCArNTU0NSw1NCBAQAogbXNnaWQgInByb2Nlc3MgZmlsZSBhcyBpdCB3ZXJlIGZyb20gdGhpcyBwYXRoIgogbXNnc3RyICJ44butIGzDvSB04bqtcCB0aW4gbmjGsCBsw6AgbsOzIMSRYW5nIOG7nyB0aMawIG3hu6VjIG7DoHkiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQzCisjOiBidWlsdGluL2hlbHAuYzo0MQogbXNnaWQgInByaW50IGFsbCBhdmFpbGFibGUgY29tbWFuZHMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBkYW5oIHPDoWNoIGPDoWMgY8OidSBs4buHbmggbmfGsOG7nWkgZMO5bmcgY8OzIHRo4buDIHPhu60gZOG7pW5nIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NAorIzogYnVpbHRpbi9oZWxwLmM6NDIKIG1zZ2lkICJwcmludCBsaXN0IG9mIHVzZWZ1bCBndWlkZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBkYW5oIHPDoWNoIGPDoWMgaMaw4bubbmcgZOG6q24gaOG7r3UgZOG7pW5nIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NQorIzogYnVpbHRpbi9oZWxwLmM6NDMKIG1zZ2lkICJzaG93IG1hbiBwYWdlIgogbXNnc3RyICJoaeG7g24gdGjhu4sgdHJhbmcgbWFuIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NgorIzogYnVpbHRpbi9oZWxwLmM6NDQKIG1zZ2lkICJzaG93IG1hbnVhbCBpbiB3ZWIgYnJvd3NlciIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGjGsOG7m25nIGThuqtuIHPhu60gZOG7pW5nIHRyb25nIHRyw6xuaCBkdXnhu4d0IHdlYiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDgKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2CiBtc2dpZCAic2hvdyBpbmZvIHBhZ2UiCiBtc2dzdHIgImhp4buHbiB0cmFuZyBpbmZvIgogCi0jOiBidWlsdGluL2hlbHAuYzo1NAorIzogYnVpbHRpbi9oZWxwLmM6NTIKIG1zZ2lkICJnaXQgaGVscCBbLS1hbGxdIFstLWd1aWRlc10gWy0tbWFufC0td2VifC0taW5mb10gW2NvbW1hbmRdIgogbXNnc3RyICJnaXQgaGVscCBbLS1hbGxdIFstLWd1aWRlc10gWy0tbWFufC0td2VifC0taW5mb10gW2zhu4duaF0iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjY2CisjOiBidWlsdGluL2hlbHAuYzo2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaGVscCBmb3JtYXQgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIG5o4bqtbiByYSDEkeG7i25oIGThuqFuZyB0cuG7oyBnacO6cCDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9oZWxwLmM6OTQKKyM6IGJ1aWx0aW4vaGVscC5jOjkyCiBtc2dpZCAiRmFpbGVkIHRvIHN0YXJ0IGVtYWNzY2xpZW50LiIKIG1zZ3N0ciAiTOG7l2kga2jhu59pIGNo4bqheSBlbWFjc2NsaWVudC4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjEwNworIzogYnVpbHRpbi9oZWxwLmM6MTA1CiBtc2dpZCAiRmFpbGVkIHRvIHBhcnNlIGVtYWNzY2xpZW50IHZlcnNpb24uIgogbXNnc3RyICJH4bq3cCBs4buXaSBraGkgcGjDom4gdMOtY2ggcGhpw6puIGLhuqNuIGVtYWNzY2xpZW50LiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MTE1CisjOiBidWlsdGluL2hlbHAuYzoxMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZW1hY3NjbGllbnQgdmVyc2lvbiAnJWQnIHRvbyBvbGQgKDwgMjIpLiIKIG1zZ3N0ciAicGhpw6puIGLhuqNuIGPhu6dhIGVtYWNzY2xpZW50IOKAnCVk4oCdIHF1w6EgY8WpICg8IDIyKS4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjEzMyBidWlsdGluL2hlbHAuYzoxNjEgYnVpbHRpbi9oZWxwLmM6MTcwIGJ1aWx0aW4vaGVscC5jOjE3OAorIzogYnVpbHRpbi9oZWxwLmM6MTMxIGJ1aWx0aW4vaGVscC5jOjE1OSBidWlsdGluL2hlbHAuYzoxNjggYnVpbHRpbi9oZWxwLmM6MTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBleGVjICclcyc6ICVzIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgdGjhu7FjIHRoaSDigJwlc+KAnTogJXMiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjIxOAorIzogYnVpbHRpbi9oZWxwLmM6MjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICInJXMnOiBwYXRoIGZvciB1bnN1cHBvcnRlZCBtYW4gdmlld2VyLlxuIgpAQCAtNTM1OSw3ICs1NjAxLDcgQEAKICLigJwlc+KAnTogxJHGsOG7nW5nIGThuqtuIGtow7RuZyBo4buXIHRy4bujIGLhu5kgdHLDrG5oIGNoaeG6v3UgbWFuLlxuIgogIkjDo3kgY8OibiBuaOG6r2MgxJHhur9uIHZp4buHYyBz4butIGThu6VuZyDigJxtYW4uPHRvb2w+LmNtZOKAnSDEkeG7gyB0aGF5IHRo4bq/LiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MjMwCisjOiBidWlsdGluL2hlbHAuYzoyMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiclcyc6IGNtZCBmb3Igc3VwcG9ydGVkIG1hbiB2aWV3ZXIuXG4iCkBAIC01MzY4LDMzNSArNTYxMCwzMzUgQEAKICLigJwlc+KAnTogY21kIChs4buHbmgpIGjhu5cgdHLhu6MgYuG7mSB0csOsbmggY2hp4bq/dSBtYW4uXG4iCiAiSMOjeSBjw6JuIG5o4bqvYyDEkeG6v24gdmnhu4djIHPhu60gZOG7pW5nIOKAnG1hbi48dG9vbD4ucGF0aOKAnSDEkeG7gyB0aGF5IHRo4bq/LiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MzUxCisjOiBidWlsdGluL2hlbHAuYzozNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJzogdW5rbm93biBtYW4gdmlld2VyLiIKIG1zZ3N0ciAi4oCcJXPigJ06IGtow7RuZyByw7UgY2jGsMahbmcgdHLDrG5oIHhlbSBtYW4uIgogCi0jOiBidWlsdGluL2hlbHAuYzozNjgKKyM6IGJ1aWx0aW4vaGVscC5jOjM2NgogbXNnaWQgIm5vIG1hbiB2aWV3ZXIgaGFuZGxlZCB0aGUgcmVxdWVzdCIKIG1zZ3N0ciAia2jDtG5nIGPDsyB0csOsbmggeGVtIHRy4bujIGdpw7pwIGThuqFuZyBtYW5wYWdlIHRp4bq/cCBo4bujcCB24bubaSB5w6p1IGPhuqd1IgogCi0jOiBidWlsdGluL2hlbHAuYzozNzYKKyM6IGJ1aWx0aW4vaGVscC5jOjM3NAogbXNnaWQgIm5vIGluZm8gdmlld2VyIGhhbmRsZWQgdGhlIHJlcXVlc3QiCiBtc2dzdHIgImtow7RuZyBjw7MgdHLDrG5oIHhlbSB0cuG7oyBnacO6cCBk4bqhbmcgaW5mbyB0aeG6v3AgaOG7o3AgduG7m2kgecOqdSBj4bqndSIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDIyCisjOiBidWlsdGluL2hlbHAuYzo0MjAKIG1zZ2lkICJEZWZpbmluZyBhdHRyaWJ1dGVzIHBlciBwYXRoIgogbXNnc3RyICLEkOG7i25oIG5naMSpYSBjw6FjIHRodeG7mWMgdMOtbmggY2hvIG3hu5dpIMSRxrDhu51uZyBk4bqrbiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDIzCisjOiBidWlsdGluL2hlbHAuYzo0MjEKIG1zZ2lkICJBIEdpdCBnbG9zc2FyeSIKIG1zZ3N0ciAiVGh14bqtdCBuZ+G7ryBjaHV5w6puIG3DtG4gR2l0IgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjQKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMgogbXNnaWQgIlNwZWNpZmllcyBpbnRlbnRpb25hbGx5IHVudHJhY2tlZCBmaWxlcyB0byBpZ25vcmUiCi1tc2dzdHIgIkNo4buJIMSR4buLbmggY8OhYyB04bqtcCB0aW4gY2jGsGEgdGhlbyBkw7VpIGThuqV1IHbhur90IGLhu4sgYuG7jyBxdWEgbeG7mXQgY8OhY2ggY+G7kSDDvSIKK21zZ3N0ciAiQ2jhu4kgxJHhu4tuaCBjw6FjIHThuq1wIHRpbiBraMO0bmcgY+G6p24gdGhlbyBkw7VpIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjUKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMwogbXNnaWQgIkRlZmluaW5nIHN1Ym1vZHVsZSBwcm9wZXJ0aWVzIgogbXNnc3RyICLEkOG7i25oIG5naMSpYSB0aHXhu5ljIHTDrW5oIG3DtC3EkXVuLWNvbiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDI2CisjOiBidWlsdGluL2hlbHAuYzo0MjQKIG1zZ2lkICJTcGVjaWZ5aW5nIHJldmlzaW9ucyBhbmQgcmFuZ2VzIGZvciBHaXQiCiBtc2dzdHIgIkNo4buJIMSR4buLbmggxJFp4buDbSB4w6l0IGR1eeG7h3QgdsOgIHbDuW5nIGNobyBHaXQiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyNworIzogYnVpbHRpbi9oZWxwLmM6NDI1CiBtc2dpZCAiQSB0dXRvcmlhbCBpbnRyb2R1Y3Rpb24gdG8gR2l0IChmb3IgdmVyc2lvbiAxLjUuMSBvciBuZXdlcikiCi1tc2dzdHIgIkjGsOG7m25nIGThuqtuIGPDoWNoIGTDuW5nIEdpdCDhu58gbeG7qWMgY8ahIGLhuqNuIChkw6BuaCBjaG8gYuG6o24gMS41LjEgaGF5IG3hu5tpIGjGoW4pIgorbXNnc3RyICJIxrDhu5tuZyBk4bqrbiBjw6FjaCBkw7luZyBHaXQg4bufIG3hu6ljIGPGoSBi4bqjbiAoYuG6o24gMS41LjEgaGF5IG3hu5tpIGjGoW4pIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjgKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNgogbXNnaWQgIkFuIG92ZXJ2aWV3IG9mIHJlY29tbWVuZGVkIHdvcmtmbG93cyB3aXRoIEdpdCIKIG1zZ3N0ciAiVOG7lW5nIHF1YW4gduG7gSBsdeG7k25nIGPDtG5nIHZp4buHYyBraHV54bq/biBuZ2jhu4sgbsOqbiBkw7luZyB24bubaSBHaXQuIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NDAKKyM6IGJ1aWx0aW4vaGVscC5jOjQzOAogbXNnaWQgIlRoZSBjb21tb24gR2l0IGd1aWRlcyBhcmU6XG4iCiBtc2dzdHIgIkPDoWMgY2jhu4kgZOG6q24gY2h1bmcgduG7gSBjw6FjaCBkw7luZyBHaXQgbMOgOlxuIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NjIgYnVpbHRpbi9oZWxwLmM6NDc4CisjOiBidWlsdGluL2hlbHAuYzo0NjAgYnVpbHRpbi9oZWxwLmM6NDc2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVzYWdlOiAlcyVzIgogbXNnc3RyICJjw6FjaCBz4butIGThu6VuZzogJXMlcyIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDk0CisjOiBidWlsdGluL2hlbHAuYzo0OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiYGdpdCAlcycgaXMgYWxpYXNlZCB0byBgJXMnIgogbXNnc3RyICLigJxnaXQgJXPigJ0gxJHGsOG7o2MgxJHhurd0IGLDrSBkYW5oIHRow6BuaCDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxODQKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0IHR5cGUgbWlzbWF0Y2ggYXQgJXMiCiBtc2dzdHIgImtp4buDdSDEkeG7kWkgdMaw4bujbmcga2jDtG5nIGto4bubcCB04bqhaSAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjAyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyMDQKIG1zZ2lkICJvYmplY3Qgb2YgdW5leHBlY3RlZCB0eXBlIgogbXNnc3RyICLEkeG7kWkgdMaw4bujbmcgY+G7p2Ega2nhu4N1IGtow7RuZyBtb25nIMSR4bujaSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjM5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZpbGwgJWQgYnl0ZSIKIG1zZ2lkX3BsdXJhbCAiY2Fubm90IGZpbGwgJWQgYnl0ZXMiCiBtc2dzdHJbMF0gImtow7RuZyB0aOG7gyDEkWnhu4FuIHbDoG8gJWQgYnl0ZSIKIG1zZ3N0clsxXSAia2jDtG5nIHRo4buDIMSRaeG7gW4gdsOgbyAlZCBieXRlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NAogbXNnaWQgImVhcmx5IEVPRiIKIG1zZ3N0ciAiduG7q2EgxJHDum5nIGzDumMgRU9GIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NQogbXNnaWQgInJlYWQgZXJyb3Igb24gaW5wdXQiCiBtc2dzdHIgImzhu5dpIMSR4buNYyDhu58gxJHhuqd1IHbDoG8iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjY3CiBtc2dpZCAidXNlZCBtb3JlIGJ5dGVzIHRoYW4gd2VyZSBhdmFpbGFibGUiCiBtc2dzdHIgInPhu60gZOG7pW5nIG5oaeG7gXUgaMahbiBz4buRIGzGsOG7o25nIGJ5dGUgbcOgIG7DsyBz4bq1biBjw7MiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjc0CiBtc2dpZCAicGFjayB0b28gbGFyZ2UgZm9yIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiBvZmZfdCIKIG1zZ3N0ciAicGFjayBxdcOhIGzhu5tuIHNvIHbhu5tpIMSR4buLbmggbmdoxKlhIGhp4buHbiB04bqhaSBj4bunYSBraeG7g3Ugb2ZmX3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI4NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHThuqFvIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5NQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBwYWNrZmlsZSAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyBwYWNrZmlsZSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMDkKIG1zZ2lkICJwYWNrIHNpZ25hdHVyZSBtaXNtYXRjaCIKIG1zZ3N0ciAiY2jhu68ga8O9IGNobyBwYWNrIGtow7RuZyBraOG7m3AiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzExCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgdmVyc2lvbiAlPFBSSXUzMj4gdW5zdXBwb3J0ZWQiCiBtc2dzdHIgImtow7RuZyBo4buXIHRy4bujIHBoacOqbiBi4bqjbiBwYWNrICU8UFJJdTMyPiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzI0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMjkKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFjayBoYXMgYmFkIG9iamVjdCBhdCBvZmZzZXQgJWx1OiAlcyIKIG1zZ3N0ciAicGFjayBjw7MgxJHhu5FpIHTGsOG7o25nIHNhaSBraG/huqNuZyBiw7kgKG9mZnNldCkgJWx1OiAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDQ2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo0NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5mbGF0ZSByZXR1cm5lZCAlZCIKIG1zZ3N0ciAieOG6oyBuw6luIHRy4bqjIHbhu4EgJWQiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTAwCiBtc2dpZCAib2Zmc2V0IHZhbHVlIG92ZXJmbG93IGZvciBkZWx0YSBiYXNlIG9iamVjdCIKIG1zZ3N0ciAidHLDoG4gZ2nDoSB0cuG7iyBraG/huqNuZyBiw7kgY2hvIMSR4buRaSB0xrDhu6NuZyBkZWx0YSBjxqEgc+G7nyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTAzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDgKIG1zZ2lkICJkZWx0YSBiYXNlIG9mZnNldCBpcyBvdXQgb2YgYm91bmQiCiBtc2dzdHIgImtob+G6o25nIGLDuSBjxqEgc+G7nyBjaG8gZGVsdGEgbuG6sW0gbmdvw6BpIHBo4bqhbSB2aSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTExCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93biBvYmplY3QgdHlwZSAlZCIKIG1zZ3N0ciAia2jDtG5nIGhp4buDdSBraeG7g3UgxJHhu5FpIHTGsOG7o25nICVkIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NwogbXNnaWQgImNhbm5vdCBwcmVhZCBwYWNrIGZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBjaOG6oXkgaMOgbSBwcmVhZCBjaG8gdOG6rXAgdGluIHBhY2siCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZSBtaXNzaW5nIgogbXNnaWRfcGx1cmFsICJwcmVtYXR1cmUgZW5kIG9mIHBhY2sgZmlsZSwgJWx1IGJ5dGVzIG1pc3NpbmciCiBtc2dzdHJbMF0gInThuq1wIHRpbiBwYWNrIGLhu4sga+G6v3QgdGjDumMgc+G7m20sICVsdSBieXRlIGLhu4sgdGhp4bq/dSIKIG1zZ3N0clsxXSAidOG6rXAgdGluIHBhY2sgYuG7iyBr4bq/dCB0aMO6YyBz4bubbSwgJWx1IGJ5dGUgYuG7iyB0aGnhur91IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3NQogbXNnaWQgInNlcmlvdXMgaW5mbGF0ZSBpbmNvbnNpc3RlbmN5IgogbXNnc3RyICJz4buxIG3DonUgdGh14bqrbiB44bqjIG7DqW4gbmdoacOqbSB0cuG7jW5nIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjEgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY5MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzI0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY2IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY3MiBidWlsdGluL2luZGV4LXBhY2suYzo2OTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjcyOSBidWlsdGluL2luZGV4LXBhY2suYzo3MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiU0hBMSBDT0xMSVNJT04gRk9VTkQgV0lUSCAlcyAhIgogbXNnc3RyICJT4buwIFZBIENI4bqgTSBTSEExIMSQw4MgWOG6olkgUkEgVuG7mkkgJXMhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjQgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2OSBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE3MAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNjIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIGV4aXN0aW5nIG9iamVjdCAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyDEkeG7kWkgdMaw4bujbmcgxJHDoyB04buTbiB04bqhaSAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzQ0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBibG9iIG9iamVjdCAlcyIKIG1zZ3N0ciAixJHhu5FpIHTGsOG7o25nIGJsb2Iga2jDtG5nIGjhu6NwIGzhu4cgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc1OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgJXMiCiBtc2dzdHIgIiVzIGtow7RuZyBo4bujcCBs4buHIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2NgogbXNnaWQgIkVycm9yIGluIG9iamVjdCIKIG1zZ3N0ciAiTOG7l2kgdHJvbmcgxJHhu5FpIHTGsOG7o25nIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYWxsIGNoaWxkIG9iamVjdHMgb2YgJXMgYXJlIHJlYWNoYWJsZSIKIG1zZ3N0ciAiS2jDtG5nIHBo4bqjaSB04bqldCBj4bqjIGPDoWMgxJHhu5FpIHTGsOG7o25nIGNvbiBj4bunYSAlcyBsw6AgY8OzIHRo4buDIHbhu5tpIHThu5tpIMSRxrDhu6NjIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzMgYnVpbHRpbi9pbmRleC1wYWNrLmM6ODYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzggYnVpbHRpbi9pbmRleC1wYWNrLmM6ODY4CiBtc2dpZCAiZmFpbGVkIHRvIGFwcGx5IGRlbHRhIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgw6FwIGThu6VuZyBkZWx0YSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwOQogbXNnaWQgIlJlY2VpdmluZyBvYmplY3RzIgogbXNnc3RyICLEkGFuZyBuaOG6rW4gduG7gSBjw6FjIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwOQogbXNnaWQgIkluZGV4aW5nIG9iamVjdHMiCiBtc2dzdHIgIkPDoWMgxJHhu5FpIHTGsOG7o25nIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzNQogbXNnaWQgInBhY2sgaXMgY29ycnVwdGVkIChTSEExIG1pc21hdGNoKSIKIG1zZ3N0ciAicGFjayBi4buLIHNhaSBo4buPbmcgKFNIQTEga2jDtG5nIGto4bubcCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDAKIG1zZ2lkICJjYW5ub3QgZnN0YXQgcGFja2ZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBmc3RhdCBwYWNrZmlsZSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzOAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0MwogbXNnaWQgInBhY2sgaGFzIGp1bmsgYXQgdGhlIGVuZCIKIG1zZ3N0ciAicGFjayBjw7MgcGjhuqduIHRo4burYSDhu58gY3Xhu5FpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDU0CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSBpbiBwYXJzZV9wYWNrX29iamVjdHMoKSIKIG1zZ3N0ciAibOG7mW4geOG7mW4gaMahbiBj4bqjIMSRacOqbiBy4buTIGtoaSBjaOG6oXkgaMOgbSBwYXJzZV9wYWNrX29iamVjdHMoKSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA3MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA3NwogbXNnaWQgIlJlc29sdmluZyBkZWx0YXMiCiBtc2dzdHIgIsSQYW5nIHBow6JuIGdp4bqjaSBjw6FjIGRlbHRhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGhyZWFkOiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHThuqFvIHR1eeG6v246ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI5CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSIKIG1zZ3N0ciAibOG7mW4geOG7mW4gaMahbiBj4bqjIMSRacOqbiBy4buTIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBsZXRlZCB3aXRoICVkIGxvY2FsIG9iamVjdHMiCiBtc2dzdHIgIsSR4bqneSDEkeG7pyB24bubaSAlZCDEkeG7kWkgdMaw4bujbmcgbuG7mWkgYuG7mSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmV4cGVjdGVkIHRhaWwgY2hlY2tzdW0gZm9yICVzIChkaXNrIGNvcnJ1cHRpb24/KSIKIG1zZ3N0ciAiVOG7lW5nIGtp4buDbSB0cmEgdGFpbCBraMO0bmcgbmjGsCBtb25nIMSR4bujaSBjaG8gJXMgKMSRxKlhIGjhu49uZz8pIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTQ2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGEiCiBtc2dpZF9wbHVyYWwgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGFzIgogbXNnc3RyWzBdICJwYWNrIGPDsyAlZCBkZWx0YSBjaMawYSDEkcaw4bujYyBnaeG6o2kgcXV54bq/dCIKIG1zZ3N0clsxXSAicGFjayBjw7MgJWQgZGVsdGEgY2jGsGEgxJHGsOG7o2MgZ2nhuqNpIHF1eeG6v3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGRlZmxhdGUgYXBwZW5kZWQgb2JqZWN0ICglZCkiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB44bqjIMSR4buRaSB0xrDhu6NuZyBu4buRaSB0aMOqbSAoJWQpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjUwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImxvY2FsIG9iamVjdCAlcyBpcyBjb3JydXB0IgogbXNnc3RyICLEkeG7kWkgdMaw4bujbmcgbuG7mWkgYuG7mSAlcyBi4buLIGjhu49uZyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI3NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI3OQogbXNnaWQgImVycm9yIHdoaWxlIGNsb3NpbmcgcGFjayBmaWxlIgogbXNnc3RyICJn4bq3cCBs4buXaSB0cm9uZyBraGkgxJHDs25nIHThuq1wIHRpbiBwYWNrIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjg3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCB3cml0ZSBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGdoaSB04bqtcCB0aW4gZ2nhu68gbOG6oWkg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyOTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNsb3NlIHdyaXR0ZW4ga2VlcCBmaWxlICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkcOzbmcgdOG6rXAgdGluIGdp4buvIGzhuqFpIMSRw6MgxJHGsOG7o2MgZ2hpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzA4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzEzCiBtc2dpZCAiY2Fubm90IHN0b3JlIHBhY2sgZmlsZSIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGzGsHUgdOG6rXAgdGluIHBhY2siCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjQKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgaW5kZXggZmlsZSIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGzGsHUgdHLhu68gdOG6rXAgdGluIGdoaSBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgogbXNnc3RyICJzYWkgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIHRocmVhZHMgc3BlY2lmaWVkICglZCkiCiBtc2dzdHIgInPhu5EgdHV54bq/biBjaOG7iSByYSBraMO0bmcgaOG7o3AgbOG7hyAoJWQpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0aHJlYWRzIHN1cHBvcnQsIGlnbm9yaW5nICVzIgogbXNnc3RyICJraMO0bmcgaOG7lyB0cuG7oyDEkWEgdHV54bq/biwgYuG7jyBxdWEgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBmaWxlICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyBt4bufIHThuq1wIHRpbiBwYWNrIMSRw6Mgc+G6tW4gY8OzIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDIyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgaWR4IGZpbGUgZm9yICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyBt4bufIHThuq1wIHRpbiDigJxwYWNrIGlkeOKAnSBjaG8g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NjkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAibm9uIGRlbHRhOiAlZCBvYmplY3QiCiBtc2dpZF9wbHVyYWwgIm5vbiBkZWx0YTogJWQgb2JqZWN0cyIKIG1zZ3N0clswXSAia2jDtG5nIGRlbHRhOiAlZCDEkeG7kWkgdMaw4bujbmciCiBtc2dzdHJbMV0gImtow7RuZyBkZWx0YTogJWQgxJHhu5FpIHTGsOG7o25nIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDc2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0IgogbXNnaWRfcGx1cmFsICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdHMiCiBtc2dzdHJbMF0gImNoaeG7gXUgZMOgaSB4w61jaCA9ICVkOiAlbHUgxJHhu5FpIHTGsOG7o25nIgogbXNnc3RyWzFdICJjaGnhu4F1IGTDoGkgeMOtY2ggPSAlZDogJWx1IMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwOQogbXNnaWQgIkNhbm5vdCBjb21lIGJhY2sgdG8gY3dkIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgcXVheSBs4bqhaSBjd2QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NDcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTY2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTU3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgJXMiCiBtc2dzdHIgIiVzIHNhaSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5MAogbXNnaWQgIi0tZml4LXRoaW4gY2Fubm90IGJlIHVzZWQgd2l0aG91dCAtLXN0ZGluIgogbXNnc3RyICItLWZpeC10aGluIGtow7RuZyB0aOG7gyDEkcaw4bujYyBkw7luZyBtw6Aga2jDtG5nIGPDsyAtLXN0ZGluIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTg0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrZmlsZSBuYW1lICclcycgZG9lcyBub3QgZW5kIHdpdGggJy5wYWNrJyIKIG1zZ3N0ciAidMOqbiB04bqtcCB0aW4gcGFja2ZpbGUg4oCcJXPigJ0ga2jDtG5nIMSRxrDhu6NjIGvhur90IHRow7pjIGLhurFuZyDEkXXDtGkg4oCcLnBhY2vigJ0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTMKIG1zZ2lkICItLXZlcmlmeSB3aXRoIG5vIHBhY2tmaWxlIG5hbWUgZ2l2ZW4iCiBtc2dzdHIgImTDuW5nIHTDuXkgY2jhu41uIC0tdmVyaWZ5IG3DoCBraMO0bmcgxJHGsGEgcmEgdMOqbiBwYWNrZmlsZSIKIApAQCAtNTgzMiw3ICs2MDc0LDcgQEAKIG1zZ2lkICJzcGVjaWZ5IHRoYXQgdGhlIGdpdCByZXBvc2l0b3J5IGlzIHRvIGJlIHNoYXJlZCBhbW9uZ3N0IHNldmVyYWwgdXNlcnMiCiBtc2dzdHIgImNo4buJIHJhIGPDoWkgbcOgIGtobyBnaXQgxJHGsOG7o2MgY2hpYSBz4bq7IGdp4buvYSBuaGnhu4F1IG5nxrDhu51pIGTDuW5nIgogCi0jOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NworIzogYnVpbHRpbi9pbml0LWRiLmM6NDkzIGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzUKIG1zZ2lkICJiZSBxdWlldCIKIG1zZ3N0ciAiaW0gbOG6t25nIgogCkBAIC01ODY0LDI0MSArNjEwNiwyNTUgQEAKIG1zZ2lkICJDYW5ub3QgYWNjZXNzIHdvcmsgdHJlZSAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgdHJ1eSBj4bqtcCBjw6J5ICh0cmVlKSBsw6BtIHZp4buHYyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9sb2cuYzo0MAorIzogYnVpbHRpbi9sb2cuYzo0MQogbXNnaWQgImdpdCBsb2cgWzxvcHRpb25zPl0gWzxyZXZpc2lvbiByYW5nZT5dIFtbLS1dIDxwYXRoPi4uLl1cbiIKIG1zZ3N0ciAiZ2l0IGxvZyBbPGPDoWMtdMO5eS1jaOG7jW4+XSBbPHbDuW5nIHhlbSB4w6l0Pl0gW1stLV0gPMSRxrDhu51uZy1k4bqrbj4uLi5dXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NDEKKyM6IGJ1aWx0aW4vbG9nLmM6NDIKIG1zZ2lkICIgICBvcjogZ2l0IHNob3cgW29wdGlvbnNdIDxvYmplY3Q+Li4uIgogbXNnc3RyICIgIGhheTogZ2l0IHNob3cgW2PDoWMtdMO5eS1jaOG7jW5dIDzEkeG7kWktdMaw4bujbmc+Li4uIgogCi0jOiBidWlsdGluL2xvZy5jOjEwMworIzogYnVpbHRpbi9sb2cuYzoxMjQKIG1zZ2lkICJzdXBwcmVzcyBkaWZmIG91dHB1dCIKIG1zZ3N0ciAiY2jhurduIG3hu41pIGvhur90IHh14bqldCB04burIGRpZmYiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA0CisjOiBidWlsdGluL2xvZy5jOjEyNQogbXNnaWQgInNob3cgc291cmNlIgogbXNnc3RyICJoaeG7g24gdGjhu4sgbcOjIG5ndeG7k24iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA1CisjOiBidWlsdGluL2xvZy5jOjEyNgogbXNnaWQgIlVzZSBtYWlsIG1hcCBmaWxlIgogbXNnc3RyICJT4butIGThu6VuZyB04bqtcCB0aW4gw6FuaCB44bqhIHRoxrAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA2CisjOiBidWlsdGluL2xvZy5jOjEyNwogbXNnaWQgImRlY29yYXRlIG9wdGlvbnMiCiBtc2dzdHIgImPDoWMgdMO5eSBjaOG7jW4gdHJhbmcgdHLDrSIKIAotIzogYnVpbHRpbi9sb2cuYzoxOTkKKyM6IGJ1aWx0aW4vbG9nLmM6MjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZpbmFsIG91dHB1dDogJWQgJXNcbiIKIG1zZ3N0ciAiS+G6v3QgeHXhuqV0IGN14buRaSBjw7luZzogJWQgJXNcbiIKIAotIzogYnVpbHRpbi9sb2cuYzo0MjIgYnVpbHRpbi9sb2cuYzo1MTQKKyM6IGJ1aWx0aW4vbG9nLmM6NDUzIGJ1aWx0aW4vbG9nLmM6NTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIG9iamVjdCAlcyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4buNYyDEkeG7kWkgdMaw4bujbmcgJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NTM4CisjOiBidWlsdGluL2xvZy5jOjU2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIHR5cGU6ICVkIgogbXNnc3RyICJLaMO0bmcgbmjhuq1uIHJhIGtp4buDdTogJWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NjM4CisjOiBidWlsdGluL2xvZy5jOjY2OQogbXNnaWQgImZvcm1hdC5oZWFkZXJzIHdpdGhvdXQgdmFsdWUiCiBtc2dzdHIgImZvcm1hdC5oZWFkZXJzIGtow7RuZyBjw7MgZ2nDoSB0cuG7iyBj4bulIHRo4buDIgogCi0jOiBidWlsdGluL2xvZy5jOjcyMAorIzogYnVpbHRpbi9sb2cuYzo3NTEKIG1zZ2lkICJuYW1lIG9mIG91dHB1dCBkaXJlY3RvcnkgaXMgdG9vIGxvbmciCiBtc2dzdHIgInTDqm4gY+G7p2EgdGjGsCBt4bulYyBr4bq/dCB4deG6pXQgcXXDoSBkw6BpIgogCi0jOiBidWlsdGluL2xvZy5jOjczNgorIzogYnVpbHRpbi9sb2cuYzo3NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gcGF0Y2ggZmlsZSAlcyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIG3hu58gdOG6rXAgdGluIG1p4bq/bmcgdsOhOiAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzo3NTAKKyM6IGJ1aWx0aW4vbG9nLmM6NzgxCiBtc2dpZCAiTmVlZCBleGFjdGx5IG9uZSByYW5nZS4iCiBtc2dzdHIgIkPhuqduIGNow61uaCB4w6FjIG3hu5l0IHbDuW5nLiIKIAotIzogYnVpbHRpbi9sb2cuYzo3NTgKKyM6IGJ1aWx0aW4vbG9nLmM6Nzg5CiBtc2dpZCAiTm90IGEgcmFuZ2UuIgogbXNnc3RyICJLaMO0bmcgcGjhuqNpIGzDoCBt4buZdCB2w7luZy4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6ODYwCisjOiBidWlsdGluL2xvZy5jOjg5MQogbXNnaWQgIkNvdmVyIGxldHRlciBuZWVkcyBlbWFpbCBmb3JtYXQiCiBtc2dzdHIgIuKAnUNvdmVyIGxldHRlcuKAnSBj4bqnbiBjaG8gxJHhu4tuaCBk4bqhbmcgdGjGsCIKIAotIzogYnVpbHRpbi9sb2cuYzo5MzYKKyM6IGJ1aWx0aW4vbG9nLmM6OTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImluc2FuZSBpbi1yZXBseS10bzogJXMiCiBtc2dzdHIgImluLXJlcGx5LXRvIMSRacOqbiBy4buTOiAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzo5NjQKKyM6IGJ1aWx0aW4vbG9nLmM6OTk1CiBtc2dpZCAiZ2l0IGZvcm1hdC1wYXRjaCBbb3B0aW9uc10gWzxzaW5jZT4gfCA8cmV2aXNpb24gcmFuZ2U+XSIKIG1zZ3N0ciAiZ2l0IGZvcm1hdC1wYXRjaCBbY8OhYy10w7l5LWNo4buNbl0gWzxr4buDLXThu6s+IHwgPHbDuW5nLXhlbS14w6l0Pl0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTAwOQorIzogYnVpbHRpbi9sb2cuYzoxMDQwCiBtc2dpZCAiVHdvIG91dHB1dCBkaXJlY3Rvcmllcz8iCiBtc2dzdHIgIkhhaSB0aMawIG3hu6VjIGvhur90IHh14bqldD8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEwOAorIzogYnVpbHRpbi9sb2cuYzoxMTU1CiBtc2dpZCAidXNlIFtQQVRDSCBuL21dIGV2ZW4gd2l0aCBhIHNpbmdsZSBwYXRjaCIKIG1zZ3N0ciAiZMO5bmcgW1BBVENIIG4vbV0gbmdheSBj4bqjIHbhu5tpIG1p4bq/bmcgdsOhIMSRxqFuIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1OAogbXNnaWQgInVzZSBbUEFUQ0hdIGV2ZW4gd2l0aCBtdWx0aXBsZSBwYXRjaGVzIgogbXNnc3RyICJkw7luZyBbVsOBXSBuZ2F5IGPhuqMgduG7m2kgY8OhYyBtaeG6v25nIHbDoSBwaOG7qWMgdOG6oXAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExNQorIzogYnVpbHRpbi9sb2cuYzoxMTYyCiBtc2dpZCAicHJpbnQgcGF0Y2hlcyB0byBzdGFuZGFyZCBvdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBtaeG6v25nIHbDoSByYSDEkeG6p3UgcmEgY2h14bqpbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE3CisjOiBidWlsdGluL2xvZy5jOjExNjQKIG1zZ2lkICJnZW5lcmF0ZSBhIGNvdmVyIGxldHRlciIKIG1zZ3N0ciAidOG6oW8gYsOsIHRoxrAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExOQorIzogYnVpbHRpbi9sb2cuYzoxMTY2CiBtc2dpZCAidXNlIHNpbXBsZSBudW1iZXIgc2VxdWVuY2UgZm9yIG91dHB1dCBmaWxlIG5hbWVzIgogbXNnc3RyICJz4butIGThu6VuZyBjaOG7l2kgZMOjeSBz4buRIGThuqFuZyDEkcahbiBnaeG6o24gY2hvIHTDqm4gdOG6rXAtdGluIHh14bqldCByYSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTIwCisjOiBidWlsdGluL2xvZy5jOjExNjcKIG1zZ2lkICJzZngiCiBtc2dzdHIgInNmeCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTIxCisjOiBidWlsdGluL2xvZy5jOjExNjgKIG1zZ2lkICJ1c2UgPHNmeD4gaW5zdGVhZCBvZiAnLnBhdGNoJyIKIG1zZ3N0ciAic+G7rSBk4bulbmcgPHNmeD4gdGhheSBjaG8g4oCcLnBhdGNo4oCdIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjMKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3MAogbXNnaWQgInN0YXJ0IG51bWJlcmluZyBwYXRjaGVzIGF0IDxuPiBpbnN0ZWFkIG9mIDEiCiBtc2dzdHIgImLhuq90IMSR4bqndSDEkcOhbmggc+G7kSBtaeG6v25nIHbDoSB04burIDxuPiB0aGF5IHbDrCAxIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjUKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3MgogbXNnaWQgIm1hcmsgdGhlIHNlcmllcyBhcyBOdGggcmUtcm9sbCIKIG1zZ3N0ciAixJHDoW5oIGThuqV1IGNodeG7l2kgbuG7kWkgdGnhur9wIGThuqFuZyB0aOG7qS1OIHJlLXJvbGwiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNworIzogYnVpbHRpbi9sb2cuYzoxMTc0CiBtc2dpZCAiVXNlIFs8cHJlZml4Pl0gaW5zdGVhZCBvZiBbUEFUQ0hdIgogbXNnc3RyICJEw7luZyBbPHRp4buBbi104buRPl0gdGhheSBjaG8gW1bDgV0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzMAorIzogYnVpbHRpbi9sb2cuYzoxMTc3CiBtc2dpZCAic3RvcmUgcmVzdWx0aW5nIGZpbGVzIGluIDxkaXI+IgogbXNnc3RyICJsxrB1IGPDoWMgdOG6rXAgdGluIGvhur90IHF14bqjIHRyb25nIDx0Lm3hu6VjPiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMzCisjOiBidWlsdGluL2xvZy5jOjExODAKIG1zZ2lkICJkb24ndCBzdHJpcC9hZGQgW1BBVENIXSIKIG1zZ3N0ciAia2jDtG5nIHN0cmlwL2FkZCBbVsOBXSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM2CisjOiBidWlsdGluL2xvZy5jOjExODMKIG1zZ2lkICJkb24ndCBvdXRwdXQgYmluYXJ5IGRpZmZzIgogbXNnc3RyICJraMO0bmcga+G6v3QgeHXhuqV0IGRpZmYgKG5o4buvbmcga2jDoWMgYmnhu4d0KSBuaOG7iyBwaMOibiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM4CisjOiBidWlsdGluL2xvZy5jOjExODUKIG1zZ2lkICJkb24ndCBpbmNsdWRlIGEgcGF0Y2ggbWF0Y2hpbmcgYSBjb21taXQgdXBzdHJlYW0iCiBtc2dzdHIgImtow7RuZyBiYW8gZ+G7k20gbWnhur9uZyB2w6Ega2jhu5twIHbhu5tpIG3hu5l0IGzhuqduIGNodXnhu4NuIGdpYW8gdGjGsOG7o25nIG5ndeG7k24iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MAorIzogYnVpbHRpbi9sb2cuYzoxMTg3CiBtc2dpZCAic2hvdyBwYXRjaCBmb3JtYXQgaW5zdGVhZCBvZiBkZWZhdWx0IChwYXRjaCArIHN0YXQpIgogbXNnc3RyICJoaeG7g24gdGjhu4sgxJHhu4tuaCBk4bqhbmcgbWnhur9uZyB2w6EgdGhheSB2w6wgbeG6t2MgxJHhu4tuaCAobWnhur9uZyB2w6EgKyB0aOG7kW5nIGvDqikiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MgorIzogYnVpbHRpbi9sb2cuYzoxMTg5CiBtc2dpZCAiTWVzc2FnaW5nIgogbXNnc3RyICJM4budaSBuaOG6r24iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MworIzogYnVpbHRpbi9sb2cuYzoxMTkwCiBtc2dpZCAiaGVhZGVyIgogbXNnc3RyICLEkeG6p3UgxJHhu4EgdGjGsCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ0CisjOiBidWlsdGluL2xvZy5jOjExOTEKIG1zZ2lkICJhZGQgZW1haWwgaGVhZGVyIgogbXNnc3RyICJ0aMOqbSDEkeG6p3UgxJHhu4EgdGjGsCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ1IGJ1aWx0aW4vbG9nLmM6MTE0NworIzogYnVpbHRpbi9sb2cuYzoxMTkyIGJ1aWx0aW4vbG9nLmM6MTE5NAogbXNnaWQgImVtYWlsIgogbXNnc3RyICJ0aMawIMSRaeG7h24gdOG7rSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ1CisjOiBidWlsdGluL2xvZy5jOjExOTIKIG1zZ2lkICJhZGQgVG86IGhlYWRlciIKIG1zZ3N0ciAidGjDqm0gVG86IMSR4bqndSDEkeG7gSB0aMawIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NAogbXNnaWQgImFkZCBDYzogaGVhZGVyIgogbXNnc3RyICJ0aMOqbSBDYzogxJHhuqd1IMSR4buBIHRoxrAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0OQorIzogYnVpbHRpbi9sb2cuYzoxMTk2Cittc2dpZCAiaWRlbnQiCittc2dzdHIgInRo4buldCBs4buBIgorCisjOiBidWlsdGluL2xvZy5jOjExOTcKK21zZ2lkICJzZXQgRnJvbSBhZGRyZXNzIHRvIDxpZGVudD4gKG9yIGNvbW1pdHRlciBpZGVudCBpZiBhYnNlbnQpIgorbXNnc3RyICIiCisixJHhurd0IGDEkOG7i2EgY2jhu4kgZ+G7rWknIHRow6BuaCA8dGjhu6UgbOG7gT4gKGhv4bq3YyB0aOG7pXQgbOG7gSBuZ8aw4budaSBjb21taXQgbuG6v3UgYuG7jyBxdcOqbikiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5OQogbXNnaWQgIm1lc3NhZ2UtaWQiCiBtc2dzdHIgIm1lc3NhZ2UtaWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MAorIzogYnVpbHRpbi9sb2cuYzoxMjAwCiBtc2dpZCAibWFrZSBmaXJzdCBtYWlsIGEgcmVwbHkgdG8gPG1lc3NhZ2UtaWQ+IgogbXNnc3RyICJkw7luZyB0aMawIMSR4bqndSB0acOqbiDEkeG7gyB0cuG6oyBs4budaSA8bWVzc2FnZS1pZD4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MSBidWlsdGluL2xvZy5jOjExNTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMSBidWlsdGluL2xvZy5jOjEyMDQKIG1zZ2lkICJib3VuZGFyeSIKIG1zZ3N0ciAicmFuaCBnaeG7m2kiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MgorIzogYnVpbHRpbi9sb2cuYzoxMjAyCiBtc2dpZCAiYXR0YWNoIHRoZSBwYXRjaCIKIG1zZ3N0ciAixJHDrW5oIGvDqG0gbWnhur9uZyB2w6EiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1NQorIzogYnVpbHRpbi9sb2cuYzoxMjA1CiBtc2dpZCAiaW5saW5lIHRoZSBwYXRjaCIKIG1zZ3N0ciAiZMO5bmcgbWnhur9uZyB2w6EgbMOgbSBu4buZaSBkdW5nIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTkKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwOQogbXNnaWQgImVuYWJsZSBtZXNzYWdlIHRocmVhZGluZywgc3R5bGVzOiBzaGFsbG93LCBkZWVwIgogbXNnc3RyICJjaG8gcGjDqXAgbHXhu5NuZyBs4budaSBuaOG6r24sIGtp4buDdTog4oCcc2hhbGxvd+KAnSwg4oCcZGVlcOKAnSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTYxCisjOiBidWlsdGluL2xvZy5jOjEyMTEKIG1zZ2lkICJzaWduYXR1cmUiCiBtc2dzdHIgImNo4buvIGvDvSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTYyCisjOiBidWlsdGluL2xvZy5jOjEyMTIKIG1zZ2lkICJhZGQgYSBzaWduYXR1cmUiCiBtc2dzdHIgInRow6ptIGNo4buvIGvDvSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY0CisjOiBidWlsdGluL2xvZy5jOjEyMTQKIG1zZ2lkICJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIgogbXNnc3RyICJraMO0bmcgaGnhu4NuIHRo4buLIGPDoWMgdMOqbiB04bqtcCB0aW4gY+G7p2EgbWnhur9uZyB2w6EiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI0OAorIzogYnVpbHRpbi9sb2cuYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWRlbnQgbGluZTogJXMiCittc2dzdHIgImTDsm5nIHRo4buldCBs4buBIGtow7RuZyBo4bujcCBs4buHOiAlcyIKKworIzogYnVpbHRpbi9sb2cuYzoxMzAzCiBtc2dpZCAiLW4gYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgogbXNnc3RyICItbiB2w6AgIC1rIGxv4bqhaSB04burIGzhuqtuIG5oYXUuIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTMwNQogbXNnaWQgIi0tc3ViamVjdC1wcmVmaXggYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgogbXNnc3RyICItLXN1YmplY3QtcHJlZml4IHbDoCAtayB4dW5nIGto4bqvYyBuaGF1LiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjU4CisjOiBidWlsdGluL2xvZy5jOjEzMTMKIG1zZ2lkICItLW5hbWUtb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICItLW5hbWUtb25seSBraMO0bmcgaOG7o3AgbMO9IgogCi0jOiBidWlsdGluL2xvZy5jOjEyNjAKKyM6IGJ1aWx0aW4vbG9nLmM6MTMxNQogbXNnaWQgIi0tbmFtZS1zdGF0dXMgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiLS1uYW1lLXN0YXR1cyBraMO0bmcgaOG7o3AgbMO9IgogCi0jOiBidWlsdGluL2xvZy5jOjEyNjIKKyM6IGJ1aWx0aW4vbG9nLmM6MTMxNwogbXNnaWQgIi0tY2hlY2sgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiLS1jaGVjayBraMO0bmcgaOG7o3AgbMO9IgogCi0jOiBidWlsdGluL2xvZy5jOjEyODUKKyM6IGJ1aWx0aW4vbG9nLmM6MTM0MAogbXNnaWQgInN0YW5kYXJkIG91dHB1dCwgb3IgZGlyZWN0b3J5LCB3aGljaCBvbmU/IgogbXNnc3RyICLEkeG6p3UgcmEgY2h14bqpbiwgaGF5IHRoxrAgbeG7pWMsIGNo4buNbiBjw6FpIG7DoG8/IgogCi0jOiBidWlsdGluL2xvZy5jOjEyODcKKyM6IGJ1aWx0aW4vbG9nLmM6MTM0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgdOG6oW8gdGjGsCBt4bulYyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9sb2cuYzoxNDM1CisjOiBidWlsdGluL2xvZy5jOjE0OTAKIG1zZ2lkICJGYWlsZWQgdG8gY3JlYXRlIG91dHB1dCBmaWxlcyIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHThuqFvIGPDoWMgdOG6rXAgdGluIGvhur90IHh14bqldCIKIAotIzogYnVpbHRpbi9sb2cuYzoxNDg0CisjOiBidWlsdGluL2xvZy5jOjE1MzkKIG1zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKIG1zZ3N0ciAiZ2l0IGNoZXJyeSBbLXZdIFs8dGjGsOG7o25nLW5ndeG7k24+IFs8aGVhZD4gWzxnaeG7m2ktaOG6oW4+XV1dIgogCi0jOiBidWlsdGluL2xvZy5jOjE1MzkKKyM6IGJ1aWx0aW4vbG9nLmM6MTU5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ291bGQgbm90IGZpbmQgYSB0cmFja2VkIHJlbW90ZSBicmFuY2gsIHBsZWFzZSBzcGVjaWZ5IDx1cHN0cmVhbT4gbWFudWFsbHkuXG4iCkBAIC02MTA2LDEwMyArNjM2MiwxMDMgQEAKICJLaMO0bmcgdMOsbSB0aOG6pXkgbmjDoW5oIG3huqFuZyBi4buLIHRoZW8gduG6v3QsIGjDo3kgY2jhu4kgxJHhu4tuaCA8dGjGsOG7o25nLW5ndeG7k24+IG3hu5l0IGPDoWNoICIKICJ0aOG7pyBjw7RuZy5cbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNTUyIGJ1aWx0aW4vbG9nLmM6MTU1NCBidWlsdGluL2xvZy5jOjE1NjYKKyM6IGJ1aWx0aW4vbG9nLmM6MTYwNyBidWlsdGluL2xvZy5jOjE2MDkgYnVpbHRpbi9sb2cuYzoxNjIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gY29tbWl0ICVzIgogbXNnc3RyICJLaMO0bmcgaGnhu4N1IGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgJXMiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0MDIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0MDgKIG1zZ2lkICJnaXQgbHMtZmlsZXMgW29wdGlvbnNdIFs8ZmlsZT4uLi5dIgogbXNnc3RyICJnaXQgbHMtZmlsZXMgW2PDoWMtdMO5eS1jaOG7jW5dIFs8dOG6rXAtdGluPi4uLl0iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NTkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKIG1zZ2lkICJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIgogbXNnc3RyICJuaOG6rW4gZOG6oW5nIGPDoWMgdHLhuqFuZyB0aMOhaSB04bqtcCB0aW4gduG7m2kgdGjhursiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKIG1zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKIG1zZ3N0ciAiIgogImTDuW5nIGNo4buvIGPDoWkgdmnhur90IHRoxrDhu51uZyBjaG8gY8OhYyB04bqtcCB0aW4g4oCcYXNzdW1lIHVuY2hhbmdlZOKAnSAoZ2nhuqMgxJHhu4tuaCBraMO0bmcgIgogInRoYXkgxJHhu5VpKSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2MworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2OQogbXNnaWQgInNob3cgY2FjaGVkIGZpbGVzIGluIHRoZSBvdXRwdXQgKGRlZmF1bHQpIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4gxJHGsOG7o2Mgbmjhu5sgdOG6oW0gdsOgbyDEkeG6p3UgcmEgKG3hurdjIMSR4buLbmgpIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDcxCiBtc2dpZCAic2hvdyBkZWxldGVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiDEkcOjIHjDs2EgdHJvbmcga+G6v3QgeHXhuqV0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDczCiBtc2dpZCAic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4gxJHDoyBi4buLIHPhu61hIMSR4buVaSByYSBr4bq/dCB4deG6pXQiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzUKIG1zZ2lkICJzaG93IG90aGVyIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiBraMOhYyB0cm9uZyBr4bq/dCB4deG6pXQiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzcKIG1zZ2lkICJzaG93IGlnbm9yZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdOG6rXAgdGluIGLhu4sgYuG7jyBxdWEgdHJvbmcga+G6v3QgeHXhuqV0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgwCiBtc2dpZCAic2hvdyBzdGFnZWQgY29udGVudHMnIG9iamVjdCBuYW1lIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyB0w6puIMSR4buRaSB0xrDhu6NuZyBj4bunYSBu4buZaSBkdW5nIMSRxrDhu6NjIGzGsHUgdHLhuqFuZyB0aMOhaSDhu58ga+G6v3QgeHXhuqV0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgyCiBtc2dpZCAic2hvdyBmaWxlcyBvbiB0aGUgZmlsZXN5c3RlbSB0aGF0IG5lZWQgdG8gYmUgcmVtb3ZlZCIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdOG6rXAgdGluIHRyw6puIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gbcOgIG7DsyBj4bqnbiDEkcaw4bujYyBn4buhIGLhu48iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODQKIG1zZ2lkICJzaG93ICdvdGhlcicgZGlyZWN0b3JpZXMnIG5hbWUgb25seSIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIHTDqm4gY+G7p2EgY8OhYyB0aMawIG3hu6VjIOKAnGtow6Fj4oCdIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDgxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg3CiBtc2dpZCAiZG9uJ3Qgc2hvdyBlbXB0eSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAia2jDtG5nIGhp4buDbiB0aOG7iyB0aMawIG3hu6VjIHLhu5duZyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MAogbXNnaWQgInNob3cgdW5tZXJnZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdOG6rXAgdGluIGNoxrBhIGjDsmEgdHLhu5luIHRyb25nIGvhur90IHh14bqldCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MgogbXNnaWQgInNob3cgcmVzb2x2ZS11bmRvIGluZm9ybWF0aW9uIgogbXNnc3RyICJoaeG7g24gdGjhu4sgdGjDtG5nIHRpbiByZXNvbHZlLXVuZG8iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTQKIG1zZ2lkICJza2lwIGZpbGVzIG1hdGNoaW5nIHBhdHRlcm4iCiBtc2dzdHIgImLhu48gcXVhIG5o4buvbmcgdOG6rXAgdGluIGto4bubcCB24bubaSBt4buZdCBt4bqrdSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NwogbXNnaWQgImV4Y2x1ZGUgcGF0dGVybnMgYXJlIHJlYWQgZnJvbSA8ZmlsZT4iCiBtc2dzdHIgIm3huqt1IGxv4bqhaSB0cuG7qyDEkcaw4bujYyDEkeG7jWMgdOG7qyA8dOG6rXAgdGluPiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMAogbXNnaWQgInJlYWQgYWRkaXRpb25hbCBwZXItZGlyZWN0b3J5IGV4Y2x1ZGUgcGF0dGVybnMgaW4gPGZpbGU+IgogbXNnc3RyICLEkeG7jWMgdGjDqm0gY8OhYyBt4bqrdSBuZ2/huqFpIHRy4burIG3hu5dpIHRoxrAgbeG7pWMgdHJvbmcgPHThuq1wIHRpbj4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDIKIG1zZ2lkICJhZGQgdGhlIHN0YW5kYXJkIGdpdCBleGNsdXNpb25zIgogbXNnc3RyICJ0aMOqbSBsb+G6oWkgdHLhu6sgdGnDqnUgY2h14bqpbiBraeG7g3UgZ2l0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA1CiBtc2dpZCAibWFrZSB0aGUgb3V0cHV0IHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgImzDoG0gY2hvIGvhur90IHh14bqldCBsacOqbiBxdWFuIMSR4bq/biB0aMawIG3hu6VjIOG7nyBt4bupYyBjYW8gbmjhuqV0IChn4buRYykgY+G7p2EgZOG7sSDDoW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDgKIG1zZ2lkICJpZiBhbnkgPGZpbGU+IGlzIG5vdCBpbiB0aGUgaW5kZXgsIHRyZWF0IHRoaXMgYXMgYW4gZXJyb3IiCiBtc2dzdHIgIm7hur91IDx04bqtcCB0aW4+IGLhuqV0IGvhu7Mga2jDtG5nIOG7nyB0cm9uZyBi4bqjbmcgbeG7pWMgbOG7pWMsIHjhu60gbMO9IG7DsyBuaMawIG3hu5l0IGzhu5dpIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA5CiBtc2dpZCAidHJlZS1pc2giCiBtc2dzdHIgInRyZWUtaXNoIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTA0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTEwCiBtc2dpZCAicHJldGVuZCB0aGF0IHBhdGhzIHJlbW92ZWQgc2luY2UgPHRyZWUtaXNoPiBhcmUgc3RpbGwgcHJlc2VudCIKIG1zZ3N0ciAiIgogImdp4bqjIMSR4buLbmggcuG6sW5nIGPDoWMgxJHGsOG7nW5nIGThuqtuIMSRw6MgYuG7iyBn4buhIGLhu48ga+G7gyB04burIDx0cmVlLWlzaD4gbmF5IHbhuqtuIGhp4buHbiBkaeG7h24iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTIKIG1zZ2lkICJzaG93IGRlYnVnZ2luZyBkYXRhIgogbXNnc3RyICJoaeG7g24gdGjhu4sgZOG7ryBsaeG7h3UgZ+G7oSBs4buXaSIKIApAQCAtNjI1NCwxNzAgKzY1MTAsMTcwIEBACiBtc2dpZCAiZ2l0IG1lcmdlIC0tYWJvcnQiCiBtc2dzdHIgImdpdCBtZXJnZSAtLWFib3J0IgogCi0jOiBidWlsdGluL21lcmdlLmM6OTAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5OAogbXNnaWQgInN3aXRjaCBgbScgcmVxdWlyZXMgYSB2YWx1ZSIKIG1zZ3N0ciAic3dpdGNoIOKAnG3igJ0gecOqdSBj4bqndSBt4buZdCBnacOhIHRy4buLIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI3CisjOiBidWlsdGluL21lcmdlLmM6MTM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmaW5kIG1lcmdlIHN0cmF0ZWd5ICclcycuXG4iCiBtc2dzdHIgIktow7RuZyB0w6xtIHRo4bqleSBjaGnhur9uIGzGsOG7o2MgaMOyYSB0cuG7mW4g4oCcJXPigJ0uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIHN0cmF0ZWdpZXMgYXJlOiIKIG1zZ3N0ciAiQ8OhYyBjaGnhur9uIGzGsOG7o2Mgc+G6tW4gc8OgbmcgbMOgOiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzMworIzogYnVpbHRpbi9tZXJnZS5jOjE0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgY3VzdG9tIHN0cmF0ZWdpZXMgYXJlOiIKIG1zZ3N0ciAiQ8OhYyBjaGnhur9uIGzGsOG7o2MgdMO5eSBjaOG7iW5oIHPhurVuIHPDoG5nIGzDoDoiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKIG1zZ2lkICJkbyBub3Qgc2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgogbXNnc3RyICJraMO0bmcgaGnhu4NuIHRo4buLIHRo4buRbmcga8OqIGtow6FjIGJp4buHdCB04bqhaSBjdeG7kWkgY+G7p2EgbOG6p24gaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDEKIG1zZ2lkICJzaG93IGEgZGlmZnN0YXQgYXQgdGhlIGVuZCBvZiB0aGUgbWVyZ2UiCiBtc2dzdHIgImhp4buDbiB0aOG7iyB0aOG7kW5nIGvDqiBraMOhYyBiaeG7h3QgdOG6oWkgY3Xhu5FpIGPhu6dhIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg3CisjOiBidWlsdGluL21lcmdlLmM6MjAyCiBtc2dpZCAiKHN5bm9ueW0gdG8gLS1zdGF0KSIKIG1zZ3N0ciAiKMSR4buTbmcgbmdoxKlhIHbhu5tpIC0tc3RhdCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDQKIG1zZ2lkICJhZGQgKGF0IG1vc3QgPG4+KSBlbnRyaWVzIGZyb20gc2hvcnRsb2cgdG8gbWVyZ2UgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgInRow6ptICjDrXQgbmjhuqV0IDxuPikgbeG7pWMgdOG7qyBzaG9ydGxvZyBjaG8gZ2hpIGNow7ogY2h1eeG7g24gZ2lhbyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5MgorIzogYnVpbHRpbi9tZXJnZS5jOjIwNwogbXNnaWQgImNyZWF0ZSBhIHNpbmdsZSBjb21taXQgaW5zdGVhZCBvZiBkb2luZyBhIG1lcmdlIgogbXNnc3RyICJ04bqhbyBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIMSRxrBvbiB0aGF5IHbDrCB0aOG7sWMgaGnhu4duIHZp4buHYyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5NAorIzogYnVpbHRpbi9tZXJnZS5jOjIwOQogbXNnaWQgInBlcmZvcm0gYSBjb21taXQgaWYgdGhlIG1lcmdlIHN1Y2NlZWRzIChkZWZhdWx0KSIKIG1zZ3N0ciAidGjhu7FjIGhp4buHbiBjaHV54buDbiBnaWFvIG7hur91IGjDsmEgdHLhu5luIHRow6BuaCBjw7RuZyAobeG6t2MgxJHhu4tuaCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTEKIG1zZ2lkICJlZGl0IG1lc3NhZ2UgYmVmb3JlIGNvbW1pdHRpbmciCiBtc2dzdHIgInPhu61hIGNow7ogdGjDrWNoIHRyxrDhu5tjIGtoaSBjaHV54buDbiBnaWFvIChjb21taXQpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTk4CisjOiBidWlsdGluL21lcmdlLmM6MjEyCiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIChkZWZhdWx0KSIKIG1zZ3N0ciAiY2hvIHBow6lwIGZhc3QtZm9yd2FyZCAobeG6t2MgxJHhu4tuaCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTQKIG1zZ2lkICJhYm9ydCBpZiBmYXN0LWZvcndhcmQgaXMgbm90IHBvc3NpYmxlIgogbXNnc3RyICJi4buPIHF1YSBu4bq/dSBmYXN0LWZvcndhcmQga2jDtG5nIHRo4buDIMSRxrDhu6NjIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjAzCisjOiBidWlsdGluL21lcmdlLmM6MjE4CiBtc2dpZCAiVmVyaWZ5IHRoYXQgdGhlIG5hbWVkIGNvbW1pdCBoYXMgYSB2YWxpZCBHUEcgc2lnbmF0dXJlIgogbXNnc3RyICJUaOG6qW0gdHJhIHhlbSBs4bqnbiBjaHV54buDbiBnaWFvIGPDsyB0w6puIMSRw7MgY8OzIGNo4buvIGvDvSBHUEcgaOG7o3AgbOG7hyBoYXkga2jDtG5nIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA0IGJ1aWx0aW4vbm90ZXMuYzo4NjYgYnVpbHRpbi9yZXZlcnQuYzoxMTIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTkgYnVpbHRpbi9ub3Rlcy5jOjczOCBidWlsdGluL3JldmVydC5jOjExNAogbXNnaWQgInN0cmF0ZWd5IgogbXNnc3RyICJjaGnhur9uIGzGsOG7o2MiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjAKIG1zZ2lkICJtZXJnZSBzdHJhdGVneSB0byB1c2UiCiBtc2dzdHIgImNoaeG6v24gbMaw4bujYyBow7JhIHRy4buZbiBz4bq9IGTDuW5nIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA2CisjOiBidWlsdGluL21lcmdlLmM6MjIxCiBtc2dpZCAib3B0aW9uPXZhbHVlIgogbXNnc3RyICJ0w7l5X2No4buNbj1nacOhX3Ry4buLIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA3CisjOiBidWlsdGluL21lcmdlLmM6MjIyCiBtc2dpZCAib3B0aW9uIGZvciBzZWxlY3RlZCBtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAidMO5eSBjaOG7jW4gY2hvIGNoaeG6v24gbMaw4bujYyBow7JhIHRy4buZbiDEkcOjIGNo4buNbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwOQorIzogYnVpbHRpbi9tZXJnZS5jOjIyNAogbXNnaWQgIm1lcmdlIGNvbW1pdCBtZXNzYWdlIChmb3IgYSBub24tZmFzdC1mb3J3YXJkIG1lcmdlKSIKIG1zZ3N0ciAiIgogImjDsmEgdHLhu5luIGdoaSBjaMO6IGPhu6dhIGzhuqduIGNodXnhu4NuIGdpYW8gKGTDoG5oIGNobyBow7JhIHRy4buZbiBub24tZmFzdC1mb3J3YXJkKSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIxMworIzogYnVpbHRpbi9tZXJnZS5jOjIyOAogbXNnaWQgImFib3J0IHRoZSBjdXJyZW50IGluLXByb2dyZXNzIG1lcmdlIgogbXNnc3RyICJiw6NpIGLhu48gcXXDoSB0csOsbmggaMOyYSB0cuG7mW4gaGnhu4duIHThuqFpIMSRYW5nIHRo4buxYyBoaeG7h24iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNDIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNTcKIG1zZ2lkICJjb3VsZCBub3QgcnVuIHN0YXNoLiIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGNo4bqheSBzdGFzaC4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNjIKIG1zZ2lkICJzdGFzaCBmYWlsZWQiCiBtc2dzdHIgInN0YXNoIGfhurdwIGzhu5dpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjUyCisjOiBidWlsdGluL21lcmdlLmM6MjY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCBhIHZhbGlkIG9iamVjdDogJXMiCiBtc2dzdHIgImtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IMSR4buRaSB0xrDhu6NuZyBo4bujcCBs4buHOiAlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI3MSBidWlsdGluL21lcmdlLmM6Mjg4CisjOiBidWlsdGluL21lcmdlLmM6Mjg2IGJ1aWx0aW4vbWVyZ2UuYzozMDMKIG1zZ2lkICJyZWFkLXRyZWUgZmFpbGVkIgogbXNnc3RyICJyZWFkLXRyZWUgZ+G6t3AgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozMTgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozMzMKIG1zZ2lkICIgKG5vdGhpbmcgdG8gc3F1YXNoKSIKIG1zZ3N0ciAiIChraMO0bmcgY8OzIGfDrCDEkeG7gyBzcXVhc2gpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzMxCisjOiBidWlsdGluL21lcmdlLmM6MzQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNxdWFzaCBjb21taXQgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKIG1zZ3N0ciAiU3F1YXNoIGNvbW1pdCAtLSBraMO0bmcgY+G6rXAgbmjhuq10IEhFQURcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM2MworIzogYnVpbHRpbi9tZXJnZS5jOjM3OAogbXNnaWQgIldyaXRpbmcgU1FVQVNIX01TRyIKIG1zZ3N0ciAixJBhbmcgZ2hpIFNRVUFTSF9NU0ciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozNjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozODAKIG1zZ2lkICJGaW5pc2hpbmcgU1FVQVNIX01TRyIKIG1zZ3N0ciAiSG/DoG4gdGjDoG5oIFNRVUFTSF9NU0ciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2UgbWVzc2FnZSAtLSBub3QgdXBkYXRpbmcgSEVBRFxuIgogbXNnc3RyICJLaMO0bmcgdGjDtG5nIMSRaeG7h3AgaMOyYSB0cuG7mW4gLS0ga2jDtG5nIGPhuq1wIG5o4bqtdCBIRUFEXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo0MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKIG1zZ3N0ciAi4oCcJXPigJ0ga2jDtG5nIGNo4buJIMSR4bq/biBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIG7DoG8gY+G6oyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjU1MAorIzogYnVpbHRpbi9tZXJnZS5jOjU2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJCYWQgYnJhbmNoLiVzLm1lcmdlb3B0aW9ucyBzdHJpbmc6ICVzIgogbXNnc3RyICJDaHXhu5dpIGJyYW5jaC4lcy5tZXJnZW9wdGlvbnMgc2FpOiAlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY0MworIzogYnVpbHRpbi9tZXJnZS5jOjY1NwogbXNnaWQgImdpdCB3cml0ZS10cmVlIGZhaWxlZCB0byB3cml0ZSBhIHRyZWUiCiBtc2dzdHIgImzhu4duaCBnaXQgd3JpdGUtdHJlZSBn4bq3cCBs4buXaSBraGkgZ2hpIG3hu5l0IGPDonkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2NzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2ODUKIG1zZ2lkICJOb3QgaGFuZGxpbmcgYW55dGhpbmcgb3RoZXIgdGhhbiB0d28gaGVhZHMgbWVyZ2UuIgogbXNnc3RyICJLaMO0bmcgY+G6p20gbuG6r20gZ8OsIG5nb8OgaSBoYWkgaGVhZCBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY4NQorIzogYnVpbHRpbi9tZXJnZS5jOjY5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIG9wdGlvbiBmb3IgbWVyZ2UtcmVjdXJzaXZlOiAtWCVzIgogbXNnc3RyICJLaMO0bmcgaGnhu4N1IHTDuXkgY2jhu41uIGNobyBtZXJnZS1yZWN1cnNpdmU6IC1YJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2OTkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo3MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6Nzg4CisjOiBidWlsdGluL21lcmdlLmM6ODAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIGZyb20gJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4buNYyB04burIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL21lcmdlLmM6Nzk3CisjOiBidWlsdGluL21lcmdlLmM6ODExCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBjb21taXR0aW5nIG1lcmdlOyB1c2UgJ2dpdCBjb21taXQnIHRvIGNvbXBsZXRlIHRoZSBtZXJnZS5cbiIKIG1zZ3N0ciAiIgogIlbhuqtuIGNoxrBhIGjDsmEgdHLhu5luIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KTsgc+G7rSBk4bulbmcgbOG7h25oIOKAnGdpdCBjb21taXTigJ0gxJHhu4MgIgogImhvw6BuIHThuqV0IHZp4buHYyBow7JhIHRy4buZbi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjgwMworIzogYnVpbHRpbi9tZXJnZS5jOjgxNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIGEgY29tbWl0IG1lc3NhZ2UgdG8gZXhwbGFpbiB3aHkgdGhpcyBtZXJnZSBpcyBuZWNlc3NhcnksXG4iCkBAIC02NDM1LDU1ICs2NjkxLDUwIEBACiAicuG7l25nXG4iCiAic+G6vSBo4buneSBi4buPIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MjcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4NDEKIG1zZ2lkICJFbXB0eSBjb21taXQgbWVzc2FnZS4iCiBtc2dzdHIgIkNow7ogdGjDrWNoIGPhu6dhIGzhuqduIGNvbW1pdCAoY2h1eeG7g24gZ2lhbykgYuG7iyB0cuG7kW5nIHLhu5duZy4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MzkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiV29uZGVyZnVsLlxuIgogbXNnc3RyICJUaOG6p24ga+G7sy5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkwNAorIzogYnVpbHRpbi9tZXJnZS5jOjkxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvbWF0aWMgbWVyZ2UgZmFpbGVkOyBmaXggY29uZmxpY3RzIGFuZCB0aGVuIGNvbW1pdCB0aGUgcmVzdWx0LlxuIgogbXNnc3RyICIiCiAiVmnhu4djIHThu7EgxJHhu5luZyBow7JhIHRy4buZbiBn4bq3cCBs4buXaTsgaMOjeSBz4butYSBjw6FjIHh1bmcgxJHhu5l0IHNhdSDEkcOzIGNodXnhu4NuIGdpYW8gIgogIihjb21taXQpIGvhur90IHF14bqjLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTIwCisjOiBidWlsdGluL21lcmdlLmM6OTM0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgY29tbWl0IgogbXNnc3RyICIlcyBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBs4bqnbiBjb21taXQgKGNodXnhu4NuIGdpYW8pIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTYxCisjOiBidWlsdGluL21lcmdlLmM6OTc1CiBtc2dpZCAiTm8gY3VycmVudCBicmFuY2guIgogbXNnc3RyICJraMO0bmcgcGjhuqNpIG5ow6FuaCBoaeG7h24gaMOgbmgiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzcKIG1zZ2lkICJObyByZW1vdGUgZm9yIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIktow7RuZyBjw7MgbcOheSBjaOG7pyBjaG8gbmjDoW5oIGhp4buHbiBow6BuaC4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzkKIG1zZ2lkICJObyBkZWZhdWx0IHVwc3RyZWFtIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIktow7RuZyBjw7MgdGjGsOG7o25nIG5ndeG7k24gbeG6t2MgxJHhu4tuaCDEkcaw4bujYyDEkeG7i25oIG5naMSpYSBjaG8gbmjDoW5oIGhp4buHbiBow6BuaC4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5ODQKICMsIGMtZm9ybWF0Ci1tc2dpZCAiTm8gcmVtb3RlIHRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKK21zZ2lkICJObyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGZvciAlcyBmcm9tICVzIgogbXNnc3RyICJLaMO0bmcgbmjDoW5oIG3huqFuZyB0aGVvIHbhur90IGNobyAlcyB04burICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTA1NyBidWlsdGluL21lcmdlLmM6MTIxNAotIywgYy1mb3JtYXQKLW1zZ2lkICIlcyAtIG5vdCBzb21ldGhpbmcgd2UgY2FuIG1lcmdlIgotbXNnc3RyICIlcyAtIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHPhu5EgdGjhu6kgY2jDum5nIHTDtGkgY8OzIHRo4buDIGjDsmEgdHLhu5luIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTEyNQorIzogYnVpbHRpbi9tZXJnZS5jOjExNDAKIG1zZ2lkICJUaGVyZSBpcyBubyBtZXJnZSB0byBhYm9ydCAoTUVSR0VfSEVBRCBtaXNzaW5nKS4iCiBtc2dzdHIgIiIKICLhu54gxJHDonkga2jDtG5nIGPDsyBs4bqnbiBow7JhIHRy4buZbiBuw6BvIMSRxrDhu6NjIGjhu6d5IGLhu48gZ2nhu69hIGNo4burbmcgY+G6oyAodGhp4bq/dSBNRVJHRV9IRUFEKS4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQxIGdpdC1wdWxsLnNoOjMxCisjOiBidWlsdGluL21lcmdlLmM6MTE1NiBnaXQtcHVsbC5zaDozMQogbXNnaWQgIiIKICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS5cbiIKICJQbGVhc2UsIGNvbW1pdCB5b3VyIGNoYW5nZXMgYmVmb3JlIHlvdSBjYW4gbWVyZ2UuIgpAQCAtNjQ5MSwxMSArNjc0MiwxMSBAQAogIkLhuqFuIGNoxrBhIGvhur90IHRow7pjIHZp4buHYyBow7JhIHRy4buZbmcgKE1FUkdFX0hFQUQgduG6q24gdOG7k24gdOG6oWkpLlxuIgogIkjDo3kgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBjw6FjIHRoYXkgxJHhu5VpIHRyxrDhu5tjIGtoaSBi4bqhbiBjw7MgdGjhu4MgaMOyYSB0cuG7mW4uIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0NCBnaXQtcHVsbC5zaDozNAorIzogYnVpbHRpbi9tZXJnZS5jOjExNTkgZ2l0LXB1bGwuc2g6MzQKIG1zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS4iCiBtc2dzdHIgIkLhuqFuIGNoxrBhIGvhur90IHRow7pjIHZp4buHYyBow7JhIHRy4buZbmcgKE1FUkdFX0hFQUQgduG6q24gdOG7k24gdOG6oWkpLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTYzCiBtc2dpZCAiIgogIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdHMpLlxuIgogIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCkBAIC02NTAzLDEwNyArNjc1NCwxMDggQEAKICJC4bqhbiBjaMawYSBr4bq/dCB0aMO6YyB2aeG7h2MgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgduG6q24gdOG7k24gdOG6oWkpLlxuIgogIkjDo3kgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBjw6FjIHRoYXkgxJHhu5VpIHRyxrDhu5tjIGtoaSBi4bqhbiBjw7MgdGjhu4MgaMOyYSB0cuG7mW4uIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE1MQorIzogYnVpbHRpbi9tZXJnZS5jOjExNjYKIG1zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RzKS4iCiBtc2dzdHIgIkLhuqFuIGNoxrBhIGvhur90IHRow7pjIHZp4buHYyBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCB24bqrbiB04buTbiB04bqhaSkuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE2MAorIzogYnVpbHRpbi9tZXJnZS5jOjExNzUKIG1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1zcXVhc2ggd2l0aCAtLW5vLWZmLiIKIG1zZ3N0ciAiQuG6oW4ga2jDtG5nIHRo4buDIGvhur90IGjhu6NwIC0tc3F1YXNoIHbhu5tpIC0tbm8tZmYuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE2NQotbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLW5vLWZmIHdpdGggLS1mZi1vbmx5LiIKLW1zZ3N0ciAiQuG6oW4ga2jDtG5nIHRo4buDIGvhur90IGjhu6NwIC0tbm8tZmYgduG7m2kgLS1mZi1vbmx5LiIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjExNzIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTg0CiBtc2dpZCAiTm8gY29tbWl0IHNwZWNpZmllZCBhbmQgbWVyZ2UuZGVmYXVsdFRvVXBzdHJlYW0gbm90IHNldC4iCiBtc2dzdHIgIiIKICJLaMO0bmcgY2jhu4kgcmEgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSB2w6AgbWVyZ2UuZGVmYXVsdFRvVXBzdHJlYW0gY2jGsGEgxJHGsOG7o2MgIgogIsSR4bq3dC4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA0CisjOiBidWlsdGluL21lcmdlLmM6MTIxNgogbXNnaWQgIkNhbiBtZXJnZSBvbmx5IGV4YWN0bHkgb25lIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIiIKICJLaMO0bmcgdGjhu4MgaMOyYSB0cuG7mW4gbeG7mXQgY8OhY2ggxJHDum5nIMSR4bqvbiBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIHbDoG8gbeG7mXQgIgogImhlYWQgcuG7l25nIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTIwNworIzogYnVpbHRpbi9tZXJnZS5jOjEyMTkKIG1zZ2lkICJTcXVhc2ggY29tbWl0IGludG8gZW1wdHkgaGVhZCBub3Qgc3VwcG9ydGVkIHlldCIKIG1zZ3N0ciAiU3F1YXNoIGNvbW1pdCB2w6BvIG3hu5l0IGhlYWQgdHLhu5FuZyBy4buXbmcgduG6q24gY2jGsGEgxJHGsOG7o2MgaOG7lyB0cuG7oyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjIxCiBtc2dpZCAiTm9uLWZhc3QtZm9yd2FyZCBjb21taXQgZG9lcyBub3QgbWFrZSBzZW5zZSBpbnRvIGFuIGVtcHR5IGhlYWQiCiBtc2dzdHIgIiIKICJDaHV54buDbiBnaWFvIChjb21taXQpIGtow7RuZy1mYXN0LWZvcndhcmQga2jDtG5nIGjhu6NwIGzDvSDhu58gdHJvbmcgbeG7mXQgaGVhZCB0cuG7kW5nICIKICJy4buXbmciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY1CisjOiBidWlsdGluL21lcmdlLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtIG5vdCBzb21ldGhpbmcgd2UgY2FuIG1lcmdlIgorbXNnc3RyICIlcyAtIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHPhu5EgdGjhu6kgY2jDum5nIHTDtGkgY8OzIHRo4buDIGjDsmEgdHLhu5luIgorCisjOiBidWlsdGluL21lcmdlLmM6MTI3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGFuIHVudHJ1c3RlZCBHUEcgc2lnbmF0dXJlLCBhbGxlZ2VkbHkgYnkgJXMuIgogbXNnc3RyICIiCiAiTOG6p24gY2h1eeG7g24gZ2lhbyAlcyBjw7MgbeG7mXQgY2jhu68ga8O9IEdQRyBraMO0bmcgxJHDoW5nIHRpbiwgxJHGsOG7o2MgY2hvIGzDoCBi4bufaSAlcy4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY4CisjOiBidWlsdGluL21lcmdlLmM6MTI4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGEgYmFkIEdQRyBzaWduYXR1cmUgYWxsZWdlZGx5IGJ5ICVzLiIKIG1zZ3N0ciAiTOG6p24gY2h1eeG7g24gZ2lhbyAlcyBjw7MgbeG7mXQgY2jhu68ga8O9IEdQRyBzYWksIMSRxrDhu6NjIGNobyBsw6AgYuG7n2kgJXMuIgogCiAjLiAnTicKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjcxCisjOiBidWlsdGluL21lcmdlLmM6MTI4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgZG9lcyBub3QgaGF2ZSBhIEdQRyBzaWduYXR1cmUuIgogbXNnc3RyICJM4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICVzIGtow7RuZyBjw7MgY2jhu68ga8O9IEdQRy4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjc0CisjOiBidWlsdGluL21lcmdlLmM6MTI4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGEgZ29vZCBHUEcgc2lnbmF0dXJlIGJ5ICVzXG4iCiBtc2dzdHIgIkzhuqduIGNodXnhu4NuIGdpYW8gJXMgY8OzIG3hu5l0IGNo4buvIGvDvSBHUEcgdOG7kXQgYuG7n2kgJXNcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzNTgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVwZGF0aW5nICVzLi4lc1xuIgogbXNnc3RyICLEkGFuZyBj4bqtcCBuaOG6rXQgJXMuLiVzXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzk3CisjOiBidWlsdGluL21lcmdlLmM6MTQwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJUcnlpbmcgcmVhbGx5IHRyaXZpYWwgaW4taW5kZXggbWVyZ2UuLi5cbiIKIG1zZ3N0ciAixJBhbmcgdGjhu60gaMOyYSB0cuG7mW4ga2nhu4N1IOKAnHRyaXZpYWwgaW4taW5kZXjigJ0uLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vcGUuXG4iCiBtc2dzdHIgIktow7RuZy5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0MzYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDQ4CiBtc2dpZCAiTm90IHBvc3NpYmxlIHRvIGZhc3QtZm9yd2FyZCwgYWJvcnRpbmcuIgogbXNnc3RyICJUaOG7sWMgaGnhu4duIGzhu4duaCBmYXN0LWZvcndhcmQgbMOgIGtow7RuZyB0aOG7gyDEkcaw4bujYywgxJFhbmcgYuG7jyBxdWEuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ1OSBidWlsdGluL21lcmdlLmM6MTUzOAorIzogYnVpbHRpbi9tZXJnZS5jOjE0NzEgYnVpbHRpbi9tZXJnZS5jOjE1NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmV3aW5kaW5nIHRoZSB0cmVlIHRvIHByaXN0aW5lLi4uXG4iCiBtc2dzdHIgIsSQYW5nIHR1YSBs4bqhaSBjw6J5IHRow6BuaCB0aOG7nWkgeGEgeMawYS4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ2MworIzogYnVpbHRpbi9tZXJnZS5jOjE0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIG1lcmdlIHN0cmF0ZWd5ICVzLi4uXG4iCiBtc2dzdHIgIsSQYW5nIHRo4butIGNoaeG6v24gbMaw4bujYyBow7JhIHRy4buZbiAlcy4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUyOQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2Ugc3RyYXRlZ3kgaGFuZGxlZCB0aGUgbWVyZ2UuXG4iCiBtc2dzdHIgIktow7RuZyBjw7MgY2hp4bq/biBsxrDhu6NjIGjDsmEgdHLhu5luIG7DoG8gxJHGsOG7o2MgbuG6r20gZ2nhu68gKGhhbmRsZSkgc+G7sSBow7JhIHRy4buZbi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1lcmdlIHdpdGggc3RyYXRlZ3kgJXMgZmFpbGVkLlxuIgogbXNnc3RyICJIw7JhIHRy4buZbiB24bubaSBjaGnhur9uIGzGsOG7o2MgJXMgZ+G6t3AgbOG7l2kuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQwCisjOiBidWlsdGluL21lcmdlLmM6MTU1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2luZyB0aGUgJXMgdG8gcHJlcGFyZSByZXNvbHZpbmcgYnkgaGFuZC5cbiIKIG1zZ3N0ciAiU+G7rSBk4bulbmcgJXMgxJHhu4MgY2h14bqpbiBi4buLIGdp4bqjaSBxdXnhur90IGLhurFuZyB0YXkuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTUyCisjOiBidWlsdGluL21lcmdlLmM6MTU2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvbWF0aWMgbWVyZ2Ugd2VudCB3ZWxsOyBzdG9wcGVkIGJlZm9yZSBjb21taXR0aW5nIGFzIHJlcXVlc3RlZFxuIgogbXNnc3RyICIiCkBAIC02NzcyLDQ4ICs3MDI0LDUyIEBACiBtc2dpZCAicmVuYW1pbmcgJyVzJyBmYWlsZWQiCiBtc2dzdHIgIsSR4buVaSB0w6puICVzIGfhurdwIGzhu5dpIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc1CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjU5CiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSA8Y29tbWl0Pi4uLiIKIG1zZ3N0ciAiZ2l0IG5hbWUtcmV2IFtjw6FjLXTDuXktY2jhu41uXSA8Y29tbWl0Pi4uLiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MAogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1hbGwiCiBtc2dzdHIgImdpdCBuYW1lLXJldiBbY8OhYy10w7l5LWNo4buNbl0gLS1hbGwiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoxNzcKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyNjEKIG1zZ2lkICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIC0tc3RkaW4iCiBtc2dzdHIgImdpdCBuYW1lLXJldiBbY8OhYy10w7l5LWNo4buNbl0gLS1zdGRpbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIyOQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxMwogbXNnaWQgInByaW50IG9ubHkgbmFtZXMgKG5vIFNIQS0xKSIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIHTDqm4gKGtow7RuZyBTSEEtMSkiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzAKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTQKIG1zZ2lkICJvbmx5IHVzZSB0YWdzIHRvIG5hbWUgdGhlIGNvbW1pdHMiCiBtc2dzdHIgImNo4buJIGTDuW5nIGPDoWMgdGjhursgxJHhu4MgxJHhurd0IHTDqm4gY2hvIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzMgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxNgogbXNnaWQgIm9ubHkgdXNlIHJlZnMgbWF0Y2hpbmcgPHBhdHRlcm4+IgogbXNnc3RyICJjaOG7iSBz4butIGThu6VuZyBjw6FjIHRoYW0gY2hp4bq/dSAocmVmcykga2jhu5twIHbhu5tpIDxt4bqrdT4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzQKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTgKIG1zZ2lkICJsaXN0IGFsbCBjb21taXRzIHJlYWNoYWJsZSBmcm9tIGFsbCByZWZzIgogbXNnc3RyICIiCiAibGnhu4d0IGvDqiB04bqldCBj4bqjIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyBjw7MgdGjhu4MgxJHhu41jIMSRxrDhu6NjIHThu6sgdOG6pXQgY+G6oyBjw6FjIHRoYW0gY2hp4bq/dSIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxOQogbXNnaWQgInJlYWQgZnJvbSBzdGRpbiIKIG1zZ3N0ciAixJHhu41jIHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyMAogbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgogbXNnc3RyICJjaG8gcGjDqXAgaGnhu4NuIHRo4buLIGPDoWMgdMOqbiDigJxjaMawYSDEkeG7i25oIG5naMSpYeKAnCIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzI2Cittc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbiB0aGUgaW5wdXQgKGludGVybmFsIHVzZSkiCittc2dzdHIgImLDo2kgYuG7jyB0aGFtIGNoaeG6v3UgY8OhYyB0aOG6uyB0cm9uZyDEkeG6p3UgdsOgbyAoZMO5bmcgbuG7mWkgYuG7mSkiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIFtsaXN0IFs8b2JqZWN0Pl1dIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBbbGlzdCBbPMSR4buRaS10xrDhu6NuZz5dXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3CisjOiBidWlsdGluL25vdGVzLmM6MjUKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYWRkIFstZl0gWy1tIDxtc2c+IHwgLUYgPGZpbGU+IHwgKC1jIHwgLUMpICIKICI8b2JqZWN0Pl0gWzxvYmplY3Q+XSIKQEAgLTY4MjEsMTEgKzcwNzcsMTEgQEAKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhZGQgWy1mXSBbLW0gPGzhu51pLW5o4bqvbj4gfCAtRiA8dOG6rXAtdGluPiB8ICgtYyB8ICIKICItQykgPMSR4buRaS10xrDhu6NuZz5dIFs8xJHhu5FpLXTGsOG7o25nPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyOAorIzogYnVpbHRpbi9ub3Rlcy5jOjI2CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gY29weSBbLWZdIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGNvcHkgWy1mXSA8dOG7qy3EkeG7kWktdMaw4bujbmc+IDzEkeG6v24txJHhu5FpLXTGsOG7o25nPiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5CisjOiBidWlsdGluL25vdGVzLmM6MjcKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYXBwZW5kIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCkBAIC02ODMzLDIyMyArNzA4OSwyMDAgQEAKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhcHBlbmQgWy1tIDxs4budaS1uaOG6r24+IHwgLUYgPHThuq1wLXRpbj4gfCAoLWMgfCAtIgogIkMpIDzEkeG7kWktdMaw4bujbmc+XSBbPMSR4buRaS10xrDhu6NuZz5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGVkaXQgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZWRpdCBbPMSR4buRaS10xrDhu6NuZz5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gc2hvdyBbPMSR4buRaS10xrDhu6NuZz5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzIKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMAogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDxzdHJhdGVneT4gXSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIG1lcmdlIFstdiB8IC1xXSBbLXMgPGNoaeG6v24tbMaw4bujYz4gXSA8bm90ZXNfcmVmPiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjMzCisjOiBidWlsdGluL25vdGVzLmM6MzEKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWy12IHwgLXFdIgogbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWy12IHwgLXFdIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMgogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFstdiB8IC1xXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWy12IHwgLXFdIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzUKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMwogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHJlbW92ZSBbPG9iamVjdD4uLi5dIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSByZW1vdmUgWzzEkeG7kWktdMaw4bujbmc+Li4uXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM2CisjOiBidWlsdGluL25vdGVzLmM6MzQKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBwcnVuZSBbLW4gfCAtdl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHBydW5lIFstbiB8IC12XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM3CisjOiBidWlsdGluL25vdGVzLmM6MzUKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBnZXQtcmVmIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBnZXQtcmVmIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDIKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MAogbXNnaWQgImdpdCBub3RlcyBbbGlzdCBbPG9iamVjdD5dXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFtsaXN0IFs8xJHhu5FpIHTGsOG7o25nPl1dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0NQogbXNnaWQgImdpdCBub3RlcyBhZGQgWzxvcHRpb25zPl0gWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGFkZCBbPGPDoWMtdMO5eS1jaOG7jW4+XSBbPMSR4buRaS10xrDhu6NuZz5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTIKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MAogbXNnaWQgImdpdCBub3RlcyBjb3B5IFs8b3B0aW9ucz5dIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCiBtc2dzdHIgImdpdCBub3RlcyBjb3B5IFs8Y8OhYy10w7l5LWNo4buNbj5dIDx04burLcSR4buRaS10xrDhu6NuZz4gPMSR4bq/bi3EkeG7kWktdMaw4bujbmc+IgogCi0jOiBidWlsdGluL25vdGVzLmM6NTMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MQogbXNnaWQgImdpdCBub3RlcyBjb3B5IC0tc3RkaW4gWzxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD5dLi4uIgogbXNnc3RyICJnaXQgbm90ZXMgY29weSAtLXN0ZGluIFs8dOG7qy3EkeG7kWktdMaw4bujbmc+IDzEkeG6v24txJHhu5FpLXTGsOG7o25nPl0uLi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2CiBtc2dpZCAiZ2l0IG5vdGVzIGFwcGVuZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgYXBwZW5kIFs8Y8OhYy10w7l5LWNo4buNbj5dIFs8xJHhu5FpLXTGsOG7o25nPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MworIzogYnVpbHRpbi9ub3Rlcy5jOjYxCiBtc2dpZCAiZ2l0IG5vdGVzIGVkaXQgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGVkaXQgWzzEkeG7kWkgdMaw4bujbmc+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY4CisjOiBidWlsdGluL25vdGVzLmM6NjYKIG1zZ2lkICJnaXQgbm90ZXMgc2hvdyBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgc2hvdyBbPMSR4buRaSB0xrDhu6NuZz5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MQogbXNnaWQgImdpdCBub3RlcyBtZXJnZSBbPG9wdGlvbnM+XSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIFs8Y8OhYy10w7l5LWNo4buNbj5dIDxub3Rlc19yZWY+IgogCi0jOiBidWlsdGluL25vdGVzLmM6NzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MgogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbPG9wdGlvbnM+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFs8Y8OhYy10w7l5LWNo4buNbj5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MwogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFs8b3B0aW9ucz5dIgogbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbPGPDoWMtdMO5eS1jaOG7jW4+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjgwCisjOiBidWlsdGluL25vdGVzLmM6NzgKIG1zZ2lkICJnaXQgbm90ZXMgcmVtb3ZlIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyByZW1vdmUgWzzEkeG7kWkgdMaw4bujbmc+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg1CisjOiBidWlsdGluL25vdGVzLmM6ODMKIG1zZ2lkICJnaXQgbm90ZXMgcHJ1bmUgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBwcnVuZSBbPGPDoWMtdMO5eS1jaOG7jW4+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjkwCisjOiBidWlsdGluL25vdGVzLmM6ODgKIG1zZ2lkICJnaXQgbm90ZXMgZ2V0LXJlZiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGdldC1yZWYiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMzkKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHN0YXJ0ICdzaG93JyBmb3Igb2JqZWN0ICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyBraOG7n2kgY2jhuqF5IOKAnHNob3figJ0gY2hvIMSR4buRaSB0xrDhu6NuZyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE0MworIzogYnVpbHRpbi9ub3Rlcy5jOjE0MQogbXNnaWQgImNvdWxkIG5vdCByZWFkICdzaG93JyBvdXRwdXQiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMga+G6v3QgeHXhuqV0IOKAnHNob3figJ0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNTEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGZpbmlzaCAnc2hvdycgZm9yIG9iamVjdCAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgaG/DoG4gdGjDoG5oIOKAnHNob3figJ0gY2hvIMSR4buRaSB0xrDhu6NuZyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE2OSBidWlsdGluL3RhZy5jOjM0MQorIzogYnVpbHRpbi9ub3Rlcy5jOjE2NyBidWlsdGluL3RhZy5jOjM0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGZpbGUgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHThuqFvIHThuq1wIHRpbiDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE4OAorIzogYnVpbHRpbi9ub3Rlcy5jOjE4NgogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG5vdGUgY29udGVudHMgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbiIKIG1zZ3N0ciAiIgogIlhpbiBow6N5IMOhcCBk4bulbmcgbuG7mWkgZHVuZyBj4bunYSBnaGkgY2jDuiBz4butIGThu6VuZyBob+G6t2MgbMOgIHTDuXkgY2jhu41uIC1tIGhv4bq3YyBsw6AgLUYiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyMDkgYnVpbHRpbi9ub3Rlcy5jOjk3MgorIzogYnVpbHRpbi9ub3Rlcy5jOjIwNyBidWlsdGluL25vdGVzLmM6ODQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nIG5vdGUgZm9yIG9iamVjdCAlc1xuIgogbXNnc3RyICLEkGFuZyBn4buhIGLhu48gZ2hpIGNow7ogKG5vdGUpIGNobyDEkeG7kWkgdMaw4bujbmcgJXNcbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIxNAorIzogYnVpbHRpbi9ub3Rlcy5jOjIxMgogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBub3RlIG9iamVjdCIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGdoaSDEkeG7kWkgdMaw4bujbmcgZ2hpIGNow7ogKG5vdGUpIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjE2CisjOiBidWlsdGluL25vdGVzLmM6MjE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoZSBub3RlIGNvbnRlbnRzIGhhcyBiZWVuIGxlZnQgaW4gJXMiCiBtc2dzdHIgIk7hu5lpIGR1bmcgZ2hpIGNow7ogY8OybiBs4bqhaSAlcyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI1MCBidWlsdGluL3RhZy5jOjU0MAorIzogYnVpbHRpbi9ub3Rlcy5jOjI0OCBidWlsdGluL3RhZy5jOjU0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjUyIGJ1aWx0aW4vdGFnLmM6NTQzCisjOiBidWlsdGluL25vdGVzLmM6MjUwIGJ1aWx0aW4vdGFnLmM6NTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuIG9yIHJlYWQgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58gaGF5IMSR4buNYyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3MSBidWlsdGluL25vdGVzLmM6NDQ0IGJ1aWx0aW4vbm90ZXMuYzo0NDYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYgYnVpbHRpbi9ub3Rlcy5jOjU2MCBidWlsdGluL25vdGVzLmM6NjQzCi0jOiBidWlsdGluL25vdGVzLmM6NjQ4IGJ1aWx0aW4vbm90ZXMuYzo3MjMgYnVpbHRpbi9ub3Rlcy5jOjc2NQotIzogYnVpbHRpbi9ub3Rlcy5jOjk2NyBidWlsdGluL3RhZy5jOjU1NgorIzogYnVpbHRpbi9ub3Rlcy5jOjI2OSBidWlsdGluL25vdGVzLmM6MzE2IGJ1aWx0aW4vbm90ZXMuYzozMTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNzggYnVpbHRpbi9ub3Rlcy5jOjQzMiBidWlsdGluL25vdGVzLmM6NTE1CisjOiBidWlsdGluL25vdGVzLmM6NTIwIGJ1aWx0aW4vbm90ZXMuYzo1OTUgYnVpbHRpbi9ub3Rlcy5jOjYzNworIzogYnVpbHRpbi9ub3Rlcy5jOjgzOSBidWlsdGluL3RhZy5jOjU1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmVmLiIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHBow6JuIGdp4bqjaSDigJwlc+KAnSBuaMawIGzDoCBt4buZdCB0aGFtIGNoaeG6v3UgKHJlZikgaOG7o3AgbOG7hy4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlYWQgb2JqZWN0ICclcycuIgogbXNnc3RyICJH4bq3cCBs4buXaSBraGkgxJHhu41jIMSR4buRaSB0xrDhu6NuZyDigJwlc+KAnS4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyOTgKLW1zZ2lkICJDYW5ub3QgY29tbWl0IHVuaW5pdGlhbGl6ZWQvdW5yZWZlcmVuY2VkIG5vdGVzIHRyZWUiCi1tc2dzdHIgIiIKLSJLaMO0bmcgdGjhu4MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBjaMawYSDEkcaw4bujYyBraOG7n2kgdOG6oW8gaG/hurdjIGtow7RuZyDEkcaw4bujYyB0aGFtIGNoaeG6v3UgIgotImPDonkgZ2hpIGNow7oiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozMzkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQmFkIG5vdGVzLnJld3JpdGVNb2RlIHZhbHVlOiAnJXMnIgotbXNnc3RyICJHacOhIHRy4buLIG5vdGVzLnJld3JpdGVNb2RlIHNhaTog4oCcJXPigJ0iCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozNDkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCi1tc2dzdHIgIlThu6sgY2jhu5FpIGdoaSDEkcOoIGdoaSBjaMO6IHRyb25nICVzIChu4bqxbSBuZ2/DoGkgY+G7p2EgcmVmcy9ub3Rlcy8pIgotCi0jLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIGlzIHRoZSBuYW1lIG9mIHRoZQotIy4gZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBzZWNvbmQgJXMgaXMgaXRzIHZhbHVlCi0jOiBidWlsdGluL25vdGVzLmM6Mzc2Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkJhZCAlcyB2YWx1ZTogJyVzJyIKLW1zZ3N0ciAiR2nDoSB0cuG7iyAlcyBzYWk6IOKAnCVz4oCdIgotCi0jOiBidWlsdGluL25vdGVzLmM6NDQwCisjOiBidWlsdGluL25vdGVzLmM6MzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpbnB1dCBsaW5lOiAnJXMnLiIKIG1zZ3N0ciAiRMOybmcgbmjhuq1wIHbDoG8gZOG7iyBow6xuaDog4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDU1CisjOiBidWlsdGluL25vdGVzLmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjb3B5IG5vdGVzIGZyb20gJyVzJyB0byAnJXMnIgogbXNnc3RyICJH4bq3cCBs4buXaSBraGkgc2FvIGNow6lwIGdoaSBjaMO6IChub3RlKSB04burIOKAnCVz4oCdIHThu5tpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo1NTMgYnVpbHRpbi9ub3Rlcy5jOjYyNgotIzogYnVpbHRpbi9ub3Rlcy5jOjYzOCBidWlsdGluL25vdGVzLmM6NzExIGJ1aWx0aW4vbm90ZXMuYzo3NTgKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDMyCisjOiBidWlsdGluL25vdGVzLmM6MzcxIGJ1aWx0aW4vbm90ZXMuYzo0MjUgYnVpbHRpbi9ub3Rlcy5jOjQ5OAorIzogYnVpbHRpbi9ub3Rlcy5jOjUxMCBidWlsdGluL25vdGVzLmM6NTgzIGJ1aWx0aW4vbm90ZXMuYzo2MzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MDQKIG1zZ2lkICJ0b28gbWFueSBwYXJhbWV0ZXJzIgogbXNnc3RyICJxdcOhIG5oaeG7gXUgxJHhu5FpIHPhu5EiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MTIgYnVpbHRpbi9ub3Rlcy5jOjc3MQorIzogYnVpbHRpbi9ub3Rlcy5jOjM4NCBidWlsdGluL25vdGVzLmM6NjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG5vdGUgZm91bmQgZm9yIG9iamVjdCAlcy4iCiBtc2dzdHIgImtow7RuZyB0w6xtIHRo4bqleSBnaGkgY2jDuiBjaG8gxJHhu5FpIHTGsOG7o25nICVzLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzNCBidWlsdGluL25vdGVzLmM6NjkxCisjOiBidWlsdGluL25vdGVzLmM6NDA2IGJ1aWx0aW4vbm90ZXMuYzo1NjMKIG1zZ2lkICJub3RlIGNvbnRlbnRzIGFzIGEgc3RyaW5nIgogbXNnc3RyICJu4buZaSBkdW5nIGdoaSBjaMO6IChub3RlKSBu4bqxbSB0cm9uZyBt4buZdCBjaHXhu5dpIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTM3IGJ1aWx0aW4vbm90ZXMuYzo2OTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MDkgYnVpbHRpbi9ub3Rlcy5jOjU2NgogbXNnaWQgIm5vdGUgY29udGVudHMgaW4gYSBmaWxlIgogbXNnc3RyICJu4buZaSBkdW5nIGdoaSBjaMO6IChub3RlKSBu4bqxbSB0cm9uZyBt4buZdCB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkgYnVpbHRpbi9ub3Rlcy5jOjU0MiBidWlsdGluL25vdGVzLmM6Njk2Ci0jOiBidWlsdGluL25vdGVzLmM6Njk5IGJ1aWx0aW4vdGFnLmM6NDc0CisjOiBidWlsdGluL25vdGVzLmM6NDExIGJ1aWx0aW4vbm90ZXMuYzo0MTQgYnVpbHRpbi9ub3Rlcy5jOjU2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU3MSBidWlsdGluL3RhZy5jOjQ3NAogbXNnaWQgIm9iamVjdCIKIG1zZ3N0ciAixJHhu5FpIHTGsOG7o25nIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQwIGJ1aWx0aW4vbm90ZXMuYzo2OTcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTIgYnVpbHRpbi9ub3Rlcy5jOjU2OQogbXNnaWQgInJldXNlIGFuZCBlZGl0IHNwZWNpZmllZCBub3RlIG9iamVjdCIKIG1zZ3N0ciAiZMO5bmcgbOG6oWkgbmjGsG5nIGPDsyBz4butYSBjaOG7r2EgxJHhu5FpIHTGsOG7o25nIG5vdGUgxJHDoyBjaOG7iSByYSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0MyBidWlsdGluL25vdGVzLmM6NzAwCisjOiBidWlsdGluL25vdGVzLmM6NDE1IGJ1aWx0aW4vbm90ZXMuYzo1NzIKIG1zZ2lkICJyZXVzZSBzcGVjaWZpZWQgbm90ZSBvYmplY3QiCiBtc2dzdHIgImTDuW5nIGzhuqFpIMSR4buRaSB0xrDhu6NuZyBnaGkgY2jDuiAobm90ZSkgxJHDoyBjaOG7iSByYSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0NSBidWlsdGluL25vdGVzLmM6NjEzCisjOiBidWlsdGluL25vdGVzLmM6NDE3IGJ1aWx0aW4vbm90ZXMuYzo0ODUKIG1zZ2lkICJyZXBsYWNlIGV4aXN0aW5nIG5vdGVzIgogbXNnc3RyICJ0aGF5IHRo4bq/IGdoaSBjaMO6IHRyxrDhu5tjIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTc5CisjOiBidWlsdGluL25vdGVzLmM6NDUxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgYWRkIG5vdGVzLiBGb3VuZCBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzLiBVc2UgJy1mJyB0byBvdmVyd3JpdGUgIgpAQCAtNzA1OCwyNCArNzI5MSwyNCBAQAogIktow7RuZyB0aOG7gyB0aMOqbSBjw6FjIGdoaSBjaMO6LiDEkMOjIHTDrG0gdGjhuqV5IGPDoWMgZ2hpIGNow7ogxJHDoyBjw7Mgc+G6tW4gY2hvIMSR4buRaSB0xrDhu6NuZyAiCiAiJXMuIFPhu60gZOG7pW5nIHTDuXkgY2jhu41uIOKAnC1m4oCdIMSR4buDIGdoaSDEkcOoIGzDqm4gY8OhYyBnaGkgY2jDuiBjxakiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1ODQgYnVpbHRpbi9ub3Rlcy5jOjY2MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQ1NiBidWlsdGluL25vdGVzLmM6NTMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk92ZXJ3cml0aW5nIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXNcbiIKIG1zZ3N0ciAixJBhbmcgZ2hpIMSRw6ggbMOqbiBnaGkgY2jDuiBjxakgY2hvIMSR4buRaSB0xrDhu6NuZyAlc1xuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjE0CisjOiBidWlsdGluL25vdGVzLmM6NDg2CiBtc2dpZCAicmVhZCBvYmplY3RzIGZyb20gc3RkaW4iCiBtc2dzdHIgIsSR4buNYyBjw6FjIMSR4buRaSB0xrDhu6NuZyB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODgKIG1zZ2lkICJsb2FkIHJld3JpdGluZyBjb25maWcgZm9yIDxjb21tYW5kPiAoaW1wbGllcyAtLXN0ZGluKSIKIG1zZ3N0ciAidOG6o2kgY+G6pXUgaMOsbmggY2jDqXAgbOG6oWkgY2hvIDxs4buHbmg+IChuZ+G6p20gxJHhu4tuaCBsw6AgLS1zdGRpbikiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYKIG1zZ2lkICJ0b28gZmV3IHBhcmFtZXRlcnMiCiBtc2dzdHIgInF1w6Egw610IMSR4buRaSBz4buRIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjU1CisjOiBidWlsdGluL25vdGVzLmM6NTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgY29weSBub3Rlcy4gRm91bmQgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlcy4gVXNlICctZicgdG8gb3ZlcndyaXRlICIKQEAgLTcwODQsMTIgKzczMTcsMTIgQEAKICJLaMO0bmcgdGjhu4Mgc2FvIGNow6lwIGPDoWMgZ2hpIGNow7ouIMSQw6MgdMOsbSB0aOG6pXkgY8OhYyBnaGkgY2jDuiDEkcOjIGPDsyBz4bq1biBjaG8gxJHhu5FpICIKICJ0xrDhu6NuZyAlcy4gU+G7rSBk4bulbmcgdMO5eSBjaOG7jW4g4oCcLWbigJ0gxJHhu4MgZ2hpIMSRw6ggbMOqbiBjw6FjIGdoaSBjaMO6IGPFqSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY2NworIzogYnVpbHRpbi9ub3Rlcy5jOjUzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNaXNzaW5nIG5vdGVzIG9uIHNvdXJjZSBvYmplY3QgJXMuIENhbm5vdCBjb3B5LiIKIG1zZ3N0ciAiVGhp4bq/dSBnaGkgY2jDuiB0csOqbiDEkeG7kWkgdMaw4bujbmcgbmd14buRbiAlcy4gS2jDtG5nIHRo4buDIHNhbyBjaMOpcC4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3MTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSAtbS8tRi8tYy8tQyBvcHRpb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGZvciB0aGUgJ2VkaXQnIHN1YmNvbW1hbmQuXG4iCkBAIC03MDk4LDE1ICs3MzMxLDE1IEBACiAiQ8OhYyB0w7l5IGNo4buNbiAtbS8tRi8tYy8tQyDEkcOjIGPhu5Uga2jDtG5nIGPDsm4gZMO5bmcgbuG7r2EgY2hvIGzhu4duaCBjb24g4oCcZWRpdOKAnS5cbiIKICJYaW4gaMOjeSBz4butIGThu6VuZyBs4buHbmggc2F1IMSR4buDIHRoYXkgdGjhur86IOKAnGdpdCBub3RlcyBhZGQgLWYgLW0vLUYvLWMvLUPigJ0uXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzUKIG1zZ2lkICJHZW5lcmFsIG9wdGlvbnMiCiBtc2dzdHIgIlTDuXkgY2jhu41uIGNodW5nIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY1CisjOiBidWlsdGluL25vdGVzLmM6NzM3CiBtc2dpZCAiTWVyZ2Ugb3B0aW9ucyIKIG1zZ3N0ciAiVMO5eSBjaOG7jW4gduG7gSBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2NworIzogYnVpbHRpbi9ub3Rlcy5jOjczOQogbXNnaWQgIiIKICJyZXNvbHZlIG5vdGVzIGNvbmZsaWN0cyB1c2luZyB0aGUgZ2l2ZW4gc3RyYXRlZ3kgKG1hbnVhbC9vdXJzL3RoZWlycy91bmlvbi8iCiAiY2F0X3NvcnRfdW5pcSkiCkBAIC03MTE0LDQ2ICs3MzQ3LDQ2IEBACiAicGjDom4gZ2nhuqNpIGPDoWMgeHVuZyDEkeG7mXQg4oCcbm90ZXPigJ0gc+G7rSBk4bulbmcgY2hp4bq/biBsxrDhu6NjIMSRw6MgxJHGsGEgcmEgKG1hbnVhbC9vdXJzLyIKICJ0aGVpcnMvdW5pb24vY2F0X3NvcnRfdW5pcSkiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjkKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDEKIG1zZ2lkICJDb21taXR0aW5nIHVubWVyZ2VkIG5vdGVzIgogbXNnc3RyICJDaHV54buDbiBnaWFvIGPDoWMgbm90ZSBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3MQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0MwogbXNnaWQgImZpbmFsaXplIG5vdGVzIG1lcmdlIGJ5IGNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCiBtc2dzdHIgIiIKICJjw6FjIG5vdGUgY3Xhu5FpIGPDuW5nIMSRxrDhu6NjIGjDsmEgdHLhu5luIGLhu59pIGPDoWMgbm90ZSBjaMawYSBow7JhIHRy4buZbiBj4bunYSBs4bqnbiBjaHV54buDbiAiCiAiZ2lhbyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3MworIzogYnVpbHRpbi9ub3Rlcy5jOjc0NQogbXNnaWQgIkFib3J0aW5nIG5vdGVzIG1lcmdlIHJlc29sdXRpb24iCiBtc2dzdHIgIkjhu6d5IGLhu48gcGjDom4gZ2nhuqNpIGdoaSBjaMO6IChub3RlKSBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0NwogbXNnaWQgImFib3J0IG5vdGVzIG1lcmdlIgogbXNnc3RyICJi4buPIHF1YSBow7JhIHRy4buZbiBjw6FjIGdoaSBjaMO6IChub3RlKSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk3MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJPYmplY3QgJXMgaGFzIG5vIG5vdGVcbiIKIG1zZ3N0ciAixJDhu5FpIHTGsOG7o25nICVzIGtow7RuZyBjw7MgZ2hpIGNow7ogKG5vdGUpXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5ODIKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4NTQKIG1zZ2lkICJhdHRlbXB0IHRvIHJlbW92ZSBub24tZXhpc3RlbnQgbm90ZSBpcyBub3QgYW4gZXJyb3IiCiBtc2dzdHIgImPhu5EgZ+G6r25nIGfhu6EgYuG7jyBt4buZdCBub3RlIGNoxrBhIHThu6tuZyB04buTbiB04bqhaSBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBs4buXaSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk4NQorIzogYnVpbHRpbi9ub3Rlcy5jOjg1NwogbXNnaWQgInJlYWQgb2JqZWN0IG5hbWVzIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICLEkeG7jWMgdMOqbiDEkeG7kWkgdMaw4bujbmcgdOG7qyB0aGnhur90IGLhu4sgbmjhuq1wIGNodeG6qW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDY2CisjOiBidWlsdGluL25vdGVzLmM6OTM4CiBtc2dpZCAibm90ZXNfcmVmIgogbXNnc3RyICJub3Rlc19yZWYiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDY3CisjOiBidWlsdGluL25vdGVzLmM6OTM5CiBtc2dpZCAidXNlIG5vdGVzIGZyb20gPG5vdGVzX3JlZj4iCiBtc2dzdHIgImTDuW5nIOKAnG5vdGVz4oCdIHThu6sgPG5vdGVzX3JlZj4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMTAyIGJ1aWx0aW4vcmVtb3RlLmM6MTU5OAorIzogYnVpbHRpbi9ub3Rlcy5jOjk3NCBidWlsdGluL3JlbW90ZS5jOjE1OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBzdWJjb21tYW5kOiAlcyIKIG1zZ3N0ciAiS2jDtG5nIGhp4buDdSBjw6J1IGzhu4duaCBjb246ICVzIgpAQCAtNzM5NCw3ICs3NjI3LDcgQEAKICIgICAgZ2l0IHB1c2ggJXMgJXNcbiIKICIlcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTIxCisjOiBidWlsdGluL3B1c2guYzoxMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgbm90IGN1cnJlbnRseSBvbiBhIGJyYW5jaC5cbiIKQEAgLTc0MDksNyArNzY0Miw3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PHTDqm4tY+G7p2EtbmjDoW5oLW3DoXktY2jhu6c+XG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEyOAorIzogYnVpbHRpbi9wdXNoLmM6MTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG5vIHVwc3RyZWFtIGJyYW5jaC5cbiIKQEAgLTc0MjMsMTIgKzc2NTYsMTIgQEAKICJcbiIKICIgICAgZ2l0IHB1c2ggLS1zZXQtdXBzdHJlYW0gJXMgJXNcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTM2CisjOiBidWlsdGluL3B1c2guYzoxMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBtdWx0aXBsZSB1cHN0cmVhbSBicmFuY2hlcywgcmVmdXNpbmcgdG8gcHVzaC4iCiBtc2dzdHIgIk5ow6FuaCBoaeG7h24gdOG6oWkgJXMgY8OzIMSRYSBuaMOhbmggdGjGsOG7o25nIG5ndeG7k24gKHVwc3RyZWFtKSwgdOG7qyBjaOG7kWkgcHVzaC4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzOQorIzogYnVpbHRpbi9wdXNoLmM6MTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIHB1c2hpbmcgdG8gcmVtb3RlICclcycsIHdoaWNoIGlzIG5vdCB0aGUgdXBzdHJlYW0gb2ZcbiIKQEAgLTc0NDAsNyArNzY3Myw3IEBACiAibmjDoW5oIGhp4buHbiB04bqhaSDigJwlc+KAnSBj4bunYSBi4bqhbiwgbcOgIGtow7RuZyBiw6FvIGNobyB0w7RpIGJp4bq/dCBsw6AgY8OhaSBnw6wgxJHGsOG7o2MgcHVzaFxuIgogIsSR4buDIGPhuq1wIG5o4bqtdCBuaMOhbmggbcOheSBjaOG7pyBuw6BvLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTUxCisjOiBidWlsdGluL3B1c2guYzoxNjUKIG1zZ2lkICIiCiAicHVzaC5kZWZhdWx0IGlzIHVuc2V0OyBpdHMgaW1wbGljaXQgdmFsdWUgaXMgY2hhbmdpbmcgaW5cbiIKICJHaXQgMi4wIGZyb20gJ21hdGNoaW5nJyB0byAnc2ltcGxlJy4gVG8gc3F1ZWxjaCB0aGlzIG1lc3NhZ2VcbiIKQEAgLTc0NzMsMjggKzc3MDYsMjggQEAKICJ04buxXG4iCiAi4oCcY3VycmVudOKAnSB0aGF5IHbDrCDigJxzaW1wbGXigJ0gbuG6v3UgYuG6oW4gdGjhu4luaCB0aG/huqNuZyBwaOG6o2kgc+G7rSBk4bulbmcgYuG6o24gR2l0IGPFqSkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjE5OQorIzogYnVpbHRpbi9wdXNoLmM6MjI1CiBtc2dpZCAiIgogIllvdSBkaWRuJ3Qgc3BlY2lmeSBhbnkgcmVmc3BlY3MgdG8gcHVzaCwgYW5kIHB1c2guZGVmYXVsdCBpcyBcIm5vdGhpbmdcIi4iCiBtc2dzdHIgIiIKICJC4bqhbiDEkcOjIGtow7RuZyBjaOG7iSByYSBt4buZdCByZWZzcGVjcyBuw6BvIMSR4buDIHB1c2gsIHbDoCBwdXNoLmRlZmF1bHQgbMOgIFwia2jDtG5nIGzDoCAiCiAiZ8OsIGPhuqNcIi4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIwNgorIzogYnVpbHRpbi9wdXNoLmM6MjMyCiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0aXAgb2YgeW91ciBjdXJyZW50IGJyYW5jaCBpcyBiZWhpbmRcbiIKLSJpdHMgcmVtb3RlIGNvdW50ZXJwYXJ0LiBNZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy4gJ2dpdCBwdWxsJylcbiIKLSJiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJpdHMgcmVtb3RlIGNvdW50ZXJwYXJ0LiBJbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuXG4iCisiJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCiAiVmnhu4djIGPhuq1wIG5o4bqtdCBi4buLIHThu6sgY2jhu5FpIGLhu59pIHbDrCDEkeG6p3UgbcO6dCBj4bunYSBuaMOhbmggxJHGsOG7o2MgcHVzaCBu4bqxbSDEkeG6sW5nIHNhdSBi4buZXG4iCiAicGjhuq1uIHTGsMahbmcg4bupbmcgY+G7p2EgbcOheSBjaOG7py4gSMOyYSB0cuG7mW4gduG7m2kgY8OhYyB0aGF5IMSR4buVaSB04burIG3DoXkgY2jhu6cgKHYuZC4g4oCcZ2l0ICIKLSJwdWxs4oCdKVxuIgorInB1bGwuLi7igJ0pXG4iCiAidHLGsOG7m2Mga2hpIGzhuqFpIHB1c2ggbOG6p24gbuG7r2EuXG4iCi0iWGVtIHRyb25nIHBo4bqnbiDigJxOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHPigJ0gdOG7qyBs4buHbmgg4oCcZ2l0IHB1c2ggLS1oZWxw4oCdIMSR4buDIGPDsyAiCi0idGjDtG5nIHRpbiBjaGkgdGnhur90LiIKKyJYZW0g4oCcTm90ZSBhYm91dCBmYXN0LWZvcndhcmRz4oCdIHThu6sgbOG7h25oIOKAnGdpdCBwdXNoIC0taGVscOKAnSDEkeG7gyBjw7MgdGjDtG5nIHRpbiBjaGkgIgorInRp4bq/dC4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIxMgorIzogYnVpbHRpbi9wdXNoLmM6MjM4CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKICJjb3VudGVycGFydC4gSWYgeW91IGRpZCBub3QgaW50ZW5kIHRvIHB1c2ggdGhhdCBicmFuY2gsIHlvdSBtYXkgd2FudCB0b1xuIgpAQCAtNzUwOSw0MSArNzc0Miw0MCBAQAogInRow6BuaCDigJxzaW1wbGXigJ0sIOKAnGN1cnJlbnTigJ0gaG/hurdjIOKAnHVwc3RyZWFt4oCdIMSR4buDIGNo4buJIHB1c2ggbmjDoW5oIGhp4buHbiBow6BuaCBtw6AgIgogInRow7RpLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjE4CisjOiBidWlsdGluL3B1c2guYzoyNDQKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgotImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgotIihlLmcuICdnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKKyIoZS5nLiAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICJWaeG7h2MgY+G6rXAgbmjhuq10IGLhu4sgdOG7qyBjaOG7kWkgYuG7n2kgdsOsIMSR4bqndSBtw7p0IGPhu6dhIG5ow6FuaCDEkcaw4bujYyBwdXNoIG7hurFtIMSR4bqxbmcgc2F1IGLhu5lcbiIKICJwaOG6rW4gdMawxqFuZyDhu6luZyBj4bunYSBtw6F5IGNo4bunLiBDaGVja291IG5ow6FuaCBuw6B5IHbDoCBow7JhIHRy4buZbiB24bubaSBjw6FjIHRoYXkgxJHhu5VpICIKICJ04burIG3DoXkgY2jhu6dcbiIKLSIodi5kLiDigJxnaXQgcHVsbOKAnSkgdHLGsOG7m2Mga2hpIGzhuqFpIHB1c2ggbOG6p24gbuG7r2EuXG4iCi0iWGVtIHRyb25nIHBo4bqnbiDigJxOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHPigJ0gdOG7qyBs4buHbmgg4oCcZ2l0IHB1c2ggLS1oZWxw4oCdIMSR4buDIGPDsyAiCi0idGjDtG5nIHRpbiBjaGkgdGnhur90LiIKKyIodi5kLiDigJxnaXQgcHVsbCAuLi7igJ0pIHRyxrDhu5tjIGtoaSBs4bqhaSBwdXNoIGzhuqduIG7hu69hLlxuIgorIlhlbSDigJxOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHPigJ0gdOG7qyBs4buHbmgg4oCcZ2l0IHB1c2ggLS1oZWxw4oCdIMSR4buDIGPDsyB0aMO0bmcgdGluIGNoaSAiCisidGnhur90LiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjI0CisjOiBidWlsdGluL3B1c2guYzoyNTAKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHJlbW90ZSBjb250YWlucyB3b3JrIHRoYXQgeW91IGRvXG4iCiAibm90IGhhdmUgbG9jYWxseS4gVGhpcyBpcyB1c3VhbGx5IGNhdXNlZCBieSBhbm90aGVyIHJlcG9zaXRvcnkgcHVzaGluZ1xuIgotInRvIHRoZSBzYW1lIHJlZi4gWW91IG1heSB3YW50IHRvIGZpcnN0IG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLixcbiIKLSInZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJ0byB0aGUgc2FtZSByZWYuIFlvdSBtYXkgd2FudCB0byBmaXJzdCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCisiKGUuZy4sICdnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKIG1zZ3N0ciAiIgogIlZp4buHYyBj4bqtcCBuaOG6rXQgYuG7iyB04burIGNo4buRaSBi4bufaSB2w6wgbcOheSBjaOG7pyBjw7MgY2jhu6lhIGPDtG5nIHZp4buHYyBtw6AgYuG6oW4ga2jDtG5nXG4iCi0iY8OzIOG7nyBtw6F5IG7hu5lpIGLhu5kgY+G7p2EgbcOsbmguIEzhu5dpIG7DoHkgdGjGsOG7nW5nIGPDsyBuZ3V5w6puIG5ow6JuIGLhu59pIGtobyBraMOhYyDEkeG6qXkgZOG7ryAiCi0ibGnhu4d1IGzDqm5cbiIKLSJjw7luZyBt4buZdCB0aGFtIGNoaeG6v3UuIELhuqFuIGPDsyBs4bq9IG114buRbiBow7JhIHRy4buZbiB24bubaSBjw6FjIHRoYXkgxJHhu5VpIHThu6sgbcOheSBjaOG7p1xuIgotIih2LmQuIOKAnGdpdCBwdWxs4oCdKSB0csaw4bubYyBraGkgbOG6oWkgcHVzaCBs4bqnbiBu4buvYS5cbiIKLSJYZW0gdHJvbmcgcGjhuqduIOKAnE5vdGUgYWJvdXQgZmFzdC1mb3J3YXJkc+KAnSB04burIGzhu4duaCDigJxnaXQgcHVzaCAtLWhlbHDigJ0gxJHhu4MgY8OzICIKLSJ0aMO0bmcgdGluIGNoaSB0aeG6v3QuIgorImPDsyDhu58gbcOheSBu4buZaSBi4buZIGPhu6dhIG3DrG5oLiBM4buXaSBuw6B5IHRoxrDhu51uZyBjw7Mgbmd1ecOqbiBuaMOibiBi4bufaSBraG8ga2jDoWMgxJHhuql5XG4iCisiZOG7ryBsaeG7h3UgbMOqbiBjw7luZyBt4buZdCB0aGFtIGNoaeG6v3UuIELhuqFuIGPDsyBs4bq9IG114buRbiBow7JhIHRy4buZbiB24bubaSBjw6FjIHRoYXkgxJHhu5VpXG4iCisidOG7qyBtw6F5IGNo4bunKHYuZC4g4oCcZ2l0IHB1bGwuLi7igJ0pIHRyxrDhu5tjIGtoaSBs4bqhaSBwdXNoIGzhuqduIG7hu69hLlxuIgorIlhlbSDigJxOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHPigJ0gdOG7qyBs4buHbmgg4oCcZ2l0IHB1c2ggLS1oZWxw4oCdIMSR4buDIGPDsyB0aMO0bmcgdGluIGNoaSAiCisidGnhur90LiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjMxCisjOiBidWlsdGluL3B1c2guYzoyNTcKIG1zZ2lkICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGFnIGFscmVhZHkgZXhpc3RzIGluIHRoZSByZW1vdGUuIgogbXNnc3RyICJWaeG7h2MgY+G6rXAgbmjhuq10IGLhu4sgdOG7qyBjaOG7kWkgYuG7n2kgdsOsIHRo4bq7IMSRw6Mgc+G6tW4gY8OzIHThu6sgdHLGsOG7m2MgdHLDqm4gbcOheSBjaOG7py4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzNAorIzogYnVpbHRpbi9wdXNoLmM6MjYwCiBtc2dpZCAiIgogIllvdSBjYW5ub3QgdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IHBvaW50cyBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIm9yIHVwZGF0ZSBhIHJlbW90ZSByZWYgdG8gbWFrZSBpdCBwb2ludCBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgpAQCAtNzU1NSwyMiArNzc4NywyMiBAQAogInTGsOG7o25nXG4iCiAia2jDtG5nIHBo4bqjaSBjaHV54buDbiBnaWFvLCBtw6Aga2jDtG5nIHPhu60gZOG7pW5nIHTDuXkgY2jhu41uIOKAnC0tZm9yY2XigJ0uXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI5NAorIzogYnVpbHRpbi9wdXNoLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlB1c2hpbmcgdG8gJXNcbiIKIG1zZ3N0ciAixJBhbmcgcHVzaCAoxJHhuql5KSBsw6puICVzXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI5OAorIzogYnVpbHRpbi9wdXNoLmM6MzI0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBwdXNoIHNvbWUgcmVmcyB0byAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgcHVzaCAoxJHhuql5IGzDqm4pIG3hu5l0IHPhu5EgdGhhbSBjaGnhur91IChyZWYpIMSR4bq/biDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzMxCisjOiBidWlsdGluL3B1c2guYzozNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHJlcG9zaXRvcnkgJyVzJyIKIG1zZ3N0ciAicmVwb3NpdG9yeSAoa2hvKSBzYWkg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMzMgorIzogYnVpbHRpbi9wdXNoLmM6MzU4CiBtc2dpZCAiIgogIk5vIGNvbmZpZ3VyZWQgcHVzaCBkZXN0aW5hdGlvbi5cbiIKICJFaXRoZXIgc3BlY2lmeSB0aGUgVVJMIGZyb20gdGhlIGNvbW1hbmQtbGluZSBvciBjb25maWd1cmUgYSByZW1vdGUgIgpAQCAtNzU5MSw4OCArNzgyMyw4OCBAQAogIlxuIgogIiAgICBnaXQgcHVzaCA8dMOqbj5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ3CisjOiBidWlsdGluL3B1c2guYzozNzMKIG1zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tYWxsIHbDoCAtLXRhZ3MgeHVuZyBraOG6r2MgbmhhdSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ4CisjOiBidWlsdGluL3B1c2guYzozNzQKIG1zZ2lkICItLWFsbCBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICItLWFsbCBraMO0bmcgdGjhu4MgxJHGsOG7o2MgdOG7lSBo4bujcCBjw7luZyB24bubaSByZWZzcGVjcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzUzCisjOiBidWlsdGluL3B1c2guYzozNzkKIG1zZ2lkICItLW1pcnJvciBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tbWlycm9yIHbDoCAtLXRhZ3MgeHVuZyBraOG6r2MgbmhhdSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzU0CisjOiBidWlsdGluL3B1c2guYzozODAKIG1zZ2lkICItLW1pcnJvciBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICItLW1pcnJvciBraMO0bmcgdGjhu4MgxJHGsOG7o2MgdOG7lSBo4bujcCBjw7luZyB24bubaSByZWZzcGVjcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzU5CisjOiBidWlsdGluL3B1c2guYzozODUKIG1zZ2lkICItLWFsbCBhbmQgLS1taXJyb3IgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1hbGwgdsOgIC0tbWlycm9yIHh1bmcga2jhuq9jIG5oYXUiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQxOQorIzogYnVpbHRpbi9wdXNoLmM6NDQ1CiBtc2dpZCAicmVwb3NpdG9yeSIKIG1zZ3N0ciAia2hvIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NgogbXNnaWQgInB1c2ggYWxsIHJlZnMiCiBtc2dzdHIgInB1c2ggdOG6pXQgY+G6oyByZWZzIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NwogbXNnaWQgIm1pcnJvciBhbGwgcmVmcyIKIG1zZ3N0ciAibWlycm9yIHThuqV0IGPhuqMgcmVmcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIzCisjOiBidWlsdGluL3B1c2guYzo0NDkKIG1zZ2lkICJkZWxldGUgcmVmcyIKIG1zZ3N0ciAieMOzYSByZWZzIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAogbXNnaWQgInB1c2ggdGFncyAoY2FuJ3QgYmUgdXNlZCB3aXRoIC0tYWxsIG9yIC0tbWlycm9yKSIKIG1zZ3N0ciAiIgogImPDoWMgdGjhursgcHVzaCAoa2jDtG5nIHRo4buDIHPhu60gZOG7pW5nIGPDuW5nIHbhu5tpIGPDoWMgdMO5eSBjaOG7jW4gLS1hbGwgaGF5IC0tbWlycm9yKSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI3CisjOiBidWlsdGluL3B1c2guYzo0NTMKIG1zZ2lkICJmb3JjZSB1cGRhdGVzIgogbXNnc3RyICLDqXAgYnXhu5ljIGPhuq1wIG5o4bqtdCIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI4CisjOiBidWlsdGluL3B1c2guYzo0NTQKIG1zZ2lkICJjaGVjayIKIG1zZ3N0ciAia2nhu4NtIHRyYSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI5CisjOiBidWlsdGluL3B1c2guYzo0NTUKIG1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBwdXNoaW5nIG9mIHN1Ym1vZHVsZXMiCiBtc2dzdHIgIsSRaeG7gXUga2hp4buDbiB2aeG7h2MgxJHhuql5IGzDqm4gKHB1c2gpIMSR4buHIHF1aSBj4bunYSBtw7QtxJF1bi1jb24iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzMQorIzogYnVpbHRpbi9wdXNoLmM6NDU3CiBtc2dpZCAidXNlIHRoaW4gcGFjayIKIG1zZ3N0ciAidOG6oW8gZ8OzaSBuaOG6uSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDMyIGJ1aWx0aW4vcHVzaC5jOjQzMworIzogYnVpbHRpbi9wdXNoLmM6NDU4IGJ1aWx0aW4vcHVzaC5jOjQ1OQogbXNnaWQgInJlY2VpdmUgcGFjayBwcm9ncmFtIgogbXNnc3RyICJuaOG6rW4gduG7gSBjaMawxqFuZyB0csOsbmggcGFjayIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM0CisjOiBidWlsdGluL3B1c2guYzo0NjAKIG1zZ2lkICJzZXQgdXBzdHJlYW0gZm9yIGdpdCBwdWxsL3N0YXR1cyIKIG1zZ3N0ciAixJHhurd0IHRoxrDhu6NuZyBuZ3Xhu5NuICh1cHN0cmVhbSkgY2hvIGdpdCBwdWxsL3N0YXR1cyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM3CisjOiBidWlsdGluL3B1c2guYzo0NjMKIG1zZ2lkICJwcnVuZSBsb2NhbGx5IHJlbW92ZWQgcmVmcyIKIG1zZ3N0ciAicHJ1bmUgKGPhuq90IGPhu6V0KSBuaOG7r25nIHRoYW0gY2hp4bq/dSAocmVmcykgYuG7iyBn4buhIGLhu48iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzOQorIzogYnVpbHRpbi9wdXNoLmM6NDY1CiBtc2dpZCAiYnlwYXNzIHByZS1wdXNoIGhvb2siCiBtc2dzdHIgInbDsm5nIHF1YSDigJxwcmUtcHVzaCBob29r4oCdIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgogbXNnaWQgInB1c2ggbWlzc2luZyBidXQgcmVsZXZhbnQgdGFncyIKIG1zZ3N0ciAicHVzaCBi4buLIHRyxrDhu6N0IG5oxrBuZyBjw6FjIHRo4bq7IHRow61jaCBo4bujcCIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUwCisjOiBidWlsdGluL3B1c2guYzo0NzYKIG1zZ2lkICItLWRlbGV0ZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFsbCwgLS1taXJyb3IgYW5kIC0tdGFncyIKIG1zZ3N0ciAiLS1kZWxldGUgbMOgIHh1bmcga2jhuq9jIHbhu5tpIGPDoWMgdMO5eSBjaOG7jW4gLS1hbGwsIC0tbWlycm9yIHbDoCAtLXRhZ3MiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MgorIzogYnVpbHRpbi9wdXNoLmM6NDc4CiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIi0tZGVsZXRlIGtow7RuZyBo4bujcCBsw70gbuG6v3Uga2jDtG5nIGPDsyBi4bqldCBr4buzIHRoYW0gY2hp4bq/dSAocmVmcykgbsOgbyIKIApAQCAtNzY4Nyw3MSArNzkxOSw4MSBAQAogIlstLWluZGV4LW91dHB1dD08dOG6rXAtdGluPl0gKC0tZW1wdHkgfCA8dHJlZS1pc2gxPiBbPHRyZWUtaXNoMj4gWzx0cmVlLSIKICJpc2gzPl1dKSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA5CiBtc2dpZCAid3JpdGUgcmVzdWx0aW5nIGluZGV4IHRvIDxmaWxlPiIKIG1zZ3N0ciAiZ2hpIG3hu6VjIGzhu6VjIGvhur90IHF14bqjIHbDoG8gPHThuq1wLXRpbj4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTExCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMgogbXNnaWQgIm9ubHkgZW1wdHkgdGhlIGluZGV4IgogbXNnc3RyICJjaOG7iSB24bubaSBi4bqjbmcgbeG7pWMgbOG7pWMgdHLhu5FuZyBy4buXbmciCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNAogbXNnaWQgIk1lcmdpbmciCiBtc2dzdHIgIkjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTYKIG1zZ2lkICJwZXJmb3JtIGEgbWVyZ2UgaW4gYWRkaXRpb24gdG8gYSByZWFkIgogbXNnc3RyICJ0aOG7sWMgaGnhu4duIG3hu5l0IGjDsmEgdHLhu5luIHRow6ptIHbDoG8gdmnhu4djIMSR4buNYyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTcKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE4CiBtc2dpZCAiMy13YXkgbWVyZ2UgaWYgbm8gZmlsZSBsZXZlbCBtZXJnaW5nIHJlcXVpcmVkIgogbXNnc3RyICIiCiAiaMOyYSB0cuG7mW4ga2nhu4N1IOKAnDMtd2F54oCdIG7hur91IGtow7RuZyBjw7MgdOG6rXAgdGluIG3hu6ljIGjDsmEgdHLhu5luIG7DoG8gxJHGsOG7o2MgecOqdSBj4bqndSAiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMAogbXNnaWQgIjMtd2F5IG1lcmdlIGluIHByZXNlbmNlIG9mIGFkZHMgYW5kIHJlbW92ZXMiCiBtc2dzdHIgImjDsmEgdHLhu5luIDMtd2F5IHRyb25nIHPhu7EgaGnhu4duIGRp4buHbiBj4bunYSDigJxhZGRz4oCdIHbDoCDigJxyZW1vdmVz4oCdIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjIKIG1zZ2lkICJzYW1lIGFzIC1tLCBidXQgZGlzY2FyZCB1bm1lcmdlZCBlbnRyaWVzIgogbXNnc3RyICJnaeG7kW5nIHbhu5tpIC1tLCBuaMawbmcgYuG7jyBxdWEgY8OhYyBt4bulYyBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjIKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIzCiBtc2dpZCAiPHN1YmRpcmVjdG9yeT4vIgogbXNnc3RyICI8dGjGsC1t4bulYy1jb24+LyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI0CiBtc2dpZCAicmVhZCB0aGUgdHJlZSBpbnRvIHRoZSBpbmRleCB1bmRlciA8c3ViZGlyZWN0b3J5Pi8iCiBtc2dzdHIgIsSR4buNYyBjw6J5IHbDoG8gdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjIGTGsOG7m2kgPHRoxrBfbeG7pWNfY29uPi8iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI2CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNwogbXNnaWQgInVwZGF0ZSB3b3JraW5nIHRyZWUgd2l0aCBtZXJnZSByZXN1bHQiCiBtc2dzdHIgImPhuq1wIG5o4bqtdCBjw6J5IGzDoG0gdmnhu4djIHbhu5tpIGvhur90IHF14bqjIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOAorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjkKIG1zZ2lkICJnaXRpZ25vcmUiCiBtc2dzdHIgImdpdGlnbm9yZSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjkKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMwCiBtc2dpZCAiYWxsb3cgZXhwbGljaXRseSBpZ25vcmVkIGZpbGVzIHRvIGJlIG92ZXJ3cml0dGVuIgogbXNnc3RyICJjaG8gcGjDqXAgY8OhYyB04bqtcCB0aW4gcsO1IHLDoG5nIGLhu4sgbOG7nSDEkWkgxJHGsOG7o2MgZ2hpIMSRw6giCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMyCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMwogbXNnaWQgImRvbid0IGNoZWNrIHRoZSB3b3JraW5nIHRyZWUgYWZ0ZXIgbWVyZ2luZyIKIG1zZ3N0ciAia2jDtG5nIGtp4buDbSB0cmEgY8OieSBsw6BtIHZp4buHYyBzYXUgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNAogbXNnaWQgImRvbid0IHVwZGF0ZSB0aGUgaW5kZXggb3IgdGhlIHdvcmsgdHJlZSIKIG1zZ3N0ciAia2jDtG5nIGPhuq1wIG5o4bqtdCBi4bqjbmcgbeG7pWMgbOG7pWMgaGF5IGPDonkgbMOgbSB2aeG7h2MiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNgogbXNnaWQgInNraXAgYXBwbHlpbmcgc3BhcnNlIGNoZWNrb3V0IGZpbHRlciIKIG1zZ3N0ciAiYuG7jyBxdWEgw6FwIGThu6VuZyBi4buZIGzhu41jIGzhuqV5IHJhIChjaGVja291dCkgdGjGsGEgdGjhu5t0IgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzgKIG1zZ2lkICJkZWJ1ZyB1bnBhY2stdHJlZXMiCiBtc2dzdHIgImfhu6EgbOG7l2kgdW5wYWNrLXRyZWVzIgogCisjOiBidWlsdGluL3JlZmxvZy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlcycgZm9yICclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgorbXNnc3RyICIlcycgY2hvICclcycga2jDtG5nIHBo4bqjaSBsw6AgZOG6pXUgdGjhu51pIGdpYW4gaOG7o3AgbOG7hyIKKworIzogYnVpbHRpbi9yZWZsb2cuYzo2MTYgYnVpbHRpbi9yZWZsb2cuYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCittc2dzdHIgIuKAnCVz4oCdIGtow7RuZyBwaOG6o2kgbMOgIGThuqV1IHRo4budaSBnaWFuIGjhu6NwIGzhu4ciCisKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTEKIG1zZ2lkICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0iCiBtc2dzdHIgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSIKQEAgLTgzMjcsOTcgKzg1NjksOTcgQEAKIG1zZ2lkICJGYWlsZWQgdG8gZmluZCB0cmVlIG9mICVzLiIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHTDrG0gY8OieSBj4bunYSAlcy4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzo5OAorIzogYnVpbHRpbi9yZXNldC5jOjk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkhFQUQgaXMgbm93IGF0ICVzIgogbXNnc3RyICJIRUFEIGhp4buHbiBnaeG7nSB04bqhaSAlcyIKIAotIzogYnVpbHRpbi9yZXNldC5jOjE2OQorIzogYnVpbHRpbi9yZXNldC5jOjE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gYSAlcyByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBt4buZdCAlcyByZXNldCDhu58gZ2nhu69hIGPhu6dhIHF1w6EgdHLDrG5oIGjDsmEgdHLhu5luLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI0OAorIzogYnVpbHRpbi9yZXNldC5jOjI1MQogbXNnaWQgImJlIHF1aWV0LCBvbmx5IHJlcG9ydCBlcnJvcnMiCiBtc2dzdHIgImzDoG0gdmnhu4djIOG7nyBjaOG6vyDEkeG7mSBpbSBs4bq3bmcsIGNo4buJIGhp4buDbiB0aOG7iyBraGkgY8OzIGzhu5dpIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUwCisjOiBidWlsdGluL3Jlc2V0LmM6MjUzCiBtc2dpZCAicmVzZXQgSEVBRCBhbmQgaW5kZXgiCiBtc2dzdHIgIsSR4bq3dCBs4bqhaSAocmVzZXQpIEhFQUQgdsOgIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MQorIzogYnVpbHRpbi9yZXNldC5jOjI1NAogbXNnaWQgInJlc2V0IG9ubHkgSEVBRCIKIG1zZ3N0ciAiY2jhu4kgxJHhurd0IGzhuqFpIChyZXNldCkgSEVBRCIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MyBidWlsdGluL3Jlc2V0LmM6MjU1CisjOiBidWlsdGluL3Jlc2V0LmM6MjU2IGJ1aWx0aW4vcmVzZXQuYzoyNTgKIG1zZ2lkICJyZXNldCBIRUFELCBpbmRleCBhbmQgd29ya2luZyB0cmVlIgogbXNnc3RyICLEkeG6t3QgbOG6oWkgSEVBRCwgYuG6o25nIG3hu6VjIGzhu6VjIHbDoCBjw6J5IGzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjU3CisjOiBidWlsdGluL3Jlc2V0LmM6MjYwCiBtc2dpZCAicmVzZXQgSEVBRCBidXQga2VlcCBsb2NhbCBjaGFuZ2VzIgogbXNnc3RyICLEkeG6t3QgbOG6oWkgSEVBRCBuaMawbmcgZ2nhu68gbOG6oWkgY8OhYyB0aGF5IMSR4buVaSBu4buZaSBi4buZIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjc1CisjOiBidWlsdGluL3Jlc2V0LmM6Mjc4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZXZpc2lvbi4iCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSBwaMOibiBnaeG6o2kg4oCcJXPigJ0gbmjGsCBsw6AgxJFp4buDbSB4w6l0IGR1eeG7h3QgaOG7o3AgbOG7hy4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNzggYnVpbHRpbi9yZXNldC5jOjI4NgorIzogYnVpbHRpbi9yZXNldC5jOjI4MSBidWlsdGluL3Jlc2V0LmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJy4iCiBtc2dzdHIgImtow7RuZyB0aOG7gyBwaMOibiB0w61jaCDEkeG7kWkgdMaw4bujbmcg4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjgzCisjOiBidWlsdGluL3Jlc2V0LmM6Mjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCB0cmVlLiIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHBow6JuIGdp4bqjaSDigJwlc+KAnSBuaMawIGzDoCBt4buZdCBjw6J5ICh0cmVlKSBo4bujcCBs4buHLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI5MgorIzogYnVpbHRpbi9yZXNldC5jOjI5NQogbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIKIG1zZ3N0ciAiLS1wYXRjaCB4dW5nIGto4bqvYyB24bubaSAtLXtoYXJkLG1peGVkLHNvZnR9IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzAxCisjOiBidWlsdGluL3Jlc2V0LmM6MzA0CiBtc2dpZCAiLS1taXhlZCB3aXRoIHBhdGhzIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIGluc3RlYWQuIgogbXNnc3RyICIiCiAiLS1taXhlZCB24bubaSBjw6FjIMSRxrDhu51uZyBk4bqrbiBraMO0bmcgY8OybiBkw7luZyBu4buvYTsgaMOjeSB0aGF5IHRo4bq/IGLhurFuZyBs4buHbmgg4oCcZ2l0ICIKICJyZXNldCAtLSA8xJHGsOG7nW5nX2ThuqtuPuKAnS4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMDMKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRvICVzIHJlc2V0IHdpdGggcGF0aHMuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBs4buHbmggJXMgcmVzZXQgduG7m2kgY8OhYyDEkcaw4budbmcgZOG6q24uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzEzCisjOiBidWlsdGluL3Jlc2V0LmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIHJlc2V0IGlzIG5vdCBhbGxvd2VkIGluIGEgYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICIlcyByZXNldCBraMO0bmcgxJHGsOG7o2MgcGjDqXAgdHLDqm4ga2hvIGJhcmUgKHRyw6puIG3DoXkgY2jhu6cpIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzMzCisjOiBidWlsdGluL3Jlc2V0LmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZXNldCBpbmRleCBmaWxlIHRvIHJldmlzaW9uICclcycuIgotbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhurd0IGzhuqFpIChyZXNldCkgYuG6o25nIG3hu6VjIGzhu6VjIHRow6BuaCDEkWnhu4NtIHjDqXQgbOG6oWkg4oCcJXPigJ0uIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhurd0IGzhuqFpIChyZXNldCkgYuG6o25nIG3hu6VjIGzhu6VjIHRow6BuaCDEkWnhu4NtIHjDqXQgZHV54buHdCDigJwlc+KAnS4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzkKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDIKIG1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKIG1zZ3N0ciAiTmjhu69uZyB0aGF5IMSR4buVaSBi4buLIGLhu48gdHLhuqFuZyB0aMOhaSAoc3RhZ2UpIHNhdSBraGkgcmVzZXQ6IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQ0CisjOiBidWlsdGluL3Jlc2V0LmM6MzQ3CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIG5ldyBpbmRleCBmaWxlLiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGdoaSB04bqtcCB0aW4gbMawdSBi4bqjbmcgbeG7pWMgbOG7pWMgbeG7m2kuIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjMzOQorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDUKIG1zZ2lkICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW29wdGlvbnNdIC0tIFs8YXJncz4uLi5dIgogbXNnc3RyICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW2PDoWMtdMO5eS1jaOG7jW5dIC0tIFs8dGguc+G7kT4uLi5dIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NAorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNTAKIG1zZ2lkICJrZWVwIHRoZSBgLS1gIHBhc3NlZCBhcyBhbiBhcmciCiBtc2dzdHIgImdp4buvIOKAnC0t4oCcIGNodXnhu4NuIHF1YSBsw6BtIHRoYW0gc+G7kSIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDYKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzUyCiBtc2dpZCAic3RvcCBwYXJzaW5nIGFmdGVyIHRoZSBmaXJzdCBub24tb3B0aW9uIGFyZ3VtZW50IgogbXNnc3RyICJk4burbmcgcGjDom4gdMOtY2ggc2F1IMSR4buRaSBz4buRIMSR4bqndSB0acOqbiBraMO0bmcgY8OzIHTDuXkgY2jhu41uIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjQ2NAorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzo0NzAKIG1zZ2lkICIiCiAiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtvcHRpb25zXSAtLSBbPGFyZ3M+Li4uXVxuIgogIiAgIG9yOiBnaXQgcmV2LXBhcnNlIC0tc3EtcXVvdGUgWzxhcmc+Li4uXVxuIgpAQCAtODQ0NywxNzYgKzg2ODksMjA0IEBACiBtc2dpZCAiZ2l0IGNoZXJyeS1waWNrIDxzdWJjb21tYW5kPiIKIG1zZ3N0ciAiZ2l0IGNoZXJyeS1waWNrIDxs4buHbmgtY29uPiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzo3MCBidWlsdGluL3JldmVydC5jOjkyCisjOiBidWlsdGluL3JldmVydC5jOjcxIGJ1aWx0aW4vcmV2ZXJ0LmM6OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiCiBtc2dzdHIgIiVzOiAlcyBraMO0bmcgdGjhu4MgxJHGsOG7o2Mgc+G7rSBk4bulbmcgduG7m2kgJXMiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTAzCisjOiBidWlsdGluL3JldmVydC5jOjEwNQogbXNnaWQgImVuZCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgImvhur90IHRow7pjIGNoZXJyeS1waWNrIGhheSByZXZlcnQgbGnDqm4gdGnhur9wIG5oYXUiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA0CisjOiBidWlsdGluL3JldmVydC5jOjEwNgogbXNnaWQgInJlc3VtZSByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgInBo4bulYyBo4buTaSBs4bqhaSBjaGVycnktcGljayBoYXkgcmV2ZXJ0IGxpw6puIHRp4bq/cCBuaGF1IgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDcKIG1zZ2lkICJjYW5jZWwgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJraMO0bmcgY2hlcnJ5LXBpY2sgaGF5IHJldmVydCBsacOqbiB0aeG6v3AgbmhhdSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA4CiBtc2dpZCAiZG9uJ3QgYXV0b21hdGljYWxseSBjb21taXQiCiBtc2dzdHIgImtow7RuZyBjb21taXQgbeG7mXQgY8OhY2ggdOG7sSDEkeG7mW5nLiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDcKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA5CiBtc2dpZCAiZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgInPhu61hIGzhuqFpIGNow7ogdGjDrWNoIGNobyBjb21taXQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEwCisjOiBidWlsdGluL3JldmVydC5jOjExMgogbXNnaWQgInBhcmVudCBudW1iZXIiCiBtc2dzdHIgInPhu5EgY+G7p2EgY2hhIG3hurkiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL3JldmVydC5jOjExNAogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICJjaGnhur9uIGzGsOG7o2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEzCisjOiBidWlsdGluL3JldmVydC5jOjExNQogbXNnaWQgIm9wdGlvbiIKIG1zZ3N0ciAidMO5eSBjaOG7jW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CisjOiBidWlsdGluL3JldmVydC5jOjExNgogbXNnaWQgIm9wdGlvbiBmb3IgbWVyZ2Ugc3RyYXRlZ3kiCiBtc2dzdHIgInTDuXkgY2jhu41uIGNobyBjaGnhur9uIGzGsOG7o2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI1CisjOiBidWlsdGluL3JldmVydC5jOjEyNwogbXNnaWQgImFwcGVuZCBjb21taXQgbmFtZSIKIG1zZ3N0ciAibuG7kWkgdGjDqm0gdMOqbiBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMjgKIG1zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQiCiBtc2dzdHIgImNobyBwaMOpcCBmYXN0LWZvcndhcmQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI3CisjOiBidWlsdGluL3JldmVydC5jOjEyOQogbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgogbXNnc3RyICJj4bqlbSBraOG7n2kgdOG6oW8gbOG6p24gY2h1eeG7g24gZ2lhbyB0cuG7kW5nIHLhu5duZyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMwCiBtc2dpZCAiYWxsb3cgY29tbWl0cyB3aXRoIGVtcHR5IG1lc3NhZ2VzIgogbXNnc3RyICJjaOG6pXAgbmjhuq1uIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgbcOgIGtow7RuZyBnaGkgY2jDuiBnw6wiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI5CisjOiBidWlsdGluL3JldmVydC5jOjEzMQogbXNnaWQgImtlZXAgcmVkdW5kYW50LCBlbXB0eSBjb21taXRzIgogbXNnc3RyICJnaeG7ryBs4bqhaSBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gZMawIHRo4burYSwgcuG7l25nIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMzUKIG1zZ2lkICJwcm9ncmFtIGVycm9yIgogbXNnc3RyICJs4buXaSBjaMawxqFuZyB0csOsbmgiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjIzCisjOiBidWlsdGluL3JldmVydC5jOjIyNQogbXNnaWQgInJldmVydCBmYWlsZWQiCiBtc2dzdHIgInJldmVydCBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMzgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjQwCiBtc2dpZCAiY2hlcnJ5LXBpY2sgZmFpbGVkIgogbXNnc3RyICJjaGVycnktcGljayBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9ybS5jOjE1CisjOiBidWlsdGluL3JtLmM6MTYKIG1zZ2lkICJnaXQgcm0gW29wdGlvbnNdIFstLV0gPGZpbGU+Li4uIgogbXNnc3RyICJnaXQgcm0gW2PDoWMtdMO5eS1jaOG7jW5dIFstLV0gPHThuq1wLXRpbj4uLi4iCiAKLSM6IGJ1aWx0aW4vcm0uYzo2NCBidWlsdGluL3JtLmM6MTg2Ci0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjY0CiBtc2dpZCAiIgotInN1Ym1vZHVsZSAnJXMnIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKSB1c2VzIGEgLmdpdCBkaXJlY3RvcnlcbiIKKyJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZSAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKKyJ1c2VzIGEgLmdpdCBkaXJlY3Rvcnk6IgorbXNnaWRfcGx1cmFsICIiCisidGhlIGZvbGxvd2luZyBzdWJtb2R1bGVzIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKVxuIgorInVzZSBhIC5naXQgZGlyZWN0b3J5OiIKK21zZ3N0clswXSAiIgorIm3DtC3EkXVuLWNvbiBzYXUgxJHDonkgKGhheSBt4buZdCB0cm9uZyBz4buRIG3DtC3EkXVuLWNvbiBiw6puIHRyb25nIGPhu6dhIG7DsylcbiIKKyJkw7luZyBt4buZdCB0aMawIG3hu6VjIC5naXQ6IgorbXNnc3RyWzFdICIiCisiY8OhYyBtw7QtxJF1bi1jb24gc2F1IMSRw6J5IChoYXkgbeG7mXQgdHJvbmcgc+G7kSBtw7QtxJF1bi1jb24gYsOqbiB0cm9uZyBj4bunYSBuw7MpXG4iCisiZMO5bmcgbeG7mXQgdGjGsCBt4bulYyAuZ2l0OiIKKworIzogYnVpbHRpbi9ybS5jOjcwCittc2dpZCAiIgorIlxuIgogIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIKIG1zZ3N0ciAiIgotIm3DtC3EkXVuLWNvbiDigJwlc+KAnSAoaG/hurdjIGPDoWkgbuG6sW0gdHJvbmcgY8OhYyBtw7QtxJF1bi1jb24pIGTDuW5nIHRoxrAgbeG7pWMgLmdpdFxuIgotIihkw7luZyDigJxybSAtcmbigJ0gbuG6v3UgYuG6oW4gdGjhu7FjIHPhu7EgbXXhu5FuIGfhu6EgYuG7jyBuw7MgY8O5bmcgduG7m2kgdOG6pXQgY+G6oyBs4buLY2ggc+G7rSBj4bunYSAiCisiXG4iCisiKGTDuW5nIC9cInJtIC1yZi9cIiBu4bq/dSBi4bqhbiB0aOG7sWMgc+G7sSBtdeG7kW4gZ+G7oSBi4buPIG7DsyBjw7luZyB24bubaSB04bqldCBj4bqjIGzhu4tjaCBz4butIGPhu6dhICIKICJjaMO6bmcpIgogCi0jOiBidWlsdGluL3JtLmM6MTc0Ci0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzMAogbXNnaWQgIiIKLSInJXMnIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZSBmaWxlIGFuZCB0aGUgSEVBRFxuIgorInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGVcbiIKKyJmaWxlIGFuZCB0aGUgSEVBRDoiCittc2dpZF9wbHVyYWwgIiIKKyJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGVcbiIKKyJmaWxlIGFuZCB0aGUgSEVBRDoiCittc2dzdHJbMF0gIiIKKyJ04bqtcCB0aW4gc2F1IMSRw6J5IGPDsyB0cuG6oW5nIHRow6FpIGtow6FjIGJp4buHdCBu4buZaSBkdW5nIHThu6sgY+G6oyB04bqtcCB0aW5cbiIKKyJ2w6AgY+G6oyBIRUFEOiIKK21zZ3N0clsxXSAiIgorImPDoWMgdOG6rXAgdGluIHNhdSDEkcOieSBjw7MgdHLhuqFuZyB0aMOhaSBraMOhYyBiaeG7h3QgbuG7mWkgZHVuZyB04burIGPhuqMgdOG6rXAgdGluXG4iCisidsOgIGPhuqMgSEVBRDoiCisKKyM6IGJ1aWx0aW4vcm0uYzoyMzUKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgotIuKAnCVz4oCdIGPDsyBu4buZaSBkdW5nIMSRxrDhu6NjIGzGsHUgdHLhuqFuZyB0aMOhaSBraMOhYyBiaeG7h3QgdOG7qyBj4bqjIHThuq1wIHRpbiB2w6AgY+G6oyBIRUFEXG4iCi0iKGTDuW5nIHTDuXkgY2jhu41uIC1mIMSR4buDIMOpcCBideG7mWMgZ+G7oSBi4buPKSIKKyJcbiIKKyIoZMO5bmcgLWYgxJHhu4MgYnXhu5ljIGfhu6EgYuG7jykiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxODAKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6MjM5Cittc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXg6IgorbXNnaWRfcGx1cmFsICJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ3N0clswXSAidOG6rXAgdGluIHNhdSDEkcOieSBjw7MgdGhheSDEkeG7lWkgdHLhuqFuZyB0aMOhaSB0cm9uZyBi4bqjbmcgbeG7pWMgbOG7pWM6IgorbXNnc3RyWzFdICJjw6FjIHThuq1wIHRpbiBzYXUgxJHDonkgY8OzIHRoYXkgxJHhu5VpIHRy4bqhbmcgdGjDoWkgdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjOiIKKworIzogYnVpbHRpbi9ybS5jOjI0MyBidWlsdGluL3JtLmM6MjU0CiBtc2dpZCAiIgotIiclcycgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleFxuIgorIlxuIgogIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCiBtc2dzdHIgIiIKLSLigJwlc+KAnSBjw7MgY8OhYyB0aGF5IMSR4buVaSDEkcaw4bujYyBsxrB1IHRy4bqhbmcgdGjDoWkgdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjXG4iCisiXG4iCiAiKGTDuW5nIHTDuXkgY2jhu41uIC0tY2FjaGVkIMSR4buDIGdp4buvIHThuq1wIHRpbiwgaG/hurdjIC1mIMSR4buDIMOpcCBideG7mWMgZ+G7oSBi4buPKSIKIAotIzogYnVpbHRpbi9ybS5jOjE5MQotIywgYy1mb3JtYXQKLW1zZ2lkICIiCi0iJyVzJyBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uc1xuIgotIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCi1tc2dzdHIgIiIKLSLigJwlc+KAnSBjw7MgY8OhYyB0aGF5IMSR4buVaSBu4buZaSBi4buZXG4iCi0iKGTDuW5nIHTDuXkgY2jhu41uIC0tY2FjaGVkIMSR4buDIGdp4buvIHThuq1wIHRpbiwgaG/hurdjIC1mIMSR4buDIMOpcCBideG7mWMgZ+G7oSBi4buPKSIKKyM6IGJ1aWx0aW4vcm0uYzoyNTEKK21zZ2lkICJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgorbXNnaWRfcGx1cmFsICJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgbG9jYWwgbW9kaWZpY2F0aW9uczoiCittc2dzdHJbMF0gInThuq1wIHRpbiBzYXUgxJHDonkgY8OzIG5o4buvbmcgdGhheSDEkeG7lWkgbuG7mWkgYuG7mToiCittc2dzdHJbMV0gIm5o4buvbmcgdOG6rXAgdGluIHNhdSDEkcOieSBjw7Mgbmjhu69uZyB0aGF5IMSR4buVaSBu4buZaSBi4buZOiIKIAotIzogYnVpbHRpbi9ybS5jOjIwNworIzogYnVpbHRpbi9ybS5jOjI2OQogbXNnaWQgImRvIG5vdCBsaXN0IHJlbW92ZWQgZmlsZXMiCiBtc2dzdHIgImtow7RuZyBsaeG7h3Qga8OqIGPDoWMgdOG6rXAgdGluIMSRw6MgZ+G7oSBi4buPIgogCi0jOiBidWlsdGluL3JtLmM6MjA4CisjOiBidWlsdGluL3JtLmM6MjcwCiBtc2dpZCAib25seSByZW1vdmUgZnJvbSB0aGUgaW5kZXgiCiBtc2dzdHIgImNo4buJIGfhu6EgYuG7jyB04burIG3hu6VjIGzhu6VjIgogCi0jOiBidWlsdGluL3JtLmM6MjA5CisjOiBidWlsdGluL3JtLmM6MjcxCiBtc2dpZCAib3ZlcnJpZGUgdGhlIHVwLXRvLWRhdGUgY2hlY2siCiBtc2dzdHIgImdoaSDEkcOoIGzDqm4ga2nhu4NtIHRyYSBj4bqtcCBuaOG6rXQiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMTAKKyM6IGJ1aWx0aW4vcm0uYzoyNzIKIG1zZ2lkICJhbGxvdyByZWN1cnNpdmUgcmVtb3ZhbCIKIG1zZ3N0ciAiY2hvIHBow6lwIGfhu6EgYuG7jyDEkeG7hyBxdWkiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMTIKKyM6IGJ1aWx0aW4vcm0uYzoyNzQKIG1zZ2lkICJleGl0IHdpdGggYSB6ZXJvIHN0YXR1cyBldmVuIGlmIG5vdGhpbmcgbWF0Y2hlZCIKIG1zZ3N0ciAidGhvw6F0IHJhIHbhu5tpIHRy4bqhbmcgdGjDoWkga2jDoWMga2jDtG5nIHRo4bqtbSBjaMOtIG7hur91IGtow7RuZyBjw7MgZ8OsIGto4bubcCIKIAotIzogYnVpbHRpbi9ybS5jOjI4MworIzogYnVpbHRpbi9ybS5jOjM0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgcmVtb3ZpbmcgJyVzJyByZWN1cnNpdmVseSB3aXRob3V0IC1yIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ+G7oSBi4buPIOKAnCVz4oCdIG3hu5l0IGPDoWNoIMSR4buHIHF1aSBtw6Aga2jDtG5nIGPDsyB0w7l5IGNo4buNbiAtciIKIAotIzogYnVpbHRpbi9ybS5jOjMyMgorIzogYnVpbHRpbi9ybS5jOjM4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgcm06IHVuYWJsZSB0byByZW1vdmUgJXMiCiBtc2dzdHIgImdpdCBybToga2jDtG5nIHRo4buDIGfhu6EgYuG7jyAlcyIKIAogIzogYnVpbHRpbi9zaG9ydGxvZy5jOjEzCiBtc2dpZCAiZ2l0IHNob3J0bG9nIFs8b3B0aW9ucz5dIFs8cmV2aXNpb24gcmFuZ2U+XSBbWy0tXSBbPHBhdGg+Li4uXV0iCi1tc2dzdHIgImdpdCBzaG9ydGxvZyBbY8OhYy10w7l5LWNo4buNbl0gWzx2w7luZy14ZW0teMOpdD5dIFtbLS1dIFs8xJHGsOG7nW5nLWThuqtuPi4uLl1dIgorbXNnc3RyICJnaXQgc2hvcnRsb2cgW2PDoWMtdMO5eS1jaOG7jW5dIFs8dsO5bmcteMOpdC1kdXnhu4d0Pl0gW1stLV0gWzzEkcaw4budbmctZOG6q24+Li4uXV0iCiAKICM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgogbXNnc3RyICJUaGnhur91IHTDqm4gdMOhYyBnaeG6ozogJXMiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjcKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjgKIG1zZ2lkICJzb3J0IG91dHB1dCBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBjb21taXRzIHBlciBhdXRob3IiCiBtc2dzdHIgInPhuq9wIHjhur9wIGvhur90IHh14bqldCB0dcOibiB0aGVvIHPhu5EgbMaw4bujbmcgY2h1eeG7g24gZ2lhbyB0csOqbiBt4buXaSB0w6FjIGdp4bqjIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjI5CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMwCiBtc2dpZCAiU3VwcHJlc3MgY29tbWl0IGRlc2NyaXB0aW9ucywgb25seSBwcm92aWRlcyBjb21taXQgY291bnQiCiBtc2dzdHIgIkNo4bq3biBt4buNaSBtw7QgdOG6oyBs4bqnbiBjaHV54buDbiBnaWFvLCBjaOG7iSDEkcawYSByYSBz4buRIGzGsOG7o25nIGzhuqduIGNodXnhu4NuIGdpYW8iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzEKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKIG1zZ2lkICJTaG93IHRoZSBlbWFpbCBhZGRyZXNzIG9mIGVhY2ggYXV0aG9yIgogbXNnc3RyICJIaeG7g24gdGjhu4sgdGjGsCDEkWnhu4duIHThu60gY2hvIHThu6tuZyB0w6FjIGdp4bqjIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMyCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMzCiBtc2dpZCAid1ssaTFbLGkyXV0iCiBtc2dzdHIgIndbLGkxWyxpMl1dIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMzCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM0CiBtc2dpZCAiTGluZXdyYXAgb3V0cHV0IgogbXNnc3RyICJOZ+G6r3QgZMOybmcga2hpIHF1w6EgZMOgaSIKIApAQCAtODY4MCwyMyArODk1MCwyMyBAQAogbXNnaWQgInNob3cgY29tbWl0cyBpbiB0b3BvbG9naWNhbCBvcmRlciIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyB0aGVvIHRo4bupIHThu7EgdMO0cMO0IgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjcxCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjcyCiBtc2dpZCAic2hvdyBvbmx5IGNvbW1pdHMgbm90IG9uIHRoZSBmaXJzdCBicmFuY2giCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8ga2jDtG5nIG7hurFtIHRyw6puIG5ow6FuaCDEkeG6p3UgdGnDqm4iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzMKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzQKIG1zZ2lkICJzaG93IG1lcmdlcyByZWFjaGFibGUgZnJvbSBvbmx5IG9uZSB0aXAiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIGzhuqduIGjDsmEgdHLhu5luIGPDsyB0aOG7gyDEkeG7jWMgxJHGsOG7o2MgY2jhu4kgdOG7qyBt4buZdCDEkeG6p3UgbcO6dCIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NQotbXNnaWQgInNob3cgY29tbWl0cyB3aGVyZSBubyBwYXJlbnQgY29tZXMgYmVmb3JlIGl0cyBjaGlsZHJlbiIKLW1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyBuxqFpIG3DoCBjaGEgbeG6uSDEkeG6v24gdHLGsOG7m2MgY29uIGPhu6dhIG7DsyIKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzYKK21zZ2lkICJ0b3BvbG9naWNhbGx5IHNvcnQsIG1haW50YWluaW5nIGRhdGUgb3JkZXIgd2hlcmUgcG9zc2libGUiCittc2dzdHIgInPhuq9wIHjhur9wIGjDrG5oIHRow6FpIGjhu41jLCBi4bqjbyB0csOsIHRo4bupIHThu7EgbmfDoHkgbuG6v3UgY8OzIHRo4buDIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc3CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc5CiBtc2dpZCAiPG4+Wyw8YmFzZT5dIgogbXNnc3RyICI8bj5bLDxjxqEgc+G7nz5dIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc4CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjgwCiBtc2dpZCAic2hvdyA8bj4gbW9zdCByZWNlbnQgcmVmLWxvZyBlbnRyaWVzIHN0YXJ0aW5nIGF0IGJhc2UiCiBtc2dzdHIgImhp4buDbiB0aOG7iyA8bj4gY8OhYyBt4bulYyDigJxyZWYtbG9n4oCdIGfhuqduIG5o4bqldCBr4buDIHThu6sgbuG7gW4gKGJhc2UpIgogCkBAIC04NzEyLDM4ICs4OTgyLDM4IEBACiBtc2dpZCAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9cGF0dGVybl0gPCByZWYtbGlzdCIKIG1zZ3N0ciAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9beG6q3VdIDwgcmVmLWxpc3QiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjUKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjgKIG1zZ2lkICJvbmx5IHNob3cgdGFncyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggaGVhZHMpIgogbXNnc3RyICJjaOG7iSBoaeG7g24gdGjhu4sgdGjhursgKGPDsyB0aOG7gyB04buVIGjhu6NwIGPDuW5nIHbhu5tpIMSR4bqndSkiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjkKIG1zZ2lkICJvbmx5IHNob3cgaGVhZHMgKGNhbiBiZSBjb21iaW5lZCB3aXRoIHRhZ3MpIgogbXNnc3RyICJjaOG7iSBoaeG7g24gdGjhu4sgxJHhuqd1IChjw7MgdGjhu4MgdOG7lSBo4bujcCBjw7luZyB24bubaSB0aOG6uykiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjcKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzAKIG1zZ2lkICJzdHJpY3RlciByZWZlcmVuY2UgY2hlY2tpbmcsIHJlcXVpcmVzIGV4YWN0IHJlZiBwYXRoIgogbXNnc3RyICIiCiAidmnhu4djIGtp4buDbSB0cmEgdGhhbSBjaGnhur91IGNow61uaCB4w6FjLCDEkcOyaSBo4buPaSBjaMOtbmggeMOhYyDEkcaw4budbmcgZOG6q24gdGhhbSBjaGnhur91ICIKICIocmVmKSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MCBidWlsdGluL3Nob3ctcmVmLmM6MTcyCi1tc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiCi1tc2dzdHIgImhp4buDbiB0aOG7iyB0aGFtIGNoaeG6v3UgY+G7p2EgSEVBRCIKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzMgYnVpbHRpbi9zaG93LXJlZi5jOjE3NgorbXNnaWQgInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlLCBldmVuIGlmIGl0IHdvdWxkIGJlIGZpbHRlcmVkIG91dCIKK21zZ3N0ciAiaGnhu4NuIHRo4buLIHRoYW0gY2hp4bq/dSBIRUFELCBuZ2F5IGPhuqMga2hpIG7DsyDEkcOjIMSRxrDhu6NjIGzhu41jIHJhIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTc0CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTc4CiBtc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbnRvIG9iamVjdCBJRHMiCiBtc2dzdHIgImLDo2kgYuG7jyB0aGFtIGNoaeG6v3UgY8OhYyB0aOG6uyB0aMOgbmggcmEgY8OhYyBJRCDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKIG1zZ2lkICJvbmx5IHNob3cgU0hBMSBoYXNoIHVzaW5nIDxuPiBkaWdpdHMiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyBtw6MgYsSDbSBTSEExIHPhu60gZOG7pW5nIDxuPiBjaOG7ryBz4buRIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgwCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg0CiBtc2dpZCAiZG8gbm90IHByaW50IHJlc3VsdHMgdG8gc3Rkb3V0ICh1c2VmdWwgd2l0aCAtLXZlcmlmeSkiCiBtc2dzdHIgIiIKICJraMO0bmcgaGnhu4NuIHRo4buLIGvhur90IHF14bqjIHJhIMSR4bqndSByYSBjaHXhuqluIChzdGRvdXQpIChjaOG7iSBo4buvdSBk4bulbmcgduG7m2kgLS12ZXJpZnkpIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgyCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg2CiBtc2dpZCAic2hvdyByZWZzIGZyb20gc3RkaW4gdGhhdCBhcmVuJ3QgaW4gbG9jYWwgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogImhp4buDbiB0aOG7iyBjw6FjIHRoYW0gY2hp4bq/dSAocmVmcykgdOG7qyDEkeG6p3UgdsOgbyB0acOqdSBjaHXhuqluIChzdGRpbikgY8OhaSBtw6Aga2jDtG5nIOG7nyAiCkBAIC05MTY0LDMwICs5NDM0LDMzIEBACiBtc2dpZCAib25seSB1c2VmdWwgZm9yIGRlYnVnZ2luZyIKIG1zZ3N0ciAiY2jhu4kgaOG7r3Ugw61jaCBraGkgY+G6p24gZ+G7oSBs4buXaSIKIAotIzogZ2l0LmM6MTYKKyM6IGdpdC5jOjE3CiBtc2dpZCAiIgogIidnaXQgaGVscCAtYScgYW5kICdnaXQgaGVscCAtZycgbGlzdHMgYXZhaWxhYmxlIHN1YmNvbW1hbmRzIGFuZCBzb21lXG4iCiAiY29uY2VwdCBndWlkZXMuIFNlZSAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBvciAnZ2l0IGhlbHAgPGNvbmNlcHQ+J1xuIgogInRvIHJlYWQgYWJvdXQgYSBzcGVjaWZpYyBzdWJjb21tYW5kIG9yIGNvbmNlcHQuIgogbXNnc3RyICIiCiAi4oCcZ2l0IGhlbHAgLWHigJ0gdsOgIOKAnGdpdCBoZWxwIC1n4oCdIGxp4buHdCBrw6ogY8OhYyBjw6J1IGzhu4duaCBjb24gc+G6tW4gY8OzIHbDoCBt4buZdCBz4buRXG4iCi0iaMaw4bubbmcgZOG6q24ga2jDoWkgbmnhu4dtIGPGoSBi4bqjbi4gWGVtIOKAnGdpdCBoZWxwIDxs4buHbmg+4oCdIGhheSDigJxnaXQgaGVscCA8a2jDoWkgIgotIm5p4buHbT7igJ1cbiIKLSLEkeG7gyDEkeG7jWMgY8OhYyDEkeG6t2MgdOG6oyBjaG8gbOG7h25oIGhheSBraMOhaSBuaeG7h20gxJHDsy4iCisiaMaw4bubbmcgZOG6q24gduG7gSBraMOhaSBuaeG7h20uIFhlbSDigJxnaXQgaGVscCA8bOG7h25oPuKAnSBoYXkg4oCcZ2l0IGhlbHAgPGtow6FpLW5p4buHbT7igJ1cbiIKKyLEkeG7gyB4ZW0gY8OhYyDEkeG6t2MgdOG6oyBjaG8gbOG7h25oIGhheSBraMOhaSBuaeG7h20gY+G7pSB0aOG7gy4iCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoxNTYKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNDQKK21zZ2lkICJleHBpcnkgZGF0ZSIKK21zZ3N0ciAibmfDoHkgaOG6v3QgaOG6oW4iCisKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNTkKIG1zZ2lkICJuby1vcCAoYmFja3dhcmQgY29tcGF0aWJpbGl0eSkiCiBtc2dzdHIgIm5vLW9wICh0xrDGoW5nIHRow61jaCBuZ8aw4bujYykiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzIKKyM6IHBhcnNlLW9wdGlvbnMuaDoyMzYKIG1zZ2lkICJiZSBtb3JlIHZlcmJvc2UiCiBtc2dzdHIgImNoaSB0aeG6v3QgaMahbiBu4buvYSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzNAorIzogcGFyc2Utb3B0aW9ucy5oOjIzOAogbXNnaWQgImJlIG1vcmUgcXVpZXQiCiBtc2dzdHIgImltIGzhurduZyBoxqFuIG7hu69hIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjQwCisjOiBwYXJzZS1vcHRpb25zLmg6MjQ0CiBtc2dpZCAidXNlIDxuPiBkaWdpdHMgdG8gZGlzcGxheSBTSEEtMXMiCiBtc2dzdHIgInPhu60gZOG7pW5nIDxuPiBjaOG7ryBz4buRIMSR4buDIGhp4buDbiB0aOG7iyBTSEEtMXMiCiAKQEAgLTkyMDUsNyArOTQ3OCw3IEBACiAKICM6IGNvbW1vbi1jbWRzLmg6MTEKIG1zZ2lkICJDaGVja291dCBhIGJyYW5jaCBvciBwYXRocyB0byB0aGUgd29ya2luZyB0cmVlIgotbXNnc3RyICJM4bqleSByYSAoY2hlY2tvdXQpIG3hu5l0IG5ow6FuaCBoYXkgY8OhYyDEkcaw4budbmcgZOG6q24gdOG7m2kgY8OieSBsw6BtIHZp4buHYyIKK21zZ3N0ciAiTOG6pXkgcmEgbeG7mXQgbmjDoW5oIGhheSBjw6FjIMSRxrDhu51uZyBk4bqrbiB04bubaSBjw6J5IGzDoG0gdmnhu4djIgogCiAjOiBjb21tb24tY21kcy5oOjEyCiBtc2dpZCAiQ2xvbmUgYSByZXBvc2l0b3J5IGludG8gYSBuZXcgZGlyZWN0b3J5IgpAQCAtOTIxOCwxMiArOTQ5MSwxMiBAQAogIzogY29tbW9uLWNtZHMuaDoxNAogbXNnaWQgIlNob3cgY2hhbmdlcyBiZXR3ZWVuIGNvbW1pdHMsIGNvbW1pdCBhbmQgd29ya2luZyB0cmVlLCBldGMiCiBtc2dzdHIgIiIKLSJIaeG7g24gdGjhu4sgY8OhYyB0aGF5IMSR4buVaSBnaeG7r2Egbmjhu69uZyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpLCBjb21taXQgdsOgIGPDonkgbMOgbSAiCi0idmnhu4djLCB2LnYuLiIKKyJYZW0gY8OhYyB0aGF5IMSR4buVaSBnaeG7r2Egbmjhu69uZyBs4bqnbiBjaHV54buDbiBnaWFvLFxuIgorIiAgICAgICAgICAgICAgIGdp4buvYSBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIHbDoCBjw6J5IGzDoG0gdmnhu4djLCB2LnYuLiIKIAogIzogY29tbW9uLWNtZHMuaDoxNQogbXNnaWQgIkRvd25sb2FkIG9iamVjdHMgYW5kIHJlZnMgZnJvbSBhbm90aGVyIHJlcG9zaXRvcnkiCi1tc2dzdHIgIkPDoWMgxJHhu5FpIHTGsOG7o25nIHbDoCB0aGFtIGNoaeG6v3UgxJHGsOG7o2MgdOG6o2kgduG7gSB04burIGtobyBjaOG7qWEga2jDoWMiCittc2dzdHIgIlThuqNpIHbhu4EgY8OhYyDEkeG7kWkgdMaw4bujbmcgdsOgIHRoYW0gY2hp4bq/dSB04burIGtobyBjaOG7qWEga2jDoWMiCiAKICM6IGNvbW1vbi1jbWRzLmg6MTYKIG1zZ2lkICJQcmludCBsaW5lcyBtYXRjaGluZyBhIHBhdHRlcm4iCkBAIC05MjMxLDQwICs5NTA0LDM3IEBACiAKICM6IGNvbW1vbi1jbWRzLmg6MTcKIG1zZ2lkICJDcmVhdGUgYW4gZW1wdHkgR2l0IHJlcG9zaXRvcnkgb3IgcmVpbml0aWFsaXplIGFuIGV4aXN0aW5nIG9uZSIKLW1zZ3N0ciAiIgotIlThuqFvIG3hu5l0IGtobyBnaXQgdHLhu5FuZyBy4buXbmcgaGF5IGto4bufaSB04bqhbyBs4bqhaSBt4buZdCBraG8gxJHDoyB04buTbiB04bqhaSB04burIHRyxrDhu5tjIgorbXNnc3RyICJU4bqhbyBt4buZdCBraG8gZ2l0IG3hu5tpIGhheSBraOG7n2kgdOG6oW8gbOG6oWkgbeG7mXQga2hvIMSRw6MgdOG7k24gdOG6oWkgdOG7qyB0csaw4bubYyIKIAogIzogY29tbW9uLWNtZHMuaDoxOAogbXNnaWQgIlNob3cgY29tbWl0IGxvZ3MiCi1tc2dzdHIgIkhp4buDbiB0aOG7iyBuaOG6rXQga8O9IGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSIKK21zZ3N0ciAiSGnhu4NuIHRo4buLIG5o4bqtdCBrw70gY8OhYyBs4bqnbiBjaHV54buDbiBnaWFvIgogCiAjOiBjb21tb24tY21kcy5oOjE5CiBtc2dpZCAiSm9pbiB0d28gb3IgbW9yZSBkZXZlbG9wbWVudCBoaXN0b3JpZXMgdG9nZXRoZXIiCi1tc2dzdHIgIiIKLSJI4bujcCBuaOG6pXQgaGFpIGhheSBuaGnhu4F1IGjGoW4gbOG7i2NoIHPhu60gY+G7p2EgY8OhYyBuaMOgIHBow6F0IHRyaeG7g24gcGjhuqduIG3hu4FtIGzhuqFpIHbhu5tpICIKLSJuaGF1IgorbXNnc3RyICJI4bujcCBuaOG6pXQgaGFpIGhheSBuaGnhu4F1IGjGoW4gbOG7i2NoIHPhu60gY+G7p2EgY8OhYyBuaMOgIHBow6F0IHRyaeG7g24iCiAKICM6IGNvbW1vbi1jbWRzLmg6MjAKIG1zZ2lkICJNb3ZlIG9yIHJlbmFtZSBhIGZpbGUsIGEgZGlyZWN0b3J5LCBvciBhIHN5bWxpbmsiCi1tc2dzdHIgIkRpIGNodXnhu4NuLCDEkeG7lWkgdMOqbiBt4buZdCB04bqtcCB0aW4sIHRoxrAgbeG7pWMgaGF5IGxpw6puIGvhur90IHTGsOG7o25nIHRyxrBuZyIKK21zZ3N0ciAiRGkgY2h1eeG7g24gaGF5IMSR4buVaSB0w6puIG3hu5l0IHThuq1wIHRpbiwgdGjGsCBt4bulYyBob+G6t2MgbGnDqm4ga+G6v3QgbeG7gW0iCiAKICM6IGNvbW1vbi1jbWRzLmg6MjEKLW1zZ2lkICJGZXRjaCBmcm9tIGFuZCBtZXJnZSB3aXRoIGFub3RoZXIgcmVwb3NpdG9yeSBvciBhIGxvY2FsIGJyYW5jaCIKLW1zZ3N0ciAiTOG6pXkgduG7gSAoZmV0Y2gpIHbDoCBow7JhIHRy4buZbiB24bubaSBraG8ga2jDoWMgaGF5IG5ow6FuaCBu4buZaSBi4buZIgorbXNnaWQgIkZldGNoIGZyb20gYW5kIGludGVncmF0ZSB3aXRoIGFub3RoZXIgcmVwb3NpdG9yeSBvciBhIGxvY2FsIGJyYW5jaCIKK21zZ3N0ciAiTOG6pXkgduG7gSB2w6AgaOG7o3AgbmjhuqV0IHbhu5tpIGtobyBraMOhYyBoYXkgbeG7mXQgbmjDoW5oIG7hu5lpIGLhu5kiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjIKIG1zZ2lkICJVcGRhdGUgcmVtb3RlIHJlZnMgYWxvbmcgd2l0aCBhc3NvY2lhdGVkIG9iamVjdHMiCi1tc2dzdHIgIiIKLSJD4bqtcCBuaOG6rXQgdGhhbSBjaGnhur91IChyZWZzKSBtw6F5IGNo4bunIGPDuW5nIHbhu5tpIGPDoWMgxJHhu5FpIHTGsOG7o25nIGxpw6puIHF1YW4gxJHhur9uIG7DsyIKK21zZ3N0ciAiQ+G6rXAgbmjhuq10IHRoLmNoaeG6v3UgbcOheSBjaOG7pyBjw7luZyB24bubaSBjw6FjIMSR4buRaSB0xrDhu6NuZyBsacOqbiBxdWFuIMSR4bq/biBuw7MiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjMKIG1zZ2lkICJGb3J3YXJkLXBvcnQgbG9jYWwgY29tbWl0cyB0byB0aGUgdXBkYXRlZCB1cHN0cmVhbSBoZWFkIgogbXNnc3RyICIiCi0iRm9yd2FyZC1wb3J0IG5o4buvbmcgbOG6p24gY2h1eeG7g24gZ2lhbyBu4buZaSBi4buZIHThu5tpIGhlYWQgdGjGsOG7o25nIG5ndeG7k24gxJHDoyBj4bqtcCBuaOG6rXQiCisiQ2h1eeG7g24gdGnhur9wIG5o4buvbmcgbOG6p24gY2h1eeG7g24gZ2lhbyBu4buZaSBi4buZXG4iCisiICAgICAgICAgICAgICAgdOG7m2kgaGVhZCB0aMaw4bujbmcgbmd14buTbiDEkcOjIGPhuq1wIG5o4bqtdCIKIAogIzogY29tbW9uLWNtZHMuaDoyNAogbXNnaWQgIlJlc2V0IGN1cnJlbnQgSEVBRCB0byB0aGUgc3BlY2lmaWVkIHN0YXRlIgotbXNnc3RyICLEkOG6t3QgbOG6oWkgSEVBRCBoaeG7h24gaMOgbmggdGjDoG5oIG3hu5l0IHRy4bqhbmcgdGjDoWkgxJHGsOG7o2MgY2jhu4kgcmEiCittc2dzdHIgIsSQ4bq3dCBs4bqhaSBIRUFEIGhp4buHbiBow6BuaCB0aMOgbmggdHLhuqFuZyB0aMOhaSDEkcOjIGNobyIKIAogIzogY29tbW9uLWNtZHMuaDoyNQogbXNnaWQgIlJlbW92ZSBmaWxlcyBmcm9tIHRoZSB3b3JraW5nIHRyZWUgYW5kIGZyb20gdGhlIGluZGV4IgpAQCAtOTI4MCw5ICs5NTUwLDcgQEAKIAogIzogY29tbW9uLWNtZHMuaDoyOAogbXNnaWQgIkNyZWF0ZSwgbGlzdCwgZGVsZXRlIG9yIHZlcmlmeSBhIHRhZyBvYmplY3Qgc2lnbmVkIHdpdGggR1BHIgotbXNnc3RyICIiCi0iVOG6oW8sIGxp4buHdCBrw6osIHjDs2EgaGF5IHjDoWMgdGjhu7FjIG3hu5l0IMSR4buRaSB0xrDhu6NuZyB0aOG6uyAodGFnKSBtw6AgbsOzIMSRxrDhu6NjIGvDvSBz4butIGThu6VuZyAiCi0iR1BHIgorbXNnc3RyICJU4bqhbywgbGnhu4d0IGvDqiwgeMOzYSBoYXkgeMOhYyB0aOG7sWMgbeG7mXQgxJHhu5FpIHTGsOG7o25nIHRo4bq7IMSRxrDhu6NjIGvDvSBi4bqxbmcgR1BHIgogCiAjOiBnaXQtYW0uc2g6NTAKIG1zZ2lkICJZb3UgbmVlZCB0byBzZXQgeW91ciBjb21taXR0ZXIgaW5mbyBmaXJzdCIKQEAgLTkyOTksMTEgKzk1NjcsMTEgQEAKICM6IGdpdC1hbS5zaDoxMDUKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1yZXNvbHZlZFwiLlxuIgorIldoZW4geW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gXCIkY21kbGluZSAtLWNvbnRpbnVlXCIuXG4iCiAiSWYgeW91IHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIHJ1biBcIiRjbWRsaW5lIC0tc2tpcFwiIGluc3RlYWQuXG4iCiAiVG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoIGFuZCBzdG9wIHBhdGNoaW5nLCBydW4gXCIkY21kbGluZSAtLWFib3J0XCIuIgogbXNnc3RyICIiCi0iS2hpIGLhuqFuIGPhuqduIGdp4bqjaSBxdXnhur90IHbhuqVuIMSR4buBIG7DoHkgaMOjeSBjaOG6oXkgbOG7h25oIFwiJGNtZGxpbmUgLS1yZXNvbHZlZFwiLlxuIgorIktoaSBi4bqhbiBj4bqnbiBnaeG6o2kgcXV54bq/dCB24bqlbiDEkeG7gSBuw6B5IGjDo3kgY2jhuqF5IGzhu4duaCBcIiRjbWRsaW5lIC0tY29udGludWVcIi5cbiIKICJO4bq/dSBi4bqhbiBjw7Mgw70gxJHhu4tuaCBi4buPIHF1YSBtaeG6v25nIHbDoSwgdGhheSB2w6BvIMSRw7MgYuG6oW4gY2jhuqF5IFwiJGNtZGxpbmUgLS1za2lwIgogIlwiLlxuIgogIsSQ4buDIHBo4bulYyBo4buTaSBs4bqhaSB0aMOgbmggbmjDoW5oIG5ndXnDqm4gdGjhu6d5IHbDoCBk4burbmcgdmnhu4djIHbDoSBs4bqhaSB0aMOsIGNo4bqheSAiCkBAIC05MzU5LDI1ICs5NjI3LDM0IEBACiAiVMO5eSBjaOG7jW4gLWIvLS1iaW5hcnkgxJHDoyBraMO0bmcgZMO5bmcgdOG7qyBsw6J1IHLhu5NpLCB2w6BcbiIKICJuw7Mgc+G6vSDEkcaw4bujYyBi4buPIMSRaS4gWGluIMSR4burbmcgc+G7rSBk4bulbmcgbsOzIHRow6ptIG7hu69hLiIKIAotIzogZ2l0LWFtLnNoOjQ3NworIzogZ2l0LWFtLnNoOjQ3OQogIywgc2gtZm9ybWF0CiBtc2dpZCAicHJldmlvdXMgcmViYXNlIGRpcmVjdG9yeSAkZG90ZXN0IHN0aWxsIGV4aXN0cyBidXQgbWJveCBnaXZlbi4iCiBtc2dzdHIgInRoxrAgbeG7pWMgcmViYXNlIHRyxrDhu5tjICRkb3Rlc3QgduG6q24gY2jGsGEgc+G6tW4gc8OgbmcgbmjGsG5nIG1ib3ggxJHGsOG7o2MgxJHGsGEgcmEuIgogCi0jOiBnaXQtYW0uc2g6NDgyCisjOiBnaXQtYW0uc2g6NDg0CiBtc2dpZCAiUGxlYXNlIG1ha2UgdXAgeW91ciBtaW5kLiAtLXNraXAgb3IgLS1hYm9ydD8iCiBtc2dzdHIgIlhpbiBow6N5IHLDtSByw6BuZy4gLS1za2lwIGhheSAtLWFib3J0PyIKIAotIzogZ2l0LWFtLnNoOjUwOQorIzogZ2l0LWFtLnNoOjUyMAorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIlN0cmF5ICRkb3Rlc3QgZGlyZWN0b3J5IGZvdW5kLlxuIgorIlVzZSBcImdpdCBhbSAtLWFib3J0XCIgdG8gcmVtb3ZlIGl0LiIKK21zZ3N0ciAiIgorIlTDrG0gdGjhuqV5IHRoxrAgbeG7pWMgbOG6oWMgJGRvdGVzdC5cbiIKKyJEw7luZyBcImdpdCBhbSAtLWFib3J0XCIgxJHhu4MgbG/huqFpIGLhu48gbsOzIMSRaS4iCisKKyM6IGdpdC1hbS5zaDo1MjgKIG1zZ2lkICJSZXNvbHZlIG9wZXJhdGlvbiBub3QgaW4gcHJvZ3Jlc3MsIHdlIGFyZSBub3QgcmVzdW1pbmcuIgogbXNnc3RyICJUaGFvIHTDoWMgcGjDom4gZ2nhuqNpIGtow7RuZyDEkcaw4bujYyB0aeG6v24gaMOgbmgsIGNow7puZyB0YSBraMO0bmcgcGjhu6VjIGjhu5NpIGzhuqFpLiIKIAotIzogZ2l0LWFtLnNoOjU3NQorIzogZ2l0LWFtLnNoOjU5NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiRGlydHkgaW5kZXg6IGNhbm5vdCBhcHBseSBwYXRjaGVzIChkaXJ0eTogJGZpbGVzKSIKIG1zZ3N0ciAiQuG6o25nIG3hu6VjIGzhu6VjIHNhaToga2jDtG5nIHRo4buDIMOhcCBk4bulbmcgY8OhYyBtaeG6v25nIHbDoSAoc2FpOiAkZmlsZXMpIgogCi0jOiBnaXQtYW0uc2g6Njc5CisjOiBnaXQtYW0uc2g6Njk4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiUGF0Y2ggaXMgZW1wdHkuICBXYXMgaXQgc3BsaXQgd3Jvbmc/XG4iCkBAIC05MzkwLDM0ICs5NjY3LDM0IEBACiAixJDhu4MgcGjhu6VjIGjhu5NpIGzhuqFpIG5ow6FuaCBuZ3V5w6puIHRo4buneSB2w6AgZOG7q25nIHbDoSBs4bqhaSBow6N5IGNo4bqheSBs4buHbmggXCIkY21kbGluZSAtLSIKICJhYm9ydFwiLiIKIAotIzogZ2l0LWFtLnNoOjcwNgorIzogZ2l0LWFtLnNoOjcyNQogbXNnaWQgIlBhdGNoIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBlLW1haWwgYWRkcmVzcy4iCiBtc2dzdHIgIk1p4bq/bmcgdsOhIGtow7RuZyBjw7MgxJHhu4thIGNo4buJIGUtbWFpbCBo4bujcCBs4buHLiIKIAotIzogZ2l0LWFtLnNoOjc1MworIzogZ2l0LWFtLnNoOjc3MgogbXNnaWQgImNhbm5vdCBiZSBpbnRlcmFjdGl2ZSB3aXRob3V0IHN0ZGluIGNvbm5lY3RlZCB0byBhIHRlcm1pbmFsLiIKIG1zZ3N0ciAiIgogImtow7RuZyB0aOG7gyDEkcaw4bujYyB0xrDGoW5nIHTDoWMgbcOgIGtow7RuZyBjw7Mgc3RkaW4ga+G6v3QgbuG7kWkgduG7m2kgbeG7mXQgdGhp4bq/dCBi4buLIGN14buRaSIKIAotIzogZ2l0LWFtLnNoOjc1NworIzogZ2l0LWFtLnNoOjc3NgogbXNnaWQgIkNvbW1pdCBCb2R5IGlzOiIKIG1zZ3N0ciAiVGjDom4gY+G7p2EgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBsw6A6IgogCiAjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW3ldLCBbbl0sIFtlXSwgW3ZdIGFuZCBbYV0KICMuIGluIHlvdXIgdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaAogIy4gaW5wdXQgYXQgdGhpcyBwb2ludC4KLSM6IGdpdC1hbS5zaDo3NjQKKyM6IGdpdC1hbS5zaDo3ODMKIG1zZ2lkICJBcHBseT8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCiBtc2dzdHIgIiIKICLDgXAgZOG7pW5nPyDEkeG7k25nIMO9IFt5XS9raMO0bmcgW25dL2No4buJbmggc+G7rWEgW2VdL2hp4buDbiB0aOG7iyBtaeG6v25nIFt2XcOhL8SR4buTbmcgw70gdOG6pXQgIgogImPhuqMgW2FdICIKIAotIzogZ2l0LWFtLnNoOjgwMAorIzogZ2l0LWFtLnNoOjgxOQogIywgc2gtZm9ybWF0CiBtc2dpZCAiQXBwbHlpbmc6ICRGSVJTVExJTkUiCiBtc2dzdHIgIsSQYW5nIMOhcCBk4bulbmcgKG1p4bq/bmcgdsOhKTogJEZJUlNUTElORSIKIAotIzogZ2l0LWFtLnNoOjgyMQorIzogZ2l0LWFtLnNoOjg0MAogbXNnaWQgIiIKICJObyBjaGFuZ2VzIC0gZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz9cbiIKICJJZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG8gc3RhZ2UsIGNoYW5jZXMgYXJlIHRoYXQgc29tZXRoaW5nIGVsc2VcbiIKQEAgLTk0MjgsNyArOTcwNSw3IEBACiAixJHDoyBz4bq1biDEkcaw4bujYyDEkcawYSB2w6BvIHbhu5tpIGPDuW5nIG7hu5lpIGR1bmcgdGhheSDEkeG7lWk7IGLhuqFuIGPDsyBs4bq9IG114buRbiBi4buPIHF1YSBtaeG6v25nICIKICJ2w6EgbsOgeS4iCiAKLSM6IGdpdC1hbS5zaDo4MjkKKyM6IGdpdC1hbS5zaDo4NDgKIG1zZ2lkICIiCiAiWW91IHN0aWxsIGhhdmUgdW5tZXJnZWQgcGF0aHMgaW4geW91ciBpbmRleFxuIgogImRpZCB5b3UgZm9yZ2V0IHRvIHVzZSAnZ2l0IGFkZCc/IgpAQCAtOTQzNiwxNiArOTcxMywxNiBAQAogIkLhuqFuIHbhuqtuIGPDsyBuaOG7r25nIMSRxrDhu51uZyBk4bqrbiBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbiB0cm9uZyBi4bqjbmcgbeG7pWMgbOG7pWMgY+G7p2EgbcOsbmhcbiIKICJi4bqhbiDEkcOjIHF1w6puIHPhu60gZOG7pW5nIGzhu4duaCDigJxnaXQgYWRk4oCdIMOgPyIKIAotIzogZ2l0LWFtLnNoOjg0NQorIzogZ2l0LWFtLnNoOjg2NAogbXNnaWQgIk5vIGNoYW5nZXMgLS0gUGF0Y2ggYWxyZWFkeSBhcHBsaWVkLiIKIG1zZ3N0ciAiS2jDtG5nIHRoYXkgxJHhu5VpIGfDrCBj4bqjIC0tIE1p4bq/bmcgdsOhIMSRw6MgxJHGsOG7o2Mgw6FwIGThu6VuZyBy4buTaS4iCiAKLSM6IGdpdC1hbS5zaDo4NTUKKyM6IGdpdC1hbS5zaDo4NzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIlBhdGNoIGZhaWxlZCBhdCAkbXNnbnVtICRGSVJTVExJTkUiCiBtc2dzdHIgIlbDoSBn4bq3cCBs4buXaSB04bqhaSAkbXNnbnVtICRGSVJTVExJTkUiCiAKLSM6IGdpdC1hbS5zaDo4NTgKKyM6IGdpdC1hbS5zaDo4NzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgY29weSBvZiB0aGUgcGF0Y2ggdGhhdCBmYWlsZWQgaXMgZm91bmQgaW46XG4iCkBAIC05NDU0LDcgKzk3MzEsNyBAQAogIkLhuqNuIHNhbyBjaMOpcCBj4bunYSBtaeG6v25nIHbDoSBtw6AgbsOzIGfhurdwIGzhu5dpIHRow6wgxJHGsOG7o2MgdMOsbSB0aOG6pXkgdHJvbmc6XG4iCiAiICAgJGRvdGVzdC9wYXRjaCIKIAotIzogZ2l0LWFtLnNoOjg3NgorIzogZ2l0LWFtLnNoOjg5NQogbXNnaWQgImFwcGx5aW5nIHRvIGFuIGVtcHR5IGhpc3RvcnkiCiBtc2dzdHIgIsOhcCBk4bulbmcgdsOgbyBt4buZdCBs4buLY2ggc+G7rSB0cuG7kW5nIHLhu5duZyIKIApAQCAtOTQ3Nyw3ICs5NzU0LDcgQEAKICM6IGdpdC1iaXNlY3Quc2g6OTkKICMsIHNoLWZvcm1hdAogbXNnaWQgIickYXJnJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSB2YWxpZCByZXZpc2lvbiIKLW1zZ3N0ciAi4oCdJGFyZ+KAnSBraMO0bmcgY8OzIHbhursgbmjGsCBsw6AgbeG7mXQgc+G7sSB4w6l0IGzhuqFpIGjhu6NwIGzhu4ciCittc2dzdHIgIuKAnSRhcmfigJ0ga2jDtG5nIGPDsyB24bq7IG5oxrAgbMOgIG3hu5l0IMSRaeG7g20geMOpdCBkdXnhu4d0IGjhu6NwIGzhu4ciCiAKICM6IGdpdC1iaXNlY3Quc2g6MTE3CiBtc2dpZCAiQmFkIEhFQUQgLSBJIG5lZWQgYSBIRUFEIgpAQCAtOTY2Miw3ICs5OTM5LDcgQEAKIG1zZ2lkICJDYW5ub3QgcmViYXNlIG9udG8gbXVsdGlwbGUgYnJhbmNoZXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyB0aOG7sWMgaGnhu4duIGzhu4duaCByZWJhc2UgKGPGoSBj4bqldSBs4bqhaSkgdHLDqm4gbmhp4buBdSBuaMOhbmgiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTMKKyM6IGdpdC1yZWJhc2Uuc2g6NTQKIG1zZ2lkICIiCiAiV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCJnaXQgcmViYXNlIC0tc2tpcFwiIGluc3RlYWQuXG4iCkBAIC05Njc1LDM1ICs5OTUyLDU1IEBACiAixJDhu4MgcGjhu6VjIGjhu5NpIGzhuqFpIHRow6BuaCBuaMOhbmggbmd1ecOqbiB0aOG7p3kgdsOgIGThu6tuZyB2aeG7h2MgdsOhIGzhuqFpIHRow6wgY2jhuqF5IFwiZ2l0ICIKICJyZWJhc2UgLS1hYm9ydFwiLiIKIAorIzogZ2l0LXJlYmFzZS5zaDoxNTYKK21zZ2lkICJBcHBsaWVkIGF1dG9zdGFzaC4iCittc2dzdHIgIsSQw6Mgw6FwIGThu6VuZyBhdXRvc3Rhc2guIgorCisjOiBnaXQtcmViYXNlLnNoOjE1OQorIywgc2gtZm9ybWF0Cittc2dpZCAiQ2Fubm90IHN0b3JlICRzdGFzaF9zaGExIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgbMawdSAkc3Rhc2hfc2hhMSIKKwogIzogZ2l0LXJlYmFzZS5zaDoxNjAKK21zZ2lkICIiCisiQXBwbHlpbmcgYXV0b3N0YXNoIHJlc3VsdGVkIGluIGNvbmZsaWN0cy5cbiIKKyJZb3VyIGNoYW5nZXMgYXJlIHNhZmUgaW4gdGhlIHN0YXNoLlxuIgorIllvdSBjYW4gcnVuIFwiZ2l0IHN0YXNoIHBvcFwiIG9yIFwiZ2l0IHN0YXNoIGRyb3BcIiBhdCBhbnkgdGltZS5cbiIKK21zZ3N0ciAiIgorIsOBcCBk4bulbmcgYXV0b3N0YXNoIGPDsyBoaeG7h3UgcXXhuqMgdHJvbmcgY8OhYyB4dW5nIMSR4buZdC5cbiIKKyJDw6FjIHRoYXkgxJHhu5VpIGPhu6dhIGLhuqFuIGFuIHRvw6BuIHRyb25nIHN0YXNoICh04bqhbSBj4bqldCDEkWkpLlxuIgorIkLhuqFuIGPDsyB0aOG7gyBjaOG6oXkgbOG7h25oIFwiZ2l0IHN0YXNoIHBvcFwiIGhheSBcImdpdCBzdGFzaCBkcm9wXCIgYuG6pXQga+G7syBsw7pjICIKKyJuw6BvLlxuIgorCisjOiBnaXQtcmViYXNlLnNoOjE5MAogbXNnaWQgIlRoZSBwcmUtcmViYXNlIGhvb2sgcmVmdXNlZCB0byByZWJhc2UuIgogbXNnc3RyICJNw7NjIChob29rKSBwcmUtcmViYXNlIHThu6sgY2jhu5FpIHJlYmFzZS4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MTY1CisjOiBnaXQtcmViYXNlLnNoOjE5NQogbXNnaWQgIkl0IGxvb2tzIGxpa2UgZ2l0LWFtIGlzIGluIHByb2dyZXNzLiBDYW5ub3QgcmViYXNlLiIKIG1zZ3N0ciAiIgogIkjDrG5oIG5oxrAgxJFhbmcgdHJvbmcgcXXDoSB0csOsbmggdGjhu7FjIGhp4buHbiBs4buHbmggZ2l0LWFtLiBLaMO0bmcgdGjhu4MgY2jhuqF5IGzhu4duaCAiCiAicmViYXNlLiIKIAotIzogZ2l0LXJlYmFzZS5zaDoyOTYKKyM6IGdpdC1yZWJhc2Uuc2g6MzI5CiBtc2dpZCAiVGhlIC0tZXhlYyBvcHRpb24gbXVzdCBiZSB1c2VkIHdpdGggdGhlIC0taW50ZXJhY3RpdmUgb3B0aW9uIgogbXNnc3RyICJUw7l5IGNo4buNbiAtLWV4ZWMgcGjhuqNpIMSRxrDhu6NjIHPhu60gZOG7pW5nIGPDuW5nIHbhu5tpIHTDuXkgY2jhu41uIC0taW50ZXJhY3RpdmUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzAxCisjOiBnaXQtcmViYXNlLnNoOjMzNAogbXNnaWQgIk5vIHJlYmFzZSBpbiBwcm9ncmVzcz8iCiBtc2dzdHIgIktow7RuZyBjw7MgdGnhur9uIHRyw6xuaCByZWJhc2UgbsOgbyBwaOG6o2kga2jDtG5nPyIKIAotIzogZ2l0LXJlYmFzZS5zaDozMTIKKyM6IGdpdC1yZWJhc2Uuc2g6MzQ1CiBtc2dpZCAiVGhlIC0tZWRpdC10b2RvIGFjdGlvbiBjYW4gb25seSBiZSB1c2VkIGR1cmluZyBpbnRlcmFjdGl2ZSByZWJhc2UuIgogbXNnc3RyICIiCiAiSMOgbmggxJHhu5luZyDigJwtLWVkaXQtdG9kb+KAnSBjaOG7iSBjw7MgdGjhu4MgZMO5bmcgdHJvbmcgcXXDoSB0csOsbmgg4oCccmViYXNl4oCdIChz4butYSBs4buLY2ggIgogInPhu60pIHTGsMahbmcgdMOhYy4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzE5CisjOiBnaXQtcmViYXNlLnNoOjM1MgogbXNnaWQgIkNhbm5vdCByZWFkIEhFQUQiCiBtc2dzdHIgIktow7RuZyB0aOG7gyDEkeG7jWMgSEVBRCIKIAotIzogZ2l0LXJlYmFzZS5zaDozMjIKKyM6IGdpdC1yZWJhc2Uuc2g6MzU1CiBtc2dpZCAiIgogIllvdSBtdXN0IGVkaXQgYWxsIG1lcmdlIGNvbmZsaWN0cyBhbmQgdGhlblxuIgogIm1hcmsgdGhlbSBhcyByZXNvbHZlZCB1c2luZyBnaXQgYWRkIgpAQCAtOTcxMSwxMiArMTAwMDgsMTIgQEAKICJC4bqhbiBwaOG6o2kgc+G7rWEgdOG6pXQgY+G6oyBjw6FjIGzhuqduIGjDsmEgdHLhu5luIHh1bmcgxJHhu5l0IHbDoCBzYXVcbiIKICLEkcOzIMSRw6FuaCBk4bqldSBjaMO6bmcgbMOgIGPhuqduIHjhu60gbMO9IHPhu60gZOG7pW5nIGzhu4duaCBnaXQgYWRkIgogCi0jOiBnaXQtcmViYXNlLnNoOjM0MAorIzogZ2l0LXJlYmFzZS5zaDozNzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBtb3ZlIGJhY2sgdG8gJGhlYWRfbmFtZSIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHF1YXkgdHLhu58gbOG6oWkgJGhlYWRfbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDozNTkKKyM6IGdpdC1yZWJhc2Uuc2g6MzkyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgc2VlbXMgdGhhdCB0aGVyZSBpcyBhbHJlYWR5IGEgJHN0YXRlX2Rpcl9iYXNlIGRpcmVjdG9yeSwgYW5kXG4iCkBAIC05NzM5LDU3ICsxMDAzNiw2NiBAQAogIlxuIgogIlTDlEk6IGzDoCBs4buHbmggYuG6oW4gduG7q2EgZ+G7jWkhIgogCi0jOiBnaXQtcmViYXNlLnNoOjQwNAorIzogZ2l0LXJlYmFzZS5zaDo0MzcKICMsIHNoLWZvcm1hdAogbXNnaWQgImludmFsaWQgdXBzdHJlYW0gJHVwc3RyZWFtX25hbWUiCiBtc2dzdHIgInRoxrDhu6NuZyBuZ3Xhu5NuIGtow7RuZyBo4bujcCBs4buHICR1cHN0cmVhbV9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQyOAorIzogZ2l0LXJlYmFzZS5zaDo0NjEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG1lcmdlIGJhc2VzIgogbXNnc3RyICIkb250b19uYW1lOiDhu58gxJHDonkgY8OzIG5oaeG7gXUgaMahbiBt4buZdCBu4buBbiBtw7NuZyBow7JhIHRy4buZbiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MzEgZ2l0LXJlYmFzZS5zaDo0MzUKKyM6IGdpdC1yZWJhc2Uuc2g6NDY0IGdpdC1yZWJhc2Uuc2g6NDY4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBpcyBubyBtZXJnZSBiYXNlIgogbXNnc3RyICIkb250b19uYW1lOiDhu58gxJHDonkga2jDtG5nIGPDsyBu4buBbiBtw7NuZyBow7JhIHRy4buZbiBuw6BvIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ0MAorIzogZ2l0LXJlYmFzZS5zaDo0NzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgY29tbWl0OiAkb250b19uYW1lIgogbXNnc3RyICJLaMO0bmcgY2jhu4kgxJHhur9uIG3hu5l0IGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkga2jDtG5nIGjhu6NwIGzhu4c6ICRvbnRvX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDYzCisjOiBnaXQtcmViYXNlLnNoOjQ5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiZmF0YWw6IG5vIHN1Y2ggYnJhbmNoOiAkYnJhbmNoX25hbWUiCiBtc2dzdHIgIm5naGnDqm0gdHLhu41uZzoga2jDtG5nIGPDsyBuaMOhbmggbmjGsCB0aOG6vzogJGJyYW5jaF9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ4MworIzogZ2l0LXJlYmFzZS5zaDo1MTkKK21zZ2lkICJDYW5ub3QgYXV0b3N0YXNoIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgYXV0b3N0YXNoIgorCisjOiBnaXQtcmViYXNlLnNoOjUyNAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ3JlYXRlZCBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYiCittc2dzdHIgIsSQw6MgdOG6oW8gYXV0b3N0YXNoOiAkc3Rhc2hfYWJicmV2IgorCisjOiBnaXQtcmViYXNlLnNoOjUyOAogbXNnaWQgIlBsZWFzZSBjb21taXQgb3Igc3Rhc2ggdGhlbS4iCiBtc2dzdHIgIlhpbiBow6N5IGNvbW1pdCBob+G6t2MgdOG6oW0gY+G6pXQgKHN0YXNoKSBjaMO6bmcuIgogCi0jOiBnaXQtcmViYXNlLnNoOjUwMQorIzogZ2l0LXJlYmFzZS5zaDo1NDgKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLiIKIG1zZ3N0ciAiTmjDoW5oIGhp4buHbiB04bqhaSAkYnJhbmNoX25hbWUgxJHDoyDEkcaw4bujYyBj4bqtcCBuaOG6rXQgcuG7k2kuIgogCi0jOiBnaXQtcmViYXNlLnNoOjUwNAorIzogZ2l0LXJlYmFzZS5zaDo1NTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkLiIKIG1zZ3N0ciAiTmjDoW5oIGhp4buHbiB04bqhaSAkYnJhbmNoX25hbWUgxJHDoyDEkcaw4bujYyBj4bqtcCBuaOG6rXQgcuG7k2ksIGzhu4duaCByZWJhc2Ugw6lwIGJ14buZYy4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTE1CisjOiBnaXQtcmViYXNlLnNoOjU2MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ2hhbmdlcyBmcm9tICRtYiB0byAkb250bzoiCiBtc2dzdHIgIlRoYXkgxJHhu5VpIHThu6sgJG1iIHRow6BuaCAkb250bzoiCiAKICMuIERldGFjaCBIRUFEIGFuZCByZXNldCB0aGUgdHJlZQotIzogZ2l0LXJlYmFzZS5zaDo1MjQKKyM6IGdpdC1yZWJhc2Uuc2g6NTcyCiBtc2dpZCAiRmlyc3QsIHJld2luZGluZyBoZWFkIHRvIHJlcGxheSB5b3VyIHdvcmsgb24gdG9wIG9mIGl0Li4uIgogbXNnc3RyICIiCiAiVHLGsOG7m2MgdGnDqm4sIGRpIGNodXnhu4NuIGhlYWQgxJHhu4MgeGVtIGzhuqFpIGPDoWMgY8O0bmcgdmnhu4djIHRyw6puIMSR4buJbmggY+G7p2EgbsOzLi4uIgogCi0jOiBnaXQtcmViYXNlLnNoOjUzMgorIzogZ2l0LXJlYmFzZS5zaDo1ODIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhc3QtZm9yd2FyZGVkICRicmFuY2hfbmFtZSB0byAkb250b19uYW1lLiIKIG1zZ3N0ciAiRmFzdC1mb3J3YXJkICRicmFuY2hfbmFtZSB0aMOgbmggJG9udG9fbmFtZS4iCkBAIC05ODIzLDYgKzEwMTI5LDExIEBACiBtc2dpZCAiQ2Fubm90IHJlY29yZCB3b3JraW5nIHRyZWUgc3RhdGUiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgbOG6oWkgdHLhuqFuZyB0aMOhaSBjw6J5IGzDoG0gdmnhu4djIGhp4buHbiBow6BuaCIKIAorIzogZ2l0LXN0YXNoLnNoOjE5MAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ2Fubm90IHVwZGF0ZSAkcmVmX3N0YXNoIHdpdGggJHdfY29tbWl0IgorbXNnc3RyICJLaMO0bmcgdGjhu4MgY+G6rXAgbmjhuq10ICRyZWZfc3Rhc2ggduG7m2kgJHdfY29tbWl0IgorCiAjLiBUUkFOU0xBVE9SUzogJG9wdGlvbiBpcyBhbiBpbnZhbGlkIG9wdGlvbiwgbGlrZQogIy4gYC0tYmxhaC1ibGFoJy4gVGhlIDcgc3BhY2VzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCiAjLiBzZWNvbmQgbGluZSBjb3JyZXNwb25kIHRvICJlcnJvcjogIi4gU28geW91IHNob3VsZCBsaW5lCkBAIC05ODMzLDEzMiArMTAxNDQsMTUzIEBACiAjLiAkIGdpdCBzdGFzaCBzYXZlIC0tYmxhaC1ibGFoIDI+JjEgfCBoZWFkIC1uIDIKICMuIGVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAtLWJsYWgtYmxhaAogIy4gVG8gcHJvdmlkZSBhIG1lc3NhZ2UsIHVzZSBnaXQgc3Rhc2ggc2F2ZSAtLSAnLS1ibGFoLWJsYWgnCi0jOiBnaXQtc3Rhc2guc2g6MjAyCisjOiBnaXQtc3Rhc2guc2g6MjQxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6ICRvcHRpb25cbiIKICIgICAgICAgVG8gcHJvdmlkZSBhIG1lc3NhZ2UsIHVzZSBnaXQgc3Rhc2ggc2F2ZSAtLSAnJG9wdGlvbiciCiBtc2dzdHIgIiIKICJs4buXaToga2jDtG5nIGhp4buDdSB0w7l5IGNo4buNbiBjaG8g4oCcc3Rhc2ggc2F2ZeKAnTogJG9wdGlvblxuIgotIiAgICAgICDEkOG7gyBjdW5nIGPhuqVwIG3hu5l0IHRow7RuZyDEkWnhu4dwLCBz4butIGThu6VuZyBnaXQgc3Rhc2ggc2F2ZSAtLSDigJwkb3B0aW9u4oCdIgorIiAgICAgxJDhu4MgZMO5bmcgdGjDtG5nIMSRaeG7h3AgY8OzIGNo4bupYSAtLSDhu58gxJHhuqd1LCBz4butIGThu6VuZyBnaXQgc3Rhc2ggc2F2ZSAtLSBcIiRvcHRpb24iCisiXCIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMjMKKyM6IGdpdC1zdGFzaC5zaDoyNjIKIG1zZ2lkICJObyBsb2NhbCBjaGFuZ2VzIHRvIHNhdmUiCiBtc2dzdHIgIktow7RuZyBjw7MgdGhheSDEkeG7lWkgbuG7mWkgYuG7mSBuw6BvIMSRxrDhu6NjIGdoaSBs4bqhaSIKIAotIzogZ2l0LXN0YXNoLnNoOjIyNworIzogZ2l0LXN0YXNoLnNoOjI2OAorbXNnaWQgIiIKKyJUaGUgZm9sbG93aW5nIHVudHJhY2tlZCBmaWxlcyB3b3VsZCBOT1QgYmUgc2F2ZWQgYnV0IG5lZWQgdG8gYmUgcmVtb3ZlZCBieSAiCisic3Rhc2ggc2F2ZToiCittc2dzdHIgIiIKKyJDw6FjIHThuq1wIHRpbiBjaMawYSDEkcaw4bujYyB0aGVvIGTDtWkgc2F1IMSRw6J5IEtIw5RORyDEkcaw4bujYyBnaGkgbOG6oWkgbmjGsG5nIGPhuqduIMSRxrDhu6NjIGfhu6EgIgorImLhu48gYuG7n2kgdmnhu4djIGdoaSBs4bqhaSBzdGFzaDoiCisKKyM6IGdpdC1zdGFzaC5zaDoyNzAKK21zZ2lkICIiCisiQWJvcnRpbmcuIENvbnNpZGVyIHVzaW5nIGVpdGhlciB0aGUgLS1mb3JjZSBvciAtLWluY2x1ZGUtdW50cmFja2VkIG9wdGlvbi4iCittc2dzdHIgIiIKKyJCw6NpIGLhu48uIEPDom4gbmjhuq9jIGTDuW5nIG3hu5l0IHRyb25nIGhhaSB0w7l5IGNo4buNbiAtLWZvcmNlIHbDoCAtLWluY2x1ZGUtdW50cmFja2VkLiIKKworIzogZ2l0LXN0YXNoLnNoOjI3NAogbXNnaWQgIkNhbm5vdCBpbml0aWFsaXplIHN0YXNoIgogbXNnc3RyICJLaMO0bmcgdGjhu4Mga2jhu59pIHThuqFvIHN0YXNoIgogCi0jOiBnaXQtc3Rhc2guc2g6MjM1CisjOiBnaXQtc3Rhc2guc2g6Mjc4CiBtc2dpZCAiQ2Fubm90IHNhdmUgdGhlIGN1cnJlbnQgc3RhdHVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIGzhuqFpIHRy4bqhbmcgdGjDoWkgaGnhu4duIGjDoG5oIgogCi0jOiBnaXQtc3Rhc2guc2g6MjUzCisjOiBnaXQtc3Rhc2guc2g6Mjk2CiBtc2dpZCAiQ2Fubm90IHJlbW92ZSB3b3JrdHJlZSBjaGFuZ2VzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgZ+G7oSBi4buPIGPDoWMgdGhheSDEkeG7lWkgY8OieS1sw6BtLXZp4buHYyIKIAotIzogZ2l0LXN0YXNoLnNoOjM1MgorIzogZ2l0LXN0YXNoLnNoOjM5NQogbXNnaWQgIk5vIHN0YXNoIGZvdW5kLiIKIG1zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5IHN0YXNoIG7DoG8uIgogCi0jOiBnaXQtc3Rhc2guc2g6MzU5CisjOiBnaXQtc3Rhc2guc2g6NDAyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJUb28gbWFueSByZXZpc2lvbnMgc3BlY2lmaWVkOiAkUkVWIgotbXNnc3RyICJDaOG7iSByYSBxdcOhIG5oaeG7gXUgxJFp4buDbSB4w6l0IGzhuqFpOiAkUkVWIgorbXNnc3RyICJDaOG7iSByYSBxdcOhIG5oaeG7gXUgxJFp4buDbSB4w6l0IGR1eeG7h3Q6ICRSRVYiCiAKLSM6IGdpdC1zdGFzaC5zaDozNjUKKyM6IGdpdC1zdGFzaC5zaDo0MDgKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRyZWZlcmVuY2UgaXMgbm90IHZhbGlkIHJlZmVyZW5jZSIKIG1zZ3N0ciAiJHJlZmVyZW5jZSBraMO0bmcgcGjhuqNpIGzDoCB0aGFtIGNoaeG6v3UgaOG7o3AgbOG7hyIKIAotIzogZ2l0LXN0YXNoLnNoOjM5MworIzogZ2l0LXN0YXNoLnNoOjQzNgogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaC1saWtlIGNvbW1pdCIKIG1zZ3N0ciAi4oCdJGFyZ3PigJ0ga2jDtG5nIHBo4bqjaSBsw6AgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBnaeG7kW5nLXN0YXNoIgogCi0jOiBnaXQtc3Rhc2guc2g6NDA0CisjOiBnaXQtc3Rhc2guc2g6NDQ3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoIHJlZmVyZW5jZSIKIG1zZ3N0ciAi4oCdJGFyZ3PigJ0ga2jDtG5nIHBo4bqjaSB0aGFtIGNoaeG6v3UgxJHhur9uIHN0YXNoIgogCi0jOiBnaXQtc3Rhc2guc2g6NDEyCisjOiBnaXQtc3Rhc2guc2g6NDU1CiBtc2dpZCAidW5hYmxlIHRvIHJlZnJlc2ggaW5kZXgiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBsw6BtIHTGsMahaSBt4bubaSBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IGdpdC1zdGFzaC5zaDo0MTYKKyM6IGdpdC1zdGFzaC5zaDo0NTkKIG1zZ2lkICJDYW5ub3QgYXBwbHkgYSBzdGFzaCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UiCiBtc2dzdHIgIktow7RuZyB0aOG7gyDDoXAgZOG7pW5nIG3hu5l0IHN0YXNoIOG7nyBnaeG7r2EgY+G7p2EgcXXDoSB0csOsbmggaMOyYSB0cuG7mW4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0MjQKKyM6IGdpdC1zdGFzaC5zaDo0NjcKIG1zZ2lkICJDb25mbGljdHMgaW4gaW5kZXguIFRyeSB3aXRob3V0IC0taW5kZXguIgogbXNnc3RyICJYdW5nIMSR4buZdCB0cm9uZyBi4bqjbmcgbeG7pWMgbOG7pWMuIEjDo3kgdGjhu60gbcOgIGtow7RuZyBkw7luZyB0w7l5IGNo4buNbiAtLWluZGV4LiIKIAotIzogZ2l0LXN0YXNoLnNoOjQyNgorIzogZ2l0LXN0YXNoLnNoOjQ2OQogbXNnaWQgIkNvdWxkIG5vdCBzYXZlIGluZGV4IHRyZWUiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgbOG6oWkgY8OieSBjaOG7iSBt4bulYyIKIAotIzogZ2l0LXN0YXNoLnNoOjQ2MAorIzogZ2l0LXN0YXNoLnNoOjUwMwogbXNnaWQgIkNhbm5vdCB1bnN0YWdlIG1vZGlmaWVkIGZpbGVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgYuG7jyB0cuG6oW5nIHRow61hIGPhu6dhIGPDoWMgdOG6rXAgdGluIMSRw6MgxJHGsOG7o2Mgc+G7rWEgY2jhu69hIgogCi0jOiBnaXQtc3Rhc2guc2g6NDc1CisjOiBnaXQtc3Rhc2guc2g6NTE4CiBtc2dpZCAiSW5kZXggd2FzIG5vdCB1bnN0YXNoZWQuIgogbXNnc3RyICJC4bqjbmcgbeG7pWMgbOG7pWMgxJHDoyBraMO0bmcgxJHGsOG7o2MgYuG7jyBzdGFzaC4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0OTIKKyM6IGdpdC1zdGFzaC5zaDo1MzUKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRyb3BwZWQgJHtSRVZ9ICgkcykiCi1tc2dzdHIgIsSQw6MgaOG6oSB4deG7kW5nICR7UkVWfSAoJHMpIgorbXNnc3RyICLEkMOjIHjDs2EgJHtSRVZ9ICgkcykiCiAKLSM6IGdpdC1zdGFzaC5zaDo0OTMKKyM6IGdpdC1zdGFzaC5zaDo1MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiR7UkVWfTogQ291bGQgbm90IGRyb3Agc3Rhc2ggZW50cnkiCiBtc2dzdHIgIiR7UkVWfTogS2jDtG5nIHRo4buDIHjDs2EgYuG7jyBt4bulYyBzdGFzaCIKIAotIzogZ2l0LXN0YXNoLnNoOjUwMAorIzogZ2l0LXN0YXNoLnNoOjU0MwogbXNnaWQgIk5vIGJyYW5jaCBuYW1lIHNwZWNpZmllZCIKIG1zZ3N0ciAiQ2jGsGEgY2jhu4kgcmEgdMOqbiBj4bunYSBuaMOhbmgiCiAKLSM6IGdpdC1zdGFzaC5zaDo1NzEKKyM6IGdpdC1zdGFzaC5zaDo2MTUKIG1zZ2lkICIoVG8gcmVzdG9yZSB0aGVtIHR5cGUgXCJnaXQgc3Rhc2ggYXBwbHlcIikiCiBtc2dzdHIgIijEkOG7gyBwaOG7pWMgaOG7k2kgbOG6oWkgY2jDum5nIGjDo3kgZ8O1IFwiZ2l0IHN0YXNoIGFwcGx5XCIpIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjkxCisjOiBnaXQtc3VibW9kdWxlLnNoOjk1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgc3RyaXAgb25lIGNvbXBvbmVudCBvZmYgdXJsICckcmVtb3RldXJsJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHRow6FvIGLhu48gbeG7mXQgdGjDoG5oIHBo4bqnbiByYSBraOG7j2kg4oCcJHJlbW90ZXVybOKAnSB1cmwiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTk2CisjOiBnaXQtc3VibW9kdWxlLnNoOjIzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiTm8gc3VibW9kdWxlIG1hcHBpbmcgZm91bmQgaW4gLmdpdG1vZHVsZXMgZm9yIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAiIgogIktow7RuZyB0w6xtIHRo4bqleSDDoW5oIHjhuqEgKG1hcHBpbmcpIG3DtC3EkXVuLWNvbiB0cm9uZyAuZ2l0bW9kdWxlcyBjaG8gxJHGsOG7nW5nIGThuqtuICIKICLigJwkc21fcGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjgxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDbG9uZSBvZiAnJHVybCcgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGZhaWxlZCIKIG1zZ3N0ciAiTmjDom4gYuG6o24g4oCcJHVybOKAnSB2w6BvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHNtX3BhdGjigJ0gZ+G6t3AgbOG7l2kiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MjUxCisjOiBnaXQtc3VibW9kdWxlLnNoOjI5MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiR2l0ZGlyICckYScgaXMgcGFydCBvZiB0aGUgc3VibW9kdWxlIHBhdGggJyRiJyBvciB2aWNlIHZlcnNhIgogbXNnc3RyICIiCiAiR2l0ZGlyIOKAnCRh4oCdIGzDoCBi4buZIHBo4bqtbiBj4bunYSDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRi4oCdIGhv4bq3YyBcInZpY2UgdmVyc2FcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNDkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDAzCittc2dpZCAiUmVsYXRpdmUgcGF0aCBjYW4gb25seSBiZSB1c2VkIGZyb20gdGhlIHRvcGxldmVsIG9mIHRoZSB3b3JraW5nIHRyZWUiCittc2dzdHIgIiIKKyLEkMaw4budbmcgZOG6q24gdMawxqFuZyDEkeG7kWkgY2jhu4kgY8OzIHRo4buDIGTDuW5nIHThu6sgdGjGsCBt4bulYyDhu58gbeG7qWMgY2FvIG5o4bqldCBj4bunYSBjw6J5IGzDoG0gIgorInZp4buHYyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MTMKICMsIHNoLWZvcm1hdAogbXNnaWQgInJlcG8gVVJMOiAnJHJlcG8nIG11c3QgYmUgYWJzb2x1dGUgb3IgYmVnaW4gd2l0aCAuL3wuLi8iCiBtc2dzdHIgIiIKICJyZXBvIFVSTDog4oCcJHJlcG/igJ0gcGjhuqNpIGzDoCDEkcaw4budbmcgZOG6q24gdHV54buHdCDEkeG7kWkgaG/hurdjIGzDoCBi4bqvdCDEkeG6p3UgYuG6sW5nIC4vfC4uLyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDMwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJHNtX3BhdGgnIGFscmVhZHkgZXhpc3RzIGluIHRoZSBpbmRleCIKIG1zZ3N0ciAi4oCdJHNtX3BhdGjigJ0gdGjhu7FjIHPhu7EgxJHDoyB04buTbiB04bqhaSDhu58gYuG6o25nIG3hu6VjIGzhu6VjIHLhu5NpIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM3MAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgZm9sbG93aW5nIHBhdGggaXMgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgpAQCAtOTk3MCwzNiArMTAzMDIsMzYgQEAKICIkc21fcGF0aFxuIgogIlPhu60gZOG7pW5nIC1mIG7hur91IGLhuqFuIHRo4buxYyBz4buxIG114buRbiB0aMOqbSBuw7MgdsOgby4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Mzg4CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ1MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQWRkaW5nIGV4aXN0aW5nIHJlcG8gYXQgJyRzbV9wYXRoJyB0byB0aGUgaW5kZXgiCiBtc2dzdHIgIsSQYW5nIHRow6ptIHJlcG8gY8OzIHPhurVuIHThuqFpIOKAnCRzbV9wYXRo4oCdIHbDoG8gYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM5MAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhIHZhbGlkIGdpdCByZXBvIgogbXNnc3RyICLigJ0kc21fcGF0aOKAnSDEkcOjIHThu5NuIHThuqFpIHThu6sgdHLGsOG7m2MgdsOgIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IGtobyBnaXQgaOG7o3AgbOG7hyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozOTgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDYyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBIGdpdCBkaXJlY3RvcnkgZm9yICckc21fbmFtZScgaXMgZm91bmQgbG9jYWxseSB3aXRoIHJlbW90ZShzKToiCiBtc2dzdHIgIiIKICJUaMawIG3hu6VjIGdpdCBjaG8g4oCcJHNtX25hbWXigJ0gxJHGsOG7o2MgdMOsbSB0aOG6pXkgbeG7mXQgY8OhY2ggY+G7pWMgYuG7mSB24bubaSBjw6FjIG3DoXkgY2jhu6c6IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJJZiB5b3Ugd2FudCB0byByZXVzZSB0aGlzIGxvY2FsIGdpdCBkaXJlY3RvcnkgaW5zdGVhZCBvZiBjbG9uaW5nIGFnYWluIGZyb20iCiBtc2dzdHIgIk7hur91IGLhuqFuIG114buRbiBkw7luZyBs4bqhaSB0aMawIG3hu6VjIGdpdCBu4buZaSBi4buZIG7DoHkgdGhheSB2w6wgbmjDom4gYuG6o24gdOG7qyBuw7MiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAyCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogInVzZSB0aGUgJy0tZm9yY2UnIG9wdGlvbi4gSWYgdGhlIGxvY2FsIGdpdCBkaXJlY3RvcnkgaXMgbm90IHRoZSBjb3JyZWN0IHJlcG8iCiBtc2dzdHIgIiIKICJkw7luZyB0w7l5IGNo4buNbiDigJwtLWZvcmNl4oCdLiBO4bq/dSB0aMawIG3hu6VjIGdpdCBu4buZaSBi4buZIGtow7RuZyBwaOG6o2kgbMOgIHJlcG8gKGtobykgxJHDum5nIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjcKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJvciB5b3UgYXJlIHVuc3VyZSB3aGF0IHRoaXMgbWVhbnMgY2hvb3NlIGFub3RoZXIgbmFtZSB3aXRoIHRoZSAnLS1uYW1lJyAiCkBAIC0xMDAwOCw3MCArMTAzNDAsNzEgQEAKICJoYXkgYuG6oW4ga2jDtG5nIGNo4bqvYyBjaOG6r24gxJFp4buBdSDEkcOzIGPDsyBuZ2jEqWEgZ8OsIGNo4buNbiB0w6puIGtow6FjIHbhu5tpIHTDuXkgY2jhu41uIOKAnC0tIgogIm5hbWXigJ0uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwNQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjkKICMsIHNoLWZvcm1hdAogbXNnaWQgIlJlYWN0aXZhdGluZyBsb2NhbCBnaXQgZGlyZWN0b3J5IGZvciBzdWJtb2R1bGUgJyRzbV9uYW1lJy4iCiBtc2dzdHIgIiIKICJQaOG7pWMgaOG7k2kgc+G7sSBob+G6oXQgxJHhu5luZyBj4bunYSB0aMawIG3hu6VjIGdpdCBu4buZaSBi4buZIGNobyBtw7QtxJF1bi1jb24g4oCcJHNtX25hbWXigJ0uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiS2jDtG5nIHRo4buDIGNoZWNrb3V0IG3DtC3EkXVuIGNvbiDigJwkc21fcGF0aOKAnSIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGNoZWNrb3V0IG3DtC3EkXVuLWNvbiDigJwkc21fcGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MjIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDg2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gYWRkIHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgotbXNnc3RyICJH4bq3cCBs4buXaSBraGkgdGjDqm0gbcO0LcSRdW4gY29uIOKAnCRzbV9wYXRo4oCdIgorbXNnc3RyICJH4bq3cCBs4buXaSBraGkgdGjDqm0gbcO0LcSRdW4tY29uIOKAnCRzbV9wYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIMSRxINuZyBrw70gduG7m2kgaOG7hyB0aOG7kW5nIG3DtC3EkXVuIGNvbiDigJwkc21fcGF0aOKAnSIKK21zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIMSRxINuZyBrw70gduG7m2kgaOG7hyB0aOG7kW5nIG3DtC3EkXVuLWNvbiDigJwkc21fcGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NzQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTM5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAixJBhbmcgbmjhuq1wIOKAnCRwcmVmaXgkc21fcGF0aOKAnSIKK21zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRkaXNwbGF5cGF0aCciCittc2dzdHIgIsSQYW5nIHbDoG8g4oCcJHByZWZpeCRkaXNwbGF5cGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTU0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdG9wcGluZyBhdCAnJHNtX3BhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKLW1zZ3N0ciAiROG7q25nIGzhuqFpIHThuqFpIOKAnCRzbV9wYXRo4oCdOyBzY3JpcHQgdHLhuqMgduG7gSB0cuG6oW5nIHRow6FpIGtow6FjIGtow7RuZy4iCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTMyCi0jLCBzaC1mb3JtYXQKLW1zZ2lkICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgaW4gLmdpdG1vZHVsZXMiCittc2dpZCAiU3RvcHBpbmcgYXQgJyRwcmVmaXgkZGlzcGxheXBhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKIG1zZ3N0ciAiIgotIktow7RuZyB0w6xtIHRo4bqleSB1cmwgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHNtX3BhdGjigJ0gdHJvbmcgLmdpdG1vZHVsZXMiCisiROG7q25nIGzhuqFpIHThuqFpIOKAnCRwcmVmaXgkZGlzcGxheXBhdGjigJ07IHNjcmlwdCB0cuG6oyB24buBIHRy4bqhbmcgdGjDoWkga2jDoWMga2jDtG5nLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NDEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjAwCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXJsIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICJH4bq3cCBs4buXaSBraGkgxJHEg25nIGvDvSB1cmwgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHNtX3BhdGjigJ0iCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTQzCi0jLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICJNw7QtxJF1bi1jb24g4oCcJG5hbWXigJ0gKCR1cmwpIMSRxrDhu6NjIMSRxINuZyBrw70gY2hvIMSRxrDhu51uZyBk4bqrbiDigJwkc21fcGF0aOKAnSIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NTEKLSMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKK21zZ2lkICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIGluIC5naXRtb2R1bGVzIgogbXNnc3RyICIiCi0iR+G6t3AgbOG7l2kga2hpIMSRxINuZyBrw70gY2jhur8gxJHhu5kgY+G6rXAgbmjhuq10IGNobyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRzbV9wYXRo4oCdIgorIktow7RuZyB0w6xtIHRo4bqleSB1cmwgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIHRyb25nIC5naXRtb2R1bGVzIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cmwgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJH4bq3cCBs4buXaSBraGkgxJHEg25nIGvDvSB1cmwgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxMQorIywgc2gtZm9ybWF0Cittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIk3DtC3EkXVuLWNvbiDigJwkbmFtZeKAnSAoJHVybCkgxJHGsOG7o2MgxJHEg25nIGvDvSBjaG8gxJHGsOG7nW5nIGThuqtuIOKAnCRkaXNwbGF5cGF0aOKAnSIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIiIKKyJH4bq3cCBs4buXaSBraGkgxJHEg25nIGvDvSBjaOG6vyDEkeG7mSBj4bqtcCBuaOG6rXQgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjY1NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiVXNlICcuJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gZGVpbml0aWFsaXplIGFsbCBzdWJtb2R1bGVzIgogbXNnc3RyICJEw7luZyDigJwu4oCdIG7hur91IGLhuqFuIHRo4buxYyBz4buxIG114buRbiBn4buhIGLhu48gbeG7jWkgbcO0LcSRdW4tY29uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2NzMKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IgotbXNnc3RyICJDw6J5IGzDoG0gdmnhu4djIG3DtC3EkXVuLWNvbiDigJwkc21fcGF0aOKAnSBjw7MgY2jhu6lhIHRoxrAgbeG7pWMgLmdpdCIKK21zZ2lkICJTdWJtb2R1bGUgd29yayB0cmVlICckZGlzcGxheXBhdGgnIGNvbnRhaW5zIGEgLmdpdCBkaXJlY3RvcnkiCittc2dzdHIgIkPDonkgbMOgbSB2aeG7h2MgbcO0LcSRdW4tY29uIOKAnCRkaXNwbGF5cGF0aOKAnSBjw7MgY2jhu6lhIHRoxrAgbeG7pWMgLmdpdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njc0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgpAQCAtMTAwNzksMTQ3ICsxMDQxMiwyMDEgQEAKICIoZMO5bmcg4oCccm0gLXJm4oCdIG7hur91IGLhuqFuIHRo4buxYyBz4buxIG114buRbiBn4buhIGLhu48gbsOzIGPDuW5nIHbhu5tpIHThuqV0IGPhuqMgbOG7i2NoIHPhu60gY+G7p2EgIgogImNow7puZykiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEwCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCisiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCiAiZGlzY2FyZCB0aGVtIgogbXNnc3RyICIiCi0iQ8OieSBsw6BtIHZp4buHYyBtw7QtxJF1bi1jb24g4oCcJHNtX3BhdGjigJ0gY2jhu6lhIGPDoWMgdGhheSDEkeG7lWkgbuG7mWkgYuG7mTsgaMOjeSBkw7luZyDigJwtZuKAnSAiCi0ixJHhu4MgbG/huqFpIGLhu48gY2jDum5nIMSRaSIKKyJDw6J5IGzDoG0gdmnhu4djIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ0gY2jhu6lhIGPDoWMgdGhheSDEkeG7lWkgbuG7mWkgYuG7mTsgaMOjeSBkw7luZyDigJwtIgorImbigJ0gxJHhu4MgbG/huqFpIGLhu48gY2jDum5nIMSRaSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjgzCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJDbGVhcmVkIGRpcmVjdG9yeSAnJHNtX3BhdGgnIgotbXNnc3RyICJUaMawIG3hu6VjIMSRxrDhu6NjIGThu41uIOKAnCRzbV9wYXRo4oCdIgorbXNnaWQgIkNsZWFyZWQgZGlyZWN0b3J5ICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLEkMOjIHThuqFvIHRoxrAgbeG7pWMgJyRkaXNwbGF5cGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjE0CisjOiBnaXQtc3VibW9kdWxlLnNoOjY4NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCciCi1tc2dzdHIgIktow7RuZyB0aOG7gyBn4buhIGLhu48gY8OieSBsw6BtIHZp4buHYyBtw7QtxJF1biBjb24g4oCcJHNtX3BhdGjigJ0iCittc2dpZCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgZ+G7oSBi4buPIGPDonkgbMOgbSB2aeG7h2MgbcO0LcSRdW4tY29uIOKAnCRkaXNwbGF5cGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njg3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiS2jDtG5nIHRo4buDIHThuqFvIHRoxrAgbeG7pWMgbcO0LcSRdW4tY29uIHLhu5duZyDigJwkc21fcGF0aOKAnSIKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIktow7RuZyB0aOG7gyB04bqhbyB0aMawIG3hu6VjIG3DtC3EkXVuLWNvbiBy4buXbmcg4oCcJGRpc3BsYXlwYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYyNgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2OTYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiTcO0LcSRdW4tY29uIOKAnCRuYW1l4oCdICgkdXJsKSDEkcaw4bujYyBi4buPIMSRxINuZyBrw70gY2hvIMSRxrDhu51uZyBk4bqrbiDigJwkc21fcGF0aOKAnSIKK21zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgdW5yZWdpc3RlcmVkIGZvciBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJNw7QtxJF1bi1jb24g4oCcJG5hbWXigJ0gKCR1cmwpIMSRxrDhu6NjIGLhu48gxJHEg25nIGvDvSBjaG8gxJHGsOG7nW5nIGThuqtuIOKAnCRkaXNwbGF5cGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3MzEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODExCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCcgbm90IGluaXRpYWxpemVkXG4iCisiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCcgbm90IGluaXRpYWxpemVkXG4iCiAiTWF5YmUgeW91IHdhbnQgdG8gdXNlICd1cGRhdGUgLS1pbml0Jz8iCiBtc2dzdHIgIiIKLSLEkMaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgkc21fcGF0aOKAnSBjaMawYSDEkcaw4bujYyBraOG7n2kgdOG6oW9cbiIKKyLEkMaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRkaXNwbGF5cGF0aOKAnSBjaMawYSDEkcaw4bujYyBraOG7n2kgdOG6oW8uXG4iCiAiQ8OzIGzhur0gYuG6oW4gbXXhu5FuIHPhu60gZOG7pW5nIGzhu4duaCDigJx1cGRhdGUgLS1pbml04oCdPyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3NDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODI0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gZmluZCBjdXJyZW50IHJldmlzaW9uIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKLSJLaMO0bmcgdMOsbSB0aOG6pXkgxJFp4buDbSB4w6l0IGzhuqFpIGhp4buHbiBow6BuaCB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgiCi0iJHNtX3BhdGjigJ0iCisiS2jDtG5nIHTDrG0gdGjhuqV5IMSRaeG7g20geMOpdCBkdXnhu4d0IGhp4buHbiBow6BuaCB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uICIKKyLigJwkZGlzcGxheXBhdGjigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzUzCisjOiBnaXQtc3VibW9kdWxlLnNoOjgzMwogIywgc2gtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIktow7RuZyB0aOG7gyBs4bqleSB24buBIChmZXRjaCkgdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkc21fcGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3NzcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODU3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIktow7RuZyB0aOG7gyBs4bqleSB24buBIChmZXRjaCkgdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkcHJlZml4JHNtX3BhdGjigJ0iCittc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgbOG6pXkgduG7gSAoZmV0Y2gpIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzEKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byByZWJhc2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiS2jDtG5nIHRo4buDIHJlYmFzZSDigJwkc2hhMeKAnSB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgkc21fcGF0aOKAnSIKK21zZ2lkICJVbmFibGUgdG8gcmViYXNlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIktow7RuZyB0aOG7gyByZWJhc2Ug4oCcJHNoYTHigJ0gdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzkyCisjOiBnaXQtc3VibW9kdWxlLnNoOjg3MgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IHJlYmFzZWQgaW50byAnJHNoYTEnIgotbXNnc3RyICLEkMaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgkc21fcGF0aOKAnTogxJHGsOG7o2MgcmViYXNlIHbDoG8gdHJvbmcg4oCcJHNoYTHigJ0iCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IHJlYmFzZWQgaW50byAnJHNoYTEnIgorbXNnc3RyICLEkMaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRkaXNwbGF5cGF0aOKAnTogxJHGsOG7o2MgcmViYXNlIHbDoG8gdHJvbmcg4oCcJHNoYTHigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk3CisjOiBnaXQtc3VibW9kdWxlLnNoOjg3NwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIG1lcmdlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiVW5hYmxlIHRvIG1lcmdlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKLSJLaMO0bmcgdGjhu4MgaMOyYSB0cuG7mW4gKG1lcmdlKSDigJwkc2hhMeKAnSB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgiCi0iJHNtX3BhdGjigJ0iCisiS2jDtG5nIHRo4buDIGjDsmEgdHLhu5luIChtZXJnZSkg4oCcJHNoYTHigJ0gdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk4CisjOiBnaXQtc3VibW9kdWxlLnNoOjg3OAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgotbXNnc3RyICLEkMaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgkc21fcGF0aOKAnTogxJHGsOG7o2MgaMOyYSB0cuG7mW4gdsOgbyDigJwkc2hhMeKAnSIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogbWVyZ2VkIGluICckc2hhMSciCittc2dzdHIgIsSQxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdOiDEkcaw4bujYyBow7JhIHRy4buZbiB2w6BvIOKAnCRzaGEx4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODMKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIiIKKyJFeGVjdXRpb24gb2YgJyRjb21tYW5kICRzaGExJyBmYWlsZWQgaW4gc3VibW9kdWxlICBwYXRoICckcHJlZml4JHNtX3BhdGgnIgogbXNnc3RyICIiCi0iS2jDtG5nIHRo4buDIGNoZWNrb3V0IOKAnCRzaGEx4oCdIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHByZWZpeCRzbV9wYXRo4oCdIgorIlRo4buxYyBoaeG7h24ga2jDtG5nIHRow6BuaCBjw7RuZyBs4buHbmgg4oCcJGNvbW1hbmQgJHNoYTHigJ0gdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiAiCisi4oCcJHByZWZpeCRzbV9wYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgwNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgotbXNnc3RyICLEkMaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgkc21fcGF0aOKAnTogxJHGsOG7o2MgY2hlY2tvdXQg4oCcJHNoYTHigJ0iCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6ICckY29tbWFuZCAkc2hhMSciCittc2dzdHIgIsSQxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHByZWZpeCRzbV9wYXRo4oCdOiDigJwkY29tbWFuZCAkc2hhMeKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MzEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODg5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICJH4bq3cCBs4buXaSBraGkgxJHhu4cgcXV5IHbDoG8gdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkcHJlZml4JHNtX3BhdGjigJ0iCittc2dpZCAiVW5hYmxlIHRvIGNoZWNrb3V0ICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIktow7RuZyB0aOG7gyBjaGVja291dCDigJwkc2hhMeKAnSB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRkaXNwbGF5cGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODkwCisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogY2hlY2tlZCBvdXQgJyRzaGExJyIKK21zZ3N0ciAixJDGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ06IMSRw6MgY2hlY2tvdXQg4oCcJHNoYTHigJ0iCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTE3CisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJH4bq3cCBs4buXaSBraGkgxJHhu4cgcXV5IHbDoG8gdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ0iCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTAyNQogbXNnaWQgIlRoZSAtLWNhY2hlZCBvcHRpb24gY2Fubm90IGJlIHVzZWQgd2l0aCB0aGUgLS1maWxlcyBvcHRpb24iCiBtc2dzdHIgIlTDuXkgY2jhu41uIC0tY2FjaGVkIGtow7RuZyB0aOG7gyBkw7luZyBjw7luZyB24bubaSB0w7l5IGNo4buNbiAtLWZpbGVzIgogCiAjLiB1bmV4cGVjdGVkIHR5cGUKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTc5CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwNjYKICMsIHNoLWZvcm1hdAogbXNnaWQgInVuZXhwZWN0ZWQgbW9kZSAkbW9kX2RzdCIKIG1zZ3N0ciAiY2jhur8gxJHhu5kga2jDtG5nIG5oxrAgbW9uZyBjaOG7nSAkbW9kX2RzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5OTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA4NgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX3NyYyIKLW1zZ3N0ciAiICBD4bqjbmggYsOhbzogJG5hbWUga2jDtG5nIGNo4bupYSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICRzaGExX3NyYyIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDAwCi0jLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgotbXNnc3RyICIgIEPhuqNuaCBiw6FvOiAkbmFtZSBraMO0bmcgY2jhu6lhIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgJHNoYTFfZHN0IgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMDMKLSMsIHNoLWZvcm1hdAotbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdHMgJHNoYTFfc3JjIGFuZCAkc2hhMV9kc3QiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgogbXNnc3RyICIiCi0iICBD4bqjbmggYsOhbzogJG5hbWUga2jDtG5nIGNo4bupYSBuaOG7r25nIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgJHNoYTFfc3JjIHbDoCAiCi0iJHNoYTFfZHN0IgorIiAgQ+G6o25oIGLDoW86ICRkaXNwbGF5X25hbWUga2jDtG5nIGNo4bupYSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICRzaGExX3NyYyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDI4CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwODkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKK21zZ3N0ciAiIgorIiAgQ+G6o25oIGLDoW86ICRkaXNwbGF5X25hbWUga2jDtG5nIGNo4bupYSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICRzaGExX2RzdCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDkyCisjLCBzaC1mb3JtYXQKK21zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdHMgJHNoYTFfc3JjIGFuZCAkc2hhMV9kc3QiCittc2dzdHIgIiIKKyIgIEPhuqNuaCBiw6FvOiAkZGlzcGxheV9uYW1lIGtow7RuZyBjaOG7qWEgbmjhu69uZyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICIKKyIkc2hhMV9zcmMgdsOgICRzaGExX2RzdCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTE3CiBtc2dpZCAiYmxvYiIKIG1zZ3N0ciAiYmxvYiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjExNTUKIG1zZ2lkICJTdWJtb2R1bGVzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkOiIKIG1zZ3N0ciAiTmjhu69uZyBtw7QtxJF1bi1jb24gxJHDoyBi4buLIHRoYXkgxJHhu5VpIG5oxrBuZyBjaMawYSDEkcaw4bujYyBj4bqtcCBuaOG6rXQ6IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwNjgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1NwogbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCiBtc2dzdHIgIk5o4buvbmcgbcO0LcSRdW4tY29uIHRoYXkgxJHhu5VpIMSRw6MgxJHGsOG7o2MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KToiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1MworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjQyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSDEkeG7hyBxdXkgdsOgbyB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRzbV9wYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEyMTYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTMwNgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiVXJsIE3DtC3EkXVuLWNvbiDEkeG7k25nIGLhu5kgaMOzYSBjaG8g4oCcJHByZWZpeCRzbV9wYXRo4oCdIgorbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIlVybCBNw7QtxJF1bi1jb24gxJHhu5NuZyBi4buZIGjDs2EgY2hvIOKAnCRkaXNwbGF5cGF0aOKAnSIKKworI34gbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCisjfiBtc2dzdHIgIiAgKHPhu61hIGPDoWMgeHVuZyDEkeG7mXQgdsOgIHNhdSDEkcOzIGNo4bqheSBs4buHbmggXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKKworI34gbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiCisjfiBtc2dzdHIgIiAgKGtoaSB04bqldCBj4bqjIGPDoWMgeHVuZyDEkeG7mXQgxJHDoyBz4butYSB4b25nOiBjaOG6oXkgbOG7h25oIFwiZ2l0IGNvbW1pdFwiKSIKKworI34gbXNnaWQgIm1vcmUgdGhhbiAlZCB0cmVlcyBnaXZlbjogJyVzJyIKKyN+IG1zZ3N0ciAixJHDoyBjaOG7iSByYSBuaGnhu4F1IGjGoW4gJWQgY8OieSAodHJlZSk6IOKAnCVz4oCdIgorCisjfiBtc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tbm8tZmYgd2l0aCAtLWZmLW9ubHkuIgorI34gbXNnc3RyICJC4bqhbiBraMO0bmcgdGjhu4Mga+G6v3QgaOG7o3AgLS1uby1mZiB24bubaSAtLWZmLW9ubHkuIgorCisjfiBtc2dpZCAiIgorI34gInN1Ym1vZHVsZSAnJXMnIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKSB1c2VzIGEgLmdpdCBkaXJlY3RvcnlcbiIKKyN+ICIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgIgorI34gImhpc3RvcnkpIgorI34gbXNnc3RyICIiCisjfiAibcO0LcSRdW4tY29uIOKAnCVz4oCdIChob+G6t2MgY8OhaSBu4bqxbSB0cm9uZyBjw6FjIG3DtC3EkXVuLWNvbikgZMO5bmcgdGjGsCBt4bulYyAuZ2l0XG4iCisjfiAiKGTDuW5nIOKAnHJtIC1yZuKAnSBu4bq/dSBi4bqhbiB0aOG7sWMgc+G7sSBtdeG7kW4gZ+G7oSBi4buPIG7DsyBjw7luZyB24bubaSB04bqldCBj4bqjIGzhu4tjaCBz4butIGPhu6dhICIKKyN+ICJjaMO6bmcpIgorCisjfiBtc2dpZCAiIgorI34gIiclcycgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleFxuIgorI34gIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCisjfiBtc2dzdHIgIiIKKyN+ICLigJwlc+KAnSBjw7MgY8OhYyB0aGF5IMSR4buVaSDEkcaw4bujYyBsxrB1IHRy4bqhbmcgdGjDoWkgdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjXG4iCisjfiAiKGTDuW5nIHTDuXkgY2jhu41uIC0tY2FjaGVkIMSR4buDIGdp4buvIHThuq1wIHRpbiwgaG/hurdjIC1mIMSR4buDIMOpcCBideG7mWMgZ+G7oSBi4buPKSIKKworI34gbXNnaWQgInNob3cgY29tbWl0cyB3aGVyZSBubyBwYXJlbnQgY29tZXMgYmVmb3JlIGl0cyBjaGlsZHJlbiIKKyN+IG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyBuxqFpIG3DoCBjaGEgbeG6uSDEkeG6v24gdHLGsOG7m2MgY29uIGPhu6dhIG7DsyIKKworI34gbXNnaWQgInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlIgorI34gbXNnc3RyICJoaeG7g24gdGjhu4sgdGhhbSBjaGnhur91IGPhu6dhIEhFQUQiCisKKyN+IG1zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCisjfiBtc2dzdHIgIiIKKyN+ICJLaMO0bmcgdGjhu4MgbOG6pXkgduG7gSAoZmV0Y2gpIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHByZWZpeCRzbV9wYXRo4oCdIgorCisjfiBtc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKKyN+IG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIMSR4buHIHF1eSB2w6BvIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHByZWZpeCRzbV9wYXRo4oCdIgogCiAjfiBtc2dpZCAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gICdzdGF0dXMgLXVubyciCiAjfiBtc2dzdHIgIkPhuqduICUuMmYgZ2nDonkgxJHhu4MgxJHhur9tIGPDoWMgdOG6rXAgdGluIGNoxrBhIMSRxrDhu6NjIHRoZW8gduG6v3QuICDigJxzdGF0dXMgLXVub+KAnSIKZGlmZiAtLWdpdCBhL3BvL3poX0NOLnBvIGIvcG8vemhfQ04ucG8KaW5kZXggYmE3NTdkOS4uYjdiNDZmMSAxMDA2NDQKLS0tIGEvcG8vemhfQ04ucG8KKysrIGIvcG8vemhfQ04ucG8KQEAgLTEyLDggKzEyLDggQEAKIG1zZ3N0ciAiIgogIlByb2plY3QtSWQtVmVyc2lvbjogR2l0XG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IEdpdCBNYWlsaW5nIExpc3QgPGdpdEB2Z2VyLmtlcm5lbC5vcmc+XG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDQtMzAgMDg6MjUrMDgwMFxuIgotIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMDQtMTIgMDk6MjMrMDgwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA4LTA2IDE0OjEwKzA4MDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDEzLTA4LTA2IDE0OjQ1KzA4MDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IEppYW5nIFhpbiA8d29ybGRoZWxsby5uZXRAZ21haWwuY29tPlxuIgogIkxhbmd1YWdlLVRlYW06IEdpdEh1YiA8aHR0cHM6Ly9naXRodWIuY29tL2dvdGdpdC9naXQvPlxuIgogIkxhbmd1YWdlOiB6aF9DTlxuIgpAQCAtMjIsNyArMjIsNyBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKICJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKIAotIzogYWR2aWNlLmM6NTMKKyM6IGFkdmljZS5jOjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImhpbnQ6ICUuKnNcbiIKIG1zZ3N0ciAi5o+Q56S677yaJS4qc1xuIgpAQCAtMzEsNyArMzEsNyBAQAogIy4gKiBNZXNzYWdlIHVzZWQgYm90aCB3aGVuICdnaXQgY29tbWl0JyBmYWlscyBhbmQgd2hlbgogIy4gKiBvdGhlciBjb21tYW5kcyBkb2luZyBhIG1lcmdlIGRvLgogIy4KLSM6IGFkdmljZS5jOjgzCisjOiBhZHZpY2UuYzo4NwogbXNnaWQgIiIKICJGaXggdGhlbSB1cCBpbiB0aGUgd29yayB0cmVlLFxuIgogImFuZCB0aGVuIHVzZSAnZ2l0IGFkZC9ybSA8ZmlsZT4nIGFzXG4iCkBAIC02OCw3ICs2OCw3IEBACiBtc2dpZCAiYXJjaGl2ZSBmb3JtYXQiCiBtc2dzdHIgIuW9kuaho+agvOW8jyIKIAotIzogYXJjaGl2ZS5jOjMyNCBidWlsdGluL2xvZy5jOjExMjYKKyM6IGFyY2hpdmUuYzozMjQgYnVpbHRpbi9sb2cuYzoxMTczCiBtc2dpZCAicHJlZml4IgogbXNnc3RyICLliY3nvIAiCiAKQEAgLTc2LDExICs3NiwxMSBAQAogbXNnaWQgInByZXBlbmQgcHJlZml4IHRvIGVhY2ggcGF0aG5hbWUgaW4gdGhlIGFyY2hpdmUiCiBtc2dzdHIgIuS4uuW9kuaho+S4reavj+S4qui3r+W+hOWQjeWKoOS4iuWJjee8gCIKIAotIzogYXJjaGl2ZS5jOjMyNiBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjM3MQotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzIgYnVpbHRpbi9jb25maWcuYzo1NSBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY1Ci0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY3IGJ1aWx0aW4vZ3JlcC5jOjcxNSBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTAgYnVpbHRpbi9scy1maWxlcy5jOjQ5MyBidWlsdGluL25vdGVzLmM6NTM2Ci0jOiBidWlsdGluL25vdGVzLmM6NjkzIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA3IHBhcnNlLW9wdGlvbnMuaDoxNDkKKyM6IGFyY2hpdmUuYzozMjYgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIyOTIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzIGJ1aWx0aW4vY29uZmlnLmM6NTYgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NSBidWlsdGluL2dyZXAuYzo3MTQgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk2IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTkgYnVpbHRpbi9ub3Rlcy5jOjQwOAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2NSBidWlsdGluL3JlYWQtdHJlZS5jOjEwOCBwYXJzZS1vcHRpb25zLmg6MTUyCiBtc2dpZCAiZmlsZSIKIG1zZ3N0ciAi5paH5Lu2IgogCkBAIC0xMTIsNyArMTEyLDcgQEAKIG1zZ2lkICJsaXN0IHN1cHBvcnRlZCBhcmNoaXZlIGZvcm1hdHMiCiBtc2dzdHIgIuWIl+WHuuaUr+aMgeeahOW9kuaho+agvOW8jyIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODYKKyM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg1CiBtc2dpZCAicmVwbyIKIG1zZ3N0ciAi54mI5pys5bqTIgogCkBAIC0xMjAsNyArMTIwLDcgQEAKIG1zZ2lkICJyZXRyaWV2ZSB0aGUgYXJjaGl2ZSBmcm9tIHJlbW90ZSByZXBvc2l0b3J5IDxyZXBvPiIKIG1zZ3N0ciAi5LuO6L+c56iL54mI5pys5bqT77yIPOeJiOacrOW6kz7vvInmj5Dlj5blvZLmoaPmlofku7YiCiAKLSM6IGFyY2hpdmUuYzozNDcgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjYxNQorIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NDg3CiBtc2dpZCAiY29tbWFuZCIKIG1zZ3N0ciAi5ZG95LukIgogCkBAIC0yMDUsMTcgKzIwNSwxNyBAQAogbXNnaWQgIkNhbm5vdCBmb3JjZSB1cGRhdGUgdGhlIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAi5peg5rOV5by65Yi25pu05paw5b2T5YmN5YiG5pSv44CCIgogCi0jOiBicmFuY2guYzoyMDEKKyM6IGJyYW5jaC5jOjIxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc2V0dXAgdHJhY2tpbmcgaW5mb3JtYXRpb247IHN0YXJ0aW5nIHBvaW50ICclcycgaXMgbm90IGEgYnJhbmNoLiIKIG1zZ3N0ciAi5peg5rOV6K6+572u6Lef6Liq5L+h5oGv77yb6LW35aeL54K5ICclcycg5LiN5piv5LiA5Liq5YiG5pSv44CCIgogCi0jOiBicmFuY2guYzoyMDMKKyM6IGJyYW5jaC5jOjIxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICLor7fmsYLnmoTkuIrmuLjliIbmlK8gJyVzJyDkuI3lrZjlnKgiCiAKLSM6IGJyYW5jaC5jOjIwNQorIzogYnJhbmNoLmM6MjIwCiBtc2dpZCAiIgogIlxuIgogIklmIHlvdSBhcmUgcGxhbm5pbmcgb24gYmFzaW5nIHlvdXIgd29yayBvbiBhbiB1cHN0cmVhbVxuIgpAQCAtMjMzLDI2ICsyMzMsMjYgQEAKICLlpoLmnpzmgqjmraPorqHliJLmjqjpgIHkuIDkuKrog73kuI7lr7nlupTov5znqIvliIbmlK/lu7rnq4vot5/ouKrnmoTmlrDnmoTmnKzlnLDliIbmlK/vvIxcbiIKICLmgqjlj6/og73pnIDopoHkvb/nlKggXCJnaXQgcHVzaCAtdVwiIOaOqOmAgeWIhuaUr+W5tumFjee9ruWSjOS4iua4uOeahOWFs+iBlOOAgiIKIAotIzogYnJhbmNoLmM6MjUwCisjOiBicmFuY2guYzoyNjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWU6ICclcycuIgogbXNnc3RyICLkuI3mmK/kuIDkuKrmnInmlYjnmoTlr7nosaHlkI3vvJonJXMn44CCIgogCi0jOiBicmFuY2guYzoyNzAKKyM6IGJyYW5jaC5jOjI4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJBbWJpZ3VvdXMgb2JqZWN0IG5hbWU6ICclcycuIgogbXNnc3RyICLmrafkuYnnmoTlr7nosaHlkI3vvJonJXMn44CCIgogCi0jOiBicmFuY2guYzoyNzUKKyM6IGJyYW5jaC5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBicmFuY2ggcG9pbnQ6ICclcycuIgogbXNnc3RyICLml6DmlYjnmoTliIbmlK/ngrnvvJonJXMn44CCIgogCi0jOiBicmFuY2guYzoyODEKKyM6IGJyYW5jaC5jOjI5NgogbXNnaWQgIkZhaWxlZCB0byBsb2NrIHJlZiBmb3IgdXBkYXRlIgogbXNnc3RyICLml6Dms5XkuLrmm7TmlrDplIHlrprlvJXnlKgiCiAKLSM6IGJyYW5jaC5jOjI5OQorIzogYnJhbmNoLmM6MzE0CiBtc2dpZCAiRmFpbGVkIHRvIHdyaXRlIHJlZiIKIG1zZ3N0ciAi5LiN6IO95YaZ5byV55SoIgogCkBAIC0yNjYsNyArMjY2LDcgQEAKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaGVhZGVyOiAlcyVzICglZCkiCiBtc2dzdHIgIuacquiDveivhuWIq+eahOWMheWktO+8miVzJXMgKCVkKSIKIAotIzogYnVuZGxlLmM6ODkgYnVpbHRpbi9jb21taXQuYzo2NzYKKyM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njk3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuICclcyciCiBtc2dzdHIgIuS4jeiDveaJk+W8gCAnJXMnIgpAQCAtMjc1LDkgKzI3NSw5IEBACiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyB0aGVzZSBwcmVyZXF1aXNpdGUgY29tbWl0czoiCiBtc2dzdHIgIueJiOacrOW6k+e8uuWwkei/meS6m+W/heWkh+eahOaPkOS6pO+8miIKIAotIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY1MSBzZXF1ZW5jZXIuYzoxMTAxIGJ1aWx0aW4vbG9nLmM6MzAwCi0jOiBidWlsdGluL2xvZy5jOjc3MCBidWlsdGluL2xvZy5jOjEzNDQgYnVpbHRpbi9sb2cuYzoxNTcwIGJ1aWx0aW4vbWVyZ2UuYzozNDkKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTUKKyM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NjEgc2VxdWVuY2VyLmM6MTExMSBidWlsdGluL2xvZy5jOjMzMQorIzogYnVpbHRpbi9sb2cuYzo4MDEgYnVpbHRpbi9sb2cuYzoxMzk5IGJ1aWx0aW4vbG9nLmM6MTYyNSBidWlsdGluL21lcmdlLmM6MzY0CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MTU2CiBtc2dpZCAicmV2aXNpb24gd2FsayBzZXR1cCBmYWlsZWQiCiBtc2dzdHIgIueJiOacrOmBjeWOhuiuvue9ruWksei0pSIKIApAQCAtMzAzLDcgKzMwMyw3IEBACiBtc2dpZCAicmV2LWxpc3QgZGllZCIKIG1zZ3N0ciAicmV2LWxpc3Qg57uI5q2iIgogCi0jOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMjU1IGJ1aWx0aW4vc2hvcnRsb2cuYzoyNTgKKyM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEzMTAgYnVpbHRpbi9zaG9ydGxvZy5jOjI1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICVzIgogbXNnc3RyICLmnKrog73or4bliKvnmoTlj4LmlbDvvJolcyIKQEAgLTMzNCwxMiArMzM0LDEyIEBACiBtc2dpZCAiaW5kZXgtcGFjayBkaWVkIgogbXNnc3RyICJpbmRleC1wYWNrIOe7iOatoiIKIAotIzogY29tbWl0LmM6NTAKKyM6IGNvbW1pdC5jOjUzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSAlcyIKIG1zZ3N0ciAi5LiN6IO96Kej5p6QICVzIgogCi0jOiBjb21taXQuYzo1MgorIzogY29tbWl0LmM6NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgJXMgaXMgbm90IGEgY29tbWl0ISIKIG1zZ3N0ciAiJXMgJXMg5LiN5piv5LiA5Liq5o+Q5LqkISIKQEAgLTM0OCwxNiArMzQ4LDE2IEBACiBtc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKIG1zZ3N0ciAi5YaF5a2Y6ICX5bC9IgogCi0jOiBjb25uZWN0ZWQuYzozOQorIzogY29ubmVjdGVkLmM6NjAKIG1zZ2lkICJDb3VsZCBub3QgcnVuICdnaXQgcmV2LWxpc3QnIgogbXNnc3RyICLkuI3og73miafooYwgJ2dpdCByZXYtbGlzdCciCiAKLSM6IGNvbm5lY3RlZC5jOjQ4CisjOiBjb25uZWN0ZWQuYzo4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgd3JpdGUgdG8gcmV2LWxpc3Q6ICVzIgogbXNnc3RyICLml6Dms5XlhpnlhaUgcmV2LWxpc3TvvJolcyIKIAotIzogY29ubmVjdGVkLmM6NTYKKyM6IGNvbm5lY3RlZC5jOjg4CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjbG9zZSByZXYtbGlzdCdzIHN0ZGluOiAlcyIKIG1zZ3N0ciAi5peg5rOV5YWz6ZetIHJldi1saXN0IOeahOagh+WHhui+k+WFpe+8miVzIgpAQCAtNDU1LDcgKzQ1NSw3IEBACiAi5Y+R546w6YWN572u5Y+Y6YePICdkaWZmLmRpcnN0YXQnIOS4reeahOmUmeivr++8mlxuIgogIiVzIgogCi0jOiBkaWZmLmM6MzQ4MQorIzogZGlmZi5jOjM0ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkZhaWxlZCB0byBwYXJzZSAtLWRpcnN0YXQvLVggb3B0aW9uIHBhcmFtZXRlcjpcbiIKQEAgLTQ2NCw3ICs0NjQsNyBAQAogIuaXoOazleino+aekCAtLWRpcnN0YXQvLVgg6YCJ6aG555qE5Y+C5pWw77yaXG4iCiAiJXMiCiAKLSM6IGRpZmYuYzozNDk1CisjOiBkaWZmLmM6MzUwMQogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcGFyc2UgLS1zdWJtb2R1bGUgb3B0aW9uIHBhcmFtZXRlcjogJyVzJyIKIG1zZ3N0ciAi5peg5rOV6Kej5p6QIC0tc3VibW9kdWxlIOmAiemhueeahOWPguaVsO+8miclcyciCkBAIC01MDYsMjAgKzUwNiwyMCBAQAogbXNnaWQgIiclcyc6IHNob3J0IHJlYWQgJXMiCiBtc2dzdHIgIiclcyfvvJror7vlj5bkuI3lrozmlbQgJXMiCiAKLSM6IGhlbHAuYzoyMTIKKyM6IGhlbHAuYzoyMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiYXZhaWxhYmxlIGdpdCBjb21tYW5kcyBpbiAnJXMnIgogbXNnc3RyICLlnKggJyVzJyDkuIvlj6/nlKjnmoQgZ2l0IOWRveS7pCIKIAotIzogaGVscC5jOjIxOQorIzogaGVscC5jOjIxNwogbXNnaWQgImdpdCBjb21tYW5kcyBhdmFpbGFibGUgZnJvbSBlbHNld2hlcmUgb24geW91ciAkUEFUSCIKIG1zZ3N0ciAi5ZyoICRQQVRIIOi3r+W+hOS4reeahOWFtuS7luWcsOaWueWPr+eUqOeahCBnaXQg5ZG95LukIgogCi0jOiBoZWxwLmM6MjM1CisjOiBoZWxwLmM6MjMzCiBtc2dpZCAiVGhlIG1vc3QgY29tbW9ubHkgdXNlZCBnaXQgY29tbWFuZHMgYXJlOiIKIG1zZ3N0ciAi5pyA5bi455So55qEIGdpdCDlkb3ku6TmnInvvJoiCiAKLSM6IGhlbHAuYzoyOTIKKyM6IGhlbHAuYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiclcycgYXBwZWFycyB0byBiZSBhIGdpdCBjb21tYW5kLCBidXQgd2Ugd2VyZSBub3RcbiIKQEAgLTUyOCwxMSArNTI4LDExIEBACiAiJyVzJyDlg4/mmK/kuIDkuKogZ2l0IOWRveS7pO+8jOS9huWNtOaXoOazlei/kOihjOOAglxuIgogIuWPr+iDveaYryBnaXQtJXMg5Y+X5o2f77yfIgogCi0jOiBoZWxwLmM6MzQ5CisjOiBoZWxwLmM6MzQ3CiBtc2dpZCAiVWggb2guIFlvdXIgc3lzdGVtIHJlcG9ydHMgbm8gR2l0IGNvbW1hbmRzIGF0IGFsbC4iCiBtc2dzdHIgIuWUieWRgO+8jOaCqOeahOezu+e7n+S4reacquWPkeeOsCBHaXQg5ZG95Luk44CCIgogCi0jOiBoZWxwLmM6MzcxCisjOiBoZWxwLmM6MzY5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJXQVJOSU5HOiBZb3UgY2FsbGVkIGEgR2l0IGNvbW1hbmQgbmFtZWQgJyVzJywgd2hpY2ggZG9lcyBub3QgZXhpc3QuXG4iCkBAIC01NDEsMTcgKzU0MSwxNyBAQAogIuitpuWRiu+8muaCqOi/kOihjOS4gOS4quS4jeWtmOWcqOeahCBHaXQg5ZG95LukICclcyfjgILnu6fnu63miafooYzlgYflrprmgqjopoHopoHov5DooYznmoRcbiIKICLmmK8gJyVzJyIKIAotIzogaGVscC5jOjM3NgorIzogaGVscC5jOjM3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbiAlMC4xZiBzZWNvbmRzIGF1dG9tYXRpY2FsbHkuLi4iCiBtc2dzdHIgIuWcqCAlMC4xZiDnp5Lpkp/lkI7oh6rliqjov5DooYwuLi4iCiAKLSM6IGhlbHAuYzozODMKKyM6IGhlbHAuYzozODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0OiAnJXMnIGlzIG5vdCBhIGdpdCBjb21tYW5kLiBTZWUgJ2dpdCAtLWhlbHAnLiIKIG1zZ3N0ciAiZ2l077yaJyVzJyDkuI3mmK/kuIDkuKogZ2l0IOWRveS7pOOAguWPguingSAnZ2l0IC0taGVscCfjgIIiCiAKLSM6IGhlbHAuYzozODcKKyM6IGhlbHAuYzozODUgaGVscC5jOjQ0NAogbXNnaWQgIiIKICJcbiIKICJEaWQgeW91IG1lYW4gdGhpcz8iCkBAIC01NjUsMTIgKzU2NSwxNyBAQAogIlxuIgogIuaCqOaMh+eahOaYr+i/meWFtuS4reeahOafkOS4gOS4quS5iO+8nyIKIAorIzogaGVscC5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgLSAlcyIKK21zZ3N0ciAiJXPvvJolcyAtICVzIgorCiAjOiBtZXJnZS5jOjU2CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGhlIGNhY2hlIgogbXNnc3RyICLml6Dms5Xor7vlj5bnvJPlrZgiCiAKICM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNjUgYnVpbHRpbi9jaGVja291dC5jOjU2NgotIzogYnVpbHRpbi9jbG9uZS5jOjY0NQorIzogYnVpbHRpbi9jbG9uZS5jOjY1NgogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKIG1zZ3N0ciAi5peg5rOV5YaZ5paw55qE57Si5byV5paH5Lu2IgogCkBAIC01ODQsNzAgKzU4OSw3MCBAQAogbXNnaWQgImFkZGluZm9fY2FjaGUgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgIuS4uui3r+W+hCAnJXMnIGFkZGluZm9fY2FjaGUg5aSx6LSlIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoyNjgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjI2OQogbXNnaWQgImVycm9yIGJ1aWxkaW5nIHRyZWVzIgogbXNnc3RyICLml6Dms5XliJvlu7rmoJEiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY3MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgcGF0aCAnJXMnJXMiCiBtc2dzdHIgIuaXoOazleWIm+W7uui3r+W+hCAnJXMnJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY4MworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzIHRvIG1ha2Ugcm9vbSBmb3Igc3ViZGlyZWN0b3J5XG4iCiBtc2dzdHIgIuWIoOmZpCAlcyDku6Xkvr/kuLrlrZDnm67lvZXnlZnlh7rnqbrpl7RcbiIKIAogIy4gc29tZXRoaW5nIGVsc2UgZXhpc3RzCiAjLiAuLiBidXQgbm90IHNvbWUgb3RoZXIgZXJyb3IgKHdobyByZWFsbHkgY2FyZXMgd2hhdD8pCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTcgbWVyZ2UtcmVjdXJzaXZlLmM6NzE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTggbWVyZ2UtcmVjdXJzaXZlLmM6NzE5CiBtc2dpZCAiOiBwZXJoYXBzIGEgRC9GIGNvbmZsaWN0PyIKIG1zZ3N0ciAi77ya5Y+v6IO95piv5LiA5Liq55uu5b2VL+aWh+S7tuWGsueqge+8nyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzA4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmdXNpbmcgdG8gbG9zZSB1bnRyYWNrZWQgZmlsZSBhdCAnJXMnIgogbXNnc3RyICLmi5Lnu53kuKLlvIMgJyVzJyDkuK3nmoTmnKrot5/ouKrmlofku7YiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc0OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIG9iamVjdCAlcyAnJXMnIgogbXNnc3RyICLkuI3og73or7vlj5blr7nosaEgJXMgJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzUwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmxvYiBleHBlY3RlZCBmb3IgJXMgJyVzJyIKIG1zZ3N0ciAiJXMgJyVzJyDlupTkuLrmlbDmja7vvIhibG9i77yJ5a+56LGhIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzMgYnVpbHRpbi9jbG9uZS5jOjMxMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzc0IGJ1aWx0aW4vY2xvbmUuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIG9wZW4gJyVzJyIKIG1zZ3N0ciAi5peg5rOV5omT5byAICclcyciCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzeW1saW5rICclcyciCiBtc2dzdHIgIuaXoOazleWIm+W7uuespuWPt+mTvuaOpSAnJXMnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJkbyBub3Qga25vdyB3aGF0IHRvIGRvIHdpdGggJTA2byAlcyAnJXMnIgogbXNnc3RyICLkuI3nn6XpgZPlpoLkvZXlpITnkIYgJTA2byAlcyAnJXMnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyMwogbXNnaWQgIkZhaWxlZCB0byBleGVjdXRlIGludGVybmFsIG1lcmdlIgogbXNnc3RyICLml6Dms5XmiafooYzlhoXpg6jlkIjlubYiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBhZGQgJXMgdG8gZGF0YWJhc2UiCiBtc2dzdHIgIuS4jeiDvea3u+WKoCAlcyDoh7Plr7nosaHlupMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjk0MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTQzCiBtc2dpZCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGUgaW4gdGhlIHRyZWUiCiBtc2dzdHIgIuWcqOagkeS4reacieS4jeaUr+aMgeeahOWvueixoeexu+WeiyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyMSBtZXJnZS1yZWN1cnNpdmUuYzoxMDM1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIyIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKQEAgLTY1Niw3ICs2NjEsNyBAQAogIuWGsueqge+8iCUxJHMv5Yig6Zmk77yJ77yaJTIkcyDlnKggJTMkcyDkuK3ooqvliKDpmaTvvIzlnKggJTUkcyDkuK3ooqsgJTQkc+OAgiU3JHMg5ZyoICU2JHMg5LitIgogIueahOeJiOacrOiiq+S/neeVmeOAgiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyNyBtZXJnZS1yZWN1cnNpdmUuYzoxMDQwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI4IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKQEAgLTY2NSwyMCArNjcwLDIwIEBACiAi5Yay56qB77yIJTEkcy/liKDpmaTvvInvvJolMiRzIOWcqCAlMyRzIOS4reiiq+WIoOmZpO+8jOWcqCAlNSRzIOS4reiiqyAlNCRz44CCJTckcyDlnKggJTYkcyDkuK0iCiAi55qE54mI5pys5L+d55WZ5LqOICU4JHMg5Lit44CCIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgyCiBtc2dpZCAicmVuYW1lIgogbXNnc3RyICLph43lkb3lkI0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWVkIgogbXNnc3RyICLph43lkb3lkI0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaXMgYSBkaXJlY3RvcnkgaW4gJXMgYWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIiVzIOaYryAlcyDkuK3nmoTkuIDkuKrnm67lvZXogIzku6UgJXMg5Li65ZCN6KKr5re75YqgIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTU5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDT05GTElDVCAocmVuYW1lL3JlbmFtZSk6IFJlbmFtZSBcIiVzXCItPlwiJXNcIiBpbiBicmFuY2ggXCIlc1wiIHJlbmFtZSBcIiVzIgpAQCAtNjg3LDE0OCArNjkyLDE2OSBAQAogIuWGsueqge+8iOmHjeWRveWQjS/ph43lkb3lkI3vvInvvJrlnKjliIbmlK8gXCIlMyRzXCIg5Lit6YeN5ZG95ZCNIFwiJTEkc1wiLT5cIiUyJHNcIu+8jOWcqOWIhuaUryAiCiAiXCIlNiRzXCIg5Lit6YeN5ZG95ZCNIFwiJTQkc1wiLT5cIiU1JHNcIiU3JHMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjUKIG1zZ2lkICIgKGxlZnQgdW5yZXNvbHZlZCkiCiBtc2dzdHIgIu+8iOeVmeS4i+acquino+WGs++8iSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTIxOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTIxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAocmVuYW1lL3JlbmFtZSk6IFJlbmFtZSAlcy0+JXMgaW4gJXMuIFJlbmFtZSAlcy0+JXMgaW4gJXMiCiBtc2dzdHIgIiIKICLlhrLnqoHvvIjph43lkb3lkI0v6YeN5ZG95ZCN77yJ77ya5ZyoICUzJHMg5Lit6YeN5ZG95ZCNICUxJHMtPiUyJHPvvIzlnKggJTYkcyDkuK3ph43lkb3lkI0gJTQkcy0+IgogIiU1JHMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyNDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1pbmcgJXMgdG8gJXMgYW5kICVzIHRvICVzIGluc3RlYWQiCiBtc2dzdHIgIuiAjOaYr+mHjeWRveWQjSAlcyDoh7MgJXPvvIzku6Xlj4ogJXMg6IezICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvYWRkKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gJXMgYWRkZWQgaW4gJXMiCiBtc2dzdHIgIuWGsueqge+8iOmHjeWRveWQjS/mt7vliqDvvInvvJrlnKggJTMkcyDkuK3ph43lkb3lkI0gJTEkcy0+JTIkc+OAguWcqCAlNSRzIOS4rea3u+WKoCAlNCRzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyBtZXJnZWQgJXMiCiBtc2dzdHIgIua3u+WKoOWQiOW5tuWQjueahCAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MiBtZXJnZS1yZWN1cnNpdmUuYzoxNjYwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDYzIG1lcmdlLXJlY3Vyc2l2ZS5jOjE2NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIuiAjOaYr+S7pSAlcyDkuLrlkI3mt7vliqAiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICLkuI3og73or7vlj5blr7nosaEgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIGlzIG5vdCBhIGJsb2IiCiBtc2dzdHIgIuWvueixoSAlcyDkuI3mmK/kuIDkuKrmlbDmja7vvIhibG9i77yJ5a+56LGhIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY1CiBtc2dpZCAibW9kaWZ5IgogbXNnc3RyICLkv67mlLkiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjUKIG1zZ2lkICJtb2RpZmllZCIKIG1zZ3N0ciAi5L+u5pS5IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTc0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTc1CiBtc2dpZCAiY29udGVudCIKIG1zZ3N0ciAi5YaF5a65IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTgyCiBtc2dpZCAiYWRkL2FkZCIKIG1zZ3N0ciAi5re75YqgL+a3u+WKoCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGVkICVzIChtZXJnZWQgc2FtZSBhcyBleGlzdGluZykiCiBtc2dzdHIgIueVpei/hyAlc++8iOW3sue7j+WBmui/h+ebuOWQjOWQiOW5tu+8iSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYyOQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCiBtc2dzdHIgIuiHquWKqOWQiOW5tiAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMyBnaXQtc3VibW9kdWxlLnNoOjEwMjkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQgZ2l0LXN1Ym1vZHVsZS5zaDoxMTE4CiBtc2dpZCAic3VibW9kdWxlIgogbXNnc3RyICLlrZDmqKHnu4QiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKCVzKTogTWVyZ2UgY29uZmxpY3QgaW4gJXMiCiBtc2dzdHIgIuWGsueqge+8iCVz77yJ77ya5ZCI5bm25Yay56qB5LqOICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzI0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzIgogbXNnc3RyICLliKDpmaQgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NDkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTAKIG1zZ2lkICJmaWxlL2RpcmVjdG9yeSIKIG1zZ3N0ciAi5paH5Lu2L+ebruW9lSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NgogbXNnaWQgImRpcmVjdG9yeS9maWxlIgogbXNnc3RyICLnm67lvZUv5paH5Lu2IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzYwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUICglcyk6IFRoZXJlIGlzIGEgZGlyZWN0b3J5IHdpdGggbmFtZSAlcyBpbiAlcy4gQWRkaW5nICVzIGFzICVzIgogbXNnc3RyICLlhrLnqoHvvIglMSRz77yJ77ya5ZyoICUzJHMg5Lit5pyJ5LiA5Liq5ZCN5Li6ICUyJHMg55qE55uu5b2V44CC5LulICU1JHMg5Li65ZCN5re75YqgICU0JHMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NzAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWRkaW5nICVzIgogbXNnc3RyICLmt7vliqAgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3ODcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3ODgKIG1zZ2lkICJGYXRhbCBtZXJnZSBmYWlsdXJlLCBzaG91bGRuJ3QgaGFwcGVuLiIKIG1zZ3N0ciAi5Lil6YeN55qE5ZCI5bm26ZSZ6K+v77yM5LiN5bqU5Y+R55Sf44CCIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODA2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODA3CiBtc2dpZCAiQWxyZWFkeSB1cC10by1kYXRlISIKIG1zZ3N0ciAi5bey57uP5piv5pyA5paw55qE77yBIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODE1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1lcmdpbmcgb2YgdHJlZXMgJXMgYW5kICVzIGZhaWxlZCIKIG1zZ3N0ciAi5peg5rOV5ZCI5bm25qCRICVzIOWSjCAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnByb2Nlc3NlZCBwYXRoPz8/ICVzIgogbXNnc3RyICLmnKrlpITnkIbnmoTot6/lvoQ/Pz8gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTEKIG1zZ2lkICJNZXJnaW5nOiIKIG1zZ3N0ciAi5ZCI5bm277yaIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTAzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcjoiCiBtc2dpZF9wbHVyYWwgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcnM6IgogbXNnc3RyWzBdICLlj5HnjrAgJXUg5Liq5YWx5ZCM56WW5YWI77yaIgogbXNnc3RyWzFdICLlj5HnjrAgJXUg5Liq5YWx5ZCM56WW5YWI77yaIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTQwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTQxCiBtc2dpZCAibWVyZ2UgcmV0dXJuZWQgbm8gY29tbWl0IgogbXNnc3RyICLlkIjlubbmnKrov5Tlm57mj5DkuqQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5OTcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIG9iamVjdCAnJXMnIgogbXNnc3RyICLkuI3og73op6PmnpDlr7nosaEgJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjAwOSBidWlsdGluL21lcmdlLmM6NjU4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDEwIGJ1aWx0aW4vbWVyZ2UuYzo2NzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5kZXguIgogbXNnc3RyICLkuI3og73lhpnlhaXntKLlvJXjgIIiCiAKLSM6IG9iamVjdC5jOjE5NQorIzogbm90ZXMtdXRpbHMuYzo0MAorbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKK21zZ3N0ciAi5LiN6IO95o+Q5Lqk5pyq5Yid5aeL5YyWL+acquW8leeUqOeahOazqOino+agkSIKKworIzogbm90ZXMtdXRpbHMuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciCittc2dzdHIgIuWdj+eahCBub3Rlcy5yZXdyaXRlTW9kZSDlgLzvvJonJXMnIgorCisjOiBub3Rlcy11dGlscy5jOjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgorbXNnc3RyICLmi5Lnu53lkJEgJXPvvIjlnKggcmVmcy9ub3Rlcy8g5LmL5aSW77yJ5YaZ5YWl5rOo6KejIgorCisjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIGlzIHRoZSBuYW1lIG9mIHRoZQorIy4gZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBzZWNvbmQgJXMgaXMgaXRzIHZhbHVlCisjOiBub3Rlcy11dGlscy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCittc2dzdHIgIuWdj+eahCAlcyDlgLzvvJonJXMnIgorCisjOiBvYmplY3QuYzoyMDQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHBhcnNlIG9iamVjdDogJXMiCiBtc2dzdHIgIuS4jeiDveino+aekOWvueixoe+8miVzIgpAQCAtODY5LDE4ICs4OTUsMTggQEAKIG1zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCiBtc2dzdHIgIiclcycg5L2N5LqO56ym5Y+36ZO+5o6l5LitIgogCi0jOiByZW1vdGUuYzoxNzgxCisjOiByZW1vdGUuYzoxNzg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0LlxuIgogbXNnaWRfcGx1cmFsICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdHMuXG4iCiBtc2dzdHJbMF0gIuaCqOeahOWIhuaUr+mihuWFiCAnJXMnIOWFsSAlZCDkuKrmj5DkuqTjgIJcbiIKIG1zZ3N0clsxXSAi5oKo55qE5YiG5pSv6aKG5YWIICclcycg5YWxICVkIOS4quaPkOS6pOOAglxuIgogCi0jOiByZW1vdGUuYzoxNzg3CisjOiByZW1vdGUuYzoxNzk0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgcHVzaFwiIOadpeWPkeW4g+aCqOeahOacrOWcsOaPkOS6pO+8iVxuIgogCi0jOiByZW1vdGUuYzoxNzkwCisjOiByZW1vdGUuYzoxNzk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGJlaGluZCAnJXMnIGJ5ICVkIGNvbW1pdCwgYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIKIG1zZ2lkX3BsdXJhbCAiIgpAQCAtODg5LDExICs5MTUsMTEgQEAKIG1zZ3N0clsxXSAi5oKo55qE5YiG5pSv6JC95ZCOICclcycg5YWxICVkIOS4quaPkOS6pO+8jOW5tuS4lOWPr+S7peW/q+i/m+OAglxuIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHJlbW90ZS5jOjE3OTgKKyM6IHJlbW90ZS5jOjE4MDUKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIHVwZGF0ZSB5b3VyIGxvY2FsIGJyYW5jaClcbiIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgcHVsbFwiIOadpeabtOaWsOaCqOeahOacrOWcsOWIhuaUr++8iVxuIgogCi0jOiByZW1vdGUuYzoxODAxCisjOiByZW1vdGUuYzoxODA4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3VyIGJyYW5jaCBhbmQgJyVzJyBoYXZlIGRpdmVyZ2VkLFxuIgpAQCAtOTA5LDE4ICs5MzUsMjcgQEAKICLlubbkuJTliIbliKvmnIkgJWQg5ZKMICVkIOWkhOS4jeWQjOeahOaPkOS6pOOAglxuIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHJlbW90ZS5jOjE4MTEKKyM6IHJlbW90ZS5jOjE4MTgKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIG1lcmdlIHRoZSByZW1vdGUgYnJhbmNoIGludG8geW91cnMpXG4iCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IHB1bGxcIiDmnaXlkIjlubbov5znqIvliIbmlK/vvIlcbiIKIAotIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3NzYgYnVpbHRpbi9tZXJnZS5jOjg4OSBidWlsdGluL21lcmdlLmM6OTk5Ci0jOiBidWlsdGluL21lcmdlLmM6MTAwOQorIzogcnVuLWNvbW1hbmQuYzo4MAorbXNnaWQgIm9wZW4gL2Rldi9udWxsIGZhaWxlZCIKK21zZ3N0ciAi5LiN6IO95omT5byAIC9kZXYvbnVsbCIKKworIzogcnVuLWNvbW1hbmQuYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkdXAyKCVkLCVkKSBmYWlsZWQiCittc2dzdHIgIuS4jeiDveiwg+eUqCBkdXAyKCVkLCVkKSIKKworIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3OTAgYnVpbHRpbi9tZXJnZS5jOjkwMworIzogYnVpbHRpbi9tZXJnZS5jOjEwMTMgYnVpbHRpbi9tZXJnZS5jOjEwMjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZyIKIG1zZ3N0ciAi5LiN6IO95Li65YaZ5YWl5omT5byAICclcyciCiAKLSM6IHNlcXVlbmNlci5jOjIwOCBidWlsdGluL21lcmdlLmM6MzM1IGJ1aWx0aW4vbWVyZ2UuYzo3NzkKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDAxIGJ1aWx0aW4vbWVyZ2UuYzoxMDE0CisjOiBzZXF1ZW5jZXIuYzoyMDggYnVpbHRpbi9tZXJnZS5jOjM1MCBidWlsdGluL21lcmdlLmM6NzkzCisjOiBidWlsdGluL21lcmdlLmM6MTAxNSBidWlsdGluL21lcmdlLmM6MTAyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgdG8gJyVzJyIKIG1zZ3N0ciAi5LiN6IO95YaZ5YWlICclcyciCkBAIC05NDIsNyArOTc3LDcgQEAKICLlhrLnqoHop6PlhrPlrozmr5XlkI7vvIznlKggJ2dpdCBhZGQgPHBhdGhzPicg5oiWICdnaXQgcm0gPHBhdGhzPidcbiIKICLlr7nkv67mraPlkI7nmoTmlofku7blgZrmoIforrDvvIznhLblkI7nlKggJ2dpdCBjb21taXQnIOaPkOS6pCIKIAotIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg1OSBzZXF1ZW5jZXIuYzo5NDIKKyM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4Njkgc2VxdWVuY2VyLmM6OTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAlcyIKIG1zZ3N0ciAi5LiN6IO95YaZ5YWlICVzIgpAQCAtOTY1LDIxNSArMTAwMCwyMzYgQEAKIG1zZ3N0ciAi5o+Q5Lqk5oKo55qE5L+u5pS55oiW5L+d5a2Y6L+b5bqm5ZCO5YaN57un57ut44CCIgogCiAjLiBUUkFOU0xBVE9SUzogJXMgd2lsbCBiZSAicmV2ZXJ0IiBvciAiY2hlcnJ5LXBpY2siCi0jOiBzZXF1ZW5jZXIuYzozMTkKKyM6IHNlcXVlbmNlci5jOjMyNAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIlc++8muaXoOazleWGmeWFpeaWsOe0ouW8leaWh+S7tiIKIAotIzogc2VxdWVuY2VyLmM6MzUwCisjOiBzZXF1ZW5jZXIuYzozNTUKIG1zZ2lkICJDb3VsZCBub3QgcmVzb2x2ZSBIRUFEIGNvbW1pdFxuIgogbXNnc3RyICLkuI3og73op6PmnpAgSEVBRCDmj5DkuqRcbiIKIAotIzogc2VxdWVuY2VyLmM6MzcxCisjOiBzZXF1ZW5jZXIuYzozNzcKIG1zZ2lkICJVbmFibGUgdG8gdXBkYXRlIGNhY2hlIHRyZWVcbiIKIG1zZ3N0ciAi5LiN6IO95pu05paw57yT5a2YXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQxNgorIzogc2VxdWVuY2VyLmM6NDIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBjb21taXQgJXNcbiIKIG1zZ3N0ciAi5LiN6IO96Kej5p6Q5o+Q5LqkICVzXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQyMQorIzogc2VxdWVuY2VyLmM6NDI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzXG4iCiBtc2dzdHIgIuS4jeiDveino+aekOeItuaPkOS6pCAlc1xuIgogCi0jOiBzZXF1ZW5jZXIuYzo0ODcKKyM6IHNlcXVlbmNlci5jOjQ5MwogbXNnaWQgIllvdXIgaW5kZXggZmlsZSBpcyB1bm1lcmdlZC4iCiBtc2dzdHIgIuaCqOeahOe0ouW8leaWh+S7tuacquWujOaIkOWQiOW5tuOAgiIKIAotIzogc2VxdWVuY2VyLmM6NTA2CisjOiBzZXF1ZW5jZXIuYzo1MTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGlzIGEgbWVyZ2UgYnV0IG5vIC1tIG9wdGlvbiB3YXMgZ2l2ZW4uIgogbXNnc3RyICLmj5DkuqQgJXMg5piv5LiA5Liq5ZCI5bm25o+Q5Lqk5L2G5pyq5o+Q5L6bIC1tIOmAiemhueOAgiIKIAotIzogc2VxdWVuY2VyLmM6NTE0CisjOiBzZXF1ZW5jZXIuYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgcGFyZW50ICVkIgogbXNnc3RyICLmj5DkuqQgJXMg5rKh5pyJ54i25o+Q5LqkICVkIgogCi0jOiBzZXF1ZW5jZXIuYzo1MTgKKyM6IHNlcXVlbmNlci5jOjUyNAogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWlubGluZSB3YXMgc3BlY2lmaWVkIGJ1dCBjb21taXQgJXMgaXMgbm90IGEgbWVyZ2UuIgogbXNnc3RyICLmjIflrprkuobkuLvnur/kvYbmj5DkuqQgJXMg5LiN5piv5LiA5Liq5ZCI5bm244CCIgogCiAjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIHdpbGwgYmUgInJldmVydCIgb3IKICMuICJjaGVycnktcGljayIsIHRoZSBzZWNvbmQgJXMgYSBTSEExCi0jOiBzZXF1ZW5jZXIuYzo1MzEKKyM6IHNlcXVlbmNlci5jOjUzNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IHBhcnNlIHBhcmVudCBjb21taXQgJXMiCiBtc2dzdHIgIiVz77ya5LiN6IO96Kej5p6Q54i25o+Q5LqkICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo1MzUKKyM6IHNlcXVlbmNlci5jOjU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZ2V0IGNvbW1pdCBtZXNzYWdlIGZvciAlcyIKIG1zZ3N0ciAi5LiN6IO95b6X5YiwICVzIOeahOaPkOS6pOivtOaYjiIKIAotIzogc2VxdWVuY2VyLmM6NjIxCisjOiBzZXF1ZW5jZXIuYzo2MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJldmVydCAlcy4uLiAlcyIKIG1zZ3N0ciAi5LiN6IO96L+Y5Y6fICVzLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjIKKyM6IHNlcXVlbmNlci5jOjYyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgYXBwbHkgJXMuLi4gJXMiCiBtc2dzdHIgIuS4jeiDveW6lOeUqCAlcy4uLiAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjU0CisjOiBzZXF1ZW5jZXIuYzo2NjQKIG1zZ2lkICJlbXB0eSBjb21taXQgc2V0IHBhc3NlZCIKIG1zZ3N0ciAi5o+Q5L6b5LqG56m655qE5o+Q5Lqk6ZuGIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjIKKyM6IHNlcXVlbmNlci5jOjY3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVz77ya5peg5rOV6K+75Y+W57Si5byVIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjcKKyM6IHNlcXVlbmNlci5jOjY3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVz77ya5peg5rOV5Yi35paw57Si5byVIgogCi0jOiBzZXF1ZW5jZXIuYzo3MjUKKyM6IHNlcXVlbmNlci5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgJXMgZHVyaW5nIGEgJXMiCiBtc2dzdHIgIuaXoOazlSAlcyDlnKjkuIDkuKogJXMg6L+H56iL5LitIgogCi0jOiBzZXF1ZW5jZXIuYzo3NDcKKyM6IHNlcXVlbmNlci5jOjc1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgbGluZSAlZC4iCiBtc2dzdHIgIuS4jeiDveino+aekOesrCAlZCDooYzjgIIiCiAKLSM6IHNlcXVlbmNlci5jOjc1MgorIzogc2VxdWVuY2VyLmM6NzYyCiBtc2dpZCAiTm8gY29tbWl0cyBwYXJzZWQuIgogbXNnc3RyICLmsqHmnInmj5DkuqTooqvop6PmnpDjgIIiCiAKLSM6IHNlcXVlbmNlci5jOjc2NQorIzogc2VxdWVuY2VyLmM6Nzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzIgogbXNnc3RyICLkuI3og73miZPlvIAgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjc2OQorIzogc2VxdWVuY2VyLmM6Nzc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkICVzLiIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WICVz44CCIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzYKKyM6IHNlcXVlbmNlci5jOjc4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCiBtc2dzdHIgIuaXoOeUqOeahOaMh+S7pOihqOWNle+8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDQKKyM6IHNlcXVlbmNlci5jOjgxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGtleTogJXMiCiBtc2dzdHIgIuaXoOaViOmUruWQje+8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDcKKyM6IHNlcXVlbmNlci5jOjgxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCiBtc2dzdHIgIiVzIOeahOWAvOaXoOaViO+8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTkKKyM6IHNlcXVlbmNlci5jOjgyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgb3B0aW9ucyBzaGVldDogJXMiCiBtc2dzdHIgIumdnuazleeahOmAiemhueihqOWNle+8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDAKKyM6IHNlcXVlbmNlci5jOjg1MAogbXNnaWQgImEgY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgIuS4gOS4quaLo+mAieaIlui/mOWOn+aTjeS9nOW3suWcqOi/m+ihjCIKIAotIzogc2VxdWVuY2VyLmM6ODQxCisjOiBzZXF1ZW5jZXIuYzo4NTEKIG1zZ2lkICJ0cnkgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogbXNnc3RyICLlsJ3or5UgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDUKKyM6IHNlcXVlbmNlci5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIHNlcXVlbmNlciBkaXJlY3RvcnkgJXMiCiBtc2dzdHIgIuS4jeiDveWIm+W7uuW6j+WIl+ebruW9lSAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODYxIHNlcXVlbmNlci5jOjk0NgorIzogc2VxdWVuY2VyLmM6ODcxIHNlcXVlbmNlci5jOjk1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciB3cmFwcGluZyB1cCAlcy4iCiBtc2dzdHIgIumUmeivr+aUtuWwviAlc+OAgiIKIAotIzogc2VxdWVuY2VyLmM6ODgwIHNlcXVlbmNlci5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjg5MCBzZXF1ZW5jZXIuYzoxMDI0CiBtc2dpZCAibm8gY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGluIHByb2dyZXNzIgogbXNnc3RyICLmi6PpgInmiJbov5jljp/mk43kvZzlubbmnKrov5vooYwiCiAKLSM6IHNlcXVlbmNlci5jOjg4MgorIzogc2VxdWVuY2VyLmM6ODkyCiBtc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKIG1zZ3N0ciAi5LiN6IO96Kej5p6QIEhFQUQiCiAKLSM6IHNlcXVlbmNlci5jOjg4NAorIzogc2VxdWVuY2VyLmM6ODk0CiBtc2dpZCAiY2Fubm90IGFib3J0IGZyb20gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIuS4jeiDveS7juWwmuacquW7uueri+eahOWIhuaUr+e7iOatoiIKIAotIzogc2VxdWVuY2VyLmM6OTA2IGJ1aWx0aW4vYXBwbHkuYzo0MDYwCisjOiBzZXF1ZW5jZXIuYzo5MTYgYnVpbHRpbi9hcHBseS5jOjQwNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICLkuI3og73miZPlvIAgJXPvvJolcyIKIAotIzogc2VxdWVuY2VyLmM6OTA5CisjOiBzZXF1ZW5jZXIuYzo5MTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICLkuI3og73or7vlj5YgJXPvvJolcyIKIAotIzogc2VxdWVuY2VyLmM6OTEwCisjOiBzZXF1ZW5jZXIuYzo5MjAKIG1zZ2lkICJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIgogbXNnc3RyICLmhI/lpJbnmoTmlofku7bnu5PmnZ8iCiAKLSM6IHNlcXVlbmNlci5jOjkxNgorIzogc2VxdWVuY2VyLmM6OTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgInN0b3JlZCBwcmUtY2hlcnJ5LXBpY2sgSEVBRCBmaWxlICclcycgaXMgY29ycnVwdCIKIG1zZ3N0ciAi5L+d5a2Y5ouj6YCJ5o+Q5Lqk5YmN55qEIEhFQUQg5paH5Lu2ICclcycg5o2f5Z2PIgogCi0jOiBzZXF1ZW5jZXIuYzo5MzkKKyM6IHNlcXVlbmNlci5jOjk0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZm9ybWF0ICVzLiIKIG1zZ3N0ciAi5LiN6IO95qC85byP5YyWICVz44CCIgogCi0jOiBzZXF1ZW5jZXIuYzoxMDgzCisjOiBzZXF1ZW5jZXIuYzoxMDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW4ndCBjaGVycnktcGljayBhICVzIgogbXNnc3RyICIlc++8muS4jeiDveaLo+mAieS4gOS4qiVzIgogCi0jOiBzZXF1ZW5jZXIuYzoxMDg1CisjOiBzZXF1ZW5jZXIuYzoxMDk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBiYWQgcmV2aXNpb24iCiBtc2dzdHIgIiVz77ya6ZSZ6K+v55qE54mI5pysIgogCi0jOiBzZXF1ZW5jZXIuYzoxMTE5CisjOiBzZXF1ZW5jZXIuYzoxMTI5CiBtc2dpZCAiQ2FuJ3QgcmV2ZXJ0IGFzIGluaXRpYWwgY29tbWl0IgogbXNnc3RyICLkuI3og73kvZzkuLrliJ3lp4vmj5DkuqTov5jljp8iCiAKLSM6IHNlcXVlbmNlci5jOjExMjAKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCBjaGVycnktcGljayBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIuS4jeiDveaLo+mAieWIsOepuuWIhuaUryIKIAotIzogc2hhMV9uYW1lLmM6MTAzNgorIzogc2hhMV9uYW1lLmM6NDQwCittc2dpZCAiIgorIkdpdCBub3JtYWxseSBuZXZlciBjcmVhdGVzIGEgcmVmIHRoYXQgZW5kcyB3aXRoIDQwIGhleCBjaGFyYWN0ZXJzXG4iCisiYmVjYXVzZSBpdCB3aWxsIGJlIGlnbm9yZWQgd2hlbiB5b3UganVzdCBzcGVjaWZ5IDQwLWhleC4gVGhlc2UgcmVmc1xuIgorIm1heSBiZSBjcmVhdGVkIGJ5IG1pc3Rha2UuIEZvciBleGFtcGxlLFxuIgorIlxuIgorIiAgZ2l0IGNoZWNrb3V0IC1iICRiciAkKGdpdCByZXYtcGFyc2UgLi4uKVxuIgorIlxuIgorIndoZXJlIFwiJGJyXCIgaXMgc29tZWhvdyBlbXB0eSBhbmQgYSA0MC1oZXggcmVmIGlzIGNyZWF0ZWQuIFBsZWFzZVxuIgorImV4YW1pbmUgdGhlc2UgcmVmcyBhbmQgbWF5YmUgZGVsZXRlIHRoZW0uIFR1cm4gdGhpcyBtZXNzYWdlIG9mZiBieVxuIgorInJ1bm5pbmcgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiIgorbXNnc3RyICIiCisiR2l0IOmAmuW4uOS4jeS8muWIm+W7uuS4gOS4quS7pTQw5L2N5Y2B5YWt6L+b5Yi25a2X56ym5ZG95ZCN55qE5byV55So77yM5Zug5Li65b2T5L2g5o+Q5L6bNDDkvY1cbiIKKyLljYHlha3ov5vliLblrZfnrKbml7blsIbooqvlv73nlaXjgILkuI3ov4fov5nkupvlvJXnlKjkuZ/lj6/og73ooqvplJnor6/lnLDliJvlu7rjgILkvovlpoLvvJpcbiIKKyJcbiIKKyIgIGdpdCBjaGVja291dCAtYiAkYnIgJChnaXQgcmV2LXBhcnNlIC4uLilcbiIKKyJcbiIKKyLlvZMgXCIkYnJcIiDnqbrnmb3ml7bkuIDkuKo0MOS9jeWNgeWFrei/m+WItueahOW8leeUqOWwhuiiq+WIm+W7uuOAguivt+ajgOafpei/meS6m+W8leeUqO+8jFxuIgorIuWPr+iDvemcgOimgeWIoOmZpOWug+S7rOOAgueUqCBcImdpdCBjb25maWcgYWR2aWNlLm9iamVjdE5hbWVXYXJuaW5nIGZhbHNlXCJcbiIKKyLlkb3ku6TlhbPpl63mnKzmtojmga/pgJrnn6XjgIIiCisKKyM6IHNoYTFfbmFtZS5jOjEwOTcKIG1zZ2lkICJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIgogbXNnc3RyICJIRUFEIOayoeacieaMh+WQkeS4gOS4quWIhuaUryIKIAotIzogc2hhMV9uYW1lLmM6MTAzOQorIzogc2hhMV9uYW1lLmM6MTEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKIG1zZ3N0ciAi5rKh5pyJ5q2k5YiG5pSv77yaJyVzJyIKIAotIzogc2hhMV9uYW1lLmM6MTA0MQorIzogc2hhMV9uYW1lLmM6MTEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIKIG1zZ3N0ciAi5bCa5pyq57uZ5YiG5pSvICclcycg6K6+572u5LiK5ri4IgogCi0jOiBzaGExX25hbWUuYzoxMDQ0CisjOiBzaGExX25hbWUuYzoxMTA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVwc3RyZWFtIGJyYW5jaCAnJXMnIG5vdCBzdG9yZWQgYXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIgogbXNnc3RyICLkuIrmuLjliIbmlK8gJyVzJyDmsqHmnInlrZjlgqjkuLrkuIDkuKrov5znqIvot5/ouKrliIbmlK8iCkBAIC0xMTgzLDE4MSArMTIzOSwxODEgQEAKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyc6ICVzIgogbXNnc3RyICLkuI3og73orr/pl64gJyVzJ++8miVzIgogCi0jOiB3cmFwcGVyLmM6NDIzCisjOiB3cmFwcGVyLmM6NDI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJyIKIG1zZ3N0ciAi5LiN6IO96K6/6ZeuICclcyciCiAKLSM6IHdyYXBwZXIuYzo0MzQKKyM6IHdyYXBwZXIuYzo0NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGxvb2sgdXAgY3VycmVudCB1c2VyIGluIHRoZSBwYXNzd2QgZmlsZTogJXMiCiBtc2dzdHIgIuaXoOazleWcqOWPo+S7pOaWh+S7tuS4reafpeivouWIsOW9k+WJjeeUqOaIt++8miVzIgogCi0jOiB3cmFwcGVyLmM6NDM1CisjOiB3cmFwcGVyLmM6NDQxCiBtc2dpZCAibm8gc3VjaCB1c2VyIgogbXNnc3RyICLml6DmraTnlKjmiLciCiAKLSM6IHd0LXN0YXR1cy5jOjE0MAorIzogd3Qtc3RhdHVzLmM6MTQxCiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICLmnKrlkIjlubbnmoTot6/lvoTvvJoiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTY3IHd0LXN0YXR1cy5jOjE5NAorIzogd3Qtc3RhdHVzLmM6MTY4IHd0LXN0YXR1cy5jOjE5NQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmVzZXQgJXMgPGZpbGU+Li4uXCIgdG8gdW5zdGFnZSkiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIOaSpOWHuuaaguWtmOWMuu+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxNjkgd3Qtc3RhdHVzLmM6MTk2CisjOiB3dC1zdGF0dXMuYzoxNzAgd3Qtc3RhdHVzLmM6MTk3CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiDmkqTlh7rmmoLlrZjljLrvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTczCisjOiB3dC1zdGF0dXMuYzoxNzQKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiDmoIforrDop6PlhrPmlrnmoYjvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjE3OQorIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiICDvvIjphYzmg4Xkvb/nlKggXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIOagh+iusOino+WGs+aWueahiO+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxNzcKKyM6IHd0LXN0YXR1cy5jOjE3OAogbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBybSA8ZmlsZT4uLi5cIiDmoIforrDop6PlhrPmlrnmoYjvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjE4OAorIzogd3Qtc3RhdHVzLmM6MTg5CiBtc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICLopoHmj5DkuqTnmoTlj5jmm7TvvJoiCiAKLSM6IHd0LXN0YXR1cy5jOjIwNgorIzogd3Qtc3RhdHVzLmM6MjA3CiBtc2dpZCAiQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6IgogbXNnc3RyICLlsJrmnKrmmoLlrZjku6XlpIfmj5DkuqTnmoTlj5jmm7TvvJoiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MjEwCisjOiB3dC1zdGF0dXMuYzoyMTEKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgYWRkIDxmaWxlPi4uLlwiIOabtOaWsOimgeaPkOS6pOeahOWGheWuue+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoyMTIKKyM6IHd0LXN0YXR1cy5jOjIxMwogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIg5pu05paw6KaB5o+Q5Lqk55qE5YaF5a6577yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjIxMworIzogd3Qtc3RhdHVzLmM6MjE0CiBtc2dpZCAiIgogIiAgKHVzZSBcImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi5cIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi5cIiDkuKLlvIPlt6XkvZzljLrnmoTmlLnliqjvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MjE1CisjOiB3dC1zdGF0dXMuYzoyMTYKIG1zZ2lkICIgIChjb21taXQgb3IgZGlzY2FyZCB0aGUgdW50cmFja2VkIG9yIG1vZGlmaWVkIGNvbnRlbnQgaW4gc3VibW9kdWxlcykiCiBtc2dzdHIgIiAg77yI5o+Q5Lqk5oiW5Lii5byD5a2Q5qih57uE5Lit5pyq6Lef6Liq5oiW5L+u5pS555qE5YaF5a6577yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjIyNworIzogd3Qtc3RhdHVzLmM6MjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCAlcyA8ZmlsZT4uLi5cIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCAlcyA8ZmlsZT4uLi5cIiDku6XljIXlkKvopoHmj5DkuqTnmoTlhoXlrrnvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjI0NAorIzogd3Qtc3RhdHVzLmM6MjQ1CiBtc2dpZCAiYnVnIgogbXNnc3RyICJidWciCiAKLSM6IHd0LXN0YXR1cy5jOjI0OQorIzogd3Qtc3RhdHVzLmM6MjUwCiBtc2dpZCAiYm90aCBkZWxldGVkOiIKIG1zZ3N0ciAi5Y+M5pa55Yig6Zmk77yaIgogCi0jOiB3dC1zdGF0dXMuYzoyNTAKKyM6IHd0LXN0YXR1cy5jOjI1MQogbXNnaWQgImFkZGVkIGJ5IHVzOiIKIG1zZ3N0ciAi55Sx5oiR5Lus5re75Yqg77yaIgogCi0jOiB3dC1zdGF0dXMuYzoyNTEKKyM6IHd0LXN0YXR1cy5jOjI1MgogbXNnaWQgImRlbGV0ZWQgYnkgdGhlbToiCiBtc2dzdHIgIueUseS7luS7rOWIoOmZpO+8miIKIAotIzogd3Qtc3RhdHVzLmM6MjUyCisjOiB3dC1zdGF0dXMuYzoyNTMKIG1zZ2lkICJhZGRlZCBieSB0aGVtOiIKIG1zZ3N0ciAi55Sx5LuW5Lus5re75Yqg77yaIgogCi0jOiB3dC1zdGF0dXMuYzoyNTMKKyM6IHd0LXN0YXR1cy5jOjI1NAogbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgogbXNnc3RyICLnlLHmiJHku6zliKDpmaTvvJoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NAorIzogd3Qtc3RhdHVzLmM6MjU1CiBtc2dpZCAiYm90aCBhZGRlZDoiCiBtc2dzdHIgIuWPjOaWuea3u+WKoO+8miIKIAotIzogd3Qtc3RhdHVzLmM6MjU1CisjOiB3dC1zdGF0dXMuYzoyNTYKIG1zZ2lkICJib3RoIG1vZGlmaWVkOiIKIG1zZ3N0ciAi5Y+M5pa55L+u5pS577yaIgogCiAjICDor5HogIXvvJrmnKvlsL7kuKTkuKrlrZfoioLlj6/og73ooqvliKDlh4/vvIzlpoLmnpznv7vor5HkuLrkuK3mlofmoIfngrnkvJrlh7rnjrDljYrkuKrmsYnlrZcKLSM6IHd0LXN0YXR1cy5jOjI4NQorIzogd3Qtc3RhdHVzLmM6Mjg2CiBtc2dpZCAibmV3IGNvbW1pdHMsICIKIG1zZ3N0ciAi5paw5o+Q5LqkLCAiCiAKICMgIOivkeiAhe+8muacq+WwvuS4pOS4quWtl+iKguWPr+iDveiiq+WIoOWHj++8jOWmguaenOe/u+ivkeS4uuS4reaWh+agh+eCueS8muWHuueOsOWNiuS4quaxieWtlwotIzogd3Qtc3RhdHVzLmM6Mjg3CisjOiB3dC1zdGF0dXMuYzoyODgKIG1zZ2lkICJtb2RpZmllZCBjb250ZW50LCAiCiBtc2dzdHIgIuS/ruaUueeahOWGheWuuSwgIgogCiAjICDor5HogIXvvJrmnKvlsL7kuKTkuKrlrZfoioLlj6/og73ooqvliKDlh4/vvIzlpoLmnpznv7vor5HkuLrkuK3mlofmoIfngrnkvJrlh7rnjrDljYrkuKrmsYnlrZcKLSM6IHd0LXN0YXR1cy5jOjI4OQorIzogd3Qtc3RhdHVzLmM6MjkwCiBtc2dpZCAidW50cmFja2VkIGNvbnRlbnQsICIKIG1zZ3N0ciAi5pyq6Lef6Liq55qE5YaF5a65LCAiCiAKICMgIOivkeiAhe+8muS4uuS/neivgeWcqOi+k+WHuuS4reWvuem9kO+8jOazqOaEj+iwg+aVtOWPpeS4reepuuagvO+8gQotIzogd3Qtc3RhdHVzLmM6MzA2CisjOiB3dC1zdGF0dXMuYzozMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IGZpbGU6ICAgJXMiCiBtc2dzdHIgIuaWsOaWh+S7tu+8miAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiB3dC1zdGF0dXMuYzozMDkKKyM6IHd0LXN0YXR1cy5jOjMxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKIG1zZ3N0ciAi5ou36LSd77yaICAgICAgJXMgLT4gJXMiCiAKICMgIOivkeiAhe+8muS4uuS/neivgeWcqOi+k+WHuuS4reWvuem9kO+8jOazqOaEj+iwg+aVtOWPpeS4reepuuagvO+8gQotIzogd3Qtc3RhdHVzLmM6MzEyCisjOiB3dC1zdGF0dXMuYzozMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVsZXRlZDogICAgJXMiCiBtc2dzdHIgIuWIoOmZpO+8miAgICAgICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IHd0LXN0YXR1cy5jOjMxNQorIzogd3Qtc3RhdHVzLmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vZGlmaWVkOiAgICVzIgogbXNnc3RyICLkv67mlLnvvJogICAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiB3dC1zdGF0dXMuYzozMTgKKyM6IHd0LXN0YXR1cy5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW5hbWVkOiAgICAlcyAtPiAlcyIKIG1zZ3N0ciAi6YeN5ZG95ZCN77yaICAgICVzIC0+ICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IHd0LXN0YXR1cy5jOjMyMQorIzogd3Qtc3RhdHVzLmM6MzIyCiAjLCBjLWZvcm1hdAogbXNnaWQgInR5cGVjaGFuZ2U6ICVzIgogbXNnc3RyICLnsbvlnovlj5jmm7TvvJogICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IHd0LXN0YXR1cy5jOjMyNAorIzogd3Qtc3RhdHVzLmM6MzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd246ICAgICVzIgogbXNnc3RyICLmnKrnn6XvvJogICAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiB3dC1zdGF0dXMuYzozMjcKKyM6IHd0LXN0YXR1cy5jOjMyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bm1lcmdlZDogICAlcyIKIG1zZ3N0ciAi5pyq5ZCI5bm277yaICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMzAKKyM6IHd0LXN0YXR1cy5jOjMzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJidWc6IHVuaGFuZGxlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAiYnVn77ya5pyq5aSE55CG55qE5beu5byC54q25oCBICVjIgpAQCAtMTM2Nyw3ICsxNDIzLDcgQEAKIG1zZ3N0ciAi5oKo5pyJ5bCa5pyq5ZCI5bm255qE6Lev5b6E44CCIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjgwNiB3dC1zdGF0dXMuYzo5NTgKKyM6IHd0LXN0YXR1cy5jOjgwNgogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjb21taXRcIikiCiBtc2dzdHIgIiAg77yI6Kej5Yaz5Yay56qB5bm26L+Q6KGMIFwiZ2l0IGNvbW1pdFwi77yJIgogCkBAIC0xMzkwLDggKzE0NDYsOCBAQAogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKICM6IHd0LXN0YXR1cy5jOjgyOQotbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCi1tc2dzdHIgIiAg77yI6Kej5Yaz5Yay56qB77yM54S25ZCO6L+Q6KGMIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIu+8iSIKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgIO+8iOino+WGs+WGsueqge+8jOeEtuWQjui/kOihjCBcImdpdCBhbSAtLWNvbnRpbnVlXCLvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAogIzogd3Qtc3RhdHVzLmM6ODMxCkBAIC0xNDcyLDQxICsxNTI4LDUxIEBACiBtc2dzdHIgIuaCqOato+WcqOWBmuaLo+mAieaTjeS9nOOAgiIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo5NjEKLW1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY29tbWl0XCIpIgotbXNnc3RyICIgIO+8iOino+WGs+aJgOacieWGsueqgeWQju+8jOaJp+ihjCBcImdpdCBjb21taXRcIu+8iSIKKyM6IHd0LXN0YXR1cy5jOjk1OAorbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgIO+8iOino+WGs+WGsueqgeW5tui/kOihjCBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCLvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjk3MAorIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8CisjOiB3dC1zdGF0dXMuYzo5NjEKK21zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICDvvIjmiYDmnInlhrLnqoHlt7Lop6PlhrPvvJrov5DooYwgXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwi77yJIgorCisjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKKyM6IHd0LXN0YXR1cy5jOjk2MworbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgorbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIg5Lul5Y+W5raI5ouj6YCJ5pON5L2c77yJIgorCisjOiB3dC1zdGF0dXMuYzo5NzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmV2ZXJ0aW5nIGNvbW1pdCAlcy4iCiBtc2dzdHIgIuaCqOato+WcqOWPjei9rOaPkOS6pCAlcyDjgIIiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6OTc1CisjOiB3dC1zdGF0dXMuYzo5NzcKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiBtc2dzdHIgIiAg77yI6Kej5Yaz5Yay56qB5bm26L+Q6KGMIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCLvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6OTc4CisjOiB3dC1zdGF0dXMuYzo5ODAKIG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCiBtc2dzdHIgIiAg77yI5omA5pyJ5Yay56qB5bey6Kej5Yaz77ya6L+Q6KGMIFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCLvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6OTgwCisjOiB3dC1zdGF0dXMuYzo5ODIKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmV2ZXJ0IC0tYWJvcnRcIiB0byBjYW5jZWwgdGhlIHJldmVydCBvcGVyYXRpb24pIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCByZXZlcnQgLS1hYm9ydFwiIOS7peWPlua2iOWPjei9rOaPkOS6pOaTjeS9nO+8iSIKIAotIzogd3Qtc3RhdHVzLmM6OTkxCisjOiB3dC1zdGF0dXMuYzo5OTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLCBzdGFydGVkIGZyb20gYnJhbmNoICclcycuIgogbXNnc3RyICLmgqjmraPlnKjku47liIbmlK8gJyVzJyDlvIDlp4vlgZrkuozliIbmn6Xmib7jgIIiCiAKLSM6IHd0LXN0YXR1cy5jOjk5NQorIzogd3Qtc3RhdHVzLmM6OTk3CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5YGa5LqM5YiG5p+l5om+44CCIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjk5OAorIzogd3Qtc3RhdHVzLmM6MTAwMAogbXNnaWQgIiAgKHVzZSBcImdpdCBiaXNlY3QgcmVzZXRcIiB0byBnZXQgYmFjayB0byB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgYmlzZWN0IHJlc2V0XCIg5Lul5Zue5Yiw5Y6f5pyJ5YiG5pSv77yJIgogCkBAIC0xNTE0LDMxICsxNTgwLDM1IEBACiBtc2dpZCAiT24gYnJhbmNoICIKIG1zZ3N0ciAi5L2N5LqO5YiG5pSvICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NAorIzogd3Qtc3RhdHVzLmM6MTE4MAorbXNnaWQgInJlYmFzZSBpbiBwcm9ncmVzczsgb250byAiCittc2dzdHIgIuWPmOWfuuato+WcqOi/m+ihjOS4re+8m+iHsyAiCisKKyM6IHd0LXN0YXR1cy5jOjExODcKIG1zZ2lkICJIRUFEIGRldGFjaGVkIGF0ICIKIG1zZ3N0ciAi5aS05oyH6ZKI5YiG56a75LqOICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NgorIzogd3Qtc3RhdHVzLmM6MTE4OQogbXNnaWQgIkhFQUQgZGV0YWNoZWQgZnJvbSAiCiBtc2dzdHIgIuWktOaMh+mSiOWIhuemu+iHqiAiCiAKLSM6IHd0LXN0YXR1cy5jOjExODkKKyM6IHd0LXN0YXR1cy5jOjExOTIKIG1zZ2lkICJOb3QgY3VycmVudGx5IG9uIGFueSBicmFuY2guIgogbXNnc3RyICLlvZPliY3kuI3lnKjku7vkvZXliIbmlK/kuIrjgIIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMDYKKyM6IHd0LXN0YXR1cy5jOjEyMDkKIG1zZ2lkICJJbml0aWFsIGNvbW1pdCIKIG1zZ3N0ciAi5Yid5aeL5o+Q5LqkIgogCi0jOiB3dC1zdGF0dXMuYzoxMjIwCisjOiB3dC1zdGF0dXMuYzoxMjIzCiBtc2dpZCAiVW50cmFja2VkIGZpbGVzIgogbXNnc3RyICLmnKrot5/ouKrnmoTmlofku7YiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjIKKyM6IHd0LXN0YXR1cy5jOjEyMjUKIG1zZ2lkICJJZ25vcmVkIGZpbGVzIgogbXNnc3RyICLlv73nlaXnmoTmlofku7YiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjYKKyM6IHd0LXN0YXR1cy5jOjEyMjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHRvb2sgJS4yZiBzZWNvbmRzIHRvIGVudW1lcmF0ZSB1bnRyYWNrZWQgZmlsZXMuICdzdGF0dXMgLXVubydcbiIKQEAgLTE1NDgsOTAgKzE2MTgsOTAgQEAKICLogJfotLnkuoYgJS4yZiDnp5Lku6XmnprkuL7mnKrot5/ouKrnmoTmlofku7bjgIInc3RhdHVzIC11bm8nIOS5n+iuuOiDveaPkOmrmOmAn+W6pu+8jFxuIgogIuS9huaCqOmcgOimgeWwj+W/g+S4jeimgeW/mOS6hua3u+WKoOaWsOaWh+S7tu+8iOWPguingSAnZ2l0IGhlbHAgc3RhdHVzJ++8ieOAgiIKIAotIzogd3Qtc3RhdHVzLmM6MTIzMgorIzogd3Qtc3RhdHVzLmM6MTIzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICLmnKrot5/ouKrnmoTmlofku7bmsqHmnInliJflh7olcyIKIAogIyAg6K+R6ICF77ya5Lit5paH5a2X56ym5Liy5ou85o6l77yM5Y+v5Yig6Zmk5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxMjM0CisjOiB3dC1zdGF0dXMuYzoxMjM3CiBtc2dpZCAiICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKSIKIG1zZ3N0ciAi77yI5L2/55SoIC11IOWPguaVsOaYvuekuuacqui3n+i4queahOaWh+S7tu+8iSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0MAorIzogd3Qtc3RhdHVzLmM6MTI0MwogbXNnaWQgIk5vIGNoYW5nZXMiCiBtc2dzdHIgIuayoeacieS/ruaUuSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0NQorIzogd3Qtc3RhdHVzLmM6MTI0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlIFwiZ2l0IGFkZFwiIGFuZC9vciBcImdpdCBjb21taXQgLWFcIilcbiIKIG1zZ3N0ciAi5L+u5pS55bCa5pyq5Yqg5YWl5o+Q5Lqk77yI5L2/55SoIFwiZ2l0IGFkZFwiIOWSjC/miJYgXCJnaXQgY29tbWl0IC1hXCLvvIlcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI0OAorIzogd3Qtc3RhdHVzLmM6MTI1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdFxuIgogbXNnc3RyICLkv67mlLnlsJrmnKrliqDlhaXmj5DkuqRcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1MQorIzogd3Qtc3RhdHVzLmM6MTI1NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50ICh1c2UgXCJnaXQgYWRkXCIgdG8gIgogInRyYWNrKVxuIgogbXNnc3RyICLmj5DkuqTkuLrnqbrvvIzkvYbmmK/lrZjlnKjlsJrmnKrot5/ouKrnmoTmlofku7bvvIjkvb/nlKggXCJnaXQgYWRkXCIg5bu656uL6Lef6Liq77yJXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTQKKyM6IHd0LXN0YXR1cy5jOjEyNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50XG4iCiBtc2dzdHIgIuaPkOS6pOS4uuepuu+8jOS9huaYr+WtmOWcqOWwmuacqui3n+i4queahOaWh+S7tlxuIgogCiAjICDor5HogIXvvJrkuK3mloflrZfnrKbkuLLmi7zmjqXvvIzlj6/liKDpmaTliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjEyNTcKKyM6IHd0LXN0YXR1cy5jOjEyNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKGNyZWF0ZS9jb3B5IGZpbGVzIGFuZCB1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iCiBtc2dzdHIgIuaXoOaWh+S7tuimgeaPkOS6pO+8iOWIm+W7ui/mi7fotJ3mlofku7blubbkvb/nlKggXCJnaXQgYWRkXCIg5bu656uL6Lef6Liq77yJXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjAgd3Qtc3RhdHVzLmM6MTI2NQorIzogd3Qtc3RhdHVzLmM6MTI2MyB3dC1zdGF0dXMuYzoxMjY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0XG4iCiBtc2dzdHIgIuaXoOaWh+S7tuimgeaPkOS6pFxuIgogCiAjICDor5HogIXvvJrkuK3mloflrZfnrKbkuLLmi7zmjqXvvIzlj6/liKDpmaTliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjEyNjMKKyM6IHd0LXN0YXR1cy5jOjEyNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcylcbiIKIG1zZ3N0ciAi5peg5paH5Lu26KaB5o+Q5Lqk77yI5L2/55SoIC11IOaYvuekuuacqui3n+i4queahOaWh+S7tu+8iVxuIgogCiAjICDor5HogIXvvJrkuK3mloflrZfnrKbkuLLmi7zmjqXvvIzlj6/liKDpmaTliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjEyNjcKKyM6IHd0LXN0YXR1cy5jOjEyNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgZGlyZWN0b3J5IGNsZWFuXG4iCiBtc2dzdHIgIuaXoOaWh+S7tuimgeaPkOS6pO+8jOW5suWHgOeahOW3peS9nOWMulxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMzc1CisjOiB3dC1zdGF0dXMuYzoxMzc4CiBtc2dpZCAiSEVBRCAobm8gYnJhbmNoKSIKIG1zZ3N0ciAiSEVBRO+8iOmdnuWIhuaUr++8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5Y+l5bC+56m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxMzgxCisjOiB3dC1zdGF0dXMuYzoxMzg0CiBtc2dpZCAiSW5pdGlhbCBjb21taXQgb24gIgogbXNnc3RyICLliJ3lp4vmj5DkuqTkuo4gIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHlj6XlsL7nqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjEzOTYKKyM6IHd0LXN0YXR1cy5jOjEzOTkKIG1zZ2lkICJiZWhpbmQgIgogbXNnc3RyICLokL3lkI4gIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHlj6XlsL7nqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjEzOTkgd3Qtc3RhdHVzLmM6MTQwMgorIzogd3Qtc3RhdHVzLmM6MTQwMiB3dC1zdGF0dXMuYzoxNDA1CiBtc2dpZCAiYWhlYWQgIgogbXNnc3RyICLpooblhYggIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHlj6XlsL7nqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjE0MDQKKyM6IHd0LXN0YXR1cy5jOjE0MDcKIG1zZ2lkICIsIGJlaGluZCAiCiBtc2dzdHIgIu+8jOiQveWQjiAiCiAKLSM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUyCisjOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTggYnVpbHRpbi9jbG9uZS5jOjM1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gdW5saW5rICclcyciCiBtc2dzdHIgIuaXoOazleWIoOmZpCAnJXMnIgpAQCAtMTcxNiw3ICsxNzg2LDcgQEAKIG1zZ2lkICJ1bmV4cGVjdGVkIGRpZmYgc3RhdHVzICVjIgogbXNnc3RyICLmhI/lpJbnmoTlt67lvILnirbmgIEgJWMiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MTQ5IGJ1aWx0aW4vY29tbWl0LmM6MjMzCisjOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjI1MgogbXNnaWQgInVwZGF0aW5nIGZpbGVzIGZhaWxlZCIKIG1zZ3N0ciAi5pu05paw5paH5Lu25aSx6LSlIgogCkBAIC0xNzI5LDcgKzE3OTksNyBAQAogbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgogbXNnc3RyICLliLfmlrDntKLlvJXkuYvlkI7lsJrmnKrooqvmmoLlrZjnmoTlj5jmm7TvvJoiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MjU2IGJ1aWx0aW4vYWRkLmM6NTcyIGJ1aWx0aW4vcm0uYzoyNzUKKyM6IGJ1aWx0aW4vYWRkLmM6MjU2IGJ1aWx0aW4vYWRkLmM6NTczIGJ1aWx0aW4vcm0uYzozMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aHNwZWMgJyVzJyBkaWQgbm90IG1hdGNoIGFueSBmaWxlcyIKIG1zZ3N0ciAi6Lev5b6EICclcycg5pyq5Yy56YWN5Lu75L2V5paH5Lu2IgpAQCAtMTczOCwxMjcgKzE4MDgsMTI3IEBACiBtc2dpZCAiQ291bGQgbm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICLkuI3og73or7vlj5bntKLlvJUiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzQ5CisjOiBidWlsdGluL2FkZC5jOjM1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIKIG1zZ3N0ciAi5LiN6IO95omT5byAICclcycg5Lul5YaZ5YWl44CCIgogCi0jOiBidWlsdGluL2FkZC5jOjM1MworIzogYnVpbHRpbi9hZGQuYzozNTQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgcGF0Y2giCiBtc2dzdHIgIuS4jeiDveeUn+aIkOihpeS4gSIKIAotIzogYnVpbHRpbi9hZGQuYzozNTgKKyM6IGJ1aWx0aW4vYWRkLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBzdGF0ICclcyciCiBtc2dzdHIgIuS4jeiDveafpeeci+aWh+S7tueKtuaAgSAnJXMnIgogCi0jOiBidWlsdGluL2FkZC5jOjM2MAorIzogYnVpbHRpbi9hZGQuYzozNjEKIG1zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCiBtc2dzdHIgIuepuuihpeS4geOAguW8guW4uOe7iOatouOAgiIKIAotIzogYnVpbHRpbi9hZGQuYzozNjYKKyM6IGJ1aWx0aW4vYWRkLmM6MzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgogbXNnc3RyICLkuI3og73lupTnlKggJyVzJyIKIAotIzogYnVpbHRpbi9hZGQuYzozNzYKKyM6IGJ1aWx0aW4vYWRkLmM6Mzc3CiBtc2dpZCAiVGhlIGZvbGxvd2luZyBwYXRocyBhcmUgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgogbXNnc3RyICLkuIvliJfot6/lvoTmoLnmja7mgqjnmoTkuIDkuKogLmdpdGlnbm9yZSDmlofku7bogIzooqvlv73nlaXvvJpcbiIKIAotIzogYnVpbHRpbi9hZGQuYzozOTMgYnVpbHRpbi9jbGVhbi5jOjE2MSBidWlsdGluL2ZldGNoLmM6NzggYnVpbHRpbi9tdi5jOjYzCi0jOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc2IGJ1aWx0aW4vcHVzaC5jOjQyNSBidWlsdGluL3JlbW90ZS5jOjEyNTMKLSM6IGJ1aWx0aW4vcm0uYzoyMDYKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vY2xlYW4uYzo4NzUgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MworIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3MyBidWlsdGluL3B1c2guYzo0NTEgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCisjOiBidWlsdGluL3JtLmM6MjY4CiBtc2dpZCAiZHJ5IHJ1biIKIG1zZ3N0ciAi5ryU5LmgIgogCi0jOiBidWlsdGluL2FkZC5jOjM5NCBidWlsdGluL2FwcGx5LmM6NDQwOSBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5Ci0jOiBidWlsdGluL2NvbW1pdC5jOjExNTIgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCi0jOiBidWlsdGluL2xvZy5jOjE1MTggYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEyCisjOiBidWlsdGluL2FkZC5jOjM5NSBidWlsdGluL2FwcGx5LmM6NDQxMCBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjAgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCisjOiBidWlsdGluL2xvZy5jOjE1NzMgYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCiBtc2dpZCAiYmUgdmVyYm9zZSIKIG1zZ3N0ciAi5YaX6ZW/6L6T5Ye6IgogCi0jOiBidWlsdGluL2FkZC5jOjM5NgorIzogYnVpbHRpbi9hZGQuYzozOTcKIG1zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgogbXNnc3RyICLkuqTkupLlvI/mi6PpgIkiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6Mzk3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYzIGJ1aWx0aW4vcmVzZXQuYzoyNTgKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDczIGJ1aWx0aW4vcmVzZXQuYzoyNjEKIG1zZ2lkICJzZWxlY3QgaHVua3MgaW50ZXJhY3RpdmVseSIKIG1zZ3N0ciAi5Lqk5LqS5byP5oyR6YCJ5pWw5o2u5Z2XIgogCi0jOiBidWlsdGluL2FkZC5jOjM5OAorIzogYnVpbHRpbi9hZGQuYzozOTkKIG1zZ2lkICJlZGl0IGN1cnJlbnQgZGlmZiBhbmQgYXBwbHkiCiBtc2dzdHIgIue8lui+keW9k+WJjeW3ruW8guW5tuW6lOeUqCIKIAotIzogYnVpbHRpbi9hZGQuYzozOTkKKyM6IGJ1aWx0aW4vYWRkLmM6NDAwCiBtc2dpZCAiYWxsb3cgYWRkaW5nIG90aGVyd2lzZSBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICLlhYHorrjmt7vliqDlv73nlaXnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAwCisjOiBidWlsdGluL2FkZC5jOjQwMQogbXNnaWQgInVwZGF0ZSB0cmFja2VkIGZpbGVzIgogbXNnc3RyICLmm7TmlrDlt7Lot5/ouKrnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDAxCisjOiBidWlsdGluL2FkZC5jOjQwMgogbXNnaWQgInJlY29yZCBvbmx5IHRoZSBmYWN0IHRoYXQgdGhlIHBhdGggd2lsbCBiZSBhZGRlZCBsYXRlciIKIG1zZ3N0ciAi5Y+q6K6w5b2V77yM6K+l6Lev5b6E56iN5ZCO5YaN5re75YqgIgogCi0jOiBidWlsdGluL2FkZC5jOjQwMgorIzogYnVpbHRpbi9hZGQuYzo0MDMKIG1zZ2lkICJhZGQgY2hhbmdlcyBmcm9tIGFsbCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIua3u+WKoOaJgOacieaUueWPmOeahOW3sui3n+i4quaWh+S7tuWSjOacqui3n+i4quaWh+S7tiIKIAogIy4gdGFrZXMgbm8gYXJndW1lbnRzCi0jOiBidWlsdGluL2FkZC5jOjQwNQorIzogYnVpbHRpbi9hZGQuYzo0MDYKIG1zZ2lkICJpZ25vcmUgcGF0aHMgcmVtb3ZlZCBpbiB0aGUgd29ya2luZyB0cmVlIChzYW1lIGFzIC0tbm8tYWxsKSIKIG1zZ3N0ciAi5b+955Wl5bel5L2c5Yy65Lit56e76Zmk55qE6Lev5b6E77yI5ZKMIC0tbm8tYWxsIOebuOWQjO+8iSIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDcKKyM6IGJ1aWx0aW4vYWRkLmM6NDA4CiBtc2dpZCAiZG9uJ3QgYWRkLCBvbmx5IHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICLkuI3mt7vliqDvvIzlj6rliLfmlrDntKLlvJUiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDA4CisjOiBidWlsdGluL2FkZC5jOjQwOQogbXNnaWQgImp1c3Qgc2tpcCBmaWxlcyB3aGljaCBjYW5ub3QgYmUgYWRkZWQgYmVjYXVzZSBvZiBlcnJvcnMiCiBtc2dzdHIgIui3s+i/h+WboOWHuumUmeS4jeiDvea3u+WKoOeahOaWh+S7tiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MDkKKyM6IGJ1aWx0aW4vYWRkLmM6NDEwCiBtc2dpZCAiY2hlY2sgaWYgLSBldmVuIG1pc3NpbmcgLSBmaWxlcyBhcmUgaWdub3JlZCBpbiBkcnkgcnVuIgogbXNnc3RyICLmo4Dmn6XlnKjmvJTkuaDmqKHlvI/kuIvmlofku7bvvIjljbPkvb/kuI3lrZjlnKjvvInmmK/lkKbooqvlv73nlaUiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDMxCisjOiBidWlsdGluL2FkZC5jOjQzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCB0aGVtLlxuIgogbXNnc3RyICLkvb/nlKggLWYg5Y+C5pWw5aaC5p6c5oKo56Gu5a6e6KaB5re75Yqg5a6D5Lus44CCXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDMyCisjOiBidWlsdGluL2FkZC5jOjQzMwogbXNnaWQgIm5vIGZpbGVzIGFkZGVkIgogbXNnc3RyICLmsqHmnInmlofku7booqvmt7vliqAiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDM4CisjOiBidWlsdGluL2FkZC5jOjQzOQogbXNnaWQgImFkZGluZyBmaWxlcyBmYWlsZWQiCiBtc2dzdHIgIua3u+WKoOaWh+S7tuWksei0pSIKIAotIzogYnVpbHRpbi9hZGQuYzo0NzcKKyM6IGJ1aWx0aW4vYWRkLmM6NDc4CiBtc2dpZCAiLUEgYW5kIC11IGFyZSBtdXR1YWxseSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi1BIOWSjCAtdSDpgInpobnkupLmlqUiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDk1CisjOiBidWlsdGluL2FkZC5jOjQ5NgogbXNnaWQgIk9wdGlvbiAtLWlnbm9yZS1taXNzaW5nIGNhbiBvbmx5IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAtLWRyeS1ydW4iCiBtc2dzdHIgIumAiemhuSAtLWlnbm9yZS1taXNzaW5nIOWPquiDveWSjCAtLWRyeS1ydW4g5ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL2FkZC5jOjUyNQorIzogYnVpbHRpbi9hZGQuYzo1MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90aGluZyBzcGVjaWZpZWQsIG5vdGhpbmcgYWRkZWQuXG4iCiBtc2dzdHIgIuayoeacieaMh+WumuaWh+S7tu+8jOS5n+ayoeacieaWh+S7tuiiq+a3u+WKoOOAglxuIgogCi0jOiBidWlsdGluL2FkZC5jOjUyNgorIzogYnVpbHRpbi9hZGQuYzo1MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWF5YmUgeW91IHdhbnRlZCB0byBzYXkgJ2dpdCBhZGQgLic/XG4iCiBtc2dzdHIgIuS5n+iuuOaCqOaDs+imgeaJp+ihjCAnZ2l0IGFkZCAuJ++8n1xuIgogCi0jOiBidWlsdGluL2FkZC5jOjUzMiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjY2IGJ1aWx0aW4vY2xlYW4uYzoyMDQKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MjkzIGJ1aWx0aW4vbXYuYzo4MiBidWlsdGluL3JtLmM6MjM1CisjOiBidWlsdGluL2FkZC5jOjUzMyBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MSBidWlsdGluL2NsZWFuLmM6OTE5CisjOiBidWlsdGluL2NvbW1pdC5jOjMxMiBidWlsdGluL212LmM6ODIgYnVpbHRpbi9ybS5jOjI5NwogbXNnaWQgImluZGV4IGZpbGUgY29ycnVwdCIKIG1zZ3N0ciAi57Si5byV5paH5Lu25o2f5Z2PIgogCi0jOiBidWlsdGluL2FkZC5jOjYwNCBidWlsdGluL2FwcGx5LmM6NDUwNSBidWlsdGluL212LmM6MjI5IGJ1aWx0aW4vcm0uYzozNzAKKyM6IGJ1aWx0aW4vYWRkLmM6NjA1IGJ1aWx0aW4vYXBwbHkuYzo0NTA2IGJ1aWx0aW4vbXYuYzoyMjkgYnVpbHRpbi9ybS5jOjQzMgogbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKIG1zZ3N0ciAi5peg5rOV5YaZ5YWl5paw57Si5byV5paH5Lu2IgogCkBAIC0yMDM3LDI5MyArMjEwNywyOTMgQEAKIG1zZ2lkICJjYW5ub3QgY2hlY2tvdXQgJXMiCiBtc2dzdHIgIuS4jeiDveajgOWHuiAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMxNDAgYnVpbHRpbi9hcHBseS5jOjMxNDkgYnVpbHRpbi9hcHBseS5jOjMxOTMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMTQwIGJ1aWx0aW4vYXBwbHkuYzozMTQ5IGJ1aWx0aW4vYXBwbHkuYzozMTk0CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYWQgb2YgJXMgZmFpbGVkIgogbXNnc3RyICLor7vlj5YgJXMg5aSx6LSlIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzE3MyBidWlsdGluL2FwcGx5LmM6MzM5NQorIzogYnVpbHRpbi9hcHBseS5jOjMxNzQgYnVpbHRpbi9hcHBseS5jOjMzOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAlcyBoYXMgYmVlbiByZW5hbWVkL2RlbGV0ZWQiCiBtc2dzdHIgIui3r+W+hCAlcyDlt7Lnu4/ooqvph43lkb3lkI0v5Yig6ZmkIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI1NCBidWlsdGluL2FwcGx5LmM6MzQwOQorIzogYnVpbHRpbi9hcHBseS5jOjMyNTUgYnVpbHRpbi9hcHBseS5jOjM0MTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4IgogbXNnc3RyICIlc++8muS4jeWtmOWcqOS6jue0ouW8leS4rSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNTggYnVpbHRpbi9hcHBseS5jOjM0MDEgYnVpbHRpbi9hcHBseS5jOjM0MjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjU5IGJ1aWx0aW4vYXBwbHkuYzozNDAyIGJ1aWx0aW4vYXBwbHkuYzozNDI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiAlcyIKIG1zZ3N0ciAiJXPvvJolcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNjMgYnVpbHRpbi9hcHBseS5jOjM0MTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjY0IGJ1aWx0aW4vYXBwbHkuYzozNDE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBkb2VzIG5vdCBtYXRjaCBpbmRleCIKIG1zZ3N0ciAiJXPvvJrlkozntKLlvJXkuI3ljLnphY0iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMzY1CisjOiBidWlsdGluL2FwcGx5LmM6MzM2NgogbXNnaWQgInJlbW92YWwgcGF0Y2ggbGVhdmVzIGZpbGUgY29udGVudHMiCiBtc2dzdHIgIuenu+mZpOihpeS4geS7jeeVmeS4i+S6huaWh+S7tuWGheWuuSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiB3cm9uZyB0eXBlIgogbXNnc3RyICIlc++8mumUmeivr+exu+WeiyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGhhcyB0eXBlICVvLCBleHBlY3RlZCAlbyIKIG1zZ3N0ciAiJXMg55qE57G75Z6L5pivICVv77yM5bqU5Li6ICVvIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzUzNworIzogYnVpbHRpbi9hcHBseS5jOjM1MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIGluZGV4IgogbXNnc3RyICIlc++8muW3sue7j+WtmOWcqOS6jue0ouW8leS4rSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NDAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBhbHJlYWR5IGV4aXN0cyBpbiB3b3JraW5nIGRpcmVjdG9yeSIKIG1zZ3N0ciAiJXPvvJrlt7Lnu4/lrZjlnKjkuo7lt6XkvZzljLrkuK0iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTYwCisjOiBidWlsdGluL2FwcGx5LmM6MzU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgbW9kZSAoJW8pIG9mICVzIGRvZXMgbm90IG1hdGNoIG9sZCBtb2RlICglbykiCiBtc2dzdHIgIiUyJHMg55qE5paw5qih5byP77yIJTEkb++8ieWSjOaXp+aooeW8j++8iCUzJG/vvInkuI3ljLnphY0iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTY1CisjOiBidWlsdGluL2FwcGx5LmM6MzU2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgbW9kZSAoJW8pIG9mICVzIGRvZXMgbm90IG1hdGNoIG9sZCBtb2RlICglbykgb2YgJXMiCiBtc2dzdHIgIiUyJHMg55qE5paw5qih5byP77yIJTEkb++8ieWSjCAlNCRzIOeahOaXp+aooeW8j++8iCUzJG/vvInkuI3ljLnphY0iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTczCisjOiBidWlsdGluL2FwcGx5LmM6MzU3NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogcGF0Y2ggZG9lcyBub3QgYXBwbHkiCiBtc2dzdHIgIiVz77ya6KGl5LiB5pyq5bqU55SoIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU4NgorIzogYnVpbHRpbi9hcHBseS5jOjM1ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2hlY2tpbmcgcGF0Y2ggJXMuLi4iCiBtc2dzdHIgIuajgOafpeihpeS4gSAlcy4uLiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM2NzkgYnVpbHRpbi9jaGVja291dC5jOjIxNiBidWlsdGluL3Jlc2V0LmM6MTI0CisjOiBidWlsdGluL2FwcGx5LmM6MzY4MCBidWlsdGluL2NoZWNrb3V0LmM6MjE2IGJ1aWx0aW4vcmVzZXQuYzoxMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAibWFrZV9jYWNoZV9lbnRyeSBmYWlsZWQgZm9yIHBhdGggJyVzJyIKIG1zZ3N0ciAi5a+56Lev5b6EICclcycg55qEIG1ha2VfY2FjaGVfZW50cnkg5pON5L2c5aSx6LSlIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzgyMgorIzogYnVpbHRpbi9hcHBseS5jOjM4MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlbW92ZSAlcyBmcm9tIGluZGV4IgogbXNnc3RyICLkuI3og73ku47ntKLlvJXkuK3np7vpmaQgJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODUwCisjOiBidWlsdGluL2FwcGx5LmM6Mzg1MQogIywgYy1mb3JtYXQKLW1zZ2lkICJjb3JydXB0IHBhdGNoIGZvciBzdWJwcm9qZWN0ICVzIgotbXNnc3RyICLlrZDpobnnm64gJXMg5o2f5Z2P55qE6KGl5LiBIgorbXNnaWQgImNvcnJ1cHQgcGF0Y2ggZm9yIHN1Ym1vZHVsZSAlcyIKK21zZ3N0ciAi5a2Q5qih57uEICVzIOaNn+Wdj+eahOihpeS4gSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGF0IG5ld2x5IGNyZWF0ZWQgZmlsZSAnJXMnIgogbXNnc3RyICLkuI3og73mnprkuL7mlrDlu7rmlofku7YgJyVzJyDnmoTnirbmgIEiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODU5CisjOiBidWlsdGluL2FwcGx5LmM6Mzg2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIGJhY2tpbmcgc3RvcmUgZm9yIG5ld2x5IGNyZWF0ZWQgZmlsZSAlcyIKIG1zZ3N0ciAi5LiN6IO95Li65paw5bu65paH5Lu2ICVzIOWIm+W7uuWQjuerr+WtmOWCqCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NjIgYnVpbHRpbi9hcHBseS5jOjM5NzAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODYzIGJ1aWx0aW4vYXBwbHkuYzozOTcxCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhZGQgY2FjaGUgZW50cnkgZm9yICVzIgogbXNnc3RyICLml6Dms5XkuLogJXMg5re75Yqg57yT5a2Y5p2h55uuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg5NQorIzogYnVpbHRpbi9hcHBseS5jOjM4OTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2xvc2luZyBmaWxlICclcyciCiBtc2dzdHIgIuWFs+mXreaWh+S7tiAnJXMnIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzk0NAorIzogYnVpbHRpbi9hcHBseS5jOjM5NDUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIGZpbGUgJyVzJyBtb2RlICVvIgogbXNnc3RyICLkuI3og73lhpnmlofku7YgJyVzJyDmnYPpmZAgJW8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMxCisjOiBidWlsdGluL2FwcGx5LmM6NDAzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJBcHBsaWVkIHBhdGNoICVzIGNsZWFubHkuIgogbXNnc3RyICLmiJDlip/lupTnlKjooaXkuIEgJXPjgIIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDM5CisjOiBidWlsdGluL2FwcGx5LmM6NDA0MAogbXNnaWQgImludGVybmFsIGVycm9yIgogbXNnc3RyICLlhoXpg6jplJnor68iCiAKICMuIFNheSB0aGlzIGV2ZW4gd2l0aG91dCAtLXZlcmJvc2UKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQyCisjOiBidWlsdGluL2FwcGx5LmM6NDA0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJBcHBseWluZyBwYXRjaCAlJXMgd2l0aCAlZCByZWplY3QuLi4iCiBtc2dpZF9wbHVyYWwgIkFwcGx5aW5nIHBhdGNoICUlcyB3aXRoICVkIHJlamVjdHMuLi4iCiBtc2dzdHJbMF0gIuW6lOeUqCAlJXMg5Liq6KGl5LiB77yM5YW25LitICVkIOS4quiiq+aLkue7nS4uLiIKIG1zZ3N0clsxXSAi5bqU55SoICUlcyDkuKrooaXkuIHvvIzlhbbkuK0gJWQg5Liq6KKr5ouS57udLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA1MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJ1bmNhdGluZyAucmVqIGZpbGVuYW1lIHRvICUuKnMucmVqIgogbXNnc3RyICLmiKrnn60gLnJlaiDmlofku7blkI3kuLogJS4qcy5yZWoiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDczCisjOiBidWlsdGluL2FwcGx5LmM6NDA3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJIdW5rICMlZCBhcHBsaWVkIGNsZWFubHkuIgogbXNnc3RyICLnrKwgIyVkIOS4queJh+auteaIkOWKn+W6lOeUqOOAgiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlamVjdGVkIGh1bmsgIyVkLiIKIG1zZ3N0ciAi5ouS57ud56ysICMlZCDkuKrniYfmrrXjgIIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MjI2CisjOiBidWlsdGluL2FwcGx5LmM6NDIyNwogbXNnaWQgInVucmVjb2duaXplZCBpbnB1dCIKIG1zZ3N0ciAi5pyq6IO96K+G5Yir55qE6L6T5YWlIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDIzNworIzogYnVpbHRpbi9hcHBseS5jOjQyMzgKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCBpbmRleCBmaWxlIgogbXNnc3RyICLml6Dms5Xor7vlj5bntKLlvJXmlofku7YiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU2IGJ1aWx0aW4vYXBwbHkuYzo0MzU5IGJ1aWx0aW4vY2xvbmUuYzo5MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNTcgYnVpbHRpbi9hcHBseS5jOjQzNjAgYnVpbHRpbi9jbG9uZS5jOjkxCiAjOiBidWlsdGluL2ZldGNoLmM6NjMKIG1zZ2lkICJwYXRoIgogbXNnc3RyICLot6/lvoQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3CisjOiBidWlsdGluL2FwcGx5LmM6NDM1OAogbXNnaWQgImRvbid0IGFwcGx5IGNoYW5nZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHBhdGgiCiBtc2dzdHIgIuS4jeimgeW6lOeUqOS4jue7meWHuui3r+W+hOWQkeWMuemFjeeahOWPmOabtCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYxCiBtc2dpZCAiYXBwbHkgY2hhbmdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcGF0aCIKIG1zZ3N0ciAi5bqU55So5LiO57uZ5Ye66Lev5b6E5ZCR5Yy56YWN55qE5Y+Y5pu0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNjMKIG1zZ2lkICJudW0iCiBtc2dzdHIgIuaVsOWtlyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY0CiBtc2dpZCAicmVtb3ZlIDxudW0+IGxlYWRpbmcgc2xhc2hlcyBmcm9tIHRyYWRpdGlvbmFsIGRpZmYgcGF0aHMiCiBtc2dzdHIgIuS7juS8oOe7n+eahCBkaWZmIOi3r+W+hOS4reenu+mZpOaMh+WumuaVsOmHj+eahOWJjeWvvOaWnOe6vyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY3CiBtc2dpZCAiaWdub3JlIGFkZGl0aW9ucyBtYWRlIGJ5IHRoZSBwYXRjaCIKIG1zZ3N0ciAi5b+955Wl6KGl5LiB5Lit55qE5re75Yqg55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2OAorIzogYnVpbHRpbi9hcHBseS5jOjQzNjkKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgb3V0cHV0IGRpZmZzdGF0IGZvciB0aGUgaW5wdXQiCiBtc2dzdHIgIuS4jeW6lOeUqOihpeS4ge+8jOiAjOaYr+aYvuekuui+k+WFpeeahOW3ruW8gue7n+iuoe+8iGRpZmZzdGF077yJIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzMKIG1zZ2lkICJzaG93IG51bWJlciBvZiBhZGRlZCBhbmQgZGVsZXRlZCBsaW5lcyBpbiBkZWNpbWFsIG5vdGF0aW9uIgogbXNnc3RyICLku6XljYHov5vliLbmlbDmmL7npLrmt7vliqDlkozliKDpmaTnmoTooYzmlbAiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc0CisjOiBidWlsdGluL2FwcGx5LmM6NDM3NQogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgYSBzdW1tYXJ5IGZvciB0aGUgaW5wdXQiCiBtc2dzdHIgIuS4jeW6lOeUqOihpeS4ge+8jOiAjOaYr+aYvuekuui+k+WFpeeahOamguimgSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc3CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIHNlZSBpZiB0aGUgcGF0Y2ggaXMgYXBwbGljYWJsZSIKIG1zZ3N0ciAi5LiN5bqU55So6KGl5LiB77yM6ICM5piv5p+l55yL6KGl5LiB5piv5ZCm5Y+v5bqU55SoIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3OAorIzogYnVpbHRpbi9hcHBseS5jOjQzNzkKIG1zZ2lkICJtYWtlIHN1cmUgdGhlIHBhdGNoIGlzIGFwcGxpY2FibGUgdG8gdGhlIGN1cnJlbnQgaW5kZXgiCiBtc2dzdHIgIuehruiupOihpeS4geWPr+S7peW6lOeUqOWIsOW9k+WJjee0ouW8lSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgxCiBtc2dpZCAiYXBwbHkgYSBwYXRjaCB3aXRob3V0IHRvdWNoaW5nIHRoZSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgIuW6lOeUqOihpeS4geiAjOS4jeS/ruaUueW3peS9nOWMuiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgzCiBtc2dpZCAiYWxzbyBhcHBseSB0aGUgcGF0Y2ggKHVzZSB3aXRoIC0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiCiBtc2dzdHIgIui/mOW6lOeUqOatpOihpeS4ge+8iOS4jiAtLXN0YXQvLS1zdW1tYXJ5Ly0tY2hlY2sg6YCJ6aG55ZCM5pe25L2/55So77yJIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4NAorIzogYnVpbHRpbi9hcHBseS5jOjQzODUKIG1zZ2lkICJhdHRlbXB0IHRocmVlLXdheSBtZXJnZSBpZiBhIHBhdGNoIGRvZXMgbm90IGFwcGx5IgogbXNnc3RyICLlpoLmnpzkuIDkuKrooaXkuIHkuI3og73lupTnlKjliJnlsJ3or5XkuInot6/lkIjlubYiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg2CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NwogbXNnaWQgImJ1aWxkIGEgdGVtcG9yYXJ5IGluZGV4IGJhc2VkIG9uIGVtYmVkZGVkIGluZGV4IGluZm9ybWF0aW9uIgogbXNnc3RyICLliJvlu7rkuIDkuKrkuLTml7bntKLlvJXln7rkuo7ltYzlhaXnmoTntKLlvJXkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg4IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ1NgorIzogYnVpbHRpbi9hcHBseS5jOjQzODkgYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDYyCiBtc2dpZCAicGF0aHMgYXJlIHNlcGFyYXRlZCB3aXRoIE5VTCBjaGFyYWN0ZXIiCiBtc2dzdHIgIui3r+W+hOS7pSBOVUwg5a2X56ym5YiG6ZqUIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MQorIzogYnVpbHRpbi9hcHBseS5jOjQzOTIKIG1zZ2lkICJlbnN1cmUgYXQgbGVhc3QgPG4+IGxpbmVzIG9mIGNvbnRleHQgbWF0Y2giCiBtc2dzdHIgIuehruS/neiHs+WwkeWMuemFjSA8bj4g6KGM5LiK5LiL5paHIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MgorIzogYnVpbHRpbi9hcHBseS5jOjQzOTMKIG1zZ2lkICJhY3Rpb24iCiBtc2dzdHIgIuWKqOS9nCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk0CiBtc2dpZCAiZGV0ZWN0IG5ldyBvciBtb2RpZmllZCBsaW5lcyB0aGF0IGhhdmUgd2hpdGVzcGFjZSBlcnJvcnMiCiBtc2dzdHIgIuajgOafpeaWsOWinuWSjOS/ruaUueeahOihjOS4remXtOeahOepuueZveWtl+espua7peeUqCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTYgYnVpbHRpbi9hcHBseS5jOjQzOTkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk3IGJ1aWx0aW4vYXBwbHkuYzo0NDAwCiBtc2dpZCAiaWdub3JlIGNoYW5nZXMgaW4gd2hpdGVzcGFjZSB3aGVuIGZpbmRpbmcgY29udGV4dCIKIG1zZ3N0ciAi5p+l5om+5LiK5LiL5paH5pe25b+955Wl56m655m95a2X56ym55qE5Y+Y5pu0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwMgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDMKIG1zZ2lkICJhcHBseSB0aGUgcGF0Y2ggaW4gcmV2ZXJzZSIKIG1zZ3N0ciAi5Y+N5ZCR5bqU55So6KGl5LiBIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDUKIG1zZ2lkICJkb24ndCBleHBlY3QgYXQgbGVhc3Qgb25lIGxpbmUgb2YgY29udGV4dCIKIG1zZ3N0ciAi5peg6ZyA6Iez5bCR5LiA6KGM5LiK5LiL5paHIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDcKIG1zZ2lkICJsZWF2ZSB0aGUgcmVqZWN0ZWQgaHVua3MgaW4gY29ycmVzcG9uZGluZyAqLnJlaiBmaWxlcyIKIG1zZ3N0ciAi5bCG5ouS57ud55qE6KGl5LiB54mH5q615L+d5a2Y5Zyo5a+55bqU55qEICoucmVqIOaWh+S7tuS4rSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MDgKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA5CiBtc2dpZCAiYWxsb3cgb3ZlcmxhcHBpbmcgaHVua3MiCiBtc2dzdHIgIuWFgeiuuOmHjeWPoOeahOihpeS4geeJh+autSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDEyCiBtc2dpZCAidG9sZXJhdGUgaW5jb3JyZWN0bHkgZGV0ZWN0ZWQgbWlzc2luZyBuZXctbGluZSBhdCB0aGUgZW5kIG9mIGZpbGUiCiBtc2dzdHIgIuWFgeiuuOS4jeato+ehrueahOaWh+S7tuacq+WwvuaNouihjOespiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE1CiBtc2dpZCAiZG8gbm90IHRydXN0IHRoZSBsaW5lIGNvdW50cyBpbiB0aGUgaHVuayBoZWFkZXJzIgogbXNnc3RyICLkuI3kv6Hku7vooaXkuIHniYfmrrXnmoTlpLTkv6Hmga/kuK3nmoTooYzlj7ciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE2CisjOiBidWlsdGluL2FwcGx5LmM6NDQxNwogbXNnaWQgInJvb3QiCiBtc2dzdHIgIuagueebruW9lSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE4CiBtc2dpZCAicHJlcGVuZCA8cm9vdD4gdG8gYWxsIGZpbGVuYW1lcyIKIG1zZ3N0ciAi5Li65omA5pyJ5paH5Lu25ZCN5YmN5re75YqgIDzmoLnnm67lvZU+IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQzOQorIzogYnVpbHRpbi9hcHBseS5jOjQ0NDAKIG1zZ2lkICItLTN3YXkgb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIi0tM3dheSDlnKjkuIDkuKrniYjmnKzlupPkuYvlpJYiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ3CisjOiBidWlsdGluL2FwcGx5LmM6NDQ0OAogbXNnaWQgIi0taW5kZXggb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIi0taW5kZXgg5Zyo5LiA5Liq54mI5pys5bqT5LmL5aSWIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ1MAorIzogYnVpbHRpbi9hcHBseS5jOjQ0NTEKIG1zZ2lkICItLWNhY2hlZCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiLS1jYWNoZWQg5Zyo5LiA5Liq54mI5pys5bqT5LmL5aSWIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ2NgorIzogYnVpbHRpbi9hcHBseS5jOjQ0NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2FuJ3Qgb3BlbiBwYXRjaCAnJXMnIgogbXNnc3RyICLkuI3og73miZPlvIDooaXkuIEgJyVzJyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0ODAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDgxCiAjLCBjLWZvcm1hdAogbXNnaWQgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9yIgogbXNnaWRfcGx1cmFsICJzcXVlbGNoZWQgJWQgd2hpdGVzcGFjZSBlcnJvcnMiCiBtc2dzdHJbMF0gIuaKkeWItuS4i+S7jeaciSAlZCDkuKrnqbrnmb3lrZfnrKbor6/nlKgiCiBtc2dzdHJbMV0gIuaKkeWItuS4i+S7jeaciSAlZCDkuKrnqbrnmb3lrZfnrKbor6/nlKgiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDg2IGJ1aWx0aW4vYXBwbHkuYzo0NDk2CisjOiBidWlsdGluL2FwcGx5LmM6NDQ4NyBidWlsdGluL2FwcGx5LmM6NDQ5NwogIywgYy1mb3JtYXQKIG1zZ2lkICIlZCBsaW5lIGFkZHMgd2hpdGVzcGFjZSBlcnJvcnMuIgogbXNnaWRfcGx1cmFsICIlZCBsaW5lcyBhZGQgd2hpdGVzcGFjZSBlcnJvcnMuIgpAQCAtMjM3NywxMDMgKzI0NDcsMTAzIEBACiBtc2dpZCAidXBkYXRlIEJJU0VDVF9IRUFEIGluc3RlYWQgb2YgY2hlY2tpbmcgb3V0IHRoZSBjdXJyZW50IGNvbW1pdCIKIG1zZ3N0ciAi5pu05pawIEJJU0VDVF9IRUFEIOiAjOmdnuajgOWHuuW9k+WJjeaPkOS6pCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjI1CisjOiBidWlsdGluL2JsYW1lLmM6MjYKIG1zZ2lkICJnaXQgYmxhbWUgW29wdGlvbnNdIFtyZXYtb3B0c10gW3Jldl0gWy0tXSBmaWxlIgogbXNnc3RyICJnaXQgYmxhbWUgW+mAiemhuV0gW+eJiOacrOmAiemhuV0gW+eJiOacrF0gWy0tXSDmlofku7YiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzozMAorIzogYnVpbHRpbi9ibGFtZS5jOjMxCiBtc2dpZCAiW3Jldi1vcHRzXSBhcmUgZG9jdW1lbnRlZCBpbiBnaXQtcmV2LWxpc3QoMSkiCiBtc2dzdHIgIlvniYjmnKzpgInpobldIOeahOaWh+aho+iusOW9leWcqCBnaXQtcmV2LWxpc3QoMSkg5LitIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzYKIG1zZ2lkICJTaG93IGJsYW1lIGVudHJpZXMgYXMgd2UgZmluZCB0aGVtLCBpbmNyZW1lbnRhbGx5IgogbXNnc3RyICLlop7ph4/lvI/lnLDmmL7npLrlj5HnjrDnmoQgYmxhbWUg5p2h55uuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzcKIG1zZ2lkICJTaG93IGJsYW5rIFNIQS0xIGZvciBib3VuZGFyeSBjb21taXRzIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICLovrnnlYzmj5DkuqTmmL7npLrnqbrnmoQgU0hBLTHvvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU3CisjOiBidWlsdGluL2JsYW1lLmM6MjI3OAogbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAi5LiN5oqK5qC55o+Q5Lqk5L2c5Li66L6555WM77yI6buY6K6k77ya5YWz6Zet77yJIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1OAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzkKIG1zZ2lkICJTaG93IHdvcmsgY29zdCBzdGF0aXN0aWNzIgogbXNnc3RyICLmmL7npLrlkb3ku6TmtojogJfnu5/orqEiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU5CisjOiBidWlsdGluL2JsYW1lLmM6MjI4MAogbXNnaWQgIlNob3cgb3V0cHV0IHNjb3JlIGZvciBibGFtZSBlbnRyaWVzIgogbXNnc3RyICLmmL7npLrliKTmlq0gYmxhbWUg5p2h55uu5L2N56e755qE5b6X5YiG6K+K5pat5L+h5oGvIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODEKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGZpbGVuYW1lIChEZWZhdWx0OiBhdXRvKSIKIG1zZ3N0ciAi5pi+56S65Y6f5aeL5paH5Lu25ZCN77yI6buY6K6k77ya6Ieq5Yqo77yJIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODIKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGxpbmVudW1iZXIgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIuaYvuekuuWOn+Wni+eahOihjOWPt++8iOm7mOiupO+8muWFs+mXre+8iSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgzCiBtc2dpZCAiU2hvdyBpbiBhIGZvcm1hdCBkZXNpZ25lZCBmb3IgbWFjaGluZSBjb25zdW1wdGlvbiIKIG1zZ3N0ciAi5pi+56S65Li65LiA5Liq6YCC5ZCI5py65Zmo6K+75Y+W55qE5qC85byPIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MworIzogYnVpbHRpbi9ibGFtZS5jOjIyODQKIG1zZ2lkICJTaG93IHBvcmNlbGFpbiBmb3JtYXQgd2l0aCBwZXItbGluZSBjb21taXQgaW5mb3JtYXRpb24iCiBtc2dzdHIgIuS4uuavj+S4gOihjOaYvuekuuacuuWZqOmAgueUqOeahOaPkOS6pOS/oeaBryIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg1CiBtc2dpZCAiVXNlIHRoZSBzYW1lIG91dHB1dCBtb2RlIGFzIGdpdC1hbm5vdGF0ZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAi5L2/55So5ZKMIGdpdC1hbm5vdGF0ZSDnm7jlkIznmoTovpPlh7rmqKHlvI/vvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY1CisjOiBidWlsdGluL2JsYW1lLmM6MjI4NgogbXNnaWQgIlNob3cgcmF3IHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAi5pi+56S65Y6f5aeL5pe26Ze05oiz77yI6buY6K6k77ya5YWz6Zet77yJIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyODcKIG1zZ2lkICJTaG93IGxvbmcgY29tbWl0IFNIQTEgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIuaYvuekuumVv+eahFNIQTHmj5DkuqTlj7fvvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY3CisjOiBidWlsdGluL2JsYW1lLmM6MjI4OAogbXNnaWQgIlN1cHByZXNzIGF1dGhvciBuYW1lIGFuZCB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIumakOiXj+S9nOiAheWQjeWtl+WSjOaXtumXtOaIs++8iOm7mOiupO+8muWFs+mXre+8iSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjgKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg5CiBtc2dpZCAiU2hvdyBhdXRob3IgZW1haWwgaW5zdGVhZCBvZiBuYW1lIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICLmmL7npLrkvZzogIXnmoTpgq7nrrHogIzkuI3mmK/lkI3lrZfvvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY5CisjOiBidWlsdGluL2JsYW1lLmM6MjI5MAogbXNnaWQgIklnbm9yZSB3aGl0ZXNwYWNlIGRpZmZlcmVuY2VzIgogbXNnc3RyICLlv73nlaXnqbrnmb3lt67lvIIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcwCisjOiBidWlsdGluL2JsYW1lLmM6MjI5MQogbXNnaWQgIlNwZW5kIGV4dHJhIGN5Y2xlcyB0byBmaW5kIGJldHRlciBtYXRjaCIKIG1zZ3N0ciAi6Iqx6LS56aKd5aSW55qE5b6q546v5p2l5om+5Yiw5pu05aW955qE5Yy56YWNIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTIKIG1zZ2lkICJVc2UgcmV2aXNpb25zIGZyb20gPGZpbGU+IGluc3RlYWQgb2YgY2FsbGluZyBnaXQtcmV2LWxpc3QiCiBtc2dzdHIgIuS9v+eUqOadpeiHqiA8ZmlsZT4g55qE5L+u6K6i6ZuG6ICM5LiN5piv6LCD55SoIGdpdC1yZXYtbGlzdCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzCiBtc2dpZCAiVXNlIDxmaWxlPidzIGNvbnRlbnRzIGFzIHRoZSBmaW5hbCBpbWFnZSIKIG1zZ3N0ciAi5L2/55SoIDxmaWxlPiDnmoTlhoXlrrnkvZzkuLrmnIDnu4jnmoTlm77niYciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzczIGJ1aWx0aW4vYmxhbWUuYzoyMzc0CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NCBidWlsdGluL2JsYW1lLmM6MjI5NQogbXNnaWQgInNjb3JlIgogbXNnc3RyICLlvpfliIYiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzczCisjOiBidWlsdGluL2JsYW1lLmM6MjI5NAogbXNnaWQgIkZpbmQgbGluZSBjb3BpZXMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIuaJvuWIsOaWh+S7tuWGheWPiui3qOaWh+S7tueahOihjOaLt+i0nSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk1CiBtc2dpZCAiRmluZCBsaW5lIG1vdmVtZW50cyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAi5om+5Yiw5paH5Lu25YaF5Y+K6Leo5paH5Lu255qE6KGM56e75YqoIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTYKIG1zZ2lkICJuLG0iCiBtc2dzdHIgIm4sbSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CiBtc2dpZCAiUHJvY2VzcyBvbmx5IGxpbmUgcmFuZ2UgbixtLCBjb3VudGluZyBmcm9tIDEiCiBtc2dzdHIgIuWPquWkhOeQhuihjOiMg+WbtOWcqCBuIOWSjCBtIOS5i+mXtOeahO+8jOS7jiAxIOW8gOWniyIKIApAQCAtMjcwNyw4ICsyNzc3LDggQEAKIG1zZ3N0ciAi5L2c55So5LqO6L+c56iL6Lef6Liq5YiG5pSvIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgwNSBidWlsdGluL2JyYW5jaC5jOjgxMSBidWlsdGluL2JyYW5jaC5jOjgzMgotIzogYnVpbHRpbi9icmFuY2guYzo4MzggYnVpbHRpbi9jb21taXQuYzoxMzY4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwIGJ1aWx0aW4vY29tbWl0LmM6MTM3MSBidWlsdGluL3RhZy5jOjQ2OAorIzogYnVpbHRpbi9icmFuY2guYzo4MzggYnVpbHRpbi9jb21taXQuYzoxNDMzIGJ1aWx0aW4vY29tbWl0LmM6MTQzNAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM1IGJ1aWx0aW4vY29tbWl0LmM6MTQzNiBidWlsdGluL3RhZy5jOjQ2OAogbXNnaWQgImNvbW1pdCIKIG1zZ3N0ciAi5o+Q5LqkIgogCkBAIC0yNzcyLDcgKzI4NDIsNyBAQAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlIEhFQUQgYXMgYSB2YWxpZCByZWYuIgogbXNnc3RyICLml6Dms5XlsIYgSEVBRCDop6PmnpDkuLrmnInmlYjlvJXnlKjjgIIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MzAKIG1zZ2lkICJIRUFEIG5vdCBmb3VuZCBiZWxvdyByZWZzL2hlYWRzISIKIG1zZ3N0ciAiSEVBRCDmsqHmnInkvY3kuo4gL3JlZnMvaGVhZHMg5LmL5LiL77yBIgogCkBAIC0yODg5LDQzICsyOTU5LDQzIEBACiBtc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gdW5idW5kbGUuIgogbXNnc3RyICLpnIDopoHkuIDkuKrniYjmnKzlupPmnaXop6PljIXjgIIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxNzYKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODUKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXBlPnwtLXRleHRjb252KSA8b2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw857G75Z6LPnwtLXRleHRjb252KSA85a+56LGhPiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE3NworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NgogbXNnaWQgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxsaXN0X29mX29iamVjdHM+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA85a+56LGh5YiX6KGoPiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE5NQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyMwogbXNnaWQgIjx0eXBlPiBjYW4gYmUgb25lIG9mOiBibG9iLCB0cmVlLCBjb21taXQsIHRhZyIKIG1zZ3N0ciAiPOexu+Weiz4g5Y+v5Lul5piv5YW25Lit5LmL5LiA77yaYmxvYuOAgXRyZWXjgIFjb21taXTjgIF0YWciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTYKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjQKIG1zZ2lkICJzaG93IG9iamVjdCB0eXBlIgogbXNnc3RyICLmmL7npLrlr7nosaHnsbvlnosiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjUKIG1zZ2lkICJzaG93IG9iamVjdCBzaXplIgogbXNnc3RyICLmmL7npLrlr7nosaHlpKflsI8iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTkKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjcKIG1zZ2lkICJleGl0IHdpdGggemVybyB3aGVuIHRoZXJlJ3Mgbm8gZXJyb3IiCiBtc2dzdHIgIuW9k+ayoeaciemUmeivr+aXtumAgOWHuuW5tui/lOWbnumbtiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwMAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyOAogbXNnaWQgInByZXR0eS1wcmludCBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICLnvo7op4LlnLDmiZPljbDlr7nosaHnmoTlhoXlrrkiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDIKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzAKIG1zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAi5a+55LqO5pWw5o2u77yIYmxvYu+8ieWvueixoe+8jOWvueWFtuWGheWuueaJp+ihjCB0ZXh0Y29udiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjIwNAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMgogbXNnaWQgInNob3cgaW5mbyBhbmQgY29udGVudCBvZiBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAi5pi+56S65LuO5qCH5YeG6L6T5YWl5o+Q5L6b55qE5a+56LGh55qE5L+h5oGv5ZKM5YaF5a65IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjA3CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzM1CiBtc2dpZCAic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICLmmL7npLrku47moIflh4bovpPlhaXmj5DkvpvnmoTlr7nosaHnmoTkv6Hmga8iCiAKQEAgLTI5NTMsMzAgKzMwMjMsNTUgQEAKIG1zZ2lkICJpbnB1dCBwYXRocyBhcmUgdGVybWluYXRlZCBieSBhIG51bGwgY2hhcmFjdGVyIgogbXNnc3RyICLovpPlhaXot6/lvoTku6VudWxs5a2X56ym57uI5q2iIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ0IGJ1aWx0aW4vZ2MuYzoxNzcKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTggYnVpbHRpbi9jaGVja291dC5jOjEwNTQgYnVpbHRpbi9nYy5jOjE3NwogbXNnaWQgInN1cHByZXNzIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAi5LiN5pi+56S66L+b5bqm5oql5ZGKIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0NgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyNgorbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIgorbXNnc3RyICLmmL7npLrmnKrljLnphY3nmoTovpPlhaXot6/lvoQiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQzCiBtc2dpZCAiY2Fubm90IHNwZWNpZnkgcGF0aG5hbWVzIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAi5LiN6IO95ZCM5pe25o+Q5L6b6Lev5b6E5Y+KIC0tc3RkaW4g5Y+C5pWwIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDYKIG1zZ2lkICIteiBvbmx5IG1ha2VzIHNlbnNlIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAiLXog6ZyA6KaB5ZKMIC0tc3RkaW4g5Y+C5pWw5YWx55So5omN5pyJ5oSP5LmJIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDgKIG1zZ2lkICJubyBwYXRoIHNwZWNpZmllZCIKIG1zZ3N0ciAi5pyq5oyH5a6a6Lev5b6EIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTIKIG1zZ2lkICItLXF1aWV0IGlzIG9ubHkgdmFsaWQgd2l0aCBhIHNpbmdsZSBwYXRobmFtZSIKIG1zZ3N0ciAi5Y+C5pWwIC0tcXVpZXQg5Y+q5Zyo5o+Q5L6b5LiA5Liq6Lev5b6E5ZCN5pe25pyJ5pWIIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTQKIG1zZ2lkICJjYW5ub3QgaGF2ZSBib3RoIC0tcXVpZXQgYW5kIC0tdmVyYm9zZSIKIG1zZ3N0ciAi5LiN6IO95ZCM5pe25o+Q5L6bIC0tcXVpZXQg5ZKMIC0tdmVyYm9zZSDlj4LmlbAiCiAKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3Cittc2dpZCAiLS1ub24tbWF0Y2hpbmcgaXMgb25seSB2YWxpZCB3aXRoIC0tdmVyYm9zZSIKK21zZ3N0ciAiLS1ub24tbWF0Y2hpbmcg6YCJ6aG55Y+q5Zyo5L2/55SoIC0tdmVyYm9zZSDml7bmnInmlYgiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjgKK21zZ2lkICJnaXQgY2hlY2stbWFpbG1hcCBbb3B0aW9uc10gPGNvbnRhY3Q+Li4uIgorbXNnc3RyICJnaXQgY2hlY2stbWFpbG1hcCBb6YCJ6aG5XSA86IGU57O75Zyw5Z2APi4uLiIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6MTMKK21zZ2lkICJhbHNvIHJlYWQgY29udGFjdHMgZnJvbSBzdGRpbiIKK21zZ3N0ciAi6L+Y5LuO5qCH5YeG6L6T5YWl6K+75Y+W6IGU57O75Zyw5Z2AIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcGFyc2UgY29udGFjdDogJXMiCittc2dzdHIgIuS4jeiDveino+aekOiBlOezu+WcsOWdgO+8miVzIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzo0NworbXNnaWQgIm5vIGNvbnRhY3RzIHNwZWNpZmllZCIKK21zZ3N0ciAi5pyq5oyH5a6a6IGU57O75Zyw5Z2AIgorCiAjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTI2CiBtc2dpZCAiZ2l0IGNoZWNrb3V0LWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgogbXNnc3RyICJnaXQgY2hlY2tvdXQtaW5kZXggW+mAiemhuV0gWy0tXSBbPOaWh+S7tj4uLi5dIgpAQCAtMzA5Myw0MyArMzE4OCw0MyBAQAogbXNnaWQgIkNhbiBub3QgZG8gcmVmbG9nIGZvciAnJXMnXG4iCiBtc2dzdHIgIuS4jeiDveWvuSAnJXMnIOaJp+ihjCByZWZsb2cg5pON5L2cXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MzkKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCIKIG1zZ3N0ciAiSEVBRCDnm67liY3kvY3kuo4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVzZXQgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAi6YeN572u5YiG5pSvICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0NAorIzogYnVpbHRpbi9jaGVja291dC5jOjY0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJBbHJlYWR5IG9uICclcydcbiIKIG1zZ3N0ciAi5bey57uP5L2N5LqOICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0OAorIzogYnVpbHRpbi9jaGVja291dC5jOjY1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhbmQgcmVzZXQgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAi5YiH5o2i5bm26YeN572u5YiG5pSvICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1MCBidWlsdGluL2NoZWNrb3V0LmM6OTg3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjU1IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYSBuZXcgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAi5YiH5o2i5Yiw5LiA5Liq5paw5YiG5pSvICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY1MgorIzogYnVpbHRpbi9jaGVja291dC5jOjY1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICLliIfmjaLliLDliIbmlK8gJyVzJ1xuIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MDgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIC4uLiBhbmQgJWQgbW9yZS5cbiIKIG1zZ3N0ciAiIC4uLiDlj4rlhbblroMgJWQg5Liq44CCXG4iCiAKICMuIFRoZSBzaW5ndWxhciB2ZXJzaW9uCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzE0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJXYXJuaW5nOiB5b3UgYXJlIGxlYXZpbmcgJWQgY29tbWl0IGJlaGluZCwgbm90IGNvbm5lY3RlZCB0b1xuIgpAQCAtMzE1MCw3ICszMjQ1LDcgQEAKICJcbiIKICIlc1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzMyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJJZiB5b3Ugd2FudCB0byBrZWVwIHRoZW0gYnkgY3JlYXRpbmcgYSBuZXcgYnJhbmNoLCB0aGlzIG1heSBiZSBhIGdvb2QgdGltZVxuIgpAQCAtMzE2NSwxMzYgKzMyNjAsMTM2IEBACiAiIGdpdCBicmFuY2ggbmV3X2JyYW5jaF9uYW1lICVzXG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjcKIG1zZ2lkICJpbnRlcm5hbCBlcnJvciBpbiByZXZpc2lvbiB3YWxrIgogbXNnc3RyICLlnKjniYjmnKzpgY3ljobml7bpgYfliLDlhoXpg6jplJnor68iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NzEKIG1zZ2lkICJQcmV2aW91cyBIRUFEIHBvc2l0aW9uIHdhcyIKIG1zZ3N0ciAi5LmL5YmN55qEIEhFQUQg5L2N572u5pivIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzkzIGJ1aWx0aW4vY2hlY2tvdXQuYzo5ODIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTggYnVpbHRpbi9jaGVja291dC5jOjk5MgogbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIuaCqOS9jeS6juS4gOS4quWwmuacquWIneWni+WMlueahOWIhuaUryIKIAogIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2U6ICVzIgogbXNnc3RyICLml6DmlYjlvJXnlKjvvJolcyIKIAogIy4gY2FzZSAoMSk6IHdhbnQgYSB0cmVlCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKIG1zZ3N0ciAi5byV55So5LiN5piv5LiA5Liq5qCR77yaJXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA2CiBtc2dpZCAicGF0aHMgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIui3r+W+hOS4jeiDveWSjOWIh+aNouWIhuaUr+WQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjk5OSBidWlsdGluL2NoZWNrb3V0LmM6MTAwMworIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDkgYnVpbHRpbi9jaGVja291dC5jOjEwMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiJyVzJyDkuI3og73lkozliIfmjaLliIbmlK/lkIzml7bkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDEwIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE1Ci0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxOAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMTcgYnVpbHRpbi9jaGVja291dC5jOjEwMjAgYnVpbHRpbi9jaGVja291dC5jOjEwMjUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAnJXMnIgogbXNnc3RyICInJXMnIOS4jeiDveWSjCAnJXMnIOWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBzd2l0Y2ggYnJhbmNoIHRvIGEgbm9uLWNvbW1pdCAnJXMnIgogbXNnc3RyICLkuI3og73liIfmjaLliIbmlK/liLDkuIDkuKrpnZ7mj5DkuqQgJyVzJyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDUgYnVpbHRpbi9jaGVja291dC5jOjEwNDcgYnVpbHRpbi9jbG9uZS5jOjkwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NSBidWlsdGluL2NoZWNrb3V0LmM6MTA1NyBidWlsdGluL2Nsb25lLmM6ODkKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY5IGJ1aWx0aW4vcmVtb3RlLmM6MTcxCiBtc2dpZCAiYnJhbmNoIgogbXNnc3RyICLliIbmlK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgogbXNnaWQgImNyZWF0ZSBhbmQgY2hlY2tvdXQgYSBuZXcgYnJhbmNoIgogbXNnc3RyICLliJvlu7rlubbmo4Dlh7rkuIDkuKrmlrDnmoTliIbmlK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OAogbXNnaWQgImNyZWF0ZS9yZXNldCBhbmQgY2hlY2tvdXQgYSBicmFuY2giCiBtc2dzdHIgIuWIm+W7ui/ph43nva7lubbmo4Dlh7rkuIDkuKrliIbmlK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OQogbXNnaWQgImNyZWF0ZSByZWZsb2cgZm9yIG5ldyBicmFuY2giCiBtc2dzdHIgIuS4uuaWsOeahOWIhuaUr+WIm+W7uuW8leeUqOaXpeW/lyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYwCiBtc2dpZCAiZGV0YWNoIHRoZSBIRUFEIGF0IG5hbWVkIGNvbW1pdCIKIG1zZ3N0ciAi5oiQ5Li65oyH5ZCR6K+l5o+Q5Lqk55qE5YiG56a75aS05oyH6ZKIIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjEKIG1zZ2lkICJzZXQgdXBzdHJlYW0gaW5mbyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAi5Li65paw55qE5YiG5pSv6K6+572u5LiK5ri45L+h5oGvIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjMKIG1zZ2lkICJuZXcgYnJhbmNoIgogbXNnc3RyICLmlrDliIbmlK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKIG1zZ3N0ciAi5paw55qE5rKh5pyJ54i25o+Q5Lqk55qE5YiG5pSvIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjQKIG1zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIuWvueWwmuacquWQiOW5tueahOaWh+S7tuajgOWHuuaIkeS7rOeahOeJiOacrCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY2CiBtc2dpZCAiY2hlY2tvdXQgdGhlaXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIuWvueWwmuacquWQiOW5tueahOaWh+S7tuajgOWHuuS7luS7rOeahOeJiOacrCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY4CiBtc2dpZCAiZm9yY2UgY2hlY2tvdXQgKHRocm93IGF3YXkgbG9jYWwgbW9kaWZpY2F0aW9ucykiCiBtc2dzdHIgIuW8uuWItuajgOWHuu+8iOS4ouW8g+acrOWcsOS/ruaUue+8iSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY5CiBtc2dpZCAicGVyZm9ybSBhIDMtd2F5IG1lcmdlIHdpdGggdGhlIG5ldyBicmFuY2giCiBtc2dzdHIgIuWSjOaWsOeahOWIhuaUr+aJp+ihjOS4iei3r+WQiOW5tiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAgYnVpbHRpbi9tZXJnZS5jOjIxNworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzAgYnVpbHRpbi9tZXJnZS5jOjIzMgogbXNnaWQgInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIKIG1zZ3N0ciAi5pu05paw5b+955Wl55qE5paH5Lu277yI6buY6K6k77yJIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MSBidWlsdGluL2xvZy5jOjExNTggcGFyc2Utb3B0aW9ucy5oOjI0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzEgYnVpbHRpbi9sb2cuYzoxMjA4IHBhcnNlLW9wdGlvbnMuaDoyNDkKIG1zZ2lkICJzdHlsZSIKIG1zZ3N0ciAi6aOO5qC8IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzIKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICLlhrLnqoHovpPlh7rpo47moLzvvIhtZXJnZSDmiJYgZGlmZjPvvIkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3NQogbXNnaWQgImRvIG5vdCBsaW1pdCBwYXRoc3BlY3MgdG8gc3BhcnNlIGVudHJpZXMgb25seSIKIG1zZ3N0ciAi5a+56Lev5b6E5LiN5YGa56iA55aP5qOA5Ye655qE6ZmQ5Yi2IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzcKIG1zZ2lkICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiBtc2dzdHIgIuWGjeiAheeMnOa1iydnaXQgY2hlY2tvdXQgbm8tc3VjaC1icmFuY2gnIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5MQorIzogYnVpbHRpbi9jaGVja291dC5jOjExMDEKIG1zZ2lkICItYiwgLUIgYW5kIC0tb3JwaGFuIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCiBtc2dzdHIgIi1i44CBLUIg5ZKMIC0tb3JwaGFuIOaYr+S6kuaWpeeahCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMDgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTE4CiBtc2dpZCAiLS10cmFjayBuZWVkcyBhIGJyYW5jaCBuYW1lIgogbXNnc3RyICItLXRyYWNrIOmcgOimgeS4gOS4quWIhuaUr+WQjSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTI1CiBtc2dpZCAiTWlzc2luZyBicmFuY2ggbmFtZTsgdHJ5IC1iIgogbXNnc3RyICLnvLrlsJHliIbmlK/lkI3vvJvlsJ3or5UgLWIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTUwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2MAogbXNnaWQgImludmFsaWQgcGF0aCBzcGVjaWZpY2F0aW9uIgogbXNnc3RyICLml6DmlYjnmoTot6/lvoTop4TmoLwiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuXG4iCkBAIC0zMzAzLDIyNyArMzM5OCwzMzAgQEAKICLkuI3og73lkIzml7bmm7TmlrDot6/lvoTlubbliIfmjaLliLDliIbmlK8nJXMn44CCXG4iCiAi5oKo5piv5oOz6KaB5qOA5Ye6ICclcycg5L2G5YW25pyq6IO96Kej5p6Q5Li65o+Q5Lqk5LmI77yfIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBkb2VzIG5vdCB0YWtlIGEgcGF0aCBhcmd1bWVudCAnJXMnIgogbXNnc3RyICJnaXQgY2hlY2tvdXTvvJotLWRldGFjaCDkuI3og73mjqXmlLbot6/lvoTlj4LmlbAgJyVzJyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNjYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTc2CiBtc2dpZCAiIgogImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIGFuZCAtLW1lcmdlIGFyZSBpbmNvbXBhdGlibGUgd2hlblxuIgogImNoZWNraW5nIG91dCBvZiB0aGUgaW5kZXguIgogbXNnc3RyICIiCiAiZ2l0IGNoZWNrb3V077ya5Zyo5LuO57Si5byV5qOA5Ye65pe277yMLS1vdXJzLy0tdGhlaXJz44CBLS1mb3JjZSDlkowgLS1tZXJnZSDkuI3lhbzlrrnjgIIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyMAotbXNnaWQgImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA8cGF0dGVybj5dIFsteCB8IC1YXSBbLS1dIDxwYXRocz4uLi4iCi1tc2dzdHIgImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA85qih5byPPl0gWy14IHwgLVhdIFstLV0gPOi3r+W+hD4uLi4iCisjOiBidWlsdGluL2NsZWFuLmM6MjUKK21zZ2lkICIiCisiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIgorbXNnc3RyICIiCisiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPOaooeW8jz5dIFsteCB8IC1YXSBbLS1dIDzot6/lvoQ+Li4uIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlc1xuIgogbXNnc3RyICLmraPliKDpmaQgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI1CisjOiBidWlsdGluL2NsZWFuLmM6MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgcmVtb3ZlICVzXG4iCiBtc2dzdHIgIuWwhuWIoOmZpCAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjYKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMQogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGluZyByZXBvc2l0b3J5ICVzXG4iCiBtc2dzdHIgIuW/veeVpeeJiOacrOW6kyAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjcKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMgogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3VsZCBza2lwIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAi5bCG5b+955Wl54mI5pys5bqTICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyOAorIzogYnVpbHRpbi9jbGVhbi5jOjMzCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZW1vdmUgJXMiCiBtc2dzdHIgIuaXoOazleWIoOmZpCAlcyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2MAorIzogYnVpbHRpbi9jbGVhbi5jOjI5MworbXNnaWQgIiIKKyJQcm9tcHQgaGVscDpcbiIKKyIxICAgICAgICAgIC0gc2VsZWN0IGEgbnVtYmVyZWQgaXRlbVxuIgorImZvbyAgICAgICAgLSBzZWxlY3QgaXRlbSBiYXNlZCBvbiB1bmlxdWUgcHJlZml4XG4iCisiICAgICAgICAgICAtIChlbXB0eSkgc2VsZWN0IG5vdGhpbmciCittc2dzdHIgIiIKKyLluK7liqnvvJpcbiIKKyIxICAgICAgICAgIC0g6YCa6L+H57yW5Y+36YCJ5oup5LiA5Liq6YCJ6aG5XG4iCisiZm9vICAgICAgICAtIOmAmui/h+agh+mimOmAieaLqeS4gOS4qumAiemhuVxuIgorIiAgICAgICAgICAgLSDvvIjnqbrvvInku4DkuYjkuZ/kuI3pgInmi6kiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTcKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCisiMy01ICAgICAgICAtIHNlbGVjdCBhIHJhbmdlIG9mIGl0ZW1zXG4iCisiMi0zLDYtOSAgICAtIHNlbGVjdCBtdWx0aXBsZSByYW5nZXNcbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIi0uLi4gICAgICAgLSB1bnNlbGVjdCBzcGVjaWZpZWQgaXRlbXNcbiIKKyIqICAgICAgICAgIC0gY2hvb3NlIGFsbCBpdGVtc1xuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmciCittc2dzdHIgIiIKKyLluK7liqnvvJpcbiIKKyIxICAgICAgICAgIC0g6YCJ5oup5LiA5Liq6YCJ6aG5XG4iCisiMy01ICAgICAgICAtIOmAieaLqeS4gOS4quiMg+WbtOWGheeahOaJgOaciemAiemhuVxuIgorIjItMyw2LTkgICAgLSDpgInmi6nlpJrkuKrojIPlm7TlhoXnmoTmiYDmnInpgInpoblcbiIKKyJmb28gICAgICAgIC0g6YCa6L+H5qCH6aKY6YCJ5oup5LiA5Liq6YCJ6aG5XG4iCisiLS4uLiAgICAgICAtIOWPjemAieeJueWumueahOmAiemhuVxuIgorIiogICAgICAgICAgLSDpgInmi6nmiYDmnInpgInpoblcbiIKKyIgICAgICAgICAgIC0g77yI56m677yJ57uT5p2f6YCJ5oupIgorCisjOiBidWlsdGluL2NsZWFuLmM6NTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkh1aCAoJXMpPyIKK21zZ3N0ciAi5Zev77yIJXPvvInvvJ8iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4gIgorbXNnc3RyICLovpPlhaXmqKHniYjku6XmjpLpmaTmnaHnm64+PiAiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogQ2Fubm90IGZpbmQgaXRlbXMgbWF0Y2hlZCBieTogJXMiCittc2dzdHIgIuitpuWRiu+8muaXoOazleaJvuWIsOWSjCAlcyDljLnphY3nmoTmnaHnm64iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3MTYKK21zZ2lkICJTZWxlY3QgaXRlbXMgdG8gZGVsZXRlIgorbXNnc3RyICLpgInmi6nopoHliKDpmaTnmoTmnaHnm64iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZlICVzPyAiCittc2dzdHIgIuWIoOmZpCAlc++8nyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjc4MQorbXNnaWQgIkJ5ZS4iCittc2dzdHIgIuWGjeingeOAgiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjc4OQorbXNnaWQgIiIKKyJjbGVhbiAgICAgICAgICAgICAgIC0gc3RhcnQgY2xlYW5pbmdcbiIKKyJmaWx0ZXIgYnkgcGF0dGVybiAgIC0gZXhjbHVkZSBpdGVtcyBmcm9tIGRlbGV0aW9uXG4iCisic2VsZWN0IGJ5IG51bWJlcnMgICAtIHNlbGVjdCBpdGVtcyB0byBiZSBkZWxldGVkIGJ5IG51bWJlcnNcbiIKKyJhc2sgZWFjaCAgICAgICAgICAgIC0gY29uZmlybSBlYWNoIGRlbGV0aW9uIChsaWtlIFwicm0gLWlcIilcbiIKKyJxdWl0ICAgICAgICAgICAgICAgIC0gc3RvcCBjbGVhbmluZ1xuIgorImhlbHAgICAgICAgICAgICAgICAgLSB0aGlzIHNjcmVlblxuIgorIj8gICAgICAgICAgICAgICAgICAgLSBoZWxwIGZvciBwcm9tcHQgc2VsZWN0aW9uIgorbXNnc3RyICIiCisiY2xlYW4gICAgICAgICAgICAgICAtIOW8gOWni+a4heeQhlxuIgorImZpbHRlciBieSBwYXR0ZXJuICAgLSDpgJrov4fmqKHniYjmjpLpmaTopoHliKDpmaTnmoTmnaHnm65cbiIKKyJzZWxlY3QgYnkgbnVtYmVycyAgIC0g6YCa6L+H5pWw5a2X6YCJ5oup6KaB5Yig6Zmk55qE5p2h55uuXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIOmSiOWvueWIoOmZpOmAkOS4gOivoumXru+8iOWwseWDjyBcInJtIC1pXCLvvIlcbiIKKyJxdWl0ICAgICAgICAgICAgICAgIC0g5YGc5q2i5Yig6Zmk5bm26YCA5Ye6XG4iCisiaGVscCAgICAgICAgICAgICAgICAtIOaYvuekuuacrOW4ruWKqVxuIgorIj8gICAgICAgICAgICAgICAgICAgLSDmmL7npLrlpoLkvZXlnKjmj5DnpLrnrKbkuIvpgInmi6nnmoTluK7liqkiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MTYKK21zZ2lkICIqKiogQ29tbWFuZHMgKioqIgorbXNnc3RyICIqKiog5ZG95LukICoqKiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgxNworbXNnaWQgIldoYXQgbm93IgorbXNnc3RyICLor7fpgInmi6kiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MjUKK21zZ2lkICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtOiIKK21zZ2lkX3BsdXJhbCAiV291bGQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgaXRlbXM6IgorbXNnc3RyWzBdICLlsIbliKDpmaTlpoLkuIvmnaHnm67vvJoiCittc2dzdHJbMV0gIuWwhuWIoOmZpOWmguS4i+adoeebru+8miIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg0MgorbXNnaWQgIk5vIG1vcmUgZmlsZXMgdG8gY2xlYW4sIGV4aXRpbmcuIgorbXNnc3RyICLmsqHmnInopoHmuIXnkIbnmoTmlofku7bvvIzpgIDlh7rjgIIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzQKIG1zZ2lkICJkbyBub3QgcHJpbnQgbmFtZXMgb2YgZmlsZXMgcmVtb3ZlZCIKIG1zZ3N0ciAi5LiN5omT5Y2w5Yig6Zmk5paH5Lu255qE5ZCN56ewIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTYyCisjOiBidWlsdGluL2NsZWFuLmM6ODc2CiBtc2dpZCAiZm9yY2UiCiBtc2dzdHIgIuW8uuWItiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NAorIzogYnVpbHRpbi9jbGVhbi5jOjg3NworbXNnaWQgImludGVyYWN0aXZlIGNsZWFuaW5nIgorbXNnc3RyICLkuqTkupLlvI/muIXpmaQiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzkKIG1zZ2lkICJyZW1vdmUgd2hvbGUgZGlyZWN0b3JpZXMiCiBtc2dzdHIgIuWIoOmZpOaVtOS4quebruW9lSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NSBidWlsdGluL2Rlc2NyaWJlLmM6NDEyIGJ1aWx0aW4vZ3JlcC5jOjcxNwotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NyBidWlsdGluL25hbWUtcmV2LmM6MjMxIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODIKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODAgYnVpbHRpbi9kZXNjcmliZS5jOjQyMCBidWlsdGluL2dyZXAuYzo3MTYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9uYW1lLXJldi5jOjMxNSBidWlsdGluL3Nob3ctcmVmLmM6MTg2CiBtc2dpZCAicGF0dGVybiIKIG1zZ3N0ciAi5qih5byPIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY2CisjOiBidWlsdGluL2NsZWFuLmM6ODgxCiBtc2dpZCAiYWRkIDxwYXR0ZXJuPiB0byBpZ25vcmUgcnVsZXMiCiBtc2dzdHIgIua3u+WKoDzmqKHlvI8+5Yiw5b+955Wl6KeE5YiZIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY3CisjOiBidWlsdGluL2NsZWFuLmM6ODgyCiBtc2dpZCAicmVtb3ZlIGlnbm9yZWQgZmlsZXMsIHRvbyIKIG1zZ3N0ciAi5Lmf5Yig6Zmk5b+955Wl55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY5CisjOiBidWlsdGluL2NsZWFuLmM6ODg0CiBtc2dpZCAicmVtb3ZlIG9ubHkgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAi5Y+q5Yig6Zmk5b+955Wl55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTg3CisjOiBidWlsdGluL2NsZWFuLmM6OTAyCiBtc2dpZCAiLXggYW5kIC1YIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICIteCDlkowgLVgg5LiN6IO95ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTkxCisjOiBidWlsdGluL2NsZWFuLmM6OTA2CiBtc2dpZCAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSBzZXQgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvIGNsZWFuIgotbXNnc3RyICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIOiuvue9ruS4uiB0cnVlIOS4lOacquaPkOS+myAtbiDmiJYgLWYg6YCJ6aG577yM5ouS57ud5omn6KGM5riF55CG5Yqo5L2cIgotCi0jOiBidWlsdGluL2NsZWFuLmM6MTk0Ci1tc2dpZCAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgorImNsZWFuLnJlcXVpcmVGb3JjZSBzZXQgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtaSwgLW4gbm9yIC1mIGdpdmVuOyByZWZ1c2luZyB0byAiCiAiY2xlYW4iCiBtc2dzdHIgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2Ug6buY6K6k5Li6IHRydWUg5LiU5pyq5o+Q5L6bIC1uIOaIliAtZiDpgInpobnvvIzmi5Lnu53miafooYzmuIXnkIbliqjkvZwiCisiY2xlYW4ucmVxdWlyZUZvcmNlIOiuvue9ruS4uiB0cnVlIOS4lOacquaPkOS+myAtaeOAgS1uIOaIliAtZiDpgInpobnvvIzmi5Lnu53miafooYzmuIXnkIbliqjkvZwiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNworIzogYnVpbHRpbi9jbGVhbi5jOjkwOQorbXNnaWQgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtaSwgLW4gbm9yIC1mIGdpdmVuOyAiCisicmVmdXNpbmcgdG8gY2xlYW4iCittc2dzdHIgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2Ug6buY6K6k5Li6IHRydWUg5LiU5pyq5o+Q5L6bIC1p44CBLW4g5oiWIC1mIOmAiemhue+8jOaLkue7neaJp+ihjOa4heeQhuWKqOS9nCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjM2CiBtc2dpZCAiZ2l0IGNsb25lIFtvcHRpb25zXSBbLS1dIDxyZXBvPiBbPGRpcj5dIgogbXNnc3RyICJnaXQgY2xvbmUgW+mAiemhuV0gWy0tXSA854mI5pys5bqTPiBbPOi3r+W+hD5dIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjUgYnVpbHRpbi9mZXRjaC5jOjgyIGJ1aWx0aW4vbWVyZ2UuYzoyMTQKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNgorIzogYnVpbHRpbi9jbG9uZS5jOjY0IGJ1aWx0aW4vZmV0Y2guYzo4MiBidWlsdGluL21lcmdlLmM6MjI5CisjOiBidWlsdGluL3B1c2guYzo0NjIKIG1zZ2lkICJmb3JjZSBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgIuW8uuWItuaYvuekuui/m+W6puaKpeWRiiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY3CisjOiBidWlsdGluL2Nsb25lLmM6NjYKIG1zZ2lkICJkb24ndCBjcmVhdGUgYSBjaGVja291dCIKIG1zZ3N0ciAi5LiN5Yib5bu65LiA5Liq5qOA5Ye6IgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjggYnVpbHRpbi9jbG9uZS5jOjcwIGJ1aWx0aW4vaW5pdC1kYi5jOjQ4OAorIzogYnVpbHRpbi9jbG9uZS5jOjY3IGJ1aWx0aW4vY2xvbmUuYzo2OSBidWlsdGluL2luaXQtZGIuYzo0ODgKIG1zZ2lkICJjcmVhdGUgYSBiYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuWIm+W7uuS4gOS4quijuOeJiOacrOW6kyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjczCisjOiBidWlsdGluL2Nsb25lLmM6NzIKIG1zZ2lkICJjcmVhdGUgYSBtaXJyb3IgcmVwb3NpdG9yeSAoaW1wbGllcyBiYXJlKSIKIG1zZ3N0ciAi5Yib5bu65LiA5Liq6ZWc5YOP54mI5pys5bqT77yI5Lmf5piv6KO454mI5pys5bqT77yJIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NAogbXNnaWQgInRvIGNsb25lIGZyb20gYSBsb2NhbCByZXBvc2l0b3J5IgogbXNnc3RyICLku47mnKzlnLDniYjmnKzlupPlhYvpmoYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjc2CiBtc2dpZCAiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiCiBtc2dzdHIgIuS4jeS9v+eUqOacrOWcsOehrOmTvuaOpe+8jOWni+e7iOWkjeWItiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5CisjOiBidWlsdGluL2Nsb25lLmM6NzgKIG1zZ2lkICJzZXR1cCBhcyBzaGFyZWQgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi6K6+572u5Li65YWx5Lqr54mI5pys5bqTIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODEgYnVpbHRpbi9jbG9uZS5jOjgzCisjOiBidWlsdGluL2Nsb25lLmM6ODAgYnVpbHRpbi9jbG9uZS5jOjgyCiBtc2dpZCAiaW5pdGlhbGl6ZSBzdWJtb2R1bGVzIGluIHRoZSBjbG9uZSIKIG1zZ3N0ciAi5Zyo5YWL6ZqG5pe25Yid5aeL5YyW5a2Q5qih57uEIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg1CisjOiBidWlsdGluL2Nsb25lLmM6ODMgYnVpbHRpbi9pbml0LWRiLmM6NDg1CiBtc2dpZCAidGVtcGxhdGUtZGlyZWN0b3J5IgogbXNnc3RyICLmqKHmnb/nm67lvZUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NSBidWlsdGluL2luaXQtZGIuYzo0ODYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODYKIG1zZ2lkICJkaXJlY3RvcnkgZnJvbSB3aGljaCB0ZW1wbGF0ZXMgd2lsbCBiZSB1c2VkIgogbXNnc3RyICLmqKHmnb/nm67lvZXlsIbooqvkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NworIzogYnVpbHRpbi9jbG9uZS5jOjg2CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuW8leeUqOeJiOacrOW6kyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg4IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NyBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CiBtc2dpZCAibmFtZSIKIG1zZ3N0ciAi5ZCN56ewIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4OAogbXNnaWQgInVzZSA8bmFtZT4gaW5zdGVhZCBvZiAnb3JpZ2luJyB0byB0cmFjayB1cHN0cmVhbSIKIG1zZ3N0ciAi5L2/55SoPOWQjeensD7ogIzkuI3mmK8gJ29yaWdpbicg5Y676Lef6Liq5LiK5ri4IgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MAogbXNnaWQgImNoZWNrb3V0IDxicmFuY2g+IGluc3RlYWQgb2YgdGhlIHJlbW90ZSdzIEhFQUQiCiBtc2dzdHIgIuajgOWHujzliIbmlK8+6ICM5LiN5piv6L+c56iLSEVBRCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzCisjOiBidWlsdGluL2Nsb25lLmM6OTIKIG1zZ2lkICJwYXRoIHRvIGdpdC11cGxvYWQtcGFjayBvbiB0aGUgcmVtb3RlIgogbXNnc3RyICLov5znqIsgZ2l0LXVwbG9hZC1wYWNrIOi3r+W+hCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk0IGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MyBidWlsdGluL2ZldGNoLmM6ODMgYnVpbHRpbi9ncmVwLmM6NjYxCiBtc2dpZCAiZGVwdGgiCiBtc2dzdHIgIua3seW6piIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk1CisjOiBidWlsdGluL2Nsb25lLmM6OTQKIG1zZ2lkICJjcmVhdGUgYSBzaGFsbG93IGNsb25lIG9mIHRoYXQgZGVwdGgiCiBtc2dzdHIgIuWIm+W7uuS4gOS4quaMh+Wumua3seW6pueahOa1heWFi+mahiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk3CisjOiBidWlsdGluL2Nsb25lLmM6OTYKIG1zZ2lkICJjbG9uZSBvbmx5IG9uZSBicmFuY2gsIEhFQUQgb3IgLS1icmFuY2giCiBtc2dzdHIgIuWPquWFi+mahuS4gOS4quWIhuaUr+OAgUhFQUQg5oiWIC0tYnJhbmNoIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTggYnVpbHRpbi9pbml0LWRiLmM6NDk0CisjOiBidWlsdGluL2Nsb25lLmM6OTcgYnVpbHRpbi9pbml0LWRiLmM6NDk0CiBtc2dpZCAiZ2l0ZGlyIgogbXNnc3RyICJnaXTnm67lvZUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OSBidWlsdGluL2luaXQtZGIuYzo0OTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5OCBidWlsdGluL2luaXQtZGIuYzo0OTUKIG1zZ2lkICJzZXBhcmF0ZSBnaXQgZGlyIGZyb20gd29ya2luZyB0cmVlIgogbXNnc3RyICJnaXTnm67lvZXlkozlt6XkvZzljLrliIbnprsiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoxMDAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5OQogbXNnaWQgImtleT12YWx1ZSIKIG1zZ3N0ciAia2V5PXZhbHVlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAxCisjOiBidWlsdGluL2Nsb25lLmM6MTAwCiBtc2dpZCAic2V0IGNvbmZpZyBpbnNpZGUgdGhlIG5ldyByZXBvc2l0b3J5IgogbXNnc3RyICLlnKjmlrDniYjmnKzlupPkuK3orr7nva7phY3nva7kv6Hmga8iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoyNTQKKyM6IGJ1aWx0aW4vY2xvbmUuYzoyNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBub3QgYSBsb2NhbCByZXBvc2l0b3J5LiIKIG1zZ3N0ciAi5byV55So54mI5pys5bqTICclcycg5LiN5piv5LiA5Liq5pys5Zyw54mI5pys5bqT44CCIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzE3CisjOiBidWlsdGluL2Nsb25lLmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgZGlyZWN0b3J5ICclcyciCiBtc2dzdHIgIuaXoOazleWIm+W7uuebruW9lSAnJXMnIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzE5IGJ1aWx0aW4vZGlmZi5jOjc3CisjOiBidWlsdGluL2Nsb25lLmM6MzE4IGJ1aWx0aW4vZGlmZi5jOjc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICclcyciCiBtc2dzdHIgIuaXoOazleaemuS4viAnJXMnIOeKtuaAgSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMyMQorIzogYnVpbHRpbi9jbG9uZS5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBleGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiJXMg5a2Y5Zyo5LiU5LiN5piv5LiA5Liq55uu5b2VIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzM1CisjOiBidWlsdGluL2Nsb25lLmM6MzM0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICVzXG4iCiBtc2dzdHIgIuaXoOazleaemuS4viAlcyDnirbmgIFcbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM1NworIzogYnVpbHRpbi9jbG9uZS5jOjM1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGxpbmsgJyVzJyIKIG1zZ3N0ciAi5peg5rOV5Yib5bu66ZO+5o6lICclcyciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNjEKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNvcHkgZmlsZSB0byAnJXMnIgogbXNnc3RyICLml6Dms5Xmi7fotJ3mlofku7boh7MgJyVzJyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM4NAorIzogYnVpbHRpbi9jbG9uZS5jOjM4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJkb25lLlxuIgogbXNnc3RyICLlrozmiJDjgIJcbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM5NworIzogYnVpbHRpbi9jbG9uZS5jOjM5NgogbXNnaWQgIiIKICJDbG9uZSBzdWNjZWVkZWQsIGJ1dCBjaGVja291dCBmYWlsZWQuXG4iCiAiWW91IGNhbiBpbnNwZWN0IHdoYXQgd2FzIGNoZWNrZWQgb3V0IHdpdGggJ2dpdCBzdGF0dXMnXG4iCkBAIC0zNTMzLDkwICszNzMxLDEwNCBAQAogIuaCqOWPr+S7pemAmui/hyAnZ2l0IHN0YXR1cycg5qOA5p+l5ZOq5Lqb5bey6KKr5qOA5Ye677yM54S25ZCO5L2/55So5ZG95LukXG4iCiAiJ2dpdCBjaGVja291dCAtZiBIRUFEJyDph43or5VcbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjQ3NgorIzogYnVpbHRpbi9jbG9uZS5jOjQ3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCByZW1vdGUgYnJhbmNoICVzIHRvIGNsb25lLiIKIG1zZ3N0ciAi5LiN6IO95Y+R546w6KaB5YWL6ZqG55qE6L+c56iL5YiG5pSvICVz44CCIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NTUwCisjOiBidWlsdGluL2Nsb25lLmM6NTU1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoZWNraW5nIGNvbm5lY3Rpdml0eS4uLiAiCittc2dzdHIgIuajgOafpei/nuaOpS4uLiAiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTgKIG1zZ2lkICJyZW1vdGUgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0cyIKIG1zZ3N0ciAi6L+c56iL5rKh5pyJ5Y+R6YCB5omA5pyJ5b+F6aG755qE5a+56LGhIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjEwCisjOiBidWlsdGluL2Nsb25lLmM6NTYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRvbmVcbiIKK21zZ3N0ciAi5a6M5oiQXG4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2MjEKIG1zZ2lkICJyZW1vdGUgSEVBRCByZWZlcnMgdG8gbm9uZXhpc3RlbnQgcmVmLCB1bmFibGUgdG8gY2hlY2tvdXQuXG4iCiBtc2dzdHIgIui/nOeoiyBIRUFEIOaMh+WQkeS4gOS4quS4jeWtmOWcqOeahOW8leeUqO+8jOaXoOazleajgOWHuuOAglxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjQxCisjOiBidWlsdGluL2Nsb25lLmM6NjUyCiBtc2dpZCAidW5hYmxlIHRvIGNoZWNrb3V0IHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAi5LiN6IO95qOA5Ye65bel5L2c5Yy6IgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzQ5CisjOiBidWlsdGluL2Nsb25lLmM6NzYwCiBtc2dpZCAiVG9vIG1hbnkgYXJndW1lbnRzLiIKIG1zZ3N0ciAi5aSq5aSa5Y+C5pWw44CCIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzUzCisjOiBidWlsdGluL2Nsb25lLmM6NzY0CiBtc2dpZCAiWW91IG11c3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgdG8gY2xvbmUuIgogbXNnc3RyICLmgqjlv4XpobvmjIflrprkuIDkuKrniYjmnKzlupPmnaXlhYvpmobjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NjQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiLS1iYXJlIGFuZCAtLW9yaWdpbiAlcyBvcHRpb25zIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICItLWJhcmUg5ZKMIC0tb3JpZ2luICVzIOmAiemhueS4jeWFvOWuueOAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc2NworIzogYnVpbHRpbi9jbG9uZS5jOjc3OAogbXNnaWQgIi0tYmFyZSBhbmQgLS1zZXBhcmF0ZS1naXQtZGlyIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICItLWJhcmUg5ZKMIC0tc2VwYXJhdGUtZ2l0LWRpciDpgInpobnkuI3lhbzlrrnjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVwb3NpdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICLniYjmnKzlupMgJyVzJyDkuI3lrZjlnKgiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTYKIG1zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKIG1zZ3N0ciAiLS1kZXB0aCDlnKjmnKzlnLDlhYvpmobooqvlv73nlaXvvIzmlLnkuLogZmlsZTovLyDljY/orq7or5Xor5XjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTgKK21zZ2lkICItLWxvY2FsIGlzIGlnbm9yZWQiCittc2dzdHIgIi0tbG9jYWwg6KKr5b+955WlIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODA4CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlc3RpbmF0aW9uIHBhdGggJyVzJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGFuIGVtcHR5IGRpcmVjdG9yeS4iCiBtc2dzdHIgIuebruagh+i3r+W+hCAnJXMnIOW3sue7j+WtmOWcqO+8jOW5tuS4lOS4jeaYr+S4gOS4quepuuebruW9leOAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgwNQorIzogYnVpbHRpbi9jbG9uZS5jOjgxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ3b3JraW5nIHRyZWUgJyVzJyBhbHJlYWR5IGV4aXN0cy4iCiBtc2dzdHIgIuW3peS9nOWMuiAnJXMnIOW3sue7j+WtmOWcqOOAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxOCBidWlsdGluL2Nsb25lLmM6ODMwCisjOiBidWlsdGluL2Nsb25lLmM6ODMxIGJ1aWx0aW4vY2xvbmUuYzo4NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSBsZWFkaW5nIGRpcmVjdG9yaWVzIG9mICclcyciCiBtc2dzdHIgIuS4jeiDveS4uiAnJXMnIOWIm+W7uuWFiOWvvOebruW9lSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgyMQorIzogYnVpbHRpbi9jbG9uZS5jOjgzNAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIHdvcmsgdHJlZSBkaXIgJyVzJy4iCiBtc2dzdHIgIuS4jeiDveS4uiAnJXMnIOWIm+W7uuW3peS9nOWMuuebruW9leOAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0MAorIzogYnVpbHRpbi9jbG9uZS5jOjg1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gYmFyZSByZXBvc2l0b3J5ICclcycuLi5cbiIKIG1zZ3N0ciAi5YWL6ZqG5Yiw6KO454mI5pys5bqTICclcycuLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0MgorIzogYnVpbHRpbi9jbG9uZS5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gJyVzJy4uLlxuIgogbXNnc3RyICLmraPlhYvpmobliLAgJyVzJy4uLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODc3CisjOiBidWlsdGluL2Nsb25lLmM6ODkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGNsb25lICVzIgogbXNnc3RyICLkuI3nn6XpgZPlpoLkvZXlhYvpmoYgJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MjYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3RlIGJyYW5jaCAlcyBub3QgZm91bmQgaW4gdXBzdHJlYW0gJXMiCiBtc2dzdHIgIui/nOeoi+WIhuaUryAlcyDlnKjkuIrmuLggJXMg5pyq5Y+R546wIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTMzCisjOiBidWlsdGluL2Nsb25lLmM6OTQ5CiBtc2dpZCAiWW91IGFwcGVhciB0byBoYXZlIGNsb25lZCBhbiBlbXB0eSByZXBvc2l0b3J5LiIKIG1zZ3N0ciAi5oKo5Ly85LmO5YWL6ZqG5LqG5LiA5Liq56m654mI5pys5bqT44CCIgogCkBAIC0zNjUyLDE1ICszODY0LDE1IEBACiBtc2dpZCAiLS1jb21tYW5kIG11c3QgYmUgdGhlIGZpcnN0IGFyZ3VtZW50IgogbXNnc3RyICItLWNvbW1hbmQg5b+F6aG75piv56ys5LiA5Liq5Y+C5pWwIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM0CisjOiBidWlsdGluL2NvbW1pdC5jOjM1CiBtc2dpZCAiZ2l0IGNvbW1pdCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgY29tbWl0IFvpgInpobldIFstLV0gPOi3r+W+hOWMuemFjT4uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDAKIG1zZ2lkICJnaXQgc3RhdHVzIFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiBtc2dzdHIgImdpdCBzdGF0dXMgW+mAiemhuV0gWy0tXSA86Lev5b6E5Yy56YWNPi4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0NAorIzogYnVpbHRpbi9jb21taXQuYzo0NQogbXNnaWQgIiIKICJZb3VyIG5hbWUgYW5kIGVtYWlsIGFkZHJlc3Mgd2VyZSBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWRcbiIKICJvbiB5b3VyIHVzZXJuYW1lIGFuZCBob3N0bmFtZS4gUGxlYXNlIGNoZWNrIHRoYXQgdGhleSBhcmUgYWNjdXJhdGUuXG4iCkBAIC0zNjgzLDcgKzM4OTUsNyBAQAogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYW1lbmQgLS1yZXNldC1hdXRob3JcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NgorIzogYnVpbHRpbi9jb21taXQuYzo1NwogbXNnaWQgIiIKICJZb3UgYXNrZWQgdG8gYW1lbmQgdGhlIG1vc3QgcmVjZW50IGNvbW1pdCwgYnV0IGRvaW5nIHNvIHdvdWxkIG1ha2VcbiIKICJpdCBlbXB0eS4gWW91IGNhbiByZXBlYXQgeW91ciBjb21tYW5kIHdpdGggLS1hbGxvdy1lbXB0eSwgb3IgeW91IGNhblxuIgpAQCAtMzY5MiwxMDkgKzM5MDQsMTI3IEBACiAi5oKo6KaB5L+u6KGl5pyA6L+R55qE5o+Q5Lqk77yM5L2G6L+Z5LmI5YGa5Lya6K6p5a6D5oiQ5Li656m65o+Q5Lqk44CC5oKo5Y+v5Lul6YeN5aSN5oKo55qE5ZG95Luk5bm25bim5LiKXG4iCiAiLS1hbGxvdy1lbXB0eSDpgInpobnvvIzmiJbogIXmgqjlj6/nlKjlkb3ku6QgXCJnaXQgcmVzZXQgSEVBRF5cIiDmlbTkuKrliKDpmaTor6Xmj5DkuqTjgIJcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MQorIzogYnVpbHRpbi9jb21taXQuYzo2MgogbXNnaWQgIiIKICJUaGUgcHJldmlvdXMgY2hlcnJ5LXBpY2sgaXMgbm93IGVtcHR5LCBwb3NzaWJseSBkdWUgdG8gY29uZmxpY3QgcmVzb2x1dGlvbi5cbiIKICJJZiB5b3Ugd2lzaCB0byBjb21taXQgaXQgYW55d2F5LCB1c2U6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgogbXNnc3RyICIiCiAi5LmL5YmN55qE5ouj6YCJ5pON5L2c546w5Zyo5piv5LiA5Liq56m65o+Q5Lqk77yM5Y+v6IO95piv55Sx5Yay56qB6Kej5Yaz5a+86Ie055qE44CC5aaC5p6c5oKo5peg6K665aaC5L2VXG4iCiAi5Lmf6KaB5o+Q5Lqk77yM5L2/55So5ZG95Luk77yaXG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIuWQpuWIme+8jOivt+S9v+eUqOWRveS7pCAnZ2l0IHJlc2V0J1xuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjI2MAorIzogYnVpbHRpbi9jb21taXQuYzo2OQorbXNnaWQgIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgorbXNnc3RyICLlkKbliJnvvIzor7fkvb/nlKjlkb3ku6QgJ2dpdCByZXNldCdcbiIKKworIzogYnVpbHRpbi9jb21taXQuYzo3MgorbXNnaWQgIiIKKyJJZiB5b3Ugd2lzaCB0byBza2lwIHRoaXMgY29tbWl0LCB1c2U6XG4iCisiXG4iCisiICAgIGdpdCByZXNldFxuIgorIlxuIgorIlRoZW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiIHdpbGwgcmVzdW1lIGNoZXJyeS1waWNraW5nXG4iCisidGhlIHJlbWFpbmluZyBjb21taXRzLlxuIgorbXNnc3RyICIiCisi5aaC5p6c5oKo5oOz6Lez6L+H6L+Z5Liq5o+Q5Lqk77yM5L2/55So5ZG95Luk77yaXG4iCisiXG4iCisiICAgIGdpdCByZXNldFxuIgorIlxuIgorIueEtuWQjuaJp+ihjCBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIg57un57ut5a+55YW25L2Z5o+Q5Lqk5omn6KGM5ouj6YCJXG4iCisi5pON5L2c44CCXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Mjc5CiBtc2dpZCAiZmFpbGVkIHRvIHVucGFjayBIRUFEIHRyZWUgb2JqZWN0IgogbXNnc3RyICLml6Dms5Xop6PljIUgSEVBRCDmoJHlr7nosaEiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzAyCisjOiBidWlsdGluL2NvbW1pdC5jOjMyMQogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGluZGV4IgogbXNnc3RyICLkuI3og73liJvlu7rkuLTml7bntKLlvJUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzA4CisjOiBidWlsdGluL2NvbW1pdC5jOjMyNwogbXNnaWQgImludGVyYWN0aXZlIGFkZCBmYWlsZWQiCiBtc2dzdHIgIuS6pOS6kuW8j+a3u+WKoOWksei0pSIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNDEgYnVpbHRpbi9jb21taXQuYzozNjIgYnVpbHRpbi9jb21taXQuYzo0MTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzYwIGJ1aWx0aW4vY29tbWl0LmM6MzgxIGJ1aWx0aW4vY29tbWl0LmM6NDMxCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ld19pbmRleCBmaWxlIgogbXNnc3RyICLml6Dms5XlhpkgbmV3X2luZGV4IOaWh+S7tiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDEyCiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgbWVyZ2UuIgogbXNnc3RyICLlnKjlkIjlubbov4fnqIvkuK3kuI3og73lgZrpg6jliIbmj5DkuqTjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6Mzk1CisjOiBidWlsdGluL2NvbW1pdC5jOjQxNAogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIGNoZXJyeS1waWNrLiIKIG1zZ3N0ciAi5Zyo5ouj6YCJ6L+H56iL5Lit5LiN6IO95YGa6YOo5YiG5o+Q5Lqk44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQwNQorIzogYnVpbHRpbi9jb21taXQuYzo0MjQKIG1zZ2lkICJjYW5ub3QgcmVhZCB0aGUgaW5kZXgiCiBtc2dzdHIgIuaXoOazleivu+WPlue0ouW8lSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDQ0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRlbXBvcmFyeSBpbmRleCBmaWxlIgogbXNnc3RyICLml6Dms5XlhpnkuLTml7bntKLlvJXmlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTEzIGJ1aWx0aW4vY29tbWl0LmM6NTE5CisjOiBidWlsdGluL2NvbW1pdC5jOjUzNSBidWlsdGluL2NvbW1pdC5jOjU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGNvbW1pdDogJXMiCiBtc2dzdHIgIuaXoOaViOeahOaPkOS6pO+8miVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU0MgorIzogYnVpbHRpbi9jb21taXQuYzo1NjMKIG1zZ2lkICJtYWxmb3JtZWQgLS1hdXRob3IgcGFyYW1ldGVyIgogbXNnc3RyICLpnZ7ms5XnmoQgLS1hdXRob3Ig5Y+C5pWwIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU2MgorIzogYnVpbHRpbi9jb21taXQuYzo1ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlkZW50IHN0cmluZzogJyVzJyIKIG1zZ3N0ciAi6Z2e5rOV55qE6Lqr5Lu95a2X56ym5Liy77yaJyVzJyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MDAgYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9jb21taXQuYzo5NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjIxIGJ1aWx0aW4vY29tbWl0LmM6NjU0IGJ1aWx0aW4vY29tbWl0LmM6OTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBsb29rdXAgY29tbWl0ICVzIgogbXNnc3RyICLkuI3og73mn6Xor6Lmj5DkuqQgJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjEyIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiKHJlYWRpbmcgbG9nIG1lc3NhZ2UgZnJvbSBzdGFuZGFyZCBpbnB1dClcbiIKIG1zZ3N0ciAi77yI5q2j5LuO5qCH5YeG6L6T5YWl5Lit6K+75Y+W5pel5b+X5L+h5oGv77yJXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjE0CisjOiBidWlsdGluL2NvbW1pdC5jOjYzNQogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmcm9tIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICLkuI3og73ku47moIflh4bovpPlhaXkuK3or7vlj5bml6Xlv5fkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjE4CisjOiBidWlsdGluL2NvbW1pdC5jOjYzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZmlsZSAnJXMnIgogbXNnc3RyICLkuI3og73or7vlj5bml6Xlv5fmlofku7YgJyVzJyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MjQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ1CiBtc2dpZCAiY29tbWl0IGhhcyBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICLmj5DkuqTor7TmmI7kuLrnqboiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQwCisjOiBidWlsdGluL2NvbW1pdC5jOjY2MQogbXNnaWQgImNvdWxkIG5vdCByZWFkIE1FUkdFX01TRyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WIE1FUkdFX01TRyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjY1CiBtc2dpZCAiY291bGQgbm90IHJlYWQgU1FVQVNIX01TRyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WIFNRVUFTSF9NU0ciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ4CisjOiBidWlsdGluL2NvbW1pdC5jOjY2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCAnJXMnIgogbXNnc3RyICLkuI3og73or7vlj5YgJyVzJyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzMwCiBtc2dpZCAiY291bGQgbm90IHdyaXRlIGNvbW1pdCB0ZW1wbGF0ZSIKIG1zZ3N0ciAi5LiN6IO95YaZ5o+Q5Lqk5qih54mIIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcyMAorIzogYnVpbHRpbi9jb21taXQuYzo3NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMzgwOCw3ICs0MDM4LDcgQEAKICJcdCVzXG4iCiAi54S25ZCO6YeN6K+V44CCXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzI1CisjOiBidWlsdGluL2NvbW1pdC5jOjc0NgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC0zODIyLDcgKzQwNTIsNyBAQAogIlx0JXNcbiIKICLnhLblkI7ph43or5XjgIJcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nXG4iCkBAIC0zODMxLDcgKzQwNjEsNyBAQAogIuivt+S4uuaCqOeahOWPmOabtOi+k+WFpeaPkOS6pOivtOaYjuOAguS7pSAnJWMnIOW8gOWni+eahOihjOWwhuiiq+W/veeVpe+8jOiAjOS4gOS4quepuueahOaPkOS6pFxuIgogIuivtOaYjuWwhuS8mue7iOatouaPkOS6pOOAglxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc0MgorIzogYnVpbHRpbi9jb21taXQuYzo3NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKQEAgLTM4NDIsMzU1ICs0MDcyLDM1NSBAQAogIuS5n+WPr+S7peWIoOmZpOWug+S7rOOAguS4gOS4quepuueahOaPkOS6pOivtOaYjuWwhuS8mue7iOatouaPkOS6pOOAglxuIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzU1CisjOiBidWlsdGluL2NvbW1pdC5jOjc3NgogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0F1dGhvcjogICAgJXMiCiBtc2dzdHIgIiVz5L2c6ICF77yaICAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiBidWlsdGluL2NvbW1pdC5jOjc2MgorIzogYnVpbHRpbi9jb21taXQuYzo3ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNDb21taXR0ZXI6ICVzIgogbXNnc3RyICIlc+aPkOS6pOiAhe+8miAgICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc4MgorIzogYnVpbHRpbi9jb21taXQuYzo4MDMKIG1zZ2lkICJDYW5ub3QgcmVhZCBpbmRleCIKIG1zZ3N0ciAi5peg5rOV6K+75Y+W57Si5byVIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjgxOQorIzogYnVpbHRpbi9jb21taXQuYzo4NDUKIG1zZ2lkICJFcnJvciBidWlsZGluZyB0cmVlcyIKIG1zZ3N0ciAi5peg5rOV5Yib5bu65qCR5a+56LGhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjgzNCBidWlsdGluL3RhZy5jOjM1OQorIzogYnVpbHRpbi9jb21taXQuYzo4NjAgYnVpbHRpbi90YWcuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUGxlYXNlIHN1cHBseSB0aGUgbWVzc2FnZSB1c2luZyBlaXRoZXIgLW0gb3IgLUYgb3B0aW9uLlxuIgogbXNnc3RyICLor7fkvb/nlKggLW0g5oiWIC1GIOmAiemhueaPkOS+m+aPkOS6pOivtOaYjuOAglxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjkzMQorIzogYnVpbHRpbi9jb21taXQuYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gZXhpc3RpbmcgYXV0aG9yIGZvdW5kIHdpdGggJyVzJyIKIG1zZ3N0ciAi5rKh5pyJ5om+5Yiw5Yy56YWNICclcycg55qE5L2c6ICFIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk0NiBidWlsdGluL2NvbW1pdC5jOjExNDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTcyIGJ1aWx0aW4vY29tbWl0LmM6MTIwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHVudHJhY2tlZCBmaWxlcyBtb2RlICclcyciCiBtc2dzdHIgIuaXoOaViOeahOacqui/vei4quaWh+S7tuWPguaVsCAnJXMnIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk3NgorIzogYnVpbHRpbi9jb21taXQuYzoxMDA5Cittc2dpZCAiLS1sb25nIGFuZCAteiBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICItLWxvbmcg5ZKMIC16IOmAiemhueS4jeWFvOWuuSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDM5CiBtc2dpZCAiVXNpbmcgYm90aCAtLXJlc2V0LWF1dGhvciBhbmQgLS1hdXRob3IgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAi5ZCM5pe25L2/55SoIC0tcmVzZXQtYXV0aG9yIOWSjCAtLWF1dGhvciDmsqHmnInmhI/kuYkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTg3CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTAKIG1zZ2lkICJZb3UgaGF2ZSBub3RoaW5nIHRvIGFtZW5kLiIKIG1zZ3N0ciAi5oKo5rKh5pyJ5Y+v5L+u6KGl55qE5o+Q5Lqk44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5MAorIzogYnVpbHRpbi9jb21taXQuYzoxMDUzCiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UgLS0gY2Fubm90IGFtZW5kLiIKIG1zZ3N0ciAi5oKo5q2j5aSE5LqO5LiA5Liq5ZCI5bm26L+H56iL5LitIC0tIOaXoOazleS/ruihpeaPkOS6pOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5OTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1NQogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGNoZXJyeS1waWNrIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIuaCqOato+WkhOS6juS4gOS4quaLo+mAiei/h+eoi+S4rSAtLSDml6Dms5Xkv67ooaXmj5DkuqTjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTk1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTgKIG1zZ2lkICJPcHRpb25zIC0tc3F1YXNoIGFuZCAtLWZpeHVwIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICLpgInpobkgLS1zcXVhc2gg5ZKMIC0tZml4dXAg5LiN6IO95ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA2OAogbXNnaWQgIk9ubHkgb25lIG9mIC1jLy1DLy1GLy0tZml4dXAgY2FuIGJlIHVzZWQuIgogbXNnc3RyICLlj6rog73nlKjkuIDkuKogLWMvLUMvLUYvLS1maXh1cCDpgInpobnjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNworIzogYnVpbHRpbi9jb21taXQuYzoxMDcwCiBtc2dpZCAiT3B0aW9uIC1tIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIC1jLy1DLy1GLy0tZml4dXAuIgogbXNnc3RyICLpgInpobkgLW0g5LiN6IO95ZKMIC1jLy1DLy1GLy0tZml4dXAg5ZCM5pe25L2/55So44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3OAogbXNnaWQgIi0tcmVzZXQtYXV0aG9yIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCAtQywgLWMgb3IgLS1hbWVuZC4iCiBtc2dzdHIgIi0tcmVzZXQtYXV0aG9yIOWPquiDveWSjCAtQ+OAgS1jIOaIliAtLWFtZW5kIOWQjOaXtuS9v+eUqOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDMyCisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTUKIG1zZ2lkICJPbmx5IG9uZSBvZiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIuWPquiDveeUqOS4gOS4qiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCDpgInpobnjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNAorIzogYnVpbHRpbi9jb21taXQuYzoxMDk3CiBtc2dpZCAiTm8gcGF0aHMgd2l0aCAtLWluY2x1ZGUvLS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICLlj4LmlbAgLS1pbmNsdWRlLy0tb25seSDkuI3ot5/ot6/lvoTmsqHmnInmhI/kuYnjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNgorIzogYnVpbHRpbi9jb21taXQuYzoxMDk5CiBtc2dpZCAiQ2xldmVyLi4uIGFtZW5kaW5nIHRoZSBsYXN0IG9uZSB3aXRoIGRpcnR5IGluZGV4LiIKIG1zZ3N0ciAi6IGq5piOLi4uIOWcqOe0ouW8leS4jeW5suWHgOS4i+S/ruihpeacgOWQjueahOaPkOS6pOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM4CisjOiBidWlsdGluL2NvbW1pdC5jOjExMDEKIG1zZ2lkICJFeHBsaWNpdCBwYXRocyBzcGVjaWZpZWQgd2l0aG91dCAtaSBub3IgLW87IGFzc3VtaW5nIC0tb25seSBwYXRocy4uLiIKIG1zZ3N0ciAi5oyH5a6a5LqG5piO56Gu55qE6Lev5b6E6ICM5rKh5pyJ5L2/55SoIC1pIOaIliAtbyDpgInpobnvvJvorqTkuLrmmK8gLS1vbmx5IHBhdGhzLi4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNDggYnVpbHRpbi90YWcuYzo1NzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTExMSBidWlsdGluL3RhZy5jOjU3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGNsZWFudXAgbW9kZSAlcyIKIG1zZ3N0ciAi5peg5pWI55qE5riF55CG5qih5byPICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTExNgogbXNnaWQgIlBhdGhzIHdpdGggLWEgZG9lcyBub3QgbWFrZSBzZW5zZS4iCiBtc2dzdHIgIui3r+W+hOWSjCAtYSDpgInpobnlkIzml7bkvb/nlKjmsqHmnInmhI/kuYnjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1OSBidWlsdGluL2NvbW1pdC5jOjExOTQKLW1zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCi1tc2dzdHIgIi0tbG9uZyDlkowgLXog6YCJ6aG55LiN5YW85a65IgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTQgYnVpbHRpbi9jb21taXQuYzoxMzkwCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjIgYnVpbHRpbi9jb21taXQuYzoxNDU1CiBtc2dpZCAic2hvdyBzdGF0dXMgY29uY2lzZWx5IgogbXNnc3RyICLku6XnroDmtIHnmoTmoLzlvI/mmL7npLrnirbmgIEiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1NiBidWlsdGluL2NvbW1pdC5jOjEzOTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNCBidWlsdGluL2NvbW1pdC5jOjE0NTcKIG1zZ2lkICJzaG93IGJyYW5jaCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAi5pi+56S65YiG5pSv5L+h5oGvIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTggYnVpbHRpbi9jb21taXQuYzoxMzk0IGJ1aWx0aW4vcHVzaC5jOjQyNgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI2IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OSBidWlsdGluL3B1c2guYzo0NTIKIG1zZ2lkICJtYWNoaW5lLXJlYWRhYmxlIG91dHB1dCIKIG1zZ3N0ciAi5py65Zmo5Y+v6K+755qE6L6T5Ye6IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjEgYnVpbHRpbi9jb21taXQuYzoxMzk2CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjkgYnVpbHRpbi9jb21taXQuYzoxNDYxCiBtc2dpZCAic2hvdyBzdGF0dXMgaW4gbG9uZyBmb3JtYXQgKGRlZmF1bHQpIgogbXNnc3RyICLku6Xplb/moLzlvI/mmL7npLrnirbmgIHvvIjpu5jorqTvvIkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NCBidWlsdGluL2NvbW1pdC5jOjEzOTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzMiBidWlsdGluL2NvbW1pdC5jOjE0NjQKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCIKIG1zZ3N0ciAi5p2h55uu5LulTlVM5a2X56ym57uT5bC+IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjYgYnVpbHRpbi9jb21taXQuYzoxNDAyIGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTkKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjIgYnVpbHRpbi90YWcuYzo0NTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNCBidWlsdGluL2NvbW1pdC5jOjE0NjcgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MCBidWlsdGluL3RhZy5jOjQ1OQogbXNnaWQgIm1vZGUiCiBtc2dzdHIgIuaooeW8jyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY3IGJ1aWx0aW4vY29tbWl0LmM6MTQwMgorIzogYnVpbHRpbi9jb21taXQuYzoxMjM1IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NwogbXNnaWQgInNob3cgdW50cmFja2VkIGZpbGVzLCBvcHRpb25hbCBtb2RlczogYWxsLCBub3JtYWwsIG5vLiAoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAi5pi+56S65pyq6Lef6Liq55qE5paH5Lu277yM4oCc5qih5byP4oCd55qE5Y+v6YCJ5Y+C5pWw77yaYWxs44CBbm9ybWFs44CBbm/jgILvvIjpu5jorqTvvJphbGzvvIkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MAorIzogYnVpbHRpbi9jb21taXQuYzoxMjM4CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICLmmL7npLrlv73nlaXnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MSBwYXJzZS1vcHRpb25zLmg6MTUxCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzkgcGFyc2Utb3B0aW9ucy5oOjE1NAogbXNnaWQgIndoZW4iCiBtc2dzdHIgIuS9leaXtiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTcyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyNDAKIG1zZ2lkICIiCiAiaWdub3JlIGNoYW5nZXMgdG8gc3VibW9kdWxlcywgb3B0aW9uYWwgd2hlbjogYWxsLCBkaXJ0eSwgdW50cmFja2VkLiAiCiAiKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgIiIKICLlv73nlaXlrZDmqKHnu4TnmoTmm7TmlLnvvIzigJzkvZXml7bigJ3nmoTlj6/pgInlj4LmlbDvvJphbGzjgIFkaXJ0eeOAgXVudHJhY2tlZOOAgu+8iOm7mOiupO+8mmFsbO+8iSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTc0CisjOiBidWlsdGluL2NvbW1pdC5jOjEyNDIKIG1zZ2lkICJsaXN0IHVudHJhY2tlZCBmaWxlcyBpbiBjb2x1bW5zIgogbXNnc3RyICLku6XliJfnmoTmlrnlvI/mmL7npLrmnKrot5/ouKrnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0OAorIzogYnVpbHRpbi9jb21taXQuYzoxMzEzCiBtc2dpZCAiY291bGRuJ3QgbG9vayB1cCBuZXdseSBjcmVhdGVkIGNvbW1pdCIKIG1zZ3N0ciAi5peg5rOV5om+5Yiw5paw5Yib5bu655qE5o+Q5LqkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxNQogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBuZXdseSBjcmVhdGVkIGNvbW1pdCIKIG1zZ3N0ciAi5LiN6IO96Kej5p6Q5paw5Yib5bu655qE5o+Q5LqkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyOTEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1NgogbXNnaWQgImRldGFjaGVkIEhFQUQiCiBtc2dzdHIgIuWIhuemu+WktOaMh+mSiCIKIAogIyAg6K+R6ICF77ya5Lit5paH5a2X56ym5Liy5ou85o6l77yM5Y+v5Yig6Zmk5YmN5a+856m65qC8Ci0jOiBidWlsdGluL2NvbW1pdC5jOjEyOTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1OAogbXNnaWQgIiAocm9vdC1jb21taXQpIgogbXNnc3RyICLvvIjmoLnmj5DkuqTvvIkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDI1CiBtc2dpZCAic3VwcHJlc3Mgc3VtbWFyeSBhZnRlciBzdWNjZXNzZnVsIGNvbW1pdCIKIG1zZ3N0ciAi5o+Q5Lqk5oiQ5Yqf5ZCO5LiN5pi+56S65qaC6L+w5L+h5oGvIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyNgogbXNnaWQgInNob3cgZGlmZiBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKIG1zZ3N0ciAi5Zyo5o+Q5Lqk6K+05piO5qih5p2/6YeM5pi+56S65beu5byCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyOAogbXNnaWQgIkNvbW1pdCBtZXNzYWdlIG9wdGlvbnMiCiBtc2dzdHIgIuaPkOS6pOivtOaYjumAiemhuSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY0IGJ1aWx0aW4vdGFnLmM6NDU3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjkgYnVpbHRpbi90YWcuYzo0NTcKIG1zZ2lkICJyZWFkIG1lc3NhZ2UgZnJvbSBmaWxlIgogbXNnc3RyICLku47mlofku7bkuK3or7vlj5bmj5DkuqTor7TmmI4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCiBtc2dpZCAiYXV0aG9yIgogbXNnc3RyICLkvZzogIUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCiBtc2dpZCAib3ZlcnJpZGUgYXV0aG9yIGZvciBjb21taXQiCiBtc2dzdHIgIuaPkOS6pOaXtuimhuebluS9nOiAhSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY2IGJ1aWx0aW4vZ2MuYzoxNzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMSBidWlsdGluL2djLmM6MTc4CiBtc2dpZCAiZGF0ZSIKIG1zZ3N0ciAi5pel5pyfIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMQogbXNnaWQgIm92ZXJyaWRlIGRhdGUgZm9yIGNvbW1pdCIKIG1zZ3N0ciAi5o+Q5Lqk5pe26KaG55uW5pel5pyfIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjcgYnVpbHRpbi9tZXJnZS5jOjIwOCBidWlsdGluL25vdGVzLmM6NTMzCi0jOiBidWlsdGluL25vdGVzLmM6NjkwIGJ1aWx0aW4vdGFnLmM6NDU1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzIgYnVpbHRpbi9tZXJnZS5jOjIyMyBidWlsdGluL25vdGVzLmM6NDA1CisjOiBidWlsdGluL25vdGVzLmM6NTYyIGJ1aWx0aW4vdGFnLmM6NDU1CiBtc2dpZCAibWVzc2FnZSIKIG1zZ3N0ciAi6K+05piOIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMgogbXNnaWQgImNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICLmj5DkuqTor7TmmI4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDMzCiBtc2dpZCAicmV1c2UgYW5kIGVkaXQgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIumHjeeUqOW5tue8lui+keaMh+WumuaPkOS6pOeahOaPkOS6pOivtOaYjiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzQKIG1zZ2lkICJyZXVzZSBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAi6YeN55So5oyH5a6a5o+Q5Lqk55qE5o+Q5Lqk6K+05piOIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNQogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIGZpeHVwIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIuS9v+eUqCBhdXRvc3F1YXNoIOagvOW8j+eahOaPkOS6pOivtOaYjueUqOS7peS/ruato+aMh+WumueahOaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzYKIG1zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBzcXVhc2ggc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAi5L2/55SoIGF1dG9zcXVhc2gg5qC85byP55qE5o+Q5Lqk6K+05piO55So5Lul5Y6L57yp6Iez5oyH5a6a55qE5o+Q5LqkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNwogbXNnaWQgInRoZSBjb21taXQgaXMgYXV0aG9yZWQgYnkgbWUgbm93ICh1c2VkIHdpdGggLUMvLWMvLS1hbWVuZCkiCiBtc2dzdHIgIueOsOWcqOWwhuivpeaPkOS6pOeahOS9nOiAheaUueS4uuaIke+8iOWSjCAtQy8tYy8tLWFtZW5kIOWPguaVsOWFseeUqO+8iSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzczIGJ1aWx0aW4vbG9nLmM6MTExMyBidWlsdGluL3JldmVydC5jOjEwOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM4IGJ1aWx0aW4vbG9nLmM6MTE2MCBidWlsdGluL3JldmVydC5jOjExMQogbXNnaWQgImFkZCBTaWduZWQtb2ZmLWJ5OiIKIG1zZ3N0ciAi5re75YqgIFNpZ25lZC1vZmYtYnk6IOetvuWQjSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzkKIG1zZ2lkICJ1c2Ugc3BlY2lmaWVkIHRlbXBsYXRlIGZpbGUiCiBtc2dzdHIgIuS9v+eUqOaMh+WumueahOaooeadv+aWh+S7tiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDAKIG1zZ2lkICJmb3JjZSBlZGl0IG9mIGNvbW1pdCIKIG1zZ3N0ciAi5by65Yi257yW6L6R5o+Q5LqkIgogCiAjICDor5HogIXvvJrlj6/pgInlgLzvvIzkuI3og73nv7vor5HvvIjmiJbmmK/ljp/mlofkuK3nrJTor6/vvIzlupTkuLogbW9kZe+8iQotIzogYnVpbHRpbi9jb21taXQuYzoxMzc2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKIG1zZ2lkICJkZWZhdWx0IgogbXNnc3RyICJkZWZhdWx0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzYgYnVpbHRpbi90YWcuYzo0NjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MSBidWlsdGluL3RhZy5jOjQ2MAogbXNnaWQgImhvdyB0byBzdHJpcCBzcGFjZXMgYW5kICNjb21tZW50cyBmcm9tIG1lc3NhZ2UiCiBtc2dzdHIgIuiuvue9ruWmguS9leWIoOmZpOaPkOS6pOivtOaYjumHjOeahOepuuagvOWSjCPms6jph4oiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NworIzogYnVpbHRpbi9jb21taXQuYzoxNDQyCiBtc2dpZCAiaW5jbHVkZSBzdGF0dXMgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCiBtc2dzdHIgIuWcqOaPkOS6pOivtOaYjuaooeadv+mHjOWMheWQq+eKtuaAgeS/oeaBryIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc4IGJ1aWx0aW4vbWVyZ2UuYzoyMTUgYnVpbHRpbi90YWcuYzo0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MyBidWlsdGluL21lcmdlLmM6MjMwIGJ1aWx0aW4vdGFnLmM6NDYxCiBtc2dpZCAia2V5IGlkIgogbXNnc3RyICJrZXkgaWQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3OSBidWlsdGluL21lcmdlLmM6MjE2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDQgYnVpbHRpbi9tZXJnZS5jOjIzMQogbXNnaWQgIkdQRyBzaWduIGNvbW1pdCIKIG1zZ3N0ciAiR1BHIOaPkOS6pOetvuWQjSIKIAogIy4gZW5kIGNvbW1pdCBtZXNzYWdlIG9wdGlvbnMKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ3CiBtc2dpZCAiQ29tbWl0IGNvbnRlbnRzIG9wdGlvbnMiCiBtc2dzdHIgIuaPkOS6pOWGheWuuemAiemhuSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzgzCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDgKIG1zZ2lkICJjb21taXQgYWxsIGNoYW5nZWQgZmlsZXMiCiBtc2dzdHIgIuaPkOS6pOaJgOacieaUueWKqOeahOaWh+S7tiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDkKIG1zZ2lkICJhZGQgc3BlY2lmaWVkIGZpbGVzIHRvIGluZGV4IGZvciBjb21taXQiCiBtc2dzdHIgIua3u+WKoOaMh+WumueahOaWh+S7tuWIsOe0ouW8leWMuuetieW+heaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTAKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBmaWxlcyIKIG1zZ3N0ciAi5Lqk5LqS5byP5re75Yqg5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MQogbXNnaWQgImludGVyYWN0aXZlbHkgYWRkIGNoYW5nZXMiCiBtc2dzdHIgIuS6pOS6kuW8j+a3u+WKoOWPmOabtCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTIKIG1zZ2lkICJjb21taXQgb25seSBzcGVjaWZpZWQgZmlsZXMiCiBtc2dzdHIgIuWPquaPkOS6pOaMh+WumueahOaWh+S7tiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTMKIG1zZ2lkICJieXBhc3MgcHJlLWNvbW1pdCBob29rIgogbXNnc3RyICLnu5Xov4cgcHJlLWNvbW1pdCDpkqnlrZAiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU0CiBtc2dpZCAic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIKIG1zZ3N0ciAi5pi+56S65bCG6KaB5o+Q5Lqk55qE5YaF5a65IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NQogbXNnaWQgImFtZW5kIHByZXZpb3VzIGNvbW1pdCIKIG1zZ3N0ciAi5L+u5pS55YWI5YmN55qE5o+Q5LqkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NgogbXNnaWQgImJ5cGFzcyBwb3N0LXJld3JpdGUgaG9vayIKIG1zZ3N0ciAi57uV6L+HIHBvc3QtcmV3cml0ZSDpkqnlrZAiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDcxCiBtc2dpZCAib2sgdG8gcmVjb3JkIGFuIGVtcHR5IGNoYW5nZSIKIG1zZ3N0ciAi5YWB6K645LiA5Liq56m65o+Q5LqkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NAogbXNnaWQgIm9rIHRvIHJlY29yZCBhIGNoYW5nZSB3aXRoIGFuIGVtcHR5IG1lc3NhZ2UiCiBtc2dzdHIgIuWFgeiuuOepuueahOaPkOS6pOivtOaYjiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDQxCisjOiBidWlsdGluL2NvbW1pdC5jOjE1MDcKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgSEVBRCBjb21taXQiCiBtc2dzdHIgIuS4jeiDveino+aekCBIRUFEIOaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDc5IGJ1aWx0aW4vbWVyZ2UuYzo1MTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NSBidWlsdGluL21lcmdlLmM6NTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuICclcycgZm9yIHJlYWRpbmciCiBtc2dzdHIgIuS4jeiDveS4uuivu+WFpeaJk+W8gCAnJXMnIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0ODYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3JydXB0IE1FUkdFX0hFQUQgZmlsZSAoJXMpIgogbXNnc3RyICLmjZ/lnY/nmoQgTUVSR0VfSEVBRCDmlofku7bvvIglc++8iSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDkzCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NTkKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NT0RFIgogbXNnc3RyICLkuI3og73or7vlj5YgTUVSR0VfTU9ERSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTEyCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgY29tbWl0IG1lc3NhZ2U6ICVzIgogbXNnc3RyICLkuI3og73or7vlj5bmj5DkuqTor7TmmI7vvJolcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTI2CisjOiBidWlsdGluL2NvbW1pdC5jOjE1OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWJvcnRpbmcgY29tbWl0OyB5b3UgZGlkIG5vdCBlZGl0IHRoZSBtZXNzYWdlLlxuIgogbXNnc3RyICLnu4jmraLmj5DkuqTvvJvmgqjmnKrmm7TmlLnmnaXoh6rmqKHniYjnmoTmj5DkuqTor7TmmI7jgIJcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTMxCisjOiBidWlsdGluL2NvbW1pdC5jOjE1OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWJvcnRpbmcgY29tbWl0IGR1ZSB0byBlbXB0eSBjb21taXQgbWVzc2FnZS5cbiIKIG1zZ3N0ciAi57uI5q2i5o+Q5Lqk5Zug5Li65o+Q5Lqk6K+05piO5Li656m644CCXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NiBidWlsdGluL21lcmdlLmM6ODQ3IGJ1aWx0aW4vbWVyZ2UuYzo4NzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYxMiBidWlsdGluL21lcmdlLmM6ODYxIGJ1aWx0aW4vbWVyZ2UuYzo4ODYKIG1zZ2lkICJmYWlsZWQgdG8gd3JpdGUgY29tbWl0IG9iamVjdCIKIG1zZ3N0ciAi5peg5rOV5YaZ5o+Q5Lqk5a+56LGhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzMwogbXNnaWQgImNhbm5vdCBsb2NrIEhFQUQgcmVmIgogbXNnc3RyICLml6Dms5XplIHlrpogSEVBRCDlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3MQorIzogYnVpbHRpbi9jb21taXQuYzoxNjM3CiBtc2dpZCAiY2Fubm90IHVwZGF0ZSBIRUFEIHJlZiIKIG1zZ3N0ciAi5peg5rOV5pu05pawIEhFQUQg5byV55SoIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1ODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY0OAogbXNnaWQgIiIKICJSZXBvc2l0b3J5IGhhcyBiZWVuIHVwZGF0ZWQsIGJ1dCB1bmFibGUgdG8gd3JpdGVcbiIKICJuZXdfaW5kZXggZmlsZS4gQ2hlY2sgdGhhdCBkaXNrIGlzIG5vdCBmdWxsIG9yIHF1b3RhIGlzXG4iCkBAIC00MjAzLDExNSArNDQzMywxMjMgQEAKIG1zZ2lkICJnaXQgY29uZmlnIFtvcHRpb25zXSIKIG1zZ3N0ciAiZ2l0IGNvbmZpZyBb6YCJ6aG5XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MQorIzogYnVpbHRpbi9jb25maWcuYzo1MgogbXNnaWQgIkNvbmZpZyBmaWxlIGxvY2F0aW9uIgogbXNnc3RyICLphY3nva7mlofku7bkvY3nva4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKIG1zZ2lkICJ1c2UgZ2xvYmFsIGNvbmZpZyBmaWxlIgogbXNnc3RyICLkvb/nlKjlhajlsYDphY3nva7mlofku7YiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKIG1zZ2lkICJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIgogbXNnc3RyICLkvb/nlKjns7vnu5/nuqfphY3nva7mlofku7YiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKIG1zZ2lkICJ1c2UgcmVwb3NpdG9yeSBjb25maWcgZmlsZSIKIG1zZ3N0ciAi5L2/55So54mI5pys5bqT57qn6YWN572u5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU1CisjOiBidWlsdGluL2NvbmZpZy5jOjU2CiBtc2dpZCAidXNlIGdpdmVuIGNvbmZpZyBmaWxlIgogbXNnc3RyICLkvb/nlKjmjIflrprnmoTphY3nva7mlofku7YiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKK21zZ2lkICJibG9iLWlkIgorbXNnc3RyICLmlbDmja7lr7nosaFJRCIKKworIzogYnVpbHRpbi9jb25maWcuYzo1NworbXNnaWQgInJlYWQgY29uZmlnIGZyb20gZ2l2ZW4gYmxvYiBvYmplY3QiCittc2dzdHIgIuS7jue7meWumueahOaVsOaNruWvueixoeivu+WPlumFjee9riIKKworIzogYnVpbHRpbi9jb25maWcuYzo1OAogbXNnaWQgIkFjdGlvbiIKIG1zZ3N0ciAi5pON5L2cIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU3CisjOiBidWlsdGluL2NvbmZpZy5jOjU5CiBtc2dpZCAiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgIuiOt+WPluWAvO+8mm5hbWUgW3ZhbHVlLXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OAorIzogYnVpbHRpbi9jb25maWcuYzo2MAogbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAi6I635b6X5omA5pyJ55qE5YC877yaa2V5IFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKIG1zZ2lkICJnZXQgdmFsdWVzIGZvciByZWdleHA6IG5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAi5qC55o2u5q2j5YiZ6KGo6L6+5byP6I635b6X5YC877yabmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYwCisjOiBidWlsdGluL2NvbmZpZy5jOjYyCiBtc2dpZCAicmVwbGFjZSBhbGwgbWF0Y2hpbmcgdmFyaWFibGVzOiBuYW1lIHZhbHVlIFt2YWx1ZV9yZWdleF0iCiBtc2dzdHIgIuabv+aNouaJgOacieWMuemFjeeahOWPmOmHj++8mm5hbWUgdmFsdWUgW3ZhbHVlX3JlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MQorIzogYnVpbHRpbi9jb25maWcuYzo2MwogbXNnaWQgImFkZCBhIG5ldyB2YXJpYWJsZTogbmFtZSB2YWx1ZSIKIG1zZ3N0ciAi5re75Yqg5LiA5Liq5paw55qE5Y+Y6YeP77yabmFtZSB2YWx1ZSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MgorIzogYnVpbHRpbi9jb25maWcuYzo2NAogbXNnaWQgInJlbW92ZSBhIHZhcmlhYmxlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgIuWIoOmZpOS4gOS4quWPmOmHj++8mm5hbWUgW3ZhbHVlLXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MworIzogYnVpbHRpbi9jb25maWcuYzo2NQogbXNnaWQgInJlbW92ZSBhbGwgbWF0Y2hlczogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICLliKDpmaTmiYDmnInljLnphY3pobnvvJpuYW1lIFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKIG1zZ2lkICJyZW5hbWUgc2VjdGlvbjogb2xkLW5hbWUgbmV3LW5hbWUiCiBtc2dzdHIgIumHjeWRveWQjeWwj+iKgu+8mm9sZC1uYW1lIG5ldy1uYW1lIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY1CisjOiBidWlsdGluL2NvbmZpZy5jOjY3CiBtc2dpZCAicmVtb3ZlIGEgc2VjdGlvbjogbmFtZSIKIG1zZ3N0ciAi5Yig6Zmk5LiA5Liq5bCP6IqC77yabmFtZSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NgorIzogYnVpbHRpbi9jb25maWcuYzo2OAogbXNnaWQgImxpc3QgYWxsIgogbXNnc3RyICLliJflh7rmiYDmnIkiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKIG1zZ2lkICJvcGVuIGFuIGVkaXRvciIKIG1zZ3N0ciAi5omT5byA5LiA5Liq57yW6L6R5ZmoIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4IGJ1aWx0aW4vY29uZmlnLmM6NjkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzAgYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgInNsb3QiCiBtc2dzdHIgInNsb3QiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzAKIG1zZ2lkICJmaW5kIHRoZSBjb2xvciBjb25maWd1cmVkOiBbZGVmYXVsdF0iCiBtc2dzdHIgIuaJvuWIsOmFjee9rueahOminOiJsu+8mlvpu5jorqRdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY5CisjOiBidWlsdGluL2NvbmZpZy5jOjcxCiBtc2dpZCAiZmluZCB0aGUgY29sb3Igc2V0dGluZzogW3N0ZG91dC1pcy10dHldIgogbXNnc3RyICLmib7liLDpopzoibLorr7nva7vvJpbc3Rkb3V0LWlzLXR0eV0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzAKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzIKIG1zZ2lkICJUeXBlIgogbXNnc3RyICLnsbvlnosiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKIG1zZ2lkICJ2YWx1ZSBpcyBcInRydWVcIiBvciBcImZhbHNlXCIiCiBtc2dzdHIgIuWAvOaYryBcInRydWVcIiDmiJYgXCJmYWxzZVwiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcyCisjOiBidWlsdGluL2NvbmZpZy5jOjc0CiBtc2dpZCAidmFsdWUgaXMgZGVjaW1hbCBudW1iZXIiCiBtc2dzdHIgIuWAvOaYr+WNgei/m+WItuaVsCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MworIzogYnVpbHRpbi9jb25maWcuYzo3NQogbXNnaWQgInZhbHVlIGlzIC0tYm9vbCBvciAtLWludCIKIG1zZ3N0ciAi5YC85pivIC0tYm9vbCBvciAtLWludCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NAorIzogYnVpbHRpbi9jb25maWcuYzo3NgogbXNnaWQgInZhbHVlIGlzIGEgcGF0aCAoZmlsZSBvciBkaXJlY3RvcnkgbmFtZSkiCiBtc2dzdHIgIuWAvOaYr+S4gOS4qui3r+W+hO+8iOaWh+S7tuaIluebruW9leWQje+8iSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NQorIzogYnVpbHRpbi9jb25maWcuYzo3NwogbXNnaWQgIk90aGVyIgogbXNnc3RyICLlhbblroMiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzgKIG1zZ2lkICJ0ZXJtaW5hdGUgdmFsdWVzIHdpdGggTlVMIGJ5dGUiCiBtc2dzdHIgIue7iOatouWAvOaYr05VTOWtl+iKgiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NworIzogYnVpbHRpbi9jb25maWcuYzo3OQogbXNnaWQgInJlc3BlY3QgaW5jbHVkZSBkaXJlY3RpdmVzIG9uIGxvb2t1cCIKIG1zZ3N0ciAi5p+l6K+i5pe25Y+C54WnIGluY2x1ZGUg5oyH5Luk6YCS5b2S5p+l5om+IgogCkBAIC00MzIzLDU1ICs0NTYxLDU1IEBACiBtc2dpZCAicHJpbnQgc2l6ZXMgaW4gaHVtYW4gcmVhZGFibGUgZm9ybWF0IgogbXNnc3RyICLku6XnlKjmiLflj6/or7vnmoTmoLzlvI/mmL7npLrlpKflsI8iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjE2CiBtc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0dGlzaD4qIgogbXNnc3RyICJnaXQgZGVzY3JpYmUgW+mAiemhuV0gPOaPkOS6pOWPtz4qIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNwogbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eSIKIG1zZ3N0ciAiZ2l0IGRlc2NyaWJlIFvpgInpobldIC0tZGlydHkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzMKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBub3QgYXZhaWxhYmxlIgogbXNnc3RyICLms6jph4ogdGFnICVzIOaXoOaViCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzNworIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIGhhcyBubyBlbWJlZGRlZCBuYW1lIgogbXNnc3RyICLms6jph4ogdGFnICVzIOayoeacieW1jOWFpeWQjeensCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzOQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBpcyByZWFsbHkgJyVzJyBoZXJlIgogbXNnc3RyICJ0YWcgJyVzJyDnmoTnoa7mmK/lnKggJyVzJyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZSAlcyIKIG1zZ3N0ciAi5LiN5piv5LiA5Liq5pyJ5pWI55qE5a+56LGh5ZCNICVzIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjY5CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjczCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGlzIG5vdCBhIHZhbGlkICclcycgb2JqZWN0IgogbXNnc3RyICIlcyDkuI3mmK/kuIDkuKrmnInmlYjnmoQgJyVzJyDlr7nosaEiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyODYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gdGFnIGV4YWN0bHkgbWF0Y2hlcyAnJXMnIgogbXNnc3RyICLmsqHmnIkgdGFnIOWHhuehruWMuemFjSAnJXMnIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mjg4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgInNlYXJjaGluZyB0byBkZXNjcmliZSAlc1xuIgogbXNnc3RyICLmkJzntKLmj4/ov7AgJXNcbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjMyOAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjMzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJmaW5pc2hlZCBzZWFyY2ggYXQgJXNcbiIKIG1zZ3N0ciAi5a6M5oiQ5pCc57SiICVzXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIGFubm90YXRlZCB0YWdzIGNhbiBkZXNjcmliZSAnJXMnLlxuIgpAQCAtNDM4MCw3ICs0NjE4LDcgQEAKICLmsqHmnInms6jph4ogdGFnIOiDveaPj+i/sCAnJXMn44CCXG4iCiAi54S26ICM77yM5pyJ6Z2e5rOo6YeKIHRhZ++8muWwneivlSAtLXRhZ3PjgIIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCkBAIC00Mzg5LDEyICs0NjI3LDEyIEBACiAi5rKh5pyJ5rOo6YeKIHRhZyDog73mj4/ov7AgJyVzJ+OAglxuIgogIuWwneivlSAtLWFsd2F5c++8jOaIluiAheWIm+W7uuS4gOS6myB0YWfjgIIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNzcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJhdmVyc2VkICVsdSBjb21taXRzXG4iCiBtc2dzdHIgIuW3sumBjeWOhiAlbHUg5Liq5o+Q5LqkXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODAKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm1vcmUgdGhhbiAlaSB0YWdzIGZvdW5kOyBsaXN0ZWQgJWkgbW9zdCByZWNlbnRcbiIKQEAgLTQ0MDMsNTkgKzQ2NDEsNjMgQEAKICLlj5HnjrDlpJrkuo4gJWkg5LiqIHRhZ++8jOWIl+WHuuacgOi/keeahCAlaSDkuKpcbiIKICLlnKggJXMg5pS+5byD5pCc57SiXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDkKIG1zZ2lkICJmaW5kIHRoZSB0YWcgdGhhdCBjb21lcyBhZnRlciB0aGUgY29tbWl0IgogbXNnc3RyICLlr7vmib7mj5DkuqTkuYvlkI7nmoQgdGFn77yI55So5LqO5o+P6L+w5o+Q5Lqk77yJIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDAzCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEwCiBtc2dpZCAiZGVidWcgc2VhcmNoIHN0cmF0ZWd5IG9uIHN0ZGVyciIKIG1zZ3N0ciAi5Zyo5qCH5YeG6ZSZ6K+v5LiK6LCD6K+V5pCc57Si562W55WlIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA0CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCiBtc2dpZCAidXNlIGFueSByZWYiCiBtc2dzdHIgIuS9v+eUqOS7u+aEj+W8leeUqCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMgogbXNnaWQgInVzZSBhbnkgdGFnLCBldmVuIHVuYW5ub3RhdGVkIgogbXNnc3RyICLkvb/nlKjku7vmhI8gdGFn77yM5Y2z5L2/5pyq5bim5rOo6KejIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEzCiBtc2dpZCAiYWx3YXlzIHVzZSBsb25nIGZvcm1hdCIKIG1zZ3N0ciAi5aeL57uI5L2/55So6ZW/5o+Q5Lqk5Y+35qC85byPIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE0Cittc2dpZCAib25seSBmb2xsb3cgZmlyc3QgcGFyZW50IgorbXNnc3RyICLlj6rot5/pmo/nrKzkuIDkuKrniLbmj5DkuqQiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKIG1zZ2lkICJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIgogbXNnc3RyICLlj6rovpPlh7rnsr7noa7ljLnphY0iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTkKIG1zZ2lkICJjb25zaWRlciA8bj4gbW9zdCByZWNlbnQgdGFncyAoZGVmYXVsdDogMTApIgogbXNnc3RyICLogIPomZHmnIDov5EgPG4+IOS4qiB0YWdz77yI6buY6K6k77yaMTDvvIkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjEKIG1zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgogbXNnc3RyICLlj6rogIPomZHljLnphY0gPOaooeW8jz4g55qEIHRhZ3MiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTUgYnVpbHRpbi9uYW1lLXJldi5jOjIzOAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyMyBidWlsdGluL25hbWUtcmV2LmM6MzIyCiBtc2dpZCAic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIgogbXNnc3RyICLmmL7npLrnroDlhpnnmoTmj5DkuqTlj7fkvZzkuLrlkI7lpIciCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjQKIG1zZ2lkICJtYXJrIgogbXNnc3RyICLmoIforrAiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjUKIG1zZ2lkICJhcHBlbmQgPG1hcms+IG9uIGRpcnR5IHdvcmtpbmcgdHJlZSAoZGVmYXVsdDogXCItZGlydHlcIikiCiBtc2dzdHIgIuiLpeW3peS9nOWMuuiEj++8iOacieWPmOabtO+8ieWcqOe7k+Wwvua3u+WKoCA85qCH6K6wPu+8iOm7mOiupO+8mlwiLWRpcnR5XCLvvIkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MzUKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0NDMKIG1zZ2lkICItLWxvbmcgaXMgaW5jb21wYXRpYmxlIHdpdGggLS1hYmJyZXY9MCIKIG1zZ3N0ciAiLS1sb25nIOS4jiAtLWFiYnJldj0wIOS4jeWFvOWuuSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2MQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2OQogbXNnaWQgIk5vIG5hbWVzIGZvdW5kLCBjYW5ub3QgZGVzY3JpYmUgYW55dGhpbmcuIgogbXNnc3RyICLmsqHmnInlj5HnjrDlkI3np7DvvIzml6Dms5Xmj4/ov7Dku7vkvZXkuJzopb/jgIIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODkKIG1zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdHRpc2hlcyIKIG1zZ3N0ciAiLS1kaXJ0eSDkuI3og73kuI7mj5DkuqTlkIzml7bkvb/nlKgiCiAKQEAgLTQ0NjQsMzEgKzQ3MDYsMjYgQEAKIG1zZ2lkICInJXMnOiBub3QgYSByZWd1bGFyIGZpbGUgb3Igc3ltbGluayIKIG1zZ3N0ciAiJyVzJ++8muS4jeaYr+S4gOS4quato+inhOaWh+S7tuaIluespuWPt+mTvuaOpSIKIAotIzogYnVpbHRpbi9kaWZmLmM6MjI4CisjOiBidWlsdGluL2RpZmYuYzoyMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBvcHRpb246ICVzIgogbXNnc3RyICLml6DmlYjpgInpobnvvJolcyIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzA1CisjOiBidWlsdGluL2RpZmYuYzozMDcKIG1zZ2lkICJOb3QgYSBnaXQgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi5LiN5piv5LiA5LiqIGdpdCDniYjmnKzlupMiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM0OAorIzogYnVpbHRpbi9kaWZmLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICLmj5Dkvpvkuobml6DmlYjlr7nosaEgJyVzJ+OAgiIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzUzCi0jLCBjLWZvcm1hdAotbXNnaWQgIm1vcmUgdGhhbiAlZCB0cmVlcyBnaXZlbjogJyVzJyIKLW1zZ3N0ciAi5o+Q5L6b5LqG6LaF6L+HICVkIOS4quagkeWvueixoe+8miclcyciCi0KLSM6IGJ1aWx0aW4vZGlmZi5jOjM2MworIzogYnVpbHRpbi9kaWZmLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vcmUgdGhhbiB0d28gYmxvYnMgZ2l2ZW46ICclcyciCiBtc2dzdHIgIuaPkOS+m+S6hui2hei/h+S4pOS4quaVsOaNru+8iGJsb2LvvInlr7nosaHvvJonJXMnIgogCi0jOiBidWlsdGluL2RpZmYuYzozNzEKKyM6IGJ1aWx0aW4vZGlmZi5jOjM2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmhhbmRsZWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICLmj5Dkvpvkuobml6Dms5XlpITnkIbnmoTlr7nosaEgJyVzJ+OAgiIKQEAgLTQ0OTcsMzkgKzQ3MzQsMzkgQEAKIG1zZ2lkICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogbXNnc3RyICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU4CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CiBtc2dpZCAic2hvdyBwcm9ncmVzcyBhZnRlciA8bj4gb2JqZWN0cyIKIG1zZ3N0ciAi5ZyoIDxuPiDkuKrlr7nosaHkuYvlkI7mmL7npLrov5vluqYiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2Ygc2lnbmVkIHRhZ3MiCiBtc2dzdHIgIumAieaLqeWmguS9leWkhOeQhuetvuWQjSB0YWdzIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYzCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcxCiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHRhZ3MgdGhhdCB0YWcgZmlsdGVyZWQgb2JqZWN0cyIKIG1zZ3N0ciAi6YCJ5oup5b2TIHRhZyDmjIflkJHooqvov4fmu6Tml7YgdGFncyDnmoTlpITnkIbmlrnlvI8iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKIG1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAi5oqK5qCH6K6w5a2Y5YKo5Yiw6L+Z5Liq5paH5Lu2IgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY4CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc2CiBtc2dpZCAiSW1wb3J0IG1hcmtzIGZyb20gdGhpcyBmaWxlIgogbXNnc3RyICLku47ov5nkuKrmlofku7blr7zlhaXmoIforrAiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzgKIG1zZ2lkICJGYWtlIGEgdGFnZ2VyIHdoZW4gdGFncyBsYWNrIG9uZSIKIG1zZ3N0ciAi5b2TIHRhZ3Mg57y65bCR5qCH6K6w6ICF5a2X5q615pe277yM5YGH6KOF5o+Q5L6b5LiA5LiqIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgwCiBtc2dpZCAiT3V0cHV0IGZ1bGwgdHJlZSBmb3IgZWFjaCBjb21taXQiCiBtc2dzdHIgIuavj+asoeaPkOS6pOmDvei+k+WHuuaVtOS4quagkSIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MgogbXNnaWQgIlVzZSB0aGUgZG9uZSBmZWF0dXJlIHRvIHRlcm1pbmF0ZSB0aGUgc3RyZWFtIgogbXNnc3RyICLkvb/nlKggZG9uZSDlip/og73mnaXnu4jmraLmtYEiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKIG1zZ2lkICJTa2lwIG91dHB1dCBvZiBibG9iIGRhdGEiCiBtc2dzdHIgIui3s+i/h+aVsOaNruWvueixoeeahOi+k+WHuiIKIApAQCAtNDYwNiw3ICs0ODQzLDcgQEAKIG1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi6L2s5o2i5Li65LiA5Liq5a6M5pW055qE54mI5pys5bqTIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTMwCisjOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTc3CiBtc2dpZCAiZGlyIgogbXNnc3RyICLnm67lvZUiCiAKQEAgLTQ2MTgsNzcgKzQ4NTUsNzcgQEAKIG1zZ2lkICJkZWZhdWx0IG1vZGUgZm9yIHJlY3Vyc2lvbiIKIG1zZ3N0ciAi6YCS5b2S55qE6buY6K6k5qih5byPIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjA0CisjOiBidWlsdGluL2ZldGNoLmM6MjIwCiBtc2dpZCAiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiCiBtc2dzdHIgIuaXoOazleWPkeeOsOi/nOeoiyBIRUFEIOW8leeUqCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI1NworIzogYnVpbHRpbi9mZXRjaC5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgbm90IGZvdW5kIgogbXNnc3RyICLlr7nosaEgJXMg5pyq5Y+R546wIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjYyCisjOiBidWlsdGluL2ZldGNoLmM6Mjc4CiBtc2dpZCAiW3VwIHRvIGRhdGVdIgogbXNnc3RyICJb5pyA5pawXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NgorIzogYnVpbHRpbi9mZXRjaC5jOjI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICIhICUtKnMgJS0qcyAtPiAlcyAgKGNhbid0IGZldGNoIGluIGN1cnJlbnQgYnJhbmNoKSIKIG1zZ3N0ciAiISAlLSpzICUtKnMgLT4gJXMgIO+8iOWcqOW9k+WJjeWIhuaUr+S4i+S4jeiDveiOt+WPlu+8iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NyBidWlsdGluL2ZldGNoLmM6MzYzCisjOiBidWlsdGluL2ZldGNoLmM6MjkzIGJ1aWx0aW4vZmV0Y2guYzozNzkKIG1zZ2lkICJbcmVqZWN0ZWRdIgogbXNnc3RyICJb5bey5ouS57udXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI4OAorIzogYnVpbHRpbi9mZXRjaC5jOjMwNAogbXNnaWQgIlt0YWcgdXBkYXRlXSIKIG1zZ3N0ciAiW3RhZ+abtOaWsF0iCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogYnVpbHRpbi9mZXRjaC5jOjI5MCBidWlsdGluL2ZldGNoLmM6MzI1IGJ1aWx0aW4vZmV0Y2guYzozNDMKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDYgYnVpbHRpbi9mZXRjaC5jOjM0MSBidWlsdGluL2ZldGNoLmM6MzU5CiBtc2dpZCAiICAodW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYpIgogbXNnc3RyICIgIO+8iOS4jeiDveabtOaWsOacrOWcsOW8leeUqO+8iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMwOAorIzogYnVpbHRpbi9mZXRjaC5jOjMyNAogbXNnaWQgIltuZXcgdGFnXSIKIG1zZ3N0ciAiW+aWsHRhZ10iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTEKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjcKIG1zZ2lkICJbbmV3IGJyYW5jaF0iCiBtc2dzdHIgIlvmlrDliIbmlK9dIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzE0CisjOiBidWlsdGluL2ZldGNoLmM6MzMwCiBtc2dpZCAiW25ldyByZWZdIgogbXNnc3RyICJb5paw5byV55SoXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjM3NQogbXNnaWQgInVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmIgogbXNnc3RyICLkuI3og73mm7TmlrDmnKzlnLDlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNTkKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKIG1zZ2lkICJmb3JjZWQgdXBkYXRlIgogbXNnc3RyICLlvLrliLbmm7TmlrAiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNjUKKyM6IGJ1aWx0aW4vZmV0Y2guYzozODEKIG1zZ2lkICIobm9uLWZhc3QtZm9yd2FyZCkiCiBtc2dzdHIgIu+8iOmdnuW/q+i/m+W8j++8iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM5NiBidWlsdGluL2ZldGNoLmM6Njg4CisjOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzXG4iCiBtc2dzdHIgIuaXoOazleaJk+W8gCAlc++8miVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo0MDUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0c1xuIgogbXNnc3RyICIlcyDmnKrlj5HpgIHmiYDmnInlv4XpobvnmoTlr7nosaFcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjQ5MQorIzogYnVpbHRpbi9mZXRjaC5jOjUyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJGcm9tICUuKnNcbiIKIG1zZ3N0ciAi5p2l6IeqICUuKnNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjUwMgorIzogYnVpbHRpbi9mZXRjaC5jOjUzMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAic29tZSBsb2NhbCByZWZzIGNvdWxkIG5vdCBiZSB1cGRhdGVkOyB0cnkgcnVubmluZ1xuIgpAQCAtNDY5OCw4NyArNDkzNSw4NyBAQAogIiAnZ2l0IHJlbW90ZSBwcnVuZSAlcycg5p2l5Yig6Zmk5pen55qE44CB5pyJ5Yay56qB55qE5YiG5pSvIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIHdpbGwgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAg77yIJXMg5bCG5oiQ5Li65pGH5pGG54q25oCB77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NTMKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIGhhcyBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIgICDvvIglcyDlt7LmiJDkuLrmkYfmkYbnirbmgIHvvIkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODkKIG1zZ2lkICJbZGVsZXRlZF0iCiBtc2dzdHIgIlvlt7LliKDpmaRdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTYxIGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQorIzogYnVpbHRpbi9mZXRjaC5jOjU5MCBidWlsdGluL3JlbW90ZS5jOjEwNTUKIG1zZ2lkICIobm9uZSkiCiBtc2dzdHIgIu+8iOaXoO+8iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY3OAorIzogYnVpbHRpbi9mZXRjaC5jOjcwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWZ1c2luZyB0byBmZXRjaCBpbnRvIGN1cnJlbnQgYnJhbmNoICVzIG9mIG5vbi1iYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuaLkue7neiOt+WPluWIsOmdnuijuOeJiOacrOW6k+eahOW9k+WJjeWIhuaUryAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjcxMgorIzogYnVpbHRpbi9mZXRjaC5jOjc0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBmZXRjaCBmcm9tICVzIgogbXNnc3RyICLkuI3nn6XpgZPlpoLkvZXku44gJXMg6I635Y+WIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Nzg5CisjOiBidWlsdGluL2ZldGNoLmM6ODIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCiBtc2dzdHIgIumAiemhuSBcIiVzXCIg55qE5YC8IFwiJXNcIiDlr7nkuo4gJXMg5piv5peg5pWI55qEIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzkyCisjOiBidWlsdGluL2ZldGNoLmM6ODI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgaXMgaWdub3JlZCBmb3IgJXNcbiIKIG1zZ3N0ciAi6YCJ6aG5IFwiJXNcIiDkuLogJXMg5omA5b+955WlXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OTQKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmV0Y2hpbmcgJXNcbiIKIG1zZ3N0ciAi5q2j5Zyo6I635Y+WICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OTYgYnVpbHRpbi9yZW1vdGUuYzoxMDAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MzAgYnVpbHRpbi9yZW1vdGUuYzoxMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZldGNoICVzIgogbXNnc3RyICLkuI3og73ojrflj5YgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NDkKIG1zZ2lkICIiCiAiTm8gcmVtb3RlIHJlcG9zaXRvcnkgc3BlY2lmaWVkLiAgUGxlYXNlLCBzcGVjaWZ5IGVpdGhlciBhIFVSTCBvciBhXG4iCiAicmVtb3RlIG5hbWUgZnJvbSB3aGljaCBuZXcgcmV2aXNpb25zIHNob3VsZCBiZSBmZXRjaGVkLiIKIG1zZ3N0ciAi5pyq5oyH5a6a6L+c56iL54mI5pys5bqT44CC6K+36YCa6L+H5LiA5LiqVVJM5oiW6L+c56iL54mI5pys5bqT5ZCN5oyH5a6a77yM55So5Lul6I635Y+W5paw5o+Q5Lqk44CCIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTM1CisjOiBidWlsdGluL2ZldGNoLmM6OTY5CiBtc2dpZCAiWW91IG5lZWQgdG8gc3BlY2lmeSBhIHRhZyBuYW1lLiIKIG1zZ3N0ciAi5oKo6ZyA6KaB5oyH5a6a5LiA5LiqIHRhZyDlkI3np7DjgIIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIi0tZGVwdGgg5ZKMIC0tdW5zaGFsbG93IOS4jeiDveWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjk4MworIzogYnVpbHRpbi9mZXRjaC5jOjEwMTcKIG1zZ2lkICItLXVuc2hhbGxvdyBvbiBhIGNvbXBsZXRlIHJlcG9zaXRvcnkgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAi5a+55LqO5LiA5Liq5a6M5pW055qE54mI5pys5bqT77yM5Y+C5pWwIC0tdW5zaGFsbG93IOayoeacieaEj+S5iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDIKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM2CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgdGFrZSBhIHJlcG9zaXRvcnkgYXJndW1lbnQiCiBtc2dzdHIgImZldGNoIC0tYWxsIOS4jeiDveW4puS4gOS4queJiOacrOW6k+WPguaVsCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM4CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgbWFrZSBzZW5zZSB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICJmZXRjaCAtLWFsbCDluKblvJXnlKjooajovr7lvI/msqHmnInku7vkvZXmhI/kuYkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CisjOiBidWlsdGluL2ZldGNoLmM6MTA0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZSBvciByZW1vdGUgZ3JvdXA6ICVzIgogbXNnc3RyICLmsqHmnInov5nmoLfnmoTov5znqIvmiJbov5znqIvnu4TvvJolcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDU3CiBtc2dpZCAiRmV0Y2hpbmcgYSBncm91cCBhbmQgc3BlY2lmeWluZyByZWZzcGVjcyBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICLojrflj5bnu4TlubbmjIflrprlvJXnlKjooajovr7lvI/msqHmnInmhI/kuYkiCiAKQEAgLTQ3ODcsOSArNTAyNCw5IEBACiBtc2dzdHIgIiIKICJnaXQgZm10LW1lcmdlLW1zZyBbLW0gPG1lc3NhZ2U+XSBbLS1sb2dbPTxuPl18LS1uby1sb2ddIFstLWZpbGUgPGZpbGU+XSIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDEKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODggYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc1Ci0jOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyMzkKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAwCisjOiBidWlsdGluL21lcmdlLmM6MjAzIGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3OQorIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzMyBwYXJzZS1vcHRpb25zLmg6MjQzCiBtc2dpZCAibiIKIG1zZ3N0ciAibiIKIApAQCAtNDk0NiwyMjEgKzUxODMsMjIxIEBACiBtc2dpZCAiZ3JlcDogZmFpbGVkIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgogbXNnc3RyICJncmVw77ya5peg5rOV5Yib5bu657q/56iL77yaJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjM2NQorIzogYnVpbHRpbi9ncmVwLmM6MzY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjaGRpcjogJXMiCiBtc2dzdHIgIuaXoOazleWIh+aNouebruW9le+8miVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo0NDMgYnVpbHRpbi9ncmVwLmM6NDc4CisjOiBidWlsdGluL2dyZXAuYzo0NDIgYnVpbHRpbi9ncmVwLmM6NDc3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIKIG1zZ3N0ciAi5peg5rOV6K+75Y+W5qCR77yIJXPvvIkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MworIzogYnVpbHRpbi9ncmVwLmM6NDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBncmVwIGZyb20gb2JqZWN0IG9mIHR5cGUgJXMiCiBtc2dzdHIgIuaXoOazleaKk+WPluadpeiHquS6jiAlcyDnsbvlnovnmoTlr7nosaEiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU1MQorIzogYnVpbHRpbi9ncmVwLmM6NTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgInN3aXRjaCBgJWMnIGV4cGVjdHMgYSBudW1lcmljYWwgdmFsdWUiCiBtc2dzdHIgIuW8gOWFsyBgJWMnIOacn+acm+S4gOS4quaVsOWtl+WAvCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NTY4CisjOiBidWlsdGluL2dyZXAuYzo1NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAi5LiN6IO95omT5byAICclcyciCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0MworIzogYnVpbHRpbi9ncmVwLmM6NjQyCiBtc2dpZCAic2VhcmNoIGluIGluZGV4IGluc3RlYWQgb2YgaW4gdGhlIHdvcmsgdHJlZSIKIG1zZ3N0ciAi5Zyo57Si5byV5Yy65pCc57Si6ICM5LiN5piv5Zyo5bel5L2c5Yy6IgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0NAogbXNnaWQgImZpbmQgaW4gY29udGVudHMgbm90IG1hbmFnZWQgYnkgZ2l0IgogbXNnc3RyICLlnKjmnKrooqsgZ2l0IOeuoeeQhueahOWGheWuueS4reafpeaJviIKIAogIyAg6K+R6ICF77ya5Lit5paH5a2X56ym5Liy5ou85o6l77yM5Y+v5Yig6Zmk5YmN5a+856m65qC8Ci0jOiBidWlsdGluL2dyZXAuYzo2NDcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0NgogbXNnaWQgInNlYXJjaCBpbiBib3RoIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAi5Zyo6Lef6Liq5ZKM5pyq6Lef6Liq55qE5paH5Lu25Lit5pCc57SiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0OAogbXNnaWQgInNlYXJjaCBhbHNvIGluIGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIuS5n+WcqOW/veeVpeeahOaWh+S7tuS4reaQnOe0oiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjUyCisjOiBidWlsdGluL2dyZXAuYzo2NTEKIG1zZ2lkICJzaG93IG5vbi1tYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAi5pi+56S65pyq5Yy56YWN55qE6KGMIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1MwogbXNnaWQgImNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmciCiBtc2dzdHIgIuS4jeWMuuWIhuWkp+Wwj+WGmeWMuemFjSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU2CisjOiBidWlsdGluL2dyZXAuYzo2NTUKIG1zZ2lkICJtYXRjaCBwYXR0ZXJucyBvbmx5IGF0IHdvcmQgYm91bmRhcmllcyIKIG1zZ3N0ciAi5Y+q5Zyo5Y2V6K+N6L6555WM5Yy56YWN5qih5byPIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1NwogbXNnaWQgInByb2Nlc3MgYmluYXJ5IGZpbGVzIGFzIHRleHQiCiBtc2dzdHIgIuaKiuS6jOi/m+WItuaWh+S7tuW9k+WBmuaWh+acrOWkhOeQhiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjYwCisjOiBidWlsdGluL2dyZXAuYzo2NTkKIG1zZ2lkICJkb24ndCBtYXRjaCBwYXR0ZXJucyBpbiBiaW5hcnkgZmlsZXMiCiBtc2dzdHIgIuS4jeWcqOS6jOi/m+WItuaWh+S7tuS4reWMuemFjeaooeW8jyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjYzCisjOiBidWlsdGluL2dyZXAuYzo2NjIKIG1zZ2lkICJkZXNjZW5kIGF0IG1vc3QgPGRlcHRoPiBsZXZlbHMiCiBtc2dzdHIgIuacgOWkmuS7peaMh+WumueahOa3seW6puWQkeS4i+Wvu+aJviIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjY3CisjOiBidWlsdGluL2dyZXAuYzo2NjYKIG1zZ2lkICJ1c2UgZXh0ZW5kZWQgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAi5L2/55So5omp5bGV55qEIFBPU0lYIOato+WImeihqOi+vuW8jyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjcwCisjOiBidWlsdGluL2dyZXAuYzo2NjkKIG1zZ2lkICJ1c2UgYmFzaWMgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyAoZGVmYXVsdCkiCiBtc2dzdHIgIuS9v+eUqOWfuuacrOeahCBQT1NJWCDmraPliJnooajovr7lvI/vvIjpu5jorqTvvIkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3MworIzogYnVpbHRpbi9ncmVwLmM6NjcyCiBtc2dpZCAiaW50ZXJwcmV0IHBhdHRlcm5zIGFzIGZpeGVkIHN0cmluZ3MiCiBtc2dzdHIgIuaKiuaooeW8j+ino+aekOS4uuWbuuWumueahOWtl+espuS4siIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc2CisjOiBidWlsdGluL2dyZXAuYzo2NzUKIG1zZ2lkICJ1c2UgUGVybC1jb21wYXRpYmxlIHJlZ3VsYXIgZXhwcmVzc2lvbnMiCiBtc2dzdHIgIuS9v+eUqCBQZXJsIOWFvOWuueeahOato+WImeihqOi+vuW8jyIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc5CisjOiBidWlsdGluL2dyZXAuYzo2NzgKIG1zZ2lkICJzaG93IGxpbmUgbnVtYmVycyIKIG1zZ3N0ciAi5pi+56S66KGM5Y+3IgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQogbXNnaWQgImRvbid0IHNob3cgZmlsZW5hbWVzIgogbXNnc3RyICLkuI3mmL7npLrmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MQorIzogYnVpbHRpbi9ncmVwLmM6NjgwCiBtc2dpZCAic2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgIuaYvuekuuaWh+S7tuWQjSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgzCisjOiBidWlsdGluL2dyZXAuYzo2ODIKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyByZWxhdGl2ZSB0byB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICLmmL7npLrnm7jlr7nkuo7pobbnuqfnm67lvZXnmoTmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NQorIzogYnVpbHRpbi9ncmVwLmM6Njg0CiBtc2dpZCAic2hvdyBvbmx5IGZpbGVuYW1lcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICLlj6rmmL7npLrmlofku7blkI3ogIzkuI3mmL7npLrljLnphY3nmoTooYwiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NworIzogYnVpbHRpbi9ncmVwLmM6Njg2CiBtc2dpZCAic3lub255bSBmb3IgLS1maWxlcy13aXRoLW1hdGNoZXMiCiBtc2dzdHIgIuWSjCAtLWZpbGVzLXdpdGgtbWF0Y2hlcyDlkIzkuYkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MAorIzogYnVpbHRpbi9ncmVwLmM6Njg5CiBtc2dpZCAic2hvdyBvbmx5IHRoZSBuYW1lcyBvZiBmaWxlcyB3aXRob3V0IG1hdGNoIgogbXNnc3RyICLlj6rmmL7npLrmnKrljLnphY3nmoTmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MgorIzogYnVpbHRpbi9ncmVwLmM6NjkxCiBtc2dpZCAicHJpbnQgTlVMIGFmdGVyIGZpbGVuYW1lcyIKIG1zZ3N0ciAi5Zyo5paH5Lu25ZCN5ZCO6L6T5Ye6IE5VTCDlrZfnrKYiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NAorIzogYnVpbHRpbi9ncmVwLmM6NjkzCiBtc2dpZCAic2hvdyB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAi5pi+56S65oC75Yy56YWN6KGM5pWw77yM6ICM5LiN5pi+56S65Yy56YWN55qE6KGMIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NAogbXNnaWQgImhpZ2hsaWdodCBtYXRjaGVzIgogbXNnc3RyICLpq5jkuq7mmL7npLrljLnphY3pobkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NworIzogYnVpbHRpbi9ncmVwLmM6Njk2CiBtc2dpZCAicHJpbnQgZW1wdHkgbGluZSBiZXR3ZWVuIG1hdGNoZXMgZnJvbSBkaWZmZXJlbnQgZmlsZXMiCiBtc2dzdHIgIuWcqOS4jeWQjOaWh+S7tueahOWMuemFjemhueS5i+mXtOaJk+WNsOepuuihjCIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk5CisjOiBidWlsdGluL2dyZXAuYzo2OTgKIG1zZ2lkICJzaG93IGZpbGVuYW1lIG9ubHkgb25jZSBhYm92ZSBtYXRjaGVzIGZyb20gc2FtZSBmaWxlIgogbXNnc3RyICLlj6rlnKjlkIzkuIDmlofku7bnmoTljLnphY3pobnnmoTkuIrpnaLmmL7npLrkuIDmrKHmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwMgorIzogYnVpbHRpbi9ncmVwLmM6NzAxCiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgYW5kIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgIuaYvuekuuWMuemFjemhueWJjeWQjueahCA8bj4g6KGM5LiK5LiL5paHIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNAogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgIuaYvuekuuWMuemFjemhueWJjSA8bj4g6KGM5LiK5LiL5paHIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNgogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAi5pi+56S65Yy56YWN6aG55ZCOIDxuPiDooYzkuIrkuIvmlociCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwOAorIzogYnVpbHRpbi9ncmVwLmM6NzA3CiBtc2dpZCAic2hvcnRjdXQgZm9yIC1DIE5VTSIKIG1zZ3N0ciAi5b+r5o236ZSuIC1DIOaVsOWtlyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzExCisjOiBidWlsdGluL2dyZXAuYzo3MTAKIG1zZ2lkICJzaG93IGEgbGluZSB3aXRoIHRoZSBmdW5jdGlvbiBuYW1lIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICLlnKjljLnphY3nmoTliY3pnaLmmL7npLrkuIDooYzlh73mlbDlkI0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMworIzogYnVpbHRpbi9ncmVwLmM6NzEyCiBtc2dpZCAic2hvdyB0aGUgc3Vycm91bmRpbmcgZnVuY3Rpb24iCiBtc2dzdHIgIuaYvuekuuaJgOWcqOWHveaVsOeahOWJjeWQjuWGheWuuSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE2CisjOiBidWlsdGluL2dyZXAuYzo3MTUKIG1zZ2lkICJyZWFkIHBhdHRlcm5zIGZyb20gZmlsZSIKIG1zZ3N0ciAi5LuO5paH5Lu26K+75Y+W5qih5byPIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNwogbXNnaWQgIm1hdGNoIDxwYXR0ZXJuPiIKIG1zZ3N0ciAi5Yy56YWNIDzmqKHlvI8+IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MjAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxOQogbXNnaWQgImNvbWJpbmUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggLWUiCiBtc2dzdHIgIue7hOWQiOeUqCAtZSDlj4LmlbDorr7lrprnmoTmqKHlvI8iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczMgorIzogYnVpbHRpbi9ncmVwLmM6NzMxCiBtc2dpZCAiaW5kaWNhdGUgaGl0IHdpdGggZXhpdCBzdGF0dXMgd2l0aG91dCBvdXRwdXQiCiBtc2dzdHIgIuS4jei+k+WHuu+8jOiAjOeUqOmAgOWHuueggeagh+ivhuWRveS4reeKtuaAgSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM0CisjOiBidWlsdGluL2dyZXAuYzo3MzMKIG1zZ2lkICJzaG93IG9ubHkgbWF0Y2hlcyBmcm9tIGZpbGVzIHRoYXQgbWF0Y2ggYWxsIHBhdHRlcm5zIgogbXNnc3RyICLlj6rmmL7npLrljLnphY3miYDmnInmqKHlvI/nmoTmlofku7bkuK3nmoTljLnphY0iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczNgorIzogYnVpbHRpbi9ncmVwLmM6NzM1CiBtc2dpZCAic2hvdyBwYXJzZSB0cmVlIGZvciBncmVwIGV4cHJlc3Npb24iCiBtc2dzdHIgIuaYvuekuiBncmVwIOihqOi+vuW8j+eahOino+aekOagkSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQwCisjOiBidWlsdGluL2dyZXAuYzo3MzkKIG1zZ2lkICJwYWdlciIKIG1zZ3N0ciAi5YiG6aG1IgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczOQogbXNnaWQgInNob3cgbWF0Y2hpbmcgZmlsZXMgaW4gdGhlIHBhZ2VyIgogbXNnc3RyICLliIbpobXmmL7npLrljLnphY3nmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MworIzogYnVpbHRpbi9ncmVwLmM6NzQyCiBtc2dpZCAiYWxsb3cgY2FsbGluZyBvZiBncmVwKDEpIChpZ25vcmVkIGJ5IHRoaXMgYnVpbGQpIgogbXNnc3RyICLlhYHorrjosIPnlKggZ3JlcCgxKe+8iOacrOasoeaehOW7uuW/veeVpe+8iSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQ0IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MyBidWlsdGluL3Nob3ctcmVmLmM6MTg4CiBtc2dpZCAic2hvdyB1c2FnZSIKIG1zZ3N0ciAi5pi+56S655So5rOVIgogCi0jOiBidWlsdGluL2dyZXAuYzo4MTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjgxMAogbXNnaWQgIm5vIHBhdHRlcm4gZ2l2ZW4uIgogbXNnc3RyICLmnKrmj5DkvpvmqKHlvI/ljLnphY3jgIIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg2NgorIzogYnVpbHRpbi9ncmVwLmM6ODY1CiBtc2dpZCAiLS1vcGVuLWZpbGVzLWluLXBhZ2VyIG9ubHkgd29ya3Mgb24gdGhlIHdvcmt0cmVlIgogbXNnc3RyICItLW9wZW4tZmlsZXMtaW4tcGFnZXIg5LuF55So5LqO5bel5L2c5Yy6IgogCi0jOiBidWlsdGluL2dyZXAuYzo4ODkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg4OAogbXNnaWQgIi0tY2FjaGVkIG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1uby1pbmRleC4iCiBtc2dzdHIgIi0tY2FjaGVkIOaIliAtLXVudHJhY2tlZCDkuI3og73kuI4gLS1uby1pbmRleCDlkIzml7bkvb/nlKjjgIIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NAorIzogYnVpbHRpbi9ncmVwLmM6ODkzCiBtc2dpZCAiLS1uby1pbmRleCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIHJldnMuIgogbXNnc3RyICItLW5vLWluZGV4IOaIliAtLXVudHJhY2tlZCDkuI3og73lkozniYjmnKzlkIzml7bkvb/nlKjjgIIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NworIzogYnVpbHRpbi9ncmVwLmM6ODk2CiBtc2dpZCAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQgY2Fubm90IGJlIHVzZWQgZm9yIHRyYWNrZWQgY29udGVudHMuIgogbXNnc3RyICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCDkuI3og73nlKjkuo7lt7Lot5/ouKrlhoXlrrnjgIIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjkwNQorIzogYnVpbHRpbi9ncmVwLmM6OTA0CiBtc2dpZCAiYm90aCAtLWNhY2hlZCBhbmQgdHJlZXMgYXJlIGdpdmVuLiIKIG1zZ3N0ciAi5ZCM5pe257uZ5Ye65LqGIC0tY2FjaGVkIOWSjOagkeWvueixoeOAgiIKIApAQCAtNTIwMCw1NCArNTQzNyw1NCBAQAogbXNnaWQgInByb2Nlc3MgZmlsZSBhcyBpdCB3ZXJlIGZyb20gdGhpcyBwYXRoIgogbXNnc3RyICLlpITnkIbmlofku7blubblgYforr7lhbbmnaXoh6rkuo7mraTot6/lvoQiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQzCisjOiBidWlsdGluL2hlbHAuYzo0MQogbXNnaWQgInByaW50IGFsbCBhdmFpbGFibGUgY29tbWFuZHMiCiBtc2dzdHIgIuaJk+WNsOaJgOacieWPr+eUqOeahOWRveS7pCIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDQKKyM6IGJ1aWx0aW4vaGVscC5jOjQyCiBtc2dpZCAicHJpbnQgbGlzdCBvZiB1c2VmdWwgZ3VpZGVzIgogbXNnc3RyICLmmL7npLrmnInnlKjnmoTmjIfljZfliJfooagiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ1CisjOiBidWlsdGluL2hlbHAuYzo0MwogbXNnaWQgInNob3cgbWFuIHBhZ2UiCiBtc2dzdHIgIuaYvuekuiBtYW4g5omL5YaMIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NgorIzogYnVpbHRpbi9oZWxwLmM6NDQKIG1zZ2lkICJzaG93IG1hbnVhbCBpbiB3ZWIgYnJvd3NlciIKIG1zZ3N0ciAi5ZyoIHdlYiDmtY/op4jlmajkuK3mmL7npLrmiYvlhowiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ4CisjOiBidWlsdGluL2hlbHAuYzo0NgogbXNnaWQgInNob3cgaW5mbyBwYWdlIgogbXNnc3RyICLmmL7npLogaW5mbyDmiYvlhowiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjU0CisjOiBidWlsdGluL2hlbHAuYzo1MgogbXNnaWQgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbY29tbWFuZF0iCiBtc2dzdHIgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBb5ZG95LukXSIKIAotIzogYnVpbHRpbi9oZWxwLmM6NjYKKyM6IGJ1aWx0aW4vaGVscC5jOjY0CiAjLCBjLWZvcm1hdAogbXNnaWQgInVucmVjb2duaXplZCBoZWxwIGZvcm1hdCAnJXMnIgogbXNnc3RyICLmnKrog73or4bliKvnmoTluK7liqnmoLzlvI8gJyVzJyIKIAotIzogYnVpbHRpbi9oZWxwLmM6OTQKKyM6IGJ1aWx0aW4vaGVscC5jOjkyCiBtc2dpZCAiRmFpbGVkIHRvIHN0YXJ0IGVtYWNzY2xpZW50LiIKIG1zZ3N0ciAi5peg5rOV5ZCv5YqoIGVtYWNzY2xpZW5044CCIgogCi0jOiBidWlsdGluL2hlbHAuYzoxMDcKKyM6IGJ1aWx0aW4vaGVscC5jOjEwNQogbXNnaWQgIkZhaWxlZCB0byBwYXJzZSBlbWFjc2NsaWVudCB2ZXJzaW9uLiIKIG1zZ3N0ciAi5peg5rOV6Kej5p6QIGVtYWNzY2xpZW50IOeJiOacrOOAgiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MTE1CisjOiBidWlsdGluL2hlbHAuYzoxMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZW1hY3NjbGllbnQgdmVyc2lvbiAnJWQnIHRvbyBvbGQgKDwgMjIpLiIKIG1zZ3N0ciAiZW1hY3NjbGllbnQg54mI5pysICclZCcg5aSq6ICB77yIPCAyMu+8ieOAgiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MTMzIGJ1aWx0aW4vaGVscC5jOjE2MSBidWlsdGluL2hlbHAuYzoxNzAgYnVpbHRpbi9oZWxwLmM6MTc4CisjOiBidWlsdGluL2hlbHAuYzoxMzEgYnVpbHRpbi9oZWxwLmM6MTU5IGJ1aWx0aW4vaGVscC5jOjE2OCBidWlsdGluL2hlbHAuYzoxNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGV4ZWMgJyVzJzogJXMiCiBtc2dzdHIgIuaXoOazleaJp+ihjCAnJXMn77yaJXMiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjIxOAorIzogYnVpbHRpbi9oZWxwLmM6MjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICInJXMnOiBwYXRoIGZvciB1bnN1cHBvcnRlZCBtYW4gdmlld2VyLlxuIgpAQCAtNTI1Niw3ICs1NDkzLDcgQEAKICInJXMn77ya5LiN5pSv5oyB55qEIG1hbiDmiYvlhozmn6XnnIvlmajnmoTot6/lvoTjgIJcbiIKICLor7fkvb/nlKggJ21hbi48dG9vbD4uY21kJ+OAgiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MjMwCisjOiBidWlsdGluL2hlbHAuYzoyMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiclcyc6IGNtZCBmb3Igc3VwcG9ydGVkIG1hbiB2aWV3ZXIuXG4iCkBAIC01MjY1LDMzNSArNTUwMiwzMzUgQEAKICInJXMnOiDmlK/mjIHnmoQgbWFuIOaJi+WGjOafpeeci+WZqOWRveS7pOOAglxuIgogIuivt+S9v+eUqCAnbWFuLjx0b29sPi5wYXRoJ+OAgiIKIAotIzogYnVpbHRpbi9oZWxwLmM6MzUxCisjOiBidWlsdGluL2hlbHAuYzozNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJzogdW5rbm93biBtYW4gdmlld2VyLiIKIG1zZ3N0ciAiJyVzJ++8muacquefpeeahCBtYW4g5p+l55yL5Zmo44CCIgogCi0jOiBidWlsdGluL2hlbHAuYzozNjgKKyM6IGJ1aWx0aW4vaGVscC5jOjM2NgogbXNnaWQgIm5vIG1hbiB2aWV3ZXIgaGFuZGxlZCB0aGUgcmVxdWVzdCIKIG1zZ3N0ciAi5rKh5pyJIG1hbiDmn6XnnIvlmajlpITnkIbmraTor7fmsYIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjM3NgorIzogYnVpbHRpbi9oZWxwLmM6Mzc0CiBtc2dpZCAibm8gaW5mbyB2aWV3ZXIgaGFuZGxlZCB0aGUgcmVxdWVzdCIKIG1zZ3N0ciAi5rKh5pyJIGluZm8g5p+l55yL5Zmo5aSE55CG5q2k6K+35rGCIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjIKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMAogbXNnaWQgIkRlZmluaW5nIGF0dHJpYnV0ZXMgcGVyIHBhdGgiCiBtc2dzdHIgIuWumuS5iei3r+W+hOeahOWxnuaApyIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDIzCisjOiBidWlsdGluL2hlbHAuYzo0MjEKIG1zZ2lkICJBIEdpdCBnbG9zc2FyeSIKIG1zZ3N0ciAiR2l0IOivjeaxh+ihqCIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDI0CisjOiBidWlsdGluL2hlbHAuYzo0MjIKIG1zZ2lkICJTcGVjaWZpZXMgaW50ZW50aW9uYWxseSB1bnRyYWNrZWQgZmlsZXMgdG8gaWdub3JlIgogbXNnc3RyICLlv73nlaXmjIflrprnmoTmnKrot5/ouKrmlofku7YiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyNQorIzogYnVpbHRpbi9oZWxwLmM6NDIzCiBtc2dpZCAiRGVmaW5pbmcgc3VibW9kdWxlIHByb3BlcnRpZXMiCiBtc2dzdHIgIuWumuS5ieWtkOaooee7hOWxnuaApyIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDI2CisjOiBidWlsdGluL2hlbHAuYzo0MjQKIG1zZ2lkICJTcGVjaWZ5aW5nIHJldmlzaW9ucyBhbmQgcmFuZ2VzIGZvciBHaXQiCiBtc2dzdHIgIuaMh+WumiBHaXQg55qE54mI5pys5ZKM54mI5pys6IyD5Zu0IgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjcKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNQogbXNnaWQgIkEgdHV0b3JpYWwgaW50cm9kdWN0aW9uIHRvIEdpdCAoZm9yIHZlcnNpb24gMS41LjEgb3IgbmV3ZXIpIgogbXNnc3RyICLkuIDkuKogR2l0IOaVmeeoi++8iOmSiOWvuSAxLjUuMSDmiJbmm7TmlrDniYjmnKzvvIkiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyOAorIzogYnVpbHRpbi9oZWxwLmM6NDI2CiBtc2dpZCAiQW4gb3ZlcnZpZXcgb2YgcmVjb21tZW5kZWQgd29ya2Zsb3dzIHdpdGggR2l0IgogbXNnc3RyICJHaXQg5o6o6I2Q55qE5bel5L2c5rWB5qaC6KeIIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NDAKKyM6IGJ1aWx0aW4vaGVscC5jOjQzOAogbXNnaWQgIlRoZSBjb21tb24gR2l0IGd1aWRlcyBhcmU6XG4iCiBtc2dzdHIgIuacgOW4uOeUqOeahCBHaXQg5ZCR5a+85pyJ77yaXG4iCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ2MiBidWlsdGluL2hlbHAuYzo0NzgKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2MCBidWlsdGluL2hlbHAuYzo0NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNhZ2U6ICVzJXMiCiBtc2dzdHIgIueUqOazle+8miVzJXMiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ5NAorIzogYnVpbHRpbi9oZWxwLmM6NDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImBnaXQgJXMnIGlzIGFsaWFzZWQgdG8gYCVzJyIKIG1zZ3N0ciAiYGdpdCAlcycg5pivIGAlcycg55qE5Yir5ZCNIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxODIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgdHlwZSBtaXNtYXRjaCBhdCAlcyIKIG1zZ3N0ciAiJXMg55qE5a+56LGh57G75Z6L5LiN5Yy56YWNIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyMDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIwNAogbXNnaWQgIm9iamVjdCBvZiB1bmV4cGVjdGVkIHR5cGUiCiBtc2dzdHIgIuaEj+WklueahOexu+Wei+eahOWvueixoSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjM5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZpbGwgJWQgYnl0ZSIKIG1zZ2lkX3BsdXJhbCAiY2Fubm90IGZpbGwgJWQgYnl0ZXMiCiBtc2dzdHJbMF0gIuaXoOazleWhq+WFhSAlZCDlrZfoioIiCiBtc2dzdHJbMV0gIuaXoOazleWhq+WFhSAlZCDlrZfoioIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI0OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjU0CiBtc2dpZCAiZWFybHkgRU9GIgogbXNnc3RyICLov4fml6nnmoTmlofku7bnu5PmnZ/nrKbvvIhFT0bvvIkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjU1CiBtc2dpZCAicmVhZCBlcnJvciBvbiBpbnB1dCIKIG1zZ3N0ciAi6L6T5YWl5LiK55qE6K+76ZSZ6K+vIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2NwogbXNnaWQgInVzZWQgbW9yZSBieXRlcyB0aGFuIHdlcmUgYXZhaWxhYmxlIgogbXNnc3RyICLnlKjmjonkuobotoXov4flj6/nlKjnmoTlrZfoioIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjc0CiBtc2dpZCAicGFjayB0b28gbGFyZ2UgZm9yIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiBvZmZfdCIKIG1zZ3N0ciAi5YyF5aSq5aSn6LaF6L+H5LqG5b2T5YmNIG9mZl90IOeahOWumuS5iSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjg1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSAnJXMnIgogbXNnc3RyICLkuI3og73liJvlu7ogJyVzJyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjkwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gcGFja2ZpbGUgJyVzJyIKIG1zZ3N0ciAi5peg5rOV5omT5byA5YyF5paH5Lu2ICclcyciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA5CiBtc2dpZCAicGFjayBzaWduYXR1cmUgbWlzbWF0Y2giCiBtc2dzdHIgIuWMheetvuWQjeS4jeWMuemFjSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFjayB2ZXJzaW9uICU8UFJJdTMyPiB1bnN1cHBvcnRlZCIKIG1zZ3N0ciAi5LiN5pSv5oyB5YyF54mI5pysICU8UFJJdTMyPiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzI0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMjkKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFjayBoYXMgYmFkIG9iamVjdCBhdCBvZmZzZXQgJWx1OiAlcyIKIG1zZ3N0ciAi5YyF5Lit5pyJ6ZSZ6K+v55qE5a+56LGh5L2N5LqOICVsde+8miVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo0NDYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbmZsYXRlIHJldHVybmVkICVkIgogbXNnc3RyICLop6PljovnvKnov5Tlm54gJWQiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTAwCiBtc2dpZCAib2Zmc2V0IHZhbHVlIG92ZXJmbG93IGZvciBkZWx0YSBiYXNlIG9iamVjdCIKIG1zZ3N0ciAi5YGP56e75YC86KaG55uW5LqGIGRlbHRhIOWfuuWHhuWvueixoSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTAzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDgKIG1zZ2lkICJkZWx0YSBiYXNlIG9mZnNldCBpcyBvdXQgb2YgYm91bmQiCiBtc2dzdHIgImRlbHRhIOWfuuWHhuWBj+enu+i2iueVjCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTExCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93biBvYmplY3QgdHlwZSAlZCIKIG1zZ3N0ciAi5pyq55+l5a+56LGh57G75Z6LICVkIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NwogbXNnaWQgImNhbm5vdCBwcmVhZCBwYWNrIGZpbGUiCiBtc2dzdHIgIuaXoOazleivu+WPluWMheaWh+S7tiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicHJlbWF0dXJlIGVuZCBvZiBwYWNrIGZpbGUsICVsdSBieXRlIG1pc3NpbmciCiBtc2dpZF9wbHVyYWwgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZXMgbWlzc2luZyIKIG1zZ3N0clswXSAi5YyF5paH5Lu26L+H5pep57uT5p2f77yM57y65bCRICVsdSDlrZfoioIiCiBtc2dzdHJbMV0gIuWMheaWh+S7tui/h+aXqee7k+adn++8jOe8uuWwkSAlbHUg5a2X6IqCIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3NQogbXNnaWQgInNlcmlvdXMgaW5mbGF0ZSBpbmNvbnNpc3RlbmN5IgogbXNnc3RyICLop6PljovnvKnkuKXph43nmoTkuI3kuIDoh7QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2MSBidWlsdGluL2luZGV4LXBhY2suYzo2NjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjkwCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3MjQgYnVpbHRpbi9pbmRleC1wYWNrLmM6NzMzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjYgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjcyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzI5IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczOAogIywgYy1mb3JtYXQKIG1zZ2lkICJTSEExIENPTExJU0lPTiBGT1VORCBXSVRIICVzICEiCiBtc2dzdHIgIuWPkeeOsCAlcyDlh7rnjrAgU0hBMSDlhrLnqoHvvIEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2NCBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE3MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY5IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTcwCiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI2MgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCAlcyIKIG1zZ3N0ciAi5LiN6IO96K+7ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3MzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBleGlzdGluZyBvYmplY3QgJXMiCiBtc2dzdHIgIuS4jeiDveivu+WPlueOsOWtmOWvueixoSAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzQ0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBibG9iIG9iamVjdCAlcyIKIG1zZ3N0ciAi5peg5pWI55qE5pWw5o2u77yIYmxvYu+8ieWvueixoSAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzU5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCAlcyIKIG1zZ3N0ciAi5peg5pWI55qEICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2NgogbXNnaWQgIkVycm9yIGluIG9iamVjdCIKIG1zZ3N0ciAi5a+56LGh5Lit5Ye66ZSZIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYWxsIGNoaWxkIG9iamVjdHMgb2YgJXMgYXJlIHJlYWNoYWJsZSIKIG1zZ3N0ciAiJXMg55qE5omA5pyJ5a2Q5a+56LGh5bm26Z2e6YO95Y+v6L6+IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzMgYnVpbHRpbi9pbmRleC1wYWNrLmM6ODYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzggYnVpbHRpbi9pbmRleC1wYWNrLmM6ODY4CiBtc2dpZCAiZmFpbGVkIHRvIGFwcGx5IGRlbHRhIgogbXNnc3RyICLml6Dms5XlupTnlKggZGVsdGEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKIG1zZ2lkICJSZWNlaXZpbmcgb2JqZWN0cyIKIG1zZ3N0ciAi5o6l5pS25a+56LGh5LitIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CiBtc2dpZCAiSW5kZXhpbmcgb2JqZWN0cyIKIG1zZ3N0ciAi57Si5byV5a+56LGh5LitIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDMwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1CiBtc2dpZCAicGFjayBpcyBjb3JydXB0ZWQgKFNIQTEgbWlzbWF0Y2gpIgogbXNnc3RyICLljIXlhrLnqoHvvIhTSEExIOS4jeWMuemFje+8iSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzNQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0MAogbXNnaWQgImNhbm5vdCBmc3RhdCBwYWNrZmlsZSIKIG1zZ3N0ciAi5LiN6IO95p6a5Li+5YyF5paH5Lu254q25oCBIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQzCiBtc2dpZCAicGFjayBoYXMganVuayBhdCB0aGUgZW5kIgogbXNnc3RyICLljIXnmoTnu5PlsL7mnInlnoPlnL7mlbDmja4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNTQKIG1zZ2lkICJjb25mdXNpb24gYmV5b25kIGluc2FuaXR5IGluIHBhcnNlX3BhY2tfb2JqZWN0cygpIgogbXNnc3RyICJwYXJzZV9wYWNrX29iamVjdHMoKSDkuK3pgYfliLDkuI3lj6/nkIbllrvnmoTpl67popgiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzcKIG1zZ2lkICJSZXNvbHZpbmcgZGVsdGFzIgogbXNnc3RyICLlpITnkIYgZGVsdGEg5LitIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGhyZWFkOiAlcyIKIG1zZ3N0ciAi5LiN6IO95Yib5bu657q/56iL77yaJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMjQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMjkKIG1zZ2lkICJjb25mdXNpb24gYmV5b25kIGluc2FuaXR5IgogbXNnc3RyICLkuI3lj6/nkIbllrsiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMzIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29tcGxldGVkIHdpdGggJWQgbG9jYWwgb2JqZWN0cyIKIG1zZ3N0ciAi5a6M5oiQICVkIOS4quacrOWcsOWvueixoSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmV4cGVjdGVkIHRhaWwgY2hlY2tzdW0gZm9yICVzIChkaXNrIGNvcnJ1cHRpb24/KSIKIG1zZ3N0ciAi5a+5ICVzIOeahOWwvumDqOagoemqjOWHuueOsOaEj+Wklu+8iOejgeebmOaNn+Wdj++8n++8iSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhIgogbXNnaWRfcGx1cmFsICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhcyIKIG1zZ3N0clswXSAi5YyF5pyJICVkIOS4quacquino+WGs+eahCBkZWx0YSIKIG1zZ3N0clsxXSAi5YyF5pyJICVkIOS4quacquino+WGs+eahCBkZWx0YSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZGVmbGF0ZSBhcHBlbmRlZCBvYmplY3QgKCVkKSIKIG1zZ3N0ciAi5LiN6IO95Y6L57yp6ZmE5Yqg5a+56LGh77yIJWTvvIkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNTUKICMsIGMtZm9ybWF0CiBtc2dpZCAibG9jYWwgb2JqZWN0ICVzIGlzIGNvcnJ1cHQiCiBtc2dzdHIgIuacrOWcsOWvueixoSAlcyDlt7LmjZ/lnY8iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzkKIG1zZ2lkICJlcnJvciB3aGlsZSBjbG9zaW5nIHBhY2sgZmlsZSIKIG1zZ3N0ciAi5YWz6Zet5YyF5paH5Lu25pe25Ye66ZSZIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjg3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCB3cml0ZSBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAi5peg5rOV5YaZ5L+d55WZ5paH5Lu2ICclcyciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyOTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNsb3NlIHdyaXR0ZW4ga2VlcCBmaWxlICclcyciCiBtc2dzdHIgIuaXoOazleWFs+mXreS/neeVmeaWh+S7tiAnJXMnIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzA4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzEzCiBtc2dpZCAiY2Fubm90IHN0b3JlIHBhY2sgZmlsZSIKIG1zZ3N0ciAi5peg5rOV5a2Y5YKo5YyF5paH5Lu2IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzE5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzI0CiBtc2dpZCAiY2Fubm90IHN0b3JlIGluZGV4IGZpbGUiCiBtc2dzdHIgIuaXoOazleWtmOWCqOe0ouW8leaWh+S7tiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgogbXNnc3RyICLlnY/nmoQgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIHRocmVhZHMgc3BlY2lmaWVkICglZCkiCiBtc2dzdHIgIuaMh+WumueahOe6v+eoi+aVsOaXoOaViO+8iCVk77yJIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0aHJlYWRzIHN1cHBvcnQsIGlnbm9yaW5nICVzIgogbXNnc3RyICLmsqHmnInnur/nqIvmlK/mjIHvvIzlv73nlaUgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBmaWxlICclcyciCiBtc2dzdHIgIuaXoOazleaJk+W8gOeOsOWtmOWMheaWh+S7tiAnJXMnIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDIyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgaWR4IGZpbGUgZm9yICclcyciCiBtc2dzdHIgIuaXoOazleS4uiAlcyDmiZPlvIDljIXntKLlvJXmlofku7YiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NjkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAibm9uIGRlbHRhOiAlZCBvYmplY3QiCiBtc2dpZF9wbHVyYWwgIm5vbiBkZWx0YTogJWQgb2JqZWN0cyIKIG1zZ3N0clswXSAi6Z2eIGRlbHRh77yaJWQg5Liq5a+56LGhIgogbXNnc3RyWzFdICLpnZ4gZGVsdGHvvJolZCDkuKrlr7nosaEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3QiCiBtc2dpZF9wbHVyYWwgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0cyIKIG1zZ3N0clswXSAi6ZO+6ZW/ID0gJWQ6ICVsdSDlr7nosaEiCiBtc2dzdHJbMV0gIumTvumVvyA9ICVkOiAlbHUg5a+56LGhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTAzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTA5CiBtc2dpZCAiQ2Fubm90IGNvbWUgYmFjayB0byBjd2QiCiBtc2dzdHIgIuaXoOazlei/lOWbnuW9k+WJjeW3peS9nOebruW9lSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTUwCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCAlcyIKIG1zZ3N0ciAi6ZSZ6K+v6YCJ6aG5ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTgwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTkwCiBtc2dpZCAiLS1maXgtdGhpbiBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IC0tc3RkaW4iCiBtc2dzdHIgIi0tZml4LXRoaW4g5LiN6IO95ZKMIC0tc3RkaW4g5ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTg0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrZmlsZSBuYW1lICclcycgZG9lcyBub3QgZW5kIHdpdGggJy5wYWNrJyIKIG1zZ3N0ciAi5YyF5ZCNICclcycg5rKh5pyJ5LulICcucGFjaycg57uT5bC+IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNjAzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNjEzCiBtc2dpZCAiLS12ZXJpZnkgd2l0aCBubyBwYWNrZmlsZSBuYW1lIGdpdmVuIgogbXNnc3RyICItLXZlcmlmeSDmsqHmnInmj5DkvpvljIXlkI3lj4LmlbAiCiAKQEAgLTU3MzAsNyArNTk2Nyw3IEBACiBtc2dpZCAic3BlY2lmeSB0aGF0IHRoZSBnaXQgcmVwb3NpdG9yeSBpcyB0byBiZSBzaGFyZWQgYW1vbmdzdCBzZXZlcmFsIHVzZXJzIgogbXNnc3RyICLmjIflrpogZ2l0IOeJiOacrOW6k+aYr+WkmuS4queUqOaIt+S5i+mXtOWFseS6q+eahCIKIAotIzogYnVpbHRpbi9pbml0LWRiLmM6NDkzIGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzcKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CiBtc2dpZCAiYmUgcXVpZXQiCiBtc2dzdHIgIuS/neaMgeWuiemdmSIKIApAQCAtNTc2MiwzNDAgKzU5OTksMzUzIEBACiBtc2dpZCAiQ2Fubm90IGFjY2VzcyB3b3JrIHRyZWUgJyVzJyIKIG1zZ3N0ciAi5LiN6IO96K6/6Zeu5bel5L2c5Yy6ICclcyciCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NDAKKyM6IGJ1aWx0aW4vbG9nLmM6NDEKIG1zZ2lkICJnaXQgbG9nIFs8b3B0aW9ucz5dIFs8cmV2aXNpb24gcmFuZ2U+XSBbWy0tXSA8cGF0aD4uLi5dXG4iCiBtc2dzdHIgImdpdCBsb2cgWzzpgInpobk+XSBbPOeJiOacrOiMg+WbtD5dIFtbLS1dIDzot6/lvoQ+Li4uXVxuIgogCi0jOiBidWlsdGluL2xvZy5jOjQxCisjOiBidWlsdGluL2xvZy5jOjQyCiBtc2dpZCAiICAgb3I6IGdpdCBzaG93IFtvcHRpb25zXSA8b2JqZWN0Pi4uLiIKIG1zZ3N0ciAiICAg5oiW6ICF77yaZ2l0IHNob3cgW+mAiemhuV0gPOWvueixoT4uLi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTAzCisjOiBidWlsdGluL2xvZy5jOjEyNAogbXNnaWQgInN1cHByZXNzIGRpZmYgb3V0cHV0IgogbXNnc3RyICLkuI3mmL7npLrlt67lvILovpPlh7oiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA0CisjOiBidWlsdGluL2xvZy5jOjEyNQogbXNnaWQgInNob3cgc291cmNlIgogbXNnc3RyICLmmL7npLrmupAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA1CisjOiBidWlsdGluL2xvZy5jOjEyNgogbXNnaWQgIlVzZSBtYWlsIG1hcCBmaWxlIgogbXNnc3RyICLkvb/nlKjpgq7ku7bmmKDlsITmlofku7YiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA2CisjOiBidWlsdGluL2xvZy5jOjEyNwogbXNnaWQgImRlY29yYXRlIG9wdGlvbnMiCiBtc2dzdHIgIuS/rumlsOmAiemhuSIKIAotIzogYnVpbHRpbi9sb2cuYzoxOTkKKyM6IGJ1aWx0aW4vbG9nLmM6MjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZpbmFsIG91dHB1dDogJWQgJXNcbiIKIG1zZ3N0ciAi5pyA57uI6L6T5Ye677yaJWQgJXNcbiIKIAotIzogYnVpbHRpbi9sb2cuYzo0MjIgYnVpbHRpbi9sb2cuYzo1MTQKKyM6IGJ1aWx0aW4vbG9nLmM6NDUzIGJ1aWx0aW4vbG9nLmM6NTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIG9iamVjdCAlcyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+W5a+56LGhICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjUzOAorIzogYnVpbHRpbi9sb2cuYzo1NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biB0eXBlOiAlZCIKIG1zZ3N0ciAi5pyq55+l57G75Z6L77yaJWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NjM4CisjOiBidWlsdGluL2xvZy5jOjY2OQogbXNnaWQgImZvcm1hdC5oZWFkZXJzIHdpdGhvdXQgdmFsdWUiCiBtc2dzdHIgImZvcm1hdC5oZWFkZXJzIOayoeacieWAvCIKIAotIzogYnVpbHRpbi9sb2cuYzo3MjAKKyM6IGJ1aWx0aW4vbG9nLmM6NzUxCiBtc2dpZCAibmFtZSBvZiBvdXRwdXQgZGlyZWN0b3J5IGlzIHRvbyBsb25nIgogbXNnc3RyICLovpPlh7rnm67lvZXlkI3lpKrplb8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzM2CisjOiBidWlsdGluL2xvZy5jOjc2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBwYXRjaCBmaWxlICVzIgogbXNnc3RyICLml6Dms5XmiZPlvIDooaXkuIHmlofku7YgJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzUwCisjOiBidWlsdGluL2xvZy5jOjc4MQogbXNnaWQgIk5lZWQgZXhhY3RseSBvbmUgcmFuZ2UuIgogbXNnc3RyICLlj6rpnIDopoHkuIDkuKrojIPlm7TjgIIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzU4CisjOiBidWlsdGluL2xvZy5jOjc4OQogbXNnaWQgIk5vdCBhIHJhbmdlLiIKIG1zZ3N0ciAi5LiN5piv5LiA5Liq6IyD5Zu044CCIgogCi0jOiBidWlsdGluL2xvZy5jOjg2MAorIzogYnVpbHRpbi9sb2cuYzo4OTEKIG1zZ2lkICJDb3ZlciBsZXR0ZXIgbmVlZHMgZW1haWwgZm9ybWF0IgogbXNnc3RyICLkv6HlsIHpnIDopoHpgq7ku7blnLDlnYDmoLzlvI8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6OTM2CisjOiBidWlsdGluL2xvZy5jOjk2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnNhbmUgaW4tcmVwbHktdG86ICVzIgogbXNnc3RyICLkuI3mraPluLjnmoQgaW4tcmVwbHktdG/vvJolcyIKIAotIzogYnVpbHRpbi9sb2cuYzo5NjQKKyM6IGJ1aWx0aW4vbG9nLmM6OTk1CiBtc2dpZCAiZ2l0IGZvcm1hdC1wYXRjaCBbb3B0aW9uc10gWzxzaW5jZT4gfCA8cmV2aXNpb24gcmFuZ2U+XSIKIG1zZ3N0ciAiZ2l0IGZvcm1hdC1wYXRjaCBb6YCJ6aG5XSBbPOS7jj4gfCA85L+u6K6i6ZuG6IyD5Zu0Pl0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTAwOQorIzogYnVpbHRpbi9sb2cuYzoxMDQwCiBtc2dpZCAiVHdvIG91dHB1dCBkaXJlY3Rvcmllcz8iCiBtc2dzdHIgIuS4pOS4qui+k+WHuuebruW9le+8nyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTA4CisjOiBidWlsdGluL2xvZy5jOjExNTUKIG1zZ2lkICJ1c2UgW1BBVENIIG4vbV0gZXZlbiB3aXRoIGEgc2luZ2xlIHBhdGNoIgogbXNnc3RyICLkvb/nlKggW1BBVENIIG4vbV3vvIzljbPkvb/lj6rmnInkuIDkuKrooaXkuIEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExMQorIzogYnVpbHRpbi9sb2cuYzoxMTU4CiBtc2dpZCAidXNlIFtQQVRDSF0gZXZlbiB3aXRoIG11bHRpcGxlIHBhdGNoZXMiCiBtc2dzdHIgIuS9v+eUqCBbUEFUQ0hd77yM5Y2z5L2/5pyJ5aSa5Liq6KGl5LiBIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2MgogbXNnaWQgInByaW50IHBhdGNoZXMgdG8gc3RhbmRhcmQgb3V0IgogbXNnc3RyICLmiZPljbDooaXkuIHliLDmoIflh4bovpPlh7oiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExNworIzogYnVpbHRpbi9sb2cuYzoxMTY0CiBtc2dpZCAiZ2VuZXJhdGUgYSBjb3ZlciBsZXR0ZXIiCiBtc2dzdHIgIueUn+aIkOS4gOWwgemZhOS/oSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE5CisjOiBidWlsdGluL2xvZy5jOjExNjYKIG1zZ2lkICJ1c2Ugc2ltcGxlIG51bWJlciBzZXF1ZW5jZSBmb3Igb3V0cHV0IGZpbGUgbmFtZXMiCiBtc2dzdHIgIuS9v+eUqOeugOWNleeahOaVsOWtl+W6j+WIl+S9nOS4uui+k+WHuuaWh+S7tuWQjSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTIwCisjOiBidWlsdGluL2xvZy5jOjExNjcKIG1zZ2lkICJzZngiCiBtc2dzdHIgIuWQjue8gCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTIxCisjOiBidWlsdGluL2xvZy5jOjExNjgKIG1zZ2lkICJ1c2UgPHNmeD4gaW5zdGVhZCBvZiAnLnBhdGNoJyIKIG1zZ3N0ciAi5L2/55SoIDzlkI7nvIA+IOS7o+abvyAnLnBhdGNoJyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTIzCisjOiBidWlsdGluL2xvZy5jOjExNzAKIG1zZ2lkICJzdGFydCBudW1iZXJpbmcgcGF0Y2hlcyBhdCA8bj4gaW5zdGVhZCBvZiAxIgogbXNnc3RyICLooaXkuIHku6UgPG4+IOW8gOWni+e8luWPt++8jOiAjOS4jeaYrzEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNQorIzogYnVpbHRpbi9sb2cuYzoxMTcyCiBtc2dpZCAibWFyayB0aGUgc2VyaWVzIGFzIE50aCByZS1yb2xsIgogbXNnc3RyICLmoIforrDooaXkuIHns7vliJfmmK/nrKzlh6DmrKHph43liLYiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNworIzogYnVpbHRpbi9sb2cuYzoxMTc0CiBtc2dpZCAiVXNlIFs8cHJlZml4Pl0gaW5zdGVhZCBvZiBbUEFUQ0hdIgogbXNnc3RyICLkvb/nlKggWzzliY3nvIA+XSDku6Pmm78gW1BBVENIXSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMwCisjOiBidWlsdGluL2xvZy5jOjExNzcKIG1zZ2lkICJzdG9yZSByZXN1bHRpbmcgZmlsZXMgaW4gPGRpcj4iCiBtc2dzdHIgIuaKiue7k+aenOaWh+S7tuWtmOWCqOWcqCA8ZGlyPiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMzCisjOiBidWlsdGluL2xvZy5jOjExODAKIG1zZ2lkICJkb24ndCBzdHJpcC9hZGQgW1BBVENIXSIKIG1zZ3N0ciAi5LiN5Yig6ZmkL+a3u+WKoCBbUEFUQ0hdIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzYKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4MwogbXNnaWQgImRvbid0IG91dHB1dCBiaW5hcnkgZGlmZnMiCiBtc2dzdHIgIuS4jei+k+WHuuS6jOi/m+WItuW3ruW8giIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM4CisjOiBidWlsdGluL2xvZy5jOjExODUKIG1zZ2lkICJkb24ndCBpbmNsdWRlIGEgcGF0Y2ggbWF0Y2hpbmcgYSBjb21taXQgdXBzdHJlYW0iCiBtc2dzdHIgIuS4jeWMheWQq+W3suWcqOS4iua4uOaPkOS6pOS4reeahOihpeS4gSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQwCisjOiBidWlsdGluL2xvZy5jOjExODcKIG1zZ2lkICJzaG93IHBhdGNoIGZvcm1hdCBpbnN0ZWFkIG9mIGRlZmF1bHQgKHBhdGNoICsgc3RhdCkiCiBtc2dzdHIgIuaYvuekuue6r+ihpeS4geagvOW8j+iAjOmdnum7mOiupOeahO+8iOihpeS4gSvnirbmgIHvvIkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MgorIzogYnVpbHRpbi9sb2cuYzoxMTg5CiBtc2dpZCAiTWVzc2FnaW5nIgogbXNnc3RyICLpgq7ku7blj5HpgIEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MworIzogYnVpbHRpbi9sb2cuYzoxMTkwCiBtc2dpZCAiaGVhZGVyIgogbXNnc3RyICJoZWFkZXIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0NAorIzogYnVpbHRpbi9sb2cuYzoxMTkxCiBtc2dpZCAiYWRkIGVtYWlsIGhlYWRlciIKIG1zZ3N0ciAi5re75Yqg6YKu5Lu25aS0IgogCi0jOiBidWlsdGluL2xvZy5jOjExNDUgYnVpbHRpbi9sb2cuYzoxMTQ3CisjOiBidWlsdGluL2xvZy5jOjExOTIgYnVpbHRpbi9sb2cuYzoxMTk0CiBtc2dpZCAiZW1haWwiCiBtc2dzdHIgIumCruS7tuWcsOWdgCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ1CisjOiBidWlsdGluL2xvZy5jOjExOTIKIG1zZ2lkICJhZGQgVG86IGhlYWRlciIKIG1zZ3N0ciAi5re75Yqg5pS25Lu25Lq6IgogCi0jOiBidWlsdGluL2xvZy5jOjExNDcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NAogbXNnaWQgImFkZCBDYzogaGVhZGVyIgogbXNnc3RyICLmt7vliqDmioTpgIEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0OQorIzogYnVpbHRpbi9sb2cuYzoxMTk2Cittc2dpZCAiaWRlbnQiCittc2dzdHIgImlkZW50IgorCisjOiBidWlsdGluL2xvZy5jOjExOTcKK21zZ2lkICJzZXQgRnJvbSBhZGRyZXNzIHRvIDxpZGVudD4gKG9yIGNvbW1pdHRlciBpZGVudCBpZiBhYnNlbnQpIgorbXNnc3RyICLorr7nva4gRnJvbSDlnLDlnYDkuLogPGlkZW50Pu+8iOWmguiLpeS4jeaPkOS+m++8jOeUqOaPkOS6pOiAhUlE5YGa5Li65Zyw5Z2A77yJIgorCisjOiBidWlsdGluL2xvZy5jOjExOTkKIG1zZ2lkICJtZXNzYWdlLWlkIgogbXNnc3RyICJtZXNzYWdlLWlkIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMAogbXNnaWQgIm1ha2UgZmlyc3QgbWFpbCBhIHJlcGx5IHRvIDxtZXNzYWdlLWlkPiIKIG1zZ3N0ciAi5L2/56ys5LiA5bCB6YKu5Lu25L2c5Li65a+5IDxtZXNzYWdlLWlkPiDnmoTlm57lpI0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MSBidWlsdGluL2xvZy5jOjExNTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMSBidWlsdGluL2xvZy5jOjEyMDQKIG1zZ2lkICJib3VuZGFyeSIKIG1zZ3N0ciAi6L6555WMIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMgogbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCiBtc2dzdHIgIumZhOS7tuaWueW8j+a3u+WKoOihpeS4gSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTU1CisjOiBidWlsdGluL2xvZy5jOjEyMDUKIG1zZ2lkICJpbmxpbmUgdGhlIHBhdGNoIgogbXNnc3RyICLlhoXogZTmmL7npLrooaXkuIEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1OQorIzogYnVpbHRpbi9sb2cuYzoxMjA5CiBtc2dpZCAiZW5hYmxlIG1lc3NhZ2UgdGhyZWFkaW5nLCBzdHlsZXM6IHNoYWxsb3csIGRlZXAiCiBtc2dzdHIgIuWQr+eUqOmCruS7tue6v+e0ou+8jOmjjuagvO+8mua1he+8jOa3sSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTYxCisjOiBidWlsdGluL2xvZy5jOjEyMTEKIG1zZ2lkICJzaWduYXR1cmUiCiBtc2dzdHIgIuetvuWQjSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTYyCisjOiBidWlsdGluL2xvZy5jOjEyMTIKIG1zZ2lkICJhZGQgYSBzaWduYXR1cmUiCiBtc2dzdHIgIua3u+WKoOS4gOS4quetvuWQjSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTY0CisjOiBidWlsdGluL2xvZy5jOjEyMTQKIG1zZ2lkICJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIgogbXNnc3RyICLkuI3opoHmiZPljbDooaXkuIHmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI0OAorIzogYnVpbHRpbi9sb2cuYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWRlbnQgbGluZTogJXMiCittc2dzdHIgIuWMheWQq+aXoOaViOeahOi6q+S7veagh+ivhu+8miVzIgorCisjOiBidWlsdGluL2xvZy5jOjEzMDMKIG1zZ2lkICItbiBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIi1uIOWSjCAtayDkupLmlqXjgIIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI1MAorIzogYnVpbHRpbi9sb2cuYzoxMzA1CiBtc2dpZCAiLS1zdWJqZWN0LXByZWZpeCBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIi0tc3ViamVjdC1wcmVmaXgg5ZKMIC1rIOS6kuaWpeOAgiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjU4CisjOiBidWlsdGluL2xvZy5jOjEzMTMKIG1zZ2lkICItLW5hbWUtb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICItLW5hbWUtb25seSDml6DmhI/kuYkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI2MAorIzogYnVpbHRpbi9sb2cuYzoxMzE1CiBtc2dpZCAiLS1uYW1lLXN0YXR1cyBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICItLW5hbWUtc3RhdHVzIOaXoOaEj+S5iSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjYyCisjOiBidWlsdGluL2xvZy5jOjEzMTcKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tY2hlY2sg5peg5oSP5LmJIgogCi0jOiBidWlsdGluL2xvZy5jOjEyODUKKyM6IGJ1aWx0aW4vbG9nLmM6MTM0MAogbXNnaWQgInN0YW5kYXJkIG91dHB1dCwgb3IgZGlyZWN0b3J5LCB3aGljaCBvbmU/IgogbXNnc3RyICLmoIflh4bovpPlh7rmiJbnm67lvZXvvIzlk6rkuIDkuKrvvJ8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI4NworIzogYnVpbHRpbi9sb2cuYzoxMzQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5ICclcyciCiBtc2dzdHIgIuS4jeiDveWIm+W7uuebruW9lSAnJXMnIgogCi0jOiBidWlsdGluL2xvZy5jOjE0MzUKKyM6IGJ1aWx0aW4vbG9nLmM6MTQ5MAogbXNnaWQgIkZhaWxlZCB0byBjcmVhdGUgb3V0cHV0IGZpbGVzIgogbXNnc3RyICLml6Dms5XliJvlu7rovpPlh7rmlofku7YiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ4NAorIzogYnVpbHRpbi9sb2cuYzoxNTM5CiBtc2dpZCAiZ2l0IGNoZXJyeSBbLXZdIFs8dXBzdHJlYW0+IFs8aGVhZD4gWzxsaW1pdD5dXV0iCiBtc2dzdHIgImdpdCBjaGVycnkgWy12XSBbPOS4iua4uD4gWzzlpLQ+IFs86ZmQ5Yi2Pl1dXSIKIAotIzogYnVpbHRpbi9sb2cuYzoxNTM5CisjOiBidWlsdGluL2xvZy5jOjE1OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNvdWxkIG5vdCBmaW5kIGEgdHJhY2tlZCByZW1vdGUgYnJhbmNoLCBwbGVhc2Ugc3BlY2lmeSA8dXBzdHJlYW0+IG1hbnVhbGx5LlxuIgogbXNnc3RyICLkuI3og73mib7liLDot5/ouKrnmoTov5znqIvliIbmlK/vvIzor7fmiYvlt6XmjIflrpogPHVwc3RyZWFtPuOAglxuIgogCi0jOiBidWlsdGluL2xvZy5jOjE1NTIgYnVpbHRpbi9sb2cuYzoxNTU0IGJ1aWx0aW4vbG9nLmM6MTU2NgorIzogYnVpbHRpbi9sb2cuYzoxNjA3IGJ1aWx0aW4vbG9nLmM6MTYwOSBidWlsdGluL2xvZy5jOjE2MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBjb21taXQgJXMiCiBtc2dzdHIgIuacquefpeaPkOS6pCAlcyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQwMgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQwOAogbXNnaWQgImdpdCBscy1maWxlcyBbb3B0aW9uc10gWzxmaWxlPi4uLl0iCiBtc2dzdHIgImdpdCBscy1maWxlcyBb6YCJ6aG5XSBbPOaWh+S7tj4uLi5dIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDU5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CiBtc2dpZCAiaWRlbnRpZnkgdGhlIGZpbGUgc3RhdHVzIHdpdGggdGFncyIKIG1zZ3N0ciAi55So5qCH562+5qCH6K+G5paH5Lu255qE54q25oCBIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDYxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CiBtc2dpZCAidXNlIGxvd2VyY2FzZSBsZXR0ZXJzIGZvciAnYXNzdW1lIHVuY2hhbmdlZCcgZmlsZXMiCiBtc2dzdHIgIuS9v+eUqOWwj+WGmeWtl+avjeihqOekuiAn5YGH6K6+5pyq5pS55Y+Y55qEJyDmlofku7YiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjkKIG1zZ2lkICJzaG93IGNhY2hlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IChkZWZhdWx0KSIKIG1zZ3N0ciAi5pi+56S657yT5a2Y55qE5paH5Lu277yI6buY6K6k77yJIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDcxCiBtc2dpZCAic2hvdyBkZWxldGVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIuaYvuekuuW3suWIoOmZpOeahOaWh+S7tiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MwogbXNnaWQgInNob3cgbW9kaWZpZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAi5pi+56S65bey5L+u5pS555qE5paH5Lu2IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc1CiBtc2dpZCAic2hvdyBvdGhlciBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICLmmL7npLrlhbblroPmlofku7YiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzcKIG1zZ2lkICJzaG93IGlnbm9yZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAi5pi+56S65b+955Wl55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgwCiBtc2dpZCAic2hvdyBzdGFnZWQgY29udGVudHMnIG9iamVjdCBuYW1lIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIuaYvuekuuaaguWtmOWMuuWGheWuueeahOWvueixoeWQjeensCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MgogbXNnaWQgInNob3cgZmlsZXMgb24gdGhlIGZpbGVzeXN0ZW0gdGhhdCBuZWVkIHRvIGJlIHJlbW92ZWQiCiBtc2dzdHIgIuaYvuekuuaWh+S7tuezu+e7n+mcgOimgeWIoOmZpOeahOaWh+S7tiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3OAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NAogbXNnaWQgInNob3cgJ290aGVyJyBkaXJlY3RvcmllcycgbmFtZSBvbmx5IgogbXNnc3RyICLlj6rmmL7npLrigJzlhbbku5bigJ3nm67lvZXnmoTlkI3np7AiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcKIG1zZ2lkICJkb24ndCBzaG93IGVtcHR5IGRpcmVjdG9yaWVzIgogbXNnc3RyICLkuI3mmL7npLrnqbrnm67lvZUiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTAKIG1zZ2lkICJzaG93IHVubWVyZ2VkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIuaYvuekuuacquWQiOW5tueahOaWh+S7tiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MgogbXNnaWQgInNob3cgcmVzb2x2ZS11bmRvIGluZm9ybWF0aW9uIgogbXNnc3RyICLmmL7npLogcmVzb2x2ZS11bmRvIOS/oeaBryIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4OAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NAogbXNnaWQgInNraXAgZmlsZXMgbWF0Y2hpbmcgcGF0dGVybiIKIG1zZ3N0ciAi5Yy56YWN5o6S6Zmk5paH5Lu255qE5qih5byPIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk3CiBtc2dpZCAiZXhjbHVkZSBwYXR0ZXJucyBhcmUgcmVhZCBmcm9tIDxmaWxlPiIKIG1zZ3N0ciAi5LuOIDzmlofku7Y+IOS4reivu+WPluaOkumZpOaooeW8jyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMAogbXNnaWQgInJlYWQgYWRkaXRpb25hbCBwZXItZGlyZWN0b3J5IGV4Y2x1ZGUgcGF0dGVybnMgaW4gPGZpbGU+IgogbXNnc3RyICLku44gPOaWh+S7tj4g6K+75Y+W6aKd5aSW55qE5q+P5Liq55uu5b2V55qE5o6S6Zmk5qih5byPIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCiBtc2dpZCAiYWRkIHRoZSBzdGFuZGFyZCBnaXQgZXhjbHVzaW9ucyIKIG1zZ3N0ciAi5re75Yqg5qCH5YeG55qEIGdpdCDmjpLpmaQiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDUKIG1zZ2lkICJtYWtlIHRoZSBvdXRwdXQgcmVsYXRpdmUgdG8gdGhlIHByb2plY3QgdG9wIGRpcmVjdG9yeSIKIG1zZ3N0ciAi5pi+56S655u45a+55LqO6aG257qn55uu5b2V55qE5paH5Lu25ZCNIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA4CiBtc2dpZCAiaWYgYW55IDxmaWxlPiBpcyBub3QgaW4gdGhlIGluZGV4LCB0cmVhdCB0aGlzIGFzIGFuIGVycm9yIgogbXNnc3RyICLlpoLmnpzku7vkvZUgPOaWh+S7tj4g6YO95LiN5Zyo57Si5byV5Yy677yM6KeG5Li66ZSZ6K+vIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA5CiBtc2dpZCAidHJlZS1pc2giCiBtc2dzdHIgIuagkeaIluaPkOS6pCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMAogbXNnaWQgInByZXRlbmQgdGhhdCBwYXRocyByZW1vdmVkIHNpbmNlIDx0cmVlLWlzaD4gYXJlIHN0aWxsIHByZXNlbnQiCiBtc2dzdHIgIuWBh+ijheiHquS7jiA85qCR5oiW5o+Q5LqkPiDkuYvlkI7liKDpmaTnmoTot6/lvoTku43nhLblrZjlnKgiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTIKIG1zZ2lkICJzaG93IGRlYnVnZ2luZyBkYXRhIgogbXNnc3RyICLmmL7npLrosIPor5XmlbDmja4iCiAKQEAgLTYxNDcsMTY4ICs2Mzk3LDE2OCBAQAogbXNnaWQgImdpdCBtZXJnZSAtLWFib3J0IgogbXNnc3RyICJnaXQgbWVyZ2UgLS1hYm9ydCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkwCisjOiBidWlsdGluL21lcmdlLmM6OTgKIG1zZ2lkICJzd2l0Y2ggYG0nIHJlcXVpcmVzIGEgdmFsdWUiCiBtc2dzdHIgIuW8gOWFsyBgbScg6ZyA6KaB5LiA5Liq5YC8IgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI3CisjOiBidWlsdGluL21lcmdlLmM6MTM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmaW5kIG1lcmdlIHN0cmF0ZWd5ICclcycuXG4iCiBtc2dzdHIgIuS4jeiDveaJvuWIsOWQiOW5tuetlueVpSAnJXMn44CCXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIHN0cmF0ZWdpZXMgYXJlOiIKIG1zZ3N0ciAi5Y+v55So55qE562W55Wl5pyJ77yaIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTMzCisjOiBidWlsdGluL21lcmdlLmM6MTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBjdXN0b20gc3RyYXRlZ2llcyBhcmU6IgogbXNnc3RyICLlj6/nlKjnmoToh6rlrprkuYnnrZbnlaXmnInvvJoiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKIG1zZ2lkICJkbyBub3Qgc2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgogbXNnc3RyICLlnKjlkIjlubbnmoTmnIDlkI7kuI3mmL7npLrlt67lvILnu5/orqEiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDEKIG1zZ2lkICJzaG93IGEgZGlmZnN0YXQgYXQgdGhlIGVuZCBvZiB0aGUgbWVyZ2UiCiBtc2dzdHIgIuWcqOWQiOW5tueahOacgOWQjuaYvuekuuW3ruW8gue7n+iuoSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4NworIzogYnVpbHRpbi9tZXJnZS5jOjIwMgogbXNnaWQgIihzeW5vbnltIHRvIC0tc3RhdCkiCiBtc2dzdHIgIu+8iOWSjCAtLXN0YXQg5ZCM5LmJ77yJIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg5CisjOiBidWlsdGluL21lcmdlLmM6MjA0CiBtc2dpZCAiYWRkIChhdCBtb3N0IDxuPikgZW50cmllcyBmcm9tIHNob3J0bG9nIHRvIG1lcmdlIGNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICLlnKjlkIjlubbmj5DkuqTkv6Hmga/kuK3mt7vliqDvvIjmnIDlpJogPG4+IOadoe+8ieeyvueugOaPkOS6pOiusOW9lSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5MgorIzogYnVpbHRpbi9tZXJnZS5jOjIwNwogbXNnaWQgImNyZWF0ZSBhIHNpbmdsZSBjb21taXQgaW5zdGVhZCBvZiBkb2luZyBhIG1lcmdlIgogbXNnc3RyICLliJvlu7rkuIDkuKrljZXni6znmoTmj5DkuqTogIzkuI3mmK/lgZrkuIDmrKHlkIjlubYiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKIG1zZ2lkICJwZXJmb3JtIGEgY29tbWl0IGlmIHRoZSBtZXJnZSBzdWNjZWVkcyAoZGVmYXVsdCkiCiBtc2dzdHIgIuWmguaenOWQiOW5tuaIkOWKn++8jOaJp+ihjOS4gOasoeaPkOS6pO+8iOm7mOiupO+8iSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5NgorIzogYnVpbHRpbi9tZXJnZS5jOjIxMQogbXNnaWQgImVkaXQgbWVzc2FnZSBiZWZvcmUgY29tbWl0dGluZyIKIG1zZ3N0ciAi5Zyo5o+Q5Lqk5YmN57yW6L6R5o+Q5Lqk6K+05piOIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTk4CisjOiBidWlsdGluL21lcmdlLmM6MjEyCiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIChkZWZhdWx0KSIKIG1zZ3N0ciAi5YWB6K645b+r6L+b77yI6buY6K6k77yJIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjAwCisjOiBidWlsdGluL21lcmdlLmM6MjE0CiBtc2dpZCAiYWJvcnQgaWYgZmFzdC1mb3J3YXJkIGlzIG5vdCBwb3NzaWJsZSIKIG1zZ3N0ciAi5aaC5p6c5LiN6IO95b+r6L+b5bCx5pS+5byD5ZCI5bm2IgogCi0jOiBidWlsdGluL21lcmdlLmM6MjAzCisjOiBidWlsdGluL21lcmdlLmM6MjE4CiBtc2dpZCAiVmVyaWZ5IHRoYXQgdGhlIG5hbWVkIGNvbW1pdCBoYXMgYSB2YWxpZCBHUEcgc2lnbmF0dXJlIgogbXNnc3RyICLpqozor4HmjIflrprnmoTmj5DkuqTmmK/lkKbljIXlkKvkuIDkuKrmnInmlYjnmoQgR1BHIOetvuWQjSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNCBidWlsdGluL25vdGVzLmM6ODY2IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL21lcmdlLmM6MjE5IGJ1aWx0aW4vbm90ZXMuYzo3MzggYnVpbHRpbi9yZXZlcnQuYzoxMTQKIG1zZ2lkICJzdHJhdGVneSIKIG1zZ3N0ciAi562W55WlIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA1CisjOiBidWlsdGluL21lcmdlLmM6MjIwCiBtc2dpZCAibWVyZ2Ugc3RyYXRlZ3kgdG8gdXNlIgogbXNnc3RyICLopoHkvb/nlKjnmoTlkIjlubbnrZbnlaUiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjEKIG1zZ2lkICJvcHRpb249dmFsdWUiCiBtc2dzdHIgIm9wdGlvbj12YWx1ZSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNworIzogYnVpbHRpbi9tZXJnZS5jOjIyMgogbXNnaWQgIm9wdGlvbiBmb3Igc2VsZWN0ZWQgbWVyZ2Ugc3RyYXRlZ3kiCiBtc2dzdHIgIuaJgOmAieeahOWQiOW5tuetlueVpeeahOmAiemhuSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwOQorIzogYnVpbHRpbi9tZXJnZS5jOjIyNAogbXNnaWQgIm1lcmdlIGNvbW1pdCBtZXNzYWdlIChmb3IgYSBub24tZmFzdC1mb3J3YXJkIG1lcmdlKSIKIG1zZ3N0ciAi5ZCI5bm255qE5o+Q5Lqk6K+05piO77yI6ZKI5a+56Z2e5b+r6L+b5byP5ZCI5bm277yJIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjEzCisjOiBidWlsdGluL21lcmdlLmM6MjI4CiBtc2dpZCAiYWJvcnQgdGhlIGN1cnJlbnQgaW4tcHJvZ3Jlc3MgbWVyZ2UiCiBtc2dzdHIgIuaUvuW8g+W9k+WJjeato+WcqOi/m+ihjOeahOWQiOW5tiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI0MgorIzogYnVpbHRpbi9tZXJnZS5jOjI1NwogbXNnaWQgImNvdWxkIG5vdCBydW4gc3Rhc2guIgogbXNnc3RyICLkuI3og73ov5vooYzov5vluqbkv53lrZjjgIIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNjIKIG1zZ2lkICJzdGFzaCBmYWlsZWQiCiBtc2dzdHIgIui/m+W6puS/neWtmOWksei0pSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI1MgorIzogYnVpbHRpbi9tZXJnZS5jOjI2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgYSB2YWxpZCBvYmplY3Q6ICVzIgogbXNnc3RyICLkuI3mmK/kuIDkuKrmnInmlYjlr7nosaHvvJolcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI3MSBidWlsdGluL21lcmdlLmM6Mjg4CisjOiBidWlsdGluL21lcmdlLmM6Mjg2IGJ1aWx0aW4vbWVyZ2UuYzozMDMKIG1zZ2lkICJyZWFkLXRyZWUgZmFpbGVkIgogbXNnc3RyICLor7vlj5bmoJHlpLHotKUiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogYnVpbHRpbi9tZXJnZS5jOjMxOAorIzogYnVpbHRpbi9tZXJnZS5jOjMzMwogbXNnaWQgIiAobm90aGluZyB0byBzcXVhc2gpIgogbXNnc3RyICIg77yI5peg5Y+v5Y6L57yp77yJIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzMxCisjOiBidWlsdGluL21lcmdlLmM6MzQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNxdWFzaCBjb21taXQgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKIG1zZ3N0ciAi5Y6L57yp5o+Q5LqkIC0tIOacquabtOaWsCBIRUFEXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozNjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNzgKIG1zZ2lkICJXcml0aW5nIFNRVUFTSF9NU0ciCiBtc2dzdHIgIuWGmeWFpSBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzY1CisjOiBidWlsdGluL21lcmdlLmM6MzgwCiBtc2dpZCAiRmluaXNoaW5nIFNRVUFTSF9NU0ciCiBtc2dzdHIgIuWujOaIkCBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL21lcmdlLmM6Mzg4CisjOiBidWlsdGluL21lcmdlLmM6NDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG1lcmdlIG1lc3NhZ2UgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKIG1zZ3N0ciAi5peg5ZCI5bm25L+h5oGvIC0tIOacquabtOaWsCBIRUFEXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo0MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKIG1zZ3N0ciAiJyVzJyDmsqHmnInmjIflkJHkuIDkuKrmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo1NTAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo1NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQmFkIGJyYW5jaC4lcy5tZXJnZW9wdGlvbnMgc3RyaW5nOiAlcyIKIG1zZ3N0ciAi5Z2P55qEIGJyYW5jaC4lcy5tZXJnZW9wdGlvbnMg5a2X56ym5Liy77yaJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2NDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2NTcKIG1zZ2lkICJnaXQgd3JpdGUtdHJlZSBmYWlsZWQgdG8gd3JpdGUgYSB0cmVlIgogbXNnc3RyICJnaXQgd3JpdGUtdHJlZSDml6Dms5XlhpnlhaXkuIDmoJHlr7nosaEiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2NzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2ODUKIG1zZ2lkICJOb3QgaGFuZGxpbmcgYW55dGhpbmcgb3RoZXIgdGhhbiB0d28gaGVhZHMgbWVyZ2UuIgogbXNnc3RyICLkuI3og73lpITnkIbkuKTkuKrlpLTlkIjlubbkuYvlpJbnmoTku7vkvZXmk43kvZzjgIIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2ODUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBvcHRpb24gZm9yIG1lcmdlLXJlY3Vyc2l2ZTogLVglcyIKIG1zZ3N0ciAibWVyZ2UtcmVjdXJzaXZlIOeahOacquefpemAiemhue+8mi1YJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2OTkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo3MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlICVzIgogbXNnc3RyICLkuI3og73lhpkgJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo3ODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgZnJvbSAnJXMnIgogbXNnc3RyICLkuI3og73ku44gJyVzJyDor7vlj5YiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo3OTcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGNvbW1pdHRpbmcgbWVyZ2U7IHVzZSAnZ2l0IGNvbW1pdCcgdG8gY29tcGxldGUgdGhlIG1lcmdlLlxuIgogbXNnc3RyICLmnKrmj5DkuqTlkIjlubbvvIzkvb/nlKggJ2dpdCBjb21taXQnIOWujOaIkOatpOasoeWQiOW5tuOAglxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODAzCisjOiBidWlsdGluL21lcmdlLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgYSBjb21taXQgbWVzc2FnZSB0byBleHBsYWluIHdoeSB0aGlzIG1lcmdlIGlzIG5lY2Vzc2FyeSxcbiIKQEAgLTYzMjIsNTIgKzY1NzIsNDcgQEAKICJcbiIKICLku6UgJyVjJyDlvIDlpLTnmoTooYzlsIbooqvlv73nlaXvvIzogIzkuJTnqbrmj5DkuqTor7TmmI7lsIbkvJrnu4jmraLmj5DkuqTjgIJcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjgyNworIzogYnVpbHRpbi9tZXJnZS5jOjg0MQogbXNnaWQgIkVtcHR5IGNvbW1pdCBtZXNzYWdlLiIKIG1zZ3N0ciAi56m65o+Q5Lqk5L+h5oGv44CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODM5CisjOiBidWlsdGluL21lcmdlLmM6ODUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvbmRlcmZ1bC5cbiIKIG1zZ3N0ciAi5aSq5qOS5LqG44CCXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIGZhaWxlZDsgZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBjb21taXQgdGhlIHJlc3VsdC5cbiIKIG1zZ3N0ciAi6Ieq5Yqo5ZCI5bm25aSx6LSl77yM5L+u5q2j5Yay56qB54S25ZCO5o+Q5Lqk5L+u5q2j55qE57uT5p6c44CCXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MjAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBpcyBub3QgYSBjb21taXQiCiBtc2dzdHIgIiclcycg5LiN5piv5LiA5Liq5o+Q5LqkIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTYxCisjOiBidWlsdGluL21lcmdlLmM6OTc1CiBtc2dpZCAiTm8gY3VycmVudCBicmFuY2guIgogbXNnc3RyICLmsqHmnInlvZPliY3liIbmlK/jgIIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzcKIG1zZ2lkICJObyByZW1vdGUgZm9yIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIuW9k+WJjeWIhuaUr+ayoeacieWvueW6lOeahOi/nOeoi+eJiOacrOW6k+OAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2NQorIzogYnVpbHRpbi9tZXJnZS5jOjk3OQogbXNnaWQgIk5vIGRlZmF1bHQgdXBzdHJlYW0gZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAi5b2T5YmN5YiG5pSv5rKh5pyJ5a6a5LmJ6buY6K6k55qE5LiK5ri45YiG5pSv44CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTcwCisjOiBidWlsdGluL21lcmdlLmM6OTg0CiAjLCBjLWZvcm1hdAotbXNnaWQgIk5vIHJlbW90ZSB0cmFja2luZyBicmFuY2ggZm9yICVzIGZyb20gJXMiCi1tc2dzdHIgIiVzIOayoeacieadpeiHqiAlcyDnmoTov5znqIvot5/ouKrliIbmlK8iCittc2dpZCAiTm8gcmVtb3RlLXRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKK21zZ3N0ciAi5a+55LqOICVzIOayoeacieadpeiHqiAlcyDnmoTov5znqIvot5/ouKrliIbmlK8iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDU3IGJ1aWx0aW4vbWVyZ2UuYzoxMjE0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIiVzIC0gbm90IHNvbWV0aGluZyB3ZSBjYW4gbWVyZ2UiCi1tc2dzdHIgIiVzIC0g5LiN6IO96KKr5ZCI5bm2IgotCi0jOiBidWlsdGluL21lcmdlLmM6MTEyNQorIzogYnVpbHRpbi9tZXJnZS5jOjExNDAKIG1zZ2lkICJUaGVyZSBpcyBubyBtZXJnZSB0byBhYm9ydCAoTUVSR0VfSEVBRCBtaXNzaW5nKS4iCiBtc2dzdHIgIuayoeacieimgee7iOatoueahOWQiOW5tu+8iE1FUkdFX0hFQUQg5Lii5aSx77yJ44CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0MSBnaXQtcHVsbC5zaDozMQorIzogYnVpbHRpbi9tZXJnZS5jOjExNTYgZ2l0LXB1bGwuc2g6MzEKIG1zZ2lkICIiCiAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIG1lcmdlIChNRVJHRV9IRUFEIGV4aXN0cykuXG4iCiAiUGxlYXNlLCBjb21taXQgeW91ciBjaGFuZ2VzIGJlZm9yZSB5b3UgY2FuIG1lcmdlLiIKQEAgLTYzNzUsMTEgKzY2MjAsMTEgQEAKICLmgqjlsJrmnKrnu5PmnZ/mgqjnmoTlkIjlubbvvIjlrZjlnKggTUVSR0VfSEVBRO+8ieOAglxuIgogIuivt+WcqOWQiOW5tuWJjeWFiOaPkOS6pOaCqOeahOS/ruaUueOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDQgZ2l0LXB1bGwuc2g6MzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTU5IGdpdC1wdWxsLnNoOjM0CiBtc2dpZCAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIG1lcmdlIChNRVJHRV9IRUFEIGV4aXN0cykuIgogbXNnc3RyICLmgqjlsJrmnKrnu5PmnZ/mgqjnmoTlkIjlubbvvIjlrZjlnKggTUVSR0VfSEVBRO+8ieOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTYzCiBtc2dpZCAiIgogIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdHMpLlxuIgogIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCkBAIC02Mzg3LDEwMCArNjYzMiwxMDEgQEAKICLmgqjlsJrmnKrnu5PmnZ/mgqjnmoTmi6PpgInvvIjlrZjlnKggQ0hFUlJZX1BJQ0tfSEVBRO+8ieOAglxuIgogIuivt+WcqOWQiOW5tuWJjeWFiOaPkOS6pOaCqOeahOS/ruaUueOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNTEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTY2CiBtc2dpZCAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIGNoZXJyeS1waWNrIChDSEVSUllfUElDS19IRUFEIGV4aXN0cykuIgogbXNnc3RyICLmgqjlsJrmnKrnu5PmnZ/mgqjnmoTmi6PpgInvvIjlrZjlnKggQ0hFUlJZX1BJQ0tfSEVBRO+8ieOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNjAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTc1CiBtc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tc3F1YXNoIHdpdGggLS1uby1mZi4iCiBtc2dzdHIgIuaCqOS4jeiDveWwhiAtLXNxdWFzaCDkuI4gLS1uby1mZiDlkIzml7bkvb/nlKjjgIIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTY1Ci1tc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tbm8tZmYgd2l0aCAtLWZmLW9ubHkuIgotbXNnc3RyICLmgqjkuI3og73lsIYgLS1uby1mZiDkuI4gLS1mZi1vbmx5IOWQjOaXtuS9v+eUqOOAgiIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjExNzIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTg0CiBtc2dpZCAiTm8gY29tbWl0IHNwZWNpZmllZCBhbmQgbWVyZ2UuZGVmYXVsdFRvVXBzdHJlYW0gbm90IHNldC4iCiBtc2dzdHIgIuacquaMh+WumuaPkOS6pOW5tuS4lCBtZXJnZS5kZWZhdWx0VG9VcHN0cmVhbSDmnKrorr7nva7jgIIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA0CisjOiBidWlsdGluL21lcmdlLmM6MTIxNgogbXNnaWQgIkNhbiBtZXJnZSBvbmx5IGV4YWN0bHkgb25lIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIuWPquiDveWwhuS4gOS4quaPkOS6pOWQiOW5tuWIsOepuuWIhuaUr+S4iiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjE5CiBtc2dpZCAiU3F1YXNoIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQgbm90IHN1cHBvcnRlZCB5ZXQiCiBtc2dzdHIgIuWwmuS4jeaUr+aMgeWIsOepuuWIhuaUr+eahOWOi+e8qeaPkOS6pCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjIxCiBtc2dpZCAiTm9uLWZhc3QtZm9yd2FyZCBjb21taXQgZG9lcyBub3QgbWFrZSBzZW5zZSBpbnRvIGFuIGVtcHR5IGhlYWQiCiBtc2dzdHIgIuWIsOepuuWIhuaUr+eahOmdnuW/q+i/m+W8j+aPkOS6pOayoeacieaEj+S5iSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC0gbm90IHNvbWV0aGluZyB3ZSBjYW4gbWVyZ2UiCittc2dzdHIgIiVzIC0g5LiN6IO96KKr5ZCI5bm2IgorCisjOiBidWlsdGluL21lcmdlLmM6MTI3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGFuIHVudHJ1c3RlZCBHUEcgc2lnbmF0dXJlLCBhbGxlZ2VkbHkgYnkgJXMuIgogbXNnc3RyICLmj5DkuqQgJXMg5pyJ5LiA5Liq6Z2e5Y+v5L+h55qE5aOw56ew5p2l6IeqICVzIOeahCBHUEcg562+5ZCN44CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI2OAorIzogYnVpbHRpbi9tZXJnZS5jOjEyODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGhhcyBhIGJhZCBHUEcgc2lnbmF0dXJlIGFsbGVnZWRseSBieSAlcy4iCiBtc2dzdHIgIuaPkOS6pCAlcyDmnInkuIDkuKrplJnor6/nmoTlo7Dnp7DmnaXoh6ogJXMg55qEIEdQRyDnrb7lkI3jgIIiCiAKICMuICdOJwotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIGEgR1BHIHNpZ25hdHVyZS4iCiBtc2dzdHIgIuaPkOS6pCAlcyDmsqHmnInkuIDkuKogR1BHIOetvuWQjeOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYSBnb29kIEdQRyBzaWduYXR1cmUgYnkgJXNcbiIKIG1zZ3N0ciAi5o+Q5LqkICVzIOacieS4gOS4quadpeiHqiAlcyDnmoTlpb3nmoQgR1BHIOetvuWQjeOAglxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTM1OAorIzogYnVpbHRpbi9tZXJnZS5jOjEzNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBkYXRpbmcgJXMuLiVzXG4iCiBtc2dzdHIgIuabtOaWsCAlcy4uJXNcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzOTcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDA5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRyeWluZyByZWFsbHkgdHJpdmlhbCBpbi1pbmRleCBtZXJnZS4uLlxuIgogbXNnc3RyICLlsJ3or5XpnZ7luLjlsI/nmoTntKLlvJXlhoXlkIjlubYuLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vcGUuXG4iCiBtc2dzdHIgIuaXoOOAglxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQzNgorIzogYnVpbHRpbi9tZXJnZS5jOjE0NDgKIG1zZ2lkICJOb3QgcG9zc2libGUgdG8gZmFzdC1mb3J3YXJkLCBhYm9ydGluZy4iCiBtc2dzdHIgIuaXoOazleW/q+i/m++8jOe7iOatouOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0NTkgYnVpbHRpbi9tZXJnZS5jOjE1MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDcxIGJ1aWx0aW4vbWVyZ2UuYzoxNTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJld2luZGluZyB0aGUgdHJlZSB0byBwcmlzdGluZS4uLlxuIgogbXNnc3RyICLlsIbmoJHlm57mu5roh7Pljp/lp4vnirbmgIEuLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0NjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRyeWluZyBtZXJnZSBzdHJhdGVneSAlcy4uLlxuIgogbXNnc3RyICLlsJ3or5XlkIjlubbnrZbnlaUgJXMuLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1MjkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG1lcmdlIHN0cmF0ZWd5IGhhbmRsZWQgdGhlIG1lcmdlLlxuIgogbXNnc3RyICLmsqHmnInlkIjlubbnrZbnlaXlpITnkIbmraTlkIjlubbjgIJcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1lcmdlIHdpdGggc3RyYXRlZ3kgJXMgZmFpbGVkLlxuIgogbXNnc3RyICLkvb/nlKjnrZbnlaUgJXMg5ZCI5bm25aSx6LSl44CCXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQwCisjOiBidWlsdGluL21lcmdlLmM6MTU1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2luZyB0aGUgJXMgdG8gcHJlcGFyZSByZXNvbHZpbmcgYnkgaGFuZC5cbiIKIG1zZ3N0ciAi5L2/55SoICVzIOS7peWHhuWkh+aJi+W3peino+WGs+OAglxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTU1MgorIzogYnVpbHRpbi9tZXJnZS5jOjE1NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIHdlbnQgd2VsbDsgc3RvcHBlZCBiZWZvcmUgY29tbWl0dGluZyBhcyByZXF1ZXN0ZWRcbiIKIG1zZ3N0ciAi6Ieq5Yqo5ZCI5bm26L+b5bGV6aG65Yip77yM5oyJ6KaB5rGC5Zyo5o+Q5Lqk5YmN5YGc5q2iXG4iCkBAIC02NjQ2LDQ3ICs2ODkyLDUxIEBACiBtc2dpZCAicmVuYW1pbmcgJyVzJyBmYWlsZWQiCiBtc2dzdHIgIumHjeWRveWQjSAnJXMnIOWksei0pSIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI1OQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gPGNvbW1pdD4uLi4iCiBtc2dzdHIgImdpdCBuYW1lLXJldiBb6YCJ6aG5XSA85o+Q5LqkPi4uLiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MAogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1hbGwiCiBtc2dzdHIgImdpdCBuYW1lLXJldiBb6YCJ6aG5XSAtLWFsbCIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NworIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1zdGRpbiIKIG1zZ3N0ciAiZ2l0IG5hbWUtcmV2IFvpgInpobldIC0tc3RkaW4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMjkKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTMKIG1zZ2lkICJwcmludCBvbmx5IG5hbWVzIChubyBTSEEtMSkiCiBtc2dzdHIgIuWPquaJk+WNsOWQjeensO+8iOaXoCBTSEEtMe+8iSIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzMAorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxNAogbXNnaWQgIm9ubHkgdXNlIHRhZ3MgdG8gbmFtZSB0aGUgY29tbWl0cyIKIG1zZ3N0ciAi5Y+q5L2/55SoIHRhZ3Mg5p2l5ZG95ZCN5o+Q5LqkIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjMyCisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE2CiBtc2dpZCAib25seSB1c2UgcmVmcyBtYXRjaGluZyA8cGF0dGVybj4iCiBtc2dzdHIgIuWPquS9v+eUqOWSjCA85qih5byPPiDnm7jljLnphY3nmoTlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzQKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTgKIG1zZ2lkICJsaXN0IGFsbCBjb21taXRzIHJlYWNoYWJsZSBmcm9tIGFsbCByZWZzIgogbXNnc3RyICLliJflh7rlj6/ku6Xku47miYDmnInlvJXnlKjorr/pl67nmoTmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzUKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTkKIG1zZ2lkICJyZWFkIGZyb20gc3RkaW4iCiBtc2dzdHIgIuS7juagh+WHhui+k+WFpeivu+WPliIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyMAogbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgogbXNnc3RyICLlhYHorrjmiZPljbAgYOacquWumuS5iWAg55qE5ZCN56ewIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjYKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMjYKK21zZ2lkICJkZXJlZmVyZW5jZSB0YWdzIGluIHRoZSBpbnB1dCAoaW50ZXJuYWwgdXNlKSIKK21zZ3N0ciAi5Y+N5ZCR6Kej5p6Q6L6T5YWl5Lit55qEIHRhZ3PvvIjlhoXpg6jkvb/nlKjvvIkiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIFtsaXN0IFs8b2JqZWN0Pl1dIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDzms6jop6PlvJXnlKg+XSBbbGlzdCBbPOWvueixoT5dXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3CisjOiBidWlsdGluL25vdGVzLmM6MjUKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYWRkIFstZl0gWy1tIDxtc2c+IHwgLUYgPGZpbGU+IHwgKC1jIHwgLUMpICIKICI8b2JqZWN0Pl0gWzxvYmplY3Q+XSIKQEAgLTY2OTQsMTEgKzY5NDQsMTEgQEAKICJnaXQgbm90ZXMgWy0tcmVmIDzms6jop6PlvJXnlKg+XSBhZGQgWy1mXSBbLW0gPOivtOaYjj4gfCAtRiA85paH5Lu2PiB8ICgtYyB8IC1DKSA85a+5IgogIuixoT5dIFs85a+56LGhPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyOAorIzogYnVpbHRpbi9ub3Rlcy5jOjI2CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gY29weSBbLWZdIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPOazqOino+W8leeUqD5dIGNvcHkgWy1mXSA85rqQ5a+56LGhPiA855uu5qCH5a+56LGhPiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5CisjOiBidWlsdGluL25vdGVzLmM6MjcKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYXBwZW5kIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCkBAIC02NzA2LDI1NSArNjk1NiwyMzQgQEAKICJnaXQgbm90ZXMgWy0tcmVmIDzms6jop6PlvJXnlKg+XSBhcHBlbmQgWy1tIDzor7TmmI4+IHwgLUYgPOaWh+S7tj4gfCAoLWMgfCAtQykgPOWvueixoSIKICI+XSBbPOWvueixoT5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGVkaXQgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA85rOo6Kej5byV55SoPl0gZWRpdCBbPOWvueixoT5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA85rOo6Kej5byV55SoPl0gc2hvdyBbPOWvueixoT5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzIKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMAogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDxzdHJhdGVneT4gXSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA85rOo6Kej5byV55SoPl0gbWVyZ2UgWy12IHwgLXFdIFstcyA8562W55WlPiBdIDzms6jop6PlvJXnlKg+IgogCi0jOiBidWlsdGluL25vdGVzLmM6MzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMQogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbLXYgfCAtcV0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbLXYgfCAtcV0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNAorIzogYnVpbHRpbi9ub3Rlcy5jOjMyCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWy12IHwgLXFdIgogbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNQorIzogYnVpbHRpbi9ub3Rlcy5jOjMzCiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcmVtb3ZlIFs8b2JqZWN0Pi4uLl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPOazqOino+W8leeUqD5dIHJlbW92ZSBbPOWvueixoT4uLi5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzYKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHBydW5lIFstbiB8IC12XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA85rOo6Kej5byV55SoPl0gcHJ1bmUgWy1uIHwgLXZdIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzcKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGdldC1yZWYiCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPOazqOino+W8leeUqD5dIGdldC1yZWYiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo0MgorIzogYnVpbHRpbi9ub3Rlcy5jOjQwCiBtc2dpZCAiZ2l0IG5vdGVzIFtsaXN0IFs8b2JqZWN0Pl1dIgogbXNnc3RyICJnaXQgbm90ZXMgW2xpc3QgWzzlr7nosaE+XV0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo0NworIzogYnVpbHRpbi9ub3Rlcy5jOjQ1CiBtc2dpZCAiZ2l0IG5vdGVzIGFkZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgYWRkIFs86YCJ6aG5Pl0gWzzlr7nosaE+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUyCisjOiBidWlsdGluL25vdGVzLmM6NTAKIG1zZ2lkICJnaXQgbm90ZXMgY29weSBbPG9wdGlvbnM+XSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgogbXNnc3RyICJnaXQgbm90ZXMgY29weSBbPOmAiemhuT5dIDzmupDlr7nosaE+IDznm67moIflr7nosaE+IgogCi0jOiBidWlsdGluL25vdGVzLmM6NTMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MQogbXNnaWQgImdpdCBub3RlcyBjb3B5IC0tc3RkaW4gWzxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD5dLi4uIgogbXNnc3RyICJnaXQgbm90ZXMgY29weSAtLXN0ZGluIFs85rqQ5a+56LGhPiA855uu5qCH5a+56LGhPl0uLi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2CiBtc2dpZCAiZ2l0IG5vdGVzIGFwcGVuZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgYXBwZW5kIFs86YCJ6aG5Pl0gWzzlr7nosaE+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYzCisjOiBidWlsdGluL25vdGVzLmM6NjEKIG1zZ2lkICJnaXQgbm90ZXMgZWRpdCBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgZWRpdCBbPOWvueixoT5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2NgogbXNnaWQgImdpdCBub3RlcyBzaG93IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBzaG93IFs85a+56LGhPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3MworIzogYnVpbHRpbi9ub3Rlcy5jOjcxCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIFs8b3B0aW9ucz5dIDxub3Rlc19yZWY+IgogbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgWzzpgInpobk+XSA85rOo6Kej5byV55SoPiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjc0CisjOiBidWlsdGluL25vdGVzLmM6NzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbPOmAiemhuT5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MwogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFs8b3B0aW9ucz5dIgogbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbPOmAiemhuT5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3OAogbXNnaWQgImdpdCBub3RlcyByZW1vdmUgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIHJlbW92ZSBbPOWvueixoT5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4MwogbXNnaWQgImdpdCBub3RlcyBwcnVuZSBbPG9wdGlvbnM+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIHBydW5lIFs86YCJ6aG5Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg4CiBtc2dpZCAiZ2l0IG5vdGVzIGdldC1yZWYiCiBtc2dzdHIgImdpdCBub3RlcyBnZXQtcmVmIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTM5CisjOiBidWlsdGluL25vdGVzLmM6MTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGFydCAnc2hvdycgZm9yIG9iamVjdCAnJXMnIgogbXNnc3RyICLkuI3og73kuLrlr7nosaEgJyVzJyDlvIDlp4sgJ3Nob3cnIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTQzCisjOiBidWlsdGluL25vdGVzLmM6MTQxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgJ3Nob3cnIG91dHB1dCIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WICdzaG93JyDnmoTovpPlh7oiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNTEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGZpbmlzaCAnc2hvdycgZm9yIG9iamVjdCAnJXMnIgogbXNnc3RyICLml6Dms5XkuLrlr7nosaEgJyVzJyDlrozmiJAgJ3Nob3cnIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTY5IGJ1aWx0aW4vdGFnLmM6MzQxCisjOiBidWlsdGluL25vdGVzLmM6MTY3IGJ1aWx0aW4vdGFnLmM6MzQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgZmlsZSAnJXMnIgogbXNnc3RyICLkuI3og73liJvlu7rmlofku7YgJyVzJyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE4OAorIzogYnVpbHRpbi9ub3Rlcy5jOjE4NgogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG5vdGUgY29udGVudHMgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbiIKIG1zZ3N0ciAi6K+36YCa6L+HIC1tIOaIliAtRiDpgInpobnkuLrms6jop6Pmj5DkvpvlhoXlrrkiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyMDkgYnVpbHRpbi9ub3Rlcy5jOjk3MgorIzogYnVpbHRpbi9ub3Rlcy5jOjIwNyBidWlsdGluL25vdGVzLmM6ODQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nIG5vdGUgZm9yIG9iamVjdCAlc1xuIgogbXNnc3RyICLliKDpmaTlr7nosaEgJXMg55qE5rOo6KejXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyMTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMTIKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbm90ZSBvYmplY3QiCiBtc2dzdHIgIuS4jeiDveWGmeazqOino+WvueixoSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjIxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgbm90ZSBjb250ZW50cyBoYXMgYmVlbiBsZWZ0IGluICVzIgogbXNnc3RyICLms6jop6PlhoXlrrnooqvnlZnlnKjmlofku7YgJXMg5LitIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjUwIGJ1aWx0aW4vdGFnLmM6NTQwCisjOiBidWlsdGluL25vdGVzLmM6MjQ4IGJ1aWx0aW4vdGFnLmM6NTQwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICclcyciCiBtc2dzdHIgIuS4jeiDveivu+WPliAnJXMnIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjUyIGJ1aWx0aW4vdGFnLmM6NTQzCisjOiBidWlsdGluL25vdGVzLmM6MjUwIGJ1aWx0aW4vdGFnLmM6NTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuIG9yIHJlYWQgJyVzJyIKIG1zZ3N0ciAi5LiN6IO95omT5byA5oiW6K+75Y+WICclcyciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNzEgYnVpbHRpbi9ub3Rlcy5jOjQ0NCBidWlsdGluL25vdGVzLmM6NDQ2Ci0jOiBidWlsdGluL25vdGVzLmM6NTA2IGJ1aWx0aW4vbm90ZXMuYzo1NjAgYnVpbHRpbi9ub3Rlcy5jOjY0MwotIzogYnVpbHRpbi9ub3Rlcy5jOjY0OCBidWlsdGluL25vdGVzLmM6NzIzIGJ1aWx0aW4vbm90ZXMuYzo3NjUKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5NjcgYnVpbHRpbi90YWcuYzo1NTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNjkgYnVpbHRpbi9ub3Rlcy5jOjMxNiBidWlsdGluL25vdGVzLmM6MzE4CisjOiBidWlsdGluL25vdGVzLmM6Mzc4IGJ1aWx0aW4vbm90ZXMuYzo0MzIgYnVpbHRpbi9ub3Rlcy5jOjUxNQorIzogYnVpbHRpbi9ub3Rlcy5jOjUyMCBidWlsdGluL25vdGVzLmM6NTk1IGJ1aWx0aW4vbm90ZXMuYzo2MzcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4MzkgYnVpbHRpbi90YWcuYzo1NTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIuaXoOazleino+aekCAnJXMnIOS4uuS4gOS4quacieaViOW8leeUqOOAgiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjI3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVhZCBvYmplY3QgJyVzJy4iCiBtc2dzdHIgIuaXoOazleivu+WPluWvueixoSAnJXMn44CCIgogCi0jOiBidWlsdGluL25vdGVzLmM6Mjk4Ci1tc2dpZCAiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIgotbXNnc3RyICLkuI3og73mj5DkuqTmnKrliJ3lp4vljJYv5pyq5byV55So55qE5rOo6Kej5qCRIgotCi0jOiBidWlsdGluL25vdGVzLmM6MzM5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIKLW1zZ3N0ciAi5Z2P55qEIG5vdGVzLnJld3JpdGVNb2RlIOWAvO+8miclcyciCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozNDkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCi1tc2dzdHIgIuaLkue7neWQkSAlc++8iOWcqCByZWZzL25vdGVzLyDkuYvlpJbvvInlhpnlhaXms6jop6MiCi0KLSMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgaXMgdGhlIG5hbWUgb2YgdGhlCi0jLiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHNlY29uZCAlcyBpcyBpdHMgdmFsdWUKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNzYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgotbXNnc3RyICLlnY/nmoQgJXMg5YC877yaJyVzJyIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjQ0MAorIzogYnVpbHRpbi9ub3Rlcy5jOjMxMgogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgaW5wdXQgbGluZTogJyVzJy4iCiBtc2dzdHIgIumdnuazleeahOi+k+WFpeihjO+8miclcyfjgIIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo0NTUKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGNvcHkgbm90ZXMgZnJvbSAnJXMnIHRvICclcyciCiBtc2dzdHIgIuaXoOazleS7jiAnJXMnIOWIsCAnJXMnIOaLt+i0neazqOinoyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NTUzIGJ1aWx0aW4vbm90ZXMuYzo2MjYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzggYnVpbHRpbi9ub3Rlcy5jOjcxMSBidWlsdGluL25vdGVzLmM6NzU4Ci0jOiBidWlsdGluL25vdGVzLmM6MTAzMgorIzogYnVpbHRpbi9ub3Rlcy5jOjM3MSBidWlsdGluL25vdGVzLmM6NDI1IGJ1aWx0aW4vbm90ZXMuYzo0OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MTAgYnVpbHRpbi9ub3Rlcy5jOjU4MyBidWlsdGluL25vdGVzLmM6NjMwCisjOiBidWlsdGluL25vdGVzLmM6OTA0CiBtc2dpZCAidG9vIG1hbnkgcGFyYW1ldGVycyIKIG1zZ3N0ciAi5Y+C5pWw5aSq5aSaIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTEyIGJ1aWx0aW4vbm90ZXMuYzo3NzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzozODQgYnVpbHRpbi9ub3Rlcy5jOjY0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBub3RlIGZvdW5kIGZvciBvYmplY3QgJXMuIgogbXNnc3RyICLmnKrlj5HnjrDlr7nosaEgJXMg55qE5rOo6Kej44CCIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTM0IGJ1aWx0aW4vbm90ZXMuYzo2OTEKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MDYgYnVpbHRpbi9ub3Rlcy5jOjU2MwogbXNnaWQgIm5vdGUgY29udGVudHMgYXMgYSBzdHJpbmciCiBtc2dzdHIgIuazqOino+WGheWuueS9nOS4uuS4gOS4quWtl+espuS4siIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzNyBidWlsdGluL25vdGVzLmM6Njk0CisjOiBidWlsdGluL25vdGVzLmM6NDA5IGJ1aWx0aW4vbm90ZXMuYzo1NjYKIG1zZ2lkICJub3RlIGNvbnRlbnRzIGluIGEgZmlsZSIKIG1zZ3N0ciAi5rOo6Kej5YaF5a655Yiw5LiA5Liq5paH5Lu25LitIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTM5IGJ1aWx0aW4vbm90ZXMuYzo1NDIgYnVpbHRpbi9ub3Rlcy5jOjY5NgotIzogYnVpbHRpbi9ub3Rlcy5jOjY5OSBidWlsdGluL3RhZy5jOjQ3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjQxMSBidWlsdGluL25vdGVzLmM6NDE0IGJ1aWx0aW4vbm90ZXMuYzo1NjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NzEgYnVpbHRpbi90YWcuYzo0NzQKIG1zZ2lkICJvYmplY3QiCiBtc2dzdHIgIuWvueixoSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0MCBidWlsdGluL25vdGVzLmM6Njk3CisjOiBidWlsdGluL25vdGVzLmM6NDEyIGJ1aWx0aW4vbm90ZXMuYzo1NjkKIG1zZ2lkICJyZXVzZSBhbmQgZWRpdCBzcGVjaWZpZWQgbm90ZSBvYmplY3QiCiBtc2dzdHIgIumHjeeUqOWSjOe8lui+keaMh+WumueahOazqOino+WvueixoSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0MyBidWlsdGluL25vdGVzLmM6NzAwCisjOiBidWlsdGluL25vdGVzLmM6NDE1IGJ1aWx0aW4vbm90ZXMuYzo1NzIKIG1zZ2lkICJyZXVzZSBzcGVjaWZpZWQgbm90ZSBvYmplY3QiCiBtc2dzdHIgIumHjeeUqOaMh+WumueahOazqOino+WvueixoSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0NSBidWlsdGluL25vdGVzLmM6NjEzCisjOiBidWlsdGluL25vdGVzLmM6NDE3IGJ1aWx0aW4vbm90ZXMuYzo0ODUKIG1zZ2lkICJyZXBsYWNlIGV4aXN0aW5nIG5vdGVzIgogbXNnc3RyICLmm7/mjaLlt7LlrZjlnKjnmoTms6jop6MiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NzkKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCBhZGQgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCiAiZXhpc3Rpbmcgbm90ZXMiCiBtc2dzdHIgIuS4jeiDvea3u+WKoOazqOino+OAguWPkeeOsOWvueixoSAlcyDlt7LlrZjlnKjms6jop6PjgILkvb/nlKggJy1mJyDopobnm5bnjrDlrZjms6jop6MiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1ODQgYnVpbHRpbi9ub3Rlcy5jOjY2MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQ1NiBidWlsdGluL25vdGVzLmM6NTMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk92ZXJ3cml0aW5nIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXNcbiIKIG1zZ3N0ciAi6KaG55uW5a+56LGhICVzIOeOsOWtmOazqOino1xuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjE0CisjOiBidWlsdGluL25vdGVzLmM6NDg2CiBtc2dpZCAicmVhZCBvYmplY3RzIGZyb20gc3RkaW4iCiBtc2dzdHIgIuS7juagh+WHhui+k+WFpeivu+WPluWvueixoSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjQ4OAogbXNnaWQgImxvYWQgcmV3cml0aW5nIGNvbmZpZyBmb3IgPGNvbW1hbmQ+IChpbXBsaWVzIC0tc3RkaW4pIgogbXNnc3RyICLph43mlrDliqDovb0gPOWRveS7pD4g55qE6YWN572u77yI6ZqQ5ZCrIC0tc3RkaW7vvIkiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYKIG1zZ2lkICJ0b28gZmV3IHBhcmFtZXRlcnMiCiBtc2dzdHIgIuWPguaVsOWkquWwkSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY1NQorIzogYnVpbHRpbi9ub3Rlcy5jOjUyNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IGNvcHkgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCiAiZXhpc3Rpbmcgbm90ZXMiCiBtc2dzdHIgIuS4jeiDveaLt+i0neazqOino+OAguWPkeeOsOWvueixoSAlcyDlt7LlrZjlnKjms6jop6PjgILkvb/nlKggJy1mJyDopobnm5bnjrDlrZjms6jop6MiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWlzc2luZyBub3RlcyBvbiBzb3VyY2Ugb2JqZWN0ICVzLiBDYW5ub3QgY29weS4iCiBtc2dzdHIgIua6kOWvueixoSAlcyDnvLrlsJHms6jop6PjgILkuI3og73mi7fotJ3jgIIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3MTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSAtbS8tRi8tYy8tQyBvcHRpb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGZvciB0aGUgJ2VkaXQnIHN1YmNvbW1hbmQuXG4iCkBAIC02OTYzLDU4ICs3MTkyLDU4IEBACiAi5a2Q5ZG95LukICdlZGl0JyDnmoTpgInpobkgLW0vLUYvLWMvLUMg5bey5byD55So44CCXG4iCiAi6K+35o2i55SoICdnaXQgbm90ZXMgYWRkIC1mIC1tLy1GLy1jLy1DJ+OAglxuIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODYzCisjOiBidWlsdGluL25vdGVzLmM6NzM1CiBtc2dpZCAiR2VuZXJhbCBvcHRpb25zIgogbXNnc3RyICLpgJrnlKjpgInpobkiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzcKIG1zZ2lkICJNZXJnZSBvcHRpb25zIgogbXNnc3RyICLlkIjlubbpgInpobkiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzkKIG1zZ2lkICIiCiAicmVzb2x2ZSBub3RlcyBjb25mbGljdHMgdXNpbmcgdGhlIGdpdmVuIHN0cmF0ZWd5IChtYW51YWwvb3Vycy90aGVpcnMvdW5pb24vIgogImNhdF9zb3J0X3VuaXEpIgogbXNnc3RyICLkvb/nlKjmjIflrprnmoTnrZbnlaXop6PlhrPms6jop6PlhrLnqoEgKG1hbnVhbC9vdXJzL3RoZWlycy91bmlvbi9jYXRfc29ydF91bmlxKSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2OQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0MQogbXNnaWQgIkNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCiBtc2dzdHIgIuaPkOS6pOacquWQiOW5tueahOazqOinoyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3MQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0MwogbXNnaWQgImZpbmFsaXplIG5vdGVzIG1lcmdlIGJ5IGNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCiBtc2dzdHIgIumAmui/h+aPkOS6pOacquWQiOW5tueahOazqOino+adpeWujOaIkOazqOino+WQiOW5tiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3MworIzogYnVpbHRpbi9ub3Rlcy5jOjc0NQogbXNnaWQgIkFib3J0aW5nIG5vdGVzIG1lcmdlIHJlc29sdXRpb24iCiBtc2dzdHIgIuS4reatouazqOino+WQiOW5tueahOaWueahiCIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0NwogbXNnaWQgImFib3J0IG5vdGVzIG1lcmdlIgogbXNnc3RyICLkuK3mraLms6jop6PlkIjlubYiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5NzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiT2JqZWN0ICVzIGhhcyBubyBub3RlXG4iCiBtc2dzdHIgIuWvueixoSAlcyDmsqHmnInms6jop6NcbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk4MgorIzogYnVpbHRpbi9ub3Rlcy5jOjg1NAogbXNnaWQgImF0dGVtcHQgdG8gcmVtb3ZlIG5vbi1leGlzdGVudCBub3RlIGlzIG5vdCBhbiBlcnJvciIKIG1zZ3N0ciAi5bCd6K+V5Yig6Zmk5LiN5a2Y5Zyo55qE5rOo6Kej5LiN5piv5LiA5Liq6ZSZ6K+vIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTg1CisjOiBidWlsdGluL25vdGVzLmM6ODU3CiBtc2dpZCAicmVhZCBvYmplY3QgbmFtZXMgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIuS7juagh+WHhui+k+WFpeivu+WPluWvueixoeWQjeensCIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MzgKIG1zZ2lkICJub3Rlc19yZWYiCiBtc2dzdHIgIuazqOino+W8leeUqCIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MzkKIG1zZ2lkICJ1c2Ugbm90ZXMgZnJvbSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAi5LuOIDzms6jop6PlvJXnlKg+IOS9v+eUqOazqOinoyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjExMDIgYnVpbHRpbi9yZW1vdGUuYzoxNTk4CisjOiBidWlsdGluL25vdGVzLmM6OTc0IGJ1aWx0aW4vcmVtb3RlLmM6MTU5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIHN1YmNvbW1hbmQ6ICVzIgogbXNnc3RyICLmnKrnn6XlrZDlkb3ku6TvvJolcyIKQEAgLTcyNDgsNyArNzQ3Nyw3IEBACiAiICAgIGdpdCBwdXNoICVzICVzXG4iCiAiJXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEyMQorIzogYnVpbHRpbi9wdXNoLmM6MTE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCkBAIC03MjYyLDcgKzc0OTEsNyBAQAogIlxuIgogIiAgICBnaXQgcHVzaCAlcyBIRUFEOjxuYW1lLW9mLXJlbW90ZS1icmFuY2g+XG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEyOAorIzogYnVpbHRpbi9wdXNoLmM6MTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG5vIHVwc3RyZWFtIGJyYW5jaC5cbiIKQEAgLTcyNzUsMTIgKzc1MDQsMTIgQEAKICJcbiIKICIgICAgZ2l0IHB1c2ggLS1zZXQtdXBzdHJlYW0gJXMgJXNcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTM2CisjOiBidWlsdGluL3B1c2guYzoxMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBtdWx0aXBsZSB1cHN0cmVhbSBicmFuY2hlcywgcmVmdXNpbmcgdG8gcHVzaC4iCiBtc2dzdHIgIuW9k+WJjeWIhuaUryAlcyDmnInlpJrkuKrkuIrmuLjliIbmlK/vvIzmi5Lnu53mjqjpgIHjgIIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzOQorIzogYnVpbHRpbi9wdXNoLmM6MTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIHB1c2hpbmcgdG8gcmVtb3RlICclcycsIHdoaWNoIGlzIG5vdCB0aGUgdXBzdHJlYW0gb2ZcbiIKQEAgLTcyOTEsNyArNzUyMCw3IEBACiAi6ICM5rKh5pyJ5ZGK6K+J5oiR6KaB5o6o6YCB5LuA5LmI44CB5pu05paw5ZOq5Liq6L+c56iL5YiG5pSv44CCIgogCiAjICDor5HogIXvvJrlrZfnrKbkuLLpppbooYzooYzpppbopoHmt7vliqDigJx3YXJuaW5nOiDigJ3lrZfkuLLvvIzmlYXmraTpppbooYzopoHovoPlhbbkvZnooYznn60KLSM6IGJ1aWx0aW4vcHVzaC5jOjE1MQorIzogYnVpbHRpbi9wdXNoLmM6MTY1CiBtc2dpZCAiIgogInB1c2guZGVmYXVsdCBpcyB1bnNldDsgaXRzIGltcGxpY2l0IHZhbHVlIGlzIGNoYW5naW5nIGluXG4iCiAiR2l0IDIuMCBmcm9tICdtYXRjaGluZycgdG8gJ3NpbXBsZScuIFRvIHNxdWVsY2ggdGhpcyBtZXNzYWdlXG4iCkBAIC03MzIyLDIzICs3NTUxLDIzIEBACiAi77yIJ3NpbXBsZScg5qih5byP55SxIEdpdCAxLjcuMTEg54mI5pys5byV5YWl44CC5aaC5p6c5oKo5pyJ5pe26KaB5L2/55So6ICB54mI5pys55qEIEdpdO+8jFxuIgogIuS4uuS/neaMgeWFvOWuue+8jOivt+eUqCAnY3VycmVudCcg5Luj5pu/ICdzaW1wbGUnIOaooeW8j++8iSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTk5CisjOiBidWlsdGluL3B1c2guYzoyMjUKIG1zZ2lkICIiCiAiWW91IGRpZG4ndCBzcGVjaWZ5IGFueSByZWZzcGVjcyB0byBwdXNoLCBhbmQgcHVzaC5kZWZhdWx0IGlzIFwibm90aGluZ1wiLiIKIG1zZ3N0ciAi5oKo5rKh5pyJ5Li65o6o6YCB5oyH5a6a5Lu75L2V5byV55So6KGo6L6+5byP77yM5bm25LiUIHB1c2guZGVmYXVsdCDkuLogXCJub3RoaW5nXCLjgIIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIwNgorIzogYnVpbHRpbi9wdXNoLmM6MjMyCiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0aXAgb2YgeW91ciBjdXJyZW50IGJyYW5jaCBpcyBiZWhpbmRcbiIKLSJpdHMgcmVtb3RlIGNvdW50ZXJwYXJ0LiBNZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy4gJ2dpdCBwdWxsJylcbiIKLSJiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJpdHMgcmVtb3RlIGNvdW50ZXJwYXJ0LiBJbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuXG4iCisiJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCiAi5pu05paw6KKr5ouS57ud77yM5Zug5Li65oKo5b2T5YmN5YiG5pSv55qE5pyA5paw5o+Q5Lqk6JC95ZCO5LqO5YW25a+55bqU55qE6L+c56iL5YiG5pSv44CCXG4iCi0i5YaN5qyh5o6o6YCB5YmN77yM5YWI5LiO6L+c56iL5Y+Y5pu05ZCI5bm277yI5aaCICdnaXQgcHVsbCfvvInjgILor6bop4FcbiIKKyLlho3mrKHmjqjpgIHliY3vvIzlhYjkuI7ov5znqIvlj5jmm7TlkIjlubbvvIjlpoIgJ2dpdCBwdWxsIC4uLifvvInjgILor6bop4FcbiIKICInZ2l0IHB1c2ggLS1oZWxwJyDkuK3nmoQgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycg5bCP6IqC44CCIgogCi0jOiBidWlsdGluL3B1c2guYzoyMTIKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzOAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCiAiY291bnRlcnBhcnQuIElmIHlvdSBkaWQgbm90IGludGVuZCB0byBwdXNoIHRoYXQgYnJhbmNoLCB5b3UgbWF5IHdhbnQgdG9cbiIKQEAgLTczNTAsMzUgKzc1NzksMzUgQEAKICLphY3nva7lj5jph48gJ3B1c2guZGVmYXVsdCcg6K6+572u5Li6ICdzaW1wbGUn44CBJ2N1cnJlbnQnIOaIliAndXBzdHJlYW0nXG4iCiAi5Lul5L6/5Y+q5o6o6YCB5b2T5YmN5YiG5pSv44CCIgogCi0jOiBidWlsdGluL3B1c2guYzoyMTgKKyM6IGJ1aWx0aW4vcHVzaC5jOjI0NAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCi0iY291bnRlcnBhcnQuIENoZWNrIG91dCB0aGlzIGJyYW5jaCBhbmQgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCi0iKGUuZy4gJ2dpdCBwdWxsJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisiY291bnRlcnBhcnQuIENoZWNrIG91dCB0aGlzIGJyYW5jaCBhbmQgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorIihlLmcuICdnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKIG1zZ3N0ciAiIgogIuabtOaWsOiiq+aLkue7ne+8jOWboOS4uuaOqOmAgeeahOS4gOS4quWIhuaUr+eahOacgOaWsOaPkOS6pOiQveWQjuS6juWFtuWvueW6lOeahOi/nOeoi+WIhuaUr+OAglxuIgotIuajgOWHuuivpeWIhuaUr+W5tuS4jui/nOeoi+WPmOabtOWQiOW5tu+8iOWmgiAnZ2l0IHB1bGwn77yJ77yM54S25ZCO5YaN5o6o6YCB44CC6K+m6KeBXG4iCisi5qOA5Ye66K+l5YiG5pSv5bm25pW05ZCI6L+c56iL5Y+Y5pu077yI5aaCICdnaXQgcHVsbCAuLi4n77yJ77yM54S25ZCO5YaN5o6o6YCB44CC6K+m6KeBXG4iCiAiJ2dpdCBwdXNoIC0taGVscCcg5Lit55qEICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIOWwj+iKguOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjI0CisjOiBidWlsdGluL3B1c2guYzoyNTAKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHJlbW90ZSBjb250YWlucyB3b3JrIHRoYXQgeW91IGRvXG4iCiAibm90IGhhdmUgbG9jYWxseS4gVGhpcyBpcyB1c3VhbGx5IGNhdXNlZCBieSBhbm90aGVyIHJlcG9zaXRvcnkgcHVzaGluZ1xuIgotInRvIHRoZSBzYW1lIHJlZi4gWW91IG1heSB3YW50IHRvIGZpcnN0IG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLixcbiIKLSInZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJ0byB0aGUgc2FtZSByZWYuIFlvdSBtYXkgd2FudCB0byBmaXJzdCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCisiKGUuZy4sICdnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKIG1zZ3N0ciAiIgogIuabtOaWsOiiq+aLkue7ne+8jOWboOS4uui/nOeoi+eJiOacrOW6k+WMheWQq+aCqOacrOWcsOWwmuS4jeWtmOWcqOeahOaPkOS6pOOAgui/memAmuW4uOaYr+WboOS4uuWPpuWkllxuIgotIuS4gOS4queJiOacrOW6k+W3suaOqOmAgeS6huebuOWQjOeahOW8leeUqOOAguWGjeasoeaOqOmAgeWJje+8jOaCqOWPr+iDvemcgOimgeWFiOWQiOW5tui/nOeoi+WPmOabtFxuIgotIu+8iOWmgiAnZ2l0IHB1bGwn77yJ44CCXG4iCisi5LiA5Liq54mI5pys5bqT5bey5ZCR6K+l5byV55So6L+b6KGM5LqG5o6o6YCB44CC5YaN5qyh5o6o6YCB5YmN77yM5oKo5Y+v6IO96ZyA6KaB5YWI5pW05ZCI6L+c56iL5Y+Y5pu0XG4iCisi77yI5aaCICdnaXQgcHVsbCAuLi4n77yJ44CCXG4iCiAi6K+m6KeBICdnaXQgcHVzaCAtLWhlbHAnIOS4reeahCAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyDlsI/oioLjgIIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzMQorIzogYnVpbHRpbi9wdXNoLmM6MjU3CiBtc2dpZCAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRhZyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgcmVtb3RlLiIKIG1zZ3N0ciAi5pu05paw6KKr5ouS57ud5Zug5Li6IHRhZyDlnKjov5znqIvlt7Lnu4/lrZjlnKjjgIIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzNAorIzogYnVpbHRpbi9wdXNoLmM6MjYwCiBtc2dpZCAiIgogIllvdSBjYW5ub3QgdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IHBvaW50cyBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgogIm9yIHVwZGF0ZSBhIHJlbW90ZSByZWYgdG8gbWFrZSBpdCBwb2ludCBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgpAQCAtNzM4NywyMiArNzYxNiwyMiBAQAogIuWmguaenOS4jeS9v+eUqCAnLS1mb3JjZScg5Y+C5pWw77yM5oKo5LiN6IO95pu05paw5LiA5Liq5oyH5ZCR6Z2e5o+Q5Lqk5a+56LGh55qE6L+c56iL5byV55So77yMXG4iCiAi5Lmf5LiN6IO95pu05paw6L+c56iL5byV55So6K6p5YW25oyH5ZCR5LiA5Liq6Z2e5o+Q5Lqk5a+56LGh44CCXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI5NAorIzogYnVpbHRpbi9wdXNoLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlB1c2hpbmcgdG8gJXNcbiIKIG1zZ3N0ciAi5o6o6YCB5YiwICVzXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI5OAorIzogYnVpbHRpbi9wdXNoLmM6MzI0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBwdXNoIHNvbWUgcmVmcyB0byAnJXMnIgogbXNnc3RyICLml6Dms5XmjqjpgIHkuIDkupvlvJXnlKjliLAgJyVzJyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzMxCisjOiBidWlsdGluL3B1c2guYzozNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHJlcG9zaXRvcnkgJyVzJyIKIG1zZ3N0ciAi5Z2P55qE54mI5pys5bqTICclcyciCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMzMgorIzogYnVpbHRpbi9wdXNoLmM6MzU4CiBtc2dpZCAiIgogIk5vIGNvbmZpZ3VyZWQgcHVzaCBkZXN0aW5hdGlvbi5cbiIKICJFaXRoZXIgc3BlY2lmeSB0aGUgVVJMIGZyb20gdGhlIGNvbW1hbmQtbGluZSBvciBjb25maWd1cmUgYSByZW1vdGUgIgpAQCAtNzQyMyw4NyArNzY1Miw4NyBAQAogIlxuIgogIiAgICBnaXQgcHVzaCA8bmFtZT5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ3CisjOiBidWlsdGluL3B1c2guYzozNzMKIG1zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tYWxsIOWSjCAtLXRhZ3Mg5LiN5YW85a65IgogCi0jOiBidWlsdGluL3B1c2guYzozNDgKKyM6IGJ1aWx0aW4vcHVzaC5jOjM3NAogbXNnaWQgIi0tYWxsIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgIi0tYWxsIOS4jeiDveWSjOW8leeUqOihqOi+vuW8j+WQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzUzCisjOiBidWlsdGluL3B1c2guYzozNzkKIG1zZ2lkICItLW1pcnJvciBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tbWlycm9yIOWSjCAtLXRhZ3Mg5LiN5YW85a65IgogCi0jOiBidWlsdGluL3B1c2guYzozNTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MAogbXNnaWQgIi0tbWlycm9yIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgIi0tbWlycm9yIOS4jeiDveWSjOW8leeUqOihqOi+vuW8j+WQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzU5CisjOiBidWlsdGluL3B1c2guYzozODUKIG1zZ2lkICItLWFsbCBhbmQgLS1taXJyb3IgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1hbGwg5ZKMIC0tbWlycm9yIOS4jeWFvOWuuSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDE5CisjOiBidWlsdGluL3B1c2guYzo0NDUKIG1zZ2lkICJyZXBvc2l0b3J5IgogbXNnc3RyICLniYjmnKzlupMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMAorIzogYnVpbHRpbi9wdXNoLmM6NDQ2CiBtc2dpZCAicHVzaCBhbGwgcmVmcyIKIG1zZ3N0ciAi5o6o6YCB5omA5pyJ5byV55SoIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NwogbXNnaWQgIm1pcnJvciBhbGwgcmVmcyIKIG1zZ3N0ciAi6ZWc5YOP5omA5pyJ5byV55SoIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0OQogbXNnaWQgImRlbGV0ZSByZWZzIgogbXNnc3RyICLliKDpmaTlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyNAorIzogYnVpbHRpbi9wdXNoLmM6NDUwCiBtc2dpZCAicHVzaCB0YWdzIChjYW4ndCBiZSB1c2VkIHdpdGggLS1hbGwgb3IgLS1taXJyb3IpIgogbXNnc3RyICLmjqjpgIEgdGFnc++8iOS4jeiDveS9v+eUqCAtLWFsbCBvciAtLW1pcnJvcu+8iSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI3CisjOiBidWlsdGluL3B1c2guYzo0NTMKIG1zZ2lkICJmb3JjZSB1cGRhdGVzIgogbXNnc3RyICLlvLrliLbmm7TmlrAiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyOAorIzogYnVpbHRpbi9wdXNoLmM6NDU0CiBtc2dpZCAiY2hlY2siCiBtc2dzdHIgIuajgOafpSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI5CisjOiBidWlsdGluL3B1c2guYzo0NTUKIG1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBwdXNoaW5nIG9mIHN1Ym1vZHVsZXMiCiBtc2dzdHIgIuaOp+WItuWtkOaooee7hOeahOmAkuW9kuaOqOmAgSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDMxCisjOiBidWlsdGluL3B1c2guYzo0NTcKIG1zZ2lkICJ1c2UgdGhpbiBwYWNrIgogbXNnc3RyICLkvb/nlKjnsr7nroDmiZPljIUiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzMiBidWlsdGluL3B1c2guYzo0MzMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1OCBidWlsdGluL3B1c2guYzo0NTkKIG1zZ2lkICJyZWNlaXZlIHBhY2sgcHJvZ3JhbSIKIG1zZ3N0ciAi5o6l5pS25YyF56iL5bqPIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MAogbXNnaWQgInNldCB1cHN0cmVhbSBmb3IgZ2l0IHB1bGwvc3RhdHVzIgogbXNnc3RyICLorr7nva4gZ2l0IHB1bGwvc3RhdHVzIOeahOS4iua4uCIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM3CisjOiBidWlsdGluL3B1c2guYzo0NjMKIG1zZ2lkICJwcnVuZSBsb2NhbGx5IHJlbW92ZWQgcmVmcyIKIG1zZ3N0ciAi5riF6Zmk5pys5Zyw5Yig6Zmk55qE5byV55SoIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NQogbXNnaWQgImJ5cGFzcyBwcmUtcHVzaCBob29rIgogbXNnc3RyICLnu5Xov4cgcHJlLXB1c2gg6ZKp5a2QIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgogbXNnaWQgInB1c2ggbWlzc2luZyBidXQgcmVsZXZhbnQgdGFncyIKIG1zZ3N0ciAi5o6o6YCB57y65aSx55qE5pyJ5YWz55qEIHRhZ3MiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAorIzogYnVpbHRpbi9wdXNoLmM6NDc2CiBtc2dpZCAiLS1kZWxldGUgaXMgaW5jb21wYXRpYmxlIHdpdGggLS1hbGwsIC0tbWlycm9yIGFuZCAtLXRhZ3MiCiBtc2dzdHIgIi0tZGVsZXRlIOS4jiAtLWFsbOOAgS0tbWlycm9yIOWPiiAtLXRhZ3Mg5LiN5YW85a65IgogCi0jOiBidWlsdGluL3B1c2guYzo0NTIKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3OAogbXNnaWQgIi0tZGVsZXRlIGRvZXNuJ3QgbWFrZSBzZW5zZSB3aXRob3V0IGFueSByZWZzIgogbXNnc3RyICItLWRlbGV0ZSDmnKrmjqXku7vkvZXlvJXnlKjmsqHmnInmhI/kuYkiCiAKQEAgLTc1MTcsNzAgKzc3NDYsODAgQEAKICJ1IFstLWV4Y2x1ZGUtcGVyLWRpcmVjdG9yeT08Z2l0aWdub3JlPl0gfCAtaV1dIFstLW5vLXNwYXJzZS1jaGVja291dF0gWy0tIgogImluZGV4LW91dHB1dD085paH5Lu2Pl0gKC0tZW1wdHkgfCA85qCR5oiW5o+Q5LqkMT4gWzzmoJHmiJbmj5DkuqQyPiBbPOagkeaIluaPkOS6pDM+XV0pIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEwOAorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDkKIG1zZ2lkICJ3cml0ZSByZXN1bHRpbmcgaW5kZXggdG8gPGZpbGU+IgogbXNnc3RyICLlsIbntKLlvJXnu5PmnpzlhpnlhaUgPGZpbGU+IgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTIKIG1zZ2lkICJvbmx5IGVtcHR5IHRoZSBpbmRleCIKIG1zZ3N0ciAi5Y+q5piv5riF56m657Si5byVIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTQKIG1zZ2lkICJNZXJnaW5nIgogbXNnc3RyICLlkIjlubYiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNgogbXNnaWQgInBlcmZvcm0gYSBtZXJnZSBpbiBhZGRpdGlvbiB0byBhIHJlYWQiCiBtc2dzdHIgIuivu+WPluS5i+S9meWGjeaJp+ihjOS4gOS4quWQiOW5tiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTcKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE4CiBtc2dpZCAiMy13YXkgbWVyZ2UgaWYgbm8gZmlsZSBsZXZlbCBtZXJnaW5nIHJlcXVpcmVkIgogbXNnc3RyICLlpoLmnpzmsqHmnInmlofku7bnuqflkIjlubbpnIDopoHvvIzmiafooYzkuInot6/lkIjlubYiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMAogbXNnaWQgIjMtd2F5IG1lcmdlIGluIHByZXNlbmNlIG9mIGFkZHMgYW5kIHJlbW92ZXMiCiBtc2dzdHIgIuWtmOWcqOa3u+WKoOWSjOWIoOmZpOaXtu+8jOS5n+aJp+ihjOS4iei3r+WQiOW5tiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjEKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIyCiBtc2dpZCAic2FtZSBhcyAtbSwgYnV0IGRpc2NhcmQgdW5tZXJnZWQgZW50cmllcyIKIG1zZ3N0ciAi57G75Ly85LqOIC1t77yM5L2G5Lii5byD5pyq5ZCI5bm255qE5p2h55uuIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjMKIG1zZ2lkICI8c3ViZGlyZWN0b3J5Pi8iCiBtc2dzdHIgIjzlrZDnm67lvZU+LyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI0CiBtc2dpZCAicmVhZCB0aGUgdHJlZSBpbnRvIHRoZSBpbmRleCB1bmRlciA8c3ViZGlyZWN0b3J5Pi8iCiBtc2dzdHIgIuivu+WPluagkeWvueixoeWIsOe0ouW8leeahCA85a2Q55uu5b2VPi8g5LiLIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjcKIG1zZ2lkICJ1cGRhdGUgd29ya2luZyB0cmVlIHdpdGggbWVyZ2UgcmVzdWx0IgogbXNnc3RyICLnlKjlkIjlubbnmoTnu5Pmnpzmm7TmlrDlt6XkvZzljLoiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI4CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOQogbXNnaWQgImdpdGlnbm9yZSIKIG1zZ3N0ciAiZ2l0aWdub3JlIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzAKIG1zZ2lkICJhbGxvdyBleHBsaWNpdGx5IGlnbm9yZWQgZmlsZXMgdG8gYmUgb3ZlcndyaXR0ZW4iCiBtc2dzdHIgIuWFgeiuuOW/veeVpeaWh+S7tuS4reiuvuWumueahOaWh+S7tuWPr+S7peiiq+imhuebliIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzIKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMzCiBtc2dpZCAiZG9uJ3QgY2hlY2sgdGhlIHdvcmtpbmcgdHJlZSBhZnRlciBtZXJnaW5nIgogbXNnc3RyICLlkIjlubblkI7kuI3mo4Dmn6Xlt6XkvZzljLoiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNAogbXNnaWQgImRvbid0IHVwZGF0ZSB0aGUgaW5kZXggb3IgdGhlIHdvcmsgdHJlZSIKIG1zZ3N0ciAi5LiN5pu05paw57Si5byV5Yy65ZKM5bel5L2c5Yy6IgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzYKIG1zZ2lkICJza2lwIGFwcGx5aW5nIHNwYXJzZSBjaGVja291dCBmaWx0ZXIiCiBtc2dzdHIgIui3s+i/h+W6lOeUqOeogOeWj+ajgOWHuui/h+a7pOWZqCIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzcKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM4CiBtc2dpZCAiZGVidWcgdW5wYWNrLXRyZWVzIgogbXNnc3RyICLosIPor5UgdW5wYWNrLXRyZWVzIgogCisjOiBidWlsdGluL3JlZmxvZy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlcycgZm9yICclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgorbXNnc3RyICInJTIkcycg55qE5YC8ICclMSRzJyDkuI3mmK/kuIDkuKrmnInmlYjnmoTml7bpl7TmiLMiCisKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NjE2IGJ1aWx0aW4vcmVmbG9nLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgorbXNnc3RyICInJXMnIOS4jeaYr+S4gOS4quacieaViOeahOaXtumXtOaIsyIKKwogIzogYnVpbHRpbi9yZW1vdGUuYzoxMQogbXNnaWQgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSIKIG1zZ3N0ciAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIgpAQCAtODE1MSw5OCArODM5MCw5OCBAQAogbXNnaWQgIkZhaWxlZCB0byBmaW5kIHRyZWUgb2YgJXMuIgogbXNnc3RyICLml6Dms5Xmib7liLAgJXMg5oyH5ZCR55qE5qCR44CCIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6OTgKKyM6IGJ1aWx0aW4vcmVzZXQuYzo5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCAlcyIKIG1zZ3N0ciAiSEVBRCDnjrDlnKjkvY3kuo4gJXMiCiAKICMgIOivkeiAhe+8muaxieWtl+S5i+mXtOaXoOepuuagvO+8jOaVheWIoOmZpCVz5YmN5ZCO56m65qC8Ci0jOiBidWlsdGluL3Jlc2V0LmM6MTY5CisjOiBidWlsdGluL3Jlc2V0LmM6MTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBkbyBhICVzIHJlc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZS4iCiBtc2dzdHIgIuWcqOWQiOW5tui/h+eoi+S4reS4jeiDveWBmiVz6YeN572u5pON5L2c44CCIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjQ4CisjOiBidWlsdGluL3Jlc2V0LmM6MjUxCiBtc2dpZCAiYmUgcXVpZXQsIG9ubHkgcmVwb3J0IGVycm9ycyIKIG1zZ3N0ciAi5a6J6Z2Z5qih5byP77yM5Y+q5oql5ZGK6ZSZ6K+vIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUwCisjOiBidWlsdGluL3Jlc2V0LmM6MjUzCiBtc2dpZCAicmVzZXQgSEVBRCBhbmQgaW5kZXgiCiBtc2dzdHIgIumHjee9riBIRUFEIOWSjOe0ouW8lSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MQorIzogYnVpbHRpbi9yZXNldC5jOjI1NAogbXNnaWQgInJlc2V0IG9ubHkgSEVBRCIKIG1zZ3N0ciAi5Y+q6YeN572uIEhFQUQiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMgYnVpbHRpbi9yZXNldC5jOjI1NQorIzogYnVpbHRpbi9yZXNldC5jOjI1NiBidWlsdGluL3Jlc2V0LmM6MjU4CiBtc2dpZCAicmVzZXQgSEVBRCwgaW5kZXggYW5kIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAi6YeN572uIEhFQUTjgIHntKLlvJXlkozlt6XkvZzljLoiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTcKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNjAKIG1zZ2lkICJyZXNldCBIRUFEIGJ1dCBrZWVwIGxvY2FsIGNoYW5nZXMiCiBtc2dzdHIgIumHjee9riBIRUFEIOS9huS/neWtmOacrOWcsOWPmOabtCIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3NQorIzogYnVpbHRpbi9yZXNldC5jOjI3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmV2aXNpb24uIgogbXNnc3RyICLml6Dms5XlsIYgJyVzJyDop6PmnpDkuLrkuIDkuKrmnInmlYjnmoTniYjmnKzjgIIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNzggYnVpbHRpbi9yZXNldC5jOjI4NgorIzogYnVpbHRpbi9yZXNldC5jOjI4MSBidWlsdGluL3Jlc2V0LmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJy4iCiBtc2dzdHIgIuS4jeiDveino+aekOWvueixoSAnJXMn44CCIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjgzCisjOiBidWlsdGluL3Jlc2V0LmM6Mjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCB0cmVlLiIKIG1zZ3N0ciAi5peg5rOV5bCGICclcycg6Kej5p6Q5Li65LiA5Liq5pyJ5pWI55qE5qCR5a+56LGh44CCIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjkyCisjOiBidWlsdGluL3Jlc2V0LmM6Mjk1CiBtc2dpZCAiLS1wYXRjaCBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLXtoYXJkLG1peGVkLHNvZnR9IgogbXNnc3RyICItLXBhdGNoIOS4jiAtLXtoYXJk44CBbWl4ZWTjgIFzb2Z0fSDpgInpobnkuI3lhbzlrrkiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMDEKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMDQKIG1zZ2lkICItLW1peGVkIHdpdGggcGF0aHMgaXMgZGVwcmVjYXRlZDsgdXNlICdnaXQgcmVzZXQgLS0gPHBhdGhzPicgaW5zdGVhZC4iCiBtc2dzdHIgIi0tbWl4ZWQg5bim6Lev5b6E5bey5byD55So77yM6ICM5piv55SoICdnaXQgcmVzZXQgLS0gPHBhdGhzPifjgIIiCiAKICMgIOivkeiAhe+8muaxieWtl+S5i+mXtOaXoOepuuagvO+8jOaVheWIoOmZpCVz5YmN5ZCO56m65qC8Ci0jOiBidWlsdGluL3Jlc2V0LmM6MzAzCisjOiBidWlsdGluL3Jlc2V0LmM6MzA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBkbyAlcyByZXNldCB3aXRoIHBhdGhzLiIKIG1zZ3N0ciAi5LiN6IO95bim6Lev5b6E6L+b6KGMJXPph43nva7jgIIiCiAKICMgIOivkeiAhe+8muaxieWtl+S5i+mXtOaXoOepuuagvO+8jOaVheWIoOmZpCVz5YmN5ZCO56m65qC8Ci0jOiBidWlsdGluL3Jlc2V0LmM6MzEzCisjOiBidWlsdGluL3Jlc2V0LmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIHJlc2V0IGlzIG5vdCBhbGxvd2VkIGluIGEgYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICLkuI3og73lr7noo7jniYjmnKzlupPov5vooYwlc+mHjee9riIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMzMworIzogYnVpbHRpbi9yZXNldC5jOjMzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVzZXQgaW5kZXggZmlsZSB0byByZXZpc2lvbiAnJXMnLiIKIG1zZ3N0ciAi5LiN6IO96YeN572u57Si5byV5paH5Lu26Iez54mI5pysICclcyfjgIIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzkKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDIKIG1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKIG1zZ3N0ciAi6YeN572u5ZCO5pKk5Ye65pqC5a2Y5Yy655qE5Y+Y5pu077yaIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQ0CisjOiBidWlsdGluL3Jlc2V0LmM6MzQ3CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIG5ldyBpbmRleCBmaWxlLiIKIG1zZ3N0ciAi5LiN6IO95YaZ5YWl5paw55qE57Si5byV5paH5Lu244CCIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjMzOQorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDUKIG1zZ2lkICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW29wdGlvbnNdIC0tIFs8YXJncz4uLi5dIgogbXNnc3RyICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW+mAiemhuV0gLS0gWzzlj4LmlbA+Li4uXSIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDQKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzUwCiBtc2dpZCAia2VlcCB0aGUgYC0tYCBwYXNzZWQgYXMgYW4gYXJnIgogbXNnc3RyICLkv53mjIEgYC0tYCDkvZzkuLrkuIDkuKrlj4LmlbDkvKDpgJIiCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ2CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM1MgogbXNnaWQgInN0b3AgcGFyc2luZyBhZnRlciB0aGUgZmlyc3Qgbm9uLW9wdGlvbiBhcmd1bWVudCIKIG1zZ3N0ciAi6YGH5Yiw56ys5LiA5Liq6Z2e6YCJ6aG55Y+C5pWw5ZCO5YGc5q2i6Kej5p6QIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjQ2NAorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzo0NzAKIG1zZ2lkICIiCiAiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtvcHRpb25zXSAtLSBbPGFyZ3M+Li4uXVxuIgogIiAgIG9yOiBnaXQgcmV2LXBhcnNlIC0tc3EtcXVvdGUgWzxhcmc+Li4uXVxuIgpAQCAtODI3MiwxNDUgKzg1MTEsMTY1IEBACiBtc2dpZCAiZ2l0IGNoZXJyeS1waWNrIDxzdWJjb21tYW5kPiIKIG1zZ3N0ciAiZ2l0IGNoZXJyeS1waWNrIDzlrZDlkb3ku6Q+IgogCi0jOiBidWlsdGluL3JldmVydC5jOjcwIGJ1aWx0aW4vcmV2ZXJ0LmM6OTIKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzEgYnVpbHRpbi9yZXZlcnQuYzo5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogJXMgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAiJXPvvJolcyDkuI3og73lkowgJXMg5ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKIG1zZ2lkICJlbmQgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICLnu4jmraLlj43ovazmiJbmi6PpgInmk43kvZwiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA0CisjOiBidWlsdGluL3JldmVydC5jOjEwNgogbXNnaWQgInJlc3VtZSByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgIue7p+e7reWPjei9rOaIluaLo+mAieaTjeS9nCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3CiBtc2dpZCAiY2FuY2VsIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAi5Y+W5raI5Y+N6L2s5oiW5ouj6YCJ5pON5L2cIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDgKIG1zZ2lkICJkb24ndCBhdXRvbWF0aWNhbGx5IGNvbW1pdCIKIG1zZ3N0ciAi5LiN6KaB6Ieq5Yqo5o+Q5LqkIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDkKIG1zZ2lkICJlZGl0IHRoZSBjb21taXQgbWVzc2FnZSIKIG1zZ3N0ciAi57yW6L6R5o+Q5Lqk6K+05piOIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTIKIG1zZ2lkICJwYXJlbnQgbnVtYmVyIgogbXNnc3RyICLniLbnvJblj7ciCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL3JldmVydC5jOjExNAogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICLlkIjlubbnrZbnlaUiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEzCisjOiBidWlsdGluL3JldmVydC5jOjExNQogbXNnaWQgIm9wdGlvbiIKIG1zZ3N0ciAi6YCJ6aG5IgogCi0jOiBidWlsdGluL3JldmVydC5jOjExNAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTYKIG1zZ2lkICJvcHRpb24gZm9yIG1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICLlkIjlubbnrZbnlaXnmoTpgInpobkiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI1CisjOiBidWlsdGluL3JldmVydC5jOjEyNwogbXNnaWQgImFwcGVuZCBjb21taXQgbmFtZSIKIG1zZ3N0ciAi6L+95Yqg5o+Q5Lqk5ZCN56ewIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMjgKIG1zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQiCiBtc2dzdHIgIuWFgeiuuOW/q+i/m+W8jyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjcKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI5CiBtc2dpZCAicHJlc2VydmUgaW5pdGlhbGx5IGVtcHR5IGNvbW1pdHMiCiBtc2dzdHIgIuS/neeVmeWIneWni+WMlueahOepuuaPkOS6pCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMwCiBtc2dpZCAiYWxsb3cgY29tbWl0cyB3aXRoIGVtcHR5IG1lc3NhZ2VzIgogbXNnc3RyICLlhYHorrjmj5DkuqTor7TmmI7kuLrnqboiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI5CisjOiBidWlsdGluL3JldmVydC5jOjEzMQogbXNnaWQgImtlZXAgcmVkdW5kYW50LCBlbXB0eSBjb21taXRzIgogbXNnc3RyICLkv53mjIHlpJrkvZnnmoTjgIHnqbrnmoTmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMzCisjOiBidWlsdGluL3JldmVydC5jOjEzNQogbXNnaWQgInByb2dyYW0gZXJyb3IiCiBtc2dzdHIgIueoi+W6j+mUmeivryIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMjMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjI1CiBtc2dpZCAicmV2ZXJ0IGZhaWxlZCIKIG1zZ3N0ciAi6L+Y5Y6f5aSx6LSlIgogCi0jOiBidWlsdGluL3JldmVydC5jOjIzOAorIzogYnVpbHRpbi9yZXZlcnQuYzoyNDAKIG1zZ2lkICJjaGVycnktcGljayBmYWlsZWQiCiBtc2dzdHIgIuaLo+mAieWksei0pSIKIAotIzogYnVpbHRpbi9ybS5jOjE1CisjOiBidWlsdGluL3JtLmM6MTYKIG1zZ2lkICJnaXQgcm0gW29wdGlvbnNdIFstLV0gPGZpbGU+Li4uIgogbXNnc3RyICJnaXQgcm0gW+mAiemhuV0gWy0tXSA85paH5Lu2Pi4uLiIKIAotIzogYnVpbHRpbi9ybS5jOjY0IGJ1aWx0aW4vcm0uYzoxODYKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6NjQKIG1zZ2lkICIiCi0ic3VibW9kdWxlICclcycgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpIHVzZXMgYSAuZ2l0IGRpcmVjdG9yeVxuIgorInRoZSBmb2xsb3dpbmcgc3VibW9kdWxlIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKVxuIgorInVzZXMgYSAuZ2l0IGRpcmVjdG9yeToiCittc2dpZF9wbHVyYWwgIiIKKyJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZXMgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCisidXNlIGEgLmdpdCBkaXJlY3Rvcnk6IgorbXNnc3RyWzBdICLlpoLkuIvlrZDmqKHnu4TvvIjmiJbkuIDkuKrlhbbltYzlpZflrZDmqKHnu4TvvInkvb/nlKjkuobkuIDkuKogLmdpdCDnm67lvZXvvJoiCittc2dzdHJbMV0gIuWmguS4i+WtkOaooee7hO+8iOaIluS4gOS4quWFtuW1jOWll+WtkOaooee7hO+8ieS9v+eUqOS6huS4gOS4qiAuZ2l0IOebruW9le+8miIKKworIzogYnVpbHRpbi9ybS5jOjcwCittc2dpZCAiIgorIlxuIgogIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIKIG1zZ3N0ciAiIgotIuWtkOaooee7hCAnJXMn77yI5oiW6ICF5a6D55qE5LiA5Liq5bWM5aWX5a2Q5qih57uE77yJ5L2/55So5LiA5LiqIC5naXQg55uu5b2VXG4iCisiXG4iCiAi77yI5L2/55SoICdybSAtcmYnIOWRveS7pOWmguaenOaCqOecn+eahOaDs+WIoOmZpOWug+WPiuWFtuWFqOmDqOWOhuWPsu+8iSIKIAotIzogYnVpbHRpbi9ybS5jOjE3NAotIywgYy1mb3JtYXQKKyM6IGJ1aWx0aW4vcm0uYzoyMzAKIG1zZ2lkICIiCi0iJyVzJyBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGUgZmlsZSBhbmQgdGhlIEhFQURcbiIKKyJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlXG4iCisiZmlsZSBhbmQgdGhlIEhFQUQ6IgorbXNnaWRfcGx1cmFsICIiCisidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlXG4iCisiZmlsZSBhbmQgdGhlIEhFQUQ6IgorbXNnc3RyWzBdICLlpoLkuIvmlofku7blhbbmmoLlrZjnmoTlhoXlrrnlkozlt6XkvZzljLrlj4ogSEVBRCDkuK3nmoTpg73kuI3kuIDmoLfvvJoiCittc2dzdHJbMV0gIuWmguS4i+aWh+S7tuWFtuaaguWtmOeahOWGheWuueWSjOW3peS9nOWMuuWPiiBIRUFEIOS4reeahOmDveS4jeS4gOagt++8miIKKworIzogYnVpbHRpbi9ybS5jOjIzNQorbXNnaWQgIiIKKyJcbiIKICIodXNlIC1mIHRvIGZvcmNlIHJlbW92YWwpIgogbXNnc3RyICIiCi0iJyVzJyDmmoLlrZjnmoTlhoXlrrnlkozlt6XkvZzljLrlj4ogSEVBRCDkuK3nmoTpg73kuI3kuIDmoLdcbiIKKyJcbiIKICLvvIjkvb/nlKggLWYg5by65Yi25Yig6Zmk77yJIgogCi0jOiBidWlsdGluL3JtLmM6MTgwCi0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzOQorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCittc2dzdHJbMF0gIuWmguS4i+aWh+S7tuebuOWvuee0ouW8leWMuueahOWGheWuueacieS/ruaUuSIKK21zZ3N0clsxXSAi5aaC5LiL5paH5Lu255u45a+557Si5byV5Yy655qE5YaF5a655pyJ5L+u5pS5IgorCisjOiBidWlsdGluL3JtLmM6MjQzIGJ1aWx0aW4vcm0uYzoyNTQKIG1zZ2lkICIiCi0iJyVzJyBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4XG4iCisiXG4iCiAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgotIiclcycg5pyJ5Y+Y5pu05bey5pqC5a2Y6Iez57Si5byV5LitXG4iCi0i77yI5L2/55SoIC0tY2FjaGVkIOS/neWtmOaWh+S7tu+8jOaIlueUqCAtZiDlvLrliLbliKDpmaTvvIkiCisiXG4iCisi77yI5L2/55SoIC0tY2FjaGVkIOS/neeVmeacrOWcsOaWh+S7tu+8jOaIlueUqCAtZiDlvLrliLbliKDpmaTvvIkiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxOTEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiIgotIiclcycgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnNcbiIKLSIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgotbXNnc3RyICIiCi0iJyVzJyDmnInmnKzlnLDkv67mlLlcbiIKLSLvvIjkvb/nlKggLS1jYWNoZWQg5L+d5a2Y5paH5Lu277yM5oiW55SoIC1mIOW8uuWItuWIoOmZpO+8iSIKKyM6IGJ1aWx0aW4vcm0uYzoyNTEKK21zZ2lkICJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgorbXNnaWRfcGx1cmFsICJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgbG9jYWwgbW9kaWZpY2F0aW9uczoiCittc2dzdHJbMF0gIuWmguS4i+aWh+S7tuacieacrOWcsOS/ruaUue+8miIKK21zZ3N0clsxXSAi5aaC5LiL5paH5Lu25pyJ5pys5Zyw5L+u5pS577yaIgogCi0jOiBidWlsdGluL3JtLmM6MjA3CisjOiBidWlsdGluL3JtLmM6MjY5CiBtc2dpZCAiZG8gbm90IGxpc3QgcmVtb3ZlZCBmaWxlcyIKIG1zZ3N0ciAi5LiN5YiX5Ye65Yig6Zmk55qE5paH5Lu2IgogCi0jOiBidWlsdGluL3JtLmM6MjA4CisjOiBidWlsdGluL3JtLmM6MjcwCiBtc2dpZCAib25seSByZW1vdmUgZnJvbSB0aGUgaW5kZXgiCiBtc2dzdHIgIuWPquS7jue0ouW8leWMuuWIoOmZpCIKIAotIzogYnVpbHRpbi9ybS5jOjIwOQorIzogYnVpbHRpbi9ybS5jOjI3MQogbXNnaWQgIm92ZXJyaWRlIHRoZSB1cC10by1kYXRlIGNoZWNrIgogbXNnc3RyICLlv73nlaXmlofku7bmm7TmlrDnirbmgIHmo4Dmn6UiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMTAKKyM6IGJ1aWx0aW4vcm0uYzoyNzIKIG1zZ2lkICJhbGxvdyByZWN1cnNpdmUgcmVtb3ZhbCIKIG1zZ3N0ciAi5YWB6K646YCS5b2S5Yig6ZmkIgogCi0jOiBidWlsdGluL3JtLmM6MjEyCisjOiBidWlsdGluL3JtLmM6Mjc0CiBtc2dpZCAiZXhpdCB3aXRoIGEgemVybyBzdGF0dXMgZXZlbiBpZiBub3RoaW5nIG1hdGNoZWQiCiBtc2dzdHIgIuWNs+S9v+ayoeacieWMuemFje+8jOS5n+S7pembtueKtuaAgemAgOWHuiIKIAotIzogYnVpbHRpbi9ybS5jOjI4MworIzogYnVpbHRpbi9ybS5jOjM0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgcmVtb3ZpbmcgJyVzJyByZWN1cnNpdmVseSB3aXRob3V0IC1yIgogbXNnc3RyICLmnKrmj5DkvpsgLXIg6YCJ6aG55LiN5Lya6YCS5b2S5Yig6ZmkICclcyciCiAKLSM6IGJ1aWx0aW4vcm0uYzozMjIKKyM6IGJ1aWx0aW4vcm0uYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IHJtOiB1bmFibGUgdG8gcmVtb3ZlICVzIgogbXNnc3RyICJnaXQgcm3vvJrkuI3og73liKDpmaQgJXMiCkBAIC04NDI0LDIzICs4NjgzLDIzIEBACiBtc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgogbXNnc3RyICLnvLrlsJHkvZzogIXvvJolcyIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyNworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyOAogbXNnaWQgInNvcnQgb3V0cHV0IGFjY29yZGluZyB0byB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgcGVyIGF1dGhvciIKIG1zZ3N0ciAi5qC55o2u5q+P5Liq5L2c6ICF55qE5o+Q5Lqk5pWw6YeP5o6S5bqPIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjI5CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMwCiBtc2dpZCAiU3VwcHJlc3MgY29tbWl0IGRlc2NyaXB0aW9ucywgb25seSBwcm92aWRlcyBjb21taXQgY291bnQiCiBtc2dzdHIgIumakOiXj+aPkOS6pOivtOaYju+8jOWPquaPkOS+m+aPkOS6pOaVsOmHjyIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgogbXNnaWQgIlNob3cgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgZWFjaCBhdXRob3IiCiBtc2dzdHIgIuaYvuekuuavj+S4quS9nOiAheeahOeUteWtkOmCruS7tuWcsOWdgCIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMwogbXNnaWQgIndbLGkxWyxpMl1dIgogbXNnc3RyICJ3WyxpMVssaTJdXSIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNAogbXNnaWQgIkxpbmV3cmFwIG91dHB1dCIKIG1zZ3N0ciAi5oqY6KGM6L6T5Ye6IgogCkBAIC04NTA0LDIzICs4NzYzLDIzIEBACiBtc2dpZCAic2hvdyBjb21taXRzIGluIHRvcG9sb2dpY2FsIG9yZGVyIgogbXNnc3RyICLku6Xmi5PmiZHpobrluo/mmL7npLrmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzEKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzIKIG1zZ2lkICJzaG93IG9ubHkgY29tbWl0cyBub3Qgb24gdGhlIGZpcnN0IGJyYW5jaCIKIG1zZ3N0ciAi5Y+q5pi+56S65LiN5Zyo56ys5LiA5Liq5YiG5pSv5LiK55qE5o+Q5LqkIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjczCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc0CiBtc2dpZCAic2hvdyBtZXJnZXMgcmVhY2hhYmxlIGZyb20gb25seSBvbmUgdGlwIgogbXNnc3RyICLmmL7npLrku4XkuIDkuKrliIbmlK/lj6/orr/pl67nmoTlkIjlubbmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzUKLW1zZ2lkICJzaG93IGNvbW1pdHMgd2hlcmUgbm8gcGFyZW50IGNvbWVzIGJlZm9yZSBpdHMgY2hpbGRyZW4iCi1tc2dzdHIgIuaYvuekuuaPkOS6pOaXtuS7peaXtumXtOS4uuW6j+S4lOeItuaPkOS6pOS4jeiDvemihuWFiOWtkOaPkOS6pCIKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzYKK21zZ2lkICJ0b3BvbG9naWNhbGx5IHNvcnQsIG1haW50YWluaW5nIGRhdGUgb3JkZXIgd2hlcmUgcG9zc2libGUiCittc2dzdHIgIuaLk+aJkeaWueW8j+aOkuW6j++8jOW5tuWwveWPr+iDveWcsOS/neaMgeaXpeacn+mhuuW6jyIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3OQogbXNnaWQgIjxuPlssPGJhc2U+XSIKIG1zZ3N0ciAiPG4+Wyw8YmFzZT5dIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc4CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjgwCiBtc2dpZCAic2hvdyA8bj4gbW9zdCByZWNlbnQgcmVmLWxvZyBlbnRyaWVzIHN0YXJ0aW5nIGF0IGJhc2UiCiBtc2dzdHIgIuaYvuekuuS7jiBiYXNlIOW8gOWni+eahCA8bj4g5p2h5pyA6L+R55qE5byV55So5pel5b+X6K6w5b2VIgogCkBAIC04NTM2LDM1ICs4Nzk1LDM1IEBACiBtc2dpZCAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9cGF0dGVybl0gPCByZWYtbGlzdCIKIG1zZ3N0ciAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s95qih5byPXSA8IOW8leeUqOWIl+ihqCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2NQorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2OAogbXNnaWQgIm9ubHkgc2hvdyB0YWdzIChjYW4gYmUgY29tYmluZWQgd2l0aCBoZWFkcykiCiBtc2dzdHIgIuWPquaYvuekuiB0YWdz77yI5Y+v5Lul5ZKM5aS05YWx55So77yJIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY2CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY5CiBtc2dpZCAib25seSBzaG93IGhlYWRzIChjYW4gYmUgY29tYmluZWQgd2l0aCB0YWdzKSIKIG1zZ3N0ciAi5Y+q5pi+56S65aS077yI5Y+v5Lul5ZKMIHRhZ3Mg5YWx55So77yJIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY3CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwCiBtc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKIG1zZ3N0ciAi5pu05Lil5qC855qE5byV55So5qOA5rWL77yM6ZyA6KaB57K+56Gu55qE5byV55So6Lev5b6EIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzIKLW1zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSIKLW1zZ3N0ciAi5pi+56S6IEhFQUQg5byV55SoIgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc2Cittc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgYmUgZmlsdGVyZWQgb3V0IgorbXNnc3RyICLmmL7npLogSEVBRCDlvJXnlKjvvIzljbPkvb/ooqvov4fmu6TmjokiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzQKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzgKIG1zZ2lkICJkZXJlZmVyZW5jZSB0YWdzIGludG8gb2JqZWN0IElEcyIKIG1zZ3N0ciAi6L2s5o2iIHRhZ3Mg5Yiw5a+56LGhSUQiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKIG1zZ2lkICJvbmx5IHNob3cgU0hBMSBoYXNoIHVzaW5nIDxuPiBkaWdpdHMiCiBtc2dzdHIgIuWPquaYvuekuuS9v+eUqCA8bj4g5Liq5pWw5a2X55qEIFNIQTEg5ZOI5biMIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgwCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg0CiBtc2dpZCAiZG8gbm90IHByaW50IHJlc3VsdHMgdG8gc3Rkb3V0ICh1c2VmdWwgd2l0aCAtLXZlcmlmeSkiCiBtc2dzdHIgIuS4jeaJk+WNsOe7k+aenOWIsOagh+WHhui+k+WHuu+8iOS+i+WmguS4jiAtLXZlcmlmeSDlj4LmlbDlhbHnlKjvvIkiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODIKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKIG1zZ2lkICJzaG93IHJlZnMgZnJvbSBzdGRpbiB0aGF0IGFyZW4ndCBpbiBsb2NhbCByZXBvc2l0b3J5IgogbXNnc3RyICLmmL7npLrku47moIflh4bovpPlhaXkuK3or7vlhaXnmoTkuI3lnKjmnKzlnLDniYjmnKzlupPkuK3nmoTlvJXnlKgiCiAKQEAgLTg5NzYsNyArOTIzNSw3IEBACiBtc2dpZCAib25seSB1c2VmdWwgZm9yIGRlYnVnZ2luZyIKIG1zZ3N0ciAi5Y+q5a+56LCD6K+V5pyJ55SoIgogCi0jOiBnaXQuYzoxNgorIzogZ2l0LmM6MTcKIG1zZ2lkICIiCiAiJ2dpdCBoZWxwIC1hJyBhbmQgJ2dpdCBoZWxwIC1nJyBsaXN0cyBhdmFpbGFibGUgc3ViY29tbWFuZHMgYW5kIHNvbWVcbiIKICJjb25jZXB0IGd1aWRlcy4gU2VlICdnaXQgaGVscCA8Y29tbWFuZD4nIG9yICdnaXQgaGVscCA8Y29uY2VwdD4nXG4iCkBAIC04OTg1LDE5ICs5MjQ0LDIzIEBACiAi5ZG95LukICdnaXQgaGVscCAtYScg5ZKMICdnaXQgaGVscCAtZycg5pi+56S65Y+v55So55qE5a2Q5ZG95Luk5ZKM5LiA5Lqb5oyH5Y2X44CC5Y+C6KeBXG4iCiAiJ2dpdCBoZWxwIDzlkb3ku6Q+JyDmiJYgJ2dpdCBoZWxwIDzmjIfljZc+JyDmnaXmn6XnnIvnu5nlrprnmoTlrZDlkb3ku6TluK7liqnmiJbmjIfljZfjgIIiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoxNTYKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNDQKK21zZ2lkICJleHBpcnkgZGF0ZSIKK21zZ3N0ciAi6YC+5pyf5pel5pyfIgorCisjOiBwYXJzZS1vcHRpb25zLmg6MTU5CiBtc2dpZCAibm8tb3AgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpIgogbXNnc3RyICLnqbrmk43kvZzvvIjlkJHlkI7lhbzlrrnvvIkiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzIKKyM6IHBhcnNlLW9wdGlvbnMuaDoyMzYKIG1zZ2lkICJiZSBtb3JlIHZlcmJvc2UiCiBtc2dzdHIgIuabtOWKoOivpue7hiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzNAorIzogcGFyc2Utb3B0aW9ucy5oOjIzOAogbXNnaWQgImJlIG1vcmUgcXVpZXQiCiBtc2dzdHIgIuabtOWKoOWuiemdmSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjI0MAorIzogcGFyc2Utb3B0aW9ucy5oOjI0NAogbXNnaWQgInVzZSA8bj4gZGlnaXRzIHRvIGRpc3BsYXkgU0hBLTFzIgogbXNnc3RyICLnlKggPG4+IOS9jeaVsOWtl+aYvuekuiBTSEEtMSDlk4jluIzlgLwiCiAKQEAgLTkwNTQsOCArOTMxNyw4IEBACiBtc2dzdHIgIuenu+WKqOaIlumHjeWRveWQjeS4gOS4quaWh+S7tuOAgeebruW9leaIluespuWPt+mTvuaOpSIKIAogIzogY29tbW9uLWNtZHMuaDoyMQotbXNnaWQgIkZldGNoIGZyb20gYW5kIG1lcmdlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoIgotbXNnc3RyICLojrflj5blubblkIjlubblj6blpJbnmoTniYjmnKzlupPmiJbkuIDkuKrmnKzlnLDliIbmlK8iCittc2dpZCAiRmV0Y2ggZnJvbSBhbmQgaW50ZWdyYXRlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoIgorbXNnc3RyICLojrflj5blubbmlbTlkIjlj6blpJbnmoTniYjmnKzlupPmiJbkuIDkuKrmnKzlnLDliIbmlK8iCiAKICM6IGNvbW1vbi1jbWRzLmg6MjIKIG1zZ2lkICJVcGRhdGUgcmVtb3RlIHJlZnMgYWxvbmcgd2l0aCBhc3NvY2lhdGVkIG9iamVjdHMiCkBAIC05MDk4LDExICs5MzYxLDExIEBACiAjOiBnaXQtYW0uc2g6MTA1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCIkY21kbGluZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgogIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuIFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIG1zZ3N0ciAiIgotIuW9k+aCqOino+WGs+S6huatpOmXrumimOWQju+8jOaJp+ihjCBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIuOAglxuIgorIuW9k+aCqOino+WGs+S6huatpOmXrumimOWQju+8jOaJp+ihjCBcIiRjbWRsaW5lIC0tY29udGludWVcIuOAglxuIgogIuWmguaenOaCqOaDs+i3s+i/h+atpOihpeS4ge+8jOWImeaJp+ihjCBcIiRjbWRsaW5lIC0tc2tpcFwi44CCXG4iCiAi6KaB5oGi5aSN5Y6f5YiG5pSv5bm25YGc5q2i5omT6KGl5LiB77yM5omn6KGMIFwiJGNtZGxpbmUgLS1hYm9ydFwi44CCIgogCkBAIC05MTU1LDI1ICs5NDE4LDM0IEBACiAi5Y+C5pWwIC1iLy0tYmluYXJ5IOW3sue7j+W+iOmVv+aXtumXtOS4jeWBmuS7u+S9leWunui0qOaTjeS9nOS6hu+8jOW5tuS4lOWwhuiiq+WIoOmZpOOAglxuIgogIuivt+S4jeimgeWGjeS9v+eUqOWug+S6huOAgiIKIAotIzogZ2l0LWFtLnNoOjQ3NworIzogZ2l0LWFtLnNoOjQ3OQogIywgc2gtZm9ybWF0CiBtc2dpZCAicHJldmlvdXMgcmViYXNlIGRpcmVjdG9yeSAkZG90ZXN0IHN0aWxsIGV4aXN0cyBidXQgbWJveCBnaXZlbi4iCi1tc2dzdHIgIuS5i+WJjeeahOWPmOWfuuebruW9lSAkZG90ZXN0IOS7jeeEtuWtmOWcqOS9hue7meWHuuS6hm1ib3jjgIIiCittc2dzdHIgIuS5i+WJjeeahOWPmOWfuuebruW9lSAkZG90ZXN0IOS7jeeEtuWtmOWcqO+8jOS9huWNtOaPkOS+m+S6hiBtYm9444CCIgogCi0jOiBnaXQtYW0uc2g6NDgyCisjOiBnaXQtYW0uc2g6NDg0CiBtc2dpZCAiUGxlYXNlIG1ha2UgdXAgeW91ciBtaW5kLiAtLXNraXAgb3IgLS1hYm9ydD8iCiBtc2dzdHIgIuivt+S4i+WGs+W/g+OAgi0tc2tpcCDmiJbmmK8gLS1hYm9ydCDvvJ8iCiAKLSM6IGdpdC1hbS5zaDo1MDkKKyM6IGdpdC1hbS5zaDo1MjAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJTdHJheSAkZG90ZXN0IGRpcmVjdG9yeSBmb3VuZC5cbiIKKyJVc2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlbW92ZSBpdC4iCittc2dzdHIgIiIKKyLlj5HnjrDkuobplJnor6/nmoQgJGRvdGVzdCDnm67lvZXjgIJcbiIKKyLkvb/nlKggXCJnaXQgYW0gLS1hYm9ydFwiIOWIoOmZpOWug+OAgiIKKworIzogZ2l0LWFtLnNoOjUyOAogbXNnaWQgIlJlc29sdmUgb3BlcmF0aW9uIG5vdCBpbiBwcm9ncmVzcywgd2UgYXJlIG5vdCByZXN1bWluZy4iCiBtc2dzdHIgIuino+WGs+aTjeS9nOacqui/m+ihjO+8jOaIkeS7rOS4jeS8mue7p+e7reOAgiIKIAotIzogZ2l0LWFtLnNoOjU3NQorIzogZ2l0LWFtLnNoOjU5NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiRGlydHkgaW5kZXg6IGNhbm5vdCBhcHBseSBwYXRjaGVzIChkaXJ0eTogJGZpbGVzKSIKIG1zZ3N0ciAi6ISP55qE57Si5byV77ya5LiN6IO95bqU55So6KGl5LiB77yI6ISP5paH5Lu277yaJGZpbGVz77yJIgogCi0jOiBnaXQtYW0uc2g6Njc5CisjOiBnaXQtYW0uc2g6Njk4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiUGF0Y2ggaXMgZW1wdHkuICBXYXMgaXQgc3BsaXQgd3Jvbmc/XG4iCkBAIC05MTg0LDE1ICs5NDU2LDE1IEBACiAi5aaC5p6c5oKo5oOz6KaB6Lez6L+H6L+Z5Liq6KGl5LiB77yM5omn6KGMIFwiJGNtZGxpbmUgLS1za2lwXCLjgIJcbiIKICLopoHmgaLlpI3ljp/liIbmlK/lubblgZzmraLmiZPooaXkuIHvvIzmiafooYwgXCIkY21kbGluZSAtLWFib3J0XCLjgIIiCiAKLSM6IGdpdC1hbS5zaDo3MDYKKyM6IGdpdC1hbS5zaDo3MjUKIG1zZ2lkICJQYXRjaCBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuIgogbXNnc3RyICLooaXkuIHkuK3msqHmnInkuIDkuKrmnInmlYjnmoTpgq7ku7blnLDlnYDjgIIiCiAKLSM6IGdpdC1hbS5zaDo3NTMKKyM6IGdpdC1hbS5zaDo3NzIKIG1zZ2lkICJjYW5ub3QgYmUgaW50ZXJhY3RpdmUgd2l0aG91dCBzdGRpbiBjb25uZWN0ZWQgdG8gYSB0ZXJtaW5hbC4iCiBtc2dzdHIgIuagh+WHhui+k+WFpeayoeacieWSjOe7iOerr+WFs+iBlO+8jOS4jeiDvei/m+ihjOS6pOS6kuW8j+aTjeS9nOOAgiIKIAotIzogZ2l0LWFtLnNoOjc1NworIzogZ2l0LWFtLnNoOjc3NgogbXNnaWQgIkNvbW1pdCBCb2R5IGlzOiIKIG1zZ3N0ciAi5o+Q5Lqk5YaF5a655Li677yaIgogCkBAIC05MjAwLDE2ICs5NDcyLDE2IEBACiAjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW3ldLCBbbl0sIFtlXSwgW3ZdIGFuZCBbYV0KICMuIGluIHlvdXIgdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaAogIy4gaW5wdXQgYXQgdGhpcyBwb2ludC4KLSM6IGdpdC1hbS5zaDo3NjQKKyM6IGdpdC1hbS5zaDo3ODMKIG1zZ2lkICJBcHBseT8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCiBtc2dzdHIgIuW6lOeUqO+8n1t5XWVzL1tuXW8vW2VdZGl0L1t2XWlldyBwYXRjaC9bYV1jY2VwdCBhbGwgIgogCi0jOiBnaXQtYW0uc2g6ODAwCisjOiBnaXQtYW0uc2g6ODE5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBcHBseWluZzogJEZJUlNUTElORSIKIG1zZ3N0ciAi5q2j5bqU55So77yaJEZJUlNUTElORSIKIAotIzogZ2l0LWFtLnNoOjgyMQorIzogZ2l0LWFtLnNoOjg0MAogbXNnaWQgIiIKICJObyBjaGFuZ2VzIC0gZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz9cbiIKICJJZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG8gc3RhZ2UsIGNoYW5jZXMgYXJlIHRoYXQgc29tZXRoaW5nIGVsc2VcbiIKQEAgLTkyMTksMjIgKzk0OTEsMjIgQEAKICLlpoLmnpzmsqHmnInku4DkuYjopoHmt7vliqDliLDmmoLlrZjljLrnmoTvvIzliJnlvojlj6/og73mmK/lhbblroPmj5DkuqTlt7Lnu4/lvJXlhaXkuobnm7jlkIznmoTlj5jmm7TjgIJcbiIKICLmgqjkuZ/orrjmg7PopoHot7Pov4fov5nkuKrooaXkuIHjgIIiCiAKLSM6IGdpdC1hbS5zaDo4MjkKKyM6IGdpdC1hbS5zaDo4NDgKIG1zZ2lkICIiCiAiWW91IHN0aWxsIGhhdmUgdW5tZXJnZWQgcGF0aHMgaW4geW91ciBpbmRleFxuIgogImRpZCB5b3UgZm9yZ2V0IHRvIHVzZSAnZ2l0IGFkZCc/IgogbXNnc3RyICLmgqjnmoTntKLlvJXkuK3ku43mnInmnKrlkIjlubbnmoTot6/lvoTjgILmgqjmmK/lkKblv5jkuobmiafooYwgJ2dpdCBhZGQn77yfIgogCi0jOiBnaXQtYW0uc2g6ODQ1CisjOiBnaXQtYW0uc2g6ODY0CiBtc2dpZCAiTm8gY2hhbmdlcyAtLSBQYXRjaCBhbHJlYWR5IGFwcGxpZWQuIgogbXNnc3RyICLmsqHmnInlj5jmm7Qg4oCU4oCUIOihpeS4geW3sue7j+W6lOeUqOi/h+OAgiIKIAotIzogZ2l0LWFtLnNoOjg1NQorIzogZ2l0LWFtLnNoOjg3NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiUGF0Y2ggZmFpbGVkIGF0ICRtc2dudW0gJEZJUlNUTElORSIKIG1zZ3N0ciAi6KGl5LiB5aSx6LSl5LqOICRtc2dudW0gJEZJUlNUTElORSIKIAotIzogZ2l0LWFtLnNoOjg1OAorIzogZ2l0LWFtLnNoOjg3NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBjb3B5IG9mIHRoZSBwYXRjaCB0aGF0IGZhaWxlZCBpcyBmb3VuZCBpbjpcbiIKQEAgLTkyNDMsNyArOTUxNSw3IEBACiAi5aSx6LSl55qE6KGl5LiB5paH5Lu25Ymv5pys5L2N5LqO77yaXG4iCiAiICAgJGRvdGVzdC9wYXRjaCIKIAotIzogZ2l0LWFtLnNoOjg3NgorIzogZ2l0LWFtLnNoOjg5NQogbXNnaWQgImFwcGx5aW5nIHRvIGFuIGVtcHR5IGhpc3RvcnkiCiBtc2dzdHIgIuato+W6lOeUqOWIsOS4gOS4quepuuWOhuWPsuS4iiIKIApAQCAtOTQ0NCw3ICs5NzE2LDcgQEAKIG1zZ2lkICJDYW5ub3QgcmViYXNlIG9udG8gbXVsdGlwbGUgYnJhbmNoZXMiCiBtc2dzdHIgIuaXoOazleWPmOWfuuWIsOWkmuS4quWIhuaUryIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MworIzogZ2l0LXJlYmFzZS5zaDo1NAogbXNnaWQgIiIKICJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIuXG4iCiAiSWYgeW91IHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIHJ1biBcImdpdCByZWJhc2UgLS1za2lwXCIgaW5zdGVhZC5cbiIKQEAgLTk0NTUsMzEgKzk3MjcsNTAgQEAKICLlpoLmnpzmgqjmg7Pot7Pov4fmraTooaXkuIHvvIzliJnmiafooYwgXCJnaXQgcmViYXNlIC0tc2tpcFwi44CCXG4iCiAi6KaB5oGi5aSN5Y6f5YiG5pSv5bm25YGc5q2i5Y+Y5Z+677yM5omn6KGMIFwiZ2l0IHJlYmFzZSAtLWFib3J0XCLjgIIiCiAKKyM6IGdpdC1yZWJhc2Uuc2g6MTU2Cittc2dpZCAiQXBwbGllZCBhdXRvc3Rhc2guIgorbXNnc3RyICLmiJDlip/lupTnlKggYXV0b3N0YXNo44CCIgorCisjOiBnaXQtcmViYXNlLnNoOjE1OQorIywgc2gtZm9ybWF0Cittc2dpZCAiQ2Fubm90IHN0b3JlICRzdGFzaF9zaGExIgorbXNnc3RyICLml6Dms5Xkv53lrZggJHN0YXNoX3NoYTEiCisKICM6IGdpdC1yZWJhc2Uuc2g6MTYwCittc2dpZCAiIgorIkFwcGx5aW5nIGF1dG9zdGFzaCByZXN1bHRlZCBpbiBjb25mbGljdHMuXG4iCisiWW91ciBjaGFuZ2VzIGFyZSBzYWZlIGluIHRoZSBzdGFzaC5cbiIKKyJZb3UgY2FuIHJ1biBcImdpdCBzdGFzaCBwb3BcIiBvciBcImdpdCBzdGFzaCBkcm9wXCIgYXQgYW55IHRpbWUuXG4iCittc2dzdHIgIiIKKyLlupTnlKggYXV0b3N0YXNoIOWvvOiHtOWGsueqgeOAglxuIgorIuaCqOeahOS/ruaUueWuieWFqOWcsOS/neWtmOWcqCBzdGFzaCDkuK3jgIJcbiIKKyLmgqjlj6/ku6XlnKjku7vkvZXml7blgJnov5DooYwgXCJnaXQgc3Rhc2ggcG9wXCIg5oiWIFwiZ2l0IHN0YXNoIGRyb3BcIuOAglxuIgorCisjOiBnaXQtcmViYXNlLnNoOjE5MAogbXNnaWQgIlRoZSBwcmUtcmViYXNlIGhvb2sgcmVmdXNlZCB0byByZWJhc2UuIgogbXNnc3RyICLpkqnlrZAgcHJlLXJlYmFzZSDmi5Lnu53lj5jln7rjgIIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MTY1CisjOiBnaXQtcmViYXNlLnNoOjE5NQogbXNnaWQgIkl0IGxvb2tzIGxpa2UgZ2l0LWFtIGlzIGluIHByb2dyZXNzLiBDYW5ub3QgcmViYXNlLiIKIG1zZ3N0ciAi5Ly85LmO5q2j5aSE5LqO5ZyoIGdpdC1hbSDnmoTmiafooYzov4fnqIvkuK3jgILml6Dms5Xlj5jln7rjgIIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6Mjk2CisjOiBnaXQtcmViYXNlLnNoOjMyOQogbXNnaWQgIlRoZSAtLWV4ZWMgb3B0aW9uIG11c3QgYmUgdXNlZCB3aXRoIHRoZSAtLWludGVyYWN0aXZlIG9wdGlvbiIKIG1zZ3N0ciAi6YCJ6aG5IC0tZXhlYyDlv4XpobvlkozpgInpobkgLS1pbnRlcmFjdGl2ZSDlkIzml7bkvb/nlKgiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzAxCisjOiBnaXQtcmViYXNlLnNoOjMzNAogbXNnaWQgIk5vIHJlYmFzZSBpbiBwcm9ncmVzcz8iCiBtc2dzdHIgIuayoeacieato+WcqOi/m+ihjOeahOWPmOWfuu+8nyIKIAotIzogZ2l0LXJlYmFzZS5zaDozMTIKKyM6IGdpdC1yZWJhc2Uuc2g6MzQ1CiBtc2dpZCAiVGhlIC0tZWRpdC10b2RvIGFjdGlvbiBjYW4gb25seSBiZSB1c2VkIGR1cmluZyBpbnRlcmFjdGl2ZSByZWJhc2UuIgogbXNnc3RyICLliqjkvZwgLS1lZGl0LXRvZG8g5Y+q6IO955So5Zyo5Lqk5LqS5byP5Y+Y5Z+66L+H56iL5Lit44CCIgogCi0jOiBnaXQtcmViYXNlLnNoOjMxOQorIzogZ2l0LXJlYmFzZS5zaDozNTIKIG1zZ2lkICJDYW5ub3QgcmVhZCBIRUFEIgogbXNnc3RyICLkuI3og73or7vlj5YgSEVBRCIKIAotIzogZ2l0LXJlYmFzZS5zaDozMjIKKyM6IGdpdC1yZWJhc2Uuc2g6MzU1CiBtc2dpZCAiIgogIllvdSBtdXN0IGVkaXQgYWxsIG1lcmdlIGNvbmZsaWN0cyBhbmQgdGhlblxuIgogIm1hcmsgdGhlbSBhcyByZXNvbHZlZCB1c2luZyBnaXQgYWRkIgpAQCAtOTQ4NywxMiArOTc3OCwxMiBAQAogIuaCqOW/hemhu+e8lui+keaJgOacieeahOWQiOW5tuWGsueqge+8jOeEtuWQjumAmui/hyBnaXQgYWRkXG4iCiAi5ZG95Luk5bCG5a6D5Lus5qCH6K6w5Li65bey6Kej5YazIgogCi0jOiBnaXQtcmViYXNlLnNoOjM0MAorIzogZ2l0LXJlYmFzZS5zaDozNzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBtb3ZlIGJhY2sgdG8gJGhlYWRfbmFtZSIKIG1zZ3N0ciAi5peg5rOV56e75ZueICRoZWFkX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzU5CisjOiBnaXQtcmViYXNlLnNoOjM5MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHNlZW1zIHRoYXQgdGhlcmUgaXMgYWxyZWFkeSBhICRzdGF0ZV9kaXJfYmFzZSBkaXJlY3RvcnksIGFuZFxuIgpAQCAtOTUxMSw1NiArOTgwMiw2NSBAQAogIlx0JGNtZF9jbGVhcl9zdGFsZV9yZWJhc2VcbiIKICLnhLblkI7lho3ph43mlrDmiafooYzlj5jln7rjgILkuLrpgb/lhY3mgqjkuKLlpLHph43opoHmlbDmja7vvIzmiJHlt7Lnu4/lgZzmraLlvZPliY3mk43kvZzjgIIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDA0CisjOiBnaXQtcmViYXNlLnNoOjQzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCB1cHN0cmVhbSAkdXBzdHJlYW1fbmFtZSIKIG1zZ3N0ciAi5peg5pWI55qE5LiK5ri4ICR1cHN0cmVhbV9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQyOAorIzogZ2l0LXJlYmFzZS5zaDo0NjEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG1lcmdlIGJhc2VzIgogbXNnc3RyICIkb250b19uYW1lOiDmnInkuIDkuKrku6XkuIrnmoTlkIjlubbln7rlh4YiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDMxIGdpdC1yZWJhc2Uuc2g6NDM1CisjOiBnaXQtcmViYXNlLnNoOjQ2NCBnaXQtcmViYXNlLnNoOjQ2OAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgaXMgbm8gbWVyZ2UgYmFzZSIKIG1zZ3N0ciAiJG9udG9fbmFtZTog5rKh5pyJ5ZCI5bm25Z+65YeGIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ0MAorIzogZ2l0LXJlYmFzZS5zaDo0NzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgY29tbWl0OiAkb250b19uYW1lIgogbXNnc3RyICLmsqHmnInmjIflkJHkuIDkuKrmnInmlYjnmoTmj5DkuqTvvJokb250b19uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ2MworIzogZ2l0LXJlYmFzZS5zaDo0OTYKICMsIHNoLWZvcm1hdAogbXNnaWQgImZhdGFsOiBubyBzdWNoIGJyYW5jaDogJGJyYW5jaF9uYW1lIgogbXNnc3RyICLkuKXph43plJnor6/vvJrml6DmraTliIbmlK/vvJokYnJhbmNoX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDgzCisjOiBnaXQtcmViYXNlLnNoOjUxOQorbXNnaWQgIkNhbm5vdCBhdXRvc3Rhc2giCittc2dzdHIgIuaXoOazlSBhdXRvc3Rhc2giCisKKyM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDcmVhdGVkIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldiIKK21zZ3N0ciAi5Yib5bu65LqGIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldiIKKworIzogZ2l0LXJlYmFzZS5zaDo1MjgKIG1zZ2lkICJQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHRoZW0uIgogbXNnc3RyICLor7fmj5DkuqTmiJbkuLrlroPku6zkv53lrZjov5vluqbjgIIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTAxCisjOiBnaXQtcmViYXNlLnNoOjU0OAogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUuIgogbXNnc3RyICLlvZPliY3liIbmlK8gJGJyYW5jaF9uYW1lIOaYr+acgOaWsOeahOOAgiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MDQKKyM6IGdpdC1yZWJhc2Uuc2g6NTUyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZSwgcmViYXNlIGZvcmNlZC4iCiBtc2dzdHIgIuW9k+WJjeWIhuaUryAkYnJhbmNoX25hbWUg5piv5pyA5paw55qE77yM5by65Yi25Y+Y5Z+644CCIgogCi0jOiBnaXQtcmViYXNlLnNoOjUxNQorIzogZ2l0LXJlYmFzZS5zaDo1NjMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNoYW5nZXMgZnJvbSAkbWIgdG8gJG9udG86IgogbXNnc3RyICLlj5jmm7Tku44gJG1iIOWIsCAkb250b++8miIKIAogIy4gRGV0YWNoIEhFQUQgYW5kIHJlc2V0IHRoZSB0cmVlCi0jOiBnaXQtcmViYXNlLnNoOjUyNAorIzogZ2l0LXJlYmFzZS5zaDo1NzIKIG1zZ2lkICJGaXJzdCwgcmV3aW5kaW5nIGhlYWQgdG8gcmVwbGF5IHlvdXIgd29yayBvbiB0b3Agb2YgaXQuLi4iCiBtc2dzdHIgIummluWFiO+8jOmHjee9ruWktOaMh+mSiOS7peS+v+WcqOS4iumdoumHjeaUvuaCqOeahOW3peS9nC4uLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MzIKKyM6IGdpdC1yZWJhc2Uuc2g6NTgyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYXN0LWZvcndhcmRlZCAkYnJhbmNoX25hbWUgdG8gJG9udG9fbmFtZS4iCiBtc2dzdHIgIuW/q+i/myAkYnJhbmNoX25hbWUg6IezICRvbnRvX25hbWXjgIIiCkBAIC05NTkzLDYgKzk4OTMsMTEgQEAKIG1zZ2lkICJDYW5ub3QgcmVjb3JkIHdvcmtpbmcgdHJlZSBzdGF0ZSIKIG1zZ3N0ciAi5LiN6IO96K6w5b2V5bel5L2c5Yy654q25oCBIgogCisjOiBnaXQtc3Rhc2guc2g6MTkwCisjLCBzaC1mb3JtYXQKK21zZ2lkICJDYW5ub3QgdXBkYXRlICRyZWZfc3Rhc2ggd2l0aCAkd19jb21taXQiCittc2dzdHIgIuaXoOazleeUqCAkd19jb21taXQg5pu05pawICRyZWZfc3Rhc2giCisKICMuIFRSQU5TTEFUT1JTOiAkb3B0aW9uIGlzIGFuIGludmFsaWQgb3B0aW9uLCBsaWtlCiAjLiBgLS1ibGFoLWJsYWgnLiBUaGUgNyBzcGFjZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUKICMuIHNlY29uZCBsaW5lIGNvcnJlc3BvbmQgdG8gImVycm9yOiAiLiBTbyB5b3Ugc2hvdWxkIGxpbmUKQEAgLTk2MDMsNyArOTkwOCw3IEBACiAjLiAkIGdpdCBzdGFzaCBzYXZlIC0tYmxhaC1ibGFoIDI+JjEgfCBoZWFkIC1uIDIKICMuIGVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAtLWJsYWgtYmxhaAogIy4gVG8gcHJvdmlkZSBhIG1lc3NhZ2UsIHVzZSBnaXQgc3Rhc2ggc2F2ZSAtLSAnLS1ibGFoLWJsYWgnCi0jOiBnaXQtc3Rhc2guc2g6MjAyCisjOiBnaXQtc3Rhc2guc2g6MjQxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6ICRvcHRpb25cbiIKQEAgLTk2MTIsMTE5ICs5OTE3LDEzNCBAQAogIumUmeivr++8midzdGFzaCBzYXZlJyDnmoTmnKrnn6XpgInpobnvvJokb3B0aW9uXG4iCiAiICAgICAg6KaB5o+Q5L6b5LiA5Liq5o+P6L+w5L+h5oGv77yM5L2/55SoIGdpdCBzdGFzaCBzYXZlIC0tICckb3B0aW9uJyIKIAotIzogZ2l0LXN0YXNoLnNoOjIyMworIzogZ2l0LXN0YXNoLnNoOjI2MgogbXNnaWQgIk5vIGxvY2FsIGNoYW5nZXMgdG8gc2F2ZSIKIG1zZ3N0ciAi5rKh5pyJ6KaB5L+d5a2Y55qE5pys5Zyw5L+u5pS5IgogCi0jOiBnaXQtc3Rhc2guc2g6MjI3CisjOiBnaXQtc3Rhc2guc2g6MjY4Cittc2dpZCAiIgorIlRoZSBmb2xsb3dpbmcgdW50cmFja2VkIGZpbGVzIHdvdWxkIE5PVCBiZSBzYXZlZCBidXQgbmVlZCB0byBiZSByZW1vdmVkIGJ5ICIKKyJzdGFzaCBzYXZlOiIKK21zZ3N0ciAi5aaC5LiL5pyq6Lef6Liq5paH5Lu25bCG5LiN5Lya6KKr5L+d5a2Y5L2G5piv5bCG5Lya5Zug5Li66L+b5bqm5L+d5a2Y6ICM6ZyA6KaB6KKr5Yig6Zmk77yaIgorCisjOiBnaXQtc3Rhc2guc2g6MjcwCittc2dpZCAiIgorIkFib3J0aW5nLiBDb25zaWRlciB1c2luZyBlaXRoZXIgdGhlIC0tZm9yY2Ugb3IgLS1pbmNsdWRlLXVudHJhY2tlZCBvcHRpb24uIgorbXNnc3RyICLnu4jmraLjgILogIPomZHkvb/nlKggLS1mb3JjZSDmiJbogIUgLS1pbmNsdWRlLXVudHJhY2tlZCDpgInpobnjgIIiCisKKyM6IGdpdC1zdGFzaC5zaDoyNzQKIG1zZ2lkICJDYW5ub3QgaW5pdGlhbGl6ZSBzdGFzaCIKIG1zZ3N0ciAi5peg5rOV5Yid5aeL5YyWIHN0YXNoIgogCi0jOiBnaXQtc3Rhc2guc2g6MjM1CisjOiBnaXQtc3Rhc2guc2g6Mjc4CiBtc2dpZCAiQ2Fubm90IHNhdmUgdGhlIGN1cnJlbnQgc3RhdHVzIgogbXNnc3RyICLml6Dms5Xkv53lrZjlvZPliY3nirbmgIEiCiAKLSM6IGdpdC1zdGFzaC5zaDoyNTMKKyM6IGdpdC1zdGFzaC5zaDoyOTYKIG1zZ2lkICJDYW5ub3QgcmVtb3ZlIHdvcmt0cmVlIGNoYW5nZXMiCiBtc2dzdHIgIuaXoOazleWIoOmZpOW3peS9nOWMuuWPmOabtCIKIAotIzogZ2l0LXN0YXNoLnNoOjM1MgorIzogZ2l0LXN0YXNoLnNoOjM5NQogbXNnaWQgIk5vIHN0YXNoIGZvdW5kLiIKIG1zZ3N0ciAi5pyq5Y+R546wIHN0YXNo44CCIgogCi0jOiBnaXQtc3Rhc2guc2g6MzU5CisjOiBnaXQtc3Rhc2guc2g6NDAyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJUb28gbWFueSByZXZpc2lvbnMgc3BlY2lmaWVkOiAkUkVWIgogbXNnc3RyICLmjIflrprkuoblpKrlpJrnmoTniYjmnKzvvJokUkVWIgogCi0jOiBnaXQtc3Rhc2guc2g6MzY1CisjOiBnaXQtc3Rhc2guc2g6NDA4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiCiBtc2dzdHIgIiRyZWZlcmVuY2Ug5LiN5piv5pyJ5pWI55qE5byV55SoIgogCi0jOiBnaXQtc3Rhc2guc2g6MzkzCisjOiBnaXQtc3Rhc2guc2g6NDM2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoLWxpa2UgY29tbWl0IgogbXNnc3RyICInJGFyZ3MnIOS4jeaYryBzdGFzaCDmoLfmj5DkuqQiCiAKLSM6IGdpdC1zdGFzaC5zaDo0MDQKKyM6IGdpdC1zdGFzaC5zaDo0NDcKICMsIHNoLWZvcm1hdAogbXNnaWQgIickYXJncycgaXMgbm90IGEgc3Rhc2ggcmVmZXJlbmNlIgogbXNnc3RyICInJGFyZ3MnIOS4jeaYr+S4gOS4qiBzdGFzaCDlvJXnlKgiCiAKLSM6IGdpdC1zdGFzaC5zaDo0MTIKKyM6IGdpdC1zdGFzaC5zaDo0NTUKIG1zZ2lkICJ1bmFibGUgdG8gcmVmcmVzaCBpbmRleCIKIG1zZ3N0ciAi5peg5rOV5Yi35paw57Si5byVIgogCi0jOiBnaXQtc3Rhc2guc2g6NDE2CisjOiBnaXQtc3Rhc2guc2g6NDU5CiBtc2dpZCAiQ2Fubm90IGFwcGx5IGEgc3Rhc2ggaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIgogbXNnc3RyICLml6Dms5XlnKjlkIjlubbov4fnqIvkuK3mgaLlpI3ov5vluqYiCiAKLSM6IGdpdC1zdGFzaC5zaDo0MjQKKyM6IGdpdC1zdGFzaC5zaDo0NjcKIG1zZ2lkICJDb25mbGljdHMgaW4gaW5kZXguIFRyeSB3aXRob3V0IC0taW5kZXguIgogbXNnc3RyICLntKLlvJXkuK3mnInlhrLnqoHjgILlsJ3or5XkuI3kvb/nlKggLS1pbmRleOOAgiIKIAotIzogZ2l0LXN0YXNoLnNoOjQyNgorIzogZ2l0LXN0YXNoLnNoOjQ2OQogbXNnaWQgIkNvdWxkIG5vdCBzYXZlIGluZGV4IHRyZWUiCiBtc2dzdHIgIuS4jeiDveS/neWtmOe0ouW8leagkSIKIAotIzogZ2l0LXN0YXNoLnNoOjQ2MAorIzogZ2l0LXN0YXNoLnNoOjUwMwogbXNnaWQgIkNhbm5vdCB1bnN0YWdlIG1vZGlmaWVkIGZpbGVzIgogbXNnc3RyICLml6Dms5Xov5jljp/kv67mlLnnmoTmlofku7YiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NzUKKyM6IGdpdC1zdGFzaC5zaDo1MTgKIG1zZ2lkICJJbmRleCB3YXMgbm90IHVuc3Rhc2hlZC4iCiBtc2dzdHIgIue0ouW8leeahOi/m+W6puayoeacieiiq+aBouWkjeOAgiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ5MgorIzogZ2l0LXN0YXNoLnNoOjUzNQogIywgc2gtZm9ybWF0CiBtc2dpZCAiRHJvcHBlZCAke1JFVn0gKCRzKSIKIG1zZ3N0ciAi5Lii5byD5LqGICR7UkVWfSAoJHMpIgogCi0jOiBnaXQtc3Rhc2guc2g6NDkzCisjOiBnaXQtc3Rhc2guc2g6NTM2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIke1JFVn06IENvdWxkIG5vdCBkcm9wIHN0YXNoIGVudHJ5IgogbXNnc3RyICIke1JFVn3vvJrkuI3og73kuKLlvIPov5vluqbmnaHnm64iCiAKLSM6IGdpdC1zdGFzaC5zaDo1MDAKKyM6IGdpdC1zdGFzaC5zaDo1NDMKIG1zZ2lkICJObyBicmFuY2ggbmFtZSBzcGVjaWZpZWQiCiBtc2dzdHIgIuacquaMh+WumuWIhuaUr+WQjSIKIAotIzogZ2l0LXN0YXNoLnNoOjU3MQorIzogZ2l0LXN0YXNoLnNoOjYxNQogbXNnaWQgIihUbyByZXN0b3JlIHRoZW0gdHlwZSBcImdpdCBzdGFzaCBhcHBseVwiKSIKIG1zZ3N0ciAi77yI5Li65oGi5aSN5pWw5o2u6L6T5YWlIFwiZ2l0IHN0YXNoIGFwcGx5XCLvvIkiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgImNhbm5vdCBzdHJpcCBvbmUgY29tcG9uZW50IG9mZiB1cmwgJyRyZW1vdGV1cmwnIgogbXNnc3RyICLml6Dms5Xku44gdXJsICckcmVtb3RldXJsJyDliaXnprvkuIDkuKrnu4Tku7YiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTk2CisjOiBnaXQtc3VibW9kdWxlLnNoOjIzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiTm8gc3VibW9kdWxlIG1hcHBpbmcgZm91bmQgaW4gLmdpdG1vZHVsZXMgZm9yIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAi5pyq5ZyoIC5naXRtb2R1bGVzIOS4reWPkeeOsOi3r+W+hCAnJHNtX3BhdGgnIOeahOWtkOaooee7hOaYoOWwhCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjgxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDbG9uZSBvZiAnJHVybCcgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGZhaWxlZCIKIG1zZ3N0ciAi5peg5rOV5YWL6ZqGICckdXJsJyDliLDlrZDmqKHnu4Tot6/lvoQgJyRzbV9wYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoyNTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjkzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJHaXRkaXIgJyRhJyBpcyBwYXJ0IG9mIHRoZSBzdWJtb2R1bGUgcGF0aCAnJGInIG9yIHZpY2UgdmVyc2EiCiBtc2dzdHIgIkdpdGRpciAnJGEnIOWcqOWtkOaooee7hOi3r+W+hCAnJGInIOS5i+S4i+aIluebuOWPjSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNDkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDAzCittc2dpZCAiUmVsYXRpdmUgcGF0aCBjYW4gb25seSBiZSB1c2VkIGZyb20gdGhlIHRvcGxldmVsIG9mIHRoZSB3b3JraW5nIHRyZWUiCittc2dzdHIgIuWPquiDveWcqOW3peS9nOWMuueahOmhtue6p+ebruW9leS4reS9v+eUqOebuOWvuei3r+W+hCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MTMKICMsIHNoLWZvcm1hdAogbXNnaWQgInJlcG8gVVJMOiAnJHJlcG8nIG11c3QgYmUgYWJzb2x1dGUgb3IgYmVnaW4gd2l0aCAuL3wuLi8iCiBtc2dzdHIgIueJiOacrOW6k1VSTO+8mickcmVwbycg5b+F6aG75piv57ud5a+56Lev5b6E5oiW5LulIC4vfC4uLyDotbflp4siCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjQzMAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRzbV9wYXRoJyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgaW5kZXgiCiBtc2dzdHIgIickc21fcGF0aCcg5bey57uP5a2Y5Zyo5LqO57Si5byV5LitIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM3MAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgZm9sbG93aW5nIHBhdGggaXMgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgpAQCAtOTczNSwyNDEgKzEwMDU1LDM0NSBAQAogIiRzbV9wYXRoXG4iCiAi5aaC5p6c5oKo56Gu5a6e5oOz5re75Yqg5a6D77yM5L2/55SoIC1mIOWPguaVsOOAgiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDUyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgZXhpc3RpbmcgcmVwbyBhdCAnJHNtX3BhdGgnIHRvIHRoZSBpbmRleCIKIG1zZ3N0ciAi5re75Yqg5L2N5LqOICckc21fcGF0aCcg55qE546w5a2Y54mI5pys5bqT5Yiw57Si5byVIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM5MAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhIHZhbGlkIGdpdCByZXBvIgogbXNnc3RyICInJHNtX3BhdGgnIOW3suWtmOWcqOS4lOS4jeaYr+S4gOS4quacieaViOeahCBnaXQg54mI5pys5bqTIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM5OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkEgZ2l0IGRpcmVjdG9yeSBmb3IgJyRzbV9uYW1lJyBpcyBmb3VuZCBsb2NhbGx5IHdpdGggcmVtb3RlKHMpOiIKIG1zZ3N0ciAi5pys5Zyw5Y+R546wICckc21fbmFtZScg55qE5LiA5LiqIGdpdCDnm67lvZXvvIzkuI7lhbblr7nlupTnmoTov5znqIvniYjmnKzlupPvvJoiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIHJldXNlIHRoaXMgbG9jYWwgZ2l0IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIGNsb25pbmcgYWdhaW4gZnJvbSIKIG1zZ3N0ciAi5aaC5p6c5oKo5oOz6YeN55So5q2k5pys5ZywIGdpdCDnm67lvZXogIzkuI3mmK/ph43mlrDlhYvpmoboh6oiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAyCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogInVzZSB0aGUgJy0tZm9yY2UnIG9wdGlvbi4gSWYgdGhlIGxvY2FsIGdpdCBkaXJlY3RvcnkgaXMgbm90IHRoZSBjb3JyZWN0IHJlcG8iCiBtc2dzdHIgIuS9v+eUqCAnLS1mb3JjZScg5Y+C5pWw44CC5aaC5p6c5pys5ZywIGdpdCDnm67lvZXkuI3mmK/mraPnoa7nmoTniYjmnKzlupMiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIm9yIHlvdSBhcmUgdW5zdXJlIHdoYXQgdGhpcyBtZWFucyBjaG9vc2UgYW5vdGhlciBuYW1lIHdpdGggdGhlICctLW5hbWUnICIKICJvcHRpb24uIgogbXNnc3RyICLmiJbogIXmgqjkuI3noa7lrprlhbbkuK3lkKvkuYnkvb/nlKggJy0tbmFtZScg5Y+C5pWw6YCJ5oup5Y+m5aSW5LiA5Liq5ZCN56ew44CCIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwNQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjkKICMsIHNoLWZvcm1hdAogbXNnaWQgIlJlYWN0aXZhdGluZyBsb2NhbCBnaXQgZGlyZWN0b3J5IGZvciBzdWJtb2R1bGUgJyRzbV9uYW1lJy4iCiBtc2dzdHIgIua/gOa0u+acrOWcsCBnaXQg55uu5b2V5Yiw5a2Q5qih57uEICckc21fbmFtZSfjgIIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDE3CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ4MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGNoZWNrb3V0IHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgogbXNnc3RyICLkuI3og73mo4Dlh7rlrZDmqKHnu4QgJyRzbV9wYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MjIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDg2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gYWRkIHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgogbXNnc3RyICLml6Dms5Xmt7vliqDlrZDmqKHnu4QgJyRzbV9wYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDk1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgc3VibW9kdWxlICckc21fcGF0aCciCiBtc2dzdHIgIuaXoOazleazqOWGjOWtkOaooee7hCAnJHNtX3BhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQ3NAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo1MzkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkVudGVyaW5nICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICLmraPlnKjov5vlhaUgJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiRW50ZXJpbmcgJyRwcmVmaXgkZGlzcGxheXBhdGgnIgorbXNnc3RyICLmraPlnKjov5vlhaUgJyRwcmVmaXgkZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQ4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NTQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN0b3BwaW5nIGF0ICckc21fcGF0aCc7IHNjcmlwdCByZXR1cm5lZCBub24temVybyBzdGF0dXMuIgotbXNnc3RyICLlgZzmraLkuo4gJyRzbV9wYXRoJ++8jOiEmuacrOi/lOWbnumdnumbtuWAvOOAgiIKK21zZ2lkICJTdG9wcGluZyBhdCAnJHByZWZpeCRkaXNwbGF5cGF0aCc7IHNjcmlwdCByZXR1cm5lZCBub24temVybyBzdGF0dXMuIgorbXNnc3RyICLlgZzmraLkuo4gJyRwcmVmaXgkZGlzcGxheXBhdGgn77yM6ISa5pys6L+U5Zue6Z2e6Zu25YC844CCIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjUzMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDAKICMsIHNoLWZvcm1hdAotbXNnaWQgIk5vIHVybCBmb3VuZCBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyBpbiAuZ2l0bW9kdWxlcyIKLW1zZ3N0ciAi5ZyoIC5naXRtb2R1bGVzIOS4reacquaJvuWIsOWtkOaooee7hOi3r+W+hCAnJHNtX3BhdGgnIOeahCB1cmwiCittc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyBpbiAuZ2l0bW9kdWxlcyIKK21zZ3N0ciAi5ZyoIC5naXRtb2R1bGVzIOS4reacquaJvuWIsOWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJyDnmoQgdXJsIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU0MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cmwgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIuaXoOazleS4uuWtkOaooee7hOi3r+W+hCAnJHNtX3BhdGgnIOazqOWGjCB1cmwiCittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIuaXoOazleS4uuWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJyDms6jlhowgdXJsIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU0MworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTEKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSByZWdpc3RlcmVkIGZvciBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIuWtkOaooee7hCAnJG5hbWUnICgkdXJsKSDlt7LkuLrot6/lvoQgJyRzbV9wYXRoJyDms6jlhowiCittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIuWtkOaooee7hCAnJG5hbWUnICgkdXJsKSDmnKrlr7not6/lvoQgJyRkaXNwbGF5cGF0aCcg5rOo5YaMIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU1MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAi5peg5rOV5Li65a2Q5qih57uE6Lev5b6EICckc21fcGF0aCcg5rOo5YaM5pu05paw5qih5byPIgorbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIuaXoOazleS4uuWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJyDms6jlhozmm7TmlrDmqKHlvI8iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTg4CisjOiBnaXQtc3VibW9kdWxlLnNoOjY1NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiVXNlICcuJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gZGVpbml0aWFsaXplIGFsbCBzdWJtb2R1bGVzIgogbXNnc3RyICLkvb/nlKggJy4nIOWmguaenOaCqOecn+eahOaDs+imgeWvueaJgOacieWtkOaooee7hOWPlua2iOWIneWni+WMliIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjczCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIKLW1zZ3N0ciAi5a2Q5qih57uE5bel5L2c5Yy6ICckc21fcGF0aCcg5YyF5ZCr5LiA5LiqIC5naXQg55uu5b2VIgorbXNnaWQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIKK21zZ3N0ciAi5a2Q5qih57uE5bel5L2c5Yy6ICckZGlzcGxheXBhdGgnIOWMheWQq+S4gOS4qiAuZ2l0IOebruW9lSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njc0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICLvvIjkvb/nlKggJ3JtIC1yZicg5ZG95Luk5aaC5p6c5oKo55yf55qE5oOz5Yig6Zmk5a6D5Y+K5YW25YWo6YOo5Y6G5Y+y77yJIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODAKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgorIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRkaXNwbGF5cGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gIgogImRpc2NhcmQgdGhlbSIKLW1zZ3N0ciAi5a2Q5qih57uE5bel5L2c5Yy6ICckc21fcGF0aCcg5YyF5ZCr5pys5Zyw5L+u5pS577yb5L2/55SoICctZicg5Lii5byD5a6D5LusIgorbXNnc3RyICLlrZDmqKHnu4Tlt6XkvZzljLogJyRkaXNwbGF5cGF0aCcg5YyF5ZCr5pys5Zyw5L+u5pS577yb5L2/55SoICctZicg5Lii5byD5a6D5LusIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODMKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNsZWFyZWQgZGlyZWN0b3J5ICckc21fcGF0aCciCi1tc2dzdHIgIuW3sua4hemZpOebruW9lSAnJHNtX3BhdGgnIgorbXNnaWQgIkNsZWFyZWQgZGlyZWN0b3J5ICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLlt7LmuIXpmaTnm67lvZUgJyRkaXNwbGF5cGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjE0CisjOiBnaXQtc3VibW9kdWxlLnNoOjY4NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCciCi1tc2dzdHIgIuaXoOazleenu+mZpOWtkOaooee7hOW3peS9nOWMuiAnJHNtX3BhdGgnIgorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5peg5rOV56e76Zmk5a2Q5qih57uE5bel5L2c5Yy6ICckZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODcKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZW1wdHkgc3VibW9kdWxlIGRpcmVjdG9yeSAnJHNtX3BhdGgnIgotbXNnc3RyICLkuI3og73liJvlu7rnqbrnmoTlrZDmqKHnu4Tnm67lvZUgJyRzbV9wYXRoJyIKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIuS4jeiDveWIm+W7uuepuueahOWtkOaooee7hOebruW9lSAnJGRpc3BsYXlwYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njk2CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgdW5yZWdpc3RlcmVkIGZvciBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIuWtkOaooee7hCAnJG5hbWUnICgkdXJsKSDmnKrlr7not6/lvoQgJyRzbV9wYXRoJyDms6jlhowiCittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHVucmVnaXN0ZXJlZCBmb3IgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5a2Q5qih57uEICckbmFtZScgKCR1cmwpIOacquWvuei3r+W+hCAnJGRpc3BsYXlwYXRoJyDms6jlhowiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjgxMQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIG5vdCBpbml0aWFsaXplZFxuIgorIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIG5vdCBpbml0aWFsaXplZFxuIgogIk1heWJlIHlvdSB3YW50IHRvIHVzZSAndXBkYXRlIC0taW5pdCc/IgogbXNnc3RyICIiCi0i5a2Q5qih57uE6Lev5b6EICckcHJlZml4JHNtX3BhdGgnIOayoeacieWIneWni+WMllxuIgorIuWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJyDmsqHmnInliJ3lp4vljJZcbiIKICLkuZ/orrjmgqjmg7PnlKggJ3VwZGF0ZSAtLWluaXQn77yfIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc0NAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MjQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIuaXoOazleWcqOWtkOaooee7hOi3r+W+hCAnJHByZWZpeCRzbV9wYXRoJyDkuK3mib7liLDlvZPliY3niYjmnKwiCittc2dpZCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5peg5rOV5Zyo5a2Q5qih57uE6Lev5b6EICckZGlzcGxheXBhdGgnIOS4reaJvuWIsOW9k+WJjeeJiOacrCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3NTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODMzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAi5peg5rOV5Zyo5a2Q5qih57uE6Lev5b6EICckc21fcGF0aCcg5Lit6I635Y+WIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc3NworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NTcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAi5peg5rOV5Zyo5a2Q5qih57uE6Lev5b6EICckcHJlZml4JHNtX3BhdGgnIOS4reiOt+WPliIKK21zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIuaXoOazleWcqOWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJyDkuK3ojrflj5YiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzkxCisjOiBnaXQtc3VibW9kdWxlLnNoOjg3MQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIHJlYmFzZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICLml6Dms5XlnKjlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCcg5Lit5Y+Y5Z+6ICckc2hhMSciCittc2dpZCAiVW5hYmxlIHRvIHJlYmFzZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLml6Dms5XlnKjlrZDmqKHnu4Tot6/lvoQgJyRkaXNwbGF5cGF0aCcg5Lit5Y+Y5Z+6ICckc2hhMSciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzkyCisjOiBnaXQtc3VibW9kdWxlLnNoOjg3MgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IHJlYmFzZWQgaW50byAnJHNoYTEnIgotbXNnc3RyICLlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCfvvJrlj5jln7roh7MgJyRzaGExJyIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogcmViYXNlZCBpbnRvICckc2hhMSciCittc2dzdHIgIuWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJ++8muWPmOWfuuiHsyAnJHNoYTEnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5NworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBtZXJnZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICLml6Dms5XlkIjlubYgJyRzaGExJyDliLDlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCcg5LitIgorbXNnaWQgIlVuYWJsZSB0byBtZXJnZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLml6Dms5XlkIjlubYgJyRzaGExJyDliLDlrZDmqKHnu4Tot6/lvoQgJyRkaXNwbGF5cGF0aCcg5LitIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzgKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBtZXJnZWQgaW4gJyRzaGExJyIKLW1zZ3N0ciAi5a2Q5qih57uE6Lev5b6EICckcHJlZml4JHNtX3BhdGgn77ya5bey5ZCI5bm25YWlICckc2hhMSciCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgorbXNnc3RyICLlrZDmqKHnu4Tot6/lvoQgJyRkaXNwbGF5cGF0aCfvvJrlt7LlkIjlubblhaUgJyRzaGExJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODgzCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAi5peg5rOV5Zyo5a2Q5qih57uE6Lev5b6EICckcHJlZml4JHNtX3BhdGgnIOS4reajgOWHuiAnJHNoYTEnIgorbXNnaWQgIiIKKyJFeGVjdXRpb24gb2YgJyRjb21tYW5kICRzaGExJyBmYWlsZWQgaW4gc3VibW9kdWxlICBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnc3RyICLlnKjlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCcg5Lit5omn6KGMICckY29tbWFuZCAkc2hhMScg5aSx6LSlIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgwNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgotbXNnc3RyICLlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCfvvJrmo4Dlh7ogJyRzaGExJyIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogJyRjb21tYW5kICRzaGExJyIKK21zZ3N0ciAi5a2Q5qih57uE6Lev5b6EICckcHJlZml4JHNtX3BhdGgnOiAnJGNvbW1hbmQgJHNoYTEnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIuaXoOazlemAkuW9kui/m+WtkOaooee7hOi3r+W+hCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5peg5rOV5Zyo5a2Q5qih57uE6Lev5b6EICckZGlzcGxheXBhdGgnIOS4reajgOWHuiAnJHNoYTEnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjkzOQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4OTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgorbXNnc3RyICLlrZDmqKHnu4Tot6/lvoQgJyRkaXNwbGF5cGF0aCfvvJrmo4Dlh7ogJyRzaGExJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MTcKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIuaXoOazlemAkuW9kui/m+WtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDI1CiBtc2dpZCAiVGhlIC0tY2FjaGVkIG9wdGlvbiBjYW5ub3QgYmUgdXNlZCB3aXRoIHRoZSAtLWZpbGVzIG9wdGlvbiIKIG1zZ3N0ciAi6YCJ6aG5IC0tY2FjaGVkIOS4jeiDveWSjOmAiemhuSAtLWZpbGVzIOWQjOaXtuS9v+eUqCIKIAogIy4gdW5leHBlY3RlZCB0eXBlCi0jOiBnaXQtc3VibW9kdWxlLnNoOjk3OQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJ1bmV4cGVjdGVkIG1vZGUgJG1vZF9kc3QiCiBtc2dzdHIgIuaEj+WklueahOaooeW8jyAkbW9kX2RzdCIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiBnaXQtc3VibW9kdWxlLnNoOjk5NworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg2CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgotbXNnc3RyICIgIOitpuWRiu+8miRuYW1lIOacquWMheWQq+aPkOS6pCAkc2hhMV9zcmMiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgorbXNnc3RyICIgIOitpuWRiu+8miRkaXNwbGF5X25hbWUg5pyq5YyF5ZCr5o+Q5LqkICRzaGExX3NyYyIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMDAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA4OQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKLW1zZ3N0ciAiICDorablkYrvvJokbmFtZSDmnKrljIXlkKvmj5DkuqQgJHNoYTFfZHN0IgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKK21zZ3N0ciAiICDorablkYrvvJokZGlzcGxheV9uYW1lIOacquWMheWQq+aPkOS6pCAkc2hhMV9kc3QiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwOTIKICMsIHNoLWZvcm1hdAotbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdHMgJHNoYTFfc3JjIGFuZCAkc2hhMV9kc3QiCi1tc2dzdHIgIiAg6K2m5ZGK77yaJG5hbWUg5pyq5YyF5ZCr5o+Q5LqkICRzaGExX3NyYyDlkowgJHNoYTFfZHN0IgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyAkc2hhMV9zcmMgYW5kICRzaGExX2RzdCIKK21zZ3N0ciAiICDorablkYrvvJokZGlzcGxheV9uYW1lIOacquWMheWQq+aPkOS6pCAkc2hhMV9zcmMg5ZKMICRzaGExX2RzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDI4CisjOiBnaXQtc3VibW9kdWxlLnNoOjExMTcKIG1zZ2lkICJibG9iIgogbXNnc3RyICLmlbDmja7lr7nosaEiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTA2NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU1CiBtc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCiBtc2dzdHIgIuWtkOaooee7hOW3suS/ruaUueS9huWwmuacquabtOaWsO+8miIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY4CisjOiBnaXQtc3VibW9kdWxlLnNoOjExNTcKIG1zZ2lkICJTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICLopoHmj5DkuqTnmoTlrZDmqKHnu4Tlj5jmm7TvvJoiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1MworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjQyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIuaXoOazlemAkuW9kui/m+WtkOaooee7hOi3r+W+hCAnJHNtX3BhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEyMTYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTMwNgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAi5Li6ICckcHJlZml4JHNtX3BhdGgnIOWQjOatpeWtkOaooee7hCB1cmwiCittc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5Li6ICckZGlzcGxheXBhdGgnIOWQjOatpeWtkOaooee7hCB1cmwiCisKKyN+IG1zZ2lkICIiCisjfiAidGhlIGZvbGxvd2luZyBzdWJtb2R1bGUgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZSlcbiIKKyN+ICJ1c2VzIGEgLmdpdCBkaXJlY3Rvcnk6IgorI34gbXNnaWRfcGx1cmFsICIiCisjfiAidGhlIGZvbGxvd2luZyBzdWJtb2R1bGVzIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGUpXG4iCisjfiAidXNlIGEgLmdpdCBkaXJlY3Rvcnk6IgorI34gbXNnc3RyWzBdICLlpoLkuIvlrZDmqKHnu4TvvIjmiJbkuIDkuKrlhbbltYzlpZfnmoTlrZDmqKHnu4TvvInkvb/nlKjkuobkuIDkuKogLmdpdCDnm67lvZXvvJoiCisjfiBtc2dzdHJbMV0gIuWmguS4i+WtkOaooee7hO+8iOaIluS4gOS4quWFtuW1jOWll+eahOWtkOaooee7hO+8ieS9v+eUqOS6huS4gOS4qiAuZ2l0IOebruW9le+8miIKKworI34gbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdW5tZXJnZWQgLmdpdG1vZHVsZXMsIHJlc29sdmUgbWVyZ2UgY29uZmxpY3RzIGZpcnN0IgorI34gbXNnc3RyICLml6Dms5Xkv67mlLnmnKrlkIjlubbnmoQgLmdpdG1vZHVsZXPvvIzlhYjop6PlhrPlkIjlubblhrLnqoEiCisKKyN+IG1zZ2lkICJDb3VsZCBub3QgZmluZCBzZWN0aW9uIGluIC5naXRtb2R1bGVzIHdoZXJlIHBhdGg9JXMiCisjfiBtc2dzdHIgIuaXoOazleWcqCAuZ2l0bW9kdWxlcyDkuK3mib7liLAgcGF0aD0lcyDnmoTlsI/oioIiCisKKyN+IG1zZ2lkICJDb3VsZCBub3QgdXBkYXRlIC5naXRtb2R1bGVzIGVudHJ5ICVzIgorI34gbXNnc3RyICLkuI3og73mm7TmlrAgLmdpdG1vZHVsZXMg5p2h55uuICVzIgorCisjfiBtc2dpZCAiQ291bGQgbm90IHJlbW92ZSAuZ2l0bW9kdWxlcyBlbnRyeSBmb3IgJXMiCisjfiBtc2dzdHIgIuaXoOazleenu+mZpCAlcyDnmoQgLmdpdG1vZHVsZXMg5p2h55uuIgorCisjfiBtc2dpZCAiY291bGQgbm90IGZpbmQgLmdpdG1vZHVsZXMgaW4gaW5kZXgiCisjfiBtc2dzdHIgIuaXoOazleWcqOe0ouW8leS4reaJvuWIsCAuZ2l0bW9kdWxlcyIKKworI34gbXNnaWQgInJlYWRpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCisjfiBtc2dzdHIgIuivu+WPluabtOaWsOWQjueahCAuZ2l0bW9kdWxlcyDlpLHotKUiCisKKyN+IG1zZ2lkICJ1bmFibGUgdG8gc3RhdCB1cGRhdGVkIC5naXRtb2R1bGVzIgorI34gbXNnc3RyICLkuI3og73mnprkuL7mm7TmlrDlkI7nmoQgLmdpdG1vZHVsZXMiCisKKyN+IG1zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlIC5naXRtb2R1bGVzIGZyb20gaW5kZXgiCisjfiBtc2dzdHIgIuS4jeiDveS7jue0ouW8leS4reenu+mZpCAuZ2l0bW9kdWxlcyIKKworI34gbXNnaWQgImFkZGluZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIKKyN+IG1zZ3N0ciAi5re75Yqg5pu05paw5ZCO55qEIC5naXRtb2R1bGVzIOWksei0pSIKKworI34gbXNnaWQgInN0YWdpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCisjfiBtc2dzdHIgIuWwhuabtOaWsOWQjiAuZ2l0bW9kdWxlcyDmt7vliqDmmoLlrZjljLrlpLHotKUiCisKKyN+IG1zZ2lkICJDb3VsZCBub3Qgc2V0IGNvcmUud29ya3RyZWUgaW4gJXMiCisjfiBtc2dzdHIgIuS4jeiDveWcqCAlcyDkuK3orr7nva4gY29yZS53b3JrdHJlZSIKKworIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8CisjfiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKKyN+IG1zZ3N0ciAiICDvvIjop6PlhrPlhrLnqoHvvIznhLblkI7ov5DooYwgXCJnaXQgYW0gLS1yZXNvbHZlZFwi77yJIgorCisjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKKyN+IG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY29tbWl0XCIpIgorI34gbXNnc3RyICIgIO+8iOino+WGs+aJgOacieWGsueqgeWQju+8jOaJp+ihjCBcImdpdCBjb21taXRcIu+8iSIKKworI34gbXNnaWQgIm1vcmUgdGhhbiAlZCB0cmVlcyBnaXZlbjogJyVzJyIKKyN+IG1zZ3N0ciAi5o+Q5L6b5LqG6LaF6L+HICVkIOS4quagkeWvueixoe+8miclcyciCisKKyN+IG1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1uby1mZiB3aXRoIC0tZmYtb25seS4iCisjfiBtc2dzdHIgIuaCqOS4jeiDveWwhiAtLW5vLWZmIOS4jiAtLWZmLW9ubHkg5ZCM5pe25L2/55So44CCIgorCisjfiBtc2dpZCAiSHVoPyBEaXJlY3RvcnkgJXMgaXMgaW4gaW5kZXggYW5kIG5vIHN1Ym1vZHVsZT8iCisjfiBtc2dzdHIgIuWXr++8n+ebruW9lSAlcyDlnKjntKLlvJXkuK3lubbkuJTkuI3mmK/lrZDmqKHnu4TvvJ8iCisKKyN+IG1zZ2lkICIiCisjfiAic3VibW9kdWxlICclcycgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpIHVzZXMgYSAuZ2l0IGRpcmVjdG9yeVxuIgorI34gIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyAiCisjfiAiaGlzdG9yeSkiCisjfiBtc2dzdHIgIiIKKyN+ICLlrZDmqKHnu4QgJyVzJ++8iOaIluiAheWug+eahOS4gOS4quW1jOWll+WtkOaooee7hO+8ieS9v+eUqOS4gOS4qiAuZ2l0IOebruW9lVxuIgorI34gIu+8iOS9v+eUqCAncm0gLXJmJyDlkb3ku6TlpoLmnpzmgqjnnJ/nmoTmg7PliKDpmaTlroPlj4rlhbblhajpg6jljoblj7LvvIkiCisKKyN+IG1zZ2lkICIiCisjfiAiJyVzJyBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4XG4iCisjfiAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKKyN+IG1zZ3N0ciAiIgorI34gIiclcycg5pyJ5Y+Y5pu05bey5pqC5a2Y6Iez57Si5byV5LitXG4iCisjfiAi77yI5L2/55SoIC0tY2FjaGVkIOS/neWtmOaWh+S7tu+8jOaIlueUqCAtZiDlvLrliLbliKDpmaTvvIkiCisKKyN+IG1zZ2lkICJzaG93IGNvbW1pdHMgd2hlcmUgbm8gcGFyZW50IGNvbWVzIGJlZm9yZSBpdHMgY2hpbGRyZW4iCisjfiBtc2dzdHIgIuaYvuekuuaPkOS6pOaXtuS7peaXtumXtOS4uuW6j+S4lOeItuaPkOS6pOS4jeiDvemihuWFiOWtkOaPkOS6pCIKKworI34gbXNnaWQgInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlIgorI34gbXNnc3RyICLmmL7npLogSEVBRCDlvJXnlKgiCisKKyN+IG1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJHNtX3BhdGgnIgorI34gbXNnc3RyICLlrZDmqKHnu4QgJyRuYW1lJyAoJHVybCkg5bey5Li66Lev5b6EICckc21fcGF0aCcg5rOo5YaMIgorCisjfiBtc2dpZCAiQ2hhbmdlIGZsYWdzIgorI34gbXNnc3RyICLkv67mlLnlj4LmlbAiCisKKyN+IG1zZ2lkICIiCisjfiAiTk9URTogbm8gbW9yZSBmaWxlcyB0byBjbGVhbjsgcHJlc3MgXCJ0XCIgdG8gdG9nZ2xlIGZsYWdzIG9mIGdpdC1jbGVhbi4iCisjfiBtc2dzdHIgIuazqOaEj++8muayoeacieimgea4heeQhueahOaWh+S7tu+8m+WwneivleaMiSBcInRcIiDliIfmjaIgZ2l0LWNsZWFuIOeahOmAiemhueOAgiIKKworI34gbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCisjfiBtc2dzdHIgIuaXoOazlemAkuW9kui/m+WtkOaooee7hOi3r+W+hCAnJHByZWZpeCRzbV9wYXRoJyIKIAogI34gbXNnaWQgImdpdCBzaG9ydGxvZyBbLW5dIFstc10gWy1lXSBbLXddIFtyZXYtb3B0c10gWy0tXSBbPGNvbW1pdC1pZD4uLi4gXSIKICN+IG1zZ3N0ciAiZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW+eJiOacrOmAiemhuV0gWy0tXSBbPOaPkOS6pOWPtz4uLi4gXSIKQEAgLTk5OTEsMTAgKzEwNDE1LDYgQEAKICN+IG1zZ2lkICJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgogI34gbXNnc3RyICLvvIjlj4Lop4EgJ2dpdCBoZWxwIHN0YXR1cyfvvInjgIIiCiAKLSMsIGZ1enp5Ci0jfiBtc2dpZCAiYWFhU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJHByZWZpeCRzbV9wYXRoJyIKLSN+IG1zZ3N0ciAi5Li6ICckcHJlZml4JHNtX3BhdGgnIOWQjOatpeWtkOaooee7hCB1cmwiCi0KICN+IG1zZ2lkICJ1c2UgYW55IHJlZiBpbiAuZ2l0L3JlZnMiCiAjfiBtc2dzdHIgIuS9v+eUqCAuZ2l0L3JlZnMg6YeM55qE5Lu75oSP5byV55SoIgogCmRpZmYgLS1naXQgYS9wcmV0dHkuYyBiL3ByZXR0eS5jCmluZGV4IDllNDMxNTQuLjc0NTYzYzkgMTAwNjQ0Ci0tLSBhL3ByZXR0eS5jCisrKyBiL3ByZXR0eS5jCkBAIC00MDYsNyArNDA2LDcgQEAKIAlyZXR1cm4gc2hvd19kYXRlKGRhdGUsIHR6LCBtb2RlKTsKIH0KIAotdm9pZCBwcF91c2VyX2luZm8oY29uc3Qgc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKK3ZvaWQgcHBfdXNlcl9pbmZvKHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCiAJCSAgY29uc3QgY2hhciAqd2hhdCwgc3RydWN0IHN0cmJ1ZiAqc2IsCiAJCSAgY29uc3QgY2hhciAqbGluZSwgY29uc3QgY2hhciAqZW5jb2RpbmcpCiB7CkBAIC00MzIsNiArNDMyLDIzIEBACiAJCW1hcF91c2VyKHBwLT5tYWlsbWFwLCAmbWFpbGJ1ZiwgJm1haWxsZW4sICZuYW1lYnVmLCAmbmFtZWxlbik7CiAKIAlpZiAocHAtPmZtdCA9PSBDTUlUX0ZNVF9FTUFJTCkgeworCQlpZiAocHAtPmZyb21faWRlbnQpIHsKKwkJCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CisKKwkJCXN0cmJ1Zl9hZGRzdHIoJmJ1ZiwgIkZyb206ICIpOworCQkJc3RyYnVmX2FkZCgmYnVmLCBuYW1lYnVmLCBuYW1lbGVuKTsKKwkJCXN0cmJ1Zl9hZGRzdHIoJmJ1ZiwgIiA8Iik7CisJCQlzdHJidWZfYWRkKCZidWYsIG1haWxidWYsIG1haWxsZW4pOworCQkJc3RyYnVmX2FkZHN0cigmYnVmLCAiPlxuIik7CisJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJnBwLT5pbl9ib2R5X2hlYWRlcnMsCisJCQkJCSAgIHN0cmJ1Zl9kZXRhY2goJmJ1ZiwgTlVMTCkpOworCisJCQltYWlsYnVmID0gcHAtPmZyb21faWRlbnQtPm1haWxfYmVnaW47CisJCQltYWlsbGVuID0gcHAtPmZyb21faWRlbnQtPm1haWxfZW5kIC0gbWFpbGJ1ZjsKKwkJCW5hbWVidWYgPSBwcC0+ZnJvbV9pZGVudC0+bmFtZV9iZWdpbjsKKwkJCW5hbWVsZW4gPSBwcC0+ZnJvbV9pZGVudC0+bmFtZV9lbmQgLSBuYW1lYnVmOworCQl9CisKIAkJc3RyYnVmX2FkZHN0cihzYiwgIkZyb206ICIpOwogCQlpZiAobmVlZHNfcmZjMjA0N19lbmNvZGluZyhuYW1lYnVmLCBuYW1lbGVuLCBSRkMyMDQ3X0FERFJFU1MpKSB7CiAJCQlhZGRfcmZjMjA0NyhzYiwgbmFtZWJ1ZiwgbmFtZWxlbiwKQEAgLTE1MTQsNyArMTUzMSw3IEBACiAJZnJlZShjb250ZXh0LnNpZ25hdHVyZV9jaGVjay5zaWduZXIpOwogfQogCi1zdGF0aWMgdm9pZCBwcF9oZWFkZXIoY29uc3Qgc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKK3N0YXRpYyB2b2lkIHBwX2hlYWRlcihzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAogCQkgICAgICBjb25zdCBjaGFyICplbmNvZGluZywKIAkJICAgICAgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0LAogCQkgICAgICBjb25zdCBjaGFyICoqbXNnX3AsCkBAIC0xNTc1LDcgKzE1OTIsNyBAQAogCX0KIH0KIAotdm9pZCBwcF90aXRsZV9saW5lKGNvbnN0IHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCit2b2lkIHBwX3RpdGxlX2xpbmUoc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKIAkJICAgY29uc3QgY2hhciAqKm1zZ19wLAogCQkgICBzdHJ1Y3Qgc3RyYnVmICpzYiwKIAkJICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCkBAIC0xNjAyLDYgKzE2MTksMTYgQEAKIAl9CiAJc3RyYnVmX2FkZGNoKHNiLCAnXG4nKTsKIAorCWlmIChuZWVkXzhiaXRfY3RlID09IDApIHsKKwkJaW50IGk7CisJCWZvciAoaSA9IDA7IGkgPCBwcC0+aW5fYm9keV9oZWFkZXJzLm5yOyBpKyspIHsKKwkJCWlmIChoYXNfbm9uX2FzY2lpKHBwLT5pbl9ib2R5X2hlYWRlcnMuaXRlbXNbaV0uc3RyaW5nKSkgeworCQkJCW5lZWRfOGJpdF9jdGUgPSAxOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCiAJaWYgKG5lZWRfOGJpdF9jdGUgPiAwKSB7CiAJCWNvbnN0IGNoYXIgKmhlYWRlcl9mbXQgPQogCQkJIk1JTUUtVmVyc2lvbjogMS4wXG4iCkBAIC0xNjE1LDEwICsxNjQyLDIxIEBACiAJaWYgKHBwLT5mbXQgPT0gQ01JVF9GTVRfRU1BSUwpIHsKIAkJc3RyYnVmX2FkZGNoKHNiLCAnXG4nKTsKIAl9CisKKwlpZiAocHAtPmluX2JvZHlfaGVhZGVycy5ucikgeworCQlpbnQgaTsKKwkJZm9yIChpID0gMDsgaSA8IHBwLT5pbl9ib2R5X2hlYWRlcnMubnI7IGkrKykgeworCQkJc3RyYnVmX2FkZHN0cihzYiwgcHAtPmluX2JvZHlfaGVhZGVycy5pdGVtc1tpXS5zdHJpbmcpOworCQkJZnJlZShwcC0+aW5fYm9keV9oZWFkZXJzLml0ZW1zW2ldLnN0cmluZyk7CisJCX0KKwkJc3RyaW5nX2xpc3RfY2xlYXIoJnBwLT5pbl9ib2R5X2hlYWRlcnMsIDApOworCQlzdHJidWZfYWRkY2goc2IsICdcbicpOworCX0KKwogCXN0cmJ1Zl9yZWxlYXNlKCZ0aXRsZSk7CiB9CiAKLXZvaWQgcHBfcmVtYWluZGVyKGNvbnN0IHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCit2b2lkIHBwX3JlbWFpbmRlcihzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAogCQkgIGNvbnN0IGNoYXIgKiptc2dfcCwKIAkJICBzdHJ1Y3Qgc3RyYnVmICpzYiwKIAkJICBpbnQgaW5kZW50KQpAQCAtMTY1MCw3ICsxNjg4LDcgQEAKIAl9CiB9CiAKLXZvaWQgcHJldHR5X3ByaW50X2NvbW1pdChjb25zdCBzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAordm9pZCBwcmV0dHlfcHJpbnRfY29tbWl0KHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCiAJCQkgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0LAogCQkJIHN0cnVjdCBzdHJidWYgKnNiKQogewpkaWZmIC0tZ2l0IGEvcHJpby1xdWV1ZS5jIGIvcHJpby1xdWV1ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5ZjhjNmQKLS0tIC9kZXYvbnVsbAorKysgYi9wcmlvLXF1ZXVlLmMKQEAgLTAsMCArMSw4NCBAQAorI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCisjaW5jbHVkZSAicHJpby1xdWV1ZS5oIgorCit2b2lkIHByaW9fcXVldWVfcmV2ZXJzZShzdHJ1Y3QgcHJpb19xdWV1ZSAqcXVldWUpCit7CisJaW50IGksIGo7CisKKwlpZiAocXVldWUtPmNvbXBhcmUgIT0gTlVMTCkKKwkJZGllKCJCVUc6IHByaW9fcXVldWVfcmV2ZXJzZSgpIG9uIG5vbi1MSUZPIHF1ZXVlIik7CisJZm9yIChpID0gMDsgaSA8PSAoaiA9IChxdWV1ZS0+bnIgLSAxKSAtIGkpOyBpKyspIHsKKwkJc3RydWN0IGNvbW1pdCAqc3dhcCA9IHF1ZXVlLT5hcnJheVtpXTsKKwkJcXVldWUtPmFycmF5W2ldID0gcXVldWUtPmFycmF5W2pdOworCQlxdWV1ZS0+YXJyYXlbal0gPSBzd2FwOworCX0KK30KKwordm9pZCBjbGVhcl9wcmlvX3F1ZXVlKHN0cnVjdCBwcmlvX3F1ZXVlICpxdWV1ZSkKK3sKKwlmcmVlKHF1ZXVlLT5hcnJheSk7CisJcXVldWUtPm5yID0gMDsKKwlxdWV1ZS0+YWxsb2MgPSAwOworCXF1ZXVlLT5hcnJheSA9IE5VTEw7Cit9CisKK3ZvaWQgcHJpb19xdWV1ZV9wdXQoc3RydWN0IHByaW9fcXVldWUgKnF1ZXVlLCB2b2lkICp0aGluZykKK3sKKwlwcmlvX3F1ZXVlX2NvbXBhcmVfZm4gY29tcGFyZSA9IHF1ZXVlLT5jb21wYXJlOworCWludCBpeCwgcGFyZW50OworCisJLyogQXBwZW5kIGF0IHRoZSBlbmQgKi8KKwlBTExPQ19HUk9XKHF1ZXVlLT5hcnJheSwgcXVldWUtPm5yICsgMSwgcXVldWUtPmFsbG9jKTsKKwlxdWV1ZS0+YXJyYXlbcXVldWUtPm5yKytdID0gdGhpbmc7CisJaWYgKCFjb21wYXJlKQorCQlyZXR1cm47IC8qIExJRk8gKi8KKworCS8qIEJ1YmJsZSB1cCB0aGUgbmV3IG9uZSAqLworCWZvciAoaXggPSBxdWV1ZS0+bnIgLSAxOyBpeDsgaXggPSBwYXJlbnQpIHsKKwkJcGFyZW50ID0gKGl4IC0gMSkgLyAyOworCQlpZiAoY29tcGFyZShxdWV1ZS0+YXJyYXlbcGFyZW50XSwgcXVldWUtPmFycmF5W2l4XSwKKwkJCSAgICBxdWV1ZS0+Y2JfZGF0YSkgPD0gMCkKKwkJCWJyZWFrOworCisJCXRoaW5nID0gcXVldWUtPmFycmF5W3BhcmVudF07CisJCXF1ZXVlLT5hcnJheVtwYXJlbnRdID0gcXVldWUtPmFycmF5W2l4XTsKKwkJcXVldWUtPmFycmF5W2l4XSA9IHRoaW5nOworCX0KK30KKwordm9pZCAqcHJpb19xdWV1ZV9nZXQoc3RydWN0IHByaW9fcXVldWUgKnF1ZXVlKQoreworCXZvaWQgKnJlc3VsdCwgKnN3YXA7CisJaW50IGl4LCBjaGlsZDsKKwlwcmlvX3F1ZXVlX2NvbXBhcmVfZm4gY29tcGFyZSA9IHF1ZXVlLT5jb21wYXJlOworCisJaWYgKCFxdWV1ZS0+bnIpCisJCXJldHVybiBOVUxMOworCWlmICghY29tcGFyZSkKKwkJcmV0dXJuIHF1ZXVlLT5hcnJheVstLXF1ZXVlLT5ucl07IC8qIExJRk8gKi8KKworCXJlc3VsdCA9IHF1ZXVlLT5hcnJheVswXTsKKwlpZiAoIS0tcXVldWUtPm5yKQorCQlyZXR1cm4gcmVzdWx0OworCisJcXVldWUtPmFycmF5WzBdID0gcXVldWUtPmFycmF5W3F1ZXVlLT5ucl07CisKKwkvKiBQdXNoIGRvd24gdGhlIG9uZSBhdCB0aGUgcm9vdCAqLworCWZvciAoaXggPSAwOyBpeCAqIDIgKyAxIDwgcXVldWUtPm5yOyBpeCA9IGNoaWxkKSB7CisJCWNoaWxkID0gaXggKiAyICsgMTsgLyogbGVmdCAqLworCQlpZiAoKGNoaWxkICsgMSA8IHF1ZXVlLT5ucikgJiYKKwkJICAgIChjb21wYXJlKHF1ZXVlLT5hcnJheVtjaGlsZF0sIHF1ZXVlLT5hcnJheVtjaGlsZCArIDFdLAorCQkJICAgICBxdWV1ZS0+Y2JfZGF0YSkgPj0gMCkpCisJCQljaGlsZCsrOyAvKiB1c2UgcmlnaHQgY2hpbGQgKi8KKworCQlpZiAoY29tcGFyZShxdWV1ZS0+YXJyYXlbaXhdLCBxdWV1ZS0+YXJyYXlbY2hpbGRdLAorCQkJICAgIHF1ZXVlLT5jYl9kYXRhKSA8PSAwKQorCQkJYnJlYWs7CisKKwkJc3dhcCA9IHF1ZXVlLT5hcnJheVtjaGlsZF07CisJCXF1ZXVlLT5hcnJheVtjaGlsZF0gPSBxdWV1ZS0+YXJyYXlbaXhdOworCQlxdWV1ZS0+YXJyYXlbaXhdID0gc3dhcDsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL3ByaW8tcXVldWUuaCBiL3ByaW8tcXVldWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzNjZDFmCi0tLSAvZGV2L251bGwKKysrIGIvcHJpby1xdWV1ZS5oCkBAIC0wLDAgKzEsNDggQEAKKyNpZm5kZWYgUFJJT19RVUVVRV9ICisjZGVmaW5lIFBSSU9fUVVFVUVfSAorCisvKgorICogQSBwcmlvcml0eSBxdWV1ZSBpbXBsZW1lbnRhdGlvbiwgcHJpbWFyaWx5IGZvciBrZWVwaW5nIHRyYWNrIG9mCisgKiBjb21taXRzIGluIHRoZSAnZGF0ZS1vcmRlcicgc28gdGhhdCB3ZSBwcm9jZXNzIHRoZW0gZnJvbSBuZXcgdG8gb2xkCisgKiBhcyB0aGV5IGFyZSBkaXNjb3ZlcmVkLCBidXQgY2FuIGJlIHVzZWQgdG8gaG9sZCBhbnkgcG9pbnRlciB0bworICogc3RydWN0LiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3Igc3VwcGx5aW5nIGEgZnVuY3Rpb24gdG8KKyAqIGNvbXBhcmUgdHdvICJ0aGluZ3MiLgorICoKKyAqIEFsdGVybmF0aXZlbHksIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgY2FuIGFsc28gYmUgdXNlZCBhcyBhIExJRk8gc3RhY2sKKyAqIGJ5IHNwZWNpZnlpbmcgTlVMTCBhcyB0aGUgY29tcGFyaXNvbiBmdW5jdGlvbi4KKyAqLworCisvKgorICogQ29tcGFyZSB0d28gInRoaW5ncyIsIG9uZSBhbmQgdHdvOyB0aGUgdGhpcmQgcGFyYW1ldGVyIGlzIGNiX2RhdGEKKyAqIGluIHRoZSBwcmlvX3F1ZXVlIHN0cnVjdHVyZS4gIFRoZSByZXN1bHQgaXMgcmV0dXJuZWQgYXMgYSBzaWduIG9mCisgKiB0aGUgcmV0dXJuIHZhbHVlLCBiZWluZyB0aGUgc2FtZSBhcyB0aGUgc2lnbiBvZiB0aGUgcmVzdWx0IG9mCisgKiBzdWJ0cmFjdGluZyAidHdvIiBmcm9tICJvbmUiIChpLmUuIG5lZ2F0aXZlIGlmICJvbmUiIHNvcnRzIGVhcmxpZXIKKyAqIHRoYW4gInR3byIpLgorICovCit0eXBlZGVmIGludCAoKnByaW9fcXVldWVfY29tcGFyZV9mbikoY29uc3Qgdm9pZCAqb25lLCBjb25zdCB2b2lkICp0d28sIHZvaWQgKmNiX2RhdGEpOworCitzdHJ1Y3QgcHJpb19xdWV1ZSB7CisJcHJpb19xdWV1ZV9jb21wYXJlX2ZuIGNvbXBhcmU7CisJdm9pZCAqY2JfZGF0YTsKKwlpbnQgYWxsb2MsIG5yOworCXZvaWQgKiphcnJheTsKK307CisKKy8qCisgKiBBZGQgdGhlICJ0aGluZyIgdG8gdGhlIHF1ZXVlLgorICovCitleHRlcm4gdm9pZCBwcmlvX3F1ZXVlX3B1dChzdHJ1Y3QgcHJpb19xdWV1ZSAqLCB2b2lkICp0aGluZyk7CisKKy8qCisgKiBFeHRyYWN0IHRoZSAidGhpbmciIHRoYXQgY29tcGFyZXMgdGhlIHNtYWxsZXN0IG91dCBvZiB0aGUgcXVldWUsCisgKiBvciBOVUxMLiAgSWYgY29tcGFyZSBmdW5jdGlvbiBpcyBOVUxMLCB0aGUgcXVldWUgYWN0cyBhcyBhIExJRk8KKyAqIHN0YWNrLgorICovCitleHRlcm4gdm9pZCAqcHJpb19xdWV1ZV9nZXQoc3RydWN0IHByaW9fcXVldWUgKik7CisKK2V4dGVybiB2b2lkIGNsZWFyX3ByaW9fcXVldWUoc3RydWN0IHByaW9fcXVldWUgKik7CisKKy8qIFJldmVyc2UgdGhlIExJRk8gZWxlbWVudHMgKi8KK2V4dGVybiB2b2lkIHByaW9fcXVldWVfcmV2ZXJzZShzdHJ1Y3QgcHJpb19xdWV1ZSAqKTsKKworI2VuZGlmIC8qIFBSSU9fUVVFVUVfSCAqLwpkaWZmIC0tZ2l0IGEvcXVvdGUuYyBiL3F1b3RlLmMKaW5kZXggOTExMjI5Zi4uNWM4ODA4MSAxMDA2NDQKLS0tIGEvcXVvdGUuYworKysgYi9xdW90ZS5jCkBAIC0zMTIsODIgKzMxMiwyNyBAQAogCWZwdXRjKHRlcm1pbmF0b3IsIGZwKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKnBhdGhfcmVsYXRpdmUoY29uc3QgY2hhciAqaW4sIGludCBsZW4sCi0JCQkJIHN0cnVjdCBzdHJidWYgKnNiLCBjb25zdCBjaGFyICpwcmVmaXgsCi0JCQkJIGludCBwcmVmaXhfbGVuKTsKLQotdm9pZCB3cml0ZV9uYW1lX3F1b3RlZF9yZWxhdGl2ZShjb25zdCBjaGFyICpuYW1lLCBzaXplX3QgbGVuLAotCQkJCWNvbnN0IGNoYXIgKnByZWZpeCwgc2l6ZV90IHByZWZpeF9sZW4sCit2b2lkIHdyaXRlX25hbWVfcXVvdGVkX3JlbGF0aXZlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnByZWZpeCwKIAkJCQlGSUxFICpmcCwgaW50IHRlcm1pbmF0b3IpCiB7CiAJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOwogCi0JbmFtZSA9IHBhdGhfcmVsYXRpdmUobmFtZSwgbGVuLCAmc2IsIHByZWZpeCwgcHJlZml4X2xlbik7CisJbmFtZSA9IHJlbGF0aXZlX3BhdGgobmFtZSwgcHJlZml4LCAmc2IpOwogCXdyaXRlX25hbWVfcXVvdGVkKG5hbWUsIGZwLCB0ZXJtaW5hdG9yKTsKIAogCXN0cmJ1Zl9yZWxlYXNlKCZzYik7CiB9CiAKLS8qCi0gKiBHaXZlIHBhdGggYXMgcmVsYXRpdmUgdG8gcHJlZml4LgotICoKLSAqIFRoZSBzdHJidWYgbWF5IG9yIG1heSBub3QgYmUgdXNlZCwgc28gZG8gbm90IGFzc3VtZSBpdCBjb250YWlucyB0aGUKLSAqIHJldHVybmVkIHBhdGguCi0gKi8KLXN0YXRpYyBjb25zdCBjaGFyICpwYXRoX3JlbGF0aXZlKGNvbnN0IGNoYXIgKmluLCBpbnQgbGVuLAotCQkJCSBzdHJ1Y3Qgc3RyYnVmICpzYiwgY29uc3QgY2hhciAqcHJlZml4LAotCQkJCSBpbnQgcHJlZml4X2xlbikKLXsKLQlpbnQgb2ZmLCBpOwotCi0JaWYgKGxlbiA8IDApCi0JCWxlbiA9IHN0cmxlbihpbik7Ci0JaWYgKHByZWZpeF9sZW4gPCAwKSB7Ci0JCWlmIChwcmVmaXgpCi0JCQlwcmVmaXhfbGVuID0gc3RybGVuKHByZWZpeCk7Ci0JCWVsc2UKLQkJCXByZWZpeF9sZW4gPSAwOwotCX0KLQotCW9mZiA9IDA7Ci0JaSA9IDA7Ci0Jd2hpbGUgKGkgPCBwcmVmaXhfbGVuICYmIGkgPCBsZW4gJiYgcHJlZml4W2ldID09IGluW2ldKSB7Ci0JCWlmIChwcmVmaXhbaV0gPT0gJy8nKQotCQkJb2ZmID0gaSArIDE7Ci0JCWkrKzsKLQl9Ci0JaW4gKz0gb2ZmOwotCWxlbiAtPSBvZmY7Ci0KLQlpZiAoaSA+PSBwcmVmaXhfbGVuKQotCQlyZXR1cm4gaW47Ci0KLQlzdHJidWZfcmVzZXQoc2IpOwotCXN0cmJ1Zl9ncm93KHNiLCBsZW4pOwotCi0Jd2hpbGUgKGkgPCBwcmVmaXhfbGVuKSB7Ci0JCWlmIChwcmVmaXhbaV0gPT0gJy8nKQotCQkJc3RyYnVmX2FkZHN0cihzYiwgIi4uLyIpOwotCQlpKys7Ci0JfQotCXN0cmJ1Zl9hZGQoc2IsIGluLCBsZW4pOwotCi0JcmV0dXJuIHNiLT5idWY7Ci19Ci0KIC8qIHF1b3RlIHBhdGggYXMgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIHByZWZpeCAqLwotY2hhciAqcXVvdGVfcGF0aF9yZWxhdGl2ZShjb25zdCBjaGFyICppbiwgaW50IGxlbiwKLQkJCSAgc3RydWN0IHN0cmJ1ZiAqb3V0LCBjb25zdCBjaGFyICpwcmVmaXgpCitjaGFyICpxdW90ZV9wYXRoX3JlbGF0aXZlKGNvbnN0IGNoYXIgKmluLCBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkgIHN0cnVjdCBzdHJidWYgKm91dCkKIHsKIAlzdHJ1Y3Qgc3RyYnVmIHNiID0gU1RSQlVGX0lOSVQ7Ci0JY29uc3QgY2hhciAqcmVsID0gcGF0aF9yZWxhdGl2ZShpbiwgbGVuLCAmc2IsIHByZWZpeCwgLTEpOworCWNvbnN0IGNoYXIgKnJlbCA9IHJlbGF0aXZlX3BhdGgoaW4sIHByZWZpeCwgJnNiKTsKIAlzdHJidWZfcmVzZXQob3V0KTsKIAlxdW90ZV9jX3N0eWxlX2NvdW50ZWQocmVsLCBzdHJsZW4ocmVsKSwgb3V0LCBOVUxMLCAwKTsKIAlzdHJidWZfcmVsZWFzZSgmc2IpOwogCi0JaWYgKCFvdXQtPmxlbikKLQkJc3RyYnVmX2FkZHN0cihvdXQsICIuLyIpOwotCiAJcmV0dXJuIG91dC0+YnVmOwogfQogCmRpZmYgLS1naXQgYS9xdW90ZS5oIGIvcXVvdGUuaAppbmRleCAxMzMxNTVhLi5lZDExMGE1IDEwMDY0NAotLS0gYS9xdW90ZS5oCisrKyBiL3F1b3RlLmgKQEAgLTYwLDEzICs2MCwxMiBAQAogZXh0ZXJuIHZvaWQgd3JpdGVfbmFtZV9xdW90ZWQoY29uc3QgY2hhciAqbmFtZSwgRklMRSAqLCBpbnQgdGVybWluYXRvcik7CiBleHRlcm4gdm9pZCB3cml0ZV9uYW1lX3F1b3RlZHBmeChjb25zdCBjaGFyICpwZngsIHNpemVfdCBwZnhsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBGSUxFICosIGludCB0ZXJtaW5hdG9yKTsKLWV4dGVybiB2b2lkIHdyaXRlX25hbWVfcXVvdGVkX3JlbGF0aXZlKGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBsZW4sCi0JCWNvbnN0IGNoYXIgKnByZWZpeCwgc2l6ZV90IHByZWZpeF9sZW4sCitleHRlcm4gdm9pZCB3cml0ZV9uYW1lX3F1b3RlZF9yZWxhdGl2ZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwcmVmaXgsCiAJCUZJTEUgKmZwLCBpbnQgdGVybWluYXRvcik7CiAKIC8qIHF1b3RlIHBhdGggYXMgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIHByZWZpeCAqLwotZXh0ZXJuIGNoYXIgKnF1b3RlX3BhdGhfcmVsYXRpdmUoY29uc3QgY2hhciAqaW4sIGludCBsZW4sCi0JCQkgIHN0cnVjdCBzdHJidWYgKm91dCwgY29uc3QgY2hhciAqcHJlZml4KTsKK2V4dGVybiBjaGFyICpxdW90ZV9wYXRoX3JlbGF0aXZlKGNvbnN0IGNoYXIgKmluLCBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkgIHN0cnVjdCBzdHJidWYgKm91dCk7CiAKIC8qIHF1b3RpbmcgYXMgYSBzdHJpbmcgbGl0ZXJhbCBmb3Igb3RoZXIgbGFuZ3VhZ2VzICovCiBleHRlcm4gdm9pZCBwZXJsX3F1b3RlX3ByaW50KEZJTEUgKnN0cmVhbSwgY29uc3QgY2hhciAqc3JjKTsKZGlmZiAtLWdpdCBhL3JlYWQtY2FjaGUuYyBiL3JlYWQtY2FjaGUuYwppbmRleCAwNGVkNTYxLi5jM2Q1ZTM1IDEwMDY0NAotLS0gYS9yZWFkLWNhY2hlLmMKKysrIGIvcmVhZC1jYWNoZS5jCkBAIC02Nyw2ICs2Nyw2MSBAQAogCWFkZF9pbmRleF9lbnRyeShpc3RhdGUsIG5ldywgQUREX0NBQ0hFX09LX1RPX0FERHxBRERfQ0FDSEVfT0tfVE9fUkVQTEFDRSk7CiB9CiAKK3ZvaWQgZmlsbF9zdGF0X2RhdGEoc3RydWN0IHN0YXRfZGF0YSAqc2QsIHN0cnVjdCBzdGF0ICpzdCkKK3sKKwlzZC0+c2RfY3RpbWUuc2VjID0gKHVuc2lnbmVkIGludClzdC0+c3RfY3RpbWU7CisJc2QtPnNkX210aW1lLnNlYyA9ICh1bnNpZ25lZCBpbnQpc3QtPnN0X210aW1lOworCXNkLT5zZF9jdGltZS5uc2VjID0gU1RfQ1RJTUVfTlNFQygqc3QpOworCXNkLT5zZF9tdGltZS5uc2VjID0gU1RfTVRJTUVfTlNFQygqc3QpOworCXNkLT5zZF9kZXYgPSBzdC0+c3RfZGV2OworCXNkLT5zZF9pbm8gPSBzdC0+c3RfaW5vOworCXNkLT5zZF91aWQgPSBzdC0+c3RfdWlkOworCXNkLT5zZF9naWQgPSBzdC0+c3RfZ2lkOworCXNkLT5zZF9zaXplID0gc3QtPnN0X3NpemU7Cit9CisKK2ludCBtYXRjaF9zdGF0X2RhdGEoY29uc3Qgc3RydWN0IHN0YXRfZGF0YSAqc2QsIHN0cnVjdCBzdGF0ICpzdCkKK3sKKwlpbnQgY2hhbmdlZCA9IDA7CisKKwlpZiAoc2QtPnNkX210aW1lLnNlYyAhPSAodW5zaWduZWQgaW50KXN0LT5zdF9tdGltZSkKKwkJY2hhbmdlZCB8PSBNVElNRV9DSEFOR0VEOworCWlmICh0cnVzdF9jdGltZSAmJiBjaGVja19zdGF0ICYmCisJICAgIHNkLT5zZF9jdGltZS5zZWMgIT0gKHVuc2lnbmVkIGludClzdC0+c3RfY3RpbWUpCisJCWNoYW5nZWQgfD0gQ1RJTUVfQ0hBTkdFRDsKKworI2lmZGVmIFVTRV9OU0VDCisJaWYgKGNoZWNrX3N0YXQgJiYgc2QtPnNkX210aW1lLm5zZWMgIT0gU1RfTVRJTUVfTlNFQygqc3QpKQorCQljaGFuZ2VkIHw9IE1USU1FX0NIQU5HRUQ7CisJaWYgKHRydXN0X2N0aW1lICYmIGNoZWNrX3N0YXQgJiYKKwkgICAgc2QtPnNkX2N0aW1lLm5zZWMgIT0gU1RfQ1RJTUVfTlNFQygqc3QpKQorCQljaGFuZ2VkIHw9IENUSU1FX0NIQU5HRUQ7CisjZW5kaWYKKworCWlmIChjaGVja19zdGF0KSB7CisJCWlmIChzZC0+c2RfdWlkICE9ICh1bnNpZ25lZCBpbnQpIHN0LT5zdF91aWQgfHwKKwkJCXNkLT5zZF9naWQgIT0gKHVuc2lnbmVkIGludCkgc3QtPnN0X2dpZCkKKwkJCWNoYW5nZWQgfD0gT1dORVJfQ0hBTkdFRDsKKwkJaWYgKHNkLT5zZF9pbm8gIT0gKHVuc2lnbmVkIGludCkgc3QtPnN0X2lubykKKwkJCWNoYW5nZWQgfD0gSU5PREVfQ0hBTkdFRDsKKwl9CisKKyNpZmRlZiBVU0VfU1RERVYKKwkvKgorCSAqIHN0X2RldiBicmVha3Mgb24gbmV0d29yayBmaWxlc3lzdGVtcyB3aGVyZSBkaWZmZXJlbnQKKwkgKiBjbGllbnRzIHdpbGwgaGF2ZSBkaWZmZXJlbnQgdmlld3Mgb2Ygd2hhdCAiZGV2aWNlIgorCSAqIHRoZSBmaWxlc3lzdGVtIGlzIG9uCisJICovCisJaWYgKGNoZWNrX3N0YXQgJiYgc2QtPnNkX2RldiAhPSAodW5zaWduZWQgaW50KSBzdC0+c3RfZGV2KQorCQkJY2hhbmdlZCB8PSBJTk9ERV9DSEFOR0VEOworI2VuZGlmCisKKwlpZiAoc2QtPnNkX3NpemUgIT0gKHVuc2lnbmVkIGludCkgc3QtPnN0X3NpemUpCisJCWNoYW5nZWQgfD0gREFUQV9DSEFOR0VEOworCisJcmV0dXJuIGNoYW5nZWQ7Cit9CisKIC8qCiAgKiBUaGlzIG9ubHkgdXBkYXRlcyB0aGUgIm5vbi1jcml0aWNhbCIgcGFydHMgb2YgdGhlIGRpcmVjdG9yeQogICogY2FjaGUsIGllIHRoZSBwYXJ0cyB0aGF0IGFyZW4ndCB0cmFja2VkIGJ5IEdJVCwgYW5kIG9ubHkgdXNlZApAQCAtNzQsMTUgKzEyOSw3IEBACiAgKi8KIHZvaWQgZmlsbF9zdGF0X2NhY2hlX2luZm8oc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KQogewotCWNlLT5jZV9jdGltZS5zZWMgPSAodW5zaWduZWQgaW50KXN0LT5zdF9jdGltZTsKLQljZS0+Y2VfbXRpbWUuc2VjID0gKHVuc2lnbmVkIGludClzdC0+c3RfbXRpbWU7Ci0JY2UtPmNlX2N0aW1lLm5zZWMgPSBTVF9DVElNRV9OU0VDKCpzdCk7Ci0JY2UtPmNlX210aW1lLm5zZWMgPSBTVF9NVElNRV9OU0VDKCpzdCk7Ci0JY2UtPmNlX2RldiA9IHN0LT5zdF9kZXY7Ci0JY2UtPmNlX2lubyA9IHN0LT5zdF9pbm87Ci0JY2UtPmNlX3VpZCA9IHN0LT5zdF91aWQ7Ci0JY2UtPmNlX2dpZCA9IHN0LT5zdF9naWQ7Ci0JY2UtPmNlX3NpemUgPSBzdC0+c3Rfc2l6ZTsKKwlmaWxsX3N0YXRfZGF0YSgmY2UtPmNlX3N0YXRfZGF0YSwgc3QpOwogCiAJaWYgKGFzc3VtZV91bmNoYW5nZWQpCiAJCWNlLT5jZV9mbGFncyB8PSBDRV9WQUxJRDsKQEAgLTkxLDcgKzEzOCw3IEBACiAJCWNlX21hcmtfdXB0b2RhdGUoY2UpOwogfQogCi1zdGF0aWMgaW50IGNlX2NvbXBhcmVfZGF0YShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RhdCAqc3QpCitzdGF0aWMgaW50IGNlX2NvbXBhcmVfZGF0YShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RhdCAqc3QpCiB7CiAJaW50IG1hdGNoID0gLTE7CiAJaW50IGZkID0gb3BlbihjZS0+bmFtZSwgT19SRE9OTFkpOwpAQCAtMTA1LDcgKzE1Miw3IEBACiAJcmV0dXJuIG1hdGNoOwogfQogCi1zdGF0aWMgaW50IGNlX2NvbXBhcmVfbGluayhzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzaXplX3QgZXhwZWN0ZWRfc2l6ZSkKK3N0YXRpYyBpbnQgY2VfY29tcGFyZV9saW5rKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHNpemVfdCBleHBlY3RlZF9zaXplKQogewogCWludCBtYXRjaCA9IC0xOwogCXZvaWQgKmJ1ZmZlcjsKQEAgLTEyNiw3ICsxNzMsNyBAQAogCXJldHVybiBtYXRjaDsKIH0KIAotc3RhdGljIGludCBjZV9jb21wYXJlX2dpdGxpbmsoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKK3N0YXRpYyBpbnQgY2VfY29tcGFyZV9naXRsaW5rKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UpCiB7CiAJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKIApAQCAtMTQzLDcgKzE5MCw3IEBACiAJcmV0dXJuIGhhc2hjbXAoc2hhMSwgY2UtPnNoYTEpOwogfQogCi1zdGF0aWMgaW50IGNlX21vZGlmaWVkX2NoZWNrX2ZzKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCBzdGF0ICpzdCkKK3N0YXRpYyBpbnQgY2VfbW9kaWZpZWRfY2hlY2tfZnMoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KQogewogCXN3aXRjaCAoc3QtPnN0X21vZGUgJiBTX0lGTVQpIHsKIAljYXNlIFNfSUZSRUc6CkBAIC0xNjMsNyArMjEwLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBjZV9tYXRjaF9zdGF0X2Jhc2ljKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCBzdGF0ICpzdCkKK3N0YXRpYyBpbnQgY2VfbWF0Y2hfc3RhdF9iYXNpYyhjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RhdCAqc3QpCiB7CiAJdW5zaWduZWQgaW50IGNoYW5nZWQgPSAwOwogCkBAIC0xOTUsNDMgKzI0MiwxMSBAQAogCWRlZmF1bHQ6CiAJCWRpZSgiaW50ZXJuYWwgZXJyb3I6IGNlX21vZGUgaXMgJW8iLCBjZS0+Y2VfbW9kZSk7CiAJfQotCWlmIChjZS0+Y2VfbXRpbWUuc2VjICE9ICh1bnNpZ25lZCBpbnQpc3QtPnN0X210aW1lKQotCQljaGFuZ2VkIHw9IE1USU1FX0NIQU5HRUQ7Ci0JaWYgKHRydXN0X2N0aW1lICYmIGNoZWNrX3N0YXQgJiYKLQkgICAgY2UtPmNlX2N0aW1lLnNlYyAhPSAodW5zaWduZWQgaW50KXN0LT5zdF9jdGltZSkKLQkJY2hhbmdlZCB8PSBDVElNRV9DSEFOR0VEOwogCi0jaWZkZWYgVVNFX05TRUMKLQlpZiAoY2hlY2tfc3RhdCAmJiBjZS0+Y2VfbXRpbWUubnNlYyAhPSBTVF9NVElNRV9OU0VDKCpzdCkpCi0JCWNoYW5nZWQgfD0gTVRJTUVfQ0hBTkdFRDsKLQlpZiAodHJ1c3RfY3RpbWUgJiYgY2hlY2tfc3RhdCAmJgotCSAgICBjZS0+Y2VfY3RpbWUubnNlYyAhPSBTVF9DVElNRV9OU0VDKCpzdCkpCi0JCWNoYW5nZWQgfD0gQ1RJTUVfQ0hBTkdFRDsKLSNlbmRpZgotCi0JaWYgKGNoZWNrX3N0YXQpIHsKLQkJaWYgKGNlLT5jZV91aWQgIT0gKHVuc2lnbmVkIGludCkgc3QtPnN0X3VpZCB8fAotCQkJY2UtPmNlX2dpZCAhPSAodW5zaWduZWQgaW50KSBzdC0+c3RfZ2lkKQotCQkJY2hhbmdlZCB8PSBPV05FUl9DSEFOR0VEOwotCQlpZiAoY2UtPmNlX2lubyAhPSAodW5zaWduZWQgaW50KSBzdC0+c3RfaW5vKQotCQkJY2hhbmdlZCB8PSBJTk9ERV9DSEFOR0VEOwotCX0KLQotI2lmZGVmIFVTRV9TVERFVgotCS8qCi0JICogc3RfZGV2IGJyZWFrcyBvbiBuZXR3b3JrIGZpbGVzeXN0ZW1zIHdoZXJlIGRpZmZlcmVudAotCSAqIGNsaWVudHMgd2lsbCBoYXZlIGRpZmZlcmVudCB2aWV3cyBvZiB3aGF0ICJkZXZpY2UiCi0JICogdGhlIGZpbGVzeXN0ZW0gaXMgb24KLQkgKi8KLQlpZiAoY2hlY2tfc3RhdCAmJiBjZS0+Y2VfZGV2ICE9ICh1bnNpZ25lZCBpbnQpIHN0LT5zdF9kZXYpCi0JCQljaGFuZ2VkIHw9IElOT0RFX0NIQU5HRUQ7Ci0jZW5kaWYKLQotCWlmIChjZS0+Y2Vfc2l6ZSAhPSAodW5zaWduZWQgaW50KSBzdC0+c3Rfc2l6ZSkKLQkJY2hhbmdlZCB8PSBEQVRBX0NIQU5HRUQ7CisJY2hhbmdlZCB8PSBtYXRjaF9zdGF0X2RhdGEoJmNlLT5jZV9zdGF0X2RhdGEsIHN0KTsKIAogCS8qIFJhY2lseSBzbXVkZ2VkIGVudHJ5PyAqLwotCWlmICghY2UtPmNlX3NpemUpIHsKKwlpZiAoIWNlLT5jZV9zdGF0X2RhdGEuc2Rfc2l6ZSkgewogCQlpZiAoIWlzX2VtcHR5X2Jsb2Jfc2hhMShjZS0+c2hhMSkpCiAJCQljaGFuZ2VkIHw9IERBVEFfQ0hBTkdFRDsKIAl9CkBAIC0yMzksMjMgKzI1NCwyNCBAQAogCXJldHVybiBjaGFuZ2VkOwogfQogCi1zdGF0aWMgaW50IGlzX3JhY3lfdGltZXN0YW1wKGNvbnN0IHN0cnVjdCBpbmRleF9zdGF0ZSAqaXN0YXRlLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQorc3RhdGljIGludCBpc19yYWN5X3RpbWVzdGFtcChjb25zdCBzdHJ1Y3QgaW5kZXhfc3RhdGUgKmlzdGF0ZSwKKwkJCSAgICAgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAlyZXR1cm4gKCFTX0lTR0lUTElOSyhjZS0+Y2VfbW9kZSkgJiYKIAkJaXN0YXRlLT50aW1lc3RhbXAuc2VjICYmCiAjaWZkZWYgVVNFX05TRUMKIAkJIC8qIG5hbm9zZWNvbmQgdGltZXN0YW1wZWQgZmlsZXMgY2FuIGFsc28gYmUgcmFjeSEgKi8KLQkJKGlzdGF0ZS0+dGltZXN0YW1wLnNlYyA8IGNlLT5jZV9tdGltZS5zZWMgfHwKLQkJIChpc3RhdGUtPnRpbWVzdGFtcC5zZWMgPT0gY2UtPmNlX210aW1lLnNlYyAmJgotCQkgIGlzdGF0ZS0+dGltZXN0YW1wLm5zZWMgPD0gY2UtPmNlX210aW1lLm5zZWMpKQorCQkoaXN0YXRlLT50aW1lc3RhbXAuc2VjIDwgY2UtPmNlX3N0YXRfZGF0YS5zZF9tdGltZS5zZWMgfHwKKwkJIChpc3RhdGUtPnRpbWVzdGFtcC5zZWMgPT0gY2UtPmNlX3N0YXRfZGF0YS5zZF9tdGltZS5zZWMgJiYKKwkJICBpc3RhdGUtPnRpbWVzdGFtcC5uc2VjIDw9IGNlLT5jZV9zdGF0X2RhdGEuc2RfbXRpbWUubnNlYykpCiAjZWxzZQotCQlpc3RhdGUtPnRpbWVzdGFtcC5zZWMgPD0gY2UtPmNlX210aW1lLnNlYworCQlpc3RhdGUtPnRpbWVzdGFtcC5zZWMgPD0gY2UtPmNlX3N0YXRfZGF0YS5zZF9tdGltZS5zZWMKICNlbmRpZgogCQkgKTsKIH0KIAogaW50IGllX21hdGNoX3N0YXQoY29uc3Qgc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsCi0JCSAgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0LAorCQkgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCBzdGF0ICpzdCwKIAkJICB1bnNpZ25lZCBpbnQgb3B0aW9ucykKIHsKIAl1bnNpZ25lZCBpbnQgY2hhbmdlZDsKQEAgLTMxMSw3ICszMjcsOCBAQAogfQogCiBpbnQgaWVfbW9kaWZpZWQoY29uc3Qgc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsCi0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCBzdGF0ICpzdCwgdW5zaWduZWQgaW50IG9wdGlvbnMpCisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCXN0cnVjdCBzdGF0ICpzdCwgdW5zaWduZWQgaW50IG9wdGlvbnMpCiB7CiAJaW50IGNoYW5nZWQsIGNoYW5nZWRfZnM7CiAKQEAgLTM0MCw3ICszNTcsNyBAQAogCSAqIHRoZW4gd2Uga25vdyBpdCBpcy4KIAkgKi8KIAlpZiAoKGNoYW5nZWQgJiBEQVRBX0NIQU5HRUQpICYmCi0JICAgIChTX0lTR0lUTElOSyhjZS0+Y2VfbW9kZSkgfHwgY2UtPmNlX3NpemUgIT0gMCkpCisJICAgIChTX0lTR0lUTElOSyhjZS0+Y2VfbW9kZSkgfHwgY2UtPmNlX3N0YXRfZGF0YS5zZF9zaXplICE9IDApKQogCQlyZXR1cm4gY2hhbmdlZDsKIAogCWNoYW5nZWRfZnMgPSBjZV9tb2RpZmllZF9jaGVja19mcyhjZSwgc3QpOwpAQCAtNDcyLDcgKzQ4OSw3IEBACiB9CiAKIC8qCi0gKiBSZW1vdmUgYWxsIGNhY2hlIGVudGVudHJpZXMgbWFya2VkIGZvciByZW1vdmFsLCB0aGF0IGlzIHdoZXJlCisgKiBSZW1vdmUgYWxsIGNhY2hlIGVudHJpZXMgbWFya2VkIGZvciByZW1vdmFsLCB0aGF0IGlzIHdoZXJlCiAgKiBDRV9SRU1PVkUgaXMgc2V0IGluIGNlX2ZsYWdzLiAgVGhpcyBpcyBtdWNoIG1vcmUgZWZmZWN0aXZlIHRoYW4KICAqIGNhbGxpbmcgcmVtb3ZlX2luZGV4X2VudHJ5X2F0KCkgZm9yIGVhY2ggZW50cnkgdG8gYmUgcmVtb3ZlZC4KICAqLwpAQCAtNjI2LDcgKzY0Myw3IEBACiAJCQlpZiAoKnB0ciA9PSAnLycpIHsKIAkJCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmZvdW5kY2U7CiAJCQkJKytwdHI7Ci0JCQkJZm91bmRjZSA9IGluZGV4X25hbWVfZXhpc3RzKCZ0aGVfaW5kZXgsIGNlLT5uYW1lLCBwdHIgLSBjZS0+bmFtZSwgaWdub3JlX2Nhc2UpOworCQkJCWZvdW5kY2UgPSBpbmRleF9uYW1lX2V4aXN0cyhpc3RhdGUsIGNlLT5uYW1lLCBwdHIgLSBjZS0+bmFtZSwgaWdub3JlX2Nhc2UpOwogCQkJCWlmIChmb3VuZGNlKSB7CiAJCQkJCW1lbWNweSgodm9pZCAqKXN0YXJ0UHRyLCBmb3VuZGNlLT5uYW1lICsgKHN0YXJ0UHRyIC0gY2UtPm5hbWUpLCBwdHIgLSBzdGFydFB0cik7CiAJCQkJCXN0YXJ0UHRyID0gcHRyOwpAQCAtNzA1LDcgKzcyMiw3IEBACiAJcmV0dXJuIGNlOwogfQogCi1pbnQgY2Vfc2FtZV9uYW1lKHN0cnVjdCBjYWNoZV9lbnRyeSAqYSwgc3RydWN0IGNhY2hlX2VudHJ5ICpiKQoraW50IGNlX3NhbWVfbmFtZShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmEsIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqYikKIHsKIAlpbnQgbGVuID0gY2VfbmFtZWxlbihhKTsKIAlyZXR1cm4gY2VfbmFtZWxlbihiKSA9PSBsZW4gJiYgIW1lbWNtcChhLT5uYW1lLCBiLT5uYW1lLCBsZW4pOwpAQCAtOTc5LDcgKzk5Niw3IEBACiAJaWYgKGlzdGF0ZS0+Y2FjaGVfbnIgPT0gaXN0YXRlLT5jYWNoZV9hbGxvYykgewogCQlpc3RhdGUtPmNhY2hlX2FsbG9jID0gYWxsb2NfbnIoaXN0YXRlLT5jYWNoZV9hbGxvYyk7CiAJCWlzdGF0ZS0+Y2FjaGUgPSB4cmVhbGxvYyhpc3RhdGUtPmNhY2hlLAotCQkJCQlpc3RhdGUtPmNhY2hlX2FsbG9jICogc2l6ZW9mKHN0cnVjdCBjYWNoZV9lbnRyeSAqKSk7CisJCQkJCWlzdGF0ZS0+Y2FjaGVfYWxsb2MgKiBzaXplb2YoKmlzdGF0ZS0+Y2FjaGUpKTsKIAl9CiAKIAkvKiBBZGQgaXQgaW4uLiAqLwpAQCAtMTMyMiwxNiArMTMzOSwxNiBAQAogewogCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSB4bWFsbG9jKGNhY2hlX2VudHJ5X3NpemUobGVuKSk7CiAKLQljZS0+Y2VfY3RpbWUuc2VjID0gbnRvaF9sKG9uZGlzay0+Y3RpbWUuc2VjKTsKLQljZS0+Y2VfbXRpbWUuc2VjID0gbnRvaF9sKG9uZGlzay0+bXRpbWUuc2VjKTsKLQljZS0+Y2VfY3RpbWUubnNlYyA9IG50b2hfbChvbmRpc2stPmN0aW1lLm5zZWMpOwotCWNlLT5jZV9tdGltZS5uc2VjID0gbnRvaF9sKG9uZGlzay0+bXRpbWUubnNlYyk7Ci0JY2UtPmNlX2RldiAgID0gbnRvaF9sKG9uZGlzay0+ZGV2KTsKLQljZS0+Y2VfaW5vICAgPSBudG9oX2wob25kaXNrLT5pbm8pOworCWNlLT5jZV9zdGF0X2RhdGEuc2RfY3RpbWUuc2VjID0gbnRvaF9sKG9uZGlzay0+Y3RpbWUuc2VjKTsKKwljZS0+Y2Vfc3RhdF9kYXRhLnNkX210aW1lLnNlYyA9IG50b2hfbChvbmRpc2stPm10aW1lLnNlYyk7CisJY2UtPmNlX3N0YXRfZGF0YS5zZF9jdGltZS5uc2VjID0gbnRvaF9sKG9uZGlzay0+Y3RpbWUubnNlYyk7CisJY2UtPmNlX3N0YXRfZGF0YS5zZF9tdGltZS5uc2VjID0gbnRvaF9sKG9uZGlzay0+bXRpbWUubnNlYyk7CisJY2UtPmNlX3N0YXRfZGF0YS5zZF9kZXYgICA9IG50b2hfbChvbmRpc2stPmRldik7CisJY2UtPmNlX3N0YXRfZGF0YS5zZF9pbm8gICA9IG50b2hfbChvbmRpc2stPmlubyk7CiAJY2UtPmNlX21vZGUgID0gbnRvaF9sKG9uZGlzay0+bW9kZSk7Ci0JY2UtPmNlX3VpZCAgID0gbnRvaF9sKG9uZGlzay0+dWlkKTsKLQljZS0+Y2VfZ2lkICAgPSBudG9oX2wob25kaXNrLT5naWQpOwotCWNlLT5jZV9zaXplICA9IG50b2hfbChvbmRpc2stPnNpemUpOworCWNlLT5jZV9zdGF0X2RhdGEuc2RfdWlkICAgPSBudG9oX2wob25kaXNrLT51aWQpOworCWNlLT5jZV9zdGF0X2RhdGEuc2RfZ2lkICAgPSBudG9oX2wob25kaXNrLT5naWQpOworCWNlLT5jZV9zdGF0X2RhdGEuc2Rfc2l6ZSAgPSBudG9oX2wob25kaXNrLT5zaXplKTsKIAljZS0+Y2VfZmxhZ3MgPSBmbGFncyAmIH5DRV9OQU1FTUFTSzsKIAljZS0+Y2VfbmFtZWxlbiA9IGxlbjsKIAloYXNoY3B5KGNlLT5zaGExLCBvbmRpc2stPnNoYTEpOwpAQCAtMTQ0OSw3ICsxNDY2LDcgQEAKIAlpc3RhdGUtPnZlcnNpb24gPSBudG9obChoZHItPmhkcl92ZXJzaW9uKTsKIAlpc3RhdGUtPmNhY2hlX25yID0gbnRvaGwoaGRyLT5oZHJfZW50cmllcyk7CiAJaXN0YXRlLT5jYWNoZV9hbGxvYyA9IGFsbG9jX25yKGlzdGF0ZS0+Y2FjaGVfbnIpOwotCWlzdGF0ZS0+Y2FjaGUgPSB4Y2FsbG9jKGlzdGF0ZS0+Y2FjaGVfYWxsb2MsIHNpemVvZihzdHJ1Y3QgY2FjaGVfZW50cnkgKikpOworCWlzdGF0ZS0+Y2FjaGUgPSB4Y2FsbG9jKGlzdGF0ZS0+Y2FjaGVfYWxsb2MsIHNpemVvZigqaXN0YXRlLT5jYWNoZSkpOwogCWlzdGF0ZS0+aW5pdGlhbGl6ZWQgPSAxOwogCiAJaWYgKGlzdGF0ZS0+dmVyc2lvbiA9PSA0KQpAQCAtMTUxOCw4ICsxNTM1LDkgQEAKIAlmcmVlX25hbWVfaGFzaChpc3RhdGUpOwogCWNhY2hlX3RyZWVfZnJlZSgmKGlzdGF0ZS0+Y2FjaGVfdHJlZSkpOwogCWlzdGF0ZS0+aW5pdGlhbGl6ZWQgPSAwOwotCi0JLyogbm8gbmVlZCB0byB0aHJvdyBhd2F5IGFsbG9jYXRlZCBhY3RpdmVfY2FjaGUgKi8KKwlmcmVlKGlzdGF0ZS0+Y2FjaGUpOworCWlzdGF0ZS0+Y2FjaGUgPSBOVUxMOworCWlzdGF0ZS0+Y2FjaGVfYWxsb2MgPSAwOwogCXJldHVybiAwOwogfQogCkBAIC0xNjA4LDcgKzE2MjYsNyBAQAogCSAqIFRoZSBvbmx5IHRoaW5nIHdlIGNhcmUgYWJvdXQgaW4gdGhpcyBmdW5jdGlvbiBpcyB0byBzbXVkZ2UgdGhlCiAJICogZmFsc2VseSBjbGVhbiBlbnRyeSBkdWUgdG8gdG91Y2gtdXBkYXRlLXRvdWNoIHJhY2UsIHNvIHdlIGxlYXZlCiAJICogZXZlcnl0aGluZyBlbHNlIGFzIHRoZXkgYXJlLiAgV2UgYXJlIGNhbGxlZCBmb3IgZW50cmllcyB3aG9zZQotCSAqIGNlX210aW1lIG1hdGNoIHRoZSBpbmRleCBmaWxlIG10aW1lLgorCSAqIGNlX3N0YXRfZGF0YS5zZF9tdGltZSBtYXRjaCB0aGUgaW5kZXggZmlsZSBtdGltZS4KIAkgKgogCSAqIE5vdGUgdGhhdCB0aGlzIGFjdHVhbGx5IGRvZXMgbm90IGRvIG11Y2ggZm9yIGdpdGxpbmtzLCBmb3IKIAkgKiB3aGljaCBjZV9tYXRjaF9zdGF0X2Jhc2ljKCkgYWx3YXlzIGdvZXMgdG8gdGhlIGFjdHVhbApAQCAtMTY0Nyw3ICsxNjY1LDcgQEAKIAkJICogZmlsZSwgYW5kIG5ldmVyIGNhbGxzIHVzLCBzbyB0aGUgY2FjaGVkIHNpemUgaW5mb3JtYXRpb24KIAkJICogZm9yICJmcm90eiIgc3RheXMgNiB3aGljaCBkb2VzIG5vdCBtYXRjaCB0aGUgZmlsZXN5c3RlbS4KIAkJICovCi0JCWNlLT5jZV9zaXplID0gMDsKKwkJY2UtPmNlX3N0YXRfZGF0YS5zZF9zaXplID0gMDsKIAl9CiB9CiAKQEAgLTE2NTcsMTYgKzE2NzUsMTYgQEAKIHsKIAlzaG9ydCBmbGFnczsKIAotCW9uZGlzay0+Y3RpbWUuc2VjID0gaHRvbmwoY2UtPmNlX2N0aW1lLnNlYyk7Ci0Jb25kaXNrLT5tdGltZS5zZWMgPSBodG9ubChjZS0+Y2VfbXRpbWUuc2VjKTsKLQlvbmRpc2stPmN0aW1lLm5zZWMgPSBodG9ubChjZS0+Y2VfY3RpbWUubnNlYyk7Ci0Jb25kaXNrLT5tdGltZS5uc2VjID0gaHRvbmwoY2UtPmNlX210aW1lLm5zZWMpOwotCW9uZGlzay0+ZGV2ICA9IGh0b25sKGNlLT5jZV9kZXYpOwotCW9uZGlzay0+aW5vICA9IGh0b25sKGNlLT5jZV9pbm8pOworCW9uZGlzay0+Y3RpbWUuc2VjID0gaHRvbmwoY2UtPmNlX3N0YXRfZGF0YS5zZF9jdGltZS5zZWMpOworCW9uZGlzay0+bXRpbWUuc2VjID0gaHRvbmwoY2UtPmNlX3N0YXRfZGF0YS5zZF9tdGltZS5zZWMpOworCW9uZGlzay0+Y3RpbWUubnNlYyA9IGh0b25sKGNlLT5jZV9zdGF0X2RhdGEuc2RfY3RpbWUubnNlYyk7CisJb25kaXNrLT5tdGltZS5uc2VjID0gaHRvbmwoY2UtPmNlX3N0YXRfZGF0YS5zZF9tdGltZS5uc2VjKTsKKwlvbmRpc2stPmRldiAgPSBodG9ubChjZS0+Y2Vfc3RhdF9kYXRhLnNkX2Rldik7CisJb25kaXNrLT5pbm8gID0gaHRvbmwoY2UtPmNlX3N0YXRfZGF0YS5zZF9pbm8pOwogCW9uZGlzay0+bW9kZSA9IGh0b25sKGNlLT5jZV9tb2RlKTsKLQlvbmRpc2stPnVpZCAgPSBodG9ubChjZS0+Y2VfdWlkKTsKLQlvbmRpc2stPmdpZCAgPSBodG9ubChjZS0+Y2VfZ2lkKTsKLQlvbmRpc2stPnNpemUgPSBodG9ubChjZS0+Y2Vfc2l6ZSk7CisJb25kaXNrLT51aWQgID0gaHRvbmwoY2UtPmNlX3N0YXRfZGF0YS5zZF91aWQpOworCW9uZGlzay0+Z2lkICA9IGh0b25sKGNlLT5jZV9zdGF0X2RhdGEuc2RfZ2lkKTsKKwlvbmRpc2stPnNpemUgPSBodG9ubChjZS0+Y2Vfc3RhdF9kYXRhLnNkX3NpemUpOwogCWhhc2hjcHkob25kaXNrLT5zaGExLCBjZS0+c2hhMSk7CiAKIAlmbGFncyA9IGNlLT5jZV9mbGFnczsKQEAgLTE3NDIsNyArMTc2MCw3IEBACiB9CiAKIC8qCi0gKiBPcHBvcnR1bmlzdGljbHkgdXBkYXRlIHRoZSBpbmRleCBidXQgZG8gbm90IGNvbXBsYWluIGlmIHdlIGNhbid0CisgKiBPcHBvcnR1bmlzdGljYWxseSB1cGRhdGUgdGhlIGluZGV4IGJ1dCBkbyBub3QgY29tcGxhaW4gaWYgd2UgY2FuJ3QKICAqLwogdm9pZCB1cGRhdGVfaW5kZXhfaWZfYWJsZShzdHJ1Y3QgaW5kZXhfc3RhdGUgKmlzdGF0ZSwgc3RydWN0IGxvY2tfZmlsZSAqbG9ja2ZpbGUpCiB7CkBAIC0xOTMzLDMgKzE5NTEsMzMgQEAKIAkJKnNpemUgPSBzejsKIAlyZXR1cm4gZGF0YTsKIH0KKwordm9pZCBzdGF0X3ZhbGlkaXR5X2NsZWFyKHN0cnVjdCBzdGF0X3ZhbGlkaXR5ICpzdikKK3sKKwlmcmVlKHN2LT5zZCk7CisJc3YtPnNkID0gTlVMTDsKK30KKworaW50IHN0YXRfdmFsaWRpdHlfY2hlY2soc3RydWN0IHN0YXRfdmFsaWRpdHkgKnN2LCBjb25zdCBjaGFyICpwYXRoKQoreworCXN0cnVjdCBzdGF0IHN0OworCisJaWYgKHN0YXQocGF0aCwgJnN0KSA8IDApCisJCXJldHVybiBzdi0+c2QgPT0gTlVMTDsKKwlpZiAoIXN2LT5zZCkKKwkJcmV0dXJuIDA7CisJcmV0dXJuIFNfSVNSRUcoc3Quc3RfbW9kZSkgJiYgIW1hdGNoX3N0YXRfZGF0YShzdi0+c2QsICZzdCk7Cit9CisKK3ZvaWQgc3RhdF92YWxpZGl0eV91cGRhdGUoc3RydWN0IHN0YXRfdmFsaWRpdHkgKnN2LCBpbnQgZmQpCit7CisJc3RydWN0IHN0YXQgc3Q7CisKKwlpZiAoZnN0YXQoZmQsICZzdCkgPCAwIHx8ICFTX0lTUkVHKHN0LnN0X21vZGUpKQorCQlzdGF0X3ZhbGlkaXR5X2NsZWFyKHN2KTsKKwllbHNlIHsKKwkJaWYgKCFzdi0+c2QpCisJCQlzdi0+c2QgPSB4Y2FsbG9jKDEsIHNpemVvZihzdHJ1Y3Qgc3RhdF9kYXRhKSk7CisJCWZpbGxfc3RhdF9kYXRhKHN2LT5zZCwgJnN0KTsKKwl9Cit9CmRpZmYgLS1naXQgYS9yZWZzLmMgYi9yZWZzLmMKaW5kZXggZGUyZDhlYi4uNzkyMjI2MSAxMDA2NDQKLS0tIGEvcmVmcy5jCisrKyBiL3JlZnMuYwpAQCAtMTA5LDcgKzEwOSwyMCBAQAogICogKHJlZl9lbnRyeS0+ZmxhZyAmIFJFRl9ESVIpIGlzIHplcm8uCiAgKi8KIHN0cnVjdCByZWZfdmFsdWUgeworCS8qCisJICogVGhlIG5hbWUgb2YgdGhlIG9iamVjdCB0byB3aGljaCB0aGlzIHJlZmVyZW5jZSByZXNvbHZlcworCSAqICh3aGljaCBtYXkgYmUgYSB0YWcgb2JqZWN0KS4gIElmIFJFRl9JU0JST0tFTiwgdGhpcyBpcworCSAqIG51bGwuICBJZiBSRUZfSVNTWU1SRUYsIHRoZW4gdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgb2JqZWN0CisJICogcmVmZXJyZWQgdG8gYnkgdGhlIGxhc3QgcmVmZXJlbmNlIGluIHRoZSBzeW1saW5rIGNoYWluLgorCSAqLwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CisKKwkvKgorCSAqIElmIFJFRl9LTk9XU19QRUVMRUQsIHRoZW4gdGhpcyBmaWVsZCBob2xkcyB0aGUgcGVlbGVkIHZhbHVlCisJICogb2YgdGhpcyByZWZlcmVuY2UsIG9yIG51bGwgaWYgdGhlIHJlZmVyZW5jZSBpcyBrbm93biBub3QgdG8KKwkgKiBiZSBwZWVsYWJsZS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgcGVlbF9yZWYoKSBmb3IgYW4KKwkgKiBleGFjdCBkZWZpbml0aW9uIG9mICJwZWVsYWJsZSIuCisJICovCiAJdW5zaWduZWQgY2hhciBwZWVsZWRbMjBdOwogfTsKIApAQCAtMTU4LDcgKzE3MSwxNyBAQAogCXN0cnVjdCByZWZfZW50cnkgKiplbnRyaWVzOwogfTsKIAotLyogSVNTWU1SRUY9MHgwMSwgSVNQQUNLRUQ9MHgwMiwgYW5kIElTQlJPS0VOPTB4MDQgYXJlIHB1YmxpYyBpbnRlcmZhY2VzICovCisvKgorICogQml0IHZhbHVlcyBmb3IgcmVmX2VudHJ5OjpmbGFnLiAgUkVGX0lTU1lNUkVGPTB4MDEsCisgKiBSRUZfSVNQQUNLRUQ9MHgwMiwgYW5kIFJFRl9JU0JST0tFTj0weDA0IGFyZSBwdWJsaWMgdmFsdWVzOyBzZWUKKyAqIHJlZnMuaC4KKyAqLworCisvKgorICogVGhlIGZpZWxkIHJlZl9lbnRyeS0+dS52YWx1ZS5wZWVsZWQgb2YgdGhpcyB2YWx1ZSBlbnRyeSBjb250YWlucworICogdGhlIGNvcnJlY3QgcGVlbGVkIHZhbHVlIGZvciB0aGUgcmVmZXJlbmNlLCB3aGljaCBtaWdodCBiZQorICogbnVsbF9zaGExIGlmIHRoZSByZWZlcmVuY2UgaXMgbm90IGEgdGFnIG9yIGlmIGl0IGlzIGJyb2tlbi4KKyAqLwogI2RlZmluZSBSRUZfS05PV1NfUEVFTEVEIDB4MDgKIAogLyogcmVmX2VudHJ5IHJlcHJlc2VudHMgYSBkaXJlY3Rvcnkgb2YgcmVmZXJlbmNlcyAqLwpAQCAtMzQzLDE4ICszNjYsMTcgQEAKIH0KIAogLyoKLSAqIFJldHVybiB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gcmVmbmFtZSBmcm9tIHRoZSByZWZfZGlyCi0gKiAobm9uLXJlY3Vyc2l2ZWx5KSwgc29ydGluZyBkaXIgaWYgbmVjZXNzYXJ5LiAgUmV0dXJuIE5VTEwgaWYgbm8KLSAqIHN1Y2ggZW50cnkgaXMgZm91bmQuICBkaXIgbXVzdCBhbHJlYWR5IGJlIGNvbXBsZXRlLgorICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gcmVmbmFtZSBmcm9tIHRoZQorICogcmVmX2RpciAobm9uLXJlY3Vyc2l2ZWx5KSwgc29ydGluZyBkaXIgaWYgbmVjZXNzYXJ5LiAgUmV0dXJuIC0xIGlmCisgKiBubyBzdWNoIGVudHJ5IGlzIGZvdW5kLiAgZGlyIG11c3QgYWxyZWFkeSBiZSBjb21wbGV0ZS4KICAqLwotc3RhdGljIHN0cnVjdCByZWZfZW50cnkgKnNlYXJjaF9yZWZfZGlyKHN0cnVjdCByZWZfZGlyICpkaXIsCi0JCQkJCWNvbnN0IGNoYXIgKnJlZm5hbWUsIHNpemVfdCBsZW4pCitzdGF0aWMgaW50IHNlYXJjaF9yZWZfZGlyKHN0cnVjdCByZWZfZGlyICpkaXIsIGNvbnN0IGNoYXIgKnJlZm5hbWUsIHNpemVfdCBsZW4pCiB7CiAJc3RydWN0IHJlZl9lbnRyeSAqKnI7CiAJc3RydWN0IHN0cmluZ19zbGljZSBrZXk7CiAKIAlpZiAocmVmbmFtZSA9PSBOVUxMIHx8ICFkaXItPm5yKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIC0xOwogCiAJc29ydF9yZWZfZGlyKGRpcik7CiAJa2V5LmxlbiA9IGxlbjsKQEAgLTM2Myw5ICszODUsOSBAQAogCQkgICAgcmVmX2VudHJ5X2NtcF9zc2xpY2UpOwogCiAJaWYgKHIgPT0gTlVMTCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiAtMTsKIAotCXJldHVybiAqcjsKKwlyZXR1cm4gciAtIGRpci0+ZW50cmllczsKIH0KIAogLyoKQEAgLTM3OSw4ICs0MDEsOSBAQAogCQkJCQkgY29uc3QgY2hhciAqc3ViZGlybmFtZSwgc2l6ZV90IGxlbiwKIAkJCQkJIGludCBta2RpcikKIHsKLQlzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSA9IHNlYXJjaF9yZWZfZGlyKGRpciwgc3ViZGlybmFtZSwgbGVuKTsKLQlpZiAoIWVudHJ5KSB7CisJaW50IGVudHJ5X2luZGV4ID0gc2VhcmNoX3JlZl9kaXIoZGlyLCBzdWJkaXJuYW1lLCBsZW4pOworCXN0cnVjdCByZWZfZW50cnkgKmVudHJ5OworCWlmIChlbnRyeV9pbmRleCA9PSAtMSkgewogCQlpZiAoIW1rZGlyKQogCQkJcmV0dXJuIE5VTEw7CiAJCS8qCkBAIC0zOTEsNiArNDE0LDggQEAKIAkJICovCiAJCWVudHJ5ID0gY3JlYXRlX2Rpcl9lbnRyeShkaXItPnJlZl9jYWNoZSwgc3ViZGlybmFtZSwgbGVuLCAwKTsKIAkJYWRkX2VudHJ5X3RvX2RpcihkaXIsIGVudHJ5KTsKKwl9IGVsc2UgeworCQllbnRyeSA9IGRpci0+ZW50cmllc1tlbnRyeV9pbmRleF07CiAJfQogCXJldHVybiBnZXRfcmVmX2RpcihlbnRyeSk7CiB9CkBAIC00MjksMTIgKzQ1NCw2NyBAQAogICovCiBzdGF0aWMgc3RydWN0IHJlZl9lbnRyeSAqZmluZF9yZWYoc3RydWN0IHJlZl9kaXIgKmRpciwgY29uc3QgY2hhciAqcmVmbmFtZSkKIHsKKwlpbnQgZW50cnlfaW5kZXg7CiAJc3RydWN0IHJlZl9lbnRyeSAqZW50cnk7CiAJZGlyID0gZmluZF9jb250YWluaW5nX2RpcihkaXIsIHJlZm5hbWUsIDApOwogCWlmICghZGlyKQogCQlyZXR1cm4gTlVMTDsKLQllbnRyeSA9IHNlYXJjaF9yZWZfZGlyKGRpciwgcmVmbmFtZSwgc3RybGVuKHJlZm5hbWUpKTsKLQlyZXR1cm4gKGVudHJ5ICYmICEoZW50cnktPmZsYWcgJiBSRUZfRElSKSkgPyBlbnRyeSA6IE5VTEw7CisJZW50cnlfaW5kZXggPSBzZWFyY2hfcmVmX2RpcihkaXIsIHJlZm5hbWUsIHN0cmxlbihyZWZuYW1lKSk7CisJaWYgKGVudHJ5X2luZGV4ID09IC0xKQorCQlyZXR1cm4gTlVMTDsKKwllbnRyeSA9IGRpci0+ZW50cmllc1tlbnRyeV9pbmRleF07CisJcmV0dXJuIChlbnRyeS0+ZmxhZyAmIFJFRl9ESVIpID8gTlVMTCA6IGVudHJ5OworfQorCisvKgorICogUmVtb3ZlIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lIGZyb20gZGlyLCByZWN1cnNpbmcgaW50bworICogc3ViZGlyZWN0b3JpZXMgYXMgbmVjZXNzYXJ5LiAgSWYgcmVmbmFtZSBpcyB0aGUgbmFtZSBvZiBhIGRpcmVjdG9yeQorICogKGkuZS4sIGVuZHMgd2l0aCAnLycpLCB0aGVuIHJlbW92ZSB0aGUgZGlyZWN0b3J5IGFuZCBpdHMgY29udGVudHMuCisgKiBJZiB0aGUgcmVtb3ZhbCB3YXMgc3VjY2Vzc2Z1bCwgcmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcworICogcmVtYWluaW5nIGluIHRoZSBkaXJlY3RvcnkgZW50cnkgdGhhdCBjb250YWluZWQgdGhlIGRlbGV0ZWQgZW50cnkuCisgKiBJZiB0aGUgbmFtZSB3YXMgbm90IGZvdW5kLCByZXR1cm4gLTEuICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMKKyAqIGZ1bmN0aW9uIG9ubHkgZGVsZXRlcyB0aGUgZW50cnkgZnJvbSB0aGUgY2FjaGU7IGl0IGRvZXMgbm90IGRlbGV0ZQorICogaXQgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciBlbnN1cmUgdGhhdCBvdGhlciBjYWNoZSBlbnRyaWVzICh3aGljaAorICogbWlnaHQgYmUgc3ltYm9saWMgcmVmZXJlbmNlcyB0byB0aGUgcmVtb3ZlZCBlbnRyeSkgYXJlIHVwZGF0ZWQuCisgKiBOb3IgZG9lcyBpdCByZW1vdmUgYW55IGNvbnRhaW5pbmcgZGlyIGVudHJpZXMgdGhhdCBtaWdodCBiZSBtYWRlCisgKiBlbXB0eSBieSB0aGUgcmVtb3ZhbC4gIGRpciBtdXN0IHJlcHJlc2VudCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeQorICogYW5kIG11c3QgYWxyZWFkeSBiZSBjb21wbGV0ZS4KKyAqLworc3RhdGljIGludCByZW1vdmVfZW50cnkoc3RydWN0IHJlZl9kaXIgKmRpciwgY29uc3QgY2hhciAqcmVmbmFtZSkKK3sKKwlpbnQgcmVmbmFtZV9sZW4gPSBzdHJsZW4ocmVmbmFtZSk7CisJaW50IGVudHJ5X2luZGV4OworCXN0cnVjdCByZWZfZW50cnkgKmVudHJ5OworCWludCBpc19kaXIgPSByZWZuYW1lW3JlZm5hbWVfbGVuIC0gMV0gPT0gJy8nOworCWlmIChpc19kaXIpIHsKKwkJLyoKKwkJICogcmVmbmFtZSByZXByZXNlbnRzIGEgcmVmZXJlbmNlIGRpcmVjdG9yeS4gIFJlbW92ZQorCQkgKiB0aGUgdHJhaWxpbmcgc2xhc2g7IG90aGVyd2lzZSB3ZSB3aWxsIGdldCB0aGUKKwkJICogZGlyZWN0b3J5ICpyZXByZXNlbnRpbmcqIHJlZm5hbWUgcmF0aGVyIHRoYW4gdGhlCisJCSAqIG9uZSAqY29udGFpbmluZyogaXQuCisJCSAqLworCQljaGFyICpkaXJuYW1lID0geG1lbWR1cHoocmVmbmFtZSwgcmVmbmFtZV9sZW4gLSAxKTsKKwkJZGlyID0gZmluZF9jb250YWluaW5nX2RpcihkaXIsIGRpcm5hbWUsIDApOworCQlmcmVlKGRpcm5hbWUpOworCX0gZWxzZSB7CisJCWRpciA9IGZpbmRfY29udGFpbmluZ19kaXIoZGlyLCByZWZuYW1lLCAwKTsKKwl9CisJaWYgKCFkaXIpCisJCXJldHVybiAtMTsKKwllbnRyeV9pbmRleCA9IHNlYXJjaF9yZWZfZGlyKGRpciwgcmVmbmFtZSwgcmVmbmFtZV9sZW4pOworCWlmIChlbnRyeV9pbmRleCA9PSAtMSkKKwkJcmV0dXJuIC0xOworCWVudHJ5ID0gZGlyLT5lbnRyaWVzW2VudHJ5X2luZGV4XTsKKworCW1lbW1vdmUoJmRpci0+ZW50cmllc1tlbnRyeV9pbmRleF0sCisJCSZkaXItPmVudHJpZXNbZW50cnlfaW5kZXggKyAxXSwKKwkJKGRpci0+bnIgLSBlbnRyeV9pbmRleCAtIDEpICogc2l6ZW9mKCpkaXItPmVudHJpZXMpCisJCSk7CisJZGlyLT5uci0tOworCWlmIChkaXItPnNvcnRlZCA+IGVudHJ5X2luZGV4KQorCQlkaXItPnNvcnRlZC0tOworCWZyZWVfcmVmX2VudHJ5KGVudHJ5KTsKKwlyZXR1cm4gZGlyLT5ucjsKIH0KIAogLyoKQEAgLTUwMywyOCArNTgzLDY5IEBACiAJZGlyLT5zb3J0ZWQgPSBkaXItPm5yID0gaTsKIH0KIAotI2RlZmluZSBET19GT1JfRUFDSF9JTkNMVURFX0JST0tFTiAwMQorLyogSW5jbHVkZSBicm9rZW4gcmVmZXJlbmNlcyBpbiBhIGRvX2Zvcl9lYWNoX3JlZiooKSBpdGVyYXRpb246ICovCisjZGVmaW5lIERPX0ZPUl9FQUNIX0lOQ0xVREVfQlJPS0VOIDB4MDEKIAorLyoKKyAqIFJldHVybiB0cnVlIGlmZiB0aGUgcmVmZXJlbmNlIGRlc2NyaWJlZCBieSBlbnRyeSBjYW4gYmUgcmVzb2x2ZWQgdG8KKyAqIGFuIG9iamVjdCBpbiB0aGUgZGF0YWJhc2UuICBFbWl0IGEgd2FybmluZyBpZiB0aGUgcmVmZXJyZWQtdG8KKyAqIG9iamVjdCBkb2VzIG5vdCBleGlzdC4KKyAqLworc3RhdGljIGludCByZWZfcmVzb2x2ZXNfdG9fb2JqZWN0KHN0cnVjdCByZWZfZW50cnkgKmVudHJ5KQoreworCWlmIChlbnRyeS0+ZmxhZyAmIFJFRl9JU0JST0tFTikKKwkJcmV0dXJuIDA7CisJaWYgKCFoYXNfc2hhMV9maWxlKGVudHJ5LT51LnZhbHVlLnNoYTEpKSB7CisJCWVycm9yKCIlcyBkb2VzIG5vdCBwb2ludCB0byBhIHZhbGlkIG9iamVjdCEiLCBlbnRyeS0+bmFtZSk7CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIGN1cnJlbnRfcmVmIGlzIGEgcGVyZm9ybWFuY2UgaGFjazogd2hlbiBpdGVyYXRpbmcgb3ZlciByZWZlcmVuY2VzCisgKiB1c2luZyB0aGUgZm9yX2VhY2hfcmVmKigpIGZ1bmN0aW9ucywgY3VycmVudF9yZWYgaXMgc2V0IHRvIHRoZQorICogY3VycmVudCByZWZlcmVuY2UncyBlbnRyeSBiZWZvcmUgY2FsbGluZyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uICBJZgorICogdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxzIHBlZWxfcmVmKCksIHRoZW4gcGVlbF9yZWYoKSBmaXJzdAorICogY2hlY2tzIHdoZXRoZXIgdGhlIHJlZmVyZW5jZSB0byBiZSBwZWVsZWQgaXMgdGhlIGN1cnJlbnQgcmVmZXJlbmNlCisgKiAoaXQgdXN1YWxseSBpcykgYW5kIGlmIHNvLCByZXR1cm5zIHRoYXQgcmVmZXJlbmNlJ3MgcGVlbGVkIHZlcnNpb24KKyAqIGlmIGl0IGlzIGF2YWlsYWJsZS4gIFRoaXMgYXZvaWRzIGEgcmVmbmFtZSBsb29rdXAgaW4gYSBjb21tb24gY2FzZS4KKyAqLwogc3RhdGljIHN0cnVjdCByZWZfZW50cnkgKmN1cnJlbnRfcmVmOwogCi1zdGF0aWMgaW50IGRvX29uZV9yZWYoY29uc3QgY2hhciAqYmFzZSwgZWFjaF9yZWZfZm4gZm4sIGludCB0cmltLAotCQkgICAgICBpbnQgZmxhZ3MsIHZvaWQgKmNiX2RhdGEsIHN0cnVjdCByZWZfZW50cnkgKmVudHJ5KQordHlwZWRlZiBpbnQgZWFjaF9yZWZfZW50cnlfZm4oc3RydWN0IHJlZl9lbnRyeSAqZW50cnksIHZvaWQgKmNiX2RhdGEpOworCitzdHJ1Y3QgcmVmX2VudHJ5X2NiIHsKKwljb25zdCBjaGFyICpiYXNlOworCWludCB0cmltOworCWludCBmbGFnczsKKwllYWNoX3JlZl9mbiAqZm47CisJdm9pZCAqY2JfZGF0YTsKK307CisKKy8qCisgKiBIYW5kbGUgb25lIHJlZmVyZW5jZSBpbiBhIGRvX2Zvcl9lYWNoX3JlZiooKS1zdHlsZSBpdGVyYXRpb24sCisgKiBjYWxsaW5nIGFuIGVhY2hfcmVmX2ZuIGZvciBlYWNoIGVudHJ5LgorICovCitzdGF0aWMgaW50IGRvX29uZV9yZWYoc3RydWN0IHJlZl9lbnRyeSAqZW50cnksIHZvaWQgKmNiX2RhdGEpCiB7CisJc3RydWN0IHJlZl9lbnRyeV9jYiAqZGF0YSA9IGNiX2RhdGE7CisJc3RydWN0IHJlZl9lbnRyeSAqb2xkX2N1cnJlbnRfcmVmOwogCWludCByZXR2YWw7Ci0JaWYgKHByZWZpeGNtcChlbnRyeS0+bmFtZSwgYmFzZSkpCisKKwlpZiAocHJlZml4Y21wKGVudHJ5LT5uYW1lLCBkYXRhLT5iYXNlKSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoIShmbGFncyAmIERPX0ZPUl9FQUNIX0lOQ0xVREVfQlJPS0VOKSkgewotCQlpZiAoZW50cnktPmZsYWcgJiBSRUZfSVNCUk9LRU4pCi0JCQlyZXR1cm4gMDsgLyogaWdub3JlIGJyb2tlbiByZWZzIGUuZy4gZGFuZ2xpbmcgc3ltcmVmICovCi0JCWlmICghaGFzX3NoYTFfZmlsZShlbnRyeS0+dS52YWx1ZS5zaGExKSkgewotCQkJZXJyb3IoIiVzIGRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgb2JqZWN0ISIsIGVudHJ5LT5uYW1lKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JfQorCWlmICghKGRhdGEtPmZsYWdzICYgRE9fRk9SX0VBQ0hfSU5DTFVERV9CUk9LRU4pICYmCisJICAgICAgIXJlZl9yZXNvbHZlc190b19vYmplY3QoZW50cnkpKQorCQlyZXR1cm4gMDsKKworCS8qIFN0b3JlIHRoZSBvbGQgdmFsdWUsIGluIGNhc2UgdGhpcyBpcyBhIHJlY3Vyc2l2ZSBjYWxsOiAqLworCW9sZF9jdXJyZW50X3JlZiA9IGN1cnJlbnRfcmVmOwogCWN1cnJlbnRfcmVmID0gZW50cnk7Ci0JcmV0dmFsID0gZm4oZW50cnktPm5hbWUgKyB0cmltLCBlbnRyeS0+dS52YWx1ZS5zaGExLCBlbnRyeS0+ZmxhZywgY2JfZGF0YSk7Ci0JY3VycmVudF9yZWYgPSBOVUxMOworCXJldHZhbCA9IGRhdGEtPmZuKGVudHJ5LT5uYW1lICsgZGF0YS0+dHJpbSwgZW50cnktPnUudmFsdWUuc2hhMSwKKwkJCSAgZW50cnktPmZsYWcsIGRhdGEtPmNiX2RhdGEpOworCWN1cnJlbnRfcmVmID0gb2xkX2N1cnJlbnRfcmVmOwogCXJldHVybiByZXR2YWw7CiB9CiAKQEAgLTUzMiwxMSArNjUzLDExIEBACiAgKiBDYWxsIGZuIGZvciBlYWNoIHJlZmVyZW5jZSBpbiBkaXIgdGhhdCBoYXMgaW5kZXggaW4gdGhlIHJhbmdlCiAgKiBvZmZzZXQgPD0gaW5kZXggPCBkaXItPm5yLiAgUmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzIHRoYXQgYXJlIGluCiAgKiB0aGF0IGluZGV4IHJhbmdlLCBzb3J0aW5nIHRoZW0gYmVmb3JlIGl0ZXJhdGluZy4gIFRoaXMgZnVuY3Rpb24KLSAqIGRvZXMgbm90IHNvcnQgZGlyIGl0c2VsZjsgaXQgc2hvdWxkIGJlIHNvcnRlZCBiZWZvcmVoYW5kLgorICogZG9lcyBub3Qgc29ydCBkaXIgaXRzZWxmOyBpdCBzaG91bGQgYmUgc29ydGVkIGJlZm9yZWhhbmQuICBmbiBpcworICogY2FsbGVkIGZvciBhbGwgcmVmZXJlbmNlcywgaW5jbHVkaW5nIGJyb2tlbiBvbmVzLgogICovCi1zdGF0aWMgaW50IGRvX2Zvcl9lYWNoX3JlZl9pbl9kaXIoc3RydWN0IHJlZl9kaXIgKmRpciwgaW50IG9mZnNldCwKLQkJCQkgIGNvbnN0IGNoYXIgKmJhc2UsCi0JCQkJICBlYWNoX3JlZl9mbiBmbiwgaW50IHRyaW0sIGludCBmbGFncywgdm9pZCAqY2JfZGF0YSkKK3N0YXRpYyBpbnQgZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlyKHN0cnVjdCByZWZfZGlyICpkaXIsIGludCBvZmZzZXQsCisJCQkJICAgIGVhY2hfcmVmX2VudHJ5X2ZuIGZuLCB2b2lkICpjYl9kYXRhKQogewogCWludCBpOwogCWFzc2VydChkaXItPnNvcnRlZCA9PSBkaXItPm5yKTsKQEAgLTU0NiwxMCArNjY3LDkgQEAKIAkJaWYgKGVudHJ5LT5mbGFnICYgUkVGX0RJUikgewogCQkJc3RydWN0IHJlZl9kaXIgKnN1YmRpciA9IGdldF9yZWZfZGlyKGVudHJ5KTsKIAkJCXNvcnRfcmVmX2RpcihzdWJkaXIpOwotCQkJcmV0dmFsID0gZG9fZm9yX2VhY2hfcmVmX2luX2RpcihzdWJkaXIsIDAsCi0JCQkJCQkJYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhKTsKKwkJCXJldHZhbCA9IGRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcihzdWJkaXIsIDAsIGZuLCBjYl9kYXRhKTsKIAkJfSBlbHNlIHsKLQkJCXJldHZhbCA9IGRvX29uZV9yZWYoYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhLCBlbnRyeSk7CisJCQlyZXR2YWwgPSBmbihlbnRyeSwgY2JfZGF0YSk7CiAJCX0KIAkJaWYgKHJldHZhbCkKIAkJCXJldHVybiByZXR2YWw7CkBAIC01NjIsMTIgKzY4MiwxMiBAQAogICogYnkgcmVmbmFtZS4gIFJlY3Vyc2UgaW50byBzdWJkaXJlY3Rvcmllcy4gIElmIGEgdmFsdWUgZW50cnkgYXBwZWFycwogICogaW4gYm90aCBkaXIxIGFuZCBkaXIyLCB0aGVuIG9ubHkgcHJvY2VzcyB0aGUgdmVyc2lvbiB0aGF0IGlzIGluCiAgKiBkaXIyLiAgVGhlIGlucHV0IGRpcnMgbXVzdCBhbHJlYWR5IGJlIHNvcnRlZCwgYnV0IHN1YmRpcnMgd2lsbCBiZQotICogc29ydGVkIGFzIG5lZWRlZC4KKyAqIHNvcnRlZCBhcyBuZWVkZWQuICBmbiBpcyBjYWxsZWQgZm9yIGFsbCByZWZlcmVuY2VzLCBpbmNsdWRpbmcKKyAqIGJyb2tlbiBvbmVzLgogICovCi1zdGF0aWMgaW50IGRvX2Zvcl9lYWNoX3JlZl9pbl9kaXJzKHN0cnVjdCByZWZfZGlyICpkaXIxLAotCQkJCSAgIHN0cnVjdCByZWZfZGlyICpkaXIyLAotCQkJCSAgIGNvbnN0IGNoYXIgKmJhc2UsIGVhY2hfcmVmX2ZuIGZuLCBpbnQgdHJpbSwKLQkJCQkgICBpbnQgZmxhZ3MsIHZvaWQgKmNiX2RhdGEpCitzdGF0aWMgaW50IGRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcnMoc3RydWN0IHJlZl9kaXIgKmRpcjEsCisJCQkJICAgICBzdHJ1Y3QgcmVmX2RpciAqZGlyMiwKKwkJCQkgICAgIGVhY2hfcmVmX2VudHJ5X2ZuIGZuLCB2b2lkICpjYl9kYXRhKQogewogCWludCByZXR2YWw7CiAJaW50IGkxID0gMCwgaTIgPSAwOwpAQCAtNTc4LDEyICs2OTgsMTAgQEAKIAkJc3RydWN0IHJlZl9lbnRyeSAqZTEsICplMjsKIAkJaW50IGNtcDsKIAkJaWYgKGkxID09IGRpcjEtPm5yKSB7Ci0JCQlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmX2luX2RpcihkaXIyLCBpMiwKLQkJCQkJCSAgICAgIGJhc2UsIGZuLCB0cmltLCBmbGFncywgY2JfZGF0YSk7CisJCQlyZXR1cm4gZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlyKGRpcjIsIGkyLCBmbiwgY2JfZGF0YSk7CiAJCX0KIAkJaWYgKGkyID09IGRpcjItPm5yKSB7Ci0JCQlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmX2luX2RpcihkaXIxLCBpMSwKLQkJCQkJCSAgICAgIGJhc2UsIGZuLCB0cmltLCBmbGFncywgY2JfZGF0YSk7CisJCQlyZXR1cm4gZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlyKGRpcjEsIGkxLCBmbiwgY2JfZGF0YSk7CiAJCX0KIAkJZTEgPSBkaXIxLT5lbnRyaWVzW2kxXTsKIAkJZTIgPSBkaXIyLT5lbnRyaWVzW2kyXTsKQEAgLTU5NSwxNCArNzEzLDEzIEBACiAJCQkJc3RydWN0IHJlZl9kaXIgKnN1YmRpcjIgPSBnZXRfcmVmX2RpcihlMik7CiAJCQkJc29ydF9yZWZfZGlyKHN1YmRpcjEpOwogCQkJCXNvcnRfcmVmX2RpcihzdWJkaXIyKTsKLQkJCQlyZXR2YWwgPSBkb19mb3JfZWFjaF9yZWZfaW5fZGlycygKLQkJCQkJCXN1YmRpcjEsIHN1YmRpcjIsCi0JCQkJCQliYXNlLCBmbiwgdHJpbSwgZmxhZ3MsIGNiX2RhdGEpOworCQkJCXJldHZhbCA9IGRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcnMoCisJCQkJCQlzdWJkaXIxLCBzdWJkaXIyLCBmbiwgY2JfZGF0YSk7CiAJCQkJaTErKzsKIAkJCQlpMisrOwogCQkJfSBlbHNlIGlmICghKGUxLT5mbGFnICYgUkVGX0RJUikgJiYgIShlMi0+ZmxhZyAmIFJFRl9ESVIpKSB7CiAJCQkJLyogQm90aCBhcmUgcmVmZXJlbmNlczsgaWdub3JlIHRoZSBvbmUgZnJvbSBkaXIxLiAqLwotCQkJCXJldHZhbCA9IGRvX29uZV9yZWYoYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhLCBlMik7CisJCQkJcmV0dmFsID0gZm4oZTIsIGNiX2RhdGEpOwogCQkJCWkxKys7CiAJCQkJaTIrKzsKIAkJCX0gZWxzZSB7CkBAIC02MjEsMjYgKzczOCwzMyBAQAogCQkJaWYgKGUtPmZsYWcgJiBSRUZfRElSKSB7CiAJCQkJc3RydWN0IHJlZl9kaXIgKnN1YmRpciA9IGdldF9yZWZfZGlyKGUpOwogCQkJCXNvcnRfcmVmX2RpcihzdWJkaXIpOwotCQkJCXJldHZhbCA9IGRvX2Zvcl9lYWNoX3JlZl9pbl9kaXIoCi0JCQkJCQlzdWJkaXIsIDAsCi0JCQkJCQliYXNlLCBmbiwgdHJpbSwgZmxhZ3MsIGNiX2RhdGEpOworCQkJCXJldHZhbCA9IGRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcigKKwkJCQkJCXN1YmRpciwgMCwgZm4sIGNiX2RhdGEpOwogCQkJfSBlbHNlIHsKLQkJCQlyZXR2YWwgPSBkb19vbmVfcmVmKGJhc2UsIGZuLCB0cmltLCBmbGFncywgY2JfZGF0YSwgZSk7CisJCQkJcmV0dmFsID0gZm4oZSwgY2JfZGF0YSk7CiAJCQl9CiAJCX0KIAkJaWYgKHJldHZhbCkKIAkJCXJldHVybiByZXR2YWw7CiAJfQotCWlmIChpMSA8IGRpcjEtPm5yKQotCQlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmX2luX2RpcihkaXIxLCBpMSwKLQkJCQkJICAgICAgYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhKTsKLQlpZiAoaTIgPCBkaXIyLT5ucikKLQkJcmV0dXJuIGRvX2Zvcl9lYWNoX3JlZl9pbl9kaXIoZGlyMiwgaTIsCi0JCQkJCSAgICAgIGJhc2UsIGZuLCB0cmltLCBmbGFncywgY2JfZGF0YSk7Ci0JcmV0dXJuIDA7CiB9CiAKIC8qCisgKiBMb2FkIGFsbCBvZiB0aGUgcmVmcyBmcm9tIHRoZSBkaXIgaW50byBvdXIgaW4tbWVtb3J5IGNhY2hlLiBUaGUgaGFyZCB3b3JrCisgKiBvZiBsb2FkaW5nIGxvb3NlIHJlZnMgaXMgZG9uZSBieSBnZXRfcmVmX2RpcigpLCBzbyB3ZSBqdXN0IG5lZWQgdG8gcmVjdXJzZQorICogdGhyb3VnaCBhbGwgb2YgdGhlIHN1Yi1kaXJlY3Rvcmllcy4gV2UgZG8gbm90IGV2ZW4gbmVlZCB0byBjYXJlIGFib3V0CisgKiBzb3J0aW5nLCBhcyB0cmF2ZXJzYWwgb3JkZXIgZG9lcyBub3QgbWF0dGVyIHRvIHVzLgorICovCitzdGF0aWMgdm9pZCBwcmltZV9yZWZfZGlyKHN0cnVjdCByZWZfZGlyICpkaXIpCit7CisJaW50IGk7CisJZm9yIChpID0gMDsgaSA8IGRpci0+bnI7IGkrKykgeworCQlzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSA9IGRpci0+ZW50cmllc1tpXTsKKwkJaWYgKGVudHJ5LT5mbGFnICYgUkVGX0RJUikKKwkJCXByaW1lX3JlZl9kaXIoZ2V0X3JlZl9kaXIoZW50cnkpKTsKKwl9Cit9CisvKgogICogUmV0dXJuIHRydWUgaWZmIHJlZm5hbWUxIGFuZCByZWZuYW1lMiBjb25mbGljdCB3aXRoIGVhY2ggb3RoZXIuCiAgKiBUd28gcmVmZXJlbmNlIG5hbWVzIGNvbmZsaWN0IGlmIG9uZSBvZiB0aGVtIGV4YWN0bHkgbWF0Y2hlcyB0aGUKICAqIGxlYWRpbmcgY29tcG9uZW50cyBvZiB0aGUgb3RoZXI7IGUuZy4sICJmb28vYmFyIiBjb25mbGljdHMgd2l0aApAQCAtNjYxLDE0ICs3ODUsMTMgQEAKIAljb25zdCBjaGFyICpjb25mbGljdGluZ19yZWZuYW1lOwogfTsKIAotc3RhdGljIGludCBuYW1lX2NvbmZsaWN0X2ZuKGNvbnN0IGNoYXIgKmV4aXN0aW5ncmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKLQkJCSAgICBpbnQgZmxhZ3MsIHZvaWQgKmNiX2RhdGEpCitzdGF0aWMgaW50IG5hbWVfY29uZmxpY3RfZm4oc3RydWN0IHJlZl9lbnRyeSAqZW50cnksIHZvaWQgKmNiX2RhdGEpCiB7CiAJc3RydWN0IG5hbWVfY29uZmxpY3RfY2IgKmRhdGEgPSAoc3RydWN0IG5hbWVfY29uZmxpY3RfY2IgKiljYl9kYXRhOwotCWlmIChkYXRhLT5vbGRyZWZuYW1lICYmICFzdHJjbXAoZGF0YS0+b2xkcmVmbmFtZSwgZXhpc3RpbmdyZWZuYW1lKSkKKwlpZiAoZGF0YS0+b2xkcmVmbmFtZSAmJiAhc3RyY21wKGRhdGEtPm9sZHJlZm5hbWUsIGVudHJ5LT5uYW1lKSkKIAkJcmV0dXJuIDA7Ci0JaWYgKG5hbWVzX2NvbmZsaWN0KGRhdGEtPnJlZm5hbWUsIGV4aXN0aW5ncmVmbmFtZSkpIHsKLQkJZGF0YS0+Y29uZmxpY3RpbmdfcmVmbmFtZSA9IGV4aXN0aW5ncmVmbmFtZTsKKwlpZiAobmFtZXNfY29uZmxpY3QoZGF0YS0+cmVmbmFtZSwgZW50cnktPm5hbWUpKSB7CisJCWRhdGEtPmNvbmZsaWN0aW5nX3JlZm5hbWUgPSBlbnRyeS0+bmFtZTsKIAkJcmV0dXJuIDE7CiAJfQogCXJldHVybiAwOwpAQCAtNjc2LDcgKzc5OSw3IEBACiAKIC8qCiAgKiBSZXR1cm4gdHJ1ZSBpZmYgYSByZWZlcmVuY2UgbmFtZWQgcmVmbmFtZSBjb3VsZCBiZSBjcmVhdGVkIHdpdGhvdXQKLSAqIGNvbmZsaWN0aW5nIHdpdGggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgcmVmZXJlbmNlIGluIGFycmF5LiAgSWYKKyAqIGNvbmZsaWN0aW5nIHdpdGggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgcmVmZXJlbmNlIGluIGRpci4gIElmCiAgKiBvbGRyZWZuYW1lIGlzIG5vbi1OVUxMLCBpZ25vcmUgcG90ZW50aWFsIGNvbmZsaWN0cyB3aXRoIG9sZHJlZm5hbWUKICAqIChlLmcuLCBiZWNhdXNlIG9sZHJlZm5hbWUgaXMgc2NoZWR1bGVkIGZvciBkZWxldGlvbiBpbiB0aGUgc2FtZQogICogb3BlcmF0aW9uKS4KQEAgLTY5MCw5ICs4MTMsNyBAQAogCWRhdGEuY29uZmxpY3RpbmdfcmVmbmFtZSA9IE5VTEw7CiAKIAlzb3J0X3JlZl9kaXIoZGlyKTsKLQlpZiAoZG9fZm9yX2VhY2hfcmVmX2luX2RpcihkaXIsIDAsICIiLCBuYW1lX2NvbmZsaWN0X2ZuLAotCQkJCSAgIDAsIERPX0ZPUl9FQUNIX0lOQ0xVREVfQlJPS0VOLAotCQkJCSAgICZkYXRhKSkgeworCWlmIChkb19mb3JfZWFjaF9lbnRyeV9pbl9kaXIoZGlyLCAwLCBuYW1lX2NvbmZsaWN0X2ZuLCAmZGF0YSkpIHsKIAkJZXJyb3IoIiclcycgZXhpc3RzOyBjYW5ub3QgY3JlYXRlICclcyciLAogCQkgICAgICBkYXRhLmNvbmZsaWN0aW5nX3JlZm5hbWUsIHJlZm5hbWUpOwogCQlyZXR1cm4gMDsKQEAgLTcwMCw2ICs4MjEsMzAgQEAKIAlyZXR1cm4gMTsKIH0KIAorc3RydWN0IHBhY2tlZF9yZWZfY2FjaGUgeworCXN0cnVjdCByZWZfZW50cnkgKnJvb3Q7CisKKwkvKgorCSAqIENvdW50IG9mIHJlZmVyZW5jZXMgdG8gdGhlIGRhdGEgc3RydWN0dXJlIGluIHRoaXMgaW5zdGFuY2UsCisJICogaW5jbHVkaW5nIHRoZSBwb2ludGVyIGZyb20gcmVmX2NhY2hlOjpwYWNrZWQgaWYgYW55LiAgVGhlCisJICogZGF0YSB3aWxsIG5vdCBiZSBmcmVlZCBhcyBsb25nIGFzIHRoZSByZWZlcmVuY2UgY291bnQgaXMKKwkgKiBub256ZXJvLgorCSAqLworCXVuc2lnbmVkIGludCByZWZlcnJlcnM7CisKKwkvKgorCSAqIElmZiB0aGUgcGFja2VkLXJlZnMgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZSBpcworCSAqIGN1cnJlbnRseSBsb2NrZWQgZm9yIHdyaXRpbmcsIHRoaXMgcG9pbnRzIGF0IHRoZSBhc3NvY2lhdGVkCisJICogbG9jayAod2hpY2ggaXMgb3duZWQgYnkgc29tZWJvZHkgZWxzZSkuICBUaGUgcmVmZXJyZXIgY291bnQKKwkgKiBpcyBhbHNvIGluY3JlbWVudGVkIHdoZW4gdGhlIGZpbGUgaXMgbG9ja2VkIGFuZCBkZWNyZW1lbnRlZAorCSAqIHdoZW4gaXQgaXMgdW5sb2NrZWQuCisJICovCisJc3RydWN0IGxvY2tfZmlsZSAqbG9jazsKKworCS8qIFRoZSBtZXRhZGF0YSBmcm9tIHdoZW4gdGhpcyBwYWNrZWQtcmVmcyBjYWNoZSB3YXMgcmVhZCAqLworCXN0cnVjdCBzdGF0X3ZhbGlkaXR5IHZhbGlkaXR5OworfTsKKwogLyoKICAqIEZ1dHVyZTogbmVlZCB0byBiZSBpbiAic3RydWN0IHJlcG9zaXRvcnkiCiAgKiB3aGVuIGRvaW5nIGEgZnVsbCBsaWJpZmljYXRpb24uCkBAIC03MDcsMTYgKzg1Miw1MSBAQAogc3RhdGljIHN0cnVjdCByZWZfY2FjaGUgewogCXN0cnVjdCByZWZfY2FjaGUgKm5leHQ7CiAJc3RydWN0IHJlZl9lbnRyeSAqbG9vc2U7Ci0Jc3RydWN0IHJlZl9lbnRyeSAqcGFja2VkOwotCS8qIFRoZSBzdWJtb2R1bGUgbmFtZSwgb3IgIiIgZm9yIHRoZSBtYWluIHJlcG8uICovCi0JY2hhciBuYW1lW0ZMRVhfQVJSQVldOwotfSAqcmVmX2NhY2hlOworCXN0cnVjdCBwYWNrZWRfcmVmX2NhY2hlICpwYWNrZWQ7CisJLyoKKwkgKiBUaGUgc3VibW9kdWxlIG5hbWUsIG9yICIiIGZvciB0aGUgbWFpbiByZXBvLiAgV2UgYWxsb2NhdGUKKwkgKiBsZW5ndGggMSByYXRoZXIgdGhhbiBGTEVYX0FSUkFZIHNvIHRoYXQgdGhlIG1haW4gcmVmX2NhY2hlCisJICogaXMgaW5pdGlhbGl6ZWQgY29ycmVjdGx5LgorCSAqLworCWNoYXIgbmFtZVsxXTsKK30gcmVmX2NhY2hlLCAqc3VibW9kdWxlX3JlZl9jYWNoZXM7CisKKy8qIExvY2sgdXNlZCBmb3IgdGhlIG1haW4gcGFja2VkLXJlZnMgZmlsZTogKi8KK3N0YXRpYyBzdHJ1Y3QgbG9ja19maWxlIHBhY2tsb2NrOworCisvKgorICogSW5jcmVtZW50IHRoZSByZWZlcmVuY2UgY291bnQgb2YgKnBhY2tlZF9yZWZzLgorICovCitzdGF0aWMgdm9pZCBhY3F1aXJlX3BhY2tlZF9yZWZfY2FjaGUoc3RydWN0IHBhY2tlZF9yZWZfY2FjaGUgKnBhY2tlZF9yZWZzKQoreworCXBhY2tlZF9yZWZzLT5yZWZlcnJlcnMrKzsKK30KKworLyoKKyAqIERlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQgb2YgKnBhY2tlZF9yZWZzLiAgSWYgaXQgZ29lcyB0byB6ZXJvLAorICogZnJlZSAqcGFja2VkX3JlZnMgYW5kIHJldHVybiB0cnVlOyBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLgorICovCitzdGF0aWMgaW50IHJlbGVhc2VfcGFja2VkX3JlZl9jYWNoZShzdHJ1Y3QgcGFja2VkX3JlZl9jYWNoZSAqcGFja2VkX3JlZnMpCit7CisJaWYgKCEtLXBhY2tlZF9yZWZzLT5yZWZlcnJlcnMpIHsKKwkJZnJlZV9yZWZfZW50cnkocGFja2VkX3JlZnMtPnJvb3QpOworCQlzdGF0X3ZhbGlkaXR5X2NsZWFyKCZwYWNrZWRfcmVmcy0+dmFsaWRpdHkpOworCQlmcmVlKHBhY2tlZF9yZWZzKTsKKwkJcmV0dXJuIDE7CisJfSBlbHNlIHsKKwkJcmV0dXJuIDA7CisJfQorfQogCiBzdGF0aWMgdm9pZCBjbGVhcl9wYWNrZWRfcmVmX2NhY2hlKHN0cnVjdCByZWZfY2FjaGUgKnJlZnMpCiB7CiAJaWYgKHJlZnMtPnBhY2tlZCkgewotCQlmcmVlX3JlZl9lbnRyeShyZWZzLT5wYWNrZWQpOworCQlzdHJ1Y3QgcGFja2VkX3JlZl9jYWNoZSAqcGFja2VkX3JlZnMgPSByZWZzLT5wYWNrZWQ7CisKKwkJaWYgKHBhY2tlZF9yZWZzLT5sb2NrKQorCQkJZGllKCJpbnRlcm5hbCBlcnJvcjogcGFja2VkLXJlZiBjYWNoZSBjbGVhcmVkIHdoaWxlIGxvY2tlZCIpOwogCQlyZWZzLT5wYWNrZWQgPSBOVUxMOworCQlyZWxlYXNlX3BhY2tlZF9yZWZfY2FjaGUocGFja2VkX3JlZnMpOwogCX0KIH0KIApAQCAtNzQ4LDE4ICs5MjgsMTggQEAKICAqLwogc3RhdGljIHN0cnVjdCByZWZfY2FjaGUgKmdldF9yZWZfY2FjaGUoY29uc3QgY2hhciAqc3VibW9kdWxlKQogewotCXN0cnVjdCByZWZfY2FjaGUgKnJlZnMgPSByZWZfY2FjaGU7Ci0JaWYgKCFzdWJtb2R1bGUpCi0JCXN1Ym1vZHVsZSA9ICIiOwotCXdoaWxlIChyZWZzKSB7CisJc3RydWN0IHJlZl9jYWNoZSAqcmVmczsKKworCWlmICghc3VibW9kdWxlIHx8ICEqc3VibW9kdWxlKQorCQlyZXR1cm4gJnJlZl9jYWNoZTsKKworCWZvciAocmVmcyA9IHN1Ym1vZHVsZV9yZWZfY2FjaGVzOyByZWZzOyByZWZzID0gcmVmcy0+bmV4dCkKIAkJaWYgKCFzdHJjbXAoc3VibW9kdWxlLCByZWZzLT5uYW1lKSkKIAkJCXJldHVybiByZWZzOwotCQlyZWZzID0gcmVmcy0+bmV4dDsKLQl9CiAKIAlyZWZzID0gY3JlYXRlX3JlZl9jYWNoZShzdWJtb2R1bGUpOwotCXJlZnMtPm5leHQgPSByZWZfY2FjaGU7Ci0JcmVmX2NhY2hlID0gcmVmczsKKwlyZWZzLT5uZXh0ID0gc3VibW9kdWxlX3JlZl9jYWNoZXM7CisJc3VibW9kdWxlX3JlZl9jYWNoZXMgPSByZWZzOwogCXJldHVybiByZWZzOwogfQogCkBAIC03NzAsNiArOTUwLDE2IEBACiAJY2xlYXJfbG9vc2VfcmVmX2NhY2hlKHJlZnMpOwogfQogCisvKiBUaGUgbGVuZ3RoIG9mIGEgcGVlbGVkIHJlZmVyZW5jZSBsaW5lIGluIHBhY2tlZC1yZWZzLCBpbmNsdWRpbmcgRU9MOiAqLworI2RlZmluZSBQRUVMRURfTElORV9MRU5HVEggNDIKKworLyoKKyAqIFRoZSBwYWNrZWQtcmVmcyBoZWFkZXIgbGluZSB0aGF0IHdlIHdyaXRlIG91dC4gIFBlcmhhcHMgb3RoZXIKKyAqIHRyYWl0cyB3aWxsIGJlIGFkZGVkIGxhdGVyLiAgVGhlIHRyYWlsaW5nIHNwYWNlIGlzIHJlcXVpcmVkLgorICovCitzdGF0aWMgY29uc3QgY2hhciBQQUNLRURfUkVGU19IRUFERVJbXSA9CisJIiMgcGFjay1yZWZzIHdpdGg6IHBlZWxlZCBmdWxseS1wZWVsZWQgXG4iOworCiAvKgogICogUGFyc2Ugb25lIGxpbmUgZnJvbSBhIHBhY2tlZC1yZWZzIGZpbGUuICBXcml0ZSB0aGUgU0hBMSB0byBzaGExLgogICogUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgcmVmbmFtZSB3aXRoaW4gdGhlIGxpbmUgKG51bGwtdGVybWluYXRlZCksCkBAIC04NjIsOCArMTA1Miw4IEBACiAJCX0KIAkJaWYgKGxhc3QgJiYKIAkJICAgIHJlZmxpbmVbMF0gPT0gJ14nICYmCi0JCSAgICBzdHJsZW4ocmVmbGluZSkgPT0gNDIgJiYKLQkJICAgIHJlZmxpbmVbNDFdID09ICdcbicgJiYKKwkJICAgIHN0cmxlbihyZWZsaW5lKSA9PSBQRUVMRURfTElORV9MRU5HVEggJiYKKwkJICAgIHJlZmxpbmVbUEVFTEVEX0xJTkVfTEVOR1RIIC0gMV0gPT0gJ1xuJyAmJgogCQkgICAgIWdldF9zaGExX2hleChyZWZsaW5lICsgMSwgc2hhMSkpIHsKIAkJCWhhc2hjcHkobGFzdC0+dS52YWx1ZS5wZWVsZWQsIHNoYTEpOwogCQkJLyoKQEAgLTg3NiwzMCArMTA2Niw1OCBAQAogCX0KIH0KIAotc3RhdGljIHN0cnVjdCByZWZfZGlyICpnZXRfcGFja2VkX3JlZnMoc3RydWN0IHJlZl9jYWNoZSAqcmVmcykKKy8qCisgKiBHZXQgdGhlIHBhY2tlZF9yZWZfY2FjaGUgZm9yIHRoZSBzcGVjaWZpZWQgcmVmX2NhY2hlLCBjcmVhdGluZyBpdAorICogaWYgbmVjZXNzYXJ5LgorICovCitzdGF0aWMgc3RydWN0IHBhY2tlZF9yZWZfY2FjaGUgKmdldF9wYWNrZWRfcmVmX2NhY2hlKHN0cnVjdCByZWZfY2FjaGUgKnJlZnMpCiB7CisJY29uc3QgY2hhciAqcGFja2VkX3JlZnNfZmlsZTsKKworCWlmICgqcmVmcy0+bmFtZSkKKwkJcGFja2VkX3JlZnNfZmlsZSA9IGdpdF9wYXRoX3N1Ym1vZHVsZShyZWZzLT5uYW1lLCAicGFja2VkLXJlZnMiKTsKKwllbHNlCisJCXBhY2tlZF9yZWZzX2ZpbGUgPSBnaXRfcGF0aCgicGFja2VkLXJlZnMiKTsKKworCWlmIChyZWZzLT5wYWNrZWQgJiYKKwkgICAgIXN0YXRfdmFsaWRpdHlfY2hlY2soJnJlZnMtPnBhY2tlZC0+dmFsaWRpdHksIHBhY2tlZF9yZWZzX2ZpbGUpKQorCQljbGVhcl9wYWNrZWRfcmVmX2NhY2hlKHJlZnMpOworCiAJaWYgKCFyZWZzLT5wYWNrZWQpIHsKLQkJY29uc3QgY2hhciAqcGFja2VkX3JlZnNfZmlsZTsKIAkJRklMRSAqZjsKIAotCQlyZWZzLT5wYWNrZWQgPSBjcmVhdGVfZGlyX2VudHJ5KHJlZnMsICIiLCAwLCAwKTsKLQkJaWYgKCpyZWZzLT5uYW1lKQotCQkJcGFja2VkX3JlZnNfZmlsZSA9IGdpdF9wYXRoX3N1Ym1vZHVsZShyZWZzLT5uYW1lLCAicGFja2VkLXJlZnMiKTsKLQkJZWxzZQotCQkJcGFja2VkX3JlZnNfZmlsZSA9IGdpdF9wYXRoKCJwYWNrZWQtcmVmcyIpOworCQlyZWZzLT5wYWNrZWQgPSB4Y2FsbG9jKDEsIHNpemVvZigqcmVmcy0+cGFja2VkKSk7CisJCWFjcXVpcmVfcGFja2VkX3JlZl9jYWNoZShyZWZzLT5wYWNrZWQpOworCQlyZWZzLT5wYWNrZWQtPnJvb3QgPSBjcmVhdGVfZGlyX2VudHJ5KHJlZnMsICIiLCAwLCAwKTsKIAkJZiA9IGZvcGVuKHBhY2tlZF9yZWZzX2ZpbGUsICJyIik7CiAJCWlmIChmKSB7Ci0JCQlyZWFkX3BhY2tlZF9yZWZzKGYsIGdldF9yZWZfZGlyKHJlZnMtPnBhY2tlZCkpOworCQkJc3RhdF92YWxpZGl0eV91cGRhdGUoJnJlZnMtPnBhY2tlZC0+dmFsaWRpdHksIGZpbGVubyhmKSk7CisJCQlyZWFkX3BhY2tlZF9yZWZzKGYsIGdldF9yZWZfZGlyKHJlZnMtPnBhY2tlZC0+cm9vdCkpOwogCQkJZmNsb3NlKGYpOwogCQl9CiAJfQotCXJldHVybiBnZXRfcmVmX2RpcihyZWZzLT5wYWNrZWQpOworCXJldHVybiByZWZzLT5wYWNrZWQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcmVmX2RpciAqZ2V0X3BhY2tlZF9yZWZfZGlyKHN0cnVjdCBwYWNrZWRfcmVmX2NhY2hlICpwYWNrZWRfcmVmX2NhY2hlKQoreworCXJldHVybiBnZXRfcmVmX2RpcihwYWNrZWRfcmVmX2NhY2hlLT5yb290KTsKK30KKworc3RhdGljIHN0cnVjdCByZWZfZGlyICpnZXRfcGFja2VkX3JlZnMoc3RydWN0IHJlZl9jYWNoZSAqcmVmcykKK3sKKwlyZXR1cm4gZ2V0X3BhY2tlZF9yZWZfZGlyKGdldF9wYWNrZWRfcmVmX2NhY2hlKHJlZnMpKTsKIH0KIAogdm9pZCBhZGRfcGFja2VkX3JlZihjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQogewotCWFkZF9yZWYoZ2V0X3BhY2tlZF9yZWZzKGdldF9yZWZfY2FjaGUoTlVMTCkpLAotCQkJY3JlYXRlX3JlZl9lbnRyeShyZWZuYW1lLCBzaGExLCBSRUZfSVNQQUNLRUQsIDEpKTsKKwlzdHJ1Y3QgcGFja2VkX3JlZl9jYWNoZSAqcGFja2VkX3JlZl9jYWNoZSA9CisJCWdldF9wYWNrZWRfcmVmX2NhY2hlKCZyZWZfY2FjaGUpOworCisJaWYgKCFwYWNrZWRfcmVmX2NhY2hlLT5sb2NrKQorCQlkaWUoImludGVybmFsIGVycm9yOiBwYWNrZWQgcmVmcyBub3QgbG9ja2VkIik7CisJYWRkX3JlZihnZXRfcGFja2VkX3JlZl9kaXIocGFja2VkX3JlZl9jYWNoZSksCisJCWNyZWF0ZV9yZWZfZW50cnkocmVmbmFtZSwgc2hhMSwgUkVGX0lTUEFDS0VELCAxKSk7CiB9CiAKIC8qCkBAIC0xMDY5LDE4ICsxMjg3LDQzIEBACiB9CiAKIC8qCi0gKiBUcnkgdG8gcmVhZCByZWYgZnJvbSB0aGUgcGFja2VkIHJlZmVyZW5jZXMuICBPbiBzdWNjZXNzLCBzZXQgc2hhMQotICogYW5kIHJldHVybiAwOyBvdGhlcndpc2UsIHJldHVybiAtMS4KKyAqIFJldHVybiB0aGUgcmVmX2VudHJ5IGZvciB0aGUgZ2l2ZW4gcmVmbmFtZSBmcm9tIHRoZSBwYWNrZWQKKyAqIHJlZmVyZW5jZXMuICBJZiBpdCBkb2VzIG5vdCBleGlzdCwgcmV0dXJuIE5VTEwuCiAgKi8KLXN0YXRpYyBpbnQgZ2V0X3BhY2tlZF9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgdW5zaWduZWQgY2hhciAqc2hhMSkKK3N0YXRpYyBzdHJ1Y3QgcmVmX2VudHJ5ICpnZXRfcGFja2VkX3JlZihjb25zdCBjaGFyICpyZWZuYW1lKQogewotCXN0cnVjdCByZWZfZGlyICpwYWNrZWQgPSBnZXRfcGFja2VkX3JlZnMoZ2V0X3JlZl9jYWNoZShOVUxMKSk7Ci0Jc3RydWN0IHJlZl9lbnRyeSAqZW50cnkgPSBmaW5kX3JlZihwYWNrZWQsIHJlZm5hbWUpOworCXJldHVybiBmaW5kX3JlZihnZXRfcGFja2VkX3JlZnMoJnJlZl9jYWNoZSksIHJlZm5hbWUpOworfQorCisvKgorICogQSBsb29zZSByZWYgZmlsZSBkb2Vzbid0IGV4aXN0OyBjaGVjayBmb3IgYSBwYWNrZWQgcmVmLiAgVGhlCisgKiBvcHRpb25zIGFyZSBmb3J3YXJkZWQgZnJvbSByZXNvbHZlX3NhZmVfdW5zYWZlKCkuCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyICpoYW5kbGVfbWlzc2luZ19sb29zZV9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwKKwkJCQkJICAgIHVuc2lnbmVkIGNoYXIgKnNoYTEsCisJCQkJCSAgICBpbnQgcmVhZGluZywKKwkJCQkJICAgIGludCAqZmxhZykKK3sKKwlzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeTsKKworCS8qCisJICogVGhlIGxvb3NlIHJlZmVyZW5jZSBmaWxlIGRvZXMgbm90IGV4aXN0OyBjaGVjayBmb3IgYSBwYWNrZWQKKwkgKiByZWZlcmVuY2UuCisJICovCisJZW50cnkgPSBnZXRfcGFja2VkX3JlZihyZWZuYW1lKTsKIAlpZiAoZW50cnkpIHsKIAkJaGFzaGNweShzaGExLCBlbnRyeS0+dS52YWx1ZS5zaGExKTsKLQkJcmV0dXJuIDA7CisJCWlmIChmbGFnKQorCQkJKmZsYWcgfD0gUkVGX0lTUEFDS0VEOworCQlyZXR1cm4gcmVmbmFtZTsKIAl9Ci0JcmV0dXJuIC0xOworCS8qIFRoZSByZWZlcmVuY2UgaXMgbm90IGEgcGFja2VkIHJlZmVyZW5jZSwgZWl0aGVyLiAqLworCWlmIChyZWFkaW5nKSB7CisJCXJldHVybiBOVUxMOworCX0gZWxzZSB7CisJCWhhc2hjbHIoc2hhMSk7CisJCXJldHVybiByZWZuYW1lOworCX0KIH0KIAogY29uc3QgY2hhciAqcmVzb2x2ZV9yZWZfdW5zYWZlKGNvbnN0IGNoYXIgKnJlZm5hbWUsIHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCByZWFkaW5nLCBpbnQgKmZsYWcpCkBAIC0xMTA3LDMyICsxMzUwLDM0IEBACiAKIAkJZ2l0X3NucGF0aChwYXRoLCBzaXplb2YocGF0aCksICIlcyIsIHJlZm5hbWUpOwogCisJCS8qCisJCSAqIFdlIG1pZ2h0IGhhdmUgdG8gbG9vcCBiYWNrIGhlcmUgdG8gYXZvaWQgYSByYWNlCisJCSAqIGNvbmRpdGlvbjogZmlyc3Qgd2UgbHN0YXQoKSB0aGUgZmlsZSwgdGhlbiB3ZSB0cnkKKwkJICogdG8gcmVhZCBpdCBhcyBhIGxpbmsgb3IgYXMgYSBmaWxlLiAgQnV0IGlmIHNvbWVib2R5CisJCSAqIGNoYW5nZXMgdGhlIHR5cGUgb2YgdGhlIGZpbGUgKGZpbGUgPC0+IGRpcmVjdG9yeQorCQkgKiA8LT4gc3ltbGluaykgYmV0d2VlbiB0aGUgbHN0YXQoKSBhbmQgcmVhZGluZywgdGhlbgorCQkgKiB3ZSBkb24ndCB3YW50IHRvIHJlcG9ydCB0aGF0IGFzIGFuIGVycm9yIGJ1dCByYXRoZXIKKwkJICogdHJ5IGFnYWluIHN0YXJ0aW5nIHdpdGggdGhlIGxzdGF0KCkuCisJCSAqLworCXN0YXRfcmVmOgogCQlpZiAobHN0YXQocGF0aCwgJnN0KSA8IDApIHsKLQkJCWlmIChlcnJubyAhPSBFTk9FTlQpCisJCQlpZiAoZXJybm8gPT0gRU5PRU5UKQorCQkJCXJldHVybiBoYW5kbGVfbWlzc2luZ19sb29zZV9yZWYocmVmbmFtZSwgc2hhMSwKKwkJCQkJCQkJcmVhZGluZywgZmxhZyk7CisJCQllbHNlCiAJCQkJcmV0dXJuIE5VTEw7Ci0JCQkvKgotCQkJICogVGhlIGxvb3NlIHJlZmVyZW5jZSBmaWxlIGRvZXMgbm90IGV4aXN0OwotCQkJICogY2hlY2sgZm9yIGEgcGFja2VkIHJlZmVyZW5jZS4KLQkJCSAqLwotCQkJaWYgKCFnZXRfcGFja2VkX3JlZihyZWZuYW1lLCBzaGExKSkgewotCQkJCWlmIChmbGFnKQotCQkJCQkqZmxhZyB8PSBSRUZfSVNQQUNLRUQ7Ci0JCQkJcmV0dXJuIHJlZm5hbWU7Ci0JCQl9Ci0JCQkvKiBUaGUgcmVmZXJlbmNlIGlzIG5vdCBhIHBhY2tlZCByZWZlcmVuY2UsIGVpdGhlci4gKi8KLQkJCWlmIChyZWFkaW5nKSB7Ci0JCQkJcmV0dXJuIE5VTEw7Ci0JCQl9IGVsc2UgewotCQkJCWhhc2hjbHIoc2hhMSk7Ci0JCQkJcmV0dXJuIHJlZm5hbWU7Ci0JCQl9CiAJCX0KIAogCQkvKiBGb2xsb3cgIm5vcm1hbGl6ZWQiIC0gaWUgInJlZnMvLi4iIHN5bWxpbmtzIGJ5IGhhbmQgKi8KIAkJaWYgKFNfSVNMTksoc3Quc3RfbW9kZSkpIHsKIAkJCWxlbiA9IHJlYWRsaW5rKHBhdGgsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciktMSk7Ci0JCQlpZiAobGVuIDwgMCkKLQkJCQlyZXR1cm4gTlVMTDsKKwkJCWlmIChsZW4gPCAwKSB7CisJCQkJaWYgKGVycm5vID09IEVOT0VOVCB8fCBlcnJubyA9PSBFSU5WQUwpCisJCQkJCS8qIGluY29uc2lzdGVudCB3aXRoIGxzdGF0OyByZXRyeSAqLworCQkJCQlnb3RvIHN0YXRfcmVmOworCQkJCWVsc2UKKwkJCQkJcmV0dXJuIE5VTEw7CisJCQl9CiAJCQlidWZmZXJbbGVuXSA9IDA7CiAJCQlpZiAoIXByZWZpeGNtcChidWZmZXIsICJyZWZzLyIpICYmCiAJCQkJCSFjaGVja19yZWZuYW1lX2Zvcm1hdChidWZmZXIsIDApKSB7CkBAIC0xMTU1LDggKzE0MDAsMTMgQEAKIAkJICogYSByZWYKIAkJICovCiAJCWZkID0gb3BlbihwYXRoLCBPX1JET05MWSk7Ci0JCWlmIChmZCA8IDApCi0JCQlyZXR1cm4gTlVMTDsKKwkJaWYgKGZkIDwgMCkgeworCQkJaWYgKGVycm5vID09IEVOT0VOVCkKKwkJCQkvKiBpbmNvbnNpc3RlbnQgd2l0aCBsc3RhdDsgcmV0cnkgKi8KKwkJCQlnb3RvIHN0YXRfcmVmOworCQkJZWxzZQorCQkJCXJldHVybiBOVUxMOworCQl9CiAJCWxlbiA9IHJlYWRfaW5fZnVsbChmZCwgYnVmZmVyLCBzaXplb2YoYnVmZmVyKS0xKTsKIAkJY2xvc2UoZmQpOwogCQlpZiAobGVuIDwgMCkKQEAgLTExNjgsOCArMTQxOCwxOSBAQAogCQkvKgogCQkgKiBJcyBpdCBhIHN5bWJvbGljIHJlZj8KIAkJICovCi0JCWlmIChwcmVmaXhjbXAoYnVmZmVyLCAicmVmOiIpKQotCQkJYnJlYWs7CisJCWlmIChwcmVmaXhjbXAoYnVmZmVyLCAicmVmOiIpKSB7CisJCQkvKgorCQkJICogUGxlYXNlIG5vdGUgdGhhdCBGRVRDSF9IRUFEIGhhcyBhIHNlY29uZAorCQkJICogbGluZSBjb250YWluaW5nIG90aGVyIGRhdGEuCisJCQkgKi8KKwkJCWlmIChnZXRfc2hhMV9oZXgoYnVmZmVyLCBzaGExKSB8fAorCQkJICAgIChidWZmZXJbNDBdICE9ICdcMCcgJiYgIWlzc3BhY2UoYnVmZmVyWzQwXSkpKSB7CisJCQkJaWYgKGZsYWcpCisJCQkJCSpmbGFnIHw9IFJFRl9JU0JST0tFTjsKKwkJCQlyZXR1cm4gTlVMTDsKKwkJCX0KKwkJCXJldHVybiByZWZuYW1lOworCQl9CiAJCWlmIChmbGFnKQogCQkJKmZsYWcgfD0gUkVGX0lTU1lNUkVGOwogCQlidWYgPSBidWZmZXIgKyA0OwpAQCAtMTE4MiwxMyArMTQ0Myw2IEBACiAJCX0KIAkJcmVmbmFtZSA9IHN0cmNweShyZWZuYW1lX2J1ZmZlciwgYnVmKTsKIAl9Ci0JLyogUGxlYXNlIG5vdGUgdGhhdCBGRVRDSF9IRUFEIGhhcyBhIHNlY29uZCBsaW5lIGNvbnRhaW5pbmcgb3RoZXIgZGF0YS4gKi8KLQlpZiAoZ2V0X3NoYTFfaGV4KGJ1ZmZlciwgc2hhMSkgfHwgKGJ1ZmZlcls0MF0gIT0gJ1wwJyAmJiAhaXNzcGFjZShidWZmZXJbNDBdKSkpIHsKLQkJaWYgKGZsYWcpCi0JCQkqZmxhZyB8PSBSRUZfSVNCUk9LRU47Ci0JCXJldHVybiBOVUxMOwotCX0KLQlyZXR1cm4gcmVmbmFtZTsKIH0KIAogY2hhciAqcmVzb2x2ZV9yZWZkdXAoY29uc3QgY2hhciAqcmVmLCB1bnNpZ25lZCBjaGFyICpzaGExLCBpbnQgcmVhZGluZywgaW50ICpmbGFnKQpAQCAtMTIzMSw1NCArMTQ4NSwxMzAgQEAKIAlyZXR1cm4gZmlsdGVyLT5mbihyZWZuYW1lLCBzaGExLCBmbGFncywgZmlsdGVyLT5jYl9kYXRhKTsKIH0KIAorZW51bSBwZWVsX3N0YXR1cyB7CisJLyogb2JqZWN0IHdhcyBwZWVsZWQgc3VjY2Vzc2Z1bGx5OiAqLworCVBFRUxfUEVFTEVEID0gMCwKKworCS8qCisJICogb2JqZWN0IGNhbm5vdCBiZSBwZWVsZWQgYmVjYXVzZSB0aGUgbmFtZWQgb2JqZWN0IChvciBhbgorCSAqIG9iamVjdCByZWZlcnJlZCB0byBieSBhIHRhZyBpbiB0aGUgcGVlbCBjaGFpbiksIGRvZXMgbm90CisJICogZXhpc3QuCisJICovCisJUEVFTF9JTlZBTElEID0gLTEsCisKKwkvKiBvYmplY3QgY2Fubm90IGJlIHBlZWxlZCBiZWNhdXNlIGl0IGlzIG5vdCBhIHRhZzogKi8KKwlQRUVMX05PTl9UQUcgPSAtMiwKKworCS8qIHJlZl9lbnRyeSBjb250YWlucyBubyBwZWVsZWQgdmFsdWUgYmVjYXVzZSBpdCBpcyBhIHN5bXJlZjogKi8KKwlQRUVMX0lTX1NZTVJFRiA9IC0zLAorCisJLyoKKwkgKiByZWZfZW50cnkgY2Fubm90IGJlIHBlZWxlZCBiZWNhdXNlIGl0IGlzIGJyb2tlbiAoaS5lLiwgdGhlCisJICogc3ltYm9saWMgcmVmZXJlbmNlIGNhbm5vdCBldmVuIGJlIHJlc29sdmVkIHRvIGFuIG9iamVjdAorCSAqIG5hbWUpOgorCSAqLworCVBFRUxfQlJPS0VOID0gLTQKK307CisKKy8qCisgKiBQZWVsIHRoZSBuYW1lZCBvYmplY3Q7IGkuZS4sIGlmIHRoZSBvYmplY3QgaXMgYSB0YWcsIHJlc29sdmUgdGhlCisgKiB0YWcgcmVjdXJzaXZlbHkgdW50aWwgYSBub24tdGFnIGlzIGZvdW5kLiAgSWYgc3VjY2Vzc2Z1bCwgc3RvcmUgdGhlCisgKiByZXN1bHQgdG8gc2hhMSBhbmQgcmV0dXJuIFBFRUxfUEVFTEVELiAgSWYgdGhlIG9iamVjdCBpcyBub3QgYSB0YWcKKyAqIG9yIGlzIG5vdCB2YWxpZCwgcmV0dXJuIFBFRUxfTk9OX1RBRyBvciBQRUVMX0lOVkFMSUQsIHJlc3BlY3RpdmVseSwKKyAqIGFuZCBsZWF2ZSBzaGExIHVuY2hhbmdlZC4KKyAqLworc3RhdGljIGVudW0gcGVlbF9zdGF0dXMgcGVlbF9vYmplY3QoY29uc3QgdW5zaWduZWQgY2hhciAqbmFtZSwgdW5zaWduZWQgY2hhciAqc2hhMSkKK3sKKwlzdHJ1Y3Qgb2JqZWN0ICpvID0gbG9va3VwX3Vua25vd25fb2JqZWN0KG5hbWUpOworCisJaWYgKG8tPnR5cGUgPT0gT0JKX05PTkUpIHsKKwkJaW50IHR5cGUgPSBzaGExX29iamVjdF9pbmZvKG5hbWUsIE5VTEwpOworCQlpZiAodHlwZSA8IDApCisJCQlyZXR1cm4gUEVFTF9JTlZBTElEOworCQlvLT50eXBlID0gdHlwZTsKKwl9CisKKwlpZiAoby0+dHlwZSAhPSBPQkpfVEFHKQorCQlyZXR1cm4gUEVFTF9OT05fVEFHOworCisJbyA9IGRlcmVmX3RhZ19ub3ZlcmlmeShvKTsKKwlpZiAoIW8pCisJCXJldHVybiBQRUVMX0lOVkFMSUQ7CisKKwloYXNoY3B5KHNoYTEsIG8tPnNoYTEpOworCXJldHVybiBQRUVMX1BFRUxFRDsKK30KKworLyoKKyAqIFBlZWwgdGhlIGVudHJ5IChpZiBwb3NzaWJsZSkgYW5kIHJldHVybiBpdHMgbmV3IHBlZWxfc3RhdHVzLiAgSWYKKyAqIHJlcGVlbCBpcyB0cnVlLCByZS1wZWVsIHRoZSBlbnRyeSBldmVuIGlmIHRoZXJlIGlzIGFuIG9sZCBwZWVsZWQKKyAqIHZhbHVlIHRoYXQgaXMgYWxyZWFkeSBzdG9yZWQgaW4gaXQuCisgKgorICogSXQgaXMgT0sgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGggYSBwYWNrZWQgcmVmZXJlbmNlIGVudHJ5IHRoYXQKKyAqIG1pZ2h0IGJlIHN0YWxlIGFuZCBtaWdodCBldmVuIHJlZmVyIHRvIGFuIG9iamVjdCB0aGF0IGhhcyBzaW5jZQorICogYmVlbiBnYXJiYWdlLWNvbGxlY3RlZC4gIEluIHN1Y2ggYSBjYXNlLCBpZiB0aGUgZW50cnkgaGFzCisgKiBSRUZfS05PV1NfUEVFTEVEIHRoZW4gbGVhdmUgdGhlIHN0YXR1cyB1bmNoYW5nZWQgYW5kIHJldHVybgorICogUEVFTF9QRUVMRUQgb3IgUEVFTF9OT05fVEFHOyBvdGhlcndpc2UsIHJldHVybiBQRUVMX0lOVkFMSUQuCisgKi8KK3N0YXRpYyBlbnVtIHBlZWxfc3RhdHVzIHBlZWxfZW50cnkoc3RydWN0IHJlZl9lbnRyeSAqZW50cnksIGludCByZXBlZWwpCit7CisJZW51bSBwZWVsX3N0YXR1cyBzdGF0dXM7CisKKwlpZiAoZW50cnktPmZsYWcgJiBSRUZfS05PV1NfUEVFTEVEKSB7CisJCWlmIChyZXBlZWwpIHsKKwkJCWVudHJ5LT5mbGFnICY9IH5SRUZfS05PV1NfUEVFTEVEOworCQkJaGFzaGNscihlbnRyeS0+dS52YWx1ZS5wZWVsZWQpOworCQl9IGVsc2UgeworCQkJcmV0dXJuIGlzX251bGxfc2hhMShlbnRyeS0+dS52YWx1ZS5wZWVsZWQpID8KKwkJCQlQRUVMX05PTl9UQUcgOiBQRUVMX1BFRUxFRDsKKwkJfQorCX0KKwlpZiAoZW50cnktPmZsYWcgJiBSRUZfSVNCUk9LRU4pCisJCXJldHVybiBQRUVMX0JST0tFTjsKKwlpZiAoZW50cnktPmZsYWcgJiBSRUZfSVNTWU1SRUYpCisJCXJldHVybiBQRUVMX0lTX1NZTVJFRjsKKworCXN0YXR1cyA9IHBlZWxfb2JqZWN0KGVudHJ5LT51LnZhbHVlLnNoYTEsIGVudHJ5LT51LnZhbHVlLnBlZWxlZCk7CisJaWYgKHN0YXR1cyA9PSBQRUVMX1BFRUxFRCB8fCBzdGF0dXMgPT0gUEVFTF9OT05fVEFHKQorCQllbnRyeS0+ZmxhZyB8PSBSRUZfS05PV1NfUEVFTEVEOworCXJldHVybiBzdGF0dXM7Cit9CisKIGludCBwZWVsX3JlZihjb25zdCBjaGFyICpyZWZuYW1lLCB1bnNpZ25lZCBjaGFyICpzaGExKQogewogCWludCBmbGFnOwogCXVuc2lnbmVkIGNoYXIgYmFzZVsyMF07Ci0Jc3RydWN0IG9iamVjdCAqbzsKIAogCWlmIChjdXJyZW50X3JlZiAmJiAoY3VycmVudF9yZWYtPm5hbWUgPT0gcmVmbmFtZQotCQl8fCAhc3RyY21wKGN1cnJlbnRfcmVmLT5uYW1lLCByZWZuYW1lKSkpIHsKLQkJaWYgKGN1cnJlbnRfcmVmLT5mbGFnICYgUkVGX0tOT1dTX1BFRUxFRCkgewotCQkJaWYgKGlzX251bGxfc2hhMShjdXJyZW50X3JlZi0+dS52YWx1ZS5wZWVsZWQpKQotCQkJICAgIHJldHVybiAtMTsKLQkJCWhhc2hjcHkoc2hhMSwgY3VycmVudF9yZWYtPnUudmFsdWUucGVlbGVkKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCWhhc2hjcHkoYmFzZSwgY3VycmVudF9yZWYtPnUudmFsdWUuc2hhMSk7Ci0JCWdvdG8gZmFsbGJhY2s7CisJCQkgICAgfHwgIXN0cmNtcChjdXJyZW50X3JlZi0+bmFtZSwgcmVmbmFtZSkpKSB7CisJCWlmIChwZWVsX2VudHJ5KGN1cnJlbnRfcmVmLCAwKSkKKwkJCXJldHVybiAtMTsKKwkJaGFzaGNweShzaGExLCBjdXJyZW50X3JlZi0+dS52YWx1ZS5wZWVsZWQpOworCQlyZXR1cm4gMDsKIAl9CiAKIAlpZiAocmVhZF9yZWZfZnVsbChyZWZuYW1lLCBiYXNlLCAxLCAmZmxhZykpCiAJCXJldHVybiAtMTsKIAotCWlmICgoZmxhZyAmIFJFRl9JU1BBQ0tFRCkpIHsKLQkJc3RydWN0IHJlZl9kaXIgKmRpciA9IGdldF9wYWNrZWRfcmVmcyhnZXRfcmVmX2NhY2hlKE5VTEwpKTsKLQkJc3RydWN0IHJlZl9lbnRyeSAqciA9IGZpbmRfcmVmKGRpciwgcmVmbmFtZSk7Ci0KLQkJaWYgKHIgIT0gTlVMTCAmJiByLT5mbGFnICYgUkVGX0tOT1dTX1BFRUxFRCkgeworCS8qCisJICogSWYgdGhlIHJlZmVyZW5jZSBpcyBwYWNrZWQsIHJlYWQgaXRzIHJlZl9lbnRyeSBmcm9tIHRoZQorCSAqIGNhY2hlIGluIHRoZSBob3BlIHRoYXQgd2UgYWxyZWFkeSBrbm93IGl0cyBwZWVsZWQgdmFsdWUuCisJICogV2Ugb25seSB0cnkgdGhpcyBvcHRpbWl6YXRpb24gb24gcGFja2VkIHJlZmVyZW5jZXMgYmVjYXVzZQorCSAqIChhKSBmb3JjaW5nIHRoZSBmaWxsaW5nIG9mIHRoZSBsb29zZSByZWZlcmVuY2UgY2FjaGUgY291bGQKKwkgKiBiZSBleHBlbnNpdmUgYW5kIChiKSBsb29zZSByZWZlcmVuY2VzIGFueXdheSB1c3VhbGx5IGRvIG5vdAorCSAqIGhhdmUgUkVGX0tOT1dTX1BFRUxFRC4KKwkgKi8KKwlpZiAoZmxhZyAmIFJFRl9JU1BBQ0tFRCkgeworCQlzdHJ1Y3QgcmVmX2VudHJ5ICpyID0gZ2V0X3BhY2tlZF9yZWYocmVmbmFtZSk7CisJCWlmIChyKSB7CisJCQlpZiAocGVlbF9lbnRyeShyLCAwKSkKKwkJCQlyZXR1cm4gLTE7CiAJCQloYXNoY3B5KHNoYTEsIHItPnUudmFsdWUucGVlbGVkKTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQogCi1mYWxsYmFjazoKLQlvID0gbG9va3VwX3Vua25vd25fb2JqZWN0KGJhc2UpOwotCWlmIChvLT50eXBlID09IE9CSl9OT05FKSB7Ci0JCWludCB0eXBlID0gc2hhMV9vYmplY3RfaW5mbyhiYXNlLCBOVUxMKTsKLQkJaWYgKHR5cGUgPCAwKQotCQkJcmV0dXJuIC0xOwotCQlvLT50eXBlID0gdHlwZTsKLQl9Ci0KLQlpZiAoby0+dHlwZSA9PSBPQkpfVEFHKSB7Ci0JCW8gPSBkZXJlZl90YWdfbm92ZXJpZnkobyk7Ci0JCWlmIChvKSB7Ci0JCQloYXNoY3B5KHNoYTEsIG8tPnNoYTEpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQl9Ci0JcmV0dXJuIC0xOworCXJldHVybiBwZWVsX29iamVjdChiYXNlLCBzaGExKTsKIH0KIAogc3RydWN0IHdhcm5faWZfZGFuZ2xpbmdfZGF0YSB7CkBAIC0xMzE2LDQwICsxNjQ2LDg0IEBACiAJZm9yX2VhY2hfcmF3cmVmKHdhcm5faWZfZGFuZ2xpbmdfc3ltcmVmLCAmZGF0YSk7CiB9CiAKLXN0YXRpYyBpbnQgZG9fZm9yX2VhY2hfcmVmKGNvbnN0IGNoYXIgKnN1Ym1vZHVsZSwgY29uc3QgY2hhciAqYmFzZSwgZWFjaF9yZWZfZm4gZm4sCi0JCQkgICBpbnQgdHJpbSwgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQorLyoKKyAqIENhbGwgZm4gZm9yIGVhY2ggcmVmZXJlbmNlIGluIHRoZSBzcGVjaWZpZWQgcmVmX2NhY2hlLCBvbWl0dGluZworICogcmVmZXJlbmNlcyBub3QgaW4gdGhlIGNvbnRhaW5pbmdfZGlyIG9mIGJhc2UuICBmbiBpcyBjYWxsZWQgZm9yIGFsbAorICogcmVmZXJlbmNlcywgaW5jbHVkaW5nIGJyb2tlbiBvbmVzLiAgSWYgZm4gZXZlciByZXR1cm5zIGEgbm9uLXplcm8KKyAqIHZhbHVlLCBzdG9wIHRoZSBpdGVyYXRpb24gYW5kIHJldHVybiB0aGF0IHZhbHVlOyBvdGhlcndpc2UsIHJldHVybgorICogMC4KKyAqLworc3RhdGljIGludCBkb19mb3JfZWFjaF9lbnRyeShzdHJ1Y3QgcmVmX2NhY2hlICpyZWZzLCBjb25zdCBjaGFyICpiYXNlLAorCQkJICAgICBlYWNoX3JlZl9lbnRyeV9mbiBmbiwgdm9pZCAqY2JfZGF0YSkKIHsKLQlzdHJ1Y3QgcmVmX2NhY2hlICpyZWZzID0gZ2V0X3JlZl9jYWNoZShzdWJtb2R1bGUpOwotCXN0cnVjdCByZWZfZGlyICpwYWNrZWRfZGlyID0gZ2V0X3BhY2tlZF9yZWZzKHJlZnMpOwotCXN0cnVjdCByZWZfZGlyICpsb29zZV9kaXIgPSBnZXRfbG9vc2VfcmVmcyhyZWZzKTsKKwlzdHJ1Y3QgcGFja2VkX3JlZl9jYWNoZSAqcGFja2VkX3JlZl9jYWNoZTsKKwlzdHJ1Y3QgcmVmX2RpciAqbG9vc2VfZGlyOworCXN0cnVjdCByZWZfZGlyICpwYWNrZWRfZGlyOwogCWludCByZXR2YWwgPSAwOwogCisJLyoKKwkgKiBXZSBtdXN0IG1ha2Ugc3VyZSB0aGF0IGFsbCBsb29zZSByZWZzIGFyZSByZWFkIGJlZm9yZSBhY2Nlc3NpbmcgdGhlCisJICogcGFja2VkLXJlZnMgZmlsZTsgdGhpcyBhdm9pZHMgYSByYWNlIGNvbmRpdGlvbiBpbiB3aGljaCBsb29zZSByZWZzCisJICogYXJlIG1pZ3JhdGVkIHRvIHRoZSBwYWNrZWQtcmVmcyBmaWxlIGJ5IGEgc2ltdWx0YW5lb3VzIHByb2Nlc3MsIGJ1dAorCSAqIG91ciBpbi1tZW1vcnkgdmlldyBpcyBmcm9tIGJlZm9yZSB0aGUgbWlncmF0aW9uLiBnZXRfcGFja2VkX3JlZl9jYWNoZSgpCisJICogdGFrZXMgY2FyZSBvZiBtYWtpbmcgc3VyZSBvdXIgdmlldyBpcyB1cCB0byBkYXRlIHdpdGggd2hhdCBpcyBvbgorCSAqIGRpc2suCisJICovCisJbG9vc2VfZGlyID0gZ2V0X2xvb3NlX3JlZnMocmVmcyk7CisJaWYgKGJhc2UgJiYgKmJhc2UpIHsKKwkJbG9vc2VfZGlyID0gZmluZF9jb250YWluaW5nX2Rpcihsb29zZV9kaXIsIGJhc2UsIDApOworCX0KKwlpZiAobG9vc2VfZGlyKQorCQlwcmltZV9yZWZfZGlyKGxvb3NlX2Rpcik7CisKKwlwYWNrZWRfcmVmX2NhY2hlID0gZ2V0X3BhY2tlZF9yZWZfY2FjaGUocmVmcyk7CisJYWNxdWlyZV9wYWNrZWRfcmVmX2NhY2hlKHBhY2tlZF9yZWZfY2FjaGUpOworCXBhY2tlZF9kaXIgPSBnZXRfcGFja2VkX3JlZl9kaXIocGFja2VkX3JlZl9jYWNoZSk7CiAJaWYgKGJhc2UgJiYgKmJhc2UpIHsKIAkJcGFja2VkX2RpciA9IGZpbmRfY29udGFpbmluZ19kaXIocGFja2VkX2RpciwgYmFzZSwgMCk7Ci0JCWxvb3NlX2RpciA9IGZpbmRfY29udGFpbmluZ19kaXIobG9vc2VfZGlyLCBiYXNlLCAwKTsKIAl9CiAKIAlpZiAocGFja2VkX2RpciAmJiBsb29zZV9kaXIpIHsKIAkJc29ydF9yZWZfZGlyKHBhY2tlZF9kaXIpOwogCQlzb3J0X3JlZl9kaXIobG9vc2VfZGlyKTsKLQkJcmV0dmFsID0gZG9fZm9yX2VhY2hfcmVmX2luX2RpcnMoCi0JCQkJcGFja2VkX2RpciwgbG9vc2VfZGlyLAotCQkJCWJhc2UsIGZuLCB0cmltLCBmbGFncywgY2JfZGF0YSk7CisJCXJldHZhbCA9IGRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcnMoCisJCQkJcGFja2VkX2RpciwgbG9vc2VfZGlyLCBmbiwgY2JfZGF0YSk7CiAJfSBlbHNlIGlmIChwYWNrZWRfZGlyKSB7CiAJCXNvcnRfcmVmX2RpcihwYWNrZWRfZGlyKTsKLQkJcmV0dmFsID0gZG9fZm9yX2VhY2hfcmVmX2luX2RpcigKLQkJCQlwYWNrZWRfZGlyLCAwLAotCQkJCWJhc2UsIGZuLCB0cmltLCBmbGFncywgY2JfZGF0YSk7CisJCXJldHZhbCA9IGRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcigKKwkJCQlwYWNrZWRfZGlyLCAwLCBmbiwgY2JfZGF0YSk7CiAJfSBlbHNlIGlmIChsb29zZV9kaXIpIHsKIAkJc29ydF9yZWZfZGlyKGxvb3NlX2Rpcik7Ci0JCXJldHZhbCA9IGRvX2Zvcl9lYWNoX3JlZl9pbl9kaXIoCi0JCQkJbG9vc2VfZGlyLCAwLAotCQkJCWJhc2UsIGZuLCB0cmltLCBmbGFncywgY2JfZGF0YSk7CisJCXJldHZhbCA9IGRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcigKKwkJCQlsb29zZV9kaXIsIDAsIGZuLCBjYl9kYXRhKTsKIAl9CiAKKwlyZWxlYXNlX3BhY2tlZF9yZWZfY2FjaGUocGFja2VkX3JlZl9jYWNoZSk7CiAJcmV0dXJuIHJldHZhbDsKIH0KIAorLyoKKyAqIENhbGwgZm4gZm9yIGVhY2ggcmVmZXJlbmNlIGluIHRoZSBzcGVjaWZpZWQgcmVmX2NhY2hlIGZvciB3aGljaCB0aGUKKyAqIHJlZm5hbWUgYmVnaW5zIHdpdGggYmFzZS4gIElmIHRyaW0gaXMgbm9uLXplcm8sIHRoZW4gdHJpbSB0aGF0IG1hbnkKKyAqIGNoYXJhY3RlcnMgb2ZmIHRoZSBiZWdpbm5pbmcgb2YgZWFjaCByZWZuYW1lIGJlZm9yZSBwYXNzaW5nIHRoZQorICogcmVmbmFtZSB0byBmbi4gIGZsYWdzIGNhbiBiZSBET19GT1JfRUFDSF9JTkNMVURFX0JST0tFTiB0byBpbmNsdWRlCisgKiBicm9rZW4gcmVmZXJlbmNlcyBpbiB0aGUgaXRlcmF0aW9uLiAgSWYgZm4gZXZlciByZXR1cm5zIGEgbm9uLXplcm8KKyAqIHZhbHVlLCBzdG9wIHRoZSBpdGVyYXRpb24gYW5kIHJldHVybiB0aGF0IHZhbHVlOyBvdGhlcndpc2UsIHJldHVybgorICogMC4KKyAqLworc3RhdGljIGludCBkb19mb3JfZWFjaF9yZWYoc3RydWN0IHJlZl9jYWNoZSAqcmVmcywgY29uc3QgY2hhciAqYmFzZSwKKwkJCSAgIGVhY2hfcmVmX2ZuIGZuLCBpbnQgdHJpbSwgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQoreworCXN0cnVjdCByZWZfZW50cnlfY2IgZGF0YTsKKwlkYXRhLmJhc2UgPSBiYXNlOworCWRhdGEudHJpbSA9IHRyaW07CisJZGF0YS5mbGFncyA9IGZsYWdzOworCWRhdGEuZm4gPSBmbjsKKwlkYXRhLmNiX2RhdGEgPSBjYl9kYXRhOworCisJcmV0dXJuIGRvX2Zvcl9lYWNoX2VudHJ5KHJlZnMsIGJhc2UsIGRvX29uZV9yZWYsICZkYXRhKTsKK30KKwogc3RhdGljIGludCBkb19oZWFkX3JlZihjb25zdCBjaGFyICpzdWJtb2R1bGUsIGVhY2hfcmVmX2ZuIGZuLCB2b2lkICpjYl9kYXRhKQogewogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CkBAIC0xMzgwLDIzICsxNzU0LDIzIEBACiAKIGludCBmb3JfZWFjaF9yZWYoZWFjaF9yZWZfZm4gZm4sIHZvaWQgKmNiX2RhdGEpCiB7Ci0JcmV0dXJuIGRvX2Zvcl9lYWNoX3JlZihOVUxMLCAiIiwgZm4sIDAsIDAsIGNiX2RhdGEpOworCXJldHVybiBkb19mb3JfZWFjaF9yZWYoJnJlZl9jYWNoZSwgIiIsIGZuLCAwLCAwLCBjYl9kYXRhKTsKIH0KIAogaW50IGZvcl9lYWNoX3JlZl9zdWJtb2R1bGUoY29uc3QgY2hhciAqc3VibW9kdWxlLCBlYWNoX3JlZl9mbiBmbiwgdm9pZCAqY2JfZGF0YSkKIHsKLQlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmKHN1Ym1vZHVsZSwgIiIsIGZuLCAwLCAwLCBjYl9kYXRhKTsKKwlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmKGdldF9yZWZfY2FjaGUoc3VibW9kdWxlKSwgIiIsIGZuLCAwLCAwLCBjYl9kYXRhKTsKIH0KIAogaW50IGZvcl9lYWNoX3JlZl9pbihjb25zdCBjaGFyICpwcmVmaXgsIGVhY2hfcmVmX2ZuIGZuLCB2b2lkICpjYl9kYXRhKQogewotCXJldHVybiBkb19mb3JfZWFjaF9yZWYoTlVMTCwgcHJlZml4LCBmbiwgc3RybGVuKHByZWZpeCksIDAsIGNiX2RhdGEpOworCXJldHVybiBkb19mb3JfZWFjaF9yZWYoJnJlZl9jYWNoZSwgcHJlZml4LCBmbiwgc3RybGVuKHByZWZpeCksIDAsIGNiX2RhdGEpOwogfQogCiBpbnQgZm9yX2VhY2hfcmVmX2luX3N1Ym1vZHVsZShjb25zdCBjaGFyICpzdWJtb2R1bGUsIGNvbnN0IGNoYXIgKnByZWZpeCwKIAkJZWFjaF9yZWZfZm4gZm4sIHZvaWQgKmNiX2RhdGEpCiB7Ci0JcmV0dXJuIGRvX2Zvcl9lYWNoX3JlZihzdWJtb2R1bGUsIHByZWZpeCwgZm4sIHN0cmxlbihwcmVmaXgpLCAwLCBjYl9kYXRhKTsKKwlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmKGdldF9yZWZfY2FjaGUoc3VibW9kdWxlKSwgcHJlZml4LCBmbiwgc3RybGVuKHByZWZpeCksIDAsIGNiX2RhdGEpOwogfQogCiBpbnQgZm9yX2VhY2hfdGFnX3JlZihlYWNoX3JlZl9mbiBmbiwgdm9pZCAqY2JfZGF0YSkKQEAgLTE0MzEsNyArMTgwNSw3IEBACiAKIGludCBmb3JfZWFjaF9yZXBsYWNlX3JlZihlYWNoX3JlZl9mbiBmbiwgdm9pZCAqY2JfZGF0YSkKIHsKLQlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmKE5VTEwsICJyZWZzL3JlcGxhY2UvIiwgZm4sIDEzLCAwLCBjYl9kYXRhKTsKKwlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmKCZyZWZfY2FjaGUsICJyZWZzL3JlcGxhY2UvIiwgZm4sIDEzLCAwLCBjYl9kYXRhKTsKIH0KIAogaW50IGhlYWRfcmVmX25hbWVzcGFjZWQoZWFjaF9yZWZfZm4gZm4sIHZvaWQgKmNiX2RhdGEpCkBAIC0xNDU0LDcgKzE4MjgsNyBAQAogCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CiAJaW50IHJldDsKIAlzdHJidWZfYWRkZigmYnVmLCAiJXNyZWZzLyIsIGdldF9naXRfbmFtZXNwYWNlKCkpOwotCXJldCA9IGRvX2Zvcl9lYWNoX3JlZihOVUxMLCBidWYuYnVmLCBmbiwgMCwgMCwgY2JfZGF0YSk7CisJcmV0ID0gZG9fZm9yX2VhY2hfcmVmKCZyZWZfY2FjaGUsIGJ1Zi5idWYsIGZuLCAwLCAwLCBjYl9kYXRhKTsKIAlzdHJidWZfcmVsZWFzZSgmYnVmKTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTQ5Niw3ICsxODcwLDcgQEAKIAogaW50IGZvcl9lYWNoX3Jhd3JlZihlYWNoX3JlZl9mbiBmbiwgdm9pZCAqY2JfZGF0YSkKIHsKLQlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmKE5VTEwsICIiLCBmbiwgMCwKKwlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmKCZyZWZfY2FjaGUsICIiLCBmbiwgMCwKIAkJCSAgICAgICBET19GT1JfRUFDSF9JTkNMVURFX0JST0tFTiwgY2JfZGF0YSk7CiB9CiAKQEAgLTE3MDIsNyArMjA3Niw3IEBACiAJICogbmFtZSBpcyBhIHByb3BlciBwcmVmaXggb2Ygb3VyIHJlZm5hbWUuCiAJICovCiAJaWYgKG1pc3NpbmcgJiYKLQkgICAgICFpc19yZWZuYW1lX2F2YWlsYWJsZShyZWZuYW1lLCBOVUxMLCBnZXRfcGFja2VkX3JlZnMoZ2V0X3JlZl9jYWNoZShOVUxMKSkpKSB7CisJICAgICAhaXNfcmVmbmFtZV9hdmFpbGFibGUocmVmbmFtZSwgTlVMTCwgZ2V0X3BhY2tlZF9yZWZzKCZyZWZfY2FjaGUpKSkgewogCQlsYXN0X2Vycm5vID0gRU5PVERJUjsKIAkJZ290byBlcnJvcl9yZXR1cm47CiAJfQpAQCAtMTc1NCw0OCArMjEyOCwzMjUgQEAKIAlyZXR1cm4gbG9ja19yZWZfc2hhMV9iYXNpYyhyZWZuYW1lLCBvbGRfc2hhMSwgZmxhZ3MsIE5VTEwpOwogfQogCi1zdHJ1Y3QgcmVwYWNrX3dpdGhvdXRfcmVmX3NiIHsKLQljb25zdCBjaGFyICpyZWZuYW1lOwotCWludCBmZDsKLX07Ci0KLXN0YXRpYyBpbnQgcmVwYWNrX3dpdGhvdXRfcmVmX2ZuKGNvbnN0IGNoYXIgKnJlZm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsCi0JCQkJIGludCBmbGFncywgdm9pZCAqY2JfZGF0YSkKKy8qCisgKiBXcml0ZSBhbiBlbnRyeSB0byB0aGUgcGFja2VkLXJlZnMgZmlsZSBmb3IgdGhlIHNwZWNpZmllZCByZWZuYW1lLgorICogSWYgcGVlbGVkIGlzIG5vbi1OVUxMLCB3cml0ZSBpdCBhcyB0aGUgZW50cnkncyBwZWVsZWQgdmFsdWUuCisgKi8KK3N0YXRpYyB2b2lkIHdyaXRlX3BhY2tlZF9lbnRyeShpbnQgZmQsIGNoYXIgKnJlZm5hbWUsIHVuc2lnbmVkIGNoYXIgKnNoYTEsCisJCQkgICAgICAgdW5zaWduZWQgY2hhciAqcGVlbGVkKQogewotCXN0cnVjdCByZXBhY2tfd2l0aG91dF9yZWZfc2IgKmRhdGEgPSBjYl9kYXRhOwogCWNoYXIgbGluZVtQQVRIX01BWCArIDEwMF07CiAJaW50IGxlbjsKIAotCWlmICghc3RyY21wKGRhdGEtPnJlZm5hbWUsIHJlZm5hbWUpKQotCQlyZXR1cm4gMDsKIAlsZW4gPSBzbnByaW50ZihsaW5lLCBzaXplb2YobGluZSksICIlcyAlc1xuIiwKIAkJICAgICAgIHNoYTFfdG9faGV4KHNoYTEpLCByZWZuYW1lKTsKIAkvKiB0aGlzIHNob3VsZCBub3QgaGFwcGVuIGJ1dCBqdXN0IGJlaW5nIGRlZmVuc2l2ZSAqLwogCWlmIChsZW4gPiBzaXplb2YobGluZSkpCiAJCWRpZSgidG9vIGxvbmcgYSByZWZuYW1lICclcyciLCByZWZuYW1lKTsKLQl3cml0ZV9vcl9kaWUoZGF0YS0+ZmQsIGxpbmUsIGxlbik7CisJd3JpdGVfb3JfZGllKGZkLCBsaW5lLCBsZW4pOworCisJaWYgKHBlZWxlZCkgeworCQlpZiAoc25wcmludGYobGluZSwgc2l6ZW9mKGxpbmUpLCAiXiVzXG4iLAorCQkJICAgICBzaGExX3RvX2hleChwZWVsZWQpKSAhPSBQRUVMRURfTElORV9MRU5HVEgpCisJCQlkaWUoImludGVybmFsIGVycm9yIik7CisJCXdyaXRlX29yX2RpZShmZCwgbGluZSwgUEVFTEVEX0xJTkVfTEVOR1RIKTsKKwl9Cit9CisKKy8qCisgKiBBbiBlYWNoX3JlZl9lbnRyeV9mbiB0aGF0IHdyaXRlcyB0aGUgZW50cnkgdG8gYSBwYWNrZWQtcmVmcyBmaWxlLgorICovCitzdGF0aWMgaW50IHdyaXRlX3BhY2tlZF9lbnRyeV9mbihzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSwgdm9pZCAqY2JfZGF0YSkKK3sKKwlpbnQgKmZkID0gY2JfZGF0YTsKKwllbnVtIHBlZWxfc3RhdHVzIHBlZWxfc3RhdHVzID0gcGVlbF9lbnRyeShlbnRyeSwgMCk7CisKKwlpZiAocGVlbF9zdGF0dXMgIT0gUEVFTF9QRUVMRUQgJiYgcGVlbF9zdGF0dXMgIT0gUEVFTF9OT05fVEFHKQorCQllcnJvcigiaW50ZXJuYWwgZXJyb3I6ICVzIGlzIG5vdCBhIHZhbGlkIHBhY2tlZCByZWZlcmVuY2UhIiwKKwkJICAgICAgZW50cnktPm5hbWUpOworCXdyaXRlX3BhY2tlZF9lbnRyeSgqZmQsIGVudHJ5LT5uYW1lLCBlbnRyeS0+dS52YWx1ZS5zaGExLAorCQkJICAgcGVlbF9zdGF0dXMgPT0gUEVFTF9QRUVMRUQgPworCQkJICAgZW50cnktPnUudmFsdWUucGVlbGVkIDogTlVMTCk7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgbG9ja19maWxlIHBhY2tsb2NrOworaW50IGxvY2tfcGFja2VkX3JlZnMoaW50IGZsYWdzKQoreworCXN0cnVjdCBwYWNrZWRfcmVmX2NhY2hlICpwYWNrZWRfcmVmX2NhY2hlOworCisJaWYgKGhvbGRfbG9ja19maWxlX2Zvcl91cGRhdGUoJnBhY2tsb2NrLCBnaXRfcGF0aCgicGFja2VkLXJlZnMiKSwgZmxhZ3MpIDwgMCkKKwkJcmV0dXJuIC0xOworCS8qCisJICogR2V0IHRoZSBjdXJyZW50IHBhY2tlZC1yZWZzIHdoaWxlIGhvbGRpbmcgdGhlIGxvY2suICBJZiB0aGUKKwkgKiBwYWNrZWQtcmVmcyBmaWxlIGhhcyBiZWVuIG1vZGlmaWVkIHNpbmNlIHdlIGxhc3QgcmVhZCBpdCwKKwkgKiB0aGlzIHdpbGwgYXV0b21hdGljYWxseSBpbnZhbGlkYXRlIHRoZSBjYWNoZSBhbmQgcmUtcmVhZAorCSAqIHRoZSBwYWNrZWQtcmVmcyBmaWxlLgorCSAqLworCXBhY2tlZF9yZWZfY2FjaGUgPSBnZXRfcGFja2VkX3JlZl9jYWNoZSgmcmVmX2NhY2hlKTsKKwlwYWNrZWRfcmVmX2NhY2hlLT5sb2NrID0gJnBhY2tsb2NrOworCS8qIEluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50IHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBmcmVlZDogKi8KKwlhY3F1aXJlX3BhY2tlZF9yZWZfY2FjaGUocGFja2VkX3JlZl9jYWNoZSk7CisJcmV0dXJuIDA7Cit9CisKK2ludCBjb21taXRfcGFja2VkX3JlZnModm9pZCkKK3sKKwlzdHJ1Y3QgcGFja2VkX3JlZl9jYWNoZSAqcGFja2VkX3JlZl9jYWNoZSA9CisJCWdldF9wYWNrZWRfcmVmX2NhY2hlKCZyZWZfY2FjaGUpOworCWludCBlcnJvciA9IDA7CisKKwlpZiAoIXBhY2tlZF9yZWZfY2FjaGUtPmxvY2spCisJCWRpZSgiaW50ZXJuYWwgZXJyb3I6IHBhY2tlZC1yZWZzIG5vdCBsb2NrZWQiKTsKKwl3cml0ZV9vcl9kaWUocGFja2VkX3JlZl9jYWNoZS0+bG9jay0+ZmQsCisJCSAgICAgUEFDS0VEX1JFRlNfSEVBREVSLCBzdHJsZW4oUEFDS0VEX1JFRlNfSEVBREVSKSk7CisKKwlkb19mb3JfZWFjaF9lbnRyeV9pbl9kaXIoZ2V0X3BhY2tlZF9yZWZfZGlyKHBhY2tlZF9yZWZfY2FjaGUpLAorCQkJCSAwLCB3cml0ZV9wYWNrZWRfZW50cnlfZm4sCisJCQkJICZwYWNrZWRfcmVmX2NhY2hlLT5sb2NrLT5mZCk7CisJaWYgKGNvbW1pdF9sb2NrX2ZpbGUocGFja2VkX3JlZl9jYWNoZS0+bG9jaykpCisJCWVycm9yID0gLTE7CisJcGFja2VkX3JlZl9jYWNoZS0+bG9jayA9IE5VTEw7CisJcmVsZWFzZV9wYWNrZWRfcmVmX2NhY2hlKHBhY2tlZF9yZWZfY2FjaGUpOworCXJldHVybiBlcnJvcjsKK30KKwordm9pZCByb2xsYmFja19wYWNrZWRfcmVmcyh2b2lkKQoreworCXN0cnVjdCBwYWNrZWRfcmVmX2NhY2hlICpwYWNrZWRfcmVmX2NhY2hlID0KKwkJZ2V0X3BhY2tlZF9yZWZfY2FjaGUoJnJlZl9jYWNoZSk7CisKKwlpZiAoIXBhY2tlZF9yZWZfY2FjaGUtPmxvY2spCisJCWRpZSgiaW50ZXJuYWwgZXJyb3I6IHBhY2tlZC1yZWZzIG5vdCBsb2NrZWQiKTsKKwlyb2xsYmFja19sb2NrX2ZpbGUocGFja2VkX3JlZl9jYWNoZS0+bG9jayk7CisJcGFja2VkX3JlZl9jYWNoZS0+bG9jayA9IE5VTEw7CisJcmVsZWFzZV9wYWNrZWRfcmVmX2NhY2hlKHBhY2tlZF9yZWZfY2FjaGUpOworCWNsZWFyX3BhY2tlZF9yZWZfY2FjaGUoJnJlZl9jYWNoZSk7Cit9CisKK3N0cnVjdCByZWZfdG9fcHJ1bmUgeworCXN0cnVjdCByZWZfdG9fcHJ1bmUgKm5leHQ7CisJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKKwljaGFyIG5hbWVbRkxFWF9BUlJBWV07Cit9OworCitzdHJ1Y3QgcGFja19yZWZzX2NiX2RhdGEgeworCXVuc2lnbmVkIGludCBmbGFnczsKKwlzdHJ1Y3QgcmVmX2RpciAqcGFja2VkX3JlZnM7CisJc3RydWN0IHJlZl90b19wcnVuZSAqcmVmX3RvX3BydW5lOworfTsKKworLyoKKyAqIEFuIGVhY2hfcmVmX2VudHJ5X2ZuIHRoYXQgaXMgcnVuIG92ZXIgbG9vc2UgcmVmZXJlbmNlcyBvbmx5LiAgSWYKKyAqIHRoZSBsb29zZSByZWZlcmVuY2UgY2FuIGJlIHBhY2tlZCwgYWRkIGFuIGVudHJ5IGluIHRoZSBwYWNrZWQgcmVmCisgKiBjYWNoZS4gIElmIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIHBydW5lZCwgYWxzbyBhZGQgaXQgdG8KKyAqIHJlZl90b19wcnVuZSBpbiB0aGUgcGFja19yZWZzX2NiX2RhdGEuCisgKi8KK3N0YXRpYyBpbnQgcGFja19pZl9wb3NzaWJsZV9mbihzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSwgdm9pZCAqY2JfZGF0YSkKK3sKKwlzdHJ1Y3QgcGFja19yZWZzX2NiX2RhdGEgKmNiID0gY2JfZGF0YTsKKwllbnVtIHBlZWxfc3RhdHVzIHBlZWxfc3RhdHVzOworCXN0cnVjdCByZWZfZW50cnkgKnBhY2tlZF9lbnRyeTsKKwlpbnQgaXNfdGFnX3JlZiA9ICFwcmVmaXhjbXAoZW50cnktPm5hbWUsICJyZWZzL3RhZ3MvIik7CisKKwkvKiBBTFdBWVMgcGFjayB0YWdzICovCisJaWYgKCEoY2ItPmZsYWdzICYgUEFDS19SRUZTX0FMTCkgJiYgIWlzX3RhZ19yZWYpCisJCXJldHVybiAwOworCisJLyogRG8gbm90IHBhY2sgc3ltYm9saWMgb3IgYnJva2VuIHJlZnM6ICovCisJaWYgKChlbnRyeS0+ZmxhZyAmIFJFRl9JU1NZTVJFRikgfHwgIXJlZl9yZXNvbHZlc190b19vYmplY3QoZW50cnkpKQorCQlyZXR1cm4gMDsKKworCS8qIEFkZCBhIHBhY2tlZCByZWYgY2FjaGUgZW50cnkgZXF1aXZhbGVudCB0byB0aGUgbG9vc2UgZW50cnkuICovCisJcGVlbF9zdGF0dXMgPSBwZWVsX2VudHJ5KGVudHJ5LCAxKTsKKwlpZiAocGVlbF9zdGF0dXMgIT0gUEVFTF9QRUVMRUQgJiYgcGVlbF9zdGF0dXMgIT0gUEVFTF9OT05fVEFHKQorCQlkaWUoImludGVybmFsIGVycm9yIHBlZWxpbmcgcmVmZXJlbmNlICVzICglcykiLAorCQkgICAgZW50cnktPm5hbWUsIHNoYTFfdG9faGV4KGVudHJ5LT51LnZhbHVlLnNoYTEpKTsKKwlwYWNrZWRfZW50cnkgPSBmaW5kX3JlZihjYi0+cGFja2VkX3JlZnMsIGVudHJ5LT5uYW1lKTsKKwlpZiAocGFja2VkX2VudHJ5KSB7CisJCS8qIE92ZXJ3cml0ZSBleGlzdGluZyBwYWNrZWQgZW50cnkgd2l0aCBpbmZvIGZyb20gbG9vc2UgZW50cnkgKi8KKwkJcGFja2VkX2VudHJ5LT5mbGFnID0gUkVGX0lTUEFDS0VEIHwgUkVGX0tOT1dTX1BFRUxFRDsKKwkJaGFzaGNweShwYWNrZWRfZW50cnktPnUudmFsdWUuc2hhMSwgZW50cnktPnUudmFsdWUuc2hhMSk7CisJfSBlbHNlIHsKKwkJcGFja2VkX2VudHJ5ID0gY3JlYXRlX3JlZl9lbnRyeShlbnRyeS0+bmFtZSwgZW50cnktPnUudmFsdWUuc2hhMSwKKwkJCQkJCVJFRl9JU1BBQ0tFRCB8IFJFRl9LTk9XU19QRUVMRUQsIDApOworCQlhZGRfcmVmKGNiLT5wYWNrZWRfcmVmcywgcGFja2VkX2VudHJ5KTsKKwl9CisJaGFzaGNweShwYWNrZWRfZW50cnktPnUudmFsdWUucGVlbGVkLCBlbnRyeS0+dS52YWx1ZS5wZWVsZWQpOworCisJLyogU2NoZWR1bGUgdGhlIGxvb3NlIHJlZmVyZW5jZSBmb3IgcHJ1bmluZyBpZiByZXF1ZXN0ZWQuICovCisJaWYgKChjYi0+ZmxhZ3MgJiBQQUNLX1JFRlNfUFJVTkUpKSB7CisJCWludCBuYW1lbGVuID0gc3RybGVuKGVudHJ5LT5uYW1lKSArIDE7CisJCXN0cnVjdCByZWZfdG9fcHJ1bmUgKm4gPSB4Y2FsbG9jKDEsIHNpemVvZigqbikgKyBuYW1lbGVuKTsKKwkJaGFzaGNweShuLT5zaGExLCBlbnRyeS0+dS52YWx1ZS5zaGExKTsKKwkJc3RyY3B5KG4tPm5hbWUsIGVudHJ5LT5uYW1lKTsKKwkJbi0+bmV4dCA9IGNiLT5yZWZfdG9fcHJ1bmU7CisJCWNiLT5yZWZfdG9fcHJ1bmUgPSBuOworCX0KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFJlbW92ZSBlbXB0eSBwYXJlbnRzLCBidXQgc3BhcmUgcmVmcy8gYW5kIGltbWVkaWF0ZSBzdWJkaXJzLgorICogTm90ZTogbXVuZ2VzICpuYW1lLgorICovCitzdGF0aWMgdm9pZCB0cnlfcmVtb3ZlX2VtcHR5X3BhcmVudHMoY2hhciAqbmFtZSkKK3sKKwljaGFyICpwLCAqcTsKKwlpbnQgaTsKKwlwID0gbmFtZTsKKwlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7IC8qIHJlZnMve2hlYWRzLHRhZ3MsLi4ufS8gKi8KKwkJd2hpbGUgKCpwICYmICpwICE9ICcvJykKKwkJCXArKzsKKwkJLyogdG9sZXJhdGUgZHVwbGljYXRlIHNsYXNoZXM7IHNlZSBjaGVja19yZWZuYW1lX2Zvcm1hdCgpICovCisJCXdoaWxlICgqcCA9PSAnLycpCisJCQlwKys7CisJfQorCWZvciAocSA9IHA7ICpxOyBxKyspCisJCTsKKwl3aGlsZSAoMSkgeworCQl3aGlsZSAocSA+IHAgJiYgKnEgIT0gJy8nKQorCQkJcS0tOworCQl3aGlsZSAocSA+IHAgJiYgKihxLTEpID09ICcvJykKKwkJCXEtLTsKKwkJaWYgKHEgPT0gcCkKKwkJCWJyZWFrOworCQkqcSA9ICdcMCc7CisJCWlmIChybWRpcihnaXRfcGF0aCgiJXMiLCBuYW1lKSkpCisJCQlicmVhazsKKwl9Cit9CisKKy8qIG1ha2Ugc3VyZSBub2JvZHkgdG91Y2hlZCB0aGUgcmVmLCBhbmQgdW5saW5rICovCitzdGF0aWMgdm9pZCBwcnVuZV9yZWYoc3RydWN0IHJlZl90b19wcnVuZSAqcikKK3sKKwlzdHJ1Y3QgcmVmX2xvY2sgKmxvY2sgPSBsb2NrX3JlZl9zaGExKHItPm5hbWUgKyA1LCByLT5zaGExKTsKKworCWlmIChsb2NrKSB7CisJCXVubGlua19vcl93YXJuKGdpdF9wYXRoKCIlcyIsIHItPm5hbWUpKTsKKwkJdW5sb2NrX3JlZihsb2NrKTsKKwkJdHJ5X3JlbW92ZV9lbXB0eV9wYXJlbnRzKHItPm5hbWUpOworCX0KK30KKworc3RhdGljIHZvaWQgcHJ1bmVfcmVmcyhzdHJ1Y3QgcmVmX3RvX3BydW5lICpyKQoreworCXdoaWxlIChyKSB7CisJCXBydW5lX3JlZihyKTsKKwkJciA9IHItPm5leHQ7CisJfQorfQorCitpbnQgcGFja19yZWZzKHVuc2lnbmVkIGludCBmbGFncykKK3sKKwlzdHJ1Y3QgcGFja19yZWZzX2NiX2RhdGEgY2JkYXRhOworCisJbWVtc2V0KCZjYmRhdGEsIDAsIHNpemVvZihjYmRhdGEpKTsKKwljYmRhdGEuZmxhZ3MgPSBmbGFnczsKKworCWxvY2tfcGFja2VkX3JlZnMoTE9DS19ESUVfT05fRVJST1IpOworCWNiZGF0YS5wYWNrZWRfcmVmcyA9IGdldF9wYWNrZWRfcmVmcygmcmVmX2NhY2hlKTsKKworCWRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcihnZXRfbG9vc2VfcmVmcygmcmVmX2NhY2hlKSwgMCwKKwkJCQkgcGFja19pZl9wb3NzaWJsZV9mbiwgJmNiZGF0YSk7CisKKwlpZiAoY29tbWl0X3BhY2tlZF9yZWZzKCkpCisJCWRpZV9lcnJubygidW5hYmxlIHRvIG92ZXJ3cml0ZSBvbGQgcmVmLXBhY2sgZmlsZSIpOworCisJcHJ1bmVfcmVmcyhjYmRhdGEucmVmX3RvX3BydW5lKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIElmIGVudHJ5IGlzIG5vIGxvbmdlciBuZWVkZWQgaW4gcGFja2VkLXJlZnMsIGFkZCBpdCB0byB0aGUgc3RyaW5nCisgKiBsaXN0IHBvaW50ZWQgdG8gYnkgY2JfZGF0YS4gIFJlYXNvbnMgZm9yIGRlbGV0aW5nIGVudHJpZXM6CisgKgorICogLSBFbnRyeSBpcyBicm9rZW4uCisgKiAtIEVudHJ5IGlzIG92ZXJyaWRkZW4gYnkgYSBsb29zZSByZWYuCisgKiAtIEVudHJ5IGRvZXMgbm90IHBvaW50IGF0IGEgdmFsaWQgb2JqZWN0LgorICoKKyAqIEluIHRoZSBmaXJzdCBhbmQgdGhpcmQgY2FzZXMsIGFsc28gZW1pdCBhbiBlcnJvciBtZXNzYWdlIGJlY2F1c2UgdGhlc2UKKyAqIGFyZSBpbmRpY2F0aW9ucyBvZiByZXBvc2l0b3J5IGNvcnJ1cHRpb24uCisgKi8KK3N0YXRpYyBpbnQgY3VyYXRlX3BhY2tlZF9yZWZfZm4oc3RydWN0IHJlZl9lbnRyeSAqZW50cnksIHZvaWQgKmNiX2RhdGEpCit7CisJc3RydWN0IHN0cmluZ19saXN0ICpyZWZzX3RvX2RlbGV0ZSA9IGNiX2RhdGE7CisKKwlpZiAoZW50cnktPmZsYWcgJiBSRUZfSVNCUk9LRU4pIHsKKwkJLyogVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHRvIHBhY2tlZCByZWZzLiAqLworCQllcnJvcigiJXMgaXMgYnJva2VuISIsIGVudHJ5LT5uYW1lKTsKKwkJc3RyaW5nX2xpc3RfYXBwZW5kKHJlZnNfdG9fZGVsZXRlLCBlbnRyeS0+bmFtZSk7CisJCXJldHVybiAwOworCX0KKwlpZiAoIWhhc19zaGExX2ZpbGUoZW50cnktPnUudmFsdWUuc2hhMSkpIHsKKwkJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKKwkJaW50IGZsYWdzOworCisJCWlmIChyZWFkX3JlZl9mdWxsKGVudHJ5LT5uYW1lLCBzaGExLCAwLCAmZmxhZ3MpKQorCQkJLyogV2Ugc2hvdWxkIGF0IGxlYXN0IGhhdmUgZm91bmQgdGhlIHBhY2tlZCByZWYuICovCisJCQlkaWUoIkludGVybmFsIGVycm9yIik7CisJCWlmICgoZmxhZ3MgJiBSRUZfSVNTWU1SRUYpIHx8ICEoZmxhZ3MgJiBSRUZfSVNQQUNLRUQpKSB7CisJCQkvKgorCQkJICogVGhpcyBwYWNrZWQgcmVmZXJlbmNlIGlzIG92ZXJyaWRkZW4gYnkgYQorCQkJICogbG9vc2UgcmVmZXJlbmNlLCBzbyBpdCBpcyBPSyB0aGF0IGl0cyB2YWx1ZQorCQkJICogaXMgbm8gbG9uZ2VyIHZhbGlkOyBmb3IgZXhhbXBsZSwgaXQgbWlnaHQKKwkJCSAqIHJlZmVyIHRvIGFuIG9iamVjdCB0aGF0IGhhcyBiZWVuIGdhcmJhZ2UKKwkJCSAqIGNvbGxlY3RlZC4gIEZvciB0aGlzIHB1cnBvc2Ugd2UgZG9uJ3QgZXZlbgorCQkJICogY2FyZSB3aGV0aGVyIHRoZSBsb29zZSByZWZlcmVuY2UgaXRzZWxmIGlzCisJCQkgKiBpbnZhbGlkLCBicm9rZW4sIHN5bWJvbGljLCBldGMuICBTaWxlbnRseQorCQkJICogcmVtb3ZlIHRoZSBwYWNrZWQgcmVmZXJlbmNlLgorCQkJICovCisJCQlzdHJpbmdfbGlzdF9hcHBlbmQocmVmc190b19kZWxldGUsIGVudHJ5LT5uYW1lKTsKKwkJCXJldHVybiAwOworCQl9CisJCS8qCisJCSAqIFRoZXJlIGlzIG5vIG92ZXJyaWRpbmcgbG9vc2UgcmVmZXJlbmNlLCBzbyB0aGUgZmFjdAorCQkgKiB0aGF0IHRoaXMgcmVmZXJlbmNlIGRvZXNuJ3QgcmVmZXIgdG8gYSB2YWxpZCBvYmplY3QKKwkJICogaW5kaWNhdGVzIHNvbWUga2luZCBvZiByZXBvc2l0b3J5IGNvcnJ1cHRpb24uCisJCSAqIFJlcG9ydCB0aGUgcHJvYmxlbSwgdGhlbiBvbWl0IHRoZSByZWZlcmVuY2UgZnJvbQorCQkgKiB0aGUgb3V0cHV0LgorCQkgKi8KKwkJZXJyb3IoIiVzIGRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgb2JqZWN0ISIsIGVudHJ5LT5uYW1lKTsKKwkJc3RyaW5nX2xpc3RfYXBwZW5kKHJlZnNfdG9fZGVsZXRlLCBlbnRyeS0+bmFtZSk7CisJCXJldHVybiAwOworCX0KKworCXJldHVybiAwOworfQogCiBzdGF0aWMgaW50IHJlcGFja193aXRob3V0X3JlZihjb25zdCBjaGFyICpyZWZuYW1lKQogewotCXN0cnVjdCByZXBhY2tfd2l0aG91dF9yZWZfc2IgZGF0YTsKLQlzdHJ1Y3QgcmVmX2NhY2hlICpyZWZzID0gZ2V0X3JlZl9jYWNoZShOVUxMKTsKLQlzdHJ1Y3QgcmVmX2RpciAqcGFja2VkID0gZ2V0X3BhY2tlZF9yZWZzKHJlZnMpOwotCWlmIChmaW5kX3JlZihwYWNrZWQsIHJlZm5hbWUpID09IE5VTEwpCi0JCXJldHVybiAwOwotCWRhdGEucmVmbmFtZSA9IHJlZm5hbWU7Ci0JZGF0YS5mZCA9IGhvbGRfbG9ja19maWxlX2Zvcl91cGRhdGUoJnBhY2tsb2NrLCBnaXRfcGF0aCgicGFja2VkLXJlZnMiKSwgMCk7Ci0JaWYgKGRhdGEuZmQgPCAwKSB7CisJc3RydWN0IHJlZl9kaXIgKnBhY2tlZDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgcmVmc190b19kZWxldGUgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqcmVmX3RvX2RlbGV0ZTsKKworCWlmICghZ2V0X3BhY2tlZF9yZWYocmVmbmFtZSkpCisJCXJldHVybiAwOyAvKiByZWZuYW1lIGRvZXMgbm90IGV4aXN0IGluIHBhY2tlZCByZWZzICovCisKKwlpZiAobG9ja19wYWNrZWRfcmVmcygwKSkgewogCQl1bmFibGVfdG9fbG9ja19lcnJvcihnaXRfcGF0aCgicGFja2VkLXJlZnMiKSwgZXJybm8pOwogCQlyZXR1cm4gZXJyb3IoImNhbm5vdCBkZWxldGUgJyVzJyBmcm9tIHBhY2tlZCByZWZzIiwgcmVmbmFtZSk7CiAJfQotCWNsZWFyX3BhY2tlZF9yZWZfY2FjaGUocmVmcyk7Ci0JcGFja2VkID0gZ2V0X3BhY2tlZF9yZWZzKHJlZnMpOwotCWRvX2Zvcl9lYWNoX3JlZl9pbl9kaXIocGFja2VkLCAwLCAiIiwgcmVwYWNrX3dpdGhvdXRfcmVmX2ZuLCAwLCAwLCAmZGF0YSk7Ci0JcmV0dXJuIGNvbW1pdF9sb2NrX2ZpbGUoJnBhY2tsb2NrKTsKKwlwYWNrZWQgPSBnZXRfcGFja2VkX3JlZnMoJnJlZl9jYWNoZSk7CisKKwkvKiBSZW1vdmUgcmVmbmFtZSBmcm9tIHRoZSBjYWNoZTogKi8KKwlpZiAocmVtb3ZlX2VudHJ5KHBhY2tlZCwgcmVmbmFtZSkgPT0gLTEpIHsKKwkJLyoKKwkJICogVGhlIHBhY2tlZCBlbnRyeSBkaXNhcHBlYXJlZCB3aGlsZSB3ZSB3ZXJlCisJCSAqIGFjcXVpcmluZyB0aGUgbG9jay4KKwkJICovCisJCXJvbGxiYWNrX3BhY2tlZF9yZWZzKCk7CisJCXJldHVybiAwOworCX0KKworCS8qIFJlbW92ZSBhbnkgb3RoZXIgYWNjdW11bGF0ZWQgY3J1ZnQ6ICovCisJZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlyKHBhY2tlZCwgMCwgY3VyYXRlX3BhY2tlZF9yZWZfZm4sICZyZWZzX3RvX2RlbGV0ZSk7CisJZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShyZWZfdG9fZGVsZXRlLCAmcmVmc190b19kZWxldGUpIHsKKwkJaWYgKHJlbW92ZV9lbnRyeShwYWNrZWQsIHJlZl90b19kZWxldGUtPnN0cmluZykgPT0gLTEpCisJCQlkaWUoImludGVybmFsIGVycm9yIik7CisJfQorCisJLyogV3JpdGUgd2hhdCByZW1haW5zOiAqLworCXJldHVybiBjb21taXRfcGFja2VkX3JlZnMoKTsKIH0KIAogaW50IGRlbGV0ZV9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IGRlbG9wdCkKQEAgLTE4MjMsNyArMjQ3NCw3IEBACiAJcmV0IHw9IHJlcGFja193aXRob3V0X3JlZihsb2NrLT5yZWZfbmFtZSk7CiAKIAl1bmxpbmtfb3Jfd2FybihnaXRfcGF0aCgibG9ncy8lcyIsIGxvY2stPnJlZl9uYW1lKSk7Ci0JaW52YWxpZGF0ZV9yZWZfY2FjaGUoTlVMTCk7CisJY2xlYXJfbG9vc2VfcmVmX2NhY2hlKCZyZWZfY2FjaGUpOwogCXVubG9ja19yZWYobG9jayk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTE4NDUsNyArMjQ5Niw2IEBACiAJc3RydWN0IHN0YXQgbG9naW5mbzsKIAlpbnQgbG9nID0gIWxzdGF0KGdpdF9wYXRoKCJsb2dzLyVzIiwgb2xkcmVmbmFtZSksICZsb2dpbmZvKTsKIAljb25zdCBjaGFyICpzeW1yZWYgPSBOVUxMOwotCXN0cnVjdCByZWZfY2FjaGUgKnJlZnMgPSBnZXRfcmVmX2NhY2hlKE5VTEwpOwogCiAJaWYgKGxvZyAmJiBTX0lTTE5LKGxvZ2luZm8uc3RfbW9kZSkpCiAJCXJldHVybiBlcnJvcigicmVmbG9nIGZvciAlcyBpcyBhIHN5bWxpbmsiLCBvbGRyZWZuYW1lKTsKQEAgLTE4NTcsMTAgKzI1MDcsMTAgQEAKIAlpZiAoIXN5bXJlZikKIAkJcmV0dXJuIGVycm9yKCJyZWZuYW1lICVzIG5vdCBmb3VuZCIsIG9sZHJlZm5hbWUpOwogCi0JaWYgKCFpc19yZWZuYW1lX2F2YWlsYWJsZShuZXdyZWZuYW1lLCBvbGRyZWZuYW1lLCBnZXRfcGFja2VkX3JlZnMocmVmcykpKQorCWlmICghaXNfcmVmbmFtZV9hdmFpbGFibGUobmV3cmVmbmFtZSwgb2xkcmVmbmFtZSwgZ2V0X3BhY2tlZF9yZWZzKCZyZWZfY2FjaGUpKSkKIAkJcmV0dXJuIDE7CiAKLQlpZiAoIWlzX3JlZm5hbWVfYXZhaWxhYmxlKG5ld3JlZm5hbWUsIG9sZHJlZm5hbWUsIGdldF9sb29zZV9yZWZzKHJlZnMpKSkKKwlpZiAoIWlzX3JlZm5hbWVfYXZhaWxhYmxlKG5ld3JlZm5hbWUsIG9sZHJlZm5hbWUsIGdldF9sb29zZV9yZWZzKCZyZWZfY2FjaGUpKSkKIAkJcmV0dXJuIDE7CiAKIAlpZiAobG9nICYmIHJlbmFtZShnaXRfcGF0aCgibG9ncy8lcyIsIG9sZHJlZm5hbWUpLCBnaXRfcGF0aChUTVBfUkVOQU1FRF9MT0cpKSkKQEAgLTIxMTYsNyArMjc2Niw3IEBACiAJCXVubG9ja19yZWYobG9jayk7CiAJCXJldHVybiAtMTsKIAl9Ci0JY2xlYXJfbG9vc2VfcmVmX2NhY2hlKGdldF9yZWZfY2FjaGUoTlVMTCkpOworCWNsZWFyX2xvb3NlX3JlZl9jYWNoZSgmcmVmX2NhY2hlKTsKIAlpZiAobG9nX3JlZl93cml0ZShsb2NrLT5yZWZfbmFtZSwgbG9jay0+b2xkX3NoYTEsIHNoYTEsIGxvZ21zZykgPCAwIHx8CiAJICAgIChzdHJjbXAobG9jay0+cmVmX25hbWUsIGxvY2stPm9yaWdfcmVmX25hbWUpICYmCiAJICAgICBsb2dfcmVmX3dyaXRlKGxvY2stPm9yaWdfcmVmX25hbWUsIGxvY2stPm9sZF9zaGExLCBzaGExLCBsb2dtc2cpIDwgMCkpIHsKZGlmZiAtLWdpdCBhL3JlZnMuaCBiL3JlZnMuaAppbmRleCBhMzVlYWZjLi45ZTVkYjNhIDEwMDY0NAotLS0gYS9yZWZzLmgKKysrIGIvcmVmcy5oCkBAIC0xMCwxOCArMTAsNDEgQEAKIAlpbnQgZm9yY2Vfd3JpdGU7CiB9OwogCisvKgorICogQml0IHZhbHVlcyBzZXQgaW4gdGhlIGZsYWdzIGFyZ3VtZW50IHBhc3NlZCB0byBlYWNoX3JlZl9mbigpOgorICovCisKKy8qIFJlZmVyZW5jZSBpcyBhIHN5bWJvbGljIHJlZmVyZW5jZS4gKi8KICNkZWZpbmUgUkVGX0lTU1lNUkVGIDB4MDEKKworLyogUmVmZXJlbmNlIGlzIGEgcGFja2VkIHJlZmVyZW5jZS4gKi8KICNkZWZpbmUgUkVGX0lTUEFDS0VEIDB4MDIKKworLyoKKyAqIFJlZmVyZW5jZSBjYW5ub3QgYmUgcmVzb2x2ZWQgdG8gYW4gb2JqZWN0IG5hbWU6IGRhbmdsaW5nIHN5bWJvbGljCisgKiByZWZlcmVuY2UgKGRpcmVjdGx5IG9yIGluZGlyZWN0bHkpLCBjb3JydXB0IHJlZmVyZW5jZSBmaWxlLCBvcgorICogc3ltYm9saWMgcmVmZXJlbmNlIHJlZmVycyB0byBpbGwtZm9ybWF0dGVkIHJlZmVyZW5jZSBuYW1lLgorICovCiAjZGVmaW5lIFJFRl9JU0JST0tFTiAweDA0CiAKIC8qCi0gKiBDYWxscyB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIGZvciBlYWNoIHJlZiBmaWxlIHVudGlsIGl0IHJldHVybnMKLSAqIG5vbnplcm8sIGFuZCByZXR1cm5zIHRoZSB2YWx1ZS4gIFBsZWFzZSBub3RlIHRoYXQgaXQgaXMgbm90IHNhZmUgdG8KLSAqIG1vZGlmeSByZWZlcmVuY2VzIHdoaWxlIGFuIGl0ZXJhdGlvbiBpcyBpbiBwcm9ncmVzcywgdW5sZXNzIHRoZQotICogc2FtZSBjYWxsYmFjayBmdW5jdGlvbiBpbnZvY2F0aW9uIHRoYXQgbW9kaWZpZXMgdGhlIHJlZmVyZW5jZSBhbHNvCi0gKiByZXR1cm5zIGEgbm9uemVybyB2YWx1ZSB0byBpbW1lZGlhdGVseSBzdG9wIHRoZSBpdGVyYXRpb24uCisgKiBUaGUgc2lnbmF0dXJlIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBmb3JfZWFjaF8qKCkKKyAqIGZ1bmN0aW9ucyBiZWxvdy4gIFRoZSBtZW1vcnkgcG9pbnRlZCB0byBieSB0aGUgcmVmbmFtZSBhbmQgc2hhMQorICogYXJndW1lbnRzIGlzIG9ubHkgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCBmb3IgdGhlIGR1cmF0aW9uIG9mIGEKKyAqIHNpbmdsZSBjYWxsYmFjayBpbnZvY2F0aW9uLgogICovCi10eXBlZGVmIGludCBlYWNoX3JlZl9mbihjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBpbnQgZmxhZ3MsIHZvaWQgKmNiX2RhdGEpOwordHlwZWRlZiBpbnQgZWFjaF9yZWZfZm4oY29uc3QgY2hhciAqcmVmbmFtZSwKKwkJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCBmbGFncywgdm9pZCAqY2JfZGF0YSk7CisKKy8qCisgKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBpbnZva2UgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBmb3IKKyAqIGVhY2ggcmVmZXJlbmNlIGluZGljYXRlZC4gIElmIHRoZSBmdW5jdGlvbiBldmVyIHJldHVybnMgYSBub256ZXJvCisgKiB2YWx1ZSwgc3RvcCB0aGUgaXRlcmF0aW9uIGFuZCByZXR1cm4gdGhhdCB2YWx1ZS4gIFBsZWFzZSBub3RlIHRoYXQKKyAqIGl0IGlzIG5vdCBzYWZlIHRvIG1vZGlmeSByZWZlcmVuY2VzIHdoaWxlIGFuIGl0ZXJhdGlvbiBpcyBpbgorICogcHJvZ3Jlc3MsIHVubGVzcyB0aGUgc2FtZSBjYWxsYmFjayBmdW5jdGlvbiBpbnZvY2F0aW9uIHRoYXQKKyAqIG1vZGlmaWVzIHRoZSByZWZlcmVuY2UgYWxzbyByZXR1cm5zIGEgbm9uemVybyB2YWx1ZSB0byBpbW1lZGlhdGVseQorICogc3RvcCB0aGUgaXRlcmF0aW9uLgorICovCiBleHRlcm4gaW50IGhlYWRfcmVmKGVhY2hfcmVmX2ZuLCB2b2lkICopOwogZXh0ZXJuIGludCBmb3JfZWFjaF9yZWYoZWFjaF9yZWZfZm4sIHZvaWQgKik7CiBleHRlcm4gaW50IGZvcl9lYWNoX3JlZl9pbihjb25zdCBjaGFyICosIGVhY2hfcmVmX2ZuLCB2b2lkICopOwpAQCAtNTQsMTMgKzc3LDU3IEBACiBleHRlcm4gdm9pZCB3YXJuX2RhbmdsaW5nX3N5bXJlZihGSUxFICpmcCwgY29uc3QgY2hhciAqbXNnX2ZtdCwgY29uc3QgY2hhciAqcmVmbmFtZSk7CiAKIC8qCi0gKiBBZGQgYSByZWZlcmVuY2UgdG8gdGhlIGluLW1lbW9yeSBwYWNrZWQgcmVmZXJlbmNlIGNhY2hlLiAgVG8gYWN0dWFsbHkKLSAqIHdyaXRlIHRoZSByZWZlcmVuY2UgdG8gdGhlIHBhY2tlZC1yZWZzIGZpbGUsIGNhbGwgcGFja19yZWZzKCkuCisgKiBMb2NrIHRoZSBwYWNrZWQtcmVmcyBmaWxlIGZvciB3cml0aW5nLiAgRmxhZ3MgaXMgcGFzc2VkIHRvCisgKiBob2xkX2xvY2tfZmlsZV9mb3JfdXBkYXRlKCkuICBSZXR1cm4gMCBvbiBzdWNjZXNzLgorICovCitleHRlcm4gaW50IGxvY2tfcGFja2VkX3JlZnMoaW50IGZsYWdzKTsKKworLyoKKyAqIEFkZCBhIHJlZmVyZW5jZSB0byB0aGUgaW4tbWVtb3J5IHBhY2tlZCByZWZlcmVuY2UgY2FjaGUuICBUaGlzIG1heQorICogb25seSBiZSBjYWxsZWQgd2hpbGUgdGhlIHBhY2tlZC1yZWZzIGZpbGUgaXMgbG9ja2VkIChzZWUKKyAqIGxvY2tfcGFja2VkX3JlZnMoKSkuICBUbyBhY3R1YWxseSB3cml0ZSB0aGUgcGFja2VkLXJlZnMgZmlsZSwgY2FsbAorICogY29tbWl0X3BhY2tlZF9yZWZzKCkuCiAgKi8KIGV4dGVybiB2b2lkIGFkZF9wYWNrZWRfcmVmKGNvbnN0IGNoYXIgKnJlZm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpOwogCisvKgorICogV3JpdGUgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgcGFja2VkIHJlZnMgY2FjaGUgZnJvbSBtZW1vcnkgdG8KKyAqIGRpc2suICBUaGUgcGFja2VkLXJlZnMgZmlsZSBtdXN0IGFscmVhZHkgYmUgbG9ja2VkIGZvciB3cml0aW5nIChzZWUKKyAqIGxvY2tfcGFja2VkX3JlZnMoKSkuICBSZXR1cm4gemVybyBvbiBzdWNjZXNzLgorICovCitleHRlcm4gaW50IGNvbW1pdF9wYWNrZWRfcmVmcyh2b2lkKTsKKworLyoKKyAqIFJvbGxiYWNrIHRoZSBsb2NrZmlsZSBmb3IgdGhlIHBhY2tlZC1yZWZzIGZpbGUsIGFuZCBkaXNjYXJkIHRoZQorICogaW4tbWVtb3J5IHBhY2tlZCByZWZlcmVuY2UgY2FjaGUuICAoVGhlIHBhY2tlZC1yZWZzIGZpbGUgd2lsbCBiZQorICogcmVhZCBhbmV3IGlmIGl0IGlzIG5lZWRlZCBhZ2FpbiBhZnRlciB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4pCisgKi8KK2V4dGVybiB2b2lkIHJvbGxiYWNrX3BhY2tlZF9yZWZzKHZvaWQpOworCisvKgorICogRmxhZ3MgZm9yIGNvbnRyb2xsaW5nIGJlaGF2aW91ciBvZiBwYWNrX3JlZnMoKQorICogUEFDS19SRUZTX1BSVU5FOiBQcnVuZSBsb29zZSByZWZzIGFmdGVyIHBhY2tpbmcKKyAqIFBBQ0tfUkVGU19BTEw6ICAgUGFjayBfYWxsXyByZWZzLCBub3QganVzdCB0YWdzIGFuZCBhbHJlYWR5IHBhY2tlZCByZWZzCisgKi8KKyNkZWZpbmUgUEFDS19SRUZTX1BSVU5FIDB4MDAwMQorI2RlZmluZSBQQUNLX1JFRlNfQUxMICAgMHgwMDAyCisKKy8qCisgKiBXcml0ZSBhIHBhY2tlZC1yZWZzIGZpbGUgZm9yIHRoZSBjdXJyZW50IHJlcG9zaXRvcnkuCisgKiBmbGFnczogQ29tYmluYXRpb24gb2YgdGhlIGFib3ZlIFBBQ0tfUkVGU18qIGZsYWdzLgorICovCitpbnQgcGFja19yZWZzKHVuc2lnbmVkIGludCBmbGFncyk7CisKIGV4dGVybiBpbnQgcmVmX2V4aXN0cyhjb25zdCBjaGFyICopOwogCisvKgorICogSWYgcmVmbmFtZSBpcyBhIG5vbi1zeW1ib2xpYyByZWZlcmVuY2UgdGhhdCByZWZlcnMgdG8gYSB0YWcgb2JqZWN0LAorICogYW5kIHRoZSB0YWcgY2FuIGJlIChyZWN1cnNpdmVseSkgZGVyZWZlcmVuY2VkIHRvIGEgbm9uLXRhZyBvYmplY3QsCisgKiBzdG9yZSB0aGUgU0hBMSBvZiB0aGUgcmVmZXJyZWQtdG8gb2JqZWN0IHRvIHNoYTEgYW5kIHJldHVybiAwLiAgSWYKKyAqIGFueSBvZiB0aGVzZSBjb25kaXRpb25zIGFyZSBub3QgbWV0LCByZXR1cm4gYSBub24temVybyB2YWx1ZS4KKyAqIFN5bWJvbGljIHJlZmVyZW5jZXMgYXJlIGNvbnNpZGVyZWQgdW5wZWVsYWJsZSwgZXZlbiBpZiB0aGV5CisgKiB1bHRpbWF0ZWx5IHJlc29sdmUgdG8gYSBwZWVsYWJsZSB0YWcuCisgKi8KIGV4dGVybiBpbnQgcGVlbF9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgdW5zaWduZWQgY2hhciAqc2hhMSk7CiAKIC8qKiBMb2NrcyBhICJyZWZzLyIgcmVmIHJldHVybmluZyB0aGUgbG9jayBvbiBzdWNjZXNzIGFuZCBOVUxMIG9uIGZhaWx1cmUuICoqLwpkaWZmIC0tZ2l0IGEvcmVtb3RlLWN1cmwuYyBiL3JlbW90ZS1jdXJsLmMKaW5kZXggNjBlZGE2My4uNWIzY2U5ZSAxMDA2NDQKLS0tIGEvcmVtb3RlLWN1cmwuYworKysgYi9yZW1vdGUtY3VybC5jCkBAIC03LDYgKzcsNyBAQAogI2luY2x1ZGUgInJ1bi1jb21tYW5kLmgiCiAjaW5jbHVkZSAicGt0LWxpbmUuaCIKICNpbmNsdWRlICJzaWRlYmFuZC5oIgorI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKIAogc3RhdGljIHN0cnVjdCByZW1vdGUgKnJlbW90ZTsKIHN0YXRpYyBjb25zdCBjaGFyICp1cmw7IC8qIGFsd2F5cyBlbmRzIHdpdGggYSB0cmFpbGluZyBzbGFzaCAqLwpAQCAtNzg3LDM2ICs3ODgsMzUgQEAKIHN0YXRpYyBpbnQgcHVzaF9naXQoc3RydWN0IGRpc2NvdmVyeSAqaGVhZHMsIGludCBucl9zcGVjLCBjaGFyICoqc3BlY3MpCiB7CiAJc3RydWN0IHJwY19zdGF0ZSBycGM7Ci0JY29uc3QgY2hhciAqKmFyZ3Y7Ci0JaW50IGFyZ2MgPSAwLCBpLCBlcnI7CisJaW50IGksIGVycjsKKwlzdHJ1Y3QgYXJndl9hcnJheSBhcmdzOwogCi0JYXJndiA9IHhtYWxsb2MoKDEwICsgbnJfc3BlYykgKiBzaXplb2YoY2hhciopKTsKLQlhcmd2W2FyZ2MrK10gPSAic2VuZC1wYWNrIjsKLQlhcmd2W2FyZ2MrK10gPSAiLS1zdGF0ZWxlc3MtcnBjIjsKLQlhcmd2W2FyZ2MrK10gPSAiLS1oZWxwZXItc3RhdHVzIjsKKwlhcmd2X2FycmF5X2luaXQoJmFyZ3MpOworCWFyZ3ZfYXJyYXlfcHVzaGwoJmFyZ3MsICJzZW5kLXBhY2siLCAiLS1zdGF0ZWxlc3MtcnBjIiwgIi0taGVscGVyLXN0YXR1cyIsCisJCQkgTlVMTCk7CisKIAlpZiAob3B0aW9ucy50aGluKQotCQlhcmd2W2FyZ2MrK10gPSAiLS10aGluIjsKKwkJYXJndl9hcnJheV9wdXNoKCZhcmdzLCAiLS10aGluIik7CiAJaWYgKG9wdGlvbnMuZHJ5X3J1bikKLQkJYXJndlthcmdjKytdID0gIi0tZHJ5LXJ1biI7CisJCWFyZ3ZfYXJyYXlfcHVzaCgmYXJncywgIi0tZHJ5LXJ1biIpOwogCWlmIChvcHRpb25zLnZlcmJvc2l0eSA9PSAwKQotCQlhcmd2W2FyZ2MrK10gPSAiLS1xdWlldCI7CisJCWFyZ3ZfYXJyYXlfcHVzaCgmYXJncywgIi0tcXVpZXQiKTsKIAllbHNlIGlmIChvcHRpb25zLnZlcmJvc2l0eSA+IDEpCi0JCWFyZ3ZbYXJnYysrXSA9ICItLXZlcmJvc2UiOwotCWFyZ3ZbYXJnYysrXSA9IG9wdGlvbnMucHJvZ3Jlc3MgPyAiLS1wcm9ncmVzcyIgOiAiLS1uby1wcm9ncmVzcyI7Ci0JYXJndlthcmdjKytdID0gdXJsOworCQlhcmd2X2FycmF5X3B1c2goJmFyZ3MsICItLXZlcmJvc2UiKTsKKwlhcmd2X2FycmF5X3B1c2goJmFyZ3MsIG9wdGlvbnMucHJvZ3Jlc3MgPyAiLS1wcm9ncmVzcyIgOiAiLS1uby1wcm9ncmVzcyIpOworCWFyZ3ZfYXJyYXlfcHVzaCgmYXJncywgdXJsKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnJfc3BlYzsgaSsrKQotCQlhcmd2W2FyZ2MrK10gPSBzcGVjc1tpXTsKLQlhcmd2W2FyZ2MrK10gPSBOVUxMOworCQlhcmd2X2FycmF5X3B1c2goJmFyZ3MsIHNwZWNzW2ldKTsKIAogCW1lbXNldCgmcnBjLCAwLCBzaXplb2YocnBjKSk7CiAJcnBjLnNlcnZpY2VfbmFtZSA9ICJnaXQtcmVjZWl2ZS1wYWNrIiwKLQlycGMuYXJndiA9IGFyZ3Y7CisJcnBjLmFyZ3YgPSBhcmdzLmFyZ3Y7CiAKIAllcnIgPSBycGNfc2VydmljZSgmcnBjLCBoZWFkcyk7CiAJaWYgKHJwYy5yZXN1bHQubGVuKQogCQl3cml0ZV9vcl9kaWUoMSwgcnBjLnJlc3VsdC5idWYsIHJwYy5yZXN1bHQubGVuKTsKIAlzdHJidWZfcmVsZWFzZSgmcnBjLnJlc3VsdCk7Ci0JZnJlZShhcmd2KTsKKwlhcmd2X2FycmF5X2NsZWFyKCZhcmdzKTsKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9yZW1vdGUtdGVzdHN2bi5jIGIvcmVtb3RlLXRlc3Rzdm4uYwppbmRleCA1ZGRmMTFjLi5kN2NkNWQyIDEwMDY0NAotLS0gYS9yZW1vdGUtdGVzdHN2bi5jCisrKyBiL3JlbW90ZS10ZXN0c3ZuLmMKQEAgLTI4Niw3ICsyODYsNyBAQAogCXJldHVybiAwOwogfQogCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVCwgdXJsX3NiID0gU1RSQlVGX0lOSVQsCiAJCQlwcml2YXRlX3JlZl9zYiA9IFNUUkJVRl9JTklULCBtYXJrc2ZpbGVuYW1lX3NiID0gU1RSQlVGX0lOSVQsCmRpZmYgLS1naXQgYS9yZW1vdGUuYyBiL3JlbW90ZS5jCmluZGV4IDY4ZWI5OWIuLmVmY2JhOTMgMTAwNjQ0Ci0tLSBhL3JlbW90ZS5jCisrKyBiL3JlbW90ZS5jCkBAIC0yNzYsMTAgKzI3Niw5IEBACiAKIHN0YXRpYyB2b2lkIHJlYWRfYnJhbmNoZXNfZmlsZShzdHJ1Y3QgcmVtb3RlICpyZW1vdGUpCiB7Ci0JY29uc3QgY2hhciAqc2xhc2ggPSBzdHJjaHIocmVtb3RlLT5uYW1lLCAnLycpOwogCWNoYXIgKmZyYWc7CiAJc3RydWN0IHN0cmJ1ZiBicmFuY2ggPSBTVFJCVUZfSU5JVDsKLQlpbnQgbiA9IHNsYXNoID8gc2xhc2ggLSByZW1vdGUtPm5hbWUgOiAxMDAwOworCWludCBuID0gMTAwMDsKIAlGSUxFICpmID0gZm9wZW4oZ2l0X3BhdGgoImJyYW5jaGVzLyUuKnMiLCBuLCByZW1vdGUtPm5hbWUpLCAiciIpOwogCWNoYXIgKnMsICpwOwogCWludCBsZW47CkBAIC0yOTksMjEgKzI5OCwxMSBAQAogCXdoaWxlIChpc3NwYWNlKHBbLTFdKSkKIAkJKi0tcCA9IDA7CiAJbGVuID0gcCAtIHM7Ci0JaWYgKHNsYXNoKQotCQlsZW4gKz0gc3RybGVuKHNsYXNoKTsKIAlwID0geG1hbGxvYyhsZW4gKyAxKTsKIAlzdHJjcHkocCwgcyk7Ci0JaWYgKHNsYXNoKQotCQlzdHJjYXQocCwgc2xhc2gpOwogCiAJLyoKLQkgKiBXaXRoICJzbGFzaCIsIGUuZy4gImdpdCBmZXRjaCBqZ2FyemlrL25ldGRldi0yLjYiIHdoZW4KLQkgKiByZWFkaW5nIGZyb20gJEdJVF9ESVIvYnJhbmNoZXMvamdhcnppayBmZXRjaGVzICJIRUFEIiBmcm9tCi0JICogdGhlIHBhcnRpYWwgVVJMIG9idGFpbmVkIGZyb20gdGhlIGJyYW5jaGVzIGZpbGUgcGx1cwotCSAqICIvbmV0ZGV2LTIuNiIgYW5kIGRvZXMgbm90IHN0b3JlIGl0IGluIGFueSB0cmFja2luZyByZWYuCi0JICogI2JyYW5jaCBzcGVjaWZpZXIgaW4gdGhlIGZpbGUgaXMgaWdub3JlZC4KLQkgKgotCSAqIE90aGVyd2lzZSwgdGhlIGJyYW5jaGVzIGZpbGUgd291bGQgaGF2ZSBVUkwgYW5kIG9wdGlvbmFsbHkKKwkgKiBUaGUgYnJhbmNoZXMgZmlsZSB3b3VsZCBoYXZlIFVSTCBhbmQgb3B0aW9uYWxseQogCSAqICNicmFuY2ggc3BlY2lmaWVkLiAgVGhlICJtYXN0ZXIiIChvciBzcGVjaWZpZWQpIGJyYW5jaCBpcwogCSAqIGZldGNoZWQgYW5kIHN0b3JlZCBpbiB0aGUgbG9jYWwgYnJhbmNoIG9mIHRoZSBzYW1lIG5hbWUuCiAJICovCkBAIC0zMjMsMTIgKzMxMiw4IEBACiAJCXN0cmJ1Zl9hZGRmKCZicmFuY2gsICJyZWZzL2hlYWRzLyVzIiwgZnJhZyk7CiAJfSBlbHNlCiAJCXN0cmJ1Zl9hZGRzdHIoJmJyYW5jaCwgInJlZnMvaGVhZHMvbWFzdGVyIik7Ci0JaWYgKCFzbGFzaCkgewotCQlzdHJidWZfYWRkZigmYnJhbmNoLCAiOnJlZnMvaGVhZHMvJXMiLCByZW1vdGUtPm5hbWUpOwotCX0gZWxzZSB7Ci0JCXN0cmJ1Zl9yZXNldCgmYnJhbmNoKTsKLQkJc3RyYnVmX2FkZHN0cigmYnJhbmNoLCAiSEVBRDoiKTsKLQl9CisKKwlzdHJidWZfYWRkZigmYnJhbmNoLCAiOnJlZnMvaGVhZHMvJXMiLCByZW1vdGUtPm5hbWUpOwogCWFkZF91cmxfYWxpYXMocmVtb3RlLCBwKTsKIAlhZGRfZmV0Y2hfcmVmc3BlYyhyZW1vdGUsIHN0cmJ1Zl9kZXRhY2goJmJyYW5jaCwgTlVMTCkpOwogCS8qCkBAIC0xMzE3LDYgKzEzMDIsMTQgQEAKIAlmcmVlKHNlbnRfdGlwcy50aXApOwogfQogCitzdGF0aWMgdm9pZCBwcmVwYXJlX3JlZl9pbmRleChzdHJ1Y3Qgc3RyaW5nX2xpc3QgKnJlZl9pbmRleCwgc3RydWN0IHJlZiAqcmVmKQoreworCWZvciAoIDsgcmVmOyByZWYgPSByZWYtPm5leHQpCisJCXN0cmluZ19saXN0X2FwcGVuZF9ub2R1cChyZWZfaW5kZXgsIHJlZi0+bmFtZSktPnV0aWwgPSByZWY7CisKKwlzb3J0X3N0cmluZ19saXN0KHJlZl9pbmRleCk7Cit9CisKIC8qCiAgKiBHaXZlbiB0aGUgc2V0IG9mIHJlZnMgdGhlIGxvY2FsIHJlcG9zaXRvcnkgaGFzLCB0aGUgc2V0IG9mIHJlZnMgdGhlCiAgKiByZW1vdGUgcmVwb3NpdG9yeSBoYXMsIGFuZCB0aGUgcmVmc3BlYyB1c2VkIGZvciBwdXNoLCBkZXRlcm1pbmUKQEAgLTEzMzUsNiArMTMyOCw3IEBACiAJaW50IGVycnM7CiAJc3RhdGljIGNvbnN0IGNoYXIgKmRlZmF1bHRfcmVmc3BlY1tdID0geyAiOiIsIE5VTEwgfTsKIAlzdHJ1Y3QgcmVmICpyZWYsICoqZHN0X3RhaWwgPSB0YWlsX3JlZihkc3QpOworCXN0cnVjdCBzdHJpbmdfbGlzdCBkc3RfcmVmX2luZGV4ID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKIAogCWlmICghbnJfcmVmc3BlYykgewogCQlucl9yZWZzcGVjID0gMTsKQEAgLTEzNDUsNiArMTMzOSw3IEBACiAKIAkvKiBwaWNrIHRoZSByZW1haW5kZXIgKi8KIAlmb3IgKHJlZiA9IHNyYzsgcmVmOyByZWYgPSByZWYtPm5leHQpIHsKKwkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKmRzdF9pdGVtOwogCQlzdHJ1Y3QgcmVmICpkc3RfcGVlcjsKIAkJY29uc3Qgc3RydWN0IHJlZnNwZWMgKnBhdCA9IE5VTEw7CiAJCWNoYXIgKmRzdF9uYW1lOwpAQCAtMTM1Myw3ICsxMzQ4LDExIEBACiAJCWlmICghZHN0X25hbWUpCiAJCQljb250aW51ZTsKIAotCQlkc3RfcGVlciA9IGZpbmRfcmVmX2J5X25hbWUoKmRzdCwgZHN0X25hbWUpOworCQlpZiAoIWRzdF9yZWZfaW5kZXgubnIpCisJCQlwcmVwYXJlX3JlZl9pbmRleCgmZHN0X3JlZl9pbmRleCwgKmRzdCk7CisKKwkJZHN0X2l0ZW0gPSBzdHJpbmdfbGlzdF9sb29rdXAoJmRzdF9yZWZfaW5kZXgsIGRzdF9uYW1lKTsKKwkJZHN0X3BlZXIgPSBkc3RfaXRlbSA/IGRzdF9pdGVtLT51dGlsIDogTlVMTDsKIAkJaWYgKGRzdF9wZWVyKSB7CiAJCQlpZiAoZHN0X3BlZXItPnBlZXJfcmVmKQogCQkJCS8qIFdlJ3JlIGFscmVhZHkgc2VuZGluZyBzb21ldGhpbmcgdG8gdGhpcyByZWYuICovCkBAIC0xMzcwLDYgKzEzNjksOCBAQAogCQkJLyogQ3JlYXRlIGEgbmV3IG9uZSBhbmQgbGluayBpdCAqLwogCQkJZHN0X3BlZXIgPSBtYWtlX2xpbmtlZF9yZWYoZHN0X25hbWUsICZkc3RfdGFpbCk7CiAJCQloYXNoY3B5KGRzdF9wZWVyLT5uZXdfc2hhMSwgcmVmLT5uZXdfc2hhMSk7CisJCQlzdHJpbmdfbGlzdF9pbnNlcnQoJmRzdF9yZWZfaW5kZXgsCisJCQkJZHN0X3BlZXItPm5hbWUpLT51dGlsID0gZHN0X3BlZXI7CiAJCX0KIAkJZHN0X3BlZXItPnBlZXJfcmVmID0gY29weV9yZWYocmVmKTsKIAkJZHN0X3BlZXItPmZvcmNlID0gcGF0LT5mb3JjZTsKQEAgLTEzNzcsMTAgKzEzNzgsMTMgQEAKIAkJZnJlZShkc3RfbmFtZSk7CiAJfQogCisJc3RyaW5nX2xpc3RfY2xlYXIoJmRzdF9yZWZfaW5kZXgsIDApOworCiAJaWYgKGZsYWdzICYgTUFUQ0hfUkVGU19GT0xMT1dfVEFHUykKIAkJYWRkX21pc3NpbmdfdGFncyhzcmMsIGRzdCwgJmRzdF90YWlsKTsKIAogCWlmIChzZW5kX3BydW5lKSB7CisJCXN0cnVjdCBzdHJpbmdfbGlzdCBzcmNfcmVmX2luZGV4ID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKIAkJLyogY2hlY2sgZm9yIG1pc3NpbmcgcmVmcyBvbiB0aGUgcmVtb3RlICovCiAJCWZvciAocmVmID0gKmRzdDsgcmVmOyByZWYgPSByZWYtPm5leHQpIHsKIAkJCWNoYXIgKnNyY19uYW1lOwpAQCAtMTM5MSwxMSArMTM5NSwxNSBAQAogCiAJCQlzcmNfbmFtZSA9IGdldF9yZWZfbWF0Y2gocnMsIG5yX3JlZnNwZWMsIHJlZiwgc2VuZF9taXJyb3IsIEZST01fRFNULCBOVUxMKTsKIAkJCWlmIChzcmNfbmFtZSkgewotCQkJCWlmICghZmluZF9yZWZfYnlfbmFtZShzcmMsIHNyY19uYW1lKSkKKwkJCQlpZiAoIXNyY19yZWZfaW5kZXgubnIpCisJCQkJCXByZXBhcmVfcmVmX2luZGV4KCZzcmNfcmVmX2luZGV4LCBzcmMpOworCQkJCWlmICghc3RyaW5nX2xpc3RfaGFzX3N0cmluZygmc3JjX3JlZl9pbmRleCwKKwkJCQkJICAgIHNyY19uYW1lKSkKIAkJCQkJcmVmLT5wZWVyX3JlZiA9IGFsbG9jX2RlbGV0ZV9yZWYoKTsKIAkJCQlmcmVlKHNyY19uYW1lKTsKIAkJCX0KIAkJfQorCQlzdHJpbmdfbGlzdF9jbGVhcigmc3JjX3JlZl9pbmRleCwgMCk7CiAJfQogCWlmIChlcnJzKQogCQlyZXR1cm4gLTE7CkBAIC0xNDc0LDggKzE0ODIsNyBAQAogCQlyZXQtPnJlbW90ZSA9IHJlbW90ZV9nZXQocmV0LT5yZW1vdGVfbmFtZSk7CiAJCWlmIChyZXQtPm1lcmdlX25yKSB7CiAJCQlpbnQgaTsKLQkJCXJldC0+bWVyZ2UgPSB4Y2FsbG9jKHNpemVvZigqcmV0LT5tZXJnZSksCi0JCQkJCSAgICAgcmV0LT5tZXJnZV9ucik7CisJCQlyZXQtPm1lcmdlID0geGNhbGxvYyhyZXQtPm1lcmdlX25yLCBzaXplb2YoKnJldC0+bWVyZ2UpKTsKIAkJCWZvciAoaSA9IDA7IGkgPCByZXQtPm1lcmdlX25yOyBpKyspIHsKIAkJCQlyZXQtPm1lcmdlW2ldID0geGNhbGxvYygxLCBzaXplb2YoKipyZXQtPm1lcmdlKSk7CiAJCQkJcmV0LT5tZXJnZVtpXS0+c3JjID0geHN0cmR1cChyZXQtPm1lcmdlX25hbWVbaV0pOwpkaWZmIC0tZ2l0IGEvcmVyZXJlLmMgYi9yZXJlcmUuYwppbmRleCA5OGUzZTI5Li42ZmRlOGY5IDEwMDY0NAotLS0gYS9yZXJlcmUuYworKysgYi9yZXJlcmUuYwpAQCAtMjk5LDcgKzI5OSw3IEBACiB7CiAJbW1maWxlX3QgbW1maWxlWzNdID0ge3tOVUxMfX07CiAJbW1idWZmZXJfdCByZXN1bHQgPSB7TlVMTCwgMH07Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCWludCBwb3MsIGxlbiwgaSwgaHVua19ubzsKIAlzdHJ1Y3QgcmVyZXJlX2lvX21lbSBpbzsKIAlpbnQgbWFya2VyX3NpemUgPSBsbF9tZXJnZV9tYXJrZXJfc2l6ZShwYXRoKTsKQEAgLTM1OSw3ICszNTksNyBAQAogCiBzdGF0aWMgaW50IGNoZWNrX29uZV9jb25mbGljdChpbnQgaSwgaW50ICp0eXBlKQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmUgPSBhY3RpdmVfY2FjaGVbaV07CiAKIAlpZiAoIWNlX3N0YWdlKGUpKSB7CiAJCSp0eXBlID0gUkVTT0xWRUQ7CkBAIC0zNzQsOCArMzc0LDggQEAKIAogCS8qIE9ubHkgaGFuZGxlIHJlZ3VsYXIgZmlsZXMgd2l0aCBib3RoIHN0YWdlcyAjMiBhbmQgIzMgKi8KIAlpZiAoaSArIDEgPCBhY3RpdmVfbnIpIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICplMiA9IGFjdGl2ZV9jYWNoZVtpXTsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICplMyA9IGFjdGl2ZV9jYWNoZVtpICsgMV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqZTIgPSBhY3RpdmVfY2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqZTMgPSBhY3RpdmVfY2FjaGVbaSArIDFdOwogCQlpZiAoY2Vfc3RhZ2UoZTIpID09IDIgJiYKIAkJICAgIGNlX3N0YWdlKGUzKSA9PSAzICYmCiAJCSAgICBjZV9zYW1lX25hbWUoZSwgZTMpICYmCkBAIC0zOTgsNyArMzk4LDcgQEAKIAogCWZvciAoaSA9IDA7IGkgPCBhY3RpdmVfbnI7KSB7CiAJCWludCBjb25mbGljdF90eXBlOwotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmUgPSBhY3RpdmVfY2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJaSA9IGNoZWNrX29uZV9jb25mbGljdChpLCAmY29uZmxpY3RfdHlwZSk7CiAJCWlmIChjb25mbGljdF90eXBlID09IFRIUkVFX1NUQUdFRCkKIAkJCXN0cmluZ19saXN0X2luc2VydChjb25mbGljdCwgKGNvbnN0IGNoYXIgKillLT5uYW1lKTsKQEAgLTQxNCw3ICs0MTQsNyBAQAogCiAJZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjspIHsKIAkJaW50IGNvbmZsaWN0X3R5cGU7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICplID0gYWN0aXZlX2NhY2hlW2ldOwogCQlpID0gY2hlY2tfb25lX2NvbmZsaWN0KGksICZjb25mbGljdF90eXBlKTsKIAkJaWYgKGNvbmZsaWN0X3R5cGUgPT0gUFVOVEVEKQogCQkJc3RyaW5nX2xpc3RfaW5zZXJ0KG1lcmdlX3JyLCAoY29uc3QgY2hhciAqKWUtPm5hbWUpOwpkaWZmIC0tZ2l0IGEvcmVzb2x2ZS11bmRvLmMgYi9yZXNvbHZlLXVuZG8uYwppbmRleCA2MzllYjljLi43NzEwMWY1IDEwMDY0NAotLS0gYS9yZXNvbHZlLXVuZG8uYworKysgYi9yZXNvbHZlLXVuZG8uYwpAQCAtMTE1LDcgKzExNSw3IEBACiAKIGludCB1bm1lcmdlX2luZGV4X2VudHJ5X2F0KHN0cnVjdCBpbmRleF9zdGF0ZSAqaXN0YXRlLCBpbnQgcG9zKQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKIAlzdHJ1Y3QgcmVzb2x2ZV91bmRvX2luZm8gKnJ1OwogCWludCBpLCBlcnIgPSAwLCBtYXRjaGVkOwpAQCAtMTY3LDcgKzE2Nyw3IEBACiAJCXJldHVybjsKIAogCWZvciAoaSA9IDA7IGkgPCBpc3RhdGUtPmNhY2hlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGlzdGF0ZS0+Y2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBpc3RhdGUtPmNhY2hlW2ldOwogCQlpZiAoY2UtPmNlX2ZsYWdzICYgQ0VfTUFUQ0hFRCkKIAkJCWkgPSB1bm1lcmdlX2luZGV4X2VudHJ5X2F0KGlzdGF0ZSwgaSk7CiAJfQpAQCAtMTgxLDcgKzE4MSw3IEBACiAJCXJldHVybjsKIAogCWZvciAoaSA9IDA7IGkgPCBpc3RhdGUtPmNhY2hlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGlzdGF0ZS0+Y2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBpc3RhdGUtPmNhY2hlW2ldOwogCQlpZiAoIW1hdGNoX3BhdGhzcGVjKHBhdGhzcGVjLCBjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSksIDAsIE5VTEwpKQogCQkJY29udGludWU7CiAJCWkgPSB1bm1lcmdlX2luZGV4X2VudHJ5X2F0KGlzdGF0ZSwgaSk7CmRpZmYgLS1naXQgYS9yZXZpc2lvbi5jIGIvcmV2aXNpb24uYwppbmRleCBhNjdiNjE1Li5hYzIwZDFhIDEwMDY0NAotLS0gYS9yZXZpc2lvbi5jCisrKyBiL3JldmlzaW9uLmMKQEAgLTEzLDcgKzEzLDkgQEAKICNpbmNsdWRlICJkZWNvcmF0ZS5oIgogI2luY2x1ZGUgImxvZy10cmVlLmgiCiAjaW5jbHVkZSAic3RyaW5nLWxpc3QuaCIKKyNpbmNsdWRlICJsaW5lLWxvZy5oIgogI2luY2x1ZGUgIm1haWxtYXAuaCIKKyNpbmNsdWRlICJjb21taXQtc2xhYi5oIgogCiB2b2xhdGlsZSBzaG93X2Vhcmx5X291dHB1dF9mbl90IHNob3dfZWFybHlfb3V0cHV0OwogCkBAIC03MCw3ICs3Miw4IEBACiAJcmV0dXJuIG91cnMgfHwgZW1pdHRlZDsKIH0KIAotdm9pZCBzaG93X29iamVjdF93aXRoX25hbWUoRklMRSAqb3V0LCBzdHJ1Y3Qgb2JqZWN0ICpvYmosIGNvbnN0IHN0cnVjdCBuYW1lX3BhdGggKnBhdGgsIGNvbnN0IGNoYXIgKmNvbXBvbmVudCkKK3ZvaWQgc2hvd19vYmplY3Rfd2l0aF9uYW1lKEZJTEUgKm91dCwgc3RydWN0IG9iamVjdCAqb2JqLAorCQkJICAgY29uc3Qgc3RydWN0IG5hbWVfcGF0aCAqcGF0aCwgY29uc3QgY2hhciAqY29tcG9uZW50KQogewogCXN0cnVjdCBuYW1lX3BhdGggbGVhZjsKIAlsZWFmLnVwID0gKHN0cnVjdCBuYW1lX3BhdGggKilwYXRoOwpAQCAtODcsNyArOTAsOSBAQAogCQlzdHJ1Y3QgbmFtZV9wYXRoICpwYXRoLAogCQljb25zdCBjaGFyICpuYW1lKQogewotCWFkZF9vYmplY3RfYXJyYXkob2JqLCBwYXRoX25hbWUocGF0aCwgbmFtZSksIHApOworCWNoYXIgKnBuID0gcGF0aF9uYW1lKHBhdGgsIG5hbWUpOworCWFkZF9vYmplY3RfYXJyYXkob2JqLCBwbiwgcCk7CisJZnJlZShwbik7CiB9CiAKIHN0YXRpYyB2b2lkIG1hcmtfYmxvYl91bmludGVyZXN0aW5nKHN0cnVjdCBibG9iICpibG9iKQpAQCAtMTg2LDcgKzE5MSw5IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCBhZGRfcGVuZGluZ19vYmplY3Rfd2l0aF9tb2RlKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IG9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBtb2RlKQorc3RhdGljIHZvaWQgYWRkX3BlbmRpbmdfb2JqZWN0X3dpdGhfbW9kZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkJCSBzdHJ1Y3Qgb2JqZWN0ICpvYmosCisJCQkJCSBjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBtb2RlKQogewogCWlmICghb2JqKQogCQlyZXR1cm47CkBAIC0yMDksNyArMjE2LDggQEAKIAlhZGRfb2JqZWN0X2FycmF5X3dpdGhfbW9kZShvYmosIG5hbWUsICZyZXZzLT5wZW5kaW5nLCBtb2RlKTsKIH0KIAotdm9pZCBhZGRfcGVuZGluZ19vYmplY3Qoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3Qgb2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKm5hbWUpCit2b2lkIGFkZF9wZW5kaW5nX29iamVjdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQlzdHJ1Y3Qgb2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJYWRkX3BlbmRpbmdfb2JqZWN0X3dpdGhfbW9kZShyZXZzLCBvYmosIG5hbWUsIFNfSUZJTlZBTElEKTsKIH0KQEAgLTIyNiw3ICsyMzQsOSBAQAogCWFkZF9wZW5kaW5nX29iamVjdChyZXZzLCBvYmosICJIRUFEIik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgb2JqZWN0ICpnZXRfcmVmZXJlbmNlKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgdW5zaWduZWQgaW50IGZsYWdzKQorc3RhdGljIHN0cnVjdCBvYmplY3QgKmdldF9yZWZlcmVuY2Uoc3RydWN0IHJldl9pbmZvICpyZXZzLCBjb25zdCBjaGFyICpuYW1lLAorCQkJCSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAJc3RydWN0IG9iamVjdCAqb2JqZWN0OwogCkBAIC0yNDcsNyArMjU3LDggQEAKIAlhZGRfcGVuZGluZ19vYmplY3QocmV2cywgb2JqZWN0LCBuYW1lKTsKIH0KIAotc3RhdGljIHN0cnVjdCBjb21taXQgKmhhbmRsZV9jb21taXQoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3Qgb2JqZWN0ICpvYmplY3QsIGNvbnN0IGNoYXIgKm5hbWUpCitzdGF0aWMgc3RydWN0IGNvbW1pdCAqaGFuZGxlX2NvbW1pdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkJICAgIHN0cnVjdCBvYmplY3QgKm9iamVjdCwgY29uc3QgY2hhciAqbmFtZSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzID0gb2JqZWN0LT5mbGFnczsKIApAQCAtMzMzLDYgKzM0NCw4MCBAQAogfQogCiAvKgorICogQSBkZWZpbml0aW9uIG9mICJyZWxldmFudCIgY29tbWl0IHRoYXQgd2UgY2FuIHVzZSB0byBzaW1wbGlmeSBsaW1pdGVkIGdyYXBocworICogYnkgZWxpbWluYXRpbmcgc2lkZSBicmFuY2hlcy4KKyAqCisgKiBBICJyZWxldmFudCIgY29tbWl0IGlzIG9uZSB0aGF0IGlzICFVTklOVEVSRVNUSU5HIChpZSB3ZSBhcmUgaW5jbHVkaW5nIGl0CisgKiBpbiBvdXIgbGlzdCksIG9yIHRoYXQgaXMgYSBzcGVjaWZpZWQgQk9UVE9NIGNvbW1pdC4gVGhlbiBhZnRlciBjb21wdXRpbmcKKyAqIGEgbGltaXRlZCBsaXN0LCBkdXJpbmcgcHJvY2Vzc2luZyB3ZSBjYW4gZ2VuZXJhbGx5IGlnbm9yZSBib3VuZGFyeSBtZXJnZXMKKyAqIGNvbWluZyBmcm9tIG91dHNpZGUgdGhlIGdyYXBoLCAoaWUgZnJvbSBpcnJlbGV2YW50IHBhcmVudHMpLCBhbmQgdHJlYXQKKyAqIHRob3NlIG1lcmdlcyBhcyBpZiB0aGV5IHdlcmUgc2luZ2xlLXBhcmVudC4gVFJFRVNBTUUgaXMgZGVmaW5lZCB0byBjb25zaWRlcgorICogb25seSByZWxldmFudCBwYXJlbnRzLCBpZiBhbnkuIElmIHdlIGFyZSBUUkVFU0FNRSB0byBvdXIgb24tZ3JhcGggcGFyZW50cywKKyAqIHdlIGRvbid0IGNhcmUgaWYgd2Ugd2VyZSAhVFJFRVNBTUUgdG8gbm9uLWdyYXBoIHBhcmVudHMuCisgKgorICogVHJlYXRpbmcgYm90dG9tIGNvbW1pdHMgYXMgcmVsZXZhbnQgZW5zdXJlcyB0aGF0IGEgbGltaXRlZCBncmFwaCdzCisgKiBjb25uZWN0aW9uIHRvIHRoZSBhY3R1YWwgYm90dG9tIGNvbW1pdCBpcyBub3Qgdmlld2VkIGFzIGEgc2lkZSBicmFuY2gsIGJ1dAorICogdHJlYXRlZCBhcyBwYXJ0IG9mIHRoZSBncmFwaC4gRm9yIGV4YW1wbGU6CisgKgorICogICAuLi4uWi4uLkEtLS1YLS0tby0tLW8tLS1CCisgKiAgICAgICAgLiAgICAgLworICogICAgICAgICBXLS0tWQorICoKKyAqIFdoZW4gY29tcHV0aW5nICJBLi5CIiwgdGhlIEEtWCBjb25uZWN0aW9uIGlzIGF0IGxlYXN0IGFzIGltcG9ydGFudCBhcworICogWS1YLCBkZXNwaXRlIEEgYmVpbmcgZmxhZ2dlZCBVTklOVEVSRVNUSU5HLgorICoKKyAqIEFuZCB3aGVuIGNvbXB1dGluZyAtLWFuY2VzdHJ5LXBhdGggIkEuLkIiLCB0aGUgQS1YIGNvbm5lY3Rpb24gaXMgbW9yZQorICogaW1wb3J0YW50IHRoYW4gWS1YLCBkZXNwaXRlIGJvdGggQSBhbmQgWSBiZWluZyBmbGFnZ2VkIFVOSU5URVJFU1RJTkcuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IHJlbGV2YW50X2NvbW1pdChzdHJ1Y3QgY29tbWl0ICpjb21taXQpCit7CisJcmV0dXJuIChjb21taXQtPm9iamVjdC5mbGFncyAmIChVTklOVEVSRVNUSU5HIHwgQk9UVE9NKSkgIT0gVU5JTlRFUkVTVElORzsKK30KKworLyoKKyAqIFJldHVybiBhIHNpbmdsZSByZWxldmFudCBjb21taXQgZnJvbSBhIHBhcmVudCBsaXN0LiBJZiB3ZSBhcmUgYSBUUkVFU0FNRQorICogY29tbWl0LCBhbmQgdGhpcyBzZWxlY3RzIG9uZSBvZiBvdXIgcGFyZW50cywgdGhlbiB3ZSBjYW4gc2FmZWx5IHNpbXBsaWZ5IHRvCisgKiB0aGF0IHBhcmVudC4KKyAqLworc3RhdGljIHN0cnVjdCBjb21taXQgKm9uZV9yZWxldmFudF9wYXJlbnQoY29uc3Qgc3RydWN0IHJldl9pbmZvICpyZXZzLAorCQkJCQkgIHN0cnVjdCBjb21taXRfbGlzdCAqb3JpZykKK3sKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKmxpc3QgPSBvcmlnOworCXN0cnVjdCBjb21taXQgKnJlbGV2YW50ID0gTlVMTDsKKworCWlmICghb3JpZykKKwkJcmV0dXJuIE5VTEw7CisKKwkvKgorCSAqIEZvciAxLXBhcmVudCBjb21taXRzLCBvciBpZiBmaXJzdC1wYXJlbnQtb25seSwgdGhlbiByZXR1cm4gdGhhdAorCSAqIGZpcnN0IHBhcmVudCAoZXZlbiBpZiBub3QgInJlbGV2YW50IiBieSB0aGUgYWJvdmUgZGVmaW5pdGlvbikuCisJICogVFJFRVNBTUUgd2lsbCBoYXZlIGJlZW4gc2V0IHB1cmVseSBvbiB0aGF0IHBhcmVudC4KKwkgKi8KKwlpZiAocmV2cy0+Zmlyc3RfcGFyZW50X29ubHkgfHwgIW9yaWctPm5leHQpCisJCXJldHVybiBvcmlnLT5pdGVtOworCisJLyoKKwkgKiBGb3IgbXVsdGktcGFyZW50IGNvbW1pdHMsIGlkZW50aWZ5IGEgc29sZSByZWxldmFudCBwYXJlbnQsIGlmIGFueS4KKwkgKiBJZiB3ZSBoYXZlIG9ubHkgb25lIHJlbGV2YW50IHBhcmVudCwgdGhlbiBUUkVFU0FNRSB3aWxsIGJlIHNldCBwdXJlbHkKKwkgKiB3aXRoIHJlZ2FyZCB0byB0aGF0IHBhcmVudCwgYW5kIHdlIGNhbiBzaW1wbGlmeSBhY2NvcmRpbmdseS4KKwkgKgorCSAqIElmIHdlIGhhdmUgbW9yZSB0aGFuIG9uZSByZWxldmFudCBwYXJlbnQsIG9yIG5vIHJlbGV2YW50IHBhcmVudHMKKwkgKiAoYW5kIG11bHRpcGxlIGlycmVsZXZhbnQgb25lcyksIHRoZW4gd2UgY2FuJ3Qgc2VsZWN0IGEgcGFyZW50IGhlcmUKKwkgKiBhbmQgcmV0dXJuIE5VTEwuCisJICovCisJd2hpbGUgKGxpc3QpIHsKKwkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gbGlzdC0+aXRlbTsKKwkJbGlzdCA9IGxpc3QtPm5leHQ7CisJCWlmIChyZWxldmFudF9jb21taXQoY29tbWl0KSkgeworCQkJaWYgKHJlbGV2YW50KQorCQkJCXJldHVybiBOVUxMOworCQkJcmVsZXZhbnQgPSBjb21taXQ7CisJCX0KKwl9CisJcmV0dXJuIHJlbGV2YW50OworfQorCisvKgogICogVGhlIGdvYWwgaXMgdG8gZ2V0IFJFVl9UUkVFX05FVyBhcyB0aGUgcmVzdWx0IG9ubHkgaWYgdGhlCiAgKiBkaWZmIGNvbnNpc3RzIG9mIGFsbCAnKycgKGFuZCBubyBvdGhlciBjaGFuZ2VzKSwgUkVWX1RSRUVfT0xECiAgKiBpZiB0aGUgd2hvbGUgZGlmZiBpcyByZW1vdmFsIG9mIG9sZCBkYXRhLCBhbmQgb3RoZXJ3aXNlCkBAIC0zNjgsNyArNDUzLDggQEAKIAlESUZGX09QVF9TRVQob3B0aW9ucywgSEFTX0NIQU5HRVMpOwogfQogCi1zdGF0aWMgaW50IHJldl9jb21wYXJlX3RyZWUoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpwYXJlbnQsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3N0YXRpYyBpbnQgcmV2X2NvbXBhcmVfdHJlZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkgICAgc3RydWN0IGNvbW1pdCAqcGFyZW50LCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpCiB7CiAJc3RydWN0IHRyZWUgKnQxID0gcGFyZW50LT50cmVlOwogCXN0cnVjdCB0cmVlICp0MiA9IGNvbW1pdC0+dHJlZTsKQEAgLTQyOSwxMCArNTE1LDEyNSBAQAogCXJldHVybiByZXR2YWwgPj0gMCAmJiAodHJlZV9kaWZmZXJlbmNlID09IFJFVl9UUkVFX1NBTUUpOwogfQogCitzdHJ1Y3QgdHJlZXNhbWVfc3RhdGUgeworCXVuc2lnbmVkIGludCBucGFyZW50czsKKwl1bnNpZ25lZCBjaGFyIHRyZWVzYW1lW0ZMRVhfQVJSQVldOworfTsKKworc3RhdGljIHN0cnVjdCB0cmVlc2FtZV9zdGF0ZSAqaW5pdGlhbGlzZV90cmVlc2FtZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwl1bnNpZ25lZCBuID0gY29tbWl0X2xpc3RfY291bnQoY29tbWl0LT5wYXJlbnRzKTsKKwlzdHJ1Y3QgdHJlZXNhbWVfc3RhdGUgKnN0ID0geGNhbGxvYygxLCBzaXplb2YoKnN0KSArIG4pOworCXN0LT5ucGFyZW50cyA9IG47CisJYWRkX2RlY29yYXRpb24oJnJldnMtPnRyZWVzYW1lLCAmY29tbWl0LT5vYmplY3QsIHN0KTsKKwlyZXR1cm4gc3Q7Cit9CisKKy8qCisgKiBNdXN0IGJlIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlciByZW1vdmluZyB0aGUgbnRoX3BhcmVudCBmcm9tIGEgY29tbWl0J3MKKyAqIHBhcmVudCBsaXN0LCBpZiB3ZSBhcmUgbWFpbnRhaW5pbmcgdGhlIHBlci1wYXJlbnQgdHJlZXNhbWVbXSBkZWNvcmF0aW9uLgorICogVGhpcyBkb2VzIG5vdCByZWNhbGN1bGF0ZSB0aGUgbWFzdGVyIFRSRUVTQU1FIGZsYWcgLSB1cGRhdGVfdHJlZXNhbWUoKQorICogc2hvdWxkIGJlIGNhbGxlZCB0byB1cGRhdGUgaXQgYWZ0ZXIgYSBzZXF1ZW5jZSBvZiB0cmVlc2FtZVtdIG1vZGlmaWNhdGlvbnMKKyAqIHRoYXQgbWF5IGhhdmUgYWZmZWN0ZWQgaXQuCisgKi8KK3N0YXRpYyBpbnQgY29tcGFjdF90cmVlc2FtZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCwgdW5zaWduZWQgbnRoX3BhcmVudCkKK3sKKwlzdHJ1Y3QgdHJlZXNhbWVfc3RhdGUgKnN0OworCWludCBvbGRfc2FtZTsKKworCWlmICghY29tbWl0LT5wYXJlbnRzKSB7CisJCS8qCisJCSAqIEhhdmUganVzdCByZW1vdmVkIHRoZSBvbmx5IHBhcmVudCBmcm9tIGEgbm9uLW1lcmdlLgorCQkgKiBEaWZmZXJlbnQgaGFuZGxpbmcsIGFzIHdlIGxhY2sgZGVjb3JhdGlvbi4KKwkJICovCisJCWlmIChudGhfcGFyZW50ICE9IDApCisJCQlkaWUoImNvbXBhY3RfdHJlZXNhbWUgJXUiLCBudGhfcGFyZW50KTsKKwkJb2xkX3NhbWUgPSAhIShjb21taXQtPm9iamVjdC5mbGFncyAmIFRSRUVTQU1FKTsKKwkJaWYgKHJldl9zYW1lX3RyZWVfYXNfZW1wdHkocmV2cywgY29tbWl0KSkKKwkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IFRSRUVTQU1FOworCQllbHNlCisJCQljb21taXQtPm9iamVjdC5mbGFncyAmPSB+VFJFRVNBTUU7CisJCXJldHVybiBvbGRfc2FtZTsKKwl9CisKKwlzdCA9IGxvb2t1cF9kZWNvcmF0aW9uKCZyZXZzLT50cmVlc2FtZSwgJmNvbW1pdC0+b2JqZWN0KTsKKwlpZiAoIXN0IHx8IG50aF9wYXJlbnQgPj0gc3QtPm5wYXJlbnRzKQorCQlkaWUoImNvbXBhY3RfdHJlZXNhbWUgJXUiLCBudGhfcGFyZW50KTsKKworCW9sZF9zYW1lID0gc3QtPnRyZWVzYW1lW250aF9wYXJlbnRdOworCW1lbW1vdmUoc3QtPnRyZWVzYW1lICsgbnRoX3BhcmVudCwKKwkJc3QtPnRyZWVzYW1lICsgbnRoX3BhcmVudCArIDEsCisJCXN0LT5ucGFyZW50cyAtIG50aF9wYXJlbnQgLSAxKTsKKworCS8qCisJICogSWYgd2UndmUganVzdCBiZWNvbWUgYSBub24tbWVyZ2UgY29tbWl0LCB1cGRhdGUgVFJFRVNBTUUKKwkgKiBpbW1lZGlhdGVseSwgYW5kIHJlbW92ZSB0aGUgbm8tbG9uZ2VyLW5lZWRlZCBkZWNvcmF0aW9uLgorCSAqIElmIHN0aWxsIGEgbWVyZ2UsIGRlZmVyIHVwZGF0ZSB1bnRpbCB1cGRhdGVfdHJlZXNhbWUoKS4KKwkgKi8KKwlpZiAoLS1zdC0+bnBhcmVudHMgPT0gMSkgeworCQlpZiAoY29tbWl0LT5wYXJlbnRzLT5uZXh0KQorCQkJZGllKCJjb21wYWN0X3RyZWVzYW1lIHBhcmVudHMgbWlzbWF0Y2giKTsKKwkJaWYgKHN0LT50cmVlc2FtZVswXSAmJiByZXZzLT5kZW5zZSkKKwkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IFRSRUVTQU1FOworCQllbHNlCisJCQljb21taXQtPm9iamVjdC5mbGFncyAmPSB+VFJFRVNBTUU7CisJCWZyZWUoYWRkX2RlY29yYXRpb24oJnJldnMtPnRyZWVzYW1lLCAmY29tbWl0LT5vYmplY3QsIE5VTEwpKTsKKwl9CisKKwlyZXR1cm4gb2xkX3NhbWU7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCB1cGRhdGVfdHJlZXNhbWUoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpCit7CisJaWYgKGNvbW1pdC0+cGFyZW50cyAmJiBjb21taXQtPnBhcmVudHMtPm5leHQpIHsKKwkJdW5zaWduZWQgbjsKKwkJc3RydWN0IHRyZWVzYW1lX3N0YXRlICpzdDsKKwkJc3RydWN0IGNvbW1pdF9saXN0ICpwOworCQl1bnNpZ25lZCByZWxldmFudF9wYXJlbnRzOworCQl1bnNpZ25lZCByZWxldmFudF9jaGFuZ2UsIGlycmVsZXZhbnRfY2hhbmdlOworCisJCXN0ID0gbG9va3VwX2RlY29yYXRpb24oJnJldnMtPnRyZWVzYW1lLCAmY29tbWl0LT5vYmplY3QpOworCQlpZiAoIXN0KQorCQkJZGllKCJ1cGRhdGVfdHJlZXNhbWUgJXMiLCBzaGExX3RvX2hleChjb21taXQtPm9iamVjdC5zaGExKSk7CisJCXJlbGV2YW50X3BhcmVudHMgPSAwOworCQlyZWxldmFudF9jaGFuZ2UgPSBpcnJlbGV2YW50X2NoYW5nZSA9IDA7CisJCWZvciAocCA9IGNvbW1pdC0+cGFyZW50cywgbiA9IDA7IHA7IG4rKywgcCA9IHAtPm5leHQpIHsKKwkJCWlmIChyZWxldmFudF9jb21taXQocC0+aXRlbSkpIHsKKwkJCQlyZWxldmFudF9jaGFuZ2UgfD0gIXN0LT50cmVlc2FtZVtuXTsKKwkJCQlyZWxldmFudF9wYXJlbnRzKys7CisJCQl9IGVsc2UKKwkJCQlpcnJlbGV2YW50X2NoYW5nZSB8PSAhc3QtPnRyZWVzYW1lW25dOworCQl9CisJCWlmIChyZWxldmFudF9wYXJlbnRzID8gcmVsZXZhbnRfY2hhbmdlIDogaXJyZWxldmFudF9jaGFuZ2UpCisJCQljb21taXQtPm9iamVjdC5mbGFncyAmPSB+VFJFRVNBTUU7CisJCWVsc2UKKwkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IFRSRUVTQU1FOworCX0KKworCXJldHVybiBjb21taXQtPm9iamVjdC5mbGFncyAmIFRSRUVTQU1FOworfQorCitzdGF0aWMgaW5saW5lIGludCBsaW1pdGluZ19jYW5faW5jcmVhc2VfdHJlZXNhbWUoY29uc3Qgc3RydWN0IHJldl9pbmZvICpyZXZzKQoreworCS8qCisJICogVFJFRVNBTUUgaXMgaXJyZWxldmFudCB1bmxlc3MgcHJ1bmUgJiYgZGVuc2U7CisJICogaWYgc2ltcGxpZnlfaGlzdG9yeSBpcyBzZXQsIHdlIGNhbid0IGhhdmUgYSBtaXh0dXJlIG9mIFRSRUVTQU1FIGFuZAorCSAqICAgICFUUkVFU0FNRSBJTlRFUkVTVElORyBwYXJlbnRzIChhbmQgd2UgZG9uJ3QgaGF2ZSB0cmVlc2FtZVtdCisJICogICAgZGVjb3JhdGlvbiBhbnl3YXkpOworCSAqIGlmIGZpcnN0X3BhcmVudF9vbmx5IGlzIHNldCwgdGhlbiB0aGUgVFJFRVNBTUUgZmxhZyBpcyBsb2NrZWQKKwkgKiAgICBhZ2FpbnN0IHRoZSBmaXJzdCBwYXJlbnQgKGFuZCBhZ2FpbiB3ZSBsYWNrIHRyZWVzYW1lW10gZGVjb3JhdGlvbikuCisJICovCisJcmV0dXJuIHJldnMtPnBydW5lICYmIHJldnMtPmRlbnNlICYmCisJICAgICAgICFyZXZzLT5zaW1wbGlmeV9oaXN0b3J5ICYmCisJICAgICAgICFyZXZzLT5maXJzdF9wYXJlbnRfb25seTsKK30KKwogc3RhdGljIHZvaWQgdHJ5X3RvX3NpbXBsaWZ5X2NvbW1pdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKIHsKIAlzdHJ1Y3QgY29tbWl0X2xpc3QgKipwcCwgKnBhcmVudDsKLQlpbnQgdHJlZV9jaGFuZ2VkID0gMCwgdHJlZV9zYW1lID0gMCwgbnRoX3BhcmVudCA9IDA7CisJc3RydWN0IHRyZWVzYW1lX3N0YXRlICp0cyA9IE5VTEw7CisJaW50IHJlbGV2YW50X2NoYW5nZSA9IDAsIGlycmVsZXZhbnRfY2hhbmdlID0gMDsKKwlpbnQgcmVsZXZhbnRfcGFyZW50cywgbnRoX3BhcmVudDsKIAogCS8qCiAJICogSWYgd2UgZG9uJ3QgZG8gcHJ1bmluZywgZXZlcnl0aGluZyBpcyBpbnRlcmVzdGluZwpAQCAtNDU2LDMzICs2NTcsNTQgQEAKIAlpZiAoIXJldnMtPmRlbnNlICYmICFjb21taXQtPnBhcmVudHMtPm5leHQpCiAJCXJldHVybjsKIAotCXBwID0gJmNvbW1pdC0+cGFyZW50czsKLQl3aGlsZSAoKHBhcmVudCA9ICpwcCkgIT0gTlVMTCkgeworCWZvciAocHAgPSAmY29tbWl0LT5wYXJlbnRzLCBudGhfcGFyZW50ID0gMCwgcmVsZXZhbnRfcGFyZW50cyA9IDA7CisJICAgICAocGFyZW50ID0gKnBwKSAhPSBOVUxMOworCSAgICAgcHAgPSAmcGFyZW50LT5uZXh0LCBudGhfcGFyZW50KyspIHsKIAkJc3RydWN0IGNvbW1pdCAqcCA9IHBhcmVudC0+aXRlbTsKKwkJaWYgKHJlbGV2YW50X2NvbW1pdChwKSkKKwkJCXJlbGV2YW50X3BhcmVudHMrKzsKIAotCQkvKgotCQkgKiBEbyBub3QgY29tcGFyZSB3aXRoIGxhdGVyIHBhcmVudHMgd2hlbiB3ZSBjYXJlIG9ubHkgYWJvdXQKLQkJICogdGhlIGZpcnN0IHBhcmVudCBjaGFpbiwgaW4gb3JkZXIgdG8gYXZvaWQgZGVyYWlsaW5nIHRoZQotCQkgKiB0cmF2ZXJzYWwgdG8gZm9sbG93IGEgc2lkZSBicmFuY2ggdGhhdCBicm91Z2h0IGV2ZXJ5dGhpbmcKLQkJICogaW4gdGhlIHBhdGggd2UgYXJlIGxpbWl0ZWQgdG8gYnkgdGhlIHBhdGhzcGVjLgotCQkgKi8KLQkJaWYgKHJldnMtPmZpcnN0X3BhcmVudF9vbmx5ICYmIG50aF9wYXJlbnQrKykKLQkJCWJyZWFrOworCQlpZiAobnRoX3BhcmVudCA9PSAxKSB7CisJCQkvKgorCQkJICogVGhpcyBvdXIgc2Vjb25kIGxvb3AgaXRlcmF0aW9uIC0gc28gd2Ugbm93IGtub3cKKwkJCSAqIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIG1lcmdlLgorCQkJICoKKwkJCSAqIERvIG5vdCBjb21wYXJlIHdpdGggbGF0ZXIgcGFyZW50cyB3aGVuIHdlIGNhcmUgb25seSBhYm91dAorCQkJICogdGhlIGZpcnN0IHBhcmVudCBjaGFpbiwgaW4gb3JkZXIgdG8gYXZvaWQgZGVyYWlsaW5nIHRoZQorCQkJICogdHJhdmVyc2FsIHRvIGZvbGxvdyBhIHNpZGUgYnJhbmNoIHRoYXQgYnJvdWdodCBldmVyeXRoaW5nCisJCQkgKiBpbiB0aGUgcGF0aCB3ZSBhcmUgbGltaXRlZCB0byBieSB0aGUgcGF0aHNwZWMuCisJCQkgKi8KKwkJCWlmIChyZXZzLT5maXJzdF9wYXJlbnRfb25seSkKKwkJCQlicmVhazsKKwkJCS8qCisJCQkgKiBJZiB0aGlzIHdpbGwgcmVtYWluIGEgcG90ZW50aWFsbHktc2ltcGxpZmlhYmxlCisJCQkgKiBtZXJnZSwgcmVtZW1iZXIgcGVyLXBhcmVudCB0cmVlc2FtZSBpZiBuZWVkZWQuCisJCQkgKiBJbml0aWFsaXNlIHRoZSBhcnJheSB3aXRoIHRoZSBjb21wYXJpc29uIGZyb20gb3VyCisJCQkgKiBmaXJzdCBpdGVyYXRpb24uCisJCQkgKi8KKwkJCWlmIChyZXZzLT50cmVlc2FtZS5uYW1lICYmCisJCQkgICAgIXJldnMtPnNpbXBsaWZ5X2hpc3RvcnkgJiYKKwkJCSAgICAhKGNvbW1pdC0+b2JqZWN0LmZsYWdzICYgVU5JTlRFUkVTVElORykpIHsKKwkJCQl0cyA9IGluaXRpYWxpc2VfdHJlZXNhbWUocmV2cywgY29tbWl0KTsKKwkJCQlpZiAoIShpcnJlbGV2YW50X2NoYW5nZSB8fCByZWxldmFudF9jaGFuZ2UpKQorCQkJCQl0cy0+dHJlZXNhbWVbMF0gPSAxOworCQkJfQorCQl9CiAJCWlmIChwYXJzZV9jb21taXQocCkgPCAwKQogCQkJZGllKCJjYW5ub3Qgc2ltcGxpZnkgY29tbWl0ICVzIChiZWNhdXNlIG9mICVzKSIsCiAJCQkgICAgc2hhMV90b19oZXgoY29tbWl0LT5vYmplY3Quc2hhMSksCiAJCQkgICAgc2hhMV90b19oZXgocC0+b2JqZWN0LnNoYTEpKTsKIAkJc3dpdGNoIChyZXZfY29tcGFyZV90cmVlKHJldnMsIHAsIGNvbW1pdCkpIHsKIAkJY2FzZSBSRVZfVFJFRV9TQU1FOgotCQkJdHJlZV9zYW1lID0gMTsKLQkJCWlmICghcmV2cy0+c2ltcGxpZnlfaGlzdG9yeSB8fCAocC0+b2JqZWN0LmZsYWdzICYgVU5JTlRFUkVTVElORykpIHsKKwkJCWlmICghcmV2cy0+c2ltcGxpZnlfaGlzdG9yeSB8fCAhcmVsZXZhbnRfY29tbWl0KHApKSB7CiAJCQkJLyogRXZlbiBpZiBhIG1lcmdlIHdpdGggYW4gdW5pbnRlcmVzdGluZwogCQkJCSAqIHNpZGUgYnJhbmNoIGJyb3VnaHQgdGhlIGVudGlyZSBjaGFuZ2UKIAkJCQkgKiB3ZSBhcmUgaW50ZXJlc3RlZCBpbiwgd2UgZG8gbm90IHdhbnQKIAkJCQkgKiB0byBsb3NlIHRoZSBvdGhlciBicmFuY2hlcyBvZiB0aGlzCiAJCQkJICogbWVyZ2UsIHNvIHdlIGp1c3Qga2VlcCBnb2luZy4KIAkJCQkgKi8KLQkJCQlwcCA9ICZwYXJlbnQtPm5leHQ7CisJCQkJaWYgKHRzKQorCQkJCQl0cy0+dHJlZXNhbWVbbnRoX3BhcmVudF0gPSAxOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJcGFyZW50LT5uZXh0ID0gTlVMTDsKQEAgLTUxMCwxNSArNzMyLDI3IEBACiAJCS8qIGZhbGx0aHJvdWdoICovCiAJCWNhc2UgUkVWX1RSRUVfT0xEOgogCQljYXNlIFJFVl9UUkVFX0RJRkZFUkVOVDoKLQkJCXRyZWVfY2hhbmdlZCA9IDE7Ci0JCQlwcCA9ICZwYXJlbnQtPm5leHQ7CisJCQlpZiAocmVsZXZhbnRfY29tbWl0KHApKQorCQkJCXJlbGV2YW50X2NoYW5nZSA9IDE7CisJCQllbHNlCisJCQkJaXJyZWxldmFudF9jaGFuZ2UgPSAxOwogCQkJY29udGludWU7CiAJCX0KIAkJZGllKCJiYWQgdHJlZSBjb21wYXJlIGZvciBjb21taXQgJXMiLCBzaGExX3RvX2hleChjb21taXQtPm9iamVjdC5zaGExKSk7CiAJfQotCWlmICh0cmVlX2NoYW5nZWQgJiYgIXRyZWVfc2FtZSkKLQkJcmV0dXJuOwotCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IFRSRUVTQU1FOworCisJLyoKKwkgKiBUUkVFU0FNRSBpcyBzdHJhaWdodGZvcndhcmQgZm9yIHNpbmdsZS1wYXJlbnQgY29tbWl0cy4gRm9yIG1lcmdlCisJICogY29tbWl0cywgaXQgaXMgbW9zdCB1c2VmdWwgdG8gZGVmaW5lIGl0IHNvIHRoYXQgImlycmVsZXZhbnQiCisJICogcGFyZW50cyBjYW5ub3QgbWFrZSB1cyAhVFJFRVNBTUUgLSBpZiB3ZSBoYXZlIGFueSByZWxldmFudAorCSAqIHBhcmVudHMsIHRoZW4gd2Ugb25seSBjb25zaWRlciBUUkVFU0FNRW5lc3Mgd2l0aCByZXNwZWN0IHRvIHRoZW0sCisJICogYWxsb3dpbmcgaXJyZWxldmFudCBtZXJnZXMgZnJvbSB1bmludGVyZXN0aW5nIGJyYW5jaGVzIHRvIGJlCisJICogc2ltcGxpZmllZCBhd2F5LiBPbmx5IGlmIHdlIGhhdmUgb25seSBpcnJlbGV2YW50IHBhcmVudHMgZG8gd2UKKwkgKiBiYXNlIFRSRUVTQU1FIG9uIHRoZW0uIE5vdGUgdGhhdCB0aGlzIGxvZ2ljIGlzIHJlcGxpY2F0ZWQgaW4KKwkgKiB1cGRhdGVfdHJlZXNhbWUsIHdoaWNoIHNob3VsZCBiZSBrZXB0IGluIHN5bmMuCisJICovCisJaWYgKHJlbGV2YW50X3BhcmVudHMgPyAhcmVsZXZhbnRfY2hhbmdlIDogIWlycmVsZXZhbnRfY2hhbmdlKQorCQljb21taXQtPm9iamVjdC5mbGFncyB8PSBUUkVFU0FNRTsKIH0KIAogc3RhdGljIHZvaWQgY29tbWl0X2xpc3RfaW5zZXJ0X2J5X2RhdGVfY2FjaGVkKHN0cnVjdCBjb21taXQgKnAsIHN0cnVjdCBjb21taXRfbGlzdCAqKmhlYWQsCkBAIC04MDEsMTYgKzEwMzUsMTIgQEAKICAqIHRvIGZpbHRlciB0aGUgcmVzdWx0IG9mICJBLi5CIiBmdXJ0aGVyIHRvIHRoZSBvbmVzIHRoYXQgY2FuIGFjdHVhbGx5CiAgKiByZWFjaCBBLgogICovCi1zdGF0aWMgc3RydWN0IGNvbW1pdF9saXN0ICpjb2xsZWN0X2JvdHRvbV9jb21taXRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cykKK3N0YXRpYyBzdHJ1Y3QgY29tbWl0X2xpc3QgKmNvbGxlY3RfYm90dG9tX2NvbW1pdHMoc3RydWN0IGNvbW1pdF9saXN0ICpsaXN0KQogewotCXN0cnVjdCBjb21taXRfbGlzdCAqYm90dG9tID0gTlVMTDsKLQlpbnQgaTsKLQlmb3IgKGkgPSAwOyBpIDwgcmV2cy0+Y21kbGluZS5ucjsgaSsrKSB7Ci0JCXN0cnVjdCByZXZfY21kbGluZV9lbnRyeSAqZWxlbSA9ICZyZXZzLT5jbWRsaW5lLnJldltpXTsKLQkJaWYgKChlbGVtLT5mbGFncyAmIFVOSU5URVJFU1RJTkcpICYmCi0JCSAgICBlbGVtLT5pdGVtLT50eXBlID09IE9CSl9DT01NSVQpCi0JCQljb21taXRfbGlzdF9pbnNlcnQoKHN0cnVjdCBjb21taXQgKillbGVtLT5pdGVtLCAmYm90dG9tKTsKLQl9CisJc3RydWN0IGNvbW1pdF9saXN0ICplbGVtLCAqYm90dG9tID0gTlVMTDsKKwlmb3IgKGVsZW0gPSBsaXN0OyBlbGVtOyBlbGVtID0gZWxlbS0+bmV4dCkKKwkJaWYgKGVsZW0tPml0ZW0tPm9iamVjdC5mbGFncyAmIEJPVFRPTSkKKwkJCWNvbW1pdF9saXN0X2luc2VydChlbGVtLT5pdGVtLCAmYm90dG9tKTsKIAlyZXR1cm4gYm90dG9tOwogfQogCkBAIC04NDEsNyArMTA3MSw3IEBACiAJc3RydWN0IGNvbW1pdF9saXN0ICpib3R0b20gPSBOVUxMOwogCiAJaWYgKHJldnMtPmFuY2VzdHJ5X3BhdGgpIHsKLQkJYm90dG9tID0gY29sbGVjdF9ib3R0b21fY29tbWl0cyhyZXZzKTsKKwkJYm90dG9tID0gY29sbGVjdF9ib3R0b21fY29tbWl0cyhsaXN0KTsKIAkJaWYgKCFib3R0b20pCiAJCQlkaWUoIi0tYW5jZXN0cnktcGF0aCBnaXZlbiBidXQgdGhlcmUgYXJlIG5vIGJvdHRvbSBjb21taXRzIik7CiAJfQpAQCAtODk0LDEwICsxMTI0LDI2IEBACiAJCWZyZWVfY29tbWl0X2xpc3QoYm90dG9tKTsKIAl9CiAKKwkvKgorCSAqIENoZWNrIGlmIGFueSBjb21taXRzIGhhdmUgYmVjb21lIFRSRUVTQU1FIGJ5IHNvbWUgb2YgdGhlaXIgcGFyZW50cworCSAqIGJlY29taW5nIFVOSU5URVJFU1RJTkcuCisJICovCisJaWYgKGxpbWl0aW5nX2Nhbl9pbmNyZWFzZV90cmVlc2FtZShyZXZzKSkKKwkJZm9yIChsaXN0ID0gbmV3bGlzdDsgbGlzdDsgbGlzdCA9IGxpc3QtPm5leHQpIHsKKwkJCXN0cnVjdCBjb21taXQgKmMgPSBsaXN0LT5pdGVtOworCQkJaWYgKGMtPm9iamVjdC5mbGFncyAmIChVTklOVEVSRVNUSU5HIHwgVFJFRVNBTUUpKQorCQkJCWNvbnRpbnVlOworCQkJdXBkYXRlX3RyZWVzYW1lKHJldnMsIGMpOworCQl9CisKIAlyZXZzLT5jb21taXRzID0gbmV3bGlzdDsKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIEFkZCBhbiBlbnRyeSB0byByZWZzLT5jbWRsaW5lIHdpdGggdGhlIHNwZWNpZmllZCBpbmZvcm1hdGlvbi4KKyAqICpuYW1lIGlzIGNvcGllZC4KKyAqLwogc3RhdGljIHZvaWQgYWRkX3Jldl9jbWRsaW5lKHN0cnVjdCByZXZfaW5mbyAqcmV2cywKIAkJCSAgICBzdHJ1Y3Qgb2JqZWN0ICppdGVtLAogCQkJICAgIGNvbnN0IGNoYXIgKm5hbWUsCkBAIC05MDksMTIgKzExNTUsMjUgQEAKIAogCUFMTE9DX0dST1coaW5mby0+cmV2LCBuciArIDEsIGluZm8tPmFsbG9jKTsKIAlpbmZvLT5yZXZbbnJdLml0ZW0gPSBpdGVtOwotCWluZm8tPnJldltucl0ubmFtZSA9IG5hbWU7CisJaW5mby0+cmV2W25yXS5uYW1lID0geHN0cmR1cChuYW1lKTsKIAlpbmZvLT5yZXZbbnJdLndoZW5jZSA9IHdoZW5jZTsKIAlpbmZvLT5yZXZbbnJdLmZsYWdzID0gZmxhZ3M7CiAJaW5mby0+bnIrKzsKIH0KIAorc3RhdGljIHZvaWQgYWRkX3Jldl9jbWRsaW5lX2xpc3Qoc3RydWN0IHJldl9pbmZvICpyZXZzLAorCQkJCSBzdHJ1Y3QgY29tbWl0X2xpc3QgKmNvbW1pdF9saXN0LAorCQkJCSBpbnQgd2hlbmNlLAorCQkJCSB1bnNpZ25lZCBmbGFncykKK3sKKwl3aGlsZSAoY29tbWl0X2xpc3QpIHsKKwkJc3RydWN0IG9iamVjdCAqb2JqZWN0ID0gJmNvbW1pdF9saXN0LT5pdGVtLT5vYmplY3Q7CisJCWFkZF9yZXZfY21kbGluZShyZXZzLCBvYmplY3QsIHNoYTFfdG9faGV4KG9iamVjdC0+c2hhMSksCisJCQkJd2hlbmNlLCBmbGFncyk7CisJCWNvbW1pdF9saXN0ID0gY29tbWl0X2xpc3QtPm5leHQ7CisJfQorfQorCiBzdHJ1Y3QgYWxsX3JlZnNfY2IgewogCWludCBhbGxfZmxhZ3M7CiAJaW50IHdhcm5lZF9iYWRfcmVmbG9nOwpAQCAtMTAwMCw3ICsxMjU5LDcgQEAKIAljb25zdCBjaGFyICphcmcgPSBhcmdfOwogCiAJaWYgKCphcmcgPT0gJ14nKSB7Ci0JCWZsYWdzIF49IFVOSU5URVJFU1RJTkc7CisJCWZsYWdzIF49IFVOSU5URVJFU1RJTkcgfCBCT1RUT007CiAJCWFyZysrOwogCX0KIAlpZiAoZ2V0X3NoYTFfY29tbWl0dGlzaChhcmcsIHNoYTEpKQpAQCAtMTAzOCw3ICsxMjk3LDcgQEAKIAlESUZGX09QVF9TRVQoJnJldnMtPnBydW5pbmcsIFFVSUNLKTsKIAlyZXZzLT5wcnVuaW5nLmFkZF9yZW1vdmUgPSBmaWxlX2FkZF9yZW1vdmU7CiAJcmV2cy0+cHJ1bmluZy5jaGFuZ2UgPSBmaWxlX2NoYW5nZTsKLQlyZXZzLT5saWZvID0gMTsKKwlyZXZzLT5zb3J0X29yZGVyID0gUkVWX1NPUlRfSU5fR1JBUEhfT1JERVI7CiAJcmV2cy0+ZGVuc2UgPSAxOwogCXJldnMtPnByZWZpeCA9IHByZWZpeDsKIAlyZXZzLT5tYXhfYWdlID0gLTE7CkBAIC0xMDkyLDE0ICsxMzUxLDE1IEBACiAJYWRkX3BlbmRpbmdfb2JqZWN0KHJldnMsICZoZWFkLT5vYmplY3QsICJIRUFEIik7CiAJYWRkX3BlbmRpbmdfb2JqZWN0KHJldnMsICZvdGhlci0+b2JqZWN0LCAiTUVSR0VfSEVBRCIpOwogCWJhc2VzID0gZ2V0X21lcmdlX2Jhc2VzKGhlYWQsIG90aGVyLCAxKTsKLQlhZGRfcGVuZGluZ19jb21taXRfbGlzdChyZXZzLCBiYXNlcywgVU5JTlRFUkVTVElORyk7CisJYWRkX3Jldl9jbWRsaW5lX2xpc3QocmV2cywgYmFzZXMsIFJFVl9DTURfTUVSR0VfQkFTRSwgVU5JTlRFUkVTVElORyB8IEJPVFRPTSk7CisJYWRkX3BlbmRpbmdfY29tbWl0X2xpc3QocmV2cywgYmFzZXMsIFVOSU5URVJFU1RJTkcgfCBCT1RUT00pOwogCWZyZWVfY29tbWl0X2xpc3QoYmFzZXMpOwogCWhlYWQtPm9iamVjdC5mbGFncyB8PSBTWU1NRVRSSUNfTEVGVDsKIAogCWlmICghYWN0aXZlX25yKQogCQlyZWFkX2NhY2hlKCk7CiAJZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjsgaSsrKSB7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CiAJCWlmICghY2Vfc3RhZ2UoY2UpKQogCQkJY29udGludWU7CiAJCWlmIChjZV9wYXRoX21hdGNoKGNlLCAmcmV2cy0+cHJ1bmVfZGF0YSkpIHsKQEAgLTExMjgsMTMgKzEzODgsMTUgQEAKIAlpbnQgY2FudF9iZV9maWxlbmFtZSA9IHJldmFyZ19vcHQgJiBSRVZBUkdfQ0FOTk9UX0JFX0ZJTEVOQU1FOwogCXVuc2lnbmVkIGdldF9zaGExX2ZsYWdzID0gMDsKIAorCWZsYWdzID0gZmxhZ3MgJiBVTklOVEVSRVNUSU5HID8gZmxhZ3MgfCBCT1RUT00gOiBmbGFncyAmIH5CT1RUT007CisKIAlkb3Rkb3QgPSBzdHJzdHIoYXJnLCAiLi4iKTsKIAlpZiAoZG90ZG90KSB7CiAJCXVuc2lnbmVkIGNoYXIgZnJvbV9zaGExWzIwXTsKIAkJY29uc3QgY2hhciAqbmV4dCA9IGRvdGRvdCArIDI7CiAJCWNvbnN0IGNoYXIgKnRoaXMgPSBhcmc7CiAJCWludCBzeW1tZXRyaWMgPSAqbmV4dCA9PSAnLic7Ci0JCXVuc2lnbmVkIGludCBmbGFnc19leGNsdWRlID0gZmxhZ3MgXiBVTklOVEVSRVNUSU5HOworCQl1bnNpZ25lZCBpbnQgZmxhZ3NfZXhjbHVkZSA9IGZsYWdzIF4gKFVOSU5URVJFU1RJTkcgfCBCT1RUT00pOwogCQlzdGF0aWMgY29uc3QgY2hhciBoZWFkX2J5X2RlZmF1bHRbXSA9ICJIRUFEIjsKIAkJdW5zaWduZWQgaW50IGFfZmxhZ3M7CiAKQEAgLTExNzksNiArMTQ0MSw5IEBACiAKIAkJCWlmIChzeW1tZXRyaWMpIHsKIAkJCQlleGNsdWRlID0gZ2V0X21lcmdlX2Jhc2VzKGEsIGIsIDEpOworCQkJCWFkZF9yZXZfY21kbGluZV9saXN0KHJldnMsIGV4Y2x1ZGUsCisJCQkJCQkgICAgIFJFVl9DTURfTUVSR0VfQkFTRSwKKwkJCQkJCSAgICAgZmxhZ3NfZXhjbHVkZSk7CiAJCQkJYWRkX3BlbmRpbmdfY29tbWl0X2xpc3QocmV2cywgZXhjbHVkZSwKIAkJCQkJCQlmbGFnc19leGNsdWRlKTsKIAkJCQlmcmVlX2NvbW1pdF9saXN0KGV4Y2x1ZGUpOwpAQCAtMTIwNywxMyArMTQ3MiwxMyBAQAogCWRvdGRvdCA9IHN0cnN0cihhcmcsICJeISIpOwogCWlmIChkb3Rkb3QgJiYgIWRvdGRvdFsyXSkgewogCQkqZG90ZG90ID0gMDsKLQkJaWYgKCFhZGRfcGFyZW50c19vbmx5KHJldnMsIGFyZywgZmxhZ3MgXiBVTklOVEVSRVNUSU5HKSkKKwkJaWYgKCFhZGRfcGFyZW50c19vbmx5KHJldnMsIGFyZywgZmxhZ3MgXiAoVU5JTlRFUkVTVElORyB8IEJPVFRPTSkpKQogCQkJKmRvdGRvdCA9ICdeJzsKIAl9CiAKIAlsb2NhbF9mbGFncyA9IDA7CiAJaWYgKCphcmcgPT0gJ14nKSB7Ci0JCWxvY2FsX2ZsYWdzID0gVU5JTlRFUkVTVElORzsKKwkJbG9jYWxfZmxhZ3MgPSBVTklOVEVSRVNUSU5HIHwgQk9UVE9NOwogCQlhcmcrKzsKIAl9CiAKQEAgLTEyNzYsNyArMTU0MSw3IEBACiAJCQl9CiAJCQlkaWUoIm9wdGlvbnMgbm90IHN1cHBvcnRlZCBpbiAtLXN0ZGluIG1vZGUiKTsKIAkJfQotCQlpZiAoaGFuZGxlX3JldmlzaW9uX2FyZyh4c3RyZHVwKHNiLmJ1ZiksIHJldnMsIDAsCisJCWlmIChoYW5kbGVfcmV2aXNpb25fYXJnKHNiLmJ1ZiwgcmV2cywgMCwKIAkJCQkJUkVWQVJHX0NBTk5PVF9CRV9GSUxFTkFNRSkpCiAJCQlkaWUoImJhZCByZXZpc2lvbiAnJXMnIiwgc2IuYnVmKTsKIAl9CkBAIC0xMzc0LDcgKzE2MzksNyBAQAogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLW1lcmdlIikpIHsKIAkJcmV2cy0+c2hvd19tZXJnZSA9IDE7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tdG9wby1vcmRlciIpKSB7Ci0JCXJldnMtPmxpZm8gPSAxOworCQlyZXZzLT5zb3J0X29yZGVyID0gUkVWX1NPUlRfSU5fR1JBUEhfT1JERVI7CiAJCXJldnMtPnRvcG9fb3JkZXIgPSAxOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXNpbXBsaWZ5LW1lcmdlcyIpKSB7CiAJCXJldnMtPnNpbXBsaWZ5X21lcmdlcyA9IDE7CkBAIC0xMzkyLDcgKzE2NTcsMTAgQEAKIAkJcmV2cy0+cHJ1bmUgPSAxOwogCQlsb2FkX3JlZl9kZWNvcmF0aW9ucyhERUNPUkFURV9TSE9SVF9SRUZTKTsKIAl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1kYXRlLW9yZGVyIikpIHsKLQkJcmV2cy0+bGlmbyA9IDA7CisJCXJldnMtPnNvcnRfb3JkZXIgPSBSRVZfU09SVF9CWV9DT01NSVRfREFURTsKKwkJcmV2cy0+dG9wb19vcmRlciA9IDE7CisJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tYXV0aG9yLWRhdGUtb3JkZXIiKSkgeworCQlyZXZzLT5zb3J0X29yZGVyID0gUkVWX1NPUlRfQllfQVVUSE9SX0RBVEU7CiAJCXJldnMtPnRvcG9fb3JkZXIgPSAxOwogCX0gZWxzZSBpZiAoIXByZWZpeGNtcChhcmcsICItLWVhcmx5LW91dHB1dCIpKSB7CiAJCWludCBjb3VudCA9IDEwMDsKQEAgLTE2OTAsNyArMTk1OCw3IEBACiAJCWhhbmRsZV9yZWZzKHN1Ym1vZHVsZSwgcmV2cywgKmZsYWdzLCBmb3JfZWFjaF9icmFuY2hfcmVmX3N1Ym1vZHVsZSk7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tYmlzZWN0IikpIHsKIAkJaGFuZGxlX3JlZnMoc3VibW9kdWxlLCByZXZzLCAqZmxhZ3MsIGZvcl9lYWNoX2JhZF9iaXNlY3RfcmVmKTsKLQkJaGFuZGxlX3JlZnMoc3VibW9kdWxlLCByZXZzLCAqZmxhZ3MgXiBVTklOVEVSRVNUSU5HLCBmb3JfZWFjaF9nb29kX2Jpc2VjdF9yZWYpOworCQloYW5kbGVfcmVmcyhzdWJtb2R1bGUsIHJldnMsICpmbGFncyBeIChVTklOVEVSRVNUSU5HIHwgQk9UVE9NKSwgZm9yX2VhY2hfZ29vZF9iaXNlY3RfcmVmKTsKIAkJcmV2cy0+YmlzZWN0ID0gMTsKIAl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS10YWdzIikpIHsKIAkJaGFuZGxlX3JlZnMoc3VibW9kdWxlLCByZXZzLCAqZmxhZ3MsIGZvcl9lYWNoX3RhZ19yZWZfc3VibW9kdWxlKTsKQEAgLTE3MTYsNyArMTk4NCw3IEBACiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tcmVmbG9nIikpIHsKIAkJaGFuZGxlX3JlZmxvZyhyZXZzLCAqZmxhZ3MpOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLW5vdCIpKSB7Ci0JCSpmbGFncyBePSBVTklOVEVSRVNUSU5HOworCQkqZmxhZ3MgXj0gVU5JTlRFUkVTVElORyB8IEJPVFRPTTsKIAl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1uby13YWxrIikpIHsKIAkJcmV2cy0+bm9fd2FsayA9IFJFVklTSU9OX1dBTEtfTk9fV0FMS19TT1JURUQ7CiAJfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tbm8td2Fsaz0iKSkgewpAQCAtMTg5Nyw2ICsyMTY1LDEyIEBACiAJaWYgKHJldnMtPmNvbWJpbmVfbWVyZ2VzKQogCQlyZXZzLT5pZ25vcmVfbWVyZ2VzID0gMDsKIAlyZXZzLT5kaWZmb3B0LmFiYnJldiA9IHJldnMtPmFiYnJldjsKKworCWlmIChyZXZzLT5saW5lX2xldmVsX3RyYXZlcnNlKSB7CisJCXJldnMtPmxpbWl0ZWQgPSAxOworCQlyZXZzLT50b3BvX29yZGVyID0gMTsKKwl9CisKIAlkaWZmX3NldHVwX2RvbmUoJnJldnMtPmRpZmZvcHQpOwogCiAJZ3JlcF9jb21taXRfcGF0dGVybl90eXBlKEdSRVBfUEFUVEVSTl9UWVBFX1VOU1BFQ0lGSUVELApAQCAtMTkzMCwyOCArMjIwNCwzMiBAQAogCWwtPm5leHQgPSBhZGRfZGVjb3JhdGlvbigmcmV2cy0+Y2hpbGRyZW4sICZwYXJlbnQtPm9iamVjdCwgbCk7CiB9CiAKLXN0YXRpYyBpbnQgcmVtb3ZlX2R1cGxpY2F0ZV9wYXJlbnRzKHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3N0YXRpYyBpbnQgcmVtb3ZlX2R1cGxpY2F0ZV9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KQogeworCXN0cnVjdCB0cmVlc2FtZV9zdGF0ZSAqdHMgPSBsb29rdXBfZGVjb3JhdGlvbigmcmV2cy0+dHJlZXNhbWUsICZjb21taXQtPm9iamVjdCk7CiAJc3RydWN0IGNvbW1pdF9saXN0ICoqcHAsICpwOwogCWludCBzdXJ2aXZpbmdfcGFyZW50czsKIAogCS8qIEV4YW1pbmUgZXhpc3RpbmcgcGFyZW50cyB3aGlsZSBtYXJraW5nIG9uZXMgd2UgaGF2ZSBzZWVuLi4uICovCiAJcHAgPSAmY29tbWl0LT5wYXJlbnRzOworCXN1cnZpdmluZ19wYXJlbnRzID0gMDsKIAl3aGlsZSAoKHAgPSAqcHApICE9IE5VTEwpIHsKIAkJc3RydWN0IGNvbW1pdCAqcGFyZW50ID0gcC0+aXRlbTsKIAkJaWYgKHBhcmVudC0+b2JqZWN0LmZsYWdzICYgVE1QX01BUkspIHsKIAkJCSpwcCA9IHAtPm5leHQ7CisJCQlpZiAodHMpCisJCQkJY29tcGFjdF90cmVlc2FtZShyZXZzLCBjb21taXQsIHN1cnZpdmluZ19wYXJlbnRzKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCXBhcmVudC0+b2JqZWN0LmZsYWdzIHw9IFRNUF9NQVJLOworCQlzdXJ2aXZpbmdfcGFyZW50cysrOwogCQlwcCA9ICZwLT5uZXh0OwogCX0KLQkvKiBjb3VudCB0aGVtIHdoaWxlIGNsZWFyaW5nIHRoZSB0ZW1wb3JhcnkgbWFyayAqLwotCXN1cnZpdmluZ19wYXJlbnRzID0gMDsKKwkvKiBjbGVhciB0aGUgdGVtcG9yYXJ5IG1hcmsgKi8KIAlmb3IgKHAgPSBjb21taXQtPnBhcmVudHM7IHA7IHAgPSBwLT5uZXh0KSB7CiAJCXAtPml0ZW0tPm9iamVjdC5mbGFncyAmPSB+VE1QX01BUks7Ci0JCXN1cnZpdmluZ19wYXJlbnRzKys7CiAJfQorCS8qIG5vIHVwZGF0ZV90cmVlc2FtZSgpIC0gcmVtb3ZpbmcgZHVwbGljYXRlcyBjYW4ndCBhZmZlY3QgVFJFRVNBTUUgKi8KIAlyZXR1cm4gc3Vydml2aW5nX3BhcmVudHM7CiB9CiAKQEAgLTE5NzEsOSArMjI0OSwxNTcgQEAKIAlyZXR1cm4gc3Q7CiB9CiAKK3N0YXRpYyBpbnQgbWFya19yZWR1bmRhbnRfcGFyZW50cyhzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKmggPSByZWR1Y2VfaGVhZHMoY29tbWl0LT5wYXJlbnRzKTsKKwlpbnQgaSA9IDAsIG1hcmtlZCA9IDA7CisJc3RydWN0IGNvbW1pdF9saXN0ICpwbywgKnBuOworCisJLyogV2FudCB0aGVzZSBmb3Igc2FuaXR5LWNoZWNraW5nIG9ubHkgKi8KKwlpbnQgb3JpZ19jbnQgPSBjb21taXRfbGlzdF9jb3VudChjb21taXQtPnBhcmVudHMpOworCWludCBjbnQgPSBjb21taXRfbGlzdF9jb3VudChoKTsKKworCS8qCisJICogTm90IHJlYWR5IHRvIHJlbW92ZSBpdGVtcyB5ZXQsIGp1c3QgbWFyayB0aGVtIGZvciBub3csIGJhc2VkCisJICogb24gdGhlIG91dHB1dCBvZiByZWR1Y2VfaGVhZHMoKS4gcmVkdWNlX2hlYWRzIG91dHB1dHMgdGhlIHJlZHVjZWQKKwkgKiBzZXQgaW4gaXRzIG9yaWdpbmFsIG9yZGVyLCBzbyB0aGlzIGlzbid0IHRvbyBoYXJkLgorCSAqLworCXBvID0gY29tbWl0LT5wYXJlbnRzOworCXBuID0gaDsKKwl3aGlsZSAocG8pIHsKKwkJaWYgKHBuICYmIHBvLT5pdGVtID09IHBuLT5pdGVtKSB7CisJCQlwbiA9IHBuLT5uZXh0OworCQkJaSsrOworCQl9IGVsc2UgeworCQkJcG8tPml0ZW0tPm9iamVjdC5mbGFncyB8PSBUTVBfTUFSSzsKKwkJCW1hcmtlZCsrOworCQl9CisJCXBvPXBvLT5uZXh0OworCX0KKworCWlmIChpICE9IGNudCB8fCBjbnQrbWFya2VkICE9IG9yaWdfY250KQorCQlkaWUoIm1hcmtfcmVkdW5kYW50X3BhcmVudHMgJWQgJWQgJWQgJWQiLCBvcmlnX2NudCwgY250LCBpLCBtYXJrZWQpOworCisJZnJlZV9jb21taXRfbGlzdChoKTsKKworCXJldHVybiBtYXJrZWQ7Cit9CisKK3N0YXRpYyBpbnQgbWFya190cmVlc2FtZV9yb290X3BhcmVudHMoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpCit7CisJc3RydWN0IGNvbW1pdF9saXN0ICpwOworCWludCBtYXJrZWQgPSAwOworCisJZm9yIChwID0gY29tbWl0LT5wYXJlbnRzOyBwOyBwID0gcC0+bmV4dCkgeworCQlzdHJ1Y3QgY29tbWl0ICpwYXJlbnQgPSBwLT5pdGVtOworCQlpZiAoIXBhcmVudC0+cGFyZW50cyAmJiAocGFyZW50LT5vYmplY3QuZmxhZ3MgJiBUUkVFU0FNRSkpIHsKKwkJCXBhcmVudC0+b2JqZWN0LmZsYWdzIHw9IFRNUF9NQVJLOworCQkJbWFya2VkKys7CisJCX0KKwl9CisKKwlyZXR1cm4gbWFya2VkOworfQorCisvKgorICogQXdrd2FyZCBuYW1pbmcgLSB0aGlzIG1lYW5zIG9uZSBwYXJlbnQgd2UgYXJlIFRSRUVTQU1FIHRvLgorICogY2YgbWFya190cmVlc2FtZV9yb290X3BhcmVudHM6IHJvb3QgcGFyZW50cyB0aGF0IGFyZSBUUkVFU0FNRSAodG8gYW4KKyAqIGVtcHR5IHRyZWUpLiBCZXR0ZXIgbmFtZSBzdWdnZXN0aW9ucz8KKyAqLworc3RhdGljIGludCBsZWF2ZV9vbmVfdHJlZXNhbWVfdG9fcGFyZW50KHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KQoreworCXN0cnVjdCB0cmVlc2FtZV9zdGF0ZSAqdHMgPSBsb29rdXBfZGVjb3JhdGlvbigmcmV2cy0+dHJlZXNhbWUsICZjb21taXQtPm9iamVjdCk7CisJc3RydWN0IGNvbW1pdCAqdW5tYXJrZWQgPSBOVUxMLCAqbWFya2VkID0gTlVMTDsKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKnA7CisJdW5zaWduZWQgbjsKKworCWZvciAocCA9IGNvbW1pdC0+cGFyZW50cywgbiA9IDA7IHA7IHAgPSBwLT5uZXh0LCBuKyspIHsKKwkJaWYgKHRzLT50cmVlc2FtZVtuXSkgeworCQkJaWYgKHAtPml0ZW0tPm9iamVjdC5mbGFncyAmIFRNUF9NQVJLKSB7CisJCQkJaWYgKCFtYXJrZWQpCisJCQkJCW1hcmtlZCA9IHAtPml0ZW07CisJCQl9IGVsc2UgeworCQkJCWlmICghdW5tYXJrZWQpIHsKKwkJCQkJdW5tYXJrZWQgPSBwLT5pdGVtOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCX0KKwl9CisKKwkvKgorCSAqIElmIHdlIGFyZSBUUkVFU0FNRSB0byBhIG1hcmtlZC1mb3ItZGVsZXRpb24gcGFyZW50LCBidXQgbm90IHRvIGFueQorCSAqIHVubWFya2VkIHBhcmVudHMsIHVubWFyayB0aGUgZmlyc3QgVFJFRVNBTUUgcGFyZW50LiBUaGlzIGlzIHRoZQorCSAqIHBhcmVudCB0aGF0IHRoZSBkZWZhdWx0IHNpbXBsaWZ5X2hpc3Rvcnk9PTEgc2NhbiB3b3VsZCBoYXZlIGZvbGxvd2VkLAorCSAqIGFuZCBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gb21pdCB0aGF0IHBhdGggd2hlbiBhc2tpbmcgZm9yIGEKKwkgKiBzaW1wbGlmaWVkIGZ1bGwgaGlzdG9yeS4gUmV0YWluaW5nIGl0IGltcHJvdmVzIHRoZSBjaGFuY2VzIG9mCisJICogdW5kZXJzdGFuZGluZyBvZGQgbWlzc2VkIG1lcmdlcyB0aGF0IHRvb2sgYW4gb2xkIHZlcnNpb24gb2YgYSBmaWxlLgorCSAqCisJICogRXhhbXBsZToKKwkgKgorCSAqICAgSS0tLS0tLS0tKlggICAgICAgQSBtb2RpZmllZCB0aGUgZmlsZSwgYnV0IG1haW5saW5lIG1lcmdlIFggdXNlZAorCSAqICAgIFwgICAgICAgLyAgICAgICAgIi1zIG91cnMiLCBzbyB0b29rIHRoZSB2ZXJzaW9uIGZyb20gSS4gWCBpcworCSAqICAgICBgLSpBLS0nICAgICAgICAgVFJFRVNBTUUgdG8gSSBhbmQgIVRSRUVTQU1FIHRvIEEuCisJICoKKwkgKiBEZWZhdWx0IGxvZyBmcm9tIFggd291bGQgcHJvZHVjZSAiSSIuIFdpdGhvdXQgdGhpcyBjaGVjaywKKwkgKiAtLWZ1bGwtaGlzdG9yeSAtLXNpbXBsaWZ5LW1lcmdlcyB3b3VsZCBwcm9kdWNlICJJLUEtWCIsIHNob3dpbmcKKwkgKiB0aGUgbWVyZ2UgY29tbWl0IFggYW5kIHRoYXQgaXQgY2hhbmdlZCBBLCBidXQgbm90IG1ha2luZyBjbGVhciB0aGF0CisJICogaXQgaGFkIGp1c3QgdGFrZW4gdGhlIEkgdmVyc2lvbi4gV2l0aCB0aGlzIGNoZWNrLCB0aGUgdG9wb2xvZ3kgYWJvdmUKKwkgKiBpcyByZXRhaW5lZC4KKwkgKgorCSAqIE5vdGUgdGhhdCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBzaW1wbGlmaWNhdGlvbiBjaG9vc2VzIGEgZGlmZmVyZW50CisJICogVFJFRVNBTUUgcGFyZW50IGZyb20gdGhlIGRlZmF1bHQsIGluIHdoaWNoIGNhc2UgdGhpcyB0ZXN0IGRvZXNuJ3QKKwkgKiBhY3RpdmF0ZSwgYW5kIHdlIF9kb18gZHJvcCB0aGUgZGVmYXVsdCBwYXJlbnQuIEV4YW1wbGU6CisJICoKKwkgKiAgIEktLS0tLS1YICAgICAgICAgQSBtb2RpZmllZCB0aGUgZmlsZSwgYnV0IGl0IHdhcyByZXZlcnRlZCBpbiBCLAorCSAqICAgIFwgICAgLyAgICAgICAgICBtZWFuaW5nIG1haW5saW5lIG1lcmdlIFggaXMgVFJFRVNBTUUgdG8gYm90aAorCSAqICAgICpBLSpCICAgICAgICAgICBwYXJlbnRzLgorCSAqCisJICogRGVmYXVsdCBsb2cgd291bGQgcHJvZHVjZSAiSSIgYnkgZm9sbG93aW5nIHRoZSBmaXJzdCBwYXJlbnQ7CisJICogLS1mdWxsLWhpc3RvcnkgLS1zaW1wbGlmeS1tZXJnZXMgd2lsbCBwcm9kdWNlICJJLUEtQiIuIEJ1dCB0aGlzIGlzIGEKKwkgKiByZWFzb25hYmxlIHJlc3VsdCAtIGl0IHByZXNlbnRzIGEgbG9naWNhbCBmdWxsIGhpc3RvcnkgbGVhZGluZyBmcm9tCisJICogSSB0byBYLCBhbmQgWCBpcyBub3QgYW4gaW1wb3J0YW50IG1lcmdlLgorCSAqLworCWlmICghdW5tYXJrZWQgJiYgbWFya2VkKSB7CisJCW1hcmtlZC0+b2JqZWN0LmZsYWdzICY9IH5UTVBfTUFSSzsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmVtb3ZlX21hcmtlZF9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KQoreworCXN0cnVjdCBjb21taXRfbGlzdCAqKnBwLCAqcDsKKwlpbnQgbnRoX3BhcmVudCwgcmVtb3ZlZCA9IDA7CisKKwlwcCA9ICZjb21taXQtPnBhcmVudHM7CisJbnRoX3BhcmVudCA9IDA7CisJd2hpbGUgKChwID0gKnBwKSAhPSBOVUxMKSB7CisJCXN0cnVjdCBjb21taXQgKnBhcmVudCA9IHAtPml0ZW07CisJCWlmIChwYXJlbnQtPm9iamVjdC5mbGFncyAmIFRNUF9NQVJLKSB7CisJCQlwYXJlbnQtPm9iamVjdC5mbGFncyAmPSB+VE1QX01BUks7CisJCQkqcHAgPSBwLT5uZXh0OworCQkJZnJlZShwKTsKKwkJCXJlbW92ZWQrKzsKKwkJCWNvbXBhY3RfdHJlZXNhbWUocmV2cywgY29tbWl0LCBudGhfcGFyZW50KTsKKwkJCWNvbnRpbnVlOworCQl9CisJCXBwID0gJnAtPm5leHQ7CisJCW50aF9wYXJlbnQrKzsKKwl9CisKKwkvKiBSZW1vdmluZyBwYXJlbnRzIGNhbiBvbmx5IGluY3JlYXNlIFRSRUVTQU1FbmVzcyAqLworCWlmIChyZW1vdmVkICYmICEoY29tbWl0LT5vYmplY3QuZmxhZ3MgJiBUUkVFU0FNRSkpCisJCXVwZGF0ZV90cmVlc2FtZShyZXZzLCBjb21taXQpOworCisJcmV0dXJuIG50aF9wYXJlbnQ7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgY29tbWl0X2xpc3QgKipzaW1wbGlmeV9vbmUoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQsIHN0cnVjdCBjb21taXRfbGlzdCAqKnRhaWwpCiB7CiAJc3RydWN0IGNvbW1pdF9saXN0ICpwOworCXN0cnVjdCBjb21taXQgKnBhcmVudDsKIAlzdHJ1Y3QgbWVyZ2Vfc2ltcGxpZnlfc3RhdGUgKnN0LCAqcHN0OwogCWludCBjbnQ7CiAKQEAgLTIwMTUsNyArMjQ0MSw5IEBACiAJfQogCiAJLyoKLQkgKiBSZXdyaXRlIG91ciBsaXN0IG9mIHBhcmVudHMuCisJICogUmV3cml0ZSBvdXIgbGlzdCBvZiBwYXJlbnRzLiBOb3RlIHRoYXQgdGhpcyBjYW5ub3QKKwkgKiBhZmZlY3Qgb3VyIFRSRUVTQU1FIGZsYWdzIGluIGFueSB3YXkgLSBhIGNvbW1pdCBpcworCSAqIGFsd2F5cyBUUkVFU0FNRSB0byBpdHMgc2ltcGxpZmljYXRpb24uCiAJICovCiAJZm9yIChwID0gY29tbWl0LT5wYXJlbnRzOyBwOyBwID0gcC0+bmV4dCkgewogCQlwc3QgPSBsb2NhdGVfc2ltcGxpZnlfc3RhdGUocmV2cywgcC0+aXRlbSk7CkBAIC0yMDI3LDQzICsyNDU1LDUzIEBACiAJaWYgKHJldnMtPmZpcnN0X3BhcmVudF9vbmx5KQogCQljbnQgPSAxOwogCWVsc2UKLQkJY250ID0gcmVtb3ZlX2R1cGxpY2F0ZV9wYXJlbnRzKGNvbW1pdCk7CisJCWNudCA9IHJlbW92ZV9kdXBsaWNhdGVfcGFyZW50cyhyZXZzLCBjb21taXQpOwogCiAJLyoKIAkgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGFyZSBhIG1lcmdlIGFuZCBvbmUgc2lkZSBicmFuY2gKIAkgKiBkb2VzIG5vdCBoYXZlIGFueSBjb21taXQgdGhhdCB0b3VjaGVzIHRoZSBnaXZlbiBwYXRoczsKLQkgKiBpbiBzdWNoIGEgY2FzZSwgdGhlIGltbWVkaWF0ZSBwYXJlbnRzIHdpbGwgYmUgcmV3cml0dGVuCi0JICogdG8gZGlmZmVyZW50IGNvbW1pdHMuCisJICogaW4gc3VjaCBhIGNhc2UsIHRoZSBpbW1lZGlhdGUgcGFyZW50IGZyb20gdGhhdCBicmFuY2gKKwkgKiB3aWxsIGJlIHJld3JpdHRlbiB0byBiZSB0aGUgbWVyZ2UgYmFzZS4KIAkgKgogCSAqICAgICAgby0tLS1YCQlYOiB0aGUgY29tbWl0IHdlIGFyZSBsb29raW5nIGF0OwogCSAqICAgICAvICAgIC8JCW86IGEgY29tbWl0IHRoYXQgdG91Y2hlcyB0aGUgcGF0aHM7CiAJICogLS0tby0tLS0nCiAJICoKLQkgKiBGdXJ0aGVyIHJlZHVjZSB0aGUgcGFyZW50cyBieSByZW1vdmluZyByZWR1bmRhbnQgcGFyZW50cy4KKwkgKiBGdXJ0aGVyLCBhIG1lcmdlIG9mIGFuIGluZGVwZW5kZW50IGJyYW5jaCB0aGF0IGRvZXNuJ3QKKwkgKiB0b3VjaCB0aGUgcGF0aCB3aWxsIHJlZHVjZSB0byBhIHRyZWVzYW1lIHJvb3QgcGFyZW50OgorCSAqCisJICogIC0tLS1vLS0tLVgJCVg6IHRoZSBjb21taXQgd2UgYXJlIGxvb2tpbmcgYXQ7CisJICogICAgICAgICAgLwkJbzogYSBjb21taXQgdGhhdCB0b3VjaGVzIHRoZSBwYXRoczsKKwkgKiAgICAgICAgIHIJCXI6IGEgcm9vdCBjb21taXQgbm90IHRvdWNoaW5nIHRoZSBwYXRocworCSAqCisJICogRGV0ZWN0IGFuZCBzaW1wbGlmeSBib3RoIGNhc2VzLgogCSAqLwogCWlmICgxIDwgY250KSB7Ci0JCXN0cnVjdCBjb21taXRfbGlzdCAqaCA9IHJlZHVjZV9oZWFkcyhjb21taXQtPnBhcmVudHMpOwotCQljbnQgPSBjb21taXRfbGlzdF9jb3VudChoKTsKLQkJZnJlZV9jb21taXRfbGlzdChjb21taXQtPnBhcmVudHMpOwotCQljb21taXQtPnBhcmVudHMgPSBoOworCQlpbnQgbWFya2VkID0gbWFya19yZWR1bmRhbnRfcGFyZW50cyhyZXZzLCBjb21taXQpOworCQltYXJrZWQgKz0gbWFya190cmVlc2FtZV9yb290X3BhcmVudHMocmV2cywgY29tbWl0KTsKKwkJaWYgKG1hcmtlZCkKKwkJCW1hcmtlZCAtPSBsZWF2ZV9vbmVfdHJlZXNhbWVfdG9fcGFyZW50KHJldnMsIGNvbW1pdCk7CisJCWlmIChtYXJrZWQpCisJCQljbnQgPSByZW1vdmVfbWFya2VkX3BhcmVudHMocmV2cywgY29tbWl0KTsKIAl9CiAKIAkvKgogCSAqIEEgY29tbWl0IHNpbXBsaWZpZXMgdG8gaXRzZWxmIGlmIGl0IGlzIGEgcm9vdCwgaWYgaXQgaXMKIAkgKiBVTklOVEVSRVNUSU5HLCBpZiBpdCB0b3VjaGVzIHRoZSBnaXZlbiBwYXRocywgb3IgaWYgaXQgaXMgYQotCSAqIG1lcmdlIGFuZCBpdHMgcGFyZW50cyBzaW1wbGlmaWVzIHRvIG1vcmUgdGhhbiBvbmUgY29tbWl0cworCSAqIG1lcmdlIGFuZCBpdHMgcGFyZW50cyBkb24ndCBzaW1wbGlmeSB0byBvbmUgcmVsZXZhbnQgY29tbWl0CiAJICogKHRoZSBmaXJzdCB0d28gY2FzZXMgYXJlIGFscmVhZHkgaGFuZGxlZCBhdCB0aGUgYmVnaW5uaW5nIG9mCiAJICogdGhpcyBmdW5jdGlvbikuCiAJICoKLQkgKiBPdGhlcndpc2UsIGl0IHNpbXBsaWZpZXMgdG8gd2hhdCBpdHMgc29sZSBwYXJlbnQgc2ltcGxpZmllcyB0by4KKwkgKiBPdGhlcndpc2UsIGl0IHNpbXBsaWZpZXMgdG8gd2hhdCBpdHMgc29sZSByZWxldmFudCBwYXJlbnQKKwkgKiBzaW1wbGlmaWVzIHRvLgogCSAqLwogCWlmICghY250IHx8CiAJICAgIChjb21taXQtPm9iamVjdC5mbGFncyAmIFVOSU5URVJFU1RJTkcpIHx8CiAJICAgICEoY29tbWl0LT5vYmplY3QuZmxhZ3MgJiBUUkVFU0FNRSkgfHwKLQkgICAgKDEgPCBjbnQpKQorCSAgICAocGFyZW50ID0gb25lX3JlbGV2YW50X3BhcmVudChyZXZzLCBjb21taXQtPnBhcmVudHMpKSA9PSBOVUxMKQogCQlzdC0+c2ltcGxpZmllZCA9IGNvbW1pdDsKIAllbHNlIHsKLQkJcHN0ID0gbG9jYXRlX3NpbXBsaWZ5X3N0YXRlKHJldnMsIGNvbW1pdC0+cGFyZW50cy0+aXRlbSk7CisJCXBzdCA9IGxvY2F0ZV9zaW1wbGlmeV9zdGF0ZShyZXZzLCBwYXJlbnQpOwogCQlzdC0+c2ltcGxpZmllZCA9IHBzdC0+c2ltcGxpZmllZDsKIAl9CiAJcmV0dXJuIHRhaWw7CkBAIC0yMTU5LDYgKzI1OTcsMTEgQEAKIAlpZiAoIXJldnMtPmxlYWtfcGVuZGluZykKIAkJZnJlZShsaXN0KTsKIAorCS8qIFNpZ25hbCB3aGV0aGVyIHdlIG5lZWQgcGVyLXBhcmVudCB0cmVlc2FtZSBkZWNvcmF0aW9uICovCisJaWYgKHJldnMtPnNpbXBsaWZ5X21lcmdlcyB8fAorCSAgICAocmV2cy0+bGltaXRlZCAmJiBsaW1pdGluZ19jYW5faW5jcmVhc2VfdHJlZXNhbWUocmV2cykpKQorCQlyZXZzLT50cmVlc2FtZS5uYW1lID0gInRyZWVzYW1lIjsKKwogCWlmIChyZXZzLT5ub193YWxrICE9IFJFVklTSU9OX1dBTEtfTk9fV0FMS19VTlNPUlRFRCkKIAkJY29tbWl0X2xpc3Rfc29ydF9ieV9kYXRlKCZyZXZzLT5jb21taXRzKTsKIAlpZiAocmV2cy0+bm9fd2FsaykKQEAgLTIxNjcsNyArMjYxMCw5IEBACiAJCWlmIChsaW1pdF9saXN0KHJldnMpIDwgMCkKIAkJCXJldHVybiAtMTsKIAlpZiAocmV2cy0+dG9wb19vcmRlcikKLQkJc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcigmcmV2cy0+Y29tbWl0cywgcmV2cy0+bGlmbyk7CisJCXNvcnRfaW5fdG9wb2xvZ2ljYWxfb3JkZXIoJnJldnMtPmNvbW1pdHMsIHJldnMtPnNvcnRfb3JkZXIpOworCWlmIChyZXZzLT5saW5lX2xldmVsX3RyYXZlcnNlKQorCQlsaW5lX2xvZ19maWx0ZXIocmV2cyk7CiAJaWYgKHJldnMtPnNpbXBsaWZ5X21lcmdlcykKIAkJc2ltcGxpZnlfbWVyZ2VzKHJldnMpOwogCWlmIChyZXZzLT5jaGlsZHJlbi5uYW1lKQpAQCAtMjE3NSwxMiArMjYyMCw2IEBACiAJcmV0dXJuIDA7CiB9CiAKLWVudW0gcmV3cml0ZV9yZXN1bHQgewotCXJld3JpdGVfb25lX29rLAotCXJld3JpdGVfb25lX25vcGFyZW50cywKLQlyZXdyaXRlX29uZV9lcnJvcgotfTsKLQogc3RhdGljIGVudW0gcmV3cml0ZV9yZXN1bHQgcmV3cml0ZV9vbmUoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICoqcHApCiB7CiAJc3RydWN0IGNvbW1pdF9saXN0ICpjYWNoZSA9IE5VTEw7CkBAIC0yMTkwLDI0ICsyNjI5LDI1IEBACiAJCWlmICghcmV2cy0+bGltaXRlZCkKIAkJCWlmIChhZGRfcGFyZW50c190b19saXN0KHJldnMsIHAsICZyZXZzLT5jb21taXRzLCAmY2FjaGUpIDwgMCkKIAkJCQlyZXR1cm4gcmV3cml0ZV9vbmVfZXJyb3I7Ci0JCWlmIChwLT5wYXJlbnRzICYmIHAtPnBhcmVudHMtPm5leHQpCi0JCQlyZXR1cm4gcmV3cml0ZV9vbmVfb2s7CiAJCWlmIChwLT5vYmplY3QuZmxhZ3MgJiBVTklOVEVSRVNUSU5HKQogCQkJcmV0dXJuIHJld3JpdGVfb25lX29rOwogCQlpZiAoIShwLT5vYmplY3QuZmxhZ3MgJiBUUkVFU0FNRSkpCiAJCQlyZXR1cm4gcmV3cml0ZV9vbmVfb2s7CiAJCWlmICghcC0+cGFyZW50cykKIAkJCXJldHVybiByZXdyaXRlX29uZV9ub3BhcmVudHM7Ci0JCSpwcCA9IHAtPnBhcmVudHMtPml0ZW07CisJCWlmICgocCA9IG9uZV9yZWxldmFudF9wYXJlbnQocmV2cywgcC0+cGFyZW50cykpID09IE5VTEwpCisJCQlyZXR1cm4gcmV3cml0ZV9vbmVfb2s7CisJCSpwcCA9IHA7CiAJfQogfQogCi1zdGF0aWMgaW50IHJld3JpdGVfcGFyZW50cyhzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK2ludCByZXdyaXRlX3BhcmVudHMoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQsCisJcmV3cml0ZV9wYXJlbnRfZm5fdCByZXdyaXRlX3BhcmVudCkKIHsKIAlzdHJ1Y3QgY29tbWl0X2xpc3QgKipwcCA9ICZjb21taXQtPnBhcmVudHM7CiAJd2hpbGUgKCpwcCkgewogCQlzdHJ1Y3QgY29tbWl0X2xpc3QgKnBhcmVudCA9ICpwcDsKLQkJc3dpdGNoIChyZXdyaXRlX29uZShyZXZzLCAmcGFyZW50LT5pdGVtKSkgeworCQlzd2l0Y2ggKHJld3JpdGVfcGFyZW50KHJldnMsICZwYXJlbnQtPml0ZW0pKSB7CiAJCWNhc2UgcmV3cml0ZV9vbmVfb2s6CiAJCQlicmVhazsKIAkJY2FzZSByZXdyaXRlX29uZV9ub3BhcmVudHM6CkBAIC0yMjE4LDcgKzI2NTgsNyBAQAogCQl9CiAJCXBwID0gJnBhcmVudC0+bmV4dDsKIAl9Ci0JcmVtb3ZlX2R1cGxpY2F0ZV9wYXJlbnRzKGNvbW1pdCk7CisJcmVtb3ZlX2R1cGxpY2F0ZV9wYXJlbnRzKHJldnMsIGNvbW1pdCk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTIzMjQsNyArMjc2NCw3IEBACiAJcmV0dXJuIHJldHZhbDsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgd2FudF9hbmNlc3RyeShzdHJ1Y3QgcmV2X2luZm8gKnJldnMpCitzdGF0aWMgaW5saW5lIGludCB3YW50X2FuY2VzdHJ5KGNvbnN0IHN0cnVjdCByZXZfaW5mbyAqcmV2cykKIHsKIAlyZXR1cm4gKHJldnMtPnJld3JpdGVfcGFyZW50cyB8fCByZXZzLT5jaGlsZHJlbi5uYW1lKTsKIH0KQEAgLTIzNDIsMTAgKzI3ODIsNyBAQAogCWlmIChyZXZzLT5taW5fYWdlICE9IC0xICYmIChjb21taXQtPmRhdGUgPiByZXZzLT5taW5fYWdlKSkKIAkJcmV0dXJuIGNvbW1pdF9pZ25vcmU7CiAJaWYgKHJldnMtPm1pbl9wYXJlbnRzIHx8IChyZXZzLT5tYXhfcGFyZW50cyA+PSAwKSkgewotCQlpbnQgbiA9IDA7Ci0JCXN0cnVjdCBjb21taXRfbGlzdCAqcDsKLQkJZm9yIChwID0gY29tbWl0LT5wYXJlbnRzOyBwOyBwID0gcC0+bmV4dCkKLQkJCW4rKzsKKwkJaW50IG4gPSBjb21taXRfbGlzdF9jb3VudChjb21taXQtPnBhcmVudHMpOwogCQlpZiAoKG4gPCByZXZzLT5taW5fcGFyZW50cykgfHwKIAkJICAgICgocmV2cy0+bWF4X3BhcmVudHMgPj0gMCkgJiYgKG4gPiByZXZzLT5tYXhfcGFyZW50cykpKQogCQkJcmV0dXJuIGNvbW1pdF9pZ25vcmU7CkBAIC0yMzU1LDEyICsyNzkyLDIzIEBACiAJaWYgKHJldnMtPnBydW5lICYmIHJldnMtPmRlbnNlKSB7CiAJCS8qIENvbW1pdCB3aXRob3V0IGNoYW5nZXM/ICovCiAJCWlmIChjb21taXQtPm9iamVjdC5mbGFncyAmIFRSRUVTQU1FKSB7CisJCQlpbnQgbjsKKwkJCXN0cnVjdCBjb21taXRfbGlzdCAqcDsKIAkJCS8qIGRyb3AgbWVyZ2VzIHVubGVzcyB3ZSB3YW50IHBhcmVudGhvb2QgKi8KIAkJCWlmICghd2FudF9hbmNlc3RyeShyZXZzKSkKIAkJCQlyZXR1cm4gY29tbWl0X2lnbm9yZTsKLQkJCS8qIG5vbi1tZXJnZSAtIGFsd2F5cyBpZ25vcmUgaXQgKi8KLQkJCWlmICghY29tbWl0LT5wYXJlbnRzIHx8ICFjb21taXQtPnBhcmVudHMtPm5leHQpCi0JCQkJcmV0dXJuIGNvbW1pdF9pZ25vcmU7CisJCQkvKgorCQkJICogSWYgd2Ugd2FudCBhbmNlc3RyeSwgdGhlbiBuZWVkIHRvIGtlZXAgYW55IG1lcmdlcworCQkJICogYmV0d2VlbiByZWxldmFudCBjb21taXRzIHRvIHRpZSB0b2dldGhlciB0b3BvbG9neS4KKwkJCSAqIEZvciBjb25zaXN0ZW5jeSB3aXRoIFRSRUVTQU1FIGFuZCBzaW1wbGlmaWNhdGlvbgorCQkJICogdXNlICJyZWxldmFudCIgaGVyZSByYXRoZXIgdGhhbiBqdXN0IElOVEVSRVNUSU5HLAorCQkJICogdG8gdHJlYXQgYm90dG9tIGNvbW1pdChzKSBhcyBwYXJ0IG9mIHRoZSB0b3BvbG9neS4KKwkJCSAqLworCQkJZm9yIChuID0gMCwgcCA9IGNvbW1pdC0+cGFyZW50czsgcDsgcCA9IHAtPm5leHQpCisJCQkJaWYgKHJlbGV2YW50X2NvbW1pdChwLT5pdGVtKSkKKwkJCQkJaWYgKCsrbiA+PSAyKQorCQkJCQkJcmV0dXJuIGNvbW1pdF9zaG93OworCQkJcmV0dXJuIGNvbW1pdF9pZ25vcmU7CiAJCX0KIAl9CiAJcmV0dXJuIGNvbW1pdF9zaG93OwpAQCAtMjM3Myw3ICsyODIxLDE1IEBACiAJaWYgKGFjdGlvbiA9PSBjb21taXRfc2hvdyAmJgogCSAgICAhcmV2cy0+c2hvd19hbGwgJiYKIAkgICAgcmV2cy0+cHJ1bmUgJiYgcmV2cy0+ZGVuc2UgJiYgd2FudF9hbmNlc3RyeShyZXZzKSkgewotCQlpZiAocmV3cml0ZV9wYXJlbnRzKHJldnMsIGNvbW1pdCkgPCAwKQorCQkvKgorCQkgKiAtLWZ1bGwtZGlmZiBvbiBzaW1wbGlmaWVkIHBhcmVudHMgaXMgbm8gZ29vZDogaXQKKwkJICogd2lsbCBzaG93IHNwdXJpb3VzIGNoYW5nZXMgZnJvbSB0aGUgY29tbWl0cyB0aGF0CisJCSAqIHdlcmUgZWxpZGVkLiAgU28gd2Ugc2F2ZSB0aGUgcGFyZW50cyBvbiB0aGUgc2lkZQorCQkgKiB3aGVuIC0tZnVsbC1kaWZmIGlzIGluIGVmZmVjdC4KKwkJICovCisJCWlmIChyZXZzLT5mdWxsX2RpZmYpCisJCQlzYXZlX3BhcmVudHMocmV2cywgY29tbWl0KTsKKwkJaWYgKHJld3JpdGVfcGFyZW50cyhyZXZzLCBjb21taXQsIHJld3JpdGVfb25lKSA8IDApCiAJCQlyZXR1cm4gY29tbWl0X2Vycm9yOwogCX0KIAlyZXR1cm4gYWN0aW9uOwpAQCAtMjM5Miw2ICsyODQ4LDcgQEAKIAkJZnJlZShlbnRyeSk7CiAKIAkJaWYgKHJldnMtPnJlZmxvZ19pbmZvKSB7CisJCQlzYXZlX3BhcmVudHMocmV2cywgY29tbWl0KTsKIAkJCWZha2VfcmVmbG9nX3BhcmVudChyZXZzLT5yZWZsb2dfaW5mbywgY29tbWl0KTsKIAkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzICY9IH4oQURERUQgfCBTRUVOIHwgU0hPV04pOwogCQl9CkBAIC0yNDIzLDI1ICsyODgwLDIzIEBACiAJcmV0dXJuIE5VTEw7CiB9CiAKKy8qCisgKiBSZXR1cm4gdHJ1ZSBmb3IgZW50cmllcyB0aGF0IGhhdmUgbm90IHlldCBiZWVuIHNob3duLiAgKFRoaXMgaXMgYW4KKyAqIG9iamVjdF9hcnJheV9lYWNoX2Z1bmNfdC4pCisgKi8KK3N0YXRpYyBpbnQgZW50cnlfdW5zaG93bihzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICplbnRyeSwgdm9pZCAqY2JfZGF0YV91bnVzZWQpCit7CisJcmV0dXJuICEoZW50cnktPml0ZW0tPmZsYWdzICYgU0hPV04pOworfQorCisvKgorICogSWYgYXJyYXkgaXMgb24gdGhlIHZlcmdlIG9mIGEgcmVhbGxvYywgZ2FyYmFnZS1jb2xsZWN0IGFueSBlbnRyaWVzCisgKiB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHNob3duIHRvIHRyeSB0byBmcmVlIHVwIHNvbWUgc3BhY2UuCisgKi8KIHN0YXRpYyB2b2lkIGdjX2JvdW5kYXJ5KHN0cnVjdCBvYmplY3RfYXJyYXkgKmFycmF5KQogewotCXVuc2lnbmVkIG5yID0gYXJyYXktPm5yOwotCXVuc2lnbmVkIGFsbG9jID0gYXJyYXktPmFsbG9jOwotCXN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgKm9iamVjdHMgPSBhcnJheS0+b2JqZWN0czsKLQotCWlmIChhbGxvYyA8PSBucikgewotCQl1bnNpZ25lZCBpLCBqOwotCQlmb3IgKGkgPSBqID0gMDsgaSA8IG5yOyBpKyspIHsKLQkJCWlmIChvYmplY3RzW2ldLml0ZW0tPmZsYWdzICYgU0hPV04pCi0JCQkJY29udGludWU7Ci0JCQlpZiAoaSAhPSBqKQotCQkJCW9iamVjdHNbal0gPSBvYmplY3RzW2ldOwotCQkJaisrOwotCQl9Ci0JCWZvciAoaSA9IGo7IGkgPCBucjsgaSsrKQotCQkJb2JqZWN0c1tpXS5pdGVtID0gTlVMTDsKLQkJYXJyYXktPm5yID0gajsKLQl9CisJaWYgKGFycmF5LT5uciA9PSBhcnJheS0+YWxsb2MpCisJCW9iamVjdF9hcnJheV9maWx0ZXIoYXJyYXksIGVudHJ5X3Vuc2hvd24sIE5VTEwpOwogfQogCiBzdGF0aWMgdm9pZCBjcmVhdGVfYm91bmRhcnlfY29tbWl0X2xpc3Qoc3RydWN0IHJldl9pbmZvICpyZXZzKQpAQCAtMjQ4Miw3ICsyOTM3LDcgQEAKIAkgKiBJZiByZXZzLT50b3BvX29yZGVyIGlzIHNldCwgc29ydCB0aGUgYm91bmRhcnkgY29tbWl0cwogCSAqIGluIHRvcG9sb2dpY2FsIG9yZGVyCiAJICovCi0Jc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcigmcmV2cy0+Y29tbWl0cywgcmV2cy0+bGlmbyk7CisJc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcigmcmV2cy0+Y29tbWl0cywgcmV2cy0+c29ydF9vcmRlcik7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgY29tbWl0ICpnZXRfcmV2aXNpb25faW50ZXJuYWwoc3RydWN0IHJldl9pbmZvICpyZXZzKQpAQCAtMjU5Myw2ICszMDQ4LDggQEAKIAljID0gZ2V0X3JldmlzaW9uX2ludGVybmFsKHJldnMpOwogCWlmIChjICYmIHJldnMtPmdyYXBoKQogCQlncmFwaF91cGRhdGUocmV2cy0+Z3JhcGgsIGMpOworCWlmICghYykKKwkJZnJlZV9zYXZlZF9wYXJlbnRzKHJldnMpOwogCXJldHVybiBjOwogfQogCkBAIC0yNjI0LDMgKzMwODEsNTQgQEAKIAlmcHV0cyhtYXJrLCBzdGRvdXQpOwogCXB1dGNoYXIoJyAnKTsKIH0KKworZGVmaW5lX2NvbW1pdF9zbGFiKHNhdmVkX3BhcmVudHMsIHN0cnVjdCBjb21taXRfbGlzdCAqKTsKKworI2RlZmluZSBFTVBUWV9QQVJFTlRfTElTVCAoKHN0cnVjdCBjb21taXRfbGlzdCAqKS0xKQorCit2b2lkIHNhdmVfcGFyZW50cyhzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKipwcDsKKworCWlmICghcmV2cy0+c2F2ZWRfcGFyZW50c19zbGFiKSB7CisJCXJldnMtPnNhdmVkX3BhcmVudHNfc2xhYiA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBzYXZlZF9wYXJlbnRzKSk7CisJCWluaXRfc2F2ZWRfcGFyZW50cyhyZXZzLT5zYXZlZF9wYXJlbnRzX3NsYWIpOworCX0KKworCXBwID0gc2F2ZWRfcGFyZW50c19hdChyZXZzLT5zYXZlZF9wYXJlbnRzX3NsYWIsIGNvbW1pdCk7CisKKwkvKgorCSAqIFdoZW4gd2Fsa2luZyB3aXRoIHJlZmxvZ3MsIHdlIG1heSB2aXNpdCB0aGUgc2FtZSBjb21taXQKKwkgKiBzZXZlcmFsIHRpbWVzOiBvbmNlIGZvciBlYWNoIGFwcGVhcmFuY2UgaW4gdGhlIHJlZmxvZy4KKwkgKgorCSAqIEluIHRoaXMgY2FzZSwgc2F2ZV9wYXJlbnRzKCkgd2lsbCBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMuCisJICogV2Ugd2FudCB0byBrZWVwIG9ubHkgdGhlIGZpcnN0IHNldCBvZiBwYXJlbnRzLiAgV2UgbmVlZCB0bworCSAqIHN0b3JlIGEgc2VudGluZWwgdmFsdWUgZm9yIGFuIGVtcHR5IChpLmUuLCBOVUxMKSBwYXJlbnQKKwkgKiBsaXN0IHRvIGRpc3Rpbmd1aXNoIGl0IGZyb20gYSBub3QteWV0LXNhdmVkIGxpc3QsIGhvd2V2ZXIuCisJICovCisJaWYgKCpwcCkKKwkJcmV0dXJuOworCWlmIChjb21taXQtPnBhcmVudHMpCisJCSpwcCA9IGNvcHlfY29tbWl0X2xpc3QoY29tbWl0LT5wYXJlbnRzKTsKKwllbHNlCisJCSpwcCA9IEVNUFRZX1BBUkVOVF9MSVNUOworfQorCitzdHJ1Y3QgY29tbWl0X2xpc3QgKmdldF9zYXZlZF9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0KQoreworCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50czsKKworCWlmICghcmV2cy0+c2F2ZWRfcGFyZW50c19zbGFiKQorCQlyZXR1cm4gY29tbWl0LT5wYXJlbnRzOworCisJcGFyZW50cyA9ICpzYXZlZF9wYXJlbnRzX2F0KHJldnMtPnNhdmVkX3BhcmVudHNfc2xhYiwgY29tbWl0KTsKKwlpZiAocGFyZW50cyA9PSBFTVBUWV9QQVJFTlRfTElTVCkKKwkJcmV0dXJuIE5VTEw7CisJcmV0dXJuIHBhcmVudHM7Cit9CisKK3ZvaWQgZnJlZV9zYXZlZF9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cykKK3sKKwlpZiAocmV2cy0+c2F2ZWRfcGFyZW50c19zbGFiKQorCQljbGVhcl9zYXZlZF9wYXJlbnRzKHJldnMtPnNhdmVkX3BhcmVudHNfc2xhYik7Cit9CmRpZmYgLS1naXQgYS9yZXZpc2lvbi5oIGIvcmV2aXNpb24uaAppbmRleCAwMWJkMmI3Li5lN2YxZDIxIDEwMDY0NAotLS0gYS9yZXZpc2lvbi5oCisrKyBiL3JldmlzaW9uLmgKQEAgLTQsNiArNCw3IEBACiAjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgogI2luY2x1ZGUgImdyZXAuaCIKICNpbmNsdWRlICJub3Rlcy5oIgorI2luY2x1ZGUgImNvbW1pdC5oIgogCiAjZGVmaW5lIFNFRU4JCSgxdTw8MCkKICNkZWZpbmUgVU5JTlRFUkVTVElORyAgICgxdTw8MSkKQEAgLTE1LDcgKzE2LDggQEAKICNkZWZpbmUgQURERUQJCSgxdTw8NykJLyogUGFyZW50cyBhbHJlYWR5IHBhcnNlZCBhbmQgYWRkZWQ/ICovCiAjZGVmaW5lIFNZTU1FVFJJQ19MRUZUCSgxdTw8OCkKICNkZWZpbmUgUEFUQ0hTQU1FCSgxdTw8OSkKLSNkZWZpbmUgQUxMX1JFVl9GTEFHUwkoKDF1PDwxMCktMSkKKyNkZWZpbmUgQk9UVE9NCQkoMXU8PDEwKQorI2RlZmluZSBBTExfUkVWX0ZMQUdTCSgoMXU8PDExKS0xKQogCiAjZGVmaW5lIERFQ09SQVRFX1NIT1JUX1JFRlMJMQogI2RlZmluZSBERUNPUkFURV9GVUxMX1JFRlMJMgpAQCAtMjMsNiArMjUsNyBAQAogc3RydWN0IHJldl9pbmZvOwogc3RydWN0IGxvZ19pbmZvOwogc3RydWN0IHN0cmluZ19saXN0Oworc3RydWN0IHNhdmVkX3BhcmVudHM7CiAKIHN0cnVjdCByZXZfY21kbGluZV9pbmZvIHsKIAl1bnNpZ25lZCBpbnQgbnI7CkBAIC0zNSw2ICszOCw3IEBACiAJCQlSRVZfQ01EX1BBUkVOVFNfT05MWSwKIAkJCVJFVl9DTURfTEVGVCwKIAkJCVJFVl9DTURfUklHSFQsCisJCQlSRVZfQ01EX01FUkdFX0JBU0UsCiAJCQlSRVZfQ01EX1JFVgogCQl9IHdoZW5jZTsKIAkJdW5zaWduZWQgZmxhZ3M7CkBAIC02MCw2ICs2NCwxMCBAQAogCWNvbnN0IGNoYXIgKnByZWZpeDsKIAljb25zdCBjaGFyICpkZWY7CiAJc3RydWN0IHBhdGhzcGVjIHBydW5lX2RhdGE7CisKKwkvKiB0b3BvLXNvcnQgKi8KKwllbnVtIHJldl9zb3J0X29yZGVyIHNvcnRfb3JkZXI7CisKIAl1bnNpZ25lZCBpbnQJZWFybHlfb3V0cHV0OjEsCiAJCQlpZ25vcmVfbWlzc2luZzoxOwogCkBAIC03MCw3ICs3OCw2IEBACiAJCQlzaG93X2FsbDoxLAogCQkJcmVtb3ZlX2VtcHR5X3RyZWVzOjEsCiAJCQlzaW1wbGlmeV9oaXN0b3J5OjEsCi0JCQlsaWZvOjEsCiAJCQl0b3BvX29yZGVyOjEsCiAJCQlzaW1wbGlmeV9tZXJnZXM6MSwKIAkJCXNpbXBsaWZ5X2J5X2RlY29yYXRpb246MSwKQEAgLTk2LDcgKzEwMyw4IEBACiAJCQljaGVycnlfbWFyazoxLAogCQkJYmlzZWN0OjEsCiAJCQlhbmNlc3RyeV9wYXRoOjEsCi0JCQlmaXJzdF9wYXJlbnRfb25seToxOworCQkJZmlyc3RfcGFyZW50X29ubHk6MSwKKwkJCWxpbmVfbGV2ZWxfdHJhdmVyc2U6MTsKIAogCS8qIERpZmYgZmxhZ3MgKi8KIAl1bnNpZ25lZCBpbnQJZGlmZjoxLApAQCAtMTM3LDYgKzE0NSw3IEBACiAJaW50CQludW1iZXJlZF9maWxlczsKIAlpbnQJCXJlcm9sbF9jb3VudDsKIAljaGFyCQkqbWVzc2FnZV9pZDsKKwlzdHJ1Y3QgaWRlbnRfc3BsaXQgZnJvbV9pZGVudDsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3QgKnJlZl9tZXNzYWdlX2lkczsKIAlpbnQJCWFkZF9zaWdub2ZmOwogCWNvbnN0IGNoYXIJKmV4dHJhX2hlYWRlcnM7CkBAIC0xNjcsNiArMTc2LDcgQEAKIAlzdHJ1Y3QgcmVmbG9nX3dhbGtfaW5mbyAqcmVmbG9nX2luZm87CiAJc3RydWN0IGRlY29yYXRpb24gY2hpbGRyZW47CiAJc3RydWN0IGRlY29yYXRpb24gbWVyZ2Vfc2ltcGxpZmljYXRpb247CisJc3RydWN0IGRlY29yYXRpb24gdHJlZXNhbWU7CiAKIAkvKiBub3Rlcy1zcGVjaWZpYyBvcHRpb25zOiB3aGljaCByZWZzIHRvIHNob3cgKi8KIAlzdHJ1Y3QgZGlzcGxheV9ub3Rlc19vcHQgbm90ZXNfb3B0OwpAQCAtMTc1LDYgKzE4NSwxMiBAQAogCWludCBjb3VudF9sZWZ0OwogCWludCBjb3VudF9yaWdodDsKIAlpbnQgY291bnRfc2FtZTsKKworCS8qIGxpbmUgbGV2ZWwgcmFuZ2UgdGhhdCB3ZSBhcmUgY2hhc2luZyAqLworCXN0cnVjdCBkZWNvcmF0aW9uIGxpbmVfbG9nX2RhdGE7CisKKwkvKiBjb3BpZXMgb2YgdGhlIHBhcmVudCBsaXN0cywgZm9yIC0tZnVsbC1kaWZmIGRpc3BsYXkgKi8KKwlzdHJ1Y3Qgc2F2ZWRfcGFyZW50cyAqc2F2ZWRfcGFyZW50c19zbGFiOwogfTsKIAogI2RlZmluZSBSRVZfVFJFRV9TQU1FCQkwCkBAIC0xOTUsMTkgKzIxMSwyMyBAQAogfTsKIAogZXh0ZXJuIHZvaWQgaW5pdF9yZXZpc2lvbnMoc3RydWN0IHJldl9pbmZvICpyZXZzLCBjb25zdCBjaGFyICpwcmVmaXgpOwotZXh0ZXJuIGludCBzZXR1cF9yZXZpc2lvbnMoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBzZXR1cF9yZXZpc2lvbl9vcHQgKik7CitleHRlcm4gaW50IHNldHVwX3JldmlzaW9ucyhpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCSAgIHN0cnVjdCBzZXR1cF9yZXZpc2lvbl9vcHQgKik7CiBleHRlcm4gdm9pZCBwYXJzZV9yZXZpc2lvbl9vcHQoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgcGFyc2Vfb3B0X2N0eF90ICpjdHgsCi0JCQkJIGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdGlvbnMsCi0JCQkJIGNvbnN0IGNoYXIgKiBjb25zdCB1c2FnZXN0cltdKTsKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHRpb25zLAorCQkJICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCB1c2FnZXN0cltdKTsKICNkZWZpbmUgUkVWQVJHX0NBTk5PVF9CRV9GSUxFTkFNRSAwMQogI2RlZmluZSBSRVZBUkdfQ09NTUlUVElTSCAwMgotZXh0ZXJuIGludCBoYW5kbGVfcmV2aXNpb25fYXJnKGNvbnN0IGNoYXIgKmFyZywgc3RydWN0IHJldl9pbmZvICpyZXZzLCBpbnQgZmxhZ3MsIHVuc2lnbmVkIHJldmFyZ19vcHQpOworZXh0ZXJuIGludCBoYW5kbGVfcmV2aXNpb25fYXJnKGNvbnN0IGNoYXIgKmFyZywgc3RydWN0IHJldl9pbmZvICpyZXZzLAorCQkJICAgICAgIGludCBmbGFncywgdW5zaWduZWQgcmV2YXJnX29wdCk7CiAKIGV4dGVybiB2b2lkIHJlc2V0X3JldmlzaW9uX3dhbGsodm9pZCk7CiBleHRlcm4gaW50IHByZXBhcmVfcmV2aXNpb25fd2FsayhzdHJ1Y3QgcmV2X2luZm8gKnJldnMpOwogZXh0ZXJuIHN0cnVjdCBjb21taXQgKmdldF9yZXZpc2lvbihzdHJ1Y3QgcmV2X2luZm8gKnJldnMpOwotZXh0ZXJuIGNoYXIgKmdldF9yZXZpc2lvbl9tYXJrKGNvbnN0IHN0cnVjdCByZXZfaW5mbyAqcmV2cywgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKLWV4dGVybiB2b2lkIHB1dF9yZXZpc2lvbl9tYXJrKGNvbnN0IHN0cnVjdCByZXZfaW5mbyAqcmV2cywgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKK2V4dGVybiBjaGFyICpnZXRfcmV2aXNpb25fbWFyayhjb25zdCBzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKK2V4dGVybiB2b2lkIHB1dF9yZXZpc2lvbl9tYXJrKGNvbnN0IHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBjb21taXQgKmNvbW1pdCk7CiAKIGV4dGVybiB2b2lkIG1hcmtfcGFyZW50c191bmludGVyZXN0aW5nKHN0cnVjdCBjb21taXQgKmNvbW1pdCk7CiBleHRlcm4gdm9pZCBtYXJrX3RyZWVfdW5pbnRlcmVzdGluZyhzdHJ1Y3QgdHJlZSAqdHJlZSk7CkBAIC0yMjAsMTUgKzI0MCwxOSBAQAogCiBjaGFyICpwYXRoX25hbWUoY29uc3Qgc3RydWN0IG5hbWVfcGF0aCAqcGF0aCwgY29uc3QgY2hhciAqbmFtZSk7CiAKLWV4dGVybiB2b2lkIHNob3dfb2JqZWN0X3dpdGhfbmFtZShGSUxFICosIHN0cnVjdCBvYmplY3QgKiwgY29uc3Qgc3RydWN0IG5hbWVfcGF0aCAqLCBjb25zdCBjaGFyICopOworZXh0ZXJuIHZvaWQgc2hvd19vYmplY3Rfd2l0aF9uYW1lKEZJTEUgKiwgc3RydWN0IG9iamVjdCAqLAorCQkJCSAgY29uc3Qgc3RydWN0IG5hbWVfcGF0aCAqLCBjb25zdCBjaGFyICopOwogCiBleHRlcm4gdm9pZCBhZGRfb2JqZWN0KHN0cnVjdCBvYmplY3QgKm9iaiwKIAkJICAgICAgIHN0cnVjdCBvYmplY3RfYXJyYXkgKnAsCiAJCSAgICAgICBzdHJ1Y3QgbmFtZV9wYXRoICpwYXRoLAogCQkgICAgICAgY29uc3QgY2hhciAqbmFtZSk7CiAKLWV4dGVybiB2b2lkIGFkZF9wZW5kaW5nX29iamVjdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSk7Ci1leHRlcm4gdm9pZCBhZGRfcGVuZGluZ19zaGExKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgdW5zaWduZWQgaW50IGZsYWdzKTsKK2V4dGVybiB2b2lkIGFkZF9wZW5kaW5nX29iamVjdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkgICAgICAgc3RydWN0IG9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpuYW1lKTsKK2V4dGVybiB2b2lkIGFkZF9wZW5kaW5nX3NoYTEoc3RydWN0IHJldl9pbmZvICpyZXZzLAorCQkJICAgICBjb25zdCBjaGFyICpuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAorCQkJICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogCiBleHRlcm4gdm9pZCBhZGRfaGVhZF90b19wZW5kaW5nKHN0cnVjdCByZXZfaW5mbyAqKTsKIApAQCAtMjM4LDcgKzI2MiwzNSBAQAogCWNvbW1pdF9lcnJvcgogfTsKIAotZXh0ZXJuIGVudW0gY29tbWl0X2FjdGlvbiBnZXRfY29tbWl0X2FjdGlvbihzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCk7Ci1leHRlcm4gZW51bSBjb21taXRfYWN0aW9uIHNpbXBsaWZ5X2NvbW1pdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCk7CitleHRlcm4gZW51bSBjb21taXRfYWN0aW9uIGdldF9jb21taXRfYWN0aW9uKHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCQkJICAgIHN0cnVjdCBjb21taXQgKmNvbW1pdCk7CitleHRlcm4gZW51bSBjb21taXRfYWN0aW9uIHNpbXBsaWZ5X2NvbW1pdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkJCSAgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKKworZW51bSByZXdyaXRlX3Jlc3VsdCB7CisJcmV3cml0ZV9vbmVfb2ssCisJcmV3cml0ZV9vbmVfbm9wYXJlbnRzLAorCXJld3JpdGVfb25lX2Vycm9yCit9OworCit0eXBlZGVmIGVudW0gcmV3cml0ZV9yZXN1bHQgKCpyZXdyaXRlX3BhcmVudF9mbl90KShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKipwcCk7CisKK2V4dGVybiBpbnQgcmV3cml0ZV9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0LAorCXJld3JpdGVfcGFyZW50X2ZuX3QgcmV3cml0ZV9wYXJlbnQpOworCisvKgorICogU2F2ZSBhIGNvcHkgb2YgdGhlIHBhcmVudCBsaXN0LCBhbmQgcmV0dXJuIHRoZSBzYXZlZCBjb3B5LiAgVGhpcyBpcworICogdXNlZCBieSB0aGUgbG9nIG1hY2hpbmVyeSB0byByZXRyaWV2ZSB0aGUgb3JpZ2luYWwgcGFyZW50cyB3aGVuCisgKiBjb21taXQtPnBhcmVudHMgaGFzIGJlZW4gbW9kaWZpZWQgYnkgaGlzdG9yeSBzaW1waWZpY2F0aW9uLgorICoKKyAqIFlvdSBtYXkgb25seSBjYWxsIHNhdmVfcGFyZW50cygpIG9uY2UgcGVyIGNvbW1pdCAodGhpcyBpcyBjaGVja2VkCisgKiBmb3Igbm9uLXJvb3QgY29tbWl0cykuCisgKgorICogZ2V0X3NhdmVkX3BhcmVudHMoKSB3aWxsIHRyYW5zcGFyZW50bHkgcmV0dXJuIGNvbW1pdC0+cGFyZW50cyBpZgorICogaGlzdG9yeSBzaW1wbGlmaWNhdGlvbiBpcyBvZmYuCisgKi8KK2V4dGVybiB2b2lkIHNhdmVfcGFyZW50cyhzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCk7CitleHRlcm4gc3RydWN0IGNvbW1pdF9saXN0ICpnZXRfc2F2ZWRfcGFyZW50cyhzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIGNvbnN0IHN0cnVjdCBjb21taXQgKmNvbW1pdCk7CitleHRlcm4gdm9pZCBmcmVlX3NhdmVkX3BhcmVudHMoc3RydWN0IHJldl9pbmZvICpyZXZzKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9ydW4tY29tbWFuZC5jIGIvcnVuLWNvbW1hbmQuYwppbmRleCAxYjMyYTEyLi4xYjdmODhlIDEwMDY0NAotLS0gYS9ydW4tY29tbWFuZC5jCisrKyBiL3J1bi1jb21tYW5kLmMKQEAgLTcyLDExICs3MiwxNCBAQAogCWNsb3NlKGZkWzFdKTsKIH0KIAotI2lmbmRlZiBXSU4zMgorI2lmbmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIHN0YXRpYyBpbmxpbmUgdm9pZCBkdXBfZGV2bnVsbChpbnQgdG8pCiB7CiAJaW50IGZkID0gb3BlbigiL2Rldi9udWxsIiwgT19SRFdSKTsKLQlkdXAyKGZkLCB0byk7CisJaWYgKGZkIDwgMCkKKwkJZGllX2Vycm5vKF8oIm9wZW4gL2Rldi9udWxsIGZhaWxlZCIpKTsKKwlpZiAoZHVwMihmZCwgdG8pIDwgMCkKKwkJZGllX2Vycm5vKF8oImR1cDIoJWQsJWQpIGZhaWxlZCIpLCBmZCwgdG8pOwogCWNsb3NlKGZkKTsKIH0KICNlbmRpZgpAQCAtMTU5LDcgKzE2Miw3IEBACiAJCWRpZSgiQlVHOiBzaGVsbCBjb21tYW5kIGlzIGVtcHR5Iik7CiAKIAlpZiAoc3RyY3Nwbihhcmd2WzBdLCAifCY7PD4oKSRgXFxcIicgXHRcbio/WyN+PSUiKSAhPSBzdHJsZW4oYXJndlswXSkpIHsKLSNpZm5kZWYgV0lOMzIKKyNpZm5kZWYgR0lUX1dJTkRPV1NfTkFUSVZFCiAJCW5hcmd2W25hcmdjKytdID0gU0hFTExfUEFUSDsKICNlbHNlCiAJCW5hcmd2W25hcmdjKytdID0gInNoIjsKQEAgLTE4Miw3ICsxODUsNyBAQAogCXJldHVybiBuYXJndjsKIH0KIAotI2lmbmRlZiBXSU4zMgorI2lmbmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIHN0YXRpYyBpbnQgZXhlY3Zfc2hlbGxfY21kKGNvbnN0IGNoYXIgKiphcmd2KQogewogCWNvbnN0IGNoYXIgKipuYXJndiA9IHByZXBhcmVfc2hlbGxfY21kKGFyZ3YpOwpAQCAtMTkzLDcgKzE5Niw3IEBACiB9CiAjZW5kaWYKIAotI2lmbmRlZiBXSU4zMgorI2lmbmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIHN0YXRpYyBpbnQgY2hpbGRfZXJyID0gMjsKIHN0YXRpYyBpbnQgY2hpbGRfbm90aWZpZXIgPSAtMTsKIApAQCAtMzM0LDcgKzMzNyw3IEBACiAJdHJhY2VfYXJndl9wcmludGYoY21kLT5hcmd2LCAidHJhY2U6IHJ1bl9jb21tYW5kOiIpOwogCWZmbHVzaChOVUxMKTsKIAotI2lmbmRlZiBXSU4zMgorI2lmbmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIHsKIAlpbnQgbm90aWZ5X3BpcGVbMl07CiAJaWYgKHBpcGUobm90aWZ5X3BpcGUpKQpkaWZmIC0tZ2l0IGEvcnVuLWNvbW1hbmQuaCBiL3J1bi1jb21tYW5kLmgKaW5kZXggMjIxY2UzMy4uNmI5ODVhZiAxMDA2NDQKLS0tIGEvcnVuLWNvbW1hbmQuaAorKysgYi9ydW4tY29tbWFuZC5oCkBAIC00Niw2ICs0Niw3IEBACiBpbnQgcnVuX2NvbW1hbmQoc3RydWN0IGNoaWxkX3Byb2Nlc3MgKik7CiAKIGV4dGVybiBjaGFyICpmaW5kX2hvb2soY29uc3QgY2hhciAqbmFtZSk7CitMQVNUX0FSR19NVVNUX0JFX05VTEwKIGV4dGVybiBpbnQgcnVuX2hvb2soY29uc3QgY2hhciAqaW5kZXhfZmlsZSwgY29uc3QgY2hhciAqbmFtZSwgLi4uKTsKIAogI2RlZmluZSBSVU5fQ09NTUFORF9OT19TVERJTiAxCmRpZmYgLS1naXQgYS9zZXF1ZW5jZXIuYyBiL3NlcXVlbmNlci5jCmluZGV4IGFiNmY4YTcuLjM1MTU0OGYgMTAwNjQ0Ci0tLSBhL3NlcXVlbmNlci5jCisrKyBiL3NlcXVlbmNlci5jCkBAIC0yNzAsMTUgKzI3MCwyMCBAQAogfQogCiBzdGF0aWMgaW50IGZhc3RfZm9yd2FyZF90byhjb25zdCB1bnNpZ25lZCBjaGFyICp0bywgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKLQkJCSAgIGludCB1bmJvcm4pCisJCQlpbnQgdW5ib3JuLCBzdHJ1Y3QgcmVwbGF5X29wdHMgKm9wdHMpCiB7CiAJc3RydWN0IHJlZl9sb2NrICpyZWZfbG9jazsKKwlzdHJ1Y3Qgc3RyYnVmIHNiID0gU1RSQlVGX0lOSVQ7CisJaW50IHJldDsKIAogCXJlYWRfY2FjaGUoKTsKIAlpZiAoY2hlY2tvdXRfZmFzdF9mb3J3YXJkKGZyb20sIHRvLCAxKSkKIAkJZXhpdCgxKTsgLyogdGhlIGNhbGxlZSBzaG91bGQgaGF2ZSBjb21wbGFpbmVkIGFscmVhZHkgKi8KIAlyZWZfbG9jayA9IGxvY2tfYW55X3JlZl9mb3JfdXBkYXRlKCJIRUFEIiwgdW5ib3JuID8gbnVsbF9zaGExIDogZnJvbSwgMCk7Ci0JcmV0dXJuIHdyaXRlX3JlZl9zaGExKHJlZl9sb2NrLCB0bywgImNoZXJyeS1waWNrIik7CisJc3RyYnVmX2FkZGYoJnNiLCAiJXM6IGZhc3QtZm9yd2FyZCIsIGFjdGlvbl9uYW1lKG9wdHMpKTsKKwlyZXQgPSB3cml0ZV9yZWZfc2hhMShyZWZfbG9jaywgdG8sIHNiLmJ1Zik7CisJc3RyYnVmX3JlbGVhc2UoJnNiKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGRvX3JlY3Vyc2l2ZV9tZXJnZShzdHJ1Y3QgY29tbWl0ICpiYXNlLCBzdHJ1Y3QgY29tbWl0ICpuZXh0LApAQCAtMzI2LDcgKzMzMSw3IEBACiAJCWludCBpOwogCQlzdHJidWZfYWRkc3RyKG1zZ2J1ZiwgIlxuQ29uZmxpY3RzOlxuIik7CiAJCWZvciAoaSA9IDA7IGkgPCBhY3RpdmVfbnI7KSB7Ci0JCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2krK107CisJCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2krK107CiAJCQlpZiAoY2Vfc3RhZ2UoY2UpKSB7CiAJCQkJc3RyYnVmX2FkZGNoKG1zZ2J1ZiwgJ1x0Jyk7CiAJCQkJc3RyYnVmX2FkZHN0cihtc2didWYsIGNlLT5uYW1lKTsKQEAgLTM2Niw4ICszNzEsOSBAQAogCQlhY3RpdmVfY2FjaGVfdHJlZSA9IGNhY2hlX3RyZWUoKTsKIAogCWlmICghY2FjaGVfdHJlZV9mdWxseV92YWxpZChhY3RpdmVfY2FjaGVfdHJlZSkpCi0JCWlmIChjYWNoZV90cmVlX3VwZGF0ZShhY3RpdmVfY2FjaGVfdHJlZSwgYWN0aXZlX2NhY2hlLAotCQkJCSAgYWN0aXZlX25yLCAwKSkKKwkJaWYgKGNhY2hlX3RyZWVfdXBkYXRlKGFjdGl2ZV9jYWNoZV90cmVlLAorCQkJCSAgICAgIChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqKWFjdGl2ZV9jYWNoZSwKKwkJCQkgICAgICBhY3RpdmVfbnIsIDApKQogCQkJcmV0dXJuIGVycm9yKF8oIlVuYWJsZSB0byB1cGRhdGUgY2FjaGUgdHJlZVxuIikpOwogCiAJcmV0dXJuICFoYXNoY21wKGFjdGl2ZV9jYWNoZV90cmVlLT5zaGExLCBoZWFkX2NvbW1pdC0+dHJlZS0+b2JqZWN0LnNoYTEpOwpAQCAtNDc0LDcgKzQ4MCw3IEBACiAJc3RydWN0IGNvbW1pdF9tZXNzYWdlIG1zZyA9IHsgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9OwogCWNoYXIgKmRlZm1zZyA9IE5VTEw7CiAJc3RydWN0IHN0cmJ1ZiBtc2didWYgPSBTVFJCVUZfSU5JVDsKLQlpbnQgcmVzLCB1bmJvcm4gPSAwOworCWludCByZXMsIHVuYm9ybiA9IDAsIGFsbG93OwogCiAJaWYgKG9wdHMtPm5vX2NvbW1pdCkgewogCQkvKgpAQCAtNTIzLDcgKzUyOSw3IEBACiAJaWYgKG9wdHMtPmFsbG93X2ZmICYmCiAJICAgICgocGFyZW50ICYmICFoYXNoY21wKHBhcmVudC0+b2JqZWN0LnNoYTEsIGhlYWQpKSB8fAogCSAgICAgKCFwYXJlbnQgJiYgdW5ib3JuKSkpCi0JICAgICByZXR1cm4gZmFzdF9mb3J3YXJkX3RvKGNvbW1pdC0+b2JqZWN0LnNoYTEsIGhlYWQsIHVuYm9ybik7CisJCXJldHVybiBmYXN0X2ZvcndhcmRfdG8oY29tbWl0LT5vYmplY3Quc2hhMSwgaGVhZCwgdW5ib3JuLCBvcHRzKTsKIAogCWlmIChwYXJlbnQgJiYgcGFyc2VfY29tbWl0KHBhcmVudCkgPCAwKQogCQkvKiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIHdpbGwgYmUgInJldmVydCIgb3IKQEAgLTYyNCwxNCArNjMwLDE4IEBACiAJCSAgICAgIG1zZy5zdWJqZWN0KTsKIAkJcHJpbnRfYWR2aWNlKHJlcyA9PSAxLCBvcHRzKTsKIAkJcmVyZXJlKG9wdHMtPmFsbG93X3JlcmVyZV9hdXRvKTsKLQl9IGVsc2UgewotCQlpbnQgYWxsb3cgPSBhbGxvd19lbXB0eShvcHRzLCBjb21taXQpOwotCQlpZiAoYWxsb3cgPCAwKQotCQkJcmV0dXJuIGFsbG93OwotCQlpZiAoIW9wdHMtPm5vX2NvbW1pdCkKLQkJCXJlcyA9IHJ1bl9naXRfY29tbWl0KGRlZm1zZywgb3B0cywgYWxsb3cpOworCQlnb3RvIGxlYXZlOwogCX0KIAorCWFsbG93ID0gYWxsb3dfZW1wdHkob3B0cywgY29tbWl0KTsKKwlpZiAoYWxsb3cgPCAwKSB7CisJCXJlcyA9IGFsbG93OworCQlnb3RvIGxlYXZlOworCX0KKwlpZiAoIW9wdHMtPm5vX2NvbW1pdCkKKwkJcmVzID0gcnVuX2dpdF9jb21taXQoZGVmbXNnLCBvcHRzLCBhbGxvdyk7CisKK2xlYXZlOgogCWZyZWVfbWVzc2FnZSgmbXNnKTsKIAlmcmVlKGRlZm1zZyk7CiAKZGlmZiAtLWdpdCBhL3NldHVwLmMgYi9zZXR1cC5jCmluZGV4IDk0YzFlNjEuLjUyNjIzMTkgMTAwNjQ0Ci0tLSBhL3NldHVwLmMKKysrIGIvc2V0dXAuYwpAQCAtMzYwLDYgKzM2MCw3IEBACiAKIHZvaWQgc2V0dXBfd29ya190cmVlKHZvaWQpCiB7CisJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOwogCWNvbnN0IGNoYXIgKndvcmtfdHJlZSwgKmdpdF9kaXI7CiAJc3RhdGljIGludCBpbml0aWFsaXplZCA9IDA7CiAKQEAgLTM3OSw4ICszODAsMTAgQEAKIAlpZiAoZ2V0ZW52KEdJVF9XT1JLX1RSRUVfRU5WSVJPTk1FTlQpKQogCQlzZXRlbnYoR0lUX1dPUktfVFJFRV9FTlZJUk9OTUVOVCwgIi4iLCAxKTsKIAotCXNldF9naXRfZGlyKHJlbGF0aXZlX3BhdGgoZ2l0X2Rpciwgd29ya190cmVlKSk7CisJc2V0X2dpdF9kaXIocmVsYXRpdmVfcGF0aChnaXRfZGlyLCB3b3JrX3RyZWUsICZzYikpOwogCWluaXRpYWxpemVkID0gMTsKKworCXN0cmJ1Zl9yZWxlYXNlKCZzYik7CiB9CiAKIHN0YXRpYyBpbnQgY2hlY2tfcmVwb3NpdG9yeV9mb3JtYXRfZ2VudGx5KGNvbnN0IGNoYXIgKmdpdGRpciwgaW50ICpub25naXRfb2spCkBAIC05MDgsMyArOTExLDE1IEBACiAJCXJldHVybiBzdXNwZWN0OwogCXJldHVybiByZWFkX2dpdGZpbGUoc3VzcGVjdCk7CiB9CisKKy8qIGlmIGFueSBzdGFuZGFyZCBmaWxlIGRlc2NyaXB0b3IgaXMgbWlzc2luZyBvcGVuIGl0IHRvIC9kZXYvbnVsbCAqLwordm9pZCBzYW5pdGl6ZV9zdGRmZHModm9pZCkKK3sKKwlpbnQgZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JEV1IsIDApOworCXdoaWxlIChmZCAhPSAtMSAmJiBmZCA8IDIpCisJCWZkID0gZHVwKGZkKTsKKwlpZiAoZmQgPT0gLTEpCisJCWRpZV9lcnJubygib3BlbiAvZGV2L251bGwgb3IgZHVwIGZhaWxlZCIpOworCWlmIChmZCA+IDIpCisJCWNsb3NlKGZkKTsKK30KZGlmZiAtLWdpdCBhL3NoYTFfZmlsZS5jIGIvc2hhMV9maWxlLmMKaW5kZXggNjdlODE1Yi4uOGUyN2RiMSAxMDA2NDQKLS0tIGEvc2hhMV9maWxlLmMKKysrIGIvc2hhMV9maWxlLmMKQEAgLTM2LDYgKzM2LDkgQEAKIAogY29uc3QgdW5zaWduZWQgY2hhciBudWxsX3NoYTFbMjBdOwogCitzdGF0aWMgY29uc3QgY2hhciAqbm9fbG9nX3BhY2tfYWNjZXNzID0gIm5vX2xvZ19wYWNrX2FjY2VzcyI7CitzdGF0aWMgY29uc3QgY2hhciAqbG9nX3BhY2tfYWNjZXNzOworCiAvKgogICogVGhpcyBpcyBtZWFudCB0byBob2xkIGEgKnNtYWxsKiBudW1iZXIgb2Ygb2JqZWN0cyB0aGF0IHlvdSB3b3VsZAogICogd2FudCByZWFkX3NoYTFfZmlsZSgpIHRvIGJlIGFibGUgdG8gcmV0dXJuLCBidXQgeWV0IHlvdSBkbyBub3Qgd2FudApAQCAtMTMwMyw2ICsxMzA2LDI2IEBACiAJfQogfQogCitzdGF0aWMgaW50IHN0YXRfc2hhMV9maWxlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIHN0cnVjdCBzdGF0ICpzdCkKK3sKKwljaGFyICpuYW1lID0gc2hhMV9maWxlX25hbWUoc2hhMSk7CisJc3RydWN0IGFsdGVybmF0ZV9vYmplY3RfZGF0YWJhc2UgKmFsdDsKKworCWlmICghbHN0YXQobmFtZSwgc3QpKQorCQlyZXR1cm4gMDsKKworCXByZXBhcmVfYWx0X29kYigpOworCWVycm5vID0gRU5PRU5UOworCWZvciAoYWx0ID0gYWx0X29kYl9saXN0OyBhbHQ7IGFsdCA9IGFsdC0+bmV4dCkgeworCQluYW1lID0gYWx0LT5uYW1lOworCQlmaWxsX3NoYTFfcGF0aChuYW1lLCBzaGExKTsKKwkJaWYgKCFsc3RhdChhbHQtPmJhc2UsIHN0KSkKKwkJCXJldHVybiAwOworCX0KKworCXJldHVybiAtMTsKK30KKwogc3RhdGljIGludCBvcGVuX3NoYTFfZmlsZShjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQogewogCWludCBmZDsKQEAgLTE2OTAsNDYgKzE3MTMsMjEgQEAKIAlyZXR1cm4gdHlwZTsKIH0KIAotCiAjZGVmaW5lIFBPSV9TVEFDS19QUkVBTExPQyA2NAogCi1zdGF0aWMgaW50IHBhY2tlZF9vYmplY3RfaW5mbyhzdHJ1Y3QgcGFja2VkX2dpdCAqcCwgb2ZmX3Qgb2JqX29mZnNldCwKLQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgKnNpemVwLCBpbnQgKnJ0eXBlKQorc3RhdGljIGVudW0gb2JqZWN0X3R5cGUgcGFja2VkX3RvX29iamVjdF90eXBlKHN0cnVjdCBwYWNrZWRfZ2l0ICpwLAorCQkJCQkgICAgICBvZmZfdCBvYmpfb2Zmc2V0LAorCQkJCQkgICAgICBlbnVtIG9iamVjdF90eXBlIHR5cGUsCisJCQkJCSAgICAgIHN0cnVjdCBwYWNrX3dpbmRvdyAqKndfY3VycywKKwkJCQkJICAgICAgb2ZmX3QgY3VycG9zKQogewotCXN0cnVjdCBwYWNrX3dpbmRvdyAqd19jdXJzID0gTlVMTDsKLQl1bnNpZ25lZCBsb25nIHNpemU7Ci0Jb2ZmX3QgY3VycG9zID0gb2JqX29mZnNldDsKLQllbnVtIG9iamVjdF90eXBlIHR5cGU7CiAJb2ZmX3Qgc21hbGxfcG9pX3N0YWNrW1BPSV9TVEFDS19QUkVBTExPQ107CiAJb2ZmX3QgKnBvaV9zdGFjayA9IHNtYWxsX3BvaV9zdGFjazsKIAlpbnQgcG9pX3N0YWNrX25yID0gMCwgcG9pX3N0YWNrX2FsbG9jID0gUE9JX1NUQUNLX1BSRUFMTE9DOwogCi0JdHlwZSA9IHVucGFja19vYmplY3RfaGVhZGVyKHAsICZ3X2N1cnMsICZjdXJwb3MsICZzaXplKTsKLQotCWlmIChydHlwZSkKLQkJKnJ0eXBlID0gdHlwZTsgLyogcmVwcmVzZW50YXRpb24gdHlwZSAqLwotCi0JaWYgKHNpemVwKSB7Ci0JCWlmICh0eXBlID09IE9CSl9PRlNfREVMVEEgfHwgdHlwZSA9PSBPQkpfUkVGX0RFTFRBKSB7Ci0JCQlvZmZfdCB0bXBfcG9zID0gY3VycG9zOwotCQkJb2ZmX3QgYmFzZV9vZmZzZXQgPSBnZXRfZGVsdGFfYmFzZShwLCAmd19jdXJzLCAmdG1wX3BvcywKLQkJCQkJCQkgICB0eXBlLCBvYmpfb2Zmc2V0KTsKLQkJCWlmICghYmFzZV9vZmZzZXQpIHsKLQkJCQl0eXBlID0gT0JKX0JBRDsKLQkJCQlnb3RvIG91dDsKLQkJCX0KLQkJCSpzaXplcCA9IGdldF9zaXplX2Zyb21fZGVsdGEocCwgJndfY3VycywgdG1wX3Bvcyk7Ci0JCQlpZiAoKnNpemVwID09IDApIHsKLQkJCQl0eXBlID0gT0JKX0JBRDsKLQkJCQlnb3RvIG91dDsKLQkJCX0KLQkJfSBlbHNlIHsKLQkJCSpzaXplcCA9IHNpemU7Ci0JCX0KLQl9Ci0KIAl3aGlsZSAodHlwZSA9PSBPQkpfT0ZTX0RFTFRBIHx8IHR5cGUgPT0gT0JKX1JFRl9ERUxUQSkgewogCQlvZmZfdCBiYXNlX29mZnNldDsKKwkJdW5zaWduZWQgbG9uZyBzaXplOwogCQkvKiBQdXNoIHRoZSBvYmplY3Qgd2UncmUgZ29pbmcgdG8gbGVhdmUgYmVoaW5kICovCiAJCWlmIChwb2lfc3RhY2tfbnIgPj0gcG9pX3N0YWNrX2FsbG9jICYmIHBvaV9zdGFjayA9PSBzbWFsbF9wb2lfc3RhY2spIHsKIAkJCXBvaV9zdGFja19hbGxvYyA9IGFsbG9jX25yKHBvaV9zdGFja19ucik7CkBAIC0xNzQwLDExICsxNzM4LDExIEBACiAJCX0KIAkJcG9pX3N0YWNrW3BvaV9zdGFja19ucisrXSA9IG9ial9vZmZzZXQ7CiAJCS8qIElmIHBhcnNpbmcgdGhlIGJhc2Ugb2Zmc2V0IGZhaWxzLCBqdXN0IHVud2luZCAqLwotCQliYXNlX29mZnNldCA9IGdldF9kZWx0YV9iYXNlKHAsICZ3X2N1cnMsICZjdXJwb3MsIHR5cGUsIG9ial9vZmZzZXQpOworCQliYXNlX29mZnNldCA9IGdldF9kZWx0YV9iYXNlKHAsIHdfY3VycywgJmN1cnBvcywgdHlwZSwgb2JqX29mZnNldCk7CiAJCWlmICghYmFzZV9vZmZzZXQpCiAJCQlnb3RvIHVud2luZDsKIAkJY3VycG9zID0gb2JqX29mZnNldCA9IGJhc2Vfb2Zmc2V0OwotCQl0eXBlID0gdW5wYWNrX29iamVjdF9oZWFkZXIocCwgJndfY3VycywgJmN1cnBvcywgJnNpemUpOworCQl0eXBlID0gdW5wYWNrX29iamVjdF9oZWFkZXIocCwgd19jdXJzLCAmY3VycG9zLCAmc2l6ZSk7CiAJCWlmICh0eXBlIDw9IE9CSl9OT05FKSB7CiAJCQkvKiBJZiBnZXR0aW5nIHRoZSBiYXNlIGl0c2VsZiBmYWlscywgd2UgZmlyc3QKIAkJCSAqIHJldHJ5IHRoZSBiYXNlLCBvdGhlcndpc2UgdW53aW5kICovCkBAIC0xNzcxLDcgKzE3NjksNiBAQAogb3V0OgogCWlmIChwb2lfc3RhY2sgIT0gc21hbGxfcG9pX3N0YWNrKQogCQlmcmVlKHBvaV9zdGFjayk7Ci0JdW51c2VfcGFjaygmd19jdXJzKTsKIAlyZXR1cm4gdHlwZTsKIAogdW53aW5kOgpAQCAtMTc4NSw2ICsxNzgyLDU3IEBACiAJZ290byBvdXQ7CiB9CiAKK3N0YXRpYyBpbnQgcGFja2VkX29iamVjdF9pbmZvKHN0cnVjdCBwYWNrZWRfZ2l0ICpwLCBvZmZfdCBvYmpfb2Zmc2V0LAorCQkJICAgICAgc3RydWN0IG9iamVjdF9pbmZvICpvaSkKK3sKKwlzdHJ1Y3QgcGFja193aW5kb3cgKndfY3VycyA9IE5VTEw7CisJdW5zaWduZWQgbG9uZyBzaXplOworCW9mZl90IGN1cnBvcyA9IG9ial9vZmZzZXQ7CisJZW51bSBvYmplY3RfdHlwZSB0eXBlOworCisJLyoKKwkgKiBXZSBhbHdheXMgZ2V0IHRoZSByZXByZXNlbnRhdGlvbiB0eXBlLCBidXQgb25seSBjb252ZXJ0IGl0IHRvCisJICogYSAicmVhbCIgdHlwZSBsYXRlciBpZiB0aGUgY2FsbGVyIGlzIGludGVyZXN0ZWQuCisJICovCisJdHlwZSA9IHVucGFja19vYmplY3RfaGVhZGVyKHAsICZ3X2N1cnMsICZjdXJwb3MsICZzaXplKTsKKworCWlmIChvaS0+c2l6ZXApIHsKKwkJaWYgKHR5cGUgPT0gT0JKX09GU19ERUxUQSB8fCB0eXBlID09IE9CSl9SRUZfREVMVEEpIHsKKwkJCW9mZl90IHRtcF9wb3MgPSBjdXJwb3M7CisJCQlvZmZfdCBiYXNlX29mZnNldCA9IGdldF9kZWx0YV9iYXNlKHAsICZ3X2N1cnMsICZ0bXBfcG9zLAorCQkJCQkJCSAgIHR5cGUsIG9ial9vZmZzZXQpOworCQkJaWYgKCFiYXNlX29mZnNldCkgeworCQkJCXR5cGUgPSBPQkpfQkFEOworCQkJCWdvdG8gb3V0OworCQkJfQorCQkJKm9pLT5zaXplcCA9IGdldF9zaXplX2Zyb21fZGVsdGEocCwgJndfY3VycywgdG1wX3Bvcyk7CisJCQlpZiAoKm9pLT5zaXplcCA9PSAwKSB7CisJCQkJdHlwZSA9IE9CSl9CQUQ7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCX0gZWxzZSB7CisJCQkqb2ktPnNpemVwID0gc2l6ZTsKKwkJfQorCX0KKworCWlmIChvaS0+ZGlza19zaXplcCkgeworCQlzdHJ1Y3QgcmV2aW5kZXhfZW50cnkgKnJldmlkeCA9IGZpbmRfcGFja19yZXZpbmRleChwLCBvYmpfb2Zmc2V0KTsKKwkJKm9pLT5kaXNrX3NpemVwID0gcmV2aWR4WzFdLm9mZnNldCAtIG9ial9vZmZzZXQ7CisJfQorCisJaWYgKG9pLT50eXBlcCkgeworCQkqb2ktPnR5cGVwID0gcGFja2VkX3RvX29iamVjdF90eXBlKHAsIG9ial9vZmZzZXQsIHR5cGUsICZ3X2N1cnMsIGN1cnBvcyk7CisJCWlmICgqb2ktPnR5cGVwIDwgMCkgeworCQkJdHlwZSA9IE9CSl9CQUQ7CisJCQlnb3RvIG91dDsKKwkJfQorCX0KKworb3V0OgorCXVudXNlX3BhY2soJndfY3Vycyk7CisJcmV0dXJuIHR5cGU7Cit9CisKIHN0YXRpYyB2b2lkICp1bnBhY2tfY29tcHJlc3NlZF9lbnRyeShzdHJ1Y3QgcGFja2VkX2dpdCAqcCwKIAkJCQkgICAgc3RydWN0IHBhY2tfd2luZG93ICoqd19jdXJzLAogCQkJCSAgICBvZmZfdCBjdXJwb3MsCkBAIC0xOTU2LDEyICsyMDA0LDE5IEBACiB7CiAJc3RhdGljIEZJTEUgKmxvZ19maWxlOwogCisJaWYgKCFsb2dfcGFja19hY2Nlc3MpCisJCWxvZ19wYWNrX2FjY2VzcyA9IGdldGVudigiR0lUX1RSQUNFX1BBQ0tfQUNDRVNTIik7CisJaWYgKCFsb2dfcGFja19hY2Nlc3MpCisJCWxvZ19wYWNrX2FjY2VzcyA9IG5vX2xvZ19wYWNrX2FjY2VzczsKKwlpZiAobG9nX3BhY2tfYWNjZXNzID09IG5vX2xvZ19wYWNrX2FjY2VzcykKKwkJcmV0dXJuOworCiAJaWYgKCFsb2dfZmlsZSkgewogCQlsb2dfZmlsZSA9IGZvcGVuKGxvZ19wYWNrX2FjY2VzcywgInciKTsKIAkJaWYgKCFsb2dfZmlsZSkgewogCQkJZXJyb3IoImNhbm5vdCBvcGVuIHBhY2sgYWNjZXNzIGxvZyAnJXMnIGZvciB3cml0aW5nOiAlcyIsCiAJCQkgICAgICBsb2dfcGFja19hY2Nlc3MsIHN0cmVycm9yKGVycm5vKSk7Ci0JCQlsb2dfcGFja19hY2Nlc3MgPSBOVUxMOworCQkJbG9nX3BhY2tfYWNjZXNzID0gbm9fbG9nX3BhY2tfYWNjZXNzOwogCQkJcmV0dXJuOwogCQl9CiAJfQpAQCAtMTk5Miw3ICsyMDQ3LDcgQEAKIAlpbnQgZGVsdGFfc3RhY2tfbnIgPSAwLCBkZWx0YV9zdGFja19hbGxvYyA9IFVOUEFDS19FTlRSWV9TVEFDS19QUkVBTExPQzsKIAlpbnQgYmFzZV9mcm9tX2NhY2hlID0gMDsKIAotCWlmIChsb2dfcGFja19hY2Nlc3MpCisJaWYgKGxvZ19wYWNrX2FjY2VzcyAhPSBub19sb2dfcGFja19hY2Nlc3MpCiAJCXdyaXRlX3BhY2tfYWNjZXNzX2xvZyhwLCBvYmpfb2Zmc2V0KTsKIAogCS8qIFBIQVNFIDE6IGRyaWxsIGRvd24gdG8gdGhlIGlubmVybW9zdCBiYXNlIG9iamVjdCAqLwpAQCAtMjEzNSwxMCArMjE5MCwxOSBAQAogCQlkYXRhID0gcGF0Y2hfZGVsdGEoYmFzZSwgYmFzZV9zaXplLAogCQkJCSAgIGRlbHRhX2RhdGEsIGRlbHRhX3NpemUsCiAJCQkJICAgJnNpemUpOwotCQlpZiAoIWRhdGEpCi0JCQlkaWUoImZhaWxlZCB0byBhcHBseSBkZWx0YSIpOwogCi0JCWZyZWUgKGRlbHRhX2RhdGEpOworCQkvKgorCQkgKiBXZSBjb3VsZCBub3QgYXBwbHkgdGhlIGRlbHRhOyB3YXJuIHRoZSB1c2VyLCBidXQga2VlcCBnb2luZy4KKwkJICogT3VyIGZhaWx1cmUgd2lsbCBiZSBub3RpY2VkIGVpdGhlciBpbiB0aGUgbmV4dCBpdGVyYXRpb24gb2YKKwkJICogdGhlIGxvb3AsIG9yIGlmIHRoaXMgaXMgdGhlIGZpbmFsIGRlbHRhLCBpbiB0aGUgY2FsbGVyIHdoZW4KKwkJICogd2UgcmV0dXJuIE5VTEwuIFRob3NlIGNvZGUgcGF0aHMgd2lsbCB0YWtlIGNhcmUgb2YgbWFraW5nCisJCSAqIGEgbW9yZSBleHBsaWNpdCB3YXJuaW5nIGFuZCByZXRyeWluZyB3aXRoIGFub3RoZXIgY29weSBvZgorCQkgKiB0aGUgb2JqZWN0LgorCQkgKi8KKwkJaWYgKCFkYXRhKQorCQkJZXJyb3IoImZhaWxlZCB0byBhcHBseSBkZWx0YSIpOworCisJCWZyZWUoZGVsdGFfZGF0YSk7CiAJfQogCiAJKmZpbmFsX3R5cGUgPSB0eXBlOwpAQCAtMjMzOCw3ICsyNDAyLDggQEAKIAogfQogCi1zdGF0aWMgaW50IHNoYTFfbG9vc2Vfb2JqZWN0X2luZm8oY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgdW5zaWduZWQgbG9uZyAqc2l6ZXApCitzdGF0aWMgaW50IHNoYTFfbG9vc2Vfb2JqZWN0X2luZm8oY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKKwkJCQkgIHN0cnVjdCBvYmplY3RfaW5mbyAqb2kpCiB7CiAJaW50IHN0YXR1czsKIAl1bnNpZ25lZCBsb25nIG1hcHNpemUsIHNpemU7CkBAIC0yMzQ2LDE5ICsyNDExLDM3IEBACiAJZ2l0X3pzdHJlYW0gc3RyZWFtOwogCWNoYXIgaGRyWzMyXTsKIAorCS8qCisJICogSWYgd2UgZG9uJ3QgY2FyZSBhYm91dCB0eXBlIG9yIHNpemUsIHRoZW4gd2UgZG9uJ3QKKwkgKiBuZWVkIHRvIGxvb2sgaW5zaWRlIHRoZSBvYmplY3QgYXQgYWxsLgorCSAqLworCWlmICghb2ktPnR5cGVwICYmICFvaS0+c2l6ZXApIHsKKwkJaWYgKG9pLT5kaXNrX3NpemVwKSB7CisJCQlzdHJ1Y3Qgc3RhdCBzdDsKKwkJCWlmIChzdGF0X3NoYTFfZmlsZShzaGExLCAmc3QpIDwgMCkKKwkJCQlyZXR1cm4gLTE7CisJCQkqb2ktPmRpc2tfc2l6ZXAgPSBzdC5zdF9zaXplOworCQl9CisJCXJldHVybiAwOworCX0KKwogCW1hcCA9IG1hcF9zaGExX2ZpbGUoc2hhMSwgJm1hcHNpemUpOwogCWlmICghbWFwKQotCQlyZXR1cm4gZXJyb3IoInVuYWJsZSB0byBmaW5kICVzIiwgc2hhMV90b19oZXgoc2hhMSkpOworCQlyZXR1cm4gLTE7CisJaWYgKG9pLT5kaXNrX3NpemVwKQorCQkqb2ktPmRpc2tfc2l6ZXAgPSBtYXBzaXplOwogCWlmICh1bnBhY2tfc2hhMV9oZWFkZXIoJnN0cmVhbSwgbWFwLCBtYXBzaXplLCBoZHIsIHNpemVvZihoZHIpKSA8IDApCiAJCXN0YXR1cyA9IGVycm9yKCJ1bmFibGUgdG8gdW5wYWNrICVzIGhlYWRlciIsCiAJCQkgICAgICAgc2hhMV90b19oZXgoc2hhMSkpOwogCWVsc2UgaWYgKChzdGF0dXMgPSBwYXJzZV9zaGExX2hlYWRlcihoZHIsICZzaXplKSkgPCAwKQogCQlzdGF0dXMgPSBlcnJvcigidW5hYmxlIHRvIHBhcnNlICVzIGhlYWRlciIsIHNoYTFfdG9faGV4KHNoYTEpKTsKLQllbHNlIGlmIChzaXplcCkKLQkJKnNpemVwID0gc2l6ZTsKKwllbHNlIGlmIChvaS0+c2l6ZXApCisJCSpvaS0+c2l6ZXAgPSBzaXplOwogCWdpdF9pbmZsYXRlX2VuZCgmc3RyZWFtKTsKIAltdW5tYXAobWFwLCBtYXBzaXplKTsKLQlyZXR1cm4gc3RhdHVzOworCWlmIChvaS0+dHlwZXApCisJCSpvaS0+dHlwZXAgPSBzdGF0dXM7CisJcmV0dXJuIDA7CiB9CiAKIC8qIHJldHVybnMgZW51bSBvYmplY3RfdHlwZSBvciBuZWdhdGl2ZSAqLwpAQCAtMjM2NiwzNCArMjQ0OSwzNyBAQAogewogCXN0cnVjdCBjYWNoZWRfb2JqZWN0ICpjbzsKIAlzdHJ1Y3QgcGFja19lbnRyeSBlOwotCWludCBzdGF0dXMsIHJ0eXBlOworCWludCBydHlwZTsKIAogCWNvID0gZmluZF9jYWNoZWRfb2JqZWN0KHNoYTEpOwogCWlmIChjbykgeworCQlpZiAob2ktPnR5cGVwKQorCQkJKihvaS0+dHlwZXApID0gY28tPnR5cGU7CiAJCWlmIChvaS0+c2l6ZXApCiAJCQkqKG9pLT5zaXplcCkgPSBjby0+c2l6ZTsKKwkJaWYgKG9pLT5kaXNrX3NpemVwKQorCQkJKihvaS0+ZGlza19zaXplcCkgPSAwOwogCQlvaS0+d2hlbmNlID0gT0lfQ0FDSEVEOwotCQlyZXR1cm4gY28tPnR5cGU7CisJCXJldHVybiAwOwogCX0KIAogCWlmICghZmluZF9wYWNrX2VudHJ5KHNoYTEsICZlKSkgewogCQkvKiBNb3N0IGxpa2VseSBpdCdzIGEgbG9vc2Ugb2JqZWN0LiAqLwotCQlzdGF0dXMgPSBzaGExX2xvb3NlX29iamVjdF9pbmZvKHNoYTEsIG9pLT5zaXplcCk7Ci0JCWlmIChzdGF0dXMgPj0gMCkgeworCQlpZiAoIXNoYTFfbG9vc2Vfb2JqZWN0X2luZm8oc2hhMSwgb2kpKSB7CiAJCQlvaS0+d2hlbmNlID0gT0lfTE9PU0U7Ci0JCQlyZXR1cm4gc3RhdHVzOworCQkJcmV0dXJuIDA7CiAJCX0KIAogCQkvKiBOb3QgYSBsb29zZSBvYmplY3Q7IHNvbWVvbmUgZWxzZSBtYXkgaGF2ZSBqdXN0IHBhY2tlZCBpdC4gKi8KIAkJcmVwcmVwYXJlX3BhY2tlZF9naXQoKTsKIAkJaWYgKCFmaW5kX3BhY2tfZW50cnkoc2hhMSwgJmUpKQotCQkJcmV0dXJuIHN0YXR1czsKKwkJCXJldHVybiAtMTsKIAl9CiAKLQlzdGF0dXMgPSBwYWNrZWRfb2JqZWN0X2luZm8oZS5wLCBlLm9mZnNldCwgb2ktPnNpemVwLCAmcnR5cGUpOwotCWlmIChzdGF0dXMgPCAwKSB7CisJcnR5cGUgPSBwYWNrZWRfb2JqZWN0X2luZm8oZS5wLCBlLm9mZnNldCwgb2kpOworCWlmIChydHlwZSA8IDApIHsKIAkJbWFya19iYWRfcGFja2VkX29iamVjdChlLnAsIHNoYTEpOwotCQlzdGF0dXMgPSBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkKHNoYTEsIG9pKTsKKwkJcmV0dXJuIHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoc2hhMSwgb2kpOwogCX0gZWxzZSBpZiAoaW5fZGVsdGFfYmFzZV9jYWNoZShlLnAsIGUub2Zmc2V0KSkgewogCQlvaS0+d2hlbmNlID0gT0lfREJDQUNIRUQ7CiAJfSBlbHNlIHsKQEAgLTI0MDQsMTUgKzI0OTAsMTkgQEAKIAkJCQkJIHJ0eXBlID09IE9CSl9PRlNfREVMVEEpOwogCX0KIAotCXJldHVybiBzdGF0dXM7CisJcmV0dXJuIDA7CiB9CiAKIGludCBzaGExX29iamVjdF9pbmZvKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIHVuc2lnbmVkIGxvbmcgKnNpemVwKQogewotCXN0cnVjdCBvYmplY3RfaW5mbyBvaTsKKwllbnVtIG9iamVjdF90eXBlIHR5cGU7CisJc3RydWN0IG9iamVjdF9pbmZvIG9pID0ge05VTEx9OwogCisJb2kudHlwZXAgPSAmdHlwZTsKIAlvaS5zaXplcCA9IHNpemVwOwotCXJldHVybiBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkKHNoYTEsICZvaSk7CisJaWYgKHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoc2hhMSwgJm9pKSA8IDApCisJCXJldHVybiAtMTsKKwlyZXR1cm4gdHlwZTsKIH0KIAogc3RhdGljIHZvaWQgKnJlYWRfcGFja2VkX3NoYTEoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKZGlmZiAtLWdpdCBhL3NoYTFfbmFtZS5jIGIvc2hhMV9uYW1lLmMKaW5kZXggMzgyMGYyOC4uNjVhZDA2NiAxMDA2NDQKLS0tIGEvc2hhMV9uYW1lLmMKKysrIGIvc2hhMV9uYW1lLmMKQEAgLTUyLDcgKzUyLDcgQEAKIAl9CiAKIAlpZiAoIWRzLT5jYW5kaWRhdGVfb2spIHsKLQkJLyogZGlzY2FyZCB0aGUgY2FuZGlkYXRlOyB3ZSBrbm93IGl0IGRvZXMgbm90IHNhdGlzaWZ5IGZuICovCisJCS8qIGRpc2NhcmQgdGhlIGNhbmRpZGF0ZTsgd2Uga25vdyBpdCBkb2VzIG5vdCBzYXRpc2Z5IGZuICovCiAJCWhhc2hjcHkoZHMtPmNhbmRpZGF0ZSwgY3VycmVudCk7CiAJCWRzLT5jYW5kaWRhdGVfY2hlY2tlZCA9IDA7CiAJCXJldHVybjsKQEAgLTI0MSw3ICsyNDEsNyBAQAogCQlyZXR1cm4gMDsKIAogCS8qIFdlIG5lZWQgdG8gZG8gdGhpcyB0aGUgaGFyZCB3YXkuLi4gKi8KLQlvYmogPSBkZXJlZl90YWcobG9va3VwX29iamVjdChzaGExKSwgTlVMTCwgMCk7CisJb2JqID0gZGVyZWZfdGFnKHBhcnNlX29iamVjdChzaGExKSwgTlVMTCwgMCk7CiAJaWYgKG9iaiAmJiBvYmotPnR5cGUgPT0gT0JKX0NPTU1JVCkKIAkJcmV0dXJuIDE7CiAJcmV0dXJuIDA7CkBAIC00MzEsMjIgKzQzMSw1MSBAQAogfQogCiBzdGF0aWMgaW50IGdldF9zaGExXzEoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqc2hhMSwgdW5zaWduZWQgbG9va3VwX2ZsYWdzKTsKK3N0YXRpYyBpbnQgaW50ZXJwcmV0X250aF9wcmlvcl9jaGVja291dChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3RyYnVmICpidWYpOwogCiBzdGF0aWMgaW50IGdldF9zaGExX2Jhc2ljKGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqc2hhMSkKIHsKIAlzdGF0aWMgY29uc3QgY2hhciAqd2Fybl9tc2cgPSAicmVmbmFtZSAnJS4qcycgaXMgYW1iaWd1b3VzLiI7CisJc3RhdGljIGNvbnN0IGNoYXIgKm9iamVjdF9uYW1lX21zZyA9IE5fKAorCSJHaXQgbm9ybWFsbHkgbmV2ZXIgY3JlYXRlcyBhIHJlZiB0aGF0IGVuZHMgd2l0aCA0MCBoZXggY2hhcmFjdGVyc1xuIgorCSJiZWNhdXNlIGl0IHdpbGwgYmUgaWdub3JlZCB3aGVuIHlvdSBqdXN0IHNwZWNpZnkgNDAtaGV4LiBUaGVzZSByZWZzXG4iCisJIm1heSBiZSBjcmVhdGVkIGJ5IG1pc3Rha2UuIEZvciBleGFtcGxlLFxuIgorCSJcbiIKKwkiICBnaXQgY2hlY2tvdXQgLWIgJGJyICQoZ2l0IHJldi1wYXJzZSAuLi4pXG4iCisJIlxuIgorCSJ3aGVyZSBcIiRiclwiIGlzIHNvbWVob3cgZW1wdHkgYW5kIGEgNDAtaGV4IHJlZiBpcyBjcmVhdGVkLiBQbGVhc2VcbiIKKwkiZXhhbWluZSB0aGVzZSByZWZzIGFuZCBtYXliZSBkZWxldGUgdGhlbS4gVHVybiB0aGlzIG1lc3NhZ2Ugb2ZmIGJ5XG4iCisJInJ1bm5pbmcgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiIik7CisJdW5zaWduZWQgY2hhciB0bXBfc2hhMVsyMF07CiAJY2hhciAqcmVhbF9yZWYgPSBOVUxMOwogCWludCByZWZzX2ZvdW5kID0gMDsKLQlpbnQgYXQsIHJlZmxvZ19sZW47CisJaW50IGF0LCByZWZsb2dfbGVuLCBudGhfcHJpb3IgPSAwOwogCi0JaWYgKGxlbiA9PSA0MCAmJiAhZ2V0X3NoYTFfaGV4KHN0ciwgc2hhMSkpCisJaWYgKGxlbiA9PSA0MCAmJiAhZ2V0X3NoYTFfaGV4KHN0ciwgc2hhMSkpIHsKKwkJaWYgKHdhcm5fb25fb2JqZWN0X3JlZm5hbWVfYW1iaWd1aXR5KSB7CisJCQlyZWZzX2ZvdW5kID0gZHdpbV9yZWYoc3RyLCBsZW4sIHRtcF9zaGExLCAmcmVhbF9yZWYpOworCQkJaWYgKHJlZnNfZm91bmQgPiAwICYmIHdhcm5fYW1iaWd1b3VzX3JlZnMpIHsKKwkJCQl3YXJuaW5nKHdhcm5fbXNnLCBsZW4sIHN0cik7CisJCQkJaWYgKGFkdmljZV9vYmplY3RfbmFtZV93YXJuaW5nKQorCQkJCQlmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBfKG9iamVjdF9uYW1lX21zZykpOworCQkJfQorCQkJZnJlZShyZWFsX3JlZik7CisJCX0KIAkJcmV0dXJuIDA7CisJfQogCiAJLyogYmFzaWNAe3RpbWUgb3IgbnVtYmVyIG9yIC1udW1iZXJ9IGZvcm1hdCB0byBxdWVyeSByZWYtbG9nICovCiAJcmVmbG9nX2xlbiA9IGF0ID0gMDsKIAlpZiAobGVuICYmIHN0cltsZW4tMV0gPT0gJ30nKSB7Ci0JCWZvciAoYXQgPSBsZW4tMjsgYXQgPj0gMDsgYXQtLSkgeworCQlmb3IgKGF0ID0gbGVuLTQ7IGF0ID49IDA7IGF0LS0pIHsKIAkJCWlmIChzdHJbYXRdID09ICdAJyAmJiBzdHJbYXQrMV0gPT0gJ3snKSB7CisJCQkJaWYgKHN0clthdCsyXSA9PSAnLScpIHsKKwkJCQkJaWYgKGF0ICE9IDApCisJCQkJCQkvKiBAey1OfSBub3QgYXQgc3RhcnQgKi8KKwkJCQkJCXJldHVybiAtMTsKKwkJCQkJbnRoX3ByaW9yID0gMTsKKwkJCQkJY29udGludWU7CisJCQkJfQogCQkJCWlmICghdXBzdHJlYW1fbWFyayhzdHIgKyBhdCwgbGVuIC0gYXQpKSB7CiAJCQkJCXJlZmxvZ19sZW4gPSAobGVuLTEpIC0gKGF0KzIpOwogCQkJCQlsZW4gPSBhdDsKQEAgLTQ2MCwyMCArNDg5LDIyIEBACiAJaWYgKGxlbiAmJiBhbWJpZ3VvdXNfcGF0aChzdHIsIGxlbikpCiAJCXJldHVybiAtMTsKIAotCWlmICghbGVuICYmIHJlZmxvZ19sZW4pIHsKKwlpZiAobnRoX3ByaW9yKSB7CiAJCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7Ci0JCWludCByZXQ7Ci0JCS8qIHRyeSB0aGUgQHstTn0gc3ludGF4IGZvciBuLXRoIGNoZWNrb3V0ICovCi0JCXJldCA9IGludGVycHJldF9icmFuY2hfbmFtZShzdHIrYXQsICZidWYpOwotCQlpZiAocmV0ID4gMCkgewotCQkJLyogc3Vic3RpdHV0ZSB0aGlzIGJyYW5jaCBuYW1lIGFuZCByZXN0YXJ0ICovCi0JCQlyZXR1cm4gZ2V0X3NoYTFfMShidWYuYnVmLCBidWYubGVuLCBzaGExLCAwKTsKLQkJfSBlbHNlIGlmIChyZXQgPT0gMCkgewotCQkJcmV0dXJuIC0xOworCQlpbnQgZGV0YWNoZWQ7CisKKwkJaWYgKGludGVycHJldF9udGhfcHJpb3JfY2hlY2tvdXQoc3RyLCAmYnVmKSA+IDApIHsKKwkJCWRldGFjaGVkID0gKGJ1Zi5sZW4gPT0gNDAgJiYgIWdldF9zaGExX2hleChidWYuYnVmLCBzaGExKSk7CisJCQlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwkJCWlmIChkZXRhY2hlZCkKKwkJCQlyZXR1cm4gMDsKIAkJfQorCX0KKworCWlmICghbGVuICYmIHJlZmxvZ19sZW4pCiAJCS8qIGFsbG93ICJAey4uLn0iIHRvIG1lYW4gdGhlIGN1cnJlbnQgYnJhbmNoIHJlZmxvZyAqLwogCQlyZWZzX2ZvdW5kID0gZHdpbV9yZWYoIkhFQUQiLCA0LCBzaGExLCAmcmVhbF9yZWYpOwotCX0gZWxzZSBpZiAocmVmbG9nX2xlbikKKwllbHNlIGlmIChyZWZsb2dfbGVuKQogCQlyZWZzX2ZvdW5kID0gZHdpbV9sb2coc3RyLCBsZW4sIHNoYTEsICZyZWFsX3JlZik7CiAJZWxzZQogCQlyZWZzX2ZvdW5kID0gZHdpbV9yZWYoc3RyLCBsZW4sIHNoYTEsICZyZWFsX3JlZik7CkBAIC00ODEsNyArNTEyLDkgQEAKIAlpZiAoIXJlZnNfZm91bmQpCiAJCXJldHVybiAtMTsKIAotCWlmICh3YXJuX2FtYmlndW91c19yZWZzICYmIHJlZnNfZm91bmQgPiAxKQorCWlmICh3YXJuX2FtYmlndW91c19yZWZzICYmCisJICAgIChyZWZzX2ZvdW5kID4gMSB8fAorCSAgICAgIWdldF9zaG9ydF9zaGExKHN0ciwgbGVuLCB0bXBfc2hhMSwgR0VUX1NIQTFfUVVJRVRMWSkpKQogCQl3YXJuaW5nKHdhcm5fbXNnLCBsZW4sIHN0cik7CiAKIAlpZiAocmVmbG9nX2xlbikgewpAQCAtNDkwLDEwICs1MjMsNiBAQAogCQl1bnNpZ25lZCBsb25nIGNvX3RpbWU7CiAJCWludCBjb190eiwgY29fY250OwogCi0JCS8qIGEgQHstTn0gcGxhY2VkIGFueXdoZXJlIGV4Y2VwdCB0aGUgc3RhcnQgaXMgYW4gZXJyb3IgKi8KLQkJaWYgKHN0clthdCsyXSA9PSAnLScpCi0JCQlyZXR1cm4gLTE7Ci0KIAkJLyogSXMgaXQgYXNraW5nIGZvciBOLXRoIGVudHJ5LCBvciBhcHByb3hpZGF0ZT8gKi8KIAkJZm9yIChpID0gbnRoID0gMDsgMCA8PSBudGggJiYgaSA8IHJlZmxvZ19sZW47IGkrKykgewogCQkJY2hhciBjaCA9IHN0clthdCsyK2ldOwpAQCAtNTE3LDEyICs1NDYsMjEgQEAKIAkJfQogCQlpZiAocmVhZF9yZWZfYXQocmVhbF9yZWYsIGF0X3RpbWUsIG50aCwgc2hhMSwgTlVMTCwKIAkJCQkmY29fdGltZSwgJmNvX3R6LCAmY29fY250KSkgeworCQkJaWYgKCFsZW4pIHsKKwkJCQlpZiAoIXByZWZpeGNtcChyZWFsX3JlZiwgInJlZnMvaGVhZHMvIikpIHsKKwkJCQkJc3RyID0gcmVhbF9yZWYgKyAxMTsKKwkJCQkJbGVuID0gc3RybGVuKHJlYWxfcmVmICsgMTEpOworCQkJCX0gZWxzZSB7CisJCQkJCS8qIGRldGFjaGVkIEhFQUQgKi8KKwkJCQkJc3RyID0gIkhFQUQiOworCQkJCQlsZW4gPSA0OworCQkJCX0KKwkJCX0KIAkJCWlmIChhdF90aW1lKQogCQkJCXdhcm5pbmcoIkxvZyBmb3IgJyUuKnMnIG9ubHkgZ29lcyAiCiAJCQkJCSJiYWNrIHRvICVzLiIsIGxlbiwgc3RyLAogCQkJCQlzaG93X2RhdGUoY29fdGltZSwgY29fdHosIERBVEVfUkZDMjgyMikpOwogCQkJZWxzZSB7Ci0JCQkJZnJlZShyZWFsX3JlZik7CiAJCQkJZGllKCJMb2cgZm9yICclLipzJyBvbmx5IGhhcyAlZCBlbnRyaWVzLiIsCiAJCQkJICAgIGxlbiwgc3RyLCBjb19jbnQpOwogCQkJfQpAQCAtOTY2LDYgKzEwMDQsMjcgQEAKIAlyZXR1cm4gc3Q7CiB9CiAKK3N0YXRpYyBpbnQgcmVpbnRlcnByZXQoY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4sIGludCBsZW4sIHN0cnVjdCBzdHJidWYgKmJ1ZikKK3sKKwkvKiB3ZSBoYXZlIGV4dHJhIGRhdGEsIHdoaWNoIG1pZ2h0IG5lZWQgZnVydGhlciBwcm9jZXNzaW5nICovCisJc3RydWN0IHN0cmJ1ZiB0bXAgPSBTVFJCVUZfSU5JVDsKKwlpbnQgdXNlZCA9IGJ1Zi0+bGVuOworCWludCByZXQ7CisKKwlzdHJidWZfYWRkKGJ1ZiwgbmFtZSArIGxlbiwgbmFtZWxlbiAtIGxlbik7CisJcmV0ID0gaW50ZXJwcmV0X2JyYW5jaF9uYW1lKGJ1Zi0+YnVmLCAmdG1wKTsKKwkvKiB0aGF0IGRhdGEgd2FzIG5vdCBpbnRlcnByZXRlZCwgcmVtb3ZlIG91ciBjcnVmdCAqLworCWlmIChyZXQgPCAwKSB7CisJCXN0cmJ1Zl9zZXRsZW4oYnVmLCB1c2VkKTsKKwkJcmV0dXJuIGxlbjsKKwl9CisJc3RyYnVmX3Jlc2V0KGJ1Zik7CisJc3RyYnVmX2FkZGJ1ZihidWYsICZ0bXApOworCXN0cmJ1Zl9yZWxlYXNlKCZ0bXApOworCS8qIHR3ZWFrIGZvciBzaXplIG9mIHstTn0gdmVyc3VzIGV4cGFuZGVkIHJlZiBuYW1lICovCisJcmV0dXJuIHJldCAtIHVzZWQgKyBsZW47Cit9CisKIC8qCiAgKiBUaGlzIHJlYWRzIHNob3J0LWhhbmQgc3ludGF4IHRoYXQgbm90IG9ubHkgZXZhbHVhdGVzIHRvIGEgY29tbWl0CiAgKiBvYmplY3QgbmFtZSwgYnV0IGFsc28gY2FuIGFjdCBhcyBpZiB0aGUgZW5kIHVzZXIgc3BlbGxlZCB0aGUgbmFtZQpAQCAtOTk1LDI4ICsxMDU0LDEzIEBACiAJaW50IGxlbiA9IGludGVycHJldF9udGhfcHJpb3JfY2hlY2tvdXQobmFtZSwgYnVmKTsKIAlpbnQgdG1wX2xlbjsKIAotCWlmICghbGVuKQorCWlmICghbGVuKSB7CiAJCXJldHVybiBsZW47IC8qIHN5bnRheCBPaywgbm90IGVub3VnaCBzd2l0Y2hlcyAqLwotCWlmICgwIDwgbGVuICYmIGxlbiA9PSBuYW1lbGVuKQotCQlyZXR1cm4gbGVuOyAvKiBjb25zdW1lZCBhbGwgKi8KLQllbHNlIGlmICgwIDwgbGVuKSB7Ci0JCS8qIHdlIGhhdmUgZXh0cmEgZGF0YSwgd2hpY2ggbWlnaHQgbmVlZCBmdXJ0aGVyIHByb2Nlc3NpbmcgKi8KLQkJc3RydWN0IHN0cmJ1ZiB0bXAgPSBTVFJCVUZfSU5JVDsKLQkJaW50IHVzZWQgPSBidWYtPmxlbjsKLQkJaW50IHJldDsKLQotCQlzdHJidWZfYWRkKGJ1ZiwgbmFtZSArIGxlbiwgbmFtZWxlbiAtIGxlbik7Ci0JCXJldCA9IGludGVycHJldF9icmFuY2hfbmFtZShidWYtPmJ1ZiwgJnRtcCk7Ci0JCS8qIHRoYXQgZGF0YSB3YXMgbm90IGludGVycHJldGVkLCByZW1vdmUgb3VyIGNydWZ0ICovCi0JCWlmIChyZXQgPCAwKSB7Ci0JCQlzdHJidWZfc2V0bGVuKGJ1ZiwgdXNlZCk7Ci0JCQlyZXR1cm4gbGVuOwotCQl9Ci0JCXN0cmJ1Zl9yZXNldChidWYpOwotCQlzdHJidWZfYWRkYnVmKGJ1ZiwgJnRtcCk7Ci0JCXN0cmJ1Zl9yZWxlYXNlKCZ0bXApOwotCQkvKiB0d2VhayBmb3Igc2l6ZSBvZiB7LU59IHZlcnN1cyBleHBhbmRlZCByZWYgbmFtZSAqLwotCQlyZXR1cm4gcmV0IC0gdXNlZCArIGxlbjsKKwl9IGVsc2UgaWYgKGxlbiA+IDApIHsKKwkJaWYgKGxlbiA9PSBuYW1lbGVuKQorCQkJcmV0dXJuIGxlbjsgLyogY29uc3VtZWQgYWxsICovCisJCWVsc2UKKwkJCXJldHVybiByZWludGVycHJldChuYW1lLCBuYW1lbGVuLCBsZW4sIGJ1Zik7CiAJfQogCiAJY3AgPSBzdHJjaHIobmFtZSwgJ0AnKTsKQEAgLTEwMzMsMTQgKzEwNzcsMTUgQEAKIAkgKiBwb2ludHMgdG8gc29tZXRoaW5nIGRpZmZlcmVudCB0aGFuIGEgYnJhbmNoLgogCSAqLwogCWlmICghdXBzdHJlYW0pCi0JCXJldHVybiBlcnJvcihfKCJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIikpOworCQlkaWUoXygiSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaCIpKTsKIAlpZiAoIXVwc3RyZWFtLT5tZXJnZSB8fCAhdXBzdHJlYW0tPm1lcmdlWzBdLT5kc3QpIHsKIAkJaWYgKCFyZWZfZXhpc3RzKHVwc3RyZWFtLT5yZWZuYW1lKSkKLQkJCXJldHVybiBlcnJvcihfKCJObyBzdWNoIGJyYW5jaDogJyVzJyIpLCBjcCk7Ci0JCWlmICghdXBzdHJlYW0tPm1lcmdlKQotCQkJcmV0dXJuIGVycm9yKF8oIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIiksCi0JCQkJICAgICB1cHN0cmVhbS0+bmFtZSk7Ci0JCXJldHVybiBlcnJvcigKKwkJCWRpZShfKCJObyBzdWNoIGJyYW5jaDogJyVzJyIpLCBjcCk7CisJCWlmICghdXBzdHJlYW0tPm1lcmdlKSB7CisJCQlkaWUoXygiTm8gdXBzdHJlYW0gY29uZmlndXJlZCBmb3IgYnJhbmNoICclcyciKSwKKwkJCQl1cHN0cmVhbS0+bmFtZSk7CisJCX0KKwkJZGllKAogCQkJXygiVXBzdHJlYW0gYnJhbmNoICclcycgbm90IHN0b3JlZCBhcyBhIHJlbW90ZS10cmFja2luZyBicmFuY2giKSwKIAkJCXVwc3RyZWFtLT5tZXJnZVswXS0+c3JjKTsKIAl9CkBAIC0xMDU1LDkgKzExMDAsMTMgQEAKIGludCBzdHJidWZfYnJhbmNobmFtZShzdHJ1Y3Qgc3RyYnVmICpzYiwgY29uc3QgY2hhciAqbmFtZSkKIHsKIAlpbnQgbGVuID0gc3RybGVuKG5hbWUpOwotCWlmIChpbnRlcnByZXRfYnJhbmNoX25hbWUobmFtZSwgc2IpID09IGxlbikKKwlpbnQgdXNlZCA9IGludGVycHJldF9icmFuY2hfbmFtZShuYW1lLCBzYik7CisKKwlpZiAodXNlZCA9PSBsZW4pCiAJCXJldHVybiAwOwotCXN0cmJ1Zl9hZGQoc2IsIG5hbWUsIGxlbik7CisJaWYgKHVzZWQgPCAwKQorCQl1c2VkID0gMDsKKwlzdHJidWZfYWRkKHNiLCBuYW1lICsgdXNlZCwgbGVuIC0gdXNlZCk7CiAJcmV0dXJuIGxlbjsKIH0KIApAQCAtMTE3MCw3ICsxMjE5LDcgQEAKIAkJCQkJY29uc3QgY2hhciAqZmlsZW5hbWUpCiB7CiAJc3RydWN0IHN0YXQgc3Q7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCWludCBwb3M7CiAJdW5zaWduZWQgbmFtZWxlbiA9IHN0cmxlbihmaWxlbmFtZSk7CiAJdW5zaWduZWQgZnVsbG5hbWVsZW47CkBAIC0xMjY0LDcgKzEzMTMsNyBAQAogCSAqLwogCWlmIChuYW1lWzBdID09ICc6JykgewogCQlpbnQgc3RhZ2UgPSAwOwotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCQljaGFyICpuZXdfcGF0aCA9IE5VTEw7CiAJCWludCBwb3M7CiAJCWlmICghb25seV90b19kaWUgJiYgbmFtZWxlbiA+IDIgJiYgbmFtZVsxXSA9PSAnLycpIHsKZGlmZiAtLWdpdCBhL3NoYWxsb3cuYyBiL3NoYWxsb3cuYwppbmRleCA2YmU5MTVmLi44YTljOTZkIDEwMDY0NAotLS0gYS9zaGFsbG93LmMKKysrIGIvc2hhbGxvdy5jCkBAIC0zLDYgKzMsMTYgQEAKICNpbmNsdWRlICJ0YWcuaCIKIAogc3RhdGljIGludCBpc19zaGFsbG93ID0gLTE7CitzdGF0aWMgc3RydWN0IHN0YXQgc2hhbGxvd19zdGF0Oworc3RhdGljIGNoYXIgKmFsdGVybmF0ZV9zaGFsbG93X2ZpbGU7CisKK3ZvaWQgc2V0X2FsdGVybmF0ZV9zaGFsbG93X2ZpbGUoY29uc3QgY2hhciAqcGF0aCkKK3sKKwlpZiAoaXNfc2hhbGxvdyAhPSAtMSkKKwkJZGllKCJCVUc6IGlzX3JlcG9zaXRvcnlfc2hhbGxvdyBtdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldF9hbHRlcm5hdGVfc2hhbGxvd19maWxlIik7CisJZnJlZShhbHRlcm5hdGVfc2hhbGxvd19maWxlKTsKKwlhbHRlcm5hdGVfc2hhbGxvd19maWxlID0gcGF0aCA/IHhzdHJkdXAocGF0aCkgOiBOVUxMOworfQogCiBpbnQgcmVnaXN0ZXJfc2hhbGxvdyhjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQogewpAQCAtMjEsMTIgKzMxLDIxIEBACiB7CiAJRklMRSAqZnA7CiAJY2hhciBidWZbMTAyNF07CisJY29uc3QgY2hhciAqcGF0aCA9IGFsdGVybmF0ZV9zaGFsbG93X2ZpbGU7CiAKIAlpZiAoaXNfc2hhbGxvdyA+PSAwKQogCQlyZXR1cm4gaXNfc2hhbGxvdzsKIAotCWZwID0gZm9wZW4oZ2l0X3BhdGgoInNoYWxsb3ciKSwgInIiKTsKLQlpZiAoIWZwKSB7CisJaWYgKCFwYXRoKQorCQlwYXRoID0gZ2l0X3BhdGgoInNoYWxsb3ciKTsKKwkvKgorCSAqIGZldGNoLXBhY2sgc2V0cyAnLS1zaGFsbG93LWZpbGUgIiInIGFzIGFuIGluZGljYXRvciB0aGF0IG5vCisJICogc2hhbGxvdyBmaWxlIHNob3VsZCBiZSB1c2VkLiBXZSBjb3VsZCBqdXN0IG9wZW4gaXQgYW5kIGl0CisJICogd2lsbCBsaWtlbHkgZmFpbC4gQnV0IGxldCdzIGRvIGFuIGV4cGxpY2l0IGNoZWNrIGluc3RlYWQuCisJICovCisJaWYgKCEqcGF0aCB8fAorCSAgICBzdGF0KHBhdGgsICZzaGFsbG93X3N0YXQpIHx8CisJICAgIChmcCA9IGZvcGVuKHBhdGgsICJyIikpID09IE5VTEwpIHsKIAkJaXNfc2hhbGxvdyA9IDA7CiAJCXJldHVybiBpc19zaGFsbG93OwogCX0KQEAgLTkxLDIwICsxMTAsMzQgQEAKIAkJCQkJY29udGludWU7CiAJCQkJKnBvaW50ZXIgPSBjdXJfZGVwdGg7CiAJCQl9Ci0JCQlpZiAoY3VyX2RlcHRoIDwgZGVwdGgpIHsKLQkJCQlpZiAocC0+bmV4dCkKLQkJCQkJYWRkX29iamVjdF9hcnJheSgmcC0+aXRlbS0+b2JqZWN0LAotCQkJCQkJCU5VTEwsICZzdGFjayk7Ci0JCQkJZWxzZSB7Ci0JCQkJCWNvbW1pdCA9IHAtPml0ZW07Ci0JCQkJCWN1cl9kZXB0aCA9ICooaW50ICopY29tbWl0LT51dGlsOwotCQkJCX0KLQkJCX0gZWxzZSB7Ci0JCQkJY29tbWl0X2xpc3RfaW5zZXJ0KHAtPml0ZW0sICZyZXN1bHQpOwotCQkJCXAtPml0ZW0tPm9iamVjdC5mbGFncyB8PSBzaGFsbG93X2ZsYWc7CisJCQlpZiAocC0+bmV4dCkKKwkJCQlhZGRfb2JqZWN0X2FycmF5KCZwLT5pdGVtLT5vYmplY3QsCisJCQkJCQlOVUxMLCAmc3RhY2spOworCQkJZWxzZSB7CisJCQkJY29tbWl0ID0gcC0+aXRlbTsKKwkJCQljdXJfZGVwdGggPSAqKGludCAqKWNvbW1pdC0+dXRpbDsKIAkJCX0KIAkJfQogCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CisKK3ZvaWQgY2hlY2tfc2hhbGxvd19maWxlX2Zvcl91cGRhdGUodm9pZCkKK3sKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCWlmICghaXNfc2hhbGxvdykKKwkJcmV0dXJuOworCWVsc2UgaWYgKGlzX3NoYWxsb3cgPT0gLTEpCisJCWRpZSgiQlVHOiBzaGFsbG93IG11c3QgYmUgaW5pdGlhbGl6ZWQgYnkgbm93Iik7CisKKwlpZiAoc3RhdChnaXRfcGF0aCgic2hhbGxvdyIpLCAmc3QpKQorCQlkaWUoInNoYWxsb3cgZmlsZSB3YXMgcmVtb3ZlZCBkdXJpbmcgZmV0Y2giKTsKKwllbHNlIGlmIChzdC5zdF9tdGltZSAhPSBzaGFsbG93X3N0YXQuc3RfbXRpbWUKKyNpZmRlZiBVU0VfTlNFQworCQkgfHwgU1RfTVRJTUVfTlNFQyhzdCkgIT0gU1RfTVRJTUVfTlNFQyhzaGFsbG93X3N0YXQpCisjZW5kaWYKKwkJICAgKQorCQlkaWUoInNoYWxsb3cgZmlsZSB3YXMgY2hhbmdlZCBkdXJpbmcgZmV0Y2giKTsKK30KZGlmZiAtLWdpdCBhL3NoZWxsLmMgYi9zaGVsbC5jCmluZGV4IDE0Mjk4NzAuLjY2MzUwYjIgMTAwNjQ0Ci0tLSBhL3NoZWxsLmMKKysrIGIvc2hlbGwuYwpAQCAtMTQ3LDcgKzE0Nyw2IEBACiAJY2hhciAqcHJvZzsKIAljb25zdCBjaGFyICoqdXNlcl9hcmd2OwogCXN0cnVjdCBjb21tYW5kcyAqY21kOwotCWludCBkZXZudWxsX2ZkOwogCWludCBjb3VudDsKIAogCWdpdF9zZXR1cF9nZXR0ZXh0KCk7CkBAIC0xNTYsMTUgKzE1NSwxMCBAQAogCiAJLyoKIAkgKiBBbHdheXMgb3BlbiBmaWxlIGRlc2NyaXB0b3JzIDAvMS8yIHRvIGF2b2lkIGNsb2JiZXJpbmcgZmlsZXMKLQkgKiBpbiBkaWUoKS4gIEl0IGFsc28gYXZvaWRzIG5vdCBtZXNzaW5nIHVwIHdoZW4gdGhlIHBpcGVzIGFyZQotCSAqIGR1cCdlZCBvbnRvIHN0ZGluL3N0ZG91dC9zdGRlcnIgaW4gdGhlIGNoaWxkIHByb2Nlc3NlcyB3ZSBzcGF3bi4KKwkgKiBpbiBkaWUoKS4gIEl0IGFsc28gYXZvaWRzIG1lc3NpbmcgdXAgd2hlbiB0aGUgcGlwZXMgYXJlIGR1cCdlZAorCSAqIG9udG8gc3RkaW4vc3Rkb3V0L3N0ZGVyciBpbiB0aGUgY2hpbGQgcHJvY2Vzc2VzIHdlIHNwYXduLgogCSAqLwotCWRldm51bGxfZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JEV1IpOwotCXdoaWxlIChkZXZudWxsX2ZkID49IDAgJiYgZGV2bnVsbF9mZCA8PSAyKQotCQlkZXZudWxsX2ZkID0gZHVwKGRldm51bGxfZmQpOwotCWlmIChkZXZudWxsX2ZkID09IC0xKQotCQlkaWVfZXJybm8oIm9wZW5pbmcgL2Rldi9udWxsIGZhaWxlZCIpOwotCWNsb3NlIChkZXZudWxsX2ZkKTsKKwlzYW5pdGl6ZV9zdGRmZHMoKTsKIAogCS8qCiAJICogU3BlY2lhbCBoYWNrIHRvIHByZXRlbmQgdG8gYmUgYSBDVlMgc2VydmVyCmRpZmYgLS1naXQgYS9zdHJlYW1pbmcuYyBiL3N0cmVhbWluZy5jCmluZGV4IGNhYmNkOWQuLmRlYmU5MDQgMTAwNjQ0Ci0tLSBhL3N0cmVhbWluZy5jCisrKyBiL3N0cmVhbWluZy5jCkBAIC0xMTEsMTEgKzExMSwxMSBAQAogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAlpbnQgc3RhdHVzOwogCisJb2ktPnR5cGVwID0gdHlwZTsKIAlvaS0+c2l6ZXAgPSAmc2l6ZTsKIAlzdGF0dXMgPSBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkKHNoYTEsIG9pKTsKIAlpZiAoc3RhdHVzIDwgMCkKIAkJcmV0dXJuIHN0cmVhbV9lcnJvcjsKLQkqdHlwZSA9IHN0YXR1czsKIAogCXN3aXRjaCAob2ktPndoZW5jZSkgewogCWNhc2UgT0lfTE9PU0U6CkBAIC0xMzUsNyArMTM1LDcgQEAKIAkJCQkgc3RydWN0IHN0cmVhbV9maWx0ZXIgKmZpbHRlcikKIHsKIAlzdHJ1Y3QgZ2l0X2lzdHJlYW0gKnN0OwotCXN0cnVjdCBvYmplY3RfaW5mbyBvaTsKKwlzdHJ1Y3Qgb2JqZWN0X2luZm8gb2kgPSB7TlVMTH07CiAJY29uc3QgdW5zaWduZWQgY2hhciAqcmVhbCA9IGxvb2t1cF9yZXBsYWNlX29iamVjdChzaGExKTsKIAllbnVtIGlucHV0X3NvdXJjZSBzcmMgPSBpc3RyZWFtX3NvdXJjZShyZWFsLCB0eXBlLCAmb2kpOwogCkBAIC0xNDksNyArMTQ5LDcgQEAKIAkJCXJldHVybiBOVUxMOwogCQl9CiAJfQotCWlmIChzdCAmJiBmaWx0ZXIpIHsKKwlpZiAoZmlsdGVyKSB7CiAJCS8qIEFkZCAiJiYgIWlzX251bGxfc3RyZWFtX2ZpbHRlcihmaWx0ZXIpIiBmb3IgcGVyZm9ybWFuY2UgKi8KIAkJc3RydWN0IGdpdF9pc3RyZWFtICpuc3QgPSBhdHRhY2hfc3RyZWFtX2ZpbHRlcihzdCwgZmlsdGVyKTsKIAkJaWYgKCFuc3QpCmRpZmYgLS1naXQgYS9zdWJtb2R1bGUuYyBiL3N1Ym1vZHVsZS5jCmluZGV4IGU3MjgwMjUuLmMwZjkzYzIgMTAwNjQ0Ci0tLSBhL3N1Ym1vZHVsZS5jCisrKyBiL3N1Ym1vZHVsZS5jCkBAIC0xMzQsNiArMTM0LDkgQEAKIAkJcmV0dXJuIDA7CiAKIAlpZiAoIXN0cmNtcChrZXksICJwYXRoIikpIHsKKwkJaWYgKCF2YWx1ZSkKKwkJCXJldHVybiBjb25maWdfZXJyb3Jfbm9uYm9vbCh2YXIpOworCiAJCWNvbmZpZyA9IHVuc29ydGVkX3N0cmluZ19saXN0X2xvb2t1cCgmY29uZmlnX25hbWVfZm9yX3BhdGgsIHZhbHVlKTsKIAkJaWYgKGNvbmZpZykKIAkJCWZyZWUoY29uZmlnLT51dGlsKTsKQEAgLTE1MSw2ICsxNTQsOSBAQAogCX0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJpZ25vcmUiKSkgewogCQljaGFyICpuYW1lX2NzdHI7CiAKKwkJaWYgKCF2YWx1ZSkKKwkJCXJldHVybiBjb25maWdfZXJyb3Jfbm9uYm9vbCh2YXIpOworCiAJCWlmIChzdHJjbXAodmFsdWUsICJ1bnRyYWNrZWQiKSAmJiBzdHJjbXAodmFsdWUsICJkaXJ0eSIpICYmCiAJCSAgICBzdHJjbXAodmFsdWUsICJhbGwiKSAmJiBzdHJjbXAodmFsdWUsICJub25lIikpIHsKIAkJCXdhcm5pbmcoIkludmFsaWQgcGFyYW1ldGVyIFwiJXNcIiBmb3IgY29uZmlnIG9wdGlvbiBcInN1Ym1vZHVsZS4lcy5pZ25vcmVcIiIsIHZhbHVlLCB2YXIpOwpAQCAtMjI2LDYgKzIzMiw3IEBACiAJd2hpbGUgKChjb21taXQgPSBnZXRfcmV2aXNpb24ocmV2KSkpIHsKIAkJc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0IGN0eCA9IHswfTsKIAkJY3R4LmRhdGVfbW9kZSA9IHJldi0+ZGF0ZV9tb2RlOworCQljdHgub3V0cHV0X2VuY29kaW5nID0gZ2V0X2xvZ19vdXRwdXRfZW5jb2RpbmcoKTsKIAkJc3RyYnVmX3NldGxlbigmc2IsIDApOwogCQlzdHJidWZfYWRkc3RyKCZzYiwgbGluZV9wcmVmaXgpOwogCQlpZiAoY29tbWl0LT5vYmplY3QuZmxhZ3MgJiBTWU1NRVRSSUNfTEVGVCkgewpAQCAtNjAzLDkgKzYxMCw4IEBACiAJaWYgKCF3b3JrX3RyZWUpCiAJCWdvdG8gb3V0OwogCi0JaWYgKCF0aGVfaW5kZXguaW5pdGlhbGl6ZWQpCi0JCWlmIChyZWFkX2NhY2hlKCkgPCAwKQotCQkJZGllKCJpbmRleCBmaWxlIGNvcnJ1cHQiKTsKKwlpZiAocmVhZF9jYWNoZSgpIDwgMCkKKwkJZGllKCJpbmRleCBmaWxlIGNvcnJ1cHQiKTsKIAogCWFyZ3ZfYXJyYXlfcHVzaCgmYXJndiwgImZldGNoIik7CiAJZm9yIChpID0gMDsgaSA8IG9wdGlvbnMtPmFyZ2M7IGkrKykKQEAgLTYyNCw3ICs2MzAsNyBAQAogCQlzdHJ1Y3Qgc3RyYnVmIHN1Ym1vZHVsZV9wYXRoID0gU1RSQlVGX0lOSVQ7CiAJCXN0cnVjdCBzdHJidWYgc3VibW9kdWxlX2dpdF9kaXIgPSBTVFJCVUZfSU5JVDsKIAkJc3RydWN0IHN0cmJ1ZiBzdWJtb2R1bGVfcHJlZml4ID0gU1RSQlVGX0lOSVQ7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CiAJCWNvbnN0IGNoYXIgKmdpdF9kaXIsICpuYW1lLCAqZGVmYXVsdF9hcmd2OwogCiAJCWlmICghU19JU0dJVExJTksoY2UtPmNlX21vZGUpKQpAQCAtODQ2LDcgKzg1Miw3IEBACiAJCXN0cnVjdCBjb21taXQgKmEsIHN0cnVjdCBjb21taXQgKmIpCiB7CiAJaW50IGksIGo7Ci0Jc3RydWN0IG9iamVjdF9hcnJheSBtZXJnZXM7CisJc3RydWN0IG9iamVjdF9hcnJheSBtZXJnZXMgPSBPQkpFQ1RfQVJSQVlfSU5JVDsKIAlzdHJ1Y3QgY29tbWl0ICpjb21taXQ7CiAJaW50IGNvbnRhaW5zX2Fub3RoZXI7CiAKQEAgLTg1Niw3ICs4NjIsNiBAQAogCXN0cnVjdCByZXZfaW5mbyByZXZzOwogCXN0cnVjdCBzZXR1cF9yZXZpc2lvbl9vcHQgcmV2X29wdHM7CiAKLQltZW1zZXQoJm1lcmdlcywgMCwgc2l6ZW9mKG1lcmdlcykpOwogCW1lbXNldChyZXN1bHQsIDAsIHNpemVvZihzdHJ1Y3Qgb2JqZWN0X2FycmF5KSk7CiAJbWVtc2V0KCZyZXZfb3B0cywgMCwgc2l6ZW9mKHJldl9vcHRzKSk7CiAKQEAgLTg5NCw4ICs4OTksNyBAQAogCQl9CiAKIAkJaWYgKCFjb250YWluc19hbm90aGVyKQotCQkJYWRkX29iamVjdF9hcnJheShtZXJnZXMub2JqZWN0c1tpXS5pdGVtLAotCQkJCQkgbWVyZ2VzLm9iamVjdHNbaV0ubmFtZSwgcmVzdWx0KTsKKwkJCWFkZF9vYmplY3RfYXJyYXkobWVyZ2VzLm9iamVjdHNbaV0uaXRlbSwgTlVMTCwgcmVzdWx0KTsKIAl9CiAKIAlmcmVlKG1lcmdlcy5vYmplY3RzKTsKZGlmZiAtLWdpdCBhL3QvTWFrZWZpbGUgYi90L01ha2VmaWxlCmluZGV4IDQ0Y2E3ZDMuLjIzNzNhMDQgMTAwNjQ0Ci0tLSBhL3QvTWFrZWZpbGUKKysrIGIvdC9NYWtlZmlsZQpAQCAtMTUsOSArMTUsMTYgQEAKIERFRkFVTFRfVEVTVF9UQVJHRVQgPz0gdGVzdAogVEVTVF9MSU5UID89IHRlc3QtbGludC1kdXBsaWNhdGVzIHRlc3QtbGludC1leGVjdXRhYmxlCiAKK2lmZGVmIFRFU1RfT1VUUFVUX0RJUkVDVE9SWQorVEVTVF9SRVNVTFRTX0RJUkVDVE9SWSA9ICQoVEVTVF9PVVRQVVRfRElSRUNUT1JZKS90ZXN0LXJlc3VsdHMKK2Vsc2UKK1RFU1RfUkVTVUxUU19ESVJFQ1RPUlkgPSB0ZXN0LXJlc3VsdHMKK2VuZGlmCisKICMgU2hlbGwgcXVvdGU7CiBTSEVMTF9QQVRIX1NRID0gJChzdWJzdCAnLCdcJycsJChTSEVMTF9QQVRIKSkKIFBFUkxfUEFUSF9TUSA9ICQoc3Vic3QgJywnXCcnLCQoUEVSTF9QQVRIKSkKK1RFU1RfUkVTVUxUU19ESVJFQ1RPUllfU1EgPSAkKHN1YnN0ICcsJ1wnJywkKFRFU1RfUkVTVUxUU19ESVJFQ1RPUlkpKQogCiBUID0gJChzb3J0ICQod2lsZGNhcmQgdFswLTldWzAtOV1bMC05XVswLTldLSouc2gpKQogVFNWTiA9ICQoc29ydCAkKHdpbGRjYXJkIHQ5MVswLTldWzAtOV0tKi5zaCkpCkBAIC0zNiwxMCArNDMsMTAgQEAKIAlAZWNobyAiKioqICRAICoqKiI7IEdJVF9DT05GSUc9LmdpdC9jb25maWcgJyQoU0hFTExfUEFUSF9TUSknICRAICQoR0lUX1RFU1RfT1BUUykKIAogcHJlLWNsZWFuOgotCSQoUk0pIC1yIHRlc3QtcmVzdWx0cworCSQoUk0pIC1yICckKFRFU1RfUkVTVUxUU19ESVJFQ1RPUllfU1EpJwogCiBjbGVhbi1leGNlcHQtcHJvdmUtY2FjaGU6Ci0JJChSTSkgLXIgJ3RyYXNoIGRpcmVjdG9yeScuKiB0ZXN0LXJlc3VsdHMKKwkkKFJNKSAtciAndHJhc2ggZGlyZWN0b3J5Jy4qICckKFRFU1RfUkVTVUxUU19ESVJFQ1RPUllfU1EpJwogCSQoUk0pIC1yIHZhbGdyaW5kL2JpbgogCiBjbGVhbjogY2xlYW4tZXhjZXB0LXByb3ZlLWNhY2hlCkBAIC02NSw3ICs3Miw3IEBACiAJJChNQUtFKSBjbGVhbgogCiBhZ2dyZWdhdGUtcmVzdWx0czoKLQlmb3IgZiBpbiB0ZXN0LXJlc3VsdHMvdCotKi5jb3VudHM7IGRvIFwKKwlmb3IgZiBpbiAnJChURVNUX1JFU1VMVFNfRElSRUNUT1JZX1NRKScvdCotKi5jb3VudHM7IGRvIFwKIAkJZWNobyAiJCRmIjsgXAogCWRvbmUgfCAnJChTSEVMTF9QQVRIX1NRKScgLi9hZ2dyZWdhdGUtcmVzdWx0cy5zaAogCmRpZmYgLS1naXQgYS90L1JFQURNRSBiL3QvUkVBRE1FCmluZGV4IGU2NjliYjMuLjIxNjcxMjUgMTAwNjQ0Ci0tLSBhL3QvUkVBRE1FCisrKyBiL3QvUkVBRE1FCkBAIC03Niw2ICs3NiwxMSBAQAogCWNvbW1hbmQgYmVpbmcgcnVuIGFuZCB0aGVpciBvdXRwdXQgaWYgYW55IGFyZSBhbHNvCiAJb3V0cHV0LgogCistLXZlcmJvc2Utb25seT08cGF0dGVybj46OgorCUxpa2UgLS12ZXJib3NlLCBidXQgdGhlIGVmZmVjdCBpcyBsaW1pdGVkIHRvIHRlc3RzIHdpdGgKKwludW1iZXJzIG1hdGNoaW5nIDxwYXR0ZXJuPi4gIFRoZSBudW1iZXIgbWF0Y2hlZCBhZ2FpbnN0IGlzCisJc2ltcGx5IHRoZSBydW5uaW5nIGNvdW50IG9mIHRoZSB0ZXN0IHdpdGhpbiB0aGUgZmlsZS4KKwogLS1kZWJ1Zzo6CiAJVGhpcyBtYXkgaGVscCB0aGUgcGVyc29uIHdobyBpcyBkZXZlbG9waW5nIGEgbmV3IHRlc3QuCiAJSXQgY2F1c2VzIHRoZSBjb21tYW5kIGRlZmluZWQgd2l0aCB0ZXN0X2RlYnVnIHRvIHJ1bi4KQEAgLTEyMSw2ICsxMjYsMTEgQEAKIAl0aGUgJ3QvdmFsZ3JpbmQvJyBkaXJlY3RvcnkgYW5kIHVzZSB0aGUgY29tbWFuZHMgdW5kZXIKIAkndC92YWxncmluZC9iaW4vJy4KIAorLS12YWxncmluZC1vbmx5PTxwYXR0ZXJuPjo6CisJTGlrZSAtLXZhbGdyaW5kLCBidXQgdGhlIGVmZmVjdCBpcyBsaW1pdGVkIHRvIHRlc3RzIHdpdGgKKwludW1iZXJzIG1hdGNoaW5nIDxwYXR0ZXJuPi4gIFRoZSBudW1iZXIgbWF0Y2hlZCBhZ2FpbnN0IGlzCisJc2ltcGx5IHRoZSBydW5uaW5nIGNvdW50IG9mIHRoZSB0ZXN0IHdpdGhpbiB0aGUgZmlsZS4KKwogLS10ZWU6OgogCUluIGFkZGl0aW9uIHRvIHByaW50aW5nIHRoZSB0ZXN0IG91dHB1dCB0byB0aGUgdGVybWluYWwsCiAJd3JpdGUgaXQgdG8gZmlsZXMgbmFtZWQgJ3QvdGVzdC1yZXN1bHRzLyRURVNUX05BTUUub3V0Jy4KQEAgLTMyNCw2ICszMzQsOSBAQAogICAgdXNlICd0ZXN0X211c3RfZmFpbCBnaXQgY21kJy4gIFRoaXMgd2lsbCBzaWduYWwgYSBmYWlsdXJlIGlmIGdpdAogICAgZGllcyBpbiBhbiB1bmV4cGVjdGVkIHdheSAoZS5nLiBzZWdmYXVsdCkuCiAKKyAgIE9uIHRoZSBvdGhlciBoYW5kLCBkb24ndCB1c2UgdGVzdF9tdXN0X2ZhaWwgZm9yIHJ1bm5pbmcgcmVndWxhcgorICAgcGxhdGZvcm0gY29tbWFuZHM7IGp1c3QgdXNlICchIGNtZCcuCisKICAtIHVzZSBwZXJsIHdpdGhvdXQgc3BlbGxpbmcgaXQgYXMgIiRQRVJMX1BBVEgiLiBUaGlzIGlzIHRvIGhlbHAgb3VyCiAgICBmcmllbmRzIG9uIFdpbmRvd3Mgd2hlcmUgdGhlIHBsYXRmb3JtIFBlcmwgb2Z0ZW4gYWRkcyBDUiBiZWZvcmUKICAgIHRoZSBlbmQgb2YgbGluZSwgYW5kIHRoZXkgYnVuZGxlIEdpdCB3aXRoIGEgdmVyc2lvbiBvZiBQZXJsIHRoYXQKQEAgLTU5Miw2ICs2MDUsMjAgQEAKIAkJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAJJwogCisgLSB0ZXN0X2xuX3NfYWRkIDxwYXRoMT4gPHBhdGgyPgorCisgICBUaGlzIGZ1bmN0aW9uIGhlbHBzIHN5c3RlbXMgd2hvc2UgZmlsZXN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0IHN5bWJvbGljCisgICBsaW5rcy4gVXNlIGl0IHRvIGFkZCBhIHN5bWJvbGljIGxpbmsgZW50cnkgdG8gdGhlIGluZGV4IHdoZW4gaXQgaXMgbm90CisgICBpbXBvcnRhbnQgdGhhdCB0aGUgZmlsZSBzeXN0ZW0gZW50cnkgaXMgYSBzeW1ib2xpYyBsaW5rLCBpLmUuLCBpbnN0ZWFkCisgICBvZiB0aGUgc2VxdWVuY2UKKworCWxuIC1zIGZvbyBiYXIgJiYKKwlnaXQgYWRkIGJhcgorCisgICBTb21ldGltZXMgaXQgaXMgcG9zc2libGUgdG8gc3BsaXQgYSB0ZXN0IGluIGEgcGFydCB0aGF0IGRvZXMgbm90IG5lZWQKKyAgIHRoZSBzeW1ib2xpYyBsaW5rIGluIHRoZSBmaWxlIHN5c3RlbSBhbmQgYSBwYXJ0IHRoYXQgZG9lczsgdGhlbiBvbmx5CisgICB0aGUgbGF0dGVyIHBhcnQgbmVlZCBiZSBwcm90ZWN0ZWQgYnkgYSBTWU1MSU5LUyBwcmVyZXF1aXNpdGUgKHNlZSBiZWxvdykuCisKIFByZXJlcXVpc2l0ZXMKIC0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvdC9hbm5vdGF0ZS10ZXN0cy5zaCBiL3QvYW5ub3RhdGUtdGVzdHMuc2gKaW5kZXggYzU2YTc3ZC4uZDRlN2Y0NyAxMDA2NDQKLS0tIGEvdC9hbm5vdGF0ZS10ZXN0cy5zaAorKysgYi90L2Fubm90YXRlLXRlc3RzLnNoCkBAIC0yLDExICsyLDIxIEBACiAjIHNvdXJjZWQgZnJvbSB0ODAwMS1hbm5vdGF0ZS5zaCBhbmQgdDgwMDItYmxhbWUuc2guCiAKIGNoZWNrX2NvdW50ICgpIHsKLQloZWFkPQotCWNhc2UgIiQxIiBpbiAtaCkgaGVhZD0iJDIiOyBzaGlmdDsgc2hpZnQgOzsgZXNhYwotCWVjaG8gIiRQUk9HIGZpbGUgJGhlYWQiID4mNAotCSRQUk9HIGZpbGUgJGhlYWQgPi5yZXN1bHQgfHwgcmV0dXJuIDEKLQljYXQgLnJlc3VsdCB8IHBlcmwgLWUgJworCWhlYWQ9ICYmCisJZmlsZT0nZmlsZScgJiYKKwlvcHRpb25zPSAmJgorCXdoaWxlIDoKKwlkbworCQljYXNlICIkMSIgaW4KKwkJLWgpIGhlYWQ9IiQyIjsgc2hpZnQ7IHNoaWZ0IDs7CisJCS1mKSBmaWxlPSIkMiI7IHNoaWZ0OyBzaGlmdCA7OworCQktKikgb3B0aW9ucz0iJG9wdGlvbnMgJDEiOyBzaGlmdCA7OworCQkqKSBicmVhayA7OworCQllc2FjCisJZG9uZSAmJgorCWVjaG8gIiRQUk9HICRvcHRpb25zICRmaWxlICRoZWFkIiA+JjQgJiYKKwkkUFJPRyAkb3B0aW9ucyAkZmlsZSAkaGVhZCA+YWN0dWFsICYmCisJcGVybCAtZSAnCiAJCW15ICVleHBlY3QgPSAoQEFSR1YpOwogCQlteSAlY291bnQgPSBtYXAgeyAkXyA9PiAwIH0ga2V5cyAlZXhwZWN0OwogCQl3aGlsZSAoPFNURElOPikgewpAQCAtMzEsMTA3ICs0MSwyNDYgQEAKIAkJCXByaW50IFNUREVSUiAiQXV0aG9yICRhdXRob3IgKGV4cGVjdGVkICR2YWx1ZSwgYXR0cmlidXRlZCAkY291bnQpICRva1xuIjsKIAkJfQogCQlleGl0KCRiYWQpOwotCScgIiRAIgorCScgIiRAIiA8YWN0dWFsCiB9CiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdwcmVwYXJlIHJlZmVyZW5jZSB0cmVlJyBcCi0gICAgJ2VjaG8gIjFBIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSIgPmZpbGUgJiYKLSAgICAgZWNobyAibGF6eSBkb2ciID4+ZmlsZSAmJgotICAgICBnaXQgYWRkIGZpbGUgJiYKLSAgICAgR0lUX0FVVEhPUl9OQU1FPSJBIiBHSVRfQVVUSE9SX0VNQUlMPSJBQHRlc3QuZ2l0IiBnaXQgY29tbWl0IC1hIC1tICJJbml0aWFsLiInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBBIGxpbmVzJyAnCisJZWNobyAiMUEgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIiA+ZmlsZSAmJgorCWVjaG8gImxhenkgZG9nIiA+PmZpbGUgJiYKKwlnaXQgYWRkIGZpbGUgJiYKKwlHSVRfQVVUSE9SX05BTUU9IkEiIEdJVF9BVVRIT1JfRU1BSUw9IkFAdGVzdC5naXQiIFwKKwlnaXQgY29tbWl0IC1hIC1tICJJbml0aWFsLiIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2NoZWNrIGFsbCBsaW5lcyBibGFtZWQgb24gQScgXAotICAgICdjaGVja19jb3VudCBBIDInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAxIGF1dGhvcicgJworCWNoZWNrX2NvdW50IEEgMgorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnU2V0dXAgbmV3IGxpbmVzIGJsYW1lZCBvbiBCJyBcCi0gICAgJ2VjaG8gIjJBIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSIgPj5maWxlICYmCi0gICAgIGVjaG8gImxhenkgZG9nIiA+PiBmaWxlICYmCi0gICAgIEdJVF9BVVRIT1JfTkFNRT0iQiIgR0lUX0FVVEhPUl9FTUFJTD0iQkB0ZXN0LmdpdCIgZ2l0IGNvbW1pdCAtYSAtbSAiU2Vjb25kLiInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBCIGxpbmVzJyAnCisJZWNobyAiMkEgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIiA+PmZpbGUgJiYKKwllY2hvICJsYXp5IGRvZyIgPj5maWxlICYmCisJR0lUX0FVVEhPUl9OQU1FPSJCIiBHSVRfQVVUSE9SX0VNQUlMPSJCQHRlc3QuZ2l0IiBcCisJZ2l0IGNvbW1pdCAtYSAtbSAiU2Vjb25kLiIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ1R3byBsaW5lcyBibGFtZWQgb24gQSwgdHdvIG9uIEInIFwKLSAgICAnY2hlY2tfY291bnQgQSAyIEIgMicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIDIgYXV0aG9ycycgJworCWNoZWNrX2NvdW50IEEgMiBCIDIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ21lcmdlLXNldHVwIHBhcnQgMScgXAotICAgICdnaXQgY2hlY2tvdXQgLWIgYnJhbmNoMSBtYXN0ZXIgJiYKLSAgICAgZWNobyAiM0Egc2xvdyBncmVlbiBmb3gganVtcHMgaW50byB0aGUiID4+IGZpbGUgJiYKLSAgICAgZWNobyAid2VsbC4iID4+IGZpbGUgJiYKLSAgICAgR0lUX0FVVEhPUl9OQU1FPSJCMSIgR0lUX0FVVEhPUl9FTUFJTD0iQjFAdGVzdC5naXQiIGdpdCBjb21taXQgLWEgLW0gIkJyYW5jaDEtMSInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBCMSBsaW5lcyAoYnJhbmNoMSknICcKKwlnaXQgY2hlY2tvdXQgLWIgYnJhbmNoMSBtYXN0ZXIgJiYKKwllY2hvICIzQSBzbG93IGdyZWVuIGZveCBqdW1wcyBpbnRvIHRoZSIgPj5maWxlICYmCisJZWNobyAid2VsbC4iID4+ZmlsZSAmJgorCUdJVF9BVVRIT1JfTkFNRT0iQjEiIEdJVF9BVVRIT1JfRU1BSUw9IkIxQHRlc3QuZ2l0IiBcCisJZ2l0IGNvbW1pdCAtYSAtbSAiQnJhbmNoMS0xIgorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnVHdvIGxpbmVzIGJsYW1lZCBvbiBBLCB0d28gb24gQiwgdHdvIG9uIEIxJyBcCi0gICAgJ2NoZWNrX2NvdW50IEEgMiBCIDIgQjEgMicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIDIgYXV0aG9ycyArIDEgYnJhbmNoMSBhdXRob3InICcKKwljaGVja19jb3VudCBBIDIgQiAyIEIxIDIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ21lcmdlLXNldHVwIHBhcnQgMicgXAotICAgICdnaXQgY2hlY2tvdXQgLWIgYnJhbmNoMiBtYXN0ZXIgJiYKLSAgICAgc2VkIC1lICJzLzJBIHF1aWNrIGJyb3duLzRBIHF1aWNrIGJyb3duIGxhenkgZG9nLyIgPCBmaWxlID4gZmlsZS5uZXcgJiYKLSAgICAgbXYgZmlsZS5uZXcgZmlsZSAmJgotICAgICBHSVRfQVVUSE9SX05BTUU9IkIyIiBHSVRfQVVUSE9SX0VNQUlMPSJCMkB0ZXN0LmdpdCIgZ2l0IGNvbW1pdCAtYSAtbSAiQnJhbmNoMi0xIicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIEIyIGxpbmVzIChicmFuY2gyKScgJworCWdpdCBjaGVja291dCAtYiBicmFuY2gyIG1hc3RlciAmJgorCXNlZCAtZSAicy8yQSBxdWljayBicm93bi80QSBxdWljayBicm93biBsYXp5IGRvZy8iIDxmaWxlID5maWxlLm5ldyAmJgorCW12IGZpbGUubmV3IGZpbGUgJiYKKwlHSVRfQVVUSE9SX05BTUU9IkIyIiBHSVRfQVVUSE9SX0VNQUlMPSJCMkB0ZXN0LmdpdCIgXAorCWdpdCBjb21taXQgLWEgLW0gIkJyYW5jaDItMSIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ1R3byBsaW5lcyBibGFtZWQgb24gQSwgb25lIG9uIEIsIG9uZSBvbiBCMicgXAotICAgICdjaGVja19jb3VudCBBIDIgQiAxIEIyIDEnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAyIGF1dGhvcnMgKyAxIGJyYW5jaDIgYXV0aG9yJyAnCisJY2hlY2tfY291bnQgQSAyIEIgMSBCMiAxCisnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdtZXJnZS1zZXR1cCBwYXJ0IDMnIFwKLSAgICAnZ2l0IHB1bGwgLiBicmFuY2gxJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbWVyZ2UgYnJhbmNoMSAmIGJyYW5jaDInICcKKwlnaXQgcHVsbCAuIGJyYW5jaDEKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ1R3byBsaW5lcyBibGFtZWQgb24gQSwgb25lIG9uIEIsIHR3byBvbiBCMSwgb25lIG9uIEIyJyBcCi0gICAgJ2NoZWNrX2NvdW50IEEgMiBCIDEgQjEgMiBCMiAxJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgMiBhdXRob3JzICsgMiBtZXJnZWQtaW4gYXV0aG9ycycgJworCWNoZWNrX2NvdW50IEEgMiBCIDEgQjEgMiBCMiAxCisnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdBbm5vdGF0aW5nIGFuIG9sZCByZXZpc2lvbiB3b3JrcycgXAotICAgICdjaGVja19jb3VudCAtaCBtYXN0ZXIgQSAyIEIgMicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIGFuY2VzdG9yJyAnCisJY2hlY2tfY291bnQgLWggbWFzdGVyIEEgMiBCIDIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ0Fubm90YXRpbmcgYW4gb2xkIHJldmlzaW9uIHdvcmtzJyBcCi0gICAgJ2NoZWNrX2NvdW50IC1oIG1hc3Rlcl4gQSAyJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgZ3JlYXQtYW5jZXN0b3InICcKKwljaGVja19jb3VudCAtaCBtYXN0ZXJeIEEgMgorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnbWVyZ2Utc2V0dXAgcGFydCA0JyBcCi0gICAgJ2VjaG8gImV2aWwgbWVyZ2UuIiA+PmZpbGUgJiYKLSAgICAgZ2l0IGNvbW1pdCAtYSAtLWFtZW5kJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgZXZpbCBtZXJnZScgJworCWVjaG8gImV2aWwgbWVyZ2UuIiA+PmZpbGUgJiYKKwlnaXQgY29tbWl0IC1hIC0tYW1lbmQKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ1R3byBsaW5lcyBibGFtZWQgb24gQSwgb25lIG9uIEIsIHR3byBvbiBCMSwgb25lIG9uIEIyLCBvbmUgb24gQSBVIFRob3InIFwKLSAgICAnY2hlY2tfY291bnQgQSAyIEIgMSBCMSAyIEIyIDEgIkEgVSBUaG9yIiAxJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgZXZpbCBtZXJnZScgJworCWNoZWNrX2NvdW50IEEgMiBCIDEgQjEgMiBCMiAxICJBIFUgVGhvciIgMQorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnYW4gaW5jb21wbGV0ZSBsaW5lIGFkZGVkJyBcCi0gICAgJ2VjaG8gImluY29tcGxldGUiIHwgdHIgLWQgIlxcMDEyIiA+PmZpbGUgJiYKLSAgICBHSVRfQVVUSE9SX05BTUU9IkMiIEdJVF9BVVRIT1JfRU1BSUw9IkNAdGVzdC5naXQiIGdpdCBjb21taXQgLWEgLW0gIkluY29tcGxldGUiJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgaW5jb21wbGV0ZSBsaW5lJyAnCisJZWNobyAiaW5jb21wbGV0ZSIgfCB0ciAtZCAiXFwwMTIiID4+ZmlsZSAmJgorCUdJVF9BVVRIT1JfTkFNRT0iQyIgR0lUX0FVVEhPUl9FTUFJTD0iQ0B0ZXN0LmdpdCIgXAorCWdpdCBjb21taXQgLWEgLW0gIkluY29tcGxldGUiCisnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdXaXRoIGluY29tcGxldGUgbGluZXMuJyBcCi0gICAgJ2NoZWNrX2NvdW50IEEgMiBCIDEgQjEgMiBCMiAxICJBIFUgVGhvciIgMSBDIDEnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSBpbmNvbXBsZXRlIGxpbmUnICcKKwljaGVja19jb3VudCBBIDIgQiAxIEIxIDIgQjIgMSAiQSBVIFRob3IiIDEgQyAxCisnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdzb21lIGVkaXQnIFwKLSAgICAnbXYgZmlsZSBmaWxlLm9yaWcgJiYKLSAgICB7Ci0JY2F0IGZpbGUub3JpZyAmJgotCWVjaG8KLSAgICB9IHwgc2VkIC1lICJzL14zQS85OS8iIC1lICIvXjFBL2QiIC1lICIvXmluY29tcGxldGUvZCIgPiBmaWxlICYmCi0gICAgZWNobyAiaW5jb21wbGV0ZSIgfCB0ciAtZCAiXFwwMTIiID4+ZmlsZSAmJgotICAgIEdJVF9BVVRIT1JfTkFNRT0iRCIgR0lUX0FVVEhPUl9FTUFJTD0iREB0ZXN0LmdpdCIgZ2l0IGNvbW1pdCAtYSAtbSAiZWRpdCInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBlZGl0cycgJworCW12IGZpbGUgZmlsZS5vcmlnICYmCisJeworCQljYXQgZmlsZS5vcmlnICYmCisJCWVjaG8KKwl9IHwgc2VkIC1lICJzL14zQS85OS8iIC1lICIvXjFBL2QiIC1lICIvXmluY29tcGxldGUvZCIgPmZpbGUgJiYKKwllY2hvICJpbmNvbXBsZXRlIiB8IHRyIC1kICJcXDAxMiIgPj5maWxlICYmCisJR0lUX0FVVEhPUl9OQU1FPSJEIiBHSVRfQVVUSE9SX0VNQUlMPSJEQHRlc3QuZ2l0IiBcCisJZ2l0IGNvbW1pdCAtYSAtbSAiZWRpdCIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ3NvbWUgZWRpdCcgXAotICAgICdjaGVja19jb3VudCBBIDEgQiAxIEIxIDEgQjIgMSAiQSBVIFRob3IiIDEgQyAxIEQgMScKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIGVkaXRzJyAnCisJY2hlY2tfY291bnQgQSAxIEIgMSBCMSAxIEIyIDEgIkEgVSBUaG9yIiAxIEMgMSBEIDEKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2FuIG9iZnVzY2F0ZWQgZW1haWwgYWRkZWQnIFwKLSAgICAnZWNobyAiTm8gcm9ib3RzIGFsbG93ZWQiID4gZmlsZS5uZXcgJiYKLSAgICAgY2F0IGZpbGUgPj4gZmlsZS5uZXcgJiYKLSAgICAgbXYgZmlsZS5uZXcgZmlsZSAmJgotICAgICBHSVRfQVVUSE9SX05BTUU9IkUiIEdJVF9BVVRIT1JfRU1BSUw9IkUgYXQgdGVzdCBkb3QgZ2l0IiBnaXQgY29tbWl0IC1hIC1tICJub3JvYm90cyInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvYmZ1c2NhdGVkIGVtYWlsJyAnCisJZWNobyAiTm8gcm9ib3RzIGFsbG93ZWQiID5maWxlLm5ldyAmJgorCWNhdCBmaWxlID4+ZmlsZS5uZXcgJiYKKwltdiBmaWxlLm5ldyBmaWxlICYmCisJR0lUX0FVVEhPUl9OQU1FPSJFIiBHSVRfQVVUSE9SX0VNQUlMPSJFIGF0IHRlc3QgZG90IGdpdCIgXAorCWdpdCBjb21taXQgLWEgLW0gIm5vcm9ib3RzIgorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnb2JmdXNjYXRlZCBlbWFpbCBwYXJzZWQnIFwKLSAgICAnY2hlY2tfY291bnQgQSAxIEIgMSBCMSAxIEIyIDEgIkEgVSBUaG9yIiAxIEMgMSBEIDEgRSAxJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgb2JmdXNjYXRlZCBlbWFpbCcgJworCWNoZWNrX2NvdW50IEEgMSBCIDEgQjEgMSBCMiAxICJBIFUgVGhvciIgMSBDIDEgRCAxIEUgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAxIChhbGwpJyAnCisJY2hlY2tfY291bnQgLUwxIEEgMSBCIDEgQjEgMSBCMiAxICJBIFUgVGhvciIgMSBDIDEgRCAxIEUgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAsIChhbGwpJyAnCisJY2hlY2tfY291bnQgLUwsIEEgMSBCIDEgQjEgMSBCMiAxICJBIFUgVGhvciIgMSBDIDEgRCAxIEUgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYIChYIHRvIGVuZCknICcKKwljaGVja19jb3VudCAtTDUgQjEgMSBDIDEgRCAxICJBIFUgVGhvciIgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYLCAoWCB0byBlbmQpJyAnCisJY2hlY2tfY291bnQgLUw1LCBCMSAxIEMgMSBEIDEgIkEgVSBUaG9yIiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MICxZICh1cCB0byBZKScgJworCWNoZWNrX2NvdW50IC1MLDMgQSAxIEIyIDEgRSAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsWCcgJworCWNoZWNrX2NvdW50IC1MMywzIEIyIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCxZJyAnCisJY2hlY2tfY291bnQgLUwzLDYgQiAxIEIxIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWSxYICh1bmRvY3VtZW50ZWQpJyAnCisJY2hlY2tfY291bnQgLUw2LDMgQiAxIEIxIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCwrMScgJworCWNoZWNrX2NvdW50IC1MMywrMSBCMiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsK04nICcKKwljaGVja19jb3VudCAtTDMsKzQgQiAxIEIxIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCwtMScgJworCWNoZWNrX2NvdW50IC1MMywtMSBCMiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsLU4nICcKKwljaGVja19jb3VudCAtTDYsLTQgQiAxIEIxIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgL1JFLyAoUkUgdG8gZW5kKScgJworCWNoZWNrX2NvdW50IC1ML2V2aWwvIEMgMSAiQSBVIFRob3IiIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgL1JFLywvUkUyLycgJworCWNoZWNrX2NvdW50IC1ML3JvYm90LywvZ3JlZW4vIEEgMSBCIDEgQjIgMSBEIDEgRSAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsL1JFLycgJworCWNoZWNrX2NvdW50IC1MNSwvZXZpbC8gQjEgMSBEIDEgIkEgVSBUaG9yIiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIC9SRS8sWScgJworCWNoZWNrX2NvdW50IC1MLzk5Lyw3IEIxIDEgRCAxICJBIFUgVGhvciIgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAvUkUvLCtOJyAnCisJY2hlY2tfY291bnQgLUwvOTkvLCszIEIxIDEgRCAxICJBIFUgVGhvciIgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAvUkUvLC1OJyAnCisJY2hlY2tfY291bnQgLUwvOTkvLC0zIEIgMSBCMiAxIEQgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYIChYID4gbmxpbmVzKScgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMTIzNDUgZmlsZQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAsWSAoWSA+IG5saW5lcyknICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTCwxMjM0NSBmaWxlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIC1MIDpyZWdleCcgJworCXRyIFEgIlxcdCIgPmhlbGxvLmMgPDwtXEVPRiAmJgorCWludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCisJeworCVFwdXRzKCJoZWxsbyIpOworCX0KKwlFT0YKKwlnaXQgYWRkIGhlbGxvLmMgJiYKKwlHSVRfQVVUSE9SX05BTUU9IkYiIEdJVF9BVVRIT1JfRU1BSUw9IkZAdGVzdC5naXQiIFwKKwlnaXQgY29tbWl0IC1tICJoZWxsbyIgJiYKKworCW12IGhlbGxvLmMgaGVsbG8ub3JpZyAmJgorCXNlZCAtZSAiL30vIHt4OyBzLyQvUXB1dHMoXCJnb29kYnllXCIpOy87IEc7fSIgPGhlbGxvLm9yaWcgfAorCXRyIFEgIlxcdCIgPmhlbGxvLmMgJiYKKwlHSVRfQVVUSE9SX05BTUU9IkciIEdJVF9BVVRIT1JfRU1BSUw9IkdAdGVzdC5naXQiIFwKKwlnaXQgY29tbWl0IC1hIC1tICJnb29kYnllIiAmJgorCisJbXYgaGVsbG8uYyBoZWxsby5vcmlnICYmCisJZWNobyAiI2luY2x1ZGUgPHN0ZGlvLmg+IiA+aGVsbG8uYyAmJgorCWNhdCBoZWxsby5vcmlnID4+aGVsbG8uYyAmJgorCXRyIFEgIlxcdCIgPj5oZWxsby5jIDw8LVxFT0YKKwl2b2lkIG1haWwoKQorCXsKKwlRcHV0cygibWFpbCIpOworCX0KKwlFT0YKKwlHSVRfQVVUSE9SX05BTUU9IkgiIEdJVF9BVVRIT1JfRU1BSUw9IkhAdGVzdC5naXQiIFwKKwlnaXQgY29tbWl0IC1hIC1tICJtYWlsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCA6bGl0ZXJhbCcgJworCWNoZWNrX2NvdW50IC1mIGhlbGxvLmMgLUw6bWFpbiBGIDQgRyAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDpyZWdleCcgJworCWNoZWNrX2NvdW50IC1mIGhlbGxvLmMgIi1MOm1bYS16XVthLXpdbCIgSCA0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDpub21hdGNoJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUw6bm9tYXRjaCBoZWxsby5jCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIGJvZ3VzJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwgZmlsZSAmJgorCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMSwrIGZpbGUgJiYKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsLSBmaWxlICYmCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUxYIGZpbGUgJiYKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsWCBmaWxlICYmCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwxLCtOIGZpbGUgJiYKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsLU4gZmlsZQorJwpkaWZmIC0tZ2l0IGEvdC9jaGVjay1ub24tcG9ydGFibGUtc2hlbGwucGwgYi90L2NoZWNrLW5vbi1wb3J0YWJsZS1zaGVsbC5wbAppbmRleCA4YjVhNzFkLi40NTk3MWY0IDEwMDc1NQotLS0gYS90L2NoZWNrLW5vbi1wb3J0YWJsZS1zaGVsbC5wbAorKysgYi90L2NoZWNrLW5vbi1wb3J0YWJsZS1zaGVsbC5wbApAQCAtMjEsNiArMjEsNyBAQAogCS9eXHMqZGVjbGFyZVxzKy8gYW5kIGVyciAnYXJyYXlzL2RlY2xhcmUgbm90IHBvcnRhYmxlJzsKIAkvXlxzKlteI11ccyp3aGljaFxzLyBhbmQgZXJyICd3aGljaCBpcyBub3QgcG9ydGFibGUgKHBsZWFzZSB1c2UgdHlwZSknOwogCS90ZXN0XHMrW149XSo9PS8gYW5kIGVyciAnInRlc3QgYSA9PSBiIiBpcyBub3QgcG9ydGFibGUgKHBsZWFzZSB1c2UgPSknOworCS9eXHMqZXhwb3J0XHMrW149XSo9LyBhbmQgZXJyICciZXhwb3J0IEZPTz1iYXIiIGlzIG5vdCBwb3J0YWJsZSAocGxlYXNlIHVzZSBGT089YmFyICYmIGV4cG9ydCBGT08pJzsKIAkjIHRoaXMgcmVzZXRzIG91ciAkLiBmb3IgZWFjaCBmaWxlCiAJY2xvc2UgQVJHViBpZiBlb2Y7CiB9CmRpZmYgLS1naXQgYS90L2dpdHdlYi1saWIuc2ggYi90L2dpdHdlYi1saWIuc2gKaW5kZXggYWUyZGM0Ni4uOWUzODFlMCAxMDA2NDQKLS0tIGEvdC9naXR3ZWItbGliLnNoCisrKyBiL3QvZ2l0d2ViLWxpYi5zaApAQCAtMzYsNyArMzYsNyBAQAogCiAJIyBZb3UgY2FuIHNldCB0aGUgR0lUV0VCX1RFU1RfSU5TVEFMTEVEIGVudmlyb25tZW50IHZhcmlhYmxlIHRvCiAJIyB0aGUgZ2l0d2ViZGlyICh0aGUgZGlyZWN0b3J5IHdoZXJlIGdpdHdlYiBpcyBpbnN0YWxsZWQgLyBkZXBsb3llZCB0bykKLQkjIG9mIGFuIGV4aXN0aW5nIGdpdHdlYiBpbnN0YWxhdGlvbiB0byB0ZXN0IHRoYXQgaW5zdGFsbGF0aW9uLAorCSMgb2YgYW4gZXhpc3RpbmcgZ2l0d2ViIGluc3RhbGxhdGlvbiB0byB0ZXN0IHRoYXQgaW5zdGFsbGF0aW9uLAogCSMgb3Igc2ltcGx5IHRvIHBhdGhuYW1lIG9mIGluc3RhbGxlZCBnaXR3ZWIgc2NyaXB0LgogCWlmIHRlc3QgLW4gIiRHSVRXRUJfVEVTVF9JTlNUQUxMRUQiIDsgdGhlbgogCQlpZiB0ZXN0IC1kICRHSVRXRUJfVEVTVF9JTlNUQUxMRUQ7IHRoZW4KZGlmZiAtLWdpdCBhL3QvbGliLWh0dHBkL2FwYWNoZS5jb25mIGIvdC9saWItaHR0cGQvYXBhY2hlLmNvbmYKaW5kZXggYjViY2U0NS4uZGQxN2UzYSAxMDA2NDQKLS0tIGEvdC9saWItaHR0cGQvYXBhY2hlLmNvbmYKKysrIGIvdC9saWItaHR0cGQvYXBhY2hlLmNvbmYKQEAgLTEsNSArMSw0IEBACiBTZXJ2ZXJOYW1lIGR1bW15Ci1Mb2NrRmlsZSBhY2NlcHQubG9jawogUGlkRmlsZSBodHRwZC5waWQKIERvY3VtZW50Um9vdCB3d3cKIExvZ0Zvcm1hdCAiJWggJWwgJXUgJXQgXCIlclwiICU+cyAlYiIgY29tbW9uCkBAIC0yNCw2ICsyMywxMCBAQAogCUxvYWRNb2R1bGUgdmVyc2lvbl9tb2R1bGUgbW9kdWxlcy9tb2RfdmVyc2lvbi5zbwogPC9JZk1vZHVsZT4KIAorPElmVmVyc2lvbiA8IDIuND4KK0xvY2tGaWxlIGFjY2VwdC5sb2NrCis8L0lmVmVyc2lvbj4KKwogPElmVmVyc2lvbiA8IDIuMT4KIDxJZk1vZHVsZSAhbW9kX2F1dGguYz4KIAlMb2FkTW9kdWxlIGF1dGhfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGguc28KQEAgLTQ1LDYgKzQ4LDIxIEBACiA8L0lmTW9kdWxlPgogPC9JZlZlcnNpb24+CiAKKzxJZlZlcnNpb24gPj0gMi40PgorPElmTW9kdWxlICFtb2RfYXV0aG5fY29yZS5jPgorCUxvYWRNb2R1bGUgYXV0aG5fY29yZV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fY29yZS5zbworPC9JZk1vZHVsZT4KKzxJZk1vZHVsZSAhbW9kX2F1dGh6X2NvcmUuYz4KKwlMb2FkTW9kdWxlIGF1dGh6X2NvcmVfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGh6X2NvcmUuc28KKzwvSWZNb2R1bGU+Cis8SWZNb2R1bGUgIW1vZF9hY2Nlc3NfY29tcGF0LmM+CisJTG9hZE1vZHVsZSBhY2Nlc3NfY29tcGF0X21vZHVsZSBtb2R1bGVzL21vZF9hY2Nlc3NfY29tcGF0LnNvCis8L0lmTW9kdWxlPgorPElmTW9kdWxlICFtb2RfbXBtX3ByZWZvcmsuYz4KKwlMb2FkTW9kdWxlIG1wbV9wcmVmb3JrX21vZHVsZSBtb2R1bGVzL21vZF9tcG1fcHJlZm9yay5zbworPC9JZk1vZHVsZT4KKzwvSWZWZXJzaW9uPgorCiBQYXNzRW52IEdJVF9WQUxHUklORAogUGFzc0VudiBHSVRfVkFMR1JJTkRfT1BUSU9OUwogCmRpZmYgLS1naXQgYS90L2xpYi1yZWJhc2Uuc2ggYi90L2xpYi1yZWJhc2Uuc2gKaW5kZXggNmNjZjc5Ny4uOGZmODdmYiAxMDA2NDQKLS0tIGEvdC9saWItcmViYXNlLnNoCisrKyBiL3QvbGliLXJlYmFzZS5zaApAQCAtMTcsNTEgKzE3LDk4IEBACiAjICAgICAgICgic3F1YXNoIiwgImZpeHVwIiwgImVkaXQiLCBvciAicmV3b3JkIikgYW5kIHRoZSBTSEExIHRha2VuCiAjICAgICAgIGZyb20gdGhlIHNwZWNpZmllZCBsaW5lLgogIworIyAgICJleGVjX2NtZF93aXRoX2FyZ3MiIC0tIGFkZCBhbiAiZXhlYyBjbWQgd2l0aCBhcmdzIiBsaW5lLgorIwogIyAgICIjIiAtLSBBZGQgYSBjb21tZW50IGxpbmUuCiAjCiAjICAgIj4iIC0tIEFkZCBhIGJsYW5rIGxpbmUuCiAKIHNldF9mYWtlX2VkaXRvciAoKSB7Ci0JZWNobyAiIyEkU0hFTExfUEFUSCIgPmZha2UtZWRpdG9yLnNoCi0JY2F0ID4+IGZha2UtZWRpdG9yLnNoIDw8XEVPRgotY2FzZSAiJDEiIGluCi0qL0NPTU1JVF9FRElUTVNHKQotCXRlc3QgLXogIiRFWFBFQ1RfSEVBREVSX0NPVU5UIiB8fAotCQl0ZXN0ICIkRVhQRUNUX0hFQURFUl9DT1VOVCIgPSAiJChzZWQgLW4gJzFzL14jIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiBcKC4qXCkgY29tbWl0c1wuL1wxL3AnIDwgIiQxIikiIHx8CisJd3JpdGVfc2NyaXB0IGZha2UtZWRpdG9yLnNoIDw8LVxFT0YKKwljYXNlICIkMSIgaW4KKwkqL0NPTU1JVF9FRElUTVNHKQorCQl0ZXN0IC16ICIkRVhQRUNUX0hFQURFUl9DT1VOVCIgfHwKKwkJCXRlc3QgIiRFWFBFQ1RfSEVBREVSX0NPVU5UIiA9ICIkKHNlZCAtbiAnMXMvXiMgVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIFwoLipcKSBjb21taXRzXC4vXDEvcCcgPCAiJDEiKSIgfHwKKwkJCWV4aXQKKwkJdGVzdCAteiAiJEZBS0VfQ09NTUlUX01FU1NBR0UiIHx8IGVjaG8gIiRGQUtFX0NPTU1JVF9NRVNTQUdFIiA+ICIkMSIKKwkJdGVzdCAteiAiJEZBS0VfQ09NTUlUX0FNRU5EIiB8fCBlY2hvICIkRkFLRV9DT01NSVRfQU1FTkQiID4+ICIkMSIKIAkJZXhpdAotCXRlc3QgLXogIiRGQUtFX0NPTU1JVF9NRVNTQUdFIiB8fCBlY2hvICIkRkFLRV9DT01NSVRfTUVTU0FHRSIgPiAiJDEiCi0JdGVzdCAteiAiJEZBS0VfQ09NTUlUX0FNRU5EIiB8fCBlY2hvICIkRkFLRV9DT01NSVRfQU1FTkQiID4+ICIkMSIKLQlleGl0Ci0JOzsKLWVzYWMKLXRlc3QgLXogIiRFWFBFQ1RfQ09VTlQiIHx8Ci0JdGVzdCAiJEVYUEVDVF9DT1VOVCIgPSAkKHNlZCAtZSAnL14jL2QnIC1lICcvXiQvZCcgPCAiJDEiIHwgd2MgLWwpIHx8Ci0JZXhpdAotdGVzdCAteiAiJEZBS0VfTElORVMiICYmIGV4aXQKLWdyZXAgLXYgJ14jJyA8ICIkMSIgPiAiJDEiLnRtcAotcm0gLWYgIiQxIgotZWNobyAncmViYXNlIC1pIHNjcmlwdCBiZWZvcmUgZWRpdGluZzonCi1jYXQgIiQxIi50bXAKLWFjdGlvbj1waWNrCi1mb3IgbGluZSBpbiAkRkFLRV9MSU5FUzsgZG8KLQljYXNlICRsaW5lIGluCi0Jc3F1YXNofGZpeHVwfGVkaXR8cmV3b3JkKQotCQlhY3Rpb249IiRsaW5lIjs7Ci0JZXhlYyopCi0JCWVjaG8gIiRsaW5lIiB8IHNlZCAncy9fLyAvZycgPj4gIiQxIjs7Ci0JIiMiKQotCQllY2hvICcjIGNvbW1lbnQnID4+ICIkMSI7OwotCSI+IikKLQkJZWNobyA+PiAiJDEiOzsKLQkqKQotCQlzZWQgLW4gIiR7bGluZX1zL15waWNrLyRhY3Rpb24vcCIgPCAiJDEiLnRtcCA+PiAiJDEiCi0JCWFjdGlvbj1waWNrOzsKKwkJOzsKIAllc2FjCi1kb25lCi1lY2hvICdyZWJhc2UgLWkgc2NyaXB0IGFmdGVyIGVkaXRpbmc6JwotY2F0ICIkMSIKLUVPRgorCXRlc3QgLXogIiRFWFBFQ1RfQ09VTlQiIHx8CisJCXRlc3QgIiRFWFBFQ1RfQ09VTlQiID0gJChzZWQgLWUgJy9eIy9kJyAtZSAnL14kL2QnIDwgIiQxIiB8IHdjIC1sKSB8fAorCQlleGl0CisJdGVzdCAteiAiJEZBS0VfTElORVMiICYmIGV4aXQKKwlncmVwIC12ICdeIycgPCAiJDEiID4gIiQxIi50bXAKKwlybSAtZiAiJDEiCisJZWNobyAncmViYXNlIC1pIHNjcmlwdCBiZWZvcmUgZWRpdGluZzonCisJY2F0ICIkMSIudG1wCisJYWN0aW9uPXBpY2sKKwlmb3IgbGluZSBpbiAkRkFLRV9MSU5FUzsgZG8KKwkJY2FzZSAkbGluZSBpbgorCQlzcXVhc2h8Zml4dXB8ZWRpdHxyZXdvcmQpCisJCQlhY3Rpb249IiRsaW5lIjs7CisJCWV4ZWMqKQorCQkJZWNobyAiJGxpbmUiIHwgc2VkICdzL18vIC9nJyA+PiAiJDEiOzsKKwkJIiMiKQorCQkJZWNobyAnIyBjb21tZW50JyA+PiAiJDEiOzsKKwkJIj4iKQorCQkJZWNobyA+PiAiJDEiOzsKKwkJKikKKwkJCXNlZCAtbiAiJHtsaW5lfXMvXnBpY2svJGFjdGlvbi9wIiA8ICIkMSIudG1wID4+ICIkMSIKKwkJCWFjdGlvbj1waWNrOzsKKwkJZXNhYworCWRvbmUKKwllY2hvICdyZWJhc2UgLWkgc2NyaXB0IGFmdGVyIGVkaXRpbmc6JworCWNhdCAiJDEiCisJRU9GCiAKIAl0ZXN0X3NldF9lZGl0b3IgIiQocHdkKS9mYWtlLWVkaXRvci5zaCIKLQljaG1vZCBhK3ggZmFrZS1lZGl0b3Iuc2gKK30KKworIyBBZnRlciBzZXRfY2F0X3RvZG9fZWRpdG9yLCByZWJhc2UgLWkgd2lsbCB3cml0ZSB0aGUgdG9kbyBsaXN0IChpZ25vcmluZworIyBibGFuayBsaW5lcyBhbmQgY29tbWVudHMpIHRvIHN0ZG91dCwgYW5kIGV4aXQgZmFpbHVyZSAoc28geW91IHNob3VsZCBydW4KKyMgaXQgd2l0aCB0ZXN0X211c3RfZmFpbCkuICBUaGlzIGNhbiBiZSB1c2VkIHRvIHZlcmlmeSB0aGUgZXhwZWN0ZWQgdXNlcgorIyBleHBlcmllbmNlLCBmb3IgdG9kbyBsaXN0IGNoYW5nZXMgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBvdXRjb21lIG9mCisjIHJlYmFzZTsgb3IgYXMgYW4gZXh0cmEgY2hlY2sgaW4gYWRkaXRpb24gdG8gY2hlY2tpbmcgdGhlIG91dGNvbWUuCisKK3NldF9jYXRfdG9kb19lZGl0b3IgKCkgeworCXdyaXRlX3NjcmlwdCBmYWtlLWVkaXRvci5zaCA8PC1cRU9GCisJZ3JlcCAiXlteI10iICIkMSIKKwlleGl0IDEKKwlFT0YKKwl0ZXN0X3NldF9lZGl0b3IgIiQocHdkKS9mYWtlLWVkaXRvci5zaCIKK30KKworIyBjaGVja3MgdGhhdCB0aGUgcmV2aXNpb25zIGluICIkMiIgcmVwcmVzZW50IGEgbGluZWFyIHJhbmdlIHdpdGggdGhlCisjIHN1YmplY3RzIGluICIkMSIKK3Rlc3RfbGluZWFyX3JhbmdlICgpIHsKKwlyZXZsaXN0X21lcmdlcz0kKGdpdCByZXYtbGlzdCAtLW1lcmdlcyAiJDIiKSAmJgorCXRlc3QgLXogIiRyZXZsaXN0X21lcmdlcyIgJiYKKwlleHBlY3RlZD0kMQorCXNldCAtLSAkKGdpdCBsb2cgLS1yZXZlcnNlIC0tZm9ybWF0PSVzICIkMiIpCisJdGVzdCAiJGV4cGVjdGVkIiA9ICIkKiIKK30KKworcmVzZXRfcmViYXNlICgpIHsKKwl0ZXN0X21pZ2h0X2ZhaWwgZ2l0IHJlYmFzZSAtLWFib3J0ICYmCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBjbGVhbiAtZgorfQorCitjaGVycnlfcGljayAoKSB7CisJZ2l0IGNoZXJyeS1waWNrIC1uICIkMiIgJiYKKwlnaXQgY29tbWl0IC1tICIkMSIgJiYKKwlnaXQgdGFnICIkMSIKK30KKworcmV2ZXJ0ICgpIHsKKwlnaXQgcmV2ZXJ0IC1uICIkMiIgJiYKKwlnaXQgY29tbWl0IC1tICIkMSIgJiYKKwlnaXQgdGFnICIkMSIKK30KKworbWFrZV9lbXB0eSAoKSB7CisJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tICIkMSIgJiYKKwlnaXQgdGFnICIkMSIKIH0KZGlmZiAtLWdpdCBhL3QvbGliLXQ2MDAwLnNoIGIvdC9saWItdDYwMDAuc2gKaW5kZXggZWEyNWRkOC4uM2YyZDg3MyAxMDA2NDQKLS0tIGEvdC9saWItdDYwMDAuc2gKKysrIGIvdC9saWItdDYwMDAuc2gKQEAgLTEsNTUgKzEsNTAgQEAKIDogaW5jbHVkZWQgZnJvbSA2MDAyIGFuZCBvdGhlcnMKIAotWyAtZCAuZ2l0L3JlZnMvdGFncyBdIHx8IG1rZGlyIC1wIC5naXQvcmVmcy90YWdzCitta2RpciAtcCAuZ2l0L3JlZnMvdGFncwogCi06PiBzZWQuc2NyaXB0Cis+c2VkLnNjcmlwdAogCi0jIEFuc3dlciB0aGUgc2hhMSBoYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWcuIFRoZSB0YWcgbXVzdCBleGlzdCBpbiAuZ2l0IG9yIC5naXQvcmVmcy90YWdzCi10YWcoKQoteworIyBBbnN3ZXIgdGhlIHNoYTEgaGFzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnLiBUaGUgdGFnIG11c3QgZXhpc3QgaW4gLmdpdC9yZWZzL3RhZ3MKK3RhZyAoKSB7CiAJX3RhZz0kMQotCVsgLWYgLmdpdC9yZWZzL3RhZ3MvJF90YWcgXSB8fCBlcnJvciAidGFnOiBcIiRfdGFnXCIgZG9lcyBub3QgZXhpc3QiCi0JY2F0IC5naXQvcmVmcy90YWdzLyRfdGFnCisJdGVzdCAtZiAiLmdpdC9yZWZzL3RhZ3MvJF90YWciIHx8IGVycm9yICJ0YWc6IFwiJF90YWdcIiBkb2VzIG5vdCBleGlzdCIKKwljYXQgIi5naXQvcmVmcy90YWdzLyRfdGFnIgogfQogCiAjIEdlbmVyYXRlIGEgY29tbWl0IHVzaW5nIHRoZSB0ZXh0IHNwZWNpZmllZCB0byBtYWtlIGl0IHVuaXF1ZSBhbmQgdGhlIHRyZWUKICMgbmFtZWQgYnkgdGhlIHRhZyBzcGVjaWZpZWQuCi11bmlxdWVfY29tbWl0KCkKLXsKK3VuaXF1ZV9jb21taXQgKCkgewogCV90ZXh0PSQxCi0gICAgICAgIF90cmVlPSQyCisJX3RyZWU9JDIKIAlzaGlmdCAyCi0JZWNobyAkX3RleHQgfCBnaXQgY29tbWl0LXRyZWUgJCh0YWcgJF90cmVlKSAiJEAiCisJZWNobyAiJF90ZXh0IiB8IGdpdCBjb21taXQtdHJlZSAkKHRhZyAiJF90cmVlIikgIiRAIgogfQogCiAjIFNhdmUgdGhlIG91dHB1dCBvZiBhIGNvbW1hbmQgaW50byB0aGUgdGFnIHNwZWNpZmllZC4gUHJlcGVuZAogIyBhIHN1YnN0aXR1dGlvbiBzY3JpcHQgZm9yIHRoZSB0YWcgb250byB0aGUgZnJvbnQgb2Ygc2VkLnNjcmlwdAotc2F2ZV90YWcoKQoteworc2F2ZV90YWcgKCkgewogCV90YWc9JDEKLQlbIC1uICIkX3RhZyIgXSB8fCBlcnJvciAidXNhZ2U6IHNhdmVfdGFnIHRhZyBjb21taXQtYXJncyAuLi4iCisJdGVzdCAtbiAiJF90YWciIHx8IGVycm9yICJ1c2FnZTogc2F2ZV90YWcgdGFnIGNvbW1pdC1hcmdzIC4uLiIKIAlzaGlmdCAxCi0JIiRAIiA+LmdpdC9yZWZzL3RhZ3MvJF90YWcKKwkiJEAiID4iLmdpdC9yZWZzL3RhZ3MvJF90YWciCiAKLSAgICAgICAgZWNobyAicy8kKHRhZyAkX3RhZykvJF90YWcvZyIgPiBzZWQuc2NyaXB0LnRtcAotCWNhdCBzZWQuc2NyaXB0ID4+IHNlZC5zY3JpcHQudG1wCisJZWNobyAicy8kKHRhZyAkX3RhZykvJF90YWcvZyIgPnNlZC5zY3JpcHQudG1wCisJY2F0IHNlZC5zY3JpcHQgPj5zZWQuc2NyaXB0LnRtcAogCXJtIHNlZC5zY3JpcHQKIAltdiBzZWQuc2NyaXB0LnRtcCBzZWQuc2NyaXB0CiB9CiAKLSMgUmVwbGFjZSB1bmhlbHBmdWwgc2hhMSBoYXNoc2VzIHdpdGggdGhlaXIgc3ltYm9saWMgZXF1aXZhbGVudHMKLWVudGFnKCkKLXsKKyMgUmVwbGFjZSB1bmhlbHBmdWwgc2hhMSBoYXNoZXMgd2l0aCB0aGVpciBzeW1ib2xpYyBlcXVpdmFsZW50cworZW50YWcgKCkgewogCXNlZCAtZiBzZWQuc2NyaXB0CiB9CiAKICMgRXhlY3V0ZSBhIGNvbW1hbmQgYWZ0ZXIgZmlyc3Qgc2F2aW5nLCB0aGVuIHNldHRpbmcgdGhlIEdJVF9BVVRIT1JfRU1BSUwKICMgdGFnIHRvIGEgc3BlY2lmaWVkIHZhbHVlLiBSZXN0b3JlIHRoZSBvcmlnaW5hbCB2YWx1ZSBvbiByZXR1cm4uCi1hc19hdXRob3IoKQoteworYXNfYXV0aG9yICgpIHsKIAlfYXV0aG9yPSQxCiAJc2hpZnQgMQotICAgICAgICBfc2F2ZT0kR0lUX0FVVEhPUl9FTUFJTAorCV9zYXZlPSRHSVRfQVVUSE9SX0VNQUlMCiAKIAlHSVRfQVVUSE9SX0VNQUlMPSIkX2F1dGhvciIKIAlleHBvcnQgR0lUX0FVVEhPUl9FTUFJTApAQCAtNjMsNDUgKzU4LDU4IEBACiAJZmkKIH0KIAotY29tbWl0X2RhdGUoKQotewotICAgICAgICBfY29tbWl0PSQxCi0JZ2l0IGNhdC1maWxlIGNvbW1pdCAkX2NvbW1pdCB8IHNlZCAtbiAicy9eY29tbWl0dGVyIC4qPiBcKFswLTldKlwpIC4qL1wxL3AiCitjb21taXRfZGF0ZSAoKSB7CisJX2NvbW1pdD0kMQorCWdpdCBjYXQtZmlsZSBjb21taXQgJF9jb21taXQgfAorCXNlZCAtbiAicy9eY29tbWl0dGVyIC4qPiBcKFswLTldKlwpIC4qL1wxL3AiCiB9CiAKLW9uX2NvbW1pdHRlcl9kYXRlKCkKLXsKLSAgICBfZGF0ZT0kMQotICAgIHNoaWZ0IDEKLSAgICBHSVRfQ09NTUlUVEVSX0RBVEU9IiRfZGF0ZSIKLSAgICBleHBvcnQgR0lUX0NPTU1JVFRFUl9EQVRFCi0gICAgIiRAIgotICAgIHVuc2V0IEdJVF9DT01NSVRURVJfREFURQorIyBBc3NpZ24gdGhlIHZhbHVlIG9mIGZha2UgZGF0ZSB0byBhIHZhcmlhYmxlLCBidXQKKyMgYWxsb3cgZmFpcmx5IGNvbW1vbiAiMTk3MS0wOC0xNiAwMDowMCIgdG8gYmUgb21pdHRkCithc3NpZ25fZmFrZV9kYXRlICgpIHsKKwljYXNlICIkMiIgaW4KKwk/Pzo/Pzo/PykJZXZhbCAiJDE9JzE5NzEtMDgtMTYgJDInIiA7OworCT8/Oj8/KQkJZXZhbCAiJDE9JzE5NzEtMDgtMTYgMDA6JDInIiA7OworCT8/KQkJZXZhbCAiJDE9JzE5NzEtMDgtMTYgMDA6MDA6JDInIiA7OworCSopCQlldmFsICIkMT0nJDInIiA7OworCWVzYWMKK30KKworb25fY29tbWl0dGVyX2RhdGUgKCkgeworCWFzc2lnbl9mYWtlX2RhdGUgR0lUX0NPTU1JVFRFUl9EQVRFICIkMSIKKwlleHBvcnQgR0lUX0NPTU1JVFRFUl9EQVRFCisJc2hpZnQgMQorCSIkQCIKK30KKworb25fZGF0ZXMgKCkgeworCWFzc2lnbl9mYWtlX2RhdGUgR0lUX0NPTU1JVFRFUl9EQVRFICIkMSIKKwlhc3NpZ25fZmFrZV9kYXRlIEdJVF9BVVRIT1JfREFURSAiJDIiCisJZXhwb3J0IEdJVF9DT01NSVRURVJfREFURSBHSVRfQVVUSE9SX0RBVEUKKwlzaGlmdCAyCisJIiRAIgogfQogCiAjIEV4ZWN1dGUgYSBjb21tYW5kIGFuZCBzdXBwcmVzcyBhbnkgZXJyb3Igb3V0cHV0LgotaGlkZV9lcnJvcigpCi17CitoaWRlX2Vycm9yICgpIHsKIAkiJEAiIDI+L2Rldi9udWxsCiB9CiAKLWNoZWNrX291dHB1dCgpCi17CitjaGVja19vdXRwdXQgKCkgewogCV9uYW1lPSQxCiAJc2hpZnQgMQotCWlmIGV2YWwgIiQqIiB8IGVudGFnID4gJF9uYW1lLmFjdHVhbAorCWlmIGV2YWwgIiQqIiB8IGVudGFnID4iJF9uYW1lLmFjdHVhbCIKIAl0aGVuCi0JCXRlc3RfY21wICRfbmFtZS5leHBlY3RlZCAkX25hbWUuYWN0dWFsCisJCXRlc3RfY21wICIkX25hbWUuZXhwZWN0ZWQiICIkX25hbWUuYWN0dWFsIgogCWVsc2UKLQkJcmV0dXJuIDE7CisJCXJldHVybiAxCiAJZmkKIH0KIAogIyBUdXJuIGEgcmVhc29uYWJsZSB0ZXN0IGRlc2NyaXB0aW9uIGludG8gYSByZWFzb25hYmxlIHRlc3QgbmFtZS4KICMgQWxsIGFscGhhbnVtcyB0cmFuc2xhdGVkIGludG8gLSdzIHdoaWNoIGFyZSB0aGVuIGNvbXByZXNzZWQgYW5kIHN0cmlwcGVkCiAjIGZyb20gZnJvbnQgYW5kIGJhY2suCi1uYW1lX2Zyb21fZGVzY3JpcHRpb24oKQoteworbmFtZV9mcm9tX2Rlc2NyaXB0aW9uICgpIHsKIAlwZXJsIC1wZSAnCiAJCXMvW15BLVphLXowLTkuXS8tL2c7CiAJCXMvLSsvLS9nOwpAQCAtMTE5LDkgKzEyNywxMSBAQAogdGVzdF9vdXRwdXRfZXhwZWN0X3N1Y2Nlc3MoKQogewogCV9kZXNjcmlwdGlvbj0kMQotICAgICAgICBfdGVzdD0kMgotICAgICAgICBbICQjIC1lcSAyIF0gfHwgZXJyb3IgInVzYWdlOiB0ZXN0X291dHB1dF9leHBlY3Rfc3VjY2VzcyBkZXNjcmlwdGlvbiB0ZXN0IDw8RU9GIC4uLiBFT0YiCi0gICAgICAgIF9uYW1lPSQoZWNobyAkX2Rlc2NyaXB0aW9uIHwgbmFtZV9mcm9tX2Rlc2NyaXB0aW9uKQotCWNhdCA+ICRfbmFtZS5leHBlY3RlZAorCV90ZXN0PSQyCisJdGVzdCAkIyAtZXEgMiB8fAorCWVycm9yICJ1c2FnZTogdGVzdF9vdXRwdXRfZXhwZWN0X3N1Y2Nlc3MgZGVzY3JpcHRpb24gdGVzdCA8PEVPRiAuLi4gRU9GIgorCisJX25hbWU9JChlY2hvICRfZGVzY3JpcHRpb24gfCBuYW1lX2Zyb21fZGVzY3JpcHRpb24pCisJY2F0ID4iJF9uYW1lLmV4cGVjdGVkIgogCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgIiRfZGVzY3JpcHRpb24iICJjaGVja19vdXRwdXQgJF9uYW1lIFwiJF90ZXN0XCIiCiB9CmRpZmYgLS1naXQgYS90L3BlcmYvUkVBRE1FIGIvdC9wZXJmL1JFQURNRQppbmRleCBjNTUyZjU2Li44ODQ4YzE0IDEwMDY0NAotLS0gYS90L3BlcmYvUkVBRE1FCisrKyBiL3QvcGVyZi9SRUFETUUKQEAgLTY2LDcgKzY2LDcgQEAKICAgICBHSVRfUEVSRl9MQVJHRV9SRVBPCiAJUmVwb3NpdG9yaWVzIHRvIGNvcHkgZm9yIHRoZSBwZXJmb3JtYW5jZSB0ZXN0cy4gIFRoZSBub3JtYWwKIAlyZXBvIHNob3VsZCBiZSBhdCBsZWFzdCBnaXQuZ2l0IHNpemUuICBUaGUgbGFyZ2UgcmVwbyBzaG91bGQKLQlwcm9iYWJseSBiZSBhYm91dCBsaW51eC0yLjYuZ2l0IHNpemUgZm9yIG9wdGltYWwgcmVzdWx0cy4KKwlwcm9iYWJseSBiZSBhYm91dCBsaW51eC5naXQgc2l6ZSBmb3Igb3B0aW1hbCByZXN1bHRzLgogCUJvdGggZGVmYXVsdCB0byB0aGUgZ2l0LmdpdCB5b3UgYXJlIHJ1bm5pbmcgZnJvbS4KIAogWW91IGNhbiBhbHNvIHBhc3MgdGhlIG9wdGlvbnMgdGFrZW4gYnkgb3JkaW5hcnkgZ2l0IHRlc3RzOyB0aGUgbW9zdApkaWZmIC0tZ2l0IGEvdC9wZXJmL3AwMDAyLXJlYWQtY2FjaGUuc2ggYi90L3BlcmYvcDAwMDItcmVhZC1jYWNoZS5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MTgwYWU5Ci0tLSAvZGV2L251bGwKKysrIGIvdC9wZXJmL3AwMDAyLXJlYWQtY2FjaGUuc2gKQEAgLTAsMCArMSwxNCBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249IlRlc3RzIHBlcmZvcm1hbmNlIG9mIHJlYWRpbmcgdGhlIGluZGV4IgorCisuIC4vcGVyZi1saWIuc2gKKwordGVzdF9wZXJmX2RlZmF1bHRfcmVwbworCitjb3VudD0xMDAwCit0ZXN0X3BlcmYgInJlYWRfY2FjaGUvZGlzY2FyZF9jYWNoZSAkY291bnQgdGltZXMiICIKKwl0ZXN0LXJlYWQtY2FjaGUgJGNvdW50CisiCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC9wZXJmL3A0MjExLWxpbmUtbG9nLnNoIGIvdC9wZXJmL3A0MjExLWxpbmUtbG9nLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNkMDc0YjAKLS0tIC9kZXYvbnVsbAorKysgYi90L3BlcmYvcDQyMTEtbGluZS1sb2cuc2gKQEAgLTAsMCArMSwzNCBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J1Rlc3RzIGxvZyAtTCBwZXJmb3JtYW5jZScKKy4gLi9wZXJmLWxpYi5zaAorCit0ZXN0X3BlcmZfZGVmYXVsdF9yZXBvCisKKyMgUGljayBhIGZpbGUgdG8gbG9nIHBzZXVkby1yYW5kb21seS4gIFRoZSBzb3J0IGtleSBpcyB0aGUgYmxvYiBoYXNoLAorIyBzbyBpdCBpcyBzdGFibGUuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZWxlY3QgYSBmaWxlJyAnCisJZ2l0IGxzLXRyZWUgSEVBRCB8IGdyZXAgXjEwMDY0NCB8CisJc29ydCAtayAzIHwgaGVhZCAtMSB8IGN1dCAtZiAyID5maWxlbGlzdAorJworCitmaWxlPSQoY2F0IGZpbGVsaXN0KQorZXhwb3J0IGZpbGUKKwordGVzdF9wZXJmICdnaXQgcmV2LWxpc3QgLS10b3BvLW9yZGVyIChiYXNlbGluZSknICcKKwlnaXQgcmV2LWxpc3QgLS10b3BvLW9yZGVyIEhFQUQgPi9kZXYvbnVsbAorJworCit0ZXN0X3BlcmYgJ2dpdCBsb2cgLS1mb2xsb3cgKGJhc2VsaW5lIGZvciAtTSknICcKKwlnaXQgbG9nIC0tb25lbGluZSAtLWZvbGxvdyAtLSAiJGZpbGUiID4vZGV2L251bGwKKycKKwordGVzdF9wZXJmICdnaXQgbG9nIC1MJyAnCisJZ2l0IGxvZyAtTCAxOiIkZmlsZSIgPi9kZXYvbnVsbAorJworCit0ZXN0X3BlcmYgJ2dpdCBsb2cgLU0gLUwnICcKKwlnaXQgbG9nIC1NIC1MIDE6IiRmaWxlIiA+L2Rldi9udWxsCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC9wZXJmL3BlcmYtbGliLnNoIGIvdC9wZXJmL3BlcmYtbGliLnNoCmluZGV4IGE4MTZmYmMuLmY0ZWVjYWEgMTAwNjQ0Ci0tLSBhL3QvcGVyZi9wZXJmLWxpYi5zaAorKysgYi90L3BlcmYvcGVyZi1saWIuc2gKQEAgLTE1MCw2ICsxNTAsNyBAQAogCiAKIHRlc3RfcGVyZiAoKSB7CisJdGVzdF9zdGFydF8KIAl0ZXN0ICIkIyIgPSAzICYmIHsgdGVzdF9wcmVyZXE9JDE7IHNoaWZ0OyB9IHx8IHRlc3RfcHJlcmVxPQogCXRlc3QgIiQjIiA9IDIgfHwKIAllcnJvciAiYnVnIGluIHRoZSB0ZXN0IHNjcmlwdDogbm90IDIgb3IgMyBwYXJhbWV0ZXJzIHRvIHRlc3QtZXhwZWN0LXN1Y2Nlc3MiCkBAIC0xNjAsNyArMTYxLDcgQEAKIAkJZWNobyAiJHRlc3RfY291bnQiID4+IiRwZXJmX3Jlc3VsdHNfZGlyIi8kYmFzZS5zdWJ0ZXN0cwogCQllY2hvICIkMSIgPiIkcGVyZl9yZXN1bHRzX2RpciIvJGJhc2UuJHRlc3RfY291bnQuZGVzY3IKIAkJaWYgdGVzdCAteiAiJHZlcmJvc2UiOyB0aGVuCi0JCQllY2hvIC1uICJwZXJmICR0ZXN0X2NvdW50IC0gJDE6IgorCQkJcHJpbnRmICIlcyIgInBlcmYgJHRlc3RfY291bnQgLSAkMToiCiAJCWVsc2UKIAkJCWVjaG8gInBlcmYgJHRlc3RfY291bnQgLSAkMToiCiAJCWZpCkBAIC0xNjksNyArMTcwLDcgQEAKIAkJCWlmIHRlc3RfcnVuX3BlcmZfICIkMiIKIAkJCXRoZW4KIAkJCQlpZiB0ZXN0IC16ICIkdmVyYm9zZSI7IHRoZW4KLQkJCQkJZWNobyAtbiAiICRpIgorCQkJCQlwcmludGYgIiAlcyIgIiRpIgogCQkJCWVsc2UKIAkJCQkJZWNobyAiKiB0aW1pbmcgcnVuICRpLyRHSVRfUEVSRl9SRVBFQVRfQ09VTlQ6IgogCQkJCWZpCkBAIC0xODcsNyArMTg4LDcgQEAKIAkJYmFzZT0iJHBlcmZfcmVzdWx0c19kaXIiLyIkcGVyZl9yZXN1bHRzX3ByZWZpeCQoYmFzZW5hbWUgIiQwIiAuc2gpIi4iJHRlc3RfY291bnQiCiAJCSIkVEVTVF9ESVJFQ1RPUlkiL3BlcmYvbWluX3RpbWUucGVybCB0ZXN0X3RpbWUuKiA+IiRiYXNlIi50aW1lcwogCWZpCi0JZWNobyA+JjMgIiIKKwl0ZXN0X2ZpbmlzaF8KIH0KIAogIyBXZSBleHRlbmQgdGVzdF9kb25lIHRvIHByaW50IHRpbWluZ3MgYXQgdGhlIGVuZCAoLi9ydW4gZGlzYWJsZXMgdGhpcwpkaWZmIC0tZ2l0IGEvdC90MDAwMC1iYXNpYy5zaCBiL3QvdDAwMDAtYmFzaWMuc2gKaW5kZXggY2VmZTMzZC4uMTBiZTUyYiAxMDA3NTUKLS0tIGEvdC90MDAwMC1iYXNpYy5zaAorKysgYi90L3QwMDAwLWJhc2ljLnNoCkBAIC00Nyw4ICs0NywxNCBAQAogCiBydW5fc3ViX3Rlc3RfbGliX3Rlc3QgKCkgewogCW5hbWU9IiQxIiBkZXNjcj0iJDIiICMgc3RkaW4gaXMgdGhlIGJvZHkgb2YgdGhlIHRlc3QgY29kZQorCXNoaWZ0IDIKIAlta2RpciAiJG5hbWUiICYmCiAJKAorCQkjIFByZXRlbmQgd2UncmUgYSB0ZXN0IGhhcm5lc3MuICBUaGlzIHByZXZlbnRzCisJCSMgdGVzdC1saWIgZnJvbSB3cml0aW5nIHRoZSBjb3VudHMgdG8gYSBmaWxlIHRoYXQgd2lsbAorCQkjIGxhdGVyIGJlIHN1bW1hcml6ZWQsIHNob3dpbmcgc3B1cmlvdXMgImZhaWxlZCIgdGVzdHMKKwkJSEFSTkVTU19BQ1RJVkU9dCAmJgorCQlleHBvcnQgSEFSTkVTU19BQ1RJVkUgJiYKIAkJY2QgIiRuYW1lIiAmJgogCQljYXQgPiIkbmFtZS5zaCIgPDwtRU9GICYmCiAJCSMhJFNIRUxMX1BBVEgKQEAgLTY1LDcgKzcxLDcgQEAKIAkJY2F0ID4+IiRuYW1lLnNoIiAmJgogCQljaG1vZCAreCAiJG5hbWUuc2giICYmCiAJCWV4cG9ydCBURVNUX0RJUkVDVE9SWSAmJgotCQkuLyIkbmFtZS5zaCIgPm91dCAyPmVycgorCQkuLyIkbmFtZS5zaCIgIiRAIiA+b3V0IDI+ZXJyCiAJKQogfQogCkBAIC0yMTUsNiArMjIxLDYwIEBACiAJRU9GCiAiCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgLS12ZXJib3NlJyAnCisJdGVzdF9tdXN0X2ZhaWwgcnVuX3N1Yl90ZXN0X2xpYl90ZXN0IFwKKwkJdGVzdC12ZXJib3NlICJ0ZXN0IHZlcmJvc2UiIC0tdmVyYm9zZSA8PC1cRU9GICYmCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicGFzc2luZyB0ZXN0IiB0cnVlCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAidGVzdCB3aXRoIG91dHB1dCIgImVjaG8gZm9vIgorCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZhaWxpbmcgdGVzdCIgZmFsc2UKKwl0ZXN0X2RvbmUKKwlFT0YKKwltdiB0ZXN0LXZlcmJvc2Uvb3V0IHRlc3QtdmVyYm9zZS9vdXQrCisJZ3JlcCAtdiAiXkluaXRpYWxpemVkIGVtcHR5IiB0ZXN0LXZlcmJvc2Uvb3V0KyA+dGVzdC12ZXJib3NlL291dCAmJgorCWNoZWNrX3N1Yl90ZXN0X2xpYl90ZXN0IHRlc3QtdmVyYm9zZSA8PC1cRU9GCisJPiBleHBlY3Rpbmcgc3VjY2VzczogdHJ1ZQorCT4gWgorCT4gb2sgMSAtIHBhc3NpbmcgdGVzdAorCT4gWgorCT4gZXhwZWN0aW5nIHN1Y2Nlc3M6IGVjaG8gZm9vCisJPiBmb28KKwk+IFoKKwk+IG9rIDIgLSB0ZXN0IHdpdGggb3V0cHV0CisJPiBaCisJPiBleHBlY3Rpbmcgc3VjY2VzczogZmFsc2UKKwk+IFoKKwk+IG5vdCBvayAzIC0gZmFpbGluZyB0ZXN0CisJPiAjCWZhbHNlCisJPiBaCisJPiAjIGZhaWxlZCAxIGFtb25nIDMgdGVzdChzKQorCT4gMS4uMworCUVPRgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd0ZXN0IC0tdmVyYm9zZS1vbmx5JyAnCisJdGVzdF9tdXN0X2ZhaWwgcnVuX3N1Yl90ZXN0X2xpYl90ZXN0IFwKKwkJdGVzdC12ZXJib3NlLW9ubHktMiAidGVzdCB2ZXJib3NlLW9ubHk9MiIgXAorCQktLXZlcmJvc2Utb25seT0yIDw8LVxFT0YgJiYKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJwYXNzaW5nIHRlc3QiIHRydWUKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJ0ZXN0IHdpdGggb3V0cHV0IiAiZWNobyBmb28iCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiZmFpbGluZyB0ZXN0IiBmYWxzZQorCXRlc3RfZG9uZQorCUVPRgorCWNoZWNrX3N1Yl90ZXN0X2xpYl90ZXN0IHRlc3QtdmVyYm9zZS1vbmx5LTIgPDwtXEVPRgorCT4gb2sgMSAtIHBhc3NpbmcgdGVzdAorCT4gWgorCT4gZXhwZWN0aW5nIHN1Y2Nlc3M6IGVjaG8gZm9vCisJPiBmb28KKwk+IFoKKwk+IG9rIDIgLSB0ZXN0IHdpdGggb3V0cHV0CisJPiBaCisJPiBub3Qgb2sgMyAtIGZhaWxpbmcgdGVzdAorCT4gIwlmYWxzZQorCT4gIyBmYWlsZWQgMSBhbW9uZyAzIHRlc3QocykKKwk+IDEuLjMKKwlFT0YKKycKKwogdGVzdF9zZXRfcHJlcmVxIEhBVkVJVAogaGF2ZWl0PW5vCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIEhBVkVJVCAndGVzdCBydW5zIGlmIHByZXJlcXVpc2l0ZSBpcyBzYXRpc2ZpZWQnICcKQEAgLTM2NywyMiArNDI3LDYgQEAKIAogIyBWYXJpb3VzIHR5cGVzIG9mIG9iamVjdHMKIAotIyBTb21lIGZpbGVzeXN0ZW1zIGRvIG5vdCBzdXBwb3J0IHN5bWJsaWMgbGlua3M7IG9uIHN1Y2ggc3lzdGVtcwotIyBzb21lIGV4cGVjdGVkIHZhbHVlcyBhcmUgZGlmZmVyZW50Ci1pZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTCi10aGVuCi0JZXhwZWN0ZmlsdGVyPWNhdAotCWV4cGVjdGVkdHJlZT0wODc3MDRhOTZiYWYxYzJkMWM4NjlhOGIwODQ0ODFlMTIxYzg4YjViCi0JZXhwZWN0ZWRwdHJlZTE9MjFhZTgyNjljYWNiZTU3YWUwOTEzOGRjYzNhMjg4N2Y5MDRkMDJiMwotCWV4cGVjdGVkcHRyZWUyPTNjNWU1Mzk5ZjNhMzMzZWRkZWNjZTdhOWI5NDY1YjYzZjY1ZjUxZTIKLWVsc2UKLQlleHBlY3RmaWx0ZXI9J2dyZXAgLXYgc3ltJwotCWV4cGVjdGVkdHJlZT04ZTE4ZWRmN2Q3ZWRjZjQzNzFhM2FjNmFlNWYwN2MyNjQxZGI3YzQ2Ci0JZXhwZWN0ZWRwdHJlZTE9Y2ZiODU5MWIyZjY1ZGU4YjhjYzEwMjBjZDdkOWU2N2U3NzkzYjMyNQotCWV4cGVjdGVkcHRyZWUyPWNlNTgwNDQ4ZjAxNDhiOTg1YTUxM2I2OTNmZGY3ZDgwMmNhY2I0NGYKLWZpCi0KLQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkaW5nIHZhcmlvdXMgdHlwZXMgb2Ygb2JqZWN0cyB3aXRoIGdpdCB1cGRhdGUtaW5kZXggLS1hZGQnICcKIAlta2RpciBwYXRoMiBwYXRoMyBwYXRoMy9zdWJwMyAmJgogCXBhdGhzPSJwYXRoMCBwYXRoMi9maWxlMiBwYXRoMy9maWxlMyBwYXRoMy9zdWJwMy9maWxlMyIgJiYKQEAgLTM5MCwxMCArNDM0LDcgQEAKIAkJZm9yIHAgaW4gJHBhdGhzCiAJCWRvCiAJCQllY2hvICJoZWxsbyAkcCIgPiRwIHx8IGV4aXQgMQotCQkJaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUwotCQkJdGhlbgotCQkJCWxuIC1zICJoZWxsbyAkcCIgJHtwfXN5bSB8fCBleGl0IDEKLQkJCWZpCisJCQl0ZXN0X2xuX3NfYWRkICJoZWxsbyAkcCIgJHtwfXN5bSB8fCBleGl0IDEKIAkJZG9uZQogCSkgJiYKIAlmaW5kIHBhdGgqICEgLXR5cGUgZCAtcHJpbnQgfCB4YXJncyBnaXQgdXBkYXRlLWluZGV4IC0tYWRkCkBAIC00MDUsNyArNDQ2LDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgZ2l0IGxzLWZpbGVzIG91dHB1dCBmb3IgYSBrbm93biB0cmVlJyAnCi0JJGV4cGVjdGZpbHRlciA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCTEwMDY0NCBmODcyOTBmOGViMmNiYmVhNzg1NzIxNDQ1OWEwNzM5OTI3ZWFiMTU0IDAJcGF0aDAKIAkxMjAwMDAgMTVhOTg0MzNhZTMzMTE0YjA4NWYzZWIzYmIwM2I4MzJiMzE4MGEwMSAwCXBhdGgwc3ltCiAJMTAwNjQ0IDNmZWZmOTQ5ZWQwMGE2MmQ5ZjdhZjk3YzE1Y2Q4YTMwNTk1ZTdhYzcgMAlwYXRoMi9maWxlMgpAQCAtNDIzLDE0ICs0NjQsMTQgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgb2JqZWN0IElEIGZvciBhIGtub3duIHRyZWUnICcKLQl0ZXN0ICIkdHJlZSIgPSAiJGV4cGVjdGVkdHJlZSIKKwl0ZXN0ICIkdHJlZSIgPSAwODc3MDRhOTZiYWYxYzJkMWM4NjlhOGIwODQ0ODFlMTIxYzg4YjViCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3dpbmcgdHJlZSB3aXRoIGdpdCBscy10cmVlJyAnCiAgICAgZ2l0IGxzLXRyZWUgJHRyZWUgPmN1cnJlbnQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZ2l0IGxzLXRyZWUgb3V0cHV0IGZvciBhIGtub3duIHRyZWUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBscy10cmVlIG91dHB1dCBmb3IgYSBrbm93biB0cmVlJyAnCiAJY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCiAJMTAwNjQ0IGJsb2IgZjg3MjkwZjhlYjJjYmJlYTc4NTcyMTQ0NTlhMDczOTkyN2VhYjE1NAlwYXRoMAogCTEyMDAwMCBibG9iIDE1YTk4NDMzYWUzMzExNGIwODVmM2ViM2JiMDNiODMyYjMxODBhMDEJcGF0aDBzeW0KQEAgLTQ0Nyw3ICs0ODgsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbHMtdHJlZSAtciBvdXRwdXQgZm9yIGEga25vd24gdHJlZScgJwotCSRleHBlY3RmaWx0ZXIgPmV4cGVjdGVkIDw8LVxFT0YgJiYKKwljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKIAkxMDA2NDQgYmxvYiBmODcyOTBmOGViMmNiYmVhNzg1NzIxNDQ1OWEwNzM5OTI3ZWFiMTU0CXBhdGgwCiAJMTIwMDAwIGJsb2IgMTVhOTg0MzNhZTMzMTE0YjA4NWYzZWIzYmIwM2I4MzJiMzE4MGEwMQlwYXRoMHN5bQogCTEwMDY0NCBibG9iIDNmZWZmOTQ5ZWQwMGE2MmQ5ZjdhZjk3YzE1Y2Q4YTMwNTk1ZTdhYzcJcGF0aDIvZmlsZTIKQEAgLTQ2NSw3ICs1MDYsNyBAQAogCWdpdCBscy10cmVlIC1yIC10ICR0cmVlID5jdXJyZW50CiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2dpdCBscy10cmVlIC1yIG91dHB1dCBmb3IgYSBrbm93biB0cmVlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbHMtdHJlZSAtciBvdXRwdXQgZm9yIGEga25vd24gdHJlZScgJwogCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCTEwMDY0NCBibG9iIGY4NzI5MGY4ZWIyY2JiZWE3ODU3MjE0NDU5YTA3Mzk5MjdlYWIxNTQJcGF0aDAKIAkxMjAwMDAgYmxvYiAxNWE5ODQzM2FlMzMxMTRiMDg1ZjNlYjNiYjAzYjgzMmIzMTgwYTAxCXBhdGgwc3ltCkBAIC00ODcsNyArNTI4LDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgb2JqZWN0IElEIGZvciBhIGtub3duIHRyZWUnICcKLQl0ZXN0ICIkcHRyZWUiID0gIiRleHBlY3RlZHB0cmVlMSIKKwl0ZXN0ICIkcHRyZWUiID0gMjFhZTgyNjljYWNiZTU3YWUwOTEzOGRjYzNhMjg4N2Y5MDRkMDJiMwogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd3cml0aW5nIHBhcnRpYWwgdHJlZSBvdXQgd2l0aCBnaXQgd3JpdGUtdHJlZSAtLXByZWZpeCcgJwpAQCAtNDk1LDcgKzUzNiw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkYXRlIG9iamVjdCBJRCBmb3IgYSBrbm93biB0cmVlJyAnCi0JdGVzdCAiJHB0cmVlIiA9ICIkZXhwZWN0ZWRwdHJlZTIiCisJdGVzdCAiJHB0cmVlIiA9IDNjNWU1Mzk5ZjNhMzMzZWRkZWNjZTdhOWI5NDY1YjYzZjY1ZjUxZTIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHV0IGludmFsaWQgb2JqZWN0cyBpbnRvIHRoZSBpbmRleCcgJwpAQCAtNTI5LDcgKzU3MCw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkYXRlIGdpdCBkaWZmLWZpbGVzIG91dHB1dCBmb3IgYSBrbm93IGNhY2hlL3dvcmsgdHJlZSBzdGF0ZScgJwotCSRleHBlY3RmaWx0ZXIgPmV4cGVjdGVkIDw8XEVPRiAmJgorCWNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiA6MTAwNjQ0IDEwMDY0NCBmODcyOTBmOGViMmNiYmVhNzg1NzIxNDQ1OWEwNzM5OTI3ZWFiMTU0IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTQlwYXRoMAogOjEyMDAwMCAxMjAwMDAgMTVhOTg0MzNhZTMzMTE0YjA4NWYzZWIzYmIwM2I4MzJiMzE4MGEwMSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE0JcGF0aDBzeW0KIDoxMDA2NDQgMTAwNjQ0IDNmZWZmOTQ5ZWQwMGE2MmQ5ZjdhZjk3YzE1Y2Q4YTMwNTk1ZTdhYzcgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNCXBhdGgyL2ZpbGUyCkBAIC01NTMsNyArNTk0LDcgQEAKICcKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotUD0kZXhwZWN0ZWR0cmVlCitQPTA4NzcwNGE5NmJhZjFjMmQxYzg2OWE4YjA4NDQ4MWUxMjFjODhiNWIKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNvbW1pdC10cmVlIHJlY29yZHMgdGhlIGNvcnJlY3QgdHJlZSBpbiBhIGNvbW1pdCcgJwogCWNvbW1pdDA9JChlY2hvIE5PIHwgZ2l0IGNvbW1pdC10cmVlICRQKSAmJgpkaWZmIC0tZ2l0IGEvdC90MDAwNS1zaWduYWxzLnNoIGIvdC90MDAwNS1zaWduYWxzLnNoCmluZGV4IDkzZTU4YzAuLjk4MTQzN2IgMTAwNzU1Ci0tLSBhL3QvdDAwMDUtc2lnbmFscy5zaAorKysgYi90L3QwMDA1LXNpZ25hbHMuc2gKQEAgLTIwLDQgKzIwLDExIEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICFNSU5HVyAnc2lnbmFscyBhcmUgcHJvcGFnYXRlZCB1c2luZyBzaGVsbCBjb252ZW50aW9uJyAnCisJIyB3ZSB1c2UgZXhlYyBoZXJlIHRvIGF2b2lkIGFueSBzdWItc2hlbGwgaW50ZXJwcmV0YXRpb24KKwkjIG9mIHRoZSBleGl0IGNvZGUKKwlnaXQgY29uZmlnIGFsaWFzLnNpZ3Rlcm0gIiFleGVjIHRlc3Qtc2lnY2hhaW4iICYmCisJdGVzdF9leHBlY3RfY29kZSAxNDMgZ2l0IHNpZ3Rlcm0KKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QwMDA4LWlnbm9yZXMuc2ggYi90L3QwMDA4LWlnbm9yZXMuc2gKaW5kZXggOWMxYmRlMS4uYzI5MzQyZCAxMDA3NTUKLS0tIGEvdC90MDAwOC1pZ25vcmVzLnNoCisrKyBiL3QvdDAwMDgtaWdub3Jlcy5zaApAQCAtNjYsMTYgKzY2LDIzIEBACiAKIAlpbml0X3ZhcnMgJiYKIAlybSAtZiAiJEhPTUUvc3Rkb3V0IiAiJEhPTUUvc3RkZXJyIiAiJEhPTUUvY21kIiAmJgotCWVjaG8gZ2l0ICRnbG9iYWxfYXJncyBjaGVjay1pZ25vcmUgJHF1aWV0X29wdCAkdmVyYm9zZV9vcHQgJGFyZ3MgXAorCWVjaG8gZ2l0ICRnbG9iYWxfYXJncyBjaGVjay1pZ25vcmUgJHF1aWV0X29wdCAkdmVyYm9zZV9vcHQgJG5vbl9tYXRjaGluZ19vcHQgJGFyZ3MgXAogCQk+IiRIT01FL2NtZCIgJiYKKwllY2hvICIkZXhwZWN0X2NvZGUiID4iJEhPTUUvZXhwZWN0ZWQtZXhpdC1jb2RlIiAmJgogCXRlc3RfZXhwZWN0X2NvZGUgIiRleHBlY3RfY29kZSIgXAotCQlnaXQgJGdsb2JhbF9hcmdzIGNoZWNrLWlnbm9yZSAkcXVpZXRfb3B0ICR2ZXJib3NlX29wdCAkYXJncyBcCisJCWdpdCAkZ2xvYmFsX2FyZ3MgY2hlY2staWdub3JlICRxdWlldF9vcHQgJHZlcmJvc2Vfb3B0ICRub25fbWF0Y2hpbmdfb3B0ICRhcmdzIFwKIAkJPiIkSE9NRS9zdGRvdXQiIDI+IiRIT01FL3N0ZGVyciIgJiYKIAl0ZXN0X2NtcCAiJEhPTUUvZXhwZWN0ZWQtc3Rkb3V0IiAiJEhPTUUvc3Rkb3V0IiAmJgogCXN0ZGVycl9lbXB0eV9vbl9zdWNjZXNzICIkZXhwZWN0X2NvZGUiCiB9CiAKLSMgUnVucyB0aGUgc2FtZSBjb2RlIHdpdGggMyBkaWZmZXJlbnQgbGV2ZWxzIG9mIG91dHB1dCB2ZXJib3NpdHksCisjIFJ1bnMgdGhlIHNhbWUgY29kZSB3aXRoIDQgZGlmZmVyZW50IGxldmVscyBvZiBvdXRwdXQgdmVyYm9zaXR5OgorIworIyAgIDEuIHdpdGggLXEgLyAtLXF1aWV0CisjICAgMi4gd2l0aCBkZWZhdWx0IHZlcmJvc2l0eQorIyAgIDMuIHdpdGggLXYgLyAtLXZlcmJvc2UKKyMgICA0LiB3aXRoIC12IC8gLS12ZXJib3NlLCAqYW5kKiAtbiAvIC0tbm9uLW1hdGNoaW5nCisjCiAjIGV4cGVjdGluZyBzdWNjZXNzIGVhY2ggdGltZS4gIFRha2VzIGFkdmFudGFnZSBvZiB0aGUgZmFjdCB0aGF0CiAjIGNoZWNrLWlnbm9yZSAtLXZlcmJvc2Ugb3V0cHV0IGlzIHRoZSBzYW1lIGFzIG5vcm1hbCBvdXRwdXQgZXhjZXB0CiAjIGZvciB0aGUgZXh0cmEgZmlyc3QgY29sdW1uLgpAQCAtODMsNyArOTAsOSBAQAogIyBBcmd1bWVudHM6CiAjICAgLSAob3B0aW9uYWwpIHByZXJlcXMgZm9yIHRoaXMgdGVzdCwgZS5nLiAnU1lNTElOS1MnCiAjICAgLSB0ZXN0IG5hbWUKLSMgICAtIG91dHB1dCB0byBleHBlY3QgZnJvbSAtdiAvIC0tdmVyYm9zZSBtb2RlCisjICAgLSBvdXRwdXQgdG8gZXhwZWN0IGZyb20gdGhlIGZvdXJ0aCB2ZXJib3NpdHkgbW9kZSAodGhlIG91dHB1dAorIyAgICAgZnJvbSB0aGUgb3RoZXIgdmVyYm9zaXR5IG1vZGVzIGlzIGF1dG9tYXRpY2FsbHkgaW5mZXJyZWQKKyMgICAgIGZyb20gdGhpcyB2YWx1ZSkKICMgICAtIGNvZGUgdG8gcnVuIChzaG91bGQgaW52b2tlIHRlc3RfY2hlY2tfaWdub3JlKQogdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAoKSB7CiAJcHJlcmVxPQpAQCAtOTIsOCArMTAxLDkgQEAKIAkJcHJlcmVxPSQxCiAJCXNoaWZ0CiAJZmkKLQl0ZXN0bmFtZT0iJDEiIGV4cGVjdF92ZXJib3NlPSIkMiIgY29kZT0iJDMiCisJdGVzdG5hbWU9IiQxIiBleHBlY3RfYWxsPSIkMiIgY29kZT0iJDMiCiAKKwlleHBlY3RfdmVyYm9zZT0kKCBlY2hvICIkZXhwZWN0X2FsbCIgfCBncmVwIC12ICdeOjoJJyApCiAJZXhwZWN0PSQoIGVjaG8gIiRleHBlY3RfdmVyYm9zZSIgfCBzZWQgLWUgJ3MvLioJLy8nICkKIAogCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJHByZXJlcSAiJHRlc3RuYW1lIiAnCkBAIC0xMDEsMjMgKzExMSw0MCBAQAogCQlldmFsICIkY29kZSIKIAknCiAKLQlmb3IgcXVpZXRfb3B0IGluICctcScgJy0tcXVpZXQnCi0JZG8KLQkJdGVzdF9leHBlY3Rfc3VjY2VzcyAkcHJlcmVxICIkdGVzdG5hbWUke3F1aWV0X29wdDorIHdpdGggJHF1aWV0X29wdH0iICIKKwkjIC0tcXVpZXQgaXMgb25seSB2YWxpZCB3aGVuIGEgc2luZ2xlIHBhdHRlcm4gaXMgcGFzc2VkCisJaWYgdGVzdCAkKCBlY2hvICIkZXhwZWN0X2FsbCIgfCB3YyAtbCApID0gMQorCXRoZW4KKwkJZm9yIHF1aWV0X29wdCBpbiAnLXEnICctLXF1aWV0JworCQlkbworCQkJdGVzdF9leHBlY3Rfc3VjY2VzcyAkcHJlcmVxICIkdGVzdG5hbWUke3F1aWV0X29wdDorIHdpdGggJHF1aWV0X29wdH0iICIKIAkJCWV4cGVjdCAnJyAmJgogCQkJJGNvZGUKIAkJIgotCWRvbmUKLQlxdWlldF9vcHQ9CisJCWRvbmUKKwkJcXVpZXRfb3B0PQorCWZpCiAKIAlmb3IgdmVyYm9zZV9vcHQgaW4gJy12JyAnLS12ZXJib3NlJwogCWRvCi0JCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJHByZXJlcSAiJHRlc3RuYW1lJHt2ZXJib3NlX29wdDorIHdpdGggJHZlcmJvc2Vfb3B0fSIgIgotCQkJZXhwZWN0ICckZXhwZWN0X3ZlcmJvc2UnICYmCi0JCQkkY29kZQotCQkiCisJCWZvciBub25fbWF0Y2hpbmdfb3B0IGluICcnICcgLW4nICcgLS1ub24tbWF0Y2hpbmcnCisJCWRvCisJCQlpZiB0ZXN0IC1uICIkbm9uX21hdGNoaW5nX29wdCIKKwkJCXRoZW4KKwkJCQlteV9leHBlY3Q9IiRleHBlY3RfYWxsIgorCQkJZWxzZQorCQkJCW15X2V4cGVjdD0iJGV4cGVjdF92ZXJib3NlIgorCQkJZmkKKworCQkJdGVzdF9jb2RlPSIKKwkJCQlleHBlY3QgJyRteV9leHBlY3QnICYmCisJCQkJJGNvZGUKKwkJCSIKKwkJCW9wdHM9IiR2ZXJib3NlX29wdCRub25fbWF0Y2hpbmdfb3B0IgorCQkJdGVzdF9leHBlY3Rfc3VjY2VzcyAkcHJlcmVxICIkdGVzdG5hbWUke29wdHM6KyB3aXRoICRvcHRzfSIgIiR0ZXN0X2NvZGUiCisJCWRvbmUKIAlkb25lCiAJdmVyYm9zZV9vcHQ9CisJbm9uX21hdGNoaW5nX29wdD0KIH0KIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKQEAgLTE3OCw3ICsyMDUsNyBAQAogIwogIyB0ZXN0IGludmFsaWQgaW5wdXRzCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgJy4gY29ybmVyLWNhc2UnICcnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgJy4gY29ybmVyLWNhc2UnICc6OgkuJyAnCiAJdGVzdF9jaGVja19pZ25vcmUgLiAxCiAnCiAKQEAgLTE4OSwxMSArMjE2LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAnLS1zdGRpbiB3aXRoIGVtcHR5IFNURElOJyAnJyAnCiAJdGVzdF9jaGVja19pZ25vcmUgIi0tc3RkaW4iIDEgPC9kZXYvbnVsbCAmJgotCWlmIHRlc3QgLW4gIiRxdWlldF9vcHQiOyB0aGVuCi0JCXRlc3Rfc3RkZXJyICIiCi0JZWxzZQotCQl0ZXN0X3N0ZGVyciAibm8gcGF0aHNwZWMgZ2l2ZW4uIgotCWZpCisJdGVzdF9zdGRlcnIgIiIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnLXEgd2l0aCBtdWx0aXBsZSBhcmdzJyAnCkBAIC0yNzYsMjcgKzI5OSwzOSBAQAogCQl3aGVyZT0iaW4gc3ViZGlyICRzdWJkaXIiCiAJZmkKIAotCXRlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgIm5vbi1leGlzdGVudCBmaWxlICR3aGVyZSBub3QgaWdub3JlZCIgJycgIgotCQl0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9bm9uLWV4aXN0ZW50JyAxCi0JIgorCXRlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgIm5vbi1leGlzdGVudCBmaWxlICR3aGVyZSBub3QgaWdub3JlZCIgXAorCQkiOjoJJHtzdWJkaXJ9bm9uLWV4aXN0ZW50IiBcCisJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9bm9uLWV4aXN0ZW50JyAxIgogCiAJdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAibm9uLWV4aXN0ZW50IGZpbGUgJHdoZXJlIGlnbm9yZWQiIFwKLQkJIi5naXRpZ25vcmU6MTpvbmUJJHtzdWJkaXJ9b25lIiAiCi0JCXRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1vbmUnCi0JIgorCQkiLmdpdGlnbm9yZToxOm9uZQkke3N1YmRpcn1vbmUiIFwKKwkJInRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1vbmUnIgogCi0JdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAiZXhpc3RpbmcgdW50cmFja2VkIGZpbGUgJHdoZXJlIG5vdCBpZ25vcmVkIiAnJyAiCi0JCXRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1ub3QtaWdub3JlZCcgMQotCSIKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICJleGlzdGluZyB1bnRyYWNrZWQgZmlsZSAkd2hlcmUgbm90IGlnbm9yZWQiIFwKKwkJIjo6CSR7c3ViZGlyfW5vdC1pZ25vcmVkIiBcCisJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9bm90LWlnbm9yZWQnIDEiCiAKLQl0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICJleGlzdGluZyB0cmFja2VkIGZpbGUgJHdoZXJlIG5vdCBpZ25vcmVkIiAnJyAiCi0JCXRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1pZ25vcmVkLWJ1dC1pbi1pbmRleCcgMQotCSIKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICJleGlzdGluZyB0cmFja2VkIGZpbGUgJHdoZXJlIG5vdCBpZ25vcmVkIiBcCisJCSI6Ogkke3N1YmRpcn1pZ25vcmVkLWJ1dC1pbi1pbmRleCIgXAorCQkidGVzdF9jaGVja19pZ25vcmUgJyR7c3ViZGlyfWlnbm9yZWQtYnV0LWluLWluZGV4JyAxIgogCiAJdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAiZXhpc3RpbmcgdW50cmFja2VkIGZpbGUgJHdoZXJlIGlnbm9yZWQiIFwKLQkJIi5naXRpZ25vcmU6MjppZ25vcmVkLSoJJHtzdWJkaXJ9aWdub3JlZC1hbmQtdW50cmFja2VkIiAiCi0JCXRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1pZ25vcmVkLWFuZC11bnRyYWNrZWQnCi0JIgorCQkiLmdpdGlnbm9yZToyOmlnbm9yZWQtKgkke3N1YmRpcn1pZ25vcmVkLWFuZC11bnRyYWNrZWQiIFwKKwkJInRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1pZ25vcmVkLWFuZC11bnRyYWNrZWQnIgorCisJdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAibWl4IG9mIGZpbGUgdHlwZXMgJHdoZXJlIiBcCisiOjoJJHtzdWJkaXJ9bm9uLWV4aXN0ZW50CisuZ2l0aWdub3JlOjE6b25lCSR7c3ViZGlyfW9uZQorOjoJJHtzdWJkaXJ9bm90LWlnbm9yZWQKKzo6CSR7c3ViZGlyfWlnbm9yZWQtYnV0LWluLWluZGV4CisuZ2l0aWdub3JlOjI6aWdub3JlZC0qCSR7c3ViZGlyfWlnbm9yZWQtYW5kLXVudHJhY2tlZCIgXAorCQkidGVzdF9jaGVja19pZ25vcmUgJworCQkJJHtzdWJkaXJ9bm9uLWV4aXN0ZW50CisJCQkke3N1YmRpcn1vbmUKKwkJCSR7c3ViZGlyfW5vdC1pZ25vcmVkCisJCQkke3N1YmRpcn1pZ25vcmVkLWJ1dC1pbi1pbmRleAorCQkJJHtzdWJkaXJ9aWdub3JlZC1hbmQtdW50cmFja2VkJworCQkiCiBkb25lCiAKICMgSGF2aW5nIGVzdGFibGlzaGVkIHRoZSBhYm92ZSwgZnJvbSBub3cgb24gd2UgbW9zdGx5IHRlc3QgYWdhaW5zdApAQCAtMzkxLDcgKzQyNiw3IEBACiAjCiAjIHRlc3QgaGFuZGxpbmcgb2Ygc3ltbGlua3MKIAotdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSBTWU1MSU5LUyAnc3ltbGluaycgJycgJwordGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSBTWU1MSU5LUyAnc3ltbGluaycgJzo6CWEvc3ltbGluaycgJwogCXRlc3RfY2hlY2tfaWdub3JlICJhL3N5bWxpbmsiIDEKICcKIApAQCAtNTc0LDM3ICs2MDksMzQgQEAKIAlnbG9iYWx0d28KIAliL2dsb2JhbHR3bwogCS4uL2IvZ2xvYmFsdHdvCisJYy9ub3QtaWdub3JlZAogRU9GCi1jYXQgPDwtXEVPRiA+ZXhwZWN0ZWQtZGVmYXVsdAotCS4uL29uZQotCW9uZQotCWIvb24KLQliL29uZQotCWIvb25lIG9uZQotCWIvb25lIHR3bwotCSJiL29uZVwidGhyZWUiCi0JYi90d28KLQliL3R3b29vCi0JLi4vZ2xvYmFsdHdvCi0JZ2xvYmFsdHdvCi0JYi9nbG9iYWx0d28KLQkuLi9iL2dsb2JhbHR3bwotRU9GCi1jYXQgPDwtRU9GID5leHBlY3RlZC12ZXJib3NlCisjIE4uQi4gd2UgZGVsaWJlcmF0ZWx5IGVuZCBTVERJTiB3aXRoIGEgbm9uLW1hdGNoaW5nIHBhdHRlcm4gaW4gb3JkZXIKKyMgdG8gdGVzdCB0aGF0IHRoZSBleGl0IGNvZGUgaW5kaWNhdGVzIHRoYXQgb25lIG9yIG1vcmUgb2YgdGhlCisjIHByb3ZpZGVkIHBhdGhzIGlzIGlnbm9yZWQgLSBpbiBvdGhlciB3b3JkcywgdGhhdCBpdCByZXByZXNlbnRzIGFuCisjIGFnZ3JlZ2F0aW9uIG9mIGFsbCB0aGUgcmVzdWx0cywgbm90IGp1c3QgdGhlIGZpbmFsIHJlc3VsdC4KKworY2F0IDw8LUVPRiA+ZXhwZWN0ZWQtYWxsCiAJLmdpdGlnbm9yZToxOm9uZQkuLi9vbmUKKwk6OgkuLi9ub3QtaWdub3JlZAogCS5naXRpZ25vcmU6MTpvbmUJb25lCisJOjoJbm90LWlnbm9yZWQKIAlhL2IvLmdpdGlnbm9yZTo4OiFvbioJYi9vbgogCWEvYi8uZ2l0aWdub3JlOjg6IW9uKgliL29uZQogCWEvYi8uZ2l0aWdub3JlOjg6IW9uKgliL29uZSBvbmUKIAlhL2IvLmdpdGlnbm9yZTo4OiFvbioJYi9vbmUgdHdvCiAJYS9iLy5naXRpZ25vcmU6ODohb24qCSJiL29uZVwidGhyZWUiCiAJYS9iLy5naXRpZ25vcmU6OTohdHdvCWIvdHdvCisJOjoJYi9ub3QtaWdub3JlZAogCWEvLmdpdGlnbm9yZToxOnR3byoJYi90d29vbwogCSRnbG9iYWxfZXhjbHVkZXM6MjohZ2xvYmFsdHdvCS4uL2dsb2JhbHR3bwogCSRnbG9iYWxfZXhjbHVkZXM6MjohZ2xvYmFsdHdvCWdsb2JhbHR3bwogCSRnbG9iYWxfZXhjbHVkZXM6MjohZ2xvYmFsdHdvCWIvZ2xvYmFsdHdvCiAJJGdsb2JhbF9leGNsdWRlczoyOiFnbG9iYWx0d28JLi4vYi9nbG9iYWx0d28KKwk6OgljL25vdC1pZ25vcmVkCiBFT0YKK2dyZXAgLXYgJ146OgknIGV4cGVjdGVkLWFsbCA+ZXhwZWN0ZWQtdmVyYm9zZQorc2VkIC1lICdzLy4qCS8vJyBleHBlY3RlZC12ZXJib3NlID5leHBlY3RlZC1kZWZhdWx0CiAKIHNlZCAtZSAncy9eIi8vJyAtZSAncy9cXC8vJyAtZSAncy8iJC8vJyBzdGRpbiB8IFwKIAl0ciAiXG4iICJcMCIgPnN0ZGluMApAQCAtNjI5LDYgKzY2MSwxNCBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1zdGRpbiBmcm9tIHN1YmRpcmVjdG9yeSB3aXRoIC12IC1uJyAnCisJZXhwZWN0X2Zyb21fc3RkaW4gPGV4cGVjdGVkLWFsbCAmJgorCSgKKwkJY2QgYSAmJgorCQl0ZXN0X2NoZWNrX2lnbm9yZSAiLS1zdGRpbiAtdiAtbiIgPC4uL3N0ZGluCisJKQorJworCiBmb3Igb3B0cyBpbiAnLS1zdGRpbiAteicgJy16IC0tc3RkaW4nCiBkbwogCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgIiRvcHRzIGZyb20gc3ViZGlyZWN0b3J5IiAnCkBAIC02NDgsNSArNjg4LDMxIEBACiAJJwogZG9uZQogCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFBJUEUgJ3N0cmVhbWluZyBzdXBwb3J0IGZvciAtLXN0ZGluJyAnCisJbWtmaWZvIGluIG91dCAmJgorCShnaXQgY2hlY2staWdub3JlIC1uIC12IC0tc3RkaW4gPGluID5vdXQgJikgJiYKKworCSMgV2UgY2Fubm90IGp1c3QgImVjaG8gPmluIiBiZWNhdXNlIGNoZWNrLWlnbm9yZSB3b3VsZCBnZXQgRU9GCisJIyBhZnRlciBlY2hvIGV4aXRlZDsgaW5zdGVhZCB3ZSBvcGVuIHRoZSBkZXNjcmlwdG9yIGluIG91cgorCSMgc2hlbGwsIGFuZCB0aGVuIGVjaG8gdG8gdGhlIGZkLiBXZSBtYWtlIHN1cmUgdG8gY2xvc2UgaXQgYXQKKwkjIHRoZSBlbmQsIHNvIHRoYXQgdGhlIHN1YnByb2Nlc3MgZG9lcyBnZXQgRU9GIGFuZCBkaWVzCisJIyBwcm9wZXJseS4KKwkjCisJIyBTaW1pbGFybHksIHdlIG11c3Qga2VlcCAib3V0IiBvcGVuIHNvIHRoYXQgY2hlY2staWdub3JlIGRvZXMKKwkjIG5vdCBldmVyIGdldCBTSUdQSVBFIHRyeWluZyB0byB3cml0ZSB0byB1cy4gTm90IG9ubHkgd291bGQgdGhhdAorCSMgcHJvZHVjZSBpbmNvcnJlY3QgcmVzdWx0cywgYnV0IHRoZW4gdGhlcmUgd291bGQgYmUgbm8gd3JpdGVyIG9uIHRoZQorCSMgb3RoZXIgZW5kIG9mIHRoZSBwaXBlLCBhbmQgd2Ugd291bGQgcG90ZW50aWFsbHkgYmxvY2sgZm9yZXZlciB0cnlpbmcKKwkjIHRvIG9wZW4gaXQuCisJZXhlYyA5PmluICYmCisJZXhlYyA4PG91dCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZXhlYyA5PiYtIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZXhlYyA4PCYtIiAmJgorCWVjaG8gPiY5IG9uZSAmJgorCXJlYWQgcmVzcG9uc2UgPCY4ICYmCisJZWNobyAiJHJlc3BvbnNlIiB8IGdyZXAgIl5cLmdpdGlnbm9yZToxOm9uZQlvbmUiICYmCisJZWNobyA+JjkgdHdvICYmCisJcmVhZCByZXNwb25zZSA8JjggJiYKKwllY2hvICIkcmVzcG9uc2UiIHwgZ3JlcCAiXjo6CXR3byIKKycKIAogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QwMDA5LXByaW8tcXVldWUuc2ggYi90L3QwMDA5LXByaW8tcXVldWUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTQwNDVjMwotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAwMDktcHJpby1xdWV1ZS5zaApAQCAtMCwwICsxLDUwIEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nYmFzaWMgdGVzdHMgZm9yIHByaW9yaXR5IHF1ZXVlIGltcGxlbWVudGF0aW9uJworLiAuL3Rlc3QtbGliLnNoCisKK2NhdCA+ZXhwZWN0IDw8J0VPRicKKzEKKzIKKzMKKzQKKzUKKzUKKzYKKzcKKzgKKzkKKzEwCitFT0YKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Jhc2ljIG9yZGVyaW5nJyAnCisJdGVzdC1wcmlvLXF1ZXVlIDIgNiAzIDEwIDkgNSA3IDQgNSA4IDEgZHVtcCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCitjYXQgPmV4cGVjdCA8PCdFT0YnCisyCiszCis0CisxCis1Cis2CitFT0YKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21peGVkIHB1dCBhbmQgZ2V0JyAnCisJdGVzdC1wcmlvLXF1ZXVlIDYgMiA0IGdldCA1IDMgZ2V0IGdldCAxIGR1bXAgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKworY2F0ID5leHBlY3QgPDwnRU9GJworMQorMgorTlVMTAorMQorMgorTlVMTAorRU9GCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdub3RpY2UgZW1wdHkgcXVldWUnICcKKwl0ZXN0LXByaW8tcXVldWUgMSAyIGdldCBnZXQgZ2V0IDEgMiBnZXQgZ2V0IGdldCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDAwMjAtY3JsZi5zaCBiL3QvdDAwMjAtY3JsZi5zaAppbmRleCAxYThmNDRjLi5lNTI2MTg0IDEwMDc1NQotLS0gYS90L3QwMDIwLWNybGYuc2gKKysrIGIvdC90MDAyMC1jcmxmLnNoCkBAIC04MSw2ICs4MSwxNCBAQAogCXRlc3QgJChnaXQgYWRkIGRvdWJsZXdhcm4gMj4mMSB8IGdyZXAgIkNSTEYgd2lsbCBiZSByZXBsYWNlZCBieSBMRiIgfCB3YyAtbCkgPSAxCiAnCiAKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2FmZWNybGY6IGdpdCBkaWZmIGRlbW90ZXMgc2FmZWNybGY9dHJ1ZSB0byB3YXJuJyAnCisJZ2l0IGNvbmZpZyBjb3JlLmF1dG9jcmxmIGlucHV0ICYmCisJZ2l0IGNvbmZpZyBjb3JlLnNhZmVjcmxmIHRydWUgJiYKKwlnaXQgZGlmZiBIRUFECisnCisKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3dpdGNoIG9mZiBhdXRvY3JsZiwgc2FmZWNybGYsIHJlc2V0IEhFQUQnICcKIAlnaXQgY29uZmlnIGNvcmUuYXV0b2NybGYgZmFsc2UgJiYKIAlnaXQgY29uZmlnIGNvcmUuc2FmZWNybGYgZmFsc2UgJiYKZGlmZiAtLWdpdCBhL3QvdDAwMjEtY29udmVyc2lvbi5zaCBiL3QvdDAwMjEtY29udmVyc2lvbi5zaAppbmRleCBlNTBmMGY3Li5iOTJlNmNiIDEwMDc1NQotLS0gYS90L3QwMDIxLWNvbnZlcnNpb24uc2gKKysrIGIvdC90MDAyMS1jb252ZXJzaW9uLnNoCkBAIC0xOTAsNCArMTkwLDE4IEBACiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGFkZCB0ZXN0LmZjCiAnCiAKK3Rlc3QgLW4gIiRHSVRfVEVTVF9MT05HIiAmJiB0ZXN0X3NldF9wcmVyZXEgRVhQRU5TSVZFCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgRVhQRU5TSVZFICdmaWx0ZXIgbGFyZ2UgZmlsZScgJworCWdpdCBjb25maWcgZmlsdGVyLmxhcmdlZmlsZS5zbXVkZ2UgY2F0ICYmCisJZ2l0IGNvbmZpZyBmaWx0ZXIubGFyZ2VmaWxlLmNsZWFuIGNhdCAmJgorCWZvciBpIGluICQodGVzdF9zZXEgMSAyMDQ4KTsgZG8gcHJpbnRmICIlMTA0ODU3NmQiIDE7IGRvbmUgPjJHQiAmJgorCWVjaG8gIjJHQiBmaWx0ZXI9bGFyZ2VmaWxlIiA+LmdpdGF0dHJpYnV0ZXMgJiYKKwlnaXQgYWRkIDJHQiAyPmVyciAmJgorCSEgdGVzdCAtcyBlcnIgJiYKKwlybSAtZiAyR0IgJiYKKwlnaXQgY2hlY2tvdXQgLS0gMkdCIDI+ZXJyICYmCisJISB0ZXN0IC1zIGVycgorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDAwNDAtcGFyc2Utb3B0aW9ucy5zaCBiL3QvdDAwNDAtcGFyc2Utb3B0aW9ucy5zaAppbmRleCAyNDRhNDNjLi42NTYwNmRmIDEwMDc1NQotLS0gYS90L3QwMDQwLXBhcnNlLW9wdGlvbnMuc2gKKysrIGIvdC90MDA0MC1wYXJzZS1vcHRpb25zLnNoCkBAIC01MCw3ICs1MCw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgaGVscCcgJwogCXRlc3RfbXVzdF9mYWlsIHRlc3QtcGFyc2Utb3B0aW9ucyAtaCA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTc1LDcgKzc1LDcgQEAKIAlzaGlmdCAmJgogCXNlZCAicy9eJHdoYXQgLiovJHdoYXQgJGV4cGVjdC8iIDxleHBlY3QudGVtcGxhdGUgPmV4cGVjdCAmJgogCXRlc3QtcGFyc2Utb3B0aW9ucyAkKiA+b3V0cHV0IDI+b3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiB9CiAKQEAgLTg2LDcgKzg2LDcgQEAKIAlzaGlmdCAmJgogCXNlZCAicy9eJHdoYXQgLiovJHdoYXQgJGV4cGVjdC8iIDxleHBlY3QudGVtcGxhdGUgPmV4cGVjdCAmJgogCXRlc3QtcGFyc2Utb3B0aW9ucyAkKiA+b3V0cHV0IDI+b3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogfQogCkBAIC05OSw3ICs5OSw3IEBACiAJZXNhYyAmJgogCWNhdCBleHBlY3QuZXJyID4+ZXhwZWN0ICYmCiAJdGVzdF9tdXN0X2ZhaWwgdGVzdC1wYXJzZS1vcHRpb25zICQqID5vdXRwdXQgMj5vdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0LmVycgogfQogCkBAIC0xMTIsNyArMTEyLDcgQEAKIAllc2FjICYmCiAJY2F0IGV4cGVjdC5lcnIgPj5leHBlY3QgJiYKIAl0ZXN0X211c3RfZmFpbCB0ZXN0LXBhcnNlLW9wdGlvbnMgJCogPm91dHB1dCAyPm91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0ICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0LmVycgogfQogCkBAIC0xNDksNyArMTQ5LDcgQEAKIAl0ZXN0LXBhcnNlLW9wdGlvbnMgLXMxMjMgLWIgLWkgMTcyOSAtYiAtdnYgLW4gLUYgbXkuZmlsZSBcCiAJPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVycgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyCiAnCiAKIGNhdCA+IGV4cGVjdCA8PCBFT0YKQEAgLTE2OCw3ICsxNjgsNyBAQAogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLWJvb2xlYW4gLS1pbnRlZ2VyIDE3MjkgLS1ib29sZWFuIC0tc3RyaW5nMj0zMjEgXAogCQktLXZlcmJvc2UgLS12ZXJib3NlIC0tbm8tZHJ5LXJ1biAtLWFiYnJldj0xMCAtLWZpbGUgZmkubGVcCiAJCS0tb2Jzb2xldGUgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTE5OSw3ICsxOTksNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaW50ZXJtaW5nbGVkIGFyZ3VtZW50cycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyBhMSAtLXN0cmluZyAxMjMgYjEgLS1ib29sZWFuIC1qIDEzIC0tIC0tYm9vbGVhbiBcCiAJCT4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCkBAIC0yMTcsMTMgKzIxNywxMyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd1bmFtYmlndW91c2x5IGFiYnJldmlhdGVkIG9wdGlvbicgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLWludCAyIC0tYm9vbGVhbiAtLW5vLWJvID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd1bmFtYmlndW91c2x5IGFiYnJldmlhdGVkIG9wdGlvbiB3aXRoICI9IicgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLWludD0yID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCkBAIC0yNDYsNyArMjQ2LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbm9uIGFtYmlndW91cyBvcHRpb24gKGFmdGVyIHR3byBvcHRpb25zIGl0IGFiYnJldmlhdGVzKScgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLXN0IDEyMyA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKICcKIApAQCAtMjU2LDcgKzI1Niw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RldGVjdCBwb3NzaWJsZSB0eXBvcycgJwogCXRlc3RfbXVzdF9mYWlsIHRlc3QtcGFyc2Utb3B0aW9ucyAtYm9vbGVhbiA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQgJiYKIAl0ZXN0X2NtcCB0eXBvLmVyciBvdXRwdXQuZXJyCiAnCiAKQEAgLTI2Niw3ICsyNjYsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdkZXRlY3QgcG9zc2libGUgdHlwb3MnICcKIAl0ZXN0X211c3RfZmFpbCB0ZXN0LXBhcnNlLW9wdGlvbnMgLWFtYmlndW91cyA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQgJiYKIAl0ZXN0X2NtcCB0eXBvLmVyciBvdXRwdXQuZXJyCiAnCiAKQEAgLTI4NSw3ICsyODUsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdrZWVwIHNvbWUgb3B0aW9ucyBhcyBhcmd1bWVudHMnICcKIAl0ZXN0LXBhcnNlLW9wdGlvbnMgLS1xdXV4ID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLSAgICAgICAgdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogICAgICAgICB0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTMwNSw3ICszMDUsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnT1BUX0RBVEUoKSBhbmQgT1BUX1NFVF9QVFIoKSB3b3JrJyAnCiAJdGVzdC1wYXJzZS1vcHRpb25zIC10ICIxOTcwLTAxLTAxIDAwOjAwOjAxICswMDAwIiAtLWRlZmF1bHQtc3RyaW5nIFwKIAkJZm9vIC1xID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCkBAIC0zMjQsNyArMzI0LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnT1BUX0NBTExCQUNLKCkgYW5kIE9QVF9CSVQoKSB3b3JrJyAnCiAJdGVzdC1wYXJzZS1vcHRpb25zIC0tbGVuZ3RoPWZvdXIgLWIgLTQgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTM1MiwxMyArMzUyLDEzIEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ09QVF9CSVQoKSBhbmQgT1BUX1NFVF9JTlQoKSB3b3JrJyAnCiAJdGVzdC1wYXJzZS1vcHRpb25zIC0tc2V0MjMgLWJiYmJiIC0tbm8tb3I0ID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdPUFRfTkVHQklUKCkgYW5kIE9QVF9TRVRfSU5UKCkgd29yaycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLXNldDIzIC1iYmJiYiAtLW5lZy1vcjQgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTM3NiwxOSArMzc2LDE5IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ09QVF9CSVQoKSB3b3JrcycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtYmIgLS1vcjQgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ09QVF9ORUdCSVQoKSB3b3JrcycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtYmIgLS1uby1uZWctb3I0ID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdPUFRfQ09VTlRVUCgpIHdpdGggUEFSU0VfT1BUX05PREFTSCB3b3JrcycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyArICsgKyArICsgKyA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKICcKIApAQCAtNDA2LDcgKzQwNiw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ09QVF9OVU1CRVJfQ0FMTEJBQ0soKSB3b3JrcycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtMTIzNDUgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTQyNCw3ICs0MjQsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICduZWdhdGlvbiBvZiBPUFRfTk9ORUcgZmxhZ3MgaXMgbm90IGFtYmlndW91cycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLW5vLWFtYmlnID5vdXRwdXQgMj5vdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKICcKIApkaWZmIC0tZ2l0IGEvdC90MDA2MC1wYXRoLXV0aWxzLnNoIGIvdC90MDA2MC1wYXRoLXV0aWxzLnNoCmluZGV4IDA5YTQyYTQuLjNhNDhkZTIgMTAwNzU1Ci0tLSBhL3QvdDAwNjAtcGF0aC11dGlscy5zaAorKysgYi90L3QwMDYwLXBhdGgtdXRpbHMuc2gKQEAgLTgsOCArOCwxNSBAQAogLiAuL3Rlc3QtbGliLnNoCiAKIG5vcm1fcGF0aCgpIHsKKwlleHBlY3RlZD0kKHRlc3QtcGF0aC11dGlscyBtaW5nd19wYXRoICIkMiIpCiAJdGVzdF9leHBlY3Rfc3VjY2VzcyAkMyAibm9ybWFsaXplIHBhdGg6ICQxID0+ICQyIiBcCi0JInRlc3QgXCJcJCh0ZXN0LXBhdGgtdXRpbHMgbm9ybWFsaXplX3BhdGhfY29weSAnJDEnKVwiID0gJyQyJyIKKwkidGVzdCBcIlwkKHRlc3QtcGF0aC11dGlscyBub3JtYWxpemVfcGF0aF9jb3B5ICckMScpXCIgPSAnJGV4cGVjdGVkJyIKK30KKworcmVsYXRpdmVfcGF0aCgpIHsKKwlleHBlY3RlZD0kKHRlc3QtcGF0aC11dGlscyBtaW5nd19wYXRoICIkMyIpCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAkNCAicmVsYXRpdmUgcGF0aDogJDEgJDIgPT4gJDMiIFwKKwkidGVzdCBcIlwkKHRlc3QtcGF0aC11dGlscyByZWxhdGl2ZV9wYXRoICckMScgJyQyJylcIiA9ICckZXhwZWN0ZWQnIgogfQogCiAjIE9uIFdpbmRvd3MsIHdlIGFyZSB1c2luZyBNU1lTJ3MgYmFzaCwgd2hpY2ggbWFuZ2xlcyB0aGUgcGF0aHMuCkBAIC0zNCw4ICs0MSw4IEBACiAJIHRlc3QgXCJcJGFjdHVhbFwiID0gJyRleHBlY3RlZCciCiB9CiAKLSMgQWJzb2x1dGUgcGF0aCB0ZXN0cyBtdXN0IGJlIHNraXBwZWQgb24gV2luZG93cyBiZWNhdXNlIGR1ZSB0byBwYXRoIG1hbmdsaW5nCi0jIHRoZSB0ZXN0IHByb2dyYW0gbmV2ZXIgc2VlcyBhIFBPU0lYLXN0eWxlIGFic29sdXRlIHBhdGgKKyMgU29tZSBhYnNvbHV0ZSBwYXRoIHRlc3RzIHNob3VsZCBiZSBza2lwcGVkIG9uIFdpbmRvd3MgZHVlIHRvIHBhdGggbWFuZ2xpbmcKKyMgb24gUE9TSVgtc3R5bGUgYWJzb2x1dGUgcGF0aHMKIGNhc2UgJCh1bmFtZSAtcykgaW4KICpNSU5HVyopCiAJOzsKQEAgLTY4LDMwICs3NSwzMCBAQAogbm9ybV9wYXRoIGQxLy4uLi9kMiBkMS8uLi4vZDIKIG5vcm1fcGF0aCBkMS8uLi4vLi8uLi9kMiBkMS9kMgogCi1ub3JtX3BhdGggLyAvIFBPU0lYCitub3JtX3BhdGggLyAvCiBub3JtX3BhdGggLy8gLyBQT1NJWAogbm9ybV9wYXRoIC8vLyAvIFBPU0lYCi1ub3JtX3BhdGggLy4gLyBQT1NJWAorbm9ybV9wYXRoIC8uIC8KIG5vcm1fcGF0aCAvLi8gLyBQT1NJWAogbm9ybV9wYXRoIC8uLy4uICsrZmFpbGVkKysgUE9TSVgKLW5vcm1fcGF0aCAvLi4vLiArK2ZhaWxlZCsrIFBPU0lYCitub3JtX3BhdGggLy4uLy4gKytmYWlsZWQrKwogbm9ybV9wYXRoIC8uLy4uLy4vLyArK2ZhaWxlZCsrIFBPU0lYCiBub3JtX3BhdGggL2Rpci8uLiAvIFBPU0lYCiBub3JtX3BhdGggL2Rpci9zdWIvLi4vLi4gLyBQT1NJWAogbm9ybV9wYXRoIC9kaXIvc3ViLy4uLy4uLy4uICsrZmFpbGVkKysgUE9TSVgKLW5vcm1fcGF0aCAvZGlyIC9kaXIgUE9TSVgKLW5vcm1fcGF0aCAvZGlyLy8gL2Rpci8gUE9TSVgKLW5vcm1fcGF0aCAvLi9kaXIgL2RpciBQT1NJWAotbm9ybV9wYXRoIC9kaXIvLiAvZGlyLyBQT1NJWAotbm9ybV9wYXRoIC9kaXIvLy8uLyAvZGlyLyBQT1NJWAotbm9ybV9wYXRoIC9kaXIvL3N1Yi8uLiAvZGlyLyBQT1NJWAotbm9ybV9wYXRoIC9kaXIvc3ViLy4uLyAvZGlyLyBQT1NJWAorbm9ybV9wYXRoIC9kaXIgL2Rpcgorbm9ybV9wYXRoIC9kaXIvLyAvZGlyLworbm9ybV9wYXRoIC8uL2RpciAvZGlyCitub3JtX3BhdGggL2Rpci8uIC9kaXIvCitub3JtX3BhdGggL2Rpci8vLy4vIC9kaXIvCitub3JtX3BhdGggL2Rpci8vc3ViLy4uIC9kaXIvCitub3JtX3BhdGggL2Rpci9zdWIvLi4vIC9kaXIvCiBub3JtX3BhdGggLy9kaXIvc3ViLy4uLy4gL2Rpci8gUE9TSVgKLW5vcm1fcGF0aCAvZGlyL3MxLy4uL3MyLyAvZGlyL3MyLyBQT1NJWAotbm9ybV9wYXRoIC9kMS9zMS8vL3MyLy4uLy8uLi9zMy8gL2QxL3MzLyBQT1NJWAotbm9ybV9wYXRoIC9kMS9zMS8vLi4vczIvLi4vLi4vZDIgL2QyIFBPU0lYCi1ub3JtX3BhdGggL2QxLy4uLi9kMiAvZDEvLi4uL2QyIFBPU0lYCi1ub3JtX3BhdGggL2QxLy4uLi8uLy4uL2QyIC9kMS9kMiBQT1NJWAorbm9ybV9wYXRoIC9kaXIvczEvLi4vczIvIC9kaXIvczIvCitub3JtX3BhdGggL2QxL3MxLy8vczIvLi4vLy4uL3MzLyAvZDEvczMvCitub3JtX3BhdGggL2QxL3MxLy8uLi9zMi8uLi8uLi9kMiAvZDIKK25vcm1fcGF0aCAvZDEvLi4uL2QyIC9kMS8uLi4vZDIKK25vcm1fcGF0aCAvZDEvLi4uLy4vLi4vZDIgL2QxL2QyCiAKIGFuY2VzdG9yIC8gLyAtMQogYW5jZXN0b3IgL2ZvbyAvIDAKQEAgLTE4Myw0ICsxOTAsMzMgQEAKIAl0ZXN0ICIkc3ltIiA9ICIkKHRlc3QtcGF0aC11dGlscyByZWFsX3BhdGggIiRkaXIyL3N5bWwiKSIKICcKIAorcmVsYXRpdmVfcGF0aCAvYS9iL2MvCS9hL2IvCQljLworcmVsYXRpdmVfcGF0aCAvYS9iL2MvCS9hL2IJCWMvCityZWxhdGl2ZV9wYXRoIC9hLy9iLy9jLwkvL2EvYi8vCQljLwlQT1NJWAorcmVsYXRpdmVfcGF0aCAvYS9iCS9hL2IJCS4vCityZWxhdGl2ZV9wYXRoIC9hL2IvCS9hL2IJCS4vCityZWxhdGl2ZV9wYXRoIC9hCS9hL2IJCS4uLworcmVsYXRpdmVfcGF0aCAvCQkvYS9iLwkJLi4vLi4vCityZWxhdGl2ZV9wYXRoIC9hL2MJL2EvYi8JCS4uL2MKK3JlbGF0aXZlX3BhdGggL2EvYwkvYS9iCQkuLi9jCityZWxhdGl2ZV9wYXRoIC94L3kJL2EvYi8JCS4uLy4uL3gveQorcmVsYXRpdmVfcGF0aCAvYS9iCSI8ZW1wdHk+IgkvYS9iCityZWxhdGl2ZV9wYXRoIC9hL2IgCSI8bnVsbD4iCS9hL2IKK3JlbGF0aXZlX3BhdGggYS9iL2MvCWEvYi8JCWMvCityZWxhdGl2ZV9wYXRoIGEvYi9jLwlhL2IJCWMvCityZWxhdGl2ZV9wYXRoIGEvYi8vYwlhLy9iCQljCityZWxhdGl2ZV9wYXRoIGEvYi8JYS9iLwkJLi8KK3JlbGF0aXZlX3BhdGggYS9iLwlhL2IJCS4vCityZWxhdGl2ZV9wYXRoIGEJCWEvYgkJLi4vCityZWxhdGl2ZV9wYXRoIHgveQlhL2IJCS4uLy4uL3gveQorcmVsYXRpdmVfcGF0aCBhL2MJYS9iCQkuLi9jCityZWxhdGl2ZV9wYXRoIGEvYgkiPGVtcHR5PiIJYS9iCityZWxhdGl2ZV9wYXRoIGEvYiAJIjxudWxsPiIJYS9iCityZWxhdGl2ZV9wYXRoICI8ZW1wdHk+IgkvYS9iCQkuLworcmVsYXRpdmVfcGF0aCAiPGVtcHR5PiIJIjxlbXB0eT4iCS4vCityZWxhdGl2ZV9wYXRoICI8ZW1wdHk+IgkiPG51bGw+IgkuLworcmVsYXRpdmVfcGF0aCAiPG51bGw+IgkiPGVtcHR5PiIJLi8KK3JlbGF0aXZlX3BhdGggIjxudWxsPiIJIjxudWxsPiIJLi8KK3JlbGF0aXZlX3BhdGggIjxudWxsPiIJL2EvYgkJLi8KKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QwMDcwLWZ1bmRhbWVudGFsLnNoIGIvdC90MDA3MC1mdW5kYW1lbnRhbC5zaAppbmRleCBkYTJjNTA0Li45ODZiMmE4IDEwMDc1NQotLS0gYS90L3QwMDcwLWZ1bmRhbWVudGFsLnNoCisrKyBiL3QvdDAwNzAtZnVuZGFtZW50YWwuc2gKQEAgLTE3LDcgKzE3LDcgQEAKIAlncmVwICJkb2Vzbm90ZXhpc3QvdGVzdCIgZXJyCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUE9TSVhQRVJNICdta3RlbXAgdG8gdW53cml0YWJsZSBkaXJlY3RvcnkgcHJpbnRzIGZpbGVuYW1lJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFBPU0lYUEVSTSxTQU5JVFkgJ21rdGVtcCB0byB1bndyaXRhYmxlIGRpcmVjdG9yeSBwcmludHMgZmlsZW5hbWUnICcKIAlta2RpciBjYW5ub3R3cml0ZSAmJgogCWNobW9kIC13IGNhbm5vdHdyaXRlICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJjaG1vZCArdyBjYW5ub3R3cml0ZSIgJiYKZGlmZiAtLWdpdCBhL3QvdDAxMDAtcHJldmlvdXMuc2ggYi90L3QwMTAwLXByZXZpb3VzLnNoCmluZGV4IDMxNWI5YjMuLmUwYTY5NDAgMTAwNzU1Ci0tLSBhL3QvdDAxMDAtcHJldmlvdXMuc2gKKysrIGIvdC90MDEwMC1wcmV2aW91cy5zaApAQCAtMjcsNiArMjcsNyBAQAogCXRlc3RfY29tbWl0IEIgJiYKIAlnaXQgY2hlY2tvdXQgQSAmJgogCXRlc3RfY29tbWl0IEMgJiYKKwl0ZXN0X2NvbW1pdCBEICYmCiAJZ2l0IGJyYW5jaCAtZiBtYXN0ZXIgQiAmJgogCWdpdCBicmFuY2ggLWYgb3RoZXIgJiYKIAlnaXQgY2hlY2tvdXQgb3RoZXIgJiYKQEAgLTM1LDE0ICszNiwyNCBAQAogCWdpdCBjYXQtZmlsZSBjb21taXQgSEVBRCB8IGdyZXAgIk1lcmdlIGJyYW5jaCAnXCcnb3RoZXInXCcnIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBAey0xfSB3aGVuIHRoZXJlIGlzIG5vdCBlbm91Z2ggc3dpdGNoZXMgeWV0JyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBAey0xfX4xJyAnCisJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCWdpdCByZXNldCAtLWhhcmQgQiAmJgorCWdpdCBjaGVja291dCBvdGhlciAmJgorCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwlnaXQgbWVyZ2UgQHstMX1+MSAmJgorCWdpdCBjYXQtZmlsZSBjb21taXQgSEVBRCA+YWN0dWFsICYmCisJZ3JlcCAiTWVyZ2UgYnJhbmNoICdcJydvdGhlcidcJyciIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBAey0xMDB9IGJlZm9yZSBjaGVja2luZyBvdXQgdGhhdCBtYW55IGJyYW5jaGVzIHlldCcgJwogCWdpdCByZWZsb2cgZXhwaXJlIC0tZXhwaXJlPW5vdyAmJgogCWdpdCBjaGVja291dCAtZiBtYXN0ZXIgJiYKIAlnaXQgcmVzZXQgLS1oYXJkIEIgJiYKIAlnaXQgYnJhbmNoIC1mIG90aGVyIEMgJiYKIAlnaXQgY2hlY2tvdXQgb3RoZXIgJiYKIAlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCi0JdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIEB7LTEyfQorCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSBAey0xMDB9CiAnCiAKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTAwNC1yZWFkLXRyZWUtbS11LXdmLnNoIGIvdC90MTAwNC1yZWFkLXRyZWUtbS11LXdmLnNoCmluZGV4IGIzYWU3ZDUuLjNlNzJhZmYgMTAwNzU1Ci0tLSBhL3QvdDEwMDQtcmVhZC10cmVlLW0tdS13Zi5zaAorKysgYi90L3QxMDA0LXJlYWQtdHJlZS1tLXUtd2Yuc2gKQEAgLTE1OCw3ICsxNTgsNyBAQAogCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2Z1bm55IHN5bWxpbmsgaW4gd29yayB0cmVlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmdW5ueSBzeW1saW5rIGluIHdvcmsgdHJlZScgJwogCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCAtYiBzeW0tYiBzaWRlLWIgJiYKQEAgLTE3MCwxNSArMTcwLDE0IEBACiAJcm0gLWZyIGEgJiYKIAlnaXQgY2hlY2tvdXQgLWIgc3ltLWEgc2lkZS1hICYmCiAJbWtkaXIgLXAgYSAmJgotCWxuIC1zIC4uL2IgYS9iICYmCi0JZ2l0IGFkZCBhL2IgJiYKKwl0ZXN0X2xuX3NfYWRkIC4uL2IgYS9iICYmCiAJZ2l0IGNvbW1pdCAtbSAid2UgYWRkIGEvYiIgJiYKIAogCXJlYWRfdHJlZV91X211c3Rfc3VjY2VlZCAtbSAtdSBzeW0tYSBzeW0tYSBzeW0tYgogCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MsU0FOSVRZICdmdW5ueSBzeW1saW5rIGluIHdvcmsgdHJlZSwgdW4tdW5saW5rLWFibGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU0FOSVRZICdmdW5ueSBzeW1saW5rIGluIHdvcmsgdHJlZSwgdW4tdW5saW5rLWFibGUnICcKIAogCXJtIC1mciBhIGIgJiYKIAlnaXQgcmVzZXQgLS1oYXJkICYmCmRpZmYgLS1naXQgYS90L3QxMDA2LWNhdC1maWxlLnNoIGIvdC90MTAwNi1jYXQtZmlsZS5zaAppbmRleCA5Y2M1YzZiLi40ZTkxMWZiIDEwMDc1NQotLS0gYS90L3QxMDA2LWNhdC1maWxlLnNoCisrKyBiL3QvdDEwMDYtY2F0LWZpbGUuc2gKQEAgLTM2LDY2ICszNiw0NyBAQAogICAgICcKIAogICAgIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgIlR5cGUgb2YgJHR5cGUgaXMgY29ycmVjdCIgJwotICAgICAgICB0ZXN0ICR0eXBlID0gIiQoZ2l0IGNhdC1maWxlIC10ICRzaGExKSIKKwllY2hvICR0eXBlID5leHBlY3QgJiYKKwlnaXQgY2F0LWZpbGUgLXQgJHNoYTEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICAgICAnCiAKICAgICB0ZXN0X2V4cGVjdF9zdWNjZXNzICJTaXplIG9mICR0eXBlIGlzIGNvcnJlY3QiICcKLSAgICAgICAgdGVzdCAkc2l6ZSA9ICIkKGdpdCBjYXQtZmlsZSAtcyAkc2hhMSkiCisJZWNobyAkc2l6ZSA+ZXhwZWN0ICYmCisJZ2l0IGNhdC1maWxlIC1zICRzaGExID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAgICAgJwogCiAgICAgdGVzdCAteiAiJGNvbnRlbnQiIHx8CiAgICAgdGVzdF9leHBlY3Rfc3VjY2VzcyAiQ29udGVudCBvZiAkdHlwZSBpcyBjb3JyZWN0IiAnCi0JZXhwZWN0PSIkKG1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiRjb250ZW50IiAkbm9fdHMpIgotCWFjdHVhbD0iJChtYXliZV9yZW1vdmVfdGltZXN0YW1wICIkKGdpdCBjYXQtZmlsZSAkdHlwZSAkc2hhMSkiICRub190cykiCi0KLSAgICAgICAgaWYgdGVzdCAieiRleHBlY3QiID0gInokYWN0dWFsIgotCXRoZW4KLQkJOiBoYXBweQotCWVsc2UKLQkJZWNobyAiT29wczogZXhwZWN0ZWQgJGV4cGVjdCIKLQkJZWNobyAiYnV0IGdvdCAkYWN0dWFsIgotCQlmYWxzZQotICAgICAgICBmaQorCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiRjb250ZW50IiAkbm9fdHMgPmV4cGVjdCAmJgorCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiQoZ2l0IGNhdC1maWxlICR0eXBlICRzaGExKSIgJG5vX3RzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAgICAgJwogCiAgICAgdGVzdF9leHBlY3Rfc3VjY2VzcyAiUHJldHR5IGNvbnRlbnQgb2YgJHR5cGUgaXMgY29ycmVjdCIgJwotCWV4cGVjdD0iJChtYXliZV9yZW1vdmVfdGltZXN0YW1wICIkcHJldHR5X2NvbnRlbnQiICRub190cykiCi0JYWN0dWFsPSIkKG1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiQoZ2l0IGNhdC1maWxlIC1wICRzaGExKSIgJG5vX3RzKSIKLSAgICAgICAgaWYgdGVzdCAieiRleHBlY3QiID0gInokYWN0dWFsIgotCXRoZW4KLQkJOiBoYXBweQotCWVsc2UKLQkJZWNobyAiT29wczogZXhwZWN0ZWQgJGV4cGVjdCIKLQkJZWNobyAiYnV0IGdvdCAkYWN0dWFsIgotCQlmYWxzZQotICAgICAgICBmaQorCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiRwcmV0dHlfY29udGVudCIgJG5vX3RzID5leHBlY3QgJiYKKwltYXliZV9yZW1vdmVfdGltZXN0YW1wICIkKGdpdCBjYXQtZmlsZSAtcCAkc2hhMSkiICRub190cyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogICAgICcKIAogICAgIHRlc3QgLXogIiRjb250ZW50IiB8fAogICAgIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgIi0tYmF0Y2ggb3V0cHV0IG9mICR0eXBlIGlzIGNvcnJlY3QiICcKLQlleHBlY3Q9IiQobWF5YmVfcmVtb3ZlX3RpbWVzdGFtcCAiJGJhdGNoX291dHB1dCIgJG5vX3RzKSIKLQlhY3R1YWw9IiQobWF5YmVfcmVtb3ZlX3RpbWVzdGFtcCAiJChlY2hvICRzaGExIHwgZ2l0IGNhdC1maWxlIC0tYmF0Y2gpIiAkbm9fdHMpIgotICAgICAgICBpZiB0ZXN0ICJ6JGV4cGVjdCIgPSAieiRhY3R1YWwiCi0JdGhlbgotCQk6IGhhcHB5Ci0JZWxzZQotCQllY2hvICJPb3BzOiBleHBlY3RlZCAkZXhwZWN0IgotCQllY2hvICJidXQgZ290ICRhY3R1YWwiCi0JCWZhbHNlCi0gICAgICAgIGZpCisJbWF5YmVfcmVtb3ZlX3RpbWVzdGFtcCAiJGJhdGNoX291dHB1dCIgJG5vX3RzID5leHBlY3QgJiYKKwltYXliZV9yZW1vdmVfdGltZXN0YW1wICIkKGVjaG8gJHNoYTEgfCBnaXQgY2F0LWZpbGUgLS1iYXRjaCkiICRub190cyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogICAgICcKIAogICAgIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgIi0tYmF0Y2gtY2hlY2sgb3V0cHV0IG9mICR0eXBlIGlzIGNvcnJlY3QiICcKLQlleHBlY3Q9IiRzaGExICR0eXBlICRzaXplIgotCWFjdHVhbD0iJChlY2hvX3dpdGhvdXRfbmV3bGluZSAkc2hhMSB8IGdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrKSIKLSAgICAgICAgaWYgdGVzdCAieiRleHBlY3QiID0gInokYWN0dWFsIgotCXRoZW4KLQkJOiBoYXBweQotCWVsc2UKLQkJZWNobyAiT29wczogZXhwZWN0ZWQgJGV4cGVjdCIKLQkJZWNobyAiYnV0IGdvdCAkYWN0dWFsIgotCQlmYWxzZQotICAgICAgICBmaQorCWVjaG8gIiRzaGExICR0eXBlICRzaXplIiA+ZXhwZWN0ICYmCisJZWNob193aXRob3V0X25ld2xpbmUgJHNoYTEgfCBnaXQgY2F0LWZpbGUgLS1iYXRjaC1jaGVjayA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorICAgICcKKworICAgIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgImN1c3RvbSAtLWJhdGNoLWNoZWNrIGZvcm1hdCIgJworCWVjaG8gIiR0eXBlICRzaGExIiA+ZXhwZWN0ICYmCisJZWNobyAkc2hhMSB8IGdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrPSIlKG9iamVjdHR5cGUpICUob2JqZWN0bmFtZSkiID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAgICAgJwogfQogCmRpZmYgLS1naXQgYS90L3QxMzA3LWNvbmZpZy1ibG9iLnNoIGIvdC90MTMwNy1jb25maWctYmxvYi5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZGMyNTdlCi0tLSAvZGV2L251bGwKKysrIGIvdC90MTMwNy1jb25maWctYmxvYi5zaApAQCAtMCwwICsxLDcwIEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nc3VwcG9ydCBmb3IgcmVhZGluZyBjb25maWcgZnJvbSBhIGJsb2InCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY3JlYXRlIGNvbmZpZyBibG9iJyAnCisJY2F0ID5jb25maWcgPDwtXEVPRiAmJgorCVtzb21lXQorCQl2YWx1ZSA9IDEKKwlFT0YKKwlnaXQgYWRkIGNvbmZpZyAmJgorCWdpdCBjb21taXQgLW0gZm9vCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2xpc3QgY29uZmlnIGJsb2IgY29udGVudHMnICcKKwllY2hvIHNvbWUudmFsdWU9MSA+ZXhwZWN0ICYmCisJZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgLS1saXN0ID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIHZhbHVlIGZyb20gYmxvYicgJworCWVjaG8gdHJ1ZSA+ZXhwZWN0ICYmCisJZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgLS1ib29sIHNvbWUudmFsdWUgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVhZGluZyBub24tZXhpc3RpbmcgdmFsdWUgZnJvbSBibG9iIGlzIGFuIGVycm9yJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgbm9uLmV4aXN0aW5nCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYWRpbmcgZnJvbSBibG9iIGFuZCBmaWxlIGlzIGFuIGVycm9yJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgLS1zeXN0ZW0gLS1saXN0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYWRpbmcgZnJvbSBtaXNzaW5nIHJlZiBpcyBhbiBlcnJvcicgJworCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgLS1ibG9iPUhFQUQ6ZG9lc25vdGV4aXN0IC0tbGlzdAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWFkaW5nIGZyb20gbm9uLWJsb2IgaXMgYW4gZXJyb3InICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC0tYmxvYj1IRUFEIC0tbGlzdAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR0aW5nIGEgdmFsdWUgaW4gYSBibG9iIGlzIGFuIGVycm9yJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgc29tZS52YWx1ZSBmb28KKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGVsZXRpbmcgYSB2YWx1ZSBpbiBhIGJsb2IgaXMgYW4gZXJyb3InICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC0tYmxvYj1IRUFEOmNvbmZpZyAtLXVuc2V0IHNvbWUudmFsdWUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZWRpdGluZyBhIGJsb2IgaXMgYW4gZXJyb3InICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC0tYmxvYj1IRUFEOmNvbmZpZyAtLWVkaXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncGFyc2UgZXJyb3JzIGluIGJsb2JzIGFyZSBwcm9wZXJseSBhdHRyaWJ1dGVkJyAnCisJY2F0ID5jb25maWcgPDwtXEVPRiAmJgorCVtzb21lXQorCQl2YWx1ZSA9ICIKKwlFT0YKKwlnaXQgYWRkIGNvbmZpZyAmJgorCWdpdCBjb21taXQgLW0gYnJva2VuICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC0tYmxvYj1IRUFEOmNvbmZpZyBzb21lLnZhbHVlIDI+ZXJyICYmCisKKwkjIGp1c3QgZ3JlcCBmb3Igb3VyIHRva2VuIGFzIHRoZSBleGFjdCBlcnJvciBtZXNzYWdlIGlzIGxpa2VseSB0bworCSMgY2hhbmdlIG9yIGJlIGludGVybmF0aW9uYWxpemVkCisJZ3JlcCAiSEVBRDpjb25maWciIGVycgorJworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDE0MDMtc2hvdy1yZWYuc2ggYi90L3QxNDAzLXNob3ctcmVmLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlNTAwZWQKLS0tIC9kZXYvbnVsbAorKysgYi90L3QxNDAzLXNob3ctcmVmLnNoCkBAIC0wLDAgKzEsMTY3IEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nc2hvdy1yZWYnCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCisJdGVzdF9jb21taXQgQSAmJgorCWdpdCB0YWcgLWYgLWEgLW0gImFubm90YXRlZCBBIiBBICYmCisJZ2l0IGNoZWNrb3V0IC1iIHNpZGUgJiYKKwl0ZXN0X2NvbW1pdCBCICYmCisJZ2l0IHRhZyAtZiAtYSAtbSAiYW5ub3RhdGVkIEIiIEIgJiYKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF9jb21taXQgQyAmJgorCWdpdCBicmFuY2ggQiBBXjAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hvdy1yZWYnICcKKwllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQSkgcmVmcy90YWdzL0EgPmV4cGVjdCAmJgorCisJZ2l0IHNob3ctcmVmIEEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCWdpdCBzaG93LXJlZiB0YWdzL0EgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCWdpdCBzaG93LXJlZiByZWZzL3RhZ3MvQSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJPmV4cGVjdCAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHNob3ctcmVmIEQgPmFjdHVhbAorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hvdy1yZWYgLXEnICcKKwk+ZXhwZWN0ICYmCisKKwlnaXQgc2hvdy1yZWYgLXEgQSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJZ2l0IHNob3ctcmVmIC1xIHRhZ3MvQSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJZ2l0IHNob3ctcmVmIC1xIHJlZnMvdGFncy9BID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLXEgRCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG93LXJlZiAtLXZlcmlmeScgJworCWVjaG8gJChnaXQgcmV2LXBhcnNlIHJlZnMvdGFncy9BKSByZWZzL3RhZ3MvQSA+ZXhwZWN0ICYmCisKKwlnaXQgc2hvdy1yZWYgLS12ZXJpZnkgcmVmcy90YWdzL0EgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCT5leHBlY3QgJiYKKworCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiAtLXZlcmlmeSBBID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLS12ZXJpZnkgdGFncy9BID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLS12ZXJpZnkgRCA+YWN0dWFsCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG93LXJlZiAtLXZlcmlmeSAtcScgJworCT5leHBlY3QgJiYKKworCWdpdCBzaG93LXJlZiAtLXZlcmlmeSAtcSByZWZzL3RhZ3MvQSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHNob3ctcmVmIC0tdmVyaWZ5IC1xIEEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiAtLXZlcmlmeSAtcSB0YWdzL0EgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiAtLXZlcmlmeSAtcSBEID5hY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3ctcmVmIC1kJyAnCisJeworCQllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQSkgcmVmcy90YWdzL0EgJiYKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy90YWdzL0FeMCkgInJlZnMvdGFncy9BXnt9IgorCQllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQykgcmVmcy90YWdzL0MKKwl9ID5leHBlY3QgJiYKKwlnaXQgc2hvdy1yZWYgLWQgQSBDID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwlnaXQgc2hvdy1yZWYgLWQgdGFncy9BIHRhZ3MvQyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJZ2l0IHNob3ctcmVmIC1kIHJlZnMvdGFncy9BIHJlZnMvdGFncy9DID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL2hlYWRzL21hc3RlcikgcmVmcy9oZWFkcy9tYXN0ZXIgPmV4cGVjdCAmJgorCWdpdCBzaG93LXJlZiAtZCBtYXN0ZXIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCWdpdCBzaG93LXJlZiAtZCBoZWFkcy9tYXN0ZXIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCWdpdCBzaG93LXJlZiAtZCByZWZzL2hlYWRzL21hc3RlciA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCisJZ2l0IHNob3ctcmVmIC1kIC0tdmVyaWZ5IHJlZnMvaGVhZHMvbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisKKwk+ZXhwZWN0ICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLWQgLS12ZXJpZnkgbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLWQgLS12ZXJpZnkgaGVhZHMvbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hvdy1yZWYgLS1oZWFkcywgLS10YWdzLCAtLWhlYWQsIHBhdHRlcm4nICcKKwlmb3IgYnJhbmNoIGluIEIgbWFzdGVyIHNpZGUKKwlkbworCQllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL2hlYWRzLyRicmFuY2gpIHJlZnMvaGVhZHMvJGJyYW5jaAorCWRvbmUgPmV4cGVjdC5oZWFkcyAmJgorCWdpdCBzaG93LXJlZiAtLWhlYWRzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QuaGVhZHMgYWN0dWFsICYmCisKKwlmb3IgdGFnIGluIEEgQiBDCisJZG8KKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy90YWdzLyR0YWcpIHJlZnMvdGFncy8kdGFnCisJZG9uZSA+ZXhwZWN0LnRhZ3MgJiYKKwlnaXQgc2hvdy1yZWYgLS10YWdzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QudGFncyBhY3R1YWwgJiYKKworCWNhdCBleHBlY3QuaGVhZHMgZXhwZWN0LnRhZ3MgPmV4cGVjdCAmJgorCWdpdCBzaG93LXJlZiAtLWhlYWRzIC0tdGFncyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJeworCQllY2hvICQoZ2l0IHJldi1wYXJzZSBIRUFEKSBIRUFEICYmCisJCWNhdCBleHBlY3QuaGVhZHMgZXhwZWN0LnRhZ3MKKwl9ID5leHBlY3QgJiYKKwlnaXQgc2hvdy1yZWYgLS1oZWFkcyAtLXRhZ3MgLS1oZWFkID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl7CisJCWVjaG8gJChnaXQgcmV2LXBhcnNlIEhFQUQpIEhFQUQgJiYKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy9oZWFkcy9CKSByZWZzL2hlYWRzL0IKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy90YWdzL0IpIHJlZnMvdGFncy9CCisJfSA+ZXhwZWN0ICYmCisJZ2l0IHNob3ctcmVmIC0taGVhZCBCID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl7CisJCWVjaG8gJChnaXQgcmV2LXBhcnNlIEhFQUQpIEhFQUQgJiYKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy9oZWFkcy9CKSByZWZzL2hlYWRzL0IKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy90YWdzL0IpIHJlZnMvdGFncy9CCisJCWVjaG8gJChnaXQgcmV2LXBhcnNlIHJlZnMvdGFncy9CXjApICJyZWZzL3RhZ3MvQl57fSIKKwl9ID5leHBlY3QgJiYKKwlnaXQgc2hvdy1yZWYgLS1oZWFkIC1kIEIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QxNDExLXJlZmxvZy1zaG93LnNoIGIvdC90MTQxMS1yZWZsb2ctc2hvdy5zaAppbmRleCA5YTEwNWZlLi42ZjQ3YzBkIDEwMDc1NQotLS0gYS90L3QxNDExLXJlZmxvZy1zaG93LnNoCisrKyBiL3QvdDE0MTEtcmVmbG9nLXNob3cuc2gKQEAgLTE0NCw0ICsxNDQsMjYgQEAKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKKyMgVGhpcyBndWFyZHMgYWdhaW5zdCB0aGUgYWx0ZXJuYXRpdmUgb2Ygc2hvd2luZyB0aGUgZGlmZnMgdnMuIHRoZQorIyByZWZsb2cgYW5jZXN0b3IuICBUaGUgcmVmbG9nIHVzZWQgaXMgZGVzaWduZWQgdG8gbGlzdCB0aGUgY29tbWl0cworIyBtb3JlIHRoYW4gb25jZSwgc28gYXMgdG8gZXhlcmNpc2UgdGhlIGNvcnJlc3BvbmRpbmcgbG9naWMuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbG9nIC1nIC1wIHNob3dzIGRpZmZzIHZzLiBwYXJlbnRzJyAnCisJdGVzdF9jb21taXQgdHdvICYmCisJZ2l0IGJyYW5jaCBmbGlwZmxvcCAmJgorCWdpdCB1cGRhdGUtcmVmIHJlZnMvaGVhZHMvZmxpcGZsb3AgLW0gZmxpcDEgSEVBRF4gJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL2hlYWRzL2ZsaXBmbG9wIC1tIGZsb3AxIEhFQUQgJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL2hlYWRzL2ZsaXBmbG9wIC1tIGZsaXAyIEhFQUReICYmCisJZ2l0IGxvZyAtZyAtcCBmbGlwZmxvcCA+cmVmbG9nICYmCisJZ3JlcCAtdiBeUmVmbG9nIHJlZmxvZyA+YWN0dWFsICYmCisJZ2l0IGxvZyAtMSAtcCBIRUFEXiA+bG9nLm9uZSAmJgorCWdpdCBsb2cgLTEgLXAgSEVBRCA+bG9nLnR3byAmJgorCSgKKwkJY2F0IGxvZy5vbmU7IGVjaG8KKwkJY2F0IGxvZy50d287IGVjaG8KKwkJY2F0IGxvZy5vbmU7IGVjaG8KKwkJY2F0IGxvZy50d28KKwkpID5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTUwNy1yZXYtcGFyc2UtdXBzdHJlYW0uc2ggYi90L3QxNTA3LXJldi1wYXJzZS11cHN0cmVhbS5zaAppbmRleCBiMjdhNzIwLi4yYTE5ZTc5IDEwMDc1NQotLS0gYS90L3QxNTA3LXJldi1wYXJzZS11cHN0cmVhbS5zaAorKysgYi90L3QxNTA3LXJldi1wYXJzZS11cHN0cmVhbS5zaApAQCAtMTI5LDggKzEyOSw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JyYW5jaEB7dX0gZXJyb3IgbWVzc2FnZSB3aGVuIG5vIHVwc3RyZWFtJyAnCiAJY2F0ID5leHBlY3QgPDwtRU9GICYmCi0JZXJyb3I6IE5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAke3NxfW5vbi10cmFja2luZyR7c3F9Ci0JZmF0YWw6IE5lZWRlZCBhIHNpbmdsZSByZXZpc2lvbgorCWZhdGFsOiBObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJHtzcX1ub24tdHJhY2tpbmcke3NxfQogCUVPRgogCWVycm9yX21lc3NhZ2Ugbm9uLXRyYWNraW5nQHt1fSAyPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCkBAIC0xMzgsOCArMTM3LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnQHt1fSBlcnJvciBtZXNzYWdlIHdoZW4gbm8gdXBzdHJlYW0nICcKIAljYXQgPmV4cGVjdCA8PC1FT0YgJiYKLQllcnJvcjogTm8gdXBzdHJlYW0gY29uZmlndXJlZCBmb3IgYnJhbmNoICR7c3F9bWFzdGVyJHtzcX0KLQlmYXRhbDogTmVlZGVkIGEgc2luZ2xlIHJldmlzaW9uCisJZmF0YWw6IE5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAke3NxfW1hc3RlciR7c3F9CiAJRU9GCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBAe3V9IDI+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKQEAgLTE0Nyw4ICsxNDUsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdicmFuY2hAe3V9IGVycm9yIG1lc3NhZ2Ugd2l0aCBtaXNzcGVsdCBicmFuY2gnICcKIAljYXQgPmV4cGVjdCA8PC1FT0YgJiYKLQllcnJvcjogTm8gc3VjaCBicmFuY2g6ICR7c3F9bm8tc3VjaC1icmFuY2gke3NxfQotCWZhdGFsOiBOZWVkZWQgYSBzaW5nbGUgcmV2aXNpb24KKwlmYXRhbDogTm8gc3VjaCBicmFuY2g6ICR7c3F9bm8tc3VjaC1icmFuY2gke3NxfQogCUVPRgogCWVycm9yX21lc3NhZ2Ugbm8tc3VjaC1icmFuY2hAe3V9IDI+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKQEAgLTE1Niw4ICsxNTMsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdAe3V9IGVycm9yIG1lc3NhZ2Ugd2hlbiBub3Qgb24gYSBicmFuY2gnICcKIAljYXQgPmV4cGVjdCA8PC1FT0YgJiYKLQllcnJvcjogSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaAotCWZhdGFsOiBOZWVkZWQgYSBzaW5nbGUgcmV2aXNpb24KKwlmYXRhbDogSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaAogCUVPRgogCWdpdCBjaGVja291dCBIRUFEXjAgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEB7dX0gMj5hY3R1YWwgJiYKQEAgLTE2Niw4ICsxNjIsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdicmFuY2hAe3V9IGVycm9yIG1lc3NhZ2UgaWYgdXBzdHJlYW0gYnJhbmNoIG5vdCBmZXRjaGVkJyAnCiAJY2F0ID5leHBlY3QgPDwtRU9GICYmCi0JZXJyb3I6IFVwc3RyZWFtIGJyYW5jaCAke3NxfXJlZnMvaGVhZHMvc2lkZSR7c3F9IG5vdCBzdG9yZWQgYXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoCi0JZmF0YWw6IE5lZWRlZCBhIHNpbmdsZSByZXZpc2lvbgorCWZhdGFsOiBVcHN0cmVhbSBicmFuY2ggJHtzcX1yZWZzL2hlYWRzL3NpZGUke3NxfSBub3Qgc3RvcmVkIGFzIGEgcmVtb3RlLXRyYWNraW5nIGJyYW5jaAogCUVPRgogCWVycm9yX21lc3NhZ2UgYmFkLXVwc3RyZWFtQHt1fSAyPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCmRpZmYgLS1naXQgYS90L3QxNTA4LWF0LWNvbWJpbmF0aW9ucy5zaCBiL3QvdDE1MDgtYXQtY29tYmluYXRpb25zLnNoCmluZGV4IGQ1ZDYyNDQuLmU1YWVhM2IgMTAwNzU1Ci0tLSBhL3QvdDE1MDgtYXQtY29tYmluYXRpb25zLnNoCisrKyBiL3QvdDE1MDgtYXQtY29tYmluYXRpb25zLnNoCkBAIC00LDE3ICs0LDI0IEBACiAuIC4vdGVzdC1saWIuc2gKIAogY2hlY2soKSB7Ci10ZXN0X2V4cGVjdF8kezM6LXN1Y2Nlc3N9ICIkMSA9ICQyIiAiCi0JZWNobyAnJDInID5leHBlY3QgJiYKLQlnaXQgbG9nIC0xIC0tZm9ybWF0PSVzICckMScgPmFjdHVhbCAmJgotCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKLSIKKwl0ZXN0X2V4cGVjdF8kezQ6LXN1Y2Nlc3N9ICIkMSA9ICQzIiAiCisJCWVjaG8gJyQzJyA+ZXhwZWN0ICYmCisJCWlmIHRlc3QgJyQyJyA9ICdjb21taXQnCisJCXRoZW4KKwkJCWdpdCBsb2cgLTEgLS1mb3JtYXQ9JXMgJyQxJyA+YWN0dWFsCisJCWVsc2UKKwkJCWdpdCByZXYtcGFyc2UgLS1zeW1ib2xpYy1mdWxsLW5hbWUgJyQxJyA+YWN0dWFsCisJCWZpICYmCisJCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwkiCiB9CisKIG5vbnNlbnNlKCkgewotdGVzdF9leHBlY3RfJHsyOi1zdWNjZXNzfSAiJDEgaXMgbm9uc2Vuc2ljYWwiICIKLQl0ZXN0X211c3RfZmFpbCBnaXQgbG9nIC0xICckMScKLSIKKwl0ZXN0X2V4cGVjdF8kezI6LXN1Y2Nlc3N9ICIkMSBpcyBub25zZW5zaWNhbCIgIgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5ICckMScKKwkiCiB9CisKIGZhaWwoKSB7CiAJIiRAIiBmYWlsdXJlCiB9CkBAIC0zMSwyMSArMzgsNDAgQEAKIAlnaXQgY2hlY2tvdXQgLWIgbmV3LWJyYW5jaCAmJgogCXRlc3RfY29tbWl0IG5ldy1vbmUgJiYKIAl0ZXN0X2NvbW1pdCBuZXctdHdvICYmCi0JZ2l0IGNvbmZpZyBicmFuY2gub2xkLWJyYW5jaC5yZW1vdGUgLiAmJgotCWdpdCBjb25maWcgYnJhbmNoLm9sZC1icmFuY2gubWVyZ2UgcmVmcy9oZWFkcy9tYXN0ZXIgJiYKLQlnaXQgY29uZmlnIGJyYW5jaC5uZXctYnJhbmNoLnJlbW90ZSAuICYmCi0JZ2l0IGNvbmZpZyBicmFuY2gubmV3LWJyYW5jaC5tZXJnZSByZWZzL2hlYWRzL3Vwc3RyZWFtLWJyYW5jaAorCWdpdCBicmFuY2ggLXUgbWFzdGVyIG9sZC1icmFuY2ggJiYKKwlnaXQgYnJhbmNoIC11IHVwc3RyZWFtLWJyYW5jaCBuZXctYnJhbmNoCiAnCiAKLWNoZWNrIEhFQUQgbmV3LXR3bwotY2hlY2sgIkB7MX0iIG5ldy1vbmUKLWNoZWNrICJAey0xfSIgb2xkLXR3bwotY2hlY2sgIkB7LTF9QHsxfSIgb2xkLW9uZQotY2hlY2sgIkB7dX0iIHVwc3RyZWFtLXR3bwotY2hlY2sgIkB7dX1AezF9IiB1cHN0cmVhbS1vbmUKLWNoZWNrICJAey0xfUB7dX0iIG1hc3Rlci10d28KLWNoZWNrICJAey0xfUB7dX1AezF9IiBtYXN0ZXItb25lCitjaGVjayBIRUFEIHJlZiByZWZzL2hlYWRzL25ldy1icmFuY2gKK2NoZWNrICJAezF9IiBjb21taXQgbmV3LW9uZQorY2hlY2sgIkhFQURAezF9IiBjb21taXQgbmV3LW9uZQorY2hlY2sgIkB7bm93fSIgY29tbWl0IG5ldy10d28KK2NoZWNrICJIRUFEQHtub3d9IiBjb21taXQgbmV3LXR3bworY2hlY2sgIkB7LTF9IiByZWYgcmVmcy9oZWFkcy9vbGQtYnJhbmNoCitjaGVjayAiQHstMX1AezB9IiBjb21taXQgb2xkLXR3bworY2hlY2sgIkB7LTF9QHsxfSIgY29tbWl0IG9sZC1vbmUKK2NoZWNrICJAe3V9IiByZWYgcmVmcy9oZWFkcy91cHN0cmVhbS1icmFuY2gKK2NoZWNrICJIRUFEQHt1fSIgcmVmIHJlZnMvaGVhZHMvdXBzdHJlYW0tYnJhbmNoCitjaGVjayAiQHt1fUB7MX0iIGNvbW1pdCB1cHN0cmVhbS1vbmUKK2NoZWNrICJAey0xfUB7dX0iIHJlZiByZWZzL2hlYWRzL21hc3RlcgorY2hlY2sgIkB7LTF9QHt1fUB7MX0iIGNvbW1pdCBtYXN0ZXItb25lCiBub25zZW5zZSAiQHt1fUB7LTF9Igorbm9uc2Vuc2UgIkB7MH1AezB9Igogbm9uc2Vuc2UgIkB7MX1Ae3V9Igorbm9uc2Vuc2UgIkhFQURAey0xfSIKK25vbnNlbnNlICJAey0xfUB7LTF9IgorCisjIEB7Tn0gdmVyc3VzIEhFQURAe059CisKK2NoZWNrICJIRUFEQHszfSIgY29tbWl0IG9sZC10d28KK25vbnNlbnNlICJAezN9IgorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzd2l0Y2ggdG8gb2xkLWJyYW5jaCcgJworCWdpdCBjaGVja291dCBvbGQtYnJhbmNoCisnCisKK2NoZWNrIEhFQUQgcmVmIHJlZnMvaGVhZHMvb2xkLWJyYW5jaAorY2hlY2sgIkhFQURAezF9IiBjb21taXQgbmV3LXR3bworY2hlY2sgIkB7MX0iIGNvbW1pdCBvbGQtb25lCiAKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTUxMi1yZXYtcGFyc2UtZGlzYW1iaWd1YXRpb24uc2ggYi90L3QxNTEyLXJldi1wYXJzZS1kaXNhbWJpZ3VhdGlvbi5zaAppbmRleCA2YjNkNzk3Li40YTE1NWM4IDEwMDc1NQotLS0gYS90L3QxNTEyLXJldi1wYXJzZS1kaXNhbWJpZ3VhdGlvbi5zaAorKysgYi90L3QxNTEyLXJldi1wYXJzZS1kaXNhbWJpZ3VhdGlvbi5zaApAQCAtNzcsNiArNzcsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaXNhbWJpZ3VhdGUgdHJlZScgJwogCWNvbW1pdD0kKGVjaG8gImQ3eG0iIHwgZ2l0IGNvbW1pdC10cmVlIDAwMDAwMDAwMCkgJiYKKwkjIHRoaXMgY29tbWl0IGlzIGZmZmZmMmUgYW5kIG5vdCBhbWJpZ3VvdXMgd2l0aCB0aGUgMDAwMDAqIG9iamVjdHMKIAl0ZXN0ICQoZ2l0IHJldi1wYXJzZSAkY29tbWl0Xnt0cmVlfSkgPSAkKGdpdCByZXYtcGFyc2UgMDAwMDAwMDAwMGNkYykKICcKIApAQCAtOTksMTAgKzEwMCwxNCBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaXNhbWJpZ3VhdGUgY29tbWl0JyAnCiAJY29tbWl0PSQoZWNobyAiaG9heGoiIHwgZ2l0IGNvbW1pdC10cmVlIDAwMDAwMDAwMDBjZGMgLXAgMDAwMDAwMDAwKSAmJgorCSMgdGhpcyBjb21taXQgaXMgZmZmZmZmZDggYW5kIG5vdCBhbWJpZ3VvdXMgd2l0aCB0aGUgMDAwMDAqIG9iamVjdHMKIAl0ZXN0ICQoZ2l0IHJldi1wYXJzZSAkY29tbWl0XikgPSAkKGdpdCByZXYtcGFyc2UgMDAwMDAwMDAwMGU0ZikKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbG9nIG5hbWUxLi5uYW1lMiB0YWtlcyBvbmx5IGNvbW1pdC1pc2hlcyBvbiBib3RoIGVuZHMnICcKKwkjIFRoZXNlIGFyZSB1bmRlcnNwZWNpZmllZCBmcm9tIHRoZSBwcmVmaXgtbGVuZ3RoIHBvaW50IG9mIHZpZXcKKwkjIHRvIGRpc2FtYmlndWF0ZSB0aGUgY29tbWl0IHdpdGggb3RoZXIgb2JqZWN0cywgYnV0IHRoZXJlIGlzIG9ubHkKKwkjIG9uZSBjb21taXQgdGhhdCBoYXMgMDAwMDAqIHByZWZpeCBhdCB0aGlzIHBvaW50LgogCWdpdCBsb2cgMDAwMDAwMDAwLi4wMDAwMDAwMDAgJiYKIAlnaXQgbG9nIC4uMDAwMDAwMDAwICYmCiAJZ2l0IGxvZyAwMDAwMDAwMDAuLiAmJgpAQCAtMTEyLDE2ICsxMTcsMTkgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmV2LXBhcnNlIG5hbWUxLi5uYW1lMiB0YWtlcyBvbmx5IGNvbW1pdC1pc2hlcyBvbiBib3RoIGVuZHMnICcKKwkjIExpa2V3aXNlLgogCWdpdCByZXYtcGFyc2UgMDAwMDAwMDAwLi4wMDAwMDAwMDAgJiYKIAlnaXQgcmV2LXBhcnNlIC4uMDAwMDAwMDAwICYmCiAJZ2l0IHJldi1wYXJzZSAwMDAwMDAwMDAuLgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbG9nIHRha2VzIG9ubHkgY29tbWl0LWlzaCcgJworCSMgTGlrZXdpc2UuCiAJZ2l0IGxvZyAwMDAwMDAwMDAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHJlc2V0IHRha2VzIG9ubHkgY29tbWl0LWlzaCcgJworCSMgTGlrZXdpc2UuCiAJZ2l0IHJlc2V0IDAwMDAwMDAwMAogJwogCkBAIC0xMzEsMjYgKzEzOSwzMCBAQAogJwogCiB0ZXN0X2V4cGVjdF9mYWlsdXJlICd0d28gc2VtaS1hbWJpZ3VvdXMgY29tbWl0LWlzaCcgJworCSMgQXQgdGhpcyBwb2ludCwgd2UgaGF2ZSBhIHRhZyAwMDAwMDAwMDAwZjhmIHRoYXQgcG9pbnRzCisJIyBhdCBhIGNvbW1pdCAwMDAwMDAwMDAwZTRmLCBhbmQgYSB0cmVlIGFuZCBhIGJsb2IgdGhhdAorCSMgc2hhcmUgMDAwMDAwMDAwMCBwcmVmaXggd2l0aCB0aGVzZSB0YWcgYW5kIGNvbW1pdC4KKwkjCiAJIyBPbmNlIHRoZSBwYXJzZXIgYmVjb21lcyB1bHRyYS1zbWFydCwgaXQgY291bGQgbm90aWNlIHRoYXQKLQkjIDExMDI4MiBiZWZvcmUgXntjb21taXR9IG5hbWUgbWFueSBkaWZmZXJlbnQgb2JqZWN0cywgYnV0CisJIyAwMDAwMDAwMDAwIGJlZm9yZSBee2NvbW1pdH0gbmFtZSBtYW55IGRpZmZlcmVudCBvYmplY3RzLCBidXQKIAkjIHRoYXQgb25seSB0d28gKEhFQUQgYW5kIHYxLjAuMCB0YWcpIGNhbiBiZSBwZWVsZWQgdG8gY29tbWl0LAogCSMgYW5kIHRoYXQgcGVlbGluZyB0aGVtIGRvd24gdG8gY29tbWl0IHlpZWxkIHRoZSBzYW1lIGNvbW1pdAogCSMgd2l0aG91dCBhbWJpZ3VpdHkuCi0JZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAxMTAyODJee2NvbW1pdH0gJiYKKwlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IDAwMDAwMDAwMDBee2NvbW1pdH0gJiYKIAogCSMgbGlrZXdpc2UKLQlnaXQgbG9nIDAwMDAwMDAwMC4uMDAwMDAwMDAwICYmCi0JZ2l0IGxvZyAuLjAwMDAwMDAwMCAmJgotCWdpdCBsb2cgMDAwMDAwMDAwLi4gJiYKLQlnaXQgbG9nIDAwMDAwMDAwMC4uLjAwMDAwMDAwMCAmJgotCWdpdCBsb2cgLi4uMDAwMDAwMDAwICYmCi0JZ2l0IGxvZyAwMDAwMDAwMDAuLi4KKwlnaXQgbG9nIDAwMDAwMDAwMDAuLjAwMDAwMDAwMDAgJiYKKwlnaXQgbG9nIC4uMDAwMDAwMDAwMCAmJgorCWdpdCBsb2cgMDAwMDAwMDAwMC4uICYmCisJZ2l0IGxvZyAwMDAwMDAwMDAwLi4uMDAwMDAwMDAwMCAmJgorCWdpdCBsb2cgLi4uMDAwMDAwMDAwMCAmJgorCWdpdCBsb2cgMDAwMDAwMDAwMC4uLgogJwogCiB0ZXN0X2V4cGVjdF9mYWlsdXJlICd0aHJlZSBzZW1pLWFtYmlndW91cyB0cmVlLWlzaCcgJwogCSMgTGlrZXdpc2UgZm9yIHRyZWUtaXNoLiAgSEVBRCwgdjEuMC4wIGFuZCBIRUFEXnt0cmVlfSBzaGFyZQogCSMgdGhlIHByZWZpeCBidXQgcGVlbGluZyB0aGVtIHRvIHRyZWUgeWllbGRzIHRoZSBzYW1lIHRoaW5nCi0JZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAwMDAwMDAwMDBee3RyZWV9CisJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAwMDAwMDAwMDAwXnt0cmVlfQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwYXJzZSBkZXNjcmliZSBuYW1lJyAnCkBAIC0yNDEsNyArMjUzLDcgQEAKIAkjIE5vdyB0aGVyZSBhcmUgbWFueSBjb21taXRzIHRoYXQgYmVnaW4gd2l0aCB0aGUKIAkjIGNvbW1vbiBwcmVmaXgsIG5vbmUgb2YgdGhlc2Ugc2hvdWxkIHBpY2sgb25lIGF0CiAJIyByYW5kb20uICBUaGV5IGFsbCBzaG91bGQgcmVzdWx0IGluIGFtYmlndWl0eSBlcnJvcnMuCi0JdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAxMTAyODJee2NvbW1pdH0gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IDAwMDAwMDAwXntjb21taXR9ICYmCiAKIAkjIGxpa2V3aXNlCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGxvZyAwMDAwMDAwMDAuLjAwMDAwMDAwMCAmJgpAQCAtMjYxLDQgKzI3MywyMiBAQAogCXRlc3QgIiQoc2VkIC1lICJzL15cKC4uLi4uLi4uLlwpLiovXDEvIiBhY3R1YWwgfCBzb3J0IC11KSIgPSAwMDAwMDAwMDAKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnYW1iaWd1b3VzIDQwLWhleCByZWYnICcKKwlUUkVFPSQoZ2l0IG1rdHJlZSA8L2Rldi9udWxsKSAmJgorCVJFRj1gZ2l0IHJldi1wYXJzZSBIRUFEYCAmJgorCVZBTD0kKGdpdCBjb21taXQtdHJlZSAkVFJFRSA8L2Rldi9udWxsKSAmJgorCWdpdCB1cGRhdGUtcmVmIHJlZnMvaGVhZHMvJFJFRiAkVkFMICYmCisJdGVzdCBgZ2l0IHJldi1wYXJzZSAkUkVGIDI+ZXJyYCA9ICRSRUYgJiYKKwlncmVwICJyZWZuYW1lLioke1JFRn0uKmFtYmlndW91cyIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FtYmlndW91cyBzaG9ydCBzaGExIHJlZicgJworCVRSRUU9JChnaXQgbWt0cmVlIDwvZGV2L251bGwpICYmCisJUkVGPWBnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRGAgJiYKKwlWQUw9JChnaXQgY29tbWl0LXRyZWUgJFRSRUUgPC9kZXYvbnVsbCkgJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL2hlYWRzLyRSRUYgJFZBTCAmJgorCXRlc3QgYGdpdCByZXYtcGFyc2UgJFJFRiAyPmVycmAgPSAkVkFMICYmCisJZ3JlcCAicmVmbmFtZS4qJHtSRUZ9LiphbWJpZ3VvdXMiIGVycgorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDE1MTMtcmV2LXBhcnNlLXByZWZpeC5zaCBiL3QvdDE1MTMtcmV2LXBhcnNlLXByZWZpeC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44N2VjM2FlCi0tLSAvZGV2L251bGwKKysrIGIvdC90MTUxMy1yZXYtcGFyc2UtcHJlZml4LnNoCkBAIC0wLDAgKzEsOTYgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdUZXN0cyBmb3IgcmV2LXBhcnNlIC0tcHJlZml4JworCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKKwlta2RpciAtcCBzdWIxL3N1YjIgJiYKKwllY2hvIHRvcCA+dG9wICYmCisJZWNobyBmaWxlMSA+c3ViMS9maWxlMSAmJgorCWVjaG8gZmlsZTIgPnN1YjEvc3ViMi9maWxlMiAmJgorCWdpdCBhZGQgdG9wIHN1YjEvZmlsZTEgc3ViMS9zdWIyL2ZpbGUyICYmCisJZ2l0IGNvbW1pdCAtbSBjb21taXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZW1wdHkgcHJlZml4IC0tIGZpbGUnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4ICIiIC0tIHRvcCBzdWIxL2ZpbGUxID5hY3R1YWwgJiYKKwljYXQgPDwtXEVPRiA+ZXhwZWN0ZWQgJiYKKwktLQorCXRvcAorCXN1YjEvZmlsZTEKKwlFT0YKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWQgcHJlZml4IC0tIGZpbGUnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIC0tIGZpbGUxIHN1YjIvZmlsZTIgPmFjdHVhbCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCS0tCisJc3ViMS9maWxlMQorCXN1YjEvc3ViMi9maWxlMgorCUVPRgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd2YWxpZCBwcmVmaXggLS0gLi4vZmlsZScgJworCWdpdCByZXYtcGFyc2UgLS1wcmVmaXggc3ViMS8gLS0gLi4vdG9wIHN1YjIvZmlsZTIgPmFjdHVhbCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCS0tCisJc3ViMS8uLi90b3AKKwlzdWIxL3N1YjIvZmlsZTIKKwlFT0YKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZW1wdHkgcHJlZml4IEhFQUQ6Li9wYXRoJyAnCisJZ2l0IHJldi1wYXJzZSAtLXByZWZpeCAiIiBIRUFEOi4vdG9wID5hY3R1YWwgJiYKKwlnaXQgcmV2LXBhcnNlIEhFQUQ6dG9wID5leHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd2YWxpZCBwcmVmaXggSEVBRDouL3BhdGgnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIEhFQUQ6Li9maWxlMSA+YWN0dWFsICYmCisJZ2l0IHJldi1wYXJzZSBIRUFEOnN1YjEvZmlsZTEgPmV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkIHByZWZpeCBIRUFEOi4uL3BhdGgnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIEhFQUQ6Li4vdG9wID5hY3R1YWwgJiYKKwlnaXQgcmV2LXBhcnNlIEhFQUQ6dG9wID5leHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcmVmaXggaWdub3JlZCB3aXRoIEhFQUQ6dG9wJyAnCisJZ2l0IHJldi1wYXJzZSAtLXByZWZpeCBzdWIxLyBIRUFEOnRvcCA+YWN0dWFsICYmCisJZ2l0IHJldi1wYXJzZSBIRUFEOnRvcCA+ZXhwZWN0ZWQgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlzYW1iaWd1YXRlIHBhdGggd2l0aCB2YWxpZCBwcmVmaXgnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIGZpbGUxID5hY3R1YWwgJiYKKwljYXQgPDwtXEVPRiA+ZXhwZWN0ZWQgJiYKKwlzdWIxL2ZpbGUxCisJRU9GCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbGUgYW5kIHJlZnMgd2l0aCBwcmVmaXgnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIG1hc3RlciBmaWxlMSA+YWN0dWFsICYmCisJY2F0IDw8LUVPRiA+ZXhwZWN0ZWQgJiYKKwkkKGdpdCByZXYtcGFyc2UgbWFzdGVyKQorCXN1YjEvZmlsZTEKKwlFT0YKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndHdvLWxldmVscyBkZWVwJyAnCisJZ2l0IHJldi1wYXJzZSAtLXByZWZpeCBzdWIxL3N1YjIvIC0tIGZpbGUyID5hY3R1YWwgJiYKKwljYXQgPDwtXEVPRiA+ZXhwZWN0ZWQgJiYKKwktLQorCXN1YjEvc3ViMi9maWxlMgorCUVPRgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDIwMDEtY2hlY2tvdXQtY2FjaGUtY2xhc2guc2ggYi90L3QyMDAxLWNoZWNrb3V0LWNhY2hlLWNsYXNoLnNoCmluZGV4IDk4YWE3M2UuLjFmYzhlNjMgMTAwNzU1Ci0tLSBhL3QvdDIwMDEtY2hlY2tvdXQtY2FjaGUtY2xhc2guc2gKKysrIGIvdC90MjAwMS1jaGVja291dC1jYWNoZS1jbGFzaC5zaApAQCAtNTksMTAgKzU5LDkgQEAKICAgICAnZ2l0IHJlYWQtdHJlZSAtbSAkdHJlZTEgJiYgZ2l0IGNoZWNrb3V0LWluZGV4IC1mIC1hJwogdGVzdF9kZWJ1ZyAnc2hvd19maWxlcyAkdHJlZTEnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAotICAgICdnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGEgc3ltbGluay4nIFwKLSAgICAnbG4gLXMgcGF0aDAgcGF0aDEgJiYKLSAgICAgZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCBwYXRoMScKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgXAorICAgICdhZGQgYSBzeW1saW5rJyBcCisgICAgJ3Rlc3RfbG5fc19hZGQgcGF0aDAgcGF0aDEnCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnd3JpdGluZyB0cmVlIG91dCB3aXRoIGdpdCB3cml0ZS10cmVlJyBcCiAgICAgJ3RyZWUzPSQoZ2l0IHdyaXRlLXRyZWUpJwpkaWZmIC0tZ2l0IGEvdC90MjAwNC1jaGVja291dC1jYWNoZS10ZW1wLnNoIGIvdC90MjAwNC1jaGVja291dC1jYWNoZS10ZW1wLnNoCmluZGV4IDBmNGIyODkuLmYxNzFhNTUgMTAwNzU1Ci0tLSBhL3QvdDIwMDQtY2hlY2tvdXQtY2FjaGUtdGVtcC5zaAorKysgYi90L3QyMDA0LWNoZWNrb3V0LWNhY2hlLXRlbXAuc2gKQEAgLTE5NCwxMSArMTk0LDEwIEBACiAgdGVzdCAkKGNhdCAuLi8kczEpID0gdHJlZTFhc3ViZGlyL3BhdGg1KQogKScKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyBcCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICdjaGVja291dCAtLXRlbXAgc3ltbGluaycgJwogcm0gLWYgcGF0aCogLm1lcmdlXyogb3V0IC5naXQvaW5kZXggJiYKLWxuIC1zIGIgYSAmJgotZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCBhICYmCit0ZXN0X2xuX3NfYWRkIGIgYSAmJgogdDQ9JChnaXQgd3JpdGUtdHJlZSkgJiYKIHJtIC1mIC5naXQvaW5kZXggJiYKIGdpdCByZWFkLXRyZWUgJHQ0ICYmCmRpZmYgLS1naXQgYS90L3QyMDA3LWNoZWNrb3V0LXN5bWxpbmsuc2ggYi90L3QyMDA3LWNoZWNrb3V0LXN5bWxpbmsuc2gKaW5kZXggZTZmNTlmMS4uZmM5YWFkNSAxMDA3NTUKLS0tIGEvdC90MjAwNy1jaGVja291dC1zeW1saW5rLnNoCisrKyBiL3QvdDIwMDctY2hlY2tvdXQtc3ltbGluay5zaApAQCAtNiw3ICs2LDcgQEAKIAogLiAuL3Rlc3QtbGliLnNoCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1Mgc2V0dXAgJwordGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAKIAlta2RpciBmcm90eiAmJgogCWVjaG8gaGVsbG8gPmZyb3R6L2ZpbGZyZSAmJgpAQCAtMjUsMjUgKzI1LDI1IEBACiAKIAlnaXQgcm0gLS1jYWNoZWQgZnJvdHovZmlsZnJlICYmCiAJbXYgZnJvdHogeHl6enkgJiYKLQlsbiAtcyB4eXp6eSBmcm90eiAmJgotCWdpdCBhZGQgeHl6enkvZmlsZnJlIGZyb3R6ICYmCisJdGVzdF9sbl9zX2FkZCB4eXp6eSBmcm90eiAmJgorCWdpdCBhZGQgeHl6enkvZmlsZnJlICYmCiAJdGVzdF90aWNrICYmCiAJZ2l0IGNvbW1pdCAtbSAic2lkZSBtb3ZlcyBmcm90ei8gdG8geHl6enkvIGFuZCBhZGRzIGZyb3R6LT54eXp6eS8iCiAKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc3dpdGNoIGZyb20gc3ltbGluayB0byBkaXInICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N3aXRjaCBmcm9tIHN5bWxpbmsgdG8gZGlyJyAnCiAKIAlnaXQgY2hlY2tvdXQgbWFzdGVyCiAKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnUmVtb3ZlIHRlbXBvcmFyeSBkaXJlY3RvcmllcyAmIHN3aXRjaCB0byBtYXN0ZXInICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1JlbW92ZSB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgJiBzd2l0Y2ggdG8gbWFzdGVyJyAnCiAJcm0gLWZyIGZyb3R6IHh5enp5IG5pdGZvbCAmJgogCWdpdCBjaGVja291dCAtZiBtYXN0ZXIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc3dpdGNoIGZyb20gZGlyIHRvIHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N3aXRjaCBmcm9tIGRpciB0byBzeW1saW5rJyAnCiAKIAlnaXQgY2hlY2tvdXQgc2lkZQogCmRpZmYgLS1naXQgYS90L3QyMDEyLWNoZWNrb3V0LWxhc3Quc2ggYi90L3QyMDEyLWNoZWNrb3V0LWxhc3Quc2gKaW5kZXggYjQ0ZGU5ZC4uZTdiYThjNSAxMDA3NTUKLS0tIGEvdC90MjAxMi1jaGVja291dC1sYXN0LnNoCisrKyBiL3QvdDIwMTItY2hlY2tvdXQtbGFzdC5zaApAQCAtMTE2LDQgKzExNiwzOCBAQAogCXRlc3QgInokKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgSEVBRCkiID0gInokKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgbWFzdGVyXikiCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJjaGVja291dCAtIiB3b3JrcyBhZnRlciBhIHJlYmFzZSBBJyAnCisJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCWdpdCBjaGVja291dCBvdGhlciAmJgorCWdpdCByZWJhc2UgbWFzdGVyICYmCisJZ2l0IGNoZWNrb3V0IC0gJiYKKwl0ZXN0ICJ6JChnaXQgc3ltYm9saWMtcmVmIEhFQUQpIiA9ICJ6cmVmcy9oZWFkcy9tYXN0ZXIiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJjaGVja291dCAtIiB3b3JrcyBhZnRlciBhIHJlYmFzZSBBIEInICcKKwlnaXQgYnJhbmNoIG1vb2RsZSBtYXN0ZXJ+MSAmJgorCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwlnaXQgY2hlY2tvdXQgb3RoZXIgJiYKKwlnaXQgcmViYXNlIG1hc3RlciBtb29kbGUgJiYKKwlnaXQgY2hlY2tvdXQgLSAmJgorCXRlc3QgInokKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkiID0gInpyZWZzL2hlYWRzL21hc3RlciIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnImNoZWNrb3V0IC0iIHdvcmtzIGFmdGVyIGEgcmViYXNlIC1pIEEnICcKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJZ2l0IGNoZWNrb3V0IG90aGVyICYmCisJZ2l0IHJlYmFzZSAtaSBtYXN0ZXIgJiYKKwlnaXQgY2hlY2tvdXQgLSAmJgorCXRlc3QgInokKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkiID0gInpyZWZzL2hlYWRzL21hc3RlciIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnImNoZWNrb3V0IC0iIHdvcmtzIGFmdGVyIGEgcmViYXNlIC1pIEEgQicgJworCWdpdCBicmFuY2ggZm9vZGxlIG1hc3Rlcn4xICYmCisJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCWdpdCBjaGVja291dCBvdGhlciAmJgorCWdpdCByZWJhc2UgbWFzdGVyIGZvb2RsZSAmJgorCWdpdCBjaGVja291dCAtICYmCisJdGVzdCAieiQoZ2l0IHN5bWJvbGljLXJlZiBIRUFEKSIgPSAienJlZnMvaGVhZHMvbWFzdGVyIgorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDIwMjEtY2hlY2tvdXQtb3ZlcndyaXRlLnNoIGIvdC90MjAyMS1jaGVja291dC1vdmVyd3JpdGUuc2gKaW5kZXggNWRhNjNlOS4uYzJhZGE3ZCAxMDA3NTUKLS0tIGEvdC90MjAyMS1jaGVja291dC1vdmVyd3JpdGUuc2gKKysrIGIvdC90MjAyMS1jaGVja291dC1vdmVyd3JpdGUuc2gKQEAgLTI5LDIxICsyOSwyNSBAQAogCXRlc3QgLWYgYS9iCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NyZWF0ZSBhIGNvbW1pdCB3aGVyZSBkaXIgYS9iIGNoYW5nZWQgdG8gc3ltbGluaycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY3JlYXRlIGEgY29tbWl0IHdoZXJlIGRpciBhL2IgY2hhbmdlZCB0byBzeW1saW5rJyAnCiAKIAlybSAtcmYgYS9iICYmCSMgY2xlYW51cCBpZiBwcmV2aW91cyB0ZXN0IGZhaWxlZAogCWdpdCBjaGVja291dCAtZiAtYiBzeW1saW5rIHN0YXJ0ICYmCiAJcm0gLXJmIGEvYiAmJgotCWxuIC1zIGZvbyBhL2IgJiYKIAlnaXQgYWRkIC1BICYmCisJdGVzdF9sbl9zX2FkZCBmb28gYS9iICYmCiAJZ2l0IGNvbW1pdCAtbSAiZGlyIHRvIHN5bWxpbmsiCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NoZWNrb3V0IGNvbW1pdCB3aXRoIGRpciBtdXN0IG5vdCByZW1vdmUgdW50cmFja2VkIGEvYicgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2tvdXQgY29tbWl0IHdpdGggZGlyIG11c3Qgbm90IHJlbW92ZSB1bnRyYWNrZWQgYS9iJyAnCiAKIAlnaXQgcm0gLS1jYWNoZWQgYS9iICYmCiAJZ2l0IGNvbW1pdCAtbSAidW4tdHJhY2sgdGhlIHN5bWxpbmsiICYmCi0JdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IHN0YXJ0ICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IHN0YXJ0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3RoZSBzeW1saW5rIHJlbWFpbmVkJyAnCisKIAl0ZXN0IC1oIGEvYgogJwogCmRpZmYgLS1naXQgYS90L3QyMDI0LWNoZWNrb3V0LWR3aW0uc2ggYi90L3QyMDI0LWNoZWNrb3V0LWR3aW0uc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGVlNTVlNAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDIwMjQtY2hlY2tvdXQtZHdpbS5zaApAQCAtMCwwICsxLDE2NyBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J2NoZWNrb3V0IDxicmFuY2g+CisKK0Vuc3VyZXMgdGhhdCBjaGVja291dCBvbiBhbiB1bmJvcm4gYnJhbmNoIGRvZXMgd2hhdCB0aGUgdXNlciBleHBlY3RzJworCisuIC4vdGVzdC1saWIuc2gKKworIyBJcyB0aGUgY3VycmVudCBicmFuY2ggInJlZnMvaGVhZHMvJDEiPwordGVzdF9icmFuY2ggKCkgeworCXByaW50ZiAiJXNcbiIgInJlZnMvaGVhZHMvJDEiID5leHBlY3QuSEVBRCAmJgorCWdpdCBzeW1ib2xpYy1yZWYgSEVBRCA+YWN0dWFsLkhFQUQgJiYKKwl0ZXN0X2NtcCBleHBlY3QuSEVBRCBhY3R1YWwuSEVBRAorfQorCisjIElzIGJyYW5jaCAicmVmcy9oZWFkcy8kMSIgc2V0IHRvIHB1bGwgZnJvbSAiJDIvJDMiPwordGVzdF9icmFuY2hfdXBzdHJlYW0gKCkgeworCXByaW50ZiAiJXNcbiIgIiQyIiAicmVmcy9oZWFkcy8kMyIgPmV4cGVjdC51cHN0cmVhbSAmJgorCXsKKwkJZ2l0IGNvbmZpZyAiYnJhbmNoLiQxLnJlbW90ZSIgJiYKKwkJZ2l0IGNvbmZpZyAiYnJhbmNoLiQxLm1lcmdlIgorCX0gPmFjdHVhbC51cHN0cmVhbSAmJgorCXRlc3RfY21wIGV4cGVjdC51cHN0cmVhbSBhY3R1YWwudXBzdHJlYW0KK30KKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKKwl0ZXN0X2NvbW1pdCBteV9tYXN0ZXIgJiYKKwlnaXQgaW5pdCByZXBvX2EgJiYKKwkoCisJCWNkIHJlcG9fYSAmJgorCQl0ZXN0X2NvbW1pdCBhX21hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgZm9vICYmCisJCXRlc3RfY29tbWl0IGFfZm9vICYmCisJCWdpdCBjaGVja291dCAtYiBiYXIgJiYKKwkJdGVzdF9jb21taXQgYV9iYXIKKwkpICYmCisJZ2l0IGluaXQgcmVwb19iICYmCisJKAorCQljZCByZXBvX2IgJiYKKwkJdGVzdF9jb21taXQgYl9tYXN0ZXIgJiYKKwkJZ2l0IGNoZWNrb3V0IC1iIGZvbyAmJgorCQl0ZXN0X2NvbW1pdCBiX2ZvbyAmJgorCQlnaXQgY2hlY2tvdXQgLWIgYmF6ICYmCisJCXRlc3RfY29tbWl0IGJfYmF6CisJKSAmJgorCWdpdCByZW1vdGUgYWRkIHJlcG9fYSByZXBvX2EgJiYKKwlnaXQgcmVtb3RlIGFkZCByZXBvX2IgcmVwb19iICYmCisJZ2l0IGNvbmZpZyByZW1vdGUucmVwb19iLmZldGNoIFwKKwkJIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL290aGVyX2IvKiIgJiYKKwlnaXQgZmV0Y2ggLS1hbGwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2tvdXQgb2Ygbm9uLWV4aXN0aW5nIGJyYW5jaCBmYWlscycgJworCWdpdCBjaGVja291dCAtQiBtYXN0ZXIgJiYKKwl0ZXN0X21pZ2h0X2ZhaWwgZ2l0IGJyYW5jaCAtRCB4eXp6eSAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IHh5enp5ICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3h5enp5ICYmCisJdGVzdF9icmFuY2ggbWFzdGVyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrb3V0IG9mIGJyYW5jaCBmcm9tIG11bHRpcGxlIHJlbW90ZXMgZmFpbHMgIzEnICcKKwlnaXQgY2hlY2tvdXQgLUIgbWFzdGVyICYmCisJdGVzdF9taWdodF9mYWlsIGdpdCBicmFuY2ggLUQgZm9vICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgY2hlY2tvdXQgZm9vICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL2ZvbyAmJgorCXRlc3RfYnJhbmNoIG1hc3RlcgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCBvZiBicmFuY2ggZnJvbSBhIHNpbmdsZSByZW1vdGUgc3VjY2VlZHMgIzEnICcKKwlnaXQgY2hlY2tvdXQgLUIgbWFzdGVyICYmCisJdGVzdF9taWdodF9mYWlsIGdpdCBicmFuY2ggLUQgYmFyICYmCisKKwlnaXQgY2hlY2tvdXQgYmFyICYmCisJdGVzdF9icmFuY2ggYmFyICYmCisJdGVzdF9jbXBfcmV2IHJlbW90ZXMvcmVwb19hL2JhciBIRUFEICYmCisJdGVzdF9icmFuY2hfdXBzdHJlYW0gYmFyIHJlcG9fYSBiYXIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2tvdXQgb2YgYnJhbmNoIGZyb20gYSBzaW5nbGUgcmVtb3RlIHN1Y2NlZWRzICMyJyAnCisJZ2l0IGNoZWNrb3V0IC1CIG1hc3RlciAmJgorCXRlc3RfbWlnaHRfZmFpbCBnaXQgYnJhbmNoIC1EIGJheiAmJgorCisJZ2l0IGNoZWNrb3V0IGJheiAmJgorCXRlc3RfYnJhbmNoIGJheiAmJgorCXRlc3RfY21wX3JldiByZW1vdGVzL290aGVyX2IvYmF6IEhFQUQgJiYKKwl0ZXN0X2JyYW5jaF91cHN0cmVhbSBiYXogcmVwb19iIGJhegorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLW5vLWd1ZXNzIHN1cHByZXNzZXMgYnJhbmNoIGF1dG8tdml2aWZpY2F0aW9uJyAnCisJZ2l0IGNoZWNrb3V0IC1CIG1hc3RlciAmJgorCXRlc3RfbWlnaHRfZmFpbCBnaXQgYnJhbmNoIC1EIGJhciAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IC0tbm8tZ3Vlc3MgYmFyICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL2JhciAmJgorCXRlc3RfYnJhbmNoIG1hc3RlcgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBtb3JlIHJlbW90ZXMgd2l0aCB1bmNvbnZlbnRpb25hbCByZWZzcGVjcycgJworCWdpdCBjaGVja291dCAtQiBtYXN0ZXIgJiYKKwlnaXQgaW5pdCByZXBvX2MgJiYKKwkoCisJCWNkIHJlcG9fYyAmJgorCQl0ZXN0X2NvbW1pdCBjX21hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgYmFyICYmCisJCXRlc3RfY29tbWl0IGNfYmFyCisJCWdpdCBjaGVja291dCAtYiBzcGFtICYmCisJCXRlc3RfY29tbWl0IGNfc3BhbQorCSkgJiYKKwlnaXQgaW5pdCByZXBvX2QgJiYKKwkoCisJCWNkIHJlcG9fZCAmJgorCQl0ZXN0X2NvbW1pdCBkX21hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgYmF6ICYmCisJCXRlc3RfY29tbWl0IGZfYmF6CisJCWdpdCBjaGVja291dCAtYiBlZ2dzICYmCisJCXRlc3RfY29tbWl0IGNfZWdncworCSkgJiYKKwlnaXQgcmVtb3RlIGFkZCByZXBvX2MgcmVwb19jICYmCisJZ2l0IGNvbmZpZyByZW1vdGUucmVwb19jLmZldGNoIFwKKwkJIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL2V4dHJhX2Rpci9yZXBvX2MvZXh0cmFfZGlyLyoiICYmCisJZ2l0IHJlbW90ZSBhZGQgcmVwb19kIHJlcG9fZCAmJgorCWdpdCBjb25maWcgcmVtb3RlLnJlcG9fZC5mZXRjaCBcCisJCSIrcmVmcy9oZWFkcy8qOnJlZnMvcmVwb19kLyoiICYmCisJZ2l0IGZldGNoIC0tYWxsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrb3V0IG9mIGJyYW5jaCBmcm9tIG11bHRpcGxlIHJlbW90ZXMgZmFpbHMgIzInICcKKwlnaXQgY2hlY2tvdXQgLUIgbWFzdGVyICYmCisJdGVzdF9taWdodF9mYWlsIGdpdCBicmFuY2ggLUQgYmFyICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgY2hlY2tvdXQgYmFyICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL2JhciAmJgorCXRlc3RfYnJhbmNoIG1hc3RlcgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCBvZiBicmFuY2ggZnJvbSBtdWx0aXBsZSByZW1vdGVzIGZhaWxzICMzJyAnCisJZ2l0IGNoZWNrb3V0IC1CIG1hc3RlciAmJgorCXRlc3RfbWlnaHRfZmFpbCBnaXQgYnJhbmNoIC1EIGJheiAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IGJheiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9iYXogJiYKKwl0ZXN0X2JyYW5jaCBtYXN0ZXIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2tvdXQgb2YgYnJhbmNoIGZyb20gYSBzaW5nbGUgcmVtb3RlIHN1Y2NlZWRzICMzJyAnCisJZ2l0IGNoZWNrb3V0IC1CIG1hc3RlciAmJgorCXRlc3RfbWlnaHRfZmFpbCBnaXQgYnJhbmNoIC1EIHNwYW0gJiYKKworCWdpdCBjaGVja291dCBzcGFtICYmCisJdGVzdF9icmFuY2ggc3BhbSAmJgorCXRlc3RfY21wX3JldiByZWZzL3JlbW90ZXMvZXh0cmFfZGlyL3JlcG9fYy9leHRyYV9kaXIvc3BhbSBIRUFEICYmCisJdGVzdF9icmFuY2hfdXBzdHJlYW0gc3BhbSByZXBvX2Mgc3BhbQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCBvZiBicmFuY2ggZnJvbSBhIHNpbmdsZSByZW1vdGUgc3VjY2VlZHMgIzQnICcKKwlnaXQgY2hlY2tvdXQgLUIgbWFzdGVyICYmCisJdGVzdF9taWdodF9mYWlsIGdpdCBicmFuY2ggLUQgZWdncyAmJgorCisJZ2l0IGNoZWNrb3V0IGVnZ3MgJiYKKwl0ZXN0X2JyYW5jaCBlZ2dzICYmCisJdGVzdF9jbXBfcmV2IHJlZnMvcmVwb19kL2VnZ3MgSEVBRCAmJgorCXRlc3RfYnJhbmNoX3Vwc3RyZWFtIGVnZ3MgcmVwb19kIGVnZ3MKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QyMjAwLWFkZC11cGRhdGUuc2ggYi90L3QyMjAwLWFkZC11cGRhdGUuc2gKaW5kZXggYjJiZDQxOS4uOWJmMmJkZiAxMDA3NTUKLS0tIGEvdC90MjIwMC1hZGQtdXBkYXRlLnNoCisrKyBiL3QvdDIyMDAtYWRkLXVwZGF0ZS5zaApAQCAtOTYsMTEgKzk2LDEwIEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdyZXBsYWNlIGEgZmlsZSB3aXRoIGEgc3ltbGluaycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVwbGFjZSBhIGZpbGUgd2l0aCBhIHN5bWxpbmsnICcKIAogCXJtIGZvbyAmJgotCWxuIC1zIHRvcCBmb28gJiYKLQlnaXQgYWRkIC11IC0tIGZvbworCXRlc3RfbG5fc19hZGQgdG9wIGZvbwogCiAnCiAKZGlmZiAtLWdpdCBhL3QvdDIyMDItYWRkLWFkZHJlbW92ZS5zaCBiL3QvdDIyMDItYWRkLWFkZHJlbW92ZS5zaAppbmRleCA2YTgxNTEwLi5mYzhiNTllIDEwMDc1NQotLS0gYS90L3QyMjAyLWFkZC1hZGRyZW1vdmUuc2gKKysrIGIvdC90MjIwMi1hZGQtYWRkcmVtb3ZlLnNoCkBAIC00MSw0ICs0MSwxNCBAQAogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnSnVzdCAiZ2l0IGFkZCIgaXMgYSBuby1vcCcgJworCWdpdCByZXNldCAtLWhhcmQgJiYKKwllY2hvID53aWxsLXJlbW92ZSAmJgorCT53aWxsLW5vdC1iZS1hZGRlZCAmJgorCWdpdCBhZGQgJiYKKwlnaXQgZGlmZi1pbmRleCAtLW5hbWUtc3RhdHVzIC0tY2FjaGVkIEhFQUQgPmFjdHVhbCAmJgorCT5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MzAwMS1scy1maWxlcy1vdGhlcnMtZXhjbHVkZS5zaCBiL3QvdDMwMDEtbHMtZmlsZXMtb3RoZXJzLWV4Y2x1ZGUuc2gKaW5kZXggNGUzNzM1Zi4uZjA0MjFjMCAxMDA3NTUKLS0tIGEvdC90MzAwMS1scy1maWxlcy1vdGhlcnMtZXhjbHVkZS5zaAorKysgYi90L3QzMDAxLWxzLWZpbGVzLW90aGVycy1leGNsdWRlLnNoCkBAIC0xNzUsNiArMTc1LDI0IEBACiAJZ3JlcCAiXmEuMSIgb3V0cHV0CiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2V4Y2x1ZGVkIGRpcmVjdG9yeSBvdmVycmlkZXMgY29udGVudCBwYXR0ZXJucycgJworCisJZ2l0IGxzLWZpbGVzIC0tb3RoZXJzIC0tZXhjbHVkZT0ib25lIiAtLWV4Y2x1ZGU9IiFvbmUvYS4xIiA+b3V0cHV0ICYmCisJaWYgZ3JlcCAiXm9uZS9hLjEiIG91dHB1dAorCXRoZW4KKwkJZmFsc2UKKwlmaQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICduZWdhdGVkIGRpcmVjdG9yeSBkb2VzbidcJyd0IGFmZmVjdCBjb250ZW50IHBhdHRlcm5zJyAnCisKKwlnaXQgbHMtZmlsZXMgLS1vdGhlcnMgLS1leGNsdWRlPSIhb25lIiAtLWV4Y2x1ZGU9Im9uZS9hLjEiID5vdXRwdXQgJiYKKwlpZiBncmVwICJeb25lL2EuMSIgb3V0cHV0CisJdGhlbgorCQlmYWxzZQorCWZpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N1YmRpcmVjdG9yeSBpZ25vcmUgKHNldHVwKScgJwogCW1rZGlyIC1wIHRvcC9sMS9sMiAmJgogCSgKZGlmZiAtLWdpdCBhL3QvdDMwMTAtbHMtZmlsZXMta2lsbGVkLW1vZGlmaWVkLnNoIGIvdC90MzAxMC1scy1maWxlcy1raWxsZWQtbW9kaWZpZWQuc2gKaW5kZXggOTU2NzFjMi4uZjYxMWQ3OSAxMDA3NTUKLS0tIGEvdC90MzAxMC1scy1maWxlcy1raWxsZWQtbW9kaWZpZWQuc2gKKysrIGIvdC90MzAxMC1scy1maWxlcy1raWxsZWQtbW9kaWZpZWQuc2gKQEAgLTExLDYgKzExLDggQEAKICAgICBwYXRoMSAgICAgICAtIGEgc3ltbGluawogICAgIHBhdGgyL2ZpbGUyIC0gYSBmaWxlIGluIGEgZGlyZWN0b3J5CiAgICAgcGF0aDMvZmlsZTMgLSBhIGZpbGUgaW4gYSBkaXJlY3RvcnkKKyAgICBzdWJtb2QxLwktIGEgc3VibW9kdWxlCisgICAgc3VibW9kMi8JLSBhbm90aGVyIHN1Ym1vZHVsZQogCiBhbmQgdGhlIGZvbGxvd2luZyBvbiB0aGUgZmlsZXN5c3RlbToKIApAQCAtMjEsOSArMjMsMTEgQEAKICAgICBwYXRoNAktIGEgZmlsZQogICAgIHBhdGg1CS0gYSBzeW1saW5rCiAgICAgcGF0aDYvZmlsZTYgLSBhIGZpbGUgaW4gYSBkaXJlY3RvcnkKKyAgICBzdWJtb2QxLwktIGEgc3VibW9kdWxlIChtb2RpZmllZCBmcm9tIHRoZSBjYWNoZSkKKyAgICBzdWJtb2QyLwktIGEgc3VibW9kdWxlIChtYXRjaGVzIHRoZSBjYWNoZSkKIAotZ2l0IGxzLWZpbGVzIC1rIHNob3VsZCByZXBvcnQgdGhhdCBleGlzdGluZyBmaWxlc3lzdGVtCi1vYmplY3RzIGV4Y2VwdCBwYXRoNCwgcGF0aDUgYW5kIHBhdGg2L2ZpbGU2IHRvIGJlIGtpbGxlZC4KK2dpdCBscy1maWxlcyAtayBzaG91bGQgcmVwb3J0IHRoYXQgZXhpc3RpbmcgZmlsZXN5c3RlbSBvYmplY3RzCitwYXRoMC8qLCBwYXRoMS8qLCBwYXRoMiBhbmQgcGF0aDMgdG8gYmUga2lsbGVkLgogCiBBbHNvIGZvciBtb2RpZmljYXRpb24gdGVzdCwgdGhlIGNhY2hlIGFuZCB3b3JraW5nIHRyZWUgaGF2ZToKIApAQCAtMzMsNzUgKzM3LDgyIEBACiAgICAgcGF0aDEwCS0gYSBub24tZW1wdHkgZmlsZSwgY2FjaGUgZGlydGllZC4KIAogV2Ugc2hvdWxkIHJlcG9ydCBwYXRoMCwgcGF0aDEsIHBhdGgyL2ZpbGUyLCBwYXRoMy9maWxlMywgcGF0aDcgYW5kIHBhdGg4Ci1tb2RpZmllZCB3aXRob3V0IHJlcG9ydGluZyBwYXRoOSBhbmQgcGF0aDEwLgorbW9kaWZpZWQgd2l0aG91dCByZXBvcnRpbmcgcGF0aDkgYW5kIHBhdGgxMC4gIHN1Ym1vZDEgaXMgYWxzbyBtb2RpZmllZC4KICcKIC4gLi90ZXN0LWxpYi5zaAogCi1kYXRlID5wYXRoMAotaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUwotdGhlbgotCWxuIC1zIHh5enp5IHBhdGgxCi1lbHNlCi0JZGF0ZSA+IHBhdGgxCi1maQotbWtkaXIgcGF0aDIgcGF0aDMKLWRhdGUgPnBhdGgyL2ZpbGUyCi1kYXRlID5wYXRoMy9maWxlMwotOiA+cGF0aDcKLWRhdGUgPnBhdGg4Ci06ID5wYXRoOQotZGF0ZSA+cGF0aDEwCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCB0byBhZGQgdmFyaW91cyBwYXRocy4nIFwKLSAgICAiZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCAtLSBwYXRoMCBwYXRoMSBwYXRoPy9maWxlPyBwYXRoNyBwYXRoOCBwYXRoOSBwYXRoMTAiCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgdXBkYXRlLWluZGV4IC0tYWRkIHRvIGFkZCB2YXJpb3VzIHBhdGhzLicgJworCWRhdGUgPnBhdGgwICYmCisJdGVzdF9sbl9zX2FkZCB4eXp6eSBwYXRoMSAmJgorCW1rZGlyIHBhdGgyIHBhdGgzICYmCisJZGF0ZSA+cGF0aDIvZmlsZTIgJiYKKwlkYXRlID5wYXRoMy9maWxlMyAmJgorCTogPnBhdGg3ICYmCisJZGF0ZSA+cGF0aDggJiYKKwk6ID5wYXRoOSAmJgorCWRhdGUgPnBhdGgxMCAmJgorCWdpdCB1cGRhdGUtaW5kZXggLS1hZGQgLS0gcGF0aDAgcGF0aD8vZmlsZT8gcGF0aDcgcGF0aDggcGF0aDkgcGF0aDEwICYmCisJZm9yIGkgaW4gMSAyCisJZG8KKwkJZ2l0IGluaXQgc3VibW9kJGkgJiYKKwkJKAorCQkJY2Qgc3VibW9kJGkgJiYgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tICJlbXB0eSAkaSIKKwkJKSB8fCBicmVhaworCWRvbmUgJiYKKwlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIHN1Ym1vZFsxMl0KKwkoCisJCWNkIHN1Ym1vZDEgJiYKKwkJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tICJlbXB0eSAxICh1cGRhdGVkKSIKKwkpICYmCisJcm0gLWZyIHBhdGg/CSMgbGVhdmUgcGF0aDEwIGFsb25lCisnCiAKLXJtIC1mciBwYXRoPyA7IyBsZWF2ZSBwYXRoMTAgYWxvbmUKLWRhdGUgPnBhdGgyCi1pZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTCi10aGVuCi0JbG4gLXMgZnJvdHogcGF0aDMKLQlsbiAtcyBuaXRmb2wgcGF0aDUKLWVsc2UKLQlkYXRlID4gcGF0aDMKLQlkYXRlID4gcGF0aDUKLWZpCi1ta2RpciBwYXRoMCBwYXRoMSBwYXRoNgotZGF0ZSA+cGF0aDAvZmlsZTAKLWRhdGUgPnBhdGgxL2ZpbGUxCi1kYXRlID5wYXRoNi9maWxlNgotZGF0ZSA+cGF0aDcKLTogPnBhdGg4Ci06ID5wYXRoOQotdG91Y2ggcGF0aDEwCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbHMtZmlsZXMgLWsgdG8gc2hvdyBraWxsZWQgZmlsZXMuJyAnCisJZGF0ZSA+cGF0aDIgJiYKKwlpZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTCisJdGhlbgorCQlsbiAtcyBmcm90eiBwYXRoMyAmJgorCQlsbiAtcyBuaXRmb2wgcGF0aDUKKwllbHNlCisJCWRhdGUgPnBhdGgzICYmCisJCWRhdGUgPnBhdGg1CisJZmkgJiYKKwlta2RpciBwYXRoMCBwYXRoMSBwYXRoNiAmJgorCWRhdGUgPnBhdGgwL2ZpbGUwICYmCisJZGF0ZSA+cGF0aDEvZmlsZTEgJiYKKwlkYXRlID5wYXRoNi9maWxlNiAmJgorCWRhdGUgPnBhdGg3ICYmCisJOiA+cGF0aDggJiYKKwk6ID5wYXRoOSAmJgorCXRvdWNoIHBhdGgxMCAmJgorCWdpdCBscy1maWxlcyAtayA+Lm91dHB1dAorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZ2l0IGxzLWZpbGVzIC1rIHRvIHNob3cga2lsbGVkIGZpbGVzLicgXAotICAgICdnaXQgbHMtZmlsZXMgLWsgPi5vdXRwdXQnCi1jYXQgPi5leHBlY3RlZCA8PEVPRgotcGF0aDAvZmlsZTAKLXBhdGgxL2ZpbGUxCi1wYXRoMgotcGF0aDMKLUVPRgordGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgZ2l0IGxzLWZpbGVzIC1rIG91dHB1dC4nICcKKwljYXQgPi5leHBlY3RlZCA8PC1cRU9GICYmCisJcGF0aDAvZmlsZTAKKwlwYXRoMS9maWxlMQorCXBhdGgyCisJcGF0aDMKKwlFT0YKKwl0ZXN0X2NtcCAuZXhwZWN0ZWQgLm91dHB1dAorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAndmFsaWRhdGUgZ2l0IGxzLWZpbGVzIC1rIG91dHB1dC4nIFwKLSAgICAndGVzdF9jbXAgLmV4cGVjdGVkIC5vdXRwdXQnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbHMtZmlsZXMgLW0gdG8gc2hvdyBtb2RpZmllZCBmaWxlcy4nICcKKwlnaXQgbHMtZmlsZXMgLW0gPi5vdXRwdXQKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2dpdCBscy1maWxlcyAtbSB0byBzaG93IG1vZGlmaWVkIGZpbGVzLicgXAotICAgICdnaXQgbHMtZmlsZXMgLW0gPi5vdXRwdXQnCi1jYXQgPi5leHBlY3RlZCA8PEVPRgotcGF0aDAKLXBhdGgxCi1wYXRoMi9maWxlMgotcGF0aDMvZmlsZTMKLXBhdGg3Ci1wYXRoOAotRU9GCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICd2YWxpZGF0ZSBnaXQgbHMtZmlsZXMgLW0gb3V0cHV0LicgXAotICAgICd0ZXN0X2NtcCAuZXhwZWN0ZWQgLm91dHB1dCcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkYXRlIGdpdCBscy1maWxlcyAtbSBvdXRwdXQuJyAnCisJY2F0ID4uZXhwZWN0ZWQgPDwtXEVPRiAmJgorCXBhdGgwCisJcGF0aDEKKwlwYXRoMi9maWxlMgorCXBhdGgzL2ZpbGUzCisJcGF0aDcKKwlwYXRoOAorCXN1Ym1vZDEKKwlFT0YKKwl0ZXN0X2NtcCAuZXhwZWN0ZWQgLm91dHB1dAorJwogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDMwMzAtbWVyZ2UtcmVjdXJzaXZlLnNoIGIvdC90MzAzMC1tZXJnZS1yZWN1cnNpdmUuc2gKaW5kZXggYTVlM2RhNy4uMmY5NjEwMCAxMDA3NTUKLS0tIGEvdC90MzAzMC1tZXJnZS1yZWN1cnNpdmUuc2gKKysrIGIvdC90MzAzMC1tZXJnZS1yZWN1cnNpdmUuc2gKQEAgLTI1LDEwICsyNSw3IEBACiAJZ2l0IGJyYW5jaCBzdWJtb2QgJiYKIAlnaXQgYnJhbmNoIGNvcHkgJiYKIAlnaXQgYnJhbmNoIHJlbmFtZSAmJgotCWlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKLQl0aGVuCi0JCWdpdCBicmFuY2ggcmVuYW1lLWxuCi0JZmkgJiYKKwlnaXQgYnJhbmNoIHJlbmFtZS1sbiAmJgogCiAJZWNobyBoZWxsbyA+PmEgJiYKIAljcCBhIGQvZSAmJgpAQCAtMjYwLDE2ICsyNTcsMTIgQEAKIAlnaXQgYWRkIGUgJiYKIAl0ZXN0X3RpY2sgJiYKIAlnaXQgY29tbWl0IC1tICJyZW5hbWUgYS0+ZSIgJiYKLQlpZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTCi0JdGhlbgotCQlnaXQgY2hlY2tvdXQgcmVuYW1lLWxuICYmCi0JCWdpdCBtdiBhIGUgJiYKLQkJbG4gLXMgZSBhICYmCi0JCWdpdCBhZGQgYSBlICYmCi0JCXRlc3RfdGljayAmJgotCQlnaXQgY29tbWl0IC1tICJyZW5hbWUgYS0+ZSwgc3ltbGluayBhLT5lIiAmJgotCQlvbG49YHByaW50ZiBlIHwgZ2l0IGhhc2gtb2JqZWN0IC0tc3RkaW5gCi0JZmkKKwlnaXQgY2hlY2tvdXQgcmVuYW1lLWxuICYmCisJZ2l0IG12IGEgZSAmJgorCXRlc3RfbG5fc19hZGQgZSBhICYmCisJdGVzdF90aWNrICYmCisJZ2l0IGNvbW1pdCAtbSAicmVuYW1lIGEtPmUsIHN5bWxpbmsgYS0+ZSIgJiYKKwlvbG49YHByaW50ZiBlIHwgZ2l0IGhhc2gtb2JqZWN0IC0tc3RkaW5gCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIDknICcKQEAgLTU2OSwyOCArNTYyLDI1IEBACiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKLWlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKLXRoZW4KLQl0ZXN0X2V4cGVjdF9mYWlsdXJlICdtZXJnZS1yZWN1cnNpdmUgcmVuYW1lIHZzLiByZW5hbWUvc3ltbGluaycgJwordGVzdF9leHBlY3RfZmFpbHVyZSAnbWVyZ2UtcmVjdXJzaXZlIHJlbmFtZSB2cy4gcmVuYW1lL3N5bWxpbmsnICcKIAotCQlnaXQgY2hlY2tvdXQgLWYgcmVuYW1lICYmCi0JCWdpdCBtZXJnZSByZW5hbWUtbG4gJiYKLQkJKCBnaXQgbHMtdHJlZSAtciBIRUFEIDsgZ2l0IGxzLWZpbGVzIC1zICkgPmFjdHVhbCAmJgotCQkoCi0JCQllY2hvICIxMjAwMDAgYmxvYiAkb2xuCWEiCi0JCQllY2hvICIxMDA2NDQgYmxvYiAkbzAJYiIKLQkJCWVjaG8gIjEwMDY0NCBibG9iICRvMAljIgotCQkJZWNobyAiMTAwNjQ0IGJsb2IgJG8wCWQvZSIKLQkJCWVjaG8gIjEwMDY0NCBibG9iICRvMAllIgotCQkJZWNobyAiMTIwMDAwICRvbG4gMAlhIgotCQkJZWNobyAiMTAwNjQ0ICRvMCAwCWIiCi0JCQllY2hvICIxMDA2NDQgJG8wIDAJYyIKLQkJCWVjaG8gIjEwMDY0NCAkbzAgMAlkL2UiCi0JCQllY2hvICIxMDA2NDQgJG8wIDAJZSIKLQkJKSA+ZXhwZWN0ZWQgJiYKLQkJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCi0JJwotZmkKKwlnaXQgY2hlY2tvdXQgLWYgcmVuYW1lICYmCisJZ2l0IG1lcmdlIHJlbmFtZS1sbiAmJgorCSggZ2l0IGxzLXRyZWUgLXIgSEVBRCA7IGdpdCBscy1maWxlcyAtcyApID5hY3R1YWwgJiYKKwkoCisJCWVjaG8gIjEyMDAwMCBibG9iICRvbG4JYSIKKwkJZWNobyAiMTAwNjQ0IGJsb2IgJG8wCWIiCisJCWVjaG8gIjEwMDY0NCBibG9iICRvMAljIgorCQllY2hvICIxMDA2NDQgYmxvYiAkbzAJZC9lIgorCQllY2hvICIxMDA2NDQgYmxvYiAkbzAJZSIKKwkJZWNobyAiMTIwMDAwICRvbG4gMAlhIgorCQllY2hvICIxMDA2NDQgJG8wIDAJYiIKKwkJZWNobyAiMTAwNjQ0ICRvMCAwCWMiCisJCWVjaG8gIjEwMDY0NCAkbzAgMAlkL2UiCisJCWVjaG8gIjEwMDY0NCAkbzAgMAllIgorCSkgPmV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCiAKIAogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzMDMyLW1lcmdlLXJlY3Vyc2l2ZS1vcHRpb25zLnNoIGIvdC90MzAzMi1tZXJnZS1yZWN1cnNpdmUtb3B0aW9ucy5zaAppbmRleCAyYjE3MzExLi41ZmQ3YmJiIDEwMDc1NQotLS0gYS90L3QzMDMyLW1lcmdlLXJlY3Vyc2l2ZS1vcHRpb25zLnNoCisrKyBiL3QvdDMwMzItbWVyZ2UtcmVjdXJzaXZlLW9wdGlvbnMuc2gKQEAgLTE0LDcgKzE0LDcgQEAKIC4gLi90ZXN0LWxpYi5zaAogCiB0ZXN0X2hhdmVfcHJlcmVxIFNFRF9TVFJJUFNfQ1IgJiYgU0VEX09QVElPTlM9LWIKLXRlc3RfaGF2ZV9wcmVyZXEgTUlOR1cgJiYgZXhwb3J0IEdSRVBfT1BUSU9OUz0tVQordGVzdF9oYXZlX3ByZXJlcSBHUkVQX1NUUklQU19DUiAmJiBleHBvcnQgR1JFUF9PUFRJT05TPS1VCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwJyAnCiAJY29uZmxpY3RfaHVua3MgKCkgewpkaWZmIC0tZ2l0IGEvdC90MzA3MC13aWxkbWF0Y2guc2ggYi90L3QzMDcwLXdpbGRtYXRjaC5zaAppbmRleCA0YzM3MDU3Li4zODQ0NmEwIDEwMDc1NQotLS0gYS90L3QzMDcwLXdpbGRtYXRjaC5zaAorKysgYi90L3QzMDcwLXdpbGRtYXRjaC5zaApAQCAtNiwyMCArNiwyMCBAQAogCiBtYXRjaCgpIHsKICAgICBpZiBbICQxID0gMSBdOyB0aGVuCi0JdGVzdF9leHBlY3Rfc3VjY2VzcyAid2lsZG1hdGNoOiAgICBtYXRjaCAnJDMnICckNCciICIKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJ3aWxkbWF0Y2g6ICAgICBtYXRjaCAnJDMnICckNCciICIKIAkgICAgdGVzdC13aWxkbWF0Y2ggd2lsZG1hdGNoICckMycgJyQ0JwogCSIKICAgICBlbHNlCi0JdGVzdF9leHBlY3Rfc3VjY2VzcyAid2lsZG1hdGNoOiBubyBtYXRjaCAnJDMnICckNCciICIKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJ3aWxkbWF0Y2g6ICBubyBtYXRjaCAnJDMnICckNCciICIKIAkgICAgISB0ZXN0LXdpbGRtYXRjaCB3aWxkbWF0Y2ggJyQzJyAnJDQnCiAJIgogICAgIGZpCiAgICAgaWYgWyAkMiA9IDEgXTsgdGhlbgotCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZubWF0Y2g6ICAgICAgbWF0Y2ggJyQzJyAnJDQnIiAiCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiZm5tYXRjaDogICAgICAgbWF0Y2ggJyQzJyAnJDQnIiAiCiAJICAgIHRlc3Qtd2lsZG1hdGNoIGZubWF0Y2ggJyQzJyAnJDQnCiAJIgogICAgIGVsaWYgWyAkMiA9IDAgXTsgdGhlbgotCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZubWF0Y2g6ICAgbm8gbWF0Y2ggJyQzJyAnJDQnIiAiCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiZm5tYXRjaDogICAgbm8gbWF0Y2ggJyQzJyAnJDQnIiAiCiAJICAgICEgdGVzdC13aWxkbWF0Y2ggZm5tYXRjaCAnJDMnICckNCcKIAkiCiAjICAgIGVsc2UKQEAgLTI5LDEzICsyOSwyNSBAQAogICAgIGZpCiB9CiAKK2ltYXRjaCgpIHsKKyAgICBpZiBbICQxID0gMSBdOyB0aGVuCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiaXdpbGRtYXRjaDogICAgbWF0Y2ggJyQyJyAnJDMnIiAiCisJICAgIHRlc3Qtd2lsZG1hdGNoIGl3aWxkbWF0Y2ggJyQyJyAnJDMnCisJIgorICAgIGVsc2UKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJpd2lsZG1hdGNoOiBubyBtYXRjaCAnJDInICckMyciICIKKwkgICAgISB0ZXN0LXdpbGRtYXRjaCBpd2lsZG1hdGNoICckMicgJyQzJworCSIKKyAgICBmaQorfQorCiBwYXRobWF0Y2goKSB7CiAgICAgaWYgWyAkMSA9IDEgXTsgdGhlbgotCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgInBhdGhtYXRjaDogICAgbWF0Y2ggJyQyJyAnJDMnIiAiCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicGF0aG1hdGNoOiAgICAgbWF0Y2ggJyQyJyAnJDMnIiAiCiAJICAgIHRlc3Qtd2lsZG1hdGNoIHBhdGhtYXRjaCAnJDInICckMycKIAkiCiAgICAgZWxzZQotCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgInBhdGhtYXRjaDogbm8gbWF0Y2ggJyQyJyAnJDMnIiAiCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicGF0aG1hdGNoOiAgbm8gbWF0Y2ggJyQyJyAnJDMnIiAiCiAJICAgICEgdGVzdC13aWxkbWF0Y2ggcGF0aG1hdGNoICckMicgJyQzJwogCSIKICAgICBmaQpAQCAtMjM1LDQgKzI0NywzNSBAQAogcGF0aG1hdGNoIDEgYWIvY1hkL2VmWGcvaGkgJyovKlgqLyovKmknCiBwYXRobWF0Y2ggMSBhYi9jWGQvZWZYZy9oaSAnKlhnKmknCiAKKyMgQ2FzZS1zZW5zaXRpdnkgZmVhdHVyZXMKK21hdGNoIDAgeCAnYScgJ1tBLVpdJworbWF0Y2ggMSB4ICdBJyAnW0EtWl0nCittYXRjaCAwIHggJ0EnICdbYS16XScKK21hdGNoIDEgeCAnYScgJ1thLXpdJworbWF0Y2ggMCB4ICdhJyAnW1s6dXBwZXI6XV0nCittYXRjaCAxIHggJ0EnICdbWzp1cHBlcjpdXScKK21hdGNoIDAgeCAnQScgJ1tbOmxvd2VyOl1dJworbWF0Y2ggMSB4ICdhJyAnW1s6bG93ZXI6XV0nCittYXRjaCAwIHggJ0EnICdbQi1aYV0nCittYXRjaCAxIHggJ2EnICdbQi1aYV0nCittYXRjaCAwIHggJ0EnICdbQi1hXScKK21hdGNoIDEgeCAnYScgJ1tCLWFdJworbWF0Y2ggMCB4ICd6JyAnW1oteV0nCittYXRjaCAxIHggJ1onICdbWi15XScKKworaW1hdGNoIDEgJ2EnICdbQS1aXScKK2ltYXRjaCAxICdBJyAnW0EtWl0nCitpbWF0Y2ggMSAnQScgJ1thLXpdJworaW1hdGNoIDEgJ2EnICdbYS16XScKK2ltYXRjaCAxICdhJyAnW1s6dXBwZXI6XV0nCitpbWF0Y2ggMSAnQScgJ1tbOnVwcGVyOl1dJworaW1hdGNoIDEgJ0EnICdbWzpsb3dlcjpdXScKK2ltYXRjaCAxICdhJyAnW1s6bG93ZXI6XV0nCitpbWF0Y2ggMSAnQScgJ1tCLVphXScKK2ltYXRjaCAxICdhJyAnW0ItWmFdJworaW1hdGNoIDEgJ0EnICdbQi1hXScKK2ltYXRjaCAxICdhJyAnW0ItYV0nCitpbWF0Y2ggMSAneicgJ1taLXldJworaW1hdGNoIDEgJ1onICdbWi15XScKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzMTAwLWxzLXRyZWUtcmVzdHJpY3Quc2ggYi90L3QzMTAwLWxzLXRyZWUtcmVzdHJpY3Quc2gKaW5kZXggODFkOTBiNi4uZWI3M2MwNiAxMDA3NTUKLS0tIGEvdC90MzEwMC1scy10cmVlLXJlc3RyaWN0LnNoCisrKyBiL3QvdDMxMDAtbHMtdHJlZS1yZXN0cmljdC5zaApAQCAtMjIsMjAgKzIyLDggQEAKICAgICAnc2V0dXAnIFwKICAgICAnbWtkaXIgcGF0aDIgcGF0aDIvYmF6ICYmCiAgICAgIGVjaG8gSGkgPnBhdGgwICYmCi0gICAgIGlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKLSAgICAgdGhlbgotCWxuIC1zIHBhdGgwIHBhdGgxICYmCi0JbG4gLXMgLi4vcGF0aDEgcGF0aDIvYmF6Ym8KLQltYWtlX2V4cGVjdGVkICgpIHsKLQkJY2F0ID5leHBlY3RlZAotCX0KLSAgICAgZWxzZQotCXByaW50ZiBwYXRoMCA+IHBhdGgxICYmCi0JcHJpbnRmIC4uL3BhdGgxID4gcGF0aDIvYmF6Ym8KLQltYWtlX2V4cGVjdGVkICgpIHsKLQkJc2VkIC1lICJzLzEyMDAwMCAvMTAwNjQ0IC8iID5leHBlY3RlZAotCX0KLSAgICAgZmkgJiYKKyAgICAgdGVzdF9sbl9zX2FkZCBwYXRoMCBwYXRoMSAmJgorICAgICB0ZXN0X2xuX3NfYWRkIC4uL3BhdGgxIHBhdGgyL2JhemJvICYmCiAgICAgIGVjaG8gTG8gPnBhdGgyL2ZvbyAmJgogICAgICBlY2hvIE1pID5wYXRoMi9iYXovYiAmJgogICAgICBmaW5kIHBhdGg/IFwoIC10eXBlIGYgLW8gLXR5cGUgbCBcKSAtcHJpbnQgfApAQCAtNTEsNyArMzksNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgcGxhaW4nIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgPmN1cnJlbnQgJiYKLSAgICAgbWFrZV9leHBlY3RlZCA8PFxFT0YgJiYKKyAgICAgY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIDEwMDY0NCBibG9iIFgJcGF0aDAKIDEyMDAwMCBibG9iIFgJcGF0aDEKIDA0MDAwMCB0cmVlIFgJcGF0aDIKQEAgLTYxLDcgKzQ5LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIHJlY3Vyc2l2ZScgXAogICAgICdnaXQgbHMtdHJlZSAtciAkdHJlZSA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogMTAwNjQ0IGJsb2IgWAlwYXRoMAogMTIwMDAwIGJsb2IgWAlwYXRoMQogMTAwNjQ0IGJsb2IgWAlwYXRoMi9iYXovYgpAQCAtNzMsNyArNjEsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgcmVjdXJzaXZlIHdpdGggLXQnIFwKICAgICAnZ2l0IGxzLXRyZWUgLXIgLXQgJHRyZWUgPmN1cnJlbnQgJiYKLSAgICAgbWFrZV9leHBlY3RlZCA8PFxFT0YgJiYKKyAgICAgY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIDEwMDY0NCBibG9iIFgJcGF0aDAKIDEyMDAwMCBibG9iIFgJcGF0aDEKIDA0MDAwMCB0cmVlIFgJcGF0aDIKQEAgLTg3LDcgKzc1LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIHJlY3Vyc2l2ZSB3aXRoIC1kJyBcCiAgICAgJ2dpdCBscy10cmVlIC1yIC1kICR0cmVlID5jdXJyZW50ICYmCi0gICAgIG1ha2VfZXhwZWN0ZWQgPDxcRU9GICYmCisgICAgIGNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiAwNDAwMDAgdHJlZSBYCXBhdGgyCiAwNDAwMDAgdHJlZSBYCXBhdGgyL2JhegogRU9GCkBAIC05Niw3ICs4NCw3IEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnbHMtdHJlZSBmaWx0ZXJlZCB3aXRoIHBhdGgnIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aCA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogRU9GCiAgICAgIHRlc3Rfb3V0cHV0JwogCkBAIC0xMDYsNyArOTQsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgZmlsdGVyZWQgd2l0aCBwYXRoMSBwYXRoMCcgXAogICAgICdnaXQgbHMtdHJlZSAkdHJlZSBwYXRoMSBwYXRoMCA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogMTAwNjQ0IGJsb2IgWAlwYXRoMAogMTIwMDAwIGJsb2IgWAlwYXRoMQogRU9GCkBAIC0xMTUsNyArMTAzLDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIGZpbHRlcmVkIHdpdGggcGF0aDAvJyBcCiAgICAgJ2dpdCBscy10cmVlICR0cmVlIHBhdGgwLyA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogRU9GCiAgICAgIHRlc3Rfb3V0cHV0JwogCkBAIC0xMjQsNyArMTEyLDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIGZpbHRlcmVkIHdpdGggcGF0aDInIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aDIgPmN1cnJlbnQgJiYKLSAgICAgbWFrZV9leHBlY3RlZCA8PFxFT0YgJiYKKyAgICAgY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIDA0MDAwMCB0cmVlIFgJcGF0aDIKIEVPRgogICAgICB0ZXN0X291dHB1dCcKQEAgLTEzMyw3ICsxMjEsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgZmlsdGVyZWQgd2l0aCBwYXRoMi8nIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aDIvID5jdXJyZW50ICYmCi0gICAgIG1ha2VfZXhwZWN0ZWQgPDxcRU9GICYmCisgICAgIGNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiAwNDAwMDAgdHJlZSBYCXBhdGgyL2JhegogMTIwMDAwIGJsb2IgWAlwYXRoMi9iYXpibwogMTAwNjQ0IGJsb2IgWAlwYXRoMi9mb28KQEAgLTE0NSw3ICsxMzMsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgZmlsdGVyZWQgd2l0aCBwYXRoMi9iYXonIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aDIvYmF6ID5jdXJyZW50ICYmCi0gICAgIG1ha2VfZXhwZWN0ZWQgPDxcRU9GICYmCisgICAgIGNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiAwNDAwMDAgdHJlZSBYCXBhdGgyL2JhegogRU9GCiAgICAgIHRlc3Rfb3V0cHV0JwpAQCAtMTUzLDE0ICsxNDEsMTQgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIGZpbHRlcmVkIHdpdGggcGF0aDIvYmFrJyBcCiAgICAgJ2dpdCBscy10cmVlICR0cmVlIHBhdGgyL2JhayA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogRU9GCiAgICAgIHRlc3Rfb3V0cHV0JwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnbHMtdHJlZSAtdCBmaWx0ZXJlZCB3aXRoIHBhdGgyL2JhaycgXAogICAgICdnaXQgbHMtdHJlZSAtdCAkdHJlZSBwYXRoMi9iYWsgPmN1cnJlbnQgJiYKLSAgICAgbWFrZV9leHBlY3RlZCA8PFxFT0YgJiYKKyAgICAgY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIDA0MDAwMCB0cmVlIFgJcGF0aDIKIEVPRgogICAgICB0ZXN0X291dHB1dCcKQEAgLTE2OCw3ICsxNTYsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgd2l0aCBvbmUgcGF0aCBhIHByZWZpeCBvZiB0aGUgb3RoZXInIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aDIvYmF6IHBhdGgyL2JhemJvID5jdXJyZW50ICYmCi0gICAgIG1ha2VfZXhwZWN0ZWQgPDxcRU9GICYmCisgICAgIGNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiAwNDAwMDAgdHJlZSBYCXBhdGgyL2JhegogMTIwMDAwIGJsb2IgWAlwYXRoMi9iYXpibwogRU9GCmRpZmYgLS1naXQgYS90L3QzMjAwLWJyYW5jaC5zaCBiL3QvdDMyMDAtYnJhbmNoLnNoCmluZGV4IGQ5NjlmMGUuLjQ0ZWM2YTQgMTAwNzU1Ci0tLSBhL3QvdDMyMDAtYnJhbmNoLnNoCisrKyBiL3QvdDMyMDAtYnJhbmNoLnNoCkBAIC0zMTcsMTMgKzMxNywxMyBAQAogCXRlc3QgJChnaXQgY29uZmlnIGJyYW5jaC5teTQubWVyZ2UpID0gcmVmcy9oZWFkcy9tYXN0ZXIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAndGVzdCB0cmFja2luZyBzZXR1cCAobm9uLXdpbGRjYXJkLCBub3QgbWF0Y2hpbmcpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd0cmFja2luZyBzZXR1cCBmYWlscyBvbiBub24tbWF0Y2hpbmcgcmVmc3BlYycgJwogCWdpdCBjb25maWcgcmVtb3RlLmxvY2FsLnVybCAuICYmCiAJZ2l0IGNvbmZpZyByZW1vdGUubG9jYWwuZmV0Y2ggcmVmcy9oZWFkcy9zOnJlZnMvcmVtb3Rlcy9sb2NhbC9zICYmCiAJKGdpdCBzaG93LXJlZiAtcSByZWZzL3JlbW90ZXMvbG9jYWwvbWFzdGVyIHx8IGdpdCBmZXRjaCBsb2NhbCkgJiYKLQlnaXQgYnJhbmNoIC0tdHJhY2sgbXk1IGxvY2FsL21hc3RlciAmJgotCSEgdGVzdCAiJChnaXQgY29uZmlnIGJyYW5jaC5teTUucmVtb3RlKSIgPSBsb2NhbCAmJgotCSEgdGVzdCAiJChnaXQgY29uZmlnIGJyYW5jaC5teTUubWVyZ2UpIiA9IHJlZnMvaGVhZHMvbWFzdGVyCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGJyYW5jaCAtLXRyYWNrIG15NSBsb2NhbC9tYXN0ZXIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIGJyYW5jaC5teTUucmVtb3RlICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyBicmFuY2gubXk1Lm1lcmdlCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgdHJhY2tpbmcgc2V0dXAgdmlhIGNvbmZpZycgJwpkaWZmIC0tZ2l0IGEvdC90MzIxMC1wYWNrLXJlZnMuc2ggYi90L3QzMjEwLXBhY2stcmVmcy5zaAppbmRleCBjZDA0MzYxLi4xYTIwODBlIDEwMDc1NQotLS0gYS90L3QzMjEwLXBhY2stcmVmcy5zaAorKysgYi90L3QzMjEwLXBhY2stcmVmcy5zaApAQCAtMTE4LDQgKzExOCwzNyBAQAogCXRlc3RfY21wIGFsbC1vZi10aGVtIGFnYWluCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2V4cGxpY2l0IHBhY2stcmVmcyB3aXRoIGRhbmdsaW5nIHBhY2tlZCByZWZlcmVuY2UnICcKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gInNvb24gdG8gYmUgZ2FyYmFnZS1jb2xsZWN0ZWQiICYmCisJZ2l0IHBhY2stcmVmcyAtLWFsbCAmJgorCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKKwlnaXQgcmVmbG9nIGV4cGlyZSAtLWV4cGlyZT1hbGwgLS1hbGwgJiYKKwlnaXQgcHJ1bmUgLS1leHBpcmU9YWxsICYmCisJZ2l0IHBhY2stcmVmcyAtLWFsbCAyPnJlc3VsdCAmJgorCXRlc3RfY21wIC9kZXYvbnVsbCByZXN1bHQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGVsZXRlIHJlZiB3aXRoIGRhbmdsaW5nIHBhY2tlZCB2ZXJzaW9uJyAnCisJZ2l0IGNoZWNrb3V0IC1iIGxhbWIgJiYKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gImZ1dHVyZSBnYXJiYWdlIiAmJgorCWdpdCBwYWNrLXJlZnMgLS1hbGwgJiYKKwlnaXQgcmVzZXQgLS1oYXJkIEhFQUReICYmCisJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCWdpdCByZWZsb2cgZXhwaXJlIC0tZXhwaXJlPWFsbCAtLWFsbCAmJgorCWdpdCBwcnVuZSAtLWV4cGlyZT1hbGwgJiYKKwlnaXQgYnJhbmNoIC1kIGxhbWIgMj5yZXN1bHQgJiYKKwl0ZXN0X2NtcCAvZGV2L251bGwgcmVzdWx0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RlbGV0ZSByZWYgd2hpbGUgYW5vdGhlciBkYW5nbGluZyBwYWNrZWQgcmVmJyAnCisJZ2l0IGJyYW5jaCBsYW1iICYmCisJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tICJmdXR1cmUgZ2FyYmFnZSIgJiYKKwlnaXQgcGFjay1yZWZzIC0tYWxsICYmCisJZ2l0IHJlc2V0IC0taGFyZCBIRUFEXiAmJgorCWdpdCByZWZsb2cgZXhwaXJlIC0tZXhwaXJlPWFsbCAtLWFsbCAmJgorCWdpdCBwcnVuZSAtLWV4cGlyZT1hbGwgJiYKKwlnaXQgYnJhbmNoIC1kIGxhbWIgMj5yZXN1bHQgJiYKKwl0ZXN0X2NtcCAvZGV2L251bGwgcmVzdWx0CisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MzIxMS1wZWVsLXJlZi5zaCBiL3QvdDMyMTEtcGVlbC1yZWYuc2gKaW5kZXggZDRkNzc5Mi4uM2I3Y2FjYSAxMDA3NTUKLS0tIGEvdC90MzIxMS1wZWVsLXJlZi5zaAorKysgYi90L3QzMjExLXBlZWwtcmVmLnNoCkBAIC02MSw0ICs2MSwxMyBAQAogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAncGVlbGVkIHJlZnMgc3Vydml2ZSBkZWxldGlvbiBvZiBwYWNrZWQgcmVmJyAnCisJZ2l0IHBhY2stcmVmcyAtLWFsbCAmJgorCWNwIC5naXQvcGFja2VkLXJlZnMgZnVsbHktcGVlbGVkICYmCisJZ2l0IGJyYW5jaCB5YWRkYSAmJgorCWdpdCBwYWNrLXJlZnMgLS1hbGwgJiYKKwlnaXQgYnJhbmNoIC1kIHlhZGRhICYmCisJdGVzdF9jbXAgZnVsbHktcGVlbGVkIC5naXQvcGFja2VkLXJlZnMKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzNDAwLXJlYmFzZS5zaCBiL3QvdDM0MDAtcmViYXNlLnNoCmluZGV4IGI1OGZhMWEuLmViZjkzYjAgMTAwNzU1Ci0tLSBhL3QvdDM0MDAtcmViYXNlLnNoCisrKyBiL3QvdDM0MDAtcmViYXNlLnNoCkBAIC00MCwxMyArNDAsNiBAQAogCWVjaG8gU2lkZSA+PkMgJiYKIAlnaXQgYWRkIEMgJiYKIAlnaXQgY29tbWl0IC1tICJBZGQgQyIgJiYKLQlnaXQgY2hlY2tvdXQgLWIgbm9ubGluZWFyIG15LXRvcGljLWJyYW5jaCAmJgotCWVjaG8gRWRpdCA+PkIgJiYKLQlnaXQgYWRkIEIgJiYKLQlnaXQgY29tbWl0IC1tICJNb2RpZnkgQiIgJiYKLQlnaXQgbWVyZ2Ugc2lkZSAmJgotCWdpdCBjaGVja291dCAtYiB1cHN0cmVhbS1tZXJnZWQtbm9ubGluZWFyICYmCi0JZ2l0IG1lcmdlIG1hc3RlciAmJgogCWdpdCBjaGVja291dCAtZiBteS10b3BpYy1icmFuY2ggJiYKIAlnaXQgdGFnIHRvcGljCiAnCkBAIC02NiwyNiArNTksMTUgQEAKIAlnaXQgcmViYXNlIG1hc3RlcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgYWdhaW5zdCBtYXN0ZXIgdHdpY2UnICcKLQlnaXQgcmViYXNlIG1hc3RlciA+b3V0ICYmCi0JdGVzdF9pMThuZ3JlcCAiQ3VycmVudCBicmFuY2ggbXktdG9waWMtYnJhbmNoIGlzIHVwIHRvIGRhdGUiIG91dAotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgYWdhaW5zdCBtYXN0ZXIgdHdpY2Ugd2l0aCAtLWZvcmNlJyAnCi0JZ2l0IHJlYmFzZSAtLWZvcmNlLXJlYmFzZSBtYXN0ZXIgPm91dCAmJgotCXRlc3RfaTE4bmdyZXAgIkN1cnJlbnQgYnJhbmNoIG15LXRvcGljLWJyYW5jaCBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkIiBvdXQKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIGFnYWluc3QgbWFzdGVyIHR3aWNlIGZyb20gYW5vdGhlciBicmFuY2gnICcKLQlnaXQgY2hlY2tvdXQgbXktdG9waWMtYnJhbmNoXiAmJgotCWdpdCByZWJhc2UgbWFzdGVyIG15LXRvcGljLWJyYW5jaCA+b3V0ICYmCi0JdGVzdF9pMThuZ3JlcCAiQ3VycmVudCBicmFuY2ggbXktdG9waWMtYnJhbmNoIGlzIHVwIHRvIGRhdGUiIG91dAotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgZmFzdC1mb3J3YXJkIHRvIG1hc3RlcicgJwotCWdpdCBjaGVja291dCBteS10b3BpYy1icmFuY2heICYmCi0JZ2l0IHJlYmFzZSBteS10b3BpYy1icmFuY2ggPm91dCAmJgotCXRlc3RfaTE4bmdyZXAgIkZhc3QtZm9yd2FyZGVkIEhFQUQgdG8gbXktdG9waWMtYnJhbmNoIiBvdXQKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSwgd2l0aCA8b250bz4gYW5kIDx1cHN0cmVhbT4gc3BlY2lmaWVkIGFzIDovcXV1eGVyeScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGJyYW5jaCAtRCB0b3JlYmFzZSIgJiYKKwlnaXQgY2hlY2tvdXQgLWIgdG9yZWJhc2UgbXktdG9waWMtYnJhbmNoXiAmJgorCXVwc3RyZWFtPSQoZ2l0IHJldi1wYXJzZSAiOi9BZGQgQiIpICYmCisJb250bz0kKGdpdCByZXYtcGFyc2UgIjovQWRkIEEiKSAmJgorCWdpdCByZWJhc2UgLS1vbnRvICRvbnRvICR1cHN0cmVhbSAmJgorCWdpdCByZXNldCAtLWhhcmQgbXktdG9waWMtYnJhbmNoXiAmJgorCWdpdCByZWJhc2UgLS1vbnRvICI6L0FkZCBBIiAiOi9BZGQgQiIgJiYKKwlnaXQgY2hlY2tvdXQgbXktdG9waWMtYnJhbmNoCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RoZSByZWJhc2Ugb3BlcmF0aW9uIHNob3VsZCBub3QgaGF2ZSBkZXN0cm95ZWQgYXV0aG9yIGluZm9ybWF0aW9uJyAnCkBAIC0xMDYsMzEgKzg4LDkgQEAKIAlnaXQgcmViYXNlIG1hc3RlcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgYWZ0ZXIgbWVyZ2UgbWFzdGVyJyAnCi0JZ2l0IGNoZWNrb3V0IC0tZGV0YWNoIHJlZnMvdGFncy90b3BpYyAmJgotCWdpdCBicmFuY2ggLUQgdG9waWMgJiYKLQlnaXQgcmVzZXQgLS1oYXJkIHRvcGljICYmCi0JZ2l0IG1lcmdlIG1hc3RlciAmJgotCWdpdCByZWJhc2UgbWFzdGVyICYmCi0JISAoZ2l0IHNob3cgfCBncmVwICJeTWVyZ2U6IikKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIG9mIGhpc3Rvcnkgd2l0aCBtZXJnZXMgaXMgbGluZWFyaXplZCcgJwotCWdpdCBjaGVja291dCBub25saW5lYXIgJiYKLQl0ZXN0IDQgPSAkKGdpdCByZXYtbGlzdCBtYXN0ZXIuLiB8IHdjIC1sKSAmJgotCWdpdCByZWJhc2UgbWFzdGVyICYmCi0JdGVzdCAzID0gJChnaXQgcmV2LWxpc3QgbWFzdGVyLi4gfCB3YyAtbCkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIG9mIGhpc3Rvcnkgd2l0aCBtZXJnZXMgYWZ0ZXIgdXBzdHJlYW0gbWVyZ2UgaXMgbGluZWFyaXplZCcgJwotCWdpdCBjaGVja291dCB1cHN0cmVhbS1tZXJnZWQtbm9ubGluZWFyICYmCi0JdGVzdCA1ID0gJChnaXQgcmV2LWxpc3QgbWFzdGVyLi4gfCB3YyAtbCkgJiYKLQlnaXQgcmViYXNlIG1hc3RlciAmJgotCXRlc3QgMyA9ICQoZ2l0IHJldi1saXN0IG1hc3Rlci4uIHwgd2MgLWwpCi0nCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSBhIHNpbmdsZSBtb2RlIGNoYW5nZScgJwogCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwlnaXQgYnJhbmNoIC1EIHRvcGljICYmCiAJZWNobyAxID5YICYmCiAJZ2l0IGFkZCBYICYmCiAJdGVzdF90aWNrICYmCkBAIC0xODUsNyArMTQ1LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtcSBpcyBxdWlldCcgJwogCWdpdCBjaGVja291dCAtYiBxdWlldCB0b3BpYyAmJgogCWdpdCByZWJhc2UgLXEgbWFzdGVyID5vdXRwdXQub3V0IDI+JjEgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0Lm91dAorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQub3V0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1JlYmFzZSBhIGNvbW1pdCB0aGF0IHNwcmlua2xlcyBDUnMgaW4nICcKZGlmZiAtLWdpdCBhL3QvdDM0MDEtcmViYXNlLXBhcnRpYWwuc2ggYi90L3QzNDAxLXJlYmFzZS1wYXJ0aWFsLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1OGY0ODIzLi4wMDAwMDAwCi0tLSBhL3QvdDM0MDEtcmViYXNlLXBhcnRpYWwuc2gKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0jIS9iaW4vc2gKLSMKLSMgQ29weXJpZ2h0IChjKSAyMDA2IFlhbm4gRGlyc29uLCBiYXNlZCBvbiB0MzQwMCBieSBBbW9zIFdhdGVybGFuZAotIwotCi10ZXN0X2Rlc2NyaXB0aW9uPSdnaXQgcmViYXNlIHNob3VsZCBkZXRlY3QgcGF0Y2hlcyBpbnRlZ3JhdGVkIHVwc3RyZWFtCi0KLVRoaXMgdGVzdCBjaGVycnktcGlja3Mgb25lIGxvY2FsIGNoYW5nZSBvZiB0d28gaW50byBtYXN0ZXIgYnJhbmNoLCBhbmQKLWNoZWNrcyB0aGF0IGdpdCByZWJhc2Ugc3VjY2VlZHMgd2l0aCBvbmx5IHRoZSBzZWNvbmQgcGF0Y2ggaW4gdGhlCi1sb2NhbCBicmFuY2guCi0nCi0uIC4vdGVzdC1saWIuc2gKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJlcGFyZSByZXBvc2l0b3J5IHdpdGggdG9waWMgYnJhbmNoJyAnCi0JdGVzdF9jb21taXQgQSAmJgotCWdpdCBjaGVja291dCAtYiBteS10b3BpYy1icmFuY2ggJiYKLQl0ZXN0X2NvbW1pdCBCICYmCi0JdGVzdF9jb21taXQgQyAmJgotCWdpdCBjaGVja291dCAtZiBtYXN0ZXIgJiYKLQl0ZXN0X2NvbW1pdCBBMiBBLnQKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncGljayB0b3AgcGF0Y2ggZnJvbSB0b3BpYyBicmFuY2ggaW50byBtYXN0ZXInICcKLQlnaXQgY2hlcnJ5LXBpY2sgQyAmJgotCWdpdCBjaGVja291dCAtZiBteS10b3BpYy1icmFuY2gKLScKLQotdGVzdF9kZWJ1ZyAnCi0JZ2l0IGNoZXJyeSBtYXN0ZXIgJiYKLQlnaXQgZm9ybWF0LXBhdGNoIC1rIC0tc3Rkb3V0IC0tZnVsbC1pbmRleCBtYXN0ZXIgPi9kZXYvbnVsbCAmJgotCWdpdGsgLS1hbGwgJiBzbGVlcCAxCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSB0b3BpYyBicmFuY2ggYWdhaW5zdCBuZXcgbWFzdGVyIGFuZCBjaGVjayBnaXQgYW0gZGlkIG5vdCBnZXQgaGFsdGVkJyAnCi0JZ2l0IHJlYmFzZSBtYXN0ZXIgJiYKLQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseQotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLS1tZXJnZSB0b3BpYyBicmFuY2ggdGhhdCB3YXMgcGFydGlhbGx5IG1lcmdlZCB1cHN0cmVhbScgJwotCWdpdCByZXNldCAtLWhhcmQgQyAmJgotCWdpdCByZWJhc2UgLS1tZXJnZSBtYXN0ZXIgJiYKLQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1tZXJnZQotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgaWdub3JlcyBlbXB0eSBjb21taXQnICcKLQlnaXQgcmVzZXQgLS1oYXJkIEEgJiYKLQlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gZW1wdHkgJiYKLQl0ZXN0X2NvbW1pdCBEICYmCi0JZ2l0IHJlYmFzZSBDICYmCi0JdGVzdCAiJChnaXQgbG9nIC0tZm9ybWF0PSVzIEMuLikiID0gIkQiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtLWtlZXAtZW1wdHknICcKLQlnaXQgcmVzZXQgLS1oYXJkIEQgJiYKLQlnaXQgcmViYXNlIC0ta2VlcC1lbXB0eSBDICYmCi0JdGVzdCAiJChnaXQgbG9nIC0tZm9ybWF0PSVzIEMuLikiID0gIkQKLWVtcHR5IgotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLS1rZWVwLWVtcHR5IGtlZXBzIGVtcHR5IGV2ZW4gaWYgYWxyZWFkeSBpbiB1cHN0cmVhbScgJwotCWdpdCByZXNldCAtLWhhcmQgQSAmJgotCWdpdCBjb21taXQgLS1hbGxvdy1lbXB0eSAtbSBhbHNvLWVtcHR5ICYmCi0JZ2l0IHJlYmFzZSAtLWtlZXAtZW1wdHkgRCAmJgotCXRlc3QgIiQoZ2l0IGxvZyAtLWZvcm1hdD0lcyBBLi4pIiA9ICJhbHNvLWVtcHR5Ci1ECi1lbXB0eSIKLScKLQotdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzNDAzLXJlYmFzZS1za2lwLnNoIGIvdC90MzQwMy1yZWJhc2Utc2tpcC5zaAppbmRleCA4MjY1MDBiLi4zOTY4MDIwIDEwMDc1NQotLS0gYS90L3QzNDAzLXJlYmFzZS1za2lwLnNoCisrKyBiL3QvdDM0MDMtcmViYXNlLXNraXAuc2gKQEAgLTY0LDEwICs2NCwxMSBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLS1za2lwIHdpdGggLS1tZXJnZScgJwogCWdpdCByZWJhc2UgLS1za2lwCi0JJworJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBhbmQgcmVmZXJlbmNlIHRyZWVzIGVxdWFsJyBcCi0JJ3Rlc3QgLXogImBnaXQgZGlmZi10cmVlIHNraXAtbWVyZ2Ugc2tpcC1yZWZlcmVuY2VgIicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21lcmdlIGFuZCByZWZlcmVuY2UgdHJlZXMgZXF1YWwnICcKKwl0ZXN0IC16ICJgZ2l0IGRpZmYtdHJlZSBza2lwLW1lcmdlIHNraXAtcmVmZXJlbmNlYCIKKycKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbW92ZWQgYmFjayB0byBicmFuY2ggY29ycmVjdGx5JyAnCiAJdGVzdCByZWZzL2hlYWRzL3NraXAtbWVyZ2UgPSAkKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkKZGlmZiAtLWdpdCBhL3QvdDM0MDQtcmViYXNlLWludGVyYWN0aXZlLnNoIGIvdC90MzQwNC1yZWJhc2UtaW50ZXJhY3RpdmUuc2gKaW5kZXggYTU4NDA2ZC4uNGRiZWRkYiAxMDA3NTUKLS0tIGEvdC90MzQwNC1yZWJhc2UtaW50ZXJhY3RpdmUuc2gKKysrIGIvdC90MzQwNC1yZWJhc2UtaW50ZXJhY3RpdmUuc2gKQEAgLTQ3NywxOSArNDc3LDExIEBACiAJdGVzdCAkb25lID0gJChnaXQgcmV2LXBhcnNlIEhFQUR+MikKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlIHBhdGNoIGlmIGluIHVwc3RyZWFtJyAnCi0JSEVBRD0kKGdpdCByZXYtcGFyc2UgSEVBRCkgJiYKLQlnaXQgY2hlY2tvdXQgLWIgaGFzLWNoZXJyeS1waWNrZWQgSEVBRF4gJiYKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tY29udGludWUgdHJpZXMgdG8gY29tbWl0LCBldmVuIGZvciAiZWRpdCInICcKIAllY2hvIHVucmVsYXRlZCA+IGZpbGU3ICYmCiAJZ2l0IGFkZCBmaWxlNyAmJgogCXRlc3RfdGljayAmJgogCWdpdCBjb21taXQgLW0gInVucmVsYXRlZCBjaGFuZ2UiICYmCi0JZ2l0IGNoZXJyeS1waWNrICRIRUFEICYmCi0JRVhQRUNUX0NPVU5UPTEgZ2l0IHJlYmFzZSAtaSAkSEVBRCAmJgotCXRlc3QgJEhFQUQgPSAkKGdpdCByZXYtcGFyc2UgSEVBRF4pCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tY29udGludWUgdHJpZXMgdG8gY29tbWl0LCBldmVuIGZvciAiZWRpdCInICcKIAlwYXJlbnQ9JChnaXQgcmV2LXBhcnNlIEhFQUReKSAmJgogCXRlc3RfdGljayAmJgogCUZBS0VfTElORVM9ImVkaXQgMSIgZ2l0IHJlYmFzZSAtaSBIRUFEXiAmJgpAQCAtNjkyLDcgKzY4NCw3IEBACiAJdGVzdF9jb21taXQgbjIgJiYKIAl0ZXN0X2NvbW1pdCBuMyAmJgogCWdpdCBub3RlcyBhZGQgLW0iYSBub3RlIiBuMyAmJgotCWdpdCByZWJhc2UgLS1vbnRvIG4xIG4yICYmCisJZ2l0IHJlYmFzZSAtaSAtLW9udG8gbjEgbjIgJiYKIAl0ZXN0ICJhIG5vdGUiID0gIiQoZ2l0IG5vdGVzIHNob3cgSEVBRCkiCiAnCiAKQEAgLTkzNCw2ICs5MjYsMjEgQEAKIAl0ZXN0IEwgPSAkKGdpdCBjYXQtZmlsZSBjb21taXQgSEVBRCB8IHNlZCAtbmUgXCRwKQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLWkgcHJvZHVjZXMgcmVhZGFibGUgcmVmbG9nJyAnCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBicmFuY2ggLWYgYnJhbmNoLXJlZmxvZy10ZXN0IEggJiYKKwlnaXQgcmViYXNlIC1pIC0tb250byBJIEYgYnJhbmNoLXJlZmxvZy10ZXN0ICYmCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCXJlYmFzZSAtaSAoc3RhcnQpOiBjaGVja291dCBJCisJcmViYXNlIC1pIChwaWNrKTogRworCXJlYmFzZSAtaSAocGljayk6IEgKKwlyZWJhc2UgLWkgKGZpbmlzaCk6IHJldHVybmluZyB0byByZWZzL2hlYWRzL2JyYW5jaC1yZWZsb2ctdGVzdAorCUVPRgorCXRhaWwgLW4gNCAuZ2l0L2xvZ3MvSEVBRCB8CisJc2VkIC1lICJzLy4qCS8vIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLWkgcmVzcGVjdHMgY29yZS5jb21tZW50Y2hhcicgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgRV4wICYmCkBAIC05NDcsNCArOTU0LDM5IEBACiAJdGVzdCBCID0gJChnaXQgY2F0LWZpbGUgY29tbWl0IEhFQUReIHwgc2VkIC1uZSBcJHApCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtaSwgd2l0aCA8b250bz4gYW5kIDx1cHN0cmVhbT4gc3BlY2lmaWVkIGFzIDovcXV1eGVyeScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGJyYW5jaCAtRCB0b3JlYmFzZSIgJiYKKwlnaXQgY2hlY2tvdXQgLWIgdG9yZWJhc2UgYnJhbmNoMSAmJgorCXVwc3RyZWFtPSQoZ2l0IHJldi1wYXJzZSAiOi9KIikgJiYKKwlvbnRvPSQoZ2l0IHJldi1wYXJzZSAiOi9BIikgJiYKKwlnaXQgcmViYXNlIC0tb250byAkb250byAkdXBzdHJlYW0gJiYKKwlnaXQgcmVzZXQgLS1oYXJkIGJyYW5jaDEgJiYKKwlnaXQgcmViYXNlIC0tb250byAiOi9BIiAiOi9KIiAmJgorCWdpdCBjaGVja291dCBicmFuY2gxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtaSB3aXRoIC0tc3RyYXRlZ3kgYW5kIC1YJyAnCisJZ2l0IGNoZWNrb3V0IC1iIGNvbmZsaWN0LW1lcmdlLXVzZS10aGVpcnMgY29uZmxpY3QtYnJhbmNoICYmCisJZ2l0IHJlc2V0IC0taGFyZCBIRUFEXiAmJgorCWVjaG8gZml2ZSA+Y29uZmxpY3QgJiYKKwllY2hvIFogPmZpbGUxICYmCisJZ2l0IGNvbW1pdCAtYSAtbSAib25lIGZpbGUgY29uZmxpY3QiICYmCisJRURJVE9SPXRydWUgZ2l0IHJlYmFzZSAtaSAtLXN0cmF0ZWd5PXJlY3Vyc2l2ZSAtWG91cnMgY29uZmxpY3QtYnJhbmNoICYmCisJdGVzdCAkKGdpdCBzaG93IGNvbmZsaWN0LWJyYW5jaDpjb25mbGljdCkgPSAkKGNhdCBjb25mbGljdCkgJiYKKwl0ZXN0ICQoY2F0IGZpbGUxKSA9IFoKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIC1pIGVycm9yIG9uIGNvbW1pdHMgd2l0aCBcIGluIG1lc3NhZ2UnICcKKwljdXJyZW50X2hlYWQ9JChnaXQgcmV2LXBhcnNlIEhFQUQpCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmViYXNlIC0tYWJvcnQ7IGdpdCByZXNldCAtLWhhcmQgJGN1cnJlbnRfaGVhZDsgcm0gLWYgZXJyb3IiICYmCisJdGVzdF9jb21taXQgVE8tUkVNT1ZFIHdpbGwtY29uZmxpY3Qgb2xkLWNvbnRlbnQgJiYKKwl0ZXN0X2NvbW1pdCAiXHRlbXAiIHdpbGwtY29uZmxpY3QgbmV3LWNvbnRlbnQgZHVtbXkgJiYKKwkoCisJRURJVE9SPXRydWUgJiYKKwlleHBvcnQgRURJVE9SICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYmFzZSAtaSBIRUFEXiAtLW9udG8gSEVBRF5eIDI+ZXJyb3IKKwkpICYmCisJdGVzdF9leHBlY3RfY29kZSAxIGdyZXAgICIJZW1wIiBlcnJvcgorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDM0MDYtcmViYXNlLW1lc3NhZ2Uuc2ggYi90L3QzNDA2LXJlYmFzZS1tZXNzYWdlLnNoCmluZGV4IGU2YTlhMGQuLjAzOTJlMzYgMTAwNzU1Ci0tLSBhL3QvdDM0MDYtcmViYXNlLW1lc3NhZ2Uuc2gKKysrIGIvdC90MzQwNi1yZWJhc2UtbWVzc2FnZS5zaApAQCAtNCwyNyArNCwxNyBAQAogCiAuIC4vdGVzdC1saWIuc2gKIAotcXVpY2tfb25lICgpIHsKLQllY2hvICIkMSIgPiJmaWxlJDEiICYmCi0JZ2l0IGFkZCAiZmlsZSQxIiAmJgotCXRlc3RfdGljayAmJgotCWdpdCBjb21taXQgLW0gIiQxIgotfQordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKKwl0ZXN0X2NvbW1pdCBPIGZpbGVPICYmCisJdGVzdF9jb21taXQgWCBmaWxlWCAmJgorCXRlc3RfY29tbWl0IEEgZmlsZUEgJiYKKwl0ZXN0X2NvbW1pdCBCIGZpbGVCICYmCisJdGVzdF9jb21taXQgWSBmaWxlWSAmJgogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIHNldHVwICcKLQlxdWlja19vbmUgTyAmJgotCWdpdCBicmFuY2ggdG9waWMgJiYKLQlxdWlja19vbmUgWCAmJgotCXF1aWNrX29uZSBBICYmCi0JcXVpY2tfb25lIEIgJiYKLQlxdWlja19vbmUgWSAmJgotCi0JZ2l0IGNoZWNrb3V0IHRvcGljICYmCi0JcXVpY2tfb25lIEEgJiYKLQlxdWlja19vbmUgQiAmJgotCXF1aWNrX29uZSBaICYmCisJZ2l0IGNoZWNrb3V0IC1iIHRvcGljIE8gJiYKKwlnaXQgY2hlcnJ5LXBpY2sgQSBCICYmCisJdGVzdF9jb21taXQgWiBmaWxlWiAmJgogCWdpdCB0YWcgc3RhcnQKLQogJwogCiBjYXQgPmV4cGVjdCA8PFxFT0YKQEAgLTM0LDEyICsyNCwzMiBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtbScgJwotCiAJZ2l0IHJlYmFzZSAtbSBtYXN0ZXIgPnJlcG9ydCAmJgogCXNlZCAtbiAtZSAiL15BbHJlYWR5IGFwcGxpZWQ6IC9wIiBcCiAJCS1lICIvXkNvbW1pdHRlZDogL3AiIHJlcG9ydCA+YWN0dWFsICYmCiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgYWdhaW5zdCBtYXN0ZXIgdHdpY2UnICcKKwlnaXQgcmViYXNlIG1hc3RlciA+b3V0ICYmCisJdGVzdF9pMThuZ3JlcCAiQ3VycmVudCBicmFuY2ggdG9waWMgaXMgdXAgdG8gZGF0ZSIgb3V0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSBhZ2FpbnN0IG1hc3RlciB0d2ljZSB3aXRoIC0tZm9yY2UnICcKKwlnaXQgcmViYXNlIC0tZm9yY2UtcmViYXNlIG1hc3RlciA+b3V0ICYmCisJdGVzdF9pMThuZ3JlcCAiQ3VycmVudCBicmFuY2ggdG9waWMgaXMgdXAgdG8gZGF0ZSwgcmViYXNlIGZvcmNlZCIgb3V0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSBhZ2FpbnN0IG1hc3RlciB0d2ljZSBmcm9tIGFub3RoZXIgYnJhbmNoJyAnCisJZ2l0IGNoZWNrb3V0IHRvcGljXiAmJgorCWdpdCByZWJhc2UgbWFzdGVyIHRvcGljID5vdXQgJiYKKwl0ZXN0X2kxOG5ncmVwICJDdXJyZW50IGJyYW5jaCB0b3BpYyBpcyB1cCB0byBkYXRlIiBvdXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIGZhc3QtZm9yd2FyZCB0byBtYXN0ZXInICcKKwlnaXQgY2hlY2tvdXQgdG9waWNeICYmCisJZ2l0IHJlYmFzZSB0b3BpYyA+b3V0ICYmCisJdGVzdF9pMThuZ3JlcCAiRmFzdC1mb3J3YXJkZWQgSEVBRCB0byB0b3BpYyIgb3V0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtLXN0YXQnICcKZGlmZiAtLWdpdCBhL3QvdDM0MDktcmViYXNlLXByZXNlcnZlLW1lcmdlcy5zaCBiL3QvdDM0MDktcmViYXNlLXByZXNlcnZlLW1lcmdlcy5zaAppbmRleCA2ZGU0ZTIyLi4yZTBjMzY0IDEwMDc1NQotLS0gYS90L3QzNDA5LXJlYmFzZS1wcmVzZXJ2ZS1tZXJnZXMuc2gKKysrIGIvdC90MzQwOS1yZWJhc2UtcHJlc2VydmUtbWVyZ2VzLnNoCkBAIC0xMSwxNCArMTEsNiBAQAogR0lUX0FVVEhPUl9FTUFJTD1ib2d1c19lbWFpbF9hZGRyZXNzCiBleHBvcnQgR0lUX0FVVEhPUl9FTUFJTAogCi0jIENsb25lIDEgKHRyaXZpYWwgbWVyZ2UpOgotIwotIyBBMS0tQTIgIDwtLSBvcmlnaW4vbWFzdGVyCi0jICBcICAgXAotIyAgIEIxLS1NICA8LS0gdG9waWMKLSMgICAgXAotIyAgICAgQjIgIDwtLSBvcmlnaW4vdG9waWMKLSMKICMgQ2xvbmUgMiAoY29uZmxpY3RpbmcgbWVyZ2UpOgogIwogIyBBMS0tQTItLUIzICAgPC0tIG9yaWdpbi9tYXN0ZXIKQEAgLTM2LDE2ICsyOCw2IEBACiAjICAgICBcLS1BMyAgICA8LS0gdG9waWMyCiAjICAgICAgXAogIyAgICAgICBCMiAgICAgPC0tIG9yaWdpbi90b3BpYwotIwotIyBDbG9uZSA0IChtZXJnZSB1c2luZyBzZWNvbmQgcGFyZW50IGFzIGJhc2UpOgotIwotIyBBMS0tQTItLUIzICAgPC0tIG9yaWdpbi9tYXN0ZXIKLSMgIFwKLSMgICBCMS0tQTMtLU0gIDwtLSB0b3BpYwotIyAgICBcICAgICAvCi0jICAgICBcLS1BNCAgICA8LS0gdG9waWMyCi0jICAgICAgXAotIyAgICAgICBCMiAgICAgPC0tIG9yaWdpbi90b3BpYwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBmb3IgbWVyZ2UtcHJlc2VydmluZyByZWJhc2UnIFwKIAknZWNobyBGaXJzdCA+IEEgJiYKQEAgLTU4LDIwICs0MCw2IEBACiAJZ2l0IGNoZWNrb3V0IC1mIG1hc3RlciAmJgogCWVjaG8gVGhpcmQgPj4gQSAmJgogCWdpdCBjb21taXQgLWEgLW0gIk1vZGlmeSBBMiIgJiYKLQotCWdpdCBjbG9uZSAuLy4gY2xvbmUxICYmCi0JKGNkIGNsb25lMSAmJgotCWdpdCBjaGVja291dCAtYiB0b3BpYyBvcmlnaW4vdG9waWMgJiYKLQlnaXQgbWVyZ2Ugb3JpZ2luL21hc3RlcgotCSkgJiYKLQotCWdpdCBjbG9uZSAuLy4gY2xvbmU0ICYmCi0JKAotCQljZCBjbG9uZTQgJiYKLQkJZ2l0IGNoZWNrb3V0IC1iIHRvcGljIG9yaWdpbi90b3BpYyAmJgotCQlnaXQgbWVyZ2Ugb3JpZ2luL21hc3RlcgotCSkgJiYKLQogCWVjaG8gRmlmdGggPiBCICYmCiAJZ2l0IGFkZCBCICYmCiAJZ2l0IGNvbW1pdCAtbSAiQWRkIGRpZmZlcmVudCBCIiAmJgpAQCAtMTAxLDE2ICs2OSw2IEBACiAJZ2l0IGNvbW1pdCAtYSAtbSAiTW9kaWZ5IEIyIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLXAgZmFrZXMgaW50ZXJhY3RpdmUgcmViYXNlJyAnCi0JKAotCWNkIGNsb25lMSAmJgotCWdpdCBmZXRjaCAmJgotCWdpdCByZWJhc2UgLXAgb3JpZ2luL3RvcGljICYmCi0JdGVzdCAxID0gJChnaXQgcmV2LWxpc3QgLS1hbGwgLS1wcmV0dHk9b25lbGluZSB8IGdyZXAgIk1vZGlmeSBBIiB8IHdjIC1sKSAmJgotCXRlc3QgMSA9ICQoZ2l0IHJldi1saXN0IC0tYWxsIC0tcHJldHR5PW9uZWxpbmUgfCBncmVwICJNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICIgfCB3YyAtbCkKLQkpCi0nCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tY29udGludWUgd29ya3MgYWZ0ZXIgYSBjb25mbGljdCcgJwogCSgKIAljZCBjbG9uZTIgJiYKQEAgLTEzOCwxNSArOTYsNCBAQAogCSkKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIC1wIHdvcmtzIHdoZW4gYmFzZSBpbnNpZGUgc2Vjb25kIHBhcmVudCcgJwotCSgKLQljZCBjbG9uZTQgJiYKLQlnaXQgZmV0Y2ggJiYKLQlnaXQgcmViYXNlIC1wIEhFQUReMiAmJgotCXRlc3QgMSA9ICQoZ2l0IHJldi1saXN0IC0tYWxsIC0tcHJldHR5PW9uZWxpbmUgfCBncmVwICJNb2RpZnkgQSIgfCB3YyAtbCkgJiYKLQl0ZXN0IDEgPSAkKGdpdCByZXYtbGlzdCAtLWFsbCAtLXByZXR0eT1vbmVsaW5lIHwgZ3JlcCAiTW9kaWZ5IEIiIHwgd2MgLWwpICYmCi0JdGVzdCAxID0gJChnaXQgcmV2LWxpc3QgLS1hbGwgLS1wcmV0dHk9b25lbGluZSB8IGdyZXAgIk1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggIiB8IHdjIC1sKQotCSkKLScKLQogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzNDE1LXJlYmFzZS1hdXRvc3F1YXNoLnNoIGIvdC90MzQxNS1yZWJhc2UtYXV0b3NxdWFzaC5zaAppbmRleCBhMWU4NmM0Li40MTM3MGFiIDEwMDc1NQotLS0gYS90L3QzNDE1LXJlYmFzZS1hdXRvc3F1YXNoLnNoCisrKyBiL3QvdDM0MTUtcmViYXNlLWF1dG9zcXVhc2guc2gKQEAgLTQsNiArNCw4IEBACiAKIC4gLi90ZXN0LWxpYi5zaAogCisuICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1yZWJhc2Uuc2gKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAJZWNobyAwID5maWxlMCAmJgogCWdpdCBhZGQgLiAmJgpAQCAtMTkzLDQgKzE5NSw1OSBAQAogCXRlc3RfYXV0b19jb21taXRfZmxhZ3Mgc3F1YXNoIDIKICcKIAordGVzdF9hdXRvX2ZpeHVwX2ZpeHVwICgpIHsKKwlnaXQgcmVzZXQgLS1oYXJkIGJhc2UgJiYKKwllY2hvIDEgPmZpbGUxICYmCisJZ2l0IGFkZCAtdSAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gIiQxISBmaXJzdCIgJiYKKwllY2hvIDIgPmZpbGUxICYmCisJZ2l0IGFkZCAtdSAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gIiQxISAkMiEgZmlyc3QiICYmCisJZ2l0IHRhZyAiZmluYWwtJDEtJDIiICYmCisJdGVzdF90aWNrICYmCisJKAorCQlzZXRfY2F0X3RvZG9fZWRpdG9yICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZWJhc2UgLS1hdXRvc3F1YXNoIC1pIEhFQUReXl5eID5hY3R1YWwgJiYKKwkJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKKwkJcGljayAkKGdpdCByZXYtcGFyc2UgLS1zaG9ydCBIRUFEXl5eKSBmaXJzdCBjb21taXQKKwkJJDEgJChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRF4pICQxISBmaXJzdAorCQkkMSAkKGdpdCByZXYtcGFyc2UgLS1zaG9ydCBIRUFEKSAkMSEgJDIhIGZpcnN0CisJCXBpY2sgJChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRF5eKSBzZWNvbmQgY29tbWl0CisJCUVPRgorCQl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwkpICYmCisJZ2l0IHJlYmFzZSAtLWF1dG9zcXVhc2ggLWkgSEVBRF5eXl4gJiYKKwlnaXQgbG9nIC0tb25lbGluZSA+YWN0dWFsICYmCisJdGVzdF9saW5lX2NvdW50ID0gMyBhY3R1YWwKKwlnaXQgZGlmZiAtLWV4aXQtY29kZSAiZmluYWwtJDEtJDIiICYmCisJdGVzdCAyID0gIiQoZ2l0IGNhdC1maWxlIGJsb2IgSEVBRF46ZmlsZTEpIiAmJgorCWlmIHRlc3QgIiQxIiA9ICJmaXh1cCIKKwl0aGVuCisJCXRlc3QgMSA9ICQoZ2l0IGNhdC1maWxlIGNvbW1pdCBIRUFEXiB8IGdyZXAgZmlyc3QgfCB3YyAtbCkKKwllbGlmIHRlc3QgIiQxIiA9ICJzcXVhc2giCisJdGhlbgorCQl0ZXN0IDMgPSAkKGdpdCBjYXQtZmlsZSBjb21taXQgSEVBRF4gfCBncmVwIGZpcnN0IHwgd2MgLWwpCisJZWxzZQorCQlmYWxzZQorCWZpCit9CisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpeHVwISBmaXh1cCEnICcKKwl0ZXN0X2F1dG9fZml4dXBfZml4dXAgZml4dXAgZml4dXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZml4dXAhIHNxdWFzaCEnICcKKwl0ZXN0X2F1dG9fZml4dXBfZml4dXAgZml4dXAgc3F1YXNoCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NxdWFzaCEgc3F1YXNoIScgJworCXRlc3RfYXV0b19maXh1cF9maXh1cCBzcXVhc2ggc3F1YXNoCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NxdWFzaCEgZml4dXAhJyAnCisJdGVzdF9hdXRvX2ZpeHVwX2ZpeHVwIHNxdWFzaCBmaXh1cAorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDM0MjAtcmViYXNlLWF1dG9zdGFzaC5zaCBiL3QvdDM0MjAtcmViYXNlLWF1dG9zdGFzaC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MGViMjY0Ci0tLSAvZGV2L251bGwKKysrIGIvdC90MzQyMC1yZWJhc2UtYXV0b3N0YXNoLnNoCkBAIC0wLDAgKzEsMTcwIEBACisjIS9iaW4vc2gKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIFJhbWt1bWFyIFJhbWFjaGFuZHJhCisjCisKK3Rlc3RfZGVzY3JpcHRpb249J2dpdCByZWJhc2UgLS1hdXRvc3Rhc2ggdGVzdHMnCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCisJZWNobyBoZWxsby13b3JsZCA+ZmlsZTAgJiYKKwlnaXQgYWRkIC4gJiYKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC1tICJpbml0aWFsIGNvbW1pdCIgJiYKKwlnaXQgY2hlY2tvdXQgLWIgZmVhdHVyZS1icmFuY2ggJiYKKwllY2hvIGFub3RoZXItaGVsbG8gPmZpbGUxICYmCisJZWNobyBnb29kYnllID5maWxlMiAmJgorCWdpdCBhZGQgLiAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gInNlY29uZCBjb21taXQiICYmCisJZWNobyBmaW5hbC1nb29kYnllID5maWxlMyAmJgorCWdpdCBhZGQgLiAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gInRoaXJkIGNvbW1pdCIgJiYKKwlnaXQgY2hlY2tvdXQgLWIgdW5yZWxhdGVkLW9udG8tYnJhbmNoIG1hc3RlciAmJgorCWVjaG8gdW5yZWxhdGVkID5maWxlNCAmJgorCWdpdCBhZGQgLiAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gInVucmVsYXRlZCBjb21taXQiICYmCisJZ2l0IGNoZWNrb3V0IC1iIHJlbGF0ZWQtb250by1icmFuY2ggbWFzdGVyICYmCisJZWNobyBjb25mbGljdGluZy1jaGFuZ2UgPmZpbGUyICYmCisJZ2l0IGFkZCAuICYmCisJdGVzdF90aWNrICYmCisJZ2l0IGNvbW1pdCAtbSAicmVsYXRlZCBjb21taXQiCisnCisKK3Rlc3RyZWJhc2UoKSB7CisJdHlwZT0kMQorCWRvdGVzdD0kMgorCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlJHR5cGU6IGRpcnR5IHdvcmt0cmVlLCBub24tY29uZmxpY3RpbmcgcmViYXNlIiAnCisJCXRlc3RfY29uZmlnIHJlYmFzZS5hdXRvc3Rhc2ggdHJ1ZSAmJgorCQlnaXQgcmVzZXQgLS1oYXJkICYmCisJCWdpdCBjaGVja291dCAtYiByZWJhc2VkLWZlYXR1cmUtYnJhbmNoIGZlYXR1cmUtYnJhbmNoICYmCisJCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgYnJhbmNoIC1EIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggJiYKKwkJZWNobyBkaXJ0eSA+PmZpbGUzICYmCisJCWdpdCByZWJhc2UkdHlwZSB1bnJlbGF0ZWQtb250by1icmFuY2ggJiYKKwkJZ3JlcCB1bnJlbGF0ZWQgZmlsZTQgJiYKKwkJZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKwknCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UkdHlwZTogZGlydHkgaW5kZXgsIG5vbi1jb25mbGljdGluZyByZWJhc2UiICcKKwkJdGVzdF9jb25maWcgcmViYXNlLmF1dG9zdGFzaCB0cnVlICYmCisJCWdpdCByZXNldCAtLWhhcmQgJiYKKwkJZ2l0IGNoZWNrb3V0IC1iIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggZmVhdHVyZS1icmFuY2ggJiYKKwkJdGVzdF93aGVuX2ZpbmlzaGVkIGdpdCBicmFuY2ggLUQgcmViYXNlZC1mZWF0dXJlLWJyYW5jaCAmJgorCQllY2hvIGRpcnR5ID4+ZmlsZTMgJiYKKwkJZ2l0IGFkZCBmaWxlMyAmJgorCQlnaXQgcmViYXNlJHR5cGUgdW5yZWxhdGVkLW9udG8tYnJhbmNoICYmCisJCWdyZXAgdW5yZWxhdGVkIGZpbGU0ICYmCisJCWdyZXAgZGlydHkgZmlsZTMgJiYKKwkJZ2l0IGNoZWNrb3V0IGZlYXR1cmUtYnJhbmNoCisJJworCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlJHR5cGU6IGNvbmZsaWN0aW5nIHJlYmFzZSIgJworCQl0ZXN0X2NvbmZpZyByZWJhc2UuYXV0b3N0YXNoIHRydWUgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCAmJgorCQlnaXQgY2hlY2tvdXQgLWIgcmViYXNlZC1mZWF0dXJlLWJyYW5jaCBmZWF0dXJlLWJyYW5jaCAmJgorCQl0ZXN0X3doZW5fZmluaXNoZWQgZ2l0IGJyYW5jaCAtRCByZWJhc2VkLWZlYXR1cmUtYnJhbmNoICYmCisJCWVjaG8gZGlydHkgPj5maWxlMyAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlJHR5cGUgcmVsYXRlZC1vbnRvLWJyYW5jaCAmJgorCQl0ZXN0X3BhdGhfaXNfZmlsZSAkZG90ZXN0L2F1dG9zdGFzaCAmJgorCQkhIGdyZXAgZGlydHkgZmlsZTMgJiYKKwkJcm0gLXJmICRkb3Rlc3QgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKwknCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UkdHlwZTogLS1jb250aW51ZSIgJworCQl0ZXN0X2NvbmZpZyByZWJhc2UuYXV0b3N0YXNoIHRydWUgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCAmJgorCQlnaXQgY2hlY2tvdXQgLWIgcmViYXNlZC1mZWF0dXJlLWJyYW5jaCBmZWF0dXJlLWJyYW5jaCAmJgorCQl0ZXN0X3doZW5fZmluaXNoZWQgZ2l0IGJyYW5jaCAtRCByZWJhc2VkLWZlYXR1cmUtYnJhbmNoICYmCisJCWVjaG8gZGlydHkgPj5maWxlMyAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlJHR5cGUgcmVsYXRlZC1vbnRvLWJyYW5jaCAmJgorCQl0ZXN0X3BhdGhfaXNfZmlsZSAkZG90ZXN0L2F1dG9zdGFzaCAmJgorCQkhIGdyZXAgZGlydHkgZmlsZTMgJiYKKwkJZWNobyAiY29uZmxpY3RpbmctcGx1cy1nb29kYnllIiA+ZmlsZTIgJiYKKwkJZ2l0IGFkZCBmaWxlMiAmJgorCQlnaXQgcmViYXNlIC0tY29udGludWUgJiYKKwkJdGVzdF9wYXRoX2lzX21pc3NpbmcgJGRvdGVzdC9hdXRvc3Rhc2ggJiYKKwkJZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKwknCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UkdHlwZTogLS1za2lwIiAnCisJCXRlc3RfY29uZmlnIHJlYmFzZS5hdXRvc3Rhc2ggdHJ1ZSAmJgorCQlnaXQgcmVzZXQgLS1oYXJkICYmCisJCWdpdCBjaGVja291dCAtYiByZWJhc2VkLWZlYXR1cmUtYnJhbmNoIGZlYXR1cmUtYnJhbmNoICYmCisJCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgYnJhbmNoIC1EIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggJiYKKwkJZWNobyBkaXJ0eSA+PmZpbGUzICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZWJhc2UkdHlwZSByZWxhdGVkLW9udG8tYnJhbmNoICYmCisJCXRlc3RfcGF0aF9pc19maWxlICRkb3Rlc3QvYXV0b3N0YXNoICYmCisJCSEgZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgcmViYXNlIC0tc2tpcCAmJgorCQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAkZG90ZXN0L2F1dG9zdGFzaCAmJgorCQlncmVwIGRpcnR5IGZpbGUzICYmCisJCWdpdCBjaGVja291dCBmZWF0dXJlLWJyYW5jaAorCScKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSR0eXBlOiAtLWFib3J0IiAnCisJCXRlc3RfY29uZmlnIHJlYmFzZS5hdXRvc3Rhc2ggdHJ1ZSAmJgorCQlnaXQgcmVzZXQgLS1oYXJkICYmCisJCWdpdCBjaGVja291dCAtYiByZWJhc2VkLWZlYXR1cmUtYnJhbmNoIGZlYXR1cmUtYnJhbmNoICYmCisJCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgYnJhbmNoIC1EIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggJiYKKwkJZWNobyBkaXJ0eSA+PmZpbGUzICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZWJhc2UkdHlwZSByZWxhdGVkLW9udG8tYnJhbmNoICYmCisJCXRlc3RfcGF0aF9pc19maWxlICRkb3Rlc3QvYXV0b3N0YXNoICYmCisJCSEgZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgcmViYXNlIC0tYWJvcnQgJiYKKwkJdGVzdF9wYXRoX2lzX21pc3NpbmcgJGRvdGVzdC9hdXRvc3Rhc2ggJiYKKwkJZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKwknCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UkdHlwZTogbm9uLWNvbmZsaWN0aW5nIHJlYmFzZSwgY29uZmxpY3Rpbmcgc3Rhc2giICcKKwkJdGVzdF9jb25maWcgcmViYXNlLmF1dG9zdGFzaCB0cnVlICYmCisJCWdpdCByZXNldCAtLWhhcmQgJiYKKwkJZ2l0IGNoZWNrb3V0IC1iIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggZmVhdHVyZS1icmFuY2ggJiYKKwkJdGVzdF93aGVuX2ZpbmlzaGVkIGdpdCBicmFuY2ggLUQgcmViYXNlZC1mZWF0dXJlLWJyYW5jaCAmJgorCQllY2hvIGRpcnR5ID5maWxlNCAmJgorCQlnaXQgYWRkIGZpbGU0ICYmCisJCWdpdCByZWJhc2UkdHlwZSB1bnJlbGF0ZWQtb250by1icmFuY2ggJiYKKwkJdGVzdF9wYXRoX2lzX21pc3NpbmcgJGRvdGVzdCAmJgorCQlnaXQgcmVzZXQgLS1oYXJkICYmCisJCWdyZXAgdW5yZWxhdGVkIGZpbGU0ICYmCisJCSEgZ3JlcCBkaXJ0eSBmaWxlNCAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2ggJiYKKwkJZ2l0IHN0YXNoIHBvcCAmJgorCQlncmVwIGRpcnR5IGZpbGU0CisJJworfQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2U6IGZhc3QtZm9yd2FyZCByZWJhc2UiICcKKwl0ZXN0X2NvbmZpZyByZWJhc2UuYXV0b3N0YXNoIHRydWUgJiYKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZ2l0IGNoZWNrb3V0IC1iIGJlaGluZC1mZWF0dXJlLWJyYW5jaCBmZWF0dXJlLWJyYW5jaH4xICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkIGdpdCBicmFuY2ggLUQgYmVoaW5kLWZlYXR1cmUtYnJhbmNoICYmCisJZWNobyBkaXJ0eSA+PmZpbGUxICYmCisJZ2l0IHJlYmFzZSBmZWF0dXJlLWJyYW5jaCAmJgorCWdyZXAgZGlydHkgZmlsZTEgJiYKKwlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlOiBub29wIHJlYmFzZSIgJworCXRlc3RfY29uZmlnIHJlYmFzZS5hdXRvc3Rhc2ggdHJ1ZSAmJgorCWdpdCByZXNldCAtLWhhcmQgJiYKKwlnaXQgY2hlY2tvdXQgLWIgc2FtZS1mZWF0dXJlLWJyYW5jaCBmZWF0dXJlLWJyYW5jaCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgYnJhbmNoIC1EIHNhbWUtZmVhdHVyZS1icmFuY2ggJiYKKwllY2hvIGRpcnR5ID4+ZmlsZTEgJiYKKwlnaXQgcmViYXNlIGZlYXR1cmUtYnJhbmNoICYmCisJZ3JlcCBkaXJ0eSBmaWxlMSAmJgorCWdpdCBjaGVja291dCBmZWF0dXJlLWJyYW5jaAorJworCit0ZXN0cmViYXNlICIiIC5naXQvcmViYXNlLWFwcGx5Cit0ZXN0cmViYXNlICIgLS1tZXJnZSIgLmdpdC9yZWJhc2UtbWVyZ2UKK3Rlc3RyZWJhc2UgIiAtLWludGVyYWN0aXZlIiAuZ2l0L3JlYmFzZS1tZXJnZQorCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDM0MjEtcmViYXNlLXRvcG9sb2d5LWxpbmVhci5zaCBiL3QvdDM0MjEtcmViYXNlLXRvcG9sb2d5LWxpbmVhci5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YzU1Y2JhCi0tLSAvZGV2L251bGwKKysrIGIvdC90MzQyMS1yZWJhc2UtdG9wb2xvZ3ktbGluZWFyLnNoCkBAIC0wLDAgKzEsMzUwIEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nYmFzaWMgcmViYXNlIHRvcG9sb2d5IHRlc3RzJworLiAuL3Rlc3QtbGliLnNoCisuICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1yZWJhc2Uuc2gKKworIyBhLS0tYi0tLWMKKyMgICAgICBcCisjICAgICAgIGQtLS1lCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCcgJworCXRlc3RfY29tbWl0IGEgJiYKKwl0ZXN0X2NvbW1pdCBiICYmCisJdGVzdF9jb21taXQgYyAmJgorCWdpdCBjaGVja291dCBiICYmCisJdGVzdF9jb21taXQgZCAmJgorCXRlc3RfY29tbWl0IGUKKycKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInNpbXBsZSByZWJhc2UgJCoiICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogYyBlICYmCisJCXRlc3RfY21wX3JldiBjIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnZCBlJyBjLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtcAorCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIGlzIG5vLW9wIGlmIHVwc3RyZWFtIGlzIGFuIGFuY2VzdG9yIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGIgZSAmJgorCQl0ZXN0X2NtcF9yZXYgZSBIRUFECisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInJlYmFzZSAkKiAtZiByZXdyaXRlcyBldmVuIGlmIHVwc3RyZWFtIGlzIGFuIGFuY2VzdG9yIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIC1mIGIgZSAmJgorCQkhIHRlc3RfY21wX3JldiBlIEhFQUQgJiYKKwkJdGVzdF9jbXBfcmV2IGIgSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICdkIGUnIGIuLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogZmFzdC1mb3J3YXJkcyBmcm9tIGFuY2VzdG9yIG9mIHVwc3RyZWFtIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGUgYiAmJgorCQl0ZXN0X2NtcF9yZXYgZSBIRUFECisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKworIyAgICAgICBmCisjICAgICAgLworIyBhLS0tYi0tLWMtLS1nLS0taAorIyAgICAgIFwKKyMgICAgICAgZC0tLWdwLS1pCisjCisjIGdwID0gY2hlcnJ5LXBpY2tlZCBnCisjIGggPSByZXZlcnRlZCBnCisjCisjIFJldmVydGVkIHBhdGNoZXMgYXJlIHRoZXJlIGZvciB0ZXN0cyB0byBiZSBhYmxlIHRvIGNoZWNrIGlmIGEgY29tbWl0CisjIHRoYXQgaW50cm9kdWNlZCB0aGUgc2FtZSBjaGFuZ2UgYXMgYW5vdGhlciBjb21taXQgaXMKKyMgZHJvcHBlZC4gV2l0aG91dCByZXZlcnRlZCBjb21taXRzLCB3ZSBjb3VsZCBnZXQgZmFsc2UgcG9zaXRpdmVzCisjIGJlY2F1c2UgYXBwbHlpbmcgdGhlIHBhdGNoIHN1Y2NlZWRzLCBidXQgc2ltcGx5IHJlc3VsdHMgaW4gbm8KKyMgY2hhbmdlcy4KK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIG9mIGxpbmVhciBoaXN0b3J5IGZvciByYW5nZSBzZWxlY3Rpb24gdGVzdHMnICcKKwlnaXQgY2hlY2tvdXQgYyAmJgorCXRlc3RfY29tbWl0IGcgJiYKKwlyZXZlcnQgaCBnICYmCisJZ2l0IGNoZWNrb3V0IGQgJiYKKwljaGVycnlfcGljayBncCBnICYmCisJdGVzdF9jb21taXQgaSAmJgorCWdpdCBjaGVja291dCBiICYmCisJdGVzdF9jb21taXQgZgorJworCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIGRyb3BzIHBhdGNoZXMgaW4gdXBzdHJlYW0iICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogaCBpICYmCisJCXRlc3RfY21wX3JldiBoIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnZCBpJyBoLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIGZhaWx1cmUgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtcAorCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIGNhbiBkcm9wIGxhc3QgcGF0Y2ggaWYgaW4gdXBzdHJlYW0iICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogaCBncCAmJgorCQl0ZXN0X2NtcF9yZXYgaCBIRUFEXiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnZCcgaC4uCisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInJlYmFzZSAkKiAtLW9udG8gZHJvcHMgcGF0Y2hlcyBpbiB1cHN0cmVhbSIgIgorCQlyZXNldF9yZWJhc2UgJiYKKwkJZ2l0IHJlYmFzZSAkKiAtLW9udG8gZiBoIGkgJiYKKwkJdGVzdF9jbXBfcmV2IGYgSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICdkIGknIGYuLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogLS1vbnRvIGRvZXMgbm90IGRyb3AgcGF0Y2hlcyBpbiBvbnRvIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIC0tb250byBoIGYgaSAmJgorCQl0ZXN0X2NtcF9yZXYgaCBIRUFEfjMgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgZ3AgaScgaC4uCisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKworIyBhLS0tYi0tLWMtLS1qIQorIyAgICAgIFwKKyMgICAgICAgZC0tLWshLS1sCisjCisjICEgPSBlbXB0eQordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgb2YgbGluZWFyIGhpc3RvcnkgZm9yIGVtcHR5IGNvbW1pdCB0ZXN0cycgJworCWdpdCBjaGVja291dCBjICYmCisJbWFrZV9lbXB0eSBqICYmCisJZ2l0IGNoZWNrb3V0IGQgJiYKKwltYWtlX2VtcHR5IGsgJiYKKwl0ZXN0X2NvbW1pdCBsCisnCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogZHJvcHMgZW1wdHkgY29tbWl0IiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGMgbCAmJgorCQl0ZXN0X2NtcF9yZXYgYyBIRUFEfjIgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgbCcgYy4uCisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInJlYmFzZSAkKiAtLWtlZXAtZW1wdHkiICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogLS1rZWVwLWVtcHR5IGMgbCAmJgorCQl0ZXN0X2NtcF9yZXYgYyBIRUFEfjMgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgayBsJyBjLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIGZhaWx1cmUgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtcAorCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIC0ta2VlcC1lbXB0eSBrZWVwcyBlbXB0eSBldmVuIGlmIGFscmVhZHkgaW4gdXBzdHJlYW0iICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogLS1rZWVwLWVtcHR5IGogbCAmJgorCQl0ZXN0X2NtcF9yZXYgaiBIRUFEfjMgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgayBsJyBqLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIGZhaWx1cmUgLW0KK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1pCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtcAorCisjICAgICAgIG0KKyMgICAgICAvCisjIGEtLS1iLS0tYy0tLWcKKyMKKyMgeC0tLXktLS1icAorIworIyBicCA9IGNoZXJyeS1waWNrZWQgYgorIyBtID0gcmV2ZXJ0ZWQgYgorIworIyBSZXZlcnRlZCBwYXRjaGVzIGFyZSB0aGVyZSBmb3IgdGVzdHMgdG8gYmUgYWJsZSB0byBjaGVjayBpZiBhIGNvbW1pdAorIyB0aGF0IGludHJvZHVjZWQgdGhlIHNhbWUgY2hhbmdlIGFzIGFub3RoZXIgY29tbWl0IGlzCisjIGRyb3BwZWQuIFdpdGhvdXQgcmV2ZXJ0ZWQgY29tbWl0cywgd2UgY291bGQgZ2V0IGZhbHNlIHBvc2l0aXZlcworIyBiZWNhdXNlIGFwcGx5aW5nIHRoZSBwYXRjaCBzdWNjZWVkcywgYnV0IHNpbXBseSByZXN1bHRzIGluIG5vCisjIGNoYW5nZXMuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvZiBsaW5lYXIgaGlzdG9yeSBmb3IgdGVzdCBpbnZvbHZpbmcgcm9vdCcgJworCWdpdCBjaGVja291dCBiICYmCisJcmV2ZXJ0IG0gYiAmJgorCWdpdCBjaGVja291dCAtLW9ycGhhbiBkaXNqb2ludCAmJgorCWdpdCBybSAtcmYgLiAmJgorCXRlc3RfY29tbWl0IHggJiYKKwl0ZXN0X2NvbW1pdCB5ICYmCisJY2hlcnJ5X3BpY2sgYnAgYgorJworCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIC0tb250byAtLXJvb3QiICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogLS1vbnRvIGMgLS1yb290IHkgJiYKKwkJdGVzdF9jbXBfcmV2IGMgSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICd4IHknIGMuLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogd2l0aG91dCAtLW9udG8gLS1yb290IHdpdGggZGlzam9pbnQgaGlzdG9yeSIgIgorCQlyZXNldF9yZWJhc2UgJiYKKwkJZ2l0IHJlYmFzZSAkKiBjIHkgJiYKKwkJdGVzdF9jbXBfcmV2IGMgSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICd4IHknIGMuLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogLS1vbnRvIC0tcm9vdCBkcm9wcyBwYXRjaCBpbiBvbnRvIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIC0tb250byBtIC0tcm9vdCBicCAmJgorCQl0ZXN0X2NtcF9yZXYgbSBIRUFEfjIgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ3ggeScgbS4uCisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInJlYmFzZSAkKiAtLW9udG8gLS1yb290IHdpdGggbWVyZ2UtYmFzZSBkb2VzIG5vdCBnbyB0byByb290IiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIC0tb250byBtIC0tcm9vdCBnICYmCisJCXRlc3RfY21wX3JldiBtIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnYyBnJyBtLi4KKwkiCit9CisKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogd2l0aG91dCAtLW9udG8gLS1yb290IHdpdGggZGlzam9pbnQgaGlzdG9yeSBkcm9wcyBwYXRjaCBpbiBvbnRvIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIG0gYnAgJiYKKwkJdGVzdF9jbXBfcmV2IG0gSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICd4IHknIG0uLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogLS1yb290IG9uIGxpbmVhciBoaXN0b3J5IGlzIGEgbm8tb3AiICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogLS1yb290IGMgJiYKKwkJdGVzdF9jbXBfcmV2IGMgSEVBRAorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIGZhaWx1cmUgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogLWYgLS1yb290IG9uIGxpbmVhciBoaXN0b3J5IGNhdXNlcyByZS13cml0ZSIgIgorCQlyZXNldF9yZWJhc2UgJiYKKwkJZ2l0IHJlYmFzZSAkKiAtZiAtLXJvb3QgYyAmJgorCQkhIHRlc3RfY21wX3JldiBhIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnYSBiIGMnIEhFQUQKKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtcAorCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDM0MjUtcmViYXNlLXRvcG9sb2d5LW1lcmdlcy5zaCBiL3QvdDM0MjUtcmViYXNlLXRvcG9sb2d5LW1lcmdlcy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZDE5NWZiCi0tLSAvZGV2L251bGwKKysrIGIvdC90MzQyNS1yZWJhc2UtdG9wb2xvZ3ktbWVyZ2VzLnNoCkBAIC0wLDAgKzEsMjU4IEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0ncmViYXNlIHRvcG9sb2d5IHRlc3RzIHdpdGggbWVyZ2VzJworLiAuL3Rlc3QtbGliLnNoCisuICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1yZWJhc2Uuc2gKKwordGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAoKSB7CisJZXhwZWN0ZWQ9IiQxIgorCXNoaWZ0CisJc2V0IC0tICQoZ2l0IGxvZyAtLWZvcm1hdD0lcyAtLW5vLXdhbGs9dW5zb3J0ZWQgIiRAIikKKwl0ZXN0ICIkZXhwZWN0ZWQiID0gIiQqIgorfQorCisjIGEtLS1iLS0tLS0tLS0tLS1jCisjICAgICAgXCAgICAgICAgICAgXAorIyAgICAgICBkLS0tLS0tLWUgICBcCisjICAgICAgICBcICAgICAgIFwgICBcCisjICAgICAgICAgbi0tLW8tLS13LS0tdgorIyAgICAgICAgICAgICAgXAorIyAgICAgICAgICAgICAgIHoKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIG9mIG5vbi1saW5lYXItaGlzdG9yeScgJworCXRlc3RfY29tbWl0IGEgJiYKKwl0ZXN0X2NvbW1pdCBiICYmCisJdGVzdF9jb21taXQgYyAmJgorCWdpdCBjaGVja291dCBiICYmCisJdGVzdF9jb21taXQgZCAmJgorCXRlc3RfY29tbWl0IGUKKworCWdpdCBjaGVja291dCBjICYmCisJdGVzdF9jb21taXQgZyAmJgorCXJldmVydCBoIGcgJiYKKwlnaXQgY2hlY2tvdXQgZCAmJgorCWNoZXJyeV9waWNrIGdwIGcgJiYKKwl0ZXN0X2NvbW1pdCBpICYmCisJZ2l0IGNoZWNrb3V0IGIgJiYKKwl0ZXN0X2NvbW1pdCBmCisKKwlnaXQgY2hlY2tvdXQgZCAmJgorCXRlc3RfY29tbWl0IG4gJiYKKwl0ZXN0X2NvbW1pdCBvICYmCisJdGVzdF9tZXJnZSB3IGUgJiYKKwl0ZXN0X21lcmdlIHYgYyAmJgorCWdpdCBjaGVja291dCBvICYmCisJdGVzdF9jb21taXQgegorJworCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIGFmdGVyIG1lcmdlIGZyb20gdXBzdHJlYW0iICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogZSB3ICYmCisJCXRlc3RfY21wX3JldiBlIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnbiBvJyBlLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwlleHBlY3RlZD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIG9mIG5vbi1saW5lYXIgaGlzdG9yeSBpcyBsaW5lYXJpemVkIGluIHBsYWNlIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGQgdyAmJgorCQl0ZXN0X2NtcF9yZXYgZCBIRUFEfjMgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgIlwnIiRleHBlY3RlZCJcJyIgZC4uCisJIgorfQorI1RPRE86IG1ha2Ugb3JkZXIgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGZsYXZvcnMgb2YgcmViYXNlCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnZSBuIG8nICcnCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnZSBuIG8nIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnbiBvIGUnIC1pCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwlleHBlY3RlZD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIG9mIG5vbi1saW5lYXIgaGlzdG9yeSBpcyBsaW5lYXJpemVkIHVwc3RyZWFtIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGMgdyAmJgorCQl0ZXN0X2NtcF9yZXYgYyBIRUFEfjQgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgIlwnIiRleHBlY3RlZCJcJyIgYy4uCisJIgorfQorI1RPRE86IG1ha2Ugb3JkZXIgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGZsYXZvcnMgb2YgcmViYXNlCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnZCBlIG4gbycgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICdkIGUgbiBvJyAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJ2QgbiBvIGUnIC1pCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwlleHBlY3RlZD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIG9mIG5vbi1saW5lYXIgaGlzdG9yeSB3aXRoIG1lcmdlcyBhZnRlciB1cHN0cmVhbSBtZXJnZSBpcyBsaW5lYXJpemVkIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGMgdiAmJgorCQl0ZXN0X2NtcF9yZXYgYyBIRUFEfjQgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgIlwnIiRleHBlY3RlZCJcJyIgYy4uCisJIgorfQorI1RPRE86IG1ha2Ugb3JkZXIgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGZsYXZvcnMgb2YgcmViYXNlCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnZCBlIG4gbycgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICdkIGUgbiBvJyAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJ2QgbiBvIGUnIC1pCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSAtcCBpcyBuby1vcCBpbiBub24tbGluZWFyIGhpc3RvcnkiICIKKwlyZXNldF9yZWJhc2UgJiYKKwlnaXQgcmViYXNlIC1wIGQgdyAmJgorCXRlc3RfY21wX3JldiB3IEhFQUQKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIGlzIG5vLW9wIHdoZW4gYmFzZSBpbnNpZGUgc2Vjb25kIHBhcmVudCIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgZSB3ICYmCisJdGVzdF9jbXBfcmV2IHcgSEVBRAorIgorCit0ZXN0X2V4cGVjdF9mYWlsdXJlICJyZWJhc2UgLXAgLS1yb290IG9uIG5vbi1saW5lYXIgaGlzdG9yeSBpcyBhIG5vLW9wIiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCAtLXJvb3QgdyAmJgorCXRlc3RfY21wX3JldiB3IEhFQUQKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIHJlLWNyZWF0ZXMgbWVyZ2UgZnJvbSBzaWRlIGJyYW5jaCIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgeiB3ICYmCisJdGVzdF9jbXBfcmV2IHogSEVBRF4gJiYKKwl0ZXN0X2NtcF9yZXYgd14yIEhFQUReMgorIgorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UgLXAgcmUtY3JlYXRlcyBpbnRlcm5hbCBtZXJnZSIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgYyB3ICYmCisJdGVzdF9jbXBfcmV2IGMgSEVBRH40ICYmCisJdGVzdF9jbXBfcmV2IEhFQUReMl4gSEVBRH4zICYmCisJdGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAnZCBuIGUgbyB3JyBIRUFEfjMgSEVBRH4yIEhFQUReMiBIRUFEXiBIRUFECisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSAtcCBjYW4gcmUtY3JlYXRlIHR3byBicmFuY2hlcyBvbiBvbnRvIiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCAtLW9udG8gYyBkIHcgJiYKKwl0ZXN0X2NtcF9yZXYgYyBIRUFEfjMgJiYKKwl0ZXN0X2NtcF9yZXYgYyBIRUFEXjJeICYmCisJdGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAnbiBlIG8gdycgSEVBRH4yIEhFQUReMiBIRUFEXiBIRUFECisiCisKKyMgICAgICAgZgorIyAgICAgIC8KKyMgYS0tLWItLS1jLS0tZy0tLWgKKyMgICAgICBcCisjICAgICAgIGQtLS1ncC0taQorIyAgICAgICAgXCAgICAgICBcCisjICAgICAgICAgZS0tLS0tLS11CisjCisjIGdwID0gY2hlcnJ5LXBpY2tlZCBnCisjIGggPSByZXZlcnRlZCBnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvZiBub24tbGluZWFyLWhpc3RvcnkgZm9yIHBhdGNoLWVxdWl2YWxlbmNlIHRlc3RzJyAnCisJZ2l0IGNoZWNrb3V0IGUgJiYKKwl0ZXN0X21lcmdlIHUgaQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UgLXAgcmUtY3JlYXRlcyBoaXN0b3J5IGFyb3VuZCBkcm9wcGVkIGNvbW1pdCBtYXRjaGluZyB1cHN0cmVhbSIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgaCB1ICYmCisJdGVzdF9jbXBfcmV2IGggSEVBRH4zICYmCisJdGVzdF9jbXBfcmV2IEhFQUReMl4gSEVBRH4yICYmCisJdGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAnZCBpIGUgdScgSEVBRH4yIEhFQUReMiBIRUFEXiBIRUFECisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSAtcCAtLW9udG8gaW4gbWVyZ2VkIGhpc3RvcnkgZHJvcHMgcGF0Y2hlcyBpbiB1cHN0cmVhbSIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgLS1vbnRvIGYgaCB1ICYmCisJdGVzdF9jbXBfcmV2IGYgSEVBRH4zICYmCisJdGVzdF9jbXBfcmV2IEhFQUReMl4gSEVBRH4yICYmCisJdGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAnZCBpIGUgdScgSEVBRH4yIEhFQUReMiBIRUFEXiBIRUFECisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSAtcCAtLW9udG8gaW4gbWVyZ2VkIGhpc3RvcnkgZG9lcyBub3QgZHJvcCBwYXRjaGVzIGluIG9udG8iICIKKwlyZXNldF9yZWJhc2UgJiYKKwlnaXQgcmViYXNlIC1wIC0tb250byBoIGYgdSAmJgorCXRlc3RfY21wX3JldiBoIEhFQUR+MyAmJgorCXRlc3RfY21wX3JldiBIRUFEXjJ+MiBIRUFEfjIgJiYKKwl0ZXN0X3JldmlzaW9uX3N1YmplY3RzICdkIGdwIGkgZSB1JyBIRUFEfjIgSEVBRF4yXiBIRUFEXjIgSEVBRF4gSEVBRAorIgorCisjIGEtLS1iLS0tYy0tLWctLS1oCisjICAgICAgXAorIyAgICAgICBkLS0tZ3AtLXMKKyMgICAgICAgIFwgICBcIC8KKyMgICAgICAgICBcICAgWAorIyAgICAgICAgICBcIC8gXAorIyAgICAgICAgICAgZS0tLXQKKyMKKyMgZ3AgPSBjaGVycnktcGlja2VkIGcKKyMgaCA9IHJldmVydGVkIGcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIG9mIG5vbi1saW5lYXItaGlzdG9yeSBmb3IgZHJvcHBpbmcgd2hvbGUgc2lkZScgJworCWdpdCBjaGVja291dCBncCAmJgorCXRlc3RfbWVyZ2UgcyBlICYmCisJZ2l0IGNoZWNrb3V0IGUgJiYKKwl0ZXN0X21lcmdlIHQgZ3AKKycKKwordGVzdF9leHBlY3RfZmFpbHVyZSAicmViYXNlIC1wIGRyb3BzIG1lcmdlIGNvbW1pdCB3aGVuIGVudGlyZSBmaXJzdC1wYXJlbnQgc2lkZSBpcyBkcm9wcGVkIiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCBoIHMgJiYKKwl0ZXN0X2NtcF9yZXYgaCBIRUFEfjIgJiYKKwl0ZXN0X2xpbmVhcl9yYW5nZSAnZCBlJyBoLi4KKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIGRyb3BzIG1lcmdlIGNvbW1pdCB3aGVuIGVudGlyZSBzZWNvbmQtcGFyZW50IHNpZGUgaXMgZHJvcHBlZCIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgaCB0ICYmCisJdGVzdF9jbXBfcmV2IGggSEVBRH4yICYmCisJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgZScgaC4uCisiCisKKyMgYS0tLWItLS1jCisjICAgICAgXAorIyAgICAgICBkLS0tZQorIyAgICAgICAgXCAgIFwKKyMgICAgICAgICBuLS0tcgorIyAgICAgICAgICBcCisjICAgICAgICAgICBvCisjCisjIHIgPSB0cmVlLXNhbWUgd2l0aCBuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvZiBub24tbGluZWFyLWhpc3RvcnkgZm9yIGVtcHR5IGNvbW1pdHMnICcKKwlnaXQgY2hlY2tvdXQgbiAmJgorCWdpdCBtZXJnZSAtLW5vLWNvbW1pdCBlICYmCisJZ2l0IHJlc2V0IG4gLiAmJgorCWdpdCBjb21taXQgLW0gciAmJgorCWdpdCByZXNldCAtLWhhcmQgJiYKKwlnaXQgY2xlYW4gLWYgJiYKKwlnaXQgdGFnIHIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIHJlLWNyZWF0ZXMgZW1wdHkgaW50ZXJuYWwgbWVyZ2UgY29tbWl0IiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCBjIHIgJiYKKwl0ZXN0X2NtcF9yZXYgYyBIRUFEfjMgJiYKKwl0ZXN0X2NtcF9yZXYgSEVBRF4yXiBIRUFEfjIgJiYKKwl0ZXN0X3JldmlzaW9uX3N1YmplY3RzICdkIGUgbiByJyBIRUFEfjIgSEVBRF4yIEhFQUReIEhFQUQKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIHJlLWNyZWF0ZXMgZW1wdHkgbWVyZ2UgY29tbWl0IiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCBvIHIgJiYKKwl0ZXN0X2NtcF9yZXYgZSBIRUFEXjIgJiYKKwl0ZXN0X2NtcF9yZXYgbyBIRUFEXiAmJgorCXRlc3RfcmV2aXNpb25fc3ViamVjdHMgJ3InIEhFQUQKKyIKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzNTA1LWNoZXJyeS1waWNrLWVtcHR5LnNoIGIvdC90MzUwNS1jaGVycnktcGljay1lbXB0eS5zaAppbmRleCBhMGM2ZTMwLi5mYmRjNDdjIDEwMDc1NQotLS0gYS90L3QzNTA1LWNoZXJyeS1waWNrLWVtcHR5LnNoCisrKyBiL3QvdDM1MDUtY2hlcnJ5LXBpY2stZW1wdHkuc2gKQEAgLTI4LDI5ICsyOCwyMSBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVycnktcGljayBhbiBlbXB0eSBjb21taXQnICcKLQlnaXQgY2hlY2tvdXQgbWFzdGVyICYmIHsKLQkJZ2l0IGNoZXJyeS1waWNrIGVtcHR5LWJyYW5jaF4KLQkJdGVzdCAiJD8iID0gMQotCX0KKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF9leHBlY3RfY29kZSAxIGdpdCBjaGVycnktcGljayBlbXB0eS1icmFuY2heCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2luZGV4IGxvY2tmaWxlIHdhcyByZW1vdmVkJyAnCi0KIAl0ZXN0ICEgLWYgLmdpdC9pbmRleC5sb2NrCi0KICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlcnJ5LXBpY2sgYSBjb21taXQgd2l0aCBhbiBlbXB0eSBtZXNzYWdlJyAnCi0JZ2l0IGNoZWNrb3V0IG1hc3RlciAmJiB7Ci0JCWdpdCBjaGVycnktcGljayBlbXB0eS1icmFuY2gKLQkJdGVzdCAiJD8iID0gMQotCX0KKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF9leHBlY3RfY29kZSAxIGdpdCBjaGVycnktcGljayBlbXB0eS1icmFuY2gKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaW5kZXggbG9ja2ZpbGUgd2FzIHJlbW92ZWQnICcKLQogCXRlc3QgISAtZiAuZ2l0L2luZGV4LmxvY2sKLQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVycnktcGljayBhIGNvbW1pdCB3aXRoIGFuIGVtcHR5IG1lc3NhZ2Ugd2l0aCAtLWFsbG93LWVtcHR5LW1lc3NhZ2UnICcKQEAgLTEwMSw3ICs5Myw3IEBACiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBmb3JrXjAgJiYKIAlnaXQgY2hlcnJ5LXBpY2sgLS1rZWVwLXJlZHVuZGFudC1jb21taXRzIG1hc3RlciAmJgotCWdpdCBzaG93IC1zIC0tZm9ybWF0PSclcycgPmFjdHVhbCAmJgorCWdpdCBzaG93IC1zIC0tZm9ybWF0PSVzID5hY3R1YWwgJiYKIAllY2hvICJhZGQgZmlsZTIgb24gbWFzdGVyIiA+ZXhwZWN0ICYmCiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwpkaWZmIC0tZ2l0IGEvdC90MzUwOS1jaGVycnktcGljay1tZXJnZS1kZi5zaCBiL3QvdDM1MDktY2hlcnJ5LXBpY2stbWVyZ2UtZGYuc2gKaW5kZXggZGY5MjFkMS4uYTViNmE1ZiAxMDA3NTUKLS0tIGEvdC90MzUwOS1jaGVycnktcGljay1tZXJnZS1kZi5zaAorKysgYi90L3QzNTA5LWNoZXJyeS1waWNrLW1lcmdlLWRmLnNoCkBAIC0xMCwxNyArMTAsMTUgQEAKIAlnaXQgY29tbWl0IC1tIGEKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnU2V0dXAgcmVuYW1lIGFjcm9zcyBwYXRocyBlYWNoIGJlbG93IEQvRiBjb25mbGljdHMnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1NldHVwIHJlbmFtZSBhY3Jvc3MgcGF0aHMgZWFjaCBiZWxvdyBEL0YgY29uZmxpY3RzJyAnCiAJbWtkaXIgYiAmJgotCWxuIC1zIC4uL2EgYi9hICYmCi0JZ2l0IGFkZCBiICYmCisJdGVzdF9sbl9zX2FkZCAuLi9hIGIvYSAmJgogCWdpdCBjb21taXQgLW0gYiAmJgogCiAJZ2l0IGNoZWNrb3V0IC1iIGJyYW5jaCAmJgogCXJtIGIvYSAmJgotCW12IGEgYi9hICYmCi0JbG4gLXMgYi9hIGEgJiYKLQlnaXQgYWRkIC4gJiYKKwlnaXQgbXYgYSBiL2EgJiYKKwl0ZXN0X2xuX3NfYWRkIGIvYSBhICYmCiAJZ2l0IGNvbW1pdCAtbSBzd2FwICYmCiAKIAk+ZjEgJiYKQEAgLTI4LDcgKzI2LDcgQEAKIAlnaXQgY29tbWl0IC1tIGYxCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ0NoZXJyeS1waWNrIHN1Y2NlZWRzIHdpdGggcmVuYW1lIGFjcm9zcyBEL0YgY29uZmxpY3RzJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdDaGVycnktcGljayBzdWNjZWVkcyB3aXRoIHJlbmFtZSBhY3Jvc3MgRC9GIGNvbmZsaWN0cycgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgbWFzdGVyXjAgJiYKIAlnaXQgY2hlcnJ5LXBpY2sgYnJhbmNoCmRpZmYgLS1naXQgYS90L3QzNjAwLXJtLnNoIGIvdC90MzYwMC1ybS5zaAppbmRleCAwYzQ0ZTlmLi41Yzg3YjU1IDEwMDc1NQotLS0gYS90L3QzNjAwLXJtLnNoCisrKyBiL3QvdDM2MDAtcm0uc2gKQEAgLTY4Nyw0ICs2ODcsMTAwIEBACiAJdGVzdF9wYXRoX2lzX2ZpbGUgZS9mCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGZvciB0ZXN0aW5nIHJtIG1lc3NhZ2VzJyAnCisJPmJhci50eHQgJiYKKwk+Zm9vLnR4dCAmJgorCWdpdCBhZGQgYmFyLnR4dCBmb28udHh0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIGZpbGVzIHdpdGggZGlmZmVyZW50IHN0YWdlZCBjb250ZW50JyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGUKKwlmaWxlIGFuZCB0aGUgSEVBRDoKKwkgICAgYmFyLnR4dAorCSAgICBmb28udHh0CisJKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKQorCUVPRgorCWVjaG8gY29udGVudDEgPmZvby50eHQgJiYKKwllY2hvIGNvbnRlbnQxID5iYXIudHh0ICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJtIGZvby50eHQgYmFyLnR4dCAyPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIGZpbGVzIHdpdGggZGlmZmVyZW50IHN0YWdlZCBjb250ZW50IHdpdGhvdXQgaGludHMnICcKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJZXJyb3I6IHRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZQorCWZpbGUgYW5kIHRoZSBIRUFEOgorCSAgICBiYXIudHh0CisJICAgIGZvby50eHQKKwlFT0YKKwllY2hvIGNvbnRlbnQyID5mb28udHh0ICYmCisJZWNobyBjb250ZW50MiA+YmFyLnR4dCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCAtYyBhZHZpY2Uucm1oaW50cz1mYWxzZSBybSBmb28udHh0IGJhci50eHQgMj5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdybSBmaWxlIHdpdGggbG9jYWwgbW9kaWZpY2F0aW9uJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnM6CisJICAgIGZvby50eHQKKwkodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpCisJRU9GCisJZ2l0IGNvbW1pdCAtbSAidGVzdGluZyBybSAzIiAmJgorCWVjaG8gY29udGVudDMgPmZvby50eHQgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcm0gZm9vLnR4dCAyPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIGZpbGUgd2l0aCBsb2NhbCBtb2RpZmljYXRpb24gd2l0aG91dCBoaW50cycgJworCWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwllcnJvcjogdGhlIGZvbGxvd2luZyBmaWxlIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zOgorCSAgICBiYXIudHh0CisJRU9GCisJZWNobyBjb250ZW50NCA+YmFyLnR4dCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCAtYyBhZHZpY2Uucm1oaW50cz1mYWxzZSBybSBiYXIudHh0IDI+YWN0dWFsICYmCisJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncm0gZmlsZSB3aXRoIGNoYW5nZXMgaW4gdGhlIGluZGV4JyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoKKwkgICAgZm9vLnR4dAorCSh1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkKKwlFT0YKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZWNobyBjb250ZW50NSA+Zm9vLnR4dCAmJgorCWdpdCBhZGQgZm9vLnR4dCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBybSBmb28udHh0IDI+YWN0dWFsICYmCisJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncm0gZmlsZSB3aXRoIGNoYW5nZXMgaW4gdGhlIGluZGV4IHdpdGhvdXQgaGludHMnICcKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJZXJyb3I6IHRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OgorCSAgICBmb28udHh0CisJRU9GCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IC1jIGFkdmljZS5ybWhpbnRzPWZhbHNlIHJtIGZvby50eHQgMj5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdybSBmaWxlcyB3aXRoIHR3byBkaWZmZXJlbnQgZXJyb3JzJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGUgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlCisJZmlsZSBhbmQgdGhlIEhFQUQ6CisJICAgIGZvbzEudHh0CisJKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKQorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoKKwkgICAgYmFyMS50eHQKKwkodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpCisJRU9GCisJZWNobyBjb250ZW50ID5mb28xLnR4dCAmJgorCWdpdCBhZGQgZm9vMS50eHQgJiYKKwllY2hvIGNvbnRlbnQ2ID5mb28xLnR4dCAmJgorCWVjaG8gY29udGVudDYgPmJhcjEudHh0ICYmCisJZ2l0IGFkZCBiYXIxLnR4dCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBybSBiYXIxLnR4dCBmb28xLnR4dCAyPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MzcwMC1hZGQuc2ggYi90L3QzNzAwLWFkZC5zaAppbmRleCA4NzRiM2E2Li5hYWI4NmU4IDEwMDc1NQotLS0gYS90L3QzNzAwLWFkZC5zaAorKysgYi90L3QzNzAwLWFkZC5zaApAQCAtMzAsMTAgKzMwLDkgQEAKIAkgKikgZWNobyBmYWlsOyBnaXQgbHMtZmlsZXMgLS1zdGFnZSB4Zm9vMTsgKGV4aXQgMSk7OwogCSBlc2FjJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdnaXQgYWRkOiBmaWxlbW9kZT0wIHNob3VsZCBub3QgZ2V0IGNvbmZ1c2VkIGJ5IHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBhZGQ6IGZpbGVtb2RlPTAgc2hvdWxkIG5vdCBnZXQgY29uZnVzZWQgYnkgc3ltbGluaycgJwogCXJtIC1mIHhmb28xICYmCi0JbG4gLXMgZm9vIHhmb28xICYmCi0JZ2l0IGFkZCB4Zm9vMSAmJgorCXRlc3RfbG5fc19hZGQgZm9vIHhmb28xICYmCiAJY2FzZSAiYGdpdCBscy1maWxlcyAtLXN0YWdlIHhmb28xYCIgaW4KIAkxMjAwMDAiICIqeGZvbzEpIGVjaG8gcGFzczs7CiAJKikgZWNobyBmYWlsOyBnaXQgbHMtZmlsZXMgLS1zdGFnZSB4Zm9vMTsgKGV4aXQgMSk7OwpAQCAtNTEsMjEgKzUwLDE5IEBACiAJICopIGVjaG8gZmFpbDsgZ2l0IGxzLWZpbGVzIC0tc3RhZ2UgeGZvbzI7IChleGl0IDEpOzsKIAkgZXNhYycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZ2l0IGFkZDogZmlsZW1vZGU9MCBzaG91bGQgbm90IGdldCBjb25mdXNlZCBieSBzeW1saW5rJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgYWRkOiBmaWxlbW9kZT0wIHNob3VsZCBub3QgZ2V0IGNvbmZ1c2VkIGJ5IHN5bWxpbmsnICcKIAlybSAtZiB4Zm9vMiAmJgotCWxuIC1zIGZvbyB4Zm9vMiAmJgotCWdpdCB1cGRhdGUtaW5kZXggLS1hZGQgeGZvbzIgJiYKKwl0ZXN0X2xuX3NfYWRkIGZvbyB4Zm9vMiAmJgogCWNhc2UgImBnaXQgbHMtZmlsZXMgLS1zdGFnZSB4Zm9vMmAiIGluCiAJMTIwMDAwIiAiKnhmb28yKSBlY2hvIHBhc3M7OwogCSopIGVjaG8gZmFpbDsgZ2l0IGxzLWZpbGVzIC0tc3RhZ2UgeGZvbzI7IChleGl0IDEpOzsKIAllc2FjCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAJJ2dpdCB1cGRhdGUtaW5kZXggLS1hZGQ6IFRlc3QgdGhhdCBleGVjdXRhYmxlIGJpdCBpcyBub3QgdXNlZC4uLicgXAogCSdnaXQgY29uZmlnIGNvcmUuZmlsZW1vZGUgMCAmJgotCSBsbiAtcyB4Zm9vMiB4Zm9vMyAmJgotCSBnaXQgdXBkYXRlLWluZGV4IC0tYWRkIHhmb28zICYmCisJIHRlc3RfbG5fc19hZGQgeGZvbzIgeGZvbzMgJiYJIyBydW5zIGdpdCB1cGRhdGUtaW5kZXggLS1hZGQKIAkgY2FzZSAiYGdpdCBscy1maWxlcyAtLXN0YWdlIHhmb28zYCIgaW4KIAkgMTIwMDAwIiAiKnhmb28zKSBlY2hvIHBhc3M7OwogCSAqKSBlY2hvIGZhaWw7IGdpdCBscy1maWxlcyAtLXN0YWdlIHhmb28zOyAoZXhpdCAxKTs7CmRpZmYgLS1naXQgYS90L3QzOTAwLWkxOG4tY29tbWl0LnNoIGIvdC90MzkwMC1pMThuLWNvbW1pdC5zaAppbmRleCAzN2RkYWJiLi40YmYxZGJlIDEwMDc1NQotLS0gYS90L3QzOTAwLWkxOG4tY29tbWl0LnNoCisrKyBiL3QvdDM5MDAtaTE4bi1jb21taXQuc2gKQEAgLTM0LDExICszNCw0NyBAQAogCXRlc3QgeiA9ICJ6JEUiCiAnCiAKLXRlc3RfZXhwZWN0X2ZhaWx1cmUgJ1VURi0xNiByZWZ1c2VkIGJlY2F1c2Ugb2YgTlVMcycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnVVRGLTE2IHJlZnVzZWQgYmVjYXVzZSBvZiBOVUxzJyAnCiAJZWNobyBVVEYtMTYgPkYgJiYKLQlnaXQgY29tbWl0IC1hIC1GICIkVEVTVF9ESVJFQ1RPUlkiL3QzOTAwL1VURi0xNi50eHQKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29tbWl0IC1hIC1GICIkVEVTVF9ESVJFQ1RPUlkiL3QzOTAwL1VURi0xNi50eHQKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnVVRGLTggaW52YWxpZCBjaGFyYWN0ZXJzIHJlZnVzZWQnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1mICRIT01FL3N0ZGVyciAkSE9NRS9pbnZhbGlkIiAmJgorCWVjaG8gIlVURi04IGNoYXJhY3RlcnMiID5GICYmCisJcHJpbnRmICJDb21taXQgbWVzc2FnZVxuXG5JbnZhbGlkIHN1cnJvZ2F0ZTpcMzU1XDI0MFwyMDBcbiIgXAorCQk+IiRIT01FL2ludmFsaWQiICYmCisJZ2l0IGNvbW1pdCAtYSAtRiAiJEhPTUUvaW52YWxpZCIgMj4iJEhPTUUiL3N0ZGVyciAmJgorCWdyZXAgImRpZCBub3QgY29uZm9ybSIgIiRIT01FIi9zdGRlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnVVRGLTggb3Zlcmxvbmcgc2VxdWVuY2VzIHJlamVjdGVkJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiAkSE9NRS9zdGRlcnIgJEhPTUUvaW52YWxpZCIgJiYKKwlybSAtZiAiJEhPTUUvc3RkZXJyIiAiJEhPTUUvaW52YWxpZCIgJiYKKwllY2hvICJVVEYtOCBvdmVybG9uZyIgPkYgJiYKKwlwcmludGYgIlwzNDBcMjAyXDI1MW9tbWl0IG1lc3NhZ2VcblxuVGhpcyBpcyBub3QgYSBzcGFjZTpcMzAwXDI0MFxuIiBcCisJCT4iJEhPTUUvaW52YWxpZCIgJiYKKwlnaXQgY29tbWl0IC1hIC1GICIkSE9NRS9pbnZhbGlkIiAyPiIkSE9NRSIvc3RkZXJyICYmCisJZ3JlcCAiZGlkIG5vdCBjb25mb3JtIiAiJEhPTUUiL3N0ZGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdVVEYtOCBub24tY2hhcmFjdGVycyByZWZ1c2VkJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiAkSE9NRS9zdGRlcnIgJEhPTUUvaW52YWxpZCIgJiYKKwllY2hvICJVVEYtOCBub24tY2hhcmFjdGVyIDEiID5GICYmCisJcHJpbnRmICJDb21taXQgbWVzc2FnZVxuXG5Ob24tY2hhcmFjdGVyOlwzNjRcMjE3XDI3N1wyNzZcbiIgXAorCQk+IiRIT01FL2ludmFsaWQiICYmCisJZ2l0IGNvbW1pdCAtYSAtRiAiJEhPTUUvaW52YWxpZCIgMj4iJEhPTUUiL3N0ZGVyciAmJgorCWdyZXAgImRpZCBub3QgY29uZm9ybSIgIiRIT01FIi9zdGRlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnVVRGLTggbm9uLWNoYXJhY3RlcnMgcmVmdXNlZCcgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLWYgJEhPTUUvc3RkZXJyICRIT01FL2ludmFsaWQiICYmCisJZWNobyAiVVRGLTggbm9uLWNoYXJhY3RlciAyLiIgPkYgJiYKKwlwcmludGYgIkNvbW1pdCBtZXNzYWdlXG5cbk5vbi1jaGFyYWN0ZXI6XDM1N1wyNjdcMjIwXG4iIFwKKwkJPiIkSE9NRS9pbnZhbGlkIiAmJgorCWdpdCBjb21taXQgLWEgLUYgIiRIT01FL2ludmFsaWQiIDI+IiRIT01FIi9zdGRlcnIgJiYKKwlncmVwICJkaWQgbm90IGNvbmZvcm0iICIkSE9NRSIvc3RkZXJyCisnCiAKIGZvciBIIGluIElTTzg4NTktMSBldWNKUCBJU08tMjAyMi1KUAogZG8KZGlmZiAtLWdpdCBhL3QvdDM5MDAvVVRGLTE2LnR4dCBiL3QvdDM5MDAvVVRGLTE2LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjU3ZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvdC90MzkwMC9VVEYtMTYudHh0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDM5MDMtc3Rhc2guc2ggYi90L3QzOTAzLXN0YXNoLnNoCmluZGV4IDVkZmJkYTcuLmRlYmRhN2EgMTAwNzU1Ci0tLSBhL3QvdDM5MDMtc3Rhc2guc2gKKysrIGIvdC90MzkwMy1zdGFzaC5zaApAQCAtMjAwLDE3ICsyMDAsMTcgQEAKIAllY2hvIGZvbyA+IGZpbGUgJiYKIAlnaXQgc3Rhc2ggJiYKIAlnaXQgc3Rhc2ggYXBwbHkgLXEgPiBvdXRwdXQub3V0IDI+JjEgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0Lm91dAorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQub3V0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NhdmUgLXEgaXMgcXVpZXQnICcKIAlnaXQgc3Rhc2ggc2F2ZSAtLXF1aWV0ID4gb3V0cHV0Lm91dCAyPiYxICYmCi0JdGVzdCAhIC1zIG91dHB1dC5vdXQKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0Lm91dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwb3AgLXEgaXMgcXVpZXQnICcKIAlnaXQgc3Rhc2ggcG9wIC1xID4gb3V0cHV0Lm91dCAyPiYxICYmCi0JdGVzdCAhIC1zIG91dHB1dC5vdXQKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0Lm91dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwb3AgLXEgLS1pbmRleCB3b3JrcyBhbmQgaXMgcXVpZXQnICcKQEAgLTIxOSwxMyArMjE5LDEzIEBACiAJZ2l0IHN0YXNoIHNhdmUgLS1xdWlldCAmJgogCWdpdCBzdGFzaCBwb3AgLXEgLS1pbmRleCA+IG91dHB1dC5vdXQgMj4mMSAmJgogCXRlc3QgZm9vID0gIiQoZ2l0IHNob3cgOmZpbGUpIiAmJgotCXRlc3QgISAtcyBvdXRwdXQub3V0CisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5vdXQKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZHJvcCAtcSBpcyBxdWlldCcgJwogCWdpdCBzdGFzaCAmJgogCWdpdCBzdGFzaCBkcm9wIC1xID4gb3V0cHV0Lm91dCAyPiYxICYmCi0JdGVzdCAhIC1zIG91dHB1dC5vdXQKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0Lm91dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFzaCAtaycgJwpAQCAtMzM2LDQxICszMzYsNTggQEAKIAogIyBUaGlzIHRlc3QgY3JlYXRlcyBhIGNvbW1pdCB3aXRoIGEgc3ltbGluayB1c2VkIGZvciB0aGUgZm9sbG93aW5nIHRlc3RzCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3N0YXNoIHN5bWxpbmsgdG8gZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3Rhc2ggc3ltbGluayB0byBmaWxlJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgotCWxuIC1zIGZpbGUgZmlsZWxpbmsgJiYKLQlnaXQgYWRkIGZpbGVsaW5rICYmCisJdGVzdF9sbl9zX2FkZCBmaWxlIGZpbGVsaW5rICYmCiAJZ2l0IGNvbW1pdCAtbSAiQWRkIHN5bWxpbmsiICYmCiAJcm0gZmlsZWxpbmsgJiYKIAljcCBmaWxlIGZpbGVsaW5rICYmCi0JZ2l0IHN0YXNoIHNhdmUgInN5bWxpbmsgdG8gZmlsZSIgJiYKKwlnaXQgc3Rhc2ggc2F2ZSAic3ltbGluayB0byBmaWxlIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICd0aGlzIG11c3QgaGF2ZSByZS1jcmVhdGVkIHRoZSBzeW1saW5rJyAnCiAJdGVzdCAtaCBmaWxlbGluayAmJgotCWNhc2UgIiQobHMgLWwgZmlsZWxpbmspIiBpbiAqIiBmaWxlbGluayAtPiBmaWxlIikgOjs7ICopIGZhbHNlOzsgZXNhYyAmJgorCWNhc2UgIiQobHMgLWwgZmlsZWxpbmspIiBpbiAqIiBmaWxlbGluayAtPiBmaWxlIikgOjs7ICopIGZhbHNlOzsgZXNhYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1bnN0YXNoIG11c3QgcmUtY3JlYXRlIHRoZSBmaWxlJyAnCiAJZ2l0IHN0YXNoIGFwcGx5ICYmCiAJISB0ZXN0IC1oIGZpbGVsaW5rICYmCiAJdGVzdCBiYXIgPSAiJChjYXQgZmlsZSkiCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3N0YXNoIHN5bWxpbmsgdG8gZmlsZSAoc3RhZ2Ugcm0pJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFzaCBzeW1saW5rIHRvIGZpbGUgKHN0YWdlIHJtKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgcm0gZmlsZWxpbmsgJiYKIAljcCBmaWxlIGZpbGVsaW5rICYmCi0JZ2l0IHN0YXNoIHNhdmUgInN5bWxpbmsgdG8gZmlsZSAoc3RhZ2Ugcm0pIiAmJgorCWdpdCBzdGFzaCBzYXZlICJzeW1saW5rIHRvIGZpbGUgKHN0YWdlIHJtKSIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAndGhpcyBtdXN0IGhhdmUgcmUtY3JlYXRlZCB0aGUgc3ltbGluaycgJwogCXRlc3QgLWggZmlsZWxpbmsgJiYKLQljYXNlICIkKGxzIC1sIGZpbGVsaW5rKSIgaW4gKiIgZmlsZWxpbmsgLT4gZmlsZSIpIDo7OyAqKSBmYWxzZTs7IGVzYWMgJiYKKwljYXNlICIkKGxzIC1sIGZpbGVsaW5rKSIgaW4gKiIgZmlsZWxpbmsgLT4gZmlsZSIpIDo7OyAqKSBmYWxzZTs7IGVzYWMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndW5zdGFzaCBtdXN0IHJlLWNyZWF0ZSB0aGUgZmlsZScgJwogCWdpdCBzdGFzaCBhcHBseSAmJgogCSEgdGVzdCAtaCBmaWxlbGluayAmJgogCXRlc3QgYmFyID0gIiQoY2F0IGZpbGUpIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdzdGFzaCBzeW1saW5rIHRvIGZpbGUgKGZ1bGwgc3RhZ2UpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFzaCBzeW1saW5rIHRvIGZpbGUgKGZ1bGwgc3RhZ2UpJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCXJtIGZpbGVsaW5rICYmCiAJY3AgZmlsZSBmaWxlbGluayAmJgogCWdpdCBhZGQgZmlsZWxpbmsgJiYKLQlnaXQgc3Rhc2ggc2F2ZSAic3ltbGluayB0byBmaWxlIChmdWxsIHN0YWdlKSIgJiYKKwlnaXQgc3Rhc2ggc2F2ZSAic3ltbGluayB0byBmaWxlIChmdWxsIHN0YWdlKSIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAndGhpcyBtdXN0IGhhdmUgcmUtY3JlYXRlZCB0aGUgc3ltbGluaycgJwogCXRlc3QgLWggZmlsZWxpbmsgJiYKLQljYXNlICIkKGxzIC1sIGZpbGVsaW5rKSIgaW4gKiIgZmlsZWxpbmsgLT4gZmlsZSIpIDo7OyAqKSBmYWxzZTs7IGVzYWMgJiYKKwljYXNlICIkKGxzIC1sIGZpbGVsaW5rKSIgaW4gKiIgZmlsZWxpbmsgLT4gZmlsZSIpIDo7OyAqKSBmYWxzZTs7IGVzYWMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndW5zdGFzaCBtdXN0IHJlLWNyZWF0ZSB0aGUgZmlsZScgJwogCWdpdCBzdGFzaCBhcHBseSAmJgogCSEgdGVzdCAtaCBmaWxlbGluayAmJgogCXRlc3QgYmFyID0gIiQoY2F0IGZpbGUpIgpAQCAtNjM3LDQgKzY1NCwyMyBAQAogCXRlc3RfY21wIG91dHB1dCBleHBlY3QKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RvcmUgY2FsbGVkIHdpdGggaW52YWxpZCBjb21taXQnICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgc3Rhc2ggc3RvcmUgZm9vCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0b3JlIHVwZGF0ZXMgc3Rhc2ggcmVmIGFuZCByZWZsb2cnICcKKwlnaXQgc3Rhc2ggY2xlYXIgJiYKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZWNobyBxdXV4ID5iYXp6eSAmJgorCWdpdCBhZGQgYmF6enkgJiYKKwlTVEFTSF9JRD0kKGdpdCBzdGFzaCBjcmVhdGUpICYmCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCSEgZ3JlcCBxdXV4IGJhenp5ICYmCisJZ2l0IHN0YXNoIHN0b3JlIC1tIHF1dXhlcnkgJFNUQVNIX0lEICYmCisJdGVzdCAkKGNhdCAuZ2l0L3JlZnMvc3Rhc2gpID0gJFNUQVNIX0lEICYmCisJZ3JlcCAkU1RBU0hfSUQgLmdpdC9sb2dzL3JlZnMvc3Rhc2ggJiYKKwlnaXQgc3Rhc2ggcG9wICYmCisJZ3JlcCBxdXV4IGJhenp5CisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NDAwMC1kaWZmLWZvcm1hdC5zaCBiL3QvdDQwMDAtZGlmZi1mb3JtYXQuc2gKaW5kZXggNmRkZDQ2OS4uOGRlMzZiNyAxMDA3NTUKLS0tIGEvdC90NDAwMC1kaWZmLWZvcm1hdC5zaAorKysgYi90L3Q0MDAwLWRpZmYtZm9ybWF0LnNoCkBAIC0xNSwxNyArMTUsMTcgQEAKIGNhdCBwYXRoMCA+cGF0aDEKIGNobW9kICt4IHBhdGgxCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICd1cGRhdGUtaW5kZXggLS1hZGQgdHdvIGZpbGVzIHdpdGggYW5kIHdpdGhvdXQgK3guJyBcCi0gICAgJ2dpdCB1cGRhdGUtaW5kZXggLS1hZGQgcGF0aDAgcGF0aDEnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cGRhdGUtaW5kZXggLS1hZGQgdHdvIGZpbGVzIHdpdGggYW5kIHdpdGhvdXQgK3guJyAnCisJZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCBwYXRoMCBwYXRoMQorJwogCiBtdiBwYXRoMCBwYXRoMC0KIHNlZCAtZSAncy9saW5lL0xpbmUvJyA8cGF0aDAtID5wYXRoMAogY2htb2QgK3ggcGF0aDAKIHJtIC1mIHBhdGgxCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZ2l0IGRpZmYtZmlsZXMgLXAgYWZ0ZXIgZWRpdGluZyB3b3JrIHRyZWUuJyBcCi0gICAgJ2dpdCBkaWZmLWZpbGVzIC1wID5jdXJyZW50JwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLXAgYWZ0ZXIgZWRpdGluZyB3b3JrIHRyZWUuJyAnCisJZ2l0IGRpZmYtZmlsZXMgLXAgPmFjdHVhbAorJwogCiAjIHRoYXQncyBhcyBmYXIgYXMgaXQgY29tZXMKIGlmIFsgIiQoZ2l0IGNvbmZpZyAtLWdldCBjb3JlLmZpbGVtb2RlKSIgPSBmYWxzZSBdCkBAIC01NSw4ICs1NSwzOCBAQAogLWxpbmUgMwogRU9GCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICd2YWxpZGF0ZSBnaXQgZGlmZi1maWxlcyAtcCBvdXRwdXQuJyBcCi0gICAgJ2NvbXBhcmVfZGlmZl9wYXRjaCBjdXJyZW50IGV4cGVjdGVkJwordGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgZ2l0IGRpZmYtZmlsZXMgLXAgb3V0cHV0LicgJworCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLXMgYWZ0ZXIgZWRpdGluZyB3b3JrIHRyZWUnICcKKwlnaXQgZGlmZi1maWxlcyAtcyA+YWN0dWFsIDI+ZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGFjdHVhbCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLS1uby1wYXRjaCBhcyBzeW5vbnltIGZvciAtcycgJworCWdpdCBkaWZmLWZpbGVzIC0tbm8tcGF0Y2ggPmFjdHVhbCAyPmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBhY3R1YWwgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBkaWZmLWZpbGVzIC0tbm8tcGF0Y2ggLS1wYXRjaCBzaG93cyB0aGUgcGF0Y2gnICcKKwlnaXQgZGlmZi1maWxlcyAtLW5vLXBhdGNoIC0tcGF0Y2ggPmFjdHVhbCAmJgorCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLS1uby1wYXRjaCAtLXBhdGNoLXdpdGgtcmF3IHNob3dzIHRoZSBwYXRjaCBhbmQgcmF3IGRhdGEnICcKKwlnaXQgZGlmZi1maWxlcyAtLW5vLXBhdGNoIC0tcGF0Y2gtd2l0aC1yYXcgPmFjdHVhbCAmJgorCWdyZXAgLXEgIl46MTAwNjQ0IDEwMDc1NSAuKiAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE0JcGF0aDBcJCIgYWN0dWFsICYmCisJdGFpbCAtbiArNCBhY3R1YWwgPmFjdHVhbC1wYXRjaCAmJgorCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBhY3R1YWwtcGF0Y2gKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLS1wYXRjaCAtLW5vLXBhdGNoIGRvZXMgbm90IHNob3cgdGhlIHBhdGNoJyAnCisJZ2l0IGRpZmYtZmlsZXMgLS1wYXRjaCAtLW5vLXBhdGNoID5hY3R1YWwgMj5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgYWN0dWFsICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGVycgorJwogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDQwMDgtZGlmZi1icmVhay1yZXdyaXRlLnNoIGIvdC90NDAwOC1kaWZmLWJyZWFrLXJld3JpdGUuc2gKaW5kZXggNzNiNGEyNC4uMjdlOThhOCAxMDA3NTUKLS0tIGEvdC90NDAwOC1kaWZmLWJyZWFrLXJld3JpdGUuc2gKKysrIGIvdC90NDAwOC1kaWZmLWJyZWFrLXJld3JpdGUuc2gKQEAgLTk5LDExICs5OSwxMSBAQAogICAgICd2YWxpZGF0ZSByZXN1bHQgb2YgLUIgLU0gKCM0KScgXAogICAgICdjb21wYXJlX2RpZmZfcmF3IGV4cGVjdGVkIGN1cnJlbnQnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ21ha2UgZmlsZTAgaW50byBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnQnIFwKICAgICAncm0gLWYgZmlsZTAgJiYKLSAgICAgbG4gLXMgZnJvdHogZmlsZTAgJiYKLSAgICAgZ2l0IHVwZGF0ZS1pbmRleCBmaWxlMCBmaWxlMScKKyAgICAgdGVzdF9sbl9zX2FkZCBmcm90eiBmaWxlMCAmJgorICAgICBnaXQgdXBkYXRlLWluZGV4IGZpbGUxJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAncnVuIGRpZmYgd2l0aCAtQicgXApAQCAtMTE0LDcgKzExNCw3IEBACiA6MTAwNjQ0IDEwMDY0NCA2ZmY4N2M0NjY0OTgxZTQzOTc2MjU3OTFjOGVhM2JiYjVmMjI3OWEzIGY1ZGVhYzdiZTU5ZTdlZWFiODY1N2ZkOWFlNzA2ZmQ2YTU3ZGFlZDIgTTEwMAlmaWxlMQogRU9GCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ3ZhbGlkYXRlIHJlc3VsdCBvZiAtQiAoIzUpJyBcCiAgICAgJ2NvbXBhcmVfZGlmZl9yYXcgZXhwZWN0ZWQgY3VycmVudCcKIApAQCAtMTI5LDcgKzEyOSw3IEBACiA6MTAwNjQ0IDEwMDY0NCA2ZmY4N2M0NjY0OTgxZTQzOTc2MjU3OTFjOGVhM2JiYjVmMjI3OWEzIGY1ZGVhYzdiZTU5ZTdlZWFiODY1N2ZkOWFlNzA2ZmQ2YTU3ZGFlZDIgUglmaWxlMAlmaWxlMQogRU9GCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ3ZhbGlkYXRlIHJlc3VsdCBvZiAtQiAtTSAoIzYpJyBcCiAgICAgJ2NvbXBhcmVfZGlmZl9yYXcgZXhwZWN0ZWQgY3VycmVudCcKIApAQCAtMTQ0LDcgKzE0NCw3IEBACiA6MTAwNjQ0IDEwMDY0NCA2ZmY4N2M0NjY0OTgxZTQzOTc2MjU3OTFjOGVhM2JiYjVmMjI3OWEzIGY1ZGVhYzdiZTU5ZTdlZWFiODY1N2ZkOWFlNzA2ZmQ2YTU3ZGFlZDIgTQlmaWxlMQogRU9GCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ3ZhbGlkYXRlIHJlc3VsdCBvZiAtTSAoIzcpJyBcCiAgICAgJ2NvbXBhcmVfZGlmZl9yYXcgZXhwZWN0ZWQgY3VycmVudCcKIApkaWZmIC0tZ2l0IGEvdC90NDAxMS1kaWZmLXN5bWxpbmsuc2ggYi90L3Q0MDExLWRpZmYtc3ltbGluay5zaAppbmRleCBmMGQ1MDQxLi4xM2U3ZjYyIDEwMDc1NQotLS0gYS90L3Q0MDExLWRpZmYtc3ltbGluay5zaAorKysgYi90L3Q0MDExLWRpZmYtc3ltbGluay5zaApAQCAtOSw3ICs5LDcgQEAKIC4gLi90ZXN0LWxpYi5zaAogLiAiJFRFU1RfRElSRUNUT1JZIi9kaWZmLWxpYi5zaAogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdkaWZmIG5ldyBzeW1saW5rIGFuZCBmaWxlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaWZmIG5ldyBzeW1saW5rIGFuZCBmaWxlJyAnCiAJY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCiAJZGlmZiAtLWdpdCBhL2Zyb3R6IGIvZnJvdHoKIAluZXcgZmlsZSBtb2RlIDEyMDAwMApAQCAtMjcsMjIgKzI3LDI1IEBACiAJQEAgLTAsMCArMSBAQAogCSt4eXp6eQogCUVPRgotCWxuIC1zIHh5enp5IGZyb3R6ICYmCi0JZWNobyB4eXp6eSA+bml0Zm9sICYmCisKKwkjIHRoZSBlbXB0eSB0cmVlCiAJZ2l0IHVwZGF0ZS1pbmRleCAmJgogCXRyZWU9JChnaXQgd3JpdGUtdHJlZSkgJiYKLQlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGZyb3R6IG5pdGZvbCAmJgorCisJdGVzdF9sbl9zX2FkZCB4eXp6eSBmcm90eiAmJgorCWVjaG8geHl6enkgPm5pdGZvbCAmJgorCWdpdCB1cGRhdGUtaW5kZXggLS1hZGQgbml0Zm9sICYmCiAJR0lUX0RJRkZfT1BUUz0tLXVuaWZpZWQ9MCBnaXQgZGlmZi1pbmRleCAtTSAtcCAkdHJlZSA+Y3VycmVudCAmJgogCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBjdXJyZW50CiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2RpZmYgdW5jaGFuZ2VkIHN5bWxpbmsgYW5kIGZpbGUnICAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaWZmIHVuY2hhbmdlZCBzeW1saW5rIGFuZCBmaWxlJyAgJwogCXRyZWU9JChnaXQgd3JpdGUtdHJlZSkgJiYKIAlnaXQgdXBkYXRlLWluZGV4IGZyb3R6IG5pdGZvbCAmJgogCXRlc3QgLXogIiQoZ2l0IGRpZmYtaW5kZXggLS1uYW1lLW9ubHkgJHRyZWUpIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdkaWZmIHJlbW92ZWQgc3ltbGluayBhbmQgZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlmZiByZW1vdmVkIHN5bWxpbmsgYW5kIGZpbGUnICcKIAljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKIAlkaWZmIC0tZ2l0IGEvZnJvdHogYi9mcm90egogCWRlbGV0ZWQgZmlsZSBtb2RlIDEyMDAwMApAQCAtNjYsMTIgKzY5LDE4IEBACiAJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIGN1cnJlbnQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZGlmZiBpZGVudGljYWwsIGJ1dCBuZXdseSBjcmVhdGVkIHN5bWxpbmsgYW5kIGZpbGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RpZmYgaWRlbnRpY2FsLCBidXQgbmV3bHkgY3JlYXRlZCBzeW1saW5rIGFuZCBmaWxlJyAnCiAJPmV4cGVjdGVkICYmCiAJcm0gLWYgZnJvdHogbml0Zm9sICYmCiAJZWNobyB4eXp6eSA+bml0Zm9sICYmCiAJdGVzdC1jaG10aW1lICsxMCBuaXRmb2wgJiYKLQlsbiAtcyB4eXp6eSBmcm90eiAmJgorCWlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKKwl0aGVuCisJCWxuIC1zIHh5enp5IGZyb3R6CisJZWxzZQorCQlwcmludGYgeHl6enkgPmZyb3R6CisJCSMgdGhlIHN5bWxpbmsgcHJvcGVydHkgcHJvcGFnYXRlcyBmcm9tIHRoZSBpbmRleAorCWZpICYmCiAJZ2l0IGRpZmYtaW5kZXggLU0gLXAgJHRyZWUgPmN1cnJlbnQgJiYKIAljb21wYXJlX2RpZmZfcGF0Y2ggZXhwZWN0ZWQgY3VycmVudCAmJgogCkBAIC04MCw3ICs4OSw3IEBACiAJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIGN1cnJlbnQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZGlmZiBkaWZmZXJlbnQgc3ltbGluayBhbmQgZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlmZiBkaWZmZXJlbnQgc3ltbGluayBhbmQgZmlsZScgJwogCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCWRpZmYgLS1naXQgYS9mcm90eiBiL2Zyb3R6CiAJaW5kZXggN2M0NjVhZi4uZGYxZGI1NCAxMjAwMDAKQEAgLTEwMCw3ICsxMDksMTMgQEAKIAkreXh5eXoKIAlFT0YKIAlybSAtZiBmcm90eiAmJgotCWxuIC1zIHl4eXl6IGZyb3R6ICYmCisJaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUworCXRoZW4KKwkJbG4gLXMgeXh5eXogZnJvdHoKKwllbHNlCisJCXByaW50ZiB5eHl5eiA+ZnJvdHoKKwkJIyB0aGUgc3ltbGluayBwcm9wZXJ0eSBwcm9wYWdhdGVzIGZyb20gdGhlIGluZGV4CisJZmkgJiYKIAllY2hvIHl4eXl6ID5uaXRmb2wgJiYKIAlnaXQgZGlmZi1pbmRleCAtTSAtcCAkdHJlZSA+Y3VycmVudCAmJgogCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBjdXJyZW50CmRpZmYgLS1naXQgYS90L3Q0MDE0LWZvcm1hdC1wYXRjaC5zaCBiL3QvdDQwMTQtZm9ybWF0LXBhdGNoLnNoCmluZGV4IDU4ZDQxODAuLjY2ODkzM2IgMTAwNzU1Ci0tLSBhL3QvdDQwMTQtZm9ybWF0LXBhdGNoLnNoCisrKyBiL3QvdDQwMTQtZm9ybWF0LXBhdGNoLnNoCkBAIC05NzIsNiArOTcyLDQ5IEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLWZyb209aWRlbnQgbm90aWNlcyBib2d1cyBpZGVudCcgJworCXRlc3RfbXVzdF9mYWlsIGdpdCBmb3JtYXQtcGF0Y2ggLTEgLS1zdGRvdXQgLS1mcm9tPWZvbyA+cGF0Y2gKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1mcm9tPWlkZW50IHJlcGxhY2VzIGF1dGhvcicgJworCWdpdCBmb3JtYXQtcGF0Y2ggLTEgLS1zdGRvdXQgLS1mcm9tPSJNZSA8bWVAZXhhbXBsZS5jb20+IiA+cGF0Y2ggJiYKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJRnJvbTogTWUgPG1lQGV4YW1wbGUuY29tPgorCisJRnJvbTogQSBVIFRob3IgPGF1dGhvckBleGFtcGxlLmNvbT4KKworCUVPRgorCXNlZCAtbmUgIi9eRnJvbTovcDsgL14kL3A7IC9eLS0tJC9xIiA8cGF0Y2ggPnBhdGNoLmhlYWQgJiYKKwl0ZXN0X2NtcCBleHBlY3QgcGF0Y2guaGVhZAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLWZyb20gdXNlcyBjb21taXR0ZXIgaWRlbnQnICcKKwlnaXQgZm9ybWF0LXBhdGNoIC0xIC0tc3Rkb3V0IC0tZnJvbSA+cGF0Y2ggJiYKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJRnJvbTogQyBPIE1pdHRlciA8Y29tbWl0dGVyQGV4YW1wbGUuY29tPgorCisJRnJvbTogQSBVIFRob3IgPGF1dGhvckBleGFtcGxlLmNvbT4KKworCUVPRgorCXNlZCAtbmUgIi9eRnJvbTovcDsgL14kL3A7IC9eLS0tJC9xIiA8cGF0Y2ggPnBhdGNoLmhlYWQgJiYKKwl0ZXN0X2NtcCBleHBlY3QgcGF0Y2guaGVhZAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpbi1ib2R5IGhlYWRlcnMgdHJpZ2dlciBjb250ZW50IGVuY29kaW5nJyAnCisJR0lUX0FVVEhPUl9OQU1FPSLDqXjDtnTDrGMiIHRlc3RfY29tbWl0IGV4b3RpYyAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCBIRUFEXiIgJiYKKwlnaXQgZm9ybWF0LXBhdGNoIC0xIC0tc3Rkb3V0IC0tZnJvbSA+cGF0Y2ggJiYKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJRnJvbTogQyBPIE1pdHRlciA8Y29tbWl0dGVyQGV4YW1wbGUuY29tPgorCUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorCisJRnJvbTogw6l4w7Z0w6xjIDxhdXRob3JAZXhhbXBsZS5jb20+CisKKwlFT0YKKwlzZWQgLW5lICIvXkZyb206L3A7IC9eJC9wOyAvXkNvbnRlbnQtVHlwZS9wOyAvXi0tLSQvcSIgPHBhdGNoID5wYXRjaC5oZWFkICYmCisJdGVzdF9jbXAgZXhwZWN0IHBhdGNoLmhlYWQKKycKKwogYXBwZW5kX3NpZ25vZmYoKQogewogCUM9JChnaXQgY29tbWl0LXRyZWUgSEVBRF5ee3RyZWV9IC1wIEhFQUQpICYmCmRpZmYgLS1naXQgYS90L3Q0MDE1LWRpZmYtd2hpdGVzcGFjZS5zaCBiL3QvdDQwMTUtZGlmZi13aGl0ZXNwYWNlLnNoCmluZGV4IGNjM2RiMTMuLjNmYjRiOTcgMTAwNzU1Ci0tLSBhL3QvdDQwMTUtZGlmZi13aGl0ZXNwYWNlLnNoCisrKyBiL3QvdDQwMTUtZGlmZi13aGl0ZXNwYWNlLnNoCkBAIC0xNDIsNiArMTQyLDM1MSBAQAogZ2l0IGRpZmYgLS1pZ25vcmUtc3BhY2UtYXQtZW9sID4gb3V0CiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbm90aGVyIHRlc3QsIHdpdGggLS1pZ25vcmUtc3BhY2UtYXQtZW9sJyAndGVzdF9jbXAgZXhwZWN0IG91dCcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlLWJsYW5rLWxpbmVzOiBvbmx5IG5ldyBsaW5lcycgJworCXRlc3Rfc2VxIDUgPnggJiYKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwl0ZXN0X3NlcSA1IHwgc2VkICIvMy9pIFxcCisiID54ICYmCisJZ2l0IGRpZmYgLS1pZ25vcmUtYmxhbmstbGluZXMgPm91dCAmJgorCT5leHBlY3QgJiYKKwl0ZXN0X2NtcCBvdXQgZXhwZWN0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2lnbm9yZS1ibGFuay1saW5lczogb25seSBuZXcgbGluZXMgd2l0aCBzcGFjZScgJworCXRlc3Rfc2VxIDUgPnggJiYKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwl0ZXN0X3NlcSA1IHwgc2VkICIvMy9pIFwgIiA+eCAmJgorCWdpdCBkaWZmIC13IC0taWdub3JlLWJsYW5rLWxpbmVzID5vdXQgJiYKKwk+ZXhwZWN0ICYmCisJdGVzdF9jbXAgb3V0IGV4cGVjdAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpZ25vcmUtYmxhbmstbGluZXM6IGFmdGVyIGNoYW5nZScgJworCWNhdCA8PC1cRU9GID54ICYmCisJMQorCTIKKworCTMKKwk0CisJNQorCisJNgorCTcKKwlFT0YKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwljYXQgPDwtXEVPRiA+eCAmJgorCWNoYW5nZQorCisJMQorCTIKKwkzCisJNAorCTUKKwk2CisKKwk3CisJRU9GCisJZ2l0IGRpZmYgLS1pbnRlci1odW5rLWNvbnRleHQ9MTAwIC0taWdub3JlLWJsYW5rLWxpbmVzID5vdXQudG1wICYmCisJY2F0IDw8LVxFT0YgPmV4cGVjdGVkICYmCisJZGlmZiAtLWdpdCBhL3ggYi94CisJLS0tIGEveAorCSsrKyBiL3gKKwlAQCAtMSw2ICsxLDcgQEAKKwkrY2hhbmdlCisJKworCSAxCisJIDIKKwktCisJIDMKKwkgNAorCSA1CisJRU9GCisJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIG91dC50bXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlLWJsYW5rLWxpbmVzOiBiZWZvcmUgY2hhbmdlJyAnCisJY2F0IDw8LVxFT0YgPnggJiYKKwkxCisJMgorCisJMworCTQKKwk1CisJNgorCTcKKwlFT0YKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwljYXQgPDwtXEVPRiA+eCAmJgorCisJMQorCTIKKwkzCisJNAorCTUKKworCTYKKwk3CisJY2hhbmdlCisJRU9GCisJZ2l0IGRpZmYgLS1pbnRlci1odW5rLWNvbnRleHQ9MTAwIC0taWdub3JlLWJsYW5rLWxpbmVzID5vdXQudG1wICYmCisJY2F0IDw8LVxFT0YgPmV4cGVjdGVkICYmCisJZGlmZiAtLWdpdCBhL3ggYi94CisJLS0tIGEveAorCSsrKyBiL3gKKwlAQCAtNCw1ICs0LDcgQEAKKwkgMworCSA0CisJIDUKKwkrCisJIDYKKwkgNworCStjaGFuZ2UKKwlFT0YKKwljb21wYXJlX2RpZmZfcGF0Y2ggZXhwZWN0ZWQgb3V0LnRtcAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpZ25vcmUtYmxhbmstbGluZXM6IGJldHdlZW4gY2hhbmdlcycgJworCWNhdCA8PC1cRU9GID54ICYmCisJMQorCTIKKwkzCisJNAorCTUKKworCisJNgorCTcKKwk4CisJOQorCTEwCisJRU9GCisJZ2l0IHVwZGF0ZS1pbmRleCB4ICYmCisJY2F0IDw8LVxFT0YgPnggJiYKKwljaGFuZ2UKKwkxCisJMgorCisJMworCTQKKwk1CisJNgorCTcKKwk4CisKKwk5CisJMTAKKwljaGFuZ2UKKwlFT0YKKwlnaXQgZGlmZiAtLWlnbm9yZS1ibGFuay1saW5lcyA+b3V0LnRtcCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCWRpZmYgLS1naXQgYS94IGIveAorCS0tLSBhL3gKKwkrKysgYi94CisJQEAgLTEsNSArMSw3IEBACisJK2NoYW5nZQorCSAxCisJIDIKKwkrCisJIDMKKwkgNAorCSA1CisJQEAgLTgsNSArOCw3IEBACisJIDYKKwkgNworCSA4CisJKworCSA5CisJIDEwCisJK2NoYW5nZQorCUVPRgorCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBvdXQudG1wCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2lnbm9yZS1ibGFuay1saW5lczogYmV0d2VlbiBjaGFuZ2VzICh3aXRoIGludGVyaHVua2N0eCknICcKKwl0ZXN0X3NlcSAxMCA+eCAmJgorCWdpdCB1cGRhdGUtaW5kZXggeCAmJgorCWNhdCA8PC1cRU9GID54ICYmCisJY2hhbmdlCisJMQorCTIKKworCTMKKwk0CisJNQorCisJNgorCTcKKwk4CisJOQorCisJMTAKKwljaGFuZ2UKKwlFT0YKKwlnaXQgZGlmZiAtLWludGVyLWh1bmstY29udGV4dD0yIC0taWdub3JlLWJsYW5rLWxpbmVzID5vdXQudG1wICYmCisJY2F0IDw8LVxFT0YgPmV4cGVjdGVkICYmCisJZGlmZiAtLWdpdCBhL3ggYi94CisJLS0tIGEveAorCSsrKyBiL3gKKwlAQCAtMSwxMCArMSwxNSBAQAorCStjaGFuZ2UKKwkgMQorCSAyCisJKworCSAzCisJIDQKKwkgNQorCSsKKwkgNgorCSA3CisJIDgKKwkgOQorCSsKKwkgMTAKKwkrY2hhbmdlCisJRU9GCisJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIG91dC50bXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlLWJsYW5rLWxpbmVzOiBzY2F0dGVyZWQgc3BhY2VzJyAnCisJdGVzdF9zZXEgMTAgPnggJiYKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwljYXQgPDwtXEVPRiA+eCAmJgorCWNoYW5nZQorCTEKKwkyCisJMworCisJNAorCisJNQorCisJNgorCisKKwk3CisKKwk4CisJOQorCTEwCisJY2hhbmdlCisJRU9GCisJZ2l0IGRpZmYgLS1pbnRlci1odW5rLWNvbnRleHQ9NCAtLWlnbm9yZS1ibGFuay1saW5lcyA+b3V0LnRtcCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCWRpZmYgLS1naXQgYS94IGIveAorCS0tLSBhL3gKKwkrKysgYi94CisJQEAgLTEsMyArMSw0IEBACisJK2NoYW5nZQorCSAxCisJIDIKKwkgMworCUBAIC04LDMgKzE1LDQgQEAKKwkgOAorCSA5CisJIDEwCisJK2NoYW5nZQorCUVPRgorCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBvdXQudG1wCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2lnbm9yZS1ibGFuay1saW5lczogc3BhY2VzIGNvYWxlc2NlJyAnCisJdGVzdF9zZXEgNiA+eCAmJgorCWdpdCB1cGRhdGUtaW5kZXggeCAmJgorCWNhdCA8PC1cRU9GID54ICYmCisJY2hhbmdlCisJMQorCTIKKwkzCisKKwk0CisKKwk1CisKKwk2CisJY2hhbmdlCisJRU9GCisJZ2l0IGRpZmYgLS1pbnRlci1odW5rLWNvbnRleHQ9NCAtLWlnbm9yZS1ibGFuay1saW5lcyA+b3V0LnRtcCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCWRpZmYgLS1naXQgYS94IGIveAorCS0tLSBhL3gKKwkrKysgYi94CisJQEAgLTEsNiArMSwxMSBAQAorCStjaGFuZ2UKKwkgMQorCSAyCisJIDMKKwkrCisJIDQKKwkrCisJIDUKKwkrCisJIDYKKwkrY2hhbmdlCisJRU9GCisJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIG91dC50bXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlLWJsYW5rLWxpbmVzOiBtaXggY2hhbmdlcyBhbmQgYmxhbmsgbGluZXMnICcKKwl0ZXN0X3NlcSAxNiA+eCAmJgorCWdpdCB1cGRhdGUtaW5kZXggeCAmJgorCWNhdCA8PC1cRU9GID54ICYmCisJY2hhbmdlCisJMQorCTIKKworCTMKKwk0CisJNQorCWNoYW5nZQorCTYKKwk3CisJOAorCisJOQorCTEwCisJMTEKKwljaGFuZ2UKKwkxMgorCTEzCisJMTQKKworCTE1CisJMTYKKwljaGFuZ2UKKwlFT0YKKwlnaXQgZGlmZiAtLWlnbm9yZS1ibGFuay1saW5lcyA+b3V0LnRtcCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCWRpZmYgLS1naXQgYS94IGIveAorCS0tLSBhL3gKKwkrKysgYi94CisJQEAgLTEsOCArMSwxMSBAQAorCStjaGFuZ2UKKwkgMQorCSAyCisJKworCSAzCisJIDQKKwkgNQorCStjaGFuZ2UKKwkgNgorCSA3CisJIDgKKwlAQCAtOSw4ICsxMywxMSBAQAorCSA5CisJIDEwCisJIDExCisJK2NoYW5nZQorCSAxMgorCSAxMworCSAxNAorCSsKKwkgMTUKKwkgMTYKKwkrY2hhbmdlCisJRU9GCisJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIG91dC50bXAKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2sgbWl4ZWQgc3BhY2VzIGFuZCB0YWJzIGluIGluZGVudCcgJwogCiAJIyBUaGlzIGlzIGluZGVudGVkIHdpdGggU1AgSFQgU1AuCmRpZmYgLS1naXQgYS90L3Q0MDIzLWRpZmYtcmVuYW1lLXR5cGVjaGFuZ2Uuc2ggYi90L3Q0MDIzLWRpZmYtcmVuYW1lLXR5cGVjaGFuZ2Uuc2gKaW5kZXggNWQyMGFjZi4uNTVkNTQ5ZiAxMDA3NTUKLS0tIGEvdC90NDAyMy1kaWZmLXJlbmFtZS10eXBlY2hhbmdlLnNoCisrKyBiL3QvdDQwMjMtZGlmZi1yZW5hbWUtdHlwZWNoYW5nZS5zaApAQCAtNCw0NCArNCw0NCBAQAogCiAuIC4vdGVzdC1saWIuc2gKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyBzZXR1cCAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIHNldHVwICcKIAogCXJtIC1mIGZvbyBiYXIgJiYKIAljYXQgIiRURVNUX0RJUkVDVE9SWSIvLi4vQ09QWUlORyA+Zm9vICYmCi0JbG4gLXMgbGlua2xpbmsgYmFyICYmCi0JZ2l0IGFkZCBmb28gYmFyICYmCisJdGVzdF9sbl9zX2FkZCBsaW5rbGluayBiYXIgJiYKKwlnaXQgYWRkIGZvbyAmJgogCWdpdCBjb21taXQgLWEgLW0gSW5pdGlhbCAmJgogCWdpdCB0YWcgb25lICYmCiAKLQlybSAtZiBmb28gYmFyICYmCisJZ2l0IHJtIC1mIGZvbyBiYXIgJiYKIAljYXQgIiRURVNUX0RJUkVDVE9SWSIvLi4vQ09QWUlORyA+YmFyICYmCi0JbG4gLXMgbGlua2xpbmsgZm9vICYmCi0JZ2l0IGFkZCBmb28gYmFyICYmCisJdGVzdF9sbl9zX2FkZCBsaW5rbGluayBmb28gJiYKKwlnaXQgYWRkIGJhciAmJgogCWdpdCBjb21taXQgLWEgLW0gU2Vjb25kICYmCiAJZ2l0IHRhZyB0d28gJiYKIAotCXJtIC1mIGZvbyBiYXIgJiYKKwlnaXQgcm0gLWYgZm9vIGJhciAmJgogCWNhdCAiJFRFU1RfRElSRUNUT1JZIi8uLi9DT1BZSU5HID5mb28gJiYKIAlnaXQgYWRkIGZvbyAmJgogCWdpdCBjb21taXQgLWEgLW0gVGhpcmQgJiYKIAlnaXQgdGFnIHRocmVlICYmCiAKIAltdiBmb28gYmFyICYmCi0JbG4gLXMgbGlua2xpbmsgZm9vICYmCi0JZ2l0IGFkZCBmb28gYmFyICYmCisJdGVzdF9sbl9zX2FkZCBsaW5rbGluayBmb28gJiYKKwlnaXQgYWRkIGJhciAmJgogCWdpdCBjb21taXQgLWEgLW0gRm91cnRoICYmCiAJZ2l0IHRhZyBmb3VyICYmCiAKIAkjIFRoaXMgaXMgcHVyZWx5IGZvciBzYW5pdHkgY2hlY2sKIAotCXJtIC1mIGZvbyBiYXIgJiYKKwlnaXQgcm0gLWYgZm9vIGJhciAmJgogCWNhdCAiJFRFU1RfRElSRUNUT1JZIi8uLi9DT1BZSU5HID5mb28gJiYKIAljYXQgIiRURVNUX0RJUkVDVE9SWSIvLi4vTWFrZWZpbGUgPmJhciAmJgogCWdpdCBhZGQgZm9vIGJhciAmJgogCWdpdCBjb21taXQgLWEgLW0gRmlmdGggJiYKIAlnaXQgdGFnIGZpdmUgJiYKIAotCXJtIC1mIGZvbyBiYXIgJiYKKwlnaXQgcm0gLWYgZm9vIGJhciAmJgogCWNhdCAiJFRFU1RfRElSRUNUT1JZIi8uLi9NYWtlZmlsZSA+Zm9vICYmCiAJY2F0ICIkVEVTVF9ESVJFQ1RPUlkiLy4uL0NPUFlJTkcgPmJhciAmJgogCWdpdCBhZGQgZm9vIGJhciAmJgpAQCAtNTAsNyArNTAsNyBAQAogCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2Nyb3NzIHJlbmFtZXMgdG8gYmUgZGV0ZWN0ZWQgZm9yIHJlZ3VsYXIgZmlsZXMnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nyb3NzIHJlbmFtZXMgdG8gYmUgZGV0ZWN0ZWQgZm9yIHJlZ3VsYXIgZmlsZXMnICcKIAogCWdpdCBkaWZmLXRyZWUgZml2ZSBzaXggLXIgLS1uYW1lLXN0YXR1cyAtQiAtTSB8IHNvcnQgPmFjdHVhbCAmJgogCXsKQEAgLTYxLDcgKzYxLDcgQEAKIAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdjcm9zcyByZW5hbWVzIHRvIGJlIGRldGVjdGVkIGZvciB0eXBlY2hhbmdlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjcm9zcyByZW5hbWVzIHRvIGJlIGRldGVjdGVkIGZvciB0eXBlY2hhbmdlJyAnCiAKIAlnaXQgZGlmZi10cmVlIG9uZSB0d28gLXIgLS1uYW1lLXN0YXR1cyAtQiAtTSB8IHNvcnQgPmFjdHVhbCAmJgogCXsKQEAgLTcyLDcgKzcyLDcgQEAKIAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdtb3ZlcyBhbmQgcmVuYW1lcycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbW92ZXMgYW5kIHJlbmFtZXMnICcKIAogCWdpdCBkaWZmLXRyZWUgdGhyZWUgZm91ciAtciAtLW5hbWUtc3RhdHVzIC1CIC1NIHwgc29ydCA+YWN0dWFsICYmCiAJewpkaWZmIC0tZ2l0IGEvdC90NDAzMC1kaWZmLXRleHRjb252LnNoIGIvdC90NDAzMC1kaWZmLXRleHRjb252LnNoCmluZGV4IDUzZWMzMzAuLmY3NWY0NmYgMTAwNzU1Ci0tLSBhL3QvdDQwMzAtZGlmZi10ZXh0Y29udi5zaAorKysgYi90L3Q0MDMwLWRpZmYtdGV4dGNvbnYuc2gKQEAgLTEzOSwxMiArMTM5LDEwIEBACiArZnJvdHoKIFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQogRU9GCi0jIG1ha2UgYSBzeW1saW5rIHRoZSBoYXJkIHdheSB0aGF0IHdvcmtzIG9uIHN5bWxpbmstY2hhbGxlbmdlZCBmaWxlIHN5c3RlbXMKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAndGV4dGNvbnYgZG9lcyBub3QgYWN0IG9uIHN5bWxpbmtzJyAnCi0JcHJpbnRmIGZyb3R6ID4gZmlsZSAmJgotCWdpdCBhZGQgZmlsZSAmJgotCWdpdCBscy1maWxlcyAtcyB8IHNlZCAtZSBzLzEwMDY0NC8xMjAwMDAvIHwKLQkJZ2l0IHVwZGF0ZS1pbmRleCAtLWluZGV4LWluZm8gJiYKKwlybSAtZiBmaWxlICYmCisJdGVzdF9sbl9zX2FkZCBmcm90eiBmaWxlICYmCiAJZ2l0IGNvbW1pdCAtbSB0eXBlY2hhbmdlICYmCiAJZ2l0IHNob3cgPmRpZmYgJiYKIAlmaW5kX2RpZmYgPGRpZmYgPmFjdHVhbCAmJgpkaWZmIC0tZ2l0IGEvdC90NDAzOC1kaWZmLWNvbWJpbmVkLnNoIGIvdC90NDAzOC1kaWZmLWNvbWJpbmVkLnNoCmluZGV4IDEyNjFkYmIuLjEwMTlkN2IgMTAwNzU1Ci0tLSBhL3QvdDQwMzgtZGlmZi1jb21iaW5lZC5zaAorKysgYi90L3Q0MDM4LWRpZmYtY29tYmluZWQuc2gKQEAgLTM1Myw0ICszNTMsNTIgQEAKIAljb21wYXJlX2RpZmZfcGF0Y2ggZXhwZWN0ZWQgYWN0dWFsCiAnCiAKKyMgVGVzdCBmb3IgYSBidWcgcmVwb3J0ZWQgYXQKKyMgaHR0cDovL3RocmVhZC5nbWFuZS5vcmcvZ21hbmUuY29tcC52ZXJzaW9uLWNvbnRyb2wuZ2l0LzIyNDQxMAorIyB3aGVyZSBhIGRlbGV0ZSBsaW5lcyB3ZXJlIG1pc3NpbmcgZnJvbSBjb21iaW5lZCBkaWZmIG91dHB1dCB3aGVuIHRoZXkKKyMgb2NjdXJyZWQgZXhhY3RseSBiZWZvcmUgdGhlIGNvbnRleHQgbGluZXMgb2YgYSBsYXRlciBjaGFuZ2UuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjb21iaW5lIGRpZmYgbWlzc2luZyBkZWxldGUgYnVnJyAnCisJZ2l0IGNvbW1pdCAtbSBpbml0aWFsIC0tYWxsb3ctZW1wdHkgJiYKKwljYXQgPDwtXEVPRiA+dGVzdCAmJgorCTEKKwkyCisJMworCTQKKwlFT0YKKwlnaXQgYWRkIHRlc3QgJiYKKwlnaXQgY29tbWl0IC1hIC1tIHNpZGUxICYmCisJZ2l0IGNoZWNrb3V0IC1CIHNpZGUxICYmCisJZ2l0IGNoZWNrb3V0IEhFQUReICYmCisJY2F0IDw8LVxFT0YgPnRlc3QgJiYKKwkwCisJMQorCTIKKwkzCisJNG1vZGlmaWVkCisJRU9GCisJZ2l0IGFkZCB0ZXN0ICYmCisJZ2l0IGNvbW1pdCAtbSBzaWRlMiAmJgorCWdpdCBicmFuY2ggLWYgc2lkZTIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLS1uby1jb21taXQgc2lkZTEgJiYKKwljYXQgPDwtXEVPRiA+dGVzdCAmJgorCTEKKwkyCisJMworCTRtb2RpZmllZAorCUVPRgorCWdpdCBhZGQgdGVzdCAmJgorCWdpdCBjb21taXQgLWEgLW0gbWVyZ2UgJiYKKwlnaXQgZGlmZi10cmVlIC1jIC1wIEhFQUQgPmFjdHVhbC50bXAgJiYKKwlzZWQgLWUgIjEsL15AQEAvZCIgPCBhY3R1YWwudG1wID5hY3R1YWwgJiYKKwl0ciAtZCBRIDw8LVxFT0YgPmV4cGVjdGVkICYmCisJLSAwCisJICAxCisJICAyCisJICAzCisJIC00CisJICs0bW9kaWZpZWQKKwlFT0YKKwljb21wYXJlX2RpZmZfcGF0Y2ggZXhwZWN0ZWQgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NDA0MS1kaWZmLXN1Ym1vZHVsZS1vcHRpb24uc2ggYi90L3Q0MDQxLWRpZmYtc3VibW9kdWxlLW9wdGlvbi5zaAppbmRleCAzMmQ0YTYwLi4xNzUxYzgzIDEwMDc1NQotLS0gYS90L3Q0MDQxLWRpZmYtc3VibW9kdWxlLW9wdGlvbi5zaAorKysgYi90L3Q0MDQxLWRpZmYtc3VibW9kdWxlLW9wdGlvbi5zaApAQCAtMSw2ICsxLDcgQEAKICMhL2Jpbi9zaAogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDkgSmVucyBMZWhtYW5uLCBiYXNlZCBvbiB0NzQwMSBieSBQaW5nIFlpbgorIyBDb3B5cmlnaHQgKGMpIDIwMTEgQWxleGV5IFNodW1raW4gKCsgbm9uLVVURi04IGNvbW1pdCBlbmNvZGluZyB0ZXN0cykKICMKIAogdGVzdF9kZXNjcmlwdGlvbj0nU3VwcG9ydCBmb3IgdmVyYm9zZSBzdWJtb2R1bGUgZGlmZmVyZW5jZXMgaW4gZ2l0IGRpZmYKQEAgLTEwLDYgKzExLDkgQEAKIAogLiAuL3Rlc3QtbGliLnNoCiAKKyMgU3RyaW5nICJhZGRlZCIgaW4gR2VybWFuICh0cmFuc2xhdGVkIHdpdGggR29vZ2xlIFRyYW5zbGF0ZSksIGVuY29kZWQgaW4gVVRGLTgsCisjIHVzZWQgaW4gc2FtcGxlIGNvbW1pdCBsb2cgbWVzc2FnZXMgaW4gYWRkX2ZpbGUoKSBmdW5jdGlvbiBiZWxvdy4KK2FkZGVkPSQocHJpbnRmICJoaW56dWdlZlwzMDNcMjc0Z3QiKQogYWRkX2ZpbGUgKCkgewogCSgKIAkJY2QgIiQxIiAmJgpAQCAtMTksNyArMjMsOCBAQAogCQkJZWNobyAiJG5hbWUiID4iJG5hbWUiICYmCiAJCQlnaXQgYWRkICIkbmFtZSIgJiYKIAkJCXRlc3RfdGljayAmJgotCQkJZ2l0IGNvbW1pdCAtbSAiQWRkICRuYW1lIiB8fCBleGl0CisJCQltc2dfYWRkZWRfaXNvODg1OTE9JChlY2hvICJBZGQgJG5hbWUgKCRhZGRlZCAkbmFtZSkiIHwgaWNvbnYgLWYgdXRmLTggLXQgaXNvODg1OS0xKSAmJgorCQkJZ2l0IC1jICdpMThuLmNvbW1pdEVuY29kaW5nPWlzbzg4NTktMScgY29tbWl0IC1tICIkbXNnX2FkZGVkX2lzbzg4NTkxIgogCQlkb25lID4vZGV2L251bGwgJiYKIAkJZ2l0IHJldi1wYXJzZSAtLXNob3J0IC0tdmVyaWZ5IEhFQUQKIAkpCkBAIC05Myw3ICs5OCw3IEBACiAJZ2l0IGRpZmYtaW5kZXggLXAgLS1zdWJtb2R1bGU9bG9nIEhFQUQgPmFjdHVhbCAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAJU3VibW9kdWxlIHNtMSAkaGVhZDEuLiRoZWFkMjoKLQkgID4gQWRkIGZvbzMKKwkgID4gQWRkIGZvbzMgKCRhZGRlZCBmb28zKQogCUVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTAyLDcgKzEwNyw3IEBACiAJZ2l0IGRpZmYgLS1zdWJtb2R1bGU9bG9nID5hY3R1YWwgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogCVN1Ym1vZHVsZSBzbTEgJGhlYWQxLi4kaGVhZDI6Ci0JICA+IEFkZCBmb28zCisJICA+IEFkZCBmb28zICgkYWRkZWQgZm9vMykKIAlFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTExMSw3ICsxMTYsNyBAQAogCWdpdCBkaWZmIC0tc3VibW9kdWxlID5hY3R1YWwgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogCVN1Ym1vZHVsZSBzbTEgJGhlYWQxLi4kaGVhZDI6Ci0JICA+IEFkZCBmb28zCisJICA+IEFkZCBmb28zICgkYWRkZWQgZm9vMykKIAlFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTE0Miw4ICsxNDcsOCBAQAogCWdpdCBkaWZmLWluZGV4IC1wIC0tc3VibW9kdWxlPWxvZyBIRUFEID5hY3R1YWwgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogCVN1Ym1vZHVsZSBzbTEgJGhlYWQyLi4kaGVhZDMgKHJld2luZCk6Ci0JICA8IEFkZCBmb28zCi0JICA8IEFkZCBmb28yCisJICA8IEFkZCBmb28zICgkYWRkZWQgZm9vMykKKwkgIDwgQWRkIGZvbzIgKCRhZGRlZCBmb28yKQogCUVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTUzLDEwICsxNTgsMTAgQEAKIAlnaXQgZGlmZi1pbmRleCAtcCAtLXN1Ym1vZHVsZT1sb2cgSEVBRCA+YWN0dWFsICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKIAlTdWJtb2R1bGUgc20xICRoZWFkMi4uLiRoZWFkNDoKLQkgID4gQWRkIGZvbzUKLQkgID4gQWRkIGZvbzQKLQkgIDwgQWRkIGZvbzMKLQkgIDwgQWRkIGZvbzIKKwkgID4gQWRkIGZvbzUgKCRhZGRlZCBmb281KQorCSAgPiBBZGQgZm9vNCAoJGFkZGVkIGZvbzQpCisJICA8IEFkZCBmb28zICgkYWRkZWQgZm9vMykKKwkgIDwgQWRkIGZvbzIgKCRhZGRlZCBmb28yKQogCUVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpkaWZmIC0tZ2l0IGEvdC90NDExMS1hcHBseS1zdWJkaXIuc2ggYi90L3Q0MTExLWFwcGx5LXN1YmRpci5zaAppbmRleCA3YzM5ODQzLi4xNjE4YTZkIDEwMDc1NQotLS0gYS90L3Q0MTExLWFwcGx5LXN1YmRpci5zaAorKysgYi90L3Q0MTExLWFwcGx5LXN1YmRpci5zaApAQCAtODYsNiArODYsMjAgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCBzdWIvZGlyL2ZpbGUKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnYXBwbHkgaGFsZi1icm9rZW4gcGF0Y2ggZnJvbSBzdWJkaXIgb2YgdG9wbGV2ZWwnICcKKwkoCisJCWNkIHN1Yi9kaXIgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IGFwcGx5IDw8LUVPRgorCQktLS0gc3ViL2Rpci9maWxlCisJCSsrKyBzdWIvZGlyL2ZpbGUKKwkJQEAgLTEsMCArMSwwIEBACisJCS0tLSBmaWxlX2luX3Jvb3QKKwkJKysrIGZpbGVfaW5fcm9vdAorCQlAQCAtMSwwICsxLDAgQEAKKwkJRU9GCisJKQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhcHBseSBmcm9tIC5naXQgZGlyJyAnCiAJY3AgcG9zdGltYWdlIGV4cGVjdGVkICYmCiAJY3AgcHJlaW1hZ2UgLmdpdC9maWxlICYmCmRpZmYgLS1naXQgYS90L3Q0MTE0LWFwcGx5LXR5cGVjaGFuZ2Uuc2ggYi90L3Q0MTE0LWFwcGx5LXR5cGVjaGFuZ2Uuc2gKaW5kZXggZjEyODI2Zi4uZWJhZGJjMyAxMDA3NTUKLS0tIGEvdC90NDExNC1hcHBseS10eXBlY2hhbmdlLnNoCisrKyBiL3QvdDQxMTQtYXBwbHktdHlwZWNoYW5nZS5zaApAQCAtOSwyMCArOSwxOSBAQAogCiAuIC4vdGVzdC1saWIuc2gKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc2V0dXAgcmVwb3NpdG9yeSBhbmQgY29tbWl0cycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgcmVwb3NpdG9yeSBhbmQgY29tbWl0cycgJwogCWVjaG8gImhlbGxvIHdvcmxkIiA+IGZvbyAmJgogCWVjaG8gImhpIHBsYW5ldCIgPiBiYXIgJiYKIAlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGZvbyBiYXIgJiYKIAlnaXQgY29tbWl0IC1tIGluaXRpYWwgJiYKIAlnaXQgYnJhbmNoIGluaXRpYWwgJiYKIAlybSAtZiBmb28gJiYKLQlsbiAtcyBiYXIgZm9vICYmCi0JZ2l0IHVwZGF0ZS1pbmRleCBmb28gJiYKKwl0ZXN0X2xuX3NfYWRkIGJhciBmb28gJiYKIAlnaXQgY29tbWl0IC1tICJmb28gc3ltbGlua2VkIHRvIGJhciIgJiYKIAlnaXQgYnJhbmNoIGZvby1zeW1saW5rZWQtdG8tYmFyICYmCi0Jcm0gLWYgZm9vICYmCisJZ2l0IHJtIC1mIGZvbyAmJgogCWVjaG8gImhvdyBmYXIgaXMgdGhlIHN1bj8iID4gZm9vICYmCi0JZ2l0IHVwZGF0ZS1pbmRleCBmb28gJiYKKwlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGZvbyAmJgogCWdpdCBjb21taXQgLW0gImZvbyBiYWNrIHRvIGZpbGUiICYmCiAJZ2l0IGJyYW5jaCBmb28tYmFjay10by1maWxlICYmCiAJcHJpbnRmICJcMCIgPiBmb28gJiYKQEAgLTQyLDcgKzQxLDcgQEAKIAlnaXQgYnJhbmNoIGZvby1iYXotcmVuYW1lZC1mcm9tLWZvbwogCScKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZmlsZSByZW5hbWVkIGZyb20gZm9vIHRvIGZvby9iYXonICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbGUgcmVuYW1lZCBmcm9tIGZvbyB0byBmb28vYmF6JyAnCiAJZ2l0IGNoZWNrb3V0IC1mIGluaXRpYWwgJiYKIAlnaXQgZGlmZi10cmVlIC1NIC1wIEhFQUQgZm9vLWJhei1yZW5hbWVkLWZyb20tZm9vID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCkBAIC01MCw3ICs0OSw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZmlsZSByZW5hbWVkIGZyb20gZm9vL2JheiB0byBmb28nICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbGUgcmVuYW1lZCBmcm9tIGZvby9iYXogdG8gZm9vJyAnCiAJZ2l0IGNoZWNrb3V0IC1mIGZvby1iYXotcmVuYW1lZC1mcm9tLWZvbyAmJgogCWdpdCBkaWZmLXRyZWUgLU0gLXAgSEVBRCBpbml0aWFsID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCkBAIC01OCw3ICs1Nyw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZGlyZWN0b3J5IGJlY29tZXMgZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlyZWN0b3J5IGJlY29tZXMgZmlsZScgJwogCWdpdCBjaGVja291dCAtZiBmb28tYmVjb21lcy1hLWRpcmVjdG9yeSAmJgogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRCBpbml0aWFsID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCkBAIC02Niw3ICs2NSw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZmlsZSBiZWNvbWVzIGRpcmVjdG9yeScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmlsZSBiZWNvbWVzIGRpcmVjdG9yeScgJwogCWdpdCBjaGVja291dCAtZiBpbml0aWFsICYmCiAJZ2l0IGRpZmYtdHJlZSAtcCBIRUFEIGZvby1iZWNvbWVzLWEtZGlyZWN0b3J5ID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCkBAIC03NCw3ICs3Myw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZmlsZSBiZWNvbWVzIHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbGUgYmVjb21lcyBzeW1saW5rJyAnCiAJZ2l0IGNoZWNrb3V0IC1mIGluaXRpYWwgJiYKIAlnaXQgZGlmZi10cmVlIC1wIEhFQUQgZm9vLXN5bWxpbmtlZC10by1iYXIgPiBwYXRjaCAmJgogCWdpdCBhcHBseSAtLWluZGV4IDwgcGF0Y2gKQEAgLTgyLDIxICs4MSwyMSBAQAogdGVzdF9kZWJ1ZyAnY2F0IHBhdGNoJwogCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3N5bWxpbmsgYmVjb21lcyBmaWxlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzeW1saW5rIGJlY29tZXMgZmlsZScgJwogCWdpdCBjaGVja291dCAtZiBmb28tc3ltbGlua2VkLXRvLWJhciAmJgogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRCBmb28tYmFjay10by1maWxlID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCiAJJwogdGVzdF9kZWJ1ZyAnY2F0IHBhdGNoJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdiaW5hcnkgZmlsZSBiZWNvbWVzIHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JpbmFyeSBmaWxlIGJlY29tZXMgc3ltbGluaycgJwogCWdpdCBjaGVja291dCAtZiBmb28tYmVjb21lcy1iaW5hcnkgJiYKIAlnaXQgZGlmZi10cmVlIC1wIC0tYmluYXJ5IEhFQUQgZm9vLXN5bWxpbmtlZC10by1iYXIgPiBwYXRjaCAmJgogCWdpdCBhcHBseSAtLWluZGV4IDwgcGF0Y2gKIAknCiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3N5bWxpbmsgYmVjb21lcyBiaW5hcnkgZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3ltbGluayBiZWNvbWVzIGJpbmFyeSBmaWxlJyAnCiAJZ2l0IGNoZWNrb3V0IC1mIGZvby1zeW1saW5rZWQtdG8tYmFyICYmCiAJZ2l0IGRpZmYtdHJlZSAtcCAtLWJpbmFyeSBIRUFEIGZvby1iZWNvbWVzLWJpbmFyeSA+IHBhdGNoICYmCiAJZ2l0IGFwcGx5IC0taW5kZXggPCBwYXRjaApAQCAtMTA0LDcgKzEwMyw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc3ltbGluayBiZWNvbWVzIGRpcmVjdG9yeScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3ltbGluayBiZWNvbWVzIGRpcmVjdG9yeScgJwogCWdpdCBjaGVja291dCAtZiBmb28tc3ltbGlua2VkLXRvLWJhciAmJgogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRCBmb28tYmVjb21lcy1hLWRpcmVjdG9yeSA+IHBhdGNoICYmCiAJZ2l0IGFwcGx5IC0taW5kZXggPCBwYXRjaApAQCAtMTEyLDcgKzExMSw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZGlyZWN0b3J5IGJlY29tZXMgc3ltbGluaycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlyZWN0b3J5IGJlY29tZXMgc3ltbGluaycgJwogCWdpdCBjaGVja291dCAtZiBmb28tYmVjb21lcy1hLWRpcmVjdG9yeSAmJgogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRCBmb28tc3ltbGlua2VkLXRvLWJhciA+IHBhdGNoICYmCiAJZ2l0IGFwcGx5IC0taW5kZXggPCBwYXRjaApkaWZmIC0tZ2l0IGEvdC90NDExNS1hcHBseS1zeW1saW5rLnNoIGIvdC90NDExNS1hcHBseS1zeW1saW5rLnNoCmluZGV4IDc2NzRkZDIuLjg3MmZjZGEgMTAwNzU1Ci0tLSBhL3QvdDQxMTUtYXBwbHktc3ltbGluay5zaAorKysgYi90L3Q0MTE1LWFwcGx5LXN5bWxpbmsuc2gKQEAgLTksMTggKzksMTYgQEAKIAogLiAuL3Rlc3QtbGliLnNoCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1Mgc2V0dXAgJwordGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAKLQlsbiAtcyBwYXRoMS9wYXRoMi9wYXRoMy9wYXRoNC9wYXRoNSBsaW5rMSAmJgotCWdpdCBhZGQgbGluaz8gJiYKKwl0ZXN0X2xuX3NfYWRkIHBhdGgxL3BhdGgyL3BhdGgzL3BhdGg0L3BhdGg1IGxpbmsxICYmCiAJZ2l0IGNvbW1pdCAtbSBpbml0aWFsICYmCiAKIAlnaXQgYnJhbmNoIHNpZGUgJiYKIAogCXJtIC1mIGxpbms/ICYmCiAKLQlsbiAtcyBodGFwNiBsaW5rMSAmJgotCWdpdCB1cGRhdGUtaW5kZXggbGluaz8gJiYKKwl0ZXN0X2xuX3NfYWRkIGh0YXA2IGxpbmsxICYmCiAJZ2l0IGNvbW1pdCAtbSBzZWNvbmQgJiYKIAogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRF4gSEVBRCA+cGF0Y2ggICYmCkBAIC0zNyw3ICszNSw3IEBACiAKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnYXBwbHkgLS1pbmRleCBzeW1saW5rIHBhdGNoJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdhcHBseSAtLWluZGV4IHN5bWxpbmsgcGF0Y2gnICcKIAogCWdpdCBjaGVja291dCAtZiBzaWRlICYmCiAJZ2l0IGFwcGx5IC0taW5kZXggcGF0Y2ggJiYKZGlmZiAtLWdpdCBhL3QvdDQxMjItYXBwbHktc3ltbGluay1pbnNpZGUuc2ggYi90L3Q0MTIyLWFwcGx5LXN5bWxpbmstaW5zaWRlLnNoCmluZGV4IDM5NDA3MzcuLjcwYjNhMDYgMTAwNzU1Ci0tLSBhL3QvdDQxMjItYXBwbHktc3ltbGluay1pbnNpZGUuc2gKKysrIGIvdC90NDEyMi1hcHBseS1zeW1saW5rLWluc2lkZS5zaApAQCAtMTAsMTEgKzEwLDExIEBACiAJZG9uZQogfQogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTIHNldHVwICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3Mgc2V0dXAgJwogCiAJbWtkaXIgLXAgYXJjaC9pMzg2L2Jvb3QgYXJjaC94ODZfNjQgJiYKIAlsZWNobyAxIDIgMyA0IDUgPmFyY2gvaTM4Ni9ib290L01ha2VmaWxlICYmCi0JbG4gLXMgLi4vaTM4Ni9ib290IGFyY2gveDg2XzY0L2Jvb3QgJiYKKwl0ZXN0X2xuX3NfYWRkIC4uL2kzODYvYm9vdCBhcmNoL3g4Nl82NC9ib290ICYmCiAJZ2l0IGFkZCAuICYmCiAJdGVzdF90aWNrICYmCiAJZ2l0IGNvbW1pdCAtbSBpbml0aWFsICYmCkBAIC0zMSw3ICszMSw3IEBACiAKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyBhcHBseSAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIGFwcGx5ICcKIAogCWdpdCBjaGVja291dCB0ZXN0ICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgdGVzdCAmJgpAQCAtNDAsNyArNDAsNyBAQAogCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NoZWNrIHJlc3VsdCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2sgcmVzdWx0JyAnCiAKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSBtYXN0ZXIgJiYKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSAtLWNhY2hlZCBtYXN0ZXIgJiYKZGlmZiAtLWdpdCBhL3QvdDQxNTAtYW0uc2ggYi90L3Q0MTUwLWFtLnNoCmluZGV4IDEyZjZiMDIuLjVlZGI3OWEgMTAwNzU1Ci0tLSBhL3QvdDQxNTAtYW0uc2gKKysrIGIvdC90NDE1MC1hbS5zaApAQCAtMTQ3LDcgKzE0Nyw3IEBACiAJZ2l0IGNoZWNrb3V0IGZpcnN0ICYmCiAJdGVzdF90aWNrICYmCiAJZ2l0IGFtIDxwYXRjaDEgJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIHNlY29uZCAmJgogCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSBzZWNvbmQpIiA9ICIkKGdpdCByZXYtcGFyc2UgSEVBRCkiICYmCiAJdGVzdCAiJChnaXQgcmV2LXBhcnNlIHNlY29uZF4pIiA9ICIkKGdpdCByZXYtcGFyc2UgSEVBRF4pIgpAQCAtMTU4LDcgKzE1OCw3IEBACiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBmaXJzdCAmJgogCWdpdCBhbSBwYXRjaDEuZW1sICYmCi0JISB0ZXN0IC1kIC5naXQvcmViYXNlLWFwcGx5ICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZWJhc2UtYXBwbHkgJiYKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSBzZWNvbmQgJiYKIAl0ZXN0ICIkKGdpdCByZXYtcGFyc2Ugc2Vjb25kKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUQpIiAmJgogCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSBzZWNvbmReKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUReKSIKQEAgLTE2OSw3ICsxNjksNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgZmlyc3QgJiYKIAlnaXQgYW0gcGF0Y2gxLWNybGYuZW1sICYmCi0JISB0ZXN0IC1kIC5naXQvcmViYXNlLWFwcGx5ICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZWJhc2UtYXBwbHkgJiYKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSBzZWNvbmQgJiYKIAl0ZXN0ICIkKGdpdCByZXYtcGFyc2Ugc2Vjb25kKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUQpIiAmJgogCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSBzZWNvbmReKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUReKSIKQEAgLTE4MCw3ICsxODAsNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgZmlyc3QgJiYKIAlnaXQgYW0gcGF0Y2gxLXdzLmVtbCAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgc2Vjb25kICYmCiAJdGVzdCAiJChnaXQgcmV2LXBhcnNlIHNlY29uZCkiID0gIiQoZ2l0IHJldi1wYXJzZSBIRUFEKSIgJiYKIAl0ZXN0ICIkKGdpdCByZXYtcGFyc2Ugc2Vjb25kXikiID0gIiQoZ2l0IHJldi1wYXJzZSBIRUFEXikiCkBAIC0yMDYsNyArMjA2LDcgQEAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGZpcnN0ICYmCiAJZ2l0IGFtIHBhdGNoMiAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJdGVzdCAiJChnaXQgcmV2LXBhcnNlIG1hc3Rlcl5eKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUReXikiICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgbWFzdGVyLi5IRUFEICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgbWFzdGVyXi4uSEVBRF4gJiYKQEAgLTI1OCw3ICsyNTgsNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgSEVBRF4gJiYKIAlnaXQgYW0gLS1rZWVwIHBhdGNoNCAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJZ2l0IGNhdC1maWxlIGNvbW1pdCBIRUFEID5hY3R1YWwgJiYKIAlncmVwICJSZTogUmU6IFJlOiBcW1BBVENIIDEvNSB2MlxdIFxbZm9vXF0gdGhpcmQiIGFjdHVhbAogJwpAQCAtMjY4LDcgKzI2OCw3IEBACiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBIRUFEXiAmJgogCWdpdCBhbSAtLWtlZXAtbm9uLXBhdGNoIHBhdGNoNCAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJZ2l0IGNhdC1maWxlIGNvbW1pdCBIRUFEID5hY3R1YWwgJiYKIAlncmVwICJeXFtmb29cXSB0aGlyZCIgYWN0dWFsCiAnCkBAIC0yODMsNyArMjgzLDcgQEAKIAl0ZXN0X3RpY2sgJiYKIAlnaXQgY29tbWl0IC1tICJjb3BpZWQgc3R1ZmYiICYmCiAJZ2l0IGFtIC0zIGxvcmVtLW1vdmUucGF0Y2ggJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIGxvcmVtCiAnCiAKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCXRlc3RfdGljayAmJgogCWdpdCBjb21taXQgLW0gImNvcGllZCBzdHVmZiIgJiYKIAlnaXQgYW0gLTMgLXAwIGxvcmVtLXplcm8ucGF0Y2ggJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIGxvcmVtCiAnCiAKQEAgLTMwNyw3ICszMDcsNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgbG9yZW1eMCAmJgogCWdpdCBhbSByZW5hbWUucGF0Y2ggJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgcmVuYW1lCiAnCkBAIC0zMTgsNyArMzE4LDcgQEAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGxvcmVtXjAgJiYKIAlnaXQgYW0gLTMgcmVuYW1lLnBhdGNoICYmCi0JISB0ZXN0IC1kIC5naXQvcmViYXNlLWFwcGx5ICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZWJhc2UtYXBwbHkgJiYKIAlnaXQgdXBkYXRlLWluZGV4IC0tcmVmcmVzaCAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIHJlbmFtZQogJwpAQCAtMzI5LDcgKzMyOSw3IEBACiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBsb3JlbV4wICYmCiAJZ2l0IGFtIC0zIHJlbmFtZS1hZGQucGF0Y2ggJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgcmVuYW1lCiAnCkBAIC0zNTgsMTEgKzM1OCwxNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYW0gLS1za2lwIHdvcmtzJyAnCiAJZWNobyBnb29kYnllID5leHBlY3RlZCAmJgogCWdpdCBhbSAtLXNraXAgJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIGxvcmVtMl5eIC0tIGZpbGUgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCBhbm90aGVyCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FtIC0tYWJvcnQgcmVtb3ZlcyBhIHN0cmF5IGRpcmVjdG9yeScgJworCW1rZGlyIC5naXQvcmViYXNlLWFwcGx5ICYmCisJZ2l0IGFtIC0tYWJvcnQgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbSAtLXJlc29sdmVkIHdvcmtzJyAnCiAJZWNobyBnb29kYnllID5leHBlY3RlZCAmJgogCXJtIC1mciAuZ2l0L3JlYmFzZS1hcHBseSAmJgpAQCAtMzczLDcgKzM3OSw3IEBACiAJZWNobyByZXNvbHZlZCA+PmZpbGUgJiYKIAlnaXQgYWRkIGZpbGUgJiYKIAlnaXQgYW0gLS1yZXNvbHZlZCAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYW5vdGhlcgogJwogCkBAIC0zODIsNyArMzg4LDcgQEAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGZpcnN0ICYmCiAJY2F0IHBpbmUgcGF0Y2gxIHwgZ2l0IGFtICYmCi0JISB0ZXN0IC1kIC5naXQvcmViYXNlLWFwcGx5ICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZWJhc2UtYXBwbHkgJiYKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSBtYXN0ZXJeLi5IRUFECiAnCiAKQEAgLTM5MSw3ICszOTcsNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgYW0gPGZhaWxtYWlsICYmCiAJZ2l0IGFtIC0tYWJvcnQgJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbSBmYWlscyBvbiBlbXB0eSBwYXRjaCcgJwpAQCAtNDAwLDcgKzQwNiw3IEBACiAJZWNobyAiLS0tIiA+PmZhaWxtYWlsICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGFtIDxmYWlsbWFpbCAmJgogCWdpdCBhbSAtLXNraXAgJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbSB3b3JrcyBmcm9tIHN0ZGluIGluIHN1YmRpcmVjdG9yeScgJwpkaWZmIC0tZ2l0IGEvdC90NDIwMi1sb2cuc2ggYi90L3Q0MjAyLWxvZy5zaAppbmRleCA5MjQzYTk3Li5jYjAzZDI4IDEwMDc1NQotLS0gYS90L3Q0MjAyLWxvZy5zaAorKysgYi90L3Q0MjAyLWxvZy5zaApAQCAtNTMwLDYgKzUzMCwyMCBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGxvZyAtYyAtLWZvbGxvdycgJworCXRlc3RfY3JlYXRlX3JlcG8gZm9sbG93LWMgJiYKKwkoCisJCWNkIGZvbGxvdy1jICYmCisJCXRlc3RfY29tbWl0IGluaXRpYWwgZmlsZSBvcmlnaW5hbCAmJgorCQlnaXQgcm0gZmlsZSAmJgorCQl0ZXN0X2NvbW1pdCByZW5hbWUgZmlsZTIgb3JpZ2luYWwgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCBpbml0aWFsICYmCisJCXRlc3RfY29tbWl0IG1vZGlmeSBmaWxlIGZvbyAmJgorCQlnaXQgbWVyZ2UgLW0gbWVyZ2UgcmVuYW1lICYmCisJCWdpdCBsb2cgLWMgLS1mb2xsb3cgZmlsZTIKKwkpCisnCisKIGNhdCA+ZXhwZWN0IDw8XEVPRgogKiAgIGNvbW1pdCBDT01NSVRfT0JKRUNUX05BTUUKIHxcICBNZXJnZTogTUVSR0VfUEFSRU5UUwpkaWZmIC0tZ2l0IGEvdC90NDIwMy1tYWlsbWFwLnNoIGIvdC90NDIwMy1tYWlsbWFwLnNoCmluZGV4IDg0MmI3NTQuLmNlM2VhY2UgMTAwNzU1Ci0tLSBhL3QvdDQyMDMtbWFpbG1hcC5zaAorKysgYi90L3Q0MjAzLW1haWxtYXAuc2gKQEAgLTEzLDYgKzEzLDExIEBACiB9CiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3Mgc2V0dXAgJworCWNhdCA+Y29udGFjdHMgPDwtXEVPRiAmJgorCUEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+CisJbmljazEgPGJ1Z3NAY29tcGFueS54eD4KKwlFT0YKKwogCWVjaG8gb25lID5vbmUgJiYKIAlnaXQgYWRkIG9uZSAmJgogCXRlc3RfdGljayAmJgpAQCAtMjMsNiArMjgsNDQgQEAKIAlnaXQgY29tbWl0IC0tYXV0aG9yICJuaWNrMSA8YnVnc0Bjb21wYW55Lnh4PiIgLW0gc2Vjb25kCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrLW1haWxtYXAgbm8gYXJndW1lbnRzJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrLW1haWxtYXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2stbWFpbG1hcCBhcmd1bWVudHMnICcKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJQSBVIFRob3IgPGF1dGhvckBleGFtcGxlLmNvbT4KKwluaWNrMSA8YnVnc0Bjb21wYW55Lnh4PgorCUVPRgorCWdpdCBjaGVjay1tYWlsbWFwIFwKKwkJIkEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+IiBcCisJCSJuaWNrMSA8YnVnc0Bjb21wYW55Lnh4PiIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2stbWFpbG1hcCAtLXN0ZGluJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCUEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+CisJbmljazEgPGJ1Z3NAY29tcGFueS54eD4KKwlFT0YKKwlnaXQgY2hlY2stbWFpbG1hcCAtLXN0ZGluIDxjb250YWN0cyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVjay1tYWlsbWFwIC0tc3RkaW4gYXJndW1lbnRzJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCUludGVybmFsIEd1eSA8YnVnc0Bjb21wYW55Lnh5PgorCUVPRgorCWNhdCA8Y29udGFjdHMgPj5leHBlY3QgJiYKKwlnaXQgY2hlY2stbWFpbG1hcCAtLXN0ZGluICJJbnRlcm5hbCBHdXkgPGJ1Z3NAY29tcGFueS54eT4iIFwKKwkJPGNvbnRhY3RzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrLW1haWxtYXAgYm9ndXMgY29udGFjdCcgJworCXRlc3RfbXVzdF9mYWlsIGdpdCBjaGVjay1tYWlsbWFwIGJvZ3VzCisnCisKIGNhdCA+ZXhwZWN0IDw8XEVPRgogQSBVIFRob3IgKDEpOgogICAgICAgaW5pdGlhbApAQCAtMTU5LDcgKzIwMiw4IEBACiAJQmxvYiBHdXkgPGF1dGhvckBleGFtcGxlLmNvbT4KIAlCbG9iIEd1eSA8YnVnc0Bjb21wYW55Lnh4PgogCUVPRgotCWdpdCBhZGQganVzdC1idWdzIGJvdGggJiYKKwlwcmludGYgIlRyaWNreSBHdXkgPGF1dGhvckBleGFtcGxlLmNvbT4iID5uby1uZXdsaW5lICYmCisJZ2l0IGFkZCBqdXN0LWJ1Z3MgYm90aCBuby1uZXdsaW5lICYmCiAJZ2l0IGNvbW1pdCAtbSAibXkgbWFpbG1hcHMiICYmCiAJZWNobyAiUmVwbyBHdXkgPGF1dGhvckBleGFtcGxlLmNvbT4iID4ubWFpbG1hcCAmJgogCWVjaG8gIkludGVybmFsIEd1eSA8YXV0aG9yQGV4YW1wbGUuY29tPiIgPmludGVybmFsLm1hcApAQCAtMjQzLDEwICsyODcsNDEgQEAKIAkpCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21haWxtYXAuYmxvYiBjYW4gaGFuZGxlIGJsb2JzIHdpdGhvdXQgdHJhaWxpbmcgbmV3bGluZScgJworCWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwlUcmlja3kgR3V5ICgxKToKKwkgICAgICBpbml0aWFsCisKKwluaWNrMSAoMSk6CisJICAgICAgc2Vjb25kCisKKwlFT0YKKwlnaXQgLWMgbWFpbG1hcC5ibG9iPW1hcDpuby1uZXdsaW5lIHNob3J0bG9nIEhFQUQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xlYW51cCBhZnRlciBtYWlsbWFwLmJsb2IgdGVzdHMnICcKIAlybSAtZiAubWFpbG1hcAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaW5nbGUtY2hhcmFjdGVyIG5hbWUnICcKKwllY2hvICIgICAgIDEJQSA8YXV0aG9yQGV4YW1wbGUuY29tPiIgPmV4cGVjdCAmJgorCWVjaG8gIiAgICAgMQluaWNrMSA8YnVnc0Bjb21wYW55Lnh4PiIgPj5leHBlY3QgJiYKKwllY2hvICJBIDxhdXRob3JAZXhhbXBsZS5jb20+IiA+Lm1haWxtYXAgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC5tYWlsbWFwIiAmJgorCWdpdCBzaG9ydGxvZyAtZXMgSEVBRCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcmVzZXJ2ZSBjYW5vbmljYWwgZW1haWwgY2FzZScgJworCWVjaG8gIiAgICAgMQlBIFUgVGhvciA8QVVUSE9SQGV4YW1wbGUuY29tPiIgPmV4cGVjdCAmJgorCWVjaG8gIiAgICAgMQluaWNrMSA8YnVnc0Bjb21wYW55Lnh4PiIgPj5leHBlY3QgJiYKKwllY2hvICI8QVVUSE9SQGV4YW1wbGUuY29tPiA8YXV0aG9yQGV4YW1wbGUuY29tPiIgPi5tYWlsbWFwICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAubWFpbG1hcCIgJiYKKwlnaXQgc2hvcnRsb2cgLWVzIEhFQUQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogIyBFeHRlbmRlZCBtYWlsbWFwIGNvbmZpZ3VyYXRpb25zIHNob3VsZCBnaXZlIHVzIHRoZSBmb2xsb3dpbmcgb3V0cHV0IGZvciBzaG9ydGxvZwogY2F0ID5leHBlY3QgPDxcRU9GCiBBIFUgVGhvciA8YXV0aG9yQGV4YW1wbGUuY29tPiAoMSk6CmRpZmYgLS1naXQgYS90L3Q0MjA1LWxvZy1wcmV0dHktZm9ybWF0cy5zaCBiL3QvdDQyMDUtbG9nLXByZXR0eS1mb3JtYXRzLnNoCmluZGV4IDI2ZmJmZGUuLmZiMDAwNDEgMTAwNzU1Ci0tLSBhL3QvdDQyMDUtbG9nLXByZXR0eS1mb3JtYXRzLnNoCisrKyBiL3QvdDQyMDUtbG9nLXByZXR0eS1mb3JtYXRzLnNoCkBAIC0xLDIwICsxLDM4IEBACiAjIS9iaW4vc2gKICMKICMgQ29weXJpZ2h0IChjKSAyMDEwLCBXaWxsIFBhbG1lcgorIyBDb3B5cmlnaHQgKGMpIDIwMTEsIEFsZXhleSBTaHVta2luICgrIG5vbi1VVEYtOCBjb21taXQgZW5jb2RpbmcgdGVzdHMpCiAjCiAKIHRlc3RfZGVzY3JpcHRpb249J1Rlc3QgcHJldHR5IGZvcm1hdHMnCiAuIC4vdGVzdC1saWIuc2gKIAorc2FtcGxlX3V0ZjhfcGFydD0kKHByaW50ZiAiZlwzMDNcMjQ0bmciKQorCitjb21taXRfbXNnICgpIHsKKwkjIFN0cmluZyAiaW5pdGlhbC4gaW5pdGlhbCIgcGFydGx5IGluIEdlcm1hbgorCSMgKHRyYW5zbGF0ZWQgd2l0aCBHb29nbGUgVHJhbnNsYXRlKSwKKwkjIGVuY29kZWQgaW4gVVRGLTgsIHVzZWQgYXMgYSBjb21taXQgbG9nIG1lc3NhZ2UgYmVsb3cuCisJbXNnPSJpbml0aWFsLiBhbiR7c2FtcGxlX3V0ZjhfcGFydH1saWNoXG4iCisJaWYgdGVzdCAtbiAiJDEiCisJdGhlbgorCQlwcmludGYgIiRtc2ciIHwgaWNvbnYgLWYgdXRmLTggLXQgIiQxIgorCWVsc2UKKwkJcHJpbnRmICIkbXNnIgorCWZpCit9CisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldCB1cCBiYXNpYyByZXBvcycgJwogCT5mb28gJiYKIAk+YmFyICYmCiAJZ2l0IGFkZCBmb28gJiYKIAl0ZXN0X3RpY2sgJiYKLQlnaXQgY29tbWl0IC1tIGluaXRpYWwgJiYKKwlnaXQgY29uZmlnIGkxOG4uY29tbWl0RW5jb2RpbmcgaXNvODg1OS0xICYmCisJZ2l0IGNvbW1pdCAtbSAiJChjb21taXRfbXNnIGlzbzg4NTktMSkiICYmCiAJZ2l0IGFkZCBiYXIgJiYKIAl0ZXN0X3RpY2sgJiYKLQlnaXQgY29tbWl0IC1tICJhZGQgYmFyIgorCWdpdCBjb21taXQgLW0gImFkZCBiYXIiICYmCisJZ2l0IGNvbmZpZyAtLXVuc2V0IGkxOG4uY29tbWl0RW5jb2RpbmcKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWxpYXMgYnVpbHRpbiBmb3JtYXQnICcKQEAgLTM4LDYgKzU2LDIwIEBACiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FsaWFzIHVzZXItZGVmaW5lZCB0Zm9ybWF0IHdpdGggJXMgKGlzbzg4NTktMSBlbmNvZGluZyknICcKKwlnaXQgY29uZmlnIGkxOG4ubG9nT3V0cHV0RW5jb2RpbmcgaXNvODg1OS0xICYmCisJZ2l0IGxvZyAtLW9uZWxpbmUgPmV4cGVjdGVkLXMgJiYKKwlnaXQgbG9nIC0tcHJldHR5PSJ0Zm9ybWF0OiVoICVzIiA+YWN0dWFsLXMgJiYKKwlnaXQgY29uZmlnIC0tdW5zZXQgaTE4bi5sb2dPdXRwdXRFbmNvZGluZyAmJgorCXRlc3RfY21wIGV4cGVjdGVkLXMgYWN0dWFsLXMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYWxpYXMgdXNlci1kZWZpbmVkIHRmb3JtYXQgd2l0aCAlcyAodXRmLTggZW5jb2RpbmcpJyAnCisJZ2l0IGxvZyAtLW9uZWxpbmUgPmV4cGVjdGVkLXMgJiYKKwlnaXQgbG9nIC0tcHJldHR5PSJ0Zm9ybWF0OiVoICVzIiA+YWN0dWFsLXMgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZC1zIGFjdHVhbC1zCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FsaWFzIHVzZXItZGVmaW5lZCB0Zm9ybWF0JyAnCiAJZ2l0IGxvZyAtLXByZXR0eT0idGZvcm1hdDolaCIgPmV4cGVjdGVkICYmCiAJZ2l0IGNvbmZpZyBwcmV0dHkudGVzdC1hbGlhcyAidGZvcm1hdDolaCIgJiYKQEAgLTcyLDEzICsxMDQsMTMgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnTlVMIHNlcGFyYXRpb24nICcKLQlwcmludGYgImFkZCBiYXJcMGluaXRpYWwiID5leHBlY3RlZCAmJgorCXByaW50ZiAiYWRkIGJhclwwJChjb21taXRfbXNnKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGxvZyAteiAtLXByZXR0eT0iZm9ybWF0OiVzIiA+YWN0dWFsICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ05VTCB0ZXJtaW5hdGlvbicgJwotCXByaW50ZiAiYWRkIGJhclwwaW5pdGlhbFwwIiA+ZXhwZWN0ZWQgJiYKKwlwcmludGYgImFkZCBiYXJcMCQoY29tbWl0X21zZylcMCIgPmV4cGVjdGVkICYmCiAJZ2l0IGxvZyAteiAtLXByZXR0eT0idGZvcm1hdDolcyIgPmFjdHVhbCAmJgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtODYsNyArMTE4LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ05VTCBzZXBhcmF0aW9uIHdpdGggLS1zdGF0JyAnCiAJc3RhdDBfcGFydD0kKGdpdCBkaWZmIC0tc3RhdCBIRUFEXiBIRUFEKSAmJgogCXN0YXQxX3BhcnQ9JChnaXQgZGlmZi10cmVlIC0tbm8tY29tbWl0LWlkIC0tc3RhdCAtLXJvb3QgSEVBRF4pICYmCi0JcHJpbnRmICJhZGQgYmFyXG4kc3RhdDBfcGFydFxuXDBpbml0aWFsXG4kc3RhdDFfcGFydFxuIiA+ZXhwZWN0ZWQgJiYKKwlwcmludGYgImFkZCBiYXJcbiRzdGF0MF9wYXJ0XG5cMCQoY29tbWl0X21zZylcbiRzdGF0MV9wYXJ0XG4iID5leHBlY3RlZCAmJgogCWdpdCBsb2cgLXogLS1zdGF0IC0tcHJldHR5PSJmb3JtYXQ6JXMiID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC05NCwyNSArMTI2LDI5IEBACiB0ZXN0X2V4cGVjdF9mYWlsdXJlICdOVUwgdGVybWluYXRpb24gd2l0aCAtLXN0YXQnICcKIAlzdGF0MF9wYXJ0PSQoZ2l0IGRpZmYgLS1zdGF0IEhFQUReIEhFQUQpICYmCiAJc3RhdDFfcGFydD0kKGdpdCBkaWZmLXRyZWUgLS1uby1jb21taXQtaWQgLS1zdGF0IC0tcm9vdCBIRUFEXikgJiYKLQlwcmludGYgImFkZCBiYXJcbiRzdGF0MF9wYXJ0XG5cMGluaXRpYWxcbiRzdGF0MV9wYXJ0XG5cMCIgPmV4cGVjdGVkICYmCisJcHJpbnRmICJhZGQgYmFyXG4kc3RhdDBfcGFydFxuXDAkKGNvbW1pdF9tc2cpXG4kc3RhdDFfcGFydFxuMCIgPmV4cGVjdGVkICYmCiAJZ2l0IGxvZyAteiAtLXN0YXQgLS1wcmV0dHk9InRmb3JtYXQ6JXMiID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIG1vcmUgY29tbWl0cycgJwogCXRlc3RfY29tbWl0ICJtZXNzYWdlIG9uZSIgb25lIG9uZSBtZXNzYWdlLW9uZSAmJgotCXRlc3RfY29tbWl0ICJtZXNzYWdlIHR3byIgdHdvIHR3byBtZXNzYWdlLXR3bworCXRlc3RfY29tbWl0ICJtZXNzYWdlIHR3byIgdHdvIHR3byBtZXNzYWdlLXR3byAmJgorCWhlYWQxPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtLXNob3J0IEhFQUR+MCkgJiYKKwloZWFkMj0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1zaG9ydCBIRUFEfjEpICYmCisJaGVhZDM9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC0tc2hvcnQgSEVBRH4yKSAmJgorCWhlYWQ0PSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtLXNob3J0IEhFQUR+MykKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbGVmdCBhbGlnbm1lbnQgZm9ybWF0dGluZycgJwogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPCg0MCklcyIgPmFjdHVhbCAmJgogCSMgY29tcGxldGUgdGhlIGluY29tcGxldGUgbGluZSBhdCB0aGUgZW5kCiAJZWNobyA+PmFjdHVhbCAmJgotCXF6X3RvX3RhYl9zcGFjZSA8PFxFT0YgPmV4cGVjdGVkICYmCisJcXpfdG9fdGFiX3NwYWNlIDw8RU9GID5leHBlY3RlZCAmJgogbWVzc2FnZSB0d28gICAgICAgICAgICAgICAgICAgICAgICAgICAgWgogbWVzc2FnZSBvbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgWgogYWRkIGJhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWgotaW5pdGlhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWgorJChjb21taXRfbXNnKSAgICAgICAgICAgICAgICAgICAgWgogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0xMjEsMTEgKzE1NywxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolaCAlPHwoNDApJXMiID5hY3R1YWwgJiYKIAkjIGNvbXBsZXRlIHRoZSBpbmNvbXBsZXRlIGxpbmUgYXQgdGhlIGVuZAogCWVjaG8gPj5hY3R1YWwgJiYKLQlxel90b190YWJfc3BhY2UgPDxcRU9GID5leHBlY3RlZCAmJgotZmEzM2FiMSBtZXNzYWdlIHR3byAgICAgICAgICAgICAgICAgICAgWgotN2NkNmM2MyBtZXNzYWdlIG9uZSAgICAgICAgICAgICAgICAgICAgWgotMTcxMWJmOSBhZGQgYmFyICAgICAgICAgICAgICAgICAgICAgICAgWgotYWYyMGMwNiBpbml0aWFsICAgICAgICAgICAgICAgICAgICAgICAgWgorCXF6X3RvX3RhYl9zcGFjZSA8PEVPRiA+ZXhwZWN0ZWQgJiYKKyRoZWFkMSBtZXNzYWdlIHR3byAgICAgICAgICAgICAgICAgICAgWgorJGhlYWQyIG1lc3NhZ2Ugb25lICAgICAgICAgICAgICAgICAgICBaCiskaGVhZDMgYWRkIGJhciAgICAgICAgICAgICAgICAgICAgICAgIFoKKyRoZWFkNCAkKGNvbW1pdF9tc2cpICAgICAgICAgICAgWgogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0xMzQsMTEgKzE3MCwxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPCgxKSVzIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JY2F0IDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwljYXQgPDxFT0YgPmV4cGVjdGVkICYmCiBtZXNzYWdlIHR3bwogbWVzc2FnZSBvbmUKIGFkZCBiYXIKLWluaXRpYWwKKyQoY29tbWl0X21zZykKIEVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTQ3LDExICsxODMsMTEgQEAKIAlnaXQgbG9nIC0tcHJldHR5PSJmb3JtYXQ6JTwoMTAsdHJ1bmMpJXMiID5hY3R1YWwgJiYKIAkjIGNvbXBsZXRlIHRoZSBpbmNvbXBsZXRlIGxpbmUgYXQgdGhlIGVuZAogCWVjaG8gPj5hY3R1YWwgJiYKLQlxel90b190YWJfc3BhY2UgPDxcRU9GID5leHBlY3RlZCAmJgorCXF6X3RvX3RhYl9zcGFjZSA8PEVPRiA+ZXhwZWN0ZWQgJiYKIG1lc3NhZ2UgLi4KIG1lc3NhZ2UgLi4KIGFkZCBiYXIgIFoKLWluaXRpYWwgIFoKK2luaXRpYWwuLi4KIEVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTYwLDExICsxOTYsMTEgQEAKIAlnaXQgbG9nIC0tcHJldHR5PSJmb3JtYXQ6JTwoMTAsbHRydW5jKSVzIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JcXpfdG9fdGFiX3NwYWNlIDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwlxel90b190YWJfc3BhY2UgPDxFT0YgPmV4cGVjdGVkICYmCiAuLnNhZ2UgdHdvCiAuLnNhZ2Ugb25lCiBhZGQgYmFyICBaCi1pbml0aWFsICBaCisuLiR7c2FtcGxlX3V0ZjhfcGFydH1saWNoCiBFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTE3MywxMSArMjA5LDExIEBACiAJZ2l0IGxvZyAtLXByZXR0eT0iZm9ybWF0OiU8KDEwLG10cnVuYyklcyIgPmFjdHVhbCAmJgogCSMgY29tcGxldGUgdGhlIGluY29tcGxldGUgbGluZSBhdCB0aGUgZW5kCiAJZWNobyA+PmFjdHVhbCAmJgotCXF6X3RvX3RhYl9zcGFjZSA8PFxFT0YgPmV4cGVjdGVkICYmCisJcXpfdG9fdGFiX3NwYWNlIDw8RU9GID5leHBlY3RlZCAmJgogbWVzcy4uIHR3bwogbWVzcy4uIG9uZQogYWRkIGJhciAgWgotaW5pdGlhbCAgWgoraW5pdC4ubGljaAogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0xODYsMTEgKzIyMiwxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPig0MCklcyIgPmFjdHVhbCAmJgogCSMgY29tcGxldGUgdGhlIGluY29tcGxldGUgbGluZSBhdCB0aGUgZW5kCiAJZWNobyA+PmFjdHVhbCAmJgotCXF6X3RvX3RhYl9zcGFjZSA8PFxFT0YgPmV4cGVjdGVkICYmCisJcXpfdG9fdGFiX3NwYWNlIDw8RU9GID5leHBlY3RlZCAmJgogWiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIHR3bwogWiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIG9uZQogWiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkIGJhcgotWiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbAorWiAgICAgICAgICAgICAgICAgICAgJChjb21taXRfbXNnKQogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0xOTksMTEgKzIzNSwxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolaCAlPnwoNDApJXMiID5hY3R1YWwgJiYKIAkjIGNvbXBsZXRlIHRoZSBpbmNvbXBsZXRlIGxpbmUgYXQgdGhlIGVuZAogCWVjaG8gPj5hY3R1YWwgJiYKLQlxel90b190YWJfc3BhY2UgPDxcRU9GID5leHBlY3RlZCAmJgotZmEzM2FiMSAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIHR3bwotN2NkNmM2MyAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIG9uZQotMTcxMWJmOSAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkIGJhcgotYWYyMGMwNiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbAorCXF6X3RvX3RhYl9zcGFjZSA8PEVPRiA+ZXhwZWN0ZWQgJiYKKyRoZWFkMSAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIHR3bworJGhlYWQyICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Ugb25lCiskaGVhZDMgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZCBiYXIKKyRoZWFkNCAgICAgICAgICAgICAgJChjb21taXRfbXNnKQogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0yMTIsMTEgKzI0OCwxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPigxKSVzIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JY2F0IDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwljYXQgPDxFT0YgPmV4cGVjdGVkICYmCiBtZXNzYWdlIHR3bwogbWVzc2FnZSBvbmUKIGFkZCBiYXIKLWluaXRpYWwKKyQoY29tbWl0X21zZykKIEVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMjI1LDExICsyNjEsMTEgQEAKIAlnaXQgbG9nIC0tcHJldHR5PSJmb3JtYXQ6JT48KDQwKSVzIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JcXpfdG9fdGFiX3NwYWNlIDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwlxel90b190YWJfc3BhY2UgPDxFT0YgPmV4cGVjdGVkICYmCiBaICAgICAgICAgICAgIG1lc3NhZ2UgdHdvICAgICAgICAgICAgICBaCiBaICAgICAgICAgICAgIG1lc3NhZ2Ugb25lICAgICAgICAgICAgICBaCiBaICAgICAgICAgICAgICAgYWRkIGJhciAgICAgICAgICAgICAgICBaCi1aICAgICAgICAgICAgICAgaW5pdGlhbCAgICAgICAgICAgICAgICBaCitaICAgICAgICAgJChjb21taXRfbXNnKSAgICAgICAgICBaCiBFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTIzOCwxMSArMjc0LDExIEBACiAJZ2l0IGxvZyAtLXByZXR0eT0iZm9ybWF0OiVoICU+PHwoNDApJXMiID5hY3R1YWwgJiYKIAkjIGNvbXBsZXRlIHRoZSBpbmNvbXBsZXRlIGxpbmUgYXQgdGhlIGVuZAogCWVjaG8gPj5hY3R1YWwgJiYKLQlxel90b190YWJfc3BhY2UgPDxcRU9GID5leHBlY3RlZCAmJgotZmEzM2FiMSAgICAgICAgICAgbWVzc2FnZSB0d28gICAgICAgICAgWgotN2NkNmM2MyAgICAgICAgICAgbWVzc2FnZSBvbmUgICAgICAgICAgWgotMTcxMWJmOSAgICAgICAgICAgICBhZGQgYmFyICAgICAgICAgICAgWgotYWYyMGMwNiAgICAgICAgICAgICBpbml0aWFsICAgICAgICAgICAgWgorCXF6X3RvX3RhYl9zcGFjZSA8PEVPRiA+ZXhwZWN0ZWQgJiYKKyRoZWFkMSAgICAgICAgICAgbWVzc2FnZSB0d28gICAgICAgICAgWgorJGhlYWQyICAgICAgICAgICBtZXNzYWdlIG9uZSAgICAgICAgICBaCiskaGVhZDMgICAgICAgICAgICAgYWRkIGJhciAgICAgICAgICAgIFoKKyRoZWFkNCAgICAgICAkKGNvbW1pdF9tc2cpICAgICAgWgogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0yNTEsMTEgKzI4NywxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPjwoMSklcyIgPmFjdHVhbCAmJgogCSMgY29tcGxldGUgdGhlIGluY29tcGxldGUgbGluZSBhdCB0aGUgZW5kCiAJZWNobyA+PmFjdHVhbCAmJgotCWNhdCA8PFxFT0YgPmV4cGVjdGVkICYmCisJY2F0IDw8RU9GID5leHBlY3RlZCAmJgogbWVzc2FnZSB0d28KIG1lc3NhZ2Ugb25lCiBhZGQgYmFyCi1pbml0aWFsCiskKGNvbW1pdF9tc2cpCiBFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTI2NSwxMSArMzAxLDExIEBACiAJZ2l0IGxvZyAtLXByZXR0eT0iZm9ybWF0OiU8KDEwLHRydW5jKSVzJT4+KDEwLGx0cnVuYyklIGFuIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JY2F0IDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwljYXQgPDxFT0YgPmV4cGVjdGVkICYmCiBzaG9ydCBsb25nICBsb25nIGxvbmcKIG1lc3NhZ2UgLi4gICBBIFUgVGhvcgogYWRkIGJhciAgICAgIEEgVSBUaG9yCi1pbml0aWFsICAgICAgQSBVIFRob3IKK2luaXRpYWwuLi4gICBBIFUgVGhvcgogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCmRpZmYgLS1naXQgYS90L3Q0MjExLWxpbmUtbG9nLnNoIGIvdC90NDIxMS1saW5lLWxvZy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NjY1ZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS1saW5lLWxvZy5zaApAQCAtMCwwICsxLDgwIEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0ndGVzdCBsb2cgLUwnCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgKGltcG9ydCBoaXN0b3J5KScgJworCWdpdCBmYXN0LWltcG9ydCA8ICIkVEVTVF9ESVJFQ1RPUlkiL3Q0MjExL2hpc3RvcnkuZXhwb3J0ICYmCisJZ2l0IHJlc2V0IC0taGFyZAorJworCitjYW5uZWRfdGVzdF8xICgpIHsKKwl0ZXN0X2V4cGVjdF8kMSAiJDIiICIKKwkJZ2l0IGxvZyAkMiA+YWN0dWFsICYmCisJCXRlc3RfY21wIFwiXCRURVNUX0RJUkVDVE9SWVwiL3Q0MjExL2V4cGVjdC4kMyBhY3R1YWwKKwkiCit9CisKK2Nhbm5lZF90ZXN0ICgpIHsKKwljYW5uZWRfdGVzdF8xIHN1Y2Nlc3MgIiRAIgorfQorY2FubmVkX3Rlc3RfZmFpbHVyZSAoKSB7CisJY2FubmVkX3Rlc3RfMSBmYWlsdXJlICIkQCIKK30KKwordGVzdF9iYWRfb3B0cyAoKSB7CisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiaW52YWxpZCBhcmdzOiAkMSIgIgorCQl0ZXN0X211c3RfZmFpbCBnaXQgbG9nICQxIDI+ZXJyb3JzICYmCisJCWdyZXAgJyQyJyBlcnJvcnMKKwkiCit9CisKK2Nhbm5lZF90ZXN0ICItTCA0LDEyOmEuYyBzaW1wbGUiIHNpbXBsZS1mCitjYW5uZWRfdGVzdCAiLUwgNCwrOTphLmMgc2ltcGxlIiBzaW1wbGUtZgorY2FubmVkX3Rlc3QgIi1MICcvbG9uZyBmLywvXn0vOmEuYycgc2ltcGxlIiBzaW1wbGUtZgorY2FubmVkX3Rlc3QgIi1MIDpmOmEuYyBzaW1wbGUiIHNpbXBsZS1mLXRvLW1haW4KKworY2FubmVkX3Rlc3QgIi1MICcvbWFpbi8sL159LzphLmMnIHNpbXBsZSIgc2ltcGxlLW1haW4KK2Nhbm5lZF90ZXN0ICItTCA6bWFpbjphLmMgc2ltcGxlIiBzaW1wbGUtbWFpbi10by1lbmQKKworY2FubmVkX3Rlc3QgIi1MIDEsKzQ6YS5jIHNpbXBsZSIgYmVnaW5uaW5nLW9mLWZpbGUKKworY2FubmVkX3Rlc3QgIi1MIDIwOmEuYyBzaW1wbGUiIGVuZC1vZi1maWxlCisKK2Nhbm5lZF90ZXN0ICItTCAnL2xvbmcgZi8nLC9efS86YS5jIC1MIC9tYWluLywvXn0vOmEuYyBzaW1wbGUiIHR3by1yYW5nZXMKK2Nhbm5lZF90ZXN0ICItTCAyNCwrMTphLmMgc2ltcGxlIiB2YW5pc2hlcy1lYXJseQorCitjYW5uZWRfdGVzdCAiLU0gLUwgJy9sb25nIGYvLC9efS86Yi5jJyBtb3ZlLXN1cHBvcnQiIG1vdmUtc3VwcG9ydC1mCitjYW5uZWRfdGVzdCAiLU0gLUwgJzpmOmIuYycgcGFyYWxsZWwtY2hhbmdlIiBwYXJhbGxlbC1jaGFuZ2UtZi10by1tYWluCisKK2Nhbm5lZF90ZXN0ICItTCA0LDEyOmEuYyAtTCA6bWFpbjphLmMgc2ltcGxlIiBtdWx0aXBsZQorY2FubmVkX3Rlc3QgIi1MIDQsMTg6YS5jIC1MIDptYWluOmEuYyBzaW1wbGUiIG11bHRpcGxlLW92ZXJsYXBwaW5nCitjYW5uZWRfdGVzdCAiLUwgOm1haW46YS5jIC1MIDQsMTg6YS5jIHNpbXBsZSIgbXVsdGlwbGUtb3ZlcmxhcHBpbmcKK2Nhbm5lZF90ZXN0ICItTCA0OmEuYyAtTCA4LDEyOmEuYyBzaW1wbGUiIG11bHRpcGxlLXN1cGVyc2V0CitjYW5uZWRfdGVzdCAiLUwgOCwxMjphLmMgLUwgNDphLmMgc2ltcGxlIiBtdWx0aXBsZS1zdXBlcnNldAorCit0ZXN0X2JhZF9vcHRzICItTCIgInN3aXRjaC4qcmVxdWlyZXMgYSB2YWx1ZSIKK3Rlc3RfYmFkX29wdHMgIi1MIGIuYyIgImFyZ3VtZW50Lipub3Qgb2YgdGhlIGZvcm0iCit0ZXN0X2JhZF9vcHRzICItTCAxOiIgImFyZ3VtZW50Lipub3Qgb2YgdGhlIGZvcm0iCit0ZXN0X2JhZF9vcHRzICItTCAxOm5vbmV4aXN0ZW50IiAiVGhlcmUgaXMgbm8gcGF0aCIKK3Rlc3RfYmFkX29wdHMgIi1MIDE6c2ltcGxlIiAiVGhlcmUgaXMgbm8gcGF0aCIKK3Rlc3RfYmFkX29wdHMgIi1MICcvZm9vOmIuYyciICJhcmd1bWVudC4qbm90IG9mIHRoZSBmb3JtIgordGVzdF9iYWRfb3B0cyAiLUwgMTAwMDpiLmMiICJoYXMgb25seS4qbGluZXMiCit0ZXN0X2JhZF9vcHRzICItTCAxLDEwMDA6Yi5jIiAiaGFzIG9ubHkuKmxpbmVzIgordGVzdF9iYWRfb3B0cyAiLUwgOmIuYyIgImFyZ3VtZW50Lipub3Qgb2YgdGhlIGZvcm0iCit0ZXN0X2JhZF9vcHRzICItTCA6Zm9vOmIuYyIgIm5vIG1hdGNoIgorCisjIFRoZXJlIGlzIGEgc2VwYXJhdGUgYnVnIHdoZW4gYW4gZW1wdHkgLUwgcmFuZ2UgaXMgdGhlIGZpcnN0IC1MIGVuY291bnRlcmVkLAorIyB0aHVzIHRvIGRlbW9uc3RyYXRlIHRoaXMgcGFydGljdWxhciBidWcsIHRoZSBlbXB0eSAtTCByYW5nZSBtdXN0IGZvbGxvdyBhCisjIG5vbi1lbXB0eSAtTCByYW5nZS4KK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy1MIHtlbXB0eS1yYW5nZX0gKGFueSAtTCknICcKKwluPSQoZXhwciAkKHdjIC1sIDxiLmMpICsgMSkgJiYKKwlnaXQgbG9nIC1MMSwxOmIuYyAtTCRuOmIuYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctTCB7ZW1wdHktcmFuZ2V9IChmaXJzdCAtTCknICcKKwluPSQoZXhwciAkKHdjIC1sIDxiLmMpICsgMSkgJiYKKwlnaXQgbG9nIC1MJG46Yi5jCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NDIxMS9leHBlY3QuYmVnaW5uaW5nLW9mLWZpbGUgYi90L3Q0MjExL2V4cGVjdC5iZWdpbm5pbmctb2YtZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWI0MDU0Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3QuYmVnaW5uaW5nLW9mLWZpbGUKQEAgLTAsMCArMSw0MyBAQAorY29tbWl0IDRhMjNhZTVjOThkNTlhNThjNmRhMDM2MTU2OTU5ZjJkYzlmNDcyYWQKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0Nzo0MCAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYXQgdmVyeSBiZWdpbm5pbmcKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xLDMgKzEsNCBAQAorKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyAjaW5jbHVkZSA8c3RkaW8uaD4KKyAKKyBsb25nIGYobG9uZyB4KQorCitjb21taXQgYTZlYjgyNjQ3ZDVkNjdmODkzZGE0NDJmOGY5Mzc1ZmQ4OWEzYjFlMgorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ1OjE2IDIwMTMgKzAxMDAKKworICAgIHRvdWNoIGJvdGggZnVuY3Rpb25zCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMSwzICsxLDMgQEAKKyAjaW5jbHVkZSA8c3RkaW8uaD4KKyAKKy1pbnQgZihpbnQgeCkKKytsb25nIGYobG9uZyB4KQorCitjb21taXQgZGU0YzQ4YWU4MTQ3OTJjMDJhNDljNGMzYzBjNzU3YWU2OWM1NWY2YQorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjQ4IDIwMTMgKzAxMDAKKworICAgIGluaXRpYWwKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIC9kZXYvbnVsbAorKysrIGIvYS5jCitAQCAtMCwwICsxLDMgQEAKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysKKytpbnQgZihpbnQgeCkKZGlmZiAtLWdpdCBhL3QvdDQyMTEvZXhwZWN0LmVuZC1vZi1maWxlIGIvdC90NDIxMS9leHBlY3QuZW5kLW9mLWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQyNWJiMgotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0LmVuZC1vZi1maWxlCkBAIC0wLDAgKzEsNjIgQEAKK2NvbW1pdCA0NjU5NTM4ODQ0ZGFhMjg0OWIxYTllN2Q2ZmFkYjk2ZmNkMjZmYzgzCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6NDMgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIGJhY2sgdG8gY29tcGxldGUgbGluZQorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTIwLDMgKzIwLDUgQEAKKyAJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CistfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisrfQorKworKy8qIGluY29tcGxldGUgbGluZXMgYXJlIGJhZCEgKi8KKworY29tbWl0IDEwMGI2MWE2ZjJmNzIwZjgxMjYyMGE5ZDEwYWZiM2E5NjBjY2I3M2MKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODoxMCAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgdG8gYW4gaW5jb21wbGV0ZSBsaW5lIGF0IGVuZAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTIwLDMgKzIwLDMgQEAKKyAJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CistfQorK30KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorCitjb21taXQgYTZlYjgyNjQ3ZDVkNjdmODkzZGE0NDJmOGY5Mzc1ZmQ4OWEzYjFlMgorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ1OjE2IDIwMTMgKzAxMDAKKworICAgIHRvdWNoIGJvdGggZnVuY3Rpb25zCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTksMyArMTksMyBAQAorLQlwcmludGYoIiVkXG4iLCBmKDE1KSk7CisrCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworIH0KKworY29tbWl0IGRlNGM0OGFlODE0NzkyYzAyYTQ5YzRjM2MwYzc1N2FlNjljNTVmNmEKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo0OCAyMDEzICswMTAwCisKKyAgICBpbml0aWFsCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSAvZGV2L251bGwKKysrKyBiL2EuYworQEAgLTAsMCArMTgsMyBAQAorKwlwcmludGYoIiVkXG4iLCBmKDE1KSk7CisrCXJldHVybiAwOworK30KZGlmZiAtLWdpdCBhL3QvdDQyMTEvZXhwZWN0Lm1vdmUtc3VwcG9ydC1mIGIvdC90NDIxMS9leHBlY3QubW92ZS1zdXBwb3J0LWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzkwNWUwMQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0Lm1vdmUtc3VwcG9ydC1mCkBAIC0wLDAgKzEsODAgQEAKK2NvbW1pdCA2Y2UzYzRmZjY5MDEzNjA5OWJiMTdlMWE4NzY2Yjc1NzY0NzI2ZWE3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDk6NTAgMjAxMyArMDEwMAorCisgICAgYW5vdGhlciBzaW1wbGUgY2hhbmdlCisKK2RpZmYgLS1naXQgYS9iLmMgYi9iLmMKKy0tLSBhL2IuYworKysrIGIvYi5jCitAQCAtNCw5ICs0LDkgQEAKKyBsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworLQkJeCA+Pj0gMTsKKysJCXggLz0gMjsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisKK2NvbW1pdCBhNmViODI2NDdkNWQ2N2Y4OTNkYTQ0MmY4ZjkzNzVmZDg5YTNiMWUyCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6MTYgMjAxMyArMDEwMAorCisgICAgdG91Y2ggYm90aCBmdW5jdGlvbnMKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDkgKzMsOSBAQAorLWludCBmKGludCB4KQorK2xvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKworY29tbWl0IGYwNGZiMjBmMmM3Nzg1MDk5NmNiYTczOTcwOWFjYzZmYWVjYzU4ZjcKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo1NSAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgZigpCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMyw4ICszLDkgQEAKKyBpbnQgZihpbnQgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKysJcmV0dXJuIHM7CisgfQorCitjb21taXQgZGU0YzQ4YWU4MTQ3OTJjMDJhNDljNGMzYzBjNzU3YWU2OWM1NWY2YQorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjQ4IDIwMTMgKzAxMDAKKworICAgIGluaXRpYWwKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIC9kZXYvbnVsbAorKysrIGIvYS5jCitAQCAtMCwwICszLDggQEAKKytpbnQgZihpbnQgeCkKKyt7CisrCWludCBzID0gMDsKKysJd2hpbGUgKHgpIHsKKysJCXggPj49IDE7CisrCQlzKys7CisrCX0KKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC5tdWx0aXBsZSBiL3QvdDQyMTEvZXhwZWN0Lm11bHRpcGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2YWQ1YjUKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q0MjExL2V4cGVjdC5tdWx0aXBsZQpAQCAtMCwwICsxLDEwNCBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTgsNSArMTgsNyBAQAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt9CisrCisrLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgMTAwYjYxYTZmMmY3MjBmODEyNjIwYTlkMTBhZmIzYTk2MGNjYjczYworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ4OjEwIDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSB0byBhbiBpbmNvbXBsZXRlIGxpbmUgYXQgZW5kCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTgsNSArMTgsNSBAQAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CisrfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisKK2NvbW1pdCBhNmViODI2NDdkNWQ2N2Y4OTNkYTQ0MmY4ZjkzNzVmZDg5YTNiMWUyCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6MTYgMjAxMyArMDEwMAorCisgICAgdG91Y2ggYm90aCBmdW5jdGlvbnMKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDkgKzMsOSBAQAorLWludCBmKGludCB4KQorK2xvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KK0BAIC0xNyw1ICsxNyw1IEBACisgaW50IG1haW4gKCkKKyB7CistCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKysJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CisgfQorCitjb21taXQgZjA0ZmIyMGYyYzc3ODUwOTk2Y2JhNzM5NzA5YWNjNmZhZWNjNThmNworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjU1IDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBmKCkKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDggKzMsOSBAQAorIGludCBmKGludCB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorKwlyZXR1cm4gczsKKyB9CisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzMsOCBAQAorK2ludCBmKGludCB4KQorK3sKKysJaW50IHMgPSAwOworKwl3aGlsZSAoeCkgeworKwkJeCA+Pj0gMTsKKysJCXMrKzsKKysJfQorK30KZGlmZiAtLWdpdCBhL3QvdDQyMTEvZXhwZWN0Lm11bHRpcGxlLW92ZXJsYXBwaW5nIGIvdC90NDIxMS9leHBlY3QubXVsdGlwbGUtb3ZlcmxhcHBpbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkzMGI2ZQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0Lm11bHRpcGxlLW92ZXJsYXBwaW5nCkBAIC0wLDAgKzEsMTg3IEBACitjb21taXQgNDY1OTUzODg0NGRhYTI4NDliMWE5ZTdkNmZhZGI5NmZjZDI2ZmM4MworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ4OjQzIDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBiYWNrIHRvIGNvbXBsZXRlIGxpbmUKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC00LDE5ICs0LDIxIEBACisgbG9uZyBmKGxvbmcgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKyAJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgICovCisgCisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorK30KKysKKysvKiBpbmNvbXBsZXRlIGxpbmVzIGFyZSBiYWQhICovCisKK2NvbW1pdCAxMDBiNjFhNmYyZjcyMGY4MTI2MjBhOWQxMGFmYjNhOTYwY2NiNzNjCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6MTAgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIHRvIGFuIGluY29tcGxldGUgbGluZSBhdCBlbmQKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC00LDE5ICs0LDE5IEBACisgbG9uZyBmKGxvbmcgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKyAJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgICovCisgCisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KKyt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKworY29tbWl0IDM5YjZlYjJkNWI3MDZkMzMyMjE4NGExNjlmNjY2ZjI1ZWQzZmJkMDAKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NTo0MSAyMDEzICswMTAwCisKKyAgICB0b3VjaCBjb21tZW50CisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMywxOSArMywxOSBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorLSAqIEEgY29tbWVudC4KKysgKiBUaGlzIGlzIG9ubHkgYW4gZXhhbXBsZSEKKyAgKi8KKyAKKyBpbnQgbWFpbiAoKQorIHsKKyAJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CisgfQorCitjb21taXQgYTZlYjgyNjQ3ZDVkNjdmODkzZGE0NDJmOGY5Mzc1ZmQ4OWEzYjFlMgorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ1OjE2IDIwMTMgKzAxMDAKKworICAgIHRvdWNoIGJvdGggZnVuY3Rpb25zCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMywxOSArMywxOSBAQAorLWludCBmKGludCB4KQorK2xvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIEEgY29tbWVudC4KKyAgKi8KKyAKKyBpbnQgbWFpbiAoKQorIHsKKy0JcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBmMDRmYjIwZjJjNzc4NTA5OTZjYmE3Mzk3MDlhY2M2ZmFlY2M1OGY3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NTUgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIGYoKQorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTggKzMsMTkgQEAKKyBpbnQgZihpbnQgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKysJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogQSBjb21tZW50LgorICAqLworIAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworIH0KKworY29tbWl0IGRlNGM0OGFlODE0NzkyYzAyYTQ5YzRjM2MwYzc1N2FlNjljNTVmNmEKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo0OCAyMDEzICswMTAwCisKKyAgICBpbml0aWFsCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSAvZGV2L251bGwKKysrKyBiL2EuYworQEAgLTAsMCArMywxOCBAQAorK2ludCBmKGludCB4KQorK3sKKysJaW50IHMgPSAwOworKwl3aGlsZSAoeCkgeworKwkJeCA+Pj0gMTsKKysJCXMrKzsKKysJfQorK30KKysKKysvKgorKyAqIEEgY29tbWVudC4KKysgKi8KKysKKytpbnQgbWFpbiAoKQorK3sKKysJcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlyZXR1cm4gMDsKKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC5tdWx0aXBsZS1zdXBlcnNldCBiL3QvdDQyMTEvZXhwZWN0Lm11bHRpcGxlLXN1cGVyc2V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5MzBiNmUKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q0MjExL2V4cGVjdC5tdWx0aXBsZS1zdXBlcnNldApAQCAtMCwwICsxLDE4NyBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtNCwxOSArNCwyMSBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICAqLworIAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt9CisrCisrLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgMTAwYjYxYTZmMmY3MjBmODEyNjIwYTlkMTBhZmIzYTk2MGNjYjczYworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ4OjEwIDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSB0byBhbiBpbmNvbXBsZXRlIGxpbmUgYXQgZW5kCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtNCwxOSArNCwxOSBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICAqLworIAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CisrfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisKK2NvbW1pdCAzOWI2ZWIyZDViNzA2ZDMzMjIxODRhMTY5ZjY2NmYyNWVkM2ZiZDAwCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6NDEgMjAxMyArMDEwMAorCisgICAgdG91Y2ggY29tbWVudAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTkgKzMsMTkgQEAKKyBsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisgCisgLyoKKy0gKiBBIGNvbW1lbnQuCisrICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgICovCisgCisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworIH0KKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTkgKzMsMTkgQEAKKy1pbnQgZihpbnQgeCkKKytsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisgCisgLyoKKyAgKiBBIGNvbW1lbnQuCisgICovCisgCisgaW50IG1haW4gKCkKKyB7CistCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKysJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CisgfQorCitjb21taXQgZjA0ZmIyMGYyYzc3ODUwOTk2Y2JhNzM5NzA5YWNjNmZhZWNjNThmNworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjU1IDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBmKCkKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDE4ICszLDE5IEBACisgaW50IGYoaW50IHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisrCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIEEgY29tbWVudC4KKyAgKi8KKyAKKyBpbnQgbWFpbiAoKQorIHsKKyAJcHJpbnRmKCIlZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzMsMTggQEAKKytpbnQgZihpbnQgeCkKKyt7CisrCWludCBzID0gMDsKKysJd2hpbGUgKHgpIHsKKysJCXggPj49IDE7CisrCQlzKys7CisrCX0KKyt9CisrCisrLyoKKysgKiBBIGNvbW1lbnQuCisrICovCisrCisraW50IG1haW4gKCkKKyt7CisrCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKysJcmV0dXJuIDA7CisrfQpkaWZmIC0tZ2l0IGEvdC90NDIxMS9leHBlY3QucGFyYWxsZWwtY2hhbmdlLWYtdG8tbWFpbiBiL3QvdDQyMTEvZXhwZWN0LnBhcmFsbGVsLWNoYW5nZS1mLXRvLW1haW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDUyZGVmOAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0LnBhcmFsbGVsLWNoYW5nZS1mLXRvLW1haW4KQEAgLTAsMCArMSwxNjAgQEAKK2NvbW1pdCAwNDY5YzYwYmM0ODM3ZDUyZDk3YjFmMDgxZGVjNWY5OGRlYTIwZmVkCitNZXJnZTogYmEyMjdjNiA2Y2UzYzRmCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBpbmYuZXRoei5jaD4KK0RhdGU6ICAgRnJpIEFwciAxMiAxNjoxNjoyNCAyMDEzICswMjAwCisKKyAgICBNZXJnZSBhY3Jvc3MgdGhlIHJlbmFtZQorCisKK2NvbW1pdCA2Y2UzYzRmZjY5MDEzNjA5OWJiMTdlMWE4NzY2Yjc1NzY0NzI2ZWE3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDk6NTAgMjAxMyArMDEwMAorCisgICAgYW5vdGhlciBzaW1wbGUgY2hhbmdlCisKK2RpZmYgLS1naXQgYS9iLmMgYi9iLmMKKy0tLSBhL2IuYworKysrIGIvYi5jCitAQCAtNCwxNCArNCwxNCBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CistCQl4ID4+PSAxOworKwkJeCAvPSAyOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICAqLworIAorCitjb21taXQgYmEyMjdjNjYzMjM0OTcwMGZiYjk1N2RlYzJiNTBmNWUyMzU4YmUzZgorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAaW5mLmV0aHouY2g+CitEYXRlOiAgIEZyaSBBcHIgMTIgMTY6MTU6NTcgMjAxMyArMDIwMAorCisgICAgY2hhbmdlIG9uIGFub3RoZXIgbGluZSBvZiBoaXN0b3J5IHdoaWxlIHJlbmFtZSBoYXBwZW5zCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtNCwxNCArNCwxNCBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorLSAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorKyAqIFRoaXMgaXMgb25seSBhIHNob3J0IGV4YW1wbGUhCisgICovCisgCisKK2NvbW1pdCAzOWI2ZWIyZDViNzA2ZDMzMjIxODRhMTY5ZjY2NmYyNWVkM2ZiZDAwCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6NDEgMjAxMyArMDEwMAorCisgICAgdG91Y2ggY29tbWVudAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTQgKzMsMTQgQEAKKyBsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisgCisgLyoKKy0gKiBBIGNvbW1lbnQuCisrICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgICovCisgCisKK2NvbW1pdCBhNmViODI2NDdkNWQ2N2Y4OTNkYTQ0MmY4ZjkzNzVmZDg5YTNiMWUyCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6MTYgMjAxMyArMDEwMAorCisgICAgdG91Y2ggYm90aCBmdW5jdGlvbnMKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDE0ICszLDE0IEBACistaW50IGYoaW50IHgpCisrbG9uZyBmKGxvbmcgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKyAJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogQSBjb21tZW50LgorICAqLworIAorCitjb21taXQgZjA0ZmIyMGYyYzc3ODUwOTk2Y2JhNzM5NzA5YWNjNmZhZWNjNThmNworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjU1IDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBmKCkKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDEzICszLDE0IEBACisgaW50IGYoaW50IHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisrCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIEEgY29tbWVudC4KKyAgKi8KKyAKKworY29tbWl0IGRlNGM0OGFlODE0NzkyYzAyYTQ5YzRjM2MwYzc1N2FlNjljNTVmNmEKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo0OCAyMDEzICswMTAwCisKKyAgICBpbml0aWFsCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSAvZGV2L251bGwKKysrKyBiL2EuYworQEAgLTAsMCArMywxMyBAQAorK2ludCBmKGludCB4KQorK3sKKysJaW50IHMgPSAwOworKwl3aGlsZSAoeCkgeworKwkJeCA+Pj0gMTsKKysJCXMrKzsKKysJfQorK30KKysKKysvKgorKyAqIEEgY29tbWVudC4KKysgKi8KKysKZGlmZiAtLWdpdCBhL3QvdDQyMTEvZXhwZWN0LnNpbXBsZS1mIGIvdC90NDIxMS9leHBlY3Quc2ltcGxlLWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFmNWJjNAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0LnNpbXBsZS1mCkBAIC0wLDAgKzEsNTkgQEAKK2NvbW1pdCBhNmViODI2NDdkNWQ2N2Y4OTNkYTQ0MmY4ZjkzNzVmZDg5YTNiMWUyCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6MTYgMjAxMyArMDEwMAorCisgICAgdG91Y2ggYm90aCBmdW5jdGlvbnMKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDkgKzMsOSBAQAorLWludCBmKGludCB4KQorK2xvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKworY29tbWl0IGYwNGZiMjBmMmM3Nzg1MDk5NmNiYTczOTcwOWFjYzZmYWVjYzU4ZjcKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo1NSAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgZigpCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMyw4ICszLDkgQEAKKyBpbnQgZihpbnQgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKysJcmV0dXJuIHM7CisgfQorCitjb21taXQgZGU0YzQ4YWU4MTQ3OTJjMDJhNDljNGMzYzBjNzU3YWU2OWM1NWY2YQorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjQ4IDIwMTMgKzAxMDAKKworICAgIGluaXRpYWwKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIC9kZXYvbnVsbAorKysrIGIvYS5jCitAQCAtMCwwICszLDggQEAKKytpbnQgZihpbnQgeCkKKyt7CisrCWludCBzID0gMDsKKysJd2hpbGUgKHgpIHsKKysJCXggPj49IDE7CisrCQlzKys7CisrCX0KKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC5zaW1wbGUtZi10by1tYWluIGIvdC90NDIxMS9leHBlY3Quc2ltcGxlLWYtdG8tbWFpbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDc1NzY4Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3Quc2ltcGxlLWYtdG8tbWFpbgpAQCAtMCwwICsxLDEwMCBAQAorY29tbWl0IDM5YjZlYjJkNWI3MDZkMzMyMjE4NGExNjlmNjY2ZjI1ZWQzZmJkMDAKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NTo0MSAyMDEzICswMTAwCisKKyAgICB0b3VjaCBjb21tZW50CisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMywxNCArMywxNCBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorLSAqIEEgY29tbWVudC4KKysgKiBUaGlzIGlzIG9ubHkgYW4gZXhhbXBsZSEKKyAgKi8KKyAKKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTQgKzMsMTQgQEAKKy1pbnQgZihpbnQgeCkKKytsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisgCisgLyoKKyAgKiBBIGNvbW1lbnQuCisgICovCisgCisKK2NvbW1pdCBmMDRmYjIwZjJjNzc4NTA5OTZjYmE3Mzk3MDlhY2M2ZmFlY2M1OGY3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NTUgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIGYoKQorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTMgKzMsMTQgQEAKKyBpbnQgZihpbnQgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKysJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogQSBjb21tZW50LgorICAqLworIAorCitjb21taXQgZGU0YzQ4YWU4MTQ3OTJjMDJhNDljNGMzYzBjNzU3YWU2OWM1NWY2YQorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjQ4IDIwMTMgKzAxMDAKKworICAgIGluaXRpYWwKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIC9kZXYvbnVsbAorKysrIGIvYS5jCitAQCAtMCwwICszLDEzIEBACisraW50IGYoaW50IHgpCisreworKwlpbnQgcyA9IDA7CisrCXdoaWxlICh4KSB7CisrCQl4ID4+PSAxOworKwkJcysrOworKwl9CisrfQorKworKy8qCisrICogQSBjb21tZW50LgorKyAqLworKwpkaWZmIC0tZ2l0IGEvdC90NDIxMS9leHBlY3Quc2ltcGxlLW1haW4gYi90L3Q0MjExL2V4cGVjdC5zaW1wbGUtbWFpbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWNlMzliCi0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3Quc2ltcGxlLW1haW4KQEAgLTAsMCArMSw2OCBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTgsNSArMTgsNSBAQAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt9CisKK2NvbW1pdCAxMDBiNjFhNmYyZjcyMGY4MTI2MjBhOWQxMGFmYjNhOTYwY2NiNzNjCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6MTAgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIHRvIGFuIGluY29tcGxldGUgbGluZSBhdCBlbmQKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xOCw1ICsxOCw1IEBACisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KKyt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTE3LDUgKzE3LDUgQEAKKyBpbnQgbWFpbiAoKQorIHsKKy0JcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzE2LDUgQEAKKytpbnQgbWFpbiAoKQorK3sKKysJcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlyZXR1cm4gMDsKKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC5zaW1wbGUtbWFpbi10by1lbmQgYi90L3Q0MjExL2V4cGVjdC5zaW1wbGUtbWFpbi10by1lbmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ4MGJkOQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0LnNpbXBsZS1tYWluLXRvLWVuZApAQCAtMCwwICsxLDcwIEBACitjb21taXQgNDY1OTUzODg0NGRhYTI4NDliMWE5ZTdkNmZhZGI5NmZjZDI2ZmM4MworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ4OjQzIDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBiYWNrIHRvIGNvbXBsZXRlIGxpbmUKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xOCw1ICsxOCw3IEBACisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorK30KKysKKysvKiBpbmNvbXBsZXRlIGxpbmVzIGFyZSBiYWQhICovCisKK2NvbW1pdCAxMDBiNjFhNmYyZjcyMGY4MTI2MjBhOWQxMGFmYjNhOTYwY2NiNzNjCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6MTAgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIHRvIGFuIGluY29tcGxldGUgbGluZSBhdCBlbmQKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xOCw1ICsxOCw1IEBACisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KKyt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTE3LDUgKzE3LDUgQEAKKyBpbnQgbWFpbiAoKQorIHsKKy0JcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzE2LDUgQEAKKytpbnQgbWFpbiAoKQorK3sKKysJcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlyZXR1cm4gMDsKKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC50d28tcmFuZ2VzIGIvdC90NDIxMS9leHBlY3QudHdvLXJhbmdlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTA5YWEwCi0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3QudHdvLXJhbmdlcwpAQCAtMCwwICsxLDEwMiBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTgsNSArMTgsNSBAQAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt9CisKK2NvbW1pdCAxMDBiNjFhNmYyZjcyMGY4MTI2MjBhOWQxMGFmYjNhOTYwY2NiNzNjCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6MTAgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIHRvIGFuIGluY29tcGxldGUgbGluZSBhdCBlbmQKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xOCw1ICsxOCw1IEBACisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KKyt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsOSArMyw5IEBACistaW50IGYoaW50IHgpCisrbG9uZyBmKGxvbmcgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKyAJcmV0dXJuIHM7CisgfQorQEAgLTE3LDUgKzE3LDUgQEAKKyBpbnQgbWFpbiAoKQorIHsKKy0JcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBmMDRmYjIwZjJjNzc4NTA5OTZjYmE3Mzk3MDlhY2M2ZmFlY2M1OGY3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NTUgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIGYoKQorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsOCArMyw5IEBACisgaW50IGYoaW50IHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisrCXJldHVybiBzOworIH0KKworY29tbWl0IGRlNGM0OGFlODE0NzkyYzAyYTQ5YzRjM2MwYzc1N2FlNjljNTVmNmEKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo0OCAyMDEzICswMTAwCisKKyAgICBpbml0aWFsCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSAvZGV2L251bGwKKysrKyBiL2EuYworQEAgLTAsMCArMyw4IEBACisraW50IGYoaW50IHgpCisreworKwlpbnQgcyA9IDA7CisrCXdoaWxlICh4KSB7CisrCQl4ID4+PSAxOworKwkJcysrOworKwl9CisrfQpkaWZmIC0tZ2l0IGEvdC90NDIxMS9leHBlY3QudmFuaXNoZXMtZWFybHkgYi90L3Q0MjExL2V4cGVjdC52YW5pc2hlcy1lYXJseQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjdjZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3QudmFuaXNoZXMtZWFybHkKQEAgLTAsMCArMSwzOSBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMjIsMSArMjQsMSBAQAorLX0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorKy8qIGluY29tcGxldGUgbGluZXMgYXJlIGJhZCEgKi8KKworY29tbWl0IDEwMGI2MWE2ZjJmNzIwZjgxMjYyMGE5ZDEwYWZiM2E5NjBjY2I3M2MKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODoxMCAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgdG8gYW4gaW5jb21wbGV0ZSBsaW5lIGF0IGVuZAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTIyLDEgKzIyLDEgQEAKKy19CisrfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzIwLDEgQEAKKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2hpc3RvcnkuZXhwb3J0IGIvdC90NDIxMS9oaXN0b3J5LmV4cG9ydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWY0MWUyCi0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9oaXN0b3J5LmV4cG9ydApAQCAtMCwwICsxLDQwNiBAQAorYmxvYgorbWFyayA6MQorZGF0YSAxNTcKKyNpbmNsdWRlIDxzdGRpby5oPgorCitpbnQgZihpbnQgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KK30KKworLyoKKyAqIEEgY29tbWVudC4KKyAqLworCitpbnQgbWFpbiAoKQoreworCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworcmVzZXQgcmVmcy90YWdzL3NpbXBsZQorY29tbWl0IHJlZnMvdGFncy9zaW1wbGUKK21hcmsgOjIKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0Njg4ICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDY4OCArMDEwMAorZGF0YSA4Citpbml0aWFsCitNIDEwMDY0NCA6MSBhLmMKKworYmxvYgorbWFyayA6MworZGF0YSAxNjgKKyNpbmNsdWRlIDxzdGRpby5oPgorCitpbnQgZihpbnQgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIEEgY29tbWVudC4KKyAqLworCitpbnQgbWFpbiAoKQoreworCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworY29tbWl0IHJlZnMvdGFncy9zaW1wbGUKK21hcmsgOjQKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0Njk1ICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDY5NSArMDEwMAorZGF0YSAxMQorY2hhbmdlIGYoKQorZnJvbSA6MgorTSAxMDA2NDQgOjMgYS5jCisKK2Jsb2IKK21hcmsgOjUKK2RhdGEgMTcxCisjaW5jbHVkZSA8c3RkaW8uaD4KKworbG9uZyBmKGxvbmcgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIEEgY29tbWVudC4KKyAqLworCitpbnQgbWFpbiAoKQoreworCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisJcmV0dXJuIDA7Cit9CisKK2NvbW1pdCByZWZzL3RhZ3Mvc2ltcGxlCittYXJrIDo2CithdXRob3IgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDcxNiArMDEwMAorY29tbWl0dGVyIFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+IDEzNjIwNDQ3MTYgKzAxMDAKK2RhdGEgMjEKK3RvdWNoIGJvdGggZnVuY3Rpb25zCitmcm9tIDo0CitNIDEwMDY0NCA6NSBhLmMKKworYmxvYgorbWFyayA6NworZGF0YSAxODUKKyNpbmNsdWRlIDxzdGRpby5oPgorCitsb25nIGYobG9uZyB4KQoreworCWludCBzID0gMDsKKwl3aGlsZSAoeCkgeworCQl4ID4+PSAxOworCQlzKys7CisJfQorCXJldHVybiBzOworfQorCisvKgorICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgKi8KKworaW50IG1haW4gKCkKK3sKKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworCXJldHVybiAwOworfQorCitjb21taXQgcmVmcy90YWdzL3NpbXBsZQorbWFyayA6OAorYXV0aG9yIFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+IDEzNjIwNDQ3NDEgKzAxMDAKK2NvbW1pdHRlciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0NzQxICswMTAwCitkYXRhIDE0Cit0b3VjaCBjb21tZW50Citmcm9tIDo2CitNIDEwMDY0NCA6NyBhLmMKKworYmxvYgorbWFyayA6OQorZGF0YSAyMDUKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCitsb25nIGYobG9uZyB4KQoreworCWludCBzID0gMDsKKwl3aGlsZSAoeCkgeworCQl4ID4+PSAxOworCQlzKys7CisJfQorCXJldHVybiBzOworfQorCisvKgorICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgKi8KKworaW50IG1haW4gKCkKK3sKKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworCXJldHVybiAwOworfQorCitjb21taXQgcmVmcy90YWdzL3NpbXBsZQorbWFyayA6MTAKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0ODYwICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDg2MCArMDEwMAorZGF0YSAyNQorY2hhbmdlIGF0IHZlcnkgYmVnaW5uaW5nCitmcm9tIDo4CitNIDEwMDY0NCA6OSBhLmMKKworYmxvYgorbWFyayA6MTEKK2RhdGEgMjA0CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworbG9uZyBmKGxvbmcgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KK2NvbW1pdCByZWZzL3RhZ3Mvc2ltcGxlCittYXJrIDoxMgorYXV0aG9yIFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+IDEzNjIwNDQ4OTAgKzAxMDAKK2NvbW1pdHRlciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0ODkwICswMTAwCitkYXRhIDM2CitjaGFuZ2UgdG8gYW4gaW5jb21wbGV0ZSBsaW5lIGF0IGVuZAorZnJvbSA6MTAKK00gMTAwNjQ0IDoxMSBhLmMKKworYmxvYgorbWFyayA6MTMKK2RhdGEgMjM4CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworbG9uZyBmKGxvbmcgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgcmVmcy90YWdzL3NpbXBsZQorbWFyayA6MTQKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0OTIzICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDkyMyArMDEwMAorZGF0YSAyOQorY2hhbmdlIGJhY2sgdG8gY29tcGxldGUgbGluZQorZnJvbSA6MTIKK00gMTAwNjQ0IDoxMyBhLmMKKworY29tbWl0IHJlZnMvdGFncy9tb3ZlLXN1cHBvcnQKK21hcmsgOjE1CithdXRob3IgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDk2OCArMDEwMAorY29tbWl0dGVyIFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+IDEzNjIwNDQ5NjggKzAxMDAKK2RhdGEgMTAKK21vdmUgZmlsZQorZnJvbSA6MTQKK0QgYS5jCitNIDEwMDY0NCA6MTMgYi5jCisKK2Jsb2IKK21hcmsgOjE2CitkYXRhIDIzNworI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2xvbmcgZihsb25nIHgpCit7CisJaW50IHMgPSAwOworCXdoaWxlICh4KSB7CisJCXggLz0gMjsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgcmVmcy90YWdzL21vdmUtc3VwcG9ydAorbWFyayA6MTcKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0OTkwICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDk5MCArMDEwMAorZGF0YSAyMgorYW5vdGhlciBzaW1wbGUgY2hhbmdlCitmcm9tIDoxNQorTSAxMDA2NDQgOjE2IGIuYworCitibG9iCittYXJrIDoxOAorZGF0YSAyNTQKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCitsb25nIGYobG9uZyB4KTsKKworLyoKKyAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitsb25nIGYobG9uZyB4KQoreworCWludCBzID0gMDsKKwl3aGlsZSAoeCkgeworCQl4IC89IDI7CisJCXMrKzsKKwl9CisJcmV0dXJuIHM7Cit9CisKK2NvbW1pdCByZWZzL2hlYWRzL21hc3RlcgorbWFyayA6MTkKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ1MDI0ICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NTAyNCArMDEwMAorZGF0YSAyMQorbW92ZSB3aXRoaW4gdGhlIGZpbGUKK2Zyb20gOjE3CitNIDEwMDY0NCA6MTggYi5jCisKK2Jsb2IKK21hcmsgOjIwCitkYXRhIDI0MworI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2xvbmcgZihsb25nIHgpCit7CisJaW50IHMgPSAwOworCXdoaWxlICh4KSB7CisJCXggPj49IDE7CisJCXMrKzsKKwl9CisJcmV0dXJuIHM7Cit9CisKKy8qCisgKiBUaGlzIGlzIG9ubHkgYSBzaG9ydCBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgcmVmcy9oZWFkcy9wYXJhbGxlbC1jaGFuZ2UKK21hcmsgOjIxCithdXRob3IgVGhvbWFzIFJhc3QgPHRyYXN0QGluZi5ldGh6LmNoPiAxMzY1Nzc2MTU3ICswMjAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QGluZi5ldGh6LmNoPiAxMzY1Nzc2MTU3ICswMjAwCitkYXRhIDU1CitjaGFuZ2Ugb24gYW5vdGhlciBsaW5lIG9mIGhpc3Rvcnkgd2hpbGUgcmVuYW1lIGhhcHBlbnMKK2Zyb20gOjE0CitNIDEwMDY0NCA6MjAgYS5jCisKK2Jsb2IKK21hcmsgOjIyCitkYXRhIDI0MgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2xvbmcgZihsb25nIHgpCit7CisJaW50IHMgPSAwOworCXdoaWxlICh4KSB7CisJCXggLz0gMjsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBhIHNob3J0IGV4YW1wbGUhCisgKi8KKworaW50IG1haW4gKCkKK3sKKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworCXJldHVybiAwOworfQorCisvKiBpbmNvbXBsZXRlIGxpbmVzIGFyZSBiYWQhICovCisKK2NvbW1pdCByZWZzL2hlYWRzL3BhcmFsbGVsLWNoYW5nZQorbWFyayA6MjMKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAaW5mLmV0aHouY2g+IDEzNjU3NzYxODQgKzAyMDAKK2NvbW1pdHRlciBUaG9tYXMgUmFzdCA8dHJhc3RAaW5mLmV0aHouY2g+IDEzNjU3NzYxOTEgKzAyMDAKK2RhdGEgMjQKK01lcmdlIGFjcm9zcyB0aGUgcmVuYW1lCitmcm9tIDoyMQorbWVyZ2UgOjE3CitEIGEuYworTSAxMDA2NDQgOjIyIGIuYworCityZXNldCByZWZzL2hlYWRzL3BhcmFsbGVsLWNoYW5nZQorZnJvbSA6MjMKKwpkaWZmIC0tZ2l0IGEvdC90NTAwMC10YXItdHJlZS5zaCBiL3QvdDUwMDAtdGFyLXRyZWUuc2gKaW5kZXggM2ZiZDM2Ni4uYzIwMjNiMSAxMDA3NTUKLS0tIGEvdC90NTAwMC10YXItdHJlZS5zaAorKysgYi90L3Q1MDAwLXRhci10cmVlLnNoCkBAIC0zMCwxMCArMzAsNzYgQEAKIAogU1VCU1RGT1JNQVQ9JUglbgogCit0ZXN0X2xhenlfcHJlcmVxIFRBUl9ORUVEU19QQVhfRkFMTEJBQ0sgJworCSgKKwkJbWtkaXIgcGF4ICYmCisJCWNkIHBheCAmJgorCQkiJFRBUiIgeGYgIiRURVNUX0RJUkVDVE9SWSIvdDUwMDAvcGF4LnRhciAmJgorCQl0ZXN0IC1mIFBheEhlYWRlcnMuMTc5MS9maWxlCisJKQorJworCitnZXRfcGF4X2hlYWRlcigpIHsKKwlmaWxlPSQxCisJaGVhZGVyPSQyPQorCisJd2hpbGUgcmVhZCBsZW4gcmVzdAorCWRvCisJCWlmIHRlc3QgIiRsZW4iID0gJChlY2hvICIkbGVuICRyZXN0IiB8IHdjIC1jKQorCQl0aGVuCisJCQljYXNlICIkcmVzdCIgaW4KKwkJCSRoZWFkZXIqKQorCQkJCWVjaG8gIiR7cmVzdCMkaGVhZGVyfSIKKwkJCQk7OworCQkJZXNhYworCQlmaQorCWRvbmUgPCIkZmlsZSIKK30KKworY2hlY2tfdGFyKCkgeworCXRhcmZpbGU9JDEudGFyCisJbGlzdGZpbGU9JDEubHN0CisJZGlyPSQxCisJZGlyX3dpdGhfcHJlZml4PSRkaXIvJDIKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyBleHRyYWN0IHRhciBhcmNoaXZlJyAnCisJCShta2RpciAkZGlyICYmIGNkICRkaXIgJiYgIiRUQVIiIHhmIC0pIDwkdGFyZmlsZQorCScKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgVEFSX05FRURTX1BBWF9GQUxMQkFDSyAnIGludGVycHJldCBwYXggaGVhZGVycycgJworCQkoCisJCQljZCAkZGlyICYmCisJCQlmb3IgaGVhZGVyIGluICoucGF4aGVhZGVyCisJCQlkbworCQkJCWRhdGE9JHtoZWFkZXIlLnBheGhlYWRlcn0uZGF0YSAmJgorCQkJCWlmIHRlc3QgLWggJGRhdGEgLW8gLWUgJGRhdGEKKwkJCQl0aGVuCisJCQkJCXBhdGg9JChnZXRfcGF4X2hlYWRlciAkaGVhZGVyIHBhdGgpICYmCisJCQkJCWlmIHRlc3QgLW4gIiRwYXRoIgorCQkJCQl0aGVuCisJCQkJCQltdiAiJGRhdGEiICIkcGF0aCIKKwkJCQkJZmkKKwkJCQlmaQorCQkJZG9uZQorCQkpCisJJworCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAnIHZhbGlkYXRlIGZpbGVuYW1lcycgJworCQkoY2QgJHtkaXJfd2l0aF9wcmVmaXh9YSAmJiBmaW5kIC4pIHwgc29ydCA+JGxpc3RmaWxlICYmCisJCXRlc3RfY21wIGEubHN0ICRsaXN0ZmlsZQorCScKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyB2YWxpZGF0ZSBmaWxlIGNvbnRlbnRzJyAnCisJCWRpZmYgLXIgYSAke2Rpcl93aXRoX3ByZWZpeH1hCisJJworfQorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAncG9wdWxhdGUgd29ya2RpcicgXAotICAgICdta2RpciBhIGIgYyAmJgorICAgICdta2RpciBhICYmCiAgICAgIGVjaG8gc2ltcGxlIHRleHRmaWxlID5hL2EgJiYKKyAgICAgdGVuPTAxMjM0NTY3ODkgJiYgaHVuZHJlZD0kdGVuJHRlbiR0ZW4kdGVuJHRlbiR0ZW4kdGVuJHRlbiR0ZW4kdGVuICYmCisgICAgIGVjaG8gbG9uZyBmaWxlbmFtZSA+YS9mb3VyJGh1bmRyZWQgJiYKICAgICAgbWtkaXIgYS9iaW4gJiYKICAgICAgY3AgL2Jpbi9zaCBhL2JpbiAmJgogICAgICBwcmludGYgIkFcJEZvcm1hdDolc1wkTyIgIiRTVUJTVEZPUk1BVCIgPmEvc3Vic3RmaWxlMSAmJgpAQCAtNjIsNiArMTI4LDEyIEBACiAgICAgIGdpdCB1cGRhdGUtcmVmIEhFQUQgJChUWj1HTVQgR0lUX0NPTU1JVFRFUl9EQVRFPSIyMDA1LTA1LTI3IDIyOjAwOjAwIiBcCiAgICAgIGdpdCBjb21taXQtdHJlZSAkdHJlZWlkIDwvZGV2L251bGwpJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBleHBvcnQtc3Vic3QnICcKKwllY2hvICJzdWJzdGZpbGU/IiBleHBvcnQtc3Vic3QgPj4uZ2l0L2luZm8vYXR0cmlidXRlcyAmJgorCWdpdCBsb2cgLS1tYXgtY291bnQ9MSAiLS1wcmV0dHk9Zm9ybWF0OkEke1NVQlNURk9STUFUfU8iIEhFQUQgXAorCQk+YS9zdWJzdGZpbGUxCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdjcmVhdGUgYmFyZSBjbG9uZScgXAogICAgICdnaXQgY2xvbmUgLS1iYXJlIC4gYmFyZS5naXQgJiYKQEAgLTc1LDEzICsxNDcsMTkgQEAKICAgICAnZ2l0IGFyY2hpdmUnIFwKICAgICAnZ2l0IGFyY2hpdmUgSEVBRCA+Yi50YXInCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdnaXQgdGFyLXRyZWUnIFwKLSAgICAnZ2l0IHRhci10cmVlIEhFQUQgPmIyLnRhcicKK2NoZWNrX3RhciBiCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdnaXQgYXJjaGl2ZSB2cy4gZ2l0IHRhci10cmVlJyBcCi0gICAgJ3Rlc3RfY21wIGIudGFyIGIyLnRhcicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBhcmNoaXZlIC0tcHJlZml4PXByZWZpeC8nICcKKwlnaXQgYXJjaGl2ZSAtLXByZWZpeD1wcmVmaXgvIEhFQUQgPndpdGhfcHJlZml4LnRhcgorJworCitjaGVja190YXIgd2l0aF9wcmVmaXggcHJlZml4LworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQtYXJjaGl2ZSAtLXByZWZpeD1vbGRlLScgJworCWdpdCBhcmNoaXZlIC0tcHJlZml4PW9sZGUtIEhFQUQgPndpdGhfb2xkZS1wcmVmaXgudGFyCisnCisKK2NoZWNrX3RhciB3aXRoX29sZGUtcHJlZml4IG9sZGUtCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBhcmNoaXZlIG9uIGxhcmdlIGZpbGVzJyAnCiAgICAgdGVzdF9jb25maWcgY29yZS5iaWdmaWxldGhyZXNob2xkIDEgJiYKQEAgLTExOCw2NiArMTk2LDE0IEBACiAgICAgJ2dpdCBnZXQtdGFyLWNvbW1pdC1pZCA8Yi50YXIgPmIuY29tbWl0aWQgJiYKICAgICAgdGVzdF9jbXAgLmdpdC8kKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkgYi5jb21taXRpZCcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2V4dHJhY3QgdGFyIGFyY2hpdmUnIFwKLSAgICAnKGNkIGIgJiYgIiRUQVIiIHhmIC0pIDxiLnRhcicKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ3ZhbGlkYXRlIGZpbGVuYW1lcycgXAotICAgICcoY2QgYi9hICYmIGZpbmQgLikgfCBzb3J0ID5iLmxzdCAmJgotICAgICB0ZXN0X2NtcCBhLmxzdCBiLmxzdCcKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ3ZhbGlkYXRlIGZpbGUgY29udGVudHMnIFwKLSAgICAnZGlmZiAtciBhIGIvYScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2dpdCB0YXItdHJlZSB3aXRoIHByZWZpeCcgXAotICAgICdnaXQgdGFyLXRyZWUgSEVBRCBwcmVmaXggPmMudGFyJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZXh0cmFjdCB0YXIgYXJjaGl2ZSB3aXRoIHByZWZpeCcgXAotICAgICcoY2QgYyAmJiAiJFRBUiIgeGYgLSkgPGMudGFyJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAndmFsaWRhdGUgZmlsZW5hbWVzIHdpdGggcHJlZml4JyBcCi0gICAgJyhjZCBjL3ByZWZpeC9hICYmIGZpbmQgLikgfCBzb3J0ID5jLmxzdCAmJgotICAgICB0ZXN0X2NtcCBhLmxzdCBjLmxzdCcKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ3ZhbGlkYXRlIGZpbGUgY29udGVudHMgd2l0aCBwcmVmaXgnIFwKLSAgICAnZGlmZiAtciBhIGMvcHJlZml4L2EnCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdjcmVhdGUgYXJjaGl2ZXMgd2l0aCBzdWJzdGZpbGVzJyBcCi0gICAgJ2NwIC5naXQvaW5mby9hdHRyaWJ1dGVzIC5naXQvaW5mby9hdHRyaWJ1dGVzLmJlZm9yZSAmJgotICAgICBlY2hvICJzdWJzdGZpbGU/IiBleHBvcnQtc3Vic3QgPj4uZ2l0L2luZm8vYXR0cmlidXRlcyAmJgotICAgICBnaXQgYXJjaGl2ZSBIRUFEID5mLnRhciAmJgotICAgICBnaXQgYXJjaGl2ZSAtLXByZWZpeD1wcmVmaXgvIEhFQUQgPmcudGFyICYmCi0gICAgIG12IC5naXQvaW5mby9hdHRyaWJ1dGVzLmJlZm9yZSAuZ2l0L2luZm8vYXR0cmlidXRlcycKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2V4dHJhY3Qgc3Vic3RmaWxlcycgXAotICAgICcobWtkaXIgZiAmJiBjZCBmICYmICIkVEFSIiB4ZiAtKSA8Zi50YXInCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICAndmFsaWRhdGUgc3Vic3RmaWxlIGNvbnRlbnRzJyBcCi0gICAgICdnaXQgbG9nIC0tbWF4LWNvdW50PTEgIi0tcHJldHR5PWZvcm1hdDpBJHtTVUJTVEZPUk1BVH1PIiBIRUFEIFwKLSAgICAgID5mL2Evc3Vic3RmaWxlMS5leHBlY3RlZCAmJgotICAgICAgdGVzdF9jbXAgZi9hL3N1YnN0ZmlsZTEuZXhwZWN0ZWQgZi9hL3N1YnN0ZmlsZTEgJiYKLSAgICAgIHRlc3RfY21wIGEvc3Vic3RmaWxlMiBmL2Evc3Vic3RmaWxlMgordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHRhci10cmVlJyAnCisJZ2l0IHRhci10cmVlIEhFQUQgPnRhci10cmVlLnRhciAmJgorCXRlc3RfY21wIGIudGFyIHRhci10cmVlLnRhcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZXh0cmFjdCBzdWJzdGZpbGVzIGZyb20gYXJjaGl2ZSB3aXRoIHByZWZpeCcgXAotICAgICcobWtkaXIgZyAmJiBjZCBnICYmICIkVEFSIiB4ZiAtKSA8Zy50YXInCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICAndmFsaWRhdGUgc3Vic3RmaWxlIGNvbnRlbnRzIGZyb20gYXJjaGl2ZSB3aXRoIHByZWZpeCcgXAotICAgICAnZ2l0IGxvZyAtLW1heC1jb3VudD0xICItLXByZXR0eT1mb3JtYXQ6QSR7U1VCU1RGT1JNQVR9TyIgSEVBRCBcCi0gICAgICA+Zy9wcmVmaXgvYS9zdWJzdGZpbGUxLmV4cGVjdGVkICYmCi0gICAgICB0ZXN0X2NtcCBnL3ByZWZpeC9hL3N1YnN0ZmlsZTEuZXhwZWN0ZWQgZy9wcmVmaXgvYS9zdWJzdGZpbGUxICYmCi0gICAgICB0ZXN0X2NtcCBhL3N1YnN0ZmlsZTIgZy9wcmVmaXgvYS9zdWJzdGZpbGUyCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgdGFyLXRyZWUgd2l0aCBwcmVmaXgnICcKKwlnaXQgdGFyLXRyZWUgSEVBRCBwcmVmaXggPnRhci10cmVlX3dpdGhfcHJlZml4LnRhciAmJgorCXRlc3RfY21wIHdpdGhfcHJlZml4LnRhciB0YXItdHJlZV93aXRoX3ByZWZpeC50YXIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGFyY2hpdmUgd2l0aCAtLW91dHB1dCwgb3ZlcnJpZGUgaW5mZXJyZWQgZm9ybWF0JyAnCkBAIC0xOTcsMTggKzIyMyw2IEBACiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGFyY2hpdmUgLS1yZW1vdGU9LiAkc2hhMSA+cmVtb3RlLnRhcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQtYXJjaGl2ZSAtLXByZWZpeD1vbGRlLScgJwotCWdpdCBhcmNoaXZlIC0tcHJlZml4PW9sZGUtID5oLnRhciBIRUFEICYmCi0JKAotCQlta2RpciBoICYmCi0JCWNkIGggJiYKLQkJIiRUQVIiIHhmIC0gPC4uL2gudGFyCi0JKSAmJgotCXRlc3QgLWQgaC9vbGRlLWEgJiYKLQl0ZXN0IC1kIGgvb2xkZS1hL2JpbiAmJgotCXRlc3QgLWYgaC9vbGRlLWEvYmluL3NoCi0nCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIHRhciBmaWx0ZXJzJyAnCiAJZ2l0IGNvbmZpZyB0YXIudGFyLmZvby5jb21tYW5kICJ0ciBhYiBiYSIgJiYKIAlnaXQgY29uZmlnIHRhci5iYXIuY29tbWFuZCAidHIgYWIgYmEiICYmCmRpZmYgLS1naXQgYS90L3Q1MDAwL3BheC50YXIgYi90L3Q1MDAwL3BheC50YXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkxMTczNwotLS0gL2Rldi9udWxsCisrKyBiL3QvdDUwMDAvcGF4LnRhcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90L3Q1MDAzLWFyY2hpdmUtemlwLnNoIGIvdC90NTAwMy1hcmNoaXZlLXppcC5zaAppbmRleCA0ZTdiMDVkLi5jNzJmNzFlIDEwMDc1NQotLS0gYS90L3Q1MDAzLWFyY2hpdmUtemlwLnNoCisrKyBiL3QvdDUwMDMtYXJjaGl2ZS16aXAuc2gKQEAgLTM3LDcgKzM3LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ3BvcHVsYXRlIHdvcmtkaXInIFwKLSAgICAnbWtkaXIgYSBiIGMgJiYKKyAgICAnbWtkaXIgYSAmJgogICAgICBlY2hvIHNpbXBsZSB0ZXh0ZmlsZSA+YS9hICYmCiAgICAgIG1rZGlyIGEvYmluICYmCiAgICAgIGNwIC9iaW4vc2ggYS9iaW4gJiYKZGlmZiAtLWdpdCBhL3QvdDUwMDQtYXJjaGl2ZS1jb3JuZXItY2FzZXMuc2ggYi90L3Q1MDA0LWFyY2hpdmUtY29ybmVyLWNhc2VzLnNoCmluZGV4IDhkMWJiZDMuLjY3ZjNiNTQgMTAwNzU1Ci0tLSBhL3QvdDUwMDQtYXJjaGl2ZS1jb3JuZXItY2FzZXMuc2gKKysrIGIvdC90NTAwNC1hcmNoaXZlLWNvcm5lci1jYXNlcy5zaApAQCAtMjcsNiArMjcsMjEgQEAKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiB9CiAKKworIyBic2R0YXIvbGliYXJjaGl2ZSB2ZXJzaW9ucyBiZWZvcmUgMy4xLjMgY29uc2lkZXIgYSB0YXIgZmlsZSB3aXRoIGEKKyMgZ2xvYmFsIHBheCBoZWFkZXIgdGhhdCBpcyBub3QgZm9sbG93ZWQgYnkgYSBmaWxlIHJlY29yZCBhcyBjb3JydXB0LgoraWYgIiRUQVIiIHRmICIkVEVTVF9ESVJFQ1RPUlkiL3Q1MDA0L2VtcHR5LXdpdGgtcGF4LWhlYWRlci50YXIgPi9kZXYvbnVsbCAyPiYxCit0aGVuCisJdGVzdF9zZXRfcHJlcmVxIEhFQURFUl9PTkxZX1RBUl9PSworZmkKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBIRUFERVJfT05MWV9UQVJfT0sgJ3RhciBhcmNoaXZlIG9mIGNvbW1pdCB3aXRoIGVtcHR5IHRyZWUnICcKKwlnaXQgYXJjaGl2ZSAtLWZvcm1hdD10YXIgSEVBRCA+ZW1wdHktd2l0aC1wYXgtaGVhZGVyLnRhciAmJgorCW1ha2VfZGlyIGV4dHJhY3QgJiYKKwkiJFRBUiIgeGYgZW1wdHktd2l0aC1wYXgtaGVhZGVyLnRhciAtQyBleHRyYWN0ICYmCisJY2hlY2tfZGlyIGV4dHJhY3QKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAndGFyIGFyY2hpdmUgb2YgZW1wdHkgdHJlZSBpcyBlbXB0eScgJwogCWdpdCBhcmNoaXZlIC0tZm9ybWF0PXRhciBIRUFEOiA+ZW1wdHkudGFyICYmCiAJcGVybCAtZSAicHJpbnQgXCJcXDBcIiB4IDEwMjQwIiA+MTBrbnVscy50YXIgJiYKZGlmZiAtLWdpdCBhL3QvdDUwMDQvZW1wdHktd2l0aC1wYXgtaGVhZGVyLnRhciBiL3QvdDUwMDQvZW1wdHktd2l0aC1wYXgtaGVhZGVyLnRhcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTllMzllCi0tLSAvZGV2L251bGwKKysrIGIvdC90NTAwNC9lbXB0eS13aXRoLXBheC1oZWFkZXIudGFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDUxNTAtcmVxdWVzdC1wdWxsLnNoIGIvdC90NTE1MC1yZXF1ZXN0LXB1bGwuc2gKaW5kZXggNDMyZjk4Yy4uMWFmYTBkNSAxMDA3NTUKLS0tIGEvdC90NTE1MC1yZXF1ZXN0LXB1bGwuc2gKKysrIGIvdC90NTE1MC1yZXF1ZXN0LXB1bGwuc2gKQEAgLTgwLDEyICs4MCwxMiBAQAogCiAJY2F0IDw8LUVPVCA+ZnV6ei5zZWQKIAkjIS9iaW4vc2VkIC1uZgorCXMvJGRvd25zdHJlYW1fdXJsX2Zvcl9zZWQvVVJML2cKIAlzLyRfeDQwL09CSkVDVF9OQU1FL2cKIAlzL0EgVSBUaG9yL0FVVEhPUi9nCiAJcy9bLTAtOV1cezEwXH0gWzowLTldXHs4XH0gWy0rXVswLTldXHs0XH0vREFURS9nCiAJcy8gICAgICAgIFteIF0uKi8gICAgICAgIFNVQkpFQ1QvZwogCXMvICBbXiBdLiogKERBVEUpLyAgU1VCSkVDVCAoREFURSkvZwotCXMvJGRvd25zdHJlYW1fdXJsX2Zvcl9zZWQvVVJML2cKIAlzL2Zvci11cHN0cmVhbS9CUkFOQ0gvZwogCXMvbW5lbW9uaWMudHh0L0ZJTEVOQU1FL2cKIAlzL152ZXJzaW9uIFswLTldL1ZFUlNJT04vCmRpZmYgLS1naXQgYS90L3Q1MzAzLXBhY2stY29ycnVwdGlvbi1yZXNpbGllbmNlLnNoIGIvdC90NTMwMy1wYWNrLWNvcnJ1cHRpb24tcmVzaWxpZW5jZS5zaAppbmRleCA1YjEyNTBmLi4zNTkyNmRlIDEwMDc1NQotLS0gYS90L3Q1MzAzLXBhY2stY29ycnVwdGlvbi1yZXNpbGllbmNlLnNoCisrKyBiL3QvdDUzMDMtcGFjay1jb3JydXB0aW9uLXJlc2lsaWVuY2Uuc2gKQEAgLTUxLDcgKzUxLDcgQEAKICAgICBvZnM9YGdpdCBzaG93LWluZGV4IDwgJHtwYWNrfS5pZHggfCBncmVwICQxIHwgY3V0IC1mMSAtZCIgImAgJiYKICAgICBvZnM9JCgoJG9mcyArICQyKSkgJiYKICAgICBjaG1vZCArdyAke3BhY2t9LnBhY2sgJiYKLSAgICBkZCBvZj0ke3BhY2t9LnBhY2sgY291bnQ9MSBicz0xIGNvbnY9bm90cnVuYyBzZWVrPSRvZnMgJiYKKyAgICBkZCBvZj0ke3BhY2t9LnBhY2sgYnM9MSBjb252PW5vdHJ1bmMgc2Vlaz0kb2ZzICYmCiAgICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IHZlcmlmeS1wYWNrICR7cGFja30ucGFjawogfQogCkBAIC0yNzYsNiArMjc2LDMzIEBACiAgICAgIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzMgPiAvZGV2L251bGwnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAorICAgICdjb3JydXB0aW9uIG9mIGRlbHRhIGJhc2UgcmVmZXJlbmNlIHBvaW50aW5nIHRvIHdyb25nIG9iamVjdCcgXAorICAgICdjcmVhdGVfbmV3X3BhY2sgLS1kZWx0YS1iYXNlLW9mZnNldCAmJgorICAgICBnaXQgcHJ1bmUtcGFja2VkICYmCisgICAgIHByaW50ZiAiXDIyMFwwMzMiIHwgZG9fY29ycnVwdF9vYmplY3QgJGJsb2JfMyAyICYmCisgICAgIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzEgPi9kZXYvbnVsbCAmJgorICAgICBnaXQgY2F0LWZpbGUgYmxvYiAkYmxvYl8yID4vZGV2L251bGwgJiYKKyAgICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IGNhdC1maWxlIGJsb2IgJGJsb2JfMyA+L2Rldi9udWxsJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKKyAgICAnLi4uIGJ1dCBoYXZpbmcgYSBsb29zZSBjb3B5IGFsbG93cyBmb3IgZnVsbCByZWNvdmVyeScgXAorICAgICdtdiAke3BhY2t9LmlkeCB0bXAgJiYKKyAgICAgZ2l0IGhhc2gtb2JqZWN0IC10IGJsb2IgLXcgZmlsZV8zICYmCisgICAgIG12IHRtcCAke3BhY2t9LmlkeCAmJgorICAgICBnaXQgY2F0LWZpbGUgYmxvYiAkYmxvYl8xID4gL2Rldi9udWxsICYmCisgICAgIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzIgPiAvZGV2L251bGwgJiYKKyAgICAgZ2l0IGNhdC1maWxlIGJsb2IgJGJsb2JfMyA+IC9kZXYvbnVsbCcKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBcCisgICAgJy4uLiBhbmQgdGhlbiBhIHJlcGFjayAiY2xlYXJzIiB0aGUgY29ycnVwdGlvbicgXAorICAgICdkb19yZXBhY2sgLS1kZWx0YS1iYXNlLW9mZnNldCAtLW5vLXJldXNlLWRlbHRhICYmCisgICAgIGdpdCBwcnVuZS1wYWNrZWQgJiYKKyAgICAgZ2l0IHZlcmlmeS1wYWNrICR7cGFja30ucGFjayAmJgorICAgICBnaXQgY2F0LWZpbGUgYmxvYiAkYmxvYl8xID4gL2Rldi9udWxsICYmCisgICAgIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzIgPiAvZGV2L251bGwgJiYKKyAgICAgZ2l0IGNhdC1maWxlIGJsb2IgJGJsb2JfMyA+IC9kZXYvbnVsbCcKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2NvcnJ1cHRpbmcgaGVhZGVyIHRvIGhhdmUgdG9vIHNtYWxsIG91dHB1dCBidWZmZXIgZmFpbHMgdW5wYWNrJyBcCiAgICAgJ2NyZWF0ZV9uZXdfcGFjayAmJgogICAgICBnaXQgcHJ1bmUtcGFja2VkICYmCmRpZmYgLS1naXQgYS90L3Q1NDA3LXBvc3QtcmV3cml0ZS1ob29rLnNoIGIvdC90NTQwNy1wb3N0LXJld3JpdGUtaG9vay5zaAppbmRleCBiYWE2NzBjLi5lYTJlMGQ0IDEwMDc1NQotLS0gYS90L3Q1NDA3LXBvc3QtcmV3cml0ZS1ob29rLnNoCisrKyBiL3QvdDU0MDctcG9zdC1yZXdyaXRlLWhvb2suc2gKQEAgLTMxLDggKzMxLDggQEAKIH0KIAogdmVyaWZ5X2hvb2tfaW5wdXQgKCkgewotCXRlc3RfY21wICIkVFJBU0hfRElSRUNUT1JZIi9wb3N0LXJld3JpdGUuYXJncyBleHBlY3RlZC5hcmdzICYmCi0JdGVzdF9jbXAgIiRUUkFTSF9ESVJFQ1RPUlkiL3Bvc3QtcmV3cml0ZS5kYXRhIGV4cGVjdGVkLmRhdGEKKwl0ZXN0X2NtcCBleHBlY3RlZC5hcmdzICIkVFJBU0hfRElSRUNUT1JZIi9wb3N0LXJld3JpdGUuYXJncyAmJgorCXRlc3RfY21wIGV4cGVjdGVkLmRhdGEgIiRUUkFTSF9ESVJFQ1RPUlkiL3Bvc3QtcmV3cml0ZS5kYXRhCiB9CiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjb21taXQgLS1hbWVuZCcgJwpkaWZmIC0tZ2l0IGEvdC90NTUwMC1mZXRjaC1wYWNrLnNoIGIvdC90NTUwMC1mZXRjaC1wYWNrLnNoCmluZGV4IGQ1NzQwODUuLmE4MDU4NGUgMTAwNzU1Ci0tLSBhL3QvdDU1MDAtZmV0Y2gtcGFjay5zaAorKysgYi90L3Q1NTAwLWZldGNoLXBhY2suc2gKQEAgLTEzNSw2ICsxMzUsMTMgQEAKIAl0ZXN0ICJgZ2l0IC0tZ2l0LWRpcj1zaGFsbG93MC8uZ2l0IHJldi1saXN0IC0tY291bnQgSEVBRGAiID0gMQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBzaGFsbG93IGRlcHRoIDEgd2l0aCBmc2NrJyAnCisJZ2l0IGNvbmZpZyAtLWdsb2JhbCBmZXRjaC5mc2Nrb2JqZWN0cyB0cnVlICYmCisJZ2l0IGNsb25lIC0tbm8tc2luZ2xlLWJyYW5jaCAtLWRlcHRoIDEgImZpbGU6Ly8kKHB3ZCkvLiIgc2hhbGxvdzBmc2NrICYmCisJdGVzdCAiYGdpdCAtLWdpdC1kaXI9c2hhbGxvdzBmc2NrLy5naXQgcmV2LWxpc3QgLS1jb3VudCBIRUFEYCIgPSAxICYmCisJZ2l0IGNvbmZpZyAtLWdsb2JhbCAtLXVuc2V0IGZldGNoLmZzY2tvYmplY3RzCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25lIHNoYWxsb3cnICcKIAlnaXQgY2xvbmUgLS1uby1zaW5nbGUtYnJhbmNoIC0tZGVwdGggMiAiZmlsZTovLyQocHdkKS8uIiBzaGFsbG93CiAnCkBAIC0zNzMsNiArMzgwLDIwIEBACiAJdGVzdF9jbXAgY291bnQ4LmV4cGVjdGVkIGNvdW50OC5hY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggaW4gc2hhbGxvdyByZXBvIHVucmVhY2hhYmxlIHNoYWxsb3cgb2JqZWN0cycgJworCSgKKwkJZ2l0IGNsb25lIC0tYmFyZSAtLWJyYW5jaCBCIC0tc2luZ2xlLWJyYW5jaCAiZmlsZTovLyQocHdkKS8uIiBuby1yZWZsb2cgJiYKKwkJZ2l0IGNsb25lIC0tZGVwdGggMSAiZmlsZTovLyQocHdkKS9uby1yZWZsb2ciIHNoYWxsb3c5ICYmCisJCWNkIG5vLXJlZmxvZyAmJgorCQlnaXQgdGFnIC1kIFRBR0IxIFRBR0IyICYmCisJCWdpdCB1cGRhdGUtcmVmIHJlZnMvaGVhZHMvQiBCfn4gJiYKKwkJZ2l0IGdjIC0tcHJ1bmU9bm93ICYmCisJCWNkIC4uL3NoYWxsb3c5ICYmCisJCWdpdCBmZXRjaCBvcmlnaW4gJiYKKwkJZ2l0IGZzY2sgLS1uby1kYW5nbGluZworCSkKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgdGVzdHMgZm9yIHRoZSAtLXN0ZGluIHBhcmFtZXRlcicgJwogCWZvciBoZWFkIGluIEMgRCBFIEYKIAlkbwpAQCAtNDg0LDQgKzUwNSwyMCBAQAogCSkgPm91dC1hZHQgMj5lcnJvci1hZHQKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hhbGxvdyBmZXRjaCB3aXRoIHRhZ3MgZG9lcyBub3QgYnJlYWsgdGhlIHJlcG9zaXRvcnknICcKKwlta2RpciByZXBvMSAmJgorCSgKKwkJY2QgcmVwbzEgJiYKKwkJZ2l0IGluaXQgJiYKKwkJdGVzdF9jb21taXQgMSAmJgorCQl0ZXN0X2NvbW1pdCAyICYmCisJCXRlc3RfY29tbWl0IDMgJiYKKwkJbWtkaXIgcmVwbzIgJiYKKwkJY2QgcmVwbzIgJiYKKwkJZ2l0IGluaXQgJiYKKwkJZ2l0IGZldGNoIC0tZGVwdGg9MiAuLi8uZ2l0IG1hc3RlcjpicmFuY2ggJiYKKwkJZ2l0IGZzY2sKKwkpCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTUwNS1yZW1vdGUuc2ggYi90L3Q1NTA1LXJlbW90ZS5zaAppbmRleCBkZDEwZmYwLi44ZjZlMzkyIDEwMDc1NQotLS0gYS90L3Q1NTA1LXJlbW90ZS5zaAorKysgYi90L3Q1NTA1LXJlbW90ZS5zaApAQCAtNDIsMTA3ICs0MiwxMDQgQEAKIH0KIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCi0KIAlzZXR1cF9yZXBvc2l0b3J5IG9uZSAmJgogCXNldHVwX3JlcG9zaXRvcnkgdHdvICYmCiAJKAotCQljZCB0d28gJiYgZ2l0IGJyYW5jaCBhbm90aGVyCisJCWNkIHR3byAmJgorCQlnaXQgYnJhbmNoIGFub3RoZXIKIAkpICYmCiAJZ2l0IGNsb25lIG9uZSB0ZXN0Ci0KICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBDX0xPQ0FMRV9PVVRQVVQgJ3JlbW90ZSBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbicgJwotKAotCWNkIHRlc3QgJiYKLQl0b2tlbnNfbWF0Y2ggb3JpZ2luICIkKGdpdCByZW1vdGUpIiAmJgotCWNoZWNrX3JlbW90ZV90cmFjayBvcmlnaW4gbWFzdGVyIHNpZGUgJiYKLQljaGVja190cmFja2luZ19icmFuY2ggb3JpZ2luIEhFQUQgbWFzdGVyIHNpZGUKLSkKKwkoCisJCWNkIHRlc3QgJiYKKwkJdG9rZW5zX21hdGNoIG9yaWdpbiAiJChnaXQgcmVtb3RlKSIgJiYKKwkJY2hlY2tfcmVtb3RlX3RyYWNrIG9yaWdpbiBtYXN0ZXIgc2lkZSAmJgorCQljaGVja190cmFja2luZ19icmFuY2ggb3JpZ2luIEhFQUQgbWFzdGVyIHNpZGUKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FkZCBhbm90aGVyIHJlbW90ZScgJwotKAotCWNkIHRlc3QgJiYKLQlnaXQgcmVtb3RlIGFkZCAtZiBzZWNvbmQgLi4vdHdvICYmCi0JdG9rZW5zX21hdGNoICJvcmlnaW4gc2Vjb25kIiAiJChnaXQgcmVtb3RlKSIgJiYKLQljaGVja190cmFja2luZ19icmFuY2ggc2Vjb25kIG1hc3RlciBzaWRlIGFub3RoZXIgJiYKLQlnaXQgZm9yLWVhY2gtcmVmICItLWZvcm1hdD0lKHJlZm5hbWUpIiByZWZzL3JlbW90ZXMgfAotCXNlZCAtZSAiL15yZWZzXC9yZW1vdGVzXC9vcmlnaW5cLy9kIiBcCi0JICAgIC1lICIvXnJlZnNcL3JlbW90ZXNcL3NlY29uZFwvL2QiID5hY3R1YWwgJiYKLQk+ZXhwZWN0ICYmCi0JdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAotKQorCSgKKwkJY2QgdGVzdCAmJgorCQlnaXQgcmVtb3RlIGFkZCAtZiBzZWNvbmQgLi4vdHdvICYmCisJCXRva2Vuc19tYXRjaCAib3JpZ2luIHNlY29uZCIgIiQoZ2l0IHJlbW90ZSkiICYmCisJCWNoZWNrX3RyYWNraW5nX2JyYW5jaCBzZWNvbmQgbWFzdGVyIHNpZGUgYW5vdGhlciAmJgorCQlnaXQgZm9yLWVhY2gtcmVmICItLWZvcm1hdD0lKHJlZm5hbWUpIiByZWZzL3JlbW90ZXMgfAorCQlzZWQgLWUgIi9ecmVmc1wvcmVtb3Rlc1wvb3JpZ2luXC8vZCIgXAorCQkgICAgLWUgIi9ecmVmc1wvcmVtb3Rlc1wvc2Vjb25kXC8vZCIgPmFjdHVhbCAmJgorCQk+ZXhwZWN0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwkpCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgQ19MT0NBTEVfT1VUUFVUICdjaGVjayByZW1vdGUgdHJhY2tpbmcnICcKLSgKLQljZCB0ZXN0ICYmCi0JY2hlY2tfcmVtb3RlX3RyYWNrIG9yaWdpbiBtYXN0ZXIgc2lkZSAmJgotCWNoZWNrX3JlbW90ZV90cmFjayBzZWNvbmQgbWFzdGVyIHNpZGUgYW5vdGhlcgotKQordGVzdF9leHBlY3Rfc3VjY2VzcyBDX0xPQ0FMRV9PVVRQVVQgJ2NoZWNrIHJlbW90ZS10cmFja2luZycgJworCSgKKwkJY2QgdGVzdCAmJgorCQljaGVja19yZW1vdGVfdHJhY2sgb3JpZ2luIG1hc3RlciBzaWRlICYmCisJCWNoZWNrX3JlbW90ZV90cmFjayBzZWNvbmQgbWFzdGVyIHNpZGUgYW5vdGhlcgorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIGZvcmNlcyB0cmFja2luZyBicmFuY2hlcycgJwotKAotCWNkIHRlc3QgJiYKLQljYXNlIGBnaXQgY29uZmlnIHJlbW90ZS5zZWNvbmQuZmV0Y2hgIGluCi0JKyopIHRydWUgOzsKLQkgKikgZmFsc2UgOzsKLQllc2FjCi0pCisJKAorCQljZCB0ZXN0ICYmCisJCWNhc2UgYGdpdCBjb25maWcgcmVtb3RlLnNlY29uZC5mZXRjaGAgaW4KKwkJKyopIHRydWUgOzsKKwkJICopIGZhbHNlIDs7CisJCWVzYWMKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW92ZSByZW1vdGUnICcKLSgKLQljZCB0ZXN0ICYmCi0JZ2l0IHN5bWJvbGljLXJlZiByZWZzL3JlbW90ZXMvc2Vjb25kL0hFQUQgcmVmcy9yZW1vdGVzL3NlY29uZC9tYXN0ZXIgJiYKLQlnaXQgcmVtb3RlIHJtIHNlY29uZAotKQorCSgKKwkJY2QgdGVzdCAmJgorCQlnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9zZWNvbmQvSEVBRCByZWZzL3JlbW90ZXMvc2Vjb25kL21hc3RlciAmJgorCQlnaXQgcmVtb3RlIHJtIHNlY29uZAorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBDX0xPQ0FMRV9PVVRQVVQgJ3JlbW92ZSByZW1vdGUnICcKLSgKLQljZCB0ZXN0ICYmCi0JdG9rZW5zX21hdGNoIG9yaWdpbiAiJChnaXQgcmVtb3RlKSIgJiYKLQljaGVja19yZW1vdGVfdHJhY2sgb3JpZ2luIG1hc3RlciBzaWRlICYmCi0JZ2l0IGZvci1lYWNoLXJlZiAiLS1mb3JtYXQ9JShyZWZuYW1lKSIgcmVmcy9yZW1vdGVzIHwKLQlzZWQgLWUgIi9ecmVmc1wvcmVtb3Rlc1wvb3JpZ2luXC8vZCIgPmFjdHVhbCAmJgotCT5leHBlY3QgJiYKLQl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCi0pCisJKAorCQljZCB0ZXN0ICYmCisJCXRva2Vuc19tYXRjaCBvcmlnaW4gIiQoZ2l0IHJlbW90ZSkiICYmCisJCWNoZWNrX3JlbW90ZV90cmFjayBvcmlnaW4gbWFzdGVyIHNpZGUgJiYKKwkJZ2l0IGZvci1lYWNoLXJlZiAiLS1mb3JtYXQ9JShyZWZuYW1lKSIgcmVmcy9yZW1vdGVzIHwKKwkJc2VkIC1lICIvXnJlZnNcL3JlbW90ZXNcL29yaWdpblwvL2QiID5hY3R1YWwgJiYKKwkJPmV4cGVjdCAmJgorCQl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdmUgcmVtb3RlIHByb3RlY3RzIGxvY2FsIGJyYW5jaGVzJyAnCi0oCi0JY2QgdGVzdCAmJgotCXsgY2F0ID5leHBlY3QxIDw8RU9GCi1Ob3RlOiBBIGJyYW5jaCBvdXRzaWRlIHRoZSByZWZzL3JlbW90ZXMvIGhpZXJhcmNoeSB3YXMgbm90IHJlbW92ZWQ7Ci10byBkZWxldGUgaXQsIHVzZToKLSAgZ2l0IGJyYW5jaCAtZCBtYXN0ZXIKLUVPRgotCX0gJiYKLQl7IGNhdCA+ZXhwZWN0MiA8PEVPRgotTm90ZTogU29tZSBicmFuY2hlcyBvdXRzaWRlIHRoZSByZWZzL3JlbW90ZXMvIGhpZXJhcmNoeSB3ZXJlIG5vdCByZW1vdmVkOwotdG8gZGVsZXRlIHRoZW0sIHVzZToKLSAgZ2l0IGJyYW5jaCAtZCBmb29icmFuY2gKLSAgZ2l0IGJyYW5jaCAtZCBtYXN0ZXIKLUVPRgotCX0gJiYKLQlnaXQgdGFnIGZvb3RhZyAmJgotCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLm9vcHMuZmV0Y2ggIityZWZzLyo6cmVmcy8qIiAmJgotCWdpdCByZW1vdGUgcmVtb3ZlIG9vcHMgMj5hY3R1YWwxICYmCi0JZ2l0IGJyYW5jaCBmb29icmFuY2ggJiYKLQlnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vb3BzLmZldGNoICIrcmVmcy8qOnJlZnMvKiIgJiYKLQlnaXQgcmVtb3RlIHJtIG9vcHMgMj5hY3R1YWwyICYmCi0JZ2l0IGJyYW5jaCAtZCBmb29icmFuY2ggJiYKLQlnaXQgdGFnIC1kIGZvb3RhZyAmJgotCXRlc3RfaTE4bmNtcCBleHBlY3QxIGFjdHVhbDEgJiYKLQl0ZXN0X2kxOG5jbXAgZXhwZWN0MiBhY3R1YWwyCi0pCisJKAorCQljZCB0ZXN0ICYmCisJCWNhdCA+ZXhwZWN0MSA8PC1cRU9GICYmCisJCU5vdGU6IEEgYnJhbmNoIG91dHNpZGUgdGhlIHJlZnMvcmVtb3Rlcy8gaGllcmFyY2h5IHdhcyBub3QgcmVtb3ZlZDsKKwkJdG8gZGVsZXRlIGl0LCB1c2U6CisJCSAgZ2l0IGJyYW5jaCAtZCBtYXN0ZXIKKwkJRU9GCisJCWNhdCA+ZXhwZWN0MiA8PC1cRU9GICYmCisJCU5vdGU6IFNvbWUgYnJhbmNoZXMgb3V0c2lkZSB0aGUgcmVmcy9yZW1vdGVzLyBoaWVyYXJjaHkgd2VyZSBub3QgcmVtb3ZlZDsKKwkJdG8gZGVsZXRlIHRoZW0sIHVzZToKKwkJICBnaXQgYnJhbmNoIC1kIGZvb2JyYW5jaAorCQkgIGdpdCBicmFuY2ggLWQgbWFzdGVyCisJCUVPRgorCQlnaXQgdGFnIGZvb3RhZyAmJgorCQlnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vb3BzLmZldGNoICIrcmVmcy8qOnJlZnMvKiIgJiYKKwkJZ2l0IHJlbW90ZSByZW1vdmUgb29wcyAyPmFjdHVhbDEgJiYKKwkJZ2l0IGJyYW5jaCBmb29icmFuY2ggJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUub29wcy5mZXRjaCAiK3JlZnMvKjpyZWZzLyoiICYmCisJCWdpdCByZW1vdGUgcm0gb29wcyAyPmFjdHVhbDIgJiYKKwkJZ2l0IGJyYW5jaCAtZCBmb29icmFuY2ggJiYKKwkJZ2l0IHRhZyAtZCBmb290YWcgJiYKKwkJdGVzdF9pMThuY21wIGV4cGVjdDEgYWN0dWFsMSAmJgorCQl0ZXN0X2kxOG5jbXAgZXhwZWN0MiBhY3R1YWwyCisJKQogJwogCi1jYXQgPiB0ZXN0L2V4cGVjdCA8PCBFT0YKK2NhdCA+dGVzdC9leHBlY3QgPDxFT0YKICogcmVtb3RlIG9yaWdpbgogICBGZXRjaCBVUkw6ICQocHdkKS9vbmUKICAgUHVzaCAgVVJMOiAkKHB3ZCkvb25lCkBAIC0xNzIsMzYgKzE2OSw0MCBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3cnICcKLQkoY2QgdGVzdCAmJgotCSBnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vcmlnaW4uZmV0Y2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbSAmJgotCSBnaXQgZmV0Y2ggJiYKLQkgZ2l0IGNoZWNrb3V0IC1iIGFoZWFkIG9yaWdpbi9tYXN0ZXIgJiYKLQkgZWNobyAxID4+IGZpbGUgJiYKLQkgdGVzdF90aWNrICYmCi0JIGdpdCBjb21taXQgLW0gdXBkYXRlIGZpbGUgJiYKLQkgZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgotCSBnaXQgYnJhbmNoIC0tdHJhY2sgb2N0b3B1cyBvcmlnaW4vbWFzdGVyICYmCi0JIGdpdCBicmFuY2ggLS10cmFjayByZWJhc2Ugb3JpZ2luL21hc3RlciAmJgotCSBnaXQgYnJhbmNoIC1kIC1yIG9yaWdpbi9tYXN0ZXIgJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnVybCAuLi90d28gJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2h1cmwgLi4vdGhyZWUgJiYKLQkgZ2l0IGNvbmZpZyBicmFuY2gucmViYXNlLnJlYmFzZSB0cnVlICYmCi0JIGdpdCBjb25maWcgYnJhbmNoLm9jdG9wdXMubWVyZ2UgInRvcGljLWEgdG9waWMtYiB0b3BpYy1jIiAmJgotCSAoY2QgLi4vb25lICYmCi0JICBlY2hvIDEgPiBmaWxlICYmCi0JICB0ZXN0X3RpY2sgJiYKLQkgIGdpdCBjb21taXQgLW0gdXBkYXRlIGZpbGUpICYmCi0JIGdpdCBjb25maWcgLS1hZGQgcmVtb3RlLm9yaWdpbi5wdXNoIDogJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUub3JpZ2luLnB1c2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbSAmJgotCSBnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vcmlnaW4ucHVzaCArcmVmcy90YWdzL2xhc3RiYWNrdXAgJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2ggK3JlZnMvaGVhZHMvYWhlYWQ6cmVmcy9oZWFkcy9tYXN0ZXIgJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy9hbm90aGVyICYmCi0JIGdpdCByZW1vdGUgc2hvdyBvcmlnaW4gdHdvID4gb3V0cHV0ICYmCi0JIGdpdCBicmFuY2ggLWQgcmViYXNlIG9jdG9wdXMgJiYKLQkgdGVzdF9pMThuY21wIGV4cGVjdCBvdXRwdXQpCisJKAorCQljZCB0ZXN0ICYmCisJCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLm9yaWdpbi5mZXRjaCByZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL3Vwc3RyZWFtICYmCisJCWdpdCBmZXRjaCAmJgorCQlnaXQgY2hlY2tvdXQgLWIgYWhlYWQgb3JpZ2luL21hc3RlciAmJgorCQllY2hvIDEgPj5maWxlICYmCisJCXRlc3RfdGljayAmJgorCQlnaXQgY29tbWl0IC1tIHVwZGF0ZSBmaWxlICYmCisJCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwkJZ2l0IGJyYW5jaCAtLXRyYWNrIG9jdG9wdXMgb3JpZ2luL21hc3RlciAmJgorCQlnaXQgYnJhbmNoIC0tdHJhY2sgcmViYXNlIG9yaWdpbi9tYXN0ZXIgJiYKKwkJZ2l0IGJyYW5jaCAtZCAtciBvcmlnaW4vbWFzdGVyICYmCisJCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLnR3by51cmwgLi4vdHdvICYmCisJCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLnR3by5wdXNodXJsIC4uL3RocmVlICYmCisJCWdpdCBjb25maWcgYnJhbmNoLnJlYmFzZS5yZWJhc2UgdHJ1ZSAmJgorCQlnaXQgY29uZmlnIGJyYW5jaC5vY3RvcHVzLm1lcmdlICJ0b3BpYy1hIHRvcGljLWIgdG9waWMtYyIgJiYKKwkJKAorCQkJY2QgLi4vb25lICYmCisJCQllY2hvIDEgPmZpbGUgJiYKKwkJCXRlc3RfdGljayAmJgorCQkJZ2l0IGNvbW1pdCAtbSB1cGRhdGUgZmlsZQorCQkpICYmCisJCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLm9yaWdpbi5wdXNoIDogJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUub3JpZ2luLnB1c2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbSAmJgorCQlnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vcmlnaW4ucHVzaCArcmVmcy90YWdzL2xhc3RiYWNrdXAgJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2ggK3JlZnMvaGVhZHMvYWhlYWQ6cmVmcy9oZWFkcy9tYXN0ZXIgJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy9hbm90aGVyICYmCisJCWdpdCByZW1vdGUgc2hvdyBvcmlnaW4gdHdvID5vdXRwdXQgJiYKKwkJZ2l0IGJyYW5jaCAtZCByZWJhc2Ugb2N0b3B1cyAmJgorCQl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAorCSkKICcKIAotY2F0ID4gdGVzdC9leHBlY3QgPDwgRU9GCitjYXQgPnRlc3QvZXhwZWN0IDw8RU9GCiAqIHJlbW90ZSBvcmlnaW4KICAgRmV0Y2ggVVJMOiAkKHB3ZCkvb25lCiAgIFB1c2ggIFVSTDogJChwd2QpL29uZQpAQCAtMjE5LDE1MiArMjIwLDE4NyBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3cgLW4nICcKLQkobXYgb25lIG9uZS51bnJlYWNoYWJsZSAmJgotCSBjZCB0ZXN0ICYmCi0JIGdpdCByZW1vdGUgc2hvdyAtbiBvcmlnaW4gPiBvdXRwdXQgJiYKLQkgbXYgLi4vb25lLnVucmVhY2hhYmxlIC4uL29uZSAmJgotCSB0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dCkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJ1bmUnICcKLQkoY2Qgb25lICYmCi0JIGdpdCBicmFuY2ggLW0gc2lkZSBzaWRlMikgJiYKLQkoY2QgdGVzdCAmJgotCSBnaXQgZmV0Y2ggb3JpZ2luICYmCi0JIGdpdCByZW1vdGUgcHJ1bmUgb3JpZ2luICYmCi0JIGdpdCByZXYtcGFyc2UgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlMiAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZSkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0LWhlYWQgLS1kZWxldGUnICcKLQkoY2QgdGVzdCAmJgotCSBnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vSEVBRCAmJgotCSBnaXQgcmVtb3RlIHNldC1oZWFkIC0tZGVsZXRlIG9yaWdpbiAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vSEVBRCkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0LWhlYWQgLS1hdXRvJyAnCi0JKGNkIHRlc3QgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtaGVhZCAtLWF1dG8gb3JpZ2luICYmCi0JIGVjaG8gcmVmcy9yZW1vdGVzL29yaWdpbi9tYXN0ZXIgPmV4cGVjdCAmJgotCSBnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vSEVBRCA+b3V0cHV0ICYmCi0JIHRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwltdiBvbmUgb25lLnVucmVhY2hhYmxlICYmCisJKAorCQljZCB0ZXN0ICYmCisJCWdpdCByZW1vdGUgc2hvdyAtbiBvcmlnaW4gPm91dHB1dCAmJgorCQltdiAuLi9vbmUudW5yZWFjaGFibGUgLi4vb25lICYmCisJCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAJKQogJwogCi1jYXQgPnRlc3QvZXhwZWN0IDw8RU9GCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcnVuZScgJworCSgKKwkJY2Qgb25lICYmCisJCWdpdCBicmFuY2ggLW0gc2lkZSBzaWRlMgorCSkgJiYKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IGZldGNoIG9yaWdpbiAmJgorCQlnaXQgcmVtb3RlIHBydW5lIG9yaWdpbiAmJgorCQlnaXQgcmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSByZWZzL3JlbW90ZXMvb3JpZ2luL3NpZGUKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldC1oZWFkIC0tZGVsZXRlJyAnCisJKAorCQljZCB0ZXN0ICYmCisJCWdpdCBzeW1ib2xpYy1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEICYmCisJCWdpdCByZW1vdGUgc2V0LWhlYWQgLS1kZWxldGUgb3JpZ2luICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBzeW1ib2xpYy1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFECisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXQtaGVhZCAtLWF1dG8nICcKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IHJlbW90ZSBzZXQtaGVhZCAtLWF1dG8gb3JpZ2luICYmCisJCWVjaG8gcmVmcy9yZW1vdGVzL29yaWdpbi9tYXN0ZXIgPmV4cGVjdCAmJgorCQlnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vSEVBRCA+b3V0cHV0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCisnCisKK2NhdCA+dGVzdC9leHBlY3QgPDxcRU9GCiBlcnJvcjogTXVsdGlwbGUgcmVtb3RlIEhFQUQgYnJhbmNoZXMuIFBsZWFzZSBjaG9vc2Ugb25lIGV4cGxpY2l0bHkgd2l0aDoKICAgZ2l0IHJlbW90ZSBzZXQtaGVhZCB0d28gYW5vdGhlcgogICBnaXQgcmVtb3RlIHNldC1oZWFkIHR3byBtYXN0ZXIKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXQtaGVhZCAtLWF1dG8gZmFpbHMgdy9tdWx0aXBsZSBIRUFEcycgJwotCShjZCB0ZXN0ICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZW1vdGUgc2V0LWhlYWQgLS1hdXRvIHR3byA+b3V0cHV0IDI+JjEgJiYKLQl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dCkKKwkoCisJCWNkIHRlc3QgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlbW90ZSBzZXQtaGVhZCAtLWF1dG8gdHdvID5vdXRwdXQgMj4mMSAmJgorCQl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAorCSkKICcKIAotY2F0ID50ZXN0L2V4cGVjdCA8PEVPRgorY2F0ID50ZXN0L2V4cGVjdCA8PFxFT0YKIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXQtaGVhZCBleHBsaWNpdCcgJwotCShjZCB0ZXN0ICYmCi0JIGdpdCByZW1vdGUgc2V0LWhlYWQgb3JpZ2luIHNpZGUyICYmCi0JIGdpdCBzeW1ib2xpYy1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEID5vdXRwdXQgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtaGVhZCBvcmlnaW4gbWFzdGVyICYmCi0JIHRlc3RfY21wIGV4cGVjdCBvdXRwdXQpCisJKAorCQljZCB0ZXN0ICYmCisJCWdpdCByZW1vdGUgc2V0LWhlYWQgb3JpZ2luIHNpZGUyICYmCisJCWdpdCBzeW1ib2xpYy1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEID5vdXRwdXQgJiYKKwkJZ2l0IHJlbW90ZSBzZXQtaGVhZCBvcmlnaW4gbWFzdGVyICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCiAnCiAKLWNhdCA+IHRlc3QvZXhwZWN0IDw8IEVPRgorY2F0ID50ZXN0L2V4cGVjdCA8PEVPRgogUHJ1bmluZyBvcmlnaW4KIFVSTDogJChwd2QpL29uZQogICogW3dvdWxkIHBydW5lXSBvcmlnaW4vc2lkZTIKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcnVuZSAtLWRyeS1ydW4nICcKLQkoY2Qgb25lICYmCi0JIGdpdCBicmFuY2ggLW0gc2lkZTIgc2lkZSkgJiYKLQkoY2QgdGVzdCAmJgotCSBnaXQgcmVtb3RlIHBydW5lIC0tZHJ5LXJ1biBvcmlnaW4gPiBvdXRwdXQgJiYKLQkgZ2l0IHJldi1wYXJzZSByZWZzL3JlbW90ZXMvb3JpZ2luL3NpZGUyICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlICYmCi0JKGNkIC4uL29uZSAmJgotCSBnaXQgYnJhbmNoIC1tIHNpZGUgc2lkZTIpICYmCi0JIHRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0KQorCSgKKwkJY2Qgb25lICYmCisJCWdpdCBicmFuY2ggLW0gc2lkZTIgc2lkZSkgJiYKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IHJlbW90ZSBwcnVuZSAtLWRyeS1ydW4gb3JpZ2luID5vdXRwdXQgJiYKKwkJZ2l0IHJldi1wYXJzZSByZWZzL3JlbW90ZXMvb3JpZ2luL3NpZGUyICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlICYmCisJKAorCQljZCAuLi9vbmUgJiYKKwkJZ2l0IGJyYW5jaCAtbSBzaWRlIHNpZGUyKSAmJgorCQl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkIC0tbWlycm9yICYmIHBydW5lJyAnCi0JKG1rZGlyIG1pcnJvciAmJgotCSBjZCBtaXJyb3IgJiYKLQkgZ2l0IGluaXQgLS1iYXJlICYmCi0JIGdpdCByZW1vdGUgYWRkIC0tbWlycm9yIC1mIG9yaWdpbiAuLi9vbmUpICYmCi0JKGNkIG9uZSAmJgotCSBnaXQgYnJhbmNoIC1tIHNpZGUyIHNpZGUpICYmCi0JKGNkIG1pcnJvciAmJgotCSBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvc2lkZTIgJiYKLQkgdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3NpZGUgJiYKLQkgZ2l0IGZldGNoIG9yaWdpbiAmJgotCSBnaXQgcmVtb3RlIHBydW5lIG9yaWdpbiAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvc2lkZTIgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3NpZGUpCisJbWtkaXIgbWlycm9yICYmCisJKAorCQljZCBtaXJyb3IgJiYKKwkJZ2l0IGluaXQgLS1iYXJlICYmCisJCWdpdCByZW1vdGUgYWRkIC0tbWlycm9yIC1mIG9yaWdpbiAuLi9vbmUKKwkpICYmCisJKAorCQljZCBvbmUgJiYKKwkJZ2l0IGJyYW5jaCAtbSBzaWRlMiBzaWRlCisJKSAmJgorCSgKKwkJY2QgbWlycm9yICYmCisJCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9zaWRlMiAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvc2lkZSAmJgorCQlnaXQgZmV0Y2ggb3JpZ2luICYmCisJCWdpdCByZW1vdGUgcHJ1bmUgb3JpZ2luICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9zaWRlMiAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvc2lkZQorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkIC0tbWlycm9yPWZldGNoJyAnCiAJbWtkaXIgbWlycm9yLWZldGNoICYmCiAJZ2l0IGluaXQgbWlycm9yLWZldGNoL3BhcmVudCAmJgotCShjZCBtaXJyb3ItZmV0Y2gvcGFyZW50ICYmCi0JIHRlc3RfY29tbWl0IG9uZSkgJiYKKwkoCisJCWNkIG1pcnJvci1mZXRjaC9wYXJlbnQgJiYKKwkJdGVzdF9jb21taXQgb25lCisJKSAmJgogCWdpdCBpbml0IC0tYmFyZSBtaXJyb3ItZmV0Y2gvY2hpbGQgJiYKLQkoY2QgbWlycm9yLWZldGNoL2NoaWxkICYmCi0JIGdpdCByZW1vdGUgYWRkIC0tbWlycm9yPWZldGNoIC1mIHBhcmVudCAuLi9wYXJlbnQpCisJKAorCQljZCBtaXJyb3ItZmV0Y2gvY2hpbGQgJiYKKwkJZ2l0IHJlbW90ZSBhZGQgLS1taXJyb3I9ZmV0Y2ggLWYgcGFyZW50IC4uL3BhcmVudAorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggbWlycm9ycyBhY3QgYXMgbWlycm9ycyBkdXJpbmcgZmV0Y2gnICcKLQkoY2QgbWlycm9yLWZldGNoL3BhcmVudCAmJgotCSBnaXQgYnJhbmNoIG5ldyAmJgotCSBnaXQgYnJhbmNoIC1tIG1hc3RlciByZW5hbWVkCisJKAorCQljZCBtaXJyb3ItZmV0Y2gvcGFyZW50ICYmCisJCWdpdCBicmFuY2ggbmV3ICYmCisJCWdpdCBicmFuY2ggLW0gbWFzdGVyIHJlbmFtZWQKIAkpICYmCi0JKGNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgotCSBnaXQgZmV0Y2ggcGFyZW50ICYmCi0JIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9uZXcgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQKKwkoCisJCWNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgorCQlnaXQgZmV0Y2ggcGFyZW50ICYmCisJCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9uZXcgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIG1pcnJvcnMgY2FuIHBydW5lJyAnCi0JKGNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgotCSBnaXQgcmVtb3RlIHBydW5lIHBhcmVudCAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvbWFzdGVyCisJKAorCQljZCBtaXJyb3ItZmV0Y2gvY2hpbGQgJiYKKwkJZ2l0IHJlbW90ZSBwcnVuZSBwYXJlbnQgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL21hc3RlcgogCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggbWlycm9ycyBkbyBub3QgYWN0IGFzIG1pcnJvcnMgZHVyaW5nIHB1c2gnICcKLQkoY2QgbWlycm9yLWZldGNoL3BhcmVudCAmJgotCSBnaXQgY2hlY2tvdXQgSEVBRF4wCisJKAorCQljZCBtaXJyb3ItZmV0Y2gvcGFyZW50ICYmCisJCWdpdCBjaGVja291dCBIRUFEXjAKIAkpICYmCi0JKGNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgotCSBnaXQgYnJhbmNoIC1tIHJlbmFtZWQgcmVuYW1lZDIgJiYKLQkgZ2l0IHB1c2ggcGFyZW50IDoKKwkoCisJCWNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgorCQlnaXQgYnJhbmNoIC1tIHJlbmFtZWQgcmVuYW1lZDIgJiYKKwkJZ2l0IHB1c2ggcGFyZW50IDoKIAkpICYmCi0JKGNkIG1pcnJvci1mZXRjaC9wYXJlbnQgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZW5hbWVkICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9yZW5hbWVkMgorCSgKKwkJY2QgbWlycm9yLWZldGNoL3BhcmVudCAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlbmFtZWQgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQyCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGQgZmV0Y2ggbWlycm9yIHdpdGggc3BlY2lmaWMgYnJhbmNoZXMnICcKIAlnaXQgaW5pdCAtLWJhcmUgbWlycm9yLWZldGNoL3RyYWNrICYmCi0JKGNkIG1pcnJvci1mZXRjaC90cmFjayAmJgotCSBnaXQgcmVtb3RlIGFkZCAtLW1pcnJvcj1mZXRjaCAtdCBoZWFkcy9uZXcgcGFyZW50IC4uL3BhcmVudAorCSgKKwkJY2QgbWlycm9yLWZldGNoL3RyYWNrICYmCisJCWdpdCByZW1vdGUgYWRkIC0tbWlycm9yPWZldGNoIC10IGhlYWRzL25ldyBwYXJlbnQgLi4vcGFyZW50CiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCBtaXJyb3IgcmVzcGVjdHMgc3BlY2lmaWMgYnJhbmNoZXMnICcKLQkoY2QgbWlycm9yLWZldGNoL3RyYWNrICYmCi0JIGdpdCBmZXRjaCBwYXJlbnQgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL25ldyAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvcmVuYW1lZAorCSgKKwkJY2QgbWlycm9yLWZldGNoL3RyYWNrICYmCisJCWdpdCBmZXRjaCBwYXJlbnQgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL25ldyAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvcmVuYW1lZAogCSkKICcKIApAQCAtMzcyLDYwICs0MDgsNzIgQEAKIAlta2RpciBtaXJyb3ItcHVzaCAmJgogCWdpdCBpbml0IC0tYmFyZSBtaXJyb3ItcHVzaC9wdWJsaWMgJiYKIAlnaXQgaW5pdCBtaXJyb3ItcHVzaC9wcml2YXRlICYmCi0JKGNkIG1pcnJvci1wdXNoL3ByaXZhdGUgJiYKLQkgdGVzdF9jb21taXQgb25lICYmCi0JIGdpdCByZW1vdGUgYWRkIC0tbWlycm9yPXB1c2ggcHVibGljIC4uL3B1YmxpYworCSgKKwkJY2QgbWlycm9yLXB1c2gvcHJpdmF0ZSAmJgorCQl0ZXN0X2NvbW1pdCBvbmUgJiYKKwkJZ2l0IHJlbW90ZSBhZGQgLS1taXJyb3I9cHVzaCBwdWJsaWMgLi4vcHVibGljCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIG1pcnJvcnMgYWN0IGFzIG1pcnJvcnMgZHVyaW5nIHB1c2gnICcKLQkoY2QgbWlycm9yLXB1c2gvcHJpdmF0ZSAmJgotCSBnaXQgYnJhbmNoIG5ldyAmJgotCSBnaXQgYnJhbmNoIC1tIG1hc3RlciByZW5hbWVkICYmCi0JIGdpdCBwdXNoIHB1YmxpYworCSgKKwkJY2QgbWlycm9yLXB1c2gvcHJpdmF0ZSAmJgorCQlnaXQgYnJhbmNoIG5ldyAmJgorCQlnaXQgYnJhbmNoIC1tIG1hc3RlciByZW5hbWVkICYmCisJCWdpdCBwdXNoIHB1YmxpYwogCSkgJiYKLQkoY2QgbWlycm9yLXB1c2gvcHJpdmF0ZSAmJgotCSBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvbmV3ICYmCi0JIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9yZW5hbWVkICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9tYXN0ZXIKKwkoCisJCWNkIG1pcnJvci1wdXNoL3ByaXZhdGUgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL25ldyAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvcmVuYW1lZCAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvbWFzdGVyCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIG1pcnJvcnMgZG8gbm90IGFjdCBhcyBtaXJyb3JzIGR1cmluZyBmZXRjaCcgJwotCShjZCBtaXJyb3ItcHVzaC9wdWJsaWMgJiYKLQkgZ2l0IGJyYW5jaCAtbSByZW5hbWVkIHJlbmFtZWQyICYmCi0JIGdpdCBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzL3JlbmFtZWQyCisJKAorCQljZCBtaXJyb3ItcHVzaC9wdWJsaWMgJiYKKwkJZ2l0IGJyYW5jaCAtbSByZW5hbWVkIHJlbmFtZWQyICYmCisJCWdpdCBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzL3JlbmFtZWQyCiAJKSAmJgotCShjZCBtaXJyb3ItcHVzaC9wcml2YXRlICYmCi0JIGdpdCBmZXRjaCBwdWJsaWMgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQgJiYKLQkgdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQyCisJKAorCQljZCBtaXJyb3ItcHVzaC9wcml2YXRlICYmCisJCWdpdCBmZXRjaCBwdWJsaWMgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQyCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIG1pcnJvcnMgZG8gbm90IGFsbG93IHlvdSB0byBzcGVjaWZ5IHJlZnMnICcKIAlnaXQgaW5pdCBtaXJyb3ItcHVzaC90cmFjayAmJgotCShjZCBtaXJyb3ItcHVzaC90cmFjayAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmVtb3RlIGFkZCAtLW1pcnJvcj1wdXNoIC10IG5ldyBwdWJsaWMgLi4vcHVibGljCisJKAorCQljZCBtaXJyb3ItcHVzaC90cmFjayAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmVtb3RlIGFkZCAtLW1pcnJvcj1wdXNoIC10IG5ldyBwdWJsaWMgLi4vcHVibGljCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGQgYWx0ICYmIHBydW5lJyAnCi0JKG1rZGlyIGFsdHRzdCAmJgotCSBjZCBhbHR0c3QgJiYKLQkgZ2l0IGluaXQgJiYKLQkgZ2l0IHJlbW90ZSBhZGQgLWYgb3JpZ2luIC4uL29uZSAmJgotCSBnaXQgY29uZmlnIHJlbW90ZS5hbHQudXJsIC4uL29uZSAmJgotCSBnaXQgY29uZmlnIHJlbW90ZS5hbHQuZmV0Y2ggIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qIikgJiYKLQkoY2Qgb25lICYmCi0JIGdpdCBicmFuY2ggLW0gc2lkZSBzaWRlMikgJiYKLQkoY2QgYWx0dHN0ICYmCi0JIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlMiAmJgotCSBnaXQgZmV0Y2ggYWx0ICYmCi0JIGdpdCByZW1vdGUgcHJ1bmUgYWx0ICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlICYmCi0JIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlMikKKwlta2RpciBhbHR0c3QgJiYKKwkoCisJCWNkIGFsdHRzdCAmJgorCQlnaXQgaW5pdCAmJgorCQlnaXQgcmVtb3RlIGFkZCAtZiBvcmlnaW4gLi4vb25lICYmCisJCWdpdCBjb25maWcgcmVtb3RlLmFsdC51cmwgLi4vb25lICYmCisJCWdpdCBjb25maWcgcmVtb3RlLmFsdC5mZXRjaCAiK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLyoiCisJKSAmJgorCSgKKwkJY2Qgb25lICYmCisJCWdpdCBicmFuY2ggLW0gc2lkZSBzaWRlMgorCSkgJiYKKwkoCisJCWNkIGFsdHRzdCAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZSAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIgJiYKKwkJZ2l0IGZldGNoIGFsdCAmJgorCQlnaXQgcmVtb3RlIHBydW5lIGFsdCAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZSAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIKKwkpCiAnCiAKIGNhdCA+dGVzdC9leHBlY3QgPDxcRU9GCkBAIC00MzMsMjAgKzQ4MSwyNCBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FkZCB3aXRoIHJlYWNoYWJsZSB0YWdzIChkZWZhdWx0KScgJwotCShjZCBvbmUgJiYKLQkgPmZvb2JhciAmJgotCSBnaXQgYWRkIGZvb2JhciAmJgotCSBnaXQgY29tbWl0IC1tICJGb29iYXIiICYmCi0JIGdpdCB0YWcgLWEgLW0gIkZvb2JhciB0YWciIGZvb2Jhci10YWcgJiYKLQkgZ2l0IHJlc2V0IC0taGFyZCBIRUFEfjEgJiYKLQkgZ2l0IHRhZyAtYSAtbSAiU29tZSB0YWciIHNvbWUtdGFnKSAmJgotCShta2RpciBhZGQtdGFncyAmJgotCSBjZCBhZGQtdGFncyAmJgotCSBnaXQgaW5pdCAmJgotCSBnaXQgcmVtb3RlIGFkZCAtZiBvcmlnaW4gLi4vb25lICYmCi0JIGdpdCB0YWcgLWwgc29tZS10YWcgPi4uL3Rlc3Qvb3V0cHV0ICYmCi0JIGdpdCB0YWcgLWwgZm9vYmFyLXRhZyA+Pi4uL3Rlc3Qvb3V0cHV0ICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi50YWdvcHQpICYmCisJKAorCQljZCBvbmUgJiYKKwkJPmZvb2JhciAmJgorCQlnaXQgYWRkIGZvb2JhciAmJgorCQlnaXQgY29tbWl0IC1tICJGb29iYXIiICYmCisJCWdpdCB0YWcgLWEgLW0gIkZvb2JhciB0YWciIGZvb2Jhci10YWcgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCBIRUFEfjEgJiYKKwkJZ2l0IHRhZyAtYSAtbSAiU29tZSB0YWciIHNvbWUtdGFnCisJKSAmJgorCW1rZGlyIGFkZC10YWdzICYmCisJKAorCQljZCBhZGQtdGFncyAmJgorCQlnaXQgaW5pdCAmJgorCQlnaXQgcmVtb3RlIGFkZCAtZiBvcmlnaW4gLi4vb25lICYmCisJCWdpdCB0YWcgLWwgc29tZS10YWcgPi4uL3Rlc3Qvb3V0cHV0ICYmCisJCWdpdCB0YWcgLWwgZm9vYmFyLXRhZyA+Pi4uL3Rlc3Qvb3V0cHV0ICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi50YWdvcHQKKwkpICYmCiAJdGVzdF9jbXAgdGVzdC9leHBlY3QgdGVzdC9vdXRwdXQKICcKIApAQCAtNDU3LDE0ICs1MDksMTYgQEAKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGQgLS10YWdzJyAnCi0JKHJtIC1yZiBhZGQtdGFncyAmJgotCSBta2RpciBhZGQtdGFncyAmJgotCSBjZCBhZGQtdGFncyAmJgotCSBnaXQgaW5pdCAmJgotCSBnaXQgcmVtb3RlIGFkZCAtZiAtLXRhZ3Mgb3JpZ2luIC4uL29uZSAmJgotCSBnaXQgdGFnIC1sIHNvbWUtdGFnID4uLi90ZXN0L291dHB1dCAmJgotCSBnaXQgdGFnIC1sIGZvb2Jhci10YWcgPj4uLi90ZXN0L291dHB1dCAmJgotCSBnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udGFnb3B0ID4+Li4vdGVzdC9vdXRwdXQpICYmCisJcm0gLXJmIGFkZC10YWdzICYmCisJKAorCQlta2RpciBhZGQtdGFncyAmJgorCQljZCBhZGQtdGFncyAmJgorCQlnaXQgaW5pdCAmJgorCQlnaXQgcmVtb3RlIGFkZCAtZiAtLXRhZ3Mgb3JpZ2luIC4uL29uZSAmJgorCQlnaXQgdGFnIC1sIHNvbWUtdGFnID4uLi90ZXN0L291dHB1dCAmJgorCQlnaXQgdGFnIC1sIGZvb2Jhci10YWcgPj4uLi90ZXN0L291dHB1dCAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udGFnb3B0ID4+Li4vdGVzdC9vdXRwdXQKKwkpICYmCiAJdGVzdF9jbXAgdGVzdC9leHBlY3QgdGVzdC9vdXRwdXQKICcKIApAQCAtNDczLDI1ICs1MjcsMzEgQEAKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGQgLS1uby10YWdzJyAnCi0JKHJtIC1yZiBhZGQtdGFncyAmJgotCSBta2RpciBhZGQtbm8tdGFncyAmJgotCSBjZCBhZGQtbm8tdGFncyAmJgotCSBnaXQgaW5pdCAmJgotCSBnaXQgcmVtb3RlIGFkZCAtZiAtLW5vLXRhZ3Mgb3JpZ2luIC4uL29uZSAmJgotCSBnaXQgdGFnIC1sIHNvbWUtdGFnID4uLi90ZXN0L291dHB1dCAmJgotCSBnaXQgdGFnIC1sIGZvb2Jhci10YWcgPi4uL3Rlc3Qvb3V0cHV0ICYmCi0JIGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi50YWdvcHQgPj4uLi90ZXN0L291dHB1dCkgJiYKLQkoY2Qgb25lICYmCi0JIGdpdCB0YWcgLWQgc29tZS10YWcgZm9vYmFyLXRhZykgJiYKKwlybSAtcmYgYWRkLXRhZ3MgJiYKKwkoCisJCW1rZGlyIGFkZC1uby10YWdzICYmCisJCWNkIGFkZC1uby10YWdzICYmCisJCWdpdCBpbml0ICYmCisJCWdpdCByZW1vdGUgYWRkIC1mIC0tbm8tdGFncyBvcmlnaW4gLi4vb25lICYmCisJCWdpdCB0YWcgLWwgc29tZS10YWcgPi4uL3Rlc3Qvb3V0cHV0ICYmCisJCWdpdCB0YWcgLWwgZm9vYmFyLXRhZyA+Li4vdGVzdC9vdXRwdXQgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnRhZ29wdCA+Pi4uL3Rlc3Qvb3V0cHV0CisJKSAmJgorCSgKKwkJY2Qgb25lICYmCisJCWdpdCB0YWcgLWQgc29tZS10YWcgZm9vYmFyLXRhZworCSkgJiYKIAl0ZXN0X2NtcCB0ZXN0L2V4cGVjdCB0ZXN0L291dHB1dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWplY3QgLS1uby1uby10YWdzJyAnCi0JKGNkIGFkZC1uby10YWdzICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZW1vdGUgYWRkIC1mIC0tbm8tbm8tdGFncyBuZXdvcmlnaW4gLi4vb25lKQorCSgKKwkJY2QgYWRkLW5vLXRhZ3MgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlbW90ZSBhZGQgLWYgLS1uby1uby10YWdzIG5ld29yaWdpbiAuLi9vbmUKKwkpCiAnCiAKLWNhdCA+IG9uZS9leHBlY3QgPDwgRU9GCitjYXQgPm9uZS9leHBlY3QgPDxcRU9GCiAgIGFwaXMvbWFzdGVyCiAgIGFwaXMvc2lkZQogICBkcm9zb3BoaWxhL2Fub3RoZXIKQEAgLTUwMCwxNyArNTYwLDE3IEBACiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlJyAnCi0KLQkoY2Qgb25lICYmCi0JIGdpdCByZW1vdGUgYWRkIGRyb3NvcGhpbGEgLi4vdHdvICYmCi0JIGdpdCByZW1vdGUgYWRkIGFwaXMgLi4vbWlycm9yICYmCi0JIGdpdCByZW1vdGUgdXBkYXRlICYmCi0JIGdpdCBicmFuY2ggLXIgPiBvdXRwdXQgJiYKLQkgdGVzdF9jbXAgZXhwZWN0IG91dHB1dCkKLQorCSgKKwkJY2Qgb25lICYmCisJCWdpdCByZW1vdGUgYWRkIGRyb3NvcGhpbGEgLi4vdHdvICYmCisJCWdpdCByZW1vdGUgYWRkIGFwaXMgLi4vbWlycm9yICYmCisJCWdpdCByZW1vdGUgdXBkYXRlICYmCisJCWdpdCBicmFuY2ggLXIgPm91dHB1dCAmJgorCQl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CisJKQogJwogCi1jYXQgPiBvbmUvZXhwZWN0IDw8IEVPRgorY2F0ID5vbmUvZXhwZWN0IDw8XEVPRgogICBkcm9zb3BoaWxhL2Fub3RoZXIKICAgZHJvc29waGlsYS9tYXN0ZXIKICAgZHJvc29waGlsYS9zaWRlCkBAIC01MjEsMzQgKzU4MSw0MCBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSB3aXRoIGFyZ3VtZW50cycgJwotCi0JKGNkIG9uZSAmJgotCSBmb3IgYiBpbiAkKGdpdCBicmFuY2ggLXIpCi0JIGRvCisJKAorCQljZCBvbmUgJiYKKwkJZm9yIGIgaW4gJChnaXQgYnJhbmNoIC1yKQorCQlkbwogCQlnaXQgYnJhbmNoIC1yIC1kICRiIHx8IGJyZWFrCi0JIGRvbmUgJiYKLQkgZ2l0IHJlbW90ZSBhZGQgbWFuZHVjYSAuLi9taXJyb3IgJiYKLQkgZ2l0IHJlbW90ZSBhZGQgbWVnYWxvcHJlcHVzIC4uL21pcnJvciAmJgotCSBnaXQgY29uZmlnIHJlbW90ZXMucGhvYmFldGljdXMgImRyb3NvcGhpbGEgbWVnYWxvcHJlcHVzIiAmJgotCSBnaXQgY29uZmlnIHJlbW90ZXMudGl0YW51cyBtYW5kdWNhICYmCi0JIGdpdCByZW1vdGUgdXBkYXRlIHBob2JhZXRpY3VzIHRpdGFudXMgJiYKLQkgZ2l0IGJyYW5jaCAtciA+IG91dHB1dCAmJgotCSB0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0KQotCisJCWRvbmUgJiYKKwkJZ2l0IHJlbW90ZSBhZGQgbWFuZHVjYSAuLi9taXJyb3IgJiYKKwkJZ2l0IHJlbW90ZSBhZGQgbWVnYWxvcHJlcHVzIC4uL21pcnJvciAmJgorCQlnaXQgY29uZmlnIHJlbW90ZXMucGhvYmFldGljdXMgImRyb3NvcGhpbGEgbWVnYWxvcHJlcHVzIiAmJgorCQlnaXQgY29uZmlnIHJlbW90ZXMudGl0YW51cyBtYW5kdWNhICYmCisJCWdpdCByZW1vdGUgdXBkYXRlIHBob2JhZXRpY3VzIHRpdGFudXMgJiYKKwkJZ2l0IGJyYW5jaCAtciA+b3V0cHV0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSAtLXBydW5lJyAnCi0KLQkoY2Qgb25lICYmCi0JIGdpdCBicmFuY2ggLW0gc2lkZTIgc2lkZTMpICYmCi0JKGNkIHRlc3QgJiYKLQkgZ2l0IHJlbW90ZSB1cGRhdGUgLS1wcnVuZSAmJgotCSAoY2QgLi4vb25lICYmIGdpdCBicmFuY2ggLW0gc2lkZTMgc2lkZTIpICYmCi0JIGdpdCByZXYtcGFyc2UgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlMyAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIpCisJKAorCQljZCBvbmUgJiYKKwkJZ2l0IGJyYW5jaCAtbSBzaWRlMiBzaWRlMworCSkgJiYKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IHJlbW90ZSB1cGRhdGUgLS1wcnVuZSAmJgorCQkoCisJCQljZCAuLi9vbmUgJiYKKwkJCWdpdCBicmFuY2ggLW0gc2lkZTMgc2lkZTIKKwkJKSAmJgorCQlnaXQgcmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTMgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSByZWZzL3JlbW90ZXMvb3JpZ2luL3NpZGUyCisJKQogJwogCi1jYXQgPiBvbmUvZXhwZWN0IDw8IEVPRgorY2F0ID5vbmUvZXhwZWN0IDw8LVxFT0YKICAgYXBpcy9tYXN0ZXIKICAgYXBpcy9zaWRlCiAgIG1hbmR1Y2EvbWFzdGVyCkBAIC01NTgsMTc2ICs2MjQsMjA0IEBACiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGRlZmF1bHQnICcKLQotCShjZCBvbmUgJiYKLQkgZm9yIGIgaW4gJChnaXQgYnJhbmNoIC1yKQotCSBkbworCSgKKwkJY2Qgb25lICYmCisJCWZvciBiIGluICQoZ2l0IGJyYW5jaCAtcikKKwkJZG8KIAkJZ2l0IGJyYW5jaCAtciAtZCAkYiB8fCBicmVhawotCSBkb25lICYmCi0JIGdpdCBjb25maWcgcmVtb3RlLmRyb3NvcGhpbGEuc2tpcERlZmF1bHRVcGRhdGUgdHJ1ZSAmJgotCSBnaXQgcmVtb3RlIHVwZGF0ZSBkZWZhdWx0ICYmCi0JIGdpdCBicmFuY2ggLXIgPiBvdXRwdXQgJiYKLQkgdGVzdF9jbXAgZXhwZWN0IG91dHB1dCkKLQorCQlkb25lICYmCisJCWdpdCBjb25maWcgcmVtb3RlLmRyb3NvcGhpbGEuc2tpcERlZmF1bHRVcGRhdGUgdHJ1ZSAmJgorCQlnaXQgcmVtb3RlIHVwZGF0ZSBkZWZhdWx0ICYmCisJCWdpdCBicmFuY2ggLXIgPm91dHB1dCAmJgorCQl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CisJKQogJwogCi1jYXQgPiBvbmUvZXhwZWN0IDw8IEVPRgorY2F0ID5vbmUvZXhwZWN0IDw8XEVPRgogICBkcm9zb3BoaWxhL2Fub3RoZXIKICAgZHJvc29waGlsYS9tYXN0ZXIKICAgZHJvc29waGlsYS9zaWRlCiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGRlZmF1bHQgKG92ZXJyaWRkZW4sIHdpdGggZnVubnkgd2hpdGVzcGFjZSknICcKLQotCShjZCBvbmUgJiYKLQkgZm9yIGIgaW4gJChnaXQgYnJhbmNoIC1yKQotCSBkbworCSgKKwkJY2Qgb25lICYmCisJCWZvciBiIGluICQoZ2l0IGJyYW5jaCAtcikKKwkJZG8KIAkJZ2l0IGJyYW5jaCAtciAtZCAkYiB8fCBicmVhawotCSBkb25lICYmCi0JIGdpdCBjb25maWcgcmVtb3Rlcy5kZWZhdWx0ICIkKHByaW50ZiAiXHQgZHJvc29waGlsYSAgXG4iKSIgJiYKLQkgZ2l0IHJlbW90ZSB1cGRhdGUgZGVmYXVsdCAmJgotCSBnaXQgYnJhbmNoIC1yID4gb3V0cHV0ICYmCi0JIHRlc3RfY21wIGV4cGVjdCBvdXRwdXQpCi0KKwkJZG9uZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZXMuZGVmYXVsdCAiJChwcmludGYgIlx0IGRyb3NvcGhpbGEgIFxuIikiICYmCisJCWdpdCByZW1vdGUgdXBkYXRlIGRlZmF1bHQgJiYKKwkJZ2l0IGJyYW5jaCAtciA+b3V0cHV0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSAod2l0aCByZW1vdGVzLmRlZmF1bHQgZGVmaW5lZCknICcKLQotCShjZCBvbmUgJiYKLQkgZm9yIGIgaW4gJChnaXQgYnJhbmNoIC1yKQotCSBkbworCSgKKwkJY2Qgb25lICYmCisJCWZvciBiIGluICQoZ2l0IGJyYW5jaCAtcikKKwkJZG8KIAkJZ2l0IGJyYW5jaCAtciAtZCAkYiB8fCBicmVhawotCSBkb25lICYmCi0JIGdpdCBjb25maWcgcmVtb3Rlcy5kZWZhdWx0ICJkcm9zb3BoaWxhIiAmJgotCSBnaXQgcmVtb3RlIHVwZGF0ZSAmJgotCSBnaXQgYnJhbmNoIC1yID4gb3V0cHV0ICYmCi0JIHRlc3RfY21wIGV4cGVjdCBvdXRwdXQpCi0KKwkJZG9uZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZXMuZGVmYXVsdCAiZHJvc29waGlsYSIgJiYKKwkJZ2l0IHJlbW90ZSB1cGRhdGUgJiYKKwkJZ2l0IGJyYW5jaCAtciA+b3V0cHV0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJyZW1vdGUgc2hvdyIgZG9lcyBub3Qgc2hvdyBzeW1ib2xpYyByZWZzJyAnCi0KIAlnaXQgY2xvbmUgb25lIHRocmVlICYmCi0JKGNkIHRocmVlICYmCi0JIGdpdCByZW1vdGUgc2hvdyBvcmlnaW4gPiBvdXRwdXQgJiYKLQkgISBncmVwICJeICpIRUFEJCIgPCBvdXRwdXQgJiYKLQkgISBncmVwIC1pIHN0YWxlIDwgb3V0cHV0KQotCisJKAorCQljZCB0aHJlZSAmJgorCQlnaXQgcmVtb3RlIHNob3cgb3JpZ2luID5vdXRwdXQgJiYKKwkJISBncmVwICJeICpIRUFEJCIgPCBvdXRwdXQgJiYKKwkJISBncmVwIC1pIHN0YWxlIDwgb3V0cHV0CisJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWplY3QgYWRkaW5nIHJlbW90ZSB3aXRoIGFuIGludmFsaWQgbmFtZScgJwotCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlbW90ZSBhZGQgc29tZTp1cmwgZGVzaXJlZC1uYW1lCi0KICcKIAogIyBUaGUgZmlyc3QgdGhyZWUgdGVzdCBpZiB0aGUgdHJhY2tpbmcgYnJhbmNoZXMgYXJlIHByb3Blcmx5IHJlbmFtZWQsCiAjIHRoZSBsYXN0IHR3byBvbmVzIGNoZWNrIGlmIHRoZSBjb25maWcgaXMgdXBkYXRlZC4KIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVuYW1lIGEgcmVtb3RlJyAnCi0KIAlnaXQgY2xvbmUgb25lIGZvdXIgJiYKLQkoY2QgZm91ciAmJgotCSBnaXQgcmVtb3RlIHJlbmFtZSBvcmlnaW4gdXBzdHJlYW0gJiYKLQkgcm1kaXIgLmdpdC9yZWZzL3JlbW90ZXMvb3JpZ2luICYmCi0JIHRlc3QgIiQoZ2l0IHN5bWJvbGljLXJlZiByZWZzL3JlbW90ZXMvdXBzdHJlYW0vSEVBRCkiID0gInJlZnMvcmVtb3Rlcy91cHN0cmVhbS9tYXN0ZXIiICYmCi0JIHRlc3QgIiQoZ2l0IHJldi1wYXJzZSB1cHN0cmVhbS9tYXN0ZXIpIiA9ICIkKGdpdCByZXYtcGFyc2UgbWFzdGVyKSIgJiYKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS51cHN0cmVhbS5mZXRjaCkiID0gIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL3Vwc3RyZWFtLyoiICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSkiID0gInVwc3RyZWFtIikKLQorCSgKKwkJY2QgZm91ciAmJgorCQlnaXQgcmVtb3RlIHJlbmFtZSBvcmlnaW4gdXBzdHJlYW0gJiYKKwkJcm1kaXIgLmdpdC9yZWZzL3JlbW90ZXMvb3JpZ2luICYmCisJCXRlc3QgIiQoZ2l0IHN5bWJvbGljLXJlZiByZWZzL3JlbW90ZXMvdXBzdHJlYW0vSEVBRCkiID0gInJlZnMvcmVtb3Rlcy91cHN0cmVhbS9tYXN0ZXIiICYmCisJCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSB1cHN0cmVhbS9tYXN0ZXIpIiA9ICIkKGdpdCByZXYtcGFyc2UgbWFzdGVyKSIgJiYKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS51cHN0cmVhbS5mZXRjaCkiID0gIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL3Vwc3RyZWFtLyoiICYmCisJCXRlc3QgIiQoZ2l0IGNvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSkiID0gInVwc3RyZWFtIgorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVuYW1lIGRvZXMgbm90IHVwZGF0ZSBhIG5vbi1kZWZhdWx0IGZldGNoIHJlZnNwZWMnICcKLQogCWdpdCBjbG9uZSBvbmUgZm91ci5vbmUgJiYKLQkoY2QgZm91ci5vbmUgJiYKLQkgZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLmZldGNoICtyZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy9vcmlnaW4vKiAmJgotCSBnaXQgcmVtb3RlIHJlbmFtZSBvcmlnaW4gdXBzdHJlYW0gJiYKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS51cHN0cmVhbS5mZXRjaCkiID0gIityZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy9vcmlnaW4vKiIgJiYKLQkgZ2l0IHJldi1wYXJzZSAtcSBvcmlnaW4vbWFzdGVyKQotCisJKAorCQljZCBmb3VyLm9uZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4uZmV0Y2ggK3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzL29yaWdpbi8qICYmCisJCWdpdCByZW1vdGUgcmVuYW1lIG9yaWdpbiB1cHN0cmVhbSAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLnVwc3RyZWFtLmZldGNoKSIgPSAiK3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzL29yaWdpbi8qIiAmJgorCQlnaXQgcmV2LXBhcnNlIC1xIG9yaWdpbi9tYXN0ZXIKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbmFtZSBhIHJlbW90ZSB3aXRoIG5hbWUgcGFydCBvZiBmZXRjaCBzcGVjJyAnCi0KIAlnaXQgY2xvbmUgb25lIGZvdXIudHdvICYmCi0JKGNkIGZvdXIudHdvICYmCi0JIGdpdCByZW1vdGUgcmVuYW1lIG9yaWdpbiByZW1vdGUgJiYKLQkgZ2l0IHJlbW90ZSByZW5hbWUgcmVtb3RlIHVwc3RyZWFtICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUudXBzdHJlYW0uZmV0Y2gpIiA9ICIrcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy91cHN0cmVhbS8qIikKLQorCSgKKwkJY2QgZm91ci50d28gJiYKKwkJZ2l0IHJlbW90ZSByZW5hbWUgb3JpZ2luIHJlbW90ZSAmJgorCQlnaXQgcmVtb3RlIHJlbmFtZSByZW1vdGUgdXBzdHJlYW0gJiYKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS51cHN0cmVhbS5mZXRjaCkiID0gIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL3Vwc3RyZWFtLyoiCisJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW5hbWUgYSByZW1vdGUgd2l0aCBuYW1lIHByZWZpeCBvZiBvdGhlciByZW1vdGUnICcKLQogCWdpdCBjbG9uZSBvbmUgZm91ci50aHJlZSAmJgotCShjZCBmb3VyLnRocmVlICYmCi0JIGdpdCByZW1vdGUgYWRkIG8gZ2l0Oi8vZXhhbXBsZS5jb20vcmVwby5naXQgJiYKLQkgZ2l0IHJlbW90ZSByZW5hbWUgbyB1cHN0cmVhbSAmJgotCSB0ZXN0ICIkKGdpdCByZXYtcGFyc2Ugb3JpZ2luL21hc3RlcikiID0gIiQoZ2l0IHJldi1wYXJzZSBtYXN0ZXIpIikKLQorCSgKKwkJY2QgZm91ci50aHJlZSAmJgorCQlnaXQgcmVtb3RlIGFkZCBvIGdpdDovL2V4YW1wbGUuY29tL3JlcG8uZ2l0ICYmCisJCWdpdCByZW1vdGUgcmVuYW1lIG8gdXBzdHJlYW0gJiYKKwkJdGVzdCAiJChnaXQgcmV2LXBhcnNlIG9yaWdpbi9tYXN0ZXIpIiA9ICIkKGdpdCByZXYtcGFyc2UgbWFzdGVyKSIKKwkpCiAnCiAKLWNhdCA+IHJlbW90ZXNfb3JpZ2luIDw8IEVPRgorY2F0ID5yZW1vdGVzX29yaWdpbiA8PEVPRgogVVJMOiAkKHB3ZCkvb25lCiBQdXNoOiByZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL3Vwc3RyZWFtCitQdXNoOiByZWZzL2hlYWRzL25leHQ6cmVmcy9oZWFkcy91cHN0cmVhbTIKIFB1bGw6IHJlZnMvaGVhZHMvbWFzdGVyOnJlZnMvaGVhZHMvb3JpZ2luCitQdWxsOiByZWZzL2hlYWRzL25leHQ6cmVmcy9oZWFkcy9vcmlnaW4yCiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbWlncmF0ZSBhIHJlbW90ZSBmcm9tIG5hbWVkIGZpbGUgaW4gJEdJVF9ESVIvcmVtb3RlcycgJwogCWdpdCBjbG9uZSBvbmUgZml2ZSAmJgogCW9yaWdpbl91cmw9JChwd2QpL29uZSAmJgotCShjZCBmaXZlICYmCi0JIGdpdCByZW1vdGUgcmVtb3ZlIG9yaWdpbiAmJgotCSBta2RpciAtcCAuZ2l0L3JlbW90ZXMgJiYKLQkgY2F0IC4uL3JlbW90ZXNfb3JpZ2luID4gLmdpdC9yZW1vdGVzL29yaWdpbiAmJgotCSBnaXQgcmVtb3RlIHJlbmFtZSBvcmlnaW4gb3JpZ2luICYmCi0JICEgdGVzdCAtZiAuZ2l0L3JlbW90ZXMvb3JpZ2luICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIiRvcmlnaW5fdXJsIiAmJgotCSB0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi5wdXNoKSIgPSAicmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbSIgJiYKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4uZmV0Y2gpIiA9ICJyZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL29yaWdpbiIpCisJKAorCQljZCBmaXZlICYmCisJCWdpdCByZW1vdGUgcmVtb3ZlIG9yaWdpbiAmJgorCQlta2RpciAtcCAuZ2l0L3JlbW90ZXMgJiYKKwkJY2F0IC4uL3JlbW90ZXNfb3JpZ2luID4uZ2l0L3JlbW90ZXMvb3JpZ2luICYmCisJCWdpdCByZW1vdGUgcmVuYW1lIG9yaWdpbiBvcmlnaW4gJiYKKwkJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZW1vdGVzL29yaWdpbiAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIkb3JpZ2luX3VybCIgJiYKKwkJY2F0ID5wdXNoX2V4cGVjdGVkIDw8LVxFT0YgJiYKKwkJcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbQorCQlyZWZzL2hlYWRzL25leHQ6cmVmcy9oZWFkcy91cHN0cmVhbTIKKwkJRU9GCisJCWNhdCA+ZmV0Y2hfZXhwZWN0ZWQgPDwtXEVPRiAmJgorCQlyZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL29yaWdpbgorCQlyZWZzL2hlYWRzL25leHQ6cmVmcy9oZWFkcy9vcmlnaW4yCisJCUVPRgorCQlnaXQgY29uZmlnIC0tZ2V0LWFsbCByZW1vdGUub3JpZ2luLnB1c2ggPnB1c2hfYWN0dWFsICYmCisJCWdpdCBjb25maWcgLS1nZXQtYWxsIHJlbW90ZS5vcmlnaW4uZmV0Y2ggPmZldGNoX2FjdHVhbCAmJgorCQl0ZXN0X2NtcCBwdXNoX2V4cGVjdGVkIHB1c2hfYWN0dWFsICYmCisJCXRlc3RfY21wIGZldGNoX2V4cGVjdGVkIGZldGNoX2FjdHVhbAorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbWlncmF0ZSBhIHJlbW90ZSBmcm9tIG5hbWVkIGZpbGUgaW4gJEdJVF9ESVIvYnJhbmNoZXMnICcKIAlnaXQgY2xvbmUgb25lIHNpeCAmJgogCW9yaWdpbl91cmw9JChwd2QpL29uZSAmJgotCShjZCBzaXggJiYKLQkgZ2l0IHJlbW90ZSBybSBvcmlnaW4gJiYKLQkgZWNobyAiJG9yaWdpbl91cmwiID4gLmdpdC9icmFuY2hlcy9vcmlnaW4gJiYKLQkgZ2l0IHJlbW90ZSByZW5hbWUgb3JpZ2luIG9yaWdpbiAmJgotCSAhIHRlc3QgLWYgLmdpdC9icmFuY2hlcy9vcmlnaW4gJiYKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiJG9yaWdpbl91cmwiICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLmZldGNoKSIgPSAicmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy9vcmlnaW4iKQorCSgKKwkJY2Qgc2l4ICYmCisJCWdpdCByZW1vdGUgcm0gb3JpZ2luICYmCisJCWVjaG8gIiRvcmlnaW5fdXJsIiA+LmdpdC9icmFuY2hlcy9vcmlnaW4gJiYKKwkJZ2l0IHJlbW90ZSByZW5hbWUgb3JpZ2luIG9yaWdpbiAmJgorCQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L2JyYW5jaGVzL29yaWdpbiAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIkb3JpZ2luX3VybCIgJiYKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4uZmV0Y2gpIiA9ICJyZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL29yaWdpbiIgJiYKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4ucHVzaCkiID0gIkhFQUQ6cmVmcy9oZWFkcy9tYXN0ZXIiCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtaWdyYXRlIGEgcmVtb3RlIGZyb20gbmFtZWQgZmlsZSBpbiAkR0lUX0RJUi9icmFuY2hlcyAoMiknICcKKwlnaXQgY2xvbmUgb25lIHNldmVuICYmCisJKAorCQljZCBzZXZlbiAmJgorCQlnaXQgcmVtb3RlIHJtIG9yaWdpbiAmJgorCQllY2hvICJxdXV4I2Zvb20iID4gLmdpdC9icmFuY2hlcy9vcmlnaW4gJiYKKwkJZ2l0IHJlbW90ZSByZW5hbWUgb3JpZ2luIG9yaWdpbiAmJgorCQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L2JyYW5jaGVzL29yaWdpbiAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICJxdXV4IiAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi5mZXRjaCkiID0gInJlZnMvaGVhZHMvZm9vbTpyZWZzL2hlYWRzL29yaWdpbiIKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4ucHVzaCkiID0gIkhFQUQ6cmVmcy9oZWFkcy9mb29tIgorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIHBydW5lIHRvIGNhdXNlIGEgZGFuZ2xpbmcgc3ltcmVmJyAnCi0JZ2l0IGNsb25lIG9uZSBzZXZlbiAmJgorCWdpdCBjbG9uZSBvbmUgZWlnaHQgJiYKIAkoCiAJCWNkIG9uZSAmJgogCQlnaXQgY2hlY2tvdXQgc2lkZTIgJiYKIAkJZ2l0IGJyYW5jaCAtRCBtYXN0ZXIKIAkpICYmCiAJKAotCQljZCBzZXZlbiAmJgorCQljZCBlaWdodCAmJgogCQlnaXQgcmVtb3RlIHBydW5lIG9yaWdpbgogCSkgPmVyciAyPiYxICYmCiAJdGVzdF9pMThuZ3JlcCAiaGFzIGJlY29tZSBkYW5nbGluZyIgZXJyICYmCiAKIAk6IEFuZCB0aGUgZGFuZ2xpbmcgc3ltcmVmIHdpbGwgbm90IGNhdXNlIG90aGVyIGFubm95aW5nIGVycm9ycyAmJgogCSgKLQkJY2Qgc2V2ZW4gJiYKKwkJY2QgZWlnaHQgJiYKIAkJZ2l0IGJyYW5jaCAtYQogCSkgMj5lcnIgJiYKIAkhIGdyZXAgInBvaW50cyBub3doZXJlIiBlcnIgJiYKIAkoCi0JCWNkIHNldmVuICYmCisJCWNkIGVpZ2h0ICYmCiAJCXRlc3RfbXVzdF9mYWlsIGdpdCBicmFuY2ggbm9tb3JlIG9yaWdpbgogCSkgMj5lcnIgJiYKIAlncmVwICJkYW5nbGluZyBzeW1yZWYiIGVycgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG93IGVtcHR5IHJlbW90ZScgJwotCiAJdGVzdF9jcmVhdGVfcmVwbyBlbXB0eSAmJgogCWdpdCBjbG9uZSBlbXB0eSBlbXB0eS1jbG9uZSAmJgogCSgKZGlmZiAtLWdpdCBhL3QvdDU1MTAtZmV0Y2guc2ggYi90L3Q1NTEwLWZldGNoLnNoCmluZGV4IGQ3YTE5YTEuLmZkZTY4OTEgMTAwNzU1Ci0tLSBhL3QvdDU1MTAtZmV0Y2guc2gKKysrIGIvdC90NTUxMC1mZXRjaC5zaApAQCAtMzcwLDMwICszNzAsMzkgQEAKIAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdleHBsaWNpdCBmZXRjaCBzaG91bGQgbm90IHVwZGF0ZSB0cmFja2luZycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbWFyayBpbml0aWFsIHN0YXRlIG9mIG9yaWdpbi9tYXN0ZXInICcKKwkoCisJCWNkIHRocmVlICYmCisJCWdpdCB0YWcgYmFzZS1vcmlnaW4tbWFzdGVyIHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdleHBsaWNpdCBmZXRjaCBzaG91bGQgdXBkYXRlIHRyYWNraW5nJyAnCiAKIAljZCAiJEQiICYmCiAJZ2l0IGJyYW5jaCAtZiBzaWRlICYmCiAJKAogCQljZCB0aHJlZSAmJgorCQlnaXQgdXBkYXRlLXJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlciBiYXNlLW9yaWdpbi1tYXN0ZXIgJiYKIAkJbz0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9tYXN0ZXIpICYmCiAJCWdpdCBmZXRjaCBvcmlnaW4gbWFzdGVyICYmCiAJCW49JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyKSAmJgotCQl0ZXN0ICIkbyIgPSAiJG4iICYmCisJCXRlc3QgIiRvIiAhPSAiJG4iICYmCiAJCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlCiAJKQogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdleHBsaWNpdCBwdWxsIHNob3VsZCBub3QgdXBkYXRlIHRyYWNraW5nJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdleHBsaWNpdCBwdWxsIHNob3VsZCB1cGRhdGUgdHJhY2tpbmcnICcKIAogCWNkICIkRCIgJiYKIAlnaXQgYnJhbmNoIC1mIHNpZGUgJiYKIAkoCiAJCWNkIHRocmVlICYmCisJCWdpdCB1cGRhdGUtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyIGJhc2Utb3JpZ2luLW1hc3RlciAmJgogCQlvPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlcikgJiYKIAkJZ2l0IHB1bGwgb3JpZ2luIG1hc3RlciAmJgogCQluPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlcikgJiYKLQkJdGVzdCAiJG8iID0gIiRuIiAmJgorCQl0ZXN0ICIkbyIgIT0gIiRuIiAmJgogCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZQogCSkKICcKQEAgLTQwNCw2ICs0MTMsNyBAQAogCWdpdCBicmFuY2ggLWYgc2lkZSAmJgogCSgKIAkJY2QgdGhyZWUgJiYKKwkJZ2l0IHVwZGF0ZS1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9tYXN0ZXIgYmFzZS1vcmlnaW4tbWFzdGVyICYmCiAJCW89JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyKSAmJgogCQlnaXQgZmV0Y2ggb3JpZ2luICYmCiAJCW49JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyKSAmJgpAQCAtNDEyLDYgKzQyMiwyMiBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnbm9uLW1hdGNoaW5nIHJlZnNwZWNzIGRvIG5vdCBjb25mdXNlIHRyYWNraW5nIHVwZGF0ZScgJworCWNkICIkRCIgJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL29kZC9sb2NhdGlvbiBIRUFEICYmCisJKAorCQljZCB0aHJlZSAmJgorCQlnaXQgdXBkYXRlLXJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlciBiYXNlLW9yaWdpbi1tYXN0ZXIgJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUub3JpZ2luLmZldGNoIFwKKwkJCXJlZnMvb2RkL2xvY2F0aW9uOnJlZnMvcmVtb3Rlcy9vcmlnaW4vb2RkICYmCisJCW89JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyKSAmJgorCQlnaXQgZmV0Y2ggb3JpZ2luIG1hc3RlciAmJgorCQluPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlcikgJiYKKwkJdGVzdCAiJG8iICE9ICIkbiIgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3JlbW90ZXMvb3JpZ2luL29kZAorCSkKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaGluZyBub25leGlzdGVudCBicmFuY2ggYnkgbWlzdGFrZSBzaG91bGQgbm90IHNlZ3YnICcKIAogCWNkICIkRCIgJiYKZGlmZiAtLWdpdCBhL3QvdDU1MjAtcHVsbC5zaCBiL3QvdDU1MjAtcHVsbC5zaAppbmRleCA2YWY2YzYzLi5lZDRkOWM4IDEwMDc1NQotLS0gYS90L3Q1NTIwLXB1bGwuc2gKKysrIGIvdC90NTUyMC1wdWxsLnNoCkBAIC01Nyw2ICs1NywzNSBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZyBpbnRvIHZvaWQgZG9lcyBub3Qgb3ZlcndyaXRlIHN0YWdlZCBmaWxlcycgJworCWdpdCBpbml0IGNsb25lZC1zdGFnZWQtY29sbGlkaW5nICYmCisJKAorCQljZCBjbG9uZWQtc3RhZ2VkLWNvbGxpZGluZyAmJgorCQllY2hvICJhbHRlcm5hdGUgY29udGVudCIgPmZpbGUgJiYKKwkJZ2l0IGFkZCBmaWxlICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBwdWxsIC4uIG1hc3RlciAmJgorCQllY2hvICJhbHRlcm5hdGUgY29udGVudCIgPmV4cGVjdCAmJgorCQl0ZXN0X2NtcCBleHBlY3QgZmlsZSAmJgorCQlnaXQgY2F0LWZpbGUgYmxvYiA6ZmlsZSA+ZmlsZS5pbmRleCAmJgorCQl0ZXN0X2NtcCBleHBlY3QgZmlsZS5pbmRleAorCSkKKycKKworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdWxsaW5nIGludG8gdm9pZCBkb2VzIG5vdCByZW1vdmUgbmV3IHN0YWdlZCBmaWxlcycgJworCWdpdCBpbml0IGNsb25lZC1zdGFnZWQtbmV3ICYmCisJKAorCQljZCBjbG9uZWQtc3RhZ2VkLW5ldyAmJgorCQllY2hvICJuZXcgdHJhY2tlZCBmaWxlIiA+bmV3ZmlsZSAmJgorCQlnaXQgYWRkIG5ld2ZpbGUgJiYKKwkJZ2l0IHB1bGwgLi4gbWFzdGVyICYmCisJCWVjaG8gIm5ldyB0cmFja2VkIGZpbGUiID5leHBlY3QgJiYKKwkJdGVzdF9jbXAgZXhwZWN0IG5ld2ZpbGUgJiYKKwkJZ2l0IGNhdC1maWxlIGJsb2IgOm5ld2ZpbGUgPm5ld2ZpbGUuaW5kZXggJiYKKwkJdGVzdF9jbXAgZXhwZWN0IG5ld2ZpbGUuaW5kZXgKKwkpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgLiBhcyBhIHJlbW90ZScgJwogCiAJZ2l0IGJyYW5jaCBjb3B5IG1hc3RlciAmJgpkaWZmIC0tZ2l0IGEvdC90NTUyMS1wdWxsLW9wdGlvbnMuc2ggYi90L3Q1NTIxLXB1bGwtb3B0aW9ucy5zaAppbmRleCBhYTMxYWJlLi40NTNhYmE1IDEwMDc1NQotLS0gYS90L3Q1NTIxLXB1bGwtb3B0aW9ucy5zaAorKysgYi90L3Q1NTIxLXB1bGwtb3B0aW9ucy5zaApAQCAtMTUsMTkgKzE1LDE5IEBACiAJbWtkaXIgY2xvbmVkcSAmJgogCShjZCBjbG9uZWRxICYmIGdpdCBpbml0ICYmCiAJZ2l0IHB1bGwgLXEgIi4uL3BhcmVudCIgPm91dCAyPmVyciAmJgotCXRlc3QgISAtcyBlcnIgJiYKLQl0ZXN0ICEgLXMgb3V0KQorCXRlc3RfbXVzdF9iZV9lbXB0eSBlcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0KQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgcHVsbCAtcSAtLXJlYmFzZScgJwogCW1rZGlyIGNsb25lZHFyYiAmJgogCShjZCBjbG9uZWRxcmIgJiYgZ2l0IGluaXQgJiYKIAlnaXQgcHVsbCAtcSAtLXJlYmFzZSAiLi4vcGFyZW50IiA+b3V0IDI+ZXJyICYmCi0JdGVzdCAhIC1zIGVyciAmJgotCXRlc3QgISAtcyBvdXQgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCAmJgogCWdpdCBwdWxsIC1xIC0tcmViYXNlICIuLi9wYXJlbnQiID5vdXQgMj5lcnIgJiYKLQl0ZXN0ICEgLXMgZXJyICYmCi0JdGVzdCAhIC1zIG91dCkKKwl0ZXN0X211c3RfYmVfZW1wdHkgZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHB1bGwnICcKQEAgLTM1LDcgKzM1LDcgQEAKIAkoY2QgY2xvbmVkICYmIGdpdCBpbml0ICYmCiAJZ2l0IHB1bGwgIi4uL3BhcmVudCIgPm91dCAyPmVyciAmJgogCXRlc3QgLXMgZXJyICYmCi0JdGVzdCAhIC1zIG91dCkKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0KQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgcHVsbCAtLXJlYmFzZScgJwpAQCAtNDMsNyArNDMsNyBAQAogCShjZCBjbG9uZWRyYiAmJiBnaXQgaW5pdCAmJgogCWdpdCBwdWxsIC0tcmViYXNlICIuLi9wYXJlbnQiID5vdXQgMj5lcnIgJiYKIAl0ZXN0IC1zIGVyciAmJgotCXRlc3QgISAtcyBvdXQpCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHB1bGwgLXYnICcKQEAgLTUxLDcgKzUxLDcgQEAKIAkoY2QgY2xvbmVkdiAmJiBnaXQgaW5pdCAmJgogCWdpdCBwdWxsIC12ICIuLi9wYXJlbnQiID5vdXQgMj5lcnIgJiYKIAl0ZXN0IC1zIGVyciAmJgotCXRlc3QgISAtcyBvdXQpCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHB1bGwgLXYgLS1yZWJhc2UnICcKQEAgLTU5LDIyICs1OSwyMiBAQAogCShjZCBjbG9uZWR2cmIgJiYgZ2l0IGluaXQgJiYKIAlnaXQgcHVsbCAtdiAtLXJlYmFzZSAiLi4vcGFyZW50IiA+b3V0IDI+ZXJyICYmCiAJdGVzdCAtcyBlcnIgJiYKLQl0ZXN0ICEgLXMgb3V0KQorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXQpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBwdWxsIC12IC1xJyAnCiAJbWtkaXIgY2xvbmVkdnEgJiYKIAkoY2QgY2xvbmVkdnEgJiYgZ2l0IGluaXQgJiYKIAlnaXQgcHVsbCAtdiAtcSAiLi4vcGFyZW50IiA+b3V0IDI+ZXJyICYmCi0JdGVzdCAhIC1zIG91dCAmJgotCXRlc3QgISAtcyBlcnIpCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBlcnIpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBwdWxsIC1xIC12JyAnCiAJbWtkaXIgY2xvbmVkcXYgJiYKIAkoY2QgY2xvbmVkcXYgJiYgZ2l0IGluaXQgJiYKIAlnaXQgcHVsbCAtcSAtdiAiLi4vcGFyZW50IiA+b3V0IDI+ZXJyICYmCi0JdGVzdCAhIC1zIG91dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXQgJiYKIAl0ZXN0IC1zIGVycikKICcKIApkaWZmIC0tZ2l0IGEvdC90NTUyOC1wdXNoLWRlZmF1bHQuc2ggYi90L3Q1NTI4LXB1c2gtZGVmYXVsdC5zaAppbmRleCA0NzM2ZGE4Li42YTVhYzNhIDEwMDc1NQotLS0gYS90L3Q1NTI4LXB1c2gtZGVmYXVsdC5zaAorKysgYi90L3Q1NTI4LXB1c2gtZGVmYXVsdC5zaApAQCAtMTUsMTcgKzE1LDE5IEBACiAKICMgJDEgPSBsb2NhbCByZXZpc2lvbgogIyAkMiA9IHJlbW90ZSByZXZpc2lvbiAodGVzdGVkIHRvIGJlIGVxdWFsIHRvIHRoZSBsb2NhbCBvbmUpCisjICQzID0gW29wdGlvbmFsXSByZXBvIHRvIGNoZWNrIGZvciBhY3R1YWwgb3V0cHV0IChyZXBvMSBieSBkZWZhdWx0KQogY2hlY2tfcHVzaGVkX2NvbW1pdCAoKSB7CiAJZ2l0IGxvZyAtMSAtLWZvcm1hdD0nJWggJXMnICIkMSIgPmV4cGVjdCAmJgotCWdpdCAtLWdpdC1kaXI9cmVwbzEgbG9nIC0xIC0tZm9ybWF0PSclaCAlcycgIiQyIiA+YWN0dWFsICYmCisJZ2l0IC0tZ2l0LWRpcj0iJHszOi1yZXBvMX0iIGxvZyAtMSAtLWZvcm1hdD0nJWggJXMnICIkMiIgPmFjdHVhbCAmJgogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKIH0KIAogIyAkMSA9IHB1c2guZGVmYXVsdCB2YWx1ZQogIyAkMiA9IGV4cGVjdGVkIHRhcmdldCBicmFuY2ggZm9yIHRoZSBwdXNoCisjICQzID0gW29wdGlvbmFsXSByZXBvIHRvIGNoZWNrIGZvciBhY3R1YWwgb3V0cHV0IChyZXBvMSBieSBkZWZhdWx0KQogdGVzdF9wdXNoX3N1Y2Nlc3MgKCkgewogCWdpdCAtYyBwdXNoLmRlZmF1bHQ9IiQxIiBwdXNoICYmCi0JY2hlY2tfcHVzaGVkX2NvbW1pdCBIRUFEICIkMiIKKwljaGVja19wdXNoZWRfY29tbWl0IEhFQUQgIiQyIiAiJDMiCiB9CiAKICMgJDEgPSBwdXNoLmRlZmF1bHQgdmFsdWUKQEAgLTM3LDYgKzM5LDI2IEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogfQogCisjICQxID0gc3VjY2VzcyBvciBmYWlsdXJlCisjICQyID0gcHVzaC5kZWZhdWx0IHZhbHVlCisjICQzID0gYnJhbmNoIHRvIGNoZWNrIGZvciBhY3R1YWwgb3V0cHV0IChtYXN0ZXIgb3IgZm9vKQorIyAkNCA9IFtvcHRpb25hbF0gc3dpdGNoIHRvIHRyaWFuZ3VsYXIgd29ya2Zsb3cKK3Rlc3RfcHVzaGRlZmF1bHRfd29ya2Zsb3cgKCkgeworCXdvcmtmbG93PWNlbnRyYWwKKwlwdXNoZGVmYXVsdD1wYXJlbnQxCisJaWYgdGVzdCAtbiAiJHs0LX0iOyB0aGVuCisJCXdvcmtmbG93PXRyaWFuZ3VsYXIKKwkJcHVzaGRlZmF1bHQ9cGFyZW50MgorCWZpCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicHVzaC5kZWZhdWx0ID0gJDIgJDEgaW4gJHdvcmtmbG93IHdvcmtmbG93cyIgIgorCQl0ZXN0X2NvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSBwYXJlbnQxICYmCisJCXRlc3RfY29uZmlnIGJyYW5jaC5tYXN0ZXIubWVyZ2UgcmVmcy9oZWFkcy9mb28gJiYKKwkJdGVzdF9jb25maWcgcmVtb3RlLnB1c2hkZWZhdWx0ICRwdXNoZGVmYXVsdCAmJgorCQl0ZXN0X2NvbW1pdCBjb21taXQtZm9yLSQyJHs0Ky10cmlhbmd1bGFyfSAmJgorCQl0ZXN0X3B1c2hfJDEgJDIgJDMgJHs0K3JlcG8yfQorCSIKK30KKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnInVwc3RyZWFtIiBwdXNoZXMgdG8gY29uZmlndXJlZCB1cHN0cmVhbScgJwogCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKIAl0ZXN0X2NvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSBwYXJlbnQxICYmCkBAIC00OCw3ICs3MCw2IEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzICcidXBzdHJlYW0iIGRvZXMgbm90IHB1c2ggb24gdW5jb25maWd1cmVkIHJlbW90ZScgJwogCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKIAl0ZXN0X3VuY29uZmlnIGJyYW5jaC5tYXN0ZXIucmVtb3RlICYmCi0JdGVzdF9jb25maWcgcHVzaC5kZWZhdWx0IHVwc3RyZWFtICYmCiAJdGVzdF9jb21taXQgdGhyZWUgJiYKIAl0ZXN0X3B1c2hfZmFpbHVyZSB1cHN0cmVhbQogJwpAQCAtNTcsNyArNzgsNiBAQAogCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKIAl0ZXN0X2NvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSBwYXJlbnQxICYmCiAJdGVzdF91bmNvbmZpZyBicmFuY2gubWFzdGVyLm1lcmdlICYmCi0JdGVzdF9jb25maWcgcHVzaC5kZWZhdWx0IHVwc3RyZWFtCiAJdGVzdF9jb21taXQgZm91ciAmJgogCXRlc3RfcHVzaF9mYWlsdXJlIHVwc3RyZWFtCiAnCkBAIC0xMTUsNCArMTM1LDQxIEBACiAJdGVzdF9jbXAgZXhwZWN0LW90aGVyLW5hbWUgYWN0dWFsLW90aGVyLW5hbWUKICcKIAorIyBXZSBhcmUgb24gJ21hc3RlcicsIHdoaWNoIGludGVncmF0ZXMgd2l0aCAnZm9vJyBmcm9tIHBhcmVudDEKKyMgcmVtb3RlIChzZXQgaW4gdGVzdF9wdXNoZGVmYXVsdF93b3JrZmxvdyBoZWxwZXIpLiAgUHVzaCB0bworIyBwYXJlbnQxIGluIGNlbnRyYWxpemVkLCBhbmQgcHVzaCB0byBwYXJlbnQyIGluIHRyaWFuZ3VsYXIgd29ya2Zsb3cuCisjIFRoZSBwYXJlbnQxIHJlcG9zaXRvcnkgaGFzICdtYXN0ZXInIGFuZCAnZm9vJyBicmFuY2hlcywgd2hpbGUKKyMgdGhlIHBhcmVudDIgcmVwb3NpdG9yeSBoYXMgb25seSAnbWFzdGVyJyBicmFuY2guCisjCisjIHRlc3RfcHVzaGRlZmF1bHRfd29ya2Zsb3coKSBhcmd1bWVudHM6CisjICQxID0gc3VjY2VzcyBvciBmYWlsdXJlCisjICQyID0gcHVzaC5kZWZhdWx0IHZhbHVlCisjICQzID0gYnJhbmNoIHRvIGNoZWNrIGZvciBhY3R1YWwgb3V0cHV0IChtYXN0ZXIgb3IgZm9vKQorIyAkNCA9IFtvcHRpb25hbF0gc3dpdGNoIHRvIHRyaWFuZ3VsYXIgd29ya2Zsb3cKKworIyB1cGRhdGUgcGFyZW50MSdzIG1hc3RlciAod2hpY2ggaXMgbm90IG91ciB1cHN0cmVhbSkKK3Rlc3RfcHVzaGRlZmF1bHRfd29ya2Zsb3cgc3VjY2VzcyBjdXJyZW50IG1hc3RlcgorCisjIHVwZGF0ZSBwYXJlbnQxJ3MgZm9vICh3aGljaCBpcyBvdXIgdXBzdHJlYW0pCit0ZXN0X3B1c2hkZWZhdWx0X3dvcmtmbG93IHN1Y2Nlc3MgdXBzdHJlYW0gZm9vCisKKyMgdXBzcmVhbSBpcyBmb28gd2hpY2ggaXMgbm90IHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGJyYW5jaAordGVzdF9wdXNoZGVmYXVsdF93b3JrZmxvdyBmYWlsdXJlIHNpbXBsZSBtYXN0ZXIKKworIyBtYXN0ZXIgYW5kIGZvbyBhcmUgdXBkYXRlZAordGVzdF9wdXNoZGVmYXVsdF93b3JrZmxvdyBzdWNjZXNzIG1hdGNoaW5nIG1hc3RlcgorCisjIG1hc3RlciBpcyB1cGRhdGVkCit0ZXN0X3B1c2hkZWZhdWx0X3dvcmtmbG93IHN1Y2Nlc3MgY3VycmVudCBtYXN0ZXIgdHJpYW5ndWxhcgorCisjIHVwc3RyZWFtIG1vZGUgY2Fubm90IGJlIHVzZWQgaW4gdHJpYW5ndWxhcgordGVzdF9wdXNoZGVmYXVsdF93b3JrZmxvdyBmYWlsdXJlIHVwc3RyZWFtIGZvbyB0cmlhbmd1bGFyCisKKyMgaW4gdHJpYW5ndWxhciwgJ3NpbXBsZScgd29ya3MgYXMgJ2N1cnJlbnQnIGFuZCB1cGRhdGUgdGhlIGJyYW5jaAorIyB3aXRoIHRoZSBzYW1lIG5hbWUuCit0ZXN0X3B1c2hkZWZhdWx0X3dvcmtmbG93IHN1Y2Nlc3Mgc2ltcGxlIG1hc3RlciB0cmlhbmd1bGFyCisKKyMgbWFzdGVyIGlzIHVwZGF0ZWQgKHBhcmVudDIgZG9lcyBub3QgaGF2ZSBmb28pCit0ZXN0X3B1c2hkZWZhdWx0X3dvcmtmbG93IHN1Y2Nlc3MgbWF0Y2hpbmcgbWFzdGVyIHRyaWFuZ3VsYXIKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q1NTUxLWh0dHAtZmV0Y2guc2ggYi90L3Q1NTUxLWh0dHAtZmV0Y2guc2gKaW5kZXggYjIzZWZiYi4uNTVhODY2YSAxMDA3NTUKLS0tIGEvdC90NTU1MS1odHRwLWZldGNoLnNoCisrKyBiL3QvdDU1NTEtaHR0cC1mZXRjaC5zaApAQCAtMjA5LDEzICsyMDksMTcgQEAKIAogCSMgbm93IGFzc2lnbiB0YWdzIHRvIGFsbCB0aGUgZGFuZ2xpbmcgY29tbWl0cyB3ZSBjcmVhdGVkIGFib3ZlCiAJdGFnPSQoIiRQRVJMX1BBVEgiIC1lICJwcmludCBcImJsYVwiIHggMzAiKSAmJgotCXNlZCAtZSAicy9eOlwoLlwrXCkgXCguXCtcKSQvXDIgcmVmc1wvdGFnc1wvJHRhZy1cMS8iIDxtYXJrcyA+PnBhY2tlZC1yZWZzCisJc2VkIC1lICJzfF46XChbXiBdKlwpIFwoLipcKSR8XDIgcmVmcy90YWdzLyR0YWctXDF8IiA8bWFya3MgPj5wYWNrZWQtcmVmcwogCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBFWFBFTlNJVkUgJ2Nsb25lIHRoZSA1MCwwMDAgdGFnIHJlcG8gdG8gY2hlY2sgT1MgY29tbWFuZCBsaW5lIG92ZXJmbG93JyAnCiAJZ2l0IGNsb25lICRIVFRQRF9VUkwvc21hcnQvcmVwby5naXQgdG9vLW1hbnktcmVmcyAyPmVyciAmJgotCXRlc3RfbGluZV9jb3VudCA9IDAgZXJyCisJdGVzdF9saW5lX2NvdW50ID0gMCBlcnIgJiYKKwkoCisJCWNkIHRvby1tYW55LXJlZnMgJiYKKwkJdGVzdCAkKGdpdCBmb3ItZWFjaC1yZWYgcmVmcy90YWdzIHwgd2MgLWwpID0gNTAwMDAKKwkpCiAnCiAKIHN0b3BfaHR0cGQKZGlmZiAtLWdpdCBhL3QvdDU1NjAtaHR0cC1iYWNrZW5kLW5vc2VydmVyLnNoIGIvdC90NTU2MC1odHRwLWJhY2tlbmQtbm9zZXJ2ZXIuc2gKaW5kZXggZWY5OGQ5NS4uOWJlOWFlMyAxMDA3NTUKLS0tIGEvdC90NTU2MC1odHRwLWJhY2tlbmQtbm9zZXJ2ZXIuc2gKKysrIGIvdC90NTU2MC1odHRwLWJhY2tlbmQtbm9zZXJ2ZXIuc2gKQEAgLTUsNyArNSw3IEBACiAKIEhUVFBEX0RPQ1VNRU5UX1JPT1RfUEFUSD0iJFRSQVNIX0RJUkVDVE9SWSIKIAotdGVzdF9oYXZlX3ByZXJlcSBNSU5HVyAmJiBleHBvcnQgR1JFUF9PUFRJT05TPS1VCit0ZXN0X2hhdmVfcHJlcmVxIEdSRVBfU1RSSVBTX0NSICYmIGV4cG9ydCBHUkVQX09QVElPTlM9LVUKIAogcnVuX2JhY2tlbmQoKSB7CiAJZWNobyAiJDIiIHwKZGlmZiAtLWdpdCBhL3QvdDU2MDEtY2xvbmUuc2ggYi90L3Q1NjAxLWNsb25lLnNoCmluZGV4IDY3ODY5YjQuLjA2MjkxNDkgMTAwNzU1Ci0tLSBhL3QvdDU2MDEtY2xvbmUuc2gKKysrIGIvdC90NTYwMS1jbG9uZS5zaApAQCAtMjgwLDQgKzI4MCw5IEBACiAJdGVzdF9jbXAgZmV0Y2guZXhwZWN0ZWQgZmV0Y2guYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgTk9UX01JTkdXLE5PVF9DWUdXSU4gJ2Nsb25lIGxvY2FsIHBhdGggZm9vOmJhcicgJworCWNwIC1SIHNyYyAiZm9vOmJhciIgJiYKKwlnaXQgY2xvbmUgIi4vZm9vOmJhciIgZm9vYmFyCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTcwMi1jbG9uZS1vcHRpb25zLnNoIGIvdC90NTcwMi1jbG9uZS1vcHRpb25zLnNoCmluZGV4IDAyY2IwMjQuLjg1Y2FkZmEgMTAwNzU1Ci0tLSBhL3QvdDU3MDItY2xvbmUtb3B0aW9ucy5zaAorKysgYi90L3Q1NzAyLWNsb25lLW9wdGlvbnMuc2gKQEAgLTIyLDcgKzIyLDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlZGlyZWN0ZWQgY2xvbmUnICcKIAogCWdpdCBjbG9uZSAiZmlsZTovLyQocHdkKS9wYXJlbnQiIGNsb25lLXJlZGlyZWN0ZWQgPm91dCAyPmVyciAmJgotCXRlc3QgISAtcyBlcnIKKwl0ZXN0X211c3RfYmVfZW1wdHkgZXJyCiAKICcKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlZGlyZWN0ZWQgY2xvbmUgLXYnICcKZGlmZiAtLWdpdCBhL3QvdDU3MTAtaW5mby1hbHRlcm5hdGUuc2ggYi90L3Q1NzEwLWluZm8tYWx0ZXJuYXRlLnNoCmluZGV4IDg5NTZjMjEuLjVhNmU0OWQgMTAwNzU1Ci0tLSBhL3QvdDU3MTAtaW5mby1hbHRlcm5hdGUuc2gKKysrIGIvdC90NTcxMC1pbmZvLWFsdGVybmF0ZS5zaApAQCAtNTgsNyArNTgsMTMgQEAKIGdpdCBjbG9uZSAtbCAtcyBEIEUgJiYKIGdpdCBjbG9uZSAtbCAtcyBFIEYgJiYKIGdpdCBjbG9uZSAtbCAtcyBGIEcgJiYKLXRlc3RfbXVzdF9mYWlsIGdpdCBjbG9uZSAtLWJhcmUgLWwgLXMgRyBIJworZ2l0IGNsb25lIC0tYmFyZSAtbCAtcyBHIEgnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ludmFsaWRpdHkgb2YgZGVlcGVzdCByZXBvc2l0b3J5JyBcCisnY2QgSCAmJiB7CisJdGVzdF92YWxpZF9yZXBvCisJdGVzdCAkPyAtbmUgMAorfScKIAogY2QgIiRiYXNlX2RpciIKIApkaWZmIC0tZ2l0IGEvdC90NTgwMS1yZW1vdGUtaGVscGVycy5zaCBiL3QvdDU4MDEtcmVtb3RlLWhlbHBlcnMuc2gKaW5kZXggZGJiMDJlMi4uOGM0YzUzOSAxMDA3NTUKLS0tIGEvdC90NTgwMS1yZW1vdGUtaGVscGVycy5zaAorKysgYi90L3Q1ODAxLXJlbW90ZS1oZWxwZXJzLnNoCkBAIC04LDExICs4LDYgQEAKIC4gLi90ZXN0LWxpYi5zaAogLiAiJFRFU1RfRElSRUNUT1JZIi9saWItZ3BnLnNoCiAKLWlmICEgdHlwZSAiJHtCQVNILWJhc2h9IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLQlza2lwX2FsbD0nc2tpcHBpbmcgcmVtb3RlLXRlc3RnaXQgdGVzdHMsIGJhc2ggbm90IGF2YWlsYWJsZScKLQl0ZXN0X2RvbmUKLWZpCi0KIGNvbXBhcmVfcmVmcygpIHsKIAlnaXQgLS1naXQtZGlyPSIkMS8uZ2l0IiByZXYtcGFyc2UgLS12ZXJpZnkgJDIgPmV4cGVjdCAmJgogCWdpdCAtLWdpdC1kaXI9IiQzLy5naXQiIHJldi1wYXJzZSAtLXZlcmlmeSAkNCA+YWN0dWFsICYmCkBAIC0xMDEsMzkgKzk2LDI4IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25pbmcgd2l0aG91dCByZWZzcGVjJyAnCiAJR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUM9IiIgXAotCWdpdCBjbG9uZSAidGVzdGdpdDo6JHtQV0R9L3NlcnZlciIgbG9jYWwyICYmCisJZ2l0IGNsb25lICJ0ZXN0Z2l0Ojoke1BXRH0vc2VydmVyIiBsb2NhbDIgMj5lcnJvciAmJgorCWdyZXAgIlRoaXMgcmVtb3RlIGhlbHBlciBzaG91bGQgaW1wbGVtZW50IHJlZnNwZWMgY2FwYWJpbGl0eSIgZXJyb3IgJiYKIAljb21wYXJlX3JlZnMgbG9jYWwyIEhFQUQgc2VydmVyIEhFQUQKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZyB3aXRob3V0IHJlZnNwZWNzJyAnCiAJKGNkIGxvY2FsMiAmJgogCWdpdCByZXNldCAtLWhhcmQgJiYKLQlHSVRfUkVNT1RFX1RFU1RHSVRfUkVGU1BFQz0iIiBnaXQgcHVsbCkgJiYKKwlHSVRfUkVNT1RFX1RFU1RHSVRfUkVGU1BFQz0iIiBnaXQgcHVsbCAyPi4uL2Vycm9yKSAmJgorCWdyZXAgIlRoaXMgcmVtb3RlIGhlbHBlciBzaG91bGQgaW1wbGVtZW50IHJlZnNwZWMgY2FwYWJpbGl0eSIgZXJyb3IgJiYKIAljb21wYXJlX3JlZnMgbG9jYWwyIEhFQUQgc2VydmVyIEhFQUQKICcKIAotdGVzdF9leHBlY3RfZmFpbHVyZSAncHVzaGluZyB3aXRob3V0IHJlZnNwZWNzJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoaW5nIHdpdGhvdXQgcmVmc3BlY3MnICcKIAl0ZXN0X3doZW5fZmluaXNoZWQgIihjZCBsb2NhbDIgJiYgZ2l0IHJlc2V0IC0taGFyZCBvcmlnaW4pIiAmJgogCShjZCBsb2NhbDIgJiYKIAllY2hvIGNvbnRlbnQgPj5maWxlICYmCiAJZ2l0IGNvbW1pdCAtYSAtbSB0ZW4gJiYKLQlHSVRfUkVNT1RFX1RFU1RHSVRfUkVGU1BFQz0iIiBnaXQgcHVzaCkgJiYKLQljb21wYXJlX3JlZnMgbG9jYWwyIEhFQUQgc2VydmVyIEhFQUQKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZyB3aXRoIHN0cmFpZ2h0IHJlZnNwZWMnICcKLQkoY2QgbG9jYWwyICYmCi0JR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUM9Iio6KiIgZ2l0IHB1bGwpICYmCi0JY29tcGFyZV9yZWZzIGxvY2FsMiBIRUFEIHNlcnZlciBIRUFECi0nCi0KLXRlc3RfZXhwZWN0X2ZhaWx1cmUgJ3B1c2hpbmcgd2l0aCBzdHJhaWdodCByZWZzcGVjJyAnCi0JdGVzdF93aGVuX2ZpbmlzaGVkICIoY2QgbG9jYWwyICYmIGdpdCByZXNldCAtLWhhcmQgb3JpZ2luKSIgJiYKLQkoY2QgbG9jYWwyICYmCi0JZWNobyBjb250ZW50ID4+ZmlsZSAmJgotCWdpdCBjb21taXQgLWEgLW0gZWxldmVuICYmCi0JR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUM9Iio6KiIgZ2l0IHB1c2gpICYmCi0JY29tcGFyZV9yZWZzIGxvY2FsMiBIRUFEIHNlcnZlciBIRUFECisJR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUM9IiIgJiYKKwlleHBvcnQgR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUMgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcHVzaCAyPi4uL2Vycm9yKSAmJgorCWdyZXAgInJlbW90ZS1oZWxwZXIgZG9lc24udCBzdXBwb3J0IHB1c2g7IHJlZnNwZWMgbmVlZGVkIiBlcnJvcgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdWxsaW5nIHdpdGhvdXQgbWFya3MnICcKQEAgLTE4Niw2ICsxNzAsNTAgQEAKIAljb21wYXJlX3JlZnMgbG9jYWwgc2lnbmVkLXRhZy0yIHNlcnZlciBzaWduZWQtdGFnLTIKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCB1cGRhdGUgcmVmcycgJworCShjZCBsb2NhbCAmJgorCWdpdCBjaGVja291dCAtYiB1cGRhdGUgbWFzdGVyICYmCisJZWNobyB1cGRhdGUgPj5maWxlICYmCisJZ2l0IGNvbW1pdCAtYSAtbSB1cGRhdGUgJiYKKwlnaXQgcHVzaCBvcmlnaW4gdXBkYXRlICYmCisJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZW1vdGVzL29yaWdpbi91cGRhdGUgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgdGVzdGdpdC9vcmlnaW4vaGVhZHMvdXBkYXRlID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIHVwZGF0ZSByZWZzIGZhaWx1cmUnICcKKwkoY2QgbG9jYWwgJiYKKwlnaXQgY2hlY2tvdXQgdXBkYXRlICYmCisJZWNobyAidXBkYXRlIGZhaWwiID4+ZmlsZSAmJgorCWdpdCBjb21taXQgLWEgLW0gInVwZGF0ZSBmYWlsIiAmJgorCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgdGVzdGdpdC9vcmlnaW4vaGVhZHMvdXBkYXRlID5leHBlY3QgJiYKKwlHSVRfUkVNT1RFX1RFU1RHSVRfUFVTSF9FUlJPUj0ibm9uLWZhc3QgZm9yd2FyZCIgJiYKKwlleHBvcnQgR0lUX1JFTU9URV9URVNUR0lUX1BVU0hfRVJST1IgJiYKKwl0ZXN0X2V4cGVjdF9jb2RlIDEgZ2l0IHB1c2ggb3JpZ2luIHVwZGF0ZSAmJgorCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgdGVzdGdpdC9vcmlnaW4vaGVhZHMvdXBkYXRlID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9wZXIgZmFpbHVyZSBjaGVja3MgZm9yIGZldGNoaW5nJyAnCisJKEdJVF9SRU1PVEVfVEVTVEdJVF9GQUlMVVJFPTEgJiYKKwlleHBvcnQgR0lUX1JFTU9URV9URVNUR0lUX0ZBSUxVUkUgJiYKKwljZCBsb2NhbCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBmZXRjaCAyPiBlcnJvciAmJgorCWNhdCBlcnJvciAmJgorCWdyZXAgLXEgIkVycm9yIHdoaWxlIHJ1bm5pbmcgZmFzdC1pbXBvcnQiIGVycm9yCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9wZXIgZmFpbHVyZSBjaGVja3MgZm9yIHB1c2hpbmcnICcKKwkoR0lUX1JFTU9URV9URVNUR0lUX0ZBSUxVUkU9MSAmJgorCWV4cG9ydCBHSVRfUkVNT1RFX1RFU1RHSVRfRkFJTFVSRSAmJgorCWNkIGxvY2FsICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHB1c2ggLS1hbGwKKwkpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggbWVzc2FnZXMnICcKIAkoY2QgbG9jYWwgJiYKIAlnaXQgY2hlY2tvdXQgLWIgbmV3X2JyYW5jaCBtYXN0ZXIgJiYKZGlmZiAtLWdpdCBhL3QvdDU4MDItY29ubmVjdC1oZWxwZXIuc2ggYi90L3Q1ODAyLWNvbm5lY3QtaGVscGVyLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg3OGZhZjIKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q1ODAyLWNvbm5lY3QtaGVscGVyLnNoCkBAIC0wLDAgKzEsNzIgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdleHQ6OmNtZCByZW1vdGUgImNvbm5lY3QiIGhlbHBlcicKKy4gLi90ZXN0LWxpYi5zaAorCit0ZXN0X2V4cGVjdF9zdWNjZXNzIHNldHVwICcKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gaW5pdGlhbCAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLS1hbGxvdy1lbXB0eSAtbSBzZWNvbmQgJiYKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gdGhpcmQgJiYKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgdGFnIC1hIC1tICJ0aXAgdGhyZWUiIHRocmVlICYmCisKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gZm91cnRoCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgY2xvbmUgJworCWNtZD0kKGVjaG8gImVjaG8gPiYyIGV4dDo6c2ggaW52b2tlZCAmJiAlUyAuLiIgfCBzZWQgLWUgInMvIC8lIC9nIikgJiYKKwlnaXQgY2xvbmUgImV4dDo6c2ggLWMgJVMlIC4iIGRzdCAmJgorCWdpdCBmb3ItZWFjaC1yZWYgcmVmcy9oZWFkcy8gcmVmcy90YWdzLyA+ZXhwZWN0ICYmCisJKAorCQljZCBkc3QgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCAiZXh0OjpzaCAtYyAkY21kIiAmJgorCQlnaXQgZm9yLWVhY2gtcmVmIHJlZnMvaGVhZHMvIHJlZnMvdGFncy8KKwkpID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSBmb2xsb3dpbmcgdGFnJyAnCisJdGVzdF90aWNrICYmCisJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tIGZpZnRoICYmCisJdGVzdF90aWNrICYmCisJZ2l0IHRhZyAtYSAtbSAidGlwIGZpdmUiIGZpdmUgJiYKKwlnaXQgZm9yLWVhY2gtcmVmIHJlZnMvaGVhZHMvIHJlZnMvdGFncy8gPmV4cGVjdCAmJgorCSgKKwkJY2QgZHN0ICYmCisJCWdpdCBwdWxsICYmCisJCWdpdCBmb3ItZWFjaC1yZWYgcmVmcy9oZWFkcy8gcmVmcy90YWdzLyA+Li4vYWN0dWFsCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGJhY2tmaWxsZWQgdGFnJyAnCisJdGVzdF90aWNrICYmCisJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tIHNpeHRoICYmCisJdGVzdF90aWNrICYmCisJZ2l0IHRhZyAtYSAtbSAidGlwIHR3byIgdHdvIHRocmVlXjEgJiYKKwlnaXQgZm9yLWVhY2gtcmVmIHJlZnMvaGVhZHMvIHJlZnMvdGFncy8gPmV4cGVjdCAmJgorCSgKKwkJY2QgZHN0ICYmCisJCWdpdCBwdWxsICYmCisJCWdpdCBmb3ItZWFjaC1yZWYgcmVmcy9oZWFkcy8gcmVmcy90YWdzLyA+Li4vYWN0dWFsCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGJhY2tmaWxsZWQgdGFnIHdpdGhvdXQgcHJpbWFyeSB0cmFuc2ZlcicgJworCXRlc3RfdGljayAmJgorCWdpdCB0YWcgLWEgLW0gInRpcCBvbmUgIiBvbmUgdHdvXjEgJiYKKwlnaXQgZm9yLWVhY2gtcmVmIHJlZnMvaGVhZHMvIHJlZnMvdGFncy8gPmV4cGVjdCAmJgorCSgKKwkJY2QgZHN0ICYmCisJCWdpdCBwdWxsICYmCisJCWdpdCBmb3ItZWFjaC1yZWYgcmVmcy9oZWFkcy8gcmVmcy90YWdzLyA+Li4vYWN0dWFsCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q2MDAyLXJldi1saXN0LWJpc2VjdC5zaCBiL3QvdDYwMDItcmV2LWxpc3QtYmlzZWN0LnNoCmluZGV4IGZiMDc1MzYuLjQzYWQ3NzIgMTAwNzU1Ci0tLSBhL3QvdDYwMDItcmV2LWxpc3QtYmlzZWN0LnNoCisrKyBiL3QvdDYwMDItcmV2LWxpc3QtYmlzZWN0LnNoCkBAIC0zOSwyNSArMzksMjUgQEAKIGRhdGUgPnBhdGgwCiBnaXQgdXBkYXRlLWluZGV4IC0tYWRkIHBhdGgwCiBzYXZlX3RhZyB0cmVlIGdpdCB3cml0ZS10cmVlCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMCIgaGlkZV9lcnJvciBzYXZlX3RhZyByb290IHVuaXF1ZV9jb21taXQgcm9vdCB0cmVlCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMSIgc2F2ZV90YWcgbDAgdW5pcXVlX2NvbW1pdCBsMCB0cmVlIC1wIHJvb3QKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAyIiBzYXZlX3RhZyBsMSB1bmlxdWVfY29tbWl0IGwxIHRyZWUgLXAgbDAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAzIiBzYXZlX3RhZyBsMiB1bmlxdWVfY29tbWl0IGwyIHRyZWUgLXAgbDEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA0IiBzYXZlX3RhZyBhMCB1bmlxdWVfY29tbWl0IGEwIHRyZWUgLXAgbDIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA1IiBzYXZlX3RhZyBhMSB1bmlxdWVfY29tbWl0IGExIHRyZWUgLXAgYTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA2IiBzYXZlX3RhZyBiMSB1bmlxdWVfY29tbWl0IGIxIHRyZWUgLXAgYTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA3IiBzYXZlX3RhZyBjMSB1bmlxdWVfY29tbWl0IGMxIHRyZWUgLXAgYjEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA4IiBzYXZlX3RhZyBiMiB1bmlxdWVfY29tbWl0IGIyIHRyZWUgLXAgYjEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA5IiBzYXZlX3RhZyBiMyB1bmlxdWVfY29tbWl0IGIyIHRyZWUgLXAgYjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEwIiBzYXZlX3RhZyBjMiB1bmlxdWVfY29tbWl0IGMyIHRyZWUgLXAgYzEgLXAgYjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjExIiBzYXZlX3RhZyBjMyB1bmlxdWVfY29tbWl0IGMzIHRyZWUgLXAgYzIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEyIiBzYXZlX3RhZyBhMiB1bmlxdWVfY29tbWl0IGEyIHRyZWUgLXAgYTEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEzIiBzYXZlX3RhZyBhMyB1bmlxdWVfY29tbWl0IGEzIHRyZWUgLXAgYTIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE0IiBzYXZlX3RhZyBiNCB1bmlxdWVfY29tbWl0IGI0IHRyZWUgLXAgYjMgLXAgYTMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE1IiBzYXZlX3RhZyBhNCB1bmlxdWVfY29tbWl0IGE0IHRyZWUgLXAgYTMgLXAgYjQgLXAgYzMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE2IiBzYXZlX3RhZyBsMyB1bmlxdWVfY29tbWl0IGwzIHRyZWUgLXAgYTQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE3IiBzYXZlX3RhZyBsNCB1bmlxdWVfY29tbWl0IGw0IHRyZWUgLXAgbDMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE4IiBzYXZlX3RhZyBsNSB1bmlxdWVfY29tbWl0IGw1IHRyZWUgLXAgbDQKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowMCIgaGlkZV9lcnJvciBzYXZlX3RhZyByb290IHVuaXF1ZV9jb21taXQgcm9vdCB0cmVlCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDEiIHNhdmVfdGFnIGwwIHVuaXF1ZV9jb21taXQgbDAgdHJlZSAtcCByb290Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDIiIHNhdmVfdGFnIGwxIHVuaXF1ZV9jb21taXQgbDEgdHJlZSAtcCBsMAorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAzIiBzYXZlX3RhZyBsMiB1bmlxdWVfY29tbWl0IGwyIHRyZWUgLXAgbDEKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowNCIgc2F2ZV90YWcgYTAgdW5pcXVlX2NvbW1pdCBhMCB0cmVlIC1wIGwyCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDUiIHNhdmVfdGFnIGExIHVuaXF1ZV9jb21taXQgYTEgdHJlZSAtcCBhMAorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA2IiBzYXZlX3RhZyBiMSB1bmlxdWVfY29tbWl0IGIxIHRyZWUgLXAgYTAKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowNyIgc2F2ZV90YWcgYzEgdW5pcXVlX2NvbW1pdCBjMSB0cmVlIC1wIGIxCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDgiIHNhdmVfdGFnIGIyIHVuaXF1ZV9jb21taXQgYjIgdHJlZSAtcCBiMQorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA5IiBzYXZlX3RhZyBiMyB1bmlxdWVfY29tbWl0IGIyIHRyZWUgLXAgYjIKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxMCIgc2F2ZV90YWcgYzIgdW5pcXVlX2NvbW1pdCBjMiB0cmVlIC1wIGMxIC1wIGIyCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MTEiIHNhdmVfdGFnIGMzIHVuaXF1ZV9jb21taXQgYzMgdHJlZSAtcCBjMgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjEyIiBzYXZlX3RhZyBhMiB1bmlxdWVfY29tbWl0IGEyIHRyZWUgLXAgYTEKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxMyIgc2F2ZV90YWcgYTMgdW5pcXVlX2NvbW1pdCBhMyB0cmVlIC1wIGEyCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MTQiIHNhdmVfdGFnIGI0IHVuaXF1ZV9jb21taXQgYjQgdHJlZSAtcCBiMyAtcCBhMworb25fY29tbWl0dGVyX2RhdGUgIjAwOjE1IiBzYXZlX3RhZyBhNCB1bmlxdWVfY29tbWl0IGE0IHRyZWUgLXAgYTMgLXAgYjQgLXAgYzMKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxNiIgc2F2ZV90YWcgbDMgdW5pcXVlX2NvbW1pdCBsMyB0cmVlIC1wIGE0Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MTciIHNhdmVfdGFnIGw0IHVuaXF1ZV9jb21taXQgbDQgdHJlZSAtcCBsMworb25fY29tbWl0dGVyX2RhdGUgIjAwOjE4IiBzYXZlX3RhZyBsNSB1bmlxdWVfY29tbWl0IGw1IHRyZWUgLXAgbDQKIGdpdCB1cGRhdGUtcmVmIEhFQUQgJCh0YWcgbDUpCiAKIApAQCAtOTAsMjkgKzkwLDI5IEBACiAjICAgICBGCiAKIAotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MDAiIGhpZGVfZXJyb3Igc2F2ZV90YWcgRiB1bmlxdWVfY29tbWl0IEYgdHJlZQotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MDEiIHNhdmVfdGFnIGU4IHVuaXF1ZV9jb21taXQgZTggdHJlZSAtcCBGCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMiIgc2F2ZV90YWcgZTcgdW5pcXVlX2NvbW1pdCBlNyB0cmVlIC1wIGU4Ci1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMyIgc2F2ZV90YWcgZTYgdW5pcXVlX2NvbW1pdCBlNiB0cmVlIC1wIGU3Ci1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNCIgc2F2ZV90YWcgZTUgdW5pcXVlX2NvbW1pdCBlNSB0cmVlIC1wIGU2Ci1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNSIgc2F2ZV90YWcgZjQgdW5pcXVlX2NvbW1pdCBmNCB0cmVlIC1wIEYKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA2IiBzYXZlX3RhZyBmMyB1bmlxdWVfY29tbWl0IGYzIHRyZWUgLXAgZjQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA3IiBzYXZlX3RhZyBmMiB1bmlxdWVfY29tbWl0IGYyIHRyZWUgLXAgZjMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA4IiBzYXZlX3RhZyBmMSB1bmlxdWVfY29tbWl0IGYxIHRyZWUgLXAgZjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA5IiBzYXZlX3RhZyBlNCB1bmlxdWVfY29tbWl0IGU0IHRyZWUgLXAgZTUKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEwIiBzYXZlX3RhZyBlMyB1bmlxdWVfY29tbWl0IGUzIHRyZWUgLXAgZTQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjExIiBzYXZlX3RhZyBlMiB1bmlxdWVfY29tbWl0IGUyIHRyZWUgLXAgZTMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEyIiBzYXZlX3RhZyBlMSB1bmlxdWVfY29tbWl0IGUxIHRyZWUgLXAgZTIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEzIiBzYXZlX3RhZyBFIHVuaXF1ZV9jb21taXQgRSB0cmVlIC1wIGUxIC1wIGYxCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDAiIGhpZGVfZXJyb3Igc2F2ZV90YWcgRiB1bmlxdWVfY29tbWl0IEYgdHJlZQorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAxIiBzYXZlX3RhZyBlOCB1bmlxdWVfY29tbWl0IGU4IHRyZWUgLXAgRgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAyIiBzYXZlX3RhZyBlNyB1bmlxdWVfY29tbWl0IGU3IHRyZWUgLXAgZTgKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowMyIgc2F2ZV90YWcgZTYgdW5pcXVlX2NvbW1pdCBlNiB0cmVlIC1wIGU3Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDQiIHNhdmVfdGFnIGU1IHVuaXF1ZV9jb21taXQgZTUgdHJlZSAtcCBlNgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA1IiBzYXZlX3RhZyBmNCB1bmlxdWVfY29tbWl0IGY0IHRyZWUgLXAgRgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA2IiBzYXZlX3RhZyBmMyB1bmlxdWVfY29tbWl0IGYzIHRyZWUgLXAgZjQKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowNyIgc2F2ZV90YWcgZjIgdW5pcXVlX2NvbW1pdCBmMiB0cmVlIC1wIGYzCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDgiIHNhdmVfdGFnIGYxIHVuaXF1ZV9jb21taXQgZjEgdHJlZSAtcCBmMgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA5IiBzYXZlX3RhZyBlNCB1bmlxdWVfY29tbWl0IGU0IHRyZWUgLXAgZTUKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxMCIgc2F2ZV90YWcgZTMgdW5pcXVlX2NvbW1pdCBlMyB0cmVlIC1wIGU0Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MTEiIHNhdmVfdGFnIGUyIHVuaXF1ZV9jb21taXQgZTIgdHJlZSAtcCBlMworb25fY29tbWl0dGVyX2RhdGUgIjAwOjEyIiBzYXZlX3RhZyBlMSB1bmlxdWVfY29tbWl0IGUxIHRyZWUgLXAgZTIKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxMyIgc2F2ZV90YWcgRSB1bmlxdWVfY29tbWl0IEUgdHJlZSAtcCBlMSAtcCBmMQogCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMCIgaGlkZV9lcnJvciBzYXZlX3RhZyBVIHVuaXF1ZV9jb21taXQgVSB0cmVlCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMSIgc2F2ZV90YWcgdTAgdW5pcXVlX2NvbW1pdCB1MCB0cmVlIC1wIFUKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAxIiBzYXZlX3RhZyB1MSB1bmlxdWVfY29tbWl0IHUxIHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAyIiBzYXZlX3RhZyB1MiB1bmlxdWVfY29tbWl0IHUyIHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAzIiBzYXZlX3RhZyB1MyB1bmlxdWVfY29tbWl0IHUzIHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA0IiBzYXZlX3RhZyB1NCB1bmlxdWVfY29tbWl0IHU0IHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA1IiBzYXZlX3RhZyB1NSB1bmlxdWVfY29tbWl0IHU1IHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA2IiBzYXZlX3RhZyBWIHVuaXF1ZV9jb21taXQgViB0cmVlIC1wIHUxIC1wIHUyIC1wIHUzIC1wIHU0IC1wIHU1Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDAiIGhpZGVfZXJyb3Igc2F2ZV90YWcgVSB1bmlxdWVfY29tbWl0IFUgdHJlZQorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAxIiBzYXZlX3RhZyB1MCB1bmlxdWVfY29tbWl0IHUwIHRyZWUgLXAgVQorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAxIiBzYXZlX3RhZyB1MSB1bmlxdWVfY29tbWl0IHUxIHRyZWUgLXAgdTAKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowMiIgc2F2ZV90YWcgdTIgdW5pcXVlX2NvbW1pdCB1MiB0cmVlIC1wIHUwCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDMiIHNhdmVfdGFnIHUzIHVuaXF1ZV9jb21taXQgdTMgdHJlZSAtcCB1MAorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA0IiBzYXZlX3RhZyB1NCB1bmlxdWVfY29tbWl0IHU0IHRyZWUgLXAgdTAKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowNSIgc2F2ZV90YWcgdTUgdW5pcXVlX2NvbW1pdCB1NSB0cmVlIC1wIHUwCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDYiIHNhdmVfdGFnIFYgdW5pcXVlX2NvbW1pdCBWIHRyZWUgLXAgdTEgLXAgdTIgLXAgdTMgLXAgdTQgLXAgdTUKIAogdGVzdF9zZXF1ZW5jZSgpCiB7CmRpZmYgLS1naXQgYS90L3Q2MDAzLXJldi1saXN0LXRvcG8tb3JkZXIuc2ggYi90L3Q2MDAzLXJldi1saXN0LXRvcG8tb3JkZXIuc2gKaW5kZXggZTRjNTJiMC4uMjRkMTgzNiAxMDA3NTUKLS0tIGEvdC90NjAwMy1yZXYtbGlzdC10b3BvLW9yZGVyLnNoCisrKyBiL3QvdDYwMDMtcmV2LWxpc3QtdG9wby1vcmRlci5zaApAQCAtMTYsMzkgKzE2LDM0IEBACiBkYXRlID5wYXRoMAogZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCBwYXRoMAogc2F2ZV90YWcgdHJlZSBnaXQgd3JpdGUtdHJlZQotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MDAiIGhpZGVfZXJyb3Igc2F2ZV90YWcgcm9vdCB1bmlxdWVfY29tbWl0IHJvb3QgdHJlZQotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MDEiIHNhdmVfdGFnIGwwIHVuaXF1ZV9jb21taXQgbDAgdHJlZSAtcCByb290Ci1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMiIgc2F2ZV90YWcgbDEgdW5pcXVlX2NvbW1pdCBsMSB0cmVlIC1wIGwwCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMyIgc2F2ZV90YWcgbDIgdW5pcXVlX2NvbW1pdCBsMiB0cmVlIC1wIGwxCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNCIgc2F2ZV90YWcgYTAgdW5pcXVlX2NvbW1pdCBhMCB0cmVlIC1wIGwyCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNSIgc2F2ZV90YWcgYTEgdW5pcXVlX2NvbW1pdCBhMSB0cmVlIC1wIGEwCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNiIgc2F2ZV90YWcgYjEgdW5pcXVlX2NvbW1pdCBiMSB0cmVlIC1wIGEwCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNyIgc2F2ZV90YWcgYzEgdW5pcXVlX2NvbW1pdCBjMSB0cmVlIC1wIGIxCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowOCIgYXNfYXV0aG9yIGZvb2JhckBleGFtcGxlLmNvbSBzYXZlX3RhZyBiMiB1bmlxdWVfY29tbWl0IGIyIHRyZWUgLXAgYjEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA5IiBzYXZlX3RhZyBiMyB1bmlxdWVfY29tbWl0IGIzIHRyZWUgLXAgYjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEwIiBzYXZlX3RhZyBjMiB1bmlxdWVfY29tbWl0IGMyIHRyZWUgLXAgYzEgLXAgYjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjExIiBzYXZlX3RhZyBjMyB1bmlxdWVfY29tbWl0IGMzIHRyZWUgLXAgYzIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEyIiBzYXZlX3RhZyBhMiB1bmlxdWVfY29tbWl0IGEyIHRyZWUgLXAgYTEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEzIiBzYXZlX3RhZyBhMyB1bmlxdWVfY29tbWl0IGEzIHRyZWUgLXAgYTIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE0IiBzYXZlX3RhZyBiNCB1bmlxdWVfY29tbWl0IGI0IHRyZWUgLXAgYjMgLXAgYTMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE1IiBzYXZlX3RhZyBhNCB1bmlxdWVfY29tbWl0IGE0IHRyZWUgLXAgYTMgLXAgYjQgLXAgYzMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE2IiBzYXZlX3RhZyBsMyB1bmlxdWVfY29tbWl0IGwzIHRyZWUgLXAgYTQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE3IiBzYXZlX3RhZyBsNCB1bmlxdWVfY29tbWl0IGw0IHRyZWUgLXAgbDMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE4IiBzYXZlX3RhZyBsNSB1bmlxdWVfY29tbWl0IGw1IHRyZWUgLXAgbDQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE5IiBzYXZlX3RhZyBtMSB1bmlxdWVfY29tbWl0IG0xIHRyZWUgLXAgYTQgLXAgYzMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjIwIiBzYXZlX3RhZyBtMiB1bmlxdWVfY29tbWl0IG0yIHRyZWUgLXAgYzMgLXAgYTQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjIxIiBoaWRlX2Vycm9yIHNhdmVfdGFnIGFsdF9yb290IHVuaXF1ZV9jb21taXQgYWx0X3Jvb3QgdHJlZQotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MjIiIHNhdmVfdGFnIHIwIHVuaXF1ZV9jb21taXQgcjAgdHJlZSAtcCBhbHRfcm9vdAotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MjMiIHNhdmVfdGFnIHIxIHVuaXF1ZV9jb21taXQgcjEgdHJlZSAtcCByMAotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MjQiIHNhdmVfdGFnIGw1cjEgdW5pcXVlX2NvbW1pdCBsNXIxIHRyZWUgLXAgbDUgLXAgcjEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjI1IiBzYXZlX3RhZyByMWw1IHVuaXF1ZV9jb21taXQgcjFsNSB0cmVlIC1wIHIxIC1wIGw1Citvbl9kYXRlcyAiMDA6MDAiICIwMDowMCIgaGlkZV9lcnJvciBzYXZlX3RhZyByb290IHVuaXF1ZV9jb21taXQgcm9vdCB0cmVlCitvbl9kYXRlcyAiMDA6MDEiICIwMDowMSIgc2F2ZV90YWcgbDAgdW5pcXVlX2NvbW1pdCBsMCB0cmVlIC1wIHJvb3QKK29uX2RhdGVzICIwMDowMiIgIjAwOjAyIiBzYXZlX3RhZyBsMSB1bmlxdWVfY29tbWl0IGwxIHRyZWUgLXAgbDAKK29uX2RhdGVzICIwMDowMyIgIjAwOjAzIiBzYXZlX3RhZyBsMiB1bmlxdWVfY29tbWl0IGwyIHRyZWUgLXAgbDEKK29uX2RhdGVzICIwMDowNCIgIjAwOjA0IiBzYXZlX3RhZyBhMCB1bmlxdWVfY29tbWl0IGEwIHRyZWUgLXAgbDIKK29uX2RhdGVzICIwMDowNSIgIjAwOjA1IiBzYXZlX3RhZyBhMSB1bmlxdWVfY29tbWl0IGExIHRyZWUgLXAgYTAKK29uX2RhdGVzICIwMDowNiIgIjAwOjA2IiBzYXZlX3RhZyBiMSB1bmlxdWVfY29tbWl0IGIxIHRyZWUgLXAgYTAKK29uX2RhdGVzICIwMDowNyIgIjAwOjA3IiBzYXZlX3RhZyBjMSB1bmlxdWVfY29tbWl0IGMxIHRyZWUgLXAgYjEKK29uX2RhdGVzICIwMDowOCIgIjAwOjA4IiBhc19hdXRob3IgZm9vYmFyQGV4YW1wbGUuY29tIHNhdmVfdGFnIGIyIHVuaXF1ZV9jb21taXQgYjIgdHJlZSAtcCBiMQorb25fZGF0ZXMgIjAwOjA5IiAiMDA6MDkiIHNhdmVfdGFnIGIzIHVuaXF1ZV9jb21taXQgYjMgdHJlZSAtcCBiMgorb25fZGF0ZXMgIjAwOjEwIiAiMDA6MTAiIHNhdmVfdGFnIGMyIHVuaXF1ZV9jb21taXQgYzIgdHJlZSAtcCBjMSAtcCBiMgorb25fZGF0ZXMgIjAwOjExIiAiMDA6MTEiIHNhdmVfdGFnIGMzIHVuaXF1ZV9jb21taXQgYzMgdHJlZSAtcCBjMgorb25fZGF0ZXMgIjAwOjEyIiAiMDA6MDAiIHNhdmVfdGFnIGEyIHVuaXF1ZV9jb21taXQgYTIgdHJlZSAtcCBhMQorb25fZGF0ZXMgIjAwOjEzIiAiMDA6MDEiIHNhdmVfdGFnIGEzIHVuaXF1ZV9jb21taXQgYTMgdHJlZSAtcCBhMgorb25fZGF0ZXMgIjAwOjE0IiAiMDA6MTQiIHNhdmVfdGFnIGI0IHVuaXF1ZV9jb21taXQgYjQgdHJlZSAtcCBiMyAtcCBhMworb25fZGF0ZXMgIjAwOjE1IiAiMDA6MTUiIHNhdmVfdGFnIGE0IHVuaXF1ZV9jb21taXQgYTQgdHJlZSAtcCBhMyAtcCBiNCAtcCBjMworb25fZGF0ZXMgIjAwOjE2IiAiMDA6MTYiIHNhdmVfdGFnIGwzIHVuaXF1ZV9jb21taXQgbDMgdHJlZSAtcCBhNAorb25fZGF0ZXMgIjAwOjE3IiAiMDA6MTciIHNhdmVfdGFnIGw0IHVuaXF1ZV9jb21taXQgbDQgdHJlZSAtcCBsMworb25fZGF0ZXMgIjAwOjE4IiAiMDA6MTgiIHNhdmVfdGFnIGw1IHVuaXF1ZV9jb21taXQgbDUgdHJlZSAtcCBsNAorb25fZGF0ZXMgIjAwOjE5IiAiMDA6MTkiIHNhdmVfdGFnIG0xIHVuaXF1ZV9jb21taXQgbTEgdHJlZSAtcCBhNCAtcCBjMworb25fZGF0ZXMgIjAwOjIwIiAiMDA6MjAiIHNhdmVfdGFnIG0yIHVuaXF1ZV9jb21taXQgbTIgdHJlZSAtcCBjMyAtcCBhNAorb25fZGF0ZXMgIjAwOjIxIiAiMDA6MjEiIGhpZGVfZXJyb3Igc2F2ZV90YWcgYWx0X3Jvb3QgdW5pcXVlX2NvbW1pdCBhbHRfcm9vdCB0cmVlCitvbl9kYXRlcyAiMDA6MjIiICIwMDoyMiIgc2F2ZV90YWcgcjAgdW5pcXVlX2NvbW1pdCByMCB0cmVlIC1wIGFsdF9yb290Citvbl9kYXRlcyAiMDA6MjMiICIwMDoyMyIgc2F2ZV90YWcgcjEgdW5pcXVlX2NvbW1pdCByMSB0cmVlIC1wIHIwCitvbl9kYXRlcyAiMDA6MjQiICIwMDoyNCIgc2F2ZV90YWcgbDVyMSB1bmlxdWVfY29tbWl0IGw1cjEgdHJlZSAtcCBsNSAtcCByMQorb25fZGF0ZXMgIjAwOjI1IiAiMDA6MjUiIHNhdmVfdGFnIHIxbDUgdW5pcXVlX2NvbW1pdCByMWw1IHRyZWUgLXAgcjEgLXAgbDUKIAogCi0jCi0jIG5vdGU6IGFzIG9mIDIwLzYsIGl0IGlzbid0IHBvc3NpYmxlIHRvIGNyZWF0ZSBkdXBsaWNhdGUgcGFyZW50cywgc28gdGhpcwotIyBjYW4ndCBiZSB0ZXN0ZWQuCi0jCi0jb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MjAiIHNhdmVfdGFnIG0zIHVuaXF1ZV9jb21taXQgbTMgdHJlZSAtcCBjMyAtcCBhNCAtcCBjMwogaGlkZV9lcnJvciBzYXZlX3RhZyBlMSBhc19hdXRob3IgZUBleGFtcGxlLmNvbSB1bmlxdWVfY29tbWl0IGUxIHRyZWUKIHNhdmVfdGFnIGUyIGFzX2F1dGhvciBlQGV4YW1wbGUuY29tIHVuaXF1ZV9jb21taXQgZTIgdHJlZSAtcCBlMQogc2F2ZV90YWcgZjEgYXNfYXV0aG9yIGZAZXhhbXBsZS5jb20gdW5pcXVlX2NvbW1pdCBmMSB0cmVlIC1wIGUxCkBAIC0xMDUsNiArMTAwLDUwIEBACiByb290CiBFT0YKIAordGVzdF9vdXRwdXRfZXhwZWN0X3N1Y2Nlc3MgJ3NpbXBsZSBkYXRlIG9yZGVyJyAnZ2l0IHJldi1saXN0IC0tZGF0ZS1vcmRlciAgSEVBRCcgPDxFT0YKK2w1CitsNAorbDMKK2E0CitiNAorYTMKK2EyCitjMworYzIKK2IzCitiMgorYzEKK2IxCithMQorYTAKK2wyCitsMQorbDAKK3Jvb3QKK0VPRgorCit0ZXN0X291dHB1dF9leHBlY3Rfc3VjY2VzcyAnc2ltcGxlIGF1dGhvci1kYXRlIG9yZGVyJyAnZ2l0IHJldi1saXN0IC0tYXV0aG9yLWRhdGUtb3JkZXIgIEhFQUQnIDw8RU9GCitsNQorbDQKK2wzCithNAorYjQKK2MzCitjMgorYjMKK2IyCitjMQorYjEKK2EzCithMgorYTEKK2EwCitsMgorbDEKK2wwCityb290CitFT0YKKwogdGVzdF9vdXRwdXRfZXhwZWN0X3N1Y2Nlc3MgJ3R3byBkaWFtb25kcyB0b3BvIG9yZGVyIChnNiknICdnaXQgcmV2LWxpc3QgLS10b3BvLW9yZGVyICBnNCcgPDxFT0YKIGc0CiBoMgpkaWZmIC0tZ2l0IGEvdC90NjAwNi1yZXYtbGlzdC1mb3JtYXQuc2ggYi90L3Q2MDA2LXJldi1saXN0LWZvcm1hdC5zaAppbmRleCAwMzkzYzlmLi45ODc0NDAzIDEwMDc1NQotLS0gYS90L3Q2MDA2LXJldi1saXN0LWZvcm1hdC5zaAorKysgYi90L3Q2MDA2LXJldi1saXN0LWZvcm1hdC5zaApAQCAtMSwyMCArMSw0NSBAQAogIyEvYmluL3NoCiAKKyMgQ29weXJpZ2h0IChjKSAyMDA5IEplbnMgTGVobWFubgorIyBDb3B5cmlnaHQgKGMpIDIwMTEgQWxleGV5IFNodW1raW4gKCsgbm9uLVVURi04IGNvbW1pdCBlbmNvZGluZyB0ZXN0cykKKwogdGVzdF9kZXNjcmlwdGlvbj0nZ2l0IHJldi1saXN0IC0tcHJldHR5PWZvcm1hdCB0ZXN0JwogCiAuIC4vdGVzdC1saWIuc2gKIC4gIiRURVNUX0RJUkVDVE9SWSIvbGliLXRlcm1pbmFsLnNoCiAKIHRlc3RfdGljaworIyBTdHJpbmcgImFkZGVkIiBpbiBHZXJtYW4KKyMgKHRyYW5zbGF0ZWQgd2l0aCBHb29nbGUgVHJhbnNsYXRlKSwKKyMgZW5jb2RlZCBpbiBVVEYtOCwgdXNlZCBhcyBhIGNvbW1pdCBsb2cgbWVzc2FnZSBiZWxvdy4KK2FkZGVkPSQocHJpbnRmICJhZGRlZCAoaGluenVnZWZcMzAzXDI3NGd0KSBmb28iKQorYWRkZWRfaXNvODg1OTE9JChlY2hvICIkYWRkZWQiIHwgaWNvbnYgLWYgdXRmLTggLXQgaXNvODg1OS0xKQorIyBzYW1lIGJ1dCAiY2hhbmdlZCIKK2NoYW5nZWQ9JChwcmludGYgImNoYW5nZWQgKGdlXDMwM1wyNDRuZGVydCkgZm9vIikKK2NoYW5nZWRfaXNvODg1OTE9JChlY2hvICIkY2hhbmdlZCIgfCBpY29udiAtZiB1dGYtOCAtdCBpc284ODU5LTEpCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwJyAnCi10b3VjaCBmb28gJiYgZ2l0IGFkZCBmb28gJiYgZ2l0IGNvbW1pdCAtbSAiYWRkZWQgZm9vIiAmJgotICBlY2hvIGNoYW5nZWQgPmZvbyAmJiBnaXQgY29tbWl0IC1hIC1tICJjaGFuZ2VkIGZvbyIKKwk6ID5mb28gJiYKKwlnaXQgYWRkIGZvbyAmJgorCWdpdCBjb25maWcgaTE4bi5jb21taXRFbmNvZGluZyBpc284ODU5LTEgJiYKKwlnaXQgY29tbWl0IC1tICIkYWRkZWRfaXNvODg1OTEiICYmCisJaGVhZDE9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpICYmCisJaGVhZDFfc2hvcnQ9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC0tc2hvcnQgJGhlYWQxKSAmJgorCXRyZWUxPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEOikgJiYKKwl0cmVlMV9zaG9ydD0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1zaG9ydCAkdHJlZTEpICYmCisJZWNobyAiJGNoYW5nZWQiID4gZm9vICYmCisJZ2l0IGNvbW1pdCAtYSAtbSAiJGNoYW5nZWRfaXNvODg1OTEiICYmCisJaGVhZDI9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpICYmCisJaGVhZDJfc2hvcnQ9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC0tc2hvcnQgJGhlYWQyKSAmJgorCXRyZWUyPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEOikgJiYKKwl0cmVlMl9zaG9ydD0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1zaG9ydCAkdHJlZTIpCisJZ2l0IGNvbmZpZyAtLXVuc2V0IGkxOG4uY29tbWl0RW5jb2RpbmcKICcKIAotIyB1c2FnZTogdGVzdF9mb3JtYXQgbmFtZSBmb3JtYXRfc3RyaW5nIDxleHBlY3RlZF9vdXRwdXQKKyMgdXNhZ2U6IHRlc3RfZm9ybWF0IG5hbWUgZm9ybWF0X3N0cmluZyBbZmFpbHVyZV0gPGV4cGVjdGVkX291dHB1dAogdGVzdF9mb3JtYXQgKCkgewogCWNhdCA+ZXhwZWN0LiQxCi0JdGVzdF9leHBlY3Rfc3VjY2VzcyAiZm9ybWF0ICQxIiAiCisJdGVzdF9leHBlY3RfJHszOi1zdWNjZXNzfSAiZm9ybWF0ICQxIiAiCiAJCWdpdCByZXYtbGlzdCAtLXByZXR0eT1mb3JtYXQ6JyQyJyBtYXN0ZXIgPm91dHB1dC4kMSAmJgogCQl0ZXN0X2NtcCBleHBlY3QuJDEgb3V0cHV0LiQxCiAJIgpAQCAtMzIsNDkgKzU3LDQ5IEBACiAJdGVzdF9jbXAgZXhwZWN0ICIkMSIKIH0KIAotdGVzdF9mb3JtYXQgcGVyY2VudCAlJWggPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKK3Rlc3RfZm9ybWF0IHBlcmNlbnQgJSVoIDw8RU9GCitjb21taXQgJGhlYWQyCiAlaAotY29tbWl0IDg2Yzc1Y2ZkNzA4YTBlNTg2OGRjODc2ZWQ1YjhiYjY2YzgwYjQ4NzMKK2NvbW1pdCAkaGVhZDEKICVoCiBFT0YKIAotdGVzdF9mb3JtYXQgaGFzaCAlSCVuJWggPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLTEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLTEzMWEzMTAKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi04NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi04NmM3NWNmCit0ZXN0X2Zvcm1hdCBoYXNoICVIJW4laCA8PEVPRgorY29tbWl0ICRoZWFkMgorJGhlYWQyCiskaGVhZDJfc2hvcnQKK2NvbW1pdCAkaGVhZDEKKyRoZWFkMQorJGhlYWQxX3Nob3J0CiBFT0YKIAotdGVzdF9mb3JtYXQgdHJlZSAlVCVuJXQgPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLWZlNzIyNjEyZjI2ZGE1MDY0YzMyY2EzODQzYWExNTRiZGIwYjA4YTAKLWZlNzIyNjEKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi00ZDVmY2FkYzI5M2EzNDhlODhmNzc3ZGMwOTIwZjExZTdkNzE0NDFjCi00ZDVmY2FkCit0ZXN0X2Zvcm1hdCB0cmVlICVUJW4ldCA8PEVPRgorY29tbWl0ICRoZWFkMgorJHRyZWUyCiskdHJlZTJfc2hvcnQKK2NvbW1pdCAkaGVhZDEKKyR0cmVlMQorJHRyZWUxX3Nob3J0CiBFT0YKIAotdGVzdF9mb3JtYXQgcGFyZW50cyAlUCVuJXAgPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLTg2Yzc1Y2ZkNzA4YTBlNTg2OGRjODc2ZWQ1YjhiYjY2YzgwYjQ4NzMKLTg2Yzc1Y2YKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCit0ZXN0X2Zvcm1hdCBwYXJlbnRzICVQJW4lcCA8PEVPRgorY29tbWl0ICRoZWFkMgorJGhlYWQxCiskaGVhZDFfc2hvcnQKK2NvbW1pdCAkaGVhZDEKIAogCiBFT0YKIAogIyB3ZSBkb24ndCB0ZXN0IHJlbGF0aXZlIGhlcmUKLXRlc3RfZm9ybWF0IGF1dGhvciAlYW4lbiVhZSVuJWFkJW4lYUQlbiVhdCA8PCdFT0YnCi1jb21taXQgMTMxYTMxMGViOTEzZDEwN2RkM2MwOWE2NWQxNjUxMTc1ODk4NzM1ZAordGVzdF9mb3JtYXQgYXV0aG9yICVhbiVuJWFlJW4lYWQlbiVhRCVuJWF0IDw8RU9GCitjb21taXQgJGhlYWQyCiBBIFUgVGhvcgogYXV0aG9yQGV4YW1wbGUuY29tCiBUaHUgQXByIDcgMTU6MTM6MTMgMjAwNSAtMDcwMAogVGh1LCA3IEFwciAyMDA1IDE1OjEzOjEzIC0wNzAwCiAxMTEyOTExOTkzCi1jb21taXQgODZjNzVjZmQ3MDhhMGU1ODY4ZGM4NzZlZDViOGJiNjZjODBiNDg3MworY29tbWl0ICRoZWFkMQogQSBVIFRob3IKIGF1dGhvckBleGFtcGxlLmNvbQogVGh1IEFwciA3IDE1OjEzOjEzIDIwMDUgLTA3MDAKQEAgLTgyLDE0ICsxMDcsMTQgQEAKIDExMTI5MTE5OTMKIEVPRgogCi10ZXN0X2Zvcm1hdCBjb21taXR0ZXIgJWNuJW4lY2UlbiVjZCVuJWNEJW4lY3QgPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKK3Rlc3RfZm9ybWF0IGNvbW1pdHRlciAlY24lbiVjZSVuJWNkJW4lY0QlbiVjdCA8PEVPRgorY29tbWl0ICRoZWFkMgogQyBPIE1pdHRlcgogY29tbWl0dGVyQGV4YW1wbGUuY29tCiBUaHUgQXByIDcgMTU6MTM6MTMgMjAwNSAtMDcwMAogVGh1LCA3IEFwciAyMDA1IDE1OjEzOjEzIC0wNzAwCiAxMTEyOTExOTkzCi1jb21taXQgODZjNzVjZmQ3MDhhMGU1ODY4ZGM4NzZlZDViOGJiNjZjODBiNDg3MworY29tbWl0ICRoZWFkMQogQyBPIE1pdHRlcgogY29tbWl0dGVyQGV4YW1wbGUuY29tCiBUaHUgQXByIDcgMTU6MTM6MTMgMjAwNSAtMDcwMApAQCAtOTcsNDMgKzEyMiw0NSBAQAogMTExMjkxMTk5MwogRU9GCiAKLXRlc3RfZm9ybWF0IGVuY29kaW5nICVlIDw8J0VPRicKLWNvbW1pdCAxMzFhMzEwZWI5MTNkMTA3ZGQzYzA5YTY1ZDE2NTExNzU4OTg3MzVkCi1jb21taXQgODZjNzVjZmQ3MDhhMGU1ODY4ZGM4NzZlZDViOGJiNjZjODBiNDg3MwordGVzdF9mb3JtYXQgZW5jb2RpbmcgJWUgPDxFT0YKK2NvbW1pdCAkaGVhZDIKK2lzbzg4NTktMQorY29tbWl0ICRoZWFkMQoraXNvODg1OS0xCiBFT0YKIAotdGVzdF9mb3JtYXQgc3ViamVjdCAlcyA8PCdFT0YnCi1jb21taXQgMTMxYTMxMGViOTEzZDEwN2RkM2MwOWE2NWQxNjUxMTc1ODk4NzM1ZAotY2hhbmdlZCBmb28KLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi1hZGRlZCBmb28KK3Rlc3RfZm9ybWF0IHN1YmplY3QgJXMgPDxFT0YKK2NvbW1pdCAkaGVhZDIKKyRjaGFuZ2VkCitjb21taXQgJGhlYWQxCiskYWRkZWQKIEVPRgogCi10ZXN0X2Zvcm1hdCBib2R5ICViIDw8J0VPRicKLWNvbW1pdCAxMzFhMzEwZWI5MTNkMTA3ZGQzYzA5YTY1ZDE2NTExNzU4OTg3MzVkCi1jb21taXQgODZjNzVjZmQ3MDhhMGU1ODY4ZGM4NzZlZDViOGJiNjZjODBiNDg3MwordGVzdF9mb3JtYXQgYm9keSAlYiA8PEVPRgorY29tbWl0ICRoZWFkMgorY29tbWl0ICRoZWFkMQogRU9GCiAKLXRlc3RfZm9ybWF0IHJhdy1ib2R5ICVCIDw8J0VPRicKLWNvbW1pdCAxMzFhMzEwZWI5MTNkMTA3ZGQzYzA5YTY1ZDE2NTExNzU4OTg3MzVkCi1jaGFuZ2VkIGZvbwordGVzdF9mb3JtYXQgcmF3LWJvZHkgJUIgPDxFT0YKK2NvbW1pdCAkaGVhZDIKKyRjaGFuZ2VkCiAKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi1hZGRlZCBmb28KK2NvbW1pdCAkaGVhZDEKKyRhZGRlZAogCiBFT0YKIAotdGVzdF9mb3JtYXQgY29sb3JzICVDcmVkZm9vJUNncmVlbmJhciVDYmx1ZWJheiVDcmVzZXR4eXp6eSA8PCdFT0YnCi1jb21taXQgMTMxYTMxMGViOTEzZDEwN2RkM2MwOWE2NWQxNjUxMTc1ODk4NzM1ZAordGVzdF9mb3JtYXQgY29sb3JzICVDcmVkZm9vJUNncmVlbmJhciVDYmx1ZWJheiVDcmVzZXR4eXp6eSA8PEVPRgorY29tbWl0ICRoZWFkMgogG1szMW1mb28bWzMybWJhchtbMzRtYmF6G1tteHl6enkKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCitjb21taXQgJGhlYWQxCiAbWzMxbWZvbxtbMzJtYmFyG1szNG1iYXobW214eXp6eQogRU9GCiAKLXRlc3RfZm9ybWF0IGFkdmFuY2VkLWNvbG9ycyAnJUMocmVkIHllbGxvdyBib2xkKWZvbyVDKHJlc2V0KScgPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKK3Rlc3RfZm9ybWF0IGFkdmFuY2VkLWNvbG9ycyAnJUMocmVkIHllbGxvdyBib2xkKWZvbyVDKHJlc2V0KScgPDxFT0YKK2NvbW1pdCAkaGVhZDIKIBtbMTszMTs0M21mb28bW20KLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCitjb21taXQgJGhlYWQxCiAbWzE7MzE7NDNtZm9vG1ttCiBFT0YKIApAQCAtMTc5LDQ2ICsyMDYsNzEgQEAKIAkpCiAnCiAKLWNhdCA+Y29tbWl0LW1zZyA8PCdFT0YnCitpY29udiAtZiB1dGYtOCAtdCBpc284ODU5LTEgPiBjb21taXQtbXNnIDw8RU9GCiBUZXN0IHByaW50aW5nIG9mIGNvbXBsZXggYm9kaWVzCiAKIFRoaXMgY29tbWl0IG1lc3NhZ2UgaXMgbXVjaCBsb25nZXIgdGhhbiB0aGUgb3RoZXJzLAogYW5kIGl0IHdpbGwgYmUgZW5jb2RlZCBpbiBpc284ODU5LTEuIFdlIHNob3VsZCB0aGVyZWZvcmUKLWluY2x1ZGUgYW4gaXNvODg1OSBjaGFyYWN0ZXI6IKFidWVubyEKK2luY2x1ZGUgYW4gaXNvODg1OSBjaGFyYWN0ZXI6IMKhYnVlbm8hCiBFT0YKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgY29tcGxleCBib2R5JyAnCi1naXQgY29uZmlnIGkxOG4uY29tbWl0ZW5jb2RpbmcgaXNvODg1OS0xICYmCi0gIGVjaG8gY2hhbmdlMiA+Zm9vICYmIGdpdCBjb21taXQgLWEgLUYgY29tbWl0LW1zZworCWdpdCBjb25maWcgaTE4bi5jb21taXRlbmNvZGluZyBpc284ODU5LTEgJiYKKwllY2hvIGNoYW5nZTIgPmZvbyAmJiBnaXQgY29tbWl0IC1hIC1GIGNvbW1pdC1tc2cgJiYKKwloZWFkMz0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgSEVBRCkgJiYKKwloZWFkM19zaG9ydD0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCAkaGVhZDMpCiAnCiAKLXRlc3RfZm9ybWF0IGNvbXBsZXgtZW5jb2RpbmcgJWUgPDwnRU9GJwotY29tbWl0IDFlZDg4ZGE0YTViNWVkOGM0NDkxMTRhYzEzMWVmYzYyMTc4NzM0YzMKK3Rlc3RfZm9ybWF0IGNvbXBsZXgtZW5jb2RpbmcgJWUgPDxFT0YKK2NvbW1pdCAkaGVhZDMKIGlzbzg4NTktMQotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCitjb21taXQgJGhlYWQyCitpc284ODU5LTEKK2NvbW1pdCAkaGVhZDEKK2lzbzg4NTktMQogRU9GCiAKLXRlc3RfZm9ybWF0IGNvbXBsZXgtc3ViamVjdCAlcyA8PCdFT0YnCi1jb21taXQgMWVkODhkYTRhNWI1ZWQ4YzQ0OTExNGFjMTMxZWZjNjIxNzg3MzRjMwordGVzdF9mb3JtYXQgY29tcGxleC1zdWJqZWN0ICVzIDw8RU9GCitjb21taXQgJGhlYWQzCiBUZXN0IHByaW50aW5nIG9mIGNvbXBsZXggYm9kaWVzCi1jb21taXQgMTMxYTMxMGViOTEzZDEwN2RkM2MwOWE2NWQxNjUxMTc1ODk4NzM1ZAotY2hhbmdlZCBmb28KLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi1hZGRlZCBmb28KK2NvbW1pdCAkaGVhZDIKKyRjaGFuZ2VkX2lzbzg4NTkxCitjb21taXQgJGhlYWQxCiskYWRkZWRfaXNvODg1OTEKIEVPRgogCi10ZXN0X2Zvcm1hdCBjb21wbGV4LWJvZHkgJWIgPDwnRU9GJwotY29tbWl0IDFlZDg4ZGE0YTViNWVkOGM0NDkxMTRhYzEzMWVmYzYyMTc4NzM0YzMKLVRoaXMgY29tbWl0IG1lc3NhZ2UgaXMgbXVjaCBsb25nZXIgdGhhbiB0aGUgb3RoZXJzLAotYW5kIGl0IHdpbGwgYmUgZW5jb2RlZCBpbiBpc284ODU5LTEuIFdlIHNob3VsZCB0aGVyZWZvcmUKLWluY2x1ZGUgYW4gaXNvODg1OSBjaGFyYWN0ZXI6IKFidWVubyEKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ByZXBhcmUgZXhwZWN0ZWQgbWVzc2FnZXMgKGZvciB0ZXN0ICViKScgJworCWNhdCA8PC1FT0YgPmV4cGVjdGVkLnV0Zi04ICYmCisJY29tbWl0ICRoZWFkMworCVRoaXMgY29tbWl0IG1lc3NhZ2UgaXMgbXVjaCBsb25nZXIgdGhhbiB0aGUgb3RoZXJzLAorCWFuZCBpdCB3aWxsIGJlIGVuY29kZWQgaW4gaXNvODg1OS0xLiBXZSBzaG91bGQgdGhlcmVmb3JlCisJaW5jbHVkZSBhbiBpc284ODU5IGNoYXJhY3RlcjogwqFidWVubyEKIAotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCisJY29tbWl0ICRoZWFkMgorCWNvbW1pdCAkaGVhZDEKKwlFT0YKKwlpY29udiAtZiB1dGYtOCAtdCBpc284ODU5LTEgZXhwZWN0ZWQudXRmLTggPmV4cGVjdGVkLmlzbzg4NTktMQorJworCit0ZXN0X2Zvcm1hdCBjb21wbGV4LWJvZHkgJWIgPGV4cGVjdGVkLmlzbzg4NTktMQorCisjIEdpdCB1c2VzIGkxOG4uY29tbWl0RW5jb2RpbmcgaWYgbm8gaTE4bi5sb2dPdXRwdXRFbmNvZGluZyBzZXQKKyMgc28gdW5zZXQgaTE4bi5jb21taXRFbmNvZGluZyB0byB0ZXN0IGVuY29kaW5nIGNvbnZlcnNpb24KK2dpdCBjb25maWcgLS11bnNldCBpMThuLmNvbW1pdEVuY29kaW5nCisKK3Rlc3RfZm9ybWF0IGNvbXBsZXgtc3ViamVjdC1jb21taXRlbmNvZGluZy11bnNldCAlcyA8PEVPRgorY29tbWl0ICRoZWFkMworVGVzdCBwcmludGluZyBvZiBjb21wbGV4IGJvZGllcworY29tbWl0ICRoZWFkMgorJGNoYW5nZWQKK2NvbW1pdCAkaGVhZDEKKyRhZGRlZAogRU9GCiAKK3Rlc3RfZm9ybWF0IGNvbXBsZXgtYm9keS1jb21taXRlbmNvZGluZy11bnNldCAlYiA8ZXhwZWN0ZWQudXRmLTgKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnJXgwMCBzaG93cyBOVUwnICcKLQllY2hvICA+ZXhwZWN0IGNvbW1pdCAxZWQ4OGRhNGE1YjVlZDhjNDQ5MTE0YWMxMzFlZmM2MjE3ODczNGMzICYmCisJZWNobyAgPmV4cGVjdCBjb21taXQgJGhlYWQzICYmCiAJZWNobyA+PmV4cGVjdCBmb29RYmFyICYmCiAJZ2l0IHJldi1saXN0IC0xIC0tZm9ybWF0PWZvbyV4MDBiYXIgSEVBRCA+YWN0dWFsLm51bCAmJgogCW51bF90b19xIDxhY3R1YWwubnVsID5hY3R1YWwgJiYKQEAgLTI2NSwxMiArMzE3LDEyIEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FkZCBTUCBiZWZvcmUgbm9uLWVtcHR5ICgxKScgJwogCWdpdCBzaG93IC1zIC0tcHJldHR5PWZvcm1hdDoiJXMlIGJUaGFua3MiIEhFQUReXiA+YWN0dWFsICYmCi0JdGVzdCAkKHdjIC13IDxhY3R1YWwpID0gMgorCXRlc3QgJCh3YyAtdyA8YWN0dWFsKSA9IDMKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkIFNQIGJlZm9yZSBub24tZW1wdHkgKDIpJyAnCiAJZ2l0IHNob3cgLXMgLS1wcmV0dHk9Zm9ybWF0OiIlcyUgc1RoYW5rcyIgSEVBRF5eID5hY3R1YWwgJiYKLQl0ZXN0ICQod2MgLXcgPGFjdHVhbCkgPSA0CisJdGVzdCAkKHdjIC13IDxhY3R1YWwpID0gNgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICctLWFiYnJldicgJwpkaWZmIC0tZ2l0IGEvdC90NjAxMi1yZXYtbGlzdC1zaW1wbGlmeS5zaCBiL3QvdDYwMTItcmV2LWxpc3Qtc2ltcGxpZnkuc2gKaW5kZXggZGQ2ZGM4NC4uZmRlNWU3MSAxMDA3NTUKLS0tIGEvdC90NjAxMi1yZXYtbGlzdC1zaW1wbGlmeS5zaAorKysgYi90L3Q2MDEyLXJldi1saXN0LXNpbXBsaWZ5LnNoCkBAIC0xNCwyMSArMTQsMjQgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAJZWNobyAiSGkgdGhlcmUiID5maWxlICYmCi0JZ2l0IGFkZCBmaWxlICYmCi0JdGVzdF90aWNrICYmIGdpdCBjb21taXQgLW0gIkluaXRpYWwgZmlsZSIgJiYKKwllY2hvICJpbml0aWFsIiA+bG9zdCAmJgorCWdpdCBhZGQgZmlsZSBsb3N0ICYmCisJdGVzdF90aWNrICYmIGdpdCBjb21taXQgLW0gIkluaXRpYWwgZmlsZSBhbmQgbG9zdCIgJiYKIAlub3RlIEEgJiYKIAogCWdpdCBicmFuY2ggb3RoZXItYnJhbmNoICYmCiAKIAllY2hvICJIZWxsbyIgPmZpbGUgJiYKLQlnaXQgYWRkIGZpbGUgJiYKLQl0ZXN0X3RpY2sgJiYgZ2l0IGNvbW1pdCAtbSAiTW9kaWZpZWQgZmlsZSIgJiYKKwllY2hvICJzZWNvbmQiID5sb3N0ICYmCisJZ2l0IGFkZCBmaWxlIGxvc3QgJiYKKwl0ZXN0X3RpY2sgJiYgZ2l0IGNvbW1pdCAtbSAiTW9kaWZpZWQgZmlsZSBhbmQgbG9zdCIgJiYKIAlub3RlIEIgJiYKIAogCWdpdCBjaGVja291dCBvdGhlci1icmFuY2ggJiYKIAogCWVjaG8gIkhlbGxvIiA+ZmlsZSAmJgotCWdpdCBhZGQgZmlsZSAmJgorCT5sb3N0ICYmCisJZ2l0IGFkZCBmaWxlIGxvc3QgJiYKIAl0ZXN0X3RpY2sgJiYgZ2l0IGNvbW1pdCAtbSAiTW9kaWZpZWQgdGhlIGZpbGUgaWRlbnRpY2FsbHkiICYmCiAJbm90ZSBDICYmCiAKQEAgLTM3LDcgKzQwLDkgQEAKIAl0ZXN0X3RpY2sgJiYgZ2l0IGNvbW1pdCAtbSAiQWRkIGFub3RoZXIgZmlsZSIgJiYKIAlub3RlIEQgJiYKIAotCXRlc3RfdGljayAmJiBnaXQgbWVyZ2UgLW0gIm1lcmdlIiBtYXN0ZXIgJiYKKwl0ZXN0X3RpY2sgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLW0gIm1lcmdlIiBtYXN0ZXIgJiYKKwk+bG9zdCAmJiBnaXQgY29tbWl0IC1hIC1tICJtZXJnZSIgJiYKIAlub3RlIEUgJiYKIAogCWVjaG8gIllldCBhbm90aGVyIiA+ZWxpZiAmJgpAQCAtMTA1LDkgKzExMCwyNyBAQAogY2hlY2tfcmVzdWx0ICdLIEkgSCBFIEMgQiBBJyAtLWZ1bGwtaGlzdG9yeSAtLSBmaWxlCiBjaGVja19yZXN1bHQgJ0sgSSBIIEUgQyBCIEEnIC0tZnVsbC1oaXN0b3J5IC0tdG9wby1vcmRlciAtLSBmaWxlCiBjaGVja19yZXN1bHQgJ0sgSSBIIEUgQyBCIEEnIC0tZnVsbC1oaXN0b3J5IC0tZGF0ZS1vcmRlciAtLSBmaWxlCi1jaGVja19vdXRjb21lIGZhaWx1cmUgJ0kgRSBDIEIgQScgLS1zaW1wbGlmeS1tZXJnZXMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdJIEUgQyBCIEEnIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKIGNoZWNrX3Jlc3VsdCAnSSBCIEEnIC0tIGZpbGUKIGNoZWNrX3Jlc3VsdCAnSSBCIEEnIC0tdG9wby1vcmRlciAtLSBmaWxlCiBjaGVja19yZXN1bHQgJ0gnIC0tZmlyc3QtcGFyZW50IC0tIGFub3RoZXItZmlsZQogCitjaGVja19yZXN1bHQgJ0UgQyBCIEEnIC0tZnVsbC1oaXN0b3J5IEUgLS0gbG9zdAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZnVsbCBoaXN0b3J5IHNpbXBsaWZpY2F0aW9uIHdpdGhvdXQgcGFyZW50JyAnCisJcHJpbnRmICIlc1xuIiBFIEMgQiBBID5leHBlY3QgJiYKKwlnaXQgbG9nIC0tcHJldHR5PSIkRk1UIiAtLWZ1bGwtaGlzdG9yeSBFIC0tIGxvc3QgfAorCXVubm90ZSA+YWN0dWFsICYmCisJc2VkIC1lICJzL14uKglcKFteIF0qXCkgLiovXDEvIiA+Y2hlY2sgPGFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBjaGVjayB8fCB7CisJCWNhdCBhY3R1YWwKKwkJZmFsc2UKKwl9CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tZnVsbC1kaWZmIGlzIG5vdCBhZmZlY3RlZCBieSAtLXBhcmVudHMnICcKKwlnaXQgbG9nIC1wIC0tcHJldHR5PSIlSCIgLS1mdWxsLWRpZmYgLS0gZmlsZSA+ZXhwZWN0ZWQgJiYKKwlnaXQgbG9nIC1wIC0tcHJldHR5PSIlSCIgLS1mdWxsLWRpZmYgLS1wYXJlbnRzIC0tIGZpbGUgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDYwMTktcmV2LWxpc3QtYW5jZXN0cnktcGF0aC5zaCBiL3QvdDYwMTktcmV2LWxpc3QtYW5jZXN0cnktcGF0aC5zaAppbmRleCAzOWI0Y2IwLi5kYWJlYmFlIDEwMDc1NQotLS0gYS90L3Q2MDE5LXJldi1saXN0LWFuY2VzdHJ5LXBhdGguc2gKKysrIGIvdC90NjAxOS1yZXYtbGlzdC1hbmNlc3RyeS1wYXRoLnNoCkBAIC0xMyw2ICsxMywxMyBAQAogIwogIyAgRC4uTSAtLSBNLnQgICAgICAgICAgICAgICAgID09IE0KICMgIC0tYW5jZXN0cnktcGF0aCBELi5NIC0tIE0udCA9PSBNCisjCisjICBGLi4uSSAgICAgICAgICAgICAgICAgPT0gRiBHIEggSQorIyAgLS1hbmNlc3RyeS1wYXRoIEYuLi5JID09IEYgSCBJCisjCisjICBHLi5NIC0tIEcudCAgICAgICAgICAgICAgICAgPT0gW25vdGhpbmcgLSB3YXMgZHJvcHBlZCBpbiAiLXMgb3VycyIgbWVyZ2UgTF0KKyMgIC0tYW5jZXN0cnktcGF0aCBHLi5NIC0tIEcudCA9PSBMCisjICAtLWFuY2VzdHJ5LXBhdGggLS1zaW1wbGlmeS1tZXJnZXMgR14uLk0gLS0gRy50ID09IEcgTAogCiAuIC4vdGVzdC1saWIuc2gKIApAQCAtNjMsMTMgKzcwLDUyIEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGNoIEQuLk0gLS0gTS50JyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGggRC4uTSAtLSBNLnQnICcKIAllY2hvIE0gPmV4cGVjdCAmJgogCWdpdCByZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGggLS1mb3JtYXQ9JXMgRC4uTSAtLSBNLnQgfAogCXNlZCAtZSAiL15jb21taXQgL2QiID5hY3R1YWwgJiYKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Jldi1saXN0IEYuLi5JJyAnCisJZm9yIGMgaW4gRiBHIEggSTsgZG8gZWNobyAkYzsgZG9uZSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1saXN0IC0tZm9ybWF0PSVzIEYuLi5JIHwKKwlzZWQgLWUgIi9eY29tbWl0IC9kIiB8CisJc29ydCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGggRi4uLkknICcKKwlmb3IgYyBpbiBGIEggSTsgZG8gZWNobyAkYzsgZG9uZSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1saXN0IC0tYW5jZXN0cnktcGF0aCAtLWZvcm1hdD0lcyBGLi4uSSB8CisJc2VkIC1lICIvXmNvbW1pdCAvZCIgfAorCXNvcnQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKworIyBHLnQgaXMgZHJvcHBlZCBpbiBhbiAiLXMgb3VycyIgbWVyZ2UKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Jldi1saXN0IEcuLk0gLS0gRy50JyAnCisJPmV4cGVjdCAmJgorCWdpdCByZXYtbGlzdCAtLWZvcm1hdD0lcyBHLi5NIC0tIEcudCB8CisJc2VkIC1lICIvXmNvbW1pdCAvZCIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmV2LWxpc3QgLS1hbmNlc3RyeS1wYXRoIEcuLk0gLS0gRy50JyAnCisJZWNobyBMID5leHBlY3QgJiYKKwlnaXQgcmV2LWxpc3QgLS1hbmNlc3RyeS1wYXRoIC0tZm9ybWF0PSVzIEcuLk0gLS0gRy50IHwKKwlzZWQgLWUgIi9eY29tbWl0IC9kIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGggLS1zaW1wbGlmeS1tZXJnZXMgR14uLk0gLS0gRy50JyAnCisJZm9yIGMgaW4gRyBMOyBkbyBlY2hvICRjOyBkb25lID5leHBlY3QgJiYKKwlnaXQgcmV2LWxpc3QgLS1hbmNlc3RyeS1wYXRoIC0tc2ltcGxpZnktbWVyZ2VzIC0tZm9ybWF0PSVzIEdeLi5NIC0tIEcudCB8CisJc2VkIC1lICIvXmNvbW1pdCAvZCIgfAorCXNvcnQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogIyAgIGItLS1iYwogIyAgLyBcIC8KICMgYSAgIFgKZGlmZiAtLWdpdCBhL3QvdDYwMjEtbWVyZ2UtY3Jpc3MtY3Jvc3Muc2ggYi90L3Q2MDIxLW1lcmdlLWNyaXNzLWNyb3NzLnNoCmluZGV4IDMzMWI5YjAuLmQxNWIzMTMgMTAwNzU1Ci0tLSBhL3QvdDYwMjEtbWVyZ2UtY3Jpc3MtY3Jvc3Muc2gKKysrIGIvdC90NjAyMS1tZXJnZS1jcmlzcy1jcm9zcy5zaApAQCAtMyw3ICszLDcgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA1IEZyZWRyaWsgS3VpdmluZW4KICMKIAotIyBTZWUgaHR0cDovL21hcmMudGhlYWltc2dyb3VwLmNvbS8/bD1naXQmbT0xMTE0NjMzNTg1MDAzNjImdz0yIGZvciBhCisjIFNlZSBodHRwOi8vbWFyYy5pbmZvLz9sPWdpdCZtPTExMTQ2MzM1ODUwMDM2MiZ3PTIgZm9yIGEKICMgbmljZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoaXMgaXMgYWJvdXQuCiAKIApkaWZmIC0tZ2l0IGEvdC90NjAzNS1tZXJnZS1kaXItdG8tc3ltbGluay5zaCBiL3QvdDYwMzUtbWVyZ2UtZGlyLXRvLXN5bWxpbmsuc2gKaW5kZXggMjU5OWFlNS4uOTMyNGVhNCAxMDA3NTUKLS0tIGEvdC90NjAzNS1tZXJnZS1kaXItdG8tc3ltbGluay5zaAorKysgYi90L3Q2MDM1LW1lcmdlLWRpci10by1zeW1saW5rLnNoCkBAIC0zLDcgKzMsNyBAQAogdGVzdF9kZXNjcmlwdGlvbj0nbWVyZ2luZyB3aGVuIGEgZGlyZWN0b3J5IHdhcyByZXBsYWNlZCB3aXRoIGEgc3ltbGluaycKIC4gLi90ZXN0LWxpYi5zaAogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdjcmVhdGUgYSBjb21taXQgd2hlcmUgZGlyIGEvYiBjaGFuZ2VkIHRvIHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NyZWF0ZSBhIGNvbW1pdCB3aGVyZSBkaXIgYS9iIGNoYW5nZWQgdG8gc3ltbGluaycgJwogCW1rZGlyIC1wIGEvYi9jIGEvYi0yL2MgJiYKIAk+IGEvYi9jL2QgJiYKIAk+IGEvYi0yL2MvZCAmJgpAQCAtMTIsMTIgKzEyLDEyIEBACiAJZ2l0IGNvbW1pdCAtbSBiYXNlICYmCiAJZ2l0IHRhZyBzdGFydCAmJgogCXJtIC1yZiBhL2IgJiYKLQlsbiAtcyBiLTIgYS9iICYmCiAJZ2l0IGFkZCAtQSAmJgorCXRlc3RfbG5fc19hZGQgYi0yIGEvYiAmJgogCWdpdCBjb21taXQgLW0gImRpciB0byBzeW1saW5rIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdjaGVja291dCBkb2VzIG5vdCBjbG9iYmVyIHVudHJhY2tlZCBzeW1saW5rJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCBkb2VzIG5vdCBjbG9iYmVyIHVudHJhY2tlZCBzeW1saW5rJyAnCiAJZ2l0IGNoZWNrb3V0IEhFQUReMCAmJgogCWdpdCByZXNldCAtLWhhcmQgbWFzdGVyICYmCiAJZ2l0IHJtIC0tY2FjaGVkIGEvYiAmJgpAQCAtMjUsNyArMjUsNyBAQAogCXRlc3RfbXVzdF9mYWlsIGdpdCBjaGVja291dCBzdGFydF4wCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2EvYi0yL2MvZCBpcyBrZXB0IHdoZW4gY2xvYmJlcmluZyBzeW1saW5rIGInICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2EvYi0yL2MvZCBpcyBrZXB0IHdoZW4gY2xvYmJlcmluZyBzeW1saW5rIGInICcKIAlnaXQgY2hlY2tvdXQgSEVBRF4wICYmCiAJZ2l0IHJlc2V0IC0taGFyZCBtYXN0ZXIgJiYKIAlnaXQgcm0gLS1jYWNoZWQgYS9iICYmCkBAIC0zNCwxNCArMzQsMTQgQEAKIAl0ZXN0IC1mIGEvYi0yL2MvZAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdjaGVja291dCBzaG91bGQgbm90IGhhdmUgZGVsZXRlZCBhL2ItMi9jL2QnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrb3V0IHNob3VsZCBub3QgaGF2ZSBkZWxldGVkIGEvYi0yL2MvZCcgJwogCWdpdCBjaGVja291dCBIRUFEXjAgJiYKIAlnaXQgcmVzZXQgLS1oYXJkIG1hc3RlciAmJgogCSBnaXQgY2hlY2tvdXQgc3RhcnReMCAmJgogCSB0ZXN0IC1mIGEvYi0yL2MvZAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdzZXR1cCBmb3IgbWVyZ2UgdGVzdCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgZm9yIG1lcmdlIHRlc3QnICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJdGVzdCAtZiBhL2ItMi9jL2QgJiYKIAllY2hvIHggPiBhL3ggJiYKQEAgLTUwLDM5ICs1MCw1MSBAQAogCWdpdCB0YWcgYmFzZWxpbmUKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnSGFuZGxlIEQvRiBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZXNvbHZlKScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnSGFuZGxlIEQvRiBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZXNvbHZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgYmFzZWxpbmVeMCAmJgogCWdpdCBtZXJnZSAtcyByZXNvbHZlIG1hc3RlciAmJgotCXRlc3QgLWggYS9iICYmCiAJdGVzdCAtZiBhL2ItMi9jL2QKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnSGFuZGxlIEQvRiBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZWN1cnNpdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdhL2Igd2FzIHJlc29sdmVkIGFzIHN5bWxpbmsnICcKKwl0ZXN0IC1oIGEvYgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdIYW5kbGUgRC9GIGNvbmZsaWN0LCBkbyBub3QgbG9zZSBhL2ItMi9jL2QgaW4gbWVyZ2UgKHJlY3Vyc2l2ZSknICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGJhc2VsaW5lXjAgJiYKIAlnaXQgbWVyZ2UgLXMgcmVjdXJzaXZlIG1hc3RlciAmJgotCXRlc3QgLWggYS9iICYmCiAJdGVzdCAtZiBhL2ItMi9jL2QKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnSGFuZGxlIEYvRCBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZXNvbHZlKScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnYS9iIHdhcyByZXNvbHZlZCBhcyBzeW1saW5rJyAnCisJdGVzdCAtaCBhL2IKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnSGFuZGxlIEYvRCBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZXNvbHZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgbWFzdGVyXjAgJiYKIAlnaXQgbWVyZ2UgLXMgcmVzb2x2ZSBiYXNlbGluZV4wICYmCi0JdGVzdCAtaCBhL2IgJiYKIAl0ZXN0IC1mIGEvYi0yL2MvZAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdIYW5kbGUgRi9EIGNvbmZsaWN0LCBkbyBub3QgbG9zZSBhL2ItMi9jL2QgaW4gbWVyZ2UgKHJlY3Vyc2l2ZSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2EvYiB3YXMgcmVzb2x2ZWQgYXMgc3ltbGluaycgJworCXRlc3QgLWggYS9iCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0hhbmRsZSBGL0QgY29uZmxpY3QsIGRvIG5vdCBsb3NlIGEvYi0yL2MvZCBpbiBtZXJnZSAocmVjdXJzaXZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgbWFzdGVyXjAgJiYKIAlnaXQgbWVyZ2UgLXMgcmVjdXJzaXZlIGJhc2VsaW5lXjAgJiYKLQl0ZXN0IC1oIGEvYiAmJgogCXRlc3QgLWYgYS9iLTIvYy9kCiAnCiAKLXRlc3RfZXhwZWN0X2ZhaWx1cmUgU1lNTElOS1MgJ2RvIG5vdCBsb3NlIHVudHJhY2tlZCBpbiBtZXJnZSAocmVzb2x2ZSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2EvYiB3YXMgcmVzb2x2ZWQgYXMgc3ltbGluaycgJworCXRlc3QgLWggYS9iCisnCisKK3Rlc3RfZXhwZWN0X2ZhaWx1cmUgJ2RvIG5vdCBsb3NlIHVudHJhY2tlZCBpbiBtZXJnZSAocmVzb2x2ZSknICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGJhc2VsaW5lXjAgJiYKIAk+YS9iL2MvZSAmJgpAQCAtOTEsNyArMTAzLDcgQEAKIAl0ZXN0IC1mIGEvYi0yL2MvZAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdkbyBub3QgbG9zZSB1bnRyYWNrZWQgaW4gbWVyZ2UgKHJlY3Vyc2l2ZSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RvIG5vdCBsb3NlIHVudHJhY2tlZCBpbiBtZXJnZSAocmVjdXJzaXZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgYmFzZWxpbmVeMCAmJgogCT5hL2IvYy9lICYmCkBAIC0xMDAsNTIgKzExMiw2MSBAQAogCXRlc3QgLWYgYS9iLTIvYy9kCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2RvIG5vdCBsb3NlIG1vZGlmaWNhdGlvbnMgaW4gbWVyZ2UgKHJlc29sdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkbyBub3QgbG9zZSBtb2RpZmljYXRpb25zIGluIG1lcmdlIChyZXNvbHZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgYmFzZWxpbmVeMCAmJgogCWVjaG8gbW9yZSBjb250ZW50ID4+YS9iL2MvZCAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSAtcyByZXNvbHZlIG1hc3RlcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdkbyBub3QgbG9zZSBtb2RpZmljYXRpb25zIGluIG1lcmdlIChyZWN1cnNpdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkbyBub3QgbG9zZSBtb2RpZmljYXRpb25zIGluIG1lcmdlIChyZWN1cnNpdmUpJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBiYXNlbGluZV4wICYmCiAJZWNobyBtb3JlIGNvbnRlbnQgPj5hL2IvYy9kICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIC1zIHJlY3Vyc2l2ZSBtYXN0ZXIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc2V0dXAgYSBtZXJnZSB3aGVyZSBkaXIgYS9iLTIgY2hhbmdlZCB0byBzeW1saW5rJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBhIG1lcmdlIHdoZXJlIGRpciBhL2ItMiBjaGFuZ2VkIHRvIHN5bWxpbmsnICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IHN0YXJ0XjAgJiYKIAlybSAtcmYgYS9iLTIgJiYKLQlsbiAtcyBiIGEvYi0yICYmCiAJZ2l0IGFkZCAtQSAmJgorCXRlc3RfbG5fc19hZGQgYiBhL2ItMiAmJgogCWdpdCBjb21taXQgLW0gImRpciBhL2ItMiB0byBzeW1saW5rIiAmJgogCWdpdCB0YWcgdGVzdDIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnbWVyZ2Ugc2hvdWxkIG5vdCBoYXZlIEQvRiBjb25mbGljdHMgKHJlc29sdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBzaG91bGQgbm90IGhhdmUgRC9GIGNvbmZsaWN0cyAocmVzb2x2ZSknICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGJhc2VsaW5lXjAgJiYKIAlnaXQgbWVyZ2UgLXMgcmVzb2x2ZSB0ZXN0MiAmJgotCXRlc3QgLWggYS9iLTIgJiYKIAl0ZXN0IC1mIGEvYi9jL2QKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnbWVyZ2Ugc2hvdWxkIG5vdCBoYXZlIEQvRiBjb25mbGljdHMgKHJlY3Vyc2l2ZSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2EvYi0yIHdhcyByZXNvbHZlZCBhcyBzeW1saW5rJyAnCisJdGVzdCAtaCBhL2ItMgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBzaG91bGQgbm90IGhhdmUgRC9GIGNvbmZsaWN0cyAocmVjdXJzaXZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgYmFzZWxpbmVeMCAmJgogCWdpdCBtZXJnZSAtcyByZWN1cnNpdmUgdGVzdDIgJiYKLQl0ZXN0IC1oIGEvYi0yICYmCiAJdGVzdCAtZiBhL2IvYy9kCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ21lcmdlIHNob3VsZCBub3QgaGF2ZSBGL0QgY29uZmxpY3RzIChyZWN1cnNpdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdhL2ItMiB3YXMgcmVzb2x2ZWQgYXMgc3ltbGluaycgJworCXRlc3QgLWggYS9iLTIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbWVyZ2Ugc2hvdWxkIG5vdCBoYXZlIEYvRCBjb25mbGljdHMgKHJlY3Vyc2l2ZSknICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IC1iIGZvbyB0ZXN0MiAmJgogCWdpdCBtZXJnZSAtcyByZWN1cnNpdmUgYmFzZWxpbmVeMCAmJgotCXRlc3QgLWggYS9iLTIgJiYKIAl0ZXN0IC1mIGEvYi9jL2QKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnYS9iLTIgd2FzIHJlc29sdmVkIGFzIHN5bWxpbmsnICcKKwl0ZXN0IC1oIGEvYi0yCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NjExMS1yZXYtbGlzdC10cmVlc2FtZS5zaCBiL3QvdDYxMTEtcmV2LWxpc3QtdHJlZXNhbWUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODhiODRkZgotLS0gL2Rldi9udWxsCisrKyBiL3QvdDYxMTEtcmV2LWxpc3QtdHJlZXNhbWUuc2gKQEAgLTAsMCArMSwxOTYgQEAKKyMhL2Jpbi9zaAorIworIyAgICAgICAgLC0tLUUtLS4gICAqSC0tLS0tLS0tLS0uICAgICAgICAgICAgICogbWFya3MgIVRSRUVTQU1FIHBhcmVudCBwYXRocworIyAgICAgICAvICAgICAgICBcIC8gICAgICAgICAgICAgXCoKKyMgKkEtLSpCLS0tRC0tKkYtKkctLS0tLS0tLS1LLSpMLSpNCisjICAgXCAgICAgLyogICAgICAgXCAgICAgICAvCisjICAgIGAtQy0nICAgICAgICAgIGAtKkktKkoKKyMKKyMgQSBjcmVhdGVzICJmaWxlIiwgQiBhbmQgRiBjaGFuZ2UgaXQuCisjIE9kZCBtZXJnZSBHIHRha2VzIHRoZSBvbGQgdmVyc2lvbiBmcm9tIEIuCisjIEkgY2hhbmdlcyBpdCwgYnV0IEogcmV2ZXJ0cyBpdCwgc28gSyBpcyBUUkVFU0FNRSB0byBib3RoIHBhcmVudHMuCisjIEggYW5kIEwgYm90aCBjaGFuZ2UgImZpbGUiLCBhbmQgTSBtZXJnZXMgdGhvc2UgY2hhbmdlcy4KKwordGVzdF9kZXNjcmlwdGlvbj0nVFJFRVNBTUUgYW5kIGxpbWl0aW5nJworCisuIC4vdGVzdC1saWIuc2gKKworbm90ZSAoKSB7CisJZ2l0IHRhZyAiJDEiCit9CisKK3Vubm90ZSAoKSB7CisJZ2l0IG5hbWUtcmV2IC0tdGFncyAtLXN0ZGluIHwgc2VkIC1lICJzfCRfeDQwICh0YWdzL1woW14pXSpcKSlcKFsgCV1cKXxcMVwyfGciCit9CisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3Mgc2V0dXAgJworCXRlc3RfY29tbWl0ICJJbml0aWFsIGZpbGUiIGZpbGUgIkhpIHRoZXJlIiBBICYmCisJZ2l0IGJyYW5jaCBvdGhlci1icmFuY2ggJiYKKworCXRlc3RfY29tbWl0ICJmaWxlPUhlbGxvIiBmaWxlICJIZWxsbyIgQiAmJgorCWdpdCBicmFuY2ggdGhpcmQtYnJhbmNoICYmCisKKwlnaXQgY2hlY2tvdXQgb3RoZXItYnJhbmNoICYmCisJdGVzdF9jb21taXQgIkFkZGVkIG90aGVyIiBvdGhlciAiSGVsbG8iIEMgJiYKKworCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwl0ZXN0X21lcmdlIEQgb3RoZXItYnJhbmNoICYmCisKKwlnaXQgY2hlY2tvdXQgdGhpcmQtYnJhbmNoICYmCisJdGVzdF9jb21taXQgIlRoaXJkIGZpbGUiIHRoaXJkICJOb3RoaW5nIiBFICYmCisKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF9jb21taXQgImZpbGU9QmxhaCIgZmlsZSAiQmxhaCIgRiAmJgorCisJdGVzdF90aWNrICYmIGdpdCBtZXJnZSAtLW5vLWNvbW1pdCB0aGlyZC1icmFuY2ggJiYKKwlnaXQgY2hlY2tvdXQgdGhpcmQtYnJhbmNoIGZpbGUgJiYKKwlnaXQgY29tbWl0ICYmCisJbm90ZSBHICYmCisJZ2l0IGJyYW5jaCBmaWRkbGVyLWJyYW5jaCAmJgorCisJZ2l0IGNoZWNrb3V0IC1iIHBhcnQyLWJyYW5jaCAmJgorCXRlc3RfY29tbWl0ICJmaWxlPVBhcnQgMiIgZmlsZSAiUGFydCAyIiBIICYmCisKKwlnaXQgY2hlY2tvdXQgZmlkZGxlci1icmFuY2ggJiYKKwl0ZXN0X2NvbW1pdCAiQmFkIGNvbW1pdCIgZmlsZSAiU2lsbHkiIEkgJiYKKworCXRlc3RfdGljayAmJiBnaXQgcmV2ZXJ0IEkgJiYgbm90ZSBKICYmCisKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF90aWNrICYmIGdpdCBtZXJnZSAtLW5vLWZmIGZpZGRsZXItYnJhbmNoICYmCisJbm90ZSBLCisKKwl0ZXN0X2NvbW1pdCAiZmlsZT1QYXJ0IDEiIGZpbGUgIlBhcnQgMSIgTCAmJgorCisJdGVzdF90aWNrICYmIHRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSBwYXJ0Mi1icmFuY2ggJiYKKwl0ZXN0X2NvbW1pdCBNIGZpbGUgIlBhcnRzIDErMiIKKycKKworY2hlY2tfb3V0Y29tZSAoKSB7CisJb3V0Y29tZT0kMQorCXNoaWZ0CisKKwljYXNlICIkMSIgaW4KKwkqIigiKikKKwkJRk1UPSIlUAklSCB8ICVzIgorCQltdW5nZV9hY3R1YWw9IgorCQkJcy9eXChbXgldKlwpCVwoW14gXSpcKSAuKi8oXDEpXDIvCisJCQlzLyAvL2cKKwkJCXMvKCkvLworCQkiCisJCTs7CisJKikKKwkJRk1UPSIlSCB8ICVzIgorCQltdW5nZV9hY3R1YWw9InMvXlwoW14gXSpcKSAuKi9cMS8iCisJCTs7CisJZXNhYyAmJgorCXByaW50ZiAiJXNcbiIgJDEgPmV4cGVjdCAmJgorCXNoaWZ0CisKKwlwYXJhbT0iJCoiICYmCisJdGVzdF9leHBlY3RfJG91dGNvbWUgImxvZyAkcGFyYW0iICcKKwkJZ2l0IGxvZyAtLWZvcm1hdD0iJEZNVCIgJHBhcmFtIHwKKwkJdW5ub3RlID5hY3R1YWwgJiYKKwkJc2VkIC1lICIkbXVuZ2VfYWN0dWFsIiA8YWN0dWFsID5jaGVjayAmJgorCQl0ZXN0X2NtcCBleHBlY3QgY2hlY2sgfHwgeworCQkJY2F0IGFjdHVhbAorCQkJZmFsc2UKKwkJfQorCScKK30KKworY2hlY2tfcmVzdWx0ICgpIHsKKwljaGVja19vdXRjb21lIHN1Y2Nlc3MgIiRAIgorfQorCisjIE9kZCBtZXJnZSBHIGRyb3BzIGEgY2hhbmdlIGluIEYuIEltcG9ydGFudCB0aGF0IEcgaXMgbGlzdGVkIGluIGFsbAorIyBleGNlcHQgdGhlIG1vc3QgYmFzaWMgbGlzdC4gQWNoaWV2aW5nIHRoaXMgbWVhbnMgbm9ybWFsIG1lcmdlIEQgd2lsbCBhbHNvIGJlCisjIHNob3duIGluIG5vcm1hbCBmdWxsLWhpc3RvcnksIGFzIHdlIGNhbid0IGRpc3Rpbmd1aXNoIHVubGVzcyB3ZSBkbyBhCisjIHNpbXBsaWZpY2F0aW9uIHBhc3MuIEFmdGVyIHNpbXBsaWZpY2F0aW9uLCBEIGlzIGRyb3BwZWQgYnV0IEcgcmVtYWlucy4KKyMgQWxzbywgbWVyZ2Ugc2ltcGxpZmljYXRpb24gb2YgRyBzaG91bGQgbm90IGRyb3AgdGhlIHBhcmVudCBCIHRoYXQgdGhlIGRlZmF1bHQKKyMgc2ltcGxlIGhpc3RvcnkgZm9sbG93cy4KK2NoZWNrX3Jlc3VsdCAnTSBMIEsgSiBJIEggRyBGIEUgRCBDIEIgQScKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEspTCAoR0opSyAoSSlKIChHKUkgKEcpSCAoRkUpRyAoRClGIChCKUUgKEJDKUQgKEEpQyAoQSlCIEEnCitjaGVja19yZXN1bHQgJ00gSCBMIEsgSiBJIEcgRSBGIEQgQyBCIEEnIC0tdG9wby1vcmRlcgorY2hlY2tfcmVzdWx0ICdNIEwgSCBCIEEnIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEIpTCAoQilIIChBKUIgQScgLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnTSBMIEogSSBIIEcgRiBEIEIgQScgLS1mdWxsLWhpc3RvcnkgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoTEgpTSAoSylMIChHSilLIChJKUogKEcpSSAoRylIIChGQilHIChEKUYgKEJBKUQgKEEpQiBBJyAtLWZ1bGwtaGlzdG9yeSAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoTEgpTSAoRylIIChKKUwgKEkpSiAoRylJIChGQilHIChCKUYgKEEpQiBBJyAtLXNpbXBsaWZ5LW1lcmdlcyAtLSBmaWxlCitjaGVja19yZXN1bHQgJ00gTCBLIEcgRiBEIEIgQScgLS1maXJzdC1wYXJlbnQKK2NoZWNrX3Jlc3VsdCAnTSBMIEcgRiBCIEEnIC0tZmlyc3QtcGFyZW50IC0tIGZpbGUKKworIyBDaGVjayB0aGF0IG9kZCBtZXJnZSBHIHJlbWFpbnMgc2hvd24gd2hlbiBGIGlzIHRoZSBib3R0b20uCitjaGVja19yZXN1bHQgJ00gTCBLIEogSSBIIEcgRScgRi4uTQorY2hlY2tfcmVzdWx0ICdNIEggTCBLIEogSSBHIEUnIEYuLk0gLS10b3BvLW9yZGVyCitjaGVja19yZXN1bHQgJ00gTCBIJyBGLi5NIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEIpTCAoQilIJyAtLXBhcmVudHMgRi4uTSAtLSBmaWxlCitjaGVja19yZXN1bHQgJ00gTCBKIEkgSCBHJyBGLi5NIC0tZnVsbC1oaXN0b3J5IC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEspTCAoR0opSyAoSSlKIChHKUkgKEcpSCAoRkIpRycgRi4uTSAtLWZ1bGwtaGlzdG9yeSAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoTEgpTSAoRylIIChKKUwgKEkpSiAoRylJIChGQilHJyBGLi5NIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnTSBMIEsgSiBJIEggRycgRi4uTSAtLWFuY2VzdHJ5LXBhdGgKK2NoZWNrX3Jlc3VsdCAnTSBMIEogSSBIIEcnIEYuLk0gLS1hbmNlc3RyeS1wYXRoIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEspTCAoR0opSyAoSSlKIChHKUkgKEcpSCAoRkUpRycgRi4uTSAtLWFuY2VzdHJ5LXBhdGggLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEcpSCAoSilMIChJKUogKEcpSSAoRkUpRycgRi4uTSAtLWFuY2VzdHJ5LXBhdGggLS1zaW1wbGlmeS1tZXJnZXMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEwgSyBHJyBGLi5NIC0tZmlyc3QtcGFyZW50CitjaGVja19yZXN1bHQgJ00gTCBHJyBGLi5NIC0tZmlyc3QtcGFyZW50IC0tIGZpbGUKKworIyBOb3RlIHRoYXQgRyBpcyBwcnVuZWQgd2hlbiBFIGlzIHRoZSBib3R0b20sIGV2ZW4gaWYgaXQncyB0aGUgc2FtZSBjb21taXQgbGlzdAorIyBJZiB3ZSB3YW50IGhpc3Rvcnkgc2luY2UgRSwgdGhlbiB3ZSdyZSBxdWl0ZSBoYXBweSB0byBpZ25vcmUgRyB0aGF0IHRvb2sgRS4KK2NoZWNrX3Jlc3VsdCAnTSBMIEsgSiBJIEggRycgRS4uTSAtLWFuY2VzdHJ5LXBhdGgKK2NoZWNrX3Jlc3VsdCAnTSBMIEogSSBIJyBFLi5NIC0tYW5jZXN0cnktcGF0aCAtLSBmaWxlCitjaGVja19yZXN1bHQgJyhMSClNIChLKUwgKEVKKUsgKEkpSiAoRSlJIChFKUgnIEUuLk0gLS1hbmNlc3RyeS1wYXRoIC0tcGFyZW50cyAtLSBmaWxlCitjaGVja19yZXN1bHQgJyhMSClNIChFKUggKEopTCAoSSlKIChFKUknIEUuLk0gLS1hbmNlc3RyeS1wYXRoIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKKworIyBTaG91bGQgc3RpbGwgYmUgYWJsZSB0byBpZ25vcmUgSS1KIGJyYW5jaCBpbiBzaW1wbGUgbG9nLCBkZXNwaXRlIGxpbWl0aW5nCisjIHRvIEcuCitjaGVja19yZXN1bHQgJ00gTCBLIEogSSBIJyBHLi5NCitjaGVja19yZXN1bHQgJ00gSCBMIEsgSiBJJyBHLi5NIC0tdG9wby1vcmRlcgorY2hlY2tfcmVzdWx0ICdNIEwgSCcgRy4uTSAtLSBmaWxlCitjaGVja19yZXN1bHQgJyhMSClNIChHKUwgKEcpSCcgRy4uTSAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEwgSiBJIEgnIEcuLk0gLS1mdWxsLWhpc3RvcnkgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEwgSyBKIEkgSCcgRy4uTSAtLWZ1bGwtaGlzdG9yeSAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEggTCBKIEknIEcuLk0gLS1zaW1wbGlmeS1tZXJnZXMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEwgSyBKIEkgSCcgRy4uTSAtLWFuY2VzdHJ5LXBhdGgKK2NoZWNrX3Jlc3VsdCAnTSBMIEogSSBIJyBHLi5NIC0tYW5jZXN0cnktcGF0aCAtLSBmaWxlCitjaGVja19yZXN1bHQgJ00gTCBLIEogSSBIJyBHLi5NIC0tYW5jZXN0cnktcGF0aCAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEggTCBKIEknIEcuLk0gLS1hbmNlc3RyeS1wYXRoIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKKworIyBCLi5GIHNob3VsZCBiZSBhYmxlIHRvIHNpbXBsaWZ5IHRoZSBtZXJnZSBEIGZyb20gaXJyZWxldmFudCBzaWRlIGJyYW5jaCBDLgorIyBEZWZhdWx0IGxvZyBzaG91bGQgYWxzbyBiZSBmcmVlIHRvIGZvbGxvdyBCLUQsIGFuZCBpZ25vcmUgQy4KKyMgQnV0IC0tZnVsbC1oaXN0b3J5IHNob3VsZG4ndCBkcm9wIEQgb24gaXRzIG93biAtIHdpdGhvdXQgc2ltcGxpZmljYXRpb24sCisjIHdlIGNhbid0IGRlY2lkZSBpZiB0aGUgbWVyZ2UgZnJvbSBJTlRFUkVTVElORyBjb21taXQgQyB3YXMgc2Vuc2libGUuCitjaGVja19yZXN1bHQgJ0YgRCBDJyBCLi5GCitjaGVja19yZXN1bHQgJ0YnIEIuLkYgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoQilGJyBCLi5GIC0tcGFyZW50cyAtLSBmaWxlCitjaGVja19yZXN1bHQgJ0YgRCcgQi4uRiAtLWZ1bGwtaGlzdG9yeSAtLSBmaWxlCitjaGVja19yZXN1bHQgJyhEKUYgKEJBKUQnIEIuLkYgLS1mdWxsLWhpc3RvcnkgLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKEIpRicgQi4uRiAtLXNpbXBsaWZ5LW1lcmdlcyAtLSBmaWxlCitjaGVja19yZXN1bHQgJ0YgRCcgQi4uRiAtLWFuY2VzdHJ5LXBhdGgKK2NoZWNrX3Jlc3VsdCAnRicgQi4uRiAtLWFuY2VzdHJ5LXBhdGggLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdGJyBCLi5GIC0tYW5jZXN0cnktcGF0aCAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdGJyBCLi5GIC0tYW5jZXN0cnktcGF0aCAtLXNpbXBsaWZ5LW1lcmdlcyAtLSBmaWxlCitjaGVja19yZXN1bHQgJ0YgRCcgQi4uRiAtLWZpcnN0LXBhcmVudAorY2hlY2tfcmVzdWx0ICdGJyBCLi5GIC0tZmlyc3QtcGFyZW50IC0tIGZpbGUKKworIyBFLi4uRiBzaG91bGQgYmUgZXF1aXZhbGVudCB0byBFIEYgXkIsIGFuZCBiZSBhYmxlIHRvIGRyb3AgRCBhcyBhYm92ZS4KK2NoZWNrX3Jlc3VsdCAnRicgRSBGIF5CIC0tIGZpbGUgIyBpbmNsdWRlcyBECitjaGVja19yZXN1bHQgJ0YnIEUuLi5GIC0tIGZpbGUgIyBpbmNsdWRlcyBECisKKyMgQW55IHNvcnQgb2YgZnVsbCBoaXN0b3J5IG9mIEMuLkYgc2hvdWxkIHNob3cgRCwgYXMgaXQncyB0aGUgY29ubmVjdGlvbiB0byBDLAorIyBhbmQgaXQgZGlmZmVycyBmcm9tIGl0LgorY2hlY2tfcmVzdWx0ICdGIEQgQicgQy4uRgorY2hlY2tfcmVzdWx0ICdGIEInIEMuLkYgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoQilGIChBKUInIEMuLkYgLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnRiBEIEInIEMuLkYgLS1mdWxsLWhpc3RvcnkgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoRClGIChCQylEIChBKUInIEMuLkYgLS1mdWxsLWhpc3RvcnkgLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKEQpRiAoQkMpRCAoQSlCJyBDLi5GIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnRiBEJyBDLi5GIC0tYW5jZXN0cnktcGF0aAorY2hlY2tfcmVzdWx0ICdGIEQnIEMuLkYgLS1hbmNlc3RyeS1wYXRoIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnRiBEJyBDLi5GIC0tYW5jZXN0cnktcGF0aCAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdGIEQnIEMuLkYgLS1hbmNlc3RyeS1wYXRoIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnRiBEIEInIEMuLkYgLS1maXJzdC1wYXJlbnQKK2NoZWNrX3Jlc3VsdCAnRiBCJyBDLi5GIC0tZmlyc3QtcGFyZW50IC0tIGZpbGUKKworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDYxMjAtZGVzY3JpYmUuc2ggYi90L3Q2MTIwLWRlc2NyaWJlLnNoCmluZGV4IGY2N2FhNmYuLmMwZTViMmEgMTAwNzU1Ci0tLSBhL3QvdDYxMjAtZGVzY3JpYmUuc2gKKysrIGIvdC90NjEyMC1kZXNjcmliZS5zaApAQCAtMTEwLDYgKzExMCw5IEBACiBjaGVja19kZXNjcmliZSBCLTAtKiAtLWxvbmcgSEVBRF5eMl4KIGNoZWNrX2Rlc2NyaWJlIEEtMy0qIC0tbG9uZyBIRUFEXl4yCiAKK2NoZWNrX2Rlc2NyaWJlIGMtNy0qIC0tdGFncworY2hlY2tfZGVzY3JpYmUgZS0zLSogLS1maXJzdC1wYXJlbnQgLS10YWdzCisKIDogPmVyci5leHBlY3QKIGNoZWNrX2Rlc2NyaWJlIEEgLS1hbGwgQV4wCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdubyB3YXJuaW5nIHdhcyBkaXNwbGF5ZWQgZm9yIEEnICcKQEAgLTE3MSw0ICsxNzQsMjggQEAKIAogY2hlY2tfZGVzY3JpYmUgInRlc3QyLWxpZ2h0d2VpZ2h0LSoiIC0tbG9uZyAtLXRhZ3MgLS1tYXRjaD0idGVzdDItKiIgSEVBRF4KIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnbmFtZS1yZXYgd2l0aCBleGFjdCB0YWdzJyAnCisJZWNobyBBID5leHBlY3QgJiYKKwl0YWdfb2JqZWN0PSQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQSkgJiYKKwlnaXQgbmFtZS1yZXYgLS10YWdzIC0tbmFtZS1vbmx5ICR0YWdfb2JqZWN0ID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwllY2hvICJBXjAiID5leHBlY3QgJiYKKwl0YWdnZWRfY29tbWl0PSQoZ2l0IHJldi1wYXJzZSAicmVmcy90YWdzL0FeMCIpICYmCisJZ2l0IG5hbWUtcmV2IC0tdGFncyAtLW5hbWUtb25seSAkdGFnZ2VkX2NvbW1pdCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkZXNjcmliZSAtLWNvbnRhaW5zIHdpdGggdGhlIGV4YWN0IHRhZ3MnICcKKwllY2hvICJBXjAiID5leHBlY3QgJiYKKwl0YWdfb2JqZWN0PSQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQSkgJiYKKwlnaXQgZGVzY3JpYmUgLS1jb250YWlucyAkdGFnX29iamVjdCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJZWNobyAiQV4wIiA+ZXhwZWN0ICYmCisJdGFnZ2VkX2NvbW1pdD0kKGdpdCByZXYtcGFyc2UgInJlZnMvdGFncy9BXjAiKSAmJgorCWdpdCBkZXNjcmliZSAtLWNvbnRhaW5zICR0YWdnZWRfY29tbWl0ID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NzAwMS1tdi5zaCBiL3QvdDcwMDEtbXYuc2gKaW5kZXggYTg0NWIxNS4uMTAxODE2ZSAxMDA3NTUKLS0tIGEvdC90NzAwMS1tdi5zaAorKysgYi90L3Q3MDAxLW12LnNoCkBAIC0yMTgsMTMgKzIxOCwxMyBAQAogCiBybSAtZiBkaXJ0eSBkaXJ0eTIKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZ2l0IG12IHNob3VsZCBvdmVyd3JpdGUgc3ltbGluayB0byBhIGZpbGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBtdiBzaG91bGQgb3ZlcndyaXRlIHN5bWxpbmsgdG8gYSBmaWxlJyAnCiAKIAlybSAtZnIgLmdpdCAmJgogCWdpdCBpbml0ICYmCiAJZWNobyAxID5tb3ZlZCAmJgotCWxuIC1zIG1vdmVkIHN5bWxpbmsgJiYKLQlnaXQgYWRkIG1vdmVkIHN5bWxpbmsgJiYKKwl0ZXN0X2xuX3NfYWRkIG1vdmVkIHN5bWxpbmsgJiYKKwlnaXQgYWRkIG1vdmVkICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG12IG1vdmVkIHN5bWxpbmsgJiYKIAlnaXQgbXYgLWYgbW92ZWQgc3ltbGluayAmJgogCSEgdGVzdCAtZSBtb3ZlZCAmJgpAQCAtMjM3LDIyICsyMzcsMjYgQEAKIAogcm0gLWYgbW92ZWQgc3ltbGluawogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdnaXQgbXYgc2hvdWxkIG92ZXJ3cml0ZSBmaWxlIHdpdGggYSBzeW1saW5rJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbXYgc2hvdWxkIG92ZXJ3cml0ZSBmaWxlIHdpdGggYSBzeW1saW5rJyAnCiAKIAlybSAtZnIgLmdpdCAmJgogCWdpdCBpbml0ICYmCiAJZWNobyAxID5tb3ZlZCAmJgotCWxuIC1zIG1vdmVkIHN5bWxpbmsgJiYKLQlnaXQgYWRkIG1vdmVkIHN5bWxpbmsgJiYKKwl0ZXN0X2xuX3NfYWRkIG1vdmVkIHN5bWxpbmsgJiYKKwlnaXQgYWRkIG1vdmVkICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG12IHN5bWxpbmsgbW92ZWQgJiYKIAlnaXQgbXYgLWYgc3ltbGluayBtb3ZlZCAmJgogCSEgdGVzdCAtZSBzeW1saW5rICYmCi0JdGVzdCAtaCBtb3ZlZCAmJgogCWdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoICYmCiAJZ2l0IGRpZmYtZmlsZXMgLS1xdWlldAogCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NoZWNrIG1vdmVkIHN5bWxpbmsnICcKKworCXRlc3QgLWggbW92ZWQKKycKKwogcm0gLWYgbW92ZWQgc3ltbGluawogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDcwMTEtc2tpcC13b3JrdHJlZS1yZWFkaW5nLnNoIGIvdC90NzAxMS1za2lwLXdvcmt0cmVlLXJlYWRpbmcuc2gKaW5kZXggOGYzYjU0ZC4uODhkNjBjMSAxMDA3NTUKLS0tIGEvdC90NzAxMS1za2lwLXdvcmt0cmVlLXJlYWRpbmcuc2gKKysrIGIvdC90NzAxMS1za2lwLXdvcmt0cmVlLXJlYWRpbmcuc2gKQEAgLTkxLDEyICs5MSwxMiBAQAogCXRlc3RfY21wIGV4cGVjdGVkIDEKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnbHMtZmlsZXMgLS1kZWxldGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2xzLWZpbGVzIC0tZGVsZXRlZCcgJwogCXNldHVwX2Fic2VudCAmJgogCXRlc3QgLXogIiQoZ2l0IGxzLWZpbGVzIC1kKSIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnbHMtZmlsZXMgLS1kZWxldGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2xzLWZpbGVzIC0tZGVsZXRlZCcgJwogCXNldHVwX2RpcnR5ICYmCiAJdGVzdCAteiAiJChnaXQgbHMtZmlsZXMgLWQpIgogJwpkaWZmIC0tZ2l0IGEvdC90NzEwMi1yZXNldC5zaCBiL3QvdDcxMDItcmVzZXQuc2gKaW5kZXggZGY4MmVjOS4uOGQ0YjUwZCAxMDA3NTUKLS0tIGEvdC90NzEwMi1yZXNldC5zaAorKysgYi90L3Q3MTAyLXJlc2V0LnNoCkBAIC05LDYgKzksMTkgQEAKIAogLiAuL3Rlc3QtbGliLnNoCiAKK2NvbW1pdF9tc2cgKCkgeworCSMgU3RyaW5nICJtb2RpZnkgMm5kIGZpbGUgKGNoYW5nZWQpIiBwYXJ0bHkgaW4gR2VybWFuCisJIyAodHJhbnNsYXRlZCB3aXRoIEdvb2dsZSBUcmFuc2xhdGUpLAorCSMgZW5jb2RlZCBpbiBVVEYtOCwgdXNlZCBhcyBhIGNvbW1pdCBsb2cgbWVzc2FnZSBiZWxvdy4KKwltc2c9Im1vZGlmeSAybmQgZmlsZSAoZ2VcMzAzXDI0NG5kZXJ0KVxuIgorCWlmIHRlc3QgLW4gIiQxIgorCXRoZW4KKwkJcHJpbnRmICIkbXNnIiB8IGljb252IC1mIHV0Zi04IC10ICIkMSIKKwllbHNlCisJCXByaW50ZiAiJG1zZyIKKwlmaQorfQorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjcmVhdGluZyBpbml0aWFsIGZpbGVzIGFuZCBjb21taXRzJyAnCiAJdGVzdF90aWNrICYmCiAJZWNobyAiMXN0IGZpbGUiID5maXJzdCAmJgpAQCAtMjgsNyArNDEsNyBAQAogCiAJZWNobyAiMXN0IGxpbmUgMm5kIGZpbGUiID5zZWNvbmRmaWxlICYmCiAJZWNobyAiMm5kIGxpbmUgMm5kIGZpbGUiID4+c2Vjb25kZmlsZSAmJgotCWdpdCBjb21taXQgLWEgLW0gIm1vZGlmeSAybmQgZmlsZSIgJiYKKwlnaXQgLWMgImkxOG4uY29tbWl0RW5jb2Rpbmc9aXNvODg1OS0xIiBjb21taXQgLWEgLW0gIiQoY29tbWl0X21zZyBpc284ODU5LTEpIiAmJgogCWhlYWQ1PSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEKQogJwogIyBnaXQgbG9nIC0tcHJldHR5PW9uZWxpbmUgIyB0byBzZWUgdGhvc2UgU0hBMSBpbnZvbHZlZApAQCAtNDQsNiArNTcsMjAgQEAKIAlkb25lIHwgdGVzdF9jbXAgLmNhdF9leHBlY3QgLQogfQogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXNldCAtLWhhcmQgbWVzc2FnZScgJworCWhleD0kKGdpdCBsb2cgLTEgLS1mb3JtYXQ9IiVoIikgJiYKKwlnaXQgcmVzZXQgLS1oYXJkID4gLmFjdHVhbCAmJgorCWVjaG8gSEVBRCBpcyBub3cgYXQgJGhleCAkKGNvbW1pdF9tc2cpID4gLmV4cGVjdGVkICYmCisJdGVzdF9jbXAgLmV4cGVjdGVkIC5hY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVzZXQgLS1oYXJkIG1lc3NhZ2UgKGlzbzg4NTktMSBsb2dvdXRwdXRlbmNvZGluZyknICcKKwloZXg9JChnaXQgbG9nIC0xIC0tZm9ybWF0PSIlaCIpICYmCisJZ2l0IC1jICJpMThuLmxvZ091dHB1dEVuY29kaW5nPWlzbzg4NTktMSIgcmVzZXQgLS1oYXJkID4gLmFjdHVhbCAmJgorCWVjaG8gSEVBRCBpcyBub3cgYXQgJGhleCAkKGNvbW1pdF9tc2cgaXNvODg1OS0xKSA+IC5leHBlY3RlZCAmJgorCXRlc3RfY21wIC5leHBlY3RlZCAuYWN0dWFsCisnCisKID4uZGlmZl9leHBlY3QKID4uY2FjaGVkX2V4cGVjdAogY2F0ID4uY2F0X2V4cGVjdCA8PEVPRgpAQCAtMTkyLDcgKzIxOSw4IEBACiAJJ2NoYW5naW5nIGZpbGVzIGFuZCByZWRvIHRoZSBsYXN0IGNvbW1pdCBzaG91bGQgc3VjY2VlZCcgJwogCWVjaG8gIjNyZCBsaW5lIDJuZCBmaWxlIiA+PnNlY29uZGZpbGUgJiYKIAlnaXQgY29tbWl0IC1hIC1DIE9SSUdfSEVBRCAmJgotCWNoZWNrX2NoYW5nZXMgM2QzYjdiZTAxMWE1OGNhMGMxNzlhZTQ1ZDk0ZTZjODNjMGIwY2QwZCAmJgorCWhlYWQ0PSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEKSAmJgorCWNoZWNrX2NoYW5nZXMgJGhlYWQ0ICYmCiAJdGVzdCAiJChnaXQgcmV2LXBhcnNlIE9SSUdfSEVBRCkiID0gXAogCQkJJGhlYWQ1CiAnCkBAIC0yMTEsNyArMjM5LDcgQEAKIAlnaXQgcmVzZXQgLS1oYXJkIEhFQUR+MiAmJgogCWNoZWNrX2NoYW5nZXMgZGRhZWZlMDBmMWRhMTY4NjQ1OTFjNjFmZGM3YWRiNWQ3Y2Q2Yjc0ZSAmJgogCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSBPUklHX0hFQUQpIiA9IFwKLQkJCTNkM2I3YmUwMTFhNThjYTBjMTc5YWU0NWQ5NGU2YzgzYzBiMGNkMGQKKwkJCSRoZWFkNAogJwogCiA+LmRpZmZfZXhwZWN0CkBAIC0zMDMsNyArMzMxLDcgQEAKIAogCWVjaG8gIjFzdCBsaW5lIDJuZCBmaWxlIiA+c2Vjb25kZmlsZSAmJgogCWVjaG8gIjJuZCBsaW5lIDJuZCBmaWxlIiA+PnNlY29uZGZpbGUgJiYKLQlnaXQgY29tbWl0IC1hIC1tICJtb2RpZnkgMm5kIGZpbGUiICYmCisJZ2l0IC1jICJpMThuLmNvbW1pdEVuY29kaW5nPWlzbzg4NTktMSIgY29tbWl0IC1hIC1tICIkKGNvbW1pdF9tc2cgaXNvODg1OS0xKSIgJiYKIAljaGVja19jaGFuZ2VzICRoZWFkNQogJwogCkBAIC0zMjYsMTAgKzM1NCwxMSBAQAogCWdpdCBjaGVja291dCBicmFuY2gyICYmCiAJZWNobyAiM3JkIGxpbmUgaW4gYnJhbmNoMiIgPj5zZWNvbmRmaWxlICYmCiAJZ2l0IGNvbW1pdCAtYSAtbSAiY2hhbmdlIGluIGJyYW5jaDIiICYmCisJaGVhZDM9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpICYmCiAKIAl0ZXN0X211c3RfZmFpbCBnaXQgcHVsbCAuIGJyYW5jaDEgJiYKIAlnaXQgcmVzZXQgLS1oYXJkICYmCi0JY2hlY2tfY2hhbmdlcyA3N2FiYjMzNzA3M2ZiNDM2OWE3YWQ2OWZmNmY1ZWMwZTRkNmI1NGJiCisJY2hlY2tfY2hhbmdlcyAkaGVhZDMKICcKIAogPi5kaWZmX2V4cGVjdApAQCAtNDU3LDcgKzQ4Niw3IEBACiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGRpZmYgLS1xdWlldCAtLSBzZWNvbmRmaWxlICYmCiAJdGVzdCAteiAiJChnaXQgZGlmZiAtLWNhY2hlZCAtLW5hbWUtb25seSkiICYmCiAJdGVzdCAtZiBzZWNvbmRmaWxlICYmCi0JdGVzdCAhIC1zIHNlY29uZGZpbGUKKwl0ZXN0X211c3RfYmVfZW1wdHkgc2Vjb25kZmlsZQogCiAnCiAKZGlmZiAtLWdpdCBhL3QvdDcyMDEtY28uc2ggYi90L3Q3MjAxLWNvLnNoCmluZGV4IGJlOTY3MmUuLjBjOWVjMGEgMTAwNzU1Ci0tLSBhL3QvdDcyMDEtY28uc2gKKysrIGIvdC90NzIwMS1jby5zaApAQCAtNDMxLDYgKzQzMSw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdjaGVja291dCB3aXRoIC0tdHJhY2sgZmFrZXMgYSBzZW5zaWJsZSAtYiA8bmFtZT4nICcKKyAgICBnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4uZmV0Y2ggIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qIiAmJgogICAgIGdpdCB1cGRhdGUtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4va29hbGEvYmVhciByZW5hbWVyICYmCiAKICAgICBnaXQgY2hlY2tvdXQgLS10cmFjayBvcmlnaW4va29hbGEvYmVhciAmJgpkaWZmIC0tZ2l0IGEvdC90NzMwMS1jbGVhbi1pbnRlcmFjdGl2ZS5zaCBiL3QvdDczMDEtY2xlYW4taW50ZXJhY3RpdmUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2FlMzk0ZQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDczMDEtY2xlYW4taW50ZXJhY3RpdmUuc2gKQEAgLTAsMCArMSw0NzUgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdnaXQgY2xlYW4gLWkgYmFzaWMgdGVzdHMnCisKKy4gLi90ZXN0LWxpYi5zaAorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCcgJworCisJbWtkaXIgLXAgc3JjICYmCisJdG91Y2ggc3JjL3BhcnQxLmMgTWFrZWZpbGUgJiYKKwllY2hvIGJ1aWxkID4uZ2l0aWdub3JlICYmCisJZWNobyBcKi5vID4+LmdpdGlnbm9yZSAmJgorCWdpdCBhZGQgLiAmJgorCWdpdCBjb21taXQgLW0gc2V0dXAgJiYKKwl0b3VjaCBzcmMvcGFydDIuYyBSRUFETUUgJiYKKwlnaXQgYWRkIC4KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWkgKGM6IGNsZWFuIGhvdGtleSknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCWVjaG8gYyB8IGdpdCBjbGVhbiAtaSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAhIC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWkgKGNsOiBjbGVhbiBwcmVmaXgpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwllY2hvIGNsIHwgZ2l0IGNsZWFuIC1pICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0ICEgLWYgYS5vdXQgJiYKKwl0ZXN0IC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaSAocXVpdCknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCWVjaG8gcXVpdCB8IGdpdCBjbGVhbiAtaSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAtZiBhLm91dCAmJgorCXRlc3QgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaSAoQ3RybCtEKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJZWNobyAiXDA0IiB8IGdpdCBjbGVhbiAtaSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAtZiBhLm91dCAmJgorCXRlc3QgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgKGZpbHRlciBhbGwpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoZWNobyBmOyBlY2hvICIqIjsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0IC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5oICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoZmlsdGVyIHBhdHRlcm5zKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gZjsgZWNobyAicGFydDMuKiAqLm91dCI7IGVjaG87IGVjaG8gYykgfCBcCisJZ2l0IGNsZWFuIC1pZCAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgKGZpbHRlciBwYXR0ZXJucyAyKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gZjsgZWNobyAiKiAhKi5vdXQiOyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgKHNlbGVjdCAtIGFsbCknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCShlY2hvIHM7IGVjaG8gIioiOyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIChzZWxlY3QgLSBub25lKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gczsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0IC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5oICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoc2VsZWN0IC0gbnVtYmVyKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gczsgZWNobyAzOyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgLWYgYS5vdXQgJiYKKwl0ZXN0IC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgKHNlbGVjdCAtIG51bWJlciAyKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gczsgZWNobyAyIDM7IGVjaG8gNTsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0IC1mIGEub3V0ICYmCisJdGVzdCAhIC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5oICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoc2VsZWN0IC0gbnVtYmVyIDMpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoZWNobyBzOyBlY2hvIDMsNCA1OyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgLWYgYS5vdXQgJiYKKwl0ZXN0IC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIChzZWxlY3QgLSBmaWxlbmFtZXMpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgZm9vLnR4dCBiYXIudHh0IGJhei50eHQgJiYKKwkoZWNobyBzOyBlY2hvIGEub3V0IGZvIGJhIGJhcjsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBmb28udHh0ICYmCisJdGVzdCAhIC1mIGJhci50eHQgJiYKKwl0ZXN0IC1mIGJhei50eHQgJiYKKwlybSBiYXoudHh0CisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoc2VsZWN0IC0gcmFuZ2UpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoZWNobyBzOyBlY2hvIDEsMy00OyBlY2hvIDI7IGVjaG87IGVjaG8gYykgfCBcCisJZ2l0IGNsZWFuIC1pZCAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAhIC1mIGEub3V0ICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0ICEgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoc2VsZWN0IC0gcmFuZ2UgMiknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCShlY2hvIHM7IGVjaG8gNC0gMTsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0ICEgLWYgYS5vdXQgJiYKKwl0ZXN0IC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIChpbnZlcnNlIHNlbGVjdCknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCShlY2hvIHM7IGVjaG8gIioiOyBlY2hvIC01LSAxIC0yOyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIChhc2spJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoZWNobyBhOyBlY2hvIFk7IGVjaG8geTsgZWNobyBubzsgZWNobyB5ZXM7IGVjaG8gYmFkOyBlY2hvKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0ICEgLWYgYS5vdXQgJiYKKwl0ZXN0ICEgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5oICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoYXNrIC0gQ3RybCtEKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gYTsgZWNobyBZOyBlY2hvIG5vOyBlY2hvIHllczsgZWNobyAiXDA0IikgfCBcCisJZ2l0IGNsZWFuIC1pZCAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAhIC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIHdpdGggcHJlZml4IGFuZCBwYXRoIChmaWx0ZXIpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoY2QgYnVpbGQvICYmIFwKKwkgKGVjaG8gZjsgZWNobyAiZG9jcyI7IGVjaG8gIiouaCI7IGVjaG8gOyBlY2hvIGMpIHwgXAorCSBnaXQgY2xlYW4gLWlkIC4uKSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAhIC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgd2l0aCBwcmVmaXggYW5kIHBhdGggKHNlbGVjdCBieSBuYW1lKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGNkIGJ1aWxkLyAmJiBcCisJIChlY2hvIHM7IGVjaG8gIi4uL2RvY3MvIjsgZWNobyAiLi4vc3JjL3BhcnQzLmMiOyBcCisJICBlY2hvICIuLi9zcmMvcGFydDQuYyI7ICBlY2hvOyBlY2hvIGMpIHwgXAorCSBnaXQgY2xlYW4gLWlkIC4uKSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgd2l0aCBwcmVmaXggYW5kIHBhdGggKGFzayknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCShjZCBidWlsZC8gJiYgXAorCSAoZWNobyBhOyBlY2hvIFk7IGVjaG8geTsgZWNobyBubzsgZWNobyB5ZXM7IGVjaG8gYmFkOyBlY2hvKSB8IFwKKwkgZ2l0IGNsZWFuIC1pZCAuLikgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDc0MDAtc3VibW9kdWxlLWJhc2ljLnNoIGIvdC90NzQwMC1zdWJtb2R1bGUtYmFzaWMuc2gKaW5kZXggZmYyNjUzNS4uYTM5ZDA3NCAxMDA3NTUKLS0tIGEvdC90NzQwMC1zdWJtb2R1bGUtYmFzaWMuc2gKKysrIGIvdC90NzQwMC1zdWJtb2R1bGUtYmFzaWMuc2gKQEAgLTE4LDYgKzE4LDE2IEBACiAJZ2l0IGJyYW5jaCBpbml0aWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NvbmZpZ3VyYXRpb24gcGFyc2luZycgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLWYgLmdpdG1vZHVsZXMiICYmCisJY2F0ID4uZ2l0bW9kdWxlcyA8PC1cRU9GICYmCisJW3N1Ym1vZHVsZSAicyJdCisJCXBhdGgKKwkJaWdub3JlCisJRU9GCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHN0YXR1cworJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCAtIHJlcG9zaXRvcnkgaW4gaW5pdCBzdWJkaXJlY3RvcnknICcKIAlta2RpciBpbml0ICYmCiAJKApAQCAtNzgsNyArODgsNyBAQAogCSgKIAkJY2QgYWRkdGVzdCAmJgogCQlnaXQgc3VibW9kdWxlIGFkZCAtcSAiJHN1Ym1vZHVybCIgc3VibW9kID5hY3R1YWwgJiYKLQkJdGVzdCAhIC1zIGFjdHVhbCAmJgorCQl0ZXN0X211c3RfYmVfZW1wdHkgYWN0dWFsICYmCiAJCWVjaG8gImdpdGRpcjogLi4vLmdpdC9tb2R1bGVzL3N1Ym1vZCIgPmV4cGVjdCAmJgogCQl0ZXN0X2NtcCBleHBlY3Qgc3VibW9kLy5naXQgJiYKIAkJKApAQCAtMjEyLDYgKzIyMiwzMiBAQAogCXRlc3RfY21wIGVtcHR5IHVudHJhY2tlZAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdWJtb2R1bGUgYWRkIGluIHN1YmRpcmVjdG9yeScgJworCWVjaG8gInJlZnMvaGVhZHMvbWFzdGVyIiA+ZXhwZWN0ICYmCisJPmVtcHR5ICYmCisKKwlta2RpciBhZGR0ZXN0L3N1YiAmJgorCSgKKwkJY2QgYWRkdGVzdC9zdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBhZGQgIiRzdWJtb2R1cmwiIC4uL3JlYWxzdWJtb2QzICYmCisJCWdpdCBzdWJtb2R1bGUgaW5pdAorCSkgJiYKKworCXJtIC1mIGhlYWRzIGhlYWQgdW50cmFja2VkICYmCisJaW5zcGVjdCBhZGR0ZXN0L3JlYWxzdWJtb2QzIC4uLy4uICYmCisJdGVzdF9jbXAgZXhwZWN0IGhlYWRzICYmCisJdGVzdF9jbXAgZXhwZWN0IGhlYWQgJiYKKwl0ZXN0X2NtcCBlbXB0eSB1bnRyYWNrZWQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIGFkZCBpbiBzdWJkaXJlY3Rvcnkgd2l0aCByZWxhdGl2ZSBwYXRoIHNob3VsZCBmYWlsJyAnCisJKAorCQljZCBhZGR0ZXN0L3N1YiAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgc3VibW9kdWxlIGFkZCAuLi8uLi8gc3VibW9kMyAyPi4uLy4uL291dHB1dC5lcnIKKwkpICYmCisJdGVzdF9pMThuZ3JlcCB0b3BsZXZlbCBvdXRwdXQuZXJyCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIC0gYWRkIGFuIGV4YW1wbGUgZW50cnkgdG8gLmdpdG1vZHVsZXMnICcKIAlHSVRfQ09ORklHPS5naXRtb2R1bGVzIFwKIAlnaXQgY29uZmlnIHN1Ym1vZHVsZS5leGFtcGxlLnVybCBnaXQ6Ly9leGFtcGxlLmNvbS9pbml0LmdpdApAQCAtMzA4LDcgKzM0NCw3IEBACiAKIAlta2RpciBpbml0ICYmCiAJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLXEgPnVwZGF0ZS5vdXQgJiYKLQl0ZXN0ICEgLXMgdXBkYXRlLm91dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSB1cGRhdGUub3V0ICYmCiAKIAlpbnNwZWN0IGluaXQgJiYKIAl0ZXN0X2NtcCBleHBlY3QgaGVhZC1zaGExCkBAIC0zMTksNiArMzU1LDI2IEBACiAJZ3JlcCAiXiAkcmV2MSIgbGlzdAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgInVwLXRvLWRhdGUiIGZyb20gc3ViZGlyZWN0b3J5JyAnCisJbWtkaXIgLXAgc3ViICYmCisJKAorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzdGF0dXMgPi4uL2xpc3QKKwkpICYmCisJZ3JlcCAiXiAkcmV2MSIgbGlzdCAmJgorCWdyZXAgIlxcLlxcLi9pbml0IiBsaXN0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyAidXAtdG8tZGF0ZSIgZnJvbSBzdWJkaXJlY3Rvcnkgd2l0aCBwYXRoJyAnCisJbWtkaXIgLXAgc3ViICYmCisJKAorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzdGF0dXMgLi4vaW5pdCA+Li4vbGlzdAorCSkgJiYKKwlncmVwICJeICRyZXYxIiBsaXN0ICYmCisJZ3JlcCAiXFwuXFwuL2luaXQiIGxpc3QKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIHNob3VsZCBiZSAibW9kaWZpZWQiIGFmdGVyIHN1Ym1vZHVsZSBjb21taXQnICcKIAkoCiAJCWNkIGluaXQgJiYKQEAgLTM5OSw2ICs0NTUsMjUgQEAKIAlnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIGluaXQvLmdpdAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cGRhdGUgLS1pbml0IGZyb20gc3ViZGlyZWN0b3J5JyAnCisJbXYgaW5pdCBpbml0MiAmJgorCWdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLmV4YW1wbGUudXJsICIkKHB3ZCkvaW5pdDIiICYmCisJZ2l0IGNvbmZpZyAtLXJlbW92ZS1zZWN0aW9uIHN1Ym1vZHVsZS5leGFtcGxlICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyBzdWJtb2R1bGUuZXhhbXBsZS51cmwgJiYKKworCW1rZGlyIC1wIHN1YiAmJgorCSgKKwkJY2Qgc3ViICYmCisJCWdpdCBzdWJtb2R1bGUgdXBkYXRlIC4uL2luaXQgPnVwZGF0ZS5vdXQgJiYKKwkJY2F0IHVwZGF0ZS5vdXQgJiYKKwkJdGVzdF9pMThuZ3JlcCAibm90IGluaXRpYWxpemVkIiB1cGRhdGUub3V0ICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS1yZXNvbHZlLWdpdC1kaXIgLi4vaW5pdC8uZ2l0ICYmCisKKwkJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC4uL2luaXQKKwkpICYmCisJZ2l0IHJldi1wYXJzZSAtLXJlc29sdmUtZ2l0LWRpciBpbml0Ly5naXQKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZG8gbm90IGFkZCBmaWxlcyBmcm9tIGEgc3VibW9kdWxlJyAnCiAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCkBAIC02OTYsNyArNzcxLDcgQEAKIAkJcm0gLXJmIHJlcG8gJiYKIAkJZ2l0IHJtIHJlcG8gJiYKIAkJZ2l0IHN1Ym1vZHVsZSBhZGQgLXEgLS1uYW1lIHJlcG9fbmV3ICIkc3VibW9kdXJsL2JhcmUuZ2l0IiByZXBvID5hY3R1YWwgJiYKLQkJdGVzdCAhIC1zIGFjdHVhbCAmJgorCQl0ZXN0X211c3RfYmVfZW1wdHkgYWN0dWFsICYmCiAJCWVjaG8gImdpdGRpcjogLi4vLmdpdC9tb2R1bGVzL3N1Ym1vZCIgPmV4cGVjdCAmJgogCQl0ZXN0X2NtcCBleHBlY3Qgc3VibW9kLy5naXQgJiYKIAkJKApAQCAtNzcyLDYgKzg0NywyMSBAQAogCXJtZGlyIGluaXQKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIGRlaW5pdCBmcm9tIHN1YmRpcmVjdG9yeScgJworCWdpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAmJgorCWdpdCBjb25maWcgc3VibW9kdWxlLmV4YW1wbGUuZm9vIGJhciAmJgorCW1rZGlyIC1wIHN1YiAmJgorCSgKKwkJY2Qgc3ViICYmCisJCWdpdCBzdWJtb2R1bGUgZGVpbml0IC4uL2luaXQgPi4uL291dHB1dAorCSkgJiYKKwlncmVwICJcXC5cXC4vaW5pdCIgb3V0cHV0ICYmCisJdGVzdCAteiAiJChnaXQgY29uZmlnIC0tZ2V0LXJlZ2V4cCAic3VibW9kdWxlXC5leGFtcGxlXC4iKSIgJiYKKwl0ZXN0IC1uICIkKGdpdCBjb25maWcgLS1nZXQtcmVnZXhwICJzdWJtb2R1bGVcLmV4YW1wbGUyXC4iKSIgJiYKKwl0ZXN0IC1mIGV4YW1wbGUyLy5naXQgJiYKKwlybWRpciBpbml0CisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N1Ym1vZHVsZSBkZWluaXQgLiBkZWluaXRzIGFsbCBpbml0aWFsaXplZCBzdWJtb2R1bGVzJyAnCiAJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0ICYmCiAJZ2l0IGNvbmZpZyBzdWJtb2R1bGUuZXhhbXBsZS5mb28gYmFyICYmCkBAIC04NjgsNCArOTU4LDM1IEBACiAJdGVzdCAtbiAiJChnaXQgY29uZmlnIC0tZ2V0LXJlZ2V4cCAic3VibW9kdWxlXC5leGFtcGxlXC4iKSIKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIHdpdGggVVRGLTggbmFtZScgJworCXN2bmFtZT0kKHByaW50ZiAiXDMwM1wyNDUgXDMwM1wyNDRcMzAzXDI2NiIpICYmCisJbWtkaXIgIiRzdm5hbWUiICYmCisJKAorCQljZCAiJHN2bmFtZSIgJiYKKwkJZ2l0IGluaXQgJiYKKwkJPnN1YiAmJgorCQlnaXQgYWRkIHN1YiAmJgorCQlnaXQgY29tbWl0IC1tICJpbml0IHN1YiIKKwkpICYmCisJdGVzdF9jb25maWcgY29yZS5wcmVjb21wb3NldW5pY29kZSB0cnVlICYmCisJZ2l0IHN1Ym1vZHVsZSBhZGQgLi8iJHN2bmFtZSIgJiYKKwlnaXQgc3VibW9kdWxlID4mMiAmJgorCXRlc3QgLW4gIiQoZ2l0IHN1Ym1vZHVsZSB8IGdyZXAgIiRzdm5hbWUiKSIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIGFkZCBjbG9uZSBzaGFsbG93IHN1Ym1vZHVsZScgJworCW1rZGlyIHN1cGVyICYmCisJcHdkPSQocHdkKQorCSgKKwkJY2Qgc3VwZXIgJiYKKwkJZ2l0IGluaXQgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBhZGQgLS1kZXB0aD0xIGZpbGU6Ly8iJHB3ZCIvZXhhbXBsZTIgc3VibW9kdWxlICYmCisJCSgKKwkJCWNkIHN1Ym1vZHVsZSAmJgorCQkJdGVzdCAxID0gJChnaXQgbG9nIC0tb25lbGluZSB8IHdjIC1sKQorCQkpCisJKQorJworCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NzQwMS1zdWJtb2R1bGUtc3VtbWFyeS5zaCBiL3QvdDc0MDEtc3VibW9kdWxlLXN1bW1hcnkuc2gKaW5kZXggMzBiNDI5ZS4uYWMyNDM0YyAxMDA3NTUKLS0tIGEvdC90NzQwMS1zdWJtb2R1bGUtc3VtbWFyeS5zaAorKysgYi90L3Q3NDAxLXN1Ym1vZHVsZS1zdW1tYXJ5LnNoCkBAIC00NSw2ICs0NSw0MiBAQAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogIgogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGRlZCBzdWJtb2R1bGUgKHN1YmRpcmVjdG9yeSknICIKKwlta2RpciBzdWIgJiYKKwkoCisJCWNkIHN1YiAmJgorCQlnaXQgc3VibW9kdWxlIHN1bW1hcnkgPi4uL2FjdHVhbAorCSkgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorKiAuLi9zbTEgMDAwMDAwMC4uLiRoZWFkMSAoMik6CisgID4gQWRkIGZvbzIKKworRU9GCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FkZGVkIHN1Ym1vZHVsZSAoc3ViZGlyZWN0b3J5IG9ubHkpJyAiCisJKAorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IC4gPi4uL2FjdHVhbAorCSkgJiYKKwk+ZXhwZWN0ZWQgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkZWQgc3VibW9kdWxlIChzdWJkaXJlY3Rvcnkgd2l0aCBleHBsaWNpdCBwYXRoKScgIgorCSgKKwkJY2Qgc3ViICYmCisJCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSAuLi9zbTEgPi4uL2FjdHVhbAorCSkgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorKiAuLi9zbTEgMDAwMDAwMC4uLiRoZWFkMSAoMik6CisgID4gQWRkIGZvbzIKKworRU9GCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisiCisKIGNvbW1pdF9maWxlIHNtMSAmJgogaGVhZDI9JChhZGRfZmlsZSBzbTEgZm9vMykKIApAQCAtNzYsOCArMTEyLDggQEAKICkKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbW9kaWZpZWQgc3VibW9kdWxlKGJhY2t3YXJkKScgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCi0gICAgY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKKwlnaXQgc3VibW9kdWxlIHN1bW1hcnkgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMSAkaGVhZDIuLi4kaGVhZDMgKDIpOgogICA8IEFkZCBmb28zCiAgIDwgQWRkIGZvbzIKQEAgLTg5LDggKzEyNSw4IEBACiBoZWFkND0kKGFkZF9maWxlIHNtMSBmb280IGZvbzUpICYmCiBoZWFkNF9mdWxsPSQoR0lUX0RJUj1zbTEvLmdpdCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdtb2RpZmllZCBzdWJtb2R1bGUoYmFja3dhcmQgYW5kIGZvcndhcmQpJyAiCi0gICAgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCisJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKICogc20xICRoZWFkMi4uLiRoZWFkNCAoNCk6CiAgID4gQWRkIGZvbzUKICAgPiBBZGQgZm9vNApAQCAtMTAyLDE1ICsxMzgsMTUgQEAKICIKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1zdW1tYXJ5LWxpbWl0JyAiCi0gICAgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IC1uIDMgPmFjdHVhbCAmJgotICAgIGNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IC1uIDMgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMSAkaGVhZDIuLi4kaGVhZDQgKDQpOgogICA+IEFkZCBmb281CiAgID4gQWRkIGZvbzQKICAgPCBBZGQgZm9vMwogCiBFT0YKLSAgICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICIKIAogY29tbWl0X2ZpbGUgc20xICYmCkBAIC0xMjIsOCArMTU4LDggQEAKIG12IHNtMS1iYWsgc20xCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3R5cGVjaGFuZ2VkIHN1Ym1vZHVsZShzdWJtb2R1bGUtPmJsb2IpLCAtLWNhY2hlZCcgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWNhY2hlZCA+YWN0dWFsICYmCi0gICAgY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKKwlnaXQgc3VibW9kdWxlIHN1bW1hcnkgLS1jYWNoZWQgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMSAkaGVhZDQoc3VibW9kdWxlKS0+JGhlYWQ1KGJsb2IpICgzKToKICAgPCBBZGQgZm9vNQogCkBAIC0xMzIsNTkgKzE2OCw1OSBAQAogIgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd0eXBlY2hhbmdlZCBzdWJtb2R1bGUoc3VibW9kdWxlLT5ibG9iKSwgLS1maWxlcycgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWZpbGVzID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWZpbGVzID5hY3R1YWwgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogKiBzbTEgJGhlYWQ1KGJsb2IpLT4kaGVhZDQoc3VibW9kdWxlKSAoMyk6CiAgID4gQWRkIGZvbzUKIAogRU9GCi0gICAgdGVzdF9pMThuY21wIGFjdHVhbCBleHBlY3RlZAorCXRlc3RfaTE4bmNtcCBhY3R1YWwgZXhwZWN0ZWQKICIKIAogcm0gLXJmIHNtMSAmJgogZ2l0IGNoZWNrb3V0LWluZGV4IHNtMQogdGVzdF9leHBlY3Rfc3VjY2VzcyAndHlwZWNoYW5nZWQgc3VibW9kdWxlKHN1Ym1vZHVsZS0+YmxvYiknICIKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgPmFjdHVhbCAmJgotICAgIGNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogKiBzbTEgJGhlYWQ0KHN1Ym1vZHVsZSktPiRoZWFkNShibG9iKToKIAogRU9GCi0gICAgdGVzdF9pMThuY21wIGFjdHVhbCBleHBlY3RlZAorCXRlc3RfaTE4bmNtcCBhY3R1YWwgZXhwZWN0ZWQKICIKIAogcm0gLWYgc20xICYmCiB0ZXN0X2NyZWF0ZV9yZXBvIHNtMSAmJgogaGVhZDY9JChhZGRfZmlsZSBzbTEgZm9vNiBmb283KQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbm9uZXhpc3RlbnQgY29tbWl0JyAiCi0gICAgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCisJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKICogc20xICRoZWFkNC4uLiRoZWFkNjoKICAgV2Fybjogc20xIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJGhlYWQ0X2Z1bGwKIAogRU9GCi0gICAgdGVzdF9pMThuY21wIGFjdHVhbCBleHBlY3RlZAorCXRlc3RfaTE4bmNtcCBhY3R1YWwgZXhwZWN0ZWQKICIKIAogY29tbWl0X2ZpbGUKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3R5cGVjaGFuZ2VkIHN1Ym1vZHVsZShibG9iLT5zdWJtb2R1bGUpJyAiCi0gICAgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCisJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKICogc20xICRoZWFkNShibG9iKS0+JGhlYWQ2KHN1Ym1vZHVsZSkgKDIpOgogICA+IEFkZCBmb283CiAKIEVPRgotICAgIHRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAiCiAKIGNvbW1pdF9maWxlIHNtMSAmJgogcm0gLXJmIHNtMQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZGVsZXRlZCBzdWJtb2R1bGUnICIKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgPmFjdHVhbCAmJgotICAgIGNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogKiBzbTEgJGhlYWQ2Li4uMDAwMDAwMDoKIAogRU9GCi0gICAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAiCiAKIHRlc3RfY3JlYXRlX3JlcG8gc20yICYmCkBAIC0xOTIsNDMgKzIyOCw0MyBAQAogZ2l0IGFkZCBzbTIKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbXVsdGlwbGUgc3VibW9kdWxlcycgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCi0gICAgY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKKwlnaXQgc3VibW9kdWxlIHN1bW1hcnkgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMSAkaGVhZDYuLi4wMDAwMDAwOgogCiAqIHNtMiAwMDAwMDAwLi4uJGhlYWQ3ICgyKToKICAgPiBBZGQgZm9vOQogCiBFT0YKLSAgICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICIKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncGF0aCBmaWx0ZXInICIKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgc20yID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSBzbTIgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMiAwMDAwMDAwLi4uJGhlYWQ3ICgyKToKICAgPiBBZGQgZm9vOQogCiBFT0YKLSAgICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICIKIAogY29tbWl0X2ZpbGUgc20yCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXZlbiBjb21taXQnICIKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgSEVBRF4gPmFjdHVhbCAmJgotICAgIGNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IEhFQUReID5hY3R1YWwgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogKiBzbTEgJGhlYWQ2Li4uMDAwMDAwMDoKIAogKiBzbTIgMDAwMDAwMC4uLiRoZWFkNyAoMik6CiAgID4gQWRkIGZvbzkKIAogRU9GCi0gICAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAiCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tZm9yLXN0YXR1cycgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWZvci1zdGF0dXMgSEVBRF4gPmFjdHVhbCAmJgotICAgIHRlc3RfaTE4bmNtcCBhY3R1YWwgLSA8PEVPRgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWZvci1zdGF0dXMgSEVBRF4gPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBhY3R1YWwgLSA8PEVPRgogIyBTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CiAjCiAjICogc20xICRoZWFkNi4uLjAwMDAwMDA6CkBAIC0yNDAsMTQgKzI3NiwxNCBAQAogIgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdmYWlsIHdoZW4gdXNpbmcgLS1maWxlcyB0b2dldGhlciB3aXRoIC0tY2FjaGVkJyAiCi0gICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IC0tZmlsZXMgLS1jYWNoZWQKKwl0ZXN0X211c3RfZmFpbCBnaXQgc3VibW9kdWxlIHN1bW1hcnkgLS1maWxlcyAtLWNhY2hlZAogIgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG91bGQgbm90IGZhaWwgaW4gYW4gZW1wdHkgcmVwbycgIgotICAgIGdpdCBpbml0IHh5enp5ICYmCi0gICAgY2QgeHl6enkgJiYKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgPm91dHB1dCAyPiYxICYmCi0gICAgdGVzdF9jbXAgb3V0cHV0IC9kZXYvbnVsbAorCWdpdCBpbml0IHh5enp5ICYmCisJY2QgeHl6enkgJiYKKwlnaXQgc3VibW9kdWxlIHN1bW1hcnkgPm91dHB1dCAyPiYxICYmCisJdGVzdF9jbXAgb3V0cHV0IC9kZXYvbnVsbAogIgogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDc0MDMtc3VibW9kdWxlLXN5bmMuc2ggYi90L3Q3NDAzLXN1Ym1vZHVsZS1zeW5jLnNoCmluZGV4IDk0ZTI2YzQuLjc5YmMxMzUgMTAwNzU1Ci0tLSBhL3QvdDc0MDMtc3VibW9kdWxlLXN5bmMuc2gKKysrIGIvdC90NzQwMy1zdWJtb2R1bGUtc3luYy5zaApAQCAtMTEsMjE2ICsxMSwzMzggQEAKIC4gLi90ZXN0LWxpYi5zaAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIHNldHVwICcKLQllY2hvIGZpbGUgPiBmaWxlICYmCisJZWNobyBmaWxlID5maWxlICYmCiAJZ2l0IGFkZCBmaWxlICYmCiAJdGVzdF90aWNrICYmCiAJZ2l0IGNvbW1pdCAtbSB1cHN0cmVhbSAmJgogCWdpdCBjbG9uZSAuIHN1cGVyICYmCiAJZ2l0IGNsb25lIHN1cGVyIHN1Ym1vZHVsZSAmJgotCShjZCBzdWJtb2R1bGUgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBhZGQgLi4vc3VibW9kdWxlIHN1Yi1zdWJtb2R1bGUgJiYKLQkgdGVzdF90aWNrICYmCi0JIGdpdCBjb21taXQgLW0gInN1Yi1zdWJtb2R1bGUiCisJKAorCQljZCBzdWJtb2R1bGUgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBhZGQgLi4vc3VibW9kdWxlIHN1Yi1zdWJtb2R1bGUgJiYKKwkJdGVzdF90aWNrICYmCisJCWdpdCBjb21taXQgLW0gInN1Yi1zdWJtb2R1bGUiCiAJKSAmJgotCShjZCBzdXBlciAmJgotCSBnaXQgc3VibW9kdWxlIGFkZCAuLi9zdWJtb2R1bGUgc3VibW9kdWxlICYmCi0JIHRlc3RfdGljayAmJgotCSBnaXQgY29tbWl0IC1tICJzdWJtb2R1bGUiCisJKAorCQljZCBzdXBlciAmJgorCQlnaXQgc3VibW9kdWxlIGFkZCAuLi9zdWJtb2R1bGUgc3VibW9kdWxlICYmCisJCXRlc3RfdGljayAmJgorCQlnaXQgY29tbWl0IC1tICJzdWJtb2R1bGUiCiAJKSAmJgogCWdpdCBjbG9uZSBzdXBlciBzdXBlci1jbG9uZSAmJgotCShjZCBzdXBlci1jbG9uZSAmJiBnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUpICYmCisJKAorCQljZCBzdXBlci1jbG9uZSAmJgorCQlnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUKKwkpICYmCiAJZ2l0IGNsb25lIHN1cGVyIGVtcHR5LWNsb25lICYmCi0JKGNkIGVtcHR5LWNsb25lICYmIGdpdCBzdWJtb2R1bGUgaW5pdCkgJiYKKwkoCisJCWNkIGVtcHR5LWNsb25lICYmCisJCWdpdCBzdWJtb2R1bGUgaW5pdAorCSkgJiYKIAlnaXQgY2xvbmUgc3VwZXIgdG9wLW9ubHktY2xvbmUgJiYKIAlnaXQgY2xvbmUgc3VwZXIgcmVsYXRpdmUtY2xvbmUgJiYKLQkoY2QgcmVsYXRpdmUtY2xvbmUgJiYgZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC0tcmVjdXJzaXZlKSAmJgorCSgKKwkJY2QgcmVsYXRpdmUtY2xvbmUgJiYKKwkJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC0tcmVjdXJzaXZlCisJKSAmJgogCWdpdCBjbG9uZSBzdXBlciByZWN1cnNpdmUtY2xvbmUgJiYKLQkoY2QgcmVjdXJzaXZlLWNsb25lICYmIGdpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAtLXJlY3Vyc2l2ZSkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hhbmdlIHN1Ym1vZHVsZScgJwotCShjZCBzdWJtb2R1bGUgJiYKLQkgZWNobyBzZWNvbmQgbGluZSA+PiBmaWxlICYmCi0JIHRlc3RfdGljayAmJgotCSBnaXQgY29tbWl0IC1hIC1tICJjaGFuZ2Ugc3VibW9kdWxlIgorCSgKKwkJY2QgcmVjdXJzaXZlLWNsb25lICYmCisJCWdpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAtLXJlY3Vyc2l2ZQogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hhbmdlIHN1Ym1vZHVsZScgJworCSgKKwkJY2Qgc3VibW9kdWxlICYmCisJCWVjaG8gc2Vjb25kIGxpbmUgPj5maWxlICYmCisJCXRlc3RfdGljayAmJgorCQlnaXQgY29tbWl0IC1hIC1tICJjaGFuZ2Ugc3VibW9kdWxlIgorCSkKKycKKworcmVzZXRfc3VibW9kdWxlX3VybHMgKCkgeworCWxvY2FsIHJvb3QKKwlyb290PSQocHdkKSAmJgorCSgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlICYmCisJCWdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwgIiRyb290L3N1Ym1vZHVsZSIKKwkpICYmCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUvc3ViLXN1Ym1vZHVsZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsICIkcm9vdC9zdWJtb2R1bGUiCisJKQorfQorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGFuZ2Ugc3VibW9kdWxlIHVybCcgJwotCShjZCBzdXBlciAmJgotCSBjZCBzdWJtb2R1bGUgJiYKLQkgZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgotCSBnaXQgcHVsbAorCSgKKwkJY2Qgc3VwZXIgJiYKKwkJY2Qgc3VibW9kdWxlICYmCisJCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwkJZ2l0IHB1bGwKIAkpICYmCiAJbXYgc3VibW9kdWxlIG1vdmVkLXN1Ym1vZHVsZSAmJgotCShjZCBtb3ZlZC1zdWJtb2R1bGUgJiYKLQkgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3ViLXN1Ym1vZHVsZS51cmwgLi4vbW92ZWQtc3VibW9kdWxlICYmCi0JIHRlc3RfdGljayAmJgotCSBnaXQgY29tbWl0IC1hIC1tIG1vdmVkLXN1Yi1zdWJtb2R1bGUKKwkoCisJCWNkIG1vdmVkLXN1Ym1vZHVsZSAmJgorCQlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWItc3VibW9kdWxlLnVybCAuLi9tb3ZlZC1zdWJtb2R1bGUgJiYKKwkJdGVzdF90aWNrICYmCisJCWdpdCBjb21taXQgLWEgLW0gbW92ZWQtc3ViLXN1Ym1vZHVsZQogCSkgJiYKLQkoY2Qgc3VwZXIgJiYKLQkgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCAuLi9tb3ZlZC1zdWJtb2R1bGUgJiYKLQkgdGVzdF90aWNrICYmCi0JIGdpdCBjb21taXQgLWEgLW0gbW92ZWQtc3VibW9kdWxlCisJKAorCQljZCBzdXBlciAmJgorCQlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXJsIC4uL21vdmVkLXN1Ym1vZHVsZSAmJgorCQl0ZXN0X3RpY2sgJiYKKwkJZ2l0IGNvbW1pdCAtYSAtbSBtb3ZlZC1zdWJtb2R1bGUKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIHNob3VsZCB1cGRhdGUgc3VibW9kdWxlIFVSTHMnICcKLQkoY2Qgc3VwZXItY2xvbmUgJiYKLQkgZ2l0IHB1bGwgLS1uby1yZWN1cnNlLXN1Ym1vZHVsZXMgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jCisJKAorCQljZCBzdXBlci1jbG9uZSAmJgorCQlnaXQgcHVsbCAtLW5vLXJlY3Vyc2Utc3VibW9kdWxlcyAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMKIAkpICYmCi0JdGVzdCAtZCAiJChjZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUgJiYKLQkgZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCXRlc3QgLWQgIiQoCisJCWNkIHN1cGVyLWNsb25lL3N1Ym1vZHVsZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsCiAJKSIgJiYKLQl0ZXN0ICEgLWQgIiQoY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKLQkgZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCXRlc3QgISAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAogCSkiICYmCi0JKGNkIHN1cGVyLWNsb25lL3N1Ym1vZHVsZSAmJgotCSBnaXQgY2hlY2tvdXQgbWFzdGVyICYmCi0JIGdpdCBwdWxsCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUgJiYKKwkJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCQlnaXQgcHVsbAogCSkgJiYKLQkoY2Qgc3VwZXItY2xvbmUgJiYKLQkgdGVzdCAtZCAiJChnaXQgY29uZmlnIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXJsKSIKKwkoCisJCWNkIHN1cGVyLWNsb25lICYmCisJCXRlc3QgLWQgIiQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCkiCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlIiBzaG91bGQgdXBkYXRlIGFsbCBzdWJtb2R1bGUgVVJMcycgJwotCShjZCBzdXBlci1jbG9uZSAmJgotCSAoY2Qgc3VibW9kdWxlICYmCi0JICBnaXQgcHVsbCAtLW5vLXJlY3Vyc2Utc3VibW9kdWxlcwotCSApICYmCi0JIGdpdCBzdWJtb2R1bGUgc3luYyAtLXJlY3Vyc2l2ZQorCSgKKwkJY2Qgc3VwZXItY2xvbmUgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQlnaXQgcHVsbCAtLW5vLXJlY3Vyc2Utc3VibW9kdWxlcworCQkpICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyAtLXJlY3Vyc2l2ZQogCSkgJiYKLQl0ZXN0IC1kICIkKGNkIHN1cGVyLWNsb25lL3N1Ym1vZHVsZSAmJgotCSBnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsCisJdGVzdCAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlICYmCisJCWdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwKIAkpIiAmJgotCXRlc3QgLWQgIiQoY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKLQkgZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCXRlc3QgLWQgIiQoCisJCWNkIHN1cGVyLWNsb25lL3N1Ym1vZHVsZS9zdWItc3VibW9kdWxlICYmCisJCWdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwKIAkpIiAmJgotCShjZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUvc3ViLXN1Ym1vZHVsZSAmJgotCSBnaXQgY2hlY2tvdXQgbWFzdGVyICYmCi0JIGdpdCBwdWxsCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUvc3ViLXN1Ym1vZHVsZSAmJgorCQlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJCWdpdCBwdWxsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXNldCBzdWJtb2R1bGUgVVJMcycgJworCXJlc2V0X3N1Ym1vZHVsZV91cmxzIHN1cGVyLWNsb25lCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIHNob3VsZCB1cGRhdGUgc3VibW9kdWxlIFVSTHMgLSBzdWJkaXJlY3RvcnknICcKKwkoCisJCWNkIHN1cGVyLWNsb25lICYmCisJCWdpdCBwdWxsIC0tbm8tcmVjdXJzZS1zdWJtb2R1bGVzICYmCisJCW1rZGlyIC1wIHN1YiAmJgorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzeW5jID4uLi8uLi9vdXRwdXQKKwkpICYmCisJZ3JlcCAiXFwuXFwuL3N1Ym1vZHVsZSIgb3V0cHV0ICYmCisJdGVzdCAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlICYmCisJCWdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwKKwkpIiAmJgorCXRlc3QgISAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCSkiICYmCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUgJiYKKwkJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCQlnaXQgcHVsbAorCSkgJiYKKwkoCisJCWNkIHN1cGVyLWNsb25lICYmCisJCXRlc3QgLWQgIiQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCkiCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlIiBzaG91bGQgdXBkYXRlIGFsbCBzdWJtb2R1bGUgVVJMcyAtIHN1YmRpcmVjdG9yeScgJworCSgKKwkJY2Qgc3VwZXItY2xvbmUgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQlnaXQgcHVsbCAtLW5vLXJlY3Vyc2Utc3VibW9kdWxlcworCQkpICYmCisJCW1rZGlyIC1wIHN1YiAmJgorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlID4uLi8uLi9vdXRwdXQKKwkpICYmCisJZ3JlcCAiXFwuXFwuL3N1Ym1vZHVsZS9zdWItc3VibW9kdWxlIiBvdXRwdXQgJiYKKwl0ZXN0IC1kICIkKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCSkiICYmCisJdGVzdCAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCSkiICYmCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUvc3ViLXN1Ym1vZHVsZSAmJgorCQlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJCWdpdCBwdWxsCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIiBzaG91bGQgdXBkYXRlIGtub3duIHN1Ym1vZHVsZSBVUkxzJyAnCi0JKGNkIGVtcHR5LWNsb25lICYmCi0JIGdpdCBwdWxsICYmCi0JIGdpdCBzdWJtb2R1bGUgc3luYyAmJgotCSB0ZXN0IC1kICIkKGdpdCBjb25maWcgc3VibW9kdWxlLnN1Ym1vZHVsZS51cmwpIgorCSgKKwkJY2QgZW1wdHktY2xvbmUgJiYKKwkJZ2l0IHB1bGwgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCisJCXRlc3QgLWQgIiQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCkiCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIiBzaG91bGQgbm90IHZpdmlmeSB1bmludGVyZXN0aW5nIHN1Ym1vZHVsZScgJwotCShjZCB0b3Atb25seS1jbG9uZSAmJgotCSBnaXQgcHVsbCAmJgotCSBnaXQgc3VibW9kdWxlIHN5bmMgJiYKLQkgdGVzdCAteiAiJChnaXQgY29uZmlnIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXJsKSIgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jIHN1Ym1vZHVsZSAmJgotCSB0ZXN0IC16ICIkKGdpdCBjb25maWcgc3VibW9kdWxlLnN1Ym1vZHVsZS51cmwpIgorCSgKKwkJY2QgdG9wLW9ubHktY2xvbmUgJiYKKwkJZ2l0IHB1bGwgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCisJCXRlc3QgLXogIiQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCkiICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyBzdWJtb2R1bGUgJiYKKwkJdGVzdCAteiAiJChnaXQgY29uZmlnIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXJsKSIKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSBmb28nICcKLQkoY2QgcmVsYXRpdmUtY2xvbmUgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiBmb28gJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCi0JKGNkIHN1Ym1vZHVsZSAmJgotCSAjYWN0dWFsIGZhaWxzIHdpdGg6ICJjYW5ub3Qgc3RyaXAgb2ZmIHVybCBmb28KLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gZm9vICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyAmJgorCQkoCisJCQljZCBzdWJtb2R1bGUgJiYKKwkJCSNhY3R1YWwgZmFpbHMgd2l0aDogImNhbm5vdCBzdHJpcCBvZmYgdXJsIGZvbworCQkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vc3VibW9kdWxlIgorCQkpCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIiBoYW5kbGVzIG9yaWdpbiBVUkwgb2YgdGhlIGZvcm0gZm9vL2JhcicgJwotCShjZCByZWxhdGl2ZS1jbG9uZSAmJgotCSBnaXQgcmVtb3RlIHNldC11cmwgb3JpZ2luIGZvby9iYXIgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCi0JKGNkIHN1Ym1vZHVsZSAmJgotCSAjYWN0dWFsIGZvby9zdWJtb2R1bGUKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vZm9vL3N1Ym1vZHVsZSIKLQkpCi0JKGNkIHN1Ym1vZHVsZS9zdWItc3VibW9kdWxlICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiICE9ICIuLi8uLi9mb28vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gZm9vL2JhciAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQkjYWN0dWFsIGZvby9zdWJtb2R1bGUKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uL2Zvby9zdWJtb2R1bGUiCisJCSkgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiICE9ICIuLi8uLi9mb28vc3VibW9kdWxlIgorCQkpCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlIiBwcm9wYWdhdGVzIGNoYW5nZXMgaW4gb3JpZ2luJyAnCi0JKGNkIHJlY3Vyc2l2ZS1jbG9uZSAmJgotCSBnaXQgcmVtb3RlIHNldC11cmwgb3JpZ2luIGZvby9iYXIgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlICYmCi0JKGNkIHN1Ym1vZHVsZSAmJgotCSAjYWN0dWFsIGZvby9zdWJtb2R1bGUKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vZm9vL3N1Ym1vZHVsZSIKLQkpCi0JKGNkIHN1Ym1vZHVsZS9zdWItc3VibW9kdWxlICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uLy4uL2Zvby9zdWJtb2R1bGUiCi0JKQorCSgKKwkJY2QgcmVjdXJzaXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gZm9vL2JhciAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgLS1yZWN1cnNpdmUgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQkjYWN0dWFsIGZvby9zdWJtb2R1bGUKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uL2Zvby9zdWJtb2R1bGUiCisJCSkgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uLy4uL2Zvby9zdWJtb2R1bGUiCisJCSkKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSAuL2ZvbycgJwotCShjZCByZWxhdGl2ZS1jbG9uZSAmJgotCSBnaXQgcmVtb3RlIHNldC11cmwgb3JpZ2luIC4vZm9vICYmCi0JIGdpdCBzdWJtb2R1bGUgc3luYyAmJgotCShjZCBzdWJtb2R1bGUgJiYKLQkgI2FjdHVhbCAuL3N1Ym1vZHVsZQotCSB0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi9zdWJtb2R1bGUiCi0JKQorCSgKKwkJY2QgcmVsYXRpdmUtY2xvbmUgJiYKKwkJZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiAuL2ZvbyAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQkjYWN0dWFsIC4vc3VibW9kdWxlCisJCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi9zdWJtb2R1bGUiCisJCSkKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSAuL2Zvby9iYXInICcKLQkoY2QgcmVsYXRpdmUtY2xvbmUgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiAuL2Zvby9iYXIgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCi0JKGNkIHN1Ym1vZHVsZSAmJgotCSAjYWN0dWFsIC4vZm9vL3N1Ym1vZHVsZQotCSB0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi9mb28vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi9mb28vYmFyICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyAmJgorCQkoCisJCQljZCBzdWJtb2R1bGUgJiYKKwkJCSNhY3R1YWwgLi9mb28vc3VibW9kdWxlCisJCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi9mb28vc3VibW9kdWxlIgorCQkpCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIiBoYW5kbGVzIG9yaWdpbiBVUkwgb2YgdGhlIGZvcm0gLi4vZm9vJyAnCi0JKGNkIHJlbGF0aXZlLWNsb25lICYmCi0JIGdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi4vZm9vICYmCi0JIGdpdCBzdWJtb2R1bGUgc3luYyAmJgotCShjZCBzdWJtb2R1bGUgJiYKLQkgI2FjdHVhbCAuLi9zdWJtb2R1bGUKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vLi4vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi4vZm9vICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyAmJgorCQkoCisJCQljZCBzdWJtb2R1bGUgJiYKKwkJCSNhY3R1YWwgLi4vc3VibW9kdWxlCisJCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi8uLi9zdWJtb2R1bGUiCisJCSkKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSAuLi9mb28vYmFyJyAnCi0JKGNkIHJlbGF0aXZlLWNsb25lICYmCi0JIGdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi4vZm9vL2JhciAmJgotCSBnaXQgc3VibW9kdWxlIHN5bmMgJiYKLQkoY2Qgc3VibW9kdWxlICYmCi0JICNhY3R1YWwgLi4vZm9vL3N1Ym1vZHVsZQotCSB0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi8uLi9mb28vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi4vZm9vL2JhciAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQkjYWN0dWFsIC4uL2Zvby9zdWJtb2R1bGUKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uLy4uL2Zvby9zdWJtb2R1bGUiCisJCSkKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSAuLi9mb28vYmFyIHdpdGggZGVlcGx5IG5lc3RlZCBzdWJtb2R1bGUnICcKLQkoY2QgcmVsYXRpdmUtY2xvbmUgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiAuLi9mb28vYmFyICYmCi0JIG1rZGlyIC1wIGEvYi9jICYmCi0JICggY2QgYS9iL2MgJiYKLQkgICBnaXQgaW5pdCAmJgotCSAgIDo+IC5naXRpZ25vcmUgJiYKLQkgICBnaXQgYWRkIC5naXRpZ25vcmUgJiYKLQkgICB0ZXN0X3RpY2sgJiYKLQkgICBnaXQgY29tbWl0IC1tICJpbml0aWFsIGNvbW1pdCIgKSAmJgotCSBnaXQgc3VibW9kdWxlIGFkZCAuLi9iYXIvYS9iL2MgLi9hL2IvYyAmJgotCSBnaXQgc3VibW9kdWxlIHN5bmMgJiYKLQkoY2QgYS9iL2MgJiYKLQkgI2FjdHVhbCAuLi9mb28vYmFyL2EvYi9jCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uLy4uLy4uLy4uL2Zvby9iYXIvYS9iL2MiCi0JKQorCSgKKwkJY2QgcmVsYXRpdmUtY2xvbmUgJiYKKwkJZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiAuLi9mb28vYmFyICYmCisJCW1rZGlyIC1wIGEvYi9jICYmCisJCSgKKwkJCWNkIGEvYi9jICYmCisJCQlnaXQgaW5pdCAmJgorCQkJPi5naXRpZ25vcmUgJiYKKwkJCWdpdCBhZGQgLmdpdGlnbm9yZSAmJgorCQkJdGVzdF90aWNrICYmCisJCQlnaXQgY29tbWl0IC1tICJpbml0aWFsIGNvbW1pdCIKKwkJKSAmJgorCQlnaXQgc3VibW9kdWxlIGFkZCAuLi9iYXIvYS9iL2MgLi9hL2IvYyAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgJiYKKwkJKAorCQkJY2QgYS9iL2MgJiYKKwkJCSNhY3R1YWwgLi4vZm9vL2Jhci9hL2IvYworCQkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vLi4vLi4vLi4vZm9vL2Jhci9hL2IvYyIKKwkJKQogCSkKICcKIApkaWZmIC0tZ2l0IGEvdC90NzQwNi1zdWJtb2R1bGUtdXBkYXRlLnNoIGIvdC90NzQwNi1zdWJtb2R1bGUtdXBkYXRlLnNoCmluZGV4IGE0ZmZlYTAuLmYwYjMzMDUgMTAwNzU1Ci0tLSBhL3QvdDc0MDYtc3VibW9kdWxlLXVwZGF0ZS5zaAorKysgYi90L3Q3NDA2LXN1Ym1vZHVsZS11cGRhdGUuc2gKQEAgLTU4LDcgKzU4LDcgQEAKIAkgZ2l0IHN1Ym1vZHVsZSBhZGQgLi4vbWVyZ2luZyBtZXJnaW5nICYmCiAJIHRlc3RfdGljayAmJgogCSBnaXQgY29tbWl0IC1tICJyZWJhc2luZyIKLQkpCisJKSAmJgogCShjZCBzdXBlciAmJgogCSBnaXQgc3VibW9kdWxlIGFkZCAuLi9ub25lIG5vbmUgJiYKIAkgdGVzdF90aWNrICYmCkBAIC04MCw2ICs4MCwyMSBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIHVwZGF0ZSBmcm9tIHN1YmRpcmVjdG9yeScgJworCShjZCBzdXBlci9zdWJtb2R1bGUgJiYKKwkgZ2l0IHJlc2V0IC0taGFyZCBIRUFEfjEKKwkpICYmCisJbWtkaXIgc3VwZXIvc3ViICYmCisJKGNkIHN1cGVyL3N1YiAmJgorCSAoY2QgLi4vc3VibW9kdWxlICYmCisJICBjb21wYXJlX2hlYWQKKwkgKSAmJgorCSBnaXQgc3VibW9kdWxlIHVwZGF0ZSAuLi9zdWJtb2R1bGUgJiYKKwkgY2QgLi4vc3VibW9kdWxlICYmCisJICEgY29tcGFyZV9oZWFkCisJKQorJworCiBhcG9zPSInIjsKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N1Ym1vZHVsZSB1cGRhdGUgZG9lcyBub3QgZmV0Y2ggYWxyZWFkeSBwcmVzZW50IGNvbW1pdHMnICcKIAkoY2Qgc3VibW9kdWxlICYmCkBAIC0yNzksNiArMjk0LDM1IEBACiAJKQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdWJtb2R1bGUgdXBkYXRlIC0gY29tbWFuZCBpbiAuZ2l0L2NvbmZpZycgJworCShjZCBzdXBlciAmJgorCSBnaXQgY29uZmlnIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXBkYXRlICIhZ2l0IGNoZWNrb3V0IgorCSkgJiYKKwkoY2Qgc3VwZXIvc3VibW9kdWxlICYmCisJICBnaXQgcmVzZXQgLS1oYXJkIEhFQUReCisJKSAmJgorCShjZCBzdXBlciAmJgorCSAoY2Qgc3VibW9kdWxlICYmCisJICBjb21wYXJlX2hlYWQKKwkgKSAmJgorCSBnaXQgc3VibW9kdWxlIHVwZGF0ZSBzdWJtb2R1bGUgJiYKKwkgY2Qgc3VibW9kdWxlICYmCisJICEgY29tcGFyZV9oZWFkCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdWJtb2R1bGUgdXBkYXRlIC0gY29tbWFuZCBpbiAuZ2l0L2NvbmZpZyBjYXRjaGVzIGZhaWx1cmUnICcKKwkoY2Qgc3VwZXIgJiYKKwkgZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVwZGF0ZSAiIWZhbHNlIgorCSkgJiYKKwkoY2Qgc3VwZXIvc3VibW9kdWxlICYmCisJICBnaXQgcmVzZXQgLS1oYXJkIEhFQUReCisJKSAmJgorCShjZCBzdXBlciAmJgorCSB0ZXN0X211c3RfZmFpbCBnaXQgc3VibW9kdWxlIHVwZGF0ZSBzdWJtb2R1bGUKKwkpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N1Ym1vZHVsZSBpbml0IHBpY2tzIHVwIHJlYmFzZScgJwogCShjZCBzdXBlciAmJgogCSBnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5yZWJhc2luZy51cGRhdGUgcmViYXNlICYmCkBAIC02ODUsMTQgKzcyOSwyNCBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc3VibW9kdWxlIHVwZGF0ZSBjYW4gaGFuZGxlIHN5bWJvbGljIGxpbmtzIGluIHB3ZCcgJwogCW1rZGlyIC1wIGxpbmtlZC9kaXIgJiYKIAlsbiAtcyBsaW5rZWQvZGlyIGxpbmt0byAmJgotCSgKLQkJY2QgbGlua3RvICYmCi0JCWdpdCBjbG9uZSAiJFRSQVNIX0RJUkVDVE9SWSIvc3VwZXJfdXBkYXRlX3IyIHN1cGVyICYmCi0JCSgKLQkJCWNkIHN1cGVyICYmCi0JCQlnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUKLQkJKQorCShjZCBsaW5rdG8gJiYKKwkgZ2l0IGNsb25lICIkVFJBU0hfRElSRUNUT1JZIi9zdXBlcl91cGRhdGVfcjIgc3VwZXIgJiYKKwkgKGNkIHN1cGVyICYmCisJICBnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUKKwkgKQogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIHVwZGF0ZSBjbG9uZSBzaGFsbG93IHN1Ym1vZHVsZScgJworCWdpdCBjbG9uZSBjbG9uZWQgc3VwZXIzICYmCisJcHdkPSQocHdkKQorCShjZCBzdXBlcjMgJiYKKwkgc2VkIC1lICJzI3VybCA9IC4uLyN1cmwgPSBmaWxlOi8vJHB3ZC8jIiA8LmdpdG1vZHVsZXMgPi5naXRtb2R1bGVzLnRtcCAmJgorCSBtdiAtZiAuZ2l0bW9kdWxlcy50bXAgLmdpdG1vZHVsZXMgJiYKKwkgZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC0tZGVwdGg9MworCSAoY2Qgc3VibW9kdWxlICYmCisJICB0ZXN0IDEgPSAkKGdpdCBsb2cgLS1vbmVsaW5lIHwgd2MgLWwpCisJICkKKwkpCisnCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDc0MDctc3VibW9kdWxlLWZvcmVhY2guc2ggYi90L3Q3NDA3LXN1Ym1vZHVsZS1mb3JlYWNoLnNoCmluZGV4IDEwN2I0YjcuLmJlOTNmMTAgMTAwNzU1Ci0tLSBhL3QvdDc0MDctc3VibW9kdWxlLWZvcmVhY2guc2gKKysrIGIvdC90NzQwNy1zdWJtb2R1bGUtZm9yZWFjaC5zaApAQCAtODAsNiArODAsMjIgQEAKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IGFjdHVhbAogJwogCitjYXQgPmV4cGVjdCA8PEVPRgorRW50ZXJpbmcgJy4uL3N1YjEnCiskcHdkL2Nsb25lLWZvbzEtLi4vc3ViMS0kc3ViMXNoYTEKK0VudGVyaW5nICcuLi9zdWIzJworJHB3ZC9jbG9uZS1mb28zLS4uL3N1YjMtJHN1YjNzaGExCitFT0YKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndGVzdCAic3VibW9kdWxlIGZvcmVhY2giIGZyb20gc3ViZGlyZWN0b3J5JyAnCisJbWtkaXIgY2xvbmUvc3ViICYmCisJKAorCQljZCBjbG9uZS9zdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBmb3JlYWNoICJlY2hvIFwkdG9wbGV2ZWwtXCRuYW1lLVwkc21fcGF0aC1cJHNoYTEiID4uLi8uLi9hY3R1YWwKKwkpICYmCisJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgbmVzdGVkIHN1Ym1vZHVsZXMnICcKIAlnaXQgY2xvbmUgc3VibW9kdWxlIG5lc3RlZDEgJiYKIAlnaXQgY2xvbmUgc3VibW9kdWxlIG5lc3RlZDIgJiYKQEAgLTEyOSw3ICsxNDUsNyBAQAogCQlnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIG5lc3RlZDEvLmdpdCAmJgogCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIG5lc3RlZDEvbmVzdGVkMi8uZ2l0ICYmCiAJCWdpdCBzdWJtb2R1bGUgZm9yZWFjaCAiZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IiAmJgotCQlnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIG5lc3RlZDEvbmVzdGVkMS9uZXN0ZWQyLy5naXQKKwkJZ2l0IHJldi1wYXJzZSAtLXJlc29sdmUtZ2l0LWRpciBuZXN0ZWQxL25lc3RlZDIvLmdpdCAmJgogCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIG5lc3RlZDEvbmVzdGVkMi9uZXN0ZWQzLy5naXQKIAkpCiAnCmRpZmYgLS1naXQgYS90L3Q3NTAwLWNvbW1pdC5zaCBiL3QvdDc1MDAtY29tbWl0LnNoCmluZGV4IDQzNmI3YjYuLmJkYzFmMjkgMTAwNzU1Ci0tLSBhL3QvdDc1MDAtY29tbWl0LnNoCisrKyBiL3QvdDc1MDAtY29tbWl0LnNoCkBAIC0xMyw5ICsxMyw5IEBACiAJZXhwZWN0PWNvbW1pdF9tc2dfaXMuZXhwZWN0CiAJYWN0dWFsPWNvbW1pdF9tc2dfaXMuYWN0dWFsCiAKLQlwcmludGYgIiVzIiAiJChnaXQgbG9nIC0tcHJldHR5PWZvcm1hdDolcyViIC0xKSIgPiRleHBlY3QgJiYKLQlwcmludGYgIiVzIiAiJDEiID4kYWN0dWFsICYmCi0JdGVzdF9pMThuY21wICRleHBlY3QgJGFjdHVhbAorCXByaW50ZiAiJXMiICIkKGdpdCBsb2cgLS1wcmV0dHk9Zm9ybWF0OiVzJWIgLTEpIiA+IiRhY3R1YWwiICYmCisJcHJpbnRmICIlcyIgIiQxIiA+IiRleHBlY3QiICYmCisJdGVzdF9pMThuY21wICIkZXhwZWN0IiAiJGFjdHVhbCIKIH0KIAogIyBBIHNhbml0eSBjaGVjayB0byBzZWUgaWYgY29tbWl0IGlzIHdvcmtpbmcgYXQgYWxsLgpkaWZmIC0tZ2l0IGEvdC90NzUwMS1jb21taXQuc2ggYi90L3Q3NTAxLWNvbW1pdC5zaAppbmRleCAxOTVlNzQ3Li45OWNlMzZmIDEwMDc1NQotLS0gYS90L3Q3NTAxLWNvbW1pdC5zaAorKysgYi90L3Q3NTAxLWNvbW1pdC5zaApAQCAtNTI0LDQgKzUyNCwxNyBAQAogCXRlc3RfaTE4bmdyZXAgIiBjaGFuZ2VkLCA1IGluc2VydGlvbnMiIG91dHB1dAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLW9ubHkgd29ya3Mgb24gdG8tYmUtYm9ybiBicmFuY2gnICcKKwkjIFRoaXMgdGVzdCByZWxpZXMgb24gaGF2aW5nIHNvbWV0aGluZyBpbiB0aGUgaW5kZXgsIGFzIGl0CisJIyB3b3VsZCBub3Qgb3RoZXJ3aXNlIGFjdHVhbGx5IHByb3ZlIG11Y2guICBTbyBjaGVjayB0aGlzLgorCXRlc3QgLW4gIiQoZ2l0IGxzLWZpbGVzKSIgJiYKKwlnaXQgY2hlY2tvdXQgLS1vcnBoYW4gb3JwaGFuICYmCisJZWNobyBmb28gPm5ld2ZpbGUgJiYKKwlnaXQgYWRkIG5ld2ZpbGUgJiYKKwlnaXQgY29tbWl0IC0tb25seSBuZXdmaWxlIC1tIi0tb25seSBvbiB1bmJvcm4gYnJhbmNoIiAmJgorCWVjaG8gbmV3ZmlsZSA+ZXhwZWN0ZWQgJiYKKwlnaXQgbHMtdHJlZSAtciAtLW5hbWUtb25seSBIRUFEID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q3NTAyLWNvbW1pdC5zaCBiL3QvdDc1MDItY29tbWl0LnNoCmluZGV4IGE0OTM4YjEuLjYzMTNkYTIgMTAwNzU1Ci0tLSBhL3QvdDc1MDItY29tbWl0LnNoCisrKyBiL3QvdDc1MDItY29tbWl0LnNoCkBAIC0zNjEsNiArMzYxLDIzIEBACiAJdGVzdF9jbXAgZXhwZWN0IC5naXQvcmVzdWx0CiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RvIG5vdCBmaXJlIGVkaXRvciBpZiAtbSA8bXNnPiB3YXMgZ2l2ZW4nICcKKwllY2hvIHRpY2sgPmZpbGUgJiYKKwlnaXQgYWRkIGZpbGUgJiYKKwllY2hvICJlZGl0b3Igbm90IHN0YXJ0ZWQiID4uZ2l0L3Jlc3VsdCAmJgorCShHSVRfRURJVE9SPSJcIiQocHdkKS8uZ2l0L0ZBS0VfRURJVE9SXCIiIGdpdCBjb21taXQgLW0gdGljaykgJiYKKwl0ZXN0ICIkKGNhdCAuZ2l0L3Jlc3VsdCkiID0gImVkaXRvciBub3Qgc3RhcnRlZCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZG8gbm90IGZpcmUgZWRpdG9yIGlmIC1tICIiIHdhcyBnaXZlbicgJworCWVjaG8gdG9jayA+ZmlsZSAmJgorCWdpdCBhZGQgZmlsZSAmJgorCWVjaG8gImVkaXRvciBub3Qgc3RhcnRlZCIgPi5naXQvcmVzdWx0ICYmCisJKEdJVF9FRElUT1I9IlwiJChwd2QpLy5naXQvRkFLRV9FRElUT1JcIiIgXAorCSBnaXQgY29tbWl0IC1tICIiIC0tYWxsb3ctZW1wdHktbWVzc2FnZSkgJiYKKwl0ZXN0ICIkKGNhdCAuZ2l0L3Jlc3VsdCkiID0gImVkaXRvciBub3Qgc3RhcnRlZCIKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZG8gbm90IGZpcmUgZWRpdG9yIGluIHRoZSBwcmVzZW5jZSBvZiBjb25mbGljdHMnICcKIAogCWdpdCBjbGVhbiAtZiAmJgpkaWZmIC0tZ2l0IGEvdC90NzUwOC1zdGF0dXMuc2ggYi90L3Q3NTA4LXN0YXR1cy5zaAppbmRleCBlMmZmZGFjLi5hYzNkMGZlIDEwMDc1NQotLS0gYS90L3Q3NTA4LXN0YXR1cy5zaAorKysgYi90L3Q3NTA4LXN0YXR1cy5zaApAQCAtMTMzNSw0ICsxMzM1LDY2IEBACiAJZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyAgLS1yZW1vdmUtc2VjdGlvbiBzdWJtb2R1bGUuc3VibmFtZQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvZiB0ZXN0IGVudmlyb25tZW50JyAnCisJZ2l0IGNvbmZpZyBzdGF0dXMuc2hvd1VudHJhY2tlZEZpbGVzIG5vICYmCisJZ2l0IHN0YXR1cyAtcyA+ZXhwZWN0ZWRfc2hvcnQgJiYKKwlnaXQgc3RhdHVzIC0tbm8tc2hvcnQgPmV4cGVjdGVkX25vc2hvcnQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnInN0YXR1cy5zaG9ydD10cnVlIiBzYW1lIGFzICItcyInICcKKwlnaXQgLWMgc3RhdHVzLnNob3J0PXRydWUgc3RhdHVzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZF9zaG9ydCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnInN0YXR1cy5zaG9ydD10cnVlIiB3ZWFrZXIgdGhhbiAiLS1uby1zaG9ydCInICcKKwlnaXQgLWMgc3RhdHVzLnNob3J0PXRydWUgc3RhdHVzIC0tbm8tc2hvcnQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkX25vc2hvcnQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJzdGF0dXMuc2hvcnQ9ZmFsc2UiIHNhbWUgYXMgIi0tbm8tc2hvcnQiJyAnCisJZ2l0IC1jIHN0YXR1cy5zaG9ydD1mYWxzZSBzdGF0dXMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkX25vc2hvcnQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJzdGF0dXMuc2hvcnQ9ZmFsc2UiIHdlYWtlciB0aGFuICItcyInICcKKwlnaXQgLWMgc3RhdHVzLnNob3J0PWZhbHNlIHN0YXR1cyAtcyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWRfc2hvcnQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJzdGF0dXMuYnJhbmNoPXRydWUiIHNhbWUgYXMgIi1iIicgJworCWdpdCBzdGF0dXMgLXNiID5leHBlY3RlZF9icmFuY2ggJiYKKwlnaXQgLWMgc3RhdHVzLmJyYW5jaD10cnVlIHN0YXR1cyAtcyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWRfYnJhbmNoIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICcic3RhdHVzLmJyYW5jaD10cnVlIiBkaWZmZXJlbnQgZnJvbSAiLS1uby1icmFuY2giJyAnCisJZ2l0IHN0YXR1cyAtcyAtLW5vLWJyYW5jaCAgPmV4cGVjdGVkX25vYnJhbmNoICYmCisJZ2l0IC1jIHN0YXR1cy5icmFuY2g9dHJ1ZSBzdGF0dXMgLXMgPmFjdHVhbCAmJgorCXRlc3RfbXVzdF9mYWlsIHRlc3RfY21wIGV4cGVjdGVkX25vYnJhbmNoIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICcic3RhdHVzLmJyYW5jaD10cnVlIiB3ZWFrZXIgdGhhbiAiLS1uby1icmFuY2giJyAnCisJZ2l0IC1jIHN0YXR1cy5icmFuY2g9dHJ1ZSBzdGF0dXMgLXMgLS1uby1icmFuY2ggPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkX25vYnJhbmNoIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICcic3RhdHVzLmJyYW5jaD10cnVlIiB3ZWFrZXIgdGhhbiAiLS1wb3JjZWxhaW4iJyAnCisgICAgICAgZ2l0IC1jIHN0YXR1cy5icmFuY2g9dHJ1ZSBzdGF0dXMgLS1wb3JjZWxhaW4gPmFjdHVhbCAmJgorICAgICAgIHRlc3RfY21wIGV4cGVjdGVkX25vYnJhbmNoIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICcic3RhdHVzLmJyYW5jaD1mYWxzZSIgc2FtZSBhcyAiLS1uby1icmFuY2giJyAnCisJZ2l0IC1jIHN0YXR1cy5icmFuY2g9ZmFsc2Ugc3RhdHVzIC1zID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZF9ub2JyYW5jaCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnInN0YXR1cy5icmFuY2g9ZmFsc2UiIHdlYWtlciB0aGFuICItYiInICcKKwlnaXQgLWMgc3RhdHVzLmJyYW5jaD1mYWxzZSBzdGF0dXMgLXNiID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZF9icmFuY2ggYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1Jlc3RvcmUgZGVmYXVsdCB0ZXN0IGVudmlyb25tZW50JyAnCisJZ2l0IGNvbmZpZyAtLXVuc2V0IHN0YXR1cy5zaG93VW50cmFja2VkRmlsZXMKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q3NTEyLXN0YXR1cy1oZWxwLnNoIGIvdC90NzUxMi1zdGF0dXMtaGVscC5zaAppbmRleCBiZjA4ZDRlLi4zMWE3OThmIDEwMDc1NQotLS0gYS90L3Q3NTEyLXN0YXR1cy1oZWxwLnNoCisrKyBiL3QvdDc1MTItc3RhdHVzLWhlbHAuc2gKQEAgLTc3LDcgKzc3LDcgQEAKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUReXikgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlIEhFQUReIC0tb250byBIRUFEXl4gJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBhdCAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJ1wnJ3JlYmFzZV9jb25mbGljdHMnXCcnIG9uICdcJyckT05UTydcJycuCiAJIyAgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKIAkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLXNraXAiIHRvIHNraXAgdGhpcyBwYXRjaCkKQEAgLTEwNCw3ICsxMDQsNyBAQAogCWVjaG8gdGhyZWUgPm1haW4udHh0ICYmCiAJZ2l0IGFkZCBtYWluLnR4dCAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGF0ICRPTlRPCisJIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KIAkjIFlvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnXCcncmViYXNlX2NvbmZsaWN0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKIAkjCkBAIC0xMzYsNyArMTM2LDcgQEAKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IHJlYmFzZV9pX2NvbmZsaWN0cykgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlIC1pIHJlYmFzZV9pX2NvbmZsaWN0cyAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGF0ICRPTlRPCisJIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KIAkjIFlvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnXCcncmViYXNlX2lfY29uZmxpY3RzX3NlY29uZCdcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQogCSMgICAodXNlICJnaXQgcmViYXNlIC0tc2tpcCIgdG8gc2tpcCB0aGlzIHBhdGNoKQpAQCAtMTYyLDcgKzE2Miw3IEBACiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYmFzZSAtaSByZWJhc2VfaV9jb25mbGljdHMgJiYKIAlnaXQgYWRkIG1haW4udHh0ICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIEhFQUQgZGV0YWNoZWQgYXQgJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICdcJydyZWJhc2VfaV9jb25mbGljdHNfc2Vjb25kJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQogCSMKQEAgLTE4OCwxMCArMTg4LDkgQEAKIAlleHBvcnQgRkFLRV9MSU5FUyAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlYmFzZSAtLWFib3J0IiAmJgogCU9OVE89JChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRH4yKSAmJgotCVRHVD0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCB0d29fcmViYXNlX2kpICYmCiAJZ2l0IHJlYmFzZSAtaSBIRUFEfjIgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBmcm9tICRUR1QKKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3JlYmFzZV9pX2VkaXQnXCcnIG9uICdcJyckT05UTydcJycuCiAJIyAgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQogCSMgICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCkBAIC0yMTYsOSArMjE1LDggQEAKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUR+MykgJiYKIAlnaXQgcmViYXNlIC1pIEhFQUR+MyAmJgogCWdpdCByZXNldCBIRUFEXiAmJgotCVRHVD0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCBIRUFEKSAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGF0ICRUR1QKKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc3BsaXRfY29tbWl0J1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gImdpdCByZWJhc2UgLS1jb250aW51ZSIpCiAJIwpAQCAtMjQ2LDExICsyNDQsMTAgQEAKIAlleHBvcnQgRkFLRV9MSU5FUyAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlYmFzZSAtLWFib3J0IiAmJgogCU9OVE89JChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRH4zKSAmJgotCVRHVD0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCB0aHJlZV9hbWVuZCkgJiYKIAlnaXQgcmViYXNlIC1pIEhFQUR+MyAmJgogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiZm9vIiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJFRHVAorCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnYW1lbmRfbGFzdCdcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCiAJIyAgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKQEAgLTI4MCw3ICsyNzcsNyBAQAogCWdpdCByZWJhc2UgLWkgSEVBRH4zICYmCiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIEhFQUQgZGV0YWNoZWQgZnJvbSAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCiAJIyAgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKQEAgLTMwMiw3ICsyOTksNyBAQAogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCByZXNldCBIRUFEXiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKE9uY2UgeW91ciB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVhbiwgcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQogCSMKQEAgLTMyOSw3ICszMjYsNyBAQAogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiZm9vIiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCiAJIyAgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQogCSMgICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCkBAIC0zNTEsNyArMzQ4LDcgQEAKIAlnaXQgY29tbWl0IC0tYW1lbmQgLW0gImEiICYmCiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIEhFQUQgZGV0YWNoZWQgZnJvbSAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCiAJIyAgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKQEAgLTM3NCw3ICszNzEsNyBAQAogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCByZXNldCBIRUFEXiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKE9uY2UgeW91ciB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVhbiwgcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQogCSMKQEAgLTQwMiw3ICszOTksNyBAQAogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiZCIgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBmcm9tICRPTlRPCisJIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KIAkjIFlvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKIAkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQpAQCAtNDI2LDcgKzQyMyw3IEBACiAJZ2l0IGNvbW1pdCAtbSAiZSIgJiYKIAlnaXQgcmViYXNlIC0tY29udGludWUgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBmcm9tICRPTlRPCisJIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KIAkjIFlvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKIAkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQpAQCAtNDUxLDcgKzQ0OCw3IEBACiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCiAJZ2l0IHJlc2V0IEhFQUReICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIEhFQUQgZGV0YWNoZWQgZnJvbSAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gImdpdCByZWJhc2UgLS1jb250aW51ZSIpCiAJIwpAQCAtNDgxLDcgKzQ3OCw3IEBACiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCiAJZ2l0IGNvbW1pdCAtLWFtZW5kIC1tICJoIiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCiAJIyAgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQogCSMgICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCkBAIC01MTAsNyArNTA3LDcgQEAKIAljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKIAkjIE9uIGJyYW5jaCBhbV9hbHJlYWR5X2V4aXN0cwogCSMgWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uCi0JIyAgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biAiZ2l0IGFtIC0tcmVzb2x2ZWQiKQorCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gImdpdCBhbSAtLWNvbnRpbnVlIikKIAkjICAgKHVzZSAiZ2l0IGFtIC0tc2tpcCIgdG8gc2tpcCB0aGlzIHBhdGNoKQogCSMgICAodXNlICJnaXQgYW0gLS1hYm9ydCIgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoKQogCSMKQEAgLTUzMiw3ICs1MjksNyBAQAogCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCSMgT24gYnJhbmNoIGFtX25vdF9leGlzdHMKIAkjIFlvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBhbSBzZXNzaW9uLgotCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gImdpdCBhbSAtLXJlc29sdmVkIikKKwkjICAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuICJnaXQgYW0gLS1jb250aW51ZSIpCiAJIyAgICh1c2UgImdpdCBhbSAtLXNraXAiIHRvIHNraXAgdGhpcyBwYXRjaCkKIAkjICAgKHVzZSAiZ2l0IGFtIC0tYWJvcnQiIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCkKIAkjCkBAIC02MDEsNyArNTk4LDcgQEAKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUReXikgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlIEhFQUReIC0tb250byBIRUFEXl4gJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBhdCAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJ1wnJ3N0YXR1c2hpbnRzX2Rpc2FibGVkJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMKIAkjIFVubWVyZ2VkIHBhdGhzOgpAQCAtNjMyLDcgKzYyOSw4IEBACiAJY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCiAJIyBPbiBicmFuY2ggY2hlcnJ5X2JyYW5jaAogCSMgWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuCi0JIyAgIChmaXggY29uZmxpY3RzIGFuZCBydW4gImdpdCBjb21taXQiKQorCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuICJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZSIpCisJIyAgICh1c2UgImdpdCBjaGVycnktcGljayAtLWFib3J0IiB0byBjYW5jZWwgdGhlIGNoZXJyeS1waWNrIG9wZXJhdGlvbikKIAkjCiAJIyBVbm1lcmdlZCBwYXRoczoKIAkjICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIG1hcmsgcmVzb2x1dGlvbikKQEAgLTY1NSw3ICs2NTMsOCBAQAogCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCSMgT24gYnJhbmNoIGNoZXJyeV9icmFuY2gKIAkjIFlvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nLgotCSMgICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuICJnaXQgY29tbWl0IikKKwkjICAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biAiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWUiKQorCSMgICAodXNlICJnaXQgY2hlcnJ5LXBpY2sgLS1hYm9ydCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pCiAJIwogCSMgQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CiAJIwpAQCAtNjY3LDcgKzY2Niw3IEBACiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgc2hvd2luZyBkZXRhY2hlZCBmcm9tIGEgdGFnJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgc2hvd2luZyBkZXRhY2hlZCBhdCBhbmQgZnJvbSBhIHRhZycgJwogCXRlc3RfY29tbWl0IGF0YWcgdGFnZ2luZyAmJgogCWdpdCBjaGVja291dCBhdGFnICYmCiAJY2F0ID5leHBlY3RlZCA8PC1cRU9GCkBAIC02NzUsNiArNjc0LDE0IEBACiAJbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKIAlFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCisKKwlnaXQgcmVzZXQgLS1oYXJkIEhFQUReICYmCisJY2F0ID5leHBlY3RlZCA8PC1cRU9GCisJIyBIRUFEIGRldGFjaGVkIGZyb20gYXRhZworCW5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCisJRU9GCisJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCmRpZmYgLS1naXQgYS90L3Q3NjAwLW1lcmdlLnNoIGIvdC90NzYwMC1tZXJnZS5zaAppbmRleCAyZjcwNDMzLi4xMGFhMDI4IDEwMDc1NQotLS0gYS90L3Q3NjAwLW1lcmdlLnNoCisrKyBiL3QvdDc2MDAtbWVyZ2Uuc2gKQEAgLTMxNiw3ICszMTYsNyBAQAogCiB0ZXN0X2RlYnVnICdnaXQgbG9nIC0tZ3JhcGggLS1kZWNvcmF0ZSAtLW9uZWxpbmUgLS1hbGwnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Vuc3VjY2VzZnVsIG1lcmdlIG9mIGMxIHdpdGggYzIgKHNxdWFzaCwgZmYtb25seSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Vuc3VjY2Vzc2Z1bCBtZXJnZSBvZiBjMSB3aXRoIGMyIChzcXVhc2gsIGZmLW9ubHkpJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCBjMSAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSAtLXNxdWFzaCAtLWZmLW9ubHkgYzIKICcKQEAgLTQ5Nyw5ICs0OTcsMTUgQEAKIAl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLS1uby1mZiAtLXNxdWFzaCBjMQogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdjb21iaW5pbmcgLS1mZi1vbmx5IGFuZCAtLW5vLWZmIGlzIHJlZnVzZWQnICcKLQl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLS1mZi1vbmx5IC0tbm8tZmYgYzEgJiYKLQl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLS1uby1mZiAtLWZmLW9ubHkgYzEKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ29wdGlvbiAtLWZmLW9ubHkgb3ZlcndyaXRlcyAtLW5vLWZmJyAnCisJZ2l0IG1lcmdlIC0tbm8tZmYgLS1mZi1vbmx5IGMxICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIC0tbm8tZmYgLS1mZi1vbmx5IGMyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ29wdGlvbiAtLW5vLWZmIG92ZXJyaWRlcyBtZXJnZS5mZj1vbmx5IGNvbmZpZycgJworCWdpdCByZXNldCAtLWhhcmQgYzAgJiYKKwl0ZXN0X2NvbmZpZyBtZXJnZS5mZiBvbmx5ICYmCisJZ2l0IG1lcmdlIC0tbm8tZmYgYzEKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbWVyZ2UgYzAgd2l0aCBjMSAoZmYgb3ZlcnJpZGVzIG5vLWZmKScgJwpkaWZmIC0tZ2l0IGEvdC90NzYwMS1tZXJnZS1wdWxsLWNvbmZpZy5zaCBiL3QvdDc2MDEtbWVyZ2UtcHVsbC1jb25maWcuc2gKaW5kZXggMjVkYWM3OS4uODMwYTRjMyAxMDA3NTUKLS0tIGEvdC90NzYwMS1tZXJnZS1wdWxsLWNvbmZpZy5zaAorKysgYi90L3Q3NjAxLW1lcmdlLXB1bGwtY29uZmlnLnNoCkBAIC0xMDksNyArMTA5LDcgQEAKICcKIAogIyBGaXJzdCBkbyB0aGUgbWVyZ2Ugd2l0aCByZXNvbHZlIGFuZCByZWN1cnNpdmUgdGhlbiB2ZXJpZnkgdGhhdAotIyByZWN1c2l2ZSBpcyBjaG9zZW4uCisjIHJlY3Vyc2l2ZSBpcyBjaG9zZW4uCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21lcmdlIHBpY2tzIHVwIHRoZSBiZXN0IHJlc3VsdCcgJwogCWdpdCBjb25maWcgLS11bnNldC1hbGwgcHVsbC50d29oZWFkICYmCmRpZmYgLS1naXQgYS90L3Q3NjA3LW1lcmdlLW92ZXJ3cml0ZS5zaCBiL3QvdDc2MDctbWVyZ2Utb3ZlcndyaXRlLnNoCmluZGV4IDY1NDdlYjguLjc1OGE2MjMgMTAwNzU1Ci0tLSBhL3QvdDc2MDctbWVyZ2Utb3ZlcndyaXRlLnNoCisrKyBiL3QvdDc2MDctbWVyZ2Utb3ZlcndyaXRlLnNoCkBAIC0xNDEsMTEgKzE0MSwxMCBAQAogCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvTUVSR0VfSEVBRAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICd3aWxsIG5vdCBiZSBjb25mdXNlZCBieSBzeW1saW5rIGluIGxlYWRpbmcgcGF0aCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnd2lsbCBub3QgYmUgY29uZnVzZWQgYnkgc3ltbGluayBpbiBsZWFkaW5nIHBhdGgnICcKIAlnaXQgcmVzZXQgLS1oYXJkIGMwICYmCiAJcm0gLXJmIHN1YiAmJgotCWxuIC1zIHN1YjIgc3ViICYmCi0JZ2l0IGFkZCBzdWIgJiYKKwl0ZXN0X2xuX3NfYWRkIHN1YjIgc3ViICYmCiAJZ2l0IGNvbW1pdCAtbSBsbiAmJgogCWdpdCBjaGVja291dCBzdWIKICcKZGlmZiAtLWdpdCBhL3QvdDc4MDAtZGlmZnRvb2wuc2ggYi90L3Q3ODAwLWRpZmZ0b29sLnNoCmluZGV4IGQ0NmYwNDEuLjI0MTg1MjggMTAwNzU1Ci0tLSBhL3QvdDc4MDAtZGlmZnRvb2wuc2gKKysrIGIvdC90NzgwMC1kaWZmdG9vbC5zaApAQCAtMzg1LDYgKzM4NSwyNSBAQAogCXRlc3RfY21wIGFjdHVhbCBleHBlY3QKICcKIAord3JpdGVfc2NyaXB0IG1vZGlmeS1yaWdodC1maWxlIDw8XEVPRgorZWNobyAibmV3IGNvbnRlbnQiID4iJDIvZmlsZSIKK0VPRgorCitydW5fZGlyX2RpZmZfdGVzdCAnZGlmZnRvb2wgLS1kaXItZGlmZiBzeW5jcyB3b3JrdHJlZSB3aXRoIHVuc3RhZ2VkIGNoYW5nZScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgcmVzZXQgLS1oYXJkICYmCisJZWNobyAib3JpZyBjb250ZW50IiA+ZmlsZSAmJgorCWdpdCBkaWZmdG9vbCAtZCAkc3ltbGlua3MgLS1leHRjbWQgIiQocHdkKS9tb2RpZnktcmlnaHQtZmlsZSIgYnJhbmNoICYmCisJZWNobyAibmV3IGNvbnRlbnQiID5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgZmlsZQorJworCitydW5fZGlyX2RpZmZfdGVzdCAnZGlmZnRvb2wgLS1kaXItZGlmZiBzeW5jcyB3b3JrdHJlZSB3aXRob3V0IHVuc3RhZ2VkIGNoYW5nZScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgcmVzZXQgLS1oYXJkICYmCisJZ2l0IGRpZmZ0b29sIC1kICRzeW1saW5rcyAtLWV4dGNtZCAiJChwd2QpL21vZGlmeS1yaWdodC1maWxlIiBicmFuY2ggJiYKKwllY2hvICJuZXcgY29udGVudCIgPmV4cGVjdCAmJgorCXRlc3RfY21wIGV4cGVjdCBmaWxlCisnCisKIHdyaXRlX3NjcmlwdCBtb2RpZnktZmlsZSA8PFxFT0YKIGVjaG8gIm5ldyBjb250ZW50IiA+ZmlsZQogRU9GCmRpZmYgLS1naXQgYS90L3Q4MDAxLWFubm90YXRlLnNoIGIvdC90ODAwMS1hbm5vdGF0ZS5zaAppbmRleCA0MTk2MmYwLi43MjE3NmU0IDEwMDc1NQotLS0gYS90L3Q4MDAxLWFubm90YXRlLnNoCisrKyBiL3QvdDgwMDEtYW5ub3RhdGUuc2gKQEAgLTYsOSArNiw5IEBACiBQUk9HPSdnaXQgYW5ub3RhdGUnCiAuICIkVEVTVF9ESVJFQ1RPUlkiL2Fubm90YXRlLXRlc3RzLnNoCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0Fubm90YXRpbmcgYW4gb2xkIHJldmlzaW9uIHdvcmtzJyAnCi0JZ2l0IGFubm90YXRlIGZpbGUgbWFzdGVyID5yZXN1bHQgJiYKLQlhd2sgInsgcHJpbnQgXCQzOyB9IiA8cmVzdWx0ID5hdXRob3JzICYmCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbm5vdGF0ZSBvbGQgcmV2aXNpb24nICcKKwlnaXQgYW5ub3RhdGUgZmlsZSBtYXN0ZXIgPmFjdHVhbCAmJgorCWF3ayAieyBwcmludCBcJDM7IH0iIDxhY3R1YWwgPmF1dGhvcnMgJiYKIAl0ZXN0IDIgPSAkKGdyZXAgQSA8YXV0aG9ycyB8IHdjIC1sKSAmJgogCXRlc3QgMiA9ICQoZ3JlcCBCIDxhdXRob3JzIHwgd2MgLWwpCiAnCmRpZmYgLS1naXQgYS90L3Q4MDAyLWJsYW1lLnNoIGIvdC90ODAwMi1ibGFtZS5zaAppbmRleCBlMjg5NmNmLi41Y2RmM2YxIDEwMDc1NQotLS0gYS90L3Q4MDAyLWJsYW1lLnNoCisrKyBiL3QvdDgwMDItYmxhbWUuc2gKQEAgLTcsOCArNywxNiBAQAogLiAiJFRFU1RfRElSRUNUT1JZIi9hbm5vdGF0ZS10ZXN0cy5zaAogCiBQUk9HPSdnaXQgYmxhbWUgLWMgLWUnCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdCbGFtZSAtLXNob3ctZW1haWwgd29ya3MnICcKLSAgICBjaGVja19jb3VudCAiPEFAdGVzdC5naXQ+IiAxICI8QkB0ZXN0LmdpdD4iIDEgIjxCMUB0ZXN0LmdpdD4iIDEgIjxCMkB0ZXN0LmdpdD4iIDEgIjxhdXRob3JAZXhhbXBsZS5jb20+IiAxICI8Q0B0ZXN0LmdpdD4iIDEgIjxEQHRlc3QuZ2l0PiIgMSAiPEUgYXQgdGVzdCBkb3QgZ2l0PiIgMQordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLS1zaG93LWVtYWlsJyAnCisJY2hlY2tfY291bnQgXAorCQkiPEFAdGVzdC5naXQ+IiAxIFwKKwkJIjxCQHRlc3QuZ2l0PiIgMSBcCisJCSI8QjFAdGVzdC5naXQ+IiAxIFwKKwkJIjxCMkB0ZXN0LmdpdD4iIDEgXAorCQkiPGF1dGhvckBleGFtcGxlLmNvbT4iIDEgXAorCQkiPENAdGVzdC5naXQ+IiAxIFwKKwkJIjxEQHRlc3QuZ2l0PiIgMSBcCisJCSI8RSBhdCB0ZXN0IGRvdCBnaXQ+IiAxCiAnCiAKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90ODAwMy1ibGFtZS1jb3JuZXItY2FzZXMuc2ggYi90L3Q4MDAzLWJsYW1lLWNvcm5lci1jYXNlcy5zaAppbmRleCAyMzAxNDNjLi5lN2NhYzFkIDEwMDc1NQotLS0gYS90L3Q4MDAzLWJsYW1lLWNvcm5lci1jYXNlcy5zaAorKysgYi90L3Q4MDAzLWJsYW1lLWNvcm5lci1jYXNlcy5zaApAQCAtMTc1LDYgKzE3NSwxMiBAQAogCWdyZXAgImhhcyBvbmx5IDIgbGluZXMiIGVycm9ycwogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSBwYXJzZXMgPGVuZD4gcGFydCBvZiAtTCcgJworCWdpdCBibGFtZSAtTDEsMSB0cmVzID5vdXQgJiYKKwljYXQgb3V0ICYmCisJdGVzdCAkKHdjIC1sIDwgb3V0KSAtZXEgMQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdpbmRlbnQgb2YgbGluZSBudW1iZXJzLCBuaW5lIGxpbmVzJyAnCiAJZ2l0IGJsYW1lIG5pbmVfbGluZXMgPmFjdHVhbCAmJgogCXRlc3QgJChncmVwIC1jICIgICIgYWN0dWFsKSA9IDAKZGlmZiAtLWdpdCBhL3QvdDgwMDYtYmxhbWUtdGV4dGNvbnYuc2ggYi90L3Q4MDA2LWJsYW1lLXRleHRjb252LnNoCmluZGV4IGJmNmNhYTQuLjc2ODM1MTUgMTAwNzU1Ci0tLSBhL3QvdDgwMDYtYmxhbWUtdGV4dGNvbnYuc2gKKysrIGIvdC90ODAwNi1ibGFtZS10ZXh0Y29udi5zaApAQCAtMTgsMTcgKzE4LDEzIEBACiAJZWNobyAiYmluOiB0ZXN0IG51bWJlciAwIiA+emVyby5iaW4gJiYKIAllY2hvICJiaW46IHRlc3QgMSIgPm9uZS5iaW4gJiYKIAllY2hvICJiaW46IHRlc3QgbnVtYmVyIDIiID50d28uYmluICYmCi0JaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUzsgdGhlbgotCQlsbiAtcyBvbmUuYmluIHN5bWxpbmsuYmluCi0JZmkgJiYKKwl0ZXN0X2xuX3NfYWRkIG9uZS5iaW4gc3ltbGluay5iaW4gJiYKIAlnaXQgYWRkIC4gJiYKIAlHSVRfQVVUSE9SX05BTUU9TnVtYmVyMSBnaXQgY29tbWl0IC1hIC1tIEZpcnN0IC0tZGF0ZT0iMjAxMC0wMS0wMSAxODowMDowMCIgJiYKIAllY2hvICJiaW46IHRlc3QgMSB2ZXJzaW9uIDIiID5vbmUuYmluICYmCiAJZWNobyAiYmluOiB0ZXN0IG51bWJlciAyIHZlcnNpb24gMiIgPj50d28uYmluICYmCi0JaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUzsgdGhlbgotCQlybSBzeW1saW5rLmJpbiAmJgotCQlsbiAtcyB0d28uYmluIHN5bWxpbmsuYmluCi0JZmkgJiYKKwlybSAtZiBzeW1saW5rLmJpbiAmJgorCXRlc3RfbG5fc19hZGQgdHdvLmJpbiBzeW1saW5rLmJpbiAmJgogCUdJVF9BVVRIT1JfTkFNRT1OdW1iZXIyIGdpdCBjb21taXQgLWEgLW0gU2Vjb25kIC0tZGF0ZT0iMjAxMC0wMS0wMSAyMDowMDowMCIKICcKIApAQCAtMTM1LDcgKzEzMSw3IEBACiAKICMgY3AgdHdvLmJpbiB0aHJlZS5iaW4gIGFuZCBtYWtlIHNtYWxsIHR3ZWFrCiAjICh0aGlzIHdpbGwgZGlyZWN0IGJsYW1lIC1DIC1DIHRocmVlLmJpbiB0byBjb25zaWRlciB0d28uYmluIGFuZCBzeW1saW5rLmJpbikKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ21ha2UgYW5vdGhlciBuZXcgY29tbWl0JyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtYWtlIGFub3RoZXIgbmV3IGNvbW1pdCcgJwogCWNhdCA+dGhyZWUuYmluIDw8XEVPRiAmJgogYmluOiB0ZXN0IG51bWJlciAyCiBiaW46IHRlc3QgbnVtYmVyIDIgdmVyc2lvbiAyCkBAIC0xNDYsNyArMTQyLDcgQEAKIAlHSVRfQVVUSE9SX05BTUU9TnVtYmVyNCBnaXQgY29tbWl0IC1hIC1tIEZvdXJ0aCAtLWRhdGU9IjIwMTAtMDEtMDEgMjM6MDA6MDAiCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2JsYW1lIG9uIGxhc3QgY29tbWl0ICgtQyAtQywgc3ltbGluayknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIG9uIGxhc3QgY29tbWl0ICgtQyAtQywgc3ltbGluayknICcKIAlnaXQgYmxhbWUgLUMgLUMgdGhyZWUuYmluID5ibGFtZSAmJgogCWZpbmRfYmxhbWUgPGJsYW1lID5yZXN1bHQgJiYKIAljYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgpkaWZmIC0tZ2l0IGEvdC90ODAwNy1jYXQtZmlsZS10ZXh0Y29udi5zaCBiL3QvdDgwMDctY2F0LWZpbGUtdGV4dGNvbnYuc2gKaW5kZXggNzhhMDA4NS4uYjk1ZTEwMiAxMDA3NTUKLS0tIGEvdC90ODAwNy1jYXQtZmlsZS10ZXh0Y29udi5zaAorKysgYi90L3Q4MDA3LWNhdC1maWxlLXRleHRjb252LnNoCkBAIC0xMiw5ICsxMiw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwICcgJwogCWVjaG8gImJpbjogdGVzdCIgPm9uZS5iaW4gJiYKLQlpZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTOyB0aGVuCi0JCWxuIC1zIG9uZS5iaW4gc3ltbGluay5iaW4KLQlmaSAmJgorCXRlc3RfbG5fc19hZGQgb25lLmJpbiBzeW1saW5rLmJpbiAmJgogCWdpdCBhZGQgLiAmJgogCUdJVF9BVVRIT1JfTkFNRT1OdW1iZXIxIGdpdCBjb21taXQgLWEgLW0gRmlyc3QgLS1kYXRlPSIyMDEwLTAxLTAxIDE4OjAwOjAwIiAmJgogCWVjaG8gImJpbjogdGVzdCB2ZXJzaW9uIDIiID5vbmUuYmluICYmCkBAIC03MiwxNCArNzAsMTQgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCByZXN1bHQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnY2F0LWZpbGUgd2l0aG91dCAtLXRleHRjb252IChzeW1saW5rKScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2F0LWZpbGUgd2l0aG91dCAtLXRleHRjb252IChzeW1saW5rKScgJwogCWdpdCBjYXQtZmlsZSBibG9iIDpzeW1saW5rLmJpbiA+cmVzdWx0ICYmCiAJcHJpbnRmICIlcyIgIm9uZS5iaW4iID5leHBlY3RlZAogCXRlc3RfY21wIGV4cGVjdGVkIHJlc3VsdAogJwogCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NhdC1maWxlIC0tdGV4dGNvbnYgb24gaW5kZXggKHN5bWxpbmspJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjYXQtZmlsZSAtLXRleHRjb252IG9uIGluZGV4IChzeW1saW5rKScgJwogCSEgZ2l0IGNhdC1maWxlIC0tdGV4dGNvbnYgOnN5bWxpbmsuYmluIDI+cmVzdWx0ICYmCiAJY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIGZhdGFsOiBnaXQgY2F0LWZpbGUgLS10ZXh0Y29udjogdW5hYmxlIHRvIHJ1biB0ZXh0Y29udiBvbiA6c3ltbGluay5iaW4KQEAgLTg3LDcgKzg1LDcgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCByZXN1bHQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnY2F0LWZpbGUgLS10ZXh0Y29udiBvbiBIRUFEIChzeW1saW5rKScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2F0LWZpbGUgLS10ZXh0Y29udiBvbiBIRUFEIChzeW1saW5rKScgJwogCSEgZ2l0IGNhdC1maWxlIC0tdGV4dGNvbnYgSEVBRDpzeW1saW5rLmJpbiAyPnJlc3VsdCAmJgogCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKIGZhdGFsOiBnaXQgY2F0LWZpbGUgLS10ZXh0Y29udjogdW5hYmxlIHRvIHJ1biB0ZXh0Y29udiBvbiBIRUFEOnN5bWxpbmsuYmluCmRpZmYgLS1naXQgYS90L3Q5MDAxLXNlbmQtZW1haWwuc2ggYi90L3Q5MDAxLXNlbmQtZW1haWwuc2gKaW5kZXggZWJkNWM1ZC4uMjgxM2FhOSAxMDA3NTUKLS0tIGEvdC90OTAwMS1zZW5kLWVtYWlsLnNoCisrKyBiL3QvdDkwMDEtc2VuZC1lbWFpbC5zaApAQCAtMTcxLDYgKzE3MSw4MSBAQAogRU9GCiAiCiAKK3Rlc3Rfc3VwcHJlc3Nfc2VsZiAoKSB7CisJdGVzdF9jb21taXQgJDMgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQgSEVBRF4iICYmCisKKwl3cml0ZV9zY3JpcHQgY2NjbWQtc2VkIDw8LUVPRiAmJgorCQlzZWQgLW4gLWUgcy9eY2NjbWQtLS8vcCAiXCQxIgorCUVPRgorCisJZ2l0IGNvbW1pdCAtLWFtZW5kIC0tYXV0aG9yPSIkMSA8JDI+IiAtRiAtICYmCisJY2xlYW5fZmFrZV9zZW5kbWFpbCAmJgorCWdpdCBmb3JtYXQtcGF0Y2ggLS1zdGRvdXQgLTEgPiJzdXBwcmVzcy1zZWxmLSQzLnBhdGNoIiAmJgorCisJZ2l0IHNlbmQtZW1haWwgLS1mcm9tPSIkMSA8JDI+IiBcCisJCS0tdG89bm9ib2R5QGV4YW1wbGUuY29tIFwKKwkJLS1jYy1jbWQ9Li9jY2NtZC1zZWQgXAorCQktLXN1cHByZXNzLWNjPXNlbGYgXAorCQktLXNtdHAtc2VydmVyPSIkKHB3ZCkvZmFrZS5zZW5kbWFpbCIgXAorCQlzdXBwcmVzcy1zZWxmLSQzLnBhdGNoICYmCisKKwltdiBtc2d0eHQxIG1zZ3R4dDEtJDMgJiYKKwlzZWQgLWUgJy9eJC9xJyBtc2d0eHQxLSQzID4ibXNnaGRyMS0kMyIgJiYKKwk+ImV4cGVjdGVkLW5vLWNjLSQzIiAmJgorCisJKGdyZXAgJ15DYzonIG1zZ2hkcjEtJDMgPiJhY3R1YWwtbm8tY2MtJDMiOworCSB0ZXN0X2NtcCBleHBlY3RlZC1uby1jYy0kMyBhY3R1YWwtbm8tY2MtJDMpCit9CisKK3Rlc3Rfc3VwcHJlc3Nfc2VsZl91bnF1b3RlZCAoKSB7CisJdGVzdF9zdXBwcmVzc19zZWxmICIkMSIgIiQyIiAidW5xdW90ZWQtJDMiIDw8LUVPRgorCQl0ZXN0IHN1cHByZXNzLWNjLnNlbGYgdW5xdW90ZWQtJDMgd2l0aCBuYW1lICQxIGVtYWlsICQyCisKKwkJdW5xdW90ZWQtJDMKKworCQljY2NtZC0tJDEgPCQyPgorCisJCUNjOiAkMSA8JDI+CisJCVNpZ25lZC1vZmYtYnk6ICQxIDwkMj4KKwlFT0YKK30KKwordGVzdF9zdXBwcmVzc19zZWxmX3F1b3RlZCAoKSB7CisJdGVzdF9zdXBwcmVzc19zZWxmICIkMSIgIiQyIiAicXVvdGVkLSQzIiA8PC1FT0YKKwkJdGVzdCBzdXBwcmVzcy1jYy5zZWxmIHF1b3RlZC0kMyB3aXRoIG5hbWUgJDEgZW1haWwgJDIKKworCQlxdW90ZWQtJDMKKworCQljY2NtZC0tIiQxIiA8JDI+CisKKwkJQ2M6ICQxIDwkMj4KKwkJQ2M6ICIkMSIgPCQyPgorCQlTaWduZWQtb2ZmLWJ5OiAkMSA8JDI+CisJCVNpZ25lZC1vZmYtYnk6ICIkMSIgPCQyPgorCUVPRgorfQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ3NlbGYgbmFtZSBpcyBzdXBwcmVzc2VkJyAiCisJdGVzdF9zdXBwcmVzc19zZWxmX3VucXVvdGVkICdBIFUgVGhvcicgJ2F1dGhvckBleGFtcGxlLmNvbScgXAorCQknc2VsZl9uYW1lX3N1cHByZXNzZWQnCisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJFBSRVJFUSAnc2VsZiBuYW1lIHdpdGggZG90IGlzIHN1cHByZXNzZWQnICIKKwl0ZXN0X3N1cHByZXNzX3NlbGZfcXVvdGVkICdBIFUuIFRob3InICdhdXRob3JAZXhhbXBsZS5jb20nIFwKKwkJJ3NlbGZfbmFtZV9kb3Rfc3VwcHJlc3NlZCcKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAkUFJFUkVRICdub24tYXNjaWkgc2VsZiBuYW1lIGlzIHN1cHByZXNzZWQnICIKKwl0ZXN0X3N1cHByZXNzX3NlbGZfcXVvdGVkICdGw7zDsW7DvSBOw6Jtw6knICdvZGRfPz1tYWlsQGV4YW1wbGUuY29tJyBcCisJCSdub25fYXNjaWlfc2VsZl9zdXBwcmVzc2VkJworIgorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ3Nhbml0aXplZCBzZWxmIG5hbWUgaXMgc3VwcHJlc3NlZCcgIgorCXRlc3Rfc3VwcHJlc3Nfc2VsZl91bnF1b3RlZCAnXCJBIFUuIFRob3JcIicgJ2F1dGhvckBleGFtcGxlLmNvbScgXAorCQknc2VsZl9uYW1lX3Nhbml0aXplZF9zdXBwcmVzc2VkJworIgorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ1Nob3cgYWxsIGhlYWRlcnMnICcKIAlnaXQgc2VuZC1lbWFpbCBcCiAJCS0tZHJ5LXJ1biBcCkBAIC04ODEsNiArOTU2LDIwIEBACiAJZ3JlcCAiXkZyb206IEbDvMOxbsO9IE7Dom3DqSA8b2RkXz89bWFpbEBleGFtcGxlLmNvbT4iIG1zZ3R4dDEKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAkUFJFUkVRICd1dGY4IHNlbmRlciBpcyBub3QgZHVwbGljYXRlZCcgJworCWNsZWFuX2Zha2Vfc2VuZG1haWwgJiYKKwl0ZXN0X2NvbW1pdCB3ZWlyZF9zZW5kZXIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQgSEVBRF4iICYmCisJZ2l0IGNvbW1pdCAtLWFtZW5kIC0tYXV0aG9yICJGw7zDsW7DvSBOw6Jtw6kgPG9kZF8/PW1haWxAZXhhbXBsZS5jb20+IiAmJgorCWdpdCBmb3JtYXQtcGF0Y2ggLS1zdGRvdXQgLTEgPmZ1bm55X25hbWUucGF0Y2ggJiYKKwlnaXQgc2VuZC1lbWFpbCAtLWZyb209IkbDvMOxbsO9IE7Dom3DqSA8b2RkXz89bWFpbEBleGFtcGxlLmNvbT4iIFwKKwkgIC0tdG89bm9ib2R5QGV4YW1wbGUuY29tIFwKKwkgIC0tc210cC1zZXJ2ZXI9IiQocHdkKS9mYWtlLnNlbmRtYWlsIiBcCisJICBmdW5ueV9uYW1lLnBhdGNoICYmCisJZ3JlcCAiXkZyb206ICIgbXNndHh0MSA+bXNnZnJvbSAmJgorCXRlc3RfbGluZV9jb3VudCA9IDEgbXNnZnJvbQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ3NlbmRlbWFpbC5jb21wb3NlZW5jb2Rpbmcgd29ya3MnICcKIAljbGVhbl9mYWtlX3NlbmRtYWlsICYmCiAJZ2l0IGNvbmZpZyBzZW5kZW1haWwuY29tcG9zZWVuY29kaW5nIGlzby04ODU5LTEgJiYKQEAgLTEwMDMsNTUgKzEwOTIsNiBAQAogCWdyZXAgIkluLVJlcGx5LVRvOiAiIHN0ZG91dAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ3dhcm5pbmcgd2l0aCBhbiBpbXBsaWNpdCAtLWNoYWluLXJlcGx5LXRvJyAnCi0JZ2l0IHNlbmQtZW1haWwgXAotCS0tZHJ5LXJ1biBcCi0JLS1mcm9tPSJFeGFtcGxlIDxub2JvZHlAZXhhbXBsZS5jb20+IiBcCi0JLS10bz1ub2JvZHlAZXhhbXBsZS5jb20gXAotCW91dGRpci8wMDA/LSoucGF0Y2ggMj5lcnJvcnMgPm91dCAmJgotCWdyZXAgIm5vLWNoYWluLXJlcGx5LXRvIiBlcnJvcnMKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAkUFJFUkVRICdubyB3YXJuaW5nIHdpdGggYW4gZXhwbGljaXQgLS1jaGFpbi1yZXBseS10bycgJwotCWdpdCBzZW5kLWVtYWlsIFwKLQktLWRyeS1ydW4gXAotCS0tZnJvbT0iRXhhbXBsZSA8bm9ib2R5QGV4YW1wbGUuY29tPiIgXAotCS0tdG89bm9ib2R5QGV4YW1wbGUuY29tIFwKLQktLWNoYWluLXJlcGx5LXRvIFwKLQlvdXRkaXIvMDAwPy0qLnBhdGNoIDI+ZXJyb3JzID5vdXQgJiYKLQkhIGdyZXAgIm5vLWNoYWluLXJlcGx5LXRvIiBlcnJvcnMKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAkUFJFUkVRICdubyB3YXJuaW5nIHdpdGggYW4gZXhwbGljaXQgLS1uby1jaGFpbi1yZXBseS10bycgJwotCWdpdCBzZW5kLWVtYWlsIFwKLQktLWRyeS1ydW4gXAotCS0tZnJvbT0iRXhhbXBsZSA8bm9ib2R5QGV4YW1wbGUuY29tPiIgXAotCS0tdG89bm9ib2R5QGV4YW1wbGUuY29tIFwKLQktLW5vY2hhaW4tcmVwbHktdG8gXAotCW91dGRpci8wMDA/LSoucGF0Y2ggMj5lcnJvcnMgPm91dCAmJgotCSEgZ3JlcCAibm8tY2hhaW4tcmVwbHktdG8iIGVycm9ycwotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ25vIHdhcm5pbmcgd2l0aCBzZW5kZW1haWwuY2hhaW5yZXBseXRvID0gZmFsc2UnICcKLQlnaXQgY29uZmlnIHNlbmRlbWFpbC5jaGFpbnJlcGx5dG8gZmFsc2UgJiYKLQlnaXQgc2VuZC1lbWFpbCBcCi0JLS1kcnktcnVuIFwKLQktLWZyb209IkV4YW1wbGUgPG5vYm9keUBleGFtcGxlLmNvbT4iIFwKLQktLXRvPW5vYm9keUBleGFtcGxlLmNvbSBcCi0Jb3V0ZGlyLzAwMD8tKi5wYXRjaCAyPmVycm9ycyA+b3V0ICYmCi0JISBncmVwICJuby1jaGFpbi1yZXBseS10byIgZXJyb3JzCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJFBSRVJFUSAnbm8gd2FybmluZyB3aXRoIHNlbmRlbWFpbC5jaGFpbnJlcGx5dG8gPSB0cnVlJyAnCi0JZ2l0IGNvbmZpZyBzZW5kZW1haWwuY2hhaW5yZXBseXRvIHRydWUgJiYKLQlnaXQgc2VuZC1lbWFpbCBcCi0JLS1kcnktcnVuIFwKLQktLWZyb209IkV4YW1wbGUgPG5vYm9keUBleGFtcGxlLmNvbT4iIFwKLQktLXRvPW5vYm9keUBleGFtcGxlLmNvbSBcCi0Jb3V0ZGlyLzAwMD8tKi5wYXRjaCAyPmVycm9ycyA+b3V0ICYmCi0JISBncmVwICJuby1jaGFpbi1yZXBseS10byIgZXJyb3JzCi0nCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJFBSRVJFUSAnc2VuZGVtYWlsLnRvIHdvcmtzJyAnCiAJZ2l0IGNvbmZpZyAtLXJlcGxhY2UtYWxsIHNlbmRlbWFpbC50byAiU29tZWJvZHkgPHNvbWVib2R5QGV4LmNvbT4iICYmCiAJZ2l0IHNlbmQtZW1haWwgXApkaWZmIC0tZ2l0IGEvdC90OTAyMC1yZW1vdGUtc3ZuLnNoIGIvdC90OTAyMC1yZW1vdGUtc3ZuLnNoCmluZGV4IGQ5ZjZiNzMuLjRkODFiYTEgMTAwNzU1Ci0tLSBhL3QvdDkwMjAtcmVtb3RlLXN2bi5zaAorKysgYi90L3Q5MDIwLXJlbW90ZS1zdm4uc2gKQEAgLTI0LDcgKzI0LDcgQEAKIAlybSAtZnIgLmdpdCAmJgogCWdpdCBpbml0ICYmCiAJI2dpdCByZW1vdGUgYWRkIHN2bnNpbSB0ZXN0c3ZuOjpzaW06Ly8vJFRFU1RfRElSRUNUT1JZL3Q5MDIwL2V4YW1wbGUuc3ZucmR1bXAKLQkjIGxldCdzIHJldXNlIGFuIGV4aXNpdGluZyBkdW1wIGZpbGUhPworCSMgbGV0J3MgcmV1c2UgYW4gZXhpc3RpbmcgZHVtcCBmaWxlIT8KIAlnaXQgcmVtb3RlIGFkZCBzdm5zaW0gdGVzdHN2bjo6c2ltOi8vJFRFU1RfRElSRUNUT1JZL3Q5MTU0L3N2bi5kdW1wCiAJZ2l0IHJlbW90ZSBhZGQgc3ZuZmlsZSB0ZXN0c3ZuOjpmaWxlOi8vJFRFU1RfRElSRUNUT1JZL3Q5MTU0L3N2bi5kdW1wCiB9CmRpZmYgLS1naXQgYS90L3Q5MTEyLWdpdC1zdm4tbWQ1bGVzcy1maWxlLnNoIGIvdC90OTExMi1naXQtc3ZuLW1kNWxlc3MtZmlsZS5zaAppbmRleCBhNjFkNjcxLi45ODYxYzcxIDEwMDc1NQotLS0gYS90L3Q5MTEyLWdpdC1zdm4tbWQ1bGVzcy1maWxlLnNoCisrKyBiL3QvdDkxMTItZ2l0LXN2bi1tZDVsZXNzLWZpbGUuc2gKQEAgLTcsNyArNyw3IEBACiAjIExvYWRpbmcgYSBub2RlIGZyb20gYSBzdm4gZHVtcGZpbGUgd2l0aG91dCBhIFRleHQtQ29udGVudC1MZW5ndGgKICMgZmllbGQgY2F1c2VzIHN2biB0byBuZWdsZWN0IHRvIHN0b3JlIG9yIHJlcG9ydCBhbiBtZDVzdW0uICAoaXQgd2lsbAogIyBjYWxjdWxhdGUgb25lIGlmIHlvdSBoYWQgcHV0IFRleHQtQ29udGVudC1MZW5ndGg6IDApLiAgVGhpcyBzaG93ZWQKLSMgdXAgaW4gYSByZXBvc2l0b3J5IGNyZXRlZCB3aXRoIGN2czJzdm4uCisjIHVwIGluIGEgcmVwb3NpdG9yeSBjcmVhdGVkIHdpdGggY3ZzMnN2bi4KIAogY2F0ID4gZHVtcGZpbGUuc3ZuIDw8RU9GCiBTVk4tZnMtZHVtcC1mb3JtYXQtdmVyc2lvbjogMQpkaWZmIC0tZ2l0IGEvdC90OTExNC1naXQtc3ZuLWRjb21taXQtbWVyZ2Uuc2ggYi90L3Q5MTE0LWdpdC1zdm4tZGNvbW1pdC1tZXJnZS5zaAppbmRleCAzMDc3ODUxLi5mNTI0ZDJmIDEwMDc1NQotLS0gYS90L3Q5MTE0LWdpdC1zdm4tZGNvbW1pdC1tZXJnZS5zaAorKysgYi90L3Q5MTE0LWdpdC1zdm4tZGNvbW1pdC1tZXJnZS5zaApAQCAtNDgsNyArNDgsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgZ2l0IG1pcnJvciBhbmQgbWVyZ2UnICcKIAlnaXQgc3ZuIGluaXQgIiRzdm5yZXBvIiAtdCB0YWdzIC1UIHRydW5rIC1iIGJyYW5jaGVzICYmCiAJZ2l0IHN2biBmZXRjaCAmJgotCWdpdCBjaGVja291dCAtLXRyYWNrIC1iIHN2biByZW1vdGVzL3RydW5rICYmCisJZ2l0IGNoZWNrb3V0IC1iIHN2biByZW1vdGVzL3RydW5rICYmCiAJZ2l0IGNoZWNrb3V0IC1iIG1lcmdlICYmCiAJZWNobyBuZXcgZmlsZSA+IG5ld19maWxlICYmCiAJZ2l0IGFkZCBuZXdfZmlsZSAmJgpkaWZmIC0tZ2l0IGEvdC90OTM1MC1mYXN0LWV4cG9ydC5zaCBiL3QvdDkzNTAtZmFzdC1leHBvcnQuc2gKaW5kZXggMjQ3MWJjNi4uMzRjMmQ4ZiAxMDA3NTUKLS0tIGEvdC90OTM1MC1mYXN0LWV4cG9ydC5zaAorKysgYi90L3Q5MzUwLWZhc3QtZXhwb3J0LnNoCkBAIC0zOTYsNyArMzk2LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RhZy1vYmpfdGFnJyAgICAgJ2dpdCBmYXN0LWV4cG9ydCB0YWctb2JqX3RhZycKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RhZy1vYmpfdGFnLW9iaicgJ2dpdCBmYXN0LWV4cG9ydCB0YWctb2JqX3RhZy1vYmonCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2RpcmVjdG9yeSBiZWNvbWVzIHN5bWxpbmsnICAgICAgICAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaXJlY3RvcnkgYmVjb21lcyBzeW1saW5rJyAgICAgICAgJwogCWdpdCBpbml0IGRpcnRvc3ltbGluayAmJgogCWdpdCBpbml0IHJlc3VsdCAmJgogCSgKQEAgLTQwOCw4ICs0MDgsNyBAQAogCQlnaXQgYWRkIGZvby93b3JsZCBiYXIvd29ybGQgJiYKIAkJZ2l0IGNvbW1pdCAtcSAtbW9uZSAmJgogCQlnaXQgcm0gLXIgZm9vICYmCi0JCWxuIC1zIGJhciBmb28gJiYKLQkJZ2l0IGFkZCBmb28gJiYKKwkJdGVzdF9sbl9zX2FkZCBiYXIgZm9vICYmCiAJCWdpdCBjb21taXQgLXEgLW10d28KIAkpICYmCiAJKApkaWZmIC0tZ2l0IGEvdC90OTQwMi1naXQtY3Zzc2VydmVyLXJlZnMuc2ggYi90L3Q5NDAyLWdpdC1jdnNzZXJ2ZXItcmVmcy5zaAppbmRleCA3MzVhMDE4Li5kYjY5YWYyIDEwMDc1NQotLS0gYS90L3Q5NDAyLWdpdC1jdnNzZXJ2ZXItcmVmcy5zaAorKysgYi90L3Q5NDAyLWdpdC1jdnNzZXJ2ZXItcmVmcy5zaApAQCAtMzMwLDcgKzMzMCw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkYXRlIGJhc2ljIGRpZmZzIHNhdmVkIGR1cmluZyBhYm92ZSBjdnN3b3JrMiBlZGl0cycgJwogCXRlc3QgJChncmVwIEluZGV4OiBjdnNFZGl0MS5kaWZmIHwgd2MgLWwpID0gMSAmJgotCXRlc3QgISAtcyBjdnNFZGl0Mi1lbXB0eS5kaWZmICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGN2c0VkaXQyLWVtcHR5LmRpZmYgJiYKIAl0ZXN0ICQoZ3JlcCBJbmRleDogY3ZzRWRpdDItTi5kaWZmIHwgd2MgLWwpID0gMSAmJgogCXRlc3QgJChncmVwIEluZGV4OiBjdnNFZGl0My5kaWZmIHwgd2MgLWwpID0gMyAmJgogCXJtIC1yZiBkaWZmU2FuZGJveCAmJgpAQCAtNDU2LDIwICs0NTYsMjAgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY3ZzIGRpZmYgLXIgdjEgLXUnICcKIAkoIGNkIGN2c3dvcmsgJiYgY3ZzIC1mIGRpZmYgLXIgdjEgLXUgKSA+Y3ZzRGlmZi5vdXQgMj5jdnMubG9nICYmCi0JdGVzdCAhIC1zIGN2c0RpZmYub3V0ICYmCi0JdGVzdCAhIC1zIGN2cy5sb2cKKwl0ZXN0X211c3RfYmVfZW1wdHkgY3ZzRGlmZi5vdXQgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgY3ZzLmxvZwogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjdnMgZGlmZiAtTiAtciB2MiAtdScgJwogCSggY2QgY3Zzd29yayAmJiAhIGN2cyAtZiBkaWZmIC1OIC1yIHYyIC11ICkgPmN2c0RpZmYub3V0IDI+Y3ZzLmxvZyAmJgotCXRlc3QgISAtcyBjdnMubG9nICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGN2cy5sb2cgJiYKIAl0ZXN0IC1zIGN2c0RpZmYub3V0ICYmCiAJY2hlY2tfZGlmZiBjdnNEaWZmLm91dCB2MiB2MSA+Y2hlY2tfZGlmZi5vdXQgMj4mMQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjdnMgZGlmZiAtTiAtciB2MiAtciB2MS4yJyAnCiAJKCBjZCBjdnN3b3JrICYmICEgY3ZzIC1mIGRpZmYgLU4gLXIgdjIgLXIgdjEuMiAtdSApID5jdnNEaWZmLm91dCAyPmN2cy5sb2cgJiYKLQl0ZXN0ICEgLXMgY3ZzLmxvZyAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBjdnMubG9nICYmCiAJdGVzdCAtcyBjdnNEaWZmLm91dCAmJgogCWNoZWNrX2RpZmYgY3ZzRGlmZi5vdXQgdjIgdjEuMiA+Y2hlY2tfZGlmZi5vdXQgMj4mMQogJwpAQCAtNDg4LDcgKzQ4OCw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrIFtjdnN3b3JrM10gZGlmZicgJwogCSggY2QgY3Zzd29yazMgJiYgISBjdnMgLWYgZGlmZiAtTiAtdSApID4iJFdPUktESVIvY3ZzRGlmZi5vdXQiIDI+Y3ZzLmxvZyAmJgotCXRlc3QgISAtcyBjdnMubG9nICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGN2cy5sb2cgJiYKIAl0ZXN0IC1zIGN2c0RpZmYub3V0ICYmCiAJdGVzdCAkKGdyZXAgSW5kZXg6IGN2c0RpZmYub3V0IHwgd2MgLWwpID0gMyAmJgogCXRlc3RfY21wIGN2c0RpZmYub3V0IGN2c3dvcmszZWRpdC5kaWZmICYmCmRpZmYgLS1naXQgYS90L3Q5NTAwLWdpdHdlYi1zdGFuZGFsb25lLW5vLWVycm9ycy5zaCBiL3QvdDk1MDAtZ2l0d2ViLXN0YW5kYWxvbmUtbm8tZXJyb3JzLnNoCmluZGV4IDY3ODNjMTQuLjZmY2ExOTMgMTAwNzU1Ci0tLSBhL3QvdDk1MDAtZ2l0d2ViLXN0YW5kYWxvbmUtbm8tZXJyb3JzLnNoCisrKyBiL3QvdDk1MDAtZ2l0d2ViLXN0YW5kYWxvbmUtbm8tZXJyb3JzLnNoCkBAIC0xNTYsMTAgKzE1NiwxMCBAQAogCSBnaXQgY29tbWl0IC1hIC1tICJGaWxlIHJlbmFtZWQuIiAmJgogCSBnaXR3ZWJfcnVuICJwPS5naXQ7YT1jb21taXRkaWZmIicKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyBcCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKIAknY29tbWl0ZGlmZigwKTogZmlsZSB0byBzeW1saW5rJyBcCiAJJ3JtIHJlbmFtZWRfZmlsZSAmJgotCSBsbiAtcyBmaWxlIHJlbmFtZWRfZmlsZSAmJgorCSB0ZXN0X2xuX3NfYWRkIGZpbGUgcmVuYW1lZF9maWxlICYmCiAJIGdpdCBjb21taXQgLWEgLW0gIkZpbGUgdG8gc3ltbGluay4iICYmCiAJIGdpdHdlYl9ydW4gInA9LmdpdDthPWNvbW1pdGRpZmYiJwogCkBAIC0yMTIsMTUgKzIxMiwxNCBAQAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIGNvbW1pdGRpZmYgdGVzdGluZyAodGFrZW4gZnJvbSB0NDExNC1hcHBseS10eXBlY2hhbmdlLnNoKQogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdzZXR1cCB0eXBlY2hhbmdlIGNvbW1pdHMnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIHR5cGVjaGFuZ2UgY29tbWl0cycgJwogCWVjaG8gImhlbGxvIHdvcmxkIiA+IGZvbyAmJgogCWVjaG8gImhpIHBsYW5ldCIgPiBiYXIgJiYKIAlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGZvbyBiYXIgJiYKIAlnaXQgY29tbWl0IC1tIGluaXRpYWwgJiYKIAlnaXQgYnJhbmNoIGluaXRpYWwgJiYKIAlybSAtZiBmb28gJiYKLQlsbiAtcyBiYXIgZm9vICYmCi0JZ2l0IHVwZGF0ZS1pbmRleCBmb28gJiYKKwl0ZXN0X2xuX3NfYWRkIGJhciBmb28gJiYKIAlnaXQgY29tbWl0IC1tICJmb28gc3ltbGlua2VkIHRvIGJhciIgJiYKIAlnaXQgYnJhbmNoIGZvby1zeW1saW5rZWQtdG8tYmFyICYmCiAJcm0gLWYgZm9vICYmCkBAIC0zNjEsMTEgKzM2MCw3IEBACiAJIGVjaG8gIkNoYW5nZWQiID4+IDA0LXJlbmFtZS10byAmJgogCSB0ZXN0X2NobW9kICt4IDA1LW1vZGUtY2hhbmdlICYmCiAJIHJtIC1mIDA2LWZpbGUtb3Itc3ltbGluayAmJgotCSBpZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTOyB0aGVuCi0JCWxuIC1zIDAxLWNoYW5nZSAwNi1maWxlLW9yLXN5bWxpbmsKLQkgZWxzZQotCQlwcmludGYgJXMgMDEtY2hhbmdlID4gMDYtZmlsZS1vci1zeW1saW5rCi0JIGZpICYmCisJIHRlc3RfbG5fc19hZGQgMDEtY2hhbmdlIDA2LWZpbGUtb3Itc3ltbGluayAmJgogCSBlY2hvICJDaGFuZ2VkIGFuZCBoYXZlIG1vZGUgY2hhbmdlZCIgPiAwNy1jaGFuZ2UtbW9kZS1jaGFuZ2UJJiYKIAkgdGVzdF9jaG1vZCAreCAwNy1jaGFuZ2UtbW9kZS1jaGFuZ2UgJiYKIAkgZ2l0IGNvbW1pdCAtYSAtbSAiTGFyZ2UgY29tbWl0IiAmJgpkaWZmIC0tZ2l0IGEvdC90OTgwMS1naXQtcDQtYnJhbmNoLnNoIGIvdC90OTgwMS1naXQtcDQtYnJhbmNoLnNoCmluZGV4IDk3MzA4MjEuLjJiZjE0MmQgMTAwNzU1Ci0tLSBhL3QvdDk4MDEtZ2l0LXA0LWJyYW5jaC5zaAorKysgYi90L3Q5ODAxLWdpdC1wNC1icmFuY2guc2gKQEAgLTQ2OSw5ICs0NjksMTEgQEAKIAkJVmlldzogLy9kZXBvdC91c2Vjcy9iMS8uLi4gLy9kZXBvdC91c2Vjcy9iMy8uLi4KIAkJRU9GCiAKLQkJZWNobyBiMy9iMy1maWxlMyA+YjMvYjMtZmlsZTMgJiYKLQkJcDQgYWRkIGIzL2IzLWZpbGUzICYmCi0JCXA0IHN1Ym1pdCAtZCAiYjMvYjMtZmlsZTMiCisJCWVjaG8gYjMvYjMtZmlsZTNfMSA+YjMvYjMtZmlsZTNfMSAmJgorCQllY2hvIGIzL2IzLWZpbGUzXzIgPmIzL2IzLWZpbGUzXzIgJiYKKwkJcDQgYWRkIGIzL2IzLWZpbGUzXzEgJiYKKwkJcDQgYWRkIGIzL2IzLWZpbGUzXzIgJiYKKwkJcDQgc3VibWl0IC1kICJiMy9iMy1maWxlM18xIGIzL2IzLWZpbGUzXzIiCiAJKQogJwogCkBAIC00ODcsNiArNDg5LDIxIEBACiAJKQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1c2UtY2xpZW50LXNwZWMgZGV0ZWN0LWJyYW5jaGVzIHNraXBzIGZpbGVzIGluIGJyYW5jaGVzJyAnCisJY2xpZW50X3ZpZXcgIi8vZGVwb3QvdXNlY3MvLi4uIC8vY2xpZW50Ly4uLiIgXAorCQkgICAgIi0vL2RlcG90L3VzZWNzL2IzL2IzLWZpbGUzXzEgLy9jbGllbnQvYjMvYjMtZmlsZTNfMSIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgY2xlYW51cF9naXQgJiYKKwl0ZXN0X2NyZWF0ZV9yZXBvICIkZ2l0IiAmJgorCSgKKwkJY2QgIiRnaXQiICYmCisJCWdpdCBwNCBzeW5jIC0tZGV0ZWN0LWJyYW5jaGVzIC0tdXNlLWNsaWVudC1zcGVjIC8vZGVwb3QvdXNlY3NAYWxsICYmCisJCWdpdCBjaGVja291dCAtYiBtYXN0ZXIgcDQvdXNlY3MvYjMgJiYKKwkJdGVzdF9wYXRoX2lzX2ZpbGUgYjEtZmlsZTEgJiYKKwkJdGVzdF9wYXRoX2lzX2ZpbGUgYjMtZmlsZTNfMiAmJgorCQl0ZXN0X3BhdGhfaXNfbWlzc2luZyBiMy1maWxlM18xCisJKQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdraWxsIHA0ZCcgJwogCWtpbGxfcDRkCiAnCmRpZmYgLS1naXQgYS90L3Q5ODAyLWdpdC1wNC1maWxldHlwZS5zaCBiL3QvdDk4MDItZ2l0LXA0LWZpbGV0eXBlLnNoCmluZGV4IGVlZWZhNjcuLmE4Mjc0NGIgMTAwNzU1Ci0tLSBhL3QvdDk4MDItZ2l0LXA0LWZpbGV0eXBlLnNoCisrKyBiL3QvdDk4MDItZ2l0LXA0LWZpbGV0eXBlLnNoCkBAIC0yOCw3ICsyOCw3IEBACiAJCXRlc3RfY21wIGYtdW5peC1vcmlnIGYtdW5peCAmJgogCiAJCSMgbWFrZSBzdXJlIHN0b3JlZCBpbiByZXBvIGFzIHVuaXggbmV3bGluZXMKLQkJIyB1c2Ugc2VkIHRvIGVhdCBweXRob24tYXBwZW5lZCBuZXdsaW5lCisJCSMgdXNlIHNlZCB0byBlYXQgcHl0aG9uLWFwcGVuZGVkIG5ld2xpbmUKIAkJcDQgLUcgcHJpbnQgLy9kZXBvdC9mLXVuaXggfCBtYXJzaGFsX2R1bXAgZGF0YSAyIHxcCiAJCSAgICBzZWQgXCRkID5mLXVuaXgtcDQtcHJpbnQgJiYKIAkJdGVzdF9jbXAgZi11bml4LW9yaWcgZi11bml4LXA0LXByaW50ICYmCkBAIC05NSw3ICs5NSw3IEBACiAJCWdpdCBpbml0ICYmCiAJCWVjaG8gIiogZW9sPWxmIiA+LmdpdGF0dHJpYnV0ZXMgJiYKIAkJZ2l0IHA0IHN5bmMgLy9kZXBvdEBhbGwgJiYKLQkJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgbWFzdGVyIHA0L21hc3RlciAmJgogCQl0ZXN0X2NtcCAiJGNsaSIvZi11bml4LW9yaWcgZi11bml4ICYmCiAJCXRlc3RfY21wICIkY2xpIi9mLXdpbi1hcy1sZiBmLXdpbgogCSkKQEAgLTEwOSw3ICsxMDksNyBAQAogCQlnaXQgaW5pdCAmJgogCQllY2hvICIqIGVvbD1jcmxmIiA+LmdpdGF0dHJpYnV0ZXMgJiYKIAkJZ2l0IHA0IHN5bmMgLy9kZXBvdEBhbGwgJiYKLQkJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgbWFzdGVyIHA0L21hc3RlciAmJgogCQl0ZXN0X2NtcCAiJGNsaSIvZi11bml4LWFzLWNybGYgZi11bml4ICYmCiAJCXRlc3RfY21wICIkY2xpIi9mLXdpbi1vcmlnIGYtd2luCiAJKQpkaWZmIC0tZ2l0IGEvdC90OTkwMi1jb21wbGV0aW9uLnNoIGIvdC90OTkwMi1jb21wbGV0aW9uLnNoCmluZGV4IDZkOWQxNDEuLjJkNGJlYjUgMTAwNzU1Ci0tLSBhL3QvdDk5MDItY29tcGxldGlvbi5zaAorKysgYi90L3Q5OTAyLWNvbXBsZXRpb24uc2gKQEAgLTY5LDcgKzY5LDcgQEAKIAlsb2NhbCAtYSBDT01QUkVQTFkgX3dvcmRzCiAJbG9jYWwgX2N3b3JkCiAJX3dvcmRzPSggJDEgKQotCXRlc3QgIiR7MTogLTF9IiA9PSAnICcgJiYgX3dvcmRzKz0oJycpCisJdGVzdCAiJHsxOiAtMX0iID0gJyAnICYmIF93b3Jkc1skeyNfd29yZHNbQF19KzFdPScnCiAJKCggX2N3b3JkID0gJHsjX3dvcmRzW0BdfSAtIDEgKSkKIAlfX2dpdF93cmFwX19naXRfbWFpbiAmJiBwcmludF9jb21wCiB9CkBAIC0xMjIsNiArMTIyLDE0MCBAQAogCiBpbnZhbGlkX3ZhcmlhYmxlX25hbWU9JyR7Zm9vLmJhcn0nCiAKK2FjdHVhbD0iJFRSQVNIX0RJUkVDVE9SWS9hY3R1YWwiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGZvciBfX2dpdGRpciB0ZXN0cycgJworCW1rZGlyIC1wIHN1YmRpci9zdWJzdWJkaXIgJiYKKwlnaXQgaW5pdCBvdGhlcnJlcG8KKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnX19naXRkaXIgLSBmcm9tIGNvbW1hbmQgbGluZSAodGhyb3VnaCAkX19naXRfZGlyKScgJworCWVjaG8gIiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID5leHBlY3RlZCAmJgorCSgKKwkJX19naXRfZGlyPSIkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiAmJgorCQlfX2dpdGRpciA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtIHJlcG8gYXMgYXJndW1lbnQnICcKKwllY2hvICJvdGhlcnJlcG8vLmdpdCIgPmV4cGVjdGVkICYmCisJX19naXRkaXIgIm90aGVycmVwbyIgPiIkYWN0dWFsIiAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtIHJlbW90ZSBhcyBhcmd1bWVudCcgJworCWVjaG8gInJlbW90ZSIgPmV4cGVjdGVkICYmCisJX19naXRkaXIgInJlbW90ZSIgPiIkYWN0dWFsIiAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtIC5naXQgZGlyZWN0b3J5IGluIGN3ZCcgJworCWVjaG8gIi5naXQiID5leHBlY3RlZCAmJgorCV9fZ2l0ZGlyID4iJGFjdHVhbCIgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnX19naXRkaXIgLSAuZ2l0IGRpcmVjdG9yeSBpbiBwYXJlbnQnICcKKwllY2hvICIkKHB3ZCAtUCkvLmdpdCIgPmV4cGVjdGVkICYmCisJKAorCQljZCBzdWJkaXIvc3Vic3ViZGlyICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gY3dkIGlzIGEgLmdpdCBkaXJlY3RvcnknICcKKwllY2hvICIuIiA+ZXhwZWN0ZWQgJiYKKwkoCisJCWNkIC5naXQgJiYKKwkJX19naXRkaXIgPiIkYWN0dWFsIgorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnX19naXRkaXIgLSBwYXJlbnQgaXMgYSAuZ2l0IGRpcmVjdG9yeScgJworCWVjaG8gIiQocHdkIC1QKS8uZ2l0IiA+ZXhwZWN0ZWQgJiYKKwkoCisJCWNkIC5naXQvcmVmcy9oZWFkcyAmJgorCQlfX2dpdGRpciA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtICRHSVRfRElSIHNldCB3aGlsZSAuZ2l0IGRpcmVjdG9yeSBpbiBjd2QnICcKKwllY2hvICIkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiA+ZXhwZWN0ZWQgJiYKKwkoCisJCUdJVF9ESVI9IiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiICYmCisJCWV4cG9ydCBHSVRfRElSICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gJEdJVF9ESVIgc2V0IHdoaWxlIC5naXQgZGlyZWN0b3J5IGluIHBhcmVudCcgJworCWVjaG8gIiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID5leHBlY3RlZCAmJgorCSgKKwkJR0lUX0RJUj0iJFRSQVNIX0RJUkVDVE9SWS9vdGhlcnJlcG8vLmdpdCIgJiYKKwkJZXhwb3J0IEdJVF9ESVIgJiYKKwkJY2Qgc3ViZGlyICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gbm9uLWV4aXN0aW5nICRHSVRfRElSJyAnCisJKAorCQlHSVRfRElSPSIkVFJBU0hfRElSRUNUT1JZL25vbi1leGlzdGluZyIgJiYKKwkJZXhwb3J0IEdJVF9ESVIgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgX19naXRkaXIKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gZ2l0ZmlsZSBpbiBjd2QnICcKKwllY2hvICIkKHB3ZCAtUCkvb3RoZXJyZXBvLy5naXQiID5leHBlY3RlZCAmJgorCWVjaG8gImdpdGRpcjogJFRSQVNIX0RJUkVDVE9SWS9vdGhlcnJlcG8vLmdpdCIgPnN1YmRpci8uZ2l0ICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiBzdWJkaXIvLmdpdCIgJiYKKwkoCisJCWNkIHN1YmRpciAmJgorCQlfX2dpdGRpciA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtIGdpdGZpbGUgaW4gcGFyZW50JyAnCisJZWNobyAiJChwd2QgLVApL290aGVycmVwby8uZ2l0IiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJnaXRkaXI6ICRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID5zdWJkaXIvLmdpdCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLWYgc3ViZGlyLy5naXQiICYmCisJKAorCQljZCBzdWJkaXIvc3Vic3ViZGlyICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ19fZ2l0ZGlyIC0gcmVzdWx0aW5nIHBhdGggYXZvaWRzIHN5bWxpbmtzJyAnCisJZWNobyAiJChwd2QgLVApL290aGVycmVwby8uZ2l0IiA+ZXhwZWN0ZWQgJiYKKwlta2RpciBvdGhlcnJlcG8vZGlyICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgb3RoZXJyZXBvL2RpciIgJiYKKwlsbiAtcyBvdGhlcnJlcG8vZGlyIGxpbmsgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1mIGxpbmsiICYmCisJKAorCQljZCBsaW5rICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gbm90IGEgZ2l0IHJlcG9zaXRvcnknICcKKwkoCisJCWNkIHN1YmRpci9zdWJzdWJkaXIgJiYKKwkJR0lUX0NFSUxJTkdfRElSRUNUT1JJRVM9IiRUUkFTSF9ESVJFQ1RPUlkiICYmCisJCWV4cG9ydCBHSVRfQ0VJTElOR19ESVJFQ1RPUklFUyAmJgorCQl0ZXN0X211c3RfZmFpbCBfX2dpdGRpcgorCSkKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnX19naXRjb21wIC0gdHJhaWxpbmcgc3BhY2UgLSBvcHRpb25zJyAnCiAJdGVzdF9naXRjb21wICItLXJlIiAiLS1kcnktcnVuIC0tcmV1c2UtbWVzc2FnZT0gLS1yZWVkaXQtbWVzc2FnZT0KIAkJLS1yZXNldC1hdXRob3IiIDw8LUVPRgpAQCAtMjMxLDYgKzM2NSw3IEBACiAJLS1leGVjLXBhdGggWgogCS0tZXhlYy1wYXRoPQogCS0taHRtbC1wYXRoIFoKKwktLW1hbi1wYXRoIFoKIAktLWluZm8tcGF0aCBaCiAJLS13b3JrLXRyZWU9CiAJLS1uYW1lc3BhY2U9CkBAIC0zNDcsNCArNDgyLDgxIEBACiAJdGVzdF9jb21wbGV0aW9uICJnaXQgc2VuZC1lbWFpbCBtYSIgIm1hc3RlciAiCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NvbXBsZXRlIGZpbGVzJyAnCisJZ2l0IGluaXQgdG1wICYmIGNkIHRtcCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKworCWVjaG8gImV4cGVjdGVkIiA+IC5naXRpZ25vcmUgJiYKKwllY2hvICJvdXQiID4+IC5naXRpZ25vcmUgJiYKKworCWdpdCBhZGQgLmdpdGlnbm9yZSAmJgorCXRlc3RfY29tcGxldGlvbiAiZ2l0IGNvbW1pdCAiICIuZ2l0aWdub3JlIiAmJgorCisJZ2l0IGNvbW1pdCAtbSBpZ25vcmUgJiYKKworCXRvdWNoIG5ldyAmJgorCXRlc3RfY29tcGxldGlvbiAiZ2l0IGFkZCAiICJuZXciICYmCisKKwlnaXQgYWRkIG5ldyAmJgorCWdpdCBjb21taXQgLWEgLW0gbmV3ICYmCisJdGVzdF9jb21wbGV0aW9uICJnaXQgYWRkICIgIiIgJiYKKworCWdpdCBtdiBuZXcgbW9kaWZpZWQgJiYKKwllY2hvIG1vZGlmeSA+IG1vZGlmaWVkICYmCisJdGVzdF9jb21wbGV0aW9uICJnaXQgYWRkICIgIm1vZGlmaWVkIiAmJgorCisJdG91Y2ggdW50cmFja2VkICYmCisKKwk6IFRPRE8gLmdpdGlnbm9yZSBzaG91bGQgbm90IGJlIGhlcmUgJiYKKwl0ZXN0X2NvbXBsZXRpb24gImdpdCBybSAiIDw8LVxFT0YgJiYKKwkuZ2l0aWdub3JlCisJbW9kaWZpZWQKKwlFT0YKKworCXRlc3RfY29tcGxldGlvbiAiZ2l0IGNsZWFuICIgInVudHJhY2tlZCIgJiYKKworCTogVE9ETyAuZ2l0aWdub3JlIHNob3VsZCBub3QgYmUgaGVyZSAmJgorCXRlc3RfY29tcGxldGlvbiAiZ2l0IG12ICIgPDwtXEVPRiAmJgorCS5naXRpZ25vcmUKKwltb2RpZmllZAorCUVPRgorCisJbWtkaXIgZGlyICYmCisJdG91Y2ggZGlyL2ZpbGUtaW4tZGlyICYmCisJZ2l0IGFkZCBkaXIvZmlsZS1pbi1kaXIgJiYKKwlnaXQgY29tbWl0IC1tIGRpciAmJgorCisJbWtkaXIgdW50cmFja2VkLWRpciAmJgorCisJOiBUT0RPIC5naXRpZ25vcmUgc2hvdWxkIG5vdCBiZSBoZXJlICYmCisJdGVzdF9jb21wbGV0aW9uICJnaXQgbXYgbW9kaWZpZWQgIiA8PC1cRU9GICYmCisJLmdpdGlnbm9yZQorCWRpcgorCW1vZGlmaWVkCisJdW50cmFja2VkCisJdW50cmFja2VkLWRpcgorCUVPRgorCisJdGVzdF9jb21wbGV0aW9uICJnaXQgY29tbWl0ICIgIm1vZGlmaWVkIiAmJgorCisJOiBUT0RPIC5naXRpZ25vcmUgc2hvdWxkIG5vdCBiZSBoZXJlICYmCisJdGVzdF9jb21wbGV0aW9uICJnaXQgbHMtZmlsZXMgIiA8PC1cRU9GCisJLmdpdGlnbm9yZQorCWRpcgorCW1vZGlmaWVkCisJRU9GCisKKwl0b3VjaCBtb21pZmllZCAmJgorCXRlc3RfY29tcGxldGlvbiAiZ2l0IGFkZCBtb20iICJtb21pZmllZCIKKycKKwordGVzdF9leHBlY3RfZmFpbHVyZSAnY29tcGxldGUgd2l0aCB0aWxkZSBleHBhbnNpb24nICcKKwlnaXQgaW5pdCB0bXAgJiYgY2QgdG1wICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCisJdG91Y2ggfi90bXAvZmlsZSAmJgorCisJdGVzdF9jb21wbGV0aW9uICJnaXQgYWRkIH4vdG1wLyIgIn4vdG1wL2ZpbGUiCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90OTkwMy1iYXNoLXByb21wdC5zaCBiL3QvdDk5MDMtYmFzaC1wcm9tcHQuc2gKaW5kZXggMDgzYjMxOS4uM2MzZTRlOCAxMDA3NTUKLS0tIGEvdC90OTkwMy1iYXNoLXByb21wdC5zaAorKysgYi90L3Q5OTAzLWJhc2gtcHJvbXB0LnNoCkBAIC0xMCw1MjggKzEwLDU1OCBAQAogLiAiJEdJVF9CVUlMRF9ESVIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1wcm9tcHQuc2giCiAKIGFjdHVhbD0iJFRSQVNIX0RJUkVDVE9SWS9hY3R1YWwiCitjX3JlZD0nXFxbXFxlWzMxbVxcXScKK2NfZ3JlZW49J1xcW1xcZVszMm1cXF0nCitjX2xibHVlPSdcXFtcXGVbMTszNG1cXF0nCitjX2NsZWFyPSdcXFtcXGVbMG1cXF0nCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGZvciBwcm9tcHQgdGVzdHMnICcKLQlta2RpciAtcCBzdWJkaXIvc3Vic3ViZGlyICYmCiAJZ2l0IGluaXQgb3RoZXJyZXBvICYmCi0JZWNobyAxID4gZmlsZSAmJgorCWVjaG8gMSA+ZmlsZSAmJgogCWdpdCBhZGQgZmlsZSAmJgogCXRlc3RfdGljayAmJgogCWdpdCBjb21taXQgLW0gaW5pdGlhbCAmJgogCWdpdCB0YWcgLWEgLW0gbXNnMSB0MSAmJgogCWdpdCBjaGVja291dCAtYiBiMSAmJgotCWVjaG8gMiA+IGZpbGUgJiYKKwllY2hvIDIgPmZpbGUgJiYKIAlnaXQgY29tbWl0IC1tICJzZWNvbmQgYjEiIGZpbGUgJiYKLQllY2hvIDMgPiBmaWxlICYmCisJZWNobyAzID5maWxlICYmCiAJZ2l0IGNvbW1pdCAtbSAidGhpcmQgYjEiIGZpbGUgJiYKIAlnaXQgdGFnIC1hIC1tIG1zZzIgdDIgJiYKIAlnaXQgY2hlY2tvdXQgLWIgYjIgbWFzdGVyICYmCi0JZWNobyAwID4gZmlsZSAmJgorCWVjaG8gMCA+ZmlsZSAmJgogCWdpdCBjb21taXQgLW0gInNlY29uZCBiMiIgZmlsZSAmJgotCWVjaG8gMDAgPiBmaWxlICYmCisJZWNobyAwMCA+ZmlsZSAmJgogCWdpdCBjb21taXQgLW0gImFub3RoZXIgYjIiIGZpbGUgJiYKLQllY2hvIDAwMCA+IGZpbGUgJiYKKwllY2hvIDAwMCA+ZmlsZSAmJgogCWdpdCBjb21taXQgLW0gInlldCBhbm90aGVyIGIyIiBmaWxlICYmCiAJZ2l0IGNoZWNrb3V0IG1hc3RlcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXRkaXIgLSBmcm9tIGNvbW1hbmQgbGluZSAodGhyb3VnaCAkX19naXRfZGlyKScgJwotCWVjaG8gIiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID4gZXhwZWN0ZWQgJiYKLQkoCi0JCV9fZ2l0X2Rpcj0iJFRSQVNIX0RJUkVDVE9SWS9vdGhlcnJlcG8vLmdpdCIgJiYKLQkJX19naXRkaXIgPiAiJGFjdHVhbCIKLQkpICYmCi0JdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtIHJlcG8gYXMgYXJndW1lbnQnICcKLQllY2hvICJvdGhlcnJlcG8vLmdpdCIgPiBleHBlY3RlZCAmJgotCV9fZ2l0ZGlyICJvdGhlcnJlcG8iID4gIiRhY3R1YWwiICYmCi0JdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtIHJlbW90ZSBhcyBhcmd1bWVudCcgJwotCWVjaG8gInJlbW90ZSIgPiBleHBlY3RlZCAmJgotCV9fZ2l0ZGlyICJyZW1vdGUiID4gIiRhY3R1YWwiICYmCi0JdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtIC5naXQgZGlyZWN0b3J5IGluIGN3ZCcgJwotCWVjaG8gIi5naXQiID4gZXhwZWN0ZWQgJiYKLQlfX2dpdGRpciA+ICIkYWN0dWFsIiAmJgotCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXRkaXIgLSAuZ2l0IGRpcmVjdG9yeSBpbiBwYXJlbnQnICcKLQllY2hvICIkKHB3ZCAtUCkvLmdpdCIgPiBleHBlY3RlZCAmJgotCSgKLQkJY2Qgc3ViZGlyL3N1YnN1YmRpciAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gY3dkIGlzIGEgLmdpdCBkaXJlY3RvcnknICcKLQllY2hvICIuIiA+IGV4cGVjdGVkICYmCi0JKAotCQljZCAuZ2l0ICYmCi0JCV9fZ2l0ZGlyID4gIiRhY3R1YWwiCi0JKSAmJgotCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXRkaXIgLSBwYXJlbnQgaXMgYSAuZ2l0IGRpcmVjdG9yeScgJwotCWVjaG8gIiQocHdkIC1QKS8uZ2l0IiA+IGV4cGVjdGVkICYmCi0JKAotCQljZCAuZ2l0L3JlZnMvaGVhZHMgJiYKLQkJX19naXRkaXIgPiAiJGFjdHVhbCIKLQkpICYmCi0JdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtICRHSVRfRElSIHNldCB3aGlsZSAuZ2l0IGRpcmVjdG9yeSBpbiBjd2QnICcKLQllY2hvICIkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiA+IGV4cGVjdGVkICYmCi0JKAotCQlHSVRfRElSPSIkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiAmJgotCQlleHBvcnQgR0lUX0RJUiAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gJEdJVF9ESVIgc2V0IHdoaWxlIC5naXQgZGlyZWN0b3J5IGluIHBhcmVudCcgJwotCWVjaG8gIiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID4gZXhwZWN0ZWQgJiYKLQkoCi0JCUdJVF9ESVI9IiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiICYmCi0JCWV4cG9ydCBHSVRfRElSICYmCi0JCWNkIHN1YmRpciAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gbm9uLWV4aXN0aW5nICRHSVRfRElSJyAnCi0JKAotCQlHSVRfRElSPSIkVFJBU0hfRElSRUNUT1JZL25vbi1leGlzdGluZyIgJiYKLQkJZXhwb3J0IEdJVF9ESVIgJiYKLQkJdGVzdF9tdXN0X2ZhaWwgX19naXRkaXIKLQkpCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtIGdpdGZpbGUgaW4gY3dkJyAnCi0JZWNobyAiJChwd2QgLVApL290aGVycmVwby8uZ2l0IiA+IGV4cGVjdGVkICYmCi0JZWNobyAiZ2l0ZGlyOiAkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiA+IHN1YmRpci8uZ2l0ICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiBzdWJkaXIvLmdpdCIgJiYKLQkoCi0JCWNkIHN1YmRpciAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gZ2l0ZmlsZSBpbiBwYXJlbnQnICcKLQllY2hvICIkKHB3ZCAtUCkvb3RoZXJyZXBvLy5naXQiID4gZXhwZWN0ZWQgJiYKLQllY2hvICJnaXRkaXI6ICRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID4gc3ViZGlyLy5naXQgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1mIHN1YmRpci8uZ2l0IiAmJgotCSgKLQkJY2Qgc3ViZGlyL3N1YnN1YmRpciAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZ2l0ZGlyIC0gcmVzdWx0aW5nIHBhdGggYXZvaWRzIHN5bWxpbmtzJyAnCi0JZWNobyAiJChwd2QgLVApL290aGVycmVwby8uZ2l0IiA+IGV4cGVjdGVkICYmCi0JbWtkaXIgb3RoZXJyZXBvL2RpciAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIG90aGVycmVwby9kaXIiICYmCi0JbG4gLXMgb3RoZXJyZXBvL2RpciBsaW5rICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiBsaW5rIiAmJgotCSgKLQkJY2QgbGluayAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gbm90IGEgZ2l0IHJlcG9zaXRvcnknICcKLQkoCi0JCWNkIHN1YmRpci9zdWJzdWJkaXIgJiYKLQkJR0lUX0NFSUxJTkdfRElSRUNUT1JJRVM9IiRUUkFTSF9ESVJFQ1RPUlkiICYmCi0JCWV4cG9ydCBHSVRfQ0VJTElOR19ESVJFQ1RPUklFUyAmJgotCQl0ZXN0X211c3RfZmFpbCBfX2dpdGRpcgotCSkKLScKLQogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gYnJhbmNoIG5hbWUnICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKKwlfX2dpdF9wczEgPiIkYWN0dWFsIiAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdwcm9tcHQgLSBicmFuY2ggbmFtZSAtIHN5bWxpbmsgc3ltcmVmJyAnCisJcHJpbnRmICIgKG1hc3RlcikiID5leHBlY3RlZCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKKwl0ZXN0X2NvbmZpZyBjb3JlLnByZWZlclN5bWxpbmtSZWZzIHRydWUgJiYKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJX19naXRfcHMxID4iJGFjdHVhbCIgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW5ib3JuIGJyYW5jaCcgJworCXByaW50ZiAiICh1bmJvcm4pIiA+ZXhwZWN0ZWQgJiYKKwlnaXQgY2hlY2tvdXQgLS1vcnBoYW4gdW5ib3JuICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgY2hlY2tvdXQgbWFzdGVyIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGRldGFjaGVkIGhlYWQnICcKLQlwcmludGYgIiAoKCVzLi4uKSkiICQoZ2l0IGxvZyAtMSAtLWZvcm1hdD0iJWgiIGIxXikgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiICgoJXMuLi4pKSIgJChnaXQgbG9nIC0xIC0tZm9ybWF0PSIlaCIgLS1hYmJyZXY9MTMgYjFeKSA+ZXhwZWN0ZWQgJiYKKwl0ZXN0X2NvbmZpZyBjb3JlLmFiYnJldiAxMyAmJgogCWdpdCBjaGVja291dCBiMV4gJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCBjaGVja291dCBtYXN0ZXIiICYmCi0JX19naXRfcHMxID4gIiRhY3R1YWwiICYmCisJX19naXRfcHMxID4iJGFjdHVhbCIgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGVzY3JpYmUgZGV0YWNoZWQgaGVhZCAtIGNvbnRhaW5zJyAnCi0JcHJpbnRmICIgKCh0Mn4xKSkiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoKHQyfjEpKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IGIxXiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKIAkoCiAJCUdJVF9QUzFfREVTQ1JJQkVfU1RZTEU9Y29udGFpbnMgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkZXNjcmliZSBkZXRhY2hlZCBoZWFkIC0gYnJhbmNoJyAnCi0JcHJpbnRmICIgKChiMX4xKSkiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoKGIxfjEpKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IGIxXiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKIAkoCiAJCUdJVF9QUzFfREVTQ1JJQkVfU1RZTEU9YnJhbmNoICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGVzY3JpYmUgZGV0YWNoZWQgaGVhZCAtIGRlc2NyaWJlJyAnCi0JcHJpbnRmICIgKCh0MS0xLWclcykpIiAkKGdpdCBsb2cgLTEgLS1mb3JtYXQ9IiVoIiBiMV4pID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoKHQxLTEtZyVzKSkiICQoZ2l0IGxvZyAtMSAtLWZvcm1hdD0iJWgiIGIxXikgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IGIxXiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKIAkoCiAJCUdJVF9QUzFfREVTQ1JJQkVfU1RZTEU9ZGVzY3JpYmUgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkZXNjcmliZSBkZXRhY2hlZCBoZWFkIC0gZGVmYXVsdCcgJwotCXByaW50ZiAiICgodDIpKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiICgodDIpKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IC0tZGV0YWNoIGIxICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgY2hlY2tvdXQgbWFzdGVyIiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGluc2lkZSAuZ2l0IGRpcmVjdG9yeScgJwotCXByaW50ZiAiIChHSVRfRElSISkiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoR0lUX0RJUiEpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCWNkIC5naXQgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkZWVwIGluc2lkZSAuZ2l0IGRpcmVjdG9yeScgJwotCXByaW50ZiAiIChHSVRfRElSISkiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoR0lUX0RJUiEpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCWNkIC5naXQvcmVmcy9oZWFkcyAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGluc2lkZSBiYXJlIHJlcG9zaXRvcnknICcKLQlwcmludGYgIiAoQkFSRTptYXN0ZXIpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKEJBUkU6bWFzdGVyKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGluaXQgLS1iYXJlIGJhcmUuZ2l0ICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgYmFyZS5naXQiICYmCiAJKAogCQljZCBiYXJlLmdpdCAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGludGVyYWN0aXZlIHJlYmFzZScgJwotCXByaW50ZiAiIChiMXxSRUJBU0UtaSAyLzMpIiA+IGV4cGVjdGVkCi0JZWNobyAiIyEkU0hFTExfUEFUSCIgPmZha2VfZWRpdG9yLnNoICYmCi0JY2F0ID4+ZmFrZV9lZGl0b3Iuc2ggPDxcRU9GICYmCi1lY2hvICJleGVjIGVjaG8iID4gIiQxIgotZWNobyAiZWRpdCAkKGdpdCBsb2cgLTEgLS1mb3JtYXQ9IiVoIikiID4+ICIkMSIKLWVjaG8gImV4ZWMgZWNobyIgPj4gIiQxIgotRU9GCisJcHJpbnRmICIgKGIxfFJFQkFTRS1pIDIvMykiID5leHBlY3RlZAorCXdyaXRlX3NjcmlwdCBmYWtlX2VkaXRvci5zaCA8PC1cRU9GICYmCisJCWVjaG8gImV4ZWMgZWNobyIgPiIkMSIKKwkJZWNobyAiZWRpdCAkKGdpdCBsb2cgLTEgLS1mb3JtYXQ9IiVoIikiID4+IiQxIgorCQllY2hvICJleGVjIGVjaG8iID4+IiQxIgorCUVPRgogCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLWYgZmFrZV9lZGl0b3Iuc2giICYmCi0JY2htb2QgYSt4IGZha2VfZWRpdG9yLnNoICYmCiAJdGVzdF9zZXRfZWRpdG9yICIkVFJBU0hfRElSRUNUT1JZL2Zha2VfZWRpdG9yLnNoIiAmJgogCWdpdCBjaGVja291dCBiMSAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKIAlnaXQgcmViYXNlIC1pIEhFQUReICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmViYXNlIC0tYWJvcnQiCi0JX19naXRfcHMxID4gIiRhY3R1YWwiICYmCisJX19naXRfcHMxID4iJGFjdHVhbCIgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gcmViYXNlIG1lcmdlJyAnCi0JcHJpbnRmICIgKGIyfFJFQkFTRS1tIDEvMykiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoYjJ8UkVCQVNFLW0gMS8zKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IGIyICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgY2hlY2tvdXQgbWFzdGVyIiAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCByZWJhc2UgLS1tZXJnZSBiMSBiMiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlYmFzZSAtLWFib3J0IiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIHJlYmFzZScgJwotCXByaW50ZiAiICgodDIpfFJFQkFTRSAxLzMpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKGIyfFJFQkFTRSAxLzMpIiA+ZXhwZWN0ZWQgJiYKIAlnaXQgY2hlY2tvdXQgYjIgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCBjaGVja291dCBtYXN0ZXIiICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYmFzZSBiMSBiMiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlYmFzZSAtLWFib3J0IiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIG1lcmdlJyAnCi0JcHJpbnRmICIgKGIxfE1FUkdJTkcpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKGIxfE1FUkdJTkcpIiA+ZXhwZWN0ZWQgJiYKIAlnaXQgY2hlY2tvdXQgYjEgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCBjaGVja291dCBtYXN0ZXIiICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIGIyICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmVzZXQgLS1oYXJkIiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGNoZXJyeS1waWNrJyAnCi0JcHJpbnRmICIgKG1hc3RlcnxDSEVSUlktUElDS0lORykiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAobWFzdGVyfENIRVJSWS1QSUNLSU5HKSIgPmV4cGVjdGVkICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZXJyeS1waWNrIGIxICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmVzZXQgLS1oYXJkIiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGJpc2VjdCcgJwotCXByaW50ZiAiIChtYXN0ZXJ8QklTRUNUSU5HKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXJ8QklTRUNUSU5HKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGJpc2VjdCBzdGFydCAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGJpc2VjdCByZXNldCIgJiYKLQlfX2dpdF9wczEgPiAiJGFjdHVhbCIgJiYKKwlfX2dpdF9wczEgPiIkYWN0dWFsIiAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gY2xlYW4nICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGRpcnR5IHN0YXR1cyBpbmRpY2F0b3IgLSBkaXJ0eSB3b3JrdHJlZScgJwotCXByaW50ZiAiIChtYXN0ZXIgKikiID4gZXhwZWN0ZWQgJiYKLQllY2hvICJkaXJ0eSIgPiBmaWxlICYmCisJcHJpbnRmICIgKG1hc3RlciAqKSIgPmV4cGVjdGVkICYmCisJZWNobyAiZGlydHkiID5maWxlICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmVzZXQgLS1oYXJkIiAmJgogCSgKIAkJR0lUX1BTMV9TSE9XRElSVFlTVEFURT15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGlydHkgc3RhdHVzIGluZGljYXRvciAtIGRpcnR5IGluZGV4JyAnCi0JcHJpbnRmICIgKG1hc3RlciArKSIgPiBleHBlY3RlZCAmJgotCWVjaG8gImRpcnR5IiA+IGZpbGUgJiYKKwlwcmludGYgIiAobWFzdGVyICspIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSIgPmZpbGUgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCiAJZ2l0IGFkZCAtdSAmJgogCSgKIAkJR0lUX1BTMV9TSE9XRElSVFlTVEFURT15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGlydHkgc3RhdHVzIGluZGljYXRvciAtIGRpcnR5IGluZGV4IGFuZCB3b3JrdHJlZScgJwotCXByaW50ZiAiIChtYXN0ZXIgKispIiA+IGV4cGVjdGVkICYmCi0JZWNobyAiZGlydHkgaW5kZXgiID4gZmlsZSAmJgorCXByaW50ZiAiIChtYXN0ZXIgKispIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSBpbmRleCIgPmZpbGUgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCiAJZ2l0IGFkZCAtdSAmJgotCWVjaG8gImRpcnR5IHdvcmt0cmVlIiA+IGZpbGUgJiYKKwllY2hvICJkaXJ0eSB3b3JrdHJlZSIgPmZpbGUgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGRpcnR5IHN0YXR1cyBpbmRpY2F0b3IgLSBiZWZvcmUgcm9vdCBjb21taXQnICcKLQlwcmludGYgIiAobWFzdGVyICMpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKG1hc3RlciAjKSIgPmV4cGVjdGVkICYmCiAJKAogCQlHSVRfUFMxX1NIT1dESVJUWVNUQVRFPXkgJiYKIAkJY2Qgb3RoZXJyZXBvICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGlydHkgc3RhdHVzIGluZGljYXRvciAtIHNoZWxsIHZhcmlhYmxlIHVuc2V0IHdpdGggY29uZmlnIGRpc2FibGVkJyAnCi0JcHJpbnRmICIgKG1hc3RlcikiID4gZXhwZWN0ZWQgJiYKLQllY2hvICJkaXJ0eSIgPiBmaWxlICYmCisJcHJpbnRmICIgKG1hc3RlcikiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dEaXJ0eVN0YXRlIGZhbHNlICYmCiAJKAogCQlzYW5lX3Vuc2V0IEdJVF9QUzFfU0hPV0RJUlRZU1RBVEUgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gc2hlbGwgdmFyaWFibGUgdW5zZXQgd2l0aCBjb25maWcgZW5hYmxlZCcgJwotCXByaW50ZiAiIChtYXN0ZXIpIiA+IGV4cGVjdGVkICYmCi0JZWNobyAiZGlydHkiID4gZmlsZSAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSIgPmZpbGUgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCiAJdGVzdF9jb25maWcgYmFzaC5zaG93RGlydHlTdGF0ZSB0cnVlICYmCiAJKAogCQlzYW5lX3Vuc2V0IEdJVF9QUzFfU0hPV0RJUlRZU1RBVEUgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gc2hlbGwgdmFyaWFibGUgc2V0IHdpdGggY29uZmlnIGRpc2FibGVkJyAnCi0JcHJpbnRmICIgKG1hc3RlcikiID4gZXhwZWN0ZWQgJiYKLQllY2hvICJkaXJ0eSIgPiBmaWxlICYmCisJcHJpbnRmICIgKG1hc3RlcikiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dEaXJ0eVN0YXRlIGZhbHNlICYmCiAJKAogCQlHSVRfUFMxX1NIT1dESVJUWVNUQVRFPXkgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gc2hlbGwgdmFyaWFibGUgc2V0IHdpdGggY29uZmlnIGVuYWJsZWQnICcKLQlwcmludGYgIiAobWFzdGVyICopIiA+IGV4cGVjdGVkICYmCi0JZWNobyAiZGlydHkiID4gZmlsZSAmJgorCXByaW50ZiAiIChtYXN0ZXIgKikiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dEaXJ0eVN0YXRlIHRydWUgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGRpcnR5IHN0YXR1cyBpbmRpY2F0b3IgLSBub3Qgc2hvd24gaW5zaWRlIC5naXQgZGlyZWN0b3J5JyAnCi0JcHJpbnRmICIgKEdJVF9ESVIhKSIgPiBleHBlY3RlZCAmJgotCWVjaG8gImRpcnR5IiA+IGZpbGUgJiYKKwlwcmludGYgIiAoR0lUX0RJUiEpIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSIgPmZpbGUgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCiAJKAogCQlHSVRfUFMxX1NIT1dESVJUWVNUQVRFPXkgJiYKIAkJY2QgLmdpdCAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIHN0YXNoIHN0YXR1cyBpbmRpY2F0b3IgLSBubyBzdGFzaCcgJwotCXByaW50ZiAiIChtYXN0ZXIpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKG1hc3RlcikiID5leHBlY3RlZCAmJgogCSgKIAkJR0lUX1BTMV9TSE9XU1RBU0hTVEFURT15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gc3Rhc2ggc3RhdHVzIGluZGljYXRvciAtIHN0YXNoJyAnCi0JcHJpbnRmICIgKG1hc3RlciAkKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIgJCkiID5leHBlY3RlZCAmJgogCWVjaG8gMiA+ZmlsZSAmJgogCWdpdCBzdGFzaCAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHN0YXNoIGRyb3AiICYmCisJZ2l0IHBhY2stcmVmcyAtLWFsbCAmJgogCSgKIAkJR0lUX1BTMV9TSE9XU1RBU0hTVEFURT15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gc3Rhc2ggc3RhdHVzIGluZGljYXRvciAtIG5vdCBzaG93biBpbnNpZGUgLmdpdCBkaXJlY3RvcnknICcKLQlwcmludGYgIiAoR0lUX0RJUiEpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKEdJVF9ESVIhKSIgPmV4cGVjdGVkICYmCiAJZWNobyAyID5maWxlICYmCiAJZ2l0IHN0YXNoICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgc3Rhc2ggZHJvcCIgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV1NUQVNIU1RBVEU9eSAmJgogCQljZCAuZ2l0ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3IgLSBubyB1bnRyYWNrZWQgZmlsZXMnICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV1VOVFJBQ0tFREZJTEVTPXkgJiYKIAkJY2Qgb3RoZXJyZXBvICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3IgLSB1bnRyYWNrZWQgZmlsZXMnICcKLQlwcmludGYgIiAobWFzdGVyICUlKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIgJSUpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV1VOVFJBQ0tFREZJTEVTPXkgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSB1bnRyYWNrZWQgZmlsZXMgc3RhdHVzIGluZGljYXRvciAtIHNoZWxsIHZhcmlhYmxlIHVuc2V0IHdpdGggY29uZmlnIGRpc2FibGVkJyAnCi0JcHJpbnRmICIgKG1hc3RlcikiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAobWFzdGVyKSIgPmV4cGVjdGVkICYmCiAJdGVzdF9jb25maWcgYmFzaC5zaG93VW50cmFja2VkRmlsZXMgZmFsc2UgJiYKIAkoCiAJCXNhbmVfdW5zZXQgR0lUX1BTMV9TSE9XVU5UUkFDS0VERklMRVMgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSB1bnRyYWNrZWQgZmlsZXMgc3RhdHVzIGluZGljYXRvciAtIHNoZWxsIHZhcmlhYmxlIHVuc2V0IHdpdGggY29uZmlnIGVuYWJsZWQnICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dVbnRyYWNrZWRGaWxlcyB0cnVlICYmCiAJKAogCQlzYW5lX3Vuc2V0IEdJVF9QUzFfU0hPV1VOVFJBQ0tFREZJTEVTICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3IgLSBzaGVsbCB2YXJpYWJsZSBzZXQgd2l0aCBjb25maWcgZGlzYWJsZWQnICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dVbnRyYWNrZWRGaWxlcyBmYWxzZSAmJgogCSgKIAkJR0lUX1BTMV9TSE9XVU5UUkFDS0VERklMRVM9eSAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIHVudHJhY2tlZCBmaWxlcyBzdGF0dXMgaW5kaWNhdG9yIC0gc2hlbGwgdmFyaWFibGUgc2V0IHdpdGggY29uZmlnIGVuYWJsZWQnICcKLQlwcmludGYgIiAobWFzdGVyICUlKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIgJSUpIiA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dVbnRyYWNrZWRGaWxlcyB0cnVlICYmCiAJKAogCQlHSVRfUFMxX1NIT1dVTlRSQUNLRURGSUxFUz15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3IgLSBub3Qgc2hvd24gaW5zaWRlIC5naXQgZGlyZWN0b3J5JyAnCi0JcHJpbnRmICIgKEdJVF9ESVIhKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChHSVRfRElSISkiID5leHBlY3RlZCAmJgogCSgKIAkJR0lUX1BTMV9TSE9XVU5UUkFDS0VERklMRVM9eSAmJgogCQljZCAuZ2l0ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZm9ybWF0IHN0cmluZyBzdGFydGluZyB3aXRoIGRhc2gnICcKLQlwcmludGYgLS0gIi1tYXN0ZXIiID4gZXhwZWN0ZWQgJiYKLQlfX2dpdF9wczEgIi0lcyIgPiAiJGFjdHVhbCIgJiYKKwlwcmludGYgLS0gIi1tYXN0ZXIiID5leHBlY3RlZCAmJgorCV9fZ2l0X3BzMSAiLSVzIiA+IiRhY3R1YWwiICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIHBjIG1vZGUnICcKKwlwcmludGYgIkJFRk9SRTogKG1hc3Rlcik6QUZURVIiID5leHBlY3RlZCAmJgorCXByaW50ZiAiIiA+ZXhwZWN0ZWRfb3V0cHV0ICYmCisJKAorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiID4iJGFjdHVhbCIgJiYKKwkJdGVzdF9jbXAgZXhwZWN0ZWRfb3V0cHV0ICIkYWN0dWFsIiAmJgorCQlwcmludGYgIiVzIiAiJFBTMSIgPiIkYWN0dWFsIgorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gYmFzaCBjb2xvciBwYyBtb2RlIC0gYnJhbmNoIG5hbWUnICcKKwlwcmludGYgIkJFRk9SRTogKCR7Y19ncmVlbn1tYXN0ZXIke2NfY2xlYXJ9KTpBRlRFUiIgPmV4cGVjdGVkICYmCisJKAorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJX19naXRfcHMxICJCRUZPUkU6IiAiOkFGVEVSIiA+IiRhY3R1YWwiCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBiYXNoIGNvbG9yIHBjIG1vZGUgLSBkZXRhY2hlZCBoZWFkJyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfcmVkfSglcy4uLikke2NfY2xlYXJ9KTpBRlRFUiIgJChnaXQgbG9nIC0xIC0tZm9ybWF0PSIlaCIgYjFeKSA+ZXhwZWN0ZWQgJiYKKwlnaXQgY2hlY2tvdXQgYjFeICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgY2hlY2tvdXQgbWFzdGVyIiAmJgorCSgKKwkJR0lUX1BTMV9TSE9XQ09MT1JISU5UUz15ICYmCisJCV9fZ2l0X3BzMSAiQkVGT1JFOiIgIjpBRlRFUiIgJiYKKwkJcHJpbnRmICIlcyIgIiRQUzEiID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGJhc2ggY29sb3IgcGMgbW9kZSAtIGRpcnR5IHN0YXR1cyBpbmRpY2F0b3IgLSBkaXJ0eSB3b3JrdHJlZScgJworCXByaW50ZiAiQkVGT1JFOiAoJHtjX2dyZWVufW1hc3RlciR7Y19jbGVhcn0gJHtjX3JlZH0qJHtjX2NsZWFyfSk6QUZURVIiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKKwkoCisJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJX19naXRfcHMxICJCRUZPUkU6IiAiOkFGVEVSIiAmJgorCQlwcmludGYgIiVzIiAiJFBTMSIgPiIkYWN0dWFsIgorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gYmFzaCBjb2xvciBwYyBtb2RlIC0gZGlydHkgc3RhdHVzIGluZGljYXRvciAtIGRpcnR5IGluZGV4JyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfZ3JlZW59bWFzdGVyJHtjX2NsZWFyfSAke2NfZ3JlZW59KyR7Y19jbGVhcn0pOkFGVEVSIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSIgPmZpbGUgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCisJZ2l0IGFkZCAtdSAmJgorCSgKKwkJR0lUX1BTMV9TSE9XRElSVFlTVEFURT15ICYmCisJCUdJVF9QUzFfU0hPV0NPTE9SSElOVFM9eSAmJgorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiICYmCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBiYXNoIGNvbG9yIHBjIG1vZGUgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gZGlydHkgaW5kZXggYW5kIHdvcmt0cmVlJyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfZ3JlZW59bWFzdGVyJHtjX2NsZWFyfSAke2NfcmVkfSoke2NfZ3JlZW59KyR7Y19jbGVhcn0pOkFGVEVSIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSBpbmRleCIgPmZpbGUgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCisJZ2l0IGFkZCAtdSAmJgorCWVjaG8gImRpcnR5IHdvcmt0cmVlIiA+ZmlsZSAmJgorCSgKKwkJR0lUX1BTMV9TSE9XQ09MT1JISU5UUz15ICYmCisJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiICYmCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBiYXNoIGNvbG9yIHBjIG1vZGUgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gYmVmb3JlIHJvb3QgY29tbWl0JyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfZ3JlZW59bWFzdGVyJHtjX2NsZWFyfSAke2NfZ3JlZW59IyR7Y19jbGVhcn0pOkFGVEVSIiA+ZXhwZWN0ZWQgJiYKKwkoCisJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJY2Qgb3RoZXJyZXBvICYmCisJCV9fZ2l0X3BzMSAiQkVGT1JFOiIgIjpBRlRFUiIgJiYKKwkJcHJpbnRmICIlcyIgIiRQUzEiID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGJhc2ggY29sb3IgcGMgbW9kZSAtIGluc2lkZSAuZ2l0IGRpcmVjdG9yeScgJworCXByaW50ZiAiQkVGT1JFOiAoJHtjX2dyZWVufUdJVF9ESVIhJHtjX2NsZWFyfSk6QUZURVIiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKKwkoCisJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJY2QgLmdpdCAmJgorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiICYmCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBiYXNoIGNvbG9yIHBjIG1vZGUgLSBzdGFzaCBzdGF0dXMgaW5kaWNhdG9yJyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfZ3JlZW59bWFzdGVyJHtjX2NsZWFyfSAke2NfbGJsdWV9XCQke2NfY2xlYXJ9KTpBRlRFUiIgPmV4cGVjdGVkICYmCisJZWNobyAyID5maWxlICYmCisJZ2l0IHN0YXNoICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgc3Rhc2ggZHJvcCIgJiYKKwkoCisJCUdJVF9QUzFfU0hPV1NUQVNIU1RBVEU9eSAmJgorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJX19naXRfcHMxICJCRUZPUkU6IiAiOkFGVEVSIiAmJgorCQlwcmludGYgIiVzIiAiJFBTMSIgPiIkYWN0dWFsIgorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gYmFzaCBjb2xvciBwYyBtb2RlIC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3InICcKKwlwcmludGYgIkJFRk9SRTogKCR7Y19ncmVlbn1tYXN0ZXIke2NfY2xlYXJ9ICR7Y19yZWR9JSUke2NfY2xlYXJ9KTpBRlRFUiIgPmV4cGVjdGVkICYmCisJKAorCQlHSVRfUFMxX1NIT1dVTlRSQUNLRURGSUxFUz15ICYmCisJCUdJVF9QUzFfU0hPV0NPTE9SSElOVFM9eSAmJgorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiICYmCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSB6c2ggY29sb3IgcGMgbW9kZScgJworCXByaW50ZiAiQkVGT1JFOiAoJSVGe2dyZWVufW1hc3RlciUlZik6QUZURVIiID5leHBlY3RlZCAmJgorCSgKKwkJWlNIX1ZFUlNJT049NS4wLjAgJiYKKwkJR0lUX1BTMV9TSE9XQ09MT1JISU5UUz15ICYmCisJCV9fZ2l0X3BzMSAiQkVGT1JFOiIgIjpBRlRFUiIgPiIkYWN0dWFsIgorCQlwcmludGYgIiVzIiAiJFBTMSIgPiIkYWN0dWFsIgorCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIApkaWZmIC0tZ2l0IGEvdC90ZXN0LWxpYi1mdW5jdGlvbnMuc2ggYi90L3Rlc3QtbGliLWZ1bmN0aW9ucy5zaAppbmRleCA1MjUxMDA5Li5hN2U5YWFjIDEwMDY0NAotLS0gYS90L3Rlc3QtbGliLWZ1bmN0aW9ucy5zaAorKysgYi90L3Rlc3QtbGliLWZ1bmN0aW9ucy5zaApAQCAtMzQzLDYgKzM0Myw3IEBACiB9CiAKIHRlc3RfZXhwZWN0X2ZhaWx1cmUgKCkgeworCXRlc3Rfc3RhcnRfCiAJdGVzdCAiJCMiID0gMyAmJiB7IHRlc3RfcHJlcmVxPSQxOyBzaGlmdDsgfSB8fCB0ZXN0X3ByZXJlcT0KIAl0ZXN0ICIkIyIgPSAyIHx8CiAJZXJyb3IgImJ1ZyBpbiB0aGUgdGVzdCBzY3JpcHQ6IG5vdCAyIG9yIDMgcGFyYW1ldGVycyB0byB0ZXN0LWV4cGVjdC1mYWlsdXJlIgpAQCAtMzU3LDEwICszNTgsMTEgQEAKIAkJCXRlc3Rfa25vd25fYnJva2VuX2ZhaWx1cmVfICIkMSIKIAkJZmkKIAlmaQotCWVjaG8gPiYzICIiCisJdGVzdF9maW5pc2hfCiB9CiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgKCkgeworCXRlc3Rfc3RhcnRfCiAJdGVzdCAiJCMiID0gMyAmJiB7IHRlc3RfcHJlcmVxPSQxOyBzaGlmdDsgfSB8fCB0ZXN0X3ByZXJlcT0KIAl0ZXN0ICIkIyIgPSAyIHx8CiAJZXJyb3IgImJ1ZyBpbiB0aGUgdGVzdCBzY3JpcHQ6IG5vdCAyIG9yIDMgcGFyYW1ldGVycyB0byB0ZXN0LWV4cGVjdC1zdWNjZXNzIgpAQCAtMzc1LDcgKzM3Nyw3IEBACiAJCQl0ZXN0X2ZhaWx1cmVfICIkQCIKIAkJZmkKIAlmaQotCWVjaG8gPiYzICIiCisJdGVzdF9maW5pc2hfCiB9CiAKICMgdGVzdF9leHRlcm5hbCBydW5zIGV4dGVybmFsIHRlc3Qgc2NyaXB0cyB0aGF0IHByb3ZpZGUgY29udGludW91cwpAQCAtNjA5LDYgKzYxMSwxOCBAQAogCSRHSVRfVEVTVF9DTVAgIiRAIgogfQogCisjIENoZWNrIGlmIHRoZSBmaWxlIGV4cGVjdGVkIHRvIGJlIGVtcHR5IGlzIGluZGVlZCBlbXB0eSwgYW5kIGJhcmZzCisjIG90aGVyd2lzZS4KKwordGVzdF9tdXN0X2JlX2VtcHR5ICgpIHsKKwlpZiB0ZXN0IC1zICIkMSIKKwl0aGVuCisJCWVjaG8gIickMScgaXMgbm90IGVtcHR5LCBpdCBjb250YWluczoiCisJCWNhdCAiJDEiCisJCXJldHVybiAxCisJZmkKK30KKwogIyBUZXN0cyB0aGF0IGl0cyB0d28gcGFyYW1ldGVycyByZWZlciB0byB0aGUgc2FtZSByZXZpc2lvbgogdGVzdF9jbXBfcmV2ICgpIHsKIAlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5ICIkMSIgPmV4cGVjdC5yZXYgJiYKQEAgLTY3OSwzICs2OTMsMjAgQEAKIAkJbXYgLmdpdC9ob29rcyAuZ2l0L2hvb2tzLWRpc2FibGVkCiAJKSB8fCBleGl0CiB9CisKKyMgVGhpcyBmdW5jdGlvbiBoZWxwcyBvbiBzeW1saW5rIGNoYWxsZW5nZWQgZmlsZSBzeXN0ZW1zIHdoZW4gaXQgaXMgbm90CisjIGltcG9ydGFudCB0aGF0IHRoZSBmaWxlIHN5c3RlbSBlbnRyeSBpcyBhIHN5bWJvbGljIGxpbmsuCisjIFVzZSB0ZXN0X2xuX3NfYWRkIGluc3RlYWQgb2YgImxuIC1zIHggeSAmJiBnaXQgYWRkIHkiIHRvIGFkZCBhCisjIHN5bWJvbGljIGxpbmsgZW50cnkgeSB0byB0aGUgaW5kZXguCisKK3Rlc3RfbG5fc19hZGQgKCkgeworCWlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKKwl0aGVuCisJCWxuIC1zICIkMSIgIiQyIiAmJgorCQlnaXQgdXBkYXRlLWluZGV4IC0tYWRkICIkMiIKKwllbHNlCisJCXByaW50ZiAnJXMnICIkMSIgPiIkMiIgJiYKKwkJbG5fc19vYmo9JChnaXQgaGFzaC1vYmplY3QgLXcgIiQyIikgJiYKKwkJZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCAtLWNhY2hlaW5mbyAxMjAwMDAgJGxuX3Nfb2JqICIkMiIKKwlmaQorfQpkaWZmIC0tZ2l0IGEvdC90ZXN0LWxpYi5zaCBiL3QvdGVzdC1saWIuc2gKaW5kZXggY2E2YmRlZi4uMWFhMjdiZCAxMDA2NDQKLS0tIGEvdC90ZXN0LWxpYi5zaAorKysgYi90L3Rlc3QtbGliLnNoCkBAIC01NCw4ICs1NCw4IEBACiAJIyBkbyBub3QgcmVkaXJlY3QgYWdhaW4KIAk7OwogKicgLS10ZWUgJyp8KicgLS12YScqKQotCW1rZGlyIC1wIHRlc3QtcmVzdWx0cwotCUJBU0U9dGVzdC1yZXN1bHRzLyQoYmFzZW5hbWUgIiQwIiAuc2gpCisJbWtkaXIgLXAgIiRURVNUX09VVFBVVF9ESVJFQ1RPUlkvdGVzdC1yZXN1bHRzIgorCUJBU0U9IiRURVNUX09VVFBVVF9ESVJFQ1RPUlkvdGVzdC1yZXN1bHRzLyQoYmFzZW5hbWUgIiQwIiAuc2gpIgogCShHSVRfVEVTVF9URUVfU1RBUlRFRD1kb25lICR7U0hFTExfUEFUSH0gIiQwIiAiJEAiIDI+JjE7CiAJIGVjaG8gJD8gPiAkQkFTRS5leGl0KSB8IHRlZSAkQkFTRS5vdXQKIAl0ZXN0ICIkKGNhdCAkQkFTRS5leGl0KSIgPSAwCkBAIC05Miw2ICs5Miw3IEBACiAJcHJpbnQgam9pbigiXG4iLCBAdmFycyk7CiAnKQogdW5zZXQgWERHX0NPTkZJR19IT01FCit1bnNldCBHSVRQRVJMTElCCiBHSVRfQVVUSE9SX0VNQUlMPWF1dGhvckBleGFtcGxlLmNvbQogR0lUX0FVVEhPUl9OQU1FPSdBIFUgVGhvcicKIEdJVF9DT01NSVRURVJfRU1BSUw9Y29tbWl0dGVyQGV4YW1wbGUuY29tCkBAIC0xODQsNiArMTg1LDkgQEAKIAkJaGVscD10OyBzaGlmdCA7OwogCS12fC0tdnwtLXZlfC0tdmVyfC0tdmVyYnwtLXZlcmJvfC0tdmVyYm9zfC0tdmVyYm9zZSkKIAkJdmVyYm9zZT10OyBzaGlmdCA7OworCS0tdmVyYm9zZS1vbmx5PSopCisJCXZlcmJvc2Vfb25seT0kKGV4cHIgInokMSIgOiAneltePV0qPVwoLipcKScpCisJCXNoaWZ0IDs7CiAJLXF8LS1xfC0tcXV8LS1xdWl8LS1xdWllfC0tcXVpZXQpCiAJCSMgSWdub3JlIC0tcXVpZXQgdW5kZXIgYSBUQVA6Okhhcm5lc3MuIFNheWluZyBob3cgbWFueSB0ZXN0cwogCQkjIHBhc3NlZCB3aXRob3V0IHRoZSBvay9ub3Qgb2sgZGV0YWlscyBpcyBhbHdheXMgYW4gZXJyb3IuCkBAIC0xOTgsMTcgKzIwMiwzOSBAQAogCS0tdmFsZ3JpbmQ9KikKIAkJdmFsZ3JpbmQ9JChleHByICJ6JDEiIDogJ3pbXj1dKj1cKC4qXCknKQogCQlzaGlmdCA7OworCS0tdmFsZ3JpbmQtb25seT0qKQorCQl2YWxncmluZF9vbmx5PSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKKwkJc2hpZnQgOzsKKwktLXZhbGdyaW5kLXBhcmFsbGVsPSopCisJCXZhbGdyaW5kX3BhcmFsbGVsPSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKKwkJc2hpZnQgOzsKKwktLXZhbGdyaW5kLW9ubHktc3RyaWRlPSopCisJCXZhbGdyaW5kX29ubHlfc3RyaWRlPSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKKwkJc2hpZnQgOzsKKwktLXZhbGdyaW5kLW9ubHktb2Zmc2V0PSopCisJCXZhbGdyaW5kX29ubHlfb2Zmc2V0PSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKKwkJc2hpZnQgOzsKIAktLXRlZSkKIAkJc2hpZnQgOzsgIyB3YXMgaGFuZGxlZCBhbHJlYWR5CiAJLS1yb290PSopCiAJCXJvb3Q9JChleHByICJ6JDEiIDogJ3pbXj1dKj1cKC4qXCknKQogCQlzaGlmdCA7OworCS0tc3RhdHVzcHJlZml4PSopCisJCXN0YXR1c3ByZWZpeD0kKGV4cHIgInokMSIgOiAneltePV0qPVwoLipcKScpCisJCXNoaWZ0IDs7CiAJKikKIAkJZWNobyAiZXJyb3I6IHVua25vd24gdGVzdCBvcHRpb24gJyQxJyIgPiYyOyBleGl0IDEgOzsKIAllc2FjCiBkb25lCiAKLXRlc3QgLW4gIiR2YWxncmluZCIgJiYgdmVyYm9zZT10CitpZiB0ZXN0IC1uICIkdmFsZ3JpbmRfb25seSIgfHwgdGVzdCAtbiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIgordGhlbgorCXRlc3QgLXogIiR2YWxncmluZCIgJiYgdmFsZ3JpbmQ9bWVtY2hlY2sKKwl0ZXN0IC16ICIkdmVyYm9zZSIgJiYgdmVyYm9zZV9vbmx5PSIkdmFsZ3JpbmRfb25seSIKK2VsaWYgdGVzdCAtbiAiJHZhbGdyaW5kIgordGhlbgorCXZlcmJvc2U9dAorZmkKIAogaWYgdGVzdCAtbiAiJGNvbG9yIgogdGhlbgpAQCAtMzAzLDEyICszMjksMTIgQEAKIAogdGVzdF9va18gKCkgewogCXRlc3Rfc3VjY2Vzcz0kKCgkdGVzdF9zdWNjZXNzICsgMSkpCi0Jc2F5X2NvbG9yICIiICJvayAkdGVzdF9jb3VudCAtICRAIgorCXNheV9jb2xvciAiIiAiJHtzdGF0dXNwcmVmaXh9b2sgJHRlc3RfY291bnQgLSAkQCIKIH0KIAogdGVzdF9mYWlsdXJlXyAoKSB7CiAJdGVzdF9mYWlsdXJlPSQoKCR0ZXN0X2ZhaWx1cmUgKyAxKSkKLQlzYXlfY29sb3IgZXJyb3IgIm5vdCBvayAkdGVzdF9jb3VudCAtICQxIgorCXNheV9jb2xvciBlcnJvciAiJHtzdGF0dXNwcmVmaXh9bm90IG9rICR0ZXN0X2NvdW50IC0gJDEiCiAJc2hpZnQKIAllY2hvICIkQCIgfCBzZWQgLWUgJ3MvXi8jCS8nCiAJdGVzdCAiJGltbWVkaWF0ZSIgPSAiIiB8fCB7IEdJVF9FWElUX09LPXQ7IGV4aXQgMTsgfQpAQCAtMzE2LDE4ICszNDIsODMgQEAKIAogdGVzdF9rbm93bl9icm9rZW5fb2tfICgpIHsKIAl0ZXN0X2ZpeGVkPSQoKCR0ZXN0X2ZpeGVkKzEpKQotCXNheV9jb2xvciBlcnJvciAib2sgJHRlc3RfY291bnQgLSAkQCAjIFRPRE8ga25vd24gYnJlYWthZ2UgdmFuaXNoZWQiCisJc2F5X2NvbG9yIGVycm9yICIke3N0YXR1c3ByZWZpeH1vayAkdGVzdF9jb3VudCAtICRAICMgVE9ETyBrbm93biBicmVha2FnZSB2YW5pc2hlZCIKIH0KIAogdGVzdF9rbm93bl9icm9rZW5fZmFpbHVyZV8gKCkgewogCXRlc3RfYnJva2VuPSQoKCR0ZXN0X2Jyb2tlbisxKSkKLQlzYXlfY29sb3Igd2FybiAibm90IG9rICR0ZXN0X2NvdW50IC0gJEAgIyBUT0RPIGtub3duIGJyZWFrYWdlIgorCXNheV9jb2xvciB3YXJuICIke3N0YXR1c3ByZWZpeH1ub3Qgb2sgJHRlc3RfY291bnQgLSAkQCAjIFRPRE8ga25vd24gYnJlYWthZ2UiCiB9CiAKIHRlc3RfZGVidWcgKCkgewogCXRlc3QgIiRkZWJ1ZyIgPSAiIiB8fCBldmFsICIkMSIKIH0KIAorbWF0Y2hfcGF0dGVybl9saXN0ICgpIHsKKwlhcmc9IiQxIgorCXNoaWZ0CisJdGVzdCAteiAiJCoiICYmIHJldHVybiAxCisJZm9yIHBhdHRlcm5fCisJZG8KKwkJY2FzZSAiJGFyZyIgaW4KKwkJJHBhdHRlcm5fKQorCQkJcmV0dXJuIDAKKwkJZXNhYworCWRvbmUKKwlyZXR1cm4gMQorfQorCittYXliZV90ZWFyZG93bl92ZXJib3NlICgpIHsKKwl0ZXN0IC16ICIkdmVyYm9zZV9vbmx5IiAmJiByZXR1cm4KKwlleGVjIDQ+L2Rldi9udWxsIDM+L2Rldi9udWxsCisJdmVyYm9zZT0KK30KKworbGFzdF92ZXJib3NlPXQKK21heWJlX3NldHVwX3ZlcmJvc2UgKCkgeworCXRlc3QgLXogIiR2ZXJib3NlX29ubHkiICYmIHJldHVybgorCWlmIG1hdGNoX3BhdHRlcm5fbGlzdCAkdGVzdF9jb3VudCAkdmVyYm9zZV9vbmx5IHx8CisJCXsgdGVzdCAtbiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIiAmJgorCQlleHByICR0ZXN0X2NvdW50ICIlIiAkdmFsZ3JpbmRfb25seV9zdHJpZGUgLSAkdmFsZ3JpbmRfb25seV9vZmZzZXQgPSAwID4vZGV2L251bGw7IH0KKwl0aGVuCisJCWV4ZWMgND4mMiAzPiYxCisJCSMgRW1pdCBhIGRlbGltaXRpbmcgYmxhbmsgbGluZSB3aGVuIGdvaW5nIGZyb20KKwkJIyBub24tdmVyYm9zZSB0byB2ZXJib3NlLiAgV2l0aGluIHZlcmJvc2UgbW9kZSB0aGUKKwkJIyBkZWxpbWl0ZXIgaXMgcHJpbnRlZCBieSB0ZXN0X2V4cGVjdF8qLiAgVGhlIGNob2ljZQorCQkjIG9mIHRoZSBpbml0aWFsICRsYXN0X3ZlcmJvc2UgaXMgc3VjaCB0aGF0IGJlZm9yZQorCQkjIHRlc3QgMSwgd2UgZG8gbm90IHByaW50IGl0LgorCQl0ZXN0IC16ICIkbGFzdF92ZXJib3NlIiAmJiBlY2hvID4mMyAiIgorCQl2ZXJib3NlPXQKKwllbHNlCisJCWV4ZWMgND4vZGV2L251bGwgMz4vZGV2L251bGwKKwkJdmVyYm9zZT0KKwlmaQorCWxhc3RfdmVyYm9zZT0kdmVyYm9zZQorfQorCittYXliZV90ZWFyZG93bl92YWxncmluZCAoKSB7CisJdGVzdCAteiAiJEdJVF9WQUxHUklORCIgJiYgcmV0dXJuCisJR0lUX1ZBTEdSSU5EX0VOQUJMRUQ9Cit9CisKK21heWJlX3NldHVwX3ZhbGdyaW5kICgpIHsKKwl0ZXN0IC16ICIkR0lUX1ZBTEdSSU5EIiAmJiByZXR1cm4KKwlpZiB0ZXN0IC16ICIkdmFsZ3JpbmRfb25seSIgJiYgdGVzdCAteiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIgorCXRoZW4KKwkJR0lUX1ZBTEdSSU5EX0VOQUJMRUQ9dAorCQlyZXR1cm4KKwlmaQorCUdJVF9WQUxHUklORF9FTkFCTEVEPQorCWlmIG1hdGNoX3BhdHRlcm5fbGlzdCAkdGVzdF9jb3VudCAkdmFsZ3JpbmRfb25seQorCXRoZW4KKwkJR0lUX1ZBTEdSSU5EX0VOQUJMRUQ9dAorCWVsaWYgdGVzdCAtbiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIiAmJgorCQlleHByICR0ZXN0X2NvdW50ICIlIiAkdmFsZ3JpbmRfb25seV9zdHJpZGUgLSAkdmFsZ3JpbmRfb25seV9vZmZzZXQgPSAwID4vZGV2L251bGwKKwl0aGVuCisJCUdJVF9WQUxHUklORF9FTkFCTEVEPXQKKwlmaQorfQorCiB0ZXN0X2V2YWxfICgpIHsKIAkjIFRoaXMgaXMgYSBzZXBhcmF0ZSBmdW5jdGlvbiBiZWNhdXNlIHNvbWUgdGVzdHMgdXNlCiAJIyAicmV0dXJuIiB0byBlbmQgYSB0ZXN0X2V4cGVjdF9zdWNjZXNzIGJsb2NrIGVhcmx5LgpAQCAtMzM3LDggKzQyOCwxMCBAQAogdGVzdF9ydW5fICgpIHsKIAl0ZXN0X2NsZWFudXA9OgogCWV4cGVjdGluZ19mYWlsdXJlPSQyCisJc2V0dXBfbWFsbG9jX2NoZWNrCiAJdGVzdF9ldmFsXyAiJDEiCiAJZXZhbF9yZXQ9JD8KKwl0ZWFyZG93bl9tYWxsb2NfY2hlY2sKIAogCWlmIHRlc3QgLXogIiRpbW1lZGlhdGUiIHx8IHRlc3QgJGV2YWxfcmV0ID0gMCB8fCB0ZXN0IC1uICIkZXhwZWN0aW5nX2ZhaWx1cmUiCiAJdGhlbgpAQCAtMzUzLDE3ICs0NDYsMjQgQEAKIAlyZXR1cm4gIiRldmFsX3JldCIKIH0KIAotdGVzdF9za2lwICgpIHsKK3Rlc3Rfc3RhcnRfICgpIHsKIAl0ZXN0X2NvdW50PSQoKCR0ZXN0X2NvdW50KzEpKQorCW1heWJlX3NldHVwX3ZlcmJvc2UKKwltYXliZV9zZXR1cF92YWxncmluZAorfQorCit0ZXN0X2ZpbmlzaF8gKCkgeworCWVjaG8gPiYzICIiCisJbWF5YmVfdGVhcmRvd25fdmFsZ3JpbmQKKwltYXliZV90ZWFyZG93bl92ZXJib3NlCit9CisKK3Rlc3Rfc2tpcCAoKSB7CiAJdG9fc2tpcD0KLQlmb3Igc2twIGluICRHSVRfU0tJUF9URVNUUwotCWRvCi0JCWNhc2UgJHRoaXNfdGVzdC4kdGVzdF9jb3VudCBpbgotCQkkc2twKQotCQkJdG9fc2tpcD10Ci0JCQlicmVhawotCQllc2FjCi0JZG9uZQorCWlmIG1hdGNoX3BhdHRlcm5fbGlzdCAkdGhpc190ZXN0LiR0ZXN0X2NvdW50ICRHSVRfU0tJUF9URVNUUworCXRoZW4KKwkJdG9fc2tpcD10CisJZmkKIAlpZiB0ZXN0IC16ICIkdG9fc2tpcCIgJiYgdGVzdCAtbiAiJHRlc3RfcHJlcmVxIiAmJgogCSAgICEgdGVzdF9oYXZlX3ByZXJlcSAiJHRlc3RfcHJlcmVxIgogCXRoZW4KQEAgLTM3Nyw4ICs0NzcsOCBAQAogCQkJb2ZfcHJlcmVxPSIgb2YgJHRlc3RfcHJlcmVxIgogCQlmaQogCi0JCXNheV9jb2xvciBza2lwID4mMyAic2tpcHBpbmcgdGVzdDogJEAiCi0JCXNheV9jb2xvciBza2lwICJvayAkdGVzdF9jb3VudCAjIHNraXAgJDEgKG1pc3NpbmcgJG1pc3NpbmdfcHJlcmVxJHtvZl9wcmVyZXF9KSIKKwkJc2F5X2NvbG9yIHNraXAgPiYzICIke3N0YXR1c3ByZWZpeH1za2lwcGluZyB0ZXN0OiAkQCIKKwkJc2F5X2NvbG9yIHNraXAgIiR7c3RhdHVzcHJlZml4fW9rICR0ZXN0X2NvdW50ICMgc2tpcCAkMSAobWlzc2luZyAkbWlzc2luZ19wcmVyZXEke29mX3ByZXJlcX0pIgogCQk6IHRydWUKIAkJOzsKIAkqKQpAQCAtMzk1LDYgKzQ5NSw4IEBACiB0ZXN0X2RvbmUgKCkgewogCUdJVF9FWElUX09LPXQKIAorCSMgTm90ZTogdDAwMDAgcmVsaWVzIG9uICRIQVJORVNTX0FDVElWRSBkaXNhYmxpbmcgdGhlIC5jb3VudHMKKwkjIG91dHB1dCBmaWxlCiAJaWYgdGVzdCAteiAiJEhBUk5FU1NfQUNUSVZFIgogCXRoZW4KIAkJdGVzdF9yZXN1bHRzX2Rpcj0iJFRFU1RfT1VUUFVUX0RJUkVDVE9SWS90ZXN0LXJlc3VsdHMiCkBAIC00MTQsMTEgKzUxNiwxMSBAQAogCiAJaWYgdGVzdCAiJHRlc3RfZml4ZWQiICE9IDAKIAl0aGVuCi0JCXNheV9jb2xvciBlcnJvciAiIyAkdGVzdF9maXhlZCBrbm93biBicmVha2FnZShzKSB2YW5pc2hlZDsgcGxlYXNlIHVwZGF0ZSB0ZXN0KHMpIgorCQlzYXlfY29sb3IgZXJyb3IgIiR7c3RhdHVzcHJlZml4fSMgJHRlc3RfZml4ZWQga25vd24gYnJlYWthZ2UocykgdmFuaXNoZWQ7IHBsZWFzZSB1cGRhdGUgdGVzdChzKSIKIAlmaQogCWlmIHRlc3QgIiR0ZXN0X2Jyb2tlbiIgIT0gMAogCXRoZW4KLQkJc2F5X2NvbG9yIHdhcm4gIiMgc3RpbGwgaGF2ZSAkdGVzdF9icm9rZW4ga25vd24gYnJlYWthZ2UocykiCisJCXNheV9jb2xvciB3YXJuICIke3N0YXR1c3ByZWZpeH0jIHN0aWxsIGhhdmUgJHRlc3RfYnJva2VuIGtub3duIGJyZWFrYWdlKHMpIgogCWZpCiAJaWYgdGVzdCAiJHRlc3RfYnJva2VuIiAhPSAwIHx8IHRlc3QgIiR0ZXN0X2ZpeGVkIiAhPSAwCiAJdGhlbgpAQCAtNDQxLDkgKzU0Myw5IEBACiAJCXRoZW4KIAkJCWlmIHRlc3QgJHRlc3RfcmVtYWluaW5nIC1ndCAwCiAJCQl0aGVuCi0JCQkJc2F5X2NvbG9yIHBhc3MgIiMgcGFzc2VkIGFsbCAkbXNnIgorCQkJCXNheV9jb2xvciBwYXNzICIke3N0YXR1c3ByZWZpeH0jIHBhc3NlZCBhbGwgJG1zZyIKIAkJCWZpCi0JCQlzYXkgIjEuLiR0ZXN0X2NvdW50JHNraXBfYWxsIgorCQkJc2F5ICIke3N0YXR1c3ByZWZpeH0xLi4kdGVzdF9jb3VudCRza2lwX2FsbCIKIAkJZmkKIAogCQl0ZXN0IC1kICIkcmVtb3ZlX3RyYXNoIiAmJgpAQCAtNDU3LDggKzU1OSw4IEBACiAJKikKIAkJaWYgdGVzdCAkdGVzdF9leHRlcm5hbF9oYXNfdGFwIC1lcSAwCiAJCXRoZW4KLQkJCXNheV9jb2xvciBlcnJvciAiIyBmYWlsZWQgJHRlc3RfZmFpbHVyZSBhbW9uZyAkbXNnIgotCQkJc2F5ICIxLi4kdGVzdF9jb3VudCIKKwkJCXNheV9jb2xvciBlcnJvciAiJHtzdGF0dXNwcmVmaXh9IyBmYWlsZWQgJHRlc3RfZmFpbHVyZSBhbW9uZyAkbXNnIgorCQkJc2F5ICIke3N0YXR1c3ByZWZpeH0xLi4kdGVzdF9jb3VudCIKIAkJZmkKIAogCQlleGl0IDEgOzsKQEAgLTQ2Niw2ICs1NjgsOSBAQAogCWVzYWMKIH0KIAorCisjIFNldCB1cCBhIGRpcmVjdG9yeSB0aGF0IHdlIGNhbiBwdXQgaW4gUEFUSCB3aGljaCByZWRpcmVjdHMgYWxsIGdpdAorIyBjYWxscyB0byAndmFsZ3JpbmQgZ2l0IC4uLicuCiBpZiB0ZXN0IC1uICIkdmFsZ3JpbmQiCiB0aGVuCiAJbWFrZV9zeW1saW5rICgpIHsKQEAgLTUxMywzMSArNjE4LDQzIEBACiAJCW1ha2Vfc3ltbGluayAiJHN5bWxpbmtfdGFyZ2V0IiAiJEdJVF9WQUxHUklORC9iaW4vJGJhc2UiIHx8IGV4aXQKIAl9CiAKLQkjIG92ZXJyaWRlIGFsbCBnaXQgZXhlY3V0YWJsZXMgaW4gVEVTVF9ESVJFQ1RPUlkvLi4KLQlHSVRfVkFMR1JJTkQ9JFRFU1RfRElSRUNUT1JZL3ZhbGdyaW5kCi0JbWtkaXIgLXAgIiRHSVRfVkFMR1JJTkQiL2JpbgotCWZvciBmaWxlIGluICRHSVRfQlVJTERfRElSL2dpdCogJEdJVF9CVUlMRF9ESVIvdGVzdC0qCi0JZG8KLQkJbWFrZV92YWxncmluZF9zeW1saW5rICRmaWxlCi0JZG9uZQotCSMgc3BlY2lhbC1jYXNlIHRoZSBtZXJnZXRvb2xzIGxvYWRhYmxlcwotCW1ha2Vfc3ltbGluayAiJEdJVF9CVUlMRF9ESVIiL21lcmdldG9vbHMgIiRHSVRfVkFMR1JJTkQvYmluL21lcmdldG9vbHMiCi0JT0xESUZTPSRJRlMKLQlJRlM9OgotCWZvciBwYXRoIGluICRQQVRICi0JZG8KLQkJbHMgIiRwYXRoIi9naXQtKiAyPiAvZGV2L251bGwgfAotCQl3aGlsZSByZWFkIGZpbGUKKwkjIEluIHRoZSBjYXNlIG9mIC0tdmFsZ3JpbmQtcGFyYWxsZWwsIHdlIG9ubHkgbmVlZCB0byBkbyB0aGUKKwkjIHdyYXBwaW5nIG9uY2UsIGluIHRoZSBtYWluIHNjcmlwdC4gIFRoZSB3b3JrZXIgY2hpbGRyZW4gYWxsCisJIyBoYXZlICR2YWxncmluZF9vbmx5X3N0cmlkZSBzZXQsIHNvIHdlIGNhbiBza2lwIGJhc2VkIG9uIHRoYXQuCisJaWYgdGVzdCAteiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIgorCXRoZW4KKwkJIyBvdmVycmlkZSBhbGwgZ2l0IGV4ZWN1dGFibGVzIGluIFRFU1RfRElSRUNUT1JZLy4uCisJCUdJVF9WQUxHUklORD0kVEVTVF9ESVJFQ1RPUlkvdmFsZ3JpbmQKKwkJbWtkaXIgLXAgIiRHSVRfVkFMR1JJTkQiL2JpbgorCQlmb3IgZmlsZSBpbiAkR0lUX0JVSUxEX0RJUi9naXQqICRHSVRfQlVJTERfRElSL3Rlc3QtKgogCQlkbwotCQkJbWFrZV92YWxncmluZF9zeW1saW5rICIkZmlsZSIKKwkJCW1ha2VfdmFsZ3JpbmRfc3ltbGluayAkZmlsZQogCQlkb25lCi0JZG9uZQotCUlGUz0kT0xESUZTCisJCSMgc3BlY2lhbC1jYXNlIHRoZSBtZXJnZXRvb2xzIGxvYWRhYmxlcworCQltYWtlX3N5bWxpbmsgIiRHSVRfQlVJTERfRElSIi9tZXJnZXRvb2xzICIkR0lUX1ZBTEdSSU5EL2Jpbi9tZXJnZXRvb2xzIgorCQlPTERJRlM9JElGUworCQlJRlM9OgorCQlmb3IgcGF0aCBpbiAkUEFUSAorCQlkbworCQkJbHMgIiRwYXRoIi9naXQtKiAyPiAvZGV2L251bGwgfAorCQkJd2hpbGUgcmVhZCBmaWxlCisJCQlkbworCQkJCW1ha2VfdmFsZ3JpbmRfc3ltbGluayAiJGZpbGUiCisJCQlkb25lCisJCWRvbmUKKwkJSUZTPSRPTERJRlMKKwlmaQogCVBBVEg9JEdJVF9WQUxHUklORC9iaW46JFBBVEgKIAlHSVRfRVhFQ19QQVRIPSRHSVRfVkFMR1JJTkQvYmluCiAJZXhwb3J0IEdJVF9WQUxHUklORAogCUdJVF9WQUxHUklORF9NT0RFPSIkdmFsZ3JpbmQiCiAJZXhwb3J0IEdJVF9WQUxHUklORF9NT0RFCisJR0lUX1ZBTEdSSU5EX0VOQUJMRUQ9dAorCWlmIHRlc3QgLW4gIiR2YWxncmluZF9vbmx5IiB8fCB0ZXN0IC1uICIkdmFsZ3JpbmRfb25seV9zdHJpZGUiCisJdGhlbgorCQlHSVRfVkFMR1JJTkRfRU5BQkxFRD0KKwlmaQorCWV4cG9ydCBHSVRfVkFMR1JJTkRfRU5BQkxFRAogZWxpZiB0ZXN0IC1uICIkR0lUX1RFU1RfSU5TVEFMTEVEIgogdGhlbgogCUdJVF9FWEVDX1BBVEg9JCgkR0lUX1RFU1RfSU5TVEFMTEVEL2dpdCAtLWV4ZWMtcGF0aCkgIHx8CkBAIC02MjIsMjEgKzczOSw1MyBAQAogZWxzZQogCW1rZGlyIC1wICIkVFJBU0hfRElSRUNUT1JZIgogZmkKKworIyBHcm9zcyBoYWNrIHRvIHNwYXduIE4gc3ViLWluc3RhbmNlcyBvZiB0aGUgdGVzdHMgaW4gcGFyYWxsZWwsIGFuZAorIyBzdW1tYXJpemUgdGhlIHJlc3VsdHMuICBOb3RlIHRoYXQgaWYgdGhpcyBpcyBlbmFibGVkLCB0aGUgc2NyaXB0CisjIHRlcm1pbmF0ZXMgYXQgdGhlIGVuZCBvZiB0aGlzICdpZicgYmxvY2suCitpZiB0ZXN0IC1uICIkdmFsZ3JpbmRfcGFyYWxsZWwiCit0aGVuCisJZm9yIGkgaW4gJCh0ZXN0X3NlcSAxICR2YWxncmluZF9wYXJhbGxlbCkKKwlkbworCQlyb290PSIkVFJBU0hfRElSRUNUT1JZL3ZncGFyYWxsZWwtJGkiCisJCW1rZGlyICIkcm9vdCIKKwkJVEVTVF9PVVRQVVRfRElSRUNUT1JZPSIkcm9vdCIgXAorCQkJJHtTSEVMTF9QQVRIfSAiJDAiIFwKKwkJCS0tcm9vdD0iJHJvb3QiIC0tc3RhdHVzcHJlZml4PSJbJGldICIgXAorCQkJLS12YWxncmluZD0iJHZhbGdyaW5kIiBcCisJCQktLXZhbGdyaW5kLW9ubHktc3RyaWRlPSIkdmFsZ3JpbmRfcGFyYWxsZWwiIFwKKwkJCS0tdmFsZ3JpbmQtb25seS1vZmZzZXQ9IiRpIiAmCisJCXBpZHM9IiRwaWRzICQhIgorCWRvbmUKKwl0cmFwICJraWxsICRwaWRzIiBJTlQgVEVSTSBIVVAKKwl3YWl0ICRwaWRzCisJdHJhcCAtIElOVCBURVJNIEhVUAorCWZvciBpIGluICQodGVzdF9zZXEgMSAkdmFsZ3JpbmRfcGFyYWxsZWwpCisJZG8KKwkJcm9vdD0iJFRSQVNIX0RJUkVDVE9SWS92Z3BhcmFsbGVsLSRpIgorCQlldmFsICIkKGNhdCAiJHJvb3QvdGVzdC1yZXN1bHRzLyQoYmFzZW5hbWUgIiQwIiAuc2gpIi0qLmNvdW50cyB8CisJCQlzZWQgJ3MvXlwoW2Etel1bYS16XSpcKSBcKFswLTldWzAtOV0qXCkvaW5uZXJfXDE9XDIvJykiCisJCXRlc3RfY291bnQ9JChleHByICR0ZXN0X2NvdW50ICsgJGlubmVyX3RvdGFsKQorCQl0ZXN0X3N1Y2Nlc3M9JChleHByICR0ZXN0X3N1Y2Nlc3MgKyAkaW5uZXJfc3VjY2VzcykKKwkJdGVzdF9maXhlZD0kKGV4cHIgJHRlc3RfZml4ZWQgKyAkaW5uZXJfZml4ZWQpCisJCXRlc3RfYnJva2VuPSQoZXhwciAkdGVzdF9icm9rZW4gKyAkaW5uZXJfYnJva2VuKQorCQl0ZXN0X2ZhaWx1cmU9JChleHByICR0ZXN0X2ZhaWx1cmUgKyAkaW5uZXJfZmFpbGVkKQorCWRvbmUKKwl0ZXN0X2RvbmUKK2ZpCisKICMgVXNlIC1QIHRvIHJlc29sdmUgc3ltbGlua3MgaW4gb3VyIHdvcmtpbmcgZGlyZWN0b3J5IHNvIHRoYXQgdGhlIGN3ZAogIyBpbiBzdWJwcm9jZXNzZXMgbGlrZSBnaXQgZXF1YWxzIG91ciAkUFdEIChmb3IgcGF0aG5hbWUgY29tcGFyaXNvbnMpLgogY2QgLVAgIiRUUkFTSF9ESVJFQ1RPUlkiIHx8IGV4aXQgMQogCiB0aGlzX3Rlc3Q9JHswIyMqL30KIHRoaXNfdGVzdD0ke3RoaXNfdGVzdCUlLSp9Ci1mb3Igc2twIGluICRHSVRfU0tJUF9URVNUUwotZG8KLQljYXNlICIkdGhpc190ZXN0IiBpbgotCSRza3ApCi0JCXNheV9jb2xvciBpbmZvID4mMyAic2tpcHBpbmcgdGVzdCAkdGhpc190ZXN0IGFsdG9nZXRoZXIiCi0JCXNraXBfYWxsPSJza2lwIGFsbCB0ZXN0cyBpbiAkdGhpc190ZXN0IgotCQl0ZXN0X2RvbmUKLQllc2FjCi1kb25lCitpZiBtYXRjaF9wYXR0ZXJuX2xpc3QgIiR0aGlzX3Rlc3QiICRHSVRfU0tJUF9URVNUUwordGhlbgorCXNheV9jb2xvciBpbmZvID4mMyAic2tpcHBpbmcgdGVzdCAkdGhpc190ZXN0IGFsdG9nZXRoZXIiCisJc2tpcF9hbGw9InNraXAgYWxsIHRlc3RzIGluICR0aGlzX3Rlc3QiCisJdGVzdF9kb25lCitmaQogCiAjIFByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlICd5ZXMnIHV0aWxpdHkKIHllcyAoKSB7CkBAIC02NzYsNiArODI1LDcgQEAKIAl0ZXN0X3NldF9wcmVyZXEgTUlOR1cKIAl0ZXN0X3NldF9wcmVyZXEgTk9UX0NZR1dJTgogCXRlc3Rfc2V0X3ByZXJlcSBTRURfU1RSSVBTX0NSCisJdGVzdF9zZXRfcHJlcmVxIEdSRVBfU1RSSVBTX0NSCiAJOzsKICpDWUdXSU4qKQogCXRlc3Rfc2V0X3ByZXJlcSBQT1NJWFBFUk0KQEAgLTY4Myw2ICs4MzMsNyBAQAogCXRlc3Rfc2V0X3ByZXJlcSBOT1RfTUlOR1cKIAl0ZXN0X3NldF9wcmVyZXEgQ1lHV0lOCiAJdGVzdF9zZXRfcHJlcmVxIFNFRF9TVFJJUFNfQ1IKKwl0ZXN0X3NldF9wcmVyZXEgR1JFUF9TVFJJUFNfQ1IKIAk7OwogKikKIAl0ZXN0X3NldF9wcmVyZXEgUE9TSVhQRVJNCkBAIC03MzcsNyArODg4LDE0IEBACiAKIHRlc3RfbGF6eV9wcmVyZXEgUElQRSAnCiAJIyB0ZXN0IHdoZXRoZXIgdGhlIGZpbGVzeXN0ZW0gc3VwcG9ydHMgRklGT3MKLQlybSAtZiB0ZXN0ZmlmbyAmJiBta2ZpZm8gdGVzdGZpZm8KKwljYXNlICQodW5hbWUgLXMpIGluCisJQ1lHV0lOKikKKwkJZmFsc2UKKwkJOzsKKwkqKQorCQlybSAtZiB0ZXN0ZmlmbyAmJiBta2ZpZm8gdGVzdGZpZm8KKwkJOzsKKwllc2FjCiAnCiAKIHRlc3RfbGF6eV9wcmVyZXEgU1lNTElOS1MgJwpkaWZmIC0tZ2l0IGEvdC92YWxncmluZC9hbmFseXplLnNoIGIvdC92YWxncmluZC9hbmFseXplLnNoCmluZGV4IGQ4MTA1ZDkuLjJmZmM4MGYgMTAwNzU1Ci0tLSBhL3QvdmFsZ3JpbmQvYW5hbHl6ZS5zaAorKysgYi90L3ZhbGdyaW5kL2FuYWx5emUuc2gKQEAgLTEsNiArMSwxMCBAQAogIyEvYmluL3NoCiAKLW91dF9wcmVmaXg9JChkaXJuYW1lICIkMCIpLy4uL3Rlc3QtcmVzdWx0cy92YWxncmluZC5vdXQKKyMgR2V0IFRFU1RfT1VUUFVUX0RJUkVDVE9SWSBmcm9tIEdJVC1CVUlMRC1PUFRJT05TIGlmIGl0J3MgdGhlcmUuLi4KKy4gIiQoZGlybmFtZSAiJDAiKS8uLi8uLi9HSVQtQlVJTEQtT1BUSU9OUyIKKyMgLi4uIG90aGVyd2lzZSBzZXQgaXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUuCis6ICR7VEVTVF9PVVRQVVRfRElSRUNUT1JZPSQoZGlybmFtZSAiJDAiKS8uLn0KKwogb3V0cHV0PQogY291bnQ9MAogdG90YWxfY291bnQ9MApAQCAtMTE1LDcgKzExOSw3IEBACiAJZmluaXNoX291dHB1dAogfQogCi1mb3IgdGVzdF9zY3JpcHQgaW4gIiQoZGlybmFtZSAiJDAiKSIvLi4vdGVzdC1yZXN1bHRzLyoub3V0Citmb3IgdGVzdF9zY3JpcHQgaW4gIiRURVNUX09VVFBVVF9ESVJFQ1RPUlkiL3Rlc3QtcmVzdWx0cy8qLm91dAogZG8KIAloYW5kbGVfb25lICR0ZXN0X3NjcmlwdAogZG9uZQpkaWZmIC0tZ2l0IGEvdC92YWxncmluZC92YWxncmluZC5zaCBiL3QvdmFsZ3JpbmQvdmFsZ3JpbmQuc2gKaW5kZXggNmI4N2M5MS4uNDIxNTMwMyAxMDA3NTUKLS0tIGEvdC92YWxncmluZC92YWxncmluZC5zaAorKysgYi90L3ZhbGdyaW5kL3ZhbGdyaW5kLnNoCkBAIC00LDYgKzQsOSBAQAogCiBUT09MX09QVElPTlM9Jy0tbGVhay1jaGVjaz1ubycKIAordGVzdCAteiAiJEdJVF9WQUxHUklORF9FTkFCTEVEIiAmJgorZXhlYyAiJEdJVF9WQUxHUklORCIvLi4vLi4vIiRiYXNlIiAiJEAiCisKIGNhc2UgIiRHSVRfVkFMR1JJTkRfTU9ERSIgaW4KIG1lbWNoZWNrLWZhc3QpCiAJOzsKZGlmZiAtLWdpdCBhL3RlbXBsYXRlcy9ob29rcy0tcHJlLWNvbW1pdC5zYW1wbGUgYi90ZW1wbGF0ZXMvaG9va3MtLXByZS1jb21taXQuc2FtcGxlCmluZGV4IDE4YzQ4MjkuLjU4NmUzYmYgMTAwNzU1Ci0tLSBhL3RlbXBsYXRlcy9ob29rcy0tcHJlLWNvbW1pdC5zYW1wbGUKKysrIGIvdGVtcGxhdGVzL2hvb2tzLS1wcmUtY29tbWl0LnNhbXBsZQpAQCAtMTUsMTMgKzE1LDEzIEBACiAJYWdhaW5zdD00YjgyNWRjNjQyY2I2ZWI5YTA2MGU1NGJmOGQ2OTI4OGZiZWU0OTA0CiBmaQogCi0jIElmIHlvdSB3YW50IHRvIGFsbG93IG5vbi1hc2NpaSBmaWxlbmFtZXMgc2V0IHRoaXMgdmFyaWFibGUgdG8gdHJ1ZS4KKyMgSWYgeW91IHdhbnQgdG8gYWxsb3cgbm9uLUFTQ0lJIGZpbGVuYW1lcyBzZXQgdGhpcyB2YXJpYWJsZSB0byB0cnVlLgogYWxsb3dub25hc2NpaT0kKGdpdCBjb25maWcgaG9va3MuYWxsb3dub25hc2NpaSkKIAogIyBSZWRpcmVjdCBvdXRwdXQgdG8gc3RkZXJyLgogZXhlYyAxPiYyCiAKLSMgQ3Jvc3MgcGxhdGZvcm0gcHJvamVjdHMgdGVuZCB0byBhdm9pZCBub24tYXNjaWkgZmlsZW5hbWVzOyBwcmV2ZW50CisjIENyb3NzIHBsYXRmb3JtIHByb2plY3RzIHRlbmQgdG8gYXZvaWQgbm9uLUFTQ0lJIGZpbGVuYW1lczsgcHJldmVudAogIyB0aGVtIGZyb20gYmVpbmcgYWRkZWQgdG8gdGhlIHJlcG9zaXRvcnkuIFdlIGV4cGxvaXQgdGhlIGZhY3QgdGhhdCB0aGUKICMgcHJpbnRhYmxlIHJhbmdlIHN0YXJ0cyBhdCB0aGUgc3BhY2UgY2hhcmFjdGVyIGFuZCBlbmRzIHdpdGggdGlsZGUuCiBpZiBbICIkYWxsb3dub25hc2NpaSIgIT0gInRydWUiIF0gJiYKQEAgLTMxLDE4ICszMSwxNyBAQAogCXRlc3QgJChnaXQgZGlmZiAtLWNhY2hlZCAtLW5hbWUtb25seSAtLWRpZmYtZmlsdGVyPUEgLXogJGFnYWluc3QgfAogCSAgTENfQUxMPUMgdHIgLWQgJ1sgLX5dXDAnIHwgd2MgLWMpICE9IDAKIHRoZW4KLQllY2hvICJFcnJvcjogQXR0ZW1wdCB0byBhZGQgYSBub24tYXNjaWkgZmlsZSBuYW1lLiIKLQllY2hvCi0JZWNobyAiVGhpcyBjYW4gY2F1c2UgcHJvYmxlbXMgaWYgeW91IHdhbnQgdG8gd29yayIKLQllY2hvICJ3aXRoIHBlb3BsZSBvbiBvdGhlciBwbGF0Zm9ybXMuIgotCWVjaG8KLQllY2hvICJUbyBiZSBwb3J0YWJsZSBpdCBpcyBhZHZpc2FibGUgdG8gcmVuYW1lIHRoZSBmaWxlIC4uLiIKLQllY2hvCi0JZWNobyAiSWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIHlvdSBjYW4gZGlzYWJsZSB0aGlzIgotCWVjaG8gImNoZWNrIHVzaW5nOiIKLQllY2hvCi0JZWNobyAiICBnaXQgY29uZmlnIGhvb2tzLmFsbG93bm9uYXNjaWkgdHJ1ZSIKLQllY2hvCisJY2F0IDw8XEVPRgorRXJyb3I6IEF0dGVtcHQgdG8gYWRkIGEgbm9uLUFTQ0lJIGZpbGUgbmFtZS4KKworVGhpcyBjYW4gY2F1c2UgcHJvYmxlbXMgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIHBlb3BsZSBvbiBvdGhlciBwbGF0Zm9ybXMuCisKK1RvIGJlIHBvcnRhYmxlIGl0IGlzIGFkdmlzYWJsZSB0byByZW5hbWUgdGhlIGZpbGUuCisKK0lmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyB5b3UgY2FuIGRpc2FibGUgdGhpcyBjaGVjayB1c2luZzoKKworICBnaXQgY29uZmlnIGhvb2tzLmFsbG93bm9uYXNjaWkgdHJ1ZQorRU9GCiAJZXhpdCAxCiBmaQogCmRpZmYgLS1naXQgYS90ZW1wbGF0ZXMvaG9va3MtLXByZS1wdXNoLnNhbXBsZSBiL3RlbXBsYXRlcy9ob29rcy0tcHJlLXB1c2guc2FtcGxlCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMTVhYjZkOC4uMWYzYmNlYgotLS0gYS90ZW1wbGF0ZXMvaG9va3MtLXByZS1wdXNoLnNhbXBsZQorKysgYi90ZW1wbGF0ZXMvaG9va3MtLXByZS1wdXNoLnNhbXBsZQpAQCAtMzAsNiArMzAsNyBAQAogCWlmIFsgIiRsb2NhbF9zaGEiID0gJHo0MCBdCiAJdGhlbgogCQkjIEhhbmRsZSBkZWxldGUKKwkJOgogCWVsc2UKIAkJaWYgWyAiJHJlbW90ZV9zaGEiID0gJHo0MCBdCiAJCXRoZW4KZGlmZiAtLWdpdCBhL3Rlc3QtY2htdGltZS5jIGIvdGVzdC1jaG10aW1lLmMKaW5kZXggMDJiNDJiYS4uMGRmNzQ4NyAxMDA2NDQKLS0tIGEvdGVzdC1jaG10aW1lLmMKKysrIGIvdGVzdC1jaG10aW1lLmMKQEAgLTU2LDcgKzU2LDcgQEAKIAlyZXR1cm4gMTsKIH0KIAotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJc3RhdGljIGludCB2ZXJib3NlOwogCkBAIC04NCwxNSArODQsMTUgQEAKIAkJaWYgKHN0YXQoYXJndltpXSwgJnNiKSA8IDApIHsKIAkJCWZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHN0YXQgJXM6ICVzXG4iLAogCQkJICAgICAgICBhcmd2W2ldLCBzdHJlcnJvcihlcnJubykpOwotCQkJcmV0dXJuIC0xOworCQkJcmV0dXJuIDE7CiAJCX0KIAotI2lmZGVmIFdJTjMyCisjaWZkZWYgR0lUX1dJTkRPV1NfTkFUSVZFCiAJCWlmICghKHNiLnN0X21vZGUgJiBTX0lXVVNSKSAmJgogCQkJCWNobW9kKGFyZ3ZbaV0sIHNiLnN0X21vZGUgfCBTX0lXVVNSKSkgewogCQkJZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3QgbWFrZSB1c2VyLXdyaXRhYmxlICVzOiAlcyIsCiAJCQkJYXJndltpXSwgc3RyZXJyb3IoZXJybm8pKTsKLQkJCXJldHVybiAtMTsKKwkJCXJldHVybiAxOwogCQl9CiAjZW5kaWYKIApAQCAtMTA3LDcgKzEwNyw3IEBACiAJCWlmICh1dGIubW9kdGltZSAhPSBzYi5zdF9tdGltZSAmJiB1dGltZShhcmd2W2ldLCAmdXRiKSA8IDApIHsKIAkJCWZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIG1vZGlmeSB0aW1lIG9uICVzOiAlc1xuIiwKIAkJCSAgICAgICAgYXJndltpXSwgc3RyZXJyb3IoZXJybm8pKTsKLQkJCXJldHVybiAtMTsKKwkJCXJldHVybiAxOwogCQl9CiAJfQogCkBAIC0xMTUsNSArMTE1LDUgQEAKIAogdXNhZ2U6CiAJZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgJXNcbiIsIGFyZ3ZbMF0sIHVzYWdlX3N0cik7Ci0JcmV0dXJuIC0xOworCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvdGVzdC1kdW1wLWNhY2hlLXRyZWUuYyBiL3Rlc3QtZHVtcC1jYWNoZS10cmVlLmMKaW5kZXggYTZmZmRmMy4uNDdlYWI5NyAxMDA2NDQKLS0tIGEvdGVzdC1kdW1wLWNhY2hlLXRyZWUuYworKysgYi90ZXN0LWR1bXAtY2FjaGUtdHJlZS5jCkBAIC01OSw2ICs1OSw4IEBACiAJc3RydWN0IGNhY2hlX3RyZWUgKmFub3RoZXIgPSBjYWNoZV90cmVlKCk7CiAJaWYgKHJlYWRfY2FjaGUoKSA8IDApCiAJCWRpZSgidW5hYmxlIHRvIHJlYWQgaW5kZXggZmlsZSIpOwotCWNhY2hlX3RyZWVfdXBkYXRlKGFub3RoZXIsIGFjdGl2ZV9jYWNoZSwgYWN0aXZlX25yLCBXUklURV9UUkVFX0RSWV9SVU4pOworCWNhY2hlX3RyZWVfdXBkYXRlKGFub3RoZXIsCisJCQkgIChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqKWFjdGl2ZV9jYWNoZSwKKwkJCSAgYWN0aXZlX25yLCBXUklURV9UUkVFX0RSWV9SVU4pOwogCXJldHVybiBkdW1wX2NhY2hlX3RyZWUoYWN0aXZlX2NhY2hlX3RyZWUsIGFub3RoZXIsICIiKTsKIH0KZGlmZiAtLWdpdCBhL3Rlc3QtaW5kZXgtdmVyc2lvbi5jIGIvdGVzdC1pbmRleC12ZXJzaW9uLmMKaW5kZXggYmZhYWQ5ZS4uMDVkNDY5OSAxMDA2NDQKLS0tIGEvdGVzdC1pbmRleC12ZXJzaW9uLmMKKysrIGIvdGVzdC1pbmRleC12ZXJzaW9uLmMKQEAgLTEsNiArMSw2IEBACiAjaW5jbHVkZSAiY2FjaGUuaCIKIAotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBjYWNoZV9oZWFkZXIgaGRyOwogCWludCB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvdGVzdC1tZXJnZXNvcnQuYyBiL3Rlc3QtbWVyZ2Vzb3J0LmMKaW5kZXggM2YzODhiNC4uZWEzYjk1OSAxMDA2NDQKLS0tIGEvdGVzdC1tZXJnZXNvcnQuYworKysgYi90ZXN0LW1lcmdlc29ydC5jCkBAIC0yMiw3ICsyMiw3IEBACiAJcmV0dXJuIHN0cmNtcCh4LT50ZXh0LCB5LT50ZXh0KTsKIH0KIAotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBsaW5lICpsaW5lLCAqcCA9IE5VTEwsICpsaW5lcyA9IE5VTEw7CiAJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOwpkaWZmIC0tZ2l0IGEvdGVzdC1wYXJzZS1vcHRpb25zLmMgYi90ZXN0LXBhcnNlLW9wdGlvbnMuYwppbmRleCAzYzk1MTBhLi40MzRlOGI4IDEwMDY0NAotLS0gYS90ZXN0LXBhcnNlLW9wdGlvbnMuYworKysgYi90ZXN0LXBhcnNlLW9wdGlvbnMuYwpAQCAtMjksNyArMjksNyBAQAogCXJldHVybiAwOwogfQogCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY29uc3QgY2hhciAqcHJlZml4ID0gInByZWZpeC8iOwogCWNvbnN0IGNoYXIgKnVzYWdlW10gPSB7CkBAIC04MSw3ICs4MSw3IEBACiAJfTsKIAlpbnQgaTsKIAotCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YsIHByZWZpeCwgb3B0aW9ucywgdXNhZ2UsIDApOworCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIChjb25zdCBjaGFyICoqKWFyZ3YsIHByZWZpeCwgb3B0aW9ucywgdXNhZ2UsIDApOwogCiAJcHJpbnRmKCJib29sZWFuOiAlZFxuIiwgYm9vbGVhbik7CiAJcHJpbnRmKCJpbnRlZ2VyOiAldVxuIiwgaW50ZWdlcik7CmRpZmYgLS1naXQgYS90ZXN0LXBhdGgtdXRpbHMuYyBiL3Rlc3QtcGF0aC11dGlscy5jCmluZGV4IDAwOTJjYmYuLmJiOTc1ZTQgMTAwNjQ0Ci0tLSBhL3Rlc3QtcGF0aC11dGlscy5jCisrKyBiL3Rlc3QtcGF0aC11dGlscy5jCkBAIC0yOCw2ICsyOCwxOSBAQAogCXJldHVybiAxOwogfQogCitzdGF0aWMgdm9pZCBub3JtYWxpemVfYXJndl9zdHJpbmcoY29uc3QgY2hhciAqKnZhciwgY29uc3QgY2hhciAqaW5wdXQpCit7CisJaWYgKCFzdHJjbXAoaW5wdXQsICI8bnVsbD4iKSkKKwkJKnZhciA9IE5VTEw7CisJZWxzZSBpZiAoIXN0cmNtcChpbnB1dCwgIjxlbXB0eT4iKSkKKwkJKnZhciA9ICIiOworCWVsc2UKKwkJKnZhciA9IGlucHV0OworCisJaWYgKCp2YXIgJiYgKCoqdmFyID09ICc8JyB8fCAqKnZhciA9PSAnKCcpKQorCQlkaWUoIkJhZCB2YWx1ZTogJXNcbiIsIGlucHV0KTsKK30KKwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWlmIChhcmdjID09IDMgJiYgIXN0cmNtcChhcmd2WzFdLCAibm9ybWFsaXplX3BhdGhfY29weSIpKSB7CkBAIC0xMDMsNiArMTE2LDI1IEBACiAJCXJldHVybiAwOwogCX0KIAorCWlmIChhcmdjID09IDMgJiYgIXN0cmNtcChhcmd2WzFdLCAibWluZ3dfcGF0aCIpKSB7CisJCXB1dHMoYXJndlsyXSk7CisJCXJldHVybiAwOworCX0KKworCWlmIChhcmdjID09IDQgJiYgIXN0cmNtcChhcmd2WzFdLCAicmVsYXRpdmVfcGF0aCIpKSB7CisJCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKKwkJY29uc3QgY2hhciAqaW4sICpwcmVmaXgsICpyZWw7CisJCW5vcm1hbGl6ZV9hcmd2X3N0cmluZygmaW4sIGFyZ3ZbMl0pOworCQlub3JtYWxpemVfYXJndl9zdHJpbmcoJnByZWZpeCwgYXJndlszXSk7CisJCXJlbCA9IHJlbGF0aXZlX3BhdGgoaW4sIHByZWZpeCwgJnNiKTsKKwkJaWYgKCFyZWwpCisJCQlwdXRzKCIobnVsbCkiKTsKKwkJZWxzZQorCQkJcHV0cyhzdHJsZW4ocmVsKSA+IDAgPyByZWwgOiAiKGVtcHR5KSIpOworCQlzdHJidWZfcmVsZWFzZSgmc2IpOworCQlyZXR1cm4gMDsKKwl9CisKIAlmcHJpbnRmKHN0ZGVyciwgIiVzOiB1bmtub3duIGZ1bmN0aW9uIG5hbWU6ICVzXG4iLCBhcmd2WzBdLAogCQlhcmd2WzFdID8gYXJndlsxXSA6ICIodGhlcmUgd2FzIG5vbmUpIik7CiAJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS90ZXN0LXByaW8tcXVldWUuYyBiL3Rlc3QtcHJpby1xdWV1ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZTcyZjAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0LXByaW8tcXVldWUuYwpAQCAtMCwwICsxLDM5IEBACisjaW5jbHVkZSAiY2FjaGUuaCIKKyNpbmNsdWRlICJwcmlvLXF1ZXVlLmgiCisKK3N0YXRpYyBpbnQgaW50Y21wKGNvbnN0IHZvaWQgKnZhLCBjb25zdCB2b2lkICp2Yiwgdm9pZCAqZGF0YSkKK3sKKwljb25zdCBpbnQgKmEgPSB2YSwgKmIgPSB2YjsKKwlyZXR1cm4gKmEgLSAqYjsKK30KKworc3RhdGljIHZvaWQgc2hvdyhpbnQgKnYpCit7CisJaWYgKCF2KQorCQlwcmludGYoIk5VTExcbiIpOworCWVsc2UKKwkJcHJpbnRmKCIlZFxuIiwgKnYpOworCWZyZWUodik7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlzdHJ1Y3QgcHJpb19xdWV1ZSBwcSA9IHsgaW50Y21wIH07CisKKwl3aGlsZSAoKisrYXJndikgeworCQlpZiAoIXN0cmNtcCgqYXJndiwgImdldCIpKQorCQkJc2hvdyhwcmlvX3F1ZXVlX2dldCgmcHEpKTsKKwkJZWxzZSBpZiAoIXN0cmNtcCgqYXJndiwgImR1bXAiKSkgeworCQkJaW50ICp2OworCQkJd2hpbGUgKCh2ID0gcHJpb19xdWV1ZV9nZXQoJnBxKSkpCisJCQkgICAgICAgc2hvdyh2KTsKKwkJfQorCQllbHNlIHsKKwkJCWludCAqdiA9IG1hbGxvYyhzaXplb2YoKnYpKTsKKwkJCSp2ID0gYXRvaSgqYXJndik7CisJCQlwcmlvX3F1ZXVlX3B1dCgmcHEsIHYpOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90ZXN0LXJlYWQtY2FjaGUuYyBiL3Rlc3QtcmVhZC1jYWNoZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNWJjZjEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0LXJlYWQtY2FjaGUuYwpAQCAtMCwwICsxLDEzIEBACisjaW5jbHVkZSAiY2FjaGUuaCIKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlpbnQgaSwgY250ID0gMTsKKwlpZiAoYXJnYyA9PSAyKQorCQljbnQgPSBzdHJ0b2woYXJndlsxXSwgTlVMTCwgMCk7CisJZm9yIChpID0gMDsgaSA8IGNudDsgaSsrKSB7CisJCXJlYWRfY2FjaGUoKTsKKwkJZGlzY2FyZF9jYWNoZSgpOworCX0KKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3Rlc3Qtc3VicHJvY2Vzcy5jIGIvdGVzdC1zdWJwcm9jZXNzLmMKaW5kZXggZjJkNGMwZC4uOTM1MjVlYiAxMDA2NDQKLS0tIGEvdGVzdC1zdWJwcm9jZXNzLmMKKysrIGIvdGVzdC1zdWJwcm9jZXNzLmMKQEAgLTEsNyArMSw3IEBACiAjaW5jbHVkZSAiY2FjaGUuaCIKICNpbmNsdWRlICJydW4tY29tbWFuZC5oIgogCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IGNoaWxkX3Byb2Nlc3MgY3A7CiAJaW50IG5vZ2l0ID0gMDsKQEAgLTE1LDYgKzE1LDYgQEAKIAl9CiAJbWVtc2V0KCZjcCwgMCwgc2l6ZW9mKGNwKSk7CiAJY3AuZ2l0X2NtZCA9IDE7Ci0JY3AuYXJndiA9IGFyZ3YgKyAxOworCWNwLmFyZ3YgPSAoY29uc3QgY2hhciAqKilhcmd2ICsgMTsKIAlyZXR1cm4gcnVuX2NvbW1hbmQoJmNwKTsKIH0KZGlmZiAtLWdpdCBhL3RocmVhZC11dGlscy5jIGIvdGhyZWFkLXV0aWxzLmMKaW5kZXggN2Y0Yjc2YS4uOTczOTZhNyAxMDA2NDQKLS0tIGEvdGhyZWFkLXV0aWxzLmMKKysrIGIvdGhyZWFkLXV0aWxzLmMKQEAgLTI0LDcgKzI0LDcgQEAKIAlsb25nIG5jcHVzOwogI2VuZGlmCiAKLSNpZmRlZiBfV0lOMzIKKyNpZmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIAlTWVNURU1fSU5GTyBpbmZvOwogCUdldFN5c3RlbUluZm8oJmluZm8pOwogCmRpZmYgLS1naXQgYS90cmFjZS5jIGIvdHJhY2UuYwppbmRleCA1ZWMwZTNiLi4zZDc0NGQxIDEwMDY0NAotLS0gYS90cmFjZS5jCisrKyBiL3RyYWNlLmMKQEAgLTc1LDYgKzc1LDcgQEAKIAlzdHJidWZfcmVsZWFzZSgmYnVmKTsKIH0KIAorX19hdHRyaWJ1dGVfXygoZm9ybWF0IChwcmludGYsIDIsIDMpKSkKIHN0YXRpYyB2b2lkIHRyYWNlX3ByaW50Zl9rZXkoY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0IGFwOwpkaWZmIC0tZ2l0IGEvdHJhbnNwb3J0LWhlbHBlci5jIGIvdHJhbnNwb3J0LWhlbHBlci5jCmluZGV4IDUyMmQ3OTEuLjYzY2FiYzMgMTAwNjQ0Ci0tLSBhL3RyYW5zcG9ydC1oZWxwZXIuYworKysgYi90cmFuc3BvcnQtaGVscGVyLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlICJ0aHJlYWQtdXRpbHMuaCIKICNpbmNsdWRlICJzaWdjaGFpbi5oIgogI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKKyNpbmNsdWRlICJyZWZzLmgiCiAKIHN0YXRpYyBpbnQgZGVidWc7CiAKQEAgLTQ3LDcgKzQ4LDcgQEAKIAkJZGllX2Vycm5vKCJGdWxsIHdyaXRlIHRvIHJlbW90ZSBoZWxwZXIgZmFpbGVkIik7CiB9CiAKLXN0YXRpYyBpbnQgcmVjdmxpbmVfZmgoRklMRSAqaGVscGVyLCBzdHJ1Y3Qgc3RyYnVmICpidWZmZXIpCitzdGF0aWMgaW50IHJlY3ZsaW5lX2ZoKEZJTEUgKmhlbHBlciwgc3RydWN0IHN0cmJ1ZiAqYnVmZmVyLCBjb25zdCBjaGFyICpuYW1lKQogewogCXN0cmJ1Zl9yZXNldChidWZmZXIpOwogCWlmIChkZWJ1ZykKQEAgLTY1LDcgKzY2LDcgQEAKIAogc3RhdGljIGludCByZWN2bGluZShzdHJ1Y3QgaGVscGVyX2RhdGEgKmhlbHBlciwgc3RydWN0IHN0cmJ1ZiAqYnVmZmVyKQogewotCXJldHVybiByZWN2bGluZV9maChoZWxwZXItPm91dCwgYnVmZmVyKTsKKwlyZXR1cm4gcmVjdmxpbmVfZmgoaGVscGVyLT5vdXQsIGJ1ZmZlciwgaGVscGVyLT5uYW1lKTsKIH0KIAogc3RhdGljIHZvaWQgeGNoZ2xpbmUoc3RydWN0IGhlbHBlcl9kYXRhICpoZWxwZXIsIHN0cnVjdCBzdHJidWYgKmJ1ZmZlcikKQEAgLTIxNyw2ICsyMTgsOCBAQAogCQlmb3IgKGkgPSAwOyBpIDwgcmVmc3BlY19ucjsgaSsrKQogCQkJZnJlZSgoY2hhciAqKXJlZnNwZWNzW2ldKTsKIAkJZnJlZShyZWZzcGVjcyk7CisJfSBlbHNlIGlmIChkYXRhLT5pbXBvcnQgfHwgZGF0YS0+YmlkaV9pbXBvcnQgfHwgZGF0YS0+ZXhwb3J0KSB7CisJCXdhcm5pbmcoIlRoaXMgcmVtb3RlIGhlbHBlciBzaG91bGQgaW1wbGVtZW50IHJlZnNwZWMgY2FwYWJpbGl0eS4iKTsKIAl9CiAJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CiAJaWYgKGRlYnVnKQpAQCAtNDczLDcgKzQ3Niw3IEBACiAJICogd2VyZSBmZXRjaGluZy4KIAkgKgogCSAqIChJZiBubyAicmVmc3BlYyIgY2FwYWJpbGl0eSB3YXMgc3BlY2lmaWVkLCBmb3IgaGlzdG9yaWNhbAotCSAqIHJlYXNvbnMgd2UgZGVmYXVsdCB0byAqOiouKQorCSAqIHJlYXNvbnMgd2UgZGVmYXVsdCB0byB0aGUgZXF1aXZhbGVudCBvZiAqOiouKQogCSAqCiAJICogU3RvcmUgdGhlIHJlc3VsdCBpbiB0b19mZXRjaFtpXS5vbGRfc2hhMS4gIENhbGxlcnMgc3VjaAogCSAqIGFzICJnaXQgZmV0Y2giIGNhbiB1c2UgdGhlIHZhbHVlIHRvIHdyaXRlIGZlZWRiYWNrIHRvIHRoZQpAQCAtNTQwLDcgKzU0Myw3IEBACiAJCWdvdG8gZXhpdDsKIAogCXNlbmRsaW5lKGRhdGEsICZjbWRidWYpOwotCXJlY3ZsaW5lX2ZoKGlucHV0LCAmY21kYnVmKTsKKwlyZWN2bGluZV9maChpbnB1dCwgJmNtZGJ1ZiwgbmFtZSk7CiAJaWYgKCFzdHJjbXAoY21kYnVmLmJ1ZiwgIiIpKSB7CiAJCWRhdGEtPm5vX2Rpc2Nvbm5lY3RfcmVxID0gMTsKIAkJaWYgKGRlYnVnKQpAQCAtNjIyLDcgKzYyNSw3IEBACiAJcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgdm9pZCBwdXNoX3VwZGF0ZV9yZWZfc3RhdHVzKHN0cnVjdCBzdHJidWYgKmJ1ZiwKK3N0YXRpYyBpbnQgcHVzaF91cGRhdGVfcmVmX3N0YXR1cyhzdHJ1Y3Qgc3RyYnVmICpidWYsCiAJCQkJICAgc3RydWN0IHJlZiAqKnJlZiwKIAkJCQkgICBzdHJ1Y3QgcmVmICpyZW1vdGVfcmVmcykKIHsKQEAgLTY4OCw3ICs2OTEsNyBAQAogCQkqcmVmID0gZmluZF9yZWZfYnlfbmFtZShyZW1vdGVfcmVmcywgcmVmbmFtZSk7CiAJaWYgKCEqcmVmKSB7CiAJCXdhcm5pbmcoImhlbHBlciByZXBvcnRlZCB1bmV4cGVjdGVkIHN0YXR1cyBvZiAlcyIsIHJlZm5hbWUpOwotCQlyZXR1cm47CisJCXJldHVybiAxOwogCX0KIAogCWlmICgoKnJlZiktPnN0YXR1cyAhPSBSRUZfU1RBVFVTX05PTkUpIHsKQEAgLTY5NywxMSArNzAwLDEyIEBACiAJCSAqIHN0YXR1cyByZXBvcnRlZCBieSB0aGUgcmVtb3RlIGhlbHBlciBpZiB0aGUgbGF0dGVyIGlzICdubyBtYXRjaCcuCiAJCSAqLwogCQlpZiAoc3RhdHVzID09IFJFRl9TVEFUVVNfTk9ORSkKLQkJCXJldHVybjsKKwkJCXJldHVybiAxOwogCX0KIAogCSgqcmVmKS0+c3RhdHVzID0gc3RhdHVzOwogCSgqcmVmKS0+cmVtb3RlX3N0YXR1cyA9IG1zZzsKKwlyZXR1cm4gIShzdGF0dXMgPT0gUkVGX1NUQVRVU19PSyk7CiB9CiAKIHN0YXRpYyB2b2lkIHB1c2hfdXBkYXRlX3JlZnNfc3RhdHVzKHN0cnVjdCBoZWxwZXJfZGF0YSAqZGF0YSwKQEAgLTcxMCwxMSArNzE0LDI0IEBACiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKIAlzdHJ1Y3QgcmVmICpyZWYgPSByZW1vdGVfcmVmczsKIAlmb3IgKDs7KSB7CisJCWNoYXIgKnByaXZhdGU7CisKIAkJcmVjdmxpbmUoZGF0YSwgJmJ1Zik7CiAJCWlmICghYnVmLmxlbikKIAkJCWJyZWFrOwogCi0JCXB1c2hfdXBkYXRlX3JlZl9zdGF0dXMoJmJ1ZiwgJnJlZiwgcmVtb3RlX3JlZnMpOworCQlpZiAocHVzaF91cGRhdGVfcmVmX3N0YXR1cygmYnVmLCAmcmVmLCByZW1vdGVfcmVmcykpCisJCQljb250aW51ZTsKKworCQlpZiAoIWRhdGEtPnJlZnNwZWNzKQorCQkJY29udGludWU7CisKKwkJLyogcHJvcGFnYXRlIGJhY2sgdGhlIHVwZGF0ZSB0byB0aGUgcmVtb3RlIG5hbWVzcGFjZSAqLworCQlwcml2YXRlID0gYXBwbHlfcmVmc3BlY3MoZGF0YS0+cmVmc3BlY3MsIGRhdGEtPnJlZnNwZWNfbnIsIHJlZi0+bmFtZSk7CisJCWlmICghcHJpdmF0ZSkKKwkJCWNvbnRpbnVlOworCQl1cGRhdGVfcmVmKCJ1cGRhdGUgYnkgaGVscGVyIiwgcHJpdmF0ZSwgcmVmLT5uZXdfc2hhMSwgTlVMTCwgMCwgMCk7CisJCWZyZWUocHJpdmF0ZSk7CiAJfQogCXN0cmJ1Zl9yZWxlYXNlKCZidWYpOwogfQpAQCAtNzg5LDYgKzgwNiwxNCBAQAogCXN0cnVjdCBzdHJpbmdfbGlzdCByZXZsaXN0X2FyZ3MgPSBTVFJJTkdfTElTVF9JTklUX05PRFVQOwogCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CiAKKwlpZiAoIWRhdGEtPnJlZnNwZWNzKQorCQlkaWUoInJlbW90ZS1oZWxwZXIgZG9lc24ndCBzdXBwb3J0IHB1c2g7IHJlZnNwZWMgbmVlZGVkIik7CisKKwlpZiAoZmxhZ3MgJiBUUkFOU1BPUlRfUFVTSF9EUllfUlVOKSB7CisJCWlmIChzZXRfaGVscGVyX29wdGlvbih0cmFuc3BvcnQsICJkcnktcnVuIiwgInRydWUiKSAhPSAwKQorCQkJZGllKCJoZWxwZXIgJXMgZG9lcyBub3Qgc3VwcG9ydCBkcnktcnVuIiwgZGF0YS0+bmFtZSk7CisJfQorCiAJaGVscGVyID0gZ2V0X2hlbHBlcih0cmFuc3BvcnQpOwogCiAJd3JpdGVfY29uc3RhbnQoaGVscGVyLT5pbiwgImV4cG9ydFxuIik7CkBAIC03OTksOCArODI0LDkgQEAKIAkJY2hhciAqcHJpdmF0ZTsKIAkJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKIAotCQlpZiAoIWRhdGEtPnJlZnNwZWNzKQotCQkJY29udGludWU7CisJCWlmIChyZWYtPmRlbGV0aW9uKQorCQkJZGllKCJyZW1vdGUtaGVscGVycyBkbyBub3Qgc3VwcG9ydCByZWYgZGVsZXRpb24iKTsKKwogCQlwcml2YXRlID0gYXBwbHlfcmVmc3BlY3MoZGF0YS0+cmVmc3BlY3MsIGRhdGEtPnJlZnNwZWNfbnIsIHJlZi0+bmFtZSk7CiAJCWlmIChwcml2YXRlICYmICFnZXRfc2hhMShwcml2YXRlLCBzaGExKSkgewogCQkJc3RyYnVmX2FkZGYoJmJ1ZiwgIl4lcyIsIHByaXZhdGUpOwpAQCAtODA5LDEzICs4MzUsMTQgQEAKIAkJfQogCQlmcmVlKHByaXZhdGUpOwogCi0JCWlmIChyZWYtPmRlbGV0aW9uKSB7CisJCWlmIChyZWYtPmRlbGV0aW9uKQogCQkJZGllKCJyZW1vdGUtaGVscGVycyBkbyBub3Qgc3VwcG9ydCByZWYgZGVsZXRpb24iKTsKLQkJfQogCi0JCWlmIChyZWYtPnBlZXJfcmVmKQorCQlpZiAocmVmLT5wZWVyX3JlZikgeworCQkJaWYgKHN0cmNtcChyZWYtPnBlZXJfcmVmLT5uYW1lLCByZWYtPm5hbWUpKQorCQkJCWRpZSgicmVtb3RlLWhlbHBlcnMgZG8gbm90IHN1cHBvcnQgb2xkOm5ldyBzeW50YXgiKTsKIAkJCXN0cmluZ19saXN0X2FwcGVuZCgmcmV2bGlzdF9hcmdzLCByZWYtPnBlZXJfcmVmLT5uYW1lKTsKLQorCQl9CiAJfQogCiAJaWYgKGdldF9leHBvcnRlcih0cmFuc3BvcnQsICZleHBvcnRlciwgJnJldmxpc3RfYXJncykpCkBAIC05NTUsNiArOTgyLDcgQEAKICNkZWZpbmUgUEJVRkZFUlNJWkUgODE5MgogCiAvKiBQcmludCBiaWRpcmVjdGlvbmFsIHRyYW5zZmVyIGxvb3AgZGVidWcgbWVzc2FnZS4gKi8KK19fYXR0cmlidXRlX18oKGZvcm1hdCAocHJpbnRmLCAxLCAyKSkpCiBzdGF0aWMgdm9pZCB0cmFuc2Zlcl9kZWJ1Zyhjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0IGFyZ3M7CkBAIC0xMDQwLDcgKzEwNjgsNyBAQAogCQlyZXR1cm4gLTE7CiAJfSBlbHNlIGlmIChieXRlcyA9PSAwKSB7CiAJCXRyYW5zZmVyX2RlYnVnKCIlcyBFT0YgKHdpdGggJWkgYnl0ZXMgaW4gYnVmZmVyKSIsCi0JCQl0LT5zcmNfbmFtZSwgdC0+YnVmdXNlKTsKKwkJCXQtPnNyY19uYW1lLCAoaW50KXQtPmJ1ZnVzZSk7CiAJCXQtPnN0YXRlID0gU1NUQVRFX0ZMVVNISU5HOwogCX0gZWxzZSBpZiAoYnl0ZXMgPiAwKSB7CiAJCXQtPmJ1ZnVzZSArPSBieXRlczsKQEAgLTExMDQsNyArMTEzMiw3IEBACiAjaWZuZGVmIE5PX1BUSFJFQURTCiAKIC8qCi0gKiBKb2luIHRocmVhZCwgd2l0aCBhcHBvcmlhdGUgZXJyb3JzIG9uIGZhaWx1cmUuIE5hbWUgaXMgbmFtZSBmb3IgdGhlCisgKiBKb2luIHRocmVhZCwgd2l0aCBhcHByb3ByaWF0ZSBlcnJvcnMgb24gZmFpbHVyZS4gTmFtZSBpcyBuYW1lIGZvciB0aGUKICAqIHRocmVhZCAoZm9yIGVycm9yIG1lc3NhZ2VzKS4gUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIDEgb24gZmFpbHVyZS4KICAqLwogc3RhdGljIGludCB0bG9vcF9qb2luKHB0aHJlYWRfdCB0aHJlYWQsIGNvbnN0IGNoYXIgKm5hbWUpCkBAIC0xMTcwLDcgKzExOTgsNyBAQAogfQogCiAvKgotICogSm9pbiBwcm9jZXNzLCB3aXRoIGFwcG9yaWF0ZSBlcnJvcnMgb24gZmFpbHVyZS4gTmFtZSBpcyBuYW1lIGZvciB0aGUKKyAqIEpvaW4gcHJvY2Vzcywgd2l0aCBhcHByb3ByaWF0ZSBlcnJvcnMgb24gZmFpbHVyZS4gTmFtZSBpcyBuYW1lIGZvciB0aGUKICAqIHByb2Nlc3MgKGZvciBlcnJvciBtZXNzYWdlcykuIFJldHVybnMgMCBvbiBzdWNjZXNzLCAxIG9uIGZhaWx1cmUuCiAgKi8KIHN0YXRpYyBpbnQgdGxvb3Bfam9pbihwaWRfdCBwaWQsIGNvbnN0IGNoYXIgKm5hbWUpCmRpZmYgLS1naXQgYS90cmFuc3BvcnQuYyBiL3RyYW5zcG9ydC5jCmluZGV4IGJhNWQ4YWYuLmRlMjU1ODggMTAwNjQ0Ci0tLSBhL3RyYW5zcG9ydC5jCisrKyBiL3RyYW5zcG9ydC5jCkBAIC01MzQsNiArNTM0LDggQEAKIAlhcmdzLnF1aWV0ID0gKHRyYW5zcG9ydC0+dmVyYm9zZSA8IDApOwogCWFyZ3Mubm9fcHJvZ3Jlc3MgPSAhdHJhbnNwb3J0LT5wcm9ncmVzczsKIAlhcmdzLmRlcHRoID0gZGF0YS0+b3B0aW9ucy5kZXB0aDsKKwlhcmdzLmNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgPQorCQlkYXRhLT5vcHRpb25zLmNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQ7CiAKIAlpZiAoIWRhdGEtPmdvdF9yZW1vdGVfaGVhZHMpIHsKIAkJY29ubmVjdF9zZXR1cCh0cmFuc3BvcnQsIDAsIDApOwpAQCAtNTUxLDYgKzU1Myw4IEBACiAJCXJlZnMgPSBOVUxMOwogCWRhdGEtPmNvbm4gPSBOVUxMOwogCWRhdGEtPmdvdF9yZW1vdGVfaGVhZHMgPSAwOworCWRhdGEtPm9wdGlvbnMuc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCA9CisJCWFyZ3Muc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZDsKIAogCWZyZWVfcmVmcyhyZWZzX3RtcCk7CiAKQEAgLTg3MSw2ICs4NzUsOCBAQAogCXRyYW5zcG9ydC0+cHVzaF9yZWZzID0gZ2l0X3RyYW5zcG9ydF9wdXNoOwogCXRyYW5zcG9ydC0+ZGlzY29ubmVjdCA9IGRpc2Nvbm5lY3RfZ2l0OwogCXRyYW5zcG9ydC0+c21hcnRfb3B0aW9ucyA9ICYoZGF0YS0+b3B0aW9ucyk7CisKKwl0cmFuc3BvcnQtPmNhbm5vdF9yZXVzZSA9IDE7CiB9CiAKIHN0YXRpYyBpbnQgaXNfbG9jYWwoY29uc3QgY2hhciAqdXJsKQpAQCAtMTIyOCw3ICsxMjM0LDcgQEAKIAkJICogdGhlbiBsb2NhbCBhbmQgcmVtb3RlIHJlZnMgYXJlIGxpa2VseSB0byBzdGlsbCBiZSBlcXVhbC4KIAkJICogSnVzdCBmZWVkIHRoZW0gYWxsIHRvIHRoZSBmZXRjaCBtZXRob2QgaW4gdGhhdCBjYXNlLgogCQkgKiBUaGlzIGNvbmRpdGlvbiBzaG91bGRuJ3QgYmUgbWV0IGluIGEgbm9uLWRlZXBlbmluZyBmZXRjaAotCQkgKiAoc2VlIGJ1aWx0aW4tZmV0Y2guYzpxdWlja2ZldGNoKCkpLgorCQkgKiAoc2VlIGJ1aWx0aW4vZmV0Y2guYzpxdWlja2ZldGNoKCkpLgogCQkgKi8KIAkJaGVhZHMgPSB4bWFsbG9jKG5yX3JlZnMgKiBzaXplb2YoKmhlYWRzKSk7CiAJCWZvciAocm0gPSByZWZzOyBybTsgcm0gPSBybS0+bmV4dCkKZGlmZiAtLWdpdCBhL3RyYW5zcG9ydC5oIGIvdHJhbnNwb3J0LmgKaW5kZXggZmNiMWQyNS4uOTZlMGVkZSAxMDA2NDQKLS0tIGEvdHJhbnNwb3J0LmgKKysrIGIvdHJhbnNwb3J0LmgKQEAgLTgsNiArOCw4IEBACiAJdW5zaWduZWQgdGhpbiA6IDE7CiAJdW5zaWduZWQga2VlcCA6IDE7CiAJdW5zaWduZWQgZm9sbG93dGFncyA6IDE7CisJdW5zaWduZWQgY2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCA6IDE7CisJdW5zaWduZWQgc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCA6IDE7CiAJaW50IGRlcHRoOwogCWNvbnN0IGNoYXIgKnVwbG9hZHBhY2s7CiAJY29uc3QgY2hhciAqcmVjZWl2ZXBhY2s7CkBAIC0yNSw2ICsyNywxMiBAQAogCSAqLwogCXVuc2lnbmVkIGdvdF9yZW1vdGVfcmVmcyA6IDE7CiAKKwkvKgorCSAqIFRyYW5zcG9ydHMgdGhhdCBjYWxsIHRha2Utb3ZlciBkZXN0cm95cyB0aGUgZGF0YSBzcGVjaWZpYyB0bworCSAqIHRoZSB0cmFuc3BvcnQgdHlwZSB3aGlsZSBkb2luZyBzbywgYW5kIGNhbm5vdCBiZSByZXVzZWQuCisJICovCisJdW5zaWduZWQgY2Fubm90X3JldXNlIDogMTsKKwogCS8qKgogCSAqIFJldHVybnMgMCBpZiBzdWNjZXNzZnVsLCBwb3NpdGl2ZSBpZiB0aGUgb3B0aW9uIGlzIG5vdAogCSAqIHJlY29nbml6ZWQgb3IgaXMgaW5hcHBsaWNhYmxlLCBhbmQgbmVnYXRpdmUgaWYgdGhlIG9wdGlvbgpAQCAtMTY4LDcgKzE3Niw3IEBACiBpbnQgdHJhbnNwb3J0X2hlbHBlcl9pbml0KHN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydCwgY29uc3QgY2hhciAqbmFtZSk7CiBpbnQgYmlkaXJlY3Rpb25hbF90cmFuc2Zlcl9sb29wKGludCBpbnB1dCwgaW50IG91dHB1dCk7CiAKLS8qIGNvbW1vbiBtZXRob2RzIHVzZWQgYnkgdHJhbnNwb3J0LmMgYW5kIGJ1aWx0aW4tc2VuZC1wYWNrLmMgKi8KKy8qIGNvbW1vbiBtZXRob2RzIHVzZWQgYnkgdHJhbnNwb3J0LmMgYW5kIGJ1aWx0aW4vc2VuZC1wYWNrLmMgKi8KIHZvaWQgdHJhbnNwb3J0X3ZlcmlmeV9yZW1vdGVfbmFtZXMoaW50IG5yX2hlYWRzLCBjb25zdCBjaGFyICoqaGVhZHMpOwogCiB2b2lkIHRyYW5zcG9ydF91cGRhdGVfdHJhY2tpbmdfcmVmKHN0cnVjdCByZW1vdGUgKnJlbW90ZSwgc3RydWN0IHJlZiAqcmVmLCBpbnQgdmVyYm9zZSk7CmRpZmYgLS1naXQgYS90cmVlLXdhbGsuYyBiL3RyZWUtd2Fsay5jCmluZGV4IDZlMzBlZjkuLmM2MjYxMzUgMTAwNjQ0Ci0tLSBhL3RyZWUtd2Fsay5jCisrKyBiL3RyZWUtd2Fsay5jCkBAIC0zMjMsNyArMzIzLDYgQEAKIAogaW50IHRyYXZlcnNlX3RyZWVzKGludCBuLCBzdHJ1Y3QgdHJlZV9kZXNjICp0LCBzdHJ1Y3QgdHJhdmVyc2VfaW5mbyAqaW5mbykKIHsKLQlpbnQgcmV0ID0gMDsKIAlpbnQgZXJyb3IgPSAwOwogCXN0cnVjdCBuYW1lX2VudHJ5ICplbnRyeSA9IHhtYWxsb2MobipzaXplb2YoKmVudHJ5KSk7CiAJaW50IGk7CkBAIC0zNDEsNiArMzQwLDcgQEAKIAkJc3RyYnVmX3NldGxlbigmYmFzZSwgaW5mby0+cGF0aGxlbik7CiAJfQogCWZvciAoOzspIHsKKwkJaW50IHRyZWVzX3VzZWQ7CiAJCXVuc2lnbmVkIGxvbmcgbWFzaywgZGlybWFzazsKIAkJY29uc3QgY2hhciAqZmlyc3QgPSBOVUxMOwogCQlpbnQgZmlyc3RfbGVuID0gMDsKQEAgLTQwNCwxNSArNDA0LDE0IEBACiAJCWlmIChpbnRlcmVzdGluZyA8IDApCiAJCQlicmVhazsKIAkJaWYgKGludGVyZXN0aW5nKSB7Ci0JCQlyZXQgPSBpbmZvLT5mbihuLCBtYXNrLCBkaXJtYXNrLCBlbnRyeSwgaW5mbyk7Ci0JCQlpZiAocmV0IDwgMCkgewotCQkJCWVycm9yID0gcmV0OworCQkJdHJlZXNfdXNlZCA9IGluZm8tPmZuKG4sIG1hc2ssIGRpcm1hc2ssIGVudHJ5LCBpbmZvKTsKKwkJCWlmICh0cmVlc191c2VkIDwgMCkgeworCQkJCWVycm9yID0gdHJlZXNfdXNlZDsKIAkJCQlpZiAoIWluZm8tPnNob3dfYWxsX2Vycm9ycykKIAkJCQkJYnJlYWs7CiAJCQl9Ci0JCQltYXNrICY9IHJldDsKKwkJCW1hc2sgJj0gdHJlZXNfdXNlZDsKIAkJfQotCQlyZXQgPSAwOwogCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogCQkJaWYgKG1hc2sgJiAoMXVsIDw8IGkpKQogCQkJCXVwZGF0ZV9leHRlbmRlZF9lbnRyeSh0eCArIGksIGVudHJ5ICsgaSk7CmRpZmYgLS1naXQgYS90cmVlLXdhbGsuaCBiL3RyZWUtd2Fsay5oCmluZGV4IDJiZjBkYjkuLmFlMDRiNjQgMTAwNjQ0Ci0tLSBhL3RyZWUtd2Fsay5oCisrKyBiL3RyZWUtd2Fsay5oCkBAIC00Niw3ICs0Niw3IEBACiAJaW50IHBhdGhsZW47CiAJc3RydWN0IHBhdGhzcGVjICpwYXRoc3BlYzsKIAotCXVuc2lnbmVkIGxvbmcgY29uZmxpY3RzOworCXVuc2lnbmVkIGxvbmcgZGZfY29uZmxpY3RzOwogCXRyYXZlcnNlX2NhbGxiYWNrX3QgZm47CiAJdm9pZCAqZGF0YTsKIAlpbnQgc2hvd19hbGxfZXJyb3JzOwpkaWZmIC0tZ2l0IGEvdHJlZS5jIGIvdHJlZS5jCmluZGV4IDYyZmVkNjMuLmMwZTU2OGMgMTAwNjQ0Ci0tLSBhL3RyZWUuYworKysgYi90cmVlLmMKQEAgLTE1OSw3ICsxNTksNyBAQAogCSAqIHNvcnQgYXQgdGhlIGVuZC4KIAkgKi8KIAlmb3IgKGkgPSAwOyAhZm4gJiYgaSA8IGFjdGl2ZV9ucjsgaSsrKSB7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CiAJCWlmIChjZV9zdGFnZShjZSkgPT0gc3RhZ2UpCiAJCQlmbiA9IHJlYWRfb25lX2VudHJ5OwogCX0KZGlmZiAtLWdpdCBhL3VucGFjay10cmVlcy5jIGIvdW5wYWNrLXRyZWVzLmMKaW5kZXggZWRlNDI5OS4uYmYwMTcxNyAxMDA2NDQKLS0tIGEvdW5wYWNrLXRyZWVzLmMKKysrIGIvdW5wYWNrLXRyZWVzLmMKQEAgLTExNiwxNCArMTE2LDIwIEBACiAJCQlBRERfQ0FDSEVfT0tfVE9fQUREIHwgQUREX0NBQ0hFX09LX1RPX1JFUExBQ0UpOwogfQogCi1zdGF0aWMgdm9pZCBhZGRfZW50cnkoc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAotCXVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcikKK3N0YXRpYyBzdHJ1Y3QgY2FjaGVfZW50cnkgKmR1cF9lbnRyeShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQogewogCXVuc2lnbmVkIGludCBzaXplID0gY2Vfc2l6ZShjZSk7CiAJc3RydWN0IGNhY2hlX2VudHJ5ICpuZXcgPSB4bWFsbG9jKHNpemUpOwogCiAJbWVtY3B5KG5ldywgY2UsIHNpemUpOwotCWRvX2FkZF9lbnRyeShvLCBuZXcsIHNldCwgY2xlYXIpOworCXJldHVybiBuZXc7Cit9CisKK3N0YXRpYyB2b2lkIGFkZF9lbnRyeShzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8sCisJCSAgICAgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCSAgICAgIHVuc2lnbmVkIGludCBzZXQsIHVuc2lnbmVkIGludCBjbGVhcikKK3sKKwlkb19hZGRfZW50cnkobywgZHVwX2VudHJ5KGNlKSwgc2V0LCBjbGVhcik7CiB9CiAKIC8qCkBAIC0xNzMsNyArMTc5LDcgQEAKICAqIFVubGluayB0aGUgbGFzdCBjb21wb25lbnQgYW5kIHNjaGVkdWxlIHRoZSBsZWFkaW5nIGRpcmVjdG9yaWVzIGZvcgogICogcmVtb3ZhbCwgc3VjaCB0aGF0IGVtcHR5IGRpcmVjdG9yaWVzIGdldCByZW1vdmVkLgogICovCi1zdGF0aWMgdm9pZCB1bmxpbmtfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKK3N0YXRpYyB2b2lkIHVubGlua19lbnRyeShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQogewogCWlmICghY2hlY2tfbGVhZGluZ19wYXRoKGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSkpCiAJCXJldHVybjsKQEAgLTE5Myw3ICsxOTksNyBAQAogCiAJaWYgKG8tPnVwZGF0ZSAmJiBvLT52ZXJib3NlX3VwZGF0ZSkgewogCQlmb3IgKHRvdGFsID0gY250ID0gMDsgY250IDwgaW5kZXgtPmNhY2hlX25yOyBjbnQrKykgewotCQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGluZGV4LT5jYWNoZVtjbnRdOworCQkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGluZGV4LT5jYWNoZVtjbnRdOwogCQkJaWYgKGNlLT5jZV9mbGFncyAmIChDRV9VUERBVEUgfCBDRV9XVF9SRU1PVkUpKQogCQkJCXRvdGFsKys7CiAJCX0KQEAgLTIwNiw3ICsyMTIsNyBAQAogCWlmIChvLT51cGRhdGUpCiAJCWdpdF9hdHRyX3NldF9kaXJlY3Rpb24oR0lUX0FUVFJfQ0hFQ0tPVVQsICZvLT5yZXN1bHQpOwogCWZvciAoaSA9IDA7IGkgPCBpbmRleC0+Y2FjaGVfbnI7IGkrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gaW5kZXgtPmNhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gaW5kZXgtPmNhY2hlW2ldOwogCiAJCWlmIChjZS0+Y2VfZmxhZ3MgJiBDRV9XVF9SRU1PVkUpIHsKIAkJCWRpc3BsYXlfcHJvZ3Jlc3MocHJvZ3Jlc3MsICsrY250KTsKQEAgLTIzNSw4ICsyNDEsMTEgQEAKIAlyZXR1cm4gZXJycyAhPSAwOwogfQogCi1zdGF0aWMgaW50IHZlcmlmeV91cHRvZGF0ZV9zcGFyc2Uoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKTsKLXN0YXRpYyBpbnQgdmVyaWZ5X2Fic2VudF9zcGFyc2Uoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyk7CitzdGF0aWMgaW50IHZlcmlmeV91cHRvZGF0ZV9zcGFyc2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJCQkgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyk7CitzdGF0aWMgaW50IHZlcmlmeV9hYnNlbnRfc3BhcnNlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkJZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMsCisJCQkJc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKTsKIAogc3RhdGljIGludCBhcHBseV9zcGFyc2VfY2hlY2tvdXQoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewpAQCAtMjkxLDcgKzMwMCw4IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IGNhbGxfdW5wYWNrX2ZuKHN0cnVjdCBjYWNoZV9lbnRyeSAqKnNyYywgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQorc3RhdGljIGlubGluZSBpbnQgY2FsbF91bnBhY2tfZm4oY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnNyYywKKwkJCQkgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewogCWludCByZXQgPSBvLT5mbihzcmMsIG8pOwogCWlmIChyZXQgPiAwKQpAQCAtMzIwLDcgKzMzMCw3IEBACiAJCWluZGV4LT5jYWNoZVtpXS0+Y2VfZmxhZ3MgJj0gfihDRV9VTlBBQ0tFRCB8IENFX0FEREVEIHwgQ0VfTkVXX1NLSVBfV09SS1RSRUUpOwogfQogCi1zdGF0aWMgaW50IGxvY2F0ZV9pbl9zcmNfaW5kZXgoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKK3N0YXRpYyBpbnQgbG9jYXRlX2luX3NyY19pbmRleChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAogCQkJICAgICAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlzdHJ1Y3QgaW5kZXhfc3RhdGUgKmluZGV4ID0gby0+c3JjX2luZGV4OwpAQCAtMzY2LDcgKzM3Niw3IEBACiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZF9zYW1lX3VubWVyZ2VkKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCitzdGF0aWMgdm9pZCBhZGRfc2FtZV91bm1lcmdlZChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAogCQkJICAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewogCXN0cnVjdCBpbmRleF9zdGF0ZSAqaW5kZXggPSBvLT5zcmNfaW5kZXg7CkBAIC0zODgsNyArMzk4LDcgQEAKIHN0YXRpYyBpbnQgdW5wYWNrX2luZGV4X2VudHJ5KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCiAJCQkgICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpzcmNbTUFYX1VOUEFDS19UUkVFUyArIDFdID0geyBOVUxMLCB9OworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqc3JjW01BWF9VTlBBQ0tfVFJFRVMgKyAxXSA9IHsgTlVMTCwgfTsKIAlpbnQgcmV0OwogCiAJc3JjWzBdID0gY2U7CkBAIC00NTQsNyArNDY0LDcgQEAKIAluZXdpbmZvLnBhdGhzcGVjID0gaW5mby0+cGF0aHNwZWM7CiAJbmV3aW5mby5uYW1lID0gKnA7CiAJbmV3aW5mby5wYXRobGVuICs9IHRyZWVfZW50cnlfbGVuKHApICsgMTsKLQluZXdpbmZvLmNvbmZsaWN0cyB8PSBkZl9jb25mbGljdHM7CisJbmV3aW5mby5kZl9jb25mbGljdHMgfD0gZGZfY29uZmxpY3RzOwogCiAJZm9yIChpID0gMDsgaSA8IG47IGkrKywgZGlybWFzayA+Pj0gMSkgewogCQljb25zdCB1bnNpZ25lZCBjaGFyICpzaGExID0gTlVMTDsKQEAgLTU1NSwxNyArNTY1LDEyIEBACiB7CiAJaW50IGk7CiAJc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvID0gaW5mby0+ZGF0YTsKLQl1bnNpZ25lZCBsb25nIGNvbmZsaWN0czsKKwl1bnNpZ25lZCBsb25nIGNvbmZsaWN0cyA9IGluZm8tPmRmX2NvbmZsaWN0cyB8IGRpcm1hc2s7CiAKIAkvKiBEbyB3ZSBoYXZlICpvbmx5KiBkaXJlY3Rvcmllcz8gTm90aGluZyB0byBkbyAqLwogCWlmIChtYXNrID09IGRpcm1hc2sgJiYgIXNyY1swXSkKIAkJcmV0dXJuIDA7CiAKLQljb25mbGljdHMgPSBpbmZvLT5jb25mbGljdHM7Ci0JaWYgKG8tPm1lcmdlKQotCQljb25mbGljdHMgPj49IDE7Ci0JY29uZmxpY3RzIHw9IGRpcm1hc2s7Ci0KIAkvKgogCSAqIE9rLCB3ZSd2ZSBmaWxsZWQgaW4gdXAgdG8gYW55IHBvdGVudGlhbCBpbmRleCBlbnRyeSBpbiBzcmNbMF0sCiAJICogbm93IGRvIHRoZSByZXN0LgpAQCAtNTkwLDggKzU5NSwxNiBAQAogCQlzcmNbaSArIG8tPm1lcmdlXSA9IGNyZWF0ZV9jZV9lbnRyeShpbmZvLCBuYW1lcyArIGksIHN0YWdlKTsKIAl9CiAKLQlpZiAoby0+bWVyZ2UpCi0JCXJldHVybiBjYWxsX3VucGFja19mbihzcmMsIG8pOworCWlmIChvLT5tZXJnZSkgeworCQlpbnQgcmMgPSBjYWxsX3VucGFja19mbigoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKilzcmMsCisJCQkJCW8pOworCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CisJCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gc3JjW2kgKyBvLT5tZXJnZV07CisJCQlpZiAoY2UgIT0gby0+ZGZfY29uZmxpY3RfZW50cnkpCisJCQkJZnJlZShjZSk7CisJCX0KKwkJcmV0dXJuIHJjOworCX0KIAogCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspCiAJCWlmIChzcmNbaV0gJiYgc3JjW2ldICE9IG8tPmRmX2NvbmZsaWN0X2VudHJ5KQpAQCAtNjM3LDcgKzY1MCw3IEBACiAJaW50IHBfbGVuID0gdHJlZV9lbnRyeV9sZW4ocCk7CiAKIAlmb3IgKHBvcyA9IG8tPmNhY2hlX2JvdHRvbTsgcG9zIDwgaW5kZXgtPmNhY2hlX25yOyBwb3MrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gaW5kZXgtPmNhY2hlW3Bvc107CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBpbmRleC0+Y2FjaGVbcG9zXTsKIAkJY29uc3QgY2hhciAqY2VfbmFtZSwgKmNlX3NsYXNoOwogCQlpbnQgY21wLCBjZV9sZW47CiAKQEAgLTc4OSwxMyArODAyLDYgQEAKIAogCS8qIE5vdyBoYW5kbGUgYW55IGRpcmVjdG9yaWVzLi4gKi8KIAlpZiAoZGlybWFzaykgewotCQl1bnNpZ25lZCBsb25nIGNvbmZsaWN0cyA9IG1hc2sgJiB+ZGlybWFzazsKLQkJaWYgKG8tPm1lcmdlKSB7Ci0JCQljb25mbGljdHMgPDw9IDE7Ci0JCQlpZiAoc3JjWzBdKQotCQkJCWNvbmZsaWN0cyB8PSAxOwotCQl9Ci0KIAkJLyogc3BlY2lhbCBjYXNlOiAiZGlmZi1pbmRleCAtLWNhY2hlZCIgbG9va2luZyBhdCBhIHRyZWUgKi8KIAkJaWYgKG8tPmRpZmZfaW5kZXhfY2FjaGVkICYmCiAJCSAgICBuID09IDEgJiYgZGlybWFzayA9PSAxICYmIFNfSVNESVIobmFtZXMtPm1vZGUpKSB7CkBAIC04MTQsNyArODIwLDcgQEAKIAkJCX0KIAkJfQogCi0JCWlmICh0cmF2ZXJzZV90cmVlc19yZWN1cnNpdmUobiwgZGlybWFzaywgY29uZmxpY3RzLAorCQlpZiAodHJhdmVyc2VfdHJlZXNfcmVjdXJzaXZlKG4sIGRpcm1hc2ssIG1hc2sgJiB+ZGlybWFzaywKIAkJCQkJICAgICBuYW1lcywgaW5mbykgPCAwKQogCQkJcmV0dXJuIC0xOwogCQlyZXR1cm4gbWFzazsKQEAgLTk5NSw3ICsxMDAxLDkgQEAKIAkJICAgICAgIHNlbGVjdF9mbGFnLCBza2lwX3d0X2ZsYWcsIGVsKTsKIH0KIAotc3RhdGljIGludCB2ZXJpZnlfYWJzZW50KHN0cnVjdCBjYWNoZV9lbnRyeSAqLCBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcywgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICopOworc3RhdGljIGludCB2ZXJpZnlfYWJzZW50KGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqLAorCQkJIGVudW0gdW5wYWNrX3RyZWVzX2Vycm9yX3R5cGVzLAorCQkJIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqKTsKIC8qCiAgKiBOLXdheSBtZXJnZSAibGVuIiB0cmVlcy4gIFJldHVybnMgMCBvbiBzdWNjZXNzLCAtMSBvbiBmYWlsdXJlIHRvIG1hbmlwdWxhdGUgdGhlCiAgKiByZXN1bHRpbmcgaW5kZXgsIC0yIG9uIGZhaWx1cmUgdG8gcmVmbGVjdCB0aGUgY2hhbmdlcyB0byB0aGUgd29yayB0cmVlLgpAQCAtMTE2NSwxMiArMTE3MywxMyBAQAogCiAvKiBIZXJlIGNvbWUgdGhlIG1lcmdlIGZ1bmN0aW9ucyAqLwogCi1zdGF0aWMgaW50IHJlamVjdF9tZXJnZShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IHJlamVjdF9tZXJnZShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkJc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewogCXJldHVybiBhZGRfcmVqZWN0ZWRfcGF0aChvLCBFUlJPUl9XT1VMRF9PVkVSV1JJVEUsIGNlLT5uYW1lKTsKIH0KIAotc3RhdGljIGludCBzYW1lKHN0cnVjdCBjYWNoZV9lbnRyeSAqYSwgc3RydWN0IGNhY2hlX2VudHJ5ICpiKQorc3RhdGljIGludCBzYW1lKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqYSwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpiKQogewogCWlmICghIWEgIT0gISFiKQogCQlyZXR1cm4gMDsKQEAgLTExODcsOSArMTE5Niw5IEBACiAgKiBXaGVuIGEgQ0UgZ2V0cyB0dXJuZWQgaW50byBhbiB1bm1lcmdlZCBlbnRyeSwgd2UKICAqIHdhbnQgaXQgdG8gYmUgdXAtdG8tZGF0ZQogICovCi1zdGF0aWMgaW50IHZlcmlmeV91cHRvZGF0ZV8xKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCi0JCQkJICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvLAotCQkJCSAgIGVudW0gdW5wYWNrX3RyZWVzX2Vycm9yX3R5cGVzIGVycm9yX3R5cGUpCitzdGF0aWMgaW50IHZlcmlmeV91cHRvZGF0ZV8xKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkgICAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbywKKwkJCSAgICAgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgZXJyb3JfdHlwZSkKIHsKIAlzdHJ1Y3Qgc3RhdCBzdDsKIApAQCAtMTIyOCw3ICsxMjM3LDcgQEAKIAkJYWRkX3JlamVjdGVkX3BhdGgobywgZXJyb3JfdHlwZSwgY2UtPm5hbWUpOwogfQogCi1zdGF0aWMgaW50IHZlcmlmeV91cHRvZGF0ZShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorc3RhdGljIGludCB2ZXJpZnlfdXB0b2RhdGUoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKIAkJCSAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlpZiAoIW8tPnNraXBfc3BhcnNlX2NoZWNrb3V0ICYmIChjZS0+Y2VfZmxhZ3MgJiBDRV9ORVdfU0tJUF9XT1JLVFJFRSkpCkBAIC0xMjM2LDEzICsxMjQ1LDE0IEBACiAJcmV0dXJuIHZlcmlmeV91cHRvZGF0ZV8xKGNlLCBvLCBFUlJPUl9OT1RfVVBUT0RBVEVfRklMRSk7CiB9CiAKLXN0YXRpYyBpbnQgdmVyaWZ5X3VwdG9kYXRlX3NwYXJzZShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorc3RhdGljIGludCB2ZXJpZnlfdXB0b2RhdGVfc3BhcnNlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCiAJCQkJICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJcmV0dXJuIHZlcmlmeV91cHRvZGF0ZV8xKGNlLCBvLCBFUlJPUl9TUEFSU0VfTk9UX1VQVE9EQVRFX0ZJTEUpOwogfQogCi1zdGF0aWMgdm9pZCBpbnZhbGlkYXRlX2NlX3BhdGgoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQorc3RhdGljIHZvaWQgaW52YWxpZGF0ZV9jZV9wYXRoKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkgICAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewogCWlmIChjZSkKIAkJY2FjaGVfdHJlZV9pbnZhbGlkYXRlX3BhdGgoby0+c3JjX2luZGV4LT5jYWNoZV90cmVlLCBjZS0+bmFtZSk7CkBAIC0xMjU1LDE2ICsxMjY1LDE2IEBACiAgKiBDdXJyZW50bHksIGdpdCBkb2VzIG5vdCBjaGVja291dCBzdWJwcm9qZWN0cyBkdXJpbmcgYSBzdXBlcnByb2plY3QKICAqIGNoZWNrb3V0LCBzbyBpdCBpcyBub3QgZ29pbmcgdG8gb3ZlcndyaXRlIGFueXRoaW5nLgogICovCi1zdGF0aWMgaW50IHZlcmlmeV9jbGVhbl9zdWJtb2R1bGUoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKLQkJCQkgICAgICBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBlcnJvcl90eXBlLAotCQkJCSAgICAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK3N0YXRpYyBpbnQgdmVyaWZ5X2NsZWFuX3N1Ym1vZHVsZShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkJCSAgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgZXJyb3JfdHlwZSwKKwkJCQkgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB2ZXJpZnlfY2xlYW5fc3ViZGlyZWN0b3J5KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCi0JCQkJICAgICAgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgZXJyb3JfdHlwZSwKLQkJCQkgICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IHZlcmlmeV9jbGVhbl9zdWJkaXJlY3RvcnkoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJCQkgICAgIGVudW0gdW5wYWNrX3RyZWVzX2Vycm9yX3R5cGVzIGVycm9yX3R5cGUsCisJCQkJICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJLyoKIAkgKiB3ZSBhcmUgYWJvdXQgdG8gZXh0cmFjdCAiY2UtPm5hbWUiOyB3ZSB3b3VsZCBub3Qgd2FudCB0byBsb3NlCkBAIC0xMzQzLDE4ICsxMzUzLDE4IEBACiAgKi8KIHN0YXRpYyBpbnQgaWNhc2VfZXhpc3RzKHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbywgY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwgc3RydWN0IHN0YXQgKnN0KQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqc3JjOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqc3JjOwogCiAJc3JjID0gaW5kZXhfbmFtZV9leGlzdHMoby0+c3JjX2luZGV4LCBuYW1lLCBsZW4sIDEpOwogCXJldHVybiBzcmMgJiYgIWllX21hdGNoX3N0YXQoby0+c3JjX2luZGV4LCBzcmMsIHN0LCBDRV9NQVRDSF9JR05PUkVfVkFMSUR8Q0VfTUFUQ0hfSUdOT1JFX1NLSVBfV09SS1RSRUUpOwogfQogCiBzdGF0aWMgaW50IGNoZWNrX29rX3RvX3JlbW92ZShjb25zdCBjaGFyICpuYW1lLCBpbnQgbGVuLCBpbnQgZHR5cGUsCi0JCQkgICAgICBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RhdCAqc3QsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RhdCAqc3QsCiAJCQkgICAgICBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBlcnJvcl90eXBlLAogCQkJICAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqcmVzdWx0OworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqcmVzdWx0OwogCiAJLyoKIAkgKiBJdCBtYXkgYmUgdGhhdCB0aGUgJ2xzdGF0KCknIHN1Y2NlZWRlZCBldmVuIHRob3VnaApAQCAtMTQwNSw5ICsxNDE1LDkgQEAKICAqIFdlIGRvIG5vdCB3YW50IHRvIHJlbW92ZSBvciBvdmVyd3JpdGUgYSB3b3JraW5nIHRyZWUgZmlsZSB0aGF0CiAgKiBpcyBub3QgdHJhY2tlZCwgdW5sZXNzIGl0IGlzIGlnbm9yZWQuCiAgKi8KLXN0YXRpYyBpbnQgdmVyaWZ5X2Fic2VudF8xKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCi0JCQkJIGVudW0gdW5wYWNrX3RyZWVzX2Vycm9yX3R5cGVzIGVycm9yX3R5cGUsCi0JCQkJIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK3N0YXRpYyBpbnQgdmVyaWZ5X2Fic2VudF8xKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkgICBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBlcnJvcl90eXBlLAorCQkJICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewogCWludCBsZW47CiAJc3RydWN0IHN0YXQgc3Q7CkBAIC0xNDQwLDcgKzE0NTAsNyBAQAogCX0KIH0KIAotc3RhdGljIGludCB2ZXJpZnlfYWJzZW50KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCitzdGF0aWMgaW50IHZlcmlmeV9hYnNlbnQoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKIAkJCSBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBlcnJvcl90eXBlLAogCQkJIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKQEAgLTE0NDksOSArMTQ1OSw5IEBACiAJcmV0dXJuIHZlcmlmeV9hYnNlbnRfMShjZSwgZXJyb3JfdHlwZSwgbyk7CiB9CiAKLXN0YXRpYyBpbnQgdmVyaWZ5X2Fic2VudF9zcGFyc2Uoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKLQkJCSBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBlcnJvcl90eXBlLAotCQkJIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK3N0YXRpYyBpbnQgdmVyaWZ5X2Fic2VudF9zcGFyc2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJCQllbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBlcnJvcl90eXBlLAorCQkJCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAllbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBvcnBoYW5lZF9lcnJvciA9IGVycm9yX3R5cGU7CiAJaWYgKG9ycGhhbmVkX2Vycm9yID09IEVSUk9SX1dPVUxEX0xPU0VfVU5UUkFDS0VEX09WRVJXUklUVEVOKQpAQCAtMTQ2MCwxMCArMTQ3MCwxMiBAQAogCXJldHVybiB2ZXJpZnlfYWJzZW50XzEoY2UsIG9ycGhhbmVkX2Vycm9yLCBvKTsKIH0KIAotc3RhdGljIGludCBtZXJnZWRfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICptZXJnZSwgc3RydWN0IGNhY2hlX2VudHJ5ICpvbGQsCi0JCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK3N0YXRpYyBpbnQgbWVyZ2VkX2VudHJ5KGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCwKKwkJCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlpbnQgdXBkYXRlID0gQ0VfVVBEQVRFOworCXN0cnVjdCBjYWNoZV9lbnRyeSAqbWVyZ2UgPSBkdXBfZW50cnkoY2UpOwogCiAJaWYgKCFvbGQpIHsKIAkJLyoKQEAgLTE0ODEsOCArMTQ5MywxMSBAQAogCQl1cGRhdGUgfD0gQ0VfQURERUQ7CiAJCW1lcmdlLT5jZV9mbGFncyB8PSBDRV9ORVdfU0tJUF9XT1JLVFJFRTsKIAotCQlpZiAodmVyaWZ5X2Fic2VudChtZXJnZSwgRVJST1JfV09VTERfTE9TRV9VTlRSQUNLRURfT1ZFUldSSVRURU4sIG8pKQorCQlpZiAodmVyaWZ5X2Fic2VudChtZXJnZSwKKwkJCQkgIEVSUk9SX1dPVUxEX0xPU0VfVU5UUkFDS0VEX09WRVJXUklUVEVOLCBvKSkgeworCQkJZnJlZShtZXJnZSk7CiAJCQlyZXR1cm4gLTE7CisJCX0KIAkJaW52YWxpZGF0ZV9jZV9wYXRoKG1lcmdlLCBvKTsKIAl9IGVsc2UgaWYgKCEob2xkLT5jZV9mbGFncyAmIENFX0NPTkZMSUNURUQpKSB7CiAJCS8qCkBAIC0xNDk2LDggKzE1MTEsMTAgQEAKIAkJCWNvcHlfY2FjaGVfZW50cnkobWVyZ2UsIG9sZCk7CiAJCQl1cGRhdGUgPSAwOwogCQl9IGVsc2UgewotCQkJaWYgKHZlcmlmeV91cHRvZGF0ZShvbGQsIG8pKQorCQkJaWYgKHZlcmlmeV91cHRvZGF0ZShvbGQsIG8pKSB7CisJCQkJZnJlZShtZXJnZSk7CiAJCQkJcmV0dXJuIC0xOworCQkJfQogCQkJLyogTWlncmF0ZSBvbGQgZmxhZ3Mgb3ZlciAqLwogCQkJdXBkYXRlIHw9IG9sZC0+Y2VfZmxhZ3MgJiAoQ0VfU0tJUF9XT1JLVFJFRSB8IENFX05FV19TS0lQX1dPUktUUkVFKTsKIAkJCWludmFsaWRhdGVfY2VfcGF0aChvbGQsIG8pOwpAQCAtMTUxMCwxMiArMTUyNywxMyBAQAogCQlpbnZhbGlkYXRlX2NlX3BhdGgob2xkLCBvKTsKIAl9CiAKLQlhZGRfZW50cnkobywgbWVyZ2UsIHVwZGF0ZSwgQ0VfU1RBR0VNQVNLKTsKKwlkb19hZGRfZW50cnkobywgbWVyZ2UsIHVwZGF0ZSwgQ0VfU1RBR0VNQVNLKTsKIAlyZXR1cm4gMTsKIH0KIAotc3RhdGljIGludCBkZWxldGVkX2VudHJ5KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkLAotCQlzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IGRlbGV0ZWRfZW50cnkoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJCSBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCwKKwkJCSBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJLyogRGlkIGl0IGV4aXN0IGluIHRoZSBpbmRleD8gKi8KIAlpZiAoIW9sZCkgewpAQCAtMTUzMCw3ICsxNTQ4LDggQEAKIAlyZXR1cm4gMTsKIH0KIAotc3RhdGljIGludCBrZWVwX2VudHJ5KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK3N0YXRpYyBpbnQga2VlcF9lbnRyeShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkgICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJYWRkX2VudHJ5KG8sIGNlLCAwLCAwKTsKIAlyZXR1cm4gMTsKQEAgLTE1NTIsMTEgKzE1NzEsMTIgQEAKIH0KICNlbmRpZgogCi1pbnQgdGhyZWV3YXlfbWVyZ2Uoc3RydWN0IGNhY2hlX2VudHJ5ICoqc3RhZ2VzLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitpbnQgdGhyZWV3YXlfbWVyZ2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnN0YWdlcywKKwkJICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqaW5kZXg7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpoZWFkOwotCXN0cnVjdCBjYWNoZV9lbnRyeSAqcmVtb3RlID0gc3RhZ2VzW28tPmhlYWRfaWR4ICsgMV07CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICppbmRleDsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmhlYWQ7CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpyZW1vdGUgPSBzdGFnZXNbby0+aGVhZF9pZHggKyAxXTsKIAlpbnQgY291bnQ7CiAJaW50IGhlYWRfbWF0Y2ggPSAwOwogCWludCByZW1vdGVfbWF0Y2ggPSAwOwpAQCAtMTY0MSw3ICsxNjYxLDcgQEAKIAlpZiAoby0+YWdncmVzc2l2ZSkgewogCQlpbnQgaGVhZF9kZWxldGVkID0gIWhlYWQ7CiAJCWludCByZW1vdGVfZGVsZXRlZCA9ICFyZW1vdGU7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBOVUxMOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gTlVMTDsKIAogCQlpZiAoaW5kZXgpCiAJCQljZSA9IGluZGV4OwpAQCAtMTcyNCwxMSArMTc0NCwxMiBAQAogICogImNhcnJ5IGZvcndhcmQiIHJ1bGUsIHBsZWFzZSBzZWUgPERvY3VtZW50YXRpb24vZ2l0LXJlYWQtdHJlZS50eHQ+LgogICoKICAqLwotaW50IHR3b3dheV9tZXJnZShzdHJ1Y3QgY2FjaGVfZW50cnkgKipzcmMsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK2ludCB0d293YXlfbWVyZ2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnNyYywKKwkJIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmN1cnJlbnQgPSBzcmNbMF07Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpvbGR0cmVlID0gc3JjWzFdOwotCXN0cnVjdCBjYWNoZV9lbnRyeSAqbmV3dHJlZSA9IHNyY1syXTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmN1cnJlbnQgPSBzcmNbMF07CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpvbGR0cmVlID0gc3JjWzFdOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqbmV3dHJlZSA9IHNyY1syXTsKIAogCWlmIChvLT5tZXJnZV9zaXplICE9IDIpCiAJCXJldHVybiBlcnJvcigiQ2Fubm90IGRvIGEgdHdvd2F5IG1lcmdlIG9mICVkIHRyZWVzIiwKQEAgLTE3OTAsMTEgKzE4MTEsMTEgQEAKICAqIEtlZXAgdGhlIGluZGV4IGVudHJpZXMgYXQgc3RhZ2UwLCBjb2xsYXBzZSBzdGFnZTEgYnV0IG1ha2Ugc3VyZQogICogc3RhZ2UwIGRvZXMgbm90IGhhdmUgYW55dGhpbmcgdGhlcmUuCiAgKi8KLWludCBiaW5kX21lcmdlKHN0cnVjdCBjYWNoZV9lbnRyeSAqKnNyYywKLQkJc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQoraW50IGJpbmRfbWVyZ2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnNyYywKKwkgICAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkID0gc3JjWzBdOwotCXN0cnVjdCBjYWNoZV9lbnRyeSAqYSA9IHNyY1sxXTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCA9IHNyY1swXTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmEgPSBzcmNbMV07CiAKIAlpZiAoby0+bWVyZ2Vfc2l6ZSAhPSAxKQogCQlyZXR1cm4gZXJyb3IoIkNhbm5vdCBkbyBhIGJpbmQgbWVyZ2Ugb2YgJWQgdHJlZXMiLApAQCAtMTgxNCwxMCArMTgzNSwxMSBAQAogICogVGhlIHJ1bGUgaXM6CiAgKiAtIHRha2UgdGhlIHN0YXQgaW5mb3JtYXRpb24gZnJvbSBzdGFnZTAsIHRha2UgdGhlIGRhdGEgZnJvbSBzdGFnZTEKICAqLwotaW50IG9uZXdheV9tZXJnZShzdHJ1Y3QgY2FjaGVfZW50cnkgKipzcmMsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK2ludCBvbmV3YXlfbWVyZ2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnNyYywKKwkJIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCA9IHNyY1swXTsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmEgPSBzcmNbMV07CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpvbGQgPSBzcmNbMF07CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICphID0gc3JjWzFdOwogCiAJaWYgKG8tPm1lcmdlX3NpemUgIT0gMSkKIAkJcmV0dXJuIGVycm9yKCJDYW5ub3QgZG8gYSBvbmV3YXkgbWVyZ2Ugb2YgJWQgdHJlZXMiLApkaWZmIC0tZ2l0IGEvdW5wYWNrLXRyZWVzLmggYi91bnBhY2stdHJlZXMuaAppbmRleCA1ZTQzMmY1Li4zNmE3M2E2IDEwMDY0NAotLS0gYS91bnBhY2stdHJlZXMuaAorKysgYi91bnBhY2stdHJlZXMuaApAQCAtOCw3ICs4LDcgQEAKIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9uczsKIHN0cnVjdCBleGNsdWRlX2xpc3Q7CiAKLXR5cGVkZWYgaW50ICgqbWVyZ2VfZm5fdCkoc3RydWN0IGNhY2hlX2VudHJ5ICoqc3JjLAordHlwZWRlZiBpbnQgKCptZXJnZV9mbl90KShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqc3JjLAogCQlzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm9wdGlvbnMpOwogCiBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyB7CkBAIC03Nyw5ICs3NywxMyBAQAogZXh0ZXJuIGludCB1bnBhY2tfdHJlZXModW5zaWduZWQgbiwgc3RydWN0IHRyZWVfZGVzYyAqdCwKIAkJc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvcHRpb25zKTsKIAotaW50IHRocmVld2F5X21lcmdlKHN0cnVjdCBjYWNoZV9lbnRyeSAqKnN0YWdlcywgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKTsKLWludCB0d293YXlfbWVyZ2Uoc3RydWN0IGNhY2hlX2VudHJ5ICoqc3JjLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pOwotaW50IGJpbmRfbWVyZ2Uoc3RydWN0IGNhY2hlX2VudHJ5ICoqc3JjLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pOwotaW50IG9uZXdheV9tZXJnZShzdHJ1Y3QgY2FjaGVfZW50cnkgKipzcmMsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyk7CitpbnQgdGhyZWV3YXlfbWVyZ2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnN0YWdlcywKKwkJICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKTsKK2ludCB0d293YXlfbWVyZ2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnNyYywKKwkJIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyk7CitpbnQgYmluZF9tZXJnZShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqc3JjLAorCSAgICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pOworaW50IG9uZXdheV9tZXJnZShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqc3JjLAorCQkgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS91cGxvYWQtcGFjay5jIGIvdXBsb2FkLXBhY2suYwppbmRleCBiZmE2Mjc5Yy4uMTI3ZTU5YSAxMDA2NDQKLS0tIGEvdXBsb2FkLXBhY2suYworKysgYi91cGxvYWQtcGFjay5jCkBAIC01OTIsNyArNTkyLDcgQEAKIAkJCQlkaWUoImludmFsaWQgc2hhbGxvdyBsaW5lOiAlcyIsIGxpbmUpOwogCQkJb2JqZWN0ID0gcGFyc2Vfb2JqZWN0KHNoYTEpOwogCQkJaWYgKCFvYmplY3QpCi0JCQkJZGllKCJkaWQgbm90IGZpbmQgb2JqZWN0IGZvciAlcyIsIGxpbmUpOworCQkJCWNvbnRpbnVlOwogCQkJaWYgKG9iamVjdC0+dHlwZSAhPSBPQkpfQ09NTUlUKQogCQkJCWRpZSgiaW52YWxpZCBzaGFsbG93IG9iamVjdCAlcyIsIHNoYTFfdG9faGV4KHNoYTEpKTsKIAkJCWlmICghKG9iamVjdC0+ZmxhZ3MgJiBDTElFTlRfU0hBTExPVykpIHsKZGlmZiAtLWdpdCBhL3V0ZjguaCBiL3V0ZjguaAppbmRleCAzMmE3YmZiLi42NWQwZTQyIDEwMDY0NAotLS0gYS91dGY4LmgKKysrIGIvdXRmOC5oCkBAIC0xMCw2ICsxMCw3IEBACiBpbnQgaXNfdXRmOChjb25zdCBjaGFyICp0ZXh0KTsKIGludCBpc19lbmNvZGluZ191dGY4KGNvbnN0IGNoYXIgKm5hbWUpOwogaW50IHNhbWVfZW5jb2RpbmcoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOworX19hdHRyaWJ1dGVfXygoZm9ybWF0IChwcmludGYsIDIsIDMpKSkKIGludCB1dGY4X2ZwcmludGYoRklMRSAqLCBjb25zdCBjaGFyICosIC4uLik7CiAKIHZvaWQgc3RyYnVmX2FkZF93cmFwcGVkX3RleHQoc3RydWN0IHN0cmJ1ZiAqYnVmLApkaWZmIC0tZ2l0IGEvd2lsZG1hdGNoLmMgYi93aWxkbWF0Y2guYwppbmRleCA3MTkyYmRjLi5mOTFiYTk5IDEwMDY0NAotLS0gYS93aWxkbWF0Y2guYworKysgYi93aWxkbWF0Y2guYwpAQCAtMTk2LDYgKzE5NiwxMSBAQAogCQkJCQl9CiAJCQkJCWlmICh0X2NoIDw9IHBfY2ggJiYgdF9jaCA+PSBwcmV2X2NoKQogCQkJCQkJbWF0Y2hlZCA9IDE7CisJCQkJCWVsc2UgaWYgKChmbGFncyAmIFdNX0NBU0VGT0xEKSAmJiBJU0xPV0VSKHRfY2gpKSB7CisJCQkJCQl1Y2hhciB0X2NoX3VwcGVyID0gdG91cHBlcih0X2NoKTsKKwkJCQkJCWlmICh0X2NoX3VwcGVyIDw9IHBfY2ggJiYgdF9jaF91cHBlciA+PSBwcmV2X2NoKQorCQkJCQkJCW1hdGNoZWQgPSAxOworCQkJCQl9CiAJCQkJCXBfY2ggPSAwOyAvKiBUaGlzIG1ha2VzICJwcmV2X2NoIiBnZXQgc2V0IHRvIDAuICovCiAJCQkJfSBlbHNlIGlmIChwX2NoID09ICdbJyAmJiBwWzFdID09ICc6JykgewogCQkJCQljb25zdCB1Y2hhciAqczsKQEAgLTI0NSw2ICsyNTAsOCBAQAogCQkJCQl9IGVsc2UgaWYgKENDX0VRKHMsaSwgInVwcGVyIikpIHsKIAkJCQkJCWlmIChJU1VQUEVSKHRfY2gpKQogCQkJCQkJCW1hdGNoZWQgPSAxOworCQkJCQkJZWxzZSBpZiAoKGZsYWdzICYgV01fQ0FTRUZPTEQpICYmIElTTE9XRVIodF9jaCkpCisJCQkJCQkJbWF0Y2hlZCA9IDE7CiAJCQkJCX0gZWxzZSBpZiAoQ0NfRVEocyxpLCAieGRpZ2l0IikpIHsKIAkJCQkJCWlmIChJU1hESUdJVCh0X2NoKSkKIAkJCQkJCQltYXRjaGVkID0gMTsKZGlmZiAtLWdpdCBhL3dyYXAtZm9yLWJpbi5zaCBiL3dyYXAtZm9yLWJpbi5zaAppbmRleCA1M2E4ZGQwLi43MDFkMjMzIDEwMDY0NAotLS0gYS93cmFwLWZvci1iaW4uc2gKKysrIGIvd3JhcC1mb3ItYmluLnNoCkBAIC0xNCw3ICsxNCw3IEBACiAJR0lUX1RFTVBMQVRFX0RJUj0nQEBCVUlMRF9ESVJAQC90ZW1wbGF0ZXMvYmx0JwogCWV4cG9ydCBHSVRfVEVNUExBVEVfRElSCiBmaQotR0lUUEVSTExJQj0nQEBCVUlMRF9ESVJAQC9wZXJsL2JsaWIvbGliJworR0lUUEVSTExJQj0nQEBCVUlMRF9ESVJAQC9wZXJsL2JsaWIvbGliJyIke0dJVFBFUkxMSUI6KzokR0lUUEVSTExJQn0iCiBHSVRfVEVYVERPTUFJTkRJUj0nQEBCVUlMRF9ESVJAQC9wby9idWlsZC9sb2NhbGUnCiBQQVRIPSdAQEJVSUxEX0RJUkBAL2Jpbi13cmFwcGVyczonIiRQQVRIIgogZXhwb3J0IEdJVF9FWEVDX1BBVEggR0lUUEVSTExJQiBQQVRIIEdJVF9URVhURE9NQUlORElSCmRpZmYgLS1naXQgYS93cmFwcGVyLmMgYi93cmFwcGVyLmMKaW5kZXggYmFjNTlkMi4uZjkyYjE0NyAxMDA2NDQKLS0tIGEvd3JhcHBlci5jCisrKyBiL3dyYXBwZXIuYwpAQCAtMTMxLDYgKzEzMSwxNCBAQAogfQogCiAvKgorICogTGltaXQgc2l6ZSBvZiBJTyBjaHVua3MsIGJlY2F1c2UgaHVnZSBjaHVua3Mgb25seSBjYXVzZSBwYWluLiAgT1MgWAorICogNjQtYml0IGlzIGJ1Z2d5LCByZXR1cm5pbmcgRUlOVkFMIGlmIGxlbiA+PSBJTlRfTUFYOyBhbmQgZXZlbiBpbgorICogdGhlIGFic2Vuc2Ugb2YgYnVncywgbGFyZ2UgY2h1bmtzIGNhbiByZXN1bHQgaW4gYmFkIGxhdGVuY2llcyB3aGVuCisgKiB5b3UgZGVjaWRlIHRvIGtpbGwgdGhlIHByb2Nlc3MuCisgKi8KKyNkZWZpbmUgTUFYX0lPX1NJWkUgKDgqMTAyNCoxMDI0KQorCisvKgogICogeHJlYWQoKSBpcyB0aGUgc2FtZSBhIHJlYWQoKSwgYnV0IGl0IGF1dG9tYXRpY2FsbHkgcmVzdGFydHMgcmVhZCgpCiAgKiBvcGVyYXRpb25zIHdpdGggYSByZWNvdmVyYWJsZSBlcnJvciAoRUFHQUlOIGFuZCBFSU5UUikuIHhyZWFkKCkKICAqIERPRVMgTk9UIEdVQVJBTlRFRSB0aGF0ICJsZW4iIGJ5dGVzIGlzIHJlYWQgZXZlbiBpZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUuCkBAIC0xMzgsNiArMTQ2LDggQEAKIHNzaXplX3QgeHJlYWQoaW50IGZkLCB2b2lkICpidWYsIHNpemVfdCBsZW4pCiB7CiAJc3NpemVfdCBucjsKKwlpZiAobGVuID4gTUFYX0lPX1NJWkUpCisJICAgIGxlbiA9IE1BWF9JT19TSVpFOwogCXdoaWxlICgxKSB7CiAJCW5yID0gcmVhZChmZCwgYnVmLCBsZW4pOwogCQlpZiAoKG5yIDwgMCkgJiYgKGVycm5vID09IEVBR0FJTiB8fCBlcnJubyA9PSBFSU5UUikpCkBAIC0xNTQsNiArMTY0LDggQEAKIHNzaXplX3QgeHdyaXRlKGludCBmZCwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQogewogCXNzaXplX3QgbnI7CisJaWYgKGxlbiA+IE1BWF9JT19TSVpFKQorCSAgICBsZW4gPSBNQVhfSU9fU0laRTsKIAl3aGlsZSAoMSkgewogCQluciA9IHdyaXRlKGZkLCBidWYsIGxlbik7CiAJCWlmICgobnIgPCAwKSAmJiAoZXJybm8gPT0gRUFHQUlOIHx8IGVycm5vID09IEVJTlRSKSkKQEAgLTMyMiw3ICszMzQsNyBAQAogCQl0ZW1wbGF0ZVs1XSA9IGxldHRlcnNbdiAlIG51bV9sZXR0ZXJzXTsgdiAvPSBudW1fbGV0dGVyczsKIAogCQlmZCA9IG9wZW4ocGF0dGVybiwgT19DUkVBVCB8IE9fRVhDTCB8IE9fUkRXUiwgbW9kZSk7Ci0JCWlmIChmZCA+IDApCisJCWlmIChmZCA+PSAwKQogCQkJcmV0dXJuIGZkOwogCQkvKgogCQkgKiBGYXRhbCBlcnJvciAoRVBFUk0sIEVOT1NQQyBldGMpLgpAQCAtNDA4LDE4ICs0MjAsMjQgQEAKIAl3YXJuaW5nKF8oInVuYWJsZSB0byBhY2Nlc3MgJyVzJzogJXMiKSwgcGF0aCwgc3RyZXJyb3IoZXJybm8pKTsKIH0KIAotaW50IGFjY2Vzc19vcl93YXJuKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlKQorc3RhdGljIGludCBhY2Nlc3NfZXJyb3JfaXNfb2soaW50IGVyciwgdW5zaWduZWQgZmxhZykKK3sKKwlyZXR1cm4gZXJyID09IEVOT0VOVCB8fCBlcnIgPT0gRU5PVERJUiB8fAorCQkoKGZsYWcgJiBBQ0NFU1NfRUFDQ0VTX09LKSAmJiBlcnIgPT0gRUFDQ0VTKTsKK30KKworaW50IGFjY2Vzc19vcl93YXJuKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlLCB1bnNpZ25lZCBmbGFnKQogewogCWludCByZXQgPSBhY2Nlc3MocGF0aCwgbW9kZSk7Ci0JaWYgKHJldCAmJiBlcnJubyAhPSBFTk9FTlQgJiYgZXJybm8gIT0gRU5PVERJUikKKwlpZiAocmV0ICYmICFhY2Nlc3NfZXJyb3JfaXNfb2soZXJybm8sIGZsYWcpKQogCQl3YXJuX29uX2luYWNjZXNzaWJsZShwYXRoKTsKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgYWNjZXNzX29yX2RpZShjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSkKK2ludCBhY2Nlc3Nfb3JfZGllKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlLCB1bnNpZ25lZCBmbGFnKQogewogCWludCByZXQgPSBhY2Nlc3MocGF0aCwgbW9kZSk7Ci0JaWYgKHJldCAmJiBlcnJubyAhPSBFTk9FTlQgJiYgZXJybm8gIT0gRU5PVERJUikKKwlpZiAocmV0ICYmICFhY2Nlc3NfZXJyb3JfaXNfb2soZXJybm8sIGZsYWcpKQogCQlkaWVfZXJybm8oXygidW5hYmxlIHRvIGFjY2VzcyAnJXMnIiksIHBhdGgpOwogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS93dC1zdGF0dXMuYyBiL3d0LXN0YXR1cy5jCmluZGV4IGJmODRhODYuLmNiMjRmMWYgMTAwNjQ0Ci0tLSBhL3d0LXN0YXR1cy5jCisrKyBiL3d0LXN0YXR1cy5jCkBAIC0xMjcsNiArMTI3LDcgQEAKIAlzLT5jaGFuZ2Uuc3RyZHVwX3N0cmluZ3MgPSAxOwogCXMtPnVudHJhY2tlZC5zdHJkdXBfc3RyaW5ncyA9IDE7CiAJcy0+aWdub3JlZC5zdHJkdXBfc3RyaW5ncyA9IDE7CisJcy0+c2hvd19icmFuY2ggPSAtMTsgIC8qIHVuc3BlY2lmaWVkICovCiB9CiAKIHN0YXRpYyB2b2lkIHd0X3N0YXR1c19wcmludF91bm1lcmdlZF9oZWFkZXIoc3RydWN0IHd0X3N0YXR1cyAqcykKQEAgLTI0Myw3ICsyNDQsNyBAQAogCXN0cnVjdCBzdHJidWYgb25lYnVmID0gU1RSQlVGX0lOSVQ7CiAJY29uc3QgY2hhciAqb25lLCAqaG93ID0gXygiYnVnIik7CiAKLQlvbmUgPSBxdW90ZV9wYXRoKGl0LT5zdHJpbmcsIC0xLCAmb25lYnVmLCBzLT5wcmVmaXgpOworCW9uZSA9IHF1b3RlX3BhdGgoaXQtPnN0cmluZywgcy0+cHJlZml4LCAmb25lYnVmKTsKIAlzdGF0dXNfcHJpbnRmKHMsIGNvbG9yKFdUX1NUQVRVU19IRUFERVIsIHMpLCAiXHQiKTsKIAlzd2l0Y2ggKGQtPnN0YWdlbWFzaykgewogCWNhc2UgMTogaG93ID0gXygiYm90aCBkZWxldGVkOiIpOyBicmVhazsKQEAgLTI5Nyw4ICsyOTgsOCBAQAogCQkgICAgY2hhbmdlX3R5cGUpOwogCX0KIAotCW9uZSA9IHF1b3RlX3BhdGgob25lX25hbWUsIC0xLCAmb25lYnVmLCBzLT5wcmVmaXgpOwotCXR3byA9IHF1b3RlX3BhdGgodHdvX25hbWUsIC0xLCAmdHdvYnVmLCBzLT5wcmVmaXgpOworCW9uZSA9IHF1b3RlX3BhdGgob25lX25hbWUsIHMtPnByZWZpeCwgJm9uZWJ1Zik7CisJdHdvID0gcXVvdGVfcGF0aCh0d29fbmFtZSwgcy0+cHJlZml4LCAmdHdvYnVmKTsKIAogCXN0YXR1c19wcmludGYocywgY29sb3IoV1RfU1RBVFVTX0hFQURFUiwgcyksICJcdCIpOwogCXN3aXRjaCAoc3RhdHVzKSB7CkBAIC0zNzEsNyArMzcyLDcgQEAKIHN0YXRpYyBpbnQgdW5tZXJnZWRfbWFzayhjb25zdCBjaGFyICpwYXRoKQogewogCWludCBwb3MsIG1hc2s7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCiAJcG9zID0gY2FjaGVfbmFtZV9wb3MocGF0aCwgc3RybGVuKHBhdGgpKTsKIAlpZiAoMCA8PSBwb3MpCkBAIC00NzUsNyArNDc2LDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKIAkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0OwogCQlzdHJ1Y3Qgd3Rfc3RhdHVzX2NoYW5nZV9kYXRhICpkOwotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOwogCiAJCWlmICghY2VfcGF0aF9tYXRjaChjZSwgJnBhdGhzcGVjKSkKIAkJCWNvbnRpbnVlOwpAQCAtNzA2LDggKzcwNyw3IEBACiAJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdDsKIAkJY29uc3QgY2hhciAqcGF0aDsKIAkJaXQgPSAmKGwtPml0ZW1zW2ldKTsKLQkJcGF0aCA9IHF1b3RlX3BhdGgoaXQtPnN0cmluZywgc3RybGVuKGl0LT5zdHJpbmcpLAotCQkJCSAgJmJ1Ziwgcy0+cHJlZml4KTsKKwkJcGF0aCA9IHF1b3RlX3BhdGgoaXQtPnN0cmluZywgcy0+cHJlZml4LCAmYnVmKTsKIAkJaWYgKGNvbHVtbl9hY3RpdmUocy0+Y29sb3B0cykpIHsKIAkJCXN0cmluZ19saXN0X2FwcGVuZCgmb3V0cHV0LCBwYXRoKTsKIAkJCWNvbnRpbnVlOwpAQCAtODI2LDcgKzgyNiw3IEBACiAJaWYgKGFkdmljZV9zdGF0dXNfaGludHMpIHsKIAkJaWYgKCFzdGF0ZS0+YW1fZW1wdHlfcGF0Y2gpCiAJCQlzdGF0dXNfcHJpbnRmX2xuKHMsIGNvbG9yLAotCQkJCV8oIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiKSk7CisJCQkJXygiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIpKTsKIAkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKIAkJCV8oIiAgKHVzZSBcImdpdCBhbSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIikpOwogCQlzdGF0dXNfcHJpbnRmX2xuKHMsIGNvbG9yLApAQCAtOTU1LDEwICs5NTUsMTIgQEAKIAlpZiAoYWR2aWNlX3N0YXR1c19oaW50cykgewogCQlpZiAoaGFzX3VubWVyZ2VkKHMpKQogCQkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKLQkJCQlfKCIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY29tbWl0XCIpIikpOworCQkJCV8oIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIikpOwogCQllbHNlCiAJCQlzdGF0dXNfcHJpbnRmX2xuKHMsIGNvbG9yLAotCQkJCV8oIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiKSk7CisJCQkJXygiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiKSk7CisJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCisJCQlfKCIgICh1c2UgXCJnaXQgY2hlcnJ5LXBpY2sgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgY2hlcnJ5LXBpY2sgb3BlcmF0aW9uKSIpKTsKIAl9CiAJd3Rfc3RhdHVzX3ByaW50X3RyYWlsZXIocyk7CiB9CkBAIC0xMDM1LDcgKzEwMzcsNiBAQAogfQogCiBzdHJ1Y3QgZ3JhYl8xc3Rfc3dpdGNoX2NiZGF0YSB7Ci0JaW50IGZvdW5kOwogCXN0cnVjdCBzdHJidWYgYnVmOwogCXVuc2lnbmVkIGNoYXIgbnNoYTFbMjBdOwogfTsKQEAgLTEwNTksNyArMTA2MCw2IEBACiAJZm9yIChlbmQgPSB0YXJnZXQ7ICplbmQgJiYgKmVuZCAhPSAnXG4nOyBlbmQrKykKIAkJOwogCXN0cmJ1Zl9hZGQoJmNiLT5idWYsIHRhcmdldCwgZW5kIC0gdGFyZ2V0KTsKLQljYi0+Zm91bmQgPSAxOwogCXJldHVybiAxOwogfQogCkBAIC0xMTc2LDcgKzExNzYsMTAgQEAKIAkJCWJyYW5jaF9uYW1lICs9IDExOwogCQllbHNlIGlmICghc3RyY21wKGJyYW5jaF9uYW1lLCAiSEVBRCIpKSB7CiAJCQlicmFuY2hfc3RhdHVzX2NvbG9yID0gY29sb3IoV1RfU1RBVFVTX05PQlJBTkNILCBzKTsKLQkJCWlmIChzdGF0ZS5kZXRhY2hlZF9mcm9tKSB7CisJCQlpZiAoc3RhdGUucmViYXNlX2luX3Byb2dyZXNzIHx8IHN0YXRlLnJlYmFzZV9pbnRlcmFjdGl2ZV9pbl9wcm9ncmVzcykgeworCQkJCW9uX3doYXQgPSBfKCJyZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gIik7CisJCQkJYnJhbmNoX25hbWUgPSBzdGF0ZS5vbnRvOworCQkJfSBlbHNlIGlmIChzdGF0ZS5kZXRhY2hlZF9mcm9tKSB7CiAJCQkJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKIAkJCQlicmFuY2hfbmFtZSA9IHN0YXRlLmRldGFjaGVkX2Zyb207CiAJCQkJaWYgKCFnZXRfc2hhMSgiSEVBRCIsIHNoYTEpICYmCkBAIC0xMjg5LDcgKzEyOTIsNyBAQAogCX0gZWxzZSB7CiAJCXN0cnVjdCBzdHJidWYgb25lYnVmID0gU1RSQlVGX0lOSVQ7CiAJCWNvbnN0IGNoYXIgKm9uZTsKLQkJb25lID0gcXVvdGVfcGF0aChpdC0+c3RyaW5nLCAtMSwgJm9uZWJ1Ziwgcy0+cHJlZml4KTsKKwkJb25lID0gcXVvdGVfcGF0aChpdC0+c3RyaW5nLCBzLT5wcmVmaXgsICZvbmVidWYpOwogCQlwcmludGYoIiAlc1xuIiwgb25lKTsKIAkJc3RyYnVmX3JlbGVhc2UoJm9uZWJ1Zik7CiAJfQpAQCAtMTMxNyw3ICsxMzIwLDcgQEAKIAkJc3RydWN0IHN0cmJ1ZiBvbmVidWYgPSBTVFJCVUZfSU5JVDsKIAkJY29uc3QgY2hhciAqb25lOwogCQlpZiAoZC0+aGVhZF9wYXRoKSB7Ci0JCQlvbmUgPSBxdW90ZV9wYXRoKGQtPmhlYWRfcGF0aCwgLTEsICZvbmVidWYsIHMtPnByZWZpeCk7CisJCQlvbmUgPSBxdW90ZV9wYXRoKGQtPmhlYWRfcGF0aCwgcy0+cHJlZml4LCAmb25lYnVmKTsKIAkJCWlmICgqb25lICE9ICciJyAmJiBzdHJjaHIob25lLCAnICcpICE9IE5VTEwpIHsKIAkJCQlwdXRjaGFyKCciJyk7CiAJCQkJc3RyYnVmX2FkZGNoKCZvbmVidWYsICciJyk7CkBAIC0xMzI2LDcgKzEzMjksNyBAQAogCQkJcHJpbnRmKCIlcyAtPiAiLCBvbmUpOwogCQkJc3RyYnVmX3JlbGVhc2UoJm9uZWJ1Zik7CiAJCX0KLQkJb25lID0gcXVvdGVfcGF0aChpdC0+c3RyaW5nLCAtMSwgJm9uZWJ1Ziwgcy0+cHJlZml4KTsKKwkJb25lID0gcXVvdGVfcGF0aChpdC0+c3RyaW5nLCBzLT5wcmVmaXgsICZvbmVidWYpOwogCQlpZiAoKm9uZSAhPSAnIicgJiYgc3RyY2hyKG9uZSwgJyAnKSAhPSBOVUxMKSB7CiAJCQlwdXRjaGFyKCciJyk7CiAJCQlzdHJidWZfYWRkY2goJm9uZWJ1ZiwgJyInKTsKQEAgLTEzNDUsNyArMTM0OCw3IEBACiAJfSBlbHNlIHsKIAkJc3RydWN0IHN0cmJ1ZiBvbmVidWYgPSBTVFJCVUZfSU5JVDsKIAkJY29uc3QgY2hhciAqb25lOwotCQlvbmUgPSBxdW90ZV9wYXRoKGl0LT5zdHJpbmcsIC0xLCAmb25lYnVmLCBzLT5wcmVmaXgpOworCQlvbmUgPSBxdW90ZV9wYXRoKGl0LT5zdHJpbmcsIHMtPnByZWZpeCwgJm9uZWJ1Zik7CiAJCWNvbG9yX2ZwcmludGYocy0+ZnAsIGNvbG9yKFdUX1NUQVRVU19VTlRSQUNLRUQsIHMpLCAiJXMiLCBzaWduKTsKIAkJcHJpbnRmKCIgJXNcbiIsIG9uZSk7CiAJCXN0cmJ1Zl9yZWxlYXNlKCZvbmVidWYpOwpkaWZmIC0tZ2l0IGEvd3Qtc3RhdHVzLmggYi93dC1zdGF0dXMuaAppbmRleCA0MTIxYmMyLi5mYjcxNTJlIDEwMDY0NAotLS0gYS93dC1zdGF0dXMuaAorKysgYi93dC1zdGF0dXMuaApAQCAtOTYsOSArOTYsOSBAQAogdm9pZCB3dF9zaG9ydHN0YXR1c19wcmludChzdHJ1Y3Qgd3Rfc3RhdHVzICpzKTsKIHZvaWQgd3RfcG9yY2VsYWluX3ByaW50KHN0cnVjdCB3dF9zdGF0dXMgKnMpOwogCi12b2lkIHN0YXR1c19wcmludGZfbG4oc3RydWN0IHd0X3N0YXR1cyAqcywgY29uc3QgY2hhciAqY29sb3IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotCTsKLXZvaWQgc3RhdHVzX3ByaW50ZihzdHJ1Y3Qgd3Rfc3RhdHVzICpzLCBjb25zdCBjaGFyICpjb2xvciwgY29uc3QgY2hhciAqZm10LCAuLi4pCi0JOworX19hdHRyaWJ1dGVfXygoZm9ybWF0IChwcmludGYsIDMsIDQpKSkKK3ZvaWQgc3RhdHVzX3ByaW50Zl9sbihzdHJ1Y3Qgd3Rfc3RhdHVzICpzLCBjb25zdCBjaGFyICpjb2xvciwgY29uc3QgY2hhciAqZm10LCAuLi4pOworX19hdHRyaWJ1dGVfXygoZm9ybWF0IChwcmludGYsIDMsIDQpKSkKK3ZvaWQgc3RhdHVzX3ByaW50ZihzdHJ1Y3Qgd3Rfc3RhdHVzICpzLCBjb25zdCBjaGFyICpjb2xvciwgY29uc3QgY2hhciAqZm10LCAuLi4pOwogCiAjZW5kaWYgLyogU1RBVFVTX0ggKi8KZGlmZiAtLWdpdCBhL3hkaWZmL3hkaWZmLmggYi94ZGlmZi94ZGlmZi5oCmluZGV4IDIxOWEzYmIuLmMwMzM5OTEgMTAwNjQ0Ci0tLSBhL3hkaWZmL3hkaWZmLmgKKysrIGIveGRpZmYveGRpZmYuaApAQCAtMzksNiArMzksOCBAQAogI2RlZmluZSBYREZfRElGRl9BTEdPUklUSE1fTUFTSyAoWERGX1BBVElFTkNFX0RJRkYgfCBYREZfSElTVE9HUkFNX0RJRkYpCiAjZGVmaW5lIFhERl9ESUZGX0FMRyh4KSAoKHgpICYgWERGX0RJRkZfQUxHT1JJVEhNX01BU0spCiAKKyNkZWZpbmUgWERGX0lHTk9SRV9CTEFOS19MSU5FUyAoMSA8PCA3KQorCiAjZGVmaW5lIFhETF9FTUlUX0ZVTkNOQU1FUyAoMSA8PCAwKQogI2RlZmluZSBYRExfRU1JVF9DT01NT04gKDEgPDwgMSkKICNkZWZpbmUgWERMX0VNSVRfRlVOQ0NPTlRFWFQgKDEgPDwgMikKZGlmZiAtLWdpdCBhL3hkaWZmL3hkaWZmaS5jIGIveGRpZmYveGRpZmZpLmMKaW5kZXggYjJlYjZkYi4uMjM1OGEyZCAxMDA2NDQKLS0tIGEveGRpZmYveGRpZmZpLmMKKysrIGIveGRpZmYveGRpZmZpLmMKQEAgLTM5NCw2ICszOTQsNyBAQAogCXhjaC0+aTIgPSBpMjsKIAl4Y2gtPmNoZzEgPSBjaGcxOwogCXhjaC0+Y2hnMiA9IGNoZzI7CisJeGNoLT5pZ25vcmUgPSAwOwogCiAJcmV0dXJuIHhjaDsKIH0KQEAgLTU0NCw3ICs1NDUsOSBAQAogCXhkY2hhbmdlX3QgKnhjaCwgKnhjaGU7CiAKIAlmb3IgKHhjaCA9IHhzY3I7IHhjaDsgeGNoID0geGNoZS0+bmV4dCkgewotCQl4Y2hlID0geGRsX2dldF9odW5rKHhjaCwgeGVjZmcpOworCQl4Y2hlID0geGRsX2dldF9odW5rKCZ4Y2gsIHhlY2ZnKTsKKwkJaWYgKCF4Y2gpCisJCQlicmVhazsKIAkJaWYgKHhlY2ZnLT5odW5rX2Z1bmMoeGNoLT5pMSwgeGNoZS0+aTEgKyB4Y2hlLT5jaGcxIC0geGNoLT5pMSwKIAkJCQkgICAgIHhjaC0+aTIsIHhjaGUtPmkyICsgeGNoZS0+Y2hnMiAtIHhjaC0+aTIsCiAJCQkJICAgICBlY2ItPnByaXYpIDwgMCkKQEAgLTU1Myw2ICs1NTYsMjcgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgeGRsX21hcmtfaWdub3JhYmxlKHhkY2hhbmdlX3QgKnhzY3IsIHhkZmVudl90ICp4ZSwgbG9uZyBmbGFncykKK3sKKwl4ZGNoYW5nZV90ICp4Y2g7CisKKwlmb3IgKHhjaCA9IHhzY3I7IHhjaDsgeGNoID0geGNoLT5uZXh0KSB7CisJCWludCBpZ25vcmUgPSAxOworCQl4cmVjb3JkX3QgKipyZWM7CisJCWxvbmcgaTsKKworCQlyZWMgPSAmeGUtPnhkZjEucmVjc1t4Y2gtPmkxXTsKKwkJZm9yIChpID0gMDsgaSA8IHhjaC0+Y2hnMSAmJiBpZ25vcmU7IGkrKykKKwkJCWlnbm9yZSA9IHhkbF9ibGFua2xpbmUocmVjW2ldLT5wdHIsIHJlY1tpXS0+c2l6ZSwgZmxhZ3MpOworCisJCXJlYyA9ICZ4ZS0+eGRmMi5yZWNzW3hjaC0+aTJdOworCQlmb3IgKGkgPSAwOyBpIDwgeGNoLT5jaGcyICYmIGlnbm9yZTsgaSsrKQorCQkJaWdub3JlID0geGRsX2JsYW5rbGluZShyZWNbaV0tPnB0ciwgcmVjW2ldLT5zaXplLCBmbGFncyk7CisKKwkJeGNoLT5pZ25vcmUgPSBpZ25vcmU7CisJfQorfQorCiBpbnQgeGRsX2RpZmYobW1maWxlX3QgKm1mMSwgbW1maWxlX3QgKm1mMiwgeHBwYXJhbV90IGNvbnN0ICp4cHAsCiAJICAgICB4ZGVtaXRjb25mX3QgY29uc3QgKnhlY2ZnLCB4ZGVtaXRjYl90ICplY2IpIHsKIAl4ZGNoYW5nZV90ICp4c2NyOwpAQCAtNTcxLDYgKzU5NSw5IEBACiAJCXJldHVybiAtMTsKIAl9CiAJaWYgKHhzY3IpIHsKKwkJaWYgKHhwcC0+ZmxhZ3MgJiBYREZfSUdOT1JFX0JMQU5LX0xJTkVTKQorCQkJeGRsX21hcmtfaWdub3JhYmxlKHhzY3IsICZ4ZSwgeHBwLT5mbGFncyk7CisKIAkJaWYgKGVmKCZ4ZSwgeHNjciwgZWNiLCB4ZWNmZykgPCAwKSB7CiAKIAkJCXhkbF9mcmVlX3NjcmlwdCh4c2NyKTsKZGlmZiAtLWdpdCBhL3hkaWZmL3hkaWZmaS5oIGIveGRpZmYveGRpZmZpLmgKaW5kZXggN2E5MmVhOS4uOGI4MTIwNiAxMDA2NDQKLS0tIGEveGRpZmYveGRpZmZpLmgKKysrIGIveGRpZmYveGRpZmZpLmgKQEAgLTQxLDYgKzQxLDcgQEAKIAlzdHJ1Y3Qgc194ZGNoYW5nZSAqbmV4dDsKIAlsb25nIGkxLCBpMjsKIAlsb25nIGNoZzEsIGNoZzI7CisJaW50IGlnbm9yZTsKIH0geGRjaGFuZ2VfdDsKIAogCmRpZmYgLS1naXQgYS94ZGlmZi94ZW1pdC5jIGIveGRpZmYveGVtaXQuYwppbmRleCBkMTFkYmY5Li40ZDg2NDU4IDEwMDY0NAotLS0gYS94ZGlmZi94ZW1pdC5jCisrKyBiL3hkaWZmL3hlbWl0LmMKQEAgLTU2LDE2ICs1Niw1MSBAQAogLyoKICAqIFN0YXJ0aW5nIGF0IHRoZSBwYXNzZWQgY2hhbmdlIGF0b20sIGZpbmQgdGhlIGxhdGVzdCBjaGFuZ2UgYXRvbSB0byBiZSBpbmNsdWRlZAogICogaW5zaWRlIHRoZSBkaWZmZXJlbnRpYWwgaHVuayBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uLgorICogQWxzbyBhZHZhbmNlIHhzY3IgaWYgdGhlIGZpcnN0IGNoYW5nZXMgbXVzdCBiZSBkaXNjYXJkZWQuCiAgKi8KLXhkY2hhbmdlX3QgKnhkbF9nZXRfaHVuayh4ZGNoYW5nZV90ICp4c2NyLCB4ZGVtaXRjb25mX3QgY29uc3QgKnhlY2ZnKSB7Ci0JeGRjaGFuZ2VfdCAqeGNoLCAqeGNocDsKK3hkY2hhbmdlX3QgKnhkbF9nZXRfaHVuayh4ZGNoYW5nZV90ICoqeHNjciwgeGRlbWl0Y29uZl90IGNvbnN0ICp4ZWNmZykKK3sKKwl4ZGNoYW5nZV90ICp4Y2gsICp4Y2hwLCAqbHhjaDsKIAlsb25nIG1heF9jb21tb24gPSAyICogeGVjZmctPmN0eGxlbiArIHhlY2ZnLT5pbnRlcmh1bmtjdHhsZW47CisJbG9uZyBtYXhfaWdub3JhYmxlID0geGVjZmctPmN0eGxlbjsKKwl1bnNpZ25lZCBsb25nIGlnbm9yZWQgPSAwOyAvKiBudW1iZXIgb2YgaWdub3JlZCBibGFuayBsaW5lcyAqLwogCi0JZm9yICh4Y2hwID0geHNjciwgeGNoID0geHNjci0+bmV4dDsgeGNoOyB4Y2hwID0geGNoLCB4Y2ggPSB4Y2gtPm5leHQpCi0JCWlmICh4Y2gtPmkxIC0gKHhjaHAtPmkxICsgeGNocC0+Y2hnMSkgPiBtYXhfY29tbW9uKQorCS8qIHJlbW92ZSBpZ25vcmFibGUgY2hhbmdlcyB0aGF0IGFyZSB0b28gZmFyIGJlZm9yZSBvdGhlciBjaGFuZ2VzICovCisJZm9yICh4Y2hwID0gKnhzY3I7IHhjaHAgJiYgeGNocC0+aWdub3JlOyB4Y2hwID0geGNocC0+bmV4dCkgeworCQl4Y2ggPSB4Y2hwLT5uZXh0OworCisJCWlmICh4Y2ggPT0gTlVMTCB8fAorCQkgICAgeGNoLT5pMSAtICh4Y2hwLT5pMSArIHhjaHAtPmNoZzEpID49IG1heF9pZ25vcmFibGUpCisJCQkqeHNjciA9IHhjaDsKKwl9CisKKwlpZiAoKnhzY3IgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwlseGNoID0gKnhzY3I7CisKKwlmb3IgKHhjaHAgPSAqeHNjciwgeGNoID0geGNocC0+bmV4dDsgeGNoOyB4Y2hwID0geGNoLCB4Y2ggPSB4Y2gtPm5leHQpIHsKKwkJbG9uZyBkaXN0YW5jZSA9IHhjaC0+aTEgLSAoeGNocC0+aTEgKyB4Y2hwLT5jaGcxKTsKKwkJaWYgKGRpc3RhbmNlID4gbWF4X2NvbW1vbikKIAkJCWJyZWFrOwogCi0JcmV0dXJuIHhjaHA7CisJCWlmIChkaXN0YW5jZSA8IG1heF9pZ25vcmFibGUgJiYgKCF4Y2gtPmlnbm9yZSB8fCBseGNoID09IHhjaHApKSB7CisJCQlseGNoID0geGNoOworCQkJaWdub3JlZCA9IDA7CisJCX0gZWxzZSBpZiAoZGlzdGFuY2UgPCBtYXhfaWdub3JhYmxlICYmIHhjaC0+aWdub3JlKSB7CisJCQlpZ25vcmVkICs9IHhjaC0+Y2hnMjsKKwkJfSBlbHNlIGlmIChseGNoICE9IHhjaHAgJiYKKwkJCSAgIHhjaC0+aTEgKyBpZ25vcmVkIC0gKGx4Y2gtPmkxICsgbHhjaC0+Y2hnMSkgPiBtYXhfY29tbW9uKSB7CisJCQlicmVhazsKKwkJfSBlbHNlIGlmICgheGNoLT5pZ25vcmUpIHsKKwkJCWx4Y2ggPSB4Y2g7CisJCQlpZ25vcmVkID0gMDsKKwkJfSBlbHNlIHsKKwkJCWlnbm9yZWQgKz0geGNoLT5jaGcyOworCQl9CisJfQorCisJcmV0dXJuIGx4Y2g7CiB9CiAKIApAQCAtMTM5LDcgKzE3NCw5IEBACiAJCXJldHVybiB4ZGxfZW1pdF9jb21tb24oeGUsIHhzY3IsIGVjYiwgeGVjZmcpOwogCiAJZm9yICh4Y2ggPSB4c2NyOyB4Y2g7IHhjaCA9IHhjaGUtPm5leHQpIHsKLQkJeGNoZSA9IHhkbF9nZXRfaHVuayh4Y2gsIHhlY2ZnKTsKKwkJeGNoZSA9IHhkbF9nZXRfaHVuaygmeGNoLCB4ZWNmZyk7CisJCWlmICgheGNoKQorCQkJYnJlYWs7CiAKIAkJczEgPSBYRExfTUFYKHhjaC0+aTEgLSB4ZWNmZy0+Y3R4bGVuLCAwKTsKIAkJczIgPSBYRExfTUFYKHhjaC0+aTIgLSB4ZWNmZy0+Y3R4bGVuLCAwKTsKZGlmZiAtLWdpdCBhL3hkaWZmL3hlbWl0LmggYi94ZGlmZi94ZW1pdC5oCmluZGV4IGMyZTJlODMuLmQyOTcxMDcgMTAwNjQ0Ci0tLSBhL3hkaWZmL3hlbWl0LmgKKysrIGIveGRpZmYveGVtaXQuaApAQCAtMjcsNyArMjcsNyBAQAogdHlwZWRlZiBpbnQgKCplbWl0X2Z1bmNfdCkoeGRmZW52X3QgKnhlLCB4ZGNoYW5nZV90ICp4c2NyLCB4ZGVtaXRjYl90ICplY2IsCiAJCQkgICB4ZGVtaXRjb25mX3QgY29uc3QgKnhlY2ZnKTsKIAoteGRjaGFuZ2VfdCAqeGRsX2dldF9odW5rKHhkY2hhbmdlX3QgKnhzY3IsIHhkZW1pdGNvbmZfdCBjb25zdCAqeGVjZmcpOworeGRjaGFuZ2VfdCAqeGRsX2dldF9odW5rKHhkY2hhbmdlX3QgKip4c2NyLCB4ZGVtaXRjb25mX3QgY29uc3QgKnhlY2ZnKTsKIGludCB4ZGxfZW1pdF9kaWZmKHhkZmVudl90ICp4ZSwgeGRjaGFuZ2VfdCAqeHNjciwgeGRlbWl0Y2JfdCAqZWNiLAogCQkgIHhkZW1pdGNvbmZfdCBjb25zdCAqeGVjZmcpOwogCmRpZmYgLS1naXQgYS94ZGlmZi94dXRpbHMuYyBiL3hkaWZmL3h1dGlscy5jCmluZGV4IDk1MDRlYWUuLjYyY2IyM2QgMTAwNjQ0Ci0tLSBhL3hkaWZmL3h1dGlscy5jCisrKyBiL3hkaWZmL3h1dGlscy5jCkBAIC0xNDMsNiArMTQzLDE5IEBACiAJcmV0dXJuIG5sICsgMTsKIH0KIAoraW50IHhkbF9ibGFua2xpbmUoY29uc3QgY2hhciAqbGluZSwgbG9uZyBzaXplLCBsb25nIGZsYWdzKQoreworCWxvbmcgaTsKKworCWlmICghKGZsYWdzICYgWERGX1dISVRFU1BBQ0VfRkxBR1MpKQorCQlyZXR1cm4gKHNpemUgPD0gMSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZSAmJiBYRExfSVNTUEFDRShsaW5lW2ldKTsgaSsrKQorCQk7CisKKwlyZXR1cm4gKGkgPT0gc2l6ZSk7Cit9CisKIGludCB4ZGxfcmVjbWF0Y2goY29uc3QgY2hhciAqbDEsIGxvbmcgczEsIGNvbnN0IGNoYXIgKmwyLCBsb25nIHMyLCBsb25nIGZsYWdzKQogewogCWludCBpMSwgaTI7CmRpZmYgLS1naXQgYS94ZGlmZi94dXRpbHMuaCBiL3hkaWZmL3h1dGlscy5oCmluZGV4IGFkMTQyOGUuLjQ2NDZjZTUgMTAwNjQ0Ci0tLSBhL3hkaWZmL3h1dGlscy5oCisrKyBiL3hkaWZmL3h1dGlscy5oCkBAIC0zMiw2ICszMiw3IEBACiB2b2lkIHhkbF9jaGFfZnJlZShjaGFzdG9yZV90ICpjaGEpOwogdm9pZCAqeGRsX2NoYV9hbGxvYyhjaGFzdG9yZV90ICpjaGEpOwogbG9uZyB4ZGxfZ3Vlc3NfbGluZXMobW1maWxlX3QgKm1mLCBsb25nIHNhbXBsZSk7CitpbnQgeGRsX2JsYW5rbGluZShjb25zdCBjaGFyICpsaW5lLCBsb25nIHNpemUsIGxvbmcgZmxhZ3MpOwogaW50IHhkbF9yZWNtYXRjaChjb25zdCBjaGFyICpsMSwgbG9uZyBzMSwgY29uc3QgY2hhciAqbDIsIGxvbmcgczIsIGxvbmcgZmxhZ3MpOwogdW5zaWduZWQgbG9uZyB4ZGxfaGFzaF9yZWNvcmQoY2hhciBjb25zdCAqKmRhdGEsIGNoYXIgY29uc3QgKnRvcCwgbG9uZyBmbGFncyk7CiB1bnNpZ25lZCBpbnQgeGRsX2hhc2hiaXRzKHVuc2lnbmVkIGludCBzaXplKTsK