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: Rebase to FSF GDB 7.8.1. Date: Sat, 27 Jun 2026 23:56:52 GMT Message-ID: <178260461291.1.9178422270356809388.rpms-gdb-43b0bce1db25@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 43b0bce1db25f51fc4bd7b400f42984c8bca466b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogNDNiMGJjZTFkYjI1ZjUxZmM0YmQ3YjQwMGY0 Mjk4NGM4YmNhNDY2YgpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNC0xMC0zMFQyMjoyMToxOCswMTowMApTdGF0cyAgOiArNTgv LTMzNjEgaW4gMTEgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9y Zy9ycG1zL2dkYi9jLzQzYjBiY2UxZGIyNWY1MWZjNGJkN2I0MDBmNDI5ODRjOGJjYTQ2NmI/YnJh bmNoPWdkYi0xNy4yLXJlYmFzZS1mNDQKCkxvZzoKUmViYXNlIHRvIEZTRiBHREIgNy44LjEuCgot LS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDM5YmMyZDguLmU0 NTBmN2EgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsx LDIgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy44 LnRhci5negorL2dkYi03LjguMS50YXIueHoKCmRpZmYgLS1naXQgYS9nZGItYXN5bmMtc3RvcHBl ZC1vbi1waWQtYXJnLTFvZjIucGF0Y2ggYi9nZGItYXN5bmMtc3RvcHBlZC1vbi1waWQtYXJnLTFv ZjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjMzEyZTMuLjAwMDAwMDAK LS0tIGEvZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy0xb2YyLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMzUwICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hl cy8yMDE0LTA5L21zZzAwMTAyLmh0bWwKLVN1YmplY3Q6IFJlOiBSZWdyZXNzaW9uOiBHREIgc3Rv cHBlZCBvbiBydW4gd2l0aCBhdHRhY2hlZCBwcm9jZXNzIChQUiAxNzM0NykgIFtSZTogW3B1c2hl ZCs3LjhdIFJlOiBbUEFUQ0hdIEZpeCAiYXR0YWNoIiBjb21tYW5kIHZzIHVzZXIgaW5wdXQgcmFj ZQotCi1PbiAwOS8wMy8yMDE0IDA4OjU4IEFNLCBKYW4gS3JhdG9jaHZpbCB3cm90ZToKLQotPiBo dHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xNzM0NwotCi1U aGFua3MgSmFuLgotCi1IZXJlJ3MgYSBmaXgsIHRlc3QgaW5jbHVkZWQuICBDb21tZW50cz8KLQot VGhhbmtzLAotUGVkcm8gQWx2ZXMKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVtQQVRD SF0gZ2RiLzE3MzQ3IC0gUmVncmVzc2lvbjogR0RCIHN0b3BwZWQgb24gcnVuIHdpdGggYXR0YWNo ZWQgcHJvY2VzcwotCi1Eb2luZzoKLQotICBnZGIgLS1waWQ9UElEIC1leCBydW4KLQotUmVzdWx0 cyBpbiBHREIgZ2V0dGluZyBhIFNJR1RUSU4sIGFuZCB0aHVzIGVuZGluZyBzdG9wcGVkLiAgVGhh dCdzCi11c3VhbGx5IGluZGljYXRpdmUgb2YgYSBtaXNzaW5nIHRhcmdldF90ZXJtaW5hbF9vdXJz IGNhbGwuCi0KLUUuZy4sIGZyb20gdGhlIFBSOgotCi0gJCBzbGVlcCAxaCAmIHA9JCE7IHNsZWVw IDAuMTsgZ2RiIC1iYXRjaCBzbGVlcCAkcCAtZXggcnVuCi0gWzFdIDI4MjYzCi0gWzFdICAgS2ls bGVkICAgICAgICAgICAgICAgICAgc2xlZXAgMWgKLQotIFsyXSsgIFN0b3BwZWQgICAgICAgICAg ICAgICAgIGdkYiAtYmF0Y2ggc2xlZXAgJHAgLWV4IHJ1bgotCi1UaGUgd29ya2Fyb3VuZCBpcyBk b2luZzoKLQotIGdkYiAtZXggImF0dGFjaCAkUElEIiAtZXggInJ1biIKLQotaW5zdGVhZCBvZgot Ci0gZ2RiIFstcF0gJFBJRCAtZXggInJ1biIKLQotV2l0aCB0aGUgZm9ybWVyLCBnZGIgd2FpdHMg Zm9yIHRoZSBhdHRhY2ggY29tbWFuZCB0byBjb21wbGV0ZSBiZWZvcmUKLW1vdmluZyBvbiB0byB0 aGUgInJ1biIgY29tbWFuZCwgYmVjYXVzZSB0aGUgaW50ZXJwcmV0ZXIgaXMgaW4gc3luYwotbW9k ZSBhdCB0aGlzIHBvaW50LCB3aXRoaW4gZXhlY3V0ZV9jb21tYW5kLiAgQnV0IGZvciB0aGUgbGF0 dGVyLAotYXR0YWNoX2NvbW1hbmQgaXMgY2FsbGVkIGRpcmVjdGx5IGZyb20gY2FwdHVyZWRfbWFp biwgYW5kIHRodXMgbWlzc2VzCi10aGF0IHdhaXRpbmcuICBJT1csICJydW4iIGlzIHJ1bm5pbmcg YmVmb3JlIHRoZSBhdHRhY2ggY29udGludWF0aW9uCi1oYXMgcnVuLCBiZWZvcmUgdGhlIHByb2dy YW0gc3RvcHMgYW5kIGF0dGFjaCBjb21wbGV0ZXMuICBUaGUgYnJva2VuCi10ZXJtaW5hbCBzZXR0 aW5ncyBhcmUganVzdCBvbmUgc3ltcHRvbSBvZiB0aGF0LiAgQW55IGNvbW1hbmQgdGhhdAotcXVl cmllcyBvciByZXF1aXJlcyBpbnB1dCByZXN1bHRzIGluIHRoZSBzYW1lLgotCi1UaGUgZml4IGlz IHRvIHdhaXQgaW4gY2F0Y2hfY29tbWFuZF9lcnJvcnMgKHdoaWNoIGlzIHNwZWNpZmljIHRvCi1t YWluLmMgbm93YWRheXMpLCBqdXN0IGxpa2Ugd2Ugd2FpdCBpbiBleGVjdXRlX2NvbW1hbmQuCi0K LWdkYi9DaGFuZ2VMb2c6Ci0yMDE0LTA5LTAzICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQu Y29tPgotCi0JUFIgZ2RiLzE3MzQ3Ci0JKiBtYWluLmM6IEluY2x1ZGUgImluZnJ1bi5oIi4KLQko Y2F0Y2hfY29tbWFuZF9lcnJvcnMsIGNhdGNoX2NvbW1hbmRfZXJyb3JzX2NvbnN0KTogV2FpdCBm b3IgdGhlCi0JZm9yZWdyb3VuZCBjb21tYW5kIHRvIGNvbXBsZXRlLgotCSogdG9wLmMgKG1heWJl X3dhaXRfc3luY19jb21tYW5kX2RvbmUpOiBOZXcgZnVuY3Rpb24sIGZhY3RvcmVkIG91dAotCWZy b20gLi4uCi0JKG1heWJlX3dhaXRfc3luY19jb21tYW5kX2RvbmUpOiAuLi4gaGVyZS4KLQkqIHRv cC5oIChtYXliZV93YWl0X3N5bmNfY29tbWFuZF9kb25lKTogTmV3IGRlY2xhcmF0aW9uLgotCi1n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKLTIwMTQtMDktMDMgIFBlZHJvIEFsdmVzICA8cGFsdmVz QHJlZGhhdC5jb20+Ci0KLQlQUiBnZGIvMTczNDcKLQkqIGdkYi5iYXNlL2F0dGFjaC5leHAgKHNw YXduX3Rlc3RfcHJvZyk6IE5ldywgZmFjdG9yZWQgb3V0IGZyb20KLQkuLi4KLQkoZG9fYXR0YWNo X3Rlc3RzLCBkb19jYWxsX2F0dGFjaF90ZXN0cywgZG9fY29tbWFuZF9hdHRhY2hfdGVzdHMpOgot CS4uLiBoZXJlLgotCShnZGJfc3Bhd25fd2l0aF9jbWRsaW5lX29wdHMpOiBOZXcgcHJvY2VkdXJl LgotCSh0ZXN0X2NvbW1hbmRfbGluZV9hdHRhY2hfcnVuKTogTmV3IHByb2NlZHVyZS4KLQkodG9w IGxldmVsKTogQ2FsbCBpdC4KLS0tLQotIGdkYi9tYWluLmMgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgOSArKysKLSBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5leHAgfCAxMTggKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KLSBnZGIvdG9wLmMgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMjYgKysrKystLS0tCi0gZ2RiL3RvcC5oICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA4ICsrKwotIDQgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyks IDQ3IGRlbGV0aW9ucygtKQotCi1JbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9tYWluLmMJMjAxNC0wOS0wNyAxOToxMjo0NS4wNjY5ODE1 ODggKzAyMDAKLSsrKyBnZGItNy44L2dkYi9tYWluLmMJMjAxNC0wOS0wNyAxOToxNDoyMi42MTMw OTUyMDEgKzAyMDAKLUBAIC00Nyw2ICs0Nyw3IEBACi0gI2luY2x1ZGUgImZpbGVuYW1lcy5oIgot ICNpbmNsdWRlICJmaWxlc3R1ZmYuaCIKLSAjaW5jbHVkZSAiZXZlbnQtdG9wLmgiCi0rI2luY2x1 ZGUgImluZnJ1bi5oIgotIAotIC8qIFRoZSBzZWxlY3RlZCBpbnRlcnByZXRlci4gIFRoaXMgd2ls bCBiZSB1c2VkIGFzIGEgc2V0IGNvbW1hbmQKLSAgICB2YXJpYWJsZSwgc28gaXQgc2hvdWxkIGFs d2F5cyBiZSBtYWxsb2MnZWQgLSBzaW5jZQotQEAgLTM1MCw3ICszNTEsMTEgQEAgY2F0Y2hfY29t bWFuZF9lcnJvcnMgKGNhdGNoX2NvbW1hbmRfZXJybwotIAotICAgVFJZX0NBVENIIChlLCBtYXNr KQotICAgICB7Ci0rICAgICAgaW50IHdhc19zeW5jID0gc3luY19leGVjdXRpb247Ci0rCi0gICAg ICAgY29tbWFuZCAoYXJnLCBmcm9tX3R0eSk7Ci0rCi0rICAgICAgbWF5YmVfd2FpdF9zeW5jX2Nv bW1hbmRfZG9uZSAod2FzX3N5bmMpOwotICAgICB9Ci0gICByZXR1cm4gaGFuZGxlX2NvbW1hbmRf ZXJyb3JzIChlKTsKLSB9Ci1AQCAtMzY5LDcgKzM3NCwxMSBAQCBjYXRjaF9jb21tYW5kX2Vycm9y c19jb25zdCAoY2F0Y2hfY29tbWFuCi0gCi0gICBUUllfQ0FUQ0ggKGUsIG1hc2spCi0gICAgIHsK LSsgICAgICBpbnQgd2FzX3N5bmMgPSBzeW5jX2V4ZWN1dGlvbjsKLSsKLSAgICAgICBjb21tYW5k IChhcmcsIGZyb21fdHR5KTsKLSsKLSsgICAgICBtYXliZV93YWl0X3N5bmNfY29tbWFuZF9kb25l ICh3YXNfc3luYyk7Ci0gICAgIH0KLSAgIHJldHVybiBoYW5kbGVfY29tbWFuZF9lcnJvcnMgKGUp OwotIH0KLUluZGV4OiBnZGItNy44L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cAot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFj aC5leHAJMjAxNC0wOS0wNyAxOToxMjo0NS4wNjc5ODE1ODkgKzAyMDAKLSsrKyBnZGItNy44L2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cAkyMDE0LTA5LTA3IDE5OjEyOjQ4LjYwMTk4 NTcwNiArMDIwMAotQEAgLTU4LDYgKzU4LDM3IEBAIGlmIFtnZXRfY29tcGlsZXJfaW5mb10gewot ICAgICByZXR1cm4gLTEKLSB9Ci0gCi0rIyBTdGFydCB0aGUgcHJvZ3JhbSBydW5uaW5nIGFuZCB0 aGVuIHdhaXQgZm9yIGEgYml0LCB0byBiZSBzdXJlIHRoYXQKLSsjIGl0IGNhbiBiZSBhdHRhY2hl ZCB0by4gIFJldHVybiB0aGUgcHJvY2VzcydzIFBJRC4KLSsKLStwcm9jIHNwYXduX3Rlc3RfcHJv ZyB7IGV4ZWN1dGFibGUgfSB7Ci0rICAgIHNldCB0ZXN0cGlkIFtldmFsIGV4ZWMgJGV4ZWN1dGFi bGUgJl0KLSsgICAgZXhlYyBzbGVlcCAyCi0rICAgIGlmIHsgW2lzdGFyZ2V0ICIqLSotY3lnd2lu KiJdIH0gewotKwkjIHRlc3RwaWQgaXMgdGhlIEN5Z3dpbiBQSUQsIEdEQiB1c2VzIHRoZSBXaW5k b3dzIFBJRCwgd2hpY2ggbWlnaHQgYmUKLSsJIyBkaWZmZXJlbnQgZHVlIHRvIHRoZSB3YXkgZm9y ay9leGVjIHdvcmtzLgotKwlzZXQgdGVzdHBpZCBbIGV4ZWMgcHMgLWUgfCBnYXdrICJ7IGlmIChc JDEgPT0gJHRlc3RwaWQpIHByaW50IFwkNDsgfSIgXQotKyAgICB9Ci0rCi0rICAgIHJldHVybiAk dGVzdHBpZAotK30KLSsKLSsjIFNwYXduIEdEQiB3aXRoIENNRExJTkVfRkxBR1MgYXBwZW5kZWQg dG8gdGhlIEdEQkZMQUdTIGdsb2JhbC4KLSsKLStwcm9jIGdkYl9zcGF3bl93aXRoX2NtZGxpbmVf b3B0cyB7IGNtZGxpbmVfZmxhZ3MgfSB7Ci0rICAgIGdsb2JhbCBHREJGTEFHUwotKwotKyAgICBz ZXQgc2F2ZWRfZ2RiZmxhZ3MgJEdEQkZMQUdTCi0rCi0rICAgIGFwcGVuZCBHREJGTEFHUyAkY21k bGluZV9mbGFncwotKwotKyAgICBzZXQgcmVzIFtnZGJfc3Bhd25dCi0rCi0rICAgIHNldCBHREJG TEFHUyAkc2F2ZWRfZ2RiZmxhZ3MKLSsKLSsgICAgcmV0dXJuICRyZXMKLSt9Ci0rCi0gcHJvYyBk b19hdHRhY2hfdGVzdHMge30gewotICAgICBnbG9iYWwgZ2RiX3Byb21wdAotICAgICBnbG9iYWwg YmluZmlsZQotQEAgLTcwLDEzICsxMDEsNyBAQCBwcm9jIGRvX2F0dGFjaF90ZXN0cyB7fSB7Ci0g ICAgICMgU3RhcnQgdGhlIHByb2dyYW0gcnVubmluZyBhbmQgdGhlbiB3YWl0IGZvciBhIGJpdCwg dG8gYmUgc3VyZQotICAgICAjIHRoYXQgaXQgY2FuIGJlIGF0dGFjaGVkIHRvLgotIAotLSAgICBz ZXQgdGVzdHBpZCBbZXZhbCBleGVjICRiaW5maWxlICZdCi0tICAgIGV4ZWMgc2xlZXAgMgotLSAg ICBpZiB7IFtpc3RhcmdldCAiKi0qLWN5Z3dpbioiXSB9IHsKLS0JIyB0ZXN0cGlkIGlzIHRoZSBD eWd3aW4gUElELCBHREIgdXNlcyB0aGUgV2luZG93cyBQSUQsIHdoaWNoIG1pZ2h0IGJlCi0tCSMg ZGlmZmVyZW50IGR1ZSB0byB0aGUgd2F5IGZvcmsvZXhlYyB3b3Jrcy4KLS0Jc2V0IHRlc3RwaWQg WyBleGVjIHBzIC1lIHwgZ2F3ayAieyBpZiAoXCQxID09ICR0ZXN0cGlkKSBwcmludCBcJDQ7IH0i IF0KLS0gICAgfQotKyAgICBzZXQgdGVzdHBpZCBbc3Bhd25fdGVzdF9wcm9nICRiaW5maWxlXQot IAotICAgICAjIFZlcmlmeSB0aGF0IHdlIGNhbm5vdCBhdHRhY2ggdG8gbm9uc2Vuc2UuCi0gCi1A QCAtMjc5LDE2ICszMDQsNyBAQCBwcm9jIGRvX2F0dGFjaF90ZXN0cyB7fSB7Ci0gICAgCi0gICAg IHJlbW90ZV9leGVjIGJ1aWxkICJraWxsIC05ICR7dGVzdHBpZH0iCi0gCi0tICAgICMgU3RhcnQg dGhlIHByb2dyYW0gcnVubmluZyBhbmQgdGhlbiB3YWl0IGZvciBhIGJpdCwgdG8gYmUgc3VyZQot LSAgICAjIHRoYXQgaXQgY2FuIGJlIGF0dGFjaGVkIHRvLgotLSAgIAotLSAgICBzZXQgdGVzdHBp ZCBbZXZhbCBleGVjICRiaW5maWxlICZdCi0tICAgIGV4ZWMgc2xlZXAgMgotLSAgICBpZiB7IFtp c3RhcmdldCAiKi0qLWN5Z3dpbioiXSB9IHsKLS0JIyB0ZXN0cGlkIGlzIHRoZSBDeWd3aW4gUElE LCBHREIgdXNlcyB0aGUgV2luZG93cyBQSUQsIHdoaWNoIG1pZ2h0IGJlCi0tCSMgZGlmZmVyZW50 IGR1ZSB0byB0aGUgd2F5IGZvcmsvZXhlYyB3b3Jrcy4KLS0Jc2V0IHRlc3RwaWQgWyBleGVjIHBz IC1lIHwgZ2F3ayAieyBpZiAoXCQxID09ICR0ZXN0cGlkKSBwcmludCBcJDQ7IH0iIF0KLS0gICAg fQotKyAgICBzZXQgdGVzdHBpZCBbc3Bhd25fdGVzdF9wcm9nICRiaW5maWxlXQotIAotICAgICAj IFZlcmlmeSB0aGF0IHdlIGNhbiBhdHRhY2ggdG8gdGhlIHByb2Nlc3MsIGFuZCBmaW5kIGl0cyBh Lm91dAotICAgICAjIHdoZW4gd2UncmUgY2QnZCB0byBzb21lIGRpcmVjdG9yeSB0aGF0IGRvZXNu J3QgY29udGFpbiB0aGUKLUBAIC0zMzUsMTYgKzM1MSw3IEBAIHByb2MgZG9fY2FsbF9hdHRhY2hf dGVzdHMge30gewotICAgICBnbG9iYWwgZ2RiX3Byb21wdAotICAgICBnbG9iYWwgYmluZmlsZTIK LSAgICAgCi0tICAgICMgU3RhcnQgdGhlIHByb2dyYW0gcnVubmluZyBhbmQgdGhlbiB3YWl0IGZv ciBhIGJpdCwgdG8gYmUgc3VyZQotLSAgICAjIHRoYXQgaXQgY2FuIGJlIGF0dGFjaGVkIHRvLgot LSAgIAotLSAgICBzZXQgdGVzdHBpZCBbZXZhbCBleGVjICRiaW5maWxlMiAmXQotLSAgICBleGVj IHNsZWVwIDIKLS0gICAgaWYgeyBbaXN0YXJnZXQgIiotKi1jeWd3aW4qIl0gfSB7Ci0tCSMgdGVz dHBpZCBpcyB0aGUgQ3lnd2luIFBJRCwgR0RCIHVzZXMgdGhlIFdpbmRvd3MgUElELCB3aGljaCBt aWdodCBiZQotLQkjIGRpZmZlcmVudCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4ZWMgd29ya3MuCi0t CXNldCB0ZXN0cGlkIFsgZXhlYyBwcyAtZSB8IGdhd2sgInsgaWYgKFwkMSA9PSAkdGVzdHBpZCkg cHJpbnQgXCQ0OyB9IiBdCi0tICAgIH0KLSsgICAgc2V0IHRlc3RwaWQgW3NwYXduX3Rlc3RfcHJv ZyAkYmluZmlsZTJdCi0gCi0gICAgICMgQXR0YWNoCi0gICAgCi1AQCAtMzk3LDE2ICs0MDQsNyBA QCBwcm9jIGRvX2NvbW1hbmRfYXR0YWNoX3Rlc3RzIHt9IHsKLSAJcmV0dXJuIDAKLSAgICAgfQot IAotLSAgICAjIFN0YXJ0IHRoZSBwcm9ncmFtIHJ1bm5pbmcgYW5kIHRoZW4gd2FpdCBmb3IgYSBi aXQsIHRvIGJlIHN1cmUKLS0gICAgIyB0aGF0IGl0IGNhbiBiZSBhdHRhY2hlZCB0by4KLS0KLS0g ICAgc2V0IHRlc3RwaWQgW2V2YWwgZXhlYyAkYmluZmlsZSAmXQotLSAgICBleGVjIHNsZWVwIDIK LS0gICAgaWYgeyBbaXN0YXJnZXQgIiotKi1jeWd3aW4qIl0gfSB7Ci0tCSMgdGVzdHBpZCBpcyB0 aGUgQ3lnd2luIFBJRCwgR0RCIHVzZXMgdGhlIFdpbmRvd3MgUElELCB3aGljaCBtaWdodCBiZQot LQkjIGRpZmZlcmVudCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4ZWMgd29ya3MuCi0tCXNldCB0ZXN0 cGlkIFsgZXhlYyBwcyAtZSB8IGdhd2sgInsgaWYgKFwkMSA9PSAkdGVzdHBpZCkgcHJpbnQgXCQ0 OyB9IiBdCi0tICAgIH0KLSsgICAgc2V0IHRlc3RwaWQgW3NwYXduX3Rlc3RfcHJvZyAkYmluZmls ZV0KLSAKLSAgICAgZ2RiX2V4aXQKLSAgICAgaWYgJHZlcmJvc2U+MSB0aGVuIHsKLUBAIC00Mjks NiArNDI3LDUwIEBAIHByb2MgZG9fY29tbWFuZF9hdHRhY2hfdGVzdHMge30gewotICAgICByZW1v dGVfZXhlYyBidWlsZCAia2lsbCAtOSAke3Rlc3RwaWR9IgotIH0KLSAKLSsjIFRlc3QgJyBnZGIg LS1waWQgUElEIC1leCAicnVuIiAnLiAgR0RCIHVzZWQgdG8gaGF2ZSBhIGJ1ZyB3aGVyZQotKyMg InJ1biIgd291bGQgcnVuIGJlZm9yZSB0aGUgYXR0YWNoIGZpbmlzaGVkIC0gUFIxNzM0Ny4KLSsK LStwcm9jIHRlc3RfY29tbWFuZF9saW5lX2F0dGFjaF9ydW4ge30gewotKyAgICBnbG9iYWwgZ2Ri X3Byb21wdAotKyAgICBnbG9iYWwgYmluZmlsZQotKyAgICBnbG9iYWwgdmVyYm9zZQotKyAgICBn bG9iYWwgR0RCCi0rICAgIGdsb2JhbCBJTlRFUk5BTF9HREJGTEFHUwotKwotKyAgICBpZiAhW2lz bmF0aXZlXSB0aGVuIHsKLSsJdW5zdXBwb3J0ZWQgImNvbW1hbmRsaW5lIGF0dGFjaCBydW4gdGVz dCIKLSsJcmV0dXJuIDAKLSsgICAgfQotKwotKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJjbWRsaW5l IGF0dGFjaCBydW4iIHsKLSsJc2V0IHRlc3RwaWQgW3NwYXduX3Rlc3RfcHJvZyAkYmluZmlsZV0K LSsKLSsJc2V0IHRlc3QgInJ1biB0byBwcm9tcHQiCi0rCWdkYl9leGl0Ci0rCXNldCByZXMgW2dk Yl9zcGF3bl93aXRoX2NtZGxpbmVfb3B0cyAiLS1waWQ9JHRlc3RwaWQgLWV4IFwic3RhcnRcIiJd Ci0rCWlmIHsgJHJlcyAhPSAwfSB7Ci0rCSAgICBmYWlsICR0ZXN0Ci0rCSAgICByZXR1cm4gJHJl cwotKwl9Ci0rCWdkYl90ZXN0X211bHRpcGxlICIiICR0ZXN0IHsKLSsJICAgIC1yZSB7QXR0YWNo aW5nIHRvLipTdGFydCBpdCBmcm9tIHRoZSBiZWdpbm5pbmdcPyBcKHkgb3IgblwpIH0gewotKwkJ cGFzcyAkdGVzdAotKwkgICAgfQotKwl9Ci0rCi0rCXNlbmRfZ2RiICJ5XG4iCi0rCi0rCXNldCB0 ZXN0ICJydW4gdG8gbWFpbiIKLSsJZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgewotKwkgICAg LXJlICJUZW1wb3JhcnkgYnJlYWtwb2ludCAuKiBtYWluIC4qJGdkYl9wcm9tcHQgJCIgewotKwkJ cGFzcyAkdGVzdAotKwkgICAgfQotKwl9Ci0rCi0rCSMgR2V0IHJpZCBvZiB0aGUgcHJvY2Vzcwot KwlyZW1vdGVfZXhlYyBidWlsZCAia2lsbCAtOSAke3Rlc3RwaWR9IgotKyAgICB9Ci0rfQotIAot ICMgU3RhcnQgd2l0aCBhIGZyZXNoIGdkYgotIAotQEAgLTQ1Myw0ICs0OTUsNiBAQCBkb19jYWxs X2F0dGFjaF90ZXN0cwotIAotIGRvX2NvbW1hbmRfYXR0YWNoX3Rlc3RzCi0gCi0rdGVzdF9jb21t YW5kX2xpbmVfYXR0YWNoX3J1bgotKwotIHJldHVybiAwCi1JbmRleDogZ2RiLTcuOC9nZGIvdG9w LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL3RvcC5jCTIwMTQtMDktMDcgMTk6 MTI6NDUuMDY3OTgxNTg5ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvdG9wLmMJMjAxNC0wOS0wNyAx OToxMjo0OC42MDE5ODU3MDYgKzAyMDAKLUBAIC0zNzUsNiArMzc1LDIxIEBAIGNoZWNrX2ZyYW1l X2xhbmd1YWdlX2NoYW5nZSAodm9pZCkKLSAgICAgfQotIH0KLSAKLSt2b2lkCi0rbWF5YmVfd2Fp dF9zeW5jX2NvbW1hbmRfZG9uZSAoaW50IHdhc19zeW5jKQotK3sKLSsgIC8qIElmIHRoZSBpbnRl cnByZXRlciBpcyBpbiBzeW5jIG1vZGUgKHdlJ3JlIHJ1bm5pbmcgYSB1c2VyCi0rICAgICBjb21t YW5kJ3MgbGlzdCwgcnVubmluZyBjb21tYW5kIGhvb2tzIG9yIHNpbWlsYXJzKSwgYW5kIHdlCi0r ICAgICBqdXN0IHJhbiBhIHN5bmNocm9ub3VzIGNvbW1hbmQgdGhhdCBzdGFydGVkIHRoZSB0YXJn ZXQsIHdhaXQKLSsgICAgIGZvciB0aGF0IGNvbW1hbmQgdG8gZW5kLiAgKi8KLSsgIGlmICghaW50 ZXJwcmV0ZXJfYXN5bmMgJiYgIXdhc19zeW5jICYmIHN5bmNfZXhlY3V0aW9uKQotKyAgICB7Ci0r ICAgICAgd2hpbGUgKGdkYl9kb19vbmVfZXZlbnQgKCkgPj0gMCkKLSsJaWYgKCFzeW5jX2V4ZWN1 dGlvbikKLSsJICBicmVhazsKLSsgICAgfQotK30KLSsKLSAvKiBFeGVjdXRlIHRoZSBsaW5lIFAg YXMgYSBjb21tYW5kLCBpbiB0aGUgY3VycmVudCB1c2VyIGNvbnRleHQuCi0gICAgUGFzcyBGUk9N X1RUWSBhcyBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIGRlZmluaW5nIGZ1bmN0aW9uLiAgKi8KLSAK LUBAIC00NjEsMTYgKzQ3Niw3IEBAIGV4ZWN1dGVfY29tbWFuZCAoY2hhciAqcCwgaW50IGZyb21f dHR5KQotICAgICAgIGVsc2UKLSAJY21kX2Z1bmMgKGMsIGFyZywgZnJvbV90dHkpOwotIAotLSAg ICAgIC8qIElmIHRoZSBpbnRlcnByZXRlciBpcyBpbiBzeW5jIG1vZGUgKHdlJ3JlIHJ1bm5pbmcg YSB1c2VyCi0tCSBjb21tYW5kJ3MgbGlzdCwgcnVubmluZyBjb21tYW5kIGhvb2tzIG9yIHNpbWls YXJzKSwgYW5kIHdlCi0tCSBqdXN0IHJhbiBhIHN5bmNocm9ub3VzIGNvbW1hbmQgdGhhdCBzdGFy dGVkIHRoZSB0YXJnZXQsIHdhaXQKLS0JIGZvciB0aGF0IGNvbW1hbmQgdG8gZW5kLiAgKi8KLS0g ICAgICBpZiAoIWludGVycHJldGVyX2FzeW5jICYmICF3YXNfc3luYyAmJiBzeW5jX2V4ZWN1dGlv bikKLS0JewotLQkgIHdoaWxlIChnZGJfZG9fb25lX2V2ZW50ICgpID49IDApCi0tCSAgICBpZiAo IXN5bmNfZXhlY3V0aW9uKQotLQkgICAgICBicmVhazsKLS0JfQotKyAgICAgIG1heWJlX3dhaXRf c3luY19jb21tYW5kX2RvbmUgKHdhc19zeW5jKTsKLSAKLSAgICAgICAvKiBJZiB0aGlzIGNvbW1h bmQgaGFzIGJlZW4gcG9zdC1ob29rZWQsIHJ1biB0aGUgaG9vayBsYXN0LiAgKi8KLSAgICAgICBl eGVjdXRlX2NtZF9wb3N0X2hvb2sgKGMpOwotSW5kZXg6IGdkYi03LjgvZ2RiL3RvcC5oCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi90b3AuaAkyMDE0LTA5LTA3IDE5OjEyOjQ1LjA2 ODk4MTU5MCArMDIwMAotKysrIGdkYi03LjgvZ2RiL3RvcC5oCTIwMTQtMDktMDcgMTk6MTI6NDgu NjAxOTg1NzA2ICswMjAwCi1AQCAtNDIsNiArNDIsMTQgQEAgZXh0ZXJuIHZvaWQgcXVpdF9jb21t YW5kIChjaGFyICosIGludCk7Ci0gZXh0ZXJuIHZvaWQgcXVpdF9jb3ZlciAodm9pZCk7Ci0gZXh0 ZXJuIHZvaWQgZXhlY3V0ZV9jb21tYW5kIChjaGFyICosIGludCk7Ci0gCi0rLyogSWYgdGhlIGlu dGVycHJldGVyIGlzIGluIHN5bmMgbW9kZSAod2UncmUgcnVubmluZyBhIHVzZXIgY29tbWFuZCdz Ci0rICAgbGlzdCwgcnVubmluZyBjb21tYW5kIGhvb2tzIG9yIHNpbWlsYXJzKSwgYW5kIHdlIGp1 c3QgcmFuIGEKLSsgICBzeW5jaHJvbm91cyBjb21tYW5kIHRoYXQgc3RhcnRlZCB0aGUgdGFyZ2V0 LCB3YWl0IGZvciB0aGF0IGNvbW1hbmQKLSsgICB0byBlbmQuICBXQVNfU1lOQyBpbmRpY2F0ZXMg d2hldGhlciBzeW5jX2V4ZWN1dGlvbiB3YXMgc2V0IGJlZm9yZQotKyAgIHRoZSBjb21tYW5kIHdh cyBydW4uICAqLwotKwotK2V4dGVybiB2b2lkIG1heWJlX3dhaXRfc3luY19jb21tYW5kX2RvbmUg KGludCB3YXNfc3luYyk7Ci0rCi0gZXh0ZXJuIHZvaWQgY2hlY2tfZnJhbWVfbGFuZ3VhZ2VfY2hh bmdlICh2b2lkKTsKLSAKLSAvKiBQcmVwYXJlIGZvciBleGVjdXRpb24gb2YgYSBjb21tYW5kLgoK ZGlmZiAtLWdpdCBhL2dkYi1hc3luYy1zdG9wcGVkLW9uLXBpZC1hcmctMm9mMi5wYXRjaCBiL2dk Yi1hc3luYy1zdG9wcGVkLW9uLXBpZC1hcmctMm9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNjY4MzMyNi4uMDAwMDAwMAotLS0gYS9nZGItYXN5bmMtc3RvcHBlZC1vbi1w aWQtYXJnLTJvZjIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTcgKzAsMCBAQAotaHR0cDov L3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDkvbXNnMDAxNzQuaHRtbAotU3Vi amVjdDogUmU6IFJlZ3Jlc3Npb246IEdEQiBzdG9wcGVkIG9uIHJ1biB3aXRoIGF0dGFjaGVkIHBy b2Nlc3MgKFBSIDE3MzQ3KSBbUmU6IFtwdXNoZWQrNy44XSBSZTogW1BBVENIXSBGaXggImF0dGFj aCIgY29tbWFuZCB2cyB1c2VyIGlucHV0IHJhY2UKLQotCi0tLWE4V3Q4dTFLbXdVWDNZMkMKLUNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3Np dGlvbjogaW5saW5lCi0KLU9uIFdlZCwgMDMgU2VwIDIwMTQgMjI6MTE6MDMgKzAyMDAsIFBlZHJv IEFsdmVzIHdyb3RlOgotPiBPbiAwOS8wMy8yMDE0IDA4OjU4IEFNLCBKYW4gS3JhdG9jaHZpbCB3 cm90ZToKLT4gCi0+ID4gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5j Z2k/aWQ9MTczNDcKLT4gCi0+IFRoYW5rcyBKYW4uCi0+IAotPiBIZXJlJ3MgYSBmaXgsIHRlc3Qg aW5jbHVkZWQuICBDb21tZW50cz8KLQotSW4gdGhlIHRlc3RzdWl0ZSBydW4gZnJvbSB0aGUgRmVk b3JhIHJwbSBwYWNrYWdpbmcgSSBnZXQ6Ci0KLUdOVSBnZGIgKEdEQikgRmVkb3JhIDcuOC0yMS5m YzIxXk0KLUNvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy5e TQotTGljZW5zZSBHUEx2Mys6IEdOVSBHUEwgdmVyc2lvbiAzIG9yIGxhdGVyIDxodHRwOi8vZ251 Lm9yZy9saWNlbnNlcy9ncGwuaHRtbD5eTQotVGhpcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgYXJl IGZyZWUgdG8gY2hhbmdlIGFuZCByZWRpc3RyaWJ1dGUgaXQuXk0KLVRoZXJlIGlzIE5PIFdBUlJB TlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuICBUeXBlICJzaG93IGNvcHlpbmci Xk0KLWFuZCAic2hvdyB3YXJyYW50eSIgZm9yIGRldGFpbHMuXk0KLVRoaXMgR0RCIHdhcyBjb25m aWd1cmVkIGFzICJpNjg2LXJlZGhhdC1saW51eC1nbnUiLl5NCi1UeXBlICJzaG93IGNvbmZpZ3Vy YXRpb24iIGZvciBjb25maWd1cmF0aW9uIGRldGFpbHMuXk0KLUZvciBidWcgcmVwb3J0aW5nIGlu c3RydWN0aW9ucywgcGxlYXNlIHNlZTpeTQotPGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9n ZGIvYnVncy8+Ll5NCi1GaW5kIHRoZSBHREIgbWFudWFsIGFuZCBvdGhlciBkb2N1bWVudGF0aW9u IHJlc291cmNlcyBvbmxpbmUgYXQ6Xk0KLTxodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ2Ri L2RvY3VtZW50YXRpb24vPi5eTQotRm9yIGhlbHAsIHR5cGUgImhlbHAiLl5NCi1UeXBlICJhcHJv cG9zIHdvcmQiIHRvIHNlYXJjaCBmb3IgY29tbWFuZHMgcmVsYXRlZCB0byAid29yZCIuXk0KLUF0 dGFjaGluZyB0byBwcm9jZXNzIDI3MDI4Xk0KLVJlYWRpbmcgc3ltYm9scyBmcm9tIC91bnNhZmVi dWlsZC1pNjg2LXJlZGhhdC1saW51eC1nbnUvZ2RiL3Rlc3RzdWl0ZS51bml4Li1tMzIvb3V0cHV0 cy9nZGIuYmFzZS9hdHRhY2gvYXR0YWNoLi4uZG9uZS5eTQotUmVhZGluZyBzeW1ib2xzIGZyb20g L2xpYi9saWJtLnNvLjYuLi5SZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9kZWJ1Zy91c3Iv bGliL2xpYm0tMi4xOS45MC5zby5kZWJ1Zy4uLmRvbmUuXk0KLWRvbmUuXk0KLUxvYWRlZCBzeW1i b2xzIGZvciAvbGliL2xpYm0uc28uNl5NCi1SZWFkaW5nIHN5bWJvbHMgZnJvbSAvbGliL2xpYmMu c28uNi4uLlJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2RlYnVnL3Vzci9saWIvbGliYy0y LjE5LjkwLnNvLmRlYnVnLi4uZG9uZS5eTQotZG9uZS5eTQotTG9hZGVkIHN5bWJvbHMgZm9yIC9s aWIvbGliYy5zby42Xk0KLVJlYWRpbmcgc3ltYm9scyBmcm9tIC9saWIvbGQtbGludXguc28uMi4u LlJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2RlYnVnL3Vzci9saWIvbGQtMi4xOS45MC5z by5kZWJ1Zy4uLmRvbmUuXk0KLWRvbmUuXk0KLUxvYWRlZCBzeW1ib2xzIGZvciAvbGliL2xkLWxp bnV4LnNvLjJeTQotbWFpbiAoKV5NCi0gICAgYXQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRh Y2guYzoxNV5NCi0xNSAgICAgICB3aGlsZSAoISBzaG91bGRfZXhpdCleTQotVGhlIHByb2dyYW0g YmVpbmcgZGVidWdnZWQgaGFzIGJlZW4gc3RhcnRlZCBhbHJlYWR5Ll5NCi1TdGFydCBpdCBmcm9t IHRoZSBiZWdpbm5pbmc/ICh5IG9yIG4pIFBBU1M6IGdkYi5iYXNlL2F0dGFjaC5leHA6IGNtZGxp bmUgYXR0YWNoIHJ1bjogcnVuIHRvIHByb21wdAoteV5NCi1eTQotVGVtcG9yYXJ5IGJyZWFrcG9p bnQgMSBhdCAweDgwNDg0ODE6IGZpbGUgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guYywg bGluZSAxMy5eTQotU3RhcnRpbmcgcHJvZ3JhbTogL3Vuc2FmZS9ob21lL2prcmF0b2NoL2hhbW1v Y2svMjAxNDA5MDdmZWRvcmFyZWwyMS1mMjEvZmVkb3JhLTItLS1UeXBlIDxyZXR1cm4+IHRvIGNv bnRpbnVlLCBvciBxIDxyZXR1cm4+IHRvIHF1aXQtLS1FUlJPUjogV2luZG93IHRvbyBzbWFsbC4K LVVOUkVTT0xWRUQ6IGdkYi5iYXNlL2F0dGFjaC5leHA6IGNtZGxpbmUgYXR0YWNoIHJ1bjogcnVu IHRvIG1haW4KLQotCi1XaGlsZSBJIGRvIG5vdCBmdWxseSB1bmRlcnN0YW5kIHdoeSB0aGF0IGhh cHBlbnMgaW4gZXZlcnkgcnVuIG9mIHRoYXQgRmVkb3JhCi10ZXN0c3VpdGUgd2hpbGUgaXQgbmV2 ZXIgaGFwcGVucyBkdXJpbmcgbXkgcmVwcm9kdWNpYmlsaXR5IGF0dGVtcHRzIGJ5IGhhbmQKLUkg ZmluZCBpdCB1bmRlcnN0YW5kYWJsZSBhbmQgdGhlIEZlZG9yYSB0ZXN0c3VpdGUgaXNzdWVzIGRv ZXMgZ2V0IGZpeGVkIGJ5IHRoZQotYXR0YWNoZWQgcGF0Y2guCi0KLQotPiAtLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5leHAKLT4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9hdHRhY2guZXhwCi0+IEBAIC01OCw2ICs1OCwzNyBAQCBpZiBbZ2V0X2NvbXBpbGVyX2luZm9d IHsKLT4gICAgICByZXR1cm4gLTEKLT4gIH0KLT4gIAotPiArIyBTdGFydCB0aGUgcHJvZ3JhbSBy dW5uaW5nIGFuZCB0aGVuIHdhaXQgZm9yIGEgYml0LCB0byBiZSBzdXJlIHRoYXQKLT4gKyMgaXQg Y2FuIGJlIGF0dGFjaGVkIHRvLiAgUmV0dXJuIHRoZSBwcm9jZXNzJ3MgUElELgotPiArCi0+ICtw cm9jIHNwYXduX3Rlc3RfcHJvZyB7IGV4ZWN1dGFibGUgfSB7Ci0+ICsgICAgc2V0IHRlc3RwaWQg W2V2YWwgZXhlYyAkZXhlY3V0YWJsZSAmXQotPiArICAgIGV4ZWMgc2xlZXAgMgotCi1VbnJlbGF0 ZWQgdG8gdGhpcyBwYXRjaCAtIHRoaXMgcGF0Y2ggb25seSBtb3ZlZCB0aGUgY29kZS4gIEFsc28g dGhlIGNvZGUgbW92ZQotY291bGQgYmUgYSBzZXBhcmF0ZSBwYXRjaDoKLQotSSBkbyBub3Qgc2Vl IHdoeSB0aGUgdGVzdHN1aXRlIGNvbW1vbmx5IHVzZXMgImV4ZWMgc2xlZXAiIHdoaWxlIGl0IGFs c28gdXNlcwotInNsZWVwIiBpdHNlbGYgd2hpY2ggYWxzbyB3b3JrcyBmaW5lLgotCi0KLT4gKyAg ICBpZiB7IFtpc3RhcmdldCAiKi0qLWN5Z3dpbioiXSB9IHsKLT4gKwkjIHRlc3RwaWQgaXMgdGhl IEN5Z3dpbiBQSUQsIEdEQiB1c2VzIHRoZSBXaW5kb3dzIFBJRCwgd2hpY2ggbWlnaHQgYmUKLT4g KwkjIGRpZmZlcmVudCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4ZWMgd29ya3MuCi0+ICsJc2V0IHRl c3RwaWQgWyBleGVjIHBzIC1lIHwgZ2F3ayAieyBpZiAoXCQxID09ICR0ZXN0cGlkKSBwcmludCBc JDQ7IH0iIF0KLT4gKyAgICB9Ci0+ICsKLT4gKyAgICByZXR1cm4gJHRlc3RwaWQKLT4gK30KLVsu Li5dCi0+IEBAIC00MjksNiArNDI3LDUwIEBAIHByb2MgZG9fY29tbWFuZF9hdHRhY2hfdGVzdHMg e30gewotPiAgICAgIHJlbW90ZV9leGVjIGJ1aWxkICJraWxsIC05ICR7dGVzdHBpZH0iCi0+ICB9 Ci0+ICAKLT4gKyMgVGVzdCAnIGdkYiAtLXBpZCBQSUQgLWV4ICJydW4iICcuICBHREIgdXNlZCB0 byBoYXZlIGEgYnVnIHdoZXJlCi0+ICsjICJydW4iIHdvdWxkIHJ1biBiZWZvcmUgdGhlIGF0dGFj aCBmaW5pc2hlZCAtIFBSMTczNDcuCi0+ICsKLT4gK3Byb2MgdGVzdF9jb21tYW5kX2xpbmVfYXR0 YWNoX3J1biB7fSB7Ci0+ICsgICAgZ2xvYmFsIGdkYl9wcm9tcHQKLT4gKyAgICBnbG9iYWwgYmlu ZmlsZQotCi0+ICsgICAgZ2xvYmFsIHZlcmJvc2UKLT4gKyAgICBnbG9iYWwgR0RCCi0+ICsgICAg Z2xvYmFsIElOVEVSTkFMX0dEQkZMQUdTCi0KLVRoZXNlIDMgbGluZXMgYXJlIHVudXNlZC4KLQot Ci0+ICsKLT4gKyAgICBpZiAhW2lzbmF0aXZlXSB0aGVuIHsKLT4gKwl1bnN1cHBvcnRlZCAiY29t bWFuZGxpbmUgYXR0YWNoIHJ1biB0ZXN0IgotPiArCXJldHVybiAwCi0+ICsgICAgfQotPiArCi0+ ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAiY21kbGluZSBhdHRhY2ggcnVuIiB7Ci0+ICsJc2V0IHRl c3RwaWQgW3NwYXduX3Rlc3RfcHJvZyAkYmluZmlsZV0KLT4gKwotPiArCXNldCB0ZXN0ICJydW4g dG8gcHJvbXB0IgotPiArCWdkYl9leGl0Ci0+ICsJc2V0IHJlcyBbZ2RiX3NwYXduX3dpdGhfY21k bGluZV9vcHRzICItLXBpZD0kdGVzdHBpZCAtZXggXCJzdGFydFwiIl0KLQotSGVyZSBzZWUgdGhl IGF0dGFjaG1lbnQuCi0KLQotPiArCWlmIHsgJHJlcyAhPSAwfSB7Ci0+ICsJICAgIGZhaWwgJHRl c3QKLT4gKwkgICAgcmV0dXJuICRyZXMKLT4gKwl9Ci0+ICsJZ2RiX3Rlc3RfbXVsdGlwbGUgIiIg JHRlc3QgewotPiArCSAgICAtcmUge0F0dGFjaGluZyB0by4qU3RhcnQgaXQgZnJvbSB0aGUgYmVn aW5uaW5nXD8gXCh5IG9yIG5cKSB9IHsKLT4gKwkJcGFzcyAkdGVzdAotPiArCSAgICB9Ci0+ICsJ fQotPiArCi0+ICsJc2VuZF9nZGIgInlcbiIKLT4gKwotPiArCXNldCB0ZXN0ICJydW4gdG8gbWFp biIKLT4gKwlnZGJfdGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0+ICsJICAgIC1yZSAiVGVtcG9y YXJ5IGJyZWFrcG9pbnQgLiogbWFpbiAuKiRnZGJfcHJvbXB0ICQiIHsKLT4gKwkJcGFzcyAkdGVz dAotPiArCSAgICB9Ci0+ICsJfQotPiArCi0+ICsJIyBHZXQgcmlkIG9mIHRoZSBwcm9jZXNzCi0+ ICsJcmVtb3RlX2V4ZWMgYnVpbGQgImtpbGwgLTkgJHt0ZXN0cGlkfSIKLT4gKyAgICB9Ci0+ICt9 Ci0+ICAKLT4gICMgU3RhcnQgd2l0aCBhIGZyZXNoIGdkYgotPiAgCi0+IEBAIC00NTMsNCArNDk1 LDYgQEAgZG9fY2FsbF9hdHRhY2hfdGVzdHMKLT4gIAotPiAgZG9fY29tbWFuZF9hdHRhY2hfdGVz dHMKLT4gIAotPiArdGVzdF9jb21tYW5kX2xpbmVfYXR0YWNoX3J1bgotPiArCi0+ICByZXR1cm4g MAotPiBkaWZmIC0tZ2l0IGEvZ2RiL3RvcC5jIGIvZ2RiL3RvcC5jCi0+IGluZGV4IGZjMmI4NGQu LmJhNzFmOGYgMTAwNjQ0Ci0+IC0tLSBhL2dkYi90b3AuYwotPiArKysgYi9nZGIvdG9wLmMKLT4g QEAgLTM3Myw2ICszNzMsMjEgQEAgY2hlY2tfZnJhbWVfbGFuZ3VhZ2VfY2hhbmdlICh2b2lkKQot PiAgICAgIH0KLT4gIH0KLT4gIAotCi1NaXNzaW5nOgotLyogU2VlIHRvcC5oLiAgKi8KLQotVW5s ZXNzIHRoYXQgcnVsZSBmcm9tIG1lIGhhcyBiZWVuIGFiYW5kb25lZC4KLQotCi0+ICt2b2lkCi0+ ICttYXliZV93YWl0X3N5bmNfY29tbWFuZF9kb25lIChpbnQgd2FzX3N5bmMpCi0+ICt7Ci0+ICsg IC8qIElmIHRoZSBpbnRlcnByZXRlciBpcyBpbiBzeW5jIG1vZGUgKHdlJ3JlIHJ1bm5pbmcgYSB1 c2VyCi0+ICsgICAgIGNvbW1hbmQncyBsaXN0LCBydW5uaW5nIGNvbW1hbmQgaG9va3Mgb3Igc2lt aWxhcnMpLCBhbmQgd2UKLT4gKyAgICAganVzdCByYW4gYSBzeW5jaHJvbm91cyBjb21tYW5kIHRo YXQgc3RhcnRlZCB0aGUgdGFyZ2V0LCB3YWl0Ci0+ICsgICAgIGZvciB0aGF0IGNvbW1hbmQgdG8g ZW5kLiAgKi8KLT4gKyAgaWYgKCFpbnRlcnByZXRlcl9hc3luYyAmJiAhd2FzX3N5bmMgJiYgc3lu Y19leGVjdXRpb24pCi0+ICsgICAgewotPiArICAgICAgd2hpbGUgKGdkYl9kb19vbmVfZXZlbnQg KCkgPj0gMCkKLT4gKwlpZiAoIXN5bmNfZXhlY3V0aW9uKQotPiArCSAgYnJlYWs7Ci0+ICsgICAg fQotPiArfQotPiArCi0+ICAvKiBFeGVjdXRlIHRoZSBsaW5lIFAgYXMgYSBjb21tYW5kLCBpbiB0 aGUgY3VycmVudCB1c2VyIGNvbnRleHQuCi0+ICAgICBQYXNzIEZST01fVFRZIGFzIHNlY29uZCBh cmd1bWVudCB0byB0aGUgZGVmaW5pbmcgZnVuY3Rpb24uICAqLwotPiAgCi0KLQotVGhhbmtzLAot SmFuCi0KLS0tYThXdDh1MUttd1VYM1kyQwotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKLQot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cAotaW5kZXggYzk0YzEyNy4uNmU1NjZhMyAxMDA2NDQK LS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cAotKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9hdHRhY2guZXhwCi1AQCAtNDQ3LDcgKzQ0NCw4IEBAIHByb2MgdGVzdF9j b21tYW5kX2xpbmVfYXR0YWNoX3J1biB7fSB7Ci0gCi0gCXNldCB0ZXN0ICJydW4gdG8gcHJvbXB0 IgotIAlnZGJfZXhpdAotLQlzZXQgcmVzIFtnZGJfc3Bhd25fd2l0aF9jbWRsaW5lX29wdHMgIi0t cGlkPSR0ZXN0cGlkIC1leCBcInN0YXJ0XCIiXQotKwlzZXQgcmVzIFtnZGJfc3Bhd25fd2l0aF9j bWRsaW5lX29wdHMgXAotKwkJICItaWV4IHNldFxcIGhlaWdodFxcIDAgLWlleCBzZXRcXCB3aWR0 aFxcIDAgLS1waWQ9JHRlc3RwaWQgLWV4IFwic3RhcnRcIiJdCi0gCWlmIHsgJHJlcyAhPSAwfSB7 Ci0gCSAgICBmYWlsICR0ZXN0Ci0gCSAgICByZXR1cm4gJHJlcwotCi0tLWE4V3Q4dTFLbXdVWDNZ MkMtLQotCgpkaWZmIC0tZ2l0IGEvZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy10ZXN0c3Vp dGUucGF0Y2ggYi9nZGItYXN5bmMtc3RvcHBlZC1vbi1waWQtYXJnLXRlc3RzdWl0ZS5wYXRjaApp bmRleCBmNTBlYWQxLi5kNTE2Njk1IDEwMDY0NAotLS0gYS9nZGItYXN5bmMtc3RvcHBlZC1vbi1w aWQtYXJnLXRlc3RzdWl0ZS5wYXRjaAorKysgYi9nZGItYXN5bmMtc3RvcHBlZC1vbi1waWQtYXJn LXRlc3RzdWl0ZS5wYXRjaApAQCAtMzMsMTAgKzMzLDEwIEBAIGdkYi90ZXN0c3VpdGUvCiAJZ2Ri X2JyZWFrcG9pbnQsIGdkYl9jb250aW51ZV90b19icmVha3BvaW50LgogCSh0ZXN0X2NvbW1hbmRf bGluZV9hdHRhY2hfcnVuKTogS2lsbCAke3Rlc3RwaWR9IGluIG9uZSBleGl0IHBhdGguCiAKLWRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5jIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9hdHRhY2guYwotaW5kZXggMDA0MWI0Ny4uOTFiMTgwYyAxMDA2NDQKLS0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmMKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXR0YWNoLmMKK0luZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9h dHRhY2guYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjguMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXR0YWNoLmMJMjAxNC0xMC0zMCAyMDoyMzowMS4zMTE1OTU3MjUgKzAxMDAKKysrKyBn ZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guYwkyMDE0LTEwLTMwIDIwOjIz OjM4LjY1MzU3NDk5OSArMDEwMAogQEAgLTUsNiArNSw3IEBACiAgICAgZXhpdCB1bmxlc3MvdW50 aWwgZ2RiIHNldHMgdGhlIHZhcmlhYmxlIHRvIG5vbi16ZXJvLikKICAgICAqLwpAQCAtNTgsMTAg KzU4LDEwIEBAIGluZGV4IDAwNDFiNDcuLjkxYjE4MGMgMTAwNjQ0CiAtICByZXR1cm4gMDsKICsg IHJldHVybiAwOyAvKiBwb3N0bG9vcCAqLwogIH0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2F0dGFjaC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5leHAK LWluZGV4IDYzNDA0OTYuLjVmYjVjNTMgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2F0dGFjaC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cAor SW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5leHAKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy44LjEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5l eHAJMjAxNC0xMC0zMCAyMDoyMzowMS4zMTE1OTU3MjUgKzAxMDAKKysrKyBnZGItNy44LjEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guZXhwCTIwMTQtMTAtMzAgMjA6MjM6NTQuMTUxNTYy ODY3ICswMTAwCiBAQCAtMjU2LDExICsyNTYsOCBAQCBwcm9jIGRvX2F0dGFjaF90ZXN0cyB7fSB7 CiAgCiAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIG1vZGlmaWNhdGlvbiByZWFsbHkgaGFwcGVuZWQu CkBAIC03NiwxNCArNzYsMTEgQEAgaW5kZXggNjM0MDQ5Ni4uNWZiNWM1MyAxMDA2NDQKICAKICAg ICAgIyBBbGxvdyB0aGUgdGVzdCBwcm9jZXNzIHRvIGV4aXQsIHRvIGNsZWFudXAgYWZ0ZXIgb3Vy c2VsdmVzLgogIAotQEAgLTQ1MSw2ICs0NDgsNyBAQCBwcm9jIHRlc3RfY29tbWFuZF9saW5lX2F0 dGFjaF9ydW4ge30gewotIAkJICItaWV4IHNldFxcIGhlaWdodFxcIDAgLWlleCBzZXRcXCB3aWR0 aFxcIDAgLS1waWQ9JHRlc3RwaWQgLWV4IFwic3RhcnRcIiJdCitAQCAtNDE4LDYgKzQxNSw3IEBA IHByb2MgdGVzdF9jb21tYW5kX2xpbmVfYXR0YWNoX3J1biB7fSB7CisgCQkgICAgICItaWV4IFwi c2V0IGhlaWdodCAwXCIgLWlleCBcInNldCB3aWR0aCAwXCIgLS1waWQ9JHRlc3RwaWQgLWV4IFwi c3RhcnRcIiJdCiAgCWlmIHsgJHJlcyAhPSAwfSB7CiAgCSAgICBmYWlsICR0ZXN0CiArCSAgICBy ZW1vdGVfZXhlYyBidWlsZCAia2lsbCAtOSAke3Rlc3RwaWR9IgogIAkgICAgcmV0dXJuICRyZXMK ICAJfQogIAlnZGJfdGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0KLS0tUm5sUWpKMGQ5N0RhK1RW MS0tCi0KCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoIGIv Z2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAppbmRleCAxYmIwMjhiLi43NWE3YTVm IDEwMDY0NAotLS0gYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCisrKyBiL2dk Yi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKQEAgLTM3LDEwICszNywxMCBAQCBnZGIv Z2Ric2VydmVyLwogCShsaW51eF9jcmVhdGVfaW5mZXJpb3IsIGxpbnV4X3RyYWNlZm9ya19jaGls ZCk6IENhbGwgaXQgaW5zdGVhZCBvZgogCWRpcmVjdCBwdHJhY2UuCiAKLUluZGV4OiBnZGItNy44 L2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMKK0luZGV4OiBnZGItNy44LjEvZ2RiL2NvbW1vbi9s aW51eC1wdHJhY2UuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvY29tbW9uL2xp bnV4LXB0cmFjZS5jCTIwMTQtMDctMjkgMTk6MzE6MDEuODkzMTQ5MzE3ICswMjAwCi0rKysgZ2Ri LTcuOC9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5jCTIwMTQtMDctMjkgMTk6MzE6MDUuODA2MTU0 ODg3ICswMjAwCistLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwky MDE0LTEwLTMwIDE4OjMzOjM3LjI3MTA5NzY0NCArMDEwMAorKysrIGdkYi03LjguMS9nZGIvY29t bW9uL2xpbnV4LXB0cmFjZS5jCTIwMTQtMTAtMzAgMTg6MzM6MzkuNjQxMDkyNzYzICswMTAwCiBA QCAtMzIsNiArMzIsMTAgQEAKICAKICAjaW5jbHVkZSA8c3RkaW50Lmg+CkBAIC04MSwxMCArODEs MTAgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwogKwkJCSAiKGdk Yikgc2hlbGwgc3VkbyBzZXRzZWJvb2wgZGVueV9wdHJhY2U9MCIpKTsKICsjZW5kaWYgLyogSEFW RV9MSUJTRUxJTlVYICovCiArfQotSW5kZXg6IGdkYi03LjgvZ2RiL2NvbW1vbi9saW51eC1wdHJh Y2UuaAorSW5kZXg6IGdkYi03LjguMS9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAxNC0wNy0y OSAxOTozMTowMS44OTMxNDkzMTcgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9jb21tb24vbGludXgt cHRyYWNlLmgJMjAxNC0wNy0yOSAxOTozMTowNS44MDcxNTQ4ODcgKzAyMDAKKy0tLSBnZGItNy44 LjEub3JpZy9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5oCTIwMTQtMTAtMzAgMTg6MzM6MzcuMjcx MDk3NjQ0ICswMTAwCisrKysgZ2RiLTcuOC4xL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAx NC0xMC0zMCAxODozMzozOS42NDIwOTI3NjEgKzAxMDAKIEBAIC04NSw2ICs4NSw3IEBAIHN0cnVj dCBidWZmZXI7CiAgCiAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYXNv biAocGlkX3QgcGlkLCBzdHJ1Y3QgYnVmZmVyICpidWZmZXIpOwpAQCAtOTMsMTEgKzkzLDExIEBA IEluZGV4OiBnZGItNy44L2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgKICBleHRlcm4gdm9pZCBs aW51eF9lbmFibGVfZXZlbnRfcmVwb3J0aW5nIChwaWRfdCBwaWQpOwogIGV4dGVybiB2b2lkIGxp bnV4X2Rpc2FibGVfZXZlbnRfcmVwb3J0aW5nIChwaWRfdCBwaWQpOwogIGV4dGVybiBpbnQgbGlu dXhfc3VwcG9ydHNfdHJhY2Vmb3JrICh2b2lkKTsKLUluZGV4OiBnZGItNy44L2dkYi9jb25maWd1 cmUuYWMKK0luZGV4OiBnZGItNy44LjEvZ2RiL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03Ljgub3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTQtMDctMjkgMTk6MzE6MDEuODk0MTQ5 MzE5ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvY29uZmlndXJlLmFjCTIwMTQtMDctMjkgMTk6MzE6 MDUuODA3MTU0ODg3ICswMjAwCi1AQCAtMjE1OCw2ICsyMTU4LDEwIEBAIGNhc2UgJGhvc3Rfb3Mg aW4KKy0tLSBnZGItNy44LjEub3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTQtMTAtMzAgMTg6MzM6 MzcuMjcyMDk3NjQyICswMTAwCisrKysgZ2RiLTcuOC4xL2dkYi9jb25maWd1cmUuYWMJMjAxNC0x MC0zMCAxODozMzozOS42NDMwOTI3NTkgKzAxMDAKK0BAIC0yMTYxLDYgKzIxNjEsMTAgQEAgY2Fz ZSAkaG9zdF9vcyBpbgogIGVzYWMKICBBQ19ERUZJTkVfVU5RVU9URUQoR0RCSU5JVCwiJGdkYmlu aXQiLFtUaGUgLmdkYmluaXQgZmlsZW5hbWUuXSkKICAKQEAgLTEwOCwxMCArMTA4LDEwIEBAIElu ZGV4OiBnZGItNy44L2dkYi9jb25maWd1cmUuYWMKICBkbmwgSGFuZGxlIG9wdGlvbmFsIGZlYXR1 cmVzIHRoYXQgY2FuIGJlIGVuYWJsZWQuCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9v dCBpcyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAotSW5kZXg6IGdkYi03LjgvZ2RiL2dkYnNl cnZlci9jb25maWd1cmUuYWMKK0luZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWd1 cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1 cmUuYWMJMjAxNC0wNy0yOSAxOTozMTowMS44OTUxNDkzMjAgKzAyMDAKLSsrKyBnZGItNy44L2dk Yi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTQtMDctMjkgMTk6MzE6MDUuODA4MTU0ODg3ICsw MjAwCistLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNC0x MC0zMCAxODozMzozNy4yNzMwOTc2NDAgKzAxMDAKKysrKyBnZGItNy44LjEvZ2RiL2dkYnNlcnZl ci9jb25maWd1cmUuYWMJMjAxNC0xMC0zMCAxODozMzozOS42NDMwOTI3NTkgKzAxMDAKIEBAIC00 NTQsNiArNDU0LDEwIEBAIGlmICR3YW50X2lwYSA7IHRoZW4KICAgICBmaQogIGZpCkBAIC0xMjMs MTAgKzEyMywxMCBAQCBJbmRleDogZ2RiLTcuOC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwog IEFDX1NVQlNUKEdEQlNFUlZFUl9ERVBGSUxFUykKICBBQ19TVUJTVChHREJTRVJWRVJfTElCUykK ICBBQ19TVUJTVChzcnZfeG1sYnVpbHRpbikKLUluZGV4OiBnZGItNy44L2dkYi9nZGJzZXJ2ZXIv bGludXgtbG93LmMKK0luZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIw MTQtMDctMjkgMTk6MzE6MDEuODk3MTQ5MzIzICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvZ2Ric2Vy dmVyL2xpbnV4LWxvdy5jCTIwMTQtMDctMjkgMTk6MzE6MDUuODA5MTU0ODg5ICswMjAwCistLS0g Z2RiLTcuOC4xLm9yaWcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE0LTEwLTMwIDE4OjMz OjM3LjI3NTA5NzYzNiArMDEwMAorKysrIGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCTIwMTQtMTAtMzAgMTg6MzM6MzkuNjQ0MDkyNzU3ICswMTAwCiBAQCAtNTQxLDYgKzU0MSwy OSBAQCBhZGRfbHdwIChwdGlkX3QgcHRpZCkKICAgIHJldHVybiBsd3A7CiAgfQpAQCAtMTY2LDEw ICsxNjYsMTAgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogIAog ICNpZm5kZWYgX19BTkRST0lEX18gLyogQmlvbmljIGRvZXNuJ3QgdXNlIFNJR1JUTUlOIHRoZSB3 YXkgZ2xpYmMgZG9lcy4gICovCiAgICAgICAgc2lnbmFsIChfX1NJR1JUTUlOICsgMSwgU0lHX0RG TCk7Ci1JbmRleDogZ2RiLTcuOC9nZGIvaW5mLXB0cmFjZS5jCitJbmRleDogZ2RiLTcuOC4xL2dk Yi9pbmYtcHRyYWNlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL2luZi1wdHJh Y2UuYwkyMDE0LTA3LTI5IDE5OjMxOjAxLjg5ODE0OTMyNCArMDIwMAotKysrIGdkYi03LjgvZ2Ri L2luZi1wdHJhY2UuYwkyMDE0LTA3LTI5IDE5OjMxOjA1LjgwOTE1NDg4OSArMDIwMAorLS0tIGdk Yi03LjguMS5vcmlnL2dkYi9pbmYtcHRyYWNlLmMJMjAxNC0xMC0zMCAxODozMzozNy4yNzYwOTc2 MzQgKzAxMDAKKysrKyBnZGItNy44LjEvZ2RiL2luZi1wdHJhY2UuYwkyMDE0LTEwLTMwIDE4OjMz OjM5LjY0NTA5Mjc1NSArMDEwMAogQEAgLTEwNSw3ICsxMDUsMTUgQEAgc3RhdGljIHZvaWQKICBp bmZfcHRyYWNlX21lICh2b2lkKQogIHsKQEAgLTE4NiwxMCArMTg2LDEwIEBAIEluZGV4OiBnZGIt Ny44L2dkYi9pbmYtcHRyYWNlLmMKICB9CiAgCiAgLyogU3RhcnQgYSBuZXcgaW5mZXJpb3IgVW5p eCBjaGlsZCBwcm9jZXNzLiAgRVhFQ19GSUxFIGlzIHRoZSBmaWxlIHRvCi1JbmRleDogZ2RiLTcu OC9nZGIvbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy44LjEvZ2RiL2xpbnV4LW5hdC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE0LTA3LTI5IDE5OjMx OjAxLjg5OTE0OTMyNiArMDIwMAotKysrIGdkYi03LjgvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMDct MjkgMTk6MzE6MDUuODExMTU0ODkzICswMjAwCistLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2xpbnV4 LW5hdC5jCTIwMTQtMTAtMzAgMTg6MzM6MzcuMjc3MDk3NjMxICswMTAwCisrKysgZ2RiLTcuOC4x L2dkYi9saW51eC1uYXQuYwkyMDE0LTEwLTMwIDE4OjMzOjM5LjY0NjA5Mjc1MyArMDEwMAogQEAg LTEyOTEsNiArMTI5MSw3IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJn ZXQKICAjaWZkZWYgSEFWRV9QRVJTT05BTElUWQogICAgaW50IHBlcnNvbmFsaXR5X29yaWcgPSAw LCBwZXJzb25hbGl0eV9zZXQgPSAwOwpAQCAtMjM1LDExICsyMzUsMTEgQEAgSW5kZXg6IGdkYi03 LjgvZ2RiL2xpbnV4LW5hdC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1JbmRleDogZ2RiLTcuOC9n ZGIvY29uZmlnLmluCitJbmRleDogZ2RiLTcuOC4xL2dkYi9jb25maWcuaW4KID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE0LTA3LTI5IDE5OjMxOjAxLjkwMDE0 OTMyNyArMDIwMAotKysrIGdkYi03LjgvZ2RiL2NvbmZpZy5pbgkyMDE0LTA3LTI5IDE5OjMxOjQ0 LjYwMDIxMDA5MCArMDIwMAotQEAgLTIxOSw2ICsyMTksOSBAQAorLS0tIGdkYi03LjguMS5vcmln L2dkYi9jb25maWcuaW4JMjAxNC0xMC0zMCAxODozMzozNy4yNzgwOTc2MzAgKzAxMDAKKysrKyBn ZGItNy44LjEvZ2RiL2NvbmZpZy5pbgkyMDE0LTEwLTMwIDE4OjM0OjM2LjE2NTk3NjM2NiArMDEw MAorQEAgLTIxNiw2ICsyMTYsOSBAQAogIC8qIERlZmluZSBpZiBsaWJycG0gbGlicmFyeSBpcyBi ZWluZyB1c2VkLiAqLwogICN1bmRlZiBIQVZFX0xJQlJQTQogIApAQCAtMjQ5LDIxICsyNDksMjEg QEAgSW5kZXg6IGdkYi03LjgvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSA8bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVmIEhBVkVf TElCVU5XSU5EX0lBNjRfSAogIAotQEAgLTM1NCw2ICszNTcsOSBAQAorQEAgLTM1MSw2ICszNTQs OSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2NtX25ld19zbW9iJyBmdW5j dGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TQ01fTkVXX1NNT0IKICAKICsvKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgPHNlbGludXgvc2VsaW51eC5oPiBoZWFkZXIgZmlsZS4gKi8KICsjdW5k ZWYgSEFWRV9TRUxJTlVYX1NFTElOVVhfSAogKwotIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSBgc2V0ZW52JyBmdW5jdGlvbi4gKi8KLSAjdW5kZWYgSEFWRV9TRVRFTlYKKyAvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGxvY2FsZScgZnVuY3Rpb24uICovCisgI3VuZGVm IEhBVkVfU0VUTE9DQUxFCiAgCi1JbmRleDogZ2RiLTcuOC9nZGIvY29uZmlndXJlCitJbmRleDog Z2RiLTcuOC4xL2dkYi9jb25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2Ri L2NvbmZpZ3VyZQkyMDE0LTA3LTI5IDE5OjMxOjAxLjkwMzE0OTMzMSArMDIwMAotKysrIGdkYi03 LjgvZ2RiL2NvbmZpZ3VyZQkyMDE0LTA3LTI5IDE5OjMxOjA1LjgxNTE1NDg5OCArMDIwMAotQEAg LTEzMzkyLDYgKzEzMzkyLDY0IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKy0tLSBnZGIt Ny44LjEub3JpZy9nZGIvY29uZmlndXJlCTIwMTQtMTAtMzAgMTg6MzM6MzcuMjgxMDk3NjIzICsw MTAwCisrKysgZ2RiLTcuOC4xL2dkYi9jb25maWd1cmUJMjAxNC0xMC0zMCAxODozMzozOS42NDkw OTI3NDcgKzAxMDAKK0BAIC0xMzQwMCw2ICsxMzQwMCw2NCBAQCBjYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCiAgX0FDRU9GCiAgCiAgCkBAIC0zMjgsMTAgKzMyOCwxMCBAQCBJbmRleDogZ2RiLTcu OC9nZGIvY29uZmlndXJlCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBhIGNv cHkgb2YgR0RCX0FDX1dJVEhfRElSLAogICMgZXhjZXB0IHRoYXQgdGhlIGFyZ3VtZW50IHRvIC0t d2l0aC1zeXNyb290IGlzIG9wdGlvbmFsLgotSW5kZXg6IGdkYi03LjgvZ2RiL2dkYnNlcnZlci9j b25maWcuaW4KK0luZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0wNy0y OSAxOTozMTowMS45MDQxNDkzMzMgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9nZGJzZXJ2ZXIvY29u ZmlnLmluCTIwMTQtMDctMjkgMTk6MzE6MDUuODE1MTU0ODk4ICswMjAwCistLS0gZ2RiLTcuOC4x Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0xMC0zMCAxODozMzozNy4yODIwOTc2 MjEgKzAxMDAKKysrKyBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0xMC0z MCAxODozMzozOS42NDkwOTI3NDcgKzAxMDAKIEBAIC04MSw2ICs4MSw5IEBACiAgLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtY2hlY2snIGxpYnJhcnkgKC1sbWNoZWNrKS4gKi8KICAj dW5kZWYgSEFWRV9MSUJNQ0hFQ0sKQEAgLTM1MiwxMCArMzUyLDEwIEBAIEluZGV4OiBnZGItNy44 L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxzZ3R0eS5oPiBoZWFkZXIgZmlsZS4gKi8KICAjdW5kZWYgSEFWRV9TR1RUWV9ICiAgCi1JbmRl eDogZ2RiLTcuOC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03LjguMS9nZGIv Z2Ric2VydmVyL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvZ2Ri c2VydmVyL2NvbmZpZ3VyZQkyMDE0LTA3LTI5IDE5OjMxOjAxLjkwNTE0OTMzNCArMDIwMAotKysr IGdkYi03LjgvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUJMjAxNC0wNy0yOSAxOTozMTowNS44MTcx NTQ5MDEgKzAyMDAKKy0tLSBnZGItNy44LjEub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQky MDE0LTEwLTMwIDE4OjMzOjM3LjI4MzA5NzYxOSArMDEwMAorKysrIGdkYi03LjguMS9nZGIvZ2Ri c2VydmVyL2NvbmZpZ3VyZQkyMDE0LTEwLTMwIDE4OjMzOjM5LjY1MDA5Mjc0NSArMDEwMAogQEAg LTYxNzAsNiArNjE3MCw2NCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCiAgICAgZmkKICBmaQoKZGlm ZiAtLWdpdCBhL2dkYi1iYWJlbHRyYWNlLWNvbmZpZ3VyZS5wYXRjaCBiL2dkYi1iYWJlbHRyYWNl LWNvbmZpZ3VyZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FjMDI5ZC4u MDAwMDAwMAotLS0gYS9nZGItYmFiZWx0cmFjZS1jb25maWd1cmUucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw4NSArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMv MjAxNC0wOC9tc2cwMDA0NS5odG1sCi1TdWJqZWN0OiBbcGF0Y2hdIEZpeCAtLXdpdGgtYmFiZWx0 cmFjZSB3aXRoIGdjYy00LjkuMQotCi0KLS0tcU1tOU0rRmEyQWtuSG9HUwotQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxp bmUKLQotSGksCi0KLXdoZW4gSSB0cmllZCB0byB1c2UgLS13aXRoLWJhYmVsdHJhY2Ugb24gRmVk b3JhIFJhd2hpZGUgeDg2XzY0Ci11c2luZyBnY2MtNC45LjEtMy5mYzIyLng4Nl82NCBJIGdvdDoK LQotY2hlY2tpbmcgZm9yIGxpYmJhYmVsdHJhY2UuLi4gbm8KLWNvbmZpZ3VyZTogZXJyb3I6IGJh YmVsdHJhY2UgaXMgbWlzc2luZyBvciB1bnVzYWJsZQotTWFrZWZpbGU6Nzk3MzogcmVjaXBlIGZv ciB0YXJnZXQgJ2NvbmZpZ3VyZS1nZGInIGZhaWxlZAotCi1jb25maWd1cmU6MTU4OTA6IGNoZWNr aW5nIGZvciBsaWJiYWJlbHRyYWNlCi1jb25maWd1cmU6MTU5MTg6IGdjYyAtbyBjb25mdGVzdCAt TzIgLWcgLXBpcGUgLVdhbGwgLVdlcnJvcj1mb3JtYXQtc2VjdXJpdHkgLVdwLC1EX0ZPUlRJRllf U09VUkNFPTIgLWZleGNlcHRpb25zIC1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZyAtLXBhcmFtPXNz cC1idWZmZXItc2l6ZT00IC1ncmVjb3JkLWdjYy1zd2l0Y2hlcyAgLW02NCAtbXR1bmU9Z2VuZXJp YyAgIC1XZXJyb3IgICAtc3RhdGljLWxpYnN0ZGMrKyAtc3RhdGljLWxpYmdjYyAtV2wsLXoscmVs cm8gICAgY29uZnRlc3QuYyAtbHNlbGludXggLWxuY3Vyc2VzIC1seiAtbG0gIC1sZGwgICAvdXNy L2xpYjY0L2xpYmJhYmVsdHJhY2Uuc28gL3Vzci9saWI2NC9saWJiYWJlbHRyYWNlLWN0Zi5zbyA+ JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6MTk4OjIxOiBl cnJvcjogdW51c2VkIHZhcmlhYmxlICdwb3MnIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KLSBz dHJ1Y3QgYnRfaXRlcl9wb3MgKnBvcyA9IGJ0X2l0ZXJfZ2V0X3BvcyAoYnRfY3RmX2dldF9pdGVy IChOVUxMKSk7Ci0gICAgICAgICAgICAgICAgICAgICBeCi1jYzE6IGFsbCB3YXJuaW5ncyBiZWlu ZyB0cmVhdGVkIGFzIGVycm9ycwotY29uZmlndXJlOjE1OTE4OiAkPyA9IDEKLWNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgotCi1UaGUgcGF0Y2ggYmVsb3cgZml4ZXMgaXQgZm9yIG1lLgot Ci1JbiBjb25maWd1cmUuYWMgdGhlcmUgaXMgYWJvdmUgdGhpcyBjaGVjazoKLSAgIyBBcHBlbmQg LVdlcnJvciB0byBDRkxBR1Mgc28gdGhhdCBjb25maWd1cmUgY2FuIGNhdGNoIHRoZSB3YXJuaW5n Ci0gICMgImFzc2lnbm1lbnQgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIiwgd2hpY2gg aXMgcmVsYXRlZCB0bwotICAjIHRoZSBiYWJlbHRyYWNlIGNoYW5nZSBmcm9tIDEuMC4zIHRvIDEu MS4wLiAgQmFiZWx0cmFjZSAxLjEuMCB3b3JrcwotICAjIGluIEdEQiwgd2hpbGUgYmFiZWx0cmFj ZSAxLjAuMyBpcyBicm9rZW4uCi0gICMgQUNfTElCX0hBVkVfTElOS0ZMQUdTIG1heSBtb2RpZnkg Q1BQRkxBR1MgaW4gaXQsIHNvIGl0IHNob3VsZCBiZQotICAjIHNhZmUgdG8gc2F2ZSBhbmQgcmVz dG9yZSBDRkxBR1MgaGVyZS4KLSAgc2F2ZWRfQ0ZMQUdTPSRDRkxBR1MKLSAgQ0ZMQUdTPSIkQ0ZM QUdTIC1XZXJyb3IiCi0KLU1heWJlIGl0IHdvdWxkIGJlIGVhc2llciB0byB1c2UgdGhlcmU6Ci0g IENGTEFHUz0iJENGTEFHUyAtV2Vycm9yIC1Xbm8tdW51c2VkLXZhcmlhYmxlIgotCi1CdXQgbWF5 YmUgLVdlcnJvciBpcyBjcm9zcy1jb21waWxlciBjb21wYXRpYmxlIHdoaWxlIC1Xbm8tdW51c2Vk LXZhcmlhYmxlIGlzCi1ub3QsIEkgaGF2ZSBubyBpZGVhLgotCi0KLUphbgotCi0tLXFNbTlNK0Zh MkFrbkhvR1MKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29u dGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0iZ2RiLWJhYmVsdHJhY2UtY29uZmln dXJlLnBhdGNoIgotCi1nZGIvCi0yMDE0LTA4LTA0ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYyAoLS13aXRoLWJhYmVsdHJhY2Up OiBVc2UgJ3BvcycuCi0JKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCi0KLWRpZmYgLS1naXQgYS9n ZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwotaW5kZXggNzBkMDk2NC4uMDdkMmYw MCAxMDA2NDQKLS0tLSBhL2dkYi9jb25maWd1cmUuYWMKLSsrKyBiL2dkYi9jb25maWd1cmUuYWMK LUBAIC0yNDM3LDYgKzI0MzcsNyBAQCBlbHNlCi0gCQkJc3RydWN0IGJ0X2N0Zl9ldmVudCAqZXZl bnQgPSBOVUxMOwotIAkJCWNvbnN0IHN0cnVjdCBidF9kZWZpbml0aW9uICpzY29wZTsKLSAKLSsJ CQkodm9pZCkgcG9zOyAvKiBQcmV2ZW50IC1XZXJyb3I9dW51c2VkLXZhcmlhYmxlLiAgKi8KLSAJ CQlzY29wZSA9IGJ0X2N0Zl9nZXRfdG9wX2xldmVsX3Njb3BlIChldmVudCwKLSAJCQkgICAgICAJ CQkJICAgQlRfU1RSRUFNX0VWRU5UX0hFQURFUik7Ci0gCQkgICAgICAgIGJ0X2N0Zl9nZXRfdWlu dDY0IChidF9jdGZfZ2V0X2ZpZWxkIChldmVudCwgc2NvcGUsICJpZCIpKTsKLWRpZmYgLS1naXQg YS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQotaW5kZXggODA5MzI2YS4uYjk4M2QxNiAx MDA3NTUKLS0tLSBhL2dkYi9jb25maWd1cmUKLSsrKyBiL2dkYi9jb25maWd1cmUKLUBAIC0xNTM0 NCw2ICsxNTM0NCw3IEBAIHN0cnVjdCBidF9pdGVyX3BvcyAqcG9zID0gYnRfaXRlcl9nZXRfcG9z IChidF9jdGZfZ2V0X2l0ZXIgKE5VTEwpKTsKLSAJCQlzdHJ1Y3QgYnRfY3RmX2V2ZW50ICpldmVu dCA9IE5VTEw7Ci0gCQkJY29uc3Qgc3RydWN0IGJ0X2RlZmluaXRpb24gKnNjb3BlOwotIAotKwkJ CSh2b2lkKSBwb3M7IC8qIFByZXZlbnQgLVdlcnJvcj11bnVzZWQtdmFyaWFibGUuICAqLwotIAkJ CXNjb3BlID0gYnRfY3RmX2dldF90b3BfbGV2ZWxfc2NvcGUgKGV2ZW50LAotIAkJCSAgICAgIAkJ CQkgICBCVF9TVFJFQU1fRVZFTlRfSEVBREVSKTsKLSAJCSAgICAgICAgYnRfY3RmX2dldF91aW50 NjQgKGJ0X2N0Zl9nZXRfZmllbGQgKGV2ZW50LCBzY29wZSwgImlkIikpOwotCi0tLXFNbTlNK0Zh MkFrbkhvR1MtLQotCgpkaWZmIC0tZ2l0IGEvZ2RiLWJhYmVsdHJhY2UtbWluc2l6ZS5wYXRjaCBi L2dkYi1iYWJlbHRyYWNlLW1pbnNpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGQyNjEyNzcuLjAwMDAwMDAKLS0tIGEvZ2RiLWJhYmVsdHJhY2UtbWluc2l6ZS5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDIzNyArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwv Z2RiLXBhdGNoZXMvMjAxNC0wOC9tc2cwMDM3Ni5odG1sCi1TdWJqZWN0OiBSZTogLS13aXRoLWJh YmVsdHJhY2UgZ2VuZXJhdGVzIG1hbnkgRkFJTHMKLQotT24gMDgvMTkvMjAxNCAxMDowNyBQTSwg SmFuIEtyYXRvY2h2aWwgd3JvdGU6Ci0+ICAqICcjaWYgSEFWRV9MSUJCQUJFTFRSQUNFMV8xXzAn IGNvdWxkIGhhdmUgYSBjb21tZW50IHRoYXQgPj0xLjEuMSByZWplY3RzIHRoZQotPiAgICBmYWtl ZCBwYWNrZXQgKHdoYXQgeW91IGRlc2NyaWJlZCBpbiB0aGUgbWFpbCBidXQgbm90IGluIHRoZSBw YXRjaCkuCi0KLUZpeGVkLiAgVG8gYmUgcHJlY2lzZSwgPj0gMS4xLjIgcmVqZWN0cyB0aGUgZmFr ZWQgcGFja2V0LCAxLjEuMQotZG9lc24ndC4gIFNlZSB0aGUgdGFibGUgSSBwb3N0ZWQuCi0KLT4g ICogSXQgaXMgYWx3YXlzIGJldHRlciB0byBjaGVjayBmb3IgZmVhdHVyZS9kZWZlY3QgdGhhbiB0 byBjaGVjayBmb3IgdmVyc2lvbi4KLT4gICAgRm9yIGV4YW1wbGUgYmVjYXVzZSB2YXJpb3VzIGRp c3Ryb3MgYmFja3BvcnQgdmFyaW91cyBmaXhlcyAodW5mb3J0dW5hdGVseQotPiAgICBpbmNsdWRp bmcgdGhlaXIgcG9zc2libGUgcmVncmVzc2lvbnMvZGVmZWN0cykgYW5kIHNvIHZlcnNpb24gY2hl Y2tzIG1heSBiZQotPiAgICBtaXNsZWFkaW5nIHRoZW4uICBBdCBsZWFzdCBpbiB0aGlzIGNhc2Ug aXQgc2VlbXMgdG8gbWUgYXMgcG9zc2libGUgdG8gY2hlY2sKLT4gICAgaG93IGxpYmJhY2t0cmFj ZSBiZWhhdmVzIGZyb20gY29uZmlndXJlOyBhbHRob3VnaCBtYXliZSBpdCBpcyBub3QgZWFzeQot PiAgICBlbm91Z2gsIG5vdCBzdXJlLgotCi1JbiBvcmRlciB0byBjaGVjayBsaWJiYWJlbHRyYWNl J3MgYmVoYXZpb3VyIGluIGNvbmZpZ3VyZSwgd2UgaGF2ZSB0byB3cml0ZQotYSBjIHByb2dyYW0g dG8gZ2VuZXJhdGUgQ1RGIGRhdGEgYW5kIHJlYWQgdGhlIHRyYWNlIGRhdGEgdmlhCi1iYWJlbHRy YWNlIG9yIGFueSBwcm9ncmFtICh1c2luZyBsaWJiYWJlbHRyYWNlKSB3cml0dGVuIGJ5IG91cnNl bHZlcy4KLUl0IGlzIG5vdCBlYXN5IHRvIGRvIHNvLgotCi1UaGUgcGF0Y2ggaXMgdXBkYXRlZC4g IE9LIHRvIGFwcGx5PwotCi0tLSAKLVlhbyAo6b2Q5bCnKQotCi1TdWJqZWN0OiBbUEFUQ0hdIENo ZWNrIGJhYmVsdHJhY2UgMS4xLjAKLVN1YmplY3Q6IFtQQVRDSF0gQ2hlY2sgYmFiZWx0cmFjZSAx LjEuMAotCi1XaGVuIEdEQiB1c2VzIHJlY2VudCB2ZXJzaW9uIG9mIGJhYmVsdHJhY2UsIHN1Y2gg YXMgMS4yLngsIHdlJ2xsIHNlZQotc3VjaCBlcnJvciBlbWl0dGVkIGZyb20gYmFiZWx0cmFjZSBs aWJyYXJ5LAotCi0gKGdkYikgdGFyZ2V0IGN0ZiAuLi4vZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2Uv YWN0aW9ucy5jdGYKLSBbZXJyb3JdIEludmFsaWQgQ1RGIHN0cmVhbTogY29udGVudCBzaXplIGlz IHNtYWxsZXIgdGhhbgotcGFja2V0IGhlYWRlcnMuCi0gW2Vycm9yXSBTdHJlYW0gaW5kZXggY3Jl YXRpb24gZXJyb3IuCi0gW2Vycm9yXSBPcGVuIGZpbGUgc3RyZWFtIGVycm9yLgotCi1UaGUgcHJv YmxlbSBjYW4gYmUgcmVwcm9kdWNlIG91dCBvZiBHREIgdG9vLCB1c2luZyBiYWJlbHRyYWNlLAot Ci0gJCBiYWJlbHRyYWNlIC4vZmFrZS1wYWNrZXQuY3RmLwotIFtlcnJvcl0gSW52YWxpZCBDVEYg c3RyZWFtOiBjb250ZW50IHNpemUgaXMgc21hbGxlciB0aGFuIHBhY2tldCBoZWFkZXJzLgotIFtl cnJvcl0gU3RyZWFtIGluZGV4IGNyZWF0aW9uIGVycm9yLgotIFtlcnJvcl0gT3BlbiBmaWxlIHN0 cmVhbSBlcnJvci4KLQotUmVjZW50IGJhYmVsdHJhY2UgbGlicmFyeSBiZWNvbWVzIG1vcmUgc3Ry aWN0IG9uIENURiwgYW5kIGNvbXBsYWlucwotYWJvdXQgb25lICJmYWtlZCBwYWNrZXQiIEdEQiBh ZGRzLCB3aGVuIHNhdmluZyB0cmFjZSBkYXRhIGluIGN0ZgotZm9ybWF0IGZyb20gR0RCLiAgYmFi ZWx0cmFjZSAxLjEuMCBoYXMgYSBidWcgdGhhdCBpdCBjYW4ndCByZWFkIHRyYWNlCi1kYXRhIHNt YWxsZXIgdGhhbiBhIGNlcnRhaW4gc2l6ZSAoc2VlIGh0dHBzOi8vYnVncy5sdHRuZy5vcmcvaXNz dWVzLzQ1MCkuCi1XZSB3b3JrYXJvdW5kIGl0IGluIEdEQiB0byBhcHBlbmQgc29tZSBtZWFuaW5n bGVzcyBkYXRhIGluIGEgZmFrZWQKLXBhY2tldCB0byBtYWtlIHN1cmUgdHJhY2UgZmlsZSBpcyBs YXJnZSBlbm91Z2ggKHNlZSBjdGYuYzpjdGZfZW5kKS4KLVRoZSBiYWJlbHRyYWNlIGlzc3VlIHdh cyBmaXhlZCBpbiAxLjEuMSByZWxlYXNlLiAgSG93ZXZlciwgYmFiZWx0cmFjZQotcmVjZW50IHJl bGVhc2UgKHNpbmNlIDEuMS4yKSBzdGFydHMgdG8gY29tcGxhaW4gYWJvdXQgc3VjaCBmYWtlZAot cGFja2V0LiAgSGVyZSBpcyBhIHRhYmxlIHNob3dzIHRoYXQgd2hldGhlciBmYWtlZCBwYWNrZXQg b3Igbm8gZmFrZWQKLXBhY2tldCBpcyBzdXBwb3J0ZWQgYnkgdmFyaW91cyBiYWJlbHRyYWNlIHJl bGVhc2VzLAotCi0gICAgICAgIGZha2VkIHBhY2tldCAgICAgIG5vIGZha2VkIHBhY2tldAotMS4x LjAgICAgICBZZXMgICAgICAgICAgICAgICAgIE5vCi0xLjEuMSAgICAgIFllcyAgICAgICAgICAg ICAgICAgWWVzCi0xLjEuMiAgICAgIE5vICAgICAgICAgICAgICAgICAgWWVzCi0xLjIuMCAgICAg IE5vICAgICAgICAgICAgICAgICAgWWVzCi0KLVdlIGRlY2lkZSB0byBpbmNsdWRlIHRoZSBjb2Rl IHRvIHdvcmthcm91bmQgMS4xLjAgaXNzdWUgb25seSBpZiAxLjEuMAotaXMgdXNlZC4gIFdlIGNo b29zZSBwa2ctY29uZmlnIHRvIGNoZWNrIGJhYmVsdHJhY2UncyB2ZXJzaW9uIGluCi1jb25maWd1 cmUuCi0KLWdkYjoKLQotMjAxNC0wOC0yMCAgWWFvIFFpICA8eWFvQGNvZGVzb3VyY2VyeS5jb20+ Ci0KLQkqIGNvbmZpZ3VyZS5hYzogRGlzYWJsZSBiYWJlbHRyYWNlIHN1cHBvcnQgaWYgcGtnLWNv bmZpZyBpcwotCW1pc3NpbmcuICBVc2UgcGtnLWNvbmZpZyB0byBjaGVjayB3aGV0aGVyIGxpYmJh YmVsdHJhY2UgaXMKLQkxLjEuMC4KLQkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KLQkqIGNvbmZp Z3VyZTogUmVnZW5lcmF0ZS4KLQkqIGN0Zi5jIChDVEZfRklMRV9NSU5fU0laRSk6IFJlbW92ZS4K LQkoY3RmX2VuZCk6IFdyYXAgdGhlIGNvZGUgd2l0aAotCSNpZiBIQVZFX0xJQkJBQkVMVFJBQ0Ux XzFfMCAjZW5kaWYuCi0JW0hBVkVfTElCQkFCRUxUUkFDRTFfMV8wXSAoQ1RGX0ZJTEVfTUlOX1NJ WkUpOiBOZXcgbWFjcm8uCi0tLS0KLSBnZGIvY29uZmlnLmluICAgIHwgIDMgKysrCi0gZ2RiL2Nv bmZpZ3VyZSAgICB8IDI1ICsrKysrKysrKysrKysrKysrKysrKysrKysKLSBnZGIvY29uZmlndXJl LmFjIHwgMjIgKysrKysrKysrKysrKysrKysrKysrKwotIGdkYi9jdGYuYyAgICAgICAgfCAyNSAr KysrKysrKysrKysrKysrLS0tLS0tLS0tCi0gNCBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25z KCspLCA5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZy5pbiBiL2dkYi9j b25maWcuaW4KLWluZGV4IGI4NTM0MTIuLjU0MTUyY2QgMTAwNjQ0Ci0tLS0gYS9nZGIvY29uZmln LmluCi0rKysgYi9nZGIvY29uZmlnLmluCi1AQCAtMTgzLDYgKzE4Myw5IEBACi0gLyogRGVmaW5l IGlmIHlvdSBoYXZlIHRoZSBiYWJlbHRyYWNlIGxpYnJhcnkuICovCi0gI3VuZGVmIEhBVkVfTElC QkFCRUxUUkFDRQotIAotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIGxpYmJhYmVsdHJhY2Ug MS4xLjAgKi8KLSsjdW5kZWYgSEFWRV9MSUJCQUJFTFRSQUNFMV8xXzAKLSsKLSAvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGRsJyBsaWJyYXJ5ICgtbGRsKS4gKi8KLSAjdW5kZWYgSEFW RV9MSUJETAotIAotZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCi1p bmRleCA5MjUzZTI4Li5kNGUyYzZlIDEwMDc1NQotLS0tIGEvZ2RiL2NvbmZpZ3VyZQotKysrIGIv Z2RiL2NvbmZpZ3VyZQotQEAgLTE0ODE3LDYgKzE0ODE3LDExIEBAICRhc19lY2hvICIkd2l0aF9i YWJlbHRyYWNlIiA+JjY7IH0KLSBpZiB0ZXN0ICJ4JHdpdGhfYmFiZWx0cmFjZSIgPSAieG5vIjsg dGhlbgotICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5H OiBiYWJsZXRyYWNlIHN1cHBvcnQgZGlzYWJsZWQ7IEdEQiBpcyB1bmFibGUgdG8gcmVhZCBDVEYg ZGF0YS4iID4mNQotICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGJhYmxldHJhY2Ugc3VwcG9y dCBkaXNhYmxlZDsgR0RCIGlzIHVuYWJsZSB0byByZWFkIENURiBkYXRhLiIgPiYyO30KLStlbGlm IHRlc3QgIiR7cGtnX2NvbmZpZ19wcm9nX3BhdGh9IiA9ICJtaXNzaW5nIjsgdGhlbgotKyAgIyBw a2ctY29uZmlnIGlzIHVzZWQgdG8gY2hlY2sgdGhlIHZlcnNpb24gb2YgbGliYmFiZWx0cmFjZS4g IElmIHBrZy1jb25maWcKLSsgICMgaXMgbWlzc2luZywgd2UgaGF2ZSB0byBkaXNhYmxlIGJhYmVs dHJhY2Ugc3VwcG9ydC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogV0FSTklORzogcGtnLWNvbmZpZyBub3QgZm91bmQsIGJhYmxldHJhY2Ugc3VwcG9ydCBkaXNh YmxlZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogcGtnLWNvbmZpZyBub3QgZm91 bmQsIGJhYmxldHJhY2Ugc3VwcG9ydCBkaXNhYmxlZCIgPiYyO30KLSBlbHNlCi0gICAjIEFwcGVu ZCAtV2Vycm9yIHRvIENGTEFHUyBzbyB0aGF0IGNvbmZpZ3VyZSBjYW4gY2F0Y2ggdGhlIHdhcm5p bmcKLSAgICMgImFzc2lnbm1lbnQgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIiwgd2hp Y2ggaXMgcmVsYXRlZCB0bwotQEAgLTE1MzA3LDYgKzE1MzEyLDI2IEBAICRhc19lY2hvICIkTElC QkFCRUxUUkFDRSIgPiY2OyB9Ci0gICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogV0FSTklORzogYmFiZWx0cmFjZSBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBH REIgaXMgdW5hYmxlIHRvIHJlYWQgQ1RGIGRhdGEuIiA+JjUKLSAkYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiBiYWJlbHRyYWNlIGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IEdEQiBpcyB1bmFibGUg dG8gcmVhZCBDVEYgZGF0YS4iID4mMjt9Ci0gICAgICBmaQotKyAgZWxzZQotKyAgICAgIyBOZWVk IHRvIGtub3cgd2hldGhlciBsaWJiYWJlbHRyYWNlIGlzIDEuMS4wLgotKyAgICAgcGtnX2NvbmZp Z19wYXRoPQotKyAgICAgZm9yIHggaW4gJExUTElCQkFCRUxUUkFDRTsgZG8KLSsgICAgICAgY2Fz ZSAiJHgiIGluCi0rICAgICAgICAgLUwqKQotKwkgICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUg J3MvXlgtTC8vJ2AKLSsJICAgaWYgdGVzdCAtZCAiJGRpci9wa2djb25maWciOyB0aGVuCi0rCSAg ICAgcGtnX2NvbmZpZ19wYXRoPSIke3BrZ19jb25maWdfcGF0aH0ke3BrZ19jb25maWdfcGF0aDor On0kZGlyL3BrZ2NvbmZpZyIKLSsJICAgZmkKLSsJICAgOzsKLSsgICAgICAgZXNhYwotKyAgICAg ZG9uZQotKwotKyAgICAgYFBLR19DT05GSUdfUEFUSD0kUEtHX0NPTkZJR19QQVRIOiRwa2dfY29u ZmlnX3BhdGggJHtwa2dfY29uZmlnX3Byb2dfcGF0aH0gYmFiZWx0cmFjZSA9IDEuMS4wYAotKyAg ICAgaWYgdGVzdCAiJD8iIC1lcSAwIDsgdGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVf TElCQkFCRUxUUkFDRTFfMV8wIDEiID4+Y29uZmRlZnMuaAotKwotKyAgICAgZmkKLSAgIGZpCi0g ZmkKLSAKLWRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwot aW5kZXggNjE5MTliNC4uMWQ4ZDQwMCAxMDA2NDQKLS0tLSBhL2dkYi9jb25maWd1cmUuYWMKLSsr KyBiL2dkYi9jb25maWd1cmUuYWMKLUBAIC0yNDIwLDYgKzI0MjAsMTAgQEAgQUNfTVNHX1JFU1VM VChbJHdpdGhfYmFiZWx0cmFjZV0pCi0gCi0gaWYgdGVzdCAieCR3aXRoX2JhYmVsdHJhY2UiID0g InhubyI7IHRoZW4KLSAgIEFDX01TR19XQVJOKFtiYWJsZXRyYWNlIHN1cHBvcnQgZGlzYWJsZWQ7 IEdEQiBpcyB1bmFibGUgdG8gcmVhZCBDVEYgZGF0YS5dKQotK2VsaWYgdGVzdCAiJHtwa2dfY29u ZmlnX3Byb2dfcGF0aH0iID0gIm1pc3NpbmciOyB0aGVuCi0rICAjIHBrZy1jb25maWcgaXMgdXNl ZCB0byBjaGVjayB0aGUgdmVyc2lvbiBvZiBsaWJiYWJlbHRyYWNlLiAgSWYgcGtnLWNvbmZpZwot KyAgIyBpcyBtaXNzaW5nLCB3ZSBoYXZlIHRvIGRpc2FibGUgYmFiZWx0cmFjZSBzdXBwb3J0Lgot KyAgQUNfTVNHX1dBUk4oW3BrZy1jb25maWcgbm90IGZvdW5kLCBiYWJsZXRyYWNlIHN1cHBvcnQg ZGlzYWJsZWRdKQotIGVsc2UKLSAgICMgQXBwZW5kIC1XZXJyb3IgdG8gQ0ZMQUdTIHNvIHRoYXQg Y29uZmlndXJlIGNhbiBjYXRjaCB0aGUgd2FybmluZwotICAgIyAiYXNzaWdubWVudCBmcm9tIGlu Y29tcGF0aWJsZSBwb2ludGVyIHR5cGUiLCB3aGljaCBpcyByZWxhdGVkIHRvCi1AQCAtMjQ1MCw2 ICsyNDU0LDI0IEBAIGVsc2UKLSAgICAgIGVsc2UKLSAgICAgICAgQUNfTVNHX1dBUk4oW2JhYmVs dHJhY2UgaXMgbWlzc2luZyBvciB1bnVzYWJsZTsgR0RCIGlzIHVuYWJsZSB0byByZWFkIENURiBk YXRhLl0pCi0gICAgICBmaQotKyAgZWxzZQotKyAgICAgIyBOZWVkIHRvIGtub3cgd2hldGhlciBs aWJiYWJlbHRyYWNlIGlzIDEuMS4wLgotKyAgICAgcGtnX2NvbmZpZ19wYXRoPQotKyAgICAgZm9y IHggaW4gJExUTElCQkFCRUxUUkFDRTsgZG8KLSsgICAgICAgY2FzZSAiJHgiIGluCi0rICAgICAg ICAgLUwqKQotKwkgICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AKLSsJICAg aWYgdGVzdCAtZCAiJGRpci9wa2djb25maWciOyB0aGVuCi0rCSAgICAgcGtnX2NvbmZpZ19wYXRo PSIke3BrZ19jb25maWdfcGF0aH0ke3BrZ19jb25maWdfcGF0aDorOn0kZGlyL3BrZ2NvbmZpZyIK LSsJICAgZmkKLSsJICAgOzsKLSsgICAgICAgZXNhYwotKyAgICAgZG9uZQotKwotKyAgICAgYFBL R19DT05GSUdfUEFUSD0kUEtHX0NPTkZJR19QQVRIOiRwa2dfY29uZmlnX3BhdGggJHtwa2dfY29u ZmlnX3Byb2dfcGF0aH0gYmFiZWx0cmFjZSA9IDEuMS4wYAotKyAgICAgaWYgdGVzdCAiJD8iIC1l cSAwIDsgdGhlbgotKyAgICAgICBBQ19ERUZJTkUoW0hBVkVfTElCQkFCRUxUUkFDRTFfMV8wXSwg WzFdLCBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgbGliYmFiZWx0cmFjZSAxLjEuMF0pCi0rICAg ICBmaQotICAgZmkKLSBmaQotIAotZGlmZiAtLWdpdCBhL2dkYi9jdGYuYyBiL2dkYi9jdGYuYwot aW5kZXggZGY2NDVjMC4uNjg0ZGE1MCAxMDA2NDQKLS0tLSBhL2dkYi9jdGYuYwotKysrIGIvZ2Ri L2N0Zi5jCi1AQCAtNjIzLDExICs2MjMsNiBAQCBjdGZfd3JpdGVfZGVmaW5pdGlvbl9lbmQgKHN0 cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqc2VsZikKLSAgIHNlbGYtPm9wcy0+ZnJhbWVfb3BzLT5l bmQgKHNlbGYpOwotIH0KLSAKLS0vKiBUaGUgbWluaW1hbCBmaWxlIHNpemUgb2YgZGF0YSBzdHJl YW0uICBJdCBpcyByZXF1aXJlZCBieQotLSAgIGJhYmVsdHJhY2UuICAqLwotLQotLSNkZWZpbmUg Q1RGX0ZJTEVfTUlOX1NJWkUJCTQwOTYKLS0KLSAvKiBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlv biBvZiB0cmFjZV9maWxlX3dyaXRlX29wcyBtZXRob2QKLSAgICBlbmQuICAqLwotIAotQEAgLTYz NywxMCArNjMyLDIxIEBAIGN0Zl9lbmQgKHN0cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqc2VsZikK LSAgIHN0cnVjdCBjdGZfdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciA9IChzdHJ1Y3QgY3RmX3Ry YWNlX2ZpbGVfd3JpdGVyICopIHNlbGY7Ci0gCi0gICBnZGJfYXNzZXJ0ICh3cml0ZXItPnRjcy5j b250ZW50X3NpemUgPT0gMCk7Ci0tICAvKiBUaGUgYmFiZWx0cmFjZSByZXF1aXJlcyBvciBhc3N1 bWVzIHRoYXQgdGhlIHNpemUgb2YgZGF0YXN0cmVhbQotLSAgICAgZmlsZSBpcyBncmVhdGVyIHRo YW4gNDA5NiBieXRlcy4gIElmIHdlIGRvbid0IGdlbmVyYXRlIGVub3VnaAotLSAgICAgcGFja2V0 cyBhbmQgZXZlbnRzLCBjcmVhdGUgYSBmYWtlIHBhY2tldCB3aGljaCBoYXMgemVybyBldmVudCwK LS0gICAgICB0byB1c2UgdXAgdGhlIHNwYWNlLiAgKi8KLSsKLSsjaWYgSEFWRV9MSUJCQUJFTFRS QUNFMV8xXzAKLSsgIC8qIFRoZSBiYWJlbHRyYWNlLTEuMS4wIHJlcXVpcmVzIG9yIGFzc3VtZXMg dGhhdCB0aGUgc2l6ZSBvZiBkYXRhc3RyZWFtCi0rICAgICBmaWxlIGlzIGdyZWF0ZXIgdGhhbiA0 MDk2IGJ5dGVzLiAgVGhpcyB3YXMgZml4ZWQgYWZ0ZXIgMS4xLjAgcmVsZWFzZS4KLSsgICAgIFNl ZSBodHRwczovL2J1Z3MubHR0bmcub3JnL2lzc3Vlcy80NTAKLSsgICAgIElmIHdlIGRvbid0IGdl bmVyYXRlIGVub3VnaCBwYWNrZXRzIGFuZCBldmVudHMsIGNyZWF0ZSBhIGZha2UgcGFja2V0Ci0r ICAgICB3aGljaCBoYXMgemVybyBldmVudCwgdG8gdXNlIHVwIHRoZSBzcGFjZS4gIEhvd2V2ZXIs IGJhYmVsdHJhY2UKLSsgICAgIHJlbGVhc2UgKHNpbmNlIDEuMS4yKSBzdGFydHMgdG8gY29tcGxh aW4gYWJvdXQgc3VjaCBmYWtlZCBwYWNrZXQsCi0rICAgICB3ZSBpbmNsdWRlIHRoaXMgd29ya2Fy b3VuZCBvbmx5IGZvciBiYWJlbHRyYWNlIDEuMS4wLiAgKi8KLSsKLSsgIC8qIFRoZSBtaW5pbWFs IGZpbGUgc2l6ZSBvZiBkYXRhIHN0cmVhbS4gIEl0IGlzIHJlcXVpcmVkIGJ5Ci0rICAgICBiYWJl bHRyYWNlLiAgKi8KLSsKLSsjZGVmaW5lIENURl9GSUxFX01JTl9TSVpFCQk0MDk2Ci0rCi0gICBp ZiAod3JpdGVyLT50Y3MucGFja2V0X3N0YXJ0IDwgQ1RGX0ZJTEVfTUlOX1NJWkUpCi0gICAgIHsK LSAgICAgICB1aW50MzJfdCB1MzI7Ci1AQCAtNjgxLDYgKzY4Nyw3IEBAIGN0Zl9lbmQgKHN0cnVj dCB0cmFjZV9maWxlX3dyaXRlciAqc2VsZikKLSAJICBjdGZfc2F2ZV93cml0ZSAoJndyaXRlci0+ dGNzLCAmYiwgMSk7Ci0gCX0KLSAgICAgfQotKyNlbmRpZiAvKiBIQVZFX0xJQkJBQkVMVFJBQ0Ux XzFfMCAqLwotIH0KLSAKLSAvKiBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0cmFjZV9m cmFtZV93cml0ZV9vcHMgbWV0aG9kCi0tLSAKLTEuOS4zCi0KCmRpZmYgLS1naXQgYS9nZGItdXBz dHJlYW0ucGF0Y2ggYi9nZGItdXBzdHJlYW0ucGF0Y2gKaW5kZXggMmMwY2ZjOS4uMDI4ZmU3YSAx MDA2NDQKLS0tIGEvZ2RiLXVwc3RyZWFtLnBhdGNoCisrKyBiL2dkYi11cHN0cmVhbS5wYXRjaApA QCAtNjUsMTgwNiArNjUsMyBAQCBpbmRleCAwZTAyMDJkLi5kODQ5YjRjIDEwMDY0NAogICMgZ2Ri c2VydmVyIGRvZXMgbm90IGhhdmUgdGhpcyBpc3N1ZS4KICBpZiAhW2lzX3JlbW90ZSB0YXJnZXRd IHsKICAgICAgc2V0dXBfa2ZhaWwgIiotKi0qIiBnZGIvMTU5MzQKLUZyb20gNjNmY2M4YmNkOThh OGNkOTY3MmRkODY3MmY2NjM2NjJmOGNhYTgxMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFBlZHJvIEFsdmVzIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMSBPY3QgMjAx NCAxMDo0NDowOCArMDEwMAotU3ViamVjdDogW1BBVENIIDEzLzM3XSBBYXJjaDY0OiBNYWtlIENQ U1IgYSAzMi1iaXQgcmVnaXN0ZXIgYWdhaW4gaW4gdGhlCi0gdGFyZ2V0IGRlc2NyaXB0aW9uCi0K LVRoaXMgcmV2ZXJ0cyBjb21taXQgYTRkOWJhODUgLSAnQUFSQ0g2NDogQ2hhbmdlIGNwc3IgdHlw ZSB0byBiZQotNjRiaXQuJy4KLQotRXZlbiB0aG91Z2ggTGludXgncyBwdHJhY2UgZXhwb3NlcyBD UFNSIGFzIDY0LWJpdCwgQ1BTUiBpcyByZWFsbHkKLTMyLWJpdCwgYW5kIGJhc2luZyBHREIncyBm dW5kYW1lbnRhbHMgb24gYSBwYXJ0aWN1bGFyIE9TJ3MgcHRyYWNlKDIpCi1pbXBsZW1lbnRhdGlv biBpcyBhIGJhZCBpZGVhLgotCi1JbiBhZGRpdGlvbiwgd2hpbGUgdGhhdCBjb21taXQgaW50ZW5k ZWQgdG8gZml4IGJpZyBlbmRpYW4gQWFyY2g2NCwgaXQKLWVuZGVkIHVwIGJyZWFraW5nIGZsb2F0 aW5nIHBvaW50IGRlYnVnZ2luZyBhZ2FpbnN0IEdEQnNlcnZlciwgZm9yIGJvdGgKLWJpZyBhbmQg bGl0dGxlIGVuZGlhbiwgYmVjYXVzZSBpdCBjaGFuZ2VkIHRoZSBDUFNSIHRvIGJlIDY0LWJpdCBp biB0aGUKLWZlYXR1cmVzL2FhcmNoNjQtY29yZS54bWwgZmlsZSwgYnV0IG1pc3NlZCByZWdlbmVy YXRpbmcgdGhlCi1yZWdmb3JtYXRzL2FhcmNoNjQuZGF0IGZpbGUuICBJZiB3ZSBnZW5lcmF0ZSBp dCBub3csIHdlIHNlZSB0aGlzOgotCi0gIGRpZmYgLS1naXQgYy9nZGIvcmVnZm9ybWF0cy9hYXJj aDY0LmRhdCB3L2dkYi9yZWdmb3JtYXRzL2FhcmNoNjQuZGF0Ci0gIGluZGV4IGFmZTEwMjguLjBk MzIxODMgMTAwNjQ0Ci0gIC0tLSBjL2dkYi9yZWdmb3JtYXRzL2FhcmNoNjQuZGF0Ci0gICsrKyB3 L2dkYi9yZWdmb3JtYXRzL2FhcmNoNjQuZGF0Ci0gIEBAIC0zNSw3ICszNSw3IEBAIGV4cGVkaXRl OngyOSxzcCxwYwotICAgNjQ6eDMwCi0gICA2NDpzcAotICAgNjQ6cGMKLSAgLTMyOmNwc3IKLSAg KzY0OmNwc3IKLSAgIDEyODp2MAotICAgMTI4OnYxCi0gICAxMjg6djIKLQotSU9XLCB0aGF0IGNv bW1pdCBsZWZ0IHJlZ2Zvcm1hdHMvYWFyY2g2NC5kYXQgc3RpbGwgY29uc2lkZXJpbmcgQ1BTUiBh cwotMzItYml0cy4gIHJlZ2Zvcm1hdHMvYWFyY2g2NC5kYXQgaXMgdXNlZCBieSBHREJzZXJ2ZXIg Zm9yIGl0cyBpbnRlcm5hbAotcmVnY2FjaGUgbGF5b3V0LCBhbmQgZm9yIHRoZSBnL0cgcGFja2V0 IHJlZ2lzdGVyIGJsb2NrLiAgU2VlIHRoZQotZ2VuZXJhdGVkIGFhcmNoNjQuYyBmaWxlIGluIEdE QnNlcnZlcidzIGJ1aWxkIGRpci4KLQotU28gdGhlIHRhcmdldCBkZXNjcmlwdGlvbiB4bWwgZmls ZSB0aGF0IEdEQnNlcnZlciByZXBvcnRzIHRvIEdEQiBpcwotbm93IGNsYWltaW5nIHRoYXQgQ1BT UiBpcyA2NC1iaXQsIGJ1dCB3aGF0IEdEQnNlcnZlciBhY3R1YWxseSBwdXRzIGluCi10aGUgZy9H IHJlZ2lzdGVyIHBhY2tldHMgaXMgMzItYml0cy4gIEJlY2F1c2UgR0RCIHRoaW5rcyBDUFNSIGlz Ci02NC1iaXQgKGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhlIFhNTCBkZXNjcmlwdGlvbiBzYXlzKSwg R0RCIHdpbGwgYmUKLXJlYWRpbmcgdGhlIHJlbWFpbmluZyAzMi1iaXQgYml0cyBvZiBDUFNSIG91 dCBvZiB2MCAodGhlIHJlZ2lzdGVyCi1pbW1lZGlhdGVseSBhZnRlcndhcmRzKSwgYW5kIHRoZW4g YWxsIHRoZSByZWdpc3RlcnMgdGhhdCBmb2xsb3cgQ1BTUgotaW4gdGhlIHJlZ2lzdGVyIHBhY2tl dCBlbmQgdXAgd3JvbmcgaW4gR0RCLCBiZWNhdXNlIHRoZXkncmUgYmVpbmcgcmVhZAotZnJvbSB0 aGUgd3Jvbmcgb2Zmc2V0cy4uLgotCi1nZGIvCi0yMDE0LTEwLTAxICBQZWRybyBBbHZlcyAgPHBh bHZlc0ByZWRoYXQuY29tPgotCi0JKiBmZWF0dXJlcy9hYXJjaDY0LWNvcmUueG1sIChjcHNyKTog Q2hhbmdlIGJhY2sgdG8gMzItYml0LgotCSogZmVhdHVyZXMvYWFyY2g2NC5jOiBSZWdlbmVyYXRl LgotLS0tCi0gZ2RiL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgfCA1ICsrKysrCi0gZ2RiL2Zl YXR1cmVzL2FhcmNoNjQtY29yZS54bWwgfCAyICstCi0gZ2RiL2ZlYXR1cmVzL2FhcmNoNjQuYyAg ICAgICAgfCAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0x LDMgKzEsOCBAQAotKzIwMTQtMTAtMDEgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+ Ci0rCi0rCSogZmVhdHVyZXMvYWFyY2g2NC1jb3JlLnhtbCAoY3Bzcik6IENoYW5nZSBiYWNrIHRv IDMyLWJpdC4KLSsJKiBmZWF0dXJlcy9hYXJjaDY0LmM6IFJlZ2VuZXJhdGUuCi0rCi0gMjAxNC0w OS0xMSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJUFIgZ2RiLzE3MzQ3 Ci0tLS0gYS9nZGIvZmVhdHVyZXMvYWFyY2g2NC1jb3JlLnhtbAotKysrIGIvZ2RiL2ZlYXR1cmVz L2FhcmNoNjQtY29yZS54bWwKLUBAIC00Miw1ICs0Miw1IEBACi0gICA8cmVnIG5hbWU9InNwIiBi aXRzaXplPSI2NCIgdHlwZT0iZGF0YV9wdHIiLz4KLSAKLSAgIDxyZWcgbmFtZT0icGMiIGJpdHNp emU9IjY0IiB0eXBlPSJjb2RlX3B0ciIvPgotLSAgPHJlZyBuYW1lPSJjcHNyIiBiaXRzaXplPSI2 NCIvPgotKyAgPHJlZyBuYW1lPSJjcHNyIiBiaXRzaXplPSIzMiIvPgotIDwvZmVhdHVyZT4KLS0t LSBhL2dkYi9mZWF0dXJlcy9hYXJjaDY0LmMKLSsrKyBiL2dkYi9mZWF0dXJlcy9hYXJjaDY0LmMK LUBAIC01MCw3ICs1MCw3IEBAIGluaXRpYWxpemVfdGRlc2NfYWFyY2g2NCAodm9pZCkKLSAgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4MzAiLCAzMCwgMSwgTlVMTCwgNjQsICJpbnQiKTsK LSAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzcCIsIDMxLCAxLCBOVUxMLCA2NCwgImRh dGFfcHRyIik7Ci0gICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicGMiLCAzMiwgMSwgTlVM TCwgNjQsICJjb2RlX3B0ciIpOwotLSAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImNwc3Ii LCAzMywgMSwgTlVMTCwgNjQsICJpbnQiKTsKLSsgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJjcHNyIiwgMzMsIDEsIE5VTEwsIDMyLCAiaW50Iik7Ci0gCi0gICBmZWF0dXJlID0gdGRlc2Nf Y3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmFhcmNoNjQuZnB1Iik7Ci0gICBm aWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgImllZWVfZG91YmxlIik7Ci0t LSAKLTEuOS4zCi0KLUZyb20gMjQ0ZmU4MmI5YzY1NDI1NTdhMWMyZDRkMjFhZjEwOTI2OTJkMzc3 ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERvdWcgRXZhbnMgPGRqZUBnb29nbGUu Y29tPgotRGF0ZTogV2VkLCAxNSBPY3QgMjAxNCAxMzoyMzoyMyAtMDcwMAotU3ViamVjdDogW1BB VENIIDI5LzM3XSBQUiBweXRob24vMTczNjQKLQotZ2RiL0NoYW5nZUxvZzoKLQotCSogcHl0aG9u L2xpYi9nZGIvX19pbml0X18ucHkgKHBhY2thZ2VzKTogQWRkICJwcmludGVyIi4KLQkqIHB5dGhv bi9saWIvZ2RiL2NvbW1hbmQvYm91bmRfcmVnaXN0ZXJzLnB5OiBNb3ZlZCB0byAuLi4KLQkqIHB5 dGhvbi9saWIvZ2RiL3ByaW50ZXIvYm91bmRfcmVnaXN0ZXJzLnB5OiAuLi4gaGVyZS4KLQlBZGQg cHJpbnRlciB0byBnbG9iYWwgc2V0IG9mIGJ1aWx0aW4gcHJpbnRlcnMuICBSZW5hbWUgcHJpbnRl ciBmcm9tCi0JImJvdW5kIiB0byAibXB4X2JvdW5kMTI4Ii4KLQkqIHB5dGhvbi9saWIvZ2RiL3By aW50aW5nLnB5IChfYnVpbHRpbl9wcmV0dHlfcHJpbnRlcnMpOiBOZXcgZ2xvYmFsLAotCXJlZ2lz dGVyZWQgYXMgZ2xvYmFsICJidWlsdGluIiBwcmludGVyLgotCShhZGRfYnVpbHRpbl9wcmV0dHlf cHJpbnRlcik6IE5ldyBmdW5jdGlvbi4KLQkqIGRhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluIChQ WVRIT05fRklMRV9MSVNUKTogVXBkYXRlLCBhbmQgYWRkCi0JZ2RiL3ByaW50ZXIvX19pbml0X18u cHkuCi0tLS0KLSBnZGIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxNSArKysrKysrKysKLSBnZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4gICAgICAgICAg ICAgICAgfCAgNSArLS0KLSBnZGIvcHl0aG9uL2xpYi9nZGIvX19pbml0X18ucHkgICAgICAgICAg ICAgICAgfCAgMyArLQotIGdkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVy cy5weSB8IDQ1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGdkYi9weXRob24vbGliL2dk Yi9wcmludGVyL19faW5pdF9fLnB5ICAgICAgICB8IDE0ICsrKysrKysrKwotIGdkYi9weXRob24v bGliL2dkYi9wcmludGVyL2JvdW5kX3JlZ2lzdGVycy5weSB8IDM2ICsrKysrKysrKysrKysrKysr KysrKwotIGdkYi9weXRob24vbGliL2dkYi9wcmludGluZy5weSAgICAgICAgICAgICAgICB8IDE0 ICsrKysrKysrKwotIDcgZmlsZXMgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRp b25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IGdkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2Jv dW5kX3JlZ2lzdGVycy5weQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvcHl0aG9uL2xpYi9nZGIv cHJpbnRlci9fX2luaXRfXy5weQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvcHl0aG9uL2xpYi9n ZGIvcHJpbnRlci9ib3VuZF9yZWdpc3RlcnMucHkKLQotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMj IGIvZ2RiL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxOCBAQAotKzIwMTQtMTAtMTUgIERvdWcgRXZh bnMgIDxkamVAZ29vZ2xlLmNvbT4KLSsJICAgIFdhbGZyZWQgVGVkZXNjaGkgIDx3YWxmcmVkLnRl ZGVzY2hpQGludGVsLmNvbT4KLSsKLSsJUFIgcHl0aG9uLzE3MzY0Ci0rCSogcHl0aG9uL2xpYi9n ZGIvX19pbml0X18ucHkgKHBhY2thZ2VzKTogQWRkICJwcmludGVyIi4KLSsJKiBweXRob24vbGli L2dkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVycy5weTogTW92ZWQgdG8gLi4uCi0rCSogcHl0aG9u L2xpYi9nZGIvcHJpbnRlci9ib3VuZF9yZWdpc3RlcnMucHk6IC4uLiBoZXJlLgotKwlBZGQgcHJp bnRlciB0byBnbG9iYWwgc2V0IG9mIGJ1aWx0aW4gcHJpbnRlcnMuICBSZW5hbWUgcHJpbnRlciBm cm9tCi0rCSJib3VuZCIgdG8gIm1weF9ib3VuZDEyOCIuCi0rCSogcHl0aG9uL2xpYi9nZGIvcHJp bnRpbmcucHkgKF9idWlsdGluX3ByZXR0eV9wcmludGVycyk6IE5ldyBnbG9iYWwsCi0rCXJlZ2lz dGVyZWQgYXMgZ2xvYmFsICJidWlsdGluIiBwcmludGVyLgotKwkoYWRkX2J1aWx0aW5fcHJldHR5 X3ByaW50ZXIpOiBOZXcgZnVuY3Rpb24uCi0rCSogZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4g KFBZVEhPTl9GSUxFX0xJU1QpOiBVcGRhdGUsIGFuZCBhZGQKLSsJZ2RiL3ByaW50ZXIvX19pbml0 X18ucHkuCi0rCi0gMjAxNC0xMC0wMSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4K LSAKLSAJKiBmZWF0dXJlcy9hYXJjaDY0LWNvcmUueG1sIChjcHNyKTogQ2hhbmdlIGJhY2sgdG8g MzItYml0LgotLS0tIGEvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi0rKysgYi9nZGIv ZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KLUBAIC02NCw3ICs2NCw2IEBAIFBZVEhPTl9GSUxF X0xJU1QgPSBcCi0gCWdkYi9wcmludGluZy5weSBcCi0gCWdkYi9wcm9tcHQucHkgXAotIAlnZGIv eG1ldGhvZC5weSBcCi0tCWdkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVycy5weSBcCi0gCWdkYi9j b21tYW5kL19faW5pdF9fLnB5IFwKLSAJZ2RiL2NvbW1hbmQveG1ldGhvZHMucHkgXAotIAlnZGIv Y29tbWFuZC9mcmFtZV9maWx0ZXJzLnB5IFwKLUBAIC03Myw3ICs3Miw5IEBAIFBZVEhPTl9GSUxF X0xJU1QgPSBcCi0gCWdkYi9jb21tYW5kL3Byb21wdC5weSBcCi0gCWdkYi9jb21tYW5kL2V4cGxv cmUucHkgXAotIAlnZGIvZnVuY3Rpb24vX19pbml0X18ucHkgXAotLQlnZGIvZnVuY3Rpb24vc3Ry Zm5zLnB5Ci0rCWdkYi9mdW5jdGlvbi9zdHJmbnMucHkgXAotKwlnZGIvcHJpbnRlci9fX2luaXRf Xy5weSBcCi0rCWdkYi9wcmludGVyL2JvdW5kX3JlZ2lzdGVycy5weQotIAotIEBIQVZFX1BZVEhP Tl9UUlVFQFBZVEhPTl9GSUxFUyA9ICQoUFlUSE9OX0ZJTEVfTElTVCkKLSBASEFWRV9QWVRIT05f RkFMU0VAUFlUSE9OX0ZJTEVTID0KLS0tLSBhL2dkYi9weXRob24vbGliL2dkYi9fX2luaXRfXy5w eQotKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL19faW5pdF9fLnB5Ci1AQCAtODEsNyArODEsOCBA QCBQWVRIT05ESVIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkK LSAKLSBwYWNrYWdlcyA9IFsKLSAgICAgJ2Z1bmN0aW9uJywKLS0gICAgJ2NvbW1hbmQnCi0rICAg ICdjb21tYW5kJywKLSsgICAgJ3ByaW50ZXInCi0gXQotIAotICMgcGtndXRpbC5pdGVyX21vZHVs ZXMgaXMgbm90IGF2YWlsYWJsZSBwcmlvciB0byBQeXRob24gMi42LiAgSW5zdGVhZCwKLS0tLSBh L2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVycy5weQotKysrIC9kZXYv bnVsbAotQEAgLTEsNDUgKzAsMCBAQAotLSMgUHJldHR5LXByaW50ZXIgdXRpbGl0aWVzLgotLSMg Q29weXJpZ2h0IChDKSAyMDEzLTIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0t Ci0tIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQotLSMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLS0jIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0tIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotLSMKLS0jIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotLSMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLS0j IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKLS0jIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0t IwotLSMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKLS0jIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotLQotLWltcG9ydCBnZGIucHJpbnRpbmcK LS0KLS1jbGFzcyBCb3VuZFByaW50ZXI6Ci0tICAgICIiIkFkZHMgc2l6ZSBmaWVsZCB0byBhIF9y YXdib3VuZDEyOCB0eXBlLiIiIgotLQotLSAgICBkZWYgX19pbml0X18gKHNlbGYsIHZhbCk6Ci0t ICAgICAgICBzZWxmLnZhbCA9IHZhbAotLQotLSAgICBkZWYgdG9fc3RyaW5nIChzZWxmKToKLS0g ICAgICAgIHVwcGVyID0gc2VsZi52YWxbInVib3VuZCJdCi0tICAgICAgICBsb3dlciA9IHNlbGYu dmFsWyJsYm91bmQiXQotLSAgICAgICAgc2l6ZSAgPSAobG9uZykgKCh1cHBlcikgLSAobG93ZXIp KQotLSAgICAgICAgaWYgc2l6ZSA+IC0xOgotLSAgICAgICAgICAgIHNpemUgPSBzaXplICsgMQot LSAgICAgICAgcmVzdWx0ID0gJ3tsYm91bmQgPSAlcywgdWJvdW5kID0gJXN9IDogc2l6ZSAlcycg JSAobG93ZXIsIHVwcGVyLCBzaXplKQotLSAgICAgICAgcmV0dXJuIHJlc3VsdAotLQotLSMgVGhl cmUgYXJlIHR3byBwYXR0ZXJuIG1hdGNoaW5nIHVzZWQ6IGZpcnN0IG9uZSBpcyByZWxhdGVkIHRv IGEgbGlicmFyeQotLSMgc2Vjb25kIGlzIHJlbGF0ZWQgdG8gdGhlIHR5cGUuIFNpbmNlIHdlIGFy ZSBkaXNwbGF5aW5nIGEgcmVnaXN0ZXIgYWxsCi0tIyBsaWJyYXJpZXMgYXJlIGFjY2VwdGVkLiBU eXBlIHRvIGJlIHByb2Nlc3NlZCBpcyB0aGUgc2FtZSBwcmVzZW50Ci0tIyBpbiB0aGUgeG1sIGZp bGUuCi0tCi0tZGVmIGJ1aWxkX3ByZXR0eV9wcmludGVyICgpOgotLSAgICBwcCA9IGdkYi5wcmlu dGluZy5SZWdleHBDb2xsZWN0aW9uUHJldHR5UHJpbnRlciAoIi4qIikKLS0gICAgcHAuYWRkX3By aW50ZXIgKCdib3VuZCcsICdeX19nZGJfYnVpbHRpbl90eXBlX2JvdW5kMTI4JywgQm91bmRQcmlu dGVyKQotLSAgICByZXR1cm4gcHAKLS0KLS1nZGIucHJpbnRpbmcucmVnaXN0ZXJfcHJldHR5X3By aW50ZXIgKGdkYi5jdXJyZW50X29iamZpbGUgKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBidWlsZF9wcmV0dHlfcHJpbnRlciAoKSkKLS0tLSAvZGV2L251bGwKLSsr KyBiL2dkYi9weXRob24vbGliL2dkYi9wcmludGVyL19faW5pdF9fLnB5Ci1AQCAtMCwwICsxLDE0 IEBACi0rIyBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu Ci0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotLS0tIC9kZXYvbnVsbAotKysrIGIv Z2RiL3B5dGhvbi9saWIvZ2RiL3ByaW50ZXIvYm91bmRfcmVnaXN0ZXJzLnB5Ci1AQCAtMCwwICsx LDM2IEBACi0rIyBQcmV0dHktcHJpbnRlcnMgZm9yIGJvdW5kcyByZWdpc3RlcnMuCi0rIyBDb3B5 cmlnaHQgKEMpIDIwMTMtMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0r IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0raW1wb3J0IGdkYi5wcmludGluZwotKwot K2NsYXNzIE1weEJvdW5kMTI4UHJpbnRlcjoKLSsgICAgIiIiQWRkcyBzaXplIGZpZWxkIHRvIGEg bXB4IF9fZ2RiX2J1aWx0aW5fdHlwZV9ib3VuZDEyOCB0eXBlLiIiIgotKwotKyAgICBkZWYgX19p bml0X18gKHNlbGYsIHZhbCk6Ci0rICAgICAgICBzZWxmLnZhbCA9IHZhbAotKwotKyAgICBkZWYg dG9fc3RyaW5nIChzZWxmKToKLSsgICAgICAgIHVwcGVyID0gc2VsZi52YWxbInVib3VuZCJdCi0r ICAgICAgICBsb3dlciA9IHNlbGYudmFsWyJsYm91bmQiXQotKyAgICAgICAgc2l6ZSAgPSAobG9u ZykgKCh1cHBlcikgLSAobG93ZXIpKQotKyAgICAgICAgaWYgc2l6ZSA+IC0xOgotKyAgICAgICAg ICAgIHNpemUgPSBzaXplICsgMQotKyAgICAgICAgcmVzdWx0ID0gJ3tsYm91bmQgPSAlcywgdWJv dW5kID0gJXN9IDogc2l6ZSAlcycgJSAobG93ZXIsIHVwcGVyLCBzaXplKQotKyAgICAgICAgcmV0 dXJuIHJlc3VsdAotKwotK2dkYi5wcmludGluZy5hZGRfYnVpbHRpbl9wcmV0dHlfcHJpbnRlciAo J21weF9ib3VuZDEyOCcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnXl9fZ2RiX2J1aWx0aW5fdHlwZV9ib3VuZDEyOCcsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNcHhCb3VuZDEyOFByaW50ZXIpCi0tLS0gYS9nZGIvcHl0aG9u L2xpYi9nZGIvcHJpbnRpbmcucHkKLSsrKyBiL2dkYi9weXRob24vbGliL2dkYi9wcmludGluZy5w eQotQEAgLTI2MywzICsyNjMsMTcgQEAgY2xhc3MgRmxhZ0VudW1lcmF0aW9uUHJpbnRlcihQcmV0 dHlQcmludGVyKToKLSAgICAgICAgICAgICByZXR1cm4gX0VudW1JbnN0YW5jZShzZWxmLmVudW1l cmF0b3JzLCB2YWwpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHJldHVybiBOb25lCi0r Ci0rCi0rIyBCdWlsdGluIHByZXR0eS1wcmludGVycy4KLSsjIFRoZSBzZXQgaXMgZGVmaW5lZCBh cyBlbXB0eSwgYW5kIGZpbGVzIGluIHByaW50aW5nLyoucHkgYWRkIHRoZWlyIHByaW50ZXJzCi0r IyB0byB0aGlzIHdpdGggYWRkX2J1aWx0aW5fcHJldHR5X3ByaW50ZXIuCi0rCi0rX2J1aWx0aW5f cHJldHR5X3ByaW50ZXJzID0gUmVnZXhwQ29sbGVjdGlvblByZXR0eVByaW50ZXIoImJ1aWx0aW4i KQotKwotK3JlZ2lzdGVyX3ByZXR0eV9wcmludGVyKE5vbmUsIF9idWlsdGluX3ByZXR0eV9wcmlu dGVycykKLSsKLSsjIEFkZCBhIGJ1aWx0aW4gcHJldHR5LXByaW50ZXIuCi0rCi0rZGVmIGFkZF9i dWlsdGluX3ByZXR0eV9wcmludGVyKG5hbWUsIHJlZ2V4cCwgcHJpbnRlcik6Ci0rICAgIF9idWls dGluX3ByZXR0eV9wcmludGVycy5hZGRfcHJpbnRlcihuYW1lLCByZWdleHAsIHByaW50ZXIpCi0t LSAKLTEuOS4zCi0KLUZyb20gOTJlMDhjMGQxOTE5MDhiNzMxNTYwMzU1ODIyNmM3Y2EwYmZhODZh NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBlZHJvIEFsdmVzIDxwYWx2ZXNAcmVk aGF0LmNvbT4KLURhdGU6IEZyaSwgMTcgT2N0IDIwMTQgMTM6NDk6MjggKzAxMDAKLVN1YmplY3Q6 IFtQQVRDSCAzMi8zN10gTWFrZSBjb21tb24gY29kZSBoYW5kbGUgdGFyZ2V0X3Rlcm1pbmFsXyog aWRlbXBvdGVuY3kKLQotSSBmb3VuZCBhIHBsYWNlIHRoYXQgc2hvdWxkIGJlIGdpdmluZyBiYWNr IHRoZSB0ZXJtaW5hbCB0byB0aGUgdGFyZ2V0LAotYnV0IG9ubHkgaWYgdGhlIHRhcmdldCB3YXMg YWxyZWFkeSBvd25pbmcgaXQuICBTbyBJIG5lZWQgdG8gYWRkIGEKLWdldHRlciBmb3Igd2hvIG93 bnMgdGhlIHRlcm1pbmFsLgotCi1UaGUgdHJvdWJsZSBpcyB0aGF0IHNldmVyYWwgcGxhY2VzL3Rh cmdldCBoYXZlIHRoZWlyIG93biBnbG9iYWxzIHRvCi10cmFjayB0aGlzIHN0YXRlOgotCi0gLSBp bmZsb3cuYzp0ZXJtaW5hbF9pc19vdXJzCi0gLSByZW1vdGUuYzpyZW1vdGVfYXN5bmNfdGVybWlu YWxfb3Vyc19wCi0gLSBsaW51eC1uYXQuYzphc3luY190ZXJtaW5hbF9pc19vdXJzCi0gLSBnbzMy LW5hdC5jOnRlcm1pbmFsX2lzX291cnMKLQotV2hpbGUgb25lIG1pZ2h0IHRoaW5rIG9mIGFkZGlu ZyBhIG5ldyB0YXJnZXRfb3BzIG1ldGhvZCB0byBxdWVyeSB0aGlzLAotY29uY2VwdHVhbGx5LCB0 aGlzIHN0YXRlIGlzbid0IHJlYWxseSBwYXJ0IG9mIGEgcGFydGljdWxhciB0YXJnZXRfb3BzLgot Q29uc2lkZXJpbmcgbXVsdGktdGFyZ2V0LCB0aGUgY29yZSBzaG91bGRuJ3QgaGF2ZSB0byBhc2sg YWxsIHRhcmdldHMKLXRvIGtub3cgd2hldGhlciBpdCdzIEdEQiB0aGF0IG93bnMgdGhlIHRlcm1p bmFsLiAgVGhlcmUncyBvbmx5IG9uZSBHREIKLShvciByYXRoZXIsIG9ubHkgb25lIHRvcCBsZXZl bCBpbnRlcnByZXRlcikuCi0KLVNvIHdoYXQgdGhpcyBjb21tZW50IGRvZXMgaXMgYWRkIGEgbmV3 IGdsb2JhbCB0aGF0IGlzIHRyYWNrZWQgYnkgdGhlCi1jb3JlIGluc3RlYWQuICBBIHN1YnNlcXVl bnQgcGFzcyBtYXkgbGF0ZXIgcmVtb3ZlIHRoZSBvdGhlciBnbG9iYWxzLgotCi1UZXN0ZWQgb24g eDg2XzY0IEZlZG9yYSAyMCwgbmF0aXZlIGFuZCBnZGJzZXJ2ZXIuCi0KLWdkYi8KLTIwMTQtMTAt MTcgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0KLQkqIHRhcmdldC5jIChlbnVt IHRlcm1pbmFsX3N0YXRlKTogTmV3IGVudW0uCi0JKHRlcm1pbmFsX3N0YXRlKTogTmV3IGdsb2Jh bC4KLQkodGFyZ2V0X3Rlcm1pbmFsX2luaXQpOiBOZXcgZnVuY3Rpb24uCi0JKHRhcmdldF90ZXJt aW5hbF9pbmZlcmlvcik6IFNraXAgaWYgaW5mZXJpb3IgYWxyZWFkeSBvd25zIHRoZQotCXRlcm1p bmFsLgotCSh0YXJnZXRfdGVybWluYWxfb3VycywgdGFyZ2V0X3Rlcm1pbmFsX291cnNfZm9yX291 dHB1dCk6IE5ldwotCWZ1bmN0aW9ucy4KLQkqIHRhcmdldC5oICh0YXJnZXRfdGVybWluYWxfaW5p dCk6IENvbnZlcnQgdG8gZnVuY3Rpb24gcHJvdG90eXBlLgotCSh0YXJnZXRfdGVybWluYWxfb3Vy c19mb3Jfb3V0cHV0KTogQ29udmVydCB0byBmdW5jdGlvbiBwcm90b3R5cGUKLQlhbmQgdHdlYWsg Y29tbWVudC4KLQkodGFyZ2V0X3Rlcm1pbmFsX291cnMpOiBDb252ZXJ0IHRvIGZ1bmN0aW9uIHBy b3RvdHlwZSBhbmQgdHdlYWsKLQljb21tZW50LgotCSogd2luZG93cy1uYXQuYyAoZG9faW5pdGlh bF93aW5kb3dzX3N0dWZmKTogQ2FsbAotCXRhcmdldF90ZXJtaW5hbF9pbml0IGluc3RlYWQgb2Yg Y2hpbGRfdGVybWluYWxfaW5pdF93aXRoX3BncnAuCi0tLS0KLSBnZGIvQ2hhbmdlTG9nICAgICB8 IDE3ICsrKysrKysrKysrKysrKysrCi0gZ2RiL3RhcmdldC5jICAgICAgfCA1NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gZ2RiL3Rhcmdl dC5oICAgICAgfCAyMCArKysrKysrLS0tLS0tLS0tLS0tLQotIGdkYi93aW5kb3dzLW5hdC5jIHwg IDIgKy0KLSA0IGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygt KQotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSwzICsx LDIwIEBACi0rMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSsK LSsJKiB0YXJnZXQuYyAoZW51bSB0ZXJtaW5hbF9zdGF0ZSk6IE5ldyBlbnVtLgotKwkodGVybWlu YWxfc3RhdGUpOiBOZXcgZ2xvYmFsLgotKwkodGFyZ2V0X3Rlcm1pbmFsX2luaXQpOiBOZXcgZnVu Y3Rpb24uCi0rCSh0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IpOiBTa2lwIGlmIGluZmVyaW9yIGFs cmVhZHkgb3ducyB0aGUKLSsJdGVybWluYWwuCi0rCSh0YXJnZXRfdGVybWluYWxfb3VycywgdGFy Z2V0X3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCk6IE5ldwotKwlmdW5jdGlvbnMuCi0rCSogdGFy Z2V0LmggKHRhcmdldF90ZXJtaW5hbF9pbml0KTogQ29udmVydCB0byBmdW5jdGlvbiBwcm90b3R5 cGUuCi0rCSh0YXJnZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0KTogQ29udmVydCB0byBmdW5j dGlvbiBwcm90b3R5cGUKLSsJYW5kIHR3ZWFrIGNvbW1lbnQuCi0rCSh0YXJnZXRfdGVybWluYWxf b3Vycyk6IENvbnZlcnQgdG8gZnVuY3Rpb24gcHJvdG90eXBlIGFuZCB0d2VhawotKwljb21tZW50 LgotKwkqIHdpbmRvd3MtbmF0LmMgKGRvX2luaXRpYWxfd2luZG93c19zdHVmZik6IENhbGwKLSsJ dGFyZ2V0X3Rlcm1pbmFsX2luaXQgaW5zdGVhZCBvZiBjaGlsZF90ZXJtaW5hbF9pbml0X3dpdGhf cGdycC4KLSsKLSAyMDE0LTEwLTE1ICBEb3VnIEV2YW5zICA8ZGplQGdvb2dsZS5jb20+Ci0gCSAg ICBXYWxmcmVkIFRlZGVzY2hpICA8d2FsZnJlZC50ZWRlc2NoaUBpbnRlbC5jb20+Ci0gCi0tLS0g YS9nZGIvdGFyZ2V0LmMKLSsrKyBiL2dkYi90YXJnZXQuYwotQEAgLTQ4Miw2ICs0ODIsMzUgQEAg dGFyZ2V0X2xvYWQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQotICAgKCpjdXJyZW50X3Rhcmdl dC50b19sb2FkKSAoJmN1cnJlbnRfdGFyZ2V0LCBhcmcsIGZyb21fdHR5KTsKLSB9Ci0gCi0rLyog UG9zc2libGUgdGVybWluYWwgc3RhdGVzLiAgKi8KLSsKLStlbnVtIHRlcm1pbmFsX3N0YXRlCi0r ICB7Ci0rICAgIC8qIFRoZSBpbmZlcmlvcidzIHRlcm1pbmFsIHNldHRpbmdzIGFyZSBpbiBlZmZl Y3QuICAqLwotKyAgICB0ZXJtaW5hbF9pc19pbmZlcmlvciA9IDAsCi0rCi0rICAgIC8qIFNvbWUg b2Ygb3VyIHRlcm1pbmFsIHNldHRpbmdzIGFyZSBpbiBlZmZlY3QsIGVub3VnaCB0byBnZXQKLSsg ICAgICAgcHJvcGVyIG91dHB1dC4gICovCi0rICAgIHRlcm1pbmFsX2lzX291cnNfZm9yX291dHB1 dCA9IDEsCi0rCi0rICAgIC8qIE91ciB0ZXJtaW5hbCBzZXR0aW5ncyBhcmUgaW4gZWZmZWN0LCBm b3Igb3V0cHV0IGFuZCBpbnB1dC4gICovCi0rICAgIHRlcm1pbmFsX2lzX291cnMgPSAyCi0rICB9 OwotKwotK3N0YXRpYyBlbnVtIHRlcm1pbmFsX3N0YXRlIHRlcm1pbmFsX3N0YXRlOwotKwotKy8q IFNlZSB0YXJnZXQuaC4gICovCi0rCi0rdm9pZAotK3RhcmdldF90ZXJtaW5hbF9pbml0ICh2b2lk KQotK3sKLSsgICgqY3VycmVudF90YXJnZXQudG9fdGVybWluYWxfaW5pdCkgKCZjdXJyZW50X3Rh cmdldCk7Ci0rCi0rICB0ZXJtaW5hbF9zdGF0ZSA9IHRlcm1pbmFsX2lzX291cnM7Ci0rfQotKwot Ky8qIFNlZSB0YXJnZXQuaC4gICovCi0rCi0gdm9pZAotIHRhcmdldF90ZXJtaW5hbF9pbmZlcmlv ciAodm9pZCkKLSB7Ci1AQCAtNDkyLDkgKzUyMSwzNiBAQCB0YXJnZXRfdGVybWluYWxfaW5mZXJp b3IgKHZvaWQpCi0gICBpZiAodGFyZ2V0X2Nhbl9hc3luY19wICgpICYmICFzeW5jX2V4ZWN1dGlv bikKLSAgICAgcmV0dXJuOwotIAotKyAgaWYgKHRlcm1pbmFsX3N0YXRlID09IHRlcm1pbmFsX2lz X2luZmVyaW9yKQotKyAgICByZXR1cm47Ci0rCi0gICAvKiBJZiBHREIgaXMgcmVzdW1pbmcgdGhl IGluZmVyaW9yIGluIHRoZSBmb3JlZ3JvdW5kLCBpbnN0YWxsCi0gICAgICBpbmZlcmlvcidzIHRl cm1pbmFsIG1vZGVzLiAgKi8KLSAgICgqY3VycmVudF90YXJnZXQudG9fdGVybWluYWxfaW5mZXJp b3IpICgmY3VycmVudF90YXJnZXQpOwotKyAgdGVybWluYWxfc3RhdGUgPSB0ZXJtaW5hbF9pc19p bmZlcmlvcjsKLSt9Ci0rCi0rLyogU2VlIHRhcmdldC5oLiAgKi8KLSsKLSt2b2lkCi0rdGFyZ2V0 X3Rlcm1pbmFsX291cnMgKHZvaWQpCi0rewotKyAgaWYgKHRlcm1pbmFsX3N0YXRlID09IHRlcm1p bmFsX2lzX291cnMpCi0rICAgIHJldHVybjsKLSsKLSsgICgqY3VycmVudF90YXJnZXQudG9fdGVy bWluYWxfb3VycykgKCZjdXJyZW50X3RhcmdldCk7Ci0rICB0ZXJtaW5hbF9zdGF0ZSA9IHRlcm1p bmFsX2lzX291cnM7Ci0rfQotKwotKy8qIFNlZSB0YXJnZXQuaC4gICovCi0rCi0rdm9pZAotK3Rh cmdldF90ZXJtaW5hbF9vdXJzX2Zvcl9vdXRwdXQgKHZvaWQpCi0rewotKyAgaWYgKHRlcm1pbmFs X3N0YXRlICE9IHRlcm1pbmFsX2lzX2luZmVyaW9yKQotKyAgICByZXR1cm47Ci0rICAoKmN1cnJl bnRfdGFyZ2V0LnRvX3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCkgKCZjdXJyZW50X3RhcmdldCk7 Ci0rICB0ZXJtaW5hbF9zdGF0ZSA9IHRlcm1pbmFsX2lzX291cnNfZm9yX291dHB1dDsKLSB9Ci0g Ci0gc3RhdGljIHZvaWQKLS0tLSBhL2dkYi90YXJnZXQuaAotKysrIGIvZ2RiL3RhcmdldC5oCi1A QCAtMTM1OSwzMSArMTM1OSwyNSBAQCBleHRlcm4gaW50IHRhcmdldF9yZW1vdmVfYnJlYWtwb2lu dCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0gLyogSW5pdGlhbGl6ZSB0aGUgdGVybWluYWwg c2V0dGluZ3Mgd2UgcmVjb3JkIGZvciB0aGUgaW5mZXJpb3IsCi0gICAgYmVmb3JlIHdlIGFjdHVh bGx5IHJ1biB0aGUgaW5mZXJpb3IuICAqLwotIAotLSNkZWZpbmUgdGFyZ2V0X3Rlcm1pbmFsX2lu aXQoKSBcCi0tICAgICAoKmN1cnJlbnRfdGFyZ2V0LnRvX3Rlcm1pbmFsX2luaXQpICgmY3VycmVu dF90YXJnZXQpCi0rZXh0ZXJuIHZvaWQgdGFyZ2V0X3Rlcm1pbmFsX2luaXQgKHZvaWQpOwotIAot IC8qIFB1dCB0aGUgaW5mZXJpb3IncyB0ZXJtaW5hbCBzZXR0aW5ncyBpbnRvIGVmZmVjdC4KLSAg ICBUaGlzIGlzIHByZXBhcmF0aW9uIGZvciBzdGFydGluZyBvciByZXN1bWluZyB0aGUgaW5mZXJp b3IuICAqLwotIAotIGV4dGVybiB2b2lkIHRhcmdldF90ZXJtaW5hbF9pbmZlcmlvciAodm9pZCk7 Ci0gCi0tLyogUHV0IHNvbWUgb2Ygb3VyIHRlcm1pbmFsIHNldHRpbmdzIGludG8gZWZmZWN0LAot LSAgIGVub3VnaCB0byBnZXQgcHJvcGVyIHJlc3VsdHMgZnJvbSBvdXIgb3V0cHV0LAotLSAgIGJ1 dCBkbyBub3QgY2hhbmdlIGludG8gb3Igb3V0IG9mIFJBVyBtb2RlCi0tICAgc28gdGhhdCBubyBp bnB1dCBpcyBkaXNjYXJkZWQuCi0rLyogUHV0IHNvbWUgb2Ygb3VyIHRlcm1pbmFsIHNldHRpbmdz IGludG8gZWZmZWN0LCBlbm91Z2ggdG8gZ2V0IHByb3BlcgotKyAgIHJlc3VsdHMgZnJvbSBvdXIg b3V0cHV0LCBidXQgZG8gbm90IGNoYW5nZSBpbnRvIG9yIG91dCBvZiBSQVcgbW9kZQotKyAgIHNv IHRoYXQgbm8gaW5wdXQgaXMgZGlzY2FyZGVkLiAgVGhpcyBpcyBhIG5vLW9wIGlmIHRlcm1pbmFs X291cnMKLSsgICB3YXMgbW9zdCByZWNlbnRseSBjYWxsZWQuICAqLwotIAotLSAgIEFmdGVyIGRv aW5nIHRoaXMsIGVpdGhlciB0ZXJtaW5hbF9vdXJzIG9yIHRlcm1pbmFsX2luZmVyaW9yCi0tICAg c2hvdWxkIGJlIGNhbGxlZCB0byBnZXQgYmFjayB0byBhIG5vcm1hbCBzdGF0ZSBvZiBhZmZhaXJz LiAgKi8KLS0KLS0jZGVmaW5lIHRhcmdldF90ZXJtaW5hbF9vdXJzX2Zvcl9vdXRwdXQoKSBcCi0t ICAgICAoKmN1cnJlbnRfdGFyZ2V0LnRvX3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCkgKCZjdXJy ZW50X3RhcmdldCkKLStleHRlcm4gdm9pZCB0YXJnZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0 ICh2b2lkKTsKLSAKLSAvKiBQdXQgb3VyIHRlcm1pbmFsIHNldHRpbmdzIGludG8gZWZmZWN0Lgot ICAgIEZpcnN0IHJlY29yZCB0aGUgaW5mZXJpb3IncyB0ZXJtaW5hbCBzZXR0aW5ncwotICAgIHNv IHRoZXkgY2FuIGJlIHJlc3RvcmVkIHByb3Blcmx5IGxhdGVyLiAgKi8KLSAKLS0jZGVmaW5lIHRh cmdldF90ZXJtaW5hbF9vdXJzKCkgXAotLSAgICAgKCpjdXJyZW50X3RhcmdldC50b190ZXJtaW5h bF9vdXJzKSAoJmN1cnJlbnRfdGFyZ2V0KQotK2V4dGVybiB2b2lkIHRhcmdldF90ZXJtaW5hbF9v dXJzICh2b2lkKTsKLSAKLSAvKiBTYXZlIG91ciB0ZXJtaW5hbCBzZXR0aW5ncy4KLSAgICBUaGlz IGlzIGNhbGxlZCBmcm9tIFRVSSBhZnRlciBlbnRlcmluZyBvciBsZWF2aW5nIHRoZSBjdXJzZXMK LS0tLSBhL2dkYi93aW5kb3dzLW5hdC5jCi0rKysgYi9nZGIvd2luZG93cy1uYXQuYwotQEAgLTE3 NDQsNyArMTc0NCw3IEBAIGRvX2luaXRpYWxfd2luZG93c19zdHVmZiAoc3RydWN0IHRhcmdldF9v cHMgKm9wcywgRFdPUkQgcGlkLCBpbnQgYXR0YWNoaW5nKQotICAgICAgY3VycmVudCB0aHJlYWQg dW50aWwgd2UgcmVwb3J0IGFuIGV2ZW50IG91dCBvZiB3aW5kb3dzX3dhaXQuICAqLwotICAgaW5m ZXJpb3JfcHRpZCA9IHBpZF90b19wdGlkIChwaWQpOwotIAotLSAgY2hpbGRfdGVybWluYWxfaW5p dF93aXRoX3BncnAgKHBpZCk7Ci0rICB0YXJnZXRfdGVybWluYWxfaW5pdCAoKTsKLSAgIHRhcmdl dF90ZXJtaW5hbF9pbmZlcmlvciAoKTsKLSAKLSAgIHdpbmRvd3NfaW5pdGlhbGl6YXRpb25fZG9u ZSA9IDA7Ci0tLSAKLTEuOS4zCi0KLUZyb20gMDRmMDUxNTcwMmE2ZTU3MTFkNzEyMDNmY2MwZWE0 ODgxNjFiYTA4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBlZHJvIEFsdmVzIDxw YWx2ZXNAcmVkaGF0LmNvbT4KLURhdGU6IEZyaSwgMTcgT2N0IDIwMTQgMTM6MzE6MjUgKzAxMDAK LVN1YmplY3Q6IFtQQVRDSCAzMy8zN10gUFIgZ2RiLzE3NDcyOiBXaXRoIGFubm90YXRpb25zLCBp bnB1dCB3aGlsZSBleGVjdXRpbmcKLSBpbiB0aGUgZm9yZWdyb3VuZCBjcmFzaGVzIHJlYWRsaW5l L0dEQgotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1KYW4gY2F1Z2h0IGFu IGludGVybWl0dGVudCBHREIgY3Jhc2ggd2l0aCB0aGUgYW5ub3RhMS5leHAgdGVzdDoKLQotIFN0 YXJ0aW5nIHByb2dyYW06IC4uLi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fubm90YTEgXk0KLSBb Li4uXQotIEZBSUw6IGdkYi5iYXNlL2Fubm90YTEuZXhwOiBydW4gdW50aWwgbWFpbiBicmVha3Bv aW50ICh0aW1lb3V0KQotIFsuLi5dCi0gcmVhZGxpbmU6IHJlYWRsaW5lX2NhbGxiYWNrX3JlYWRf Y2hhcigpIGNhbGxlZCB3aXRoIG5vIGhhbmRsZXIhXk0KLSBFUlJPUjogUHJvY2VzcyBubyBsb25n ZXIgZXhpc3RzCi0KLUFsbCB3ZSBuZWVkIHRvIGlzIHRvIGNvbnRpbnVlIHRoZSBpbmZlcmlvciBp biB0aGUgZm9yZWdyb3VuZCwgYW5kIHR5cGUKLWEgY29tbWFuZCB3aGlsZSB0aGUgaW5mZXJpb3Ig aXMgcnVubmluZy4gIEUuZy46Ci0KLSAoZ2RiKSBzZXQgYW5ub3RhdGUgMgotCi0g4paS4paScHJl LXByb21wdAotIChnZGIpCi0g4paS4paScHJvbXB0Ci0gYwotCi0g4paS4paScG9zdC1wcm9tcHQK LSBDb250aW51aW5nLgotCi0g4paS4paSc3RhcnRpbmcKLQotIOKWkuKWkmZyYW1lcy1pbnZhbGlk Ci0KLSAqaW5mZXJpb3IgaXMgcnVubmluZyBub3cqCi0KLSBwIDE8cmV0PgotCi0gcmVhZGxpbmU6 IHJlYWRsaW5lX2NhbGxiYWNrX3JlYWRfY2hhcigpIGNhbGxlZCB3aXRoIG5vIGhhbmRsZXIhCi0g QWJvcnRlZCAoY29yZSBkdW1wZWQpCi0gJAotCi0KLVdoZW4gd2UgcnVuIGEgZm9yZWdyb3VuZCBl eGVjdXRpb24gY29tbWFuZCB3ZSBjYWxsCi10YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgdG8gc3Rv cCBHREIgZnJvbSBwcm9jZXNzaW5nIGlucHV0LCBhbmQgdG8gcHV0Ci10aGUgaW5mZXJpb3IncyB0 ZXJtaW5hbCBzZXR0aW5ncyBpbiBlZmZlY3QuICBUaGVuIHdlIHRlbGwgcmVhZGxpbmUgdG8KLWhp ZGUgdGhlIHByb21wdCB3aXRoIGRpc3BsYXlfZ2RiX3Byb21wdCwgd2hpY2ggY2xlYXJzIHJlYWRs aW5lJ3MgaW5wdXQKLWNhbGxiYWNrIHRvby4gIFdoZW4gdGhlIHRhcmdldCBzdG9wcywgd2UgY2Fs bCB0YXJnZXRfdGVybWluYWxfb3VycywKLXdoaWNoIHJlLWluc3RhbGxzIHN0ZGluIGluIHRoZSBl dmVudCBsb29wLCBhbmQgdGhlbiB3ZSByZWRpc3BsYXkgdGhlCi1wcm9tcHQsIHJlaW5zdGFsbGlu ZyB0aGUgcmVhZGxpbmUgY2FsbGJhY2tzLgotCi1Ib3dldmVyLCB3aGVuIGFubm90YXRpb25zIGFy ZSBpbiBlZmZlY3QsIHRoZSAiZnJhbWVzLWludmFsaWQiCi1hbm5vdGF0aW9uIGNvZGUgY2FsbHMg dGFyZ2V0X3Rlcm1pbmFsX291cnMgYWZ0ZXIgJ3Jlc3VtZScgaGFkIGFscmVhZHkKLWNhbGxlZCB0 YXJnZXRfdGVybWluYWxfaW5mZXJpb3I6Ci0KLSAodG9wLWdkYikgYnQKLSAjMCAgMHgwMDAwMDAw MDAwNTZiODJmIGluIGFubm90YXRlX2ZyYW1lc19pbnZhbGlkICgpIGF0IGdkYi9hbm5vdGF0ZS5j OjIxOQotICMxICAweDAwMDAwMDAwMDA3MmU2Y2MgaW4gcmVpbml0X2ZyYW1lX2NhY2hlICgpIGF0 IGdkYi9mcmFtZS5jOjE3MDUKLSAjMiAgMHgwMDAwMDAwMDAwNTk0YmI5IGluIHJlZ2lzdGVyc19j aGFuZ2VkX3B0aWQgKHB0aWQ9Li4uKSBhdCBnZGIvcmVnY2FjaGUuYzo2MTIKLSAjMyAgMHgwMDAw MDAwMDAwNjRjY2ExIGluIHRhcmdldF9yZXN1bWUgKHB0aWQ9Li4uLCBzdGVwPTEsIHNpZ25hbD1H REJfU0lHTkFMXzApIGF0IGdkYi90YXJnZXQuYzoyMTM2Ci0gIzQgIDB4MDAwMDAwMDAwMDVmNTdh ZiBpbiByZXN1bWUgKHN0ZXA9MSwgc2lnPUdEQl9TSUdOQUxfMCkgYXQgZ2RiL2luZnJ1bi5jOjIy NjMKLSAjNSAgMHgwMDAwMDAwMDAwNWY2MDUxIGluIHByb2NlZWQgKGFkZHI9MTg0NDY3NDQwNzM3 MDk1NTE2MTUsIHNpZ2duYWw9R0RCX1NJR05BTF9ERUZBVUxULCBzdGVwPTEpIGF0IGdkYi9pbmZy dW4uYzoyNjEzCi0KLUFuZCB0aGVuIG9uY2Ugd2UgaGlkZSB0aGUgcHJvbXB0IGFuZCByZW1vdmUg cmVhZGxpbmUncyBpbnB1dCBoYW5kbGVyCi1jYWxsYmFjaywgd2UncmUgaW4gYSBiYWQgc3RhdGUu ICBXZSBlbmQgdXAgd2l0aCB0aGUgdGFyZ2V0IHJ1bm5pbmcKLXN1cHBvc2VkbHkgaW4gdGhlIGZv cmVncm91bmQsIGJ1dCB3aXRoIHN0ZGluIHN0aWxsIGluc3RhbGxlZCBvbiB0aGUKLWV2ZW50IGxv b3AuICBBbnkgaW5wdXQgdGhlbiBjYWxscyBpbnRvIHJlYWRsaW5lLCB3aGljaCBhYm9ydHMgYmVj YXVzZQotbm8gcmxfbGluZWZ1bmMgY2FsbGJhY2sgaGFuZGxlciBpcyBpbnN0YWxsZWQ6Ci0KLSBQ cm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdBQlJULCBBYm9ydGVkLgotIDB4MDAwMDAwM2IzNmEz NTg3NyBpbiBfX0dJX3JhaXNlIChzaWc9c2lnQGVudHJ5PTYpIGF0IC4uL25wdGwvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvcmFpc2UuYzo1NgotIDU2ICAgICAgICByZXR1cm4gSU5MSU5FX1NZU0NB TEwgKHRna2lsbCwgMywgcGlkLCBzZWxmdGlkLCBzaWcpOwotCi0gKHRvcC1nZGIpIGJ0Ci0gIzAg IDB4MDAwMDAwM2IzNmEzNTg3NyBpbiBfX0dJX3JhaXNlIChzaWc9c2lnQGVudHJ5PTYpIGF0IC4u L25wdGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmFpc2UuYzo1NgotICMxICAweDAwMDAwMDNi MzZhMzZmNjggaW4gX19HSV9hYm9ydCAoKSBhdCBhYm9ydC5jOjg5Ci0gRHVyaW5nIHN5bWJvbCBy ZWFkaW5nLCBkZWJ1ZyBpbmZvIGdpdmVzIHNvdXJjZSA5IGluY2x1ZGVkIGZyb20gZmlsZSBhdCB6 ZXJvIGxpbmUgMC4KLSBEdXJpbmcgc3ltYm9sIHJlYWRpbmcsIGRlYnVnIGluZm8gZ2l2ZXMgY29t bWFuZC1saW5lIG1hY3JvIGRlZmluaXRpb24gd2l0aCBub24temVybyBsaW5lIDE5OiBfU1REQ19Q UkVERUZfSCAxLgotICMyICAweDAwMDAwMDAwMDA3ODRhMjUgaW4gcmxfY2FsbGJhY2tfcmVhZF9j aGFyICgpIGF0IHNyYy9yZWFkbGluZS9jYWxsYmFjay5jOjExNgotICMzICAweDAwMDAwMDAwMDA2 MTkxMTEgaW4gcmxfY2FsbGJhY2tfcmVhZF9jaGFyX3dyYXBwZXIgKGNsaWVudF9kYXRhPTB4MCkg YXQgc3JjL2dkYi9ldmVudC10b3AuYzoxNjcKLSAjNCAgMHgwMDAwMDAwMDAwNjE5NGU3IGluIHN0 ZGluX2V2ZW50X2hhbmRsZXIgKGVycm9yPTAsIGNsaWVudF9kYXRhPTB4MCkgYXQgc3JjL2dkYi9l dmVudC10b3AuYzozNzMKLSAjNSAgMHgwMDAwMDAwMDAwNjE4MGRhIGluIGhhbmRsZV9maWxlX2V2 ZW50IChkYXRhPS4uLikgYXQgc3JjL2dkYi9ldmVudC1sb29wLmM6NzYzCi0gIzYgIDB4MDAwMDAw MDAwMDYxNzVjMSBpbiBwcm9jZXNzX2V2ZW50ICgpIGF0IHNyYy9nZGIvZXZlbnQtbG9vcC5jOjM0 MAotICM3ICAweDAwMDAwMDAwMDA2MTc2ODggaW4gZ2RiX2RvX29uZV9ldmVudCAoKSBhdCBzcmMv Z2RiL2V2ZW50LWxvb3AuYzo0MDQKLSAjOCAgMHgwMDAwMDAwMDAwNjE3NmQ4IGluIHN0YXJ0X2V2 ZW50X2xvb3AgKCkgYXQgc3JjL2dkYi9ldmVudC1sb29wLmM6NDI5Ci0gIzkgIDB4MDAwMDAwMDAw MDYxOTE0MyBpbiBjbGlfY29tbWFuZF9sb29wIChkYXRhPTB4MCkgYXQgc3JjL2dkYi9ldmVudC10 b3AuYzoxODIKLSAjMTAgMHgwMDAwMDAwMDAwNjBmNGM4IGluIGN1cnJlbnRfaW50ZXJwX2NvbW1h bmRfbG9vcCAoKSBhdCBzcmMvZ2RiL2ludGVycHMuYzozMTgKLSAjMTEgMHgwMDAwMDAwMDAwNjEw NjkxIGluIGNhcHR1cmVkX2NvbW1hbmRfbG9vcCAoZGF0YT0weDApIGF0IHNyYy9nZGIvbWFpbi5j OjMyMwotICMxMiAweDAwMDAwMDAwMDA2MGMzODUgaW4gY2F0Y2hfZXJyb3JzIChmdW5jPTB4NjEw Njc2IDxjYXB0dXJlZF9jb21tYW5kX2xvb3A+LCBmdW5jX2FyZ3M9MHgwLCBlcnJzdHJpbmc9MHg5 MDAyNDEgIiIsIG1hc2s9UkVUVVJOX01BU0tfQUxMKQotICAgICBhdCBzcmMvZ2RiL2V4Y2VwdGlv bnMuYzoyMzcKLSAjMTMgMHgwMDAwMDAwMDAwNjExYjhmIGluIGNhcHR1cmVkX21haW4gKGRhdGE9 MHg3ZmZmZmZmZmQ3YjApIGF0IHNyYy9nZGIvbWFpbi5jOjExNTEKLSAjMTQgMHgwMDAwMDAwMDAw NjBjMzg1IGluIGNhdGNoX2Vycm9ycyAoZnVuYz0weDYxMGE4ZSA8Y2FwdHVyZWRfbWFpbj4sIGZ1 bmNfYXJncz0weDdmZmZmZmZmZDdiMCwgZXJyc3RyaW5nPTB4OTAwMjQxICIiLCBtYXNrPVJFVFVS Tl9NQVNLX0FMTCkKLSAgICAgYXQgc3JjL2dkYi9leGNlcHRpb25zLmM6MjM3Ci0gIzE1IDB4MDAw MDAwMDAwMDYxMWJiOCBpbiBnZGJfbWFpbiAoYXJncz0weDdmZmZmZmZmZDdiMCkgYXQgc3JjL2dk Yi9tYWluLmM6MTE1OQotICMxNiAweDAwMDAwMDAwMDA0NWVmNTcgaW4gbWFpbiAoYXJnYz0zLCBh cmd2PTB4N2ZmZmZmZmZkOGI4KSBhdCBzcmMvZ2RiL2dkYi5jOjMyCi0KLVRoZSBmaXggaXMgdG8g bWFrZSB0aGUgYW5ub3RhdGlvbiBjb2RlIGNhbGwgdGFyZ2V0X3Rlcm1pbmFsX2luZmVyaW9yCi1h Z2FpbiBhZnRlciBwcmludGluZywgaWYgdGhlIGluZmVyaW9yJ3Mgc2V0dGluZ3Mgd2VyZSBpbiBl ZmZlY3QuCi0KLVdoaWxlIGF0IGl0LCB3aGVuIHdlJ3JlIGRvaW5nIG91dHB1dCBvbmx5LCBpbnN0 ZWFkIG9mCi10YXJnZXRfdGVybWluYWxfb3Vycywgd2Ugc2hvdWxkIGNhbGwgdGFyZ2V0X3Rlcm1p bmFsX291cnNfZm9yX291dHB1dC4KLVRoZSBsYXR0ZXIgZG9lc24ndCBhY3R1YWxseSByZW1vdmUg c3RkaW4gZnJvbSB0aGUgZXZlbnQgbG9vcCwgYW5kIGFsc28KLWxlYXZlcyBTSUdJTlQgZm9yd2Fy ZGVkIHRvIHRoZSB0YXJnZXQuCi0KLU5ldyB0ZXN0IGluY2x1ZGVkLgotCi1UZXN0ZWQgb24geDg2 XzY0IEZlZG9yYSAyMCwgbmF0aXZlIGFuZCBnZGJzZXJ2ZXIuCi0KLWdkYi8KLTIwMTQtMTAtMTcg IFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0KLQlQUiBnZGIvMTc0NzIKLQkqIGFu bm90YXRlLmMgKGFubm90YXRlX2JyZWFrcG9pbnRzX2ludmFsaWQpOiBVc2UKLQl0YXJnZXRfdGVy bWluYWxfb3VyX2Zvcl9vdXRwdXQgaW5zdGVhZCBvZiB0YXJnZXRfdGVybWluYWxfb3Vycy4KLQlH aXZlIGJhY2sgdGhlIHRlcm1pbmFsIHRvIHRoZSB0YXJnZXQuCi0JKGFubm90YXRlX2ZyYW1lc19p bnZhbGlkKTogTGlrZXdpc2UuCi0KLWdkYi90ZXN0c3VpdGUvCi0yMDE0LTEwLTE3ICBQZWRybyBB bHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotCi0JUFIgZ2RiLzE3NDcyCi0JKiBnZGIuYmFzZS9h bm5vdGEtaW5wdXQtd2hpbGUtcnVubmluZy5jOiBOZXcgZmlsZS4KLQkqIGdkYi5iYXNlL2Fubm90 YS1pbnB1dC13aGlsZS1ydW5uaW5nLmV4cDogTmV3IGZpbGUuCi0tLS0KLSBnZGIvQ2hhbmdlTG9n ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArKwotIGdkYi9hbm5v dGF0ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICsrKy0KLSBn ZGIvdGFyZ2V0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCAr KwotIGdkYi90YXJnZXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA1ICsKLSBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNiArCi0gLi4uL2dkYi5iYXNlL2Fubm90YS1pbnB1dC13aGlsZS1ydW5uaW5nLmMgICAg ICAgICAgfCAgMjUgKysrKwotIC4uLi9nZGIuYmFzZS9hbm5vdGEtaW5wdXQtd2hpbGUtcnVubmlu Zy5leHAgICAgICAgIHwgMTMwICsrKysrKysrKysrKysrKysrKysrKwotIDcgZmlsZXMgY2hhbmdl ZCwgMjAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0 IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYW5ub3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuYwotIGNy ZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fubm90YS1pbnB1dC13aGls ZS1ydW5uaW5nLmV4cAotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9n Ci0jIyAtMSw1ICsxLDEzIEBACi0gMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVk aGF0LmNvbT4KLSAKLSsJUFIgZ2RiLzE3NDcyCi0rCSogYW5ub3RhdGUuYyAoYW5ub3RhdGVfYnJl YWtwb2ludHNfaW52YWxpZCk6IFVzZQotKwl0YXJnZXRfdGVybWluYWxfb3VyX2Zvcl9vdXRwdXQg aW5zdGVhZCBvZiB0YXJnZXRfdGVybWluYWxfb3Vycy4KLSsJR2l2ZSBiYWNrIHRoZSB0ZXJtaW5h bCB0byB0aGUgdGFyZ2V0LgotKwkoYW5ub3RhdGVfZnJhbWVzX2ludmFsaWQpOiBMaWtld2lzZS4K LSsKLSsyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotKwotIAkq IHRhcmdldC5jIChlbnVtIHRlcm1pbmFsX3N0YXRlKTogTmV3IGVudW0uCi0gCSh0ZXJtaW5hbF9z dGF0ZSk6IE5ldyBnbG9iYWwuCi0gCSh0YXJnZXRfdGVybWluYWxfaW5pdCk6IE5ldyBmdW5jdGlv bi4KLS0tLSBhL2dkYi9hbm5vdGF0ZS5jCi0rKysgYi9nZGIvYW5ub3RhdGUuYwotQEAgLTcyLDgg KzcyLDE3IEBAIGFubm90YXRlX2JyZWFrcG9pbnRzX2ludmFsaWQgKHZvaWQpCi0gICAgICAgJiYg KCFicmVha3BvaW50c19pbnZhbGlkX2VtaXR0ZWQKLSAJICB8fCBhc3luY19iYWNrZ3JvdW5kX2V4 ZWN1dGlvbl9wICgpKSkKLSAgICAgewotLSAgICAgIHRhcmdldF90ZXJtaW5hbF9vdXJzICgpOwot KyAgICAgIC8qIElmIHRoZSBpbmZlcmlvciBvd25zIHRoZSB0ZXJtaW5hbCAoZS5nLiwgd2UncmUg cmVzdW1pbmcpLAotKwkgbWFrZSBzdXJlIHRvIGxlYXZlIHdpdGggdGhlIGluZmVyaW9yIHN0aWxs IG93bmluZyBpdC4gICovCi0rICAgICAgaW50IHdhc19pbmZlcmlvciA9IHRhcmdldF90ZXJtaW5h bF9pc19pbmZlcmlvciAoKTsKLSsKLSsgICAgICB0YXJnZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0 cHV0ICgpOwotKwotICAgICAgIHByaW50Zl91bmZpbHRlcmVkICgoIlxuXDAzMlwwMzJicmVha3Bv aW50cy1pbnZhbGlkXG4iKSk7Ci0rCi0rICAgICAgaWYgKHdhc19pbmZlcmlvcikKLSsJdGFyZ2V0 X3Rlcm1pbmFsX2luZmVyaW9yICgpOwotKwotICAgICAgIGJyZWFrcG9pbnRzX2ludmFsaWRfZW1p dHRlZCA9IDE7Ci0gICAgIH0KLSB9Ci1AQCAtMjEwLDggKzIxOSwxNyBAQCBhbm5vdGF0ZV9mcmFt ZXNfaW52YWxpZCAodm9pZCkKLSAgICAgICAmJiAoIWZyYW1lc19pbnZhbGlkX2VtaXR0ZWQKLSAJ ICB8fCBhc3luY19iYWNrZ3JvdW5kX2V4ZWN1dGlvbl9wICgpKSkKLSAgICAgewotLSAgICAgIHRh cmdldF90ZXJtaW5hbF9vdXJzICgpOwotKyAgICAgIC8qIElmIHRoZSBpbmZlcmlvciBvd25zIHRo ZSB0ZXJtaW5hbCAoZS5nLiwgd2UncmUgcmVzdW1pbmcpLAotKwkgbWFrZSBzdXJlIHRvIGxlYXZl IHdpdGggdGhlIGluZmVyaW9yIHN0aWxsIG93bmluZyBpdC4gICovCi0rICAgICAgaW50IHdhc19p bmZlcmlvciA9IHRhcmdldF90ZXJtaW5hbF9pc19pbmZlcmlvciAoKTsKLSsKLSsgICAgICB0YXJn ZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0ICgpOwotKwotICAgICAgIHByaW50Zl91bmZpbHRl cmVkICgoIlxuXDAzMlwwMzJmcmFtZXMtaW52YWxpZFxuIikpOwotKwotKyAgICAgIGlmICh3YXNf aW5mZXJpb3IpCi0rCXRhcmdldF90ZXJtaW5hbF9pbmZlcmlvciAoKTsKLSsKLSAgICAgICBmcmFt ZXNfaW52YWxpZF9lbWl0dGVkID0gMTsKLSAgICAgfQotIH0KLS0tLSBhL2dkYi90YXJnZXQuYwot KysrIGIvZ2RiL3RhcmdldC5jCi1AQCAtNTExLDYgKzUxMSwxNCBAQCB0YXJnZXRfdGVybWluYWxf aW5pdCAodm9pZCkKLSAKLSAvKiBTZWUgdGFyZ2V0LmguICAqLwotIAotK2ludAotK3RhcmdldF90 ZXJtaW5hbF9pc19pbmZlcmlvciAodm9pZCkKLSt7Ci0rICByZXR1cm4gKHRlcm1pbmFsX3N0YXRl ID09IHRlcm1pbmFsX2lzX2luZmVyaW9yKTsKLSt9Ci0rCi0rLyogU2VlIHRhcmdldC5oLiAgKi8K LSsKLSB2b2lkCi0gdGFyZ2V0X3Rlcm1pbmFsX2luZmVyaW9yICh2b2lkKQotIHsKLS0tLSBhL2dk Yi90YXJnZXQuaAotKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtMTM1Niw2ICsxMzU2LDExIEBAIGV4 dGVybiBpbnQgdGFyZ2V0X2luc2VydF9icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwKLSBleHRlcm4gaW50IHRhcmdldF9yZW1vdmVfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsCi0gCQkJCSAgICAgc3RydWN0IGJwX3RhcmdldF9pbmZvICpicF90Z3QpOwotIAot Ky8qIFJldHVybnMgdHJ1ZSBpZiB0aGUgdGVybWluYWwgc2V0dGluZ3Mgb2YgdGhlIGluZmVyaW9y IGFyZSBpbgotKyAgIGVmZmVjdC4gICovCi0rCi0rZXh0ZXJuIGludCB0YXJnZXRfdGVybWluYWxf aXNfaW5mZXJpb3IgKHZvaWQpOwotKwotIC8qIEluaXRpYWxpemUgdGhlIHRlcm1pbmFsIHNldHRp bmdzIHdlIHJlY29yZCBmb3IgdGhlIGluZmVyaW9yLAotICAgIGJlZm9yZSB3ZSBhY3R1YWxseSBy dW4gdGhlIGluZmVyaW9yLiAgKi8KLSAKLSMjIyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0j IyMgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMgLTEsMyArMSw5IEBACi0rMjAxNC0xMC0x NyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSsKLSsJUFIgZ2RiLzE3NDcyCi0r CSogZ2RiLmJhc2UvYW5ub3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuYzogTmV3IGZpbGUuCi0rCSog Z2RiLmJhc2UvYW5ub3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuZXhwOiBOZXcgZmlsZS4KLSsKLSAy MDE0LTA5LTExICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotIAotIAlQUiBnZGIv MTczNDcKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYW5ub3Rh LWlucHV0LXdoaWxlLXJ1bm5pbmcuYwotQEAgLTAsMCArMSwyNSBAQAotKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCi0rCi0rICAgQ29weXJpZ2h0IDIw MTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsg ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Ci0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsKLStpbnQK LSttYWluICh2b2lkKQotK3sKLSsgIHNsZWVwICg1KTsKLSsgIHJldHVybiAwOyAvKiBzZXQgYnJl YWsgaGVyZSAqLwotK30KLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvYW5ub3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuZXhwCi1AQCAtMCwwICsxLDEzMCBAQAotKyMg Q29weXJpZ2h0IDE5OTktMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0r IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBUZXN0IHRoYXQgYW5ub3RhdGlvbnMg c3VwcG9ydCBkb2Vzbid0IGxlYXZlIEdEQidzIHRlcm1pbmFsIHNldHRpbmdzCi0rIyBpbnRvIGVm ZmVjdCB3aGVuIHdlIHJ1biBhIGZvcmVncm91bmQgY29tbWFuZC4KLSsKLStpZiBbaXNfcmVtb3Rl IHRhcmdldF0gdGhlbiB7Ci0rICAgICMgV2UgY2Fubm90IHVzZSBydW50b19tYWluIGJlY2F1c2Ug b2YgdGhlIGRpZmZlcmVudCBwcm9tcHQgd2UgZ2V0Ci0rICAgICMgd2hlbiB1c2luZyBhbm5vdGF0 aW9uIGxldmVsIDIuCi0rICAgIHJldHVybiAwCi0rfQotKwotK3N0YW5kYXJkX3Rlc3RmaWxlCi0r Ci0raWYge1twcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxl ICRzcmNmaWxlIGRlYnVnXSA9PSAtMX0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBCcmVh ayBhdCBtYWluCi0rCi0rZ2RiX3Rlc3QgImJyZWFrIG1haW4iIFwKLSsgICAgIkJyZWFrcG9pbnQu KmF0LiogZmlsZSAuKiRzcmNmaWxlLipcXC4iIFwKLSsgICAgImJyZWFrcG9pbnQgbWFpbiIKLSsK LSsjIE5PVEU6IHRoaXMgcHJvbXB0IGlzIE9LIG9ubHkgd2hlbiB0aGUgYW5ub3RhdGlvbiBsZXZl bCBpcyA+IDEKLSsjIE5PVEU6IFdoZW4gdGhpcyBwcm9tcHQgaXMgaW4gdXNlIHRoZSBnZGJfdGVz dCBwcm9jZWR1cmUgY2Fubm90IGJlCi0rIyB1c2VkIGJlY2F1c2UgaXQgYXNzdW1lcyB0aGF0IHRo ZSBsYXN0IGNoYXIgYWZ0ZXIgdGhlIGdkYl9wcm9tcHQgaXMgYQotKyMgd2hpdGUgc3BhY2UuICBU aGlzIGlzIG5vdCB0cnVlIHdpdGggdGhpcyBhbm5vdGF0ZWQgcHJvbXB0LiAgU28gd2UKLSsjIG11 c3QgdXNlIHRoZSBnZGJfYW5ub3RhX3Rlc3QgcmVwbGFjZW1lbnQgYmVsb3csIG9yCi0rIyBnZGJf dGVzdF9tdWx0aXBsZS4KLSsKLStzZXQgb2xkX2dkYl9wcm9tcHQgJGdkYl9wcm9tcHQKLStzZXQg Z2RiX3Byb21wdCAiXHJcblwwMzJcMDMycHJlLXByb21wdFxyXG4kZ2RiX3Byb21wdCBcclxuXDAz MlwwMzJwcm9tcHRcclxuIgotKwotKyMgTGlrZSBnZGJfdGVzdCwgYnV0IGNvcGUgd2l0aCB0aGUg YW5ub3RhdGlvbiBwcm9tcHQuCi0rcHJvYyBnZGJfYW5ub3RhX3Rlc3Qge2NvbW1hbmQgcGF0dGVy biBtZXNzYWdlfSB7Ci0rICAgIGdsb2JhbCBnZGJfcHJvbXB0Ci0rCi0rICAgIGdkYl90ZXN0X211 bHRpcGxlICRjb21tYW5kICRtZXNzYWdlIHsKLSsJLXJlICIkcGF0dGVybiRnZGJfcHJvbXB0JCIg ewotKwkgICAgcGFzcyAiJG1lc3NhZ2UiCi0rCX0KLSsJLXJlICIkZ2RiX3Byb21wdCQiIHsKLSsJ ICAgIGZhaWwgIiRtZXNzYWdlIgotKwl9Ci0rICAgIH0KLSt9Ci0rCi0rIyBTZXQgdGhlIGFubm90 YXRpb24gbGV2ZWwgdG8gMi4KLSsKLStzZXQgdGVzdCAiYW5ub3RhdGlvbiBzZXQgYXQgbGV2ZWwg MiIKLStnZGJfYW5ub3RhX3Rlc3QgInNldCBhbm5vdGF0ZSAyIiAiLioiICJhbm5vdGF0aW9uIHNl dCBhdCBsZXZlbCAyIgotKwotKyMgUnVuIHRvIG1haW4uCi0rCi0rZ2RiX2Fubm90YV90ZXN0ICJy dW4iIFwKLSsgICAgIlxyXG5cMDMyXDAzMnBvc3QtcHJvbXB0LipcclxuXHJcblwwMzJcMDMyc3Rv cHBlZC4qIiBcCi0rICAgICJydW4gdW50aWwgbWFpbiBicmVha3BvaW50IgotKwotK3NldCB0ZXN0 ICJkZWxldGUgYnJlYWtwb2ludHMiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgImRlbGV0ZSIgJHRlc3Qg ewotKyAgICAtcmUgIkRlbGV0ZSBhbGwgYnJlYWtwb2ludHMuIC55IG9yIG4uIiB7Ci0rCXNlbmRf Z2RiICJ5XG4iCi0rCWV4cF9jb250aW51ZQotKyAgICB9Ci0rICAgIC1yZSAiJGdkYl9wcm9tcHQk IiB7Ci0rCXBhc3MgJHRlc3QKLSsgICAgfQotK30KLSsKLSsjIFNldCB0aGUgdGFyZ2V0IHJ1bm5p bmcsIGFuZCB0aGVuIHR5cGUgc29tZXRoaW5nLiAgR0RCIHVzZWQgdG8gaGF2ZSBhCi0rIyBidWcg d2hlcmUgaXQnZCBiZSBhY2NlcHRpbmcgaW5wdXQgZXZlbiB0aG91Z2ggdGhlIHRhcmdldCB3YXMK LSsjIHN1cHBvc2VkbHkgcmVzdW1lZCBpbiB0aGUgZm9yZWdyb3VuZC4gIFRoaXMgdWx0aW1hdGVs eSByZXN1bHRlZCBpbgotKyMgcmVhZGxpbmUgYWJvcnRpbmcuCi0rCi0rc2V0IGxpbmVudW0gW2dk Yl9nZXRfbGluZV9udW1iZXIgInNldCBicmVhayBoZXJlIl0KLSsKLStnZGJfYW5ub3RhX3Rlc3Qg ImJyZWFrICRsaW5lbnVtIiBcCi0rICAgICJCcmVha3BvaW50IC4qJHNyY2ZpbGUsIGxpbmUgLioi IFwKLSsgICAgImJyZWFrIGFmdGVyIHNsZWVwIgotKwotKyMgQ29udGludWUsIGFuZCB3YWl0IGEg Yml0IHRvIG1ha2Ugc3VyZSB0aGUgaW5mZXJpb3IgcmVhbGx5IHN0YXJ0cwotKyMgcnVubmluZy4g IFdhaXQgbGVzcyB0aGFuIG11Y2ggdGhlIHByb2dyYW0gc2xlZXBzLCB3aGljaCBpcyA1Ci0rIyBz ZWNvbmRzLCB0aG91Z2guCi0rc2V0IHNhd19jb250aW51aW5nIDAKLStzZXQgdGVzdCAiY29udGlu dWUiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3QgJHRlc3QgewotKyAgICAtdGltZW91dCAyCi0r ICAgIC1yZSAiQ29udGludWluZ1xcLiIgewotKwlzZXQgc2F3X2NvbnRpbnVpbmcgMQotKwlleHBf Y29udGludWUKLSsgICAgfQotKyAgICB0aW1lb3V0IHsKLSsJZ2RiX2Fzc2VydCAkc2F3X2NvbnRp bnVpbmcgJHRlc3QKLSsgICAgfQotK30KLSsKLSsjIFR5cGUgc29tZXRoaW5nLgotK3NlbmRfZ2Ri ICJwcmludCAxXG4iCi0rCi0rIyBQb29yIGJ1Z2d5IEdEQiB3b3VsZCBjcmFzaCBiZWZvcmUgdGhl IGJyZWFrcG9pbnQgd2FzIGhpdC4KLStzZXQgdGVzdCAiYnJlYWtwb2ludCBoaXQiCi0rZ2RiX3Rl c3RfbXVsdGlwbGUgIiIgJHRlc3QgewotKyAgICAtcmUgInN0b3BwZWRcclxuJGdkYl9wcm9tcHQi IHsKLSsJcGFzcyAkdGVzdAotKyAgICB9Ci0rfQotKwotK3NldCB0ZXN0ICJwcmludCBjb21tYW5k IHJlc3VsdCIKLStnZGJfdGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0rICAgIC1yZSAiXHJcbjFc clxuXHJcblwwMzJcMDMydmFsdWUtaGlzdG9yeS1lbmRcclxuJGdkYl9wcm9tcHQiIHsKLSsJcGFz cyAkdGVzdAotKyAgICB9Ci0rfQotKwotKyMgUmVzdG9yZSB0aGUgb3JpZ2luYWwgcHJvbXB0IGZv ciB0aGUgcmVzdCBvZiB0aGUgdGVzdHN1aXRlLgotKwotK3NldCBnZGJfcHJvbXB0ICRvbGRfZ2Ri X3Byb21wdAotLS0gCi0xLjkuMwotCi1Gcm9tIGUzNzk1MWRjMTBkYTY5NDBlZjM1NGYwNjJmYzQz ZWUwMzY4N2M1NzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZWRybyBBbHZlcyA8 cGFsdmVzQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDE3IE9jdCAyMDE0IDEzOjMxOjI1ICswMTAw Ci1TdWJqZWN0OiBbUEFUQ0ggMzQvMzddIFBSIGdkYi8xNzMwMDogSW5wdXQgYWZ0ZXIgImMgLWEi IGNyYXNoZXMgcmVhZGxpbmUvR0RCCi0KLUlmIGFsbCB0aHJlYWRzIGluIHRoZSB0YXJnZXQgd2Vy ZSBhbHJlYWR5IHJ1bm5pbmcgd2hlbiB0aGUgdXNlciBkb2VzCi0iYyAtYSIsIG5vdGhpbmcgcHV0 cyB0aGUgaW5mZXJpb3IncyB0ZXJtaW5hbCBzZXR0aW5ncyBpbiBlZmZlY3QgYW5kCi1yZW1vdmVz IHN0ZGluIGZyb20gdGhlIGV2ZW50IGxvb3AsIHdoaWNoIHdlIG11c3Qgd2hlbiBydW5uaW5nIGEK LWZvcmVncm91bmQgY29tbWFuZC4gIFRoZSByZXN1bHQgaXMgdGhhdCB1c2VyIGlucHV0IGFmdGVy d2FyZHMgY3Jhc2hlcwotcmVhZGxpbmUvZ2RiOgotCi0gKGdkYikgc3RhcnQKLSBUZW1wb3Jhcnkg YnJlYWtwb2ludCAxIGF0IDB4NDAwNWQ0OiBmaWxlIGNvbnRpbnVlLWFsbC1hbHJlYWR5LXJ1bm5p bmcuYywgbGluZSAyMy4KLSBTdGFydGluZyBwcm9ncmFtOiBjb250aW51ZS1hbGwtYWxyZWFkeS1y dW5uaW5nCi0KLSBUZW1wb3JhcnkgYnJlYWtwb2ludCAxLCBtYWluICgpIGF0IGNvbnRpbnVlLWFs bC1hbHJlYWR5LXJ1bm5pbmcuYzoyMwotIDIzICAgICAgICBzbGVlcCAoMTApOwotIChnZGIpIGMg LWEmCi0gQ29udGludWluZy4KLSAoZ2RiKSBjIC1hCi0gQ29udGludWluZy4KLSBwIDEKLSByZWFk bGluZTogcmVhZGxpbmVfY2FsbGJhY2tfcmVhZF9jaGFyKCkgY2FsbGVkIHdpdGggbm8gaGFuZGxl ciEKLSBBYm9ydGVkIChjb3JlIGR1bXBlZCkKLSAkCi0KLUJhY2t0cmFjZToKLQotIFByb2dyYW0g cmVjZWl2ZWQgc2lnbmFsIFNJR0FCUlQsIEFib3J0ZWQuCi0gMHgwMDAwMDAzYjM2YTM1ODc3IGlu IF9fR0lfcmFpc2UgKHNpZz1zaWdAZW50cnk9NikgYXQgLi4vbnB0bC9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9yYWlzZS5jOjU2Ci0gNTYgICAgICAgIHJldHVybiBJTkxJTkVfU1lTQ0FMTCAodGdr aWxsLCAzLCBwaWQsIHNlbGZ0aWQsIHNpZyk7Ci0gKHRvcC1nZGIpIHAgMQotICQxID0gMQotICh0 b3AtZ2RiKSBidAotICMwICAweDAwMDAwMDNiMzZhMzU4NzcgaW4gX19HSV9yYWlzZSAoc2lnPXNp Z0BlbnRyeT02KSBhdCAuLi9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3JhaXNlLmM6NTYK LSAjMSAgMHgwMDAwMDAzYjM2YTM2ZjY4IGluIF9fR0lfYWJvcnQgKCkgYXQgYWJvcnQuYzo4OQot ICMyICAweDAwMDAwMDAwMDA3ODRhYTkgaW4gcmxfY2FsbGJhY2tfcmVhZF9jaGFyICgpIGF0IHJl YWRsaW5lL2NhbGxiYWNrLmM6MTE2Ci0gIzMgIDB4MDAwMDAwMDAwMDYxOTE4MSBpbiBybF9jYWxs YmFja19yZWFkX2NoYXJfd3JhcHBlciAoY2xpZW50X2RhdGE9MHgwKSBhdCBnZGIvZXZlbnQtdG9w LmM6MTY3Ci0gIzQgIDB4MDAwMDAwMDAwMDYxOTU1NyBpbiBzdGRpbl9ldmVudF9oYW5kbGVyIChl cnJvcj0wLCBjbGllbnRfZGF0YT0weDApIGF0IGdkYi9ldmVudC10b3AuYzozNzMKLSAjNSAgMHgw MDAwMDAwMDAwNjE4MTRhIGluIGhhbmRsZV9maWxlX2V2ZW50IChkYXRhPS4uLikgYXQgZ2RiL2V2 ZW50LWxvb3AuYzo3NjMKLSAjNiAgMHgwMDAwMDAwMDAwNjE3NjMxIGluIHByb2Nlc3NfZXZlbnQg KCkgYXQgZ2RiL2V2ZW50LWxvb3AuYzozNDAKLSAjNyAgMHgwMDAwMDAwMDAwNjE3NmY4IGluIGdk Yl9kb19vbmVfZXZlbnQgKCkgYXQgZ2RiL2V2ZW50LWxvb3AuYzo0MDQKLSAjOCAgMHgwMDAwMDAw MDAwNjE3NzQ4IGluIHN0YXJ0X2V2ZW50X2xvb3AgKCkgYXQgZ2RiL2V2ZW50LWxvb3AuYzo0MjkK LSAjOSAgMHgwMDAwMDAwMDAwNjE5MWIzIGluIGNsaV9jb21tYW5kX2xvb3AgKGRhdGE9MHgwKSBh dCBnZGIvZXZlbnQtdG9wLmM6MTgyCi0gIzEwIDB4MDAwMDAwMDAwMDYwZjUzOCBpbiBjdXJyZW50 X2ludGVycF9jb21tYW5kX2xvb3AgKCkgYXQgZ2RiL2ludGVycHMuYzozMTgKLSAjMTEgMHgwMDAw MDAwMDAwNjEwNzAxIGluIGNhcHR1cmVkX2NvbW1hbmRfbG9vcCAoZGF0YT0weDApIGF0IGdkYi9t YWluLmM6MzIzCi0gIzEyIDB4MDAwMDAwMDAwMDYwYzNmNSBpbiBjYXRjaF9lcnJvcnMgKGZ1bmM9 MHg2MTA2ZTYgPGNhcHR1cmVkX2NvbW1hbmRfbG9vcD4sIGZ1bmNfYXJncz0weDAsIGVycnN0cmlu Zz0weDkwMDJjMSAiIiwgbWFzaz1SRVRVUk5fTUFTS19BTEwpCi0gICAgIGF0IGdkYi9leGNlcHRp b25zLmM6MjM3Ci0gIzEzIDB4MDAwMDAwMDAwMDYxMWJmZiBpbiBjYXB0dXJlZF9tYWluIChkYXRh PTB4N2ZmZmZmZmZkNzgwKSBhdCBnZGIvbWFpbi5jOjExNTEKLSAjMTQgMHgwMDAwMDAwMDAwNjBj M2Y1IGluIGNhdGNoX2Vycm9ycyAoZnVuYz0weDYxMGFmZSA8Y2FwdHVyZWRfbWFpbj4sIGZ1bmNf YXJncz0weDdmZmZmZmZmZDc4MCwgZXJyc3RyaW5nPTB4OTAwMmMxICIiLCBtYXNrPVJFVFVSTl9N QVNLX0FMTCkKLSAgICAgYXQgZ2RiL2V4Y2VwdGlvbnMuYzoyMzcKLSAjMTUgMHgwMDAwMDAwMDAw NjExYzI4IGluIGdkYl9tYWluIChhcmdzPTB4N2ZmZmZmZmZkNzgwKSBhdCBnZGIvbWFpbi5jOjEx NTkKLSAjMTYgMHgwMDAwMDAwMDAwNDVlZjk3IGluIG1haW4gKGFyZ2M9NSwgYXJndj0weDdmZmZm ZmZmZDg4OCkgYXQgZ2RiL2dkYi5jOjMyCi0gKHRvcC1nZGIpCi0KLVRlc3RlZCBvbiB4ODZfNjQg RmVkb3JhIDIwLCBuYXRpdmUgYW5kIGdkYnNlcnZlci4KLQotZ2RiLwotMjAxNC0xMC0xNyAgUGVk cm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLQotCVBSIGdkYi8xNzMwMAotCSogaW5mY21k LmMgKGNvbnRpbnVlXzEpOiBJZiBjb250aW51aW5nIGFsbCB0aHJlYWRzIGluIHRoZQotCWZvcmVn cm91bmQsIG1ha2Ugc3VyZSB0aGUgaW5mZXJpb3IncyB0ZXJtaW5hbCBzZXR0aW5ncyBhcmUgcHV0 IGluCi0JZWZmZWN0LgotCi1nZGIvdGVzdHN1aXRlLwotMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMg IDxwYWx2ZXNAcmVkaGF0LmNvbT4KLQotCVBSIGdkYi8xNzMwMAotCSogZ2RiLmJhc2UvY29udGlu dWUtYWxsLWFscmVhZHktcnVubmluZy5jOiBOZXcgZmlsZS4KLQkqIGdkYi5iYXNlL2NvbnRpbnVl LWFsbC1hbHJlYWR5LXJ1bm5pbmcuZXhwOiBOZXcgZmlsZS4KLS0tLQotIGdkYi9DaGFuZ2VMb2cg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysKLSBnZGIvaW5mY21k LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrCi0gZ2Ri L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwot IC4uLi9nZGIuYmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmMgICAgICAgIHwgMjUg KysrKysrKwotIC4uLi9nZGIuYmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmV4cCAg ICAgIHwgNzkgKysrKysrKysrKysrKysrKysrKysrKwotIDUgZmlsZXMgY2hhbmdlZCwgMTM1IGlu c2VydGlvbnMoKykKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j b250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmV4cAotCi0jIyMg YS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSw1ICsxLDEyIEBACi0g MjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSsJUFIgZ2Ri LzE3MzAwCi0rCSogaW5mY21kLmMgKGNvbnRpbnVlXzEpOiBJZiBjb250aW51aW5nIGFsbCB0aHJl YWRzIGluIHRoZQotKwlmb3JlZ3JvdW5kLCBtYWtlIHN1cmUgdGhlIGluZmVyaW9yJ3MgdGVybWlu YWwgc2V0dGluZ3MgYXJlIHB1dCBpbgotKwllZmZlY3QuCi0rCi0rMjAxNC0xMC0xNyAgUGVkcm8g QWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSsKLSAJUFIgZ2RiLzE3NDcyCi0gCSogYW5ub3Rh dGUuYyAoYW5ub3RhdGVfYnJlYWtwb2ludHNfaW52YWxpZCk6IFVzZQotIAl0YXJnZXRfdGVybWlu YWxfb3VyX2Zvcl9vdXRwdXQgaW5zdGVhZCBvZiB0YXJnZXRfdGVybWluYWxfb3Vycy4KLS0tLSBh L2dkYi9pbmZjbWQuYwotKysrIGIvZ2RiL2luZmNtZC5jCi1AQCAtNzM4LDYgKzczOCwyNCBAQCBj b250aW51ZV8xIChpbnQgYWxsX3RocmVhZHMpCi0gCi0gICAgICAgaXRlcmF0ZV9vdmVyX3RocmVh ZHMgKHByb2NlZWRfdGhyZWFkX2NhbGxiYWNrLCBOVUxMKTsKLSAKLSsgICAgICBpZiAoc3luY19l eGVjdXRpb24pCi0rCXsKLSsJICAvKiBJZiBhbGwgdGhyZWFkcyBpbiB0aGUgdGFyZ2V0IHdlcmUg YWxyZWFkeSBydW5uaW5nLAotKwkgICAgIHByb2NlZWRfdGhyZWFkX2NhbGxiYWNrIGVuZHMgdXAg bmV2ZXIgY2FsbGluZyBwcm9jZWVkLAotKwkgICAgIGFuZCBzbyBub3RoaW5nIGNhbGxzIHRoaXMg dG8gcHV0IHRoZSBpbmZlcmlvcidzIHRlcm1pbmFsCi0rCSAgICAgc2V0dGluZ3MgaW4gZWZmZWN0 IGFuZCByZW1vdmUgc3RkaW4gZnJvbSB0aGUgZXZlbnQgbG9vcCwKLSsJICAgICB3aGljaCB3ZSBt dXN0IHdoZW4gcnVubmluZyBhIGZvcmVncm91bmQgY29tbWFuZC4gIEUuZy46Ci0rCi0rCSAgICAg IChnZGIpIGMgLWEmCi0rCSAgICAgIENvbnRpbnVpbmcuCi0rCSAgICAgIDxhbGwgdGhyZWFkcyBh cmUgcnVubmluZyBub3c+Ci0rCSAgICAgIChnZGIpIGMgLWEKLSsJICAgICAgQ29udGludWluZy4K LSsJICAgICAgPG5vIHRocmVhZCB3YXMgcmVzdW1lZCwgYnV0IHRoZSBpbmZlcmlvciBub3cgb3du cyB0aGUgdGVybWluYWw+Ci0rCSAgKi8KLSsJICB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKCk7 Ci0rCX0KLSsKLSAgICAgICAvKiBSZXN0b3JlIHNlbGVjdGVkIHB0aWQuICAqLwotICAgICAgIGRv X2NsZWFudXBzIChvbGRfY2hhaW4pOwotICAgICB9Ci0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5n ZUxvZwotIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDUgKzEsMTEgQEAKLSAy MDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotIAotKwlQUiBnZGIv MTczMDAKLSsJKiBnZGIuYmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmM6IE5ldyBm aWxlLgotKwkqIGdkYi5iYXNlL2NvbnRpbnVlLWFsbC1hbHJlYWR5LXJ1bm5pbmcuZXhwOiBOZXcg ZmlsZS4KLSsKLSsyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgot KwotIAlQUiBnZGIvMTc0NzIKLSAJKiBnZGIuYmFzZS9hbm5vdGEtaW5wdXQtd2hpbGUtcnVubmlu Zy5jOiBOZXcgZmlsZS4KLSAJKiBnZGIuYmFzZS9hbm5vdGEtaW5wdXQtd2hpbGUtcnVubmluZy5l eHA6IE5ldyBmaWxlLgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmMKLUBAIC0wLDAgKzEsMjUgQEAKLSsvKiBU aGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgotKwotKyAgIENv cHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Ci0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsKLSsjaW5jbHVkZSA8dW5pc3RkLmg+ Ci0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBzbGVlcCAoMTApOwotKyAgcmV0dXJuIDA7 IC8qIHNldCBicmVhayBoZXJlICovCi0rfQotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmV4cAotQEAgLTAsMCAr MSw3OSBAQAotKyMgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsjIFRlc3QgdGhhdCAi YyAtYSIgZG9lc24ndCBsZWF2ZSBHREIgcHJvY2Vzc2luZyBpbnB1dCwgZXZlbiBpZiBhbGwKLSsj IHRocmVhZHMgd2VyZSBhbHJlYWR5IHJ1bm5pbmcuICBQUiBnZGIvMTczMDAuCi0rCi0rc3RhbmRh cmRfdGVzdGZpbGUKLSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4 cCAke3Rlc3RmaWxlfSAkc3JjZmlsZV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStnZGJf dGVzdF9ub19vdXRwdXQgInNldCBub24tc3RvcCBvbiIKLSsKLStpZiAhW3J1bnRvX21haW5dIHsK LSsgICAgcmV0dXJuCi0rfQotKwotK3NldCBsaW5lbnVtIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJz ZXQgYnJlYWsgaGVyZSJdCi0rZ2RiX2JyZWFrcG9pbnQgIiRsaW5lbnVtIgotKwotK2dkYl90ZXN0 ICJjIC1hJiIgIkNvbnRpbnVpbmdcXC4iCi0rCi0rc2V0IHRlc3QgIm5vIHN0b3AiCi0rZ2RiX3Rl c3RfbXVsdGlwbGUgIiIgJHRlc3QgewotKyAgICAtdGltZW91dCAxCi0rICAgIHRpbWVvdXQgewot KwlwYXNzICR0ZXN0Ci0rICAgIH0KLSt9Ci0rCi0rIyBQYXJhbm9pYS4gIENoZWNrIHRoYXQgaW5w dXQgd29ya3MgYWZ0ZXIgYmcgY29tbWFuZC4KLStnZGJfdGVzdCAicHJpbnQgMSIgIiA9IDEiCi0r Ci0rIyBDb250aW51ZSBpbiB0aGUgZm9yZWdyb3VuZCwgYW5kIHdhaXQgb25lIHNlY29uZCB0byBt YWtlIHN1cmUgdGhlCi0rIyBpbmZlcmlvciByZWFsbHkgc3RhcnRzIHJ1bm5pbmcuICBJZiB3ZSBn ZXQgYSBwcm9tcHQgdG8gc29vbiAoZS5nLiwKLSsjIHRoZSBwcm9ncmFtIHN0b3BzKSwgdGhpcyBp c3N1ZXMgYSBmYWlsLgotK3NldCBzYXdfY29udGludWluZyAwCi0rc2V0IHRlc3QgImMgLWEiCi0r Z2RiX3Rlc3RfbXVsdGlwbGUgImMgLWEiICR0ZXN0IHsKLSsgICAgLXRpbWVvdXQgMQotKyAgICAt cmUgIkNvbnRpbnVpbmdcXC4iIHsKLSsJc2V0IHNhd19jb250aW51aW5nIDEKLSsJZXhwX2NvbnRp bnVlCi0rICAgIH0KLSsgICAgdGltZW91dCB7Ci0rCWdkYl9hc3NlcnQgJHNhd19jb250aW51aW5n ICR0ZXN0Ci0rICAgIH0KLSt9Ci0rCi0rIyBUeXBlIHNvbWV0aGluZyB3aGlsZSB0aGUgaW5mZXJp b3IgaXMgcnVubmluZyBpbiB0aGUgZm9yZWdyb3VuZC4KLStzZW5kX2dkYiAicHJpbnQgMlxuIgot KwotKyMgUG9vciBidWdneSBHREIgd291bGQgY3Jhc2ggYmVmb3JlIHRoZSBicmVha3BvaW50IHdh cyBoaXQuCi0rc2V0IHRlc3QgImJyZWFrcG9pbnQgaGl0IgotK2dkYl90ZXN0X211bHRpcGxlICIi ICR0ZXN0IHsKLSsgICAgLXJlICJzZXQgYnJlYWsgaGVyZSAuLlxyXG4kZ2RiX3Byb21wdCAiIHsK LSsJcGFzcyAkdGVzdAotKyAgICB9Ci0rfQotKwotK3NldCB0ZXN0ICJwcmludCBjb21tYW5kIHJl c3VsdCIKLStnZGJfdGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0rICAgIC1yZSAiID0gMlxyXG4k Z2RiX3Byb21wdCAkIiB7Ci0rCXBhc3MgJHRlc3QKLSsgICAgfQotK30KLS0tIAotMS45LjMKLQot RnJvbSAzNmM1N2EzY2VlYjIyNjA5MTNmN2QyZDM0OWU5OTRkZDg0NGNiY2FlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogUGVkcm8gQWx2ZXMgPHBhbHZlc0ByZWRoYXQuY29tPgotRGF0 ZTogRnJpLCAxNyBPY3QgMjAxNCAxMzozMToyNiArMDEwMAotU3ViamVjdDogW1BBVENIIDM1LzM3 XSBQUiBnZGIvMTc0NzE6IFJlcGVhdGluZyBhIGJhY2tncm91bmQgY29tbWFuZCBtYWtlcyBpdAot IGZvcmVncm91bmQKLQotV2hlbiB3ZSByZXBlYXQgYSBjb21tYW5kLCBieSBqdXN0IHByZXNzaW5n IDxyZXQ+LCB0aGUgaW5wdXQgZnJvbSB0aGUKLXByZXZpb3VzIGNvbW1hbmQgaXMgcmV1c2VkIGZv ciB0aGUgbmV3IGNvbW1hbmQgaW52b2NhdGlvbi4KLQotV2hlbiBhbiBleGVjdXRpb24gY29tbWFu ZCBzdHJpcHMgdGhlICImIiBvdXQgb2YgaXRzIGluY29taW5nIGFyZ3VtZW50Ci1zdHJpbmcsIHRv IGRldGVjdCBiYWNrZ3JvdW5kIGV4ZWN1dGlvbiwgd2UgcG9rZSBhICdcMCcgZGlyZWN0bHkgdG8g dGhlCi1pbmNvbWluZyBhcmd1bWVudCBzdHJpbmcuCi0KLUNvbWJpbmUgYm90aCwgYW5kIGEgcmVw ZWF0IG9mIGEgYmFja2dyb3VuZCBjb21tYW5kIGxvc2VzIHRoZSAiJiIuCi0KLVRoaXMgaXMgYWN0 dWFsbHkgb25seSB2aXNpYmxlIGlmIGFyZ3Mgb3RoZXIgdGhhbiAiJiIgYXJlIHNwZWNpZmllZAot KGUuZy4sICJjIDEmIiBvciAibmV4dCAyJiIgb3IgImMgLWEmIiksIGFzIGluIHRoZSBzcGVjaWFs IGNhc2Ugb2YgIiYiCi1hbG9uZSAoZS5nLiAiYyYiKSBkb2Vzbid0IGFjdHVhbGx5IGNsb2JiZXIg dGhlIGluY29taW5nIHN0cmluZy4KLQotRml4IHRoaXMgYnkgbWFraW5nIHN0cmlwX2JnX2NoYXIg cmV0dXJuIGEgbmV3IHN0cmluZyBpbnN0ZWFkIG9mIHBva2luZwotYSBob2xlIGluIHRoZSBpbnB1 dCBzdHJpbmcuCi0KLU5ldyB0ZXN0IGluY2x1ZGVkLgotCi1UZXN0ZWQgb24geDg2XzY0IEZlZG9y YSAyMCwgbmF0aXZlIGFuZCBnZGJzZXJ2ZXIuCi0KLWdkYi8KLTIwMTQtMTAtMTcgIFBlZHJvIEFs dmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0KLQlQUiBnZGIvMTc0NzEKLQkqIGluZmNtZC5jIChz dHJpcF9iZ19jaGFyKTogQ2hhbmdlIHByb3RvdHlwZSBhbmQgcmV3cml0ZS4gIE5vdwotCXJldHVy bnMgYSBjb3B5IG9mIHRoZSBpbnB1dC4KLQkocnVuX2NvbW1hbmRfMSwgY29udGludWVfY29tbWFu ZCwgc3RlcF8xLCBqdW1wX2NvbW1hbmQpCi0JKHNpZ25hbF9jb21tYW5kLCB1bnRpbF9jb21tYW5k LCBhZHZhbmNlX2NvbW1hbmQsIGZpbmlzaF9jb21tYW5kKQotCShhdHRhY2hfY29tbWFuZCk6IEFk anVzdCBhbmQgaW5zdGFsbCBhIGNsZWFudXAgdG8gZnJlZSB0aGUKLQlzdHJpcHBlZCBhcmdzLgot Ci1nZGIvdGVzdHN1aXRlLwotMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0 LmNvbT4KLQotCVBSIGdkYi8xNzQ3MQotCSogZ2RiLmJhc2UvYmctZXhlY3V0aW9uLXJlcGVhdC5j OiBOZXcgZmlsZS4KLQkqIGdkYi5iYXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQuZXhwOiBOZXcgZmls ZS4KLS0tLQotIGdkYi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMTAgKysKLSBnZGIvaW5mY21kLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMTQyICsrKysrKysrKysrKysrKystLS0tLS0tLS0KLSBnZGIvdGVzdHN1aXRlL0NoYW5nZUxv ZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsrCi0gZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9iZy1leGVjdXRpb24tcmVwZWF0LmMgICB8ICAzMyArKysrKysKLSBnZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQuZXhwIHwgIDg2ICsrKysrKysrKysrKysrKwotIDUg ZmlsZXMgY2hhbmdlZCwgMjI0IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQotIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQu YwotIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JnLWV4ZWN1dGlv bi1yZXBlYXQuZXhwCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cK LSMjIC0xLDUgKzEsMTUgQEAKLSAyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRo YXQuY29tPgotIAotKwlQUiBnZGIvMTc0NzEKLSsJKiBpbmZjbWQuYyAoc3RyaXBfYmdfY2hhcik6 IENoYW5nZSBwcm90b3R5cGUgYW5kIHJld3JpdGUuICBOb3cKLSsJcmV0dXJucyBhIGNvcHkgb2Yg dGhlIGlucHV0LgotKwkocnVuX2NvbW1hbmRfMSwgY29udGludWVfY29tbWFuZCwgc3RlcF8xLCBq dW1wX2NvbW1hbmQpCi0rCShzaWduYWxfY29tbWFuZCwgdW50aWxfY29tbWFuZCwgYWR2YW5jZV9j b21tYW5kLCBmaW5pc2hfY29tbWFuZCkKLSsJKGF0dGFjaF9jb21tYW5kKTogQWRqdXN0IGFuZCBp bnN0YWxsIGEgY2xlYW51cCB0byBmcmVlIHRoZQotKwlzdHJpcHBlZCBhcmdzLgotKwotKzIwMTQt MTAtMTcgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0rCi0gCVBSIGdkYi8xNzMw MAotIAkqIGluZmNtZC5jIChjb250aW51ZV8xKTogSWYgY29udGludWluZyBhbGwgdGhyZWFkcyBp biB0aGUKLSAJZm9yZWdyb3VuZCwgbWFrZSBzdXJlIHRoZSBpbmZlcmlvcidzIHRlcm1pbmFsIHNl dHRpbmdzIGFyZSBwdXQgaW4KLS0tLSBhL2dkYi9pbmZjbWQuYwotKysrIGIvZ2RiL2luZmNtZC5j Ci1AQCAtMTA3LDggKzEwNyw2IEBAIHN0YXRpYyB2b2lkIHJ1bl9ub19hcmdzX2NvbW1hbmQgKGNo YXIgKmFyZ3MsIGludCBmcm9tX3R0eSk7Ci0gCi0gc3RhdGljIHZvaWQgZ29fY29tbWFuZCAoY2hh ciAqbGluZV9ubywgaW50IGZyb21fdHR5KTsKLSAKLS1zdGF0aWMgaW50IHN0cmlwX2JnX2NoYXIg KGNoYXIgKiopOwotLQotIHZvaWQgX2luaXRpYWxpemVfaW5mY21kICh2b2lkKTsKLSAKLSAjZGVm aW5lIEVSUk9SX05PX0lORkVSSU9SIFwKLUBAIC0zNzMsMzUgKzM3MSw0MCBAQCBjb25zdHJ1Y3Rf aW5mZXJpb3JfYXJndW1lbnRzIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gfQotIAwKLSAKLS0v KiBUaGlzIGZ1bmN0aW9uIGRldGVjdHMgd2hldGhlciBvciBub3QgYSAnJicgY2hhcmFjdGVyIChp bmRpY2F0aW5nCi0tICAgYmFja2dyb3VuZCBleGVjdXRpb24pIGhhcyBiZWVuIGFkZGVkIGFzICp0 aGUgbGFzdCogb2YgdGhlIGFyZ3VtZW50cyBBUkdTCi0tICAgb2YgYSBjb21tYW5kLiAgSWYgaXQg aGFzLCBpdCByZW1vdmVzIGl0IGFuZCByZXR1cm5zIDEuICBPdGhlcndpc2UgaXQKLS0gICBkb2Vz IG5vdGhpbmcgYW5kIHJldHVybnMgMC4gICovCi0rLyogVGhpcyBmdW5jdGlvbiBzdHJpcHMgdGhl ICcmJyBjaGFyYWN0ZXIgKGluZGljYXRpbmcgYmFja2dyb3VuZAotKyAgIGV4ZWN1dGlvbikgdGhh dCBpcyBhZGRlZCBhcyAqdGhlIGxhc3QqIG9mIHRoZSBhcmd1bWVudHMgQVJHUyBvZiBhCi0rICAg Y29tbWFuZC4gIEEgY29weSBvZiB0aGUgaW5jb21pbmcgQVJHUyB3aXRob3V0IHRoZSAnJicgaXMg cmV0dXJuZWQsCi0rICAgdW5sZXNzIHRoZSByZXN1bHRpbmcgc3RyaW5nIGFmdGVyIHN0cmlwcGlu ZyBpcyBlbXB0eSwgaW4gd2hpY2ggY2FzZQotKyAgIE5VTEwgaXMgcmV0dXJuZWQuICAqQkdfQ0hB Ul9QIGlzIGFuIG91dHB1dCBib29sZWFuIHRoYXQgaW5kaWNhdGVzCi0rICAgd2hldGhlciB0aGUg JyYnIGNoYXJhY3RlciB3YXMgZm91bmQuICAqLwotIAotLXN0YXRpYyBpbnQKLS1zdHJpcF9iZ19j aGFyIChjaGFyICoqYXJncykKLStzdGF0aWMgY2hhciAqCi0rc3RyaXBfYmdfY2hhciAoY29uc3Qg Y2hhciAqYXJncywgaW50ICpiZ19jaGFyX3ApCi0gewotLSAgY2hhciAqcCA9IE5VTEw7Ci0rICBj b25zdCBjaGFyICpwOwotIAotLSAgcCA9IHN0cmNociAoKmFyZ3MsICcmJyk7Ci0rICBpZiAoYXJn cyA9PSBOVUxMIHx8ICphcmdzID09ICdcMCcpCi0rICAgIHsKLSsgICAgICAqYmdfY2hhcl9wID0g MDsKLSsgICAgICByZXR1cm4gTlVMTDsKLSsgICAgfQotIAotLSAgaWYgKHApCi0rICBwID0gYXJn cyArIHN0cmxlbiAoYXJncyk7Ci0rICBpZiAocFstMV0gPT0gJyYnKQotICAgICB7Ci0tICAgICAg aWYgKHAgPT0gKCphcmdzICsgc3RybGVuICgqYXJncykgLSAxKSkKLS0JewotLQkgIGlmIChzdHJs ZW4gKCphcmdzKSA+IDEpCi0tCSAgICB7Ci0tCSAgICAgIGRvCi0tCQlwLS07Ci0tCSAgICAgIHdo aWxlICgqcCA9PSAnICcgfHwgKnAgPT0gJ1x0Jyk7Ci0tCSAgICAgICoocCArIDEpID0gJ1wwJzsK LS0JICAgIH0KLS0JICBlbHNlCi0tCSAgICAqYXJncyA9IDA7Ci0tCSAgcmV0dXJuIDE7Ci0tCX0K LSsgICAgICBwLS07Ci0rICAgICAgd2hpbGUgKHAgPiBhcmdzICYmIGlzc3BhY2UgKHBbLTFdKSkK LSsJcC0tOwotKwotKyAgICAgICpiZ19jaGFyX3AgPSAxOwotKyAgICAgIGlmIChwICE9IGFyZ3Mp Ci0rCXJldHVybiBzYXZlc3RyaW5nIChhcmdzLCBwIC0gYXJncyk7Ci0rICAgICAgZWxzZQotKwly ZXR1cm4gTlVMTDsKLSAgICAgfQotLSAgcmV0dXJuIDA7Ci0rCi0rICAqYmdfY2hhcl9wID0gMDsK LSsgIHJldHVybiB4c3RyZHVwIChhcmdzKTsKLSB9Ci0gCi0gLyogQ29tbW9uIGFjdGlvbnMgdG8g dGFrZSBhZnRlciBjcmVhdGluZyBhbnkgc29ydCBvZiBpbmZlcmlvciwgYnkgYW55Ci1AQCAtNTMw LDcgKzUzMyw4IEBAIHJ1bl9jb21tYW5kXzEgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSwgaW50 IHRicmVha19hdF9tYWluKQotICAgcHRpZF90IHB0aWQ7Ci0gICBzdHJ1Y3QgdWlfb3V0ICp1aW91 dCA9IGN1cnJlbnRfdWlvdXQ7Ci0gICBzdHJ1Y3QgdGFyZ2V0X29wcyAqcnVuX3RhcmdldDsKLS0g IGludCBhc3luY19leGVjID0gMDsKLSsgIGludCBhc3luY19leGVjOwotKyAgc3RydWN0IGNsZWFu dXAgKmFyZ3NfY2hhaW47Ci0gCi0gICBkb250X3JlcGVhdCAoKTsKLSAKLUBAIC01NTMsOCArNTU3 LDggQEAgcnVuX2NvbW1hbmRfMSAoY2hhciAqYXJncywgaW50IGZyb21fdHR5LCBpbnQgdGJyZWFr X2F0X21haW4pCi0gICByZW9wZW5fZXhlY19maWxlICgpOwotICAgcmVyZWFkX3N5bWJvbHMgKCk7 Ci0gCi0tICBpZiAoYXJncyAhPSBOVUxMKQotLSAgICBhc3luY19leGVjID0gc3RyaXBfYmdfY2hh ciAoJmFyZ3MpOwotKyAgYXJncyA9IHN0cmlwX2JnX2NoYXIgKGFyZ3MsICZhc3luY19leGVjKTsK LSsgIGFyZ3NfY2hhaW4gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBhcmdzKTsKLSAKLSAgIC8qIERv IHZhbGlkYXRpb24gYW5kIHByZXBhcmF0aW9uIGJlZm9yZSBwb3NzaWJseSBjaGFuZ2luZyBhbnl0 aGluZwotICAgICAgaW4gdGhlIGluZmVyaW9yLiAgKi8KLUBAIC02MDAsNiArNjA0LDkgQEAgcnVu X2NvbW1hbmRfMSAoY2hhciAqYXJncywgaW50IGZyb21fdHR5LCBpbnQgdGJyZWFrX2F0X21haW4p Ci0gICAgICAgdWlfb3V0X2ZsdXNoICh1aW91dCk7Ci0gICAgIH0KLSAKLSsgIC8qIERvbmUgd2l0 aCBBUkdTLiAgKi8KLSsgIGRvX2NsZWFudXBzIChhcmdzX2NoYWluKTsKLSsKLSAgIC8qIFdlIGNh bGwgZ2V0X2luZmVyaW9yX2FyZ3MoKSBiZWNhdXNlIHdlIG1pZ2h0IG5lZWQgdG8gY29tcHV0ZQot ICAgICAgdGhlIHZhbHVlIG5vdy4gICovCi0gICBydW5fdGFyZ2V0LT50b19jcmVhdGVfaW5mZXJp b3IgKHJ1bl90YXJnZXQsIGV4ZWNfZmlsZSwgZ2V0X2luZmVyaW9yX2FyZ3MgKCksCi1AQCAtNzcz LDEzICs3ODAsMTUgQEAgY29udGludWVfMSAoaW50IGFsbF90aHJlYWRzKQotIHN0YXRpYyB2b2lk Ci0gY29udGludWVfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQotIHsKLS0gIGlu dCBhc3luY19leGVjID0gMDsKLSsgIGludCBhc3luY19leGVjOwotICAgaW50IGFsbF90aHJlYWRz ID0gMDsKLSsgIHN0cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOwotKwotICAgRVJST1JfTk9fSU5G RVJJT1I7Ci0gCi0gICAvKiBGaW5kIG91dCB3aGV0aGVyIHdlIG11c3QgcnVuIGluIHRoZSBiYWNr Z3JvdW5kLiAgKi8KLS0gIGlmIChhcmdzICE9IE5VTEwpCi0tICAgIGFzeW5jX2V4ZWMgPSBzdHJp cF9iZ19jaGFyICgmYXJncyk7Ci0rICBhcmdzID0gc3RyaXBfYmdfY2hhciAoYXJncywgJmFzeW5j X2V4ZWMpOwotKyAgYXJnc19jaGFpbiA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGFyZ3MpOwotIAot ICAgcHJlcGFyZV9leGVjdXRpb25fY29tbWFuZCAoJmN1cnJlbnRfdGFyZ2V0LCBhc3luY19leGVj KTsKLSAKLUBAIC04NDMsNiArODUyLDkgQEAgY29udGludWVfY29tbWFuZCAoY2hhciAqYXJncywg aW50IGZyb21fdHR5KQotIAl9Ci0gICAgIH0KLSAKLSsgIC8qIERvbmUgd2l0aCBBUkdTLiAgKi8K LSsgIGRvX2NsZWFudXBzIChhcmdzX2NoYWluKTsKLSsKLSAgIGlmIChmcm9tX3R0eSkKLSAgICAg cHJpbnRmX2ZpbHRlcmVkIChfKCJDb250aW51aW5nLlxuIikpOwotIAotQEAgLTkwMiwyMSArOTE0 LDI1IEBAIHN0ZXBfMSAoaW50IHNraXBfc3Vicm91dGluZXMsIGludCBzaW5nbGVfaW5zdCwgY2hh ciAqY291bnRfc3RyaW5nKQotIHsKLSAgIGludCBjb3VudCA9IDE7Ci0gICBzdHJ1Y3QgY2xlYW51 cCAqY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7Ci0tICBpbnQg YXN5bmNfZXhlYyA9IDA7Ci0rICBpbnQgYXN5bmNfZXhlYzsKLSAgIGludCB0aHJlYWQgPSAtMTsK LSsgIHN0cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOwotIAotICAgRVJST1JfTk9fSU5GRVJJT1I7 Ci0gICBlbnN1cmVfbm90X3RmaW5kX21vZGUgKCk7Ci0gICBlbnN1cmVfdmFsaWRfdGhyZWFkICgp OwotICAgZW5zdXJlX25vdF9ydW5uaW5nICgpOwotIAotLSAgaWYgKGNvdW50X3N0cmluZykKLS0g ICAgYXN5bmNfZXhlYyA9IHN0cmlwX2JnX2NoYXIgKCZjb3VudF9zdHJpbmcpOwotKyAgY291bnRf c3RyaW5nID0gc3RyaXBfYmdfY2hhciAoY291bnRfc3RyaW5nLCAmYXN5bmNfZXhlYyk7Ci0rICBh cmdzX2NoYWluID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgY291bnRfc3RyaW5nKTsKLSAKLSAgIHBy ZXBhcmVfZXhlY3V0aW9uX2NvbW1hbmQgKCZjdXJyZW50X3RhcmdldCwgYXN5bmNfZXhlYyk7Ci0g Ci0gICBjb3VudCA9IGNvdW50X3N0cmluZyA/IHBhcnNlX2FuZF9ldmFsX2xvbmcgKGNvdW50X3N0 cmluZykgOiAxOwotIAotKyAgLyogRG9uZSB3aXRoIEFSR1MuICAqLwotKyAgZG9fY2xlYW51cHMg KGFyZ3NfY2hhaW4pOwotKwotICAgaWYgKCFzaW5nbGVfaW5zdCB8fCBza2lwX3N1YnJvdXRpbmVz KQkJLyogTGVhdmUgc2kgY29tbWFuZCBhbG9uZS4gICovCi0gICAgIHsKLSAgICAgICBzdHJ1Y3Qg dGhyZWFkX2luZm8gKnRwID0gaW5mZXJpb3JfdGhyZWFkICgpOwotQEAgLTExMzcsNyArMTE1Myw4 IEBAIGp1bXBfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCi0gICBzdHJ1Y3Qgc3lt dGFiX2FuZF9saW5lIHNhbDsKLSAgIHN0cnVjdCBzeW1ib2wgKmZuOwotICAgc3RydWN0IHN5bWJv bCAqc2ZuOwotLSAgaW50IGFzeW5jX2V4ZWMgPSAwOwotKyAgaW50IGFzeW5jX2V4ZWM7Ci0rICBz dHJ1Y3QgY2xlYW51cCAqYXJnc19jaGFpbjsKLSAKLSAgIEVSUk9SX05PX0lORkVSSU9SOwotICAg ZW5zdXJlX25vdF90ZmluZF9tb2RlICgpOwotQEAgLTExNDUsOCArMTE2Miw4IEBAIGp1bXBfY29t bWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCi0gICBlbnN1cmVfbm90X3J1bm5pbmcgKCk7 Ci0gCi0gICAvKiBGaW5kIG91dCB3aGV0aGVyIHdlIG11c3QgcnVuIGluIHRoZSBiYWNrZ3JvdW5k LiAgKi8KLS0gIGlmIChhcmcgIT0gTlVMTCkKLS0gICAgYXN5bmNfZXhlYyA9IHN0cmlwX2JnX2No YXIgKCZhcmcpOwotKyAgYXJnID0gc3RyaXBfYmdfY2hhciAoYXJnLCAmYXN5bmNfZXhlYyk7Ci0r ICBhcmdzX2NoYWluID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJnKTsKLSAKLSAgIHByZXBhcmVf ZXhlY3V0aW9uX2NvbW1hbmQgKCZjdXJyZW50X3RhcmdldCwgYXN5bmNfZXhlYyk7Ci0gCi1AQCAt MTE2Miw2ICsxMTc5LDkgQEAganVtcF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkK LSAgIHNhbCA9IHNhbHMuc2Fsc1swXTsKLSAgIHhmcmVlIChzYWxzLnNhbHMpOwotIAotKyAgLyog RG9uZSB3aXRoIEFSR1MuICAqLwotKyAgZG9fY2xlYW51cHMgKGFyZ3NfY2hhaW4pOwotKwotICAg aWYgKHNhbC5zeW10YWIgPT0gMCAmJiBzYWwucGMgPT0gMCkKLSAgICAgZXJyb3IgKF8oIk5vIHNv dXJjZSBmaWxlIGhhcyBiZWVuIHNwZWNpZmllZC4iKSk7Ci0gCi1AQCAtMTIzMCw3ICsxMjUwLDgg QEAgc3RhdGljIHZvaWQKLSBzaWduYWxfY29tbWFuZCAoY2hhciAqc2lnbnVtX2V4cCwgaW50IGZy b21fdHR5KQotIHsKLSAgIGVudW0gZ2RiX3NpZ25hbCBvdXJzaWc7Ci0tICBpbnQgYXN5bmNfZXhl YyA9IDA7Ci0rICBpbnQgYXN5bmNfZXhlYzsKLSsgIHN0cnVjdCBjbGVhbnVwICphcmdzX2NoYWlu OwotIAotICAgZG9udF9yZXBlYXQgKCk7CQkvKiBUb28gZGFuZ2Vyb3VzLiAgKi8KLSAgIEVSUk9S X05PX0lORkVSSU9SOwotQEAgLTEyMzksOCArMTI2MCw4IEBAIHNpZ25hbF9jb21tYW5kIChjaGFy ICpzaWdudW1fZXhwLCBpbnQgZnJvbV90dHkpCi0gICBlbnN1cmVfbm90X3J1bm5pbmcgKCk7Ci0g Ci0gICAvKiBGaW5kIG91dCB3aGV0aGVyIHdlIG11c3QgcnVuIGluIHRoZSBiYWNrZ3JvdW5kLiAg Ki8KLS0gIGlmIChzaWdudW1fZXhwICE9IE5VTEwpCi0tICAgIGFzeW5jX2V4ZWMgPSBzdHJpcF9i Z19jaGFyICgmc2lnbnVtX2V4cCk7Ci0rICBzaWdudW1fZXhwID0gc3RyaXBfYmdfY2hhciAoc2ln bnVtX2V4cCwgJmFzeW5jX2V4ZWMpOwotKyAgYXJnc19jaGFpbiA9IG1ha2VfY2xlYW51cCAoeGZy ZWUsIHNpZ251bV9leHApOwotIAotICAgcHJlcGFyZV9leGVjdXRpb25fY29tbWFuZCAoJmN1cnJl bnRfdGFyZ2V0LCBhc3luY19leGVjKTsKLSAKLUBAIC0xMzcyLDcgKzEzOTMsOCBAQCB1bnRpbF9u ZXh0X2NvbW1hbmQgKGludCBmcm9tX3R0eSkKLSBzdGF0aWMgdm9pZAotIHVudGlsX2NvbW1hbmQg KGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQotIHsKLS0gIGludCBhc3luY19leGVjID0gMDsKLSsg IGludCBhc3luY19leGVjOwotKyAgc3RydWN0IGNsZWFudXAgKmFyZ3NfY2hhaW47Ci0gCi0gICBF UlJPUl9OT19JTkZFUklPUjsKLSAgIGVuc3VyZV9ub3RfdGZpbmRfbW9kZSAoKTsKLUBAIC0xMzgw LDggKzE0MDIsOCBAQCB1bnRpbF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAg IGVuc3VyZV9ub3RfcnVubmluZyAoKTsKLSAKLSAgIC8qIEZpbmQgb3V0IHdoZXRoZXIgd2UgbXVz dCBydW4gaW4gdGhlIGJhY2tncm91bmQuICAqLwotLSAgaWYgKGFyZyAhPSBOVUxMKQotLSAgICBh c3luY19leGVjID0gc3RyaXBfYmdfY2hhciAoJmFyZyk7Ci0rICBhcmcgPSBzdHJpcF9iZ19jaGFy IChhcmcsICZhc3luY19leGVjKTsKLSsgIGFyZ3NfY2hhaW4gPSBtYWtlX2NsZWFudXAgKHhmcmVl LCBhcmcpOwotIAotICAgcHJlcGFyZV9leGVjdXRpb25fY29tbWFuZCAoJmN1cnJlbnRfdGFyZ2V0 LCBhc3luY19leGVjKTsKLSAKLUBAIC0xMzg5LDEyICsxNDExLDE2IEBAIHVudGlsX2NvbW1hbmQg KGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQotICAgICB1bnRpbF9icmVha19jb21tYW5kIChhcmcs IGZyb21fdHR5LCAwKTsKLSAgIGVsc2UKLSAgICAgdW50aWxfbmV4dF9jb21tYW5kIChmcm9tX3R0 eSk7Ci0rCi0rICAvKiBEb25lIHdpdGggQVJHUy4gICovCi0rICBkb19jbGVhbnVwcyAoYXJnc19j aGFpbik7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi0gYWR2YW5jZV9jb21tYW5kIChjaGFyICphcmcs IGludCBmcm9tX3R0eSkKLSB7Ci0tICBpbnQgYXN5bmNfZXhlYyA9IDA7Ci0rICBpbnQgYXN5bmNf ZXhlYzsKLSsgIHN0cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOwotIAotICAgRVJST1JfTk9fSU5G RVJJT1I7Ci0gICBlbnN1cmVfbm90X3RmaW5kX21vZGUgKCk7Ci1AQCAtMTQwNSwxMiArMTQzMSwx NSBAQCBhZHZhbmNlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQotICAgICBlcnJv cl9ub19hcmcgKF8oImEgbG9jYXRpb24iKSk7Ci0gCi0gICAvKiBGaW5kIG91dCB3aGV0aGVyIHdl IG11c3QgcnVuIGluIHRoZSBiYWNrZ3JvdW5kLiAgKi8KLS0gIGlmIChhcmcgIT0gTlVMTCkKLS0g ICAgYXN5bmNfZXhlYyA9IHN0cmlwX2JnX2NoYXIgKCZhcmcpOwotKyAgYXJnID0gc3RyaXBfYmdf Y2hhciAoYXJnLCAmYXN5bmNfZXhlYyk7Ci0rICBhcmdzX2NoYWluID0gbWFrZV9jbGVhbnVwICh4 ZnJlZSwgYXJnKTsKLSAKLSAgIHByZXBhcmVfZXhlY3V0aW9uX2NvbW1hbmQgKCZjdXJyZW50X3Rh cmdldCwgYXN5bmNfZXhlYyk7Ci0gCi0gICB1bnRpbF9icmVha19jb21tYW5kIChhcmcsIGZyb21f dHR5LCAxKTsKLSsKLSsgIC8qIERvbmUgd2l0aCBBUkdTLiAgKi8KLSsgIGRvX2NsZWFudXBzIChh cmdzX2NoYWluKTsKLSB9Ci0gDAotIC8qIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHJlc3VsdCBv ZiBhIGZ1bmN0aW9uIGF0IHRoZSBlbmQgb2YgYSAnZmluaXNoJwotQEAgLTE2ODYsOCArMTcxNSw4 IEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSB7Ci0gICBzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnJhbWU7Ci0gICBzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbjsKLS0KLS0g IGludCBhc3luY19leGVjID0gMDsKLSsgIGludCBhc3luY19leGVjOwotKyAgc3RydWN0IGNsZWFu dXAgKmFyZ3NfY2hhaW47Ci0gCi0gICBFUlJPUl9OT19JTkZFUklPUjsKLSAgIGVuc3VyZV9ub3Rf dGZpbmRfbW9kZSAoKTsKLUBAIC0xNjk1LDE0ICsxNzI0LDE3IEBAIGZpbmlzaF9jb21tYW5kIChj aGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAgIGVuc3VyZV9ub3RfcnVubmluZyAoKTsKLSAKLSAg IC8qIEZpbmQgb3V0IHdoZXRoZXIgd2UgbXVzdCBydW4gaW4gdGhlIGJhY2tncm91bmQuICAqLwot LSAgaWYgKGFyZyAhPSBOVUxMKQotLSAgICBhc3luY19leGVjID0gc3RyaXBfYmdfY2hhciAoJmFy Zyk7Ci0rICBhcmcgPSBzdHJpcF9iZ19jaGFyIChhcmcsICZhc3luY19leGVjKTsKLSsgIGFyZ3Nf Y2hhaW4gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBhcmcpOwotIAotICAgcHJlcGFyZV9leGVjdXRp b25fY29tbWFuZCAoJmN1cnJlbnRfdGFyZ2V0LCBhc3luY19leGVjKTsKLSAKLSAgIGlmIChhcmcp Ci0gICAgIGVycm9yIChfKCJUaGUgXCJmaW5pc2hcIiBjb21tYW5kIGRvZXMgbm90IHRha2UgYW55 IGFyZ3VtZW50cy4iKSk7Ci0gCi0rICAvKiBEb25lIHdpdGggQVJHUy4gICovCi0rICBkb19jbGVh bnVwcyAoYXJnc19jaGFpbik7Ci0rCi0gICBmcmFtZSA9IGdldF9wcmV2X2ZyYW1lIChnZXRfc2Vs ZWN0ZWRfZnJhbWUgKF8oIk5vIHNlbGVjdGVkIGZyYW1lLiIpKSk7Ci0gICBpZiAoZnJhbWUgPT0g MCkKLSAgICAgZXJyb3IgKF8oIlwiZmluaXNoXCIgbm90IG1lYW5pbmdmdWwgaW4gdGhlIG91dGVy bW9zdCBmcmFtZS4iKSk7Ci1AQCAtMjQ3Niw3ICsyNTA4LDggQEAgYXR0YWNoX2NvbW1hbmRfY29u dGludWF0aW9uX2ZyZWVfYXJncyAodm9pZCAqYXJncykKLSB2b2lkCi0gYXR0YWNoX2NvbW1hbmQg KGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKLSB7Ci0tICBpbnQgYXN5bmNfZXhlYyA9IDA7Ci0r ICBpbnQgYXN5bmNfZXhlYzsKLSsgIHN0cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOwotICAgc3Ry dWN0IHRhcmdldF9vcHMgKmF0dGFjaF90YXJnZXQ7Ci0gCi0gICBkb250X3JlcGVhdCAoKTsJCS8q IE5vdCBmb3IgdGhlIGZhaW50IG9mIGhlYXJ0ICovCi1AQCAtMjQ5Nyw4ICsyNTMwLDggQEAgYXR0 YWNoX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKLSAgICAgIHRoaXMgZnVuY3Rp b24gc2hvdWxkIHByb2JhYmx5IGJlIG1vdmVkIGludG8gdGFyZ2V0X3ByZV9pbmZlcmlvci4gICov Ci0gICB0YXJnZXRfcHJlX2luZmVyaW9yIChmcm9tX3R0eSk7Ci0gCi0tICBpZiAoYXJncyAhPSBO VUxMKQotLSAgICBhc3luY19leGVjID0gc3RyaXBfYmdfY2hhciAoJmFyZ3MpOwotKyAgYXJncyA9 IHN0cmlwX2JnX2NoYXIgKGFyZ3MsICZhc3luY19leGVjKTsKLSsgIGFyZ3NfY2hhaW4gPSBtYWtl X2NsZWFudXAgKHhmcmVlLCBhcmdzKTsKLSAKLSAgIGF0dGFjaF90YXJnZXQgPSBmaW5kX2F0dGFj aF90YXJnZXQgKCk7Ci0gCi1AQCAtMjUxMiw2ICsyNTQ1LDkgQEAgYXR0YWNoX2NvbW1hbmQgKGNo YXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKLSAgICAgIHNob3VsZG4ndCByZWZlciB0byBhdHRhY2hf dGFyZ2V0IGFnYWluLiAgKi8KLSAgIGF0dGFjaF90YXJnZXQgPSBOVUxMOwotIAotKyAgLyogRG9u ZSB3aXRoIEFSR1MuICAqLwotKyAgZG9fY2xlYW51cHMgKGFyZ3NfY2hhaW4pOwotKwotICAgLyog U2V0IHVwIHRoZSAic2F2ZWQgdGVybWluYWwgbW9kZXMiIG9mIHRoZSBpbmZlcmlvcgotICAgICAg YmFzZWQgb24gd2hhdCBtb2RlcyB3ZSBhcmUgc3RhcnRpbmcgaXQgd2l0aC4gICovCi0gICB0YXJn ZXRfdGVybWluYWxfaW5pdCAoKTsKLSMjIyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyMg Yi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMgLTEsNSArMSwxMSBAQAotIDIwMTQtMTAtMTcg IFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0gCi0rCVBSIGdkYi8xNzQ3MQotKwkq IGdkYi5iYXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQuYzogTmV3IGZpbGUuCi0rCSogZ2RiLmJhc2Uv YmctZXhlY3V0aW9uLXJlcGVhdC5leHA6IE5ldyBmaWxlLgotKwotKzIwMTQtMTAtMTcgIFBlZHJv IEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0rCi0gCVBSIGdkYi8xNzMwMAotIAkqIGdkYi5i YXNlL2NvbnRpbnVlLWFsbC1hbHJlYWR5LXJ1bm5pbmcuYzogTmV3IGZpbGUuCi0gCSogZ2RiLmJh c2UvY29udGludWUtYWxsLWFscmVhZHktcnVubmluZy5leHA6IE5ldyBmaWxlLgotLS0tIC9kZXYv bnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9iZy1leGVjdXRpb24tcmVwZWF0LmMK LUBAIC0wLDAgKzEsMzMgQEAKLSsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUg R05VIGRlYnVnZ2VyLgotKwotKyAgIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K LSsKLSsjaW5jbHVkZSA8dW5pc3RkLmg+Ci0rCi0raW50Ci0rZm9vICh2b2lkKQotK3sKLSsgIHJl dHVybiAwOyAvKiBzZXQgYnJlYWsgaGVyZSAqLwotK30KLSsKLStpbnQKLSttYWluICh2b2lkKQot K3sKLSsgIGZvbyAoKTsKLSsgIHNsZWVwICg1KTsKLSsgIGZvbyAoKTsKLSsgIHJldHVybiAwOwot K30KLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYmctZXhlY3V0 aW9uLXJlcGVhdC5leHAKLUBAIC0wLDAgKzEsODYgQEAKLSsjIENvcHlyaWdodCAoQykgMjAxNCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCi0rCi0rIyBUZXN0IHRoYXQgcmVwZWF0aW5nIGEgYmFja2dyb3VuZCBjb21tYW5kIGRv ZXNuJ3QgbG9zZSB0aGUgIiYiIGluIHRoZQotKyMgcmVwZWF0LCB0dXJuaW5nIGEgYmFja2dyb3Vu ZCBjb21tYW5kIGludG8gYSBmb3JlZ3JvdW5kIGNvbW1hbmQuICBTZWUKLSsjIFBSIGdkYi8xNzQ3 MS4KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZQotKwotK2lmIHsgW2J1aWxkX2V4ZWN1dGFibGUgImZh aWxlZCB0byBwcmVwYXJlIiAke3Rlc3RmaWxlfSAkc3JjZmlsZV0gfSB7Ci0rICAgIHJldHVybiAt MQotK30KLSsKLStzZXQgbGluZW51bSBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrIGhl cmUiXQotKwotKyMgUnVuIHRoZSB0ZXN0IHByb3Blci4gIENPTlRJTlVFX0NNRCBpcyB0aGUgYmFj a2dyb3VuZCBjb250aW51ZQotKyMgY29tbWFuZCB0byBpc3N1ZS4KLSsKLStwcm9jIHRlc3Qge2Nv bnRpbnVlX2NtZH0gewotKyAgICBnbG9iYWwgZ2RiX3Byb21wdAotKyAgICBnbG9iYWwgYmluZmls ZQotKyAgICBnbG9iYWwgbGluZW51bQotKwotKyAgICBjbGVhbl9yZXN0YXJ0ICRiaW5maWxlCi0r Ci0rICAgIGlmICFbcnVudG9fbWFpbl0gewotKwlyZXR1cm4KLSsgICAgfQotKwotKyAgICBnZGJf YnJlYWtwb2ludCAiJGxpbmVudW0iCi0rCi0rICAgIHNldCB0ZXN0ICRjb250aW51ZV9jbWQKLSsg ICAgZ2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3QgJHRlc3QgewotKwktcmUgIkNvbnRpbnVpbmdcXC5c clxuJGdkYl9wcm9tcHQgIiB7Ci0rCSAgICAjIE5vdGUgbm8gZW5kIGFuY2hvci4gIElmIHRoZSBi cmVha3BvaW50IHRyaWdnZXJzIHNvb24gZW5vdWdoCi0rCSAgICAjIGVub3VnaCB3ZSBzZWUgZnVy dGhlciBvdXRwdXQgYWZ0ZXIgdGhlIHByb21wdC4KLSsJICAgIHBhc3MgJHRlc3QKLSsJfQotKyAg ICB9Ci0rCi0rICAgICMgV2FpdCBmb3IgdGhlIHN0b3AuICBEb24ndCBleHBlY3QgYSBwcm9tcHQs IGFzIHdlIGhhZCByZXN1bWVkIHRoZQotKyAgICAjIGluZmVyaW9yIGluIHRoZSBiYWNrZ3JvdW5k LgotKyAgICBzZXQgdGVzdCAiYnJlYWtwb2ludCBoaXQgMSIKLSsgICAgZ2RiX3Rlc3RfbXVsdGlw bGUgIiIgJHRlc3QgewotKwktcmUgInNldCBicmVhayBoZXJlIiB7Ci0rCSAgICBwYXNzICR0ZXN0 Ci0rCX0KLSsgICAgfQotKwotKyAgICAjIFRyaWdnZXIgYSByZXBlYXQuICBCdWdneSBHREIgdXNl ZCB0byBsb3NlIHRoZSAiJiIsIG1ha2luZyB0aGlzIGEKLSsgICAgIyBmb3JlZ3JvdW5kIGNvbW1h bmQuLi4KLSsgICAgc2VuZF9nZGIgIlxuIgotKyAgICBnZGJfdGVzdCAiIiAiQ29udGludWluZ1xc LiIgInJlcGVhdCBiZyBjb21tYW5kIgotKwotKyAgICAjIC4uLiBhbmQgdGh1cyBmdXJ0aGVyIGlu cHV0IHdvdWxkbid0IGJlIHByb2Nlc3NlZCB1bnRpbCB0aGUgdGFyZ2V0Ci0rICAgICMgc3RvcHBl ZC4KLSsgICAgZ2RiX3Rlc3QgInByaW50IDEiICIgPSAxIiAiaW5wdXQgc3RpbGwgYWNjZXB0ZWQi Ci0rCi0rICAgICMgTWFrZSBzdXJlIHdlIHNlZSBhIHN0b3AgYWZ0ZXIgdGhlIHByaW50LCBhbmQg bm90IGJlZm9yZS4gIERvbid0Ci0rICAgICMgZXhwZWN0IGEgcHJvbXB0LCBhcyB3ZSBoYWQgcmVz dW1lZCB0aGUgaW5mZXJpb3IgaW4gdGhlIGJhY2tncm91bmQuCi0rICAgIHNldCB0ZXN0ICJicmVh a3BvaW50IGhpdCAyIgotKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0rCS1yZSAi c2V0IGJyZWFrIGhlcmUgLi5cclxuIiB7Ci0rCSAgICBwYXNzICR0ZXN0Ci0rCX0KLSsgICAgfQot K30KLSsKLSsjIFRlc3Qgd2l0aCBhbmQgd2l0aG91dCBleHRyYSBhcmd1bWVudHMuCi0rZm9yZWFj aCBjbWQgeyJjJiIgImMgMSYifSB7Ci0rICAgIHdpdGhfdGVzdF9wcmVmaXggJGNtZCB7Ci0rCXRl c3QgJGNtZAotKyAgICB9Ci0rfQotLS0gCi0xLjkuMwotCi0KLQotY29tbWl0IDU0ZmJjNzUwYjU0 MjcxZWZiNzVhZTExY2U0OWYxNGM0MjM0YTk0NzYKLUF1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiAgIFRodSBTZXAgMTggMDg6MjE6NDAgMjAx NCArMDIwMAotCi0gICAgRml4IHJlZ3Jlc3Npb24gZm9yIExpbnV4IHZEU08gaW4gR0RCIChQUiBn ZGIvMTc0MDcpLgotICAgIAotICAgIHNpbmNlCi0gICAgCTU5NzlkNmI2OWIyMGE4MzU1ZWE5NGI3 NWZhZDk3NDE1ZmNlNDc4OGMKLSAgICAJaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Ymlu dXRpbHMtZ2RiLmdpdDthPWNvbW1pdGRpZmY7aD01OTc5ZDZiNjliMjBhODM1NWVhOTRiNzVmYWQ5 NzQxNWZjZTQ3ODhjCi0gICAgCXZkc28gaGFuZGxpbmcKLSAgICAJaHR0cHM6Ly9zb3VyY2V3YXJl Lm9yZy9tbC9iaW51dGlscy8yMDE0LTAzL21zZzAwMDgyLmh0bWwKLSAgICAJaHR0cHM6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9iaW51dGlscy8yMDE0LTA0L21zZzAwMDAzLmh0bWwKLSAgICAJTWVzc2Fn ZS1JRDogPEE3OEM5ODlGNkQ5NjI4NDY5MTg5NzE1NTc1RTU1QjIzMEFBODg0RUJASVJTTVNYMTA0 Lmdlci5jb3JwLmludGVsLmNvbT4KLSAgICBJIGdldCBvbgotICAgIAlrZXJuZWwtMy4xNi4yLTIw MC5mYzIwLng4Nl82NAotICAgIAlodHRwczovL2tvamkuZmVkb3JhcHJvamVjdC5vcmcva29qaS9i dWlsZGluZm8/YnVpbGRJRD01NzU4NjAKLSAgICAJYXR0YWNoaW5nIGl0cyB2ZHNvLmJpbi5negot ICAgIEdEQiAoRlNGIEhFQUQgNWU0M2Q0Njc5MWM0YzY2ZmQ4Mzk0N2ExMmQ0ZjcxNmI1NjFhOTEw MykgcmVncmVzc2lvbjoKLSAgICByZXByb2R1Y2VyOgotICAgIAkuL2dkYiAtZXggc3RhcnQgLi9n ZGIKLSAgICBhY3R1YWwgcmVzdWx0IC8gRkFJTDoKLSAgICAJR290IG9iamVjdCBmaWxlIGZyb20g bWVtb3J5IGJ1dCBjYW4ndCByZWFkIHN5bWJvbHM6IEZpbGUgdHJ1bmNhdGVkLgotICAgIGV4cGVj dGVkIHJlc3VsdCAvIFBBU1M6Ci0gICAgCTxub3RoaW5nPgotICAgIG9yIC8gUEFTUzoKLSAgICAJ d2FybmluZzogQ291bGQgbm90IGxvYWQgc2hhcmVkIGxpYnJhcnkgc3ltYm9scyBmb3IgbGludXgt dmRzby5zby4xLgotICAgIAlEbyB5b3UgbmVlZCAic2V0IHNvbGliLXNlYXJjaC1wYXRoIiBvciAi c2V0IHN5c3Jvb3QiPwotICAgIAotICAgIFRoYXQgIndhcm5pbmc6IENvdWxkIG5vdCBsb2FkIHNo YXJlZCBsaWJyYXJ5Li4uIiBpcyBtb3N0bHkgaGFybWxlc3MgKGl0IGlzCi0gICAgYSBidWcgaW4g R0RCKSwgaW4gdGhlIEZBSUwgY2FzZSBpdCBpcyBub3QgcHJpbnRlZCBqdXN0IGJlY2F1c2UKLSAg ICBiZmRfY2hlY2tfZm9ybWF0KCkgZmFpbHMgdGhlcmUuCi0gICAgCi0gICAgSXQgc2VlbXMgbG9n aWNhbCB0byBtZSB0aGlzIHdheSB3aGVuIHRoZSAnc2l6ZScgcGFyYW1ldGVyIGhhcyBiZWVuIGFs cmVhZHkKLSAgICBhZGRlZC4KLSAgICBBbGFuIE1vZHJhOgotICAgIEkgd2FzIHdyb25nbHkgdGhp bmtpbmcgdGhhdCB0aGUgc2VjdGlvbiBoZWFkZXJzIHdlcmUKLSAgICBhbHdheXMgbGFzdCB3aGVu IEkgd3JvdGUgdGhhdCBjb2RlLiAgKFRoZXkgYXJlIG5vdyEgIElmIHlvdSByZWxpbmsKLSAgICB0 aGF0IHZkc28gd2l0aCBjdXJyZW50IGJpbnV0aWxzIG1hc3RlciB5b3Ugd29uJ3QgaGl0IHRoaXMg cHJvYmxlbSwgYnV0Ci0gICAgdGhhdCBvZiBjb3Vyc2UgZG9lc24ndCBoZWxwIGV4aXN0aW5nIGtl cm5lbHMuKQotICAgIAotICAgIEkgZG8gbm90IHNlZSBhIHJlZ3Jlc3Npb24gZm9yIGFkZC1zeW1i b2wtZmlsZS1mcm9tLW1lbW9yeSBmb3IgbGlibmN1cnNlcy5zby41Ci0gICAgZnJvbSB0aGUgb3Jp Z2luYWwgdGhyZWFkIGFib3ZlLgotICAgIAotICAgICAgU3RhcnQgb2Ygc2VjdGlvbiBoZWFkZXJz OiAgICAgICAgICAxMDgwIChieXRlcyBpbnRvIGZpbGUpCi0gICAgICBTaXplIG9mIHNlY3Rpb24g aGVhZGVyczogICAgICAgICAgIDY0IChieXRlcykKLSAgICAgIE51bWJlciBvZiBzZWN0aW9uIGhl YWRlcnM6ICAgICAgICAgMTMKLSAgICAgIFNlY3Rpb24gaGVhZGVyIHN0cmluZyB0YWJsZSBpbmRl eDogOAotICAgIFNlY3Rpb24gSGVhZGVyczoKLSAgICAgIFtOcl0gTmFtZSAgICAgICAgICAgICAg VHlwZSAgICAgICAgICAgIEFkZHJlc3MgICAgICAgICAgT2ZmICAgIFNpemUgICBFUyBGbGcgTGsg SW5mIEFsCi0gICAgICBbIDhdIC5mYWtlX3Noc3RydGFiICAgIFNUUlRBQiAgICAgICAgICAwMDAw MDAwMDAwMDAwNzgwIDAwMDc4MCAwMDAwNzYgMDAgICBBICAwICAgMCAzMgotICAgIFByb2dyYW0g SGVhZGVyczoKLSAgICAgIFR5cGUgICAgICAgICAgIE9mZnNldCAgIFZpcnRBZGRyICAgICAgICAg ICBQaHlzQWRkciAgICAgICAgICAgRmlsZVNpeiAgTWVtU2l6ICAgRmxnIEFsaWduCi0gICAgICBM T0FEICAgICAgICAgICAweDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAw MDAwIDB4MDAxMmZlIDB4MDAxMmZlIFIgRSAweDEwMDAKLSAgICAKLSAgICBzaXplID09IDB4MjAw MAotICAgIHNoZHJfZW5kID09IDB4Nzc4ID09IDEwODAgKyAxMyAqIDY0Ci0gICAgaGlnaF9vZmZz ZXQgPT0gMHgxMmZlCi0gICAgCi0gICAgICAgICAgIGVsc2UgaWYgKHNpemUgPj0gc2hkcl9lbmQp Ci0gICAgLQloaWdoX29mZnNldCA9IHNoZHJfZW5kOwotICAgICsJaGlnaF9vZmZzZXQgPSBzaXpl OwotICAgIAotICAgIEJ1dCB0aGVuIDB4Nzc4IDwgMHg3ODAgZm9yICJTZWN0aW9uIGhlYWRlciBz dHJpbmcgdGFibGUgaW5kZXgiIHNvIHdob2xlCi0gICAgYmZkX2NoZWNrX2Zvcm1hdCgpIGZhaWxz IGJlY2F1c2Ugc2VjdGlvbiBoZWFkZXJzIHdlcmUgbm90IGNsZWFyZWQgaGVyZToKLSAgICAgIC8q IElmIHRoZSBzZWdtZW50cyB2aXNpYmxlIGluIG1lbW9yeSBkaWRuJ3QgaW5jbHVkZSB0aGUgc2Vj dGlvbiBoZWFkZXJzLAotICAgICAgICAgdGhlbiBjbGVhciB0aGVtIGZyb20gdGhlIGZpbGUgaGVh ZGVyLiAgKi8KLSAgICAgIGlmIChoaWdoX29mZnNldCA8IHNoZHJfZW5kKQotICAgIAotICAgIGJm ZC9DaGFuZ2VMb2cKLSAgICAyMDE0LTA5LTE4ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+Ci0gICAgCi0gICAgCVBSIGdkYi8xNzQwNwotICAgIAkqIGVsZmNvZGUu aCAoYmZkX2Zyb21fcmVtb3RlX21lbW9yeSk6IFVzZSBTSVpFIGZvciBISUdIX09GRlNFVC4KLQot IyMjIGEvYmZkL0NoYW5nZUxvZwotIyMjIGIvYmZkL0NoYW5nZUxvZwotIyMgLTEsMyArMSw4IEBA Ci0rMjAxNC0wOS0xOCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PgotKwotKwlQUiBnZGIvMTc0MDcKLSsJKiBlbGZjb2RlLmggKGJmZF9mcm9tX3JlbW90ZV9tZW1v cnkpOiBVc2UgU0laRSBmb3IgSElHSF9PRkZTRVQuCi0rCi0gMjAxNC0wNy0xNiAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgotIAotIAkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcGx0 X3N5bV92YWwpOiBNYXRjaCBQTFQgZW50cnkgb25seSBmb3IKLS0tLSBhL2JmZC9lbGZjb2RlLmgK LSsrKyBiL2JmZC9lbGZjb2RlLmgKLUBAIC0xNzQ5LDcgKzE3NDksNyBAQCBOQU1FKF9iZmRfZWxm LGJmZF9mcm9tX3JlbW90ZV9tZW1vcnkpCi0gCSAgICAgaGVhZGVycy4gICovCi0gCX0KLSAgICAg ICBlbHNlIGlmIChzaXplID49IHNoZHJfZW5kKQotLQloaWdoX29mZnNldCA9IHNoZHJfZW5kOwot KwloaWdoX29mZnNldCA9IHNpemU7Ci0gICAgICAgZWxzZQotIAl7Ci0gCSAgYmZkX3ZtYSBwYWdl X3NpemUgPSBnZXRfZWxmX2JhY2tlbmRfZGF0YSAodGVtcGwpLT5taW5wYWdlc2l6ZTsKCmRpZmYg LS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IDY5MWJiZWYuLjNmYjE0YzQgMTAwNjQ0 Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC0yMiwxNyArMjIsMTcgQEAgTmFtZTog JXs/c2NsX3ByZWZpeH1nZGIKICMgU2VlIHRpbWVzdGFtcCBvZiBzb3VyY2UgZ251bGliIGluc3Rh bGxlZCBpbnRvIGdkYi9nbnVsaWIvIC4KICVnbG9iYWwgc25hcGdudWxpYiAyMDEyMTIxMwogJWds b2JhbCB0YXJuYW1lIGdkYi0le3ZlcnNpb259Ci1WZXJzaW9uOiA3LjgKK1ZlcnNpb246IDcuOC4x CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1i ZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScg dG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5n LgotUmVsZWFzZTogMjklez9kaXN0fQorUmVsZWFzZTogMzAlez9kaXN0fQogCiBMaWNlbnNlOiBH UEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdp dGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9t YWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCiAjIERvIG5vdCBwcm92 aWRlIFVSTCBmb3Igc25hcHNob3RzIGFzIHRoZSBmaWxlIGxhc3RzIHRoZXJlIG9ubHkgZm9yIDIg ZGF5cy4KLSMgZnRwOi8vc291cmNld2FyZS5vcmcvcHViL2dkYi9yZWxlYXNlcy9nZGItJXt2ZXJz aW9ufS50YXIuZ3oKLVNvdXJjZTogJXt0YXJuYW1lfS50YXIuZ3oKKyMgZnRwOi8vc291cmNld2Fy ZS5vcmcvcHViL2dkYi9yZWxlYXNlcy9nZGItJXt2ZXJzaW9ufS50YXIueHoKK1NvdXJjZTogZnRw Oi8vc291cmNld2FyZS5vcmcvcHViL2dkYi9yZWxlYXNlcy8le3Rhcm5hbWV9LnRhci54egogQnVp bGRyb290OiAlKG1rdGVtcCAtdWQgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVs ZWFzZX0tWFhYWFhYKQogVVJMOiBodHRwOi8vZ251Lm9yZy9zb2Z0d2FyZS9nZGIvCiAKQEAgLTUy NCwyMCArNTI0LDEwIEBAIFBhdGNoOTIxOiBnZGItcHl0aG9uLWNvbXBsZXRlci0yb2YyLnBhdGNo CiAjIERpc3BsYXkgRm9ydHJhbiBzdHJpbmdzIGluIGJhY2t0cmFjZXMuCiBQYXRjaDkyNTogZ2Ri LWZvcnRyYW4tZnJhbWUtc3RyaW5nLnBhdGNoCiAKLSMgRml4IC1XZXJyb3I9dW51c2VkLXZhcmlh YmxlIGVycm9yIGNvbmZpZ3VyaW5nIGJhYmVsdHJhY2UuCi0jIEZpeCBiYWJlbHRyYWNlIGVycm9y cyAoWWFvIFFpKS4KLVBhdGNoOTI2OiBnZGItYmFiZWx0cmFjZS1jb25maWd1cmUucGF0Y2gKLVBh dGNoOTI4OiBnZGItYmFiZWx0cmFjZS1taW5zaXplLnBhdGNoCi0KICMgRml4IFB5dGhvbiBHSUwg d2l0aCBnZGIuZXhlY3V0ZSgiY29udGludWUiKSAoUGhpbCBNdWxkb29uLCBCWiAxMTE2OTU3KS4K IFBhdGNoOTI3OiBnZGItcHl0aG9uLWdpbC5wYXRjaAogCi0jIEZpeCBjcmFzaCBvbiBQeXRob24g ZnJhbWUgZmlsdGVycyB3aXRoIHVucmVhZGFibGUgYXJnIChCWiAxMTI2MTc3KS4KLVBhdGNoOTI5 OiBweXRob24tZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5wYXRjaAotCiAjIEZpeCBHREIgU0lHVFQq IFN0b3BwZWQgd2hlbiB1c2luZyB0aGUgUElEIGFyZ3VtZW50IChCWiAxMTM2NzA0LCBQZWRybyBB bHZlcykuCi1QYXRjaDkzMDogZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy0xb2YyLnBhdGNo Ci1QYXRjaDkzMTogZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy0yb2YyLnBhdGNoCiBQYXRj aDk3MDogZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy10ZXN0c3VpdGUucGF0Y2gKIAogIyBG aXggInNhdmUgYnJlYWtwb2ludHMiIGZvciBzaWduYWwgY2F0Y2hwb2ludHMgYW5kIGRpc2FibGVk IGJyZWFrcG9pbnRzCkBAIC04MzMsMTIgKzgyMyw3IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhh cmdzIHJtIC1mCiAlcGF0Y2g5MjAgLXAxCiAlcGF0Y2g5MjEgLXAxCiAlcGF0Y2g5MjUgLXAxCi0l cGF0Y2g5MjYgLXAxCi0lcGF0Y2g5MjggLXAxCiAlcGF0Y2g5MjcgLXAxCi0lcGF0Y2g5MjkgLXAx Ci0lcGF0Y2g5MzAgLXAxCi0lcGF0Y2g5MzEgLXAxCiAlcGF0Y2g5NzAgLXAxCiAlcGF0Y2g5NzEg LXAxCiAlcGF0Y2g5NzMgLXAxCkBAIC0xMzQzLDYgKzEzMjgsOSBAQCB0aGVuCiBmaQogCiAlY2hh bmdlbG9nCisqIFRodSBPY3QgMzAgMjAxNCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4gLSA3LjguMS0zMC5mYzIxCistIFJlYmFzZSB0byBGU0YgR0RCIDcuOC4xLgor CiAqIE1vbiBPY3QgMjcgMjAxNCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4gLSA3LjgtMjkuZmMyMQogLSBCYWNrcG9ydCB2RFNPIHJlZ3Jlc3Npb24uCiAtIFJldmVy dCB0aGUgbWFrZWluZm8gd29ya2Fyb3VuZCBmcm9tIDcuOC0yNy5mYzIxLgoKZGlmZiAtLWdpdCBh L3B5dGhvbi1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLnBhdGNoIGIvcHl0aG9uLWZyYW1lZmlsdGVy LWludmFsaWRhcmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjMWYxNmIu LjAwMDAwMDAKLS0tIGEvcHl0aG9uLWZyYW1lZmlsdGVyLWludmFsaWRhcmcucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw1OTYgKzAsMCBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1w YXRjaGVzLzIwMTQtMDgvbXNnMDAzNjQuaHRtbAotU3ViamVjdDogW3BhdGNoKzcuOD9dIEZpeCBj cmFzaCBvbiBQeXRob24gZnJhbWUgZmlsdGVycyB3aXRoIHVucmVhZGFibGUgYXJnCi0KLQotLS1k NkdtNEVkY2FkekJqZE5ECi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNj aWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQotCi1IaSwKLQotaHR0cHM6Ly9idWd6aWxs YS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMTI2MTc3Ci0KLUVSUk9SOiBBZGRyZXNzU2Fu aXRpemVyOiBTRUdWIG9uIHVua25vd24gYWRkcmVzcyAweDAwMDAwMDAwMDA1MCAocGMgMHgwMDAw MDA5OTJiZWYgc3AgMHg3ZmZmZjkwMzk1MzAgYnAgMHg3ZmZmZjkwMzk1NDAgVDApCi0gICAgIzAg MHg5OTJiZWUgaW4gdmFsdWVfdHlwZSAuLi4vZ2RiL3ZhbHVlLmM6OTI1Ci0gICAgIzEgMHg4N2M5 NTEgaW4gcHlfcHJpbnRfc2luZ2xlX2FyZyBweXRob24vcHktZnJhbWVmaWx0ZXIuYzo0NDUKLSAg ICAjMiAweDg3Y2ZhZSBpbiBlbnVtZXJhdGVfYXJncyBweXRob24vcHktZnJhbWVmaWx0ZXIuYzo1 OTYKLSAgICAjMyAweDg3ZTBiMCBpbiBweV9wcmludF9hcmdzIHB5dGhvbi9weS1mcmFtZWZpbHRl ci5jOjk2OAotCi1JdCBjcmFzaGVzIGJlY2F1c2UgZnJhbWVfYXJnOjp2YWwgaXMgZG9jdW1lbnRl ZCBpdCBtYXkgY29udGFpbiBOVUxMCi0oZnJhbWVfYXJnOjplcnJvciBpcyB0aGVuIG5vbi1OVUxM KSBidXQgdGhlIGNvZGUgZG9lcyBub3QgaGFuZGxlIGl0LgotCi1Bbm90aGVyIGJ1ZyBpcyB0aGF0 IHB5X3ByaW50X3NpbmdsZV9hcmcoKSBjYWxscyBnb3RvIG91dCBvZiBpdHMgVFJZX0NBVENICi13 aGljaCBtZXNzZXMgdXAgR0RCIGNsZWFudXAgY2hhaW4gY3Jhc2hpbmcgR0RCIGxhdGVyLgotCi1J IHRyaWVkIHRvIHNvbWVob3cgc2VwYXJhdGUgaXQgdG8gdHdvIHBhdGNoZXMgZmlyc3QgYnV0IGl0 IGluIHRoZSBlbmQga2VwdAotdGhlbSBtZXJnZWQuCi0KLU5vIHJlZ3Jlc3Npb25zIG9uIHt4ODZf NjQseDg2XzY0LW0zMixpNjg2fS1mZWRvcmFyYXdoaWRlLWxpbnV4LWdudS4KLQotSXQgaXMgcHJv YmFibHkgNy43IHJlZ3Jlc3Npb24gKEkgaGF2ZSBub3QgdmVyaWZpZWQgaXQpIGR1ZSB0byB0aGUg aW50cm9kdWN0aW9uCi1vZiBQeXRob24gZnJhbWUgZmlsdGVycy4KLQotSSBhbSBub3Qgc3VyZSBp ZiBpdCBpcyBtb3JlIHN1aXRhYmxlIGZvciBnZGIuYXJjaC8gb3IgZ2RiLnB5dGhvbi8gLCB1c2Vk IHRoZQotbGF0dGVyLgotCi0KLVRoYW5rcywKLUphbgotCi0tLWQ2R200RWRjYWR6QmpkTkQKLUNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3Np dGlvbjogaW5saW5lOyBmaWxlbmFtZT0icHlpbnZhbGlkYXJnLnBhdGNoIgotCi1nZGIvCi0yMDE0 LTA4LTE5ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkq IHB5dGhvbi9weS1mcmFtZWZpbHRlci5jIChweV9wcmludF9zaW5nbGVfYXJnKTogSGFuZGxlIE5V TEwgRkEtPlZBTC4KLQlGaXggZ290byBvdXQgb2YgVFJZX0NBVENILgotCi1nZGIvdGVzdHN1aXRl LwotMjAxNC0wOC0xOSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PgotCi0JKiBnZGIucHl0aG9uL2FtZDY0LXB5LWZyYW1lZmlsdGVyLWludmFsaWRhcmcuUzogTmV3 IGZpbGUuCi0JKiBnZGIucHl0aG9uL3B5LWZyYW1lZmlsdGVyLWludmFsaWRhcmctZ2RiLnB5Lmlu OiBOZXcgZmlsZS4KLQkqIGdkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5leHA6 IE5ldyBmaWxlLgotCSogZ2RiLnB5dGhvbi9weS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLnB5OiBO ZXcgZmlsZS4KLQotZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYyBiL2dk Yi9weXRob24vcHktZnJhbWVmaWx0ZXIuYwotaW5kZXggOWRiODNjNy4uZDUzMjgyZiAxMDA2NDQK LS0tLSBhL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYwotKysrIGIvZ2RiL3B5dGhvbi9weS1m cmFtZWZpbHRlci5jCi1AQCAtMzY1LDkgKzM2NSwxMiBAQCBweV9wcmludF9zaW5nbGVfYXJnIChz dHJ1Y3QgdWlfb3V0ICpvdXQsCi0gewotICAgc3RydWN0IHZhbHVlICp2YWw7Ci0gICB2b2xhdGls ZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7Ci0rICBlbnVtIGV4dF9sYW5nX2J0X3N0YXR1 cyByZXR2YWwgPSBFWFRfTEFOR19CVF9PSzsKLSAKLSAgIGlmIChmYSAhPSBOVUxMKQotICAgICB7 Ci0rICAgICAgaWYgKGZhLT52YWwgPT0gTlVMTCAmJiBmYS0+ZXJyb3IgPT0gTlVMTCkKLSsJcmV0 dXJuIEVYVF9MQU5HX0JUX09LOwotICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2VfZGVmIChTWU1C T0xfTEFOR1VBR0UgKGZhLT5zeW0pKTsKLSAgICAgICB2YWwgPSBmYS0+dmFsOwotICAgICB9Ci1A QCAtNDMzLDE2ICs0MzYsMTggQEAgcHlfcHJpbnRfc2luZ2xlX2FyZyAoc3RydWN0IHVpX291dCAq b3V0LAotICAgICAgIC8qIEZvciBNSSBwcmludCB0aGUgdHlwZSwgYnV0IG9ubHkgZm9yIHNpbXBs ZSB2YWx1ZXMuICBUaGlzIHNlZW1zCi0gCSB3ZWlyZCwgYnV0IHRoaXMgaXMgaG93IE1JIGNob29z ZSB0byBmb3JtYXQgdGhlIHZhcmlvdXMgb3V0cHV0Ci0gCSB0eXBlcy4gICovCi0tICAgICAgaWYg KGFyZ3NfdHlwZSA9PSBNSV9QUklOVF9TSU1QTEVfVkFMVUVTKQotKyAgICAgIGlmIChhcmdzX3R5 cGUgPT0gTUlfUFJJTlRfU0lNUExFX1ZBTFVFUyAmJiB2YWwgIT0gTlVMTCkKLSAJewotIAkgIGlm IChweV9wcmludF90eXBlIChvdXQsIHZhbCkgPT0gRVhUX0xBTkdfQlRfRVJST1IpCi0gCSAgICB7 Ci0rCSAgICAgIHJldHZhbCA9IEVYVF9MQU5HX0JUX0VSUk9SOwotIAkgICAgICBkb19jbGVhbnVw cyAoY2xlYW51cHMpOwotLQkgICAgICBnb3RvIGVycm9yOwotKwkgICAgICBjb250aW51ZTsKLSAJ ICAgIH0KLSAJfQotIAotLSAgICAgIGFubm90YXRlX2FyZ192YWx1ZSAodmFsdWVfdHlwZSAodmFs KSk7Ci0rICAgICAgaWYgKHZhbCAhPSBOVUxMKQotKwlhbm5vdGF0ZV9hcmdfdmFsdWUgKHZhbHVl X3R5cGUgKHZhbCkpOwotIAotICAgICAgIC8qIElmIHRoZSBvdXRwdXQgaXMgdG8gdGhlIENMSSwg YW5kIHRoZSB1c2VyIG9wdGlvbiAic2V0IHByaW50Ci0gCSBmcmFtZS1hcmd1bWVudHMiIGlzIHNl dCB0byBub25lLCBqdXN0IG91dHB1dCAiLi4uIi4gICovCi1AQCAtNDU0LDI3ICs0NTksMjUgQEAg cHlfcHJpbnRfc2luZ2xlX2FyZyAoc3RydWN0IHVpX291dCAqb3V0LAotIAkgICAgIGZvciB0aGUg Y2FzZSBvZiBNSV9QUklOVF9OT19WQUxVRVMuICAqLwotIAkgIGlmIChhcmdzX3R5cGUgIT0gTk9f VkFMVUVTKQotIAkgICAgewotLQkgICAgICBpZiAocHlfcHJpbnRfdmFsdWUgKG91dCwgdmFsLCBv cHRzLCAwLCBhcmdzX3R5cGUsIGxhbmd1YWdlKQotLQkJICA9PSBFWFRfTEFOR19CVF9FUlJPUikK LSsJICAgICAgaWYgKHZhbCA9PSBOVUxMKQotIAkJewotLQkJICBkb19jbGVhbnVwcyAoY2xlYW51 cHMpOwotLQkJICBnb3RvIGVycm9yOwotKwkJICBnZGJfYXNzZXJ0IChmYSAhPSBOVUxMICYmIGZh LT5lcnJvciAhPSBOVUxMKTsKLSsJCSAgdWlfb3V0X2ZpZWxkX2ZtdCAob3V0LCAidmFsdWUiLAot KwkJCQkgICAgXygiPGVycm9yIHJlYWRpbmcgdmFyaWFibGU6ICVzPiIpLAotKwkJCQkgICAgZmEt PmVycm9yKTsKLSAJCX0KLSsJICAgICAgZWxzZSBpZiAocHlfcHJpbnRfdmFsdWUgKG91dCwgdmFs LCBvcHRzLCAwLCBhcmdzX3R5cGUsIGxhbmd1YWdlKQotKwkJICAgICAgID09IEVYVF9MQU5HX0JU X0VSUk9SKQotKwkJcmV0dmFsID0gRVhUX0xBTkdfQlRfRVJST1I7Ci0gCSAgICB9Ci0gCX0KLSAK LSAgICAgICBkb19jbGVhbnVwcyAoY2xlYW51cHMpOwotICAgICB9Ci0gICBpZiAoZXhjZXB0LnJl YXNvbiA8IDApCi0tICAgIHsKLS0gICAgICBnZGJweV9jb252ZXJ0X2V4Y2VwdGlvbiAoZXhjZXB0 KTsKLS0gICAgICBnb3RvIGVycm9yOwotLSAgICB9Ci0tCi0tICByZXR1cm4gRVhUX0xBTkdfQlRf T0s7Ci0rICAgIGdkYnB5X2NvbnZlcnRfZXhjZXB0aW9uIChleGNlcHQpOwotIAotLSBlcnJvcjoK LS0gIHJldHVybiBFWFRfTEFOR19CVF9FUlJPUjsKLSsgIHJldHVybiByZXR2YWw7Ci0gfQotIAot IC8qIEhlbHBlciBmdW5jdGlvbiB0byBsb29wIG92ZXIgZnJhbWUgYXJndW1lbnRzIHByb3ZpZGVk IGJ5IHRoZQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9hbWQ2NC1weS1m cmFtZWZpbHRlci1pbnZhbGlkYXJnLlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vYW1kNjQt cHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5TCi1uZXcgZmlsZSBtb2RlIDEwMDc1NQotaW5kZXgg MDAwMDAwMC4uM2FjMWIyMwotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL2FtZDY0LXB5LWZyYW1lZmlsdGVyLWludmFsaWRhcmcuUwotQEAgLTAsMCArMSwyNjEg QEAKLSsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgot KwotKyAgIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwot KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsKLSsvKiBUaGlzIGZp bGUgaXMgY29tcGlsZWQgZnJvbSBhIHNpbmdsZSBsaW5lCi0rICAgaW50IG1haW4gKGludCBhcmdj LCBjaGFyICoqYXJndikgeyByZXR1cm4gMDsgfQotKyAgIHVzaW5nIC1nIC1kQSAtUyAtTzIgYW5k IHBhdGNoZWQgYXMgI2lmLWVkIGJlbG93LiAgKi8KLSsKLSsJLmZpbGUJInB5LWZyYW1lZmlsdGVy LWludmFsaWRhcmcuYyIKLSsJLnRleHQKLSsuTHRleHQwOgotKwkuZ2xvYmwJbWFpbgotKwkudHlw ZQltYWluLCBAZnVuY3Rpb24KLSttYWluOgotKy5MRkIwOgotKwkuZmlsZSAxICJweS1mcmFtZWZp bHRlci1pbnZhbGlkYXJnLmMiCi0rCSMgcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5jOjEKLSsJ LmxvYyAxIDEgMAotKwkuY2ZpX3N0YXJ0cHJvYwotKyMgQkxPQ0sgMiBzZXE6MAotKyMgUFJFRDog RU5UUlkgKEZBTExUSFJVKQotKwlwdXNocQklcmJwCi0rCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYK LSsJLmNmaV9vZmZzZXQgNiwgLTE2Ci0rCW1vdnEJJXJzcCwgJXJicAotKwkuY2ZpX2RlZl9jZmFf cmVnaXN0ZXIgNgotKwltb3ZsCSVlZGksIC00KCVyYnApCi0rCW1vdnEJJXJzaSwgLTE2KCVyYnAp Ci0rCSMgcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5jOjIKLSsJLmxvYyAxIDIgMAotKwltb3Zs CSQwLCAlZWF4Ci0rCSMgcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5jOjMKLSsJLmxvYyAxIDMg MAotKwlwb3BxCSVyYnAKLSsJLmNmaV9kZWZfY2ZhIDcsIDgKLSsjIFNVQ0M6IEVYSVQgWzEwMC4w JV0gCi0rCXJldAotKwkuY2ZpX2VuZHByb2MKLSsuTEZFMDoKLSsJLnNpemUJbWFpbiwgLi1tYWlu Ci0rLkxldGV4dDA6Ci0rCS5zZWN0aW9uCS5kZWJ1Z19pbmZvLCIiLEBwcm9nYml0cwotKy5MZGVi dWdfaW5mbzA6Ci0rCS5sb25nCS5MZSAtIC5McwkjIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0 IEluZm8KLSsuTHM6Ci0rCS52YWx1ZQkweDQJIyBEV0FSRiB2ZXJzaW9uIG51bWJlcgotKwkubG9u ZwkuTGRlYnVnX2FiYnJldjAJIyBPZmZzZXQgSW50byBBYmJyZXYuIFNlY3Rpb24KLSsJLmJ5dGUJ MHg4CSMgUG9pbnRlciBTaXplIChpbiBieXRlcykKLSsJLnVsZWIxMjggMHgxCSMgKERJRSAoMHhi KSBEV19UQUdfY29tcGlsZV91bml0KQotKwkubG9uZwkuTEFTRjMJIyBEV19BVF9wcm9kdWNlcjog IkdOVSBDIDQuOS4xIDIwMTQwODEzIChSZWQgSGF0IDQuOS4xLTcpIC1tdHVuZT1nZW5lcmljIC1t YXJjaD14ODYtNjQgLWciCi0rCS5ieXRlCTB4MQkjIERXX0FUX2xhbmd1YWdlCi0rCS5sb25nCS5M QVNGNAkjIERXX0FUX25hbWU6ICJweS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLmMiCi0rCS5sb25n CS5MQVNGNQkjIERXX0FUX2NvbXBfZGlyOiAiIgotKwkucXVhZAkuTHRleHQwCSMgRFdfQVRfbG93 X3BjCi0rCS5xdWFkCS5MZXRleHQwLS5MdGV4dDAJIyBEV19BVF9oaWdoX3BjCi0rCS5sb25nCS5M ZGVidWdfbGluZTAJIyBEV19BVF9zdG10X2xpc3QKLStkaWUyZDoKLSsJLnVsZWIxMjggMHgyCSMg KERJRSAoMHgyZCkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCQkJIyBEV19BVF9leHRlcm5hbAotKwku bG9uZwkuTEFTRjYJIyBEV19BVF9uYW1lOiAibWFpbiIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVj bF9maWxlIChweS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLmMpCi0rCS5ieXRlCTB4MQkjIERXX0FU X2RlY2xfbGluZQotKwkJCSMgRFdfQVRfcHJvdG90eXBlZAotKwkubG9uZwlkaWU2Yi0uTGRlYnVn X2luZm8wCSMgRFdfQVRfdHlwZQotKwkucXVhZAkuTEZCMAkjIERXX0FUX2xvd19wYwotKwkucXVh ZAkuTEZFMC0uTEZCMAkjIERXX0FUX2hpZ2hfcGMKLSsJLnVsZWIxMjggMHgxCSMgRFdfQVRfZnJh bWVfYmFzZQotKwkuYnl0ZQkweDljCSMgRFdfT1BfY2FsbF9mcmFtZV9jZmEKLSsJCQkjIERXX0FU X0dOVV9hbGxfY2FsbF9zaXRlcwotK2RpZTRlOgotKwkudWxlYjEyOCAweDMJIyAoRElFICgweDRl KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKLSsJLmxvbmcJLkxBU0YwCSMgRFdfQVRfbmFtZTog ImFyZ2MiCi0rCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocHktZnJhbWVmaWx0ZXItaW52 YWxpZGFyZy5jKQotKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2xpbmUKLSsJLmxvbmcJZGllNmIt LkxkZWJ1Z19pbmZvMAkjIERXX0FUX3R5cGUKLSsjaWYgMAotKwkudWxlYjEyOCAweDIJIyBEV19B VF9sb2NhdGlvbgotKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKLSsJLnNsZWIxMjggLTIwCi0r I2VuZGlmCi0rI2lmIDAKLSsJLnVsZWIxMjggMWYgLSAyZgkjIERXX0FUX2xvY2F0aW9uCi0rMjoK LSsJLmJ5dGUJMHgwMwkjIERXX09QX2FkZHIKLSsJLnF1YWQgMAotKzE6Ci0rI2VuZGlmCi0rI2lm IDEKLSsJLnVsZWIxMjggMWYgLSAyZgkjIERXX0FUX2xvY2F0aW9uCi0rMjoKLSsJLmJ5dGUJMHgx MwkjIERXX09QX2Ryb3AKLSsJLnF1YWQgMAotKzE6Ci0rI2VuZGlmCi0rZGllNWM6Ci0rCS51bGVi MTI4IDB4MwkjIChESUUgKDB4NWMpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQotKwkubG9uZwku TEFTRjEJIyBEV19BVF9uYW1lOiAiYXJndiIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxl IChweS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLmMpCi0rCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xf bGluZQotKwkubG9uZwlkaWU3Mi0uTGRlYnVnX2luZm8wCSMgRFdfQVRfdHlwZQotKwkudWxlYjEy OCAweDIJIyBEV19BVF9sb2NhdGlvbgotKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKLSsJLnNs ZWIxMjggLTMyCi0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4MmQKLStkaWU2 YjoKLSsJLnVsZWIxMjggMHg0CSMgKERJRSAoMHg2YikgRFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5 dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCi0rCS5ieXRlCTB4NQkjIERXX0FUX2VuY29kaW5nCi0r CS5hc2NpaSAiaW50XDAiCSMgRFdfQVRfbmFtZQotK2RpZTcyOgotKwkudWxlYjEyOCAweDUJIyAo RElFICgweDcyKSBEV19UQUdfcG9pbnRlcl90eXBlKQotKwkuYnl0ZQkweDgJIyBEV19BVF9ieXRl X3NpemUKLSsJLmxvbmcJZGllNzgtLkxkZWJ1Z19pbmZvMAkjIERXX0FUX3R5cGUKLStkaWU3ODoK LSsJLnVsZWIxMjggMHg1CSMgKERJRSAoMHg3OCkgRFdfVEFHX3BvaW50ZXJfdHlwZSkKLSsJLmJ5 dGUJMHg4CSMgRFdfQVRfYnl0ZV9zaXplCi0rCS5sb25nCWRpZTdlLS5MZGVidWdfaW5mbzAJIyBE V19BVF90eXBlCi0rZGllN2U6Ci0rCS51bGViMTI4IDB4NgkjIChESUUgKDB4N2UpIERXX1RBR19i YXNlX3R5cGUpCi0rCS5ieXRlCTB4MQkjIERXX0FUX2J5dGVfc2l6ZQotKwkuYnl0ZQkweDYJIyBE V19BVF9lbmNvZGluZwotKwkubG9uZwkuTEFTRjIJIyBEV19BVF9uYW1lOiAiY2hhciIKLSsJLmJ5 dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHhiCi0rLkxlOgotKwkuc2VjdGlvbgkuZGVi dWdfYWJicmV2LCIiLEBwcm9nYml0cwotKy5MZGVidWdfYWJicmV2MDoKLSsJLnVsZWIxMjggMHgx CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDExCSMgKFRBRzogRFdfVEFHX2NvbXBpbGVf dW5pdCkKLSsJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCi0rCS51bGViMTI4IDB4MjUJIyAo RFdfQVRfcHJvZHVjZXIpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGVi MTI4IDB4MTMJIyAoRFdfQVRfbGFuZ3VhZ2UpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2Rh dGExKQotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHhlCSMgKERX X0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgxYgkjIChEV19BVF9jb21wX2RpcikKLSsJLnVsZWIx MjggMHhlCSMgKERXX0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMp Ci0rCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCi0rCS51bGViMTI4IDB4MTIJIyAoRFdf QVRfaGlnaF9wYykKLSsJLnVsZWIxMjggMHg3CSMgKERXX0ZPUk1fZGF0YTgpCi0rCS51bGViMTI4 IDB4MTAJIyAoRFdfQVRfc3RtdF9saXN0KQotKwkudWxlYjEyOCAweDE3CSMgKERXX0ZPUk1fc2Vj X29mZnNldCkKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4MgkjIChhYmJyZXYg Y29kZSkKLSsJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQotKwkuYnl0 ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKLSsJLnVsZWIxMjggMHgzZgkjIChEV19BVF9leHRlcm5h bCkKLSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjgg MHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51 bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCi0rCS51bGViMTI4 IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDI3CSMgKERXX0FUX3Byb3RvdHlw ZWQpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4 IDB4NDkJIyAoRFdfQVRfdHlwZSkKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0r CS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9S TV9hZGRyKQotKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCi0rCS51bGViMTI4IDB4 NwkjIChEV19GT1JNX2RhdGE4KQotKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2Up Ci0rCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQotKwkudWxlYjEyOCAweDIxMTcJ IyAoRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzKQotKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1f ZmxhZ19wcmVzZW50KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHgzCSMgKGFi YnJldiBjb2RlKQotKwkudWxlYjEyOCAweDUJIyAoVEFHOiBEV19UQUdfZm9ybWFsX3BhcmFtZXRl cikKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9u YW1lKQotKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkudWxlYjEyOCAweDNhCSMg KERXX0FUX2RlY2xfZmlsZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51 bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEz CSMgKERXX0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9uKQotKwku dWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0r CS51bGViMTI4IDB4NAkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgyNAkjIChUQUc6IERX X1RBR19iYXNlX3R5cGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAw eGIJIyAoRFdfQVRfYnl0ZV9zaXplKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkK LSsJLnVsZWIxMjggMHgzZQkjIChEV19BVF9lbmNvZGluZykKLSsJLnVsZWIxMjggMHhiCSMgKERX X0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQotKwkudWxlYjEyOCAw eDgJIyAoRFdfRk9STV9zdHJpbmcpCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkudWxlYjEyOCAw eDUJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4ZgkjIChUQUc6IERXX1RBR19wb2ludGVy X3R5cGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweGIJIyAoRFdf QVRfYnl0ZV9zaXplKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIx MjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkK LSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4NgkjIChhYmJyZXYgY29kZSkKLSsJ LnVsZWIxMjggMHgyNAkjIChUQUc6IERXX1RBR19iYXNlX3R5cGUpCi0rCS5ieXRlCTAJIyBEV19j aGlsZHJlbl9ubwotKwkudWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9zaXplKQotKwkudWxlYjEy OCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzZQkjIChEV19BVF9lbmNvZGlu ZykKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4MwkjIChE V19BVF9uYW1lKQotKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkuYnl0ZQkwCi0r CS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkuc2VjdGlvbgkuZGVidWdfYXJhbmdlcywiIixAcHJvZ2Jp dHMKLSsJLmxvbmcJMHgyYwkjIExlbmd0aCBvZiBBZGRyZXNzIFJhbmdlcyBJbmZvCi0rCS52YWx1 ZQkweDIJIyBEV0FSRiBWZXJzaW9uCi0rCS5sb25nCS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2Yg Q29tcGlsYXRpb24gVW5pdCBJbmZvCi0rCS5ieXRlCTB4OAkjIFNpemUgb2YgQWRkcmVzcwotKwku Ynl0ZQkwCSMgU2l6ZSBvZiBTZWdtZW50IERlc2NyaXB0b3IKLSsJLnZhbHVlCTAJIyBQYWQgdG8g MTYgYnl0ZSBib3VuZGFyeQotKwkudmFsdWUJMAotKwkucXVhZAkuTHRleHQwCSMgQWRkcmVzcwot KwkucXVhZAkuTGV0ZXh0MC0uTHRleHQwCSMgTGVuZ3RoCi0rCS5xdWFkCTAKLSsJLnF1YWQJMAot Kwkuc2VjdGlvbgkuZGVidWdfbGluZSwiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2xpbmUwOgotKwku c2VjdGlvbgkuZGVidWdfc3RyLCJNUyIsQHByb2diaXRzLDEKLSsuTEFTRjE6Ci0rCS5zdHJpbmcJ ImFyZ3YiCi0rLkxBU0Y0OgotKwkuc3RyaW5nCSJweS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLmMi Ci0rLkxBU0Y1OgotKwkuc3RyaW5nCSIiCi0rLkxBU0YwOgotKwkuc3RyaW5nCSJhcmdjIgotKy5M QVNGMzoKLSsJLnN0cmluZwkiR05VIEMgNC45LjEgMjAxNDA4MTMgKFJlZCBIYXQgNC45LjEtNykg LW10dW5lPWdlbmVyaWMgLW1hcmNoPXg4Ni02NCAtZyIKLSsuTEFTRjY6Ci0rCS5zdHJpbmcJIm1h aW4iCi0rLkxBU0YyOgotKwkuc3RyaW5nCSJjaGFyIgotKwkuaWRlbnQJIkdDQzogKEdOVSkgNC45 LjEgMjAxNDA4MTMgKFJlZCBIYXQgNC45LjEtNykiCi0rCS5zZWN0aW9uCS5ub3RlLkdOVS1zdGFj aywiIixAcHJvZ2JpdHMKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt ZnJhbWVmaWx0ZXItaW52YWxpZGFyZy1nZGIucHkuaW4gYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy1nZGIucHkuaW4KLW5ldyBmaWxlIG1vZGUgMTAw NjQ0Ci1pbmRleCAwMDAwMDAwLi4xZmE2ZmZjCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy1nZGIucHkuaW4KLUBA IC0wLDAgKzEsNDggQEAKLSsjIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBUaGlz IGZpbGUgaXMgcGFydCBvZiB0aGUgR0RCIHRlc3RzdWl0ZS4gIEl0IHRlc3RzIFB5dGhvbi1iYXNl ZAotKyMgZnJhbWUtZmlsdGVycy4KLStpbXBvcnQgZ2RiCi0raW1wb3J0IGl0ZXJ0b29scwotK2Zy b20gZ2RiLkZyYW1lRGVjb3JhdG9yIGltcG9ydCBGcmFtZURlY29yYXRvcgotKwotKwotK2NsYXNz IEZyYW1lT2JqRmlsZSAoKToKLSsKLSsgICAgZGVmIF9faW5pdF9fIChzZWxmKToKLSsgICAgICAg IHNlbGYubmFtZSA9ICJGaWx0ZXIxIgotKyAgICAgICAgc2VsZi5wcmlvcml0eSA9IDEKLSsgICAg ICAgIHNlbGYuZW5hYmxlZCA9IEZhbHNlCi0rICAgICAgICBnZGIuY3VycmVudF9wcm9nc3BhY2Uo KS5mcmFtZV9maWx0ZXJzIFsiUHJvZ3NwYWNlIiArIHNlbGYubmFtZV0gPSBzZWxmCi0rICAgICAg ICBnZGIuY3VycmVudF9vYmpmaWxlKCkuZnJhbWVfZmlsdGVycyBbIk9iamVjdEZpbGUiICsgc2Vs Zi5uYW1lXSA9IHNlbGYKLSsKLSsgICAgZGVmIGZpbHRlciAoc2VsZiwgZnJhbWVfaXRlcik6Ci0r ICAgICAgICByZXR1cm4gZnJhbWVfaXRlcgotKwotK2NsYXNzIEZyYW1lT2JqRmlsZTIgKCk6Ci0r Ci0rICAgIGRlZiBfX2luaXRfXyAoc2VsZik6Ci0rICAgICAgICBzZWxmLm5hbWUgPSAiRmlsdGVy MiIKLSsgICAgICAgIHNlbGYucHJpb3JpdHkgPSAxMDAKLSsgICAgICAgIHNlbGYuZW5hYmxlZCA9 IFRydWUKLSsgICAgICAgIGdkYi5jdXJyZW50X3Byb2dzcGFjZSgpLmZyYW1lX2ZpbHRlcnMgWyJQ cm9nc3BhY2UiICsgc2VsZi5uYW1lXSA9IHNlbGYKLSsgICAgICAgIGdkYi5jdXJyZW50X29iamZp bGUoKS5mcmFtZV9maWx0ZXJzIFsiT2JqZWN0RmlsZSIgKyBzZWxmLm5hbWVdID0gc2VsZgotKwot KyAgICBkZWYgZmlsdGVyIChzZWxmLCBmcmFtZV9pdGVyKToKLSsgICAgICAgIHJldHVybiBmcmFt ZV9pdGVyCi0rCi0rRnJhbWVPYmpGaWxlKCkKLStGcmFtZU9iakZpbGUyKCkKLWRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5leHAK LW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5mNzBkMTZlCi0tLS0gL2Rldi9u dWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxp ZGFyZy5leHAKLUBAIC0wLDAgKzEsNjcgQEAKLSsjIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0r IwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u Ci0rCi0rbG9hZF9saWIgZ2RiLXB5dGhvbi5leHAKLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSBhbWQ2 NC1weS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLlMKLSsKLStpZiB7ICFbaXN0YXJnZXQgeDg2XzY0 LSotKiBdIHx8ICFbaXNfbHA2NF90YXJnZXRdIH0gewotKyAgICB2ZXJib3NlICJTa2lwcGluZyBw eS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLiIKLSsgICAgcmV0dXJuCi0rfQotKwotKyMgV2UgY2Fu bm90IHVzZSBwcmVwYXJlX2Zvcl90ZXN0aW5nIGFzIHdlIGhhdmUgdG8gc2V0IHRoZSBzYWZlLXBh dGNoCi0rIyB0byBjaGVjayBvYmpmaWxlIGFuZCBwcm9nc3BhY2UgcHJpbnRlcnMuCi0raWYge1ti dWlsZF9leGVjdXRhYmxlICR0ZXN0ZmlsZS5leHAgJHRlc3RmaWxlICRzcmNmaWxlIHt9XSA9PSAt MX0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBTdGFydCB3aXRoIGEgZnJlc2ggZ2RiLgot K2dkYl9leGl0Ci0rZ2RiX3N0YXJ0Ci0rCi0rIyBTa2lwIGFsbCB0ZXN0cyBpZiBQeXRob24gc2Ny aXB0aW5nIGlzIG5vdCBlbmFibGVkLgotK2lmIHsgW3NraXBfcHl0aG9uX3Rlc3RzXSB9IHsgY29u dGludWUgfQotKwotKyMgTWFrZSB0aGUgLWdkYi5weSBzY3JpcHQgYXZhaWxhYmxlIHRvIGdkYiwg aXQgaXMgYXV0b21hZ2ljYWxseSBsb2FkZWQgYnkgZ2RiLgotKyMgQ2FyZSBpcyB0YWtlbiB0byBw dXQgaXQgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBiaW5hcnkgc28gdGhhdAotKyMgZ2Ri IHdpbGwgZmluZCBpdC4KLStzZXQgcmVtb3RlX29ial9weXRob25fZmlsZSBcCi0rICAgIFtyZW1v dGVfZG93bmxvYWQgXAotKwkgaG9zdCAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LWdk Yi5weS5pbiBcCi0rCSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHt0ZXN0ZmlsZX0tZ2RiLnB5XV0K LSsKLStnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKLStnZGJfdGVzdF9ub19v dXRwdXQgInNldCBhdXRvLWxvYWQgc2FmZS1wYXRoICR7cmVtb3RlX29ial9weXRob25fZmlsZX0i IFwKLSsgICAgInNldCBhdXRvLWxvYWQgc2FmZS1wYXRoIgotK2dkYl9sb2FkICR7YmluZmlsZX0K LSsjIFZlcmlmeSBnZGIgbG9hZGVkIHRoZSBzY3JpcHQuCi0rZ2RiX3Rlc3QgImluZm8gYXV0by1s b2FkIHB5dGhvbi1zY3JpcHRzIiAiWWVzLiovJHt0ZXN0ZmlsZX0tZ2RiLnB5LioiIFwKLSsgICAg IlRlc3QgYXV0by1sb2FkIGhhZCBsb2FkZWQgcHl0aG9uIHNjcmlwdHMiCi0rCi0raWYgIVtydW50 b19tYWluXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCIK LSsgICAgcmV0dXJuCi0rfQotK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHB5dGhvbiBwcmludC1z dGFjayBmdWxsIiBcCi0rICAgICJTZXQgcHl0aG9uIHByaW50LXN0YWNrIHRvIGZ1bGwiCi0rCi0r IyBMb2FkIGdsb2JhbCBmcmFtZS1maWx0ZXJzCi0rc2V0IHJlbW90ZV9weXRob25fZmlsZSBbZ2Ri X3JlbW90ZV9kb3dubG9hZCBob3N0IFwKLSsJCQkgICAgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Rl c3RmaWxlfS5weV0KLStnZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiBleGVjIChvcGVuICgnJHty ZW1vdGVfcHl0aG9uX2ZpbGV9JykucmVhZCAoKSkiIFwKLSsgICAgIkxvYWQgcHl0aG9uIGZpbGUi Ci0rCi0rZ2RiX3Rlc3QgImJ0IiAiIGluIG5pYW0gXFwoYXJnYz08ZXJyb3IgcmVhZGluZyB2YXJp YWJsZTogZHdhcmYgZXhwcmVzc2lvbiBzdGFjayB1bmRlcmZsb3c+LCBhcmd2PTB4XFswLTlhLWZc XStcXCkgYXQgcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5jOlxbMC05XF0rIiAiYnQgZnVsbCB3 aXRoIGZpbHRlcnMiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZy YW1lZmlsdGVyLWludmFsaWRhcmcucHkgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJh bWVmaWx0ZXItaW52YWxpZGFyZy5weQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAw MDAuLmQ1ZjkyY2IKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLnB5Ci1AQCAtMCwwICsxLDU5IEBACi0rIyBDb3B5 cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdE QiB0ZXN0c3VpdGUuICBJdCB0ZXN0cyBQeXRob24tYmFzZWQKLSsjIGZyYW1lLWZpbHRlcnMuCi0r aW1wb3J0IGdkYgotK2ltcG9ydCBpdGVydG9vbHMKLStmcm9tIGdkYi5GcmFtZURlY29yYXRvciBp bXBvcnQgRnJhbWVEZWNvcmF0b3IKLStpbXBvcnQgY29weQotKwotK2NsYXNzIFJldmVyc2VfRnVu Y3Rpb24gKEZyYW1lRGVjb3JhdG9yKToKLSsKLSsgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZvYmop OgotKyAgICAgICAgc3VwZXIoUmV2ZXJzZV9GdW5jdGlvbiwgc2VsZikuX19pbml0X18oZm9iaikK LSsgICAgICAgIHNlbGYuZm9iaiA9IGZvYmoKLSsKLSsgICAgZGVmIGZ1bmN0aW9uIChzZWxmKToK LSsgICAgICAgIGZuYW1lID0gc3RyIChzZWxmLmZvYmouZnVuY3Rpb24oKSkKLSsgICAgICAgIGlm IChmbmFtZSA9PSBOb25lIG9yIGZuYW1lID09ICIiKToKLSsgICAgICAgICAgICByZXR1cm4gTm9u ZQotKyAgICAgICAgaWYgZm5hbWUgPT0gJ2VuZF9mdW5jJzoKLSsgICAgICAgICAgICBleHRyYSA9 IHNlbGYuZm9iai5pbmZlcmlvcl9mcmFtZSgpLnJlYWRfdmFyKCdzdHInKS5zdHJpbmcoKQotKyAg ICAgICAgZWxzZToKLSsgICAgICAgICAgICBleHRyYSA9ICcnCi0rICAgICAgICBmbmFtZSA9IGZu YW1lWzo6LTFdICsgZXh0cmEKLSsgICAgICAgIHJldHVybiBmbmFtZQotKwotK2NsYXNzIEZyYW1l RmlsdGVyICgpOgotKwotKyAgICBkZWYgX19pbml0X18gKHNlbGYpOgotKyAgICAgICAgc2VsZi5u YW1lID0gIlJldmVyc2UiCi0rICAgICAgICBzZWxmLnByaW9yaXR5ID0gMTAwCi0rICAgICAgICBz ZWxmLmVuYWJsZWQgPSBUcnVlCi0rICAgICAgICBnZGIuZnJhbWVfZmlsdGVycyBbc2VsZi5uYW1l XSA9IHNlbGYKLSsKLSsgICAgZGVmIGZpbHRlciAoc2VsZiwgZnJhbWVfaXRlcik6Ci0rICAgICAg ICAjIFB5dGhvbiAzLnggbW92ZWQgdGhlIGl0ZXJ0b29scy5pbWFwIGZ1bmN0aW9uYWxpdHkgdG8g bWFwKCksCi0rICAgICAgICAjIHNvIGNoZWNrIGlmIGl0IGlzIGF2YWlsYWJsZS4KLSsgICAgICAg IGlmIGhhc2F0dHIoaXRlcnRvb2xzLCAiaW1hcCIpOgotKyAgICAgICAgICAgIGZyYW1lX2l0ZXIg PSBpdGVydG9vbHMuaW1hcCAoUmV2ZXJzZV9GdW5jdGlvbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX2l0ZXIpCi0rICAgICAgICBlbHNlOgotKyAgICAg ICAgICAgIGZyYW1lX2l0ZXIgPSBtYXAoUmV2ZXJzZV9GdW5jdGlvbiwgZnJhbWVfaXRlcikKLSsK LSsgICAgICAgIHJldHVybiBmcmFtZV9pdGVyCi0rCi0rRnJhbWVGaWx0ZXIoKQotCi0tLWQ2R200 RWRjYWR6QmpkTkQtLQotCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggYjc4 MzZiZS4uZTQ4ODA1ZCAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDIg KzEsMiBAQAogNDk4MTMwN2FhOTYxOWJiZWM1YjczMjYxZTRlNDFjOGQgIGdkYi1saWJzdGRjKyst djMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotMzhkODE2ZDY0MTA5M2RiMmUxM2JhMjg0ZTI2MDkw YjQgIGdkYi03LjgudGFyLmd6Cis4MDcyYmU4N2E5NGJlMDkzNmJjM2I0YjY5NDFiMDg2MiAgZ2Ri LTcuOC4xLnRhci54ego=