From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: From: Oleksij Rempel Date: Mon, 4 Mar 2019 09:02:59 +0100 Message-Id: <20190304080259.30448-1-o.rempel@pengutronix.de> MIME-Version: 1.0 Subject: [ptxdist] [PATCH] version bump elfutils 174 -> 176 List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: Oleksij Rempel YW5kIHRha2Ugb3ZlciBwYXRjaGVzIGZyb20gZGViaWFuLiBJdCBpcyBuZWVkZWQgdG8gbWFrZSBN SVBTIHdvcmsuCgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2lqIFJlbXBlbCA8by5yZW1wZWxAcGVuZ3V0 cm9uaXguZGU+Ci0tLQogLi4uY2VzLWJldHdlZW4tbWlwcy1tYWNoaW5lLWlkZW50aWZpZXJzLnBh dGNoIHwgIDMxICsKIC4uLm9ydC1mb3ItbWlwczY0LWFiaXMtaW4tbWlwc19yZXR2YWwuYy5wYXRj aCB8IDE2OCArKysrCiAuLi4tQWRkLW1pcHMtbjY0LXJlbG9jYXRpb24tZm9ybWF0LWhhY2sucGF0 Y2ggfCAyMjYgKysrKysKIHBhdGNoZXMvZWxmdXRpbHMtMC4xNzYvYXJtX2JhY2tlbmQuZGlmZiAg ICAgICB8IDYwMCArKysrKysrKysrKysrCiBwYXRjaGVzL2VsZnV0aWxzLTAuMTc2L2F1dG9nZW4u c2ggICAgICAgICAgICAgfCAgMTggKwogcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9kaXNhYmxlX3dl cnJvci5wYXRjaCAgIHwgIDE3ICsKIHBhdGNoZXMvZWxmdXRpbHMtMC4xNzYvaHBwYV9iYWNrZW5k LmRpZmYgICAgICB8IDgwMSArKysrKysrKysrKysrKysrKysKIHBhdGNoZXMvZWxmdXRpbHMtMC4x NzYvaHVyZF9wYXRoLnBhdGNoICAgICAgICB8ICAxNCArCiBwYXRjaGVzL2VsZnV0aWxzLTAuMTc2 L2lnbm9yZV9zdHJtZXJnZS5kaWZmICAgfCAgMTEgKwogcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9r ZnJlZWJzZF9wYXRoLnBhdGNoICAgIHwgIDE3ICsKIHBhdGNoZXMvZWxmdXRpbHMtMC4xNzYvbWlw c19iYWNrZW5kLmRpZmYgICAgICB8IDY4NSArKysrKysrKysrKysrKysKIHBhdGNoZXMvZWxmdXRp bHMtMC4xNzYvbWlwc19jZmkucGF0Y2ggICAgICAgICB8IDExNCArKysKIHBhdGNoZXMvZWxmdXRp bHMtMC4xNzYvbWlwc19yZWFkZWxmX3cucGF0Y2ggICB8ICAyMiArCiBwYXRjaGVzL2VsZnV0aWxz LTAuMTc2L3NlcmllcyAgICAgICAgICAgICAgICAgfCAgMTMgKwogLi4uL3Rlc3RzdWl0ZS1pZ25v cmUtZWxmbGludC5kaWZmICAgICAgICAgICAgIHwgIDQwICsKIHJ1bGVzL2xpYmVsZi5tYWtlICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogMTYgZmlsZXMgY2hhbmdlZCwgMjc3 OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNo ZXMvZWxmdXRpbHMtMC4xNzYvMDAwMS1JZ25vcmUtZGlmZmVyZW5jZXMtYmV0d2Vlbi1taXBzLW1h Y2hpbmUtaWRlbnRpZmllcnMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL2VsZnV0 aWxzLTAuMTc2LzAwMDItQWRkLXN1cHBvcnQtZm9yLW1pcHM2NC1hYmlzLWluLW1pcHNfcmV0dmFs LmMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL2VsZnV0aWxzLTAuMTc2LzAwMDMt QWRkLW1pcHMtbjY0LXJlbG9jYXRpb24tZm9ybWF0LWhhY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBwYXRjaGVzL2VsZnV0aWxzLTAuMTc2L2FybV9iYWNrZW5kLmRpZmYKIGNyZWF0ZSBtb2Rl IDEwMDc1NSBwYXRjaGVzL2VsZnV0aWxzLTAuMTc2L2F1dG9nZW4uc2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBwYXRjaGVzL2VsZnV0aWxzLTAuMTc2L2Rpc2FibGVfd2Vycm9yLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9ocHBhX2JhY2tlbmQuZGlmZgogY3Jl YXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvZWxmdXRpbHMtMC4xNzYvaHVyZF9wYXRoLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9pZ25vcmVfc3RybWVyZ2Uu ZGlmZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvZWxmdXRpbHMtMC4xNzYva2ZyZWVic2Rf cGF0aC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvZWxmdXRpbHMtMC4xNzYvbWlw c19iYWNrZW5kLmRpZmYKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL2VsZnV0aWxzLTAuMTc2 L21pcHNfY2ZpLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9lbGZ1dGlscy0wLjE3 Ni9taXBzX3JlYWRlbGZfdy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvZWxmdXRp bHMtMC4xNzYvc2VyaWVzCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9lbGZ1dGlscy0wLjE3 Ni90ZXN0c3VpdGUtaWdub3JlLWVsZmxpbnQuZGlmZgoKZGlmZiAtLWdpdCBhL3BhdGNoZXMvZWxm dXRpbHMtMC4xNzYvMDAwMS1JZ25vcmUtZGlmZmVyZW5jZXMtYmV0d2Vlbi1taXBzLW1hY2hpbmUt aWRlbnRpZmllcnMucGF0Y2ggYi9wYXRjaGVzL2VsZnV0aWxzLTAuMTc2LzAwMDEtSWdub3JlLWRp ZmZlcmVuY2VzLWJldHdlZW4tbWlwcy1tYWNoaW5lLWlkZW50aWZpZXJzLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYTlhNzIxMDAzCi0tLSAvZGV2L251bGwKKysr IGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni8wMDAxLUlnbm9yZS1kaWZmZXJlbmNlcy1iZXR3ZWVu LW1pcHMtbWFjaGluZS1pZGVudGlmaWVycy5wYXRjaApAQCAtMCwwICsxLDMxIEBACitGcm9tIDc3 Y2I0YTUzYzI3MGQ1ODU0ZDNhZjI0ZjE5NTQ3YmMzZGU4MjUyMzMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBKYW1lcyBDb3dnaWxsIDxqYW1lczQxMEBjb3dnaWxsLm9yZy51az4KK0Rh dGU6IE1vbiwgNSBKYW4gMjAxNSAxNToxNjo1OCArMDAwMAorU3ViamVjdDogW1BBVENIIDEvM10g SWdub3JlIGRpZmZlcmVuY2VzIGJldHdlZW4gbWlwcyBtYWNoaW5lIGlkZW50aWZpZXJzCisKK0xp dHRsZSBlbmRpYW4gYmluYXJpZXMgYWN0dWFsbHkgdXNlIEVNX01JUFMgc28geW91IGNhbid0IHRl bGwgdGhlIGVuZGlhbm5lc3MKK2Zyb20gdGhlIGVsZiBtYWNoaW5lIGlkLiBBbHNvLCB0aGUgRU1f TUlQU19SUzNfTEUgbWFjaGluZSBpcyBkZWFkIGFueXdheSAodGhlCitrZXJuZWwgd2lsbCBub3Qg bG9hZCBiaW5hcmllcyBjb250YWluaW5nIGl0KS4KKworU2lnbmVkLW9mZi1ieTogSmFtZXMgQ293 Z2lsbCA8amFtZXM0MTBAY293Z2lsbC5vcmcudWs+CistLS0KKyBiYWNrZW5kcy9taXBzX2luaXQu YyB8IDYgKy0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA1IGRlbGV0aW9u cygtKQorCitJbmRleDogYi9iYWNrZW5kcy9taXBzX2luaXQuYworPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGEv YmFja2VuZHMvbWlwc19pbml0LmMKKysrKyBiL2JhY2tlbmRzL21pcHNfaW5pdC5jCitAQCAtNDUs MTEgKzQ1LDcgQEAgbWlwc19pbml0IChFbGYgKmVsZiBfX2F0dHJpYnV0ZV9fICgodW51cworICAg ICByZXR1cm4gTlVMTDsKKyAKKyAgIC8qIFdlIGhhbmRsZSBpdC4gICovCistICBpZiAobWFjaGlu ZSA9PSBFTV9NSVBTKQorLSAgICBlaC0+bmFtZSA9ICJNSVBTIFIzMDAwIGJpZy1lbmRpYW4iOwor LSAgZWxzZSBpZiAobWFjaGluZSA9PSBFTV9NSVBTX1JTM19MRSkKKy0gICAgZWgtPm5hbWUgPSAi TUlQUyBSMzAwMCBsaXR0bGUtZW5kaWFuIjsKKy0KKysgIGVoLT5uYW1lID0gIk1JUFMiOworICAg bWlwc19pbml0X3JlbG9jIChlaCk7CisgICBIT09LIChlaCwgcmVsb2Nfc2ltcGxlX3R5cGUpOwor ICAgSE9PSyAoZWgsIHJldHVybl92YWx1ZV9sb2NhdGlvbik7CmRpZmYgLS1naXQgYS9wYXRjaGVz L2VsZnV0aWxzLTAuMTc2LzAwMDItQWRkLXN1cHBvcnQtZm9yLW1pcHM2NC1hYmlzLWluLW1pcHNf cmV0dmFsLmMucGF0Y2ggYi9wYXRjaGVzL2VsZnV0aWxzLTAuMTc2LzAwMDItQWRkLXN1cHBvcnQt Zm9yLW1pcHM2NC1hYmlzLWluLW1pcHNfcmV0dmFsLmMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi43MjEyNWM5ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9wYXRjaGVz L2VsZnV0aWxzLTAuMTc2LzAwMDItQWRkLXN1cHBvcnQtZm9yLW1pcHM2NC1hYmlzLWluLW1pcHNf cmV0dmFsLmMucGF0Y2gKQEAgLTAsMCArMSwxNjggQEAKK0Zyb20gZmRhYWIxOGE2NWVkMjUyOTY1 NmJhYTY0Y2I2MTY5ZjM0ZDdlNTA3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEph bWVzIENvd2dpbGwgPGphbWVzNDEwQGNvd2dpbGwub3JnLnVrPgorRGF0ZTogTW9uLCA1IEphbiAy MDE1IDE1OjE3OjAxICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMi8zXSBBZGQgc3VwcG9ydCBmb3Ig bWlwczY0IGFiaXMgaW4gbWlwc19yZXR2YWwuYworCitTaWduZWQtb2ZmLWJ5OiBKYW1lcyBDb3dn aWxsIDxqYW1lczQxMEBjb3dnaWxsLm9yZy51az4KKy0tLQorIGJhY2tlbmRzL21pcHNfcmV0dmFs LmMgfCAxMDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LQorIDEgZmlsZSBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBhL2JhY2tlbmRzL21pcHNfcmV0dmFsLmMgYi9iYWNrZW5kcy9taXBzX3JldHZh bC5jCitpbmRleCAzM2YxMmE3Li5kNWM2ZWYwIDEwMDY0NAorLS0tIGEvYmFja2VuZHMvbWlwc19y ZXR2YWwuYworKysrIGIvYmFja2VuZHMvbWlwc19yZXR2YWwuYworQEAgLTkxLDYgKzkxLDggQEAg ZW51bSBtaXBzX2FiaSBmaW5kX21pcHNfYWJpKEVsZiAqZWxmKQorICAgICBkZWZhdWx0OgorICAg ICAgIGlmICgoZWxmX2ZsYWdzICYgRUZfTUlQU19BQkkyKSkKKyAJcmV0dXJuIE1JUFNfQUJJX04z MjsKKysgICAgICBlbHNlIGlmICgoZWhkci0+ZV9pZGVudFtFSV9DTEFTU10gPT0gRUxGQ0xBU1M2 NCkpCisrCXJldHVybiBNSVBTX0FCSV9ONjQ7CisgICAgIH0KKyAKKyAgIC8qIEdDQyBjcmVhdGVz IGEgcHNldWRvLXNlY3Rpb24gd2hvc2UgbmFtZSBkZXNjcmliZXMgdGhlIEFCSS4gICovCitAQCAt MTk1LDYgKzE5Nyw1NyBAQCBzdGF0aWMgY29uc3QgRHdhcmZfT3AgbG9jX2FnZ3JlZ2F0ZVtdID0K KyAgIH07CisgI2RlZmluZSBubG9jX2FnZ3JlZ2F0ZSAxCisgCisrLyogVGVzdCBpZiBhIHN0cnVj dCBtZW1iZXIgaXMgYSBmbG9hdCAqLworK3N0YXRpYyBpbnQgaXNfZmxvYXRfY2hpbGQoRHdhcmZf RGllICpjaGlsZGRpZSkKKyt7CisrICAvKiBUZXN0IGlmIHRoaXMgaXMgYWN0dWFsbHkgYSBzdHJ1 Y3QgbWVtYmVyICovCisrICBpZiAoZHdhcmZfdGFnKGNoaWxkZGllKSAhPSBEV19UQUdfbWVtYmVy KQorKyAgICByZXR1cm4gMDsKKysKKysgIC8qIEdldCB0eXBlIG9mIG1lbWJlciAqLworKyAgRHdh cmZfQXR0cmlidXRlIGF0dHJfbWVtOworKyAgRHdhcmZfRGllIGNoaWxkX3R5cGVfbWVtOworKyAg RHdhcmZfRGllICpjaGlsZF90eXBlZGllID0KKysgICAgZHdhcmZfZm9ybXJlZl9kaWUoZHdhcmZf YXR0cl9pbnRlZ3JhdGUoY2hpbGRkaWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERXX0FUX3R5cGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZhdHRyX21lbSksICZjaGlsZF90eXBlX21lbSk7CisrCisrICBpZiAoZHdh cmZfdGFnKGNoaWxkX3R5cGVkaWUpICE9IERXX1RBR19iYXNlX3R5cGUpCisrICAgIHJldHVybiAw OworKworKyAgLyogR2V0IGJhc2Ugc3VidHlwZSAqLworKyAgRHdhcmZfV29yZCBlbmNvZGluZzsK KysgIGlmIChkd2FyZl9mb3JtdWRhdGEgKGR3YXJmX2F0dHJfaW50ZWdyYXRlIChjaGlsZF90eXBl ZGllLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERXX0FU X2VuY29kaW5nLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZhdHRyX21lbSksICZlbmNvZGluZykgIT0gMCkKKysgICAgcmV0dXJuIDA7CisrCisrICByZXR1 cm4gZW5jb2RpbmcgPT0gRFdfQVRFX2Zsb2F0OworK30KKysKKysvKiBSZXR1cm5zIHRoZSBudW1i ZXIgb2YgZnByZWdzIHdoaWNoIGNhbiBiZSByZXR1cm5lZCBpbiB0aGUgZ2l2ZW4gc3RydWN0ICov Cisrc3RhdGljIGludCBnZXRfc3RydWN0X2ZwcmVncyhEd2FyZl9EaWUgKnN0cnVjdHR5cGVkaWUp CisreworKyAgRHdhcmZfRGllIGNoaWxkX21lbTsKKysgIGludCBmcHJlZ3MgPSAwOworKworKyAg LyogR2V0IGZpcnN0IHN0cnVjdHVyZSBtZW1iZXIgKi8KKysgIGlmIChkd2FyZl9jaGlsZChzdHJ1 Y3R0eXBlZGllLCAmY2hpbGRfbWVtKSAhPSAwKQorKyAgICByZXR1cm4gMDsKKysKKysgIGRvCisr ICAgIHsKKysgICAgICAvKiBFbnN1cmUgdGhpcyByZWdpc3RlciBpcyBhIGZsb2F0ICovCisrICAg ICAgaWYgKCFpc19mbG9hdF9jaGlsZCgmY2hpbGRfbWVtKSkKKysgICAgICAgIHJldHVybiAwOwor KworKyAgICAgIGZwcmVncysrOworKyAgICB9CisrICB3aGlsZSAoZHdhcmZfc2libGluZ29mICgm Y2hpbGRfbWVtLCAmY2hpbGRfbWVtKSA9PSAwKTsKKysKKysgIHJldHVybiBmcHJlZ3M7CisrfQor KworIGludAorIG1pcHNfcmV0dXJuX3ZhbHVlX2xvY2F0aW9uIChEd2FyZl9EaWUgKmZ1bmN0eXBl ZGllLCBjb25zdCBEd2FyZl9PcCAqKmxvY3ApCisgeworQEAgLTI0MCw2ICsyOTMsNyBAQCBtaXBz X3JldHVybl92YWx1ZV9sb2NhdGlvbiAoRHdhcmZfRGllICpmdW5jdHlwZWRpZSwgY29uc3QgRHdh cmZfT3AgKipsb2NwKQorICAgICAgIHRhZyA9IGR3YXJmX3RhZyAodHlwZWRpZSk7CisgICAgIH0K KyAKKysgIER3YXJmX1dvcmQgc2l6ZTsKKyAgIHN3aXRjaCAodGFnKQorICAgICB7CisgICAgIGNh c2UgLTE6CitAQCAtMjU4LDggKzMxMiw2IEBAIG1pcHNfcmV0dXJuX3ZhbHVlX2xvY2F0aW9uIChE d2FyZl9EaWUgKmZ1bmN0eXBlZGllLCBjb25zdCBEd2FyZl9PcCAqKmxvY3ApCisgICAgIGNhc2Ug RFdfVEFHX2VudW1lcmF0aW9uX3R5cGU6CisgICAgIGNhc2UgRFdfVEFHX3BvaW50ZXJfdHlwZToK KyAgICAgY2FzZSBEV19UQUdfcHRyX3RvX21lbWJlcl90eXBlOgorLSAgICAgIHsKKy0gICAgICAg IER3YXJmX1dvcmQgc2l6ZTsKKyAJaWYgKGR3YXJmX2Zvcm11ZGF0YSAoZHdhcmZfYXR0cl9pbnRl Z3JhdGUgKHR5cGVkaWUsIERXX0FUX2J5dGVfc2l6ZSwKKyAJCQkJCSAmYXR0cl9tZW0pLCAmc2l6 ZSkgIT0gMCkKKyAJICB7CitAQCAtMjg5LDcgKzM0MSw3IEBAIG1pcHNfcmV0dXJuX3ZhbHVlX2xv Y2F0aW9uIChEd2FyZl9EaWUgKmZ1bmN0eXBlZGllLCBjb25zdCBEd2FyZl9PcCAqKmxvY3ApCisg CQlpZiAoc2l6ZSA8PSA0KnJlZ3NpemUgJiYgYWJpID09IE1JUFNfQUJJX08zMikKKyAgICAgICAg ICAgICAgICAgICByZXR1cm4gbmxvY19mcHJlZ3F1YWQ7CisgCistCQlnb3RvIGFnZ3JlZ2F0ZTsK KysJCWdvdG8gbGFyZ2U7CisgCSAgICAgIH0KKyAJICB9CisgCSpsb2NwID0gQUJJX0xPQyhsb2Nf aW50cmVnLCByZWdzaXplKTsKK0BAIC0yOTgsMTggKzM1MCw1MCBAQCBtaXBzX3JldHVybl92YWx1 ZV9sb2NhdGlvbiAoRHdhcmZfRGllICpmdW5jdHlwZWRpZSwgY29uc3QgRHdhcmZfT3AgKipsb2Nw KQorIAlpZiAoc2l6ZSA8PSAyKnJlZ3NpemUpCisgCSAgcmV0dXJuIG5sb2NfaW50cmVncGFpcjsK KyAKKy0JLyogRWxzZSBmYWxsIHRocm91Z2guIFNob3VsZG4ndCBoYXBwZW4gdGhvdWdoIChhdCBs ZWFzdCB3aXRoIGdjYykgKi8KKy0gICAgICB9CisrCS8qIEVsc2UgcGFzcyBpbiBtZW1vcnkuIFNo b3VsZG4ndCBoYXBwZW4gdGhvdWdoIChhdCBsZWFzdCB3aXRoIGdjYykgKi8KKysJZ290byBsYXJn ZTsKKyAKKyAgICAgY2FzZSBEV19UQUdfc3RydWN0dXJlX3R5cGU6CisgICAgIGNhc2UgRFdfVEFH X2NsYXNzX3R5cGU6CisgICAgIGNhc2UgRFdfVEFHX3VuaW9uX3R5cGU6CistICAgIGNhc2UgRFdf VEFHX2FycmF5X3R5cGU6CistICAgIGFnZ3JlZ2F0ZToKKy0gICAgICAvKiBYWFggVE9ETzogQ2Fu J3QgaGFuZGxlIHN0cnVjdHVyZSByZXR1cm4gd2l0aCBvdGhlciBBQkkncyB5ZXQgOi0vICovCist ICAgICAgaWYgKChhYmkgIT0gTUlQU19BQklfTzMyKSAmJiAoYWJpICE9IE1JUFNfQUJJX082NCkp CistICAgICAgICByZXR1cm4gLTI7CisrICAgICAgLyogSGFuZGxlIHNwZWNpYWwgY2FzZXMgZm9y IHN0cnVjdHVyZXMgPD0gMTI4IGJ5dGVzIGluIG5ld2VyIEFCSXMgKi8KKysgICAgICBpZiAoYWJp ID09IE1JUFNfQUJJX0VBQkkzMiB8fCBhYmkgPT0gTUlQU19BQklfRUFCSTY0IHx8CisrICAgICAg ICAgIGFiaSA9PSBNSVBTX0FCSV9OMzIgfHwgYWJpID09IE1JUFNfQUJJX042NCkKKysgICAgICAg IHsKKysgICAgICAgICAgaWYgKGR3YXJmX2FnZ3JlZ2F0ZV9zaXplICh0eXBlZGllLCAmc2l6ZSkg PT0gMCAmJiBzaXplIDw9IDE2KQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgIC8qCisr ICAgICAgICAgICAgICAgKiBTcGVjaWFsIGNhc2UgaW4gTjY0IC8gTjMyIC0KKysgICAgICAgICAg ICAgICAqIHN0cnVjdHVyZXMgY29udGFpbmluZyBvbmx5IGZsb2F0cyBhcmUgcmV0dXJuZWQgaW4g ZnAgcmVncy4KKysgICAgICAgICAgICAgICAqIEV2ZXJ5dGhpbmcgZWxzZSBpcyByZXR1cm5lZCBp biBpbnRlZ2VyIHJlZ3MuCisrICAgICAgICAgICAgICAgKi8KKysgICAgICAgICAgICAgIGlmICh0 YWcgIT0gRFdfVEFHX3VuaW9uX3R5cGUgJiYKKysgICAgICAgICAgICAgICAgICAoYWJpID09IE1J UFNfQUJJX04zMiB8fCBhYmkgPT0gTUlQU19BQklfTjY0KSkKKysgICAgICAgICAgICAgICAgewor KyAgICAgICAgICAgICAgICAgIGludCBudW1fZnByZWdzID0gZ2V0X3N0cnVjdF9mcHJlZ3ModHlw ZWRpZSk7CisrICAgICAgICAgICAgICAgICAgaWYgKG51bV9mcHJlZ3MgPT0gMSB8fCBudW1fZnBy ZWdzID09IDIpCisrICAgICAgICAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgICAgICAg ICpsb2NwID0gbG9jX2ZwcmVnOworKyAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtX2ZwcmVn cyA9PSAxKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBubG9jX2ZwcmVnOworKyAg ICAgICAgICAgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IG5sb2NfZnByZWdwYWlyOworKyAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAg ICB9CisrCisrICAgICAgICAgICAgICAqbG9jcCA9IGxvY19pbnRyZWc7CisrICAgICAgICAgICAg ICBpZiAoc2l6ZSA8PSA4KQorKyAgICAgICAgICAgICAgICByZXR1cm4gbmxvY19pbnRyZWc7Cisr ICAgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAgIHJldHVybiBubG9jX2ludHJlZ3Bh aXI7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKworKyAgICAgIC8qIEZhbGx0aHJvdWdo IHRvIGhhbmRsZSBsYXJnZSB0eXBlcyAqLworIAorKyAgICBjYXNlIERXX1RBR19hcnJheV90eXBl OgorKyAgICBsYXJnZToKKysgICAgICAvKiBSZXR1cm4gbGFyZ2Ugc3RydWN0dXJlcyBpbiBtZW1v cnkgKi8KKyAgICAgICAqbG9jcCA9IGxvY19hZ2dyZWdhdGU7CisgICAgICAgcmV0dXJuIG5sb2Nf YWdncmVnYXRlOworICAgICB9CistLSAKKzIuMS40CisKZGlmZiAtLWdpdCBhL3BhdGNoZXMvZWxm dXRpbHMtMC4xNzYvMDAwMy1BZGQtbWlwcy1uNjQtcmVsb2NhdGlvbi1mb3JtYXQtaGFjay5wYXRj aCBiL3BhdGNoZXMvZWxmdXRpbHMtMC4xNzYvMDAwMy1BZGQtbWlwcy1uNjQtcmVsb2NhdGlvbi1m b3JtYXQtaGFjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjdj ZWZlYWVlYQotLS0gL2Rldi9udWxsCisrKyBiL3BhdGNoZXMvZWxmdXRpbHMtMC4xNzYvMDAwMy1B ZGQtbWlwcy1uNjQtcmVsb2NhdGlvbi1mb3JtYXQtaGFjay5wYXRjaApAQCAtMCwwICsxLDIyNiBA QAorRnJvbSA1OWQ0YjhjNDhlNTA0MGFmN2UwMmIzNGViMjZlYTYwMmVjODJhMzhlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFtZXMgQ293Z2lsbCA8amFtZXM0MTBAY293Z2lsbC5v cmcudWs+CitEYXRlOiBNb24sIDUgSmFuIDIwMTUgMTU6MTc6MDIgKzAwMDAKK1N1YmplY3Q6IFtQ QVRDSCAzLzNdIEFkZCBtaXBzIG42NCByZWxvY2F0aW9uIGZvcm1hdCBoYWNrCisKK01JUFNFTCBO NjQgRUxGIGZpbGVzIHVzZSBhIHNsaWdodGx5IGRpZmZlcmVudCBmb3JtYXQgZm9yIHN0b3Jpbmcg cmVsb2NhdGlvbgorZW50cmllcyB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgbm9ybWFs IFJfU1lNIC8gUl9JTkZPIG1hY3Jvcy4KK1RvIHdvcmthcm91bmQgdGhpcywgd2UgcmVhcnJhbmdl IHRoZSBieXRlcyBpbiB0aGUgcmVsb2NhdGlvbidzIHJfaW5mbyBmaWVsZAord2hlbiByZWFkaW5n IGFuZCB3cml0aW5nIHRoZSByZWxvY2F0aW9ucy4KKworVGhpcyBwYXRjaCBhbHNvIGVuc3VyZXMg dGhhdCBzdHJpcC5jIHNldHMgdGhlIGNvcnJlY3QgdmFsdWUgb2YgZV9tYWNoaW5lCitiZWZvcmUg bWFuaXB1bGF0aW5nIHJlbG9jYXRpb25zIHNvIHRoYXQgdGhlc2UgY2hhbmdlcyB0YWtlIGVmZmVj dC4KKworU2lnbmVkLW9mZi1ieTogSmFtZXMgQ293Z2lsbCA8amFtZXM0MTBAY293Z2lsbC5vcmcu dWs+CistLS0KKyBsaWJlbGYvZ2VsZl9nZXRyZWwuYyAgICAgIHwgMjUgKysrKysrKysrKysrKysr KysrKysrKystLQorIGxpYmVsZi9nZWxmX2dldHJlbGEuYyAgICAgfCAyNSArKysrKysrKysrKysr KysrKysrKysrKy0tCisgbGliZWxmL2dlbGZfdXBkYXRlX3JlbC5jICB8IDIwICsrKysrKysrKysr KysrKysrKystCisgbGliZWxmL2dlbGZfdXBkYXRlX3JlbGEuYyB8IDIwICsrKysrKysrKysrKysr KysrKystCisgc3JjL3N0cmlwLmMgICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKysr CisgNSBmaWxlcyBjaGFuZ2VkLCAxMDEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKwor SW5kZXg6IGVsZnV0aWxzLTAuMTc1L2xpYmVsZi9nZWxmX2dldHJlbC5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZWxmdXRpbHMtMC4xNzUub3JpZy9saWJlbGYvZ2VsZl9nZXRyZWwuYworKysrIGVsZnV0aWxz LTAuMTc1L2xpYmVsZi9nZWxmX2dldHJlbC5jCitAQCAtMzYsNiArMzYsNyBAQAorIAorICNpbmNs dWRlICJsaWJlbGZQLmgiCisgCisrI2RlZmluZSBFRl9NSVBTX0FCSQkweDAwMDBGMDAwCisgCisg R0VsZl9SZWwgKgorIGdlbGZfZ2V0cmVsIChFbGZfRGF0YSAqZGF0YSwgaW50IG5keCwgR0VsZl9S ZWwgKmRzdCkKK0BAIC04OSw4ICs5MCwyOCBAQCBnZWxmX2dldHJlbCAoRWxmX0RhdGEgKmRhdGEs IGludCBuZHgsIEdFCisgCSAgcmVzdWx0ID0gTlVMTDsKKyAJfQorICAgICAgIGVsc2UKKy0JcmVz dWx0ID0gbWVtY3B5IChkc3QsICYoKEVsZjY0X1JlbCAqKSBkYXRhX3Njbi0+ZC5kX2J1ZilbbmR4 XSwKKy0JCQkgc2l6ZW9mIChFbGY2NF9SZWwpKTsKKysgICAgICAgIHsKKysgICAgICAgICAgR0Vs Zl9FaGRyIGhkcjsKKysgICAgICAgICAgcmVzdWx0ID0gbWVtY3B5IChkc3QsICYoKEVsZjY0X1Jl bCAqKSBkYXRhX3Njbi0+ZC5kX2J1ZilbbmR4XSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YgKEVsZjY0X1JlbCkpOworKworKyAgICAgICAgICBpZiAoZ2VsZl9nZXRlaGRyKHNj bi0+ZWxmLCAmaGRyKSAhPSBOVUxMICYmCisrICAgICAgICAgICAgICBoZHIuZV9pZGVudFtFSV9E QVRBXSA9PSBFTEZEQVRBMkxTQiAmJgorKyAgICAgICAgICAgICAgaGRyLmVfbWFjaGluZSA9PSBF TV9NSVBTICYmCisrICAgICAgICAgICAgICAoaGRyLmVfZmxhZ3MgJiBFRl9NSVBTX0FCSSkgPT0g MCkKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAvKgorKyAgICAgICAgICAgICAgICog VGhlIHJlbG9jYXRpb24gZm9ybWF0IGlzIG1hbmdsZWQgb24gTUlQU0VMIE42NAorKyAgICAgICAg ICAgICAgICogIFdlJ2xsIGFkanVzdCBpdCBzbyBhdCBsZWFzdCBSX1NZTSB3aWxsIHdvcmsgb24g aXQKKysgICAgICAgICAgICAgICAqLworKyAgICAgICAgICAgICAgR0VsZl9Yd29yZCByX2luZm8g PSBkc3QtPnJfaW5mbzsKKysgICAgICAgICAgICAgIGRzdC0+cl9pbmZvID0gKHJfaW5mbyA8PCAz MikgfAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHJfaW5mbyA+PiA4KSAmIDB4RkYw MDAwMDApIHwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChyX2luZm8gPj4gMjQpICYg MHgwMEZGMDAwMCkgfAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHJfaW5mbyA+PiA0 MCkgJiAweDAwMDBGRjAwKSB8CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocl9pbmZv ID4+IDU2KSAmIDB4MDAwMDAwRkYpOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKyAgICAg fQorIAorICAgcndsb2NrX3VubG9jayAoc2NuLT5lbGYtPmxvY2spOworSW5kZXg6IGVsZnV0aWxz LTAuMTc1L2xpYmVsZi9nZWxmX2dldHJlbGEuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGVsZnV0aWxzLTAu MTc1Lm9yaWcvbGliZWxmL2dlbGZfZ2V0cmVsYS5jCisrKysgZWxmdXRpbHMtMC4xNzUvbGliZWxm L2dlbGZfZ2V0cmVsYS5jCitAQCAtMzYsNiArMzYsNyBAQAorIAorICNpbmNsdWRlICJsaWJlbGZQ LmgiCisgCisrI2RlZmluZSBFRl9NSVBTX0FCSQkweDAwMDBGMDAwCisgCisgR0VsZl9SZWxhICoK KyBnZWxmX2dldHJlbGEgKEVsZl9EYXRhICpkYXRhLCBpbnQgbmR4LCBHRWxmX1JlbGEgKmRzdCkK K0BAIC05MCw4ICs5MSwyOCBAQCBnZWxmX2dldHJlbGEgKEVsZl9EYXRhICpkYXRhLCBpbnQgbmR4 LCBHCisgCSAgcmVzdWx0ID0gTlVMTDsKKyAJfQorICAgICAgIGVsc2UKKy0JcmVzdWx0ID0gbWVt Y3B5IChkc3QsICYoKEVsZjY0X1JlbGEgKikgZGF0YV9zY24tPmQuZF9idWYpW25keF0sCistCQkJ IHNpemVvZiAoRWxmNjRfUmVsYSkpOworKyAgICAgICAgeworKyAgICAgICAgICBHRWxmX0VoZHIg aGRyOworKyAgICAgICAgICByZXN1bHQgPSBtZW1jcHkgKGRzdCwgJigoRWxmNjRfUmVsYSAqKSBk YXRhX3Njbi0+ZC5kX2J1ZilbbmR4XSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl b2YgKEVsZjY0X1JlbGEpKTsKKysKKysgICAgICAgICAgaWYgKGdlbGZfZ2V0ZWhkcihzY24tPmVs ZiwgJmhkcikgIT0gTlVMTCAmJgorKyAgICAgICAgICAgICAgaGRyLmVfaWRlbnRbRUlfREFUQV0g PT0gRUxGREFUQTJMU0IgJiYKKysgICAgICAgICAgICAgIGhkci5lX21hY2hpbmUgPT0gRU1fTUlQ UyAmJgorKyAgICAgICAgICAgICAgKGhkci5lX2ZsYWdzICYgRUZfTUlQU19BQkkpID09IDApCisr ICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgLyoKKysgICAgICAgICAgICAgICAqIFRoZSBy ZWxvY2F0aW9uIGZvcm1hdCBpcyBtYW5nbGVkIG9uIE1JUFNFTCBONjQKKysgICAgICAgICAgICAg ICAqICBXZSdsbCBhZGp1c3QgaXQgc28gYXQgbGVhc3QgUl9TWU0gd2lsbCB3b3JrIG9uIGl0Cisr ICAgICAgICAgICAgICAgKi8KKysgICAgICAgICAgICAgIEdFbGZfWHdvcmQgcl9pbmZvID0gZHN0 LT5yX2luZm87CisrICAgICAgICAgICAgICBkc3QtPnJfaW5mbyA9IChyX2luZm8gPDwgMzIpIHwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChyX2luZm8gPj4gOCkgJiAweEZGMDAwMDAw KSB8CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocl9pbmZvID4+IDI0KSAmIDB4MDBG RjAwMDApIHwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChyX2luZm8gPj4gNDApICYg MHgwMDAwRkYwMCkgfAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHJfaW5mbyA+PiA1 NikgJiAweDAwMDAwMEZGKTsKKysgICAgICAgICAgICB9CisrICAgICAgICB9CisgICAgIH0KKyAK KyAgIHJ3bG9ja191bmxvY2sgKHNjbi0+ZWxmLT5sb2NrKTsKK0luZGV4OiBlbGZ1dGlscy0wLjE3 NS9saWJlbGYvZ2VsZl91cGRhdGVfcmVsLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0wLjE3 NS5vcmlnL2xpYmVsZi9nZWxmX3VwZGF0ZV9yZWwuYworKysrIGVsZnV0aWxzLTAuMTc1L2xpYmVs Zi9nZWxmX3VwZGF0ZV9yZWwuYworQEAgLTM2LDYgKzM2LDcgQEAKKyAKKyAjaW5jbHVkZSAibGli ZWxmUC5oIgorIAorKyNkZWZpbmUgRUZfTUlQU19BQkkJMHgwMDAwRjAwMAorIAorIGludAorIGdl bGZfdXBkYXRlX3JlbCAoRWxmX0RhdGEgKmRzdCwgaW50IG5keCwgR0VsZl9SZWwgKnNyYykKK0BA IC04Niw2ICs4Nyw5IEBAIGdlbGZfdXBkYXRlX3JlbCAoRWxmX0RhdGEgKmRzdCwgaW50IG5keCwK KyAgICAgfQorICAgZWxzZQorICAgICB7CisrICAgICAgR0VsZl9FaGRyIGhkcjsKKysgICAgICBH RWxmX1JlbCB2YWx1ZSA9ICpzcmM7CisrCisgICAgICAgLyogQ2hlY2sgd2hldGhlciB3ZSBoYXZl IHRvIHJlc2l6ZSB0aGUgZGF0YSBidWZmZXIuICAqLworICAgICAgIGlmIChJTlZBTElEX05EWCAo bmR4LCBFbGY2NF9SZWwsICZkYXRhX3Njbi0+ZCkpCisgCXsKK0BAIC05Myw3ICs5NywyMSBAQCBn ZWxmX3VwZGF0ZV9yZWwgKEVsZl9EYXRhICpkc3QsIGludCBuZHgsCisgCSAgZ290byBvdXQ7Cisg CX0KKyAKKy0gICAgICAoKEVsZjY0X1JlbCAqKSBkYXRhX3Njbi0+ZC5kX2J1ZilbbmR4XSA9ICpz cmM7CisrICAgICAgaWYgKGdlbGZfZ2V0ZWhkcihzY24tPmVsZiwgJmhkcikgIT0gTlVMTCAmJgor KyAgICAgICAgICBoZHIuZV9pZGVudFtFSV9EQVRBXSA9PSBFTEZEQVRBMkxTQiAmJgorKyAgICAg ICAgICBoZHIuZV9tYWNoaW5lID09IEVNX01JUFMgJiYKKysgICAgICAgICAgKGhkci5lX2ZsYWdz ICYgRUZfTUlQU19BQkkpID09IDApCisrICAgICAgICB7CisrICAgICAgICAgIC8qIFVuZG8gdGhl IE1JUFNFTCBONjQgaGFjayBmcm9tIGdlbGZfZ2V0cmVsICovCisrICAgICAgICAgIEdFbGZfWHdv cmQgcl9pbmZvID0gdmFsdWUucl9pbmZvOworKyAgICAgICAgICB2YWx1ZS5yX2luZm8gPSAocl9p bmZvID4+IDMyKSB8CisrICAgICAgICAgICAgICAgICAgICAgICAgICgocl9pbmZvIDw8IDgpICYg IDB4MDAwMDAwRkYwMDAwMDAwMCkgfAorKyAgICAgICAgICAgICAgICAgICAgICAgICAoKHJfaW5m byA8PCAyNCkgJiAweDAwMDBGRjAwMDAwMDAwMDApIHwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgKChyX2luZm8gPDwgNDApICYgMHgwMEZGMDAwMDAwMDAwMDAwKSB8CisrICAgICAgICAgICAg ICAgICAgICAgICAgICgocl9pbmZvIDw8IDU2KSAmIDB4RkYwMDAwMDAwMDAwMDAwMCk7CisrICAg ICAgICB9CisrCisrICAgICAgKChFbGY2NF9SZWwgKikgZGF0YV9zY24tPmQuZF9idWYpW25keF0g PSB2YWx1ZTsKKyAgICAgfQorIAorICAgcmVzdWx0ID0gMTsKK0luZGV4OiBlbGZ1dGlscy0wLjE3 NS9saWJlbGYvZ2VsZl91cGRhdGVfcmVsYS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZWxmdXRpbHMtMC4x NzUub3JpZy9saWJlbGYvZ2VsZl91cGRhdGVfcmVsYS5jCisrKysgZWxmdXRpbHMtMC4xNzUvbGli ZWxmL2dlbGZfdXBkYXRlX3JlbGEuYworQEAgLTM2LDYgKzM2LDcgQEAKKyAKKyAjaW5jbHVkZSAi bGliZWxmUC5oIgorIAorKyNkZWZpbmUgRUZfTUlQU19BQkkJMHgwMDAwRjAwMAorIAorIGludAor IGdlbGZfdXBkYXRlX3JlbGEgKEVsZl9EYXRhICpkc3QsIGludCBuZHgsIEdFbGZfUmVsYSAqc3Jj KQorQEAgLTg5LDYgKzkwLDkgQEAgZ2VsZl91cGRhdGVfcmVsYSAoRWxmX0RhdGEgKmRzdCwgaW50 IG5keAorICAgICB9CisgICBlbHNlCisgICAgIHsKKysgICAgICBHRWxmX0VoZHIgaGRyOworKyAg ICAgIEdFbGZfUmVsYSB2YWx1ZSA9ICpzcmM7CisrCisgICAgICAgLyogQ2hlY2sgd2hldGhlciB3 ZSBoYXZlIHRvIHJlc2l6ZSB0aGUgZGF0YSBidWZmZXIuICAqLworICAgICAgIGlmIChJTlZBTElE X05EWCAobmR4LCBFbGY2NF9SZWxhLCAmZGF0YV9zY24tPmQpKQorIAl7CitAQCAtOTYsNyArMTAw LDIxIEBAIGdlbGZfdXBkYXRlX3JlbGEgKEVsZl9EYXRhICpkc3QsIGludCBuZHgKKyAJICBnb3Rv IG91dDsKKyAJfQorIAorLSAgICAgICgoRWxmNjRfUmVsYSAqKSBkYXRhX3Njbi0+ZC5kX2J1Zilb bmR4XSA9ICpzcmM7CisrICAgICAgaWYgKGdlbGZfZ2V0ZWhkcihzY24tPmVsZiwgJmhkcikgIT0g TlVMTCAmJgorKyAgICAgICAgICBoZHIuZV9pZGVudFtFSV9EQVRBXSA9PSBFTEZEQVRBMkxTQiAm JgorKyAgICAgICAgICBoZHIuZV9tYWNoaW5lID09IEVNX01JUFMgJiYKKysgICAgICAgICAgKGhk ci5lX2ZsYWdzICYgRUZfTUlQU19BQkkpID09IDApCisrICAgICAgICB7CisrICAgICAgICAgIC8q IFVuZG8gdGhlIE1JUFNFTCBONjQgaGFjayBmcm9tIGdlbGZfZ2V0cmVsICovCisrICAgICAgICAg IEdFbGZfWHdvcmQgcl9pbmZvID0gdmFsdWUucl9pbmZvOworKyAgICAgICAgICB2YWx1ZS5yX2lu Zm8gPSAocl9pbmZvID4+IDMyKSB8CisrICAgICAgICAgICAgICAgICAgICAgICAgICgocl9pbmZv IDw8IDgpICYgIDB4MDAwMDAwRkYwMDAwMDAwMCkgfAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAoKHJfaW5mbyA8PCAyNCkgJiAweDAwMDBGRjAwMDAwMDAwMDApIHwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgKChyX2luZm8gPDwgNDApICYgMHgwMEZGMDAwMDAwMDAwMDAwKSB8CisrICAg ICAgICAgICAgICAgICAgICAgICAgICgocl9pbmZvIDw8IDU2KSAmIDB4RkYwMDAwMDAwMDAwMDAw MCk7CisrICAgICAgICB9CisrCisrICAgICAgKChFbGY2NF9SZWxhICopIGRhdGFfc2NuLT5kLmRf YnVmKVtuZHhdID0gdmFsdWU7CisgICAgIH0KKyAKKyAgIHJlc3VsdCA9IDE7CitJbmRleDogZWxm dXRpbHMtMC4xNzUvc3JjL3N0cmlwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0wLjE3NS5v cmlnL3NyYy9zdHJpcC5jCisrKysgZWxmdXRpbHMtMC4xNzUvc3JjL3N0cmlwLmMKK0BAIC0xMDYy LDYgKzEwNjIsMjMgQEAgaGFuZGxlX2VsZiAoaW50IGZkLCBFbGYgKmVsZiwgY29uc3QgY2hhcgor ICAgICAgIGdvdG8gZmFpbDsKKyAgICAgfQorIAorKyAgLyogQ29weSBpZGVudGl0eSBwYXJ0IG9m IHRoZSBFTEYgaGVhZGVyIG5vdyAqLworKyAgbmV3ZWhkciA9IGdlbGZfZ2V0ZWhkciAobmV3ZWxm LCAmbmV3ZWhkcl9tZW0pOworKyAgaWYgKG5ld2VoZHIgPT0gTlVMTCkKKysgICAgSU5URVJOQUxf RVJST1IgKGZuYW1lKTsKKysKKysgIG1lbWNweSAobmV3ZWhkci0+ZV9pZGVudCwgZWhkci0+ZV9p ZGVudCwgRUlfTklERU5UKTsKKysgIG5ld2VoZHItPmVfdHlwZSA9IGVoZHItPmVfdHlwZTsKKysg IG5ld2VoZHItPmVfbWFjaGluZSA9IGVoZHItPmVfbWFjaGluZTsKKysgIG5ld2VoZHItPmVfdmVy c2lvbiA9IGVoZHItPmVfdmVyc2lvbjsKKysKKysgIGlmIChnZWxmX3VwZGF0ZV9laGRyIChuZXdl bGYsIG5ld2VoZHIpID09IDApCisrICAgIHsKKysgICAgICBlcnJvciAoMCwgMCwgZ2V0dGV4dCAo IiVzOiBlcnJvciB3aGlsZSBjcmVhdGluZyBFTEYgaGVhZGVyOiAlcyIpLAorKwkgICAgIGZuYW1l LCBlbGZfZXJybXNnICgtMSkpOworKyAgICAgIHJldHVybiAxOworKyAgICB9CisrCisgICAvKiBD b3B5IG92ZXIgdGhlIG9sZCBwcm9ncmFtIGhlYWRlciBpZiBuZWVkZWQuICAqLworICAgaWYgKHBo bnVtID4gMCkKKyAgICAgewpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9hcm1f YmFja2VuZC5kaWZmIGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9hcm1fYmFja2VuZC5kaWZmCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNmE4NWJhZjRiCi0tLSAvZGV2L251 bGwKKysrIGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9hcm1fYmFja2VuZC5kaWZmCkBAIC0wLDAg KzEsNjAwIEBACitJbmRleDogZWxmdXRpbHMtMC4xNzUvYmFja2VuZHMvYXJtX2luaXQuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGVsZnV0aWxzLTAuMTc1Lm9yaWcvYmFja2VuZHMvYXJtX2luaXQuYworKysr IGVsZnV0aWxzLTAuMTc1L2JhY2tlbmRzL2FybV9pbml0LmMKK0BAIC0zNSwyMCArMzUsMzEgQEAK KyAjZGVmaW5lIFJFTE9DX1BSRUZJWAlSX0FSTV8KKyAjaW5jbHVkZSAibGliZWJsX0NQVS5oIgor IAorKyNpbmNsdWRlICJsaWJlYmxfYXJtLmgiCisrCisgLyogVGhpcyBkZWZpbmVzIHRoZSBjb21t b24gcmVsb2MgaG9va3MgYmFzZWQgb24gYXJtX3JlbG9jLmRlZi4gICovCisgI2luY2x1ZGUgImNv bW1vbi1yZWxvYy5jIgorIAorIAorIGNvbnN0IGNoYXIgKgorLWFybV9pbml0IChFbGYgKmVsZiBf X2F0dHJpYnV0ZV9fICgodW51c2VkKSksCisrYXJtX2luaXQgKEVsZiAqZWxmLAorIAkgIEdFbGZf SGFsZiBtYWNoaW5lIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwKKyAJICBFYmwgKmVoLAorIAkg IHNpemVfdCBlaGxlbikKKyB7CisrICBpbnQgc29mdF9mbG9hdCA9IDA7CisrCisgICAvKiBDaGVj ayB3aGV0aGVyIHRoZSBFbGZfQkggb2JqZWN0IGhhcyBhIHN1ZmZpY2VudCBzaXplLiAgKi8KKyAg IGlmIChlaGxlbiA8IHNpemVvZiAoRWJsKSkKKyAgICAgcmV0dXJuIE5VTEw7CisgCisrICBpZiAo ZWxmKSB7CisrICAgIEdFbGZfRWhkciBlaGRyX21lbTsKKysgICAgR0VsZl9FaGRyICplaGRyID0g Z2VsZl9nZXRlaGRyIChlbGYsICZlaGRyX21lbSk7CisrICAgIGlmIChlaGRyICYmIChlaGRyLT5l X2ZsYWdzICYgRUZfQVJNX1NPRlRfRkxPQVQpKQorKyAgICAgIHNvZnRfZmxvYXQgPSAxOworKyAg fQorKworICAgLyogV2UgaGFuZGxlIGl0LiAgKi8KKyAgIGVoLT5uYW1lID0gIkFSTSI7CisgICBh cm1faW5pdF9yZWxvYyAoZWgpOworQEAgLTYwLDcgKzcxLDEwIEBAIGFybV9pbml0IChFbGYgKmVs ZiBfX2F0dHJpYnV0ZV9fICgodW51c2UKKyAgIEhPT0sgKGVoLCBjb3JlX25vdGUpOworICAgSE9P SyAoZWgsIGF1eHZfaW5mbyk7CisgICBIT09LIChlaCwgY2hlY2tfb2JqZWN0X2F0dHJpYnV0ZSk7 CistICBIT09LIChlaCwgcmV0dXJuX3ZhbHVlX2xvY2F0aW9uKTsKKysgIGlmIChzb2Z0X2Zsb2F0 KQorKyAgICBlaC0+cmV0dXJuX3ZhbHVlX2xvY2F0aW9uID0gYXJtX3JldHVybl92YWx1ZV9sb2Nh dGlvbl9zb2Z0OworKyAgZWxzZQorKyAgICBlaC0+cmV0dXJuX3ZhbHVlX2xvY2F0aW9uID0gYXJt X3JldHVybl92YWx1ZV9sb2NhdGlvbl9oYXJkOworICAgSE9PSyAoZWgsIGFiaV9jZmkpOworICAg SE9PSyAoZWgsIGNoZWNrX3JlbG9jX3RhcmdldF90eXBlKTsKKyAgIEhPT0sgKGVoLCBzeW1ib2xf dHlwZV9uYW1lKTsKK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9hcm1fcmVncy5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZWxmdXRpbHMtMC4xNzUub3JpZy9iYWNrZW5kcy9hcm1fcmVncy5jCisr KysgZWxmdXRpbHMtMC4xNzUvYmFja2VuZHMvYXJtX3JlZ3MuYworQEAgLTMxLDYgKzMxLDcgQEAK KyAjZW5kaWYKKyAKKyAjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+Cisg I2luY2x1ZGUgPGR3YXJmLmg+CisgCisgI2RlZmluZSBCQUNLRU5EIGFybV8KK0BAIC03Niw2ICs3 Nyw5IEBAIGFybV9yZWdpc3Rlcl9pbmZvIChFYmwgKmVibCBfX2F0dHJpYnV0ZV8KKyAgICAgICBi cmVhazsKKyAKKyAgICAgY2FzZSAxNiArIDAgLi4uIDE2ICsgNzoKKysgICAgICAvKiBBQURXQVJG IHNheXMgdGhhdCB0aGVyZSBhcmUgbm8gcmVnaXN0ZXJzIGluIHRoYXQgcmFuZ2UsCisrICAgICAg ICogYnV0IGdjYyBtYXBzIEZQQSByZWdpc3RlcnMgaGVyZQorKyAgICAgICAqLworICAgICAgIHJl Z25vICs9IDk2IC0gMTY7CisgICAgICAgRkFMTFRIUk9VR0g7CisgICAgIGNhc2UgOTYgKyAwIC4u LiA5NiArIDc6CitAQCAtODcsMTEgKzkxLDEzOSBAQCBhcm1fcmVnaXN0ZXJfaW5mbyAoRWJsICpl YmwgX19hdHRyaWJ1dGVfCisgICAgICAgbmFtZWxlbiA9IDI7CisgICAgICAgYnJlYWs7CisgCisr ICAgIGNhc2UgNjQgKyAwIC4uLiA2NCArIDk6CisrICAgICAgKnNldG5hbWUgPSAiVkZQIjsKKysg ICAgICAqYml0cyA9IDMyOworKyAgICAgICp0eXBlID0gRFdfQVRFX2Zsb2F0OworKyAgICAgIG5h bWVbMF0gPSAncyc7CisrICAgICAgbmFtZVsxXSA9IHJlZ25vIC0gNjQgKyAnMCc7CisrICAgICAg bmFtZWxlbiA9IDI7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgNjQgKyAxMCAuLi4gNjQg KyAzMToKKysgICAgICAqc2V0bmFtZSA9ICJWRlAiOworKyAgICAgICpiaXRzID0gMzI7CisrICAg ICAgKnR5cGUgPSBEV19BVEVfZmxvYXQ7CisrICAgICAgbmFtZVswXSA9ICdzJzsKKysgICAgICBu YW1lWzFdID0gKHJlZ25vIC0gNjQpIC8gMTAgKyAnMCc7CisrICAgICAgbmFtZVsyXSA9IChyZWdu byAtIDY0KSAlIDEwICsgJzAnOworKyAgICAgIG5hbWVsZW4gPSAzOworKyAgICAgIGJyZWFrOwor KworKyAgICBjYXNlIDEwNCArIDAgLi4uIDEwNCArIDc6CisrICAgICAgLyogWFhYIFRPRE86Cisr ICAgICAgICogVGhpcyBjYW4gYmUgZWl0aGVyIGludGVsIHdpcmVsZXNzIE1NWCBnZW5lcmFsIHB1 cnBvc2UvY29udHJvbAorKyAgICAgICAqIHJlZ2lzdGVycyBvciB4c2NhbGUgYWNjdW11bGF0b3Is IHdoaWNoIGhhdmUgZGlmZmVyZW50IHVzYWdlLgorKyAgICAgICAqIFdlIG9ubHkgaGF2ZSB0aGUg aW50ZWwgd2lyZWxlc3MgTU1YIGhlcmUgbm93LgorKyAgICAgICAqIFRoZSBuYW1lIG5lZWRzIHRv IGJlIGNoYW5nZWQgZm9yIHRoZSB4c2NhbGUgYWNjdW11bGF0b3IgdG9vLiAqLworKyAgICAgICpz ZXRuYW1lID0gIk1NWCI7CisrICAgICAgKnR5cGUgPSBEV19BVEVfdW5zaWduZWQ7CisrICAgICAg KmJpdHMgPSAzMjsKKysgICAgICBtZW1jcHkobmFtZSwgIndjZ3IiLCA0KTsKKysgICAgICBuYW1l WzRdID0gcmVnbm8gLSAxMDQgKyAnMCc7CisrICAgICAgbmFtZWxlbiA9IDU7CisrICAgICAgYnJl YWs7CisrCisrICAgIGNhc2UgMTEyICsgMCAuLi4gMTEyICsgOToKKysgICAgICAqc2V0bmFtZSA9 ICJNTVgiOworKyAgICAgICp0eXBlID0gRFdfQVRFX3Vuc2lnbmVkOworKyAgICAgICpiaXRzID0g NjQ7CisrICAgICAgbmFtZVswXSA9ICd3JzsKKysgICAgICBuYW1lWzFdID0gJ3InOworKyAgICAg IG5hbWVbMl0gPSByZWdubyAtIDExMiArICcwJzsKKysgICAgICBuYW1lbGVuID0gMzsKKysgICAg ICBicmVhazsKKysKKysgICAgY2FzZSAxMTIgKyAxMCAuLi4gMTEyICsgMTU6CisrICAgICAgKnNl dG5hbWUgPSAiTU1YIjsKKysgICAgICAqdHlwZSA9IERXX0FURV91bnNpZ25lZDsKKysgICAgICAq Yml0cyA9IDY0OworKyAgICAgIG5hbWVbMF0gPSAndyc7CisrICAgICAgbmFtZVsxXSA9ICdyJzsK KysgICAgICBuYW1lWzJdID0gJzEnOworKyAgICAgIG5hbWVbM10gPSByZWdubyAtIDExMiAtIDEw ICsgJzAnOworKyAgICAgIG5hbWVsZW4gPSA0OworKyAgICAgIGJyZWFrOworKworICAgICBjYXNl IDEyODoKKysgICAgICAqc2V0bmFtZSA9ICJzdGF0ZSI7CisgICAgICAgKnR5cGUgPSBEV19BVEVf dW5zaWduZWQ7CisgICAgICAgcmV0dXJuIHN0cGNweSAobmFtZSwgInNwc3IiKSArIDEgLSBuYW1l OworIAorKyAgICBjYXNlIDEyOToKKysgICAgICAqc2V0bmFtZSA9ICJzdGF0ZSI7CisrICAgICAg KnR5cGUgPSBEV19BVEVfdW5zaWduZWQ7CisrICAgICAgcmV0dXJuIHN0cGNweShuYW1lLCAic3Bz cl9maXEiKSArIDEgLSBuYW1lOworKworKyAgICBjYXNlIDEzMDoKKysgICAgICAqc2V0bmFtZSA9 ICJzdGF0ZSI7CisrICAgICAgKnR5cGUgPSBEV19BVEVfdW5zaWduZWQ7CisrICAgICAgcmV0dXJu IHN0cGNweShuYW1lLCAic3Bzcl9pcnEiKSArIDEgLSBuYW1lOworKworKyAgICBjYXNlIDEzMToK KysgICAgICAqc2V0bmFtZSA9ICJzdGF0ZSI7CisrICAgICAgKnR5cGUgPSBEV19BVEVfdW5zaWdu ZWQ7CisrICAgICAgcmV0dXJuIHN0cGNweShuYW1lLCAic3Bzcl9hYnQiKSArIDEgLSBuYW1lOwor KworKyAgICBjYXNlIDEzMjoKKysgICAgICAqc2V0bmFtZSA9ICJzdGF0ZSI7CisrICAgICAgKnR5 cGUgPSBEV19BVEVfdW5zaWduZWQ7CisrICAgICAgcmV0dXJuIHN0cGNweShuYW1lLCAic3Bzcl91 bmQiKSArIDEgLSBuYW1lOworKworKyAgICBjYXNlIDEzMzoKKysgICAgICAqc2V0bmFtZSA9ICJz dGF0ZSI7CisrICAgICAgKnR5cGUgPSBEV19BVEVfdW5zaWduZWQ7CisrICAgICAgcmV0dXJuIHN0 cGNweShuYW1lLCAic3Bzcl9zdmMiKSArIDEgLSBuYW1lOworKworKyAgICBjYXNlIDE0NCAuLi4g MTUwOgorKyAgICAgICpzZXRuYW1lID0gImludGVnZXIiOworKyAgICAgICp0eXBlID0gRFdfQVRF X3NpZ25lZDsKKysgICAgICAqYml0cyA9IDMyOworKyAgICAgIHJldHVybiBzcHJpbnRmKG5hbWUs ICJyJWRfdXNyIiwgcmVnbm8gLSAxNDQgKyA4KSArIDE7CisrCisrICAgIGNhc2UgMTUxIC4uLiAx NTc6CisrICAgICAgKnNldG5hbWUgPSAiaW50ZWdlciI7CisrICAgICAgKnR5cGUgPSBEV19BVEVf c2lnbmVkOworKyAgICAgICpiaXRzID0gMzI7CisrICAgICAgcmV0dXJuIHNwcmludGYobmFtZSwg InIlZF9maXEiLCByZWdubyAtIDE1MSArIDgpICsgMTsKKysKKysgICAgY2FzZSAxNTggLi4uIDE1 OToKKysgICAgICAqc2V0bmFtZSA9ICJpbnRlZ2VyIjsKKysgICAgICAqdHlwZSA9IERXX0FURV9z aWduZWQ7CisrICAgICAgKmJpdHMgPSAzMjsKKysgICAgICByZXR1cm4gc3ByaW50ZihuYW1lLCAi ciVkX2lycSIsIHJlZ25vIC0gMTU4ICsgMTMpICsgMTsKKysKKysgICAgY2FzZSAxNjAgLi4uIDE2 MToKKysgICAgICAqc2V0bmFtZSA9ICJpbnRlZ2VyIjsKKysgICAgICAqdHlwZSA9IERXX0FURV9z aWduZWQ7CisrICAgICAgKmJpdHMgPSAzMjsKKysgICAgICByZXR1cm4gc3ByaW50ZihuYW1lLCAi ciVkX2FidCIsIHJlZ25vIC0gMTYwICsgMTMpICsgMTsKKysKKysgICAgY2FzZSAxNjIgLi4uIDE2 MzoKKysgICAgICAqc2V0bmFtZSA9ICJpbnRlZ2VyIjsKKysgICAgICAqdHlwZSA9IERXX0FURV9z aWduZWQ7CisrICAgICAgKmJpdHMgPSAzMjsKKysgICAgICByZXR1cm4gc3ByaW50ZihuYW1lLCAi ciVkX3VuZCIsIHJlZ25vIC0gMTYyICsgMTMpICsgMTsKKysKKysgICAgY2FzZSAxNjQgLi4uIDE2 NToKKysgICAgICAqc2V0bmFtZSA9ICJpbnRlZ2VyIjsKKysgICAgICAqdHlwZSA9IERXX0FURV9z aWduZWQ7CisrICAgICAgKmJpdHMgPSAzMjsKKysgICAgICByZXR1cm4gc3ByaW50ZihuYW1lLCAi ciVkX3N2YyIsIHJlZ25vIC0gMTY0ICsgMTMpICsgMTsKKysKKysgICAgY2FzZSAxOTIgLi4uIDE5 OToKKysgICAgICpzZXRuYW1lID0gIk1NWCI7CisrICAgICAgKmJpdHMgPSAzMjsKKysgICAgICAq dHlwZSA9IERXX0FURV91bnNpZ25lZDsKKysgICAgICBuYW1lWzBdID0gJ3cnOworKyAgICAgIG5h bWVbMV0gPSAnYyc7CisrICAgICAgbmFtZVsyXSA9IHJlZ25vIC0gMTkyICsgJzAnOworKyAgICAg IG5hbWVsZW4gPSAzOworKyAgICAgIGJyZWFrOworKworICAgICBjYXNlIDI1NiArIDAgLi4uIDI1 NiArIDk6CisrICAgICAgLyogWFhYIFRPRE86IE5lb24gYWxzbyB1c2VzIHRob3NlIHJlZ2lzdGVy cyBhbmQgY2FuIGNvbnRhaW4KKysgICAgICAgKiBib3RoIGZsb2F0IGFuZCBpbnRlZ2VycyAqLwor ICAgICAgICpzZXRuYW1lID0gIlZGUCI7CisgICAgICAgKnR5cGUgPSBEV19BVEVfZmxvYXQ7Cisg ICAgICAgKmJpdHMgPSA2NDsKK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9hcm1fcmV0 dmFsLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0wLjE3NS5vcmlnL2JhY2tlbmRzL2FybV9y ZXR2YWwuYworKysrIGVsZnV0aWxzLTAuMTc1L2JhY2tlbmRzL2FybV9yZXR2YWwuYworQEAgLTQ4 LDYgKzQ4LDEzIEBAIHN0YXRpYyBjb25zdCBEd2FyZl9PcCBsb2NfaW50cmVnW10gPQorICNkZWZp bmUgbmxvY19pbnRyZWcJMQorICNkZWZpbmUgbmxvY19pbnRyZWdzKG4pCSgyICogKG4pKQorIAor Ky8qIGYxICAqLyAvKiBYWFggVE9ETzogZjAgY2FuIGFsc28gaGF2ZSBudW1iZXIgOTYgaWYgcHJv Z3JhbSB3YXMgY29tcGlsZWQgd2l0aCAtbWFiaT1hYXBjcyAqLworK3N0YXRpYyBjb25zdCBEd2Fy Zl9PcCBsb2NfZnByZWdbXSA9CisrICB7CisrICAgIHsgLmF0b20gPSBEV19PUF9yZWcxNiB9LAor KyAgfTsKKysjZGVmaW5lIG5sb2NfZnByZWcgIDEKKysKKyAvKiBUaGUgcmV0dXJuIHZhbHVlIGlz IGEgc3RydWN0dXJlIGFuZCBpcyBhY3R1YWxseSBzdG9yZWQgaW4gc3RhY2sgc3BhY2UKKyAgICBw YXNzZWQgaW4gYSBoaWRkZW4gYXJndW1lbnQgYnkgdGhlIGNhbGxlci4gIEJ1dCwgdGhlIGNvbXBp bGVyCisgICAgaGVscGZ1bGx5IHJldHVybnMgdGhlIGFkZHJlc3Mgb2YgdGhhdCBzcGFjZSBpbiBy MC4gICovCitAQCAtNTgsOCArNjUsOSBAQCBzdGF0aWMgY29uc3QgRHdhcmZfT3AgbG9jX2FnZ3Jl Z2F0ZVtdID0KKyAjZGVmaW5lIG5sb2NfYWdncmVnYXRlIDEKKyAKKyAKKy1pbnQKKy1hcm1fcmV0 dXJuX3ZhbHVlX2xvY2F0aW9uIChEd2FyZl9EaWUgKmZ1bmN0eXBlZGllLCBjb25zdCBEd2FyZl9P cCAqKmxvY3ApCisrc3RhdGljIGludAorK2FybV9yZXR1cm5fdmFsdWVfbG9jYXRpb25fIChEd2Fy Zl9EaWUgKmZ1bmN0eXBlZGllLCBjb25zdCBEd2FyZl9PcCAqKmxvY3AsCisrCQkgICAgICAgICAg ICBpbnQgc29mdF9mbG9hdCkKKyB7CisgICAvKiBTdGFydCB3aXRoIHRoZSBmdW5jdGlvbidzIHR5 cGUsIGFuZCBnZXQgdGhlIERXX0FUX3R5cGUgYXR0cmlidXRlLAorICAgICAgd2hpY2ggaXMgdGhl IHR5cGUgb2YgdGhlIHJldHVybiB2YWx1ZS4gICovCitAQCAtOTgsNiArMTA2LDIxIEBAIGFybV9y ZXR1cm5fdmFsdWVfbG9jYXRpb24gKER3YXJmX0RpZSAqZnUKKyAJICAgIGVsc2UKKyAJICAgICAg cmV0dXJuIC0xOworIAkgIH0KKysJaWYgKHRhZyA9PSBEV19UQUdfYmFzZV90eXBlKQorKwkgIHsK KysJICAgIER3YXJmX1dvcmQgZW5jb2Rpbmc7CisrCSAgICBpZiAoZHdhcmZfZm9ybXVkYXRhIChk d2FyZl9hdHRyX2ludGVncmF0ZSAodHlwZWRpZSwgRFdfQVRfZW5jb2RpbmcsCisrCQkJCSAmYXR0 cl9tZW0pLCAmZW5jb2RpbmcpICE9IDApCisrCSAgICAgIHJldHVybiAtMTsKKysKKysJICAgIGlm ICgoZW5jb2RpbmcgPT0gRFdfQVRFX2Zsb2F0KSAmJiAhc29mdF9mbG9hdCkKKysJICAgICAgewor KwkJKmxvY3AgPSBsb2NfZnByZWc7CisrCQlpZiAoc2l6ZSA8PSA4KQorKwkJICByZXR1cm4gbmxv Y19mcHJlZzsKKysJCWdvdG8gYWdncmVnYXRlOworKwkgICAgICB9CisrCSAgfQorIAlpZiAoc2l6 ZSA8PSAxNikKKyAJICB7CisgCSAgaW50cmVnOgorQEAgLTEwNiw2ICsxMjksNyBAQCBhcm1fcmV0 dXJuX3ZhbHVlX2xvY2F0aW9uIChEd2FyZl9EaWUgKmZ1CisgCSAgfQorIAorICAgICAgIGFnZ3Jl Z2F0ZToKKysJLyogWFhYIFRPRE8gc29tZXRpbWVzIGFnZ3JlZ2F0ZXMgYXJlIHJldHVybmVkIGlu IHIwICgtbWFiaT1hYXBjcykgKi8KKyAJKmxvY3AgPSBsb2NfYWdncmVnYXRlOworIAlyZXR1cm4g bmxvY19hZ2dyZWdhdGU7CisgICAgICAgfQorQEAgLTEyNSwzICsxNDksMTggQEAgYXJtX3JldHVy bl92YWx1ZV9sb2NhdGlvbiAoRHdhcmZfRGllICpmdQorICAgICAgRFdBUkYgYW5kIG1pZ2h0IGJl IHZhbGlkLiAgKi8KKyAgIHJldHVybiAtMjsKKyB9CisrCisrLyogcmV0dXJuIGxvY2F0aW9uIGZv ciAtbWFiaT1hcGNzLWdudSAtbXNvZnQtZmxvYXQgKi8KKytpbnQKKythcm1fcmV0dXJuX3ZhbHVl X2xvY2F0aW9uX3NvZnQgKER3YXJmX0RpZSAqZnVuY3R5cGVkaWUsIGNvbnN0IER3YXJmX09wICoq bG9jcCkKKyt7CisrICAgcmV0dXJuIGFybV9yZXR1cm5fdmFsdWVfbG9jYXRpb25fIChmdW5jdHlw ZWRpZSwgbG9jcCwgMSk7CisrfQorKworKy8qIHJldHVybiBsb2NhdGlvbiBmb3IgLW1hYmk9YXBj cy1nbnUgLW1oYXJkLWZsb2F0IChjdXJyZW50IGRlZmF1bHQpICovCisraW50CisrYXJtX3JldHVy bl92YWx1ZV9sb2NhdGlvbl9oYXJkIChEd2FyZl9EaWUgKmZ1bmN0eXBlZGllLCBjb25zdCBEd2Fy Zl9PcCAqKmxvY3ApCisreworKyAgIHJldHVybiBhcm1fcmV0dXJuX3ZhbHVlX2xvY2F0aW9uXyAo ZnVuY3R5cGVkaWUsIGxvY3AsIDApOworK30KKysKK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9saWJl bGYvZWxmLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0wLjE3NS5vcmlnL2xpYmVsZi9lbGYu aAorKysrIGVsZnV0aWxzLTAuMTc1L2xpYmVsZi9lbGYuaAorQEAgLTI2OTQsNiArMjY5NCw5IEBA IGVudW0KKyAjZGVmaW5lIEVGX0FSTV9FQUJJX1ZFUjQJMHgwNDAwMDAwMAorICNkZWZpbmUgRUZf QVJNX0VBQklfVkVSNQkweDA1MDAwMDAwCisgCisrLyogRUlfT1NBQkkgdmFsdWVzICovCisrI2Rl ZmluZSBFTEZPU0FCSV9BUk1fQUVBQkkgICAgNjQgICAgICAvKiBDb250YWlucyBzeW1ib2wgdmVy c2lvbmluZy4gKi8KKysKKyAvKiBBZGRpdGlvbmFsIHN5bWJvbCB0eXBlcyBmb3IgVGh1bWIuICAq LworICNkZWZpbmUgU1RUX0FSTV9URlVOQwkJU1RUX0xPUFJPQyAvKiBBIFRodW1iIGZ1bmN0aW9u LiAgKi8KKyAjZGVmaW5lIFNUVF9BUk1fMTZCSVQJCVNUVF9ISVBST0MgLyogQSBUaHVtYiBsYWJl bC4gICovCitAQCAtMjcxMSwxMiArMjcxNCwxOSBAQCBlbnVtCisgCisgLyogUHJvY2Vzc29yIHNw ZWNpZmljIHZhbHVlcyBmb3IgdGhlIFBoZHIgcF90eXBlIGZpZWxkLiAgKi8KKyAjZGVmaW5lIFBU X0FSTV9FWElEWAkJKFBUX0xPUFJPQyArIDEpCS8qIEFSTSB1bndpbmQgc2VnbWVudC4gICovCisr I2RlZmluZSBQVF9BUk1fVU5XSU5ECQlQVF9BUk1fRVhJRFgKKyAKKyAvKiBQcm9jZXNzb3Igc3Bl Y2lmaWMgdmFsdWVzIGZvciB0aGUgU2hkciBzaF90eXBlIGZpZWxkLiAgKi8KKyAjZGVmaW5lIFNI VF9BUk1fRVhJRFgJCShTSFRfTE9QUk9DICsgMSkgLyogQVJNIHVud2luZCBzZWN0aW9uLiAgKi8K KyAjZGVmaW5lIFNIVF9BUk1fUFJFRU1QVE1BUAkoU0hUX0xPUFJPQyArIDIpIC8qIFByZWVtcHRp b24gZGV0YWlscy4gICovCisgI2RlZmluZSBTSFRfQVJNX0FUVFJJQlVURVMJKFNIVF9MT1BST0Mg KyAzKSAvKiBBUk0gYXR0cmlidXRlcyBzZWN0aW9uLiAgKi8KKyAKKysvKiBQcm9jZXNzb3Igc3Bl Y2lmaWMgdmFsdWVzIGZvciB0aGUgRHluIGRfdGFnIGZpZWxkLiAgKi8KKysjZGVmaW5lIERUX0FS TV9SRVNFUlZFRDEJKERUX0xPUFJPQyArIDApCisrI2RlZmluZSBEVF9BUk1fU1lNVEFCU1oJCShE VF9MT1BST0MgKyAxKQorKyNkZWZpbmUgRFRfQVJNX1BSRUVNVE1BQgkoRFRfTE9QUk9DICsgMikK KysjZGVmaW5lIERUX0FSTV9SRVNFUlZFRDIJKERUX0xPUFJPQyArIDMpCisrI2RlZmluZSBEVF9B Uk1fTlVNCQk0CisgCisgLyogQUFyY2g2NCByZWxvY3MuICAqLworIAorQEAgLTMwMDksNiArMzAx OSw3IEBAIGVudW0KKyAJCQkJCSAgIFRMUyBibG9jayAoTERSLCBTVFIpLiAgKi8KKyAjZGVmaW5l IFJfQVJNX1RMU19JRTEyR1AJMTExCS8qIDEyIGJpdCBHT1QgZW50cnkgcmVsYXRpdmUKKyAJCQkJ CSAgIHRvIEdPVCBvcmlnaW4gKExEUikuICAqLworKy8qIDExMiAtIDEyNyBwcml2YXRlIHJhbmdl ICovCisgI2RlZmluZSBSX0FSTV9NRV9UT08JCTEyOAkvKiBPYnNvbGV0ZS4gICovCisgI2RlZmlu ZSBSX0FSTV9USE1fVExTX0RFU0NTRVEJMTI5CisgI2RlZmluZSBSX0FSTV9USE1fVExTX0RFU0NT RVExNgkxMjkKK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9saWJlYmxfYXJtLmgKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSAvZGV2L251bGwKKysrKyBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9saWJl YmxfYXJtLmgKK0BAIC0wLDAgKzEsOSBAQAorKyNpZm5kZWYgX0xJQkVCTF9BUk1fSAorKyNkZWZp bmUgX0xJQkVCTF9BUk1fSCAxCisrCisrI2luY2x1ZGUgPGxpYmR3Lmg+CisrCisrZXh0ZXJuIGlu dCBhcm1fcmV0dXJuX3ZhbHVlX2xvY2F0aW9uX3NvZnQoRHdhcmZfRGllICosIGNvbnN0IER3YXJm X09wICoqbG9jcCk7CisrZXh0ZXJuIGludCBhcm1fcmV0dXJuX3ZhbHVlX2xvY2F0aW9uX2hhcmQo RHdhcmZfRGllICosIGNvbnN0IER3YXJmX09wICoqbG9jcCk7CisrCisrI2VuZGlmCitJbmRleDog ZWxmdXRpbHMtMC4xNzUvdGVzdHMvcnVuLWFsbHJlZ3Muc2gKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1 dGlscy0wLjE3NS5vcmlnL3Rlc3RzL3J1bi1hbGxyZWdzLnNoCisrKysgZWxmdXRpbHMtMC4xNzUv dGVzdHMvcnVuLWFsbHJlZ3Muc2gKK0BAIC0yNjcyLDcgKzI2NzIsMjggQEAgaW50ZWdlciByZWdp c3RlcnM6CisgCSAxMzogc3AgKHNwKSwgYWRkcmVzcyAzMiBiaXRzCisgCSAxNDogbHIgKGxyKSwg YWRkcmVzcyAzMiBiaXRzCisgCSAxNTogcGMgKHBjKSwgYWRkcmVzcyAzMiBiaXRzCistCTEyODog c3BzciAoc3BzciksIHVuc2lnbmVkIDMyIGJpdHMKKysJMTQ0OiByOF91c3IgKHI4X3VzciksIHNp Z25lZCAzMiBiaXRzCisrCTE0NTogcjlfdXNyIChyOV91c3IpLCBzaWduZWQgMzIgYml0cworKwkx NDY6IHIxMF91c3IgKHIxMF91c3IpLCBzaWduZWQgMzIgYml0cworKwkxNDc6IHIxMV91c3IgKHIx MV91c3IpLCBzaWduZWQgMzIgYml0cworKwkxNDg6IHIxMl91c3IgKHIxMl91c3IpLCBzaWduZWQg MzIgYml0cworKwkxNDk6IHIxM191c3IgKHIxM191c3IpLCBzaWduZWQgMzIgYml0cworKwkxNTA6 IHIxNF91c3IgKHIxNF91c3IpLCBzaWduZWQgMzIgYml0cworKwkxNTE6IHI4X2ZpcSAocjhfZmlx KSwgc2lnbmVkIDMyIGJpdHMKKysJMTUyOiByOV9maXEgKHI5X2ZpcSksIHNpZ25lZCAzMiBiaXRz CisrCTE1MzogcjEwX2ZpcSAocjEwX2ZpcSksIHNpZ25lZCAzMiBiaXRzCisrCTE1NDogcjExX2Zp cSAocjExX2ZpcSksIHNpZ25lZCAzMiBiaXRzCisrCTE1NTogcjEyX2ZpcSAocjEyX2ZpcSksIHNp Z25lZCAzMiBiaXRzCisrCTE1NjogcjEzX2ZpcSAocjEzX2ZpcSksIHNpZ25lZCAzMiBiaXRzCisr CTE1NzogcjE0X2ZpcSAocjE0X2ZpcSksIHNpZ25lZCAzMiBiaXRzCisrCTE1ODogcjEzX2lycSAo cjEzX2lycSksIHNpZ25lZCAzMiBiaXRzCisrCTE1OTogcjE0X2lycSAocjE0X2lycSksIHNpZ25l ZCAzMiBiaXRzCisrCTE2MDogcjEzX2FidCAocjEzX2FidCksIHNpZ25lZCAzMiBiaXRzCisrCTE2 MTogcjE0X2FidCAocjE0X2FidCksIHNpZ25lZCAzMiBiaXRzCisrCTE2MjogcjEzX3VuZCAocjEz X3VuZCksIHNpZ25lZCAzMiBiaXRzCisrCTE2MzogcjE0X3VuZCAocjE0X3VuZCksIHNpZ25lZCAz MiBiaXRzCisrCTE2NDogcjEzX3N2YyAocjEzX3N2YyksIHNpZ25lZCAzMiBiaXRzCisrCTE2NTog cjE0X3N2YyAocjE0X3N2YyksIHNpZ25lZCAzMiBiaXRzCisgRlBBIHJlZ2lzdGVyczoKKyAJIDE2 OiBmMCAoZjApLCBmbG9hdCA5NiBiaXRzCisgCSAxNzogZjEgKGYxKSwgZmxvYXQgOTYgYml0cwor QEAgLTI2OTAsNyArMjcxMSw3MiBAQCBGUEEgcmVnaXN0ZXJzOgorIAkxMDE6IGY1IChmNSksIGZs b2F0IDk2IGJpdHMKKyAJMTAyOiBmNiAoZjYpLCBmbG9hdCA5NiBiaXRzCisgCTEwMzogZjcgKGY3 KSwgZmxvYXQgOTYgYml0cworK01NWCByZWdpc3RlcnM6CisrCTEwNDogd2NncjAgKHdjZ3IwKSwg dW5zaWduZWQgMzIgYml0cworKwkxMDU6IHdjZ3IxICh3Y2dyMSksIHVuc2lnbmVkIDMyIGJpdHMK KysJMTA2OiB3Y2dyMiAod2NncjIpLCB1bnNpZ25lZCAzMiBiaXRzCisrCTEwNzogd2NncjMgKHdj Z3IzKSwgdW5zaWduZWQgMzIgYml0cworKwkxMDg6IHdjZ3I0ICh3Y2dyNCksIHVuc2lnbmVkIDMy IGJpdHMKKysJMTA5OiB3Y2dyNSAod2NncjUpLCB1bnNpZ25lZCAzMiBiaXRzCisrCTExMDogd2Nn cjYgKHdjZ3I2KSwgdW5zaWduZWQgMzIgYml0cworKwkxMTE6IHdjZ3I3ICh3Y2dyNyksIHVuc2ln bmVkIDMyIGJpdHMKKysJMTEyOiB3cjAgKHdyMCksIHVuc2lnbmVkIDY0IGJpdHMKKysJMTEzOiB3 cjEgKHdyMSksIHVuc2lnbmVkIDY0IGJpdHMKKysJMTE0OiB3cjIgKHdyMiksIHVuc2lnbmVkIDY0 IGJpdHMKKysJMTE1OiB3cjMgKHdyMyksIHVuc2lnbmVkIDY0IGJpdHMKKysJMTE2OiB3cjQgKHdy NCksIHVuc2lnbmVkIDY0IGJpdHMKKysJMTE3OiB3cjUgKHdyNSksIHVuc2lnbmVkIDY0IGJpdHMK KysJMTE4OiB3cjYgKHdyNiksIHVuc2lnbmVkIDY0IGJpdHMKKysJMTE5OiB3cjcgKHdyNyksIHVu c2lnbmVkIDY0IGJpdHMKKysJMTIwOiB3cjggKHdyOCksIHVuc2lnbmVkIDY0IGJpdHMKKysJMTIx OiB3cjkgKHdyOSksIHVuc2lnbmVkIDY0IGJpdHMKKysJMTIyOiB3cjEwICh3cjEwKSwgdW5zaWdu ZWQgNjQgYml0cworKwkxMjM6IHdyMTEgKHdyMTEpLCB1bnNpZ25lZCA2NCBiaXRzCisrCTEyNDog d3IxMiAod3IxMiksIHVuc2lnbmVkIDY0IGJpdHMKKysJMTI1OiB3cjEzICh3cjEzKSwgdW5zaWdu ZWQgNjQgYml0cworKwkxMjY6IHdyMTQgKHdyMTQpLCB1bnNpZ25lZCA2NCBiaXRzCisrCTEyNzog d3IxNSAod3IxNSksIHVuc2lnbmVkIDY0IGJpdHMKKysJMTkyOiB3YzAgKHdjMCksIHVuc2lnbmVk IDMyIGJpdHMKKysJMTkzOiB3YzEgKHdjMSksIHVuc2lnbmVkIDMyIGJpdHMKKysJMTk0OiB3YzIg KHdjMiksIHVuc2lnbmVkIDMyIGJpdHMKKysJMTk1OiB3YzMgKHdjMyksIHVuc2lnbmVkIDMyIGJp dHMKKysJMTk2OiB3YzQgKHdjNCksIHVuc2lnbmVkIDMyIGJpdHMKKysJMTk3OiB3YzUgKHdjNSks IHVuc2lnbmVkIDMyIGJpdHMKKysJMTk4OiB3YzYgKHdjNiksIHVuc2lnbmVkIDMyIGJpdHMKKysJ MTk5OiB3YzcgKHdjNyksIHVuc2lnbmVkIDMyIGJpdHMKKyBWRlAgcmVnaXN0ZXJzOgorKwkgNjQ6 IHMwIChzMCksIGZsb2F0IDMyIGJpdHMKKysJIDY1OiBzMSAoczEpLCBmbG9hdCAzMiBiaXRzCisr CSA2NjogczIgKHMyKSwgZmxvYXQgMzIgYml0cworKwkgNjc6IHMzIChzMyksIGZsb2F0IDMyIGJp dHMKKysJIDY4OiBzNCAoczQpLCBmbG9hdCAzMiBiaXRzCisrCSA2OTogczUgKHM1KSwgZmxvYXQg MzIgYml0cworKwkgNzA6IHM2IChzNiksIGZsb2F0IDMyIGJpdHMKKysJIDcxOiBzNyAoczcpLCBm bG9hdCAzMiBiaXRzCisrCSA3MjogczggKHM4KSwgZmxvYXQgMzIgYml0cworKwkgNzM6IHM5IChz OSksIGZsb2F0IDMyIGJpdHMKKysJIDc0OiBzMTAgKHMxMCksIGZsb2F0IDMyIGJpdHMKKysJIDc1 OiBzMTEgKHMxMSksIGZsb2F0IDMyIGJpdHMKKysJIDc2OiBzMTIgKHMxMiksIGZsb2F0IDMyIGJp dHMKKysJIDc3OiBzMTMgKHMxMyksIGZsb2F0IDMyIGJpdHMKKysJIDc4OiBzMTQgKHMxNCksIGZs b2F0IDMyIGJpdHMKKysJIDc5OiBzMTUgKHMxNSksIGZsb2F0IDMyIGJpdHMKKysJIDgwOiBzMTYg KHMxNiksIGZsb2F0IDMyIGJpdHMKKysJIDgxOiBzMTcgKHMxNyksIGZsb2F0IDMyIGJpdHMKKysJ IDgyOiBzMTggKHMxOCksIGZsb2F0IDMyIGJpdHMKKysJIDgzOiBzMTkgKHMxOSksIGZsb2F0IDMy IGJpdHMKKysJIDg0OiBzMjAgKHMyMCksIGZsb2F0IDMyIGJpdHMKKysJIDg1OiBzMjEgKHMyMSks IGZsb2F0IDMyIGJpdHMKKysJIDg2OiBzMjIgKHMyMiksIGZsb2F0IDMyIGJpdHMKKysJIDg3OiBz MjMgKHMyMyksIGZsb2F0IDMyIGJpdHMKKysJIDg4OiBzMjQgKHMyNCksIGZsb2F0IDMyIGJpdHMK KysJIDg5OiBzMjUgKHMyNSksIGZsb2F0IDMyIGJpdHMKKysJIDkwOiBzMjYgKHMyNiksIGZsb2F0 IDMyIGJpdHMKKysJIDkxOiBzMjcgKHMyNyksIGZsb2F0IDMyIGJpdHMKKysJIDkyOiBzMjggKHMy OCksIGZsb2F0IDMyIGJpdHMKKysJIDkzOiBzMjkgKHMyOSksIGZsb2F0IDMyIGJpdHMKKysJIDk0 OiBzMzAgKHMzMCksIGZsb2F0IDMyIGJpdHMKKysJIDk1OiBzMzEgKHMzMSksIGZsb2F0IDMyIGJp dHMKKyAJMjU2OiBkMCAoZDApLCBmbG9hdCA2NCBiaXRzCisgCTI1NzogZDEgKGQxKSwgZmxvYXQg NjQgYml0cworIAkyNTg6IGQyIChkMiksIGZsb2F0IDY0IGJpdHMKK0BAIC0yNzIzLDYgKzI4MDks MTMgQEAgVkZQIHJlZ2lzdGVyczoKKyAJMjg1OiBkMjkgKGQyOSksIGZsb2F0IDY0IGJpdHMKKyAJ Mjg2OiBkMzAgKGQzMCksIGZsb2F0IDY0IGJpdHMKKyAJMjg3OiBkMzEgKGQzMSksIGZsb2F0IDY0 IGJpdHMKKytzdGF0ZSByZWdpc3RlcnM6CisrCTEyODogc3BzciAoc3BzciksIHVuc2lnbmVkIDMy IGJpdHMKKysJMTI5OiBzcHNyX2ZpcSAoc3Bzcl9maXEpLCB1bnNpZ25lZCAzMiBiaXRzCisrCTEz MDogc3Bzcl9pcnEgKHNwc3JfaXJxKSwgdW5zaWduZWQgMzIgYml0cworKwkxMzE6IHNwc3JfYWJ0 IChzcHNyX2FidCksIHVuc2lnbmVkIDMyIGJpdHMKKysJMTMyOiBzcHNyX3VuZCAoc3Bzcl91bmQp LCB1bnNpZ25lZCAzMiBiaXRzCisrCTEzMzogc3Bzcl9zdmMgKHNwc3Jfc3ZjKSwgdW5zaWduZWQg MzIgYml0cworIEVPRgorIAorICMgU2VlIHJ1bi1yZWFkZWxmLW1peGVkLWNvcmVub3RlLnNoIGZv ciBpbnN0cnVjdGlvbnMgdG8gcmVnZW5lcmF0ZQorSW5kZXg6IGVsZnV0aWxzLTAuMTc1L3Rlc3Rz L3J1bi1yZWFkZWxmLW1peGVkLWNvcmVub3RlLnNoCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZWxmdXRpbHMt MC4xNzUub3JpZy90ZXN0cy9ydW4tcmVhZGVsZi1taXhlZC1jb3Jlbm90ZS5zaAorKysrIGVsZnV0 aWxzLTAuMTc1L3Rlc3RzL3J1bi1yZWFkZWxmLW1peGVkLWNvcmVub3RlLnNoCitAQCAtMzEsMTIg KzMxLDExIEBAIE5vdGUgc2VnbWVudCBvZiA4OTIgYnl0ZXMgYXQgb2Zmc2V0IDB4MjcKKyAgICAg cGlkOiAxMTA4NywgcHBpZDogMTEwNjMsIHBncnA6IDExMDg3LCBzaWQ6IDExMDYzCisgICAgIHV0 aW1lOiAwLjAwMDAwMCwgc3RpbWU6IDAuMDEwMDAwLCBjdXRpbWU6IDAuMDAwMDAwLCBjc3RpbWU6 IDAuMDAwMDAwCisgICAgIG9yaWdfcjA6IC0xLCBmcHZhbGlkOiAxCistICAgIHIwOiAgICAgICAg ICAgICAxICByMTogICAtMTA5MTY3MjUwOCAgcjI6ICAgLTEwOTE2NzI1MDAKKy0gICAgcjM6ICAg ICAgICAgICAgIDAgIHI0OiAgICAgICAgICAgICAwICByNTogICAgICAgICAgICAgMAorLSAgICBy NjogICAgICAgICAzMzcyOCAgcjc6ICAgICAgICAgICAgIDAgIHI4OiAgICAgICAgICAgICAwCist ICAgIHI5OiAgICAgICAgICAgICAwICByMTA6ICAtMTIyNTcwMzQ5NiAgcjExOiAgLTEwOTE2NzI4 NDQKKy0gICAgcjEyOiAgICAgICAgICAgIDAgIHNwOiAgICAweGJlZWU2NGY0ICBscjogICAgMHhi NmRjM2Y0OAorLSAgICBwYzogICAgMHgwMDAwODUwMCAgc3BzcjogIDB4NjAwMDAwMTAKKysgICAg cjA6ICAgICAgICAgICAgMSAgcjE6ICAtMTA5MTY3MjUwOCAgcjI6ICAtMTA5MTY3MjUwMCAgcjM6 ICAgICAgICAgICAgMAorKyAgICByNDogICAgICAgICAgICAwICByNTogICAgICAgICAgICAwICBy NjogICAgICAgIDMzNzI4ICByNzogICAgICAgICAgICAwCisrICAgIHI4OiAgICAgICAgICAgIDAg IHI5OiAgICAgICAgICAgIDAgIHIxMDogLTEyMjU3MDM0OTYgIHIxMTogLTEwOTE2NzI4NDQKKysg ICAgcjEyOiAgICAgICAgICAgMCAgc3A6ICAgMHhiZWVlNjRmNCAgbHI6ICAgMHhiNmRjM2Y0OCAg cGM6ICAgMHgwMDAwODUwMAorKyAgICBzcHNyOiAgMHg2MDAwMDAxMAorICAgQ09SRSAgICAgICAg ICAgICAgICAgMTI0ICBQUlBTSU5GTworICAgICBzdGF0ZTogMCwgc25hbWU6IFIsIHpvbWI6IDAs IG5pY2U6IDAsIGZsYWc6IDB4MDA0MDA1MDAKKyAgICAgdWlkOiAwLCBnaWQ6IDAsIHBpZDogMTEw ODcsIHBwaWQ6IDExMDYzLCBwZ3JwOiAxMTA4Nywgc2lkOiAxMTA2MworSW5kZXg6IGVsZnV0aWxz LTAuMTc1L3Rlc3RzL3J1bi1hZGRyY2ZpLnNoCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZWxmdXRpbHMtMC4x NzUub3JpZy90ZXN0cy9ydW4tYWRkcmNmaS5zaAorKysrIGVsZnV0aWxzLTAuMTc1L3Rlc3RzL3J1 bi1hZGRyY2ZpLnNoCitAQCAtMzU1NCw2ICszNTU0LDM4IEBAIGR3YXJmX2NmaV9hZGRyZnJhbWUg KC5laF9mcmFtZSk6IG5vIG1hdGMKKyAJRlBBIHJlZzIxIChmNSk6IHVuZGVmaW5lZAorIAlGUEEg cmVnMjIgKGY2KTogdW5kZWZpbmVkCisgCUZQQSByZWcyMyAoZjcpOiB1bmRlZmluZWQKKysJVkZQ IHJlZzY0IChzMCk6IHVuZGVmaW5lZAorKwlWRlAgcmVnNjUgKHMxKTogdW5kZWZpbmVkCisrCVZG UCByZWc2NiAoczIpOiB1bmRlZmluZWQKKysJVkZQIHJlZzY3IChzMyk6IHVuZGVmaW5lZAorKwlW RlAgcmVnNjggKHM0KTogdW5kZWZpbmVkCisrCVZGUCByZWc2OSAoczUpOiB1bmRlZmluZWQKKysJ VkZQIHJlZzcwIChzNik6IHVuZGVmaW5lZAorKwlWRlAgcmVnNzEgKHM3KTogdW5kZWZpbmVkCisr CVZGUCByZWc3MiAoczgpOiB1bmRlZmluZWQKKysJVkZQIHJlZzczIChzOSk6IHVuZGVmaW5lZAor KwlWRlAgcmVnNzQgKHMxMCk6IHVuZGVmaW5lZAorKwlWRlAgcmVnNzUgKHMxMSk6IHVuZGVmaW5l ZAorKwlWRlAgcmVnNzYgKHMxMik6IHVuZGVmaW5lZAorKwlWRlAgcmVnNzcgKHMxMyk6IHVuZGVm aW5lZAorKwlWRlAgcmVnNzggKHMxNCk6IHVuZGVmaW5lZAorKwlWRlAgcmVnNzkgKHMxNSk6IHVu ZGVmaW5lZAorKwlWRlAgcmVnODAgKHMxNik6IHVuZGVmaW5lZAorKwlWRlAgcmVnODEgKHMxNyk6 IHVuZGVmaW5lZAorKwlWRlAgcmVnODIgKHMxOCk6IHVuZGVmaW5lZAorKwlWRlAgcmVnODMgKHMx OSk6IHVuZGVmaW5lZAorKwlWRlAgcmVnODQgKHMyMCk6IHVuZGVmaW5lZAorKwlWRlAgcmVnODUg KHMyMSk6IHVuZGVmaW5lZAorKwlWRlAgcmVnODYgKHMyMik6IHVuZGVmaW5lZAorKwlWRlAgcmVn ODcgKHMyMyk6IHVuZGVmaW5lZAorKwlWRlAgcmVnODggKHMyNCk6IHVuZGVmaW5lZAorKwlWRlAg cmVnODkgKHMyNSk6IHVuZGVmaW5lZAorKwlWRlAgcmVnOTAgKHMyNik6IHVuZGVmaW5lZAorKwlW RlAgcmVnOTEgKHMyNyk6IHVuZGVmaW5lZAorKwlWRlAgcmVnOTIgKHMyOCk6IHVuZGVmaW5lZAor KwlWRlAgcmVnOTMgKHMyOSk6IHVuZGVmaW5lZAorKwlWRlAgcmVnOTQgKHMzMCk6IHVuZGVmaW5l ZAorKwlWRlAgcmVnOTUgKHMzMSk6IHVuZGVmaW5lZAorIAlGUEEgcmVnOTYgKGYwKTogdW5kZWZp bmVkCisgCUZQQSByZWc5NyAoZjEpOiB1bmRlZmluZWQKKyAJRlBBIHJlZzk4IChmMik6IHVuZGVm aW5lZAorQEAgLTM1NjIsNyArMzU5NCw2NiBAQCBkd2FyZl9jZmlfYWRkcmZyYW1lICguZWhfZnJh bWUpOiBubyBtYXRjCisgCUZQQSByZWcxMDEgKGY1KTogdW5kZWZpbmVkCisgCUZQQSByZWcxMDIg KGY2KTogdW5kZWZpbmVkCisgCUZQQSByZWcxMDMgKGY3KTogdW5kZWZpbmVkCistCWludGVnZXIg cmVnMTI4IChzcHNyKTogdW5kZWZpbmVkCisrCU1NWCByZWcxMDQgKHdjZ3IwKTogdW5kZWZpbmVk CisrCU1NWCByZWcxMDUgKHdjZ3IxKTogdW5kZWZpbmVkCisrCU1NWCByZWcxMDYgKHdjZ3IyKTog dW5kZWZpbmVkCisrCU1NWCByZWcxMDcgKHdjZ3IzKTogdW5kZWZpbmVkCisrCU1NWCByZWcxMDgg KHdjZ3I0KTogdW5kZWZpbmVkCisrCU1NWCByZWcxMDkgKHdjZ3I1KTogdW5kZWZpbmVkCisrCU1N WCByZWcxMTAgKHdjZ3I2KTogdW5kZWZpbmVkCisrCU1NWCByZWcxMTEgKHdjZ3I3KTogdW5kZWZp bmVkCisrCU1NWCByZWcxMTIgKHdyMCk6IHVuZGVmaW5lZAorKwlNTVggcmVnMTEzICh3cjEpOiB1 bmRlZmluZWQKKysJTU1YIHJlZzExNCAod3IyKTogdW5kZWZpbmVkCisrCU1NWCByZWcxMTUgKHdy Myk6IHVuZGVmaW5lZAorKwlNTVggcmVnMTE2ICh3cjQpOiB1bmRlZmluZWQKKysJTU1YIHJlZzEx NyAod3I1KTogdW5kZWZpbmVkCisrCU1NWCByZWcxMTggKHdyNik6IHVuZGVmaW5lZAorKwlNTVgg cmVnMTE5ICh3cjcpOiB1bmRlZmluZWQKKysJTU1YIHJlZzEyMCAod3I4KTogdW5kZWZpbmVkCisr CU1NWCByZWcxMjEgKHdyOSk6IHVuZGVmaW5lZAorKwlNTVggcmVnMTIyICh3cjEwKTogdW5kZWZp bmVkCisrCU1NWCByZWcxMjMgKHdyMTEpOiB1bmRlZmluZWQKKysJTU1YIHJlZzEyNCAod3IxMik6 IHVuZGVmaW5lZAorKwlNTVggcmVnMTI1ICh3cjEzKTogdW5kZWZpbmVkCisrCU1NWCByZWcxMjYg KHdyMTQpOiB1bmRlZmluZWQKKysJTU1YIHJlZzEyNyAod3IxNSk6IHVuZGVmaW5lZAorKwlzdGF0 ZSByZWcxMjggKHNwc3IpOiB1bmRlZmluZWQKKysJc3RhdGUgcmVnMTI5IChzcHNyX2ZpcSk6IHVu ZGVmaW5lZAorKwlzdGF0ZSByZWcxMzAgKHNwc3JfaXJxKTogdW5kZWZpbmVkCisrCXN0YXRlIHJl ZzEzMSAoc3Bzcl9hYnQpOiB1bmRlZmluZWQKKysJc3RhdGUgcmVnMTMyIChzcHNyX3VuZCk6IHVu ZGVmaW5lZAorKwlzdGF0ZSByZWcxMzMgKHNwc3Jfc3ZjKTogdW5kZWZpbmVkCisrCWludGVnZXIg cmVnMTQ0IChyOF91c3IpOiB1bmRlZmluZWQKKysJaW50ZWdlciByZWcxNDUgKHI5X3Vzcik6IHVu ZGVmaW5lZAorKwlpbnRlZ2VyIHJlZzE0NiAocjEwX3Vzcik6IHVuZGVmaW5lZAorKwlpbnRlZ2Vy IHJlZzE0NyAocjExX3Vzcik6IHVuZGVmaW5lZAorKwlpbnRlZ2VyIHJlZzE0OCAocjEyX3Vzcik6 IHVuZGVmaW5lZAorKwlpbnRlZ2VyIHJlZzE0OSAocjEzX3Vzcik6IHVuZGVmaW5lZAorKwlpbnRl Z2VyIHJlZzE1MCAocjE0X3Vzcik6IHVuZGVmaW5lZAorKwlpbnRlZ2VyIHJlZzE1MSAocjhfZmlx KTogdW5kZWZpbmVkCisrCWludGVnZXIgcmVnMTUyIChyOV9maXEpOiB1bmRlZmluZWQKKysJaW50 ZWdlciByZWcxNTMgKHIxMF9maXEpOiB1bmRlZmluZWQKKysJaW50ZWdlciByZWcxNTQgKHIxMV9m aXEpOiB1bmRlZmluZWQKKysJaW50ZWdlciByZWcxNTUgKHIxMl9maXEpOiB1bmRlZmluZWQKKysJ aW50ZWdlciByZWcxNTYgKHIxM19maXEpOiB1bmRlZmluZWQKKysJaW50ZWdlciByZWcxNTcgKHIx NF9maXEpOiB1bmRlZmluZWQKKysJaW50ZWdlciByZWcxNTggKHIxM19pcnEpOiB1bmRlZmluZWQK KysJaW50ZWdlciByZWcxNTkgKHIxNF9pcnEpOiB1bmRlZmluZWQKKysJaW50ZWdlciByZWcxNjAg KHIxM19hYnQpOiB1bmRlZmluZWQKKysJaW50ZWdlciByZWcxNjEgKHIxNF9hYnQpOiB1bmRlZmlu ZWQKKysJaW50ZWdlciByZWcxNjIgKHIxM191bmQpOiB1bmRlZmluZWQKKysJaW50ZWdlciByZWcx NjMgKHIxNF91bmQpOiB1bmRlZmluZWQKKysJaW50ZWdlciByZWcxNjQgKHIxM19zdmMpOiB1bmRl ZmluZWQKKysJaW50ZWdlciByZWcxNjUgKHIxNF9zdmMpOiB1bmRlZmluZWQKKysJTU1YIHJlZzE5 MiAod2MwKTogdW5kZWZpbmVkCisrCU1NWCByZWcxOTMgKHdjMSk6IHVuZGVmaW5lZAorKwlNTVgg cmVnMTk0ICh3YzIpOiB1bmRlZmluZWQKKysJTU1YIHJlZzE5NSAod2MzKTogdW5kZWZpbmVkCisr CU1NWCByZWcxOTYgKHdjNCk6IHVuZGVmaW5lZAorKwlNTVggcmVnMTk3ICh3YzUpOiB1bmRlZmlu ZWQKKysJTU1YIHJlZzE5OCAod2M2KTogdW5kZWZpbmVkCisrCU1NWCByZWcxOTkgKHdjNyk6IHVu ZGVmaW5lZAorIAlWRlAgcmVnMjU2IChkMCk6IHVuZGVmaW5lZAorIAlWRlAgcmVnMjU3IChkMSk6 IHVuZGVmaW5lZAorIAlWRlAgcmVnMjU4IChkMik6IHVuZGVmaW5lZApkaWZmIC0tZ2l0IGEvcGF0 Y2hlcy9lbGZ1dGlscy0wLjE3Ni9hdXRvZ2VuLnNoIGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9h dXRvZ2VuLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMC4uZGY3OGMzODhi Ci0tLSAvZGV2L251bGwKKysrIGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9hdXRvZ2VuLnNoCkBA IC0wLDAgKzEsMTggQEAKKyMhL2Jpbi9iYXNoCisKK3NldCAtZQorCithY2xvY2FsICRBQ0xPQ0FM X0ZMQUdTCisKK2xpYnRvb2xpemUgXAorCS0tZm9yY2UgXAorCS0tY29weQorCithdXRvcmVjb25m IFwKKwktLWZvcmNlIFwKKwktLWluc3RhbGwgXAorCS0td2FybmluZ3M9Y3Jvc3MgXAorCS0td2Fy bmluZ3M9c3ludGF4IFwKKwktLXdhcm5pbmdzPW9ic29sZXRlIFwKKwktLXdhcm5pbmdzPXVuc3Vw cG9ydGVkCisKZGlmZiAtLWdpdCBhL3BhdGNoZXMvZWxmdXRpbHMtMC4xNzYvZGlzYWJsZV93ZXJy b3IucGF0Y2ggYi9wYXRjaGVzL2VsZnV0aWxzLTAuMTc2L2Rpc2FibGVfd2Vycm9yLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNGMxYTU0NDUyCi0tLSAvZGV2L251 bGwKKysrIGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9kaXNhYmxlX3dlcnJvci5wYXRjaApAQCAt MCwwICsxLDE3IEBACitGcm9tOiBIZWxtdXQgR3JvaG5lIDxoZWxtdXRAc3ViZGl2aS5kZT4KK1N1 YmplY3Q6IGRpc2FibGUgLVdlcnJvciBhcyBpdCB0ZW5kcyB0byBicmVhayB3aXRoIG5ldyBnY2Mg dmVyc2lvbnMKK0J1Zy1EZWJpYW46IGh0dHBzOi8vYnVncy5kZWJpYW4ub3JnLzg4NjAwNAorTGFz dC1VcGRhdGU6IDIwMTgtMDEtMDEKKworSW5kZXg6IGVsZnV0aWxzLTAuMTc2L2NvbmZpZy9ldS5h bQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGVsZnV0aWxzLTAuMTc2Lm9yaWcvY29uZmlnL2V1LmFtCisrKysg ZWxmdXRpbHMtMC4xNzYvY29uZmlnL2V1LmFtCitAQCAtNzMsNyArNzMsNiBAQCBBTV9DRkxBR1Mg PSAtc3RkPWdudTk5IC1XYWxsIC1Xc2hhZG93IC1XCisgCSAgICAtV29sZC1zdHlsZS1kZWZpbml0 aW9uIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVd0cmFtcG9saW5lcyBcCisgCSAgICAkKExPR0lDQUxf T1BfV0FSTklORykgJChEVVBMSUNBVEVEX0NPTkRfV0FSTklORykgXAorIAkgICAgJChOVUxMX0RF UkVGRVJFTkNFX1dBUk5JTkcpICQoSU1QTElDSVRfRkFMTFRIUk9VR0hfV0FSTklORykgXAorLQkg ICAgJChpZiAkKCQoKkYpX25vX1dlcnJvciksLC1XZXJyb3IpIFwKKyAJICAgICQoaWYgJCgkKCpG KV9ub19XdW51c2VkKSwsLVd1bnVzZWQgLVdleHRyYSkgXAorIAkgICAgJChpZiAkKCQoKkYpX25v X1dzdGFja191c2FnZSksLCQoU1RBQ0tfVVNBR0VfV0FSTklORykpIFwKKyAJICAgICQoaWYgJCgk KCpGKV9ub19XcGFja2VkX25vdF9hbGlnbmVkKSwtV25vLXBhY2tlZC1ub3QtYWxpZ25lZCwpIFwK ZGlmZiAtLWdpdCBhL3BhdGNoZXMvZWxmdXRpbHMtMC4xNzYvaHBwYV9iYWNrZW5kLmRpZmYgYi9w YXRjaGVzL2VsZnV0aWxzLTAuMTc2L2hwcGFfYmFja2VuZC5kaWZmCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uMzM2ZWUyYmExCi0tLSAvZGV2L251bGwKKysrIGIvcGF0Y2hl cy9lbGZ1dGlscy0wLjE3Ni9ocHBhX2JhY2tlbmQuZGlmZgpAQCAtMCwwICsxLDgwMSBAQAorSW5k ZXg6IGVsZnV0aWxzLTAuMTc1L2JhY2tlbmRzL3BhcmlzY19pbml0LmMKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSAvZGV2L251bGwKKysrKyBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9wYXJpc2NfaW5pdC5jCitA QCAtMCwwICsxLDczIEBACisrLyogSW5pdGlhbGl6YXRpb24gb2YgUEEtUklTQyBzcGVjaWZpYyBi YWNrZW5kIGxpYnJhcnkuCisrICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2IFJlZCBI YXQsIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBSZWQgSGF0IGVsZnV0aWxzLgorKyAg IFdyaXR0ZW4gYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4sIDIwMDIuCisr CisrICAgUmVkIEhhdCBlbGZ1dGlscyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisrICAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCisrCisrICAgUmVkIEhh dCBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLCBidXQKKysgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKKysgICB3aXRoIFJlZCBI YXQgZWxmdXRpbHM7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwKKysgICBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24gTUEg MDIxMTAtMTMwMSBVU0EuCisrCisrICAgUmVkIEhhdCBlbGZ1dGlscyBpcyBhbiBpbmNsdWRlZCBw YWNrYWdlIG9mIHRoZSBPcGVuIEludmVudGlvbiBOZXR3b3JrLgorKyAgIEFuIGluY2x1ZGVkIHBh Y2thZ2Ugb2YgdGhlIE9wZW4gSW52ZW50aW9uIE5ldHdvcmsgaXMgYSBwYWNrYWdlIGZvciB3aGlj aAorKyAgIE9wZW4gSW52ZW50aW9uIE5ldHdvcmsgbGljZW5zZWVzIGNyb3NzLWxpY2Vuc2UgdGhl aXIgcGF0ZW50cy4gIE5vIHBhdGVudAorKyAgIGxpY2Vuc2UgaXMgZ3JhbnRlZCwgZWl0aGVyIGV4 cHJlc3NseSBvciBpbXBsaWVkbHksIGJ5IGRlc2lnbmF0aW9uIGFzIGFuCisrICAgaW5jbHVkZWQg cGFja2FnZS4gIFNob3VsZCB5b3Ugd2lzaCB0byBwYXJ0aWNpcGF0ZSBpbiB0aGUgT3BlbiBJbnZl bnRpb24KKysgICBOZXR3b3JrIGxpY2Vuc2luZyBwcm9ncmFtLCBwbGVhc2UgdmlzaXQgd3d3Lm9w ZW5pbnZlbnRpb25uZXR3b3JrLmNvbQorKyAgIDxodHRwOi8vd3d3Lm9wZW5pbnZlbnRpb25uZXR3 b3JrLmNvbT4uICAqLworKworKyNpZmRlZiBIQVZFX0NPTkZJR19ICisrIyBpbmNsdWRlIDxjb25m aWcuaD4KKysjZW5kaWYKKysKKysjZGVmaW5lIEJBQ0tFTkQJCXBhcmlzY18KKysjZGVmaW5lIFJF TE9DX1BSRUZJWAlSX1BBUklTQ18KKysjaW5jbHVkZSAibGliZWJsX0NQVS5oIgorKyNpbmNsdWRl ICJsaWJlYmxfcGFyaXNjLmgiCisrCisrLyogVGhpcyBkZWZpbmVzIHRoZSBjb21tb24gcmVsb2Mg aG9va3MgYmFzZWQgb24gcGFyaXNjX3JlbG9jLmRlZi4gICovCisrI2luY2x1ZGUgImNvbW1vbi1y ZWxvYy5jIgorKworKworK2NvbnN0IGNoYXIgKgorK3BhcmlzY19pbml0IChFbGYgKmVsZiBfX2F0 dHJpYnV0ZV9fICgodW51c2VkKSksCisrICAgICBHRWxmX0hhbGYgbWFjaGluZSBfX2F0dHJpYnV0 ZV9fICgodW51c2VkKSksCisrICAgICBFYmwgKmVoLAorKyAgICAgc2l6ZV90IGVobGVuKQorK3sK KysgIGludCBwYTY0ID0gMDsKKysKKysgIC8qIENoZWNrIHdoZXRoZXIgdGhlIEVsZl9CSCBvYmpl Y3QgaGFzIGEgc3VmZmljZW50IHNpemUuICAqLworKyAgaWYgKGVobGVuIDwgc2l6ZW9mIChFYmwp KQorKyAgICByZXR1cm4gTlVMTDsKKysKKysgIGlmIChlbGYpIHsKKysgICAgR0VsZl9FaGRyIGVo ZHJfbWVtOworKyAgICBHRWxmX0VoZHIgKmVoZHIgPSBnZWxmX2dldGVoZHIgKGVsZiwgJmVoZHJf bWVtKTsKKysgICAgaWYgKGVoZHIgJiYgKGVoZHItPmVfZmxhZ3MgJiBFRl9QQVJJU0NfV0lERSkp CisrICAgICAgcGE2NCA9IDE7CisrICB9CisrICAvKiBXZSBoYW5kbGUgaXQuICAqLworKyAgZWgt Pm5hbWUgPSAiUEEtUklTQyI7CisrICBwYXJpc2NfaW5pdF9yZWxvYyAoZWgpOworKyAgSE9PSyAo ZWgsIHJlbG9jX3NpbXBsZV90eXBlKTsKKysgIEhPT0sgKGVoLCBtYWNoaW5lX2ZsYWdfY2hlY2sp OworKyAgSE9PSyAoZWgsIHN5bWJvbF90eXBlX25hbWUpOworKyAgSE9PSyAoZWgsIHNlZ21lbnRf dHlwZV9uYW1lKTsKKysgIEhPT0sgKGVoLCBzZWN0aW9uX3R5cGVfbmFtZSk7CisrICBIT09LIChl aCwgcmVnaXN0ZXJfaW5mbyk7CisrICBpZiAocGE2NCkKKysgICAgZWgtPnJldHVybl92YWx1ZV9s b2NhdGlvbiA9IHBhcmlzY19yZXR1cm5fdmFsdWVfbG9jYXRpb25fNjQ7CisrICBlbHNlCisrICAg IGVoLT5yZXR1cm5fdmFsdWVfbG9jYXRpb24gPSBwYXJpc2NfcmV0dXJuX3ZhbHVlX2xvY2F0aW9u XzMyOworKworKyAgcmV0dXJuIE1PRFZFUlNJT047CisrfQorSW5kZXg6IGVsZnV0aWxzLTAuMTc1 L2JhY2tlbmRzL3BhcmlzY19yZWdzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwKKysrKyBl bGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9wYXJpc2NfcmVncy5jCitAQCAtMCwwICsxLDE1OSBAQAor Ky8qIFJlZ2lzdGVyIG5hbWVzIGFuZCBudW1iZXJzIGZvciBQQS1SSVNDIERXQVJGLgorKyAgIENv cHlyaWdodCAoQykgMjAwNSwgMjAwNiBSZWQgSGF0LCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBh cnQgb2YgUmVkIEhhdCBlbGZ1dGlscy4KKysKKysgICBSZWQgSGF0IGVsZnV0aWxzIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUKKysgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZS4KKysKKysgICBSZWQgSGF0IGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorKyAgIFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor KyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhbG9uZworKyAgIHdpdGggUmVkIEhhdCBlbGZ1dGlsczsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyAgIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl dCwgRmlmdGggRmxvb3IsIEJvc3RvbiBNQSAwMjExMC0xMzAxIFVTQS4KKysKKysgICBSZWQgSGF0 IGVsZnV0aWxzIGlzIGFuIGluY2x1ZGVkIHBhY2thZ2Ugb2YgdGhlIE9wZW4gSW52ZW50aW9uIE5l dHdvcmsuCisrICAgQW4gaW5jbHVkZWQgcGFja2FnZSBvZiB0aGUgT3BlbiBJbnZlbnRpb24gTmV0 d29yayBpcyBhIHBhY2thZ2UgZm9yIHdoaWNoCisrICAgT3BlbiBJbnZlbnRpb24gTmV0d29yayBs aWNlbnNlZXMgY3Jvc3MtbGljZW5zZSB0aGVpciBwYXRlbnRzLiAgTm8gcGF0ZW50CisrICAgbGlj ZW5zZSBpcyBncmFudGVkLCBlaXRoZXIgZXhwcmVzc2x5IG9yIGltcGxpZWRseSwgYnkgZGVzaWdu YXRpb24gYXMgYW4KKysgICBpbmNsdWRlZCBwYWNrYWdlLiAgU2hvdWxkIHlvdSB3aXNoIHRvIHBh cnRpY2lwYXRlIGluIHRoZSBPcGVuIEludmVudGlvbgorKyAgIE5ldHdvcmsgbGljZW5zaW5nIHBy b2dyYW0sIHBsZWFzZSB2aXNpdCB3d3cub3BlbmludmVudGlvbm5ldHdvcmsuY29tCisrICAgPGh0 dHA6Ly93d3cub3BlbmludmVudGlvbm5ldHdvcmsuY29tPi4gICovCisrCisrI2lmZGVmIEhBVkVf Q09ORklHX0gKKysjIGluY2x1ZGUgPGNvbmZpZy5oPgorKyNlbmRpZgorKworKyNpbmNsdWRlIDxz dHJpbmcuaD4KKysjaW5jbHVkZSA8ZHdhcmYuaD4KKysKKysjZGVmaW5lIEJBQ0tFTkQgcGFyaXNj XworKyNpbmNsdWRlICJsaWJlYmxfQ1BVLmgiCisrCisrc3NpemVfdAorK3BhcmlzY19yZWdpc3Rl cl9pbmZvIChFYmwgKmVibCwgaW50IHJlZ25vLCBjaGFyICpuYW1lLCBzaXplX3QgbmFtZWxlbiwK KysJCSAgICAgY29uc3QgY2hhciAqKnByZWZpeCwgY29uc3QgY2hhciAqKnNldG5hbWUsCisrCQkg ICAgIGludCAqYml0cywgaW50ICp0eXBlKQorK3sKKysgIGludCBwYTY0ID0gMDsKKysKKysgIGlm IChlYmwtPmVsZikgeworKyAgICBHRWxmX0VoZHIgZWhkcl9tZW07CisrICAgIEdFbGZfRWhkciAq ZWhkciA9IGdlbGZfZ2V0ZWhkciAoZWJsLT5lbGYsICZlaGRyX21lbSk7CisrICAgIGlmIChlaGRy LT5lX2ZsYWdzICYgRUZfUEFSSVNDX1dJREUpCisrICAgICAgcGE2NCA9IDE7CisrICB9CisrCisr ICBpbnQgbnJlZ3MgPSBwYTY0ID8gMTI3IDogMTI4OworKworKyAgaWYgKG5hbWUgPT0gTlVMTCkK KysgICAgcmV0dXJuIG5yZWdzOworKworKyAgaWYgKHJlZ25vIDwgMCB8fCByZWdubyA+PSBucmVn cyB8fCBuYW1lbGVuIDwgNikKKysgICAgcmV0dXJuIC0xOworKworKyAgKnByZWZpeCA9ICIlIjsK KysKKysgIGlmIChyZWdubyA8IDMyKQorKyAgeworKyAgICAqc2V0bmFtZSA9ICJpbnRlZ2VyIjsK KysgICAgKnR5cGUgPSBEV19BVEVfc2lnbmVkOworKyAgICBpZiAocGE2NCkKKysgICAgeworKwkq Yml0cyA9IDY0OworKyAgICB9CisrICAgIGVsc2UKKysgICAgeworKyAgICAJKmJpdHMgPSAzMjsK KysgICAgfQorKyAgfQorKyAgZWxzZSBpZiAocmVnbm8gPT0gMzIpCisrICB7CisrICAgICpzZXRu YW1lID0gInNwZWNpYWwiOworKyAgICBpZiAocGE2NCkKKysgICAgeworKwkqYml0cyA9IDY7Cisr ICAgIH0KKysgICAgZWxzZQorKyAgICB7CisrICAgIAkqYml0cyA9IDU7CisrICAgIH0KKysgICAg KnR5cGUgPSBEV19BVEVfdW5zaWduZWQ7CisrICB9CisrICBlbHNlCisrICB7CisrICAgICpzZXRu YW1lID0gIkZQVSI7CisrICAgICp0eXBlID0gRFdfQVRFX2Zsb2F0OworKyAgICBpZiAocGE2NCkK KysgICAgeworKwkqYml0cyA9IDY0OworKyAgICB9CisrICAgIGVsc2UKKysgICAgeworKyAgICAJ KmJpdHMgPSAzMjsKKysgICAgfQorKyAgfQorKworKyAgaWYgKHJlZ25vIDwgMzMpIHsKKysgICAg c3dpdGNoIChyZWdubykKKysgICAgICB7CisrICAgICAgY2FzZSAwIC4uLiA5OgorKyAgICAgICAg bmFtZVswXSA9ICdyJzsKKysgICAgICAgIG5hbWVbMV0gPSByZWdubyArICcwJzsKKysgICAgICAg IG5hbWVsZW4gPSAyOworKyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSAxMCAuLi4gMzE6Cisr ICAgICAgICBuYW1lWzBdID0gJ3InOworKyAgICAgICAgbmFtZVsxXSA9IHJlZ25vIC8gMTAgKyAn MCc7CisrICAgICAgICBuYW1lWzJdID0gcmVnbm8gJSAxMCArICcwJzsKKysgICAgICAgIG5hbWVs ZW4gPSAzOworKyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSAzMjoKKysJKnByZWZpeCA9IE5V TEw7CisrCW5hbWVbMF0gPSAnUyc7CisrCW5hbWVbMV0gPSAnQSc7CisrCW5hbWVbMl0gPSAnUic7 CisrCW5hbWVsZW4gPSAzOworKwlicmVhazsKKysgICAgICB9CisrICB9CisrICBlbHNlIHsKKysg ICAgaWYgKHBhNjQgJiYgKChyZWdubyAtIDcyKSAlIDIpKSB7CisrICAgICAgKnNldG5hbWUgPSBO VUxMOworKyAgICAgIHJldHVybiAwOworKyAgICB9CisrCisrICAgIHN3aXRjaCAocmVnbm8pCisr ICAgICAgeworKyAgICAgIGNhc2UgNzIgKyAwIC4uLiA3MiArIDExOgorKyAgICAgICAgbmFtZVsw XSA9ICdmJzsKKysJbmFtZVsxXSA9ICdyJzsKKysgICAgICAgIG5hbWVbMl0gPSAocmVnbm8gKyA4 IC0gNzIpIC8gMiArICcwJzsKKysgICAgICAgIG5hbWVsZW4gPSAzOworKyAgICAgICAgaWYgKChy ZWdubyArIDggLSA3MikgJSAyKSB7CisrCSAgbmFtZVszXSA9ICdSJzsKKysJICBuYW1lbGVuKys7 CisrICAgICAgICB9CisrICAgICAgICBicmVhazsKKysgICAgICBjYXNlIDcyICsgMTIgLi4uIDcy ICsgNTU6CisrICAgICAgICBuYW1lWzBdID0gJ2YnOworKwluYW1lWzFdID0gJ3InOworKyAgICAg ICAgbmFtZVsyXSA9IChyZWdubyArIDggLSA3MikgLyAyIC8gMTAgKyAnMCc7CisrICAgICAgICBu YW1lWzNdID0gKHJlZ25vICsgOCAtIDcyKSAvIDIgJSAxMCArICcwJzsKKysgICAgICAgIG5hbWVs ZW4gPSA0OworKyAgICAgICAgaWYgKChyZWdubyArIDggLSA3MikgJSAyKSB7CisrCSAgbmFtZVs0 XSA9ICdSJzsKKysJICBuYW1lbGVuKys7CisrICAgICAgICB9CisrICAgICAgICBicmVhazsKKysg ICAgICBkZWZhdWx0OgorKyAgICAgICAgKnNldG5hbWUgPSBOVUxMOworKyAgICAgICAgcmV0dXJu IDA7CisrICAgICAgfQorKyAgfQorKyAgbmFtZVtuYW1lbGVuKytdID0gJ1wwJzsKKysgIHJldHVy biBuYW1lbGVuOworK30KK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9wYXJpc2NfcmVs b2MuZGVmCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgZWxmdXRpbHMtMC4xNzUvYmFj a2VuZHMvcGFyaXNjX3JlbG9jLmRlZgorQEAgLTAsMCArMSwxMjggQEAKKysvKiBMaXN0IHRoZSBy ZWxvY2F0aW9uIHR5cGVzIGZvciBQQS1SSVNDLiAgLSotIEMgLSotCisrICAgQ29weXJpZ2h0IChD KSAyMDA1IFJlZCBIYXQsIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBSZWQgSGF0IGVs ZnV0aWxzLgorKworKyAgIFJlZCBIYXQgZWxmdXRpbHMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorKyAg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLgorKwor KyAgIFJlZCBIYXQgZWxmdXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwgYnV0CisrICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisrICAg d2l0aCBSZWQgSGF0IGVsZnV0aWxzOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sCisrICAgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg Qm9zdG9uIE1BIDAyMTEwLTEzMDEgVVNBLgorKworKyAgIFJlZCBIYXQgZWxmdXRpbHMgaXMgYW4g aW5jbHVkZWQgcGFja2FnZSBvZiB0aGUgT3BlbiBJbnZlbnRpb24gTmV0d29yay4KKysgICBBbiBp bmNsdWRlZCBwYWNrYWdlIG9mIHRoZSBPcGVuIEludmVudGlvbiBOZXR3b3JrIGlzIGEgcGFja2Fn ZSBmb3Igd2hpY2gKKysgICBPcGVuIEludmVudGlvbiBOZXR3b3JrIGxpY2Vuc2VlcyBjcm9zcy1s aWNlbnNlIHRoZWlyIHBhdGVudHMuICBObyBwYXRlbnQKKysgICBsaWNlbnNlIGlzIGdyYW50ZWQs IGVpdGhlciBleHByZXNzbHkgb3IgaW1wbGllZGx5LCBieSBkZXNpZ25hdGlvbiBhcyBhbgorKyAg IGluY2x1ZGVkIHBhY2thZ2UuICBTaG91bGQgeW91IHdpc2ggdG8gcGFydGljaXBhdGUgaW4gdGhl IE9wZW4gSW52ZW50aW9uCisrICAgTmV0d29yayBsaWNlbnNpbmcgcHJvZ3JhbSwgcGxlYXNlIHZp c2l0IHd3dy5vcGVuaW52ZW50aW9ubmV0d29yay5jb20KKysgICA8aHR0cDovL3d3dy5vcGVuaW52 ZW50aW9ubmV0d29yay5jb20+LiAgKi8KKysKKysvKgkgICAgTkFNRSwJCVJFTHxFWEVDfERZTgkq LworKworK1JFTE9DX1RZUEUgKE5PTkUsCQlFWEVDfERZTikKKytSRUxPQ19UWVBFIChESVIzMiwJ CVJFTHxFWEVDfERZTikKKytSRUxPQ19UWVBFIChESVIyMUwsCQlSRUx8RVhFQ3xEWU4pCisrUkVM T0NfVFlQRSAoRElSMTdSLAkJUkVMKQorK1JFTE9DX1RZUEUgKERJUjE3RiwJCVJFTCkKKytSRUxP Q19UWVBFIChESVIxNFIsCQlSRUx8RFlOKQorK1JFTE9DX1RZUEUgKFBDUkVMMzIsCQlSRUwpCisr UkVMT0NfVFlQRSAoUENSRUwyMUwsCQlSRUwpCisrUkVMT0NfVFlQRSAoUENSRUwxN1IsCQlSRUwp CisrUkVMT0NfVFlQRSAoUENSRUwxN0YsCQlSRUwpCisrUkVMT0NfVFlQRSAoUENSRUwxNFIsCQlS RUx8RVhFQykKKytSRUxPQ19UWVBFIChEUFJFTDIxTCwJCVJFTCkKKytSRUxPQ19UWVBFIChEUFJF TDE0V1IsCQlSRUwpCisrUkVMT0NfVFlQRSAoRFBSRUwxNERSLCAgICAgICAgICBSRUwpCisrUkVM T0NfVFlQRSAoRFBSRUwxNFIsCQlSRUwpCisrUkVMT0NfVFlQRSAoR1BSRUwyMUwsCQkwKQorK1JF TE9DX1RZUEUgKEdQUkVMMTRSLAkJMCkKKytSRUxPQ19UWVBFIChMVE9GRjIxTCwJCVJFTCkKKytS RUxPQ19UWVBFIChMVE9GRjE0UiwJCVJFTCkKKytSRUxPQ19UWVBFIChETFRJTkQxNEYsCQkwKQor K1JFTE9DX1RZUEUgKFNFVEJBU0UsCQkwKQorK1JFTE9DX1RZUEUgKFNFQ1JFTDMyLAkJUkVMKQor K1JFTE9DX1RZUEUgKEJBU0VSRUwyMUwsCQkwKQorK1JFTE9DX1RZUEUgKEJBU0VSRUwxN1IsCQkw KQorK1JFTE9DX1RZUEUgKEJBU0VSRUwxNFIsCQkwKQorK1JFTE9DX1RZUEUgKFNFR0JBU0UsCQkw KQorK1JFTE9DX1RZUEUgKFNFR1JFTDMyLAkJUkVMKQorK1JFTE9DX1RZUEUgKFBMVE9GRjIxTCwJ CTApCisrUkVMT0NfVFlQRSAoUExUT0ZGMTRSLAkJMCkKKytSRUxPQ19UWVBFIChQTFRPRkYxNEYs CQkwKQorK1JFTE9DX1RZUEUgKExUT0ZGX0ZQVFIzMiwJMCkKKytSRUxPQ19UWVBFIChMVE9GRl9G UFRSMjFMLAkwKQorK1JFTE9DX1RZUEUgKExUT0ZGX0ZQVFIxNFIsCTApCisrUkVMT0NfVFlQRSAo RlBUUjY0LAkJMCkKKytSRUxPQ19UWVBFIChQTEFCRUwzMiwJCVJFTHxEWU4pCisrUkVMT0NfVFlQ RSAoUENSRUw2NCwJCTApCisrUkVMT0NfVFlQRSAoUENSRUwyMkMsCQkwKQorK1JFTE9DX1RZUEUg KFBDUkVMMjJGLAkJMCkKKytSRUxPQ19UWVBFIChQQ1JFTDE0V1IsCQkwKQorK1JFTE9DX1RZUEUg KFBDUkVMMTREUiwJCTApCisrUkVMT0NfVFlQRSAoUENSRUwxNkYsCQkwKQorK1JFTE9DX1RZUEUg KFBDUkVMMTZXRiwJCTApCisrUkVMT0NfVFlQRSAoUENSRUwxNkRGLAkJMCkKKytSRUxPQ19UWVBF IChESVI2NCwJCVJFTHxEWU4pCisrUkVMT0NfVFlQRSAoRElSMTRXUiwJCVJFTCkKKytSRUxPQ19U WVBFIChESVIxNERSLAkJUkVMKQorK1JFTE9DX1RZUEUgKERJUjE2RiwJCVJFTCkKKytSRUxPQ19U WVBFIChESVIxNldGLAkJUkVMKQorK1JFTE9DX1RZUEUgKERJUjE2REYsCQlSRUwpCisrUkVMT0Nf VFlQRSAoR1BSRUw2NCwJCTApCisrUkVMT0NfVFlQRSAoR1BSRUwxNFdSLAkJMCkKKytSRUxPQ19U WVBFIChHUFJFTDE0RFIsCQkwKQorK1JFTE9DX1RZUEUgKEdQUkVMMTZGLAkJMCkKKytSRUxPQ19U WVBFIChHUFJFTDE2V0YsCQkwKQorK1JFTE9DX1RZUEUgKEdQUkVMMTZERiwJCTApCisrUkVMT0Nf VFlQRSAoTFRPRkY2NCwJCTApCisrUkVMT0NfVFlQRSAoTFRPRkYxNFdSLAkJMCkKKytSRUxPQ19U WVBFIChMVE9GRjE0RFIsCQkwKQorK1JFTE9DX1RZUEUgKExUT0ZGMTZGLAkJMCkKKytSRUxPQ19U WVBFIChMVE9GRjE2V0YsCQkwKQorK1JFTE9DX1RZUEUgKExUT0ZGMTZERiwJCTApCisrUkVMT0Nf VFlQRSAoU0VDUkVMNjQsCQkwKQorK1JFTE9DX1RZUEUgKEJBU0VSRUwxNFdSLAkwKQorK1JFTE9D X1RZUEUgKEJBU0VSRUwxNERSLAkwKQorK1JFTE9DX1RZUEUgKFNFR1JFTDY0LAkJMCkKKytSRUxP Q19UWVBFIChQTFRPRkYxNFdSLAkJMCkKKytSRUxPQ19UWVBFIChQTFRPRkYxNERSLAkJMCkKKytS RUxPQ19UWVBFIChQTFRPRkYxNkYsCQkwKQorK1JFTE9DX1RZUEUgKFBMVE9GRjE2V0YsCQkwKQor K1JFTE9DX1RZUEUgKFBMVE9GRjE2REYsCQkwKQorK1JFTE9DX1RZUEUgKExUT0ZGX0ZQVFI2NCwJ MCkKKytSRUxPQ19UWVBFIChMVE9GRl9GUFRSMTRXUiwJMCkKKytSRUxPQ19UWVBFIChMVE9GRl9G UFRSMTREUiwJMCkKKytSRUxPQ19UWVBFIChMVE9GRl9GUFRSMTZGLAkwKQorK1JFTE9DX1RZUEUg KExUT0ZGX0ZQVFIxNldGLAkwKQorK1JFTE9DX1RZUEUgKExUT0ZGX0ZQVFIxNkRGLAkwKQorK1JF TE9DX1RZUEUgKENPUFksCQlFWEVDKQorK1JFTE9DX1RZUEUgKElQTFQsCQlFWEVDfERZTikKKytS RUxPQ19UWVBFIChFUExULAkJMCkKKytSRUxPQ19UWVBFIChUUFJFTDMyLAkJRFlOKQorK1JFTE9D X1RZUEUgKFRQUkVMMjFMLAkJMCkKKytSRUxPQ19UWVBFIChUUFJFTDE0UiwJCTApCisrUkVMT0Nf VFlQRSAoTFRPRkZfVFAyMUwsCTApCisrUkVMT0NfVFlQRSAoTFRPRkZfVFAxNFIsCTApCisrUkVM T0NfVFlQRSAoTFRPRkZfVFAxNEYsCTApCisrUkVMT0NfVFlQRSAoVFBSRUw2NCwJCTApCisrUkVM T0NfVFlQRSAoVFBSRUwxNFdSLAkJMCkKKytSRUxPQ19UWVBFIChUUFJFTDE0RFIsCQkwKQorK1JF TE9DX1RZUEUgKFRQUkVMMTZGLAkJMCkKKytSRUxPQ19UWVBFIChUUFJFTDE2V0YsCQkwKQorK1JF TE9DX1RZUEUgKFRQUkVMMTZERiwJCTApCisrUkVMT0NfVFlQRSAoTFRPRkZfVFA2NCwJCTApCisr UkVMT0NfVFlQRSAoTFRPRkZfVFAxNFdSLAkwKQorK1JFTE9DX1RZUEUgKExUT0ZGX1RQMTREUiwJ MCkKKytSRUxPQ19UWVBFIChMVE9GRl9UUDE2RiwJMCkKKytSRUxPQ19UWVBFIChMVE9GRl9UUDE2 V0YsCTApCisrUkVMT0NfVFlQRSAoTFRPRkZfVFAxNkRGLAkwKQorK1JFTE9DX1RZUEUgKFRMU19E VFBNT0QzMiwJRFlOKQorK1JFTE9DX1RZUEUgKFRMU19EVFBNT0Q2NCwJRFlOKQorKworKyNkZWZp bmUgTk9fUkVMQVRJVkVfUkVMT0MgICAgICAgMQorSW5kZXg6IGVsZnV0aWxzLTAuMTc1L2JhY2tl bmRzL3BhcmlzY19yZXR2YWwuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAorKysrIGVsZnV0 aWxzLTAuMTc1L2JhY2tlbmRzL3BhcmlzY19yZXR2YWwuYworQEAgLTAsMCArMSwyMTMgQEAKKysv KiBGdW5jdGlvbiByZXR1cm4gdmFsdWUgbG9jYXRpb24gZm9yIExpbnV4L1BBLVJJU0MgQUJJLgor KyAgIENvcHlyaWdodCAoQykgMjAwNSBSZWQgSGF0LCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBh cnQgb2YgUmVkIEhhdCBlbGZ1dGlscy4KKysKKysgICBSZWQgSGF0IGVsZnV0aWxzIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUKKysgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZS4KKysKKysgICBSZWQgSGF0IGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorKyAgIFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor KyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhbG9uZworKyAgIHdpdGggUmVkIEhhdCBlbGZ1dGlsczsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyAgIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl dCwgRmlmdGggRmxvb3IsIEJvc3RvbiBNQSAwMjExMC0xMzAxIFVTQS4KKysKKysgICBSZWQgSGF0 IGVsZnV0aWxzIGlzIGFuIGluY2x1ZGVkIHBhY2thZ2Ugb2YgdGhlIE9wZW4gSW52ZW50aW9uIE5l dHdvcmsuCisrICAgQW4gaW5jbHVkZWQgcGFja2FnZSBvZiB0aGUgT3BlbiBJbnZlbnRpb24gTmV0 d29yayBpcyBhIHBhY2thZ2UgZm9yIHdoaWNoCisrICAgT3BlbiBJbnZlbnRpb24gTmV0d29yayBs aWNlbnNlZXMgY3Jvc3MtbGljZW5zZSB0aGVpciBwYXRlbnRzLiAgTm8gcGF0ZW50CisrICAgbGlj ZW5zZSBpcyBncmFudGVkLCBlaXRoZXIgZXhwcmVzc2x5IG9yIGltcGxpZWRseSwgYnkgZGVzaWdu YXRpb24gYXMgYW4KKysgICBpbmNsdWRlZCBwYWNrYWdlLiAgU2hvdWxkIHlvdSB3aXNoIHRvIHBh cnRpY2lwYXRlIGluIHRoZSBPcGVuIEludmVudGlvbgorKyAgIE5ldHdvcmsgbGljZW5zaW5nIHBy b2dyYW0sIHBsZWFzZSB2aXNpdCB3d3cub3BlbmludmVudGlvbm5ldHdvcmsuY29tCisrICAgPGh0 dHA6Ly93d3cub3BlbmludmVudGlvbm5ldHdvcmsuY29tPi4gICovCisrCisrI2lmZGVmIEhBVkVf Q09ORklHX0gKKysjIGluY2x1ZGUgPGNvbmZpZy5oPgorKyNlbmRpZgorKworKyNpbmNsdWRlIDxh c3NlcnQuaD4KKysjaW5jbHVkZSA8ZHdhcmYuaD4KKysKKysjZGVmaW5lIEJBQ0tFTkQgcGFyaXNj XworKyNpbmNsdWRlICJsaWJlYmxfQ1BVLmgiCisrI2luY2x1ZGUgImxpYmVibF9wYXJpc2MuaCIK KysKKysvKiAlcjI4LCBvciBwYWlyICVyMjgsICVyMjkuICAqLworK3N0YXRpYyBjb25zdCBEd2Fy Zl9PcCBsb2NfaW50cmVnMzJbXSA9CisrICB7CisrICAgIHsgLmF0b20gPSBEV19PUF9yZWcyOCB9 LCB7IC5hdG9tID0gRFdfT1BfcGllY2UsIC5udW1iZXIgPSA0IH0sCisrICAgIHsgLmF0b20gPSBE V19PUF9yZWcyOSB9LCB7IC5hdG9tID0gRFdfT1BfcGllY2UsIC5udW1iZXIgPSA0IH0sCisrICB9 OworKworK3N0YXRpYyBjb25zdCBEd2FyZl9PcCBsb2NfaW50cmVnW10gPQorKyAgeworKyAgICB7 IC5hdG9tID0gRFdfT1BfcmVnMjggfSwgeyAuYXRvbSA9IERXX09QX3BpZWNlLCAubnVtYmVyID0g OCB9LAorKyAgICB7IC5hdG9tID0gRFdfT1BfcmVnMjkgfSwgeyAuYXRvbSA9IERXX09QX3BpZWNl LCAubnVtYmVyID0gOCB9LAorKyAgfTsKKysjZGVmaW5lIG5sb2NfaW50cmVnCTEKKysjZGVmaW5l IG5sb2NfaW50cmVncGFpcgk0CisrCisrLyogJWZyNEwsIG9yIHBhaXIgJWZyNEwsICVmcjRSIG9u IHBhLTMyICovCisrc3RhdGljIGNvbnN0IER3YXJmX09wIGxvY19mcHJlZzMyW10gPQorKyAgewor KyAgICB7IC5hdG9tID0gRFdfT1BfcmVneCwgLm51bWJlciA9IDcyIH0sIHsgLmF0b20gPSBEV19P UF9waWVjZSwgLm51bWJlciA9IDQgfSwKKysgICAgeyAuYXRvbSA9IERXX09QX3JlZ3gsIC5udW1i ZXIgPSA3MyB9LCB7IC5hdG9tID0gRFdfT1BfcGllY2UsIC5udW1iZXIgPSA0IH0sCisrICB9Owor KyNkZWZpbmUgbmxvY19mcHJlZzMyIDIKKysjZGVmaW5lIG5sb2NfZnByZWdwYWlyMzIgNAorKwor Ky8qICRmcjQgKi8KKytzdGF0aWMgY29uc3QgRHdhcmZfT3AgbG9jX2ZwcmVnW10gPQorKyAgewor KyAgICB7IC5hdG9tID0gRFdfT1BfcmVneCwgLm51bWJlciA9IDcyIH0sCisrICB9OworKyNkZWZp bmUgbmxvY19mcHJlZyAgMQorKworKyNpZiAwCisrLyogVGhlIHJldHVybiB2YWx1ZSBpcyBhIHN0 cnVjdHVyZSBhbmQgaXMgYWN0dWFsbHkgc3RvcmVkIGluIHN0YWNrIHNwYWNlCisrICAgcGFzc2Vk IGluIGEgaGlkZGVuIGFyZ3VtZW50IGJ5IHRoZSBjYWxsZXIuIEFkZHJlc3Mgb2YgdGhlIGxvY2F0 aW9uIGlzIHN0b3JlZAorKyAgIGluICVyMjggYmVmb3JlIGZ1bmN0aW9uIGNhbGwsIGJ1dCBpdCBt YXkgYmUgY2hhbmdlZCBieSBmdW5jdGlvbi4gKi8KKytzdGF0aWMgY29uc3QgRHdhcmZfT3AgbG9j X2FnZ3JlZ2F0ZVtdID0KKysgIHsKKysgICAgeyAuYXRvbSA9IERXX09QX2JyZWcyOCB9LAorKyAg fTsKKysjZGVmaW5lIG5sb2NfYWdncmVnYXRlIDEKKysjZW5kaWYKKysKKytzdGF0aWMgaW50Cisr cGFyaXNjX3JldHVybl92YWx1ZV9sb2NhdGlvbl8gKER3YXJmX0RpZSAqZnVuY3R5cGVkaWUsIGNv bnN0IER3YXJmX09wICoqbG9jcCwgaW50IHBhNjQpCisreworKyAgRHdhcmZfV29yZCByZWdzaXpl ID0gcGE2NCA/IDggOiA0OworKworKyAgLyogU3RhcnQgd2l0aCB0aGUgZnVuY3Rpb24ncyB0eXBl LCBhbmQgZ2V0IHRoZSBEV19BVF90eXBlIGF0dHJpYnV0ZSwKKysgICAgIHdoaWNoIGlzIHRoZSB0 eXBlIG9mIHRoZSByZXR1cm4gdmFsdWUuICAqLworKworKyAgRHdhcmZfQXR0cmlidXRlIGF0dHJf bWVtOworKyAgRHdhcmZfQXR0cmlidXRlICphdHRyID0gZHdhcmZfYXR0cl9pbnRlZ3JhdGUgKGZ1 bmN0eXBlZGllLCBEV19BVF90eXBlLCAmYXR0cl9tZW0pOworKyAgaWYgKGF0dHIgPT0gTlVMTCkK KysgICAgLyogVGhlIGZ1bmN0aW9uIGhhcyBubyByZXR1cm4gdmFsdWUsIGxpa2UgYSBgdm9pZCcg ZnVuY3Rpb24gaW4gQy4gICovCisrICAgIHJldHVybiAwOworKworKyAgRHdhcmZfRGllIGRpZV9t ZW07CisrICBEd2FyZl9EaWUgKnR5cGVkaWUgPSBkd2FyZl9mb3JtcmVmX2RpZSAoYXR0ciwgJmRp ZV9tZW0pOworKyAgaW50IHRhZyA9IGR3YXJmX3RhZyAodHlwZWRpZSk7CisrCisrICAvKiBGb2xs b3cgdHlwZWRlZnMgYW5kIHF1YWxpZmllcnMgdG8gZ2V0IHRvIHRoZSBhY3R1YWwgdHlwZS4gICov CisrICB3aGlsZSAodGFnID09IERXX1RBR190eXBlZGVmCisrCSB8fCB0YWcgPT0gRFdfVEFHX2Nv bnN0X3R5cGUgfHwgdGFnID09IERXX1RBR192b2xhdGlsZV90eXBlCisrCSB8fCB0YWcgPT0gRFdf VEFHX3Jlc3RyaWN0X3R5cGUpCisrICAgIHsKKysgICAgICBhdHRyID0gZHdhcmZfYXR0cl9pbnRl Z3JhdGUgKHR5cGVkaWUsIERXX0FUX3R5cGUsICZhdHRyX21lbSk7CisrICAgICAgdHlwZWRpZSA9 IGR3YXJmX2Zvcm1yZWZfZGllIChhdHRyLCAmZGllX21lbSk7CisrICAgICAgdGFnID0gZHdhcmZf dGFnICh0eXBlZGllKTsKKysgICAgfQorKworKyAgc3dpdGNoICh0YWcpCisrICAgIHsKKysgICAg Y2FzZSAtMToKKysgICAgICByZXR1cm4gLTE7CisrCisrICAgIGNhc2UgRFdfVEFHX3N1YnJhbmdl X3R5cGU6CisrICAgICAgaWYgKCEgZHdhcmZfaGFzYXR0cl9pbnRlZ3JhdGUgKHR5cGVkaWUsIERX X0FUX2J5dGVfc2l6ZSkpCisrCXsKKysJICBhdHRyID0gZHdhcmZfYXR0cl9pbnRlZ3JhdGUgKHR5 cGVkaWUsIERXX0FUX3R5cGUsICZhdHRyX21lbSk7CisrCSAgdHlwZWRpZSA9IGR3YXJmX2Zvcm1y ZWZfZGllIChhdHRyLCAmZGllX21lbSk7CisrCSAgdGFnID0gZHdhcmZfdGFnICh0eXBlZGllKTsK KysJfQorKyAgICAgIC8qIEZhbGwgdGhyb3VnaC4gICovCisrCisrICAgIGNhc2UgRFdfVEFHX2Jh c2VfdHlwZToKKysgICAgY2FzZSBEV19UQUdfZW51bWVyYXRpb25fdHlwZToKKysgICAgY2FzZSBE V19UQUdfcG9pbnRlcl90eXBlOgorKyAgICBjYXNlIERXX1RBR19wdHJfdG9fbWVtYmVyX3R5cGU6 CisrICAgICAgeworKyAgICAgICAgRHdhcmZfV29yZCBzaXplOworKwlpZiAoZHdhcmZfZm9ybXVk YXRhIChkd2FyZl9hdHRyX2ludGVncmF0ZSAodHlwZWRpZSwgRFdfQVRfYnl0ZV9zaXplLAorKwkJ CQkJICZhdHRyX21lbSksICZzaXplKSAhPSAwKQorKwkgIHsKKysJICAgIGlmICh0YWcgPT0gRFdf VEFHX3BvaW50ZXJfdHlwZSB8fCB0YWcgPT0gRFdfVEFHX3B0cl90b19tZW1iZXJfdHlwZSkKKysJ ICAgICAgc2l6ZSA9IDQ7CisrCSAgICBlbHNlCisrCSAgICAgIHJldHVybiAtMTsKKysJICB9Cisr CWlmICh0YWcgPT0gRFdfVEFHX2Jhc2VfdHlwZSkKKysJICB7CisrCSAgICBEd2FyZl9Xb3JkIGVu Y29kaW5nOworKwkgICAgaWYgKGR3YXJmX2Zvcm11ZGF0YSAoZHdhcmZfYXR0cl9pbnRlZ3JhdGUg KHR5cGVkaWUsIERXX0FUX2VuY29kaW5nLAorKwkJCQkJICAgICAmYXR0cl9tZW0pLCAmZW5jb2Rp bmcpICE9IDApCisrCSAgICAgIHJldHVybiAtMTsKKysKKysJICAgIGlmIChlbmNvZGluZyA9PSBE V19BVEVfZmxvYXQpCisrCSAgICAgIHsKKysJCWlmIChwYTY0KSB7CisrCQkgICpsb2NwID0gbG9j X2ZwcmVnOworKwkJICBpZiAoc2l6ZSA8PSA4KQorKwkJICAgICAgcmV0dXJuIG5sb2NfZnByZWc7 CisrCQl9CisrCQllbHNlIHsKKysJCSAgKmxvY3AgPSBsb2NfZnByZWczMjsKKysJCSAgaWYgKHNp emUgPD0gNCkKKysJCSAgICByZXR1cm4gbmxvY19mcHJlZzMyOworKwkJICBlbHNlIGlmIChzaXpl IDw9IDgpCisrCQkgICAgcmV0dXJuIG5sb2NfZnByZWdwYWlyMzI7CisrCQl9CisrCQlnb3RvIGFn Z3JlZ2F0ZTsKKysJICAgICAgfQorKwkgIH0KKysJaWYgKHBhNjQpCisrCSAgKmxvY3AgPSBsb2Nf aW50cmVnOworKwllbHNlCisrCSAgKmxvY3AgPSBsb2NfaW50cmVnMzI7CisrCWlmIChzaXplIDw9 IHJlZ3NpemUpCisrCSAgcmV0dXJuIG5sb2NfaW50cmVnOworKwlpZiAoc2l6ZSA8PSAyICogcmVn c2l6ZSkKKysJICByZXR1cm4gbmxvY19pbnRyZWdwYWlyOworKworKwkvKiBFbHNlIGZhbGwgdGhy b3VnaC4gICovCisrICAgICAgfQorKworKyAgICBjYXNlIERXX1RBR19zdHJ1Y3R1cmVfdHlwZToK KysgICAgY2FzZSBEV19UQUdfY2xhc3NfdHlwZToKKysgICAgY2FzZSBEV19UQUdfdW5pb25fdHlw ZToKKysgICAgY2FzZSBEV19UQUdfYXJyYXlfdHlwZToKKysgICAgYWdncmVnYXRlOiB7CisrICAg ICAgICBEd2FyZl9Xb3JkIHNpemU7CisrCWlmIChkd2FyZl9hZ2dyZWdhdGVfc2l6ZSAodHlwZWRp ZSwgJnNpemUpICE9IDApCisrCSAgcmV0dXJuIC0xOworKwlpZiAocGE2NCkKKysgICAgICAgICAg KmxvY3AgPSBsb2NfaW50cmVnOworKwllbHNlCisrCSAgKmxvY3AgPSBsb2NfaW50cmVnMzI7Cisr ICAgICAgICBpZiAoc2l6ZSA8PSByZWdzaXplKQorKwkgIHJldHVybiBubG9jX2ludHJlZzsKKysg ICAgICAgIGlmIChzaXplIDw9IDIgKiByZWdzaXplKQorKwkgIHJldHVybiBubG9jX2ludHJlZ3Bh aXI7CisrI2lmIDAKKysJLyogdGhlcmUgc2hvdWxkIGJlIHNvbWUgd2F5IHRvIGtub3cgdGhpcyBs b2NhdGlvbi4uLiBCdXQgSSBkbyBub3Qgc2VlIGl0LiAqLworKyAgICAgICAgKmxvY3AgPSBsb2Nf YWdncmVnYXRlOworKyAgICAgICAgcmV0dXJuIG5sb2NfYWdncmVnYXRlOworKyNlbmRpZgorKwkv KiBmYWxsIHRocm91Z2guICAqLworKyAgICAgIH0KKysgICAgfQorKworKyAgLyogWFhYIFdlIGRv bid0IGhhdmUgYSBnb29kIHdheSB0byByZXR1cm4gc3BlY2lmaWMgZXJyb3JzIGZyb20gZWJsIGNh bGxzLgorKyAgICAgVGhpcyB2YWx1ZSBtZWFucyB3ZSBkbyBub3QgdW5kZXJzdGFuZCB0aGUgdHlw ZSwgYnV0IGl0IGlzIHdlbGwtZm9ybWVkCisrICAgICBEV0FSRiBhbmQgbWlnaHQgYmUgdmFsaWQu ICAqLworKyAgcmV0dXJuIC0yOworK30KKysKKytpbnQKKytwYXJpc2NfcmV0dXJuX3ZhbHVlX2xv Y2F0aW9uXzMyIChEd2FyZl9EaWUgKmZ1bmN0eXBlZGllLCBjb25zdCBEd2FyZl9PcCAqKmxvY3Ap CisreworKyAgcmV0dXJuIHBhcmlzY19yZXR1cm5fdmFsdWVfbG9jYXRpb25fIChmdW5jdHlwZWRp ZSwgbG9jcCwgMCk7CisrfQorKworK2ludAorK3BhcmlzY19yZXR1cm5fdmFsdWVfbG9jYXRpb25f NjQgKER3YXJmX0RpZSAqZnVuY3R5cGVkaWUsIGNvbnN0IER3YXJmX09wICoqbG9jcCkKKyt7Cisr ICByZXR1cm4gcGFyaXNjX3JldHVybl92YWx1ZV9sb2NhdGlvbl8gKGZ1bmN0eXBlZGllLCBsb2Nw LCAxKTsKKyt9CisrCitJbmRleDogZWxmdXRpbHMtMC4xNzUvYmFja2VuZHMvcGFyaXNjX3N5bWJv bC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgZWxmdXRpbHMtMC4xNzUvYmFja2Vu ZHMvcGFyaXNjX3N5bWJvbC5jCitAQCAtMCwwICsxLDExMyBAQAorKy8qIFBBLVJJU0Mgc3BlY2lm aWMgc3ltYm9saWMgbmFtZSBoYW5kbGluZy4KKysgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUg UmVkIEhhdCwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFJlZCBIYXQgZWxmdXRpbHMu CisrICAgV3JpdHRlbiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwgMjAw Mi4KKysKKysgICBSZWQgSGF0IGVsZnV0aWxzIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKysgICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKysKKysgICBS ZWQgSGF0IGVsZnV0aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsIGJ1dAorKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworKyAgIHdpdGgg UmVkIEhhdCBlbGZ1dGlsczsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLAorKyAgIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv biBNQSAwMjExMC0xMzAxIFVTQS4KKysKKysgICBSZWQgSGF0IGVsZnV0aWxzIGlzIGFuIGluY2x1 ZGVkIHBhY2thZ2Ugb2YgdGhlIE9wZW4gSW52ZW50aW9uIE5ldHdvcmsuCisrICAgQW4gaW5jbHVk ZWQgcGFja2FnZSBvZiB0aGUgT3BlbiBJbnZlbnRpb24gTmV0d29yayBpcyBhIHBhY2thZ2UgZm9y IHdoaWNoCisrICAgT3BlbiBJbnZlbnRpb24gTmV0d29yayBsaWNlbnNlZXMgY3Jvc3MtbGljZW5z ZSB0aGVpciBwYXRlbnRzLiAgTm8gcGF0ZW50CisrICAgbGljZW5zZSBpcyBncmFudGVkLCBlaXRo ZXIgZXhwcmVzc2x5IG9yIGltcGxpZWRseSwgYnkgZGVzaWduYXRpb24gYXMgYW4KKysgICBpbmNs dWRlZCBwYWNrYWdlLiAgU2hvdWxkIHlvdSB3aXNoIHRvIHBhcnRpY2lwYXRlIGluIHRoZSBPcGVu IEludmVudGlvbgorKyAgIE5ldHdvcmsgbGljZW5zaW5nIHByb2dyYW0sIHBsZWFzZSB2aXNpdCB3 d3cub3BlbmludmVudGlvbm5ldHdvcmsuY29tCisrICAgPGh0dHA6Ly93d3cub3BlbmludmVudGlv bm5ldHdvcmsuY29tPi4gICovCisrCisrI2lmZGVmIEhBVkVfQ09ORklHX0gKKysjIGluY2x1ZGUg PGNvbmZpZy5oPgorKyNlbmRpZgorKworKyNpbmNsdWRlIDxlbGYuaD4KKysjaW5jbHVkZSA8c3Rk ZGVmLmg+CisrCisrI2RlZmluZSBCQUNLRU5ECQlwYXJpc2NfCisrI2luY2x1ZGUgImxpYmVibF9D UFUuaCIKKysKKytjb25zdCBjaGFyICoKKytwYXJpc2Nfc2VnbWVudF90eXBlX25hbWUgKGludCBz ZWdtZW50LCBjaGFyICpidWYgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAorKwkJCXNpemVfdCBs ZW4gX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQorK3sKKysgIHN3aXRjaCAoc2VnbWVudCkKKysg ICAgeworKyAgICBjYXNlIFBUX1BBUklTQ19BUkNIRVhUOgorKyAgICAgIHJldHVybiAiUEFSSVND X0FSQ0hFWFQiOworKyAgICBjYXNlIFBUX1BBUklTQ19VTldJTkQ6CisrICAgICAgcmV0dXJuICJQ QVJJU0NfVU5XSU5EIjsKKysgICAgZGVmYXVsdDoKKysgICAgICBicmVhazsKKysgICAgfQorKyAg cmV0dXJuIE5VTEw7CisrfQorKworKy8qIFJldHVybiBzeW1ib2xpYyByZXByZXNlbnRhdGlvbiBv ZiBzeW1ib2wgdHlwZS4gICovCisrY29uc3QgY2hhciAqCisrcGFyaXNjX3N5bWJvbF90eXBlX25h bWUoaW50IHN5bWJvbCwgY2hhciAqYnVmIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwKKysgICAg c2l6ZV90IGxlbiBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCisreworKwlpZiAoc3ltYm9sID09 IFNUVF9QQVJJU0NfTUlMTElDT0RFKQorKwkgIHJldHVybiAiUEFSSVNDX01JTExJIjsKKysJcmV0 dXJuIE5VTEw7CisrfQorKworKy8qIFJldHVybiBzeW1ib2xpYyByZXByZXNlbnRhdGlvbiBvZiBz ZWN0aW9uIHR5cGUuICAqLworK2NvbnN0IGNoYXIgKgorK3BhcmlzY19zZWN0aW9uX3R5cGVfbmFt ZSAoaW50IHR5cGUsCisrCQkJY2hhciAqYnVmIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwKKysJ CQlzaXplX3QgbGVuIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSkKKyt7CisrICBzd2l0Y2ggKHR5 cGUpCisrICAgIHsKKysgICAgY2FzZSBTSFRfUEFSSVNDX0VYVDoKKysgICAgICByZXR1cm4gIlBB UklTQ19FWFQiOworKyAgICBjYXNlIFNIVF9QQVJJU0NfVU5XSU5EOgorKyAgICAgIHJldHVybiAi UEFSSVNDX1VOV0lORCI7CisrICAgIGNhc2UgU0hUX1BBUklTQ19ET0M6CisrICAgICAgcmV0dXJu ICJQQVJJU0NfRE9DIjsKKysgICAgfQorKworKyAgcmV0dXJuIE5VTEw7CisrfQorKworKy8qIENo ZWNrIHdoZXRoZXIgbWFjaGluZSBmbGFncyBhcmUgdmFsaWQuICAqLworK2Jvb2wKKytwYXJpc2Nf bWFjaGluZV9mbGFnX2NoZWNrIChHRWxmX1dvcmQgZmxhZ3MpCisreworKyAgaWYgKGZsYWdzICZ+ IChFRl9QQVJJU0NfVFJBUE5JTCB8IEVGX1BBUklTQ19FWFQgfCBFRl9QQVJJU0NfTFNCIHwKKysJ RUZfUEFSSVNDX1dJREUgfCBFRl9QQVJJU0NfTk9fS0FCUCB8CisrCUVGX1BBUklTQ19MQVpZU1dB UCB8IEVGX1BBUklTQ19BUkNIKSkKKysgICAgcmV0dXJuIDA7CisrCisrICBHRWxmX1dvcmQgYXJj aCA9IGZsYWdzICYgRUZfUEFSSVNDX0FSQ0g7CisrCisrICByZXR1cm4gKChhcmNoID09IEVGQV9Q QVJJU0NfMV8wKSB8fCAoYXJjaCA9PSBFRkFfUEFSSVNDXzFfMSkgfHwKKysgICAgICAoYXJjaCA9 PSBFRkFfUEFSSVNDXzJfMCkpOworK30KKysKKysvKiBDaGVjayBmb3IgdGhlIHNpbXBsZSByZWxv YyB0eXBlcy4gICovCisrRWxmX1R5cGUKKytwYXJpc2NfcmVsb2Nfc2ltcGxlX3R5cGUgKEVibCAq ZWJsIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IHR5cGUsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgKmFkZHN1YiBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCisreworKyAg c3dpdGNoICh0eXBlKQorKyAgICB7CisrICAgIGNhc2UgUl9QQVJJU0NfRElSNjQ6CisrICAgIGNh c2UgUl9QQVJJU0NfU0VDUkVMNjQ6CisrICAgICAgcmV0dXJuIEVMRl9UX1hXT1JEOworKyAgICBj YXNlIFJfUEFSSVNDX0RJUjMyOgorKyAgICBjYXNlIFJfUEFSSVNDX1NFQ1JFTDMyOgorKyAgICAg IHJldHVybiBFTEZfVF9XT1JEOworKyAgICBkZWZhdWx0OgorKyAgICAgIHJldHVybiBFTEZfVF9O VU07CisrICAgIH0KKyt9CitJbmRleDogZWxmdXRpbHMtMC4xNzUvYmFja2VuZHMvbGliZWJsX3Bh cmlzYy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgZWxmdXRpbHMtMC4xNzUvYmFj a2VuZHMvbGliZWJsX3BhcmlzYy5oCitAQCAtMCwwICsxLDkgQEAKKysjaWZuZGVmIF9MSUJFQkxf SFBQQV9ICisrI2RlZmluZSBfTElCRUJMX0hQUEFfSCAxCisrCisrI2luY2x1ZGUgPGxpYmR3Lmg+ CisrCisrZXh0ZXJuIGludCBwYXJpc2NfcmV0dXJuX3ZhbHVlX2xvY2F0aW9uXzMyKER3YXJmX0Rp ZSAqLCBjb25zdCBEd2FyZl9PcCAqKmxvY3ApOworK2V4dGVybiBpbnQgcGFyaXNjX3JldHVybl92 YWx1ZV9sb2NhdGlvbl82NChEd2FyZl9EaWUgKiwgY29uc3QgRHdhcmZfT3AgKipsb2NwKTsKKysK KysjZW5kaWYKK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9NYWtlZmlsZS5hbQorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGVsZnV0aWxzLTAuMTc1Lm9yaWcvYmFja2VuZHMvTWFrZWZpbGUuYW0KKysr KyBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9NYWtlZmlsZS5hbQorQEAgLTMzLDEyICszMywxMyBA QCBBTV9DUFBGTEFHUyArPSAtSSQodG9wX3NyY2RpcikvbGliZWJsIC1JCisgCisgCisgbW9kdWxl cyA9IGkzODYgc2ggeDg2XzY0IGlhNjQgYWxwaGEgYXJtIGFhcmNoNjQgc3BhcmMgcHBjIHBwYzY0 IHMzOTAgXAorLQkgIHRpbGVneCBtNjhrIGJwZiByaXNjdgorKwkgIHRpbGVneCBtNjhrIGJwZiBy aXNjdiBwYXJpc2MKKyBsaWJlYmxfcGljID0gbGliZWJsX2kzODZfcGljLmEgbGliZWJsX3NoX3Bp Yy5hIGxpYmVibF94ODZfNjRfcGljLmEgICAgXAorIAkgICAgIGxpYmVibF9pYTY0X3BpYy5hIGxp YmVibF9hbHBoYV9waWMuYSBsaWJlYmxfYXJtX3BpYy5hICAgIFwKKyAJICAgICBsaWJlYmxfYWFy Y2g2NF9waWMuYSBsaWJlYmxfc3BhcmNfcGljLmEgbGliZWJsX3BwY19waWMuYSBcCisgCSAgICAg bGliZWJsX3BwYzY0X3BpYy5hIGxpYmVibF9zMzkwX3BpYy5hIGxpYmVibF90aWxlZ3hfcGljLmEg XAorLQkgICAgIGxpYmVibF9tNjhrX3BpYy5hIGxpYmVibF9icGZfcGljLmEgbGliZWJsX3Jpc2N2 X3BpYy5hCisrCSAgICAgbGliZWJsX202OGtfcGljLmEgbGliZWJsX2JwZl9waWMuYSBsaWJlYmxf cmlzY3ZfcGljLmEgXAorKwkgICAgIGxpYmVibF9wYXJpc2NfcGljLmEKKyBub2luc3RfTElCUkFS SUVTID0gJChsaWJlYmxfcGljKQorIG5vaW5zdF9EQVRBID0gJChsaWJlYmxfcGljOl9waWMuYT0u c28pCisgCitAQCAtMTM2LDYgKzEzNyw5IEBAIHJpc2N2X1NSQ1MgPSByaXNjdl9pbml0LmMgcmlz Y3Zfc3ltYm9sLmMKKyBsaWJlYmxfcmlzY3ZfcGljX2FfU09VUkNFUyA9ICQocmlzY3ZfU1JDUykK KyBhbV9saWJlYmxfcmlzY3ZfcGljX2FfT0JKRUNUUyA9ICQocmlzY3ZfU1JDUzouYz0ub3MpCisg CisrcGFyaXNjX1NSQ1MgPSBwYXJpc2NfaW5pdC5jIHBhcmlzY19zeW1ib2wuYyBwYXJpc2NfcmVn cy5jIHBhcmlzY19yZXR2YWwuYworK2xpYmVibF9wYXJpc2NfcGljX2FfU09VUkNFUyA9ICQocGFy aXNjX1NSQ1MpCisrYW1fbGliZWJsX3BhcmlzY19waWNfYV9PQkpFQ1RTID0gJChwYXJpc2NfU1JD UzouYz0ub3MpCisgCisgbGliZWJsXyUuc28gbGliZWJsXyUubWFwOiBsaWJlYmxfJV9waWMuYSAk KGxpYmVsZikgJChsaWJkdykgJChsaWJldSkKKyAJQHJtIC1mICQoQDouc289Lm1hcCkKK0luZGV4 OiBlbGZ1dGlscy0wLjE3NS9saWJlbGYvZWxmLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0w LjE3NS5vcmlnL2xpYmVsZi9lbGYuaAorKysrIGVsZnV0aWxzLTAuMTc1L2xpYmVsZi9lbGYuaAor QEAgLTIxNTUsMTYgKzIxNTUsMjQgQEAgZW51bQorICNkZWZpbmUgUl9QQVJJU0NfUENSRUwxN0YJ MTIJLyogMTcgYml0cyBvZiByZWwuIGFkZHJlc3MuICAqLworICNkZWZpbmUgUl9QQVJJU0NfUENS RUwxNFIJMTQJLyogUmlnaHQgMTQgYml0cyBvZiByZWwuIGFkZHJlc3MuICAqLworICNkZWZpbmUg Ul9QQVJJU0NfRFBSRUwyMUwJMTgJLyogTGVmdCAyMSBiaXRzIG9mIHJlbC4gYWRkcmVzcy4gICov CisrI2RlZmluZSBSX1BBUklTQ19EUFJFTDE0V1IJMTkKKysjZGVmaW5lIFJfUEFSSVNDX0RQUkVM MTREUgkyMAorICNkZWZpbmUgUl9QQVJJU0NfRFBSRUwxNFIJMjIJLyogUmlnaHQgMTQgYml0cyBv ZiByZWwuIGFkZHJlc3MuICAqLworICNkZWZpbmUgUl9QQVJJU0NfR1BSRUwyMUwJMjYJLyogR1At cmVsYXRpdmUsIGxlZnQgMjEgYml0cy4gICovCisgI2RlZmluZSBSX1BBUklTQ19HUFJFTDE0Ugkz MAkvKiBHUC1yZWxhdGl2ZSwgcmlnaHQgMTQgYml0cy4gICovCisgI2RlZmluZSBSX1BBUklTQ19M VE9GRjIxTAkzNAkvKiBMVC1yZWxhdGl2ZSwgbGVmdCAyMSBiaXRzLiAgKi8KKyAjZGVmaW5lIFJf UEFSSVNDX0xUT0ZGMTRSCTM4CS8qIExULXJlbGF0aXZlLCByaWdodCAxNCBiaXRzLiAgKi8KKysj ZGVmaW5lIFJfUEFSSVNDX0RMVElORDE0RgkzOQorKyNkZWZpbmUgUl9QQVJJU0NfU0VUQkFTRQk0 MAorICNkZWZpbmUgUl9QQVJJU0NfU0VDUkVMMzIJNDEJLyogMzIgYml0cyBzZWN0aW9uIHJlbC4g YWRkcmVzcy4gICovCisrI2RlZmluZSBSX1BBUklTQ19CQVNFUkVMMjFMCTQyCisrI2RlZmluZSBS X1BBUklTQ19CQVNFUkVMMTdSCTQzCisrI2RlZmluZSBSX1BBUklTQ19CQVNFUkVMMTRSCTQ2Cisg I2RlZmluZSBSX1BBUklTQ19TRUdCQVNFCTQ4CS8qIE5vIHJlbG9jYXRpb24sIHNldCBzZWdtZW50 IGJhc2UuICAqLworICNkZWZpbmUgUl9QQVJJU0NfU0VHUkVMMzIJNDkJLyogMzIgYml0cyBzZWdt ZW50IHJlbC4gYWRkcmVzcy4gICovCisgI2RlZmluZSBSX1BBUklTQ19QTFRPRkYyMUwJNTAJLyog UExUIHJlbC4gYWRkcmVzcywgbGVmdCAyMSBiaXRzLiAgKi8KKyAjZGVmaW5lIFJfUEFSSVNDX1BM VE9GRjE0Ugk1NAkvKiBQTFQgcmVsLiBhZGRyZXNzLCByaWdodCAxNCBiaXRzLiAgKi8KKysjZGVm aW5lIFJfUEFSSVNDX1BMVE9GRjE0Rgk1NQorICNkZWZpbmUgUl9QQVJJU0NfTFRPRkZfRlBUUjMy CTU3CS8qIDMyIGJpdHMgTFQtcmVsLiBmdW5jdGlvbiBwb2ludGVyLiAqLworICNkZWZpbmUgUl9Q QVJJU0NfTFRPRkZfRlBUUjIxTAk1OAkvKiBMVC1yZWwuIGZjdCBwdHIsIGxlZnQgMjEgYml0cy4g Ki8KKyAjZGVmaW5lIFJfUEFSSVNDX0xUT0ZGX0ZQVFIxNFIJNjIJLyogTFQtcmVsLiBmY3QgcHRy LCByaWdodCAxNCBiaXRzLiAqLworQEAgLTIxNzMsNiArMjE4MSw3IEBAIGVudW0KKyAjZGVmaW5l IFJfUEFSSVNDX1BMQUJFTDIxTAk2NgkvKiBMZWZ0IDIxIGJpdHMgb2YgZmRlc2MgYWRkcmVzcy4g ICovCisgI2RlZmluZSBSX1BBUklTQ19QTEFCRUwxNFIJNzAJLyogUmlnaHQgMTQgYml0cyBvZiBm ZGVzYyBhZGRyZXNzLiAgKi8KKyAjZGVmaW5lIFJfUEFSSVNDX1BDUkVMNjQJNzIJLyogNjQgYml0 cyBQQy1yZWwuIGFkZHJlc3MuICAqLworKyNkZWZpbmUgUl9QQVJJU0NfUENSRUwyMkMJNzMKKyAj ZGVmaW5lIFJfUEFSSVNDX1BDUkVMMjJGCTc0CS8qIDIyIGJpdHMgUEMtcmVsLiBhZGRyZXNzLiAg Ki8KKyAjZGVmaW5lIFJfUEFSSVNDX1BDUkVMMTRXUgk3NQkvKiBQQy1yZWwuIGFkZHJlc3MsIHJp Z2h0IDE0IGJpdHMuICAqLworICNkZWZpbmUgUl9QQVJJU0NfUENSRUwxNERSCTc2CS8qIFBDIHJl bC4gYWRkcmVzcywgcmlnaHQgMTQgYml0cy4gICovCitAQCAtMjE5OCw2ICsyMjA3LDggQEAgZW51 bQorICNkZWZpbmUgUl9QQVJJU0NfTFRPRkYxNldGCTEwMgkvKiAxNiBiaXRzIExULXJlbC4gYWRk cmVzcy4gICovCisgI2RlZmluZSBSX1BBUklTQ19MVE9GRjE2REYJMTAzCS8qIDE2IGJpdHMgTFQt cmVsLiBhZGRyZXNzLiAgKi8KKyAjZGVmaW5lIFJfUEFSSVNDX1NFQ1JFTDY0CTEwNAkvKiA2NCBi aXRzIHNlY3Rpb24gcmVsLiBhZGRyZXNzLiAgKi8KKysjZGVmaW5lIFJfUEFSSVNDX0JBU0VSRUwx NFdSCTEwNworKyNkZWZpbmUgUl9QQVJJU0NfQkFTRVJFTDE0RFIJMTA4CisgI2RlZmluZSBSX1BB UklTQ19TRUdSRUw2NAkxMTIJLyogNjQgYml0cyBzZWdtZW50IHJlbC4gYWRkcmVzcy4gICovCisg I2RlZmluZSBSX1BBUklTQ19QTFRPRkYxNFdSCTExNQkvKiBQTFQtcmVsLiBhZGRyZXNzLCByaWdo dCAxNCBiaXRzLiAgKi8KKyAjZGVmaW5lIFJfUEFSSVNDX1BMVE9GRjE0RFIJMTE2CS8qIFBMVC1y ZWwuIGFkZHJlc3MsIHJpZ2h0IDE0IGJpdHMuICAqLwpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9lbGZ1 dGlscy0wLjE3Ni9odXJkX3BhdGgucGF0Y2ggYi9wYXRjaGVzL2VsZnV0aWxzLTAuMTc2L2h1cmRf cGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjQ0NDBlMzll MAotLS0gL2Rldi9udWxsCisrKyBiL3BhdGNoZXMvZWxmdXRpbHMtMC4xNzYvaHVyZF9wYXRoLnBh dGNoCkBAIC0wLDAgKzEsMTQgQEAKK0luZGV4OiBlbGZ1dGlscy0wLjE2NS90ZXN0cy9ydW4tbmF0 aXZlLXRlc3Quc2gKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0wLjE2NS5vcmlnL3Rlc3RzL3J1 bi1uYXRpdmUtdGVzdC5zaAorKysrIGVsZnV0aWxzLTAuMTY1L3Rlc3RzL3J1bi1uYXRpdmUtdGVz dC5zaAorQEAgLTgzLDYgKzgzLDkgQEAgbmF0aXZlX3Rlc3QoKQorICMgImNhbm5vdCBhdHRhY2gg dG8gcHJvY2VzczogRnVuY3Rpb24gbm90IGltcGxlbWVudGVkIi4KKyBbICIkKHVuYW1lKSIgPSAi R05VL2tGcmVlQlNEIiBdICYmIGV4aXQgNzcKKyAKKysjIGh1cmQncyAvcHJvYy8kUElEL21hcHMg ZG9lcyBub3QgZ2l2ZSBwYXRocyB5ZXQuCisrWyAiJCh1bmFtZSkiID0gIkdOVSIgXSAmJiBleGl0 IDc3CisrCisgbmF0aXZlX3Rlc3QgJHthYnNfYnVpbGRkaXJ9L2FsbHJlZ3MKKyBuYXRpdmVfdGVz dCAke2Fic19idWlsZGRpcn0vZnVuY3JldHZhbAorIApkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9lbGZ1 dGlscy0wLjE3Ni9pZ25vcmVfc3RybWVyZ2UuZGlmZiBiL3BhdGNoZXMvZWxmdXRpbHMtMC4xNzYv aWdub3JlX3N0cm1lcmdlLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li4xZTZkN2EyZGUKLS0tIC9kZXYvbnVsbAorKysgYi9wYXRjaGVzL2VsZnV0aWxzLTAuMTc2L2ln bm9yZV9zdHJtZXJnZS5kaWZmCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBlbGZ1dGlscy0wLjE2NS5v cmlnL3Rlc3RzL3J1bi1zdHJpcC1zdHJtZXJnZS5zaAorKysrIGVsZnV0aWxzLTAuMTY1L3Rlc3Rz L3J1bi1zdHJpcC1zdHJtZXJnZS5zaAorQEAgLTMwLDcgKzMwLDcgQEAgcmVtZXJnZWQ9cmVtZXJn ZWQuZWxmCisgdGVtcGZpbGVzICRtZXJnZWQgJHN0cmlwcGVkICRkZWJ1Z2ZpbGUgJHJlbWVyZ2Vk CisgCisgZWNobyBlbGZsaW50ICRpbnB1dAorLXRlc3RydW4gJHthYnNfdG9wX2J1aWxkZGlyfS9z cmMvZWxmbGludCAtLWdudSAkaW5wdXQKKyt0ZXN0cnVuX29uX3NlbGZfc2tpcCAke2Fic190b3Bf YnVpbGRkaXJ9L3NyYy9lbGZsaW50IC0tZ251ICRpbnB1dAorIGVjaG8gZWxmc3RybWVyZ2UKKyB0 ZXN0cnVuICR7YWJzX3RvcF9idWlsZGRpcn0vdGVzdHMvZWxmc3RybWVyZ2UgLW8gJG1lcmdlZCAk aW5wdXQKKyBlY2hvIGVsZmxpbnQgJG1lcmdlZApkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9lbGZ1dGls cy0wLjE3Ni9rZnJlZWJzZF9wYXRoLnBhdGNoIGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9rZnJl ZWJzZF9wYXRoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uOWEx OWI1OGI1Ci0tLSAvZGV2L251bGwKKysrIGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9rZnJlZWJz ZF9wYXRoLnBhdGNoCkBAIC0wLDAgKzEsMTcgQEAKK0luZGV4OiBiL3Rlc3RzL3J1bi1uYXRpdmUt dGVzdC5zaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGEvdGVzdHMvcnVuLW5hdGl2ZS10ZXN0LnNoCisrKysg Yi90ZXN0cy9ydW4tbmF0aXZlLXRlc3Quc2gKK0BAIC03Nyw2ICs3NywxMiBAQCBuYXRpdmVfdGVz dCgpCisgICB0ZXN0ICRuYXRpdmUgLWVxIDAgfHwgdGVzdHJ1biAiJEAiIC1wICRuYXRpdmUgPiAv ZGV2L251bGwKKyB9CisgCisrIyBPbiB0aGUgRGViaWFuIGJ1aWxkZHMsIEdOVS9rRnJlZUJTRCBs aW5wcm9jZnMgL3Byb2MvJFBJRC9tYXBzIGRvZXMKKysjIG5vdCBnaXZlIGFic29sdXRlIHBhdGhz IGR1ZSB0byBzYnVpbGQncyBiaW5kIG1vdW50cyAoYnVnICM1NzA4MDUpCisrIyB0aGVyZWZvcmUg dGhlIG5leHQgdHdvIHRlc3QgcHJvZ3JhbXMgYXJlIGV4cGVjdGVkIHRvIGZhaWwgd2l0aAorKyMg ImNhbm5vdCBhdHRhY2ggdG8gcHJvY2VzczogRnVuY3Rpb24gbm90IGltcGxlbWVudGVkIi4KKytb ICIkKHVuYW1lKSIgPSAiR05VL2tGcmVlQlNEIiBdICYmIGV4aXQgNzcKKysKKyBuYXRpdmVfdGVz dCAke2Fic19idWlsZGRpcn0vYWxscmVncworIG5hdGl2ZV90ZXN0ICR7YWJzX2J1aWxkZGlyfS9m dW5jcmV0dmFsCisgCmRpZmYgLS1naXQgYS9wYXRjaGVzL2VsZnV0aWxzLTAuMTc2L21pcHNfYmFj a2VuZC5kaWZmIGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9taXBzX2JhY2tlbmQuZGlmZgpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjI5YjcyYzQ5YQotLS0gL2Rldi9udWxs CisrKyBiL3BhdGNoZXMvZWxmdXRpbHMtMC4xNzYvbWlwc19iYWNrZW5kLmRpZmYKQEAgLTAsMCAr MSw2ODUgQEAKK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9taXBzX2luaXQuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIC9kZXYvbnVsbAorKysrIGVsZnV0aWxzLTAuMTc1L2JhY2tlbmRzL21pcHNf aW5pdC5jCitAQCAtMCwwICsxLDU5IEBACisrLyogSW5pdGlhbGl6YXRpb24gb2YgbWlwcyBzcGVj aWZpYyBiYWNrZW5kIGxpYnJhcnkuCisrICAgQ29weXJpZ2h0IChDKSAyMDA2IFJlZCBIYXQsIElu Yy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBSZWQgSGF0IGVsZnV0aWxzLgorKworKyAgIFJl ZCBIYXQgZWxmdXRpbHMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorKyAgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLgorKworKyAgIFJlZCBIYXQgZWxmdXRp bHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0 CisrICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisrICAgd2l0aCBSZWQgSGF0IGVsZnV0 aWxzOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrICAg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uIE1BIDAyMTEwLTEz MDEgVVNBLgorKworKyAgIFJlZCBIYXQgZWxmdXRpbHMgaXMgYW4gaW5jbHVkZWQgcGFja2FnZSBv ZiB0aGUgT3BlbiBJbnZlbnRpb24gTmV0d29yay4KKysgICBBbiBpbmNsdWRlZCBwYWNrYWdlIG9m IHRoZSBPcGVuIEludmVudGlvbiBOZXR3b3JrIGlzIGEgcGFja2FnZSBmb3Igd2hpY2gKKysgICBP cGVuIEludmVudGlvbiBOZXR3b3JrIGxpY2Vuc2VlcyBjcm9zcy1saWNlbnNlIHRoZWlyIHBhdGVu dHMuICBObyBwYXRlbnQKKysgICBsaWNlbnNlIGlzIGdyYW50ZWQsIGVpdGhlciBleHByZXNzbHkg b3IgaW1wbGllZGx5LCBieSBkZXNpZ25hdGlvbiBhcyBhbgorKyAgIGluY2x1ZGVkIHBhY2thZ2Uu ICBTaG91bGQgeW91IHdpc2ggdG8gcGFydGljaXBhdGUgaW4gdGhlIE9wZW4gSW52ZW50aW9uCisr ICAgTmV0d29yayBsaWNlbnNpbmcgcHJvZ3JhbSwgcGxlYXNlIHZpc2l0IHd3dy5vcGVuaW52ZW50 aW9ubmV0d29yay5jb20KKysgICA8aHR0cDovL3d3dy5vcGVuaW52ZW50aW9ubmV0d29yay5jb20+ LiAgKi8KKysKKysjaWZkZWYgSEFWRV9DT05GSUdfSAorKyMgaW5jbHVkZSA8Y29uZmlnLmg+Cisr I2VuZGlmCisrCisrI2RlZmluZSBCQUNLRU5ECQltaXBzXworKyNkZWZpbmUgUkVMT0NfUFJFRklY CVJfTUlQU18KKysjaW5jbHVkZSAibGliZWJsX0NQVS5oIgorKworKy8qIFRoaXMgZGVmaW5lcyB0 aGUgY29tbW9uIHJlbG9jIGhvb2tzIGJhc2VkIG9uIG1pcHNfcmVsb2MuZGVmLiAgKi8KKysjaW5j bHVkZSAiY29tbW9uLXJlbG9jLmMiCisrCisrY29uc3QgY2hhciAqCisrbWlwc19pbml0IChFbGYg KmVsZiBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCisrICAgICBHRWxmX0hhbGYgbWFjaGluZSBf X2F0dHJpYnV0ZV9fICgodW51c2VkKSksCisrICAgICBFYmwgKmVoLAorKyAgICAgc2l6ZV90IGVo bGVuKQorK3sKKysgIC8qIENoZWNrIHdoZXRoZXIgdGhlIEVsZl9CSCBvYmplY3QgaGFzIGEgc3Vm ZmljZW50IHNpemUuICAqLworKyAgaWYgKGVobGVuIDwgc2l6ZW9mIChFYmwpKQorKyAgICByZXR1 cm4gTlVMTDsKKysKKysgIC8qIFdlIGhhbmRsZSBpdC4gICovCisrICBpZiAobWFjaGluZSA9PSBF TV9NSVBTKQorKyAgICBlaC0+bmFtZSA9ICJNSVBTIFIzMDAwIGJpZy1lbmRpYW4iOworKyAgZWxz ZSBpZiAobWFjaGluZSA9PSBFTV9NSVBTX1JTM19MRSkKKysgICAgZWgtPm5hbWUgPSAiTUlQUyBS MzAwMCBsaXR0bGUtZW5kaWFuIjsKKysKKysgIG1pcHNfaW5pdF9yZWxvYyAoZWgpOworKyAgSE9P SyAoZWgsIHJlbG9jX3NpbXBsZV90eXBlKTsKKysgIEhPT0sgKGVoLCByZXR1cm5fdmFsdWVfbG9j YXRpb24pOworKyAgSE9PSyAoZWgsIHJlZ2lzdGVyX2luZm8pOworKworKyAgcmV0dXJuIE1PRFZF UlNJT047CisrfQorSW5kZXg6IGVsZnV0aWxzLTAuMTc1L2JhY2tlbmRzL21pcHNfcmVncy5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgZWxmdXRpbHMtMC4xNzUvYmFja2VuZHMvbWlw c19yZWdzLmMKK0BAIC0wLDAgKzEsMTA0IEBACisrLyogUmVnaXN0ZXIgbmFtZXMgYW5kIG51bWJl cnMgZm9yIE1JUFMgRFdBUkYuCisrICAgQ29weXJpZ2h0IChDKSAyMDA2IFJlZCBIYXQsIEluYy4K KysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBSZWQgSGF0IGVsZnV0aWxzLgorKworKyAgIFJlZCBI YXQgZWxmdXRpbHMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorKyAgIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLgorKworKyAgIFJlZCBIYXQgZWxmdXRpbHMg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cisr ICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisrICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisrICAgd2l0aCBSZWQgSGF0IGVsZnV0aWxz OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrICAgSW5j LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uIE1BIDAyMTEwLTEzMDEg VVNBLgorKworKyAgIFJlZCBIYXQgZWxmdXRpbHMgaXMgYW4gaW5jbHVkZWQgcGFja2FnZSBvZiB0 aGUgT3BlbiBJbnZlbnRpb24gTmV0d29yay4KKysgICBBbiBpbmNsdWRlZCBwYWNrYWdlIG9mIHRo ZSBPcGVuIEludmVudGlvbiBOZXR3b3JrIGlzIGEgcGFja2FnZSBmb3Igd2hpY2gKKysgICBPcGVu IEludmVudGlvbiBOZXR3b3JrIGxpY2Vuc2VlcyBjcm9zcy1saWNlbnNlIHRoZWlyIHBhdGVudHMu ICBObyBwYXRlbnQKKysgICBsaWNlbnNlIGlzIGdyYW50ZWQsIGVpdGhlciBleHByZXNzbHkgb3Ig aW1wbGllZGx5LCBieSBkZXNpZ25hdGlvbiBhcyBhbgorKyAgIGluY2x1ZGVkIHBhY2thZ2UuICBT aG91bGQgeW91IHdpc2ggdG8gcGFydGljaXBhdGUgaW4gdGhlIE9wZW4gSW52ZW50aW9uCisrICAg TmV0d29yayBsaWNlbnNpbmcgcHJvZ3JhbSwgcGxlYXNlIHZpc2l0IHd3dy5vcGVuaW52ZW50aW9u bmV0d29yay5jb20KKysgICA8aHR0cDovL3d3dy5vcGVuaW52ZW50aW9ubmV0d29yay5jb20+LiAg Ki8KKysKKysjaWZkZWYgSEFWRV9DT05GSUdfSAorKyMgaW5jbHVkZSA8Y29uZmlnLmg+CisrI2Vu ZGlmCisrCisrI2luY2x1ZGUgPHN0cmluZy5oPgorKyNpbmNsdWRlIDxkd2FyZi5oPgorKworKyNk ZWZpbmUgQkFDS0VORCBtaXBzXworKyNpbmNsdWRlICJsaWJlYmxfQ1BVLmgiCisrCisrc3NpemVf dAorK21pcHNfcmVnaXN0ZXJfaW5mbyAoRWJsICplYmwgX19hdHRyaWJ1dGVfXygodW51c2VkKSks CisrCQkgICAgaW50IHJlZ25vLCBjaGFyICpuYW1lLCBzaXplX3QgbmFtZWxlbiwKKysJCSAgICBj b25zdCBjaGFyICoqcHJlZml4LCBjb25zdCBjaGFyICoqc2V0bmFtZSwKKysJCSAgICBpbnQgKmJp dHMsIGludCAqdHlwZSkKKyt7CisrICBpZiAobmFtZSA9PSBOVUxMKQorKyAgICByZXR1cm4gNjY7 CisrCisrICBpZiAocmVnbm8gPCAwIHx8IHJlZ25vID4gNjUgfHwgbmFtZWxlbiA8IDQpCisrICAg IHJldHVybiAtMTsKKysKKysgICpwcmVmaXggPSAiJCI7CisrCisrICBpZiAocmVnbm8gPCAzMikK KysgICAgeworKyAgICAgICpzZXRuYW1lID0gImludGVnZXIiOworKyAgICAgICp0eXBlID0gRFdf QVRFX3NpZ25lZDsKKysgICAgICAqYml0cyA9IDMyOworKyAgICAgIGlmIChyZWdubyA8IDMyICsg MTApCisrICAgICAgICB7CisrICAgICAgICAgIG5hbWVbMF0gPSByZWdubyArICcwJzsKKysgICAg ICAgICAgbmFtZWxlbiA9IDE7CisrICAgICAgICB9CisrICAgICAgZWxzZQorKyAgICAgICAgewor KyAgICAgICAgICBuYW1lWzBdID0gKHJlZ25vIC8gMTApICsgJzAnOworKyAgICAgICAgICBuYW1l WzFdID0gKHJlZ25vICUgMTApICsgJzAnOworKyAgICAgICAgICBuYW1lbGVuID0gMjsKKysgICAg ICAgIH0KKysgICAgfQorKyAgZWxzZSBpZiAocmVnbm8gPCA2NCkKKysgICAgeworKyAgICAgICpz ZXRuYW1lID0gIkZQVSI7CisrICAgICAgKnR5cGUgPSBEV19BVEVfZmxvYXQ7CisrICAgICAgKmJp dHMgPSAzMjsKKysgICAgICBuYW1lWzBdID0gJ2YnOworKyAgICAgIGlmIChyZWdubyA8IDMyICsg MTApCisrCXsKKysJICBuYW1lWzFdID0gKHJlZ25vIC0gMzIpICsgJzAnOworKwkgIG5hbWVsZW4g PSAyOworKwl9CisrICAgICAgZWxzZQorKwl7CisrCSAgbmFtZVsxXSA9IChyZWdubyAtIDMyKSAv IDEwICsgJzAnOworKwkgIG5hbWVbMl0gPSAocmVnbm8gLSAzMikgJSAxMCArICcwJzsKKysJICBu YW1lbGVuID0gMzsKKysJfQorKyAgICB9CisrICBlbHNlIGlmIChyZWdubyA9PSA2NCkKKysgICAg eworKyAgICAgICp0eXBlID0gRFdfQVRFX3NpZ25lZDsKKysgICAgICAqYml0cyA9IDMyOworKyAg ICAgIG5hbWVbMF0gPSAnaCc7CisrICAgICAgbmFtZVsxXSA9ICdpJzsKKysgICAgICBuYW1lbGVu ID0gMjsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgKnR5cGUgPSBEV19BVEVfc2ln bmVkOworKyAgICAgICpiaXRzID0gMzI7CisrICAgICAgbmFtZVswXSA9ICdsJzsKKysgICAgICBu YW1lWzFdID0gJ28nOworKyAgICAgIG5hbWVsZW4gPSAyOworKyAgICB9CisrCisrICBuYW1lW25h bWVsZW4rK10gPSAnXDAnOworKyAgcmV0dXJuIG5hbWVsZW47CisrfQorSW5kZXg6IGVsZnV0aWxz LTAuMTc1L2JhY2tlbmRzL21pcHNfcmVsb2MuZGVmCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxs CisrKysgZWxmdXRpbHMtMC4xNzUvYmFja2VuZHMvbWlwc19yZWxvYy5kZWYKK0BAIC0wLDAgKzEs NzkgQEAKKysvKiBMaXN0IHRoZSByZWxvY2F0aW9uIHR5cGVzIGZvciBtaXBzLiAgLSotIEMgLSot CisrICAgQ29weXJpZ2h0IChDKSAyMDA2IFJlZCBIYXQsIEluYy4KKysgICBUaGlzIGZpbGUgaXMg cGFydCBvZiBSZWQgSGF0IGVsZnV0aWxzLgorKworKyAgIFJlZCBIYXQgZWxmdXRpbHMgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZQorKyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLgorKworKyAgIFJlZCBIYXQgZWxmdXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisrICAgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisrICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFsb25nCisrICAgd2l0aCBSZWQgSGF0IGVsZnV0aWxzOyBpZiBub3QsIHdyaXRlIHRv IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrICAgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uIE1BIDAyMTEwLTEzMDEgVVNBLgorKworKyAgIFJlZCBI YXQgZWxmdXRpbHMgaXMgYW4gaW5jbHVkZWQgcGFja2FnZSBvZiB0aGUgT3BlbiBJbnZlbnRpb24g TmV0d29yay4KKysgICBBbiBpbmNsdWRlZCBwYWNrYWdlIG9mIHRoZSBPcGVuIEludmVudGlvbiBO ZXR3b3JrIGlzIGEgcGFja2FnZSBmb3Igd2hpY2gKKysgICBPcGVuIEludmVudGlvbiBOZXR3b3Jr IGxpY2Vuc2VlcyBjcm9zcy1saWNlbnNlIHRoZWlyIHBhdGVudHMuICBObyBwYXRlbnQKKysgICBs aWNlbnNlIGlzIGdyYW50ZWQsIGVpdGhlciBleHByZXNzbHkgb3IgaW1wbGllZGx5LCBieSBkZXNp Z25hdGlvbiBhcyBhbgorKyAgIGluY2x1ZGVkIHBhY2thZ2UuICBTaG91bGQgeW91IHdpc2ggdG8g cGFydGljaXBhdGUgaW4gdGhlIE9wZW4gSW52ZW50aW9uCisrICAgTmV0d29yayBsaWNlbnNpbmcg cHJvZ3JhbSwgcGxlYXNlIHZpc2l0IHd3dy5vcGVuaW52ZW50aW9ubmV0d29yay5jb20KKysgICA8 aHR0cDovL3d3dy5vcGVuaW52ZW50aW9ubmV0d29yay5jb20+LiAgKi8KKysKKysvKiAJICAgIE5B TUUsCQlSRUx8RVhFQ3xEWU4JKi8KKysKKytSRUxPQ19UWVBFIChOT05FLCAgICAgICAgICAgICAg IDApCisrUkVMT0NfVFlQRSAoMTYsICAgICAgICAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKDMy LCAgICAgICAgICAgICAgICAgMCkKKytSRUxPQ19UWVBFIChSRUwzMiwgICAgICAgICAgICAgIDAp CisrUkVMT0NfVFlQRSAoMjYsICAgICAgICAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKEhJMTYs ICAgICAgICAgICAgICAgMCkKKytSRUxPQ19UWVBFIChMTzE2LCAgICAgICAgICAgICAgIDApCisr UkVMT0NfVFlQRSAoR1BSRUwxNiwgICAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKExJVEVSQUws ICAgICAgICAgICAgMCkKKytSRUxPQ19UWVBFIChHT1QxNiwgICAgICAgICAgICAgIDApCisrUkVM T0NfVFlQRSAoUEMxNiwgICAgICAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKENBTEwxNiwgICAg ICAgICAgICAgMCkKKytSRUxPQ19UWVBFIChHUFJFTDMyLCAgICAgICAgICAgIDApCisrCisrUkVM T0NfVFlQRSAoU0hJRlQ1LCAgICAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKFNISUZUNiwgICAg ICAgICAgICAgMCkKKytSRUxPQ19UWVBFICg2NCwgICAgICAgICAgICAgICAgIDApCisrUkVMT0Nf VFlQRSAoR09UX0RJU1AsICAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKEdPVF9QQUdFLCAgICAg ICAgICAgMCkKKytSRUxPQ19UWVBFIChHT1RfT0ZTVCwgICAgICAgICAgIDApCisrUkVMT0NfVFlQ RSAoR09UX0hJMTYsICAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKEdPVF9MTzE2LCAgICAgICAg ICAgMCkKKytSRUxPQ19UWVBFIChTVUIsICAgICAgICAgICAgICAgIDApCisrUkVMT0NfVFlQRSAo SU5TRVJUX0EsICAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKElOU0VSVF9CLCAgICAgICAgICAg MCkKKytSRUxPQ19UWVBFIChERUxFVEUsICAgICAgICAgICAgIDApCisrUkVMT0NfVFlQRSAoSElH SEVSLCAgICAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKEhJR0hFU1QsICAgICAgICAgICAgMCkK KytSRUxPQ19UWVBFIChDQUxMX0hJMTYsICAgICAgICAgIDApCisrUkVMT0NfVFlQRSAoQ0FMTF9M TzE2LCAgICAgICAgICAwKQorK1JFTE9DX1RZUEUgKFNDTl9ESVNQLCAgICAgICAgICAgMCkKKytS RUxPQ19UWVBFIChSRUwxNiwgICAgICAgICAgICAgIDApCisrUkVMT0NfVFlQRSAoQUREX0lNTUVE SUFURSwgICAgICAwKQorK1JFTE9DX1RZUEUgKFBKVU1QLCAgICAgICAgICAgICAgMCkKKytSRUxP Q19UWVBFIChSRUxHT1QsICAgICAgICAgICAgIDApCisrUkVMT0NfVFlQRSAoSkFMUiwgICAgICAg ICAgICAgICAwKQorK1JFTE9DX1RZUEUgKFRMU19EVFBNT0QzMiwgICAgICAgMCkKKytSRUxPQ19U WVBFIChUTFNfRFRQUkVMMzIsICAgICAgIDApCisrUkVMT0NfVFlQRSAoVExTX0RUUE1PRDY0LCAg ICAgICAwKQorK1JFTE9DX1RZUEUgKFRMU19EVFBSRUw2NCwgICAgICAgMCkKKytSRUxPQ19UWVBF IChUTFNfR0QsICAgICAgICAgICAgIDApCisrUkVMT0NfVFlQRSAoVExTX0xETSwgICAgICAgICAg ICAwKQorK1JFTE9DX1RZUEUgKFRMU19EVFBSRUxfSEkxNiwgICAgMCkKKytSRUxPQ19UWVBFIChU TFNfRFRQUkVMX0xPMTYsICAgIDApCisrUkVMT0NfVFlQRSAoVExTX0dPVFRQUkVMLCAgICAgICAw KQorK1JFTE9DX1RZUEUgKFRMU19UUFJFTDMyLCAgICAgICAgMCkKKytSRUxPQ19UWVBFIChUTFNf VFBSRUw2NCwgICAgICAgIDApCisrUkVMT0NfVFlQRSAoVExTX1RQUkVMX0hJMTYsICAgICAwKQor K1JFTE9DX1RZUEUgKFRMU19UUFJFTF9MTzE2LCAgICAgMCkKKysKKysjZGVmaW5lIE5PX0NPUFlf UkVMT0MgMQorKyNkZWZpbmUgTk9fUkVMQVRJVkVfUkVMT0MgMQorSW5kZXg6IGVsZnV0aWxzLTAu MTc1L2JhY2tlbmRzL21pcHNfcmV0dmFsLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwKKysr KyBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9taXBzX3JldHZhbC5jCitAQCAtMCwwICsxLDMyMSBA QAorKy8qIEZ1bmN0aW9uIHJldHVybiB2YWx1ZSBsb2NhdGlvbiBmb3IgTGludXgvbWlwcyBBQkku CisrICAgQ29weXJpZ2h0IChDKSAyMDA1IFJlZCBIYXQsIEluYy4KKysgICBUaGlzIGZpbGUgaXMg cGFydCBvZiBSZWQgSGF0IGVsZnV0aWxzLgorKworKyAgIFJlZCBIYXQgZWxmdXRpbHMgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZQorKyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLgorKworKyAgIFJlZCBIYXQgZWxmdXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisrICAgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisrICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFsb25nCisrICAgd2l0aCBSZWQgSGF0IGVsZnV0aWxzOyBpZiBub3QsIHdyaXRlIHRv IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrICAgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uIE1BIDAyMTEwLTEzMDEgVVNBLgorKworKyAgIFJlZCBI YXQgZWxmdXRpbHMgaXMgYW4gaW5jbHVkZWQgcGFja2FnZSBvZiB0aGUgT3BlbiBJbnZlbnRpb24g TmV0d29yay4KKysgICBBbiBpbmNsdWRlZCBwYWNrYWdlIG9mIHRoZSBPcGVuIEludmVudGlvbiBO ZXR3b3JrIGlzIGEgcGFja2FnZSBmb3Igd2hpY2gKKysgICBPcGVuIEludmVudGlvbiBOZXR3b3Jr IGxpY2Vuc2VlcyBjcm9zcy1saWNlbnNlIHRoZWlyIHBhdGVudHMuICBObyBwYXRlbnQKKysgICBs aWNlbnNlIGlzIGdyYW50ZWQsIGVpdGhlciBleHByZXNzbHkgb3IgaW1wbGllZGx5LCBieSBkZXNp Z25hdGlvbiBhcyBhbgorKyAgIGluY2x1ZGVkIHBhY2thZ2UuICBTaG91bGQgeW91IHdpc2ggdG8g cGFydGljaXBhdGUgaW4gdGhlIE9wZW4gSW52ZW50aW9uCisrICAgTmV0d29yayBsaWNlbnNpbmcg cHJvZ3JhbSwgcGxlYXNlIHZpc2l0IHd3dy5vcGVuaW52ZW50aW9ubmV0d29yay5jb20KKysgICA8 aHR0cDovL3d3dy5vcGVuaW52ZW50aW9ubmV0d29yay5jb20+LiAgKi8KKysKKysjaWZkZWYgSEFW RV9DT05GSUdfSAorKyMgaW5jbHVkZSA8Y29uZmlnLmg+CisrI2VuZGlmCisrCisrI2luY2x1ZGUg PHN0cmluZy5oPgorKyNpbmNsdWRlIDxhc3NlcnQuaD4KKysjaW5jbHVkZSA8ZHdhcmYuaD4KKysj aW5jbHVkZSA8ZWxmLmg+CisrCisrI2luY2x1ZGUgIi4uL2xpYmVibC9saWJlYmxQLmgiCisrI2lu Y2x1ZGUgIi4uL2xpYmR3L2xpYmR3UC5oIgorKworKyNkZWZpbmUgQkFDS0VORCBtaXBzXworKyNp bmNsdWRlICJsaWJlYmxfQ1BVLmgiCisrCisrLyogVGhlIEFCSSBvZiB0aGUgZmlsZS4gIEFsc28g c2VlIEVGX01JUFNfQUJJMiBhYm92ZS4gKi8KKysjZGVmaW5lIEVGX01JUFNfQUJJCQkweDAwMDBG MDAwCisrCisrLyogVGhlIG9yaWdpbmFsIG8zMiBhYmkuICovCisrI2RlZmluZSBFX01JUFNfQUJJ X08zMiAgICAgICAgICAweDAwMDAxMDAwCisrCisrLyogTzMyIGV4dGVuZGVkIHRvIHdvcmsgb24g NjQgYml0IGFyY2hpdGVjdHVyZXMgKi8KKysjZGVmaW5lIEVfTUlQU19BQklfTzY0ICAgICAgICAg IDB4MDAwMDIwMDAKKysKKysvKiBFQUJJIGluIDMyIGJpdCBtb2RlICovCisrI2RlZmluZSBFX01J UFNfQUJJX0VBQkkzMiAgICAgICAweDAwMDAzMDAwCisrCisrLyogRUFCSSBpbiA2NCBiaXQgbW9k ZSAqLworKyNkZWZpbmUgRV9NSVBTX0FCSV9FQUJJNjQgICAgICAgMHgwMDAwNDAwMAorKworKy8q IEFsbCB0aGUgcG9zc2libGUgTUlQUyBBQklzLiAqLworK2VudW0gbWlwc19hYmkKKysgIHsKKysg ICAgTUlQU19BQklfVU5LTk9XTiA9IDAsCisrICAgIE1JUFNfQUJJX04zMiwKKysgICAgTUlQU19B QklfTzMyLAorKyAgICBNSVBTX0FCSV9ONjQsCisrICAgIE1JUFNfQUJJX082NCwKKysgICAgTUlQ U19BQklfRUFCSTMyLAorKyAgICBNSVBTX0FCSV9FQUJJNjQsCisrICAgIE1JUFNfQUJJX0xBU1QK KysgIH07CisrCisrLyogRmluZCB0aGUgbWlwcyBBQkkgb2YgdGhlIGN1cnJlbnQgZmlsZSAqLwor K2VudW0gbWlwc19hYmkgZmluZF9taXBzX2FiaShFbGYgKmVsZikKKyt7CisrICBHRWxmX0VoZHIg ZWhkcl9tZW07CisrICBHRWxmX0VoZHIgKmVoZHIgPSBnZWxmX2dldGVoZHIgKGVsZiwgJmVoZHJf bWVtKTsKKysKKysgIGlmIChlaGRyID09IE5VTEwpCisrICAgIHJldHVybiBNSVBTX0FCSV9MQVNU OworKworKyAgR0VsZl9Xb3JkIGVsZl9mbGFncyA9IGVoZHItPmVfZmxhZ3M7CisrCisrICAvKiBD aGVjayBlbGZfZmxhZ3MgdG8gc2VlIGlmIGl0IHNwZWNpZmllcyB0aGUgQUJJIGJlaW5nIHVzZWQu ICAqLworKyAgc3dpdGNoICgoZWxmX2ZsYWdzICYgRUZfTUlQU19BQkkpKQorKyAgICB7CisrICAg IGNhc2UgRV9NSVBTX0FCSV9PMzI6CisrICAgICAgcmV0dXJuIE1JUFNfQUJJX08zMjsKKysgICAg Y2FzZSBFX01JUFNfQUJJX082NDoKKysgICAgICByZXR1cm4gTUlQU19BQklfTzY0OworKyAgICBj YXNlIEVfTUlQU19BQklfRUFCSTMyOgorKyAgICAgIHJldHVybiBNSVBTX0FCSV9FQUJJMzI7Cisr ICAgIGNhc2UgRV9NSVBTX0FCSV9FQUJJNjQ6CisrICAgICAgcmV0dXJuIE1JUFNfQUJJX0VBQkk2 NDsKKysgICAgZGVmYXVsdDoKKysgICAgICBpZiAoKGVsZl9mbGFncyAmIEVGX01JUFNfQUJJMikp CisrCXJldHVybiBNSVBTX0FCSV9OMzI7CisrICAgIH0KKysKKysgIC8qIEdDQyBjcmVhdGVzIGEg cHNldWRvLXNlY3Rpb24gd2hvc2UgbmFtZSBkZXNjcmliZXMgdGhlIEFCSS4gICovCisrICBzaXpl X3Qgc2hzdHJuZHg7CisrICBpZiAoZWxmX2dldHNoZHJzdHJuZHggKGVsZiwgJnNoc3RybmR4KSA8 IDApCisrICAgIHJldHVybiBNSVBTX0FCSV9MQVNUOworKworKyAgY29uc3QgY2hhciAqbmFtZTsK KysgIEVsZl9TY24gKnNjbiA9IE5VTEw7CisrICB3aGlsZSAoKHNjbiA9IGVsZl9uZXh0c2NuIChl bGYsIHNjbikpICE9IE5VTEwpCisrICAgIHsKKysgICAgICBHRWxmX1NoZHIgc2hkcl9tZW07Cisr ICAgICAgR0VsZl9TaGRyICpzaGRyID0gZ2VsZl9nZXRzaGRyIChzY24sICZzaGRyX21lbSk7Cisr ICAgICAgaWYgKHNoZHIgPT0gTlVMTCkKKysgICAgICAgIHJldHVybiBNSVBTX0FCSV9MQVNUOwor KworKyAgICAgIG5hbWUgPSBlbGZfc3RycHRyIChlbGYsIHNoc3RybmR4LCBzaGRyLT5zaF9uYW1l KSA/OiAiIjsKKysgICAgICBpZiAoc3RybmNtcCAobmFtZSwgIi5tZGVidWcuIiwgOCkgIT0gMCkK KysgICAgICAgIGNvbnRpbnVlOworKworKyAgICAgIGlmIChzdHJjbXAgKG5hbWUsICIubWRlYnVn LmFiaTMyIikgPT0gMCkKKysgICAgICAgIHJldHVybiBNSVBTX0FCSV9PMzI7CisrICAgICAgZWxz ZSBpZiAoc3RyY21wIChuYW1lLCAiLm1kZWJ1Zy5hYmlOMzIiKSA9PSAwKQorKyAgICAgICAgcmV0 dXJuIE1JUFNfQUJJX04zMjsKKysgICAgICBlbHNlIGlmIChzdHJjbXAgKG5hbWUsICIubWRlYnVn LmFiaTY0IikgPT0gMCkKKysgICAgICAgIHJldHVybiBNSVBTX0FCSV9ONjQ7CisrICAgICAgZWxz ZSBpZiAoc3RyY21wIChuYW1lLCAiLm1kZWJ1Zy5hYmlPNjQiKSA9PSAwKQorKyAgICAgICAgcmV0 dXJuIE1JUFNfQUJJX082NDsKKysgICAgICBlbHNlIGlmIChzdHJjbXAgKG5hbWUsICIubWRlYnVn LmVhYmkzMiIpID09IDApCisrICAgICAgICByZXR1cm4gTUlQU19BQklfRUFCSTMyOworKyAgICAg IGVsc2UgaWYgKHN0cmNtcCAobmFtZSwgIi5tZGVidWcuZWFiaTY0IikgPT0gMCkKKysgICAgICAg IHJldHVybiBNSVBTX0FCSV9FQUJJNjQ7CisrICAgICAgZWxzZQorKyAgICAgICAgcmV0dXJuIE1J UFNfQUJJX1VOS05PV047CisrICAgIH0KKysKKysgIHJldHVybiBNSVBTX0FCSV9VTktOT1dOOwor K30KKysKKyt1bnNpZ25lZCBpbnQKKyttaXBzX2FiaV9yZWdzaXplIChlbnVtIG1pcHNfYWJpIGFi aSkKKyt7CisrICBzd2l0Y2ggKGFiaSkKKysgICAgeworKyAgICBjYXNlIE1JUFNfQUJJX0VBQkkz MjoKKysgICAgY2FzZSBNSVBTX0FCSV9PMzI6CisrICAgICAgcmV0dXJuIDQ7CisrICAgIGNhc2Ug TUlQU19BQklfTjMyOgorKyAgICBjYXNlIE1JUFNfQUJJX042NDoKKysgICAgY2FzZSBNSVBTX0FC SV9PNjQ6CisrICAgIGNhc2UgTUlQU19BQklfRUFCSTY0OgorKyAgICAgIHJldHVybiA4OworKyAg ICBjYXNlIE1JUFNfQUJJX1VOS05PV046CisrICAgIGNhc2UgTUlQU19BQklfTEFTVDoKKysgICAg ZGVmYXVsdDoKKysgICAgICByZXR1cm4gMDsKKysgICAgfQorK30KKysKKysKKysvKiAkdjAgb3Ig cGFpciAkdjAsICR2MSAqLworK3N0YXRpYyBjb25zdCBEd2FyZl9PcCBsb2NfaW50cmVnX28zMltd ID0KKysgIHsKKysgICAgeyAuYXRvbSA9IERXX09QX3JlZzIgfSwgeyAuYXRvbSA9IERXX09QX3Bp ZWNlLCAubnVtYmVyID0gNCB9LAorKyAgICB7IC5hdG9tID0gRFdfT1BfcmVnMyB9LCB7IC5hdG9t ID0gRFdfT1BfcGllY2UsIC5udW1iZXIgPSA0IH0sCisrICB9OworKworK3N0YXRpYyBjb25zdCBE d2FyZl9PcCBsb2NfaW50cmVnW10gPQorKyAgeworKyAgICB7IC5hdG9tID0gRFdfT1BfcmVnMiB9 LCB7IC5hdG9tID0gRFdfT1BfcGllY2UsIC5udW1iZXIgPSA4IH0sCisrICAgIHsgLmF0b20gPSBE V19PUF9yZWczIH0sIHsgLmF0b20gPSBEV19PUF9waWVjZSwgLm51bWJlciA9IDggfSwKKysgIH07 CisrI2RlZmluZSBubG9jX2ludHJlZwkxCisrI2RlZmluZSBubG9jX2ludHJlZ3BhaXIJNAorKwor Ky8qICRmMCAoZmxvYXQpLCBvciBwYWlyICRmMCwgJGYxIChkb3VibGUpLgorKyAqIGYyL2YzIGFy ZSB1c2VkIGZvciBDT01QTEVYICg9IDIgZG91YmxlcykgcmV0dXJucyBpbiBGb3J0cmFuICovCisr c3RhdGljIGNvbnN0IER3YXJmX09wIGxvY19mcHJlZ19vMzJbXSA9CisrICB7CisrICAgIHsgLmF0 b20gPSBEV19PUF9yZWd4LCAubnVtYmVyID0gMzIgfSwgeyAuYXRvbSA9IERXX09QX3BpZWNlLCAu bnVtYmVyID0gNCB9LAorKyAgICB7IC5hdG9tID0gRFdfT1BfcmVneCwgLm51bWJlciA9IDMzIH0s IHsgLmF0b20gPSBEV19PUF9waWVjZSwgLm51bWJlciA9IDQgfSwKKysgICAgeyAuYXRvbSA9IERX X09QX3JlZ3gsIC5udW1iZXIgPSAzNCB9LCB7IC5hdG9tID0gRFdfT1BfcGllY2UsIC5udW1iZXIg PSA0IH0sCisrICAgIHsgLmF0b20gPSBEV19PUF9yZWd4LCAubnVtYmVyID0gMzUgfSwgeyAuYXRv bSA9IERXX09QX3BpZWNlLCAubnVtYmVyID0gNCB9LAorKyAgfTsKKysKKysvKiAkZjAsIG9yIHBh aXIgJGYwLCAkZjIuICAqLworK3N0YXRpYyBjb25zdCBEd2FyZl9PcCBsb2NfZnByZWdbXSA9Cisr ICB7CisrICAgIHsgLmF0b20gPSBEV19PUF9yZWd4LCAubnVtYmVyID0gMzIgfSwgeyAuYXRvbSA9 IERXX09QX3BpZWNlLCAubnVtYmVyID0gOCB9LAorKyAgICB7IC5hdG9tID0gRFdfT1BfcmVneCwg Lm51bWJlciA9IDM0IH0sIHsgLmF0b20gPSBEV19PUF9waWVjZSwgLm51bWJlciA9IDggfSwKKysg IH07CisrI2RlZmluZSBubG9jX2ZwcmVnICAxCisrI2RlZmluZSBubG9jX2ZwcmVncGFpciA0Cisr I2RlZmluZSBubG9jX2ZwcmVncXVhZCA4CisrCisrLyogVGhlIHJldHVybiB2YWx1ZSBpcyBhIHN0 cnVjdHVyZSBhbmQgaXMgYWN0dWFsbHkgc3RvcmVkIGluIHN0YWNrIHNwYWNlCisrICAgcGFzc2Vk IGluIGEgaGlkZGVuIGFyZ3VtZW50IGJ5IHRoZSBjYWxsZXIuICBCdXQsIHRoZSBjb21waWxlcgor KyAgIGhlbHBmdWxseSByZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoYXQgc3BhY2UgaW4gJHYwLiAg Ki8KKytzdGF0aWMgY29uc3QgRHdhcmZfT3AgbG9jX2FnZ3JlZ2F0ZVtdID0KKysgIHsKKysgICAg eyAuYXRvbSA9IERXX09QX2JyZWcyLCAubnVtYmVyID0gMCB9CisrICB9OworKyNkZWZpbmUgbmxv Y19hZ2dyZWdhdGUgMQorKworK2ludAorK21pcHNfcmV0dXJuX3ZhbHVlX2xvY2F0aW9uIChEd2Fy Zl9EaWUgKmZ1bmN0eXBlZGllLCBjb25zdCBEd2FyZl9PcCAqKmxvY3ApCisreworKyAgLyogRmly c3QgZmluZCB0aGUgQUJJIHVzZWQgYnkgdGhlIGVsZiBvYmplY3QgKi8KKysgIGVudW0gbWlwc19h YmkgYWJpID0gZmluZF9taXBzX2FiaShmdW5jdHlwZWRpZS0+Y3UtPmRiZy0+ZWxmKTsKKysKKysg IC8qIFNvbWV0aGluZyB3ZW50IHNlcmlvdXNseSB3cm9uZyB3aGlsZSB0cnlpbmcgdG8gZmlndXJl IG91dCB0aGUgQUJJICovCisrICBpZiAoYWJpID09IE1JUFNfQUJJX0xBU1QpCisrICAgIHJldHVy biAtMTsKKysKKysgIC8qIFdlIGNvdWxkbid0IGlkZW50aWZ5IHRoZSBBQkksIGJ1dCB0aGUgZmls ZSBzZWVtcyB2YWxpZCAqLworKyAgaWYgKGFiaSA9PSBNSVBTX0FCSV9VTktOT1dOKQorKyAgICBy ZXR1cm4gLTI7CisrCisrICAvKiBDYW4ndCBoYW5kbGUgRUFCSSB2YXJpYW50cyAqLworKyAgaWYg KChhYmkgPT0gTUlQU19BQklfRUFCSTMyKSB8fCAoYWJpID09IE1JUFNfQUJJX0VBQkk2NCkpCisr ICAgIHJldHVybiAtMjsKKysKKysgIHVuc2lnbmVkIGludCByZWdzaXplID0gbWlwc19hYmlfcmVn c2l6ZSAoYWJpKTsKKysgIGlmICghcmVnc2l6ZSkKKysgICAgcmV0dXJuIC0yOworKworKyAgLyog U3RhcnQgd2l0aCB0aGUgZnVuY3Rpb24ncyB0eXBlLCBhbmQgZ2V0IHRoZSBEV19BVF90eXBlIGF0 dHJpYnV0ZSwKKysgICAgIHdoaWNoIGlzIHRoZSB0eXBlIG9mIHRoZSByZXR1cm4gdmFsdWUuICAq LworKworKyAgRHdhcmZfQXR0cmlidXRlIGF0dHJfbWVtOworKyAgRHdhcmZfQXR0cmlidXRlICph dHRyID0gZHdhcmZfYXR0cl9pbnRlZ3JhdGUgKGZ1bmN0eXBlZGllLCBEV19BVF90eXBlLCAmYXR0 cl9tZW0pOworKyAgaWYgKGF0dHIgPT0gTlVMTCkKKysgICAgLyogVGhlIGZ1bmN0aW9uIGhhcyBu byByZXR1cm4gdmFsdWUsIGxpa2UgYSBgdm9pZCcgZnVuY3Rpb24gaW4gQy4gICovCisrICAgIHJl dHVybiAwOworKworKyAgRHdhcmZfRGllIGRpZV9tZW07CisrICBEd2FyZl9EaWUgKnR5cGVkaWUg PSBkd2FyZl9mb3JtcmVmX2RpZSAoYXR0ciwgJmRpZV9tZW0pOworKyAgaW50IHRhZyA9IGR3YXJm X3RhZyAodHlwZWRpZSk7CisrCisrICAvKiBGb2xsb3cgdHlwZWRlZnMgYW5kIHF1YWxpZmllcnMg dG8gZ2V0IHRvIHRoZSBhY3R1YWwgdHlwZS4gICovCisrICB3aGlsZSAodGFnID09IERXX1RBR190 eXBlZGVmCisrCSB8fCB0YWcgPT0gRFdfVEFHX2NvbnN0X3R5cGUgfHwgdGFnID09IERXX1RBR192 b2xhdGlsZV90eXBlCisrCSB8fCB0YWcgPT0gRFdfVEFHX3Jlc3RyaWN0X3R5cGUpCisrICAgIHsK KysgICAgICBhdHRyID0gZHdhcmZfYXR0cl9pbnRlZ3JhdGUgKHR5cGVkaWUsIERXX0FUX3R5cGUs ICZhdHRyX21lbSk7CisrICAgICAgdHlwZWRpZSA9IGR3YXJmX2Zvcm1yZWZfZGllIChhdHRyLCAm ZGllX21lbSk7CisrICAgICAgdGFnID0gZHdhcmZfdGFnICh0eXBlZGllKTsKKysgICAgfQorKwor KyAgc3dpdGNoICh0YWcpCisrICAgIHsKKysgICAgY2FzZSAtMToKKysgICAgICByZXR1cm4gLTE7 CisrCisrICAgIGNhc2UgRFdfVEFHX3N1YnJhbmdlX3R5cGU6CisrICAgICAgaWYgKCEgZHdhcmZf aGFzYXR0cl9pbnRlZ3JhdGUgKHR5cGVkaWUsIERXX0FUX2J5dGVfc2l6ZSkpCisrCXsKKysJICBh dHRyID0gZHdhcmZfYXR0cl9pbnRlZ3JhdGUgKHR5cGVkaWUsIERXX0FUX3R5cGUsICZhdHRyX21l bSk7CisrCSAgdHlwZWRpZSA9IGR3YXJmX2Zvcm1yZWZfZGllIChhdHRyLCAmZGllX21lbSk7Cisr CSAgdGFnID0gZHdhcmZfdGFnICh0eXBlZGllKTsKKysJfQorKyAgICAgIC8qIEZhbGwgdGhyb3Vn aC4gICovCisrCisrICAgIGNhc2UgRFdfVEFHX2Jhc2VfdHlwZToKKysgICAgY2FzZSBEV19UQUdf ZW51bWVyYXRpb25fdHlwZToKKysgICAgY2FzZSBEV19UQUdfcG9pbnRlcl90eXBlOgorKyAgICBj YXNlIERXX1RBR19wdHJfdG9fbWVtYmVyX3R5cGU6CisrICAgICAgeworKyAgICAgICAgRHdhcmZf V29yZCBzaXplOworKwlpZiAoZHdhcmZfZm9ybXVkYXRhIChkd2FyZl9hdHRyX2ludGVncmF0ZSAo dHlwZWRpZSwgRFdfQVRfYnl0ZV9zaXplLAorKwkJCQkJICZhdHRyX21lbSksICZzaXplKSAhPSAw KQorKwkgIHsKKysJICAgIGlmICh0YWcgPT0gRFdfVEFHX3BvaW50ZXJfdHlwZSB8fCB0YWcgPT0g RFdfVEFHX3B0cl90b19tZW1iZXJfdHlwZSkKKysJICAgICAgc2l6ZSA9IHJlZ3NpemU7CisrCSAg ICBlbHNlCisrCSAgICAgIHJldHVybiAtMTsKKysJICB9CisrCWlmICh0YWcgPT0gRFdfVEFHX2Jh c2VfdHlwZSkKKysJICB7CisrCSAgICBEd2FyZl9Xb3JkIGVuY29kaW5nOworKwkgICAgaWYgKGR3 YXJmX2Zvcm11ZGF0YSAoZHdhcmZfYXR0cl9pbnRlZ3JhdGUgKHR5cGVkaWUsIERXX0FUX2VuY29k aW5nLAorKwkJCQkJICAgICAmYXR0cl9tZW0pLCAmZW5jb2RpbmcpICE9IDApCisrCSAgICAgIHJl dHVybiAtMTsKKysKKysjZGVmaW5lIEFCSV9MT0MobG9jLCByZWdzaXplKSAoKHJlZ3NpemUpID09 IDQgPyAobG9jICMjIF9vMzIpIDogKGxvYykpCisrCisrCSAgICBpZiAoZW5jb2RpbmcgPT0gRFdf QVRFX2Zsb2F0KQorKwkgICAgICB7CisrCQkqbG9jcCA9IEFCSV9MT0MobG9jX2ZwcmVnLCByZWdz aXplKTsKKysJCWlmIChzaXplIDw9IHJlZ3NpemUpCisrCQkgICAgcmV0dXJuIG5sb2NfZnByZWc7 CisrCisrCQlpZiAoc2l6ZSA8PSAyKnJlZ3NpemUpCisrICAgICAgICAgICAgICAgICAgcmV0dXJu IG5sb2NfZnByZWdwYWlyOworKworKwkJaWYgKHNpemUgPD0gNCpyZWdzaXplICYmIGFiaSA9PSBN SVBTX0FCSV9PMzIpCisrICAgICAgICAgICAgICAgICAgcmV0dXJuIG5sb2NfZnByZWdxdWFkOwor KworKwkJZ290byBhZ2dyZWdhdGU7CisrCSAgICAgIH0KKysJICB9CisrCSpsb2NwID0gQUJJX0xP Qyhsb2NfaW50cmVnLCByZWdzaXplKTsKKysJaWYgKHNpemUgPD0gcmVnc2l6ZSkKKysJICByZXR1 cm4gbmxvY19pbnRyZWc7CisrCWlmIChzaXplIDw9IDIqcmVnc2l6ZSkKKysJICByZXR1cm4gbmxv Y19pbnRyZWdwYWlyOworKworKwkvKiBFbHNlIGZhbGwgdGhyb3VnaC4gU2hvdWxkbid0IGhhcHBl biB0aG91Z2ggKGF0IGxlYXN0IHdpdGggZ2NjKSAqLworKyAgICAgIH0KKysKKysgICAgY2FzZSBE V19UQUdfc3RydWN0dXJlX3R5cGU6CisrICAgIGNhc2UgRFdfVEFHX2NsYXNzX3R5cGU6CisrICAg IGNhc2UgRFdfVEFHX3VuaW9uX3R5cGU6CisrICAgIGNhc2UgRFdfVEFHX2FycmF5X3R5cGU6Cisr ICAgIGFnZ3JlZ2F0ZToKKysgICAgICAvKiBYWFggVE9ETzogQ2FuJ3QgaGFuZGxlIHN0cnVjdHVy ZSByZXR1cm4gd2l0aCBvdGhlciBBQkkncyB5ZXQgOi0vICovCisrICAgICAgaWYgKChhYmkgIT0g TUlQU19BQklfTzMyKSAmJiAoYWJpICE9IE1JUFNfQUJJX082NCkpCisrICAgICAgICByZXR1cm4g LTI7CisrCisrICAgICAgKmxvY3AgPSBsb2NfYWdncmVnYXRlOworKyAgICAgIHJldHVybiBubG9j X2FnZ3JlZ2F0ZTsKKysgICAgfQorKworKyAgLyogWFhYIFdlIGRvbid0IGhhdmUgYSBnb29kIHdh eSB0byByZXR1cm4gc3BlY2lmaWMgZXJyb3JzIGZyb20gZWJsIGNhbGxzLgorKyAgICAgVGhpcyB2 YWx1ZSBtZWFucyB3ZSBkbyBub3QgdW5kZXJzdGFuZCB0aGUgdHlwZSwgYnV0IGl0IGlzIHdlbGwt Zm9ybWVkCisrICAgICBEV0FSRiBhbmQgbWlnaHQgYmUgdmFsaWQuICAqLworKyAgcmV0dXJuIC0y OworK30KK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9taXBzX3N5bWJvbC5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gL2Rldi9udWxsCisrKysgZWxmdXRpbHMtMC4xNzUvYmFja2VuZHMvbWlwc19z eW1ib2wuYworQEAgLTAsMCArMSw1MyBAQAorKy8qIE1JUFMgc3BlY2lmaWMgc3ltYm9saWMgbmFt ZSBoYW5kbGluZy4KKysgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUgUmVkIEhhdCwg SW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFJlZCBIYXQgZWxmdXRpbHMuCisrICAgV3Jp dHRlbiBieSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiwgMjAwMi4KKysKKysgICBS ZWQgSGF0IGVsZnV0aWxzIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKysgICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKysKKysgICBSZWQgSGF0IGVsZnV0 aWxzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1 dAorKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworKyAgIHdpdGggUmVkIEhhdCBlbGZ1 dGlsczsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyAg IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiBNQSAwMjExMC0x MzAxIFVTQS4KKysKKysgICBSZWQgSGF0IGVsZnV0aWxzIGlzIGFuIGluY2x1ZGVkIHBhY2thZ2Ug b2YgdGhlIE9wZW4gSW52ZW50aW9uIE5ldHdvcmsuCisrICAgQW4gaW5jbHVkZWQgcGFja2FnZSBv ZiB0aGUgT3BlbiBJbnZlbnRpb24gTmV0d29yayBpcyBhIHBhY2thZ2UgZm9yIHdoaWNoCisrICAg T3BlbiBJbnZlbnRpb24gTmV0d29yayBsaWNlbnNlZXMgY3Jvc3MtbGljZW5zZSB0aGVpciBwYXRl bnRzLiAgTm8gcGF0ZW50CisrICAgbGljZW5zZSBpcyBncmFudGVkLCBlaXRoZXIgZXhwcmVzc2x5 IG9yIGltcGxpZWRseSwgYnkgZGVzaWduYXRpb24gYXMgYW4KKysgICBpbmNsdWRlZCBwYWNrYWdl LiAgU2hvdWxkIHlvdSB3aXNoIHRvIHBhcnRpY2lwYXRlIGluIHRoZSBPcGVuIEludmVudGlvbgor KyAgIE5ldHdvcmsgbGljZW5zaW5nIHByb2dyYW0sIHBsZWFzZSB2aXNpdCB3d3cub3BlbmludmVu dGlvbm5ldHdvcmsuY29tCisrICAgPGh0dHA6Ly93d3cub3BlbmludmVudGlvbm5ldHdvcmsuY29t Pi4gICovCisrCisrI2lmZGVmIEhBVkVfQ09ORklHX0gKKysjIGluY2x1ZGUgPGNvbmZpZy5oPgor KyNlbmRpZgorKworKyNpbmNsdWRlIDxlbGYuaD4KKysjaW5jbHVkZSA8c3RkZGVmLmg+CisrCisr I2RlZmluZSBCQUNLRU5ECQltaXBzXworKyNpbmNsdWRlICJsaWJlYmxfQ1BVLmgiCisrCisrLyog Q2hlY2sgZm9yIHRoZSBzaW1wbGUgcmVsb2MgdHlwZXMuICAqLworK0VsZl9UeXBlCisrbWlwc19y ZWxvY19zaW1wbGVfdHlwZSAoRWJsICplYmwgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBpbnQg dHlwZSwKKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmFkZHN1YiBfX2F0dHJpYnV0ZV9f ICgodW51c2VkKSkpCisreworKyAgc3dpdGNoICh0eXBlKQorKyAgICB7CisrICAgIGNhc2UgUl9N SVBTXzE2OgorKyAgICAgIHJldHVybiBFTEZfVF9IQUxGOworKyAgICBjYXNlIFJfTUlQU18zMjoK KysgICAgICByZXR1cm4gRUxGX1RfV09SRDsKKysgICAgY2FzZSBSX01JUFNfNjQ6CisrICAgICAg cmV0dXJuIEVMRl9UX1hXT1JEOworKyAgICBkZWZhdWx0OgorKyAgICAgIHJldHVybiBFTEZfVF9O VU07CisrICAgIH0KKyt9CitJbmRleDogZWxmdXRpbHMtMC4xNzUvbGliZWJsL2VibG9wZW5iYWNr ZW5kLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0wLjE3NS5vcmlnL2xpYmVibC9lYmxvcGVu YmFja2VuZC5jCisrKysgZWxmdXRpbHMtMC4xNzUvbGliZWJsL2VibG9wZW5iYWNrZW5kLmMKK0BA IC03MSw2ICs3MSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QKKyAgIHsgInNwYXJjIiwgImVsZl9z cGFyYyIsICJzcGFyYyIsIDUsIEVNX1NQQVJDLCAwLCAwIH0sCisgICB7ICJzcGFyYyIsICJlbGZf c3BhcmN2OHBsdXMiLCAic3BhcmMiLCA1LCBFTV9TUEFSQzMyUExVUywgMCwgMCB9LAorICAgeyAi czM5MCIsICJlYmxfczM5MCIsICJzMzkwIiwgNCwgRU1fUzM5MCwgMCwgMCB9LAorKyAgeyAibWlw cyIsICJlbGZfbWlwcyIsICJtaXBzIiwgNCwgRU1fTUlQUywgMCwgMCB9LAorKyAgeyAibWlwcyIs ICJlbGZfbWlwc2VsIiwgIm1pcHNlbCIsIDQsIEVNX01JUFNfUlMzX0xFLCAwLCAwIH0sCisgCisg ICB7ICJtMzIiLCAiZWxmX20zMiIsICJtMzIiLCAzLCBFTV9NMzIsIDAsIDAgfSwKKyAgIHsgIm02 OGsiLCAiZWxmX202OGsiLCAibTY4ayIsIDQsIEVNXzY4SywgRUxGQ0xBU1MzMiwgRUxGREFUQTJN U0IgfSwKK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9NYWtlZmlsZS5hbQorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGVsZnV0aWxzLTAuMTc1Lm9yaWcvYmFja2VuZHMvTWFrZWZpbGUuYW0KKysrKyBl bGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9NYWtlZmlsZS5hbQorQEAgLTMzLDEzICszMywxMyBAQCBB TV9DUFBGTEFHUyArPSAtSSQodG9wX3NyY2RpcikvbGliZWJsIC1JCisgCisgCisgbW9kdWxlcyA9 IGkzODYgc2ggeDg2XzY0IGlhNjQgYWxwaGEgYXJtIGFhcmNoNjQgc3BhcmMgcHBjIHBwYzY0IHMz OTAgXAorLQkgIHRpbGVneCBtNjhrIGJwZiByaXNjdiBwYXJpc2MKKysJICB0aWxlZ3ggbTY4ayBi cGYgcmlzY3YgcGFyaXNjIG1pcHMKKyBsaWJlYmxfcGljID0gbGliZWJsX2kzODZfcGljLmEgbGli ZWJsX3NoX3BpYy5hIGxpYmVibF94ODZfNjRfcGljLmEgICAgXAorIAkgICAgIGxpYmVibF9pYTY0 X3BpYy5hIGxpYmVibF9hbHBoYV9waWMuYSBsaWJlYmxfYXJtX3BpYy5hICAgIFwKKyAJICAgICBs aWJlYmxfYWFyY2g2NF9waWMuYSBsaWJlYmxfc3BhcmNfcGljLmEgbGliZWJsX3BwY19waWMuYSBc CisgCSAgICAgbGliZWJsX3BwYzY0X3BpYy5hIGxpYmVibF9zMzkwX3BpYy5hIGxpYmVibF90aWxl Z3hfcGljLmEgXAorIAkgICAgIGxpYmVibF9tNjhrX3BpYy5hIGxpYmVibF9icGZfcGljLmEgbGli ZWJsX3Jpc2N2X3BpYy5hIFwKKy0JICAgICBsaWJlYmxfcGFyaXNjX3BpYy5hCisrCSAgICAgbGli ZWJsX3BhcmlzY19waWMuYSBsaWJlYmxfbWlwc19waWMuYQorIG5vaW5zdF9MSUJSQVJJRVMgPSAk KGxpYmVibF9waWMpCisgbm9pbnN0X0RBVEEgPSAkKGxpYmVibF9waWM6X3BpYy5hPS5zbykKKyAK K0BAIC0xNDEsNiArMTQxLDEwIEBAIHBhcmlzY19TUkNTID0gcGFyaXNjX2luaXQuYyBwYXJpc2Nf c3ltYm8KKyBsaWJlYmxfcGFyaXNjX3BpY19hX1NPVVJDRVMgPSAkKHBhcmlzY19TUkNTKQorIGFt X2xpYmVibF9wYXJpc2NfcGljX2FfT0JKRUNUUyA9ICQocGFyaXNjX1NSQ1M6LmM9Lm9zKQorIAor K21pcHNfU1JDUyA9IG1pcHNfaW5pdC5jIG1pcHNfc3ltYm9sLmMgbWlwc19yZWdzLmMgbWlwc19y ZXR2YWwuYworK2xpYmVibF9taXBzX3BpY19hX1NPVVJDRVMgPSAkKG1pcHNfU1JDUykKKythbV9s aWJlYmxfbWlwc19waWNfYV9PQkpFQ1RTID0gJChtaXBzX1NSQ1M6LmM9Lm9zKQorKworIGxpYmVi bF8lLnNvIGxpYmVibF8lLm1hcDogbGliZWJsXyVfcGljLmEgJChsaWJlbGYpICQobGliZHcpICQo bGliZXUpCisgCUBybSAtZiAkKEA6LnNvPS5tYXApCisgCSQoQU1fVl9hdCllY2hvICdFTEZVVElM U18kKFBBQ0tBR0VfVkVSU0lPTikgeyBnbG9iYWw6ICQqX2luaXQ7IGxvY2FsOiAqOyB9OycgXApk aWZmIC0tZ2l0IGEvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9taXBzX2NmaS5wYXRjaCBiL3BhdGNo ZXMvZWxmdXRpbHMtMC4xNzYvbWlwc19jZmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi44ZGFkYTUyYzQKLS0tIC9kZXYvbnVsbAorKysgYi9wYXRjaGVzL2VsZnV0 aWxzLTAuMTc2L21pcHNfY2ZpLnBhdGNoCkBAIC0wLDAgKzEsMTE0IEBACitEZXNjcmlwdGlvbjog QWRkIE1JUFMgQUJJIENGSSBjYWxsYmFjaworQXV0aG9yOiBLdXJ0IFJvZWNreCA8a3VydEByb2Vj a3guYmU+CitMYXN0LVVwZGF0ZTogMjAxOC0xMi0zMAorCitJbmRleDogZWxmdXRpbHMtMC4xNzUv YmFja2VuZHMvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0wLjE3NS5vcmln L2JhY2tlbmRzL01ha2VmaWxlLmFtCisrKysgZWxmdXRpbHMtMC4xNzUvYmFja2VuZHMvTWFrZWZp bGUuYW0KK0BAIC0xNDEsNyArMTQxLDcgQEAgcGFyaXNjX1NSQ1MgPSBwYXJpc2NfaW5pdC5jIHBh cmlzY19zeW1ibworIGxpYmVibF9wYXJpc2NfcGljX2FfU09VUkNFUyA9ICQocGFyaXNjX1NSQ1Mp CisgYW1fbGliZWJsX3BhcmlzY19waWNfYV9PQkpFQ1RTID0gJChwYXJpc2NfU1JDUzouYz0ub3Mp CisgCistbWlwc19TUkNTID0gbWlwc19pbml0LmMgbWlwc19zeW1ib2wuYyBtaXBzX3JlZ3MuYyBt aXBzX3JldHZhbC5jCisrbWlwc19TUkNTID0gbWlwc19pbml0LmMgbWlwc19zeW1ib2wuYyBtaXBz X3JlZ3MuYyBtaXBzX3JldHZhbC5jIG1pcHNfY2ZpLmMKKyBsaWJlYmxfbWlwc19waWNfYV9TT1VS Q0VTID0gJChtaXBzX1NSQ1MpCisgYW1fbGliZWJsX21pcHNfcGljX2FfT0JKRUNUUyA9ICQobWlw c19TUkNTOi5jPS5vcykKKyAKK0luZGV4OiBlbGZ1dGlscy0wLjE3NS9iYWNrZW5kcy9taXBzX2Nm aS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgZWxmdXRpbHMtMC4xNzUvYmFja2Vu ZHMvbWlwc19jZmkuYworQEAgLTAsMCArMSw4MCBAQAorKy8qIE1JUFMgQUJJLXNwZWNpZmllZCBk ZWZhdWx0cyBmb3IgRFdBUkYgQ0ZJLgorKyAgIENvcHlyaWdodCAoQykgMjAxOCBLdXJ0IFJvZWNr eCwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorKworKyAgIFRoaXMg ZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIGVpdGhlcgorKworKyAgICAgKiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQor KyAgICAgICBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvciAoYXQKKysgICAgICAgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uCisrCisr ICAgb3IKKysKKysgICAgICogdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZQorKyAgICAgICBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKKysgICAgICAgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uCisrCisrICAgb3IgYm90aCBpbiBwYXJhbGxlbCwgYXMgaGVyZS4KKysKKysg ICBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLCBidXQKKysgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGNvcGll cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCisrICAgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmCisr ICAgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWZk ZWYgSEFWRV9DT05GSUdfSAorKyMgaW5jbHVkZSA8Y29uZmlnLmg+CisrI2VuZGlmCisrCisrI2lu Y2x1ZGUgPGR3YXJmLmg+CisrCisrI2RlZmluZSBCQUNLRU5EIG1pcHNfCisrI2luY2x1ZGUgImxp YmVibF9DUFUuaCIKKysKKytpbnQKKyttaXBzX2FiaV9jZmkgKEVibCAqZWJsIF9fYXR0cmlidXRl X18gKCh1bnVzZWQpKSwgRHdhcmZfQ0lFICphYmlfaW5mbykKKyt7CisrICBzdGF0aWMgY29uc3Qg dWludDhfdCBhYmlfY2ZpW10gPQorKyAgICB7CisrICAgICAgLyogQ2FsbC1zYXZlZCByZWdzLiAg Ki8KKysgICAgICBEV19DRkFfc2FtZV92YWx1ZSwgVUxFQjEyOF83ICgxNiksIC8qICQxNiAqLwor KyAgICAgIERXX0NGQV9zYW1lX3ZhbHVlLCBVTEVCMTI4XzcgKDE3KSwgLyogJDE3ICovCisrICAg ICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoMTgpLCAvKiAkMTggKi8KKysgICAgICBE V19DRkFfc2FtZV92YWx1ZSwgVUxFQjEyOF83ICgxOSksIC8qICQxOSAqLworKyAgICAgIERXX0NG QV9zYW1lX3ZhbHVlLCBVTEVCMTI4XzcgKDIwKSwgLyogJDIwICovCisrICAgICAgRFdfQ0ZBX3Nh bWVfdmFsdWUsIFVMRUIxMjhfNyAoMjEpLCAvKiAkMjEgKi8KKysgICAgICBEV19DRkFfc2FtZV92 YWx1ZSwgVUxFQjEyOF83ICgyMiksIC8qICQyMiAqLworKyAgICAgIERXX0NGQV9zYW1lX3ZhbHVl LCBVTEVCMTI4XzcgKDIzKSwgLyogJDIzICovCisrICAgICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVM RUIxMjhfNyAoMjgpLCAvKiAkMjggKi8KKysgICAgICBEV19DRkFfc2FtZV92YWx1ZSwgVUxFQjEy OF83ICgyOSksIC8qICQyOSAqLworKyAgICAgIERXX0NGQV9zYW1lX3ZhbHVlLCBVTEVCMTI4Xzcg KDMwKSwgLyogJDMwICovCisrCisrICAgICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAo NTIpLCAvKiAkZjIwICovCisrICAgICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNTMp LCAvKiAkZjIxICovCisrICAgICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNTQpLCAv KiAkZjIyICovCisrICAgICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNTUpLCAvKiAk ZjIzICovCisrICAgICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNTYpLCAvKiAkZjI0 ICovCisrICAgICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNTcpLCAvKiAkZjI1ICov CisrICAgICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNTgpLCAvKiAkZjI2ICovCisr ICAgICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNTkpLCAvKiAkZjI3ICovCisrICAg ICAgRFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNjApLCAvKiAkZjI4ICovCisrICAgICAg RFdfQ0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNjEpLCAvKiAkZjI5ICovCisrICAgICAgRFdf Q0ZBX3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNjIpLCAvKiAkZjMwICovCisrICAgICAgRFdfQ0ZB X3NhbWVfdmFsdWUsIFVMRUIxMjhfNyAoNjMpLCAvKiAkZjMxICovCisrCisrICAgICAgLyogVGhl IENGQSBpcyB0aGUgU1AuICAqLworKyAgICAgIERXX0NGQV9kZWZfY2ZhLCBVTEVCMTI4XzcgKDI5 KSwgVUxFQjEyOF83ICgwKSwKKysgICAgfTsKKysKKysgIGFiaV9pbmZvLT5pbml0aWFsX2luc3Ry dWN0aW9ucyA9IGFiaV9jZmk7CisrICBhYmlfaW5mby0+aW5pdGlhbF9pbnN0cnVjdGlvbnNfZW5k ID0gJmFiaV9jZmlbc2l6ZW9mIGFiaV9jZmldOworKyAgYWJpX2luZm8tPmRhdGFfYWxpZ25tZW50 X2ZhY3RvciA9IDQ7CisrCisrICBhYmlfaW5mby0+cmV0dXJuX2FkZHJlc3NfcmVnaXN0ZXIgPSAz MTsgLyogJDMxICovCisrCisrICByZXR1cm4gMDsKKyt9CitJbmRleDogZWxmdXRpbHMtMC4xNzUv YmFja2VuZHMvbWlwc19pbml0LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0wLjE3NS5vcmln L2JhY2tlbmRzL21pcHNfaW5pdC5jCisrKysgZWxmdXRpbHMtMC4xNzUvYmFja2VuZHMvbWlwc19p bml0LmMKK0BAIC01MCw2ICs1MCw3IEBAIG1pcHNfaW5pdCAoRWxmICplbGYgX19hdHRyaWJ1dGVf XyAoKHVudXMKKyAgIEhPT0sgKGVoLCByZWxvY19zaW1wbGVfdHlwZSk7CisgICBIT09LIChlaCwg cmV0dXJuX3ZhbHVlX2xvY2F0aW9uKTsKKyAgIEhPT0sgKGVoLCByZWdpc3Rlcl9pbmZvKTsKKysg IEhPT0sgKGVoLCBhYmlfY2ZpKTsKKyAKKyAgIHJldHVybiBNT0RWRVJTSU9OOworIH0KZGlmZiAt LWdpdCBhL3BhdGNoZXMvZWxmdXRpbHMtMC4xNzYvbWlwc19yZWFkZWxmX3cucGF0Y2ggYi9wYXRj aGVzL2VsZnV0aWxzLTAuMTc2L21pcHNfcmVhZGVsZl93LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uYzg4ODAzNzQwCi0tLSAvZGV2L251bGwKKysrIGIvcGF0Y2hl cy9lbGZ1dGlscy0wLjE3Ni9taXBzX3JlYWRlbGZfdy5wYXRjaApAQCAtMCwwICsxLDIyIEBACitG cm9tOiBLdXJ0IFJvZWNreCA8a3VydEByb2Vja3guYmU+CitTdWJqZWN0OiBNYWtlIHJlYWRlbGYg LXcgb3V0cHV0IGRlYnVnIGluZm9ybWF0aW9uIG9uIG1pcHMKK0J1Zy1EZWJpYW46IGh0dHA6Ly9i dWdzLmRlYmlhbi5vcmcvNjYyMDQxCitGb3J3YXJkZWQ6IG5vdC1uZWVkZWQKKworVXBzdHJlYW1z IHdhbnRzIGEgY2hhbmdlIHdoZXJlIHRoaXMgaXMgaGFuZGxlZCBieSBhIGhvb2sgdGhhdCBuZWVk cwordG8gYmUgZmlsbGVkIGluIGJ5IHRoZSBiYWNrZW5kIGZvciB0aGUgYXJjaC4KKworSW5kZXg6 IGVsZnV0aWxzLTAuMTc1L3NyYy9yZWFkZWxmLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBlbGZ1dGlscy0w LjE3NS5vcmlnL3NyYy9yZWFkZWxmLmMKKysrKyBlbGZ1dGlscy0wLjE3NS9zcmMvcmVhZGVsZi5j CitAQCAtMTExMzMsNyArMTExMzMsOCBAQCBwcmludF9kZWJ1ZyAoRHdmbF9Nb2R1bGUgKmR3Zmxt b2QsIEVibCAqCisgICAgICAgR0VsZl9TaGRyIHNoZHJfbWVtOworICAgICAgIEdFbGZfU2hkciAq c2hkciA9IGdlbGZfZ2V0c2hkciAoc2NuLCAmc2hkcl9tZW0pOworIAorLSAgICAgIGlmIChzaGRy ICE9IE5VTEwgJiYgc2hkci0+c2hfdHlwZSA9PSBTSFRfUFJPR0JJVFMpCisrICAgICAgaWYgKHNo ZHIgIT0gTlVMTCAmJiAoCisrCSAoc2hkci0+c2hfdHlwZSA9PSBTSFRfUFJPR0JJVFMpIHx8IChz aGRyLT5zaF90eXBlID09IFNIVF9NSVBTX0RXQVJGKSkpCisgCXsKKyAJICBzdGF0aWMgY29uc3Qg c3RydWN0CisgCSAgewpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni9zZXJpZXMg Yi9wYXRjaGVzL2VsZnV0aWxzLTAuMTc2L3NlcmllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAuLjBhNDMyNzgwOQotLS0gL2Rldi9udWxsCisrKyBiL3BhdGNoZXMvZWxmdXRp bHMtMC4xNzYvc2VyaWVzCkBAIC0wLDAgKzEsMTMgQEAKK2hwcGFfYmFja2VuZC5kaWZmCithcm1f YmFja2VuZC5kaWZmCittaXBzX2JhY2tlbmQuZGlmZgordGVzdHN1aXRlLWlnbm9yZS1lbGZsaW50 LmRpZmYKK21pcHNfcmVhZGVsZl93LnBhdGNoCitrZnJlZWJzZF9wYXRoLnBhdGNoCiswMDAxLUln bm9yZS1kaWZmZXJlbmNlcy1iZXR3ZWVuLW1pcHMtbWFjaGluZS1pZGVudGlmaWVycy5wYXRjaAor MDAwMi1BZGQtc3VwcG9ydC1mb3ItbWlwczY0LWFiaXMtaW4tbWlwc19yZXR2YWwuYy5wYXRjaAor MDAwMy1BZGQtbWlwcy1uNjQtcmVsb2NhdGlvbi1mb3JtYXQtaGFjay5wYXRjaAoraHVyZF9wYXRo LnBhdGNoCitpZ25vcmVfc3RybWVyZ2UuZGlmZgorZGlzYWJsZV93ZXJyb3IucGF0Y2gKK21pcHNf Y2ZpLnBhdGNoCmRpZmYgLS1naXQgYS9wYXRjaGVzL2VsZnV0aWxzLTAuMTc2L3Rlc3RzdWl0ZS1p Z25vcmUtZWxmbGludC5kaWZmIGIvcGF0Y2hlcy9lbGZ1dGlscy0wLjE3Ni90ZXN0c3VpdGUtaWdu b3JlLWVsZmxpbnQuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjJm Yjc0ZmVlZQotLS0gL2Rldi9udWxsCisrKyBiL3BhdGNoZXMvZWxmdXRpbHMtMC4xNzYvdGVzdHN1 aXRlLWlnbm9yZS1lbGZsaW50LmRpZmYKQEAgLTAsMCArMSw0MCBAQAorT24gbWFueSBhcmNoaXRl Y3R1cmVzIHRoaXMgdGVzdCBmYWlscyBiZWNhdXNlIGJpbmFyaWVzL2xpYnMgcHJvZHVjZWQgYnkK K2JpbnV0aWxzIGRvbid0IHBhc3MgZWxmbGludC4gSG93ZXZlciBlbGZ1dGlscyBzaG91bGRuJ3Qg RlRCRlMgYmVjYXVzZSBvZiB0aGlzLgorCitTbyB3ZSBydW4gdGhlIHRlc3RzIG9uIGFsbCBhcmNo cyB0byBzZWUgd2hhdCBicmVha3MsIGJ1dCBpZiBpdCBicmVha3Mgd2UgaWdub3JlCit0aGUgcmVz dWx0IChleGl0Y29kZSA3NyBtZWFuczogdGhpcyB0ZXN0IHdhcyBza2lwcGVkKS4KKworSW5kZXg6 IGIvdGVzdHMvcnVuLWVsZmxpbnQtc2VsZi5zaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGEvdGVzdHMvcnVu LWVsZmxpbnQtc2VsZi5zaAorKysrIGIvdGVzdHMvcnVuLWVsZmxpbnQtc2VsZi5zaAorQEAgLTE4 LDUgKzE4LDUgQEAKKyAKKyAuICRzcmNkaXIvdGVzdC1zdWJyLnNoCisgCistdGVzdHJ1bl9vbl9z ZWxmICR7YWJzX3RvcF9idWlsZGRpcn0vc3JjL2VsZmxpbnQgLS1xdWlldCAtLWdudS1sZAorK3Rl c3RydW5fb25fc2VsZl9za2lwICR7YWJzX3RvcF9idWlsZGRpcn0vc3JjL2VsZmxpbnQgLS1xdWll dCAtLWdudS1sZAorIHRlc3RydW5fb25fc2VsZl9jb21wcmVzc2VkICR7YWJzX3RvcF9idWlsZGRp cn0vc3JjL2VsZmxpbnQgLS1xdWlldCAtLWdudS1sZAorSW5kZXg6IGIvdGVzdHMvdGVzdC1zdWJy LnNoCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gYS90ZXN0cy90ZXN0LXN1YnIuc2gKKysrKyBiL3Rlc3RzL3Rl c3Qtc3Vici5zaAorQEAgLTE3MCwzICsxNzAsMTggQEAgdGVzdHJ1bl9vbl9zZWxmX3F1aWV0KCkK KyAgICMgT25seSBleGl0IGlmIHNvbWV0aGluZyBmYWlsZWQKKyAgIGlmIHRlc3QgJGV4aXRfc3Rh dHVzICE9IDA7IHRoZW4gZXhpdCAkZXhpdF9zdGF0dXM7IGZpCisgfQorKworKyMgU2FtZSBhcyB0 ZXN0cnVuX29uX3NlbGYoKSwgYnV0IHNraXAgb24gZmFpbHVyZS4KKyt0ZXN0cnVuX29uX3NlbGZf c2tpcCgpCisreworKyAgZXhpdF9zdGF0dXM9MAorKworKyAgZm9yIGZpbGUgaW4gJHNlbGZfdGVz dF9maWxlczsgZG8KKysgICAgICB0ZXN0cnVuICQqICRmaWxlIFwKKysJICB8fCB7IGVjaG8gIioq KiBmYWlsdXJlIGluICQqICRmaWxlIjsgZXhpdF9zdGF0dXM9Nzc7IH0KKysgIGRvbmUKKysKKysg ICMgT25seSBleGl0IGlmIHNvbWV0aGluZyBmYWlsZWQKKysgIGlmIHRlc3QgJGV4aXRfc3RhdHVz ICE9IDA7IHRoZW4gZXhpdCAkZXhpdF9zdGF0dXM7IGZpCisrfQorKwpkaWZmIC0tZ2l0IGEvcnVs ZXMvbGliZWxmLm1ha2UgYi9ydWxlcy9saWJlbGYubWFrZQppbmRleCA5ZWNkZDJkNTQuLjQ5MTRj ZjRiZCAxMDA2NDQKLS0tIGEvcnVsZXMvbGliZWxmLm1ha2UKKysrIGIvcnVsZXMvbGliZWxmLm1h a2UKQEAgLTE3LDggKzE3LDggQEAgUEFDS0FHRVMtJChQVFhDT05GX0xJQkVMRikgKz0gbGliZWxm CiAjCiAjIFBhdGhzIGFuZCBuYW1lcwogIwotTElCRUxGX1ZFUlNJT04JOj0gMC4xNzQKLUxJQkVM Rl9NRDUJOj0gNDhiZWMyNGMwYzhiMmMxNjgyMDMyNjk1NmRmZjkzNzgKK0xJQkVMRl9WRVJTSU9O CTo9IDAuMTc2CitMSUJFTEZfTUQ1CTo9IDA3N2U0ZjQ5MzIwY2FkODJiZjE3YTk5NzA2OGIxZGI5 CiBMSUJFTEYJCTo9IGVsZnV0aWxzLSQoTElCRUxGX1ZFUlNJT04pCiBMSUJFTEZfU1VGRklYCTo9 IHRhci5iejIKIExJQkVMRl9VUkwJOj0gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9lbGZ1dGlscy9m dHAvJChMSUJFTEZfVkVSU0lPTikvJChMSUJFTEYpLiQoTElCRUxGX1NVRkZJWCkKLS0gCjIuMjAu MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB0eGRp c3QgbWFpbGluZyBsaXN0CnB0eGRpc3RAcGVuZ3V0cm9uaXguZGU=