From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Delete upstreamed patches Date: Sun, 31 May 2026 02:07:09 GMT Message-ID: <178019322957.1.7276609337498175504.rpms-ibus-b2f9c21be915@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: b2f9c21be91591730c5c0261ba963ac8d802def3 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiBiMmY5YzIxYmU5MTU5MTczMGM1YzAyNjFiYTk2M2FjOGQ4MDJk ZWYzCkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDE5LTAzLTAxVDIxOjQxOjEyKzA5OjAwClN0YXRzICA6ICswLy00MTIwIGluIDEgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy9iMmY5 YzIxYmU5MTU5MTczMGM1YzAyNjFiYTk2M2FjOGQ4MDJkZWYzP2JyYW5jaD1hdXRvdG9vbAoKTG9n OgpEZWxldGUgdXBzdHJlYW1lZCBwYXRjaGVzCgotLS0KZGlmZiAtLWdpdCBhL2lidXMtSEVBRC5w YXRjaCBiL2lidXMtSEVBRC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjVi NTFmMi4uMDAwMDAwMAotLS0gYS9pYnVzLUhFQUQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0 MTIwICswLDAgQEAKLUZyb20gN2VkYWVmZGMxZDgwYWVmZGJiYzJkYzUyNTI2YzIwNzE1NzU5ZGE4 MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdh cmExQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMjIgQXVnIDIwMTggMTc6MjA6NTMgKzA5MDAKLVN1 YmplY3Q6IFtQQVRDSF0gdWkvZ3RrMzogRG8gbm90IGNsZWFyIHVuaWNvZGUgZGF0YSB3aGVuIGVt b2ppIGFubm90YXRpb24gbGFuZwotIGlzIGNoYW5nZWQKLQotLS0tCi0gdWkvZ3RrMy9lbW9qaWVy LnZhbGEgfCA4ICsrKysrKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3VpL2d0azMvZW1vamllci52YWxhIGIvdWkvZ3Rr My9lbW9qaWVyLnZhbGEKLWluZGV4IDg1ZGNkY2ViLi42MzdhZTA0OSAxMDA2NDQKLS0tLSBhL3Vp L2d0azMvZW1vamllci52YWxhCi0rKysgYi91aS9ndGszL2Vtb2ppZXIudmFsYQotQEAgLTQ0MCwx MyArNDQwLDE3IEBAIHB1YmxpYyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldp bmRvdyB7Ci0gICAgICAgICBtX2Vtb2ppX3RvX2Vtb2ppX3ZhcmlhbnRzX2RpY3QgPQotICAgICAg ICAgICAgICAgICBuZXcgR0xpYi5IYXNoVGFibGU8c3RyaW5nLCBHTGliLlNMaXN0PHN0cmluZz4+ KEdMaWIuc3RyX2hhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR0xpYi5zdHJfZXF1YWwpOwotLSAgICAgICAgbV91bmlj b2RlX3RvX2RhdGFfZGljdCA9Ci0rICAgICAgICBpZiAobV91bmljb2RlX3RvX2RhdGFfZGljdCA9 PSBudWxsKSB7Ci0rICAgICAgICAgICAgbV91bmljb2RlX3RvX2RhdGFfZGljdCA9Ci0gICAgICAg ICAgICAgICAgIG5ldyBHTGliLkhhc2hUYWJsZTx1bmljaGFyLCBJQnVzLlVuaWNvZGVEYXRhPigK LSAgICAgICAgICAgICAgICAgICAgICAgICBHTGliLmRpcmVjdF9oYXNoLAotICAgICAgICAgICAg ICAgICAgICAgICAgIEdMaWIuZGlyZWN0X2VxdWFsKTsKLS0gICAgICAgIG1fbmFtZV90b191bmlj b2Rlc19kaWN0ID0KLSsgICAgICAgIH0KLSsgICAgICAgIGlmIChtX25hbWVfdG9fdW5pY29kZXNf ZGljdCA9PSBudWxsKSB7Ci0rICAgICAgICAgICAgbV9uYW1lX3RvX3VuaWNvZGVzX2RpY3QgPQot ICAgICAgICAgICAgICAgICBuZXcgR0xpYi5IYXNoVGFibGU8c3RyaW5nLCBHTGliLlNMaXN0PHVu aWNoYXI+PihHTGliLnN0cl9oYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGliLnN0cl9lcXVhbCk7Ci0rICAgICAg ICB9Ci0gICAgIH0KLSAKLSAKLS0tIAotMi4xNy4xCi0KLUZyb20gMjhkMjIxNzZhZWU2YmU5N2Q4 OGRkNmM2MGZhNTM5NWM3OTU2M2VjMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1 aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFRodSwgMzAgQXVnIDIw MTggMTI6NTc6MzMgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gdWkvZ3RrMzogRml4IFNFR1Ygd2hl biB0eXBlIEFTQ0lJIG9uIGVtb2ppZXIKLQotRW1vamllciBzdGlsbCBpbmNsdWRlZCBHdGsuRW50 cnksIGFjY2VwdGVkIGtleSBldmVudHMgaW4gV2F5bGFuZCwKLXJlc2V0IHRoZSBsb29rdXAgdGFi bGUgYW5kIGl0IGNhdXNlZCBTRUdWIGJlY2F1c2UgSUJ1cy5UZXh0Ci1pcyBOVUxMIGluIHRoZSBs b29rdXAgdGFibGUgaW4gRW1vamllci5nZXRfY3VycmVudF9jYW5kaWRhdGUoKS4KLU5vdyBHdGsu RW50cnkgaXMgZGVsZXRlZCBjb21wbGV0ZWx5LgotCi1CVUc9cmhieiMxNjE4NjgyCi0tLS0KLSB1 aS9ndGszL2Vtb2ppZXIudmFsYSB8IDEzOSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxMzggZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS91aS9ndGszL2Vtb2ppZXIudmFsYSBiL3VpL2d0azMvZW1v amllci52YWxhCi1pbmRleCA2MzdhZTA0OS4uMGY0NTU4MDAgMTAwNjQ0Ci0tLS0gYS91aS9ndGsz L2Vtb2ppZXIudmFsYQotKysrIGIvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKLUBAIC0yODMsNyArMjgz LDYgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsK LSAKLSAgICAgcHJpdmF0ZSBUaGVtZWRSR0JBIG1fcmdiYTsKLSAgICAgcHJpdmF0ZSBHdGsuQm94 IG1fdmJveDsKLS0gICAgcHJpdmF0ZSBFRW50cnkgbV9lbnRyeTsKLSAgICAgLyogSWYgZW1vamll ciBpcyBlbW9qaSBjYXRlZ29yeSBsaXN0IG9yIFVuaWNvZGUgY2F0ZWdvcnkgbGlzdCwKLSAgICAg ICogbV9hbm5vdGF0aW9uIGlzICIiIGFuZCBwcmVlZGl0IGlzIGFsc28gIiIuCi0gICAgICAqIElm IGVtb2ppZXIgaXMgY2FuZGlkYXRlIG1vZGUsIG1fYW5ub3RhdGlvbiBpcyBhbiBhbm5vdGF0aW9u IGFuZAotQEAgLTM2NywyMyArMzY2LDYgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3Rr LkFwcGxpY2F0aW9uV2luZG93IHsKLSAgICAgICAgIG1fdmJveCA9IG5ldyBHdGsuQm94KEd0ay5P cmllbnRhdGlvbi5WRVJUSUNBTCwgMCk7Ci0gICAgICAgICBhZGQobV92Ym94KTsKLSAKLS0gICAg ICAgIG1fZW50cnkgPSBuZXcgRUVudHJ5KCk7Ci0tICAgICAgICBtX2VudHJ5LnNldF9wbGFjZWhv bGRlcl90ZXh0KF8oIlR5cGUgYW5ub3RhdGlvbiBvciBjaG9vc2UgZW1vamkiKSk7Ci0tICAgICAg ICAvL21fdmJveC5hZGQobV9lbnRyeSk7Ci0tICAgICAgICBtX2VudHJ5LmNoYW5nZWQuY29ubmVj dCgoKSA9PiB7Ci0tICAgICAgICAgICAgdXBkYXRlX2NhbmRpZGF0ZV93aW5kb3coKTsKLS0gICAg ICAgIH0pOwotLSAgICAgICAgbV9lbnRyeS5pY29uX3JlbGVhc2UuY29ubmVjdCgoaWNvbl9wb3Ms IGV2ZW50KSA9PiB7Ci0tICAgICAgICAgICAgaGlkZV9jYW5kaWRhdGVfcGFuZWwoKTsKLS0gICAg ICAgIH0pOwotLQotLSAgICAgICAgLyogU2V0IHRoZSBhY2Nlc3NpYmxlIHJvbGUgb2YgdGhlIGxh YmVsIHRvIGEgc3RhdHVzIGJhciBzbyBpdAotLSAgICAgICAgICogd2lsbCBlbWl0IG5hbWUgY2hh bmdlZCBldmVudHMgdGhhdCBjYW4gYmUgdXNlZCBieSBzY3JlZW4KLS0gICAgICAgICAqIHJlYWRl cnMuCi0tICAgICAgICAgKi8KLS0gICAgICAgIEF0ay5PYmplY3Qgb2JqID0gbV9lbnRyeS5nZXRf YWNjZXNzaWJsZSgpOwotLSAgICAgICAgb2JqLnNldF9yb2xlIChBdGsuUm9sZS5TVEFUVVNCQVIp OwotLQotICAgICAgICAgLy8gVGhlIGNvbnN0cnVjdG9yIG9mIElCdXMuTG9va3VwVGFibGUgZG9l cyBub3Qgc3VwcG9ydCBtb3JlIHRoYW4KLSAgICAgICAgIC8vIDE2IHBhZ2VzLgotICAgICAgICAg bV9sb29rdXBfdGFibGUgPSBuZXcgSUJ1cy5Mb29rdXBUYWJsZSgxLCAwLCB0cnVlLCB0cnVlKTsK LUBAIC0xODA2LDE4ICsxNzg4LDYgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFw cGxpY2F0aW9uV2luZG93IHsKLSAgICAgICAgICAgICAgICAgbV9sb29rdXBfdGFibGUuY3Vyc29y X3VwKCk7Ci0gICAgICAgICAgICAgZWxzZSBpZiAoa2V5dmFsID09IEdkay5LZXkuUmlnaHQpCi0g ICAgICAgICAgICAgICAgIG1fbG9va3VwX3RhYmxlLmN1cnNvcl9kb3duKCk7Ci0tICAgICAgICB9 IGVsc2UgaWYgKG1fZW50cnkuZ2V0X3RleHQoKS5sZW5ndGggPiAwKSB7Ci0tICAgICAgICAgICAg aW50IHN0ZXAgPSAwOwotLSAgICAgICAgICAgIGlmIChrZXl2YWwgPT0gR2RrLktleS5MZWZ0KQot LSAgICAgICAgICAgICAgICBzdGVwID0gLTE7Ci0tICAgICAgICAgICAgZWxzZSBpZiAoa2V5dmFs ID09IEdkay5LZXkuUmlnaHQpCi0tICAgICAgICAgICAgICAgIHN0ZXAgPSAxOwotLSAgICAgICAg ICAgIEdMaWIuU2lnbmFsLmVtaXRfYnlfbmFtZSgKLS0gICAgICAgICAgICAgICAgICAgIG1fZW50 cnksICJtb3ZlLWN1cnNvciIsCi0tICAgICAgICAgICAgICAgICAgICBHdGsuTW92ZW1lbnRTdGVw LlZJU1VBTF9QT1NJVElPTlMsCi0tICAgICAgICAgICAgICAgICAgICBzdGVwLAotLSAgICAgICAg ICAgICAgICAgICAgKG1vZGlmaWVycyAmIEdkay5Nb2RpZmllclR5cGUuU0hJRlRfTUFTSykgIT0g MAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRydWUgOiBmYWxzZSk7Ci0gICAgICAg ICB9IGVsc2UgewotICAgICAgICAgICAgIC8vIEZvciBHZGsuS2V5LmYgYW5kIEdkay5LZXkuYgot ICAgICAgICAgICAgIGlmIChrZXl2YWwgPT0gR2RrLktleS5MZWZ0KQotQEAgLTE4ODAsMjAgKzE4 NTAsNiBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cg ewotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgIH0K LS0gICAgICAgIGlmIChtX2VudHJ5LmdldF90ZXh0KCkubGVuZ3RoID4gMCkgewotLSAgICAgICAg ICAgIGludCBzdGVwID0gMDsKLS0gICAgICAgICAgICBpZiAoa2V5dmFsID09IEdkay5LZXkuSG9t ZSkKLS0gICAgICAgICAgICAgICAgc3RlcCA9IC0xOwotLSAgICAgICAgICAgIGVsc2UgaWYgKGtl eXZhbCA9PSBHZGsuS2V5LkVuZCkKLS0gICAgICAgICAgICAgICAgc3RlcCA9IDE7Ci0tICAgICAg ICAgICAgR0xpYi5TaWduYWwuZW1pdF9ieV9uYW1lKAotLSAgICAgICAgICAgICAgICAgICAgbV9l bnRyeSwgIm1vdmUtY3Vyc29yIiwKLS0gICAgICAgICAgICAgICAgICAgIEd0ay5Nb3ZlbWVudFN0 ZXAuRElTUExBWV9MSU5FX0VORFMsCi0tICAgICAgICAgICAgICAgICAgICBzdGVwLAotLSAgICAg ICAgICAgICAgICAgICAgKG1vZGlmaWVycyAmIEdkay5Nb2RpZmllclR5cGUuU0hJRlRfTUFTSykg IT0gMAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRydWUgOiBmYWxzZSk7Ci0tICAg ICAgICAgICAgcmV0dXJuIHRydWU7Ci0tICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gY2F0ZWdv cnlfbGlzdF9jdXJzb3JfbW92ZShrZXl2YWwpOwotICAgICB9Ci0gCi1AQCAtMTk0MSwyOCArMTg5 Nyw2IEBAIHB1YmxpYyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7 Ci0gICAgIH0KLSAKLSAKLS0gICAgcHJpdmF0ZSB2b2lkIGVudHJ5X2VudGVyX2tleXZhbCh1aW50 IGtleXZhbCkgewotLSAgICAgICAgdW5pY2hhciBjaCA9IElCdXMua2V5dmFsX3RvX3VuaWNvZGUo a2V5dmFsKTsKLS0gICAgICAgIGlmIChjaC5pc2NudHJsKCkpCi0tICAgICAgICAgICAgcmV0dXJu OwotLSAgICAgICAgc3RyaW5nIHN0ciA9IGNoLnRvX3N0cmluZygpOwotLQotLSAgICAgICAgLy8g d2hhdCBndGtfZW50cnlfY29tbWl0X2NiKCkgZG8KLS0gICAgICAgIGlmIChtX2VudHJ5LmdldF9z ZWxlY3Rpb25fYm91bmRzKG51bGwsIG51bGwpKSB7Ci0tICAgICAgICAgICAgbV9lbnRyeS5kZWxl dGVfc2VsZWN0aW9uKCk7Ci0tICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgIGlmIChtX2Vu dHJ5LmdldF9vdmVyd3JpdGVfbW9kZSgpKSB7Ci0tICAgICAgICAgICAgICAgdWludCB0ZXh0X2xl bmd0aCA9IG1fZW50cnkuZ2V0X2J1ZmZlcigpLmdldF9sZW5ndGgoKTsKLS0gICAgICAgICAgICAg ICBpZiAobV9lbnRyeS5jdXJzb3JfcG9zaXRpb24gPCB0ZXh0X2xlbmd0aCkKLS0gICAgICAgICAg ICAgICAgICAgbV9lbnRyeS5kZWxldGVfZnJvbV9jdXJzb3IoR3RrLkRlbGV0ZVR5cGUuQ0hBUlMs IDEpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGludCBwb3MgPSBtX2Vu dHJ5LmdldF9wb3NpdGlvbigpOwotLSAgICAgICAgbV9lbnRyeS5pbnNlcnRfdGV4dChzdHIsIC0x LCByZWYgcG9zKTsKLS0gICAgICAgIG1fZW50cnkuc2V0X3Bvc2l0aW9uKHBvcyk7Ci0tICAgIH0K LS0KLS0KLSAgICAgcHJpdmF0ZSBHZGsuUmVjdGFuZ2xlIGdldF9tb25pdG9yX2dlb21ldHJ5KCkg ewotICAgICAgICAgR2RrLlJlY3RhbmdsZSBtb25pdG9yX2FyZWEgPSB7IDAsIH07Ci0gCi1AQCAt MjI0NSwxMCArMjE3OSw3IEBAIHB1YmxpYyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNh dGlvbldpbmRvdyB7Ci0gICAgICAgICAvKiBMZXQgZ3RrIHJlY2FsY3VsYXRlIHRoZSB3aW5kb3cg c2l6ZS4gKi8KLSAgICAgICAgIHJlc2l6ZSgxLCAxKTsKLSAKLS0gICAgICAgIG1fZW50cnkuc2V0 X3RleHQoIiIpOwotLQotICAgICAgICAgc2hvd19jYXRlZ29yeV9saXN0KCk7Ci0tICAgICAgICBt X2VudHJ5LnNldF9hY3RpdmF0ZXNfZGVmYXVsdCh0cnVlKTsKLSAgICAgICAgIHNob3dfYWxsKCk7 Ci0gCi0gICAgICAgICAvKiBTb21lIHdpbmRvdyBtYW5hZ2VycywgZS5nLiBNQVRFLCBHTk9NRSwg UGxhc21hIGRlc2t0b3BzLAotQEAgLTIyODksMTMgKzIyMjAsNiBAQCBwdWJsaWMgY2xhc3MgSUJ1 c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgewotICAgICAgICAgbV9sb29wLnJ1bigp OwotICAgICAgICAgbV9sb29wID0gbnVsbDsKLSAKLS0gICAgICAgIC8vIE5lZWQgZm9jdXMtb3V0 IG9uIEd0ay5FbnRyeSB0byBzZW5kIHRoZSBlbW9qaSB0byBhcHBsaWNhdGlvbnMuCi0tICAgICAg ICBHZGsuRXZlbnQgZmV2ZW50ID0gbmV3IEdkay5FdmVudChHZGsuRXZlbnRUeXBlLkZPQ1VTX0NI QU5HRSk7Ci0tICAgICAgICBmZXZlbnQuZm9jdXNfY2hhbmdlLmluID0gMDsKLS0gICAgICAgIGZl dmVudC5mb2N1c19jaGFuZ2Uud2luZG93ICA9IGdldF93aW5kb3coKTsKLS0gICAgICAgIG1fZW50 cnkuc2VuZF9mb2N1c19jaGFuZ2UoZmV2ZW50KTsKLS0gICAgICAgIGZldmVudC5mb2N1c19jaGFu Z2Uud2luZG93ICA9IG51bGw7Ci0tCi0gICAgICAgICBoaWRlKCk7Ci0gICAgICAgICAvLyBNYWtl IHN1cmUgdGhlIHN3aXRjaGVyIGlzIGhpZGRlbiBiZWZvcmUgcmV0dXJuaW5nIGZyb20gdGhpcyBm dW5jdGlvbi4KLSAgICAgICAgIHdoaWxlIChHdGsuZXZlbnRzX3BlbmRpbmcoKSkKLUBAIC0yMzU3 LDM2ICsyMjgxLDkgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9u V2luZG93IHsKLSAgICAgICAgICAgICAgICAgaGlkZSgpOwotICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKLS0gICAgICAgIGNhc2UgR2RrLktleS5CYWNrU3BhY2U6Ci0t ICAgICAgICAgICAgaWYgKG1fZW50cnkuZ2V0X3RleHQoKS5sZW5ndGggPiAwKSB7Ci0tICAgICAg ICAgICAgICAgIGlmICgobW9kaWZpZXJzICYgR2RrLk1vZGlmaWVyVHlwZS5DT05UUk9MX01BU0sp ICE9IDApIHsKLS0gICAgICAgICAgICAgICAgICAgIEdMaWIuU2lnbmFsLmVtaXRfYnlfbmFtZSht X2VudHJ5LCAiZGVsZXRlLWZyb20tY3Vyc29yIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHdGsuRGVsZXRlVHlwZS5XT1JEX0VORFMsIC0xKTsKLS0gICAg ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgIEdMaWIuU2lnbmFsLmVt aXRfYnlfbmFtZShtX2VudHJ5LCAiYmFja3NwYWNlIik7Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAg IGJyZWFrOwotLSAgICAgICAgY2FzZSBHZGsuS2V5LkRlbGV0ZToKLS0gICAgICAgIGNhc2UgR2Rr LktleS5LUF9EZWxldGU6Ci0tICAgICAgICAgICAgaWYgKG1fZW50cnkuZ2V0X3RleHQoKS5sZW5n dGggPiAwKSB7Ci0tICAgICAgICAgICAgICAgIGlmICgobW9kaWZpZXJzICYgR2RrLk1vZGlmaWVy VHlwZS5DT05UUk9MX01BU0spICE9IDApIHsKLS0gICAgICAgICAgICAgICAgICAgIEdMaWIuU2ln bmFsLmVtaXRfYnlfbmFtZShtX2VudHJ5LCAiZGVsZXRlLWZyb20tY3Vyc29yIiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdGsuRGVsZXRlVHlwZS5XT1JE X0VORFMsIDEpOwotLSAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAg ICAgR0xpYi5TaWduYWwuZW1pdF9ieV9uYW1lKG1fZW50cnksICJkZWxldGUtZnJvbS1jdXJzb3Ii LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5EZWxl dGVUeXBlLkNIQVJTLCAxKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICBjYXNlIEdkay5LZXkuc3BhY2U6Ci0gICAgICAgICBjYXNlIEdkay5LZXkuS1BfU3BhY2U6Ci0t ICAgICAgICAgICAgaWYgKChtb2RpZmllcnMgJiBHZGsuTW9kaWZpZXJUeXBlLlNISUZUX01BU0sp ICE9IDApIHsKLS0gICAgICAgICAgICAgICAgaWYgKG1fZW50cnkuZ2V0X3RleHQoKS5sZW5ndGgg PiAwKQotLSAgICAgICAgICAgICAgICAgICAgZW50cnlfZW50ZXJfa2V5dmFsKGtleXZhbCk7Ci0t ICAgICAgICAgICAgfSBlbHNlIGlmIChtX2NhbmRpZGF0ZV9wYW5lbF9pc192aXNpYmxlKSB7Ci0r ICAgICAgICAgICAgaWYgKG1fY2FuZGlkYXRlX3BhbmVsX2lzX3Zpc2libGUpIHsKLSAgICAgICAg ICAgICAgICAgZW50ZXJfbm90aWZ5X2Rpc2FibGVfd2l0aF90aW1lcigpOwotICAgICAgICAgICAg ICAgICBtX2xvb2t1cF90YWJsZS5jdXJzb3JfZG93bigpOwotICAgICAgICAgICAgICAgICBzaG93 X2NhbmRpZGF0ZV9wYW5lbCgpOwotQEAgLTI0MzYsMTAgKzIzMzMsNiBAQCBwdWJsaWMgY2xhc3Mg SUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgewotICAgICAgICAgICAgIGtleV9w cmVzc19jdXJzb3JfaG9tZV9lbmQoR2RrLktleS5FbmQsIG1vZGlmaWVycyk7Ci0gICAgICAgICAg ICAgc2hvd19hbGwoKTsKLSAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLS0gICAgICAgIGNhc2Ug R2RrLktleS5JbnNlcnQ6Ci0tICAgICAgICBjYXNlIEdkay5LZXkuS1BfSW5zZXJ0OgotLSAgICAg ICAgICAgIEdMaWIuU2lnbmFsLmVtaXRfYnlfbmFtZShtX2VudHJ5LCAidG9nZ2xlLW92ZXJ3cml0 ZSIpOwotLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgfQotIAotICAgICAgICAg aWYgKChtb2RpZmllcnMgJiBHZGsuTW9kaWZpZXJUeXBlLkNPTlRST0xfTUFTSykgIT0gMCkgewot QEAgLTI0NzAsMjcgKzIzNjMsNiBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBw bGljYXRpb25XaW5kb3cgewotICAgICAgICAgICAgICAgICBrZXlfcHJlc3NfY3Vyc29yX2hvbWVf ZW5kKEdkay5LZXkuRW5kLCBtb2RpZmllcnMpOwotICAgICAgICAgICAgICAgICBzaG93X2FsbCgp OwotICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLS0gICAgICAgICAgICBjYXNlIEdkay5L ZXkudToKLS0gICAgICAgICAgICAgICAgaWYgKG1fZW50cnkuZ2V0X3RleHQoKS5sZW5ndGggPiAw KSB7Ci0tICAgICAgICAgICAgICAgICAgICBHTGliLlNpZ25hbC5lbWl0X2J5X25hbWUobV9lbnRy eSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVsZXRl LWZyb20tY3Vyc29yIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHdGsuRGVsZXRlVHlwZS5QQVJBR1JBUEhfRU5EUywKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtMSk7Ci0tICAgICAgICAgICAgICAgICAgICByZXR1 cm4gdHJ1ZTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBicmVhazsKLS0g ICAgICAgICAgICBjYXNlIEdkay5LZXkuYToKLS0gICAgICAgICAgICAgICAgaWYgKG1fZW50cnku Z2V0X3RleHQoKS5sZW5ndGggPiAwKSB7Ci0tICAgICAgICAgICAgICAgICAgICBtX2VudHJ5LnNl bGVjdF9yZWdpb24oMCwgLTEpOwotLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICAgICAg Y2FzZSBHZGsuS2V5Lng6Ci0tICAgICAgICAgICAgICAgIGlmIChtX2VudHJ5LmdldF90ZXh0KCku bGVuZ3RoID4gMCkgewotLSAgICAgICAgICAgICAgICAgICAgR0xpYi5TaWduYWwuZW1pdF9ieV9u YW1lKG1fZW50cnksICJjdXQtY2xpcGJvYXJkIik7Ci0tICAgICAgICAgICAgICAgICAgICByZXR1 cm4gdHJ1ZTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBicmVhazsKLSAg ICAgICAgICAgICBjYXNlIEdkay5LZXkuQzoKLSAgICAgICAgICAgICBjYXNlIEdkay5LZXkuYzoK LSAgICAgICAgICAgICAgICAgaWYgKChtb2RpZmllcnMgJiBHZGsuTW9kaWZpZXJUeXBlLlNISUZU X01BU0spICE9IDApIHsKLUBAIC0yNTAzLDE5ICsyMzc1LDExIEBAIHB1YmxpYyBjbGFzcyBJQnVz RW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgY2xpcGJvYXJkLnN0b3JlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy dWU7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo bV9lbnRyeS5nZXRfdGV4dCgpLmxlbmd0aCA+IDApIHsKLS0gICAgICAgICAgICAgICAgICAgIEdM aWIuU2lnbmFsLmVtaXRfYnlfbmFtZShtX2VudHJ5LCAiY29weS1jbGlwYm9hcmQiKTsKLS0gICAg ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgIGJyZWFrOwotLSAgICAgICAgICAgIGNhc2UgR2RrLktleS52OgotLSAgICAgICAg ICAgICAgICBHTGliLlNpZ25hbC5lbWl0X2J5X25hbWUobV9lbnRyeSwgInBhc3RlLWNsaXBib2Fy ZCIpOwotLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgfQotLQotLSAgICAgICAgZW50cnlfZW50 ZXJfa2V5dmFsKGtleXZhbCk7Ci0gICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgfQotIAotQEAg LTI1OTUsNyArMjQ1OSw2IEBAIHB1YmxpYyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNh dGlvbldpbmRvdyB7Ci0gCi0gICAgICAgICB1aW50MzIgdGltZXN0YW1wID0gZXZlbnQuZ2V0X3Rp bWUoKTsKLSAgICAgICAgIHByZXNlbnRfd2l0aF90aW1lKHRpbWVzdGFtcCk7Ci0tICAgICAgICBt X2VudHJ5LnNldF9hY3RpdmF0ZXNfZGVmYXVsdCh0cnVlKTsKLSAgICAgfQotIAotIAotLS0gCi0y LjE3LjEKLQotRnJvbSBlNmJhZGI0OTRlMGEzMWI3YWNhM2E1MDc4YTVkYzViMjdiODMzOTBkIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgotRGF0ZTogVGh1LCAzMCBBdWcgMjAxOCAxMjo1Nzo0NiArMDkwMAotU3ViamVj dDogW1BBVENIXSB1aS9ndGszOiBTdXBwb3J0IFNoaWZ0LVNwYWNlIHRvIGluc2VydCBhIFNwYWNl IG9uIEVtb2ppZXIKLSBwcmVlZGl0Ci0KLUltcGxlbWVudGVkIFNoaWZ0LVNwYWNlIG9uIHByZWVk aXQgc2luY2UgU2hpZnQtU3BhY2UgaGFkIHdvcmtlZCBvbgotRW1vamllcidzIEd0a0VudHJ5IGlu IHRoZSBwcmV2aW91cyByZWxlYXNlLgotLS0tCi0gdWkvZ3RrMy9wYW5lbGJpbmRpbmcudmFsYSB8 IDI3ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNl cnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9wYW5lbGJp bmRpbmcudmFsYSBiL3VpL2d0azMvcGFuZWxiaW5kaW5nLnZhbGEKLWluZGV4IDk4MWI1NTA5Li40 ZWJmZjhkYSAxMDA2NDQKLS0tLSBhL3VpL2d0azMvcGFuZWxiaW5kaW5nLnZhbGEKLSsrKyBiL3Vp L2d0azMvcGFuZWxiaW5kaW5nLnZhbGEKLUBAIC01NDgsNiArNTQ4LDE5IEBAIGNsYXNzIFBhbmVs QmluZGluZyA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAgfQotIAotIAotKyAgICBwcml2YXRl IGJvb2wga2V5X3ByZXNzX2tleXZhbCh1aW50IGtleXZhbCkgewotKyAgICAgICAgdW5pY2hhciBj aCA9IElCdXMua2V5dmFsX3RvX3VuaWNvZGUoa2V5dmFsKTsKLSsgICAgICAgIGlmIChjaC5pc2Nu dHJsKCkpCi0rICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSsgICAgICAgIHN0cmluZyBz dHIgPSBjaC50b19zdHJpbmcoKTsKLSsgICAgICAgIG1fcHJlZWRpdC5hcHBlbmRfdGV4dChzdHIp OwotKyAgICAgICAgc3RyaW5nIGFubm90YXRpb24gPSBtX3ByZWVkaXQuZ2V0X3RleHQoKTsKLSsg ICAgICAgIG1fZW1vamllci5zZXRfYW5ub3RhdGlvbihhbm5vdGF0aW9uKTsKLSsgICAgICAgIG1f cHJlZWRpdC5zZXRfZW1vamkoIiIpOwotKyAgICAgICAgcmV0dXJuIHRydWU7Ci0rICAgIH0KLSsK LSsKLSAgICAgcHJpdmF0ZSBib29sIGtleV9wcmVzc19lbnRlcigpIHsKLSAgICAgICAgIGlmICht X2V4dGVuc2lvbl9uYW1lICE9ICJ1bmljb2RlIiAmJiBpc19lbW9qaV9sb29rdXBfdGFibGUoKSkg ewotICAgICAgICAgICAgIC8vIENoZWNrIGlmIHZhcmlhdHMgZXhpc3QKLUBAIC04OTksNiArOTEy LDEyIEBAIGNsYXNzIFBhbmVsQmluZGluZyA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAgICAg ICAgICBicmVhazsKLSAgICAgICAgIGNhc2UgR2RrLktleS5zcGFjZToKLSAgICAgICAgIGNhc2Ug R2RrLktleS5LUF9TcGFjZToKLSsgICAgICAgICAgICBpZiAoKG1vZGlmaWVycyAmIEdkay5Nb2Rp ZmllclR5cGUuU0hJRlRfTUFTSykgIT0gMCkgewotKyAgICAgICAgICAgICAgICBpZiAoIWtleV9w cmVzc19rZXl2YWwoa2V5dmFsKSkKLSsgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot KyAgICAgICAgICAgICAgICBzaG93X2NhbmRpZGF0ZSA9IGlzX2Vtb2ppX2xvb2t1cF90YWJsZSgp OwotKyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg c2hvd19jYW5kaWRhdGUgPSBrZXlfcHJlc3Nfc3BhY2UoKTsKLSAgICAgICAgICAgICBpZiAobV9l eHRlbnNpb25fbmFtZSA9PSAidW5pY29kZSIpIHsKLSAgICAgICAgICAgICAgICAga2V5X3ByZXNz X2VudGVyKCk7Ci1AQCAtOTc5LDE0ICs5OTgsOCBAQCBjbGFzcyBQYW5lbEJpbmRpbmcgOiBJQnVz LlBhbmVsU2VydmljZSB7Ci0gICAgICAgICAgICAgICAgIHNob3dfY2FuZGlkYXRlID0ga2V5X3By ZXNzX2NvbnRyb2xfa2V5dmFsKGtleXZhbCwgbW9kaWZpZXJzKTsKLSAgICAgICAgICAgICAgICAg YnJlYWs7Ci0gICAgICAgICAgICAgfQotLSAgICAgICAgICAgIHVuaWNoYXIgY2ggPSBJQnVzLmtl eXZhbF90b191bmljb2RlKGtleXZhbCk7Ci0tICAgICAgICAgICAgaWYgKGNoLmlzY250cmwoKSkK LSsgICAgICAgICAgICBpZiAoIWtleV9wcmVzc19rZXl2YWwoa2V5dmFsKSkKLSAgICAgICAgICAg ICAgICAgcmV0dXJuIHRydWU7Ci0tICAgICAgICAgICAgc3RyaW5nIHN0ciA9IGNoLnRvX3N0cmlu ZygpOwotLSAgICAgICAgICAgIG1fcHJlZWRpdC5hcHBlbmRfdGV4dChzdHIpOwotLSAgICAgICAg ICAgIHN0cmluZyBhbm5vdGF0aW9uID0gbV9wcmVlZGl0LmdldF90ZXh0KCk7Ci0tICAgICAgICAg ICAgbV9lbW9qaWVyLnNldF9hbm5vdGF0aW9uKGFubm90YXRpb24pOwotLSAgICAgICAgICAgIG1f cHJlZWRpdC5zZXRfZW1vamkoIiIpOwotICAgICAgICAgICAgIHNob3dfY2FuZGlkYXRlID0gaXNf ZW1vamlfbG9va3VwX3RhYmxlKCk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0t LSAKLTIuMTcuMQotCi1Gcm9tIDgwOWQ4ODAzMzdlNzViN2NlZTQyOTI5MmEyMzhiZjUzODk5YmVm NmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDMwIEF1ZyAyMDE4IDEyOjU4OjU3ICswOTAwCi1T dWJqZWN0OiBbUEFUQ0hdIHVpL2d0azM6IERvIG5vdCBtb3ZlIEVtb2ppZXIgcG9wdXAgd2l0aCB0 aGUgYWN0aXZlCi0gY2FuZGlkYXRlIGluIFhvcmcKLQotUHJvYmFibHkgSSB0aGluayBpdCdzIG5v dCB1c2VmdWwgdG8gY2hhbmdlIHRoZSBwb3B1cCBwb3NpdGlvbiBmcmVxdWVudGx5LgotVGhlIHBv cHVwIHNpemUgaXMgYWx3YXlzIHNsaWdodGx5IGNoYW5nZWQgd2l0aCB0aGUgZW1vamkgYW5ub3Rh dGlvbiBsZW5ndGguCi0tLS0KLSB1aS9ndGszL2Vtb2ppZXIudmFsYSB8IDEwICsrKysrKysrKy0K LSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYg LS1naXQgYS91aS9ndGszL2Vtb2ppZXIudmFsYSBiL3VpL2d0azMvZW1vamllci52YWxhCi1pbmRl eCAwZjQ1NTgwMC4uOTgxMWZkZTUgMTAwNjQ0Ci0tLS0gYS91aS9ndGszL2Vtb2ppZXIudmFsYQot KysrIGIvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKLUBAIC0xOTQ0LDcgKzE5NDQsMTUgQEAgcHVibGlj IGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKLSAgICAgICAgICAg ICB4ID0gMDsKLSAKLSAgICAgICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwotLSAgICAgICAgaWYg KHdpbmRvd19yaWdodF9ib3R0b20ueSA+IG1vbml0b3JfYm90dG9tKSB7Ci0rICAgICAgICAvLyBE byBub3QgdXAgc2lkZSBkb3duIGZyZXF1ZW50bHkuCi0rICAgICAgICAvLyBUaGUgZmlyc3QgcG9z IGRvZXMgbm90IHNob3cgdGhlIGxvb2t1cCB0YWJsZSB5ZXQgYnV0IHRoZQotKyAgICAgICAgLy8g cHJlZWRpdCBvbmx5IGFuZCB0aGUgc2Vjb25kIHBvcyBzaG93cyB0aGUgbG9va3VwIHRhYmxlLgot KyAgICAgICAgaWYgKG1fbG9va3VwX3RhYmxlLmdldF9jdXJzb3JfcG9zKCkgIT0gMSkgewotKyAg ICAgICAgICAgIGlmIChtX2lzX3VwX3NpZGVfZG93bikKLSsgICAgICAgICAgICAgICAgeSA9IG1f Y3Vyc29yX2xvY2F0aW9uLnkgLSBhbGxvY2F0aW9uLmhlaWdodDsKLSsgICAgICAgICAgICBlbHNl Ci0rICAgICAgICAgICAgICAgIHkgPSBjdXJzb3JfcmlnaHRfYm90dG9tLnk7Ci0rICAgICAgICB9 IGVsc2UgaWYgKHdpbmRvd19yaWdodF9ib3R0b20ueSA+IG1vbml0b3JfYm90dG9tKSB7Ci0gICAg ICAgICAgICAgeSA9IG1fY3Vyc29yX2xvY2F0aW9uLnkgLSBhbGxvY2F0aW9uLmhlaWdodDsKLSAg ICAgICAgICAgICAvLyBEbyBub3QgdXAgc2lkZSBkb3duIGluIFdheWxhbmQKLSAgICAgICAgICAg ICBpZiAobV9pbnB1dF9jb250ZXh0X3BhdGggPT0gIiIpIHsKLS0tIAotMi4xNy4xCi0KLUZyb20g MWM2NTY1ZTIwNTUyOGE0NWU4OGE4NGJhMmEzMjhmOTAzNTg3NWM4ZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURh dGU6IEZyaSwgMTQgU2VwIDIwMTggMTY6MTU6NDEgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gdWkv Z3RrMzogRml4IFNFR1Ygd2hlbiBjb21taXQgYW4gZW1vamkgb24gRW1vamllciBpbiBXYXlsYW5k Ci0KLUp1c3QgcHJlc3NpbmcgU3BhY2Uga2V5IHdpdGhvdXQgZW1vamkgYW5ub3RhdGlvbnMgY2Fu IGxhdW5jaCBFbW9qaWVyCi1wb3B1cCBhbmQgdGhlIHBvcHVwIHRha2VzIGEgZm9jdXMgaW4gV2F5 bGFuZCBhbmQgdGhlIGNob3NlbiBlbW9qaSBpcwotb3V0cHV0IHdoZW4gdGhlIG9yaWdpbmFsIHRl eHQgYXBwbGljYXRpb24gZ2V0cyB0aGUgZm9jdXMgYWZ0ZXIgRW1vamllcgotcG9wdXAgcmVsZWFz ZSB0aGUgZm9jdXMuIEVtb2ppZXIgZGlzYWJsZWQgQ3RybC1TaGlmdC1lIGFmdGVyIGdvdCB0aGUg Zm9jdXMuCi1CdXQgY3VycmVudGx5IEdOT01FIFdheWxhbmQgaGFzIGEgYnVnIG5vdCB0byBzZW5k IGZvY3VzLWluIHVudGlsIGEKLWtleSBwcmVzcyBvciBtb3VzZSBjbGljayBoYXBwZW5zIFsxXSBh bmQgRW1vamllciBjYXVzZXMgYSBTRUdWLgotTm93IEVtb2ppZXIgZGlzYWJsZXMgQ3RybC1TaGlm dC1lIGltbWVkaWF0ZWx5IHdoZW4gYW4gZW1vamkgaXMgY2hvc2VuCi13aGV0aGVyIGZvY3VzLWlu IGNvbWVzIG9yIG5vdCBhbmQgZml4ZXMgdGhlIFNFR1YuCi0KLVsxXSBodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwvaXNzdWVzLzU3MwotCi1CVUc9cmhieiMxNjI1MTg3 Ci0tLS0KLSB1aS9ndGszL2Vtb2ppZXIudmFsYSAgICAgIHwgNjMgKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB1aS9ndGszL2Vtb2ppZXJhcHAudmFsYSAgIHwgIDIgKy0K LSB1aS9ndGszL3BhbmVsYmluZGluZy52YWxhIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tCi0gMyBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA3NCBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3VpL2d0azMvZW1vamllci52YWxhIGIvdWkvZ3Rr My9lbW9qaWVyLnZhbGEKLWluZGV4IDk4MTFmZGU1Li5lMjNlZjg4OSAxMDA2NDQKLS0tLSBhL3Vp L2d0azMvZW1vamllci52YWxhCi0rKysgYi91aS9ndGszL2Vtb2ppZXIudmFsYQotQEAgLTIxLDE3 ICsyMSw2IEBACi0gICovCi0gCi0gcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxp Y2F0aW9uV2luZG93IHsKLS0gICAgcHJpdmF0ZSBjbGFzcyBFRW50cnkgOiBHdGsuU2VhcmNoRW50 cnkgewotLSAgICAgICAgcHVibGljIEVFbnRyeSgpIHsKLS0gICAgICAgICAgICBHTGliLk9iamVj dCgKLS0gICAgICAgICAgICAgICAgbmFtZSA6ICJJQnVzRW1vamllckVudHJ5IiwKLS0gICAgICAg ICAgICAgICAgbWFyZ2luX3N0YXJ0IDogNiwKLS0gICAgICAgICAgICAgICAgbWFyZ2luX2VuZCA6 IDYsCi0tICAgICAgICAgICAgICAgIG1hcmdpbl90b3AgOiA2LAotLSAgICAgICAgICAgICAgICBt YXJnaW5fYm90dG9tIDogNgotLSAgICAgICAgICAgICk7Ci0tICAgICAgICB9Ci0tICAgIH0KLSAg ICAgcHJpdmF0ZSBjbGFzcyBFTGlzdEJveCA6IEd0ay5MaXN0Qm94IHsKLSAgICAgICAgIHB1Ymxp YyBFTGlzdEJveCgpIHsKLSAgICAgICAgICAgICBHTGliLk9iamVjdCgKLUBAIC0zMzAsNiArMzE5 LDcgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsK LSAgICAgcHJpdmF0ZSB1aW50IG1fcmVkcmF3X3dpbmRvd19pZDsKLSAKLSAgICAgcHVibGljIHNp Z25hbCB2b2lkIGNhbmRpZGF0ZV9jbGlja2VkKHVpbnQgaW5kZXgsIHVpbnQgYnV0dG9uLCB1aW50 IHN0YXRlKTsKLSsgICAgcHVibGljIHNpZ25hbCB2b2lkIGNvbW1pdF90ZXh0KHN0cmluZyB0ZXh0 KTsKLSAKLSAgICAgcHVibGljIElCdXNFbW9qaWVyKCkgewotICAgICAgICAgR0xpYi5PYmplY3Qo Ci1AQCAtMzgwLDEyICszNzAsNiBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBw bGljYXRpb25XaW5kb3cgewotICAgICAgICAgICAgIGFkanVzdF93aW5kb3dfcG9zaXRpb24oKTsK LSAgICAgICAgIH0pOwotIAotLSAgICAgICAgY2FuZGlkYXRlX2NsaWNrZWQuY29ubmVjdCgoaSwg YiwgcykgPT4gewotLSAgICAgICAgICAgIGlmIChtX2lucHV0X2NvbnRleHRfcGF0aCAhPSAiIikK LS0gICAgICAgICAgICAgICAgY2FuZGlkYXRlX3BhbmVsX3NlbGVjdF9pbmRleChpLCBiKTsKLS0g ICAgICAgIH0pOwotLQotLQotICAgICAgICAgaWYgKG1fYW5ub3RhdGlvbl90b19lbW9qaXNfZGlj dCA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgcmVsb2FkX2Vtb2ppX2RpY3QoKTsKLSAgICAgICAg IH0KLUBAIC0xNjQxLDM0ICsxNjI1LDYgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3Rr LkFwcGxpY2F0aW9uV2luZG93IHsKLSAgICAgfQotIAotIAotLSAgICBwcml2YXRlIHZvaWQgY2Fu ZGlkYXRlX3BhbmVsX3NlbGVjdF9pbmRleCh1aW50IGluZGV4LAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGJ1dHRvbikgewotLSAgICAgICAgaWYg KGJ1dHRvbiA9PSBCVVRUT05fQ0xPU0VfQlVUVE9OKSB7Ci0tICAgICAgICAgICAgaGlkZSgpOwot LSAgICAgICAgICAgIGlmIChtX2NhbmRpZGF0ZV9wYW5lbF9tb2RlICYmCi0tICAgICAgICAgICAg ICAgIG1fbG9va3VwX3RhYmxlLmdldF9udW1iZXJfb2ZfY2FuZGlkYXRlcygpID4gMCkgewotLSAg ICAgICAgICAgICAgICAvLyBDYWxsIHJlbW92ZV9hbGxfY2hpbGRyZW4oKSBpbnN0ZWFkIG9mIHNo b3dfY2F0ZWdvcnlfbGlzdCgpCi0tICAgICAgICAgICAgICAgIC8vIHNvIHRoYXQgc2hvd19jYXRl Z29yeV9saXN0IGRvIG5vdCByZW1vdmUgY2hpbGRyZW4gd2l0aAotLSAgICAgICAgICAgICAgICAv LyBQYWdlVXAvUGFnZURvd24uCi0tICAgICAgICAgICAgICAgIHJlbW92ZV9hbGxfY2hpbGRyZW4o KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgbV9yZXN1bHQgPSAiIjsKLS0gICAgICAg ICAgICByZXR1cm47Ci0tICAgICAgICB9Ci0tICAgICAgICBzdHJpbmcgdGV4dCA9IG1fbG9va3Vw X3RhYmxlLmdldF9jYW5kaWRhdGUoaW5kZXgpLnRleHQ7Ci0tICAgICAgICB1bm93bmVkIEdMaWIu U0xpc3Q8c3RyaW5nPj8gZW1vamlzID0KLS0gICAgICAgICAgICAgICAgbV9lbW9qaV90b19lbW9q aV92YXJpYW50c19kaWN0Lmxvb2t1cCh0ZXh0KTsKLS0gICAgICAgIGlmIChtX3Nob3dfZW1vamlf dmFyaWFudCAmJiBlbW9qaXMgIT0gbnVsbCAmJgotLSAgICAgICAgICAgIG1fYmFja3dhcmRfaW5k ZXggPCAwKSB7Ci0tICAgICAgICAgICAgc2hvd19lbW9qaV92YXJpYW50cyhlbW9qaXMpOwotLSAg ICAgICAgICAgIHNob3dfYWxsKCk7Ci0tICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgIG1f cmVzdWx0ID0gdGV4dDsKLS0gICAgICAgICAgICBoaWRlKCk7Ci0tICAgICAgICB9Ci0tICAgIH0K LS0KLS0KLSAgICAgcHJpdmF0ZSB2b2lkIGNhbmRpZGF0ZV9wYW5lbF9jdXJzb3JfZG93bigpIHsK LSAgICAgICAgIGVudGVyX25vdGlmeV9kaXNhYmxlX3dpdGhfdGltZXIoKTsKLSAgICAgICAgIHVp bnQgbmNhbmRpZGF0ZXMgPSBtX2xvb2t1cF90YWJsZS5nZXRfbnVtYmVyX29mX2NhbmRpZGF0ZXMo KTsKLUBAIC0xNzYyLDcgKzE3MTgsOCBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsu QXBwbGljYXRpb25XaW5kb3cgewotICAgICB9Ci0gCi0gCi0tICAgIHB1YmxpYyBib29sIGhhc192 YXJpYW50cyh1aW50IGluZGV4KSB7Ci0rICAgIHB1YmxpYyBib29sIGhhc192YXJpYW50cyh1aW50 IGluZGV4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBuZWVkX2NvbW1pdF9z aWduYWwpIHsKLSAgICAgICAgIGlmIChpbmRleCA+PSBtX2xvb2t1cF90YWJsZS5nZXRfbnVtYmVy X29mX2NhbmRpZGF0ZXMoKSkKLSAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICBz dHJpbmcgdGV4dCA9IG1fbG9va3VwX3RhYmxlLmdldF9jYW5kaWRhdGUoaW5kZXgpLnRleHQ7Ci1A QCAtMTc3Myw2ICsxNzMwLDEwIEBAIHB1YmxpYyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBs aWNhdGlvbldpbmRvdyB7Ci0gICAgICAgICAgICAgc2hvd19lbW9qaV92YXJpYW50cyhlbW9qaXMp OwotICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgfQotKyAgICAgICAgaWYgKG1f aW5wdXRfY29udGV4dF9wYXRoICE9ICIiKQotKyAgICAgICAgICAgIG1fcmVzdWx0ID0gdGV4dDsK LSsgICAgICAgIGlmIChuZWVkX2NvbW1pdF9zaWduYWwpCi0rICAgICAgICAgICAgY29tbWl0X3Rl eHQodGV4dCk7Ci0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLSAKLUBAIC0xODgxLDEw ICsxODQyLDEwIEBAIHB1YmxpYyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldp bmRvdyB7Ci0gICAgIH0KLSAKLSAKLS0gICAgcHVibGljIGJvb2wga2V5X3ByZXNzX2VudGVyKCkg ewotKyAgICBwdWJsaWMgYm9vbCBrZXlfcHJlc3NfZW50ZXIoYm9vbCBuZWVkX2NvbW1pdF9zaWdu YWwpIHsKLSAgICAgICAgIGlmIChtX2NhbmRpZGF0ZV9wYW5lbF9pc192aXNpYmxlKSB7Ci0gICAg ICAgICAgICAgdWludCBpbmRleCA9IG1fbG9va3VwX3RhYmxlLmdldF9jdXJzb3JfcG9zKCk7Ci0t ICAgICAgICAgICAgcmV0dXJuIGhhc192YXJpYW50cyhpbmRleCk7Ci0rICAgICAgICAgICAgcmV0 dXJuIGhhc192YXJpYW50cyhpbmRleCwgbmVlZF9jb21taXRfc2lnbmFsKTsKLSAgICAgICAgIH0g ZWxzZSBpZiAobV9jYXRlZ29yeV9hY3RpdmVfaW5kZXggPj0gMCkgewotICAgICAgICAgICAgIEd0 ay5MaXN0Qm94Um93IGd0a3JvdyA9IG1fbGlzdF9ib3guZ2V0X3NlbGVjdGVkX3JvdygpOwotICAg ICAgICAgICAgIEVCb3hSb3cgcm93ID0gZ3Rrcm93IGFzIEVCb3hSb3c7Ci1AQCAtMjI4MiwxMiAr MjI0MywxMCBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5k b3cgewotICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgY2FzZSBHZGsuS2V5LlJl dHVybjoKLSAgICAgICAgIGNhc2UgR2RrLktleS5LUF9FbnRlcjoKLS0gICAgICAgICAgICBpZiAo a2V5X3ByZXNzX2VudGVyKCkpIHsKLSsgICAgICAgICAgICBpZiAoa2V5X3ByZXNzX2VudGVyKHRy dWUpKQotICAgICAgICAgICAgICAgICBzaG93X2FsbCgpOwotLSAgICAgICAgICAgIH0gZWxzZSB7 Ci0tICAgICAgICAgICAgICAgIG1fcmVzdWx0ID0gZ2V0X2N1cnJlbnRfY2FuZGlkYXRlKCk7Ci0r ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICBoaWRlKCk7Ci0tICAgICAgICAgICAg fQotICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgY2FzZSBHZGsuS2V5LnNwYWNl OgotICAgICAgICAgY2FzZSBHZGsuS2V5LktQX1NwYWNlOgotZGlmZiAtLWdpdCBhL3VpL2d0azMv ZW1vamllcmFwcC52YWxhIGIvdWkvZ3RrMy9lbW9qaWVyYXBwLnZhbGEKLWluZGV4IDc4N2Q0NDhm Li5mYWI5OWQ5ZSAxMDA2NDQKLS0tLSBhL3VpL2d0azMvZW1vamllcmFwcC52YWxhCi0rKysgYi91 aS9ndGszL2Vtb2ppZXJhcHAudmFsYQotQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljIGNsYXNzIEVt b2ppQXBwbGljYXRpb24gOiBHdGsuQXBwbGljYXRpb24gewotICAgICAgICAgdWludCBuY2FuZGlk YXRlcyA9IG1fZW1vamllci5nZXRfbnVtYmVyX29mX2NhbmRpZGF0ZXMoKTsKLSAgICAgICAgIGlm IChuY2FuZGlkYXRlcyA+IDAgJiYgbmNhbmRpZGF0ZXMgPj0gaW5kZXgpIHsKLSAgICAgICAgICAg ICBtX2Vtb2ppZXIuc2V0X2N1cnNvcl9wb3MoaW5kZXgpOwotLSAgICAgICAgICAgIHNob3dfY2Fu ZGlkYXRlID0gbV9lbW9qaWVyLmhhc192YXJpYW50cyhpbmRleCk7Ci0rICAgICAgICAgICAgc2hv d19jYW5kaWRhdGUgPSBtX2Vtb2ppZXIuaGFzX3ZhcmlhbnRzKGluZGV4LCBmYWxzZSk7Ci0gICAg ICAgICB9IGVsc2UgewotICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0KLWRpZmYgLS1n aXQgYS91aS9ndGszL3BhbmVsYmluZGluZy52YWxhIGIvdWkvZ3RrMy9wYW5lbGJpbmRpbmcudmFs YQotaW5kZXggNGViZmY4ZGEuLjAxYzQzYjBkIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9wYW5lbGJp bmRpbmcudmFsYQotKysrIGIvdWkvZ3RrMy9wYW5lbGJpbmRpbmcudmFsYQotQEAgLTQ0NywxMyAr NDQ3LDE5IEBAIGNsYXNzIFBhbmVsQmluZGluZyA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAg fQotIAotIAotLSAgICBwcml2YXRlIHZvaWQgY29tbWl0X3RleHRfdXBkYXRlX2Zhdm9yaXRlcyhJ QnVzLlRleHQgdGV4dCkgewotKyAgICBwcml2YXRlIHZvaWQgY29tbWl0X3RleHRfdXBkYXRlX2Zh dm9yaXRlcyhJQnVzLlRleHQgdGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCAgICAgIGRpc2FibGVfZXh0ZW5zaW9uKSB7Ci0gICAgICAgICBj b21taXRfdGV4dCh0ZXh0KTsKLS0gICAgICAgIElCdXMuRXh0ZW5zaW9uRXZlbnQgZXZlbnQgPSBu ZXcgSUJ1cy5FeHRlbnNpb25FdmVudCgKLSsKLSsgICAgICAgIC8vIElmIGRpc2FibGVfZXh0ZW5z aW9uIGlzIGZhbHNlLCB0aGUgZXh0ZW5zaW9uIGV2ZW50IGlzIGFscmVhZHkKLSsgICAgICAgIC8v IHNlbnQgYmVmb3JlIHRoZSBmb2N1cy1pbiBpcyByZWNlaXZlZC4KLSsgICAgICAgIGlmIChkaXNh YmxlX2V4dGVuc2lvbikgewotKyAgICAgICAgICAgIElCdXMuRXh0ZW5zaW9uRXZlbnQgZXZlbnQg PSBuZXcgSUJ1cy5FeHRlbnNpb25FdmVudCgKLSAgICAgICAgICAgICAgICAgICAgICJuYW1lIiwg bV9leHRlbnNpb25fbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICJpcy1lbmFibGVkIiwgZmFs c2UsCi0gICAgICAgICAgICAgICAgICAgICAiaXMtZXh0ZW5zaW9uIiwgdHJ1ZSk7Ci0tICAgICAg ICBwYW5lbF9leHRlbnNpb24oZXZlbnQpOwotKyAgICAgICAgICAgIHBhbmVsX2V4dGVuc2lvbihl dmVudCk7Ci0rICAgICAgICB9Ci0gICAgICAgICBzdHJpbmcgY29tbWl0dGVkX3N0cmluZyA9IHRl eHQudGV4dDsKLSAgICAgICAgIHN0cmluZyBwcmVlZGl0X3N0cmluZyA9IG1fcHJlZWRpdC5nZXRf dGV4dCgpOwotICAgICAgICAgbV9wcmVlZGl0LmhpZGUoKTsKLUBAIC00ODIsNyArNDg4LDcgQEAg Y2xhc3MgUGFuZWxCaW5kaW5nIDogSUJ1cy5QYW5lbFNlcnZpY2UgewotICAgICAgICAgICAgIHBy ZXZfY29udGV4dF9wYXRoICE9ICIiICYmCi0gICAgICAgICAgICAgcHJldl9jb250ZXh0X3BhdGgg PT0gbV9jdXJyZW50X2NvbnRleHRfcGF0aCkgewotICAgICAgICAgICAgIElCdXMuVGV4dCB0ZXh0 ID0gbmV3IElCdXMuVGV4dC5mcm9tX3N0cmluZyhzZWxlY3RlZF9zdHJpbmcpOwotLSAgICAgICAg ICAgIGNvbW1pdF90ZXh0X3VwZGF0ZV9mYXZvcml0ZXModGV4dCk7Ci0rICAgICAgICAgICAgY29t bWl0X3RleHRfdXBkYXRlX2Zhdm9yaXRlcyh0ZXh0LCBmYWxzZSk7Ci0gICAgICAgICAgICAgbV9l bW9qaWVyLnJlc2V0KCk7Ci0gICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICB9Ci1A QCAtNTY0LDEzICs1NzAsMTMgQEAgY2xhc3MgUGFuZWxCaW5kaW5nIDogSUJ1cy5QYW5lbFNlcnZp Y2UgewotICAgICBwcml2YXRlIGJvb2wga2V5X3ByZXNzX2VudGVyKCkgewotICAgICAgICAgaWYg KG1fZXh0ZW5zaW9uX25hbWUgIT0gInVuaWNvZGUiICYmIGlzX2Vtb2ppX2xvb2t1cF90YWJsZSgp KSB7Ci0gICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdmFyaWF0cyBleGlzdAotLSAgICAgICAgICAg IGlmIChtX2Vtb2ppZXIua2V5X3ByZXNzX2VudGVyKCkpIHsKLSsgICAgICAgICAgICBpZiAobV9l bW9qaWVyLmtleV9wcmVzc19lbnRlcihmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICAgY29udmVy dF9wcmVlZGl0X3RleHQoKTsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg ICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgSUJ1cy5UZXh0IHRleHQgPSBtX3ByZWVkaXQu Z2V0X2NvbW1pdF90ZXh0KCk7Ci0tICAgICAgICBjb21taXRfdGV4dF91cGRhdGVfZmF2b3JpdGVz KHRleHQpOwotKyAgICAgICAgY29tbWl0X3RleHRfdXBkYXRlX2Zhdm9yaXRlcyh0ZXh0LCB0cnVl KTsKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotIAotQEAgLTcxMiwxNSArNzE4LDEw IEBAIGNsYXNzIFBhbmVsQmluZGluZyA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAgfQotIAot IAotLSAgICBwcml2YXRlIGJvb2wgaXNfdmlzaWJsZV93YXlsYW5kX2xvb2t1cF90YWJsZSgpIHsK LS0gICAgICAgIHJldHVybiBtX3dheWxhbmRfbG9va3VwX3RhYmxlX2lzX3Zpc2libGU7Ci0tICAg IH0KLS0KLS0KLSAgICAgcHJpdmF0ZSB2b2lkIGhpZGVfZW1vamlfbG9va3VwX3RhYmxlKCkgewot ICAgICAgICAgaWYgKG1fZW1vamllciA9PSBudWxsKQotICAgICAgICAgICAgIHJldHVybjsKLS0g ICAgICAgIGlmIChtX2lzX3dheWxhbmQpCi0rICAgICAgICBpZiAobV93YXlsYW5kX2xvb2t1cF90 YWJsZV9pc192aXNpYmxlKQotICAgICAgICAgICAgIGhpZGVfd2F5bGFuZF9sb29rdXBfdGFibGUo KTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICBtX2Vtb2ppZXIuaGlkZSgpOwotQEAgLTc0 Nyw3ICs3NDgsNyBAQCBjbGFzcyBQYW5lbEJpbmRpbmcgOiBJQnVzLlBhbmVsU2VydmljZSB7Ci0g Ci0gICAgIHByaXZhdGUgYm9vbCBpc19lbW9qaV9sb29rdXBfdGFibGUoKSB7Ci0gICAgICAgICBp ZiAobV9pc193YXlsYW5kKQotLSAgICAgICAgICAgIHJldHVybiBpc192aXNpYmxlX3dheWxhbmRf bG9va3VwX3RhYmxlKCk7Ci0rICAgICAgICAgICAgcmV0dXJuIG1fd2F5bGFuZF9sb29rdXBfdGFi bGVfaXNfdmlzaWJsZTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICByZXR1cm4gbV9lbW9q aWVyLmdldF92aXNpYmxlKCk7Ci0gICAgIH0KLUBAIC03ODgsNyArNzg5LDggQEAgY2xhc3MgUGFu ZWxCaW5kaW5nIDogSUJ1cy5QYW5lbFNlcnZpY2UgewotICAgICAgICAgICovCi0gICAgICAgICBp ZiAoIWlucHV0X2NvbnRleHRfcGF0aC5oYXNfc3VmZml4KCJJbnB1dENvbnRleHRfMSIpKSB7Ci0g ICAgICAgICAgICAgbV9yZWFsX2N1cnJlbnRfY29udGV4dF9wYXRoID0gbV9jdXJyZW50X2NvbnRl eHRfcGF0aDsKLS0gICAgICAgICAgICB0aGlzLmVtb2ppZXJfZm9jdXNfY29tbWl0KCk7Ci0rICAg ICAgICAgICAgaWYgKG1faXNfd2F5bGFuZCkKLSsgICAgICAgICAgICAgICAgdGhpcy5lbW9qaWVy X2ZvY3VzX2NvbW1pdCgpOwotICAgICAgICAgfQotICAgICB9Ci0gCi1AQCAtODIyLDggKzgyNCwx OCBAQCBjbGFzcyBQYW5lbEJpbmRpbmcgOiBJQnVzLlBhbmVsU2VydmljZSB7Ci0gICAgICAgICAg ICAgLy8gRm9yIHRpdGxlIGhhbmRsaW5nIGluIGdub21lLXNoZWxsCi0gICAgICAgICAgICAgbV9h cHBsaWNhdGlvbi5hZGRfd2luZG93KG1fZW1vamllcik7Ci0gICAgICAgICAgICAgbV9lbW9qaWVy LmNhbmRpZGF0ZV9jbGlja2VkLmNvbm5lY3QoKGksIGIsIHMpID0+IHsKLSsgICAgICAgICAgICAg ICAgY2FuZGlkYXRlX2NsaWNrZWRfbG9va3VwX3RhYmxlX3JlYWwoaSwgYiwgcywgdHJ1ZSk7Ci0r ICAgICAgICAgICAgfSk7Ci0rICAgICAgICAgICAgbV9lbW9qaWVyLmNvbW1pdF90ZXh0LmNvbm5l Y3QoKHMpID0+IHsKLSAgICAgICAgICAgICAgICAgaWYgKCFtX2lzX3dheWxhbmQpCi0tICAgICAg ICAgICAgICAgICAgICBjYW5kaWRhdGVfY2xpY2tlZF9sb29rdXBfdGFibGUoaSwgYiwgcyk7Ci0r ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0rICAgICAgICAgICAgICAgIC8vIEN1cnJlbnRs eSBlbW9qaWVyIGhhcyBhIGZvY3VzIGJ1dCB0aGUgdGV4dCBpbnB1dCBmb2N1cwotKyAgICAgICAg ICAgICAgICAvLyBkb2VzIG5vdCBhbmQgY29tbWl0IHRoZSB0ZXh0IGxhdGVyLgotKyAgICAgICAg ICAgICAgICBJQnVzLkV4dGVuc2lvbkV2ZW50IGNsb3NlX2V2ZW50ID0gbmV3IElCdXMuRXh0ZW5z aW9uRXZlbnQoCi0rICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiLCBtX2V4dGVuc2lvbl9u YW1lLAotKyAgICAgICAgICAgICAgICAgICAgICAgICJpcy1lbmFibGVkIiwgZmFsc2UsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgImlzLWV4dGVuc2lvbiIsIHRydWUpOwotKyAgICAgICAgICAg ICAgICBwYW5lbF9leHRlbnNpb24oY2xvc2VfZXZlbnQpOwotICAgICAgICAgICAgIH0pOwotICAg ICAgICAgfQotICAgICAgICAgbV9lbW9qaWVyLnJlc2V0KCk7Ci1AQCAtMTA0MSw5ICsxMDUzLDEw IEBAIGNsYXNzIFBhbmVsQmluZGluZyA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAgICAgIHNo b3dfcHJlZWRpdF9hbmRfY2FuZGlkYXRlKHNob3dfY2FuZGlkYXRlKTsKLSAgICAgfQotIAotLSAg ICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBjYW5kaWRhdGVfY2xpY2tlZF9sb29rdXBfdGFibGUodWlu dCBpbmRleCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQgYnV0dG9uLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludCBzdGF0ZSkgewotKyAgICBwcml2YXRlIHZvaWQg Y2FuZGlkYXRlX2NsaWNrZWRfbG9va3VwX3RhYmxlX3JlYWwodWludCBpbmRleCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgYnV0dG9u LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludCBzdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgaXNfZW1vamllcikgewotICAgICAgICAgaWYgKGJ1dHRvbiA9PSBJQnVz RW1vamllci5CVVRUT05fQ0xPU0VfQlVUVE9OKSB7Ci0gICAgICAgICAgICAgbV9lbmFibGVfZXh0 ZW5zaW9uID0gZmFsc2U7Ci0gICAgICAgICAgICAgaGlkZV9lbW9qaV9sb29rdXBfdGFibGUoKTsK LUBAIC0xMDYxLDE3ICsxMDc0LDI2IEBAIGNsYXNzIFBhbmVsQmluZGluZyA6IElCdXMuUGFuZWxT ZXJ2aWNlIHsKLSAgICAgICAgIHVpbnQgbmNhbmRpZGF0ZXMgPSBtX2Vtb2ppZXIuZ2V0X251bWJl cl9vZl9jYW5kaWRhdGVzKCk7Ci0gICAgICAgICBpZiAobmNhbmRpZGF0ZXMgPiAwICYmIG5jYW5k aWRhdGVzID49IGluZGV4KSB7Ci0gICAgICAgICAgICAgbV9lbW9qaWVyLnNldF9jdXJzb3JfcG9z KGluZGV4KTsKLS0gICAgICAgICAgICBzaG93X2NhbmRpZGF0ZSA9IG1fZW1vamllci5oYXNfdmFy aWFudHMoaW5kZXgpOwotLSAgICAgICAgICAgIG1fcHJlZWRpdC5zZXRfZW1vamkobV9lbW9qaWVy LmdldF9jdXJyZW50X2NhbmRpZGF0ZSgpKTsKLSsgICAgICAgICAgICBib29sIG5lZWRfY29tbWl0 X3NpZ25hbCA9IG1faXNfd2F5bGFuZCAmJiBpc19lbW9qaWVyOwotKyAgICAgICAgICAgIHNob3df Y2FuZGlkYXRlID0gbV9lbW9qaWVyLmhhc192YXJpYW50cyhpbmRleCwgbmVlZF9jb21taXRfc2ln bmFsKTsKLSsgICAgICAgICAgICBpZiAoIW1faXNfd2F5bGFuZCkKLSsgICAgICAgICAgICAgICAg bV9wcmVlZGl0LnNldF9lbW9qaShtX2Vtb2ppZXIuZ2V0X2N1cnJlbnRfY2FuZGlkYXRlKCkpOwot ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9Ci0gICAg ICAgICBpZiAoIXNob3dfY2FuZGlkYXRlKSB7Ci0gICAgICAgICAgICAgSUJ1cy5UZXh0IHRleHQg PSBtX3ByZWVkaXQuZ2V0X2NvbW1pdF90ZXh0KCk7Ci0tICAgICAgICAgICAgY29tbWl0X3RleHRf dXBkYXRlX2Zhdm9yaXRlcyh0ZXh0KTsKLSAgICAgICAgICAgICBoaWRlX2Vtb2ppX2xvb2t1cF90 YWJsZSgpOwotKyAgICAgICAgICAgIGlmICghaXNfZW1vamllciB8fCAhbV9pc193YXlsYW5kKQot KyAgICAgICAgICAgICAgICBjb21taXRfdGV4dF91cGRhdGVfZmF2b3JpdGVzKHRleHQsIHRydWUp OwotICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0KLSAgICAgICAgIHNob3dfcHJlZWRp dF9hbmRfY2FuZGlkYXRlKHNob3dfY2FuZGlkYXRlKTsKLSAgICAgfQotKwotKyAgICBwdWJsaWMg b3ZlcnJpZGUgdm9pZCBjYW5kaWRhdGVfY2xpY2tlZF9sb29rdXBfdGFibGUodWludCBpbmRleCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQgYnV0dG9uLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludCBzdGF0ZSkgewotKyAgICAgICAgY2FuZGlkYXRlX2NsaWNrZWRf bG9va3VwX3RhYmxlX3JlYWwoaW5kZXgsIGJ1dHRvbiwgc3RhdGUsIGZhbHNlKTsKLSsgICAgfQot IH0KLS0tIAotMi4xNy4xCi0KLUZyb20gYThlOGI2OTRkY2I1MmU0YmViMzY3ZGZmMWU4ZWNhYWNh NGY2M2MwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8u ZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMyBPY3QgMjAxOCAxNzowMTo1OSArMDkw MAotU3ViamVjdDogW1BBVENIXSBkYXRhL2Rjb25mOiBEZWxldGUgZGNvbmYgZGVwZW5kZW5jaWVz Ci0KLWdzZXR0aW5ncy1zY2hlbWEtY29udmVydCBoYXMgbm90IHdvcmtlZCB3aXRoIHB5dGhvbjMg c2luY2UgR0NvbmYKLWhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgMjAxMSBzbyB3ZSBjYW5ub3Qg ZGlzYWJsZSBweXRob24yCi1pbiBjYW5zZSBHQ29uZiBpcyBlbmFibGVkLgotSSBkb24ndCB3aXNo IHRvIG1haW50YWluIGJvdGggaWJ1cy5zY2hlbWFzLmluIGFuZAotb3JnLmZyZWVkZXNrdG9wLmli dXMuZ3NjaGVtYS54bWwuaW4gYW5kIG5vdyBkZWNpZGUgdG8gZGVsZXRlCi13aG9sZSB0aGUgR0Nv bmYgYnVpbGRzLgotZ3NldHRpbmdzIGlzIG5vdyBzdGFibGUgYW5kIGNhbiBiZSB1c2VkIGluc3Rl YWQuCi1pYnVzLWRjb25mIHdpbGwgYmUgZGVwZXJlY2F0ZWQgaW4gdGhlIG5lYXIgZnV0dXJlLgot Ci1CVUc9aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTMzNAot LS0tCi0gY29uZi9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5 ICstCi0gY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI5 IC0tLQotIGRhdGEvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy NSArLQotIGRhdGEvZGNvbmYvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICB8ICAg NiAtCi0gLi4uL2Rjb25mL29yZy5mcmVlZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sICAgIHwgMjI1 ICsrKysrKysrKysrKysrKysrKwotIDUgZmlsZXMgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMoKyks IDY3IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL2Rjb25mL29yZy5mcmVl ZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sCi0KLWRpZmYgLS1naXQgYS9jb25mL01ha2VmaWxlLmFt IGIvY29uZi9NYWtlZmlsZS5hbQotaW5kZXggZWZhODY0OTkuLjI2ZjZlMmFiIDEwMDY0NAotLS0t IGEvY29uZi9NYWtlZmlsZS5hbQotKysrIGIvY29uZi9NYWtlZmlsZS5hbQotQEAgLTMsNyArMyw3 IEBACi0gIyBpYnVzIC0gVGhlIElucHV0IEJ1cwotICMKLSAjIENvcHlyaWdodCAoYykgMjAwNy0y MDEwIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSMgQ29weXJpZ2h0IChj KSAyMDA3LTIwMTAgUmVkIEhhdCwgSW5jLgotKyMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTggUmVk IEhhdCwgSW5jLgotICMKLSAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0yMCwxMiArMjAsNiBAQAotICMgRm91 bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN QSAgMDIxMTAtMTMwMQotICMgVVNBCi0gCi0taWYgRU5BQkxFX0dDT05GCi0tR0NPTkZfRElSID0g XAotLQlnY29uZiBcCi0tCSQoTlVMTCkKLS1lbmRpZgotLQotIE1FTUNPTkZfRElSID0gXAotIAlt ZW1jb25mIFwKLSAJJChOVUxMKQotQEAgLTM4LDcgKzMyLDYgQEAgZW5kaWYKLSAKLSBTVUJESVJT ID0gXAotIAkkKERDT05GX0RJUikgXAotLQkkKEdDT05GX0RJUikgXAotIAkkKE1FTUNPTkZfRElS KSBcCi0gCSQoTlVMTCkKLSAKLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUu YWMKLWluZGV4IDRiNmE3YTIxLi4wZTkzMzdhNyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwot KysrIGIvY29uZmlndXJlLmFjCi1AQCAtMzM5LDMzICszMzksNiBAQCBQS0dfQ0hFQ0tfTU9EVUxF UyhEQlVTLCBbCi0gICAgIGRidXMtMQotIF0pCi0gCi0tIyAtLWVuYWJsZS1nY29uZiBvcHRpb24u Ci0tQUNfQVJHX0VOQUJMRShnY29uZiwKLS0gICAgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWdj b25mXSwKLS0gICAgICAgICAgICAgICAgICAgW1VzZSBHQ29uZiBjb2RlXSksCi0tICAgIFtlbmFi bGVfZ2NvbmY9JGVuYWJsZXZhbF0sCi0tICAgIFtlbmFibGVfZ2NvbmY9bm9dCi0tKQotLUFNX0NP TkRJVElPTkFMKFtFTkFCTEVfR0NPTkZdLCBbdGVzdCB4IiRlbmFibGVfZ2NvbmYiID0geCJ5ZXMi XSkKLS0KLS1pZiB0ZXN0IHgiJGVuYWJsZV9nY29uZiIgPSB4InllcyI7IHRoZW4KLS0gICAgIyBj aGVjayBnY29uZgotLSAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhHQ09ORiwKLS0gICAgICAgIFtnY29u Zi0yLjAgPj0gMi4xMl0sCi0tICAgICkKLS0KLS0gICAgQUNfUEFUSF9QUk9HKEdDT05GVE9PTCwg Z2NvbmZ0b29sLTIsIG5vKQotLSAgICBpZiB0ZXN0IHgiJEdDT05GVE9PTCIgPSB4bm87IHRoZW4K LS0gICAgICAgIEFDX01TR19FUlJPUihbZ2NvbmZ0b29sLTIgZXhlY3V0YWJsZSBub3QgZm91bmQg aW4geW91ciBwYXRoIC0gc2hvdWxkIGJlIGluc3RhbGxlZCB3aXRoIEdDb25mXSkKLS0gICAgZmkK LS0KLS0gICAgQU1fR0NPTkZfU09VUkNFXzIKLS0gICAgIyBHQ09ORl9TQ0hFTUFTX0lOU1RBTEwg c2hvdWxkIGJlIHNldCBpbiBtYWNybyBBTV9HQ09ORl9TT1VSQ0VfMgotLWVsc2UKLS0gICAgQU1f Q09ORElUSU9OQUwoW0dDT05GX1NDSEVNQVNfSU5TVEFMTF0sIFtmYWxzZV0pCi0tICAgIGVuYWJs ZV9nY29uZj0ibm8gKGRpc2FibGVkLCB1c2UgLS1lbmFibGUtZ2NvbmYgdG8gZW5hYmxlKSIKLS1m aQotLQotICMgLS1lbmFibGUtbWVtY29uZiBvcHRpb24uCi0gQUNfQVJHX0VOQUJMRShtZW1jb25m LAotICAgICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbWVtY29uZl0sCi1AQCAtNzcxLDcgKzc0 NCw2IEBAIGJpbmRpbmdzL01ha2VmaWxlCi0gYmluZGluZ3MvcHlnb2JqZWN0L01ha2VmaWxlCi0g YmluZGluZ3MvdmFsYS9NYWtlZmlsZQotIGNvbmYvTWFrZWZpbGUKLS1jb25mL2djb25mL01ha2Vm aWxlCi0gY29uZi9kY29uZi9NYWtlZmlsZQotIGNvbmYvbWVtY29uZi9NYWtlZmlsZQotIHRvb2xz L01ha2VmaWxlCi1AQCAtNzk4LDcgKzc3MCw2IEBAIEJ1aWxkIG9wdGlvbnM6Ci0gICBCdWlsZCBh cHBpbmRpY2F0b3Igc3VwcG9ydCAgICAkZW5hYmxlX2FwcGluZGljYXRvcgotICAgQnVpbGQgYXBw aW5kaWNhdG9yIGVuZ2luZSBpY29uICRlbmFibGVfYXBwaW5kaWNhdG9yX2VuZ2luZV9pY29uCi0g ICBCdWlsZCBweXRob24gbGlicmFyeSAgICAgICAgICAkZW5hYmxlX3B5dGhvbl9saWJyYXJ5Ci0t ICBCdWlsZCBnY29uZiBtb2R1bGVzICAgICAgICAgICAkZW5hYmxlX2djb25mCi0gICBCdWlsZCBt ZW1jb25mIG1vZHVsZXMgICAgICAgICAkZW5hYmxlX21lbWNvbmYKLSAgIEJ1aWxkIGRjb25mIG1v ZHVsZXMgICAgICAgICAgICRlbmFibGVfZGNvbmYKLSAgIEJ1aWxkIGludHJvc3BlY3Rpb24gICAg ICAgICAgICRmb3VuZF9pbnRyb3NwZWN0aW9uCi1kaWZmIC0tZ2l0IGEvZGF0YS9NYWtlZmlsZS5h bSBiL2RhdGEvTWFrZWZpbGUuYW0KLWluZGV4IGQ5ZDYxM2ZlLi4yNTMzZjQ0NCAxMDA2NDQKLS0t LSBhL2RhdGEvTWFrZWZpbGUuYW0KLSsrKyBiL2RhdGEvTWFrZWZpbGUuYW0KLUBAIC0zLDcgKzMs NyBAQAotICMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAjCi0gIyBDb3B5cmlnaHQgKGMpIDIwMDct MjAxNiBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0jIENvcHlyaWdodCAo YykgMjAwNy0yMDE2IFJlZCBIYXQsIEluYy4KLSsjIENvcHlyaWdodCAoYykgMjAwNy0yMDE4IFJl ZCBIYXQsIEluYy4KLSAjCi0gIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtMzAsMjcgKzMwLDQgQEAgaWYgRU5B QkxFX0RDT05GCi0gU1VCRElSUyArPSBkY29uZgotIGVuZGlmCi0gCi0tc2NoZW1hc2RpciA9ICQo R0NPTkZfU0NIRU1BX0ZJTEVfRElSKQotLXNjaGVtYXNfaW5fZmlsZXMgPSBpYnVzLnNjaGVtYXMu aW4KLS1zY2hlbWFzX0RBVEEgPSAkKHNjaGVtYXNfaW5fZmlsZXM6LnNjaGVtYXMuaW49LnNjaGVt YXMpCi0tQElOVExUT09MX1NDSEVNQVNfUlVMRUAKLS0KLS1pbnN0YWxsLWRhdGEtbG9jYWw6Ci0t aWYgR0NPTkZfU0NIRU1BU19JTlNUQUxMCi0tCWlmIHRlc3QgLXogIiQoREVTVERJUikiIDsgdGhl biBcCi0tCQlmb3IgcCBpbiAkKHNjaGVtYXNfREFUQSkgOyBkbyBcCi0tCQkJR0NPTkZfQ09ORklH X1NPVVJDRT0kKEdDT05GX1NDSEVNQV9DT05GSUdfU09VUkNFKSAkKEdDT05GVE9PTCkgXAotLQkJ CQktLW1ha2VmaWxlLWluc3RhbGwtcnVsZSAkKHRvcF9idWlsZGRpcikvZGF0YS8kJHAgPiYxID4g L2Rldi9udWxsOyBcCi0tCQlkb25lIFwKLS0JZmkKLS1lbmRpZgotLQotLUVYVFJBX0RJU1QgPSBc Ci0tCSQoc2NoZW1hc19pbl9maWxlcykgXAotLQkkKE5VTEwpCi0tCi0tRElTVENMRUFORklMRVMg PSBcCi0tCSQoc2NoZW1hc19EQVRBKSBcCi0tCSQoTlVMTCkKLS0KLSAtaW5jbHVkZSAkKHRvcF9z cmNkaXIpL2dpdC5tawotZGlmZiAtLWdpdCBhL2RhdGEvZGNvbmYvTWFrZWZpbGUuYW0gYi9kYXRh L2Rjb25mL01ha2VmaWxlLmFtCi1pbmRleCA0MzNkOTkzNy4uNGFjMWUzYTYgMTAwNjQ0Ci0tLS0g YS9kYXRhL2Rjb25mL01ha2VmaWxlLmFtCi0rKysgYi9kYXRhL2Rjb25mL01ha2VmaWxlLmFtCi1A QCAtMzQsMTEgKzM0LDYgQEAgZGNvbmZwcm9maWxlX0RBVEEgPSBwcm9maWxlL2lidXMKLSBkY29u ZmRiZGlyID0gJChzeXNjb25mZGlyKS9kY29uZi9kYi9pYnVzLmQKLSBkY29uZmRiX0RBVEEgPSAw MC11cHN0cmVhbS1zZXR0aW5ncwotIAotLW9yZy5mcmVlZGVza3RvcC5pYnVzLmdzY2hlbWEueG1s LmluOiAkKHRvcF9zcmNkaXIpL2RhdGEvaWJ1cy5zY2hlbWFzLmluCi0tCSQoQU1fVl9HRU4pIGdz ZXR0aW5ncy1zY2hlbWEtY29udmVydCAtLWZvcmNlIC0tZ2NvbmYgLS14bWwgXAotLQkJLS1zY2hl bWEtaWQgIm9yZy5mcmVlZGVza3RvcC5pYnVzIiBcCi0tCQktLW91dHB1dCAkQCAkPAotLQotIDAw LXVwc3RyZWFtLXNldHRpbmdzOiAkKHNyY2RpcikvbWFrZS1kY29uZi1vdmVycmlkZS1kYi5zaCB8 ICQoZ3NldHRpbmdzX1NDSEVNQVMpCi0gCUAkKE1LRElSX1ApIGRiCi0gCSQoQU1fVl9HRU4pICQo c3JjZGlyKS9tYWtlLWRjb25mLW92ZXJyaWRlLWRiLnNoID4gJEAgfHwgXAotQEAgLTc1LDcgKzcw LDYgQEAgQ0xFQU5GSUxFUyA9IFwKLSAgICAgJChOVUxMKQotIAotIE1BSU5UQUlORVJDTEVBTkZJ TEVTID0gXAotLSAgICAkKGdzZXR0aW5nc19zY2hlbWFzX2luX2ZpbGVzKSBcCi0gICAgIDAwLXVw c3RyZWFtLXNldHRpbmdzIFwKLSAgICAgJChOVUxMKQotIAotZGlmZiAtLWdpdCBhL2RhdGEvZGNv bmYvb3JnLmZyZWVkZXNrdG9wLmlidXMuZ3NjaGVtYS54bWwgYi9kYXRhL2Rjb25mL29yZy5mcmVl ZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAw MDAwMDAuLmNiZTcxMThlCi0tLS0gL2Rldi9udWxsCi0rKysgYi9kYXRhL2Rjb25mL29yZy5mcmVl ZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sCi1AQCAtMCwwICsxLDIyNSBAQAotKzw/eG1sIHZlcnNp b249IjEuMCI/PgotKzxzY2hlbWFsaXN0PgotKyAgPHNjaGVtYSBpZD0ib3JnLmZyZWVkZXNrdG9w LmlidXMiIHBhdGg9Ii9kZXNrdG9wL2lidXMvIj4KLSsgICAgPGNoaWxkIG5hbWU9ImdlbmVyYWwi IHNjaGVtYT0ib3JnLmZyZWVkZXNrdG9wLmlidXMuZ2VuZXJhbCIvPgotKyAgICA8Y2hpbGQgbmFt ZT0icGFuZWwiIHNjaGVtYT0ib3JnLmZyZWVkZXNrdG9wLmlidXMucGFuZWwiLz4KLSsgIDwvc2No ZW1hPgotKyAgPHNjaGVtYSBpZD0ib3JnLmZyZWVkZXNrdG9wLmlidXMuZ2VuZXJhbCIgcGF0aD0i L2Rlc2t0b3AvaWJ1cy9nZW5lcmFsLyI+Ci0rICAgIDxrZXkgbmFtZT0icHJlbG9hZC1lbmdpbmVz IiB0eXBlPSJhcyI+Ci0rICAgICAgPGRlZmF1bHQ+W108L2RlZmF1bHQ+Ci0rICAgICAgPHN1bW1h cnk+UHJlbG9hZCBlbmdpbmVzPC9zdW1tYXJ5PgotKyAgICAgIDxkZXNjcmlwdGlvbj5QcmVsb2Fk IGVuZ2luZXMgZHVyaW5nIGlidXMgc3RhcnRzIHVwPC9kZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+ Ci0rICAgIDxrZXkgbmFtZT0iZW5naW5lcy1vcmRlciIgdHlwZT0iYXMiPgotKyAgICAgIDxkZWZh dWx0PltdPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PkVuZ2luZXMgb3JkZXI8L3N1bW1hcnk+ Ci0rICAgICAgPGRlc2NyaXB0aW9uPlNhdmVkIGVuZ2luZXMgb3JkZXIgaW4gaW5wdXQgbWV0aG9k IGxpc3Q8L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJzd2l0Y2hl ci1kZWxheS10aW1lIiB0eXBlPSJpIj4KLSsgICAgICA8ZGVmYXVsdD40MDA8L2RlZmF1bHQ+Ci0r ICAgICAgPHN1bW1hcnk+UG9wdXAgZGVsYXkgbWlsbGlzZWNvbmRzIGZvciBJTUUgc3dpdGNoZXIg d2luZG93PC9zdW1tYXJ5PgotKyAgICAgIDxkZXNjcmlwdGlvbj5TZXQgcG9wdXAgZGVsYXkgbWls bGlzZWNvbmRzIHRvIHNob3cgSU1FIHN3aXRjaGVyIHdpbmRvdy4gVGhlIGRlZmF1bHQgaXMgNDAw LiAwID0gU2hvdyB0aGUgd2luZG93IGltbWVkaWF0ZWx5LiAwICZsdDsgRGVsYXkgbWlsbGlzZWNv bmRzLiAwICZndDsgRG8gbm90IHNob3cgdGhlIHdpbmRvdyBhbmQgc3dpdGNoIHByZXYvbmV4dCBl bmdpbmVzLjwvZGVzY3JpcHRpb24+Ci0rICAgIDwva2V5PgotKyAgICA8a2V5IG5hbWU9InZlcnNp b24iIHR5cGU9InMiPgotKyAgICAgIDxkZWZhdWx0PicnPC9kZWZhdWx0PgotKyAgICAgIDxzdW1t YXJ5PlNhdmVkIHZlcnNpb24gbnVtYmVyPC9zdW1tYXJ5PgotKyAgICAgIDxkZXNjcmlwdGlvbj5U aGUgc2F2ZWQgdmVyc2lvbiBudW1iZXIgd2lsbCBiZSB1c2VkIHRvIGNoZWNrIHRoZSBkaWZmZXJl bmNlIGJldHdlZW4gdGhlIHZlcnNpb24gb2YgdGhlIHByZXZpb3VzIGluc3RhbGxlZCBpYnVzIGFu ZCBvbmUgb2YgdGhlIGN1cnJlbnQgaWJ1cy48L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsg ICAgPGtleSBuYW1lPSJ4a2ItbGF0aW4tbGF5b3V0cyIgdHlwZT0iYXMiPgotKyAgICAgIDxkZWZh dWx0PlsgJ2FyYScsICdiZycsICdjeicsICdkZXYnLCAnZ3InLCAnZ3VyJywgJ2luJywgJ2pwKGth bmEpJywgJ21hbCcsICdta2QnLCAncnUnLCAndWEnIF08L2RlZmF1bHQ+Ci0rICAgICAgPHN1bW1h cnk+TGF0aW4gbGF5b3V0cyB3aGljaCBoYXZlIG5vIEFTQ0lJPC9zdW1tYXJ5PgotKyAgICAgIDxk ZXNjcmlwdGlvbj5VUyBsYXlvdXQgaXMgYXBwZW5kZWQgdG8gdGhlIExhdGluIGxheW91dHMuIHZh cmlhbnQgY2FuIGJlIG9taXR0ZWQuPC9kZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+Ci0rICAgIDxr ZXkgbmFtZT0idXNlLXhtb2RtYXAiIHR5cGU9ImIiPgotKyAgICAgIDxkZWZhdWx0PnRydWU8L2Rl ZmF1bHQ+Ci0rICAgICAgPHN1bW1hcnk+VXNlIHhtb2RtYXA8L3N1bW1hcnk+Ci0rICAgICAgPGRl c2NyaXB0aW9uPlJ1biB4bW9kbWFwIGlmIC54bW9kbWFwIG9yIC5YbW9kbWFwIGV4aXN0cyB3aGVu IGlidXMgZW5naW5lcyBhcmUgc3dpdGNoZWQuPC9kZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+Ci0r ICAgIDxrZXkgbmFtZT0idXNlLXN5c3RlbS1rZXlib2FyZC1sYXlvdXQiIHR5cGU9ImIiPgotKyAg ICAgIDxkZWZhdWx0PmZhbHNlPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PlVzZSBzeXN0ZW0g a2V5Ym9hcmQgbGF5b3V0PC9zdW1tYXJ5PgotKyAgICAgIDxkZXNjcmlwdGlvbj5Vc2Ugc3lzdGVt IGtleWJvYXJkIChYS0IpIGxheW91dDwvZGVzY3JpcHRpb24+Ci0rICAgIDwva2V5PgotKyAgICA8 a2V5IG5hbWU9ImVtYmVkLXByZWVkaXQtdGV4dCIgdHlwZT0iYiI+Ci0rICAgICAgPGRlZmF1bHQ+ dHJ1ZTwvZGVmYXVsdD4KLSsgICAgICA8c3VtbWFyeT5FbWJlZCBQcmVlZGl0IFRleHQ8L3N1bW1h cnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPkVtYmVkIFByZWVkaXQgVGV4dCBpbiBBcHBsaWNhdGlv biBXaW5kb3c8L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJ1c2Ut Z2xvYmFsLWVuZ2luZSIgdHlwZT0iYiI+Ci0rICAgICAgPGRlZmF1bHQ+dHJ1ZTwvZGVmYXVsdD4K LSsgICAgICA8c3VtbWFyeT5Vc2UgZ2xvYmFsIGlucHV0IG1ldGhvZDwvc3VtbWFyeT4KLSsgICAg ICA8ZGVzY3JpcHRpb24+U2hhcmUgdGhlIHNhbWUgaW5wdXQgbWV0aG9kIGFtb25nIGFsbCBhcHBs aWNhdGlvbnM8L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJlbmFi bGUtYnktZGVmYXVsdCIgdHlwZT0iYiI+Ci0rICAgICAgPGRlZmF1bHQ+ZmFsc2U8L2RlZmF1bHQ+ Ci0rICAgICAgPHN1bW1hcnk+RW5hYmxlIGlucHV0IG1ldGhvZCBieSBkZWZhdWx0PC9zdW1tYXJ5 PgotKyAgICAgIDxkZXNjcmlwdGlvbj5FbmFibGUgaW5wdXQgbWV0aG9kIGJ5IGRlZmF1bHQgd2hl biB0aGUgYXBwbGljYXRpb24gZ2V0cyBpbnB1dCBmb2N1czwvZGVzY3JpcHRpb24+Ci0rICAgIDwv a2V5PgotKyAgICA8a2V5IG5hbWU9ImRjb25mLXByZXNlcnZlLW5hbWUtcHJlZml4ZXMiIHR5cGU9 ImFzIj4KLSsgICAgICA8ZGVmYXVsdD5bICcvZGVza3RvcC9pYnVzL2VuZ2luZS9waW55aW4nLCAn L2Rlc2t0b3AvaWJ1cy9lbmdpbmUvYm9wb21vZm8nLCAnL2Rlc2t0b3AvaWJ1cy9lbmdpbmUvaGFu Z3VsJyBdPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PkRDb25mIHByZXNlcnZlIG5hbWUgcHJl Zml4ZXM8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPlByZWZpeGVzIG9mIERDb25mIGtl eXMgdG8gc3RvcCBuYW1lIGNvbnZlcnNpb248L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsg ICAgPGNoaWxkIG5hbWU9ImhvdGtleSIgc2NoZW1hPSJvcmcuZnJlZWRlc2t0b3AuaWJ1cy5nZW5l cmFsLmhvdGtleSIvPgotKyAgPC9zY2hlbWE+Ci0rICA8c2NoZW1hIGlkPSJvcmcuZnJlZWRlc2t0 b3AuaWJ1cy5nZW5lcmFsLmhvdGtleSIgcGF0aD0iL2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL2hvdGtl eS8iPgotKyAgICA8a2V5IG5hbWU9InRyaWdnZXIiIHR5cGU9ImFzIj4KLSsgICAgICA8ZGVmYXVs dD5bICdDb250cm9sK3NwYWNlJywgJ1plbmtha3VfSGFua2FrdScsICdBbHQrS2FuamknLCAnQWx0 K2dyYXZlJywgJ0hhbmd1bCcsICdBbHQrUmVsZWFzZStBbHRfUicgXTwvZGVmYXVsdD4KLSsgICAg ICA8c3VtbWFyeT5UcmlnZ2VyIHNob3J0Y3V0IGtleXM8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2Ny aXB0aW9uPlRoZSBzaG9ydGN1dCBrZXlzIGZvciB0dXJuaW5nIGlucHV0IG1ldGhvZCBvbiBvciBv ZmY8L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJ0cmlnZ2VycyIg dHlwZT0iYXMiPgotKyAgICAgIDxkZWZhdWx0PlsgJyZsdDtTdXBlciZndDtzcGFjZScgXTwvZGVm YXVsdD4KLSsgICAgICA8c3VtbWFyeT5UcmlnZ2VyIHNob3J0Y3V0IGtleXMgZm9yIGd0a19hY2Nl bGVyYXRvcl9wYXJzZTwvc3VtbWFyeT4KLSsgICAgICA8ZGVzY3JpcHRpb24+VGhlIHNob3J0Y3V0 IGtleXMgZm9yIHR1cm5pbmcgaW5wdXQgbWV0aG9kIG9uIG9yIG9mZjwvZGVzY3JpcHRpb24+Ci0r ICAgIDwva2V5PgotKyAgICA8a2V5IG5hbWU9ImVuYWJsZS11bmNvbmRpdGlvbmFsIiB0eXBlPSJh cyI+Ci0rICAgICAgPGRlZmF1bHQ+W108L2RlZmF1bHQ+Ci0rICAgICAgPHN1bW1hcnk+RW5hYmxl IHNob3J0Y3V0IGtleXM8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPlRoZSBzaG9ydGN1 dCBrZXlzIGZvciB0dXJuaW5nIGlucHV0IG1ldGhvZCBvbjwvZGVzY3JpcHRpb24+Ci0rICAgIDwv a2V5PgotKyAgICA8a2V5IG5hbWU9ImRpc2FibGUtdW5jb25kaXRpb25hbCIgdHlwZT0iYXMiPgot KyAgICAgIDxkZWZhdWx0PltdPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PkRpc2FibGUgc2hv cnRjdXQga2V5czwvc3VtbWFyeT4KLSsgICAgICA8ZGVzY3JpcHRpb24+VGhlIHNob3J0Y3V0IGtl eXMgZm9yIHR1cm5pbmcgaW5wdXQgbWV0aG9kIG9mZjwvZGVzY3JpcHRpb24+Ci0rICAgIDwva2V5 PgotKyAgICA8a2V5IG5hbWU9Im5leHQtZW5naW5lIiB0eXBlPSJhcyI+Ci0rICAgICAgPGRlZmF1 bHQ+WyAnQWx0K1NoaWZ0X0wnIF08L2RlZmF1bHQ+Ci0rICAgICAgPHN1bW1hcnk+TmV4dCBlbmdp bmUgc2hvcnRjdXQga2V5czwvc3VtbWFyeT4KLSsgICAgICA8ZGVzY3JpcHRpb24+VGhlIHNob3J0 Y3V0IGtleXMgZm9yIHN3aXRjaGluZyB0byB0aGUgbmV4dCBpbnB1dCBtZXRob2QgaW4gdGhlIGxp c3Q8L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJuZXh0LWVuZ2lu ZS1pbi1tZW51IiB0eXBlPSJhcyI+Ci0rICAgICAgPGRlZmF1bHQ+WyAnQWx0K1NoaWZ0X0wnIF08 L2RlZmF1bHQ+Ci0rICAgICAgPHN1bW1hcnk+TmV4dCBlbmdpbmUgc2hvcnRjdXQga2V5czwvc3Vt bWFyeT4KLSsgICAgICA8ZGVzY3JpcHRpb24+VGhlIHNob3J0Y3V0IGtleXMgZm9yIHN3aXRjaGlu ZyB0byB0aGUgbmV4dCBpbnB1dCBtZXRob2QgaW4gdGhlIGxpc3Q8L2Rlc2NyaXB0aW9uPgotKyAg ICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJwcmV2LWVuZ2luZSIgdHlwZT0iYXMiPgotKyAgICAg IDxkZWZhdWx0PltdPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PlByZXYgZW5naW5lIHNob3J0 Y3V0IGtleXM8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPlRoZSBzaG9ydGN1dCBrZXlz IGZvciBzd2l0Y2hpbmcgdG8gdGhlIHByZXZpb3VzIGlucHV0IG1ldGhvZDwvZGVzY3JpcHRpb24+ Ci0rICAgIDwva2V5PgotKyAgICA8a2V5IG5hbWU9InByZXZpb3VzLWVuZ2luZSIgdHlwZT0iYXMi PgotKyAgICAgIDxkZWZhdWx0PltdPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PlByZXYgZW5n aW5lIHNob3J0Y3V0IGtleXM8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPlRoZSBzaG9y dGN1dCBrZXlzIGZvciBzd2l0Y2hpbmcgdG8gdGhlIHByZXZpb3VzIGlucHV0IG1ldGhvZDwvZGVz Y3JpcHRpb24+Ci0rICAgIDwva2V5PgotKyAgPC9zY2hlbWE+Ci0rICA8c2NoZW1hIGlkPSJvcmcu ZnJlZWRlc2t0b3AuaWJ1cy5wYW5lbCIgcGF0aD0iL2Rlc2t0b3AvaWJ1cy9wYW5lbC8iPgotKyAg ICA8a2V5IG5hbWU9InNob3ciIHR5cGU9ImkiPgotKyAgICAgIDxkZWZhdWx0PjA8L2RlZmF1bHQ+ Ci0rICAgICAgPHN1bW1hcnk+QXV0byBoaWRlPC9zdW1tYXJ5PgotKyAgICAgIDxkZXNjcmlwdGlv bj5UaGUgYmVoYXZpb3Igb2YgcHJvcGVydHkgcGFuZWwuIDAgPSBEbyBub3Qgc2hvdywgMSA9IEF1 dG8gaGlkZSwgMiA9IEFsd2F5cyBzaG93PC9kZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+Ci0rICAg IDxrZXkgbmFtZT0ieCIgdHlwZT0iaSI+Ci0rICAgICAgPGRlZmF1bHQ+LTE8L2RlZmF1bHQ+Ci0r ICAgICAgPHN1bW1hcnk+TGFuZ3VhZ2UgcGFuZWwgcG9zaXRpb248L3N1bW1hcnk+Ci0rICAgIDwv a2V5PgotKyAgICA8a2V5IG5hbWU9InkiIHR5cGU9ImkiPgotKyAgICAgIDxkZWZhdWx0Pi0xPC9k ZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5Pkxhbmd1YWdlIHBhbmVsIHBvc2l0aW9uPC9zdW1tYXJ5 PgotKyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJmb2xsb3ctaW5wdXQtY3Vyc29yLXdoZW4t YWx3YXlzLXNob3duIiB0eXBlPSJiIj4KLSsgICAgICA8ZGVmYXVsdD5mYWxzZTwvZGVmYXVsdD4K LSsgICAgICA8c3VtbWFyeT5Gb2xsb3cgdGhlIGlucHV0IGN1cnNvciBpbiBjYXNlIHRoZSBwYW5l bCBpcyBhbHdheXMgc2hvd248L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPklmIHRydWUs IHRoZSBwYW5lbCBmb2xsb3dzIHRoZSBpbnB1dCBjdXJzb3IgaW4gY2FzZSB0aGUgcGFuZWwgaXMg YWx3YXlzIHNob3duLiBJZiBmYWxzZSwgdGhlIHBhbmVsIGlzIHNob3duIGF0IGEgZml4ZWQgbG9j YXRpb24uPC9kZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+Ci0rICAgIDxrZXkgbmFtZT0iYXV0by1o aWRlLXRpbWVvdXQiIHR5cGU9ImkiPgotKyAgICAgIDxkZWZhdWx0PjEwMDAwPC9kZWZhdWx0Pgot KyAgICAgIDxzdW1tYXJ5PlRoZSBtaWxsaXNlY29uZHMgdG8gc2hvdyBwcm9wZXJ0eSBwYW5lbDwv c3VtbWFyeT4KLSsgICAgICA8ZGVzY3JpcHRpb24+VGhlIG1pbGxpc2Vjb25kcyB0byBzaG93IHBy b3BlcnR5IHBhbmVsIGFmdGVyIGZvY3VzLWluIG9yIHByb3BlcnRpZXMgYXJlIGNoYW5nZWQuPC9k ZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+Ci0rICAgIDxrZXkgbmFtZT0ibG9va3VwLXRhYmxlLW9y aWVudGF0aW9uIiB0eXBlPSJpIj4KLSsgICAgICA8ZGVmYXVsdD4xPC9kZWZhdWx0PgotKyAgICAg IDxzdW1tYXJ5Pk9yaWVudGF0aW9uIG9mIGxvb2t1cCB0YWJsZTwvc3VtbWFyeT4KLSsgICAgICA8 ZGVzY3JpcHRpb24+T3JpZW50YXRpb24gb2YgbG9va3VwIHRhYmxlLiAwID0gSG9yaXpvbnRhbCwg MSA9IFZlcnRpY2FsPC9kZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+Ci0rICAgIDxrZXkgbmFtZT0i c2hvdy1pY29uLW9uLXN5c3RyYXkiIHR5cGU9ImIiPgotKyAgICAgIDxkZWZhdWx0PnRydWU8L2Rl ZmF1bHQ+Ci0rICAgICAgPHN1bW1hcnk+U2hvdyBpY29uIG9uIHN5c3RlbSB0cmF5PC9zdW1tYXJ5 PgotKyAgICAgIDxkZXNjcmlwdGlvbj5TaG93IGljb24gb24gc3lzdGVtIHRyYXk8L2Rlc2NyaXB0 aW9uPgotKyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJzaG93LWltLW5hbWUiIHR5cGU9ImIi PgotKyAgICAgIDxkZWZhdWx0PmZhbHNlPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PlNob3cg aW5wdXQgbWV0aG9kIG5hbWU8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPlNob3cgaW5w dXQgbWV0aG9kIG5hbWUgb24gbGFuZ3VhZ2UgYmFyPC9kZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+ Ci0rICAgIDxrZXkgbmFtZT0ieGtiLWljb24tcmdiYSIgdHlwZT0icyI+Ci0rICAgICAgPGRlZmF1 bHQ+JyM0MTUwOTknPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PlJHQkEgdmFsdWUgb2YgWEtC IGljb248L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPlhLQiBpY29uIHNob3dzIHRoZSBs YXlvdXQgc3RyaW5nIGFuZCB0aGUgc3RyaW5nIGlzIHJlbmRlcmVkIHdpdGggdGhlIFJHQkEgdmFs dWUuIFRoZSBSR0JBIHZhbHVlIGNhbiBiZSAxLiBhIGNvbG9yIG5hbWUgZnJvbSBYMTEsIDIuIGEg aGV4IHZhbHVlIGluIGZvcm0gJyNycmdnYmInIHdoZXJlICdyJywgJ2cnIGFuZCAnYicgYXJlIGhl eCBkaWdpdHMgb2YgdGhlIHJlZCwgZ3JlZW4sIGFuZCBibHVlLCAzLiBhIFJHQiBjb2xvciBpbiBm b3JtICdyZ2IocixnLGIpJyBvciA0LiBhIFJHQkEgY29sb3IgaW4gZm9ybSAncmdiYShyLGcsYixh KScgd2hlcmUgJ3InLCAnZycsIGFuZCAnYicgYXJlIGVpdGhlciBpbnRlZ2VycyBpbiB0aGUgcmFu Z2UgMCB0byAyNTUgb3IgcGVyY2VudGFnZSB2YWx1ZXMgaW4gdGhlIHJhbmdlIDAlIHRvIDEwMCUs IGFuZCAnYScgaXMgYSBmbG9hdGluZyBwb2ludCB2YWx1ZSBpbiB0aGUgcmFuZ2UgMCB0byAxIG9m IHRoZSBhbHBoYS48L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJw cm9wZXJ0eS1pY29uLWRlbGF5LXRpbWUiIHR5cGU9ImkiPgotKyAgICAgIDxkZWZhdWx0PjUwMDwv ZGVmYXVsdD4KLSsgICAgICA8c3VtbWFyeT5UaGUgbWlsbGlzZWNvbmRzIHRvIHNob3cgdGhlIHBh bmVsIGljb24gZm9yIGEgcHJvcGVydHk8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPlRo ZSBtaWxsaXNlY29uZHMgdG8gc2hvdyB0aGUgcGFuZWwgaWNvbiBmcm9tIHRoZSBlbmdpbmUgaWNv biB0byBhIHByb3BlcnR5IGljb24gd2hlbmV2ZXIgZW5naW5lcyBhcmUgc3dpdGNoZWQgaWYgdGhl IHByb3BlcnR5IGlzIHNwZWNpZmllZCBieSB0aGUgdmFsdWUgb2YgaWNvbi1wcm9wLWtleSBpbiBJ QnVzRW5naW5lRGVzYy4gSWYgdGhlIHZhbHVlIGlzIDAsIG5vIGRlbGF5IHRpbWUgYW5kIHRoZSBw cm9wZXJ0eSBpY29uIGlzIHNob3duIGltbWVkaWF0ZWx5LjwvZGVzY3JpcHRpb24+Ci0rICAgIDwv a2V5PgotKyAgICA8a2V5IG5hbWU9InVzZS1jdXN0b20tZm9udCIgdHlwZT0iYiI+Ci0rICAgICAg PGRlZmF1bHQ+ZmFsc2U8L2RlZmF1bHQ+Ci0rICAgICAgPHN1bW1hcnk+VXNlIGN1c3RvbSBmb250 PC9zdW1tYXJ5PgotKyAgICAgIDxkZXNjcmlwdGlvbj5Vc2UgY3VzdG9tIGZvbnQgbmFtZSBmb3Ig bGFuZ3VhZ2UgcGFuZWw8L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1l PSJjdXN0b20tZm9udCIgdHlwZT0icyI+Ci0rICAgICAgPGRlZmF1bHQ+J1NhbnMgMTAnPC9kZWZh dWx0PgotKyAgICAgIDxzdW1tYXJ5PkN1c3RvbSBmb250PC9zdW1tYXJ5PgotKyAgICAgIDxkZXNj cmlwdGlvbj5DdXN0b20gZm9udCBuYW1lIGZvciBsYW5ndWFnZSBwYW5lbDwvZGVzY3JpcHRpb24+ Ci0rICAgIDwva2V5PgotKyAgICA8Y2hpbGQgbmFtZT0iZW1vamkiIHNjaGVtYT0ib3JnLmZyZWVk ZXNrdG9wLmlidXMucGFuZWwuZW1vamkiLz4KLSsgIDwvc2NoZW1hPgotKyAgPHNjaGVtYSBpZD0i b3JnLmZyZWVkZXNrdG9wLmlidXMucGFuZWwuZW1vamkiIHBhdGg9Ii9kZXNrdG9wL2lidXMvcGFu ZWwvZW1vamkvIj4KLSsgICAgPGtleSBuYW1lPSJ1bmljb2RlLWhvdGtleSIgdHlwZT0iYXMiPgot KyAgICAgIDxkZWZhdWx0PlsgJyZsdDtDb250cm9sJmd0OyZsdDtTaGlmdCZndDt1JyBdPC9kZWZh dWx0PgotKyAgICAgIDxzdW1tYXJ5PlVuaWNvZGUgc2hvcnRjdXQga2V5cyBmb3IgZ3RrX2FjY2Vs ZXJhdG9yX3BhcnNlPC9zdW1tYXJ5PgotKyAgICAgIDxkZXNjcmlwdGlvbj5UaGUgc2hvcnRjdXQg a2V5cyBmb3IgdHVybmluZyBVbmljb2RlIHR5cGluZyBvbiBvciBvZmY8L2Rlc2NyaXB0aW9uPgot KyAgICA8L2tleT4KLSsgICAgPGtleSBuYW1lPSJob3RrZXkiIHR5cGU9ImFzIj4KLSsgICAgICA8 ZGVmYXVsdD5bICcmbHQ7Q29udHJvbCZndDsmbHQ7U2hpZnQmZ3Q7ZScgXTwvZGVmYXVsdD4KLSsg ICAgICA8c3VtbWFyeT5FbW9qaSBzaG9ydGN1dCBrZXlzIGZvciBndGtfYWNjZWxlcmF0b3JfcGFy c2U8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPlRoZSBzaG9ydGN1dCBrZXlzIGZvciB0 dXJuaW5nIGVtb2ppIHR5cGluZyBvbiBvciBvZmY8L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4K LSsgICAgPGtleSBuYW1lPSJmb250IiB0eXBlPSJzIj4KLSsgICAgICA8ZGVmYXVsdD4nTW9ub3Nw YWNlIDE2JzwvZGVmYXVsdD4KLSsgICAgICA8c3VtbWFyeT5DdXN0b20gZm9udDwvc3VtbWFyeT4K LSsgICAgICA8ZGVzY3JpcHRpb24+Q3VzdG9tIGZvbnQgbmFtZSBmb3IgZW1vamkgY2hhcmFjdGVy cyBvbiBlbW9qaSBkaWFsb2c8L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsgICAgPGtleSBu YW1lPSJsYW5nIiB0eXBlPSJzIj4KLSsgICAgICA8ZGVmYXVsdD4nZW4nPC9kZWZhdWx0PgotKyAg ICAgIDxzdW1tYXJ5PkRlZmF1bHQgbGFuZ3VhZ2UgZm9yIGVtb2ppIGRpY3Rpb25hcnk8L3N1bW1h cnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPkNob29zZSBhIGRlZmF1bHQgbGFuZ3VhZ2Ugb2YgZW1v amkgZGljdGlvbmFyaWVzIG9uIHRoZSBlbW9qaSBkaWFsb2cuIFRoZSB2YWx1ZSAkbGFuZyBpcyBh cHBsaWVkIHRvIC91c3Ivc2hhcmUvaWJ1cy9kaWN0cy9lbW9qaS0kbGFuZy5kaWN0PC9kZXNjcmlw dGlvbj4KLSsgICAgPC9rZXk+Ci0rICAgIDxrZXkgbmFtZT0iZmF2b3JpdGVzIiB0eXBlPSJhcyI+ Ci0rICAgICAgPGRlZmF1bHQ+W108L2RlZmF1bHQ+Ci0rICAgICAgPHN1bW1hcnk+ZmF2b3JpdGUg ZW1vamkgbGlzdCBvbiBlbW9qaSBkaWFsb2c8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9u PllvdSBjYW4gc2hvdyB0aGUgZmF2b3JpdGUgZW1vamlzIG9uIGVtb2ppIGxpc3QgaWYgdGhpcyBs aXN0IGhhcyBhbnkgY2hhcmFjdGVycy48L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSsgICAg PGtleSBuYW1lPSJmYXZvcml0ZS1hbm5vdGF0aW9ucyIgdHlwZT0iYXMiPgotKyAgICAgIDxkZWZh dWx0PltdPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PmZhdm9yaXRlIGVtb2ppIGFubm90YXRp b24gbGlzdCBvbiBlbW9qaSBkaWFsb2c8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPllv dSBjYW4gYXNzaWduIGFuIGFubm90YXRpb24gZm9yIGEgZmF2b3JpdGUgZW1vamkgaW4gdGhpcyBs aXN0LjwvZGVzY3JpcHRpb24+Ci0rICAgIDwva2V5PgotKyAgICA8a2V5IG5hbWU9Imhhcy1wYXJ0 aWFsLW1hdGNoIiB0eXBlPSJiIj4KLSsgICAgICA8ZGVmYXVsdD5mYWxzZTwvZGVmYXVsdD4KLSsg ICAgICA8c3VtbWFyeT5XaGV0aGVyIGVtb2ppIGFubm90YXRpb25zIGNhbiBiZSBtYXRjaCBwYXJ0 aWFsbHkgb3Igbm90PC9zdW1tYXJ5PgotKyAgICAgIDxkZXNjcmlwdGlvbj5XaGV0aGVyIGVtb2pp IGFubm90YXRpb25zIGNhbiBiZSBtYXRjaGVkIHdpdGggYSBwYXJ0aWFsIHN0cmluZyBpbnN0ZWFk IG9mIHRoZSBleGFjdCBtYXRjaCBvciBub3QuPC9kZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+Ci0r ICAgIDxrZXkgbmFtZT0icGFydGlhbC1tYXRjaC1sZW5ndGgiIHR5cGU9ImkiPgotKyAgICAgIDxk ZWZhdWx0PjM8L2RlZmF1bHQ+Ci0rICAgICAgPHN1bW1hcnk+TWF0Y2ggZW1vamkgYW5ub3RhdGlv bnMgd2l0aCB0aGUgc3BlY2lmaWVkIGxlbmd0aDwvc3VtbWFyeT4KLSsgICAgICA8ZGVzY3JpcHRp b24+TWF0Y2ggZW1vamkgYW5ub3RhdGlvbnMgcGFydGlhbGx5IHdpdGggbW9yZSB0aGFuIHRoZSBz cGVjaWZpZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW5zdGVhZCBvZiB0aGUgZXhhY3QgbWF0Y2gu PC9kZXNjcmlwdGlvbj4KLSsgICAgPC9rZXk+Ci0rICAgIDxrZXkgbmFtZT0icGFydGlhbC1tYXRj aC1jb25kaXRpb24iIHR5cGU9ImkiPgotKyAgICAgIDxkZWZhdWx0PjA8L2RlZmF1bHQ+Ci0rICAg ICAgPHN1bW1hcnk+Q2hvb3NlIGEgY29uZGl0aW9uIHRvIG1hdGNoIGVtb2ppIGFubm90YXRpb25z IHBhcnRpYWxseTwvc3VtbWFyeT4KLSsgICAgICA8ZGVzY3JpcHRpb24+Q2hvb3NlIG9uZSBvZiB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgdG8gbWF0Y2ggZW1vamkgYW5ub3RhdGlvbnMgcGFydGlh bGx5OiAwID09IFByZWZpeCBtYXRjaCwgMSA9PSBTdWZmaXggbWF0Y2gsIDIgPT0gQ29udGFpbmlu ZyBtYXRjaDwvZGVzY3JpcHRpb24+Ci0rICAgIDwva2V5PgotKyAgICA8a2V5IG5hbWU9ImxvYWQt ZW1vamktYXQtc3RhcnR1cCIgdHlwZT0iYiI+Ci0rICAgICAgPGRlZmF1bHQ+dHJ1ZTwvZGVmYXVs dD4KLSsgICAgICA8c3VtbWFyeT5Mb2FkIHRoZSBlbW9qaSBkYXRhIGF0IHRoZSB0aW1lIG9mIHN0 YXJ0dXA8L3N1bW1hcnk+Ci0rICAgICAgPGRlc2NyaXB0aW9uPkxvYWQgdGhlIGVtb2ppIGRhdGEg YXQgdGhlIHRpbWUgb2Ygc3RhcnR1cCBpZiB0cnVlLiBBYm91dCAxME1CIG1lbW9yeSBpcyBuZWVk ZWQgdG8gbG9hZCB0aGUgZGF0YS4gTG9hZCB0aGUgZW1vamkgZGF0YSB3aGVuIG9wZW4gdGhlIGVt b2ppIGRpYWxvZyBhdCB0aGUgYmVnaW5uaW5nIGlmIGZhbHNlLjwvZGVzY3JpcHRpb24+Ci0rICAg IDwva2V5PgotKyAgICA8a2V5IG5hbWU9ImxvYWQtdW5pY29kZS1hdC1zdGFydHVwIiB0eXBlPSJi Ij4KLSsgICAgICA8ZGVmYXVsdD5mYWxzZTwvZGVmYXVsdD4KLSsgICAgICA8c3VtbWFyeT5Mb2Fk IHRoZSBVbmljb2RlIGRhdGEgYXQgdGhlIHRpbWUgb2Ygc3RhcnR1cDwvc3VtbWFyeT4KLSsgICAg ICA8ZGVzY3JpcHRpb24+TG9hZCB0aGUgVW5pY29kZSBkYXRhIGF0IHRoZSB0aW1lIG9mIHN0YXJ0 dXAgaWYgdHJ1ZS4gQWJvdXQgMTVNQiBtZW1vcnkgaXMgbmVlZGVkIHRvIGxvYWQgdGhlIGRhdGEu IExvYWQgdGhlIFVuaWNvZGUgZGF0YSB3aGVuIG9wZW4gdGhlIGVtb2ppIGRpYWxvZyBhdCB0aGUg YmVnaW5uaW5nIGlmIGZhbHNlLiBUaGUgVW5pY29kZSBkYXRhIGlzIGFsd2F5cyBsb2FkZWQgYWZ0 ZXIgdGhlIGVtb2ppIGRhdGEgaXMgbG9hZGVkIGV2ZW4gaWYgdHJ1ZS48L2Rlc2NyaXB0aW9uPgot KyAgICA8L2tleT4KLSsgIDwvc2NoZW1hPgotKzwvc2NoZW1hbGlzdD4KLS0tIAotMi4yMC4xCi0K LUZyb20gNzRhMDBjYzkzYmE5OTM2N2UxNzVhZDNkMzQxNWU1ODVkNDUzZDE3ZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNv bT4KLURhdGU6IFR1ZSwgMTYgT2N0IDIwMTggMTg6MTc6NDEgKzA5MDAKLVN1YmplY3Q6IFtQQVRD SF0gZGF0YS9kY29uZjogUmVuYW1lIG9yZy5mcmVlZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sWy5p bl0KLQotLS0tCi0gZGF0YS9kY29uZi9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDcgKystLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQotIHJlbmFtZSBkYXRhL2Rjb25mL3tvcmcuZnJlZWRlc2t0b3Au aWJ1cy5nc2NoZW1hLnhtbC5pbiA9PiBvcmcuZnJlZWRlc2t0b3AuaWJ1cy5nc2NoZW1hLnhtbH0g KDEwMCUpCi0KLWRpZmYgLS1naXQgYS9kYXRhL2Rjb25mL01ha2VmaWxlLmFtIGIvZGF0YS9kY29u Zi9NYWtlZmlsZS5hbQotaW5kZXggNGFjMWUzYTYuLjUzNjBmMDMzIDEwMDY0NAotLS0tIGEvZGF0 YS9kY29uZi9NYWtlZmlsZS5hbQotKysrIGIvZGF0YS9kY29uZi9NYWtlZmlsZS5hbQotQEAgLTIx LDEyICsyMSwxMCBAQAotICMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMQotICMgVVNBCi0gCi0tZ3NldHRpbmdz X3NjaGVtYXNfaW5fZmlsZXMgPSBvcmcuZnJlZWRlc2t0b3AuaWJ1cy5nc2NoZW1hLnhtbC5pbgot LWdzZXR0aW5nc19TQ0hFTUFTID0gJChnc2V0dGluZ3Nfc2NoZW1hc19pbl9maWxlczouZ3NjaGVt YS54bWwuaW49LmdzY2hlbWEueG1sKQotK2dzZXR0aW5nc19TQ0hFTUFTID0gb3JnLmZyZWVkZXNr dG9wLmlidXMuZ3NjaGVtYS54bWwKLSBnc2V0dGluZ3Njb252ZXJ0ZGlyID0gJChkYXRhZGlyKS9H Q29uZi9nc2V0dGluZ3MKLSBkaXN0X2dzZXR0aW5nc2NvbnZlcnRfREFUQSA9IGlidXMuY29udmVy dAotIEBHU0VUVElOR1NfUlVMRVNACi0tQElOVExUT09MX1hNTF9OT01FUkdFX1JVTEVACi0gCi0g ZGNvbmZwcm9maWxlZGlyID0gJChzeXNjb25mZGlyKS9kY29uZi9wcm9maWxlCi0gZGNvbmZwcm9m aWxlX0RBVEEgPSBwcm9maWxlL2lidXMKLUBAIC01Niw3ICs1NCw3IEBAIGluc3RhbGwtZGF0YS1o b29rOgotIAlmaQotIAotIEVYVFJBX0RJU1QgPSBcCi0tICAgICQoZ3NldHRpbmdzX3NjaGVtYXNf aW5fZmlsZXMpIFwKLSsgICAgJChnc2V0dGluZ3NfU0NIRU1BUykgXAotICAgICAkKG1hbl81X2lu X2ZpbGVzKSBcCi0gICAgIG1ha2UtZGNvbmYtb3ZlcnJpZGUtZGIuc2ggXAotICAgICBwcm9maWxl L2lidXMgXAotQEAgLTY0LDcgKzYyLDYgQEAgRVhUUkFfRElTVCA9IFwKLSAgICAgJChOVUxMKQot IAotIENMRUFORklMRVMgPSBcCi0tICAgICQoZ3NldHRpbmdzX1NDSEVNQVMpIFwKLSAgICAgJCht YW5fNV9EQVRBKSBcCi0gICAgICQobWFuXzVfZmlsZXMpIFwKLSAgICAgJChOVUxMKQotLS0gCi0y LjIwLjEKLQotRnJvbSBhNjcxMDgxN2IzZDI5ZDZhNTIyZjEwOGY5NmZmZTY0ZDJmNTM2N2ZlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgotRGF0ZTogVHVlLCAxNiBPY3QgMjAxOCAxOTo0NjowMSArMDkwMAotU3ViamVj dDogW1BBVENIXSBHZXR0ZXh0IG1pZ3JhdGlvbiBmb3IgZ3NjaGVtYS54bWwgZmlsZQotCi1odHRw czovL3dpa2kuZ25vbWUub3JnL0luaXRpYXRpdmVzL0dub21lR29hbHMvR2V0dGV4dE1pZ3JhdGlv bgotLS0tCi0gYmluZGluZ3MvdmFsYS9jb25maWcudmFwaSAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KLSBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg OSArKy0KLSBkYXRhL2Rjb25mL29yZy5mcmVlZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sICAgfCAg MiArLQotIHBvL01ha2V2YXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4 ICsrLQotIHBvL1BPVEZJTEVTLmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEw ICstLQotIHNldHVwL01ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0 ICsrLS0KLSAuLi51cy1zZXR1cC5kZXNrdG9wLmluID0+IGlidXMtc2V0dXAuZGVza3RvcH0gfCAg MAotIHNyYy9pYnVzdXRpbC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICst Ci0gc3JjL2tleW5hbWUtdGFibGUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNzAgKy0t LS0tLS0tLS0tLS0tLS0tLQotIHRvb2xzL21haW4udmFsYSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCi0gdWkvZ3RrMy9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMjAgKysrLS0tCi0gdWkvZ3RrMy9hcHBsaWNhdGlvbi52YWxhICAgICAgICAgICAg ICAgICAgICAgIHwgIDMgKy0KLSB1aS9ndGszL2Vtb2ppZXJhcHAudmFsYSAgICAgICAgICAgICAg ICAgICAgICAgfCAgMyArLQotIHVpL2d0azMvZXh0ZW5zaW9uLnZhbGEgICAgICAgICAgICAgICAg ICAgICAgICB8ICAzICstCi0gLi4ucC5pbi5pbiA9PiBpYnVzLWV4dGVuc2lvbi1ndGszLmRlc2t0 b3AuaW59IHwgIDAKLSAuLi5za3RvcC5pbi5pbiA9PiBpYnVzLXVpLWVtb2ppZXIuZGVza3RvcC5p bn0gfCAgMAotIDE2IGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDEwOCBkZWxldGlv bnMoLSkKLSByZW5hbWUgc2V0dXAve2lidXMtc2V0dXAuZGVza3RvcC5pbiA9PiBpYnVzLXNldHVw LmRlc2t0b3B9ICgxMDAlKQotIHJlbmFtZSB1aS9ndGszL3tpYnVzLWV4dGVuc2lvbi1ndGszLmRl c2t0b3AuaW4uaW4gPT4gaWJ1cy1leHRlbnNpb24tZ3RrMy5kZXNrdG9wLmlufSAoMTAwJSkKLSBy ZW5hbWUgdWkvZ3RrMy97aWJ1cy11aS1lbW9qaWVyLmRlc2t0b3AuaW4uaW4gPT4gaWJ1cy11aS1l bW9qaWVyLmRlc2t0b3AuaW59ICgxMDAlKQotCi1kaWZmIC0tZ2l0IGEvYmluZGluZ3MvdmFsYS9j b25maWcudmFwaSBiL2JpbmRpbmdzL3ZhbGEvY29uZmlnLnZhcGkKLWluZGV4IGUzYzQzZGZiLi40 NWFiNjFiMCAxMDA2NDQKLS0tLSBhL2JpbmRpbmdzL3ZhbGEvY29uZmlnLnZhcGkKLSsrKyBiL2Jp bmRpbmdzL3ZhbGEvY29uZmlnLnZhcGkKLUBAIC05LDUgKzksNSBAQCBuYW1lc3BhY2UgQ29uZmln Ci0gICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgUEtHREFUQURJUjsKLSAgICAgcHVibGljIGNvbnN0 IHN0cmluZyBMSUJFWEVDRElSOwotICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEdFVFRFWFRfUEFD S0FHRTsKLS0gICAgcHVibGljIGNvbnN0IHN0cmluZyBHTElCX0xPQ0FMRV9ESVI7Ci0rICAgIHB1 YmxpYyBjb25zdCBzdHJpbmcgTE9DQUxFRElSOwotIH0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUu YWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDBlOTMzN2E3Li4yNmEwNDhjOCAxMDA2NDQKLS0tLSBh L2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTExLDkgKzExMSw4IEBAIEdF VFRFWFRfUEFDS0FHRT1pYnVzMTAKLSBBQ19TVUJTVChHRVRURVhUX1BBQ0tBR0UpCi0gQUNfREVG SU5FX1VOUVVPVEVEKEdFVFRFWFRfUEFDS0FHRSwgIiRHRVRURVhUX1BBQ0tBR0UiLAotICAgICAg ICAgICAgICAgICAgICBbVGhlIHByZWZpeCBmb3Igb3V0IGdldHRleHQgdHJhbnNsYXRpb24gZG9t YWlucy5dKQotLUdMSUJfREVGSU5FX0xPQ0FMRURJUihHTElCX0xPQ0FMRV9ESVIpCi0tR0xJQl9M T0NBTEVfRElSPSRsb2NhbGVkaXIKLS1BQ19TVUJTVChHTElCX0xPQ0FMRV9ESVIpCi0rQUNfREVG SU5FX1VOUVVPVEVEKExPQ0FMRURJUiwgIiRsb2NhbGVkaXIiLAotKyAgICAgICAgICAgICAgICAg ICBbRGVmaW5lIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgY2F0YWxvZ3Mgd2lsbCBiZSBpbnN0YWxs ZWRdKQotIAotICMgRm9yIGRpc2xwYXkgZGF0ZS4KLSBtNF9kZWZpbmUoaWJ1c19kYXRlZGlzcGxh eSwKLUBAIC0xMzEsMTQgKzEzMCwxNCBAQCBBQ19QUk9HX0lOU1RBTEwKLSBBQ19QUk9HX01BS0Vf U0VUCi0gCi0gIyBpMThuIHN0dWZmCi0tQU1fR0xJQl9HTlVfR0VUVEVYVAotK0FNX0dOVV9HRVRU RVhUX1ZFUlNJT04oWzAuMTkuOF0pCi0rQU1fR05VX0dFVFRFWFQoW2V4dGVybmFsXSkKLSAKLSAj IERlZmluZSBQQUNLQUdFX1ZFUlNJT05fKiB2YXJpYWJsZXMuCi0gQU1fRElTQUJMRV9TVEFUSUMK LSBBQ19JU0NfUE9TSVgKLSBBQ19IRUFERVJfU1REQwotIExUX0lOSVQKLS1JVF9QUk9HX0lOVExU T09MKFswLjM1LjBdKQotIAotICMgQ2hlY2sgZnVuY3Rpb25zLgotIEFDX0NIRUNLX0ZVTkNTKGRh ZW1vbikKLWRpZmYgLS1naXQgYS9kYXRhL2Rjb25mL29yZy5mcmVlZGVza3RvcC5pYnVzLmdzY2hl bWEueG1sIGIvZGF0YS9kY29uZi9vcmcuZnJlZWRlc2t0b3AuaWJ1cy5nc2NoZW1hLnhtbAotaW5k ZXggY2JlNzExOGUuLjg3MjRhOGJhIDEwMDY0NAotLS0tIGEvZGF0YS9kY29uZi9vcmcuZnJlZWRl c2t0b3AuaWJ1cy5nc2NoZW1hLnhtbAotKysrIGIvZGF0YS9kY29uZi9vcmcuZnJlZWRlc2t0b3Au aWJ1cy5nc2NoZW1hLnhtbAotQEAgLTEsNCArMSw0IEBACi0tPD94bWwgdmVyc2lvbj0iMS4wIj8+ Ci0rPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLSA8c2NoZW1hbGlzdD4K LSAgIDxzY2hlbWEgaWQ9Im9yZy5mcmVlZGVza3RvcC5pYnVzIiBwYXRoPSIvZGVza3RvcC9pYnVz LyI+Ci0gICAgIDxjaGlsZCBuYW1lPSJnZW5lcmFsIiBzY2hlbWE9Im9yZy5mcmVlZGVza3RvcC5p YnVzLmdlbmVyYWwiLz4KLWRpZmYgLS1naXQgYS9wby9NYWtldmFycyBiL3BvL01ha2V2YXJzCi1p bmRleCAzZTU2YmVhMS4uOGNmMGI3OGEgMTAwNjQ0Ci0tLS0gYS9wby9NYWtldmFycwotKysrIGIv cG8vTWFrZXZhcnMKLUBAIC04LDcgKzgsOSBAQCBzdWJkaXIgPSBwbwotIHRvcF9idWlsZGRpciA9 IC4uCi0gCi0gIyBUaGVzZSBvcHRpb25zIGdldCBwYXNzZWQgdG8geGdldHRleHQuCi0tWEdFVFRF WFRfT1BUSU9OUyA9IC0ta2V5d29yZD1fIC0ta2V5d29yZD1OXwotKyMgVGhlIGxhc3QgYXJndW1l bnQgLS1rZXl3b3JkIHdpdGhvdXQga2V5d29yZCBwcmV2ZW50cyB4Z2V0dGV4dCBmcm9tCi0rIyBl eHRyYWN0aW5nIHRyYW5zbGF0YWJsZSBzdHJpbmdzIGZyb20gIkljb24iIGluICouZGVza3RvcCBm aWxlcy4KLStYR0VUVEVYVF9PUFRJT05TID0gLS1mcm9tLWNvZGU9VVRGLTggLS1rZXl3b3JkPV8g LS1rZXl3b3JkPU5fIC0ta2V5d29yZD1DXzoxYywyIC0ta2V5d29yZD1OQ186MWMsMiAtLWtleXdv cmQ9Z19kbmdldHRleHQ6MiwzIC0ta2V5d29yZD1OYW1lIC0ta2V5d29yZD1Db21tZW50IC0ta2V5 d29yZCAtLWFkZC1jb21tZW50cwotIAotICMgVGhpcyBpcyB0aGUgY29weXJpZ2h0IGhvbGRlciB0 aGF0IGdldHMgaW5zZXJ0ZWQgaW50byB0aGUgaGVhZGVyIG9mIHRoZQotICMgJChET01BSU4pLnBv dCBmaWxlLiAgU2V0IHRoaXMgdG8gdGhlIGNvcHlyaWdodCBob2xkZXIgb2YgdGhlIHN1cnJvdW5k aW5nCi1AQCAtMzksMyArNDEsNyBAQCBNU0dJRF9CVUdTX0FERFJFU1MgPSAkKFBBQ0tBR0VfQlVH UkVQT1JUKQotICMgVGhpcyBpcyB0aGUgbGlzdCBvZiBsb2NhbGUgY2F0ZWdvcmllcywgYmV5b25k IExDX01FU1NBR0VTLCBmb3Igd2hpY2ggdGhlCi0gIyBtZXNzYWdlIGNhdGFsb2dzIHNoYWxsIGJl IHVzZWQuICBJdCBpcyB1c3VhbGx5IGVtcHR5LgotIEVYVFJBX0xPQ0FMRV9DQVRFR09SSUVTID0K LSsKLSsjIGh0dHBzOi8vd2lraS5nbm9tZS5vcmcvSW5pdGlhdGl2ZXMvR25vbWVHb2Fscy9HZXR0 ZXh0TWlncmF0aW9uCi0rUE9fREVQRU5EU19PTl9QT1QgPSAibm8iCi0rRElTVF9ERVBFTkRTX09O X1VQREFFX1BPID0gIm5vIgotZGlmZiAtLWdpdCBhL3BvL1BPVEZJTEVTLmluIGIvcG8vUE9URklM RVMuaW4KLWluZGV4IGM4MTI5MmQyLi5iM2I3MWU4MSAxMDA2NDQKLS0tLSBhL3BvL1BPVEZJTEVT LmluCi0rKysgYi9wby9QT1RGSUxFUy5pbgotQEAgLTEsMTEgKzEsMTAgQEAKLSAjIEZpbGVzIHdp dGggdHJhbnNsYXRhYmxlIHN0cmluZ3MuCi0gIyBQbGVhc2Uga2VlcCB0aGlzIGZpbGUgaW4gYWxw aGFiZXRpY2FsIG9yZGVyLgotLVt0eXBlOiBnZXR0ZXh0L2dsYWRlXXNldHVwL3NldHVwLnVpCi0g YnVzL2RidXNpbXBsLmMKLSBidXMvZW5naW5lcHJveHkuYwotIGJ1cy9pbnB1dGNvbnRleHQuYwot IGJ1cy9wYW5lbHByb3h5LmMKLS1kYXRhL2lidXMuc2NoZW1hcy5pbgotK2RhdGEvZGNvbmYvb3Jn LmZyZWVkZXNrdG9wLmlidXMuZ3NjaGVtYS54bWwKLSBpYnVzL19faW5pdF9fLnB5Ci0gaWJ1cy9f Y29uZmlnLnB5LmluCi0gaWJ1cy9fZ3RrLnB5Ci1AQCAtMzYsOSArMzUsMTAgQEAgc2V0dXAvZW5n aW5lYWJvdXQucHkKLSBzZXR1cC9lbmdpbmVjb21ib2JveC5weQotIHNldHVwL2VuZ2luZWRpYWxv Zy5weQotIHNldHVwL2VuZ2luZXRyZWV2aWV3LnB5Ci0tc2V0dXAvaWJ1cy1zZXR1cC5kZXNrdG9w LmluCi0rc2V0dXAvaWJ1cy1zZXR1cC5kZXNrdG9wCi0gc2V0dXAva2V5Ym9hcmRzaG9ydGN1dC5w eQotIHNldHVwL21haW4ucHkKLStzZXR1cC9zZXR1cC51aQotIHNyYy9pYnVzYnVzLmMKLSBzcmMv aWJ1c2NvbmZpZy5jCi0gc3JjL2lidXNlbW9qaWdlbi5oCi1AQCAtNjEsOCArNjEsOCBAQCB1aS9n dGszL2NhbmRpZGF0ZXBhbmVsLnZhbGEKLSB1aS9ndGszL2Vtb2ppZXIudmFsYQotIHVpL2d0azMv ZW1vamllcmFwcC52YWxhCi0gdWkvZ3RrMy9oYW5kbGUudmFsYQotLXVpL2d0azMvaWJ1cy1leHRl bnNpb24tZ3RrMy5kZXNrdG9wLmluLmluCi0tdWkvZ3RrMy9pYnVzLXVpLWVtb2ppZXIuZGVza3Rv cC5pbi5pbgotK3VpL2d0azMvaWJ1cy1leHRlbnNpb24tZ3RrMy5kZXNrdG9wLmluCi0rdWkvZ3Rr My9pYnVzLXVpLWVtb2ppZXIuZGVza3RvcC5pbgotIHVpL2d0azMvaWNvbndpZGdldC52YWxhCi0g dWkvZ3RrMy9rZXliaW5kaW5nbWFuYWdlci52YWxhCi0gdWkvZ3RrMy9wYW5lbC52YWxhCi1kaWZm IC0tZ2l0IGEvc2V0dXAvTWFrZWZpbGUuYW0gYi9zZXR1cC9NYWtlZmlsZS5hbQotaW5kZXggYjdk ZDc1NTQuLjE3ZDgwYzUxIDEwMDY0NAotLS0tIGEvc2V0dXAvTWFrZWZpbGUuYW0KLSsrKyBiL3Nl dHVwL01ha2VmaWxlLmFtCi1AQCAtMyw4ICszLDggQEAKLSAjIGlidXMgLSBUaGUgSW5wdXQgQnVz Ci0gIwotICMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTQgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFu Z0BnbWFpbC5jb20+Ci0tIyBDb3B5cmlnaHQgKGMpIDIwMTUtMjAxNyBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLS0jIENvcHlyaWdodCAoYykgMjAwNy0yMDE3IFJl ZCBIYXQsIEluYy4KLSsjIENvcHlyaWdodCAoYykgMjAxNS0yMDE4IFRha2FvIEZ1aml3YXJhIDx0 YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTggUmVk IEhhdCwgSW5jLgotICMKLSAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC00MCwxMCArNDAsOCBAQCBpYnVzc2V0 dXBfREFUQSA9IFwKLSBiaW5fU0NSSVBUUyA9IGlidXMtc2V0dXAKLSBpYnVzc2V0dXBkaXIgPSAk KHBrZ2RhdGFkaXIpL3NldHVwCi0gCi0tZGVza3RvcF9pbl9maWxlcyA9IGlidXMtc2V0dXAuZGVz a3RvcC5pbgotLWRlc2t0b3BfREFUQSA9ICQoZGVza3RvcF9pbl9maWxlczouZGVza3RvcC5pbj0u ZGVza3RvcCkKLStkZXNrdG9wX0RBVEEgPSBpYnVzLXNldHVwLmRlc2t0b3AKLSBkZXNrdG9wZGly ID0gJChkYXRhZGlyKS9hcHBsaWNhdGlvbnMKLS1ASU5UTFRPT0xfREVTS1RPUF9SVUxFQAotIAot IG1hbl9vbmVfaW5fZmlsZXMgPSBpYnVzLXNldHVwLjEuaW4KLSBtYW5fb25lX2ZpbGVzID0gJCht YW5fb25lX2luX2ZpbGVzOi4xLmluPS4xKQotQEAgLTY3LDExICs2NSw3IEBAIEVYVFJBX0RJU1Qg PSBcCi0gCSQobWFuX29uZV9pbl9maWxlcykgXAotIAlpYnVzLXNldHVwLmluIFwKLSAJc2V0dXAu dWkgXAotLQlpYnVzLXNldHVwLmRlc2t0b3AuaW4gXAotLQkkKE5VTEwpCi0tCi0tRElTVENMRUFO RklMRVMgPSBcCi0tCSQoZGVza3RvcF9EQVRBKSBcCi0rCWlidXMtc2V0dXAuZGVza3RvcCBcCi0g CSQoTlVMTCkKLSAKLSB0ZXN0OgotZGlmZiAtLWdpdCBhL3NldHVwL2lidXMtc2V0dXAuZGVza3Rv cC5pbiBiL3NldHVwL2lidXMtc2V0dXAuZGVza3RvcAotc2ltaWxhcml0eSBpbmRleCAxMDAlCi1y ZW5hbWUgZnJvbSBzZXR1cC9pYnVzLXNldHVwLmRlc2t0b3AuaW4KLXJlbmFtZSB0byBzZXR1cC9p YnVzLXNldHVwLmRlc2t0b3AKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c3V0aWwuYyBiL3NyYy9pYnVz dXRpbC5jCi1pbmRleCAzYzZmOTI0Ny4uMTVlMzZmODAgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c3V0 aWwuYwotKysrIGIvc3JjL2lidXN1dGlsLmMKLUBAIC05OSw3ICs5OSw3IEBAIF9sb2FkX2xhbmco KQotICAgICBzdHJ1Y3Qgc3RhdCBidWY7Ci0gCi0gI2lmZGVmIEVOQUJMRV9OTFMKLS0gICAgYmlu ZHRleHRkb21haW4gKCJpc29fNjM5IiwgR0xJQl9MT0NBTEVfRElSKTsKLSsgICAgYmluZHRleHRk b21haW4gKCJpc29fNjM5IiwgTE9DQUxFRElSKTsKLSAgICAgYmluZF90ZXh0ZG9tYWluX2NvZGVz ZXQgKCJpc29fNjM5IiwgIlVURi04Iik7Ci0gI2VuZGlmCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2tl eW5hbWUtdGFibGUuaCBiL3NyYy9rZXluYW1lLXRhYmxlLmgKLWluZGV4IDVkMTMzMjI2Li5mODRl Y2RjMyAxMDA2NDQKLS0tLSBhL3NyYy9rZXluYW1lLXRhYmxlLmgKLSsrKyBiL3NyYy9rZXluYW1l LXRhYmxlLmgKLUBAIC02ODMwLDYgKzY4MzAsOSBAQCBzdGF0aWMgY29uc3QgZ2RrX2tleSBnZGtf a2V5c19ieV9uYW1lW10gPSB7Ci0gI2lmIDAKLSAKLSAvKgotKyAqIHhnZXR0ZXh0IGV4dHJhY3Rz IHN0cmluZ3MgaW4gJyNpZiAwJyBhZ2FpbnN0IGludGx0b29sIGFuZCBJIGRlbGV0ZWQKLSsgKiBh bGwgdGhlIHRyYW5zbGF0YWJsZSBzdHJpbmdzIGhlcmUuCi0rICoKLSAgKiBUcmFuc2xhdG9ycywg dGhlIHN0cmluZ3MgaW4gdGhlIOKAnGtleWJvYXJkIGxhYmVs4oCdIGNvbnRleHQgYXJlCi0gICog ZGlzcGxheSBuYW1lcyBmb3Iga2V5Ym9hcmQga2V5cy4gU29tZSBvZiB0aGVtIGhhdmUgcHJlZml4 ZXMgbGlrZQotICAqIFhGODYgb3IgSVNPXyAtIHRoZXNlIHNob3VsZCBiZSByZW1vdmVkIGluIHRo ZSB0cmFuc2xhdGlvbi4gU2ltaWxhcmx5LAotQEAgLTY4NDAsNzIgKzY4NDMsNSBAQCBzdGF0aWMg Y29uc3QgZ2RrX2tleSBnZGtfa2V5c19ieV9uYW1lW10gPSB7Ci0gICogU2Nyb2xsX2xvY2sgICAt IFNjcm9sbCBsb2NrCi0gICogS1BfU3BhY2UgICAgICAtIFNwYWNlIChrZXlwYWQpCi0gICovCi0t TkNfKCJrZXlib2FyZCBsYWJlbCIsICJCYWNrU3BhY2UiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwi LCAiVGFiIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIlJldHVybiIpCi0tTkNfKCJrZXlib2Fy ZCBsYWJlbCIsICJQYXVzZSIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJTY3JvbGxfTG9jayIp Ci0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJTeXNfUmVxIikKLS1OQ18oImtleWJvYXJkIGxhYmVs IiwgIkVzY2FwZSIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJNdWx0aV9rZXkiKQotLU5DXygi a2V5Ym9hcmQgbGFiZWwiLCAiSG9tZSIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJMZWZ0IikK LS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIlVwIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIlJp Z2h0IikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIkRvd24iKQotLU5DXygia2V5Ym9hcmQgbGFi ZWwiLCAiUGFnZV9VcCIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJQYWdlX0Rvd24iKQotLU5D Xygia2V5Ym9hcmQgbGFiZWwiLCAiRW5kIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIkJlZ2lu IikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIlByaW50IikKLS1OQ18oImtleWJvYXJkIGxhYmVs IiwgIkluc2VydCIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJOdW1fTG9jayIpCi0tLyogVHJh bnNsYXRvcnM6IEtQXyBtZWFucyAna2V5IHBhZCcgaGVyZSAqLwotLU5DXygia2V5Ym9hcmQgbGFi ZWwiLCAiS1BfU3BhY2UiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwiLCAiS1BfVGFiIikKLS1OQ18o ImtleWJvYXJkIGxhYmVsIiwgIktQX0VudGVyIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIktQ X0hvbWUiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwiLCAiS1BfTGVmdCIpCi0tTkNfKCJrZXlib2Fy ZCBsYWJlbCIsICJLUF9VcCIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJLUF9SaWdodCIpCi0t TkNfKCJrZXlib2FyZCBsYWJlbCIsICJLUF9Eb3duIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwg IktQX1BhZ2VfVXAiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwiLCAiS1BfUHJpb3IiKQotLU5DXygi a2V5Ym9hcmQgbGFiZWwiLCAiS1BfUGFnZV9Eb3duIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwg IktQX05leHQiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwiLCAiS1BfRW5kIikKLS1OQ18oImtleWJv YXJkIGxhYmVsIiwgIktQX0JlZ2luIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIktQX0luc2Vy dCIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJLUF9EZWxldGUiKQotLU5DXygia2V5Ym9hcmQg bGFiZWwiLCAiRGVsZXRlIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIk1vbkJyaWdodG5lc3NV cCIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJNb25CcmlnaHRuZXNzRG93biIpCi0tTkNfKCJr ZXlib2FyZCBsYWJlbCIsICJLYmRCcmlnaHRuZXNzVXAiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwi LCAiS2JkQnJpZ2h0bmVzc0Rvd24iKQotLU5DXygia2V5Ym9hcmQgbGFiZWwiLCAiQXVkaW9NdXRl IikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIkF1ZGlvTWljTXV0ZSIpCi0tTkNfKCJrZXlib2Fy ZCBsYWJlbCIsICJBdWRpb0xvd2VyVm9sdW1lIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIkF1 ZGlvUmFpc2VWb2x1bWUiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwiLCAiQXVkaW9QbGF5IikKLS1O Q18oImtleWJvYXJkIGxhYmVsIiwgIkF1ZGlvU3RvcCIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIs ICJBdWRpb05leHQiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwiLCAiQXVkaW9QcmV2IikKLS1OQ18o ImtleWJvYXJkIGxhYmVsIiwgIkF1ZGlvUmVjb3JkIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwg IkF1ZGlvUGF1c2UiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwiLCAiQXVkaW9SZXdpbmQiKQotLU5D Xygia2V5Ym9hcmQgbGFiZWwiLCAiQXVkaW9NZWRpYSIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIs ICJTY3JlZW5TYXZlciIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJCYXR0ZXJ5IikKLS1OQ18o ImtleWJvYXJkIGxhYmVsIiwgIkxhdW5jaDEiKQotLU5DXygia2V5Ym9hcmQgbGFiZWwiLCAiRm9y d2FyZCIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJCYWNrIikKLS1OQ18oImtleWJvYXJkIGxh YmVsIiwgIlNsZWVwIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIkhpYmVybmF0ZSIpCi0tTkNf KCJrZXlib2FyZCBsYWJlbCIsICJXTEFOIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIldlYkNh bSIpCi0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJEaXNwbGF5IikKLS1OQ18oImtleWJvYXJkIGxh YmVsIiwgIlRvdWNocGFkVG9nZ2xlIikKLS1OQ18oImtleWJvYXJkIGxhYmVsIiwgIldha2VVcCIp Ci0tTkNfKCJrZXlib2FyZCBsYWJlbCIsICJTdXNwZW5kIikKLSAKLSAjZW5kaWYKLWRpZmYgLS1n aXQgYS90b29scy9tYWluLnZhbGEgYi90b29scy9tYWluLnZhbGEKLWluZGV4IDZlMjAxZjMwLi5i ZjljMGZjOSAxMDA2NDQKLS0tLSBhL3Rvb2xzL21haW4udmFsYQotKysrIGIvdG9vbHMvbWFpbi52 YWxhCi1AQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgcHJpbnRfdXNhZ2UoRmlsZVN0cmVhbSBzdHJl YW0pIHsKLSAKLSBwdWJsaWMgaW50IG1haW4oc3RyaW5nW10gYXJndikgewotICAgICBHTGliLklu dGwuc2V0bG9jYWxlKEdMaWIuTG9jYWxlQ2F0ZWdvcnkuQUxMLCAiIik7Ci0tICAgIEdMaWIuSW50 bC5iaW5kdGV4dGRvbWFpbihDb25maWcuR0VUVEVYVF9QQUNLQUdFLCBDb25maWcuR0xJQl9MT0NB TEVfRElSKTsKLSsgICAgR0xpYi5JbnRsLmJpbmR0ZXh0ZG9tYWluKENvbmZpZy5HRVRURVhUX1BB Q0tBR0UsIENvbmZpZy5MT0NBTEVESVIpOwotICAgICBHTGliLkludGwuYmluZF90ZXh0ZG9tYWlu X2NvZGVzZXQoQ29uZmlnLkdFVFRFWFRfUEFDS0FHRSwgIlVURi04Iik7Ci0gICAgIEdMaWIuSW50 bC50ZXh0ZG9tYWluKENvbmZpZy5HRVRURVhUX1BBQ0tBR0UpOwotIAotZGlmZiAtLWdpdCBhL3Vp L2d0azMvTWFrZWZpbGUuYW0gYi91aS9ndGszL01ha2VmaWxlLmFtCi1pbmRleCA2ZWJjOTZjZS4u ZTQwOTcxZjEgMTAwNjQ0Ci0tLS0gYS91aS9ndGszL01ha2VmaWxlLmFtCi0rKysgYi91aS9ndGsz L01ha2VmaWxlLmFtCi1AQCAtMTY1LDggKzE2NSw4IEBAIEVYVFJBX0RJU1QgPSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0gICAgIGd0a3BhbmVsLnhtbC5pbiAgICAgICAgICAgICAgICAg ICAgIFwKLSAgICAgbm90aWZpY2F0aW9uLWl0ZW0ueG1sICAgICAgICAgICAgICAgXAotICAgICBu b3RpZmljYXRpb24td2F0Y2hlci54bWwgICAgICAgICAgICBcCi0tICAgIGlidXMtdWktZW1vamll ci5kZXNrdG9wLmluLmluICAgICAgIFwKLS0gICAgaWJ1cy1leHRlbnNpb24tZ3RrMy5kZXNrdG9w LmluLmluICAgXAotKyAgICBpYnVzLXVpLWVtb2ppZXIuZGVza3RvcC5pbiAgICAgICAgICBcCi0r ICAgIGlidXMtZXh0ZW5zaW9uLWd0azMuZGVza3RvcC5pbiAgICAgIFwKLSAgICAgcGFuZWxiaW5k aW5nLnZhbGEgICAgICAgICAgICAgICAgICAgXAotICAgICAkKE5VTEwpCi0gCi1AQCAtMjY1LDMy ICsyNjUsMzIgQEAgbWFuX3NldmVuZGlyID0gJChtYW5kaXIpL21hbjcKLSAlLjcuZ3o6ICUuNwot IAkkKEFNX1ZfR0VOKSBnemlwIC1jICQ8ID4gJEAudG1wICYmIG12ICRALnRtcCAkQAotIAotLWRl c2t0b3BfaW5faW5fZmlsZXMgPSBcCi0tICAgIGlidXMtdWktZW1vamllci5kZXNrdG9wLmluLmlu IFwKLS0gICAgaWJ1cy1leHRlbnNpb24tZ3RrMy5kZXNrdG9wLmluLmluIFwKLStkZXNrdG9wX2lu X2ZpbGVzID0gXAotKyAgICBpYnVzLXVpLWVtb2ppZXIuZGVza3RvcC5pbiBcCi0rICAgIGlidXMt ZXh0ZW5zaW9uLWd0azMuZGVza3RvcC5pbiBcCi0gICAgICQoTlVMTCkKLS1kZXNrdG9wX2luX2Zp bGVzID0gJChkZXNrdG9wX2luX2luX2ZpbGVzOi5kZXNrdG9wLmluLmluPS5kZXNrdG9wLmluKQot K2Rlc2t0b3Bfbm90cmFuc19maWxlcyA9ICQoZGVza3RvcF9pbl9maWxlczouZGVza3RvcC5pbj0u ZGVza3RvcCkKLSBkZXNrdG9wX0RBVEEgPSBcCi0gICAgIG9yZy5mcmVlZGVza3RvcC5JQnVzLlBh bmVsLkVtb2ppZXIuZGVza3RvcCBcCi0gICAgIG9yZy5mcmVlZGVza3RvcC5JQnVzLlBhbmVsLkV4 dGVuc2lvbi5HdGszLmRlc2t0b3AgXAotICAgICAkKE5VTEwpCi0gZGVza3RvcGRpciA9ICQoZGF0 YWRpcikvYXBwbGljYXRpb25zCi0tJS5kZXNrdG9wLmluOiAlLmRlc2t0b3AuaW4uaW4KLSslLmRl c2t0b3A6ICUuZGVza3RvcC5pbgotIAkkKEFNX1ZfR0VOKSBzZWQgXAotIAkJLWUgJ3N8Xl9OYW1l PXxOYW1lPXxnJyBcCi0gCQktZSAnc3xAbGliZXhlY2RpcltAXXwkKGxpYmV4ZWNkaXIpfGcnICQ8 ID4gJEAudG1wICYmIFwKLSAgICAgICAgICAgICAgICAgbXYgJEAudG1wICRACi0gCSQoTlVMTCkK LS1vcmcuZnJlZWRlc2t0b3AuSUJ1cy5QYW5lbC5FbW9qaWVyLmRlc2t0b3A6IGlidXMtdWktZW1v amllci5kZXNrdG9wLmluCi0rb3JnLmZyZWVkZXNrdG9wLklCdXMuUGFuZWwuRW1vamllci5kZXNr dG9wOiBpYnVzLXVpLWVtb2ppZXIuZGVza3RvcAotIAkkKEFNX1ZfR0VOKSAkKE1TR0ZNVCkgLS1k ZXNrdG9wIC0tdGVtcGxhdGUgJDwgLWQgJCh0b3Bfc3JjZGlyKS9wbyAtbyAkQAotIAkkKE5VTEwp Ci0tb3JnLmZyZWVkZXNrdG9wLklCdXMuUGFuZWwuRXh0ZW5zaW9uLkd0azMuZGVza3RvcDogaWJ1 cy1leHRlbnNpb24tZ3RrMy5kZXNrdG9wLmluCi0rb3JnLmZyZWVkZXNrdG9wLklCdXMuUGFuZWwu RXh0ZW5zaW9uLkd0azMuZGVza3RvcDogaWJ1cy1leHRlbnNpb24tZ3RrMy5kZXNrdG9wCi0gCSQo QU1fVl9HRU4pICQoTVNHRk1UKSAtLWRlc2t0b3AgLS10ZW1wbGF0ZSAkPCAtZCAkKHRvcF9zcmNk aXIpL3BvIC1vICRACi0gCSQoTlVMTCkKLSAKLSBDTEVBTkZJTEVTICs9IFwKLSAgICAgJChkZXNr dG9wX0RBVEEpIFwKLS0gICAgJChkZXNrdG9wX2luX2ZpbGVzKSBcCi0rICAgICQoZGVza3RvcF9u b3RyYW5zX2ZpbGVzKSBcCi0gICAgICQobWFuX3NldmVuX0RBVEEpIFwKLSAgICAgJChtYW5fc2V2 ZW5fZmlsZXMpIFwKLSAgICAgJChOVUxMKQotZGlmZiAtLWdpdCBhL3VpL2d0azMvYXBwbGljYXRp b24udmFsYSBiL3VpL2d0azMvYXBwbGljYXRpb24udmFsYQotaW5kZXggODA2YjRiMjIuLmNjOWVl NTRjIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9hcHBsaWNhdGlvbi52YWxhCi0rKysgYi91aS9ndGsz L2FwcGxpY2F0aW9uLnZhbGEKLUBAIC0yNiw4ICsyNiw3IEBAIGNsYXNzIEFwcGxpY2F0aW9uIHsK LSAgICAgcHJpdmF0ZSBQYW5lbCBtX3BhbmVsOwotIAotICAgICBwdWJsaWMgQXBwbGljYXRpb24o c3RyaW5nW10gYXJndikgewotLSAgICAgICAgR0xpYi5JbnRsLmJpbmR0ZXh0ZG9tYWluKENvbmZp Zy5HRVRURVhUX1BBQ0tBR0UsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29u ZmlnLkdMSUJfTE9DQUxFX0RJUik7Ci0rICAgICAgICBHTGliLkludGwuYmluZHRleHRkb21haW4o Q29uZmlnLkdFVFRFWFRfUEFDS0FHRSwgQ29uZmlnLkxPQ0FMRURJUik7Ci0gICAgICAgICBHTGli LkludGwuYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoQ29uZmlnLkdFVFRFWFRfUEFDS0FHRSwgIlVU Ri04Iik7Ci0gICAgICAgICBJQnVzLmluaXQoKTsKLSAgICAgICAgIEd0ay5pbml0KHJlZiBhcmd2 KTsKLWRpZmYgLS1naXQgYS91aS9ndGszL2Vtb2ppZXJhcHAudmFsYSBiL3VpL2d0azMvZW1vamll cmFwcC52YWxhCi1pbmRleCBmYWI5OWQ5ZS4uZTgzMzE5ODkgMTAwNjQ0Ci0tLS0gYS91aS9ndGsz L2Vtb2ppZXJhcHAudmFsYQotKysrIGIvdWkvZ3RrMy9lbW9qaWVyYXBwLnZhbGEKLUBAIC0yMjcs OCArMjI3LDcgQEAgcHVibGljIGNsYXNzIEVtb2ppQXBwbGljYXRpb24gOiBHdGsuQXBwbGljYXRp b24gewotIAotIAotICAgICBwdWJsaWMgc3RhdGljIGludCBtYWluIChzdHJpbmdbXSBhcmdzKSB7 Ci0tICAgICAgICBHTGliLkludGwuYmluZHRleHRkb21haW4oQ29uZmlnLkdFVFRFWFRfUEFDS0FH RSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWcuR0xJQl9MT0NBTEVf RElSKTsKLSsgICAgICAgIEdMaWIuSW50bC5iaW5kdGV4dGRvbWFpbihDb25maWcuR0VUVEVYVF9Q QUNLQUdFLCBDb25maWcuTE9DQUxFRElSKTsKLSAgICAgICAgIEdMaWIuSW50bC5iaW5kX3RleHRk b21haW5fY29kZXNldChDb25maWcuR0VUVEVYVF9QQUNLQUdFLCAiVVRGLTgiKTsKLSAgICAgICAg IEdMaWIuSW50bC50ZXh0ZG9tYWluKENvbmZpZy5HRVRURVhUX1BBQ0tBR0UpOwotIAotZGlmZiAt LWdpdCBhL3VpL2d0azMvZXh0ZW5zaW9uLnZhbGEgYi91aS9ndGszL2V4dGVuc2lvbi52YWxhCi1p bmRleCBjNzI5ZmQ3ZS4uZWEzY2Q0NjQgMTAwNjQ0Ci0tLS0gYS91aS9ndGszL2V4dGVuc2lvbi52 YWxhCi0rKysgYi91aS9ndGszL2V4dGVuc2lvbi52YWxhCi1AQCAtMjgsOCArMjgsNyBAQCBjbGFz cyBFeHRlbnNpb25HdGsgOiBHdGsuQXBwbGljYXRpb24gewotICAgICBwdWJsaWMgRXh0ZW5zaW9u R3RrKHN0cmluZ1tdIGFyZ3MpIHsKLSAgICAgICAgIE9iamVjdChhcHBsaWNhdGlvbl9pZDogIm9y Zy5mcmVlZGVza3RvcC5JQnVzLlBhbmVsLkV4dGVuc2lvbi5HdGszIiwKLSAgICAgICAgICAgICAg ICBmbGFnczogQXBwbGljYXRpb25GbGFncy5GTEFHU19OT05FKTsKLS0gICAgICAgIEdMaWIuSW50 bC5iaW5kdGV4dGRvbWFpbihDb25maWcuR0VUVEVYVF9QQUNLQUdFLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENvbmZpZy5HTElCX0xPQ0FMRV9ESVIpOwotKyAgICAgICAgR0xp Yi5JbnRsLmJpbmR0ZXh0ZG9tYWluKENvbmZpZy5HRVRURVhUX1BBQ0tBR0UsIENvbmZpZy5MT0NB TEVESVIpOwotICAgICAgICAgR0xpYi5JbnRsLmJpbmRfdGV4dGRvbWFpbl9jb2Rlc2V0KENvbmZp Zy5HRVRURVhUX1BBQ0tBR0UsICJVVEYtOCIpOwotICAgICAgICAgSUJ1cy5pbml0KCk7Ci0gICAg ICAgICBHdGsuaW5pdChyZWYgYXJncyk7Ci1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9pYnVzLWV4dGVu c2lvbi1ndGszLmRlc2t0b3AuaW4uaW4gYi91aS9ndGszL2lidXMtZXh0ZW5zaW9uLWd0azMuZGVz a3RvcC5pbgotc2ltaWxhcml0eSBpbmRleCAxMDAlCi1yZW5hbWUgZnJvbSB1aS9ndGszL2lidXMt ZXh0ZW5zaW9uLWd0azMuZGVza3RvcC5pbi5pbgotcmVuYW1lIHRvIHVpL2d0azMvaWJ1cy1leHRl bnNpb24tZ3RrMy5kZXNrdG9wLmluCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9pYnVzLXVpLWVtb2pp ZXIuZGVza3RvcC5pbi5pbiBiL3VpL2d0azMvaWJ1cy11aS1lbW9qaWVyLmRlc2t0b3AuaW4KLXNp bWlsYXJpdHkgaW5kZXggMTAwJQotcmVuYW1lIGZyb20gdWkvZ3RrMy9pYnVzLXVpLWVtb2ppZXIu ZGVza3RvcC5pbi5pbgotcmVuYW1lIHRvIHVpL2d0azMvaWJ1cy11aS1lbW9qaWVyLmRlc2t0b3Au aW4KLS0tIAotMi4yMC4xCi0KLUZyb20gYzFiNTU0MzFjMDc2ZGZhM2ZjMjZhM2E5OThiZmNmNzI5 ZTliYTYwMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8u ZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjYgT2N0IDIwMTggMTg6NDQ6MzUgKzA5 MDAKLVN1YmplY3Q6IFtQQVRDSF0gc3JjL3Rlc3RzOiBGaXggbWFrZSBjaGVjayBpbiBGZWRvcmEg MjkKLQotaWJ1cy1idXMgYW5kIGlidXMtY29tcG9zZSBmYWlsZWQgaW4gRmVkb3JhIDI5LgotCi0x LiBJbiBpYnVzLWJ1cyB3aXRoIHJ1bnRlc3QsIGlidXMtZGFlbW9uIGZhaWxlZCB0byByZXN0YXJ0 IGluCi1zdGFydF9leGl0X2FzeW5jKCkgYmVjYXVzZSBpdCBzZWVtcyB0byBoYXZlIGNvbmZsaWN0 aW5nIElPIHdpdGggcnVudGVzdAotYW5kIGlidXMtZGFlbW9uIGZhaWxlZCB0byBjbG9zZSBhIGZp bGUgZGVzY3JpcHRvciBpbiBfcmVzdGFydF9zZXJ2ZXIoKS4KLVRoZSBzb2x1dGlvbiBpcyB0byBh ZGQgYSBzbGVlcCBpbiBzdGFydF9leGl0X2FzeW5jKCkuCi1BbHNvIGFkZGVkIGlidXNfZ2V0X2Fk ZHJlc3MoKSBpbiB0ZXN0X2FzeW5jX2FwaXNfZmluaXNoKCkgdG8gY2hlY2sKLWlmIGlidXMtZGFl bW9uIGZpbmlzaGVkIHRvIHJlc3RhcnQuCi0KLTIuIEluIGlidXMtY29tcG9zZSwgdGhlIEdUSyBh cHBsaWNhdGlvbiBjb3VsZCBub3QgZ2V0IHRoZSBpYnVzIG1vZHVsZS4KLVRoZSBzb2x1dGlvbiBp cyB0byBleHBvcnQgR1RLX0lNX01PRFVMRT1pYnVzLgotCi0zLiBBZGRlZCBESVNBQkxFX0RBRU1P TklaRV9JTl9URVNUUyB0byBnZXQgZXJyb3IgbWVzc2FnZXMgaW4gaWJ1cy1kYWVtb24uCi0lIG1h a2UgRElTQUJMRV9EQUVNT05JWkVfSU5fVEVTVFM9MSBjaGVjawotLS0tCi0gYnVzL01ha2VmaWxl LmFtICAgICAgIHwgIDEgKwotIHNyYy90ZXN0cy9NYWtlZmlsZS5hbSB8ICAxICsKLSBzcmMvdGVz dHMvaWJ1cy1idXMuYyAgfCAxNSArKysrKysrKysrKysrKy0KLSBzcmMvdGVzdHMvcnVudGVzdCAg ICAgfCAyNCArKysrKysrKysrKysrKysrKy0tLS0tLS0KLSA0IGZpbGVzIGNoYW5nZWQsIDMzIGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9idXMvTWFrZWZpbGUu YW0gYi9idXMvTWFrZWZpbGUuYW0KLWluZGV4IGJkYWU1YzkyLi40MzgzYTg3NCAxMDA2NDQKLS0t LSBhL2J1cy9NYWtlZmlsZS5hbQotKysrIGIvYnVzL01ha2VmaWxlLmFtCi1AQCAtMTI0LDYgKzEy NCw3IEBAIFRFU1RTX0VOVklST05NRU5UID0gXAotICAgICBzcmNkaXI9JChzcmNkaXIpIFwKLSAg ICAgTERfTElCUkFSWV9QQVRIPSIkKHRvcF9idWlsZGRpcikvc3JjLy5saWJzOiQodG9wX2J1aWxk ZGlyKS9zcmMiIFwKLSAgICAgRElTQUJMRV9HVUlfVEVTVFM9IiQoRElTQUJMRV9HVUlfVEVTVFMp IiBcCi0rICAgIERJU0FCTEVfREFFTU9OSVpFX0lOX1RFU1RTPSIkKERJU0FCTEVfREFFTU9OSVpF X0lOX1RFU1RTKSIgXAotICAgICAkKE5VTEwpCi0gCi0gTE9HX0NPTVBJTEVSID0gJCh0b3Bfc3Jj ZGlyKS9zcmMvdGVzdHMvcnVudGVzdAotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9NYWtlZmlsZS5h bSBiL3NyYy90ZXN0cy9NYWtlZmlsZS5hbQotaW5kZXggYzVmZWYzYzguLmUzMzdhNTliIDEwMDY0 NAotLS0tIGEvc3JjL3Rlc3RzL01ha2VmaWxlLmFtCi0rKysgYi9zcmMvdGVzdHMvTWFrZWZpbGUu YW0KLUBAIC03Myw2ICs3Myw3IEBAIFRFU1RTX0VOVklST05NRU5UID0gXAotICAgICBzcmNkaXI9 JChzcmNkaXIpIFwKLSAgICAgTERfTElCUkFSWV9QQVRIPSIkKHRvcF9idWlsZGRpcikvc3JjLy5s aWJzOiQodG9wX2J1aWxkZGlyKS9zcmMiIFwKLSAgICAgRElTQUJMRV9HVUlfVEVTVFM9IiQoRElT QUJMRV9HVUlfVEVTVFMpIiBcCi0rICAgIERJU0FCTEVfREFFTU9OSVpFX0lOX1RFU1RTPSIkKERJ U0FCTEVfREFFTU9OSVpFX0lOX1RFU1RTKSIgXAotICAgICAkKE5VTEwpCi0gCi0gTE9HX0NPTVBJ TEVSID0gJChzcmNkaXIpL3J1bnRlc3QKLWRpZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1idXMu YyBiL3NyYy90ZXN0cy9pYnVzLWJ1cy5jCi1pbmRleCA3ZmExYmM0YS4uMGJmOWU2MTIgMTAwNjQ0 Ci0tLS0gYS9zcmMvdGVzdHMvaWJ1cy1idXMuYwotKysrIGIvc3JjL3Rlc3RzL2lidXMtYnVzLmMK LUBAIC04MjAsNiArODIwLDE0IEBAIGZpbmlzaF9leGl0X2FzeW5jIChHT2JqZWN0ICpzb3VyY2Vf b2JqZWN0LAotIHN0YXRpYyB2b2lkCi0gc3RhcnRfZXhpdF9hc3luYyAodm9pZCkKLSB7Ci0rICAg IC8qIFdoZW4gYC4vcnVudGVzdCBpYnVzLWJ1c2AgcnVucywgaWJ1cy1kYWVtb24gc29tZXRpbWVz IGZhaWxlZCB0bwotKyAgICAgKiByZXN0YXJ0IGJlY2F1c2UgY2xvc2luZyBhIGZpbGUgZGVzY3Jp cHRvciB3YXMgZmFpbGVkIGluCi0rICAgICAqIGJ1cy9zZXJ2ZXIuYzpfcmVzdGFydF9zZXJ2ZXIo KSB3aXRoIGEgZm9sbG93aW5nIGVycm9yOgotKyAgICAgKiAgICAgImlub3RpZnkgcmVhZCgpOiBC YWQgZmlsZSBkZXNjcmlwdG9yIgotKyAgICAgKiBOb3cgZ191c2xlZXAoKSBpcyBhZGRlZCBoZXJl IHRvIHdyaXRlIGRvd24gdGhlIGJ1ZmZlciBhbmQgbm90IHRvCi0rICAgICAqIGZhaWwgdG8gcmVz dGFydCBpYnVzLWRhZW1vbi4KLSsgICAgICovCi0rICAgIGdfdXNsZWVwIChHX1VTRUNfUEVSX1NF Qyk7Ci0gICAgIGlidXNfYnVzX2V4aXRfYXN5bmMgKGJ1cywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgVFJVRSwgLyogcmVzdGFydCAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwg LyogdGltZW91dCAqLwotQEAgLTgzMSw2ICs4MzksOSBAQCBzdGFydF9leGl0X2FzeW5jICh2b2lk KQotIHN0YXRpYyBnYm9vbGVhbgotIHRlc3RfYXN5bmNfYXBpc19maW5pc2ggKGdwb2ludGVyIHVz ZXJfZGF0YSkKLSB7Ci0rICAgIC8qIElORk86IGdfd2FybmluZygpIGNhdXNlcyBTRUdWIHdpdGgg cnVudGVzdCBzY3JpcHQgKi8KLSsgICAgaWYgKGlidXNfZ2V0X2FkZHJlc3MgKCkgPT0gTlVMTCkK LSsgICAgICAgIGdfd2FybmluZyAoImlidXMtZGFlbW9uIGRvZXMgbm90IHJlc3RhcnQgeWV0IGZy b20gc3RhcnRfZXhpdF9hc3luYygpLiIpOwotICAgICBpYnVzX3F1aXQgKCk7Ci0gICAgIHJldHVy biBGQUxTRTsKLSB9Ci1AQCAtOTA2LDcgKzkxNyw5IEBAIGNhbGxfbmV4dF9hc3luY19mdW5jdGlv biAodm9pZCkKLSAgICAgfTsKLSAgICAgc3RhdGljIGd1aW50IGluZGV4ID0gMDsKLSAKLS0gICAg Ly8gVXNlIGdfdGltZW91dF9hZGQgdG8gbWFrZSBzdXJlIHRlc3RfYXN5bmNfYXBpcyBmaW5pc2hl cyBldmVuIGlmIGFzeW5jX2Z1bmN0aW9ucyBpcyBlbXB0eS4KLSsgICAgLyogVXNlIGdfdGltZW91 dF9hZGQgdG8gbWFrZSBzdXJlIHRlc3RfYXN5bmNfYXBpcyBmaW5pc2hlcyBldmVuIGlmCi0rICAg ICAqIGFzeW5jX2Z1bmN0aW9ucyBpcyBlbXB0eS4KLSsgICAgICovCi0gICAgIGlmIChpbmRleCA+ PSBHX05fRUxFTUVOVFMgKGFzeW5jX2Z1bmN0aW9ucykpCi0gICAgICAgICBnX3RpbWVvdXRfYWRk ICgxLCB0ZXN0X2FzeW5jX2FwaXNfZmluaXNoLCBOVUxMKTsKLSAgICAgZWxzZQotZGlmZiAtLWdp dCBhL3NyYy90ZXN0cy9ydW50ZXN0IGIvc3JjL3Rlc3RzL3J1bnRlc3QKLWluZGV4IGQ3Zjk2ZWEz Li5hYjM5ZTlmMiAxMDA3NTUKLS0tLSBhL3NyYy90ZXN0cy9ydW50ZXN0Ci0rKysgYi9zcmMvdGVz dHMvcnVudGVzdAotQEAgLTIyLDYgKzIyLDcgQEAKLSA6ICR7YnVpbGRkaXI6PS59Ci0gOiAke3Ny Y2Rpcjo9Ln0KLSA6ICR7RElTQUJMRV9HVUlfVEVTVFM6PScnfQotKzogJHtESVNBQkxFX0RBRU1P TklaRV9JTl9URVNUUzo9Jyd9Ci0gCi0gQlVTX1JFUVVJUkVEX1RFU1RTPSIKLSBpYnVzLWJ1cwot QEAgLTE2MiwxNiArMTYzLDI1IEBAIHJ1bl90ZXN0X2Nhc2UoKQotICAgICAgICAgZXhwb3J0IEdT RVRUSU5HU19TQ0hFTUFfRElSPSRQV0QKLSAKLSAgICAgICAgICMgU3RhcnQgaWJ1cy1kYWVtb24u Ci0tICAgICAgICAuLi8kdG9wX2J1aWxkZGlyL2J1cy9pYnVzLWRhZW1vbiBcCi0tICAgICAgICAt LWRhZW1vbml6ZSBcCi0tICAgICAgICAtLWNhY2hlPW5vbmUgXAotLSAgICAgICAgLS1wYW5lbD1k aXNhYmxlIFwKLS0gICAgICAgIC0tZW1vamktZXh0ZW5zaW9uPWRpc2FibGUgXAotLSAgICAgICAg LS1jb25maWc9ZGVmYXVsdCBcCi0tICAgICAgICAtLXZlcmJvc2U7Ci0rICAgICAgICBEQUVNT05f QVJHUz0nCi0rICAgICAgICAgICAgLS1jYWNoZT1ub25lCi0rICAgICAgICAgICAgLS1wYW5lbD1k aXNhYmxlCi0rICAgICAgICAgICAgLS1lbW9qaS1leHRlbnNpb249ZGlzYWJsZQotKyAgICAgICAg ICAgIC0tY29uZmlnPWRlZmF1bHQKLSsgICAgICAgICAgICAtLXZlcmJvc2UKLSsgICAgICAgICcK LSsgICAgICAgIGlmIHRlc3QgeCIkRElTQUJMRV9EQUVNT05JWkVfSU5fVEVTVFMiID0geCA7IHRo ZW4KLSsgICAgICAgICAgICAuLi8kdG9wX2J1aWxkZGlyL2J1cy9pYnVzLWRhZW1vbiBcCi0rICAg ICAgICAgICAgICAgICREQUVNT05fQVJHUyAtLWRhZW1vbml6ZTsKLSsgICAgICAgIGVsc2UKLSsg ICAgICAgICAgICAuLi8kdG9wX2J1aWxkZGlyL2J1cy9pYnVzLWRhZW1vbiBcCi0rICAgICAgICAg ICAgICAgICREQUVNT05fQVJHUyAmCi0rICAgICAgICBmaQotIAotICAgICAgICAgIyBXYWl0IHVu dGlsIGFsbCBuZWNlc3NhcnkgY29tcG9uZW50cyBhcmUgdXAuCi0gICAgICAgICBzbGVlcCAxCi0r Ci0rICAgICAgICBleHBvcnQgR1RLX0lNX01PRFVMRT1pYnVzCi0gICAgIGZpCi0gCi0gICAgICIu Li8kdHN0IiAkezErIiRAIn0KLS0tIAotMi4xNy4xCi0KLUZyb20gYWEyNGE1MjZkZDdkZWM5YTcx OWUwNjNmYjM1ZGE5MGFmYjVkYzViZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1 aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjYgT2N0IDIw MTggMTk6MDE6MTkgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gc3JjL3Rlc3RzOiBGaXggdGhlIGxv Y2F0aW9uIG9mCi0gb3JnLmZyZWVkZXNrdG9wLmlidXMuZ3NjaGVtYS54bWwKLQotVGhlIGxvY2F0 aW9uIGhhcyBiZWVuIGNoYW5nZWQgc2luY2UgeGdldHRleHQgbWlncmF0aW9uLgotLS0tCi0gc3Jj L3Rlc3RzL3J1bnRlc3QgfCA2ICsrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvdGVzdHMvcnVudGVzdCBiL3Ny Yy90ZXN0cy9ydW50ZXN0Ci1pbmRleCBhYjM5ZTlmMi4uNGU5ODBjNzEgMTAwNzU1Ci0tLS0gYS9z cmMvdGVzdHMvcnVudGVzdAotKysrIGIvc3JjL3Rlc3RzL3J1bnRlc3QKLUBAIC0xMDMsOCArMTAz LDggQEAgZm9yIHQgaW4gJERJU0FCTEVfR1VJX1RFU1RTOyBkbwotIGRvbmUKLSAKLSAjIElCdXNF bmdpbmUgaGFzIEdTZXR0aW5ncwotLWlmIHRlc3QgISAtZiAiJHRvcF9idWlsZGRpci9kYXRhL2Rj b25mLyRJQlVTX1NDSEVNQV9GSUxFIiA7IHRoZW4KLS0gICAgZWNobyAiTk9UIEZPVU5EICR0b3Bf YnVpbGRkaXIvZGF0YS9kY29uZi8kSUJVU19TQ0hFTUFfRklMRSIKLStpZiB0ZXN0ICEgLWYgIiR0 b3Bfc3JjZGlyL2RhdGEvZGNvbmYvJElCVVNfU0NIRU1BX0ZJTEUiIDsgdGhlbgotKyAgICBlY2hv ICJOT1QgRk9VTkQgJHRvcF9zcmNkaXIvZGF0YS9kY29uZi8kSUJVU19TQ0hFTUFfRklMRSIKLSAg ICAgZXhpdCAtMQotIGZpCi0gCi1AQCAtMTQ4LDcgKzE0OCw3IEBAIHJ1bl90ZXN0X2Nhc2UoKQot ICAgICAgICAgZXhwb3J0IEdUS19JTV9NT0RVTEVfRklMRQotICAgICAgICAgJEdUS19RVUVSWV9N T0RVTEUgIiRJTV9JQlVTX1NPIiA+ICRHVEtfSU1fTU9EVUxFX0ZJTEUKLSAKLS0gICAgICAgIGNw ICIuLi8kdG9wX2J1aWxkZGlyL2RhdGEvZGNvbmYvJElCVVNfU0NIRU1BX0ZJTEUiICRQV0QKLSsg ICAgICAgIGNwICIuLi8kdG9wX3NyY2Rpci9kYXRhL2Rjb25mLyRJQlVTX1NDSEVNQV9GSUxFIiAk UFdECi0gICAgICAgICBnbGliLWNvbXBpbGUtc2NoZW1hcyAkUFdECi0gICAgICAgICBpZiB0ZXN0 ICQ/IC1uZSAwIDsgdGhlbgotICAgICAgICAgICAgIGVjaG8gIkZBSUxFRCBnbGliLWNvbXBpbGUt c2NoZW1hcyIKLS0tIAotMi4yMC4xCi0KLUZyb20gMzkxNGQzYTJiMWFlZGE4Nzc5YjJkOGE5ZDkx MDg4ODAyNTMwYjNhOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMzAgT2N0IDIwMTggMTE6NTQ6 NTIgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gZGF0YS9kY29uZjogQWRkIGNvbW1lbnRzIGluIG9y Zy5mcmVlZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sCi0KLS0tLQotIGRhdGEvZGNvbmYvb3JnLmZy ZWVkZXNrdG9wLmlidXMuZ3NjaGVtYS54bWwgfCAyICsrCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZGF0YS9kY29uZi9vcmcuZnJlZWRlc2t0b3AuaWJ1 cy5nc2NoZW1hLnhtbCBiL2RhdGEvZGNvbmYvb3JnLmZyZWVkZXNrdG9wLmlidXMuZ3NjaGVtYS54 bWwKLWluZGV4IDg3MjRhOGJhLi41OTM4ZDNiOCAxMDA2NDQKLS0tLSBhL2RhdGEvZGNvbmYvb3Jn LmZyZWVkZXNrdG9wLmlidXMuZ3NjaGVtYS54bWwKLSsrKyBiL2RhdGEvZGNvbmYvb3JnLmZyZWVk ZXNrdG9wLmlidXMuZ3NjaGVtYS54bWwKLUBAIC03LDcgKzcsOSBAQAotICAgPHNjaGVtYSBpZD0i b3JnLmZyZWVkZXNrdG9wLmlidXMuZ2VuZXJhbCIgcGF0aD0iL2Rlc2t0b3AvaWJ1cy9nZW5lcmFs LyI+Ci0gICAgIDxrZXkgbmFtZT0icHJlbG9hZC1lbmdpbmVzIiB0eXBlPSJhcyI+Ci0gICAgICAg PGRlZmF1bHQ+W108L2RlZmF1bHQ+Ci0rICAgICAgPCEtLSBUcmFuc2xhdG9yczogSGVyZSDigJxQ cmVsb2Fk4oCdIGlzIGEgdmVyYiIgLS0+Ci0gICAgICAgPHN1bW1hcnk+UHJlbG9hZCBlbmdpbmVz PC9zdW1tYXJ5PgotKyAgICAgIDwhLS0gVHJhbnNsYXRvcnM6IFRvb2x0aXAgZm9yIHRoZSBidXR0 b24g4oCcUHJlbG9hZCBFbmdpbmVz4oCdIC0tPgotICAgICAgIDxkZXNjcmlwdGlvbj5QcmVsb2Fk IGVuZ2luZXMgZHVyaW5nIGlidXMgc3RhcnRzIHVwPC9kZXNjcmlwdGlvbj4KLSAgICAgPC9rZXk+ Ci0gICAgIDxrZXkgbmFtZT0iZW5naW5lcy1vcmRlciIgdHlwZT0iYXMiPgotLS0gCi0yLjIwLjEK LQotRnJvbSBiNjA4NjY2NWJjZjEyOTE0ZTZlMWFjOTliNjA2ZGM2ZGVlMzYzZjI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwu Y29tPgotRGF0ZTogVHVlLCAzMCBPY3QgMjAxOCAxMTo1NzoxOSArMDkwMAotU3ViamVjdDogW1BB VENIXSBkYXRhL2Rjb25mOiBGaXggYSB0eXBvCi0KLS0tLQotIGRhdGEvZGNvbmYvb3JnLmZyZWVk ZXNrdG9wLmlidXMuZ3NjaGVtYS54bWwgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9kYXRhL2Rjb25mL29yZy5mcmVl ZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sIGIvZGF0YS9kY29uZi9vcmcuZnJlZWRlc2t0b3AuaWJ1 cy5nc2NoZW1hLnhtbAotaW5kZXggNTkzOGQzYjguLjdhZThmMGY2IDEwMDY0NAotLS0tIGEvZGF0 YS9kY29uZi9vcmcuZnJlZWRlc2t0b3AuaWJ1cy5nc2NoZW1hLnhtbAotKysrIGIvZGF0YS9kY29u Zi9vcmcuZnJlZWRlc2t0b3AuaWJ1cy5nc2NoZW1hLnhtbAotQEAgLTcsNyArNyw3IEBACi0gICA8 c2NoZW1hIGlkPSJvcmcuZnJlZWRlc2t0b3AuaWJ1cy5nZW5lcmFsIiBwYXRoPSIvZGVza3RvcC9p YnVzL2dlbmVyYWwvIj4KLSAgICAgPGtleSBuYW1lPSJwcmVsb2FkLWVuZ2luZXMiIHR5cGU9ImFz Ij4KLSAgICAgICA8ZGVmYXVsdD5bXTwvZGVmYXVsdD4KLS0gICAgICA8IS0tIFRyYW5zbGF0b3Jz OiBIZXJlIOKAnFByZWxvYWTigJ0gaXMgYSB2ZXJiIiAtLT4KLSsgICAgICA8IS0tIFRyYW5zbGF0 b3JzOiBIZXJlIOKAnFByZWxvYWTigJ0gaXMgYSB2ZXJiIC0tPgotICAgICAgIDxzdW1tYXJ5PlBy ZWxvYWQgZW5naW5lczwvc3VtbWFyeT4KLSAgICAgICA8IS0tIFRyYW5zbGF0b3JzOiBUb29sdGlw IGZvciB0aGUgYnV0dG9uIOKAnFByZWxvYWQgRW5naW5lc+KAnSAtLT4KLSAgICAgICA8ZGVzY3Jp cHRpb24+UHJlbG9hZCBlbmdpbmVzIGR1cmluZyBpYnVzIHN0YXJ0cyB1cDwvZGVzY3JpcHRpb24+ Ci0tLSAKLTIuMjAuMQotCi1Gcm9tIDMxNzJjM2IyM2ZhZWZlNzZiM2I3YWRmYzc1ZjliZTM0YTBm YjJlMDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1 aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDMxIE9jdCAyMDE4IDE3OjQyOjM4ICswOTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIFJIRUwgY29kZSByZXZpZXdzCi0KLS0tLQotIHNyYy9pYnVza2V5 bWFwLmMgICAgICAgICAgfCAyICstCi0gc3JjL2lidXNwYW5lbHNlcnZpY2UuYyAgICB8IDYgKysr KystCi0gc3JjL3Rlc3RzL2lidXMta2V5cHJlc3MuYyB8IDIgKy0KLSB1dGlsL0lNZGtpdC9GcmFt ZU1nci5jICAgIHwgMSArCi0gNCBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2tleW1hcC5jIGIvc3JjL2lidXNrZXlt YXAuYwotaW5kZXggMjdhNTY3NTQuLjVhYmZiOTlhIDEwMDY0NAotLS0tIGEvc3JjL2lidXNrZXlt YXAuYwotKysrIGIvc3JjL2lidXNrZXltYXAuYwotQEAgLTE0Myw3ICsxNDMsNyBAQCBpYnVzX2tl eW1hcF9wYXJzZV9saW5lIChnY2hhciAgKnN0ciwKLSAgICAgLyogRG8gbm90IGFzc2lnbiAqcDEg dG8gZ19hc2NpaV9pc2FscGhhKCkgZGlyZWN0bHkgZm9yIHRoZSBzeW50YXggY2hlY2sgKi8KLSAg ICAgaWYgKGkgPT0gMCAmJgotICAgICAgICAgc3RybmNtcCAocDIsICJhZGR1cHBlciIsIHNpemVv ZiAoImFkZHVwcGVyIikgLSAxKSA9PSAwICYmCi0tICAgICAgICAoY2ggPSAqcDEpICYmIGdfYXNj aWlfaXNhbHBoYSAoY2gpKSB7Ci0rICAgICAgICAoY2ggPSAqcDEpICYmIChjaCA+PSAwKSAmJiBn X2FzY2lpX2lzYWxwaGEgKGNoKSkgewotICAgICAgICAgZ2NoYXIgYnVmW10gPSAiYSI7Ci0gICAg ICAgICBidWZbMF0gPSBnX2FzY2lpX3RvdXBwZXIoY2gpOwotICAgICAgICAga2V5bWFwW2tleWNv ZGVdWzBdID0ga2V5bWFwW2tleWNvZGVdWzNdID0ga2V5c3ltOwotZGlmZiAtLWdpdCBhL3NyYy9p YnVzcGFuZWxzZXJ2aWNlLmMgYi9zcmMvaWJ1c3BhbmVsc2VydmljZS5jCi1pbmRleCA5ZDg3ZTE5 Yi4uOTg0Y2M4OTAgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c3BhbmVsc2VydmljZS5jCi0rKysgYi9z cmMvaWJ1c3BhbmVsc2VydmljZS5jCi1AQCAtMTYxNSw3ICsxNjE1LDExIEBAIGlidXNfcGFuZWxf c2VydmljZV9wYW5lbF9leHRlbnNpb25fcmVnaXN0ZXJfa2V5cyAoSUJ1c1BhbmVsU2VydmljZSAg ICpwYW5lbCwKLSAgICAgdmFfc3RhcnQgKHZhcl9hcmdzLCBmaXJzdF9wcm9wZXJ0eV9uYW1lKTsK LSAgICAgZG8gewotICAgICAgICAga2V5cyA9IHZhX2FyZyAodmFyX2FyZ3MsIElCdXNQcm9jZXNz S2V5RXZlbnREYXRhICopOwotLSAgICAgICAgZ19yZXR1cm5faWZfZmFpbCAoa2V5cyAhPSBOVUxM KTsKLSsgICAgICAgIGlmIChrZXlzID09IE5VTEwpIHsKLSsgICAgICAgICAgICB2YV9lbmQgKHZh cl9hcmdzKTsKLSsgICAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gdmFfYXJnIGZvciBJ QnVzUHJvY2Vzc0tleUV2ZW50RGF0YSIpOwotKyAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAg IH0KLSAgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQgKCZjaGlsZCwgR19WQVJJQU5UX1RZ UEUgKCJhdiIpKTsKLSAgICAgICAgIGZvciAoOyBrZXlzOyBrZXlzKyspIHsKLSAgICAgICAgICAg ICBpZiAoa2V5cy0+a2V5dmFsID09IDAgJiYga2V5cy0+a2V5Y29kZSA9PSAwICYmIGtleXMtPnN0 YXRlID09IDApCi1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMta2V5cHJlc3MuYyBiL3NyYy90 ZXN0cy9pYnVzLWtleXByZXNzLmMKLWluZGV4IDM0ODY1MjNiLi4xNzkyMDIyNiAxMDA2NDQKLS0t LSBhL3NyYy90ZXN0cy9pYnVzLWtleXByZXNzLmMKLSsrKyBiL3NyYy90ZXN0cy9pYnVzLWtleXBy ZXNzLmMKLUBAIC0xNzMsNyArMTczLDcgQEAgc2V0X2VuZ2luZV9jYiAoR09iamVjdCAgICAgICpv YmplY3QsCi0gICAgIElCdXNCdXMgKmJ1cyA9IElCVVNfQlVTIChvYmplY3QpOwotICAgICBHdGtX aWRnZXQgKmVudHJ5ID0gR1RLX1dJREdFVCAoZGF0YSk7Ci0gICAgIEdka0Rpc3BsYXkgKmRpc3Bs YXk7Ci0tICAgIERpc3BsYXkgKnhkaXNwbGF5OwotKyAgICBEaXNwbGF5ICp4ZGlzcGxheSA9IE5V TEw7Ci0gICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOwotICAgICBpbnQgaSwgajsKLSAKLWRpZmYg LS1naXQgYS91dGlsL0lNZGtpdC9GcmFtZU1nci5jIGIvdXRpbC9JTWRraXQvRnJhbWVNZ3IuYwot aW5kZXggMDg0Yjg4MTAuLjBlOTFiNzhlIDEwMDY0NAotLS0tIGEvdXRpbC9JTWRraXQvRnJhbWVN Z3IuYwotKysrIGIvdXRpbC9JTWRraXQvRnJhbWVNZ3IuYwotQEAgLTE0MTQsNiArMTQxNCw3IEBA IHN0YXRpYyBpbnQgRnJhbWVJbnN0R2V0U2l6ZSAoRnJhbWVJbnN0IGZpKQotIAkgICAgYnJlYWs7 Ci0gICAgICAgICB9Ci0gICAgICAgICAvKmVuZHN3aXRjaCovCi0rICAgICAgICBhc3NlcnQgKGkg Pj0gMCk7Ci0gICAgICAgICBpID0gX0ZyYW1lSW5zdEluY3JlbWVudCAoZmktPnRlbXBsYXRlLCBp KTsKLSAgICAgfQotICAgICAvKmVuZHdoaWxlKi8KLS0tIAotMi4xNy4xCi0KLUZyb20gYTQwNjMx ZTE2NjEzN2M5MDQyYTY4YzJkNzY4NDRlN2FmYzUzZDM4OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZy aSwgOSBOb3YgMjAxOCAxNDo0OTo0NCArMDkwMAotU3ViamVjdDogW1BBVENIXSBEZXRlY3QgbW91 c2UgY2xpY2sgdG8gY29tbWl0IEhhbmd1bCBwcmVlZGl0Ci0KLUlmIHByZWVkaXQgdGV4dCBpcyBu b3QgY29tbWl0dGVkIHdpdGggdGhlIG1vdXNlIGNsaWNrLCBwcmVlZGl0IHRleHQKLWlzIG1vdmVk IHRvIHRoZSBuZXcgY3Vyc29yIHBvc2l0aW9uIGluIEhhbmd1bCB0eXBpbmcuCi1TaW5jZSBzZXRf Y3Vyc29yX2xvY2F0aW9uKCkgaXMgcmVjZWl2ZWQgYmVmb3JlIHRoZSByZXNldCgpIHNpZ25hbCBp cwotc2VudCB0byBpYnVzLWRhZW1vbiBhbmQgY29tbWl0X3RleHQoKSBzaWduYWwgaXMgcmVjZWl2 ZWQgZnJvbQotaWJ1cy1kYWVtb24sIFVwZGF0ZVByZWVkaXRUZXh0V2l0aE1vZGUgRC1CdXMgbWV0 aG9kIGlzIG5ld2x5IGFkZGVkCi1hbmQgbm93IGlidXMgY2xpZW50cyBjb21taXQgdGhlIHByZWVk aXQuCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8xOTgwCi0tLS0K LSBidXMvaWJ1c2ltcGwuYyAgICAgICAgICAgICAgfCAgMTEgKysrKwotIGJ1cy9pbnB1dGNvbnRl eHQuYyAgICAgICAgICB8IDEwOCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCi0gYnVz L2lucHV0Y29udGV4dC5oICAgICAgICAgIHwgIDE5ICsrKysrLQotIGNsaWVudC9ndGsyL2lidXNp bWNvbnRleHQuYyB8ICA5NSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tCi0gc3JjL2lidXNp bnB1dGNvbnRleHQuYyAgICAgIHwgMTIyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLQotIHNyYy9pYnVzaW5wdXRjb250ZXh0LmggICAgICB8ICAyNyArKysrKysrLQotIDYgZmls ZXMgY2hhbmdlZCwgMzM4IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvYnVzL2lidXNpbXBsLmMgYi9idXMvaWJ1c2ltcGwuYwotaW5kZXggODBmM2FjZmIuLmJi YmI1NzcwIDEwMDY0NAotLS0tIGEvYnVzL2lidXNpbXBsLmMKLSsrKyBiL2J1cy9pYnVzaW1wbC5j Ci1AQCAtODE1LDYgKzgxNSwxNyBAQCBidXNfaWJ1c19pbXBsX3NldF9mb2N1c2VkX2NvbnRleHQg KEJ1c0lCdXNJbXBsICAgICAqaWJ1cywKLSAgICAgICAgICAgICBlbmdpbmUgPSBidXNfaW5wdXRf Y29udGV4dF9nZXRfZW5naW5lIChpYnVzLT5mb2N1c2VkX2NvbnRleHQpOwotICAgICAgICAgICAg IGlmIChlbmdpbmUpIHsKLSAgICAgICAgICAgICAgICAgZ19vYmplY3RfcmVmIChlbmdpbmUpOwot KyAgICAgICAgICAgICAgICAvKiBfaWNfZm9jdXNfaW4oKSBjYW4gYmUgY2FsbGVkIGJlZm9yZSBf aWNfZm9jdXNfb3V0KCkgaXMKLSsgICAgICAgICAgICAgICAgICogY2FsbGVkIHVuZGVyIHRoZSBh c3luYyBwcm9jZXNzZXMgb2YgdHdvIGlidXMgY2xpZW50cy4KLSsgICAgICAgICAgICAgICAgICog RS5nLiBnZWRpdCBpcyBhIGxpdHRsZSBzbG93ZXIgdi5zLiBhIHNpbXBsZSBHdGtUZXh0Vmlldwot KyAgICAgICAgICAgICAgICAgKiBhcHBsaWNhdGlvbiBpcyB0aGUgZmFzdGVzdCB3aGVuIHlvdSBj bGljayBhIEhhbmd1bAotKyAgICAgICAgICAgICAgICAgKiBwcmVlZGl0IHRleHQgYmV0d2VlbiB0 aGUgYXBwbGljYXRpb25zLgotKyAgICAgICAgICAgICAgICAgKiBwcmVlZGl0IHdpbGwgYmUgY29t bWl0dGVkIHdpdGggZm9jdXMtb3V0IGluIHRoZSBpYnVzIGNsaWVudAotKyAgICAgICAgICAgICAg ICAgKiBsaWtlcyBpYnVzLWltLnNvCi0rICAgICAgICAgICAgICAgICAqIHNvIGRvIG5vdCBjb21t aXQgcHJlZWRpdCBoZXJlIGluIGZvY3VzLWluIGV2ZW50LgotKyAgICAgICAgICAgICAgICAgKi8K LSsgICAgICAgICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChp YnVzLT5mb2N1c2VkX2NvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRkFMU0UpOwotICAgICAgICAgICAgICAgICBidXNfaW5wdXRf Y29udGV4dF9zZXRfZW5naW5lIChpYnVzLT5mb2N1c2VkX2NvbnRleHQsIE5VTEwpOwotICAgICAg ICAgICAgICAgICBidXNfaW5wdXRfY29udGV4dF9zZXRfZW1vamlfZXh0ZW5zaW9uIChpYnVzLT5m b2N1c2VkX2NvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwpOwotZGlmZiAtLWdpdCBhL2J1cy9pbnB1dGNvbnRleHQuYyBi L2J1cy9pbnB1dGNvbnRleHQuYwotaW5kZXggNGY5OGI4NDkuLjFiOGU3YWRiIDEwMDY0NAotLS0t IGEvYnVzL2lucHV0Y29udGV4dC5jCi0rKysgYi9idXMvaW5wdXRjb250ZXh0LmMKLUBAIC03Myw2 ICs3Myw3IEBAIHN0cnVjdCBfQnVzSW5wdXRDb250ZXh0IHsKLSAgICAgZ3VpbnQgICAgIHByZWVk aXRfY3Vyc29yX3BvczsKLSAgICAgZ2Jvb2xlYW4gIHByZWVkaXRfdmlzaWJsZTsKLSAgICAgZ3Vp bnQgICAgIHByZWVkaXRfbW9kZTsKLSsgICAgZ2Jvb2xlYW4gIGNsaWVudF9jb21taXRfcHJlZWRp dDsKLSAKLSAgICAgLyogYXV4aWxpYXJ5IHRleHQgKi8KLSAgICAgSUJ1c1RleHQgKmF1eGlsaWFy eV90ZXh0OwotQEAgLTIxMiw2ICsyMTMsOSBAQCBzdGF0aWMgSUJ1c1Byb3BMaXN0ICAgICpwcm9w c19lbXB0eSA9IE5VTEw7Ci0gc3RhdGljIGNvbnN0IGdjaGFyIGludHJvc3BlY3Rpb25feG1sW10g PQotICAgICAiPG5vZGU+IgotICAgICAiICA8aW50ZXJmYWNlIG5hbWU9J29yZy5mcmVlZGVza3Rv cC5JQnVzLklucHV0Q29udGV4dCc+IgotKyAgICAvKiBwcm9wZXJ0aWVzICovCi0rICAgICIgICAg PHByb3BlcnR5IG5hbWU9J0NvbnRlbnRUeXBlJyB0eXBlPScodXUpJyBhY2Nlc3M9J3dyaXRlJyAv PiIKLSsgICAgIiAgICA8cHJvcGVydHkgbmFtZT0nQ2xpZW50Q29tbWl0UHJlZWRpdCcgdHlwZT0n KGIpJyBhY2Nlc3M9J3dyaXRlJyAvPlxuIgotICAgICAvKiBtZXRob2RzICovCi0gICAgICIgICAg PG1ldGhvZCBuYW1lPSdQcm9jZXNzS2V5RXZlbnQnPiIKLSAgICAgIiAgICAgIDxhcmcgZGlyZWN0 aW9uPSdpbicgIHR5cGU9J3UnIG5hbWU9J2tleXZhbCcgLz4iCi1AQCAtMjczLDYgKzI3NywxMiBA QCBzdGF0aWMgY29uc3QgZ2NoYXIgaW50cm9zcGVjdGlvbl94bWxbXSA9Ci0gICAgICIgICAgICA8 YXJnIHR5cGU9J3UnIG5hbWU9J2N1cnNvcl9wb3MnIC8+IgotICAgICAiICAgICAgPGFyZyB0eXBl PSdiJyBuYW1lPSd2aXNpYmxlJyAvPiIKLSAgICAgIiAgICA8L3NpZ25hbD4iCi0rICAgICIgICAg PHNpZ25hbCBuYW1lPSdVcGRhdGVQcmVlZGl0VGV4dFdpdGhNb2RlJz4iCi0rICAgICIgICAgICA8 YXJnIHR5cGU9J3YnIG5hbWU9J3RleHQnIC8+IgotKyAgICAiICAgICAgPGFyZyB0eXBlPSd1JyBu YW1lPSdjdXJzb3JfcG9zJyAvPiIKLSsgICAgIiAgICAgIDxhcmcgdHlwZT0nYicgbmFtZT0ndmlz aWJsZScgLz4iCi0rICAgICIgICAgICA8YXJnIHR5cGU9J3UnIG5hbWU9J21vZGUnIC8+IgotKyAg ICAiICAgIDwvc2lnbmFsPiIKLSAgICAgIiAgICA8c2lnbmFsIG5hbWU9J1Nob3dQcmVlZGl0VGV4 dCcvPiIKLSAgICAgIiAgICA8c2lnbmFsIG5hbWU9J0hpZGVQcmVlZGl0VGV4dCcvPiIKLSAgICAg IiAgICA8c2lnbmFsIG5hbWU9J1VwZGF0ZUF1eGlsaWFyeVRleHQnPiIKLUBAIC0yOTcsOSArMzA3 LDYgQEAgc3RhdGljIGNvbnN0IGdjaGFyIGludHJvc3BlY3Rpb25feG1sW10gPQotICAgICAiICAg IDxzaWduYWwgbmFtZT0nVXBkYXRlUHJvcGVydHknPiIKLSAgICAgIiAgICAgIDxhcmcgdHlwZT0n dicgbmFtZT0ncHJvcCcgLz4iCi0gICAgICIgICAgPC9zaWduYWw+IgotLQotLSAgICAvKiBwcm9w ZXJ0aWVzICovCi0tICAgICIgICAgPHByb3BlcnR5IG5hbWU9J0NvbnRlbnRUeXBlJyB0eXBlPSco dXUpJyBhY2Nlc3M9J3dyaXRlJyAvPiIKLSAgICAgIiAgPC9pbnRlcmZhY2U+IgotICAgICAiPC9u b2RlPiI7Ci0gCi1AQCAtMTA2OSw2ICsxMDc2LDEyIEBAIF9pY19yZXNldCAoQnVzSW5wdXRDb250 ZXh0ICAgICAgICpjb250ZXh0LAotICAgICAgICAgICAgR0RCdXNNZXRob2RJbnZvY2F0aW9uICpp bnZvY2F0aW9uKQotIHsKLSAgICAgaWYgKGNvbnRleHQtPmVuZ2luZSkgewotKyAgICAgICAgaWYg KGNvbnRleHQtPnByZWVkaXRfbW9kZSA9PSBJQlVTX0VOR0lORV9QUkVFRElUX0NPTU1JVCkgewot KyAgICAgICAgICAgIGlmIChjb250ZXh0LT5jbGllbnRfY29tbWl0X3ByZWVkaXQpCi0rICAgICAg ICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChjb250ZXh0LCBG QUxTRSk7Ci0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgIGJ1c19pbnB1dF9jb250 ZXh0X2NsZWFyX3ByZWVkaXRfdGV4dCAoY29udGV4dCwgVFJVRSk7Ci0rICAgICAgICB9Ci0gICAg ICAgICBidXNfZW5naW5lX3Byb3h5X3Jlc2V0IChjb250ZXh0LT5lbmdpbmUpOwotICAgICB9Ci0g ICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUgKGludm9jYXRpb24sIE5V TEwpOwotQEAgLTEzNTQsNiArMTM2NywxMyBAQCBfaWNfc2V0X2NvbnRlbnRfdHlwZSAoQnVzSW5w dXRDb250ZXh0ICpjb250ZXh0LAotICAgICB9Ci0gfQotIAotK3N0YXRpYyB2b2lkCi0rX2ljX3Nl dF9jbGllbnRfY29tbWl0X3ByZWVkaXQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnQgICAgICAgICp2YWx1ZSkKLSt7Ci0r ICAgIGdfdmFyaWFudF9nZXQgKHZhbHVlLCAiKGIpIiwgJmNvbnRleHQtPmNsaWVudF9jb21taXRf cHJlZWRpdCk7Ci0rfQotKwotIHN0YXRpYyBnYm9vbGVhbgotIGJ1c19pbnB1dF9jb250ZXh0X3Nl cnZpY2Vfc2V0X3Byb3BlcnR5IChJQnVzU2VydmljZSAgICAgKnNlcnZpY2UsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlv biwKLUBAIC0xMzc5LDkgKzEzOTksMTQgQEAgYnVzX2lucHV0X2NvbnRleHRfc2VydmljZV9zZXRf cHJvcGVydHkgKElCdXNTZXJ2aWNlICAgICAqc2VydmljZSwKLSAgICAgaWYgKCFidXNfaW5wdXRf Y29udGV4dF9zZXJ2aWNlX2F1dGhvcml6ZWRfbWV0aG9kIChzZXJ2aWNlLCBjb25uZWN0aW9uKSkK LSAgICAgICAgIHJldHVybiBGQUxTRTsKLSAKLSsgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKEJV U19JU19JTlBVVF9DT05URVhUIChzZXJ2aWNlKSwgRkFMU0UpOwotKwotICAgICBpZiAoZ19zdHJj bXAwIChwcm9wZXJ0eV9uYW1lLCAiQ29udGVudFR5cGUiKSA9PSAwKSB7Ci0tICAgICAgICBCdXNJ bnB1dENvbnRleHQgKmNvbnRleHQgPSAoQnVzSW5wdXRDb250ZXh0ICopIHNlcnZpY2U7Ci0tICAg ICAgICBfaWNfc2V0X2NvbnRlbnRfdHlwZSAoY29udGV4dCwgdmFsdWUpOwotKyAgICAgICAgX2lj X3NldF9jb250ZW50X3R5cGUgKEJVU19JTlBVVF9DT05URVhUIChzZXJ2aWNlKSwgdmFsdWUpOwot KyAgICAgICAgcmV0dXJuIFRSVUU7Ci0rICAgIH0KLSsgICAgaWYgKGdfc3RyY21wMCAocHJvcGVy dHlfbmFtZSwgIkNsaWVudENvbW1pdFByZWVkaXQiKSA9PSAwKSB7Ci0rICAgICAgICBfaWNfc2V0 X2NsaWVudF9jb21taXRfcHJlZWRpdCAoQlVTX0lOUFVUX0NPTlRFWFQgKHNlcnZpY2UpLCB2YWx1 ZSk7Ci0gICAgICAgICByZXR1cm4gVFJVRTsKLSAgICAgfQotIAotQEAgLTE0NTMsMjIgKzE0Nzgs NDQgQEAgYnVzX2lucHV0X2NvbnRleHRfZm9jdXNfaW4gKEJ1c0lucHV0Q29udGV4dCAqY29udGV4 dCkKLSAKLSAvKioKLSAgKiBidXNfaW5wdXRfY29udGV4dF9jbGVhcl9wcmVlZGl0X3RleHQ6Ci0r ICogQGNvbnRleHQ6IEEgI0J1c0lucHV0Q29udGV4dAotKyAqIEB3aXRoX3NpZ25hbDogJUZBTFNF IGlmIHRoZSBwcmVlZGl0IGlzIGFscmVhZHkgdXBkYXRlZCBpbiBpYnVzIGNsaWVudHMKLSsgKiAg ICAgICAgICAgICAgIGxpa2VzIGlidXMtaW0uc28uIE90aGVyd2lzZSAlVFJVRS4KLSAgKgotLSAq IENsZWFyIGNvbnRleHQtPnByZWVkaXRfdGV4dC4gSWYgdGhlIHByZWVkaXQgbW9kZSBpcyBJQlVT X0VOR0lORV9QUkVFRElUX0NPTU1JVCwgY29tbWl0IGl0IGJlZm9yZSBjbGVhcmluZy4KLSsgKiBD bGVhciBjb250ZXh0LT5wcmVlZGl0X3RleHQuIElmIHRoZSBwcmVlZGl0IG1vZGUgaXMKLSsgKiBJ QlVTX0VOR0lORV9QUkVFRElUX0NPTU1JVCwgY29tbWl0IGl0IGJlZm9yZSBjbGVhcmluZy4KLSAg Ki8KLS1zdGF0aWMgdm9pZAotLWJ1c19pbnB1dF9jb250ZXh0X2NsZWFyX3ByZWVkaXRfdGV4dCAo QnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQotK3ZvaWQKLStidXNfaW5wdXRfY29udGV4dF9jbGVh cl9wcmVlZGl0X3RleHQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgd2l0aF9zaWduYWwpCi0g ewotKyAgICBJQnVzVGV4dCAqcHJlZWRpdF90ZXh0OwotKyAgICBndWludCAgICAgcHJlZWRpdF9t b2RlOwotKyAgICBnYm9vbGVhbiAgcHJlZWRpdF92aXNpYmxlOwotKwotICAgICBnX2Fzc2VydCAo QlVTX0lTX0lOUFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKLSAKLS0gICAgaWYgKGNvbnRleHQtPnBy ZWVkaXRfdmlzaWJsZSAmJgotLSAgICAgICAgY29udGV4dC0+cHJlZWRpdF9tb2RlID09IElCVVNf RU5HSU5FX1BSRUVESVRfQ09NTUlUKSB7Ci0tICAgICAgICBidXNfaW5wdXRfY29udGV4dF9jb21t aXRfdGV4dCAoY29udGV4dCwgY29udGV4dC0+cHJlZWRpdF90ZXh0KTsKLSsgICAgaWYgKCF3aXRo X3NpZ25hbCkgewotKyAgICAgICAgZ19vYmplY3RfdW5yZWYgKGNvbnRleHQtPnByZWVkaXRfdGV4 dCk7Ci0rICAgICAgICBjb250ZXh0LT5wcmVlZGl0X21vZGUgPSBJQlVTX0VOR0lORV9QUkVFRElU X0NMRUFSOwotKyAgICAgICAgY29udGV4dC0+cHJlZWRpdF90ZXh0ID0gKElCdXNUZXh0ICopIGdf b2JqZWN0X3JlZl9zaW5rICh0ZXh0X2VtcHR5KTsKLSsgICAgICAgIGNvbnRleHQtPnByZWVkaXRf Y3Vyc29yX3BvcyA9IDA7Ci0rICAgICAgICBjb250ZXh0LT5wcmVlZGl0X3Zpc2libGUgPSBGQUxT RTsKLSsgICAgICAgIHJldHVybjsKLSAgICAgfQotIAotLSAgICAvKiBhbHdheXMgY2xlYXIgcHJl ZWRpdCB0ZXh0ICovCi0rICAgIC8qIGFsd2F5cyBjbGVhciBwcmVlZGl0IHRleHQgdG8gcmVzZXQg dGhlIGN1cnNvciBwb3NpdGlvbiBpbiB0aGUKLSsgICAgICogY2xpZW50IGFwcGxpY2F0aW9uIGJl Zm9yZSBjb21taXQgdGhlIHByZWVpdCB0ZXh0LiAqLwotKyAgICBwcmVlZGl0X3RleHQgPSBnX29i amVjdF9yZWYgKGNvbnRleHQtPnByZWVkaXRfdGV4dCk7Ci0rICAgIHByZWVkaXRfbW9kZSA9IGNv bnRleHQtPnByZWVkaXRfbW9kZTsKLSsgICAgcHJlZWRpdF92aXNpYmxlID0gY29udGV4dC0+cHJl ZWRpdF92aXNpYmxlOwotICAgICBidXNfaW5wdXRfY29udGV4dF91cGRhdGVfcHJlZWRpdF90ZXh0 IChjb250ZXh0LAotICAgICAgICAgdGV4dF9lbXB0eSwgMCwgRkFMU0UsIElCVVNfRU5HSU5FX1BS RUVESVRfQ0xFQVIsIFRSVUUpOwotKwotKyAgICBpZiAocHJlZWRpdF92aXNpYmxlICYmIHByZWVk aXRfbW9kZSA9PSBJQlVTX0VOR0lORV9QUkVFRElUX0NPTU1JVCkgewotKyAgICAgICAgYnVzX2lu cHV0X2NvbnRleHRfY29tbWl0X3RleHQgKGNvbnRleHQsIHByZWVkaXRfdGV4dCk7Ci0rICAgIH0K LSsgICAgZ19vYmplY3RfdW5yZWYgKHByZWVkaXRfdGV4dCk7Ci0gfQotIAotIHZvaWQKLUBAIC0x NDc5LDcgKzE1MjYsMTAgQEAgYnVzX2lucHV0X2NvbnRleHRfZm9jdXNfb3V0IChCdXNJbnB1dENv bnRleHQgKmNvbnRleHQpCi0gICAgIGlmICghY29udGV4dC0+aGFzX2ZvY3VzKQotICAgICAgICAg cmV0dXJuOwotIAotLSAgICBidXNfaW5wdXRfY29udGV4dF9jbGVhcl9wcmVlZGl0X3RleHQgKGNv bnRleHQpOwotKyAgICBpZiAoY29udGV4dC0+Y2xpZW50X2NvbW1pdF9wcmVlZGl0KQotKyAgICAg ICAgYnVzX2lucHV0X2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChjb250ZXh0LCBGQUxTRSk7 Ci0rICAgIGVsc2UKLSsgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0X2NsZWFyX3ByZWVkaXRfdGV4 dCAoY29udGV4dCwgVFJVRSk7Ci0gICAgIGJ1c19pbnB1dF9jb250ZXh0X3VwZGF0ZV9hdXhpbGlh cnlfdGV4dCAoY29udGV4dCwgdGV4dF9lbXB0eSwgRkFMU0UpOwotICAgICBidXNfaW5wdXRfY29u dGV4dF91cGRhdGVfbG9va3VwX3RhYmxlIChjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsb29rdXBfdGFibGVfZW1wdHksCi1AQCAtMjMzOCw3ICsy Mzg4LDcgQEAgYnVzX2lucHV0X2NvbnRleHRfZGlzYWJsZSAoQnVzSW5wdXRDb250ZXh0ICpjb250 ZXh0KQotIHsKLSAgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7 Ci0gCi0tICAgIGJ1c19pbnB1dF9jb250ZXh0X2NsZWFyX3ByZWVkaXRfdGV4dCAoY29udGV4dCk7 Ci0rICAgIGJ1c19pbnB1dF9jb250ZXh0X2NsZWFyX3ByZWVkaXRfdGV4dCAoY29udGV4dCwgVFJV RSk7Ci0gICAgIGJ1c19pbnB1dF9jb250ZXh0X3VwZGF0ZV9hdXhpbGlhcnlfdGV4dCAoY29udGV4 dCwgdGV4dF9lbXB0eSwgRkFMU0UpOwotICAgICBidXNfaW5wdXRfY29udGV4dF91cGRhdGVfbG9v a3VwX3RhYmxlIChjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsb29rdXBfdGFibGVfZW1wdHksCi1AQCAtMjM4NSw3ICsyNDM1LDcgQEAgYnVzX2lu cHV0X2NvbnRleHRfdW5zZXRfZW5naW5lIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi0gewot ICAgICBnX2Fzc2VydCAoQlVTX0lTX0lOUFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKLSAKLS0gICAg YnVzX2lucHV0X2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChjb250ZXh0KTsKLSsgICAgYnVz X2lucHV0X2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChjb250ZXh0LCBUUlVFKTsKLSAgICAg YnVzX2lucHV0X2NvbnRleHRfdXBkYXRlX2F1eGlsaWFyeV90ZXh0IChjb250ZXh0LCB0ZXh0X2Vt cHR5LCBGQUxTRSk7Ci0gICAgIGJ1c19pbnB1dF9jb250ZXh0X3VwZGF0ZV9sb29rdXBfdGFibGUg KGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv b2t1cF90YWJsZV9lbXB0eSwKLUBAIC0yODA3LDE0ICsyODU3LDI2IEBAIGJ1c19pbnB1dF9jb250 ZXh0X3VwZGF0ZV9wcmVlZGl0X3RleHQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSAgICAg fSBlbHNlIGlmIChQUkVFRElUX0NPTkRJVElPTikgewotICAgICAgICAgR1ZhcmlhbnQgKnZhcmlh bnQgPSBpYnVzX3NlcmlhbGl6YWJsZV9zZXJpYWxpemUgKAotICAgICAgICAgICAgICAgICAoSUJ1 c1NlcmlhbGl6YWJsZSAqKWNvbnRleHQtPnByZWVkaXRfdGV4dCk7Ci0tICAgICAgICBidXNfaW5w dXRfY29udGV4dF9lbWl0X3NpZ25hbCAoY29udGV4dCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiVXBkYXRlUHJlZWRpdFRleHQiLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih2dWIpIiwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5wcmVlZGl0X2N1cnNvcl9w b3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRl bnNpb25fdmlzaWJsZSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCk7Ci0rICAgICAgICBpZiAoY29udGV4dC0+Y2xpZW50X2NvbW1pdF9wcmVlZGl0KSB7Ci0r ICAgICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfZW1pdF9zaWduYWwgKAotKyAgICAgICAgICAg ICAgICAgICAgY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICJVcGRhdGVQcmVlZGl0VGV4 dFdpdGhNb2RlIiwKLSsgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIodnVidSki LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPnByZWVkaXRfY3Vyc29yX3BvcywK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbl92aXNpYmxlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+cHJlZWRpdF9tb2Rl KSwKLSsgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAg ICAgICAgICBidXNfaW5wdXRfY29udGV4dF9lbWl0X3NpZ25hbCAoCi0rICAgICAgICAgICAgICAg ICAgICBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgIlVwZGF0ZVByZWVkaXRUZXh0IiwK LSsgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIodnViKSIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50LAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udGV4dC0+cHJlZWRpdF9jdXJzb3JfcG9zLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uX3Zpc2libGUpLAotKyAgICAgICAgICAg ICAgICAgICAgTlVMTCk7Ci0rICAgICAgICB9Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICBnX3Np Z25hbF9lbWl0IChjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dF9zaWdu YWxzW1VQREFURV9QUkVFRElUX1RFWFRdLAotZGlmZiAtLWdpdCBhL2J1cy9pbnB1dGNvbnRleHQu aCBiL2J1cy9pbnB1dGNvbnRleHQuaAotaW5kZXggYTQ2ZDVjMDYuLjcxMDVmZmY4IDEwMDY0NAot LS0tIGEvYnVzL2lucHV0Y29udGV4dC5oCi0rKysgYi9idXMvaW5wdXRjb250ZXh0LmgKLUBAIC0y LDggKzIsOCBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1 dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1 YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGFrYW8gRnVqaXdhcmEgPHRh a2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTQgUmVk IEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IFRha2FvIEZ1aml3YXJhIDx0 YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IFJl ZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtMzc3LDUgKzM3NywyMCBAQCB2 b2lkICAgICAgICAgICAgICAgICBidXNfaW5wdXRfY29udGV4dF91cGRhdGVfbG9va3VwX3RhYmxl Ci0gdm9pZCAgICAgICAgICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfcGFuZWxfZXh0ZW5zaW9u X3JlY2VpdmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKEJ1c0lucHV0Q29udGV4dCAgICAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c0V4dGVuc2lvbkV2ZW50ICpldmVudCk7Ci0r Ci0rLyoqCi0rICogYnVzX2lucHV0X2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0OgotKyAqCi0r ICogQ2xlYXIgY29udGV4dC0+cHJlZWRpdF90ZXh0LiBJZiB0aGUgcHJlZWRpdCBtb2RlIGlzCi0r ICogSUJVU19FTkdJTkVfUFJFRURJVF9DT01NSVQgYW5kIHdpdGhfc2lnbmFsIGlzICVUUlVFLCBj b21taXQgaXQgYmVmb3JlCi0rICogY2xlYXJpbmcuCi0rICogSWYgd2l0aF9zaWduYWwgaXMgJUZB TFNFLCB0aGlzIGp1c3QgY2xlYXJzIHRoZSBwcmVlZGl0IGNvZGl0aW9ucwotKyAqIGFuZCB0aGUg YWN0dWFsIHByZWVkaXQgaXMgaGFuZGxlZCBpbiBpYnVzIGNsaWVudHMuCi0rICovCi0rdm9pZCAg ICAgICAgICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJ1c0lucHV0Q29u dGV4dCAgICAqY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2Jvb2xlYW4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aF9zaWduYWwpOwotKwotIEdfRU5E X0RFQ0xTCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5j IGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi1pbmRleCBlNGRlNTJkOS4uNzNhMGVhZWMg MTAwNjQ0Ci0tLS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLSsrKyBiL2NsaWVudC9n dGsyL2lidXNpbWNvbnRleHQuYwotQEAgLTIsOCArMiw4IEBACi0gLyogdmltOnNldCBldCBzdHM9 NDogKi8KLSAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0y MDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAo QykgMjAxNS0yMDE3IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgot LSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQg KEMpIDIwMTUtMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4K LSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlz IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y Ci0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYwotQEAgLTYxLDYgKzYxLDcgQEAgc3RydWN0IF9JQnVzSU1Db250ZXh0IHsKLSAgICAg UGFuZ29BdHRyTGlzdCAgICpwcmVlZGl0X2F0dHJzOwotICAgICBnaW50ICAgICAgICAgICAgIHBy ZWVkaXRfY3Vyc29yX3BvczsKLSAgICAgZ2Jvb2xlYW4gICAgICAgICBwcmVlZGl0X3Zpc2libGU7 Ci0rICAgIGd1aW50ICAgICAgICAgICAgcHJlZWRpdF9tb2RlOwotIAotICAgICBHZGtSZWN0YW5n bGUgICAgIGN1cnNvcl9hcmVhOwotICAgICBnYm9vbGVhbiAgICAgICAgIGhhc19mb2N1czsKLUBA IC0xMzIsOCArMTMzLDE0IEBAIHN0YXRpYyB2b2lkICAgICBpYnVzX2ltX2NvbnRleHRfc2V0X3N1 cnJvdW5kaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2ludCAgICAgICAgICAgbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdpbnQgICAgICAgICAgIGN1cnNvcl9pbmRleCk7Ci0gCi0tCi0gLyogc3RhdGlj IG1ldGhvZHMqLwotK3N0YXRpYyB2b2lkICAgICBfaWJ1c19jb250ZXh0X3VwZGF0ZV9wcmVlZGl0 X3RleHRfY2IKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElC dXNJbnB1dENvbnRleHQgICAqaWJ1c2NvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJQnVzVGV4dCAgICAgICAgICAgKnRleHQsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAgIGN1 cnNvcl9wb3MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn Ym9vbGVhbiAgICAgICAgICAgIHZpc2libGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgIG1vZGUsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzSU1Db250ZXh0ICAgICAgKmlidXNp bWNvbnRleHQpOwotIHN0YXRpYyB2b2lkICAgICBfY3JlYXRlX2lucHV0X2NvbnRleHQgICAgICAg KElCdXNJTUNvbnRleHQgICAgICAqY29udGV4dCk7Ci0gc3RhdGljIGdib29sZWFuIF9zZXRfY3Vy c29yX2xvY2F0aW9uX2ludGVybmFsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoSUJ1c0lNQ29udGV4dCAgICAgICpjb250ZXh0KTsKLUBAIC03NDQsNiArNzUx LDcgQEAgaWJ1c19pbV9jb250ZXh0X2luaXQgKEdPYmplY3QgKm9iaikKLSAgICAgaWJ1c2ltY29u dGV4dC0+cHJlZWRpdF9hdHRycyA9IE5VTEw7Ci0gICAgIGlidXNpbWNvbnRleHQtPnByZWVkaXRf Y3Vyc29yX3BvcyA9IDA7Ci0gICAgIGlidXNpbWNvbnRleHQtPnByZWVkaXRfdmlzaWJsZSA9IEZB TFNFOwotKyAgICBpYnVzaW1jb250ZXh0LT5wcmVlZGl0X21vZGUgPSBJQlVTX0VOR0lORV9QUkVF RElUX0NMRUFSOwotIAotICAgICAvLyBJbml0IGN1cnNvciBhcmVhCi0gICAgIGlidXNpbWNvbnRl eHQtPmN1cnNvcl9hcmVhLnggPSAtMTsKLUBAIC04NTQsNiArODYyLDI0IEBAIGlidXNfaW1fY29u dGV4dF9maW5hbGl6ZSAoR09iamVjdCAqb2JqKQotICAgICBHX09CSkVDVF9DTEFTUyhwYXJlbnRf Y2xhc3MpLT5maW5hbGl6ZSAob2JqKTsKLSB9Ci0gCi0rc3RhdGljIHZvaWQKLStpYnVzX2ltX2Nv bnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChJQnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0KQot K3sKLSsgICAgZ19hc3NlcnQgKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KTsKLSsgICAgaWYg KGlidXNpbWNvbnRleHQtPnByZWVkaXRfdmlzaWJsZSAmJgotKyAgICAgICAgaWJ1c2ltY29udGV4 dC0+cHJlZWRpdF9tb2RlID09IElCVVNfRU5HSU5FX1BSRUVESVRfQ09NTUlUKSB7Ci0rICAgICAg ICBnY2hhciAqcHJlZWRpdF9zdHJpbmcgPSBnX3N0cmR1cCAoaWJ1c2ltY29udGV4dC0+cHJlZWRp dF9zdHJpbmcpOwotKyAgICAgICAgX2lidXNfY29udGV4dF91cGRhdGVfcHJlZWRpdF90ZXh0X2Ni IChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWJ1c190ZXh0X25ld19mcm9tX3N0cmluZyAoIiIpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19FTkdJTkVfUFJFRURJVF9D TEVBUiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1 c2ltY29udGV4dCk7Ci0rICAgICAgICBnX3NpZ25hbF9lbWl0IChpYnVzaW1jb250ZXh0LCBfc2ln bmFsX2NvbW1pdF9pZCwgMCwgcHJlZWRpdF9zdHJpbmcpOwotKyAgICAgICAgZ19mcmVlIChwcmVl ZGl0X3N0cmluZyk7Ci0rICAgIH0KLSt9Ci0rCi0gc3RhdGljIGdib29sZWFuCi0gaWJ1c19pbV9j b250ZXh0X2ZpbHRlcl9rZXlwcmVzcyAoR3RrSU1Db250ZXh0ICpjb250ZXh0LAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50S2V5ICAqZXZlbnQpCi1AQCAtMTAwMyw2 ICsxMDI5LDcgQEAgaWJ1c19pbV9jb250ZXh0X2ZvY3VzX291dCAoR3RrSU1Db250ZXh0ICpjb250 ZXh0KQotIAotICAgICBpYnVzaW1jb250ZXh0LT5oYXNfZm9jdXMgPSBGQUxTRTsKLSAgICAgaWYg KGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KSB7Ci0rICAgICAgICBpYnVzX2ltX2NvbnRleHRf Y2xlYXJfcHJlZWRpdF90ZXh0IChpYnVzaW1jb250ZXh0KTsKLSAgICAgICAgIGlidXNfaW5wdXRf Y29udGV4dF9mb2N1c19vdXQgKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KTsKLSAgICAgfQot IAotQEAgLTEwMjIsNiArMTA0OSwxMiBAQCBpYnVzX2ltX2NvbnRleHRfcmVzZXQgKEd0a0lNQ29u dGV4dCAqY29udGV4dCkKLSAgICAgSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCA9IElCVVNf SU1fQ09OVEVYVCAoY29udGV4dCk7Ci0gCi0gICAgIGlmIChpYnVzaW1jb250ZXh0LT5pYnVzY29u dGV4dCkgewotKyAgICAgICAgLyogQ29tbWVudGVkIG91dCBpYnVzX2ltX2NvbnRleHRfY2xlYXJf cHJlZWRpdF90ZXh0KCkuCi0rICAgICAgICAgKiBIYW5ndWwgbmVlZHMgdG8gcmVjZWl2ZSB0aGUg cmVzZXQgY2FsbGJhY2sgd2l0aCBidXR0b24gcHJlc3MKLSsgICAgICAgICAqIGJ1dCBvdGhlciBJ TUVzIHNob3VsZCBhdm9pZCB0byByZWNlaXZlIHRoZSByZXNldCBjYWxsYmFjawotKyAgICAgICAg ICogc28gdGhlIHNpZ25hbCB3b3VsZCBuZWVkIHRvIGJlIGN1c3RvbWl6ZWQgd2l0aCBHdGtTZXR0 aW5nLgotKyAgICAgICAgICogSUJ1cyB1c2VzIGJ1dHRvbi1wcmVzcy1ldmVudCBpbnN0ZWFkLgot KyAgICAgICAgICovCi0gICAgICAgICBpYnVzX2lucHV0X2NvbnRleHRfcmVzZXQgKGlidXNpbWNv bnRleHQtPmlidXNjb250ZXh0KTsKLSAgICAgfQotICAgICBndGtfaW1fY29udGV4dF9yZXNldCAo aWJ1c2ltY29udGV4dC0+c2xhdmUpOwotQEAgLTEwNjgsMjEgKzExMDEsNjcgQEAgaWJ1c19pbV9j b250ZXh0X2dldF9wcmVlZGl0X3N0cmluZyAoR3RrSU1Db250ZXh0ICAgKmNvbnRleHQsCi0gfQot IAotIAotK3N0YXRpYyBnYm9vbGVhbgotK2lidXNfaW1fY29udGV4dF9idXR0b25fcHJlc3NfZXZl bnRfY2IgKEd0a1dpZGdldCAgICAgICp3aWRnZXQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR2RrRXZlbnRCdXR0b24gKmV2ZW50LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElCdXNJTUNvbnRleHQgICppYnVzaW1jb250ZXh0KQotK3sK LSsgICAgaWYgKGV2ZW50LT5idXR0b24gIT0gMSkKLSsgICAgICAgIHJldHVybiBGQUxTRTsKLSsK LSsgICAgaWYgKGlidXNpbWNvbnRleHQtPnByZWVkaXRfdmlzaWJsZSAmJgotKyAgICAgICAgaWJ1 c2ltY29udGV4dC0+cHJlZWRpdF9tb2RlID09IElCVVNfRU5HSU5FX1BSRUVESVRfQ09NTUlUKSB7 Ci0rICAgICAgICBpYnVzX2ltX2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChpYnVzaW1jb250 ZXh0KTsKLSsgICAgICAgIGlmIChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCkKLSsgICAgICAg ICAgICBpYnVzX2lucHV0X2NvbnRleHRfcmVzZXQgKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0 KTsKLSsgICAgfQotKyAgICByZXR1cm4gRkFMU0U7Ci0rfQotKwotIHN0YXRpYyB2b2lkCi0gaWJ1 c19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93IChHdGtJTUNvbnRleHQgKmNvbnRleHQsIEdk a1dpbmRvdyAqY2xpZW50KQotIHsKLSsgICAgSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dDsK LSsjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5MywgMCkKLSsgICAgR3RrV2lkZ2V0ICp3aWRn ZXQ7Ci0rI2VuZGlmCi0rCi0gICAgIElERUJVRyAoIiVzIiwgX19GVU5DVElPTl9fKTsKLSAKLS0g ICAgSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCA9IElCVVNfSU1fQ09OVEVYVCAoY29udGV4 dCk7Ci0rICAgIGlidXNpbWNvbnRleHQgPSBJQlVTX0lNX0NPTlRFWFQgKGNvbnRleHQpOwotIAot ICAgICBpZiAoaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdykgewotKyNpZiAhR1RLX0NIRUNL X1ZFUlNJT04gKDMsIDkzLCAwKQotKyAgICAgICAgZ2RrX3dpbmRvd19nZXRfdXNlcl9kYXRhIChp YnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZ3BvaW50ZXIgKikmd2lkZ2V0KTsKLSsgICAgICAgIC8qIGZpcmVmb3ggbmVlZHMg R3RrV2lkZ2V0IGluc3RlYWQgb2YgR3RrV2luZG93ICovCi0rICAgICAgICBpZiAoR1RLX0lTX1dJ REdFVCAod2lkZ2V0KSkgewotKyAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5l Y3RfYnlfZnVuYyAoCi0rICAgICAgICAgICAgICAgICAgICB3aWRnZXQsCi0rICAgICAgICAgICAg ICAgICAgICAoR0NhbGxiYWNrKWlidXNfaW1fY29udGV4dF9idXR0b25fcHJlc3NfZXZlbnRfY2Is Ci0rICAgICAgICAgICAgICAgICAgICBpYnVzaW1jb250ZXh0KTsKLSsgICAgICAgIH0KLSsjZW5k aWYKLSAgICAgICAgIGdfb2JqZWN0X3VucmVmIChpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93 KTsKLSAgICAgICAgIGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3cgPSBOVUxMOwotICAgICB9 Ci0gCi0tICAgIGlmIChjbGllbnQgIT0gTlVMTCkKLSsgICAgaWYgKGNsaWVudCAhPSBOVUxMKSB7 Ci0gICAgICAgICBpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93ID0gZ19vYmplY3RfcmVmIChj bGllbnQpOwotKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDkzLCAwKQotKyAgICAgICAgZ2Rr X3dpbmRvd19nZXRfdXNlcl9kYXRhIChpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93LAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIgKikmd2lkZ2V0KTsKLSAK LSsgICAgICAgIC8qIGZpcmVmb3ggbmVlZHMgR3RrV2lkZ2V0IGluc3RlYWQgb2YgR3RrV2luZG93 ICovCi0rICAgICAgICBpZiAoR1RLX0lTX1dJREdFVCAod2lkZ2V0KSkgewotKyAgICAgICAgICAg IGdfc2lnbmFsX2Nvbm5lY3QgKAotKyAgICAgICAgICAgICAgICAgICAgd2lkZ2V0LAotKyAgICAg ICAgICAgICAgICAgICAgImJ1dHRvbi1wcmVzcy1ldmVudCIsCi0rICAgICAgICAgICAgICAgICAg ICBHX0NBTExCQUNLIChpYnVzX2ltX2NvbnRleHRfYnV0dG9uX3ByZXNzX2V2ZW50X2NiKSwKLSsg ICAgICAgICAgICAgICAgICAgIGlidXNpbWNvbnRleHQpOwotKyAgICAgICAgfQotKyNlbmRpZgot KyAgICB9Ci0gICAgIGlmIChpYnVzaW1jb250ZXh0LT5zbGF2ZSkKLSAgICAgICAgIGd0a19pbV9j b250ZXh0X3NldF9jbGllbnRfd2luZG93IChpYnVzaW1jb250ZXh0LT5zbGF2ZSwgY2xpZW50KTsK LSB9Ci1AQCAtMTUzMCw2ICsxNjA5LDcgQEAgX2lidXNfY29udGV4dF91cGRhdGVfcHJlZWRpdF90 ZXh0X2NiIChJQnVzSW5wdXRDb250ZXh0ICAqaWJ1c2NvbnRleHQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJQnVzVGV4dCAgICAgICAgICAqdGV4dCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgICAgICAgICAgICAgICBjdXJzb3Jf cG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAg ICAgICAgIHZpc2libGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dWludCAgICAgICAgICAgICAgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElCdXNJTUNvbnRleHQgICAgICppYnVzaW1jb250ZXh0KQotIHsKLSAgICAgSURFQlVH ICgiJXMiLCBfX0ZVTkNUSU9OX18pOwotQEAgLTE1ODYsNiArMTY2Niw3IEBAIF9pYnVzX2NvbnRl eHRfdXBkYXRlX3ByZWVkaXRfdGV4dF9jYiAoSUJ1c0lucHV0Q29udGV4dCAgKmlidXNjb250ZXh0 LAotIAotICAgICBmbGFnID0gaWJ1c2ltY29udGV4dC0+cHJlZWRpdF92aXNpYmxlICE9IHZpc2li bGU7Ci0gICAgIGlidXNpbWNvbnRleHQtPnByZWVkaXRfdmlzaWJsZSA9IHZpc2libGU7Ci0rICAg IGlidXNpbWNvbnRleHQtPnByZWVkaXRfbW9kZSA9IG1vZGU7Ci0gCi0gICAgIGlmIChpYnVzaW1j b250ZXh0LT5wcmVlZGl0X3Zpc2libGUpIHsKLSAgICAgICAgIGlmIChmbGFnKSB7Ci1AQCAtMTY3 Niw3ICsxNzU3LDcgQEAgX2NyZWF0ZV9pbnB1dF9jb250ZXh0X2RvbmUgKElCdXNCdXMgICAgICAg KmJ1cywKLSAgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOwotICAgICB9Ci0gICAgIGVsc2Ug ewotLQotKyAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9jbGllbnRfY29tbWl0X3ByZWVk aXQgKGNvbnRleHQsIFRSVUUpOwotICAgICAgICAgaWJ1c2ltY29udGV4dC0+aWJ1c2NvbnRleHQg PSBjb250ZXh0OwotIAotICAgICAgICAgZ19zaWduYWxfY29ubmVjdCAoaWJ1c2ltY29udGV4dC0+ aWJ1c2NvbnRleHQsCi1AQCAtMTY5Miw3ICsxNzczLDcgQEAgX2NyZWF0ZV9pbnB1dF9jb250ZXh0 X2RvbmUgKElCdXNCdXMgICAgICAgKmJ1cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf Q0FMTEJBQ0sgKF9pYnVzX2NvbnRleHRfZGVsZXRlX3N1cnJvdW5kaW5nX3RleHRfY2IpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dCk7Ci0gICAgICAgICBnX3NpZ25h bF9jb25uZWN0IChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICJ1cGRhdGUtcHJlZWRpdC10ZXh0IiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICJ1cGRhdGUtcHJlZWRpdC10ZXh0LXdpdGgtbW9kZSIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICBHX0NBTExCQUNLIChfaWJ1c19jb250ZXh0X3VwZGF0ZV9wcmVlZGl0X3RleHRfY2Ip LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dCk7Ci0gICAgICAgICBn X3NpZ25hbF9jb25uZWN0IChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCwKLWRpZmYgLS1naXQg YS9zcmMvaWJ1c2lucHV0Y29udGV4dC5jIGIvc3JjL2lidXNpbnB1dGNvbnRleHQuYwotaW5kZXgg YWU3MDQ4YWQuLmE4MDllZjA4IDEwMDY0NAotLS0tIGEvc3JjL2lidXNpbnB1dGNvbnRleHQuYwot KysrIGIvc3JjL2lidXNpbnB1dGNvbnRleHQuYwotQEAgLTIsNyArMiw4IEBACi0gLyogdmltOnNl dCBldCBzdHM9NDogKi8KLSAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAo QykgMjAwOC0yMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENv cHlyaWdodCAoQykgMjAwOC0yMDEzIFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIw MTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJp Z2h0IChDKSAyMDA4LTIwMTggUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBA IC0zOSw2ICs0MCw3IEBAIGVudW0gewotICAgICBGT1JXQVJEX0tFWV9FVkVOVCwKLSAgICAgREVM RVRFX1NVUlJPVU5ESU5HX1RFWFQsCi0gICAgIFVQREFURV9QUkVFRElUX1RFWFQsCi0rICAgIFVQ REFURV9QUkVFRElUX1RFWFRfV0lUSF9NT0RFLAotICAgICBTSE9XX1BSRUVESVRfVEVYVCwKLSAg ICAgSElERV9QUkVFRElUX1RFWFQsCi0gICAgIFVQREFURV9BVVhJTElBUllfVEVYVCwKLUBAIC0y MTcsNiArMjE5LDM0IEBAIGlidXNfaW5wdXRfY29udGV4dF9jbGFzc19pbml0IChJQnVzSW5wdXRD b250ZXh0Q2xhc3MgKmNsYXNzKQotICAgICAgICAgICAgIEdfVFlQRV9VSU5ULAotICAgICAgICAg ICAgIEdfVFlQRV9CT09MRUFOKTsKLSAKLSsgICAgLyoqCi0rICAgICAqIElCdXNJbnB1dENvbnRl eHQ6OnVwZGF0ZS1wcmVlZGl0LXRleHQtd2l0aC1tb2RlOgotKyAgICAgKiBAY29udGV4dDogQW4g SUJ1c0lucHV0Q29udGV4dC4KLSsgICAgICogQHRleHQ6IFRleHQgdG8gYmUgdXBkYXRlZC4KLSsg ICAgICogQGN1cnNvcl9wb3M6IEN1cnNvciBwb3NpdGlvbi4KLSsgICAgICogQHZpc2libGU6IFdo ZXRoZXIgdGhlIHVwZGF0ZSBpcyB2aXNpYmxlLgotKyAgICAgKiBAbW9kZTogUHJlZWRpdCBtb2Rl LgotKyAgICAgKgotKyAgICAgKiBFbWl0dGVkIHRvIHVwZGF0ZSBwcmVlZGl0IHRleHQgd2l0aCB0 aGUgbW9kZS4KLSsgICAgICoKLSsgICAgICogKE5vdGU6IFRoZSB0ZXh0IG9iamVjdCBpcyBmbG9h dGluZywgYW5kIGl0IHdpbGwgYmUgcmVsZWFzZWQgYWZ0ZXIgdGhlCi0rICAgICAqICBzaWduYWwu IElmIHNpZ25hbCBoYW5kbGVyIHdhbnRzIHRvIGtlZXAgdGhlIG9iamVjdCwgdGhlIGhhbmRsZXIg c2hvdWxkCi0rICAgICAqICB1c2UgZ19vYmplY3RfcmVmX3NpbmsoKSB0byBnZXQgdGhlIG93bmVy c2hpcCBvZiB0aGUgb2JqZWN0LikKLSsgICAgICovCi0rICAgIGNvbnRleHRfc2lnbmFsc1tVUERB VEVfUFJFRURJVF9URVhUX1dJVEhfTU9ERV0gPQotKyAgICAgICAgZ19zaWduYWxfbmV3IChJXygi dXBkYXRlLXByZWVkaXQtdGV4dC13aXRoLW1vZGUiKSwKLSsgICAgICAgICAgICBHX1RZUEVfRlJP TV9DTEFTUyAoY2xhc3MpLAotKyAgICAgICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAotKyAgICAg ICAgICAgIDAsCi0rICAgICAgICAgICAgTlVMTCwgTlVMTCwKLSsgICAgICAgICAgICBfaWJ1c19t YXJzaGFsX1ZPSURfX09CSkVDVF9VSU5UX0JPT0xFQU5fVUlOVCwKLSsgICAgICAgICAgICBHX1RZ UEVfTk9ORSwKLSsgICAgICAgICAgICA0LAotKyAgICAgICAgICAgIElCVVNfVFlQRV9URVhULAot KyAgICAgICAgICAgIEdfVFlQRV9VSU5ULAotKyAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLAot KyAgICAgICAgICAgIEdfVFlQRV9VSU5UKTsKLSsKLSAgICAgLyoqCi0gICAgICAqIElCdXNJbnB1 dENvbnRleHQ6OnNob3ctcHJlZWRpdC10ZXh0OgotICAgICAgKiBAY29udGV4dDogQW4gSUJ1c0lu cHV0Q29udGV4dC4KLUBAIC01NDIsNiArNTcyLDI4IEBAIGlidXNfaW5wdXRfY29udGV4dF9nX3Np Z25hbCAoR0RCdXNQcm94eSAgKnByb3h5LAotICAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmICh0 ZXh0KTsKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotKyAgICBpZiAoZ19zdHJjbXAwIChzaWdu YWxfbmFtZSwgIlVwZGF0ZVByZWVkaXRUZXh0V2l0aE1vZGUiKSA9PSAwKSB7Ci0rICAgICAgICBH VmFyaWFudCAqdmFyaWFudCA9IE5VTEw7Ci0rICAgICAgICBnaW50MzIgY3Vyc29yX3BvczsKLSsg ICAgICAgIGdib29sZWFuIHZpc2libGU7Ci0rICAgICAgICBndWludCBtb2RlID0gMDsKLSsgICAg ICAgIGdfdmFyaWFudF9nZXQgKHBhcmFtZXRlcnMsCi0rICAgICAgICAgICAgICAgICAgICAgICAi KHZ1YnUpIiwgJnZhcmlhbnQsICZjdXJzb3JfcG9zLCAmdmlzaWJsZSwgJm1vZGUpOwotKyAgICAg ICAgSUJ1c1RleHQgKnRleHQgPSBJQlVTX1RFWFQgKGlidXNfc2VyaWFsaXphYmxlX2Rlc2VyaWFs aXplICh2YXJpYW50KSk7Ci0rICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKHZhcmlhbnQpOwotKwot KyAgICAgICAgZ19zaWduYWxfZW1pdCAoY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAg IGNvbnRleHRfc2lnbmFsc1tVUERBVEVfUFJFRURJVF9URVhUX1dJVEhfTU9ERV0sCi0rICAgICAg ICAgICAgICAgICAgICAgICAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwKLSsgICAg ICAgICAgICAgICAgICAgICAgIGN1cnNvcl9wb3MsCi0rICAgICAgICAgICAgICAgICAgICAgICB2 aXNpYmxlLAotKyAgICAgICAgICAgICAgICAgICAgICAgbW9kZSk7Ci0rCi0rICAgICAgICBpZiAo Z19vYmplY3RfaXNfZmxvYXRpbmcgKHRleHQpKQotKyAgICAgICAgICAgIGdfb2JqZWN0X3VucmVm ICh0ZXh0KTsKLSsgICAgICAgIHJldHVybjsKLSsgICAgfQotIAotICAgICAvKiBsb29rdXAgc2ln bmFsIGluIHRhYmxlICovCi0gICAgIGdpbnQgaTsKLUBAIC0xMDQzLDEwICsxMDk1LDExIEBAIGli dXNfaW5wdXRfY29udGV4dF9zZXRfc3Vycm91bmRpbmdfdGV4dCAoSUJ1c0lucHV0Q29udGV4dCAg ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vp bnQzMiAgICAgICAgICAgICBjdXJzb3JfcG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VpbnQzMiAgICAgICAgICAgICBhbmNob3JfcG9zKQotIHsKLSsgICAg SUJ1c0lucHV0Q29udGV4dFByaXZhdGUgKnByaXY7Ci0rCi0gICAgIGdfYXNzZXJ0IChJQlVTX0lT X0lOUFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKLSAgICAgZ19hc3NlcnQgKElCVVNfSVNfVEVYVCAo dGV4dCkpOwotIAotLSAgICBJQnVzSW5wdXRDb250ZXh0UHJpdmF0ZSAqcHJpdjsKLSAgICAgcHJp diA9IElCVVNfSU5QVVRfQ09OVEVYVF9HRVRfUFJJVkFURSAoY29udGV4dCk7Ci0gCi0gICAgIGlm IChjdXJzb3JfcG9zICE9IHByaXYtPnN1cnJvdW5kaW5nX2N1cnNvcl9wb3MgfHwKLUBAIC0xMDkw LDEyICsxMTQzLDE1IEBAIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY29udGVudF90eXBlIChJQnVz SW5wdXRDb250ZXh0ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBndWludCAgICAgICAgICAgICBwdXJwb3NlLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICBoaW50cykKLSB7Ci0rICAgIEdWYXJpYW50 ICpjYWNoZWRfY29udGVudF90eXBlOwotKyAgICBHVmFyaWFudCAqY29udGVudF90eXBlOwotKwot ICAgICBnX2Fzc2VydCAoSUJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7Ci0gCi0tICAg IEdWYXJpYW50ICpjYWNoZWRfY29udGVudF90eXBlID0KLSsgICAgY2FjaGVkX2NvbnRlbnRfdHlw ZSA9Ci0gICAgICAgICBnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eSAoKEdEQnVzUHJv eHkgKikgY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiQ29udGVudFR5cGUiKTsKLS0gICAgR1ZhcmlhbnQgKmNvbnRlbnRfdHlwZSA9IGdfdmFyaWFu dF9uZXcgKCIodXUpIiwgcHVycG9zZSwgaGludHMpOwotKyAgICBjb250ZW50X3R5cGUgPSBnX3Zh cmlhbnRfbmV3ICgiKHV1KSIsIHB1cnBvc2UsIGhpbnRzKTsKLSAKLSAgICAgZ192YXJpYW50X3Jl Zl9zaW5rIChjb250ZW50X3R5cGUpOwotICAgICBpZiAoY2FjaGVkX2NvbnRlbnRfdHlwZSA9PSBO VUxMIHx8Ci1AQCAtMTE0MiwxOCArMTE5OCwyMiBAQCBpYnVzX2lucHV0X2NvbnRleHRfZ2V0X2Vu Z2luZV9hc3luY19maW5pc2ggKElCdXNJbnB1dENvbnRleHQgICAqY29udGV4dCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAq cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9y ICAgICAgICAgICAgKiplcnJvcikKLSB7Ci0rICAgIEdWYXJpYW50ICp2YXJpYW50OwotKyAgICBH VmFyaWFudCAqZW5naW5lX2Rlc2NfdmFyaWFudDsKLSsgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2M7 Ci0rCi0gICAgIGdfYXNzZXJ0IChJQlVTX0lTX0lOUFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKLSAg ICAgZ19hc3NlcnQgKEdfSVNfQVNZTkNfUkVTVUxUIChyZXMpKTsKLSAgICAgZ19hc3NlcnQgKGVy cm9yID09IE5VTEwgfHwgKmVycm9yID09IE5VTEwpOwotIAotLSAgICBHVmFyaWFudCAqdmFyaWFu dCA9IGdfZGJ1c19wcm94eV9jYWxsX2ZpbmlzaCAoKEdEQnVzUHJveHkgKikgY29udGV4dCwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMsIGVy cm9yKTsKLSsgICAgdmFyaWFudCA9IGdfZGJ1c19wcm94eV9jYWxsX2ZpbmlzaCAoKEdEQnVzUHJv eHkgKikgY29udGV4dCwgcmVzLCBlcnJvcik7Ci0gICAgIGlmICh2YXJpYW50ID09IE5VTEwpIHsK LSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIEdWYXJpYW50ICplbmdpbmVf ZGVzY192YXJpYW50ID0gZ192YXJpYW50X2dldF9jaGlsZF92YWx1ZSAodmFyaWFudCwgMCk7Ci0t ICAgIElCdXNFbmdpbmVEZXNjICpkZXNjID0gSUJVU19FTkdJTkVfREVTQyAoaWJ1c19zZXJpYWxp emFibGVfZGVzZXJpYWxpemUgKGVuZ2luZV9kZXNjX3ZhcmlhbnQpKTsKLSsgICAgZW5naW5lX2Rl c2NfdmFyaWFudCA9IGdfdmFyaWFudF9nZXRfY2hpbGRfdmFsdWUgKHZhcmlhbnQsIDApOwotKyAg ICBkZXNjID0gSUJVU19FTkdJTkVfREVTQyAoCi0rICAgICAgICAgICAgaWJ1c19zZXJpYWxpemFi bGVfZGVzZXJpYWxpemUgKGVuZ2luZV9kZXNjX3ZhcmlhbnQpKTsKLSAgICAgZ192YXJpYW50X3Vu cmVmIChlbmdpbmVfZGVzY192YXJpYW50KTsKLSAgICAgZ192YXJpYW50X3VucmVmICh2YXJpYW50 KTsKLSAKLUBAIC0xMTYzLDkgKzEyMjMsMTMgQEAgaWJ1c19pbnB1dF9jb250ZXh0X2dldF9lbmdp bmVfYXN5bmNfZmluaXNoIChJQnVzSW5wdXRDb250ZXh0ICAgKmNvbnRleHQsCi0gSUJ1c0VuZ2lu ZURlc2MgKgotIGlidXNfaW5wdXRfY29udGV4dF9nZXRfZW5naW5lIChJQnVzSW5wdXRDb250ZXh0 ICpjb250ZXh0KQotIHsKLS0gICAgZ19hc3NlcnQgKElCVVNfSVNfSU5QVVRfQ09OVEVYVCAoY29u dGV4dCkpOwotICAgICBHVmFyaWFudCAqcmVzdWx0ID0gTlVMTDsKLSAgICAgR0Vycm9yICplcnJv ciA9IE5VTEw7Ci0rICAgIEdWYXJpYW50ICplbmdpbmVfZGVzY192YXJpYW50OwotKyAgICBJQnVz RW5naW5lRGVzYyAqZGVzYzsKLSsKLSsgICAgZ19hc3NlcnQgKElCVVNfSVNfSU5QVVRfQ09OVEVY VCAoY29udGV4dCkpOwotKwotICAgICByZXN1bHQgPSBnX2RidXNfcHJveHlfY2FsbF9zeW5jICgo R0RCdXNQcm94eSAqKSBjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiR2V0RW5naW5lIiwgICAgICAgICAgICAgICAvKiBtZXRob2RfbmFtZSAqLwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAg ICAvKiBwYXJhbWV0ZXJzICovCi1AQCAtMTE4OSw4ICsxMjUzLDkgQEAgaWJ1c19pbnB1dF9jb250 ZXh0X2dldF9lbmdpbmUgKElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi0gICAgICAgICByZXR1 cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBHVmFyaWFudCAqZW5naW5lX2Rlc2NfdmFyaWFudCA9 IGdfdmFyaWFudF9nZXRfY2hpbGRfdmFsdWUgKHJlc3VsdCwgMCk7Ci0tICAgIElCdXNFbmdpbmVE ZXNjICpkZXNjID0gSUJVU19FTkdJTkVfREVTQyAoaWJ1c19zZXJpYWxpemFibGVfZGVzZXJpYWxp emUgKGVuZ2luZV9kZXNjX3ZhcmlhbnQpKTsKLSsgICAgZW5naW5lX2Rlc2NfdmFyaWFudCA9IGdf dmFyaWFudF9nZXRfY2hpbGRfdmFsdWUgKHJlc3VsdCwgMCk7Ci0rICAgIGRlc2MgPSBJQlVTX0VO R0lORV9ERVNDICgKLSsgICAgICAgICAgICBpYnVzX3NlcmlhbGl6YWJsZV9kZXNlcmlhbGl6ZSAo ZW5naW5lX2Rlc2NfdmFyaWFudCkpOwotICAgICBnX3ZhcmlhbnRfdW5yZWYgKGVuZ2luZV9kZXNj X3ZhcmlhbnQpOwotICAgICBnX3ZhcmlhbnRfdW5yZWYgKHJlc3VsdCk7Ci0gCi1AQCAtMTIxNCw2 ICsxMjc5LDQxIEBAIGlidXNfaW5wdXRfY29udGV4dF9zZXRfZW5naW5lIChJQnVzSW5wdXRDb250 ZXh0ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgKTsKLSB9Ci0gCi0rdm9pZAot K2lidXNfaW5wdXRfY29udGV4dF9zZXRfY2xpZW50X2NvbW1pdF9wcmVlZGl0IChJQnVzSW5wdXRD b250ZXh0ICpjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnYm9vbGVhbiAgICAgICAgICBjbGllbnRfY29tbWl0KQotK3sKLSsgICAgR1Zhcmlh bnQgKmNhY2hlZF9jb250ZW50X3R5cGU7Ci0rICAgIEdWYXJpYW50ICp2YXJfY2xpZW50X2NvbW1p dDsKLSsKLSsgICAgZ19hc3NlcnQgKElCVVNfSVNfSU5QVVRfQ09OVEVYVCAoY29udGV4dCkpOwot KwotKyAgICBjYWNoZWRfY29udGVudF90eXBlID0KLSsgICAgICAgIGdfZGJ1c19wcm94eV9nZXRf Y2FjaGVkX3Byb3BlcnR5ICgoR0RCdXNQcm94eSAqKSBjb250ZXh0LAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDbGllbnRDb21taXRQcmVlZGl0Iik7Ci0rICAg IHZhcl9jbGllbnRfY29tbWl0ID0gZ192YXJpYW50X25ldyAoIihiKSIsIGNsaWVudF9jb21taXQp OwotKwotKyAgICBnX3ZhcmlhbnRfcmVmX3NpbmsgKHZhcl9jbGllbnRfY29tbWl0KTsKLSsgICAg aWYgKGNhY2hlZF9jb250ZW50X3R5cGUgPT0gTlVMTCkgewotKyAgICAgICAgZ19kYnVzX3Byb3h5 X2NhbGwgKChHREJ1c1Byb3h5ICopIGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnRpZXMuU2V0IiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdikiLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfSU5URVJGQUNFX0lOUFVUX0NPTlRFWFQsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNsaWVudENvbW1pdFBy ZWVkaXQiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcl9j bGllbnRfY29tbWl0KSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9G TEFHU19OT05FLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsIC8qIGNhbmNlbGxhYmxlICovCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgLyogY2FsbGJhY2sgKi8KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMICAvKiB1c2VyX2RhdGEgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAp OwotKyAgICB9Ci0rCi0rICAgIGlmIChjYWNoZWRfY29udGVudF90eXBlICE9IE5VTEwpCi0rICAg ICAgICBnX3ZhcmlhbnRfdW5yZWYgKGNhY2hlZF9jb250ZW50X3R5cGUpOwotKyAgICBnX3Zhcmlh bnRfdW5yZWYgKHZhcl9jbGllbnRfY29tbWl0KTsKLSt9Ci0rCi0gI2RlZmluZSBERUZJTkVfRlVO QyhuYW1lLCBOYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot ICAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSAgICAgaWJ1c19pbnB1dF9jb250ZXh0XyMjbmFtZSAoSUJ1c0lu cHV0Q29udGV4dCAqY29udGV4dCkgICAgICAgICAgICAgICBcCi1kaWZmIC0tZ2l0IGEvc3JjL2li dXNpbnB1dGNvbnRleHQuaCBiL3NyYy9pYnVzaW5wdXRjb250ZXh0LmgKLWluZGV4IGE3N2NmOTJm Li4wOTk5MjE0OCAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzaW5wdXRjb250ZXh0LmgKLSsrKyBiL3Ny Yy9pYnVzaW5wdXRjb250ZXh0LmgKLUBAIC0yLDcgKzIsOCBAQAotIC8qIHZpbTpzZXQgZXQgc3Rz PTQ6ICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgt MjAxMyBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQg KEMpIDIwMDgtMjAxMyBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDE4IFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykg MjAwOC0yMDE4IFJlZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtNDk4LDUg KzQ5OSwyOSBAQCB2b2lkICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9jb250ZW50X3R5 cGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAg ICAgICAgICAgICAgIHB1cnBvc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICBoaW50cyk7Ci0gCi0rLyoqCi0rICogaWJ1 c19pbnB1dF9jb250ZXh0X3NldF9jbGllbnRfY29tbWl0X3ByZWVkaXQ6Ci0rICogQGNvbnRleHQ6 IEFuICNJQnVzSW5wdXRDb250ZXh0LgotKyAqIEBjbGllbnRfY29tbWl0OiAlVFJVRSBpZiB5b3Vy IGlucHV0IGNvbnRleHQgY29tbWl0cyBwcmUtZWRpdCB0ZXh0cwotKyAqICAgICB3aXRoIFNwYWNl IG9yIEVudGVyIGtleSBldmVudHMgb3IgbW91c2UgY2xpY2sgZXZlbnRzLiAlRkFMU0UgaWYKLSsg KiAgICAgaWJ1cy1kYWVtb24gY29tbWl0cyBwcmUtZWRpdCB0ZXh0cyB3aXRoIHRob3NlIGV2ZW50 cy4KLSsgKiAgICAgVGhlIGRlZmF1bHQgaXMgJUZBTFNFLiBUaGUgYmVoYXZpb3IgaXMgZGVjaWRl ZCB3aXRoCi0rICogICAgIGlidXNfZW5naW5lX3VwZGF0ZV9wcmVlZGl0X3RleHRfd2l0aF9tb2Rl KCkgdG8gY29tbWl0LCBjbGVhciBvcgotKyAqICAgICBrZWVwIHRoZSBwcmUtZWRpdCB0ZXh0IGFu ZCB0aGlzIEFQSSBpcyBpbXBvcnRhbnQgaW4gaWJ1cy1oYW5ndWwuCi0rICoKLSsgKiBTZXQgd2hl dGhlciAjSUJ1c0lucHV0Q29udGV4dCBjb21taXRzIHByZS1lZGl0IHRleHRzIG9yIG5vdC4KLSsg KiBJZiAlVFJVRSwgJ3VwZGF0ZS1wcmVlZGl0LXRleHQtd2l0aC1tb2RlJyBzaWduYWwgaXMgZW1p dHRlZAotKyAqIGluc3RlYWQgb2YgJ3VwZGF0ZS1wcmVlZGl0LXRleHQnIHNpZ25hbC4KLSsgKiBJ ZiB5b3VyIGNsaWVudCByZWNlaXZlcyB0aGUgJ3VwZGF0ZS1wcmVlZGl0LXRleHQtd2l0aC1tb2Rl JyBzaWduYWwsCi0rICogdGhlIGNsaWVudCBuZWVkcyB0byBpbXBsZW1lbnQgY29tbWl0X3RleHQo KSBvZiBwcmUtZWRpdCB0ZXh0IHdoZW4KLSsgKiBHdGtJTUNvbnRleHRDbGFzcy5mb2N1c19vdXQo KSBpcyBjYWxsZWQgaW4gY2FzZSBhbiBJTUUgZGVzaXJlcyB0aGF0Ci0rICogYmVoYXZpb3IgYnV0 IGl0IGRlcGVuZHMgb24gZWFjaCBJTUUuCi0rICoKLSsgKiBTZWUgYWxzbyBpYnVzX2VuZ2luZV91 cGRhdGVfcHJlZWRpdF90ZXh0X3dpdGhfbW9kZSgpLgotKyAqLwotK3ZvaWQgICAgICAgICBpYnVz X2lucHV0X2NvbnRleHRfc2V0X2NsaWVudF9jb21taXRfcHJlZWRpdCAoCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c0lucHV0Q29udGV4dCAgICpjb250 ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29s ZWFuICAgICAgICAgICAgY2xpZW50X2NvbW1pdCk7Ci0rCi0gR19FTkRfREVDTFMKLSAjZW5kaWYK LS0tIAotMi4xNy4xCi0KLUZyb20gN2IzYjhjOGIwYzZhNDFhYjUyNGUwYmU5NDc0ODI1ZGE5Y2Jh OTZhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVq aXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMTMgTm92IDIwMTggMTQ6Mjc6NTIgKzA5MDAK LVN1YmplY3Q6IFtQQVRDSF0gY2xpZW50L2d0azI6IERvIG5vdCBkZWxldGUgSUJVU19DQVBfU1VS Uk9VTkRJTkdfVEVYVAotCi1yZXRyaWV2ZS1zdXJyb3VuZGluZyBzaWduYWwgY291bGQgYmUgZmFp bGVkIHdpdGggdGhlIGZpcnN0IHR5cGluZwotb24gZmlyZWZveC4gSXQgY291bGQgYmUgYSBidWcg aW4gZmlyZWZveCBidXQgbm93IElCdXNJTUNvbnRleHQgZG9lcyBub3QKLWRlbGV0ZSBJQlVTX0NB UF9TVVJST1VORElOR19URVhUIGluIHRoZSBjYXBhYmlsaXRpZXMgYXMgYSB3b3JrYXJvdW5kCi13 aGVuIHJldHJpZXZlLXN1cnJvdW5kaW5nIHNpZ25hbCBpcyBmYWlsZWQuCi1BbHNvIGFkZGVkIHJl dHJpZXZlLXN1cnJvdW5kaW5nIHNpZ25hbCBhZnRlciBzb21lIGNvbW1pdHRpbmcgdGV4dC4KLQot QlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzIwNTQKLS0tLQotIGNsaWVu dC9ndGsyL2lidXNpbWNvbnRleHQuYyB8IDExICsrKysrKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQs IDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NsaWVudC9n dGsyL2lidXNpbWNvbnRleHQuYyBiL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotaW5kZXgg NzNhMGVhZWMuLjgyYWY1MWExIDEwMDY0NAotLS0tIGEvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4 dC5jCi0rKysgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLUBAIC0yOTgsNiArMjk4LDcg QEAgaWJ1c19pbV9jb250ZXh0X2NvbW1pdF9ldmVudCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29u dGV4dCwKLSAgICAgICAgIElCdXNUZXh0ICp0ZXh0ID0gaWJ1c190ZXh0X25ld19mcm9tX3VuaWNo YXIgKGNoKTsKLSAgICAgICAgIGdfc2lnbmFsX2VtaXQgKGlidXNpbWNvbnRleHQsIF9zaWduYWxf Y29tbWl0X2lkLCAwLCB0ZXh0LT50ZXh0KTsKLSAgICAgICAgIGdfb2JqZWN0X3VucmVmICh0ZXh0 KTsKLSsgICAgICAgIF9yZXF1ZXN0X3N1cnJvdW5kaW5nX3RleHQgKGlidXNpbWNvbnRleHQpOwot ICAgICAgICAgcmV0dXJuIFRSVUU7Ci0gICAgIH0KLSAgICByZXR1cm4gRkFMU0U7Ci1AQCAtMzg2 LDkgKzM4NywxMiBAQCBfcmVxdWVzdF9zdXJyb3VuZGluZ190ZXh0IChJQnVzSU1Db250ZXh0ICpj b250ZXh0KQotICAgICAgICAgZ19zaWduYWxfZW1pdCAoY29udGV4dCwgX3NpZ25hbF9yZXRyaWV2 ZV9zdXJyb3VuZGluZ19pZCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICZyZXR1cm5fdmFs dWUpOwotICAgICAgICAgaWYgKCFyZXR1cm5fdmFsdWUpIHsKLS0gICAgICAgICAgICBjb250ZXh0 LT5jYXBzICY9IH5JQlVTX0NBUF9TVVJST1VORElOR19URVhUOwotLSAgICAgICAgICAgIGlidXNf aW5wdXRfY29udGV4dF9zZXRfY2FwYWJpbGl0aWVzIChjb250ZXh0LT5pYnVzY29udGV4dCwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ Y2Fwcyk7Ci0rICAgICAgICAgICAgLyogIzIwNTQgZmlyZWZveDo6SU1Db250ZXh0V3JhcHBlcjo6 R2V0Q3VycmVudFBhcmFncmFwaCgpIGNvdWxkCi0rICAgICAgICAgICAgICogZmFpbCB3aXRoIHRo ZSBmaXJzdCB0eXBpbmcgb24gZmlyZWZveCBidXQgaXQgc3VjY2VlZHMgd2l0aAotKyAgICAgICAg ICAgICAqIHRoZSBzZWNvbmQgdHlwaW5nLgotKyAgICAgICAgICAgICAqLwotKyAgICAgICAgICAg IGdfd2FybmluZyAoIiVzIGhhcyBubyBjYXBhYmlsaXR5IG9mIHN1cnJvdW5kaW5nLXRleHQgZmVh dHVyZSIsCi0rICAgICAgICAgICAgICAgICAgICAgICBnX2dldF9wcmduYW1lICgpKTsKLSAgICAg ICAgIH0KLSAgICAgfQotIH0KLUBAIC04NzcsNiArODgxLDcgQEAgaWJ1c19pbV9jb250ZXh0X2Ns ZWFyX3ByZWVkaXRfdGV4dCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCkKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dCk7Ci0g ICAgICAgICBnX3NpZ25hbF9lbWl0IChpYnVzaW1jb250ZXh0LCBfc2lnbmFsX2NvbW1pdF9pZCwg MCwgcHJlZWRpdF9zdHJpbmcpOwotICAgICAgICAgZ19mcmVlIChwcmVlZGl0X3N0cmluZyk7Ci0r ICAgICAgICBfcmVxdWVzdF9zdXJyb3VuZGluZ190ZXh0IChpYnVzaW1jb250ZXh0KTsKLSAgICAg fQotIH0KLSAKLS0tIAotMi4xNy4xCi0KLUZyb20gNGM0MGFmYmE5Yzg2MmI0ZjY2NTFiMWI5NzE1 NTNlNWU4OWU4MzM0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFRodSwgNiBEZWMgMjAxOCAxNjo1Mzo1 NyArMDkwMAotU3ViamVjdDogW1BBVENIXSBjbGllbnQvZ3RrMjogQWx3YXlzIHJlc2V0IGFuZCBj bGVhciBwcmVlZGl0IG9uIG1vdXNlIGNsaWNrCi0KLVRoaW5raW5nIGFib3V0IHRoZSByZXNldCBz aWduYWwgYWdhaW4sIG5vdyBJIHRoaW5rIGl0J3MgZ29vZCB0byBlbWl0Ci10aGUgcmVzZXQgc2ln bmFsIGFuZCBjbGVhciB0aGUgcHJlZWRpdCBvbiBtb3VzZSBjbGljayBmb3IgYW55IGVuZ2luZXMK LWJlc2lkZXMgSGFuZ3VsIGJlY2F1c2UgdGhlIGJlaGF2aW9yIGNvdWxkIGJlIGhhbmRsZWQgYnkg ZWFjaCBlbmdpbmUKLXdpdGggdGhlIHJlc2V0IHNpZ25hbC4KLQotQlVHPWh0dHBzOi8vZ2l0aHVi LmNvbS9pYnVzL2lidXMvaXNzdWVzLzE5ODAKLS0tLQotIGNsaWVudC9ndGsyL2lidXNpbWNvbnRl eHQuYyB8IDI2ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEz IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0 azIvaWJ1c2ltY29udGV4dC5jIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi1pbmRleCA4 MmFmNTFhMS4uZWQ3ZmVhNmUgMTAwNjQ0Ci0tLS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0 LmMKLSsrKyBiL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotQEAgLTg2OSwxNiArODY5LDE5 IEBAIGlidXNfaW1fY29udGV4dF9maW5hbGl6ZSAoR09iamVjdCAqb2JqKQotIHN0YXRpYyB2b2lk Ci0gaWJ1c19pbV9jb250ZXh0X2NsZWFyX3ByZWVkaXRfdGV4dCAoSUJ1c0lNQ29udGV4dCAqaWJ1 c2ltY29udGV4dCkKLSB7Ci0rICAgIGdjaGFyICpwcmVlZGl0X3N0cmluZyA9IE5VTEw7Ci0gICAg IGdfYXNzZXJ0IChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCk7Ci0gICAgIGlmIChpYnVzaW1j b250ZXh0LT5wcmVlZGl0X3Zpc2libGUgJiYKLSAgICAgICAgIGlidXNpbWNvbnRleHQtPnByZWVk aXRfbW9kZSA9PSBJQlVTX0VOR0lORV9QUkVFRElUX0NPTU1JVCkgewotLSAgICAgICAgZ2NoYXIg KnByZWVkaXRfc3RyaW5nID0gZ19zdHJkdXAgKGlidXNpbWNvbnRleHQtPnByZWVkaXRfc3RyaW5n KTsKLS0gICAgICAgIF9pYnVzX2NvbnRleHRfdXBkYXRlX3ByZWVkaXRfdGV4dF9jYiAoaWJ1c2lt Y29udGV4dC0+aWJ1c2NvbnRleHQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlidXNfdGV4dF9uZXdfZnJvbV9zdHJpbmcgKCIiKSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfRU5HSU5FX1BSRUVESVRfQ0xFQVIsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNpbWNvbnRl eHQpOwotKyAgICAgICAgcHJlZWRpdF9zdHJpbmcgPSBnX3N0cmR1cCAoaWJ1c2ltY29udGV4dC0+ cHJlZWRpdF9zdHJpbmcpOwotKyAgICB9Ci0rICAgIF9pYnVzX2NvbnRleHRfdXBkYXRlX3ByZWVk aXRfdGV4dF9jYiAoaWJ1c2ltY29udGV4dC0+aWJ1c2NvbnRleHQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c190ZXh0X25ld19mcm9tX3N0cmluZyAoIiIp LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19FTkdJTkVfUFJFRURJVF9DTEVBUiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzaW1jb250ZXh0 KTsKLSsgICAgaWYgKHByZWVkaXRfc3RyaW5nKSB7Ci0gICAgICAgICBnX3NpZ25hbF9lbWl0IChp YnVzaW1jb250ZXh0LCBfc2lnbmFsX2NvbW1pdF9pZCwgMCwgcHJlZWRpdF9zdHJpbmcpOwotICAg ICAgICAgZ19mcmVlIChwcmVlZGl0X3N0cmluZyk7Ci0gICAgICAgICBfcmVxdWVzdF9zdXJyb3Vu ZGluZ190ZXh0IChpYnVzaW1jb250ZXh0KTsKLUBAIC0xMTE0LDEyICsxMTE3LDkgQEAgaWJ1c19p bV9jb250ZXh0X2J1dHRvbl9wcmVzc19ldmVudF9jYiAoR3RrV2lkZ2V0ICAgICAgKndpZGdldCwK LSAgICAgaWYgKGV2ZW50LT5idXR0b24gIT0gMSkKLSAgICAgICAgIHJldHVybiBGQUxTRTsKLSAK LS0gICAgaWYgKGlidXNpbWNvbnRleHQtPnByZWVkaXRfdmlzaWJsZSAmJgotLSAgICAgICAgaWJ1 c2ltY29udGV4dC0+cHJlZWRpdF9tb2RlID09IElCVVNfRU5HSU5FX1BSRUVESVRfQ09NTUlUKSB7 Ci0tICAgICAgICBpYnVzX2ltX2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChpYnVzaW1jb250 ZXh0KTsKLS0gICAgICAgIGlmIChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCkKLS0gICAgICAg ICAgICBpYnVzX2lucHV0X2NvbnRleHRfcmVzZXQgKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0 KTsKLS0gICAgfQotKyAgICBpYnVzX2ltX2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChpYnVz aW1jb250ZXh0KTsKLSsgICAgaWYgKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KQotKyAgICAg ICAgaWJ1c19pbnB1dF9jb250ZXh0X3Jlc2V0IChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCk7 Ci0gICAgIHJldHVybiBGQUxTRTsKLSB9Ci0gCi0tLSAKLTIuMTkuMQotCi1Gcm9tIGJhNDExNzNj NDVhNGJhNmUwNDdmOTRhYzUzNDc0NDMzYzc2NDM1OTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBGcmks IDcgRGVjIDIwMTggMTc6Mzg6MDkgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gc3JjOiBTaG93IGNv bXBvc2UgcHJlZWRpdCB3aXRoIGN1c3RvbSBjb21wb3NlIGZpbGUKLQotSUJ1c0VuZ2luZVNpbXBs ZSBpcyBmaXhlZCBmb3IgY3VzdG9tIGNvbXBvc2UgZmlsZXMKLSAtIFNob3cgcHJlZWVkaXQgd2l0 aCBjdXN0b20gY29tcG9zZSBmaWxlCi0gLSBUZW50YXRpdmUgY29tcG9zZSBwcmVlZGl0IGNhbiBi ZSBkZWxldGVkIGJ5IEJhY2tzcGFjZQotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1 cy9pc3N1ZXMvMjA1OAotLS0tCi0gc3JjL2lidXNlbmdpbmVzaW1wbGUuYyB8IDkzICsrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA1MyBp bnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9pYnVzZW5n aW5lc2ltcGxlLmMgYi9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCi1pbmRleCBhYWU2YjhkZi4uYmE5 ZDkyYjYgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCi0rKysgYi9zcmMvaWJ1 c2VuZ2luZXNpbXBsZS5jCi1AQCAtMzU3LDcgKzM1Nyw3IEBAIGlidXNfZW5naW5lX3NpbXBsZV91 cGRhdGVfcHJlZWRpdF90ZXh0IChJQnVzRW5naW5lU2ltcGxlICpzaW1wbGUpCi0gICAgIH0gZWxz ZSB7Ci0gICAgICAgICBpbnQgaGV4Y2hhcnMgPSAwOwotICAgICAgICAgd2hpbGUgKHByaXYtPmNv bXBvc2VfYnVmZmVyW2hleGNoYXJzXSAhPSAwKSB7Ci0tICAgICAgICAgICAgZ3VpbnQxNiBrZXlz eW09IHByaXYtPmNvbXBvc2VfYnVmZmVyW2hleGNoYXJzXTsKLSsgICAgICAgICAgICBndWludDE2 IGtleXN5bSA9IHByaXYtPmNvbXBvc2VfYnVmZmVyW2hleGNoYXJzXTsKLSAgICAgICAgICAgICBn dW5pY2hhciB1bmljaGFyID0gaWJ1c19rZXlzeW1fdG9fdW5pY29kZSAoa2V5c3ltLCBGQUxTRSk7 Ci0gICAgICAgICAgICAgaWYgKHVuaWNoYXIgPiAwKQotICAgICAgICAgICAgICAgICBvdXRidWZb bGVuXSA9IHVuaWNoYXI7Ci1AQCAtNjIwLDYgKzYyMCw4IEBAIGNoZWNrX3RhYmxlIChJQnVzRW5n aW5lU2ltcGxlICAgICAgICpzaW1wbGUsCi0gCi0gICAgIGd1aW50MTYgKnByZXZfc2VxOwotIAot KyAgICBwcml2LT50ZW50YXRpdmVfbWF0Y2ggPSAwOwotKyAgICBwcml2LT50ZW50YXRpdmVfbWF0 Y2hfbGVuID0gMDsKLSAgICAgLyogQmFjayB1cCB0byB0aGUgZmlyc3Qgc2VxdWVuY2UgdGhhdCBt YXRjaGVzIHRvIG1ha2Ugc3VyZQotICAgICAgKiB3ZSBmaW5kIHRoZSBleGFjdCBtYXRjaCBpZiB0 aGVpciBpcyBvbmUuCi0gICAgICAqLwotQEAgLTY1NCw5ICs2NTYsOSBAQCBjaGVja190YWJsZSAo SUJ1c0VuZ2luZVNpbXBsZSAgICAgICAqc2ltcGxlLAotIAotICAgICAgICAgaWJ1c19lbmdpbmVf c2ltcGxlX2NvbW1pdF9jaGFyIChzaW1wbGUsIHZhbHVlKTsKLSAgICAgICAgIHByaXYtPmNvbXBv c2VfYnVmZmVyWzBdID0gMDsKLS0gICAgICAgIGlidXNfZW5naW5lX3NpbXBsZV91cGRhdGVfcHJl ZWRpdF90ZXh0IChzaW1wbGUpOwotICAgICAgICAgLy8gZ19kZWJ1ZyAoIlUrJTA0WFxuIiwgdmFs dWUpOwotICAgICB9Ci0rICAgIGlidXNfZW5naW5lX3NpbXBsZV91cGRhdGVfcHJlZWRpdF90ZXh0 IChzaW1wbGUpOwotICAgICByZXR1cm4gVFJVRTsKLSB9Ci0gCi1AQCAtMTA1Nyw2ICsxMDU5LDUx IEBAIGlidXNfZW5naW5lX3NpbXBsZV9zZXRfbnVtYmVyX29uX2xvb2t1cF90YWJsZSAoSUJ1c0Vu Z2luZVNpbXBsZSAqc2ltcGxlLAotICAgICBpYnVzX2VuZ2luZV9zaW1wbGVfdXBkYXRlX3ByZWVk aXRfdGV4dCAoc2ltcGxlKTsKLSB9Ci0gCi0rc3RhdGljIGdib29sZWFuCi0raWJ1c19lbmdpbmVf c2ltcGxlX2NoZWNrX2FsbF9jb21wb3NlX3RhYmxlIChJQnVzRW5naW5lU2ltcGxlICpzaW1wbGUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAg ICAgICAgICBuX2NvbXBvc2UpCi0rewotKyAgICBJQnVzRW5naW5lU2ltcGxlUHJpdmF0ZSAqcHJp diA9IHNpbXBsZS0+cHJpdjsKLSsgICAgZ2Jvb2xlYW4gY29tcG9zZV9maW5pc2g7Ci0rICAgIGd1 bmljaGFyIG91dHB1dF9jaGFyOwotKyAgICBHU0xpc3QgKmxpc3QgPSBnbG9iYWxfdGFibGVzOwot KwotKyAgICB3aGlsZSAobGlzdCkgewotKyAgICAgICAgaWYgKGNoZWNrX3RhYmxlIChzaW1wbGUs Ci0rICAgICAgICAgICAgKElCdXNDb21wb3NlVGFibGUgKilsaXN0LT5kYXRhLAotKyAgICAgICAg ICAgIG5fY29tcG9zZSkpIHsKLSsgICAgICAgICAgICByZXR1cm4gVFJVRTsKLSsgICAgICAgIH0K LSsgICAgICAgIGxpc3QgPSBsaXN0LT5uZXh0OwotKyAgICB9Ci0rCi0rICAgIGlmIChpYnVzX2No ZWNrX2NvbXBhY3RfdGFibGUgKCZpYnVzX2NvbXBvc2VfdGFibGVfY29tcGFjdCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+Y29tcG9zZV9idWZmZXIsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5fY29tcG9zZSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmNvbXBvc2VfZmluaXNoLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmb3V0cHV0X2NoYXIpKSB7Ci0rICAgICAgICBpZiAoY29tcG9zZV9maW5p c2gpIHsKLSsgICAgICAgICAgICBpYnVzX2VuZ2luZV9zaW1wbGVfY29tbWl0X2NoYXIgKHNpbXBs ZSwgb3V0cHV0X2NoYXIpOwotKyAgICAgICAgICAgIHByaXYtPmNvbXBvc2VfYnVmZmVyWzBdID0g MDsKLSsgICAgICAgIH0KLSsgICAgICAgIGlidXNfZW5naW5lX3NpbXBsZV91cGRhdGVfcHJlZWRp dF90ZXh0IChzaW1wbGUpOwotKyAgICAgICAgcmV0dXJuIFRSVUU7Ci0rICAgIH0KLSsKLSsgICAg aWYgKGlidXNfY2hlY2tfYWxnb3JpdGhtaWNhbGx5IChwcml2LT5jb21wb3NlX2J1ZmZlciwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX2NvbXBvc2UsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dHB1dF9jaGFyKSkgewotKyAgICAgICAgaWYg KG91dHB1dF9jaGFyKSB7Ci0rICAgICAgICAgICAgaWJ1c19lbmdpbmVfc2ltcGxlX2NvbW1pdF9j aGFyIChzaW1wbGUsIG91dHB1dF9jaGFyKTsKLSsgICAgICAgICAgICBwcml2LT5jb21wb3NlX2J1 ZmZlclswXSA9IDA7Ci0rICAgICAgICB9Ci0rICAgICAgICBpYnVzX2VuZ2luZV9zaW1wbGVfdXBk YXRlX3ByZWVkaXRfdGV4dCAoc2ltcGxlKTsKLSsgICAgICAgIHJldHVybiBUUlVFOwotKyAgICB9 Ci0rCi0rICAgIHJldHVybiBGQUxTRTsKLSt9Ci0rCi0gc3RhdGljIGdib29sZWFuCi0gaWJ1c19l bmdpbmVfc2ltcGxlX3Byb2Nlc3Nfa2V5X2V2ZW50IChJQnVzRW5naW5lICplbmdpbmUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICBrZXl2YWwsCi1A QCAtMTA3Niw4ICsxMTIzLDYgQEAgaWJ1c19lbmdpbmVfc2ltcGxlX3Byb2Nlc3Nfa2V5X2V2ZW50 IChJQnVzRW5naW5lICplbmdpbmUsCi0gICAgIGd1aW50IGhleF9rZXl2YWw7Ci0gICAgIGd1aW50 IHByaW50YWJsZV9rZXl2YWw7Ci0gICAgIGdpbnQgaTsKLS0gICAgZ2Jvb2xlYW4gY29tcG9zZV9m aW5pc2g7Ci0tICAgIGd1bmljaGFyIG91dHB1dF9jaGFyOwotIAotICAgICB3aGlsZSAobl9jb21w b3NlIDwgRU1PSklfU09VUkNFX0xFTiAmJiBwcml2LT5jb21wb3NlX2J1ZmZlcltuX2NvbXBvc2Vd ICE9IDApCi0gICAgICAgICBuX2NvbXBvc2UrKzsKLUBAIC0xMjQ3LDcgKzEyOTIsOCBAQCBpYnVz X2VuZ2luZV9zaW1wbGVfcHJvY2Vzc19rZXlfZXZlbnQgKElCdXNFbmdpbmUgKmVuZ2luZSwKLSAg ICAgICAgIGlmIChuX2NvbXBvc2UgPiAwKSB7Ci0gICAgICAgICAgICAgbl9jb21wb3NlLS07Ci0g ICAgICAgICAgICAgcHJpdi0+Y29tcG9zZV9idWZmZXJbbl9jb21wb3NlXSA9IDA7Ci0tICAgICAg ICAgICAgaWJ1c19lbmdpbmVfc2ltcGxlX3VwZGF0ZV9wcmVlZGl0X3RleHQgKHNpbXBsZSk7Ci0r ICAgICAgICAgICAgcHJpdi0+dGVudGF0aXZlX21hdGNoID0gMDsKLSsgICAgICAgICAgICBpYnVz X2VuZ2luZV9zaW1wbGVfY2hlY2tfYWxsX2NvbXBvc2VfdGFibGUgKHNpbXBsZSwgbl9jb21wb3Nl KTsKLSAgICAgICAgICAgICByZXR1cm4gVFJVRTsKLSAgICAgICAgIH0KLSAgICAgfQotQEAgLTE0 NzksNDIgKzE1MjUsOSBAQCBpYnVzX2VuZ2luZV9zaW1wbGVfcHJvY2Vzc19rZXlfZXZlbnQgKElC dXNFbmdpbmUgKmVuZ2luZSwKLSAKLSAgICAgICAgICAgICByZXR1cm4gVFJVRTsKLSAgICAgICAg IH0KLS0gICAgfQotLSAgICBlbHNlIHsKLS0gICAgICAgIEdTTGlzdCAqbGlzdCA9IGdsb2JhbF90 YWJsZXM7Ci0tICAgICAgICB3aGlsZSAobGlzdCkgewotLSAgICAgICAgICAgIGlmIChjaGVja190 YWJsZSAoc2ltcGxlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNDb21wb3Nl VGFibGUgKilsaXN0LT5kYXRhLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9jb21w b3NlKSkgewotLSAgICAgICAgICAgICAgICAvLyBnX2RlYnVnKCJjaGVja190YWJsZSByZXR1cm5z IHRydWUiKTsKLS0gICAgICAgICAgICAgICAgcmV0dXJuIFRSVUU7Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgICAgIGxpc3QgPSBsaXN0LT5uZXh0OwotLSAgICAgICAgfQotLQotLSAgICAgICAg aWYgKGlidXNfY2hlY2tfY29tcGFjdF90YWJsZSAoJmlidXNfY29tcG9zZV90YWJsZV9jb21wYWN0 LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+Y29tcG9zZV9i dWZmZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX2NvbXBvc2Us Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcG9zZV9maW5pc2gs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0cHV0X2NoYXIpKSB7 Ci0tICAgICAgICAgICAgaWYgKGNvbXBvc2VfZmluaXNoKSB7Ci0tICAgICAgICAgICAgICAgIGli dXNfZW5naW5lX3NpbXBsZV9jb21taXRfY2hhciAoc2ltcGxlLCBvdXRwdXRfY2hhcik7Ci0tICAg ICAgICAgICAgICAgIHByaXYtPmNvbXBvc2VfYnVmZmVyWzBdID0gMDsKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgaWJ1c19lbmdpbmVfc2ltcGxlX3VwZGF0ZV9wcmVlZGl0X3RleHQgKHNp bXBsZSk7Ci0tICAgICAgICAgICAgcmV0dXJuIFRSVUU7Ci0tICAgICAgICB9Ci0tCi0tICAgICAg ICBpZiAoaWJ1c19jaGVja19hbGdvcml0aG1pY2FsbHkgKHByaXYtPmNvbXBvc2VfYnVmZmVyLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX2NvbXBvc2UsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRwdXRfY2hhcikpIHsKLS0g ICAgICAgICAgICBpZiAob3V0cHV0X2NoYXIpIHsKLS0gICAgICAgICAgICAgICAgaWJ1c19lbmdp bmVfc2ltcGxlX2NvbW1pdF9jaGFyIChzaW1wbGUsIG91dHB1dF9jaGFyKTsKLS0gICAgICAgICAg ICAgICAgcHJpdi0+Y29tcG9zZV9idWZmZXJbMF0gPSAwOwotLSAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICBpYnVzX2VuZ2luZV9zaW1wbGVfdXBkYXRlX3ByZWVkaXRfdGV4dCAoc2ltcGxlKTsK LSsgICAgfSBlbHNlIHsKLSsgICAgICAgIGlmIChpYnVzX2VuZ2luZV9zaW1wbGVfY2hlY2tfYWxs X2NvbXBvc2VfdGFibGUgKHNpbXBsZSwgbl9jb21wb3NlKSkKLSAgICAgICAgICAgICByZXR1cm4g VFJVRTsKLS0gICAgICAgIH0KLSAgICAgfQotIAotICAgICAvKiBUaGUgY3VycmVudCBjb21wb3Nl X2J1ZmZlciBkb2Vzbid0IG1hdGNoIGFueXRoaW5nICovCi0tLSAKLTIuMTkuMQotCi1Gcm9tIDI4 YjA3NDRhZDE0MWJkNzYyODEwMjVlOWQwODU3ZDIxODJiYzJhNjUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRl OiBNb24sIDEwIERlYyAyMDE4IDEzOjIxOjQyICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNyYzog Q2xlYXIgcHJlZWRpdCBpbiBJQnVzRW5naW5lU2ltcGxlIHdpdGggZm9jdXMgY2hhbmdlcwotCi1C VUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjA2MwotLS0tCi0gc3JjL2li dXNlbmdpbmVzaW1wbGUuYyB8IDIzICsrKysrKysrKysrKysrKysrKysrLS0tCi0gMSBmaWxlIGNo YW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9z cmMvaWJ1c2VuZ2luZXNpbXBsZS5jIGIvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotaW5kZXggYmE5 ZDkyYjYuLjc2MTVmMTIxIDEwMDY0NAotLS0tIGEvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotKysr IGIvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotQEAgLTEwNSw2ICsxMDUsOCBAQCBzdGF0aWMgR1NM aXN0ICpnbG9iYWxfdGFibGVzOwotIAotIC8qIGZ1bmN0aW9ucyBwcm90b3R5cGUgKi8KLSBzdGF0 aWMgdm9pZCAgICAgaWJ1c19lbmdpbmVfc2ltcGxlX2Rlc3Ryb3kgICAgICAoSUJ1c0VuZ2luZVNp bXBsZSAgICpzaW1wbGUpOwotK3N0YXRpYyB2b2lkICAgICBpYnVzX2VuZ2luZV9zaW1wbGVfZm9j dXNfaW4gICAgIChJQnVzRW5naW5lICAgICAgICAgKmVuZ2luZSk7Ci0rc3RhdGljIHZvaWQgICAg IGlidXNfZW5naW5lX3NpbXBsZV9mb2N1c19vdXQgICAgKElCdXNFbmdpbmUgICAgICAgICAqZW5n aW5lKTsKLSBzdGF0aWMgdm9pZCAgICAgaWJ1c19lbmdpbmVfc2ltcGxlX3Jlc2V0ICAgICAgICAo SUJ1c0VuZ2luZSAgICAgICAgICplbmdpbmUpOwotIHN0YXRpYyBnYm9vbGVhbiBpYnVzX2VuZ2lu ZV9zaW1wbGVfcHJvY2Vzc19rZXlfZXZlbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoSUJ1c0VuZ2luZSAgICAgICAgICplbmdpbmUsCi1AQCAtMTM2 LDYgKzEzOCw4IEBAIGlidXNfZW5naW5lX3NpbXBsZV9jbGFzc19pbml0IChJQnVzRW5naW5lU2lt cGxlQ2xhc3MgKmNsYXNzKQotICAgICBpYnVzX29iamVjdF9jbGFzcy0+ZGVzdHJveSA9Ci0gICAg ICAgICAoSUJ1c09iamVjdERlc3Ryb3lGdW5jKSBpYnVzX2VuZ2luZV9zaW1wbGVfZGVzdHJveTsK LSAKLSsgICAgZW5naW5lX2NsYXNzLT5mb2N1c19pbiAgPSBpYnVzX2VuZ2luZV9zaW1wbGVfZm9j dXNfaW47Ci0rICAgIGVuZ2luZV9jbGFzcy0+Zm9jdXNfb3V0ID0gaWJ1c19lbmdpbmVfc2ltcGxl X2ZvY3VzX291dDsKLSAgICAgZW5naW5lX2NsYXNzLT5yZXNldCAgICAgPSBpYnVzX2VuZ2luZV9z aW1wbGVfcmVzZXQ7Ci0gICAgIGVuZ2luZV9jbGFzcy0+cHJvY2Vzc19rZXlfZXZlbnQKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSBpYnVzX2VuZ2luZV9zaW1wbGVfcHJvY2Vzc19rZXlf ZXZlbnQ7Ci1AQCAtMTc2LDYgKzE4MCwxOSBAQCBpYnVzX2VuZ2luZV9zaW1wbGVfZGVzdHJveSAo SUJ1c0VuZ2luZVNpbXBsZSAqc2ltcGxlKQotICAgICAgICAgSUJVU19PQkpFQ1QgKHNpbXBsZSkp OwotIH0KLSAKLStzdGF0aWMgdm9pZAotK2lidXNfZW5naW5lX3NpbXBsZV9mb2N1c19pbiAoSUJ1 c0VuZ2luZSAqZW5naW5lKQotK3sKLSsgICAgSUJVU19FTkdJTkVfQ0xBU1MgKGlidXNfZW5naW5l X3NpbXBsZV9wYXJlbnRfY2xhc3MpLT5mb2N1c19pbiAoZW5naW5lKTsKLSt9Ci0rCi0rc3RhdGlj IHZvaWQKLStpYnVzX2VuZ2luZV9zaW1wbGVfZm9jdXNfb3V0IChJQnVzRW5naW5lICplbmdpbmUp Ci0rewotKyAgICBpYnVzX2VuZ2luZV9zaW1wbGVfcmVzZXQgKGVuZ2luZSk7Ci0rICAgIElCVVNf RU5HSU5FX0NMQVNTIChpYnVzX2VuZ2luZV9zaW1wbGVfcGFyZW50X2NsYXNzKS0+Zm9jdXNfb3V0 IChlbmdpbmUpOwotK30KLSsKLSBzdGF0aWMgdm9pZAotIGlidXNfZW5naW5lX3NpbXBsZV9yZXNl dCAoSUJ1c0VuZ2luZSAqZW5naW5lKQotIHsKLUBAIC0xODgsMTQgKzIwNSwxNCBAQCBpYnVzX2Vu Z2luZV9zaW1wbGVfcmVzZXQgKElCdXNFbmdpbmUgKmVuZ2luZSkKLSAgICAgICAgIHByaXYtPmlu X2hleF9zZXF1ZW5jZSA9IEZBTFNFOwotICAgICAgICAgcHJpdi0+dGVudGF0aXZlX21hdGNoID0g MDsKLSAgICAgICAgIHByaXYtPnRlbnRhdGl2ZV9tYXRjaF9sZW4gPSAwOwotLSAgICAgICAgaWJ1 c19lbmdpbmVfaGlkZV9wcmVlZGl0X3RleHQgKChJQnVzRW5naW5lICopc2ltcGxlKTsKLSAgICAg fSBlbHNlIGlmIChwcml2LT50ZW50YXRpdmVfZW1vamkgfHwgcHJpdi0+aW5fZW1vamlfc2VxdWVu Y2UpIHsKLSAgICAgICAgIHByaXYtPmluX2Vtb2ppX3NlcXVlbmNlID0gRkFMU0U7Ci0gICAgICAg ICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT50ZW50YXRpdmVfZW1vamksIGdfZnJlZSk7Ci0tICAg ICAgICBpYnVzX2VuZ2luZV9oaWRlX3ByZWVkaXRfdGV4dCAoKElCdXNFbmdpbmUgKilzaW1wbGUp OwotICAgICB9IGVsc2UgaWYgKCFwcml2LT5pbl9oZXhfc2VxdWVuY2UgJiYgIXByaXYtPmluX2Vt b2ppX3NlcXVlbmNlKSB7Ci0tICAgICAgICBpYnVzX2VuZ2luZV9oaWRlX3ByZWVkaXRfdGV4dCAo KElCdXNFbmdpbmUgKilzaW1wbGUpOwotKyAgICAgICAgcHJpdi0+dGVudGF0aXZlX21hdGNoID0g MDsKLSsgICAgICAgIHByaXYtPnRlbnRhdGl2ZV9tYXRjaF9sZW4gPSAwOwotICAgICB9Ci0rICAg IGlidXNfZW5naW5lX2hpZGVfcHJlZWRpdF90ZXh0ICgoSUJ1c0VuZ2luZSAqKXNpbXBsZSk7Ci0g fQotIAotIHN0YXRpYyB2b2lkCi0tLSAKLTIuMTkuMQotCi1Gcm9tIGM3ZDg3NzFjYjlmYzY1MmNi NjM4YWE3Y2I4ZTEwZWE2Yjg4OTUwOWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBm dWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDExIERlYyAy MDE4IDE5OjE2OjEwICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNsaWVudC9ndGsyOiBGaXggU0VH ViBvbiBtb3VzZSBjbGlja3Mgd2hlbiBpYnVzLWRhZW1vbiBub3QKLSBydW5uaW5nCi0KLS0tLQot IGNsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyB8IDUgKysrLS0KLSAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0 azIvaWJ1c2ltY29udGV4dC5jIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi1pbmRleCBl ZDdmZWE2ZS4uYWI3ZmY4OGEgMTAwNjQ0Ci0tLS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0 LmMKLSsrKyBiL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotQEAgLTExMTcsOSArMTExNywx MCBAQCBpYnVzX2ltX2NvbnRleHRfYnV0dG9uX3ByZXNzX2V2ZW50X2NiIChHdGtXaWRnZXQgICAg ICAqd2lkZ2V0LAotICAgICBpZiAoZXZlbnQtPmJ1dHRvbiAhPSAxKQotICAgICAgICAgcmV0dXJu IEZBTFNFOwotIAotLSAgICBpYnVzX2ltX2NvbnRleHRfY2xlYXJfcHJlZWRpdF90ZXh0IChpYnVz aW1jb250ZXh0KTsKLS0gICAgaWYgKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KQotKyAgICBp ZiAoaWJ1c2ltY29udGV4dC0+aWJ1c2NvbnRleHQpIHsKLSsgICAgICAgIGlidXNfaW1fY29udGV4 dF9jbGVhcl9wcmVlZGl0X3RleHQgKGlidXNpbWNvbnRleHQpOwotICAgICAgICAgaWJ1c19pbnB1 dF9jb250ZXh0X3Jlc2V0IChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCk7Ci0rICAgIH0KLSAg ICAgcmV0dXJuIEZBTFNFOwotIH0KLSAKLS0tIAotMi4xOS4xCi0KLUZyb20gYTc4ZTdmOGRlYjUx ZjAxMTI1MzI1ZGE4NjhjOGZjNzVmMDQzNmIzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IE1vbiwgMTcg RGVjIDIwMTggMjA6MTA6MzQgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gY29uZmlndXJlOiBHZW5l cmF0ZSBpYnVzX2xvY2FsZWRpciB2YXJpYWJsZQotCi0tLS0KLSBjb25maWd1cmUuYWMgICAgIHwg IDMgKystCi0gbTQvaWJ1c2xvY2FsZS5tNCB8IDE1ICsrKysrKysrKysrKysrKwotIDIgZmlsZXMg Y2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotIGNyZWF0ZSBtb2RlIDEw MDY0NCBtNC9pYnVzbG9jYWxlLm00Ci0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25m aWd1cmUuYWMKLWluZGV4IDI2YTA0OGM4Li44ZmM3NjIzOSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3Vy ZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTExLDcgKzExMSw4IEBAIEdFVFRFWFRfUEFD S0FHRT1pYnVzMTAKLSBBQ19TVUJTVChHRVRURVhUX1BBQ0tBR0UpCi0gQUNfREVGSU5FX1VOUVVP VEVEKEdFVFRFWFRfUEFDS0FHRSwgIiRHRVRURVhUX1BBQ0tBR0UiLAotICAgICAgICAgICAgICAg ICAgICBbVGhlIHByZWZpeCBmb3Igb3V0IGdldHRleHQgdHJhbnNsYXRpb24gZG9tYWlucy5dKQot LUFDX0RFRklORV9VTlFVT1RFRChMT0NBTEVESVIsICIkbG9jYWxlZGlyIiwKLStERUZJTkVfSUJV U19MT0NBTEVESVIKLStBQ19ERUZJTkVfVU5RVU9URUQoTE9DQUxFRElSLCAiJGlidXNfbG9jYWxl ZGlyIiwKLSAgICAgICAgICAgICAgICAgICAgW0RlZmluZSB0aGUgbG9jYXRpb24gd2hlcmUgdGhl IGNhdGFsb2dzIHdpbGwgYmUgaW5zdGFsbGVkXSkKLSAKLSAjIEZvciBkaXNscGF5IGRhdGUuCi1k aWZmIC0tZ2l0IGEvbTQvaWJ1c2xvY2FsZS5tNCBiL200L2lidXNsb2NhbGUubTQKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uZDBmNDVjZmIKLS0tLSAvZGV2L251bGwKLSsr KyBiL200L2lidXNsb2NhbGUubTQKLUBAIC0wLDAgKzEsMTUgQEAKLStBQ19ERUZVTihbREVGSU5F X0lCVVNfTE9DQUxFRElSXSwgWwotK2lidXNfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCi0raWJ1c19z YXZlX2RhdGFyb290ZGlyPSIkZGF0YXJvb3RkaXIiCi0raWJ1c19zYXZlX2RhdGFkaXI9IiRkYXRh ZGlyIgotK2lidXNfc2F2ZV9sb2NhbGVkaXI9IiRsb2NhbGVkaXIiCi0rdGVzdCAieCRwcmVmaXgi ID0geE5PTkUgJiYgcHJlZml4PSRhY19kZWZhdWx0X3ByZWZpeAotK2RhdGFyb290ZGlyPWBldmFs IGVjaG8gIiRkYXRhcm9vdGRpciJgCi0rZGF0YWRpcj1gZXZhbCBlY2hvICIkZGF0YWRpciJgCi0r dGVzdCAieCRsb2NhbGVkaXIiID0geE5PTkUgJiYgbG9jYWxlZGlyPSIke2RhdGFkaXJ9L2xvY2Fs ZSIKLStpYnVzX2xvY2FsZWRpcj1gZXZhbCBlY2hvICIkbG9jYWxlZGlyImAKLStsb2NhbGVkaXI9 IiRpYnVzX3NhdmVfbG9jYWxlZGlyIgotK2RhdGFkaXI9IiRpYnVzX3NhdmVfZGF0YWRpciIKLStk YXRhcm9vdGRpcj0iJGlidXNfc2F2ZV9kYXRhcm9vdGRpciIKLStwcmVmaXg9IiRpYnVzX3NhdmVf cHJlZml4IgotK10pCi0tLSAKLTIuMjAuMQotCi1Gcm9tIDFjZDUyNTQ4MTEyNTliZWZlNTBjOGJk ODE1ODRkMWJmZTJjNjNlZDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBnbGFzc2V5 ZXMgPGRnbGFzc2V5QGdtYWlsLmNvbT4KLURhdGU6IE1vbiwgMTcgRGVjIDIwMTggMjA6MjA6MTEg KzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gc3JjOiB1c2UgaXNvIDYzOS0zIHRvIGhhdmUgbmFtZXMg Zm9yIG1vcmUgbGFuZ3VhZ2VzCi0KLUtleW1hbiBhbmQgb3RoZXJzIHN1cHBvcnQgdGhlbSBzbyB0 aGV5IHNob3VsZG4ndCBiZSBpbiAiT3RoZXIiCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1 cy9pYnVzL2lzc3Vlcy8yMDY0Ci0tLS0KLSBpYnVzL2xhbmcucHkgICB8ICA4ICsrKystLS0tCi0g c3JjL2lidXN1dGlsLmMgfCAxNiArKysrKysrKy0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2lidXMvbGFu Zy5weSBiL2lidXMvbGFuZy5weQotaW5kZXggM2IzZjU1MmYuLjY0MzI0YmQ4IDEwMDY0NAotLS0t IGEvaWJ1cy9sYW5nLnB5Ci0rKysgYi9pYnVzL2xhbmcucHkKLUBAIC0zNiw3ICszNiw3IEBAIGRl ZiBnZXRfbGFuZ3VhZ2VfbmFtZShfbG9jYWxlKToKLSAgICAgbGFuZyA9IGxhbmcubG93ZXIoKQot ICAgICBpZiBsYW5nIGluIF9fbGFuZ3VhZ2VzX2RpY3Q6Ci0gICAgICAgICBsYW5nID0gX19sYW5n dWFnZXNfZGljdFtsYW5nXQotLSAgICAgICAgbGFuZyA9IGdldHRleHQuZGdldHRleHQoImlzb182 MzkiLCBsYW5nKQotKyAgICAgICAgbGFuZyA9IGdldHRleHQuZGdldHRleHQoImlzb182MzktMyIs IGxhbmcpCi0gICAgIGVsc2U6Ci0gICAgICAgICBsYW5nID0gXyh1Ik90aGVyIikKLSAgICAgICAg IGxhbmcgPSBnZXR0ZXh0LmRnZXR0ZXh0KCJpYnVzIiwgbGFuZykKLUBAIC00Niw3ICs0Niw3IEBA IGRlZiBfX3N0YXJ0X2VsZW1lbnQobmFtZSwgYXR0cnMpOgotICAgICBnbG9iYWwgX19sYW5ndWFn ZXNfZGljdAotICAgICB0cnk6Ci0gICAgICAgICBuYW1lID0gYXR0cnNbdSJuYW1lIl0KLS0gICAg ICAgIGZvciBhdHRyX25hbWUgaW4gKHUiaXNvXzYzOV8yQl9jb2RlIiwgdSJpc29fNjM5XzJUX2Nv ZGUiLCB1Imlzb182MzlfMV9jb2RlIik6Ci0rICAgICAgICBmb3IgYXR0cl9uYW1lIGluICh1Imlk IiwgdSJwYXJ0MV9jb2RlIiwgdSJwYXJ0Ml9jb2RlIik6Ci0gICAgICAgICAgICAgaWYgYXR0cl9u YW1lIGluIGF0dHJzOgotICAgICAgICAgICAgICAgICBhdHRyX3ZhbHVlID0gYXR0cnNbYXR0cl9u YW1lXQotICAgICAgICAgICAgICAgICBfX2xhbmd1YWdlc19kaWN0W2F0dHJfdmFsdWVdID0gbmFt ZQotQEAgLTYyLDEyICs2MiwxMiBAQCBkZWYgX19jaGFyX2RhdGEoZGF0YSk6Ci0gZGVmIF9fbG9h ZF9sYW5nKCk6Ci0gICAgIGltcG9ydCBvcwotICAgICBpbXBvcnQgX2NvbmZpZwotLSAgICBpc29f NjM5X3htbCA9IG9zLnBhdGguam9pbihfY29uZmlnLklTT0NPREVTX1BSRUZJWCwgInNoYXJlL3ht bC9pc28tY29kZXMvaXNvXzYzOS54bWwiKQotKyAgICBpc29fNjM5XzNfeG1sID0gb3MucGF0aC5q b2luKF9jb25maWcuSVNPQ09ERVNfUFJFRklYLCAic2hhcmUveG1sL2lzby1jb2Rlcy9pc29fNjM5 LTMueG1sIikKLSAgICAgcCA9IHhtbC5wYXJzZXJzLmV4cGF0LlBhcnNlckNyZWF0ZSgpCi0gICAg IHAuU3RhcnRFbGVtZW50SGFuZGxlciA9IF9fc3RhcnRfZWxlbWVudAotICAgICBwLkVuZEVsZW1l bnRIYW5kbGVyID0gX19lbmRfZWxlbWVudAotICAgICBwLkNoYXJhY3RlckRhdGFIYW5kbGVyID0g X19jaGFyX2RhdGEKLS0gICAgcC5QYXJzZUZpbGUoZmlsZShpc29fNjM5X3htbCkpCi0rICAgIHAu UGFyc2VGaWxlKGZpbGUoaXNvXzYzOV8zX3htbCkpCi0gCi0gX19sb2FkX2xhbmcoKQotIAotZGlm ZiAtLWdpdCBhL3NyYy9pYnVzdXRpbC5jIGIvc3JjL2lidXN1dGlsLmMKLWluZGV4IDE1ZTM2Zjgw Li5mZDFkYTAwNiAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzdXRpbC5jCi0rKysgYi9zcmMvaWJ1c3V0 aWwuYwotQEAgLTQ1LDcgKzQ1LDcgQEAgX2lzb19jb2Rlc19wYXJzZV94bWxfbm9kZSAoWE1MTm9k ZSAgICAgICAgICAqbm9kZSkKLSAgICAgR0xpc3QgKnA7Ci0gICAgIGdfYXNzZXJ0IChub2RlKTsK LSAKLS0gICAgaWYgKEdfVU5MSUtFTFkgKGdfc3RyY21wMCAobm9kZS0+bmFtZSwgImlzb182Mzlf ZW50cmllcyIpICE9IDApKSB7Ci0rICAgIGlmIChHX1VOTElLRUxZIChnX3N0cmNtcDAgKG5vZGUt Pm5hbWUsICJpc29fNjM5XzNfZW50cmllcyIpICE9IDApKSB7Ci0gICAgICAgICByZXR1cm4gRkFM U0U7Ci0gICAgIH0KLSAKLUBAIC01Nyw5ICs1Nyw5IEBAIF9pc29fY29kZXNfcGFyc2VfeG1sX25v ZGUgKFhNTE5vZGUKLSAgICAgICAgICAgICBjb25zdCBnY2hhciAqa2V5OwotICAgICAgICAgICAg IGdjaGFyICp2YWx1ZTsKLSAgICAgICAgIH0gZW50cmllc1tdID0gewotLSAgICAgICAgICAgIHsg Imlzb182MzlfMkJfY29kZSIsIE5VTEwgfSwKLS0gICAgICAgICAgICB7ICJpc29fNjM5XzJUX2Nv ZGUiLCBOVUxMIH0sCi0tICAgICAgICAgICAgeyAiaXNvXzYzOV8xX2NvZGUiLCBOVUxMIH0sCi0r ICAgICAgICAgICAgeyAiaWQiLCBOVUxMIH0sCi0rICAgICAgICAgICAgeyAicGFydDFfY29kZSIs IE5VTEwgfSwKLSsgICAgICAgICAgICB7ICJwYXJ0Ml9jb2RlIiwgTlVMTCB9LAotICAgICAgICAg fTsKLSAKLSAgICAgICAgIGlmIChzdWJfbm9kZS0+YXR0cmlidXRlcyA9PSBOVUxMKSB7Ci1AQCAt OTksMTQgKzk5LDE0IEBAIF9sb2FkX2xhbmcoKQotICAgICBzdHJ1Y3Qgc3RhdCBidWY7Ci0gCi0g I2lmZGVmIEVOQUJMRV9OTFMKLS0gICAgYmluZHRleHRkb21haW4gKCJpc29fNjM5IiwgTE9DQUxF RElSKTsKLS0gICAgYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQgKCJpc29fNjM5IiwgIlVURi04Iik7 Ci0rICAgIGJpbmR0ZXh0ZG9tYWluICgiaXNvXzYzOS0zIiwgTE9DQUxFRElSKTsKLSsgICAgYmlu ZF90ZXh0ZG9tYWluX2NvZGVzZXQgKCJpc29fNjM5LTMiLCAiVVRGLTgiKTsKLSAjZW5kaWYKLSAK LSAgICAgX19sYW5ndWFnZXNfZGljdCA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoZ19zdHJfaGFz aCwKLSAgICAgICAgICAgICBnX3N0cl9lcXVhbCwgZ19mcmVlLCBnX2ZyZWUpOwotICAgICBmaWxl bmFtZSA9IGdfYnVpbGRfZmlsZW5hbWUgKElTT0NPREVTX1BSRUZJWCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAic2hhcmUveG1sL2lzby1jb2Rlcy9pc29fNjM5LnhtbCIsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYXJlL3htbC9pc28tY29kZXMvaXNv XzYzOS0zLnhtbCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0g ICAgIGlmIChnX3N0YXQgKGZpbGVuYW1lLCAmYnVmKSAhPSAwKSB7Ci0gICAgICAgICBnX3dhcm5p bmcgKCJDYW4gbm90IGdldCBzdGF0IG9mIGZpbGUgJXMiLCBmaWxlbmFtZSk7Ci1AQCAtMTU3LDcg KzE1Nyw3IEBAIGlidXNfZ2V0X2xhbmd1YWdlX25hbWUgKGNvbnN0IGdjaGFyICpfbG8KLSAgICAg aWYgKGdfc3RyY21wMCAocmV0dmFsLCAiT3RoZXIiKSA9PSAwKQotICAgICAgICAgcmV0dXJuIGRn ZXR0ZXh0IChHRVRURVhUX1BBQ0tBR0UsIE5fKCJPdGhlciIpKTsKLSAgICAgZWxzZQotLSAgICAg ICAgcmV0dXJuIGRnZXR0ZXh0ICgiaXNvXzYzOSIsIHJldHZhbCk7Ci0rICAgICAgICByZXR1cm4g ZGdldHRleHQgKCJpc29fNjM5LTMiLCByZXR2YWwpOwotICNlbHNlCi0gICAgIHJldHVybiByZXR2 YWw7Ci0gI2VuZGlmCi0tLSAKLTIuMTkuMQotCi1Gcm9tIDdiOWMwMzRmNTcwYmIxYmY4OTU2OWEw MWI5OGQ2NzcxYjE1OTY3MjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2Fy YXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBNb24sIDE3IERlYyAyMDE4IDIw OjI2OjMyICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIG00OiBBZGQgaWJ1c2xvY2FsZS5tNCB0byBN YWtlZmlsZS5hbQotCi0tLS0KLSBtNC9NYWtlZmlsZS5hbSB8IDMgKystCi0gMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvbTQvTWFr ZWZpbGUuYW0gYi9tNC9NYWtlZmlsZS5hbQotaW5kZXggNTdlMDA4MDcuLmRjZjg0YWMzIDEwMDY0 NAotLS0tIGEvbTQvTWFrZWZpbGUuYW0KLSsrKyBiL200L01ha2VmaWxlLmFtCi1AQCAtMyw3ICsz LDcgQEAKLSAjIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gIwotICMgQ29weXJpZ2h0IChjKSAyMDA3 LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tIyBDb3B5cmlnaHQg KGMpIDIwMDctMjAxMCBSZWQgSGF0LCBJbmMuCi0rIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxOCBS ZWQgSGF0LCBJbmMuCi0gIwotICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTIyLDYgKzIyLDcgQEAKLSAKLSBF WFRSQV9ESVNUID0gXAotICAgICBhcy12ZXJzaW9uLm00IFwKLSsgICAgaWJ1c2xvY2FsZS5tNCBc Ci0gICAgIHZhcGlnZW4ubTQgXAotICAgICAkKE5VTEwpCi0gCi0tLSAKLTIuMjAuMQotCi1Gcm9t IDlhZTJkNDY1OGZmZjNkMWU3MjYyZmI0ZmI3Y2E5Y2UxYWYwYTI3ZWMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1E YXRlOiBUaHUsIDIwIERlYyAyMDE4IDE2OjQwOjMxICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNs aWVudC9ndGsyOiBVc2UgYnV0dG9uLXByZXNzLWV2ZW50IG9ubHkgd2l0aAotIElCVVNfRU5HSU5F X1BSRUVESVRfQ09NTUlUCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vl cy8xOTgwCi0tLS0KLSBjbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgfCA2NiArKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDQzIGluc2VydGlv bnMoKyksIDIzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0azIvaWJ1c2lt Y29udGV4dC5jIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi1pbmRleCBhYjdmZjg4YS4u ZjkzMTA4NjcgMTAwNjQ0Ci0tLS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLSsrKyBi L2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotQEAgLTcyLDYgKzcyLDggQEAgc3RydWN0IF9J QnVzSU1Db250ZXh0IHsKLSAgICAgLyogY2FuY2VsbGFibGUgKi8KLSAgICAgR0NhbmNlbGxhYmxl ICAgICpjYW5jZWxsYWJsZTsKLSAgICAgR1F1ZXVlICAgICAgICAgICpldmVudHNfcXVldWU7Ci0r Ci0rICAgIGdib29sZWFuIHVzZV9idXR0b25fcHJlc3NfZXZlbnQ7Ci0gfTsKLSAKLSBzdHJ1Y3Qg X0lCdXNJTUNvbnRleHRDbGFzcyB7Ci1AQCAtMTEwOSw2ICsxMTExLDcgQEAgaWJ1c19pbV9jb250 ZXh0X2dldF9wcmVlZGl0X3N0cmluZyAoR3RrSU1Db250ZXh0ICAgKmNvbnRleHQsCi0gfQotIAot IAotKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDkzLCAwKQotIHN0YXRpYyBnYm9vbGVhbgot IGlidXNfaW1fY29udGV4dF9idXR0b25fcHJlc3NfZXZlbnRfY2IgKEd0a1dpZGdldCAgICAgICp3 aWRnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnRC dXR0b24gKmV2ZW50LAotQEAgLTExMjQsMTMgKzExMjcsMzcgQEAgaWJ1c19pbV9jb250ZXh0X2J1 dHRvbl9wcmVzc19ldmVudF9jYiAoR3RrV2lkZ2V0ICAgICAgKndpZGdldCwKLSAgICAgcmV0dXJu IEZBTFNFOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK19jb25uZWN0X2J1dHRvbl9wcmVzc19ldmVu dCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdib29sZWFuICAgICAgIGRvX2Nvbm5lY3QpCi0rewotKyAgICBHdGtXaWRnZXQgKndp ZGdldCA9IE5VTEw7Ci0rCi0rICAgIGdfYXNzZXJ0IChpYnVzaW1jb250ZXh0LT5jbGllbnRfd2lu ZG93KTsKLSsgICAgZ2RrX3dpbmRvd19nZXRfdXNlcl9kYXRhIChpYnVzaW1jb250ZXh0LT5jbGll bnRfd2luZG93LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlciAqKSZ3 aWRnZXQpOwotKyAgICAvKiBmaXJlZm94IG5lZWRzIEd0a1dpZGdldCBpbnN0ZWFkIG9mIEd0a1dp bmRvdyAqLwotKyAgICBpZiAoR1RLX0lTX1dJREdFVCAod2lkZ2V0KSkgewotKyAgICAgICAgaWYg KGRvX2Nvbm5lY3QpIHsKLSsgICAgICAgICAgICBnX3NpZ25hbF9jb25uZWN0ICgKLSsgICAgICAg ICAgICAgICAgICAgIHdpZGdldCwKLSsgICAgICAgICAgICAgICAgICAgICJidXR0b24tcHJlc3Mt ZXZlbnQiLAotKyAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoaWJ1c19pbV9jb250ZXh0 X2J1dHRvbl9wcmVzc19ldmVudF9jYiksCi0rICAgICAgICAgICAgICAgICAgICBpYnVzaW1jb250 ZXh0KTsKLSsgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNf ZGlzY29ubmVjdF9ieV9mdW5jICgKLSsgICAgICAgICAgICAgICAgICAgIHdpZGdldCwKLSsgICAg ICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKGlidXNfaW1fY29udGV4dF9idXR0b25fcHJlc3Nf ZXZlbnRfY2IpLAotKyAgICAgICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dCk7Ci0rICAgICAg ICB9Ci0rICAgIH0KLSt9Ci0rI2VuZGlmCi0rCi0gc3RhdGljIHZvaWQKLSBpYnVzX2ltX2NvbnRl eHRfc2V0X2NsaWVudF93aW5kb3cgKEd0a0lNQ29udGV4dCAqY29udGV4dCwgR2RrV2luZG93ICpj bGllbnQpCi0gewotICAgICBJQnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0OwotLSNpZiAhR1RL X0NIRUNLX1ZFUlNJT04gKDMsIDkzLCAwKQotLSAgICBHdGtXaWRnZXQgKndpZGdldDsKLS0jZW5k aWYKLSAKLSAgICAgSURFQlVHICgiJXMiLCBfX0ZVTkNUSU9OX18pOwotIAotQEAgLTExMzgsMTUg KzExNjUsOCBAQCBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cgKEd0a0lNQ29udGV4 dCAqY29udGV4dCwgR2RrV2luZG93ICpjbGllbnQpCi0gCi0gICAgIGlmIChpYnVzaW1jb250ZXh0 LT5jbGllbnRfd2luZG93KSB7Ci0gI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTMsIDApCi0t ICAgICAgICBnZGtfd2luZG93X2dldF91c2VyX2RhdGEgKGlidXNpbWNvbnRleHQtPmNsaWVudF93 aW5kb3csCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlciAqKSZ3 aWRnZXQpOwotLSAgICAgICAgLyogZmlyZWZveCBuZWVkcyBHdGtXaWRnZXQgaW5zdGVhZCBvZiBH dGtXaW5kb3cgKi8KLS0gICAgICAgIGlmIChHVEtfSVNfV0lER0VUICh3aWRnZXQpKSB7Ci0tICAg ICAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jICgKLS0gICAgICAg ICAgICAgICAgICAgIHdpZGdldCwKLS0gICAgICAgICAgICAgICAgICAgIChHQ2FsbGJhY2spaWJ1 c19pbV9jb250ZXh0X2J1dHRvbl9wcmVzc19ldmVudF9jYiwKLS0gICAgICAgICAgICAgICAgICAg IGlidXNpbWNvbnRleHQpOwotLSAgICAgICAgfQotKyAgICAgICAgaWYgKGlidXNpbWNvbnRleHQt PnVzZV9idXR0b25fcHJlc3NfZXZlbnQpCi0rICAgICAgICAgICAgX2Nvbm5lY3RfYnV0dG9uX3By ZXNzX2V2ZW50IChpYnVzaW1jb250ZXh0LCBGQUxTRSk7Ci0gI2VuZGlmCi0gICAgICAgICBnX29i amVjdF91bnJlZiAoaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdyk7Ci0gICAgICAgICBpYnVz aW1jb250ZXh0LT5jbGllbnRfd2luZG93ID0gTlVMTDsKLUBAIC0xMTU1LDE3ICsxMTc1LDggQEAg aWJ1c19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93IChHdGtJTUNvbnRleHQgKmNvbnRleHQs IEdka1dpbmRvdyAqY2xpZW50KQotICAgICBpZiAoY2xpZW50ICE9IE5VTEwpIHsKLSAgICAgICAg IGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3cgPSBnX29iamVjdF9yZWYgKGNsaWVudCk7Ci0g I2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTMsIDApCi0tICAgICAgICBnZGtfd2luZG93X2dl dF91c2VyX2RhdGEgKGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3csCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlciAqKSZ3aWRnZXQpOwotLQotLSAgICAgICAg LyogZmlyZWZveCBuZWVkcyBHdGtXaWRnZXQgaW5zdGVhZCBvZiBHdGtXaW5kb3cgKi8KLS0gICAg ICAgIGlmIChHVEtfSVNfV0lER0VUICh3aWRnZXQpKSB7Ci0tICAgICAgICAgICAgZ19zaWduYWxf Y29ubmVjdCAoCi0tICAgICAgICAgICAgICAgICAgICB3aWRnZXQsCi0tICAgICAgICAgICAgICAg ICAgICAiYnV0dG9uLXByZXNzLWV2ZW50IiwKLS0gICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJB Q0sgKGlidXNfaW1fY29udGV4dF9idXR0b25fcHJlc3NfZXZlbnRfY2IpLAotLSAgICAgICAgICAg ICAgICAgICAgaWJ1c2ltY29udGV4dCk7Ci0tICAgICAgICB9Ci0rICAgICAgICBpZiAoaWJ1c2lt Y29udGV4dC0+dXNlX2J1dHRvbl9wcmVzc19ldmVudCkKLSsgICAgICAgICAgICBfY29ubmVjdF9i dXR0b25fcHJlc3NfZXZlbnQgKGlidXNpbWNvbnRleHQsIFRSVUUpOwotICNlbmRpZgotICAgICB9 Ci0gICAgIGlmIChpYnVzaW1jb250ZXh0LT5zbGF2ZSkKLUBAIC0xNjMxLDYgKzE2NDIsMTUgQEAg X2lidXNfY29udGV4dF91cGRhdGVfcHJlZWRpdF90ZXh0X2NiIChJQnVzSW5wdXRDb250ZXh0ICAq aWJ1c2NvbnRleHQsCi0gICAgICAgICBpYnVzaW1jb250ZXh0LT5wcmVlZGl0X2F0dHJzID0gTlVM TDsKLSAgICAgfQotIAotKyAgICBpZiAoIWlidXNpbWNvbnRleHQtPnVzZV9idXR0b25fcHJlc3Nf ZXZlbnQgJiYKLSsgICAgICAgIG1vZGUgPT0gSUJVU19FTkdJTkVfUFJFRURJVF9DT01NSVQpIHsK LSsjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5MywgMCkKLSsgICAgICAgIGlmIChpYnVzaW1j b250ZXh0LT5jbGllbnRfd2luZG93KQotKyAgICAgICAgICAgIF9jb25uZWN0X2J1dHRvbl9wcmVz c19ldmVudCAoaWJ1c2ltY29udGV4dCwgVFJVRSk7Ci0rI2VuZGlmCi0rICAgICAgICBpYnVzaW1j b250ZXh0LT51c2VfYnV0dG9uX3ByZXNzX2V2ZW50ID0gVFJVRTsKLSsgICAgfQotKwotICAgICBz dHIgPSB0ZXh0LT50ZXh0OwotICAgICBpYnVzaW1jb250ZXh0LT5wcmVlZGl0X3N0cmluZyA9IGdf c3RyZHVwIChzdHIpOwotICAgICBpZiAodGV4dC0+YXR0cnMpIHsKLS0tIAotMi4xOS4xCi0KLUZy b20gNGVmOTc2YThiOTM0YmY3NmNmZDg1NTAxM2I3NjZmNjQ5MmRjOWU4YSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IE1hdGhpZXUgQnJpZG9uIDxib2NoZWNoYUBkYWl0YXVoYS5mcj4K LURhdGU6IE1vbiwgNyBKYW4gMjAxOSAyMToxNTozNSArMDkwMAotU3ViamVjdDogW1BBVENIXSBp bnRyb3NwZWN0aW9uOiBUZWxsIHRoZSBHSSBzY2FubmVyIHRvIGluY2x1ZGUgdGhlIEMKLSBoZWFk ZXJzCi0KLVRoaXMgYWRkcyB0aGUgZm9sbG93aW5nIGxpbmUgdG8gdGhlIGdlbmVyYXRlZCBnaXIg ZmlsZToKLQotICAgIDxjOmluY2x1ZGUgbmFtZT0iaWJ1cy5oIi8+Ci0KLVRoaXMgaXMgaW1wb3J0 YW50LCBmb3IgZXhhbXBsZSBmb3IgUnVzdCBiaW5kaW5ncyBnZW5lcmF0ZWQgZnJvbSB0aGUKLWd0 ay1ycyB0b29saW5nLgotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzIw NzEKLS0tLQotIGNvbmZpZ3VyZS5hYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZp Z3VyZS5hYwotaW5kZXggOGZjNzYyMzkuLjc3ODIzYzNjIDEwMDY0NAotLS0tIGEvY29uZmlndXJl LmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC0zMTUsNyArMzE1LDcgQEAgR09CSkVDVF9JTlRS T1NQRUNUSU9OX0NIRUNLKFswLjYuOF0pCi0gCi0gSUJVU19HSVJfU0NBTk5FUkZMQUdTPQotIGlm IHRlc3QgeCIkZm91bmRfaW50cm9zcGVjdGlvbiIgPSB4InllcyIgOyB0aGVuCi0tICAgIElCVVNf R0lSX1NDQU5ORVJGTEFHUz0iLS13YXJuLWFsbCAtLWlkZW50aWZpZXItcHJlZml4PUlCdXMgLS1z eW1ib2wtcHJlZml4PWlidXMiCi0rICAgIElCVVNfR0lSX1NDQU5ORVJGTEFHUz0iLS13YXJuLWFs bCAtLWlkZW50aWZpZXItcHJlZml4PUlCdXMgLS1zeW1ib2wtcHJlZml4PWlidXMgLS1jLWluY2x1 ZGU9aWJ1cy5oIgotICAgICBQS0dfQ0hFQ0tfRVhJU1RTKFtnb2JqZWN0LWludHJvc3BlY3Rpb24t MS4wID49IDAuOS42XSwKLSAgICAgICAgICAgICAgICAgICAgICBbZ2lyX3N5bWJvbF9wcmVmaXg9 eWVzXSwKLSAgICAgICAgICAgICAgICAgICAgICBbZ2lyX3N5bWJvbF9wcmVmaXg9bm9dKQotLS0g Ci0yLjE5LjEKLQotRnJvbSAwZmQwNDNjM2I0YzkwODU1YmZiNGZjZWVkNGJmMmYzYzM2MzVhMDQx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2Fy YTFAZ21haWwuY29tPgotRGF0ZTogVHVlLCA4IEphbiAyMDE5IDEyOjAyOjMyICswOTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIHBvcnRhbDogVXBkYXRlIEFQSXMgZm9yIEhhbmd1bCBwcmVlZGl0IGluIEZs YXRwYWsKLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzE5ODAKLS0t LQotIHBvcnRhbC9vcmcuZnJlZWRlc2t0b3AuSUJ1cy5Qb3J0YWwueG1sIHwgIDkgKysrKysrKyst Ci0gcG9ydGFsL3BvcnRhbC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAxOCArKysrKysrKysr KysrKysrKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9wb3J0YWwvb3JnLmZyZWVkZXNrdG9wLklCdXMuUG9ydGFsLnht bCBiL3BvcnRhbC9vcmcuZnJlZWRlc2t0b3AuSUJ1cy5Qb3J0YWwueG1sCi1pbmRleCBhZmNlNGRh YS4uMzc2YWQ0MjQgMTAwNjQ0Ci0tLS0gYS9wb3J0YWwvb3JnLmZyZWVkZXNrdG9wLklCdXMuUG9y dGFsLnhtbAotKysrIGIvcG9ydGFsL29yZy5mcmVlZGVza3RvcC5JQnVzLlBvcnRhbC54bWwKLUBA IC0xLDYgKzEsNiBAQAotIDw/eG1sIHZlcnNpb249IjEuMCI/PgotIDwhLS0KLS0gQ29weXJpZ2h0 IChDKSAyMDE3IFJlZCBIYXQsIEluYy4KLSsgQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgUmVkIEhh dCwgSW5jLgotIAotICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCi0gIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC05Nyw2ICs5NywxMiBAQAotICAgICAgIDxhcmcg dHlwZT0ndScgbmFtZT0nY3Vyc29yX3BvcycgLz4KLSAgICAgICA8YXJnIHR5cGU9J2InIG5hbWU9 J3Zpc2libGUnIC8+Ci0gICAgIDwvc2lnbmFsPgotKyAgICA8c2lnbmFsIG5hbWU9J1VwZGF0ZVBy ZWVkaXRUZXh0V2l0aE1vZGUnPgotKyAgICAgIDxhcmcgdHlwZT0ndicgbmFtZT0ndGV4dCcgLz4K LSsgICAgICA8YXJnIHR5cGU9J3UnIG5hbWU9J2N1cnNvcl9wb3MnIC8+Ci0rICAgICAgPGFyZyB0 eXBlPSdiJyBuYW1lPSd2aXNpYmxlJyAvPgotKyAgICAgIDxhcmcgdHlwZT0ndScgbmFtZT0nbW9k ZScgLz4KLSsgICAgPC9zaWduYWw+Ci0gICAgIDxzaWduYWwgbmFtZT0nU2hvd1ByZWVkaXRUZXh0 Jy8+Ci0gICAgIDxzaWduYWwgbmFtZT0nSGlkZVByZWVkaXRUZXh0Jy8+Ci0gICAgIDxzaWduYWwg bmFtZT0nVXBkYXRlQXV4aWxpYXJ5VGV4dCc+Ci1AQCAtMTIzLDYgKzEyOSw3IEBACi0gICAgIDwv c2lnbmFsPgotIAotICAgICA8cHJvcGVydHkgbmFtZT0nQ29udGVudFR5cGUnIHR5cGU9Jyh1dSkn IGFjY2Vzcz0nd3JpdGUnIC8+Ci0rICAgIDxwcm9wZXJ0eSBuYW1lPSdDbGllbnRDb21taXRQcmVl ZGl0JyB0eXBlPScoYiknIGFjY2Vzcz0nd3JpdGUnIC8+Ci0gICA8L2ludGVyZmFjZT4KLSAKLSAg IDxpbnRlcmZhY2UgbmFtZT0nb3JnLmZyZWVkZXNrdG9wLklCdXMuU2VydmljZSc+Ci1kaWZmIC0t Z2l0IGEvcG9ydGFsL3BvcnRhbC5jIGIvcG9ydGFsL3BvcnRhbC5jCi1pbmRleCBjYjI0ZDI1Ny4u ZTc4YmM5MmYgMTAwNjQ0Ci0tLS0gYS9wb3J0YWwvcG9ydGFsLmMKLSsrKyBiL3BvcnRhbC9wb3J0 YWwuYwotQEAgLTEsNyArMSw3IEBACi0gLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0 OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLwotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICov Ci0gLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgUmVkIEhh dCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IFJlZCBIYXQsIEluYy4KLSAgKgot ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCi1AQCAtNjcsNiArNjcsNyBAQCBzdHJ1Y3QgX0lCdXNQb3J0YWxDbGFz cwotIGVudW0KLSB7Ci0gICAgIFBST1BfQ09OVEVOVF9UWVBFID0gMSwKLSsgICAgUFJPUF9DTElF TlRfQ09NTUlUX1BSRUVESVQsCi0gICAgIE5fUFJPUEVSVElFUwotIH07Ci0gCi1AQCAtMzE1LDYg KzMxNiwyMCBAQCBpYnVzX3BvcnRhbF9jb250ZXh0X3NldF9wcm9wZXJ0eSAoSUJ1c1BvcnRhbENv bnRleHQgKnBvcnRhbF9jb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwg IC8qIHVzZXJfZGF0YSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0gICAgICAg ICBicmVhazsKLSsgICAgY2FzZSBQUk9QX0NMSUVOVF9DT01NSVRfUFJFRURJVDoKLSsgICAgICAg IGdfZGJ1c19wcm94eV9jYWxsIChHX0RCVVNfUFJPWFkgKHBvcnRhbF9jb250ZXh0LT5jb250ZXh0 KSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJv cGVydGllcy5TZXQiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcg KCIoc3N2KSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJV U19JTlRFUkZBQ0VfSU5QVVRfQ09OVEVYVCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiQ2xpZW50Q29tbWl0UHJlZWRpdCIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ192YWx1ZV9nZXRfdmFyaWFudCAodmFsdWUpKSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0xLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsIC8qIGNhbmNlbGxhYmxlICovCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg LyogY2FsbGJhY2sgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMICAvKiB1c2Vy X2RhdGEgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotKyAgICAgICAgYnJlYWs7 Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlf SUQgKHBvcnRhbF9jb250ZXh0LCBwcm9wX2lkLCBwc3BlYyk7Ci0gICAgIH0KLUBAIC0zMjgsNiAr MzQzLDcgQEAgaWJ1c19wb3J0YWxfY29udGV4dF9nZXRfcHJvcGVydHkgKElCdXNQb3J0YWxDb250 ZXh0ICpwb3J0YWxfY29udGV4dCwKLSB7Ci0gICAgIHN3aXRjaCAocHJvcF9pZCkgewotICAgICBj YXNlIFBST1BfQ09OVEVOVF9UWVBFOgotKyAgICBjYXNlIFBST1BfQ0xJRU5UX0NPTU1JVF9QUkVF RElUOgotICAgICAgICAgZ193YXJuaW5nICgiTm8gc3VwcG9ydCBmb3Igc2V0dGluZyBjb250ZW50 IHR5cGUiKTsKLSAgICAgICAgIGJyZWFrOwotICAgICBkZWZhdWx0OgotLS0gCi0yLjE5LjEKLQot RnJvbSBiZTdmYjgxM2U1MzA0NDI4OTdhOWY5MTMwYjhhMjYzODBlNWExMmExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29t PgotRGF0ZTogVHVlLCA4IEphbiAyMDE5IDEyOjAyOjM3ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hd IGNsaWVudC9ndGsyOiBGaXggQXRvbSBhbmQgU2xhY2sgZm9yIEZsYXRwYWsKLQotU2VlbXMgQXRv bSwgc2xhY2ssIGNvbS52aXN1YWxzdHVkaW8uY29kZSBkb2VzIG5vdCBlbmFibGUKLWd0a19rZXlf c25vb3Blcl9pbnN0YWxsKCkgYW5kIHRoaXMgaXNzdWUgY2F1c2VzIHRvIGNhbGwKLWd0a19pbV9j b250ZXh0X2ZpbHRlcl9rZXlwcmVzcyBpbnN0ZWFkIG9mIGNhbGxpbmcgaWJ1cyBBUElzLgotCi1C VUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMTk5MQotLS0tCi0gY2xpZW50 L2d0azIvaWJ1c2ltY29udGV4dC5jIHwgNCArKysrCi0gMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jIGIvY2xp ZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi1pbmRleCBmOTMxMDg2Ny4uMjY0YTc0N2EgMTAwNjQ0 Ci0tLS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLSsrKyBiL2NsaWVudC9ndGsyL2li dXNpbWNvbnRleHQuYwotQEAgLTU2NSw2ICs1NjUsMTAgQEAgZGFlbW9uX25hbWVfYXBwZWFyZWQg KEdEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZ2NoYXIgICAgICpvd25lciwKLSAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAg ICAgICBkYXRhKQotIHsKLSsgICAgaWYgKCFnX3N0cmNtcDAgKGlidXNfYnVzX2dldF9zZXJ2aWNl X25hbWUgKF9idXMpLCBJQlVTX1NFUlZJQ0VfUE9SVEFMKSkgewotKyAgICAgICAgX2RhZW1vbl9p c19ydW5uaW5nID0gVFJVRTsKLSsgICAgICAgIHJldHVybjsKLSsgICAgfQotICAgICAvKiBJZiBp YnVzLWRhZW1vbiBpcyBydW5uaW5nIGFuZCBydW4gc3NoIC1YIGxvY2FsaG9zdCwKLSAgICAgICog ZGFlbW9uX25hbWVfYXBwZWFyZWQoKSBpcyBjYWxsZWQgYnV0IGlidXNfZ2V0X2FkZHJlc3MoKSA9 PSBOVUxMCi0gICAgICAqIGJlY2F1c2UgdGhlIGhvc3RuYW1lIGFuZCBkaXNwbGF5IG51bWJlciBh cmUgZGlmZmVyZW50IGJldHdlZW4KLS0tIAotMi4xOS4xCi0KLUZyb20gMGY1MDg0ZTA3YzIxNWQ3 NGFkYzRlZWVkYTQwYjM3NDg1NWNjZTU5YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMTEgSmFu IDIwMTkgMTI6NTY6NDIgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gc3JjL2lidXNjb21wb3NldGFi bGU6IFJlcGxhY2UgYXNzZXJ0IHdpdGggd2FybmluZyBmb3IKLSAuWENvbXBvc2UKLQotQlVHPXJo YnojMTQ3MDY3MwotLS0tCi0gc3JjL2lidXNjb21wb3NldGFibGUuYyB8IDEyICsrKysrKystLS0t LQotIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jIGIvc3JjL2lidXNjb21wb3NldGFibGUu YwotaW5kZXggYjg0M2U3ZTEuLjFjMGVjZTQxIDEwMDY0NAotLS0tIGEvc3JjL2lidXNjb21wb3Nl dGFibGUuYwotKysrIGIvc3JjL2lidXNjb21wb3NldGFibGUuYwotQEAgLTEsNyArMSw3IEBACi0g LyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7 IC0qLSAqLwotIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0IChDKSAyMDEz LTIwMTQgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0 IChDKSAyMDEzLTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ Ci0rICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+Ci0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTk4LDE0ICs5OCwxNiBA QCBwYXJzZV9jb21wb3NlX3ZhbHVlIChJQnVzQ29tcG9zZURhdGEgICpjb21wb3NlX2RhdGEsCi0g ICAgICAgICB1Y2ggPSB3b3Jkc1sxXVsxXTsKLSAKLSAgICAgICAgIC8qIFRoZSBlc2NhcGVkIHN0 cmluZyAiXCIiIGlzIHNlcGFyYXRlZCB3aXRoICdcXCcgYW5kICciJy4gKi8KLS0gICAgICAgIGlm ICh1Y2ggPT0gJ1wwJyAmJiB3b3Jkc1syXVswXSA9PSAnIicpCi0rICAgICAgICBpZiAodWNoID09 ICdcMCcgJiYgd29yZHNbMl1bMF0gPT0gJyInKSB7Ci0gICAgICAgICAgICAgdWNoID0gJyInOwot ICAgICAgICAgLyogVGhlIGVzY2FwZWQgb2N0YWwgKi8KLS0gICAgICAgIGVsc2UgaWYgKHVjaCA+ PSAnMCcgJiYgdWNoIDw9ICc4JykKLSsgICAgICAgIH0gZWxzZSBpZiAodWNoID49ICcwJyAmJiB1 Y2ggPD0gJzgnKSB7Ci0gICAgICAgICAgICAgdWNoID0gZ19hc2NpaV9zdHJ0b2xsKHdvcmRzWzFd ICsgMSwgTlVMTCwgOCk7Ci0gICAgICAgICAvKiBJZiB3ZSBuZWVkIHRvIGhhbmRsZSBvdGhlciBl c2NhcGUgc2VxdWVuY2VzLiAqLwotLSAgICAgICAgZWxzZSBpZiAodWNoICE9ICdcXCcpCi0tICAg ICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQgKCk7Ci0rICAgICAgICB9IGVsc2UgaWYgKHVj aCAhPSAnXFwnKSB7Ci0rICAgICAgICAgICAgZ193YXJuaW5nICgiSW52YWxpZCBiYWNrc2xhc2g6 ICVzOiAlcyIsIHZhbCwgbGluZSk7Ci0rICAgICAgICAgICAgZ290byBmYWlsOwotKyAgICAgICAg fQotICAgICB9Ci0gCi0gICAgIGlmIChnX3V0ZjhfZ2V0X2NoYXIgKGdfdXRmOF9uZXh0X2NoYXIg KHdvcmRzWzFdKSkgPiAwKSB7Ci0tLSAKLTIuMTkuMQotCi1Gcm9tIDk2NjlhODEyYTAyNWUyYzZi Y2FjM2YyMjYyYzZjZmVkOGZmZjdkYjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBm dWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDE3IEphbiAy MDE5IDE2OjEyOjQ5ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIERlbGV0ZSB3ZWFrIHBvaW50ZXIg aW4gR0xpc3QuU0xpc3QgZm9yIHZhbGEgMC40My40Ci0KLVZhbGEgMC40My40IGRvZXMgbm90IGFs bG93IHRvIGNvbnZlcnQgYSB3ZWFrIHBvaW50ZXIgdG8gdGhlIGZ1bGwgb25lIGluIFNMaXN0Lgot Ci1lbW9qaWVyLnZhbGE6NDI0LjM2LTQyNS43MzogZXJyb3I6IEFzc2lnbm1lbnQ6IENhbm5vdCBj b252ZXJ0IGZyb20KLWBHTGliLlNMaXN0PHdlYWsgSUJ1cy5FbW9qaURhdGE+JyB0byBgR0xpYi5T TGlzdDxJQnVzLkVtb2ppRGF0YT4/JwotZW1vamllci52YWxhOjYzNi45LTYzNy42OTogZXJyb3I6 IEFzc2lnbm1lbnQ6IENhbm5vdCBjb252ZXJ0IGZyb20KLWBHTGliLlNMaXN0PHdlYWsgSUJ1cy5V bmljb2RlQmxvY2s+JyB0byBgR0xpYi5TTGlzdDxJQnVzLlVuaWNvZGVCbG9jaz4nCi1wYW5lbC52 YWxhOjUyNi4zNi01MjYuNjU6IGVycm9yOiBBc3NpZ25tZW50OiBDYW5ub3QgY29udmVydCBmcm9t Ci1gR0xpYi5MaXN0PHdlYWsgSUJ1cy5FbmdpbmVEZXNjPicgdG8gYEdMaWIuTGlzdDxJQnVzLkVu Z2luZURlc2M+PycKLS0tLQotIHNyYy9pYnVzYnVzLmggICAgICAgIHwgMTEgKysrKysrLS0tLS0K LSBzcmMvaWJ1c2Vtb2ppLmggICAgICB8ICA2ICsrKy0tLQotIHNyYy9pYnVzdW5pY29kZS5oICAg IHwgIDggKysrKy0tLS0KLSB1aS9ndGszL2Vtb2ppZXIudmFsYSB8IDI0ICsrKysrKysrKysrKysr KystLS0tLS0tLQotIDQgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2J1cy5oIGIvc3JjL2lidXNidXMuaAotaW5k ZXggZGZmM2RmYjcuLmZkZGNmNWIyIDEwMDY0NAotLS0tIGEvc3JjL2lidXNidXMuaAotKysrIGIv c3JjL2lidXNidXMuaAotQEAgLTIsNyArMiw4IEBACi0gLyogdmltOnNldCBldCBzdHM9NDogKi8K LSAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAw OC0yMDEzIFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBUYWthbyBG dWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIw MDgtMjAxOSBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTY5Miw3ICs2 OTMsNyBAQCBnYm9vbGVhbiAgICAgaWJ1c19idXNfcmVnaXN0ZXJfY29tcG9uZW50X2FzeW5jX2Zp bmlzaAotICAqCi0gICogTGlzdCBlbmdpbmVzIHN5bmNocm9ub3VzbHkuCi0gICoKLS0gKiBSZXR1 cm5zOiAodHJhbnNmZXIgY29udGFpbmVyKSAoZWxlbWVudC10eXBlIElCdXNFbmdpbmVEZXNjKToK LSsgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCkgKGVsZW1lbnQtdHlwZSBJQnVzRW5naW5lRGVz Yyk6Ci0gICogICAgICAgICBBIExpc3Qgb2YgZW5naW5lcy4KLSAgKi8KLSBHTGlzdCAgICAgICAq aWJ1c19idXNfbGlzdF9lbmdpbmVzICAgICAgKElCdXNCdXMgICAgICAgICpidXMpOwotQEAgLTcy NSw3ICs3MjYsNyBAQCB2b2lkICAgICAgICAgaWJ1c19idXNfbGlzdF9lbmdpbmVzX2FzeW5jCi0g ICoKLSAgKiBGaW5pc2hlcyBhbiBvcGVyYXRpb24gc3RhcnRlZCB3aXRoIGlidXNfYnVzX2xpc3Rf ZW5naW5lc19hc3luYygpLgotICAqCi0tICogUmV0dXJuczogKHRyYW5zZmVyIGNvbnRhaW5lcikg KGVsZW1lbnQtdHlwZSBJQnVzRW5naW5lRGVzYyk6Ci0rICogUmV0dXJuczogKHRyYW5zZmVyIGZ1 bGwpIChlbGVtZW50LXR5cGUgSUJ1c0VuZ2luZURlc2MpOgotICAqICAgICAgICAgQSBMaXN0IG9m IGVuZ2luZXMuCi0gICovCi0gR0xpc3QgICAgICAgKmlidXNfYnVzX2xpc3RfZW5naW5lc19hc3lu Y19maW5pc2gKLUBAIC03NDAsNyArNzQxLDcgQEAgR0xpc3QgICAgICAgKmlidXNfYnVzX2xpc3Rf ZW5naW5lc19hc3luY19maW5pc2gKLSAgKgotICAqIExpc3QgYWN0aXZlIGVuZ2luZXMgc3luY2hy b25vdXNseS4KLSAgKgotLSAqIFJldHVybnM6ICh0cmFuc2ZlciBjb250YWluZXIpIChlbGVtZW50 LXR5cGUgSUJ1c0VuZ2luZURlc2MpOgotKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKSAoZWxl bWVudC10eXBlIElCdXNFbmdpbmVEZXNjKToKLSAgKiAgICAgICAgQSBMaXN0IG9mIGFjdGl2ZSBl bmdpbmVzLgotICAqCi0gICogRGVwcmVjYXRlZDogMS41LjM6IFJlYWQgZGNvbmYgdmFsdWUKLUBA IC03ODIsNyArNzgzLDcgQEAgdm9pZCAgICAgICAgIGlidXNfYnVzX2xpc3RfYWN0aXZlX2VuZ2lu ZXNfYXN5bmMKLSAgKgotICAqIEZpbmlzaGVzIGFuIG9wZXJhdGlvbiBzdGFydGVkIHdpdGggaWJ1 c19idXNfbGlzdF9hY3RpdmVfZW5naW5lc19hc3luYygpLgotICAqCi0tICogUmV0dXJuczogKHRy YW5zZmVyIGNvbnRhaW5lcikgKGVsZW1lbnQtdHlwZSBJQnVzRW5naW5lRGVzYyk6Ci0rICogUmV0 dXJuczogKHRyYW5zZmVyIGZ1bGwpIChlbGVtZW50LXR5cGUgSUJ1c0VuZ2luZURlc2MpOgotICAq ICAgICAgICAgQSBMaXN0IG9mIGFjdGl2ZSBlbmdpbmVzLgotICAqCi0gICogRGVwcmVjYXRlZDog MS41LjM6IFJlYWQgZGNvbmYgdmFsdWUKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2Vtb2ppLmggYi9z cmMvaWJ1c2Vtb2ppLmgKLWluZGV4IDRlZGVlNzI2Li41ZTlmYmNmNCAxMDA2NDQKLS0tLSBhL3Ny Yy9pYnVzZW1vamkuaAotKysrIGIvc3JjL2lidXNlbW9qaS5oCi1AQCAtMSw4ICsxLDggQEAKLSAv KiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsg LSotICovCi0gLyogdmltOnNldCBldCBzdHM9NDogKi8KLSAvKiBidXMgLSBUaGUgSW5wdXQgQnVz Ci0tICogQ29weXJpZ2h0IChDKSAyMDE3IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAxNyBSZWQgSGF0LCBJbmMuCi0rICogQ29w eXJpZ2h0IChDKSAyMDE3LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgUmVkIEhhdCwgSW5jLgotICAqCi0g ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKLUBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCAgICAgICAgICAgIGlidXNf ZW1vamlfZGF0YV9zYXZlICAgICAgICAgICAgKGNvbnN0IGdjaGFyICAgICpwYXRoLAotICAqIGli dXNfZW1vamlfZGF0YV9sb2FkOgotICAqIEBwYXRoOiBBIHBhdGggb2YgdGhlIHNhdmVkIGRpY3Rp b25hcnkgZmlsZS4KLSAgKgotLSAqIFJldHVybnM6IChlbGVtZW50LXR5cGUgSUJ1c0Vtb2ppRGF0 YSkgKHRyYW5zZmVyIGNvbnRhaW5lcik6Ci0rICogUmV0dXJuczogKGVsZW1lbnQtdHlwZSBJQnVz RW1vamlEYXRhKSAodHJhbnNmZXIgZnVsbCk6Ci0gICogQW4gI0lCdXNFbW9qaURhdGEgbGlzdCBs b2FkZWQgZnJvbSB0aGUgc2F2ZWQgY2FjaGUgZmlsZS4KLSAgKi8KLSBHU0xpc3QgKiAgICAgICAg aWJ1c19lbW9qaV9kYXRhX2xvYWQgICAgICAgICAgICAoY29uc3QgZ2NoYXIgICAgKnBhdGgpOwot ZGlmZiAtLWdpdCBhL3NyYy9pYnVzdW5pY29kZS5oIGIvc3JjL2lidXN1bmljb2RlLmgKLWluZGV4 IDk5ZGU5NDUxLi40NzNiZGIxOSAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzdW5pY29kZS5oCi0rKysg Yi9zcmMvaWJ1c3VuaWNvZGUuaAotQEAgLTEsOCArMSw4IEBACi0gLyogLSotIG1vZGU6IEM7IGMt YmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLwotIC8qIHZpbTpz ZXQgZXQgc3RzPTQ6ICovCi0gLyogYnVzIC0gVGhlIElucHV0IEJ1cwotLSAqIENvcHlyaWdodCAo QykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLS0gKiBD b3B5cmlnaHQgKEMpIDIwMTggUmVkIEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAxOC0y MDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHly aWdodCAoQykgMjAxOC0yMDE5IFJlZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1A QCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgICAgICAgICAgICAgIGlidXNfdW5pY29kZV9kYXRhX3Nh dmUgICAgICAoY29uc3QgZ2NoYXIgICAgICAgICpwYXRoLAotICAqICAgICNJQnVzVW5pY29kZURh dGEsICogdGhlIHRvdGFsIG51bWJlciBvZiAjSUJ1c1VuaWNvZGVEYXRhKSBvZiB1aW50IHZhbHVl cwotICAqICAgIHdpdGggdGhhdCBzaWduYWwgYnkgMTAwIHRpbWVzLiBPdGhlcndpc2UgJU5VTEwu Ci0gICoKLS0gKiBSZXR1cm5zOiAoZWxlbWVudC10eXBlIElCdXNVbmljb2RlRGF0YSkgKHRyYW5z ZmVyIGNvbnRhaW5lcik6Ci0rICogUmV0dXJuczogKGVsZW1lbnQtdHlwZSBJQnVzVW5pY29kZURh dGEpICh0cmFuc2ZlciBmdWxsKToKLSAgKiBBbiAjSUJ1c1VuaWNvZGVEYXRhIGxpc3QgbG9hZGVk IGZyb20gdGhlIHNhdmVkIGNhY2hlIGZpbGUuCi0gICovCi0gR1NMaXN0ICogICAgICAgICAgaWJ1 c191bmljb2RlX2RhdGFfbG9hZCAgICAgIChjb25zdCBnY2hhciAgICAgICAgKnBhdGgsCi1AQCAt MjkwLDcgKzI5MCw3IEBAIHZvaWQgICAgICAgICAgICAgIGlidXNfdW5pY29kZV9ibG9ja19zYXZl ICAgICAoY29uc3QgZ2NoYXIgICAgICAgICpwYXRoLAotICAqIGlidXNfdW5pY29kZV9ibG9ja19s b2FkOgotICAqIEBwYXRoOiBBIHBhdGggb2YgdGhlIHNhdmVkIGRpY3Rpb25hcnkgZmlsZS4KLSAg KgotLSAqIFJldHVybnM6IChlbGVtZW50LXR5cGUgSUJ1c1VuaWNvZGVCbG9jaykgKHRyYW5zZmVy IGNvbnRhaW5lcik6Ci0rICogUmV0dXJuczogKGVsZW1lbnQtdHlwZSBJQnVzVW5pY29kZUJsb2Nr KSAodHJhbnNmZXIgZnVsbCk6Ci0gICogQW4gI0lCdXNVbmljb2RlQmxvY2sgbGlzdCBsb2FkZWQg ZnJvbSB0aGUgc2F2ZWQgY2FjaGUgZmlsZS4KLSAgKi8KLSBHU0xpc3QgKiAgICAgICAgICBpYnVz X3VuaWNvZGVfYmxvY2tfbG9hZCAgICAgKGNvbnN0IGdjaGFyICAgICAgICAqcGF0aCk7Ci1kaWZm IC0tZ2l0IGEvdWkvZ3RrMy9lbW9qaWVyLnZhbGEgYi91aS9ndGszL2Vtb2ppZXIudmFsYQotaW5k ZXggMGI5YjU0YTkuLmFlZGViNGNiIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9lbW9qaWVyLnZhbGEK LSsrKyBiL3VpL2d0azMvZW1vamllci52YWxhCi1AQCAtMiw3ICsyLDcgQEAKLSAgKgotICAqIGli dXMgLSBUaGUgSW5wdXQgQnVzCi0gICoKLS0gKiBDb3B5cmlnaHQgKGMpIDIwMTctMjAxOCBUYWth byBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKGMp IDIwMTctMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAg KgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCi1AQCAtODgyLDggKzg4MiwxMyBAQCBwdWJsaWMgY2xhc3MgSUJ1 c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgewotICAgICAgICAgICAgIHVwZGF0ZV91 bmljb2RlX2Jsb2NrcygpOwotICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0gZWxzZSB7 Ci0tICAgICAgICAgICAgdW5vd25lZCBHTGliLlNMaXN0PHVub3duZWQgc3RyaW5nPiBlbW9qaXMg PQotLSAgICAgICAgICAgICAgICAgICAgbV9jYXRlZ29yeV90b19lbW9qaXNfZGljdC5sb29rdXAo Y2F0ZWdvcnkpOwotKyAgICAgICAgICAgIC8vIFVzZSBjb3B5X2RlZXAoKSBzaW5jZSB2YWxhIDAu NDMuNCBkb2VzIG5vdCBhbGxvdyB0byBhc3NpZ24KLSsgICAgICAgICAgICAvLyBhIHdlYWsgcG9p bnRlciB0byB0aGUgZnVsbCBvbmUgaW4gU0xpc3Q6Ci0rICAgICAgICAgICAgLy8gZW1vamllci52 YWxhOjg4NS40OC04ODYuNjI6IGVycm9yOiBBc3NpZ25tZW50OiBDYW5ub3QgY29udmVydAotKyAg ICAgICAgICAgIC8vIGZyb20gYEdMaWIuU0xpc3Q8c3RyaW5nPicgdG8gYEdMaWIuU0xpc3Q8d2Vh ayBzdHJpbmc+PycKLSsgICAgICAgICAgICBHTGliLlNMaXN0PHN0cmluZz4gZW1vamlzID0KLSsg ICAgICAgICAgICAgICAgICAgIG1fY2F0ZWdvcnlfdG9fZW1vamlzX2RpY3QubG9va3VwKGNhdGVn b3J5KS5jb3B5X2RlZXAoCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaWIuc3RyZHVw KTsKLSAgICAgICAgICAgICBtX2xvb2t1cF90YWJsZS5jbGVhcigpOwotICAgICAgICAgICAgIG1f Y2FuZGlkYXRlX3BhbmVsX21vZGUgPSB0cnVlOwotICAgICAgICAgICAgIGZvcmVhY2ggKHVub3du ZWQgc3RyaW5nIGVtb2ppIGluIGVtb2ppcykgewotQEAgLTE1NDcsOCArMTU1Miw4IEBAIHB1Ymxp YyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7Ci0gICAgICAgICAg ICAgbV92Ym94LmFkZCh3aWRnZXQpOwotICAgICAgICAgICAgIHdpZGdldC5zaG93X2FsbCgpOwot ICAgICAgICAgfQotLSAgICAgICAgdW5vd25lZCBHTGliLlNMaXN0PHVub3duZWQgc3RyaW5nPj8g YW5ub3RhdGlvbnMgPQotLSAgICAgICAgICAgICAgICBkYXRhLmdldF9hbm5vdGF0aW9ucygpOwot KyAgICAgICAgR0xpYi5TTGlzdDxzdHJpbmc+IGFubm90YXRpb25zID0KLSsgICAgICAgICAgICAg ICAgZGF0YS5nZXRfYW5ub3RhdGlvbnMoKS5jb3B5X2RlZXAoR0xpYi5zdHJkdXApOwotICAgICAg ICAgdmFyIGJ1ZmYgPSBuZXcgR0xpYi5TdHJpbmdCdWlsZGVyKCk7Ci0gICAgICAgICBpbnQgaSA9 IDA7Ci0gICAgICAgICBmb3JlYWNoICh1bm93bmVkIHN0cmluZyBhbm5vdGF0aW9uIGluIGFubm90 YXRpb25zKSB7Ci1AQCAtMjAwMSwxNyArMjAwNiwyMCBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2pp ZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgewotICAgICAgICAgICAgICAgICAgICAgKSBhcyBJ QnVzLkVtb2ppRGF0YTsKLSAgICAgICAgICAgICAgICAgbV9lbW9qaV90b19kYXRhX2RpY3QuaW5z ZXJ0KGZhdm9yaXRlLCBuZXdfZGF0YSk7Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAg ICAgICAgICAgdW5vd25lZCBHTGliLlNMaXN0PHN0cmluZz4gYW5ub3RhdGlvbnMgPSBkYXRhLmdl dF9hbm5vdGF0aW9ucygpOwotKyAgICAgICAgICAgICAgICBHTGliLlNMaXN0PHN0cmluZz4gYW5u b3RhdGlvbnMgPQotKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0X2Fubm90YXRpb25z KCkuY29weV9kZWVwKEdMaWIuc3RyZHVwKTsKLSAgICAgICAgICAgICAgICAgaWYgKGFubm90YXRp b25zLmZpbmRfY3VzdG9tKGFubm90YXRpb24sIEdMaWIuc3RyY21wKSA9PSBudWxsKSB7Ci0gICAg ICAgICAgICAgICAgICAgICBhbm5vdGF0aW9ucy5hcHBlbmQoYW5ub3RhdGlvbik7Ci0tICAgICAg ICAgICAgICAgICAgICBkYXRhLnNldF9hbm5vdGF0aW9ucyhhbm5vdGF0aW9ucy5jb3B5KCkpOwot KyAgICAgICAgICAgICAgICAgICAgZGF0YS5zZXRfYW5ub3RhdGlvbnMoYW5ub3RhdGlvbnMuY29w eV9kZWVwKEdMaWIuc3RyZHVwKSk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgdW5vd25lZCBHTGliLlNMaXN0PHN0cmluZz4gZW1vamlzID0KLSAgICAg ICAgICAgICAgICAgICAgIG1fYW5ub3RhdGlvbl90b19lbW9qaXNfZGljdC5sb29rdXAoYW5ub3Rh dGlvbik7Ci0gICAgICAgICAgICAgaWYgKGVtb2ppcy5maW5kX2N1c3RvbShmYXZvcml0ZSwgR0xp Yi5zdHJjbXApID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgZW1vamlzLmFwcGVuZChmYXZv cml0ZSk7Ci0tICAgICAgICAgICAgICAgIG1fYW5ub3RhdGlvbl90b19lbW9qaXNfZGljdC5yZXBs YWNlKGFubm90YXRpb24sIGVtb2ppcy5jb3B5KCkpOwotKyAgICAgICAgICAgICAgICBtX2Fubm90 YXRpb25fdG9fZW1vamlzX2RpY3QucmVwbGFjZSgKLSsgICAgICAgICAgICAgICAgICAgICAgICBh bm5vdGF0aW9uLAotKyAgICAgICAgICAgICAgICAgICAgICAgIGVtb2ppcy5jb3B5X2RlZXAoR0xp Yi5zdHJkdXApKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0KLS0tIAotMi4x OS4xCi0KLUZyb20gNDU5MmNlNTEyZmQ4MzBlNjQ2YmVlYzBmN2FhMjFhZGQ3MzliYjZmYSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGJtYW5zdXJvdiA8NDU5ODYyOTgrYm1hbnN1cm92 QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KLURhdGU6IFR1ZSwgMjkgSmFuIDIwMTkgMTg6MDI6 MDQgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gZW5naW5lOiBBZGQgVXpiZWsgbGF5b3V0cwotCi1C VUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzIwNjkKLS0tLQotIGVuZ2luZS9z aW1wbGUueG1sLmluIHwgODMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgYS9lbmdpbmUvc2ltcGxlLnhtbC5pbiBiL2VuZ2luZS9zaW1wbGUueG1s LmluCi1pbmRleCBmMzVkN2E1OC4uNDQ0NWMyNTQgMTAwNjQ0Ci0tLS0gYS9lbmdpbmUvc2ltcGxl LnhtbC5pbgotKysrIGIvZW5naW5lL3NpbXBsZS54bWwuaW4KLUBAIC02ODAsMzIgKzY4MCw2NyBA QAotIAkJCTxsb25nbmFtZT5Va3JhaW5pYW48L2xvbmduYW1lPgotIAkJCTxkZXNjcmlwdGlvbj5V a3JhaW5pYW48L2Rlc2NyaXB0aW9uPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uPmli dXMta2V5Ym9hcmQ8L2ljb24+Ci0tCQkJPHJhbms+OTk8L3Jhbms+Ci0tCQk8L2VuZ2luZT4KLS0J CTxlbmdpbmU+Ci0tCQkJPG5hbWU+eGtiOmdiOmV4dGQ6ZW5nPC9uYW1lPgotLQkJCTxsYW5ndWFn ZT5lbjwvbGFuZ3VhZ2U+Ci0tCQkJPGxpY2Vuc2U+R1BMPC9saWNlbnNlPgotLQkJCTxhdXRob3I+ UGVuZyBIdWFuZyAmbHQ7c2hhd24ucC5odWFuZ0BnbWFpbC5jb20mZ3Q7PC9hdXRob3I+Ci0tCQkJ PGxheW91dD5nYjwvbGF5b3V0PgotLQkJCTxsYXlvdXRfdmFyaWFudD5leHRkPC9sYXlvdXRfdmFy aWFudD4KLS0JCQk8bG9uZ25hbWU+RW5nbGlzaCAoVUssIGV4dGVuZGVkIFdpbktleXMpPC9sb25n bmFtZT4KLS0JCQk8ZGVzY3JpcHRpb24+RW5nbGlzaCAoVUssIGV4dGVuZGVkIFdpbktleXMpPC9k ZXNjcmlwdGlvbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8cmFuaz45OTwvcmFuaz4KLSsg ICAgICAgICAgICAgICAgPC9lbmdpbmU+Ci0rICAgICAgICAgICAgICAgIDxlbmdpbmU+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgPG5hbWU+eGtiOnV6Ojp1emI8L25hbWU+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgPGxhbmd1YWdlPnV6PC9sYW5ndWFnZT4KLSsgICAgICAgICAgICAgICAg ICAgICAgICA8bGljZW5zZT5HUEw8L2xpY2Vuc2U+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg PGF1dGhvcj5QZW5nIEh1YW5nICZsdDtzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbSZndDs8L2F1dGhv cj4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8bGF5b3V0PnV6PC9sYXlvdXQ+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgPGxvbmduYW1lPlV6YmVrPC9sb25nbmFtZT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICA8ZGVzY3JpcHRpb24+VXpiZWs8L2Rlc2NyaXB0aW9uPgotICAgICAgICAg ICAgICAgICAgICAgICAgIDxpY29uPmlidXMta2V5Ym9hcmQ8L2ljb24+Ci0tCQkJPHJhbms+MTwv cmFuaz4KLS0JCTwvZW5naW5lPgotLQkJPGVuZ2luZT4KLS0JCQk8bmFtZT54a2I6Z2I6ZHZvcmFr OmVuZzwvbmFtZT4KLS0JCQk8bGFuZ3VhZ2U+ZW48L2xhbmd1YWdlPgotLQkJCTxsaWNlbnNlPkdQ TDwvbGljZW5zZT4KLS0JCQk8YXV0aG9yPlBlbmcgSHVhbmcgJmx0O3NoYXduLnAuaHVhbmdAZ21h aWwuY29tJmd0OzwvYXV0aG9yPgotLQkJCTxsYXlvdXQ+Z2I8L2xheW91dD4KLS0JCQk8bGF5b3V0 X3ZhcmlhbnQ+ZHZvcmFrPC9sYXlvdXRfdmFyaWFudD4KLS0JCQk8bG9uZ25hbWU+RW5nbGlzaCAo VUssIER2b3Jhayk8L2xvbmduYW1lPgotLQkJCTxkZXNjcmlwdGlvbj5FbmdsaXNoIChVSywgRHZv cmFrKTwvZGVzY3JpcHRpb24+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPHJhbms+OTk8L3Jh bms+Ci0rICAgICAgICAgICAgICAgIDwvZW5naW5lPgotKyAgICAgICAgICAgICAgICA8ZW5naW5l PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxuYW1lPnhrYjp1ejpjeXJpbGxpYzp1emI8L25h bWU+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGxhbmd1YWdlPnV6PC9sYW5ndWFnZT4KLSsg ICAgICAgICAgICAgICAgICAgICAgICA8bGljZW5zZT5HUEw8L2xpY2Vuc2U+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgPGF1dGhvcj5QZW5nIEh1YW5nICZsdDtzaGF3bi5wLmh1YW5nQGdtYWls LmNvbSZndDs8L2F1dGhvcj4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8bGF5b3V0PnV6PC9s YXlvdXQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGxheW91dF92YXJpYW50PmN5cmlsbGlj PC9sYXlvdXRfdmFyaWFudD4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8bG9uZ25hbWU+VXpi ZWsgQ3lyaWxsaWM8L2xvbmduYW1lPgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxkZXNjcmlw dGlvbj5VemJlayBDeXJpbGxpYzwvZGVzY3JpcHRpb24+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgPGljb24+aWJ1cy1rZXlib2FyZDwvaWNvbj4KLS0JCQk8cmFuaz4xPC9yYW5rPgotLQkJPC9l bmdpbmU+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPHJhbms+MTwvcmFuaz4KLSsgICAgICAg ICAgICAgICAgPC9lbmdpbmU+Ci0rICAgICAgICAgICAgICAgIDxlbmdpbmU+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgPG5hbWU+eGtiOnV6OmxhdGluOnV6YjwvbmFtZT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICA8bGFuZ3VhZ2U+dXo8L2xhbmd1YWdlPgotKyAgICAgICAgICAgICAgICAg ICAgICAgIDxsaWNlbnNlPkdQTDwvbGljZW5zZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8 YXV0aG9yPlBlbmcgSHVhbmcgJmx0O3NoYXduLnAuaHVhbmdAZ21haWwuY29tJmd0OzwvYXV0aG9y PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxsYXlvdXQ+dXo8L2xheW91dD4KLSsgICAgICAg ICAgICAgICAgICAgICAgICA8bGF5b3V0X3ZhcmlhbnQ+bGF0aW48L2xheW91dF92YXJpYW50Pgot KyAgICAgICAgICAgICAgICAgICAgICAgIDxsb25nbmFtZT5VemJlayBMYXRpbjwvbG9uZ25hbWU+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGRlc2NyaXB0aW9uPlV6YmVrIExhdGluPC9kZXNj cmlwdGlvbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8aWNvbj5pYnVzLWtleWJvYXJkPC9p Y29uPgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxyYW5rPjE8L3Jhbms+Ci0rICAgICAgICAg ICAgICAgIDwvZW5naW5lPgotKyAgICAgICAgICAgICAgICA8ZW5naW5lPgotKyAgICAgICAgICAg ICAgICAgICAgICAgIDxuYW1lPnhrYjpnYjpleHRkOmVuZzwvbmFtZT4KLSsgICAgICAgICAgICAg ICAgICAgICAgICA8bGFuZ3VhZ2U+ZW48L2xhbmd1YWdlPgotKyAgICAgICAgICAgICAgICAgICAg ICAgIDxsaWNlbnNlPkdQTDwvbGljZW5zZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8YXV0 aG9yPlBlbmcgSHVhbmcgJmx0O3NoYXduLnAuaHVhbmdAZ21haWwuY29tJmd0OzwvYXV0aG9yPgot KyAgICAgICAgICAgICAgICAgICAgICAgIDxsYXlvdXQ+Z2I8L2xheW91dD4KLSsgICAgICAgICAg ICAgICAgICAgICAgICA8bGF5b3V0X3ZhcmlhbnQ+ZXh0ZDwvbGF5b3V0X3ZhcmlhbnQ+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgPGxvbmduYW1lPkVuZ2xpc2ggKFVLLCBleHRlbmRlZCBXaW5L ZXlzKTwvbG9uZ25hbWU+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGRlc2NyaXB0aW9uPkVu Z2xpc2ggKFVLLCBleHRlbmRlZCBXaW5LZXlzKTwvZGVzY3JpcHRpb24+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgPGljb24+aWJ1cy1rZXlib2FyZDwvaWNvbj4KLSsgICAgICAgICAgICAgICAg ICAgICAgICA8cmFuaz4xPC9yYW5rPgotKyAgICAgICAgICAgICAgICA8L2VuZ2luZT4KLSsgICAg ICAgICAgICAgICAgPGVuZ2luZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8bmFtZT54a2I6 Z2I6ZHZvcmFrOmVuZzwvbmFtZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8bGFuZ3VhZ2U+ ZW48L2xhbmd1YWdlPgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaWNlbnNlPkdQTDwvbGlj ZW5zZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlBlbmcgSHVhbmcgJmx0O3No YXduLnAuaHVhbmdAZ21haWwuY29tJmd0OzwvYXV0aG9yPgotKyAgICAgICAgICAgICAgICAgICAg ICAgIDxsYXlvdXQ+Z2I8L2xheW91dD4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8bGF5b3V0 X3ZhcmlhbnQ+ZHZvcmFrPC9sYXlvdXRfdmFyaWFudD4KLSsgICAgICAgICAgICAgICAgICAgICAg ICA8bG9uZ25hbWU+RW5nbGlzaCAoVUssIER2b3Jhayk8L2xvbmduYW1lPgotKyAgICAgICAgICAg ICAgICAgICAgICAgIDxkZXNjcmlwdGlvbj5FbmdsaXNoIChVSywgRHZvcmFrKTwvZGVzY3JpcHRp b24+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGljb24+aWJ1cy1rZXlib2FyZDwvaWNvbj4K LSsgICAgICAgICAgICAgICAgICAgICAgICA8cmFuaz4xPC9yYW5rPgotKyAgICAgICAgICAgICAg ICA8L2VuZ2luZT4KLSAgICAgICAgICAgICAgICAgPGVuZ2luZT4KLSAgICAgICAgICAgICAgICAg ICAgICAgICA8bmFtZT54a2I6bXk6Om1zYTwvbmFtZT4KLSAgICAgICAgICAgICAgICAgICAgICAg ICA8bGFuZ3VhZ2U+bXM8L2xhbmd1YWdlPgotLS0gCi0yLjE5LjEKLQotRnJvbSA0ZDNhOGZmM2Qw YmY2OTUwODU1MWU2NWFlMmRhZTY3NjkxOWE3MjhkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogV2VkLCAx MyBGZWIgMjAxOSAxNjowMDo0MiArMDkwMAotU3ViamVjdDogW1BBVENIXSBEZWxldGUgU3VwZXIt c3BhY2Ugbm90aWZpY2F0aW9uCi0KLUknZCBhc3N1bWUgbW9zdCBJQnVzIDEuNS4yIHVzZXJzIGFy ZSBtaWdyYXRlZCB0byB0aGUgbGF0ZXN0IDEuNS56IG5vdwotYnV0IHRoZSBub3RpZmljYXRpb24g ZGlhbG9nIGdpdmVzIG11Y2ggYXR0ZW50aW9uIGFuZCBjb3VsZCBiZSBkZXByZWNhdGVkLgotCi1C VUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjA4MAotLS0tCi0gY29uZmln dXJlLmFjICAgICAgICB8IDIwICsrLS0tLS0tLS0tLS0tLS0tLS0tCi0gdWkvZ3RrMy9NYWtlZmls ZS5hbSB8IDE5ICsrLS0tLS0tLS0tLS0tLS0tLS0KLSB1aS9ndGszL3BhbmVsLnZhbGEgIHwgMjgg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRp b25zKCspLCA2MiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2Nv bmZpZ3VyZS5hYwotaW5kZXggNzc4MjNjM2MuLjA3OTBkOTk0IDEwMDY0NAotLS0tIGEvY29uZmln dXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC0zLDggKzMsOCBAQAotICMgaWJ1cyAtIFRo ZSBJbnB1dCBCdXMKLSAjCi0gIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxNiBQZW5nIEh1YW5nIDxz aGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0jIENvcHlyaWdodCAoYykgMjAxNS0yMDE4IFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotLSMgQ29weXJpZ2h0IChjKSAy MDA3LTIwMTggUmVkIEhhdCwgSW5jLgotKyMgQ29weXJpZ2h0IChjKSAyMDE1LTIwMTkgVGFrYW8g RnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rIyBDb3B5cmlnaHQgKGMpIDIw MDctMjAxOSBSZWQgSGF0LCBJbmMuCi0gIwotICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICMgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTU4OCwyMSArNTg4 LDYgQEAgaWYgdGVzdCB4IiRlbmFibGVfZW5naW5lIiA9IHgieWVzIjsgdGhlbgotICAgICBlbmFi bGVfZW5naW5lPSJ5ZXMgKGVuYWJsZWQsIHVzZSAtLWRpc2FibGUtZW5naW5lIHRvIGRpc2FibGUp IgotIGZpCi0gCi0tIyAtLWRpc2FibGUtbGlibm90aWZ5Ci0tQUNfQVJHX0VOQUJMRShsaWJub3Rp ZnksCi0tICAgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbGlibm90aWZ5XSwKLS0gICAgICAg ICAgICAgICAgICAgW0Rpc2FibGUgdG8gbGluayBsaWJub3RpZnldKSwKLS0gICAgW2VuYWJsZV9s aWJub3RpZnk9JGVuYWJsZXZhbF0sCi0tICAgIFtlbmFibGVfbGlibm90aWZ5PXllc10KLS0pCi0t QU1fQ09ORElUSU9OQUwoW0VOQUJMRV9MSUJOT1RJRlldLCBbdGVzdCB4IiRlbmFibGVfbGlibm90 aWZ5IiA9IHgieWVzIl0pCi0taWYgdGVzdCB4IiRlbmFibGVfbGlibm90aWZ5IiA9IHgieWVzIjsg dGhlbgotLSAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhMSUJOT1RJRlksIFsKLS0gICAgICAgIGxpYm5v dGlmeSA+PSAwLjcKLS0gICAgXSkKLS0gICAgZW5hYmxlX2xpYm5vdGlmeT0ieWVzIChlbmFibGVk LCB1c2UgLS1kaXNhYmxlLWxpYm5vdGlmeSB0byBkaXNhYmxlKSIKLS1maQotLQotIFBLR19DSEVD S19NT0RVTEVTKFhURVNULAotICAgICBbeDExIHh0c3RdLAotICAgICBbZW5hYmxlX3h0ZXN0PXll c10sCi1AQCAtNzgyLDcgKzc2Nyw2IEBAIEJ1aWxkIG9wdGlvbnM6Ci0gICBObyBzbm9vcGVyIHJl Z2V4ZXMgICAgICAgICAgICAiJE5PX1NOT09QRVJfQVBQUyIKLSAgIFBhbmVsIGljb24gICAgICAg ICAgICAgICAgICAgICIkSUJVU19JQ09OX0tFWUJPQVJEIgotICAgRW5hYmxlIHN1cnJvdW5kaW5n LXRleHQgICAgICAgJGVuYWJsZV9zdXJyb3VuZGluZ190ZXh0Ci0tICBFbmFibGUgbGlibm90aWZ5 ICAgICAgICAgICAgICAkZW5hYmxlX2xpYm5vdGlmeQotICAgRW5hYmxlIEVtb2ppIGRpY3QgICAg ICAgICAgICAgJGVuYWJsZV9lbW9qaV9kaWN0Ci0gICBVbmljb2RlIEVtb2ppIGRpcmVjdG9yeSAg ICAgICAkVU5JQ09ERV9FTU9KSV9ESVIKLSAgIENMRFIgYW5ub3RhdGlvbiBkaXJlY3RvcnkgICAg ICRFTU9KSV9BTk5PVEFUSU9OX0RJUgotZGlmZiAtLWdpdCBhL3VpL2d0azMvTWFrZWZpbGUuYW0g Yi91aS9ndGszL01ha2VmaWxlLmFtCi1pbmRleCBlNDA5NzFmMS4uZDBmYTdjNTggMTAwNjQ0Ci0t LS0gYS91aS9ndGszL01ha2VmaWxlLmFtCi0rKysgYi91aS9ndGszL01ha2VmaWxlLmFtCi1AQCAt Myw4ICszLDggQEAKLSAjIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gIwotICMgQ29weXJpZ2h0IChj KSAyMDA3LTIwMTUgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tIyBDb3B5 cmlnaHQgKGMpIDIwMTUtMjAxOCBUYWthbyBGdWp3aWFyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWls LmNvbT4KLS0jIENvcHlyaWdodCAoYykgMjAwNy0yMDE4IFJlZCBIYXQsIEluYy4KLSsjIENvcHly aWdodCAoYykgMjAxNS0yMDE5IFRha2FvIEZ1andpYXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwu Y29tPgotKyMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTkgUmVkIEhhdCwgSW5jLgotICMKLSAjIFRo aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKLSAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKLUBAIC04MSwyMSArODEsNiBAQCBBTV9WQUxBRkxBR1MgPSBcCi0gCS0tdGFyZ2V0 LWdsaWI9IiQoVkFMQV9UQVJHRVRfR0xJQl9WRVJTSU9OKSIgXAotIAkkKE5VTEwpCi0gCi0taWYg RU5BQkxFX0xJQk5PVElGWQotLUFNX0NGTEFHUyArPSBcCi0tCUBMSUJOT1RJRllfQ0ZMQUdTQCBc Ci0tCSQoTlVMTCkKLS0KLS1BTV9MREFERCArPSBcCi0tCUBMSUJOT1RJRllfTElCU0AgXAotLQkk KE5VTEwpCi0tCi0tQU1fVkFMQUZMQUdTICs9IFwKLS0JLS1wa2c9bGlibm90aWZ5IFwKLS0JLUQg RU5BQkxFX0xJQk5PVElGWSBcCi0tCSQoTlVMTCkKLS1lbmRpZgotLQotIGlmIEVOQUJMRV9BUFBJ TkRJQ0FUT1IKLSBBTV9WQUxBRkxBR1MgKz0gLS1kZWZpbmU9SU5ESUNBVE9SCi0gZW5kaWYKLWRp ZmYgLS1naXQgYS91aS9ndGszL3BhbmVsLnZhbGEgYi91aS9ndGszL3BhbmVsLnZhbGEKLWluZGV4 IDRjM2IwMGNhLi4yMDU0NjU4ZSAxMDA2NDQKLS0tLSBhL3VpL2d0azMvcGFuZWwudmFsYQotKysr IGIvdWkvZ3RrMy9wYW5lbC52YWxhCi1AQCAtMyw3ICszLDcgQEAKLSAgKiBpYnVzIC0gVGhlIElu cHV0IEJ1cwotICAqCi0gICogQ29weXJpZ2h0KGMpIDIwMTEtMjAxNCBQZW5nIEh1YW5nIDxzaGF3 bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQoYykgMjAxNS0yMDE4IFRha2FvIEZ1 andpYXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodChjKSAyMDE1 LTIwMTkgVGFrYW8gRnVqd2lhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0gICoKLSAg KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYwotQEAgLTcwMCwyOSArNzAwLDYgQEAgY2xhc3MgUGFuZWwgOiBJQnVzLlBh bmVsU2VydmljZSB7Ci0gICAgICAgICByZXR1cm4gLTE7Ci0gICAgIH0KLSAKLS0gICAgcHJpdmF0 ZSB2b2lkIHVwZGF0ZV92ZXJzaW9uXzFfNV8zKCkgewotLSNpZiBFTkFCTEVfTElCTk9USUZZCi0t ICAgICAgICBpZiAoIU5vdGlmeS5pc19pbml0dGVkKCkpIHsKLS0gICAgICAgICAgICBOb3RpZnku aW5pdCAoImlidXMiKTsKLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHZhciBub3RpZmljYXRpb24g PSBuZXcgTm90aWZ5Lk5vdGlmaWNhdGlvbigKLS0gICAgICAgICAgICAgICAgXygiSUJ1cyBVcGRh dGUiKSwKLS0gICAgICAgICAgICAgICAgXygiU3VwZXIrc3BhY2UgaXMgbm93IHRoZSBkZWZhdWx0 IGhvdGtleS4iKSwKLS0gICAgICAgICAgICAgICAgImlidXMiKTsKLS0gICAgICAgIG5vdGlmaWNh dGlvbi5zZXRfdGltZW91dCgzMCAqIDEwMDApOwotLSAgICAgICAgbm90aWZpY2F0aW9uLnNldF9j YXRlZ29yeSgiaG90a2V5Iik7Ci0tCi0tICAgICAgICB0cnkgewotLSAgICAgICAgICAgIG5vdGlm aWNhdGlvbi5zaG93KCk7Ci0tICAgICAgICB9IGNhdGNoIChHTGliLkVycm9yIGUpewotLSAgICAg ICAgICAgIHdhcm5pbmcgKCJOb3RpZmljYXRpb24gaXMgZmFpbGVkIGZvciBJQnVzIDEuNS4zOiAl cyIsIGUubWVzc2FnZSk7Ci0tICAgICAgICB9Ci0tI2Vsc2UKLS0gICAgICAgIHdhcm5pbmcoXygi U3VwZXIrc3BhY2UgaXMgbm93IHRoZSBkZWZhdWx0IGhvdGtleS4iKSk7Ci0tI2VuZGlmCi0tICAg IH0KLS0KLSAgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZV92ZXJzaW9uXzFfNV84KCkgewotICAgICAg ICAgaW5pdGVkX2VuZ2luZXNfb3JkZXIgPSBmYWxzZTsKLSAgICAgfQotQEAgLTczMSw5ICs3MDgs NiBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAgICAgIHN0cmluZyBw cmV2X3ZlcnNpb24gPSBtX3NldHRpbmdzX2dlbmVyYWwuZ2V0X3N0cmluZygidmVyc2lvbiIpOwot ICAgICAgICAgc3RyaW5nIGN1cnJlbnRfdmVyc2lvbiA9IG51bGw7Ci0gCi0tICAgICAgICBpZiAo Y29tcGFyZV92ZXJzaW9ucyhwcmV2X3ZlcnNpb24sICIxLjUuMyIpIDwgMCkKLS0gICAgICAgICAg ICB1cGRhdGVfdmVyc2lvbl8xXzVfMygpOwotLQotICAgICAgICAgaWYgKGNvbXBhcmVfdmVyc2lv bnMocHJldl92ZXJzaW9uLCAiMS41LjgiKSA8IDApCi0gICAgICAgICAgICAgdXBkYXRlX3ZlcnNp b25fMV81XzgoKTsKLSAKLS0tIAotMi4yMC4xCi0KLUZyb20gYjMwZWI1ZGU5NTQxM2MzOTc3ODk5 ZmRkZGQwNGRlNjg3MmRhZTk5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3 YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjIgRmViIDIwMTkg MTg6NDA6MTQgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gRGVsZXRlIHVuZGVyc2NvcmUgaW4gX05h bWUgaW4gKi5kZXNrdG9wIGZvciBnZXR0ZXh0IG1pZ3JhdGlvbgotCi0tLS0KLSBwby9NYWtldmFy cyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0gc2V0dXAvTWFrZWZpbGUuYW0g ICAgICAgICAgICAgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKystLS0tLS0tLS0tLQotIHNl dHVwL2lidXMtc2V0dXAuZGVza3RvcCAgICAgICAgICAgICAgIHwgIDQgKystLQotIHVpL2d0azMv TWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgIHwgIDEgLQotIHVpL2d0azMvaWJ1cy1leHRl bnNpb24tZ3RrMy5kZXNrdG9wLmluIHwgIDIgKy0KLSB1aS9ndGszL2lidXMtdWktZW1vamllci5k ZXNrdG9wLmluICAgICB8ICAyICstCi0gNiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCsp LCAxNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3BvL01ha2V2YXJzIGIvcG8vTWFrZXZh cnMKLWluZGV4IDhjZjBiNzhhLi5kM2ZiZWFiMiAxMDA2NDQKLS0tLSBhL3BvL01ha2V2YXJzCi0r KysgYi9wby9NYWtldmFycwotQEAgLTEsNyArMSw3IEBACi0gIyBNYWtlZmlsZSB2YXJpYWJsZXMg Zm9yIFBPIGRpcmVjdG9yeSBpbiBhbnkgcGFja2FnZSB1c2luZyBHTlUgZ2V0dGV4dC4KLSAKLSAj IFVzdWFsbHkgdGhlIG1lc3NhZ2UgZG9tYWluIGlzIHRoZSBzYW1lIGFzIHRoZSBwYWNrYWdlIG5h bWUuCi0tRE9NQUlOID0gJChQQUNLQUdFKQotK0RPTUFJTiA9ICQoc2hlbGwgZ3JlcCAiR0VUVEVY VF9QQUNLQUdFLio9IiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYyB8IHNlZCAtZSAncy9cKC4q XCk9WyAJXSpcKC4qXCkvXDIvJykKLSAKLSAjIFRoZXNlIHR3byB2YXJpYWJsZXMgZGVwZW5kIG9u IHRoZSBsb2NhdGlvbiBvZiB0aGlzIGRpcmVjdG9yeS4KLSBzdWJkaXIgPSBwbwotZGlmZiAtLWdp dCBhL3NldHVwL01ha2VmaWxlLmFtIGIvc2V0dXAvTWFrZWZpbGUuYW0KLWluZGV4IDE3ZDgwYzUx Li5jYjRkZDhkMSAxMDA2NDQKLS0tLSBhL3NldHVwL01ha2VmaWxlLmFtCi0rKysgYi9zZXR1cC9N YWtlZmlsZS5hbQotQEAgLTQwLDggKzQwLDExIEBAIGlidXNzZXR1cF9EQVRBID0gXAotIGJpbl9T Q1JJUFRTID0gaWJ1cy1zZXR1cAotIGlidXNzZXR1cGRpciA9ICQocGtnZGF0YWRpcikvc2V0dXAK LSAKLS1kZXNrdG9wX0RBVEEgPSBpYnVzLXNldHVwLmRlc2t0b3AKLStkZXNrdG9wX25vdHJhbnNf ZmlsZXMgPSBpYnVzLXNldHVwLmRlc2t0b3AKLStkZXNrdG9wX0RBVEEgPSBvcmcuZnJlZWRlc2t0 b3AuSUJ1cy5TZXR1cC5kZXNrdG9wCi0gZGVza3RvcGRpciA9ICQoZGF0YWRpcikvYXBwbGljYXRp b25zCi0rb3JnLmZyZWVkZXNrdG9wLklCdXMuU2V0dXAuZGVza3RvcDogaWJ1cy1zZXR1cC5kZXNr dG9wCi0rCSQoQU1fVl9HRU4pICQoTVNHRk1UKSAtLWRlc2t0b3AgLS10ZW1wbGF0ZSAkPCAtZCAk KHRvcF9zcmNkaXIpL3BvIC1vICRACi0gCi0gbWFuX29uZV9pbl9maWxlcyA9IGlidXMtc2V0dXAu MS5pbgotIG1hbl9vbmVfZmlsZXMgPSAkKG1hbl9vbmVfaW5fZmlsZXM6LjEuaW49LjEpCi1AQCAt NTUsMTggKzU4LDE5IEBAIG1hbl9vbmVkaXIgPSAkKG1hbmRpcikvbWFuMQotIAkkKEFNX1ZfR0VO KSBnemlwIC1jICQ8ID4gJEAudG1wICYmIG12ICRALnRtcCAkQAotIAotIENMRUFORklMRVMgPSBc Ci0tCSQobWFuX29uZV9EQVRBKSBcCi0tCSQobWFuX29uZV9maWxlcykgXAotLQkqLnB5YyBcCi0t CWlidXMtc2V0dXAgXAotLQkkKE5VTEwpCi0rICAgICQoZGVza3RvcF9EQVRBKSBcCi0rICAgICQo bWFuX29uZV9EQVRBKSBcCi0rICAgICQobWFuX29uZV9maWxlcykgXAotKyAgICAqLnB5YyBcCi0r ICAgIGlidXMtc2V0dXAgXAotKyAgICAkKE5VTEwpCi0gCi0gRVhUUkFfRElTVCA9IFwKLS0JJCht YW5fb25lX2luX2ZpbGVzKSBcCi0tCWlidXMtc2V0dXAuaW4gXAotLQlzZXR1cC51aSBcCi0tCWli dXMtc2V0dXAuZGVza3RvcCBcCi0tCSQoTlVMTCkKLSsgICAgJChkZXNrdG9wX25vdHJhbnNfZmls ZXMpIFwKLSsgICAgJChtYW5fb25lX2luX2ZpbGVzKSBcCi0rICAgIGlidXMtc2V0dXAuaW4gXAot KyAgICBzZXR1cC51aSBcCi0rICAgICQoTlVMTCkKLSAKLSB0ZXN0OgotIAkkKEVOVl9JQlVTX1RF U1QpIFwKLWRpZmYgLS1naXQgYS9zZXR1cC9pYnVzLXNldHVwLmRlc2t0b3AgYi9zZXR1cC9pYnVz LXNldHVwLmRlc2t0b3AKLWluZGV4IDg2NGIwMjZlLi4wNjA4YTY4ZiAxMDA2NDQKLS0tLSBhL3Nl dHVwL2lidXMtc2V0dXAuZGVza3RvcAotKysrIGIvc2V0dXAvaWJ1cy1zZXR1cC5kZXNrdG9wCi1A QCAtMSw2ICsxLDYgQEAKLSBbRGVza3RvcCBFbnRyeV0KLS1fTmFtZT1JQnVzIFByZWZlcmVuY2Vz Ci0tX0NvbW1lbnQ9U2V0IElCdXMgUHJlZmVyZW5jZXMKLStOYW1lPUlCdXMgUHJlZmVyZW5jZXMK LStDb21tZW50PVNldCBJQnVzIFByZWZlcmVuY2VzCi0gRXhlYz1pYnVzLXNldHVwCi0gSWNvbj1p YnVzLXNldHVwCi0gVGVybWluYWw9ZmFsc2UKLWRpZmYgLS1naXQgYS91aS9ndGszL01ha2VmaWxl LmFtIGIvdWkvZ3RrMy9NYWtlZmlsZS5hbQotaW5kZXggZDBmYTdjNTguLjYwMjA1YWE1IDEwMDY0 NAotLS0tIGEvdWkvZ3RrMy9NYWtlZmlsZS5hbQotKysrIGIvdWkvZ3RrMy9NYWtlZmlsZS5hbQot QEAgLTI2Miw3ICsyNjIsNiBAQCBkZXNrdG9wX0RBVEEgPSBcCi0gZGVza3RvcGRpciA9ICQoZGF0 YWRpcikvYXBwbGljYXRpb25zCi0gJS5kZXNrdG9wOiAlLmRlc2t0b3AuaW4KLSAJJChBTV9WX0dF Tikgc2VkIFwKLS0JCS1lICdzfF5fTmFtZT18TmFtZT18ZycgXAotIAkJLWUgJ3N8QGxpYmV4ZWNk aXJbQF18JChsaWJleGVjZGlyKXxnJyAkPCA+ICRALnRtcCAmJiBcCi0gICAgICAgICAgICAgICAg IG12ICRALnRtcCAkQAotIAkkKE5VTEwpCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9pYnVzLWV4dGVu c2lvbi1ndGszLmRlc2t0b3AuaW4gYi91aS9ndGszL2lidXMtZXh0ZW5zaW9uLWd0azMuZGVza3Rv cC5pbgotaW5kZXggYTExOWVjOGUuLjVlMGU5MTBkIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9pYnVz LWV4dGVuc2lvbi1ndGszLmRlc2t0b3AuaW4KLSsrKyBiL3VpL2d0azMvaWJ1cy1leHRlbnNpb24t Z3RrMy5kZXNrdG9wLmluCi1AQCAtMSw1ICsxLDUgQEAKLSBbRGVza3RvcCBFbnRyeV0KLS1fTmFt ZT1FbW9qaSBDaG9pY2UKLStOYW1lPUVtb2ppIENob2ljZQotIEljb249aWJ1cwotIEV4ZWM9QGxp YmV4ZWNkaXJAL2lidXMtZXh0ZW5zaW9uLWd0azMKLSBUeXBlPUFwcGxpY2F0aW9uCi1kaWZmIC0t Z2l0IGEvdWkvZ3RrMy9pYnVzLXVpLWVtb2ppZXIuZGVza3RvcC5pbiBiL3VpL2d0azMvaWJ1cy11 aS1lbW9qaWVyLmRlc2t0b3AuaW4KLWluZGV4IDZkOTQyMmQ1Li5mNjVmZTNkOCAxMDA2NDQKLS0t LSBhL3VpL2d0azMvaWJ1cy11aS1lbW9qaWVyLmRlc2t0b3AuaW4KLSsrKyBiL3VpL2d0azMvaWJ1 cy11aS1lbW9qaWVyLmRlc2t0b3AuaW4KLUBAIC0xLDUgKzEsNSBAQAotIFtEZXNrdG9wIEVudHJ5 XQotLV9OYW1lPUVtb2ppIENob2ljZQotK05hbWU9RW1vamkgQ2hvaWNlCi0gSWNvbj1pYnVzCi0g RXhlYz1pYnVzIGVtb2ppCi0gVHlwZT1BcHBsaWNhdGlvbgotLS0gCi0yLjIwLjEKLQo=