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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Implement MiniDebugInfo F-18 Feature consumer (Alexander Larsson, BZ 834068). Date: Sat, 27 Jun 2026 23:55:46 GMT Message-ID: <178260454605.1.3831076210282130754.rpms-gdb-c501c4bdb1f4@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: c501c4bdb1f4b298f507ad9a7f1c5bf0596089f8 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogYzUwMWM0YmRiMWY0YjI5OGY1MDdhZDlhN2Yx YzViZjA1OTYwODlmOApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxMi0wNy0wNVQyMzoxODoyNCswMjowMApTdGF0cyAgOiArMTA0 OS8tMSBpbiAyIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcv cnBtcy9nZGIvYy9jNTAxYzRiZGIxZjRiMjk4ZjUwN2FkOWE3ZjFjNWJmMDU5NjA4OWY4P2JyYW5j aD1nZGItMTcuMi1yZWJhc2UtZjQ0CgpMb2c6CkltcGxlbWVudCBNaW5pRGVidWdJbmZvIEYtMTgg RmVhdHVyZSBjb25zdW1lciAoQWxleGFuZGVyIExhcnNzb24sIEJaIDgzNDA2OCkuCgotLS0KZGlm ZiAtLWdpdCBhL2dkYi1taW5pZGVidWdpbmZvLnBhdGNoIGIvZ2RiLW1pbmlkZWJ1Z2luZm8ucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDYwYTY2YgotLS0gL2Rldi9u dWxsCisrKyBiL2dkYi1taW5pZGVidWdpbmZvLnBhdGNoCkBAIC0wLDAgKzEsMTA0MCBAQAoraHR0 cDovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVhdHVyZXMvTWluaURlYnVnSW5mbworaHR0cHM6 Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD04MzQwNjgKKworUGF0Y2ggYnkg QWxleGFuZGVyIExhcnNzb24uCitSZXZpZXcvbW9kaWZpY2F0aW9ucyBhbmQgdGVzdGZpbGUgYnkg SmFuIEtyYXRvY2h2aWwuCisKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9NYWtlZmls ZS5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvTWFrZWZp bGUuaW4JMjAxMi0wNy0wNSAyMjo0NzozOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjUw LjIwMTIwNzAzL2dkYi9NYWtlZmlsZS5pbgkyMDEyLTA3LTA1IDIyOjQ3OjQ1LjQ3NTUwOTM3MiAr MDIwMAorQEAgLTE1MSw2ICsxNTEsOSBAQCBSRUFETElORV9DRkxBR1MgPSBAUkVBRExJTkVfQ0ZM QUdTQAorICMgV2hlcmUgaXMgZXhwYXQ/ICBUaGlzIHdpbGwgYmUgZW1wdHkgaWYgZXhwYXQgd2Fz IG5vdCBhdmFpbGFibGUuCisgTElCRVhQQVQgPSBATElCRVhQQVRACisgCisrIyBXaGVyZSBpcyBs em1hPyAgVGhpcyB3aWxsIGJlIGVtcHR5IGlmIGx6bWEgd2FzIG5vdCBhdmFpbGFibGUuCisrTElC TFpNQSA9IEBMSUJMWk1BQAorKworIFdBUk5fQ0ZMQUdTID0gQFdBUk5fQ0ZMQUdTQAorIFdFUlJP Ul9DRkxBR1MgPSBAV0VSUk9SX0NGTEFHU0AKKyBHREJfV0FSTl9DRkxBR1MgPSAkKFdBUk5fQ0ZM QUdTKQorQEAgLTQ2Nyw3ICs0NzAsNyBAQCBJTlRFUk5BTF9MREZMQUdTID0gJChDRkxBR1MpICQo R0xPQkFMX0NGCisgIyBMSUJJQkVSVFkgYXBwZWFycyB0d2ljZSBvbiBwdXJwb3NlLgorIENMSUJT ID0gJChTSU0pICQoUkVBRExJTkUpICQoT1BDT0RFUykgJChCRkQpICQoSU5UTCkgJChMSUJJQkVS VFkpICQoTElCREVDTlVNQkVSKSBcCisgCSQoWE1fQ0xJQlMpICQoTkFUX0NMSUJTKSAkKEdEQlRL TElCUykgQExJQlNAIEBQWVRIT05fTElCU0AgXAorLQkkKExJQkVYUEFUKSBcCisrCSQoTElCRVhQ QVQpICQoTElCTFpNQSkgXAorIAkkKExJQklCRVJUWSkgJChXSU4zMkxJQlMpICQoTElCR05VKQor IENERVBTID0gJChYTV9DREVQUykgJChOQVRfQ0RFUFMpICQoU0lNKSAkKEJGRCkgJChSRUFETElO RV9ERVBTKSBcCisgCSQoT1BDT0RFUykgJChJTlRMX0RFUFMpICQoTElCSUJFUlRZKSAkKENPTkZJ R19ERVBTKSAkKExJQkdOVSkKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb25maWcu aW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL2NvbmZpZy5p bgkyMDEyLTA3LTA1IDIyOjQ3OjQwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuNTAuMjAx MjA3MDMvZ2RiL2NvbmZpZy5pbgkyMDEyLTA3LTA1IDIyOjQ3OjQ1LjQ3NjUwOTM3MSArMDIwMAor QEAgLTE5OCw2ICsxOTgsOSBAQAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbGli aWNvbnZsaXN0JyBmdW5jdGlvbi4gKi8KKyAjdW5kZWYgSEFWRV9MSUJJQ09OVkxJU1QKKyAKKysv KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGx6bWEgbGlicmFyeS4gKi8KKysjdW5kZWYgSEFWRV9M SUJMWk1BCisrCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtJyBsaWJyYXJ5ICgt bG0pLiAqLworICN1bmRlZiBIQVZFX0xJQk0KKyAKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwNzAz L2dkYi9jb25maWd1cmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcv Z2RiL2NvbmZpZ3VyZQkyMDEyLTA3LTA1IDIyOjQ3OjQwLjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi03LjQuNTAuMjAxMjA3MDMvZ2RiL2NvbmZpZ3VyZQkyMDEyLTA3LTA1IDIyOjQ3OjQ1LjQ4NTUw OTM2MyArMDIwMAorQEAgLTY0MSw2ICs2NDEsOSBAQCBUQ0xfVkVSU0lPTgorIFdJTjMyTERBUFAK KyBHVUlfQ0ZMQUdTX1gKKyBMSUJHVUkKKytMVExJQkxaTUEKKytMSUJMWk1BCisrSEFWRV9MSUJM Wk1BCisgV0lOMzJMSUJTCisgU0VSX0hBUkRXSVJFCisgV0VSUk9SX0NGTEFHUworQEAgLTgxMyw2 ICs4MTYsOCBAQCB3aXRoX3N5c3RlbV9nZGJpbml0CisgZW5hYmxlX3dlcnJvcgorIGVuYWJsZV9i dWlsZF93YXJuaW5ncworIGVuYWJsZV9nZGJfYnVpbGRfd2FybmluZ3MKKyt3aXRoX2x6bWEKKyt3 aXRoX2xpYmx6bWFfcHJlZml4Cisgd2l0aF90Y2wKKyB3aXRoX3RrCisgd2l0aF94CitAQCAtMTUz Miw2ICsxNTM3LDkgQEAgT3B0aW9uYWwgUGFja2FnZXM6CisgICAtLXdpdGgtc3lzcm9vdFs9RElS XSAgICBzZWFyY2ggZm9yIHVzci9saWIgZXQgYWwgd2l0aGluIERJUgorICAgLS13aXRoLXN5c3Rl bS1nZGJpbml0PVBBVEgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkg bG9hZCBhIHN5c3RlbS13aWRlIGdkYmluaXQgZmlsZQorKyAgLS13aXRoLWx6bWEgICAgICAgICAg ICAgc3VwcG9ydCBsem1hIGNvbXByZXNzaW9uIChhdXRvL3llcy9ubykKKysgIC0td2l0aC1saWJs em1hLXByZWZpeFs9RElSXSAgc2VhcmNoIGZvciBsaWJsem1hIGluIERJUi9pbmNsdWRlIGFuZCBE SVIvbGliCisrICAtLXdpdGhvdXQtbGlibHptYS1wcmVmaXggICAgIGRvbid0IHNlYXJjaCBmb3Ig bGlibHptYSBpbiBpbmNsdWRlZGlyIGFuZCBsaWJkaXIKKyAgIC0td2l0aC10Y2wgICAgICAgICAg ICAgIGRpcmVjdG9yeSBjb250YWluaW5nIHRjbCBjb25maWd1cmF0aW9uICh0Y2xDb25maWcuc2gp CisgICAtLXdpdGgtdGsgICAgICAgICAgICAgICBkaXJlY3RvcnkgY29udGFpbmluZyB0ayBjb25m aWd1cmF0aW9uICh0a0NvbmZpZy5zaCkKKyAgIC0td2l0aC14ICAgICAgICAgICAgICAgIHVzZSB0 aGUgWCBXaW5kb3cgU3lzdGVtCitAQCAtMTMxNTEsNiArMTMxNTksNDkyIEBAIExJQlM9JE9MRF9M SUJTCisgIyBBZGQgYW55IGhvc3Qtc3BlY2lmaWMgb2JqZWN0cyB0byBHREIuCisgQ09ORklHX09C Uz0iJHtDT05GSUdfT0JTfSAke2dkYl9ob3N0X29ic30iCisgCisrIyBJZiBidWlsZGluZyBvbiBF TEYsIGxvb2sgZm9yIGx6bWEgc3VwcG9ydCBmb3IgZW1iZWRkZWQgY29tcHJlc3NlZCBkZWJ1ZyBp bmZvLgorK2lmIHRlc3QgJGdkYl9jdl92YXJfZWxmID0geWVzOyB0aGVuCisrCisrIyBDaGVjayB3 aGV0aGVyIC0td2l0aC1sem1hIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfbHptYStzZXR9 IiA9IHNldDsgdGhlbiA6CisrICB3aXRodmFsPSR3aXRoX2x6bWE7CisrZWxzZQorKyAgd2l0aF9s em1hPWF1dG8KKytmaQorKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyB3aGV0aGVyIHRvIHVzZSBsem1hIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyB3aGV0aGVyIHRvIHVzZSBsem1hLi4uICIgPiY2OyB9CisrICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhfbHptYSIgPiY1CisrJGFzX2Vj aG8gIiR3aXRoX2x6bWEiID4mNjsgfQorKworKyAgaWYgdGVzdCAiJHt3aXRoX2x6bWF9IiAhPSBu bzsgdGhlbgorKworKworKworKworKworKworKworKworKyAgICB1c2VfYWRkaXRpb25hbD15ZXMK KysKKysgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKysgIHByZWZpeD0iJGFjbF9maW5hbF9w cmVmaXgiCisrICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorKyAgZXhlY19w cmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisrCisrICAgIGV2YWwgYWRkaXRpb25hbF9p bmNsdWRlZGlyPVwiJGluY2x1ZGVkaXJcIgorKyAgICBldmFsIGFkZGl0aW9uYWxfbGliZGlyPVwi JGxpYmRpclwiCisrCisrICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorKyAg cHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgorKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgt bGlibHptYS1wcmVmaXggd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9saWJsem1hX3ByZWZp eCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICB3aXRodmFsPSR3aXRoX2xpYmx6bWFfcHJlZml4Owor KyAgICBpZiB0ZXN0ICJYJHdpdGh2YWwiID0gIlhubyI7IHRoZW4KKysgICAgICB1c2VfYWRkaXRp b25hbD1ubworKyAgICBlbHNlCisrICAgICAgaWYgdGVzdCAiWCR3aXRodmFsIiA9ICJYIjsgdGhl bgorKworKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorKyAgcHJlZml4PSIkYWNsX2ZpbmFs X3ByZWZpeCIKKysgIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisrICBleGVj X3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKKysKKysgICAgICAgICAgZXZhbCBhZGRp dGlvbmFsX2luY2x1ZGVkaXI9XCIkaW5jbHVkZWRpclwiCisrICAgICAgICAgIGV2YWwgYWRkaXRp b25hbF9saWJkaXI9XCIkbGliZGlyXCIKKysKKysgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhl Y19wcmVmaXgiCisrICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCisrCisrICAgICAgZWxzZQor KyAgICAgICAgYWRkaXRpb25hbF9pbmNsdWRlZGlyPSIkd2l0aHZhbC9pbmNsdWRlIgorKyAgICAg ICAgYWRkaXRpb25hbF9saWJkaXI9IiR3aXRodmFsL2xpYiIKKysgICAgICBmaQorKyAgICBmaQor KworK2ZpCisrCisrICAgICAgTElCTFpNQT0KKysgIExUTElCTFpNQT0KKysgIElOQ0xaTUE9Cisr ICBycGF0aGRpcnM9CisrICBsdHJwYXRoZGlycz0KKysgIG5hbWVzX2FscmVhZHlfaGFuZGxlZD0K KysgIG5hbWVzX25leHRfcm91bmQ9J2x6bWEgJworKyAgd2hpbGUgdGVzdCAtbiAiJG5hbWVzX25l eHRfcm91bmQiOyBkbworKyAgICBuYW1lc190aGlzX3JvdW5kPSIkbmFtZXNfbmV4dF9yb3VuZCIK KysgICAgbmFtZXNfbmV4dF9yb3VuZD0KKysgICAgZm9yIG5hbWUgaW4gJG5hbWVzX3RoaXNfcm91 bmQ7IGRvCisrICAgICAgYWxyZWFkeV9oYW5kbGVkPQorKyAgICAgIGZvciBuIGluICRuYW1lc19h bHJlYWR5X2hhbmRsZWQ7IGRvCisrICAgICAgICBpZiB0ZXN0ICIkbiIgPSAiJG5hbWUiOyB0aGVu CisrICAgICAgICAgIGFscmVhZHlfaGFuZGxlZD15ZXMKKysgICAgICAgICAgYnJlYWsKKysgICAg ICAgIGZpCisrICAgICAgZG9uZQorKyAgICAgIGlmIHRlc3QgLXogIiRhbHJlYWR5X2hhbmRsZWQi OyB0aGVuCisrICAgICAgICBuYW1lc19hbHJlYWR5X2hhbmRsZWQ9IiRuYW1lc19hbHJlYWR5X2hh bmRsZWQgJG5hbWUiCisrICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJuYW1lPWBlY2hvICIk bmFtZSIgfCBzZWQgLWUgJ3l8YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXouLy18QUJDREVGR0hJ SktMTU5PUFFSU1RVVldYWVpfX198J2AKKysgICAgICAgIGV2YWwgdmFsdWU9XCJcJEhBVkVfTElC JHVwcGVybmFtZVwiCisrICAgICAgICBpZiB0ZXN0IC1uICIkdmFsdWUiOyB0aGVuCisrICAgICAg ICAgIGlmIHRlc3QgIiR2YWx1ZSIgPSB5ZXM7IHRoZW4KKysgICAgICAgICAgICBldmFsIHZhbHVl PVwiXCRMSUIkdXBwZXJuYW1lXCIKKysgICAgICAgICAgICB0ZXN0IC16ICIkdmFsdWUiIHx8IExJ QkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9JHZhbHVlIgorKyAgICAgICAgICAgIGV2YWwg dmFsdWU9XCJcJExUTElCJHVwcGVybmFtZVwiCisrICAgICAgICAgICAgdGVzdCAteiAiJHZhbHVl IiB8fCBMVExJQkxaTUE9IiR7TFRMSUJMWk1BfSR7TFRMSUJMWk1BOisgfSR2YWx1ZSIKKysgICAg ICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoKKysgICAg ICAgICAgZmkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm b3VuZF9kaXI9CisrICAgICAgICAgIGZvdW5kX2xhPQorKyAgICAgICAgICBmb3VuZF9zbz0KKysg ICAgICAgICAgZm91bmRfYT0KKysgICAgICAgICAgaWYgdGVzdCAkdXNlX2FkZGl0aW9uYWwgPSB5 ZXM7IHRoZW4KKysgICAgICAgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJleHQiICYmIHRlc3QgLWYg IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS4kc2hsaWJleHQiOyB0aGVuCisrICAgICAgICAg ICAgICBmb3VuZF9kaXI9IiRhZGRpdGlvbmFsX2xpYmRpciIKKysgICAgICAgICAgICAgIGZvdW5k X3NvPSIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUuJHNobGliZXh0IgorKyAgICAgICAgICAg ICAgaWYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgorKyAg ICAgICAgICAgICAgICBmb3VuZF9sYT0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIgor KyAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICBpZiB0 ZXN0IC1mICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUuJGxpYmV4dCI7IHRoZW4KKysgICAg ICAgICAgICAgICAgZm91bmRfZGlyPSIkYWRkaXRpb25hbF9saWJkaXIiCisrICAgICAgICAgICAg ICAgIGZvdW5kX2E9IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS4kbGliZXh0IgorKyAgICAg ICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUubGEiOyB0 aGVuCisrICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRhZGRpdGlvbmFsX2xpYmRpci9saWIk bmFtZS5sYSIKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgIGZpCisrICAgICAg ICAgICAgZmkKKysgICAgICAgICAgZmkKKysgICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9kaXIi ID0gIlgiOyB0aGVuCisrICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExUTElCTFpNQTsg ZG8KKysKKysgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKysgIHByZWZpeD0iJGFjbF9maW5h bF9wcmVmaXgiCisrICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorKyAgZXhl Y19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisrICBldmFsIHg9XCIkeFwiCisrICBl eGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorKyAgcHJlZml4PSIkYWNsX3NhdmVf cHJlZml4IgorKworKyAgICAgICAgICAgICAgY2FzZSAiJHgiIGluCisrICAgICAgICAgICAgICAg IC1MKikKKysgICAgICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUgJ3MvXlgt TC8vJ2AKKysgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJleHQiICYmIHRlc3Qg LWYgIiRkaXIvbGliJG5hbWUuJHNobGliZXh0IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAg Zm91bmRfZGlyPSIkZGlyIgorKyAgICAgICAgICAgICAgICAgICAgZm91bmRfc289IiRkaXIvbGli JG5hbWUuJHNobGliZXh0IgorKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtZiAiJGRpci9s aWIkbmFtZS5sYSI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRkaXIv bGliJG5hbWUubGEiCisrICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAg IGVsc2UKKysgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRkaXIvbGliJG5hbWUuJGxp YmV4dCI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkZGlyIgorKyAg ICAgICAgICAgICAgICAgICAgICBmb3VuZF9hPSIkZGlyL2xpYiRuYW1lLiRsaWJleHQiCisrICAg ICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRkaXIvbGliJG5hbWUubGEiOyB0aGVuCisr ICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRkaXIvbGliJG5hbWUubGEiCisrICAg ICAgICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAg ICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgIGVzYWMK KysgICAgICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiAhPSAiWCI7IHRoZW4KKysgICAg ICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZG9uZQor KyAgICAgICAgICBmaQorKyAgICAgICAgICBpZiB0ZXN0ICJYJGZvdW5kX2RpciIgIT0gIlgiOyB0 aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgTFRMSUJMWk1BPSIke0xUTElCTFpNQX0ke0xU TElCTFpNQTorIH0tTCRmb3VuZF9kaXIgLWwkbmFtZSIKKysgICAgICAgICAgICBpZiB0ZXN0ICJY JGZvdW5kX3NvIiAhPSAiWCI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRlbmFibGVfcnBhdGgiID0gbm8gfHwg dGVzdCAiWCRmb3VuZF9kaXIiID0gIlgvdXNyL2xpYiI7IHRoZW4KKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExJQkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9JGZvdW5kX3Nv IgorKyAgICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQor KyAgICAgICAgICAgICAgICBmb3IgeCBpbiAkbHRycGF0aGRpcnM7IGRvCisrICAgICAgICAgICAg ICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYJGZvdW5kX2RpciI7IHRoZW4KKysgICAgICAgICAgICAg ICAgICAgIGhhdmVpdD15ZXMKKysgICAgICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAg ICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICAgICAgICBpZiB0 ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgIGx0cnBhdGhkaXJzPSIk bHRycGF0aGRpcnMgJGZvdW5kX2RpciIKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVzOyB0 aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTElCTFpNQT0iJHtMSUJMWk1BfSR7TElCTFpNQTorIH0kZm91bmRfc28iCisrICAgICAgICAg ICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYyIgJiYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRoZW4KKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMSUJMWk1BPSIke0xJQkxaTUF9JHtMSUJMWk1BOisgfSRmb3VuZF9zbyIKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9 CisrICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkcnBhdGhkaXJzOyBkbworKyAgICAgICAg ICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZm91bmRfZGlyIjsgdGhlbgorKyAgICAg ICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKysgICAgICAgICAgICAgICAgICAgICAgICBi cmVhaworKyAgICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgICAgZG9u ZQorKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKysgICAg ICAgICAgICAgICAgICAgICAgcnBhdGhkaXJzPSIkcnBhdGhkaXJzICRmb3VuZF9kaXIiCisrICAg ICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGhhdmVpdD0KKysgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRMREZM QUdTICRMSUJMWk1BOyBkbworKworKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorKyAgcHJl Zml4PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKysgIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19w cmVmaXgiCisrICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKKysgIGV2YWwg eD1cIiR4XCIKKysgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisrICBwcmVm aXg9IiRhY2xfc2F2ZV9wcmVmaXgiCisrCisrICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Qg IlgkeCIgPSAiWC1MJGZvdW5kX2RpciI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICBo YXZlaXQ9eWVzCisrICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAg ICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICAgICAg ICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgIExJ QkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9LUwkZm91bmRfZGlyIgorKyAgICAgICAgICAg ICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9taW51 c19MIiAhPSBubzsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJMWk1B PSIke0xJQkxaTUF9JHtMSUJMWk1BOisgfSRmb3VuZF9zbyIKKysgICAgICAgICAgICAgICAgICAg IGVsc2UKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExJQkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9LWwkbmFtZSIKKysg ICAgICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAg ICAgICAgZmkKKysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAg ICAgICAgaWYgdGVzdCAiWCRmb3VuZF9hIiAhPSAiWCI7IHRoZW4KKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExJQkxaTUE9IiR7TElCTFpNQX0ke0xJQkxaTUE6KyB9JGZvdW5kX2Ei CisrICAgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTElCTFpNQT0iJHtMSUJMWk1BfSR7TElCTFpNQTorIH0tTCRmb3VuZF9k aXIgLWwkbmFtZSIKKysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZmkKKysgICAgICAg ICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9CisrICAgICAgICAgICAgY2Fz ZSAiJGZvdW5kX2RpciIgaW4KKysgICAgICAgICAgICAgICovbGliIHwgKi9saWIvKQorKyAgICAg ICAgICAgICAgICBiYXNlZGlyPWBlY2hvICJYJGZvdW5kX2RpciIgfCBzZWQgLWUgJ3MsXlgsLCcg LWUgJ3MsL2xpYi8qJCwsJ2AKKysgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9pbmNsdWRlZGly PSIkYmFzZWRpci9pbmNsdWRlIgorKyAgICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgIGVz YWMKKysgICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIgIT0gIlgi OyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIHRlc3QgIlgkYWRkaXRpb25hbF9pbmNsdWRlZGlyIiAhPSAiWC91c3IvaW5jbHVk ZSI7IHRoZW4KKysgICAgICAgICAgICAgICAgaGF2ZWl0PQorKyAgICAgICAgICAgICAgICBpZiB0 ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIgPSAiWC91c3IvbG9jYWwvaW5jbHVkZSI7IHRo ZW4KKysgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkR0NDIjsgdGhlbgorKyAgICAgICAg ICAgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgICAgICAgICAgICAgICAgICBsaW51 eCopIGhhdmVpdD15ZXM7OworKyAgICAgICAgICAgICAgICAgICAgZXNhYworKyAgICAgICAgICAg ICAgICAgIGZpCisrICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgIGlmIHRlc3Qg LXogIiRoYXZlaXQiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJENQUEZMQUdT ICRJTkNMWk1BOyBkbworKworKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorKyAgcHJlZml4 PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKysgIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVm aXgiCisrICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKKysgIGV2YWwgeD1c IiR4XCIKKysgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisrICBwcmVmaXg9 IiRhY2xfc2F2ZV9wcmVmaXgiCisrCisrICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgi ID0gIlgtSSRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiOyB0aGVuCisrICAgICAgICAgICAgICAgICAg ICAgIGhhdmVpdD15ZXMKKysgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAg ICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICAgICAgICAg IGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0 IC1kICIkYWRkaXRpb25hbF9pbmNsdWRlZGlyIjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSU5DTFpNQT0iJHtJTkNMWk1BfSR7SU5DTFpNQTorIH0t SSRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiCisrICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAg ICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICBmaQor KyAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJGZv dW5kX2xhIjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisrICAgICAgICAgICAgICBjYXNl ICIkZm91bmRfbGEiIGluCisrICAgICAgICAgICAgICAgICovKiB8ICpcXCopIC4gIiRmb3VuZF9s YSIgOzsKKysgICAgICAgICAgICAgICAgKikgLiAiLi8kZm91bmRfbGEiIDs7CisrICAgICAgICAg ICAgICBlc2FjCisrICAgICAgICAgICAgICBsaWJkaXI9IiRzYXZlX2xpYmRpciIKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIGRlcCBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworKyAg ICAgICAgICAgICAgICBjYXNlICIkZGVwIiBpbgorKyAgICAgICAgICAgICAgICAgIC1MKikKKysg ICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfbGliZGlyPWBlY2hvICJYJGRlcCIgfCBzZWQg LWUgJ3MvXlgtTC8vJ2AKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2xpYmRpciIgIT0gIlgvdXNyL2xpYiI7IHRoZW4K KysgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorKyAgICAgICAgICAgICAgICAgICAgICBp ZiB0ZXN0ICJYJGFkZGl0aW9uYWxfbGliZGlyIiA9ICJYL3Vzci9sb2NhbC9saWIiOyB0aGVuCisr ICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJEdDQyI7IHRoZW4KKysgICAgICAg ICAgICAgICAgICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGludXgqKSBoYXZlaXQ9eWVzOzsKKysgICAgICAgICAgICAgICAgICAgICAgICAg IGVzYWMKKysgICAgICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgICAg ICBmaQorKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgor KyAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKysgICAgICAgICAgICAgICAgICAgICAg ICBmb3IgeCBpbiAkTERGTEFHUyAkTElCTFpNQTsgZG8KKysKKysgIGFjbF9zYXZlX3ByZWZpeD0i JHByZWZpeCIKKysgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisrICBhY2xfc2F2ZV9leGVj X3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorKyAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19w cmVmaXgiCisrICBldmFsIHg9XCIkeFwiCisrICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNf cHJlZml4IgorKyAgcHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgorKworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUwkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVu CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGZpCisrICAg ICAgICAgICAgICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRl c3QgLXogIiRoYXZlaXQiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0 IC1kICIkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJMWk1BPSIke0xJQkxaTUF9JHtMSUJM Wk1BOisgfS1MJGFkZGl0aW9uYWxfbGliZGlyIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ZmkKKysgICAgICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgICAgICAg IGhhdmVpdD0KKysgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkTERGTEFHUyAkTFRM SUJMWk1BOyBkbworKworKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorKyAgcHJlZml4PSIk YWNsX2ZpbmFsX3ByZWZpeCIKKysgIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgi CisrICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKKysgIGV2YWwgeD1cIiR4 XCIKKysgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisrICBwcmVmaXg9IiRh Y2xfc2F2ZV9wcmVmaXgiCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJY JHgiID0gIlgtTCRhZGRpdGlvbmFsX2xpYmRpciI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaGF2ZWl0PXllcworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawor KyAgICAgICAgICAgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgICAgICAgICBk b25lCisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4K KysgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRhZGRpdGlvbmFsX2xpYmRp ciI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExUTElCTFpNQT0iJHtMVExJQkxaTUF9JHtMVExJQkxaTUE6KyB9LUwkYWRkaXRp b25hbF9saWJkaXIiCisrICAgICAgICAgICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAg ICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAg ICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgICAgICAt UiopCisrICAgICAgICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgkZGVwIiB8IHNlZCAtZSAncy9e WC1SLy8nYAorKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiJGVuYWJsZV9ycGF0aCIgIT0g bm87IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9CisrICAgICAgICAgICAgICAgICAgICAgIGZvciB4 IGluICRycGF0aGRpcnM7IGRvCisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4 IiA9ICJYJGRpciI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMK KysgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAgICAgICAgICAgICAg ICAgZmkKKysgICAgICAgICAgICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICAgICAgICAgICAg ICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgICAgIHJw YXRoZGlycz0iJHJwYXRoZGlycyAkZGlyIgorKyAgICAgICAgICAgICAgICAgICAgICBmaQorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhhdmVpdD0KKysgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJGx0cnBhdGhk aXJzOyBkbworKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRkaXIi OyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisrICAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhaworKyAgICAgICAgICAgICAgICAgICAgICAgIGZpCisrICAg ICAgICAgICAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAt eiAiJGhhdmVpdCI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICAgICBsdHJwYXRoZGlycz0i JGx0cnBhdGhkaXJzICRkaXIiCisrICAgICAgICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAg ICAgICAgICAgICBmaQorKyAgICAgICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgICAg ICAtbCopCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX25l eHRfcm91bmQ9IiRuYW1lc19uZXh0X3JvdW5kICJgZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzL15Y LWwvLydgCisrICAgICAgICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgICAgICAgICoubGEp CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc19uZXh0X3JvdW5kPSIkbmFtZXNfbmV4dF9y b3VuZCAiYGVjaG8gIlgkZGVwIiB8IHNlZCAtZSAncyxeWC4qLywsJyAtZSAncyxebGliLCwnIC1l ICdzLFwubGEkLCwnYAorKyAgICAgICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgICAg ICAqKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJMWk1BPSIk e0xJQkxaTUF9JHtMSUJMWk1BOisgfSRkZXAiCisrICAgICAgICAgICAgICAgICAgICBMVExJQkxa TUE9IiR7TFRMSUJMWk1BfSR7TFRMSUJMWk1BOisgfSRkZXAiCisrICAgICAgICAgICAgICAgICAg ICA7OworKyAgICAgICAgICAgICAgICBlc2FjCisrICAgICAgICAgICAgICBkb25lCisrICAgICAg ICAgICAgZmkKKysgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQkxaTUE9IiR7TElCTFpNQX0ke0xJQkxa TUE6KyB9LWwkbmFtZSIKKysgICAgICAgICAgICBMVExJQkxaTUE9IiR7TFRMSUJMWk1BfSR7TFRM SUJMWk1BOisgfS1sJG5hbWUiCisrICAgICAgICAgIGZpCisrICAgICAgICBmaQorKyAgICAgIGZp CisrICAgIGRvbmUKKysgIGRvbmUKKysgIGlmIHRlc3QgIlgkcnBhdGhkaXJzIiAhPSAiWCI7IHRo ZW4KKysgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisr ICAgICAgICAgICAgICAgICAgICAgICAgYWxsZGlycz0KKysgICAgICBmb3IgZm91bmRfZGlyIGlu ICRycGF0aGRpcnM7IGRvCisrICAgICAgICBhbGxkaXJzPSIke2FsbGRpcnN9JHthbGxkaXJzOisk aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcn0kZm91bmRfZGlyIgorKyAgICAgIGRvbmUKKysgICAg ICAgICAgICBhY2xfc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisrICAgICAgbGliZGlyPSIkYWxsZGly cyIKKysgICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrICAg ICAgbGliZGlyPSIkYWNsX3NhdmVfbGliZGlyIgorKyAgICAgIExJQkxaTUE9IiR7TElCTFpNQX0k e0xJQkxaTUE6KyB9JGZsYWciCisrICAgIGVsc2UKKysgICAgICAgICAgICBmb3IgZm91bmRfZGly IGluICRycGF0aGRpcnM7IGRvCisrICAgICAgICBhY2xfc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisr ICAgICAgICBsaWJkaXI9IiRmb3VuZF9kaXIiCisrICAgICAgICBldmFsIGZsYWc9XCIkaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrICAgICAgICBsaWJkaXI9IiRhY2xfc2F2ZV9saWJkaXIi CisrICAgICAgICBMSUJMWk1BPSIke0xJQkxaTUF9JHtMSUJMWk1BOisgfSRmbGFnIgorKyAgICAg IGRvbmUKKysgICAgZmkKKysgIGZpCisrICBpZiB0ZXN0ICJYJGx0cnBhdGhkaXJzIiAhPSAiWCI7 IHRoZW4KKysgICAgICAgICAgICBmb3IgZm91bmRfZGlyIGluICRsdHJwYXRoZGlyczsgZG8KKysg ICAgICBMVExJQkxaTUE9IiR7TFRMSUJMWk1BfSR7TFRMSUJMWk1BOisgfS1SJGZvdW5kX2RpciIK KysgICAgZG9uZQorKyAgZmkKKysKKysKKysgICAgICAgIGFjX3NhdmVfQ1BQRkxBR1M9IiRDUFBG TEFHUyIKKysKKysgIGZvciBlbGVtZW50IGluICRJTkNMWk1BOyBkbworKyAgICBoYXZlaXQ9Cisr ICAgIGZvciB4IGluICRDUFBGTEFHUzsgZG8KKysKKysgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZp eCIKKysgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisrICBhY2xfc2F2ZV9leGVjX3ByZWZp eD0iJGV4ZWNfcHJlZml4IgorKyAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgi CisrICBldmFsIHg9XCIkeFwiCisrICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4 IgorKyAgcHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgorKworKyAgICAgIGlmIHRlc3QgIlgkeCIg PSAiWCRlbGVtZW50IjsgdGhlbgorKyAgICAgICAgaGF2ZWl0PXllcworKyAgICAgICAgYnJlYWsK KysgICAgICBmaQorKyAgICBkb25lCisrICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisr ICAgICAgQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9JHtDUFBGTEFHUzorIH0kZWxlbWVudCIKKysgICAg ZmkKKysgIGRvbmUKKysKKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgZm9yIGxpYmx6bWEiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBsaWJsem1hLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJsem1hK3NldH0iID0g c2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKyAg ICBhY19zYXZlX0xJQlM9IiRMSUJTIgorKyAgICBMSUJTPSIkTElCUyAkTElCTFpNQSIKKysgICAg Y2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KKysjaW5jbHVkZSAibHptYS5oIgorK2ludAorK21haW4gKCkKKyt7CisrbHpt YV9tZl9pc19zdXBwb3J0ZWQgKExaTUFfTUZfSEMzKTsKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrICBhY19j dl9saWJsem1hPXllcworK2Vsc2UKKysgIGFjX2N2X2xpYmx6bWE9bm8KKytmaQorK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19l eGVleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgICBMSUJTPSIkYWNfc2F2ZV9MSUJTIgorKworK2Zp CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19j dl9saWJsem1hIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYmx6bWEiID4mNjsgfQorKyAgaWYg dGVzdCAiJGFjX2N2X2xpYmx6bWEiID0geWVzOyB0aGVuCisrICAgIEhBVkVfTElCTFpNQT15ZXMK KysKKyskYXNfZWNobyAiI2RlZmluZSBIQVZFX0xJQkxaTUEgMSIgPj5jb25mZGVmcy5oCisrCisr ICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG93 IHRvIGxpbmsgd2l0aCBsaWJsem1hIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8g bGluayB3aXRoIGxpYmx6bWEuLi4gIiA+JjY7IH0KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRMSUJMWk1BIiA+JjUKKyskYXNfZWNobyAiJExJ QkxaTUEiID4mNjsgfQorKyAgZWxzZQorKyAgICBIQVZFX0xJQkxaTUE9bm8KKysgICAgICAgICAg ICBDUFBGTEFHUz0iJGFjX3NhdmVfQ1BQRkxBR1MiCisrICAgIExJQkxaTUE9CisrICAgIExUTElC TFpNQT0KKysgIGZpCisrCisrCisrCisrCisrCisrCisrICAgIGlmIHRlc3QgIiRIQVZFX0xJQkxa TUEiICE9IHllczsgdGhlbgorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2x6bWEiID0geWVzOyB0aGVu CisrICAgICAgICBhc19mbl9lcnJvciAibWlzc2luZyBsaWJsem1hIGZvciAtLXdpdGgtbHptYSIg IiRMSU5FTk8iIDUKKysgICAgICBmaQorKyAgICBmaQorKyAgZmkKKytmaQorKworIExJQkdVST0i Li4vbGliZ3VpL3NyYy9saWJndWkuYSIKKyBHVUlfQ0ZMQUdTX1g9Ii1JJHtzcmNkaXJ9Ly4uL2xp Ymd1aS9zcmMiCisgCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvY29uZmlndXJlLmFj Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dkYi9jb25maWd1cmUu YWMJMjAxMi0wNy0wNSAyMjo0Nzo0MC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjUwLjIw MTIwNzAzL2dkYi9jb25maWd1cmUuYWMJMjAxMi0wNy0wNSAyMjo0Nzo0NS40ODc1MDkzNjEgKzAy MDAKK0BAIC0yMTk2LDYgKzIxOTYsMjUgQEAgTElCUz0kT0xEX0xJQlMKKyAjIEFkZCBhbnkgaG9z dC1zcGVjaWZpYyBvYmplY3RzIHRvIEdEQi4KKyBDT05GSUdfT0JTPSIke0NPTkZJR19PQlN9ICR7 Z2RiX2hvc3Rfb2JzfSIKKyAKKysjIElmIGJ1aWxkaW5nIG9uIEVMRiwgbG9vayBmb3IgbHptYSBz dXBwb3J0IGZvciBlbWJlZGRlZCBjb21wcmVzc2VkIGRlYnVnIGluZm8uCisraWYgdGVzdCAkZ2Ri X2N2X3Zhcl9lbGYgPSB5ZXM7IHRoZW4KKysgIEFDX0FSR19XSVRIKGx6bWEsCisrICAgIEFTX0hF TFBfU1RSSU5HKFstLXdpdGgtbHptYV0sIFtzdXBwb3J0IGx6bWEgY29tcHJlc3Npb24gKGF1dG8v eWVzL25vKV0pLAorKyAgICBbXSwgW3dpdGhfbHptYT1hdXRvXSkKKysgIEFDX01TR19DSEVDS0lO Ryhbd2hldGhlciB0byB1c2UgbHptYV0pCisrICBBQ19NU0dfUkVTVUxUKFskd2l0aF9sem1hXSkK KysKKysgIGlmIHRlc3QgIiR7d2l0aF9sem1hfSIgIT0gbm87IHRoZW4KKysgICAgQUNfTElCX0hB VkVfTElOS0ZMQUdTKFtsem1hXSwgW10sIFsjaW5jbHVkZSAibHptYS5oIl0sCisrCQkJICBbbHpt YV9tZl9pc19zdXBwb3J0ZWQgKExaTUFfTUZfSEMzKTtdKQorKyAgICBpZiB0ZXN0ICIkSEFWRV9M SUJMWk1BIiAhPSB5ZXM7IHRoZW4KKysgICAgICBpZiB0ZXN0ICIkd2l0aF9sem1hIiA9IHllczsg dGhlbgorKyAgICAgICAgQUNfTVNHX0VSUk9SKFttaXNzaW5nIGxpYmx6bWEgZm9yIC0td2l0aC1s em1hXSkKKysgICAgICBmaQorKyAgICBmaQorKyAgZmkKKytmaQorKworIExJQkdVST0iLi4vbGli Z3VpL3NyYy9saWJndWkuYSIKKyBHVUlfQ0ZMQUdTX1g9Ii1JJHtzcmNkaXJ9Ly4uL2xpYmd1aS9z cmMiCisgQUNfU1VCU1QoTElCR1VJKQorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2Vs ZnJlYWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvZWxm cmVhZC5jCTIwMTItMDctMDUgMjI6NDc6MzkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC41 MC4yMDEyMDcwMy9nZGIvZWxmcmVhZC5jCTIwMTItMDctMDUgMjI6NDk6MTMuMjAwNDI3MDM4ICsw MjAwCitAQCAtNTEsNiArNTEsMTAgQEAKKyAjaW5jbHVkZSAib2JzZXJ2ZXIuaCIKKyAjaW5jbHVk ZSAiZWxmL2V4dGVybmFsLmgiCisgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisrI2luY2x1ZGUgImdk YmNvcmUuaCIKKysjaWZkZWYgSEFWRV9MSUJMWk1BCisrIyBpbmNsdWRlIDxsem1hLmg+CisrI2Vu ZGlmCisgCisgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCk7CisgCitAQCAt MjIxMCw2ICsyMjE0LDI2MiBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAo c3RyCisgICByZXR1cm4gTlVMTDsKKyB9CisgCisrI2lmZGVmIEhBVkVfTElCTFpNQQorKworKy8q IEN1c3RvbSBsem1hX2FsbG9jYXRvci5hbGxvYyBzbyB0aGV5IHVzZSB0aGUgZ2RiIG9uZXMuICAq LworKworK3N0YXRpYyB2b2lkICoKKythbGxvY19sem1hICh2b2lkICpvcGFxdWUsIHNpemVfdCBu bWVtYiwgc2l6ZV90IHNpemUpCisreworKyAgcmV0dXJuIHhtYWxsb2MgKG5tZW1iICogc2l6ZSk7 CisrfQorKworKy8qIEN1c3RvbSBsem1hX2FsbG9jYXRvci5mcmVlIHNvIHRoZXkgdXNlIHRoZSBn ZGIgb25lcy4gICovCisrCisrc3RhdGljIHZvaWQKKytmcmVlX2x6bWEgKHZvaWQgKm9wYXF1ZSwg dm9pZCAqcHRyKQorK3sKKysgIHhmcmVlIChwdHIpOworK30KKysKKysvKiBJdCBjYW5ub3QgYmUg Y29uc3QgZHVlIHRvIHRoZSBsem1hIGxpYnJhcnkgZnVuY3Rpb24gcHJvdG90eXBlcy4gICovCisr Cisrc3RhdGljIGx6bWFfYWxsb2NhdG9yIGdkYl9sem1hX2FsbG9jYXRvciA9IHsgYWxsb2NfbHpt YSwgZnJlZV9sem1hLCBOVUxMfTsKKysKKysvKiBDdXN0b20gYmZkX29wZW5yX2lvdmVjIGltcGxl bWVudGF0aW9uIHRvIHJlYWQgY29tcHJlc3NlZCBkYXRhIGZyb20gYQorKyAgIHNlY3Rpb24uIFRo aXMga2VlcHMgb25seSB0aGUgbGFzdCBkZWNvbXByZXNzZWQgYmxvY2sgaW4gbWVtb3J5IHRvCisr ICAgYWxsb3cgbGFyZ2VyIGRhdGEgd2l0aG91dCB1c2luZyB0byBtdWNoIG1lbW9yeS4gICovCisr Cisrc3RydWN0IGx6bWFfc3RyZWFtCisreworKyAgLyogU2VjdGlvbiBvZiBpbnB1dCBCRkQgd2Ug YXJlIGRlY29kaW5nIGRhdGEgZnJvbS4gICovCisrICBhc2VjdGlvbiAqc2VjdGlvbjsKKysKKysg IC8qIGx6bWEgbGlicmFyeSBkZWNvbXByZXNzaW9uIHN0YXRlLiAgKi8KKysgIGx6bWFfaW5kZXgg KmluZGV4OworKworKyAgLyogQ3VycmVudGx5IGRlY29kZWQgYmxvY2suICAqLworKyAgYmZkX3Np emVfdHlwZSBkYXRhX3N0YXJ0OworKyAgYmZkX3NpemVfdHlwZSBkYXRhX2VuZDsKKysgIGdkYl9i eXRlICpkYXRhOworK307CisrCisrLyogYmZkX29wZW5yX2lvdmVjIE9QRU5fUCBpbXBsZW1lbnRh dGlvbiBmb3IKKysgICBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfaW5fc2VjdGlvbi4gIE9QRU5f Q0xPU1VSRSBpcyAnYXNlY3Rpb24gKicgb2YgdGhlCisrICAgc2VjdGlvbiB0byBkZWNvbXByZXNz LgorKworKyAgIFJldHVybiAnc3RydWN0IGx6bWFfc3RyZWFtIConIG11c3QgYmUgZnJlZWQgYnkg Y2FsbGVyIGJ5IHhmcmVlLCB0b2dldGhlcgorKyAgIHdpdGggaXRzIElOREVYIGx6bWEgZGF0YS4g ICovCisrCisrc3RhdGljIHZvaWQgKgorK2x6bWFfb3BlbiAoc3RydWN0IGJmZCAqbmJmZCwgdm9p ZCAqb3Blbl9jbG9zdXJlKQorK3sKKysgIGFzZWN0aW9uICpzZWN0aW9uID0gb3Blbl9jbG9zdXJl OworKyAgYmZkX3NpemVfdHlwZSBzaXplLCBvZmZzZXQ7CisrICBsem1hX3N0cmVhbV9mbGFncyBv cHRpb25zOworKyAgZ2RiX2J5dGUgZm9vdGVyW0xaTUFfU1RSRUFNX0hFQURFUl9TSVpFXTsKKysg IGdkYl9ieXRlICppbmRleGRhdGE7CisrICBsem1hX2luZGV4ICppbmRleDsKKysgIGludCByZXQ7 CisrICB1aW50NjRfdCBtZW1saW1pdCA9IFVJTlQ2NF9NQVg7CisrICBzdHJ1Y3QgbHptYV9zdHJl YW0gKmxzdHJlYW07CisrICBzaXplX3QgcG9zOworKworKyAgc2l6ZSA9IGJmZF9nZXRfc2VjdGlv bl9zaXplIChzZWN0aW9uKTsKKysgIG9mZnNldCA9IHNlY3Rpb24tPmZpbGVwb3MgKyBzaXplIC0g TFpNQV9TVFJFQU1fSEVBREVSX1NJWkU7CisrICBpZiAoc2l6ZSA8IExaTUFfU1RSRUFNX0hFQURF Ul9TSVpFCisrICAgICAgfHwgYmZkX3NlZWsgKHNlY3Rpb24tPm93bmVyLCBvZmZzZXQsIFNFRUtf U0VUKSAhPSAwCisrICAgICAgfHwgYmZkX2JyZWFkIChmb290ZXIsIExaTUFfU1RSRUFNX0hFQURF Ul9TSVpFLCBzZWN0aW9uLT5vd25lcikKKysgICAgICAgICAhPSBMWk1BX1NUUkVBTV9IRUFERVJf U0laRQorKyAgICAgIHx8IGx6bWFfc3RyZWFtX2Zvb3Rlcl9kZWNvZGUgKCZvcHRpb25zLCBmb290 ZXIpICE9IExaTUFfT0sKKysgICAgICB8fCBvZmZzZXQgPCBvcHRpb25zLmJhY2t3YXJkX3NpemUp CisrICAgIHsKKysgICAgICBiZmRfc2V0X2Vycm9yIChiZmRfZXJyb3Jfd3JvbmdfZm9ybWF0KTsK KysgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKworKyAgb2Zmc2V0IC09IG9wdGlvbnMuYmFj a3dhcmRfc2l6ZTsKKysgIGluZGV4ZGF0YSA9IHhtYWxsb2MgKG9wdGlvbnMuYmFja3dhcmRfc2l6 ZSk7CisrICBpbmRleCA9IE5VTEw7CisrICBwb3MgPSAwOworKyAgaWYgKGJmZF9zZWVrIChzZWN0 aW9uLT5vd25lciwgb2Zmc2V0LCBTRUVLX1NFVCkgIT0gMAorKyAgICAgIHx8IGJmZF9icmVhZCAo aW5kZXhkYXRhLCBvcHRpb25zLmJhY2t3YXJkX3NpemUsIHNlY3Rpb24tPm93bmVyKQorKyAgICAg ICAgICE9IG9wdGlvbnMuYmFja3dhcmRfc2l6ZQorKyAgICAgIHx8IGx6bWFfaW5kZXhfYnVmZmVy X2RlY29kZSAoJmluZGV4LCAmbWVtbGltaXQsICZnZGJfbHptYV9hbGxvY2F0b3IsCisrCQkJCSAg IGluZGV4ZGF0YSwgJnBvcywgb3B0aW9ucy5iYWNrd2FyZF9zaXplKQorKyAgICAgICAgICE9IExa TUFfT0sKKysgICAgICB8fCBsem1hX2luZGV4X3NpemUgKGluZGV4KSAhPSBvcHRpb25zLmJhY2t3 YXJkX3NpemUpCisrICAgIHsKKysgICAgICB4ZnJlZSAoaW5kZXhkYXRhKTsKKysgICAgICBiZmRf c2V0X2Vycm9yIChiZmRfZXJyb3Jfd3JvbmdfZm9ybWF0KTsKKysgICAgICByZXR1cm4gTlVMTDsK KysgICAgfQorKyAgeGZyZWUgKGluZGV4ZGF0YSk7CisrCisrICBsc3RyZWFtID0geHphbGxvYyAo c2l6ZW9mIChzdHJ1Y3QgbHptYV9zdHJlYW0pKTsKKysgIGxzdHJlYW0tPnNlY3Rpb24gPSBzZWN0 aW9uOworKyAgbHN0cmVhbS0+aW5kZXggPSBpbmRleDsKKysKKysgIHJldHVybiBsc3RyZWFtOwor K30KKysKKysvKiBiZmRfb3BlbnJfaW92ZWMgUFJFQURfUCBpbXBsZW1lbnRhdGlvbiBmb3IKKysg ICBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfaW5fc2VjdGlvbi4gIFBhc3NlZCBTVFJFQU0KKysg ICBpcyAnc3RydWN0IGx6bWFfc3RyZWFtIConLiAgKi8KKysKKytzdGF0aWMgZmlsZV9wdHIKKyts em1hX3ByZWFkIChzdHJ1Y3QgYmZkICpuYmZkLCB2b2lkICpzdHJlYW0sIHZvaWQgKmJ1ZiwgZmls ZV9wdHIgbmJ5dGVzLAorKwkgICAgZmlsZV9wdHIgb2Zmc2V0KQorK3sKKysgIHN0cnVjdCBsem1h X3N0cmVhbSAqbHN0cmVhbSA9IHN0cmVhbTsKKysgIGJmZF9zaXplX3R5cGUgY2h1bmtfc2l6ZTsK KysgIGx6bWFfaW5kZXhfaXRlciBpdGVyOworKyAgZ2RiX2J5dGUgKmNvbXByZXNzZWQsICp1bmNv bXByZXNzZWQ7CisrICBmaWxlX3B0ciBibG9ja19vZmZzZXQ7CisrICBsem1hX2ZpbHRlciBmaWx0 ZXJzW0xaTUFfRklMVEVSU19NQVggKyAxXTsKKysgIGx6bWFfYmxvY2sgYmxvY2s7CisrICBzaXpl X3QgY29tcHJlc3NlZF9wb3MsIHVuY29tcHJlc3NlZF9wb3M7CisrICBmaWxlX3B0ciByZXM7Cisr CisrICByZXMgPSAwOworKyAgd2hpbGUgKG5ieXRlcyA+IDApCisrICAgIHsKKysgICAgICBpZiAo bHN0cmVhbS0+ZGF0YSA9PSBOVUxMCisrCSAgfHwgbHN0cmVhbS0+ZGF0YV9zdGFydCA+IG9mZnNl dCB8fCBvZmZzZXQgPj0gbHN0cmVhbS0+ZGF0YV9lbmQpCisrCXsKKysJICBhc2VjdGlvbiAqc2Vj dGlvbiA9IGxzdHJlYW0tPnNlY3Rpb247CisrCisrCSAgbHptYV9pbmRleF9pdGVyX2luaXQgKCZp dGVyLCBsc3RyZWFtLT5pbmRleCk7CisrCSAgaWYgKGx6bWFfaW5kZXhfaXRlcl9sb2NhdGUgKCZp dGVyLCBvZmZzZXQpKQorKwkgICAgYnJlYWs7CisrCisrCSAgY29tcHJlc3NlZCA9IHhtYWxsb2Mg KGl0ZXIuYmxvY2sudG90YWxfc2l6ZSk7CisrCSAgYmxvY2tfb2Zmc2V0ID0gc2VjdGlvbi0+Zmls ZXBvcyArIGl0ZXIuYmxvY2suY29tcHJlc3NlZF9maWxlX29mZnNldDsKKysJICBpZiAoYmZkX3Nl ZWsgKHNlY3Rpb24tPm93bmVyLCBibG9ja19vZmZzZXQsIFNFRUtfU0VUKSAhPSAwCisrCSAgICAg IHx8IGJmZF9icmVhZCAoY29tcHJlc3NlZCwgaXRlci5ibG9jay50b3RhbF9zaXplLCBzZWN0aW9u LT5vd25lcikKKysJCSAhPSBpdGVyLmJsb2NrLnRvdGFsX3NpemUpCisrCSAgICB7CisrCSAgICAg IHhmcmVlIChjb21wcmVzc2VkKTsKKysJICAgICAgYnJlYWs7CisrCSAgICB9CisrCisrCSAgdW5j b21wcmVzc2VkID0geG1hbGxvYyAoaXRlci5ibG9jay51bmNvbXByZXNzZWRfc2l6ZSk7CisrCisr CSAgbWVtc2V0ICgmYmxvY2ssIDAsIHNpemVvZiAoYmxvY2spKTsKKysJICBibG9jay5maWx0ZXJz ID0gZmlsdGVyczsKKysJICBibG9jay5oZWFkZXJfc2l6ZSA9IGx6bWFfYmxvY2tfaGVhZGVyX3Np emVfZGVjb2RlIChjb21wcmVzc2VkWzBdKTsKKysJICBpZiAobHptYV9ibG9ja19oZWFkZXJfZGVj b2RlICgmYmxvY2ssICZnZGJfbHptYV9hbGxvY2F0b3IsIGNvbXByZXNzZWQpCisrCSAgICAgICE9 IExaTUFfT0spCisrCSAgICB7CisrCSAgICAgIHhmcmVlIChjb21wcmVzc2VkKTsKKysJICAgICAg eGZyZWUgKHVuY29tcHJlc3NlZCk7CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKworKwkgIGNv bXByZXNzZWRfcG9zID0gYmxvY2suaGVhZGVyX3NpemU7CisrCSAgdW5jb21wcmVzc2VkX3BvcyA9 IDA7CisrCSAgaWYgKGx6bWFfYmxvY2tfYnVmZmVyX2RlY29kZSAoJmJsb2NrLCAmZ2RiX2x6bWFf YWxsb2NhdG9yLAorKwkJCQkJY29tcHJlc3NlZCwgJmNvbXByZXNzZWRfcG9zLAorKwkJCQkJaXRl ci5ibG9jay50b3RhbF9zaXplLAorKwkJCQkJdW5jb21wcmVzc2VkLCAmdW5jb21wcmVzc2VkX3Bv cywKKysJCQkJCWl0ZXIuYmxvY2sudW5jb21wcmVzc2VkX3NpemUpCisrCSAgICAgICE9IExaTUFf T0spCisrCSAgICB7CisrCSAgICAgIHhmcmVlIChjb21wcmVzc2VkKTsKKysJICAgICAgeGZyZWUg KHVuY29tcHJlc3NlZCk7CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKworKwkgIHhmcmVlIChj b21wcmVzc2VkKTsKKysKKysJICB4ZnJlZSAobHN0cmVhbS0+ZGF0YSk7CisrCSAgbHN0cmVhbS0+ ZGF0YSA9IHVuY29tcHJlc3NlZDsKKysJICBsc3RyZWFtLT5kYXRhX3N0YXJ0ID0gaXRlci5ibG9j ay51bmNvbXByZXNzZWRfZmlsZV9vZmZzZXQ7CisrCSAgbHN0cmVhbS0+ZGF0YV9lbmQgPSAoaXRl ci5ibG9jay51bmNvbXByZXNzZWRfZmlsZV9vZmZzZXQKKysJCQkgICAgICAgKyBpdGVyLmJsb2Nr LnVuY29tcHJlc3NlZF9zaXplKTsKKysJfQorKworKyAgICAgIGNodW5rX3NpemUgPSBtaW4gKG5i eXRlcywgbHN0cmVhbS0+ZGF0YV9lbmQgLSBvZmZzZXQpOworKyAgICAgIG1lbWNweSAoYnVmLCBs c3RyZWFtLT5kYXRhICsgb2Zmc2V0IC0gbHN0cmVhbS0+ZGF0YV9zdGFydCwgY2h1bmtfc2l6ZSk7 CisrICAgICAgYnVmID0gKGdkYl9ieXRlICopIGJ1ZiArIGNodW5rX3NpemU7CisrICAgICAgb2Zm c2V0ICs9IGNodW5rX3NpemU7CisrICAgICAgbmJ5dGVzIC09IGNodW5rX3NpemU7CisrICAgICAg cmVzICs9IGNodW5rX3NpemU7CisrICAgIH0KKysKKysgIHJldHVybiByZXM7CisrfQorKworKy8q IGJmZF9vcGVucl9pb3ZlYyBDTE9TRV9QIGltcGxlbWVudGF0aW9uIGZvcgorKyAgIGZpbmRfc2Vw YXJhdGVfZGVidWdfZmlsZV9pbl9zZWN0aW9uLiAgUGFzc2VkIFNUUkVBTQorKyAgIGlzICdzdHJ1 Y3QgbHptYV9zdHJlYW0gKicuICAqLworKworK3N0YXRpYyBpbnQKKytsem1hX2Nsb3NlIChzdHJ1 Y3QgYmZkICpuYmZkLAorKwkgICAgdm9pZCAqc3RyZWFtKQorK3sKKysgIHN0cnVjdCBsem1hX3N0 cmVhbSAqbHN0cmVhbSA9IHN0cmVhbTsKKysKKysgIGx6bWFfaW5kZXhfZW5kIChsc3RyZWFtLT5p bmRleCwgJmdkYl9sem1hX2FsbG9jYXRvcik7CisrICB4ZnJlZSAobHN0cmVhbS0+ZGF0YSk7Cisr ICB4ZnJlZSAobHN0cmVhbSk7CisrICByZXR1cm4gMDsKKyt9CisrCisrLyogYmZkX29wZW5yX2lv dmVjIFNUQVRfUCBpbXBsZW1lbnRhdGlvbiBmb3IKKysgICBmaW5kX3NlcGFyYXRlX2RlYnVnX2Zp bGVfaW5fc2VjdGlvbi4gIFBhc3NlZCBTVFJFQU0KKysgICBpcyAnc3RydWN0IGx6bWFfc3RyZWFt IConLiAgKi8KKysKKytzdGF0aWMgaW50CisrbHptYV9zdGF0IChzdHJ1Y3QgYmZkICphYmZkLAor KwkgICB2b2lkICpzdHJlYW0sCisrCSAgIHN0cnVjdCBzdGF0ICpzYikKKyt7CisrICBzdHJ1Y3Qg bHptYV9zdHJlYW0gKmxzdHJlYW0gPSBzdHJlYW07CisrCisrICBzYi0+c3Rfc2l6ZSA9IGx6bWFf aW5kZXhfdW5jb21wcmVzc2VkX3NpemUgKGxzdHJlYW0tPmluZGV4KTsKKysgIHJldHVybiAwOwor K30KKysKKysvKiBUaGlzIGxvb2tzIGZvciBhIHh6IGNvbXByZXNzZWQgc2VwYXJhdGUgZGVidWcg aW5mbyBvYmplY3QgZmlsZSBlbWJlZGRlZAorKyAgIGluIGEgc2VjdGlvbiBjYWxsZWQgLmdudV9k ZWJ1Z2RhdGEuIElmIHdlIGZpbmQgb25lIHdlIGNyZWF0ZSBhIGlvdmVjCisrICAgYmFzZWQgYmZk IHRoYXQgZGVjb21wcmVzc2VzIHRoZSBvYmplY3QgZGF0YSBvbiBkZW1hbmQuICAqLworKworK3N0 YXRpYyBiZmQgKgorK2ZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9pbl9zZWN0aW9uIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSkKKyt7CisrICBhc2VjdGlvbiAqc2VjdGlvbjsKKysgIGJmZCAqYWJm ZDsKKysKKysgIHNlY3Rpb24gPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAob2JqZmlsZS0+b2Jm ZCwgIi5nbnVfZGVidWdkYXRhIik7CisrICBpZiAoc2VjdGlvbiA9PSBOVUxMKQorKyAgICByZXR1 cm4gTlVMTDsKKysKKysgIC8qIG9iamZpbGUtPk5BTUUgbGlmZXRpbWUgaXMgbG9uZ2VyIHRoYW4g dGhlIEFCRkQncyBsaWZldGltZS4gICovCisrICBhYmZkID0gYmZkX29wZW5yX2lvdmVjIChvYmpm aWxlLT5uYW1lLCBnbnV0YXJnZXQsIGx6bWFfb3Blbiwgc2VjdGlvbiwKKysJCQkgIGx6bWFfcHJl YWQsIGx6bWFfY2xvc2UsIGx6bWFfc3RhdCk7CisrICBpZiAoYWJmZCA9PSBOVUxMKQorKyAgICBy ZXR1cm4gTlVMTDsKKysKKysgIGlmICghYmZkX2NoZWNrX2Zvcm1hdCAoYWJmZCwgYmZkX29iamVj dCkpCisrICAgIHsKKysgICAgICBiZmRfY2xvc2UgKGFiZmQpOworKyAgICAgIHJldHVybiBOVUxM OworKyAgICB9CisrCisrICByZXR1cm4gYWJmZDsKKyt9CisrCisrI2Vsc2UgLyogIUhBVkVfTElC TFpNQSAqLworKworK3N0YXRpYyBiZmQgKgorK2ZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9pbl9z ZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKKyt7CisrICByZXR1cm4gTlVMTDsKKyt9 CisrCisrI2VuZGlmIC8qICFIQVZFX0xJQkxaTUEgKi8KKysKKyAvKiBTY2FuIGFuZCBidWlsZCBw YXJ0aWFsIHN5bWJvbHMgZm9yIGEgc3ltYm9sIGZpbGUuCisgICAgV2UgaGF2ZSBiZWVuIGluaXRp YWxpemVkIGJ5IGEgY2FsbCB0byBlbGZfc3ltZmlsZV9pbml0LCB3aGljaAorICAgIGN1cnJlbnRs eSBkb2VzIG5vdGhpbmcuCitAQCAtMjQzMyw2ICsyNjkzLDcgQEAgZWxmX3N5bWZpbGVfcmVhZCAo c3RydWN0IG9iamZpbGUgKm9iamZpbAorICAgZWxzZSBpZiAoIW9iamZpbGVfaGFzX3BhcnRpYWxf c3ltYm9scyAob2JqZmlsZSkpCisgICAgIHsKKyAgICAgICBjaGFyICpkZWJ1Z2ZpbGUsICpidWls ZF9pZF9maWxlbmFtZTsKKysgICAgICBiZmQgKmFiZmQgPSBOVUxMOworIAorICAgICAgIGRlYnVn ZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlkIChvYmpmaWxlLAorIAkJ CQkJCSAgICAgICAmYnVpbGRfaWRfZmlsZW5hbWUpOworQEAgLTI0NDIsOSArMjcwMyw3IEBAIGVs Zl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKKyAKKyAgICAgICBpZiAoZGVi dWdmaWxlKQorIAl7CistCSAgYmZkICphYmZkID0gc3ltZmlsZV9iZmRfb3BlbiAoZGVidWdmaWxl KTsKKy0KKy0JICBzeW1ib2xfZmlsZV9hZGRfc2VwYXJhdGUgKGFiZmQsIHN5bWZpbGVfZmxhZ3Ms IG9iamZpbGUpOworKwkgIGFiZmQgPSBzeW1maWxlX2JmZF9vcGVuIChkZWJ1Z2ZpbGUpOworIAkg IHhmcmVlIChkZWJ1Z2ZpbGUpOworIAl9CisgICAgICAgLyogQ2hlY2sgaWYgYW55IHNlcGFyYXRl IGRlYnVnIGluZm8gaGFzIGJlZW4gZXh0cmFjdGVkIG91dC4gICovCitAQCAtMjQ1Myw2ICsyNzEy LDEyIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKKyAJZGVidWdf cHJpbnRfbWlzc2luZyAob2JqZmlsZS0+bmFtZSwgYnVpbGRfaWRfZmlsZW5hbWUpOworIAorICAg ICAgIHhmcmVlIChidWlsZF9pZF9maWxlbmFtZSk7CisrCisrICAgICAgaWYgKGFiZmQgPT0gTlVM TCkKKysJYWJmZCA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9pbl9zZWN0aW9uIChvYmpmaWxl KTsKKysKKysgICAgICBpZiAoYWJmZCAhPSBOVUxMKQorKwlzeW1ib2xfZmlsZV9hZGRfc2VwYXJh dGUgKGFiZmQsIHN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOworICAgICB9CisgCisgICBpZiAoc3lt dGFiX2NyZWF0ZV9kZWJ1ZykKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9kdzItZ251LWRlYnVnZGF0YS5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuNC41MC4y MDEyMDcwMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEuYwkyMDEy LTA3LTA1IDIyOjQ3OjQ1LjQ4ODUwOTM2MCArMDIwMAorQEAgLTAsMCArMSwzMCBAQAorKy8qIFRo aXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29w eXJpZ2h0IDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxzaWduYWwuaD4K KysKKytzdGF0aWMgaW50CisrZGVidWdkYXRhX2Z1bmN0aW9uICh2b2lkKQorK3sKKysgIHJldHVy biByYWlzZSAoU0lHU0VHVikgKyAxOworK30KKysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysg IHJldHVybiBkZWJ1Z2RhdGFfZnVuY3Rpb24gKCkgKyAxOworK30KK0luZGV4OiBnZGItNy40LjUw LjIwMTIwNzAzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZ251LWRlYnVnZGF0YS5leHAK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKKysrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItZ251LWRlYnVnZGF0YS5leHAJMjAxMi0wNy0wNSAyMjo1MDozNi42MjIzNDg5MDAgKzAyMDAK K0BAIC0wLDAgKzEsOTEgQEAKKysjIENvcHlyaWdodCAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc3RhbmRh cmRfdGVzdGZpbGUKKysKKytsb2FkX2xpYiBkd2FyZi5leHAKKytpZiAhW2R3YXJmMl9zdXBwb3J0 XSB7CisrICAgIHJldHVybiAwCisrfQorKworK2lmIFtidWlsZF9leGVjdXRhYmxlICR7dGVzdGZp bGV9LmV4cCAkdGVzdGZpbGVdIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK3Byb2MgcnVuIHsg dGVzdCBjbWRsaW5lIH0geworKyAgICB2ZXJib3NlICJjbWRsaW5lIGlzICRjbWRsaW5lIgorKyAg ICBzZXQgcmVzdWx0IFtjYXRjaCAiZXhlYyAkY21kbGluZSIgb3V0cHV0XQorKyAgICB2ZXJib3Nl ICJyZXN1bHQgaXMgJHJlc3VsdCIKKysgICAgdmVyYm9zZSAib3V0cHV0IGlzICRvdXRwdXQiCisr ICAgIGlmIHskcmVzdWx0ID09IDB9IHsKKysJcGFzcyAkdGVzdAorKwlyZXR1cm4gMAorKyAgICB9 IGVsc2UgeworKwlmYWlsICR0ZXN0CisrCXJldHVybiAtMQorKyAgICB9CisrfQorKworK3NldCBz dHJpcF9wcm9ncmFtIFt0cmFuc2Zvcm0gc3RyaXBdCisrc2V0IG5tX3Byb2dyYW0gW3RyYW5zZm9y bSBubV0KKysKKysjIEV4dHJhY3QgdGhlIGR5bmFtaWMgc3ltYm9scyBmcm9tIHRoZSBtYWluIGJp bmFyeSwgdGhlcmUgaXMgbm8gbmVlZCB0byBhbHNvIGhhdmUgdGhlc2UKKysjIGluIHRoZSBub3Jt YWwgc3ltYm9sIHRhYmxlCisrZmlsZSBkZWxldGUgLS0gJHtiaW5maWxlfS5keW5zeW1zCisraWYg W3J1biAibm0gLUQiICJbdHJhbnNmb3JtIG5tXSAtRCAke2JpbmZpbGV9IC0tZm9ybWF0PXBvc2l4 IC0tZGVmaW5lZC1vbmx5IHwgYXdrIFxce3ByaW50XFwgXFxcJDFcXH0gfCBzb3J0ID4gJHtiaW5m aWxlfS5keW5zeW1zIl0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBFeHRyYWN0IGFsbCB0 aGUgdGV4dCAoaS5lLiBmdW5jdGlvbikgc3ltYm9scyBmcm9tIHRoZSBkZWJ1Z2luZm8KKytmaWxl IGRlbGV0ZSAtLSAke2JpbmZpbGV9LmZ1bmNzeW1zCisraWYgW3J1biAibm0iICJbdHJhbnNmb3Jt IG5tXSAke2JpbmZpbGV9IC0tZm9ybWF0PXBvc2l4IC0tZGVmaW5lZC1vbmx5IHwgYXdrIFxce2lm KFxcXCQyPT1cIlRcInx8XFxcJDI9PVwidFwiKXByaW50XFwgXFxcJDFcXH0gfCBzb3J0ID4gJHti aW5maWxlfS5mdW5jc3ltcyJdIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgS2VlcCBhbGwg dGhlIGZ1bmN0aW9uIHN5bWJvbHMgbm90IGFscmVhZHkgaW4gdGhlIGR5bmFtaWMgc3ltYm9sIHRh YmxlCisrZmlsZSBkZWxldGUgLS0gJHtiaW5maWxlfS5rZWVwX3N5bWJvbHMKKytpZiBbcnVuICJj b21tIiAiY29tbSAtMTMgJHtiaW5maWxlfS5keW5zeW1zICR7YmluZmlsZX0uZnVuY3N5bXMgPiAk e2JpbmZpbGV9LmtlZXBfc3ltYm9scyJdIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgQ29w eSB0aGUgZnVsbCBkZWJ1Z2luZm8sIGtlZXBpbmcgb25seSBhIG1pbnVtYWwgc2V0IG9mIHN5bWJv bHMgYW5kIHJlbW92aW5nIHNvbWUgdW5uZWNlc3Nhcnkgc2VjdGlvbnMKKytmaWxlIGRlbGV0ZSAt LSAke2JpbmZpbGV9Lm1pbmlfZGVidWdpbmZvCisraWYgW3J1biAib2JqY29weSAxIiAiW3RyYW5z Zm9ybSBvYmpjb3B5XSAtUyAtLXJlbW92ZS1zZWN0aW9uIC5nZGJfaW5kZXggLS1yZW1vdmUtc2Vj dGlvbiAuY29tbWVudCAtLWtlZXAtc3ltYm9scz0ke2JpbmZpbGV9LmtlZXBfc3ltYm9scyAke2Jp bmZpbGV9ICR7YmluZmlsZX0ubWluaV9kZWJ1Z2luZm8iXSB7CisrICAgIHJldHVybiAtMQorK30K KysKKysjIEdEQiBzcGVjaWZpYyAtIHdlIGRvIG5vdCBoYXZlIHNwbGl0IGV4ZWN1dGFibGUgaW4g YWR2YW5jZS4KKytmaWxlIGRlbGV0ZSAtLSAke2JpbmZpbGV9LnN0cmlwCisraWYgW3J1biAic3Ry aXAiICJbdHJhbnNmb3JtIHN0cmlwXSAtLXN0cmlwLWFsbCAtbyAke2JpbmZpbGV9LnN0cmlwICR7 YmluZmlsZX0iXSB7CisrICAgIHJldHVybiAtMQorK30KKysKKysjIEluamVjdCB0aGUgY29tcHJl c3NlZCBkYXRhIGludG8gdGhlIC5nbnVfZGVidWdkYXRhIHNlY3Rpb24gb2YgdGhlIG9yaWdpbmFs IGJpbmFyeQorK2ZpbGUgZGVsZXRlIC0tICR7YmluZmlsZX0ubWluaV9kZWJ1Z2luZm8ueHoKKytp ZiBbcnVuICJ4eiIgInh6ICR7YmluZmlsZX0ubWluaV9kZWJ1Z2luZm8iXSB7CisrICAgIHJldHVy biAtMQorK30KKytmaWxlIGRlbGV0ZSAtLSAke2JpbmZpbGV9LnRlc3QKKytpZiBbcnVuICJvYmpj b3B5IDIiICJbdHJhbnNmb3JtIG9iamNvcHldIC0tYWRkLXNlY3Rpb24gLmdudV9kZWJ1Z2RhdGE9 JHtiaW5maWxlfS5taW5pX2RlYnVnaW5mby54eiAke2JpbmZpbGV9LnN0cmlwICR7YmluZmlsZX0u dGVzdCJdIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2NsZWFuX3Jlc3RhcnQgIiR0ZXN0Zmls ZS5zdHJpcCIKKysKKytnZGJfdGVzdCAicCBkZWJ1Z2RhdGFfZnVuY3Rpb24iIHtObyBzeW1ib2wg dGFibGUgaXMgbG9hZGVkXC4gIFVzZSB0aGUgImZpbGUiIGNvbW1hbmRcLn0gIm5vIHN5bXRhYiIK KysKKytjbGVhbl9yZXN0YXJ0ICIkdGVzdGZpbGUudGVzdCIKKysKKytnZGJfdGVzdCAicCBkZWJ1 Z2RhdGFfZnVuY3Rpb24iIHsgPSB7PHRleHQgdmFyaWFibGUsIG5vIGRlYnVnIGluZm8+fSAweFsw LTlhLWZdKyA8ZGVidWdkYXRhX2Z1bmN0aW9uPn0gImhhdmUgc3ltdGFiIgoKZGlmZiAtLWdpdCBh L2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggMTMzYmEyMi4uZWM4NzdjMSAxMDA2NDQKLS0tIGEv Z2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTM1LDcgKzM1LDcgQEAgVmVyc2lvbjogNy40LjUw LiV7c25hcH0KIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2Vy dmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9m IGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhl IHRlc3RpbmcuCi1SZWxlYXNlOiA4JXs/ZGlzdH0KK1JlbGVhc2U6IDklez9kaXN0fQogCiBMaWNl bnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BM djIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJs aWMgRG9tYWluCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC01NjksNiArNTY5LDEw IEBAIFBhdGNoNzAzOiBnZGItcmhiei04MTgzNDMtc2V0LXNvbGliLWFic29sdXRlLXByZWZpeC10 ZXN0Y2FzZS5wYXRjaAogIz1wdXNoCiBQYXRjaDcxNTogZ2RiLWVycm5vLWZ1bmMtZGF0YXR5cGUt cmV2ZXJ0LnBhdGNoCiAKKyMgSW1wbGVtZW50IE1pbmlEZWJ1Z0luZm8gRi0xOCBGZWF0dXJlIGNv bnN1bWVyIChBbGV4YW5kZXIgTGFyc3NvbiwgQlogODM0MDY4KS4KKyM9ZmVkb3JhCitQYXRjaDcx NjogZ2RiLW1pbmlkZWJ1Z2luZm8ucGF0Y2gKKwogJWlmIDAleyE/cmhlbDoxfSB8fCAwJXs/cmhl bH0gPiA2CiAjIFJMX1NUQVRFX0ZFRE9SQV9HREIgd291bGQgbm90IGJlIGZvdW5kIGZvcjoKICMg UGF0Y2g2NDI6IGdkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCkBAIC04NTgsNiArODYy LDcgQEAgcm0gLWYgZ2RiL2p2LWV4cC5jIGdkYi9tMi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIv cC1leHAuYwogJXBhdGNoNjk1IC1wMQogJXBhdGNoNjk4IC1wMQogJXBhdGNoNzAzIC1wMQorJXBh dGNoNzE2IC1wMQogCiAlcGF0Y2gzOTMgLXAxCiAlaWYgMCV7IT9lbDU6MX0gfHwgMCV7P3NjbDox fQpAQCAtMTM0Nyw2ICsxMzUyLDkgQEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190 YXJnZXRfY3B1fSIgPT0gIm5vYXJjaCIKIAogJWNoYW5nZWxvZworKiBUaHUgSnVsICA1IDIwMTIg SmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy40LjUwLjIwMTIw NzAzLTkuZmMxOAorLSBJbXBsZW1lbnQgTWluaURlYnVnSW5mbyBGLTE4IEZlYXR1cmUgY29uc3Vt ZXIgKEFsZXhhbmRlciBMYXJzc29uLCBCWiA4MzQwNjgpLgorCiAqIFR1ZSBKdWwgIDMgMjAxMiBK YW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjQuNTAuMjAxMjA3 MDMtOC5mYzE4CiAtIFJlYmFzZSB0byBGU0YgR0RCIDcuNC41MC4yMDEyMDcwMy4KIC0gW2FyY2hl ci10cm9tZXktZHd6LW11bHRpZmlsZS1yZWJhc2VdIE1lcmdlIG5ldyBicmFuY2ggKFRvbSBUcm9t ZXkpLgo=