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: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com> To: git-commits@fedoraproject.org Subject: [rpms/apptainer] migrate-spdx: update to 1.2.0-rc.2 Date: Mon, 03 Aug 2026 17:53:09 GMT Message-ID: <178577958954.1.5087195749873861186.rpms-apptainer-5cd943273307@fedoraproject.org> List-ID: X-Git-Repo: rpms/apptainer X-Git-Branch: migrate-spdx X-Git-Rev: 5cd943273307983b55dc930de98afa9e64f96d13 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYXBwdGFpbmVyCkJy YW5jaCA6IG1pZ3JhdGUtc3BkeApDb21taXQgOiA1Y2Q5NDMyNzMzMDc5ODNiNTVkYzkzMGRlOThh ZmE5ZTY0Zjk2ZDEzCkF1dGhvciA6IERhdmUgRHlrc3RyYSA8MjEyOTc0MytEckRhdmVEQHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZSAgIDogMjAyMy0wNy0wNlQwOTowMjo1OC0wNTowMApT dGF0cyAgOiArMzAvLTIwMjMgaW4gNSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9y YXByb2plY3Qub3JnL3JwbXMvYXBwdGFpbmVyL2MvNWNkOTQzMjczMzA3OTgzYjU1ZGM5MzBkZTk4 YWZhOWU2NGY5NmQxMz9icmFuY2g9bWlncmF0ZS1zcGR4CgpMb2c6CnVwZGF0ZSB0byAxLjIuMC1y Yy4yCgotLS0KZGlmZiAtLWdpdCBhLzcwLnBhdGNoIGIvNzAucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDlkODY2MGQuLjAwMDAwMDAKLS0tIGEvNzAucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxNzg0ICswLDAgQEAKLUZyb20gMmZmODM3YjgxNGU4NGVlZGMyNTU3NDAxNGRh OWVkMjRlZTQ0YjdiNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtldmluIFZpZ29y IDxrdmlnb3JAZ21haWwuY29tPgotRGF0ZTogVGh1LCA2IEZlYiAyMDIwIDA5OjU5OjU2IC0wODAw Ci1TdWJqZWN0OiBbUEFUQ0ggMS8zXSBBZGQgbG9ja2luZyB0byBjYWNoZSBBUEkgaW4gYW50aWNp cGF0aW9uIG9mIG11bHRpdGhyZWFkZWQKLSBkZWNvbXByZXNzaW9uLgotCi1UaGUgZXhpc3Rpbmcg Y2FjaGUgQVBJIGhhcyBlZmZlY3RpdmVseSBubyBsb2NraW5nIGFuZCByZWxpZXMgb24gdGhlIHNp bmdsZS0KLXRocmVhZGVkIG5hdHVyZSBvZiB0aGUgY29kZSB0byBwcmV2ZW50IGNvbnRlbnRpb24g b24gY2FjaGUgZW50cmllcy4KLUFzIGEgZmlyc3Qgc3RlcCB0byBtdWx0aXRocmVhZGluZyB0aGUg ZHJpdmVyLCByZWZhY3RvciB0aGUgY2FjaGUgQVBJIHRvIGFsbG93Ci1hbHRlcm5hdGl2ZSBpbXBs ZW1lbnRhdGlvbnMuIEluIHRoaXMgY2hhbmdlc2V0IHRoZSBBUEkgaXMgY2hhbmdlZCBidXQgdGhl Ci1pbnRlcm5hbCBjYWNoZSBpbXBsZW1lbnRhdGlvbiBpcyBub3QgbWFrZSB0aHJlYWQtc2FmZSwg c28gaXQgc3RpbGwgc3VpdGFibGUKLW9ubHkgZm9yIHNpbmdsZS10aHJlYWRlZCB1c2FnZS4KLQot U3BlY2lmaWMgY2hhbmdlczoKLQotKiAgIHNxZnNfY2FjaGUgdHlwZSBpcyBtYWRlIG9wYXF1ZS4K LSogICBwcmV2aW91c2x5LCBuZXdseSBhbGxvY2F0ZWQgY2FjaGUgZW50cmllcyB3ZXJlIGFzc3Vt ZWQgdmFsaWQuIFRoaXMgbWVhbnQgdGhhdAotICAgIG9uIGFueSBmYWlsdXJlIHBhdGggZm9sbG93 aW5nIGEgY2FjaGUgZW50cnkgYWxsb2NhdGlvbiwgb25lIGhhZCB0byBiZSBjYXJlZnVsCi0gICAg dG8gY2FsbCBzcWZzX2NhY2hlX2ludmFsaWRhdGUoKS4gVGhlIGFzc3VtcHRpb24gaXMgbm93IHJl dmVyc2VkLCBjYWNoZQotICAgIGVudHJpZXMgYXJlIGludmFsaWQgdW50aWwgZXhwbGljaXRseSBt YXJrZWQgdmFsaWQgd2l0aAotICAgIHNxZnNfY2FjaGVfZW50cnlfdmFsaWQoKS4gVGhpcyBzaW1w bGlmaWVzIGVycm9yIGhhbmRsaW5nLgotKiAgIGJsb2NrIGNhY2hlIGNvZGUgd2FzIGludGVybWl4 ZWQgd2l0aCBnZW5lcmljIGNhY2hlIGNvZGUsIHJlbG9jYXRlIHRvIGZzLmMKLSogICBjYWNoZSBl dmljdGlvbiBsZWQgdG8gb2JqZWN0IGRlc3RydWN0aW9uIGluIGJsb2NrIGNhY2hlLiBUaGUgb25s eSB0aGluZwotICAgIHByZXZlbnRpbmcgY2FjaGUgZXZpY3Rpb24gd2hpbGUgYmxvY2sgb2JqZWN0 IGluIHVzZSBpcyBzaW5nbGUtdGhyZWFkZWQKLSAgICBuYXR1cmUgb2YgY29kZS4gSW5zdGVhZCB1 c2UgYSByZWZjb3VudGluZyBtZWNoYW5pc20gb24gdGhlIGJsb2NrIGVudHJpZXMKLSAgICBzbyB0 aGF0IHdlIGNhbiBpbmRlcGVuZGVudGx5IG1hbmFnZSBibG9jayBsaWZldGltZS4KLS0tLQotIE1h a2VmaWxlLmFtICAgICAgIHwgICA2ICstCi0gY2FjaGUuYyAgICAgICAgICAgfCAxNDIgKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQotIGNhY2hlLmggICAgICAg ICAgIHwgIDQwICsrKysrKy0tLS0tLS0KLSBjb21tb24uaCAgICAgICAgICB8ICAyNiArKysrKysr Ky0KLSBmaWxlLmMgICAgICAgICAgICB8ICAyMyArKysrLS0tLQotIGZpbGUuaCAgICAgICAgICAg IHwgICA0IC0tCi0gZnMuYyAgICAgICAgICAgICAgfCAgNjEgKysrKysrKysrKysrKysrKy0tLS0K LSBmcy5oICAgICAgICAgICAgICB8ICAgNSArKwotIHRhYmxlLmMgICAgICAgICAgIHwgICAyICst Ci0gdGVzdHMvY2FjaGV0ZXN0LmMgfCAxMDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwotIDEwIGZpbGVzIGNoYW5nZWQsIDMxNCBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRpb25z KC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2NhY2hldGVzdC5jCi0KLWRpZmYgLS1naXQg YS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCi1pbmRleCA1NjU5Y2QyMi4uZWFmN2FjOTcgMTAw NjQ0Ci0tLS0gYS9NYWtlZmlsZS5hbQotKysrIGIvTWFrZWZpbGUuYW0KLUBAIC0xMDUsOSArMTA1 LDExIEBAIGVuZGlmCi0gVEVTVFMgPQotIGlmIFNRX0ZVU0VfVEVTVFMKLSBURVNUUyArPSB0ZXN0 cy9sbC1zbW9rZS5zaAotLWNoZWNrX1BST0dSQU1TID0gZW5kaWFudGVzdAotK2NoZWNrX1BST0dS QU1TID0gY2FjaGV0ZXN0IGVuZGlhbnRlc3QKLStjYWNoZXRlc3RfU09VUkNFUz10ZXN0cy9jYWNo ZXRlc3QuYwotK2NhY2hldGVzdF9MREFERD1saWJzcXVhc2hmdXNlLmxhICQoQ09NUFJFU1NJT05f TElCUykKLSBlbmRpYW50ZXN0X1NPVVJDRVMgPSB0ZXN0cy9lbmRpYW50ZXN0LmMKLS1URVNUUyAr PSBlbmRpYW50ZXN0Ci0rVEVTVFMgKz0gY2FjaGV0ZXN0IGVuZGlhbnRlc3QKLSBlbmRpZgotIGlm IFNRX0RFTU9fVEVTVFMKLSBURVNUUyArPSB0ZXN0cy9scy5zaAotZGlmZiAtLWdpdCBhL2NhY2hl LmMgYi9jYWNoZS5jCi1pbmRleCAwZGVhY2ZjYS4uMzZkMDIyMzQgMTAwNjQ0Ci0tLS0gYS9jYWNo ZS5jCi0rKysgYi9jYWNoZS5jCi1AQCAtMjIsODUgKzIyLDEyMSBAQAotICAqIChJTkNMVURJTkcg TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT RSBPRgotICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ VFkgT0YgU1VDSCBEQU1BR0UuCi0gICovCi0rCi0rI2luY2x1ZGUgImNvbmZpZy5oIgotICNpbmNs dWRlICJjYWNoZS5oIgotIAotICNpbmNsdWRlICJmcy5oIgotIAotKyNpbmNsdWRlIDxhc3NlcnQu aD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gCi0rdHlwZWRlZiBzdHJ1Y3Qgc3Fmc19jYWNoZV9p bnRlcm5hbCB7Ci0rCXVpbnQ4X3QgKmJ1ZjsKLSsKLSsJc3Fmc19jYWNoZV9kaXNwb3NlIGRpc3Bv c2U7Ci0rCi0rCXNpemVfdCBzaXplLCBjb3VudDsKLSsJc2l6ZV90IG5leHQ7IC8qIG5leHQgYmxv Y2sgdG8gZXZpY3QgKi8KLSt9IHNxZnNfY2FjaGVfaW50ZXJuYWw7Ci0rCi0rdHlwZWRlZiBzdHJ1 Y3QgewotKwlpbnQgdmFsaWQ7Ci0rCXNxZnNfY2FjaGVfaWR4IGlkeDsKLSt9IHNxZnNfY2FjaGVf ZW50cnlfaGRyOwotKwotIHNxZnNfZXJyIHNxZnNfY2FjaGVfaW5pdChzcWZzX2NhY2hlICpjYWNo ZSwgc2l6ZV90IHNpemUsIHNpemVfdCBjb3VudCwKLS0JCXNxZnNfY2FjaGVfZGlzcG9zZSBkaXNw b3NlKSB7Ci0tCWNhY2hlLT5zaXplID0gc2l6ZTsKLS0JY2FjaGUtPmNvdW50ID0gY291bnQ7Ci0t CWNhY2hlLT5kaXNwb3NlID0gZGlzcG9zZTsKLS0JY2FjaGUtPm5leHQgPSAwOwotLQkKLS0JY2Fj aGUtPmlkeHMgPSBjYWxsb2MoY291bnQsIHNpemVvZihzcWZzX2NhY2hlX2lkeCkpOwotLQljYWNo ZS0+YnVmID0gY2FsbG9jKGNvdW50LCBzaXplKTsKLS0JaWYgKGNhY2hlLT5pZHhzICYmIGNhY2hl LT5idWYpCi0rCQkJIHNxZnNfY2FjaGVfZGlzcG9zZSBkaXNwb3NlKSB7Ci0rCi0rCXNxZnNfY2Fj aGVfaW50ZXJuYWwgKmMgPSBtYWxsb2Moc2l6ZW9mKHNxZnNfY2FjaGVfaW50ZXJuYWwpKTsKLSsJ aWYgKCFjKSB7Ci0rCQlyZXR1cm4gU1FGU19FUlI7Ci0rCX0KLSsKLSsJYy0+c2l6ZSA9IHNpemUg KyBzaXplb2Yoc3Fmc19jYWNoZV9lbnRyeV9oZHIpOwotKwljLT5jb3VudCA9IGNvdW50OwotKwlj LT5kaXNwb3NlID0gZGlzcG9zZTsKLSsJYy0+bmV4dCA9IDA7Ci0rCi0rCWMtPmJ1ZiA9IGNhbGxv Yyhjb3VudCwgYy0+c2l6ZSk7Ci0rCi0rCWlmIChjLT5idWYpIHsKLSsJCSpjYWNoZSA9IGM7Ci0g CQlyZXR1cm4gU1FGU19PSzsKLS0JCi0tCXNxZnNfY2FjaGVfZGVzdHJveShjYWNoZSk7Ci0rCX0K LSsKLSsJc3Fmc19jYWNoZV9kZXN0cm95KCZjKTsKLSAJcmV0dXJuIFNRRlNfRVJSOwotIH0KLSAK LS1zdGF0aWMgdm9pZCAqc3Fmc19jYWNoZV9lbnRyeShzcWZzX2NhY2hlICpjYWNoZSwgc2l6ZV90 IGkpIHsKLS0JcmV0dXJuIGNhY2hlLT5idWYgKyBpICogY2FjaGUtPnNpemU7Ci0rc3RhdGljIHNx ZnNfY2FjaGVfZW50cnlfaGRyICpzcWZzX2NhY2hlX2VudHJ5X2hlYWRlcigKLSsJCQkJCQkgICAg IHNxZnNfY2FjaGVfaW50ZXJuYWwqIGNhY2hlLAotKwkJCQkJCSAgICAgc2l6ZV90IGkpIHsKLSsJ cmV0dXJuIChzcWZzX2NhY2hlX2VudHJ5X2hkciAqKShjYWNoZS0+YnVmICsgaSAqIGNhY2hlLT5z aXplKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQqIHNxZnNfY2FjaGVfZW50cnkoc3Fmc19jYWNoZV9p bnRlcm5hbCogY2FjaGUsIHNpemVfdCBpKSB7Ci0rCXJldHVybiAodm9pZCAqKShzcWZzX2NhY2hl X2VudHJ5X2hlYWRlcihjYWNoZSwgaSkgKyAxKTsKLSB9Ci0gCi0gdm9pZCBzcWZzX2NhY2hlX2Rl c3Ryb3koc3Fmc19jYWNoZSAqY2FjaGUpIHsKLS0JaWYgKGNhY2hlLT5idWYgJiYgY2FjaGUtPmlk eHMpIHsKLS0JCXNpemVfdCBpOwotLQkJZm9yIChpID0gMDsgaSA8IGNhY2hlLT5jb3VudDsgKytp KSB7Ci0tCQkJaWYgKGNhY2hlLT5pZHhzW2ldICE9IFNRRlNfQ0FDSEVfSURYX0lOVkFMSUQpCi0t CQkJCWNhY2hlLT5kaXNwb3NlKHNxZnNfY2FjaGVfZW50cnkoY2FjaGUsIGkpKTsKLSsJaWYgKGNh Y2hlICYmICpjYWNoZSkgewotKwkJc3Fmc19jYWNoZV9pbnRlcm5hbCAqYyA9ICpjYWNoZTsKLSsJ CWlmIChjLT5idWYpIHsKLSsJCQlzaXplX3QgaTsKLSsJCQlmb3IgKGkgPSAwOyBpIDwgYy0+Y291 bnQ7ICsraSkgewotKwkJCQlzcWZzX2NhY2hlX2VudHJ5X2hkciAqaGRyID0KLSsJCQkJCXNxZnNf Y2FjaGVfZW50cnlfaGVhZGVyKGMsIGkpOwotKwkJCQlpZiAoaGRyLT52YWxpZCkgewotKwkJCQkJ Yy0+ZGlzcG9zZSgodm9pZCAqKShoZHIgKyAxKSk7Ci0rCQkJCX0KLSsJCQl9Ci0gCQl9Ci0rCQlm cmVlKGMtPmJ1Zik7Ci0rCQlmcmVlKGMpOwotKwkJKmNhY2hlID0gTlVMTDsKLSAJfQotLQlmcmVl KGNhY2hlLT5idWYpOwotLQlmcmVlKGNhY2hlLT5pZHhzKTsKLSB9Ci0gCi0gdm9pZCAqc3Fmc19j YWNoZV9nZXQoc3Fmc19jYWNoZSAqY2FjaGUsIHNxZnNfY2FjaGVfaWR4IGlkeCkgewotIAlzaXpl X3QgaTsKLS0JZm9yIChpID0gMDsgaSA8IGNhY2hlLT5jb3VudDsgKytpKSB7Ci0tCQlpZiAoY2Fj aGUtPmlkeHNbaV0gPT0gaWR4KQotLQkJCXJldHVybiBzcWZzX2NhY2hlX2VudHJ5KGNhY2hlLCBp KTsKLSsJc3Fmc19jYWNoZV9pbnRlcm5hbCAqYyA9ICpjYWNoZTsKLSsJc3Fmc19jYWNoZV9lbnRy eV9oZHIgKmhkcjsKLSsKLSsJZm9yIChpID0gMDsgaSA8IGMtPmNvdW50OyArK2kpIHsKLSsJCWhk ciA9IHNxZnNfY2FjaGVfZW50cnlfaGVhZGVyKGMsIGkpOwotKwkJaWYgKGhkci0+aWR4ID09IGlk eCkgewotKwkJCWFzc2VydChoZHItPnZhbGlkKTsKLSsJCQlyZXR1cm4gc3Fmc19jYWNoZV9lbnRy eShjLCBpKTsKLSsJCX0KLSAJfQotLQlyZXR1cm4gTlVMTDsKLS19Ci0gCi0tdm9pZCAqc3Fmc19j YWNoZV9hZGQoc3Fmc19jYWNoZSAqY2FjaGUsIHNxZnNfY2FjaGVfaWR4IGlkeCkgewotLQlzaXpl X3QgaSA9IChjYWNoZS0+bmV4dCsrKTsKLS0JY2FjaGUtPm5leHQgJT0gY2FjaGUtPmNvdW50Owot LQkKLS0JaWYgKGNhY2hlLT5pZHhzW2ldICE9IFNRRlNfQ0FDSEVfSURYX0lOVkFMSUQpCi0tCQlj YWNoZS0+ZGlzcG9zZShzcWZzX2NhY2hlX2VudHJ5KGNhY2hlLCBpKSk7Ci0tCQotLQljYWNoZS0+ aWR4c1tpXSA9IGlkeDsKLS0JcmV0dXJuIHNxZnNfY2FjaGVfZW50cnkoY2FjaGUsIGkpOwotLX0K LSsJLyogTm8gZXhpc3RpbmcgZW50cnk7IGZyZWUgb25lIGlmIG5lY2Vzc2FyeSwgYWxsb2NhdGUg YSBuZXcgb25lLiAqLwotKwlpID0gKGMtPm5leHQrKyk7Ci0rCWMtPm5leHQgJT0gYy0+Y291bnQ7 Ci0gCi0tLyogc3Fmc19jYWNoZV9hZGQgY2FuIGJlIGNhbGxlZCBidXQgdGhlIGNhbGxlciBjYW4g ZmFpbCB0byBmaWxsIGl0IChJTwotLSAqIGVycm9yLCBldGMpLiAgc3Fmc19jYWNoZV9pbnZhbGlk YXRlIGludmFsaWRhdGVzIHRoZSBjYWNoZSBlbnRyeS4KLS0gKiBJdCBkb2VzIG5vdCBjYWxsIGRp c3Bvc2U7IGl0IG1lcmVseSBtYXJrcyB0aGUgZW50cnkgYXMgcmV1c2FibGUKLS0gKiBzaW5jZSBp dCBpcyBuZXZlciBmdWxseSBpbml0aWFsaXplZC4KLS0gKi8KLS12b2lkIHNxZnNfY2FjaGVfaW52 YWxpZGF0ZShzcWZzX2NhY2hlICpjYWNoZSwgc3Fmc19jYWNoZV9pZHggaWR4KSB7Ci0tCXNpemVf dCBpOwotLQlmb3IgKGkgPSAwOyBpIDwgY2FjaGUtPmNvdW50OyArK2kpIHsKLS0JCWlmIChjYWNo ZS0+aWR4c1tpXSA9PSBpZHgpIHsKLS0JCQljYWNoZS0+aWR4c1tpXSA9IFNRRlNfQ0FDSEVfSURY X0lOVkFMSUQ7Ci0tCQkJcmV0dXJuOwotLQkJfQotKwloZHIgPSBzcWZzX2NhY2hlX2VudHJ5X2hl YWRlcihjLCBpKTsKLSsJaWYgKGhkci0+dmFsaWQpIHsKLSsJCS8qIGV2aWN0ICovCi0rCQljLT5k aXNwb3NlKCh2b2lkICopKGhkciArIDEpKTsKLSsJCWhkci0+dmFsaWQgPSAwOwotIAl9Ci0rCi0r CWhkci0+aWR4ID0gaWR4OwotKwlyZXR1cm4gKHZvaWQgKikoaGRyICsgMSk7Ci0rfQotKwotK2lu dCBzcWZzX2NhY2hlX2VudHJ5X3ZhbGlkKGNvbnN0IHNxZnNfY2FjaGUgKmNhY2hlLCBjb25zdCB2 b2lkICplKSB7Ci0rCXNxZnNfY2FjaGVfZW50cnlfaGRyICpoZHIgPSAoKHNxZnNfY2FjaGVfZW50 cnlfaGRyICopZSkgLSAxOwotKwlyZXR1cm4gaGRyLT52YWxpZDsKLSB9Ci0gCi0tc3RhdGljIHZv aWQgc3Fmc19ibG9ja19jYWNoZV9kaXNwb3NlKHZvaWQgKmRhdGEpIHsKLS0Jc3Fmc19ibG9ja19j YWNoZV9lbnRyeSAqZW50cnkgPSAoc3Fmc19ibG9ja19jYWNoZV9lbnRyeSopZGF0YTsKLS0Jc3Fm c19ibG9ja19kaXNwb3NlKGVudHJ5LT5ibG9jayk7Ci0rdm9pZCBzcWZzX2NhY2hlX2VudHJ5X21h cmtfdmFsaWQoc3Fmc19jYWNoZSAqY2FjaGUsIHZvaWQgKmUpIHsKLSsJc3Fmc19jYWNoZV9lbnRy eV9oZHIgKmhkciA9ICgoc3Fmc19jYWNoZV9lbnRyeV9oZHIgKillKSAtIDE7Ci0rCWFzc2VydCho ZHItPnZhbGlkID09IDApOwotKwloZHItPnZhbGlkID0gMTsKLSB9Ci0gCi0tc3Fmc19lcnIgc3Fm c19ibG9ja19jYWNoZV9pbml0KHNxZnNfY2FjaGUgKmNhY2hlLCBzaXplX3QgY291bnQpIHsKLS0J cmV0dXJuIHNxZnNfY2FjaGVfaW5pdChjYWNoZSwgc2l6ZW9mKHNxZnNfYmxvY2tfY2FjaGVfZW50 cnkpLCBjb3VudCwKLS0JCSZzcWZzX2Jsb2NrX2NhY2hlX2Rpc3Bvc2UpOwotK3ZvaWQgc3Fmc19j YWNoZV9wdXQoY29uc3Qgc3Fmc19jYWNoZSAqY2FjaGUsIGNvbnN0IHZvaWQgKmUpIHsKLSsJLy8g bmFkYSwgd2UgaGF2ZSBubyBsb2NraW5nIGluIHNpbmdsZS10aHJlYWRlZCBpbXBsZW1lbnRhdGlv bi4KLSB9Ci1kaWZmIC0tZ2l0IGEvY2FjaGUuaCBiL2NhY2hlLmgKLWluZGV4IGI3OGM1MjRkLi5k YTQ3MTM1MiAxMDA2NDQKLS0tLSBhL2NhY2hlLmgKLSsrKyBiL2NhY2hlLmgKLUBAIC0zMywzNSAr MzMsMzcgQEAKLSAgKiAgLSBObyB0aHJlYWQgc2FmZXR5Ci0gICogIC0gTWlzc2VzIGFyZSBjYWxs ZXIncyByZXNwb25zaWJpbGl0eQotICAqLwotLSNkZWZpbmUgU1FGU19DQUNIRV9JRFhfSU5WQUxJ RCAwCi0gCi0gdHlwZWRlZiB1aW50NjRfdCBzcWZzX2NhY2hlX2lkeDsKLSB0eXBlZGVmIHZvaWQg KCpzcWZzX2NhY2hlX2Rpc3Bvc2UpKHZvaWQqIGRhdGEpOwotIAotLXR5cGVkZWYgc3RydWN0IHsK LS0Jc3Fmc19jYWNoZV9pZHggKmlkeHM7Ci0tCXVpbnQ4X3QgKmJ1ZjsKLS0JCi0tCXNxZnNfY2Fj aGVfZGlzcG9zZSBkaXNwb3NlOwotLQkKLS0Jc2l6ZV90IHNpemUsIGNvdW50OwotLQlzaXplX3Qg bmV4dDsgLyogbmV4dCBibG9jayB0byBldmljdCAqLwotLX0gc3Fmc19jYWNoZTsKLStzdHJ1Y3Qg c3Fmc19jYWNoZV9pbnRlcm5hbDsKLSt0eXBlZGVmIHN0cnVjdCBzcWZzX2NhY2hlX2ludGVybmFs ICpzcWZzX2NhY2hlOwotIAotIHNxZnNfZXJyIHNxZnNfY2FjaGVfaW5pdChzcWZzX2NhY2hlICpj YWNoZSwgc2l6ZV90IHNpemUsIHNpemVfdCBjb3VudCwKLSAJc3Fmc19jYWNoZV9kaXNwb3NlIGRp c3Bvc2UpOwotIHZvaWQgc3Fmc19jYWNoZV9kZXN0cm95KHNxZnNfY2FjaGUgKmNhY2hlKTsKLSAK LSsvKiBHZXQgYW4gZW50cnkgZm9yIHRoZSBnaXZlbiBpbmRleC4KLSsgKgotKyAqIFRoaXMgd2ls bCBhbHdheXMgc3VjY2VlZCAoZXZpY3RpbmcgaWYgbmVjZXNzYXJ5KS4gVGhlIGNhbGxlciBtdXN0 IHRoZW4KLSsgKiBjYWxsIHNxZnNfY2FjaGVfZW50cnlfdmFsaWQoKSB0byBkZXRlcm1pbmUgaWYg dGhlIGVudHJ5IGlzIHZhbGlkLiBJZiBub3QKLSsgKiB2YWxpZCwgdGhlIGVudHJ5IGlzIG5ld2x5 IGFsbG9jYXRlZCBhbmQgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKLSsgKiBpbml0aWFs aXppbmcgaXQgYW5kIHRoZW4gY2FsbGluZyBzcWZzX2NhY2hlX2VudHJ5X21hcmtfdmFsaWQoKS4K LSsgKgotKyAqIFRoaXMgY2FsbCBtYXkgYmxvY2sgaW4gbXVsdGl0aHJlYWRlZCBjYXNlLgotKyAq Ci0rICogSW4gbXVsdGl0aHJlYWRlZCBjYXNlLCB0aGUgY2FjaGUgaXMgbG9ja2VkIG9uIHJldHVy biAobm8gZW50cmllcyBjYW4KLSsgKiBiZSBhZGRlZCBvciByZW1vdmVkKS4gQ2FsbGVyIG11c3Qg Y2FsbCBzcWZzX2NhY2hlX3B1dCgpIHdoZW4gaXQgaXMgc2FmZQotKyAqIHRvIGV2aWN0IHRoZSBy ZXR1cm5lZCBjYWNoZSBlbnRyeS4KLSsgKi8KLSB2b2lkICpzcWZzX2NhY2hlX2dldChzcWZzX2Nh Y2hlICpjYWNoZSwgc3Fmc19jYWNoZV9pZHggaWR4KTsKLS12b2lkICpzcWZzX2NhY2hlX2FkZChz cWZzX2NhY2hlICpjYWNoZSwgc3Fmc19jYWNoZV9pZHggaWR4KTsKLS12b2lkIHNxZnNfY2FjaGVf aW52YWxpZGF0ZShzcWZzX2NhY2hlICpjYWNoZSwgc3Fmc19jYWNoZV9pZHggaWR4KTsKLS0KLS0K LS10eXBlZGVmIHN0cnVjdCB7Ci0tCXNxZnNfYmxvY2sgKmJsb2NrOwotLQlzaXplX3QgZGF0YV9z aXplOwotLX0gc3Fmc19ibG9ja19jYWNoZV9lbnRyeTsKLSsvKiBpbmZvcm0gY2FjaGUgaXQgaXMg bm93IHNhZmUgdG8gZXZpY3QgdGhpcyBlbnRyeS4gKi8KLSt2b2lkIHNxZnNfY2FjaGVfcHV0KGNv bnN0IHNxZnNfY2FjaGUgKmNhY2hlLCBjb25zdCB2b2lkICplKTsKLSAKLS1zcWZzX2VyciBzcWZz X2Jsb2NrX2NhY2hlX2luaXQoc3Fmc19jYWNoZSAqY2FjaGUsIHNpemVfdCBjb3VudCk7Ci0rLyog RGV0ZXJtaW5lIGlmIGNhY2hlIGVudHJ5IGNvbnRhaW5zIHZhbGlkIGNvbnRlbnRzLiAqLwotK2lu dCBzcWZzX2NhY2hlX2VudHJ5X3ZhbGlkKGNvbnN0IHNxZnNfY2FjaGUgKmNhY2hlLCBjb25zdCB2 b2lkICplKTsKLSsvKiBNYXJrIGNhY2hlIGVudHJ5IGFzIGNvbnRhaW5pbmcgdmFsaWQgY29udGVu dHMuICovCi0rdm9pZCBzcWZzX2NhY2hlX2VudHJ5X21hcmtfdmFsaWQoc3Fmc19jYWNoZSAqY2Fj aGUsIHZvaWQgKmUpOwotIAotICNlbmRpZgotZGlmZiAtLWdpdCBhL2NvbW1vbi5oIGIvY29tbW9u LmgKLWluZGV4IGFlYWM1YzY3Li45ZDUwZTAwNiAxMDA2NDQKLS0tLSBhL2NvbW1vbi5oCi0rKysg Yi9jb21tb24uaAotQEAgLTMyLDEyICszMiwyMyBAQAotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K LSAKLSAjaWZkZWYgX1dJTjMyCi0tCSNpbmNsdWRlIDx3aW4zMi5oPgotKyMgaW5jbHVkZSA8d2lu MzIuaD4KLSsjIGluY2x1ZGUgPGludHJpbi5oPgotKyMgZGVmaW5lIGF0b21pY19pbmNfcmVsYXhl ZChwdHIpIFwKLSsJX0ludGVybG9ja2VkSW5jcmVtZW50KHB0cikKLSsjIGRlZmluZSBhdG9taWNf ZGVjX2FjcXJlbChwdHIpIFwKLSsJX0ludGVybG9ja2VkRGVjcmVtZW50KHB0cikKLSAjZWxzZQot IAl0eXBlZGVmIG1vZGVfdCBzcWZzX21vZGVfdDsKLSAJdHlwZWRlZiB1aWRfdCBzcWZzX2lkX3Q7 Ci0gCXR5cGVkZWYgb2ZmX3Qgc3Fmc19vZmZfdDsKLSAJdHlwZWRlZiBpbnQgc3Fmc19mZF90Owot KwotKyMgZGVmaW5lIGF0b21pY19pbmNfcmVsYXhlZChwdHIpIFwKLSsJX19hdG9taWNfYWRkX2Zl dGNoKCZibG9jay0+cmVmY291bnQsIDEsIF9fQVRPTUlDX1JFTEFYRUQpCi0rIyBkZWZpbmUgYXRv bWljX2RlY19hY3FyZWwocHRyKSBcCi0rCV9fYXRvbWljX3N1Yl9mZXRjaCgmYmxvY2stPnJlZmNv dW50LCAxLCBfX0FUT01JQ19BQ1FfUkVMKQotKwotICNlbmRpZgotIAotIHR5cGVkZWYgZW51bSB7 Ci1AQCAtNTksNiArNzAsNyBAQCB0eXBlZGVmIHN0cnVjdCBzcWZzX2lub2RlIHNxZnNfaW5vZGU7 Ci0gdHlwZWRlZiBzdHJ1Y3QgewotIAlzaXplX3Qgc2l6ZTsKLSAJdm9pZCAqZGF0YTsKLSsJbG9u ZyByZWZjb3VudDsKLSB9IHNxZnNfYmxvY2s7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgewotQEAgLTY2 LDQgKzc4LDE2IEBAIHR5cGVkZWYgc3RydWN0IHsKLSAJc2l6ZV90IG9mZnNldDsKLSB9IHNxZnNf bWRfY3Vyc29yOwotIAotKy8qIEluY3JlbWVudCB0aGUgcmVmY291bnQgb24gdGhlIGJsb2NrLiAq LwotK3N0YXRpYyBpbmxpbmUgdm9pZCBzcWZzX2Jsb2NrX3JlZihzcWZzX2Jsb2NrICpibG9jaykg ewotKwlhdG9taWNfaW5jX3JlbGF4ZWQoJmJsb2NrLT5yZWZjb3VudCk7Ci0rfQotKwotKy8qIGRl Y3JlbWVudCB0aGUgcmVmY291bnQgb24gdGhlIGJsb2NrLCByZXR1cm4gbm9uLXplcm8gaWYgd2Ug aGVsZCB0aGUgbGFzdAotKyAqIHJlZmVyZW5jZS4KLSsgKi8KLStzdGF0aWMgaW5saW5lIGludCBz cWZzX2Jsb2NrX2RlcmVmKHNxZnNfYmxvY2sgKmJsb2NrKSB7Ci0rCXJldHVybiBhdG9taWNfZGVj X2FjcXJlbCgmYmxvY2stPnJlZmNvdW50KSA9PSAwOwotK30KLSsKLSAjZW5kaWYKLWRpZmYgLS1n aXQgYS9maWxlLmMgYi9maWxlLmMKLWluZGV4IGE0ZDg5NGViLi5kMDlmMmE3ZCAxMDA2NDQKLS0t LSBhL2ZpbGUuYwotKysrIGIvZmlsZS5jCi1AQCAtMTc3LDcgKzE3Nyw3IEBAIHNxZnNfZXJyIHNx ZnNfcmVhZF9yYW5nZShzcWZzICpmcywgc3Fmc19pbm9kZSAqaW5vZGUsIHNxZnNfb2ZmX3Qgc3Rh cnQsCi0gCQkJdGFrZSA9IChzaXplX3QpKCpzaXplKTsKLSAJCWlmIChibG9jaykgewotIAkJCW1l bWNweShidWYsIChjaGFyKilibG9jay0+ZGF0YSArIGRhdGFfb2ZmICsgcmVhZF9vZmYsIHRha2Up OwotLQkJCS8qIEJMT0NLIENBQ0hFRCwgRE9OJ1QgRElTUE9TRSAqLwotKwkJCXNxZnNfYmxvY2tf ZGlzcG9zZShibG9jayk7Ci0gCQl9IGVsc2UgewotIAkJCW1lbXNldChidWYsIDAsIHRha2UpOwot IAkJfQotQEAgLTIyNiw3ICsyMjYsNyBAQCBzcWZzX2VyciBzcWZzX2Jsb2NraWR4X2luaXQoc3Fm c19jYWNoZSAqY2FjaGUpIHsKLSB9Ci0gCi0gc3Fmc19lcnIgc3Fmc19ibG9ja2lkeF9hZGQoc3Fm cyAqZnMsIHNxZnNfaW5vZGUgKmlub2RlLAotLQkJc3Fmc19ibG9ja2lkeF9lbnRyeSAqKm91dCkg ewotKwkJc3Fmc19ibG9ja2lkeF9lbnRyeSAqKm91dCwgc3Fmc19ibG9ja2lkeF9lbnRyeSAqKmNh Y2hlcCkgewotIAlzaXplX3QgYmxvY2tzOwkvKiBOdW1iZXIgb2YgYmxvY2tzIGluIHRoZSBmaWxl ICovCi0gCXNpemVfdCBtZF9zaXplOyAvKiBBbW91bnQgb2YgbWV0YWRhdGEgbmVjZXNzYXJ5IHRv IGhvbGQgdGhlIGJsb2Nrc2l6ZXMgKi8KLSAJc2l6ZV90IGNvdW50OyAJLyogTnVtYmVyIG9mIGJs b2NrLWluZGV4IGVudHJpZXMgbmVjZXNzYXJ5ICovCi1AQCAtMjM0LDEwICsyMzQsNiBAQCBzcWZz X2VyciBzcWZzX2Jsb2NraWR4X2FkZChzcWZzICpmcywgc3Fmc19pbm9kZSAqaW5vZGUsCi0gCXNx ZnNfYmxvY2tpZHhfZW50cnkgKmJsb2NraWR4OwotIAlzcWZzX2Jsb2NrbGlzdCBibDsKLSAJCi0t CS8qIEZvciB0aGUgY2FjaGUgKi8KLS0Jc3Fmc19jYWNoZV9pZHggaWR4OwotLQlzcWZzX2Jsb2Nr aWR4X2VudHJ5ICoqY2FjaGVwOwotLQotIAlzaXplX3QgaSA9IDA7Ci0gCWJvb2wgZmlyc3QgPSB0 cnVlOwotIAkKLUBAIC0yNzAsOCArMjY2LDYgQEAgc3Fmc19lcnIgc3Fmc19ibG9ja2lkeF9hZGQo c3FmcyAqZnMsIHNxZnNfaW5vZGUgKmlub2RlLAotIAkJfQotIAl9Ci0gCi0tCWlkeCA9IGlub2Rl LT5iYXNlLmlub2RlX251bWJlciArIDE7IC8qIHplcm8gbWVhbnMgaW52YWxpZCAqLwotLQljYWNo ZXAgPSBzcWZzX2NhY2hlX2FkZCgmZnMtPmJsb2NraWR4LCBpZHgpOwotIAkqb3V0ID0gKmNhY2hl cCA9IGJsb2NraWR4OwotIAlyZXR1cm4gU1FGU19PSzsKLSB9Ci1AQCAtMjk5LDEyICsyOTMsMTYg QEAgc3Fmc19lcnIgc3Fmc19ibG9ja2lkeF9ibG9ja2xpc3Qoc3FmcyAqZnMsIHNxZnNfaW5vZGUg Kmlub2RlLAotIAkKLSAJLyogR2V0IHRoZSBpbmRleCwgY3JlYXRpbmcgaXQgaWYgbmVjZXNzYXJ5 ICovCi0gCWlkeCA9IGlub2RlLT5iYXNlLmlub2RlX251bWJlciArIDE7IC8qIHplcm8gbWVhbnMg aW52YWxpZCBpbmRleCAqLwotLQlpZiAoKGJwID0gc3Fmc19jYWNoZV9nZXQoJmZzLT5ibG9ja2lk eCwgaWR4KSkpIHsKLSsJYnAgPSBzcWZzX2NhY2hlX2dldCgmZnMtPmJsb2NraWR4LCBpZHgpOwot KwlpZiAoc3Fmc19jYWNoZV9lbnRyeV92YWxpZCgmZnMtPmJsb2NraWR4LCBicCkpIHsKLSAJCWJs b2NraWR4ID0gKmJwOwotIAl9IGVsc2UgewotLQkJc3Fmc19lcnIgZXJyID0gc3Fmc19ibG9ja2lk eF9hZGQoZnMsIGlub2RlLCAmYmxvY2tpZHgpOwotLQkJaWYgKGVycikKLSsJCXNxZnNfZXJyIGVy ciA9IHNxZnNfYmxvY2tpZHhfYWRkKGZzLCBpbm9kZSwgJmJsb2NraWR4LCBicCk7Ci0rCQlpZiAo ZXJyKSB7Ci0rCQkJc3Fmc19jYWNoZV9wdXQoJmZzLT5ibG9ja2lkeCwgYnApOwotIAkJCXJldHVy biBlcnI7Ci0rCQl9Ci0rCQlzcWZzX2NhY2hlX2VudHJ5X21hcmtfdmFsaWQoJmZzLT5ibG9ja2lk eCwgYnApOwotIAl9Ci0gCQotIAlza2lwcGVkID0gKG1ldGFibG9jayAqIFNRVUFTSEZTX01FVEFE QVRBX1NJWkUgLyBzaXplb2Yoc3Fmc19ibG9ja2xpc3RfZW50cnkpKQotQEAgLTMxNiw2ICszMTQs OSBAQCBzcWZzX2VyciBzcWZzX2Jsb2NraWR4X2Jsb2NrbGlzdChzcWZzICpmcywgc3Fmc19pbm9k ZSAqaW5vZGUsCi0gCWJsLT5yZW1haW4gLT0gc2tpcHBlZDsKLSAJYmwtPnBvcyA9ICh1aW50NjRf dClza2lwcGVkICogZnMtPnNiLmJsb2NrX3NpemU7Ci0gCWJsLT5ibG9jayA9IGJsb2NraWR4LT5k YXRhX2Jsb2NrOwotKwotKwlzcWZzX2NhY2hlX3B1dCgmZnMtPmJsb2NraWR4LCBicCk7Ci0rCi0g CXJldHVybiBTUUZTX09LOwotIH0KLSAKLWRpZmYgLS1naXQgYS9maWxlLmggYi9maWxlLmgKLWlu ZGV4IDI0OWM2NDEzLi5lM2QyYjAyOCAxMDA2NDQKLS0tLSBhL2ZpbGUuaAotKysrIGIvZmlsZS5o Ci1AQCAtNzEsMTAgKzcxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgewotIAotIHNxZnNfZXJyIHNxZnNf YmxvY2tpZHhfaW5pdChzcWZzX2NhY2hlICpjYWNoZSk7Ci0gCi0tLyogRmlsbCAqb3V0IHdpdGgg YWxsIHRoZSBibG9jay1pbmRleCBlbnRyaWVzIGZvciB0aGlzIGZpbGUgKi8KLS1zcWZzX2VyciBz cWZzX2Jsb2NraWR4X2FkZChzcWZzICpmcywgc3Fmc19pbm9kZSAqaW5vZGUsCi0tCXNxZnNfYmxv Y2tpZHhfZW50cnkgKipvdXQpOwotLQotIC8qIEdldCBhIGJsb2NrbGlzdCBmYXN0LWZvcndhcmRl ZCB0byB0aGUgY29ycmVjdCBsb2NhdGlvbiAqLwotIHNxZnNfZXJyIHNxZnNfYmxvY2tpZHhfYmxv Y2tsaXN0KHNxZnMgKmZzLCBzcWZzX2lub2RlICppbm9kZSwKLSAJc3Fmc19ibG9ja2xpc3QgKmJs LCBzcWZzX29mZl90IHN0YXJ0KTsKLWRpZmYgLS1naXQgYS9mcy5jIGIvZnMuYwotaW5kZXggZDY5 YmI2ODEuLjE4MzhjNWNhIDEwMDY0NAotLS0tIGEvZnMuYwotKysrIGIvZnMuYwotQEAgLTEyNCw2 ICsxMjQsOCBAQCBzcWZzX2VyciBzcWZzX2Jsb2NrX3JlYWQoc3FmcyAqZnMsIHNxZnNfb2ZmX3Qg cG9zLCBib29sIGNvbXByZXNzZWQsCi0gCXNxZnNfZXJyIGVyciA9IFNRRlNfRVJSOwotIAlpZiAo ISgqYmxvY2sgPSBtYWxsb2Moc2l6ZW9mKCoqYmxvY2spKSkpCi0gCQlyZXR1cm4gU1FGU19FUlI7 Ci0rCS8qIHN0YXJ0IHdpdGggcmVmY291bnQgb25lLCBzbyBkaXNwb3NlIG9uIGZhaWx1cmUgcGF0 aCB3b3JrcyBhcyBleHBlY3RlZC4gKi8KLSsJKCpibG9jayktPnJlZmNvdW50ID0gMTsKLSAJaWYg KCEoKCpibG9jayktPmRhdGEgPSBtYWxsb2Moc2l6ZSkpKQotIAkJZ290byBlcnJvcjsKLSAJCi1A QCAtMTg4LDQ0ICsxOTAsODEgQEAgc3Fmc19lcnIgc3Fmc19kYXRhX2Jsb2NrX3JlYWQoc3FmcyAq ZnMsIHNxZnNfb2ZmX3QgcG9zLCB1aW50MzJfdCBoZHIsCi0gfQotIAotIHNxZnNfZXJyIHNxZnNf bWRfY2FjaGUoc3FmcyAqZnMsIHNxZnNfb2ZmX3QgKnBvcywgc3Fmc19ibG9jayAqKmJsb2NrKSB7 Ci0tCXNxZnNfYmxvY2tfY2FjaGVfZW50cnkgKmVudHJ5ID0gc3Fmc19jYWNoZV9nZXQoCi0tCQkm ZnMtPm1kX2NhY2hlLCAqcG9zKTsKLS0JaWYgKCFlbnRyeSkgewotKwlzcWZzX2Jsb2NrX2NhY2hl X2VudHJ5ICplbnRyeSA9IHNxZnNfY2FjaGVfZ2V0KCZmcy0+bWRfY2FjaGUsICpwb3MpOwotKwlp ZiAoIXNxZnNfY2FjaGVfZW50cnlfdmFsaWQoJmZzLT5tZF9jYWNoZSwgZW50cnkpKSB7Ci0gCQlz cWZzX2VyciBlcnIgPSBTUUZTX09LOwotLQkJZW50cnkgPSBzcWZzX2NhY2hlX2FkZCgmZnMtPm1k X2NhY2hlLCAqcG9zKTsKLSAJCS8qIGZwcmludGYoc3RkZXJyLCAiTUQgQkxPQ0s6ICUxMmxseFxu IiwgKGxvbmcgbG9uZykqcG9zKTsgKi8KLSAJCWVyciA9IHNxZnNfbWRfYmxvY2tfcmVhZChmcywg KnBvcywKLSAJCQkmZW50cnktPmRhdGFfc2l6ZSwgJmVudHJ5LT5ibG9jayk7Ci0gCQlpZiAoZXJy KSB7Ci0tCQkJc3Fmc19jYWNoZV9pbnZhbGlkYXRlKCZmcy0+bWRfY2FjaGUsICpwb3MpOwotKwkJ CXNxZnNfY2FjaGVfcHV0KCZmcy0+bWRfY2FjaGUsIGVudHJ5KTsKLSAJCQlyZXR1cm4gZXJyOwot IAkJfQotKwkJc3Fmc19jYWNoZV9lbnRyeV9tYXJrX3ZhbGlkKCZmcy0+bWRfY2FjaGUsIGVudHJ5 KTsKLSAJfQotKwkvKiBibG9jayBpcyBjcmVhdGVkIHdpdGggcmVmY291bnQgMSwgd2hpY2ggYWNj b3VudHMgZm9yIHByZXNlbmNlIGluIHRoZQotKwkgKiBjYWNoZSAod2lsbCBiZSBkZWNyZW1lbnRl ZCBvbiBldmljdGlvbikuCi0rCSAqCi0rCSAqIFdlIGluY3JlbWVudCBpdCBoZXJlIGFzIGEgY29u dmllbmllbmNlIGZvciB0aGUgY2FsbGVyLCB3aG8gd2lsbAotKwkgKiBvYnZpb3VzbHkgd2FudCBv bmUuIFRoZXJlZm9yZSBhbGwgY2FsbGVycyBtdXN0IGV2ZW50dWFsbHkgY2FsbCBkZXJlZgotKwkg KiBieSBtZWFucyBvZiBjYWxsaW5nIHNxZnNfYmxvY2tfZGlzcG9zZSgpLgotKwkgKi8KLSAJKmJs b2NrID0gZW50cnktPmJsb2NrOwotIAkqcG9zICs9IGVudHJ5LT5kYXRhX3NpemU7Ci0rCi0rCXNx ZnNfYmxvY2tfcmVmKGVudHJ5LT5ibG9jayk7Ci0rICAgIC8qIGl0IGlzIG5vdyBzYWZlIHRvIGV2 aWN0IHRoZSBlbnRyeSBmcm9tIHRoZSBjYWNoZSwgd2UgaGF2ZSBhCi0rICAgICAqIHJlZmVyZW5j ZSB0byB0aGUgYmxvY2sgc28gZXZpY3Rpb24gd2lsbCBub3QgZGVzdHJveSBpdC4KLSsgICAgICov Ci0rCXNxZnNfY2FjaGVfcHV0KCZmcy0+bWRfY2FjaGUsIGVudHJ5KTsKLSsKLSAJcmV0dXJuIFNR RlNfT0s7Ci0gfQotIAotIHNxZnNfZXJyIHNxZnNfZGF0YV9jYWNoZShzcWZzICpmcywgc3Fmc19j YWNoZSAqY2FjaGUsIHNxZnNfb2ZmX3QgcG9zLAotIAkJdWludDMyX3QgaGRyLCBzcWZzX2Jsb2Nr ICoqYmxvY2spIHsKLSAJc3Fmc19ibG9ja19jYWNoZV9lbnRyeSAqZW50cnkgPSBzcWZzX2NhY2hl X2dldChjYWNoZSwgcG9zKTsKLS0JaWYgKCFlbnRyeSkgewotKwlpZiAoIXNxZnNfY2FjaGVfZW50 cnlfdmFsaWQoY2FjaGUsIGVudHJ5KSkgewotIAkJc3Fmc19lcnIgZXJyID0gU1FGU19PSzsKLS0J CWVudHJ5ID0gc3Fmc19jYWNoZV9hZGQoY2FjaGUsIHBvcyk7Ci0gCQllcnIgPSBzcWZzX2RhdGFf YmxvY2tfcmVhZChmcywgcG9zLCBoZHIsCi0gCQkJJmVudHJ5LT5ibG9jayk7Ci0gCQlpZiAoZXJy KSB7Ci0tCQkJc3Fmc19jYWNoZV9pbnZhbGlkYXRlKGNhY2hlLCBwb3MpOwotKyAgICAgICAgICAg IHNxZnNfY2FjaGVfcHV0KGNhY2hlLCBlbnRyeSk7Ci0gCQkJcmV0dXJuIGVycjsKLSAJCX0KLSsJ CXNxZnNfY2FjaGVfZW50cnlfbWFya192YWxpZChjYWNoZSwgZW50cnkpOwotIAl9Ci0rCS8qIGJs b2NrIGlzIGNyZWF0ZWQgd2l0aCByZWZjb3VudCAxLCB3aGljaCBhY2NvdW50cyBmb3IgcHJlc2Vu Y2UgaW4gdGhlCi0rCSAqIGNhY2hlICh3aWxsIGJlIGRlY3JlbWVudGVkIG9uIGV2aWN0aW9uKS4K LSsJICoKLSsJICogV2UgaW5jcmVtZW50IGl0IGhlcmUgYXMgYSBjb252ZW5pZW5jZSBmb3IgdGhl IGNhbGxlciwgd2hvIHdpbGwKLSsJICogb2J2aW91c2x5IHdhbnQgb25lLiBUaGVyZWZvcmUgYWxs IGNhbGxlcnMgbXVzdCBldmVudHVhbGx5IGNhbGwgZGVyZWYKLSsJICogYnkgbWVhbnMgb2YgY2Fs bGluZyBzcWZzX2Jsb2NrX2Rpc3Bvc2UoKS4KLSsJICovCi0gCSpibG9jayA9IGVudHJ5LT5ibG9j azsKLSsJc3Fmc19ibG9ja19yZWYoKmJsb2NrKTsKLSsgICAgLyogaXQgaXMgbm93IHNhZmUgdG8g ZXZpY3QgdGhlIGVudHJ5IGZyb20gdGhlIGNhY2hlLCB3ZSBoYXZlIGEKLSsgICAgICogcmVmZXJl bmNlIHRvIHRoZSBibG9jayBzbyBldmljdGlvbiB3aWxsIG5vdCBkZXN0cm95IGl0LgotKyAgICAg Ki8KLSsJc3Fmc19jYWNoZV9wdXQoY2FjaGUsIGVudHJ5KTsKLSAJcmV0dXJuIFNRRlNfT0s7Ci0g fQotIAotIHZvaWQgc3Fmc19ibG9ja19kaXNwb3NlKHNxZnNfYmxvY2sgKmJsb2NrKSB7Ci0tCWZy ZWUoYmxvY2stPmRhdGEpOwotLQlmcmVlKGJsb2NrKTsKLSsJaWYgKHNxZnNfYmxvY2tfZGVyZWYo YmxvY2spKSB7Ci0rCQlmcmVlKGJsb2NrLT5kYXRhKTsKLSsJCWZyZWUoYmxvY2spOwotKwl9Ci0r fQotKwotK3N0YXRpYyB2b2lkIHNxZnNfYmxvY2tfY2FjaGVfZGlzcG9zZSh2b2lkICpkYXRhKSB7 Ci0rCXNxZnNfYmxvY2tfY2FjaGVfZW50cnkgKmVudHJ5ID0gKHNxZnNfYmxvY2tfY2FjaGVfZW50 cnkqKWRhdGE7Ci0rCXNxZnNfYmxvY2tfZGlzcG9zZShlbnRyeS0+YmxvY2spOwotK30KLSsKLStz cWZzX2VyciBzcWZzX2Jsb2NrX2NhY2hlX2luaXQoc3Fmc19jYWNoZSAqY2FjaGUsIHNpemVfdCBj b3VudCkgewotKwlyZXR1cm4gc3Fmc19jYWNoZV9pbml0KGNhY2hlLCBzaXplb2Yoc3Fmc19ibG9j a19jYWNoZV9lbnRyeSksIGNvdW50LAotKwkJCSAgICAgICAmc3Fmc19ibG9ja19jYWNoZV9kaXNw b3NlKTsKLSB9Ci0gCi0gdm9pZCBzcWZzX21kX2N1cnNvcl9pbm9kZShzcWZzX21kX2N1cnNvciAq Y3VyLCBzcWZzX2lub2RlX2lkIGlkLCBzcWZzX29mZl90IGJhc2UpIHsKLUBAIC0yNDcsNyArMjg2 LDYgQEAgc3Fmc19lcnIgc3Fmc19tZF9yZWFkKHNxZnMgKmZzLCBzcWZzX21kX2N1cnNvciAqY3Vy LCB2b2lkICpidWYsIHNpemVfdCBzaXplKSB7Ci0gCQkJdGFrZSA9IHNpemU7CQkKLSAJCWlmIChi dWYpCi0gCQkJbWVtY3B5KGJ1ZiwgKGNoYXIqKWJsb2NrLT5kYXRhICsgY3VyLT5vZmZzZXQsIHRh a2UpOwotLQkJLyogQkxPQ0sgQ0FDSEVELCBET04nVCBESVNQT1NFICovCi0gCQkKLSAJCWlmIChi dWYpCi0gCQkJYnVmID0gKGNoYXIqKWJ1ZiArIHRha2U7Ci1AQCAtMjU3LDYgKzI5NSw3IEBAIHNx ZnNfZXJyIHNxZnNfbWRfcmVhZChzcWZzICpmcywgc3Fmc19tZF9jdXJzb3IgKmN1ciwgdm9pZCAq YnVmLCBzaXplX3Qgc2l6ZSkgewotIAkJCWN1ci0+YmxvY2sgPSBwb3M7Ci0gCQkJY3VyLT5vZmZz ZXQgPSAwOwotIAkJfQotKwkJc3Fmc19ibG9ja19kaXNwb3NlKGJsb2NrKTsKLSAJfQotIAlyZXR1 cm4gU1FGU19PSzsKLSB9Ci1kaWZmIC0tZ2l0IGEvZnMuaCBiL2ZzLmgKLWluZGV4IGQzMDBhM2Ji Li4xZDQ3NWNlMCAxMDA2NDQKLS0tLSBhL2ZzLmgKLSsrKyBiL2ZzLmgKLUBAIC05Nyw2ICs5Nywx MSBAQCBzcWZzX2NvbXByZXNzaW9uX3R5cGUgc3Fmc19jb21wcmVzc2lvbihzcWZzICpmcyk7Ci0g dm9pZCBzcWZzX21kX2hlYWRlcih1aW50MTZfdCBoZHIsIGJvb2wgKmNvbXByZXNzZWQsIHVpbnQx Nl90ICpzaXplKTsKLSB2b2lkIHNxZnNfZGF0YV9oZWFkZXIodWludDMyX3QgaGRyLCBib29sICpj b21wcmVzc2VkLCB1aW50MzJfdCAqc2l6ZSk7Ci0gCi0rdHlwZWRlZiBzdHJ1Y3QgewotKwlzcWZz X2Jsb2NrICpibG9jazsKLSsJc2l6ZV90IGRhdGFfc2l6ZTsKLSt9IHNxZnNfYmxvY2tfY2FjaGVf ZW50cnk7Ci0rc3Fmc19lcnIgc3Fmc19ibG9ja19jYWNoZV9pbml0KHNxZnNfY2FjaGUgKmNhY2hl LCBzaXplX3QgY291bnQpOwotIHNxZnNfZXJyIHNxZnNfYmxvY2tfcmVhZChzcWZzICpmcywgc3Fm c19vZmZfdCBwb3MsIGJvb2wgY29tcHJlc3NlZCwgdWludDMyX3Qgc2l6ZSwKLSAJc2l6ZV90IG91 dHNpemUsIHNxZnNfYmxvY2sgKipibG9jayk7Ci0gdm9pZCBzcWZzX2Jsb2NrX2Rpc3Bvc2Uoc3Fm c19ibG9jayAqYmxvY2spOwotZGlmZiAtLWdpdCBhL3RhYmxlLmMgYi90YWJsZS5jCi1pbmRleCBj MDM1Mzk4Zi4uMDJhNTQ0MmMgMTAwNjQ0Ci0tLS0gYS90YWJsZS5jCi0rKysgYi90YWJsZS5jCi1A QCAtNzYsNiArNzYsNiBAQCBzcWZzX2VyciBzcWZzX3RhYmxlX2dldChzcWZzX3RhYmxlICp0YWJs ZSwgc3FmcyAqZnMsIHNpemVfdCBpZHgsIHZvaWQgKmJ1ZikgewotIAkJcmV0dXJuIFNRRlNfRVJS OwotIAkKLSAJbWVtY3B5KGJ1ZiwgKGNoYXIqKShibG9jay0+ZGF0YSkgKyBvZmYsIHRhYmxlLT5l YWNoKTsKLS0JLyogQkxPQ0sgQ0FDSEVELCBET04nVCBESVNQT1NFICovCi0rCXNxZnNfYmxvY2tf ZGlzcG9zZShibG9jayk7Ci0gCXJldHVybiBTUUZTX09LOwotIH0KLWRpZmYgLS1naXQgYS90ZXN0 cy9jYWNoZXRlc3QuYyBiL3Rlc3RzL2NhY2hldGVzdC5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAot aW5kZXggMDAwMDAwMDAuLjhhMmMyMzYzCi0tLS0gL2Rldi9udWxsCi0rKysgYi90ZXN0cy9jYWNo ZXRlc3QuYwotQEAgLTAsMCArMSwxMDcgQEAKLSsjaW5jbHVkZSAiY2FjaGUuaCIKLSsjaW5jbHVk ZSA8c3RkaW8uaD4KLSsKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rICAgIGludCB4OwotKyAgICBpbnQg eTsKLSt9IFRlc3RTdHJ1Y3Q7Ci0rCi0rc3RhdGljIHZvaWQgVGVzdFN0cnVjdERpc3Bvc2Uodm9p ZCAqdCkgewotKyAgICAvLyBuYWRhLgotK30KLSsKLSsjZGVmaW5lIEVYUEVDVF9FUShleHAxLCBl eHAyKQkJCQkJCSAgXAotKwlkbyB7IGlmICgoZXhwMSkgIT0gKGV4cDIpKSB7CQkJCQkgIFwKLSsJ CXByaW50ZigiVGVzdCBmYWlsdXJlOiBleHBlY3RlZCAiICNleHAxICIgdG8gZXF1YWwgIiAjZXhw MiBcCi0rCQkgICAgICAgIiBhdCAiIF9fRklMRV9fICI6JWRcbiIsIF9fTElORV9fKTsJCSAgXAot KwkJKytlcnJvcnM7CQkJCQkJICBcCi0rCSAgfQkJCQkJCQkJICBcCi0rCX0gd2hpbGUgKDApCi0r Ci0rI2RlZmluZSBFWFBFQ1RfTkUoZXhwMSwgZXhwMikJCQkJCQkgICBcCi0rCWRvIHsgaWYgKChl eHAxKSA9PSAoZXhwMikpIHsJCQkJCSAgIFwKLSsJCXByaW50ZigiVGVzdCBmYWlsdXJlOiBleHBl Y3RlZCAiICNleHAxICIgdG8gIWVxdWFsICIgI2V4cDIgXAotKwkJICAgICAgICIgYXQgIiBfX0ZJ TEVfXyAiOiVkXG4iLCBfX0xJTkVfXyk7CQkgICBcCi0rCQkrK2Vycm9yczsJCQkJCQkgICBcCi0r ICAgICAgICAgIH0JCQkJCQkJCSAgIFwKLSsJfSB3aGlsZSAoMCkKLSsKLSsKLStpbnQgdGVzdF9j YWNoZV9taXNzKHZvaWQpIHsKLSsgICAgaW50IGVycm9ycyA9IDA7Ci0rICAgIHNxZnNfY2FjaGUg Y2FjaGU7Ci0rICAgIFRlc3RTdHJ1Y3QgKmVudHJ5OwotKwotKyAgICBFWFBFQ1RfRVEoc3Fmc19j YWNoZV9pbml0KCZjYWNoZSwgc2l6ZW9mKFRlc3RTdHJ1Y3QpLCAxNiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUZXN0U3RydWN0RGlzcG9zZSksIFNRRlNfT0spOwotKyAgICBlbnRy eSA9IChUZXN0U3RydWN0ICopc3Fmc19jYWNoZV9nZXQoJmNhY2hlLCAxKTsKLSsgICAgRVhQRUNU X0VRKHNxZnNfY2FjaGVfZW50cnlfdmFsaWQoJmNhY2hlLCBlbnRyeSksIDApOwotKyAgICBzcWZz X2NhY2hlX2Rlc3Ryb3koJmNhY2hlKTsKLSsKLSsgICAgcmV0dXJuIGVycm9ycyA9PSAwOwotK30K LSsKLStpbnQgdGVzdF9tYXJrX3ZhbGlkX2FuZF9sb29rdXAodm9pZCkgewotKyAgICBpbnQgZXJy b3JzID0gMDsKLSsgICAgc3Fmc19jYWNoZSBjYWNoZTsKLSsgICAgVGVzdFN0cnVjdCAqZW50cnk7 Ci0rCi0rICAgIEVYUEVDVF9FUShzcWZzX2NhY2hlX2luaXQoJmNhY2hlLCBzaXplb2YoVGVzdFN0 cnVjdCksIDE2LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RTdHJ1Y3REaXNw b3NlKSwgU1FGU19PSyk7Ci0rICAgIGVudHJ5ID0gKFRlc3RTdHJ1Y3QgKilzcWZzX2NhY2hlX2dl dCgmY2FjaGUsIDEpOwotKyAgICBlbnRyeS0+eCA9IDY2NjsKLSsgICAgZW50cnktPnkgPSA3Nzc7 Ci0rICAgIHNxZnNfY2FjaGVfZW50cnlfbWFya192YWxpZCgmY2FjaGUsIGVudHJ5KTsKLSsgICAg c3Fmc19jYWNoZV9wdXQoJmNhY2hlLCBlbnRyeSk7Ci0rICAgIEVYUEVDVF9ORShzcWZzX2NhY2hl X2VudHJ5X3ZhbGlkKCZjYWNoZSwgZW50cnkpLCAwKTsKLSsgICAgZW50cnkgPSAoVGVzdFN0cnVj dCAqKXNxZnNfY2FjaGVfZ2V0KCZjYWNoZSwgMSk7Ci0rICAgIEVYUEVDVF9ORShzcWZzX2NhY2hl X2VudHJ5X3ZhbGlkKCZjYWNoZSwgZW50cnkpLCAwKTsKLSsgICAgRVhQRUNUX0VRKGVudHJ5LT54 LCA2NjYpOwotKyAgICBFWFBFQ1RfRVEoZW50cnktPnksIDc3Nyk7Ci0rICAgIHNxZnNfY2FjaGVf cHV0KCZjYWNoZSwgZW50cnkpOwotKwotKyAgICBzcWZzX2NhY2hlX2Rlc3Ryb3koJmNhY2hlKTsK LSsgICAgcmV0dXJuIGVycm9ycyA9PSAwOwotK30KLSsKLStpbnQgdGVzdF90d29fZW50cmllcyh2 b2lkKSB7Ci0rICAgIGludCBlcnJvcnMgPSAwOwotKyAgICBzcWZzX2NhY2hlIGNhY2hlOwotKyAg ICBUZXN0U3RydWN0ICplbnRyeTEsICplbnRyeTI7Ci0rCi0rICAgIEVYUEVDVF9FUShzcWZzX2Nh Y2hlX2luaXQoJmNhY2hlLCBzaXplb2YoVGVzdFN0cnVjdCksIDE2LAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRlc3RTdHJ1Y3REaXNwb3NlKSwgU1FGU19PSyk7Ci0rCi0rICAgIGVu dHJ5MSA9IChUZXN0U3RydWN0ICopc3Fmc19jYWNoZV9nZXQoJmNhY2hlLCAxKTsKLSsgICAgZW50 cnkxLT54ID0gMTsKLSsgICAgZW50cnkxLT55ID0gMjsKLSsgICAgc3Fmc19jYWNoZV9lbnRyeV9t YXJrX3ZhbGlkKCZjYWNoZSwgZW50cnkxKTsKLSsgICAgc3Fmc19jYWNoZV9wdXQoJmNhY2hlLCBl bnRyeTEpOwotKwotKyAgICBlbnRyeTIgPSAoVGVzdFN0cnVjdCAqKXNxZnNfY2FjaGVfZ2V0KCZj YWNoZSwgNjY2KTsKLSsgICAgZW50cnkyLT54ID0gMzsKLSsgICAgZW50cnkyLT55ID0gNDsKLSsg ICAgc3Fmc19jYWNoZV9lbnRyeV9tYXJrX3ZhbGlkKCZjYWNoZSwgZW50cnkyKTsKLSsgICAgc3Fm c19jYWNoZV9wdXQoJmNhY2hlLCBlbnRyeTIpOwotKwotKyAgICBlbnRyeTEgPSAoVGVzdFN0cnVj dCAqKXNxZnNfY2FjaGVfZ2V0KCZjYWNoZSwgMSk7Ci0rICAgIHNxZnNfY2FjaGVfcHV0KCZjYWNo ZSwgZW50cnkxKTsKLSsgICAgZW50cnkyID0gKFRlc3RTdHJ1Y3QgKilzcWZzX2NhY2hlX2dldCgm Y2FjaGUsIDY2Nik7Ci0rICAgIHNxZnNfY2FjaGVfcHV0KCZjYWNoZSwgZW50cnkyKTsKLSsgICAg RVhQRUNUX05FKHNxZnNfY2FjaGVfZW50cnlfdmFsaWQoJmNhY2hlLCBlbnRyeTEpLCAwKTsKLSsg ICAgRVhQRUNUX05FKHNxZnNfY2FjaGVfZW50cnlfdmFsaWQoJmNhY2hlLCBlbnRyeTIpLCAwKTsK LSsgICAgRVhQRUNUX0VRKGVudHJ5MS0+eCwgMSk7Ci0rICAgIEVYUEVDVF9FUShlbnRyeTEtPnks IDIpOwotKyAgICBFWFBFQ1RfRVEoZW50cnkyLT54LCAzKTsKLSsgICAgRVhQRUNUX0VRKGVudHJ5 Mi0+eSwgNCk7Ci0rCi0rICAgIHNxZnNfY2FjaGVfZGVzdHJveSgmY2FjaGUpOwotKwotKyAgICBy ZXR1cm4gZXJyb3JzID09IDA7Ci0rfQotKwotK2ludCBtYWluKHZvaWQpIHsKLSsJcmV0dXJuIHRl c3RfY2FjaGVfbWlzcygpICYmCi0rCQl0ZXN0X21hcmtfdmFsaWRfYW5kX2xvb2t1cCgpICYmCi0r CQl0ZXN0X3R3b19lbnRyaWVzKCkgPyAwIDogMTsKLSt9Ci0KLUZyb20gMzc5Yzg1MDdjMTVlZjQz YjY0MWMxMDI0YjQzMzcyZjJkZTlmYjQ4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IEtldmluIFZpZ29yIDxrdmlnb3JAZ21haWwuY29tPgotRGF0ZTogVGh1LCA2IEZlYiAyMDIwIDEy OjIwOjE5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8zXSBJbXBsZW1lbnQgbXVsdGktdGhyZWFk ZWQgc3F1YXNoZnVzZV9sbCwgYWxsb3dpbmcgcGFyYWxsZWwKLSBkZWNvbXByZXNzaW9uLgotCi1B IHNpbXBsZSB0aHJlYWQtc2FmZSBjYWNoZSBpbXBsZW1lbnRhdGlvbiBpcyBhZGRlZCBhbmQgc3F1 YXNoZnVzZV9sbCBpbml0Ci1pcyBhbHRlcmVkIHRvIHVzZSBmdXNlX3Nlc3Npb25fbG9vcF9tdCgp LgotCi1NdWx0aXRocmVhZGluZyBtdXN0IGJlIGV4cGxpY2l0bHkgZW5hYmxlZCBhdCBjb25maWd1 cmUgdGltZSB3aXRoIHRoZQotLS1lbmFibGUtbXVsdGl0aHJlYWRpbmcgb3B0aW9uLiBJZiBlbmFi bGVkLCB0aGUgcmVzdWx0aW5nIHNxdWFzaGZ1c2VfbGwKLXdpbGwgYmUgbXVsdGl0aHJlYWRlZCBi eSBkZWZhdWx0LCBidXQgdGhpcyBtYXkgYmUgZGlzYWJsZWQgYXQgcnVudGltZQotd2l0aCB0aGUg Jy1zJyBGVVNFIGNvbW1hbmRsaW5lIG9wdGlvbi4KLS0tLQotIE1ha2VmaWxlLmFtICAgICAgICAg ICAgICAgICAgICAgIHwgICA4ICstCi0gY2FjaGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDQgKwotIGNhY2hlX210LmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTY5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKLSBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAg ICB8ICAxMSArLQotIGZzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICstCi0g bGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzcgKysrKysrKysrKy0tLS0KLSBs bF9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMCArKystCi0gbTQvc3F1YXNoZnVz ZV9jLm00ICAgICAgICAgICAgICAgfCAgMzMgKy0tLS0tCi0gc3F1YXNoZnNfZnMuaCAgICAgICAg ICAgICAgICAgICAgfCAgIDYgKy0KLSB0ZXN0cy9jYWNoZXRlc3QuYyAgICAgICAgICAgICAgICB8 ICAgMSArCi0gdGVzdHMvbGwtc21va2Utc2luZ2xldGhyZWFkZWQuc2ggfCAgMTAgKysKLSB0ZXN0 cy9sbC1zbW9rZS5zaCAgICAgICAgICAgICAgICB8IDE0MSArKysrKysrKysrKysrKysrKysrKysr KysrKwotIHRlc3RzL2xsLXNtb2tlLnNoLmluICAgICAgICAgICAgIHwgICA2ICstCi0gMTMgZmls ZXMgY2hhbmdlZCwgNDMyIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQotIGNyZWF0ZSBt b2RlIDEwMDY0NCBjYWNoZV9tdC5jCi0gY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL2xsLXNtb2tl LXNpbmdsZXRocmVhZGVkLnNoCi0gY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL2xsLXNtb2tlLnNo Ci0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCi1pbmRleCBlYWY3YWM5 Ny4uMTdiMDFiZTQgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZS5hbQotKysrIGIvTWFrZWZpbGUuYW0K LUBAIC0yNiw3ICsyNiw3IEBAIHBrZ2NvbmZpZ19EQVRBIAk9IHNxdWFzaGZ1c2UucGMKLSBub2lu c3RfTFRMSUJSQVJJRVMgKz0gbGlic3F1YXNoZnVzZV9jb252ZW5pZW5jZS5sYQotIGxpYnNxdWFz aGZ1c2VfY29udmVuaWVuY2VfbGFfU09VUkNFUyA9IHN3YXAuYyBjYWNoZS5jIHRhYmxlLmMgZGly LmMgZmlsZS5jIGZzLmMgXAotIAlkZWNvbXByZXNzLmMgeGF0dHIuYyBoYXNoLmMgc3RhY2suYyB0 cmF2ZXJzZS5jIHV0aWwuYyBcCi0tCW5vbnN0ZC1wcmVhZC5jIG5vbnN0ZC1zdGF0LmMgXAotKwlu b25zdGQtcHJlYWQuYyBub25zdGQtc3RhdC5jIGNhY2hlX210LmMgXAotIAlzcXVhc2hmc19mcy5o IGNvbW1vbi5oIG5vbnN0ZC1pbnRlcm5hbC5oIG5vbnN0ZC5oIHN3YXAuaCBjYWNoZS5oIHRhYmxl LmggXAotIAlkaXIuaCBmaWxlLmggZGVjb21wcmVzcy5oIHhhdHRyLmggc3F1YXNoZnVzZS5oIGhh c2guaCBzdGFjay5oIHRyYXZlcnNlLmggXAotIAl1dGlsLmggZnMuaAotQEAgLTEwNSw2ICsxMDUs MTIgQEAgZW5kaWYKLSBURVNUUyA9Ci0gaWYgU1FfRlVTRV9URVNUUwotIFRFU1RTICs9IHRlc3Rz L2xsLXNtb2tlLnNoCi0raWYgTVVMVElUSFJFQURFRAotKyMgSSBrbm93IHRoaXMgdGVzdCBsb29r cyBiYWNrd2FyZHMsIGJ1dCB0aGUgZGVmYXVsdCBzbW9rZSB0ZXN0IGlzIG11bHRpdGhyZWFkZWQK LSsjIHdoZW4gdGhyZWFkaW5nIGlzIGVuYWJsZWQuIFNvIHdlIGFkZGl0aW9uYWxseSBydW4gYSBz aW5nbGV0aHJlYWRlZCB0ZXN0IGluCi0rIyB0aGF0IGNhc2UuCi0rVEVTVFMgKz0gdGVzdHMvbGwt c21va2Utc2luZ2xldGhyZWFkZWQuc2gKLStlbmRpZgotIGNoZWNrX1BST0dSQU1TID0gY2FjaGV0 ZXN0IGVuZGlhbnRlc3QKLSBjYWNoZXRlc3RfU09VUkNFUz10ZXN0cy9jYWNoZXRlc3QuYwotIGNh Y2hldGVzdF9MREFERD1saWJzcXVhc2hmdXNlLmxhICQoQ09NUFJFU1NJT05fTElCUykKLWRpZmYg LS1naXQgYS9jYWNoZS5jIGIvY2FjaGUuYwotaW5kZXggMzZkMDIyMzQuLjQ1NDA4ZjI0IDEwMDY0 NAotLS0tIGEvY2FjaGUuYwotKysrIGIvY2FjaGUuYwotQEAgLTI0LDYgKzI0LDkgQEAKLSAgKi8K LSAKLSAjaW5jbHVkZSAiY29uZmlnLmgiCi0rCi0rI2lmbmRlZiBTUUZTX01VTFRJVEhSRUFERUQK LSsKLSAjaW5jbHVkZSAiY2FjaGUuaCIKLSAKLSAjaW5jbHVkZSAiZnMuaCIKLUBAIC0xNDAsMyAr MTQzLDQgQEAgdm9pZCBzcWZzX2NhY2hlX2VudHJ5X21hcmtfdmFsaWQoc3Fmc19jYWNoZSAqY2Fj aGUsIHZvaWQgKmUpIHsKLSB2b2lkIHNxZnNfY2FjaGVfcHV0KGNvbnN0IHNxZnNfY2FjaGUgKmNh Y2hlLCBjb25zdCB2b2lkICplKSB7Ci0gCS8vIG5hZGEsIHdlIGhhdmUgbm8gbG9ja2luZyBpbiBz aW5nbGUtdGhyZWFkZWQgaW1wbGVtZW50YXRpb24uCi0gfQotKyNlbmRpZiAvKiBTUUZTX01VTFRJ VEhSRUFERUQgKi8KLWRpZmYgLS1naXQgYS9jYWNoZV9tdC5jIGIvY2FjaGVfbXQuYwotbmV3IGZp bGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwLi4xYjE3ZmE1YQotLS0tIC9kZXYvbnVsbAot KysrIGIvY2FjaGVfbXQuYwotQEAgLTAsMCArMSwxNjkgQEAKLSsjaW5jbHVkZSAiY29uZmlnLmgi Ci0rCi0rI2lmZGVmIFNRRlNfTVVMVElUSFJFQURFRAotKwotKy8qIFRocmVhZC1zYWZlIGNhY2hl IGltcGxlbWVudGF0aW9uLgotKyAqCi0rICogU2ltcGxlIGltcGxlbWVudGF0aW9uOiBiYXNpYyBo YXNoIHRhYmxlLCBlYWNoIGluZGl2aWR1YWwgZW50cnkgaXMKLSsgKiBwcm90ZWN0ZWQgYnkgYSBt dXRleCwgYW55IGNvbGxpc2lvbiBpcyBoYW5kbGVkIGJ5IGV2aWN0aW9uLgotKyAqLwotKwotKyNp bmNsdWRlICJjYWNoZS5oIgotKyNpbmNsdWRlICJmcy5oIgotKwotKyNpbmNsdWRlIDxhc3NlcnQu aD4KLSsjaW5jbHVkZSA8cHRocmVhZC5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsKLSt0eXBl ZGVmIHN0cnVjdCBzcWZzX2NhY2hlX2ludGVybmFsIHsKLSsgICAgdWludDhfdCAqYnVmOwotKyAg ICBzcWZzX2NhY2hlX2Rpc3Bvc2UgZGlzcG9zZTsKLSsgICAgc2l6ZV90IGVudHJ5X3NpemUsIGNv dW50OwotK30gc3Fmc19jYWNoZV9pbnRlcm5hbDsKLSsKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rICAg IGVudW0geyBFTVBUWSwgRlVMTCB9IHN0YXRlOwotKyAgICBzcWZzX2NhY2hlX2lkeCBpZHg7Ci0r ICAgIHB0aHJlYWRfbXV0ZXhfdCBsb2NrOwotK30gc3Fmc19jYWNoZV9lbnRyeV9oZHI7Ci0rCi0r Ly8gTXVybXVySGFzaDY0QSBwZXJmb3JtYW5jZS1vcHRpbWl6ZWQgZm9yIGhhc2ggb2YgdWludDY0 X3Qga2V5cwotK2NvbnN0IHN0YXRpYyB1aW50NjRfdCBrTXVybXVyMlNlZWQgPSA0MTkzMzYwMTEx dWw7Ci0rc3RhdGljIHVpbnQ2NF90IE11cm11clJlaGFzaDY0QSh1aW50NjRfdCBrZXkpIHsKLSsg ICAgY29uc3QgdWludDY0X3QgbSA9IDB4YzZhNGE3OTM1YmQxZTk5NTsKLSsgICAgY29uc3QgaW50 IHIgPSA0NzsKLSsKLSsgICAgdWludDY0X3QgaCA9ICh1aW50NjRfdClrTXVybXVyMlNlZWQgXiAo c2l6ZW9mKHVpbnQ2NF90KSAqIG0pOwotKwotKyAgICBrZXkgKj0gbTsKLSsgICAga2V5IF49IGtl eSA+PiByOwotKyAgICBrZXkgKj0gbTsKLSsKLSsgICAgaCBePSBrZXk7Ci0rICAgIGggKj0gbTsK LSsKLSsgICAgaCBePSBoID4+IHI7Ci0rICAgIGggKj0gbTsKLSsgICAgaCBePSBoID4+IHI7Ci0r Ci0rICAgIHJldHVybiBoOwotK30KLSsKLStzdGF0aWMgc3Fmc19jYWNoZV9lbnRyeV9oZHIgKnNx ZnNfY2FjaGVfZW50cnlfaGVhZGVyKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Fm c19jYWNoZV9pbnRlcm5hbCogY2FjaGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplX3QgaSkgewotKyAgICBhc3NlcnQoaSA8IGNhY2hlLT5jb3VudCk7Ci0rICAgIHJldHVybiAo c3Fmc19jYWNoZV9lbnRyeV9oZHIgKikoY2FjaGUtPmJ1ZiArIGkgKiBjYWNoZS0+ZW50cnlfc2l6 ZSk7Ci0rfQotKwotK3NxZnNfZXJyIHNxZnNfY2FjaGVfaW5pdChzcWZzX2NhY2hlICpjYWNoZSwg c2l6ZV90IGVudHJ5X3NpemUsIHNpemVfdCBjb3VudCwKLSsgICAgICAgICAgICAgc3Fmc19jYWNo ZV9kaXNwb3NlIGRpc3Bvc2UpIHsKLSsgICAgc2l6ZV90IGk7Ci0rICAgIHB0aHJlYWRfbXV0ZXhh dHRyX3QgYXR0cjsKLSsgICAgc3Fmc19jYWNoZV9pbnRlcm5hbCAqYyA9IG1hbGxvYyhzaXplb2Yo c3Fmc19jYWNoZV9pbnRlcm5hbCkpOwotKwotKyAgICBpZiAoIWMpIHsKLSsgICAgICAgIHJldHVy biBTUUZTX0VSUjsKLSsgICAgfQotKwotKyAgICBjLT5lbnRyeV9zaXplID0gZW50cnlfc2l6ZSAr IHNpemVvZihzcWZzX2NhY2hlX2VudHJ5X2hkcik7Ci0rICAgIGMtPmNvdW50ID0gY291bnQ7Ci0r ICAgIGMtPmRpc3Bvc2UgPSBkaXNwb3NlOwotKwotKyAgICBwdGhyZWFkX211dGV4YXR0cl9pbml0 KCZhdHRyKTsKLSsjaWYgZGVmaW5lZChfR05VX1NPVVJDRSkgJiYgIWRlZmluZWQoTkRFQlVHKQot KyAgICBwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZhdHRyLCBQVEhSRUFEX01VVEVYX0VSUk9S Q0hFQ0spOwotKyNlbmRpZgotKwotKyAgICBjLT5idWYgPSBjYWxsb2MoYy0+Y291bnQsIGMtPmVu dHJ5X3NpemUpOwotKyAgICBpZiAoIWMtPmJ1ZikgewotKyAgICAgICAgZ290byBlcnJfb3V0Owot KyAgICB9Ci0rCi0rICAgIGZvciAoaSA9IDA7IGkgPCBjLT5jb3VudDsgKytpKSB7Ci0rICAgICAg ICBzcWZzX2NhY2hlX2VudHJ5X2hkciAqaGRyID0gc3Fmc19jYWNoZV9lbnRyeV9oZWFkZXIoYywg aSk7Ci0rICAgICAgICBoZHItPnN0YXRlID0gRU1QVFk7Ci0rICAgICAgICBpZiAocHRocmVhZF9t dXRleF9pbml0KCZoZHItPmxvY2ssICZhdHRyKSkgewotKyAgICAgICAgICAgIGdvdG8gZXJyX291 dDsKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICBwdGhyZWFkX211dGV4YXR0cl9kZXN0cm95 KCZhdHRyKTsKLSsKLSsgICAgKmNhY2hlID0gYzsKLSsgICAgcmV0dXJuIFNRRlNfT0s7Ci0rCi0r ZXJyX291dDoKLSsgICAgc3Fmc19jYWNoZV9kZXN0cm95KCZjKTsKLSsgICAgcmV0dXJuIFNRRlNf RVJSOwotK30KLSsKLSt2b2lkIHNxZnNfY2FjaGVfZGVzdHJveShzcWZzX2NhY2hlICpjYWNoZSkg ewotKyAgICBpZiAoY2FjaGUgJiYgKmNhY2hlKSB7Ci0rICAgICAgICBzcWZzX2NhY2hlX2ludGVy bmFsICpjID0gKmNhY2hlOwotKyAgICAgICAgaWYgKGMtPmJ1ZikgewotKyAgICAgICAgICAgIHNp emVfdCBpOwotKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjLT5jb3VudDsgKytpKSB7Ci0r ICAgICAgICAgICAgICAgIHNxZnNfY2FjaGVfZW50cnlfaGRyICpoZHIgPQotKyAgICAgICAgICAg ICAgICAgICAgc3Fmc19jYWNoZV9lbnRyeV9oZWFkZXIoYywgaSk7Ci0rICAgICAgICAgICAgICAg IGlmIChoZHItPnN0YXRlID09IEZVTEwpIHsKLSsgICAgICAgICAgICAgICAgICAgIGMtPmRpc3Bv c2UoKHZvaWQgKikoaGRyICsgMSkpOwotKyAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg ICAgIGlmIChwdGhyZWFkX211dGV4X2Rlc3Ryb3koJmhkci0+bG9jaykpIHsKLSsgICAgICAgICAg ICAgICAgICAgIGFzc2VydCgwKTsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgIH0K LSsgICAgICAgIH0KLSsgICAgICAgIGZyZWUoYy0+YnVmKTsKLSsgICAgICAgIGZyZWUoYyk7Ci0r ICAgICAgICAqY2FjaGUgPSBOVUxMOwotKyAgICB9Ci0rfQotKwotK3ZvaWQgKnNxZnNfY2FjaGVf Z2V0KHNxZnNfY2FjaGUgKmNhY2hlLCBzcWZzX2NhY2hlX2lkeCBpZHgpIHsKLSsgICAgc3Fmc19j YWNoZV9pbnRlcm5hbCAqYyA9ICpjYWNoZTsKLSsgICAgc3Fmc19jYWNoZV9lbnRyeV9oZHIgKmhk cjsKLSsgICAgdm9pZCAqZW50cnk7Ci0rCi0rICAgIHVpbnQ2NF90IGtleSA9IE11cm11clJlaGFz aDY0QShpZHgpICUgYy0+Y291bnQ7Ci0rCi0rICAgIGhkciA9IHNxZnNfY2FjaGVfZW50cnlfaGVh ZGVyKGMsIGtleSk7Ci0rICAgIGlmIChwdGhyZWFkX211dGV4X2xvY2soJmhkci0+bG9jaykpIHsg YXNzZXJ0KDApOyB9Ci0rICAgIC8qIG1hdGNoaW5nIHVubG9jayBpcyBpbiBzcWZzX2NhY2hlX3B1 dCgpICovCi0rICAgIGVudHJ5ID0gKHZvaWQgKikoaGRyICsgMSk7Ci0rCi0rICAgIGlmIChoZHIt PnN0YXRlID09IEVNUFRZKSB7Ci0rICAgICAgICBoZHItPmlkeCA9IGlkeDsKLSsgICAgICAgIHJl dHVybiBlbnRyeTsKLSsgICAgfQotKwotKyAgICAvKiBUaGVyZSdzIGEgdmFsaWQgZW50cnk6IGl0 J3MgZWl0aGVyIGEgY2FjaGUgaGl0IG9yIGEgY29sbGlzaW9uLiAqLwotKyAgICBhc3NlcnQoaGRy LT5zdGF0ZSA9PSBGVUxMKTsKLSsgICAgaWYgKGhkci0+aWR4ID09IGlkeCkgewotKyAgICAgICAg cmV0dXJuIGVudHJ5OwotKyAgICB9Ci0rCi0rICAgIC8qIENvbGxpc2lvbi4gKi8KLSsgICAgYy0+ ZGlzcG9zZSgodm9pZCAqKShoZHIgKyAxKSk7Ci0rICAgIGhkci0+c3RhdGUgPSBFTVBUWTsKLSsg ICAgaGRyLT5pZHggPSBpZHg7Ci0rICAgIHJldHVybiBlbnRyeTsKLSt9Ci0rCi0raW50IHNxZnNf Y2FjaGVfZW50cnlfdmFsaWQoY29uc3Qgc3Fmc19jYWNoZSAqY2FjaGUsIGNvbnN0IHZvaWQgKmUp IHsKLSsgICAgc3Fmc19jYWNoZV9lbnRyeV9oZHIgKmhkciA9ICgoc3Fmc19jYWNoZV9lbnRyeV9o ZHIgKillKSAtIDE7Ci0rICAgIHJldHVybiBoZHItPnN0YXRlID09IEZVTEw7Ci0rfQotKwotK3Zv aWQgc3Fmc19jYWNoZV9lbnRyeV9tYXJrX3ZhbGlkKHNxZnNfY2FjaGUgKmNhY2hlLCB2b2lkICpl KSB7Ci0rICAgIHNxZnNfY2FjaGVfZW50cnlfaGRyICpoZHIgPSAoKHNxZnNfY2FjaGVfZW50cnlf aGRyICopZSkgLSAxOwotKyAgICBhc3NlcnQoaGRyLT5zdGF0ZSA9PSBFTVBUWSk7Ci0rICAgIGhk ci0+c3RhdGUgPSBGVUxMOwotK30KLSsKLSt2b2lkIHNxZnNfY2FjaGVfcHV0KGNvbnN0IHNxZnNf Y2FjaGUgKmNhY2hlLCBjb25zdCB2b2lkICplKSB7Ci0rICAgIHNxZnNfY2FjaGVfZW50cnlfaGRy ICpoZHIgPSAoKHNxZnNfY2FjaGVfZW50cnlfaGRyICopZSkgLSAxOwotKyAgICBpZiAocHRocmVh ZF9tdXRleF91bmxvY2soJmhkci0+bG9jaykpIHsgYXNzZXJ0KDApOyB9Ci0rfQotKwotKyNlbmRp ZiAvKiBTUUZTX01VTFRJVEhSRUFERUQgKi8KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9j b25maWd1cmUuYWMKLWluZGV4IDc2Mjc2NmU5Li4zODY5MDc1YSAxMDA2NDQKLS0tLSBhL2NvbmZp Z3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTAsNiArMTAsNyBAQCBBSF9CT1RUT00o WyNlbmRpZl0pCi0gQUNfQ0FOT05JQ0FMX0JVSUxECi0gQUNfQ0FOT05JQ0FMX1RBUkdFVAotIEFN X0lOSVRfQVVUT01BS0UoW2ZvcmVpZ24gLVdhbGwgc3ViZGlyLW9iamVjdHNdKQotK0FDX1VTRV9T WVNURU1fRVhURU5TSU9OUwotIEFNX1NJTEVOVF9SVUxFUyh5ZXMpCi0gQU1fUFJPR19BUgotIExU X0lOSVQKLUBAIC0yMywxMCArMjQsOCBAQCBBQ19QUk9HX1NFRAotIEFDX1BST0dfQ1BQCi0gQUNf U1lTX0xBUkdFRklMRQotIEFNX1BST0dfQ0NfQ19PCi0tU1FfUFJPR19DUFBfUE9TSVhfMjAwMQot IFNRX1BST0dfQ0NfV0FMTAotIAotLUFDX0RFRklORShbX1BPU0lYX0NfU09VUkNFXSwgWzIwMDEx MkxdLCBbUE9TSVggMjAwMSBjb21wYXRpYmlsaXR5XSkKLSAKLSAjIE5vbi1QT1NJWCBkZWNsYXJh dGlvbnMKLSBTUV9DSEVDS19ERUNMX01BS0VERVYKLUBAIC05Nyw2ICs5NiwxNCBAQCBBQ19DT05G SUdfRklMRVMoW3Rlc3RzL2xsLXNtb2tlLnNoXSxbY2htb2QgK3ggdGVzdHMvbGwtc21va2Uuc2hd KQotIEFTX0lGKFt0ZXN0ICJ4JHNxX2hpZ2hfbGV2ZWwkc3FfbG93X2xldmVsJHNxX2RlbW8iID0g eG5vbm9ub10sCi0gCUFDX01TR19GQUlMVVJFKFtOb3RoaW5nIGxlZnQgdG8gYnVpbGRdKSkKLSAK LStBQ19BUkdfRU5BQkxFKFttdWx0aXRocmVhZGluZ10sCi0rIAlBU19IRUxQX1NUUklORyhbLS1l bmFibGUtbXVsdGl0aHJlYWRpbmddLCBbZW5hYmxlIG11bHRpLXRocmVhZGVkIGxvdy1sZXZlbCBG VVNFIGRyaXZlcl0pLAotKwlbCi0rICAgIEFDX0NIRUNLX0xJQihbcHRocmVhZF0sIFtwdGhyZWFk X211dGV4X2xvY2tdLCBbXSwgQUNfTVNHX0VSUk9SKFtsaWJwdGhyZWFkIGlzIHJlcXVpcmVkIGZv ciBtdWx0aXRocmVhZGVkIGJ1aWxkXSkpCi0rICAgIEFDX0RFRklORShTUUZTX01VTFRJVEhSRUFE RUQsIDEsIFtFbmFibGUgbXVsdGktdGhyZWFkZWQgbG93LWxldmVsIEZVU0UgZHJpdmVyXSkKLSsg ICAgXSkKLStBTV9DT05ESVRJT05BTChbTVVMVElUSFJFQURFRF0sIFt0ZXN0IHgkZW5hYmxlX211 bHRpdGhyZWFkaW5nID0geHllc10pCi0rCi0gQUNfU1VCU1QoW3NxX2RlY29tcHJlc3NvcnNdKQot IEFDX1NVQlNUKFtzcV9oaWdoX2xldmVsXSkKLSBBQ19TVUJTVChbc3FfbG93X2xldmVsXSkKLWRp ZmYgLS1naXQgYS9mcy5jIGIvZnMuYwotaW5kZXggMTgzOGM1Y2EuLmFiODU0YjBmIDEwMDY0NAot LS0tIGEvZnMuYwotKysrIGIvZnMuYwotQEAgLTM0LDggKzM0LDEzIEBACi0gI2luY2x1ZGUgPHN5 cy9zdGF0Lmg+Ci0gCi0gCi0tI2RlZmluZSBEQVRBX0NBQ0hFRF9CTEtTIDEKLS0jZGVmaW5lIEZS QUdfQ0FDSEVEX0JMS1MgMwotKyNpZmRlZiBTUUZTX01VTFRJVEhSRUFERUQKLSsjIGRlZmluZSBE QVRBX0NBQ0hFRF9CTEtTIDQ4Ci0rIyBkZWZpbmUgRlJBR19DQUNIRURfQkxLUyA0OAotKyNlbHNl Ci0rIyBkZWZpbmUgREFUQV9DQUNIRURfQkxLUyAxCi0rIyBkZWZpbmUgRlJBR19DQUNIRURfQkxL UyAzCi0rI2VuZGlmCi0gCi0gdm9pZCBzcWZzX3ZlcnNpb25fc3VwcG9ydGVkKGludCAqbWluX21h am9yLCBpbnQgKm1pbl9taW5vciwgaW50ICptYXhfbWFqb3IsCi0gCQlpbnQgKm1heF9taW5vcikg ewotZGlmZiAtLWdpdCBhL2xsLmMgYi9sbC5jCi1pbmRleCA0ZDE3YmE1Yi4uNTk2YzhiZjEgMTAw NjQ0Ci0tLS0gYS9sbC5jCi0rKysgYi9sbC5jCi1AQCAtNTIsMTEgKzUyLDQ5IEBAIHN0YXRpYyBz aWdfYXRvbWljX3Qgb3Blbl9yZWZjb3VudCA9IDA7Ci0gLyogc2FtZSBhcyBsaWIvZnVzZV9zaWdu YWxzLmMgKi8KLSBzdGF0aWMgc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqZnVzZV9pbnN0YW5jZSA9IE5V TEw7Ci0gCi0rc3RhdGljIHZvaWQgdXBkYXRlX2FjY2Vzc190aW1lKHZvaWQpIHsKLSsjaWZkZWYg U1FGU19NVUxUSVRIUkVBREVECi0rCS8qIFdlIG9ubHkgbmVlZCB0byB0cmFjayBhY2Nlc3MgdGlt ZSBpZiB3ZSBoYXZlIGFuIGlkbGUgdGltZW91dCwKLSsJICogZG9uJ3QgYm90aGVyIHdpdGggZXhw ZW5zaXZlIG9wZXJhdGlvbnMgaWYgaWRsZV90aW1lb3V0IGlzIDAuCi0rCSAqLwotKwlpZiAoaWRs ZV90aW1lb3V0X3NlY3MpIHsKLSsJCXRpbWVfdCBub3cgPSB0aW1lKE5VTEwpOwotKwkJX19hdG9t aWNfc3RvcmVfbigmbGFzdF9hY2Nlc3MsIG5vdywgX19BVE9NSUNfUkVMRUFTRSk7Ci0rCX0KLSsj ZWxzZQotKwlsYXN0X2FjY2VzcyA9IHRpbWUoTlVMTCk7Ci0rI2VuZGlmCi0rfQotKwotK3N0YXRp YyB2b2lkIHVwZGF0ZV9vcGVuX3JlZmNvdW50KGludCBkZWx0YSkgewotKyNpZmRlZiBTUUZTX01V TFRJVEhSRUFERUQKLSsJX19hdG9taWNfZmV0Y2hfYWRkKCZvcGVuX3JlZmNvdW50LCBkZWx0YSwg X19BVE9NSUNfUkVMRUFTRSk7Ci0rI2Vsc2UKLSsJb3Blbl9yZWZjb3VudCArPSBkZWx0YTsKLSsj ZW5kaWYKLSt9Ci0rCi0rc3RhdGljIGlubGluZSB0aW1lX3QgZ2V0X2FjY2Vzc190aW1lKHZvaWQp IHsKLSsjaWZkZWYgU1FGU19NVUxUSVRIUkVBREVECi0rCXJldHVybiBfX2F0b21pY19sb2FkX24o Jmxhc3RfYWNjZXNzLCBfX0FUT01JQ19BQ1FVSVJFKTsKLSsjZWxzZQotKwlyZXR1cm4gbGFzdF9h Y2Nlc3M7Ci0rI2VuZGlmCi0rfQotKwotK3N0YXRpYyBpbmxpbmUgc2lnX2F0b21pY190IGdldF9v cGVuX3JlZmNvdW50KHZvaWQpIHsKLSsjaWZkZWYgU1FGU19NVUxUSVRIUkVBREVECi0rCXJldHVy biBfX2F0b21pY19sb2FkX24oJm9wZW5fcmVmY291bnQsIF9fQVRPTUlDX0FDUVVJUkUpOwotKyNl bHNlCi0rCXJldHVybiBvcGVuX3JlZmNvdW50OwotKyNlbmRpZgotK30KLSsKLSB2b2lkIHNxZnNf bGxfb3BfZ2V0YXR0cihmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sCi0gCQlzdHJ1Y3Qg ZnVzZV9maWxlX2luZm8gKmZpKSB7Ci0gCXNxZnNfbGxfaSBsbGk7Ci0gCXN0cnVjdCBzdGF0IHN0 OwotLQlsYXN0X2FjY2VzcyA9IHRpbWUoTlVMTCk7Ci0rCXVwZGF0ZV9hY2Nlc3NfdGltZSgpOwot IAlpZiAoc3Fmc19sbF9pZ2V0KHJlcSwgJmxsaSwgaW5vKSkKLSAJCXJldHVybjsKLSAJCi1AQCAt NzEsNyArMTA5LDcgQEAgdm9pZCBzcWZzX2xsX29wX2dldGF0dHIoZnVzZV9yZXFfdCByZXEsIGZ1 c2VfaW5vX3QgaW5vLAotIHZvaWQgc3Fmc19sbF9vcF9vcGVuZGlyKGZ1c2VfcmVxX3QgcmVxLCBm dXNlX2lub190IGlubywKLSAJCXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpIHsKLSAJc3Fmc19s bF9pICpsbGk7Ci0tCWxhc3RfYWNjZXNzID0gdGltZShOVUxMKTsKLSsJdXBkYXRlX2FjY2Vzc190 aW1lKCk7Ci0gCQotIAlmaS0+ZmggPSAoaW50cHRyX3QpTlVMTDsKLSAJCi1AQCAtODYsNyArMTI0 LDcgQEAgdm9pZCBzcWZzX2xsX29wX29wZW5kaXIoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3Qg aW5vLAotIAkJCWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PVERJUik7Ci0gCQl9IGVsc2UgewotIAkJ CWZpLT5maCA9IChpbnRwdHJfdClsbGk7Ci0tCQkJKytvcGVuX3JlZmNvdW50OwotKwkJCXVwZGF0 ZV9vcGVuX3JlZmNvdW50KDEpOwotIAkJCWZ1c2VfcmVwbHlfb3BlbihyZXEsIGZpKTsKLSAJCQly ZXR1cm47Ci0gCQl9Ci1AQCAtOTYsMTQgKzEzNCwxNCBAQCB2b2lkIHNxZnNfbGxfb3Bfb3BlbmRp cihmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sCi0gCi0gdm9pZCBzcWZzX2xsX29wX2Ny ZWF0ZShmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBwYXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUs Ci0gCQkJICAgICAgbW9kZV90IG1vZGUsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpIHsKLS0J bGFzdF9hY2Nlc3MgPSB0aW1lKE5VTEwpOwotKwl1cGRhdGVfYWNjZXNzX3RpbWUoKTsKLSAJZnVz ZV9yZXBseV9lcnIocmVxLCBFUk9GUyk7Ci0gfQotIAotIHZvaWQgc3Fmc19sbF9vcF9yZWxlYXNl ZGlyKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywKLSAJCXN0cnVjdCBmdXNlX2ZpbGVf aW5mbyAqZmkpIHsKLS0JbGFzdF9hY2Nlc3MgPSB0aW1lKE5VTEwpOwotLQktLW9wZW5fcmVmY291 bnQ7Ci0rCXVwZGF0ZV9hY2Nlc3NfdGltZSgpOwotKwl1cGRhdGVfb3Blbl9yZWZjb3VudCgtMSk7 Ci0gCWZyZWUoKHNxZnNfbGxfaSopKGludHB0cl90KWZpLT5maCk7Ci0gCWZ1c2VfcmVwbHlfZXJy KHJlcSwgMCk7IC8qIHllcywgdGhpcyBpcyBuZWNlc3NhcnkgKi8KLSB9Ci1AQCAtMTMyLDcgKzE3 MCw3IEBAIHZvaWQgc3Fmc19sbF9vcF9yZWFkZGlyKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190 IGlubywgc2l6ZV90IHNpemUsCi0gCXNxZnNfbGxfaSAqbGxpID0gKHNxZnNfbGxfaSopKGludHB0 cl90KWZpLT5maDsKLSAJaW50IGVyciA9IDA7Ci0gCQotLQlsYXN0X2FjY2VzcyA9IHRpbWUoTlVM TCk7Ci0rCXVwZGF0ZV9hY2Nlc3NfdGltZSgpOwotIAlpZiAoc3Fmc19kaXJfb3BlbigmbGxpLT5s bC0+ZnMsICZsbGktPmlub2RlLCAmZGlyLCBvZmYpKQotIAkJZXJyID0gRUlOVkFMOwotIAlpZiAo IWVyciAmJiAhKGJ1ZnBvcyA9IGJ1ZiA9IG1hbGxvYyhzaXplKSkpCi1AQCAtMTczLDcgKzIxMSw3 IEBAIHZvaWQgc3Fmc19sbF9vcF9sb29rdXAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgcGFy ZW50LAotIAlib29sIGZvdW5kOwotIAlzcWZzX2lub2RlIGlub2RlOwotIAkKLS0JbGFzdF9hY2Nl c3MgPSB0aW1lKE5VTEwpOwotKwl1cGRhdGVfYWNjZXNzX3RpbWUoKTsKLSAJaWYgKHNxZnNfbGxf aWdldChyZXEsICZsbGksIHBhcmVudCkpCi0gCQlyZXR1cm47Ci0gCQotQEAgLTIyMyw3ICsyNjEs NyBAQCB2b2lkIHNxZnNfbGxfb3Bfb3BlbihmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8s Ci0gCXNxZnNfaW5vZGUgKmlub2RlOwotIAlzcWZzX2xsICpsbDsKLSAJCi0tCWxhc3RfYWNjZXNz ID0gdGltZShOVUxMKTsKLSsJdXBkYXRlX2FjY2Vzc190aW1lKCk7Ci0gCWlmIChmaS0+ZmxhZ3Mg JiAoT19XUk9OTFkgfCBPX1JEV1IpKSB7Ci0gCQlmdXNlX3JlcGx5X2VycihyZXEsIEVST0ZTKTsK LSAJCXJldHVybjsKLUBAIC0yNDMsNyArMjgxLDcgQEAgdm9pZCBzcWZzX2xsX29wX29wZW4oZnVz ZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLAotIAl9IGVsc2UgewotIAkJZmktPmZoID0gKGlu dHB0cl90KWlub2RlOwotIAkJZmktPmtlZXBfY2FjaGUgPSAxOwotLQkJKytvcGVuX3JlZmNvdW50 OwotKwkJdXBkYXRlX29wZW5fcmVmY291bnQoMSk7Ci0gCQlmdXNlX3JlcGx5X29wZW4ocmVxLCBm aSk7Ci0gCQlyZXR1cm47Ci0gCX0KLUBAIC0yNTQsOCArMjkyLDggQEAgdm9pZCBzcWZzX2xsX29w X3JlbGVhc2UoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLAotIAkJc3RydWN0IGZ1c2Vf ZmlsZV9pbmZvICpmaSkgewotIAlmcmVlKChzcWZzX2lub2RlKikoaW50cHRyX3QpZmktPmZoKTsK LSAJZmktPmZoID0gMDsKLS0JbGFzdF9hY2Nlc3MgPSB0aW1lKE5VTEwpOwotLQktLW9wZW5fcmVm Y291bnQ7Ci0rCXVwZGF0ZV9hY2Nlc3NfdGltZSgpOwotKwl1cGRhdGVfb3Blbl9yZWZjb3VudCgt MSk7Ci0gCWZ1c2VfcmVwbHlfZXJyKHJlcSwgMCk7Ci0gfQotIAotQEAgLTI3Miw3ICszMTAsNyBA QCB2b2lkIHNxZnNfbGxfb3BfcmVhZChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sCi0g CQlyZXR1cm47Ci0gCX0KLSAJCi0tCWxhc3RfYWNjZXNzID0gdGltZShOVUxMKTsKLSsJdXBkYXRl X2FjY2Vzc190aW1lKCk7Ci0gCW9zaXplID0gc2l6ZTsKLSAJZXJyID0gc3Fmc19yZWFkX3Jhbmdl KCZsbC0+ZnMsIGlub2RlLCBvZmYsICZvc2l6ZSwgYnVmKTsKLSAJaWYgKGVycikgewotQEAgLTI4 OSw3ICszMjcsNyBAQCB2b2lkIHNxZnNfbGxfb3BfcmVhZGxpbmsoZnVzZV9yZXFfdCByZXEsIGZ1 c2VfaW5vX3QgaW5vKSB7Ci0gCWNoYXIgKmRzdDsKLSAJc2l6ZV90IHNpemU7Ci0gCXNxZnNfbGxf aSBsbGk7Ci0tCWxhc3RfYWNjZXNzID0gdGltZShOVUxMKTsKLSsJdXBkYXRlX2FjY2Vzc190aW1l KCk7Ci0gCWlmIChzcWZzX2xsX2lnZXQocmVxLCAmbGxpLCBpbm8pKQotIAkJcmV0dXJuOwotIAkK LUBAIC0zMTMsNyArMzUxLDcgQEAgdm9pZCBzcWZzX2xsX29wX2xpc3R4YXR0cihmdXNlX3JlcV90 IHJlcSwgZnVzZV9pbm9fdCBpbm8sIHNpemVfdCBzaXplKSB7Ci0gCWNoYXIgKmJ1ZjsKLSAJaW50 IGZlcnI7Ci0gCQotLQlsYXN0X2FjY2VzcyA9IHRpbWUoTlVMTCk7Ci0rCXVwZGF0ZV9hY2Nlc3Nf dGltZSgpOwotIAlpZiAoc3Fmc19sbF9pZ2V0KHJlcSwgJmxsaSwgaW5vKSkKLSAJCXJldHVybjsK LSAKLUBAIC0zNTEsNyArMzg5LDcgQEAgdm9pZCBzcWZzX2xsX29wX2dldHhhdHRyKGZ1c2VfcmVx X3QgcmVxLCBmdXNlX2lub190IGlubywKLSAJfQotICNlbmRpZgotIAkKLS0JbGFzdF9hY2Nlc3Mg PSB0aW1lKE5VTEwpOwotKwl1cGRhdGVfYWNjZXNzX3RpbWUoKTsKLSAJaWYgKHNxZnNfbGxfaWdl dChyZXEsICZsbGksIGlubykpCi0gCQlyZXR1cm47Ci0gCQotQEAgLTM3Myw3ICs0MTEsNyBAQCB2 b2lkIHNxZnNfbGxfb3BfZ2V0eGF0dHIoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLAot IHZvaWQgc3Fmc19sbF9vcF9mb3JnZXQoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLAot IAkJdW5zaWduZWQgbG9uZyBubG9va3VwKSB7Ci0gCXNxZnNfbGxfaSBsbGk7Ci0tCWxhc3RfYWNj ZXNzID0gdGltZShOVUxMKTsKLSsJdXBkYXRlX2FjY2Vzc190aW1lKCk7Ci0gCXNxZnNfbGxfaWdl dChyZXEsICZsbGksIFNRRlNfRlVTRV9JTk9ERV9OT05FKTsKLSAJbGxpLmxsLT5pbm9fZm9yZ2V0 KGxsaS5sbCwgaW5vLCBubG9va3VwKTsKLSAJZnVzZV9yZXBseV9ub25lKHJlcSk7Ci1AQCAtNDg5 LDcgKzUyNyw4IEBAIHZvaWQgYWxhcm1fdGljayhpbnQgc2lnKSB7Ci0gCQlyZXR1cm47Ci0gCX0K LSAKLS0JaWYgKG9wZW5fcmVmY291bnQgPT0gMCAmJiB0aW1lKE5VTEwpIC0gbGFzdF9hY2Nlc3Mg PiBpZGxlX3RpbWVvdXRfc2VjcykgewotKwlpZiAoZ2V0X29wZW5fcmVmY291bnQoKSA9PSAwICYm Ci0rCQl0aW1lKE5VTEwpIC0gZ2V0X2FjY2Vzc190aW1lKCkgPiBpZGxlX3RpbWVvdXRfc2Vjcykg ewotIAkJLyogU2FmZWx5IHNodXR0aW5nIGRvd24gZnVzZSBpbiBhIGNyb3NzLXBsYXRmb3JtIHdh eSBpcyBhIGRhcmsgYXJ0IQotIAkJICAgQnV0IGp1c3QgYWJvdXQgYW55IHBsYXRmb3JtIHNob3Vs ZCBzdG9wIG9uIFNJR0lOVCwgc28gZG8gdGhhdCAqLwotIAkJa2lsbChnZXRwaWQoKSwgU0lHSU5U KTsKLUBAIC00OTksOCArNTM4LDggQEAgdm9pZCBhbGFybV90aWNrKGludCBzaWcpIHsKLSB9Ci0g Ci0gdm9pZCBzZXR1cF9pZGxlX3RpbWVvdXQoc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqc2UsIHVuc2ln bmVkIGludCB0aW1lb3V0X3NlY3MpIHsKLS0JbGFzdF9hY2Nlc3MgPSB0aW1lKE5VTEwpOwotIAlp ZGxlX3RpbWVvdXRfc2VjcyA9IHRpbWVvdXRfc2VjczsKLSsJdXBkYXRlX2FjY2Vzc190aW1lKCk7 Ci0gCi0gCXN0cnVjdCBzaWdhY3Rpb24gc2E7Ci0gCW1lbXNldCgmc2EsIDAsIHNpemVvZihzdHJ1 Y3Qgc2lnYWN0aW9uKSk7Ci1kaWZmIC0tZ2l0IGEvbGxfbWFpbi5jIGIvbGxfbWFpbi5jCi1pbmRl eCBhY2E3NjkzNS4uMjIzMDIwODUgMTAwNjQ0Ci0tLS0gYS9sbF9tYWluLmMKLSsrKyBiL2xsX21h aW4uYwotQEAgLTE0Miw4ICsxNDIsMjIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkgewotIAkJCQkJaWYgKG9wdHMuaWRsZV90aW1lb3V0X3NlY3MpIHsKLSAJCQkJCQlzZXR1cF9p ZGxlX3RpbWVvdXQoY2guc2Vzc2lvbiwgb3B0cy5pZGxlX3RpbWVvdXRfc2Vjcyk7Ci0gCQkJCQl9 Ci0tCQkJCQkvKiBGSVhNRTogbXVsdGl0aHJlYWRpbmcgKi8KLS0JCQkJCWVyciA9IGZ1c2Vfc2Vz c2lvbl9sb29wKGNoLnNlc3Npb24pOwotKyNpZmRlZiBTUUZTX01VTFRJVEhSRUFERUQKLSsjIGlm IEZVU0VfVVNFX1ZFUlNJT04gPj0gMzAKLSsgICAgICAgICAgICAgICAgICAgIGlmICghZnVzZV9j bWRsaW5lX29wdHMuc2luZ2xldGhyZWFkKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGZ1c2VfbG9vcF9jb25maWcgY29uZmlnOwotKyAgICAgICAgICAgICAgICAgICAgICAgIGNv bmZpZy5jbG9uZV9mZCA9IDE7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLm1heF9p ZGxlX3RocmVhZHMgPSAxMDsKLSsgICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSBmdXNlX3Nl c3Npb25fbG9vcF9tdChjaC5zZXNzaW9uLCAmY29uZmlnKTsKLSsgICAgICAgICAgICAgICAgICAg IH0KLSsjIGVsc2UgLyogRlVTRV9VU0VfVkVSU0lPTiA8IDMwICovCi0rCQkgICAgaWYgKGZ1c2Vf Y21kbGluZV9vcHRzLm10KSB7Ci0rCQkJZXJyID0gZnVzZV9zZXNzaW9uX2xvb3BfbXQoY2guc2Vz c2lvbik7Ci0rCQkgICAgfQotKyMgZW5kaWYgLyogRlVTRV9VU0VfVkVSU0lPTiAqLwotKyAgICAg ICAgICAgICAgICAgICAgZWxzZQotKyNlbmRpZgotKwkJCQkJICAgIGVyciA9IGZ1c2Vfc2Vzc2lv bl9sb29wKGNoLnNlc3Npb24pOwotIAkJCQkJdGVhcmRvd25faWRsZV90aW1lb3V0KCk7Ci0gCQkJ CQlmdXNlX3JlbW92ZV9zaWduYWxfaGFuZGxlcnMoY2guc2Vzc2lvbik7Ci0gCQkJCX0KLUBAIC0x NTcsNCArMTcxLDQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotIAlmcmVl KGZ1c2VfY21kbGluZV9vcHRzLm1vdW50cG9pbnQpOwotIAkKLSAJcmV0dXJuIC1lcnI7Ci0tfQot XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0rfQotZGlmZiAtLWdpdCBhL200L3NxdWFzaGZ1 c2VfYy5tNCBiL200L3NxdWFzaGZ1c2VfYy5tNAotaW5kZXggZjI5YTkwYjEuLmM0MDM5YzQyIDEw MDY0NAotLS0tIGEvbTQvc3F1YXNoZnVzZV9jLm00Ci0rKysgYi9tNC9zcXVhc2hmdXNlX2MubTQK LUBAIC0yMSwzNyArMjEsNiBAQAotICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gIyBUSElTIFNPRlRXQVJF LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIAot LSMgU1FfUFJPR19DUFBfUE9TSVhfMjAwMQotLSMKLS0jIENoZWNrIGlmIGEgcHJlcHJvY2Vzc29y IGZsYWcgaXMgbmVlZGVkIGZvciBQT1NJWC0yMDAxIGhlYWRlcnMuCi0tIyBOZWVkZWQgYXQgbGVh c3Qgb24gU29sYXJpcyBhbmQgZGVyaXZhdGl2ZXMuCi0tQUNfREVGVU4oW1NRX1BST0dfQ1BQX1BP U0lYXzIwMDFdLFsKLS1BQ19DQUNIRV9DSEVDSyhbZm9yIG9wdGlvbiBmb3IgUE9TSVgtMjAwMSBw cmVwcm9jZXNzb3JdLCAKLS0JW3NxX2N2X3Byb2dfY3BwX3Bvc2l4MjAwMV0sCi0tWwotLQlzcV9j dl9wcm9nX2NwcF9wb3NpeDIwMDE9dW5rbm93bgotLQlzcV9zYXZlX0NQUEZMQUdTPSRDUFBGTEFH UwotLQlmb3Igc3FfZmxhZ3MgaW4gbm9uZSAtc3RkPWdudTk5IC14Yzk5PWFsbAotLQlkbwotLQkJ QVNfSUYoW3Rlc3QgIngkc3FfZmxhZ3MiID0geG5vbmVdLCwKLS0JCQlbQ1BQRkxBR1M9IiRzYXZl X0NQUEZMQUdTICRzcV9mbGFncyJdKQotLQkJQUNfUFJFUFJPQ19JRkVMU0UoW0FDX0xBTkdfUFJP R1JBTShbCi0tCQkJI2RlZmluZSBfUE9TSVhfQ19TT1VSQ0UgMjAwMTEyTAotLQkJCSNpbmNsdWRl IDxzeXMvdHlwZXMuaD4KLS0JCV0pXSxbCi0tCQkJc3FfY3ZfcHJvZ19jcHBfcG9zaXgyMDAxPSRz cV9mbGFncwotLQkJCWJyZWFrCi0tCQldKQotLQlkb25lCi0tCUNQUEZMQUdTPSRzcV9zYXZlX0NQ UEZMQUdTCi0tXSkKLS1BU19JRihbdGVzdCAieCRzcV9jdl9wcm9nX2NwcF9wb3NpeDIwMDEiID0g eHVua25vd25dLAotLQlbQUNfTVNHX0ZBSUxVUkUoW2Nhbid0IHByZXByb2Nlc3MgZm9yIFBPU0lY LTIwMDFdKV0sCi0tCVtBU19JRihbdGVzdCAieCRzcV9jdl9wcm9nX2NwcF9wb3NpeDIwMDEiID0g eG5vbmVdLCwKLS0JCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJHNxX2N2X3Byb2dfY3BwX3Bvc2l4MjAw MSIpCi0tXSkKLS1dKQotLQotICMgU1FfUFJPR19DQ19XQUxMCi0gIwotICMgQ2hlY2sgaWYgLVdh bGwgaXMgc3VwcG9ydGVkCi1AQCAtNjcsNCArMzYsNCBAQCBBQ19DQUNIRV9DSEVDSyhbaG93IHRv IGVuYWJsZSBhbGwgY29tcGlsZXIgd2FybmluZ3NdLAotIF0pCi0gQVNfSUYoW3Rlc3QgIngkc3Ff Y3ZfcHJvZ19jY193YWxsIiA9IHh1bmtub3duXSwsCi0gCVtBQ19TVUJTVChbQU1fQ0ZMQUdTXSxb IiRBTV9DRkxBR1MgJHNxX2N2X3Byb2dfY2Nfd2FsbCJdKV0pCi0tXSkKLVwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQotK10pCi1kaWZmIC0tZ2l0IGEvc3F1YXNoZnNfZnMuaCBiL3NxdWFzaGZz X2ZzLmgKLWluZGV4IGUwYWIxZjRlLi5hODViNzYwNiAxMDA2NDQKLS0tLSBhL3NxdWFzaGZzX2Zz LmgKLSsrKyBiL3NxdWFzaGZzX2ZzLmgKLUBAIC0xMDUsNyArMTA1LDExIEBACi0gCi0gCi0gLyog Y2FjaGVkIGRhdGEgY29uc3RhbnRzIGZvciBmaWxlc3lzdGVtICovCi0tI2RlZmluZSBTUVVBU0hG U19DQUNIRURfQkxLUwkJOAotKyNpZmRlZiBTUUZTX01VTFRJVEhSRUFERUQKLSsjIGRlZmluZSBT UVVBU0hGU19DQUNIRURfQkxLUwkJMTI4Ci0rI2Vsc2UKLSsjIGRlZmluZSBTUVVBU0hGU19DQUNI RURfQkxLUwkJOAotKyNlbmRpZgotIAotICNkZWZpbmUgU1FVQVNIRlNfTUFYX0ZJTEVfU0laRV9M T0cJNjQKLSAKLWRpZmYgLS1naXQgYS90ZXN0cy9jYWNoZXRlc3QuYyBiL3Rlc3RzL2NhY2hldGVz dC5jCi1pbmRleCA4YTJjMjM2My4uYzUxNWZjZGYgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9jYWNoZXRl c3QuYwotKysrIGIvdGVzdHMvY2FjaGV0ZXN0LmMKLUBAIC0zNiw2ICszNiw3IEBAIGludCB0ZXN0 X2NhY2hlX21pc3Modm9pZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RT dHJ1Y3REaXNwb3NlKSwgU1FGU19PSyk7Ci0gICAgIGVudHJ5ID0gKFRlc3RTdHJ1Y3QgKilzcWZz X2NhY2hlX2dldCgmY2FjaGUsIDEpOwotICAgICBFWFBFQ1RfRVEoc3Fmc19jYWNoZV9lbnRyeV92 YWxpZCgmY2FjaGUsIGVudHJ5KSwgMCk7Ci0rICAgIHNxZnNfY2FjaGVfcHV0KCZjYWNoZSwgZW50 cnkpOwotICAgICBzcWZzX2NhY2hlX2Rlc3Ryb3koJmNhY2hlKTsKLSAKLSAgICAgcmV0dXJuIGVy cm9ycyA9PSAwOwotZGlmZiAtLWdpdCBhL3Rlc3RzL2xsLXNtb2tlLXNpbmdsZXRocmVhZGVkLnNo IGIvdGVzdHMvbGwtc21va2Utc2luZ2xldGhyZWFkZWQuc2gKLW5ldyBmaWxlIG1vZGUgMTAwNzU1 Ci1pbmRleCAwMDAwMDAwMC4uYzdjYmZjMzgKLS0tLSAvZGV2L251bGwKLSsrKyBiL3Rlc3RzL2xs LXNtb2tlLXNpbmdsZXRocmVhZGVkLnNoCi1AQCAtMCwwICsxLDEwIEBACi0rIS9iaW4vYmFzaAot KwotKyMgU2luZ2xldGhyZWFkZWQgbGwtc21va2UgdGVzdC4KLSsjCi0rIyBXaGVuIG11bHRpdGhy ZWFkaW5nIGlzIGVuYWJsZWQgYXQgYnVpbGQgdGltZSwgaXQgaXMgdGhlIGRlZmF1bHQKLSsjIGJl aGF2aW9yIG9mIHNxdWFzaGZ1c2VfbGwsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYXQgcnVudGltZSB3 aXRoCi0rIyB0aGUgRlVTRSAnLXMnIGNvbW1hbmRsaW5lIG9wdGlvbi4KLSsjCi0rIyBTbyB3ZSBq dXN0IHJlLXJ1biB0aGUgbm9ybWFsIGxsLXNtb2tlIHRlc3Qgd2l0aCB0aGUgJy1zJyBvcHRpb24u Ci0rU0ZMTF9FWFRSQV9BUkdTPSItcyIgJChkaXJuYW1lIC0tICQwKS9sbC1zbW9rZS5zaAotZGlm ZiAtLWdpdCBhL3Rlc3RzL2xsLXNtb2tlLnNoIGIvdGVzdHMvbGwtc21va2Uuc2gKLW5ldyBmaWxl IG1vZGUgMTAwNzU1Ci1pbmRleCAwMDAwMDAwMC4uNmI5ZjQ2NDEKLS0tLSAvZGV2L251bGwKLSsr KyBiL3Rlc3RzL2xsLXNtb2tlLnNoCi1AQCAtMCwwICsxLDE0MSBAQAotKyMhL2Jpbi9zaAotKwot Ky4gInRlc3RzL2xpYi5zaCIKLSsKLSsjIFZlcnkgc2ltcGxlIHNtb2tlIHRlc3QgZm9yIHNxdWFz aGZ1c2VfbGwuIE1ha2Ugc29tZSByYW5kb20gZmlsZXMuCi0rIyBhc3NlbWJsZSBhIHNxdWFzaGZz IGltYWdlLCBtb3VudCBpdCwgY29tcGFyZSB0aGUgZmlsZXMuCi0rCi0rU0ZMTD0kezE6LS4vc3F1 YXNoZnVzZV9sbH0gICAgICAgICAjIFRoZSBzcXVhc2hmdXNlX2xsIGJpbmFyeS4KLSsKLStJRExF X1RJTUVPVVQ9NQotKwotK3RyYXAgY2xlYW51cCBFWElUCi0rc2V0IC1lCi0rCi0rV09SS0RJUj0k KG1rdGVtcCAtZCkKLSsKLStzcV91bW91bnQoKSB7Ci0rICAgIGNhc2UgbGludXgtZ251IGluCi0r ICAgICAgICBsaW51eCopCi0rICAgICAgICAgICAgZnVzZXJtb3VudDMgLXUgJDEKLSsgICAgICAg ICAgICA7OwotKyAgICAgICAgKikKLSsgICAgICAgICAgICB1bW91bnQgJDEKLSsgICAgICAgICAg ICA7OwotKyAgICBlc2FjCi0rfQotKwotK3NxX2lzX21vdW50cG9pbnQoKSB7Ci0rICAgIG1vdW50 IHwgZ3JlcCAtcSAiJDEiCi0rfQotKwotK2NsZWFudXAoKSB7Ci0rICAgIHNldCArZSAjIERvbid0 IGNhcmUgYWJvdXQgZXJyb3JzIGhlcmUuCi0rICAgIGlmIFsgLW4gIiRXT1JLRElSIiBdOyB0aGVu Ci0rICAgICAgICBpZiBbIC1uICIkU1FfU0FWRV9MT0dTIiBdOyB0aGVuCi0rICAgICAgICAgICAg Y3AgIiRXT1JLRElSL3NxdWFzaGZzX2xsLmxvZyIgIiRTUV9TQVZFX0xPR1MiIHx8IHRydWUKLSsg ICAgICAgIGZpCi0rICAgICAgICBpZiBzcV9pc19tb3VudHBvaW50ICIkV09SS0RJUi9tb3VudCI7 IHRoZW4KLSsgICAgICAgICAgICBzcV91bW91bnQgIiRXT1JLRElSL21vdW50IgotKyAgICAgICAg ZmkKLSsgICAgICAgIHJtIC1yZiAiJFdPUktESVIiCi0rICAgIGZpCi0rfQotKwotK2ZpbmRfY29t cHJlc3NvcnMKLSsKLStlY2hvICJHZW5lcmF0aW5nIHJhbmRvbSB0ZXN0IGZpbGVzLi4uIgotK21r ZGlyIC1wICIkV09SS0RJUi9zb3VyY2UiCi0raGVhZCAtYyA2NDAwMDAwMCAvZGV2L3VyYW5kb20g PiIkV09SS0RJUi9zb3VyY2UvcmFuZDEiCi0raGVhZCAtYyAxNzAwMCAvZGV2L3VyYW5kb20gPiIk V09SS0RJUi9zb3VyY2UvcmFuZDIiCi0raGVhZCAtYyAxMDAwMDAwMDAgL2Rldi91cmFuZG9tID4i JFdPUktESVIvc291cmNlL3JhbmQzIgotK2hlYWQgLWMgODcgL2Rldi96ZXJvID4iJFdPUktESVIv c291cmNlL3oxIHdpdGggc3BhY2VzIgotKwotK2ZvciBjb21wIGluICRjb21wcmVzc29yczsgZG8K LSsgICAgZWNobyAiQnVpbGRpbmcgJGNvbXAgc3F1YXNoZnMgaW1hZ2UuLi4iCi0rICAgIG1rc3F1 YXNoZnMgIiRXT1JLRElSL3NvdXJjZSIgIiRXT1JLRElSL3NxdWFzaGZzLmltYWdlIiAtY29tcCAk Y29tcCAtbm8tcHJvZ3Jlc3MKLSsKLSsgICAgbWtkaXIgLXAgIiRXT1JLRElSL21vdW50IgotKwot KyAgICBlY2hvICJNb3VudGluZyBzcXVhc2hmcyBpbWFnZS4uLiIKLSsgICAgJFNGTEwgLWYgJFNG TExfRVhUUkFfQVJHUyAiJFdPUktESVIvc3F1YXNoZnMuaW1hZ2UiICIkV09SS0RJUi9tb3VudCIg PiIkV09SS0RJUi9zcXVhc2hmc19sbC5sb2ciIDI+JjEgJgotKyAgICAjIFdhaXQgdXAgdG8gNSBz ZWNvbmRzIHRvIGJlIG1vdW50ZWQuIFRTQU4gYnVpbGRzIGNhbiB0YWtlIHNvbWUgdGltZSB0byBt b3VudC4KLSsgICAgZm9yIF8gaW4gJChzZXEgNSk7IGRvCi0rICAgIGlmIHNxX2lzX21vdW50cG9p bnQgIiRXT1JLRElSL21vdW50IjsgdGhlbgotKyAgICAgICAgYnJlYWsKLSsgICAgZmkKLSsgICAg c2xlZXAgMQotKyAgICBkb25lCi0rCi0rICAgIGlmICEgc3FfaXNfbW91bnRwb2ludCAiJFdPUktE SVIvbW91bnQiOyB0aGVuCi0rICAgICAgICBlY2hvICJJbWFnZSBkaWQgbm90IG1vdW50IGFmdGVy IDUgc2Vjb25kcy4iCi0rICAgICAgICBjcCAiJFdPUktESVIvc3F1YXNoZnNfbGwubG9nIiAvdG1w L3NxdWFzaGZzX2xsLnNtb2tlLmxvZwotKyAgICAgICAgZWNobyAiVGhlcmUgbWF5IGJlIGNsdWVz IGluIC90bXAvc3F1YXNoZnNfbGwuc21va2UubG9nIgotKyAgICAgICAgZXhpdCAxCi0rICAgIGZp Ci0rCi0rICAgIGlmIGNvbW1hbmQgLXYgZmlvID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgIGVj aG8gIkZJTyB0ZXN0cy4uLiIKLSsgICAgICAgIGZpbyAtLWZpbGVuYW1lPSIkV09SS0RJUi9tb3Vu dC9yYW5kMSIgLS1kaXJlY3Q9MSAtLXJ3PXJhbmRyZWFkIC0taW9lbmdpbmU9bGliYWlvIC0tYnM9 NTEyIC0taW9kZXB0aD0xNiAtLW51bWpvYnM9NCAtLW5hbWU9ajEgLS1taW5pbWFsIC0tb3V0cHV0 PS9kZXYvbnVsbCAtLXJ1bnRpbWUgMzAKLSsgICAgICAgIGZpbyAtLWZpbGVuYW1lPSIkV09SS0RJ Ui9tb3VudC9yYW5kMiIgLS1ydz1yYW5kcmVhZCAtLWlvZW5naW5lPWxpYmFpbyAtLWJzPTRrIC0t aW9kZXB0aD0xNiAtLW51bWpvYnM9NCAtLW5hbWU9ajIgLS1taW5pbWFsIC0tb3V0cHV0PS9kZXYv bnVsbCAtLXJ1bnRpbWUgMzAKLSsgICAgICAgIGZpbyAtLWZpbGVuYW1lPSIkV09SS0RJUi9tb3Vu dC9yYW5kMyIgLS1ydz1yYW5kcmVhZCAtLWlvZW5naW5lPXBzeW5jIC0tYnM9MTI4ayAtLW5hbWU9 ajMgLS1taW5pbWFsIC0tb3V0cHV0PS9kZXYvbnVsbCAtLXJ1bnRpbWUgMzAKLSsgICAgZWxzZQot KyAgICAgICAgZWNobyAiQ29uc2lkZXIgaW5zdGFsbGluZyBmaW8gZm9yIGJldHRlciB0ZXN0IGNv dmVyYWdlLiIKLSsgICAgZmkKLSsKLSsgICAgZWNobyAiQ29tcGFyaW5nIGZpbGVzLi4uIgotKyAg ICBjbXAgIiRXT1JLRElSL3NvdXJjZS9yYW5kMSIgIiRXT1JLRElSL21vdW50L3JhbmQxIgotKyAg ICBjbXAgIiRXT1JLRElSL3NvdXJjZS9yYW5kMiIgIiRXT1JLRElSL21vdW50L3JhbmQyIgotKyAg ICBjbXAgIiRXT1JLRElSL3NvdXJjZS9yYW5kMyIgIiRXT1JLRElSL21vdW50L3JhbmQzIgotKyAg ICBjbXAgIiRXT1JLRElSL3NvdXJjZS96MSB3aXRoIHNwYWNlcyIgIiRXT1JLRElSL21vdW50L3ox IHdpdGggc3BhY2VzIgotKwotKyAgICBlY2hvICJQYXJhbGxlbCBtZDVzdW0uLi4iCi0rICAgIG1k NXN1bSAiJFdPUktESVIiL21vdW50LyogPiIkV09SS0RJUi9tZDVzdW1zIgotKyAgICBzcGxpdCAt bDEgIiRXT1JLRElSL21kNXN1bXMiICIkV09SS0RJUi9zdW1waWVjZSIKLSsgICAgZWNobyAiJFdP UktESVIiL3N1bXBpZWNlKiB8IHhhcmdzIC1QNCAtbjEgbWQ1c3VtIC1jCi0rCi0rICAgIGVjaG8g Ikxvb2t1cCB0ZXN0cy4uLiIKLSsgICAgIyBMb29rIGZvciBub24tZXhpc3RlbnQgZmlsZXMgdG8g ZXhlcmNpc2UgZmFpbGVkIGxvb2t1cCBwYXRoLgotKyAgICBpZiBbIC1lICIkV09SS0RJUi9tb3Vu dC9ib2d1cyIgXTsgdGhlbgotKyAgICAgICAgZWNobyAiQm9ndXMgZXhpc3RlbmNlIHRlc3QiCi0r ICAgICAgICBleGl0IDEKLSsgICAgZmkKLSsgICAgIyBUd2ljZSBzbyB3ZSBoaXQgY2FjaGUgcGF0 aC4KLSsgICAgaWYgWyAtZSAiJFdPUktESVIvbW91bnQvYm9ndXMiIF07IHRoZW4KLSsgICAgICAg IGVjaG8gIkJvZ3VzIGV4aXN0ZW5jZSB0ZXN0ICMyIgotKyAgICAgICAgZXhpdCAxCi0rICAgIGZp Ci0rCi0rICAgIFNSQ1NaPSQod2MgLWMgPCAiJFdPUktESVIvc291cmNlL3JhbmQxIikKLSsgICAg TU5UU1o9JCh3YyAtYyA8ICIkV09SS0RJUi9tb3VudC9yYW5kMSIpCi0rICAgIGlmIFsgIiRTUkNT WiIgIT0gIiRNTlRTWiIgXTsgdGhlbgotKyAgICAgICAgZWNobyAiQm9ndXMgc2l6ZSAkTU5UU1og IT0gJFNSQ1NaIgotKyAgICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0rICAgIGVjaG8gIlVubW91 bnRpbmcuLi4iCi0rICAgIHNxX3Vtb3VudCAiJFdPUktESVIvbW91bnQiCi0rCi0rICAgICMgT25s eSB0ZXN0IHRpbWVvdXRzIG9uY2UsIGl0IHRha2VzIGEgbG9uZyB0aW1lCi0rICAgIGlmIFsgLXog IiRkaWRfdGltZW91dCIgXTsgdGhlbgotKyAgICAgICAgZWNobyAiUmVtb3VudGluZyB3aXRoIGlk bGUgdW5tb3VudCBvcHRpb24uLi4iCi0rICAgICAgICAkU0ZMTCAkU0ZMTF9FWFRSQV9BUkdTIC1v dGltZW91dD0kSURMRV9USU1FT1VUICIkV09SS0RJUi9zcXVhc2hmcy5pbWFnZSIgIiRXT1JLRElS L21vdW50IgotKyAgICAgICAgaWYgISBzcV9pc19tb3VudHBvaW50ICIkV09SS0RJUi9tb3VudCI7 IHRoZW4KLSsgICAgICAgICAgICBlY2hvICJOb3QgbW91bnRlZD8iCi0rICAgICAgICAgICAgZXhp dCAxCi0rICAgICAgICBmaQotKyAgICAgICAgZWNobyAiV2FpdGluZyB1cCB0byAkKCggSURMRV9U SU1FT1VUICsgMTAgKSkgc2Vjb25kcyBmb3IgaWRsZSB1bm1vdW50Li4uIgotKyAgICAgICAgc2xl ZXAgJCgoIElETEVfVElNRU9VVCArIDEwICkpCi0rICAgICAgICBpZiBzcV9pc19tb3VudHBvaW50 ICIkV09SS0RJUi9tb3VudCI7IHRoZW4KLSsgICAgICAgICAgICBlY2hvICJGUyBkaWQgbm90IGlk bGUgdW5tb3VudCBpbiB0aW1lbHkgd2F5LiIKLSsgICAgICAgICAgICBleGl0IDEKLSsgICAgICAg IGZpCi0rCi0rICAgICAgICBkaWRfdGltZW91dD15ZXMKLSsgICAgZmkKLSsKLSsgICAgcm0gLWYg IiRXT1JLRElSL3NxdWFzaGZzLmltYWdlIgotK2RvbmUKLSsKLStlY2hvICJTdWNjZXNzLiIKLStl eGl0IDAKLWRpZmYgLS1naXQgYS90ZXN0cy9sbC1zbW9rZS5zaC5pbiBiL3Rlc3RzL2xsLXNtb2tl LnNoLmluCi1pbmRleCA4NDI1NjI2Ny4uZDdkZGQ4YTEgMTAwNzU1Ci0tLS0gYS90ZXN0cy9sbC1z bW9rZS5zaC5pbgotKysrIGIvdGVzdHMvbGwtc21va2Uuc2guaW4KLUBAIC01MiwxMyArNTIsMTMg QEAgaGVhZCAtYyAxMDAwMDAwMDAgL2Rldi91cmFuZG9tID4iJFdPUktESVIvc291cmNlL3JhbmQz IgotIGhlYWQgLWMgODcgL2Rldi96ZXJvID4iJFdPUktESVIvc291cmNlL3oxIHdpdGggc3BhY2Vz IgotIAotIGZvciBjb21wIGluICRjb21wcmVzc29yczsgZG8KLS0gICAgZWNobyAiQnVpbGRpbmcg JGNvbXAgc3F1YXNoZnMgaW1hZ2UsLiwiCi0rICAgIGVjaG8gIkJ1aWxkaW5nICRjb21wIHNxdWFz aGZzIGltYWdlLi4uIgotICAgICBta3NxdWFzaGZzICIkV09SS0RJUi9zb3VyY2UiICIkV09SS0RJ Ui9zcXVhc2hmcy5pbWFnZSIgLWNvbXAgJGNvbXAgLW5vLXByb2dyZXNzCi0gCi0gICAgIG1rZGly IC1wICIkV09SS0RJUi9tb3VudCIKLSAKLSAgICAgZWNobyAiTW91bnRpbmcgc3F1YXNoZnMgaW1h Z2UuLi4iCi0tICAgICRTRkxMIC1mICAiJFdPUktESVIvc3F1YXNoZnMuaW1hZ2UiICIkV09SS0RJ Ui9tb3VudCIgPiIkV09SS0RJUi9zcXVhc2hmc19sbC5sb2ciIDI+JjEgJgotKyAgICAkU0ZMTCAt ZiAkU0ZMTF9FWFRSQV9BUkdTICIkV09SS0RJUi9zcXVhc2hmcy5pbWFnZSIgIiRXT1JLRElSL21v dW50IiA+IiRXT1JLRElSL3NxdWFzaGZzX2xsLmxvZyIgMj4mMSAmCi0gICAgICMgV2FpdCB1cCB0 byA1IHNlY29uZHMgdG8gYmUgbW91bnRlZC4gVFNBTiBidWlsZHMgY2FuIHRha2Ugc29tZSB0aW1l IHRvIG1vdW50LgotICAgICBmb3IgXyBpbiAkKHNlcSA1KTsgZG8KLSAgICAgaWYgc3FfaXNfbW91 bnRwb2ludCAiJFdPUktESVIvbW91bnQiOyB0aGVuCi1AQCAtMTE5LDcgKzExOSw3IEBAIGZvciBj b21wIGluICRjb21wcmVzc29yczsgZG8KLSAgICAgIyBPbmx5IHRlc3QgdGltZW91dHMgb25jZSwg aXQgdGFrZXMgYSBsb25nIHRpbWUKLSAgICAgaWYgWyAteiAiJGRpZF90aW1lb3V0IiBdOyB0aGVu Ci0gICAgICAgICBlY2hvICJSZW1vdW50aW5nIHdpdGggaWRsZSB1bm1vdW50IG9wdGlvbi4uLiIK LS0gICAgICAgICRTRkxMIC1vdGltZW91dD0kSURMRV9USU1FT1VUICIkV09SS0RJUi9zcXVhc2hm cy5pbWFnZSIgIiRXT1JLRElSL21vdW50IgotKyAgICAgICAgJFNGTEwgJFNGTExfRVhUUkFfQVJH UyAtb3RpbWVvdXQ9JElETEVfVElNRU9VVCAiJFdPUktESVIvc3F1YXNoZnMuaW1hZ2UiICIkV09S S0RJUi9tb3VudCIKLSAgICAgICAgIGlmICEgc3FfaXNfbW91bnRwb2ludCAiJFdPUktESVIvbW91 bnQiOyB0aGVuCi0gICAgICAgICAgICAgZWNobyAiTm90IG1vdW50ZWQ/IgotICAgICAgICAgICAg IGV4aXQgMQotCi1Gcm9tIDA2OWU4ZjgwMjQ4MWFmMDYzNmZhYmVmNDZiZWM3NWRlMTk5MmIyMjAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBWaWdvciA8a3ZpZ29yQGdtYWls LmNvbT4KLURhdGU6IE1vbiwgMjMgTWF5IDIwMjIgMTQ6NTU6MjUgLTA2MDAKLVN1YmplY3Q6IFtQ QVRDSCAzLzNdIEVuYWJsZSBsYXp5IHVtb3VudCBvbiBTSUdURVJNLgotCi1saWJmdXNlIHNldHMg U0lHVEVSTSBzaWduYWwgaGFuZGxlciB0byBleGl0IGltbWVkaWF0ZWx5LiBUaGlzIGlzIHZlcnkK LXVuZm9ydHVuYXRlIGlmIGFueSBvdGhlciBwcm9jZXNzZXMgYXJlIHN0aWxsIHVzaW5nIHRoZSBm aWxlc3lzdGVtLgotCi1UZWFjaCBzcXVhc2hmdXNlX2xsIHRvIHJlc3BvbmQgdG8gU0lHVEVSTSB3 aXRoIGxhenkgdW1vdW50LiBXZSBjYW5ub3QKLWRpcmVjdGx5IGNhbGwgdW1vdW50MigpIEFQSSBm cm9tIHRoZSBzaWduYWwgaGFuZGxlciwgc2luY2UgaXQgaXMgbm90Ci1zaWduYWwgc2FmZSwgYnV0 IHdlIGNhbiBmb3JrL2V4ZWMgZnVzZXJtb3VudDMgKHlheSBwb3NpeD8pLiBUaGlzIGlzCi1hbHNv IGEgd2luIGJlY2F1c2UgZnVzZXJtb3VudCBpcyBzdWlkLCBlbmFibGluZyBub24tcHJpdmlsZWdl ZCB1c2VycwotdG8gdW1vdW50LiBOb3RlIHRoYXQgbm9ybWFsIGxpYmZ1c2UgdW1vdW50IHVzZXMg c2FtZSBzdHJhdGVneSB3aGVuCi1ydW5uaW5nIGFzIG5vbi1yb290LgotCi1Ob3RlIHRoYXQgdGhp cyBtdXN0IGJlIGV4cGxpY2l0bHkgZW5hYmxlZCBhdCBjb25maWd1cmUgdGltZSB3aXRoCi0tLWVu YWJsZS1zaWd0ZXJtLWhhbmRsZXIsIGFuZCBpdCBpcyBvbmx5IHRlc3RlZCBvbiBsaW51eC4KLS0t LQotIE1ha2VmaWxlLmFtICAgICAgICAgICAgIHwgIDMgKysKLSBjb25maWd1cmUuYWMgICAgICAg ICAgICB8ICA5ICsrKysrCi0gbGxfbWFpbi5jICAgICAgICAgICAgICAgfCA4NyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIHRlc3RzL3Vtb3VudC10ZXN0LnNoLmlu IHwgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIDQgZmlsZXMg Y2hhbmdlZCwgMTg0IGluc2VydGlvbnMoKykKLSBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvdW1v dW50LXRlc3Quc2guaW4KLQotZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0K LWluZGV4IDE3YjAxYmU0Li42N2MxN2NkZSAxMDA2NDQKLS0tLSBhL01ha2VmaWxlLmFtCi0rKysg Yi9NYWtlZmlsZS5hbQotQEAgLTExMSw2ICsxMTEsOSBAQCBpZiBNVUxUSVRIUkVBREVECi0gIyB0 aGF0IGNhc2UuCi0gVEVTVFMgKz0gdGVzdHMvbGwtc21va2Utc2luZ2xldGhyZWFkZWQuc2gKLSBl bmRpZgotK2lmIFNJR1RFUk1fSEFORExFUgotK1RFU1RTICs9IHRlc3RzL3Vtb3VudC10ZXN0LnNo Ci0rZW5kaWYKLSBjaGVja19QUk9HUkFNUyA9IGNhY2hldGVzdCBlbmRpYW50ZXN0Ci0gY2FjaGV0 ZXN0X1NPVVJDRVM9dGVzdHMvY2FjaGV0ZXN0LmMKLSBjYWNoZXRlc3RfTERBREQ9bGlic3F1YXNo ZnVzZS5sYSAkKENPTVBSRVNTSU9OX0xJQlMpCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIv Y29uZmlndXJlLmFjCi1pbmRleCAzODY5MDc1YS4uN2NkNGRiNzcgMTAwNjQ0Ci0tLS0gYS9jb25m aWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTkxLDYgKzkxLDcgQEAgQVNfSUYoW3Rl c3QgIngkc3FfdGVzdHMiID0geF0sIFtzcV90ZXN0cz0iIG5vbmUiXSkKLSAKLSBBQ19TVUJTVChb c3FfbWtzcXVhc2hmc19jb21wcmVzc29yc10pCi0gQUNfQ09ORklHX0ZJTEVTKFt0ZXN0cy9sbC1z bW9rZS5zaF0sW2NobW9kICt4IHRlc3RzL2xsLXNtb2tlLnNoXSkKLStBQ19DT05GSUdfRklMRVMo W3Rlc3RzL3Vtb3VudC10ZXN0LnNoXSxbY2htb2QgK3ggdGVzdHMvdW1vdW50LXRlc3Quc2hdKQot IAotIAotIEFTX0lGKFt0ZXN0ICJ4JHNxX2hpZ2hfbGV2ZWwkc3FfbG93X2xldmVsJHNxX2RlbW8i ID0geG5vbm9ub10sCi1AQCAtMTA0LDYgKzEwNSwxNCBAQCBBQ19BUkdfRU5BQkxFKFttdWx0aXRo cmVhZGluZ10sCi0gICAgIF0pCi0gQU1fQ09ORElUSU9OQUwoW01VTFRJVEhSRUFERURdLCBbdGVz dCB4JGVuYWJsZV9tdWx0aXRocmVhZGluZyA9IHh5ZXNdKQotIAotK0FDX0FSR19FTkFCTEUoW3Np Z3Rlcm0taGFuZGxlcl0sCi0rCUFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zaWd0ZXJtLWhhbmRs ZXJdLCBbZW5hYmxlIGxhenkgdW1vdW50IG9uIFNJR1RFUk0gaW4gbG93LWxldmVsIEZVU0UgZHJp dmVyXSksCi0rCVsKLSsgICAgQUNfQ0hFQ0tfSEVBREVSKFtsaW51eC92ZXJzaW9uLmhdLCAsIFtd LCBBQ19NU0dfRVJST1IoW2xpbnV4IGhvc3QgcmVxdWlyZWQgZm9yIHNpZ3Rlcm0taGFuZGxlci5d KSkKLSsgICAgQUNfREVGSU5FKFNRRlNfU0lHVEVSTV9IQU5ETEVSLCAxLCBbRW5hYmxlIGxhenkg dW1vdW50IG9uIFNJR1RFUk0gaW4gbG93LWxldmVsIEZVU0UgZHJpdmVyXSkKLSsgICAgXSkKLStB TV9DT05ESVRJT05BTChbU0lHVEVSTV9IQU5ETEVSXSwgW3Rlc3QgeCRlbmFibGVfc2lndGVybV9o YW5kbGVyID0geHllc10pCi0rCi0gQUNfU1VCU1QoW3NxX2RlY29tcHJlc3NvcnNdKQotIEFDX1NV QlNUKFtzcV9oaWdoX2xldmVsXSkKLSBBQ19TVUJTVChbc3FfbG93X2xldmVsXSkKLWRpZmYgLS1n aXQgYS9sbF9tYWluLmMgYi9sbF9tYWluLmMKLWluZGV4IDIyMzAyMDg1Li4wZjk1NmI1ZCAxMDA2 NDQKLS0tLSBhL2xsX21haW4uYwotKysrIGIvbGxfbWFpbi5jCi1AQCAtMzcsNiArMzcsOTAgQEAK LSAjaW5jbHVkZSA8c2lnbmFsLmg+Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotIAotKwotKyNpZiBk ZWZpbmVkKFNRRlNfU0lHVEVSTV9IQU5ETEVSKQotKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgot KyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+Ci0rc3RhdGljIGJvb2wga2VybmVsX3ZlcnNpb25f YXRfbGVhc3QodW5zaWduZWQgcmVxdWlyZWRfbWFqb3IsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgcmVxdWlyZWRfbWlub3IsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgcmVxdWlyZWRfbWljcm8pIHsKLSsgICAgc3Ry dWN0IHV0c25hbWUgaW5mbzsKLSsKLSsgICAgaWYgKHVuYW1lKCZpbmZvKSA+PSAwKSB7Ci0rICAg ICAgICB1bnNpZ25lZCBtYWpvciwgbWlub3IsIG1pY3JvOwotKwotKyAgICAgICAgaWYgKHNzY2Fu ZihpbmZvLnJlbGVhc2UsICIldS4ldS4ldSIsICZtYWpvciwgJm1pbm9yLCAmbWljcm8pID09IDMp IHsKLSsgICAgICAgICAgICByZXR1cm4gS0VSTkVMX1ZFUlNJT04obWFqb3IsIG1pbm9yLCBtaWNy bykgPj0KLSsgICAgICAgICAgICAgICAgS0VSTkVMX1ZFUlNJT04ocmVxdWlyZWRfbWFqb3IsIHJl cXVpcmVkX21pbm9yLCByZXF1aXJlZF9taWNybyk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsgICAg cmV0dXJuIGZhbHNlOwotK30KLSsKLSsvKiBsaWJmdXNlJ3MgZGVmYXVsdCBTSUdURVJNIGhhbmRs ZXIgKHNldCB1cCBpbiBmdXNlX3NldF9zaWduYWxfaGFuZGxlcnMoKSkKLSsgKiBpbW1lZGlhdGVs eSBjYWxscyBmdXNlX3Nlc3Npb25fZXhpdCgpLCB3aGljaCBzaHV0cyBkb3duIHRoZSBmaWxlc3lz dGVtCi0rICogZXZlbiBpZiB0aGVyZSBhcmUgYWN0aXZlIHVzZXJzLiBUaGlzIGxlYWRzIHRvIG5h c3RpbmVzcyBpZiBvdGhlciBwcm9jZXNzZXMKLSsgKiBzdGlsbCBkZXBlbmQgb24gdGhlIGZpbGVz eXN0ZW0uCi0rICoKLSsgKiBTbzogd2UgcmVzcG9uZCB0byBTSUdURVJNIGJ5IHN0YXJ0aW5nIGEg bGF6eSB1bm1vdW50LiBUaGlzIGlzIGRvbmUKLSsgKiBieSBleGVjJ2luZyBmdXNlcm1vdW50Mywg d2hpY2ggd29ya3MgcHJvcGVybHkgZm9yIHVucHJpdmlsZWRnZWQKLSsgKiB1c2VycyAod2UgY2Fu bm90IHVzZSB1bW91bnQyKCkgc3lzY2FsbCBiZWNhdXNlIGl0IGlzIG5vdCBzaWduYWwgc2FmZTsK LSsgKiBmb3JrKCkgYW5kIGV4ZWMoKSwgYW1hemluZ2x5LCBhcmUpLgotKyAqCi0rICogSWYgd2Ug ZmFpbCB0byBzdGFydCB0aGUgbGF6eSB1bW91bnQsIHdlIHNpZ25hbCBvdXJzZWxmIHdpdGggU0lH SU5ULAotKyAqIHdoaWNoIGZhbGxzIGJhY2sgdG8gdGhlIG9sZCBiZWhhdmlvciBvZiBleGl0aW5n IEFTQVAuCi0rICovCi0rc3RhdGljIGNvbnN0IGNoYXIgKmdfbW91bnRfcG9pbnQgPSBOVUxMOwot K3N0YXRpYyB2b2lkIHNpZ3Rlcm1faGFuZGxlcihpbnQgc2lnbnVtKSB7Ci0rCS8qIFVuZm9ydHVu YXRlbHksIGxhenkgdW1vdW50IG9mIGluLXVzZSBmdXNlIGZpbGVzeXN0ZW0gdHJpZ2dlcnMKLSsJ ICoga2VybmVsIGJ1ZyBvbiBrZXJuZWxzIDwgNS4yLCBGaXhlZCBieSBrZXJuZWwgY29tbWl0Ci0r CSAqIGU4ZjNiZDc3M2QyMmY0ODg3MjRkZmZiODg2YTE2MThkYTg1YzI5NjYgaW4gNS4yLgotKwkg Ki8KLSsJaWYgKGdfbW91bnRfcG9pbnQgJiYga2VybmVsX3ZlcnNpb25fYXRfbGVhc3QoNSwyLDAp KSB7Ci0rICAgICAgICBpbnQgcGlkID0gZm9yaygpOwotKyAgICAgICAgaWYgKHBpZCA9PSAwKSB7 Ci0rICAgICAgICAgICAgLyogY2hpbGQgcHJvY2VzczogZGlzYXNzb2NpYXRlIG91cnNlbGYgZnJv bSBwYXJlbnQgc28KLSsgICAgICAgICAgICAgKiB3ZSBkbyBub3QgYmVjb21lIHpvbWJpZSAoYXMg cGFyZW50IGRvZXMgbm90IHdhaXRwaWQoKSkuCi0rICAgICAgICAgICAgICovCi0rICAgICAgICAg ICAgcGlkX3QgcGFyZW50ID0gZ2V0cHBpZCgpOwotKyAgICAgICAgICAgIHNldHNpZCgpOwotKyAg ICAgICAgICAgIGV4ZWNsKCIvYmluL2Z1c2VybW91bnQzIiwgImZ1c2VybW91bnQzIiwKLSsgICAg ICAgICAgICAgICAgICAiLXUiLCAiLXEiLCAiLXoiLCAiLS0iLCBnX21vdW50X3BvaW50LCBOVUxM KTsKLSsgICAgICAgICAgICBleGVjbHAoImZ1c2VybW91bnQzIiwgImZ1c2VybW91bnQzIiwKLSsg ICAgICAgICAgICAgICAgICAgIi11IiwgIi1xIiwgIi16IiwgIi0tIiwgZ19tb3VudF9wb2ludCwg TlVMTCk7Ci0rICAgICAgICAgICAgLyogaWYgd2UgZ2V0IGhlcmUsIHdlIGNhbid0IHJ1biBmdXNl cm1vdW50LAotKyAgICAgICAgICAgICAqIGtpbGwgdGhlIG9yaWdpbmFsIHByb2Nlc3Mgd2l0aCBh IGhhcnNobmVzcy4KLSsgICAgICAgICAgICAgKi8KLSsgICAgICAgICAgICBraWxsKHBhcmVudCwg U0lHSU5UKTsKLSsgICAgICAgICAgICBfZXhpdCgwKTsKLSsgICAgICAgIH0gZWxzZSBpZiAocGlk ID4gMCkgewotKyAgICAgICAgICAgIC8qIHBhcmVudCBwcm9jZXNzOiBub3RoaW5nIHRvIGRvLCBt dXJkZXJvdXMgY2hpbGQgd2lsbCBkbyB1cwotKyAgICAgICAgICAgICAqIGluIG9uZSB3YXkgb3Ig YW5vdGhlci4KLSsgICAgICAgICAgICAgKi8KLSsgICAgICAgICAgICByZXR1cm47Ci0rICAgICAg ICB9Ci0rICAgIH0KLSsgICAgLyogSWYgd2UgZ2V0IGhlcmUsIHdlIGhhdmUgZmFpbGVkIHRvIGxh enkgdW5tb3VudCBmb3Igd2hhdGV2ZXIgcmVhc29uLAotKyAgICAgKiBraWxsIG91cnNlbGYgbW9y ZSBicnV0YWxseS4KLSsgICAgICovCi0rICAgIGtpbGwoZ2V0cGlkKCksIFNJR0lOVCk7Ci0rfQot KwotK3N0YXRpYyB2b2lkIHNldF9zaWd0ZXJtX2hhbmRsZXIoY29uc3QgY2hhciAqbW91bnRwb2lu dCkgewotKyAgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOwotKwotKyAgICBnX21vdW50X3BvaW50ID0g bW91bnRwb2ludDsKLSsgICAgbWVtc2V0KCZzYSwgMCwgc2l6ZW9mKHNhKSk7Ci0rICAgIHNhLnNh X2hhbmRsZXIgPSBzaWd0ZXJtX2hhbmRsZXI7Ci0rICAgIHNpZ2VtcHR5c2V0KCYoc2Euc2FfbWFz aykpOwotKyAgICBzYS5zYV9mbGFncyA9IFNBX1JFU1RBUlQ7Ci0rCi0rICAgIGlmIChzaWdhY3Rp b24oU0lHVEVSTSwgJnNhLCBOVUxMKSA9PSAtMSkgewotKyAgICAgICAgcGVycm9yKCJzaWdhY3Rp b24oU0lHVEVSTSkiKTsKLSsgICAgfQotK30KLSsjZW5kaWYgLyogU1FGU19TSUdURVJNX0hBTkRM RVIgKi8KLSsKLSBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0gCXN0cnVjdCBm dXNlX2FyZ3MgYXJnczsKLSAJc3Fmc19vcHRzIG9wdHM7Ci1AQCAtMTM5LDYgKzIyMyw5IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICBsbCkgPT0gU1FGU19PSykgewotIAkJCWlmIChzcWZzX2xsX2RhZW1vbml6ZShmdXNlX2NtZGxp bmVfb3B0cy5mb3JlZ3JvdW5kKSAhPSAtMSkgewotIAkJCQlpZiAoZnVzZV9zZXRfc2lnbmFsX2hh bmRsZXJzKGNoLnNlc3Npb24pICE9IC0xKSB7Ci0rI2lmIGRlZmluZWQoU1FGU19TSUdURVJNX0hB TkRMRVIpCi0rCQkJCQlzZXRfc2lndGVybV9oYW5kbGVyKGZ1c2VfY21kbGluZV9vcHRzLm1vdW50 cG9pbnQpOwotKyNlbmRpZgotIAkJCQkJaWYgKG9wdHMuaWRsZV90aW1lb3V0X3NlY3MpIHsKLSAJ CQkJCQlzZXR1cF9pZGxlX3RpbWVvdXQoY2guc2Vzc2lvbiwgb3B0cy5pZGxlX3RpbWVvdXRfc2Vj cyk7Ci0gCQkJCQl9Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvdW1vdW50LXRlc3Quc2guaW4gYi90ZXN0 cy91bW91bnQtdGVzdC5zaC5pbgotbmV3IGZpbGUgbW9kZSAxMDA3NTUKLWluZGV4IDAwMDAwMDAw Li4wNmZlZDUzMwotLS0tIC9kZXYvbnVsbAotKysrIGIvdGVzdHMvdW1vdW50LXRlc3Quc2guaW4K LUBAIC0wLDAgKzEsODUgQEAKLSsjIS9iaW4vYmFzaAotKwotKy4gInRlc3RzL2xpYi5zaCIKLSsK LStTRkxMPSR7MTotLi9zcXVhc2hmdXNlX2xsfSAgICAgICAgICMgVGhlIHNxdWFzaGZ1c2VfbGwg YmluYXJ5LgotK1RJTUVPVVQ9MjAKLSsKLStjYXNlIEBidWlsZF9vc0AgaW4KLSsgICAgbGludXgq KQotKyAgICAgICAgOzsKLSsgICAgKikKLSsgICAgICAgIGVjaG8gIlRoaXMgdGVzdCBpcyBvbmx5 IGVuYWJsZWQgb24gbGludXggaG9zdHMuIgotKyAgICAgICAgZXhpdCAwCi0rICAgICAgICA7Owot K2VzYWMKLSsKLStmdW5jdGlvbiBjbGVhbnVwIHsKLSsgICAgc2V0ICtlCi0rICAgIGlmIFtbIC1u ICIkVEFJTF9QSUQiIF1dOyB0aGVuCi0rICAgICAgICBraWxsICIkVEFJTF9QSUQiCi0rICAgIGZp Ci0rICAgIEBzcV9mdXNlcm1vdW50QCAtdSAiJE1OVERJUiIgPiYgL2Rldi9udWxsCi0rICAgIHJt IC1yZiAiJFdPUktESVIiCi0rfQotKwotK3NldCAtZQotK1dPUktESVI9JChta3RlbXAgLWQpCi0r TU5URElSPSIkV09SS0RJUi9tb3VudHBvaW50IgotK21rZGlyIC1wICIkTU5URElSIgotK21rZGly IC1wICIkV09SS0RJUi9zb3VyY2UiCi0rdHJhcCBjbGVhbnVwIEVYSVQKLSsKLSsjIE1ha2UgYSB0 aW55IHNxdWFzaGZzIGZpbGVzeXN0ZW0uCi0rZWNobyAiSGVsbG8gd29ybGQiID4iJFdPUktESVIv c291cmNlL2hlbGxvIgotK21rc3F1YXNoZnMgIiRXT1JLRElSL3NvdXJjZSIgIiRXT1JLRElSL3Nx dWFzaGZzLmltYWdlIiAtY29tcCB6c3RkIC1uby1wcm9ncmVzcyA+JiAvZGV2L251bGwKLSsKLSsj IE1vdW50IGl0LgotKyRTRkxMICIkV09SS0RJUi9zcXVhc2hmcy5pbWFnZSIgIiRNTlRESVIiCi0r U0ZQSUQ9JChwZ3JlcCAtZiAic3F1YXNoZnVzZV9sbC4qJE1OVERJUiIpCi0rCi0raWYgISBbWyAt ZCAvcHJvYy8kU0ZQSUQgXV07IHRoZW4KLSsgICAgZWNobyAic3F1YXNoZnVzZSBwcm9jZXNzIG1p c3NpbmciCi0rICAgIGV4aXQgMQotK2ZpCi0raWYgISBncmVwIC1xICIkTU5URElSIiAvcHJvYy9t b3VudHM7IHRoZW4KLSsgICAgZWNobyAibW91bnQgbWlzc2luZy4iCi0rICAgIGV4aXQgMQotK2Zp Ci0rCi0rIyBiYWNrZ3JvdW5kIGEgdGFzayB0byBob2xkIGEgZmlsZSBvcGVuIGZyb20gdGhlIGlt YWdlLgotK3RhaWwgLWYgIiR7TU5URElSfS9oZWxsbyIgPi9kZXYvbnVsbCAmCi0rVEFJTF9QSUQ9 JCEKLSsKLSsjIFNJR1RFUk0gdGhlIHNxdWFzaGZ1c2UgcHJvY2Vzcy4KLStraWxsIC0xNSAiJFNG UElEIgotKwotKyMgTm93IHdlIGV4cGVjdCB0aGUgbW91bnRwb2ludCB0byBkaXNhcHBlYXIgZHVl IHRvIGxhenkgdW1vdW50LgotK2lmICEgdGltZW91dCAkVElNRU9VVCBiYXNoIC1jIFwKLSsgICAg IndoaWxlIGdyZXAgLXEgJE1OVERJUiAvcHJvYy9tb3VudHM7IGRvIFwKLSsgICAgICAgIHNsZWVw IDE7Ci0rICAgICBkb25lIjsgdGhlbgotKyAgICAgZWNobyAiJE1OVERJUiBkaWQgbm90IGRpc21v dW50IGluIHJlc3BvbnNlIHRvIFNJR1RFUk0uIgotKyAgICAgZXhpdCAxCi0rZmkKLSsKLSsjIGJ1 dCB0aGUgcHJvY2VzcyBzaG91bGQgcmVtYWluIGFsaXZlLCBiZWNhdXNlIG9mIHRoZSBiYWNrZ3Jv dW5kIHRhc2suCi0raWYgISBbWyAtZCAvcHJvYy8kU0ZQSUQgXV07IHRoZW4KLSsgICAgZWNobyAi c3F1YXNoZnVzZSBwcm9jZXNzIG1pc3NpbmciCi0rICAgIGV4aXQgMQotK2ZpCi0rCi0rIyBOb3cg a2lsbCB0aGUgYmFja2dyb3VuZCBwcm9jZXNzLgotK2tpbGwgJFRBSUxfUElECi0rVEFJTF9QSUQ9 Ci0rCi0rIyBOb3cgd2UgZXhwZWN0IHRoZSBwcm9jZXNzIHRvIGRpZS4KLStpZiAhIHRpbWVvdXQg JFRJTUVPVVQgYmFzaCAtYyBcCi0rICAgICJ3aGlsZSBbWyAtZCAvcHJvYy8kU0ZQSUQgXV07IGRv IFwKLSsgICAgICAgIHNsZWVwIDE7Ci0rICAgICBkb25lIjsgdGhlbgotKyAgICAgZWNobyAic3F1 YXNoZnVzZSBwcm9jZXNzIGRpZCBub3QgZGllIG9uY2UgZmlsZXN5c3RlbSB3YXMgcmVsZWFzZWQu IgotKyAgICAgZXhpdCAxCi0rZmkKLSsKLStlY2hvICJTdWNjZXNzLiIKCmRpZmYgLS1naXQgYS83 Ny5wYXRjaCBiLzc3LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTkzMzJj Li4wMDAwMDAwCi0tLSBhLzc3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTgxICswLDAgQEAK LUZyb20gYjgxNmI5ODZmMDYzZjJmN2JhNWY1MTc2NjlhMWQzNmQxYzQwY2UxNiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IERhdmUgRHlrc3RyYSA8MjEyOTc0MytEckRhdmVEQHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KLURhdGU6IFRodSwgNiBPY3QgMjAyMiAxODoyMTo1NyAtMDUw MAotU3ViamVjdDogW1BBVENIXSBhZGQgbG93LWxldmVsIHVpZD1OIGFuZCBnaWQ9TiBvcHRpb25z LCBiZXR0ZXIgaGVscAotCi0tLS0KLSBmcy5oICAgICAgICAgIHwgIDIgKysKLSBmdXNlcHJpdmF0 ZS5jIHwgMTIgKysrKysrKysrKy0tCi0gZnVzZXByaXZhdGUuaCB8ICA0ICsrKy0KLSBobC5jICAg ICAgICAgIHwgIDQgKystLQotIGxsX21haW4uYyAgICAgfCAxMiArKysrKysrKystLS0KLSBzdGF0 LmMgICAgICAgIHwgMjQgKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gNiBmaWxlcyBjaGFuZ2Vk LCA0MiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2ZzLmgg Yi9mcy5oCi1pbmRleCBkMzAwYTNiYi4uZGMwMGQ1NGEgMTAwNjQ0Ci0tLS0gYS9mcy5oCi0rKysg Yi9mcy5oCi1AQCAtMzYsNiArMzYsOCBAQAotIHN0cnVjdCBzcWZzIHsKLSAJc3Fmc19mZF90IGZk OwotIAlzaXplX3Qgb2Zmc2V0OwotKwlpbnQgdWlkOwotKwlpbnQgZ2lkOwotIAlzdHJ1Y3Qgc3F1 YXNoZnNfc3VwZXJfYmxvY2sgc2I7Ci0gCXNxZnNfdGFibGUgaWRfdGFibGU7Ci0gCXNxZnNfdGFi bGUgZnJhZ190YWJsZTsKLWRpZmYgLS1naXQgYS9mdXNlcHJpdmF0ZS5jIGIvZnVzZXByaXZhdGUu YwotaW5kZXggYThlNzExOTEuLmI5YTEwMTgyIDEwMDY0NAotLS0tIGEvZnVzZXByaXZhdGUuYwot KysrIGIvZnVzZXByaXZhdGUuYwotQEAgLTU5LDEyICs1OSwyMCBAQCBpbnQgc3Fmc19saXN0eGF0 dHIoc3FmcyAqZnMsIHNxZnNfaW5vZGUgKmlub2RlLCBjaGFyICpidWYsIHNpemVfdCAqc2l6ZSkg ewotIAlyZXR1cm4gMDsKLSB9Ci0gCi0tdm9pZCBzcWZzX3VzYWdlKGNoYXIgKnByb2duYW1lLCBi b29sIGZ1c2VfdXNhZ2UpIHsKLSt2b2lkIHNxZnNfdXNhZ2UoY2hhciAqcHJvZ25hbWUsIGJvb2wg ZnVzZV91c2FnZSwgYm9vbCBsbF91c2FnZSkgewotIAlmcHJpbnRmKHN0ZGVyciwgIiVzIChjKSAy MDEyIERhdmUgVmFzaWxldnNreVxuXG4iLCBQQUNLQUdFX1NUUklORyk7Ci0gCWZwcmludGYoc3Rk ZXJyLCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBBUkNISVZFIE1PVU5UUE9JTlRcbiIsCi0gCQlwcm9n bmFtZSA/IHByb2duYW1lIDogUEFDS0FHRV9OQU1FKTsKLSsJZnByaW50ZihzdGRlcnIsICJcbiVz IG9wdGlvbnM6XG4iLCBwcm9nbmFtZSk7Ci0rCWZwcmludGYoc3RkZXJyLCAiICAgIC1vIG9mZnNl dCAgICAgICAgICAgICAgb2Zmc2V0IGludG8gQVJDSElWRSB0byBtb3VudFxuIik7Ci0rCWZwcmlu dGYoc3RkZXJyLCAiICAgIC1vIHRpbWVvdXQgICAgICAgICAgICAgaWRsZSBzZWNvbmRzIGZvciBh dXRvbWF0aWMgdW5tb3VudFxuIik7Ci0rCWlmIChsbF91c2FnZSkgewotKwkJZnByaW50ZihzdGRl cnIsICIgICAgLW8gdWlkPU4gICAgICAgICAgICAgICBzZXQgZmlsZSBvd25lclxuIik7Ci0rCQlm cHJpbnRmKHN0ZGVyciwgIiAgICAtbyBnaWQ9TiAgICAgICAgICAgICAgIHNldCBmaWxlIGdyb3Vw XG4iKTsKLSsJfQotIAlpZiAoZnVzZV91c2FnZSkgewotICNpZiBGVVNFX1VTRV9WRVJTSU9OID49 IDMwCi0rCQlmcHJpbnRmKHN0ZGVyciwgIlxuRlVTRSBvcHRpb25zOlxuIik7Ci0gCQlmdXNlX2Nt ZGxpbmVfaGVscCgpOwotICNlbHNlCi0gCQlzdHJ1Y3QgZnVzZV9hcmdzIGFyZ3MgPSBGVVNFX0FS R1NfSU5JVCgwLCBOVUxMKTsKLUBAIC05Miw3ICsxMDAsNyBAQCBpbnQgc3Fmc19vcHRfcHJvYyh2 b2lkICpkYXRhLCBjb25zdCBjaGFyICphcmcsIGludCBrZXksCi0gCQl9Ci0gCX0gZWxzZSBpZiAo a2V5ID09IEZVU0VfT1BUX0tFWV9PUFQpIHsKLSAJCWlmIChzdHJuY21wKGFyZywgIi1oIiwgMikg PT0gMCB8fCBzdHJuY21wKGFyZywgIi0taCIsIDMpID09IDApCi0tCQkJc3Fmc191c2FnZShvcHRz LT5wcm9nbmFtZSwgdHJ1ZSk7Ci0rCQkJcmV0dXJuIC0xOwotIAl9Ci0gCXJldHVybiAxOyAvKiBL ZWVwICovCi0gfQotZGlmZiAtLWdpdCBhL2Z1c2Vwcml2YXRlLmggYi9mdXNlcHJpdmF0ZS5oCi1p bmRleCBjOTc4MDc2Yy4uMjk5NzRiODYgMTAwNjQ0Ci0tLS0gYS9mdXNlcHJpdmF0ZS5oCi0rKysg Yi9mdXNlcHJpdmF0ZS5oCi1AQCAtNDAsNyArNDAsNyBAQAotIGludCBzcWZzX2xpc3R4YXR0cihz cWZzICpmcywgc3Fmc19pbm9kZSAqaW5vZGUsIGNoYXIgKmJ1Ziwgc2l6ZV90ICpzaXplKTsKLSAK LSAvKiBQcmludCBhIHVzYWdlIHN0cmluZyAqLwotLXZvaWQgc3Fmc191c2FnZShjaGFyICpwcm9n bmFtZSwgYm9vbCBmdXNlX3VzYWdlKTsKLSt2b2lkIHNxZnNfdXNhZ2UoY2hhciAqcHJvZ25hbWUs IGJvb2wgZnVzZV91c2FnZSwgYm9vbCBsbF91c2FnZSk7Ci0gCi0gLyogUGFyc2UgY29tbWFuZC1s aW5lIGFyZ3VtZW50cyAqLwotIHR5cGVkZWYgc3RydWN0IHsKLUBAIC00OSw2ICs0OSw4IEBAIHR5 cGVkZWYgc3RydWN0IHsKLSAJaW50IG1vdW50cG9pbnQ7Ci0gCXNpemVfdCBvZmZzZXQ7Ci0gCXVu c2lnbmVkIGludCBpZGxlX3RpbWVvdXRfc2VjczsKLSsJaW50IHVpZDsKLSsJaW50IGdpZDsKLSB9 IHNxZnNfb3B0czsKLSBpbnQgc3Fmc19vcHRfcHJvYyh2b2lkICpkYXRhLCBjb25zdCBjaGFyICph cmcsIGludCBrZXksCi0gCXN0cnVjdCBmdXNlX2FyZ3MgKm91dGFyZ3MpOwotZGlmZiAtLWdpdCBh L2hsLmMgYi9obC5jCi1pbmRleCA0OTY3MzkxMy4uYWE3MWU0ZTAgMTAwNjQ0Ci0tLS0gYS9obC5j Ci0rKysgYi9obC5jCi1AQCAtMzI1LDkgKzMyNSw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pIHsKLSAJb3B0cy5tb3VudHBvaW50ID0gMDsKLSAJb3B0cy5vZmZzZXQgPSAwOwot IAlpZiAoZnVzZV9vcHRfcGFyc2UoJmFyZ3MsICZvcHRzLCBmdXNlX29wdHMsIHNxZnNfb3B0X3By b2MpID09IC0xKQotLQkJc3Fmc191c2FnZShhcmd2WzBdLCB0cnVlKTsKLSsJCXNxZnNfdXNhZ2Uo YXJndlswXSwgdHJ1ZSwgZmFsc2UpOwotIAlpZiAoIW9wdHMuaW1hZ2UpCi0tCQlzcWZzX3VzYWdl KGFyZ3ZbMF0sIHRydWUpOwotKwkJc3Fmc191c2FnZShhcmd2WzBdLCB0cnVlLCBmYWxzZSk7Ci0g CQotIAlobCA9IHNxZnNfaGxfb3BlbihvcHRzLmltYWdlLCBvcHRzLm9mZnNldCk7Ci0gCWlmICgh aGwpCi1kaWZmIC0tZ2l0IGEvbGxfbWFpbi5jIGIvbGxfbWFpbi5jCi1pbmRleCBhY2E3NjkzNS4u NWJjNTdhYmQgMTAwNjQ0Ci0tLS0gYS9sbF9tYWluLmMKLSsrKyBiL2xsX21haW4uYwotQEAgLTU1 LDYgKzU1LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotIAlzdHJ1Y3Qg ZnVzZV9vcHQgZnVzZV9vcHRzW10gPSB7Ci0gCQl7Im9mZnNldD0lenUiLCBvZmZzZXRvZihzcWZz X29wdHMsIG9mZnNldCksIDB9LAotIAkJeyJ0aW1lb3V0PSV1Iiwgb2Zmc2V0b2Yoc3Fmc19vcHRz LCBpZGxlX3RpbWVvdXRfc2VjcyksIDB9LAotKwkJeyJ1aWQ9JWQiLCBvZmZzZXRvZihzcWZzX29w dHMsIHVpZCksIDB9LAotKwkJeyJnaWQ9JWQiLCBvZmZzZXRvZihzcWZzX29wdHMsIGdpZCksIDB9 LAotIAkJRlVTRV9PUFRfRU5ECi0gCX07Ci0gCQotQEAgLTg1LDggKzg3LDEwIEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSAJb3B0cy5tb3VudHBvaW50ID0gMDsKLSAJb3B0 cy5vZmZzZXQgPSAwOwotIAlvcHRzLmlkbGVfdGltZW91dF9zZWNzID0gMDsKLSsJb3B0cy51aWQg PSAwOwotKwlvcHRzLmdpZCA9IDA7Ci0gCWlmIChmdXNlX29wdF9wYXJzZSgmYXJncywgJm9wdHMs IGZ1c2Vfb3B0cywgc3Fmc19vcHRfcHJvYykgPT0gLTEpCi0tCQlzcWZzX3VzYWdlKGFyZ3ZbMF0s IHRydWUpOwotKwkJc3Fmc191c2FnZShhcmd2WzBdLCB0cnVlLCB0cnVlKTsKLSAKLSAjaWYgRlVT RV9VU0VfVkVSU0lPTiA+PSAzMAotIAlpZiAoZnVzZV9wYXJzZV9jbWRsaW5lKCZhcmdzLCAmZnVz ZV9jbWRsaW5lX29wdHMpICE9IDApCi1AQCAtOTYsOSArMTAwLDkgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmdXNlX2Nt ZGxpbmVfb3B0cy5tdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZnVzZV9jbWRsaW5l X29wdHMuZm9yZWdyb3VuZCkgPT0gLTEpCi0gI2VuZGlmCi0tCQlzcWZzX3VzYWdlKGFyZ3ZbMF0s IHRydWUpOwotKwkJc3Fmc191c2FnZShhcmd2WzBdLCB0cnVlLCB0cnVlKTsKLSAJaWYgKGZ1c2Vf Y21kbGluZV9vcHRzLm1vdW50cG9pbnQgPT0gTlVMTCkKLS0JCXNxZnNfdXNhZ2UoYXJndlswXSwg dHJ1ZSk7Ci0rCQlzcWZzX3VzYWdlKGFyZ3ZbMF0sIHRydWUsIHRydWUpOwotIAotIAkvKiBmdXNl X2RhZW1vbml6ZSgpIHdpbGwgdW5jb25kaXRpb25hbGx5IGNsb2JiZXIgZmRzIDAtMi4KLSAJICoK LUBAIC0xMjgsNiArMTMyLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewot IAkKLSAJLyogU1RBUlRVUCBGVVNFICovCi0gCWlmICghZXJyKSB7Ci0rCQlsbC0+ZnMudWlkID0g b3B0cy51aWQ7Ci0rCQlsbC0+ZnMuZ2lkID0gb3B0cy5naWQ7Ci0gCQlzcWZzX2xsX2NoYW4gY2g7 Ci0gCQllcnIgPSAtMTsKLSAJCWlmIChzcWZzX2xsX21vdW50KAotZGlmZiAtLWdpdCBhL3N0YXQu YyBiL3N0YXQuYwotaW5kZXggMjk5MjNmMzcuLmI0MjVjMGMwIDEwMDY0NAotLS0tIGEvc3RhdC5j Ci0rKysgYi9zdGF0LmMKLUBAIC00OSwxNCArNDksMjIgQEAgc3Fmc19lcnIgc3Fmc19zdGF0KHNx ZnMgKmZzLCBzcWZzX2lub2RlICppbm9kZSwgc3RydWN0IHN0YXQgKnN0KSB7Ci0gCQotIAlzdC0+ c3RfYmxrc2l6ZSA9IGZzLT5zYi5ibG9ja19zaXplOyAvKiBzZXJpb3VzbHk/ICovCi0gCQotLQll cnIgPSBzcWZzX2lkX2dldChmcywgaW5vZGUtPmJhc2UudWlkLCAmaWQpOwotLQlpZiAoZXJyKQot LQkJcmV0dXJuIGVycjsKLS0Jc3QtPnN0X3VpZCA9IGlkOwotLQllcnIgPSBzcWZzX2lkX2dldChm cywgaW5vZGUtPmJhc2UuZ3VpZCwgJmlkKTsKLS0Jc3QtPnN0X2dpZCA9IGlkOwotLQlpZiAoZXJy KQotLQkJcmV0dXJuIGVycjsKLSsJaWYgKGZzLT51aWQgPiAwKSB7Ci0rCQlzdC0+c3RfdWlkID0g ZnMtPnVpZDsKLSsJfSBlbHNlIHsKLSsJCWVyciA9IHNxZnNfaWRfZ2V0KGZzLCBpbm9kZS0+YmFz ZS51aWQsICZpZCk7Ci0rCQlpZiAoZXJyKQotKwkJCXJldHVybiBlcnI7Ci0rCQlzdC0+c3RfdWlk ID0gaWQ7Ci0rCX0KLSsJaWYgKGZzLT5naWQgPiAwKSB7Ci0rCQlzdC0+c3RfZ2lkID0gZnMtPmdp ZDsKLSsJfSBlbHNlIHsKLSsJCWVyciA9IHNxZnNfaWRfZ2V0KGZzLCBpbm9kZS0+YmFzZS5ndWlk LCAmaWQpOwotKwkJc3QtPnN0X2dpZCA9IGlkOwotKwkJaWYgKGVycikKLSsJCQlyZXR1cm4gZXJy OwotKwl9Ci0gCQotIAlyZXR1cm4gU1FGU19PSzsKLSB9CgpkaWZmIC0tZ2l0IGEvODEucGF0Y2gg Yi84MS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg2MzVhMy4uMDAwMDAw MAotLS0gYS84MS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLUZyb20gYTgw NGExNzkzN2YzNWIwMDk3ODc3NjAwMzRjYWVkNDNkZDRkY2IwYSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+Ci1EYXRlOiBX ZWQsIDcgRGVjIDIwMjIgMTU6MjA6NDggKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IGZ1c2Vf bW91bnQgZnVuY3Rpb24gYXJndW1lbnQgcHJvYmluZwotCi1UaGUgdGVzdCBkaWQgbm90IGNoZWNr IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHdpdGggY2VydGFpbgotZnVzZSBoZWFkZXJzIGJlY2F1 c2UgdGhleSBkZWNsYXJlIGZ1c2VfbW91bnQgaW4gPGZ1c2UuaD4sCi1ub3QgPGZ1c2VfbG93bGV2 ZWwuaD4uICBJZiB0aGUgY29tcGlsZSBzdXBwb3J0cyBpbXBsaWNpdAotZnVuY3Rpb24gZGVjbGFy YXRpb25zLCB0aGUgdGVzdCBhbHdheXMgc3VjY2VlZHMgKHJlZ2FyZGxlc3MKLW9mIHBhcmFtZXRl ciBjb3VudCkuICBJZiBpdCBkb2VzIG5vdCwgaXQgYWx3YXlzIGZhaWxzLgotLS0tCi0gbTQvc3F1 YXNoZnVzZV9mdXNlLm00IHwgNCArKystCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvbTQvc3F1YXNoZnVzZV9mdXNlLm00IGIv bTQvc3F1YXNoZnVzZV9mdXNlLm00Ci1pbmRleCBlNDI5MTY4Yi4uODhjMzdhNDYgMTAwNjQ0Ci0t LS0gYS9tNC9zcXVhc2hmdXNlX2Z1c2UubTQKLSsrKyBiL200L3NxdWFzaGZ1c2VfZnVzZS5tNAot QEAgLTI2MCw3ICsyNjAsOSBAQCBBQ19ERUZVTihbU1FfRlVTRV9BUElfVkVSU0lPTl0sWwotIAkJ QUNfQ0FDSEVfQ0hFQ0soW2ZvciB0d28tYXJndW1lbnQgZnVzZV91bm1vdW50XSwKLSAJCQkJW3Nx X2N2X2RlY2xfZnVzZV91bm1vdW50X3R3b19hcmddLFsKLSAJCQlBQ19MSU5LX0lGRUxTRSgKLS0J CQkJW0FDX0xBTkdfUFJPR1JBTShbI2luY2x1ZGUgPGZ1c2VfbG93bGV2ZWwuaD5dLAotKwkJCQlb QUNfTEFOR19QUk9HUkFNKFsKLSsJCQkJI2luY2x1ZGUgPGZ1c2UuaD4KLSsJCQkJI2luY2x1ZGUg PGZ1c2VfbG93bGV2ZWwuaD5dLAotIAkJCQkJW2Z1c2VfdW5tb3VudCgwLDApXSldLAotIAkJCQlb c3FfY3ZfZGVjbF9mdXNlX3VubW91bnRfdHdvX2FyZz15ZXNdLAotIAkJCQlbc3FfY3ZfZGVjbF9m dXNlX3VubW91bnRfdHdvX2FyZz1ub10pCgpkaWZmIC0tZ2l0IGEvYXBwdGFpbmVyLnNwZWMgYi9h cHB0YWluZXIuc3BlYwppbmRleCA4MzhhMjI3Li5hZjNlNWQ5IDEwMDY0NAotLS0gYS9hcHB0YWlu ZXIuc3BlYworKysgYi9hcHB0YWluZXIuc3BlYwpAQCAtMzEsMTkgKzMxLDE5IEBACiAKICMgVGhp cyBjYW4gYmUgc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4gJSV7dmVyc2lvbn0uCiAjIEZvciBleGFt cGxlLCBpdCBoYXMgZGFzaCBpbnN0ZWFkIG9mIHRpbGRlIGZvciByZWxlYXNlIGNhbmRpZGF0ZXMu Ci0lZ2xvYmFsIHBhY2thZ2VfdmVyc2lvbiAxLjIuMC1yYy4xCislZ2xvYmFsIHBhY2thZ2VfdmVy c2lvbiAxLjIuMC1yYy4yCiAKICMgVW5jb21tZW50IHRoaXMgdG8gaW5jbHVkZSBnb2NyeXB0ZnMK LSVnbG9iYWwgZ29jcnlwdGZzX3ZlcnNpb24gMi4zLjIKKyVnbG9iYWwgZ29jcnlwdGZzX3ZlcnNp b24gMi40LjAKICMgVW5jb21tZW50IHRoaXMgdG8gaW5jbHVkZSBhIG11bHRpdGhyZWFkZWQgdmVy c2lvbiBvZiBzcXVhc2hmdXNlX2xsCi0lZ2xvYmFsIHNxdWFzaGZ1c2VfdmVyc2lvbiAwLjEuMTA1 CislZ2xvYmFsIHNxdWFzaGZ1c2VfdmVyc2lvbiAwLjIuMAogCiAjIFRoZSBsYXN0IHNpbmd1bGFy aXR5IHZlcnNpb24gbnVtYmVyIGluIEVQRUwvRmVkb3JhCiAlZ2xvYmFsIGxhc3Rfc2luZ3VsYXJp dHlfdmVyc2lvbiAzLjguNy0zCiAKIFN1bW1hcnk6IEFwcGxpY2F0aW9uIGFuZCBlbnZpcm9ubWVu dCB2aXJ0dWFsaXphdGlvbiBmb3JtZXJseSBrbm93biBhcyBTaW5ndWxhcml0eQogTmFtZTogYXBw dGFpbmVyCi1WZXJzaW9uOiAxLjIuMH5yYy4xCitWZXJzaW9uOiAxLjIuMH5yYy4yCiBSZWxlYXNl OiAxJXs/ZGlzdH0KICMgU2VlIExJQ0VOU0UubWQgZm9yIGZpcnN0IHBhcnR5IGNvZGUgKEJTRC0z LUNsYXVzZSBhbmQgTEJOTCBCU0QpCiAjIFNlZSBMSUNFTlNFX1RISVJEX1BBUlRZLm1kIGZvciBp bmNvcnBvcmF0ZWQgY29kZSAoQVNMIDIuMCkKQEAgLTYyLDkgKzYyLDYgQEAgU291cmNlMTA6IGh0 dHBzOi8vZ2l0aHViLmNvbS9yZmpha29iL2dvY3J5cHRmcy9hcmNoaXZlL3Yle2dvY3J5cHRmc192 ZXJzaW9ufS9nb2MKICVlbmRpZgogJWlmICIlez9zcXVhc2hmdXNlX3ZlcnNpb259IiAhPSAiIgog U291cmNlMTE6IGh0dHBzOi8vZ2l0aHViLmNvbS92YXNpL3NxdWFzaGZ1c2UvYXJjaGl2ZS8le3Nx dWFzaGZ1c2VfdmVyc2lvbn0vc3F1YXNoZnVzZS0le3NxdWFzaGZ1c2VfdmVyc2lvbn0udGFyLmd6 Ci1QYXRjaDEwOiBodHRwczovL2dpdGh1Yi5jb20vdmFzaS9zcXVhc2hmdXNlL3B1bGwvNzAucGF0 Y2gKLVBhdGNoMTE6IGh0dHBzOi8vZ2l0aHViLmNvbS92YXNpL3NxdWFzaGZ1c2UvcHVsbC83Ny5w YXRjaAotUGF0Y2gxMjogaHR0cHM6Ly9naXRodWIuY29tL3Zhc2kvc3F1YXNoZnVzZS9wdWxsLzgx LnBhdGNoCiAlZW5kaWYKIAogIyBUaGlzIENvbmZsaWN0cyBpcyBpbiBjYXNlIHNvbWVvbmUgdHJp ZXMgdG8gaW5zdGFsbCB0aGUgbWFpbiBhcHB0YWluZXIKQEAgLTg4LDkgKzg1LDEwIEBAIE9ic29s ZXRlczogc2luZ3VsYXJpdHktcnVudGltZSA8IDMuMAogUHJvdmlkZXM6IHNpZi1ydW50aW1lCiBD b25mbGljdHM6IHNpZi1ydW50aW1lCiAKK1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIu Y29tL0FkYUxvZ2ljcy9nb19mdXp6X2hlYWRlcnMpKSA9IHYwLjAuMF8yMDIzMDEwNjIzNDg0N180 MzA3MGRlOTBmYTEKIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL0FkYW1Lb3Jj ei9nb19mdXp6X2hlYWRlcnMpKSA9IHYwLjAuMF8yMDIxMDMxOTE2MTUyN19mNzYxYzIzMjk2NjEK IFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL0F6dXJlL2dvX2Fuc2l0ZXJtKSkg PSB2MC4wLjBfMjAyMTA2MTcyMjUyNDBfZDE4NWRmYzFiNWExCi1Qcm92aWRlczogYnVuZGxlZChn b2xhbmcoZ2l0aHViLmNvbS9CdXJudFN1c2hpL3RvbWwpKSA9IHYxLjMuMAorUHJvdmlkZXM6IGJ1 bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vQnVybnRTdXNoaS90b21sKSkgPSB2MS4zLjIKIFByb3Zp ZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL01pY3Jvc29mdC9nb193aW5pbykpID0gdjAu Ni4xCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9OZXRmbGl4L2dvX2V4cGVj dCkpID0gdjAuMC4wXzIwMjIwMTA0MDQzMzUzXzczZTA5NDM1MzdkMgogUHJvdmlkZXM6IGJ1bmRs ZWQoZ29sYW5nKGdpdGh1Yi5jb20vUHJvdG9uTWFpbC9nb19jcnlwdG8pKSA9IHYwLjAuMF8yMDIz MDIxNzEyNDMxNV83ZDVjNmYwNGJiYjgKQEAgLTEwMSwxMCArOTksOSBAQCBQcm92aWRlczogYnVu ZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9hbGV4ZmxpbnQvZ29fZmlsZW11dGV4KSkgPSB2MS4yLjAK IFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2FwZXgvbG9nKSkgPSB2MS45LjAK IFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2FwcHRhaW5lci9jb250YWluZXJf a2V5X2NsaWVudCkpID0gdjAuOC4wCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNv bS9hcHB0YWluZXIvY29udGFpbmVyX2xpYnJhcnlfY2xpZW50KSkgPSB2MS40LjIKLVByb3ZpZGVz OiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2FwcHRhaW5lci9zaWYvdjIpKSA9IHYyLjExLjQK K1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2FwcHRhaW5lci9zaWYvdjIpKSA9 IHYyLjExLjUKIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2FzYXNrZXZpY2gv Z292YWxpZGF0b3IpKSA9IHYwLjAuMF8yMDIzMDMwMTE0MzIwM19hOWQ1MTVhMDljYzIKIFByb3Zp ZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2Jlb3JuNy9wZXJrcykpID0gdjEuMC4xCi1Q cm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9ibGFuZy9zZW12ZXIpKSA9IHYzLjUu MStpbmNvbXBhdGlibGUKIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2JsYW5n L3NlbXZlci92NCkpID0gdjQuMC4wCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNv bS9idWdlci9nb3Rlcm0pKSA9IHYxLjAuNAogUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1 Yi5jb20vYnVnZXIvanNvbnBhcnNlcikpID0gdjEuMS4xCkBAIC0xMTIsOSArMTA5LDkgQEAgUHJv dmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vYnVnc25hZy9idWdzbmFnX2dvKSkgPSB2 MS41LjEKIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2J1Z3NuYWcvcGFuaWN3 cmFwKSkgPSB2MS4yLjAKIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2Nlbmth bHRpL2JhY2tvZmYvdjQpKSA9IHY0LjIuMQogUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1 Yi5jb20vY2VzcGFyZS94eGhhc2gvdjIpKSA9IHYyLjIuMAotUHJvdmlkZXM6IGJ1bmRsZWQoZ29s YW5nKGdpdGh1Yi5jb20vY2lsaXVtL2VicGYpKSA9IHYwLjcuMAorUHJvdmlkZXM6IGJ1bmRsZWQo Z29sYW5nKGdpdGh1Yi5jb20vY2lsaXVtL2VicGYpKSA9IHYwLjkuMQogUHJvdmlkZXM6IGJ1bmRs ZWQoZ29sYW5nKGdpdGh1Yi5jb20vY2xvdWRmbGFyZS9jaXJjbCkpID0gdjEuMy4zCi1Qcm92aWRl czogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9jb250YWluZXJkL2NvbnRhaW5lcmQpKSA9IHYx LjYuMTkKK1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2NvbnRhaW5lcmQvY29u dGFpbmVyZCkpID0gdjEuNy4yCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9j b250YWluZXJuZXR3b3JraW5nL2NuaSkpID0gdjEuMS4yCiBQcm92aWRlczogYnVuZGxlZChnb2xh bmcoZ2l0aHViLmNvbS9jb250YWluZXJuZXR3b3JraW5nL3BsdWdpbnMpKSA9IHYxLjMuMAogUHJv dmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vY29udGFpbmVycy9pbWFnZS92NSkpID0g djUuMjUuMApAQCAtMTQyLDYgKzEzOSw4IEBAIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRo dWIuY29tL2ZhdGloL2NvbG9yKSkgPSB2MS4xNS4wCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmco Z2l0aHViLmNvbS9mZWxpeGdlL2h0dHBzbm9vcCkpID0gdjEuMC4zCiBQcm92aWRlczogYnVuZGxl ZChnb2xhbmcoZ2l0aHViLmNvbS9nYXJ5YnVyZC9yZWRpZ28pKSA9IHYwLjAuMF8yMDE1MDMwMTE4 MDAwNl81MzUxMzhkN2JjZDcKIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL2dv X2xvZy9sb2cpKSA9IHYwLjIuMAorUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20v Z29fbG9nci9sb2dyKSkgPSB2MS4yLjQKK1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIu Y29tL2dvX2xvZ3Ivc3RkcikpID0gdjEuMi4yCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0 aHViLmNvbS9nb19vcGVuYXBpL2FuYWx5c2lzKSkgPSB2MC4yMS40CiBQcm92aWRlczogYnVuZGxl ZChnb2xhbmcoZ2l0aHViLmNvbS9nb19vcGVuYXBpL2Vycm9ycykpID0gdjAuMjAuMwogUHJvdmlk ZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vZ29fb3BlbmFwaS9qc29ucG9pbnRlcikpID0g djAuMTkuNQpAQCAtMTkxLDEwICsxOTAsMTAgQEAgUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdp dGh1Yi5jb20vbW9yaWt1bmkvYWVjKSkgPSB2MS4wLjAKIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFu ZyhnaXRodWIuY29tL25ldHdvcmtwbHVtYmluZy9nb19uZnQpKSA9IHYwLjMuMAogUHJvdmlkZXM6 IGJ1bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vb2tsb2cvdWxpZCkpID0gdjEuMy4xCiBQcm92aWRl czogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9vcGVuY29udGFpbmVycy9nb19kaWdlc3QpKSA9 IHYxLjAuMAotUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vb3BlbmNvbnRhaW5l cnMvaW1hZ2Vfc3BlYykpID0gdjEuMS4wX3JjMworUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdp dGh1Yi5jb20vb3BlbmNvbnRhaW5lcnMvaW1hZ2Vfc3BlYykpID0gdjEuMS4wX3JjNAogUHJvdmlk ZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vb3BlbmNvbnRhaW5lcnMvcnVuYykpID0gdjEu MS43Ci1Qcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9vcGVuY29udGFpbmVycy9y dW50aW1lX3NwZWMpKSA9IHYxLjEuMF9yYy4yCi1Qcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0 aHViLmNvbS9vcGVuY29udGFpbmVycy9ydW50aW1lX3Rvb2xzKSkgPSB2MC45LjFfMC4yMDIxMDMy NjE4MjkyMV81OWNkZGUwNjc2NGIKK1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29t L29wZW5jb250YWluZXJzL3J1bnRpbWVfc3BlYykpID0gdjEuMS4wX3JjLjMKK1Byb3ZpZGVzOiBi dW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL29wZW5jb250YWluZXJzL3J1bnRpbWVfdG9vbHMpKSA9 IHYwLjkuMV8wLjIwMjIxMTA3MDkwNTUwXzJlMDQzYzZiZDYyNgogUHJvdmlkZXM6IGJ1bmRsZWQo Z29sYW5nKGdpdGh1Yi5jb20vb3BlbmNvbnRhaW5lcnMvc2VsaW51eCkpID0gdjEuMTEuMAogUHJv dmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vb3BlbmNvbnRhaW5lcnMvdW1vY2kpKSA9 IHYwLjQuNwogUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vcGVsbGV0aWVyL2dv X3RvbWwvdjIpKSA9IHYyLjAuOApAQCAtMjE1LDggKzIxNCw4IEBAIFByb3ZpZGVzOiBidW5kbGVk KGdvbGFuZyhnaXRodWIuY29tL3NlcmdpL2dvX2RpZmYpKSA9IHYxLjIuMAogUHJvdmlkZXM6IGJ1 bmRsZWQoZ29sYW5nKGdpdGh1Yi5jb20vc2hvcHNwcmluZy9kZWNpbWFsKSkgPSB2MS4zLjEKIFBy b3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL3NpZ3N0b3JlL2Z1bGNpbykpID0gdjEu Mi4wCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9zaWdzdG9yZS9yZWtvcikp ID0gdjEuMS4wCi1Qcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9zaWdzdG9yZS9z aWdzdG9yZSkpID0gdjEuNi41Ci1Qcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ2l0aHViLmNvbS9z aXJ1cHNlbi9sb2dydXMpKSA9IHYxLjkuMgorUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdpdGh1 Yi5jb20vc2lnc3RvcmUvc2lnc3RvcmUpKSA9IHYxLjcuMQorUHJvdmlkZXM6IGJ1bmRsZWQoZ29s YW5nKGdpdGh1Yi5jb20vc2lydXBzZW4vbG9ncnVzKSkgPSB2MS45LjMKIFByb3ZpZGVzOiBidW5k bGVkKGdvbGFuZyhnaXRodWIuY29tL3NwZjEzL2NvYnJhKSkgPSB2MS43LjAKIFByb3ZpZGVzOiBi dW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL3NwZjEzL3BmbGFnKSkgPSB2MS4wLjUKIFByb3ZpZGVz OiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL3N0ZWZhbmJlcmdlci9nb19wa2NzMTF1cmkpKSA9 IHYwLjAuMF8yMDIwMTAwODE3NDYzMF83OGQzY2FlM2E5ODAKQEAgLTIzOCwxNCArMjM3LDE2IEBA IFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnaXRodWIuY29tL3l2YXNpeWFyb3YvZ29fbWV0cmlj cykpID0gdjAuMC4wXzIwMTUwMTEyMTMyCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ28uZXRj ZC5pby9iYm9sdCkpID0gdjEuMy43CiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ28ubW9uZ29k Yi5vcmcvbW9uZ29fZHJpdmVyKSkgPSB2MS4xMS4zCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmco Z28ubW96aWxsYS5vcmcvcGtjczcpKSA9IHYwLjAuMF8yMDIxMDgyNjIwMjExMF8zM2QwNTc0MGEz NTIKLVByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnb2xhbmcub3JnL3gvY3J5cHRvKSkgPSB2MC45 LjAKK1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnby5vcGVudGVsZW1ldHJ5LmlvL290ZWwpKSA9 IHYxLjE0LjAKK1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnby5vcGVudGVsZW1ldHJ5LmlvL290 ZWwvdHJhY2UpKSA9IHYxLjE0LjAKK1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnb2xhbmcub3Jn L3gvY3J5cHRvKSkgPSB2MC4xMC4wCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ29sYW5nLm9y Zy94L2V4cCkpID0gdjAuMC4wXzIwMjMwMzIxMDIzNzU5XzEwYTUwNzIxM2EyOQogUHJvdmlkZXM6 IGJ1bmRsZWQoZ29sYW5nKGdvbGFuZy5vcmcveC9tb2QpKSA9IHYwLjEwLjAKLVByb3ZpZGVzOiBi dW5kbGVkKGdvbGFuZyhnb2xhbmcub3JnL3gvbmV0KSkgPSB2MC4xMC4wCitQcm92aWRlczogYnVu ZGxlZChnb2xhbmcoZ29sYW5nLm9yZy94L25ldCkpID0gdjAuMTEuMAogUHJvdmlkZXM6IGJ1bmRs ZWQoZ29sYW5nKGdvbGFuZy5vcmcveC9zeW5jKSkgPSB2MC4xLjAKLVByb3ZpZGVzOiBidW5kbGVk KGdvbGFuZyhnb2xhbmcub3JnL3gvc3lzKSkgPSB2MC44LjAKLVByb3ZpZGVzOiBidW5kbGVkKGdv bGFuZyhnb2xhbmcub3JnL3gvdGVybSkpID0gdjAuOC4wCi1Qcm92aWRlczogYnVuZGxlZChnb2xh bmcoZ29sYW5nLm9yZy94L3RleHQpKSA9IHYwLjkuMAorUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5n KGdvbGFuZy5vcmcveC9zeXMpKSA9IHYwLjEwLjAKK1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhn b2xhbmcub3JnL3gvdGVybSkpID0gdjAuOS4wCitQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ29s YW5nLm9yZy94L3RleHQpKSA9IHYwLjExLjAKIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnb2xh bmcub3JnL3gvdG9vbHMpKSA9IHYwLjguMAogUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5nKGdvb2ds ZS5nb2xhbmcub3JnL2dlbnByb3RvKSkgPSB2MC4wLjBfMjAyMzA0MTAxNTU3NDlfZGFhNzQ1YzA3 OGUxCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcoZ29vZ2xlLmdvbGFuZy5vcmcvZ3JwYykpID0g djEuNTUuMApAQCAtMjU0LDkgKzI1NSw5IEBAIFByb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhnb3Br Zy5pbi9nb19qb3NlL2dvX2pvc2UudjIpKSA9IHYyLjYuMQogUHJvdmlkZXM6IGJ1bmRsZWQoZ29s YW5nKGdvcGtnLmluL3NxdWFyZS9nb19qb3NlLnYyKSkgPSB2Mi42LjAKIFByb3ZpZGVzOiBidW5k bGVkKGdvbGFuZyhnb3BrZy5pbi95YW1sLnYyKSkgPSB2Mi40LjAKIFByb3ZpZGVzOiBidW5kbGVk KGdvbGFuZyhnb3BrZy5pbi95YW1sLnYzKSkgPSB2My4wLjEKLVByb3ZpZGVzOiBidW5kbGVkKGdv bGFuZyhnb3Rlc3QudG9vbHMvdjMpKSA9IHYzLjQuMAorUHJvdmlkZXM6IGJ1bmRsZWQoZ29sYW5n KGdvdGVzdC50b29scy92MykpID0gdjMuNS4wCiBQcm92aWRlczogYnVuZGxlZChnb2xhbmcobXZk YW4uY2Mvc2gvdjMpKSA9IHYzLjYuMV8wLjIwMjIxMjIxMTgxMzIzX2QzZmViMTViZWQzYQotUHJv dmlkZXM6IGJ1bmRsZWQoZ29sYW5nKG9yYXMubGFuZC9vcmFzX2dvKSkgPSB2MS4yLjNfMC4yMDIz MDIyMTA2NTMwMF82Y2Q5MjlhZmY0MjEKK1Byb3ZpZGVzOiBidW5kbGVkKGdvbGFuZyhvcmFzLmxh bmQvb3Jhc19nbykpID0gdjEuMi4zCiAKICVpZiAiJXtfdGFyZ2V0X3ZlbmRvcn0iID09ICJzdXNl IgogQnVpbGRSZXF1aXJlczogYmludXRpbHMtZ29sZApAQCAtMzE4LDkgKzMxOSw2IEBAIFByb3Zp ZGVzIHRoZSBvcHRpb25hbCBzZXR1aWQtcm9vdCBwb3J0aW9uIG9mIEFwcHRhaW5lci4KICMgdGhl IGRlZmF1bHQgZGlyZWN0b3J5IGZvciBvdGhlciBzdGVwcyBpcyB3aGVyZSB0aGUgJSVwcmVwIHNl Y3Rpb24gZW5kcwogIyBzbyBkbyBtYWluIHBhY2thZ2UgbGFzdAogJXNldHVwIC1iIDExIC1uIHNx dWFzaGZ1c2UtJXtzcXVhc2hmdXNlX3ZlcnNpb259Ci0lcGF0Y2ggLVAgMTAgLXAxCi0lcGF0Y2gg LVAgMTEgLXAxCi0lcGF0Y2ggLVAgMTIgLXAxCiAlc2V0dXAgLW4gJXtuYW1lfS0le3BhY2thZ2Vf dmVyc2lvbn0KICVlbHNlCiAlYXV0b3NldHVwIC1uICV7bmFtZX0tJXtwYWNrYWdlX3ZlcnNpb259 CkBAIC00OTEsNiArNDg5LDkgQEAgZmkKICVhdHRyKDQ3NTUsIHJvb3QsIHJvb3QpICV7X2xpYmV4 ZWNkaXJ9LyV7bmFtZX0vYmluL3N0YXJ0ZXItc3VpZAogCiAlY2hhbmdlbG9nCisqIFRodSBKdWwg IDYgMjAyMyBEYXZlIER5a3N0cmEgPGR3ZEBmbmFsLmdvdj4gLSAxLjIuMH5yYy4xLTIKKy0gVXBk YXRlIHRvIHVwc3RyZWFtIDEuMi4wLXJjLjIKKwogKiBUaHUgSnVuICA4IDIwMjMgRGF2ZSBEeWtz dHJhIDxkd2RAZm5hbC5nb3Y+IC0gMS4yLjB+cmMuMS0xCiAtIFVwZGF0ZSB0byB1cHN0cmVhbSAx LjIuMC1yYy4xCiAKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA0YTM2Njkw Li44M2Q2OTRmIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsMyArMSwz IEBACi1TSEE1MTIgKHNxdWFzaGZ1c2UtMC4xLjEwNS50YXIuZ3opID0gNmJmMTg1NzVmZDQ3MzJm M2IwZTQ1MzA5MDJmMjU1Njg1OWMyZWZiYmQ3ODFhMzFiZGJmOTdmZTY2MDE0MTJkYzc1MGE4MDM1 NGE4YWIwOGEzMTMyZDRmODY4MGVhNWZmMGRkMDQ0NDBmMjkyNDM5MDZmMTAxN2FhNmM3MGJlZGUK IFNIQTUxMiAoZ29jcnlwdGZzLTIuMy4yLnRhci5neikgPSA0MzEwMWZmYTMwZTE2ZTFkNGQxMmQ3 NTg4NTZlN2JjZGQ4MGQ0MjEyMWViYTI5MmVjMjAxOWNlYjNhMGQ4MTI2MmZlN2JjM2VhMTRmNWQ4 YjM1ZWZjYTNmOGRiMzM3Mzc0NDE3NzkyYmIwZjIzM2MwMGRmNWU2MDA5ZjQ1MzY2YgotU0hBNTEy IChhcHB0YWluZXItMS4yLjAtcmMuMS50YXIuZ3opID0gOTVjMTQxNWJhODA1MThhYjc2ZmZhZmEx YzMwZTNkMTI2ZDU4YzJhOTcwNzIwNzk4MmFiODY5MWI3YjRhNzk2YTg0MjNmZjRhZTZkZDYwOTEw ZDRmNGQ1ODNlNjBkMGU2ZTBmODU4ZjVkMzc5Mjg0NDBlZjllZmNiNzhiNTRiNjEKK1NIQTUxMiAo c3F1YXNoZnVzZS0wLjIuMC50YXIuZ3opID0gYWQwZjVjNjIzZDhjM2I4YTE2YTFhMDg3NDM5Mjg3 ZDIyZGUwY2ZjN2EyNjk5MjQxMjdhOGFlNjRhNGJiNTdjMjA4NmQ0ODkxNjk4ODE5NWNmYTVjYWUz MThhZGIzNDM4MWU1YWI5YTRlYWIzZTRkNjUwZGQxZTllNWRiNjY3MzYKK1NIQTUxMiAoYXBwdGFp bmVyLTEuMi4wLXJjLjIudGFyLmd6KSA9IGRkMWRmNDg3YjRiNTMzY2Q5MmMzZGY2ODU1ODMzOTIy NDQ3ZjcxOTQzOTJjNTY4NjgyZDMwZjdjMDM2NDE3YzcyNTdhM2EwYmY3NjA3NzVlODZhZjRlZGE1 ZjY2ZTIwY2M3ODk4NTMwZDgwMTE3YTBhZDc0OTQ4ZmYzMmEzZWI1Cg==