From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/gsi-openssh] f43: Based on openssh-10.0p1-9.fc43 Date: Sat, 30 May 2026 01:18:35 GMT Message-ID: <178010391506.1.9288479268056332531.rpms-gsi-openssh-c5f195e4fa96@fedoraproject.org> List-ID: X-Git-Repo: rpms/gsi-openssh X-Git-Branch: f43 X-Git-Rev: c5f195e4fa968c35a5fda81d4a133c04a91203a1 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ3NpLW9wZW5zc2gK QnJhbmNoIDogZjQzCkNvbW1pdCA6IGM1ZjE5NWU0ZmE5NjhjMzVhNWZkYTgxZDRhMTMzYzA0YTkx MjAzYTEKQXV0aG9yIDogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3MudXUu c2U+CkRhdGUgICA6IDIwMjYtMDUtMjlUMDY6MzY6MzErMDI6MDAKU3RhdHMgIDogKzc4Ny8tMTAg aW4gOCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMv Z3NpLW9wZW5zc2gvYy9jNWYxOTVlNGZhOTY4YzM1YTVmZGE4MWQ0YTEzM2MwNGE5MTIwM2ExP2Jy YW5jaD1mNDMKCkxvZzoKQmFzZWQgb24gb3BlbnNzaC0xMC4wcDEtOS5mYzQzCgotLS0KZGlmZiAt LWdpdCBhLzAwNTQtb3BlbnNzaC05LjlwMS1zY3AtY2xlYXItc2V0dWlkLnBhdGNoIGIvMDA1NC1v cGVuc3NoLTkuOXAxLXNjcC1jbGVhci1zZXR1aWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMWE4NDhhMQotLS0gL2Rldi9udWxsCisrKyBiLzAwNTQtb3BlbnNzaC05 LjlwMS1zY3AtY2xlYXItc2V0dWlkLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKK2RpZmYgLS1jb2xv ciAtcnVOcCBhL3NjcC5jIGIvc2NwLmMKKy0tLSBhL3NjcC5jCTIwMjYtMDQtMDcgMTU6NTQ6MTEu MTkzNzMwODQyICswMjAwCisrKysgYi9zY3AuYwkyMDI2LTA0LTA3IDE1OjU1OjUyLjUyOTQyNTQ4 MSArMDIwMAorQEAgLTE3MDUsOCArMTcwNSwxMCBAQCBzaW5rKGludCBhcmdjLCBjaGFyICoqYXJn diwgY29uc3QgY2hhciAqCisgCisgCXNldGltZXMgPSB0YXJnaXNkaXIgPSAwOworIAltYXNrID0g dW1hc2soMCk7CistCWlmICghcGZsYWcpCisrCWlmICghcGZsYWcpIHsKKysJCW1hc2sgfD0gMDcw MDA7CisgCQkodm9pZCkgdW1hc2sobWFzayk7CisrCX0KKyAJaWYgKGFyZ2MgIT0gMSkgeworIAkJ cnVuX2VycigiYW1iaWd1b3VzIHRhcmdldCIpOworIAkJZXhpdCgxKTsKCmRpZmYgLS1naXQgYS8w MDU1LW9wZW5zc2gtOS45cDEtbXV4LWFza3Bhc3MtY2hlY2sucGF0Y2ggYi8wMDU1LW9wZW5zc2gt OS45cDEtbXV4LWFza3Bhc3MtY2hlY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMjE3NjI0MwotLS0gL2Rldi9udWxsCisrKyBiLzAwNTUtb3BlbnNzaC05LjlwMS1t dXgtYXNrcGFzcy1jaGVjay5wYXRjaApAQCAtMCwwICsxLDIwIEBACitkaWZmIC0tY29sb3IgLXJ1 TnAgYS9tdXguYyBiL211eC5jCistLS0gYS9tdXguYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAw MDAwMCArMDIwMAorKysrIGIvbXV4LmMJMjAyNi0wNC0wOSAxNTowMjozNi4wMTYxOTg4MTQgKzAy MDAKK0BAIC0xMTM3LDYgKzExMzcsMTYgQEAgbXV4X21hc3Rlcl9wcm9jZXNzX3Byb3h5KHN0cnVj dCBzc2ggKnNzaAorIAorIAlkZWJ1Z19mKCJjaGFubmVsICVkOiBwcm94eSByZXF1ZXN0IiwgYy0+ c2VsZik7CisgCisrCWlmIChvcHRpb25zLmNvbnRyb2xfbWFzdGVyID09IFNTSENUTF9NQVNURVJf QVNLIHx8CisrCSAgICBvcHRpb25zLmNvbnRyb2xfbWFzdGVyID09IFNTSENUTF9NQVNURVJfQVVU T19BU0spIHsKKysJCWlmICghYXNrX3Blcm1pc3Npb24oIkFsbG93IG11bHRpcGxleCBwcm94eSBj b25uZWN0aW9uPyIpKSB7CisrCQkJZGVidWcyX2YoInByb3h5IHJlZnVzZWQgYnkgdXNlciIpOwor KwkJCXJlcGx5X2Vycm9yKHJlcGx5LCBNVVhfU19QRVJNSVNTSU9OX0RFTklFRCwgcmlkLAorKwkJ CSAgICAiUGVybWlzc2lvbiBkZW5pZWQiKTsKKysJCQlyZXR1cm4gMDsKKysJCX0KKysJfQorKwor IAljLT5tdXhfcmNiID0gY2hhbm5lbF9wcm94eV9kb3duc3RyZWFtOworIAlpZiAoKHIgPSBzc2hi dWZfcHV0X3UzMihyZXBseSwgTVVYX1NfUFJPWFkpKSAhPSAwIHx8CisgCSAgICAociA9IHNzaGJ1 Zl9wdXRfdTMyKHJlcGx5LCByaWQpKSAhPSAwKQoKZGlmZiAtLWdpdCBhLzAwNTYtb3BlbnNzaC05 LjlwMS1lY2RzYS1pbmNvbXBsZXRlLWFwcGxpY2F0aW9uLnBhdGNoIGIvMDA1Ni1vcGVuc3NoLTku OXAxLWVjZHNhLWluY29tcGxldGUtYXBwbGljYXRpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uM2I5M2NhNAotLS0gL2Rldi9udWxsCisrKyBiLzAwNTYtb3BlbnNz aC05LjlwMS1lY2RzYS1pbmNvbXBsZXRlLWFwcGxpY2F0aW9uLnBhdGNoCkBAIC0wLDAgKzEsMTAz IEBACitkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1ob3N0YmFzZWQuYyBiL2F1dGgyLWhvc3Ri YXNlZC5jCistLS0gYS9hdXRoMi1ob3N0YmFzZWQuYwkyMDI2LTA0LTA5IDEzOjIyOjI4LjExNDA0 NTc0OSArMDIwMAorKysrIGIvYXV0aDItaG9zdGJhc2VkLmMJMjAyNi0wNC0wOSAxNDozNDo0NC44 NzYzOTM4MjIgKzAyMDAKK0BAIC05Niw5ICs5NiwxMCBAQCB1c2VyYXV0aF9ob3N0YmFzZWQoc3Ry dWN0IHNzaCAqc3NoLCBjb25zCisgCQllcnJvcl9mKCJjYW5ub3QgZGVjb2RlIGtleTogJXMiLCBw a2FsZyk7CisgCQlnb3RvIGRvbmU7CisgCX0KKy0JaWYgKGtleS0+dHlwZSAhPSBwa3R5cGUpIHsK Ky0JCWVycm9yX2YoInR5cGUgbWlzbWF0Y2ggZm9yIGRlY29kZWQga2V5ICIKKy0JCSAgICAiKHJl Y2VpdmVkICVkLCBleHBlY3RlZCAlZCkiLCBrZXktPnR5cGUsIHBrdHlwZSk7CisrCWlmIChrZXkt PnR5cGUgIT0gcGt0eXBlIHx8IChzc2hrZXlfdHlwZV9wbGFpbihwa3R5cGUpID09IEtFWV9FQ0RT QSAmJgorKwkgICAgc3Noa2V5X2VjZHNhX25pZF9mcm9tX25hbWUocGthbGcpICE9IGtleS0+ZWNk c2FfbmlkKSkgeworKwkJZXJyb3JfZigia2V5IHR5cGUgbWlzbWF0Y2ggZm9yIGRlY29kZWQga2V5 ICIKKysJCSAgICAiKHJlY2VpdmVkICVzLCBleHBlY3RlZCAlcykiLCBzc2hrZXlfc3NoX25hbWUo a2V5KSwgcGthbGcpOworIAkJZ290byBkb25lOworIAl9CisgCWlmIChtYXRjaF9wYXR0ZXJuX2xp c3QocGthbGcsIG9wdGlvbnMuaG9zdGJhc2VkX2FjY2VwdGVkX2FsZ29zLCAwKSAhPSAxKSB7Citk aWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1wdWJrZXkuYyBiL2F1dGgyLXB1YmtleS5jCistLS0g YS9hdXRoMi1wdWJrZXkuYwkyMDI2LTA0LTA5IDEzOjIyOjI4LjE1NzE5NDExOCArMDIwMAorKysr IGIvYXV0aDItcHVia2V5LmMJMjAyNi0wNC0wOSAxNDozNTo0OC45OTc2ODkzNDcgKzAyMDAKK0BA IC0xNTIsOSArMTUyLDEwIEBAIHVzZXJhdXRoX3B1YmtleShzdHJ1Y3Qgc3NoICpzc2gsIGNvbnN0 IGMKKyAJCWVycm9yX2YoImNhbm5vdCBkZWNvZGUga2V5OiAlcyIsIHBrYWxnKTsKKyAJCWdvdG8g ZG9uZTsKKyAJfQorLQlpZiAoa2V5LT50eXBlICE9IHBrdHlwZSkgeworLQkJZXJyb3JfZigidHlw ZSBtaXNtYXRjaCBmb3IgZGVjb2RlZCBrZXkgIgorLQkJICAgICIocmVjZWl2ZWQgJWQsIGV4cGVj dGVkICVkKSIsIGtleS0+dHlwZSwgcGt0eXBlKTsKKysJaWYgKGtleS0+dHlwZSAhPSBwa3R5cGUg fHwgKHNzaGtleV90eXBlX3BsYWluKHBrdHlwZSkgPT0gS0VZX0VDRFNBICYmCisrCSAgICBzc2hr ZXlfZWNkc2FfbmlkX2Zyb21fbmFtZShwa2FsZykgIT0ga2V5LT5lY2RzYV9uaWQpKSB7CisrCQll cnJvcl9mKCJrZXkgdHlwZSBtaXNtYXRjaCBmb3IgZGVjb2RlZCBrZXkgIgorKwkJICAgICIocmVj ZWl2ZWQgJXMsIGV4cGVjdGVkICVzKSIsIHNzaGtleV9zc2hfbmFtZShrZXkpLCBwa2FsZyk7Cisg CQlnb3RvIGRvbmU7CisgCX0KKyAJaWYgKGF1dGgyX2tleV9hbHJlYWR5X3VzZWQoYXV0aGN0eHQs IGtleSkpIHsKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGNvbm5lY3QyLmMgYi9zc2hjb25uZWN0 Mi5jCistLS0gYS9zc2hjb25uZWN0Mi5jCTIwMjYtMDQtMDkgMTM6MjI6MjguMTkzNDEyNTUzICsw MjAwCisrKysgYi9zc2hjb25uZWN0Mi5jCTIwMjYtMDQtMDkgMTQ6NDI6MzcuNjQ0OTQ1NzYyICsw MjAwCitAQCAtOTEsNiArOTEsNyBAQCBleHRlcm4gT3B0aW9ucyBvcHRpb25zOworIHN0YXRpYyBj aGFyICp4eHhfaG9zdDsKKyBzdGF0aWMgc3RydWN0IHNvY2thZGRyICp4eHhfaG9zdGFkZHI7Cisg c3RhdGljIGNvbnN0IHN0cnVjdCBzc2hfY29ubl9pbmZvICp4eHhfY29ubl9pbmZvOworK3N0YXRp YyBpbnQga2V5X3R5cGVfYWxsb3dlZChzdHJ1Y3Qgc3Noa2V5ICosIGNvbnN0IGNoYXIgKik7Cisg Cisgc3RhdGljIGludAorIHZlcmlmeV9ob3N0X2tleV9jYWxsYmFjayhzdHJ1Y3Qgc3Noa2V5ICpo b3N0a2V5LCBzdHJ1Y3Qgc3NoICpzc2gpCitAQCAtMTAwLDYgKzEwMSwxMCBAQCB2ZXJpZnlfaG9z dF9rZXlfY2FsbGJhY2soc3RydWN0IHNzaGtleSAqCisgCWlmICgociA9IHNzaGtleV9jaGVja19y c2FfbGVuZ3RoKGhvc3RrZXksCisgCSAgICBvcHRpb25zLnJlcXVpcmVkX3JzYV9zaXplKSkgIT0g MCkKKyAJCWZhdGFsX3IociwgIkJhZCBzZXJ2ZXIgaG9zdCBrZXkiKTsKKysJaWYgKCFrZXlfdHlw ZV9hbGxvd2VkKGhvc3RrZXksIG9wdGlvbnMuaG9zdGtleWFsZ29yaXRobXMpKSB7CisrCQlmYXRh bCgiU2VydmVyIGhvc3Qga2V5ICVzIG5vdCBpbiBIb3N0S2V5QWxnb3JpdGhtcyIsCisrCQkgICAg c3Noa2V5X3NzaF9uYW1lKGhvc3RrZXkpKTsKKysJfQorIAlpZiAodmVyaWZ5X2hvc3Rfa2V5KHh4 eF9ob3N0LCB4eHhfaG9zdGFkZHIsIGhvc3RrZXksCisgCSAgICB4eHhfY29ubl9pbmZvKSAhPSAw KQorIAkJZmF0YWwoIkhvc3Qga2V5IHZlcmlmaWNhdGlvbiBmYWlsZWQuIik7CitAQCAtMTc3Niwz NCArMTc4MSwzNyBAQCBsb2FkX2lkZW50aXR5X2ZpbGUoSWRlbnRpdHkgKmlkKQorIH0KKyAKKyBz dGF0aWMgaW50Cista2V5X3R5cGVfYWxsb3dlZF9ieV9jb25maWcoc3RydWN0IHNzaGtleSAqa2V5 KQorK2tleV90eXBlX2FsbG93ZWQoc3RydWN0IHNzaGtleSAqa2V5LCBjb25zdCBjaGFyICphbGxv d2xpc3QpCisgeworLQlpZiAobWF0Y2hfcGF0dGVybl9saXN0KHNzaGtleV9zc2hfbmFtZShrZXkp LAorLQkgICAgb3B0aW9ucy5wdWJrZXlfYWNjZXB0ZWRfYWxnb3MsIDApID09IDEpCisrCWlmICht YXRjaF9wYXR0ZXJuX2xpc3Qoc3Noa2V5X3NzaF9uYW1lKGtleSksIGFsbG93bGlzdCwgMCkgPT0g MSkKKyAJCXJldHVybiAxOworIAorIAkvKiBSU0Ega2V5cy9jZXJ0cyBtaWdodCBiZSBhbGxvd2Vk IGJ5IGFsdGVybmF0ZSBzaWduYXR1cmUgdHlwZXMgKi8KKyAJc3dpdGNoIChrZXktPnR5cGUpIHsK KyAJY2FzZSBLRVlfUlNBOgorLQkJaWYgKG1hdGNoX3BhdHRlcm5fbGlzdCgicnNhLXNoYTItNTEy IiwKKy0JCSAgICBvcHRpb25zLnB1YmtleV9hY2NlcHRlZF9hbGdvcywgMCkgPT0gMSkKKysJCWlm IChtYXRjaF9wYXR0ZXJuX2xpc3QoInJzYS1zaGEyLTUxMiIsIGFsbG93bGlzdCwgMCkgPT0gMSkK KyAJCQlyZXR1cm4gMTsKKy0JCWlmIChtYXRjaF9wYXR0ZXJuX2xpc3QoInJzYS1zaGEyLTI1NiIs CistCQkgICAgb3B0aW9ucy5wdWJrZXlfYWNjZXB0ZWRfYWxnb3MsIDApID09IDEpCisrCQlpZiAo bWF0Y2hfcGF0dGVybl9saXN0KCJyc2Etc2hhMi0yNTYiLCBhbGxvd2xpc3QsIDApID09IDEpCisg CQkJcmV0dXJuIDE7CisgCQlicmVhazsKKyAJY2FzZSBLRVlfUlNBX0NFUlQ6CisgCQlpZiAobWF0 Y2hfcGF0dGVybl9saXN0KCJyc2Etc2hhMi01MTItY2VydC12MDFAb3BlbnNzaC5jb20iLAorLQkJ ICAgIG9wdGlvbnMucHVia2V5X2FjY2VwdGVkX2FsZ29zLCAwKSA9PSAxKQorKwkJICAgIGFsbG93 bGlzdCwgMCkgPT0gMSkKKyAJCQlyZXR1cm4gMTsKKyAJCWlmIChtYXRjaF9wYXR0ZXJuX2xpc3Qo InJzYS1zaGEyLTI1Ni1jZXJ0LXYwMUBvcGVuc3NoLmNvbSIsCistCQkgICAgb3B0aW9ucy5wdWJr ZXlfYWNjZXB0ZWRfYWxnb3MsIDApID09IDEpCisrCQkgICAgYWxsb3dsaXN0LCAwKSA9PSAxKQor IAkJCXJldHVybiAxOworIAkJYnJlYWs7CisgCX0KKyAJcmV0dXJuIDA7CisgfQorIAorK3N0YXRp YyBpbnQKKytrZXlfdHlwZV9hbGxvd2VkX2J5X2NvbmZpZyhzdHJ1Y3Qgc3Noa2V5ICprZXkpCisr eworKwlyZXR1cm4ga2V5X3R5cGVfYWxsb3dlZChrZXksIG9wdGlvbnMucHVia2V5X2FjY2VwdGVk X2FsZ29zKTsKKyt9CisrCisgLyogb2J0YWluIGEgbGlzdCBvZiBrZXlzIGZyb20gdGhlIGFnZW50 ICovCisgc3RhdGljIGludAorIGdldF9hZ2VudF9pZGVudGl0aWVzKHN0cnVjdCBzc2ggKnNzaCwg aW50ICphZ2VudF9mZHAsCgpkaWZmIC0tZ2l0IGEvMDA1Ny1vcGVuc3NoLTkuOXAxLWF1dGhvcml6 ZWQta2V5cy1wcmluY2lwbGVzLW9wdGlvbi5wYXRjaCBiLzAwNTctb3BlbnNzaC05LjlwMS1hdXRo b3JpemVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uOWJkZDE5OQotLS0gL2Rldi9udWxsCisrKyBiLzAwNTctb3BlbnNzaC05 LjlwMS1hdXRob3JpemVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2gKQEAgLTAsMCArMSw0 NSBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0aDItcHVia2V5ZmlsZS5jIGIvYXV0aDItcHVi a2V5ZmlsZS5jCistLS0gYS9hdXRoMi1wdWJrZXlmaWxlLmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4w MDAwMDAwMDAgKzAyMDAKKysrKyBiL2F1dGgyLXB1YmtleWZpbGUuYwkyMDI2LTA0LTA5IDE0OjM4 OjQxLjY5NzE3ODYxMiArMDIwMAorQEAgLTUwLDYgKzUwLDcgQEAKKyAjaW5jbHVkZSAiYXV0aGZp bGUuaCIKKyAjaW5jbHVkZSAibWF0Y2guaCIKKyAjaW5jbHVkZSAic3NoZXJyLmgiCisrI2luY2x1 ZGUgInhtYWxsb2MuaCIKKyAKKyBpbnQKKyBhdXRoX2F1dGhvcmlzZV9rZXlvcHRzKHN0cnVjdCBw YXNzd2QgKnB3LCBzdHJ1Y3Qgc3NoYXV0aG9wdCAqb3B0cywKK0BAIC0xNDYsMjAgKzE0NywyMyBA QCBhdXRoX2F1dGhvcmlzZV9rZXlvcHRzKHN0cnVjdCBwYXNzd2QgKnB3Cisgc3RhdGljIGludAor IG1hdGNoX3ByaW5jaXBhbHNfb3B0aW9uKGNvbnN0IGNoYXIgKnByaW5jaXBhbF9saXN0LCBzdHJ1 Y3Qgc3Noa2V5X2NlcnQgKmNlcnQpCisgeworLQljaGFyICpyZXN1bHQ7CisrCWNoYXIgKmxpc3Qs ICpvbGlzdCwgKmVudHJ5OworIAl1X2ludCBpOworIAorLQkvKiBYWFggcGVyY2VudF9leHBhbmQo KSBzZXF1ZW5jZXMgZm9yIGF1dGhvcml6ZWRfcHJpbmNpcGFscz8gKi8KKy0KKy0JZm9yIChpID0g MDsgaSA8IGNlcnQtPm5wcmluY2lwYWxzOyBpKyspIHsKKy0JCWlmICgocmVzdWx0ID0gbWF0Y2hf bGlzdChjZXJ0LT5wcmluY2lwYWxzW2ldLAorLQkJICAgIHByaW5jaXBhbF9saXN0LCBOVUxMKSkg IT0gTlVMTCkgeworLQkJCWRlYnVnMygibWF0Y2hlZCBwcmluY2lwYWwgZnJvbSBrZXkgb3B0aW9u cyBcIiUuMTAwc1wiIiwKKy0JCQkgICAgcmVzdWx0KTsKKy0JCQlmcmVlKHJlc3VsdCk7CistCQkJ cmV0dXJuIDE7CisrCW9saXN0ID0gbGlzdCA9IHhzdHJkdXAocHJpbmNpcGFsX2xpc3QpOworKwlm b3IgKDs7KSB7CisrCQlpZiAoKGVudHJ5ID0gc3Ryc2VwKCZsaXN0LCAiLCIpKSA9PSBOVUxMIHx8 ICplbnRyeSA9PSAnXDAnKQorKwkJCWJyZWFrOworKwkJZm9yIChpID0gMDsgaSA8IGNlcnQtPm5w cmluY2lwYWxzOyBpKyspIHsKKysJCQlpZiAoc3RyY21wKGVudHJ5LCBjZXJ0LT5wcmluY2lwYWxz W2ldKSA9PSAwKSB7CisrCQkJCWRlYnVnMygibWF0Y2hlZCBwcmluY2lwYWwgZnJvbSBrZXkgaSIK KysJCQkJICAgICJvcHRpb25zIFwiJS4xMDBzXCIiLCBlbnRyeSk7CisrCQkJCWZyZWUob2xpc3Qp OworKwkJCQlyZXR1cm4gMTsKKysJCQl9CisgCQl9CisgCX0KKysJZnJlZShvbGlzdCk7CisgCXJl dHVybiAwOworIH0KKyAKCmRpZmYgLS1naXQgYS8wMDU4LW9wZW5zc2gtOS45cDEtcmVqZWN0LW51 bGwtY2hhci1pbi11cmwtc3RyaW5nLnBhdGNoIGIvMDA1OC1vcGVuc3NoLTkuOXAxLXJlamVjdC1u dWxsLWNoYXItaW4tdXJsLXN0cmluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi45YjJkMzc4Ci0tLSAvZGV2L251bGwKKysrIGIvMDA1OC1vcGVuc3NoLTkuOXAxLXJl amVjdC1udWxsLWNoYXItaW4tdXJsLXN0cmluZy5wYXRjaApAQCAtMCwwICsxLDI0IEBACitkaWZm IC0tY29sb3IgLXJ1TnAgYS9taXNjLmMgYi9taXNjLmMKKy0tLSBhL21pc2MuYwkyMDI1LTEyLTAz IDE2OjE5OjExLjI1NTEzNTEzMSArMDEwMAorKysrIGIvbWlzYy5jCTIwMjUtMTItMDMgMTY6MjE6 NTMuNzY5NTkwODM2ICswMTAwCitAQCAtOTk4LDcgKzk5OCw3IEBAIHVybGRlY29kZShjb25zdCBj aGFyICpzcmMpCisgCXNpemVfdCBzcmNsZW47CisgCisgCWlmICgoc3JjbGVuID0gc3RybGVuKHNy YykpID49IFNJWkVfTUFYKQorLQkJZmF0YWxfZigiaW5wdXQgdG9vIGxhcmdlIik7CisrCQlyZXR1 cm4gTlVMTDsKKyAJcmV0ID0geG1hbGxvYyhzcmNsZW4gKyAxKTsKKyAJZm9yIChkc3QgPSByZXQ7 ICpzcmMgIT0gJ1wwJzsgc3JjKyspIHsKKyAJCXN3aXRjaCAoKnNyYykgeworQEAgLTEwMDYsOSAr MTAwNiwxMCBAQCB1cmxkZWNvZGUoY29uc3QgY2hhciAqc3JjKQorIAkJCSpkc3QrKyA9ICcgJzsK KyAJCQlicmVhazsKKyAJCWNhc2UgJyUnOgorKwkJCS8qIG5vdGU6IGRvbid0IGFsbG93IFwwIGNo YXJhY3RlcnMgKi8KKyAJCQlpZiAoIWlzeGRpZ2l0KCh1bnNpZ25lZCBjaGFyKXNyY1sxXSkgfHwK KyAJCQkgICAgIWlzeGRpZ2l0KCh1bnNpZ25lZCBjaGFyKXNyY1syXSkgfHwKKy0JCQkgICAgKGNo ID0gaGV4Y2hhcihzcmMgKyAxKSkgPT0gLTEpIHsKKysJCQkgICAgKGNoID0gaGV4Y2hhcihzcmMg KyAxKSkgPT0gLTEgfHwgY2ggPT0gMCkgeworIAkJCQlmcmVlKHJldCk7CisgCQkJCXJldHVybiBO VUxMOworIAkJCX0KCmRpZmYgLS1naXQgYS8wMDU5LW9wZW5zc2gtMTAuMHAxLXJlamVjdC1jbnRy bC1jaGFycy1pbi11c2VybmFtZS5wYXRjaCBiLzAwNTktb3BlbnNzaC0xMC4wcDEtcmVqZWN0LWNu dHJsLWNoYXJzLWluLXVzZXJuYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjNjNWFhYzcKLS0tIC9kZXYvbnVsbAorKysgYi8wMDU5LW9wZW5zc2gtMTAuMHAxLXJl amVjdC1jbnRybC1jaGFycy1pbi11c2VybmFtZS5wYXRjaApAQCAtMCwwICsxLDU1NSBAQAorZGlm ZiAtLWNvbG9yIC1ydU5wIGEvcmVhZGNvbmYuYyBiL3JlYWRjb25mLmMKKy0tLSBhL3JlYWRjb25m LmMJMjAyNi0wNC0xNyAxNjo1OTozNi42MjM1NDM1MjEgKzAyMDAKKysrKyBiL3JlYWRjb25mLmMJ MjAyNi0wNC0yMCAwOTo1Njo0Ni44MjYwNzE2NjUgKzAyMDAKK0BAIC0xNTc4LDkgKzE1NzgsNiBA QCBwYXJzZV9jaGFyX2FycmF5OgorIAorIAljYXNlIG9Qcm94eUNvbW1hbmQ6CisgCQljaGFycHRy ID0gJm9wdGlvbnMtPnByb3h5X2NvbW1hbmQ7CistCQkvKiBJZ25vcmUgUHJveHlDb21tYW5kIGlm IFByb3h5SnVtcCBhbHJlYWR5IHNwZWNpZmllZCAqLworLQkJaWYgKG9wdGlvbnMtPmp1bXBfaG9z dCAhPSBOVUxMKQorLQkJCWNoYXJwdHIgPSAmb3B0aW9ucy0+anVtcF9ob3N0OyAvKiBTa2lwIGJl bG93ICovCisgcGFyc2VfY29tbWFuZDoKKyAJCWlmIChzdHIgPT0gTlVMTCkgeworIAkJCWVycm9y KCIlLjIwMHMgbGluZSAlZDogTWlzc2luZyBhcmd1bWVudC4iLAorQEAgLTE2MDEsNyArMTU5OCw3 IEBAIHBhcnNlX2NvbW1hbmQ6CisgCQl9CisgCQlsZW4gPSBzdHJzcG4oc3RyLCBXSElURVNQQUNF ICI9Iik7CisgCQkvKiBYWFggdXNlIGFyZ3Y/ICovCistCQlpZiAocGFyc2VfanVtcChzdHIgKyBs ZW4sIG9wdGlvbnMsICphY3RpdmVwKSA9PSAtMSkgeworKwkJaWYgKHBhcnNlX2p1bXAoc3RyICsg bGVuLCBvcHRpb25zLCBjbWRsaW5lLCAqYWN0aXZlcCkgPT0gLTEpIHsKKyAJCQllcnJvcigiJS4y MDBzIGxpbmUgJWQ6IEludmFsaWQgUHJveHlKdW1wIFwiJXNcIiIsCisgCQkJICAgIGZpbGVuYW1l LCBsaW5lbnVtLCBzdHIgKyBsZW4pOworIAkJCWdvdG8gb3V0OworQEAgLTM0MzgsNjUgKzM0MzUs MTE2IEBAIHBhcnNlX2ZvcndhcmQoc3RydWN0IEZvcndhcmQgKmZ3ZCwgY29uc3QKKyB9CisgCisg aW50CistcGFyc2VfanVtcChjb25zdCBjaGFyICpzLCBPcHRpb25zICpvLCBpbnQgYWN0aXZlKQor K3NzaF92YWxpZF9ob3N0bmFtZShjb25zdCBjaGFyICpzKQorIHsKKy0JY2hhciAqb3JpZywgKnNk dXAsICpjcDsKKy0JY2hhciAqaG9zdCA9IE5VTEwsICp1c2VyID0gTlVMTDsKKy0JaW50IHIsIHJl dCA9IC0xLCBwb3J0ID0gLTEsIGZpcnN0OworKwlzaXplX3QgaTsKKyAKKy0JYWN0aXZlICY9IG8t PnByb3h5X2NvbW1hbmQgPT0gTlVMTCAmJiBvLT5qdW1wX2hvc3QgPT0gTlVMTDsKKysJaWYgKCpz ID09ICctJykKKysJCXJldHVybiAwOworKwlmb3IgKGkgPSAwOyBzW2ldICE9IDA7IGkrKykgewor KwkJaWYgKHN0cmNocigiJ2BcIiRcXDsmPD58KCl7fSwiLCBzW2ldKSAhPSBOVUxMIHx8CisrCQkg ICAgaXNzcGFjZSgodV9jaGFyKXNbaV0pIHx8IGlzY250cmwoKHVfY2hhcilzW2ldKSkKKysJCQly ZXR1cm4gMDsKKysJfQorKwlyZXR1cm4gMTsKKyt9CisgCistCW9yaWcgPSBzZHVwID0geHN0cmR1 cChzKTsKKytpbnQKKytzc2hfdmFsaWRfcnVzZXIoY29uc3QgY2hhciAqcykKKyt7CisrCXNpemVf dCBpOworKworKwlpZiAoKnMgPT0gJy0nKQorKwkJcmV0dXJuIDA7CisrCWZvciAoaSA9IDA7IHNb aV0gIT0gMDsgaSsrKSB7CisrCQlpZiAoaXNjbnRybCgodV9jaGFyKXNbaV0pKQorKwkJCXJldHVy biAwOworKwkJaWYgKHN0cmNocigiJ2BcIjsmPD58KCl7fSIsIHNbaV0pICE9IE5VTEwpCisrCQkJ cmV0dXJuIDA7CisrCQkvKiBEaXNhbGxvdyAnLScgYWZ0ZXIgd2hpdGVzcGFjZSAqLworKwkJaWYg KGlzc3BhY2UoKHVfY2hhcilzW2ldKSAmJiBzW2kgKyAxXSA9PSAnLScpCisrCQkJcmV0dXJuIDA7 CisrCQkvKiBEaXNhbGxvdyBcIGluIGxhc3QgcG9zaXRpb24gKi8KKysJCWlmIChzW2ldID09ICdc XCcgJiYgc1tpICsgMV0gPT0gJ1wwJykKKysJCQlyZXR1cm4gMDsKKysJfQorKwlyZXR1cm4gMTsK Kyt9CisrCisraW50CisrcGFyc2VfanVtcChjb25zdCBjaGFyICpzLCBPcHRpb25zICpvLCBpbnQg c3RyaWN0LCBpbnQgYWN0aXZlKQorK3sKKysJY2hhciAqb3JpZyA9IE5VTEwsICpzZHVwID0gTlVM TCwgKmNwOworKwljaGFyICp0bXBfdXNlciA9IE5VTEwsICp0bXBfaG9zdCA9IE5VTEwsICpob3N0 ID0gTlVMTCwgKnVzZXIgPSBOVUxMOworKwlpbnQgciwgcmV0ID0gLTEsIHRtcF9wb3J0ID0gLTEs IHBvcnQgPSAtMSwgZmlyc3QgPSAxOworKworKwlpZiAoc3RyY2FzZWNtcChzLCAibm9uZSIpID09 IDApIHsKKysJCWlmIChhY3RpdmUgJiYgby0+anVtcF9ob3N0ID09IE5VTEwpIHsKKysJCQlvLT5q dW1wX2hvc3QgPSB4c3RyZHVwKCJub25lIik7CisrCQkJby0+anVtcF9wb3J0ID0gMDsKKysJCX0K KysJCXJldHVybiAwOworKwl9CisgCistCS8qIFJlbW92ZSBjb21tZW50IGFuZCB0cmFpbGluZyB3 aGl0ZXNwYWNlICovCisrCW9yaWcgPSB4c3RyZHVwKHMpOworIAlpZiAoKGNwID0gc3RyY2hyKG9y aWcsICcjJykpICE9IE5VTEwpCisgCQkqY3AgPSAnXDAnOworIAlydHJpbShvcmlnKTsKKyAKKy0J Zmlyc3QgPSBhY3RpdmU7CisrCWFjdGl2ZSAmPSBvLT5wcm94eV9jb21tYW5kID09IE5VTEwgJiYg by0+anVtcF9ob3N0ID09IE5VTEw7CisrCXNkdXAgPSB4c3RyZHVwKG9yaWcpOworIAlkbyB7Cist CQlpZiAoc3RyY2FzZWNtcChzLCAibm9uZSIpID09IDApCistCQkJYnJlYWs7CisrCQkvKiBXb3Jr IGJhY2t3YXJkcyB0aHJvdWdoIHN0cmluZyAqLworIAkJaWYgKChjcCA9IHN0cnJjaHIoc2R1cCwg JywnKSkgPT0gTlVMTCkKKyAJCQljcCA9IHNkdXA7IC8qIGxhc3QgKi8KKyAJCWVsc2UKKyAJCQkq Y3ArKyA9ICdcMCc7CisgCistCQlpZiAoZmlyc3QpIHsKKy0JCQkvKiBGaXJzdCBhcmd1bWVudCBh bmQgY29uZmlndXJhdGlvbiBpcyBhY3RpdmUgKi8KKy0JCQlyID0gcGFyc2Vfc3NoX3VyaShjcCwg JnVzZXIsICZob3N0LCAmcG9ydCk7CistCQkJaWYgKHIgPT0gLTEgfHwgKHIgPT0gMSAmJgorLQkJ CSAgICBwYXJzZV91c2VyX2hvc3RfcG9ydChjcCwgJnVzZXIsICZob3N0LCAmcG9ydCkgIT0gMCkp CisrCQlyID0gcGFyc2Vfc3NoX3VyaShjcCwgJnRtcF91c2VyLCAmdG1wX2hvc3QsICZ0bXBfcG9y dCk7CisrCQlpZiAociA9PSAtMSB8fCAociA9PSAxICYmIHBhcnNlX3VzZXJfaG9zdF9wb3J0KGNw LAorKwkJICAgICZ0bXBfdXNlciwgJnRtcF9ob3N0LCAmdG1wX3BvcnQpICE9IDApKQorKwkJCWdv dG8gb3V0OyAvKiBlcnJvciBhbHJlYWR5IGxvZ2dlZCAqLworKwkJaWYgKHN0cmljdCkgeworKwkJ CWlmICghc3NoX3ZhbGlkX2hvc3RuYW1lKHRtcF9ob3N0KSkgeworKwkJCQllcnJvcl9mKCJpbnZh bGlkIGhvc3RuYW1lIFwiJXNcIiIsIHRtcF9ob3N0KTsKKyAJCQkJZ290byBvdXQ7CistCQl9IGVs c2UgeworLQkJCS8qIFN1YnNlcXVlbnQgYXJndW1lbnQgb3IgaW5hY3RpdmUgY29uZmlndXJhdGlv biAqLworLQkJCXIgPSBwYXJzZV9zc2hfdXJpKGNwLCBOVUxMLCBOVUxMLCBOVUxMKTsKKy0JCQlp ZiAociA9PSAtMSB8fCAociA9PSAxICYmCistCQkJICAgIHBhcnNlX3VzZXJfaG9zdF9wb3J0KGNw LCBOVUxMLCBOVUxMLCBOVUxMKSAhPSAwKSkKKysJCQl9CisrCQkJaWYgKHRtcF91c2VyICE9IE5V TEwgJiYgIXNzaF92YWxpZF9ydXNlcih0bXBfdXNlcikpIHsKKysJCQkJZXJyb3JfZigiaW52YWxp ZCB1c2VybmFtZSBcIiVzXCIiLCB0bXBfdXNlcik7CisgCQkJCWdvdG8gb3V0OworKwkJCX0KKysJ CX0KKysJCWlmIChmaXJzdCkgeworKwkJCXVzZXIgPSB0bXBfdXNlcjsKKysJCQlob3N0ID0gdG1w X2hvc3Q7CisrCQkJcG9ydCA9IHRtcF9wb3J0OworKwkJCXRtcF91c2VyID0gdG1wX2hvc3QgPSBO VUxMOyAvKiB0cmFuc2ZlcnJlZCAqLworIAkJfQorIAkJZmlyc3QgPSAwOyAvKiBvbmx5IGNoZWNr IHN5bnRheCBmb3Igc3Vic2VxdWVudCBob3N0cyAqLworKwkJZnJlZSh0bXBfdXNlcik7CisrCQlm cmVlKHRtcF9ob3N0KTsKKysJCXRtcF91c2VyID0gdG1wX2hvc3QgPSBOVUxMOworKwkJdG1wX3Bv cnQgPSAtMTsKKyAJfSB3aGlsZSAoY3AgIT0gc2R1cCk7CisrCisgCS8qIHN1Y2Nlc3MgKi8KKyAJ aWYgKGFjdGl2ZSkgeworLQkJaWYgKHN0cmNhc2VjbXAocywgIm5vbmUiKSA9PSAwKSB7CistCQkJ by0+anVtcF9ob3N0ID0geHN0cmR1cCgibm9uZSIpOworLQkJCW8tPmp1bXBfcG9ydCA9IDA7Cist CQl9IGVsc2UgeworLQkJCW8tPmp1bXBfdXNlciA9IHVzZXI7CistCQkJby0+anVtcF9ob3N0ID0g aG9zdDsKKy0JCQlvLT5qdW1wX3BvcnQgPSBwb3J0OworLQkJCW8tPnByb3h5X2NvbW1hbmQgPSB4 c3RyZHVwKCJub25lIik7CistCQkJdXNlciA9IGhvc3QgPSBOVUxMOworLQkJCWlmICgoY3AgPSBz dHJyY2hyKHMsICcsJykpICE9IE5VTEwgJiYgY3AgIT0gcykgeworLQkJCQlvLT5qdW1wX2V4dHJh ID0geHN0cmR1cChzKTsKKy0JCQkJby0+anVtcF9leHRyYVtjcCAtIHNdID0gJ1wwJzsKKy0JCQl9 CisrCQlvLT5qdW1wX3VzZXIgPSB1c2VyOworKwkJby0+anVtcF9ob3N0ID0gaG9zdDsKKysJCW8t Pmp1bXBfcG9ydCA9IHBvcnQ7CisrCQlvLT5wcm94eV9jb21tYW5kID0geHN0cmR1cCgibm9uZSIp OworKwkJdXNlciA9IGhvc3QgPSBOVUxMOyAvKiB0cmFuc2ZlcnJlZCAqLworKwkJaWYgKG9yaWcg IT0gTlVMTCAmJiAoY3AgPSBzdHJyY2hyKG9yaWcsICcsJykpICE9IE5VTEwpIHsKKysJCQlvLT5q dW1wX2V4dHJhID0geHN0cmR1cChvcmlnKTsKKysJCQlvLT5qdW1wX2V4dHJhW2NwIC0gb3JpZ10g PSAnXDAnOworIAkJfQorIAl9CisgCXJldCA9IDA7CisgIG91dDoKKyAJZnJlZShvcmlnKTsKKysJ ZnJlZShzZHVwKTsKKysJZnJlZSh0bXBfdXNlcik7CisrCWZyZWUodG1wX2hvc3QpOworIAlmcmVl KHVzZXIpOworIAlmcmVlKGhvc3QpOworIAlyZXR1cm4gcmV0OworZGlmZiAtLWNvbG9yIC1ydU5w IGEvcmVhZGNvbmYuaCBiL3JlYWRjb25mLmgKKy0tLSBhL3JlYWRjb25mLmgJMjAyNi0wNC0xNyAx Njo1OTozNS41OTQ3ODA4NzIgKzAyMDAKKysrKyBiL3JlYWRjb25mLmgJMjAyNi0wNC0yMCAwOTo1 Njo0Ni44MjcxNjM3OTIgKzAyMDAKK0BAIC0yNTAsNyArMjUwLDkgQEAgaW50CSBwcm9jZXNzX2Nv bmZpZ19saW5lKE9wdGlvbnMgKiwgc3RydQorIGludAkgcmVhZF9jb25maWdfZmlsZShjb25zdCBj aGFyICosIHN0cnVjdCBwYXNzd2QgKiwgY29uc3QgY2hhciAqLAorICAgICBjb25zdCBjaGFyICos IGNvbnN0IGNoYXIgKiwgT3B0aW9ucyAqLCBpbnQsIGludCAqKTsKKyBpbnQJIHBhcnNlX2Zvcndh cmQoc3RydWN0IEZvcndhcmQgKiwgY29uc3QgY2hhciAqLCBpbnQsIGludCk7CistaW50CSBwYXJz ZV9qdW1wKGNvbnN0IGNoYXIgKiwgT3B0aW9ucyAqLCBpbnQpOworK2ludAkgc3NoX3ZhbGlkX2hv c3RuYW1lKGNvbnN0IGNoYXIgKik7CisraW50CSBzc2hfdmFsaWRfcnVzZXIoY29uc3QgY2hhciAq KTsKKytpbnQJIHBhcnNlX2p1bXAoY29uc3QgY2hhciAqLCBPcHRpb25zICosIGludCwgaW50KTsK KyBpbnQJIHBhcnNlX3NzaF91cmkoY29uc3QgY2hhciAqLCBjaGFyICoqLCBjaGFyICoqLCBpbnQg Kik7CisgaW50CSBkZWZhdWx0X3NzaF9wb3J0KHZvaWQpOworIGludAkgb3B0aW9uX2NsZWFyX29y X25vbmUoY29uc3QgY2hhciAqKTsKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3JlZ3Jlc3MvTWFrZWZp bGUgYi9yZWdyZXNzL01ha2VmaWxlCistLS0gYS9yZWdyZXNzL01ha2VmaWxlCTIwMjYtMDQtMTcg MTY6NTk6MzUuOTQ3NTQ0Mjk0ICswMjAwCisrKysgYi9yZWdyZXNzL01ha2VmaWxlCTIwMjYtMDQt MjAgMDk6NTY6NDYuODI3NjkwOTU5ICswMjAwCitAQCAtMTEyLDcgKzExMiw4IEBAIExURVNUUz0g CWNvbm5lY3QgXAorIAkJYWdlbnQtcGtjczExLXJlc3RyaWN0IFwKKyAJCWFnZW50LXBrY3MxMS1j ZXJ0IFwKKyAJCXBlbmFsdHkgXAorLQkJcGVuYWx0eS1leHBpcmUKKysJCXBlbmFsdHktZXhwaXJl IFwKKysJCXByb3h5anVtcAorIAorIElOVEVST1BfVEVTVFM9CXB1dHR5LXRyYW5zZmVyIHB1dHR5 LWNpcGhlcnMgcHV0dHkta2V4IGNvbmNoLWNpcGhlcnMKKyBJTlRFUk9QX1RFU1RTKz0JZHJvcGJl YXItY2lwaGVycyBkcm9wYmVhci1rZXgKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3JlZ3Jlc3MvcGVy Y2VudC5zaCBiL3JlZ3Jlc3MvcGVyY2VudC5zaAorLS0tIGEvcmVncmVzcy9wZXJjZW50LnNoCTIw MjUtMDQtMDkgMDk6MDI6NDMuMDAwMDAwMDAwICswMjAwCisrKysgYi9yZWdyZXNzL3BlcmNlbnQu c2gJMjAyNi0wNC0yMCAxMjoyNzoyMS4zMDA3MDM0NzcgKzAyMDAKK0BAIC0xLDQgKzEsNCBAQAor LSMJJE9wZW5CU0Q6IHBlcmNlbnQuc2gsdiAxLjIxIDIwMjUvMDQvMDggMjM6MTA6NDYgZGptIEV4 cCAkCisrIwkkT3BlbkJTRDogcGVyY2VudC5zaCx2IDEuMjMgMjAyNi8wNC8wMiAwNzo1MjoxNSBk am0gRXhwICQKKyAjCVBsYWNlZCBpbiB0aGUgUHVibGljIERvbWFpbi4KKyAKKyB0aWQ9InBlcmNl bnQgZXhwYW5zaW9ucyIKK0BAIC0zMywxNCArMzMsMTQgQEAgdHJpYWwoKQorIAkJaWYgWyAiJGFy ZyIgPSAnJXInIF0gfHwgWyAiJGFyZyIgPSAnJUMnIF07IHRoZW4KKyAJCQkjIFVzZXIgZG9lcyBu b3Qgc3VwcG9ydCAlciwgaWUgaXRzZWxmIG9yICVDLiAgU2tpcCB0ZXN0LgorIAkJCWdvdD0iJGV4 cGVjdCIKKy0JCWVsaWYgWyAiJGkiID0gInVzZXIiIF07IHRoZW4KKysJCWVsaWYgWyAiJG9wdCIg PSAidXNlciIgXTsgdGhlbgorIAkJCWdvdD1gJHtTU0h9IC1GICRPQkovc3NoX3Byb3h5IC1vICRv cHQ9IiRhcmciIC1HIFwKKyAJCQkgICAgcmVtdXNlckBzb21laG9zdCB8IGF3ayAnJDE9PSInJG9w dCcie3ByaW50ICQyfSdgCistCQllbGlmIFsgIiRpIiA9ICJ1c2VyLWwiIF07IHRoZW4KKysJCWVs aWYgWyAiJG9wdCIgPSAidXNlci1sIiBdOyB0aGVuCisgCQkJIyBBbHNvIHRlc3Qgc3NoIC1sCisg CQkJZ290PWAke1NTSH0gLUYgJE9CSi9zc2hfcHJveHkgLWwgIiRhcmciIC1HIFwKKyAJCQkgICAg c29tZWhvc3QgfCBhd2sgJyQxPT0iJ3VzZXInIntwcmludCAkMn0nYAorLQkJZWxpZiBbICIkaSIg PSAidXNlci1hdCIgXTsgdGhlbgorKwkJZWxpZiBbICIkb3B0IiA9ICJ1c2VyLWF0IiBdOyB0aGVu CisgCQkJIyBBbHNvIHRlc3QgdXNlckBob3N0CisgCQkJZ290PWAke1NTSH0gLUYgJE9CSi9zc2hf cHJveHkgLUcgIiRhcmdAc29tZWhvc3QiIHwgXAorIAkJCSAgICBhd2sgJyQxPT0iJ3VzZXInIntw cmludCAkMn0nYAorQEAgLTkxLDcgKzkxLDcgQEAgdHJpYWwoKQorIAorIGZvciBpIGluIG1hdGNo ZXhlYyBsb2NhbGNvbW1hbmQgcmVtb3RlY29tbWFuZCBjb250cm9scGF0aCBpZGVudGl0eWFnZW50 IFwKKyAgICAgZm9yd2FyZGFnZW50IGxvY2FsZm9yd2FyZCByZW1vdGVmb3J3YXJkIHJldm9rZWRo b3N0a2V5cyBcCistICAgIHVzZXIgdXNlci1sIHVzZXItYXQgc2V0ZW52IHVzZXJrbm93bmhvc3Rz ZmlsZTsgZG8KKysgICAgdXNlciBzZXRlbnYgdXNlcmtub3duaG9zdHNmaWxlOyBkbworIAl2ZXJi b3NlICR0aWQgJGkgcGVyY2VudAorIAljYXNlICIkaSIgaW4KKyAJbG9jYWxjb21tYW5kfHVzZXJr bm93bmhvc3RzZmlsZSkKK0BAIC0xMzcsMTEgKzEzNywxMSBAQCBkb25lCisgCisgIyBTdWJzZXQg b2YgYWJvdmUgc2luY2Ugd2UgZG9uJ3QgZXhwYW5kIHNoZWxsLXN0eWxlIHZhcmlhYmxlcyBvbiBh bnl0aGluZyB0aGF0CisgIyBydW5zIGEgY29tbWFuZCBiZWNhdXNlIHRoZSBzaGVsbCB3aWxsIGV4 cGFuZCB0aG9zZS4KKytGT089YmFyCisrZXhwb3J0IEZPTworIGZvciBpIGluIGNvbnRyb2xwYXRo IGlkZW50aXR5YWdlbnQgZm9yd2FyZGFnZW50IGxvY2FsZm9yd2FyZCByZW1vdGVmb3J3YXJkIFwK Ky0gICAgdXNlciB1c2VyLWwgdXNlci1hdCBzZXRlbnYgdXNlcmtub3duaG9zdHNmaWxlOyBkbwor KyAgICBzZXRlbnYgdXNlcmtub3duaG9zdHNmaWxlOyBkbworIAl2ZXJib3NlICR0aWQgJGkgZG9s bGFyCistCUZPTz1iYXIKKy0JZXhwb3J0IEZPTworIAl0cmlhbCAkaSAnJHtGT099JyAkRk9PCisg ZG9uZQorIAorQEAgLTE1MiwzICsxNTIsMzIgQEAgZm9yIGkgaW4gY29udHJvbHBhdGggaWRlbnRp dHlhZ2VudCBmb3J3YQorIAl0cmlhbCAkaSAnficgJEhPTUUvCisgCXRyaWFsICRpICd+Ly5zc2gn ICRIT01FLy5zc2gKKyBkb25lCisrCisrZm9yIGkgaW4gdXNlci1sIHVzZXItYXQ7IGRvCisrCXZl cmJvc2UgJHRpZCAkaSBub2V4cGFuZAorKwl0cmlhbCAkaSAnJXUnICcldScKKytkb25lCisrCisr IyBUaGVzZSBzaG91bGQgYmUgbm90IGJlIGV4cGFuZGVkIGJ1dCByZWplY3RlZCBmb3IgY29udGFp bmluZyBzaGVsbCBjaGFyYWN0ZXJzLgorK3ZlcmJvc2UgJHRpZCB1c2VyLWwgbm9lbnYKKyske1NT SH0gLUYgJE9CSi9zc2hfcHJveHkgLWwgJyR7Rk9PfScgLUcgc29tZWhvc3QgJiYgZmFpbCAidXNl ci1sIGV4cGFuZGVkIGVudiIKKyt2ZXJib3NlICR0aWQgdXNlci1hdCBub2VudgorKyR7U1NIfSAt RiAkT0JKL3NzaF9wcm94eSAtRyAnJHtGT099QHNvbWVob3N0JyAmJiBmYWlsICJ1c2VyLWF0IGV4 cGFuZGVkIGVudiIKKysKKytGT089YHByaW50ZiAneFxheSdgCisrZXhwb3J0IEZPTworKworKyMg VGhlc2Ugc2hvdWxkIGJlIHJlamVjdGVkIGFzIGNvbnRhaW5pbmcgY29udHJvbCBjaGFyYWN0ZXJz LgorK3ZlcmJvc2UgJHRpZCB1c2VyLWwgYmFkY2hhcgorKyR7U1NIfSAtRiAkT0JKL3NzaF9wcm94 eSAtbCAiJHtGT099IiAtRyBzb21laG9zdCAmJiBmYWlsICJ1c2VyLWwgZXhwYW5kZWQgZW52Igor K3ZlcmJvc2UgJHRpZCB1c2VyLWF0IGJhZGNoYXIKKyske1NTSH0gLUYgJE9CSi9zc2hfcHJveHkg LUcgIiR7Rk9PfUBzb21laG9zdCIgJiYgZmFpbCAidXNlci1hdCBleHBhbmRlZCBlbnYiCisrCisr IyBMaXRlcmFsIGNvbnRyb2wgY2hhcmFjdGVycyBpbiBjb25maWcgaXMgYWNjZXB0YWJsZQorK3Zl cmJvc2UgJHRpZCB1c2VyIGNvbnRyb2wtbGl0ZXJhbAorKyN0cmlhbCB1c2VyICIkRk9PIiAiJEZP TyIKKysKKysjIENvbnRyb2wgY2hhcmFjdGVycyBleHBhbmRlZCBmcm9tIGNvbmZpZyBhcmVuJ3Qu CisrJHtTU0h9IC1GICRPQkovc3NoX3Byb3h5IC1HICctb1VzZXI9JHtGT099JyBzb21laG9zdCAm JiBcCisrICAgIGZhaWwgInVzZXIgZXhwYW5kZWQgY3RybCIKKysKK2RpZmYgLS1jb2xvciAtcnVO cCBhL3JlZ3Jlc3MvcHJveHlqdW1wLnNoIGIvcmVncmVzcy9wcm94eWp1bXAuc2gKKy0tLSBhL3Jl Z3Jlc3MvcHJveHlqdW1wLnNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr KysgYi9yZWdyZXNzL3Byb3h5anVtcC5zaAkyMDI2LTA0LTIwIDA5OjU2OjQ2LjgyODA0MTM5MyAr MDIwMAorQEAgLTAsMCArMSwxMDIgQEAKKysjCSRPcGVuQlNEOiBwcm94eWp1bXAuc2gsdiAxLjEg MjAyNi8wMy8zMCAwNzoxOTowMiBkam0gRXhwICQKKysjCVBsYWNlZCBpbiB0aGUgUHVibGljIERv bWFpbi4KKysKKyt0aWQ9InByb3h5anVtcCIKKysKKysjIFBhcnNpbmcgdGVzdHMKKyt2ZXJib3Nl ICJiYXNpYyBwYXJzaW5nIgorK2ZvciBqc3BlYyBpbiBcCisrCSJqdW1wMSIgXAorKwkidXNlckBq dW1wMSIgXAorKwkianVtcDE6MjIyMiIgXAorKwkidXNlckBqdW1wMToyMjIyIiBcCisrCSJqdW1w MSxqdW1wMiIgXAorKwkidXNlcjFAanVtcDE6MjIyMSx1c2VyMkBqdW1wMjoyMjIyIiBcCisrCSJz c2g6Ly91c2VyQGhvc3Q6MjIyMyIgXAorKwk7IGRvCisrCWNhc2UgIiRqc3BlYyIgaW4KKysJImp1 bXAxIikJCWV4cGVjdGVkPSJqdW1wMSIgOzsKKysJInVzZXJAanVtcDEiKQkJZXhwZWN0ZWQ9InVz ZXJAanVtcDEiIDs7CisrCSJqdW1wMToyMjIyIikJCWV4cGVjdGVkPSJqdW1wMToyMjIyIiA7Owor KwkidXNlckBqdW1wMToyMjIyIikJZXhwZWN0ZWQ9InVzZXJAanVtcDE6MjIyMiIgOzsKKysJImp1 bXAxLGp1bXAyIikJCWV4cGVjdGVkPSJqdW1wMSxqdW1wMiIgOzsKKysJInVzZXIxQGp1bXAxOjIy MjEsdXNlcjJAanVtcDI6MjIyMiIpCisrCQlleHBlY3RlZD0idXNlcjFAanVtcDE6MjIyMSx1c2Vy MkBqdW1wMjoyMjIyIiA7OworKwkic3NoOi8vdXNlckBob3N0OjIyMjMiKQlleHBlY3RlZD0idXNl ckBob3N0OjIyMjMiIDs7CisrCWVzYWMKKysJZj1gJHtTU0h9IC1HRiAvZGV2L251bGwgLW9Qcm94 eUp1bXA9IiRqc3BlYyIgc29tZWhvc3QgfCBcCisrCQlhd2sgJy9ecHJveHlqdW1wIC97cHJpbnQg JDJ9J2AKKysJaWYgWyAiJGYiICE9ICIkZXhwZWN0ZWQiIF07IHRoZW4KKysJCWZhaWwgIlByb3h5 SnVtcCAkanNwZWM6IGV4cGVjdGVkICRleHBlY3RlZCwgZ290ICRmIgorKwlmaQorKwlmPWAke1NT SH0gLUdGIC9kZXYvbnVsbCAtSiAiJGpzcGVjIiBzb21laG9zdCB8IFwKKysJCWF3ayAnL15wcm94 eWp1bXAgL3twcmludCAkMn0nYAorKwlpZiBbICIkZiIgIT0gIiRleHBlY3RlZCIgXTsgdGhlbgor KwkJZmFpbCAic3NoIC1KICRqc3BlYzogZXhwZWN0ZWQgJGV4cGVjdGVkLCBnb3QgJGYiCisrCWZp CisrZG9uZQorKworK3ZlcmJvc2UgInByZWNlZGVuY2UiCisrZj1gJHtTU0h9IC1HRiAvZGV2L251 bGwgLW9Qcm94eUp1bXA9bm9uZSAtb1Byb3h5SnVtcD1qdW1wMSBzb21laG9zdCB8IFwKKysJZ3Jl cCAiXnByb3h5anVtcCAiYAorK2lmIFsgLW4gIiRmIiBdOyB0aGVuCisrCWZhaWwgIlByb3h5SnVt cD1ub25lIGZpcnN0IGRpZCBub3Qgd2luIgorK2ZpCisrZj1gJHtTU0h9IC1HRiAvZGV2L251bGwg LW9Qcm94eUp1bXA9anVtcCAtb1Byb3h5Q29tbWFuZD1mb28gc29tZWhvc3QgfCBcCisrCWdyZXAg Il5wcm94eWp1bXAgImAKKytpZiBbICIkZiIgIT0gInByb3h5anVtcCBqdW1wIiBdOyB0aGVuCisr CWZhaWwgIlByb3h5SnVtcCBmaXJzdCBkaWQgbm90IHdpbiBvdmVyIFByb3h5Q29tbWFuZCIKKytm aQorK2Y9YCR7U1NIfSAtR0YgL2Rldi9udWxsIC1vUHJveHlDb21tYW5kPWZvbyAtb1Byb3h5SnVt cD1qdW1wIHNvbWVob3N0IHwgXAorKwlncmVwICJecHJveHljb21tYW5kICJgCisraWYgWyAiJGYi ICE9ICJwcm94eWNvbW1hbmQgZm9vIiBdOyB0aGVuCisrCWZhaWwgIlByb3h5Q29tbWFuZCBmaXJz dCBkaWQgbm90IHdpbiBvdmVyIFByb3h5SnVtcCIKKytmaQorKworK3ZlcmJvc2UgImNvbW1hbmQt bGluZSAtSiBpbnZhbGlkIGNoYXJhY3RlcnMiCisrY3AgJE9CSi9zc2hfY29uZmlnICRPQkovc3No X2NvbmZpZy5vcmlnCisrZm9yIGpzcGVjIGluIFwKKysJImhvc3Q7d2l0aDtzZW1pY29sb24iIFwK KysJImhvc3Qnd2l0aCdxdW90ZSIgXAorKwkiaG9zdFxgd2l0aFxgYmFja3RpY2siIFwKKysJImhv c3RcJHdpdGhcJGRvbGxhciIgXAorKwkiaG9zdCh3aXRoKWJyYWNlIiBcCisrCSJ1c2VyO3dpdGg7 c2VtaWNvbG9uQGhvc3QiIFwKKysJInVzZXInd2l0aCdxdW90ZUBob3N0IiBcCisrCSJ1c2VyXGB3 aXRoXGBiYWNrdGlja0Bob3N0IiBcCisrCSJ1c2VyKHdpdGgpYnJhY2VAaG9zdCIgOyBkbworKwkk e1NTSH0gLUdGIC9kZXYvbnVsbCAtSiAiJGpzcGVjIiBzb21laG9zdCA+L2Rldi9udWxsIDI+JjEK KysJaWYgWyAkPyAtbmUgMjU1IF07IHRoZW4KKysJCWZhaWwgInNzaCAtSiBcIiRqc3BlY1wiIHdh cyBub3QgcmVqZWN0ZWQiCisrCWZpCisrCSR7U1NIfSAtR0YgL2Rldi9udWxsIC1vUHJveHlKdW1w PSIkanNwZWMiIHNvbWVob3N0ID4vZGV2L251bGwgMj4mMQorKwlpZiBbICQ/IC1uZSAyNTUgXTsg dGhlbgorKwkJZmFpbCAic3NoIC1vUHJveHlKdW1wPVwiJGpzcGVjXCIgd2FzIG5vdCByZWplY3Rl ZCIKKysJZmkKKytkb25lCisrIyBTcGVjaWFsIGNoYXJhY3RlcnMgc2hvdWxkIGJlIGFjY2VwdGVk IGluIHRoZSBjb25maWcgdGhvdWdoLgorK2VjaG8gIlByb3h5SnVtcCB1c2VyO3dpdGg7c2VtaWNv bG9uQGhvc3Q7d2l0aDtzZW1pY29sb24iID4+ICRPQkovc3NoX2NvbmZpZworK2Y9YCR7U1NIfSAt R0YgJE9CSi9zc2hfY29uZmlnIHNvbWVob3N0IHwgZ3JlcCAiXnByb3h5anVtcCAiYAorK2lmIFsg IiRmIiAhPSAicHJveHlqdW1wIHVzZXI7d2l0aDtzZW1pY29sb25AaG9zdDt3aXRoO3NlbWljb2xv biIgXTsgdGhlbgorKwlmYWlsICJQcm94eUp1bXAgZGlkIG5vdCBhbGxvdyBzcGVjaWFsIGNoYXJh Y3RlcnMgaW4gY29uZmlnOiAkZiIKKytmaQorKworK3ZlcmJvc2UgImZ1bmN0aW9uYWwgdGVzdCIK KysjIFVzZSBkaWZmZXJlbnQgbmFtZXMgdG8gYXZvaWQgdGhlIGxvb3AgZGV0ZWN0aW9uIGluIHNz aC5jCisrZ3JlcCAtaXYgSG9zdEtleUFsaWFzICRPQkovc3NoX2NvbmZpZy5vcmlnID4gJE9CSi9z c2hfY29uZmlnCisrY2F0IDw8IF9FT0YgPj4gJE9CSi9zc2hfY29uZmlnCisrSG9zdCBqdW1wLWhv c3QKKysJSG9zdGtleUFsaWFzIGp1bXAtaG9zdAorK0hvc3QgdGFyZ2V0LWhvc3QKKysJSG9zdGtl eUFsaWFzIHRhcmdldC1ob3N0CisrX0VPRgorK2NwICRPQkova25vd25faG9zdHMgJE9CSi9rbm93 bl9ob3N0cy5vcmlnCisrc2VkICdzL15bXiBdKiAvanVtcC1ob3N0IC8nIDwgJE9CSi9rbm93bl9o b3N0cy5vcmlnID4gJE9CSi9rbm93bl9ob3N0cworK3NlZCAncy9eW14gXSogL3RhcmdldC1ob3N0 IC8nIDwgJE9CSi9rbm93bl9ob3N0cy5vcmlnID4+ICRPQkova25vd25faG9zdHMKKytzdGFydF9z c2hkCisrCisrdmVyYm9zZSAiZnVuY3Rpb25hbCBQcm94eUp1bXAiCisrcmVzPWAke1JFQUxfU1NI fSAtRiAkT0JKL3NzaF9jb25maWcgLUoganVtcC1ob3N0IHRhcmdldC1ob3N0IGVjaG8gIlNVQ0NF U1MiIDI+L2Rldi9udWxsYAorK2lmIFsgIiRyZXMiICE9ICJTVUNDRVNTIiBdOyB0aGVuCisrCWZh aWwgImZ1bmN0aW9uYWwgdGVzdCBmYWlsZWQ6IGV4cGVjdGVkIFNVQ0NFU1MsIGdvdCAkcmVzIgor K2ZpCitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2guYyBiL3NzaC5jCistLS0gYS9zc2guYwkyMDI2 LTA0LTE3IDE2OjU5OjM2LjQ1OTkyMjA1MiArMDIwMAorKysrIGIvc3NoLmMJMjAyNi0wNC0yMCAx MjozOTozNS4xMTQ2NzAwNjkgKzAyMDAKK0BAIC02MzMsNDEgKzYzMyw2IEBAIHNzaF9jb25uX2lu Zm9fZnJlZShzdHJ1Y3Qgc3NoX2Nvbm5faW5mbworIAlmcmVlKGNpbmZvKTsKKyB9CisgCistc3Rh dGljIGludAorLXZhbGlkX2hvc3RuYW1lKGNvbnN0IGNoYXIgKnMpCisteworLQlzaXplX3QgaTsK Ky0KKy0JaWYgKCpzID09ICctJykKKy0JCXJldHVybiAwOworLQlmb3IgKGkgPSAwOyBzW2ldICE9 IDA7IGkrKykgeworLQkJaWYgKHN0cmNocigiJ2BcIiRcXDsmPD58KCl7fSwiLCBzW2ldKSAhPSBO VUxMIHx8CistCQkgICAgaXNzcGFjZSgodV9jaGFyKXNbaV0pIHx8IGlzY250cmwoKHVfY2hhcilz W2ldKSkKKy0JCQlyZXR1cm4gMDsKKy0JfQorLQlyZXR1cm4gMTsKKy19CistCistc3RhdGljIGlu dAorLXZhbGlkX3J1c2VyKGNvbnN0IGNoYXIgKnMpCisteworLQlzaXplX3QgaTsKKy0KKy0JaWYg KCpzID09ICctJykKKy0JCXJldHVybiAwOworLQlmb3IgKGkgPSAwOyBzW2ldICE9IDA7IGkrKykg eworLQkJaWYgKHN0cmNocigiJ2BcIjsmPD58KCl7fSIsIHNbaV0pICE9IE5VTEwpCistCQkJcmV0 dXJuIDA7CistCQkvKiBEaXNhbGxvdyAnLScgYWZ0ZXIgd2hpdGVzcGFjZSAqLworLQkJaWYgKGlz c3BhY2UoKHVfY2hhcilzW2ldKSAmJiBzW2kgKyAxXSA9PSAnLScpCistCQkJcmV0dXJuIDA7Cist CQkvKiBEaXNhbGxvdyBcIGluIGxhc3QgcG9zaXRpb24gKi8KKy0JCWlmIChzW2ldID09ICdcXCcg JiYgc1tpICsgMV0gPT0gJ1wwJykKKy0JCQlyZXR1cm4gMDsKKy0JfQorLQlyZXR1cm4gMTsKKy19 CistCisgLyoKKyAgKiBNYWluIHByb2dyYW0gZm9yIHRoZSBzc2ggY2xpZW50LgorICAqLworQEAg LTY3Nyw2ICs2NDIsNyBAQCBtYWluKGludCBhYywgY2hhciAqKmF2KQorIAlzdHJ1Y3Qgc3NoICpz c2ggPSBOVUxMOworIAlpbnQgaSwgciwgb3B0LCBleGl0X3N0YXR1cywgdXNlX3N5c2xvZywgZGly ZWN0LCB0aW1lb3V0X21zOworIAlpbnQgd2FzX2FkZHIsIGNvbmZpZ190ZXN0ID0gMCwgb3B0X3Rl cm1pbmF0ZWQgPSAwLCB3YW50X2ZpbmFsX3Bhc3MgPSAwOworKwlpbnQgdXNlcl9vbl9jb21tYW5k bGluZSA9IDAsIHVzZXJfd2FzX2RlZmF1bHQgPSAwLCB1c2VyX2V4cGFuZGVkID0gMDsKKyAJY2hh ciAqcCwgKmNwLCAqbGluZSwgKmFyZ3YwLCAqbG9nZmlsZSwgKmFyZ3M7CisgCWNoYXIgY25hbWVb TklfTUFYSE9TVF0sIHRoaXNob3N0W05JX01BWEhPU1RdOworIAlzdHJ1Y3Qgc3RhdCBzdDsKK0BA IC05MjUsOSArODkxLDggQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKKyAJCQl9CisgCQkJaWYg KG9wdGlvbnMucHJveHlfY29tbWFuZCAhPSBOVUxMKQorIAkJCQlmYXRhbCgiQ2Fubm90IHNwZWNp ZnkgLUogd2l0aCBQcm94eUNvbW1hbmQiKTsKKy0JCQlpZiAocGFyc2VfanVtcChvcHRhcmcsICZv cHRpb25zLCAxKSA9PSAtMSkKKysJCQlpZiAocGFyc2VfanVtcChvcHRhcmcsICZvcHRpb25zLCAx LCAxKSA9PSAtMSkKKyAJCQkJZmF0YWwoIkludmFsaWQgLUogYXJndW1lbnQiKTsKKy0JCQlvcHRp b25zLnByb3h5X2NvbW1hbmQgPSB4c3RyZHVwKCJub25lIik7CisgCQkJYnJlYWs7CisgCQljYXNl ICd0JzoKKyAJCQlpZiAob3B0aW9ucy5yZXF1ZXN0X3R0eSA9PSBSRVFVRVNUX1RUWV9ZRVMpCitA QCAtMTAzNiw4ICsxMDAxLDEwIEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCisgCQkJfQorIAkJ CWJyZWFrOworIAkJY2FzZSAnbCc6CistCQkJaWYgKG9wdGlvbnMudXNlciA9PSBOVUxMKQorKwkJ CWlmIChvcHRpb25zLnVzZXIgPT0gTlVMTCkgeworIAkJCQlvcHRpb25zLnVzZXIgPSB4c3RyZHVw KG9wdGFyZyk7CisrCQkJCXVzZXJfb25fY29tbWFuZGxpbmUgPSAxOworKwkJCX0KKyAJCQlicmVh azsKKyAKKyAJCWNhc2UgJ0wnOgorQEAgLTExNDAsNiArMTEwNyw3IEBAIG1haW4oaW50IGFjLCBj aGFyICoqYXYpCisgCQkJaWYgKG9wdGlvbnMudXNlciA9PSBOVUxMKSB7CisgCQkJCW9wdGlvbnMu dXNlciA9IHR1c2VyOworIAkJCQl0dXNlciA9IE5VTEw7CisrCQkJCXVzZXJfb25fY29tbWFuZGxp bmUgPSAxOworIAkJCX0KKyAJCQlmcmVlKHR1c2VyKTsKKyAJCQlpZiAob3B0aW9ucy5wb3J0ID09 IC0xICYmIHRwb3J0ICE9IC0xKQorQEAgLTExNTQsNiArMTEyMiw3IEBAIG1haW4oaW50IGFjLCBj aGFyICoqYXYpCisgCQkJCWlmIChvcHRpb25zLnVzZXIgPT0gTlVMTCkgeworIAkJCQkJb3B0aW9u cy51c2VyID0gcDsKKyAJCQkJCXAgPSBOVUxMOworKwkJCQkJdXNlcl9vbl9jb21tYW5kbGluZSA9 IDE7CisgCQkJCX0KKyAJCQkJKmNwKysgPSAnXDAnOworIAkJCQlob3N0ID0geHN0cmR1cChjcCk7 CitAQCAtMTE3Myw4ICsxMTQyLDE1IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCisgCWlmICgh aG9zdCkKKyAJCXVzYWdlKCk7CisgCistCWlmICghdmFsaWRfaG9zdG5hbWUoaG9zdCkpCisrCS8q CisrCSAqIFZhbGlkYXRlIGNvbW1hbmRsaW5lLXNwZWNpZmllZCB2YWx1ZXMgdGhhdCBlbmQgdXAg aW4gJXRva2VucworKwkgKiBiZWZvcmUgdGhleSBhcmUgdXNlZCBpbiBjb25maWcgcGFyc2luZy4K KysJICovCisrCWlmIChvcHRpb25zLnVzZXIgIT0gTlVMTCAmJiAhc3NoX3ZhbGlkX3J1c2VyKG9w dGlvbnMudXNlcikpCisrCQlmYXRhbCgicmVtb3RlIHVzZXJuYW1lIGNvbnRhaW5zIGludmFsaWQg Y2hhcmFjdGVycyIpOworKwlpZiAoIXNzaF92YWxpZF9ob3N0bmFtZShob3N0KSkKKyAJCWZhdGFs KCJob3N0bmFtZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMiKTsKKysKKyAJb3B0aW9ucy5o b3N0X2FyZyA9IHhzdHJkdXAoaG9zdCk7CisgCisgCS8qIEluaXRpYWxpemUgdGhlIGNvbW1hbmQg dG8gZXhlY3V0ZSBvbiByZW1vdGUgaG9zdC4gKi8KK0BAIC0xMzEzLDggKzEyODksMTAgQEAgbWFp bihpbnQgYWMsIGNoYXIgKiphdikKKyAJaWYgKGZpbGxfZGVmYXVsdF9vcHRpb25zKCZvcHRpb25z KSAhPSAwKQorIAkJY2xlYW51cF9leGl0KDI1NSk7CisgCistCWlmIChvcHRpb25zLnVzZXIgPT0g TlVMTCkKKysJaWYgKG9wdGlvbnMudXNlciA9PSBOVUxMKSB7CisrCQl1c2VyX3dhc19kZWZhdWx0 ID0gMTsKKyAJCW9wdGlvbnMudXNlciA9IHhzdHJkdXAocHctPnB3X25hbWUpOworKwl9CisgCisg CS8qCisgCSAqIElmIFByb3h5SnVtcCBvcHRpb24gc3BlY2lmaWVkLCB0aGVuIGNvbnN0cnVjdCBh IFByb3h5Q29tbWFuZCBub3cuCitAQCAtMTM0Miw3ICsxMzIwLDggQEAgbWFpbihpbnQgYWMsIGNo YXIgKiphdikKKyAJCQlzc2hiaW4gPSAic3NoIjsKKyAKKyAJCS8qIENvbnNpc3RlbmN5IGNoZWNr ICovCistCQlpZiAob3B0aW9ucy5wcm94eV9jb21tYW5kICE9IE5VTEwpCisrCQlpZiAob3B0aW9u cy5wcm94eV9jb21tYW5kICE9IE5VTEwgJiYKKysJCSAgICBzdHJjYXNlY21wKG9wdGlvbnMucHJv eHlfY29tbWFuZCwgIm5vbmUiKSAhPSAwKQorIAkJCWZhdGFsKCJpbmNvbnNpc3RlbnQgb3B0aW9u czogUHJveHlDb21tYW5kK1Byb3h5SnVtcCIpOworIAkJLyogTmV2ZXIgdXNlIEZEIHBhc3Npbmcg Zm9yIFByb3h5SnVtcCAqLworIAkJb3B0aW9ucy5wcm94eV91c2VfZmRwYXNzID0gMDsKK0BAIC0x NDYyLDIwICsxNDQxLDMwIEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCisgCSAgICAiIiA6IG9w dGlvbnMuanVtcF9ob3N0KTsKKyAKKyAJLyoKKy0JICogRXhwYW5kIFVzZXIuIEl0IGNhbm5vdCBj b250YWluICVyIChpdHNlbGYpIG9yICVDIHNpbmNlIFVzZXIgaXMKKysJICogSWYgdGhlIHVzZXIg d2FzIHNwZWNpZmllZCB2aWEgYSBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSB0aGVuIGF0dGVtcHQK KysJICogdG8gZXhwYW5kIGl0LiBJdCBjYW5ub3QgY29udGFpbiAlciAoaXRzZWxmKSBvciAlQyBz aW5jZSBVc2VyIGlzCisgCSAqIGEgY29tcG9uZW50IG9mIHRoZSBoYXNoLgorIAkgKi8KKy0JaWYg KG9wdGlvbnMudXNlciAhPSBOVUxMKSB7CisrCWlmICghdXNlcl9vbl9jb21tYW5kbGluZSAmJiAh dXNlcl93YXNfZGVmYXVsdCkgeworIAkJaWYgKChwID0gcGVyY2VudF9kb2xsYXJfZXhwYW5kKG9w dGlvbnMudXNlciwKKyAJCSAgICBERUZBVUxUX0NMSUVOVF9QRVJDRU5UX0VYUEFORF9BUkdTX05P VVNFUihjaW5mbyksCisgCQkgICAgKGNoYXIgKilOVUxMKSkgPT0gTlVMTCkKKyAJCQlmYXRhbCgi aW52YWxpZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBleHBhbnNpb24iKTsKKysJCXVzZXJfZXhwYW5k ZWQgPSBzdHJjbXAocCwgb3B0aW9ucy51c2VyKSAhPSAwOworIAkJZnJlZShvcHRpb25zLnVzZXIp OworIAkJb3B0aW9ucy51c2VyID0gcDsKKy0JCWlmICghdmFsaWRfcnVzZXIob3B0aW9ucy51c2Vy KSkKKy0JCQlmYXRhbCgicmVtb3RlIHVzZXJuYW1lIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVy cyIpOworIAl9CisgCisrCS8qCisrCSAqIFVzZXJuYW1lcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1h bmRsaW5lIG9yIGV4cGFuZGVkIGZyb20gdGhlCisrCSAqIGNvbmZpZ3VyYXRpb24gZmlsZSBtdXN0 IGJlIHZhbGlkYXRlZC4KKysJICogQ29udmVyc2VseSwgdXNlcm5hbWVzIGZyb20gZ2V0cHduYW0o Mykgb3Igc3BlY2lmaWVkIGFzIGxpdGVyYWxzCisrCSAqIHZpYSBjb25maWd1cmF0aW9uIChpLmUu IG5vdCBleHBhbmRlZCkgYXJlIG5vdCBzdWJqZWN0IHRvIHZhbGlkYXRpb24uCisrCSAqLworKwlp ZiAoKHVzZXJfb25fY29tbWFuZGxpbmUgfHwgdXNlcl9leHBhbmRlZCkgJiYKKysJICAgICFzc2hf dmFsaWRfcnVzZXIob3B0aW9ucy51c2VyKSkKKysJCWZhdGFsKCJyZW1vdGUgdXNlcm5hbWUgY29u dGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIik7CisrCisgCS8qIE5vdyBVc2VyIGlzIGV4cGFuZGVk LCBzdG9yZSBpdCBhbmQgY2FsY3VsYXRlIGhhc2guICovCisgCWNpbmZvLT5yZW11c2VyID0geHN0 cmR1cChvcHRpb25zLnVzZXIpOworIAljaW5mby0+Y29ubl9oYXNoX2hleCA9IHNzaF9jb25uZWN0 aW9uX2hhc2goY2luZm8tPnRoaXNob3N0LAoKZGlmZiAtLWdpdCBhLzIwMDAtb3BlbnNzaC0xMC4w cDEtZ3Npc3NoLnBhdGNoIGIvMjAwMC1vcGVuc3NoLTEwLjBwMS1nc2lzc2gucGF0Y2gKaW5kZXgg NGExYTMyOS4uYzc3YmU5OSAxMDA2NDQKLS0tIGEvMjAwMC1vcGVuc3NoLTEwLjBwMS1nc2lzc2gu cGF0Y2gKKysrIGIvMjAwMC1vcGVuc3NoLTEwLjBwMS1nc2lzc2gucGF0Y2gKQEAgLTIxMTksMjAg KzIxMTksMTYgQEAgZGlmZiAtTnVyIG9wZW5zc2gtMTAuMHAxLm9yaWcvc3NoLmMgb3BlbnNzaC0x MC4wcDEvc3NoLmMKICAJCXIgPSBzbnByaW50ZihidWYsIHNpemVvZiBidWYsICIlcy8lcyIsIHB3 LT5wd19kaXIsCiAgCQkgICAgX1BBVEhfU1NIX1VTRVJfQ09ORkZJTEUpOwogIAkJaWYgKHIgPiAw ICYmIChzaXplX3QpciA8IHNpemVvZihidWYpKQotQEAgLTEzMTMsOCArMTM0NSwxMiBAQAotIAlp ZiAoZmlsbF9kZWZhdWx0X29wdGlvbnMoJm9wdGlvbnMpICE9IDApCi0gCQljbGVhbnVwX2V4aXQo MjU1KTsKLSAKLS0JaWYgKG9wdGlvbnMudXNlciA9PSBOVUxMKQotKwlpZiAob3B0aW9ucy51c2Vy ID09IE5VTEwpIHsKK0BAIC0xMzEzLDYgKzEzNDUsOSBAQAorIAlpZiAob3B0aW9ucy51c2VyID09 IE5VTEwpIHsKKyAJCXVzZXJfd2FzX2RlZmF1bHQgPSAxOwogIAkJb3B0aW9ucy51c2VyID0geHN0 cmR1cChwdy0+cHdfbmFtZSk7CiArCQlvcHRpb25zLmltcGxpY2l0ID0gMTsKICsJfSBlbHNlIHsK ICsJCW9wdGlvbnMuaW1wbGljaXQgPSAwOwotKwl9CisgCX0KICAKICAJLyoKLSAJICogSWYgUHJv eHlKdW1wIG9wdGlvbiBzcGVjaWZpZWQsIHRoZW4gY29uc3RydWN0IGEgUHJveHlDb21tYW5kIG5v dy4KIGRpZmYgLU51ciBvcGVuc3NoLTEwLjBwMS5vcmlnL3NzaF9jb25maWcgb3BlbnNzaC0xMC4w cDEvc3NoX2NvbmZpZwogLS0tIG9wZW5zc2gtMTAuMHAxLm9yaWcvc3NoX2NvbmZpZwkyMDI1LTA2 LTE0IDA4OjI0OjU0Ljk1NTY5NDg2MiArMDIwMAogKysrIG9wZW5zc2gtMTAuMHAxL3NzaF9jb25m aWcJMjAyNS0wNi0xNCAwODoyNTo1MC4zMzQ0Mjc1MDMgKzAyMDAKCmRpZmYgLS1naXQgYS9nc2kt b3BlbnNzaC5zcGVjIGIvZ3NpLW9wZW5zc2guc3BlYwppbmRleCA0NDUxMTY0Li5mYzE2MTgwIDEw MDY0NAotLS0gYS9nc2ktb3BlbnNzaC5zcGVjCisrKyBiL2dzaS1vcGVuc3NoLnNwZWMKQEAgLTI4 LDcgKzI4LDcgQEAKIFN1bW1hcnk6IEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTU0ggcHJvdG9j b2wgd2l0aCBHU0kgYXV0aGVudGljYXRpb24KIE5hbWU6IGdzaS1vcGVuc3NoCiBWZXJzaW9uOiAl e29wZW5zc2hfdmVyfQotUmVsZWFzZTogNCV7P2Rpc3R9CitSZWxlYXNlOiA1JXs/ZGlzdH0KIFBy b3ZpZGVzOiBnc2lzc2ggPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KIE9ic29sZXRlczogZ3Npc3No IDwgNS44cDItMgogVVJMOiBodHRwOi8vd3d3Lm9wZW5zc2guY29tL3BvcnRhYmxlLmh0bWwKQEAg LTE2MSw2ICsxNjEsMjIgQEAgUGF0Y2gwMDUxOiAwMDUxLVByb3ZpZGUtYmV0dGVyLWVycm9yLWZv ci1ub24tc3VwcG9ydGVkLXByaXZhdGUta2V5cy5wYXRjaAogUGF0Y2gwMDUyOiAwMDUyLUlnbm9y ZS1iYWQtaG9zdGtleXMtaW4ta25vd25faG9zdHMtZmlsZS5wYXRjaAogIyBodHRwczovL2dpdGh1 Yi5jb20vb3BlbnNzaC9vcGVuc3NoLXBvcnRhYmxlL3B1bGwvNTAwCiBQYXRjaDAwNTM6IDAwNTMt c3VwcG9ydC1hdXRoZW50aWNhdGlvbi1pbmRpY2F0b3JzLWluLUdTU0FQSS5wYXRjaAorIyB1cHN0 cmVhbSA0ODdlOGFjMTQ2ZjdkNjYxNmY2NWMxMjVkNWVkYjIxMDUxOWI4MzNhCitQYXRjaDAwNTQ6 IDAwNTQtb3BlbnNzaC05LjlwMS1zY3AtY2xlYXItc2V0dWlkLnBhdGNoCisjIHVwc3RyZWFtIGM4 MDViOTdiNjdjNzc0ZTBiZjkyMmZmYjI5ZGZiY2RhOWQ3YjVhZGQKK1BhdGNoMDA1NTogMDA1NS1v cGVuc3NoLTkuOXAxLW11eC1hc2twYXNzLWNoZWNrLnBhdGNoCisjIHVwc3RyZWFtIGZkMWM3ZTEz MWYzMzE5NDJkMjBmNDJmMzFlNzk5MTJkNTcwMDgxZmEKK1BhdGNoMDA1NjogMDA1Ni1vcGVuc3No LTkuOXAxLWVjZHNhLWluY29tcGxldGUtYXBwbGljYXRpb24ucGF0Y2gKKyMgdXBzdHJlYW0gZmQx YzdlMTMxZjMzMTk0MmQyMGY0MmYzMWU3OTkxMmQ1NzAwODFmYQorUGF0Y2gwMDU3OiAwMDU3LW9w ZW5zc2gtOS45cDEtYXV0aG9yaXplZC1rZXlzLXByaW5jaXBsZXMtb3B0aW9uLnBhdGNoCisjIHVw c3RyZWFtIDQzYjNiZmY0N2JiMDI5ZjIyOTliYWNiNmEzNjA1Nzk4MWIzOWZkYjAKK1BhdGNoMDA1 ODogMDA1OC1vcGVuc3NoLTkuOXAxLXJlamVjdC1udWxsLWNoYXItaW4tdXJsLXN0cmluZy5wYXRj aAorIyB1cHN0cmVhbSAzNWQ1OTE3NjUyMTA2YWVkZTQ3NjIxYmIzZjY0MDQ0NjA0MTY0MDQzCisj IHVwc3RyZWFtIDc2Njg1YzliMDlhNjY0MzVjZDJhZDgzNzMyNDZhZGYxYzUzOTc2ZDMKKyMgdXBz dHJlYW0gMGEwZWY0NTE1MzYxMTQzY2FkMjFhZmEwNzIzMTk4MjM4NTRjMWNmNgorIyB1cHN0cmVh bSA2MDdiZDg3MWVjMDI5ZTlhYTIyZTYzMmEyMjU0NzI1MGYzY2FlMjIzCisjIHVwc3RyZWFtIDEz NDBkM2ZhOGU0YmIxMjI5MDZhODIxNTljNGM5YjkxNTg0ZDY1Y2UKK1BhdGNoMDA1OTogMDA1OS1v cGVuc3NoLTEwLjBwMS1yZWplY3QtY250cmwtY2hhcnMtaW4tdXNlcm5hbWUucGF0Y2gKIAogI2h0 dHBzOi8vYnVnemlsbGEubWluZHJvdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODEKIFBhdGNoMTAw MDogMTAwMC1vcGVuc3NoLWNvdmVyaXR5LnBhdGNoCkBAIC0xNzMsNyArMTg5LDcgQEAgUGF0Y2gy MDAwOiAyMDAwLW9wZW5zc2gtMTAuMHAxLWdzaXNzaC5wYXRjaAogIyBCYXNlZCBvbiBodHRwczov L2dpdGh1Yi5jb20vcmFwaWVyMS9ocG4tc3NoLyB0YWc6IGhwbi0xOC43LjAKIFBhdGNoMjAwMTog MjAwMS1vcGVuc3NoLTEwLjBwMS1ocG4tMTguNy4wLnBhdGNoCiAKLUxpY2Vuc2U6IEJTRC0zLUNs YXVzZSBBTkQgQlNELTItQ2xhdXNlIEFORCBJU0MgQU5EIFNTSC1PcGVuU1NIIEFORCBzc2gta2V5 c2NhbiBBTkQgc3ByaW50ZiBBTkQgTGljZW5zZVJlZi1GZWRvcmEtUHVibGljLURvbWFpbiBBTkQg WDExLWRpc3RyaWJ1dGUtbW9kaWZpY2F0aW9ucy12YXJpYW50CitMaWNlbnNlOiBCU0QtMy1DbGF1 c2UgQU5EIEJTRC0yLUNsYXVzZSBBTkQgSVNDIEFORCBTU0gtT3BlblNTSCBBTkQgc3NoLWtleXNj YW4gQU5EIHNucHJpbnRmIEFORCBMaWNlbnNlUmVmLUZlZG9yYS1QdWJsaWMtRG9tYWluIEFORCBY MTEtZGlzdHJpYnV0ZS1tb2RpZmljYXRpb25zLXZhcmlhbnQKIFJlcXVpcmVzOiAvc2Jpbi9ub2xv Z2luCiBSZXF1aXJlczogb3BlbnNzbC1saWJzID49IDMuNS4wCiAKQEAgLTQ5OCw2ICs1MTQsOSBA QCBmaQogJWdob3N0ICVhdHRyKDA2NDQscm9vdCxyb290KSAle19sb2NhbHN0YXRlZGlyfS9saWIv LmdzaXNzaC1ob3N0LWtleXMtbWlncmF0aW9uCiAKICVjaGFuZ2Vsb2cKKyogV2VkIE1heSAyNyAy MDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNlPiAtIDEwLjBw MS01CistIEJhc2VkIG9uIG9wZW5zc2gtMTAuMHAxLTkuZmM0MworCiAqIFRodSBNYXIgMTkgMjAy NiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51dS5zZT4gLSAxMC4wcDEt NAogLSBCYXNlZCBvbiBvcGVuc3NoLTEwLjBwMS03LmZjNDMKIAo=