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: tjuhasz To: git-commits@fedoraproject.org Subject: [rpms/nodejs22] rawhide: Fix CVE-2027-13149 (npm/brace-expansion) Date: Fri, 31 Jul 2026 08:03:35 GMT Message-ID: <178548501560.1.9493892779249822189.rpms-nodejs22-acecb42c35b5@fedoraproject.org> List-ID: X-Git-Repo: rpms/nodejs22 X-Git-Branch: rawhide X-Git-Rev: acecb42c35b58d4f60bc171a46bcedf55bdac1e7 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvbm9kZWpzMjIKICAgICAgICAgICAgQnJhbmNoIDogcmF3aGlkZQogICAgICAg ICAgICBDb21taXQgOiBhY2VjYjQyYzM1YjU4ZDRmNjBiYzE3MWE0NmJjZWRmNTViZGFjMWU3CiAg ICAgICAgICAgIEF1dGhvciA6IHRqdWhhc3ogPHRqdWhhc3pAcmVkaGF0LmNvbT4KICAgICAgICAg ICAgRGF0ZSAgIDogMjAyNi0wNy0zMFQxNTo0Njo0OSswMjowMAogICAgICAgICAgICBTdGF0cyAg OiArMjA0Ly0wIGluIDMgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczovL3NyYy5m ZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL25vZGVqczIyL2MvYWNlY2I0MmMzNWI1OGQ0ZjYwYmMxNzFh NDZiY2VkZjU1YmRhYzFlNz9icmFuY2g9cmF3aGlkZQoKICAgICAgICAgICAgTG9nOgogICAgICAg ICAgICBGaXggQ1ZFLTIwMjctMTMxNDkgKG5wbS9icmFjZS1leHBhbnNpb24pCgpCYWNrcG9ydCBm aXggZm9yIENWRS0yMDI2LTEzMTQ5LCBhbiB1bmJvdW5kIHJlY3Vyc2lvbgp2dWxuZXJhYmlsaXR5 IGluIHRoZSBicmFjZS1leHBhbnNpb24gbW9kdWxlIHZlbmRvcmVkIGJ5IG5wbS4KClRoZSB1cHN0 cmVhbSBUeXBlU2NyaXB0IGZpeCB3YXMgbWFudWFsbHkgYWRhcHRlZCB0byB0aGUKSmF2YVNjcmlw dCB2ZXJzaW9uIChicmFjZS1leHBhbnNpb24gMi4wLjIpIHNoaXBwZWQgaW4KTm9kZS5qcyAyMi4g S2V5IGNoYW5nZXM6IHdyYXAgZXhwYW5kKCkgYm9keSBpbiBhIGZvci1sb29wCnRvIGF2b2lkIHJl Y3Vyc2l2ZSBzdGFjayBleGhhdXN0aW9uIG9uIG5vbi1leHBhbmRpbmcge30KZ3JvdXBzLCBkZWZl ciBwb3N0LWV4cGFuc2lvbiB1bnRpbCBhIGJyYWNlIHNldCBpcyBjb25maXJtZWQKdG8gZXhwYW5k IChwcmV2ZW50aW5nIE8oMl5uKSBibG93dXApLCBhbmQgY29tcHV0ZSBwb3N0CmlubGluZSBmb3Ig dGhlICQgcHJlZml4IGNhc2UuCgpDVkU6IENWRS0yMDI2LTEzMTQ5ClVwc3RyZWFtIHBhdGNoZXM6 CiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9qdWxpYW5ncnViZXIvYnJhY2UtZXhwYW5zaW9uL2NvbW1p dC9jN2UzM2VjMTNhYzFhNjg0YzExNjcyMDg0M2NlMjRlMjA4NjExNzU0LnBhdGNoClJlc29sdmVz OiByaGJ6IzI0OTQ5NzAKCi0tLQpkaWZmIC0tZ2l0IGEvMDAwNC1DVkUtMjAyNi0yNTU0Ny1icmFj ZXMtZXhwYW5zaW9uLnBhdGNoIGIvMDAwNC1DVkUtMjAyNi0yNTU0Ny1icmFjZXMtZXhwYW5zaW9u LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNmVjNzEKLS0tIC9k ZXYvbnVsbAorKysgYi8wMDA0LUNWRS0yMDI2LTI1NTQ3LWJyYWNlcy1leHBhbnNpb24ucGF0Y2gK QEAgLTAsMCArMSwxMDIgQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHRqdWhhc3ogPHRqdWhhc3pA cmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMjUgRmViIDIwMjYgMTQ6MjE6MjYgKzAxMDAKK1N1Ympl Y3Q6IFtQQVRDSF0gQ1ZFLTIwMjYtMjU1NDc6IEZpeCBicmFjZSBleHBhbnNpb24gdnVsbmVyYWJp bGl0eQorCitBZGQgZXhwYW5zaW9uIGxpbWl0IHRvIHByZXZlbnQgRG9TIGF0dGFja3MgdGhyb3Vn aCBleGNlc3NpdmUKK2JyYWNlIGV4cGFuc2lvbiBpbiB0aGUgYnJhY2UtZXhwYW5zaW9uIG1vZHVs ZS4KKworLS0tCisgZGVwcy9ucG0vbm9kZV9tb2R1bGVzL2JyYWNlLWV4cGFuc2lvbi9pbmRleC5q cyB8IDIwICsrKysrKysrKysrKy0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kZXBzL25wbS9ub2RlX21vZHVs ZXMvYnJhY2UtZXhwYW5zaW9uL2luZGV4LmpzIGIvZGVwcy9ucG0vbm9kZV9tb2R1bGVzL2JyYWNl LWV4cGFuc2lvbi9pbmRleC5qcworLS0tIGEvZGVwcy9ucG0vbm9kZV9tb2R1bGVzL2JyYWNlLWV4 cGFuc2lvbi9pbmRleC5qcwkyMDI2LTAxLTEyIDIzOjU1OjI0LjAwMDAwMDAwMCArMDEwMAorKysr IGIvZGVwcy9ucG0vbm9kZV9tb2R1bGVzL2JyYWNlLWV4cGFuc2lvbi9pbmRleC5qcwkyMDI2LTAy LTI1IDE0OjIxOjI2LjgyOTQ4MzgzMSArMDEwMAorQEAgLTgsNiArOCw4IEBACisgdmFyIGVzY0Nv bW1hID0gJ1wwQ09NTUEnK01hdGgucmFuZG9tKCkrJ1wwJzsKKyB2YXIgZXNjUGVyaW9kID0gJ1ww UEVSSU9EJytNYXRoLnJhbmRvbSgpKydcMCc7CisgCisrY29uc3QgRVhQQU5TSU9OX01BWCA9IDEw MF8wMDA7CisrCisgZnVuY3Rpb24gbnVtZXJpYyhzdHIpIHsKKyAgIHJldHVybiBwYXJzZUludChz dHIsIDEwKSA9PSBzdHIKKyAgICAgPyBwYXJzZUludChzdHIsIDEwKQorQEAgLTYxLDkgKzYzLDEx IEBACisgICByZXR1cm4gcGFydHM7CisgfQorIAorLWZ1bmN0aW9uIGV4cGFuZFRvcChzdHIpIHsK KytmdW5jdGlvbiBleHBhbmRUb3Aoc3RyLCBvcHRpb25zID0ge30pIHsKKyAgIGlmICghc3RyKQor ICAgICByZXR1cm4gW107CisrICAKKysgIGNvbnN0IHsgbWF4ID0gRVhQQU5TSU9OX01BWCB9ID0g b3B0aW9uczsKKyAKKyAgIC8vIEkgZG9uJ3Qga25vdyB3aHkgQmFzaCA0LjMgZG9lcyB0aGlzLCBi dXQgaXQgZG9lcy4KKyAgIC8vIEFueXRoaW5nIHN0YXJ0aW5nIHdpdGgge30gd2lsbCBoYXZlIHRo ZSBmaXJzdCB0d28gYnl0ZXMgcHJlc2VydmVkCitAQCAtNzUsNyArNzksNyBAQAorICAgICBzdHIg PSAnXFx7XFx9JyArIHN0ci5zdWJzdHIoMik7CisgICB9CisgCistICByZXR1cm4gZXhwYW5kKGVz Y2FwZUJyYWNlcyhzdHIpLCB0cnVlKS5tYXAodW5lc2NhcGVCcmFjZXMpOworKyAgcmV0dXJuIGV4 cGFuZChlc2NhcGVCcmFjZXMoc3RyKSwgbWF4LCB0cnVlKS5tYXAodW5lc2NhcGVCcmFjZXMpOwor IH0KKyAKKyBmdW5jdGlvbiBlbWJyYWNlKHN0cikgeworQEAgLTkyLDcgKzk2LDcgQEAKKyAgIHJl dHVybiBpID49IHk7CisgfQorIAorLWZ1bmN0aW9uIGV4cGFuZChzdHIsIGlzVG9wKSB7CisrZnVu Y3Rpb24gZXhwYW5kKHN0ciwgbWF4LCBpc1RvcCkgeworICAgdmFyIGV4cGFuc2lvbnMgPSBbXTsK KyAKKyAgIHZhciBtID0gYmFsYW5jZWQoJ3snLCAnfScsIHN0cik7CitAQCAtMTAxLDExICsxMDUs MTEgQEAKKyAgIC8vIG5vIG5lZWQgdG8gZXhwYW5kIHByZSwgc2luY2UgaXQgaXMgZ3VhcmFudGVl ZCB0byBiZSBmcmVlIG9mIGJyYWNlLXNldHMKKyAgIHZhciBwcmUgPSBtLnByZTsKKyAgIHZhciBw b3N0ID0gbS5wb3N0Lmxlbmd0aAorLSAgICA/IGV4cGFuZChtLnBvc3QsIGZhbHNlKQorKyAgICA/ IGV4cGFuZChtLnBvc3QsIG1heCwgZmFsc2UpCisgICAgIDogWycnXTsKKyAKKyAgIGlmICgvXCQk Ly50ZXN0KG0ucHJlKSkgeworLSAgICBmb3IgKHZhciBrID0gMDsgayA8IHBvc3QubGVuZ3RoOyBr KyspIHsKKysgICAgZm9yICh2YXIgayA9IDA7IGsgPCBwb3N0Lmxlbmd0aCAmJiBrIDwgbWF4OyBr KyspIHsKKyAgICAgICB2YXIgZXhwYW5zaW9uID0gcHJlKyAneycgKyBtLmJvZHkgKyAnfScgKyBw b3N0W2tdOworICAgICAgIGV4cGFuc2lvbnMucHVzaChleHBhbnNpb24pOworICAgICB9CitAQCAt MTE4LDcgKzEyMiw3IEBACisgICAgICAgLy8ge2F9LGJ9CisgICAgICAgaWYgKG0ucG9zdC5tYXRj aCgvLCg/ISwpLipcfS8pKSB7CisgICAgICAgICBzdHIgPSBtLnByZSArICd7JyArIG0uYm9keSAr IGVzY0Nsb3NlICsgbS5wb3N0OworLSAgICAgICAgcmV0dXJuIGV4cGFuZChzdHIpOworKyAgICAg ICAgcmV0dXJuIGV4cGFuZChzdHIsIG1heCwgdHJ1ZSk7CisgICAgICAgfQorICAgICAgIHJldHVy biBbc3RyXTsKKyAgICAgfQorQEAgLTEzMCw3ICsxMzQsNyBAQAorICAgICAgIG4gPSBwYXJzZUNv bW1hUGFydHMobS5ib2R5KTsKKyAgICAgICBpZiAobi5sZW5ndGggPT09IDEpIHsKKyAgICAgICAg IC8vIHh7e2EsYn19eSA9PT4geHthfXkgeHtifXkKKy0gICAgICAgIG4gPSBleHBhbmQoblswXSwg ZmFsc2UpLm1hcChlbWJyYWNlKTsKKysgICAgICAgIG4gPSBleHBhbmQoblswXSwgbWF4LCBmYWxz ZSkubWFwKGVtYnJhY2UpOworICAgICAgICAgaWYgKG4ubGVuZ3RoID09PSAxKSB7CisgICAgICAg ICAgIHJldHVybiBwb3N0Lm1hcChmdW5jdGlvbihwKSB7CisgICAgICAgICAgICAgcmV0dXJuIG0u cHJlICsgblswXSArIHA7CitAQCAtMTg1LDEyICsxODksMTIgQEAKKyAgICAgICBOID0gW107Cisg CisgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBuLmxlbmd0aDsgaisrKSB7CistICAgICAgICBO LnB1c2guYXBwbHkoTiwgZXhwYW5kKG5bal0sIGZhbHNlKSk7CisrICAgICAgICBOLnB1c2guYXBw bHkoTiwgZXhwYW5kKG5bal0sIG1heCwgZmFsc2UpKTsKKyAgICAgICB9CisgICAgIH0KKyAKKyAg ICAgZm9yICh2YXIgaiA9IDA7IGogPCBOLmxlbmd0aDsgaisrKSB7CistICAgICAgZm9yICh2YXIg ayA9IDA7IGsgPCBwb3N0Lmxlbmd0aDsgaysrKSB7CisrICAgICAgZm9yICh2YXIgayA9IDA7IGsg PCBwb3N0Lmxlbmd0aCAmJiBleHBhbnNpb25zLmxlbmd0aCA8IG1heDsgaysrKSB7CisgICAgICAg ICB2YXIgZXhwYW5zaW9uID0gcHJlICsgTltqXSArIHBvc3Rba107CisgICAgICAgICBpZiAoIWlz VG9wIHx8IGlzU2VxdWVuY2UgfHwgZXhwYW5zaW9uKQorICAgICAgICAgICBleHBhbnNpb25zLnB1 c2goZXhwYW5zaW9uKTsKCmRpZmYgLS1naXQgYS8wMDA1LUNWRS0yMDI2LTEzMTQ5LWJyYWNlLWV4 cGFuc2lvbi11bmJvdW5kLXJlY3Vyc2lvbi5wYXRjaCBiLzAwMDUtQ1ZFLTIwMjYtMTMxNDktYnJh Y2UtZXhwYW5zaW9uLXVuYm91bmQtcmVjdXJzaW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjgwNjI2Y2UKLS0tIC9kZXYvbnVsbAorKysgYi8wMDA1LUNWRS0yMDI2 LTEzMTQ5LWJyYWNlLWV4cGFuc2lvbi11bmJvdW5kLXJlY3Vyc2lvbi5wYXRjaApAQCAtMCwwICsx LDEwMCBAQAorRnJvbSAyMTNkYzE3MWRlMzI5YTA5ZjM0YzdhMzIyMmNhZDcyM2VlNjVkNjkzIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUkhFTCBQYWNrYWdpbmcgQWdlbnQgPHJlZGhh dC15bWlyLWFnZW50QHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDE0IEp1bCAyMDI2IDA4OjI3OjA1 ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIENWRS0yMDI2LTEzMTQ5OiBGaXggdW5ib3VuZCByZWN1 cnNpb24gaW4gYnJhY2UtZXhwYW5zaW9uCisKK0EgcnVuIG9mIG5vbi1leHBhbmRpbmcge30gZ3Jv dXBzIGV4cGFuZGVkIHBvc3Qgb25jZSBwZXIgZ3JvdXAgYmVmb3JlIHRoZQorZWFybHkgcmV0dXJu cyB0aGF0IG5ldmVyIHVzZSBpdCwgZG91YmxpbmcgdGhlIHdvcmsgb24gZXZlcnkgZ3JvdXAuIGV4 cGFuZCgpCityYW4gaW4gTygyXm4pIGFuZCBibG9ja2VkIGZvciBtaW51dGVzIG9uIGEgfjkwIGJ5 dGUgaW5wdXQuCisKK0RlZmVyIGV4cGFuZGluZyBwb3N0IHVudGlsIGEgYnJhY2Ugc2V0IGlzIGtu b3duIHRvIGV4cGFuZCwgYW5kIHR1cm4gdGhlCit7YX0sYn0gcmVzdGFydCBpbnRvIGEgbG9vcCBz byBhIGxvbmcgcnVuIG9mIHt9IGdyb3VwcyBjYW4ndCBleGhhdXN0IHRoZQorY2FsbCBzdGFjay4K KworQWRhcHRlZCBmcm9tIHVwc3RyZWFtIFR5cGVTY3JpcHQgZml4IHRvIHRoZSBKYXZhU2NyaXB0 IHZlcnNpb24gKDIuMC4yKQordmVuZG9yZWQgaW4gTm9kZS5qcy4KKworVXBzdHJlYW06IGh0dHBz Oi8vZ2l0aHViLmNvbS9qdWxpYW5ncnViZXIvYnJhY2UtZXhwYW5zaW9uL2NvbW1pdC9jN2UzM2Vj CistLS0KKyAuLi4vbnBtL25vZGVfbW9kdWxlcy9icmFjZS1leHBhbnNpb24vaW5kZXguanMgfCA0 OSArKysrKysrKysrKystLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyks IDE3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZGVwcy9ucG0vbm9kZV9tb2R1bGVzL2Jy YWNlLWV4cGFuc2lvbi9pbmRleC5qcyBiL2RlcHMvbnBtL25vZGVfbW9kdWxlcy9icmFjZS1leHBh bnNpb24vaW5kZXguanMKK2luZGV4IGQwODRiYWM0Li41ZDVmNjFmZiAxMDA2NDQKKy0tLSBhL2Rl cHMvbnBtL25vZGVfbW9kdWxlcy9icmFjZS1leHBhbnNpb24vaW5kZXguanMKKysrKyBiL2RlcHMv bnBtL25vZGVfbW9kdWxlcy9icmFjZS1leHBhbnNpb24vaW5kZXguanMKK0BAIC05OSwyMSArOTks MjcgQEAgZnVuY3Rpb24gZ3RlKGksIHkpIHsKKyBmdW5jdGlvbiBleHBhbmQoc3RyLCBtYXgsIGlz VG9wKSB7CisgICB2YXIgZXhwYW5zaW9ucyA9IFtdOworIAorLSAgdmFyIG0gPSBiYWxhbmNlZCgn eycsICd9Jywgc3RyKTsKKy0gIGlmICghbSkgcmV0dXJuIFtzdHJdOworLQorLSAgLy8gbm8gbmVl ZCB0byBleHBhbmQgcHJlLCBzaW5jZSBpdCBpcyBndWFyYW50ZWVkIHRvIGJlIGZyZWUgb2YgYnJh Y2Utc2V0cworLSAgdmFyIHByZSA9IG0ucHJlOworLSAgdmFyIHBvc3QgPSBtLnBvc3QubGVuZ3Ro CistICAgID8gZXhwYW5kKG0ucG9zdCwgbWF4LCBmYWxzZSkKKy0gICAgOiBbJyddOworLQorLSAg aWYgKC9cJCQvLnRlc3QobS5wcmUpKSB7CistICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcG9zdC5s ZW5ndGggJiYgayA8IG1heDsgaysrKSB7CistICAgICAgdmFyIGV4cGFuc2lvbiA9IHByZSsgJ3sn ICsgbS5ib2R5ICsgJ30nICsgcG9zdFtrXTsKKy0gICAgICBleHBhbnNpb25zLnB1c2goZXhwYW5z aW9uKTsKKysgIC8vIFRoZSB7YX0sYn0gcmV3cml0ZSBiZWxvdyByZXN0YXJ0cyBleHBhbnNpb24g b24gYSByZXdyaXR0ZW4gc3RyaW5nIHdpdGgKKysgIC8vIHRoZSBzYW1lIG1heCBhbmQgaXNUb3Ag PSB0cnVlLiBMb29wIGluc3RlYWQgb2YgcmVjdXJzaW5nIHNvIGEgbG9uZyBydW4KKysgIC8vIG9m IG5vbi1leHBhbmRpbmcge30gZ3JvdXBzIGNhbid0IGV4aGF1c3QgdGhlIGNhbGwgc3RhY2suCisr ICBmb3IgKDs7KSB7CisrICAgIHZhciBtID0gYmFsYW5jZWQoJ3snLCAnfScsIHN0cik7CisrICAg IGlmICghbSkgcmV0dXJuIFtzdHJdOworKworKyAgICAvLyBubyBuZWVkIHRvIGV4cGFuZCBwcmUs IHNpbmNlIGl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgZnJlZSBvZiBicmFjZS1zZXRzCisrICAgIHZh ciBwcmUgPSBtLnByZTsKKysKKysgICAgaWYgKC9cJCQvLnRlc3QobS5wcmUpKSB7CisrICAgICAg dmFyIHBvc3QgPSBtLnBvc3QubGVuZ3RoCisrICAgICAgICA/IGV4cGFuZChtLnBvc3QsIG1heCwg ZmFsc2UpCisrICAgICAgICA6IFsnJ107CisrICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBwb3N0 Lmxlbmd0aCAmJiBrIDwgbWF4OyBrKyspIHsKKysgICAgICAgIHZhciBleHBhbnNpb24gPSBwcmUr ICd7JyArIG0uYm9keSArICd9JyArIHBvc3Rba107CisrICAgICAgICBleHBhbnNpb25zLnB1c2go ZXhwYW5zaW9uKTsKKysgICAgICB9CisrICAgICAgcmV0dXJuIGV4cGFuc2lvbnM7CisgICAgIH0K Ky0gIH0gZWxzZSB7CisrCisgICAgIHZhciBpc051bWVyaWNTZXF1ZW5jZSA9IC9eLT9cZCtcLlwu LT9cZCsoPzpcLlwuLT9cZCspPyQvLnRlc3QobS5ib2R5KTsKKyAgICAgdmFyIGlzQWxwaGFTZXF1 ZW5jZSA9IC9eW2EtekEtWl1cLlwuW2EtekEtWl0oPzpcLlwuLT9cZCspPyQvLnRlc3QobS5ib2R5 KTsKKyAgICAgdmFyIGlzU2VxdWVuY2UgPSBpc051bWVyaWNTZXF1ZW5jZSB8fCBpc0FscGhhU2Vx dWVuY2U7CitAQCAtMTIyLDExICsxMjgsMjAgQEAgZnVuY3Rpb24gZXhwYW5kKHN0ciwgbWF4LCBp c1RvcCkgeworICAgICAgIC8vIHthfSxifQorICAgICAgIGlmIChtLnBvc3QubWF0Y2goLywoPyEs KS4qXH0vKSkgeworICAgICAgICAgc3RyID0gbS5wcmUgKyAneycgKyBtLmJvZHkgKyBlc2NDbG9z ZSArIG0ucG9zdDsKKy0gICAgICAgIHJldHVybiBleHBhbmQoc3RyLCBtYXgsIHRydWUpOworKyAg ICAgICAgaXNUb3AgPSB0cnVlOworKyAgICAgICAgY29udGludWU7CisgICAgICAgfQorICAgICAg IHJldHVybiBbc3RyXTsKKyAgICAgfQorIAorKyAgICAvLyBPbmx5IGV4cGFuZCBwb3N0IG9uY2Ug d2Uga25vdyB0aGlzIGJyYWNlIHNldCBhY3R1YWxseSBleHBhbmRzLiBDb21wdXRpbmcKKysgICAg Ly8gaXQgYmVmb3JlIHRoZSBlYXJseSByZXR1cm5zIGFib3ZlIGV4cGFuZGVkIHBvc3QgYSBzZWNv bmQgdGltZSBvbiBldmVyeQorKyAgICAvLyBub24tZXhwYW5kaW5nIHt9LCB3aGljaCBpcyB3aGF0 IG1hZGUgaW5wdXRzIGxpa2UgYXt9LHt9LHt9Li4uIGJsb3cgdXAKKysgICAgLy8gZXhwb25lbnRp YWxseS4KKysgICAgdmFyIHBvc3QgPSBtLnBvc3QubGVuZ3RoCisrICAgICAgPyBleHBhbmQobS5w b3N0LCBtYXgsIGZhbHNlKQorKyAgICAgIDogWycnXTsKKysKKyAgICAgdmFyIG47CisgICAgIGlm IChpc1NlcXVlbmNlKSB7CisgICAgICAgbiA9IG0uYm9keS5zcGxpdCgvXC5cLi8pOworQEAgLTIw MCw4ICsyMTUsOCBAQCBmdW5jdGlvbiBleHBhbmQoc3RyLCBtYXgsIGlzVG9wKSB7CisgICAgICAg ICAgIGV4cGFuc2lvbnMucHVzaChleHBhbnNpb24pOworICAgICAgIH0KKyAgICAgfQorLSAgfQor IAorLSAgcmV0dXJuIGV4cGFuc2lvbnM7CisrICAgIHJldHVybiBleHBhbnNpb25zOworKyAgfQor IH0KKyAKCmRpZmYgLS1naXQgYS9ub2RlanMyMi5zcGVjIGIvbm9kZWpzMjIuc3BlYwppbmRleCAz YzhhMjIxLi4wY2ZhNWVlIDEwMDY0NAotLS0gYS9ub2RlanMyMi5zcGVjCisrKyBiL25vZGVqczIy LnNwZWMKQEAgLTE2OSw2ICsxNjksOCBAQCBTb3VyY2UxMDE6ICAgICAgbm9kZWpzLnNycG0ubWFj cm9zCiAwMDAxLWZpcHMtZGlzYWJsZS1vcHRpb25zLnBhdGNoCiAwMDAyLUNWRS0yMDI2LTQyMzM4 LWlwLWFkZHJlc3Mtc2VjdXJpdHktZml4LnBhdGNoCiAwMDAzLUNWRS0yMDI2LTU5ODczLUNWRS0y MDI2LTU5ODc0LXVwZ3JhZGUtYnVuZGxlZC10YXItdG8tNy41LjE5LnBhdGNoCiswMDA0LUNWRS0y MDI2LTI1NTQ3LWJyYWNlcy1leHBhbnNpb24ucGF0Y2gKKzAwMDUtQ1ZFLTIwMjYtMTMxNDktYnJh Y2UtZXhwYW5zaW9uLXVuYm91bmQtcmVjdXJzaW9uLnBhdGNoCiAKICVkZXNjcmlwdGlvbgogTm9k ZS5qcyBpcyBhIHBsYXRmb3JtIGJ1aWx0IG9uIENocm9tZSdzIEphdmFTY3JpcHQgcnVudGltZQo=