From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] x86/mm: Drop MEM_LOG() and correct some printed information Date: Wed, 29 Mar 2017 13:29:32 +0100 Message-ID: <1490790572-19840-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.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org TUVNX0xPRygpIGlzIGp1c3QgYSB0aGluIHdyYXBwZXIgYXJvdW5kIGdkcHJpbnRrKCksIG9ic2N1 cmluZyBzb21lIG9mIHRoZQpjb21tb24gaW5mb3JtYXRpb24uICBJbmxpbmUgaXQsIGFuZCB0YWtl IHRoZSBvcHBvcnR1bml0eSB0byBjb3JyZWN0IHNvbWUgb2YKdGhlIHByaW50a2VkIGluZm9ybWF0 aW9uLgoKU29tZSBjb3JyZWN0aW9ucywgZWFjaCB3aGVyZSBhcHByb3ByaWF0ZToKICogQ29ycmVj dGlvbiBvZiBwZm4vbWZuIHRlcm1zIGFuZCBjb25zaXN0ZW50IHVzZSBvZiBQUklfcGZuL21mbi4K ICogcyFJL08hTU1JTyEKICogQ29uc2lzdGVudGx5IHJlcHJlc2VudCBkb21haW5zIHVzaW5nIGQl ZCBub3RhdGlvbi4KICogVXNlIDB4IHByZWZpeCBmb3Igb3RoZXJ3aXNlIHVucXVhbGlmaWVkIGhl eCBudW1iZXJzLgogKiBSZW1vdmUgInB0d3JfZW11bGF0ZToiIHByZWZpeCwgYXMgdGhlIGVtYmVk ZGVkIF9fZnVuY19fIGlzIGFscmVhZHkgY2xlYXIuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1 bGljaEBzdXNlLmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogeGVu L2FyY2gveDg2L21tLmMgfCAzMDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTgxIGluc2VydGlvbnMoKyksIDEy NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNo L3g4Ni9tbS5jCmluZGV4IDRkYmQyNGYuLjA2ZWY0NGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0xMjcsOCArMTI3LDYgQEAKIGwxX3Bn ZW50cnlfdCBfX3NlY3Rpb24oIi5ic3MucGFnZV9hbGlnbmVkIikgX19hbGlnbmVkKFBBR0VfU0la RSkKICAgICBsMV9maXhtYXBbTDFfUEFHRVRBQkxFX0VOVFJJRVNdOwogCi0jZGVmaW5lIE1FTV9M T0coX2YsIF9hLi4uKSBnZHByaW50ayhYRU5MT0dfV0FSTklORyAsIF9mICJcbiIgLCAjIyBfYSkK LQogLyoKICAqIFBURSB1cGRhdGVzIGNhbiBiZSBkb25lIHdpdGggb3JkaW5hcnkgd3JpdGVzIGV4 Y2VwdDoKICAqICAxLiBEZWJ1ZyBidWlsZHMgZ2V0IGV4dHJhIGNoZWNraW5nIGJ5IHVzaW5nIENN UFhDSEdbOEJdLgpAQCAtNzA3LDcgKzcwNSw4IEBAIHN0YXRpYyBpbnQgZ2V0X3BhZ2VfZnJvbV9w YWdlbnIodW5zaWduZWQgbG9uZyBwYWdlX25yLCBzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgaWYg KCB1bmxpa2VseSghbWZuX3ZhbGlkKF9tZm4ocGFnZV9ucikpKSB8fCB1bmxpa2VseSghZ2V0X3Bh Z2UocGFnZSwgZCkpICkKICAgICB7Ci0gICAgICAgIE1FTV9MT0coIkNvdWxkIG5vdCBnZXQgcGFn ZSByZWYgZm9yIHBmbiAlbHgiLCBwYWdlX25yKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dB Uk5JTkcsCisgICAgICAgICAgICAgICAgICJDb3VsZCBub3QgZ2V0IHBhZ2UgcmVmIGZvciBtZm4g JSJQUklfbWZuIlxuIiwgcGFnZV9ucik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAt NzcxLDcgKzc3MCw4IEBAIGdldF8jI2xldmVsIyNfbGluZWFyX3BhZ2V0YWJsZSggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgIGlmICggKGxldmVsIyNlX2dldF9mbGFncyhwZGUpICYgX1BBR0VfUlcpICkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIE1F TV9MT0coIkF0dGVtcHQgdG8gY3JlYXRlIGxpbmVhciBwLnQuIHdpdGggd3JpdGUgcGVybXMiKTsg ICAgICAgICAgXAorICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgIkF0dGVt cHQgdG8gY3JlYXRlIGxpbmVhciBwLnQuIHdpdGggd3JpdGUgcGVybXNcbiIpOyAgICAgICBcCiAg ICAgICAgIHJldHVybiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAogICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCkBAIC04OTIsNyArODkyLDggQEAgZ2V0X3BhZ2VfZnJvbV9sMWUoCiAKICAgICBpZiAo IHVubGlrZWx5KGwxZiAmIGwxX2Rpc2FsbG93X21hc2sobDFlX293bmVyKSkgKQogICAgIHsKLSAg ICAgICAgTUVNX0xPRygiQmFkIEwxIGZsYWdzICV4IiwgbDFmICYgbDFfZGlzYWxsb3dfbWFzayhs MWVfb3duZXIpKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJCYWQgTDEgZmxh Z3MgJXhcbiIsCisgICAgICAgICAgICAgICAgIGwxZiAmIGwxX2Rpc2FsbG93X21hc2sobDFlX293 bmVyKSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIApAQCAtOTEzLDggKzkxNCw5 IEBAIGdldF9wYWdlX2Zyb21fbDFlKAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIG1mbiAh PSAoUEFERFJfTUFTSyA+PiBQQUdFX1NISUZUKSApIC8qIElOVkFMSURfTUZOPyAqLwogICAgICAg ICAgICAgewotICAgICAgICAgICAgICAgIE1FTV9MT0coIk5vbi1wcml2aWxlZ2VkICgldSkgYXR0 ZW1wdCB0byBtYXAgSS9PIHNwYWNlICUwOGx4IiwgCi0gICAgICAgICAgICAgICAgICAgICAgICBw Z19vd25lci0+ZG9tYWluX2lkLCBtZm4pOworICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxP R19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICJkJWQgbm9uLXByaXZpbGVnZWQg YXR0ZW1wdCB0byBtYXAgTU1JTyBzcGFjZSAlIlBSSV9tZm4iXG4iLAorICAgICAgICAgICAgICAg ICAgICAgICAgIHBnX293bmVyLT5kb21haW5faWQsIG1mbik7CiAgICAgICAgICAgICAgICAgcmV0 dXJuIC1FUEVSTTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwpA QCAtOTI1LDkgKzkyNywxMCBAQCBnZXRfcGFnZV9mcm9tX2wxZSgKICAgICAgICAgewogICAgICAg ICAgICAgaWYgKCBtZm4gIT0gKFBBRERSX01BU0sgPj4gUEFHRV9TSElGVCkgKSAvKiBJTlZBTElE X01GTj8gKi8KICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNRU1fTE9HKCJEb20ldSBh dHRlbXB0ZWQgdG8gbWFwIEkvTyBzcGFjZSAlMDhseCBpbiBkb20ldSB0byBkb20ldSIsCi0gICAg ICAgICAgICAgICAgICAgICAgICBjdXJyLT5kb21haW4tPmRvbWFpbl9pZCwgbWZuLCBwZ19vd25l ci0+ZG9tYWluX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgbDFlX293bmVyLT5kb21haW5f aWQpOworICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAg ICAgICAgICAgICAgICAgICJkJWQgYXR0ZW1wdGVkIHRvIG1hcCBNTUlPIHNwYWNlICUiUFJJX21m biIgaW4gZCVkIHRvIGQlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyLT5kb21h aW4tPmRvbWFpbl9pZCwgbWZuLCBwZ19vd25lci0+ZG9tYWluX2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgIGwxZV9vd25lci0+ZG9tYWluX2lkKTsKICAgICAgICAgICAgICAgICByZXR1cm4g LUVQRVJNOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC05 OTgsOSArMTAwMSwxMCBAQCBnZXRfcGFnZV9mcm9tX2wxZSgKICAgICAgICAgaWYgKCAocmVhbF9w Z19vd25lciA9PSBOVUxMKSB8fCAocGdfb3duZXIgPT0gbDFlX293bmVyKSB8fAogICAgICAgICAg ICAgIHhzbV9wcml2X21hcHBpbmcoWFNNX1RBUkdFVCwgcGdfb3duZXIsIHJlYWxfcGdfb3duZXIp ICkKICAgICAgICAgewotICAgICAgICAgICAgTUVNX0xPRygicGdfb3duZXIgJWQgbDFlX293bmVy ICVkLCBidXQgcmVhbF9wZ19vd25lciAlZCIsCi0gICAgICAgICAgICAgICAgICAgIHBnX293bmVy LT5kb21haW5faWQsIGwxZV9vd25lci0+ZG9tYWluX2lkLAotICAgICAgICAgICAgICAgICAgICBy ZWFsX3BnX293bmVyP3JlYWxfcGdfb3duZXItPmRvbWFpbl9pZDotMSk7CisgICAgICAgICAgICBn ZHByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICJwZ19vd25lciBk JWQgbDFlX293bmVyIGQlZCwgYnV0IHJlYWxfcGdfb3duZXIgZCVkXG4iLAorICAgICAgICAgICAg ICAgICAgICAgcGdfb3duZXItPmRvbWFpbl9pZCwgbDFlX293bmVyLT5kb21haW5faWQsCisgICAg ICAgICAgICAgICAgICAgICByZWFsX3BnX293bmVyID8gcmVhbF9wZ19vd25lci0+ZG9tYWluX2lk IDogLTEpOwogICAgICAgICAgICAgZ290byBjb3VsZF9ub3RfcGluOwogICAgICAgICB9CiAgICAg ICAgIHBnX293bmVyID0gcmVhbF9wZ19vd25lcjsKQEAgLTEwMTksNyArMTAyMyw3IEBAIGdldF9w YWdlX2Zyb21fbDFlKAogICAgICAgICAgICAgKChsMWVfb3duZXIgPT0gcGdfb3duZXIpIHx8ICFw YWdpbmdfbW9kZV9leHRlcm5hbChwZ19vd25lcikpOwogICAgIGlmICggd3JpdGUgJiYgIWdldF9w YWdlX3R5cGUocGFnZSwgUEdUX3dyaXRhYmxlX3BhZ2UpICkKICAgICB7Ci0gICAgICAgIE1FTV9M T0coIkNvdWxkIG5vdCBnZXQgcGFnZSB0eXBlIFBHVF93cml0YWJsZV9wYWdlIik7CisgICAgICAg IGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQ291bGQgbm90IGdldCBwYWdlIHR5cGUgUEdUX3dy aXRhYmxlX3BhZ2VcbiIpOwogICAgICAgICBnb3RvIGNvdWxkX25vdF9waW47CiAgICAgfQogCkBA IC0xMDM1LDcgKzEwMzksOCBAQCBnZXRfcGFnZV9mcm9tX2wxZSgKICAgICAgICAgICAgIGlmICgg d3JpdGUgKQogICAgICAgICAgICAgICAgIHB1dF9wYWdlX3R5cGUocGFnZSk7CiAgICAgICAgICAg ICBwdXRfcGFnZShwYWdlKTsKLSAgICAgICAgICAgIE1FTV9MT0coIkF0dGVtcHQgdG8gY2hhbmdl IGNhY2hlIGF0dHJpYnV0ZXMgb2YgWGVuIGhlYXAgcGFnZSIpOworICAgICAgICAgICAgZ2Rwcmlu dGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAiQXR0ZW1wdCB0byBjaGFu Z2UgY2FjaGUgYXR0cmlidXRlcyBvZiBYZW4gaGVhcCBwYWdlXG4iKTsKICAgICAgICAgICAgIHJl dHVybiAtRUFDQ0VTOwogICAgICAgICB9CiAKQEAgLTEwNTcsMTAgKzEwNjIsMTAgQEAgZ2V0X3Bh Z2VfZnJvbV9sMWUoCiAgICAgICAgICAgICAgICAgcHV0X3BhZ2VfdHlwZShwYWdlKTsKICAgICAg ICAgICAgIHB1dF9wYWdlKHBhZ2UpOwogCi0gICAgICAgICAgICBNRU1fTE9HKCJFcnJvciB1cGRh dGluZyBtYXBwaW5ncyBmb3IgbWZuICVseCAocGZuICVseCwiCi0gICAgICAgICAgICAgICAgICAg ICIgZnJvbSBMMSBlbnRyeSAlIiBQUklwdGUgIikgZm9yICVkIiwKLSAgICAgICAgICAgICAgICAg ICAgbWZuLCBnZXRfZ3Bmbl9mcm9tX21mbihtZm4pLAotICAgICAgICAgICAgICAgICAgICBsMWVf Z2V0X2ludHB0ZShsMWUpLCBsMWVfb3duZXItPmRvbWFpbl9pZCk7CisgICAgICAgICAgICBnZHBy aW50ayhYRU5MT0dfV0FSTklORywgIkVycm9yIHVwZGF0aW5nIG1hcHBpbmdzIGZvciBtZm4gJSIg UFJJX21mbgorICAgICAgICAgICAgICAgICAgICAgIiAocGZuICUiIFBSSV9wZm4gIiwgZnJvbSBM MSBlbnRyeSAlIiBQUklwdGUgIikgZm9yIGQlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgIG1m biwgZ2V0X2dwZm5fZnJvbV9tZm4obWZuKSwKKyAgICAgICAgICAgICAgICAgICAgIGwxZV9nZXRf aW50cHRlKGwxZSksIGwxZV9vd25lci0+ZG9tYWluX2lkKTsKICAgICAgICAgICAgIHJldHVybiBl cnI7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDY4LDEwICsxMDczLDEwIEBAIGdldF9wYWdlX2Zy b21fbDFlKAogICAgIHJldHVybiAwOwogCiAgY291bGRfbm90X3BpbjoKLSAgICBNRU1fTE9HKCJF cnJvciBnZXR0aW5nIG1mbiAlbHggKHBmbiAlbHgpIGZyb20gTDEgZW50cnkgJSIgUFJJcHRlCi0g ICAgICAgICAgICAiIGZvciBsMWVfb3duZXI9JWQsIHBnX293bmVyPSVkIiwKLSAgICAgICAgICAg IG1mbiwgZ2V0X2dwZm5fZnJvbV9tZm4obWZuKSwKLSAgICAgICAgICAgIGwxZV9nZXRfaW50cHRl KGwxZSksIGwxZV9vd25lci0+ZG9tYWluX2lkLCBwZ19vd25lci0+ZG9tYWluX2lkKTsKKyAgICBn ZHByaW50ayhYRU5MT0dfV0FSTklORywgIkVycm9yIGdldHRpbmcgbWZuICUiIFBSSV9tZm4gIiAo cGZuICUiIFBSSV9wZm4KKyAgICAgICAgICAgICAiKSBmcm9tIEwxIGVudHJ5ICUiIFBSSXB0ZSAi IGZvciBsMWVfb3duZXIgZCVkLCBwZ19vd25lciBkJWQiLAorICAgICAgICAgICAgIG1mbiwgZ2V0 X2dwZm5fZnJvbV9tZm4obWZuKSwKKyAgICAgICAgICAgICBsMWVfZ2V0X2ludHB0ZShsMWUpLCBs MWVfb3duZXItPmRvbWFpbl9pZCwgcGdfb3duZXItPmRvbWFpbl9pZCk7CiAgICAgaWYgKCByZWFs X3BnX293bmVyICE9IE5VTEwgKQogICAgICAgICBwdXRfcGFnZShwYWdlKTsKICAgICByZXR1cm4g LUVCVVNZOwpAQCAtMTA5Miw3ICsxMDk3LDggQEAgZ2V0X3BhZ2VfZnJvbV9sMmUoCiAKICAgICBp ZiAoIHVubGlrZWx5KChsMmVfZ2V0X2ZsYWdzKGwyZSkgJiBMMl9ESVNBTExPV19NQVNLKSkgKQog ICAgIHsKLSAgICAgICAgTUVNX0xPRygiQmFkIEwyIGZsYWdzICV4IiwgbDJlX2dldF9mbGFncyhs MmUpICYgTDJfRElTQUxMT1dfTUFTSyk7CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5H LCAiQmFkIEwyIGZsYWdzICV4XG4iLAorICAgICAgICAgICAgICAgICBsMmVfZ2V0X2ZsYWdzKGwy ZSkgJiBMMl9ESVNBTExPV19NQVNLKTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQog CkBAIC0xMTA2LDE0ICsxMTEyLDE0IEBAIGdldF9wYWdlX2Zyb21fbDJlKAogCiAgICAgaWYgKCAh b3B0X2FsbG93X3N1cGVycGFnZSApCiAgICAgewotICAgICAgICBNRU1fTE9HKCJBdHRlbXB0IHRv IG1hcCBzdXBlcnBhZ2Ugd2l0aG91dCBhbGxvd3N1cGVycGFnZSAiCi0gICAgICAgICAgICAgICAg ImZsYWcgaW4gaHlwZXJ2aXNvciIpOworICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywg IlBWIHN1cGVycGFnZXMgZGlzYWJsZWQgaW4gaHlwZXJ2aXNvclxuIik7CiAgICAgICAgIHJldHVy biAtRUlOVkFMOwogICAgIH0KIAogICAgIGlmICggbWZuICYgKEwxX1BBR0VUQUJMRV9FTlRSSUVT LTEpICkKICAgICB7Ci0gICAgICAgIE1FTV9MT0coIlVuYWxpZ25lZCBzdXBlcnBhZ2UgbWFwIGF0 dGVtcHQgbWZuICVseCIsIG1mbik7CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAor ICAgICAgICAgICAgICAgICAiVW5hbGlnbmVkIHN1cGVycGFnZSBtYXAgYXR0ZW1wdCBtZm4gJSIg UFJJX21mbiAiXG4iLCBtZm4pOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICB9CiAKQEAg LTExMzMsNyArMTEzOSw4IEBAIGdldF9wYWdlX2Zyb21fbDNlKAogCiAgICAgaWYgKCB1bmxpa2Vs eSgobDNlX2dldF9mbGFncyhsM2UpICYgbDNfZGlzYWxsb3dfbWFzayhkKSkpICkKICAgICB7Ci0g ICAgICAgIE1FTV9MT0coIkJhZCBMMyBmbGFncyAleCIsIGwzZV9nZXRfZmxhZ3MobDNlKSAmIGwz X2Rpc2FsbG93X21hc2soZCkpOworICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIkJh ZCBMMyBmbGFncyAleFxuIiwKKyAgICAgICAgICAgICAgICAgbDNlX2dldF9mbGFncyhsM2UpICYg bDNfZGlzYWxsb3dfbWFzayhkKSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIApA QCAtMTE1OSw3ICsxMTY2LDggQEAgZ2V0X3BhZ2VfZnJvbV9sNGUoCiAKICAgICBpZiAoIHVubGlr ZWx5KChsNGVfZ2V0X2ZsYWdzKGw0ZSkgJiBMNF9ESVNBTExPV19NQVNLKSkgKQogICAgIHsKLSAg ICAgICAgTUVNX0xPRygiQmFkIEw0IGZsYWdzICV4IiwgbDRlX2dldF9mbGFncyhsNGUpICYgTDRf RElTQUxMT1dfTUFTSyk7CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQmFkIEw0 IGZsYWdzICV4XG4iLAorICAgICAgICAgICAgICAgICBsNGVfZ2V0X2ZsYWdzKGw0ZSkgJiBMNF9E SVNBTExPV19NQVNLKTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQogCkBAIC0xMTc5 LDggKzExODcsOSBAQCBnZXRfcGFnZV9mcm9tX2w0ZSgKICAgICAgICAgICAgIC8qIF9QQUdFX0dV RVNUX0tFUk5FTCBwYWdlIGNhbm5vdCBoYXZlIHRoZSBHbG9iYWwgYml0IHNldC4gKi8gICAgXAog ICAgICAgICAgICAgaWYgKCAobDFlX2dldF9mbGFncygocGwxZSkpICYgKF9QQUdFX0dVRVNUX0tF Uk5FTHxfUEFHRV9HTE9CQUwpKSBcCiAgICAgICAgICAgICAgICAgID09IChfUEFHRV9HVUVTVF9L RVJORUx8X1BBR0VfR0xPQkFMKSApICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAg ICAgICBNRU1fTE9HKCJHbG9iYWwgYml0IGlzIHNldCB0byBrZXJuZWwgcGFnZSAlbHgiLCAgICAg ICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgbDFlX2dldF9wZm4oKHBsMWUpKSk7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgZ2Rwcmlu dGsoWEVOTE9HX1dBUk5JTkcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAiR2xvYmFsIGJpdCBpcyBzZXQgdG8ga2VybmVsIHBh Z2UgJWx4XG4iLCAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGwxZV9nZXRf cGZuKChwbDFlKSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAg ICBpZiAoICEobDFlX2dldF9mbGFncygocGwxZSkpICYgX1BBR0VfVVNFUikgKSAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgICAgICAgICAgICBsMWVfYWRkX2ZsYWdzKChwbDFlKSwgKF9QQUdF X0dVRVNUX0tFUk5FTHxfUEFHRV9VU0VSKSk7ICAgICAgXAogICAgICAgICAgICAgaWYgKCAhKGwx ZV9nZXRfZmxhZ3MoKHBsMWUpKSAmIF9QQUdFX0dVRVNUX0tFUk5FTCkgKSAgICAgICAgICAgICBc CkBAIC0xMjQ2LDggKzEyNTUsOSBAQCB2b2lkIHB1dF9wYWdlX2Zyb21fbDFlKGwxX3BnZW50cnlf dCBsMWUsIHN0cnVjdCBkb21haW4gKmwxZV9vd25lcikKICAgICBpZiAoIChsMWVfZ2V0X2ZsYWdz KGwxZSkgJiBfUEFHRV9HTlRUQUIpICYmCiAgICAgICAgICAhbDFlX293bmVyLT5pc19zaHV0dGlu Z19kb3duICYmICFsMWVfb3duZXItPmlzX2R5aW5nICkKICAgICB7Ci0gICAgICAgIE1FTV9MT0co IkF0dGVtcHQgdG8gaW1wbGljaXRseSB1bm1hcCBhIGdyYW50ZWQgUFRFICUiIFBSSXB0ZSwKLSAg ICAgICAgICAgICAgICBsMWVfZ2V0X2ludHB0ZShsMWUpKTsKKyAgICAgICAgZ2RwcmludGsoWEVO TE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICJBdHRlbXB0IHRvIGltcGxpY2l0bHkgdW5t YXAgYSBncmFudGVkIFBURSAlIiBQUklwdGUgIlxuIiwKKyAgICAgICAgICAgICAgICAgbDFlX2dl dF9pbnRwdGUobDFlKSk7CiAgICAgICAgIGRvbWFpbl9jcmFzaChsMWVfb3duZXIpOwogICAgIH0K IApAQCAtMTM4OCw3ICsxMzk4LDcgQEAgc3RhdGljIGludCBhbGxvY19sMV90YWJsZShzdHJ1Y3Qg cGFnZV9pbmZvICpwYWdlKQogICAgIHJldHVybiAwOwogCiAgZmFpbDoKLSAgICBNRU1fTE9HKCJG YWlsdXJlIGluIGFsbG9jX2wxX3RhYmxlOiBlbnRyeSAlZCIsIGkpOworICAgIGdkcHJpbnRrKFhF TkxPR19XQVJOSU5HLCAiRmFpbHVyZSBpbiBhbGxvY19sMV90YWJsZTogZW50cnkgJWRcbiIsIGkp OwogICAgIHdoaWxlICggaS0tID4gMCApCiAgICAgICAgIGlmICggaXNfZ3Vlc3RfbDFfc2xvdChp KSApCiAgICAgICAgICAgICBwdXRfcGFnZV9mcm9tX2wxZShwbDFlW2ldLCBkKTsKQEAgLTE0MTEs NyArMTQyMSw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3BhZV94ZW5fbWFwcGluZ3Moc3RydWN0IGRv bWFpbiAqZCwgbDNfcGdlbnRyeV90ICpwbDNlKQogICAgIGwzZTMgPSBwbDNlWzNdOwogICAgIGlm ICggIShsM2VfZ2V0X2ZsYWdzKGwzZTMpICYgX1BBR0VfUFJFU0VOVCkgKQogICAgIHsKLSAgICAg ICAgTUVNX0xPRygiUEFFIEwzIDNyZCBzbG90IGlzIGVtcHR5Iik7CisgICAgICAgIGdkcHJpbnRr KFhFTkxPR19XQVJOSU5HLCAiUEFFIEwzIDNyZCBzbG90IGlzIGVtcHR5XG4iKTsKICAgICAgICAg cmV0dXJuIDA7CiAgICAgfQogCkBAIC0xNDMwLDcgKzE0NDAsNyBAQCBzdGF0aWMgaW50IGNyZWF0 ZV9wYWVfeGVuX21hcHBpbmdzKHN0cnVjdCBkb21haW4gKmQsIGwzX3BnZW50cnlfdCAqcGwzZSkK ICAgICBCVUdfT04oIShwYWdlLT51LmludXNlLnR5cGVfaW5mbyAmIFBHVF9wYWVfeGVuX2wyKSk7 CiAgICAgaWYgKCAocGFnZS0+dS5pbnVzZS50eXBlX2luZm8gJiBQR1RfY291bnRfbWFzaykgIT0g MSApCiAgICAgewotICAgICAgICBNRU1fTE9HKCJQQUUgTDMgM3JkIHNsb3QgaXMgc2hhcmVkIik7 CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiUEFFIEwzIDNyZCBzbG90IGlzIHNo YXJlZFxuIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMTQ2NCw3ICsxNDc0LDcg QEAgc3RhdGljIGludCBhbGxvY19sMl90YWJsZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNp Z25lZCBsb25nIHR5cGUsCiAKICAgICAgICAgaWYgKCByYyA8IDAgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBNRU1fTE9HKCJGYWlsdXJlIGluIGFsbG9jX2wyX3RhYmxlOiBlbnRyeSAlZCIsIGkp OworICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJGYWlsdXJlIGluIGFsbG9j X2wyX3RhYmxlOiBlbnRyeSAlZFxuIiwgaSk7CiAgICAgICAgICAgICB3aGlsZSAoIGktLSA+IDAg KQogICAgICAgICAgICAgICAgIGlmICggaXNfZ3Vlc3RfbDJfc2xvdChkLCB0eXBlLCBpKSApCiAg ICAgICAgICAgICAgICAgICAgIHB1dF9wYWdlX2Zyb21fbDJlKHBsMmVbaV0sIHBmbik7CkBAIC0x NTQ2LDcgKzE1NTYsNyBAQCBzdGF0aWMgaW50IGFsbG9jX2wzX3RhYmxlKHN0cnVjdCBwYWdlX2lu Zm8gKnBhZ2UpCiAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICBpZiAoIHJjIDwgMCAmJiByYyAh PSAtRVJFU1RBUlQgJiYgcmMgIT0gLUVJTlRSICkKICAgICB7Ci0gICAgICAgIE1FTV9MT0coIkZh aWx1cmUgaW4gYWxsb2NfbDNfdGFibGU6IGVudHJ5ICVkIiwgaSk7CisgICAgICAgIGdkcHJpbnRr KFhFTkxPR19XQVJOSU5HLCAiRmFpbHVyZSBpbiBhbGxvY19sM190YWJsZTogZW50cnkgJWRcbiIs IGkpOwogICAgICAgICBpZiAoIGkgKQogICAgICAgICB7CiAgICAgICAgICAgICBwYWdlLT5ucl92 YWxpZGF0ZWRfcHRlcyA9IGk7CkBAIC0xNjMyLDcgKzE2NDIsOCBAQCBzdGF0aWMgaW50IGFsbG9j X2w0X3RhYmxlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCiAgICAgICAgIGVsc2UgaWYgKCByYyA8 IDAgKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIHJjICE9IC1FSU5UUiApCi0gICAgICAg ICAgICAgICAgTUVNX0xPRygiRmFpbHVyZSBpbiBhbGxvY19sNF90YWJsZTogZW50cnkgJWQiLCBp KTsKKyAgICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAiRmFpbHVyZSBpbiBhbGxvY19sNF90YWJsZTogZW50cnkgJWRcbiIsIGkp OwogICAgICAgICAgICAgaWYgKCBpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBw YWdlLT5ucl92YWxpZGF0ZWRfcHRlcyA9IGk7CkBAIC0xODQ2LDggKzE4NTcsOSBAQCBzdGF0aWMg aW5saW5lIGludCB1cGRhdGVfaW50cHRlKGludHB0ZV90ICpwLAogICAgICAgICAgICAgcnYgPSBw YWdpbmdfY21weGNoZ19ndWVzdF9lbnRyeSh2LCBwLCAmdCwgX25ldywgX21mbihtZm4pKTsKICAg ICAgICAgICAgIGlmICggdW5saWtlbHkocnYgPT0gMCkgKQogICAgICAgICAgICAgewotICAgICAg ICAgICAgICAgIE1FTV9MT0coIkZhaWxlZCB0byB1cGRhdGUgJSIgUFJJcHRlICIgLT4gJSIgUFJJ cHRlCi0gICAgICAgICAgICAgICAgICAgICAgICAiOiBzYXcgJSIgUFJJcHRlLCBvbGQsIF9uZXcs IHQpOworICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAg ICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gdXBkYXRlICUiIFBSSXB0ZSAiIC0+ICUiIFBSSXB0 ZQorICAgICAgICAgICAgICAgICAgICAgICAgICI6IHNhdyAlIiBQUklwdGUgIlxuIiwgb2xkLCBf bmV3LCB0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIApAQCAtMTkw NCw3ICsxOTE2LDcgQEAgc3RhdGljIGludCBtb2RfbDFfZW50cnkobDFfcGdlbnRyeV90ICpwbDFl LCBsMV9wZ2VudHJ5X3QgbmwxZSwKIAogICAgICAgICBpZiAoIHVubGlrZWx5KGwxZV9nZXRfZmxh Z3MobmwxZSkgJiBsMV9kaXNhbGxvd19tYXNrKHB0X2RvbSkpICkKICAgICAgICAgewotICAgICAg ICAgICAgTUVNX0xPRygiQmFkIEwxIGZsYWdzICV4IiwKKyAgICAgICAgICAgIGdkcHJpbnRrKFhF TkxPR19XQVJOSU5HLCAiQmFkIEwxIGZsYWdzICV4XG4iLAogICAgICAgICAgICAgICAgICAgICBs MWVfZ2V0X2ZsYWdzKG5sMWUpICYgbDFfZGlzYWxsb3dfbWFzayhwdF9kb20pKTsKICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9CkBAIC0xOTc5LDcgKzE5OTEsOCBAQCBzdGF0 aWMgaW50IG1vZF9sMl9lbnRyeShsMl9wZ2VudHJ5X3QgKnBsMmUsCiAKICAgICBpZiAoIHVubGlr ZWx5KCFpc19ndWVzdF9sMl9zbG90KGQsIHR5cGUsIHBnZW50cnlfcHRyX3RvX3Nsb3QocGwyZSkp KSApCiAgICAgewotICAgICAgICBNRU1fTE9HKCJJbGxlZ2FsIEwyIHVwZGF0ZSBhdHRlbXB0IGlu IFhlbi1wcml2YXRlIGFyZWEgJXAiLCBwbDJlKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dB Uk5JTkcsCisgICAgICAgICAgICAgICAgICJJbGxlZ2FsIEwyIHVwZGF0ZSBhdHRlbXB0IGluIFhl bi1wcml2YXRlIGFyZWEgJXBcbiIsIHBsMmUpOwogICAgICAgICByZXR1cm4gLUVQRVJNOwogICAg IH0KIApAQCAtMTk5MCw3ICsyMDAzLDcgQEAgc3RhdGljIGludCBtb2RfbDJfZW50cnkobDJfcGdl bnRyeV90ICpwbDJlLAogICAgIHsKICAgICAgICAgaWYgKCB1bmxpa2VseShsMmVfZ2V0X2ZsYWdz KG5sMmUpICYgTDJfRElTQUxMT1dfTUFTSykgKQogICAgICAgICB7Ci0gICAgICAgICAgICBNRU1f TE9HKCJCYWQgTDIgZmxhZ3MgJXgiLAorICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5J TkcsICJCYWQgTDIgZmxhZ3MgJXhcbiIsCiAgICAgICAgICAgICAgICAgICAgIGwyZV9nZXRfZmxh Z3MobmwyZSkgJiBMMl9ESVNBTExPV19NQVNLKTsKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFM OwogICAgICAgICB9CkBAIC0yMDM4LDcgKzIwNTEsOCBAQCBzdGF0aWMgaW50IG1vZF9sM19lbnRy eShsM19wZ2VudHJ5X3QgKnBsM2UsCiAKICAgICBpZiAoIHVubGlrZWx5KCFpc19ndWVzdF9sM19z bG90KHBnZW50cnlfcHRyX3RvX3Nsb3QocGwzZSkpKSApCiAgICAgewotICAgICAgICBNRU1fTE9H KCJJbGxlZ2FsIEwzIHVwZGF0ZSBhdHRlbXB0IGluIFhlbi1wcml2YXRlIGFyZWEgJXAiLCBwbDNl KTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICJJ bGxlZ2FsIEwzIHVwZGF0ZSBhdHRlbXB0IGluIFhlbi1wcml2YXRlIGFyZWEgJXBcbiIsIHBsM2Up OwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICB9CiAKQEAgLTIwNTYsNyArMjA3MCw3IEBA IHN0YXRpYyBpbnQgbW9kX2wzX2VudHJ5KGwzX3BnZW50cnlfdCAqcGwzZSwKICAgICB7CiAgICAg ICAgIGlmICggdW5saWtlbHkobDNlX2dldF9mbGFncyhubDNlKSAmIGwzX2Rpc2FsbG93X21hc2so ZCkpICkKICAgICAgICAgewotICAgICAgICAgICAgTUVNX0xPRygiQmFkIEwzIGZsYWdzICV4IiwK KyAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQmFkIEwzIGZsYWdzICV4XG4i LAogICAgICAgICAgICAgICAgICAgICBsM2VfZ2V0X2ZsYWdzKG5sM2UpICYgbDNfZGlzYWxsb3df bWFzayhkKSk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQpAQCAtMjEw OSw3ICsyMTIzLDggQEAgc3RhdGljIGludCBtb2RfbDRfZW50cnkobDRfcGdlbnRyeV90ICpwbDRl LAogCiAgICAgaWYgKCB1bmxpa2VseSghaXNfZ3Vlc3RfbDRfc2xvdChkLCBwZ2VudHJ5X3B0cl90 b19zbG90KHBsNGUpKSkgKQogICAgIHsKLSAgICAgICAgTUVNX0xPRygiSWxsZWdhbCBMNCB1cGRh dGUgYXR0ZW1wdCBpbiBYZW4tcHJpdmF0ZSBhcmVhICVwIiwgcGw0ZSk7CisgICAgICAgIGdkcHJp bnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAiSWxsZWdhbCBMNCB1cGRhdGUg YXR0ZW1wdCBpbiBYZW4tcHJpdmF0ZSBhcmVhICVwXG4iLCBwbDRlKTsKICAgICAgICAgcmV0dXJu IC1FSU5WQUw7CiAgICAgfQogCkBAIC0yMTIwLDcgKzIxMzUsNyBAQCBzdGF0aWMgaW50IG1vZF9s NF9lbnRyeShsNF9wZ2VudHJ5X3QgKnBsNGUsCiAgICAgewogICAgICAgICBpZiAoIHVubGlrZWx5 KGw0ZV9nZXRfZmxhZ3Mobmw0ZSkgJiBMNF9ESVNBTExPV19NQVNLKSApCiAgICAgICAgIHsKLSAg ICAgICAgICAgIE1FTV9MT0coIkJhZCBMNCBmbGFncyAleCIsCisgICAgICAgICAgICBnZHByaW50 ayhYRU5MT0dfV0FSTklORywgIkJhZCBMNCBmbGFncyAleFxuIiwKICAgICAgICAgICAgICAgICAg ICAgbDRlX2dldF9mbGFncyhubDRlKSAmIEw0X0RJU0FMTE9XX01BU0spOwogICAgICAgICAgICAg cmV0dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KQEAgLTIxODcsNyArMjIwMiw4IEBAIHZvaWQgcHV0 X3BhZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKICAgICAgICAgaWYgKCBjbGVhbnVwX3BhZ2Vf Y2FjaGVhdHRyKHBhZ2UpID09IDAgKQogICAgICAgICAgICAgZnJlZV9kb21oZWFwX3BhZ2UocGFn ZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIE1FTV9MT0coIkxlYWtpbmcgcGZuICVseCIs IHBhZ2VfdG9fbWZuKHBhZ2UpKTsKKyAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5H LAorICAgICAgICAgICAgICAgICAgICAgIkxlYWtpbmcgbWZuICUiIFBSSV9wZm4gIlxuIiwgcGFn ZV90b19tZm4ocGFnZSkpOwogICAgIH0KIH0KIApAQCAtMjMwOSwxMCArMjMyNSwxMSBAQCBzdGF0 aWMgaW50IGFsbG9jX3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBs b25nIHR5cGUsCiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVChy YyA8IDApOwotICAgICAgICBNRU1fTE9HKCJFcnJvciB3aGlsZSB2YWxpZGF0aW5nIG1mbiAlbHgg KHBmbiAlbHgpIGZvciB0eXBlICUiCi0gICAgICAgICAgICAgICAgUFJ0eXBlX2luZm8gIjogY2Fm PSUwOGx4IHRhZj0lIiBQUnR5cGVfaW5mbywKLSAgICAgICAgICAgICAgICBwYWdlX3RvX21mbihw YWdlKSwgZ2V0X2dwZm5fZnJvbV9tZm4ocGFnZV90b19tZm4ocGFnZSkpLAotICAgICAgICAgICAg ICAgIHR5cGUsIHBhZ2UtPmNvdW50X2luZm8sIHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvKTsKKyAg ICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJFcnJvciB3aGlsZSB2YWxpZGF0aW5nIG1m biAlIiBQUklfbWZuCisgICAgICAgICAgICAgICAgICIgKHBmbiAlIiBQUklfcGZuICIpIGZvciB0 eXBlICUiIFBSdHlwZV9pbmZvCisgICAgICAgICAgICAgICAgICI6IGNhZj0lMDhseCB0YWY9JSIg UFJ0eXBlX2luZm8gIlxuIiwKKyAgICAgICAgICAgICAgICAgcGFnZV90b19tZm4ocGFnZSksIGdl dF9ncGZuX2Zyb21fbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSwKKyAgICAgICAgICAgICAgICAgdHlw ZSwgcGFnZS0+Y291bnRfaW5mbywgcGFnZS0+dS5pbnVzZS50eXBlX2luZm8pOwogICAgICAgICBp ZiAoIHBhZ2UgIT0gY3VycmVudC0+YXJjaC5vbGRfZ3Vlc3RfdGFibGUgKQogICAgICAgICAgICAg cGFnZS0+dS5pbnVzZS50eXBlX2luZm8gPSAwOwogICAgICAgICBlbHNlCkBAIC0yMzc2LDcgKzIz OTMsOCBAQCBpbnQgZnJlZV9wYWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWdu ZWQgbG9uZyB0eXBlLAogICAgICAgICByYyA9IGZyZWVfbDRfdGFibGUocGFnZSk7CiAgICAgICAg IGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIE1FTV9MT0coInR5cGUgJWx4IHBmbiAlbHhc biIsIHR5cGUsIHBhZ2VfdG9fbWZuKHBhZ2UpKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dB Uk5JTkcsICJ0eXBlICUiIFBSdHlwZV9pbmZvICIgbWZuICUiIFBSSV9tZm4gIlxuIiwKKyAgICAg ICAgICAgICAgICAgdHlwZSwgcGFnZV90b19tZm4ocGFnZSkpOwogICAgICAgICByYyA9IC1FSU5W QUw7CiAgICAgICAgIEJVRygpOwogICAgIH0KQEAgLTI1MDAsNyArMjUxOCw5IEBAIHN0YXRpYyBp bnQgX19nZXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcg dHlwZSwKICAgICAgICAgbnggPSB4ICsgMTsKICAgICAgICAgaWYgKCB1bmxpa2VseSgobnggJiBQ R1RfY291bnRfbWFzaykgPT0gMCkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBNRU1fTE9HKCJU eXBlIGNvdW50IG92ZXJmbG93IG9uIHBmbiAlbHgiLCBwYWdlX3RvX21mbihwYWdlKSk7CisgICAg ICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICJU eXBlIGNvdW50IG92ZXJmbG93IG9uIG1mbiAlIlBSSV9tZm4iXG4iLAorICAgICAgICAgICAgICAg ICAgICAgcGFnZV90b19tZm4ocGFnZSkpOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAg ICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIHVubGlrZWx5KCh4ICYgUEdUX2NvdW50X21hc2sp ID09IDApICkKQEAgLTI1NjQsMTAgKzI1ODQsMTEgQEAgc3RhdGljIGludCBfX2dldF9wYWdlX3R5 cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAgICAgICAg ICAgaWYgKCAoKHggJiBQR1RfdHlwZV9tYXNrKSA9PSBQR1RfbDRfcGFnZV90YWJsZSkgJiYKICAg ICAgICAgICAgICAgICAgKHR5cGUgPT0gUEdUX2wzX3BhZ2VfdGFibGUpICkKICAgICAgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsKLSAgICAgICAgICAgIE1FTV9MT0coIkJhZCB0eXBlIChzYXcg JSIgUFJ0eXBlX2luZm8gIiAhPSBleHAgJSIgUFJ0eXBlX2luZm8gIikgIgotICAgICAgICAgICAg ICAgICAgICAiZm9yIG1mbiAlbHggKHBmbiAlbHgpIiwKLSAgICAgICAgICAgICAgICAgICAgeCwg dHlwZSwgcGFnZV90b19tZm4ocGFnZSksCi0gICAgICAgICAgICAgICAgICAgIGdldF9ncGZuX2Zy b21fbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CisgICAgICAgICAgICBnZHByaW50ayhYRU5MT0df V0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICJCYWQgdHlwZSAoc2F3ICUiIFBSdHlwZV9p bmZvICIgIT0gZXhwICUiIFBSdHlwZV9pbmZvICIpICIKKyAgICAgICAgICAgICAgICAgICAgICJm b3IgbWZuICUiIFBSSV9tZm4gIiAocGZuICUiIFBSSV9wZm4gIilcbiIsCisgICAgICAgICAgICAg ICAgICAgICB4LCB0eXBlLCBwYWdlX3RvX21mbihwYWdlKSwKKyAgICAgICAgICAgICAgICAgICAg IGdldF9ncGZuX2Zyb21fbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CiAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmICggdW5saWtlbHkoISh4ICYg UEdUX3ZhbGlkYXRlZCkpICkKQEAgLTI2OTUsOCArMjcxNiw5IEBAIHN0YXRpYyBpbnQgbWFya19z dXBlcnBhZ2Uoc3RydWN0IHNwYWdlX2luZm8gKnNwYWdlLCBzdHJ1Y3QgZG9tYWluICpkKQogICAg ICAgICBueCA9IHggKyAxOwogICAgICAgICBpZiAoICh4ICYgU0dUX3R5cGVfbWFzaykgPT0gU0dU X21hcmsgKQogICAgICAgICB7Ci0gICAgICAgICAgICBNRU1fTE9HKCJEdXBsaWNhdGUgc3VwZXJw YWdlIG1hcmsgYXR0ZW1wdCBtZm4gJWx4IiwKLSAgICAgICAgICAgICAgICAgICAgc3BhZ2VfdG9f bWZuKHNwYWdlKSk7CisgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAg ICAgICAgICAgICAgICAgICJEdXBsaWNhdGUgc3VwZXJwYWdlIG1hcmsgYXR0ZW1wdCBtZm4gJSIg UFJJX21mbiAiXG4iLAorICAgICAgICAgICAgICAgICAgICAgc3BhZ2VfdG9fbWZuKHNwYWdlKSk7 CiAgICAgICAgICAgICBpZiAoIHBhZ2VzX2RvbmUgKQogICAgICAgICAgICAgICAgIHB1dF9zcGFn ZV9wYWdlcyhzcGFnZV90b19wYWdlKHNwYWdlKSk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZB TDsKQEAgLTI3MTMsOCArMjczNSw5IEBAIHN0YXRpYyBpbnQgbWFya19zdXBlcnBhZ2Uoc3RydWN0 IHNwYWdlX2luZm8gKnNwYWdlLCBzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICB7CiAgICAgICAg ICAgICBpZiAoICFnZXRfc3BhZ2VfcGFnZXMoc3BhZ2VfdG9fcGFnZShzcGFnZSksIGQpICkKICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNRU1fTE9HKCJTdXBlcnBhZ2UgdHlwZSBjb25m bGljdCBpbiBtYXJrIGF0dGVtcHQgbWZuICVseCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBz cGFnZV90b19tZm4oc3BhZ2UpKTsKKyAgICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FS TklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAiU3VwZXJwYWdlIHR5cGUgY29uZmxpY3Qg aW4gbWFyayBhdHRlbXB0IG1mbiAlIiBQUklfbWZuICJcbiIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgc3BhZ2VfdG9fbWZuKHNwYWdlKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwYWdlc19kb25lID0gMTsKQEAgLTI3Mzgs OCArMjc2MSw5IEBAIHN0YXRpYyBpbnQgdW5tYXJrX3N1cGVycGFnZShzdHJ1Y3Qgc3BhZ2VfaW5m byAqc3BhZ2UpCiAgICAgICAgIG54ID0geCAtIDE7CiAgICAgICAgIGlmICggKHggJiBTR1RfdHlw ZV9tYXNrKSAhPSBTR1RfbWFyayApCiAgICAgICAgIHsKLSAgICAgICAgICAgIE1FTV9MT0coIkF0 dGVtcHQgdG8gdW5tYXJrIHVubWFya2VkIHN1cGVycGFnZSBtZm4gJWx4IiwKLSAgICAgICAgICAg ICAgICAgICAgc3BhZ2VfdG9fbWZuKHNwYWdlKSk7CisgICAgICAgICAgICBnZHByaW50ayhYRU5M T0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICJBdHRlbXB0IHRvIHVubWFyayB1bm1h cmtlZCBzdXBlcnBhZ2UgbWZuICUiIFBSSV9tZm4gIlxuIiwKKyAgICAgICAgICAgICAgICAgICAg IHNwYWdlX3RvX21mbihzcGFnZSkpOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAg ICAgIH0KICAgICAgICAgaWYgKCAobnggJiBTR1RfY291bnRfbWFzaykgPT0gMCApCkBAIC0yODAw LDggKzI4MjQsOSBAQCBpbnQgZ2V0X3N1cGVycGFnZSh1bnNpZ25lZCBsb25nIG1mbiwgc3RydWN0 IGRvbWFpbiAqZCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCAhZ2V0X3NwYWdlX3BhZ2Vz KHNwYWdlX3RvX3BhZ2Uoc3BhZ2UpLCBkKSApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg ICAgTUVNX0xPRygiVHlwZSBjb25mbGljdCBvbiBzdXBlcnBhZ2UgbWFwcGluZyBtZm4gJWx4IiwK LSAgICAgICAgICAgICAgICAgICAgICAgIHNwYWdlX3RvX21mbihzcGFnZSkpOworICAgICAgICAg ICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAg ICJUeXBlIGNvbmZsaWN0IG9uIHN1cGVycGFnZSBtYXBwaW5nIG1mbiAlIiBQUklfbWZuICJcbiIs CisgICAgICAgICAgICAgICAgICAgICAgICAgc3BhZ2VfdG9fbWZuKHNwYWdlKSk7CiAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwYWdl c19kb25lID0gMTsKQEAgLTI5NTIsNyArMjk3Nyw5IEBAIGludCBuZXdfZ3Vlc3RfY3IzKHVuc2ln bmVkIGxvbmcgbWZuKQogICAgICAgICBjYXNlIC1FUkVTVEFSVDoKICAgICAgICAgICAgIHJldHVy biAtRVJFU1RBUlQ7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBNRU1fTE9HKCJFcnJv ciB3aGlsZSBpbnN0YWxsaW5nIG5ldyBjb21wYXQgYmFzZXB0ciAlbHgiLCBtZm4pOworICAgICAg ICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAiRXJy b3Igd2hpbGUgaW5zdGFsbGluZyBuZXcgY29tcGF0IGJhc2VwdHIgJSIgUFJJX21mbiAiXG4iLAor ICAgICAgICAgICAgICAgICAgICAgbWZuKTsKICAgICAgICAgICAgIHJldHVybiByYzsKICAgICAg ICAgfQogCkBAIC0yOTg4LDcgKzMwMTUsOCBAQCBpbnQgbmV3X2d1ZXN0X2NyMyh1bnNpZ25lZCBs b25nIG1mbikKICAgICBjYXNlIC1FUkVTVEFSVDoKICAgICAgICAgcmV0dXJuIC1FUkVTVEFSVDsK ICAgICBkZWZhdWx0OgotICAgICAgICBNRU1fTE9HKCJFcnJvciB3aGlsZSBpbnN0YWxsaW5nIG5l dyBiYXNlcHRyICVseCIsIG1mbik7CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAor ICAgICAgICAgICAgICAgICAiRXJyb3Igd2hpbGUgaW5zdGFsbGluZyBuZXcgYmFzZXB0ciAlIiBQ UklfbWZuICJcbiIsIG1mbik7CiAgICAgICAgIHJldHVybiByYzsKICAgICB9CiAKQEAgLTMwMzcs MTMgKzMwNjUsMTQgQEAgc3RhdGljIHN0cnVjdCBkb21haW4gKmdldF9wZ19vd25lcihkb21pZF90 IGRvbWlkKQogCiAgICAgaWYgKCB1bmxpa2VseShkb21pZCA9PSBjdXJyLT5kb21haW5faWQpICkK ICAgICB7Ci0gICAgICAgIE1FTV9MT0coIkNhbm5vdCBzcGVjaWZ5IGl0c2VsZiBhcyBmb3JlaWdu IGRvbWFpbiIpOworICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIkNhbm5vdCBzcGVj aWZ5IGl0c2VsZiBhcyBmb3JlaWduIGRvbWFpblxuIik7CiAgICAgICAgIGdvdG8gb3V0OwogICAg IH0KIAogICAgIGlmICggIWlzX2h2bV9kb21haW4oY3VycikgJiYgdW5saWtlbHkocGFnaW5nX21v ZGVfdHJhbnNsYXRlKGN1cnIpKSApCiAgICAgewotICAgICAgICBNRU1fTE9HKCJDYW5ub3QgbWl4 IGZvcmVpZ24gbWFwcGluZ3Mgd2l0aCB0cmFuc2xhdGVkIGRvbWFpbnMiKTsKKyAgICAgICAgZ2Rw cmludGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICJDYW5ub3QgbWl4IGZvcmVp Z24gbWFwcGluZ3Mgd2l0aCB0cmFuc2xhdGVkIGRvbWFpbnNcbiIpOwogICAgICAgICBnb3RvIG91 dDsKICAgICB9CiAKQEAgLTMwNTgsNyArMzA4Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZG9tYWluICpn ZXRfcGdfb3duZXIoZG9taWRfdCBkb21pZCkKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAoIChw Z19vd25lciA9IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChkb21pZCkpID09IE5VTEwgKQogICAgICAg ICB7Ci0gICAgICAgICAgICBNRU1fTE9HKCJVbmtub3duIGRvbWFpbiAnJXUnIiwgZG9taWQpOwor ICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJVbmtub3duIGRvbWFpbiBkJWRc biIsIGRvbWlkKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGJyZWFr OwpAQCAtMzE3OSw3ICszMjA4LDcgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAKICAgICAgICAgaWYg KCB1bmxpa2VseShfX2NvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcHMsIDEpICE9IDApICkKICAgICAg ICAgewotICAgICAgICAgICAgTUVNX0xPRygiQmFkIF9fY29weV9mcm9tX2d1ZXN0Iik7CisgICAg ICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIkJhZCBfX2NvcHlfZnJvbV9ndWVzdFxu Iik7CiAgICAgICAgICAgICByYyA9IC1FRkFVTFQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgfQpAQCAtMzE5NSw3ICszMjI0LDggQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAg ICBjYXNlIE1NVUVYVF9VTlBJTl9UQUJMRToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgTUVNX0xPRygiSW52YWxpZCBleHRlbmRl ZCBwdCBjb21tYW5kICUjeCIsIG9wLmNtZCk7CisgICAgICAgICAgICAgICAgZ2RwcmludGsoWEVO TE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkludmFsaWQgZXh0ZW5kZWQg cHQgY29tbWFuZCAlI3hcbiIsIG9wLmNtZCk7CiAgICAgICAgICAgICAgICAgcmMgPSAtRU9QTk9U U1VQUDsKICAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CiAgICAgICAgICAgICB9CkBAIC0zMjQ1 LDcgKzMyNzUsOCBAQCBsb25nIGRvX21tdWV4dF9vcCgKICAgICAgICAgICAgICAgICBpZiAoIHJj ID09IC1FSU5UUiApCiAgICAgICAgICAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOwogICAgICAg ICAgICAgICAgIGVsc2UgaWYgKCByYyAhPSAtRVJFU1RBUlQgKQotICAgICAgICAgICAgICAgICAg ICBNRU1fTE9HKCJFcnJvciAlZCB3aGlsZSBwaW5uaW5nIG1mbiAlbHgiLAorICAgICAgICAgICAg ICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkVycm9yICVkIHdoaWxlIHBpbm5pbmcgbWZuICUiIFBSSV9tZm4gIlxuIiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByYywgcGFnZV90b19tZm4ocGFnZSkpOwogICAgICAgICAg ICAgICAgIGlmICggcGFnZSAhPSBjdXJyLT5hcmNoLm9sZF9ndWVzdF90YWJsZSApCiAgICAgICAg ICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwpAQCAtMzI1Niw3ICszMjg3LDggQEAgbG9uZyBk b19tbXVleHRfb3AoCiAgICAgICAgICAgICBpZiAoICFyYyAmJiB1bmxpa2VseSh0ZXN0X2FuZF9z ZXRfYml0KF9QR1RfcGlubmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmcGFnZS0+dS5pbnVzZS50eXBlX2luZm8pKSApCiAgICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgTUVNX0xPRygiTWZuICVseCBhbHJlYWR5IHBpbm5lZCIsIHBhZ2Vf dG9fbWZuKHBhZ2UpKTsKKyAgICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywK KyAgICAgICAgICAgICAgICAgICAgICAgICAibWZuICUiIFBSSV9tZm4gIiBhbHJlYWR5IHBpbm5l ZFxuIiwgcGFnZV90b19tZm4ocGFnZSkpOwogICAgICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsK ICAgICAgICAgICAgIH0KIApAQCAtMzI5Nyw3ICszMzI5LDggQEAgbG9uZyBkb19tbXVleHRfb3Ao CiAgICAgICAgICAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4ocGdfb3duZXIsIG9wLmFyZzEu bWZuLCBOVUxMLCBQMk1fQUxMT0MpOwogICAgICAgICAgICAgaWYgKCB1bmxpa2VseSghcGFnZSkg KQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE1FTV9MT0coIk1mbiAlbHggYmFkIGRv bWFpbiIsIG9wLmFyZzEubWZuKTsKKyAgICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FS TklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAibWZuICUiIFBSSV9tZm4gIiBiYWQgZG9t YWluXG4iLCBvcC5hcmcxLm1mbik7CiAgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAg ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMzMwNSw3ICszMzM4LDggQEAg bG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICBpZiAoICF0ZXN0X2FuZF9jbGVhcl9iaXQo X1BHVF9waW5uZWQsICZwYWdlLT51LmludXNlLnR5cGVfaW5mbykgKQogICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwotICAgICAgICAgICAgICAgIE1FTV9MT0co Ik1mbiAlbHggbm90IHBpbm5lZCIsIG9wLmFyZzEubWZuKTsKKyAgICAgICAgICAgICAgICBnZHBy aW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAibWZuICUiIFBS SV9tZm4gIiBub3QgcGlubmVkXG4iLCBvcC5hcmcxLm1mbik7CiAgICAgICAgICAgICAgICAgcmMg PSAtRUlOVkFMOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMzM2 OSw4ICszNDAzLDkgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICAgICAgICAgIGlm ICggcmMgPT0gLUVJTlRSICkKICAgICAgICAgICAgICAgICAgICAgICAgIHJjID0gLUVSRVNUQVJU OwogICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICggcmMgIT0gLUVSRVNUQVJUICkKLSAgICAg ICAgICAgICAgICAgICAgICAgIE1FTV9MT0coIkVycm9yICVkIHdoaWxlIGluc3RhbGxpbmcgbmV3 IG1mbiAlbHgiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYywgb3AuYXJnMS5t Zm4pOworICAgICAgICAgICAgICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgJWQgaW5zdGFsbGluZyBuZXcg bWZuICUiIFBSSV9tZm4gIlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJj LCBvcC5hcmcxLm1mbik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICBpZiAoIFZNX0FTU0lTVChkLCBtMnBfc3RyaWN0KSAmJiAh cGFnaW5nX21vZGVfcmVmY291bnRzKGQpICkKQEAgLTM0NTgsNyArMzQ5Myw4IEBAIGxvbmcgZG9f bW11ZXh0X29wKAogICAgICAgICAgICAgICAgIHJjID0gLUVQRVJNOwogICAgICAgICAgICAgZWxz ZSBpZiAoIHVubGlrZWx5KCFjYWNoZV9mbHVzaF9wZXJtaXR0ZWQoZCkpICkKICAgICAgICAgICAg IHsKLSAgICAgICAgICAgICAgICBNRU1fTE9HKCJOb24tcGh5c2RldiBkb21haW4gdHJpZWQgdG8g RkxVU0hfQ0FDSEUuIik7CisgICAgICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcs CisgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbi1waHlzZGV2IGRvbWFpbiB0cmllZCB0byBG TFVTSF9DQUNIRVxuIik7CiAgICAgICAgICAgICAgICAgcmMgPSAtRUFDQ0VTOwogICAgICAgICAg ICAgfQogICAgICAgICAgICAgZWxzZQpAQCAtMzQ4NCw3ICszNTIwLDggQEAgbG9uZyBkb19tbXVl eHRfb3AoCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgTUVNX0xPRygiTm9uLXBoeXNkZXYgZG9tYWluIHRyaWVkIHRvIEZMVVNI X0NBQ0hFX0dMT0JBTCIpOworICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5H LAorICAgICAgICAgICAgICAgICAgICAgICAgICJOb24tcGh5c2RldiBkb21haW4gdHJpZWQgdG8g RkxVU0hfQ0FDSEVfR0xPQkFMXG4iKTsKICAgICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CiAg ICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTM0OTgsMTMgKzM1MzUsMTUgQEAg bG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICAgICAgcmMgPSAtRVBFUk07CiAgICAgICAg ICAgICBlbHNlIGlmICggcGFnaW5nX21vZGVfZXh0ZXJuYWwoZCkgKQogICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgIE1FTV9MT0coImlnbm9yaW5nIFNFVF9MRFQgaHlwZXJjYWxsIGZyb20g ZXh0ZXJuYWwgZG9tYWluIik7CisgICAgICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5J TkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgImlnbm9yaW5nIFNFVF9MRFQgaHlwZXJjYWxs IGZyb20gZXh0ZXJuYWwgZG9tYWluXG4iKTsKICAgICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7 CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIGlmICggKChwdHIgJiAoUEFHRV9TSVpF IC0gMSkpICE9IDApIHx8ICFfX2FkZHJfb2socHRyKSB8fAogICAgICAgICAgICAgICAgICAgICAg IChlbnRzID4gODE5MikgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE1FTV9MT0co IkJhZCBhcmdzIHRvIFNFVF9MRFQ6IHB0cj0lbHgsIGVudHM9JXgiLCBwdHIsIGVudHMpOworICAg ICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAg ICAgICAgICJCYWQgYXJncyB0byBTRVRfTERUOiBwdHI9JWx4LCBlbnRzPSV4XG4iLCBwdHIsIGVu dHMpOwogICAgICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgICAgIH0KICAgICAg ICAgICAgIGVsc2UgaWYgKCAoY3Vyci0+YXJjaC5wdl92Y3B1LmxkdF9lbnRzICE9IGVudHMpIHx8 CkBAIC0zNTI3LDcgKzM1NjYsOCBAQCBsb25nIGRvX21tdWV4dF9vcCgKICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICBpZiAoIHBhZ2UgKQogICAgICAgICAgICAgICAgICAgICBwdXRfcGFn ZShwYWdlKTsKLSAgICAgICAgICAgICAgICBNRU1fTE9HKCJFcnJvciB3aGlsZSBjbGVhcmluZyBt Zm4gJWx4Iiwgb3AuYXJnMS5tZm4pOworICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19X QVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICJFcnJvciBjbGVhcmluZyBtZm4gJSIg UFJJX21mbiAiXG4iLCBvcC5hcmcxLm1mbik7CiAgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFM OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMzU0OSw3ICszNTg5 LDkgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFAyTV9BTExPQyk7CiAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KCFzcmNfcGFn ZSkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE1FTV9MT0coIkVycm9yIHdoaWxl IGNvcHlpbmcgZnJvbSBtZm4gJWx4Iiwgb3AuYXJnMi5zcmNfbWZuKTsKKyAgICAgICAgICAgICAg ICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAiRXJy b3IgY29weWluZyBmcm9tIG1mbiAlIiBQUklfbWZuICJcbiIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgb3AuYXJnMi5zcmNfbWZuKTsKICAgICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CiAg ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0zNTYzLDcgKzM2MDUsOCBA QCBsb25nIGRvX21tdWV4dF9vcCgKICAgICAgICAgICAgICAgICBwdXRfcGFnZShzcmNfcGFnZSk7 CiAgICAgICAgICAgICAgICAgaWYgKCBkc3RfcGFnZSApCiAgICAgICAgICAgICAgICAgICAgIHB1 dF9wYWdlKGRzdF9wYWdlKTsKLSAgICAgICAgICAgICAgICBNRU1fTE9HKCJFcnJvciB3aGlsZSBj b3B5aW5nIHRvIG1mbiAlbHgiLCBvcC5hcmcxLm1mbik7CisgICAgICAgICAgICAgICAgZ2Rwcmlu dGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yIGNvcHlp bmcgdG8gbWZuICUiIFBSSV9tZm4gIlxuIiwgb3AuYXJnMS5tZm4pOwogICAgICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICAgICAgfQogCkBAIC0zNTg1LDE0ICszNjI4LDE1IEBAIGxvbmcgZG9f bW11ZXh0X29wKAogCiAgICAgICAgICAgICBpZiAoICFvcHRfYWxsb3dfc3VwZXJwYWdlICkKICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNRU1fTE9HKCJTdXBlcnBhZ2VzIGRpc2FsbG93 ZWQiKTsKKyAgICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIlN1cGVycGFn ZXMgZGlzYWxsb3dlZFxuIik7CiAgICAgICAgICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAg ICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgaWYgKCB1bmxpa2VseShkICE9IHBnX293bmVy KSApCiAgICAgICAgICAgICAgICAgcmMgPSAtRVBFUk07CiAgICAgICAgICAgICBlbHNlIGlmICgg bWZuICYgKEwxX1BBR0VUQUJMRV9FTlRSSUVTIC0gMSkgKQogICAgICAgICAgICAgewotICAgICAg ICAgICAgICAgIE1FTV9MT0coIlVuYWxpZ25lZCBzdXBlcnBhZ2UgcmVmZXJlbmNlIG1mbiAlbHgi LCBtZm4pOworICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAg ICAgICAgICAgICAgICAgICAgICJVbmFsaWduZWQgc3VwZXJwYWdlIG1mbiAlIiBQUklfbWZuICJc biIsIG1mbik7CiAgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAgICAgICAgICAgfQog ICAgICAgICAgICAgZWxzZSBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4gfCAoTDFfUEFHRVRBQkxF X0VOVFJJRVMgLSAxKSkpICkKQEAgLTM2MDUsNyArMzY0OSw4IEBAIGxvbmcgZG9fbW11ZXh0X29w KAogICAgICAgICB9CiAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIE1FTV9MT0coIklu dmFsaWQgZXh0ZW5kZWQgcHQgY29tbWFuZCAlI3giLCBvcC5jbWQpOworICAgICAgICAgICAgZ2Rw cmludGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAiSW52YWxpZCBleHRl bmRlZCBwdCBjb21tYW5kICUjeFxuIiwgb3AuY21kKTsKICAgICAgICAgICAgIHJjID0gLUVOT1NZ UzsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNzM0LDcgKzM3NzksNyBAQCBs b25nIGRvX21tdV91cGRhdGUoCiAKICAgICAgICAgaWYgKCB1bmxpa2VseShfX2NvcHlfZnJvbV9n dWVzdCgmcmVxLCB1cmVxcywgMSkgIT0gMCkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBNRU1f TE9HKCJCYWQgX19jb3B5X2Zyb21fZ3Vlc3QiKTsKKyAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxP R19XQVJOSU5HLCAiQmFkIF9fY29weV9mcm9tX2d1ZXN0XG4iKTsKICAgICAgICAgICAgIHJjID0g LUVGQVVMVDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNzg3LDcgKzM4MzIs OCBAQCBsb25nIGRvX21tdV91cGRhdGUoCiAKICAgICAgICAgICAgIGlmICggdW5saWtlbHkoIXBh Z2UpICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNRU1fTE9HKCJDb3VsZCBub3Qg Z2V0IHBhZ2UgZm9yIG5vcm1hbCB1cGRhdGUiKTsKKyAgICAgICAgICAgICAgICBnZHByaW50ayhY RU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAiQ291bGQgbm90IGdldCBw YWdlIGZvciBub3JtYWwgdXBkYXRlXG4iKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgIH0KIApAQCAtMzkwNCw3ICszOTUwLDggQEAgbG9uZyBkb19tbXVfdXBkYXRlKAogCiAg ICAgICAgICAgICBpZiAoIHVubGlrZWx5KCFnZXRfcGFnZV9mcm9tX3BhZ2VucihtZm4sIHBnX293 bmVyKSkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE1FTV9MT0coIkNvdWxkIG5v dCBnZXQgcGFnZSBmb3IgbWFjaC0+cGh5cyB1cGRhdGUiKTsKKyAgICAgICAgICAgICAgICBnZHBy aW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAiQ291bGQgbm90 IGdldCBwYWdlIGZvciBtYWNoLT5waHlzIHVwZGF0ZVxuIik7CiAgICAgICAgICAgICAgICAgcmMg PSAtRUlOVkFMOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMzkx Nyw3ICszOTY0LDcgQEAgbG9uZyBkb19tbXVfdXBkYXRlKAogICAgICAgICAgICAgYnJlYWs7CiAK ICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIE1FTV9MT0coIkludmFsaWQgcGFnZSB1cGRh dGUgY29tbWFuZCAleCIsIGNtZCk7CisgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklO RywgIkludmFsaWQgcGFnZSB1cGRhdGUgY29tbWFuZCAlI3hcbiIsIGNtZCk7CiAgICAgICAgICAg ICByYyA9IC1FTk9TWVM7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzk4OSw3 ICs0MDM2LDcgQEAgc3RhdGljIGludCBjcmVhdGVfZ3JhbnRfcHRlX21hcHBpbmcoCiAKICAgICBp ZiAoIHVubGlrZWx5KCFwYWdlKSApCiAgICAgewotICAgICAgICBNRU1fTE9HKCJDb3VsZCBub3Qg Z2V0IHBhZ2UgZm9yIG5vcm1hbCB1cGRhdGUiKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dB Uk5JTkcsICJDb3VsZCBub3QgZ2V0IHBhZ2UgZm9yIG5vcm1hbCB1cGRhdGVcbiIpOwogICAgICAg ICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKICAgICB9CiAgICAgCkBAIC00MDQ0LDcgKzQw OTEsNyBAQCBzdGF0aWMgaW50IGRlc3Ryb3lfZ3JhbnRfcHRlX21hcHBpbmcoCiAKICAgICBpZiAo IHVubGlrZWx5KCFwYWdlKSApCiAgICAgewotICAgICAgICBNRU1fTE9HKCJDb3VsZCBub3QgZ2V0 IHBhZ2UgZm9yIG5vcm1hbCB1cGRhdGUiKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5J TkcsICJDb3VsZCBub3QgZ2V0IHBhZ2UgZm9yIG5vcm1hbCB1cGRhdGVcbiIpOwogICAgICAgICBy ZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKICAgICB9CiAgICAgCkBAIC00MDcxLDggKzQxMTgs OSBAQCBzdGF0aWMgaW50IGRlc3Ryb3lfZ3JhbnRfcHRlX21hcHBpbmcoCiAgICAgaWYgKCB1bmxp a2VseShsMWVfZ2V0X3BmbihvbDFlKSAhPSBmcmFtZSkgKQogICAgIHsKICAgICAgICAgcGFnZV91 bmxvY2socGFnZSk7Ci0gICAgICAgIE1FTV9MT0coIlBURSBlbnRyeSAlbHggZm9yIGFkZHJlc3Mg JSJQUkl4NjQiIGRvZXNuJ3QgbWF0Y2ggZnJhbWUgJWx4IiwKLSAgICAgICAgICAgICAgICAodW5z aWduZWQgbG9uZylsMWVfZ2V0X2ludHB0ZShvbDFlKSwgYWRkciwgZnJhbWUpOworICAgICAgICBn ZHByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgIlBURSBlbnRyeSAlbHgg Zm9yIGFkZHJlc3MgJSJQUkl4NjQiIGRvZXNuJ3QgbWF0Y2ggZnJhbWUgJWx4XG4iLAorICAgICAg ICAgICAgICAgICAodW5zaWduZWQgbG9uZylsMWVfZ2V0X2ludHB0ZShvbDFlKSwgYWRkciwgZnJh bWUpOwogICAgICAgICByYyA9IEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgICAgIGdvdG8gZmFp bGVkOwogICAgIH0KQEAgLTQwODUsNyArNDEzMyw3IEBAIHN0YXRpYyBpbnQgZGVzdHJveV9ncmFu dF9wdGVfbWFwcGluZygKICAgICAgICAgICAgICAgICAgICAwKSkgKQogICAgIHsKICAgICAgICAg cGFnZV91bmxvY2socGFnZSk7Ci0gICAgICAgIE1FTV9MT0coIkNhbm5vdCBkZWxldGUgUFRFIGVu dHJ5IGF0ICVwIiwgdmEpOworICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIkNhbm5v dCBkZWxldGUgUFRFIGVudHJ5IGF0ICVwXG4iLCB2YSk7CiAgICAgICAgIHJjID0gR05UU1RfZ2Vu ZXJhbF9lcnJvcjsKICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgfQpAQCAtNDExMyw3ICs0MTYx LDcgQEAgc3RhdGljIGludCBjcmVhdGVfZ3JhbnRfdmFfbWFwcGluZygKICAgICBwbDFlID0gZ3Vl c3RfbWFwX2wxZSh2YSwgJmdsMW1mbik7CiAgICAgaWYgKCAhcGwxZSApCiAgICAgewotICAgICAg ICBNRU1fTE9HKCJDb3VsZCBub3QgZmluZCBMMSBQVEUgZm9yIGFkZHJlc3MgJWx4IiwgdmEpOwor ICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIkNvdWxkIG5vdCBmaW5kIEwxIFBURSBm b3IgYWRkcmVzcyAlbHhcbiIsIHZhKTsKICAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJy b3I7CiAgICAgfQogCkBAIC00MTYzLDcgKzQyMTEsNyBAQCBzdGF0aWMgaW50IHJlcGxhY2VfZ3Jh bnRfdmFfbWFwcGluZygKICAgICBwbDFlID0gZ3Vlc3RfbWFwX2wxZShhZGRyLCAmZ2wxbWZuKTsK ICAgICBpZiAoICFwbDFlICkKICAgICB7Ci0gICAgICAgIE1FTV9MT0coIkNvdWxkIG5vdCBmaW5k IEwxIFBURSBmb3IgYWRkcmVzcyAlbHgiLCBhZGRyKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9H X1dBUk5JTkcsICJDb3VsZCBub3QgZmluZCBMMSBQVEUgZm9yIGFkZHJlc3MgJWx4XG4iLCBhZGRy KTsKICAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgfQogCkBAIC00MTky LDggKzQyNDAsOSBAQCBzdGF0aWMgaW50IHJlcGxhY2VfZ3JhbnRfdmFfbWFwcGluZygKICAgICAv KiBDaGVjayB0aGF0IHRoZSB2aXJ0dWFsIGFkZHJlc3Mgc3VwcGxpZWQgaXMgYWN0dWFsbHkgbWFw cGVkIHRvIGZyYW1lLiAqLwogICAgIGlmICggdW5saWtlbHkobDFlX2dldF9wZm4ob2wxZSkgIT0g ZnJhbWUpICkKICAgICB7Ci0gICAgICAgIE1FTV9MT0coIlBURSBlbnRyeSAlbHggZm9yIGFkZHJl c3MgJWx4IGRvZXNuJ3QgbWF0Y2ggZnJhbWUgJWx4IiwKLSAgICAgICAgICAgICAgICBsMWVfZ2V0 X3BmbihvbDFlKSwgYWRkciwgZnJhbWUpOworICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklO RywKKyAgICAgICAgICAgICAgICAgIlBURSBlbnRyeSAlbHggZm9yIGFkZHJlc3MgJWx4IGRvZXNu J3QgbWF0Y2ggZnJhbWUgJWx4XG4iLAorICAgICAgICAgICAgICAgICBsMWVfZ2V0X3BmbihvbDFl KSwgYWRkciwgZnJhbWUpOwogICAgICAgICByYyA9IEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAg ICAgIGdvdG8gdW5sb2NrX2FuZF9vdXQ7CiAgICAgfQpAQCAtNDIwMSw3ICs0MjUwLDggQEAgc3Rh dGljIGludCByZXBsYWNlX2dyYW50X3ZhX21hcHBpbmcoCiAgICAgLyogRGVsZXRlIHBhZ2V0YWJs ZSBlbnRyeS4gKi8KICAgICBpZiAoIHVubGlrZWx5KCFVUERBVEVfRU5UUlkobDEsIHBsMWUsIG9s MWUsIG5sMWUsIGdsMW1mbiwgdiwgMCkpICkKICAgICB7Ci0gICAgICAgIE1FTV9MT0coIkNhbm5v dCBkZWxldGUgUFRFIGVudHJ5IGF0ICVwIiwgKHVuc2lnbmVkIGxvbmcgKilwbDFlKTsKKyAgICAg ICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICJDYW5ub3QgZGVs ZXRlIFBURSBlbnRyeSBhdCAlcFxuIiwgKHVuc2lnbmVkIGxvbmcgKilwbDFlKTsKICAgICAgICAg cmMgPSBHTlRTVF9nZW5lcmFsX2Vycm9yOwogICAgICAgICBnb3RvIHVubG9ja19hbmRfb3V0Owog ICAgIH0KQEAgLTQyODksOCArNDMzOSw5IEBAIHN0YXRpYyBpbnQgcmVwbGFjZV9ncmFudF9wMm1f bWFwcGluZygKICAgICBpZiAoICFwMm1faXNfZ3JhbnQodHlwZSkgfHwgbWZuX3gob2xkX21mbikg IT0gZnJhbWUgKQogICAgIHsKICAgICAgICAgcHV0X2dmbihkLCBnZm4pOwotICAgICAgICBNRU1f TE9HKCJyZXBsYWNlX2dyYW50X3AybV9tYXBwaW5nOiBvbGQgbWFwcGluZyBpbnZhbGlkICh0eXBl ICVkLCBtZm4gJWx4LCBmcmFtZSAlbHgpIiwKLSAgICAgICAgICAgICAgICB0eXBlLCBtZm5feChv bGRfbWZuKSwgZnJhbWUpOworICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKKyAgICAg ICAgICAgICAgICAgIm9sZCBtYXBwaW5nIGludmFsaWQgKHR5cGUgJWQsIG1mbiAlIiBQUklfbWZu ICIsIGZyYW1lICVseClcbiIsCisgICAgICAgICAgICAgICAgIHR5cGUsIG1mbl94KG9sZF9tZm4p LCBmcmFtZSk7CiAgICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9yOwogICAgIH0KICAg ICBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4oZ2ZuKSwgX21mbihmcmFtZSksIFBB R0VfT1JERVJfNEspOwpAQCAtNDMxNiw3ICs0MzY3LDcgQEAgaW50IHJlcGxhY2VfZ3JhbnRfaG9z dF9tYXBwaW5nKAogICAgICAgICBpZiAoICFuZXdfYWRkciApCiAgICAgICAgICAgICByZXR1cm4g ZGVzdHJveV9ncmFudF9wdGVfbWFwcGluZyhhZGRyLCBmcmFtZSwgY3Vyci0+ZG9tYWluKTsKICAg ICAgICAgCi0gICAgICAgIE1FTV9MT0coIlVuc3VwcG9ydGVkIGdyYW50IHRhYmxlIG9wZXJhdGlv biIpOworICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIlVuc3VwcG9ydGVkIGdyYW50 IHRhYmxlIG9wZXJhdGlvblxuIik7CiAgICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9y OwogICAgIH0KIApAQCAtNDMyNiw4ICs0Mzc3LDggQEAgaW50IHJlcGxhY2VfZ3JhbnRfaG9zdF9t YXBwaW5nKAogICAgIHBsMWUgPSBndWVzdF9tYXBfbDFlKG5ld19hZGRyLCAmZ2wxbWZuKTsKICAg ICBpZiAoICFwbDFlICkKICAgICB7Ci0gICAgICAgIE1FTV9MT0coIkNvdWxkIG5vdCBmaW5kIEwx IFBURSBmb3IgYWRkcmVzcyAlbHgiLAotICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKW5l d19hZGRyKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAg ICAgICJDb3VsZCBub3QgZmluZCBMMSBQVEUgZm9yIGFkZHJlc3MgJSJQUkl4NjQiXG4iLCBuZXdf YWRkcik7CiAgICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9yOwogICAgIH0KIApAQCAt NDM2MCw3ICs0NDExLDggQEAgaW50IHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBwaW5nKAogICAgIHsK ICAgICAgICAgcGFnZV91bmxvY2sobDFwZyk7CiAgICAgICAgIHB1dF9wYWdlKGwxcGcpOwotICAg ICAgICBNRU1fTE9HKCJDYW5ub3QgZGVsZXRlIFBURSBlbnRyeSBhdCAlcCIsICh1bnNpZ25lZCBs b25nICopcGwxZSk7CisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQ2Fubm90IGRl bGV0ZSBQVEUgZW50cnkgYXQgJXBcbiIsCisgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25n ICopcGwxZSk7CiAgICAgICAgIGd1ZXN0X3VubWFwX2wxZShwbDFlKTsKICAgICAgICAgcmV0dXJu IEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgfQpAQCAtNDQwOCwxMCArNDQ2MCwxMSBAQCBpbnQg ZG9uYXRlX3BhZ2UoCiAKICBmYWlsOgogICAgIHNwaW5fdW5sb2NrKCZkLT5wYWdlX2FsbG9jX2xv Y2spOwotICAgIE1FTV9MT0coIkJhZCBkb25hdGUgJWx4OiBlZD0lZCBzZD0lZCBjYWY9JTA4bHgg dGFmPSUiIFBSdHlwZV9pbmZvLAotICAgICAgICAgICAgcGFnZV90b19tZm4ocGFnZSksIGQtPmRv bWFpbl9pZCwKLSAgICAgICAgICAgIG93bmVyID8gb3duZXItPmRvbWFpbl9pZCA6IERPTUlEX0lO VkFMSUQsCi0gICAgICAgICAgICBwYWdlLT5jb3VudF9pbmZvLCBwYWdlLT51LmludXNlLnR5cGVf aW5mbyk7CisgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJCYWQgZG9uYXRlIG1mbiAlIiBQ UklfbWZuCisgICAgICAgICAgICAgIjogZWQ9JWQgc2Q9JWQgY2FmPSUwOGx4IHRhZj0lIiBQUnR5 cGVfaW5mbyAiXG4iLAorICAgICAgICAgICAgIHBhZ2VfdG9fbWZuKHBhZ2UpLCBkLT5kb21haW5f aWQsCisgICAgICAgICAgICAgb3duZXIgPyBvd25lci0+ZG9tYWluX2lkIDogRE9NSURfSU5WQUxJ RCwKKyAgICAgICAgICAgICBwYWdlLT5jb3VudF9pbmZvLCBwYWdlLT51LmludXNlLnR5cGVfaW5m byk7CiAgICAgcmV0dXJuIC0xOwogfQogCkBAIC00NDU5LDEwICs0NTEyLDExIEBAIGludCBzdGVh bF9wYWdlKAogCiAgZmFpbDoKICAgICBzcGluX3VubG9jaygmZC0+cGFnZV9hbGxvY19sb2NrKTsK LSAgICBNRU1fTE9HKCJCYWQgcGFnZSAlbHg6IGVkPSVkIHNkPSVkIGNhZj0lMDhseCB0YWY9JSIg UFJ0eXBlX2luZm8sCi0gICAgICAgICAgICBwYWdlX3RvX21mbihwYWdlKSwgZC0+ZG9tYWluX2lk LAotICAgICAgICAgICAgb3duZXIgPyBvd25lci0+ZG9tYWluX2lkIDogRE9NSURfSU5WQUxJRCwK LSAgICAgICAgICAgIHBhZ2UtPmNvdW50X2luZm8sIHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvKTsK KyAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIkJhZCBtZm4gJSIgUFJJX21mbgorICAgICAg ICAgICAgICI6IGVkPSVkIHNkPSVkIGNhZj0lMDhseCB0YWY9JSIgUFJ0eXBlX2luZm8gIlxuIiwK KyAgICAgICAgICAgICBwYWdlX3RvX21mbihwYWdlKSwgZC0+ZG9tYWluX2lkLAorICAgICAgICAg ICAgIG93bmVyID8gb3duZXItPmRvbWFpbl9pZCA6IERPTUlEX0lOVkFMSUQsCisgICAgICAgICAg ICAgcGFnZS0+Y291bnRfaW5mbywgcGFnZS0+dS5pbnVzZS50eXBlX2luZm8pOwogICAgIHJldHVy biAtMTsKIH0KIApAQCAtNTE5Myw4ICs1MjQ3LDggQEAgc3RhdGljIGludCBwdHdyX2VtdWxhdGVk X3VwZGF0ZSgKICAgICAvKiBPbmx5IGFsbG93IG5hdHVyYWxseS1hbGlnbmVkIHN0b3JlcyB3aXRo aW4gdGhlIG9yaWdpbmFsICVjcjIgcGFnZS4gKi8KICAgICBpZiAoIHVubGlrZWx5KCgoYWRkcl5w dHdyX2N0eHQtPmNyMikgJiBQQUdFX01BU0spIHx8IChhZGRyICYgKGJ5dGVzLTEpKSkgKQogICAg IHsKLSAgICAgICAgTUVNX0xPRygicHR3cl9lbXVsYXRlOiBiYWQgYWNjZXNzIChjcjI9JWx4LCBh ZGRyPSVseCwgYnl0ZXM9JXUpIiwKLSAgICAgICAgICAgICAgICBwdHdyX2N0eHQtPmNyMiwgYWRk ciwgYnl0ZXMpOworICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgImJhZCBhY2Nlc3Mg KGNyMj0lbHgsIGFkZHI9JWx4LCBieXRlcz0ldSlcbiIsCisgICAgICAgICAgICAgICAgIHB0d3Jf Y3R4dC0+Y3IyLCBhZGRyLCBieXRlcyk7CiAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExF QUJMRTsKICAgICB9CiAKQEAgLTUyNTYsNyArNTMxMCw3IEBAIHN0YXRpYyBpbnQgcHR3cl9lbXVs YXRlZF91cGRhdGUoCiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7Ci0gICAgICAg ICAgICBNRU1fTE9HKCJwdHdyX2VtdWxhdGU6IGNvdWxkIG5vdCBnZXRfcGFnZV9mcm9tX2wxZSgp Iik7CisgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgImNvdWxkIG5vdCBnZXRf cGFnZV9mcm9tX2wxZSgpXG4iKTsKICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExF QUJMRTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTUzMTgsOCArNTM3Miw4IEBAIHN0 YXRpYyBpbnQgcHR3cl9lbXVsYXRlZF93cml0ZSgKIAogICAgIGlmICggKGJ5dGVzID4gc2l6ZW9m KHBhZGRyX3QpKSB8fCAoYnl0ZXMgJiAoYnl0ZXMgLSAxKSkgfHwgIWJ5dGVzICkKICAgICB7Ci0g ICAgICAgIE1FTV9MT0coInB0d3JfZW11bGF0ZTogYmFkIHdyaXRlIHNpemUgKGFkZHI9JWx4LCBi eXRlcz0ldSkiLAotICAgICAgICAgICAgICAgIG9mZnNldCwgYnl0ZXMpOworICAgICAgICBnZHBy aW50ayhYRU5MT0dfV0FSTklORywgImJhZCB3cml0ZSBzaXplIChhZGRyPSVseCwgYnl0ZXM9JXUp XG4iLAorICAgICAgICAgICAgICAgICBvZmZzZXQsIGJ5dGVzKTsKICAgICAgICAgcmV0dXJuIFg4 NkVNVUxfVU5IQU5ETEVBQkxFOwogICAgIH0KIApAQCAtNTM0Miw4ICs1Mzk2LDggQEAgc3RhdGlj IGludCBwdHdyX2VtdWxhdGVkX2NtcHhjaGcoCiAKICAgICBpZiAoIChieXRlcyA+IHNpemVvZihw YWRkcl90KSkgfHwgKGJ5dGVzICYgKGJ5dGVzIC0xKSkgKQogICAgIHsKLSAgICAgICAgTUVNX0xP RygicHR3cl9lbXVsYXRlOiBiYWQgY21weGNoZyBzaXplIChhZGRyPSVseCwgYnl0ZXM9JXUpIiwK LSAgICAgICAgICAgICAgICBvZmZzZXQsIGJ5dGVzKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9H X1dBUk5JTkcsICJiYWQgY21weGNoZyBzaXplIChhZGRyPSVseCwgYnl0ZXM9JXUpXG4iLAorICAg ICAgICAgICAgICAgICBvZmZzZXQsIGJ5dGVzKTsKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5I QU5ETEVBQkxFOwogICAgIH0KIApAQCAtNTQ3MSw3ICs1NTI1LDcgQEAgaW50IG1taW9fcm9fZW11 bGF0ZWRfd3JpdGUoCiAgICAgaWYgKCAoKGJ5dGVzIHwgb2Zmc2V0KSAmIChieXRlcyAtIDEpKSB8 fCAhYnl0ZXMgfHwKICAgICAgICAgIG9mZnNldCAhPSBtbWlvX3JvX2N0eHQtPmNyMiApCiAgICAg ewotICAgICAgICBNRU1fTE9HKCJtbWlvX3JvX2VtdWxhdGU6IGJhZCBhY2Nlc3MgKGNyMj0lbHgs IGFkZHI9JWx4LCBieXRlcz0ldSkiLAorICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywg ImJhZCBhY2Nlc3MgKGNyMj0lbHgsIGFkZHI9JWx4LCBieXRlcz0ldSlcbiIsCiAgICAgICAgICAg ICAgICAgbW1pb19yb19jdHh0LT5jcjIsIG9mZnNldCwgYnl0ZXMpOwogICAgICAgICByZXR1cm4g WDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAgICAgfQpAQCAtNTUwMyw3ICs1NTU3LDcgQEAgaW50IG1t Y2ZnX2ludGVyY2VwdF93cml0ZSgKICAgICBpZiAoICgoYnl0ZXMgfCBvZmZzZXQpICYgKGJ5dGVz IC0gMSkpIHx8IGJ5dGVzID4gNCB8fCAhYnl0ZXMgfHwKICAgICAgICAgIG9mZnNldCAhPSBtbWlv X2N0eHQtPmNyMiApCiAgICAgewotICAgICAgICBNRU1fTE9HKCJtbWNmZ19pbnRlcmNlcHQ6IGJh ZCB3cml0ZSAoY3IyPSVseCwgYWRkcj0lbHgsIGJ5dGVzPSV1KSIsCisgICAgICAgIGdkcHJpbnRr KFhFTkxPR19XQVJOSU5HLCAiYmFkIHdyaXRlIChjcjI9JWx4LCBhZGRyPSVseCwgYnl0ZXM9JXUp XG4iLAogICAgICAgICAgICAgICAgIG1taW9fY3R4dC0+Y3IyLCBvZmZzZXQsIGJ5dGVzKTsKICAg ICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogICAgIH0KLS0gCjIuMS40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==