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: Neal Gompa To: git-commits@fedoraproject.org Subject: [rpms/obs-studio] epel9-next: Rebase to 30.0.0~beta3 Date: Mon, 20 Jul 2026 19:39:39 GMT Message-ID: <178457637952.1.3934676893580716878.rpms-obs-studio-da7c27338e50@fedoraproject.org> List-ID: X-Git-Repo: rpms/obs-studio X-Git-Branch: epel9-next X-Git-Rev: da7c27338e50c22ed586c8d215a43eee1f31a604 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb2JzLXN0dWRpbwpC cmFuY2ggOiBlcGVsOS1uZXh0CkNvbW1pdCA6IGRhN2MyNzMzOGU1MGMyMmVkNTg2YzhkMjE1YTQz ZWVlMWYzMWE2MDQKQXV0aG9yIDogTmVhbCBHb21wYSA8bmdvbXBhQGZlZG9yYXByb2plY3Qub3Jn PgpEYXRlICAgOiAyMDIzLTA5LTExVDE2OjQ1OjE3LTA0OjAwClN0YXRzICA6ICsxMzA4Ly0xMzEz IGluIDE0IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBt cy9vYnMtc3R1ZGlvL2MvZGE3YzI3MzM4ZTUwYzIyZWQ1ODZjOGQyMTVhNDNlZWUxZjMxYTYwND9i cmFuY2g9ZXBlbDktbmV4dAoKTG9nOgpSZWJhc2UgdG8gMzAuMC4wfmJldGEzCgotLS0KZGlmZiAt LWdpdCBhLzAwMDEtVUktQ29uc2lzdGVudGx5LXJlZmVyZW5jZS10aGUtc29mdHdhcmUtSDI2NC1l bmNvZGVyLS5wYXRjaCBiLzAwMDEtVUktQ29uc2lzdGVudGx5LXJlZmVyZW5jZS10aGUtc29mdHdh cmUtSDI2NC1lbmNvZGVyLS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk3 NmY1Yy4uMDAwMDAwMAotLS0gYS8wMDAxLVVJLUNvbnNpc3RlbnRseS1yZWZlcmVuY2UtdGhlLXNv ZnR3YXJlLUgyNjQtZW5jb2Rlci0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBA QAotRnJvbSAwNGQzYTIxYzZlNzJjZDU1NzRmNzMzM2FkZjU0ODAxMmQ5MTJjMWVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTmVhbCBHb21wYSA8bmVhbEBnb21wYS5kZXY+Ci1EYXRl OiBTYXQsIDcgSmFuIDIwMjMgMjM6MTU6MTMgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzNdIFVJ OiBDb25zaXN0ZW50bHkgcmVmZXJlbmNlIHRoZSBzb2Z0d2FyZSBIMjY0IGVuY29kZXIKLSBwcm9w ZXJseQotCi1UaGUgY29kZSBoZXJlIGFzc3VtZXMgdGhhdCB0aGUgb25seSBzb2Z0d2FyZSBlbmNv ZGVyIGlzIHRoZSB4MjY0LWJhc2VkCi1ILjI2NCBlbmNvZGVyLiBUaGF0IG1heSBub3QgYWx3YXlz IHJlbWFpbiB0cnVlLiBUaGlzIGNoYW5nZSBhZGp1c3RzCi10aGUgZW5jb2RlciBzdHJpbmcgdG8g aW5kaWNhdGUgdGhhdCBpdCdzIGFuIEguMjY0IGVuY29kZXIgZnJvbSB4MjY0LgotLS0tCi0gVUkv ZGF0YS9sb2NhbGUvZW4tVVMuaW5pICAgICAgICAgICAgIHwgNCArKy0tCi0gVUkvd2luZG93LWJh c2ljLWF1dG8tY29uZmlnLXRlc3QuY3BwIHwgNiArKystLS0KLSBVSS93aW5kb3ctYmFzaWMtc2V0 dGluZ3Mtc3RyZWFtLmNwcCAgfCAyICstCi0gVUkvd2luZG93LWJhc2ljLXNldHRpbmdzLmNwcCAg ICAgICAgIHwgNyArKysrLS0tCi0gNCBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5 IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvVUkvZGF0YS9sb2NhbGUvZW4tVVMuaW5pIGIv VUkvZGF0YS9sb2NhbGUvZW4tVVMuaW5pCi1pbmRleCA0YzAzYWE3ZGIuLmU0NGQ5OTY2MCAxMDA2 NDQKLS0tLSBhL1VJL2RhdGEvbG9jYWxlL2VuLVVTLmluaQotKysrIGIvVUkvZGF0YS9sb2NhbGUv ZW4tVVMuaW5pCi1AQCAtOTgwLDcgKzk4MCw3IEBAIEJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1w bGUuV2Fybi5FbmNvZGVyPSJXYXJuaW5nOiBSZWNvcmRpbmcgd2l0aCBhIHNvZnR3YXJlIGVuCi0g QmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5XYXJuLkxvc3NsZXNzPSJXYXJuaW5nOiBMb3Nz bGVzcyBxdWFsaXR5IGdlbmVyYXRlcyB0cmVtZW5kb3VzbHkgbGFyZ2UgZmlsZSBzaXplcyEgTG9z c2xlc3MgcXVhbGl0eSBjYW4gdXNlIHVwd2FyZCBvZiA3IGdpZ2FieXRlcyBvZiBkaXNrIHNwYWNl IHBlciBtaW51dGUgYXQgaGlnaCByZXNvbHV0aW9ucyBhbmQgZnJhbWVyYXRlcy4gTG9zc2xlc3Mg aXMgbm90IHJlY29tbWVuZGVkIGZvciBsb25nIHJlY29yZGluZ3MgdW5sZXNzIHlvdSBoYXZlIGEg dmVyeSBsYXJnZSBhbW91bnQgb2YgZGlzayBzcGFjZSBhdmFpbGFibGUuIgotIEJhc2ljLlNldHRp bmdzLk91dHB1dC5TaW1wbGUuV2Fybi5Mb3NzbGVzcy5Nc2c9IkFyZSB5b3Ugc3VyZSB5b3Ugd2Fu dCB0byB1c2UgbG9zc2xlc3MgcXVhbGl0eT8iCi0gQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBs ZS5XYXJuLkxvc3NsZXNzLlRpdGxlPSJMb3NzbGVzcyBxdWFsaXR5IHdhcm5pbmchIgotLUJhc2lj LlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci5Tb2Z0d2FyZT0iU29mdHdhcmUgKHgyNjQp IgotK0Jhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci5Tb2Z0d2FyZS5YMjY0Lkgy NjQ9IlNvZnR3YXJlICh4MjY0KSIKLSBCYXNpYy5TZXR0aW5ncy5PdXRwdXQuU2ltcGxlLkVuY29k ZXIuSGFyZHdhcmUuUVNWLkgyNjQ9IkhhcmR3YXJlIChRU1YsIEguMjY0KSIKLSBCYXNpYy5TZXR0 aW5ncy5PdXRwdXQuU2ltcGxlLkVuY29kZXIuSGFyZHdhcmUuUVNWLkFWMT0iSGFyZHdhcmUgKFFT ViwgQVYxKSIKLSBCYXNpYy5TZXR0aW5ncy5PdXRwdXQuU2ltcGxlLkVuY29kZXIuSGFyZHdhcmUu QU1ELkgyNjQ9IkhhcmR3YXJlIChBTUQsIEguMjY0KSIKLUBAIC05OTEsNyArOTkxLDcgQEAgQmFz aWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5FbmNvZGVyLkhhcmR3YXJlLk5WRU5DLkFWMT0iSGFy ZHdhcmUgKE5WRU5DLCBBVjEpIgotIEJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rl ci5IYXJkd2FyZS5OVkVOQy5IRVZDPSJIYXJkd2FyZSAoTlZFTkMsIEhFVkMpIgotIEJhc2ljLlNl dHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci5IYXJkd2FyZS5BcHBsZS5IMjY0PSJIYXJkd2Fy ZSAoQXBwbGUsIEguMjY0KSIKLSBCYXNpYy5TZXR0aW5ncy5PdXRwdXQuU2ltcGxlLkVuY29kZXIu SGFyZHdhcmUuQXBwbGUuSEVWQz0iSGFyZHdhcmUgKEFwcGxlLCBIRVZDKSIKLS1CYXNpYy5TZXR0 aW5ncy5PdXRwdXQuU2ltcGxlLkVuY29kZXIuU29mdHdhcmVMb3dDUFU9IlNvZnR3YXJlICh4MjY0 IGxvdyBDUFUgdXNhZ2UgcHJlc2V0LCBpbmNyZWFzZXMgZmlsZSBzaXplKSIKLStCYXNpYy5TZXR0 aW5ncy5PdXRwdXQuU2ltcGxlLkVuY29kZXIuU29mdHdhcmVMb3dDUFUuWDI2NC5IMjY0PSJTb2Z0 d2FyZSAoeDI2NCBsb3cgQ1BVIHVzYWdlIHByZXNldCwgaW5jcmVhc2VzIGZpbGUgc2l6ZSkiCi0g QmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5Db2RlYy5BQUM9IkFBQyIKLSBCYXNpYy5TZXR0 aW5ncy5PdXRwdXQuU2ltcGxlLkNvZGVjLkFBQy5EZWZhdWx0PSJBQUMgKERlZmF1bHQpIgotIEJh c2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuQ29kZWMuT3B1cz0iT3B1cyIKLWRpZmYgLS1naXQg YS9VSS93aW5kb3ctYmFzaWMtYXV0by1jb25maWctdGVzdC5jcHAgYi9VSS93aW5kb3ctYmFzaWMt YXV0by1jb25maWctdGVzdC5jcHAKLWluZGV4IDJkODlkNzM0Ny4uMDk5NzljMDMxIDEwMDY0NAot LS0tIGEvVUkvd2luZG93LWJhc2ljLWF1dG8tY29uZmlnLXRlc3QuY3BwCi0rKysgYi9VSS93aW5k b3ctYmFzaWMtYXV0by1jb25maWctdGVzdC5jcHAKLUBAIC05OTMsNyArOTkzLDcgQEAgdm9pZCBB dXRvQ29uZmlnVGVzdFBhZ2U6OlRlc3RSZWNvcmRpbmdFbmNvZGVyVGhyZWFkKCkKLSB9Ci0gCi0g I2RlZmluZSBFTkNPREVSX1RFWFQoeCkgIkJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5j b2Rlci4iIHgKLS0jZGVmaW5lIEVOQ09ERVJfU09GVFdBUkUgRU5DT0RFUl9URVhUKCJTb2Z0d2Fy ZSIpCi0rI2RlZmluZSBFTkNPREVSX1gyNjQgRU5DT0RFUl9URVhUKCJTb2Z0d2FyZS5YMjY0Lkgy NjQiKQotICNkZWZpbmUgRU5DT0RFUl9OVkVOQyBFTkNPREVSX1RFWFQoIkhhcmR3YXJlLk5WRU5D LkgyNjQiKQotICNkZWZpbmUgRU5DT0RFUl9RU1YgRU5DT0RFUl9URVhUKCJIYXJkd2FyZS5RU1Yu SDI2NCIpCi0gI2RlZmluZSBFTkNPREVSX0FNRCBFTkNPREVSX1RFWFQoIkhhcmR3YXJlLkFNRC5I MjY0IikKLUBAIC0xMDMzLDcgKzEwMzMsNyBAQCB2b2lkIEF1dG9Db25maWdUZXN0UGFnZTo6Rmlu YWxpemVSZXN1bHRzKCkKLSAJYXV0byBlbmNOYW1lID0gW10oQXV0b0NvbmZpZzo6RW5jb2RlciBl bmMpIC0+IFFTdHJpbmcgewotIAkJc3dpdGNoIChlbmMpIHsKLSAJCWNhc2UgQXV0b0NvbmZpZzo6 RW5jb2Rlcjo6eDI2NDoKLS0JCQlyZXR1cm4gUVRTdHIoRU5DT0RFUl9TT0ZUV0FSRSk7Ci0rCQkJ cmV0dXJuIFFUU3RyKEVOQ09ERVJfWDI2NCk7Ci0gCQljYXNlIEF1dG9Db25maWc6OkVuY29kZXI6 Ok5WRU5DOgotIAkJCXJldHVybiBRVFN0cihFTkNPREVSX05WRU5DKTsKLSAJCWNhc2UgQXV0b0Nv bmZpZzo6RW5jb2Rlcjo6UVNWOgotQEAgLTEwNDYsNyArMTA0Niw3IEBAIHZvaWQgQXV0b0NvbmZp Z1Rlc3RQYWdlOjpGaW5hbGl6ZVJlc3VsdHMoKQotIAkJCXJldHVybiBRVFN0cihRVUFMSVRZX1NB TUUpOwotIAkJfQotIAotLQkJcmV0dXJuIFFUU3RyKEVOQ09ERVJfU09GVFdBUkUpOwotKwkJcmV0 dXJuIFFUU3RyKEVOQ09ERVJfWDI2NCk7Ci0gCX07Ci0gCi0gCWF1dG8gbmV3TGFiZWwgPSBbdGhp c10oY29uc3QgY2hhciAqc3RyKSAtPiBRTGFiZWwgKiB7Ci1kaWZmIC0tZ2l0IGEvVUkvd2luZG93 LWJhc2ljLXNldHRpbmdzLXN0cmVhbS5jcHAgYi9VSS93aW5kb3ctYmFzaWMtc2V0dGluZ3Mtc3Ry ZWFtLmNwcAotaW5kZXggZjZlMDgxN2EwLi5iMDU2OTM4ZTcgMTAwNjQ0Ci0tLS0gYS9VSS93aW5k b3ctYmFzaWMtc2V0dGluZ3Mtc3RyZWFtLmNwcAotKysrIGIvVUkvd2luZG93LWJhc2ljLXNldHRp bmdzLXN0cmVhbS5jcHAKLUBAIC0xNTg1LDcgKzE1ODUsNyBAQCB2b2lkIE9CU0Jhc2ljU2V0dGlu Z3M6OlJlc2V0RW5jb2RlcnMoYm9vbCBzdHJlYW1Pbmx5KQotIAotICNkZWZpbmUgRU5DT0RFUl9T VFIoc3RyKSBRVFN0cigiQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5FbmNvZGVyLiIgc3Ry KQotIAotLQl1aS0+c2ltcGxlT3V0U3RyRW5jb2Rlci0+YWRkSXRlbShFTkNPREVSX1NUUigiU29m dHdhcmUiKSwKLSsJdWktPnNpbXBsZU91dFN0ckVuY29kZXItPmFkZEl0ZW0oRU5DT0RFUl9TVFIo IlNvZnR3YXJlLlgyNjQuSDI2NCIpLAotIAkJCQkJIFFTdHJpbmcoU0lNUExFX0VOQ09ERVJfWDI2 NCkpOwotIAlpZiAoc2VydmljZV9zdXBwb3J0c19lbmNvZGVyKHZjb2RlY3MsICJvYnNfcXN2MTEi KSkKLSAJCXVpLT5zaW1wbGVPdXRTdHJFbmNvZGVyLT5hZGRJdGVtKAotZGlmZiAtLWdpdCBhL1VJ L3dpbmRvdy1iYXNpYy1zZXR0aW5ncy5jcHAgYi9VSS93aW5kb3ctYmFzaWMtc2V0dGluZ3MuY3Bw Ci1pbmRleCBmYjE3MGJmYzEuLjQ4YmI0YmFjNiAxMDA2NDQKLS0tLSBhL1VJL3dpbmRvdy1iYXNp Yy1zZXR0aW5ncy5jcHAKLSsrKyBiL1VJL3dpbmRvdy1iYXNpYy1zZXR0aW5ncy5jcHAKLUBAIC01 Mjg2LDEwICs1Mjg2LDExIEBAIHZvaWQgT0JTQmFzaWNTZXR0aW5nczo6RmlsbFNpbXBsZVJlY29y ZGluZ1ZhbHVlcygpCi0gCUFERF9RVUFMSVRZKCJIUSIpOwotIAlBRERfUVVBTElUWSgiTG9zc2xl c3MiKTsKLSAKLS0JdWktPnNpbXBsZU91dFJlY0VuY29kZXItPmFkZEl0ZW0oRU5DT0RFUl9TVFIo IlNvZnR3YXJlIiksCi0rCXVpLT5zaW1wbGVPdXRSZWNFbmNvZGVyLT5hZGRJdGVtKEVOQ09ERVJf U1RSKCJTb2Z0d2FyZS5YMjY0LkgyNjQiKSwKLSAJCQkJCSBRU3RyaW5nKFNJTVBMRV9FTkNPREVS X1gyNjQpKTsKLS0JdWktPnNpbXBsZU91dFJlY0VuY29kZXItPmFkZEl0ZW0oRU5DT0RFUl9TVFIo IlNvZnR3YXJlTG93Q1BVIiksCi0tCQkJCQkgUVN0cmluZyhTSU1QTEVfRU5DT0RFUl9YMjY0X0xP V0NQVSkpOwotKwl1aS0+c2ltcGxlT3V0UmVjRW5jb2Rlci0+YWRkSXRlbSgKLSsJCUVOQ09ERVJf U1RSKCJTb2Z0d2FyZUxvd0NQVS5YMjY0LkgyNjQiKSwKLSsJCVFTdHJpbmcoU0lNUExFX0VOQ09E RVJfWDI2NF9MT1dDUFUpKTsKLSAJaWYgKEVuY29kZXJBdmFpbGFibGUoIm9ic19xc3YxMSIpKQot IAkJdWktPnNpbXBsZU91dFJlY0VuY29kZXItPmFkZEl0ZW0oCi0gCQkJRU5DT0RFUl9TVFIoIkhh cmR3YXJlLlFTVi5IMjY0IiksCi0tLSAKLTIuMzkuMgotCgpkaWZmIC0tZ2l0IGEvMDAwMi1vYnMt ZmZtcGVnLUFkZC1pbml0aWFsLXN1cHBvcnQtZm9yLXRoZS1PcGVuSDI2NC1ILjI2LnBhdGNoIGIv MDAwMi1vYnMtZmZtcGVnLUFkZC1pbml0aWFsLXN1cHBvcnQtZm9yLXRoZS1PcGVuSDI2NC1ILjI2 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTgwYTc5Li4wMDAwMDAwCi0t LSBhLzAwMDItb2JzLWZmbXBlZy1BZGQtaW5pdGlhbC1zdXBwb3J0LWZvci10aGUtT3BlbkgyNjQt SC4yNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0NiArMCwwIEBACi1Gcm9tIDQ1MTdkOGQ4 YmI0YzQzYWYxZjViNzU3NzczYTVmOTU1MGJkMjNkMzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBOZWFsIEdvbXBhIDxuZWFsQGdvbXBhLmRldj4KLURhdGU6IFN1biwgMjYgTWFyIDIw MjMgMDY6MDY6MzEgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzNdIG9icy1mZm1wZWc6IEFkZCBp bml0aWFsIHN1cHBvcnQgZm9yIHRoZSBPcGVuSDI2NCBILjI2NAotIHNvZnR3YXJlIGNvZGVjCi0K LVRoaXMgYWxsb3dzIHVzZXJzIHRvIGxldmVyYWdlIHRoZSBPcGVuSDI2NCBjb2RlYyBmcm9tIENp c2NvIHRvIGVuY29kZQotSC4yNjQgdmlkZW8gY29udGVudC4gSXQgaXMgc2lnbmlmaWNhbnRseSBy ZWR1Y2VkIGluIGNhcGFiaWxpdHkgZnJvbQotYWx0ZXJuYXRpdmVzLCBidXQgaXQgZG9lcyB0aGUg am9iLgotCi1UaGlzIGFsc28gcHJvdmlkZXMgYSBmcmFtZXdvcmsgZm9yIGFkZGluZyBzdXBwb3J0 IGZvciBvdGhlciBILjI2NAotc29mdHdhcmUgY29kZWNzIHByb3ZpZGVkIHRocm91Z2ggRkZtcGVn LgotLS0tCi0gcGx1Z2lucy9vYnMtZmZtcGVnL0NNYWtlTGlzdHMudHh0ICAgICAgICB8ICAgMSAr Ci0gcGx1Z2lucy9vYnMtZmZtcGVnL2NtYWtlL2xlZ2FjeS5jbWFrZSAgICB8ICAgMSArCi0gcGx1 Z2lucy9vYnMtZmZtcGVnL2RhdGEvbG9jYWxlL2VuLVVTLmluaSB8ICAgMyArCi0gcGx1Z2lucy9v YnMtZmZtcGVnL29icy1mZm1wZWctaDI2NC5jICAgICB8IDI2MCArKysrKysrKysrKysrKysrKysr KysrKwotIHBsdWdpbnMvb2JzLWZmbXBlZy9vYnMtZmZtcGVnLmMgICAgICAgICAgfCAgIDIgKwot IDUgZmlsZXMgY2hhbmdlZCwgMjY3IGluc2VydGlvbnMoKykKLSBjcmVhdGUgbW9kZSAxMDA2NDQg cGx1Z2lucy9vYnMtZmZtcGVnL29icy1mZm1wZWctaDI2NC5jCi0KLWRpZmYgLS1naXQgYS9wbHVn aW5zL29icy1mZm1wZWcvQ01ha2VMaXN0cy50eHQgYi9wbHVnaW5zL29icy1mZm1wZWcvQ01ha2VM aXN0cy50eHQKLWluZGV4IDNlYmEwMDkzMi4uZjk3NjIyYzIyIDEwMDY0NAotLS0tIGEvcGx1Z2lu cy9vYnMtZmZtcGVnL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9wbHVnaW5zL29icy1mZm1wZWcvQ01h a2VMaXN0cy50eHQKLUBAIC0zNCw2ICszNCw3IEBAIHRhcmdldF9zb3VyY2VzKAotICAgICAgICAg ICBvYnMtZmZtcGVnLXZpZGVvLWVuY29kZXJzLmMKLSAgICAgICAgICAgb2JzLWZmbXBlZy1hdWRp by1lbmNvZGVycy5jCi0gICAgICAgICAgIG9icy1mZm1wZWctYXYxLmMKLSsgICAgICAgICAgb2Jz LWZmbXBlZy1oMjY0LmMKLSAgICAgICAgICAgb2JzLWZmbXBlZy1udmVuYy5jCi0gICAgICAgICAg IG9icy1mZm1wZWctb3V0cHV0LmMKLSAgICAgICAgICAgb2JzLWZmbXBlZy1tdXguYwotZGlmZiAt LWdpdCBhL3BsdWdpbnMvb2JzLWZmbXBlZy9jbWFrZS9sZWdhY3kuY21ha2UgYi9wbHVnaW5zL29i cy1mZm1wZWcvY21ha2UvbGVnYWN5LmNtYWtlCi1pbmRleCA1NTQwNjc2ZWEuLjYyZjJjYzdhMSAx MDA2NDQKLS0tLSBhL3BsdWdpbnMvb2JzLWZmbXBlZy9jbWFrZS9sZWdhY3kuY21ha2UKLSsrKyBi L3BsdWdpbnMvb2JzLWZmbXBlZy9jbWFrZS9sZWdhY3kuY21ha2UKLUBAIC00MCw2ICs0MCw3IEBA IHRhcmdldF9zb3VyY2VzKAotICAgICAgICAgICBvYnMtZmZtcGVnLXZpZGVvLWVuY29kZXJzLmMK LSAgICAgICAgICAgb2JzLWZmbXBlZy1hdWRpby1lbmNvZGVycy5jCi0gICAgICAgICAgIG9icy1m Zm1wZWctYXYxLmMKLSsgICAgICAgICAgb2JzLWZmbXBlZy1oMjY0LmMKLSAgICAgICAgICAgb2Jz LWZmbXBlZy1udmVuYy5jCi0gICAgICAgICAgIG9icy1mZm1wZWctb3V0cHV0LmMKLSAgICAgICAg ICAgb2JzLWZmbXBlZy1tdXguYwotZGlmZiAtLWdpdCBhL3BsdWdpbnMvb2JzLWZmbXBlZy9kYXRh L2xvY2FsZS9lbi1VUy5pbmkgYi9wbHVnaW5zL29icy1mZm1wZWcvZGF0YS9sb2NhbGUvZW4tVVMu aW5pCi1pbmRleCA1NWJiZTkxOWQuLjAzNjNlZDgyYiAxMDA2NDQKLS0tLSBhL3BsdWdpbnMvb2Jz LWZmbXBlZy9kYXRhL2xvY2FsZS9lbi1VUy5pbmkKLSsrKyBiL3BsdWdpbnMvb2JzLWZmbXBlZy9k YXRhL2xvY2FsZS9lbi1VUy5pbmkKLUBAIC0xMDksNCArMTA5LDcgQEAgTlZFTkMuQ2hlY2tEcml2 ZXJzPSJUcnkgaW5zdGFsbGluZyB0aGUgbGF0ZXN0IDxhIGhyZWY9XCJodHRwczovL29ic3Byb2pl Y3QuY29tL2cKLSAKLSBBVjEuOGJpdFVuc3VwcG9ydGVkSGRyPSJPQlMgZG9lcyBub3Qgc3VwcG9y dCA4LWJpdCBvdXRwdXQgb2YgUmVjLiAyMTAwLiIKLSAKLStIMjY0LlVuc3VwcG9ydGVkVmlkZW9G b3JtYXQ9Ik9ubHkgdmlkZW8gZm9ybWF0cyB1c2luZyA4LWJpdCBjb2xvciBhcmUgc3VwcG9ydGVk LiIKLStIMjY0LlVuc3VwcG9ydGVkQ29sb3JTcGFjZT0iT25seSB0aGUgUmVjLiA3MDkgY29sb3Ig c3BhY2UgaXMgc3VwcG9ydGVkLiIKLSsKLSBSZWNvbm5lY3REZWxheVRpbWU9IlJlY29ubmVjdCBE ZWxheSIKLWRpZmYgLS1naXQgYS9wbHVnaW5zL29icy1mZm1wZWcvb2JzLWZmbXBlZy1oMjY0LmMg Yi9wbHVnaW5zL29icy1mZm1wZWcvb2JzLWZmbXBlZy1oMjY0LmMKLW5ldyBmaWxlIG1vZGUgMTAw NjQ0Ci1pbmRleCAwMDAwMDAwMDAuLjE3OWE2MWNjZgotLS0tIC9kZXYvbnVsbAotKysrIGIvcGx1 Z2lucy9vYnMtZmZtcGVnL29icy1mZm1wZWctaDI2NC5jCi1AQCAtMCwwICsxLDI2MCBAQAotKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKLSsgICAgQ29weXJpZ2h0IChDKSAyMDIzIGJ5IE5lYWwgR29t cGEgPG5lYWxAZ29tcGEuZGV2PgotKyAgICBQYXJ0bHkgZGVyaXZlZCBmcm9tIG9icy1mZm1wZWct YXYxLmMgYnkgSHVnaCBCYWlsZXkgPG9icy5qaW1AZ21haWwuY29tPgotKwotKyAgICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotKyAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgICAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICAgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQotKyAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot KwotKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQotKyAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCi0rCi0rI2luY2x1ZGUgIm9icy1mZm1wZWctdmlkZW8tZW5jb2RlcnMuaCIKLSsKLSsjZGVm aW5lIGRvX2xvZyhsZXZlbCwgZm9ybWF0LCAuLi4pICAgICAgICAgICAgICAgICAgIFwKLSsJYmxv ZyhsZXZlbCwgIltILjI2NCBlbmNvZGVyOiAnJXMnXSAiIGZvcm1hdCwgXAotKwkgICAgIG9ic19l bmNvZGVyX2dldF9uYW1lKGVuYy0+ZmZ2ZS5lbmNvZGVyKSwgIyNfX1ZBX0FSR1NfXykKLSsKLSsj ZGVmaW5lIGVycm9yKGZvcm1hdCwgLi4uKSBkb19sb2coTE9HX0VSUk9SLCBmb3JtYXQsICMjX19W QV9BUkdTX18pCi0rI2RlZmluZSB3YXJuKGZvcm1hdCwgLi4uKSBkb19sb2coTE9HX1dBUk5JTkcs IGZvcm1hdCwgIyNfX1ZBX0FSR1NfXykKLSsjZGVmaW5lIGluZm8oZm9ybWF0LCAuLi4pIGRvX2xv ZyhMT0dfSU5GTywgZm9ybWF0LCAjI19fVkFfQVJHU19fKQotKyNkZWZpbmUgZGVidWcoZm9ybWF0 LCAuLi4pIGRvX2xvZyhMT0dfREVCVUcsIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXykKLSsKLStlbnVt IGgyNjRfZW5jb2Rlcl90eXBlIHsKLSsJSDI2NF9FTkNPREVSX1RZUEVfT0gyNjQsCi0rfTsKLSsK LStzdHJ1Y3QgaDI2NF9lbmNvZGVyIHsKLSsJc3RydWN0IGZmbXBlZ192aWRlb19lbmNvZGVyIGZm dmU7Ci0rCWVudW0gaDI2NF9lbmNvZGVyX3R5cGUgdHlwZTsKLSsKLSsJREFSUkFZKHVpbnQ4X3Qp IGhlYWRlcjsKLSt9OwotKwotK3N0YXRpYyBjb25zdCBjaGFyICpvaDI2NF9nZXRuYW1lKHZvaWQg KnVudXNlZCkKLSt7Ci0rCVVOVVNFRF9QQVJBTUVURVIodW51c2VkKTsKLSsJcmV0dXJuICJPcGVu SDI2NCI7Ci0rfQotKwotK3N0YXRpYyB2b2lkIGgyNjRfdmlkZW9faW5mbyh2b2lkICpkYXRhLCBz dHJ1Y3QgdmlkZW9fc2NhbGVfaW5mbyAqaW5mbykKLSt7Ci0rCVVOVVNFRF9QQVJBTUVURVIoZGF0 YSk7Ci0rCi0rCS8vIE9wZW5IMjY0IG9ubHkgc3VwcG9ydHMgSTQyMAotKwlpbmZvLT5mb3JtYXQg PSBWSURFT19GT1JNQVRfSTQyMDsKLSt9Ci0rCi0rc3RhdGljIGJvb2wgaDI2NF91cGRhdGUoc3Ry dWN0IGgyNjRfZW5jb2RlciAqZW5jLCBvYnNfZGF0YV90ICpzZXR0aW5ncykKLSt7Ci0rCWNvbnN0 IGNoYXIgKnByb2ZpbGUgPSBvYnNfZGF0YV9nZXRfc3RyaW5nKHNldHRpbmdzLCAicHJvZmlsZSIp OwotKwlpbnQgYml0cmF0ZSA9IChpbnQpb2JzX2RhdGFfZ2V0X2ludChzZXR0aW5ncywgImJpdHJh dGUiKTsKLSsJaW50IGtleWludF9zZWMgPSAwOyAgICAgICAgICAgICAgLy8gVGhpcyBpcyBub3Qg c3VwcG9ydGVkIGJ5IE9wZW5IMjY0Ci0rCWNvbnN0IGNoYXIgKnJjX21vZGUgPSAicXVhbGl0eSI7 IC8vIFdlIG9ubHkgd2FudCB0byB1c2UgcXVhbGl0eSBtb2RlCi0rCWludCBhbGxvd19za2lwX2Zy YW1lcyA9IDE7ICAgICAgIC8vIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHF1YWxpdHkgbW9kZQotKwot Kwl2aWRlb190ICp2aWRlbyA9IG9ic19lbmNvZGVyX3ZpZGVvKGVuYy0+ZmZ2ZS5lbmNvZGVyKTsK LSsJY29uc3Qgc3RydWN0IHZpZGVvX291dHB1dF9pbmZvICp2b2kgPSB2aWRlb19vdXRwdXRfZ2V0 X2luZm8odmlkZW8pOwotKwlzdHJ1Y3QgdmlkZW9fc2NhbGVfaW5mbyBpbmZvOwotKwotKwlpbmZv LmZvcm1hdCA9IHZvaS0+Zm9ybWF0OwotKwlpbmZvLmNvbG9yc3BhY2UgPSB2b2ktPmNvbG9yc3Bh Y2U7Ci0rCWluZm8ucmFuZ2UgPSB2b2ktPnJhbmdlOwotKwotKwllbmMtPmZmdmUuY29udGV4dC0+ dGhyZWFkX2NvdW50ID0gMDsKLSsKLSsJaDI2NF92aWRlb19pbmZvKGVuYywgJmluZm8pOwotKwot Kwlhdl9vcHRfc2V0KGVuYy0+ZmZ2ZS5jb250ZXh0LT5wcml2X2RhdGEsICJyY19tb2RlIiwgcmNf bW9kZSwgMCk7Ci0rCWF2X29wdF9zZXQoZW5jLT5mZnZlLmNvbnRleHQtPnByaXZfZGF0YSwgInBy b2ZpbGUiLCBwcm9maWxlLCAwKTsKLSsJYXZfb3B0X3NldF9pbnQoZW5jLT5mZnZlLmNvbnRleHQt PnByaXZfZGF0YSwgImFsbG93X3NraXBfZnJhbWVzIiwKLSsJCSAgICAgICBhbGxvd19za2lwX2Zy YW1lcywgMCk7Ci0rCi0rCWNvbnN0IGNoYXIgKmZmbXBlZ19vcHRzID0gb2JzX2RhdGFfZ2V0X3N0 cmluZyhzZXR0aW5ncywgImZmbXBlZ19vcHRzIik7Ci0rCWZmbXBlZ192aWRlb19lbmNvZGVyX3Vw ZGF0ZSgmZW5jLT5mZnZlLCBiaXRyYXRlLCBrZXlpbnRfc2VjLCB2b2ksICZpbmZvLAotKwkJCQkg ICAgZmZtcGVnX29wdHMpOwotKwlpbmZvKCJzZXR0aW5nczpcbiIKLSsJICAgICAiXHRlbmNvZGVy OiAgICAgICVzXG4iCi0rCSAgICAgIlx0cmNfbW9kZTogICAgICAlc1xuIgotKwkgICAgICJcdGJp dHJhdGU6ICAgICAgJWRcbiIKLSsJICAgICAiXHRwcm9maWxlOiAgICAgICVzXG4iCi0rCSAgICAg Ilx0d2lkdGg6ICAgICAgICAlZFxuIgotKwkgICAgICJcdGhlaWdodDogICAgICAgJWRcbiIKLSsJ ICAgICAiXHRmZm1wZWcgb3B0czogICVzXG4iLAotKwkgICAgIGVuYy0+ZmZ2ZS5lbmNfbmFtZSwg cmNfbW9kZSwgYml0cmF0ZSwgcHJvZmlsZSwKLSsJICAgICBlbmMtPmZmdmUuY29udGV4dC0+d2lk dGgsIGVuYy0+ZmZ2ZS5oZWlnaHQsIGZmbXBlZ19vcHRzKTsKLSsKLSsJZW5jLT5mZnZlLmNvbnRl eHQtPmZsYWdzIHw9IEFWX0NPREVDX0ZMQUdfR0xPQkFMX0hFQURFUjsKLSsJcmV0dXJuIGZmbXBl Z192aWRlb19lbmNvZGVyX2luaXRfY29kZWMoJmVuYy0+ZmZ2ZSk7Ci0rfQotKwotK3N0YXRpYyB2 b2lkIGgyNjRfZGVzdHJveSh2b2lkICpkYXRhKQotK3sKLSsJc3RydWN0IGgyNjRfZW5jb2RlciAq ZW5jID0gZGF0YTsKLSsKLSsJZmZtcGVnX3ZpZGVvX2VuY29kZXJfZnJlZSgmZW5jLT5mZnZlKTsK LSsJZGFfZnJlZShlbmMtPmhlYWRlcik7Ci0rCWJmcmVlKGVuYyk7Ci0rfQotKwotK3N0YXRpYyB2 b2lkIG9uX2ZpcnN0X3BhY2tldCh2b2lkICpkYXRhLCBBVlBhY2tldCAqcGt0LCBzdHJ1Y3QgZGFy cmF5ICpkYSkKLSt7Ci0rCXN0cnVjdCBoMjY0X2VuY29kZXIgKmVuYyA9IGRhdGE7Ci0rCi0rCWRh X2NvcHlfYXJyYXkoZW5jLT5oZWFkZXIsIGVuYy0+ZmZ2ZS5jb250ZXh0LT5leHRyYWRhdGEsCi0r CQkgICAgICBlbmMtPmZmdmUuY29udGV4dC0+ZXh0cmFkYXRhX3NpemUpOwotKwotKwlkYXJyYXlf Y29weV9hcnJheSgxLCBkYSwgcGt0LT5kYXRhLCBwa3QtPnNpemUpOwotK30KLSsKLStzdGF0aWMg dm9pZCAqaDI2NF9jcmVhdGVfaW50ZXJuYWwob2JzX2RhdGFfdCAqc2V0dGluZ3MsIG9ic19lbmNv ZGVyX3QgKmVuY29kZXIsCi0rCQkJCSAgY29uc3QgY2hhciAqZW5jX2xpYiwgY29uc3QgY2hhciAq ZW5jX25hbWUpCi0rewotKwl2aWRlb190ICp2aWRlbyA9IG9ic19lbmNvZGVyX3ZpZGVvKGVuY29k ZXIpOwotKwljb25zdCBzdHJ1Y3QgdmlkZW9fb3V0cHV0X2luZm8gKnZvaSA9IHZpZGVvX291dHB1 dF9nZXRfaW5mbyh2aWRlbyk7Ci0rCi0rCXN3aXRjaCAodm9pLT5mb3JtYXQpIHsKLSsJLy8gcGxh bmFyIDQ6MjowIGZvcm1hdHMKLSsJY2FzZSBWSURFT19GT1JNQVRfSTQyMDogLy8gdGhyZWUtcGxh bmUKLSsJY2FzZSBWSURFT19GT1JNQVRfTlYxMjogLy8gdHdvLXBsYW5lLCBsdW1hIGFuZCBwYWNr ZWQgY2hyb21hCi0rCS8vIHBhY2tlZCA0OjI6MiBmb3JtYXRzCi0rCWNhc2UgVklERU9fRk9STUFU X1lWWVU6Ci0rCWNhc2UgVklERU9fRk9STUFUX1lVWTI6IC8vIFlVWVYKLSsJY2FzZSBWSURFT19G T1JNQVRfVVlWWToKLSsJLy8gcGFja2VkIHVuY29tcHJlc3NlZCBmb3JtYXRzCi0rCWNhc2UgVklE RU9fRk9STUFUX1JHQkE6Ci0rCWNhc2UgVklERU9fRk9STUFUX0JHUkE6Ci0rCWNhc2UgVklERU9f Rk9STUFUX0JHUlg6Ci0rCWNhc2UgVklERU9fRk9STUFUX0JHUjM6Ci0rCWNhc2UgVklERU9fRk9S TUFUX1k4MDA6IC8vIGdyYXlzY2FsZQotKwkvLyBwbGFuYXIgNDo0OjQKLSsJY2FzZSBWSURFT19G T1JNQVRfSTQ0NDoKLSsJLy8gcGxhbmFyIDQ6MjoyCi0rCWNhc2UgVklERU9fRk9STUFUX0k0MjI6 Ci0rCS8vIHBsYW5hciA0OjI6MCB3aXRoIGFscGhhCi0rCWNhc2UgVklERU9fRk9STUFUX0k0MEE6 Ci0rCS8vIHBsYW5hciA0OjI6MiB3aXRoIGFscGhhCi0rCWNhc2UgVklERU9fRk9STUFUX0k0MkE6 Ci0rCS8vIHBsYW5hciA0OjQ6NCB3aXRoIGFscGhhCi0rCWNhc2UgVklERU9fRk9STUFUX1lVVkE6 Ci0rCS8vIHBhY2tlZCA0OjQ6NCB3aXRoIGFscGhhCi0rCWNhc2UgVklERU9fRk9STUFUX0FZVVY6 Ci0rCQlicmVhazsKLSsJZGVmYXVsdDo7IC8vIE1ha2UgdGhlIGNvbXBpbGVyIGRvIHRoZSByaWdo dCB0aGluZwotKwkJY29uc3QgY2hhciAqY29uc3QgdGV4dCA9Ci0rCQkJb2JzX21vZHVsZV90ZXh0 KCJIMjY0LlVuc3VwcG9ydGVkVmlkZW9Gb3JtYXQiKTsKLSsJCW9ic19lbmNvZGVyX3NldF9sYXN0 X2Vycm9yKGVuY29kZXIsIHRleHQpOwotKwkJYmxvZyhMT0dfRVJST1IsICJbSC4yNjQgZW5jb2Rl cl0gJXMiLCB0ZXh0KTsKLSsJCXJldHVybiBOVUxMOwotKwl9Ci0rCi0rCXN3aXRjaCAodm9pLT5j b2xvcnNwYWNlKSB7Ci0rCWNhc2UgVklERU9fQ1NfREVGQVVMVDoKLSsJY2FzZSBWSURFT19DU183 MDk6Ci0rCQlicmVhazsKLSsJZGVmYXVsdDo7IC8vIE1ha2UgdGhlIGNvbXBpbGVyIGRvIHRoZSBy aWdodCB0aGluZwotKwkJY29uc3QgY2hhciAqY29uc3QgdGV4dCA9Ci0rCQkJb2JzX21vZHVsZV90 ZXh0KCJIMjY0LlVuc3VwcG9ydGVkQ29sb3JTcGFjZSIpOwotKwkJb2JzX2VuY29kZXJfc2V0X2xh c3RfZXJyb3IoZW5jb2RlciwgdGV4dCk7Ci0rCQlibG9nKExPR19FUlJPUiwgIltILjI2NCBlbmNv ZGVyXSAlcyIsIHRleHQpOwotKwkJcmV0dXJuIE5VTEw7Ci0rCX0KLSsKLSsJc3RydWN0IGgyNjRf ZW5jb2RlciAqZW5jID0gYnphbGxvYyhzaXplb2YoKmVuYykpOwotKwotKwlpZiAoc3RyY21wKGVu Y19saWIsICJsaWJvcGVuaDI2NCIpID09IDApCi0rCQllbmMtPnR5cGUgPSBIMjY0X0VOQ09ERVJf VFlQRV9PSDI2NDsKLSsKLSsJaWYgKCFmZm1wZWdfdmlkZW9fZW5jb2Rlcl9pbml0KCZlbmMtPmZm dmUsIGVuYywgZW5jb2RlciwgZW5jX2xpYiwgTlVMTCwKLSsJCQkJICAgICAgIGVuY19uYW1lLCBO VUxMLCBvbl9maXJzdF9wYWNrZXQpKQotKwkJZ290byBmYWlsOwotKwlpZiAoIWgyNjRfdXBkYXRl KGVuYywgc2V0dGluZ3MpKQotKwkJZ290byBmYWlsOwotKwotKwlyZXR1cm4gZW5jOwotKwotK2Zh aWw6Ci0rCWgyNjRfZGVzdHJveShlbmMpOwotKwlyZXR1cm4gTlVMTDsKLSt9Ci0rCi0rc3RhdGlj IHZvaWQgKm9oMjY0X2NyZWF0ZShvYnNfZGF0YV90ICpzZXR0aW5ncywgb2JzX2VuY29kZXJfdCAq ZW5jb2RlcikKLSt7Ci0rCXJldHVybiBoMjY0X2NyZWF0ZV9pbnRlcm5hbChzZXR0aW5ncywgZW5j b2RlciwgImxpYm9wZW5oMjY0IiwKLSsJCQkJICAgICJPcGVuSDI2NCIpOwotK30KLSsKLStzdGF0 aWMgYm9vbCBoMjY0X2VuY29kZSh2b2lkICpkYXRhLCBzdHJ1Y3QgZW5jb2Rlcl9mcmFtZSAqZnJh bWUsCi0rCQkJc3RydWN0IGVuY29kZXJfcGFja2V0ICpwYWNrZXQsIGJvb2wgKnJlY2VpdmVkX3Bh Y2tldCkKLSt7Ci0rCXN0cnVjdCBoMjY0X2VuY29kZXIgKmVuYyA9IGRhdGE7Ci0rCXJldHVybiBm Zm1wZWdfdmlkZW9fZW5jb2RlKCZlbmMtPmZmdmUsIGZyYW1lLCBwYWNrZXQsIHJlY2VpdmVkX3Bh Y2tldCk7Ci0rfQotKwotK3ZvaWQgaDI2NF9kZWZhdWx0cyhvYnNfZGF0YV90ICpzZXR0aW5ncykK LSt7Ci0rCW9ic19kYXRhX3NldF9kZWZhdWx0X2ludChzZXR0aW5ncywgImJpdHJhdGUiLCAyNTAw KTsKLSsJb2JzX2RhdGFfc2V0X2RlZmF1bHRfc3RyaW5nKHNldHRpbmdzLCAicHJvZmlsZSIsICJt YWluIik7Ci0rfQotKwotK29ic19wcm9wZXJ0aWVzX3QgKmgyNjRfcHJvcGVydGllcyhlbnVtIGgy NjRfZW5jb2Rlcl90eXBlIHR5cGUpCi0rewotKwlVTlVTRURfUEFSQU1FVEVSKHR5cGUpOyAvLyBP bmx5IG9uZSBlbmNvZGVyIHJpZ2h0IG5vdy4uLgotKwlvYnNfcHJvcGVydGllc190ICpwcm9wcyA9 IG9ic19wcm9wZXJ0aWVzX2NyZWF0ZSgpOwotKwlvYnNfcHJvcGVydHlfdCAqcDsKLSsKLSsJcCA9 IG9ic19wcm9wZXJ0aWVzX2FkZF9saXN0KHByb3BzLCAicHJvZmlsZSIsCi0rCQkJCSAgICBvYnNf bW9kdWxlX3RleHQoIlByb2ZpbGUiKSwKLSsJCQkJICAgIE9CU19DT01CT19UWVBFX0xJU1QsCi0r CQkJCSAgICBPQlNfQ09NQk9fRk9STUFUX1NUUklORyk7Ci0rCW9ic19wcm9wZXJ0eV9saXN0X2Fk ZF9zdHJpbmcocCwgImNvbnN0cmFpbmVkX2Jhc2VsaW5lIiwKLSsJCQkJICAgICAiY29uc3RyYWlu ZWRfYmFzZWxpbmUiKTsKLSsJb2JzX3Byb3BlcnR5X2xpc3RfYWRkX3N0cmluZyhwLCAibWFpbiIs ICJtYWluIik7Ci0rCW9ic19wcm9wZXJ0eV9saXN0X2FkZF9zdHJpbmcocCwgImhpZ2giLCAiaGln aCIpOwotKwotKwlwID0gb2JzX3Byb3BlcnRpZXNfYWRkX2ludChwcm9wcywgImJpdHJhdGUiLCBv YnNfbW9kdWxlX3RleHQoIkJpdHJhdGUiKSwKLSsJCQkJICAgNTAsIDMwMDAwMCwgNTApOwotKwlv YnNfcHJvcGVydHlfaW50X3NldF9zdWZmaXgocCwgIiBLYnBzIik7Ci0rCi0rCW9ic19wcm9wZXJ0 aWVzX2FkZF90ZXh0KHByb3BzLCAiZmZtcGVnX29wdHMiLAotKwkJCQlvYnNfbW9kdWxlX3RleHQo IkZGbXBlZ09wdHMiKSwKLSsJCQkJT0JTX1RFWFRfREVGQVVMVCk7Ci0rCi0rCXJldHVybiBwcm9w czsKLSt9Ci0rCi0rb2JzX3Byb3BlcnRpZXNfdCAqb2gyNjRfcHJvcGVydGllcyh2b2lkICp1bnVz ZWQpCi0rewotKwlVTlVTRURfUEFSQU1FVEVSKHVudXNlZCk7Ci0rCXJldHVybiBoMjY0X3Byb3Bl cnRpZXMoSDI2NF9FTkNPREVSX1RZUEVfT0gyNjQpOwotK30KLSsKLStzdGF0aWMgYm9vbCBoMjY0 X2V4dHJhX2RhdGEodm9pZCAqZGF0YSwgdWludDhfdCAqKmV4dHJhX2RhdGEsIHNpemVfdCAqc2l6 ZSkKLSt7Ci0rCXN0cnVjdCBoMjY0X2VuY29kZXIgKmVuYyA9IGRhdGE7Ci0rCi0rCSpleHRyYV9k YXRhID0gZW5jLT5oZWFkZXIuYXJyYXk7Ci0rCSpzaXplID0gZW5jLT5oZWFkZXIubnVtOwotKwly ZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rc3RydWN0IG9ic19lbmNvZGVyX2luZm8gb2gyNjRfZW5jb2Rl cl9pbmZvID0gewotKwkuaWQgPSAiZmZtcGVnX29wZW5oMjY0IiwKLSsJLnR5cGUgPSBPQlNfRU5D T0RFUl9WSURFTywKLSsJLmNvZGVjID0gImgyNjQiLAotKwkuZ2V0X25hbWUgPSBvaDI2NF9nZXRu YW1lLAotKwkuY3JlYXRlID0gb2gyNjRfY3JlYXRlLAotKwkuZGVzdHJveSA9IGgyNjRfZGVzdHJv eSwKLSsJLmVuY29kZSA9IGgyNjRfZW5jb2RlLAotKwkuZ2V0X2RlZmF1bHRzID0gaDI2NF9kZWZh dWx0cywKLSsJLmdldF9wcm9wZXJ0aWVzID0gb2gyNjRfcHJvcGVydGllcywKLSsJLmdldF9leHRy YV9kYXRhID0gaDI2NF9leHRyYV9kYXRhLAotKwkuZ2V0X3ZpZGVvX2luZm8gPSBoMjY0X3ZpZGVv X2luZm8sCi0rfTsKLWRpZmYgLS1naXQgYS9wbHVnaW5zL29icy1mZm1wZWcvb2JzLWZmbXBlZy5j IGIvcGx1Z2lucy9vYnMtZmZtcGVnL29icy1mZm1wZWcuYwotaW5kZXggZGEwYjJjMmI0Li5hMDFh NzI5YzggMTAwNjQ0Ci0tLS0gYS9wbHVnaW5zL29icy1mZm1wZWcvb2JzLWZmbXBlZy5jCi0rKysg Yi9wbHVnaW5zL29icy1mZm1wZWcvb2JzLWZmbXBlZy5jCi1AQCAtMzksNiArMzksNyBAQCBleHRl cm4gc3RydWN0IG9ic19lbmNvZGVyX2luZm8gcGNtMjRfZW5jb2Rlcl9pbmZvOwotIGV4dGVybiBz dHJ1Y3Qgb2JzX2VuY29kZXJfaW5mbyBwY20zMl9lbmNvZGVyX2luZm87Ci0gZXh0ZXJuIHN0cnVj dCBvYnNfZW5jb2Rlcl9pbmZvIGFsYWNfZW5jb2Rlcl9pbmZvOwotIGV4dGVybiBzdHJ1Y3Qgb2Jz X2VuY29kZXJfaW5mbyBmbGFjX2VuY29kZXJfaW5mbzsKLStleHRlcm4gc3RydWN0IG9ic19lbmNv ZGVyX2luZm8gb2gyNjRfZW5jb2Rlcl9pbmZvOwotIGV4dGVybiBzdHJ1Y3Qgb2JzX2VuY29kZXJf aW5mbyBoMjY0X252ZW5jX2VuY29kZXJfaW5mbzsKLSAjaWZkZWYgRU5BQkxFX0hFVkMKLSBleHRl cm4gc3RydWN0IG9ic19lbmNvZGVyX2luZm8gaGV2Y19udmVuY19lbmNvZGVyX2luZm87Ci1AQCAt Mzg3LDYgKzM4OCw3IEBAIGJvb2wgb2JzX21vZHVsZV9sb2FkKHZvaWQpCi0gCW9ic19yZWdpc3Rl cl9vdXRwdXQoJmZmbXBlZ19obHNfbXV4ZXIpOwotIAlvYnNfcmVnaXN0ZXJfb3V0cHV0KCZyZXBs YXlfYnVmZmVyKTsKLSAJb2JzX3JlZ2lzdGVyX2VuY29kZXIoJmFhY19lbmNvZGVyX2luZm8pOwot KwlyZWdpc3Rlcl9lbmNvZGVyX2lmX2F2YWlsYWJsZSgmb2gyNjRfZW5jb2Rlcl9pbmZvLCAibGli b3BlbmgyNjQiKTsKLSAJcmVnaXN0ZXJfZW5jb2Rlcl9pZl9hdmFpbGFibGUoJnN2dF9hdjFfZW5j b2Rlcl9pbmZvLCAibGlic3Z0YXYxIik7Ci0gCXJlZ2lzdGVyX2VuY29kZXJfaWZfYXZhaWxhYmxl KCZhb21fYXYxX2VuY29kZXJfaW5mbywgImxpYmFvbS1hdjEiKTsKLSAJb2JzX3JlZ2lzdGVyX2Vu Y29kZXIoJm9wdXNfZW5jb2Rlcl9pbmZvKTsKLS0tIAotMi4zOS4yCi0KCmRpZmYgLS1naXQgYS8w MDAzLVVJLUFkZC1zdXBwb3J0LWZvci1PcGVuSDI2NC1hcy10aGUtd29yc3QtY2FzZS1mYWxsYmEu cGF0Y2ggYi8wMDAzLVVJLUFkZC1zdXBwb3J0LWZvci1PcGVuSDI2NC1hcy10aGUtd29yc3QtY2Fz ZS1mYWxsYmEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiNTI1MTQuLjAw MDAwMDAKLS0tIGEvMDAwMy1VSS1BZGQtc3VwcG9ydC1mb3ItT3BlbkgyNjQtYXMtdGhlLXdvcnN0 LWNhc2UtZmFsbGJhLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTQ1ICswLDAgQEAKLUZyb20g MzBmODQ0NTU5NjkwNzFmZjlhYTgyNmE0NDQzOGEwNDAyZGQxNTEyMyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IE5lYWwgR29tcGEgPG5lYWxAZ29tcGEuZGV2PgotRGF0ZTogVHVlLCAy OCBNYXIgMjAyMyAwNTowODo0OSAtMDQwMAotU3ViamVjdDogW1BBVENIIDMvM10gVUk6IEFkZCBz dXBwb3J0IGZvciBPcGVuSDI2NCBhcyB0aGUgd29yc3QtY2FzZSBmYWxsYmFjawotCi1PcGVuSDI2 NCBleGlzdHMgYXMgdGhlIGNvZGVjIG9mIGxhc3QgcmVzb3J0LCBzbyBpdCBpcyBpbXBsZW1lbnRl ZAotc3VjaCB0aGF0IGl0IGlzIG9ubHkgdXNlZCBhcyB0aGUgc29mdHdhcmUgY29kZWMgaWYgeDI2 NCBpcyBub3QKLWF2YWlsYWJsZS4KLS0tLQotIFVJL2RhdGEvbG9jYWxlL2VuLVVTLmluaSAgICAg ICAgICAgICB8ICAxICsKLSBVSS93aW5kb3ctYmFzaWMtYXV0by1jb25maWctdGVzdC5jcHAgfCA1 MCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCi0gVUkvd2luZG93LWJhc2ljLWF1dG8tY29u ZmlnLmNwcCAgICAgIHwgMTUgKysrKysrKystCi0gVUkvd2luZG93LWJhc2ljLWF1dG8tY29uZmln LmhwcCAgICAgIHwgIDMgKysKLSBVSS93aW5kb3ctYmFzaWMtbWFpbi1vdXRwdXRzLmNwcCAgICAg fCAgNiArKy0tCi0gVUkvd2luZG93LWJhc2ljLW1haW4tcHJvZmlsZXMuY3BwICAgIHwgMzQgKysr KysrKysrKystLS0tLS0tLQotIFVJL3dpbmRvdy1iYXNpYy1tYWluLmNwcCAgICAgICAgICAgICB8 IDIwICsrKysrKystLS0tCi0gVUkvd2luZG93LWJhc2ljLW1haW4uaHBwICAgICAgICAgICAgIHwg IDMgKy0KLSBVSS93aW5kb3ctYmFzaWMtc2V0dGluZ3Mtc3RyZWFtLmNwcCAgfCAxNiArKysrKyst LS0KLSBVSS93aW5kb3ctYmFzaWMtc2V0dGluZ3MuY3BwICAgICAgICAgfCAyMyArKysrKysrKysr LS0tCi0gMTAgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvVUkvZGF0YS9sb2NhbGUvZW4tVVMuaW5pIGIvVUkvZGF0YS9sb2Nh bGUvZW4tVVMuaW5pCi1pbmRleCBlNDRkOTk2NjAuLmE1YmE1ZDY2MSAxMDA2NDQKLS0tLSBhL1VJ L2RhdGEvbG9jYWxlL2VuLVVTLmluaQotKysrIGIvVUkvZGF0YS9sb2NhbGUvZW4tVVMuaW5pCi1A QCAtOTgwLDYgKzk4MCw3IEBAIEJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuV2Fybi5FbmNv ZGVyPSJXYXJuaW5nOiBSZWNvcmRpbmcgd2l0aCBhIHNvZnR3YXJlIGVuCi0gQmFzaWMuU2V0dGlu Z3MuT3V0cHV0LlNpbXBsZS5XYXJuLkxvc3NsZXNzPSJXYXJuaW5nOiBMb3NzbGVzcyBxdWFsaXR5 IGdlbmVyYXRlcyB0cmVtZW5kb3VzbHkgbGFyZ2UgZmlsZSBzaXplcyEgTG9zc2xlc3MgcXVhbGl0 eSBjYW4gdXNlIHVwd2FyZCBvZiA3IGdpZ2FieXRlcyBvZiBkaXNrIHNwYWNlIHBlciBtaW51dGUg YXQgaGlnaCByZXNvbHV0aW9ucyBhbmQgZnJhbWVyYXRlcy4gTG9zc2xlc3MgaXMgbm90IHJlY29t bWVuZGVkIGZvciBsb25nIHJlY29yZGluZ3MgdW5sZXNzIHlvdSBoYXZlIGEgdmVyeSBsYXJnZSBh bW91bnQgb2YgZGlzayBzcGFjZSBhdmFpbGFibGUuIgotIEJhc2ljLlNldHRpbmdzLk91dHB1dC5T aW1wbGUuV2Fybi5Mb3NzbGVzcy5Nc2c9IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1c2UgbG9z c2xlc3MgcXVhbGl0eT8iCi0gQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5XYXJuLkxvc3Ns ZXNzLlRpdGxlPSJMb3NzbGVzcyBxdWFsaXR5IHdhcm5pbmchIgotK0Jhc2ljLlNldHRpbmdzLk91 dHB1dC5TaW1wbGUuRW5jb2Rlci5Tb2Z0d2FyZS5PcGVuSDI2NC5IMjY0PSJTb2Z0d2FyZSAoT3Bl bkgyNjQpIgotIEJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci5Tb2Z0d2FyZS5Y MjY0LkgyNjQ9IlNvZnR3YXJlICh4MjY0KSIKLSBCYXNpYy5TZXR0aW5ncy5PdXRwdXQuU2ltcGxl LkVuY29kZXIuSGFyZHdhcmUuUVNWLkgyNjQ9IkhhcmR3YXJlIChRU1YsIEguMjY0KSIKLSBCYXNp Yy5TZXR0aW5ncy5PdXRwdXQuU2ltcGxlLkVuY29kZXIuSGFyZHdhcmUuUVNWLkFWMT0iSGFyZHdh cmUgKFFTViwgQVYxKSIKLWRpZmYgLS1naXQgYS9VSS93aW5kb3ctYmFzaWMtYXV0by1jb25maWct dGVzdC5jcHAgYi9VSS93aW5kb3ctYmFzaWMtYXV0by1jb25maWctdGVzdC5jcHAKLWluZGV4IDA5 OTc5YzAzMS4uYzc5MWM4YjhiIDEwMDY0NAotLS0tIGEvVUkvd2luZG93LWJhc2ljLWF1dG8tY29u ZmlnLXRlc3QuY3BwCi0rKysgYi9VSS93aW5kb3ctYmFzaWMtYXV0by1jb25maWctdGVzdC5jcHAK LUBAIC0xOTksNyArMTk5LDggQEAgdm9pZCBBdXRvQ29uZmlnVGVzdFBhZ2U6OlRlc3RCYW5kd2lk dGhUaHJlYWQoKQotIAkJCQkJCSAgIDogInJ0bXBfY29tbW9uIjsKLSAKLSAJT0JTRW5jb2RlckF1 dG9SZWxlYXNlIHZlbmNvZGVyID0gb2JzX3ZpZGVvX2VuY29kZXJfY3JlYXRlKAotLQkJIm9ic194 MjY0IiwgInRlc3RfeDI2NCIsIG51bGxwdHIsIG51bGxwdHIpOwotKwkJKHdpei0+eDI2NEF2YWls YWJsZSA/ICJvYnNfeDI2NCIgOiAiZmZtcGVnX29wZW5oMjY0IiksCi0rCQkidGVzdF9oMjY0Iiwg bnVsbHB0ciwgbnVsbHB0cik7Ci0gCU9CU0VuY29kZXJBdXRvUmVsZWFzZSBhZW5jb2RlciA9IG9i c19hdWRpb19lbmNvZGVyX2NyZWF0ZSgKLSAJCSJmZm1wZWdfYWFjIiwgInRlc3RfYWFjIiwgbnVs bHB0ciwgMCwgbnVsbHB0cik7Ci0gCU9CU1NlcnZpY2VBdXRvUmVsZWFzZSBzZXJ2aWNlID0gb2Jz X3NlcnZpY2VfY3JlYXRlKAotQEAgLTIzOCwxMCArMjM5LDExIEBAIHZvaWQgQXV0b0NvbmZpZ1Rl c3RQYWdlOjpUZXN0QmFuZHdpZHRoVGhyZWFkKCkKLSAJb2JzX2RhdGFfc2V0X3N0cmluZyhzZXJ2 aWNlX3NldHRpbmdzLCAia2V5Iiwga2V5LmNfc3RyKCkpOwotIAotIAlvYnNfZGF0YV9zZXRfaW50 KHZlbmNvZGVyX3NldHRpbmdzLCAiYml0cmF0ZSIsIHdpei0+c3RhcnRpbmdCaXRyYXRlKTsKLS0J b2JzX2RhdGFfc2V0X3N0cmluZyh2ZW5jb2Rlcl9zZXR0aW5ncywgInJhdGVfY29udHJvbCIsICJD QlIiKTsKLS0Jb2JzX2RhdGFfc2V0X3N0cmluZyh2ZW5jb2Rlcl9zZXR0aW5ncywgInByZXNldCIs ICJ2ZXJ5ZmFzdCIpOwotLQlvYnNfZGF0YV9zZXRfaW50KHZlbmNvZGVyX3NldHRpbmdzLCAia2V5 aW50X3NlYyIsIDIpOwotLQotKwlpZiAod2l6LT54MjY0QXZhaWxhYmxlKSB7Ci0rCQlvYnNfZGF0 YV9zZXRfc3RyaW5nKHZlbmNvZGVyX3NldHRpbmdzLCAicmF0ZV9jb250cm9sIiwgIkNCUiIpOwot KwkJb2JzX2RhdGFfc2V0X3N0cmluZyh2ZW5jb2Rlcl9zZXR0aW5ncywgInByZXNldCIsICJ2ZXJ5 ZmFzdCIpOwotKwkJb2JzX2RhdGFfc2V0X2ludCh2ZW5jb2Rlcl9zZXR0aW5ncywgImtleWludF9z ZWMiLCAyKTsKLSsJfQotIAlvYnNfZGF0YV9zZXRfaW50KGFlbmNvZGVyX3NldHRpbmdzLCAiYml0 cmF0ZSIsIDMyKTsKLSAKLSAJT0JTQmFzaWMgKm1haW4gPSByZWludGVycHJldF9jYXN0PE9CU0Jh c2ljICo+KEFwcCgpLT5HZXRNYWluV2luZG93KCkpOwotQEAgLTU2Nyw3ICs1NjksOCBAQCBib29s IEF1dG9Db25maWdUZXN0UGFnZTo6VGVzdFNvZnR3YXJlRW5jb2RpbmcoKQotIAkvKiBjcmVhdGUg b2JzIG9iamVjdHMgICAgICAgICAgICAgICAgICovCi0gCi0gCU9CU0VuY29kZXJBdXRvUmVsZWFz ZSB2ZW5jb2RlciA9IG9ic192aWRlb19lbmNvZGVyX2NyZWF0ZSgKLS0JCSJvYnNfeDI2NCIsICJ0 ZXN0X3gyNjQiLCBudWxscHRyLCBudWxscHRyKTsKLSsJCSh3aXotPngyNjRBdmFpbGFibGUgPyAi b2JzX3gyNjQiIDogImZmbXBlZ19vcGVuaDI2NCIpLAotKwkJInRlc3RfaDI2NCIsIG51bGxwdHIs IG51bGxwdHIpOwotIAlPQlNFbmNvZGVyQXV0b1JlbGVhc2UgYWVuY29kZXIgPSBvYnNfYXVkaW9f ZW5jb2Rlcl9jcmVhdGUoCi0gCQkiZmZtcGVnX2FhYyIsICJ0ZXN0X2FhYyIsIG51bGxwdHIsIDAs IG51bGxwdHIpOwotIAlPQlNPdXRwdXRBdXRvUmVsZWFzZSBvdXRwdXQgPQotQEAgLTU4MSwxNyAr NTg0LDI1IEBAIGJvb2wgQXV0b0NvbmZpZ1Rlc3RQYWdlOjpUZXN0U29mdHdhcmVFbmNvZGluZygp Ci0gCW9ic19kYXRhX3NldF9pbnQoYWVuY29kZXJfc2V0dGluZ3MsICJiaXRyYXRlIiwgMzIpOwot IAotIAlpZiAod2l6LT50eXBlICE9IEF1dG9Db25maWc6OlR5cGU6OlJlY29yZGluZykgewotLQkJ b2JzX2RhdGFfc2V0X2ludCh2ZW5jb2Rlcl9zZXR0aW5ncywgImtleWludF9zZWMiLCAyKTsKLSsJ CWlmICh3aXotPngyNjRBdmFpbGFibGUpIHsKLSsJCQlvYnNfZGF0YV9zZXRfaW50KHZlbmNvZGVy X3NldHRpbmdzLCAia2V5aW50X3NlYyIsIDIpOwotKwkJCW9ic19kYXRhX3NldF9zdHJpbmcodmVu Y29kZXJfc2V0dGluZ3MsICJyYXRlX2NvbnRyb2wiLAotKwkJCQkJICAgICJDQlIiKTsKLSsJCQlv YnNfZGF0YV9zZXRfc3RyaW5nKHZlbmNvZGVyX3NldHRpbmdzLCAicHJlc2V0IiwKLSsJCQkJCSAg ICAidmVyeWZhc3QiKTsKLSsJCX0KLSAJCW9ic19kYXRhX3NldF9pbnQodmVuY29kZXJfc2V0dGlu Z3MsICJiaXRyYXRlIiwKLSAJCQkJIHdpei0+aWRlYWxCaXRyYXRlKTsKLS0JCW9ic19kYXRhX3Nl dF9zdHJpbmcodmVuY29kZXJfc2V0dGluZ3MsICJyYXRlX2NvbnRyb2wiLCAiQ0JSIik7Ci0gCQlv YnNfZGF0YV9zZXRfc3RyaW5nKHZlbmNvZGVyX3NldHRpbmdzLCAicHJvZmlsZSIsICJtYWluIik7 Ci0tCQlvYnNfZGF0YV9zZXRfc3RyaW5nKHZlbmNvZGVyX3NldHRpbmdzLCAicHJlc2V0IiwgInZl cnlmYXN0Iik7Ci0gCX0gZWxzZSB7Ci0tCQlvYnNfZGF0YV9zZXRfaW50KHZlbmNvZGVyX3NldHRp bmdzLCAiY3JmIiwgMjApOwotLQkJb2JzX2RhdGFfc2V0X3N0cmluZyh2ZW5jb2Rlcl9zZXR0aW5n cywgInJhdGVfY29udHJvbCIsICJDUkYiKTsKLSsJCWlmICh3aXotPngyNjRBdmFpbGFibGUpIHsK LSsJCQlvYnNfZGF0YV9zZXRfaW50KHZlbmNvZGVyX3NldHRpbmdzLCAiY3JmIiwgMjApOwotKwkJ CW9ic19kYXRhX3NldF9zdHJpbmcodmVuY29kZXJfc2V0dGluZ3MsICJyYXRlX2NvbnRyb2wiLAot KwkJCQkJICAgICJDUkYiKTsKLSsJCQlvYnNfZGF0YV9zZXRfc3RyaW5nKHZlbmNvZGVyX3NldHRp bmdzLCAicHJlc2V0IiwKLSsJCQkJCSAgICAidmVyeWZhc3QiKTsKLSsJCX0KLSAJCW9ic19kYXRh X3NldF9zdHJpbmcodmVuY29kZXJfc2V0dGluZ3MsICJwcm9maWxlIiwgImhpZ2giKTsKLS0JCW9i c19kYXRhX3NldF9zdHJpbmcodmVuY29kZXJfc2V0dGluZ3MsICJwcmVzZXQiLCAidmVyeWZhc3Qi KTsKLSAJfQotIAotIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi1A QCAtOTQ0LDcgKzk1NSwxMCBAQCB2b2lkIEF1dG9Db25maWdUZXN0UGFnZTo6VGVzdFN0cmVhbUVu Y29kZXJUaHJlYWQoKQotIAkJZWxzZQotIAkJCXdpei0+c3RyZWFtaW5nRW5jb2RlciA9IEF1dG9D b25maWc6OkVuY29kZXI6OkFNRDsKLSAJfSBlbHNlIHsKLS0JCXdpei0+c3RyZWFtaW5nRW5jb2Rl ciA9IEF1dG9Db25maWc6OkVuY29kZXI6OngyNjQ7Ci0rCQlpZiAod2l6LT54MjY0QXZhaWxhYmxl KQotKwkJCXdpei0+c3RyZWFtaW5nRW5jb2RlciA9IEF1dG9Db25maWc6OkVuY29kZXI6OngyNjQ7 Ci0rCQllbHNlCi0rCQkJd2l6LT5zdHJlYW1pbmdFbmNvZGVyID0gQXV0b0NvbmZpZzo6RW5jb2Rl cjo6T3BlbkgyNjQ7Ci0gCX0KLSAKLSAJaWYgKHByZWZlckhhcmR3YXJlICYmICFzb2Z0d2FyZVRl c3RlZCAmJiB3aXotPmhhcmR3YXJlRW5jb2RpbmdBdmFpbGFibGUpCi1AQCAtOTc5LDcgKzk5Mywx MCBAQCB2b2lkIEF1dG9Db25maWdUZXN0UGFnZTo6VGVzdFJlY29yZGluZ0VuY29kZXJUaHJlYWQo KQotIAkJZWxzZQotIAkJCXdpei0+cmVjb3JkaW5nRW5jb2RlciA9IEF1dG9Db25maWc6OkVuY29k ZXI6OkFNRDsKLSAJfSBlbHNlIHsKLS0JCXdpei0+cmVjb3JkaW5nRW5jb2RlciA9IEF1dG9Db25m aWc6OkVuY29kZXI6OngyNjQ7Ci0rCQlpZiAod2l6LT54MjY0QXZhaWxhYmxlKQotKwkJCXdpei0+ c3RyZWFtaW5nRW5jb2RlciA9IEF1dG9Db25maWc6OkVuY29kZXI6OngyNjQ7Ci0rCQllbHNlCi0r CQkJd2l6LT5zdHJlYW1pbmdFbmNvZGVyID0gQXV0b0NvbmZpZzo6RW5jb2Rlcjo6T3BlbkgyNjQ7 Ci0gCX0KLSAKLSAJaWYgKHdpei0+cmVjb3JkaW5nRW5jb2RlciAhPSBBdXRvQ29uZmlnOjpFbmNv ZGVyOjpOVkVOQykgewotQEAgLTk5Myw2ICsxMDEwLDcgQEAgdm9pZCBBdXRvQ29uZmlnVGVzdFBh Z2U6OlRlc3RSZWNvcmRpbmdFbmNvZGVyVGhyZWFkKCkKLSB9Ci0gCi0gI2RlZmluZSBFTkNPREVS X1RFWFQoeCkgIkJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci4iIHgKLSsjZGVm aW5lIEVOQ09ERVJfT1BFTkgyNjQgRU5DT0RFUl9URVhUKCJTb2Z0d2FyZS5PcGVuSDI2NC5IMjY0 IikKLSAjZGVmaW5lIEVOQ09ERVJfWDI2NCBFTkNPREVSX1RFWFQoIlNvZnR3YXJlLlgyNjQuSDI2 NCIpCi0gI2RlZmluZSBFTkNPREVSX05WRU5DIEVOQ09ERVJfVEVYVCgiSGFyZHdhcmUuTlZFTkMu SDI2NCIpCi0gI2RlZmluZSBFTkNPREVSX1FTViBFTkNPREVSX1RFWFQoIkhhcmR3YXJlLlFTVi5I MjY0IikKLUBAIC0xMDMyLDYgKzEwNTAsOCBAQCB2b2lkIEF1dG9Db25maWdUZXN0UGFnZTo6Rmlu YWxpemVSZXN1bHRzKCkKLSAKLSAJYXV0byBlbmNOYW1lID0gW10oQXV0b0NvbmZpZzo6RW5jb2Rl ciBlbmMpIC0+IFFTdHJpbmcgewotIAkJc3dpdGNoIChlbmMpIHsKLSsJCWNhc2UgQXV0b0NvbmZp Zzo6RW5jb2Rlcjo6T3BlbkgyNjQ6Ci0rCQkJcmV0dXJuIFFUU3RyKEVOQ09ERVJfT1BFTkgyNjQp OwotIAkJY2FzZSBBdXRvQ29uZmlnOjpFbmNvZGVyOjp4MjY0OgotIAkJCXJldHVybiBRVFN0cihF TkNPREVSX1gyNjQpOwotIAkJY2FzZSBBdXRvQ29uZmlnOjpFbmNvZGVyOjpOVkVOQzoKLUBAIC0x MDQ2LDcgKzEwNjYsNyBAQCB2b2lkIEF1dG9Db25maWdUZXN0UGFnZTo6RmluYWxpemVSZXN1bHRz KCkKLSAJCQlyZXR1cm4gUVRTdHIoUVVBTElUWV9TQU1FKTsKLSAJCX0KLSAKLS0JCXJldHVybiBR VFN0cihFTkNPREVSX1gyNjQpOwotKwkJcmV0dXJuIFFUU3RyKEVOQ09ERVJfT1BFTkgyNjQpOwot IAl9OwotIAotIAlhdXRvIG5ld0xhYmVsID0gW3RoaXNdKGNvbnN0IGNoYXIgKnN0cikgLT4gUUxh YmVsICogewotZGlmZiAtLWdpdCBhL1VJL3dpbmRvdy1iYXNpYy1hdXRvLWNvbmZpZy5jcHAgYi9V SS93aW5kb3ctYmFzaWMtYXV0by1jb25maWcuY3BwCi1pbmRleCAzZTljMzY2ODUuLmVhY2UxODA2 NyAxMDA2NDQKLS0tLSBhL1VJL3dpbmRvdy1iYXNpYy1hdXRvLWNvbmZpZy5jcHAKLSsrKyBiL1VJ L3dpbmRvdy1iYXNpYy1hdXRvLWNvbmZpZy5jcHAKLUBAIC05NjEsNiArOTYxLDcgQEAgQXV0b0Nv bmZpZzo6QXV0b0NvbmZpZyhRV2lkZ2V0ICpwYXJlbnQpIDogUVdpemFyZChwYXJlbnQpCi0gCXN0 cmVhbVBhZ2UtPnVpLT5iaXRyYXRlLT5zZXRWYWx1ZShiaXRyYXRlKTsKLSAJc3RyZWFtUGFnZS0+ U2VydmljZUNoYW5nZWQoKTsKLSAKLSsJVGVzdFNvZnR3YXJlRW5jb2RpbmcoKTsKLSAJVGVzdEhh cmR3YXJlRW5jb2RpbmcoKTsKLSAJaWYgKCFoYXJkd2FyZUVuY29kaW5nQXZhaWxhYmxlKSB7Ci0g CQlkZWxldGUgc3RyZWFtUGFnZS0+dWktPnByZWZlckhhcmR3YXJlOwotQEAgLTk4OSw2ICs5OTAs MTYgQEAgQXV0b0NvbmZpZzo6fkF1dG9Db25maWcoKQotIAlFbmFibGVUaHJlYWRlZE1lc3NhZ2VC b3hlcyhmYWxzZSk7Ci0gfQotIAotK3ZvaWQgQXV0b0NvbmZpZzo6VGVzdFNvZnR3YXJlRW5jb2Rp bmcoKQotK3sKLSsJc2l6ZV90IGlkeCA9IDA7Ci0rCWNvbnN0IGNoYXIgKmlkOwotKwl3aGlsZSAo b2JzX2VudW1fZW5jb2Rlcl90eXBlcyhpZHgrKywgJmlkKSkgewotKwkJaWYgKHN0cmNtcChpZCwg Im9ic194MjY0IikgPT0gMCkKLSsJCQl4MjY0QXZhaWxhYmxlID0gdHJ1ZTsKLSsJfQotK30KLSsK LSB2b2lkIEF1dG9Db25maWc6OlRlc3RIYXJkd2FyZUVuY29kaW5nKCkKLSB7Ci0gCXNpemVfdCBp ZHggPSAwOwotQEAgLTEwNjEsOCArMTA3MiwxMCBAQCBpbmxpbmUgY29uc3QgY2hhciAqQXV0b0Nv bmZpZzo6R2V0RW5jb2RlcklkKEVuY29kZXIgZW5jKQotIAkJcmV0dXJuIFNJTVBMRV9FTkNPREVS X0FNRDsKLSAJY2FzZSBFbmNvZGVyOjpBcHBsZToKLSAJCXJldHVybiBTSU1QTEVfRU5DT0RFUl9B UFBMRV9IMjY0OwotLQlkZWZhdWx0OgotKwljYXNlIEVuY29kZXI6OngyNjQ6Ci0gCQlyZXR1cm4g U0lNUExFX0VOQ09ERVJfWDI2NDsKLSsJZGVmYXVsdDoKLSsJCXJldHVybiBTSU1QTEVfRU5DT0RF Ul9PUEVOSDI2NDsKLSAJfQotIH07Ci0gCi1kaWZmIC0tZ2l0IGEvVUkvd2luZG93LWJhc2ljLWF1 dG8tY29uZmlnLmhwcCBiL1VJL3dpbmRvdy1iYXNpYy1hdXRvLWNvbmZpZy5ocHAKLWluZGV4IGVi NTA3MDFmZi4uZTU4MTc5MWRkIDEwMDY0NAotLS0tIGEvVUkvd2luZG93LWJhc2ljLWF1dG8tY29u ZmlnLmhwcAotKysrIGIvVUkvd2luZG93LWJhc2ljLWF1dG8tY29uZmlnLmhwcAotQEAgLTQzLDYg KzQzLDcgQEAgY2xhc3MgQXV0b0NvbmZpZyA6IHB1YmxpYyBRV2l6YXJkIHsKLSAJfTsKLSAKLSAJ ZW51bSBjbGFzcyBFbmNvZGVyIHsKLSsJCU9wZW5IMjY0LAotIAkJeDI2NCwKLSAJCU5WRU5DLAot IAkJUVNWLAotQEAgLTkxLDYgKzkyLDcgQEAgY2xhc3MgQXV0b0NvbmZpZyA6IHB1YmxpYyBRV2l6 YXJkIHsKLSAJYm9vbCBxc3ZBdmFpbGFibGUgPSBmYWxzZTsKLSAJYm9vbCB2Y2VBdmFpbGFibGUg PSBmYWxzZTsKLSAJYm9vbCBhcHBsZUF2YWlsYWJsZSA9IGZhbHNlOwotKwlib29sIHgyNjRBdmFp bGFibGUgPSBmYWxzZTsKLSAKLSAJaW50IHN0YXJ0aW5nQml0cmF0ZSA9IDI1MDA7Ci0gCWJvb2wg Y3VzdG9tU2VydmVyID0gZmFsc2U7Ci1AQCAtMTA2LDYgKzEwOCw3IEBAIGNsYXNzIEF1dG9Db25m aWcgOiBwdWJsaWMgUVdpemFyZCB7Ci0gCWludCBzcGVjaWZpY0ZQU051bSA9IDA7Ci0gCWludCBz cGVjaWZpY0ZQU0RlbiA9IDA7Ci0gCi0rCXZvaWQgVGVzdFNvZnR3YXJlRW5jb2RpbmcoKTsKLSAJ dm9pZCBUZXN0SGFyZHdhcmVFbmNvZGluZygpOwotIAlib29sIENhblRlc3RTZXJ2ZXIoY29uc3Qg Y2hhciAqc2VydmVyKTsKLSAKLWRpZmYgLS1naXQgYS9VSS93aW5kb3ctYmFzaWMtbWFpbi1vdXRw dXRzLmNwcCBiL1VJL3dpbmRvdy1iYXNpYy1tYWluLW91dHB1dHMuY3BwCi1pbmRleCA3MzdhYjk2 NmQuLmE0ZGY2MzBjNCAxMDA2NDQKLS0tLSBhL1VJL3dpbmRvdy1iYXNpYy1tYWluLW91dHB1dHMu Y3BwCi0rKysgYi9VSS93aW5kb3ctYmFzaWMtbWFpbi1vdXRwdXRzLmNwcAotQEAgLTUxNSw3ICs1 MTUsOSBAQCB2b2lkIFNpbXBsZU91dHB1dDo6TG9hZFN0cmVhbWluZ1ByZXNldF9Mb3NzeShjb25z dCBjaGFyICplbmNvZGVySWQpCi0gLyogbWlzdGFrZXMgaGF2ZSBiZWVuIG1hZGUgdG8gbGVhZCB1 cyB0byB0aGlzLiAqLwotIGNvbnN0IGNoYXIgKmdldF9zaW1wbGVfb3V0cHV0X2VuY29kZXIoY29u c3QgY2hhciAqZW5jb2RlcikKLSB7Ci0tCWlmIChzdHJjbXAoZW5jb2RlciwgU0lNUExFX0VOQ09E RVJfWDI2NCkgPT0gMCkgewotKwlpZiAoc3RyY21wKGVuY29kZXIsIFNJTVBMRV9FTkNPREVSX09Q RU5IMjY0KSA9PSAwKSB7Ci0rCQlyZXR1cm4gImZmbXBlZ19vcGVuaDI2NCI7Ci0rCX0gZWxzZSBp ZiAoc3RyY21wKGVuY29kZXIsIFNJTVBMRV9FTkNPREVSX1gyNjQpID09IDApIHsKLSAJCXJldHVy biAib2JzX3gyNjQiOwotIAl9IGVsc2UgaWYgKHN0cmNtcChlbmNvZGVyLCBTSU1QTEVfRU5DT0RF Ul9YMjY0X0xPV0NQVSkgPT0gMCkgewotIAkJcmV0dXJuICJvYnNfeDI2NCI7Ci1AQCAtNTQ5LDcg KzU1MSw3IEBAIGNvbnN0IGNoYXIgKmdldF9zaW1wbGVfb3V0cHV0X2VuY29kZXIoY29uc3QgY2hh ciAqZW5jb2RlcikKLSAjZW5kaWYKLSAJfQotIAotLQlyZXR1cm4gIm9ic194MjY0IjsKLSsJcmV0 dXJuICJmZm1wZWdfb3BlbmgyNjQiOwotIH0KLSAKLSB2b2lkIFNpbXBsZU91dHB1dDo6TG9hZFJl Y29yZGluZ1ByZXNldCgpCi1kaWZmIC0tZ2l0IGEvVUkvd2luZG93LWJhc2ljLW1haW4tcHJvZmls ZXMuY3BwIGIvVUkvd2luZG93LWJhc2ljLW1haW4tcHJvZmlsZXMuY3BwCi1pbmRleCA0OTQxMzU5 ZWEuLjFmM2ZmZGMxZCAxMDA2NDQKLS0tLSBhL1VJL3dpbmRvdy1iYXNpYy1tYWluLXByb2ZpbGVz LmNwcAotKysrIGIvVUkvd2luZG93LWJhc2ljLW1haW4tcHJvZmlsZXMuY3BwCi1AQCAtNzk0LDcg Kzc5NCw3IEBAIHZvaWQgT0JTQmFzaWM6OkNoYW5nZVByb2ZpbGUoKQotIAotIAlBdXRoOjpMb2Fk KCk7Ci0gCi0tCUNoZWNrRm9yU2ltcGxlTW9kZVgyNjRGYWxsYmFjaygpOwotKwlDaGVja0ZvclNp bXBsZU1vZGVIMjY0RmFsbGJhY2soKTsKLSAKLSAJYmxvZyhMT0dfSU5GTywgIlN3aXRjaGVkIHRv IHByb2ZpbGUgJyVzJyAoJXMpIiwgbmV3TmFtZSwgbmV3RGlyKTsKLSAJYmxvZyhMT0dfSU5GTywg Ii0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOwotQEAg LTgxNSwxMiArODE1LDEzIEBAIHZvaWQgT0JTQmFzaWM6OkNoYW5nZVByb2ZpbGUoKQotIAl9Ci0g fQotIAotLXZvaWQgT0JTQmFzaWM6OkNoZWNrRm9yU2ltcGxlTW9kZVgyNjRGYWxsYmFjaygpCi0r dm9pZCBPQlNCYXNpYzo6Q2hlY2tGb3JTaW1wbGVNb2RlSDI2NEZhbGxiYWNrKCkKLSB7Ci0gCWNv bnN0IGNoYXIgKmN1clN0cmVhbUVuY29kZXIgPQotIAkJY29uZmlnX2dldF9zdHJpbmcoYmFzaWND b25maWcsICJTaW1wbGVPdXRwdXQiLCAiU3RyZWFtRW5jb2RlciIpOwotIAljb25zdCBjaGFyICpj dXJSZWNFbmNvZGVyID0KLSAJCWNvbmZpZ19nZXRfc3RyaW5nKGJhc2ljQ29uZmlnLCAiU2ltcGxl T3V0cHV0IiwgIlJlY0VuY29kZXIiKTsKLSsJYm9vbCB4MjY0X3N1cHBvcnRlZCA9IGZhbHNlOwot IAlib29sIHFzdl9zdXBwb3J0ZWQgPSBmYWxzZTsKLSAJYm9vbCBxc3ZfYXYxX3N1cHBvcnRlZCA9 IGZhbHNlOwotIAlib29sIGFtZF9zdXBwb3J0ZWQgPSBmYWxzZTsKLUBAIC04MzcsNyArODM4LDkg QEAgdm9pZCBPQlNCYXNpYzo6Q2hlY2tGb3JTaW1wbGVNb2RlWDI2NEZhbGxiYWNrKCkKLSAJY29u c3QgY2hhciAqaWQ7Ci0gCi0gCXdoaWxlIChvYnNfZW51bV9lbmNvZGVyX3R5cGVzKGlkeCsrLCAm aWQpKSB7Ci0tCQlpZiAoc3RyY21wKGlkLCAiYW1kX2FtZl9oMjY0IikgPT0gMCkKLSsJCWlmIChz dHJjbXAoaWQsICJvYnNfeDI2NCIpID09IDApCi0rCQkJeDI2NF9zdXBwb3J0ZWQgPSB0cnVlOwot KwkJZWxzZSBpZiAoc3RyY21wKGlkLCAiYW1kX2FtZl9oMjY0IikgPT0gMCkKLSAJCQlhbWRfc3Vw cG9ydGVkID0gdHJ1ZTsKLSAJCWVsc2UgaWYgKHN0cmNtcChpZCwgIm9ic19xc3YxMSIpID09IDAp Ci0gCQkJcXN2X3N1cHBvcnRlZCA9IHRydWU7Ci1AQCAtODY1LDY4ICs4NjgsNzMgQEAgdm9pZCBP QlNCYXNpYzo6Q2hlY2tGb3JTaW1wbGVNb2RlWDI2NEZhbGxiYWNrKCkKLSAjZW5kaWYKLSAJfQot IAotKwkvLyBDaGVjayB0byBzZWUgd2hldGhlciB4MjY0IGlzIGF2YWlsYWJsZQotKwljb25zdCBj aGFyICpmYWxsYmFja19lbmNvZGVyX25hbWUgPSAoeDI2NF9zdXBwb3J0ZWQKLSsJCQkJCQkgICAg ID8gU0lNUExFX0VOQ09ERVJfWDI2NAotKwkJCQkJCSAgICAgOiBTSU1QTEVfRU5DT0RFUl9PUEVO SDI2NCk7Ci0rCi0gCWF1dG8gQ2hlY2tFbmNvZGVyID0gWyZdKGNvbnN0IGNoYXIgKiZuYW1lKSB7 Ci0gCQlpZiAoc3RyY21wKG5hbWUsIFNJTVBMRV9FTkNPREVSX1FTVikgPT0gMCkgewotIAkJCWlm ICghcXN2X3N1cHBvcnRlZCkgewotIAkJCQljaGFuZ2VkID0gdHJ1ZTsKLS0JCQkJbmFtZSA9IFNJ TVBMRV9FTkNPREVSX1gyNjQ7Ci0rCQkJCW5hbWUgPSBmYWxsYmFja19lbmNvZGVyX25hbWU7Ci0g CQkJCXJldHVybiBmYWxzZTsKLSAJCQl9Ci0gCQl9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCBTSU1Q TEVfRU5DT0RFUl9RU1ZfQVYxKSA9PSAwKSB7Ci0gCQkJaWYgKCFxc3ZfYXYxX3N1cHBvcnRlZCkg ewotIAkJCQljaGFuZ2VkID0gdHJ1ZTsKLS0JCQkJbmFtZSA9IFNJTVBMRV9FTkNPREVSX1gyNjQ7 Ci0rCQkJCW5hbWUgPSBmYWxsYmFja19lbmNvZGVyX25hbWU7Ci0gCQkJCXJldHVybiBmYWxzZTsK LSAJCQl9Ci0gCQl9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCBTSU1QTEVfRU5DT0RFUl9OVkVOQykg PT0gMCkgewotIAkJCWlmICghbnZlX3N1cHBvcnRlZCkgewotIAkJCQljaGFuZ2VkID0gdHJ1ZTsK LS0JCQkJbmFtZSA9IFNJTVBMRV9FTkNPREVSX1gyNjQ7Ci0rCQkJCW5hbWUgPSBmYWxsYmFja19l bmNvZGVyX25hbWU7Ci0gCQkJCXJldHVybiBmYWxzZTsKLSAJCQl9Ci0gCQl9IGVsc2UgaWYgKHN0 cmNtcChuYW1lLCBTSU1QTEVfRU5DT0RFUl9OVkVOQ19BVjEpID09IDApIHsKLSAJCQlpZiAoIW52 ZV9zdXBwb3J0ZWQpIHsKLSAJCQkJY2hhbmdlZCA9IHRydWU7Ci0tCQkJCW5hbWUgPSBTSU1QTEVf RU5DT0RFUl9YMjY0OwotKwkJCQluYW1lID0gZmFsbGJhY2tfZW5jb2Rlcl9uYW1lOwotIAkJCQly ZXR1cm4gZmFsc2U7Ci0gCQkJfQotICNpZmRlZiBFTkFCTEVfSEVWQwotIAkJfSBlbHNlIGlmIChz dHJjbXAobmFtZSwgU0lNUExFX0VOQ09ERVJfQU1EX0hFVkMpID09IDApIHsKLSAJCQlpZiAoIWFt ZF9oZXZjX3N1cHBvcnRlZCkgewotIAkJCQljaGFuZ2VkID0gdHJ1ZTsKLS0JCQkJbmFtZSA9IFNJ TVBMRV9FTkNPREVSX1gyNjQ7Ci0rCQkJCW5hbWUgPSBmYWxsYmFja19lbmNvZGVyX25hbWU7Ci0g CQkJCXJldHVybiBmYWxzZTsKLSAJCQl9Ci0gCQl9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCBTSU1Q TEVfRU5DT0RFUl9OVkVOQ19IRVZDKSA9PSAwKSB7Ci0gCQkJaWYgKCFudmVfaGV2Y19zdXBwb3J0 ZWQpIHsKLSAJCQkJY2hhbmdlZCA9IHRydWU7Ci0tCQkJCW5hbWUgPSBTSU1QTEVfRU5DT0RFUl9Y MjY0OwotKwkJCQluYW1lID0gZmFsbGJhY2tfZW5jb2Rlcl9uYW1lOwotIAkJCQlyZXR1cm4gZmFs c2U7Ci0gCQkJfQotICNlbmRpZgotIAkJfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgU0lNUExFX0VO Q09ERVJfQU1EKSA9PSAwKSB7Ci0gCQkJaWYgKCFhbWRfc3VwcG9ydGVkKSB7Ci0gCQkJCWNoYW5n ZWQgPSB0cnVlOwotLQkJCQluYW1lID0gU0lNUExFX0VOQ09ERVJfWDI2NDsKLSsJCQkJbmFtZSA9 IGZhbGxiYWNrX2VuY29kZXJfbmFtZTsKLSAJCQkJcmV0dXJuIGZhbHNlOwotIAkJCX0KLSAJCX0g ZWxzZSBpZiAoc3RyY21wKG5hbWUsIFNJTVBMRV9FTkNPREVSX0FNRF9BVjEpID09IDApIHsKLSAJ CQlpZiAoIWFtZF9hdjFfc3VwcG9ydGVkKSB7Ci0gCQkJCWNoYW5nZWQgPSB0cnVlOwotLQkJCQlu YW1lID0gU0lNUExFX0VOQ09ERVJfWDI2NDsKLSsJCQkJbmFtZSA9IGZhbGxiYWNrX2VuY29kZXJf bmFtZTsKLSAJCQkJcmV0dXJuIGZhbHNlOwotIAkJCX0KLSAJCX0gZWxzZSBpZiAoc3RyY21wKG5h bWUsIFNJTVBMRV9FTkNPREVSX0FQUExFX0gyNjQpID09IDApIHsKLSAJCQlpZiAoIWFwcGxlX3N1 cHBvcnRlZCkgewotIAkJCQljaGFuZ2VkID0gdHJ1ZTsKLS0JCQkJbmFtZSA9IFNJTVBMRV9FTkNP REVSX1gyNjQ7Ci0rCQkJCW5hbWUgPSBmYWxsYmFja19lbmNvZGVyX25hbWU7Ci0gCQkJCXJldHVy biBmYWxzZTsKLSAJCQl9Ci0gI2lmZGVmIEVOQUJMRV9IRVZDCi0gCQl9IGVsc2UgaWYgKHN0cmNt cChuYW1lLCBTSU1QTEVfRU5DT0RFUl9BUFBMRV9IRVZDKSA9PSAwKSB7Ci0gCQkJaWYgKCFhcHBs ZV9oZXZjX3N1cHBvcnRlZCkgewotIAkJCQljaGFuZ2VkID0gdHJ1ZTsKLS0JCQkJbmFtZSA9IFNJ TVBMRV9FTkNPREVSX1gyNjQ7Ci0rCQkJCW5hbWUgPSBmYWxsYmFja19lbmNvZGVyX25hbWU7Ci0g CQkJCXJldHVybiBmYWxzZTsKLSAJCQl9Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvVUkvd2luZG93 LWJhc2ljLW1haW4uY3BwIGIvVUkvd2luZG93LWJhc2ljLW1haW4uY3BwCi1pbmRleCA2ZDkzNzVl YjQuLmM2YWFlOGM3YiAxMDA2NDQKLS0tLSBhL1VJL3dpbmRvdy1iYXNpYy1tYWluLmNwcAotKysr IGIvVUkvd2luZG93LWJhc2ljLW1haW4uY3BwCi1AQCAtMTM3OSw2ICsxMzc5LDggQEAgZXh0ZXJu IHZvaWQgQ2hlY2tFeGlzdGluZ0Nvb2tpZUlkKCk7Ci0gI2RlZmluZSBERUZBVUxUX0NPTlRBSU5F UiAiZnJhZ21lbnRlZF9tcDQiCi0gI2VuZGlmCi0gCi0rZXh0ZXJuIGJvb2wgRW5jb2RlckF2YWls YWJsZShjb25zdCBjaGFyICplbmNvZGVyKTsKLSsKLSBib29sIE9CU0Jhc2ljOjpJbml0QmFzaWND b25maWdEZWZhdWx0cygpCi0gewotIAlRTGlzdDxRU2NyZWVuICo+IHNjcmVlbnMgPSBRR3VpQXBw bGljYXRpb246OnNjcmVlbnMoKTsKLUBAIC0xNTQ5LDcgKzE1NTEsMTAgQEAgYm9vbCBPQlNCYXNp Yzo6SW5pdEJhc2ljQ29uZmlnRGVmYXVsdHMoKQotIAljb25maWdfc2V0X2RlZmF1bHRfYm9vbChi YXNpY0NvbmZpZywgIkFkdk91dCIsICJVc2VSZXNjYWxlIiwgZmFsc2UpOwotIAljb25maWdfc2V0 X2RlZmF1bHRfdWludChiYXNpY0NvbmZpZywgIkFkdk91dCIsICJUcmFja0luZGV4IiwgMSk7Ci0g CWNvbmZpZ19zZXRfZGVmYXVsdF91aW50KGJhc2ljQ29uZmlnLCAiQWR2T3V0IiwgIlZvZFRyYWNr SW5kZXgiLCAyKTsKLS0JY29uZmlnX3NldF9kZWZhdWx0X3N0cmluZyhiYXNpY0NvbmZpZywgIkFk dk91dCIsICJFbmNvZGVyIiwgIm9ic194MjY0Iik7Ci0rCi0rCWJvb2wgdXNlWDI2NCA9IEVuY29k ZXJBdmFpbGFibGUoIm9ic194MjY0Iik7Ci0rCWNvbmZpZ19zZXRfZGVmYXVsdF9zdHJpbmcoYmFz aWNDb25maWcsICJBZHZPdXQiLCAiRW5jb2RlciIsCi0rCQkJCSAgKHVzZVgyNjQgPyAib2JzX3gy NjQiIDogImZmbXBlZ19vcGVuaDI2NCIpKTsKLSAKLSAJY29uZmlnX3NldF9kZWZhdWx0X3N0cmlu ZyhiYXNpY0NvbmZpZywgIkFkdk91dCIsICJSZWNUeXBlIiwgIlN0YW5kYXJkIik7Ci0gCi1AQCAt MTY3Miw3ICsxNjc3LDYgQEAgYm9vbCBPQlNCYXNpYzo6SW5pdEJhc2ljQ29uZmlnRGVmYXVsdHMo KQotIAlyZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0tZXh0ZXJuIGJvb2wgRW5jb2RlckF2YWlsYWJsZShj b25zdCBjaGFyICplbmNvZGVyKTsKLSBleHRlcm4gYm9vbCB1cGRhdGVfbnZlbmNfcHJlc2V0cyhD b25maWdGaWxlICZjb25maWcpOwotIAotIHZvaWQgT0JTQmFzaWM6OkluaXRCYXNpY0NvbmZpZ0Rl ZmF1bHRzMigpCi1AQCAtMTY4MSwxMiArMTY4NSwxNCBAQCB2b2lkIE9CU0Jhc2ljOjpJbml0QmFz aWNDb25maWdEZWZhdWx0czIoKQotIAkJCQkJICAgICAgIlByZTIzRGVmYXVsdHMiKTsKLSAJYm9v bCB1c2VOViA9IEVuY29kZXJBdmFpbGFibGUoImZmbXBlZ19udmVuYyIpICYmICFvbGRFbmNEZWZh dWx0czsKLSAKLSsJYm9vbCB1c2VYMjY0ID0gRW5jb2RlckF2YWlsYWJsZSgib2JzX3gyNjQiKTsK LSsJY29uc3QgY2hhciAqaDI2NF9mYWxsYmFjayA9Ci0rCQkodXNlWDI2NCA/IFNJTVBMRV9FTkNP REVSX1gyNjQgOiBTSU1QTEVfRU5DT0RFUl9PUEVOSDI2NCk7Ci0rCi0gCWNvbmZpZ19zZXRfZGVm YXVsdF9zdHJpbmcoYmFzaWNDb25maWcsICJTaW1wbGVPdXRwdXQiLCAiU3RyZWFtRW5jb2RlciIs Ci0tCQkJCSAgdXNlTlYgPyBTSU1QTEVfRU5DT0RFUl9OVkVOQwotLQkJCQkJOiBTSU1QTEVfRU5D T0RFUl9YMjY0KTsKLSsJCQkJICB1c2VOViA/IFNJTVBMRV9FTkNPREVSX05WRU5DIDogaDI2NF9m YWxsYmFjayk7Ci0gCWNvbmZpZ19zZXRfZGVmYXVsdF9zdHJpbmcoYmFzaWNDb25maWcsICJTaW1w bGVPdXRwdXQiLCAiUmVjRW5jb2RlciIsCi0tCQkJCSAgdXNlTlYgPyBTSU1QTEVfRU5DT0RFUl9O VkVOQwotLQkJCQkJOiBTSU1QTEVfRU5DT0RFUl9YMjY0KTsKLSsJCQkJICB1c2VOViA/IFNJTVBM RV9FTkNPREVSX05WRU5DIDogaDI2NF9mYWxsYmFjayk7Ci0gCi0gCWNvbnN0IGNoYXIgKmFhY19k ZWZhdWx0ID0gImZmbXBlZ19hYWMiOwotIAlpZiAoRW5jb2RlckF2YWlsYWJsZSgiQ29yZUF1ZGlv X0FBQyIpKQotQEAgLTE5NjcsNyArMTk3Myw3IEBAIHZvaWQgT0JTQmFzaWM6Ok9CU0luaXQoKQot IAotIAlJbml0QmFzaWNDb25maWdEZWZhdWx0czIoKTsKLSAKLS0JQ2hlY2tGb3JTaW1wbGVNb2Rl WDI2NEZhbGxiYWNrKCk7Ci0rCUNoZWNrRm9yU2ltcGxlTW9kZUgyNjRGYWxsYmFjaygpOwotIAot IAlibG9nKExPR19JTkZPLCBTVEFSVFVQX1NFUEFSQVRPUik7Ci0gCi1kaWZmIC0tZ2l0IGEvVUkv d2luZG93LWJhc2ljLW1haW4uaHBwIGIvVUkvd2luZG93LWJhc2ljLW1haW4uaHBwCi1pbmRleCBj YmNlNjk4MzIuLjc0YzZlYjE0NCAxMDA2NDQKLS0tLSBhL1VJL3dpbmRvdy1iYXNpYy1tYWluLmhw cAotKysrIGIvVUkvd2luZG93LWJhc2ljLW1haW4uaHBwCi1AQCAtNjYsNiArNjYsNyBAQCBjbGFz cyBPQlNCYXNpY1ZDYW1Db25maWc7Ci0gCi0gI2RlZmluZSBTSU1QTEVfRU5DT0RFUl9YMjY0ICJ4 MjY0IgotICNkZWZpbmUgU0lNUExFX0VOQ09ERVJfWDI2NF9MT1dDUFUgIngyNjRfbG93Y3B1Igot KyNkZWZpbmUgU0lNUExFX0VOQ09ERVJfT1BFTkgyNjQgImZmbXBlZ19vcGVuaDI2NCIKLSAjZGVm aW5lIFNJTVBMRV9FTkNPREVSX1FTViAicXN2IgotICNkZWZpbmUgU0lNUExFX0VOQ09ERVJfUVNW X0FWMSAicXN2X2F2MSIKLSAjZGVmaW5lIFNJTVBMRV9FTkNPREVSX05WRU5DICJudmVuYyIKLUBA IC00MzQsNyArNDM1LDcgQEAgcHJpdmF0ZToKLSAJdm9pZCBEZWxldGVQcm9maWxlKGNvbnN0IGNo YXIgKnByb2ZpbGVfbmFtZSwgY29uc3QgY2hhciAqcHJvZmlsZV9kaXIpOwotIAl2b2lkIFJlZnJl c2hQcm9maWxlcygpOwotIAl2b2lkIENoYW5nZVByb2ZpbGUoKTsKLS0Jdm9pZCBDaGVja0ZvclNp bXBsZU1vZGVYMjY0RmFsbGJhY2soKTsKLSsJdm9pZCBDaGVja0ZvclNpbXBsZU1vZGVIMjY0RmFs bGJhY2soKTsKLSAKLSAJdm9pZCBTYXZlUHJvamVjdE5vdygpOwotIAotZGlmZiAtLWdpdCBhL1VJ L3dpbmRvdy1iYXNpYy1zZXR0aW5ncy1zdHJlYW0uY3BwIGIvVUkvd2luZG93LWJhc2ljLXNldHRp bmdzLXN0cmVhbS5jcHAKLWluZGV4IGIwNTY5MzhlNy4uNTQ4ZTVmNDVmIDEwMDY0NAotLS0tIGEv VUkvd2luZG93LWJhc2ljLXNldHRpbmdzLXN0cmVhbS5jcHAKLSsrKyBiL1VJL3dpbmRvdy1iYXNp Yy1zZXR0aW5ncy1zdHJlYW0uY3BwCi1AQCAtMTM2Miw3ICsxMzYyLDkgQEAgc3RhdGljIFFTdHJp bmcgZ2V0X2Fkdl9mYWxsYmFjayhjb25zdCBRU3RyaW5nICZlbmMpCi0gCQlyZXR1cm4gImNvbS5h cHBsZS52aWRlb3Rvb2xib3gudmlkZW9lbmNvZGVyLmF2ZS5hdmMiOwotIAlpZiAoZW5jID09ICJv YnNfcXN2MTFfYXYxIikKLSAJCXJldHVybiAib2JzX3FzdjExIjsKLS0JcmV0dXJuICJvYnNfeDI2 NCI7Ci0rCWlmIChFbmNvZGVyQXZhaWxhYmxlKCJvYnNfeDI2NCIpKQotKwkJcmV0dXJuICJvYnNf eDI2NCI7Ci0rCXJldHVybiAiZmZtcGVnX29wZW5oMjY0IjsKLSB9Ci0gCi0gc3RhdGljIFFTdHJp bmcgZ2V0X2Fkdl9hdWRpb19mYWxsYmFjayhjb25zdCBRU3RyaW5nICZlbmMpCi1AQCAtMTM5MSw3 ICsxMzkzLDkgQEAgc3RhdGljIFFTdHJpbmcgZ2V0X3NpbXBsZV9mYWxsYmFjayhjb25zdCBRU3Ry aW5nICZlbmMpCi0gCQlyZXR1cm4gU0lNUExFX0VOQ09ERVJfQVBQTEVfSDI2NDsKLSAJaWYgKGVu YyA9PSBTSU1QTEVfRU5DT0RFUl9RU1ZfQVYxKQotIAkJcmV0dXJuIFNJTVBMRV9FTkNPREVSX1FT VjsKLS0JcmV0dXJuIFNJTVBMRV9FTkNPREVSX1gyNjQ7Ci0rCWlmIChFbmNvZGVyQXZhaWxhYmxl KCJvYnNfeDI2NCIpKQotKwkJcmV0dXJuIFNJTVBMRV9FTkNPREVSX1gyNjQ7Ci0rCXJldHVybiBT SU1QTEVfRU5DT0RFUl9PUEVOSDI2NDsKLSB9Ci0gCi0gYm9vbCBPQlNCYXNpY1NldHRpbmdzOjpT ZXJ2aWNlU3VwcG9ydHNDb2RlY0NoZWNrKCkKLUBAIC0xNTg1LDggKzE1ODksMTIgQEAgdm9pZCBP QlNCYXNpY1NldHRpbmdzOjpSZXNldEVuY29kZXJzKGJvb2wgc3RyZWFtT25seSkKLSAKLSAjZGVm aW5lIEVOQ09ERVJfU1RSKHN0cikgUVRTdHIoIkJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUu RW5jb2Rlci4iIHN0cikKLSAKLS0JdWktPnNpbXBsZU91dFN0ckVuY29kZXItPmFkZEl0ZW0oRU5D T0RFUl9TVFIoIlNvZnR3YXJlLlgyNjQuSDI2NCIpLAotLQkJCQkJIFFTdHJpbmcoU0lNUExFX0VO Q09ERVJfWDI2NCkpOwotKwl1aS0+c2ltcGxlT3V0U3RyRW5jb2Rlci0+YWRkSXRlbShFTkNPREVS X1NUUigiU29mdHdhcmUuT3BlbkgyNjQuSDI2NCIpLAotKwkJCQkJIFFTdHJpbmcoU0lNUExFX0VO Q09ERVJfT1BFTkgyNjQpKTsKLSsJaWYgKHNlcnZpY2Vfc3VwcG9ydHNfZW5jb2Rlcih2Y29kZWNz LCAib2JzX3gyNjQiKSkKLSsJCXVpLT5zaW1wbGVPdXRTdHJFbmNvZGVyLT5hZGRJdGVtKAotKwkJ CUVOQ09ERVJfU1RSKCJTb2Z0d2FyZS5YMjY0LkgyNjQiKSwKLSsJCQlRU3RyaW5nKFNJTVBMRV9F TkNPREVSX1gyNjQpKTsKLSAJaWYgKHNlcnZpY2Vfc3VwcG9ydHNfZW5jb2Rlcih2Y29kZWNzLCAi b2JzX3FzdjExIikpCi0gCQl1aS0+c2ltcGxlT3V0U3RyRW5jb2Rlci0+YWRkSXRlbSgKLSAJCQlF TkNPREVSX1NUUigiSGFyZHdhcmUuUVNWLkgyNjQiKSwKLWRpZmYgLS1naXQgYS9VSS93aW5kb3ct YmFzaWMtc2V0dGluZ3MuY3BwIGIvVUkvd2luZG93LWJhc2ljLXNldHRpbmdzLmNwcAotaW5kZXgg NDhiYjRiYWM2Li41MWZlMjgwZGIgMTAwNjQ0Ci0tLS0gYS9VSS93aW5kb3ctYmFzaWMtc2V0dGlu Z3MuY3BwCi0rKysgYi9VSS93aW5kb3ctYmFzaWMtc2V0dGluZ3MuY3BwCi1AQCAtMzgzMSw2ICsz ODMxLDExIEBAIHZvaWQgT0JTQmFzaWNTZXR0aW5nczo6U2F2ZU91dHB1dFNldHRpbmdzKCkKLSAg ICAgICAgICBkby4gVGhpcyBvbmx5IGV4aXN0cyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgeDI2NCBw cmVzZXQgZG9lc24ndAotICAgICAgICAgIGdldCBvdmVyd3JpdHRlbiB3aXRoIGVtcHR5IGRhdGEu ICovCi0gCQlwcmVzZXRUeXBlID0gIkFwcGxlUHJlc2V0IjsKLSsJZWxzZSBpZiAoZW5jb2RlciA9 PSBTSU1QTEVfRU5DT0RFUl9PUEVOSDI2NCkKLSsJCS8qIFRoZSBPcGVuSDI2NCBlbmNvZGVyIGRv ZXMgbm90IGhhdmUgcHJlc2V0cyBsaWtlIHRoZSBvdGhlciBlbmNvZGVycwotKyAgICAgICAgIGRv LiBUaGlzIG9ubHkgZXhpc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSB4MjY0IHByZXNldCBkb2Vz bid0Ci0rICAgICAgICAgZ2V0IG92ZXJ3cml0dGVuIHdpdGggZW1wdHkgZGF0YS4gKi8KLSsJCXBy ZXNldFR5cGUgPSAiT3BlbkgyNjRQcmVzZXQiOwotIAllbHNlCi0gCQlwcmVzZXRUeXBlID0gIlBy ZXNldCI7Ci0gCi1AQCAtNTI4NiwxMSArNTI5MSwxNiBAQCB2b2lkIE9CU0Jhc2ljU2V0dGluZ3M6 OkZpbGxTaW1wbGVSZWNvcmRpbmdWYWx1ZXMoKQotIAlBRERfUVVBTElUWSgiSFEiKTsKLSAJQURE X1FVQUxJVFkoIkxvc3NsZXNzIik7Ci0gCi0tCXVpLT5zaW1wbGVPdXRSZWNFbmNvZGVyLT5hZGRJ dGVtKEVOQ09ERVJfU1RSKCJTb2Z0d2FyZS5YMjY0LkgyNjQiKSwKLS0JCQkJCSBRU3RyaW5nKFNJ TVBMRV9FTkNPREVSX1gyNjQpKTsKLS0JdWktPnNpbXBsZU91dFJlY0VuY29kZXItPmFkZEl0ZW0o Ci0tCQlFTkNPREVSX1NUUigiU29mdHdhcmVMb3dDUFUuWDI2NC5IMjY0IiksCi0tCQlRU3RyaW5n KFNJTVBMRV9FTkNPREVSX1gyNjRfTE9XQ1BVKSk7Ci0rCXVpLT5zaW1wbGVPdXRSZWNFbmNvZGVy LT5hZGRJdGVtKEVOQ09ERVJfU1RSKCJTb2Z0d2FyZS5PcGVuSDI2NC5IMjY0IiksCi0rCQkJCQkg UVN0cmluZyhTSU1QTEVfRU5DT0RFUl9PUEVOSDI2NCkpOwotKwlpZiAoRW5jb2RlckF2YWlsYWJs ZSgib2JzX3gyNjQiKSkgewotKwkJdWktPnNpbXBsZU91dFJlY0VuY29kZXItPmFkZEl0ZW0oCi0r CQkJRU5DT0RFUl9TVFIoIlNvZnR3YXJlLlgyNjQuSDI2NCIpLAotKwkJCVFTdHJpbmcoU0lNUExF X0VOQ09ERVJfWDI2NCkpOwotKwkJdWktPnNpbXBsZU91dFJlY0VuY29kZXItPmFkZEl0ZW0oCi0r CQkJRU5DT0RFUl9TVFIoIlNvZnR3YXJlTG93Q1BVLlgyNjQuSDI2NCIpLAotKwkJCVFTdHJpbmco U0lNUExFX0VOQ09ERVJfWDI2NF9MT1dDUFUpKTsKLSsJfQotIAlpZiAoRW5jb2RlckF2YWlsYWJs ZSgib2JzX3FzdjExIikpCi0gCQl1aS0+c2ltcGxlT3V0UmVjRW5jb2Rlci0+YWRkSXRlbSgKLSAJ CQlFTkNPREVSX1NUUigiSGFyZHdhcmUuUVNWLkgyNjQiKSwKLUBAIC01NDYzLDYgKzU0NzMsOSBA QCB2b2lkIE9CU0Jhc2ljU2V0dGluZ3M6OlNpbXBsZVN0cmVhbWluZ0VuY29kZXJDaGFuZ2VkKCkK LSAKLSAJCWRlZmF1bHRQcmVzZXQgPSAiYmFsYW5jZWQiOwotIAkJcHJlc2V0ID0gY3VyQU1EQVYx UHJlc2V0OwotKwl9IGVsc2UgaWYgKGVuY29kZXIgPT0gU0lNUExFX0VOQ09ERVJfT1BFTkgyNjQp IHsKLSsJCXVpLT5zaW1wbGVPdXRQcmVzZXQtPnNldFZpc2libGUoZmFsc2UpOwotKwkJdWktPnNp bXBsZU91dFByZXNldExhYmVsLT5zZXRWaXNpYmxlKGZhbHNlKTsKLSAJfSBlbHNlIHsKLSAKLSAj ZGVmaW5lIFBSRVNFVF9TVFIodmFsKSBcCi0tLSAKLTIuMzkuMgotCgpkaWZmIC0tZ2l0IGEvMDEw MS1VSS1Db25zaXN0ZW50bHktcmVmZXJlbmNlLXRoZS1zb2Z0d2FyZS1IMjY0LWVuY29kZXItLnBh dGNoIGIvMDEwMS1VSS1Db25zaXN0ZW50bHktcmVmZXJlbmNlLXRoZS1zb2Z0d2FyZS1IMjY0LWVu Y29kZXItLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkNTk5MmUK LS0tIC9kZXYvbnVsbAorKysgYi8wMTAxLVVJLUNvbnNpc3RlbnRseS1yZWZlcmVuY2UtdGhlLXNv ZnR3YXJlLUgyNjQtZW5jb2Rlci0ucGF0Y2gKQEAgLTAsMCArMSwxMDQgQEAKK0Zyb20gZGZhODU3 ZWNlYjBkZWFmMWEyNzNmYmQzNDIzMzY0ZmQ3MjY4ZWE5MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IE5lYWwgR29tcGEgPG5lYWxAZ29tcGEuZGV2PgorRGF0ZTogU2F0LCA3IEphbiAy MDIzIDIzOjE1OjEzIC0wNTAwCitTdWJqZWN0OiBbUEFUQ0ggMTAxLzEwM10gVUk6IENvbnNpc3Rl bnRseSByZWZlcmVuY2UgdGhlIHNvZnR3YXJlIEgyNjQgZW5jb2RlcgorIHByb3Blcmx5CisKK1Ro ZSBjb2RlIGhlcmUgYXNzdW1lcyB0aGF0IHRoZSBvbmx5IHNvZnR3YXJlIGVuY29kZXIgaXMgdGhl IHgyNjQtYmFzZWQKK0guMjY0IGVuY29kZXIuIFRoYXQgbWF5IG5vdCBhbHdheXMgcmVtYWluIHRy dWUuIFRoaXMgY2hhbmdlIGFkanVzdHMKK3RoZSBlbmNvZGVyIHN0cmluZyB0byBpbmRpY2F0ZSB0 aGF0IGl0J3MgYW4gSC4yNjQgZW5jb2RlciBmcm9tIHgyNjQuCistLS0KKyBVSS9kYXRhL2xvY2Fs ZS9lbi1VUy5pbmkgICAgICAgICAgICAgfCA0ICsrLS0KKyBVSS93aW5kb3ctYmFzaWMtYXV0by1j b25maWctdGVzdC5jcHAgfCA2ICsrKy0tLQorIFVJL3dpbmRvdy1iYXNpYy1zZXR0aW5ncy1zdHJl YW0uY3BwICB8IDIgKy0KKyBVSS93aW5kb3ctYmFzaWMtc2V0dGluZ3MuY3BwICAgICAgICAgfCA3 ICsrKystLS0KKyA0IGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9VSS9kYXRhL2xvY2FsZS9lbi1VUy5pbmkgYi9VSS9kYXRhL2xv Y2FsZS9lbi1VUy5pbmkKK2luZGV4IGU2MmYzOGEyNi4uMzM5YWM0ZDg2IDEwMDY0NAorLS0tIGEv VUkvZGF0YS9sb2NhbGUvZW4tVVMuaW5pCisrKysgYi9VSS9kYXRhL2xvY2FsZS9lbi1VUy5pbmkK K0BAIC05OTYsNyArOTk2LDcgQEAgQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5XYXJuLkVu Y29kZXI9Ildhcm5pbmc6IFJlY29yZGluZyB3aXRoIGEgc29mdHdhcmUgZW4KKyBCYXNpYy5TZXR0 aW5ncy5PdXRwdXQuU2ltcGxlLldhcm4uTG9zc2xlc3M9Ildhcm5pbmc6IExvc3NsZXNzIHF1YWxp dHkgZ2VuZXJhdGVzIHRyZW1lbmRvdXNseSBsYXJnZSBmaWxlIHNpemVzISBMb3NzbGVzcyBxdWFs aXR5IGNhbiB1c2UgdXB3YXJkIG9mIDcgZ2lnYWJ5dGVzIG9mIGRpc2sgc3BhY2UgcGVyIG1pbnV0 ZSBhdCBoaWdoIHJlc29sdXRpb25zIGFuZCBmcmFtZXJhdGVzLiBMb3NzbGVzcyBpcyBub3QgcmVj b21tZW5kZWQgZm9yIGxvbmcgcmVjb3JkaW5ncyB1bmxlc3MgeW91IGhhdmUgYSB2ZXJ5IGxhcmdl IGFtb3VudCBvZiBkaXNrIHNwYWNlIGF2YWlsYWJsZS4iCisgQmFzaWMuU2V0dGluZ3MuT3V0cHV0 LlNpbXBsZS5XYXJuLkxvc3NsZXNzLk1zZz0iQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVzZSBs b3NzbGVzcyBxdWFsaXR5PyIKKyBCYXNpYy5TZXR0aW5ncy5PdXRwdXQuU2ltcGxlLldhcm4uTG9z c2xlc3MuVGl0bGU9Ikxvc3NsZXNzIHF1YWxpdHkgd2FybmluZyEiCistQmFzaWMuU2V0dGluZ3Mu T3V0cHV0LlNpbXBsZS5FbmNvZGVyLlNvZnR3YXJlPSJTb2Z0d2FyZSAoeDI2NCkiCisrQmFzaWMu U2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5FbmNvZGVyLlNvZnR3YXJlLlgyNjQuSDI2ND0iU29mdHdh cmUgKHgyNjQpIgorIEJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci5IYXJkd2Fy ZS5RU1YuSDI2ND0iSGFyZHdhcmUgKFFTViwgSC4yNjQpIgorIEJhc2ljLlNldHRpbmdzLk91dHB1 dC5TaW1wbGUuRW5jb2Rlci5IYXJkd2FyZS5RU1YuQVYxPSJIYXJkd2FyZSAoUVNWLCBBVjEpIgor IEJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci5IYXJkd2FyZS5BTUQuSDI2ND0i SGFyZHdhcmUgKEFNRCwgSC4yNjQpIgorQEAgLTEwMDcsNyArMTAwNyw3IEBAIEJhc2ljLlNldHRp bmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci5IYXJkd2FyZS5OVkVOQy5BVjE9IkhhcmR3YXJlIChO VkVOQywgQVYxKSIKKyBCYXNpYy5TZXR0aW5ncy5PdXRwdXQuU2ltcGxlLkVuY29kZXIuSGFyZHdh cmUuTlZFTkMuSEVWQz0iSGFyZHdhcmUgKE5WRU5DLCBIRVZDKSIKKyBCYXNpYy5TZXR0aW5ncy5P dXRwdXQuU2ltcGxlLkVuY29kZXIuSGFyZHdhcmUuQXBwbGUuSDI2ND0iSGFyZHdhcmUgKEFwcGxl LCBILjI2NCkiCisgQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5FbmNvZGVyLkhhcmR3YXJl LkFwcGxlLkhFVkM9IkhhcmR3YXJlIChBcHBsZSwgSEVWQykiCistQmFzaWMuU2V0dGluZ3MuT3V0 cHV0LlNpbXBsZS5FbmNvZGVyLlNvZnR3YXJlTG93Q1BVPSJTb2Z0d2FyZSAoeDI2NCBsb3cgQ1BV IHVzYWdlIHByZXNldCwgaW5jcmVhc2VzIGZpbGUgc2l6ZSkiCisrQmFzaWMuU2V0dGluZ3MuT3V0 cHV0LlNpbXBsZS5FbmNvZGVyLlNvZnR3YXJlTG93Q1BVLlgyNjQuSDI2ND0iU29mdHdhcmUgKHgy NjQgbG93IENQVSB1c2FnZSBwcmVzZXQsIGluY3JlYXNlcyBmaWxlIHNpemUpIgorIEJhc2ljLlNl dHRpbmdzLk91dHB1dC5TaW1wbGUuQ29kZWMuQUFDPSJBQUMiCisgQmFzaWMuU2V0dGluZ3MuT3V0 cHV0LlNpbXBsZS5Db2RlYy5BQUMuRGVmYXVsdD0iQUFDIChEZWZhdWx0KSIKKyBCYXNpYy5TZXR0 aW5ncy5PdXRwdXQuU2ltcGxlLkNvZGVjLk9wdXM9Ik9wdXMiCitkaWZmIC0tZ2l0IGEvVUkvd2lu ZG93LWJhc2ljLWF1dG8tY29uZmlnLXRlc3QuY3BwIGIvVUkvd2luZG93LWJhc2ljLWF1dG8tY29u ZmlnLXRlc3QuY3BwCitpbmRleCA3ZDdjNDI3OGUuLmE4YjVkODg0YSAxMDA2NDQKKy0tLSBhL1VJ L3dpbmRvdy1iYXNpYy1hdXRvLWNvbmZpZy10ZXN0LmNwcAorKysrIGIvVUkvd2luZG93LWJhc2lj LWF1dG8tY29uZmlnLXRlc3QuY3BwCitAQCAtMTAxMCw3ICsxMDEwLDcgQEAgdm9pZCBBdXRvQ29u ZmlnVGVzdFBhZ2U6OlRlc3RSZWNvcmRpbmdFbmNvZGVyVGhyZWFkKCkKKyB9CisgCisgI2RlZmlu ZSBFTkNPREVSX1RFWFQoeCkgIkJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci4i IHgKKy0jZGVmaW5lIEVOQ09ERVJfU09GVFdBUkUgRU5DT0RFUl9URVhUKCJTb2Z0d2FyZSIpCisr I2RlZmluZSBFTkNPREVSX1gyNjQgRU5DT0RFUl9URVhUKCJTb2Z0d2FyZS5YMjY0LkgyNjQiKQor ICNkZWZpbmUgRU5DT0RFUl9OVkVOQyBFTkNPREVSX1RFWFQoIkhhcmR3YXJlLk5WRU5DLkgyNjQi KQorICNkZWZpbmUgRU5DT0RFUl9RU1YgRU5DT0RFUl9URVhUKCJIYXJkd2FyZS5RU1YuSDI2NCIp CisgI2RlZmluZSBFTkNPREVSX0FNRCBFTkNPREVSX1RFWFQoIkhhcmR3YXJlLkFNRC5IMjY0IikK K0BAIC0xMDUwLDcgKzEwNTAsNyBAQCB2b2lkIEF1dG9Db25maWdUZXN0UGFnZTo6RmluYWxpemVS ZXN1bHRzKCkKKyAJYXV0byBlbmNOYW1lID0gW10oQXV0b0NvbmZpZzo6RW5jb2RlciBlbmMpIC0+ IFFTdHJpbmcgeworIAkJc3dpdGNoIChlbmMpIHsKKyAJCWNhc2UgQXV0b0NvbmZpZzo6RW5jb2Rl cjo6eDI2NDoKKy0JCQlyZXR1cm4gUVRTdHIoRU5DT0RFUl9TT0ZUV0FSRSk7CisrCQkJcmV0dXJu IFFUU3RyKEVOQ09ERVJfWDI2NCk7CisgCQljYXNlIEF1dG9Db25maWc6OkVuY29kZXI6Ok5WRU5D OgorIAkJCXJldHVybiBRVFN0cihFTkNPREVSX05WRU5DKTsKKyAJCWNhc2UgQXV0b0NvbmZpZzo6 RW5jb2Rlcjo6UVNWOgorQEAgLTEwNjMsNyArMTA2Myw3IEBAIHZvaWQgQXV0b0NvbmZpZ1Rlc3RQ YWdlOjpGaW5hbGl6ZVJlc3VsdHMoKQorIAkJCXJldHVybiBRVFN0cihRVUFMSVRZX1NBTUUpOwor IAkJfQorIAorLQkJcmV0dXJuIFFUU3RyKEVOQ09ERVJfU09GVFdBUkUpOworKwkJcmV0dXJuIFFU U3RyKEVOQ09ERVJfWDI2NCk7CisgCX07CisgCisgCWF1dG8gbmV3TGFiZWwgPSBbdGhpc10oY29u c3QgY2hhciAqc3RyKSAtPiBRTGFiZWwgKiB7CitkaWZmIC0tZ2l0IGEvVUkvd2luZG93LWJhc2lj LXNldHRpbmdzLXN0cmVhbS5jcHAgYi9VSS93aW5kb3ctYmFzaWMtc2V0dGluZ3Mtc3RyZWFtLmNw cAoraW5kZXggMmFkMjc1YTQ0Li5lMmJhNGI2NzcgMTAwNjQ0CistLS0gYS9VSS93aW5kb3ctYmFz aWMtc2V0dGluZ3Mtc3RyZWFtLmNwcAorKysrIGIvVUkvd2luZG93LWJhc2ljLXNldHRpbmdzLXN0 cmVhbS5jcHAKK0BAIC0xNjcwLDcgKzE2NzAsNyBAQCB2b2lkIE9CU0Jhc2ljU2V0dGluZ3M6OlJl c2V0RW5jb2RlcnMoYm9vbCBzdHJlYW1Pbmx5KQorIAorICNkZWZpbmUgRU5DT0RFUl9TVFIoc3Ry KSBRVFN0cigiQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5FbmNvZGVyLiIgc3RyKQorIAor LQl1aS0+c2ltcGxlT3V0U3RyRW5jb2Rlci0+YWRkSXRlbShFTkNPREVSX1NUUigiU29mdHdhcmUi KSwKKysJdWktPnNpbXBsZU91dFN0ckVuY29kZXItPmFkZEl0ZW0oRU5DT0RFUl9TVFIoIlNvZnR3 YXJlLlgyNjQuSDI2NCIpLAorIAkJCQkJIFFTdHJpbmcoU0lNUExFX0VOQ09ERVJfWDI2NCkpOwor ICNpZmRlZiBfV0lOMzIKKyAJaWYgKHNlcnZpY2Vfc3VwcG9ydHNfZW5jb2Rlcih2Y29kZWNzLCAi b2JzX3FzdjExIikpCitkaWZmIC0tZ2l0IGEvVUkvd2luZG93LWJhc2ljLXNldHRpbmdzLmNwcCBi L1VJL3dpbmRvdy1iYXNpYy1zZXR0aW5ncy5jcHAKK2luZGV4IGIxZTZiZDZmYi4uZGRmMGFkYzU2 IDEwMDY0NAorLS0tIGEvVUkvd2luZG93LWJhc2ljLXNldHRpbmdzLmNwcAorKysrIGIvVUkvd2lu ZG93LWJhc2ljLXNldHRpbmdzLmNwcAorQEAgLTUyMzcsMTAgKzUyMzcsMTEgQEAgdm9pZCBPQlNC YXNpY1NldHRpbmdzOjpGaWxsU2ltcGxlUmVjb3JkaW5nVmFsdWVzKCkKKyAJQUREX1FVQUxJVFko IkhRIik7CisgCUFERF9RVUFMSVRZKCJMb3NzbGVzcyIpOworIAorLQl1aS0+c2ltcGxlT3V0UmVj RW5jb2Rlci0+YWRkSXRlbShFTkNPREVSX1NUUigiU29mdHdhcmUiKSwKKysJdWktPnNpbXBsZU91 dFJlY0VuY29kZXItPmFkZEl0ZW0oRU5DT0RFUl9TVFIoIlNvZnR3YXJlLlgyNjQuSDI2NCIpLAor IAkJCQkJIFFTdHJpbmcoU0lNUExFX0VOQ09ERVJfWDI2NCkpOworLQl1aS0+c2ltcGxlT3V0UmVj RW5jb2Rlci0+YWRkSXRlbShFTkNPREVSX1NUUigiU29mdHdhcmVMb3dDUFUiKSwKKy0JCQkJCSBR U3RyaW5nKFNJTVBMRV9FTkNPREVSX1gyNjRfTE9XQ1BVKSk7CisrCXVpLT5zaW1wbGVPdXRSZWNF bmNvZGVyLT5hZGRJdGVtKAorKwkJRU5DT0RFUl9TVFIoIlNvZnR3YXJlTG93Q1BVLlgyNjQuSDI2 NCIpLAorKwkJUVN0cmluZyhTSU1QTEVfRU5DT0RFUl9YMjY0X0xPV0NQVSkpOworIAlpZiAoRW5j b2RlckF2YWlsYWJsZSgib2JzX3FzdjExIikpCisgCQl1aS0+c2ltcGxlT3V0UmVjRW5jb2Rlci0+ YWRkSXRlbSgKKyAJCQlFTkNPREVSX1NUUigiSGFyZHdhcmUuUVNWLkgyNjQiKSwKKy0tIAorMi40 MS4wCisKCmRpZmYgLS1naXQgYS8wMTAyLW9icy1mZm1wZWctQWRkLWluaXRpYWwtc3VwcG9ydC1m b3ItdGhlLU9wZW5IMjY0LUguMjYucGF0Y2ggYi8wMTAyLW9icy1mZm1wZWctQWRkLWluaXRpYWwt c3VwcG9ydC1mb3ItdGhlLU9wZW5IMjY0LUguMjYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNTE5YzVlYQotLS0gL2Rldi9udWxsCisrKyBiLzAxMDItb2JzLWZmbXBl Zy1BZGQtaW5pdGlhbC1zdXBwb3J0LWZvci10aGUtT3BlbkgyNjQtSC4yNi5wYXRjaApAQCAtMCww ICsxLDM0NiBAQAorRnJvbSA5MzlkYjhlZGNhODE2MWY0NTE4OTAwZTc1MDU1MTgxNGMyYzYwODhl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmVhbCBHb21wYSA8bmVhbEBnb21wYS5k ZXY+CitEYXRlOiBTdW4sIDI2IE1hciAyMDIzIDA2OjA2OjMxIC0wNDAwCitTdWJqZWN0OiBbUEFU Q0ggMTAyLzEwM10gb2JzLWZmbXBlZzogQWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIE9wZW5I MjY0CisgSC4yNjQgc29mdHdhcmUgY29kZWMKKworVGhpcyBhbGxvd3MgdXNlcnMgdG8gbGV2ZXJh Z2UgdGhlIE9wZW5IMjY0IGNvZGVjIGZyb20gQ2lzY28gdG8gZW5jb2RlCitILjI2NCB2aWRlbyBj b250ZW50LiBJdCBpcyBzaWduaWZpY2FudGx5IHJlZHVjZWQgaW4gY2FwYWJpbGl0eSBmcm9tCith bHRlcm5hdGl2ZXMsIGJ1dCBpdCBkb2VzIHRoZSBqb2IuCisKK1RoaXMgYWxzbyBwcm92aWRlcyBh IGZyYW1ld29yayBmb3IgYWRkaW5nIHN1cHBvcnQgZm9yIG90aGVyIEguMjY0Citzb2Z0d2FyZSBj b2RlY3MgcHJvdmlkZWQgdGhyb3VnaCBGRm1wZWcuCistLS0KKyBwbHVnaW5zL29icy1mZm1wZWcv Q01ha2VMaXN0cy50eHQgICAgICAgIHwgICAxICsKKyBwbHVnaW5zL29icy1mZm1wZWcvY21ha2Uv bGVnYWN5LmNtYWtlICAgIHwgICAxICsKKyBwbHVnaW5zL29icy1mZm1wZWcvZGF0YS9sb2NhbGUv ZW4tVVMuaW5pIHwgICAzICsKKyBwbHVnaW5zL29icy1mZm1wZWcvb2JzLWZmbXBlZy1oMjY0LmMg ICAgIHwgMjYwICsrKysrKysrKysrKysrKysrKysrKysrCisgcGx1Z2lucy9vYnMtZmZtcGVnL29i cy1mZm1wZWcuYyAgICAgICAgICB8ICAgMiArCisgNSBmaWxlcyBjaGFuZ2VkLCAyNjcgaW5zZXJ0 aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBwbHVnaW5zL29icy1mZm1wZWcvb2JzLWZmbXBl Zy1oMjY0LmMKKworZGlmZiAtLWdpdCBhL3BsdWdpbnMvb2JzLWZmbXBlZy9DTWFrZUxpc3RzLnR4 dCBiL3BsdWdpbnMvb2JzLWZmbXBlZy9DTWFrZUxpc3RzLnR4dAoraW5kZXggMDQ1MzBlZjM5Li5i NzdmNjM2NmYgMTAwNjQ0CistLS0gYS9wbHVnaW5zL29icy1mZm1wZWcvQ01ha2VMaXN0cy50eHQK KysrKyBiL3BsdWdpbnMvb2JzLWZmbXBlZy9DTWFrZUxpc3RzLnR4dAorQEAgLTM2LDYgKzM2LDcg QEAgdGFyZ2V0X3NvdXJjZXMoCisgICAgICAgICAgIG9icy1mZm1wZWctYXYxLmMKKyAgICAgICAg ICAgb2JzLWZmbXBlZy1jb21wYXQuaAorICAgICAgICAgICBvYnMtZmZtcGVnLWZvcm1hdHMuaAor KyAgICAgICAgICBvYnMtZmZtcGVnLWgyNjQuYworICAgICAgICAgICBvYnMtZmZtcGVnLWhscy1t dXguYworICAgICAgICAgICBvYnMtZmZtcGVnLW11eC5jCisgICAgICAgICAgIG9icy1mZm1wZWct bXV4LmgKK2RpZmYgLS1naXQgYS9wbHVnaW5zL29icy1mZm1wZWcvY21ha2UvbGVnYWN5LmNtYWtl IGIvcGx1Z2lucy9vYnMtZmZtcGVnL2NtYWtlL2xlZ2FjeS5jbWFrZQoraW5kZXggNGNjNzViMzQx Li5kMmUxMTk2NWQgMTAwNjQ0CistLS0gYS9wbHVnaW5zL29icy1mZm1wZWcvY21ha2UvbGVnYWN5 LmNtYWtlCisrKysgYi9wbHVnaW5zL29icy1mZm1wZWcvY21ha2UvbGVnYWN5LmNtYWtlCitAQCAt NDAsNiArNDAsNyBAQCB0YXJnZXRfc291cmNlcygKKyAgICAgICAgICAgb2JzLWZmbXBlZy12aWRl by1lbmNvZGVycy5jCisgICAgICAgICAgIG9icy1mZm1wZWctYXVkaW8tZW5jb2RlcnMuYworICAg ICAgICAgICBvYnMtZmZtcGVnLWF2MS5jCisrICAgICAgICAgIG9icy1mZm1wZWctaDI2NC5jCisg ICAgICAgICAgIG9icy1mZm1wZWctbnZlbmMuYworICAgICAgICAgICBvYnMtZmZtcGVnLW91dHB1 dC5jCisgICAgICAgICAgIG9icy1mZm1wZWctbXV4LmMKK2RpZmYgLS1naXQgYS9wbHVnaW5zL29i cy1mZm1wZWcvZGF0YS9sb2NhbGUvZW4tVVMuaW5pIGIvcGx1Z2lucy9vYnMtZmZtcGVnL2RhdGEv bG9jYWxlL2VuLVVTLmluaQoraW5kZXggOTY1MmJlMTYwLi5lMThlMzlmNWEgMTAwNjQ0CistLS0g YS9wbHVnaW5zL29icy1mZm1wZWcvZGF0YS9sb2NhbGUvZW4tVVMuaW5pCisrKysgYi9wbHVnaW5z L29icy1mZm1wZWcvZGF0YS9sb2NhbGUvZW4tVVMuaW5pCitAQCAtMTIwLDQgKzEyMCw3IEBAIE5W RU5DLkNoZWNrRHJpdmVycz0iVHJ5IGluc3RhbGxpbmcgdGhlIGxhdGVzdCA8YSBocmVmPVwiaHR0 cHM6Ly9vYnNwcm9qZWN0LmNvbS9nCisgCisgQVYxLjhiaXRVbnN1cHBvcnRlZEhkcj0iT0JTIGRv ZXMgbm90IHN1cHBvcnQgOC1iaXQgb3V0cHV0IG9mIFJlYy4gMjEwMC4iCisgCisrSDI2NC5VbnN1 cHBvcnRlZFZpZGVvRm9ybWF0PSJPbmx5IHZpZGVvIGZvcm1hdHMgdXNpbmcgOC1iaXQgY29sb3Ig YXJlIHN1cHBvcnRlZC4iCisrSDI2NC5VbnN1cHBvcnRlZENvbG9yU3BhY2U9Ik9ubHkgdGhlIFJl Yy4gNzA5IGNvbG9yIHNwYWNlIGlzIHN1cHBvcnRlZC4iCisrCisgUmVjb25uZWN0RGVsYXlUaW1l PSJSZWNvbm5lY3QgRGVsYXkiCitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vYnMtZmZtcGVnL29icy1m Zm1wZWctaDI2NC5jIGIvcGx1Z2lucy9vYnMtZmZtcGVnL29icy1mZm1wZWctaDI2NC5jCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwLi4xNzlhNjFjY2YKKy0tLSAvZGV2L251 bGwKKysrKyBiL3BsdWdpbnMvb2JzLWZmbXBlZy9vYnMtZmZtcGVnLWgyNjQuYworQEAgLTAsMCAr MSwyNjAgQEAKKysvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrICAgIENvcHlyaWdodCAoQykgMjAy MyBieSBOZWFsIEdvbXBhIDxuZWFsQGdvbXBhLmRldj4KKysgICAgUGFydGx5IGRlcml2ZWQgZnJv bSBvYnMtZmZtcGVnLWF2MS5jIGJ5IEh1Z2ggQmFpbGV5IDxvYnMuamltQGdtYWlsLmNvbT4KKysK KysgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICAgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysKKysgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworKworKyNpbmNsdWRlICJvYnMtZmZtcGVnLXZpZGVvLWVuY29kZXJz LmgiCisrCisrI2RlZmluZSBkb19sb2cobGV2ZWwsIGZvcm1hdCwgLi4uKSAgICAgICAgICAgICAg ICAgICBcCisrCWJsb2cobGV2ZWwsICJbSC4yNjQgZW5jb2RlcjogJyVzJ10gIiBmb3JtYXQsIFwK KysJICAgICBvYnNfZW5jb2Rlcl9nZXRfbmFtZShlbmMtPmZmdmUuZW5jb2RlciksICMjX19WQV9B UkdTX18pCisrCisrI2RlZmluZSBlcnJvcihmb3JtYXQsIC4uLikgZG9fbG9nKExPR19FUlJPUiwg Zm9ybWF0LCAjI19fVkFfQVJHU19fKQorKyNkZWZpbmUgd2Fybihmb3JtYXQsIC4uLikgZG9fbG9n KExPR19XQVJOSU5HLCBmb3JtYXQsICMjX19WQV9BUkdTX18pCisrI2RlZmluZSBpbmZvKGZvcm1h dCwgLi4uKSBkb19sb2coTE9HX0lORk8sIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXykKKysjZGVmaW5l IGRlYnVnKGZvcm1hdCwgLi4uKSBkb19sb2coTE9HX0RFQlVHLCBmb3JtYXQsICMjX19WQV9BUkdT X18pCisrCisrZW51bSBoMjY0X2VuY29kZXJfdHlwZSB7CisrCUgyNjRfRU5DT0RFUl9UWVBFX09I MjY0LAorK307CisrCisrc3RydWN0IGgyNjRfZW5jb2RlciB7CisrCXN0cnVjdCBmZm1wZWdfdmlk ZW9fZW5jb2RlciBmZnZlOworKwllbnVtIGgyNjRfZW5jb2Rlcl90eXBlIHR5cGU7CisrCisrCURB UlJBWSh1aW50OF90KSBoZWFkZXI7CisrfTsKKysKKytzdGF0aWMgY29uc3QgY2hhciAqb2gyNjRf Z2V0bmFtZSh2b2lkICp1bnVzZWQpCisreworKwlVTlVTRURfUEFSQU1FVEVSKHVudXNlZCk7Cisr CXJldHVybiAiT3BlbkgyNjQiOworK30KKysKKytzdGF0aWMgdm9pZCBoMjY0X3ZpZGVvX2luZm8o dm9pZCAqZGF0YSwgc3RydWN0IHZpZGVvX3NjYWxlX2luZm8gKmluZm8pCisreworKwlVTlVTRURf UEFSQU1FVEVSKGRhdGEpOworKworKwkvLyBPcGVuSDI2NCBvbmx5IHN1cHBvcnRzIEk0MjAKKysJ aW5mby0+Zm9ybWF0ID0gVklERU9fRk9STUFUX0k0MjA7CisrfQorKworK3N0YXRpYyBib29sIGgy NjRfdXBkYXRlKHN0cnVjdCBoMjY0X2VuY29kZXIgKmVuYywgb2JzX2RhdGFfdCAqc2V0dGluZ3Mp CisreworKwljb25zdCBjaGFyICpwcm9maWxlID0gb2JzX2RhdGFfZ2V0X3N0cmluZyhzZXR0aW5n cywgInByb2ZpbGUiKTsKKysJaW50IGJpdHJhdGUgPSAoaW50KW9ic19kYXRhX2dldF9pbnQoc2V0 dGluZ3MsICJiaXRyYXRlIik7CisrCWludCBrZXlpbnRfc2VjID0gMDsgICAgICAgICAgICAgIC8v IFRoaXMgaXMgbm90IHN1cHBvcnRlZCBieSBPcGVuSDI2NAorKwljb25zdCBjaGFyICpyY19tb2Rl ID0gInF1YWxpdHkiOyAvLyBXZSBvbmx5IHdhbnQgdG8gdXNlIHF1YWxpdHkgbW9kZQorKwlpbnQg YWxsb3dfc2tpcF9mcmFtZXMgPSAxOyAgICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciBxdWFs aXR5IG1vZGUKKysKKysJdmlkZW9fdCAqdmlkZW8gPSBvYnNfZW5jb2Rlcl92aWRlbyhlbmMtPmZm dmUuZW5jb2Rlcik7CisrCWNvbnN0IHN0cnVjdCB2aWRlb19vdXRwdXRfaW5mbyAqdm9pID0gdmlk ZW9fb3V0cHV0X2dldF9pbmZvKHZpZGVvKTsKKysJc3RydWN0IHZpZGVvX3NjYWxlX2luZm8gaW5m bzsKKysKKysJaW5mby5mb3JtYXQgPSB2b2ktPmZvcm1hdDsKKysJaW5mby5jb2xvcnNwYWNlID0g dm9pLT5jb2xvcnNwYWNlOworKwlpbmZvLnJhbmdlID0gdm9pLT5yYW5nZTsKKysKKysJZW5jLT5m ZnZlLmNvbnRleHQtPnRocmVhZF9jb3VudCA9IDA7CisrCisrCWgyNjRfdmlkZW9faW5mbyhlbmMs ICZpbmZvKTsKKysKKysJYXZfb3B0X3NldChlbmMtPmZmdmUuY29udGV4dC0+cHJpdl9kYXRhLCAi cmNfbW9kZSIsIHJjX21vZGUsIDApOworKwlhdl9vcHRfc2V0KGVuYy0+ZmZ2ZS5jb250ZXh0LT5w cml2X2RhdGEsICJwcm9maWxlIiwgcHJvZmlsZSwgMCk7CisrCWF2X29wdF9zZXRfaW50KGVuYy0+ ZmZ2ZS5jb250ZXh0LT5wcml2X2RhdGEsICJhbGxvd19za2lwX2ZyYW1lcyIsCisrCQkgICAgICAg YWxsb3dfc2tpcF9mcmFtZXMsIDApOworKworKwljb25zdCBjaGFyICpmZm1wZWdfb3B0cyA9IG9i c19kYXRhX2dldF9zdHJpbmcoc2V0dGluZ3MsICJmZm1wZWdfb3B0cyIpOworKwlmZm1wZWdfdmlk ZW9fZW5jb2Rlcl91cGRhdGUoJmVuYy0+ZmZ2ZSwgYml0cmF0ZSwga2V5aW50X3NlYywgdm9pLCAm aW5mbywKKysJCQkJICAgIGZmbXBlZ19vcHRzKTsKKysJaW5mbygic2V0dGluZ3M6XG4iCisrCSAg ICAgIlx0ZW5jb2RlcjogICAgICAlc1xuIgorKwkgICAgICJcdHJjX21vZGU6ICAgICAgJXNcbiIK KysJICAgICAiXHRiaXRyYXRlOiAgICAgICVkXG4iCisrCSAgICAgIlx0cHJvZmlsZTogICAgICAl c1xuIgorKwkgICAgICJcdHdpZHRoOiAgICAgICAgJWRcbiIKKysJICAgICAiXHRoZWlnaHQ6ICAg ICAgICVkXG4iCisrCSAgICAgIlx0ZmZtcGVnIG9wdHM6ICAlc1xuIiwKKysJICAgICBlbmMtPmZm dmUuZW5jX25hbWUsIHJjX21vZGUsIGJpdHJhdGUsIHByb2ZpbGUsCisrCSAgICAgZW5jLT5mZnZl LmNvbnRleHQtPndpZHRoLCBlbmMtPmZmdmUuaGVpZ2h0LCBmZm1wZWdfb3B0cyk7CisrCisrCWVu Yy0+ZmZ2ZS5jb250ZXh0LT5mbGFncyB8PSBBVl9DT0RFQ19GTEFHX0dMT0JBTF9IRUFERVI7Cisr CXJldHVybiBmZm1wZWdfdmlkZW9fZW5jb2Rlcl9pbml0X2NvZGVjKCZlbmMtPmZmdmUpOworK30K KysKKytzdGF0aWMgdm9pZCBoMjY0X2Rlc3Ryb3kodm9pZCAqZGF0YSkKKyt7CisrCXN0cnVjdCBo MjY0X2VuY29kZXIgKmVuYyA9IGRhdGE7CisrCisrCWZmbXBlZ192aWRlb19lbmNvZGVyX2ZyZWUo JmVuYy0+ZmZ2ZSk7CisrCWRhX2ZyZWUoZW5jLT5oZWFkZXIpOworKwliZnJlZShlbmMpOworK30K KysKKytzdGF0aWMgdm9pZCBvbl9maXJzdF9wYWNrZXQodm9pZCAqZGF0YSwgQVZQYWNrZXQgKnBr dCwgc3RydWN0IGRhcnJheSAqZGEpCisreworKwlzdHJ1Y3QgaDI2NF9lbmNvZGVyICplbmMgPSBk YXRhOworKworKwlkYV9jb3B5X2FycmF5KGVuYy0+aGVhZGVyLCBlbmMtPmZmdmUuY29udGV4dC0+ ZXh0cmFkYXRhLAorKwkJICAgICAgZW5jLT5mZnZlLmNvbnRleHQtPmV4dHJhZGF0YV9zaXplKTsK KysKKysJZGFycmF5X2NvcHlfYXJyYXkoMSwgZGEsIHBrdC0+ZGF0YSwgcGt0LT5zaXplKTsKKyt9 CisrCisrc3RhdGljIHZvaWQgKmgyNjRfY3JlYXRlX2ludGVybmFsKG9ic19kYXRhX3QgKnNldHRp bmdzLCBvYnNfZW5jb2Rlcl90ICplbmNvZGVyLAorKwkJCQkgIGNvbnN0IGNoYXIgKmVuY19saWIs IGNvbnN0IGNoYXIgKmVuY19uYW1lKQorK3sKKysJdmlkZW9fdCAqdmlkZW8gPSBvYnNfZW5jb2Rl cl92aWRlbyhlbmNvZGVyKTsKKysJY29uc3Qgc3RydWN0IHZpZGVvX291dHB1dF9pbmZvICp2b2kg PSB2aWRlb19vdXRwdXRfZ2V0X2luZm8odmlkZW8pOworKworKwlzd2l0Y2ggKHZvaS0+Zm9ybWF0 KSB7CisrCS8vIHBsYW5hciA0OjI6MCBmb3JtYXRzCisrCWNhc2UgVklERU9fRk9STUFUX0k0MjA6 IC8vIHRocmVlLXBsYW5lCisrCWNhc2UgVklERU9fRk9STUFUX05WMTI6IC8vIHR3by1wbGFuZSwg bHVtYSBhbmQgcGFja2VkIGNocm9tYQorKwkvLyBwYWNrZWQgNDoyOjIgZm9ybWF0cworKwljYXNl IFZJREVPX0ZPUk1BVF9ZVllVOgorKwljYXNlIFZJREVPX0ZPUk1BVF9ZVVkyOiAvLyBZVVlWCisr CWNhc2UgVklERU9fRk9STUFUX1VZVlk6CisrCS8vIHBhY2tlZCB1bmNvbXByZXNzZWQgZm9ybWF0 cworKwljYXNlIFZJREVPX0ZPUk1BVF9SR0JBOgorKwljYXNlIFZJREVPX0ZPUk1BVF9CR1JBOgor KwljYXNlIFZJREVPX0ZPUk1BVF9CR1JYOgorKwljYXNlIFZJREVPX0ZPUk1BVF9CR1IzOgorKwlj YXNlIFZJREVPX0ZPUk1BVF9ZODAwOiAvLyBncmF5c2NhbGUKKysJLy8gcGxhbmFyIDQ6NDo0Cisr CWNhc2UgVklERU9fRk9STUFUX0k0NDQ6CisrCS8vIHBsYW5hciA0OjI6MgorKwljYXNlIFZJREVP X0ZPUk1BVF9JNDIyOgorKwkvLyBwbGFuYXIgNDoyOjAgd2l0aCBhbHBoYQorKwljYXNlIFZJREVP X0ZPUk1BVF9JNDBBOgorKwkvLyBwbGFuYXIgNDoyOjIgd2l0aCBhbHBoYQorKwljYXNlIFZJREVP X0ZPUk1BVF9JNDJBOgorKwkvLyBwbGFuYXIgNDo0OjQgd2l0aCBhbHBoYQorKwljYXNlIFZJREVP X0ZPUk1BVF9ZVVZBOgorKwkvLyBwYWNrZWQgNDo0OjQgd2l0aCBhbHBoYQorKwljYXNlIFZJREVP X0ZPUk1BVF9BWVVWOgorKwkJYnJlYWs7CisrCWRlZmF1bHQ6OyAvLyBNYWtlIHRoZSBjb21waWxl ciBkbyB0aGUgcmlnaHQgdGhpbmcKKysJCWNvbnN0IGNoYXIgKmNvbnN0IHRleHQgPQorKwkJCW9i c19tb2R1bGVfdGV4dCgiSDI2NC5VbnN1cHBvcnRlZFZpZGVvRm9ybWF0Iik7CisrCQlvYnNfZW5j b2Rlcl9zZXRfbGFzdF9lcnJvcihlbmNvZGVyLCB0ZXh0KTsKKysJCWJsb2coTE9HX0VSUk9SLCAi W0guMjY0IGVuY29kZXJdICVzIiwgdGV4dCk7CisrCQlyZXR1cm4gTlVMTDsKKysJfQorKworKwlz d2l0Y2ggKHZvaS0+Y29sb3JzcGFjZSkgeworKwljYXNlIFZJREVPX0NTX0RFRkFVTFQ6CisrCWNh c2UgVklERU9fQ1NfNzA5OgorKwkJYnJlYWs7CisrCWRlZmF1bHQ6OyAvLyBNYWtlIHRoZSBjb21w aWxlciBkbyB0aGUgcmlnaHQgdGhpbmcKKysJCWNvbnN0IGNoYXIgKmNvbnN0IHRleHQgPQorKwkJ CW9ic19tb2R1bGVfdGV4dCgiSDI2NC5VbnN1cHBvcnRlZENvbG9yU3BhY2UiKTsKKysJCW9ic19l bmNvZGVyX3NldF9sYXN0X2Vycm9yKGVuY29kZXIsIHRleHQpOworKwkJYmxvZyhMT0dfRVJST1Is ICJbSC4yNjQgZW5jb2Rlcl0gJXMiLCB0ZXh0KTsKKysJCXJldHVybiBOVUxMOworKwl9CisrCisr CXN0cnVjdCBoMjY0X2VuY29kZXIgKmVuYyA9IGJ6YWxsb2Moc2l6ZW9mKCplbmMpKTsKKysKKysJ aWYgKHN0cmNtcChlbmNfbGliLCAibGlib3BlbmgyNjQiKSA9PSAwKQorKwkJZW5jLT50eXBlID0g SDI2NF9FTkNPREVSX1RZUEVfT0gyNjQ7CisrCisrCWlmICghZmZtcGVnX3ZpZGVvX2VuY29kZXJf aW5pdCgmZW5jLT5mZnZlLCBlbmMsIGVuY29kZXIsIGVuY19saWIsIE5VTEwsCisrCQkJCSAgICAg ICBlbmNfbmFtZSwgTlVMTCwgb25fZmlyc3RfcGFja2V0KSkKKysJCWdvdG8gZmFpbDsKKysJaWYg KCFoMjY0X3VwZGF0ZShlbmMsIHNldHRpbmdzKSkKKysJCWdvdG8gZmFpbDsKKysKKysJcmV0dXJu IGVuYzsKKysKKytmYWlsOgorKwloMjY0X2Rlc3Ryb3koZW5jKTsKKysJcmV0dXJuIE5VTEw7Cisr fQorKworK3N0YXRpYyB2b2lkICpvaDI2NF9jcmVhdGUob2JzX2RhdGFfdCAqc2V0dGluZ3MsIG9i c19lbmNvZGVyX3QgKmVuY29kZXIpCisreworKwlyZXR1cm4gaDI2NF9jcmVhdGVfaW50ZXJuYWwo c2V0dGluZ3MsIGVuY29kZXIsICJsaWJvcGVuaDI2NCIsCisrCQkJCSAgICAiT3BlbkgyNjQiKTsK Kyt9CisrCisrc3RhdGljIGJvb2wgaDI2NF9lbmNvZGUodm9pZCAqZGF0YSwgc3RydWN0IGVuY29k ZXJfZnJhbWUgKmZyYW1lLAorKwkJCXN0cnVjdCBlbmNvZGVyX3BhY2tldCAqcGFja2V0LCBib29s ICpyZWNlaXZlZF9wYWNrZXQpCisreworKwlzdHJ1Y3QgaDI2NF9lbmNvZGVyICplbmMgPSBkYXRh OworKwlyZXR1cm4gZmZtcGVnX3ZpZGVvX2VuY29kZSgmZW5jLT5mZnZlLCBmcmFtZSwgcGFja2V0 LCByZWNlaXZlZF9wYWNrZXQpOworK30KKysKKyt2b2lkIGgyNjRfZGVmYXVsdHMob2JzX2RhdGFf dCAqc2V0dGluZ3MpCisreworKwlvYnNfZGF0YV9zZXRfZGVmYXVsdF9pbnQoc2V0dGluZ3MsICJi aXRyYXRlIiwgMjUwMCk7CisrCW9ic19kYXRhX3NldF9kZWZhdWx0X3N0cmluZyhzZXR0aW5ncywg InByb2ZpbGUiLCAibWFpbiIpOworK30KKysKKytvYnNfcHJvcGVydGllc190ICpoMjY0X3Byb3Bl cnRpZXMoZW51bSBoMjY0X2VuY29kZXJfdHlwZSB0eXBlKQorK3sKKysJVU5VU0VEX1BBUkFNRVRF Uih0eXBlKTsgLy8gT25seSBvbmUgZW5jb2RlciByaWdodCBub3cuLi4KKysJb2JzX3Byb3BlcnRp ZXNfdCAqcHJvcHMgPSBvYnNfcHJvcGVydGllc19jcmVhdGUoKTsKKysJb2JzX3Byb3BlcnR5X3Qg KnA7CisrCisrCXAgPSBvYnNfcHJvcGVydGllc19hZGRfbGlzdChwcm9wcywgInByb2ZpbGUiLAor KwkJCQkgICAgb2JzX21vZHVsZV90ZXh0KCJQcm9maWxlIiksCisrCQkJCSAgICBPQlNfQ09NQk9f VFlQRV9MSVNULAorKwkJCQkgICAgT0JTX0NPTUJPX0ZPUk1BVF9TVFJJTkcpOworKwlvYnNfcHJv cGVydHlfbGlzdF9hZGRfc3RyaW5nKHAsICJjb25zdHJhaW5lZF9iYXNlbGluZSIsCisrCQkJCSAg ICAgImNvbnN0cmFpbmVkX2Jhc2VsaW5lIik7CisrCW9ic19wcm9wZXJ0eV9saXN0X2FkZF9zdHJp bmcocCwgIm1haW4iLCAibWFpbiIpOworKwlvYnNfcHJvcGVydHlfbGlzdF9hZGRfc3RyaW5nKHAs ICJoaWdoIiwgImhpZ2giKTsKKysKKysJcCA9IG9ic19wcm9wZXJ0aWVzX2FkZF9pbnQocHJvcHMs ICJiaXRyYXRlIiwgb2JzX21vZHVsZV90ZXh0KCJCaXRyYXRlIiksCisrCQkJCSAgIDUwLCAzMDAw MDAsIDUwKTsKKysJb2JzX3Byb3BlcnR5X2ludF9zZXRfc3VmZml4KHAsICIgS2JwcyIpOworKwor KwlvYnNfcHJvcGVydGllc19hZGRfdGV4dChwcm9wcywgImZmbXBlZ19vcHRzIiwKKysJCQkJb2Jz X21vZHVsZV90ZXh0KCJGRm1wZWdPcHRzIiksCisrCQkJCU9CU19URVhUX0RFRkFVTFQpOworKwor KwlyZXR1cm4gcHJvcHM7CisrfQorKworK29ic19wcm9wZXJ0aWVzX3QgKm9oMjY0X3Byb3BlcnRp ZXModm9pZCAqdW51c2VkKQorK3sKKysJVU5VU0VEX1BBUkFNRVRFUih1bnVzZWQpOworKwlyZXR1 cm4gaDI2NF9wcm9wZXJ0aWVzKEgyNjRfRU5DT0RFUl9UWVBFX09IMjY0KTsKKyt9CisrCisrc3Rh dGljIGJvb2wgaDI2NF9leHRyYV9kYXRhKHZvaWQgKmRhdGEsIHVpbnQ4X3QgKipleHRyYV9kYXRh LCBzaXplX3QgKnNpemUpCisreworKwlzdHJ1Y3QgaDI2NF9lbmNvZGVyICplbmMgPSBkYXRhOwor KworKwkqZXh0cmFfZGF0YSA9IGVuYy0+aGVhZGVyLmFycmF5OworKwkqc2l6ZSA9IGVuYy0+aGVh ZGVyLm51bTsKKysJcmV0dXJuIHRydWU7CisrfQorKworK3N0cnVjdCBvYnNfZW5jb2Rlcl9pbmZv IG9oMjY0X2VuY29kZXJfaW5mbyA9IHsKKysJLmlkID0gImZmbXBlZ19vcGVuaDI2NCIsCisrCS50 eXBlID0gT0JTX0VOQ09ERVJfVklERU8sCisrCS5jb2RlYyA9ICJoMjY0IiwKKysJLmdldF9uYW1l ID0gb2gyNjRfZ2V0bmFtZSwKKysJLmNyZWF0ZSA9IG9oMjY0X2NyZWF0ZSwKKysJLmRlc3Ryb3kg PSBoMjY0X2Rlc3Ryb3ksCisrCS5lbmNvZGUgPSBoMjY0X2VuY29kZSwKKysJLmdldF9kZWZhdWx0 cyA9IGgyNjRfZGVmYXVsdHMsCisrCS5nZXRfcHJvcGVydGllcyA9IG9oMjY0X3Byb3BlcnRpZXMs CisrCS5nZXRfZXh0cmFfZGF0YSA9IGgyNjRfZXh0cmFfZGF0YSwKKysJLmdldF92aWRlb19pbmZv ID0gaDI2NF92aWRlb19pbmZvLAorK307CitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vYnMtZmZtcGVn L29icy1mZm1wZWcuYyBiL3BsdWdpbnMvb2JzLWZmbXBlZy9vYnMtZmZtcGVnLmMKK2luZGV4IDdl YjlhODc2ZC4uZmNjZThlYzNiIDEwMDY0NAorLS0tIGEvcGx1Z2lucy9vYnMtZmZtcGVnL29icy1m Zm1wZWcuYworKysrIGIvcGx1Z2lucy9vYnMtZmZtcGVnL29icy1mZm1wZWcuYworQEAgLTM4LDYg KzM4LDcgQEAgZXh0ZXJuIHN0cnVjdCBvYnNfZW5jb2Rlcl9pbmZvIHBjbTI0X2VuY29kZXJfaW5m bzsKKyBleHRlcm4gc3RydWN0IG9ic19lbmNvZGVyX2luZm8gcGNtMzJfZW5jb2Rlcl9pbmZvOwor IGV4dGVybiBzdHJ1Y3Qgb2JzX2VuY29kZXJfaW5mbyBhbGFjX2VuY29kZXJfaW5mbzsKKyBleHRl cm4gc3RydWN0IG9ic19lbmNvZGVyX2luZm8gZmxhY19lbmNvZGVyX2luZm87CisrZXh0ZXJuIHN0 cnVjdCBvYnNfZW5jb2Rlcl9pbmZvIG9oMjY0X2VuY29kZXJfaW5mbzsKKyBleHRlcm4gc3RydWN0 IG9ic19lbmNvZGVyX2luZm8gaDI2NF9udmVuY19lbmNvZGVyX2luZm87CisgI2lmZGVmIEVOQUJM RV9IRVZDCisgZXh0ZXJuIHN0cnVjdCBvYnNfZW5jb2Rlcl9pbmZvIGhldmNfbnZlbmNfZW5jb2Rl cl9pbmZvOworQEAgLTM4Miw2ICszODMsNyBAQCBib29sIG9ic19tb2R1bGVfbG9hZCh2b2lkKQor IAlvYnNfcmVnaXN0ZXJfb3V0cHV0KCZmZm1wZWdfaGxzX211eGVyKTsKKyAJb2JzX3JlZ2lzdGVy X291dHB1dCgmcmVwbGF5X2J1ZmZlcik7CisgCW9ic19yZWdpc3Rlcl9lbmNvZGVyKCZhYWNfZW5j b2Rlcl9pbmZvKTsKKysJcmVnaXN0ZXJfZW5jb2Rlcl9pZl9hdmFpbGFibGUoJm9oMjY0X2VuY29k ZXJfaW5mbywgImxpYm9wZW5oMjY0Iik7CisgCXJlZ2lzdGVyX2VuY29kZXJfaWZfYXZhaWxhYmxl KCZzdnRfYXYxX2VuY29kZXJfaW5mbywgImxpYnN2dGF2MSIpOworIAlyZWdpc3Rlcl9lbmNvZGVy X2lmX2F2YWlsYWJsZSgmYW9tX2F2MV9lbmNvZGVyX2luZm8sICJsaWJhb20tYXYxIik7CisgCW9i c19yZWdpc3Rlcl9lbmNvZGVyKCZvcHVzX2VuY29kZXJfaW5mbyk7CistLSAKKzIuNDEuMAorCgpk aWZmIC0tZ2l0IGEvMDEwMy1VSS1BZGQtc3VwcG9ydC1mb3ItT3BlbkgyNjQtYXMtdGhlLXdvcnN0 LWNhc2UtZmFsbGJhLnBhdGNoIGIvMDEwMy1VSS1BZGQtc3VwcG9ydC1mb3ItT3BlbkgyNjQtYXMt dGhlLXdvcnN0LWNhc2UtZmFsbGJhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmM4YTMwNzQKLS0tIC9kZXYvbnVsbAorKysgYi8wMTAzLVVJLUFkZC1zdXBwb3J0LWZv ci1PcGVuSDI2NC1hcy10aGUtd29yc3QtY2FzZS1mYWxsYmEucGF0Y2gKQEAgLTAsMCArMSw1NDYg QEAKK0Zyb20gZjI2YzMyYjk3MTE3MjczNTUwYjlkZGRlYTAxYjViOTI2ODRjNjg4NiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5lYWwgR29tcGEgPG5lYWxAZ29tcGEuZGV2PgorRGF0 ZTogVHVlLCAyOCBNYXIgMjAyMyAwNTowODo0OSAtMDQwMAorU3ViamVjdDogW1BBVENIIDEwMy8x MDNdIFVJOiBBZGQgc3VwcG9ydCBmb3IgT3BlbkgyNjQgYXMgdGhlIHdvcnN0LWNhc2UKKyBmYWxs YmFjaworCitPcGVuSDI2NCBleGlzdHMgYXMgdGhlIGNvZGVjIG9mIGxhc3QgcmVzb3J0LCBzbyBp dCBpcyBpbXBsZW1lbnRlZAorc3VjaCB0aGF0IGl0IGlzIG9ubHkgdXNlZCBhcyB0aGUgc29mdHdh cmUgY29kZWMgaWYgeDI2NCBpcyBub3QKK2F2YWlsYWJsZS4KKy0tLQorIFVJL2RhdGEvbG9jYWxl L2VuLVVTLmluaSAgICAgICAgICAgICB8ICAxICsKKyBVSS93aW5kb3ctYmFzaWMtYXV0by1jb25m aWctdGVzdC5jcHAgfCA1MCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCisgVUkvd2luZG93 LWJhc2ljLWF1dG8tY29uZmlnLmNwcCAgICAgIHwgMTUgKysrKysrKystCisgVUkvd2luZG93LWJh c2ljLWF1dG8tY29uZmlnLmhwcCAgICAgIHwgIDMgKysKKyBVSS93aW5kb3ctYmFzaWMtbWFpbi1v dXRwdXRzLmNwcCAgICAgfCAgNiArKy0tCisgVUkvd2luZG93LWJhc2ljLW1haW4tcHJvZmlsZXMu Y3BwICAgIHwgMzQgKysrKysrKysrKystLS0tLS0tLQorIFVJL3dpbmRvdy1iYXNpYy1tYWluLmNw cCAgICAgICAgICAgICB8IDIwICsrKysrKystLS0tCisgVUkvd2luZG93LWJhc2ljLW1haW4uaHBw ICAgICAgICAgICAgIHwgIDMgKy0KKyBVSS93aW5kb3ctYmFzaWMtc2V0dGluZ3Mtc3RyZWFtLmNw cCAgfCAxNiArKysrKystLS0KKyBVSS93aW5kb3ctYmFzaWMtc2V0dGluZ3MuY3BwICAgICAgICAg fCAyMyArKysrKysrKysrLS0tCisgMTAgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyks IDQ4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvVUkvZGF0YS9sb2NhbGUvZW4tVVMuaW5p IGIvVUkvZGF0YS9sb2NhbGUvZW4tVVMuaW5pCitpbmRleCAzMzlhYzRkODYuLmZmOGM2NDlkYSAx MDA2NDQKKy0tLSBhL1VJL2RhdGEvbG9jYWxlL2VuLVVTLmluaQorKysrIGIvVUkvZGF0YS9sb2Nh bGUvZW4tVVMuaW5pCitAQCAtOTk2LDYgKzk5Niw3IEBAIEJhc2ljLlNldHRpbmdzLk91dHB1dC5T aW1wbGUuV2Fybi5FbmNvZGVyPSJXYXJuaW5nOiBSZWNvcmRpbmcgd2l0aCBhIHNvZnR3YXJlIGVu CisgQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5XYXJuLkxvc3NsZXNzPSJXYXJuaW5nOiBM b3NzbGVzcyBxdWFsaXR5IGdlbmVyYXRlcyB0cmVtZW5kb3VzbHkgbGFyZ2UgZmlsZSBzaXplcyEg TG9zc2xlc3MgcXVhbGl0eSBjYW4gdXNlIHVwd2FyZCBvZiA3IGdpZ2FieXRlcyBvZiBkaXNrIHNw YWNlIHBlciBtaW51dGUgYXQgaGlnaCByZXNvbHV0aW9ucyBhbmQgZnJhbWVyYXRlcy4gTG9zc2xl c3MgaXMgbm90IHJlY29tbWVuZGVkIGZvciBsb25nIHJlY29yZGluZ3MgdW5sZXNzIHlvdSBoYXZl IGEgdmVyeSBsYXJnZSBhbW91bnQgb2YgZGlzayBzcGFjZSBhdmFpbGFibGUuIgorIEJhc2ljLlNl dHRpbmdzLk91dHB1dC5TaW1wbGUuV2Fybi5Mb3NzbGVzcy5Nc2c9IkFyZSB5b3Ugc3VyZSB5b3Ug d2FudCB0byB1c2UgbG9zc2xlc3MgcXVhbGl0eT8iCisgQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNp bXBsZS5XYXJuLkxvc3NsZXNzLlRpdGxlPSJMb3NzbGVzcyBxdWFsaXR5IHdhcm5pbmchIgorK0Jh c2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5jb2Rlci5Tb2Z0d2FyZS5PcGVuSDI2NC5IMjY0 PSJTb2Z0d2FyZSAoT3BlbkgyNjQpIgorIEJhc2ljLlNldHRpbmdzLk91dHB1dC5TaW1wbGUuRW5j b2Rlci5Tb2Z0d2FyZS5YMjY0LkgyNjQ9IlNvZnR3YXJlICh4MjY0KSIKKyBCYXNpYy5TZXR0aW5n cy5PdXRwdXQuU2ltcGxlLkVuY29kZXIuSGFyZHdhcmUuUVNWLkgyNjQ9IkhhcmR3YXJlIChRU1Ys IEguMjY0KSIKKyBCYXNpYy5TZXR0aW5ncy5PdXRwdXQuU2ltcGxlLkVuY29kZXIuSGFyZHdhcmUu UVNWLkFWMT0iSGFyZHdhcmUgKFFTViwgQVYxKSIKK2RpZmYgLS1naXQgYS9VSS93aW5kb3ctYmFz aWMtYXV0by1jb25maWctdGVzdC5jcHAgYi9VSS93aW5kb3ctYmFzaWMtYXV0by1jb25maWctdGVz dC5jcHAKK2luZGV4IGE4YjVkODg0YS4uZTY4YTMzYmI1IDEwMDY0NAorLS0tIGEvVUkvd2luZG93 LWJhc2ljLWF1dG8tY29uZmlnLXRlc3QuY3BwCisrKysgYi9VSS93aW5kb3ctYmFzaWMtYXV0by1j b25maWctdGVzdC5jcHAKK0BAIC0xOTksNyArMTk5LDggQEAgdm9pZCBBdXRvQ29uZmlnVGVzdFBh Z2U6OlRlc3RCYW5kd2lkdGhUaHJlYWQoKQorIAkJCQkJCSAgIDogInJ0bXBfY29tbW9uIjsKKyAK KyAJT0JTRW5jb2RlckF1dG9SZWxlYXNlIHZlbmNvZGVyID0gb2JzX3ZpZGVvX2VuY29kZXJfY3Jl YXRlKAorLQkJIm9ic194MjY0IiwgInRlc3RfeDI2NCIsIG51bGxwdHIsIG51bGxwdHIpOworKwkJ KHdpei0+eDI2NEF2YWlsYWJsZSA/ICJvYnNfeDI2NCIgOiAiZmZtcGVnX29wZW5oMjY0IiksCisr CQkidGVzdF9oMjY0IiwgbnVsbHB0ciwgbnVsbHB0cik7CisgCU9CU0VuY29kZXJBdXRvUmVsZWFz ZSBhZW5jb2RlciA9IG9ic19hdWRpb19lbmNvZGVyX2NyZWF0ZSgKKyAJCSJmZm1wZWdfYWFjIiwg InRlc3RfYWFjIiwgbnVsbHB0ciwgMCwgbnVsbHB0cik7CisgCU9CU1NlcnZpY2VBdXRvUmVsZWFz ZSBzZXJ2aWNlID0gb2JzX3NlcnZpY2VfY3JlYXRlKAorQEAgLTIzOCwxMCArMjM5LDExIEBAIHZv aWQgQXV0b0NvbmZpZ1Rlc3RQYWdlOjpUZXN0QmFuZHdpZHRoVGhyZWFkKCkKKyAJb2JzX2RhdGFf c2V0X3N0cmluZyhzZXJ2aWNlX3NldHRpbmdzLCAia2V5Iiwga2V5LmNfc3RyKCkpOworIAorIAlv YnNfZGF0YV9zZXRfaW50KHZlbmNvZGVyX3NldHRpbmdzLCAiYml0cmF0ZSIsIHdpei0+c3RhcnRp bmdCaXRyYXRlKTsKKy0Jb2JzX2RhdGFfc2V0X3N0cmluZyh2ZW5jb2Rlcl9zZXR0aW5ncywgInJh dGVfY29udHJvbCIsICJDQlIiKTsKKy0Jb2JzX2RhdGFfc2V0X3N0cmluZyh2ZW5jb2Rlcl9zZXR0 aW5ncywgInByZXNldCIsICJ2ZXJ5ZmFzdCIpOworLQlvYnNfZGF0YV9zZXRfaW50KHZlbmNvZGVy X3NldHRpbmdzLCAia2V5aW50X3NlYyIsIDIpOworLQorKwlpZiAod2l6LT54MjY0QXZhaWxhYmxl KSB7CisrCQlvYnNfZGF0YV9zZXRfc3RyaW5nKHZlbmNvZGVyX3NldHRpbmdzLCAicmF0ZV9jb250 cm9sIiwgIkNCUiIpOworKwkJb2JzX2RhdGFfc2V0X3N0cmluZyh2ZW5jb2Rlcl9zZXR0aW5ncywg InByZXNldCIsICJ2ZXJ5ZmFzdCIpOworKwkJb2JzX2RhdGFfc2V0X2ludCh2ZW5jb2Rlcl9zZXR0 aW5ncywgImtleWludF9zZWMiLCAyKTsKKysJfQorIAlvYnNfZGF0YV9zZXRfaW50KGFlbmNvZGVy X3NldHRpbmdzLCAiYml0cmF0ZSIsIDMyKTsKKyAKKyAJT0JTQmFzaWMgKm1haW4gPSByZWludGVy cHJldF9jYXN0PE9CU0Jhc2ljICo+KEFwcCgpLT5HZXRNYWluV2luZG93KCkpOworQEAgLTU3NCw3 ICs1NzYsOCBAQCBib29sIEF1dG9Db25maWdUZXN0UGFnZTo6VGVzdFNvZnR3YXJlRW5jb2Rpbmco KQorIAkvKiBjcmVhdGUgb2JzIG9iamVjdHMgICAgICAgICAgICAgICAgICovCisgCisgCU9CU0Vu Y29kZXJBdXRvUmVsZWFzZSB2ZW5jb2RlciA9IG9ic192aWRlb19lbmNvZGVyX2NyZWF0ZSgKKy0J CSJvYnNfeDI2NCIsICJ0ZXN0X3gyNjQiLCBudWxscHRyLCBudWxscHRyKTsKKysJCSh3aXotPngy NjRBdmFpbGFibGUgPyAib2JzX3gyNjQiIDogImZmbXBlZ19vcGVuaDI2NCIpLAorKwkJInRlc3Rf aDI2NCIsIG51bGxwdHIsIG51bGxwdHIpOworIAlPQlNFbmNvZGVyQXV0b1JlbGVhc2UgYWVuY29k ZXIgPSBvYnNfYXVkaW9fZW5jb2Rlcl9jcmVhdGUoCisgCQkiZmZtcGVnX2FhYyIsICJ0ZXN0X2Fh YyIsIG51bGxwdHIsIDAsIG51bGxwdHIpOworIAlPQlNPdXRwdXRBdXRvUmVsZWFzZSBvdXRwdXQg PQorQEAgLTU4OCwxNyArNTkxLDI1IEBAIGJvb2wgQXV0b0NvbmZpZ1Rlc3RQYWdlOjpUZXN0U29m dHdhcmVFbmNvZGluZygpCisgCW9ic19kYXRhX3NldF9pbnQoYWVuY29kZXJfc2V0dGluZ3MsICJi aXRyYXRlIiwgMzIpOworIAorIAlpZiAod2l6LT50eXBlICE9IEF1dG9Db25maWc6OlR5cGU6OlJl Y29yZGluZykgeworLQkJb2JzX2RhdGFfc2V0X2ludCh2ZW5jb2Rlcl9zZXR0aW5ncywgImtleWlu dF9zZWMiLCAyKTsKKysJCWlmICh3aXotPngyNjRBdmFpbGFibGUpIHsKKysJCQlvYnNfZGF0YV9z ZXRfaW50KHZlbmNvZGVyX3NldHRpbmdzLCAia2V5aW50X3NlYyIsIDIpOworKwkJCW9ic19kYXRh X3NldF9zdHJpbmcodmVuY29kZXJfc2V0dGluZ3MsICJyYXRlX2NvbnRyb2wiLAorKwkJCQkJICAg ICJDQlIiKTsKKysJCQlvYnNfZGF0YV9zZXRfc3RyaW5nKHZlbmNvZGVyX3NldHRpbmdzLCAicHJl c2V0IiwKKysJCQkJCSAgICAidmVyeWZhc3QiKTsKKysJCX0KKyAJCW9ic19kYXRhX3NldF9pbnQo dmVuY29kZXJfc2V0dGluZ3MsICJiaXRyYXRlIiwKKyAJCQkJIHdpei0+aWRlYWxCaXRyYXRlKTsK Ky0JCW9ic19kYXRhX3NldF9zdHJpbmcodmVuY29kZXJfc2V0dGluZ3MsICJyYXRlX2NvbnRyb2wi LCAiQ0JSIik7CisgCQlvYnNfZGF0YV9zZXRfc3RyaW5nKHZlbmNvZGVyX3NldHRpbmdzLCAicHJv ZmlsZSIsICJtYWluIik7CistCQlvYnNfZGF0YV9zZXRfc3RyaW5nKHZlbmNvZGVyX3NldHRpbmdz LCAicHJlc2V0IiwgInZlcnlmYXN0Iik7CisgCX0gZWxzZSB7CistCQlvYnNfZGF0YV9zZXRfaW50 KHZlbmNvZGVyX3NldHRpbmdzLCAiY3JmIiwgMjApOworLQkJb2JzX2RhdGFfc2V0X3N0cmluZyh2 ZW5jb2Rlcl9zZXR0aW5ncywgInJhdGVfY29udHJvbCIsICJDUkYiKTsKKysJCWlmICh3aXotPngy NjRBdmFpbGFibGUpIHsKKysJCQlvYnNfZGF0YV9zZXRfaW50KHZlbmNvZGVyX3NldHRpbmdzLCAi Y3JmIiwgMjApOworKwkJCW9ic19kYXRhX3NldF9zdHJpbmcodmVuY29kZXJfc2V0dGluZ3MsICJy YXRlX2NvbnRyb2wiLAorKwkJCQkJICAgICJDUkYiKTsKKysJCQlvYnNfZGF0YV9zZXRfc3RyaW5n KHZlbmNvZGVyX3NldHRpbmdzLCAicHJlc2V0IiwKKysJCQkJCSAgICAidmVyeWZhc3QiKTsKKysJ CX0KKyAJCW9ic19kYXRhX3NldF9zdHJpbmcodmVuY29kZXJfc2V0dGluZ3MsICJwcm9maWxlIiwg ImhpZ2giKTsKKy0JCW9ic19kYXRhX3NldF9zdHJpbmcodmVuY29kZXJfc2V0dGluZ3MsICJwcmVz ZXQiLCAidmVyeWZhc3QiKTsKKyAJfQorIAorIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSovCitAQCAtOTUxLDcgKzk2MiwxMCBAQCB2b2lkIEF1dG9Db25maWdUZXN0UGFn ZTo6VGVzdFN0cmVhbUVuY29kZXJUaHJlYWQoKQorIAkJZWxzZQorIAkJCXdpei0+c3RyZWFtaW5n RW5jb2RlciA9IEF1dG9Db25maWc6OkVuY29kZXI6OkFNRDsKKyAJfSBlbHNlIHsKKy0JCXdpei0+ c3RyZWFtaW5nRW5jb2RlciA9IEF1dG9Db25maWc6OkVuY29kZXI6OngyNjQ7CisrCQlpZiAod2l6 LT54MjY0QXZhaWxhYmxlKQorKwkJCXdpei0+c3RyZWFtaW5nRW5jb2RlciA9IEF1dG9Db25maWc6 OkVuY29kZXI6OngyNjQ7CisrCQllbHNlCisrCQkJd2l6LT5zdHJlYW1pbmdFbmNvZGVyID0gQXV0 b0NvbmZpZzo6RW5jb2Rlcjo6T3BlbkgyNjQ7CisgCX0KKyAKKyAjaWZkZWYgX19saW51eF9fCitA QCAtOTk2LDcgKzEwMTAsMTAgQEAgdm9pZCBBdXRvQ29uZmlnVGVzdFBhZ2U6OlRlc3RSZWNvcmRp bmdFbmNvZGVyVGhyZWFkKCkKKyAJCWVsc2UKKyAJCQl3aXotPnJlY29yZGluZ0VuY29kZXIgPSBB dXRvQ29uZmlnOjpFbmNvZGVyOjpBTUQ7CisgCX0gZWxzZSB7CistCQl3aXotPnJlY29yZGluZ0Vu Y29kZXIgPSBBdXRvQ29uZmlnOjpFbmNvZGVyOjp4MjY0OworKwkJaWYgKHdpei0+eDI2NEF2YWls YWJsZSkKKysJCQl3aXotPnN0cmVhbWluZ0VuY29kZXIgPSBBdXRvQ29uZmlnOjpFbmNvZGVyOjp4 MjY0OworKwkJZWxzZQorKwkJCXdpei0+c3RyZWFtaW5nRW5jb2RlciA9IEF1dG9Db25maWc6OkVu Y29kZXI6Ok9wZW5IMjY0OworIAl9CisgCisgCWlmICh3aXotPnJlY29yZGluZ0VuY29kZXIgIT0g QXV0b0NvbmZpZzo6RW5jb2Rlcjo6TlZFTkMpIHsKK0BAIC0xMDEwLDYgKzEwMjcsNyBAQCB2b2lk IEF1dG9Db25maWdUZXN0UGFnZTo6VGVzdFJlY29yZGluZ0VuY29kZXJUaHJlYWQoKQorIH0KKyAK KyAjZGVmaW5lIEVOQ09ERVJfVEVYVCh4KSAiQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5F bmNvZGVyLiIgeAorKyNkZWZpbmUgRU5DT0RFUl9PUEVOSDI2NCBFTkNPREVSX1RFWFQoIlNvZnR3 YXJlLk9wZW5IMjY0LkgyNjQiKQorICNkZWZpbmUgRU5DT0RFUl9YMjY0IEVOQ09ERVJfVEVYVCgi U29mdHdhcmUuWDI2NC5IMjY0IikKKyAjZGVmaW5lIEVOQ09ERVJfTlZFTkMgRU5DT0RFUl9URVhU KCJIYXJkd2FyZS5OVkVOQy5IMjY0IikKKyAjZGVmaW5lIEVOQ09ERVJfUVNWIEVOQ09ERVJfVEVY VCgiSGFyZHdhcmUuUVNWLkgyNjQiKQorQEAgLTEwNDksNiArMTA2Nyw4IEBAIHZvaWQgQXV0b0Nv bmZpZ1Rlc3RQYWdlOjpGaW5hbGl6ZVJlc3VsdHMoKQorIAorIAlhdXRvIGVuY05hbWUgPSBbXShB dXRvQ29uZmlnOjpFbmNvZGVyIGVuYykgLT4gUVN0cmluZyB7CisgCQlzd2l0Y2ggKGVuYykgewor KwkJY2FzZSBBdXRvQ29uZmlnOjpFbmNvZGVyOjpPcGVuSDI2NDoKKysJCQlyZXR1cm4gUVRTdHIo RU5DT0RFUl9PUEVOSDI2NCk7CisgCQljYXNlIEF1dG9Db25maWc6OkVuY29kZXI6OngyNjQ6Cisg CQkJcmV0dXJuIFFUU3RyKEVOQ09ERVJfWDI2NCk7CisgCQljYXNlIEF1dG9Db25maWc6OkVuY29k ZXI6Ok5WRU5DOgorQEAgLTEwNjMsNyArMTA4Myw3IEBAIHZvaWQgQXV0b0NvbmZpZ1Rlc3RQYWdl OjpGaW5hbGl6ZVJlc3VsdHMoKQorIAkJCXJldHVybiBRVFN0cihRVUFMSVRZX1NBTUUpOworIAkJ fQorIAorLQkJcmV0dXJuIFFUU3RyKEVOQ09ERVJfWDI2NCk7CisrCQlyZXR1cm4gUVRTdHIoRU5D T0RFUl9PUEVOSDI2NCk7CisgCX07CisgCisgCWF1dG8gbmV3TGFiZWwgPSBbdGhpc10oY29uc3Qg Y2hhciAqc3RyKSAtPiBRTGFiZWwgKiB7CitkaWZmIC0tZ2l0IGEvVUkvd2luZG93LWJhc2ljLWF1 dG8tY29uZmlnLmNwcCBiL1VJL3dpbmRvdy1iYXNpYy1hdXRvLWNvbmZpZy5jcHAKK2luZGV4IGQ4 ZGRiZmE0NC4uNDcwN2E1NjQ0IDEwMDY0NAorLS0tIGEvVUkvd2luZG93LWJhc2ljLWF1dG8tY29u ZmlnLmNwcAorKysrIGIvVUkvd2luZG93LWJhc2ljLWF1dG8tY29uZmlnLmNwcAorQEAgLTk3OSw2 ICs5NzksNyBAQCBBdXRvQ29uZmlnOjpBdXRvQ29uZmlnKFFXaWRnZXQgKnBhcmVudCkgOiBRV2l6 YXJkKHBhcmVudCkKKyAJc3RyZWFtUGFnZS0+dWktPmJpdHJhdGUtPnNldFZhbHVlKGJpdHJhdGUp OworIAlzdHJlYW1QYWdlLT5TZXJ2aWNlQ2hhbmdlZCgpOworIAorKwlUZXN0U29mdHdhcmVFbmNv ZGluZygpOworIAlUZXN0SGFyZHdhcmVFbmNvZGluZygpOworIAlpZiAoIWhhcmR3YXJlRW5jb2Rp bmdBdmFpbGFibGUpIHsKKyAJCWRlbGV0ZSBzdHJlYW1QYWdlLT51aS0+cHJlZmVySGFyZHdhcmU7 CitAQCAtMTAwNyw2ICsxMDA4LDE2IEBAIEF1dG9Db25maWc6On5BdXRvQ29uZmlnKCkKKyAJRW5h YmxlVGhyZWFkZWRNZXNzYWdlQm94ZXMoZmFsc2UpOworIH0KKyAKKyt2b2lkIEF1dG9Db25maWc6 OlRlc3RTb2Z0d2FyZUVuY29kaW5nKCkKKyt7CisrCXNpemVfdCBpZHggPSAwOworKwljb25zdCBj aGFyICppZDsKKysJd2hpbGUgKG9ic19lbnVtX2VuY29kZXJfdHlwZXMoaWR4KyssICZpZCkpIHsK KysJCWlmIChzdHJjbXAoaWQsICJvYnNfeDI2NCIpID09IDApCisrCQkJeDI2NEF2YWlsYWJsZSA9 IHRydWU7CisrCX0KKyt9CisrCisgdm9pZCBBdXRvQ29uZmlnOjpUZXN0SGFyZHdhcmVFbmNvZGlu ZygpCisgeworIAlzaXplX3QgaWR4ID0gMDsKK0BAIC0xMDg2LDggKzEwOTcsMTAgQEAgaW5saW5l IGNvbnN0IGNoYXIgKkF1dG9Db25maWc6OkdldEVuY29kZXJJZChFbmNvZGVyIGVuYykKKyAJCXJl dHVybiBTSU1QTEVfRU5DT0RFUl9BTUQ7CisgCWNhc2UgRW5jb2Rlcjo6QXBwbGU6CisgCQlyZXR1 cm4gU0lNUExFX0VOQ09ERVJfQVBQTEVfSDI2NDsKKy0JZGVmYXVsdDoKKysJY2FzZSBFbmNvZGVy Ojp4MjY0OgorIAkJcmV0dXJuIFNJTVBMRV9FTkNPREVSX1gyNjQ7CisrCWRlZmF1bHQ6CisrCQly ZXR1cm4gU0lNUExFX0VOQ09ERVJfT1BFTkgyNjQ7CisgCX0KKyB9OworIAorZGlmZiAtLWdpdCBh L1VJL3dpbmRvdy1iYXNpYy1hdXRvLWNvbmZpZy5ocHAgYi9VSS93aW5kb3ctYmFzaWMtYXV0by1j b25maWcuaHBwCitpbmRleCA1ZDk2NmM3OTUuLmMxN2UzMmE4NSAxMDA2NDQKKy0tLSBhL1VJL3dp bmRvdy1iYXNpYy1hdXRvLWNvbmZpZy5ocHAKKysrKyBiL1VJL3dpbmRvdy1iYXNpYy1hdXRvLWNv bmZpZy5ocHAKK0BAIC00Myw2ICs0Myw3IEBAIGNsYXNzIEF1dG9Db25maWcgOiBwdWJsaWMgUVdp emFyZCB7CisgCX07CisgCisgCWVudW0gY2xhc3MgRW5jb2RlciB7CisrCQlPcGVuSDI2NCwKKyAJ CXgyNjQsCisgCQlOVkVOQywKKyAJCVFTViwKK0BAIC05MSw2ICs5Miw3IEBAIGNsYXNzIEF1dG9D b25maWcgOiBwdWJsaWMgUVdpemFyZCB7CisgCWJvb2wgcXN2QXZhaWxhYmxlID0gZmFsc2U7Cisg CWJvb2wgdmNlQXZhaWxhYmxlID0gZmFsc2U7CisgCWJvb2wgYXBwbGVBdmFpbGFibGUgPSBmYWxz ZTsKKysJYm9vbCB4MjY0QXZhaWxhYmxlID0gZmFsc2U7CisgCisgCWludCBzdGFydGluZ0JpdHJh dGUgPSAyNTAwOworIAlib29sIGN1c3RvbVNlcnZlciA9IGZhbHNlOworQEAgLTEwNiw2ICsxMDgs NyBAQCBjbGFzcyBBdXRvQ29uZmlnIDogcHVibGljIFFXaXphcmQgeworIAlpbnQgc3BlY2lmaWNG UFNOdW0gPSAwOworIAlpbnQgc3BlY2lmaWNGUFNEZW4gPSAwOworIAorKwl2b2lkIFRlc3RTb2Z0 d2FyZUVuY29kaW5nKCk7CisgCXZvaWQgVGVzdEhhcmR3YXJlRW5jb2RpbmcoKTsKKyAJYm9vbCBD YW5UZXN0U2VydmVyKGNvbnN0IGNoYXIgKnNlcnZlcik7CisgCitkaWZmIC0tZ2l0IGEvVUkvd2lu ZG93LWJhc2ljLW1haW4tb3V0cHV0cy5jcHAgYi9VSS93aW5kb3ctYmFzaWMtbWFpbi1vdXRwdXRz LmNwcAoraW5kZXggYTI4M2QwZmNjLi40YjNmMjUzNzEgMTAwNjQ0CistLS0gYS9VSS93aW5kb3ct YmFzaWMtbWFpbi1vdXRwdXRzLmNwcAorKysrIGIvVUkvd2luZG93LWJhc2ljLW1haW4tb3V0cHV0 cy5jcHAKK0BAIC01NDcsNyArNTQ3LDkgQEAgdm9pZCBTaW1wbGVPdXRwdXQ6OkxvYWRTdHJlYW1p bmdQcmVzZXRfTG9zc3koY29uc3QgY2hhciAqZW5jb2RlcklkKQorIC8qIG1pc3Rha2VzIGhhdmUg YmVlbiBtYWRlIHRvIGxlYWQgdXMgdG8gdGhpcy4gKi8KKyBjb25zdCBjaGFyICpnZXRfc2ltcGxl X291dHB1dF9lbmNvZGVyKGNvbnN0IGNoYXIgKmVuY29kZXIpCisgeworLQlpZiAoc3RyY21wKGVu Y29kZXIsIFNJTVBMRV9FTkNPREVSX1gyNjQpID09IDApIHsKKysJaWYgKHN0cmNtcChlbmNvZGVy LCBTSU1QTEVfRU5DT0RFUl9PUEVOSDI2NCkgPT0gMCkgeworKwkJcmV0dXJuICJmZm1wZWdfb3Bl bmgyNjQiOworKwl9IGVsc2UgaWYgKHN0cmNtcChlbmNvZGVyLCBTSU1QTEVfRU5DT0RFUl9YMjY0 KSA9PSAwKSB7CisgCQlyZXR1cm4gIm9ic194MjY0IjsKKyAJfSBlbHNlIGlmIChzdHJjbXAoZW5j b2RlciwgU0lNUExFX0VOQ09ERVJfWDI2NF9MT1dDUFUpID09IDApIHsKKyAJCXJldHVybiAib2Jz X3gyNjQiOworQEAgLTU4MSw3ICs1ODMsNyBAQCBjb25zdCBjaGFyICpnZXRfc2ltcGxlX291dHB1 dF9lbmNvZGVyKGNvbnN0IGNoYXIgKmVuY29kZXIpCisgI2VuZGlmCisgCX0KKyAKKy0JcmV0dXJu ICJvYnNfeDI2NCI7CisrCXJldHVybiAiZmZtcGVnX29wZW5oMjY0IjsKKyB9CisgCisgdm9pZCBT aW1wbGVPdXRwdXQ6OkxvYWRSZWNvcmRpbmdQcmVzZXQoKQorZGlmZiAtLWdpdCBhL1VJL3dpbmRv dy1iYXNpYy1tYWluLXByb2ZpbGVzLmNwcCBiL1VJL3dpbmRvdy1iYXNpYy1tYWluLXByb2ZpbGVz LmNwcAoraW5kZXggZjlkM2Y0ZWExLi4yNzg5OWVmYzQgMTAwNjQ0CistLS0gYS9VSS93aW5kb3ct YmFzaWMtbWFpbi1wcm9maWxlcy5jcHAKKysrKyBiL1VJL3dpbmRvdy1iYXNpYy1tYWluLXByb2Zp bGVzLmNwcAorQEAgLTgwNiw3ICs4MDYsNyBAQCB2b2lkIE9CU0Jhc2ljOjpDaGFuZ2VQcm9maWxl KCkKKyAJCU5ld1lvdVR1YmVBcHBEb2NrKCk7CisgI2VuZGlmCisgCistCUNoZWNrRm9yU2ltcGxl TW9kZVgyNjRGYWxsYmFjaygpOworKwlDaGVja0ZvclNpbXBsZU1vZGVIMjY0RmFsbGJhY2soKTsK KyAKKyAJYmxvZyhMT0dfSU5GTywgIlN3aXRjaGVkIHRvIHByb2ZpbGUgJyVzJyAoJXMpIiwgbmV3 TmFtZSwgbmV3RGlyKTsKKyAJYmxvZyhMT0dfSU5GTywgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOworQEAgLTgyNywxMiArODI3LDEzIEBAIHZvaWQg T0JTQmFzaWM6OkNoYW5nZVByb2ZpbGUoKQorIAl9CisgfQorIAorLXZvaWQgT0JTQmFzaWM6OkNo ZWNrRm9yU2ltcGxlTW9kZVgyNjRGYWxsYmFjaygpCisrdm9pZCBPQlNCYXNpYzo6Q2hlY2tGb3JT aW1wbGVNb2RlSDI2NEZhbGxiYWNrKCkKKyB7CisgCWNvbnN0IGNoYXIgKmN1clN0cmVhbUVuY29k ZXIgPQorIAkJY29uZmlnX2dldF9zdHJpbmcoYmFzaWNDb25maWcsICJTaW1wbGVPdXRwdXQiLCAi U3RyZWFtRW5jb2RlciIpOworIAljb25zdCBjaGFyICpjdXJSZWNFbmNvZGVyID0KKyAJCWNvbmZp Z19nZXRfc3RyaW5nKGJhc2ljQ29uZmlnLCAiU2ltcGxlT3V0cHV0IiwgIlJlY0VuY29kZXIiKTsK KysJYm9vbCB4MjY0X3N1cHBvcnRlZCA9IGZhbHNlOworIAlib29sIHFzdl9zdXBwb3J0ZWQgPSBm YWxzZTsKKyAJYm9vbCBxc3ZfYXYxX3N1cHBvcnRlZCA9IGZhbHNlOworIAlib29sIGFtZF9zdXBw b3J0ZWQgPSBmYWxzZTsKK0BAIC04NDksNyArODUwLDkgQEAgdm9pZCBPQlNCYXNpYzo6Q2hlY2tG b3JTaW1wbGVNb2RlWDI2NEZhbGxiYWNrKCkKKyAJY29uc3QgY2hhciAqaWQ7CisgCisgCXdoaWxl IChvYnNfZW51bV9lbmNvZGVyX3R5cGVzKGlkeCsrLCAmaWQpKSB7CistCQlpZiAoc3RyY21wKGlk LCAiaDI2NF90ZXh0dXJlX2FtZiIpID09IDApCisrCQlpZiAoc3RyY21wKGlkLCAib2JzX3gyNjQi KSA9PSAwKQorKwkJCXgyNjRfc3VwcG9ydGVkID0gdHJ1ZTsKKysJCWVsc2UgaWYgKHN0cmNtcChp ZCwgImgyNjRfdGV4dHVyZV9hbWYiKSA9PSAwKQorIAkJCWFtZF9zdXBwb3J0ZWQgPSB0cnVlOwor IAkJZWxzZSBpZiAoc3RyY21wKGlkLCAib2JzX3FzdjExIikgPT0gMCkKKyAJCQlxc3Zfc3VwcG9y dGVkID0gdHJ1ZTsKK0BAIC04NzcsNjggKzg4MCw3MyBAQCB2b2lkIE9CU0Jhc2ljOjpDaGVja0Zv clNpbXBsZU1vZGVYMjY0RmFsbGJhY2soKQorICNlbmRpZgorIAl9CisgCisrCS8vIENoZWNrIHRv IHNlZSB3aGV0aGVyIHgyNjQgaXMgYXZhaWxhYmxlCisrCWNvbnN0IGNoYXIgKmZhbGxiYWNrX2Vu Y29kZXJfbmFtZSA9ICh4MjY0X3N1cHBvcnRlZAorKwkJCQkJCSAgICAgPyBTSU1QTEVfRU5DT0RF Ul9YMjY0CisrCQkJCQkJICAgICA6IFNJTVBMRV9FTkNPREVSX09QRU5IMjY0KTsKKysKKyAJYXV0 byBDaGVja0VuY29kZXIgPSBbJl0oY29uc3QgY2hhciAqJm5hbWUpIHsKKyAJCWlmIChzdHJjbXAo bmFtZSwgU0lNUExFX0VOQ09ERVJfUVNWKSA9PSAwKSB7CisgCQkJaWYgKCFxc3Zfc3VwcG9ydGVk KSB7CisgCQkJCWNoYW5nZWQgPSB0cnVlOworLQkJCQluYW1lID0gU0lNUExFX0VOQ09ERVJfWDI2 NDsKKysJCQkJbmFtZSA9IGZhbGxiYWNrX2VuY29kZXJfbmFtZTsKKyAJCQkJcmV0dXJuIGZhbHNl OworIAkJCX0KKyAJCX0gZWxzZSBpZiAoc3RyY21wKG5hbWUsIFNJTVBMRV9FTkNPREVSX1FTVl9B VjEpID09IDApIHsKKyAJCQlpZiAoIXFzdl9hdjFfc3VwcG9ydGVkKSB7CisgCQkJCWNoYW5nZWQg PSB0cnVlOworLQkJCQluYW1lID0gU0lNUExFX0VOQ09ERVJfWDI2NDsKKysJCQkJbmFtZSA9IGZh bGxiYWNrX2VuY29kZXJfbmFtZTsKKyAJCQkJcmV0dXJuIGZhbHNlOworIAkJCX0KKyAJCX0gZWxz ZSBpZiAoc3RyY21wKG5hbWUsIFNJTVBMRV9FTkNPREVSX05WRU5DKSA9PSAwKSB7CisgCQkJaWYg KCFudmVfc3VwcG9ydGVkKSB7CisgCQkJCWNoYW5nZWQgPSB0cnVlOworLQkJCQluYW1lID0gU0lN UExFX0VOQ09ERVJfWDI2NDsKKysJCQkJbmFtZSA9IGZhbGxiYWNrX2VuY29kZXJfbmFtZTsKKyAJ CQkJcmV0dXJuIGZhbHNlOworIAkJCX0KKyAJCX0gZWxzZSBpZiAoc3RyY21wKG5hbWUsIFNJTVBM RV9FTkNPREVSX05WRU5DX0FWMSkgPT0gMCkgeworIAkJCWlmICghbnZlX3N1cHBvcnRlZCkgewor IAkJCQljaGFuZ2VkID0gdHJ1ZTsKKy0JCQkJbmFtZSA9IFNJTVBMRV9FTkNPREVSX1gyNjQ7Cisr CQkJCW5hbWUgPSBmYWxsYmFja19lbmNvZGVyX25hbWU7CisgCQkJCXJldHVybiBmYWxzZTsKKyAJ CQl9CisgI2lmZGVmIEVOQUJMRV9IRVZDCisgCQl9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCBTSU1Q TEVfRU5DT0RFUl9BTURfSEVWQykgPT0gMCkgeworIAkJCWlmICghYW1kX2hldmNfc3VwcG9ydGVk KSB7CisgCQkJCWNoYW5nZWQgPSB0cnVlOworLQkJCQluYW1lID0gU0lNUExFX0VOQ09ERVJfWDI2 NDsKKysJCQkJbmFtZSA9IGZhbGxiYWNrX2VuY29kZXJfbmFtZTsKKyAJCQkJcmV0dXJuIGZhbHNl OworIAkJCX0KKyAJCX0gZWxzZSBpZiAoc3RyY21wKG5hbWUsIFNJTVBMRV9FTkNPREVSX05WRU5D X0hFVkMpID09IDApIHsKKyAJCQlpZiAoIW52ZV9oZXZjX3N1cHBvcnRlZCkgeworIAkJCQljaGFu Z2VkID0gdHJ1ZTsKKy0JCQkJbmFtZSA9IFNJTVBMRV9FTkNPREVSX1gyNjQ7CisrCQkJCW5hbWUg PSBmYWxsYmFja19lbmNvZGVyX25hbWU7CisgCQkJCXJldHVybiBmYWxzZTsKKyAJCQl9CisgI2Vu ZGlmCisgCQl9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCBTSU1QTEVfRU5DT0RFUl9BTUQpID09IDAp IHsKKyAJCQlpZiAoIWFtZF9zdXBwb3J0ZWQpIHsKKyAJCQkJY2hhbmdlZCA9IHRydWU7CistCQkJ CW5hbWUgPSBTSU1QTEVfRU5DT0RFUl9YMjY0OworKwkJCQluYW1lID0gZmFsbGJhY2tfZW5jb2Rl cl9uYW1lOworIAkJCQlyZXR1cm4gZmFsc2U7CisgCQkJfQorIAkJfSBlbHNlIGlmIChzdHJjbXAo bmFtZSwgU0lNUExFX0VOQ09ERVJfQU1EX0FWMSkgPT0gMCkgeworIAkJCWlmICghYW1kX2F2MV9z dXBwb3J0ZWQpIHsKKyAJCQkJY2hhbmdlZCA9IHRydWU7CistCQkJCW5hbWUgPSBTSU1QTEVfRU5D T0RFUl9YMjY0OworKwkJCQluYW1lID0gZmFsbGJhY2tfZW5jb2Rlcl9uYW1lOworIAkJCQlyZXR1 cm4gZmFsc2U7CisgCQkJfQorIAkJfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgU0lNUExFX0VOQ09E RVJfQVBQTEVfSDI2NCkgPT0gMCkgeworIAkJCWlmICghYXBwbGVfc3VwcG9ydGVkKSB7CisgCQkJ CWNoYW5nZWQgPSB0cnVlOworLQkJCQluYW1lID0gU0lNUExFX0VOQ09ERVJfWDI2NDsKKysJCQkJ bmFtZSA9IGZhbGxiYWNrX2VuY29kZXJfbmFtZTsKKyAJCQkJcmV0dXJuIGZhbHNlOworIAkJCX0K KyAjaWZkZWYgRU5BQkxFX0hFVkMKKyAJCX0gZWxzZSBpZiAoc3RyY21wKG5hbWUsIFNJTVBMRV9F TkNPREVSX0FQUExFX0hFVkMpID09IDApIHsKKyAJCQlpZiAoIWFwcGxlX2hldmNfc3VwcG9ydGVk KSB7CisgCQkJCWNoYW5nZWQgPSB0cnVlOworLQkJCQluYW1lID0gU0lNUExFX0VOQ09ERVJfWDI2 NDsKKysJCQkJbmFtZSA9IGZhbGxiYWNrX2VuY29kZXJfbmFtZTsKKyAJCQkJcmV0dXJuIGZhbHNl OworIAkJCX0KKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9VSS93aW5kb3ctYmFzaWMtbWFpbi5jcHAg Yi9VSS93aW5kb3ctYmFzaWMtbWFpbi5jcHAKK2luZGV4IDk0M2U4Y2FjMS4uMDkyNTFkZTc1IDEw MDY0NAorLS0tIGEvVUkvd2luZG93LWJhc2ljLW1haW4uY3BwCisrKysgYi9VSS93aW5kb3ctYmFz aWMtbWFpbi5jcHAKK0BAIC0xNDQ5LDYgKzE0NDksOCBAQCBleHRlcm4gdm9pZCBDaGVja0V4aXN0 aW5nQ29va2llSWQoKTsKKyAjZGVmaW5lIERFRkFVTFRfQ09OVEFJTkVSICJmcmFnbWVudGVkX21w NCIKKyAjZW5kaWYKKyAKKytleHRlcm4gYm9vbCBFbmNvZGVyQXZhaWxhYmxlKGNvbnN0IGNoYXIg KmVuY29kZXIpOworKworIGJvb2wgT0JTQmFzaWM6OkluaXRCYXNpY0NvbmZpZ0RlZmF1bHRzKCkK KyB7CisgCVFMaXN0PFFTY3JlZW4gKj4gc2NyZWVucyA9IFFHdWlBcHBsaWNhdGlvbjo6c2NyZWVu cygpOworQEAgLTE2MTksNyArMTYyMSwxMCBAQCBib29sIE9CU0Jhc2ljOjpJbml0QmFzaWNDb25m aWdEZWZhdWx0cygpCisgCWNvbmZpZ19zZXRfZGVmYXVsdF9ib29sKGJhc2ljQ29uZmlnLCAiQWR2 T3V0IiwgIlVzZVJlc2NhbGUiLCBmYWxzZSk7CisgCWNvbmZpZ19zZXRfZGVmYXVsdF91aW50KGJh c2ljQ29uZmlnLCAiQWR2T3V0IiwgIlRyYWNrSW5kZXgiLCAxKTsKKyAJY29uZmlnX3NldF9kZWZh dWx0X3VpbnQoYmFzaWNDb25maWcsICJBZHZPdXQiLCAiVm9kVHJhY2tJbmRleCIsIDIpOworLQlj b25maWdfc2V0X2RlZmF1bHRfc3RyaW5nKGJhc2ljQ29uZmlnLCAiQWR2T3V0IiwgIkVuY29kZXIi LCAib2JzX3gyNjQiKTsKKysKKysJYm9vbCB1c2VYMjY0ID0gRW5jb2RlckF2YWlsYWJsZSgib2Jz X3gyNjQiKTsKKysJY29uZmlnX3NldF9kZWZhdWx0X3N0cmluZyhiYXNpY0NvbmZpZywgIkFkdk91 dCIsICJFbmNvZGVyIiwKKysJCQkJICAodXNlWDI2NCA/ICJvYnNfeDI2NCIgOiAiZmZtcGVnX29w ZW5oMjY0IikpOworIAorIAljb25maWdfc2V0X2RlZmF1bHRfc3RyaW5nKGJhc2ljQ29uZmlnLCAi QWR2T3V0IiwgIlJlY1R5cGUiLCAiU3RhbmRhcmQiKTsKKyAKK0BAIC0xNzQ0LDcgKzE3NDksNiBA QCBib29sIE9CU0Jhc2ljOjpJbml0QmFzaWNDb25maWdEZWZhdWx0cygpCisgCXJldHVybiB0cnVl OworIH0KKyAKKy1leHRlcm4gYm9vbCBFbmNvZGVyQXZhaWxhYmxlKGNvbnN0IGNoYXIgKmVuY29k ZXIpOworIGV4dGVybiBib29sIHVwZGF0ZV9udmVuY19wcmVzZXRzKENvbmZpZ0ZpbGUgJmNvbmZp Zyk7CisgCisgdm9pZCBPQlNCYXNpYzo6SW5pdEJhc2ljQ29uZmlnRGVmYXVsdHMyKCkKK0BAIC0x NzUzLDEyICsxNzU3LDE0IEBAIHZvaWQgT0JTQmFzaWM6OkluaXRCYXNpY0NvbmZpZ0RlZmF1bHRz MigpCisgCQkJCQkgICAgICAiUHJlMjNEZWZhdWx0cyIpOworIAlib29sIHVzZU5WID0gRW5jb2Rl ckF2YWlsYWJsZSgiZmZtcGVnX252ZW5jIikgJiYgIW9sZEVuY0RlZmF1bHRzOworIAorKwlib29s IHVzZVgyNjQgPSBFbmNvZGVyQXZhaWxhYmxlKCJvYnNfeDI2NCIpOworKwljb25zdCBjaGFyICpo MjY0X2ZhbGxiYWNrID0KKysJCSh1c2VYMjY0ID8gU0lNUExFX0VOQ09ERVJfWDI2NCA6IFNJTVBM RV9FTkNPREVSX09QRU5IMjY0KTsKKysKKyAJY29uZmlnX3NldF9kZWZhdWx0X3N0cmluZyhiYXNp Y0NvbmZpZywgIlNpbXBsZU91dHB1dCIsICJTdHJlYW1FbmNvZGVyIiwKKy0JCQkJICB1c2VOViA/ IFNJTVBMRV9FTkNPREVSX05WRU5DCistCQkJCQk6IFNJTVBMRV9FTkNPREVSX1gyNjQpOworKwkJ CQkgIHVzZU5WID8gU0lNUExFX0VOQ09ERVJfTlZFTkMgOiBoMjY0X2ZhbGxiYWNrKTsKKyAJY29u ZmlnX3NldF9kZWZhdWx0X3N0cmluZyhiYXNpY0NvbmZpZywgIlNpbXBsZU91dHB1dCIsICJSZWNF bmNvZGVyIiwKKy0JCQkJICB1c2VOViA/IFNJTVBMRV9FTkNPREVSX05WRU5DCistCQkJCQk6IFNJ TVBMRV9FTkNPREVSX1gyNjQpOworKwkJCQkgIHVzZU5WID8gU0lNUExFX0VOQ09ERVJfTlZFTkMg OiBoMjY0X2ZhbGxiYWNrKTsKKyAKKyAJY29uc3QgY2hhciAqYWFjX2RlZmF1bHQgPSAiZmZtcGVn X2FhYyI7CisgCWlmIChFbmNvZGVyQXZhaWxhYmxlKCJDb3JlQXVkaW9fQUFDIikpCitAQCAtMjA0 MCw3ICsyMDQ2LDcgQEAgdm9pZCBPQlNCYXNpYzo6T0JTSW5pdCgpCisgCisgCUluaXRCYXNpY0Nv bmZpZ0RlZmF1bHRzMigpOworIAorLQlDaGVja0ZvclNpbXBsZU1vZGVYMjY0RmFsbGJhY2soKTsK KysJQ2hlY2tGb3JTaW1wbGVNb2RlSDI2NEZhbGxiYWNrKCk7CisgCisgCWJsb2coTE9HX0lORk8s IFNUQVJUVVBfU0VQQVJBVE9SKTsKKyAKK2RpZmYgLS1naXQgYS9VSS93aW5kb3ctYmFzaWMtbWFp bi5ocHAgYi9VSS93aW5kb3ctYmFzaWMtbWFpbi5ocHAKK2luZGV4IGIxZWIzOTU5Mi4uN2Q5ZThk Mjg2IDEwMDY0NAorLS0tIGEvVUkvd2luZG93LWJhc2ljLW1haW4uaHBwCisrKysgYi9VSS93aW5k b3ctYmFzaWMtbWFpbi5ocHAKK0BAIC02OSw2ICs2OSw3IEBAIGNsYXNzIE9CU0Jhc2ljVkNhbUNv bmZpZzsKKyAKKyAjZGVmaW5lIFNJTVBMRV9FTkNPREVSX1gyNjQgIngyNjQiCisgI2RlZmluZSBT SU1QTEVfRU5DT0RFUl9YMjY0X0xPV0NQVSAieDI2NF9sb3djcHUiCisrI2RlZmluZSBTSU1QTEVf RU5DT0RFUl9PUEVOSDI2NCAiZmZtcGVnX29wZW5oMjY0IgorICNkZWZpbmUgU0lNUExFX0VOQ09E RVJfUVNWICJxc3YiCisgI2RlZmluZSBTSU1QTEVfRU5DT0RFUl9RU1ZfQVYxICJxc3ZfYXYxIgor ICNkZWZpbmUgU0lNUExFX0VOQ09ERVJfTlZFTkMgIm52ZW5jIgorQEAgLTQ0Niw3ICs0NDcsNyBA QCBwcml2YXRlOgorIAl2b2lkIERlbGV0ZVByb2ZpbGUoY29uc3QgY2hhciAqcHJvZmlsZV9uYW1l LCBjb25zdCBjaGFyICpwcm9maWxlX2Rpcik7CisgCXZvaWQgUmVmcmVzaFByb2ZpbGVzKCk7Cisg CXZvaWQgQ2hhbmdlUHJvZmlsZSgpOworLQl2b2lkIENoZWNrRm9yU2ltcGxlTW9kZVgyNjRGYWxs YmFjaygpOworKwl2b2lkIENoZWNrRm9yU2ltcGxlTW9kZUgyNjRGYWxsYmFjaygpOworIAorIAl2 b2lkIFNhdmVQcm9qZWN0Tm93KCk7CisgCitkaWZmIC0tZ2l0IGEvVUkvd2luZG93LWJhc2ljLXNl dHRpbmdzLXN0cmVhbS5jcHAgYi9VSS93aW5kb3ctYmFzaWMtc2V0dGluZ3Mtc3RyZWFtLmNwcAor aW5kZXggZTJiYTRiNjc3Li5hMDhjNjk3ZDQgMTAwNjQ0CistLS0gYS9VSS93aW5kb3ctYmFzaWMt c2V0dGluZ3Mtc3RyZWFtLmNwcAorKysrIGIvVUkvd2luZG93LWJhc2ljLXNldHRpbmdzLXN0cmVh bS5jcHAKK0BAIC0xNDM3LDcgKzE0MzcsOSBAQCBzdGF0aWMgUVN0cmluZyBnZXRfYWR2X2ZhbGxi YWNrKGNvbnN0IFFTdHJpbmcgJmVuYykKKyAJCXJldHVybiAiY29tLmFwcGxlLnZpZGVvdG9vbGJv eC52aWRlb2VuY29kZXIuYXZlLmF2YyI7CisgCWlmIChlbmMgPT0gIm9ic19xc3YxMV9hdjEiKQor IAkJcmV0dXJuICJvYnNfcXN2MTEiOworLQlyZXR1cm4gIm9ic194MjY0IjsKKysJaWYgKEVuY29k ZXJBdmFpbGFibGUoIm9ic194MjY0IikpCisrCQlyZXR1cm4gIm9ic194MjY0IjsKKysJcmV0dXJu ICJmZm1wZWdfb3BlbmgyNjQiOworIH0KKyAKKyBzdGF0aWMgUVN0cmluZyBnZXRfYWR2X2F1ZGlv X2ZhbGxiYWNrKGNvbnN0IFFTdHJpbmcgJmVuYykKK0BAIC0xNDY2LDcgKzE0NjgsOSBAQCBzdGF0 aWMgUVN0cmluZyBnZXRfc2ltcGxlX2ZhbGxiYWNrKGNvbnN0IFFTdHJpbmcgJmVuYykKKyAJCXJl dHVybiBTSU1QTEVfRU5DT0RFUl9BUFBMRV9IMjY0OworIAlpZiAoZW5jID09IFNJTVBMRV9FTkNP REVSX1FTVl9BVjEpCisgCQlyZXR1cm4gU0lNUExFX0VOQ09ERVJfUVNWOworLQlyZXR1cm4gU0lN UExFX0VOQ09ERVJfWDI2NDsKKysJaWYgKEVuY29kZXJBdmFpbGFibGUoIm9ic194MjY0IikpCisr CQlyZXR1cm4gU0lNUExFX0VOQ09ERVJfWDI2NDsKKysJcmV0dXJuIFNJTVBMRV9FTkNPREVSX09Q RU5IMjY0OworIH0KKyAKKyBib29sIE9CU0Jhc2ljU2V0dGluZ3M6OlNlcnZpY2VTdXBwb3J0c0Nv ZGVjQ2hlY2soKQorQEAgLTE2NzAsOCArMTY3NCwxMiBAQCB2b2lkIE9CU0Jhc2ljU2V0dGluZ3M6 OlJlc2V0RW5jb2RlcnMoYm9vbCBzdHJlYW1Pbmx5KQorIAorICNkZWZpbmUgRU5DT0RFUl9TVFIo c3RyKSBRVFN0cigiQmFzaWMuU2V0dGluZ3MuT3V0cHV0LlNpbXBsZS5FbmNvZGVyLiIgc3RyKQor IAorLQl1aS0+c2ltcGxlT3V0U3RyRW5jb2Rlci0+YWRkSXRlbShFTkNPREVSX1NUUigiU29mdHdh cmUuWDI2NC5IMjY0IiksCistCQkJCQkgUVN0cmluZyhTSU1QTEVfRU5DT0RFUl9YMjY0KSk7Cisr CXVpLT5zaW1wbGVPdXRTdHJFbmNvZGVyLT5hZGRJdGVtKEVOQ09ERVJfU1RSKCJTb2Z0d2FyZS5P cGVuSDI2NC5IMjY0IiksCisrCQkJCQkgUVN0cmluZyhTSU1QTEVfRU5DT0RFUl9PUEVOSDI2NCkp OworKwlpZiAoc2VydmljZV9zdXBwb3J0c19lbmNvZGVyKHZjb2RlY3MsICJvYnNfeDI2NCIpKQor KwkJdWktPnNpbXBsZU91dFN0ckVuY29kZXItPmFkZEl0ZW0oCisrCQkJRU5DT0RFUl9TVFIoIlNv ZnR3YXJlLlgyNjQuSDI2NCIpLAorKwkJCVFTdHJpbmcoU0lNUExFX0VOQ09ERVJfWDI2NCkpOwor ICNpZmRlZiBfV0lOMzIKKyAJaWYgKHNlcnZpY2Vfc3VwcG9ydHNfZW5jb2Rlcih2Y29kZWNzLCAi b2JzX3FzdjExIikpCisgCQl1aS0+c2ltcGxlT3V0U3RyRW5jb2Rlci0+YWRkSXRlbSgKK2RpZmYg LS1naXQgYS9VSS93aW5kb3ctYmFzaWMtc2V0dGluZ3MuY3BwIGIvVUkvd2luZG93LWJhc2ljLXNl dHRpbmdzLmNwcAoraW5kZXggZGRmMGFkYzU2Li45YjczMjRhYjkgMTAwNjQ0CistLS0gYS9VSS93 aW5kb3ctYmFzaWMtc2V0dGluZ3MuY3BwCisrKysgYi9VSS93aW5kb3ctYmFzaWMtc2V0dGluZ3Mu Y3BwCitAQCAtMzc3OSw2ICszNzc5LDExIEBAIHZvaWQgT0JTQmFzaWNTZXR0aW5nczo6U2F2ZU91 dHB1dFNldHRpbmdzKCkKKyAgICAgICAgICBkby4gVGhpcyBvbmx5IGV4aXN0cyB0byBtYWtlIHN1 cmUgdGhhdCB0aGUgeDI2NCBwcmVzZXQgZG9lc24ndAorICAgICAgICAgIGdldCBvdmVyd3JpdHRl biB3aXRoIGVtcHR5IGRhdGEuICovCisgCQlwcmVzZXRUeXBlID0gIkFwcGxlUHJlc2V0IjsKKysJ ZWxzZSBpZiAoZW5jb2RlciA9PSBTSU1QTEVfRU5DT0RFUl9PUEVOSDI2NCkKKysJCS8qIFRoZSBP cGVuSDI2NCBlbmNvZGVyIGRvZXMgbm90IGhhdmUgcHJlc2V0cyBsaWtlIHRoZSBvdGhlciBlbmNv ZGVycworKyAgICAgICAgIGRvLiBUaGlzIG9ubHkgZXhpc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHRo ZSB4MjY0IHByZXNldCBkb2Vzbid0CisrICAgICAgICAgZ2V0IG92ZXJ3cml0dGVuIHdpdGggZW1w dHkgZGF0YS4gKi8KKysJCXByZXNldFR5cGUgPSAiT3BlbkgyNjRQcmVzZXQiOworIAllbHNlCisg CQlwcmVzZXRUeXBlID0gIlByZXNldCI7CisgCitAQCAtNTIzNywxMSArNTI0MiwxNiBAQCB2b2lk IE9CU0Jhc2ljU2V0dGluZ3M6OkZpbGxTaW1wbGVSZWNvcmRpbmdWYWx1ZXMoKQorIAlBRERfUVVB TElUWSgiSFEiKTsKKyAJQUREX1FVQUxJVFkoIkxvc3NsZXNzIik7CisgCistCXVpLT5zaW1wbGVP dXRSZWNFbmNvZGVyLT5hZGRJdGVtKEVOQ09ERVJfU1RSKCJTb2Z0d2FyZS5YMjY0LkgyNjQiKSwK Ky0JCQkJCSBRU3RyaW5nKFNJTVBMRV9FTkNPREVSX1gyNjQpKTsKKy0JdWktPnNpbXBsZU91dFJl Y0VuY29kZXItPmFkZEl0ZW0oCistCQlFTkNPREVSX1NUUigiU29mdHdhcmVMb3dDUFUuWDI2NC5I MjY0IiksCistCQlRU3RyaW5nKFNJTVBMRV9FTkNPREVSX1gyNjRfTE9XQ1BVKSk7CisrCXVpLT5z aW1wbGVPdXRSZWNFbmNvZGVyLT5hZGRJdGVtKEVOQ09ERVJfU1RSKCJTb2Z0d2FyZS5PcGVuSDI2 NC5IMjY0IiksCisrCQkJCQkgUVN0cmluZyhTSU1QTEVfRU5DT0RFUl9PUEVOSDI2NCkpOworKwlp ZiAoRW5jb2RlckF2YWlsYWJsZSgib2JzX3gyNjQiKSkgeworKwkJdWktPnNpbXBsZU91dFJlY0Vu Y29kZXItPmFkZEl0ZW0oCisrCQkJRU5DT0RFUl9TVFIoIlNvZnR3YXJlLlgyNjQuSDI2NCIpLAor KwkJCVFTdHJpbmcoU0lNUExFX0VOQ09ERVJfWDI2NCkpOworKwkJdWktPnNpbXBsZU91dFJlY0Vu Y29kZXItPmFkZEl0ZW0oCisrCQkJRU5DT0RFUl9TVFIoIlNvZnR3YXJlTG93Q1BVLlgyNjQuSDI2 NCIpLAorKwkJCVFTdHJpbmcoU0lNUExFX0VOQ09ERVJfWDI2NF9MT1dDUFUpKTsKKysJfQorIAlp ZiAoRW5jb2RlckF2YWlsYWJsZSgib2JzX3FzdjExIikpCisgCQl1aS0+c2ltcGxlT3V0UmVjRW5j b2Rlci0+YWRkSXRlbSgKKyAJCQlFTkNPREVSX1NUUigiSGFyZHdhcmUuUVNWLkgyNjQiKSwKK0BA IC01NDE0LDYgKzU0MjQsOSBAQCB2b2lkIE9CU0Jhc2ljU2V0dGluZ3M6OlNpbXBsZVN0cmVhbWlu Z0VuY29kZXJDaGFuZ2VkKCkKKyAKKyAJCWRlZmF1bHRQcmVzZXQgPSAiYmFsYW5jZWQiOworIAkJ cHJlc2V0ID0gY3VyQU1EQVYxUHJlc2V0OworKwl9IGVsc2UgaWYgKGVuY29kZXIgPT0gU0lNUExF X0VOQ09ERVJfT1BFTkgyNjQpIHsKKysJCXVpLT5zaW1wbGVPdXRQcmVzZXQtPnNldFZpc2libGUo ZmFsc2UpOworKwkJdWktPnNpbXBsZU91dFByZXNldExhYmVsLT5zZXRWaXNpYmxlKGZhbHNlKTsK KyAJfSBlbHNlIHsKKyAKKyAjZGVmaW5lIFBSRVNFVF9TVFIodmFsKSBcCistLSAKKzIuNDEuMAor CgpkaWZmIC0tZ2l0IGEvMDIwMS1kZXBzLUFkZC1saWNlbnNlLWRlY2xhcmF0aW9uLWZpbGVzLnBh dGNoIGIvMDIwMS1kZXBzLUFkZC1saWNlbnNlLWRlY2xhcmF0aW9uLWZpbGVzLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNTE3M2MKLS0tIC9kZXYvbnVsbAorKysg Yi8wMjAxLWRlcHMtQWRkLWxpY2Vuc2UtZGVjbGFyYXRpb24tZmlsZXMucGF0Y2gKQEAgLTAsMCAr MSw2NCBAQAorRnJvbSAwNzYwMjRlNzI0YzRkYTExNjkwNzM1YTA5NThiODQ2NTBmNDQ5MTM2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmVhbCBHb21wYSA8bmVhbEBnb21wYS5kZXY+ CitEYXRlOiBUdWUsIDI5IEF1ZyAyMDIzIDExOjAzOjA4IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0gg MjAxLzIwNF0gZGVwczogQWRkIGxpY2Vuc2UgZGVjbGFyYXRpb24gZmlsZXMKKworLS0tCisgZGVw cy9ibGFrZTIvTElDRU5TRS5ibGFrZTIgICAgICAgICAgICAgICAgIHwgMTkgKysrKysrKysrKysr KysrKysrKworIGRlcHMvbWVkaWEtcGxheWJhY2svTElDRU5TRS5tZWRpYS1wbGF5YmFjayB8IDE4 ICsrKysrKysrKysrKysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKQor IGNyZWF0ZSBtb2RlIDEwMDY0NCBkZXBzL2JsYWtlMi9MSUNFTlNFLmJsYWtlMgorIGNyZWF0ZSBt b2RlIDEwMDY0NCBkZXBzL21lZGlhLXBsYXliYWNrL0xJQ0VOU0UubWVkaWEtcGxheWJhY2sKKwor ZGlmZiAtLWdpdCBhL2RlcHMvYmxha2UyL0xJQ0VOU0UuYmxha2UyIGIvZGVwcy9ibGFrZTIvTElD RU5TRS5ibGFrZTIKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAuLjNhOGFi Yzc4NworLS0tIC9kZXYvbnVsbAorKysrIGIvZGVwcy9ibGFrZTIvTElDRU5TRS5ibGFrZTIKK0BA IC0wLDAgKzEsMTkgQEAKKytCTEFLRTIgaXMgbGljZW5zZWQgdG8gcGVybWl0IHVzYWdlIHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgQ0MwLCB0aGUgT3BlblNTTCBMaWNlbnNlLAorKyBvciB0aGUgQXBh Y2hlIFB1YmxpYyBMaWNlbnNlIDIuMCBhdCB0aGUgdXNlcidzIG9wdGlvbi4KKysKKytUaGUgbGlj ZW5zZSBncmFudCBpcyByZXByb2R1Y2VkIGluIGZ1bGwgYmVsb3cuCisrCisrLyoKKysgICBCTEFL RTIgcmVmZXJlbmNlIHNvdXJjZSBjb2RlIHBhY2thZ2UgLSByZWZlcmVuY2UgQyBpbXBsZW1lbnRh dGlvbnMKKysKKysgICBDb3B5cmlnaHQgMjAxMiwgU2FtdWVsIE5ldmVzIDxzbmV2ZXNAZGVpLnVj LnB0Pi4gIFlvdSBtYXkgdXNlIHRoaXMgdW5kZXIgdGhlCisrICAgdGVybXMgb2YgdGhlIENDMCwg dGhlIE9wZW5TU0wgTGljZW5jZSwgb3IgdGhlIEFwYWNoZSBQdWJsaWMgTGljZW5zZSAyLjAsIGF0 CisrICAgeW91ciBvcHRpb24uICBUaGUgdGVybXMgb2YgdGhlc2UgbGljZW5zZXMgY2FuIGJlIGZv dW5kIGF0OgorKworKyAgIC0gQ0MwIDEuMCBVbml2ZXJzYWwgOiBodHRwOi8vY3JlYXRpdmVjb21t b25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAKKysgICAtIE9wZW5TU0wgbGljZW5zZSAgIDog aHR0cHM6Ly93d3cub3BlbnNzbC5vcmcvc291cmNlL2xpY2Vuc2UuaHRtbAorKyAgIC0gQXBhY2hl IDIuMCAgICAgICAgOiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAK KysKKysgICBNb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBCTEFLRTIgaGFzaCBmdW5jdGlvbiBj YW4gYmUgZm91bmQgYXQKKysgICBodHRwczovL2JsYWtlMi5uZXQuCisrKi8KK2RpZmYgLS1naXQg YS9kZXBzL21lZGlhLXBsYXliYWNrL0xJQ0VOU0UubWVkaWEtcGxheWJhY2sgYi9kZXBzL21lZGlh LXBsYXliYWNrL0xJQ0VOU0UubWVkaWEtcGxheWJhY2sKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAwMDAwMDAwMDAuLjU5Mjg0NGVhMQorLS0tIC9kZXYvbnVsbAorKysrIGIvZGVwcy9tZWRp YS1wbGF5YmFjay9MSUNFTlNFLm1lZGlhLXBsYXliYWNrCitAQCAtMCwwICsxLDE4IEBACisrbWVk aWEtcGxheWJhY2sgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLiBUaGUgbGljZW5z ZSB0ZXJtcyBhcmUgZnVsbHkKKytyZXByb2R1Y2VkIGJlbG93OgorKworKy8qCisrICogQ29weXJp Z2h0IChjKSAyMDIzIExhaW4gQmFpbGV5IDxsYWluQG9ic3Byb2plY3QuY29tPgorKyAqCisrICog UGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0 d2FyZSBmb3IgYW55CisrICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBn cmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorKyAqIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisrICoKKysgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMg QUxMIFdBUlJBTlRJRVMKKysgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElO RyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisrICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO RVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IKKysgKiBBTlkg U1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFO WSBEQU1BR0VTCisrICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFU QSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCisrICogQUNUSU9OIE9GIENPTlRSQUNULCBORUdM SUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YKKysgKiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJF LgorKyAqLworLS0gCisyLjQxLjAKKwoKZGlmZiAtLWdpdCBhLzAyMDItbGlib2JzLUFkZC1saWNl bnNlLWRlY2xhcmF0aW9uLWZpbGVzLnBhdGNoIGIvMDIwMi1saWJvYnMtQWRkLWxpY2Vuc2UtZGVj bGFyYXRpb24tZmlsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NGM3MmYyOAotLS0gL2Rldi9udWxsCisrKyBiLzAyMDItbGlib2JzLUFkZC1saWNlbnNlLWRlY2xh cmF0aW9uLWZpbGVzLnBhdGNoCkBAIC0wLDAgKzEsMTAwIEBACitGcm9tIDJhN2UyODRjMTM5NmM2 OGQxNzI4NmQ1NDljNGZmNDUxYTEyZjZiNGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBOZWFsIEdvbXBhIDxuZWFsQGdvbXBhLmRldj4KK0RhdGU6IFR1ZSwgMjkgQXVnIDIwMjMgMTE6 MDM6MjkgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAyMDIvMjA0XSBsaWJvYnM6IEFkZCBsaWNlbnNl IGRlY2xhcmF0aW9uIGZpbGVzCisKKy0tLQorIGxpYm9icy9ncmFwaGljcy9saWJuc2dpZi9MSUNF TlNFLmxpYm5zZ2lmIHwgMzMgKysrKysrKysrKysrKysrKysrKworIGxpYm9icy91dGlsL3NpbWRl L0xJQ0VOU0Uuc2ltZGUgICAgICAgICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysKKyAy IGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgbGli b2JzL2dyYXBoaWNzL2xpYm5zZ2lmL0xJQ0VOU0UubGlibnNnaWYKKyBjcmVhdGUgbW9kZSAxMDA2 NDQgbGlib2JzL3V0aWwvc2ltZGUvTElDRU5TRS5zaW1kZQorCitkaWZmIC0tZ2l0IGEvbGlib2Jz L2dyYXBoaWNzL2xpYm5zZ2lmL0xJQ0VOU0UubGlibnNnaWYgYi9saWJvYnMvZ3JhcGhpY3MvbGli bnNnaWYvTElDRU5TRS5saWJuc2dpZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwMC4uOWIyOGMwYjQ1CistLS0gL2Rldi9udWxsCisrKysgYi9saWJvYnMvZ3JhcGhpY3MvbGli bnNnaWYvTElDRU5TRS5saWJuc2dpZgorQEAgLTAsMCArMSwzMyBAQAorK2xpYm5zZ2lmIGlzIGxp Y2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4gVGhlIGxpY2Vuc2luZyBzdGF0ZW1lbnQKKyth bmQgdGhlIGZ1bGwgbGljZW5zZSBhcmUgcmVwcm9kdWNlZCBiZWxvdy4KKysKKysvKgorKyAqIENv cHlyaWdodCAyMDAzIEphbWVzIEJ1cnNhIDxidXJzYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cisr ICogQ29weXJpZ2h0IDIwMDQgSm9obiBUeXRnYXQgPEpvaG4uVHl0Z2F0QGFhdWcubmV0PgorKyAq IENvcHlyaWdodCAyMDA0IFJpY2hhcmQgV2lsc29uIDxyaWNoYXJkLndpbHNvbkBuZXRzdXJmLWJy b3dzZXIub3JnPgorKyAqIENvcHlyaWdodCAyMDA4IFNlYW4gRm94IDxkeW50cnl4QGdtYWlsLmNv bT4KKysgKgorKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE5ldFN1cmYncyBsaWJuc2dpZiwgaHR0 cDovL3d3dy5uZXRzdXJmLWJyb3dzZXIub3JnLworKyAqIExpY2VuY2VkIHVuZGVyIHRoZSBNSVQg TGljZW5zZSwKKysgKiAgICAgICAgICAgICAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xp Y2Vuc2VzL21pdC1saWNlbnNlLnBocAorKyAqLworKworK1RoZSBNSVQgTGljZW5zZQorKworK1Bl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKKytvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAorK2luIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy aWdodHMKKyt0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisrY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisrZnVybmlzaGVkIHRvIGRv IHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysKKytUaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs dWRlZCBpbgorK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3 YXJlLgorKworK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisrSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisrRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg U0hBTEwgVEhFCisrQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisrT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBE RUFMSU5HUyBJTgorK1RIRSBTT0ZUV0FSRS4KK2RpZmYgLS1naXQgYS9saWJvYnMvdXRpbC9zaW1k ZS9MSUNFTlNFLnNpbWRlIGIvbGlib2JzL3V0aWwvc2ltZGUvTElDRU5TRS5zaW1kZQorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMC4uNzhkNDgyZTc1CistLS0gL2Rldi9udWxs CisrKysgYi9saWJvYnMvdXRpbC9zaW1kZS9MSUNFTlNFLnNpbWRlCitAQCAtMCwwICsxLDQwIEBA Cisrc2ltZGUgaXMgbGljZW5zZWQgYXMgYSBjb21iaW5hdGlvbiBvZiBNSVQgYW5kIENDMCBjb2Rl LgorKworK0xpY2Vuc2Ugbm90aWNlcyBmb3IgYm90aCBhcmUgcmVwcm9kdWNlZCBiZWxvdzoKKysK KysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisrICoKKysgKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorKyAqIG9idGFp bmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u CisrICogZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dAorKyAqIHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy aWdodHMgdG8gdXNlLCBjb3B5LAorKyAqIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcworKyAqIG9mIHRoZSBTb2Z0d2FyZSwg YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisrICogZnVybmlz aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysgKgor KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IHNoYWxsIGJlCisrICogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCisrICoKKysgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKysgKiBFWFBSRVNTIE9SIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKysg KiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAor KyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q WVJJR0hUIEhPTERFUlMKKysgKiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KKysgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorKyAqIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUK KysgKiBTT0ZUV0FSRS4KKysgKgorKyAqIENvcHlyaWdodDoKKysgKiAgIDIwMTctMjAyMCBFdmFu IE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KKysgKi8KKysKKysvKiBQb3J0YWJsZSBTbmlw cGV0cyAtIGh0dHBzOi8vZ2l0dWIuY29tL25lbWVxdS9wb3J0YWJsZS1zbmlwcGV0cworKyAqIENy ZWF0ZWQgYnkgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CisrICoKKysgKiAgIFRv IHRoZSBleHRlbnQgcG9zc2libGUgdW5kZXIgbGF3LCB0aGUgYXV0aG9ycyBoYXZlIHdhaXZlZCBh bGwKKysgKiAgIGNvcHlyaWdodCBhbmQgcmVsYXRlZCBvciBuZWlnaGJvcmluZyByaWdodHMgdG8g dGhpcyBjb2RlLiAgRm9yCisrICogICBkZXRhaWxzLCBzZWUgdGhlIENyZWF0aXZlIENvbW1vbnMg WmVybyAxLjAgVW5pdmVyc2FsIGxpY2Vuc2UgYXQKKysgKiAgIGh0dHBzOi8vY3JlYXRpdmVjb21t b25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrICoKKysgKiBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQ0MwLTEuMAorKyAqLworLS0gCisyLjQxLjAKKwoKZGlmZiAtLWdpdCBhLzAyMDMt ZGVja2xpbmstQWRkLWxpY2Vuc2UtZGVjbGFyYXRpb24tZmlsZXMucGF0Y2ggYi8wMjAzLWRlY2ts aW5rLUFkZC1saWNlbnNlLWRlY2xhcmF0aW9uLWZpbGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjc1YTQ2NmIKLS0tIC9kZXYvbnVsbAorKysgYi8wMjAzLWRlY2ts aW5rLUFkZC1saWNlbnNlLWRlY2xhcmF0aW9uLWZpbGVzLnBhdGNoCkBAIC0wLDAgKzEsNDkgQEAK K0Zyb20gZTA0NGU2ZWI4ZjhmOGExZWJkZTAzZjVkNWRhOTFjMzVlYWI5ZTJhMiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5lYWwgR29tcGEgPG5lYWxAZ29tcGEuZGV2PgorRGF0ZTog VHVlLCAyOSBBdWcgMjAyMyAxMTowNzo1MyAtMDQwMAorU3ViamVjdDogW1BBVENIIDIwMy8yMDRd IGRlY2tsaW5rOiBBZGQgbGljZW5zZSBkZWNsYXJhdGlvbiBmaWxlcworCistLS0KKyBwbHVnaW5z L2RlY2tsaW5rL0xJQ0VOU0UuZGVja2xpbmstc2RrIHwgMzAgKysrKysrKysrKysrKysrKysrKysr KysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAx MDA2NDQgcGx1Z2lucy9kZWNrbGluay9MSUNFTlNFLmRlY2tsaW5rLXNkaworCitkaWZmIC0tZ2l0 IGEvcGx1Z2lucy9kZWNrbGluay9MSUNFTlNFLmRlY2tsaW5rLXNkayBiL3BsdWdpbnMvZGVja2xp bmsvTElDRU5TRS5kZWNrbGluay1zZGsKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwMDAuLmE1ZDFkMTU2YworLS0tIC9kZXYvbnVsbAorKysrIGIvcGx1Z2lucy9kZWNrbGluay9M SUNFTlNFLmRlY2tsaW5rLXNkaworQEAgLTAsMCArMSwzMCBAQAorK2RlY2tsaW5rLXNkayBpcyBs aWNlbnNlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSAxLjAgKEJTTC0xLjApLgor KworK1RoZSBsaWNlbnNlIHRleHQgaXMgcmVwcm9kdWNlZCBpbiBmdWxsIGJlbG93OgorKworKy8q IC1MSUNFTlNFLVNUQVJULQorKyoqIENvcHlyaWdodCAoYykgMjAyMCBCbGFja21hZ2ljIERlc2ln bgorKyoqCisrKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb3Igb3JnYW5pemF0aW9uCisrKiogb2J0YWluaW5nIGEgY29weSBvZiB0 aGUgc29mdHdhcmUgYW5kIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uIGNvdmVyZWQgYnkKKysq KiB0aGlzIGxpY2Vuc2UgKHRoZSAiU29mdHdhcmUiKSB0byB1c2UsIHJlcHJvZHVjZSwgZGlzcGxh eSwgZGlzdHJpYnV0ZSwKKysqKiBleGVjdXRlLCBhbmQgdHJhbnNtaXQgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcHJlcGFyZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZQorKyoqIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHRoaXJkLXBhcnRpZXMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVk IHRvCisrKiogZG8gc28sIGFsbCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmc6CisrKioKKysqKiBU aGUgY29weXJpZ2h0IG5vdGljZXMgaW4gdGhlIFNvZnR3YXJlIGFuZCB0aGlzIGVudGlyZSBzdGF0 ZW1lbnQsIGluY2x1ZGluZworKyoqIHRoZSBhYm92ZSBsaWNlbnNlIGdyYW50LCB0aGlzIHJlc3Ry aWN0aW9uIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIsCisrKiogbXVzdCBiZSBpbmNsdWRl ZCBpbiBhbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwgYW5k CisrKiogYWxsIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNvZnR3YXJlLCB1bmxlc3Mgc3VjaCBj b3BpZXMgb3IgZGVyaXZhdGl2ZQorKyoqIHdvcmtzIGFyZSBzb2xlbHkgaW4gdGhlIGZvcm0gb2Yg bWFjaGluZS1leGVjdXRhYmxlIG9iamVjdCBjb2RlIGdlbmVyYXRlZCBieQorKyoqIGEgc291cmNl IGxhbmd1YWdlIHByb2Nlc3Nvci4KKysqKgorKyoqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisrKiogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCisrKiogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIFRJVExF IEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVAorKyoqIFNIQUxMIFRIRSBDT1BZUklH SFQgSE9MREVSUyBPUiBBTllPTkUgRElTVFJJQlVUSU5HIFRIRSBTT0ZUV0FSRSBCRSBMSUFCTEUK KysqKiBGT1IgQU5ZIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKysqKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKysqKiBERUFM SU5HUyBJTiBUSEUgU09GVFdBUkUuCisrKiogLUxJQ0VOU0UtRU5ELQorKyovCistLSAKKzIuNDEu MAorCgpkaWZmIC0tZ2l0IGEvMDIwNC1vYnMtcXN2MTEtQWRkLWxpY2Vuc2UtZGVjbGFyYXRpb24t ZmlsZS5wYXRjaCBiLzAyMDQtb2JzLXFzdjExLUFkZC1saWNlbnNlLWRlY2xhcmF0aW9uLWZpbGUu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFkYjQwZgotLS0gL2Rl di9udWxsCisrKyBiLzAyMDQtb2JzLXFzdjExLUFkZC1saWNlbnNlLWRlY2xhcmF0aW9uLWZpbGUu cGF0Y2gKQEAgLTAsMCArMSw3OCBAQAorRnJvbSA1NzkyMGI0ZTZmOTcyY2VjZGU5MWUxYzU1Njgw NTExZDYzMWFmNWE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmVhbCBHb21wYSA8 bmVhbEBnb21wYS5kZXY+CitEYXRlOiBUdWUsIDI5IEF1ZyAyMDIzIDExOjA4OjE4IC0wNDAwCitT dWJqZWN0OiBbUEFUQ0ggMjA0LzIwNF0gb2JzLXFzdjExOiBBZGQgbGljZW5zZSBkZWNsYXJhdGlv biBmaWxlCisKKy0tLQorIHBsdWdpbnMvb2JzLXFzdjExL29icy1xc3YxMS1MSUNFTlNFLnR4dCB8 IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNTkgaW5zZXJ0 aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBwbHVnaW5zL29icy1xc3YxMS9vYnMtcXN2MTEt TElDRU5TRS50eHQKKworZGlmZiAtLWdpdCBhL3BsdWdpbnMvb2JzLXFzdjExL29icy1xc3YxMS1M SUNFTlNFLnR4dCBiL3BsdWdpbnMvb2JzLXFzdjExL29icy1xc3YxMS1MSUNFTlNFLnR4dAorbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMC4uZmM4YjBkN2E4CistLS0gL2Rldi9u dWxsCisrKysgYi9wbHVnaW5zL29icy1xc3YxMS9vYnMtcXN2MTEtTElDRU5TRS50eHQKK0BAIC0w LDAgKzEsNTkgQEAKKytUaGUgT0JTIFFTViBwbHVnaW4gaXMgbGljZW5zZWQgdW5kZXIgZWl0aGVy IHRoZSBCU0QtMy1DbGF1c2Ugb3IgR1BMLTIuMC1vbmx5IGxpY2Vuc2VzLgorKworK1RoZSBsaWNl bnNlIGRlY2xhcmF0aW9uIGlzIHJlcHJvZHVjZWQgYmVsb3c6CisrCisrLyoKKysKKytUaGlzIGlz IHByb3ZpZGVkIHVuZGVyIGEgZHVhbCBCU0QvR1BMdjIgbGljZW5zZS4gIFdoZW4gdXNpbmcgb3IK KytyZWRpc3RyaWJ1dGluZyB0aGlzLCB5b3UgbWF5IGRvIHNvIHVuZGVyIGVpdGhlciBsaWNlbnNl LgorKworK0dQTCBMSUNFTlNFIFNVTU1BUlkKKysKKytDb3B5cmlnaHQoYykgT2N0LiAyMDE1IElu dGVsIENvcnBvcmF0aW9uLgorKworK1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisraXQgdW5kZXIgdGhlIHRlcm1zIG9m IHZlcnNpb24gMiBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKytwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKysKKytUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisrV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor K01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VCisrR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKwor K0NvbnRhY3QgSW5mb3JtYXRpb246CisrCisrU2V1bmctV29vIEtpbSwgc2V1bmctd29vLmtpbUBp bnRlbC5jb20KKys3MDUgNXRoIEF2ZSBTICM1MDAsIFNlYXR0bGUsIFdBIDk4MTA0CisrCisrQlNE IExJQ0VOU0UKKysKKytDb3B5cmlnaHQoYykgPGRhdGU+IEludGVsIENvcnBvcmF0aW9uLgorKwor K1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg b3Igd2l0aG91dAorK21vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworK2FyZSBtZXQ6CisrCisrKiBSZWRpc3RyaWJ1dGlvbnMg b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorK25vdGljZSwg dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKysK KysqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv dmUgY29weXJpZ2h0Cisrbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv bGxvd2luZyBkaXNjbGFpbWVyIGluCisrdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorK2Rpc3RyaWJ1dGlvbi4KKysKKysqIE5laXRoZXIg dGhlIG5hbWUgb2YgSW50ZWwgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKytjb250 cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2 ZWQKKytmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl cm1pc3Npb24uCisrCisrVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworKyJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisrTElNSVRFRCBUTywgVEhFIElN UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisrQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD T1BZUklHSFQKKytPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKytTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisrTElNSVRFRCBUTywgUFJPQ1VSRU1F TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisrREFUQSwg T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg T04gQU5ZCisrVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU IExJQUJJTElUWSwgT1IgVE9SVAorKyhJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorK09GIFRISVMgU09GVFdBUkUsIEVW RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisrKi8KKy0t IAorMi40MS4wCisKCmRpZmYgLS1naXQgYS9vYnMtc3R1ZGlvLWRlcHMtQWRkLWxpY2Vuc2UtZGVj bGFyYXRpb24tZmlsZXMucGF0Y2ggYi9vYnMtc3R1ZGlvLWRlcHMtQWRkLWxpY2Vuc2UtZGVjbGFy YXRpb24tZmlsZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxZTQ2MGMu LjAwMDAwMDAKLS0tIGEvb2JzLXN0dWRpby1kZXBzLUFkZC1saWNlbnNlLWRlY2xhcmF0aW9uLWZp bGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjE4ICswLDAgQEAKLUZyb20gYjZiZTBiNGJm NWIwYjJmMjZjODE0MzY0MTg4MWNkZTIzYWM4YmE5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IE5lYWwgR29tcGEgPG5lYWxAZ29tcGEuZGV2PgotRGF0ZTogV2VkLCAyNiBBcHIgMjAy MyAwNzo1NjozNSAtMDQwMAotU3ViamVjdDogW1BBVENIIDEvMl0gZGVwczogQWRkIGxpY2Vuc2Ug ZGVjbGFyYXRpb24gZmlsZXMKLQotLS0tCi0gZGVwcy9ibGFrZTIvTElDRU5TRS5ibGFrZTIgICAg ICAgICAgICAgICAgIHwgMTkgKysrKysrKysrKwotIGRlcHMvbGliZmYvTElDRU5TRS5saWJmZiAg ICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKysKLSBkZXBzL21lZGlhLXBsYXliYWNrL0xJ Q0VOU0UubWVkaWEtcGxheWJhY2sgfCAxOSArKysrKysrKysrCi0gbGlib2JzL2dyYXBoaWNzL2xp Ym5zZ2lmL0xJQ0VOU0UubGlibnNnaWYgIHwgMzMgKysrKysrKysrKysrKysrKysrCi0gbGlib2Jz L3V0aWwvc2ltZGUvTElDRU5TRS5zaW1kZSAgICAgICAgICAgIHwgNDAgKysrKysrKysrKysrKysr KysrKysrKwotIHBsdWdpbnMvZGVja2xpbmsvTElDRU5TRS5kZWNrbGluay1zZGsgICAgICB8IDMw ICsrKysrKysrKysrKysrKysKLSA2IGZpbGVzIGNoYW5nZWQsIDE1OSBpbnNlcnRpb25zKCspCi0g Y3JlYXRlIG1vZGUgMTAwNjQ0IGRlcHMvYmxha2UyL0xJQ0VOU0UuYmxha2UyCi0gY3JlYXRlIG1v ZGUgMTAwNjQ0IGRlcHMvbGliZmYvTElDRU5TRS5saWJmZgotIGNyZWF0ZSBtb2RlIDEwMDY0NCBk ZXBzL21lZGlhLXBsYXliYWNrL0xJQ0VOU0UubWVkaWEtcGxheWJhY2sKLSBjcmVhdGUgbW9kZSAx MDA2NDQgbGlib2JzL2dyYXBoaWNzL2xpYm5zZ2lmL0xJQ0VOU0UubGlibnNnaWYKLSBjcmVhdGUg bW9kZSAxMDA2NDQgbGlib2JzL3V0aWwvc2ltZGUvTElDRU5TRS5zaW1kZQotIGNyZWF0ZSBtb2Rl IDEwMDY0NCBwbHVnaW5zL2RlY2tsaW5rL0xJQ0VOU0UuZGVja2xpbmstc2RrCi0KLWRpZmYgLS1n aXQgYS9kZXBzL2JsYWtlMi9MSUNFTlNFLmJsYWtlMiBiL2RlcHMvYmxha2UyL0xJQ0VOU0UuYmxh a2UyCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi4zYThhYmM3ODcKLS0t LSAvZGV2L251bGwKLSsrKyBiL2RlcHMvYmxha2UyL0xJQ0VOU0UuYmxha2UyCi1AQCAtMCwwICsx LDE5IEBACi0rQkxBS0UyIGlzIGxpY2Vuc2VkIHRvIHBlcm1pdCB1c2FnZSB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIENDMCwgdGhlIE9wZW5TU0wgTGljZW5zZSwKLSsgb3IgdGhlIEFwYWNoZSBQdWJs aWMgTGljZW5zZSAyLjAgYXQgdGhlIHVzZXIncyBvcHRpb24uCi0rCi0rVGhlIGxpY2Vuc2UgZ3Jh bnQgaXMgcmVwcm9kdWNlZCBpbiBmdWxsIGJlbG93LgotKwotKy8qCi0rICAgQkxBS0UyIHJlZmVy ZW5jZSBzb3VyY2UgY29kZSBwYWNrYWdlIC0gcmVmZXJlbmNlIEMgaW1wbGVtZW50YXRpb25zCi0r Ci0rICAgQ29weXJpZ2h0IDIwMTIsIFNhbXVlbCBOZXZlcyA8c25ldmVzQGRlaS51Yy5wdD4uICBZ b3UgbWF5IHVzZSB0aGlzIHVuZGVyIHRoZQotKyAgIHRlcm1zIG9mIHRoZSBDQzAsIHRoZSBPcGVu U1NMIExpY2VuY2UsIG9yIHRoZSBBcGFjaGUgUHVibGljIExpY2Vuc2UgMi4wLCBhdAotKyAgIHlv dXIgb3B0aW9uLiAgVGhlIHRlcm1zIG9mIHRoZXNlIGxpY2Vuc2VzIGNhbiBiZSBmb3VuZCBhdDoK LSsKLSsgICAtIENDMCAxLjAgVW5pdmVyc2FsIDogaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcv cHVibGljZG9tYWluL3plcm8vMS4wCi0rICAgLSBPcGVuU1NMIGxpY2Vuc2UgICA6IGh0dHBzOi8v d3d3Lm9wZW5zc2wub3JnL3NvdXJjZS9saWNlbnNlLmh0bWwKLSsgICAtIEFwYWNoZSAyLjAgICAg ICAgIDogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0rCi0rICAg TW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQkxBS0UyIGhhc2ggZnVuY3Rpb24gY2FuIGJlIGZv dW5kIGF0Ci0rICAgaHR0cHM6Ly9ibGFrZTIubmV0LgotKyovCi1kaWZmIC0tZ2l0IGEvZGVwcy9s aWJmZi9MSUNFTlNFLmxpYmZmIGIvZGVwcy9saWJmZi9MSUNFTlNFLmxpYmZmCi1uZXcgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5iNmY1MTE1N2EKLS0tLSAvZGV2L251bGwKLSsr KyBiL2RlcHMvbGliZmYvTElDRU5TRS5saWJmZgotQEAgLTAsMCArMSwxOCBAQAotK2xpYmZmIGlz IGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4gVGhlIGxpY2Vuc2UgdGVybXMgYXJlIGZ1 bGx5Ci0rcmVwcm9kdWNlZCBiZWxvdzoKLSsKLSsvKgotKyAqIENvcHlyaWdodCAoYykgMjAxNSBK b2huIFIuIEJyYWRsZXkgPGpyYkB0dXJyZXR0ZWNoLmNvbT4KLSsgKgotKyAqIFBlcm1pc3Npb24g dG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFu eQotKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJv dmlkZWQgdGhhdCB0aGUgYWJvdmUKLSsgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotKyAqCi0rICogVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5U SUVTCi0rICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJ RUQgV0FSUkFOVElFUyBPRgotKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8g RVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SCi0rICogQU5ZIFNQRUNJQUwsIERJ UkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUwot KyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklU UywgV0hFVEhFUiBJTiBBTgotKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBP VEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GCi0rICogT1IgSU4gQ09OTkVDVElP TiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KLSsgKi8KLWRp ZmYgLS1naXQgYS9kZXBzL21lZGlhLXBsYXliYWNrL0xJQ0VOU0UubWVkaWEtcGxheWJhY2sgYi9k ZXBzL21lZGlhLXBsYXliYWNrL0xJQ0VOU0UubWVkaWEtcGxheWJhY2sKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAuLjE3ZDc0ZjRiMwotLS0tIC9kZXYvbnVsbAotKysrIGIv ZGVwcy9tZWRpYS1wbGF5YmFjay9MSUNFTlNFLm1lZGlhLXBsYXliYWNrCi1AQCAtMCwwICsxLDE5 IEBACi0rbWVkaWEtcGxheWJhY2sgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLiBU aGUgbGljZW5zZSB0ZXJtcyBhcmUgZnVsbHkKLStyZXByb2R1Y2VkIGJlbG93OgotKwotKwotKy8q Ci0rICogQ29weXJpZ2h0IChjKSAyMDIzIEh1Z2ggQmFpbGV5IDxvYnMuamltQGdtYWlsLmNvbT4K LSsgKgotKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRl IHRoaXMgc29mdHdhcmUgZm9yIGFueQotKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBp cyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKLSsgKiBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgot KyAqCi0rICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1Ig RElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCi0rICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FS RSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgotKyAqIE1FUkNIQU5UQUJJTElU WSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9S Ci0rICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFN QUdFUyBPUiBBTlkgREFNQUdFUwotKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBP RiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTgotKyAqIEFDVElPTiBPRiBDT05U UkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9G Ci0rICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJ UyBTT0ZUV0FSRS4KLSsgKi8KLWRpZmYgLS1naXQgYS9saWJvYnMvZ3JhcGhpY3MvbGlibnNnaWYv TElDRU5TRS5saWJuc2dpZiBiL2xpYm9icy9ncmFwaGljcy9saWJuc2dpZi9MSUNFTlNFLmxpYm5z Z2lmCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi45YjI4YzBiNDUKLS0t LSAvZGV2L251bGwKLSsrKyBiL2xpYm9icy9ncmFwaGljcy9saWJuc2dpZi9MSUNFTlNFLmxpYm5z Z2lmCi1AQCAtMCwwICsxLDMzIEBACi0rbGlibnNnaWYgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1J VCBsaWNlbnNlLiBUaGUgbGljZW5zaW5nIHN0YXRlbWVudAotK2FuZCB0aGUgZnVsbCBsaWNlbnNl IGFyZSByZXByb2R1Y2VkIGJlbG93LgotKwotKy8qCi0rICogQ29weXJpZ2h0IDIwMDMgSmFtZXMg QnVyc2EgPGJ1cnNhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLSsgKiBDb3B5cmlnaHQgMjAwNCBK b2huIFR5dGdhdCA8Sm9obi5UeXRnYXRAYWF1Zy5uZXQ+Ci0rICogQ29weXJpZ2h0IDIwMDQgUmlj aGFyZCBXaWxzb24gPHJpY2hhcmQud2lsc29uQG5ldHN1cmYtYnJvd3Nlci5vcmc+Ci0rICogQ29w eXJpZ2h0IDIwMDggU2VhbiBGb3ggPGR5bnRyeXhAZ21haWwuY29tPgotKyAqCi0rICogVGhpcyBm aWxlIGlzIHBhcnQgb2YgTmV0U3VyZidzIGxpYm5zZ2lmLCBodHRwOi8vd3d3Lm5ldHN1cmYtYnJv d3Nlci5vcmcvCi0rICogTGljZW5jZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLAotKyAqICAgICAg ICAgICAgICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2Uu cGhwCi0rICovCi0rCi0rVGhlIE1JVCBMaWNlbnNlCi0rCi0rUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQot K29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0raW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwotK3RvIHVzZSwgY29w eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y IHNlbGwKLStjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbSB0aGUgU29mdHdhcmUgaXMKLStmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgotKwotK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCi0rYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0rCi0rVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKLStJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLStGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLStBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCi0rTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLStPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCi0rVEhFIFNP RlRXQVJFLgotZGlmZiAtLWdpdCBhL2xpYm9icy91dGlsL3NpbWRlL0xJQ0VOU0Uuc2ltZGUgYi9s aWJvYnMvdXRpbC9zaW1kZS9MSUNFTlNFLnNpbWRlCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMDAwLi43OGQ0ODJlNzUKLS0tLSAvZGV2L251bGwKLSsrKyBiL2xpYm9icy91dGls L3NpbWRlL0xJQ0VOU0Uuc2ltZGUKLUBAIC0wLDAgKzEsNDAgQEAKLStzaW1kZSBpcyBsaWNlbnNl ZCBhcyBhIGNvbWJpbmF0aW9uIG9mIE1JVCBhbmQgQ0MwIGNvZGUuCi0rCi0rTGljZW5zZSBub3Rp Y2VzIGZvciBib3RoIGFyZSByZXByb2R1Y2VkIGJlbG93OgotKwotKy8qIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBNSVQKLSsgKgotKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCi0rICogb2J0YWluaW5nIGEgY29weSBvZiB0aGlz IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KLSsgKiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0Ci0rICogcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks Ci0rICogbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k L29yIHNlbGwgY29waWVzCi0rICogb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLSsgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKyAqCi0rICogVGhlIGFib3ZlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLSsgKiBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2Fy ZS4KLSsgKgotKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELAotKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKyAqIE1FUkNIQU5UQUJJTElUWSwg RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECi0rICogTk9OSU5GUklOR0VNRU5U LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUwotKyAq IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTgotKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCi0rICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQotKyAqIFNPRlRXQVJFLgotKyAq Ci0rICogQ29weXJpZ2h0OgotKyAqICAgMjAxNy0yMDIwIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVt ZXJzb24uY29tPgotKyAqLwotKwotKy8qIFBvcnRhYmxlIFNuaXBwZXRzIC0gaHR0cHM6Ly9naXR1 Yi5jb20vbmVtZXF1L3BvcnRhYmxlLXNuaXBwZXRzCi0rICogQ3JlYXRlZCBieSBFdmFuIE5lbWVy c29uIDxldmFuQG5lbWVyc29uLmNvbT4KLSsgKgotKyAqICAgVG8gdGhlIGV4dGVudCBwb3NzaWJs ZSB1bmRlciBsYXcsIHRoZSBhdXRob3JzIGhhdmUgd2FpdmVkIGFsbAotKyAqICAgY29weXJpZ2h0 IGFuZCByZWxhdGVkIG9yIG5laWdoYm9yaW5nIHJpZ2h0cyB0byB0aGlzIGNvZGUuICBGb3IKLSsg KiAgIGRldGFpbHMsIHNlZSB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBaZXJvIDEuMCBVbml2ZXJzYWwg bGljZW5zZSBhdAotKyAqICAgaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFp bi96ZXJvLzEuMC8KLSsgKgotKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBDQzAtMS4wCi0r ICovCi1kaWZmIC0tZ2l0IGEvcGx1Z2lucy9kZWNrbGluay9MSUNFTlNFLmRlY2tsaW5rLXNkayBi L3BsdWdpbnMvZGVja2xpbmsvTElDRU5TRS5kZWNrbGluay1zZGsKLW5ldyBmaWxlIG1vZGUgMTAw NjQ0Ci1pbmRleCAwMDAwMDAwMDAuLmQzMjBkODA1YgotLS0tIC9kZXYvbnVsbAotKysrIGIvcGx1 Z2lucy9kZWNrbGluay9MSUNFTlNFLmRlY2tsaW5rLXNkawotQEAgLTAsMCArMSwzMCBAQAotK2Rl Y2tsaW5rLXNkayBpcyBsaWNlbnNlZCB1bmRlciB0byBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlIDEu MCAoQlNMLTEuMCkuCi0rCi0rVGhlIGxpY2Vuc2UgdGV4dCBpcyByZXByb2R1Y2VkIGluIGZ1bGwg YmVsb3c6Ci0rCi0rLyogLUxJQ0VOU0UtU1RBUlQtCi0rKiogQ29weXJpZ2h0IChjKSAyMDIwIEJs YWNrbWFnaWMgRGVzaWduCi0rKioKLSsqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvciBvcmdhbml6YXRpb24KLSsqKiBvYnRhaW5p bmcgYSBjb3B5IG9mIHRoZSBzb2Z0d2FyZSBhbmQgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24g Y292ZXJlZCBieQotKyoqIHRoaXMgbGljZW5zZSAodGhlICJTb2Z0d2FyZSIpIHRvIHVzZSwgcmVw cm9kdWNlLCBkaXNwbGF5LCBkaXN0cmlidXRlLAotKyoqIGV4ZWN1dGUsIGFuZCB0cmFuc21pdCB0 aGUgU29mdHdhcmUsIGFuZCB0byBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlCi0rKiog U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgdGhpcmQtcGFydGllcyB0byB3aG9tIHRoZSBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8KLSsqKiBkbyBzbywgYWxsIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZzoKLSsqKgotKyoqIFRoZSBjb3B5cmlnaHQgbm90aWNlcyBpbiB0aGUgU29mdHdhcmUgYW5kIHRo aXMgZW50aXJlIHN0YXRlbWVudCwgaW5jbHVkaW5nCi0rKiogdGhlIGFib3ZlIGxpY2Vuc2UgZ3Jh bnQsIHRoaXMgcmVzdHJpY3Rpb24gYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciwKLSsqKiBt dXN0IGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBpbiB3aG9sZSBv ciBpbiBwYXJ0LCBhbmQKLSsqKiBhbGwgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU29mdHdhcmUs IHVubGVzcyBzdWNoIGNvcGllcyBvciBkZXJpdmF0aXZlCi0rKiogd29ya3MgYXJlIHNvbGVseSBp biB0aGUgZm9ybSBvZiBtYWNoaW5lLWV4ZWN1dGFibGUgb2JqZWN0IGNvZGUgZ2VuZXJhdGVkIGJ5 Ci0rKiogYSBzb3VyY2UgbGFuZ3VhZ2UgcHJvY2Vzc29yLgotKyoqCi0rKiogVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF U1MgT1IKLSsqKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSsqKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSwgVElUTEUgQU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UCi0rKiogU0hB TEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SIEFOWU9ORSBESVNUUklCVVRJTkcgVEhFIFNPRlRX QVJFIEJFIExJQUJMRQotKyoqIEZPUiBBTlkgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotKyoqIEFSSVNJTkcgRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUgotKyoqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSsqKiAtTElDRU5TRS1FTkQtCi0r Ki8KLS0tIAotMi40MC4wCi0KCmRpZmYgLS1naXQgYS9vYnMtc3R1ZGlvLW9icy1xc3YxMS1BZGQt bGljZW5zZS1kZWNsYXJhdGlvbi1maWxlLnBhdGNoIGIvb2JzLXN0dWRpby1vYnMtcXN2MTEtQWRk LWxpY2Vuc2UtZGVjbGFyYXRpb24tZmlsZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDUwNDQ0Ni4uMDAwMDAwMAotLS0gYS9vYnMtc3R1ZGlvLW9icy1xc3YxMS1BZGQtbGlj ZW5zZS1kZWNsYXJhdGlvbi1maWxlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBA QAotRnJvbSBmYmZhMjVhZGU4NmMyNjA4ODMzM2IzYzVlNmMzOWQ0YTYxZmM3NDhmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTmVhbCBHb21wYSA8bmVhbEBnb21wYS5kZXY+Ci1EYXRl OiBXZWQsIDI2IEFwciAyMDIzIDA3OjU2OjQyIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSBv YnMtcXN2MTE6IEFkZCBsaWNlbnNlIGRlY2xhcmF0aW9uIGZpbGUKLQotLS0tCi0gcGx1Z2lucy9v YnMtcXN2MTEvb2JzLXFzdjExLUxJQ0VOU0UudHh0IHwgNjAgKysrKysrKysrKysrKysrKysrKysr KysrKwotIDEgZmlsZSBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspCi0gY3JlYXRlIG1vZGUgMTAw NjQ0IHBsdWdpbnMvb2JzLXFzdjExL29icy1xc3YxMS1MSUNFTlNFLnR4dAotCi1kaWZmIC0tZ2l0 IGEvcGx1Z2lucy9vYnMtcXN2MTEvb2JzLXFzdjExLUxJQ0VOU0UudHh0IGIvcGx1Z2lucy9vYnMt cXN2MTEvb2JzLXFzdjExLUxJQ0VOU0UudHh0Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXgg MDAwMDAwMDAwLi4yZTRmMzA5NDEKLS0tLSAvZGV2L251bGwKLSsrKyBiL3BsdWdpbnMvb2JzLXFz djExL29icy1xc3YxMS1MSUNFTlNFLnR4dAotQEAgLTAsMCArMSw2MCBAQAotK1RoZSBPQlMgUVNW IHBsdWdpbiBpcyBsaWNlbnNlZCB1bmRlciBlaXRoZXIgdGhlIEJTRC0zLUNsYXVzZSBvciBHUEwt Mi4wLW9ubHkgbGljZW5zZXMuCi0rCi0rVGhlIGxpY2Vuc2UgZGVjbGFyYXRpb24gaXMgcmVwcm9k dWNlZCBiZWxvdzoKLSsKLSsvKgotKwotK1RoaXMgaXMgcHJvdmlkZWQgdW5kZXIgYSBkdWFsIEJT RC9HUEx2MiBsaWNlbnNlLiAgV2hlbiB1c2luZyBvcgotK3JlZGlzdHJpYnV0aW5nIHRoaXMsIHlv dSBtYXkgZG8gc28gdW5kZXIgZWl0aGVyIGxpY2Vuc2UuCi0rCi0rR1BMIExJQ0VOU0UgU1VNTUFS WQotKwotK0NvcHlyaWdodChjKSBPY3QuIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24uCi0rCi0rVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLStpdCB1bmRlciB0aGUgdGVybXMgb2YgdmVyc2lvbiAyIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotK3B1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLgotKwotK1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLStXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLStHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rQ29udGFjdCBJbmZvcm1hdGlvbjoKLSsK LStTZXVuZy1Xb28gS2ltLCBzZXVuZy13b28ua2ltQGludGVsLmNvbQotKzcwNSA1dGggQXZlIFMg IzUwMCwgU2VhdHRsZSwgV0EgOTgxMDQKLSsKLStCU0QgTElDRU5TRQotKwotK0NvcHlyaWdodChj KSA8ZGF0ZT4gSW50ZWwgQ29ycG9yYXRpb24uCi0rCi0rUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0rbW9kaWZpY2F0aW9u LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0r YXJlIG1ldDoKLSsKLSsqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0rbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotKwotKyogUmVkaXN0cmlidXRpb25zIGluIGJp bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLStub3RpY2UsIHRo aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSt0 aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl Ci0rZGlzdHJpYnV0aW9uLgotKwotKyogTmVpdGhlciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3Jh dGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cwotK2NvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotK2Zyb20gdGhpcyBzb2Z0d2FyZSB3 aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSsKLStUSElTIFNPRlRX QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT Ci0rIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ TkcsIEJVVCBOT1QKLStMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLStBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotK09XTkVSIE9SIENPTlRS SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot K1NQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs IEJVVCBOT1QKLStMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLStEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLStUSEVPUlkgT0YgTElBQklM SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0rKElO Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP RiBUSEUgVVNFCi0rT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSsqLwotKwotLS0gCi0yLjQwLjAKLQoKZGlmZiAtLWdp dCBhL29icy1zdHVkaW8uc3BlYyBiL29icy1zdHVkaW8uc3BlYwppbmRleCBjM2E3Y2ExLi45YTA0 MzdiIDEwMDY0NAotLS0gYS9vYnMtc3R1ZGlvLnNwZWMKKysrIGIvb2JzLXN0dWRpby5zcGVjCkBA IC0xNiwyMCArMTYsMjAgQEAKICVnbG9iYWwgb3BlbmgyNjRfc292ZXJzaW9uIDcKIAogCi0lZ2xv YmFsIG9ic3dlYnNvY2tldF92ZXJzaW9uIDUuMi4zCislZ2xvYmFsIG9ic3dlYnNvY2tldF92ZXJz aW9uIDUuMy4wCiAKICNnbG9iYWwgY29tbWl0IGFkODU5YTNmNjZkYWFjMGQzMGVlYmNjOWIwN2Iw YzIwMDRmYjYwNDAKICNnbG9iYWwgc25hcGRhdGUgMjAyMzAzMjYxNzQzCiAjZ2xvYmFsIHNob3J0 Y29tbWl0ICUoYz0le2NvbW1pdH07IGVjaG8gJHtjOjA6N30pCiAKIE5hbWU6ICAgICAgICAgICBv YnMtc3R1ZGlvCi1WZXJzaW9uOiAgICAgICAgMjkuMS4zCi1SZWxlYXNlOiAgICAgICAgNCV7P2Rp c3R9CitWZXJzaW9uOiAgICAgICAgMzAuMC4wfmJldGEzCitSZWxlYXNlOiAgICAgICAgMSV7P2Rp c3R9CiBTdW1tYXJ5OiAgICAgICAgT3BlbiBCcm9hZGNhc3RlciBTb2Z0d2FyZSBTdHVkaW8KIAog IyBPQlMgaXRzZWxmIGlzIEdQTC0yLjAtb3ItbGF0ZXIsIHdoaWxlIHZhcmlvdXMgcGx1Z2luIGRl cGVuZGVuY2llcyBhcmUgb2YgdmFyaW91cyBvdGhlciBsaWNlbnNlcwogIyBUaGUgbGljZW5zZXMg Zm9yIHRob3NlIGRlcGVuZGVuY2llcyBhcmUgY2FwdHVyZWQgd2l0aCB0aGUgYnVuZGxlZCBwcm92 aWRlcyBzdGF0ZW1lbnRzCi1MaWNlbnNlOiAgICAgICAgR1BMLTIuMC1vci1sYXRlciBhbmQgSVND IGFuZCBNSVQgYW5kIEJTRC0xLUNsYXVzZSBhbmQgQlNELTItQ2xhdXNlIGFuZCBCU0QtMy1DbGF1 c2UgYW5kIEJTTC0xLjAgYW5kIExHUEwtMi4xLW9yLWxhdGVyIGFuZCBDQzAtMS4wIGFuZCAoQ0Mw LTEuMCBvciBPcGVuU1NMIG9yIEFwYWNoZS0yLjApIGFuZCBMaWNlbnNlUmVmLUZlZG9yYS1QdWJs aWMtRG9tYWluIGFuZCAoQlNELTMtQ2xhdXNlIG9yIEdQTC0yLjAtb25seSkKK0xpY2Vuc2U6ICAg ICAgICBHUEwtMi4wLW9yLWxhdGVyIGFuZCBNSVQgYW5kIEJTRC0xLUNsYXVzZSBhbmQgQlNELTIt Q2xhdXNlIGFuZCBCU0QtMy1DbGF1c2UgYW5kIEJTTC0xLjAgYW5kIExHUEwtMi4xLW9yLWxhdGVy IGFuZCBDQzAtMS4wIGFuZCAoQ0MwLTEuMCBvciBPcGVuU1NMIG9yIEFwYWNoZS0yLjApIGFuZCBM aWNlbnNlUmVmLUZlZG9yYS1QdWJsaWMtRG9tYWluIGFuZCAoQlNELTMtQ2xhdXNlIG9yIEdQTC0y LjAtb25seSkKIFVSTDogICAgICAgICAgICBodHRwczovL29ic3Byb2plY3QuY29tLwogJWlmIDAl ez9zbmFwZGF0ZX0KIFNvdXJjZTA6ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vb2JzcHJvamVj dC9vYnMtc3R1ZGlvL2FyY2hpdmUvJXtjb21taXR9LyV7bmFtZX0tJXtjb21taXR9LnRhci5negpA QCAtNDIsMjAgKzQyLDIyIEBAIFNvdXJjZTE6ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vb2Jz cHJvamVjdC9vYnMtd2Vic29ja2V0L2FyY2hpdmUvJXtvYnN3ZWJzb2NrCiAKICMgUHJvcG9zZWQg dXBzdHJlYW0KICMjIEZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9vYnNwcm9qZWN0L29icy1zdHVk aW8vcHVsbC84NTI5Ci1QYXRjaDAxMDE6ICAgICAgMDAwMS1VSS1Db25zaXN0ZW50bHktcmVmZXJl bmNlLXRoZS1zb2Z0d2FyZS1IMjY0LWVuY29kZXItLnBhdGNoCi1QYXRjaDAxMDI6ICAgICAgMDAw Mi1vYnMtZmZtcGVnLUFkZC1pbml0aWFsLXN1cHBvcnQtZm9yLXRoZS1PcGVuSDI2NC1ILjI2LnBh dGNoCi1QYXRjaDAxMDM6ICAgICAgMDAwMy1VSS1BZGQtc3VwcG9ydC1mb3ItT3BlbkgyNjQtYXMt dGhlLXdvcnN0LWNhc2UtZmFsbGJhLnBhdGNoCitQYXRjaDAxMDE6ICAgICAgMDEwMS1VSS1Db25z aXN0ZW50bHktcmVmZXJlbmNlLXRoZS1zb2Z0d2FyZS1IMjY0LWVuY29kZXItLnBhdGNoCitQYXRj aDAxMDI6ICAgICAgMDEwMi1vYnMtZmZtcGVnLUFkZC1pbml0aWFsLXN1cHBvcnQtZm9yLXRoZS1P cGVuSDI2NC1ILjI2LnBhdGNoCitQYXRjaDAxMDM6ICAgICAgMDEwMy1VSS1BZGQtc3VwcG9ydC1m b3ItT3BlbkgyNjQtYXMtdGhlLXdvcnN0LWNhc2UtZmFsbGJhLnBhdGNoCisKKyMjIEZyb206IGh0 dHBzOi8vZ2l0aHViLmNvbS9vYnNwcm9qZWN0L29icy1zdHVkaW8vcHVsbC84Nzc3CitQYXRjaDAy MDE6ICAgICAgMDIwMS1kZXBzLUFkZC1saWNlbnNlLWRlY2xhcmF0aW9uLWZpbGVzLnBhdGNoCitQ YXRjaDAyMDI6ICAgICAgMDIwMi1saWJvYnMtQWRkLWxpY2Vuc2UtZGVjbGFyYXRpb24tZmlsZXMu cGF0Y2gKK1BhdGNoMDIwMzogICAgICAwMjAzLWRlY2tsaW5rLUFkZC1saWNlbnNlLWRlY2xhcmF0 aW9uLWZpbGVzLnBhdGNoCitQYXRjaDAyMDQ6ICAgICAgMDIwNC1vYnMtcXN2MTEtQWRkLWxpY2Vu c2UtZGVjbGFyYXRpb24tZmlsZS5wYXRjaAogCiAKICMgRG93bnN0cmVhbSBGZWRvcmEgcGF0Y2hl cwogIyMgVXNlIHN5c3RlbSBxcmNvZGVnZW5jcHAKLVBhdGNoMTAwMTogICAgICBvYnMtc3R1ZGlv LXdlYnNvY2tldC11c2Utc3lzdGVtLXFyY29kZWdlbmNwcC5wYXRjaAorI1BhdGNoMTAwMTogICAg ICBvYnMtc3R1ZGlvLXdlYnNvY2tldC11c2Utc3lzdGVtLXFyY29kZWdlbmNwcC5wYXRjaAogIyMg VXNlIGZkay1hYWMgYnkgZGVmYXVsdAogUGF0Y2gxMDAyOiAgICAgIG9icy1zdHVkaW8tVUktdXNl LWZkay1hYWMtYnktZGVmYXVsdC5wYXRjaAotIyMgQWRkIGxpY2Vuc2UgZGVjbGFyYXRpb25zIGZv ciBidW5kbGVkIGRlcHMKLVBhdGNoOTAwMTogICAgICBvYnMtc3R1ZGlvLWRlcHMtQWRkLWxpY2Vu c2UtZGVjbGFyYXRpb24tZmlsZXMucGF0Y2gKLSMjIEFkZCBsaWNlbnNlIGRlY2xhcmF0aW9uIGZv ciBvYnMtcXN2MTEKLVBhdGNoOTAwMjogICAgICBvYnMtc3R1ZGlvLW9icy1xc3YxMS1BZGQtbGlj ZW5zZS1kZWNsYXJhdGlvbi1maWxlLnBhdGNoCiAKIAogQnVpbGRSZXF1aXJlczogIGdjYwpAQCAt NzMsNiArNzUsNyBAQCBCdWlsZFJlcXVpcmVzOiAgZnJlZXR5cGUtZGV2ZWwKIEJ1aWxkUmVxdWly ZXM6ICBqYW5zc29uLWRldmVsID49IDIuNQogQnVpbGRSZXF1aXJlczogIGpzb24tZGV2ZWwKIEJ1 aWxkUmVxdWlyZXM6ICBsaWJjdXJsLWRldmVsCitCdWlsZFJlcXVpcmVzOiAgbGliZGF0YWNoYW5u ZWwtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICBsaWJkcm0tZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICBs aWJHTC1kZXZlbAogQnVpbGRSZXF1aXJlczogIGxpYmdsdm5kLWRldmVsCkBAIC05MCw2ICs5Myw3 IEBAIEJ1aWxkUmVxdWlyZXM6ICBsaWJ4a2Jjb21tb24tZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICBs dWFqaXQtZGV2ZWwKICVlbmRpZgogQnVpbGRSZXF1aXJlczogIG1iZWR0bHMtZGV2ZWwKK0J1aWxk UmVxdWlyZXM6ICBvbmVWUEwtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICBwY2l1dGlscy1kZXZlbAog QnVpbGRSZXF1aXJlczogIHBpcGV3aXJlLWRldmVsCiBCdWlsZFJlcXVpcmVzOiAgcGlwZXdpcmUt amFjay1hdWRpby1jb25uZWN0aW9uLWtpdC1kZXZlbApAQCAtMTQxLDggKzE0NSw2IEBAIFByb3Zp ZGVzOiAgICAgIGJ1bmRsZWQoYmxha2UyKQogUHJvdmlkZXM6ICAgICAgYnVuZGxlZChqc29uMTEp CiAjIyBMaWNlbnNlOiBNSVQKIFByb3ZpZGVzOiAgICAgIGJ1bmRsZWQobGliY2FwdGlvbikKLSMj IExpY2Vuc2U6IElTQwotUHJvdmlkZXM6ICAgICAgYnVuZGxlZChsaWJmZikKICMjIExpY2Vuc2U6 IEJTRC0xLUNsYXVzZQogUHJvdmlkZXM6ICAgICAgYnVuZGxlZCh1dGhhc2gpCiAjIyBMaWNlbnNl OiBCU0QtMy1DbGF1c2UKQEAgLTIyMyw3ICsyMjUsNiBAQCBjcCBkZXBzL2xpYmNhcHRpb24vTElD RU5TRS50eHQgLmZlZG9yYS1ycG0vbGljZW5zZXMvZGVwcy9saWJjYXB0aW9uLUxJQ0VOU0UudHh0 CiBjcCBwbHVnaW5zL29icy1xc3YxMS9RU1YxMS1MaWNlbnNlLUNsYXJpZmljYXRpb24tRW1haWwu dHh0IC5mZWRvcmEtcnBtL2xpY2Vuc2VzL3BsdWdpbnMvUVNWMTEtTGljZW5zZS1DbGFyaWZpY2F0 aW9uLUVtYWlsLnR4dAogY3AgZGVwcy91dGhhc2gvdXRoYXNoL0xJQ0VOU0UgLmZlZG9yYS1ycG0v bGljZW5zZXMvZGVwcy91dGhhc2gtTElDRU5TRQogY3AgZGVwcy9ibGFrZTIvTElDRU5TRS5ibGFr ZTIgLmZlZG9yYS1ycG0vbGljZW5zZXMvZGVwcy8KLWNwIGRlcHMvbGliZmYvTElDRU5TRS5saWJm ZiAuZmVkb3JhLXJwbS9saWNlbnNlcy9kZXBzLwogY3AgZGVwcy9tZWRpYS1wbGF5YmFjay9MSUNF TlNFLm1lZGlhLXBsYXliYWNrIC5mZWRvcmEtcnBtL2xpY2Vuc2VzL2RlcHMvCiBjcCBsaWJvYnMv Z3JhcGhpY3MvbGlibnNnaWYvTElDRU5TRS5saWJuc2dpZiAuZmVkb3JhLXJwbS9saWNlbnNlcy9k ZXBzLwogY3AgbGlib2JzL3V0aWwvc2ltZGUvTElDRU5TRS5zaW1kZSAuZmVkb3JhLXJwbS9saWNl bnNlcy9kZXBzLwpAQCAtMjUyLDEwICsyNTMsNiBAQCBjcCBwbHVnaW5zL29icy1xc3YxMS9vYnMt cXN2MTEtTElDRU5TRS50eHQgLmZlZG9yYS1ycG0vbGljZW5zZXMvcGx1Z2lucy8KICVpbnN0YWxs CiAlY21ha2VfaW5zdGFsbAogCi0jIEFkZCBtaXNzaW5nIGZpbGVzIHRvIGVuYWJsZSB0aGUgYnVp bGQgb2Ygb2JzLW5kaQotaW5zdGFsbCAtRG02NDQgVUkvb2JzLWZyb250ZW5kLWFwaS9vYnMtZnJv bnRlbmQtYXBpLmggJXtidWlsZHJvb3R9JXtfaW5jbHVkZWRpcn0vb2JzLwotaW5zdGFsbCAtRG02 NDQgY21ha2UvZXh0ZXJuYWwvT2JzUGx1Z2luSGVscGVycy5jbWFrZSAle2J1aWxkcm9vdH0le19s aWJkaXJ9L2NtYWtlL2xpYm9icy8KLQogIyBXb3JrIGFyb3VuZCBicm9rZW4gbGlib2JzLnBjIGZp bGUuLi4KICMgQ2YuIGh0dHBzOi8vZ2l0aHViLmNvbS9vYnNwcm9qZWN0L29icy1zdHVkaW8vaXNz dWVzLzc5NzIKIHNlZCAtZSAnc3xeQ2ZsYWdzOiAuKnxDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfSAt REhBVkVfT0JTQ09ORklHX0h8JyAtaSAle2J1aWxkcm9vdH0le19saWJkaXJ9L3BrZ2NvbmZpZy9s aWJvYnMucGMKQEAgLTMwMiw2ICsyOTksOSBAQCBhcHBzdHJlYW0tdXRpbCB2YWxpZGF0ZS1yZWxh eCAtLW5vbmV0ICV7YnVpbGRyb290fSV7X2RhdGFkaXJ9L21ldGFpbmZvLyouYXBwZGF0YQogCiAK ICVjaGFuZ2Vsb2cKKyogTW9uIFNlcCAxMSAyMDIzIE5lYWwgR29tcGEgPG5nb21wYUBmZWRvcmFw cm9qZWN0Lm9yZz4gLSAzMC4wLjB+YmV0YTMtMQorLSBSZWJhc2UgdG8gMzAuMC4wfmJldGEzCisK ICogRnJpIFNlcCAwOCAyMDIzIE5lYWwgR29tcGEgPG5nb21wYUBmZWRvcmFwcm9qZWN0Lm9yZz4g LSAyOS4xLjMtNAogLSBBZGQgb2JzLXBsdWdpbnMgbGliZXhlY2RpciB0byBsaWJzIHN1YnBhY2th Z2UKIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGM2MzVjOWMuLmNlMDY5 OTkgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKLVNI QTUxMiAob2JzLXN0dWRpby0yOS4xLjMudGFyLmd6KSA9IDU2M2E5YjcxZWJlMjczYjYwNDgwN2I5 YzQzYmU4YmRlNThmYjMyNmU4YTBiNzQxYWZiODRhNDgxYTk5MTc2Yzk2YmY2M2RhMmFhMjZiNmRj YzAyNjU3M2I3ZmIwYmY1M2UwYTI5NmUyZGIwYjkzYzI4ZjBkNDcxMGNkN2NmMDE5Ci1TSEE1MTIg KG9icy13ZWJzb2NrZXQtNS4yLjMudGFyLmd6KSA9IDc2ZTI1YmMwYTNlYjNmNmQxMWIxMjNiNWIx OTM1NDRlNDA5Y2Q3OTRiNGIzOGRlNGRkZDYzNGEzNGNmYmRiYTAyM2MxODFiODFiNDY3ZmIzMWQ3 YjRkZmYxN2Q5YjY2NzgxYmU2ZjFjZjBlN2U2NjA0Mjg2ODA3ODAyMmQwM2FmCitTSEE1MTIgKG9i cy1zdHVkaW8tMzAuMC4wLWJldGEzLnRhci5neikgPSA2MjMwOTlkZmU1ZmYwMzE0NDFkN2IyYjE2 OWMwNzEyYjYxYjBkZDc0Yzg0OGVhZTIzMWU4OTM3Y2JhYTk5MWU1YWQ5MmJiOGEwYmZkMWE3YmE0 MGUxOTMzMTllYTA2MTJmMzI5MGZlNTA3NzM5ZDZjYWZkMmZjN2Y0Mjk4NmZhNAorU0hBNTEyIChv YnMtd2Vic29ja2V0LTUuMy4wLnRhci5neikgPSA4MTRmYTcyMWRjZTJlOTZlMGNlZDYzZDNhYWMz ZGIyOWZiMDUxMjQ0OTM3ZGVlYThhNzA4Y2Y2MjE5MDM3MTBmYWJlZWM5MmI3OGI3Y2UzMDRlOGUx NWQ3ZWM5ZmIzOGRlZDExZWRmNTZmNmFhOGIyM2Q0MTZiMGZiODdiNTk5NAo=