From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 14438 invoked from network); 29 Jan 2021 03:25:14 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 29 Jan 2021 03:25:14 -0000 Received: (qmail 1607 invoked by uid 550); 29 Jan 2021 03:25:12 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 1571 invoked from network); 29 Jan 2021 03:25:11 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=2agwgmhKeMnhEPvqqggb46vX6P/Onm2sPJfjrF67i8c=; b=PUiXXAYzy2152bfAyPtiXbPxIVB0tg7kvXHP0nR0o9VPqkj238kRTl5TIhMAViwcyb qqILKGoNyGZGjx6piQ5szDQfgl7sTL2rBFWk8gLmwsOj9o6w8GxkHsuai+6aoO71sJsw LVfEvkPldlcNX/1cfg6oGCpAm1wK+RqRDsRz2csyyLtDmH95qlzdQ8psLtRoTTdW/zYD PedxYilLk+9eQpxLQnlACWnFGUqk1BiJM4d7VVJXCugNz7MZHxeHbR4B23dy656lJdfP SEJwh/4MIZa90cV5VQKDlcuzZ8mq5YD7PVbNmE25xAuEvz8Sx6SxMm4cMcJhy9v1U/0m es1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=2agwgmhKeMnhEPvqqggb46vX6P/Onm2sPJfjrF67i8c=; b=cyNdzOyZpD5tC9lniBpCGyD8yyA5/ILOpi/rA50fhEWKo0fIZW+1tdrC1XiJONwcBh SxRD11UmWHyTOM28eyAW4MT6x87BQdDSklKETtnbgaPJ/IjgluQHCPz17zh0vDzJgjOa 9BL85spSI+aeVJdKKzFCywsfrBHMlXKEh/hF/+pYedEy7+I9M54yY1ornFcwvUfQDOs5 TnWS8DiaUvRqAwJtrfuFQW24gbjOASGyTV2pOIuadNV4SQBV0fnRKZbKOSLIoCuKTzWe gOaf0UaVEbAeIfMhNV6X16mbbxxbVRZwHUyc7vqFQqZtKJ5X+0g+8k7szTKQEb2x8Qt7 ExEA== X-Gm-Message-State: AOAM53225m0+NoT848keusPWX4fojGpGbsbYa48v6pIjFatxev5yjLzw NqziZoa+8yR06z/8z+l2ui/wxB03cBUZeLE/4uH7QuP5PQoyFg== X-Google-Smtp-Source: ABdhPJyraeJCKOEZEuJd4zqk73WSdB5DNa8qXDbJsWgiWtV5C3t4K4WOUZ+QgyIRrHk4uigQXgFsW9uGWxQH7UbIBNw= X-Received: by 2002:aa7:db49:: with SMTP id n9mr3020480edt.73.1611890699958; Thu, 28 Jan 2021 19:24:59 -0800 (PST) MIME-Version: 1.0 From: Patrick Oppenlander Date: Fri, 29 Jan 2021 14:24:48 +1100 Message-ID: To: musl@lists.openwall.com Content-Type: multipart/mixed; boundary="00000000000096a31b05ba018c2a" Subject: [musl] [PATCH v3] llvm/clang support for musl cross make --00000000000096a31b05ba018c2a Content-Type: text/plain; charset="UTF-8" Hi, attached is a v3 of the musl-cross-make clang build patch. Changes from v2: * Update default TARGETS list * Add some sane default -mfpu options * Support target specific config by setting TARGET_CONFIG_ variable * Drop spurious musl patch - this was caused by missing -mfpu options * Switch to ninja I don't like depending on ninja. Unfortunately there appear to be numerous parallel make dependency bugs somewhere between cmake and make which causes parallel "Unix Makefiles" builds to spuriously fail with the versions of cmake/make on my development machine. cmake+ninja has never failed for me. I haven't submitted the three patches included here yet as I'm waiting for feedback on the overall direction of this work. I also have some extra patches which make lld & llvm-objcopy usable in my embedded projects but have not included them here as they're under upstream review. Changes from v1: * Install clang-resource-headers (fixes missing stdatomic.h, etc.) * Fix installed symlinks (fixes missing cc, c++, cpp) * Statically link libunwind and libc++abi into libc++.a and libc++.so * Updated patch for armv7m clang VFP asm crash * Support setting COMPILER from config.mak * Support target specific musl config by setting MUSL_CONFIG_ variable Best regards, Patrick --00000000000096a31b05ba018c2a Content-Type: application/octet-stream; name="0001-clang-support.patch" Content-Disposition: attachment; filename="0001-clang-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kkhq1q2k0 RnJvbSBkYjBjNGRiZTVmZjI0MTg0NTY1NWY4YjM0NGE3MmMzMTM0Zjk5Y2JmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXRyaWNrIE9wcGVubGFuZGVyIDxwYXRyaWNrLm9wcGVubGFu ZGVyQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyOSBKYW4gMjAyMSAxMjo0Nzo1OSArMTEwMApTdWJq ZWN0OiBbUEFUQ0hdIGNsYW5nIHN1cHBvcnQKCi0tLQogTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDU4ICsrKystLQogaGFzaGVzL2xsdm0tcHJvamVjdC0x MS4wLjAudGFyLnh6LnNoYTEgICAgICAgIHwgICAxICsKIGxpdGVjcm9zcy9NYWtlZmlsZS5jbGFu ZyAgICAgICAgICAgICAgICAgICAgICB8IDE4OCArKysrKysrKysrKysrKysrKysKIGxpdGVjcm9z cy97TWFrZWZpbGUgPT4gTWFrZWZpbGUuZ2NjfSAgICAgICAgICB8ICAgMAogLi4uYWRkLWJ1aWx0 aW5zLXRvLWR5bmFtaWMtbGlicmFyeS1saW5rLnBhdGNoIHwgIDMwICsrKwogLi4uYWJsZS1jcnQt c3VwcG9ydC1vbi1tb3JlLWFybS10YXJnZXRzLnBhdGNoIHwgIDI1ICsrKwogLi4ucGFuZGluZy10 YXJnZXQtdHJpcGxlLWluLXN5c3Jvb3QtcGF0LnBhdGNoIHwgIDM5ICsrKysKIDcgZmlsZXMgY2hh bmdlZCwgMzIyIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGhhc2hlcy9sbHZtLXByb2plY3QtMTEuMC4wLnRhci54ei5zaGExCiBjcmVhdGUgbW9kZSAx MDA2NDQgbGl0ZWNyb3NzL01ha2VmaWxlLmNsYW5nCiByZW5hbWUgbGl0ZWNyb3NzL3tNYWtlZmls ZSA9PiBNYWtlZmlsZS5nY2N9ICgxMDAlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvbGx2 bS1wcm9qZWN0LTExLjAuMC8wMDAxLWxpYmN4eGFiaS1hZGQtYnVpbHRpbnMtdG8tZHluYW1pYy1s aWJyYXJ5LWxpbmsucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL2xsdm0tcHJvamVj dC0xMS4wLjAvMDAwMi1jb21waWxlci1ydC1lbmFibGUtY3J0LXN1cHBvcnQtb24tbW9yZS1hcm0t dGFyZ2V0cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvbGx2bS1wcm9qZWN0LTEx LjAuMC8wMDAzLWNsYW5nLXN1cHBvcnQtZXhwYW5kaW5nLXRhcmdldC10cmlwbGUtaW4tc3lzcm9v dC1wYXQucGF0Y2gKCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IGE0MTJm NjAuLjBlMjk1ODggMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xLDE0 ICsxLDcgQEAKIAogU09VUkNFUyA9IHNvdXJjZXMKIAotQ09ORklHX1NVQl9SRVYgPSAzZDVkYjll YmU4NjAKLUJJTlVUSUxTX1ZFUiA9IDIuMzMuMQotR0NDX1ZFUiA9IDkuMi4wCi1NVVNMX1ZFUiA9 IDEuMi4xCi1HTVBfVkVSID0gNi4xLjIKLU1QQ19WRVIgPSAxLjEuMAotTVBGUl9WRVIgPSA0LjAu MgotTElOVVhfVkVSID0gaGVhZGVycy00LjE5Ljg4CitDT01QSUxFUiA9IGdjYwogCiBHTlVfU0lU RSA9IGh0dHBzOi8vZnRwLmdudS5vcmcvcHViL2dudQogR0NDX1NJVEUgPSAkKEdOVV9TSVRFKS9n Y2MKQEAgLTE3LDYgKzEwLDcgQEAgR01QX1NJVEUgPSAkKEdOVV9TSVRFKS9nbXAKIE1QQ19TSVRF ID0gJChHTlVfU0lURSkvbXBjCiBNUEZSX1NJVEUgPSAkKEdOVV9TSVRFKS9tcGZyCiBJU0xfU0lU RSA9IGh0dHA6Ly9pc2wuZ2ZvcmdlLmlucmlhLmZyLworTExWTV9TSVRFID0gaHR0cHM6Ly9naXRo dWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkCiAKIE1VU0xfU0lURSA9 IGh0dHBzOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMKIE1VU0xfUkVQTyA9IGdpdDovL2dp dC5tdXNsLWxpYmMub3JnL211c2wKQEAgLTMwLDI0ICsyNCw0NyBAQCBTSEExX0NNRCA9IHNoYTFz dW0gLWMKIENPV1BBVENIID0gJChDVVJESVIpL2Nvd3BhdGNoLnNoCiAKIEhPU1QgPSAkKGlmICQo TkFUSVZFKSwkKFRBUkdFVCkpCi1CVUlMRF9ESVIgPSBidWlsZC8kKGlmICQoSE9TVCksJChIT1NU KSxsb2NhbCkvJChUQVJHRVQpCitCVUlMRF9ESVIgPSBidWlsZC0kKENPTVBJTEVSKS8kKGlmICQo SE9TVCksJChIT1NUKSxsb2NhbCkvJChUQVJHRVQpCiBPVVRQVVQgPSAkKENVUkRJUikvb3V0cHV0 JChpZiAkKEhPU1QpLC0kKEhPU1QpKQogCi1SRUxfVE9QID0gLi4vLi4vLi4KK1JFTF9UT1AgPSAu Li8uLiQoaWYgJChUQVJHRVQpLC8uLikKIAogLWluY2x1ZGUgY29uZmlnLm1hawogCi1TUkNfRElS UyA9IGdjYy0kKEdDQ19WRVIpIGJpbnV0aWxzLSQoQklOVVRJTFNfVkVSKSBtdXNsLSQoTVVTTF9W RVIpIFwKK01VU0xfVkVSID89IDEuMi4xCitMSU5VWF9WRVIgPz0gaGVhZGVycy00LjE5Ljg4CisK K2lmZXEgKCQoQ09NUElMRVIpLGdjYykKKworQ09ORklHX1NVQl9SRVYgPz0gM2Q1ZGI5ZWJlODYw CitCSU5VVElMU19WRVIgPz0gMi4zMy4xCitHQ0NfVkVSID89IDkuMi4wCitHTVBfVkVSID89IDYu MS4yCitNUENfVkVSID89IDEuMS4wCitNUEZSX1ZFUiA/PSA0LjAuMgorCitlbmRpZgorCitpZmVx ICgkKENPTVBJTEVSKSxjbGFuZykKKworTExWTV9WRVIgPz0gMTEuMC4wCisKK2VuZGlmCisKK1NS Q19ESVJTID0gbXVzbC0kKE1VU0xfVkVSKSBcCisJJChpZiAkKEdDQ19WRVIpLGdjYy0kKEdDQ19W RVIpKSBcCisJJChpZiAkKEJJTlVUSUxTX1ZFUiksYmludXRpbHMtJChCSU5VVElMU19WRVIpKSBc CiAJJChpZiAkKEdNUF9WRVIpLGdtcC0kKEdNUF9WRVIpKSBcCiAJJChpZiAkKE1QQ19WRVIpLG1w Yy0kKE1QQ19WRVIpKSBcCiAJJChpZiAkKE1QRlJfVkVSKSxtcGZyLSQoTVBGUl9WRVIpKSBcCiAJ JChpZiAkKElTTF9WRVIpLGlzbC0kKElTTF9WRVIpKSBcCi0JJChpZiAkKExJTlVYX1ZFUiksbGlu dXgtJChMSU5VWF9WRVIpKQorCSQoaWYgJChMSU5VWF9WRVIpLGxpbnV4LSQoTElOVVhfVkVSKSkg XAorCSQoaWYgJChMTFZNX1ZFUiksbGx2bS1wcm9qZWN0LSQoTExWTV9WRVIpKQogCiBhbGw6CiAK IGNsZWFuOgotCXJtIC1yZiBnY2MtKiBiaW51dGlscy0qIG11c2wtKiBnbXAtKiBtcGMtKiBtcGZy LSogaXNsLSogYnVpbGQgYnVpbGQtKiBsaW51eC0qCisJcm0gLXJmIGdjYy0qIGJpbnV0aWxzLSog bXVzbC0qIGdtcC0qIG1wYy0qIG1wZnItKiBpc2wtKiBidWlsZCBidWlsZC0qIGxpbnV4LSogbGx2 bS1wcm9qZWN0LSoKIAogZGlzdGNsZWFuOiBjbGVhbgogCXJtIC1yZiBzb3VyY2VzCkBAIC03MCw2 ICs4Nyw3IEBAICQocGF0c3Vic3QgaGFzaGVzLyUuc2hhMSwkKFNPVVJDRVMpLyUsJCh3aWxkY2Fy ZCBoYXNoZXMvbGludXgtNCopKTogU0lURSA9ICQoTElOCiAkKHBhdHN1YnN0IGhhc2hlcy8lLnNo YTEsJChTT1VSQ0VTKS8lLCQod2lsZGNhcmQgaGFzaGVzL2xpbnV4LTMqKSk6IFNJVEUgPSAkKExJ TlVYX1NJVEUpL3YzLngKICQocGF0c3Vic3QgaGFzaGVzLyUuc2hhMSwkKFNPVVJDRVMpLyUsJCh3 aWxkY2FyZCBoYXNoZXMvbGludXgtMi42KikpOiBTSVRFID0gJChMSU5VWF9TSVRFKS92Mi42CiAk KHBhdHN1YnN0IGhhc2hlcy8lLnNoYTEsJChTT1VSQ0VTKS8lLCQod2lsZGNhcmQgaGFzaGVzL2xp bnV4LWhlYWRlcnMtKikpOiBTSVRFID0gJChMSU5VWF9IRUFERVJTX1NJVEUpCiskKHBhdHN1YnN0 IGhhc2hlcy8lLnNoYTEsJChTT1VSQ0VTKS8lLCQod2lsZGNhcmQgaGFzaGVzL2xsdm0tcHJvamVj dC0qKSk6IFNJVEUgPSAkKExMVk1fU0lURSkvbGx2bW9yZy0kKHBhdHN1YnN0IGxsdm0tcHJvamVj dC0lLCUsJChiYXNlbmFtZSAkKGJhc2VuYW1lICQobm90ZGlyICRAKSkpKQogCiAkKFNPVVJDRVMp OgogCW1rZGlyIC1wICRACkBAIC0xNTAsMTAgKzE2OCwxMCBAQCBleHRyYWN0X2FsbDogfCAkKFNS Q19ESVJTKQogCiAjIFJ1bGVzIGZvciBidWlsZGluZy4KIAotaWZlcSAoJChUQVJHRVQpLCkKK2lm ZXEgKCQoQ09NUElMRVIpJChUQVJHRVQpLGdjYykKIAogYWxsOgotCUBlY2hvIFRBUkdFVCBtdXN0 IGJlIHNldCB2aWEgY29uZmlnLm1hayBvciBjb21tYW5kIGxpbmUuCisJQGVjaG8gVEFSR0VUIG11 c3QgYmUgc2V0IGZvciBnY2MgYnVpbGQgdmlhIGNvbmZpZy5tYWsgb3IgY29tbWFuZCBsaW5lLgog CUBleGl0IDEKIAogZWxzZQpAQCAtMTYyLDIwICsxODAsMjIgQEAgJChCVUlMRF9ESVIpOgogCW1r ZGlyIC1wICRACiAKICQoQlVJTERfRElSKS9NYWtlZmlsZTogfCAkKEJVSUxEX0RJUikKLQlsbiAt c2YgJChSRUxfVE9QKS9saXRlY3Jvc3MvTWFrZWZpbGUgJEAKKwlsbiAtc2YgJChSRUxfVE9QKS9s aXRlY3Jvc3MvTWFrZWZpbGUuJChDT01QSUxFUikgJEAKIAogJChCVUlMRF9ESVIpL2NvbmZpZy5t YWs6IHwgJChCVUlMRF9ESVIpCiAJcHJpbnRmID4kQCAnJXNcbicgXAotCSJUQVJHRVQgPSAkKFRB UkdFVCkiIFwKKwkkKGlmICQoVEFSR0VUKSwiVEFSR0VUID0gJChUQVJHRVQpIikgXAogCSJIT1NU ID0gJChIT1NUKSIgXAogCSJNVVNMX1NSQ0RJUiA9ICQoUkVMX1RPUCkvbXVzbC0kKE1VU0xfVkVS KSIgXAotCSJHQ0NfU1JDRElSID0gJChSRUxfVE9QKS9nY2MtJChHQ0NfVkVSKSIgXAotCSJCSU5V VElMU19TUkNESVIgPSAkKFJFTF9UT1ApL2JpbnV0aWxzLSQoQklOVVRJTFNfVkVSKSIgXAorCSQo aWYgJChHQ0NfVkVSKSwiR0NDX1NSQ0RJUiA9ICQoUkVMX1RPUCkvZ2NjLSQoR0NDX1ZFUikiKSBc CisJJChpZiAkKEJJTlVUSUxTX1ZFUiksIkJJTlVUSUxTX1NSQ0RJUiA9ICQoUkVMX1RPUCkvYmlu dXRpbHMtJChCSU5VVElMU19WRVIpIikgXAogCSQoaWYgJChHTVBfVkVSKSwiR01QX1NSQ0RJUiA9 ICQoUkVMX1RPUCkvZ21wLSQoR01QX1ZFUikiKSBcCiAJJChpZiAkKE1QQ19WRVIpLCJNUENfU1JD RElSID0gJChSRUxfVE9QKS9tcGMtJChNUENfVkVSKSIpIFwKIAkkKGlmICQoTVBGUl9WRVIpLCJN UEZSX1NSQ0RJUiA9ICQoUkVMX1RPUCkvbXBmci0kKE1QRlJfVkVSKSIpIFwKIAkkKGlmICQoSVNM X1ZFUiksIklTTF9TUkNESVIgPSAkKFJFTF9UT1ApL2lzbC0kKElTTF9WRVIpIikgXAogCSQoaWYg JChMSU5VWF9WRVIpLCJMSU5VWF9TUkNESVIgPSAkKFJFTF9UT1ApL2xpbnV4LSQoTElOVVhfVkVS KSIpIFwKKwkkKGlmICQoTExWTV9WRVIpLCJMTFZNX1NSQ0RJUiA9ICQoUkVMX1RPUCkvbGx2bS1w cm9qZWN0LSQoTExWTV9WRVIpIikgXAorCSQoaWYgJChMTFZNX1ZFUiksIkxMVk1fVkVSID0gJChM TFZNX1ZFUikiKSBcCiAJIi1pbmNsdWRlICQoUkVMX1RPUCkvY29uZmlnLm1hayIKIAogYWxsOiB8 ICQoU1JDX0RJUlMpICQoQlVJTERfRElSKSAkKEJVSUxEX0RJUikvTWFrZWZpbGUgJChCVUlMRF9E SVIpL2NvbmZpZy5tYWsKZGlmZiAtLWdpdCBhL2hhc2hlcy9sbHZtLXByb2plY3QtMTEuMC4wLnRh ci54ei5zaGExIGIvaGFzaGVzL2xsdm0tcHJvamVjdC0xMS4wLjAudGFyLnh6LnNoYTEKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY0YjcwNAotLS0gL2Rldi9udWxsCisrKyBi L2hhc2hlcy9sbHZtLXByb2plY3QtMTEuMC4wLnRhci54ei5zaGExCkBAIC0wLDAgKzEgQEAKKzNj ODgzOTBiMTlhYzY3NzljOGQ5Yzg5MjU2ODkyZDY5MDkwMzQxMmIgIGxsdm0tcHJvamVjdC0xMS4w LjAudGFyLnh6CmRpZmYgLS1naXQgYS9saXRlY3Jvc3MvTWFrZWZpbGUuY2xhbmcgYi9saXRlY3Jv c3MvTWFrZWZpbGUuY2xhbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU3 MDk1YwotLS0gL2Rldi9udWxsCisrKyBiL2xpdGVjcm9zcy9NYWtlZmlsZS5jbGFuZwpAQCAtMCww ICsxLDE4OCBAQAorCitPVVRQVVQgPSAkKENVUkRJUikvb3V0cHV0CisKK0xMVk1fU1JDRElSID0g TExWTV9TUkNESVJfbm90X3NldAorTVVTTF9TUkNESVIgPSBNVVNMX1NSQ0RJUl9ub3Rfc2V0CisK K1RBUkdFVFMgPSBcCisJYWFyY2g2NC1saW51eC1tdXNsZWFiaSBcCisJYXJtdjctbGludXgtbXVz bGVhYmloZiBcCisJYXJtdjdtLWxpbnV4LW11c2xlYWJpIFwKKwlhcm12N2VtLWxpbnV4LW11c2xl YWJpaGYgXAorCXg4Nl82NC1saW51eC1tdXNsIFwKKwkjIGVuZAorCitUQVJHRVRfQ09ORklHX2Fy bXY3LWxpbnV4LW11c2xlYWJpaGYgPSAtbWZwdT12ZnB2MworVEFSR0VUX0NPTkZJR19hcm12N2Vt LWxpbnV4LW11c2xlYWJpaGYgPSAtbWZwdT1mcHY1LWQxNgorCitERUZBVUxUX1RBUkdFVCA9IHg4 Nl82NC1saW51eC1tdXNsCisKK1RPT0xTID0gXAorCWxsdm0tYXIgXAorCWxsdm0tbm0gXAorCWxs dm0tb2JqY29weSBcCisJbGx2bS1vYmpkdW1wIFwKKwlsbHZtLXJhbmxpYiBcCisJbGx2bS1zaXpl IFwKKwlsbHZtLXN0cmlwIFwKKwkjIGVuZAorCistaW5jbHVkZSBjb25maWcubWFrCisKKyMgVE9E TzogZGV0ZXJtaW5lIExMVk1fVEFSR0VUU19UT19CVUlMRCBmcm9tIFRBUkdFVFM/CitGVUxMX0xM Vk1fQ09ORklHID0gJChMTFZNX0NPTkZJRykgXAorCS1EQ0xBTkdfREVGQVVMVF9DWFhfU1RETElC PWxpYmMrKyBcCisJLURDTEFOR19ERUZBVUxUX0xJTktFUj1sbGQgXAorCS1EQ0xBTkdfREVGQVVM VF9PQkpDT1BZPWxsdm0tb2JqY29weSBcCisJLURDTEFOR19ERUZBVUxUX1JUTElCPWNvbXBpbGVy LXJ0IFwKKwktRENNQUtFX0JVSUxEX1RZUEU9TWluU2l6ZVJlbCBcCisJLURDTUFLRV9JTlNUQUxM X1BSRUZJWD0vY2xhbmcgXAorCS1EREVGQVVMVF9TWVNST09UPS4uLy4uL1RBUkdFVCBcCisJLURM TFZNX0JVSUxUSU5fVEFSR0VUUz0nJChzdWJzdCAkKHN1YnN0ICwsICksOywkKFRBUkdFVFMpKScg XAorCS1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9JChERUZBVUxUX1RBUkdFVCkgXAorCS1E TExWTV9ESVNUUklCVVRJT05fQ09NUE9ORU5UUz0nY2xhbmc7Y2xhbmctcmVzb3VyY2UtaGVhZGVy cztsbGQ7TFRPOyQoc3Vic3QgJChzdWJzdCAsLCApLDssJChUT09MUykpJyBcCisJLURMTFZNX0VO QUJMRV9QUk9KRUNUUz0nY2xhbmc7bGxkJyBcCisJLURMTFZNX0VOQUJMRV9SVU5USU1FUz0nY29t cGlsZXItcnQ7bGliY3h4O2xpYmN4eGFiaTtsaWJ1bndpbmQnIFwKKwktRExMVk1fSU5TVEFMTF9U T09MQ0hBSU5fT05MWT1PTiBcCisJLURMTFZNX1JVTlRJTUVfVEFSR0VUUz0nJChzdWJzdCAkKHN1 YnN0ICwsICksOywkKFRBUkdFVFMpKScgXAorCS1ETExWTV9UQVJHRVRTX1RPX0JVSUxEPSdBQXJj aDY0O0FSTTtNaXBzO1Bvd2VyUEM7WDg2JyBcCisJJChmb3JlYWNoIHQsJChUQVJHRVRTKSwtREJV SUxUSU5TXyQodClfQ01BS0VfU1lTUk9PVD0kKENVUkRJUikvb2JqX3N5c3Jvb3QvJCh0KSkgXAor CSQoZm9yZWFjaCB0LCQoVEFSR0VUUyksLURCVUlMVElOU18kKHQpX0NNQUtFX0NfRkxBR1M9JyQo VEFSR0VUX0NPTkZJR18kKHQpKScpIFwKKwkkKGZvcmVhY2ggdCwkKFRBUkdFVFMpLC1EQlVJTFRJ TlNfJCh0KV9DTUFLRV9BU01fRkxBR1M9JyQoVEFSR0VUX0NPTkZJR18kKHQpKScpIFwKKwkkKGZv cmVhY2ggdCwkKFRBUkdFVFMpLC1EUlVOVElNRVNfJCh0KV9DTUFLRV9DWFhfRkxBR1M9Jy1MJChD VVJESVIpL29ial9tdXNsLyQodCkvbGliIC1CJChDVVJESVIpL29ial9tdXNsLyQodCkvbGliIC1R dW51c2VkLWFyZ3VtZW50cycpIFwKKwkkKGZvcmVhY2ggdCwkKFRBUkdFVFMpLC1EUlVOVElNRVNf JCh0KV9DTUFLRV9DX0ZMQUdTPSctTCQoQ1VSRElSKS9vYmpfbXVzbC8kKHQpL2xpYiAtQiQoQ1VS RElSKS9vYmpfbXVzbC8kKHQpL2xpYiAtUXVudXNlZC1hcmd1bWVudHMnKSBcCisJJChmb3JlYWNo IHQsJChUQVJHRVRTKSwtRFJVTlRJTUVTXyQodClfQ01BS0VfU1lTUk9PVD0kKENVUkRJUikvb2Jq X3N5c3Jvb3QvJCh0KSkgXAorCSQoZm9yZWFjaCB0LCQoVEFSR0VUUyksLURSVU5USU1FU18kKHQp X0NPTVBJTEVSX1JUX0JVSUxEX0xJQkZVWlpFUj1PRkYpIFwKKwkkKGZvcmVhY2ggdCwkKFRBUkdF VFMpLC1EUlVOVElNRVNfJCh0KV9DT01QSUxFUl9SVF9CVUlMRF9TQU5JVElaRVJTPU9GRikgXAor CSQoZm9yZWFjaCB0LCQoVEFSR0VUUyksLURSVU5USU1FU18kKHQpX0NPTVBJTEVSX1JUX0JVSUxE X1hSQVk9T0ZGKSBcCisJJChmb3JlYWNoIHQsJChUQVJHRVRTKSwtRFJVTlRJTUVTXyQodClfTElC Q1hYQUJJX0VOQUJMRV9TSEFSRUQ9T0ZGKSBcCisJJChmb3JlYWNoIHQsJChUQVJHRVRTKSwtRFJV TlRJTUVTXyQodClfTElCQ1hYQUJJX0VOQUJMRV9TVEFUSUNfVU5XSU5ERVI9T04pIFwKKwkkKGZv cmVhY2ggdCwkKFRBUkdFVFMpLC1EUlVOVElNRVNfJCh0KV9MSUJDWFhBQklfSU5TVEFMTF9MSUJS QVJZPU9GRikgXAorCSQoZm9yZWFjaCB0LCQoVEFSR0VUUyksLURSVU5USU1FU18kKHQpX0xJQkNY WEFCSV9VU0VfQ09NUElMRVJfUlQ9T04pIFwKKwkkKGZvcmVhY2ggdCwkKFRBUkdFVFMpLC1EUlVO VElNRVNfJCh0KV9MSUJDWFhBQklfVVNFX0xMVk1fVU5XSU5ERVI9T04pIFwKKwkkKGZvcmVhY2gg dCwkKFRBUkdFVFMpLC1EUlVOVElNRVNfJCh0KV9MSUJDWFhBQklfU1RBVElDQUxMWV9MSU5LX1VO V0lOREVSX0lOX1NIQVJFRF9MSUJSQVJZPU9OKSBcCisJJChmb3JlYWNoIHQsJChUQVJHRVRTKSwt RFJVTlRJTUVTXyQodClfTElCQ1hYX0VOQUJMRV9TVEFUSUNfQUJJX0xJQlJBUlk9T04pIFwKKwkk KGZvcmVhY2ggdCwkKFRBUkdFVFMpLC1EUlVOVElNRVNfJCh0KV9MSUJDWFhfSEFTX01VU0xfTElC Qz1PTikgXAorCSQoZm9yZWFjaCB0LCQoVEFSR0VUUyksLURSVU5USU1FU18kKHQpX0xJQkNYWF9V U0VfQ09NUElMRVJfUlQ9T04pIFwKKwkkKGZvcmVhY2ggdCwkKFRBUkdFVFMpLC1EUlVOVElNRVNf JCh0KV9MSUJVTldJTkRfRU5BQkxFX1NIQVJFRD1PRkYpIFwKKwkkKGZvcmVhY2ggdCwkKFRBUkdF VFMpLC1EUlVOVElNRVNfJCh0KV9MSUJVTldJTkRfSU5TVEFMTF9MSUJSQVJZPU9GRikgXAorCSQo Zm9yZWFjaCB0LCQoVEFSR0VUUyksLURSVU5USU1FU18kKHQpX0xJQlVOV0lORF9VU0VfQ09NUElM RVJfUlQ9T04pIFwKKwkjIGVuZAorCithbGw6IGxsdm0gbXVzbAorCitpbnN0YWxsOiBpbnN0YWxs LWxsdm0gaW5zdGFsbC1tdXNsIGluc3RhbGwta2VybmVsLWhlYWRlcnMgaW5zdGFsbC1jb25maWdz IGluc3RhbGwtc3ltbGlua3MKKworbGx2bTogfCBvYmpfbGx2bS8ubGNfYnVpbHRfMworbXVzbDog fCAkKGZvcmVhY2ggdCwkKFRBUkdFVFMpLG9ial9tdXNsLyQodCkvLmxjX2J1aWx0KQoraW5zdGFs bC1tdXNsOiAkKGZvcmVhY2ggdCwkKFRBUkdFVFMpLGluc3RhbGwtbXVzbF8kKHQpKQoraW5zdGFs bC1rZXJuZWwtaGVhZGVyczogJChmb3JlYWNoIHQsJChUQVJHRVRTKSxpbnN0YWxsLWtlcm5lbC1o ZWFkZXJzXyQodCkpCitpbnN0YWxsLWNvbmZpZ3M6ICQoZm9yZWFjaCB0LCQoVEFSR0VUUyksaW5z dGFsbC1jb25maWdzXyQodCkpCitpbnN0YWxsLXN5bWxpbmtzOiAkKGZvcmVhY2ggdCwkKFRBUkdF VFMpLGluc3RhbGwtc3ltbGlua3NfJCh0KSkKKworLlBIT05ZOiBhbGwgbGx2bSBtdXNsIGluc3Rh bGwtbGx2bSBpbnN0YWxsLW11c2wgaW5zdGFsbC1rZXJuZWwtaGVhZGVycyBpbnN0YWxsLWNvbmZp Z3MgaW5zdGFsbC1zeW1saW5rcyBjbGVhbgorCitzcmNfbGx2bTogfCAkKExMVk1fU1JDRElSKQor CWxuIC1zZiAkKExMVk1fU1JDRElSKSAkQAorCitzcmNfbXVzbDogfCAkKE1VU0xfU1JDRElSKQor CWxuIC1zZiAkKE1VU0xfU1JDRElSKSAkQAorCitzcmNfa2VybmVsX2hlYWRlcnM6IHwgJChMSU5V WF9TUkNESVIpCisJbG4gLXNmICIkKExJTlVYX1NSQ0RJUikiICRACisKKyUvOgorCW1rZGlyIC1w ICRACisKK29ial9sbHZtLy5sY19jb25maWd1cmVkOiB8IG9ial9sbHZtLyBzcmNfbGx2bQorCWNk IG9ial9sbHZtICYmIGNtYWtlIC1HICJOaW5qYSIgJChGVUxMX0xMVk1fQ09ORklHKSAuLi9zcmNf bGx2bS9sbHZtCisJdG91Y2ggJEAKKworb2JqX2xsdm0vLmxjX2J1aWx0XzE6IHwgb2JqX2xsdm0v LmxjX2NvbmZpZ3VyZWQKKwljZCBvYmpfbGx2bSAmJiBuaW5qYSBkaXN0cmlidXRpb24KKwl0b3Vj aCAkQAorCitvYmpfbXVzbC8lLy5sY19jb25maWd1cmVkOiB8IG9ial9tdXNsLyUvIHNyY19tdXNs IG9ial9sbHZtLy5sY19idWlsdF8xCisJY2Qgb2JqX211c2wvJCogJiYgLi4vLi4vc3JjX211c2wv Y29uZmlndXJlIFwKKwkJLS1wcmVmaXg9IFwKKwkJLS10YXJnZXQ9JCogXAorCQktLWRpc2FibGUt d3JhcHBlciBcCisJCUxJQkNDPS4uLy4uL29ial9sbHZtL2xpYi9jbGFuZy8kKExMVk1fVkVSKS9s aWIvJCovbGliY2xhbmdfcnQuYnVpbHRpbnMuYSBcCisJCUNDPSIuLi8uLi9vYmpfbGx2bS9iaW4v Y2xhbmcgLS10YXJnZXQ9JCogJChUQVJHRVRfQ09ORklHXyQqKSIgXAorCQkkKE1VU0xfQ09ORklH KSAkKE1VU0xfQ09ORklHXyQqKQorCXRvdWNoICRACisKK29ial9zeXNyb290LyUvLmxjX2hlYWRl cnM6IHwgb2JqX3N5c3Jvb3QvIG9ial9tdXNsLyUvLmxjX2NvbmZpZ3VyZWQKKwljZCBvYmpfbXVz bC8kKiAmJiAkKE1BS0UpIERFU1RESVI9JChDVVJESVIpL29ial9zeXNyb290LyQqIGluc3RhbGwt aGVhZGVycworCXRvdWNoICRACisKK29ial9sbHZtLy5sY19idWlsdF8yOiB8ICQoZm9yZWFjaCB0 LCQoVEFSR0VUUyksb2JqX3N5c3Jvb3QvJCh0KS8ubGNfaGVhZGVycykKKwljZCBvYmpfbGx2bSAm JiBuaW5qYSBidWlsdGlucworCXRvdWNoICRACisKK29ial9tdXNsLyUvLmxjX2J1aWx0OiB8IG9i al9tdXNsLyUvLmxjX2NvbmZpZ3VyZWQgb2JqX2xsdm0vLmxjX2J1aWx0XzIKKwljZCBvYmpfbXVz bC8kKiAmJiAkKE1BS0UpIEFSPS4uLy4uL29ial9sbHZtL2Jpbi9sbHZtLWFyIFwKKwkJCQkgIFJB TkxJQj0uLi8uLi9vYmpfbGx2bS9iaW4vbGx2bS1yYW5saWIKKwl0b3VjaCAkQAorCitvYmpfc3lz cm9vdC8lLy5sY19jcnRfd29ya2Fyb3VuZDoKKwkjIFNvbWUgY29uZmlndXJlIHRlc3RzIGZvciBs bHZtIHJ1bnRpbWVzIGZhaWwgd2l0aG91dCBjcnRiZWdpbiBhbmQKKwkjIGNydGVuZCBmaWxlcyBp biB0aGUgc3lzcm9vdC4gVGhlIHJ1bnRpbWVzIGJ1aWxkIGdlbmVyYXRlcyB0aGVzZSBmaWxlcwor CSMgbGVhZGluZyB0byBhIGNoaWNrZW4tZWdnIHByb2JsZW0uCisJbWtkaXIgLXAgb2JqX3N5c3Jv b3QvJCovbGliCisJY2Qgb2JqX3N5c3Jvb3QvJCovbGliICYmIHRvdWNoIGNydGJlZ2luVC5vIGNy dGJlZ2luUy5vIGNydGJlZ2luLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vCisJdG91Y2ggJEAKKworb2Jq X2tlcm5lbF9oZWFkZXJzLyUvLmxjX2J1aWx0OiB8IHNyY19rZXJuZWxfaGVhZGVycworCW1rZGly IC1wICQoQ1VSRElSKS9vYmpfa2VybmVsX2hlYWRlcnMvJCovc3RhZ2VkCisJY2Qgc3JjX2tlcm5l bF9oZWFkZXJzICYmICQoTUFLRSkgQVJDSD0kKGNhbGwgZm5fbGludXhfYXJjaCwkKikgTz0kKENV UkRJUikvb2JqX2tlcm5lbF9oZWFkZXJzLyQqIElOU1RBTExfSERSX1BBVEg9JChDVVJESVIpL29i al9rZXJuZWxfaGVhZGVycy8kKi9zdGFnZWQgaGVhZGVyc19pbnN0YWxsCisJZmluZCBvYmpfa2Vy bmVsX2hlYWRlcnMvJCovc3RhZ2VkL2luY2x1ZGUgJygnIC1uYW1lIC5pbnN0YWxsIC1vIC1uYW1l IC4uaW5zdGFsbC5jbWQgJyknIC1leGVjIHJtIHt9ICsKKwl0b3VjaCAkQAorCitvYmpfc3lzcm9v dC8lLy5sY19saW51eF9oZWFkZXJzOiB8IG9ial9rZXJuZWxfaGVhZGVycy8lLy5sY19idWlsdAor CW1rZGlyIC1wIG9ial9zeXNyb290LyQqL2luY2x1ZGUKKwljcCAtUiBvYmpfa2VybmVsX2hlYWRl cnMvJCovc3RhZ2VkL2luY2x1ZGUvKiBvYmpfc3lzcm9vdC8kKi9pbmNsdWRlCisKK29ial9sbHZt Ly5sY19idWlsdF8zOiB8ICQoZm9yZWFjaCB0LCQoVEFSR0VUUyksb2JqX211c2wvJCh0KS8ubGNf YnVpbHQgXAorCQkJCQkgICAgICAgb2JqX3N5c3Jvb3QvJCh0KS8ubGNfY3J0X3dvcmthcm91bmQg XAorCQkJCQkgICAgICAgb2JqX3N5c3Jvb3QvJCh0KS8ubGNfbGludXhfaGVhZGVycykKKwljZCBv YmpfbGx2bSAmJiBuaW5qYSBydW50aW1lcworCXRvdWNoICRACisKK2luc3RhbGwtbGx2bTogfCBv YmpfbGx2bS8ubGNfYnVpbHRfMworCWNkIG9ial9sbHZtICYmIERFU1RESVI9JChERVNURElSKSQo T1VUUFVUKSBuaW5qYSBpbnN0YWxsLWRpc3RyaWJ1dGlvbiBpbnN0YWxsLWJ1aWx0aW5zIGluc3Rh bGwtcnVudGltZXMKKworaW5zdGFsbC1tdXNsXyU6IHwgb2JqX211c2wvJS8ubGNfYnVpbHQKKwlj ZCBvYmpfbXVzbC8kKiAmJiAkKE1BS0UpICQoTVVTTF9WQVJTKSBERVNURElSPSQoREVTVERJUikk KE9VVFBVVCkvJCogaW5zdGFsbAorCitpbnN0YWxsLWtlcm5lbC1oZWFkZXJzXyU6IHwgb2JqX2tl cm5lbF9oZWFkZXJzLyUvLmxjX2J1aWx0CisJbWtkaXIgLXAgJChERVNURElSKSQoT1VUUFVUKS8k Ki9pbmNsdWRlCisJY3AgLVIgb2JqX2tlcm5lbF9oZWFkZXJzLyQqL3N0YWdlZC9pbmNsdWRlLyog JChERVNURElSKSQoT1VUUFVUKS8kKi9pbmNsdWRlCisKK2luc3RhbGwtY29uZmlnc18lOiB8ICQo REVTRElSKSQoT1VUUFVUKS9jbGFuZy9iaW4vCisJZWNobyAiLS10YXJnZXQ9JCogJChUQVJHRVRf Q09ORklHXyQqKSIgPiAkKERFU1RESVIpJChPVVRQVVQpL2NsYW5nL2Jpbi8kKi1jbGFuZy5jZmcK KwllY2hvICItLXRhcmdldD0kKiAkKFRBUkdFVF9DT05GSUdfJCopIiA+ICQoREVTVERJUikkKE9V VFBVVCkvY2xhbmcvYmluLyQqLWNsYW5nKysuY2ZnCisKK2luc3RhbGwtc3ltbGlua3NfJTogfCAk KERFU1RESVIpJChPVVRQVVQpL2Jpbi8KKwljZCAkKERFU1RESVIpJChPVVRQVVQpL2JpbiAmJiBs biAtc2YgLi4vY2xhbmcvYmluL2NsYW5nICQqLWNsYW5nCisJY2QgJChERVNURElSKSQoT1VUUFVU KS9iaW4gJiYgbG4gLXNmIC4uL2NsYW5nL2Jpbi9jbGFuZysrICQqLWNsYW5nKysKKwljZCAkKERF U1RESVIpJChPVVRQVVQpL2JpbiAmJiBsbiAtc2YgLi4vY2xhbmcvYmluL2NsYW5nLWNwcCAkKi1j cHAKKwljZCAkKERFU1RESVIpJChPVVRQVVQpL2JpbiAmJiBsbiAtc2YgLi4vY2xhbmcvYmluL2Ns YW5nICQqLWNjCisJY2QgJChERVNURElSKSQoT1VUUFVUKS9iaW4gJiYgbG4gLXNmIC4uL2NsYW5n L2Jpbi9jbGFuZysrICQqLWMrKworCWNkICQoREVTVERJUikkKE9VVFBVVCkvYmluICYmIGxuIC1z ZiAuLi9jbGFuZy9iaW4vbGQubGxkICQqLWxkCisJJChmb3JlYWNoIHQsJChUT09MUyksY2QgJChE RVNURElSKSQoT1VUUFVUKS9iaW4gJiYgbG4gLXNmIC4uL2NsYW5nL2Jpbi8kKHQpICQqLSQoc3Vi c3QgbGx2bS0sLCQodCk7KSkKKworY2xlYW46CisJcm0gLXJmIHNyY18qIG9ial8qCisKKyMgJChj YWxsIGZuX2xpbnV4X2FyY2gsdGFyZ2V0LXRyaXBsZSkKKyMgICAgIERldGVybWluZSBsaW51eCBh cmNoaXRlY3R1cmUgZnJvbSB0YXJnZXQgdHJpcGxlCitpZmVxICgkKExJTlVYX1NSQ0RJUiksKQor JChlcnJvciBMSU5VWF9TUkNESVIgaXMgcmVxdWlyZWQgZm9yIGxsdm0gbGliYysrIGJ1aWxkKQor ZW5kaWYKK0xJTlVYX0FSQ0hfTElTVCA6PSAkKHNvcnQgJChub3RkaXIgJCh3aWxkY2FyZCAkKExJ TlVYX1NSQ0RJUikvYXJjaC8qKSkpCitmbl90YXJnZXRfYXJjaCA9ICQoZmlyc3R3b3JkICQoc3Vi c3QgLSwgLCQoMSkpKQorZm5fdGFyZ2V0X2FyY2hfbWFuZ2xlZCA9ICQocGF0c3Vic3QgaSU4Nix4 ODYsJChwYXRzdWJzdCBhYXJjaDY0JSxhcm02NCUsJChjYWxsIGZuX3RhcmdldF9hcmNoLCQoMSkp KSkKK2ZuX2xpbnV4X2FyY2ggPSAkKGxhc3R3b3JkICQoZm9yZWFjaCBhLCQoTElOVVhfQVJDSF9M SVNUKSwkKGlmICQoZmlsdGVyICQoYSklLCQoY2FsbCBmbl90YXJnZXRfYXJjaF9tYW5nbGVkLCQo MSkpKSwkKGEpKSkpCisKKy5TRUNPTkRBUlk6CmRpZmYgLS1naXQgYS9saXRlY3Jvc3MvTWFrZWZp bGUgYi9saXRlY3Jvc3MvTWFrZWZpbGUuZ2NjCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUg ZnJvbSBsaXRlY3Jvc3MvTWFrZWZpbGUKcmVuYW1lIHRvIGxpdGVjcm9zcy9NYWtlZmlsZS5nY2MK ZGlmZiAtLWdpdCBhL3BhdGNoZXMvbGx2bS1wcm9qZWN0LTExLjAuMC8wMDAxLWxpYmN4eGFiaS1h ZGQtYnVpbHRpbnMtdG8tZHluYW1pYy1saWJyYXJ5LWxpbmsucGF0Y2ggYi9wYXRjaGVzL2xsdm0t cHJvamVjdC0xMS4wLjAvMDAwMS1saWJjeHhhYmktYWRkLWJ1aWx0aW5zLXRvLWR5bmFtaWMtbGli cmFyeS1saW5rLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxYzM3 MzQKLS0tIC9kZXYvbnVsbAorKysgYi9wYXRjaGVzL2xsdm0tcHJvamVjdC0xMS4wLjAvMDAwMS1s aWJjeHhhYmktYWRkLWJ1aWx0aW5zLXRvLWR5bmFtaWMtbGlicmFyeS1saW5rLnBhdGNoCkBAIC0w LDAgKzEsMzAgQEAKK0Zyb20gNmY0MzdiNDJlNjZjNzU1MmMzYjkyZmQxYmQ0NmM5NmVkNDg0ZGZi ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhdHJpY2sgT3BwZW5sYW5kZXIgPHBh dHJpY2sub3BwZW5sYW5kZXJAZ21haWwuY29tPgorRGF0ZTogRnJpLCA4IEphbiAyMDIxIDE2OjQ2 OjM3ICsxMTAwCitTdWJqZWN0OiBbUEFUQ0hdIGxpYmN4eGFiaTogYWRkIGJ1aWx0aW5zIHRvIGR5 bmFtaWMgbGlicmFyeSBsaW5rCisKK090aGVyd2lzZSBsaWJjKythYmkuc28gZmFpbHMgdG8gbGlu ayBvbiBhcm0gd2l0aCB1bmRlZmluZWQgcmVmZXJlbmNlcyB0bworc29tZSBfX2FlYWJpXyBidWls dGlucy4KKy0tLQorIGxpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQgfCA1ICsrKysrCisgMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvbGliY3h4YWJpL3Ny Yy9DTWFrZUxpc3RzLnR4dCBiL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKK2luZGV4IDQy YmVjNDIxZDJiZS4uOWRiYTIyZWEzZDQzIDEwMDY0NAorLS0tIGEvbGliY3h4YWJpL3NyYy9DTWFr ZUxpc3RzLnR4dAorKysrIGIvbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAorQEAgLTczLDYg KzczLDExIEBAIGVsc2UoKQorICAgYWRkX2xpYnJhcnlfZmxhZ3NfaWYoTElCQ1hYQUJJX0hBU19D X0xJQiBjKQorIGVuZGlmKCkKKyAKKytpZiAoTElCQ1hYQUJJX1VTRV9DT01QSUxFUl9SVCkKKysg IGZpbmRfY29tcGlsZXJfcnRfbGlicmFyeShidWlsdGlucyBMSUJDWFhBQklfQlVJTFRJTlNfTElC UkFSWSkKKysgIGxpc3QoQVBQRU5EIExJQkNYWEFCSV9TSEFSRURfTElCUkFSSUVTICIke0xJQkNY WEFCSV9CVUlMVElOU19MSUJSQVJZfSIpCisrZW5kaWYgKCkKKysKKyBpZiAoTElCQ1hYQUJJX1VT RV9MTFZNX1VOV0lOREVSKQorICAgIyBQcmVmZXIgdXNpbmcgdGhlIGluLXRyZWUgdmVyc2lvbiBv ZiBsaWJ1bndpbmQsIGVpdGhlciBzaGFyZWQgb3Igc3RhdGljLiBJZgorICAgIyBub25lIGFyZSBm b3VuZCBmYWxsIGJhY2sgdG8gdXNpbmcgLWx1bndpbmQuCistLSAKKzIuMzAuMAorCmRpZmYgLS1n aXQgYS9wYXRjaGVzL2xsdm0tcHJvamVjdC0xMS4wLjAvMDAwMi1jb21waWxlci1ydC1lbmFibGUt Y3J0LXN1cHBvcnQtb24tbW9yZS1hcm0tdGFyZ2V0cy5wYXRjaCBiL3BhdGNoZXMvbGx2bS1wcm9q ZWN0LTExLjAuMC8wMDAyLWNvbXBpbGVyLXJ0LWVuYWJsZS1jcnQtc3VwcG9ydC1vbi1tb3JlLWFy bS10YXJnZXRzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYzUw OTIKLS0tIC9kZXYvbnVsbAorKysgYi9wYXRjaGVzL2xsdm0tcHJvamVjdC0xMS4wLjAvMDAwMi1j b21waWxlci1ydC1lbmFibGUtY3J0LXN1cHBvcnQtb24tbW9yZS1hcm0tdGFyZ2V0cy5wYXRjaApA QCAtMCwwICsxLDI1IEBACitGcm9tIDI0MjVhNzE4MDQ2YTgyZTcwNWQwNTQwMGJkOTIwNGIyNjVj YTMyNjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYXRyaWNrIE9wcGVubGFuZGVy IDxwYXRyaWNrLm9wcGVubGFuZGVyQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgOCBKYW4gMjAyMSAy MTozNDozOSArMTEwMAorU3ViamVjdDogW1BBVENIXSBjb21waWxlci1ydDogZW5hYmxlIGNydCBz dXBwb3J0IG9uIG1vcmUgYXJtIHRhcmdldHMKKworLS0tCisgY29tcGlsZXItcnQvY21ha2UvY29u ZmlnLWl4LmNtYWtlIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNt YWtlIGIvY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCitpbmRleCAyZWRjMWRhYmQ5 MGQuLjdkOGI5NTE0NmU5YSAxMDA2NDQKKy0tLSBhL2NvbXBpbGVyLXJ0L2NtYWtlL2NvbmZpZy1p eC5jbWFrZQorKysrIGIvY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCitAQCAtMjU1 LDcgKzI1NSw3IEBAIGZ1bmN0aW9uKGlzX3ZhbGlkX2FwcGxlX3BsYXRmb3JtIHBsYXRmb3JtIGlz X3ZhbGlkX291dCkKKyBlbmRmdW5jdGlvbigpCisgCisgc2V0KEFSTTY0IGFhcmNoNjQpCistc2V0 KEFSTTMyIGFybSBhcm1oZikKKytzZXQoQVJNMzIgYXJtIGFybWhmIGFybXY3IGFybXY3bSBhcm12 N2VtKQorIHNldChIRVhBR09OIGhleGFnb24pCisgc2V0KFg4NiBpMzg2KQorIHNldChYODZfNjQg eDg2XzY0KQorLS0gCisyLjMwLjAKKwpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9sbHZtLXByb2plY3Qt MTEuMC4wLzAwMDMtY2xhbmctc3VwcG9ydC1leHBhbmRpbmctdGFyZ2V0LXRyaXBsZS1pbi1zeXNy b290LXBhdC5wYXRjaCBiL3BhdGNoZXMvbGx2bS1wcm9qZWN0LTExLjAuMC8wMDAzLWNsYW5nLXN1 cHBvcnQtZXhwYW5kaW5nLXRhcmdldC10cmlwbGUtaW4tc3lzcm9vdC1wYXQucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhhN2RlYwotLS0gL2Rldi9udWxsCisrKyBi L3BhdGNoZXMvbGx2bS1wcm9qZWN0LTExLjAuMC8wMDAzLWNsYW5nLXN1cHBvcnQtZXhwYW5kaW5n LXRhcmdldC10cmlwbGUtaW4tc3lzcm9vdC1wYXQucGF0Y2gKQEAgLTAsMCArMSwzOSBAQAorRnJv bSBmMGVjYjM4NTBkNzgyNWNkOTY3ZDIyYzA5ZWQ3M2Q5OTA2MDVjNzBiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogUGF0cmljayBPcHBlbmxhbmRlciA8cGF0cmljay5vcHBlbmxhbmRl ckBnbWFpbC5jb20+CitEYXRlOiBNb24sIDExIEphbiAyMDIxIDEwOjM5OjI3ICsxMTAwCitTdWJq ZWN0OiBbUEFUQ0hdIGNsYW5nOiBzdXBwb3J0IGV4cGFuZGluZyB0YXJnZXQgdHJpcGxlIGluIHN5 c3Jvb3QgcGF0aAorCitUaGlzIGFsbG93cyBjbGFuZyB0byBzd2l0Y2ggc3lzcm9vdCAob3IsIG1v cmUgdXNlZnVsbHksIGRlZmF1bHQgc3lzcm9vdCkKK2Jhc2VkIG9uIHRhcmdldCB0cmlwbGUuCisK K0ZvciBleGFtcGxlLCBjb25maWd1cmluZyB3aXRoCisKKy1EREVGQVVMVF9TWVNST09UPS4uL1RB UkdFVAorCit3aWxsIGF1dG9tYXRpY2FsbHkgc2VsZWN0IGEgdGFyZ2V0IHNwZWNpZmljIHN5c3Jv b3Qgb25lIGxldmVsIHVwIGZyb20KK3RoZSBjbGFuZyBiaW5hcnkgbG9jYXRpb24uCistLS0KKyBj bGFuZy9saWIvRHJpdmVyL0RyaXZlci5jcHAgfCA3ICsrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9jbGFuZy9saWIvRHJpdmVyL0RyaXZlci5j cHAgYi9jbGFuZy9saWIvRHJpdmVyL0RyaXZlci5jcHAKK2luZGV4IGVjZTgyMjJkY2YyNC4uOGEz YjA2OGQ4NmI5IDEwMDY0NAorLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ecml2ZXIuY3BwCisrKysg Yi9jbGFuZy9saWIvRHJpdmVyL0RyaXZlci5jcHAKK0BAIC0xMTIxLDYgKzExMjEsMTMgQEAgQ29t cGlsYXRpb24gKkRyaXZlcjo6QnVpbGRDb21waWxhdGlvbihBcnJheVJlZjxjb25zdCBjaGFyICo+ IEFyZ0xpc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgIC5EZWZhdWx0KFNhdmVUZW1wc0N3ZCk7 CisgICB9CisgCisrICAvLyBleHBhbmQgVEFSR0VUIGluIHN5c3Jvb3QgcGF0aAorKyAgaWYgKCFT eXNSb290LmVtcHR5KCkpIHsKKysgICAgc2l6ZV90IHBvc3swfTsKKysgICAgd2hpbGUgKChwb3Mg PSBTeXNSb290LmZpbmQoIlRBUkdFVCIsIHBvcykpICE9IHN0ZDo6c3RyaW5nOjpucG9zKQorKyAg ICAgIFN5c1Jvb3QucmVwbGFjZShwb3MsIDYsIFRhcmdldFRyaXBsZSk7CisrICB9CisrCisgICBz ZXRMVE9Nb2RlKEFyZ3MpOworIAorICAgLy8gUHJvY2VzcyAtZmVtYmVkLWJpdGNvZGU9IGZsYWdz LgorLS0gCisyLjMwLjAKKwotLSAKMi4zMC4wCgo= --00000000000096a31b05ba018c2a--