From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] xen: Fix inconsistent callers of panic() Date: Thu, 30 Aug 2018 13:31:37 +0100 Message-ID: <1535632297-29549-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org Q2FsbGVycyBhcmUgaW5jb25zaXN0ZW50IHdpdGggd2hldGhlciB0aGV5IHBhc3MgYSBuZXdsaW5l IHRvIHBhbmljKCksCmluY2x1ZGluZyBhZGphY2VudCBjYWxscyBpbiB0aGUgc2FtZSBmdW5jdGlv biB1c2luZyBkaWZmZXJlbnQgc3R5bGVzLgoKcGFpbmMoKSBub3QgZXhwZWN0aW5nIGEgbmV3bGlu ZSBpcyBpbmNvbnNpc3RlbnQgd2l0aCBtb3N0IG90aGVyIHByaW50aW5nCmZ1bmN0aW9ucywgd2hp Y2ggaXMgbW9zdCBsaWtlbHkgd2h5IHdlJ3ZlIGdhaW5lZCBzbyBtYW55IGluY29uc2lzdGVuY2ll cy4KClN3aXRjaCBwYW5pYygpIHRvIGV4cGVjdCBhIG5ld2xpbmUsIGFuZCB1cGRhdGUgYWxsIGNh bGxlcnMgd2hpY2ggY3VycmVudGx5CmxhY2sgYSBuZXdsaW5lIHRvIGluY2x1ZGUgb25lLgoKVGhp cyBhY3R1YWxseSByZWR1Y2VzIHRoZSBzaXplIG9mIC5yb2RhdGEgKDB4MDdlM2U4IGRvd24gdG8g MHgwN2UzYTgpIGJlY2F1c2UKYSBudW1iZXIgb2Ygc3RyaW5ncyBhcmUgcGFzc2VkIHRvIGJvdGgg cGFuaWMoKSBhbmQgcHJpbnRrKCkuICBBcyB0aGV5CnByZXZpb3VzbHkgZGlmZmVyZWQgYnkgXG4g YWxvbmUsIHRoZXkgY291bGRuJ3QgYmUgbWVyZ2VkLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJl dWxpY2hAc3VzZS5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogU3Rl ZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDQzogSnVsaWVuIEdyYWxs IDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCihSZXN0cmljdGVkIHRvIHRoZSBjb3JlIGFyY2ggbWFp bnRhaW5lcnMgYXMgdGhpcyBpcyBhIHRyZWUtd2lkZSBwaWVjZSBvZgpjbGVhbnVwIHdpdGggbm8g ZnVuY3Rpb25hbCBpbXBhY3QgdG8gb3RoZXIgYXJlYXMuKQoKVGhlIG9ic2VydmFudCBhbW9uZ3N0 IHlvdSBtaWdodCByZWFsaXNlIHRoYXQgdGhpcyByZXZlcnRzIHBhcnRzIG9mIGMvcwo1MWFkOTBh ZWEyMWMgLSBXaGF0IGNhbiBJIHNheT8gIFNldmVyYWwgeWVhcnMgb2YgaGluZHNpZ2h0IGlzIHZl cnkgdXNlZnVsLCBhbmQKYXQgdGhlIHRpbWUgSSBkaWQgYXNrIHRoZSBtYWludGFpbmVycyB3aGlj aCBvcHRpb24gdGhleSB0aG91Z2h0IHdvdWxkIGJlCmJldHRlci4uLgotLS0KIHhlbi9hcmNoL2Fy bS9hcm0zMi92ZnAuYyAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC9hcm0vYXJtNjQvdHJh cHMuYyAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jICAgICAg ICAgIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9hcmNoL2FybS9naWMtdjIuYyAgICAg ICAgICAgICAgICB8IDI0ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2FyY2gvYXJtL2dp Yy12My1pdHMuYyAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2FyY2gvYXJtL2dpYy12My5jICAg ICAgICAgICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KIHhlbi9hcmNoL2FybS9naWMuYyAgICAg ICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KIHhlbi9hcmNoL2FybS9rZXJuZWwuYyAgICAg ICAgICAgICAgICB8ICA4ICsrKystLS0tCiB4ZW4vYXJjaC9hcm0vbW0uYyAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIHhlbi9hcmNoL2FybS9wbGF0Zm9ybS5jICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJj aC9hcm0vcGxhdGZvcm1zL3hnZW5lLXN0b3JtLmMgfCAgNiArKystLS0KIHhlbi9hcmNoL2FybS9z ZXR1cC5jICAgICAgICAgICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogeGVuL2FyY2gvYXJtL3Nt cGJvb3QuYyAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL2FybS90aW1lLmMgICAgICAg ICAgICAgICAgICB8ICA4ICsrKystLS0tCiB4ZW4vYXJjaC9hcm0vdHJhcHMuYyAgICAgICAgICAg ICAgICAgfCAgOCArKysrLS0tLQogeGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy5jICAgICAgICAgICAg IHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMgICAgICAgICAgICB8ICAyICstCiB4 ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYyAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2 L2FwaWMuYyAgICAgICAgICAgICAgICAgIHwgIDUgKystLS0KIHhlbi9hcmNoL3g4Ni9jcHUvbWNo ZWNrL21jZS5jICAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9ndWVzdC94ZW4uYyAgICAg ICAgICAgICB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9kb20wX2J1 aWxkLmMgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL2ludHIuYyAgICAgICAg ICB8ICAyICstCiB4ZW4vYXJjaC94ODYvaW9fYXBpYy5jICAgICAgICAgICAgICAgfCAgOCArKysr LS0tLQogeGVuL2FyY2gveDg2L21tL21tLWxvY2tzLmggICAgICAgICAgIHwgIDIgKy0KIHhlbi9h cmNoL3g4Ni9tcHBhcnNlLmMgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KIHhlbi9hcmNo L3g4Ni9udW1hLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvcHYvZG9t MF9idWlsZC5jICAgICAgICAgfCAyMCArKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2 L3B2L3NoaW0uYyAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9zZXR1cC5jICAg ICAgICAgICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9zbXBib290 LmMgICAgICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni90Ym9vdC5jICAgICAgICAg ICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvdGltZS5jICAgICAgICAgICAgICAgICAgfCAg NiArKystLS0KIHhlbi9hcmNoL3g4Ni90cmFwcy5jICAgICAgICAgICAgICAgICB8IDE2ICsrKysr KysrLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyAgICAgICAgICAgICB8ICAyICst CiB4ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMgICAgICAgICAgfCAgMiArLQogeGVuL2NvbW1v bi9kb21haW4uYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9jb21tb24vZ3VuemlwLmMg ICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vY29tbW9uL3NjaGVkdWxlLmMgICAgICAgICAg ICAgICAgfCAgMiArLQogeGVuL2NvbW1vbi91YnNhbi91YnNhbi5jICAgICAgICAgICAgIHwgIDIg Ky0KIHhlbi9jb21tb24vd2FybmluZy5jICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vZHJp dmVycy9jaGFyL2NvbnNvbGUuYyAgICAgICAgICAgfCAgMiArLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvaW9tbXUuYyAgICAgIHwgIDUgKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Bj aS5jICAgICAgICB8ICAyICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5oICAg fCAgMiArLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgIHwgIDQgKystLQog eGVuL3hzbS9mbGFzay9ob29rcy5jICAgICAgICAgICAgICAgIHwgIDQgKystLQogNDggZmlsZXMg Y2hhbmdlZCwgMTQxIGluc2VydGlvbnMoKyksIDE0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vYXJtMzIvdmZwLmMgYi94ZW4vYXJjaC9hcm0vYXJtMzIvdmZwLmMKaW5k ZXggNWI4MDA1My4uMDA2OWFjZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2FybTMyL3ZmcC5j CisrKyBiL3hlbi9hcmNoL2FybS9hcm0zMi92ZnAuYwpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMg X19pbml0IGludCB2ZnBfaW5pdCh2b2lkKQogCiAgICAgdmZwYXJjaCA9ICh2ZnBzaWQgJiBGUFNJ RF9BUkNIX01BU0spID4+IEZQU0lEX0FSQ0hfQklUOwogICAgIGlmICggdmZwYXJjaCA8IDIgKQot ICAgICAgICBwYW5pYygiWGVuIG9ubHkgc3VwcG9ydCBWRlAgMyIpOworICAgICAgICBwYW5pYygi WGVuIG9ubHkgc3VwcG9ydCBWRlAgM1xuIik7CiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL3hlbi9hcmNoL2FybS9hcm02NC90cmFwcy5jIGIveGVuL2FyY2gvYXJtL2FybTY0L3RyYXBz LmMKaW5kZXggMzg0NzBhMS4uZTUyNDAxOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2FybTY0 L3RyYXBzLmMKKysrIGIveGVuL2FyY2gvYXJtL2FybTY0L3RyYXBzLmMKQEAgLTQwLDcgKzQwLDcg QEAgdm9pZCBkb19iYWRfbW9kZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgaW50IHJlYXNv bikKIAogICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7CiAgICAgc2hvd19leGVjdXRpb25fc3RhdGUo cmVncyk7Ci0gICAgcGFuaWMoImJhZCBtb2RlIik7CisgICAgcGFuaWMoImJhZCBtb2RlXG4iKTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9h cmNoL2FybS9kb21haW5fYnVpbGQuYwppbmRleCBlMWM3OWIyLi43NDUxNTNkIDEwMDY0NAotLS0g YS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKKysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9i dWlsZC5jCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIGJvb2wgX19pbml0IGluc2VydF8xMV9i YW5rKHN0cnVjdCBkb21haW4gKmQsCiAKICAgICByZXMgPSBndWVzdF9waHlzbWFwX2FkZF9wYWdl KGQsIF9nZm4obWZuX3goc21mbikpLCBzbWZuLCBvcmRlcik7CiAgICAgaWYgKCByZXMgKQotICAg ICAgICBwYW5pYygiRmFpbGVkIG1hcCBwYWdlcyB0byBET00wOiAlZCIsIHJlcyk7CisgICAgICAg IHBhbmljKCJGYWlsZWQgbWFwIHBhZ2VzIHRvIERPTTA6ICVkXG4iLCByZXMpOwogCiAgICAga2lu Zm8tPnVuYXNzaWduZWRfbWVtIC09IHNpemU7CiAKQEAgLTI4OSw3ICsyODksNyBAQCBzdGF0aWMg dm9pZCBfX2luaXQgYWxsb2NhdGVfbWVtb3J5KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJu ZWxfaW5mbyAqa2luZm8pCiAKICAgICAvKiBGYWlsZWQgdG8gYWxsb2NhdGUgYmFuazAgdW5kZXIg NEdCICovCiAgICAgaWYgKCBpc18zMmJpdF9kb21haW4oZCkgKQotICAgICAgICBwYW5pYygiVW5h YmxlIHRvIGFsbG9jYXRlIGZpcnN0IG1lbW9yeSBiYW5rLiIpOworICAgICAgICBwYW5pYygiVW5h YmxlIHRvIGFsbG9jYXRlIGZpcnN0IG1lbW9yeSBiYW5rXG4iKTsKIAogICAgIC8qIFRyeSB0byBh bGxvY2F0ZSBtZW1vcnkgZnJvbSBhYm92ZSA0R0IgKi8KICAgICBwcmludGsoWEVOTE9HX0lORk8g Ik5vIGJhbmsgaGFzIGJlZW4gYWxsb2NhdGVkIGJlbG93IDRHQi5cbiIpOwpAQCAtNTk4LDcgKzU5 OCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IG1ha2VfaHlwZXJ2aXNvcl9ub2RlKHN0cnVjdCBkb21h aW4gKmQsCiAgICAgICovCiAgICAgaWYgKChhZGRyY2VsbHMgIT0gMSAmJiBhZGRyY2VsbHMgIT0g MikgfHwKICAgICAgICAgKHNpemVjZWxscyAhPSAxICYmIHNpemVjZWxscyAhPSAyKSkKLSAgICAg ICAgcGFuaWMoIkNhbm5vdCBjb3BlIHdpdGggdGhpcyBzaXplIik7CisgICAgICAgIHBhbmljKCJD YW5ub3QgY29wZSB3aXRoIHRoaXMgc2l6ZVxuIik7CiAKICAgICAvKiBTZWUgbGludXggRG9jdW1l bnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS94ZW4udHh0ICovCiAgICAgcmVzID0gZmR0 X2JlZ2luX25vZGUoZmR0LCAiaHlwZXJ2aXNvciIpOwpAQCAtMTU4Niw3ICsxNTg2LDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IGFjcGlfbWFwX290aGVyX3RhYmxlcyhzdHJ1Y3QgZG9tYWluICpkKQog ICAgICAgICBpZiAoIHJlcyApCiAgICAgICAgIHsKICAgICAgICAgICAgICBwYW5pYyhYRU5MT0df RVJSICJVbmFibGUgdG8gbWFwIEFDUEkgcmVnaW9uIDB4JSJQUkl4NjQKLSAgICAgICAgICAgICAg ICAgICAiIC0gMHglIlBSSXg2NCIgaW4gZG9tYWluIFxuIiwKKyAgICAgICAgICAgICAgICAgICAi IC0gMHglIlBSSXg2NCIgaW4gZG9tYWluXG4iLAogICAgICAgICAgICAgICAgICAgIGFkZHIgJiBQ QUdFX01BU0ssIFBBR0VfQUxJR04oYWRkciArIHNpemUpIC0gMSk7CiAgICAgICAgIH0KICAgICB9 CkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZHRiX2xvYWQoc3RydWN0 IGtlcm5lbF9pbmZvICpraW5mbykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmZHRfdG90YWxzaXplKGtpbmZvLT5mZHQpKTsKIAogICAgIGlmICggbGVmdCAhPSAw ICkKLSAgICAgICAgcGFuaWMoIlVuYWJsZSB0byBjb3B5IHRoZSBEVEIgdG8gZG9tMCBtZW1vcnkg KGxlZnQgPSAlbHUgYnl0ZXMpIiwgbGVmdCk7CisgICAgICAgIHBhbmljKCJVbmFibGUgdG8gY29w eSB0aGUgRFRCIHRvIGRvbTAgbWVtb3J5IChsZWZ0ID0gJWx1IGJ5dGVzKVxuIiwgbGVmdCk7CiAg ICAgeGZyZWUoa2luZm8tPmZkdCk7CiB9CiAKQEAgLTIwMjEsMzAgKzIwMjEsMzAgQEAgc3RhdGlj IHZvaWQgX19pbml0IGluaXRyZF9sb2FkKHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8pCiAgICAg LyogRml4IHVwIGxpbnV4LGluaXRyZC1zdGFydCBhbmQgbGludXgsaW5pdHJkLWVuZCBpbiAvY2hv c2VuICovCiAgICAgbm9kZSA9IGZkdF9wYXRoX29mZnNldChraW5mby0+ZmR0LCAiL2Nob3NlbiIp OwogICAgIGlmICggbm9kZSA8IDAgKQotICAgICAgICBwYW5pYygiQ2Fubm90IGZpbmQgdGhlIC9j aG9zZW4gbm9kZSIpOworICAgICAgICBwYW5pYygiQ2Fubm90IGZpbmQgdGhlIC9jaG9zZW4gbm9k ZVxuIik7CiAKICAgICBjZWxscCA9IChfX2JlMzIgKil2YWw7CiAgICAgZHRfc2V0X2NlbGwoJmNl bGxwLCBBUlJBWV9TSVpFKHZhbCksIGxvYWRfYWRkcik7CiAgICAgcmVzID0gZmR0X3NldHByb3Bf aW5wbGFjZShraW5mby0+ZmR0LCBub2RlLCAibGludXgsaW5pdHJkLXN0YXJ0IiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhbCwgc2l6ZW9mKHZhbCkpOwogICAgIGlmICggcmVzICkK LSAgICAgICAgcGFuaWMoIkNhbm5vdCBmaXggdXAgXCJsaW51eCxpbml0cmQtc3RhcnRcIiBwcm9w ZXJ0eSIpOworICAgICAgICBwYW5pYygiQ2Fubm90IGZpeCB1cCBcImxpbnV4LGluaXRyZC1zdGFy dFwiIHByb3BlcnR5XG4iKTsKIAogICAgIGNlbGxwID0gKF9fYmUzMiAqKXZhbDsKICAgICBkdF9z ZXRfY2VsbCgmY2VsbHAsIEFSUkFZX1NJWkUodmFsKSwgbG9hZF9hZGRyICsgbGVuKTsKICAgICBy ZXMgPSBmZHRfc2V0cHJvcF9pbnBsYWNlKGtpbmZvLT5mZHQsIG5vZGUsICJsaW51eCxpbml0cmQt ZW5kIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwgc2l6ZW9mKHZhbCkpOwog ICAgIGlmICggcmVzICkKLSAgICAgICAgcGFuaWMoIkNhbm5vdCBmaXggdXAgXCJsaW51eCxpbml0 cmQtZW5kXCIgcHJvcGVydHkiKTsKKyAgICAgICAgcGFuaWMoIkNhbm5vdCBmaXggdXAgXCJsaW51 eCxpbml0cmQtZW5kXCIgcHJvcGVydHlcbiIpOwogCiAgICAgaW5pdHJkID0gaW9yZW1hcF93Yyhw YWRkciwgbGVuKTsKICAgICBpZiAoICFpbml0cmQgKQotICAgICAgICBwYW5pYygiVW5hYmxlIHRv IG1hcCB0aGUgaHdkb20gaW5pdHJkIik7CisgICAgICAgIHBhbmljKCJVbmFibGUgdG8gbWFwIHRo ZSBod2RvbSBpbml0cmRcbiIpOwogCiAgICAgcmVzID0gY29weV90b19ndWVzdF9waHlzX2ZsdXNo X2RjYWNoZShraW5mby0+ZCwgbG9hZF9hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5pdHJkLCBsZW4pOwogICAgIGlmICggcmVzICE9IDAgKQotICAgICAg ICBwYW5pYygiVW5hYmxlIHRvIGNvcHkgdGhlIGluaXRyZCBpbiB0aGUgaHdkb20gbWVtb3J5Iik7 CisgICAgICAgIHBhbmljKCJVbmFibGUgdG8gY29weSB0aGUgaW5pdHJkIGluIHRoZSBod2RvbSBt ZW1vcnlcbiIpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12Mi5jIGIv eGVuL2FyY2gvYXJtL2dpYy12Mi5jCmluZGV4IGQyZGNhZmIuLmU3ZWIwMWYgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL2FybS9naWMtdjIuYworKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMKQEAgLTk0 MSw3ICs5NDEsNyBAQCBzdGF0aWMgdm9pZCBnaWN2Ml9hZGRfdjJtX2ZyYW1lX3RvX2xpc3QocGFk ZHJfdCBhZGRyLCBwYWRkcl90IHNpemUsCiAKICAgICAgICAgYmFzZSA9IGlvcmVtYXBfbm9jYWNo ZShhZGRyLCBzaXplKTsKICAgICAgICAgaWYgKCAhYmFzZSApCi0gICAgICAgICAgICBwYW5pYygi R0lDdjI6IENhbm5vdCByZW1hcCB2Mm0gcmVnaXN0ZXIgZnJhbWUiKTsKKyAgICAgICAgICAgIHBh bmljKCJHSUN2MjogQ2Fubm90IHJlbWFwIHYybSByZWdpc3RlciBmcmFtZVxuIik7CiAKICAgICAg ICAgbXNpX3R5cGVyID0gcmVhZGxfcmVsYXhlZChiYXNlICsgVjJNX01TSV9UWVBFUik7CiAgICAg ICAgIHNwaV9zdGFydCA9IFYyTV9NU0lfVFlQRVJfQkFTRV9TUEkobXNpX3R5cGVyKTsKQEAgLTk2 MCw3ICs5NjAsNyBAQCBzdGF0aWMgdm9pZCBnaWN2Ml9hZGRfdjJtX2ZyYW1lX3RvX2xpc3QocGFk ZHJfdCBhZGRyLCBwYWRkcl90IHNpemUsCiAgICAgLyogQWxsb2NhdGUgYW4gZW50cnkgdG8gcmVj b3JkIG5ldyB2Mm0gZnJhbWUgaW5mb3JtYXRpb24uICovCiAgICAgdjJtX2RhdGEgPSB4emFsbG9j X2J5dGVzKHNpemVvZihzdHJ1Y3QgdjJtX2RhdGEpKTsKICAgICBpZiAoICF2Mm1fZGF0YSApCi0g ICAgICAgIHBhbmljKCJHSUN2MjogQ2Fubm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgdjJtIGZyYW1l Iik7CisgICAgICAgIHBhbmljKCJHSUN2MjogQ2Fubm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgdjJt IGZyYW1lXG4iKTsKIAogICAgIElOSVRfTElTVF9IRUFEKCZ2Mm1fZGF0YS0+ZW50cnkpOwogICAg IHYybV9kYXRhLT5hZGRyID0gYWRkcjsKQEAgLTk5OCw3ICs5OTgsNyBAQCBzdGF0aWMgdm9pZCBn aWN2Ml9leHRlbnNpb25fZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUp CiAKICAgICAgICAgLyogR2V0IHJlZ2lzdGVyIGZyYW1lIHJlc291cmNlIGZyb20gRFQuICovCiAg ICAgICAgIGlmICggZHRfZGV2aWNlX2dldF9hZGRyZXNzKHYybSwgMCwgJmFkZHIsICZzaXplKSAp Ci0gICAgICAgICAgICBwYW5pYygiR0lDdjI6IENhbm5vdCBmaW5kIGEgdmFsaWQgdjJtIGZyYW1l IGFkZHJlc3MiKTsKKyAgICAgICAgICAgIHBhbmljKCJHSUN2MjogQ2Fubm90IGZpbmQgYSB2YWxp ZCB2Mm0gZnJhbWUgYWRkcmVzc1xuIik7CiAKICAgICAgICAgLyoKICAgICAgICAgICogQ2hlY2sg d2hldGhlciBEVCB1c2VzIG1zaS1iYXNlLXNwaSBhbmQgbXNpLW51bS1zcGlzIHByb3BlcnRpZXMg dG8KQEAgLTEwMjQsMjMgKzEwMjQsMjMgQEAgc3RhdGljIHZvaWQgX19pbml0IGdpY3YyX2R0X2lu aXQodm9pZCkKIAogICAgIHJlcyA9IGR0X2RldmljZV9nZXRfYWRkcmVzcyhub2RlLCAwLCAmZGJh c2UsIE5VTEwpOwogICAgIGlmICggcmVzICkKLSAgICAgICAgcGFuaWMoIkdJQ3YyOiBDYW5ub3Qg ZmluZCBhIHZhbGlkIGFkZHJlc3MgZm9yIHRoZSBkaXN0cmlidXRvciIpOworICAgICAgICBwYW5p YygiR0lDdjI6IENhbm5vdCBmaW5kIGEgdmFsaWQgYWRkcmVzcyBmb3IgdGhlIGRpc3RyaWJ1dG9y XG4iKTsKIAogICAgIHJlcyA9IGR0X2RldmljZV9nZXRfYWRkcmVzcyhub2RlLCAxLCAmY2Jhc2Us ICZjc2l6ZSk7CiAgICAgaWYgKCByZXMgKQotICAgICAgICBwYW5pYygiR0lDdjI6IENhbm5vdCBm aW5kIGEgdmFsaWQgYWRkcmVzcyBmb3IgdGhlIENQVSIpOworICAgICAgICBwYW5pYygiR0lDdjI6 IENhbm5vdCBmaW5kIGEgdmFsaWQgYWRkcmVzcyBmb3IgdGhlIENQVVxuIik7CiAKICAgICByZXMg PSBkdF9kZXZpY2VfZ2V0X2FkZHJlc3Mobm9kZSwgMiwgJmhiYXNlLCBOVUxMKTsKICAgICBpZiAo IHJlcyApCi0gICAgICAgIHBhbmljKCJHSUN2MjogQ2Fubm90IGZpbmQgYSB2YWxpZCBhZGRyZXNz IGZvciB0aGUgaHlwZXJ2aXNvciIpOworICAgICAgICBwYW5pYygiR0lDdjI6IENhbm5vdCBmaW5k IGEgdmFsaWQgYWRkcmVzcyBmb3IgdGhlIGh5cGVydmlzb3JcbiIpOwogCiAgICAgcmVzID0gZHRf ZGV2aWNlX2dldF9hZGRyZXNzKG5vZGUsIDMsICZ2YmFzZSwgJnZzaXplKTsKICAgICBpZiAoIHJl cyApCi0gICAgICAgIHBhbmljKCJHSUN2MjogQ2Fubm90IGZpbmQgYSB2YWxpZCBhZGRyZXNzIGZv ciB0aGUgdmlydHVhbCBDUFUiKTsKKyAgICAgICAgcGFuaWMoIkdJQ3YyOiBDYW5ub3QgZmluZCBh IHZhbGlkIGFkZHJlc3MgZm9yIHRoZSB2aXJ0dWFsIENQVVxuIik7CiAKICAgICByZXMgPSBwbGF0 Zm9ybV9nZXRfaXJxKG5vZGUsIDApOwogICAgIGlmICggcmVzIDwgMCApCi0gICAgICAgIHBhbmlj KCJHSUN2MjogQ2Fubm90IGZpbmQgdGhlIG1haW50ZW5hbmNlIElSUSIpOworICAgICAgICBwYW5p YygiR0lDdjI6IENhbm5vdCBmaW5kIHRoZSBtYWludGVuYW5jZSBJUlFcbiIpOwogICAgIGdpY3Yy X2luZm8ubWFpbnRlbmFuY2VfaXJxID0gcmVzOwogCiAgICAgLyogVE9ETzogQWRkIGNoZWNrIG9u IGRpc3RyaWJ1dG9yICovCkBAIC0xMjE1LDcgKzEyMTUsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQg Z2ljdjJfYWNwaV9pbml0KHZvaWQpCiAgICAgewogICAgICAgICBjb25zdCBjaGFyICptc2cgPSBh Y3BpX2Zvcm1hdF9leGNlcHRpb24oc3RhdHVzKTsKIAotICAgICAgICBwYW5pYygiR0lDdjI6IEZh aWxlZCB0byBnZXQgTUFEVCB0YWJsZSwgJXMiLCBtc2cpOworICAgICAgICBwYW5pYygiR0lDdjI6 IEZhaWxlZCB0byBnZXQgTUFEVCB0YWJsZSwgJXNcbiIsIG1zZyk7CiAgICAgfQogCiAgICAgLyog Q29sbGVjdCBDUFUgYmFzZSBhZGRyZXNzZXMgKi8KQEAgLTEyMjMsNyArMTIyMyw3IEBAIHN0YXRp YyB2b2lkIF9faW5pdCBnaWN2Ml9hY3BpX2luaXQodm9pZCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnaWNfYWNwaV9wYXJzZV9tYWR0X2NwdSwgdGFibGUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQUNQSV9NQURUX1RZUEVfR0VORVJJQ19JTlRFUlJVUFQsIDApOwog ICAgIGlmICggY291bnQgPD0gMCApCi0gICAgICAgIHBhbmljKCJHSUN2MjogTm8gdmFsaWQgR0lD QyBlbnRyaWVzIGV4aXN0cyIpOworICAgICAgICBwYW5pYygiR0lDdjI6IE5vIHZhbGlkIEdJQ0Mg ZW50cmllcyBleGlzdHNcbiIpOwogCiAgICAgLyoKICAgICAgKiBGaW5kIGRpc3RyaWJ1dG9yIGJh c2UgYWRkcmVzcy4gV2UgZXhwZWN0IG9uZSBkaXN0cmlidXRvciBlbnRyeSBzaW5jZQpAQCAtMTIz Myw3ICsxMjMzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGdpY3YyX2FjcGlfaW5pdCh2b2lkKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpY19hY3BpX3BhcnNlX21hZHRfZGlzdHJp YnV0b3IsIHRhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDUElfTUFEVF9U WVBFX0dFTkVSSUNfRElTVFJJQlVUT1IsIDApOwogICAgIGlmICggY291bnQgPD0gMCApCi0gICAg ICAgIHBhbmljKCJHSUN2MjogTm8gdmFsaWQgR0lDRCBlbnRyaWVzIGV4aXN0cyIpOworICAgICAg ICBwYW5pYygiR0lDdjI6IE5vIHZhbGlkIEdJQ0QgZW50cmllcyBleGlzdHNcbiIpOwogfQogI2Vs c2UKIHN0YXRpYyB2b2lkIF9faW5pdCBnaWN2Ml9hY3BpX2luaXQodm9pZCkgeyB9CkBAIC0xMjYz LDcgKzEyNjMsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBnaWN2Ml9pbml0KHZvaWQpCiAKICAgICBp ZiAoIChkYmFzZSAmIH5QQUdFX01BU0spIHx8IChjYmFzZSAmIH5QQUdFX01BU0spIHx8CiAgICAg ICAgICAoaGJhc2UgJiB+UEFHRV9NQVNLKSB8fCAodmJhc2UgJiB+UEFHRV9NQVNLKSApCi0gICAg ICAgIHBhbmljKCJHSUN2MiBpbnRlcmZhY2VzIG5vdCBwYWdlIGFsaWduZWQiKTsKKyAgICAgICAg cGFuaWMoIkdJQ3YyIGludGVyZmFjZXMgbm90IHBhZ2UgYWxpZ25lZFxuIik7CiAKICAgICBnaWN2 Mi5tYXBfZGJhc2UgPSBpb3JlbWFwX25vY2FjaGUoZGJhc2UsIFBBR0VfU0laRSk7CiAgICAgaWYg KCAhZ2ljdjIubWFwX2RiYXNlICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjMtaXRz LmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jCmluZGV4IDYxMjc4OTQuLmJhNGJjMDAgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKKysrIGIveGVuL2FyY2gvYXJtL2dp Yy12My1pdHMuYwpAQCAtOTkyLDcgKzk5Miw3IEBAIHN0YXRpYyB2b2lkIGFkZF90b19ob3N0X2l0 c19saXN0KHBhZGRyX3QgYWRkciwgcGFkZHJfdCBzaXplLAogCiAgICAgaXRzX2RhdGEgPSB4emFs bG9jKHN0cnVjdCBob3N0X2l0cyk7CiAgICAgaWYgKCAhaXRzX2RhdGEgKQotICAgICAgICBwYW5p YygiR0lDdjM6IENhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIElUUyBmcmFtZSIpOworICAgICAg ICBwYW5pYygiR0lDdjM6IENhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIElUUyBmcmFtZVxuIik7 CiAKICAgICBpdHNfZGF0YS0+YWRkciA9IGFkZHI7CiAgICAgaXRzX2RhdGEtPnNpemUgPSBzaXpl OwpAQCAtMTAyMCw3ICsxMDIwLDcgQEAgc3RhdGljIHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29u c3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlKQogICAgICAgICAgICAgY29udGludWU7CiAK ICAgICAgICAgaWYgKCBkdF9kZXZpY2VfZ2V0X2FkZHJlc3MoaXRzLCAwLCAmYWRkciwgJnNpemUp ICkKLSAgICAgICAgICAgIHBhbmljKCJHSUN2MzogQ2Fubm90IGZpbmQgYSB2YWxpZCBJVFMgZnJh bWUgYWRkcmVzcyIpOworICAgICAgICAgICAgcGFuaWMoIkdJQ3YzOiBDYW5ub3QgZmluZCBhIHZh bGlkIElUUyBmcmFtZSBhZGRyZXNzXG4iKTsKIAogICAgICAgICBhZGRfdG9faG9zdF9pdHNfbGlz dChhZGRyLCBzaXplLCBpdHMpOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMt djMuYyBiL3hlbi9hcmNoL2FybS9naWMtdjMuYwppbmRleCBiMmVkMGY4Li5jOThhMTYzIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMKKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My5j CkBAIC0xMzQ1LDcgKzEzNDUsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfaW5pdF92Mih2 b2lkKQogc3RhdGljIHZvaWQgX19pbml0IGdpY3YzX2lvcmVtYXBfZGlzdHJpYnV0b3IocGFkZHJf dCBkaXN0X3BhZGRyKQogewogICAgIGlmICggZGlzdF9wYWRkciAmIH5QQUdFX01BU0sgKQotICAg ICAgICBwYW5pYygiR0lDdjM6ICBGb3VuZCB1bmFsaWduZWQgZGlzdHJpYnV0b3IgYWRkcmVzcyAl IlBSSXBhZGRyIiIsCisgICAgICAgIHBhbmljKCJHSUN2MzogIEZvdW5kIHVuYWxpZ25lZCBkaXN0 cmlidXRvciBhZGRyZXNzICUiUFJJcGFkZHIiXG4iLAogICAgICAgICAgICAgICBkYmFzZSk7CiAK ICAgICBnaWN2My5tYXBfZGJhc2UgPSBpb3JlbWFwX25vY2FjaGUoZGlzdF9wYWRkciwgU1pfNjRL KTsKQEAgLTEzNjEsNyArMTM2MSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBnaWN2M19kdF9pbml0 KHZvaWQpCiAKICAgICByZXMgPSBkdF9kZXZpY2VfZ2V0X2FkZHJlc3Mobm9kZSwgMCwgJmRiYXNl LCBOVUxMKTsKICAgICBpZiAoIHJlcyApCi0gICAgICAgIHBhbmljKCJHSUN2MzogQ2Fubm90IGZp bmQgYSB2YWxpZCBkaXN0cmlidXRvciBhZGRyZXNzIik7CisgICAgICAgIHBhbmljKCJHSUN2Mzog Q2Fubm90IGZpbmQgYSB2YWxpZCBkaXN0cmlidXRvciBhZGRyZXNzXG4iKTsKIAogICAgIGdpY3Yz X2lvcmVtYXBfZGlzdHJpYnV0b3IoZGJhc2UpOwogCkBAIC0xMzkyLDcgKzEzOTIsNyBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgZ2ljdjNfZHRfaW5pdCh2b2lkKQogCiAgICAgcmVzID0gcGxhdGZvcm1f Z2V0X2lycShub2RlLCAwKTsKICAgICBpZiAoIHJlcyA8IDAgKQotICAgICAgICBwYW5pYygiR0lD djM6IENhbm5vdCBmaW5kIHRoZSBtYWludGVuYW5jZSBJUlEiKTsKKyAgICAgICAgcGFuaWMoIkdJ Q3YzOiBDYW5ub3QgZmluZCB0aGUgbWFpbnRlbmFuY2UgSVJRXG4iKTsKICAgICBnaWN2M19pbmZv Lm1haW50ZW5hbmNlX2lycSA9IHJlczsKIAogICAgIC8qCkBAIC0xNjUyLDcgKzE2NTIsNyBAQCBz dGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfYWNwaV9pbml0KHZvaWQpCiAgICAgY291bnQgPSBhY3Bp X3RhYmxlX3BhcnNlX21hZHQoQUNQSV9NQURUX1RZUEVfR0VORVJJQ19ESVNUUklCVVRPUiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaWNfYWNwaV9wYXJzZV9tYWR0X2Rpc3Ry aWJ1dG9yLCAwKTsKICAgICBpZiAoIGNvdW50IDw9IDAgKQotICAgICAgICBwYW5pYygiR0lDdjM6 IE5vIHZhbGlkIEdJQ0QgZW50cmllcyBleGlzdHMiKTsKKyAgICAgICAgcGFuaWMoIkdJQ3YzOiBO byB2YWxpZCBHSUNEIGVudHJpZXMgZXhpc3RzXG4iKTsKIAogICAgIGdpY3YzX2lvcmVtYXBfZGlz dHJpYnV0b3IoZGJhc2UpOwogCkBAIC0xNjY0LDcgKzE2NjQsNyBAQCBzdGF0aWMgdm9pZCBfX2lu aXQgZ2ljdjNfYWNwaV9pbml0KHZvaWQpCiAgICAgICAgIGNvdW50ID0gYWNwaV90YWJsZV9wYXJz ZV9tYWR0KEFDUElfTUFEVF9UWVBFX0dFTkVSSUNfSU5URVJSVVBULAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnaWNfYWNwaV9nZXRfbWFkdF9jcHVfbnVtLCAwKTsKICAg ICAgICAgaWYgKGNvdW50IDw9IDApCi0gICAgICAgICAgICBwYW5pYygiR0lDdjM6IE5vIHZhbGlk IEdJQ1IgZW50cmllcyBleGlzdHMiKTsKKyAgICAgICAgICAgIHBhbmljKCJHSUN2MzogTm8gdmFs aWQgR0lDUiBlbnRyaWVzIGV4aXN0c1xuIik7CiAKICAgICAgICAgZ2ljcl90YWJsZSA9IGZhbHNl OwogICAgIH0KQEAgLTE2ODQsMTMgKzE2ODQsMTMgQEAgc3RhdGljIHZvaWQgX19pbml0IGdpY3Yz X2FjcGlfaW5pdCh2b2lkKQogICAgICAgICBjb3VudCA9IGFjcGlfdGFibGVfcGFyc2VfbWFkdChB Q1BJX01BRFRfVFlQRV9HRU5FUklDX0lOVEVSUlVQVCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2ljX2FjcGlfcGFyc2VfY3B1X3JlZGlzdHJpYnV0b3IsIGNvdW50KTsK ICAgICBpZiAoIGNvdW50IDw9IDAgKQotICAgICAgICBwYW5pYygiR0lDdjM6IENhbid0IGdldCBS ZWRpc3RyaWJ1dG9yIGVudHJ5Iik7CisgICAgICAgIHBhbmljKCJHSUN2MzogQ2FuJ3QgZ2V0IFJl ZGlzdHJpYnV0b3IgZW50cnlcbiIpOwogCiAgICAgLyogQ29sbGVjdCBDUFUgYmFzZSBhZGRyZXNz ZXMgKi8KICAgICBjb3VudCA9IGFjcGlfdGFibGVfcGFyc2VfbWFkdChBQ1BJX01BRFRfVFlQRV9H RU5FUklDX0lOVEVSUlVQVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaWNf YWNwaV9wYXJzZV9tYWR0X2NwdSwgMCk7CiAgICAgaWYgKCBjb3VudCA8PSAwICkKLSAgICAgICAg cGFuaWMoIkdJQ3YzOiBObyB2YWxpZCBHSUNDIGVudHJpZXMgZXhpc3RzIik7CisgICAgICAgIHBh bmljKCJHSUN2MzogTm8gdmFsaWQgR0lDQyBlbnRyaWVzIGV4aXN0c1xuIik7CiAKICAgICBnaWN2 My5yZGlzdF9zdHJpZGUgPSAwOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLmMgYi94 ZW4vYXJjaC9hcm0vZ2ljLmMKaW5kZXggNTQ3NDAzMC4uZTUyNGFkNSAxMDA2NDQKLS0tIGEveGVu L2FyY2gvYXJtL2dpYy5jCisrKyBiL3hlbi9hcmNoL2FybS9naWMuYwpAQCAtMjQ2LDcgKzI0Niw3 IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBnaWNfZHRfcHJlaW5pdCh2b2lkKQogICAgICAgICB9CiAg ICAgfQogICAgIGlmICggIW51bV9naWNzICkKLSAgICAgICAgcGFuaWMoIlVuYWJsZSB0byBmaW5k IGNvbXBhdGlibGUgR0lDIGluIHRoZSBkZXZpY2UgdHJlZSIpOworICAgICAgICBwYW5pYygiVW5h YmxlIHRvIGZpbmQgY29tcGF0aWJsZSBHSUMgaW4gdGhlIGRldmljZSB0cmVlXG4iKTsKIAogICAg IC8qIFNldCB0aGUgR0lDIGFzIHRoZSBwcmltYXJ5IGludGVycnVwdCBjb250cm9sbGVyICovCiAg ICAgZHRfaW50ZXJydXB0X2NvbnRyb2xsZXIgPSBub2RlOwpAQCAtMjYxLDEyICsyNjEsMTIgQEAg c3RhdGljIHZvaWQgX19pbml0IGdpY19hY3BpX3ByZWluaXQodm9pZCkKIAogICAgIGhlYWRlciA9 IGFjcGlfdGFibGVfZ2V0X2VudHJ5X21hZHQoQUNQSV9NQURUX1RZUEVfR0VORVJJQ19ESVNUUklC VVRPUiwgMCk7CiAgICAgaWYgKCAhaGVhZGVyICkKLSAgICAgICAgcGFuaWMoIk5vIHZhbGlkIEdJ Q0QgZW50cmllcyBleGlzdHMiKTsKKyAgICAgICAgcGFuaWMoIk5vIHZhbGlkIEdJQ0QgZW50cmll cyBleGlzdHNcbiIpOwogCiAgICAgZGlzdCA9IGNvbnRhaW5lcl9vZihoZWFkZXIsIHN0cnVjdCBh Y3BpX21hZHRfZ2VuZXJpY19kaXN0cmlidXRvciwgaGVhZGVyKTsKIAogICAgIGlmICggYWNwaV9k ZXZpY2VfaW5pdChERVZJQ0VfR0lDLCBOVUxMLCBkaXN0LT52ZXJzaW9uKSApCi0gICAgICAgIHBh bmljKCJVbmFibGUgdG8gZmluZCBjb21wYXRpYmxlIEdJQyBpbiB0aGUgQUNQSSB0YWJsZSIpOwor ICAgICAgICBwYW5pYygiVW5hYmxlIHRvIGZpbmQgY29tcGF0aWJsZSBHSUMgaW4gdGhlIEFDUEkg dGFibGVcbiIpOwogfQogI2Vsc2UKIHN0YXRpYyB2b2lkIF9faW5pdCBnaWNfYWNwaV9wcmVpbml0 KHZvaWQpIHsgfQpAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgX19pbml0IGdpY19wcmVpbml0KHZv aWQpCiB2b2lkIF9faW5pdCBnaWNfaW5pdCh2b2lkKQogewogICAgIGlmICggZ2ljX2h3X29wcy0+ aW5pdCgpICkKLSAgICAgICAgcGFuaWMoIkZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBHSUMgZHJp dmVycyIpOworICAgICAgICBwYW5pYygiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIEdJQyBkcml2 ZXJzXG4iKTsKICAgICAvKiBDbGVhciBMUiBtYXNrIGZvciBjcHUwICovCiAgICAgY2xlYXJfY3B1 X2xyX21hc2soKTsKIH0KQEAgLTM2NCw3ICszNjQsNyBAQCBzdGF0aWMgdm9pZCBkb19zZ2koc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGVudW0gZ2ljX3NnaSBzZ2kpCiAgICAgICAgIHNtcF9j YWxsX2Z1bmN0aW9uX2ludGVycnVwdCgpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogot ICAgICAgICBwYW5pYygiVW5oYW5kbGVkIFNHSSAlZCBvbiBDUFUlZCIsIHNnaSwgc21wX3Byb2Nl c3Nvcl9pZCgpKTsKKyAgICAgICAgcGFuaWMoIlVuaGFuZGxlZCBTR0kgJWQgb24gQ1BVJWRcbiIs IHNnaSwgc21wX3Byb2Nlc3Nvcl9pZCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0va2VybmVsLmMgYi94ZW4vYXJjaC9hcm0va2VybmVsLmMKaW5k ZXggMDAwZDkzOS4uZGE4NDEwZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2tlcm5lbC5jCisr KyBiL3hlbi9hcmNoL2FybS9rZXJuZWwuYwpAQCAtODcsNyArODcsNyBAQCBzdGF0aWMgdm9pZCBf X2luaXQgcGxhY2VfbW9kdWxlcyhzdHJ1Y3Qga2VybmVsX2luZm8gKmluZm8sCiAgICAgcGFkZHJf dCBtb2RiYXNlOwogCiAgICAgaWYgKCBtb2RzaXplICsga2VybnNpemUgPiByYW1zaXplICkKLSAg ICAgICAgcGFuaWMoIk5vdCBlbm91Z2ggbWVtb3J5IGluIHRoZSBmaXJzdCBiYW5rIGZvciB0aGUg a2VybmVsK2R0Yitpbml0cmQiKTsKKyAgICAgICAgcGFuaWMoIk5vdCBlbm91Z2ggbWVtb3J5IGlu IHRoZSBmaXJzdCBiYW5rIGZvciB0aGUga2VybmVsK2R0Yitpbml0cmRcbiIpOwogCiAgICAgLyoK ICAgICAgKiBEVEIgbXVzdCBiZSBsb2FkZWQgc3VjaCB0aGF0IGl0IGRvZXMgbm90IGNvbmZsaWN0 IHdpdGggdGhlCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHBsYWNlX21v ZHVsZXMoc3RydWN0IGtlcm5lbF9pbmZvICppbmZvLAogICAgICAgICBtb2RiYXNlID0ga2VybmJh c2UgLSBtb2RzaXplOwogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHBhbmljKCJVbmFibGUgdG8g ZmluZCBzdWl0YWJsZSBsb2NhdGlvbiBmb3IgZHRiK2luaXRyZCIpOworICAgICAgICBwYW5pYygi VW5hYmxlIHRvIGZpbmQgc3VpdGFibGUgbG9jYXRpb24gZm9yIGR0Yitpbml0cmRcbiIpOwogICAg ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNzEsMTIgKzE3MSwxMiBAQCBzdGF0aWMgdm9pZCBf X2luaXQga2VybmVsX3ppbWFnZV9sb2FkKHN0cnVjdCBrZXJuZWxfaW5mbyAqaW5mbykKIAogICAg IGtlcm5lbCA9IGlvcmVtYXBfd2MocGFkZHIsIGxlbik7CiAgICAgaWYgKCAha2VybmVsICkKLSAg ICAgICAgcGFuaWMoIlVuYWJsZSB0byBtYXAgdGhlIGh3ZG9tIGtlcm5lbCIpOworICAgICAgICBw YW5pYygiVW5hYmxlIHRvIG1hcCB0aGUgaHdkb20ga2VybmVsXG4iKTsKIAogICAgIHJjID0gY29w eV90b19ndWVzdF9waHlzX2ZsdXNoX2RjYWNoZShpbmZvLT5kLCBsb2FkX2FkZHIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlcm5lbCwgbGVuKTsKICAgICBpZiAo IHJjICE9IDAgKQotICAgICAgICBwYW5pYygiVW5hYmxlIHRvIGNvcHkgdGhlIGtlcm5lbCBpbiB0 aGUgaHdkb20gbWVtb3J5Iik7CisgICAgICAgIHBhbmljKCJVbmFibGUgdG8gY29weSB0aGUga2Vy bmVsIGluIHRoZSBod2RvbSBtZW1vcnlcbiIpOwogCiAgICAgaW91bm1hcChrZXJuZWwpOwogfQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL21tLmMgYi94ZW4vYXJjaC9hcm0vbW0uYwppbmRleCBk ZTliOTY1Li43YTA2YTMzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vbW0uYworKysgYi94ZW4v YXJjaC9hcm0vbW0uYwpAQCAtODMwLDcgKzgzMCw3IEBAIHZvaWQgX19pbml0IHNldHVwX3hlbmhl YXBfbWFwcGluZ3ModW5zaWduZWQgbG9uZyBiYXNlX21mbiwKICAgICB9CiAKICAgICBpZiAoIGJh c2VfbWZuIDwgbWZuX3goeGVuaGVhcF9tZm5fc3RhcnQpICkKLSAgICAgICAgcGFuaWMoImNhbm5v dCBhZGQgeGVuaGVhcCBtYXBwaW5nIGF0ICVseCBiZWxvdyBoZWFwIHN0YXJ0ICVseCIsCisgICAg ICAgIHBhbmljKCJjYW5ub3QgYWRkIHhlbmhlYXAgbWFwcGluZyBhdCAlbHggYmVsb3cgaGVhcCBz dGFydCAlbHhcbiIsCiAgICAgICAgICAgICAgIGJhc2VfbWZuLCBtZm5feCh4ZW5oZWFwX21mbl9z dGFydCkpOwogCiAgICAgZW5kX21mbiA9IGJhc2VfbWZuICsgbnJfbWZuczsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9hcmNoL2FybS9wMm0uYwppbmRleCA1NmI1NDc0Li4x MzY0ZTU5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJt L3AybS5jCkBAIC0xMTY0LDcgKzExNjQsNyBAQCBzdGF0aWMgdm9pZCBwMm1fdm1pZF9hbGxvY2F0 b3JfaW5pdCh2b2lkKQogICAgIHZtaWRfbWFzayA9IHh6YWxsb2NfYXJyYXkodW5zaWduZWQgbG9u ZywgQklUU19UT19MT05HUyhNQVhfVk1JRCkpOwogCiAgICAgaWYgKCAhdm1pZF9tYXNrICkKLSAg ICAgICAgcGFuaWMoIkNvdWxkIG5vdCBhbGxvY2F0ZSBWTUlEIGJpdG1hcCBzcGFjZSIpOworICAg ICAgICBwYW5pYygiQ291bGQgbm90IGFsbG9jYXRlIFZNSUQgYml0bWFwIHNwYWNlXG4iKTsKIAog ICAgIHNldF9iaXQoSU5WQUxJRF9WTUlELCB2bWlkX21hc2spOwogfQpkaWZmIC0tZ2l0IGEveGVu L2FyY2gvYXJtL3BsYXRmb3JtLmMgYi94ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYwppbmRleCAzZjI5 ODllLi42OTg5ZTU4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYworKysgYi94 ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYwpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIF9faW5pdCBwbGF0 Zm9ybV9pbml0KHZvaWQpCiAgICAgICAgIHJlcyA9IHBsYXRmb3JtLT5pbml0KCk7CiAKICAgICBp ZiAoIHJlcyApCi0gICAgICAgIHBhbmljKCJVbmFibGUgdG8gaW5pdGlhbGl6ZSB0aGUgcGxhdGZv cm0iKTsKKyAgICAgICAgcGFuaWMoIlVuYWJsZSB0byBpbml0aWFsaXplIHRoZSBwbGF0Zm9ybVxu Iik7CiB9CiAKIGludCBfX2luaXQgcGxhdGZvcm1faW5pdF90aW1lKHZvaWQpCmRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL3hnZW5lLXN0b3JtLmMgYi94ZW4vYXJjaC9hcm0vcGxh dGZvcm1zL3hnZW5lLXN0b3JtLmMKaW5kZXggZGViODQ3OS4uZmNlZDRkNyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy94Z2VuZS1zdG9ybS5jCisrKyBiL3hlbi9hcmNoL2FybS9w bGF0Zm9ybXMveGdlbmUtc3Rvcm0uYwpAQCAtNDgsMTEgKzQ4LDExIEBAIHN0YXRpYyB2b2lkIF9f aW5pdCB4Z2VuZV9jaGVja19waXJxX2VvaSh2b2lkKQogCiAgICAgbm9kZSA9IGR0X2ZpbmRfaW50 ZXJydXB0X2NvbnRyb2xsZXIoeGdlbmVfZHRfaW50X2N0cmxfbWF0Y2gpOwogICAgIGlmICggIW5v ZGUgKQotICAgICAgICBwYW5pYygiJXM6IENhbiBub3QgZmluZCBpbnRlcnJ1cHQgY29udHJvbGxl ciBub2RlIiwgX19mdW5jX18pOworICAgICAgICBwYW5pYygiJXM6IENhbiBub3QgZmluZCBpbnRl cnJ1cHQgY29udHJvbGxlciBub2RlXG4iLCBfX2Z1bmNfXyk7CiAKICAgICByZXMgPSBkdF9kZXZp Y2VfZ2V0X2FkZHJlc3Mobm9kZSwgMCwgJmRiYXNlLCBOVUxMKTsKICAgICBpZiAoICFkYmFzZSAp Ci0gICAgICAgIHBhbmljKCIlczogQ2Fubm90IGZpbmQgYSB2YWxpZCBhZGRyZXNzIGZvciB0aGUg ZGlzdHJpYnV0b3IiLCBfX2Z1bmNfXyk7CisgICAgICAgIHBhbmljKCIlczogQ2Fubm90IGZpbmQg YSB2YWxpZCBhZGRyZXNzIGZvciB0aGUgZGlzdHJpYnV0b3JcbiIsIF9fZnVuY19fKTsKIAogICAg IC8qCiAgICAgICogSW4gb2xkIFgtR2VuZSBTdG9ybSBmaXJtd2FyZSBhbmQgRFQsIHNlY3VyZSBt b2RlIGFkZHJlc3NlcyBoYXZlCkBAIC02Miw3ICs2Miw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCB4 Z2VuZV9jaGVja19waXJxX2VvaSh2b2lkKQogICAgICAqLwogICAgIGlmICggZGJhc2UgPT0gWEdF TkVfU0VDX0dJQ1YyX0RJU1RfQUREUiApCiAgICAgICAgIHBhbmljKCJPTEQgWC1HZW5lIEZpcm13 YXJlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgWGVuLlxuIgotICAgICAgICAgICAgICAiUGxlYXNlIHVw Z3JhZGUgeW91ciBmaXJtd2FyZSB0byB0aGUgbGF0ZXN0IHZlcnNpb24iKTsKKyAgICAgICAgICAg ICAgIlBsZWFzZSB1cGdyYWRlIHlvdXIgZmlybXdhcmUgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uXG4i KTsKIH0KIAogc3RhdGljIHVpbnQzMl90IHhnZW5lX3N0b3JtX3F1aXJrcyh2b2lkKQpkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL3NldHVwLmMgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwppbmRleCA0 NWYzODQxLi4xYWFmYTI2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vc2V0dXAuYworKysgYi94 ZW4vYXJjaC9hcm0vc2V0dXAuYwpAQCAtNDI0LDcgKzQyNCw3IEBAIHN0YXRpYyBwYWRkcl90IF9f aW5pdCBnZXRfeGVuX3BhZGRyKHZvaWQpCiAgICAgfQogCiAgICAgaWYgKCAhcGFkZHIgKQotICAg ICAgICBwYW5pYygiTm90IGVub3VnaCBtZW1vcnkgdG8gcmVsb2NhdGUgWGVuIik7CisgICAgICAg IHBhbmljKCJOb3QgZW5vdWdoIG1lbW9yeSB0byByZWxvY2F0ZSBYZW5cbiIpOwogCiAgICAgcHJp bnRrKCJQbGFjaW5nIFhlbiBhdCAweCUiUFJJcGFkZHIiLTB4JSJQUklwYWRkciJcbiIsCiAgICAg ICAgICAgIHBhZGRyLCBwYWRkciArIG1pbl9zaXplKTsKQEAgLTQ4Miw3ICs0ODIsNyBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgc2V0dXBfbW0odW5zaWduZWQgbG9uZyBkdGJfcGFkZHIsIHNpemVfdCBk dGJfc2l6ZSkKICAgICB2b2lkICpmZHQ7CiAKICAgICBpZiAoICFib290aW5mby5tZW0ubnJfYmFu a3MgKQotICAgICAgICBwYW5pYygiTm8gbWVtb3J5IGJhbmsiKTsKKyAgICAgICAgcGFuaWMoIk5v IG1lbW9yeSBiYW5rXG4iKTsKIAogICAgIGluaXRfcGR4KCk7CiAKQEAgLTUzNyw3ICs1MzcsNyBA QCBzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfbW0odW5zaWduZWQgbG9uZyBkdGJfcGFkZHIsIHNp emVfdCBkdGJfc2l6ZSkKICAgICB9IHdoaWxlICggIW9wdF94ZW5oZWFwX21lZ2FieXRlcyAmJiB4 ZW5oZWFwX3BhZ2VzID4gMzI8PCgyMC1QQUdFX1NISUZUKSApOwogCiAgICAgaWYgKCAhIGUgKQot ICAgICAgICBwYW5pYygiTm90IG5vdCBlbm91Z2ggc3BhY2UgZm9yIHhlbmhlYXAiKTsKKyAgICAg ICAgcGFuaWMoIk5vdCBub3QgZW5vdWdoIHNwYWNlIGZvciB4ZW5oZWFwXG4iKTsKIAogICAgIGRv bWhlYXBfcGFnZXMgPSBoZWFwX3BhZ2VzIC0geGVuaGVhcF9wYWdlczsKIApAQCAtNzEzLDcgKzcx Myw3IEBAIHZvaWQgX19pbml0IHN0YXJ0X3hlbih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19vZmZz ZXQsCiAgICAgaWYgKCAhZGV2aWNlX3RyZWVfZmxhdHRlbmVkICkKICAgICAgICAgcGFuaWMoIklu dmFsaWQgZGV2aWNlIHRyZWUgYmxvYiBhdCBwaHlzaWNhbCBhZGRyZXNzICUjbHguXG4iCiAgICAg ICAgICAgICAgICJUaGUgRFRCIG11c3QgYmUgOC1ieXRlIGFsaWduZWQgYW5kIG11c3Qgbm90IGV4 Y2VlZCAyIE1CIGluIHNpemUuXG5cbiIKLSAgICAgICAgICAgICAgIlBsZWFzZSBjaGVjayB5b3Vy IGJvb3Rsb2FkZXIuIiwKKyAgICAgICAgICAgICAgIlBsZWFzZSBjaGVjayB5b3VyIGJvb3Rsb2Fk ZXIuXG4iLAogICAgICAgICAgICAgICBmZHRfcGFkZHIpOwogCiAgICAgZmR0X3NpemUgPSBib290 X2ZkdF9pbmZvKGRldmljZV90cmVlX2ZsYXR0ZW5lZCwgZmR0X3BhZGRyKTsKQEAgLTg1MSwxMCAr ODUxLDEwIEBAIHZvaWQgX19pbml0IHN0YXJ0X3hlbih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19v ZmZzZXQsCiAKICAgICBkb20wID0gZG9tYWluX2NyZWF0ZSgwLCAmZG9tMF9jZmcsIHRydWUpOwog ICAgIGlmICggSVNfRVJSKGRvbTApIHx8IChhbGxvY19kb20wX3ZjcHUwKGRvbTApID09IE5VTEwp ICkKLSAgICAgICAgICAgIHBhbmljKCJFcnJvciBjcmVhdGluZyBkb21haW4gMCIpOworICAgICAg ICBwYW5pYygiRXJyb3IgY3JlYXRpbmcgZG9tYWluIDBcbiIpOwogCiAgICAgaWYgKCBjb25zdHJ1 Y3RfZG9tMChkb20wKSAhPSAwKQotICAgICAgICAgICAgcGFuaWMoIkNvdWxkIG5vdCBzZXQgdXAg RE9NMCBndWVzdCBPUyIpOworICAgICAgICBwYW5pYygiQ291bGQgbm90IHNldCB1cCBET00wIGd1 ZXN0IE9TXG4iKTsKIAogICAgIGhlYXBfaW5pdF9sYXRlKCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9zbXBib290LmMgYi94ZW4vYXJjaC9hcm0vc21wYm9vdC5jCmluZGV4IGNmM2E0Y2Uu LjI1Y2Q0NDUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9zbXBib290LmMKKysrIGIveGVuL2Fy Y2gvYXJtL3NtcGJvb3QuYwpAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cF9jcHVf c2libGluZ19tYXAoaW50IGNwdSkKIHsKICAgICBpZiAoICF6YWxsb2NfY3B1bWFza192YXIoJnBl cl9jcHUoY3B1X3NpYmxpbmdfbWFzaywgY3B1KSkgfHwKICAgICAgICAgICF6YWxsb2NfY3B1bWFz a192YXIoJnBlcl9jcHUoY3B1X2NvcmVfbWFzaywgY3B1KSkgKQotICAgICAgICBwYW5pYygiTm8g bWVtb3J5IGZvciBDUFUgc2libGluZy9jb3JlIG1hcHMiKTsKKyAgICAgICAgcGFuaWMoIk5vIG1l bW9yeSBmb3IgQ1BVIHNpYmxpbmcvY29yZSBtYXBzXG4iKTsKIAogICAgIC8qIEEgQ1BVIGlzIGEg c2libGluZyB3aXRoIGl0c2VsZiBhbmQgaXMgYWx3YXlzIG9uIGl0cyBvd24gY29yZS4gKi8KICAg ICBjcHVtYXNrX3NldF9jcHUoY3B1LCBwZXJfY3B1KGNwdV9zaWJsaW5nX21hc2ssIGNwdSkpOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RpbWUuYyBiL3hlbi9hcmNoL2FybS90aW1lLmMKaW5k ZXggMTYzNWM4OC4uYmJjY2VlNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3RpbWUuYworKysg Yi94ZW4vYXJjaC9hcm0vdGltZS5jCkBAIC0xMjIsNyArMTIyLDcgQEAgc3RhdGljIHZvaWQgX19p bml0IHByZWluaXRfZHRfeGVuX3RpbWUodm9pZCkKIAogICAgIHRpbWVyID0gZHRfZmluZF9tYXRj aGluZ19ub2RlKE5VTEwsIHRpbWVyX2lkcyk7CiAgICAgaWYgKCAhdGltZXIgKQotICAgICAgICBw YW5pYygiVW5hYmxlIHRvIGZpbmQgYSBjb21wYXRpYmxlIHRpbWVyIGluIHRoZSBkZXZpY2UgdHJl ZSIpOworICAgICAgICBwYW5pYygiVW5hYmxlIHRvIGZpbmQgYSBjb21wYXRpYmxlIHRpbWVyIGlu IHRoZSBkZXZpY2UgdHJlZVxuIik7CiAKICAgICBkdF9kZXZpY2Vfc2V0X3VzZWRfYnkodGltZXIs IERPTUlEX1hFTik7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIF9faW5pdCBwcmVpbml0X3hl bl90aW1lKHZvaWQpCiAKICAgICByZXMgPSBwbGF0Zm9ybV9pbml0X3RpbWUoKTsKICAgICBpZiAo IHJlcyApCi0gICAgICAgIHBhbmljKCJUaW1lcjogQ2Fubm90IGluaXRpYWxpemUgcGxhdGZvcm0g dGltZXIiKTsKKyAgICAgICAgcGFuaWMoIlRpbWVyOiBDYW5ub3QgaW5pdGlhbGl6ZSBwbGF0Zm9y bSB0aW1lclxuIik7CiAKICAgICBib290X2NvdW50ID0gUkVBRF9TWVNSRUc2NChDTlRQQ1RfRUww KTsKIH0KQEAgLTE2NSw3ICsxNjUsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9kdF94ZW5f dGltZSh2b2lkKQogICAgICAgICByZXMgPSBwbGF0Zm9ybV9nZXRfaXJxKHRpbWVyLCBpKTsKIAog ICAgICAgICBpZiAoIHJlcyA8IDAgKQotICAgICAgICAgICAgcGFuaWMoIlRpbWVyOiBVbmFibGUg dG8gcmV0cmlldmUgSVJRICV1IGZyb20gdGhlIGRldmljZSB0cmVlIiwgaSk7CisgICAgICAgICAg ICBwYW5pYygiVGltZXI6IFVuYWJsZSB0byByZXRyaWV2ZSBJUlEgJXUgZnJvbSB0aGUgZGV2aWNl IHRyZWVcbiIsIGkpOwogICAgICAgICB0aW1lcl9pcnFbaV0gPSByZXM7CiAgICAgfQogfQpAQCAt MTc4LDcgKzE3OCw3IEBAIGludCBfX2luaXQgaW5pdF94ZW5fdGltZSh2b2lkKQogCiAgICAgLyog Q2hlY2sgdGhhdCB0aGlzIENQVSBzdXBwb3J0cyB0aGUgR2VuZXJpYyBUaW1lciBpbnRlcmZhY2Ug Ki8KICAgICBpZiAoICFjcHVfaGFzX2dlbnRpbWVyICkKLSAgICAgICAgcGFuaWMoIkNQVSBkb2Vz IG5vdCBzdXBwb3J0IHRoZSBHZW5lcmljIFRpbWVyIHYxIGludGVyZmFjZSIpOworICAgICAgICBw YW5pYygiQ1BVIGRvZXMgbm90IHN1cHBvcnQgdGhlIEdlbmVyaWMgVGltZXIgdjEgaW50ZXJmYWNl XG4iKTsKIAogICAgIHByaW50aygiR2VuZXJpYyBUaW1lciBJUlE6IHBoeXM9JXUgaHlwPSV1IHZp cnQ9JXUgRnJlcTogJWx1IEtIelxuIiwKICAgICAgICAgICAgdGltZXJfaXJxW1RJTUVSX1BIWVNf Tk9OU0VDVVJFX1BQSV0sCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9h cmNoL2FybS90cmFwcy5jCmluZGV4IDlhZTY0YWUuLjBmNGIxZjIgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL2FybS90cmFwcy5jCisrKyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCkBAIC0zOTksNyArMzk5 LDcgQEAgdm9pZCBwYW5pY19QQVIodWludDY0X3QgcGFyKQogICAgICAgICAgICBzZWNvbmRfaW5f Zmlyc3QgPyAiIGR1cmluZyBzZWNvbmQgc3RhZ2UgbG9va3VwIiA6ICIiLAogICAgICAgICAgICBm c2NfbGV2ZWxfc3RyKGxldmVsKSk7CiAKLSAgICBwYW5pYygiRXJyb3IgZHVyaW5nIEh5cGVydmlz b3ItdG8tcGh5c2ljYWwgYWRkcmVzcyB0cmFuc2xhdGlvbiIpOworICAgIHBhbmljKCJFcnJvciBk dXJpbmcgSHlwZXJ2aXNvci10by1waHlzaWNhbCBhZGRyZXNzIHRyYW5zbGF0aW9uXG4iKTsKIH0K IAogc3RhdGljIHZvaWQgY3Bzcl9zd2l0Y2hfbW9kZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cywgaW50IG1vZGUpCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBpbnQgZG9fYnVnX2ZyYW1lKHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzLCB2YWRkcl90IHBjKQogICAgICAgICAgICAgcmV0dXJuIDA7 CiAKICAgICAgICAgc2hvd19leGVjdXRpb25fc3RhdGUocmVncyk7Ci0gICAgICAgIHBhbmljKCJY ZW4gQlVHIGF0ICVzJXM6JWQiLCBwcmVmaXgsIGZpbGVuYW1lLCBsaW5lbm8pOworICAgICAgICBw YW5pYygiWGVuIEJVRyBhdCAlcyVzOiVkXG4iLCBwcmVmaXgsIGZpbGVuYW1lLCBsaW5lbm8pOwog CiAgICAgY2FzZSBCVUdGUkFNRV9hc3NlcnQ6CiAgICAgICAgIC8qIEFTU0VSVDogZGVjb2RlIHRo ZSBwcmVkaWNhdGUgc3RyaW5nIHBvaW50ZXIuICovCkBAIC0xMzI1LDcgKzEzMjUsNyBAQCBpbnQg ZG9fYnVnX2ZyYW1lKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCB2YWRkcl90IHBjKQogICAg ICAgICBpZiAoIGRlYnVnZ2VyX3RyYXBfZmF0YWwoVFJBUF9pbnZhbGlkX29wLCByZWdzKSApCiAg ICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgc2hvd19leGVjdXRpb25fc3RhdGUocmVncyk7 Ci0gICAgICAgIHBhbmljKCJBc3NlcnRpb24gJyVzJyBmYWlsZWQgYXQgJXMlczolZCIsCisgICAg ICAgIHBhbmljKCJBc3NlcnRpb24gJyVzJyBmYWlsZWQgYXQgJXMlczolZFxuIiwKICAgICAgICAg ICAgICAgcHJlZGljYXRlLCBwcmVmaXgsIGZpbGVuYW1lLCBsaW5lbm8pOwogICAgIH0KIApAQCAt MTQ0Niw3ICsxNDQ2LDcgQEAgc3RhdGljIHZvaWQgZG9fZGVidWdfdHJhcChzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncywgdW5zaWduZWQgaW50IGNvZGUpCiAgICAgICAgIHNob3dfZXhlY3V0aW9u X3N0YXRlKHJlZ3MpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgotICAgICAgICBwYW5p YygiRE9NJWQ6IFVuaGFuZGxlZCBkZWJ1ZyB0cmFwICUjeCIsIGRvbWlkLCBjb2RlKTsKKyAgICAg ICAgcGFuaWMoIkRPTSVkOiBVbmhhbmRsZWQgZGVidWcgdHJhcCAlI3hcbiIsIGRvbWlkLCBjb2Rl KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Zn aWMvdmdpYy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy5jCmluZGV4IDgzMjYzMmEuLmNjNWFi NjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMuYworKysgYi94ZW4vYXJjaC9h cm0vdmdpYy92Z2ljLmMKQEAgLTk4MSw3ICs5ODEsNyBAQCB2b2lkIHZnaWNfdjNfc2V0dXBfaHco cGFkZHJfdCBkYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcmRpc3Rf cmVnaW9uICpyZWdpb25zLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpbnRp ZF9iaXRzKQogewotICAgIHBhbmljKCJOZXcgVkdJQyBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCB5 ZXQgc3VwcG9ydCBHSUN2My4iKTsKKyAgICBwYW5pYygiTmV3IFZHSUMgaW1wbGVtZW50YXRpb24g ZG9lcyBub3QgeWV0IHN1cHBvcnQgR0lDdjNcbiIpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5jCmlu ZGV4IGE3MDRjN2MuLjkzZTk2N2YgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL3Bvd2Vy LmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvcG93ZXIuYwpAQCAtMjU2LDcgKzI1Niw3IEBAIHN0 YXRpYyBpbnQgZW50ZXJfc3RhdGUodTMyIHN0YXRlKQogICAgIG1pY3JvY29kZV9yZXN1bWVfY3B1 KDApOwogCiAgICAgaWYgKCAhcmVjaGVja19jcHVfZmVhdHVyZXMoMCkgKQotICAgICAgICBwYW5p YygiTWlzc2luZyBwcmV2aW91c2x5IGF2YWlsYWJsZSBmZWF0dXJlKHMpLiIpOworICAgICAgICBw YW5pYygiTWlzc2luZyBwcmV2aW91c2x5IGF2YWlsYWJsZSBmZWF0dXJlKHMpXG4iKTsKIAogICAg IC8qIFJlLWVuYWJsZWQgZGVmYXVsdCBOTUkvI01DIHVzZSBvZiBNU1JfU1BFQ19DVFJMLiAqLwog ICAgIGNpLT5zcGVjX2N0cmxfZmxhZ3MgfD0gKGRlZmF1bHRfc3BlY19jdHJsX2ZsYWdzICYgU0NG X2lzdF93cm1zcik7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYyBiL3hl bi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jCmluZGV4IGFlYzRkOGQuLmI4YzgxOWEgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hbHRlcm5h dGl2ZS5jCkBAIC0zMjUsNyArMzI1LDcgQEAgdm9pZCBfX2luaXQgYWx0ZXJuYXRpdmVfaW5zdHJ1 Y3Rpb25zKHZvaWQpCiAgICAgICAgIG1kZWxheSgxKTsKIAogICAgIGlmICggIUFDQ0VTU19PTkNF KGFsdF9kb25lKSApCi0gICAgICAgIHBhbmljKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgYWx0ZXJu YXRpdmVzIHNlbGYtTk1JIHRvIGhpdCIpOworICAgICAgICBwYW5pYygiVGltZWQgb3V0IHdhaXRp bmcgZm9yIGFsdGVybmF0aXZlcyBzZWxmLU5NSSB0byBoaXRcbiIpOwogCiAgICAgc2V0X25taV9j YWxsYmFjayhzYXZlZF9ubWlfY2FsbGJhY2spOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2FwaWMuYyBiL3hlbi9hcmNoL3g4Ni9hcGljLmMKaW5kZXggZmZhNWE2OS4uODhhZGE5ZCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2FwaWMuYworKysgYi94ZW4vYXJjaC94ODYvYXBpYy5jCkBA IC05MDIsOCArOTAyLDcgQEAgdm9pZCBfX2luaXQgeDJhcGljX2JzcF9zZXR1cCh2b2lkKQogICAg ICAgICAgICAgcHJpbnRrKCJOb3QgZW5hYmxpbmcgeDJBUElDOiBkZXBlbmRzIG9uIGlvbW11X3N1 cHBvcnRzX2VpbS5cbiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAg IHBhbmljKCJ4MkFQSUM6IGFscmVhZHkgZW5hYmxlZCBieSBCSU9TLCBidXQgIgotICAgICAgICAg ICAgICAiaW9tbXVfc3VwcG9ydHNfZWltIGZhaWxlZCIpOworICAgICAgICBwYW5pYygieDJBUElD OiBhbHJlYWR5IGVuYWJsZWQgYnkgQklPUywgYnV0IGlvbW11X3N1cHBvcnRzX2VpbSBmYWlsZWRc biIpOwogICAgIH0KIAogICAgIGlmICggKGlvYXBpY19lbnRyaWVzID0gYWxsb2NfaW9hcGljX2Vu dHJpZXMoKSkgPT0gTlVMTCApCkBAIC05MzUsNyArOTM0LDcgQEAgdm9pZCBfX2luaXQgeDJhcGlj X2JzcF9zZXR1cCh2b2lkKQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmICggeDJhcGljX2VuYWJs ZWQgKQogICAgICAgICAgICAgcGFuaWMoIkludGVycnVwdCByZW1hcHBpbmcgY291bGQgbm90IGJl IGVuYWJsZWQgd2hpbGUgIgotICAgICAgICAgICAgICAgICAgIngyQVBJQyBpcyBhbHJlYWR5IGVu YWJsZWQgYnkgQklPUyIpOworICAgICAgICAgICAgICAgICAgIngyQVBJQyBpcyBhbHJlYWR5IGVu YWJsZWQgYnkgQklPU1xuIik7CiAKICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKICAgICAgICAg ICAgICAgICJGYWlsZWQgdG8gZW5hYmxlIEludGVycnVwdCBSZW1hcHBpbmc6IFdpbGwgbm90IGVu YWJsZSB4MkFQSUMuXG4iKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21j ZS5jIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMKaW5kZXggMzIyNzNkOS4uMWVlYzYz MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMKKysrIGIveGVuL2Fy Y2gveDg2L2NwdS9tY2hlY2svbWNlLmMKQEAgLTE2NjAsNyArMTY2MCw3IEBAIHZvaWQgbWNfcGFu aWMoY2hhciAqcykKICAgICAgICAgICAgIiAgIFRoZSBwcm9jZXNzb3IgaGFzIHJlcG9ydGVkIGEg aGFyZHdhcmUgZXJyb3Igd2hpY2ggY2Fubm90XG4iCiAgICAgICAgICAgICIgICBiZSByZWNvdmVy ZWQgZnJvbS4gIFhlbiB3aWxsIG5vdyByZWJvb3QgdGhlIG1hY2hpbmUuXG4iKTsKICAgICBtY19w YW5pY19kdW1wKCk7Ci0gICAgcGFuaWMoIkhBUkRXQVJFIEVSUk9SIik7CisgICAgcGFuaWMoIkhB UkRXQVJFIEVSUk9SXG4iKTsKIH0KIAogLyoKQEAgLTE3NTYsNyArMTc1Niw3IEBAIHN0YXRpYyBp bnQgbWNlX2RlbGF5ZWRfYWN0aW9uKG1jdGVsZW1fY29va2llX3QgbWN0YykKICAgICAgICAgZHBy aW50ayhYRU5MT0dfRVJSLCAiTUNFIGRlbGF5ZWQgYWN0aW9uIGZhaWxlZFxuIik7CiAgICAgICAg IGlzX21jX3BhbmljID0gdHJ1ZTsKICAgICAgICAgeDg2X21jaW5mb19kdW1wKG1jdGVsZW1fZGF0 YXB0cihtY3RjKSk7Ci0gICAgICAgIHBhbmljKCJNQ0U6IFNvZnR3YXJlIHJlY292ZXJ5IGZhaWxl ZCBmb3IgdGhlIFVDUiIpOworICAgICAgICBwYW5pYygiTUNFOiBTb2Z0d2FyZSByZWNvdmVyeSBm YWlsZWQgZm9yIHRoZSBVQ1JcbiIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgTUNFUl9S RUNPVkVSRUQ6CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZ3Vlc3QveGVuLmMgYi94ZW4vYXJj aC94ODYvZ3Vlc3QveGVuLmMKaW5kZXggMmE1NTU0YS4uY2Q0YWNiZiAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2d1ZXN0L3hlbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9ndWVzdC94ZW4uYwpAQCAt OTksMTIgKzk5LDEyIEBAIHN0YXRpYyB2b2lkIG1hcF9zaGFyZWRfaW5mbyh2b2lkKQogICAgIHVu c2lnbmVkIGxvbmcgcmM7CiAKICAgICBpZiAoIGh5cGVydmlzb3JfYWxsb2NfdW51c2VkX3BhZ2Uo Jm1mbikgKQotICAgICAgICBwYW5pYygidW5hYmxlIHRvIHJlc2VydmUgc2hhcmVkIGluZm8gbWVt b3J5IHBhZ2UiKTsKKyAgICAgICAgcGFuaWMoInVuYWJsZSB0byByZXNlcnZlIHNoYXJlZCBpbmZv IG1lbW9yeSBwYWdlXG4iKTsKIAogICAgIHhhdHAuZ3BmbiA9IG1mbl94KG1mbik7CiAgICAgcmMg PSB4ZW5faHlwZXJjYWxsX21lbW9yeV9vcChYRU5NRU1fYWRkX3RvX3BoeXNtYXAsICZ4YXRwKTsK ICAgICBpZiAoIHJjICkKLSAgICAgICAgcGFuaWMoImZhaWxlZCB0byBtYXAgc2hhcmVkX2luZm8g cGFnZTogJWxkIiwgcmMpOworICAgICAgICBwYW5pYygiZmFpbGVkIHRvIG1hcCBzaGFyZWRfaW5m byBwYWdlOiAlbGRcbiIsIHJjKTsKIAogICAgIHNldF9maXhtYXAoRklYX1hFTl9TSEFSRURfSU5G TywgbWZuX3gobWZuKSA8PCBQQUdFX1NISUZUKTsKIApAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRp YyB2b2lkIF9faW5pdCBpbml0X21lbW1hcCh2b2lkKQogCiAgICAgbWVtID0gcmFuZ2VzZXRfbmV3 KE5VTEwsICJob3N0IG1lbW9yeSBtYXAiLCAwKTsKICAgICBpZiAoICFtZW0gKQotICAgICAgICBw YW5pYygiZmFpbGVkIHRvIGFsbG9jYXRlIFBGTiB1c2FnZSByYW5nZXNldCIpOworICAgICAgICBw YW5pYygiZmFpbGVkIHRvIGFsbG9jYXRlIFBGTiB1c2FnZSByYW5nZXNldFxuIik7CiAKICAgICAv KgogICAgICAqIE1hcmsgdXAgdG8gdGhlIGxhc3QgbWVtb3J5IHBhZ2UgKG9yIDRHaUIpIGFzIFJB TS4gVGhpcyBpcyBkb25lIGJlY2F1c2UKQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgdm9pZCBf X2luaXQgaW5pdF9tZW1tYXAodm9pZCkKICAgICAgKi8KICAgICBpZiAoIHJhbmdlc2V0X2FkZF9y YW5nZShtZW0sIDAsIG1heF90KHVuc2lnbmVkIGxvbmcsIG1heF9wYWdlIC0gMSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9ET1dOKEdCKDQpIC0gMSkpKSAp Ci0gICAgICAgIHBhbmljKCJ1bmFibGUgdG8gYWRkIFJBTSB0byBpbi11c2UgUEZOIHJhbmdlc2V0 Iik7CisgICAgICAgIHBhbmljKCJ1bmFibGUgdG8gYWRkIFJBTSB0byBpbi11c2UgUEZOIHJhbmdl c2V0XG4iKTsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKyApCiAgICAg ewpAQCAtMTg2LDcgKzE4Niw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBpbml0X21lbW1hcCh2b2lk KQogCiAgICAgICAgIGlmICggcmFuZ2VzZXRfYWRkX3JhbmdlKG1lbSwgUEZOX0RPV04oZS0+YWRk ciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9VUChlLT5hZGRyICsgZS0+ c2l6ZSAtIDEpKSApCi0gICAgICAgICAgICBwYW5pYygidW5hYmxlIHRvIGFkZCByYW5nZSBbJSNs eCwgJSNseF0gdG8gaW4tdXNlIFBGTiByYW5nZXNldCIsCisgICAgICAgICAgICBwYW5pYygidW5h YmxlIHRvIGFkZCByYW5nZSBbJSNseCwgJSNseF0gdG8gaW4tdXNlIFBGTiByYW5nZXNldFxuIiwK ICAgICAgICAgICAgICAgICAgIFBGTl9ET1dOKGUtPmFkZHIpLCBQRk5fVVAoZS0+YWRkciArIGUt PnNpemUgLSAxKSk7CiAgICAgfQogfQpAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRpYyB2b2lkIGlu aXRfZXZ0Y2huKHZvaWQpCiAgICAgcmMgPSB4ZW5faHlwZXJjYWxsX3NldF9ldnRjaG5fdXBjYWxs X3ZlY3Rvcih0aGlzX2NwdSh2Y3B1X2lkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGV2dGNobl91cGNhbGxfdmVjdG9yKTsKICAgICBpZiAoIHJjICkK LSAgICAgICAgcGFuaWMoIlVuYWJsZSB0byBzZXQgZXZ0Y2huIHVwY2FsbCB2ZWN0b3I6ICVkIiwg cmMpOworICAgICAgICBwYW5pYygiVW5hYmxlIHRvIHNldCBldnRjaG4gdXBjYWxsIHZlY3Rvcjog JWRcbiIsIHJjKTsKIAogICAgIC8qIFRyaWNrIHRvb2xzdGFjayB0byB0aGluayB3ZSBhcmUgZW5s aWdodGVuZWQgKi8KICAgICB7CkBAIC0zMDksNyArMzA5LDcgQEAgc3RhdGljIHZvaWQgX19pbml0 IG1hcmtfcGZuX2FzX3JhbShzdHJ1Y3QgZTgyMG1hcCAqZTgyMCwgdWludDY0X3QgcGZuKQogICAg ICAgICBpZiAoICFlODIwX2NoYW5nZV9yYW5nZV90eXBlKGU4MjAsIHBmbiA8PCBQQUdFX1NISUZU LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZm4gPDwgUEFHRV9TSElG VCkgKyBQQUdFX1NJWkUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTgy MF9SRVNFUlZFRCwgRTgyMF9SQU0pICkKLSAgICAgICAgICAgIHBhbmljKCJVbmFibGUgdG8gYWRk L2NoYW5nZSBtZW1vcnkgdHlwZSBvZiBwZm4gJSNseCB0byBSQU0iLCBwZm4pOworICAgICAgICAg ICAgcGFuaWMoIlVuYWJsZSB0byBhZGQvY2hhbmdlIG1lbW9yeSB0eXBlIG9mIHBmbiAlI2x4IHRv IFJBTVxuIiwgcGZuKTsKIH0KIAogdm9pZCBfX2luaXQgaHlwZXJ2aXNvcl9maXh1cF9lODIwKHN0 cnVjdCBlODIwbWFwICplODIwKQpAQCAtMzIzLDcgKzMyMyw3IEBAIHZvaWQgX19pbml0IGh5cGVy dmlzb3JfZml4dXBfZTgyMChzdHJ1Y3QgZTgyMG1hcCAqZTgyMCkKICNkZWZpbmUgTUFSS19QQVJB TV9SQU0ocCkgKHsgICAgICAgICAgICAgICAgICAgIFwKICAgICByYyA9IHhlbl9oeXBlcmNhbGxf aHZtX2dldF9wYXJhbShwLCAmcGZuKTsgIFwKICAgICBpZiAoIHJjICkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcGFuaWMoIlVuYWJsZSB0byBnZXQgIiAjcCk7 ICAgICAgICAgICAgIFwKKyAgICAgICAgcGFuaWMoIlVuYWJsZSB0byBnZXQgIiAjcCAiXG4iKTsg ICAgICAgIFwKICAgICBtYXJrX3Bmbl9hc19yYW0oZTgyMCwgcGZuKTsgICAgICAgICAgICAgICAg IFwKICAgICBBU1NFUlQoaSA8IEFSUkFZX1NJWkUocmVzZXJ2ZWRfcGFnZXMpKTsgICAgIFwKICAg ICByZXNlcnZlZF9wYWdlc1tpKytdID0gcGZuIDw8IFBBR0VfU0hJRlQ7ICAgIFwKQEAgLTM2Nyw3 ICszNjcsNyBAQCB2b2lkIGh5cGVydmlzb3JfcmVzdW1lKHZvaWQpCiAgICAgICovCiAgICAgYml0 bWFwX3plcm8odmNwdV9pbmZvX21hcHBlZCwgTlJfQ1BVUyk7CiAgICAgaWYgKCBtYXBfdmNwdWlu Zm8oKSAmJiBucl9jcHVfaWRzID4gWEVOX0xFR0FDWV9NQVhfVkNQVVMgKQotICAgICAgICBwYW5p YygidW5hYmxlIHRvIHJlbWFwIHZDUFUgaW5mbyBhbmQgdkNQVXMgPiBsZWdhY3kgbGltaXQiKTsK KyAgICAgICAgcGFuaWMoInVuYWJsZSB0byByZW1hcCB2Q1BVIGluZm8gYW5kIHZDUFVzID4gbGVn YWN5IGxpbWl0XG4iKTsKIAogICAgIC8qIFNldHVwIGV2ZW50IGNoYW5uZWwgdXBjYWxsIHZlY3Rv ci4gKi8KICAgICBpbml0X2V2dGNobigpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9k b20wX2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RvbTBfYnVpbGQuYwppbmRleCA1MDY1NzI5 Li40ZmU4MDk3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2RvbTBfYnVpbGQuYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL2RvbTBfYnVpbGQuYwpAQCAtMzE5LDcgKzMxOSw3IEBAIHN0YXRp YyBfX2luaXQgdm9pZCBwdmhfc2V0dXBfZTgyMChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBs b25nIG5yX3BhZ2VzKQogICAgICAqLwogICAgIGQtPmFyY2guZTgyMCA9IHh6YWxsb2NfYXJyYXko c3RydWN0IGU4MjBlbnRyeSwgZTgyMC5ucl9tYXAgKyAxKTsKICAgICBpZiAoICFkLT5hcmNoLmU4 MjAgKQotICAgICAgICBwYW5pYygiVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgRG9tMCBl ODIwIG1hcCIpOworICAgICAgICBwYW5pYygiVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3Ig RG9tMCBlODIwIG1hcFxuIik7CiAgICAgZW50cnlfZ3Vlc3QgPSBkLT5hcmNoLmU4MjA7CiAKICAg ICAvKiBDbGFtcCBlODIwIG1lbW9yeSBtYXAgdG8gbWF0Y2ggdGhlIG1lbW9yeSBhc3NpZ25lZCB0 byBEb20wICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9pbnRyLmMgYi94ZW4v YXJjaC94ODYvaHZtL3N2bS9pbnRyLmMKaW5kZXggODUxMWZmMC4uNWFkY2Q1NCAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vaW50ci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3Zt L2ludHIuYwpAQCAtMTczLDcgKzE3Myw3IEBAIHZvaWQgc3ZtX2ludHJfYXNzaXN0KHZvaWQpCiAg ICAgICAgICAgICAgICAgLyogR3Vlc3QgYWxyZWFkeSBlbmFibGVkIGFuIGludGVycnVwdCB3aW5k b3cuICovCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGVmYXVsdDoKLSAg ICAgICAgICAgICAgICBwYW5pYygiJXM6IG5lc3RlZHN2bV92Y3B1X2ludGVycnVwdCBjYW4ndCBo YW5kbGUgdmFsdWUgJSN4IiwKKyAgICAgICAgICAgICAgICBwYW5pYygiJXM6IG5lc3RlZHN2bV92 Y3B1X2ludGVycnVwdCBjYW4ndCBoYW5kbGUgdmFsdWUgJSN4XG4iLAogICAgICAgICAgICAgICAg ICAgICBfX2Z1bmNfXywgcmMpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaW9fYXBpYy5jIGIveGVuL2FyY2gveDg2L2lvX2FwaWMuYwppbmRleCBm OTU5MDkwLi5kYWE1ZTllIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW9fYXBpYy5jCisrKyBi L3hlbi9hcmNoL3g4Ni9pb19hcGljLmMKQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgdm9pZCBh ZGRfcGluX3RvX2lycSh1bnNpZ25lZCBpbnQgaXJxLCBpbnQgYXBpYywgaW50IHBpbikKIAogICAg IGlmIChlbnRyeS0+cGluICE9IC0xKSB7CiAgICAgICAgIGlmIChpcnFfMl9waW5fZnJlZV9lbnRy eSA+PSBQSU5fTUFQX1NJWkUpCi0gICAgICAgICAgICBwYW5pYygiaW9fYXBpYy5jOiB3aG9vcHMi KTsKKyAgICAgICAgICAgIHBhbmljKCJpb19hcGljLmM6IHdob29wc1xuIik7CiAgICAgICAgIGVu dHJ5LT5uZXh0ID0gaXJxXzJfcGluX2ZyZWVfZW50cnk7CiAgICAgICAgIGVudHJ5ID0gaXJxXzJf cGluICsgZW50cnktPm5leHQ7CiAgICAgICAgIGlycV8yX3Bpbl9mcmVlX2VudHJ5ID0gZW50cnkt Pm5leHQ7CkBAIC0xNDI1LDcgKzE0MjUsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfaW9h cGljX2lkc19mcm9tX21wYyh2b2lkKQogICAgICAgICAgICAgICAgIGlmICghcGh5c2lkX2lzc2V0 KGksIHBoeXNfaWRfcHJlc2VudF9tYXApKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg ICAgICAgICAgIGlmIChpID49IGdldF9waHlzaWNhbF9icm9hZGNhc3QoKSkKLSAgICAgICAgICAg ICAgICBwYW5pYygiTWF4IEFQSUMgSUQgZXhjZWVkZWQiKTsKKyAgICAgICAgICAgICAgICBwYW5p YygiTWF4IEFQSUMgSUQgZXhjZWVkZWRcbiIpOwogICAgICAgICAgICAgcHJpbnRrKEtFUk5fRVJS ICIuLi4gZml4aW5nIHVwIHRvICVkLiAodGVsbCB5b3VyIGh3IHZlbmRvcilcbiIsCiAgICAgICAg ICAgICAgICAgICAgaSk7CiAgICAgICAgICAgICBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQg PSBpOwpAQCAtMTk5Myw3ICsxOTkzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGNoZWNrX3RpbWVy KHZvaWQpCiAgICAgfQogICAgIHByaW50aygiIGZhaWxlZCA6KC5cbiIpOwogICAgIHBhbmljKCJJ Ty1BUElDICsgdGltZXIgZG9lc24ndCB3b3JrISAgQm9vdCB3aXRoIGFwaWNfdmVyYm9zaXR5PWRl YnVnICIKLSAgICAgICAgICAiYW5kIHNlbmQgYSByZXBvcnQuICBUaGVuIHRyeSBib290aW5nIHdp dGggdGhlICdub2FwaWMnIG9wdGlvbiIpOworICAgICAgICAgICJhbmQgc2VuZCBhIHJlcG9ydC4g IFRoZW4gdHJ5IGJvb3Rpbmcgd2l0aCB0aGUgJ25vYXBpYycgb3B0aW9uXG4iKTsKIH0KIAogLyoK QEAgLTIxMzcsNyArMjEzNyw3IEBAIGludCBfX2luaXQgaW9fYXBpY19nZXRfdW5pcXVlX2lkIChp bnQgaW9hcGljLCBpbnQgYXBpY19pZCkKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpID09IGdl dF9waHlzaWNhbF9icm9hZGNhc3QoKSkKLSAgICAgICAgICAgIHBhbmljKCJNYXggYXBpY19pZCBl eGNlZWRlZCIpOworICAgICAgICAgICAgcGFuaWMoIk1heCBhcGljX2lkIGV4Y2VlZGVkXG4iKTsK IAogICAgICAgICBwcmludGsoS0VSTl9XQVJOSU5HICJJT0FQSUNbJWRdOiBhcGljX2lkICVkIGFs cmVhZHkgdXNlZCwgIgogICAgICAgICAgICAgICAgInRyeWluZyAlZFxuIiwgaW9hcGljLCBhcGlj X2lkLCBpKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9tbS1sb2Nrcy5oIGIveGVuL2Fy Y2gveDg2L21tL21tLWxvY2tzLmgKaW5kZXggZTVmY2ViMi4uOTUyOTViNiAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L21tL21tLWxvY2tzLmgKKysrIGIveGVuL2FyY2gveDg2L21tL21tLWxvY2tz LmgKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9tbV9sb2NrKG1tX2xvY2tf dCAqbCwgY29uc3QgY2hhciAqZnVuYywgaW50IGxldmVsLCBpbnQgcmVjKQogICAgICAgICBsLT51 bmxvY2tfbGV2ZWwgPSBfX2dldF9sb2NrX2xldmVsKCk7CiAgICAgfQogICAgIGVsc2UgaWYgKCAo dW5saWtlbHkoIXJlYykpICkKLSAgICAgICAgcGFuaWMoIm1tIGxvY2sgYWxyZWFkeSBoZWxkIGJ5 ICVzIiwgbC0+bG9ja2VyX2Z1bmN0aW9uKTsKKyAgICAgICAgcGFuaWMoIm1tIGxvY2sgYWxyZWFk eSBoZWxkIGJ5ICVzXG4iLCBsLT5sb2NrZXJfZnVuY3Rpb24pOwogICAgIF9fc2V0X2xvY2tfbGV2 ZWwobGV2ZWwpOwogfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbXBwYXJzZS5jIGIveGVu L2FyY2gveDg2L21wcGFyc2UuYwppbmRleCBmM2Y2ZDQ4Li5mMmI2ZDZiIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbXBwYXJzZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tcHBhcnNlLmMKQEAgLTIz Nyw3ICsyMzcsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgTVBfaW9hcGljX2luZm8gKHN0cnVjdCBt cGNfY29uZmlnX2lvYXBpYyAqbSkKIAlpZiAobnJfaW9hcGljcyA+PSBNQVhfSU9fQVBJQ1MpIHsK IAkJcHJpbnRrKEtFUk5fQ1JJVCAiTWF4ICMgb2YgSS9PIEFQSUNzICglZCkgZXhjZWVkZWQgKGZv dW5kICVkKS5cbiIsCiAJCQlNQVhfSU9fQVBJQ1MsIG5yX2lvYXBpY3MpOwotCQlwYW5pYygiUmVj b21waWxlIGtlcm5lbCB3aXRoIGJpZ2dlciBNQVhfSU9fQVBJQ1MiKTsKKwkJcGFuaWMoIlJlY29t cGlsZSBrZXJuZWwgd2l0aCBiaWdnZXIgTUFYX0lPX0FQSUNTXG4iKTsKIAl9CiAJaWYgKCFtLT5t cGNfYXBpY2FkZHIpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJXQVJOSU5HOiBib2d1cyB6ZXJvIEkv TyBBUElDIGFkZHJlc3MiCkBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IE1Q X2ludHNyY19pbmZvIChzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKm0pCiAJCQkobS0+bXBjX2ly cWZsYWcgPj4gMikgJiAzLCBtLT5tcGNfc3JjYnVzLAogCQkJbS0+bXBjX3NyY2J1c2lycSwgbS0+ bXBjX2RzdGFwaWMsIG0tPm1wY19kc3RpcnEpOwogCWlmICgrK21wX2lycV9lbnRyaWVzID09IE1B WF9JUlFfU09VUkNFUykKLQkJcGFuaWMoIk1heCAjIG9mIGlycSBzb3VyY2VzIGV4Y2VlZGVkIik7 CisJCXBhbmljKCJNYXggIyBvZiBpcnEgc291cmNlcyBleGNlZWRlZFxuIik7CiB9CiAKIHN0YXRp YyB2b2lkIF9faW5pdCBNUF9saW50c3JjX2luZm8gKHN0cnVjdCBtcGNfY29uZmlnX2xpbnRzcmMg Km0pCkBAIC04NjIsNyArODYyLDcgQEAgdm9pZCBfX2luaXQgbXBfcmVnaXN0ZXJfaW9hcGljICgK IAlpZiAobnJfaW9hcGljcyA+PSBNQVhfSU9fQVBJQ1MpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJF UlJPUjogTWF4ICMgb2YgSS9PIEFQSUNzICglZCkgZXhjZWVkZWQgIgogCQkJIihmb3VuZCAlZClc biIsIE1BWF9JT19BUElDUywgbnJfaW9hcGljcyk7Ci0JCXBhbmljKCJSZWNvbXBpbGUga2VybmVs IHdpdGggYmlnZ2VyIE1BWF9JT19BUElDUyIpOworCQlwYW5pYygiUmVjb21waWxlIGtlcm5lbCB3 aXRoIGJpZ2dlciBNQVhfSU9fQVBJQ1NcbiIpOwogCX0KIAlpZiAoIWFkZHJlc3MpIHsKIAkJcHJp bnRrKEtFUk5fRVJSICJXQVJOSU5HOiBCb2d1cyAoemVybykgSS9PIEFQSUMgYWRkcmVzcyIKQEAg LTk2MSw3ICs5NjEsNyBAQCB2b2lkIF9faW5pdCBtcF9vdmVycmlkZV9sZWdhY3lfaXJxICgKIAog CW1wX2lycXNbbXBfaXJxX2VudHJpZXNdID0gaW50c3JjOwogCWlmICgrK21wX2lycV9lbnRyaWVz ID09IE1BWF9JUlFfU09VUkNFUykKLQkJcGFuaWMoIk1heCAjIG9mIGlycSBzb3VyY2VzIGV4Y2Vl ZGVkIik7CisJCXBhbmljKCJNYXggIyBvZiBpcnEgc291cmNlcyBleGNlZWRlZFxuIik7CiAKIAly ZXR1cm47CiB9CkBAIC0xMDI3LDcgKzEwMjcsNyBAQCB2b2lkIF9faW5pdCBtcF9jb25maWdfYWNw aV9sZWdhY3lfaXJxcyAodm9pZCkKIAogCQltcF9pcnFzW21wX2lycV9lbnRyaWVzXSA9IGludHNy YzsKIAkJaWYgKCsrbXBfaXJxX2VudHJpZXMgPT0gTUFYX0lSUV9TT1VSQ0VTKQotCQkJcGFuaWMo Ik1heCAjIG9mIGlycSBzb3VyY2VzIGV4Y2VlZGVkIik7CisJCQlwYW5pYygiTWF4ICMgb2YgaXJx IHNvdXJjZXMgZXhjZWVkZWRcbiIpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L251bWEuYyBiL3hlbi9hcmNoL3g4Ni9udW1hLmMKaW5kZXggYTg3OTg3ZC4uMDQ5OGNiZCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L251bWEuYworKysgYi94ZW4vYXJjaC94ODYvbnVtYS5jCkBA IC0zNTcsNyArMzU3LDcgQEAgdW5zaWduZWQgaW50IF9faW5pdCBhcmNoX2dldF9kbWFfYml0c2l6 ZSh2b2lkKQogICAgICAgICAgICAgICEobm9kZV9zdGFydF9wZm4obm9kZSkgPj4gKDMyIC0gUEFH RV9TSElGVCkpICkKICAgICAgICAgICAgIGJyZWFrOwogICAgIGlmICggbm9kZSA+PSBNQVhfTlVN Tk9ERVMgKQotICAgICAgICBwYW5pYygiTm8gbm9kZSB3aXRoIG1lbW9yeSBiZWxvdyA0R2IiKTsK KyAgICAgICAgcGFuaWMoIk5vIG5vZGUgd2l0aCBtZW1vcnkgYmVsb3cgNEdiXG4iKTsKIAogICAg IC8qCiAgICAgICogVHJ5IHRvIG5vdCByZXNlcnZlIHRoZSB3aG9sZSBub2RlJ3MgbWVtb3J5IGZv ciBETUEsIGJ1dCBkaXZpZGluZwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVp bGQuYyBiL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMKaW5kZXggOTZmZjBlZS4uOTc2YmE4 ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJj aC94ODYvcHYvZG9tMF9idWlsZC5jCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCBzdGF0aWMgX19pbml0 IHZvaWQgc2V0dXBfcHZfcGh5c21hcChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIHBn dGJsX3BmbiwKICAgICBsMV9wZ2VudHJ5X3QgKnBsMWUgPSBOVUxMOwogCiAgICAgaWYgKCB2X3N0 YXJ0IDw9IHZwaHlzbWFwX2VuZCAmJiB2cGh5c21hcF9zdGFydCA8PSB2X2VuZCApCi0gICAgICAg IHBhbmljKCJET00wIFAtPk0gdGFibGUgb3ZlcmxhcHMgaW5pdGlhbCBtYXBwaW5nIik7CisgICAg ICAgIHBhbmljKCJET00wIFAtPk0gdGFibGUgb3ZlcmxhcHMgaW5pdGlhbCBtYXBwaW5nXG4iKTsK IAogICAgIHdoaWxlICggdnBoeXNtYXBfc3RhcnQgPCB2cGh5c21hcF9lbmQgKQogICAgIHsKICAg ICAgICAgaWYgKCBkLT50b3RfcGFnZXMgKyAoKHJvdW5kX3BndXAodnBoeXNtYXBfZW5kKSAtIHZw aHlzbWFwX3N0YXJ0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PiBQQUdFX1NISUZU KSArIDMgPiBucl9wYWdlcyApCi0gICAgICAgICAgICBwYW5pYygiRG9tMCBhbGxvY2F0aW9uIHRv byBzbWFsbCBmb3IgaW5pdGlhbCBQLT5NIHRhYmxlIik7CisgICAgICAgICAgICBwYW5pYygiRG9t MCBhbGxvY2F0aW9uIHRvbyBzbWFsbCBmb3IgaW5pdGlhbCBQLT5NIHRhYmxlXG4iKTsKIAogICAg ICAgICBpZiAoIHBsMWUgKQogICAgICAgICB7CkBAIC0yMDksNyArMjA5LDcgQEAgc3RhdGljIF9f aW5pdCB2b2lkIHNldHVwX3B2X3BoeXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBwZ3RibF9wZm4sCiAgICAgICAgIHZwaHlzbWFwX3N0YXJ0ICY9IFBBR0VfTUFTSzsKICAgICB9 CiAgICAgaWYgKCAhcGFnZSApCi0gICAgICAgIHBhbmljKCJOb3QgZW5vdWdoIFJBTSBmb3IgRE9N MCBQLT5NIHRhYmxlIik7CisgICAgICAgIHBhbmljKCJOb3QgZW5vdWdoIFJBTSBmb3IgRE9NMCBQ LT5NIHRhYmxlXG4iKTsKIAogICAgIGlmICggcGwxZSApCiAgICAgICAgIHVubWFwX2RvbWFpbl9w YWdlKHBsMWUpOwpAQCAtNDA2LDcgKzQwNiw3IEBAIGludCBfX2luaXQgZG9tMF9jb25zdHJ1Y3Rf cHYoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgdmFsdWUgPSAocGFybXMudmlydF9odl9zdGFy dF9sb3cgKyBtYXNrKSAmIH5tYXNrOwogICAgICAgICBCVUdfT04oIWlzX3B2XzMyYml0X2RvbWFp bihkKSk7CiAgICAgICAgIGlmICggdmFsdWUgPiBfX0hZUEVSVklTT1JfQ09NUEFUX1ZJUlRfU1RB UlQgKQotICAgICAgICAgICAgcGFuaWMoIkRvbWFpbiAwIGV4cGVjdHMgdG9vIGhpZ2ggYSBoeXBl cnZpc29yIHN0YXJ0IGFkZHJlc3MiKTsKKyAgICAgICAgICAgIHBhbmljKCJEb21haW4gMCBleHBl Y3RzIHRvbyBoaWdoIGEgaHlwZXJ2aXNvciBzdGFydCBhZGRyZXNzXG4iKTsKICAgICAgICAgSFlQ RVJWSVNPUl9DT01QQVRfVklSVF9TVEFSVChkKSA9CiAgICAgICAgICAgICBtYXhfdCh1bnNpZ25l ZCBpbnQsIG0ycF9jb21wYXRfdnN0YXJ0LCB2YWx1ZSk7CiAgICAgfQpAQCAtNDg4LDcgKzQ4OCw3 IEBAIGludCBfX2luaXQgZG9tMF9jb25zdHJ1Y3RfcHYoc3RydWN0IGRvbWFpbiAqZCwKICAgICAg ICAgY291bnQgLT0gUEFHRV9BTElHTihpbml0cmRfbGVuKTsKICAgICBvcmRlciA9IGdldF9vcmRl cl9mcm9tX2J5dGVzKGNvdW50KTsKICAgICBpZiAoICgxVUwgPDwgb3JkZXIpICsgUEZOX1VQKGlu aXRyZF9sZW4pID4gbnJfcGFnZXMgKQotICAgICAgICBwYW5pYygiRG9tYWluIDAgYWxsb2NhdGlv biBpcyB0b28gc21hbGwgZm9yIGtlcm5lbCBpbWFnZSIpOworICAgICAgICBwYW5pYygiRG9tYWlu IDAgYWxsb2NhdGlvbiBpcyB0b28gc21hbGwgZm9yIGtlcm5lbCBpbWFnZVxuIik7CiAKICAgICBp ZiAoIHBhcm1zLnAybV9iYXNlICE9IFVOU0VUX0FERFIgKQogICAgIHsKQEAgLTQ5Nyw3ICs0OTcs NyBAQCBpbnQgX19pbml0IGRvbTBfY29uc3RydWN0X3B2KHN0cnVjdCBkb21haW4gKmQsCiAgICAg fQogICAgIHBhZ2UgPSBhbGxvY19kb21oZWFwX3BhZ2VzKGQsIG9yZGVyLCAwKTsKICAgICBpZiAo IHBhZ2UgPT0gTlVMTCApCi0gICAgICAgIHBhbmljKCJOb3QgZW5vdWdoIFJBTSBmb3IgZG9tYWlu IDAgYWxsb2NhdGlvbiIpOworICAgICAgICBwYW5pYygiTm90IGVub3VnaCBSQU0gZm9yIGRvbWFp biAwIGFsbG9jYXRpb25cbiIpOwogICAgIGFsbG9jX3NwZm4gPSBtZm5feChwYWdlX3RvX21mbihw YWdlKSk7CiAgICAgYWxsb2NfZXBmbiA9IGFsbG9jX3NwZm4gKyBkLT50b3RfcGFnZXM7CiAKQEAg LTUxNCw3ICs1MTQsNyBAQCBpbnQgX19pbml0IGRvbTBfY29uc3RydWN0X3B2KHN0cnVjdCBkb21h aW4gKmQsCiAgICAgICAgICAgICBvcmRlciA9IGdldF9vcmRlcl9mcm9tX3BhZ2VzKGNvdW50KTsK ICAgICAgICAgICAgIHBhZ2UgPSBhbGxvY19kb21oZWFwX3BhZ2VzKGQsIG9yZGVyLCAwKTsKICAg ICAgICAgICAgIGlmICggIXBhZ2UgKQotICAgICAgICAgICAgICAgIHBhbmljKCJOb3QgZW5vdWdo IFJBTSBmb3IgZG9tYWluIDAgaW5pdHJkIik7CisgICAgICAgICAgICAgICAgcGFuaWMoIk5vdCBl bm91Z2ggUkFNIGZvciBkb21haW4gMCBpbml0cmRcbiIpOwogICAgICAgICAgICAgZm9yICggY291 bnQgPSAtY291bnQ7IG9yZGVyLS07ICkKICAgICAgICAgICAgICAgICBpZiAoIGNvdW50ICYgKDFV TCA8PCBvcmRlcikgKQogICAgICAgICAgICAgICAgIHsKQEAgLTYwMyw3ICs2MDMsNyBAQCBpbnQg X19pbml0IGRvbTBfY29uc3RydWN0X3B2KHN0cnVjdCBkb21haW4gKmQsCiAgICAgewogICAgICAg ICBwYWdlID0gYWxsb2NfZG9taGVhcF9wYWdlKGQsIE1FTUZfbm9fb3duZXIpOwogICAgICAgICBp ZiAoICFwYWdlICkKLSAgICAgICAgICAgIHBhbmljKCJOb3QgZW5vdWdoIFJBTSBmb3IgZG9tYWlu IDAgUE1MNCIpOworICAgICAgICAgICAgcGFuaWMoIk5vdCBlbm91Z2ggUkFNIGZvciBkb21haW4g MCBQTUw0XG4iKTsKICAgICAgICAgcGFnZS0+dS5pbnVzZS50eXBlX2luZm8gPSBQR1RfbDRfcGFn ZV90YWJsZXxQR1RfdmFsaWRhdGVkfDE7CiAgICAgICAgIGw0c3RhcnQgPSBsNHRhYiA9IHBhZ2Vf dG9fdmlydChwYWdlKTsKICAgICAgICAgbWFkZHJfdG9fcGFnZShtcHRfYWxsb2MpLT51LmludXNl LnR5cGVfaW5mbyA9IFBHVF9sM19wYWdlX3RhYmxlOwpAQCAtODI1LDcgKzgyNSw3IEBAIGludCBf X2luaXQgZG9tMF9jb25zdHJ1Y3RfcHYoc3RydWN0IGRvbWFpbiAqZCwKICAgICB3aGlsZSAoIHBm biA8IG5yX3BhZ2VzICkKICAgICB7CiAgICAgICAgIGlmICggKHBhZ2UgPSBhbGxvY19jaHVuayhk LCBucl9wYWdlcyAtIGQtPnRvdF9wYWdlcykpID09IE5VTEwgKQotICAgICAgICAgICAgcGFuaWMo Ik5vdCBlbm91Z2ggUkFNIGZvciBET00wIHJlc2VydmF0aW9uIik7CisgICAgICAgICAgICBwYW5p YygiTm90IGVub3VnaCBSQU0gZm9yIERPTTAgcmVzZXJ2YXRpb25cbiIpOwogICAgICAgICB3aGls ZSAoIHBmbiA8IGQtPnRvdF9wYWdlcyApCiAgICAgICAgIHsKICAgICAgICAgICAgIG1mbiA9IG1m bl94KHBhZ2VfdG9fbWZuKHBhZ2UpKTsKQEAgLTkwNCw3ICs5MDQsNyBAQCBpbnQgX19pbml0IGRv bTBfY29uc3RydWN0X3B2KHN0cnVjdCBkb21haW4gKmQsCiAgICAgcHZfZGVzdHJveV9nZHQodik7 CiAKICAgICBpZiAoIHRlc3RfYml0KFhFTkZFQVRfc3VwZXJ2aXNvcl9tb2RlX2tlcm5lbCwgcGFy bXMuZl9yZXF1aXJlZCkgKQotICAgICAgICBwYW5pYygiRG9tMCByZXF1aXJlcyBzdXBlcnZpc29y LW1vZGUgZXhlY3V0aW9uIik7CisgICAgICAgIHBhbmljKCJEb20wIHJlcXVpcmVzIHN1cGVydmlz b3ItbW9kZSBleGVjdXRpb25cbiIpOwogCiAgICAgcmMgPSBkb20wX3NldHVwX3Blcm1pc3Npb25z KGQpOwogICAgIEJVR19PTihyYyAhPSAwKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9z aGltLmMgYi94ZW4vYXJjaC94ODYvcHYvc2hpbS5jCmluZGV4IDEyOTkxMTIuLmNkYzcyZjcgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9zaGltLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L3No aW0uYwpAQCAtMTAyLDcgKzEwMiw3IEBAIHVpbnQ2NF90IHB2X3NoaW1fbWVtKHVpbnQ2NF90IGF2 YWlsKQogICAgIH0KIAogICAgIGlmICggdG90YWxfcGFnZXMgLSBhdmFpbCA+IHNoaW1fbnJwYWdl cyApCi0gICAgICAgIHBhbmljKCJwYWdlcyB1c2VkIGJ5IHNoaW0gPiBzaGltX25ycGFnZXMgKCUj bHggPiAlI2x4KSIsCisgICAgICAgIHBhbmljKCJwYWdlcyB1c2VkIGJ5IHNoaW0gPiBzaGltX25y cGFnZXMgKCUjbHggPiAlI2x4KVxuIiwKICAgICAgICAgICAgICAgdG90YWxfcGFnZXMgLSBhdmFp bCwgc2hpbV9ucnBhZ2VzKTsKIAogICAgIHNoaW1fbnJwYWdlcyAtPSB0b3RhbF9wYWdlcyAtIGF2 YWlsOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4vYXJjaC94ODYvc2V0 dXAuYwppbmRleCBkZDExODE1Li41Y2RlMDExIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc2V0 dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpAQCAtODE3LDcgKzgxNyw3IEBAIHZvaWQg X19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAKICAgICAv KiBDaGVjayB0aGF0IHdlIGhhdmUgYXQgbGVhc3Qgb25lIE11bHRpYm9vdCBtb2R1bGUuICovCiAg ICAgaWYgKCAhKG1iaS0+ZmxhZ3MgJiBNQklfTU9EVUxFUykgfHwgKG1iaS0+bW9kc19jb3VudCA9 PSAwKSApCi0gICAgICAgIHBhbmljKCJkb20wIGtlcm5lbCBub3Qgc3BlY2lmaWVkLiBDaGVjayBi b290bG9hZGVyIGNvbmZpZ3VyYXRpb24uIik7CisgICAgICAgIHBhbmljKCJkb20wIGtlcm5lbCBu b3Qgc3BlY2lmaWVkLiBDaGVjayBib290bG9hZGVyIGNvbmZpZ3VyYXRpb25cbiIpOwogCiAgICAg aWYgKCBwdmhfYm9vdCApCiAgICAgewpAQCAtOTA4LDcgKzkwOCw3IEBAIHZvaWQgX19pbml0IG5v cmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgIGU4MjBfcmF3 Lm5yX21hcCA9IDI7CiAgICAgfQogICAgIGVsc2UKLSAgICAgICAgcGFuaWMoIkJvb3Rsb2FkZXIg cHJvdmlkZWQgbm8gbWVtb3J5IGluZm9ybWF0aW9uLiIpOworICAgICAgICBwYW5pYygiQm9vdGxv YWRlciBwcm92aWRlZCBubyBtZW1vcnkgaW5mb3JtYXRpb25cbiIpOwogCiAgICAgLyogU2FuaXRp c2UgdGhlIHJhdyBFODIwIG1hcCB0byBwcm9kdWNlIGEgZmluYWwgY2xlYW4gdmVyc2lvbi4gKi8K ICAgICBtYXhfcGFnZSA9IHJhd19tYXhfcGFnZSA9IGluaXRfZTgyMChtZW1tYXBfdHlwZSwgJmU4 MjBfcmF3KTsKQEAgLTk1NSw3ICs5NTUsNyBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0 X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgIGZvciAoIGkgPSAwOyAhZWZpX2VuYWJsZWQo RUZJX0xPQURFUikgJiYgaSA8IG1iaS0+bW9kc19jb3VudDsgaSsrICkKICAgICB7CiAgICAgICAg IGlmICggbW9kW2ldLm1vZF9zdGFydCAmIChQQUdFX1NJWkUgLSAxKSApCi0gICAgICAgICAgICBw YW5pYygiQm9vdGxvYWRlciBkaWRuJ3QgaG9ub3IgbW9kdWxlIGFsaWdubWVudCByZXF1ZXN0LiIp OworICAgICAgICAgICAgcGFuaWMoIkJvb3Rsb2FkZXIgZGlkbid0IGhvbm9yIG1vZHVsZSBhbGln bm1lbnQgcmVxdWVzdFxuIik7CiAgICAgICAgIG1vZFtpXS5tb2RfZW5kIC09IG1vZFtpXS5tb2Rf c3RhcnQ7CiAgICAgICAgIG1vZFtpXS5tb2Rfc3RhcnQgPj49IFBBR0VfU0hJRlQ7CiAgICAgICAg IG1vZFtpXS5yZXNlcnZlZCA9IDA7CkBAIC0xMjEyLDcgKzEyMTIsNyBAQCB2b2lkIF9faW5pdCBu b3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgIH0KIAogICAgIGlm ICggbW9kdWxlc19oZWFkcm9vbSAmJiAhbW9kLT5yZXNlcnZlZCApCi0gICAgICAgIHBhbmljKCJO b3QgZW5vdWdoIG1lbW9yeSB0byByZWxvY2F0ZSB0aGUgZG9tMCBrZXJuZWwgaW1hZ2UuIik7Cisg ICAgICAgIHBhbmljKCJOb3QgZW5vdWdoIG1lbW9yeSB0byByZWxvY2F0ZSB0aGUgZG9tMCBrZXJu ZWwgaW1hZ2VcbiIpOwogICAgIGZvciAoIGkgPSAwOyBpIDwgbWJpLT5tb2RzX2NvdW50OyArK2kg KQogICAgIHsKICAgICAgICAgdWludDY0X3QgcyA9ICh1aW50NjRfdCltb2RbaV0ubW9kX3N0YXJ0 IDw8IFBBR0VfU0hJRlQ7CkBAIC0xMjIxLDcgKzEyMjEsNyBAQCB2b2lkIF9faW5pdCBub3JldHVy biBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgIH0KIAogICAgIGlmICggIXhl bl9waHlzX3N0YXJ0ICkKLSAgICAgICAgcGFuaWMoIk5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlbG9j YXRlIFhlbi4iKTsKKyAgICAgICAgcGFuaWMoIk5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlbG9jYXRl IFhlblxuIik7CiAKICAgICAvKiBUaGlzIG5lZWRzIHRvIHJlbWFpbiBpbiBzeW5jIHdpdGggeGVu X2luX3JhbmdlKCkuICovCiAgICAgcmVzZXJ2ZV9lODIwX3JhbSgmYm9vdF9lODIwLCBfX3BhKF9z dGV4dCksIF9fcGEoX18yTV9yd2RhdGFfZW5kKSk7CkBAIC0xNjgwLDcgKzE2ODAsNyBAQCB2b2lk IF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAg ICB3YXRjaGRvZ19zZXR1cCgpOwogCiAgICAgaWYgKCAhdGJvb3RfcHJvdGVjdF9tZW1fcmVnaW9u cygpICkKLSAgICAgICAgcGFuaWMoIkNvdWxkIG5vdCBwcm90ZWN0IFRYVCBtZW1vcnkgcmVnaW9u cyIpOworICAgICAgICBwYW5pYygiQ291bGQgbm90IHByb3RlY3QgVFhUIG1lbW9yeSByZWdpb25z XG4iKTsKIAogICAgIGluaXRfZ3Vlc3RfY3B1aWQoKTsKICAgICBpbml0X2d1ZXN0X21zcl9wb2xp Y3koKTsKQEAgLTE2OTgsNyArMTY5OCw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRf eGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgLyogQ3JlYXRlIGluaXRpYWwgZG9tYWluIDAu ICovCiAgICAgZG9tMCA9IGRvbWFpbl9jcmVhdGUoZ2V0X2luaXRpYWxfZG9tYWluX2lkKCksICZk b20wX2NmZywgIXB2X3NoaW0pOwogICAgIGlmICggSVNfRVJSKGRvbTApIHx8IChhbGxvY19kb20w X3ZjcHUwKGRvbTApID09IE5VTEwpICkKLSAgICAgICAgcGFuaWMoIkVycm9yIGNyZWF0aW5nIGRv bWFpbiAwIik7CisgICAgICAgIHBhbmljKCJFcnJvciBjcmVhdGluZyBkb21haW4gMFxuIik7CiAK ICAgICAvKiBHcmFiIHRoZSBET00wIGNvbW1hbmQgbGluZS4gKi8KICAgICBjbWRsaW5lID0gKGNo YXIgKikobW9kWzBdLnN0cmluZyA/IF9fdmEobW9kWzBdLnN0cmluZykgOiBOVUxMKTsKQEAgLTE3 NjEsNyArMTc2MSw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVk IGxvbmcgbWJpX3ApCiAgICAgaWYgKCBjb25zdHJ1Y3RfZG9tMChkb20wLCBtb2QsIG1vZHVsZXNf aGVhZHJvb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAoaW5pdHJkaWR4ID4gMCkgJiYgKGlu aXRyZGlkeCA8IG1iaS0+bW9kc19jb3VudCkKICAgICAgICAgICAgICAgICAgICAgICAgID8gbW9k ICsgaW5pdHJkaWR4IDogTlVMTCwgY21kbGluZSkgIT0gMCkKLSAgICAgICAgcGFuaWMoIkNvdWxk IG5vdCBzZXQgdXAgRE9NMCBndWVzdCBPUyIpOworICAgICAgICBwYW5pYygiQ291bGQgbm90IHNl dCB1cCBET00wIGd1ZXN0IE9TXG4iKTsKIAogICAgIGlmICggY3B1X2hhc19zbWFwICkKICAgICB7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jIGIveGVuL2FyY2gveDg2L3NtcGJv b3QuYwppbmRleCBlNGUxMmFhLi45OTc2ZGEzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc21w Ym9vdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKQEAgLTExMDcsMTEgKzExMDcsMTEg QEAgdm9pZCBfX2luaXQgc21wX3ByZXBhcmVfY3B1cyh2b2lkKQogICAgIHNvY2tldF9jcHVtYXNr ID0geHphbGxvY19hcnJheShjcHVtYXNrX3QgKiwgbnJfc29ja2V0cyk7CiAgICAgaWYgKCBzb2Nr ZXRfY3B1bWFzayA9PSBOVUxMIHx8CiAgICAgICAgICAoc29ja2V0X2NwdW1hc2tbY3B1X3RvX3Nv Y2tldCgwKV0gPSB4emFsbG9jKGNwdW1hc2tfdCkpID09IE5VTEwgKQotICAgICAgICBwYW5pYygi Tm8gbWVtb3J5IGZvciBzb2NrZXQgQ1BVIHNpYmxpbmdzIG1hcCIpOworICAgICAgICBwYW5pYygi Tm8gbWVtb3J5IGZvciBzb2NrZXQgQ1BVIHNpYmxpbmdzIG1hcFxuIik7CiAKICAgICBpZiAoICF6 YWxsb2NfY3B1bWFza192YXIoJnBlcl9jcHUoY3B1X3NpYmxpbmdfbWFzaywgMCkpIHx8CiAgICAg ICAgICAhemFsbG9jX2NwdW1hc2tfdmFyKCZwZXJfY3B1KGNwdV9jb3JlX21hc2ssIDApKSApCi0g ICAgICAgIHBhbmljKCJObyBtZW1vcnkgZm9yIGJvb3QgQ1BVIHNpYmxpbmcvY29yZSBtYXBzIik7 CisgICAgICAgIHBhbmljKCJObyBtZW1vcnkgZm9yIGJvb3QgQ1BVIHNpYmxpbmcvY29yZSBtYXBz XG4iKTsKIAogICAgIHNldF9jcHVfc2libGluZ19tYXAoMCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni90Ym9vdC5jIGIveGVuL2FyY2gveDg2L3Rib290LmMKaW5kZXggZDVhNTI5Mi4uNzQ4 MGY4ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rib290LmMKKysrIGIveGVuL2FyY2gveDg2 L3Rib290LmMKQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIHRib290X3MzX2Vycm9yKGludCBlcnJv cikKIAogICAgIHByaW50aygiTUFDIGZvciAlcyBiZWZvcmUgUzMgaXM6IDB4JTA4IlBSSXg2NCJc biIsIHdoYXQsIG9yaWdfbWFjKTsKICAgICBwcmludGsoIk1BQyBmb3IgJXMgYWZ0ZXIgUzMgaXM6 IDB4JTA4IlBSSXg2NCJcbiIsIHdoYXQsIHJlc3VtZV9tYWMpOwotICAgIHBhbmljKCJNZW1vcnkg aW50ZWdyaXR5IHdhcyBsb3N0IG9uIHJlc3VtZSAoJWQpIiwgZXJyb3IpOworICAgIHBhbmljKCJN ZW1vcnkgaW50ZWdyaXR5IHdhcyBsb3N0IG9uIHJlc3VtZSAoJWQpXG4iLCBlcnJvcik7CiB9CiAK IGludCB0Ym9vdF93YWtlX2FwKGludCBhcGljaWQsIHVuc2lnbmVkIGxvbmcgc2lwaV92ZWMpCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdGltZS5jIGIveGVuL2FyY2gveDg2L3RpbWUuYwppbmRl eCA2OWU5YWFmLi42MTlmMzJjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGltZS5jCisrKyBi L3hlbi9hcmNoL3g4Ni90aW1lLmMKQEAgLTc5OCw3ICs3OTgsNyBAQCBzdGF0aWMgdTY0IF9faW5p dCBpbml0X3BsYXRmb3JtX3RpbWVyKHZvaWQpCiAgICAgfQogCiAgICAgaWYgKCByYyA8PSAwICkK LSAgICAgICAgcGFuaWMoIlVuYWJsZSB0byBmaW5kIHVzYWJsZSBwbGF0Zm9ybSB0aW1lciIpOwor ICAgICAgICBwYW5pYygiVW5hYmxlIHRvIGZpbmQgdXNhYmxlIHBsYXRmb3JtIHRpbWVyXG4iKTsK IAogICAgIHByaW50aygiUGxhdGZvcm0gdGltZXIgaXMgJXMgJXNcbiIsCiAgICAgICAgICAgIGZy ZXFfc3RyaW5nKHB0cy0+ZnJlcXVlbmN5KSwgcHRzLT5uYW1lKTsKQEAgLTkxNCw3ICs5MTQsNyBA QCBzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfY21vc190aW1lKHZvaWQpCiAgICAgICAgIGNtb3Nf cnRjX3Byb2JlID0gZmFsc2U7CiAgICAgZWxzZSBpZiAoIHN5c3RlbV9zdGF0ZSA8IFNZU19TVEFU RV9zbXBfYm9vdCAmJiAhY21vc19ydGNfcHJvYmUgKQogICAgICAgICBwYW5pYygiU3lzdGVtIHdp dGggbm8gQ01PUyBSVEMgYWR2ZXJ0aXNlZCBtdXN0IGJlIGJvb3RlZCBmcm9tIEVGSSIKLSAgICAg ICAgICAgICAgIiAob3Igd2l0aCBjb21tYW5kIGxpbmUgb3B0aW9uIFwiY21vcy1ydGMtcHJvYmVc IikiKTsKKyAgICAgICAgICAgICAgIiAob3Igd2l0aCBjb21tYW5kIGxpbmUgb3B0aW9uIFwiY21v cy1ydGMtcHJvYmVcIilcbiIpOwogCiAgICAgZm9yICggOyA7ICkKICAgICB7CkBAIC05NTksNyAr OTU5LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2V0X2Ntb3NfdGltZSh2b2lkKQogICAgIH0K IAogICAgIGlmICggdW5saWtlbHkoY21vc19ydGNfcHJvYmUpICkKLSAgICAgICAgcGFuaWMoIk5v IENNT1MgUlRDIGZvdW5kIC0gc3lzdGVtIG11c3QgYmUgYm9vdGVkIGZyb20gRUZJIik7CisgICAg ICAgIHBhbmljKCJObyBDTU9TIFJUQyBmb3VuZCAtIHN5c3RlbSBtdXN0IGJlIGJvb3RlZCBmcm9t IEVGSVxuIik7CiAKICAgICByZXR1cm4gbWt0aW1lKHJ0Yy55ZWFyLCBydGMubW9uLCBydGMuZGF5 LCBydGMuaG91ciwgcnRjLm1pbiwgcnRjLnNlYyk7CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IGQ4MzI1YTMuLjdjMTc4MDYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFw cy5jCkBAIC03MTIsNyArNzEyLDcgQEAgdm9pZCBmYXRhbF90cmFwKGNvbnN0IHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzLCBib29sIHNob3dfcmVtb3RlKQogICAgIH0KIAogICAgIHBhbmljKCJG QVRBTCBUUkFQOiB2ZWN0b3IgPSAlZCAoJXMpXG4iCi0gICAgICAgICAgIltlcnJvcl9jb2RlPSUw NHhdICVzIiwKKyAgICAgICAgICAiW2Vycm9yX2NvZGU9JTA0eF0gJXNcbiIsCiAgICAgICAgICAg dHJhcG5yLCB0cmFwc3RyKHRyYXBuciksIHJlZ3MtPmVycm9yX2NvZGUsCiAgICAgICAgICAgKHJl Z3MtPmVmbGFncyAmIFg4Nl9FRkxBR1NfSUYpID8gIiIgOiAiLCBJTiBJTlRFUlJVUFQgQ09OVEVY VCIpOwogfQpAQCAtNzI1LDcgKzcyNSw3IEBAIHN0YXRpYyB2b2lkIGRvX3Jlc2VydmVkX3RyYXAo c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNob3df ZXhlY3V0aW9uX3N0YXRlKHJlZ3MpOwotICAgIHBhbmljKCJGQVRBTCBSRVNFUlZFRCBUUkFQICUj eDogJXMiLCB0cmFwbnIsIHRyYXBzdHIodHJhcG5yKSk7CisgICAgcGFuaWMoIkZBVEFMIFJFU0VS VkVEIFRSQVAgJSN4OiAlc1xuIiwgdHJhcG5yLCB0cmFwc3RyKHRyYXBucikpOwogfQogCiBzdGF0 aWMgdm9pZCBkb190cmFwKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQpAQCAtNzY0LDcgKzc2 NCw3IEBAIHN0YXRpYyB2b2lkIGRvX3RyYXAoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAK ICAgICBzaG93X2V4ZWN1dGlvbl9zdGF0ZShyZWdzKTsKICAgICBwYW5pYygiRkFUQUwgVFJBUDog dmVjdG9yID0gJWQgKCVzKVxuIgotICAgICAgICAgICJbZXJyb3JfY29kZT0lMDR4XSIsCisgICAg ICAgICAgIltlcnJvcl9jb2RlPSUwNHhdXG4iLAogICAgICAgICAgIHRyYXBuciwgdHJhcHN0cih0 cmFwbnIpLCByZWdzLT5lcnJvcl9jb2RlKTsKIH0KIApAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgdm9p ZCBkb19pbnZhbGlkX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAg cmV0dXJuOwogCiAgICAgICAgIHNob3dfZXhlY3V0aW9uX3N0YXRlKHJlZ3MpOwotICAgICAgICBw YW5pYygiWGVuIEJVRyBhdCAlcyVzOiVkIiwgcHJlZml4LCBmaWxlbmFtZSwgbGluZW5vKTsKKyAg ICAgICAgcGFuaWMoIlhlbiBCVUcgYXQgJXMlczolZFxuIiwgcHJlZml4LCBmaWxlbmFtZSwgbGlu ZW5vKTsKIAogICAgIGNhc2UgQlVHRlJBTUVfYXNzZXJ0OgogICAgICAgICAvKiBBU1NFUlQ6IGRl Y29kZSB0aGUgcHJlZGljYXRlIHN0cmluZyBwb2ludGVyLiAqLwpAQCAtMTA2Miw3ICsxMDYyLDcg QEAgdm9pZCBkb19pbnZhbGlkX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAg ICAgICAgcmV0dXJuOwogCiAgICAgICAgIHNob3dfZXhlY3V0aW9uX3N0YXRlKHJlZ3MpOwotICAg ICAgICBwYW5pYygiQXNzZXJ0aW9uICclcycgZmFpbGVkIGF0ICVzJXM6JWQiLAorICAgICAgICBw YW5pYygiQXNzZXJ0aW9uICclcycgZmFpbGVkIGF0ICVzJXM6JWRcbiIsCiAgICAgICAgICAgICAg IHByZWRpY2F0ZSwgcHJlZml4LCBmaWxlbmFtZSwgbGluZW5vKTsKICAgICB9CiAKQEAgLTEwNzgs NyArMTA3OCw3IEBAIHZvaWQgZG9faW52YWxpZF9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2hvd19leGVjdXRpb25fc3RhdGUocmVncyk7Ci0g ICAgcGFuaWMoIkZBVEFMIFRSQVA6IHZlY3RvciA9ICVkIChpbnZhbGlkIG9wY29kZSkiLCBUUkFQ X2ludmFsaWRfb3ApOworICAgIHBhbmljKCJGQVRBTCBUUkFQOiB2ZWN0b3IgPSAlZCAoaW52YWxp ZCBvcGNvZGUpXG4iLCBUUkFQX2ludmFsaWRfb3ApOwogfQogCiB2b2lkIGRvX2ludDMoc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCkBAIC0xNDM5LDcgKzE0MzksNyBAQCB2b2lkIGRvX3BhZ2Vf ZmF1bHQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgIHNob3dfcGFnZV93YWxr KGFkZHIpOwogICAgICAgICBwYW5pYygiRkFUQUwgUEFHRSBGQVVMVFxuIgogICAgICAgICAgICAg ICAiW2Vycm9yX2NvZGU9JTA0eF1cbiIKLSAgICAgICAgICAgICAgIkZhdWx0aW5nIGxpbmVhciBh ZGRyZXNzOiAlcCIsCisgICAgICAgICAgICAgICJGYXVsdGluZyBsaW5lYXIgYWRkcmVzczogJXBc biIsCiAgICAgICAgICAgICAgIGVycm9yX2NvZGUsIF9wKGFkZHIpKTsKICAgICB9CiAKQEAgLTE1 NzcsNyArMTU3Nyw3IEBAIHZvaWQgZG9fZ2VuZXJhbF9wcm90ZWN0aW9uKHN0cnVjdCBjcHVfdXNl cl9yZWdzICpyZWdzKQogICAgICAgICByZXR1cm47CiAKICAgICBzaG93X2V4ZWN1dGlvbl9zdGF0 ZShyZWdzKTsKLSAgICBwYW5pYygiR0VORVJBTCBQUk9URUNUSU9OIEZBVUxUXG5bZXJyb3JfY29k ZT0lMDR4XSIsIHJlZ3MtPmVycm9yX2NvZGUpOworICAgIHBhbmljKCJHRU5FUkFMIFBST1RFQ1RJ T04gRkFVTFRcbltlcnJvcl9jb2RlPSUwNHhdXG4iLCByZWdzLT5lcnJvcl9jb2RlKTsKIH0KIAog c3RhdGljIHZvaWQgcGNpX3NlcnJfc29mdGlycSh2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3g4Nl82NC9tbS5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCmluZGV4IDk4OWE1MzQu LjYwNjUwOGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYworKysgYi94ZW4v YXJjaC94ODYveDg2XzY0L21tLmMKQEAgLTY4NCw3ICs2ODQsNyBAQCB2b2lkIF9faW5pdCBwYWdp bmdfaW5pdCh2b2lkKQogICAgIHJldHVybjsKIAogIG5vbWVtOgotICAgIHBhbmljKCJOb3QgZW5v dWdoIG1lbW9yeSBmb3IgbTJwIHRhYmxlIik7CisgICAgcGFuaWMoIk5vdCBlbm91Z2ggbWVtb3J5 IGZvciBtMnAgdGFibGVcbiIpOwogfQogCiB2b2lkIF9faW5pdCB6YXBfbG93X21hcHBpbmdzKHZv aWQpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMgYi94ZW4vYXJjaC94 ODYveDg2XzY0L3RyYXBzLmMKaW5kZXggNjA2YjFiMC4uYzg1NTc1MiAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3g4Nl82NC90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMu YwpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgZG9fZG91YmxlX2ZhdWx0KHN0cnVjdCBjcHVfdXNl cl9yZWdzICpyZWdzKQogICAgIHNob3dfY29kZShyZWdzKTsKICAgICBzaG93X3N0YWNrX292ZXJm bG93KGNwdSwgcmVncyk7CiAKLSAgICBwYW5pYygiRE9VQkxFIEZBVUxUIC0tIHN5c3RlbSBzaHV0 ZG93biIpOworICAgIHBhbmljKCJET1VCTEUgRkFVTFQgLS0gc3lzdGVtIHNodXRkb3duXG4iKTsK IH0KIAogc3RhdGljIHVuc2lnbmVkIGludCB3cml0ZV9zdHViX3RyYW1wb2xpbmUoCmRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYwppbmRleCAxNzFk MjVlLi5lOTAzMDUwIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9j b21tb24vZG9tYWluLmMKQEAgLTMyOCw3ICszMjgsNyBAQCBzdHJ1Y3QgZG9tYWluICpkb21haW5f Y3JlYXRlKGRvbWlkX3QgZG9taWQsCiAgICAgICAgIGlmICggZG9taWQgPT0gMCB8fCBkb21pZCA9 PSBoYXJkd2FyZV9kb21pZCApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggaGFyZHdhcmVf ZG9taWQgPCAwIHx8IGhhcmR3YXJlX2RvbWlkID49IERPTUlEX0ZJUlNUX1JFU0VSVkVEICkKLSAg ICAgICAgICAgICAgICBwYW5pYygiVGhlIHZhbHVlIG9mIGhhcmR3YXJlX2RvbSBtdXN0IGJlIGEg dmFsaWQgZG9tYWluIElEIik7CisgICAgICAgICAgICAgICAgcGFuaWMoIlRoZSB2YWx1ZSBvZiBo YXJkd2FyZV9kb20gbXVzdCBiZSBhIHZhbGlkIGRvbWFpbiBJRFxuIik7CiAgICAgICAgICAgICBk LT5pc19waW5uZWQgPSBvcHRfZG9tMF92Y3B1c19waW47CiAgICAgICAgICAgICBkLT5kaXNhYmxl X21pZ3JhdGUgPSAxOwogICAgICAgICAgICAgb2xkX2h3ZG9tID0gaGFyZHdhcmVfZG9tYWluOwpk aWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ndW56aXAuYyBiL3hlbi9jb21tb24vZ3VuemlwLmMKaW5k ZXggNDFkNzFlZi4uZGI0ZWZjZCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ndW56aXAuYworKysg Yi94ZW4vY29tbW9uL2d1bnppcC5jCkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyB2b2lkIGZsdXNo X3dpbmRvdyh2b2lkKTsKIAogc3RhdGljIF9faW5pdCB2b2lkIGVycm9yKGNoYXIgKngpCiB7Ci0g ICAgcGFuaWMoIiVzIiwgeCk7CisgICAgcGFuaWMoIiVzXG4iLCB4KTsKIH0KIAogc3RhdGljIF9f aW5pdCBpbnQgZmlsbF9pbmJ1Zih2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZHVs ZS5jIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCmluZGV4IDA1MjgxZDYuLmUzNWJhZmIgMTAwNjQ0 Ci0tLSBhL3hlbi9jb21tb24vc2NoZWR1bGUuYworKysgYi94ZW4vY29tbW9uL3NjaGVkdWxlLmMK QEAgLTE3OTksNyArMTc5OSw3IEBAIHZvaWQgX19pbml0IHNjaGVkdWxlcl9pbml0KHZvaWQpCiAK ICAgICBwcmludGsoIlVzaW5nIHNjaGVkdWxlcjogJXMgKCVzKVxuIiwgb3BzLm5hbWUsIG9wcy5v cHRfbmFtZSk7CiAgICAgaWYgKCBTQ0hFRF9PUCgmb3BzLCBpbml0KSApCi0gICAgICAgIHBhbmlj KCJzY2hlZHVsZXIgcmV0dXJuZWQgZXJyb3Igb24gaW5pdCIpOworICAgICAgICBwYW5pYygic2No ZWR1bGVyIHJldHVybmVkIGVycm9yIG9uIGluaXRcbiIpOwogCiAgICAgaWYgKCBzY2hlZF9yYXRl bGltaXRfdXMgJiYKICAgICAgICAgIChzY2hlZF9yYXRlbGltaXRfdXMgPiBYRU5fU1lTQ1RMX1ND SEVEX1JBVEVMSU1JVF9NQVgKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdWJzYW4vdWJzYW4uYyBi L3hlbi9jb21tb24vdWJzYW4vdWJzYW4uYwppbmRleCBmZGRkNmJlLi41MGE0ZTE0IDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL3Vic2FuL3Vic2FuLmMKKysrIGIveGVuL2NvbW1vbi91YnNhbi91YnNh bi5jCkBAIC00NzgsNyArNDc4LDcgQEAgX191YnNhbl9oYW5kbGVfYnVpbHRpbl91bnJlYWNoYWJs ZShzdHJ1Y3QgdW5yZWFjaGFibGVfZGF0YSAqZGF0YSkKIAl1YnNhbl9wcm9sb2d1ZSgmZGF0YS0+ bG9jYXRpb24sICZmbGFncyk7CiAJcHJfZXJyKCJjYWxsaW5nIF9fYnVpbHRpbl91bnJlYWNoYWJs ZSgpXG4iKTsKIAl1YnNhbl9lcGlsb2d1ZSgmZmxhZ3MpOwotCXBhbmljKCJjYW4ndCByZXR1cm4g ZnJvbSBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKSIpOworCXBhbmljKCJjYW4ndCByZXR1cm4gZnJv bSBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKVxuIik7CiB9CiBFWFBPUlRfU1lNQk9MKF9fdWJzYW5f aGFuZGxlX2J1aWx0aW5fdW5yZWFjaGFibGUpOwogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3dh cm5pbmcuYyBiL3hlbi9jb21tb24vd2FybmluZy5jCmluZGV4IDhiZGQyOTkuLjAyNjljNjcgMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24vd2FybmluZy5jCisrKyBiL3hlbi9jb21tb24vd2FybmluZy5j CkBAIC0xMSw3ICsxMSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpfX2luaXRkYXRhIHdhcm5pbmdz W1dBUk5JTkdfQVJSQVlfU0laRV07CiB2b2lkIF9faW5pdCB3YXJuaW5nX2FkZChjb25zdCBjaGFy ICp3YXJuaW5nKQogewogICAgIGlmICggbnJfd2FybmluZ3MgPj0gV0FSTklOR19BUlJBWV9TSVpF ICkKLSAgICAgICAgcGFuaWMoIlRvbyBtYW55IHBpZWNlcyBvZiB3YXJuaW5nIHRleHQuIik7Cisg ICAgICAgIHBhbmljKCJUb28gbWFueSBwaWVjZXMgb2Ygd2FybmluZyB0ZXh0XG4iKTsKIAogICAg IHdhcm5pbmdzW25yX3dhcm5pbmdzXSA9IHdhcm5pbmc7CiAgICAgbnJfd2FybmluZ3MrKzsKZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL2NoYXIvY29uc29sZS5jIGIveGVuL2RyaXZlcnMvY2hhci9j b25zb2xlLmMKaW5kZXggYTkxMTk1OC4uZTQ4MDM5ZCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMv Y2hhci9jb25zb2xlLmMKKysrIGIveGVuL2RyaXZlcnMvY2hhci9jb25zb2xlLmMKQEAgLTEyNTQs NyArMTI1NCw3IEBAIHZvaWQgcGFuaWMoY29uc3QgY2hhciAqZm10LCAuLi4pCiAgICAgY29uc29s ZV9zdGFydF9zeW5jKCk7CiAgICAgcHJpbnRrKCJcbioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKipcbiIpOwogICAgIHByaW50aygiUGFuaWMgb24gQ1BVICVkOlxuIiwgc21w X3Byb2Nlc3Nvcl9pZCgpKTsKLSAgICBwcmludGsoIiVzXG4iLCBidWYpOworICAgIHByaW50aygi JXMiLCBidWYpOwogICAgIHByaW50aygiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKlxuXG4iKTsKICAgICBpZiAoIG9wdF9ub3JlYm9vdCApCiAgICAgICAgIHByaW50aygi TWFudWFsIHJlc2V0IHJlcXVpcmVkICgnbm9yZWJvb3QnIHNwZWNpZmllZClcbiIpOwpkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2lvbW11LmMKaW5kZXggNzBkMjE4Zi4uZTkxNzkwMSAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9p b21tdS5jCkBAIC0xNTksOCArMTU5LDcgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IGNoZWNr X2h3ZG9tX3JlcXMoc3RydWN0IGRvbWFpbiAqZCkKICAgICBhcmNoX2lvbW11X2NoZWNrX2F1dG90 cmFuc2xhdGVkX2h3ZG9tKGQpOwogCiAgICAgaWYgKCBpb21tdV9wYXNzdGhyb3VnaCApCi0gICAg ICAgIHBhbmljKCJEb20wIHVzZXMgcGFnaW5nIHRyYW5zbGF0ZWQgbW9kZSwgZG9tMC1wYXNzdGhy b3VnaCBtdXN0IG5vdCBiZSAiCi0gICAgICAgICAgICAgICJlbmFibGVkXG4iKTsKKyAgICAgICAg cGFuaWMoIkRvbTAgdXNlcyBwYWdpbmcgdHJhbnNsYXRlZCBtb2RlLCBkb20wLXBhc3N0aHJvdWdo IG11c3Qgbm90IGJlIGVuYWJsZWRcbiIpOwogCiAgICAgaW9tbXVfZG9tMF9zdHJpY3QgPSAxOwog fQpAQCAtMzg0LDcgKzM4Myw3IEBAIGludCBfX2luaXQgaW9tbXVfc2V0dXAodm9pZCkKIAogICAg IGlmICggKGZvcmNlX2lvbW11ICYmICFpb21tdV9lbmFibGVkKSB8fAogICAgICAgICAgKGZvcmNl X2ludHJlbWFwICYmICFpb21tdV9pbnRyZW1hcCkgKQotICAgICAgICBwYW5pYygiQ291bGRuJ3Qg ZW5hYmxlICVzIGFuZCBpb21tdT1yZXF1aXJlZC9mb3JjZSIsCisgICAgICAgIHBhbmljKCJDb3Vs ZG4ndCBlbmFibGUgJXMgYW5kIGlvbW11PXJlcXVpcmVkL2ZvcmNlXG4iLAogICAgICAgICAgICAg ICAhaW9tbXVfZW5hYmxlZCA/ICJJT01NVSIgOiAiSW50ZXJydXB0IFJlbWFwcGluZyIpOwogCiAg ICAgaWYgKCAhaW9tbXVfaW50cmVtYXAgKQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvcGNpLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYwppbmRleCBkMWFkZmZh Li5iM2Y3NWM2IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYworKysg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYwpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQg X19pbml0IHBjaV9zZWdtZW50c19pbml0KHZvaWQpCiB7CiAgICAgcmFkaXhfdHJlZV9pbml0KCZw Y2lfc2VnbWVudHMpOwogICAgIGlmICggIWFsbG9jX3BzZWcoMCkgKQotICAgICAgICBwYW5pYygi Q291bGQgbm90IGluaXRpYWxpemUgUENJIHNlZ21lbnQgMCIpOworICAgICAgICBwYW5pYygiQ291 bGQgbm90IGluaXRpYWxpemUgUENJIHNlZ21lbnQgMFxuIik7CiB9CiAKIGludCBfX2luaXQgcGNp X2FkZF9zZWdtZW50KHUxNiBzZWcpCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvZG1hci5oIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuaAppbmRleCA4 ZjFiMThlLi45NWJiMTMyIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv ZG1hci5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmgKQEAgLTExOSw3 ICsxMTksNyBAQCBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICAgICAgICAgaWYgKCAha2V4ZWNpbmcgKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgZHVtcF9leGVjdXRp b25fc3RhdGUoKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgIHBh bmljKCJETUFSIGhhcmR3YXJlIG1hbGZ1bmN0aW9uIik7ICAgICAgICAgICAgIFwKKyAgICAgICAg ICAgICAgICBwYW5pYygiRE1BUiBoYXJkd2FyZSBtYWxmdW5jdGlvblxuIik7ICAgICAgICAgICBc CiAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21t dS5jCmluZGV4IDE3MTAyNTYuLjhkNzY4YTQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21t dS5jCkBAIC03NTksNyArNzU5LDcgQEAgc3RhdGljIHZvaWQgaW9tbXVfZW5hYmxlX3RyYW5zbGF0 aW9uKHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZCkKICAgICAgICAgaWYgKCAhaXNfaWdkX3Z0 X2VuYWJsZWRfcXVpcmsoKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggZm9yY2VfaW9t bXUgKQotICAgICAgICAgICAgICAgIHBhbmljKCJCSU9TIGRpZCBub3QgZW5hYmxlIElHRCBmb3Ig VlQgcHJvcGVybHksIGNyYXNoIFhlbiBmb3Igc2VjdXJpdHkgcHVycG9zZSIpOworICAgICAgICAg ICAgICAgIHBhbmljKCJCSU9TIGRpZCBub3QgZW5hYmxlIElHRCBmb3IgVlQgcHJvcGVybHksIGNy YXNoIFhlbiBmb3Igc2VjdXJpdHkgcHVycG9zZVxuIik7CiAKICAgICAgICAgICAgIHByaW50ayhY RU5MT0dfV0FSTklORyBWVERQUkVGSVgKICAgICAgICAgICAgICAgICAgICAiQklPUyBkaWQgbm90 IGVuYWJsZSBJR0QgZm9yIFZUIHByb3Blcmx5LiAgRGlzYWJsaW5nIElHRCBWVC1kIGVuZ2luZS5c biIpOwpAQCAtMjU3MSw3ICsyNTcxLDcgQEAgc3RhdGljIHZvaWQgdnRkX3Jlc3VtZSh2b2lkKQog ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIGluaXRfdnRkX2h3KCkgIT0gMCAgJiYgZm9yY2Vf aW9tbXUgKQotICAgICAgICAgcGFuaWMoIklPTU1VIHNldHVwIGZhaWxlZCwgY3Jhc2ggWGVuIGZv ciBzZWN1cml0eSBwdXJwb3NlIik7CisgICAgICAgICBwYW5pYygiSU9NTVUgc2V0dXAgZmFpbGVk LCBjcmFzaCBYZW4gZm9yIHNlY3VyaXR5IHB1cnBvc2VcbiIpOwogCiAgICAgZm9yX2VhY2hfZHJo ZF91bml0ICggZHJoZCApCiAgICAgewpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5j IGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4IGE0ZmJlNjIuLjg3YmVlOTYgMTAwNjQ0Ci0t LSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAg LTE4NzgsMTMgKzE4NzgsMTMgQEAgdm9pZCBfX2luaXQgZmxhc2tfaW5pdChjb25zdCB2b2lkICpw b2xpY3lfYnVmZmVyLCBzaXplX3QgcG9saWN5X3NpemUpCiAgICAgYXZjX2luaXQoKTsKIAogICAg IGlmICggcmVnaXN0ZXJfeHNtKCZmbGFza19vcHMpICkKLSAgICAgICAgcGFuaWMoIkZsYXNrOiBV bmFibGUgdG8gcmVnaXN0ZXIgd2l0aCBYU00iKTsKKyAgICAgICAgcGFuaWMoIkZsYXNrOiBVbmFi bGUgdG8gcmVnaXN0ZXIgd2l0aCBYU01cbiIpOwogCiAgICAgaWYgKCBwb2xpY3lfc2l6ZSAmJiBm bGFza19ib290cGFyYW0gIT0gRkxBU0tfQk9PVFBBUkFNX0xBVEVMT0FEICkKICAgICAgICAgcmV0 ID0gc2VjdXJpdHlfbG9hZF9wb2xpY3kocG9saWN5X2J1ZmZlciwgcG9saWN5X3NpemUpOwogCiAg ICAgaWYgKCByZXQgJiYgZmxhc2tfYm9vdHBhcmFtID09IEZMQVNLX0JPT1RQQVJBTV9FTkZPUkNJ TkcgKQotICAgICAgICBwYW5pYygiVW5hYmxlIHRvIGxvYWQgRkxBU0sgcG9saWN5Iik7CisgICAg ICAgIHBhbmljKCJVbmFibGUgdG8gbG9hZCBGTEFTSyBwb2xpY3lcbiIpOwogCiAgICAgaWYgKCBy ZXQgKQogICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gIkZsYXNrOiAgQWNjZXNzIGNvbnRyb2xz IGRpc2FibGVkIHVudGlsIHBvbGljeSBpcyBsb2FkZWQuXG4iKTsKLS0gCjIuMS40CgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==