From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 23848 invoked from network); 1 Mar 2023 15:04:16 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 1 Mar 2023 15:04:16 -0000 Content-Type: multipart/mixed; boundary="===============5731225528381481123==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_nodejs_=3A_update_to_18=2E14=2E2?= To: ml@inbox.vuxu.org From: unrealjo Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 01 Mar 2023 16:04:15 +0100 List-Id: Message-ID: <20230301150415.hHsQaw3YSO48QREa0yhRv7hIbYcivBCvQ4BlQUWkigQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============5731225528381481123== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgdW5yZWFsam8gYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3Vu cmVhbGpvL3ZvaWQtcGFja2FnZXMgbm9kZWpzCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC80MjUyNQoKbm9kZWpzIDogdXBkYXRlIHRvIDE4LjE0LjIKIyMj IyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFuZ2VzIGluIHRoaXMgUFI6 ICoqYnJpZWZseSoqDQoNCiMjIFdvcmthcm91bmRzIDogDQotIDEuIzQwMTA2DQotIDIuVXBkYXRl ICoqaG9zdG1ha2VkZXBlbmRzKiogIGFuZCAqKm1ha2VkZXBlbmRzKiogb2YgYmxvY2tlcnMgdG8g YG5vZGVqcy1sdHNgDQotIDMuSW50cm9kdWNlIG5vZGVqcy1iaW4gdG8gcmVzb2x2ZSAgKipob3N0 bWFrZWRlcGVuZHMqKiAoSW4gY2FzZSBtZXJnaW5nIG5vZGVqcyBpbnRvIG5vZGVqcy1sdHMgZmFp bGVkKQ0KIyMjIEJsb2NrcyA6IA0KDQotIFsgXSBSb2NrZXQuQ2hhdC1EZXNrdG9wDQotIFsgXSBT aWduYWwtRGVza3RvcA0KLSBbIF0gYmlzbXV0aA0KLSBbIF0gaW1nYnJkLWdyYWJiZXINCi0gWyBd IGp1cHl0ZXJsYWINCi0gWyBdIGtleWJhc2UtZGVza3RvcA0KLSBbIF0gbGlibWVkaWFpbmZvDQot IFsgXSBub2RlZW52DQotIFsgXSBub2RlanMtbHRzDQotIFsgXSBudGZ5DQotIFsgXSBvcGVuYmF6 YWFyDQotIFsgXSBwbnBtDQotIFsgXSBxdDUtd2ViZW5naW5lDQotIFsgXSBxdDYtd2ViZW5naW5l DQotIFsgXSByYXB5ZHNjcmlwdC1uZw0KLSBbIF0gcnN0dWRpbw0KLSBbIF0gc3ByZWVkLXdlYnJ0 Yw0KLSBbIF0gdnNjb2RlDQotIFsgXSB3aXJlLWRlc2t0b3ANCi0gWyBdIHlhcm4KCkEgcGF0Y2gg ZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVs bC80MjUyNS5wYXRjaCBpcyBhdHRhY2hlZA== --===============5731225528381481123== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-nodejs-42525.patch" RnJvbSBjYjBmZGU0OTlkNmY0ZGQ0MDI4Yjg4MjcxZTMyZDg0NzE5MDVlZjI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZb3Vzc2VmIEVkZGFpZiA8am85dW5yZWFsQGdtYWlsLmNvbT4K RGF0ZTogV2VkLCAxIE1hciAyMDIzIDE1OjM4OjEyICswMTAwClN1YmplY3Q6IFtQQVRDSCAxLzNd IG5vZGVqcyA6IHVwZGF0ZSB0byAxOC4xNC4yCgotLS0KIHNyY3BrZ3Mvbm9kZWpzL3RlbXBsYXRl IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvbm9kZWpzL3RlbXBsYXRlIGIvc3JjcGtncy9ub2RlanMv dGVtcGxhdGUKaW5kZXggMGZlZTBhOGVjNzI1Li42NzQ1MTQxODAyYTIgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3Mvbm9kZWpzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvbm9kZWpzL3RlbXBsYXRlCkBAIC0x LDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbm9kZWpzJwogcGtnbmFtZT1ub2RlanMK LXZlcnNpb249MTYuMTkuMAordmVyc2lvbj0xOC4xNC4yCiByZXZpc2lvbj0xCiAjIE5lZWQgdGhl c2UgZm9yIGhvc3QgdjggZm9yIHRvcnF1ZSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMv bm9kZS9wdWxsLzIxMDc5CiBob3N0bWFrZWRlcGVuZHM9IndoaWNoIHBrZy1jb25maWcgcHl0aG9u MyBsaWJhdG9taWMtZGV2ZWwgemxpYi1kZXZlbApAQCAtMTUsNyArMTUsNyBAQCBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTUlUIgogaG9t ZXBhZ2U9Imh0dHBzOi8vbm9kZWpzLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vbm9kZWpzLm9y Zy9kaXN0L3Yke3ZlcnNpb259L25vZGUtdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09OGI4 YTI5MzlmYTVmNjU0ZmY2MWNhZTI5YjEyMTE4YzI0MTA5MjczNDU4ZWNiZTYxNjJhZDhhODg1ODMw OWUwZAorY2hlY2tzdW09ODUwYWViYjg3OWUzZWZkOTA0ZWJmZTY1MzI1Y2FhOTdiMDEzNzczYmI5 NGZhZmQyZDBmYjc5NDMyNDkxODI1MgogcHl0aG9uX3ZlcnNpb249MwogCiBidWlsZF9vcHRpb25z PSJzc2wgbGlidXYgaWN1IG5naHR0cDIgY2FyZXMiCgpGcm9tIDFkZTU3NTBmNmY3ZjViY2Q5YmQ2 ZWMyZmI2ZjQ3ODFmMTIzNzdkNzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFlvdXNz ZWYgRWRkYWlmIDxqbzl1bnJlYWxAZ21haWwuY29tPgpEYXRlOiBXZWQsIDEgTWFyIDIwMjMgMTU6 NTU6NDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDIvM10gbm9kZWpzLWx0cyA6IHVwZGF0ZSB0byAx Ni4xOS4xCgotLS0KIHNyY3BrZ3Mvbm9kZWpzLWx0cy90ZW1wbGF0ZSB8IDQ3ICsrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25z KCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL25vZGVqcy1sdHMvdGVt cGxhdGUgYi9zcmNwa2dzL25vZGVqcy1sdHMvdGVtcGxhdGUKaW5kZXggNTQyMGU4NTI0NDQyLi4w MGUyODk4Zjc5YzAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvbm9kZWpzLWx0cy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL25vZGVqcy1sdHMvdGVtcGxhdGUKQEAgLTEsNDUgKzEsNDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ25vZGVqcy1sdHMnCiBwa2duYW1lPW5vZGVqcy1sdHMKLXZlcnNpb249MTIu MjIuMTAKLXJldmlzaW9uPTIKK3ZlcnNpb249MTYuMTkuMQorcmV2aXNpb249MQogIyBOZWVkIHRo ZXNlIGZvciBob3N0IHY4IGZvciB0b3JxdWUsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpz L25vZGUvcHVsbC8yMTA3OQotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHB5dGhvbiBsaWJh dG9taWMtZGV2ZWwgemxpYi1kZXZlbCB3aGljaAoraG9zdG1ha2VkZXBlbmRzPSJ3aGljaCBwa2ct Y29uZmlnIHB5dGhvbjMgbGliYXRvbWljLWRldmVsIHpsaWItZGV2ZWwKICAkKHZvcHRfaWYgaWN1 IGljdS1kZXZlbCkgJCh2b3B0X2lmIHNzbCBvcGVuc3NsLWRldmVsKSAkKHZvcHRfaWYgbGlidXYg bGlidXYtZGV2ZWwpCi0gJCh2b3B0X2lmIGh0dHBfcGFyc2VyIGh0dHAtcGFyc2VyLWRldmVsKSAk KHZvcHRfaWYgbmdodHRwMiBuZ2h0dHAyLWRldmVsKQotICQodm9wdF9pZiBjYXJlcyBjLWFyZXMt ZGV2ZWwpICQodm9wdF9pZiBodHRwX3BhcnNlciBsbGh0dHAtZGV2ZWwpIgotbWFrZWRlcGVuZHM9 ImxpYmF0b21pYy1kZXZlbCB6bGliLWRldmVsIHB5dGhvbi1kZXZlbCAkKHZvcHRfaWYgaWN1IGlj dS1kZXZlbCkKKyAkKHZvcHRfaWYgbmdodHRwMiBuZ2h0dHAyLWRldmVsKSAkKHZvcHRfaWYgY2Fy ZXMgYy1hcmVzLWRldmVsKSIKK21ha2VkZXBlbmRzPSJsaWJhdG9taWMtZGV2ZWwgemxpYi1kZXZl bCAkKHZvcHRfaWYgaWN1IGljdS1kZXZlbCkKICAkKHZvcHRfaWYgc3NsIG9wZW5zc2wtZGV2ZWwp ICQodm9wdF9pZiBsaWJ1diBsaWJ1di1kZXZlbCkKLSAkKHZvcHRfaWYgaHR0cF9wYXJzZXIgaHR0 cC1wYXJzZXItZGV2ZWwpICQodm9wdF9pZiBuZ2h0dHAyIG5naHR0cDItZGV2ZWwpCi0gJCh2b3B0 X2lmIGNhcmVzIGMtYXJlcy1kZXZlbCkgJCh2b3B0X2lmIGh0dHBfcGFyc2VyIGxsaHR0cC1kZXZl bCkiCi1jaGVja2RlcGVuZHM9InByb2Nwcy1uZyIKKyAkKHZvcHRfaWYgbmdodHRwMiBuZ2h0dHAy LWRldmVsKSAkKHZvcHRfaWYgY2FyZXMgYy1hcmVzLWRldmVsKSIKK2NoZWNrZGVwZW5kcz0icHJv Y3BzLW5nIGlhbmEtZXRjIgogc2hvcnRfZGVzYz0iRXZlbnRlZCBJL08gZm9yIFY4IGphdmFzY3Jp cHQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iTUlUIgogaG9tZXBhZ2U9Imh0dHBzOi8vbm9kZWpzLm9yZy8iCi1kaXN0ZmlsZXM9IiR7 aG9tZXBhZ2V9L2Rpc3QvdiR7dmVyc2lvbn0vbm9kZS12JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVj a3N1bT0xZWVlYzY4YjUzMGRhNGFjZWQ3MzBlMmFmOWUwN2ExY2VkODE0ODMzNzcwOGYzN2ZjOGI0 ZWRkYzNiNmRjOWU5CitkaXN0ZmlsZXM9Imh0dHBzOi8vbm9kZWpzLm9yZy9kaXN0L3Yke3ZlcnNp b259L25vZGUtdiR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09ZTc5NWQyM2IyOTI0YjY5ZTAy ZmNjNjcwMzM1YTVjZDNhN2NlMTIxNTU3ZmRjNTg1ZjllNWJkYTBlNzc1NTBlYQogcHl0aG9uX3Zl cnNpb249MwogCi1idWlsZF9vcHRpb25zPSJzc2wgbGlidXYgaHR0cF9wYXJzZXIgaWN1IG5naHR0 cDIgY2FyZXMiCitidWlsZF9vcHRpb25zPSJzc2wgbGlidXYgaWN1IG5naHR0cDIgY2FyZXMiCiBk ZXNjX29wdGlvbl9zc2w9IkVuYWJsZSBzaGFyZWQgb3BlbnNzbCIKIGRlc2Nfb3B0aW9uX2xpYnV2 PSJFbmFibGUgc2hhcmVkIGxpYnV2IgotZGVzY19vcHRpb25faHR0cF9wYXJzZXI9IkVuYWJsZSBz aGFyZWQgaHR0cC1wYXJzZXIgYW5kIGxsaHR0cCIKIGRlc2Nfb3B0aW9uX2ljdT0iRW5hYmxlIHNo YXJlZCBpY3UiCiBkZXNjX29wdGlvbl9uZ2h0dHAyPSJFbmFibGUgc2hhcmVkIG5naHR0cDIiCiBk ZXNjX29wdGlvbl9jYXJlcz0iRW5hYmxlIHNoYXJlZCBjLWFyZXMiCi1idWlsZF9vcHRpb25zX2Rl ZmF1bHQ9InNzbCBsaWJ1diBodHRwX3BhcnNlciBpY3UgbmdodHRwMiBjYXJlcyIKK2J1aWxkX29w dGlvbnNfZGVmYXVsdD0ic3NsIGxpYnV2IGljdSBuZ2h0dHAyIGNhcmVzIgogCiByZXBsYWNlcz0i aW9qcz49MCIKIGNvbmZsaWN0cz0ibm9kZWpzIG5vZGVqcy1sdHMtMTAiCiBwcm92aWRlcz0ibm9k ZWpzLXJ1bnRpbWUtMF8xIgogCisjIGh0dHBzOi8vYnVpbGQudm9pZGxpbnV4Lm9yZy9idWlsZGVy cy9pNjg2X2J1aWxkZXIvYnVpbGRzLzI3MzI1L3N0ZXBzL3NoZWxsXzMvbG9ncy9zdGRpbworaWYg WyAiJFhCUFNfV09SRFNJWkUiID0gMzIgXTsgdGhlbgorCUxERkxBR1M9Ii1XbCwtLW5vLWtlZXAt bWVtb3J5IgorZmkKKwogaWYgWyAiJFhCUFNfV09SRFNJWkUiIC1uZSAiJFhCUFNfVEFSR0VUX1dP UkRTSVpFIiBdOyB0aGVuCiAJbm9jcm9zcz0iaG9zdCBhbmQgdGFyZ2V0IG11c3QgaGF2ZSB0aGUg c2FtZSBwb2ludGVyIHNpemUiCiBmaQogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4K IAlwcGM2NCopIDs7Ci0JcHBjKikgYnJva2VuPSJOb2RlIDEyLnggZG9lcyBub3Qgc3VwcG9ydCAz Mi1iaXQgcHBjIiA7OworCXBwYyopIGJyb2tlbj0iTm9kZSAxNi54IGRvZXMgbm90IHN1cHBvcnQg MzItYml0IHBwYyIgOzsKIGVzYWMKIAogQ0ZMQUdTPSItRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJ TEVfT0ZGU0VUX0JJVFM9NjQiCkBAIC02MSwyMiArNjMsMjIgQEAgZG9fY29uZmlndXJlKCkgewog CQkJeDg2XzY0KikgX2FyZ3M9Ii0tZGVzdC1jcHU9eDg2XzY0IiA7OwogCQkJKikgbXNnX2Vycm9y ICIkcGtndmVyOiBjYW5ub3QgYmUgY3Jvc3MgY29tcGlsZWQgZm9yICR7WEJQU19UQVJHRVRfTUFD SElORX0uXG4iIDs7CiAJCWVzYWMKKwkJIyB0aGlzIGlzIG5lY2Vzc2FyeSAtIGZvciBleGFtcGxl LCBub3JtYWxseSBjb21waWxpbmcgZnJvbSBwcGM2NGxlCisJCSMgdG8gcHBjNjQgb3IgZnJvbSBn bGliYyB0byBtdXNsIGlzIGNvbnNpZGVyZWQgbm9uLWNyb3NzLWNvbXBpbGluZworCQkjIGJ5IHRo ZSBidWlsZCBzeXN0ZW0sIGJlY2F1c2UgaXQncyB0ZWNobmljYWxseSB0aGUgc2FtZSBhcmNoaXRl Y3R1cmUKKwkJIworCQkjIHRoYXQgcmVzdWx0cyBpbiB0aGUgdG9vbHNldCBidWlsdCBmb3IgdGFy Z2V0IG9ubHksIGFuZCBhdHRlbXB0aW5nCisJCSMgdG8gZXhlY3V0ZSBpdCB3aXRoaW4gdGhlIGJ1 aWxkIHN5c3RlbSBmYWlscwogCQlfYXJncys9IiAtLWNyb3NzLWNvbXBpbGluZyIKIAlmaQogCS4v Y29uZmlndXJlIC0tcHJlZml4PS91c3IgLS1zaGFyZWQtemxpYiBcCiAJCSQodm9wdF9pZiBpY3Ug LS13aXRoLWludGw9c3lzdGVtLWljdSkgXAotCQkkKHZvcHRfaWYgaHR0cF9wYXJzZXIgLS1zaGFy ZWQtaHR0cC1wYXJzZXIpIFwKIAkJJCh2b3B0X2lmIHNzbCAtLXNoYXJlZC1vcGVuc3NsKSBcCiAJ CSQodm9wdF9pZiBsaWJ1diAtLXNoYXJlZC1saWJ1dikgXAogCQkkKHZvcHRfaWYgbmdodHRwMiAt LXNoYXJlZC1uZ2h0dHAyKSBcCiAJCSQodm9wdF9pZiBjYXJlcyAtLXNoYXJlZC1jYXJlcykgJHtf YXJnc30KIH0KIAotcG9zdF9jb25maWd1cmUoKSB7Ci0JIyBGaXggbGlua2luZyBhZ2FpbnN0IGxs aHR0cAotCXNlZCAncy8tbGh0dHBfcGFyc2VyLyYgLWxsbGh0dHAvJyAtaSBvdXQvKi50YXJnZXQu bWsKLX0KLQogZG9fYnVpbGQoKSB7CiAJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCW1h a2UgTEQ9IiRDWFgiIExERkxBR1MrPS1sZGwgJHttYWtlam9ic30gUE9SVEFCTEU9MSBWPTEKQEAg LTg2LDcgKzg4LDggQEAgZG9fYnVpbGQoKSB7CiB9CiAKIGRvX2NoZWNrKCkgewotCW1ha2UgTEQ9 IiRDWFgiIExERkxBR1MrPS1sZGwgJHttYWtlam9ic30gVj0xIHRlc3Qtb25seQorCWxvY2FsIENJ X1NLSVBfVEVTVFM9InRlc3QtY2x1c3Rlci1wcmltYXJ5LWVycm9yLmpzLHRlc3QtY2x1c3Rlci1w cmltYXJ5LWtpbGwuanMsdGVzdC1jaGlsZC1wcm9jZXNzLXVpZC1naWQuanMsdGVzdC1wcm9jZXNz LWV1aWQtZWdpZC5qcyx0ZXN0LXByb2Nlc3MtdWlkLWdpZC5qcyx0ZXN0LXNvY2tldC13cml0ZS1h ZnRlci1maW4tZXJyb3IuanMsdGVzdC1kbnMtcGVyZl9ob29rcy5qcyIKKwltYWtlIENJX1NLSVBf VEVTVFM9IiRDSV9TS0lQX1RFU1RTIiBMRD0iJENYWCIgTERGTEFHUys9LWxkbCAke21ha2Vqb2Jz fSBWPTEgdGVzdC1vbmx5CiB9CiAKIGRvX2luc3RhbGwoKSB7CgpGcm9tIGFiZjcwOGE3ZGI0MWEx YTZjMjQ1ODdiY2E5ZGJhNTUwNDEwZTAxZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFlvdXNzZWYgRWRkYWlmIDxqbzl1bnJlYWxAZ21haWwuY29tPgpEYXRlOiBXZWQsIDEgTWFyIDIw MjMgMTY6MDM6NTkgKzAxMDAKU3ViamVjdDogW1BBVENIIDMvM10gbm9kZWpzLWx0cyA6IGZpeCBw YXRjaGVzCgotLS0KIC4uLnMtdjgtc3JjLXRyYXAtaGFuZGxlci10cmFwLWhhbmRsZXIuaC5wYXRj aCB8ICAzMSArCiAuLi4vbm9kZWpzLWx0cy9wYXRjaGVzL2Nyb3NzLWFhcmNoNjQucGF0Y2ggICAg fCAgMjkgKwogLi4uL3BhdGNoZXMvcHBjLWZpeGVzLWZvci1vbGRlci1tb2RlbHMucGF0Y2ggIHwg ODQ3IC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvc2hhcmVk LXV2LnBhdGNoICAgIHwgIDE3ICstCiA0IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyks IDg2MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL25vZGVqcy1sdHMv cGF0Y2hlcy85OTktZGVwcy12OC1zcmMtdHJhcC1oYW5kbGVyLXRyYXAtaGFuZGxlci5oLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvY3Jvc3MtYWFy Y2g2NC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVz L3BwYy1maXhlcy1mb3Itb2xkZXItbW9kZWxzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9u b2RlanMtbHRzL3BhdGNoZXMvOTk5LWRlcHMtdjgtc3JjLXRyYXAtaGFuZGxlci10cmFwLWhhbmRs ZXIuaC5wYXRjaCBiL3NyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVzLzk5OS1kZXBzLXY4LXNyYy10 cmFwLWhhbmRsZXItdHJhcC1oYW5kbGVyLmgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi41NjUyOWFmOTcyMjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L25vZGVqcy1sdHMvcGF0Y2hlcy85OTktZGVwcy12OC1zcmMtdHJhcC1oYW5kbGVyLXRyYXAtaGFu ZGxlci5oLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK2h0dHBzOi8vZ2l0aHViLmNvbS9ueGhhY2sv b3BlbndydC1ub2RlLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL25vZGUvcGF0Y2hlcy92MTYueC85OTkt ZGVwcy12OC1zcmMtdHJhcC1oYW5kbGVyLXRyYXAtaGFuZGxlci5oLnBhdGNoCisKKy0tLSBhL2Rl cHMvdjgvc3JjL3RyYXAtaGFuZGxlci90cmFwLWhhbmRsZXIuaAorKysrIGIvZGVwcy92OC9zcmMv dHJhcC1oYW5kbGVyL3RyYXAtaGFuZGxlci5oCitAQCAtMTcsMTkgKzE3LDE2IEBAIG5hbWVzcGFj ZSB2OCB7CisgbmFtZXNwYWNlIGludGVybmFsIHsKKyBuYW1lc3BhY2UgdHJhcF9oYW5kbGVyIHsK KyAKKy0vLyBYNjQgb24gTGludXgsIFdpbmRvd3MsIE1hY09TLCBGcmVlQlNELgorLSNpZiBWOF9I T1NUX0FSQ0hfWDY0ICYmIFY4X1RBUkdFVF9BUkNIX1g2NCAmJiAgICAgICAgICAgICAgICAgICAg ICAgIFwKKy0gICAgKChWOF9PU19MSU5VWCAmJiAhVjhfT1NfQU5EUk9JRCkgfHwgVjhfT1NfV0lO IHx8IFY4X09TX01BQ09TWCB8fCBcCistICAgICBWOF9PU19GUkVFQlNEKQorKyNpZiBWOF9UQVJH RVRfQVJDSF9YNjQgJiYgVjhfT1NfTElOVVggJiYgIVY4X09TX0FORFJPSUQKKyAjZGVmaW5lIFY4 X1RSQVBfSEFORExFUl9TVVBQT1JURUQgdHJ1ZQorLS8vIEFybTY0IChub24tc2ltdWxhdG9yKSBv biBNYWMuCistI2VsaWYgVjhfVEFSR0VUX0FSQ0hfQVJNNjQgJiYgVjhfSE9TVF9BUkNIX0FSTTY0 ICYmIFY4X09TX01BQ09TWAorKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1g2NCAmJiBWOF9PU19XSU4K KyAjZGVmaW5lIFY4X1RSQVBfSEFORExFUl9TVVBQT1JURUQgdHJ1ZQorLS8vIEFybTY0IHNpbXVs YXRvciBvbiB4NjQgb24gTGludXggb3IgTWFjLgorLSNlbGlmIFY4X1RBUkdFVF9BUkNIX0FSTTY0 ICYmIFY4X0hPU1RfQVJDSF9YNjQgJiYgKFY4X09TX0xJTlVYIHx8IFY4X09TX01BQ09TWCkKKy0j ZGVmaW5lIFY4X1RSQVBfSEFORExFUl9WSUFfU0lNVUxBVE9SCisrI2VsaWYgVjhfVEFSR0VUX0FS Q0hfWDY0ICYmIFY4X09TX01BQ09TWAorKyNkZWZpbmUgVjhfVFJBUF9IQU5ETEVSX1NVUFBPUlRF RCB0cnVlCisrI2VsaWYgVjhfVEFSR0VUX0FSQ0hfWDY0ICYmIFY4X09TX0ZSRUVCU0QKKysjZGVm aW5lIFY4X1RSQVBfSEFORExFUl9TVVBQT1JURUQgdHJ1ZQorKyNlbGlmIFY4X0hPU1RfQVJDSF9B Uk02NCAmJiBWOF9UQVJHRVRfQVJDSF9BUk02NCAmJiBWOF9PU19NQUNPU1gKKyAjZGVmaW5lIFY4 X1RSQVBfSEFORExFUl9TVVBQT1JURUQgdHJ1ZQorLS8vIEV2ZXJ5dGhpbmcgZWxzZSBpcyB1bnN1 cHBvcnRlZC4KKyAjZWxzZQorICNkZWZpbmUgVjhfVFJBUF9IQU5ETEVSX1NVUFBPUlRFRCBmYWxz ZQorICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvY3Jvc3Mt YWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVzL2Nyb3NzLWFhcmNoNjQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zYjk2Yzg3ZjJm ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL25vZGVqcy1sdHMvcGF0Y2hlcy9jcm9zcy1h YXJjaDY0LnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gNGFjOTBjNDEwNjVkMzM4YzQzMDVj ZjZkYzM5ZTMwODRiMjFhN2Y3OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hh bCBWYXNpbGVrIDxtaWNoYWxAdmFzaWxlay5jej4KK0RhdGU6IFN1biwgMjAgTm92IDIwMjIgMTk6 MjI6MDMgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gUmV2ZXJ0ICJidWlsZDogZW5hYmxlIHBvaW50 ZXIgYXV0aGVudGljYXRpb24gZm9yIGJyYW5jaAorIHByb3RlY3Rpb24gb24gYXJtNjQiCisKK1Ro aXMgcmV2ZXJ0cyBjb21taXQgOTM4MjEyZjNlNzRhNzRkMGI0MzY5NDFhYTI0ZTcxNDI1ZmY2NjZj NS4KKy0tLQorIGNvbmZpZ3VyZS5weSB8IDQgLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLnB5IGIvY29uZmlndXJlLnB5CitpbmRl eCBkMzE5MmNhMDRjLi4yZDA0OWViOTM4IDEwMDc1NQorLS0tIGEvY29uZmlndXJlLnB5CisrKysg Yi9jb25maWd1cmUucHkKK0BAIC0xMjQxLDEwICsxMjQxLDYgQEAgZGVmIGNvbmZpZ3VyZV9ub2Rl KG8pOgorIAorICAgb1sndmFyaWFibGVzJ11bJ3dhbnRfc2VwYXJhdGVfaG9zdF90b29sc2V0J10g PSBpbnQoY3Jvc3NfY29tcGlsaW5nKQorIAorLSAgIyBFbmFibGUgYnJhbmNoIHByb3RlY3Rpb24g Zm9yIGFybTY0CistICBpZiB0YXJnZXRfYXJjaCA9PSAnYXJtNjQnOgorLSAgICBvWydjZmxhZ3Mn XSs9WyctbXNpZ24tcmV0dXJuLWFkZHJlc3M9YWxsJ10KKy0KKyAgIGlmIG9wdGlvbnMubm9kZV9z bmFwc2hvdF9tYWluIGlzIG5vdCBOb25lOgorICAgICBpZiBvcHRpb25zLnNoYXJlZDoKKyAgICAg ICAjIFRoaXMgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGZpeCwgYnV0IHdlIHdpbGwgbmVlZCB0byBy ZWZhY3RvciB0aGUKKy0tIAorMi4zOC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvbm9kZWpzLWx0 cy9wYXRjaGVzL3BwYy1maXhlcy1mb3Itb2xkZXItbW9kZWxzLnBhdGNoIGIvc3JjcGtncy9ub2Rl anMtbHRzL3BhdGNoZXMvcHBjLWZpeGVzLWZvci1vbGRlci1tb2RlbHMucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhMzYzMGYxYWQ0ZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVzL3BwYy1maXhlcy1mb3Itb2xkZXItbW9kZWxzLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsODQ3ICswLDAgQEAKLUZpeCBQb3dlclBDIENQVSBkZXRlY3Rp b24gYW5kIGNvZGVnZW4gdG8gd29yayB3aXRoIG1vcmUgcHJvY2Vzc29ycy4KLQotVGhpcyBwYXRj aCBkZWZpbmVzIHRoZSBjb3JyZWN0IG9wdGlvbmFsIFBvd2VyIElTQSBmZWF0dXJlcyB0aGF0IHRo ZQotUFBDIGNvZGUgZ2VuZXJhdG9yIG5lZWRzIGluIG9yZGVyIHRvIHJ1biB3aXRob3V0IGNyYXNo aW5nIG9uIHYyLjAxCi1hbmQgb2xkZXIgQ1BVcyBzdWNoIGFzIFBQQyA5NzAgKEc1KSBvciBOWFAg ZTY1MDAsIGFuZCB0byBydW4gbW9yZQotZWZmaWNpZW50bHkgb24gQ1BVcyB3aXRoIGZlYXR1cmVz IHRoYXQgd2VyZW4ndCBiZWluZyB1c2VkIGJlZm9yZS4KLQotUG93ZXJQQyBJU0EgdjIuMDEgYW5k IG9sZGVyIENQVXMgZG9uJ3QgaGF2ZSBGUCByb3VuZCB0byBpbnQgaW5zdHJ1Y3Rpb25zLAotYW5k IFBvd2VyUEMgSVNBIHYyLjA2IGFuZCBvbGRlciBhcmUgbWlzc2luZyBzdXBwb3J0IGZvciB1bnNp Z25lZCA2NC1iaXQKLXRvL2Zyb20gZG91YmxlLCBhcyB3ZWxsIGFzIGludGVnZXIgdG8vZnJvbSBz aW5nbGUtcHJlY2lzaW9uIGZsb2F0LgotCi1BZGQgYSBuZXcgRlBfUk9VTkRfVE9fSU5UIENQVSBm ZWF0dXJlIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIGdlbmVyYXRlCi1GUCByb3VuZCB0byBpbnQs IGFuZCBhZGQgYSBuZXcgUFBDXzdfUExVUyBmZWF0dXJlIHRvIGRldGVybWluZSB3aGV0aGVyCi10 byB1c2UgdGhlIHYyLjA2IEZQUiBjb252ZXJzaW9uIGluc3RydWN0aW9ucyBvciBnZW5lcmF0ZSBh biBhbHRlcm5hdGUKLXNlcXVlbmNlIHRvIGhhbmRsZSBsYXJnZSA2NC1iaXQgdW5zaWduZWQgaW50 cywgYW5kIHNpbmdsZS1wcmVjaXNpb24gCi11c2luZyB0aGUgdjIuMDEgaW5zdHJ1Y3Rpb25zIHdp dGggaGFuZGxpbmcgZm9yIGxhcmdlIHVpbnQ2NF90IHZhbHVlcwotYXMgd2VsbCBhcyByb3VuZGlu ZyByZXN1bHRzIGZyb20gZG91YmxlIHRvIHNpbmdsZS1wcmVjaXNpb24uCi0KLUFsc28gYWRkIGEg bmV3IFBPUF9DT1VOVCBmZWF0dXJlIGZvciB0aGUgcG9wY250IG9wY29kZXMgYWRkZWQgaW4gdjIu MDYsCi13aGljaCBhcmUgYWxzbyBwcmVzZW50IGluIHRoZSBOWFAgZTU1MDAgYW5kIGU2NTAwIGNv cmVzLCB3aGljaCBhcmUKLW90aGVyd2lzZSBtaXNzaW5nIG1hbnkgb2YgdGhlIGZlYXR1cmVzIGFk ZGVkIHNpbmNlIHYyLjAxLgotCi1CeSBkZWZpbmluZyBhbiBJQ0FDSEVfU05PT1AgZmVhdHVyZSBi aXQgdG8gcmVwbGFjZSB0aGUgcG9vcmx5LW5hbWVkCi0iTFdTWU5DIiwgdGhlIG1lYW5pbmcgb2Yg dGhlIGluc3RydWN0aW9uIGNhY2hlIGZsdXNoaW5nIGZhc3QgcGF0aCwKLWFuZCB0aGUgQ1BVcyB0 aGF0IGNhbiB1c2UgaXQsIGFyZSBtb3JlIGNsZWFybHkgZGVmaW5lZC4gSW4gYWRkaXRpb24sCi1m b3IgdGhlIG90aGVyIFBvd2VyUEMgY2hpcHMsIHRoZSBsb29wIHRvIGZsdXNoIHRoZSBkYXRhIGFu ZCBpbnN0cnVjdGlvbgotY2FjaGUgYmxvY2tzIGhhcyBiZWVuIHNwbGl0IGludG8gdHdvIGxvb3Bz LCB3aXRoIGEgc2luZ2xlICJzeW5jIiBhbmQKLSJpc3luYyIgYWZ0ZXIgZWFjaCBsb29wLCB3aGlj aCBzaG91bGQgYmUgbW9yZSBlZmZpY2llbnQsIGFuZCBhbHNvIGhhbmRsZXMKLXRoZSBmZXcgQ1BV cyB3aXRoIGRpZmZlcmluZyBkYXRhIGFuZCBpbnN0cnVjdGlvbiBjYWNoZSBsaW5lIHNpemVzLgot Ci1JbiB0aGUgbWFjcm8gYXNzZW1ibGVyIG1ldGhvZHMsIGluIGFkZGl0aW9uIHRvIHByb3ZpZGlu ZyBhbiBhbHRlcm5hdGUKLXBhdGggZm9yIEZQIGNvbnZlcnNpb24gb3Bjb2RlcyBhZGRlZCBpbiBQ T1dFUjcgKElTQSB2Mi4wNiksIHVubmVjZXNzYXJ5Ci1pbnN0cnVjdGlvbnMgdG8gbW92ZSBzcCBk b3duIGFuZCB0aGVuIGltbWVkaWF0ZWx5IGJhY2sgdXAgd2VyZSByZXBsYWNlZAotd2l0aCBuZWdh dGl2ZSBvZmZzZXRzIGZyb20gdGhlIGN1cnJlbnQgc3AuIFRoaXMgc2hvdWxkIGJlIGZhc3Rlciwg YW5kIGFsc28KLXNwIGlzIHN1cHBvc2VkIHRvIHBvaW50IHRvIGEgYmFjayBjaGFpbiBhdCBhbGwg dGltZXMgKFY4IG1heSBub3QgZG8gdGhpcykuCi0KLVRoaXMgcGF0Y2ggYWxzbyBmaXhlcyBwcGM2 NCBiaWctZW5kaWFuIEVMRnYxIGJ1aWxkcyAobm90IG5lZWRlZCBmb3IgVm9pZCkuCi0KLS0tLSBh L2RlcHMvdjgvc3JjL2Jhc2UvY3B1LmNjCTIwMjItMDItMTUgMjE6MTE6NDYuMjkxMzg3NDU3IC0w ODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9iYXNlL2NwdS5jYwkyMDIyLTAyLTE3IDIzOjAxOjQwLjYy NDU5NzUyMyAtMDgwMAotQEAgLTEwLDcgKzEwLDcgQEAKLSAjaWYgVjhfT1NfTElOVVgKLSAjaW5j bHVkZSA8bGludXgvYXV4dmVjLmg+ICAvLyBBVF9IV0NBUAotICNlbmRpZgotLSNpZiBWOF9HTElC Q19QUkVSRVEoMiwgMTYpCi0rI2lmIFY4X0dMSUJDX1BSRVJFUSgyLCAxNikgfHwgKFY4X09TX0xJ TlVYICYmIFY4X0hPU1RfQVJDSF9QUEMpCi0gI2luY2x1ZGUgPHN5cy9hdXh2Lmg+ICAvLyBnZXRh dXh2YWwoKQotICNlbmRpZgotICNpZiBWOF9PU19RTlgKLUBAIC02MTEsNTcgKzYxMSw1NiBAQAot IAotICNpZm5kZWYgVVNFX1NJTVVMQVRPUgotICNpZiBWOF9PU19MSU5VWAotLSAgLy8gUmVhZCBw cm9jZXNzb3IgaW5mbyBmcm9tIC9wcm9jL3NlbGYvYXV4di4KLS0gIGNoYXIqIGF1eHZfY3B1X3R5 cGUgPSBudWxscHRyOwotLSAgRklMRSogZnAgPSBmb3BlbigiL3Byb2Mvc2VsZi9hdXh2IiwgInIi KTsKLS0gIGlmIChmcCAhPSBudWxscHRyKSB7Ci0tI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0t ICAgIEVsZjY0X2F1eHZfdCBlbnRyeTsKLS0jZWxzZQotLSAgICBFbGYzMl9hdXh2X3QgZW50cnk7 Ci0tI2VuZGlmCi0tICAgIGZvciAoOzspIHsKLS0gICAgICBzaXplX3QgbiA9IGZyZWFkKCZlbnRy eSwgc2l6ZW9mKGVudHJ5KSwgMSwgZnApOwotLSAgICAgIGlmIChuID09IDAgfHwgZW50cnkuYV90 eXBlID09IEFUX05VTEwpIHsKLS0gICAgICAgIGJyZWFrOwotLSAgICAgIH0KLS0gICAgICBzd2l0 Y2ggKGVudHJ5LmFfdHlwZSkgewotLSAgICAgICAgY2FzZSBBVF9QTEFURk9STToKLS0gICAgICAg ICAgYXV4dl9jcHVfdHlwZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGVudHJ5LmFfdW4uYV92 YWwpOwotLSAgICAgICAgICBicmVhazsKLS0gICAgICAgIGNhc2UgQVRfSUNBQ0hFQlNJWkU6Ci0t ICAgICAgICAgIGljYWNoZV9saW5lX3NpemVfID0gZW50cnkuYV91bi5hX3ZhbDsKLS0gICAgICAg ICAgYnJlYWs7Ci0tICAgICAgICBjYXNlIEFUX0RDQUNIRUJTSVpFOgotLSAgICAgICAgICBkY2Fj aGVfbGluZV9zaXplXyA9IGVudHJ5LmFfdW4uYV92YWw7Ci0tICAgICAgICAgIGJyZWFrOwotLSAg ICAgIH0KLS0gICAgfQotLSAgICBmY2xvc2UoZnApOwotLSAgfQotKyAgLy8gUmVhZCBwcm9jZXNz b3IgaW5mbyBmcm9tIGdldGF1eHZhbCgpIChuZWVkcyBhdCBsZWFzdCBnbGliYyAyLjE4IG9yIG11 c2wpLgotKyAgaWNhY2hlX2xpbmVfc2l6ZV8gPSBzdGF0aWNfY2FzdDxpbnQ+KGdldGF1eHZhbChB VF9JQ0FDSEVCU0laRSkpOwotKyAgZGNhY2hlX2xpbmVfc2l6ZV8gPSBzdGF0aWNfY2FzdDxpbnQ+ KGdldGF1eHZhbChBVF9EQ0FDSEVCU0laRSkpOwotKyAgY29uc3QgdW5zaWduZWQgbG9uZyBod2Nh cCA9IGdldGF1eHZhbChBVF9IV0NBUCk7Ci0rICBjb25zdCB1bnNpZ25lZCBsb25nIGh3Y2FwMiA9 IGdldGF1eHZhbChBVF9IV0NBUDIpOwotKyAgY29uc3QgY2hhciogcGxhdGZvcm0gPSByZWludGVy cHJldF9jYXN0PGNvbnN0IGNoYXIqPihnZXRhdXh2YWwoQVRfUExBVEZPUk0pKTsKLSsKLSsgIC8v IE5PVEU6IEFUX0hXQ0FQIElTQSB2ZXJzaW9uIGJpdHMgYXJlbid0IGN1bXVsYXRpdmUsIHNvIGl0 J3MgbmVjZXNzYXJ5Ci0rICAvLyB0byBjb21wYXJlIGFnYWluc3QgYSBtYXNrIG9mIGFsbCBzdXBw b3J0ZWQgdmVyc2lvbnMgYW5kIENQVXMsIHVwIHRvCi0rICAvLyBJU0EgdjIuMDYsIHdoaWNoICpp cyogc2V0IGZvciBsYXRlciBDUFVzLiBJbiBjb250cmFzdCwgdGhlIEFUX0hXQ0FQMgotKyAgLy8g SVNBIHZlcnNpb24gYml0cyBmcm9tIHYyLjA3IG9ud2FyZCBhcmUgc2V0IGN1bXVsYXRpdmVseSwg c28gUE9XRVIxMAotKyAgLy8gd2lsbCBzZXQgdGhlIElTQSB2ZXJzaW9uIGJpdHMgZnJvbSB2Mi4w NiAoaW4gQVRfSFdDQVApIHRocm91Z2ggdjMuMS4KLSsKLSsgIC8vIGktY2FjaGUgY29oZXJlbmN5 IHJlcXVpcmVzIFBvd2VyIElTQSB2Mi4wMiBvciBsYXRlcjsgaGFzIGl0cyBvd24gZmxhZy4KLSsg IGhhc19pY2FjaGVfc25vb3BfID0gKGh3Y2FwICYgUFBDX0ZFQVRVUkVfSUNBQ0hFX1NOT09QKTsK LSsKLSsgIC8vIHJlcXVpcmVzIFBvd2VyIElTQSB2Mi4wMyBvciBsYXRlciwgb3IgdGhlIEhBU19J U0VMIGJpdCAoZS5nLiBlNjUwMCkuCi0rICBoYXNfaXNlbF8gPSAoaHdjYXAgJiAoUFBDX0ZFQVRV UkVfUE9XRVI1X1BMVVMgfCBQUENfRkVBVFVSRV9BUkNIXzJfMDUgfAotKyAgICAgIFBQQ19GRUFU VVJFX1BBNlQgfCBQUENfRkVBVFVSRV9QT1dFUjZfRVhUIHwgUFBDX0ZFQVRVUkVfQVJDSF8yXzA2 KSkgfHwKLSsgICAgICAoaHdjYXAyICYgUFBDX0ZFQVRVUkUyX0hBU19JU0VMKTsKLSsKLSsgIC8v IGh3Y2FwIG1hc2sgZm9yIG9sZGVyIDY0LWJpdCBQUEMgQ1BVcyB3aXRoIEFsdGl2ZWMsIGUuZy4g RzUsIENlbGwuCi0rICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBrSHdjYXBNYXNrUFBDRzUg PQotKyAgICAgIChQUENfRkVBVFVSRV82NCB8IFBQQ19GRUFUVVJFX0hBU19BTFRJVkVDKTsKLSAK LSAgIHBhcnRfID0gLTE7Ci0tICBpZiAoYXV4dl9jcHVfdHlwZSkgewotLSAgICBpZiAoc3RyY21w KGF1eHZfY3B1X3R5cGUsICJwb3dlcjEwIikgPT0gMCkgewotLSAgICAgIHBhcnRfID0gUFBDX1BP V0VSMTA7Ci0tICAgIH0KLS0gICAgZWxzZSBpZiAoc3RyY21wKGF1eHZfY3B1X3R5cGUsICJwb3dl cjkiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBQUENfUE9XRVI5OwotLSAgICB9IGVsc2UgaWYg KHN0cmNtcChhdXh2X2NwdV90eXBlLCAicG93ZXI4IikgPT0gMCkgewotLSAgICAgIHBhcnRfID0g UFBDX1BPV0VSODsKLS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwgInBvd2Vy NyIpID09IDApIHsKLS0gICAgICBwYXJ0XyA9IFBQQ19QT1dFUjc7Ci0tICAgIH0gZWxzZSBpZiAo c3RyY21wKGF1eHZfY3B1X3R5cGUsICJwb3dlcjYiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBQ UENfUE9XRVI2OwotLSAgICB9IGVsc2UgaWYgKHN0cmNtcChhdXh2X2NwdV90eXBlLCAicG93ZXI1 IikgPT0gMCkgewotLSAgICAgIHBhcnRfID0gUFBDX1BPV0VSNTsKLS0gICAgfSBlbHNlIGlmIChz dHJjbXAoYXV4dl9jcHVfdHlwZSwgInBwYzk3MCIpID09IDApIHsKLS0gICAgICBwYXJ0XyA9IFBQ Q19HNTsKLS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwgInBwYzc0NTAiKSA9 PSAwKSB7Ci0tICAgICAgcGFydF8gPSBQUENfRzQ7Ci0tICAgIH0gZWxzZSBpZiAoc3RyY21wKGF1 eHZfY3B1X3R5cGUsICJwYTZ0IikgPT0gMCkgewotLSAgICAgIHBhcnRfID0gUFBDX1BBNlQ7Ci0t ICAgIH0KLSsgIGlmIChod2NhcDIgJiBQUENfRkVBVFVSRTJfQVJDSF8zXzEpIHsKLSsgICAgcGFy dF8gPSBQUENfUE9XRVIxMDsKLSsgIH0gZWxzZSBpZiAoaHdjYXAyICYgUFBDX0ZFQVRVUkUyX0FS Q0hfM18wMCkgewotKyAgICBwYXJ0XyA9IFBQQ19QT1dFUjk7Ci0rICB9IGVsc2UgaWYgKGh3Y2Fw MiAmIFBQQ19GRUFUVVJFMl9BUkNIXzJfMDcpIHsKLSsgICAgcGFydF8gPSBQUENfUE9XRVI4Owot KyAgfSBlbHNlIGlmIChod2NhcCAmIFBQQ19GRUFUVVJFX0FSQ0hfMl8wNikgewotKyAgICBwYXJ0 XyA9IFBQQ19QT1dFUjc7Ci0rICB9IGVsc2UgaWYgKGh3Y2FwICYgUFBDX0ZFQVRVUkVfQVJDSF8y XzA1KSB7Ci0rICAgIHBhcnRfID0gUFBDX1BPV0VSNjsKLSsgIH0gZWxzZSBpZiAoaHdjYXAgJiAo UFBDX0ZFQVRVUkVfUE9XRVI1IHwgUFBDX0ZFQVRVUkVfUE9XRVI1X1BMVVMpKSB7Ci0rICAgIHBh cnRfID0gUFBDX1BPV0VSNTsKLSsgIH0gZWxzZSBpZiAoaHdjYXAgJiBQUENfRkVBVFVSRV9QQTZU KSB7Ci0rICAgIHBhcnRfID0gUFBDX1BBNlQ7Ci0rICB9IGVsc2UgaWYgKHN0cmNtcChwbGF0Zm9y bSwgInBwY2U2NTAwIikgPT0gMCkgewotKyAgICBwYXJ0XyA9IFBQQ19FNjUwMDsKLSsgIH0gZWxz ZSBpZiAoc3RyY21wKHBsYXRmb3JtLCAicHBjZTU1MDAiKSA9PSAwKSB7Ci0rICAgIHBhcnRfID0g UFBDX0U1NTAwOwotKyAgfSBlbHNlIGlmICgoaHdjYXAgJiBrSHdjYXBNYXNrUFBDRzUpID09IGtI d2NhcE1hc2tQUENHNSkgewotKyAgICBwYXJ0XyA9IFBQQ19HNTsKLSsgIH0gZWxzZSBpZiAoaHdj YXAgJiBQUENfRkVBVFVSRV9IQVNfQUxUSVZFQykgewotKyAgICBwYXJ0XyA9IFBQQ19HNDsKLSsg IH0gZWxzZSB7Ci0rICAgIHBhcnRfID0gUFBDX0czOwotICAgfQotIAotICNlbGlmIFY4X09TX0FJ WAotQEAgLTY4Miw5ICs2ODEsMTMgQEAKLSAgICAgICBwYXJ0XyA9IFBQQ19QT1dFUjY7Ci0gICAg ICAgYnJlYWs7Ci0gICAgIGNhc2UgUE9XRVJfNToKLSsgICAgZGVmYXVsdDoKLSAgICAgICBwYXJ0 XyA9IFBQQ19QT1dFUjU7Ci0gICAgICAgYnJlYWs7Ci0gICB9Ci0rCi0rICBoYXNfaWNhY2hlX3Nu b29wXyA9IHRydWU7Ci0rICBoYXNfaXNlbF8gPSAocGFydF8gIT0gUFBDX1BPV0VSNSk7ICAgIC8v IGlzZWwgd2FzIGFkZGVkIGluIFBPV0VSNSsgKHYyLjAzKQotICNlbmRpZiAgLy8gVjhfT1NfQUlY Ci0gI2VuZGlmICAvLyAhVVNFX1NJTVVMQVRPUgotICNlbmRpZiAgLy8gVjhfSE9TVF9BUkNIX1BQ QwotLS0tIGEvZGVwcy92OC9zcmMvYmFzZS9jcHUuaAkyMDIyLTAyLTE1IDIxOjExOjQ2LjI5MTM4 NzQ1NyAtMDgwMAotKysrIGIvZGVwcy92OC9zcmMvYmFzZS9jcHUuaAkyMDIyLTAyLTE3IDE5OjU0 OjA4Ljc2ODYxNDgwNSAtMDgwMAotQEAgLTcxLDkgKzcxLDEyIEBACi0gICAgIFBQQ19QT1dFUjgs Ci0gICAgIFBQQ19QT1dFUjksCi0gICAgIFBQQ19QT1dFUjEwLAotKyAgICBQUENfRzMsCi0gICAg IFBQQ19HNCwKLSAgICAgUFBDX0c1LAotLSAgICBQUENfUEE2VAotKyAgICBQUENfUEE2VCwKLSsg ICAgUFBDX0U1NTAwLAotKyAgICBQUENfRTY1MDAKLSAgIH07Ci0gCi0gICAvLyBHZW5lcmFsIGZl YXR1cmVzCi1AQCAtMTE2LDYgKzExOSwxMCBAQAotICAgYm9vbCBpc19mcDY0X21vZGUoKSBjb25z dCB7IHJldHVybiBpc19mcDY0X21vZGVfOyB9Ci0gICBib29sIGhhc19tc2EoKSBjb25zdCB7IHJl dHVybiBoYXNfbXNhXzsgfQotIAotKyAgLy8gUG93ZXJQQyBmZWF0dXJlcwotKyAgYm9vbCBoYXNf aWNhY2hlX3Nub29wKCkgY29uc3QgeyByZXR1cm4gaGFzX2ljYWNoZV9zbm9vcF87IH0KLSsgIGJv b2wgaGFzX2lzZWwoKSBjb25zdCB7IHJldHVybiBoYXNfaXNlbF87IH0KLSsKLSAgcHJpdmF0ZToK LSAgIGNoYXIgdmVuZG9yX1sxM107Ci0gICBpbnQgc3RlcHBpbmdfOwotQEAgLTE1Nyw2ICsxNjQs OCBAQAotICAgYm9vbCBpc19mcDY0X21vZGVfOwotICAgYm9vbCBoYXNfbm9uX3N0b3BfdGltZV9z dGFtcF9jb3VudGVyXzsKLSAgIGJvb2wgaGFzX21zYV87Ci0rICBib29sIGhhc19pY2FjaGVfc25v b3BfOwotKyAgYm9vbCBoYXNfaXNlbF87Ci0gfTsKLSAKLSB9ICAvLyBuYW1lc3BhY2UgYmFzZQot LS0tIGEvZGVwcy92OC9zcmMvY29kZWdlbi9wcGMvbWFjcm8tYXNzZW1ibGVyLXBwYy5jYwkyMDIy LTAyLTAxIDEwOjUzOjA5LjAwMDAwMDAwMCAtMDgwMAotKysrIGIvZGVwcy92OC9zcmMvY29kZWdl bi9wcGMvbWFjcm8tYXNzZW1ibGVyLXBwYy5jYwkyMDIyLTAyLTE4IDIyOjU1OjM2LjY3NjQ2MTM0 MyAtMDgwMAotQEAgLTcwNiwxMyArNzA2LDI1IEBACi0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6 Q29udmVydEludFRvRmxvYXQoUmVnaXN0ZXIgc3JjLCBEb3VibGVSZWdpc3RlciBkc3QpIHsKLSAg IE1vdkludFRvRG91YmxlKGRzdCwgc3JjLCByMCk7Ci0tICBmY2ZpZHMoZHN0LCBkc3QpOwotKwot KyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENfN19QTFVTKSkgewotKyAgICBmY2Zp ZHMoZHN0LCBkc3QpOwotKyAgfSBlbHNlIHsKLSsgICAgZmNmaWQoZHN0LCBkc3QpOwotKyAgICBm cnNwKGRzdCwgZHN0KTsKLSsgIH0KLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q29udmVy dFVuc2lnbmVkSW50VG9GbG9hdChSZWdpc3RlciBzcmMsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVSZWdpc3RlciBkc3QpIHsKLSAgIE1vdlVu c2lnbmVkSW50VG9Eb3VibGUoZHN0LCBzcmMsIHIwKTsKLS0gIGZjZmlkcyhkc3QsIGRzdCk7Ci0r Ci0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAgIGZj Zmlkcyhkc3QsIGRzdCk7Ci0rICB9IGVsc2UgewotKyAgICBmY2ZpZChkc3QsIGRzdCk7Ci0rICAg IGZyc3AoZHN0LCBkc3QpOwotKyAgfQotIH0KLSAKLSAjaWYgVjhfVEFSR0VUX0FSQ0hfUFBDNjQK LUBAIC03MjQsMjAgKzczNiw1MiBAQAotIAotIHZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNvbnZlcnRV bnNpZ25lZEludDY0VG9GbG9hdChSZWdpc3RlciBzcmMsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvdWJsZVJlZ2lzdGVyIGRvdWJsZV9kc3QpIHsK LS0gIE1vdkludDY0VG9Eb3VibGUoZG91YmxlX2RzdCwgc3JjKTsKLS0gIGZjZmlkdXMoZG91Ymxl X2RzdCwgZG91YmxlX2RzdCk7Ci0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183 X1BMVVMpKSB7Ci0rICAgIE1vdkludDY0VG9Eb3VibGUoZG91YmxlX2RzdCwgc3JjKTsKLSsgICAg ZmNmaWR1cyhkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0gZWxzZSB7Ci0rICAgIENvbnZl cnRVbnNpZ25lZEludDY0VG9Eb3VibGUoc3JjLCBkb3VibGVfZHN0KTsKLSsgICAgZnJzcChkb3Vi bGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0KLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6 Q29udmVydFVuc2lnbmVkSW50NjRUb0RvdWJsZShSZWdpc3RlciBzcmMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVSZWdpc3RlciBkb3Vi bGVfZHN0KSB7Ci0tICBNb3ZJbnQ2NFRvRG91YmxlKGRvdWJsZV9kc3QsIHNyYyk7Ci0tICBmY2Zp ZHUoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9y dGVkKFBQQ183X1BMVVMpKSB7Ci0rICAgIE1vdkludDY0VG9Eb3VibGUoZG91YmxlX2RzdCwgc3Jj KTsKLSsgICAgZmNmaWR1KGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgfSBlbHNlIHsKLSsg ICAgTGFiZWwgbmVnYXRpdmU7Ci0rICAgIExhYmVsIGRvbmU7Ci0rICAgIGNtcGkoc3JjLCBPcGVy YW5kOjpaZXJvKCkpOwotKyAgICBibHQoJm5lZ2F0aXZlKTsKLSsgICAgc3RkKHNyYywgTWVtT3Bl cmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8v IExIUy9SQVcgb3B0aW1pemF0aW9uCi0rICAgIGxmZChkb3VibGVfZHN0LCBNZW1PcGVyYW5kKHNw LCAta0RvdWJsZVNpemUpKTsKLSsgICAgZmNmaWQoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0r ICAgIGIoJmRvbmUpOwotKyAgICBiaW5kKCZuZWdhdGl2ZSk7Ci0rICAgIC8vIE5vdGU6IEdDQyBz YXZlcyB0aGUgbG93ZXN0IGJpdCwgdGhlbiBPUnMgaXQgYWZ0ZXIgc2hpZnRpbmcgcmlnaHQgMSBi aXQsCi0rICAgIC8vIHByZXN1bWFibHkgZm9yIGJldHRlciByb3VuZGluZy4gVGhpcyB2ZXJzaW9u IG9ubHkgc2hpZnRzIHJpZ2h0IDEgYml0LgotKyAgICBzcmRpKHIwLCBzcmMsIE9wZXJhbmQoMSkp OwotKyAgICBzdGQocjAsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotKyAgICBub3Ao R1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotKyAgICBsZmQoZG91 YmxlX2RzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAgIGZjZmlkKGRvdWJs ZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgICBmYWRkKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QsIGRv dWJsZV9kc3QpOwotKyAgICBiaW5kKCZkb25lKTsKLSsgICB9Ci0gfQotIAotIHZvaWQgVHVyYm9B c3NlbWJsZXI6OkNvbnZlcnRJbnQ2NFRvRmxvYXQoUmVnaXN0ZXIgc3JjLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0ZXIgZG91YmxlX2RzdCkg ewotICAgTW92SW50NjRUb0RvdWJsZShkb3VibGVfZHN0LCBzcmMpOwotLSAgZmNmaWRzKGRvdWJs ZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENf N19QTFVTKSkgewotKyAgICBmY2ZpZHMoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICB9IGVs c2UgewotKyAgICBmY2ZpZChkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgICAgZnJzcChkb3Vi bGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0KLSB9Ci0gI2VuZGlmCi0gCi1AQCAtNzY3LDE1ICs4 MTEsNTYgQEAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpDb252ZXJ0RG91YmxlVG9VbnNpZ25lZElu dDY0KAotICAgICBjb25zdCBEb3VibGVSZWdpc3RlciBkb3VibGVfaW5wdXQsIGNvbnN0IFJlZ2lz dGVyIGRzdCwKLSAgICAgY29uc3QgRG91YmxlUmVnaXN0ZXIgZG91YmxlX2RzdCwgRlBSb3VuZGlu Z01vZGUgcm91bmRpbmdfbW9kZSkgewotLSAgaWYgKHJvdW5kaW5nX21vZGUgPT0ga1JvdW5kVG9a ZXJvKSB7Ci0tICAgIGZjdGlkdXooZG91YmxlX2RzdCwgZG91YmxlX2lucHV0KTsKLSsgIGlmIChD cHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsgICAgaWYgKHJvdW5kaW5n X21vZGUgPT0ga1JvdW5kVG9aZXJvKSB7Ci0rICAgICAgZmN0aWR1eihkb3VibGVfZHN0LCBkb3Vi bGVfaW5wdXQpOwotKyAgICB9IGVsc2UgewotKyAgICAgIFNldFJvdW5kaW5nTW9kZShyb3VuZGlu Z19tb2RlKTsKLSsgICAgICBmY3RpZHUoZG91YmxlX2RzdCwgZG91YmxlX2lucHV0KTsKLSsgICAg ICBSZXNldFJvdW5kaW5nTW9kZSgpOwotKyAgICB9Ci0rCi0rICAgIE1vdkRvdWJsZVRvSW50NjQo ZHN0LCBkb3VibGVfZHN0KTsKLSAgIH0gZWxzZSB7Ci0tICAgIFNldFJvdW5kaW5nTW9kZShyb3Vu ZGluZ19tb2RlKTsKLS0gICAgZmN0aWR1KGRvdWJsZV9kc3QsIGRvdWJsZV9pbnB1dCk7Ci0tICAg IFJlc2V0Um91bmRpbmdNb2RlKCk7Ci0rICAgIExhYmVsIHNhZmVfc2l6ZTsKLSsgICAgTGFiZWwg ZG9uZTsKLSsgICAgbW92KGRzdCwgT3BlcmFuZCgxNTkzODM1NTIwKSk7ICAvLyBiaXQgcGF0dGVy biBmb3IgMl42MyBhcyBhIGZsb2F0Ci0rICAgIHN0dyhkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRmxv YXRTaXplKSk7Ci0rICAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1p emF0aW9uCi0rICAgIGxmcyhkb3VibGVfZHN0LCBNZW1PcGVyYW5kKHNwLCAta0Zsb2F0U2l6ZSkp OwotKyAgICBmY21wdShkb3VibGVfaW5wdXQsIGRvdWJsZV9kc3QpOwotKyAgICBibHQoJnNhZmVf c2l6ZSk7Ci0rICAgIC8vIFN1YnRyYWN0IDJeNjMsIHRoZW4gT1IgdGhlIHRvcCBiaXQgb2YgdGhl IHVpbnQ2NCB0byBhZGQgYmFjawotKyAgICBmc3ViKGRvdWJsZV9kc3QsIGRvdWJsZV9pbnB1dCwg ZG91YmxlX2RzdCk7Ci0rICAgIGlmIChyb3VuZGluZ19tb2RlID09IGtSb3VuZFRvWmVybykgewot KyAgICAgIGZjdGlkeihkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgICAgfSBlbHNlIHsKLSsg ICAgICBTZXRSb3VuZGluZ01vZGUocm91bmRpbmdfbW9kZSk7Ci0rICAgICAgZmN0aWQoZG91Ymxl X2RzdCwgZG91YmxlX2RzdCk7Ci0rICAgICAgUmVzZXRSb3VuZGluZ01vZGUoKTsKLSsgICAgfQot KyAgICAvLyBzZXQgcjAgdG8gLTEsIHRoZW4gY2xlYXIgYWxsIGJ1dCB0aGUgTVNCLgotKyAgICBt b3YocjAsIE9wZXJhbmQoLTEpKTsKLSsgICAgcmxkaWNyKHIwLCByMCwgMCwgMCk7Ci0rICAgIHN0 ZmQoZG91YmxlX2RzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAgIG5vcChH Uk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0rICAgIGxkKGRzdCwg TWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAgIHhvcl8oZHN0LCBkc3QsIHIwKTsK LSsgICAgYigmZG9uZSk7Ci0rICAgIC8vIEhhbmRsaW5nIGZvciB2YWx1ZXMgc21hbGxlciB0aGFu IDJeNjMuCi0rICAgIGJpbmQoJnNhZmVfc2l6ZSk7Ci0rICAgIGlmIChyb3VuZGluZ19tb2RlID09 IGtSb3VuZFRvWmVybykgewotKyAgICAgIGZjdGlkeihkb3VibGVfZHN0LCBkb3VibGVfaW5wdXQp OwotKyAgICB9IGVsc2UgewotKyAgICAgIFNldFJvdW5kaW5nTW9kZShyb3VuZGluZ19tb2RlKTsK LSsgICAgICBmY3RpZChkb3VibGVfZHN0LCBkb3VibGVfaW5wdXQpOwotKyAgICAgIFJlc2V0Um91 bmRpbmdNb2RlKCk7Ci0rICAgIH0KLSsgICAgc3RmZChkb3VibGVfZHN0LCBNZW1PcGVyYW5kKHNw LCAta0RvdWJsZVNpemUpKTsKLSsgICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JB VyBvcHRpbWl6YXRpb24KLSsgICAgbGQoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUp KTsKLSsgICAgYmluZCgmZG9uZSk7Ci0gICB9Ci0tCi0tICBNb3ZEb3VibGVUb0ludDY0KGRzdCwg ZG91YmxlX2RzdCk7Ci0gfQotICNlbmRpZgotIAotQEAgLTIwOTcsMTkgKzIxODIsMTcgQEAKLSAg IH0KLSAjZW5kaWYKLSAKLS0gIGFkZGkoc3AsIHNwLCBPcGVyYW5kKC1rRG91YmxlU2l6ZSkpOwot ICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotICAgbW92KHNjcmF0Y2gsIE9wZXJhbmQobGl0VmFs Lml2YWwpKTsKLS0gIHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwKSk7Ci0rICBzdGQoc2NyYXRj aCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gI2Vsc2UKLSAgIExvYWRJbnRMaXRl cmFsKHNjcmF0Y2gsIGxpdFZhbC5pdmFsWzBdKTsKLS0gIHN0dyhzY3JhdGNoLCBNZW1PcGVyYW5k KHNwLCAwKSk7Ci0rICBzdHcoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7 Ci0gICBMb2FkSW50TGl0ZXJhbChzY3JhdGNoLCBsaXRWYWwuaXZhbFsxXSk7Ci0tICBzdHcoc2Ny YXRjaCwgTWVtT3BlcmFuZChzcCwgNCkpOwotKyAgc3R3KHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3As IC1rRG91YmxlU2l6ZSArIDQpKTsKLSAjZW5kaWYKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsg IC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQocmVzdWx0LCBNZW1PcGVyYW5kKHNwLCAw KSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotKyAgbGZkKHJlc3Vs dCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQotIAotIHZvaWQgVHVyYm9Bc3Nl bWJsZXI6Ok1vdkludFRvRG91YmxlKERvdWJsZVJlZ2lzdGVyIGRzdCwgUmVnaXN0ZXIgc3JjLAot QEAgLTIxMjMsMTggKzIyMDYsMTYgQEAKLSAjZW5kaWYKLSAKLSAgIERDSEVDSyhzcmMgIT0gc2Ny YXRjaCk7Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotICNpZiBWOF9U QVJHRVRfQVJDSF9QUEM2NAotICAgZXh0c3coc2NyYXRjaCwgc3JjKTsKLS0gIHN0ZChzY3JhdGNo LCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0rICBzdGQoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgLWtE b3VibGVTaXplKSk7Ci0gI2Vsc2UKLSAgIHNyYXdpKHNjcmF0Y2gsIHNyYywgMzEpOwotLSAgc3R3 KHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLS0g IHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSsg IHN0dyhzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a0V4 cG9uZW50T2Zmc2V0KSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUg KyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gI2VuZGlmCi0gICBub3AoR1JPVVBfRU5E SU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVtT3BlcmFu ZChzcCwgMCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSsgIGxm ZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAKLSB2b2lkIFR1cmJv QXNzZW1ibGVyOjpNb3ZVbnNpZ25lZEludFRvRG91YmxlKERvdWJsZVJlZ2lzdGVyIGRzdCwgUmVn aXN0ZXIgc3JjLAotQEAgLTIxNDgsMTggKzIyMjksMTYgQEAKLSAjZW5kaWYKLSAKLSAgIERDSEVD SyhzcmMgIT0gc2NyYXRjaCk7Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkp OwotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotICAgY2xybGRpKHNjcmF0Y2gsIHNyYywgT3Bl cmFuZCgzMikpOwotLSAgc3RkKHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIDApKTsKLSsgIHN0ZChz Y3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAjZWxzZQotICAgbGkoc2Ny YXRjaCwgT3BlcmFuZDo6WmVybygpKTsKLS0gIHN0dyhzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCBS ZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0tICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCBS ZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0rICBzdHcoc2NyYXRjaCwgTWVtT3BlcmFuZChz cCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtFeHBvbmVudE9mZnNldCkpOwotKyAgc3R3KHNy YywgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNl dCkpOwotICNlbmRpZgotICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRp bWl6YXRpb24KLS0gIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIDApKTsKLS0gIGFkZGkoc3AsIHNw LCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0rICBsZmQoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0Rv dWJsZVNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92SW50NjRUb0RvdWJs ZShEb3VibGVSZWdpc3RlciBkc3QsCi1AQCAtMjE3NCwxNiArMjI1MywxNCBAQAotICAgfQotICNl bmRpZgotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSAjaWYgVjhf VEFSR0VUX0FSQ0hfUFBDNjQKLS0gIHN0ZChzcmMsIE1lbU9wZXJhbmQoc3AsIDApKTsKLSsgIHN0 ZChzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotICNlbHNlCi0tICBzdHcoc3Jj X2hpLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0tICBzdHco c3JjLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0rICBzdHco c3JjX2hpLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a0V4cG9uZW50 T2Zmc2V0KSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdp c3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gI2VuZGlmCi0gICBub3AoR1JPVVBfRU5ESU5HX05P UCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwg MCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSsgIGxmZChkc3Qs IE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAKLSAjaWYgVjhfVEFSR0VUX0FS Q0hfUFBDNjQKLUBAIC0yMTk4LDEyICsyMjc1LDEwIEBACi0gICAgIHJldHVybjsKLSAgIH0KLSAK LS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0tICBzdHcoc3JjX2hpLCBN ZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0tICBzdHcoc3JjX2xv LCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0rICBzdHcoc3Jj X2hpLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zm c2V0KSk7Ci0rICBzdHcoc3JjX2xvLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdp c3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBM SFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCkpOwotLSAgYWRk aShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSsgIGxmZChkc3QsIE1lbU9wZXJhbmQo c3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAjZW5kaWYKLSAKLUBAIC0yMjE4LDEyICsyMjkzLDEw IEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6 ZSkpOwotLSAgc3RmZChkc3QsIE1lbU9wZXJhbmQoc3ApKTsKLS0gIHN0dyhzcmMsIE1lbU9wZXJh bmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSsgIHN0ZmQoZHN0LCBNZW1PcGVy YW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91 YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSAgIG5vcChHUk9VUF9FTkRJ TkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQoZHN0LCBNZW1PcGVyYW5k KHNwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotKyAgbGZkKGRz dCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQotIAotIHZvaWQgVHVyYm9Bc3Nl bWJsZXI6Okluc2VydERvdWJsZUhpZ2goRG91YmxlUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmMs Ci1AQCAtMjIzNywxMiArMjMxMCwxMCBAQAotICAgfQotICNlbmRpZgotIAotLSAgc3ViaShzcCwg c3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLS0gIHN0ZmQoZHN0LCBNZW1PcGVyYW5kKHNwKSk7 Ci0tICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7 Ci0rICBzdGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICBzdHcoc3Jj LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0 KSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgot LSAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0Rv dWJsZVNpemUpKTsKLSsgIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwot IH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpNb3ZEb3VibGVMb3dUb0ludChSZWdpc3RlciBk c3QsIERvdWJsZVJlZ2lzdGVyIHNyYykgewotQEAgLTIyNTMsMTEgKzIzMjQsOSBAQAotICAgfQot ICNlbmRpZgotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLS0gIHN0 ZmQoc3JjLCBNZW1PcGVyYW5kKHNwKSk7Ci0rICBzdGZkKHNyYywgTWVtT3BlcmFuZChzcCwgLWtE b3VibGVTaXplKSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGlt aXphdGlvbgotLSAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtNYW50aXNzYU9m ZnNldCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSsgIGx3eihk c3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZz ZXQpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92RG91YmxlSGlnaFRvSW50KFJl Z2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIgc3JjKSB7Ci1AQCAtMjI2OSwxMSArMjMzOCw5IEBA Ci0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkp OwotLSAgc3RmZChzcmMsIE1lbU9wZXJhbmQoc3ApKTsKLSsgIHN0ZmQoc3JjLCBNZW1PcGVyYW5k KHNwLCAta0RvdWJsZVNpemUpKTsKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9S QVcgb3B0aW1pemF0aW9uCi0tICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4 cG9uZW50T2Zmc2V0KSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwot KyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtFeHBv bmVudE9mZnNldCkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpNb3ZEb3VibGVUb0lu dDY0KAotQEAgLTIyODgsMzIgKzIzNTUsMjYgQEAKLSAgIH0KLSAjZW5kaWYKLSAKLS0gIHN1Ymko c3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0tICBzdGZkKHNyYywgTWVtT3BlcmFuZChz cCkpOwotKyAgc3RmZChzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotICAgbm9w KEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLSAjaWYgVjhfVEFS R0VUX0FSQ0hfUFBDNjQKLS0gIGxkKGRzdCwgTWVtT3BlcmFuZChzcCwgMCkpOwotKyAgbGQoZHN0 LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAjZWxzZQotLSAgbHd6KGRzdF9oaSwg TWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtFeHBvbmVudE9mZnNldCkpOwotLSAgbHd6KGRzdCwg TWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNldCkpOwotKyAgbHd6KGRzdF9o aSwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtFeHBvbmVudE9mZnNl dCkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6 OmtNYW50aXNzYU9mZnNldCkpOwotICNlbmRpZgotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0Rv dWJsZVNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92SW50VG9GbG9hdChE b3VibGVSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIHNyYykgewotLSAgc3ViaShzcCwgc3AsIE9wZXJh bmQoa0Zsb2F0U2l6ZSkpOwotLSAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwgMCkpOwotKyAgc3R3 KHNyYywgTWVtT3BlcmFuZChzcCwgLWtGbG9hdFNpemUpKTsKLSAgIG5vcChHUk9VUF9FTkRJTkdf Tk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZnMoZHN0LCBNZW1PcGVyYW5kKHNw LCAwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRmxvYXRTaXplKSk7Ci0rICBsZnMoZHN0 LCBNZW1PcGVyYW5kKHNwLCAta0Zsb2F0U2l6ZSkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1i bGVyOjpNb3ZGbG9hdFRvSW50KFJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIgc3JjKSB7Ci0t ICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRmxvYXRTaXplKSk7Ci0tICBzdGZzKHNyYywgTWVtT3Bl cmFuZChzcCwgMCkpOwotKyAgc3RmcyhzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRmxvYXRTaXplKSk7 Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAg bHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgMCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0Zs b2F0U2l6ZSkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtGbG9hdFNpemUpKTsKLSB9 Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6QWRkKFJlZ2lzdGVyIGRzdCwgUmVnaXN0ZXIgc3Jj LCBpbnRwdHJfdCB2YWx1ZSwKLS0tLSBhL2RlcHMvdjgvc3JjL2NvZGVnZW4vcHBjL2NwdS1wcGMu Y2MJMjAyMi0wMi0xNSAyMToxMTo0Ni4yOTEzODc0NTcgLTA4MDAKLSsrKyBiL2RlcHMvdjgvc3Jj L2NvZGVnZW4vcHBjL2NwdS1wcGMuY2MJMjAyMi0wMi0xNyAyMDozODowOC44MTYwOTgxODUgLTA4 MDAKLUBAIC04LDE0ICs4LDEyIEBACi0gCi0gI2luY2x1ZGUgInNyYy9jb2RlZ2VuL2NwdS1mZWF0 dXJlcy5oIgotIAotLSNkZWZpbmUgSU5TVFJfQU5EX0RBVEFfQ0FDSEVfQ09IRVJFTkNZIExXU1lO QwotLQotIG5hbWVzcGFjZSB2OCB7Ci0gbmFtZXNwYWNlIGludGVybmFsIHsKLSAKLSB2b2lkIENw dUZlYXR1cmVzOjpGbHVzaElDYWNoZSh2b2lkKiBidWZmZXIsIHNpemVfdCBzaXplKSB7Ci0gI2lm ICFkZWZpbmVkKFVTRV9TSU1VTEFUT1IpCi0tICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVk KElOU1RSX0FORF9EQVRBX0NBQ0hFX0NPSEVSRU5DWSkpIHsKLSsgIGlmIChDcHVGZWF0dXJlczo6 SXNTdXBwb3J0ZWQoSUNBQ0hFX1NOT09QKSkgewotICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygK LSAgICAgICAgICJzeW5jIFxuIgotICAgICAgICAgImljYmkgMCwgJTAgIFxuIgotQEAgLTI2LDI1 ICsyNCwzMyBAQAotICAgICByZXR1cm47Ci0gICB9Ci0gCi0tICBjb25zdCBpbnQga0NhY2hlTGlu ZVNpemUgPSBDcHVGZWF0dXJlczo6aWNhY2hlX2xpbmVfc2l6ZSgpOwotLSAgaW50cHRyX3QgbWFz ayA9IGtDYWNoZUxpbmVTaXplIC0gMTsKLSsgIGNvbnN0IGludCBrSW5zdHJDYWNoZUxpbmVTaXpl ID0gQ3B1RmVhdHVyZXM6OmljYWNoZV9saW5lX3NpemUoKTsKLSsgIGNvbnN0IGludCBrRGF0YUNh Y2hlTGluZVNpemUgPSBDcHVGZWF0dXJlczo6ZGNhY2hlX2xpbmVfc2l6ZSgpOwotKyAgaW50cHRy X3QgaWNfbWFzayA9IGtJbnN0ckNhY2hlTGluZVNpemUgLSAxOwotKyAgaW50cHRyX3QgZGNfbWFz ayA9IGtEYXRhQ2FjaGVMaW5lU2l6ZSAtIDE7Ci0gICBieXRlKiBzdGFydCA9Ci0tICAgICAgcmVp bnRlcnByZXRfY2FzdDxieXRlKj4ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oYnVmZmVyKSAm IH5tYXNrKTsKLSsgICAgICByZWludGVycHJldF9jYXN0PGJ5dGUqPihyZWludGVycHJldF9jYXN0 PGludHB0cl90PihidWZmZXIpICYgfmRjX21hc2spOwotICAgYnl0ZSogZW5kID0gc3RhdGljX2Nh c3Q8Ynl0ZSo+KGJ1ZmZlcikgKyBzaXplOwotLSAgZm9yIChieXRlKiBwb2ludGVyID0gc3RhcnQ7 IHBvaW50ZXIgPCBlbmQ7IHBvaW50ZXIgKz0ga0NhY2hlTGluZVNpemUpIHsKLS0gICAgX19hc21f XygKLSsgIGZvciAoYnl0ZSogcG9pbnRlciA9IHN0YXJ0OyBwb2ludGVyIDwgZW5kOyBwb2ludGVy ICs9IGtEYXRhQ2FjaGVMaW5lU2l6ZSkgewotKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKLSAg ICAgICAgICJkY2JmIDAsICUwICBcbiIKLS0gICAgICAgICJzeW5jICAgICAgICBcbiIKLS0gICAg ICAgICJpY2JpIDAsICUwICBcbiIKLS0gICAgICAgICJpc3luYyAgICAgICBcbiIKLSAgICAgICAg IDogLyogbm8gb3V0cHV0ICovCi0gICAgICAgICA6ICJyIihwb2ludGVyKSk7Ci0gICB9Ci0rICBf X2FzbV9fIF9fdm9sYXRpbGVfXygic3luYyIpOwotIAotKyAgc3RhcnQgPQotKyAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGJ1ZmZlcikgJiB+ aWNfbWFzayk7Ci0rICBmb3IgKGJ5dGUqIHBvaW50ZXIgPSBzdGFydDsgcG9pbnRlciA8IGVuZDsg cG9pbnRlciArPSBrSW5zdHJDYWNoZUxpbmVTaXplKSB7Ci0rICAgIF9fYXNtX18gX192b2xhdGls ZV9fKAotKyAgICAgICAgImljYmkgMCwgJTAgIFxuIgotKyAgICAgICAgOiAvKiBubyBvdXRwdXQg Ki8KLSsgICAgICAgIDogInIiKHBvaW50ZXIpKTsKLSsgIH0KLSsgIF9fYXNtX18gX192b2xhdGls ZV9fKCJpc3luYyIpOwotICNlbmRpZiAgLy8gIVVTRV9TSU1VTEFUT1IKLSB9Ci0gfSAgLy8gbmFt ZXNwYWNlIGludGVybmFsCi0gfSAgLy8gbmFtZXNwYWNlIHY4Ci0gCi0tI3VuZGVmIElOU1RSX0FO RF9EQVRBX0NBQ0hFX0NPSEVSRU5DWQotICNlbmRpZiAgLy8gVjhfVEFSR0VUX0FSQ0hfUFBDCi0t LS0gYS9kZXBzL3Y4L3NyYy9jb2RlZ2VuL3BwYy9hc3NlbWJsZXItcHBjLmNjCTIwMjItMDItMTUg MjE6MTE6NDYuMjk1Mzg3NTU5IC0wODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9jb2RlZ2VuL3BwYy9h c3NlbWJsZXItcHBjLmNjCTIwMjItMDItMTggMDA6MTE6MDcuODg3MjU3MTc0IC0wODAwCi1AQCAt NTcsNTggKzU3LDYyIEBACi0gdm9pZCBDcHVGZWF0dXJlczo6UHJvYmVJbXBsKGJvb2wgY3Jvc3Nf Y29tcGlsZSkgewotICAgc3VwcG9ydGVkXyB8PSBDcHVGZWF0dXJlc0ltcGxpZWRCeUNvbXBpbGVy KCk7Ci0gICBpY2FjaGVfbGluZV9zaXplXyA9IDEyODsKLSsgIGRjYWNoZV9saW5lX3NpemVfID0g MTI4OwotIAotICAgLy8gT25seSB1c2Ugc3RhdGljYWxseSBkZXRlcm1pbmVkIGZlYXR1cmVzIGZv ciBjcm9zcyBjb21waWxlIChzbmFwc2hvdCkuCi0gICBpZiAoY3Jvc3NfY29tcGlsZSkgcmV0dXJu OwotIAotLS8vIERldGVjdCB3aGV0aGVyIGZyaW0gaW5zdHJ1Y3Rpb24gaXMgc3VwcG9ydGVkIChQ T1dFUjUrKQotLS8vIEZvciBub3cgd2Ugd2lsbCBqdXN0IGNoZWNrIGZvciBwcm9jZXNzb3JzIHdl IGtub3cgZG8gbm90Ci0tLy8gc3VwcG9ydCBpdAotICNpZm5kZWYgVVNFX1NJTVVMQVRPUgotICAg Ly8gUHJvYmUgZm9yIGFkZGl0aW9uYWwgZmVhdHVyZXMgYXQgcnVudGltZS4KLSAgIGJhc2U6OkNQ VSBjcHU7Ci0tICBpZiAoY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19QT1dFUjkgfHwgCi0t ICAgICAgY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19QT1dFUjEwKSB7Ci0tICAgIHN1cHBv cnRlZF8gfD0gKDF1IDw8IE1PRFVMTyk7Ci0tICB9Ci0rICBzd2l0Y2ggKGNwdS5wYXJ0KCkpIHsK LSsgICAgY2FzZSBiYXNlOjpDUFU6OlBQQ19QT1dFUjEwOgotKyAgICBjYXNlIGJhc2U6OkNQVTo6 UFBDX1BPV0VSOToKLSsgICAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBNT0RVTE8pOwotKyAgICAg IC8vIGZhbGx0aHJvdWdoCi0rCi0rICAgIGNhc2UgYmFzZTo6Q1BVOjpQUENfUE9XRVI4OgotICNp ZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotLSAgaWYgKGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQ UENfUE9XRVI4IHx8IAotLSAgICAgIGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI5 IHx8IAotLSAgICAgIGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVIxMCkgewotLSAg ICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBGUFJfR1BSX01PVik7Ci0tICB9Ci0rICAgICAgc3VwcG9y dGVkXyB8PSAoMXUgPDwgRlBSX0dQUl9NT1YpOwotICNlbmRpZgotLSAgaWYgKGNwdS5wYXJ0KCkg PT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI2IHx8Ci0tICAgICAgY3B1LnBhcnQoKSA9PSBiYXNlOjpD UFU6OlBQQ19QT1dFUjcgfHwKLS0gICAgICBjcHUucGFydCgpID09IGJhc2U6OkNQVTo6UFBDX1BP V0VSOCB8fCAKLS0gICAgICBjcHUucGFydCgpID09IGJhc2U6OkNQVTo6UFBDX1BPV0VSOSB8fCAK LS0gICAgICBjcHUucGFydCgpID09IGJhc2U6OkNQVTo6UFBDX1BPV0VSMTApIHsKLS0gICAgc3Vw cG9ydGVkXyB8PSAoMXUgPDwgTFdTWU5DKTsKLSsgICAgICAvLyBmYWxsdGhyb3VnaAotKwotKyAg ICBjYXNlIGJhc2U6OkNQVTo6UFBDX1BPV0VSNzoKLSsgICAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8 PCBQUENfN19QTFVTKTsKLSsgICAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBQT1BfQ09VTlQpOwot KyAgICAgIC8vIGZhbGx0aHJvdWdoCi0rCi0rICAgIGNhc2UgYmFzZTo6Q1BVOjpQUENfUE9XRVI2 OgotKyAgICBjYXNlIGJhc2U6OkNQVTo6UFBDX1BPV0VSNToKLSsgICAgY2FzZSBiYXNlOjpDUFU6 OlBQQ19QQTZUOgotKyAgICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IEZQX1JPVU5EX1RPX0lOVCk7 Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIC8vIFNwZWNpYWwgY2FzZXMgYmVsb3cuIE90aGVyd2lz ZSwgYXNzdW1lIG5vIHNwZWNpYWwgZmVhdHVyZXMuCi0rICAgIC8vIE5YUCBlNTUwMC9lNjUwMCBo YXZlIHBvcGNudCBidXQgbm90IG11Y2ggZWxzZSBzaW5jZSBJU0EgdjIuMDEuCi0rICAgIGNhc2Ug YmFzZTo6Q1BVOjpQUENfRTU1MDA6Ci0rICAgIGNhc2UgYmFzZTo6Q1BVOjpQUENfRTY1MDA6Ci0r ICAgICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgUE9QX0NPVU5UKTsKLSsgICAgICBicmVhazsKLSAg IH0KLS0gIGlmIChjcHUucGFydCgpID09IGJhc2U6OkNQVTo6UFBDX1BPV0VSNyB8fAotLSAgICAg IGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI4IHx8IAotLSAgICAgIGNwdS5wYXJ0 KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI5IHx8IAotLSAgICAgIGNwdS5wYXJ0KCkgPT0gYmFz ZTo6Q1BVOjpQUENfUE9XRVIxMCkgewotLSAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBJU0VMRUNU KTsKLS0gICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgVlNYKTsKLSsgIGlmIChjcHUuaGFzX2lzZWwo KSkgewotKyAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBJU0VMRUNUKTsgICAgICAvLyBJU0EgdjIu MDMsIHBsdXMgc29tZSBOWFAgQ1BVcwotICAgfQotLSNpZiBWOF9PU19MSU5VWAotLSAgaWYgKCEo Y3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19HNSB8fCBjcHUucGFydCgpID09IGJhc2U6OkNQ VTo6UFBDX0c0KSkgewotLSAgICAvLyBBc3N1bWUgc3VwcG9ydAotLSAgICBzdXBwb3J0ZWRfIHw9 ICgxdSA8PCBGUFUpOwotKyAgaWYgKGNwdS5oYXNfaWNhY2hlX3Nub29wKCkpIHsKLSsgICAgc3Vw cG9ydGVkXyB8PSAoMXUgPDwgSUNBQ0hFX1NOT09QKTsgLy8gSVNBIHYyLjAyOyBoYXMgaXRzIG93 biBod2NhcCBmbGFnCi0gICB9Ci0gICBpZiAoY3B1LmljYWNoZV9saW5lX3NpemUoKSAhPSBiYXNl OjpDUFU6OlVOS05PV05fQ0FDSEVfTElORV9TSVpFKSB7Ci0gICAgIGljYWNoZV9saW5lX3NpemVf ID0gY3B1LmljYWNoZV9saW5lX3NpemUoKTsKLSAgIH0KLS0jZWxpZiBWOF9PU19BSVgKLS0gIC8v IEFzc3VtZSBzdXBwb3J0IEZQIHN1cHBvcnQgYW5kIGRlZmF1bHQgY2FjaGUgbGluZSBzaXplCi0t ICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBGUFUpOwotLSNlbmRpZgotKyAgaWYgKGNwdS5kY2FjaGVf bGluZV9zaXplKCkgIT0gYmFzZTo6Q1BVOjpVTktOT1dOX0NBQ0hFX0xJTkVfU0laRSkgewotKyAg ICBkY2FjaGVfbGluZV9zaXplXyA9IGNwdS5kY2FjaGVfbGluZV9zaXplKCk7Ci0rICB9Ci0gI2Vs c2UgIC8vIFNpbXVsYXRvcgotLSAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgRlBVKTsKLS0gIHN1cHBv cnRlZF8gfD0gKDF1IDw8IExXU1lOQyk7Ci0rICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBGUF9ST1VO RF9UT19JTlQpOwotKyAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgSUNBQ0hFX1NOT09QKTsKLSAgIHN1 cHBvcnRlZF8gfD0gKDF1IDw8IElTRUxFQ1QpOwotLSAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgVlNY KTsKLSsgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBPUF9DT1VOVCk7Ci0rICBzdXBwb3J0ZWRfIHw9 ICgxdSA8PCBQUENfN19QTFVTKTsKLSAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IE1PRFVMTyk7Ci0g I2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0gICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBGUFJfR1BS X01PVik7Ci1AQCAtMTI5LDcgKzEzMywxMyBAQAotIH0KLSAKLSB2b2lkIENwdUZlYXR1cmVzOjpQ cmludEZlYXR1cmVzKCkgewotLSAgcHJpbnRmKCJGUFU9JWRcbiIsIENwdUZlYXR1cmVzOjpJc1N1 cHBvcnRlZChGUFUpKTsKLSsgIHByaW50ZigiRlBfUk9VTkRfVE9fSU5UPSVkXG4iLCBDcHVGZWF0 dXJlczo6SXNTdXBwb3J0ZWQoRlBfUk9VTkRfVE9fSU5UKSk7Ci0rICBwcmludGYoIklDQUNIRV9T Tk9PUD0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKElDQUNIRV9TTk9PUCkpOwotKyAg cHJpbnRmKCJJU0VMRUNUPSVkXG4iLCBDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoSVNFTEVDVCkp OwotKyAgcHJpbnRmKCJQT1BfQ09VTlQ9JWRcbiIsIENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQ T1BfQ09VTlQpKTsKLSsgIHByaW50ZigiUFBDXzdfUExVUz0lZFxuIiwgQ3B1RmVhdHVyZXM6Oklz U3VwcG9ydGVkKFBQQ183X1BMVVMpKTsKLSsgIHByaW50ZigiRlBSX0dQUl9NT1Y9JWRcbiIsIENw dUZlYXR1cmVzOjpJc1N1cHBvcnRlZChGUFJfR1BSX01PVikpOwotKyAgcHJpbnRmKCJNT0RVTE89 JWRcbiIsIENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChNT0RVTE8pKTsKLSB9Ci0gCi0gUmVnaXN0 ZXIgVG9SZWdpc3RlcihpbnQgbnVtKSB7Ci0tLS0gYS9kZXBzL3Y4L3NyYy9jb2RlZ2VuL2NwdS1m ZWF0dXJlcy5oCTIwMjItMDItMTUgMjE6MTE6NDYuMjk1Mzg3NTU5IC0wODAwCi0rKysgYi9kZXBz L3Y4L3NyYy9jb2RlZ2VuL2NwdS1mZWF0dXJlcy5oCTIwMjItMDItMTcgMjE6MTA6MDkuODUzMjY2 MDYxIC0wODAwCi1AQCAtMTMsNiArMTMsNyBAQAotIAotIC8vIENQVSBmZWF0dXJlIGZsYWdzLgot IGVudW0gQ3B1RmVhdHVyZSB7Ci0rI2lmIFY4X1RBUkdFVF9BUkNIX0lBMzIgfHwgVjhfVEFSR0VU X0FSQ0hfWDY0Ci0gICAvLyB4ODYKLSAgIFNTRTRfMiwKLSAgIFNTRTRfMSwKLUBAIC0yNiwxMSAr MjcsMTUgQEAKLSAgIExaQ05ULAotICAgUE9QQ05ULAotICAgQVRPTSwKLSsKLSsjZWxpZiBWOF9U QVJHRVRfQVJDSF9BUk0KLSAgIC8vIEFSTQotICAgLy8gLSBTdGFuZGFyZCBjb25maWd1cmF0aW9u cy4gVGhlIGJhc2VsaW5lIGlzIEFSTXY2K1ZGUHYyLgotICAgQVJNdjcsICAgICAgICAvLyBBUk12 Ny1BICsgVkZQdjMtRDMyICsgTkVPTgotICAgQVJNdjdfU1VESVYsICAvLyBBUk12Ny1BICsgVkZQ djQtRDMyICsgTkVPTiArIFNVRElWCi0gICBBUk12OCwgICAgICAgIC8vIEFSTXY4LUEgKCsgYWxs IG9mIHRoZSBhYm92ZSkKLSsKLSsjZWxpZiBWOF9UQVJHRVRfQVJDSF9NSVBTIHx8IFY4X1RBUkdF VF9BUkNIX01JUFM2NAotICAgLy8gTUlQUywgTUlQUzY0Ci0gICBGUFUsCi0gICBGUDY0RlBVLAot QEAgLTM4LDEyICs0MywxOCBAQAotICAgTUlQU3IyLAotICAgTUlQU3I2LAotICAgTUlQU19TSU1E LCAgLy8gTVNBIGluc3RydWN0aW9ucwotKwotKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1BQQyB8fCBW OF9UQVJHRVRfQVJDSF9QUEM2NAotICAgLy8gUFBDCi0tICBGUFJfR1BSX01PViwKLS0gIExXU1lO QywKLS0gIElTRUxFQ1QsCi0tICBWU1gsCi0tICBNT0RVTE8sCi0rICBGUF9ST1VORF9UT19JTlQs ICAvLyBJU0EgdjIuMDIgKFBPV0VSNSkKLSsgIElDQUNIRV9TTk9PUCwgICAgIC8vIElTQSB2Mi4w MiAoUE9XRVI1KQotKyAgSVNFTEVDVCwgICAgICAgICAgLy8gSVNBIHYyLjAzIChQT1dFUjUrIGFu ZCBzb21lIE5YUCBjb3JlcykKLSsgIFBQQ183X1BMVVMsICAgICAgIC8vIElTQSB2Mi4wNiAoUE9X RVI3KQotKyAgUE9QX0NPVU5ULCAgICAgICAgLy8gSVNBIHYyLjA2IChQT1dFUjcgYW5kIE5YUCBl NTUwMC9lNjUwMCkKLSsgIEZQUl9HUFJfTU9WLCAgICAgIC8vIElTQSB2Mi4wNyAoUE9XRVI4KQot KyAgTU9EVUxPLCAgICAgICAgICAgLy8gSVNBIHYzLjAgIChQT1dFUjkpCi0rCi0rI2VsaWYgVjhf VEFSR0VUX0FSQ0hfUzM5MFgKLSAgIC8vIFMzOTAKLSAgIERJU1RJTkNUX09QUywKLSAgIEdFTkVS QUxfSU5TVFJfRVhULAotQEAgLTUxLDE0ICs2MiwxNyBAQAotICAgVkVDVE9SX0ZBQ0lMSVRZLAot ICAgVkVDVE9SX0VOSEFOQ0VfRkFDSUxJVFlfMSwKLSAgIE1JU0NfSU5TVFJfRVhUMiwKLSsjZW5k aWYKLSAKLSAgIE5VTUJFUl9PRl9DUFVfRkVBVFVSRVMsCi0gCi0rI2lmIFY4X1RBUkdFVF9BUkNI X0FSTQotICAgLy8gQVJNIGZlYXR1cmUgYWxpYXNlcyAoYmFzZWQgb24gdGhlIHN0YW5kYXJkIGNv bmZpZ3VyYXRpb25zIGFib3ZlKS4KLSAgIFZGUHYzID0gQVJNdjcsCi0gICBORU9OID0gQVJNdjcs Ci0gICBWRlAzMkRSRUdTID0gQVJNdjcsCi0gICBTVURJViA9IEFSTXY3X1NVRElWCi0rI2VuZGlm Ci0gfTsKLSAKLSAvLyBDcHVGZWF0dXJlcyBrZWVwcyB0cmFjayBvZiB3aGljaCBmZWF0dXJlcyBh cmUgc3VwcG9ydGVkIGJ5IHRoZSB0YXJnZXQgQ1BVLgotLS0tIGEvZGVwcy92OC9zcmMvY29tcGls ZXIvYmFja2VuZC9wcGMvaW5zdHJ1Y3Rpb24tc2VsZWN0b3ItcHBjLmNjCTIwMjItMDItMTUgMjE6 MTE6NDYuMjk5Mzg3NjYwIC0wODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9jb21waWxlci9iYWNrZW5k L3BwYy9pbnN0cnVjdGlvbi1zZWxlY3Rvci1wcGMuY2MJMjAyMi0wMi0xNSAyMToxMTo0OS4xMjM0 NTkyNzEgLTA4MDAKLUBAIC0yMzkzLDE2ICsyMzkzLDI2IEBACi0gLy8gc3RhdGljCi0gTWFjaGlu ZU9wZXJhdG9yQnVpbGRlcjo6RmxhZ3MKLSBJbnN0cnVjdGlvblNlbGVjdG9yOjpTdXBwb3J0ZWRN YWNoaW5lT3BlcmF0b3JGbGFncygpIHsKLS0gIHJldHVybiBNYWNoaW5lT3BlcmF0b3JCdWlsZGVy OjprRmxvYXQzMlJvdW5kRG93biB8Ci0tICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6 a0Zsb2F0NjRSb3VuZERvd24gfAotLSAgICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtG bG9hdDMyUm91bmRVcCB8Ci0tICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0 NjRSb3VuZFVwIHwKLS0gICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQzMlJv dW5kVHJ1bmNhdGUgfAotLSAgICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDY0 Um91bmRUcnVuY2F0ZSB8Ci0tICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0 NjRSb3VuZFRpZXNBd2F5IHwKLS0gICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprV29y ZDMyUG9wY250IHwKLS0gICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprV29yZDY0UG9w Y250OwotKyAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6RmxhZ3MgZmxhZ3MgPSBNYWNoaW5lT3Bl cmF0b3JCdWlsZGVyOjpGbGFnOjprTm9GbGFnczsKLSsgIC8vIEZQIHJvdW5kaW5nIHRvIGludGVn ZXIgaW5zdHJ1Y3Rpb25zIHJlcXVpcmUgUG93ZXIgSVNBIHYyLjAyIG9yIGxhdGVyLgotKyAgaWYg KENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChGUF9ST1VORF9UT19JTlQpKSB7Ci0rICAgIGZsYWdz IHw9IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDMyUm91bmREb3duIHwKLSsgICAgICAg ICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0NjRSb3VuZERvd24gfAotKyAgICAg ICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQzMlJvdW5kVXAgfAotKyAgICAg ICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5kVXAgfAotKyAgICAg ICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQzMlJvdW5kVHJ1bmNhdGUgfAot KyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5kVHJ1bmNh dGUgfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5k VGllc0F3YXk7Ci0rICB9Ci0rICAvLyBQb3B1bGF0aW9uIGNvdW50IHJlcXVpcmVzIFBvd2VyIElT QSB2Mi4wNiwgb3IgTlhQIGU1NTAwL2U2NTAwLgotKyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBv cnRlZChQT1BfQ09VTlQpKSB7Ci0rICAgIGZsYWdzIHw9IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6 OmtXb3JkMzJQb3BjbnQ7Ci0rI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0rICAgIGZsYWdzIHw9 IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtXb3JkNjRQb3BjbnQ7Ci0rI2VuZGlmCi0rICB9Ci0g ICAvLyBXZSBvbWl0IGtXb3JkMzJTaGlmdElzU2FmZSBhcyBzW3JsXXcgdXNlIDB4M0YgYXMgYSBt YXNrIHJhdGhlciB0aGFuIDB4MUYuCi0rICByZXR1cm4gZmxhZ3M7Ci0gfQotIAotIC8vIHN0YXRp YwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvc2hhcmVkLXV2LnBhdGNo IGIvc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvc2hhcmVkLXV2LnBhdGNoCmluZGV4IDAxZTk1 ZjE1YjQ3Ny4uNDdhMTY3YjQzOTU4IDEwMDY0NAotLS0gYS9zcmNwa2dzL25vZGVqcy1sdHMvcGF0 Y2hlcy9zaGFyZWQtdXYucGF0Y2gKKysrIGIvc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvc2hh cmVkLXV2LnBhdGNoCkBAIC0xLDIyICsxLDkgQEAKIC0tLSBhL2RlcHMvdXZ3YXNpL3V2d2FzaS5n eXAKICsrKyBiL2RlcHMvdXZ3YXNpL3V2d2FzaS5neXAKLUBAIC0xOCw5ICsxOCw2IEBACi0gICAg ICAgICAnc3JjL3dhc2lfcmlnaHRzLmMnLAotICAgICAgICAgJ3NyYy93YXNpX3NlcmRlcy5jJywK LSAgICAgICBdLAotLSAgICAgICdkZXBlbmRlbmNpZXMnOiBbCi0tICAgICAgICAnLi4vdXYvdXYu Z3lwOmxpYnV2JywKLS0gICAgICBdLAotICAgICAgICdkaXJlY3RfZGVwZW5kZW50X3NldHRpbmdz JzogewotICAgICAgICAgJ2luY2x1ZGVfZGlycyc6IFsnaW5jbHVkZSddCi0gICAgICAgfSwKLUBA IC0zMSw2ICsyOCwxMiBAQAotICAgICAgICAgICAgICdfUE9TSVhfQ19TT1VSQ0U9MjAwMTEyJywK K0BAIC0zMyw2ICszMyw5IEBACisgICAgICAgICAgICAgJy4uL3V2L3V2Lmd5cDpsaWJ1dicsCiAg ICAgICAgICAgIF0sCiAgICAgICAgICB9XSwKLSsgICAgICAgIFsgJ25vZGVfc2hhcmVkX2xpYnV2 PT0iZmFsc2UiJywgewotKyAgICAgICAgICAnZGVwZW5kZW5jaWVzJzogWyAnLi4vdXYvdXYuZ3lw OmxpYnV2JyBdLAotKyAgICAgICAgfV0sCiArICAgICAgICBbICdub2RlX3NoYXJlZF9saWJ1dj09 InRydWUiJywgewogKyAgICAgICAgICAnbGlicmFyaWVzJzogWyAnLWx1dicgXSwKICsgICAgICAg IH1dCg== --===============5731225528381481123==--