From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id f80db4bc for ; Sat, 7 Sep 2019 17:35:07 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============7057528177180720774==" MIME-Version: 1.0 Subject: [PR PATCH] [WIP] gcc: update to 9.2.0 and enable gcc-go on musl To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sat, 07 Sep 2019 19:35:07 +0200 GitHub notification mails are now in MIME to allow UTF8. --===============7057528177180720774== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHE2NiBhZ2FpbnN0IG1hc3RlciBvbiB0aGUg dm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1wcGMvdm9p ZC1wYWNrYWdlcyBnY2M5MgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMTQyODkKCltXSVBdIGdjYzogdXBkYXRlIHRvIDkuMi4wIGFuZCBlbmFibGUgZ2Nj LWdvIG9uIG11c2wKUHJlbGltaW5hcnkgcHVsbCByZXF1ZXN0LiBDdXJyZW50bHkgYnVpbGRpbmcg YW5kIHRlc3RpbmcuCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTQyODkucGF0Y2ggaXMgYXR0YWNoZWQ= --===============7057528177180720774== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gcc92-14289.patch" RnJvbSBhNGYwNjU2YWRjMTA0YWE5Zjc5MzY2ODYyYTY3MmM5NTVmOGU5NTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQs IDcgU2VwIDIwMTkgMTk6MTM6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBnY2M6IHVwZGF0ZSB0 byA5LjIuMCBhbmQgZW5hYmxlIGdjYy1nbyBvbiBtdXNsCgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dz L2djYy9maWxlcy9nY2Nnby1tdXNsLnBhdGNoICAgICAgICB8IDE3MCArKysrKysrKwogc3JjcGtn cy9nY2MvcGF0Y2hlcy9idWc5MDc1Ni5wYXRjaCAgICAgICAgfCAgMjMgLQogc3JjcGtncy9nY2Mv cGF0Y2hlcy9kYXJuLnBhdGNoICAgICAgICAgICAgfCA1MDQgKysrKysrKysrKysrKysrKysrKysr Kwogc3JjcGtncy9nY2MvcGF0Y2hlcy9saWJmZmlfZ251bGludXgucGF0Y2ggfCAgMTEgKwogc3Jj cGtncy9nY2MvcGF0Y2hlcy9ub24tbnVsbG5lc3MucGF0Y2ggICAgfCAgODggLS0tLQogc3JjcGtn cy9nY2MvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgMzkgKy0KIDYgZmlsZXMgY2hh bmdlZCwgNzAzIGluc2VydGlvbnMoKyksIDEzMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2djYy9maWxlcy9nY2Nnby1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9nY2MvcGF0Y2hlcy9idWc5MDc1Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZ2NjL3BhdGNoZXMvZGFybi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZ2NjL3BhdGNoZXMvbGliZmZpX2dudWxpbnV4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9nY2MvcGF0Y2hlcy9ub24tbnVsbG5lc3MucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2djYy9maWxlcy9nY2Nnby1tdXNsLnBhdGNoIGIvc3JjcGtncy9nY2MvZmlsZXMvZ2NjZ28t bXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODc0MDJl MTQ4ODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2djYy9maWxlcy9nY2Nnby1tdXNsLnBh dGNoCkBAIC0wLDAgKzEsMTcwIEBACistLS0gTWFrZWZpbGUuaW4KKysrKyBNYWtlZmlsZS5pbgor QEAgLTQ2MzI1LDcgKzQ2MzI1LDcgQEAgY29uZmlndXJlLXRhcmdldC1saWJnbzoKKyAJZXNhYzsg XAorIAltb2R1bGVfc3JjZGlyPWxpYmdvOyBcCisgCXJtIC1mIG5vLXN1Y2gtZmlsZSB8fCA6IDsg XAorLQlDT05GSUdfU0lURT1uby1zdWNoLWZpbGUgJChTSEVMTCkgXAorKwlDT05GSUdfU0lURT1u by1zdWNoLWZpbGUgTElCUz0iLWx1Y29udGV4dCAkJExJQlMiICQoU0hFTEwpIFwKKyAJICAkJHMv JCRtb2R1bGVfc3JjZGlyL2NvbmZpZ3VyZSBcCisgCSAgLS1zcmNkaXI9JCR7dG9wZGlyfS8kJG1v ZHVsZV9zcmNkaXIgXAorIAkgICQoVEFSR0VUX0NPTkZJR0FSR1MpIC0tYnVpbGQ9JHtidWlsZF9h bGlhc30gLS1ob3N0PSR7dGFyZ2V0X2FsaWFzfSBcCistLS0gbGliZ28vZ28vcnVudGltZS9tZW1f Z2NjZ28uZ28KKysrKyBsaWJnby9nby9ydW50aW1lL21lbV9nY2Nnby5nbworQEAgLTE2LDcgKzE2 LDcgQEAgaW1wb3J0ICgKKyAvL2dvOmxpbmtuYW1lIHN5c0ZyZWUgcnVudGltZS5zeXNGcmVlCisg CisgLy9leHRlcm4gbW1hcAorLWZ1bmMgc3lzTW1hcChhZGRyIHVuc2FmZS5Qb2ludGVyLCBuIHVp bnRwdHIsIHByb3QsIGZsYWdzLCBmZCBpbnQzMiwgb2ZmIHVpbnRwdHIpIHVuc2FmZS5Qb2ludGVy CisrZnVuYyBzeXNNbWFwKGFkZHIgdW5zYWZlLlBvaW50ZXIsIG4gdWludHB0ciwgcHJvdCwgZmxh Z3MsIGZkIGludDMyLCBvZmYgaW50NjQpIHVuc2FmZS5Qb2ludGVyCisgCisgLy9leHRlcm4gbXVu bWFwCisgZnVuYyBtdW5tYXAoYWRkciB1bnNhZmUuUG9pbnRlciwgbGVuZ3RoIHVpbnRwdHIpIGlu dDMyCitAQCAtMzgsNyArMzgsNyBAQCBmdW5jIGluaXQoKSB7CisgCX0KKyB9CisgCistZnVuYyBt bWFwKGFkZHIgdW5zYWZlLlBvaW50ZXIsIG4gdWludHB0ciwgcHJvdCwgZmxhZ3MsIGZkIGludDMy LCBvZmYgdWludHB0cikgKHVuc2FmZS5Qb2ludGVyLCBpbnQpIHsKKytmdW5jIG1tYXAoYWRkciB1 bnNhZmUuUG9pbnRlciwgbiB1aW50cHRyLCBwcm90LCBmbGFncywgZmQgaW50MzIsIG9mZiBpbnQ2 NCkgKHVuc2FmZS5Qb2ludGVyLCBpbnQpIHsKKyAJcCA6PSBzeXNNbWFwKGFkZHIsIG4sIHByb3Qs IGZsYWdzLCBmZCwgb2ZmKQorIAlpZiB1aW50cHRyKHApID09IF9NQVBfRkFJTEVEIHsKKyAJCXJl dHVybiBuaWwsIGVycm5vKCkKKy0tLSBsaWJnby9nby9ydW50aW1lL3NpZ25hbF9nY2Nnby5nbwor KysrIGxpYmdvL2dvL3J1bnRpbWUvc2lnbmFsX2djY2dvLmdvCitAQCAtMTExLDcgKzExMSw3IEBA IGZ1bmMgZ2V0c2lnKGkgdWludDMyKSB1aW50cHRyIHsKKyAJaWYgc2lnYWN0aW9uKGksIG5pbCwg JnNhKSA8IDAgeworIAkJLy8gT24gR05VL0xpbnV4IGdsaWJjIHJlamVjdHMgYXR0ZW1wdHMgdG8g Y2FsbAorIAkJLy8gc2lnYWN0aW9uIHdpdGggc2lnbmFsIDMyIChTSUdDQU5DRUwpIG9yIDMzIChT SUdTRVRYSUQpLgorLQkJaWYgR09PUyA9PSAibGludXgiICYmIChpID09IDMyIHx8IGkgPT0gMzMp IHsKKysJCWlmIEdPT1MgPT0gImxpbnV4IiAmJiAoaSA9PSAzMiB8fCBpID09IDMzIHx8IGkgPT0g MzQpIHsKKyAJCQlyZXR1cm4gX1NJR19ERkwKKyAJCX0KKyAJCXRocm93KCJzaWdhY3Rpb24gcmVh ZCBmYWlsdXJlIikKKy0tLSBsaWJnby9nby9zeXNjYWxsL2VycnN0ci5nbworKysrIGxpYmdvL2dv L3N5c2NhbGwvZXJyc3RyLmdvCitAQCAtNSw3ICs1LDYgQEAKKyAvLyBsaWNlbnNlIHRoYXQgY2Fu IGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgCisgLy8gK2J1aWxkICFodXJkCistLy8g K2J1aWxkICFsaW51eAorIAorIHBhY2thZ2Ugc3lzY2FsbAorIAorLS0tIGxpYmdvL2dvL3N5c2Nh bGwvZXJyc3RyX2dsaWJjLmdvCisrKysgL2Rldi9udWxsCitAQCAtMSwzMyArMCwwIEBACistLy8g ZXJyc3RyX2dsaWJjLmdvIC0tIEdOVS9MaW51eCBhbmQgR05VL0h1cmQgc3BlY2lmaWMgZXJyb3Ig c3RyaW5ncy4KKy0KKy0vLyBDb3B5cmlnaHQgMjAxMCBUaGUgR28gQXV0aG9ycy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4KKy0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh IEJTRC1zdHlsZQorLS8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0Ug ZmlsZS4KKy0KKy0vLyBXZSB1c2UgdGhpcyByYXRoZXIgdGhhbiBlcnJzdHIuZ28gYmVjYXVzZSBv biBHTlUvTGludXggc3RlcnJvcl9yCistLy8gcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGVycm9y IG1lc3NhZ2UsIGFuZCBtYXkgbm90IHVzZSBidWYgYXQgYWxsLgorLQorLS8vICtidWlsZCBodXJk IGxpbnV4CistCistcGFja2FnZSBzeXNjYWxsCistCistaW1wb3J0ICJ1bnNhZmUiCistCistLy9z eXNuYglzdHJlcnJvcl9yKGVycm51bSBpbnQsIGIgW11ieXRlKSAoZXJyc3RyICpieXRlKQorLS8v c3RyZXJyb3JfcihlcnJudW0gX0NfaW50LCBiICpieXRlLCBsZW4gU2l6ZV90KSAqYnl0ZQorLQor LWZ1bmMgRXJyc3RyKGVycm51bSBpbnQpIHN0cmluZyB7CistCWEgOj0gbWFrZShbXWJ5dGUsIDEy OCkKKy0JcCA6PSBzdHJlcnJvcl9yKGVycm51bSwgYSkKKy0JYiA6PSAoKlsxMDAwXWJ5dGUpKHVu c2FmZS5Qb2ludGVyKHApKQorLQlpIDo9IDAKKy0JZm9yIGJbaV0gIT0gMCB7CistCQlpKysKKy0J fQorLQkvLyBMb3dlcmNhc2UgZmlyc3QgbGV0dGVyOiBCYWQgLT4gYmFkLCBidXQgU1RSRUFNIC0+ IFNUUkVBTS4KKy0JaWYgaSA+IDEgJiYgJ0EnIDw9IGJbMF0gJiYgYlswXSA8PSAnWicgJiYgJ2En IDw9IGJbMV0gJiYgYlsxXSA8PSAneicgeworLQkJYyA6PSBiWzBdICsgJ2EnIC0gJ0EnCistCQly ZXR1cm4gc3RyaW5nKGMpICsgc3RyaW5nKGJbMTppXSkKKy0JfQorLQlyZXR1cm4gc3RyaW5nKGJb OmldKQorLX0KKy0tLSBsaWJnby9nby9zeXNjYWxsL2xpYmNhbGxfbGludXguZ28KKysrKyBsaWJn by9nby9zeXNjYWxsL2xpYmNhbGxfbGludXguZ28KK0BAIC0yMDYsMTkgKzIwNiwxOSBAQCBmdW5j IEdldHRpZCgpICh0aWQgaW50KSB7CisgLy9zeXMJU2V0eGF0dHIocGF0aCBzdHJpbmcsIGF0dHIg c3RyaW5nLCBkYXRhIFtdYnl0ZSwgZmxhZ3MgaW50KSAoZXJyIGVycm9yKQorIC8vc2V0eGF0dHIo cGF0aCAqYnl0ZSwgbmFtZSAqYnl0ZSwgdmFsdWUgKmJ5dGUsIHNpemUgU2l6ZV90LCBmbGFncyBf Q19pbnQpIF9DX2ludAorIAorLS8vc3lzCXNwbGljZShyZmQgaW50LCByb2ZmICpfbG9mZl90LCB3 ZmQgaW50LCB3b2ZmICpfbG9mZl90LCBsZW4gaW50LCBmbGFncyBpbnQpIChuIGludDY0LCBlcnIg ZXJyb3IpCistLy9zcGxpY2UocmZkIF9DX2ludCwgcm9mZiAqX2xvZmZfdCwgd2ZkIF9DX2ludCwg d29mZiAqX2xvZmZfdCwgbGVuIFNpemVfdCwgZmxhZ3MgX0NfdWludCkgU3NpemVfdAorKy8vc3lz CXNwbGljZShyZmQgaW50LCByb2ZmICpfb2ZmX3QsIHdmZCBpbnQsIHdvZmYgKl9vZmZfdCwgbGVu IGludCwgZmxhZ3MgaW50KSAobiBpbnQ2NCwgZXJyIGVycm9yKQorKy8vc3BsaWNlKHJmZCBfQ19p bnQsIHJvZmYgKl9vZmZfdCwgd2ZkIF9DX2ludCwgd29mZiAqX29mZl90LCBsZW4gU2l6ZV90LCBm bGFncyBfQ191aW50KSBTc2l6ZV90CisgZnVuYyBTcGxpY2UocmZkIGludCwgcm9mZiAqaW50NjQs IHdmZCBpbnQsIHdvZmYgKmludDY0LCBsZW4gaW50LCBmbGFncyBpbnQpIChuIGludDY0LCBlcnIg ZXJyb3IpIHsKKy0JdmFyIGxyb2ZmIF9sb2ZmX3QKKy0JdmFyIHBscm9mZiAqX2xvZmZfdAorKwl2 YXIgbHJvZmYgX29mZl90CisrCXZhciBwbHJvZmYgKl9vZmZfdAorIAlpZiByb2ZmICE9IG5pbCB7 CistCQlscm9mZiA9IF9sb2ZmX3QoKnJvZmYpCisrCQlscm9mZiA9IF9vZmZfdCgqcm9mZikKKyAJ CXBscm9mZiA9ICZscm9mZgorIAl9CistCXZhciBsd29mZiBfbG9mZl90CistCXZhciBwbHdvZmYg Kl9sb2ZmX3QKKysJdmFyIGx3b2ZmIF9vZmZfdAorKwl2YXIgcGx3b2ZmICpfb2ZmX3QKKyAJaWYg d29mZiAhPSBuaWwgeworLQkJbHdvZmYgPSBfbG9mZl90KCp3b2ZmKQorKwkJbHdvZmYgPSBfb2Zm X3QoKndvZmYpCisgCQlwbHdvZmYgPSAmbHdvZmYKKyAJfQorIAluLCBlcnIgPSBzcGxpY2UocmZk LCBwbHJvZmYsIHdmZCwgcGx3b2ZmLCBsZW4sIGZsYWdzKQorLS0tIGxpYmdvL21rc2lndGFiLnNo CisrKysgbGliZ28vbWtzaWd0YWIuc2gKK0BAIC04Miw3ICs4Miw3IEBAIGNoZWNrc2lnIF9TSUdQ V1IgICAgICd7X1NpZ05vdGlmeSwgIlNJR1BXUjogcG93ZXIgZmFpbHVyZSByZXN0YXJ0In0nCisg Y2hlY2tzaWcgX1NJR0VNVCAgICAgJ3tfU2lnVGhyb3csICJTSUdFTVQ6IGVtdWxhdGUgaW5zdHJ1 Y3Rpb24gZXhlY3V0ZWQifScKKyBjaGVja3NpZyBfU0lHSU5GTyAgICAne19TaWdOb3RpZnksICJT SUdJTkZPOiBzdGF0dXMgcmVxdWVzdCBmcm9tIGtleWJvYXJkIn0nCisgY2hlY2tzaWcgX1NJR1RI UiAgICAgJ3tfU2lnTm90aWZ5LCAiU0lHVEhSOiByZXNlcnZlZCJ9JworLWNoZWNrc2lnIF9TSUdQ T0xMICAgICd7X1NpZ05vdGlmeSwgIlNJR1BPTEw6IHBvbGxhYmxlIGV2ZW50IG9jY3VycmVkIn0n CisrI2NoZWNrc2lnIF9TSUdQT0xMICAgICd7X1NpZ05vdGlmeSwgIlNJR1BPTEw6IHBvbGxhYmxl IGV2ZW50IG9jY3VycmVkIn0nCisgY2hlY2tzaWcgX1NJR1dBSVRJTkcgJ3tfU2lnTm90aWZ5LCAi U0lHV0FJVElORzogcmVzZXJ2ZWQgc2lnbmFsIG5vIGxvbmdlciB1c2VkIGJ5In0nCisgY2hlY2tz aWcgX1NJR0xXUCAgICAgJ3tfU2lnTm90aWZ5LCAiU0lHTFdQOiByZXNlcnZlZCBzaWduYWwgbm8g bG9uZ2VyIHVzZWQgYnkifScKKyBjaGVja3NpZyBfU0lHRlJFRVpFICAne19TaWdOb3RpZnksICJT SUdGUkVFWkU6IHNwZWNpYWwgc2lnbmFsIHVzZWQgYnkgQ1BSIn0nCitAQCAtOTUsMTAgKzk1LDEy IEBAIGNoZWNrc2lnIF9TSUdMT1NUICcgICB7X1NpZ05vdGlmeSwgIlNJR0xPU1Q6IHJlc291cmNl IGxvc3QgKFN1bik7IHNlcnZlciBkaWVkIChHCisgCisgIyBTcGVjaWFsIGhhbmRsaW5nIG9mIHNp Z25hbHMgMzIgYW5kIDMzIG9uIEdOVS9MaW51eCBzeXN0ZW1zLAorICMgYmVjYXVzZSB0aGV5IGFy ZSBzcGVjaWFsIHRvIGdsaWJjLgorKyMgU2lnbmFsIDM0IGlzIGFkZGl0aW9uYWxseSBzcGVjaWFs IHRvIExpbnV4IHN5c3RlbXMgd2l0aCBtdXNsLgorIGlmIHRlc3QgIiR7R09PU30iID0gImxpbnV4 IjsgdGhlbgorLSAgICBTSUdMSVNUPSRTSUdMSVNUIl8zMl9fMzNfIgorKyAgICBTSUdMSVNUPSRT SUdMSVNUIl8zMl9fMzNfXzM0XyIKKyAgICAgZWNobyAnCTMyOiB7X1NpZ1NldFN0YWNrICsgX1Np Z1VuYmxvY2ssICJzaWduYWwgMzIifSwgLyogU0lHQ0FOQ0VMOyBzZWUgaXNzdWUgNjk5NyAqLycK KyAgICAgZWNobyAnCTMzOiB7X1NpZ1NldFN0YWNrICsgX1NpZ1VuYmxvY2ssICJzaWduYWwgMzMi fSwgLyogU0lHU0VUWElEOyBzZWUgaXNzdWVzIDM4NzEsIDk0MDAsIDEyNDk4ICovJworKyAgICBl Y2hvICcJMzQ6IHtfU2lnU2V0U3RhY2sgKyBfU2lnVW5ibG9jaywgInNpZ25hbCAzNCJ9LCAvKiBz ZWUgaXNzdWUgMzAwNjIgKi8nCisgZmkKKyAKKyBpZiB0ZXN0ICIke0dPT1N9IiA9ICJhaXgiOyB0 aGVuCistLS0gbGliZ28vcnVudGltZS9nby1zaWduYWwuYworKysrIGxpYmdvL3J1bnRpbWUvZ28t c2lnbmFsLmMKK0BAIC0yMjIsNyArMjIyLDExIEBAIGdldFNpZ2luZm8oc2lnaW5mb190ICppbmZv LCB2b2lkICpjb250ZXh0IF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQorICNlbmRpZgorICNpZmRl ZiBfX1BQQ19fCisgICAjaWZkZWYgX19saW51eF9fCistCXJldC5zaWdwYyA9ICgodWNvbnRleHRf dCopKGNvbnRleHQpKS0+dWNfbWNvbnRleHQucmVncy0+bmlwOworKyAgICAjaWZkZWYgX19QUEM2 NF9fCisrCXJldC5zaWdwYyA9ICgodWNvbnRleHRfdCopKGNvbnRleHQpKS0+dWNfbWNvbnRleHQu Z3BfcmVnc1szMl07CisrICAgICNlbHNlCisrCXJldC5zaWdwYyA9ICgodWNvbnRleHRfdCopKGNv bnRleHQpKS0+dWNfbWNvbnRleHQuZ3JlZ3NbMzJdOworKyAgICAjZW5kaWYKKyAgICNlbmRpZgor ICAgI2lmZGVmIF9BSVgKKyAJcmV0LnNpZ3BjID0gKCh1Y29udGV4dF90KikoY29udGV4dCkpLT51 Y19tY29udGV4dC5qbXBfY29udGV4dC5pYXI7CistLS0gbGliZ28vc3lzaW5mby5jCisrKysgbGli Z28vc3lzaW5mby5jCitAQCAtNzMsOSArNzMsNiBAQAorICNpbmNsdWRlIDxzeXMvdGltZXMuaD4K KyAjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyAjaW5jbHVkZSA8c3lzL3VuLmg+CistI2lmIGRlZmlu ZWQoSEFWRV9TWVNfVVNFUl9IKQorLSNpbmNsdWRlIDxzeXMvdXNlci5oPgorLSNlbmRpZgorICNp ZiBkZWZpbmVkKEhBVkVfU1lTX1VUU05BTUVfSCkKKyAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4K KyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvYnVnOTA3NTYucGF0Y2gg Yi9zcmNwa2dzL2djYy9wYXRjaGVzL2J1ZzkwNzU2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBjZjc4ZGFkOWNjZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nY2MvcGF0 Y2hlcy9idWc5MDc1Ni5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLUJ1ZyA5 MDc1NiAtIFs3LzgvOSBSZWdyZXNzaW9uXSBnKysgSUNFIGluIGNvbnZlcnRfbW92ZSwgYXQgZXhw ci5jOjIxOCBvbiBpNjg2IGFuZCBzMzkweCAKLWh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEv c2hvd19idWcuY2dpP2lkPTkwNzU2Ci0KLS0tLSBnY2MvZXhwbG93LmMJMjAxOS8wNy8wNCAwMjoz OTo1OAkyNzMwMzUKLSsrKyBnY2MvZXhwbG93LmMJMjAxOS8wNy8wNCAwNDo0OToyMgkyNzMwMzYK LUBAIC04OTIsMTYgKzg5Miw3IEBACi0gCi0gICB0cmVlIHR5cGUgPSBUUkVFX1RZUEUgKG5hbWUp OwotICAgaW50IHVuc2lnbmVkcCA9IFRZUEVfVU5TSUdORUQgKHR5cGUpOwotLSAgbWFjaGluZV9t b2RlIG1vZGUgPSBUWVBFX01PREUgKHR5cGUpOwotLQotLSAgLyogQnlwYXNzIFRZUEVfTU9ERSB3 aGVuIGl0IG1hcHMgdmVjdG9yIG1vZGVzIHRvIEJMS21vZGUuICAqLwotLSAgaWYgKG1vZGUgPT0g QkxLbW9kZSkKLS0gICAgewotLSAgICAgIGdjY19hc3NlcnQgKFZFQ1RPUl9UWVBFX1AgKHR5cGUp KTsKLS0gICAgICBtb2RlID0gdHlwZS0+dHlwZV9jb21tb24ubW9kZTsKLS0gICAgfQotLQotLSAg bWFjaGluZV9tb2RlIHBtb2RlID0gcHJvbW90ZV9tb2RlICh0eXBlLCBtb2RlLCAmdW5zaWduZWRw KTsKLSsgIG1hY2hpbmVfbW9kZSBwbW9kZSA9IHByb21vdGVfbW9kZSAodHlwZSwgVFlQRV9NT0RF ICh0eXBlKSwgJnVuc2lnbmVkcCk7Ci0gICBpZiAocHVuc2lnbmVkcCkKLSAgICAgKnB1bnNpZ25l ZHAgPSB1bnNpZ25lZHA7Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9wYXRjaGVzL2Rhcm4u cGF0Y2ggYi9zcmNwa2dzL2djYy9wYXRjaGVzL2Rhcm4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk3ZjdkZTNmNDM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9nY2MvcGF0Y2hlcy9kYXJuLnBhdGNoCkBAIC0wLDAgKzEsNTA0IEBACitVcHN0cmVhbTog eWVzCitSZWZlcmVuY2U6IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dp P2lkPTkxNDgxCisKK2h0dHBzOi8vZ2NjLmdudS5vcmcvdmlld2N2cy9nY2M/dmlldz1yZXZpc2lv biZyZXZpc2lvbj0yNzUxNzAKK2h0dHBzOi8vZ2NjLmdudS5vcmcvdmlld2N2cy9nY2M/dmlldz1y ZXZpc2lvbiZyZXZpc2lvbj0yNzUxODEKKworRml4ZXMgYSBzZWN1cml0eSBpc3N1ZSB3aXRoIHRo ZSBoYXJkd2FyZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvcgord2hlbiBjb21waWxpbmcgZm9yIFBP V0VSOS4gU2luY2UgVm9pZCBjb21waWxlcyBmb3IgUE9XRVI4IGJ5CitkZWZhdWx0LCBpdCdzIG5v dCBhZmZlY3RlZCwgYnV0IHBlb3BsZSBidWlsZGluZyBjdXN0b20gYmluYXJpZXMKK21pZ2h0IGJl LgorCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvYWx0aXZlYy5tZAorKysrIGdjYy9jb25maWcvcnM2 MDAwL2FsdGl2ZWMubWQKK0BAIC04MCw5ICs4MCw2IEBACisgICAgVU5TUEVDX1ZVUEtIUFgKKyAg ICBVTlNQRUNfVlVQS0xQWAorICAgIFVOU1BFQ19DT05WRVJUXzRGMzJfOEkxNgorLSAgIFVOU1BF Q19EQVJOCistICAgVU5TUEVDX0RBUk5fMzIKKy0gICBVTlNQRUNfREFSTl9SQVcKKyAgICBVTlNQ RUNfRFNUCisgICAgVU5TUEVDX0RTVFQKKyAgICBVTlNQRUNfRFNUU1QKK0BAIC0xNjEsOSArMTU4 LDYgQEAKKyAgICBVTlNQRUNfQkNEQURECisgICAgVU5TUEVDX0JDRFNVQgorICAgIFVOU1BFQ19C Q0RfT1ZFUkZMT1cKKy0gICBVTlNQRUNfQ01QUkIKKy0gICBVTlNQRUNfQ01QUkIyCistICAgVU5T UEVDX0NNUEVRQgorICAgIFVOU1BFQ19WUkxNSQorICAgIFVOU1BFQ19WUkxOTQorIF0pCitAQCAt NDEwMSwyMjMgKzQwOTUsNiBAQAorICAgImJjZDxiY2RfYWRkX3N1Yj4uICUwLCUxLCUyLCUzIgor ICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3NpbXBsZSIpXSkKKyAKKy0oZGVmaW5lX2luc24gImRh cm5fMzIiCistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXIiKQorLSAgICAgICAgKHVuc3BlYzpTSSBbKGNvbnN0X2ludCAwKV0gVU5TUEVDX0RBUk5fMzIp KV0KKy0gICJUQVJHRVRfUDlfTUlTQyIKKy0gICJkYXJuICUwLDAiCistICBbKHNldF9hdHRyICJ0 eXBlIiAiaW50ZWdlciIpXSkKKy0KKy0oZGVmaW5lX2luc24gImRhcm5fcmF3IgorLSAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKy0gICAgICAgICh1 bnNwZWM6REkgWyhjb25zdF9pbnQgMCldIFVOU1BFQ19EQVJOX1JBVykpXQorLSAgIlRBUkdFVF9Q OV9NSVNDICYmIFRBUkdFVF82NEJJVCIKKy0gICJkYXJuICUwLDIiCistICBbKHNldF9hdHRyICJ0 eXBlIiAiaW50ZWdlciIpXSkKKy0KKy0oZGVmaW5lX2luc24gImRhcm4iCistICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorLSAgICAgICAgKHVuc3Bl YzpESSBbKGNvbnN0X2ludCAwKV0gVU5TUEVDX0RBUk4pKV0KKy0gICJUQVJHRVRfUDlfTUlTQyAm JiBUQVJHRVRfNjRCSVQiCistICAiZGFybiAlMCwxIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgImlu dGVnZXIiKV0pCistCistOzsgVGVzdCBieXRlIHdpdGhpbiByYW5nZS4KKy07OworLTs7IFRoZSBi eXRlcyBvZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDp4eDp2diwgd2hlcmUgeHgK Ky07OyByZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoaXMgY29u dGV4dCBhbmQKKy07OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUsIGhvbGRzIHRoZSBi eXRlIHZhbHVlIHRoYXQgaXMgdG8KKy07OyBiZSB0ZXN0ZWQgZm9yIG1lbWJlcnNoaXAgd2l0aGlu IHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorLTs7IFRoZSBieXRlcyBvZiBvcGVy YW5kIDIgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDpoaTpsby4KKy07OworLTs7IFJldHVybiBpbiB0 YXJnZXQgcmVnaXN0ZXIgb3BlcmFuZCAwIGEgdmFsdWUgb2YgMSBpZiBsbyA8PSB2diBhbmQKKy07 OyB2diA8PSBoaS4gIE90aGVyd2lzZSwgc2V0IHJlZ2lzdGVyIG9wZXJhbmQgMCB0byAwLgorLTs7 CistOzsgVGhvdWdoIHRoZSBpbnN0cnVjdGlvbnMgdG8gd2hpY2ggdGhpcyBleHBhbnNpb24gbWFw cyBvcGVyYXRlIG9uCistOzsgNjQtYml0IHJlZ2lzdGVycywgdGhlIGN1cnJlbnQgaW1wbGVtZW50 YXRpb24gb25seSBvcGVyYXRlcyBvbgorLTs7IFNJLW1vZGUgb3BlcmFuZHMgYXMgdGhlIGhpZ2gt b3JkZXIgYml0cyBwcm92aWRlIG5vIGluZm9ybWF0aW9uCistOzsgdGhhdCBpcyBub3QgYWxyZWFk eSBhdmFpbGFibGUgaW4gdGhlIGxvdy1vcmRlciBiaXRzLiAgVG8gYXZvaWQgdGhlCistOzsgY29z dHMgb2YgZGF0YSB3aWRlbmluZyBvcGVyYXRpb25zLCBmdXR1cmUgZW5oYW5jZW1lbnRzIG1pZ2h0 IGFsbG93CistOzsgREkgbW9kZSBmb3Igb3BlcmFuZCAwIGFuZC9vciBtaWdodCBhbGxvdyBvcGVy YW5kIDEgdG8gYmUgUUkgbW9kZS4KKy0oZGVmaW5lX2V4cGFuZCAiY21wcmIiCistICBbKHNldCAo bWF0Y2hfZHVwIDMpCistCSh1bnNwZWM6Q0MgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImdwY19yZWdf b3BlcmFuZCIgInIiKQorLQkJICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImdwY19yZWdfb3BlcmFu ZCIgInIiKV0KKy0JIFVOU1BFQ19DTVBSQikpCistICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAw ICJncGNfcmVnX29wZXJhbmQiICI9ciIpCistCShpZl90aGVuX2Vsc2U6U0kgKGx0IChtYXRjaF9k dXAgMykKKy0JCQkgICAgIChjb25zdF9pbnQgMCkpCistCQkJIChjb25zdF9pbnQgLTEpCistCQkJ IChpZl90aGVuX2Vsc2UgKGd0IChtYXRjaF9kdXAgMykKKy0JCQkJCSAgIChjb25zdF9pbnQgMCkp CistCQkJCSAgICAgICAoY29uc3RfaW50IDEpCistCQkJCSAgICAgICAoY29uc3RfaW50IDApKSkp XQorLSAgIlRBUkdFVF9QOV9NSVNDIgorLXsKKy0gIG9wZXJhbmRzWzNdID0gZ2VuX3JlZ19ydHgg KENDbW9kZSk7CistfSkKKy0KKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAxIGFyZSBvcmdhbml6 ZWQgYXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CistOzsgcmVwcmVzZW50cyBhIGJ5dGUgd2hvc2Ug dmFsdWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5kCistOzsgdnYsIHRoZSBsZWFzdCBz aWduaWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1ZSB0aGF0IGlzIHRvCistOzsgYmUg dGVzdGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgcmFuZ2Ugc3BlY2lmaWVkIGJ5IG9wZXJh bmQgMi4KKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAyIGFyZSBvcmdhbml6ZWQgYXMgeHg6eHg6 aGk6bG8uCistOzsKKy07OyBTZXQgYml0IDEgKHRoZSBHVCBiaXQsIDB4NCkgb2YgQ1IgcmVnaXN0 ZXIgb3BlcmFuZCAwIHRvIDEgaWYKKy07OyBsbyA8PSB2diBhbmQgdnYgPD0gaGkuICBPdGhlcndp c2UsIHNldCB0aGUgR1QgYml0IHRvIDAuICBUaGUgb3RoZXIKKy07OyAzIGJpdHMgb2YgdGhlIHRh cmdldCBDUiByZWdpc3RlciBhcmUgYWxsIHNldCB0byAwLgorLShkZWZpbmVfaW5zbiAiKmNtcHJi X2ludGVybmFsIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Q0MgMCAiY2NfcmVnX29wZXJhbmQi ICI9eSIpCistCSh1bnNwZWM6Q0MgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImdwY19yZWdfb3BlcmFu ZCIgInIiKQorLQkJICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImdwY19yZWdfb3BlcmFuZCIgInIi KV0KKy0JIFVOU1BFQ19DTVBSQikpXQorLSAgIlRBUkdFVF9QOV9NSVNDIgorLSAgImNtcHJiICUw LDAsJTEsJTIiCistICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNhbCIpXSkKKy0KKy07OyBTZXQg b3BlcmFuZCAwIHJlZ2lzdGVyIHRvIC0xIGlmIHRoZSBMVCBiaXQgKDB4OCkgb2YgY29uZGl0aW9u CistOzsgcmVnaXN0ZXIgb3BlcmFuZCAxIGlzIG9uLiAgT3RoZXJ3aXNlLCBzZXQgb3BlcmFuZCAw IHJlZ2lzdGVyIHRvIDEKKy07OyBpZiB0aGUgR1QgYml0ICgweDQpIG9mIGNvbmRpdGlvbiByZWdp c3RlciBvcGVyYW5kIDEgaXMgb24uCistOzsgT3RoZXJ3aXNlLCBzZXQgb3BlcmFuZCAwIHRvIDAu ICBOb3RlIHRoYXQgdGhlIHJlc3VsdCBzdG9yZWQgaW50bworLTs7IHJlZ2lzdGVyIG9wZXJhbmQg MCBpcyBub24temVybyBpZmYgZWl0aGVyIHRoZSBMVCBvciBHVCBiaXRzIGFyZSBvbgorLTs7IHdp dGhpbiBjb25kaXRpb24gcmVnaXN0ZXIgb3BlcmFuZCAxLgorLShkZWZpbmVfaW5zbiAic2V0Yl9z aWduZWQiCistICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ3BjX3JlZ19vcGVyYW5kIiAi PXIiKQorLQkgKGlmX3RoZW5fZWxzZTpTSSAobHQgKG1hdGNoX29wZXJhbmQ6Q0MgMSAiY2NfcmVn X29wZXJhbmQiICJ5IikKKy0JCQkgICAgICAoY29uc3RfaW50IDApKQorLQkJCSAgKGNvbnN0X2lu dCAtMSkKKy0JCQkgIChpZl90aGVuX2Vsc2UgKGd0IChtYXRjaF9kdXAgMSkKKy0JCQkJCSAgICAo Y29uc3RfaW50IDApKQorLQkJCQkJKGNvbnN0X2ludCAxKQorLQkJCQkJKGNvbnN0X2ludCAwKSkp KV0KKy0gICJUQVJHRVRfUDlfTUlTQyIKKy0gICJzZXRiICUwLCUxIgorLSAgWyhzZXRfYXR0ciAi dHlwZSIgImxvZ2ljYWwiKV0pCistCistKGRlZmluZV9pbnNuICJzZXRiX3Vuc2lnbmVkIgorLSAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19yZWdfb3BlcmFuZCIgIj1yIikKKy0JIChp Zl90aGVuX2Vsc2U6U0kgKGx0dSAobWF0Y2hfb3BlcmFuZDpDQ1VOUyAxICJjY19yZWdfb3BlcmFu ZCIgInkiKQorLQkJCSAgICAgIChjb25zdF9pbnQgMCkpCistCQkJICAoY29uc3RfaW50IC0xKQor LQkJCSAgKGlmX3RoZW5fZWxzZSAoZ3R1IChtYXRjaF9kdXAgMSkKKy0JCQkJCSAgICAoY29uc3Rf aW50IDApKQorLQkJCQkJKGNvbnN0X2ludCAxKQorLQkJCQkJKGNvbnN0X2ludCAwKSkpKV0KKy0g ICJUQVJHRVRfUDlfTUlTQyIKKy0gICJzZXRiICUwLCUxIgorLSAgWyhzZXRfYXR0ciAidHlwZSIg ImxvZ2ljYWwiKV0pCistCistOzsgVGVzdCBieXRlIHdpdGhpbiB0d28gcmFuZ2VzLgorLTs7Cist OzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUgb3JnYW5pemVkIGFzIHh4Onh4Onh4OnZ2LCB3 aGVyZSB4eAorLTs7IHJlcHJlc2VudHMgYSBieXRlIHdob3NlIHZhbHVlIGlzIGlnbm9yZWQgaW4g dGhpcyBjb250ZXh0IGFuZAorLTs7IHZ2LCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSwgaG9s ZHMgdGhlIGJ5dGUgdmFsdWUgdGhhdCBpcyB0bworLTs7IGJlIHRlc3RlZCBmb3IgbWVtYmVyc2hp cCB3aXRoaW4gdGhlIHJhbmdlIHNwZWNpZmllZCBieSBvcGVyYW5kIDIuCistOzsgVGhlIGJ5dGVz IG9mIG9wZXJhbmQgMiBhcmUgb3JnYW5pemVkIGFzIGhpXzE6bG9fMTpoaV8yOmxvXzIuCistOzsK Ky07OyBSZXR1cm4gaW4gdGFyZ2V0IHJlZ2lzdGVyIG9wZXJhbmQgMCBhIHZhbHVlIG9mIDEgaWYg KGxvXzEgPD0gdnYgYW5kCistOzsgdnYgPD0gaGlfMSkgb3IgaWYgKGxvXzIgPD0gdnYgYW5kIHZ2 IDw9IGhpXzIpLiAgT3RoZXJ3aXNlLCBzZXQgcmVnaXN0ZXIKKy07OyBvcGVyYW5kIDAgdG8gMC4K Ky07OworLTs7IFRob3VnaCB0aGUgaW5zdHJ1Y3Rpb25zIHRvIHdoaWNoIHRoaXMgZXhwYW5zaW9u IG1hcHMgb3BlcmF0ZSBvbgorLTs7IDY0LWJpdCByZWdpc3RlcnMsIHRoZSBjdXJyZW50IGltcGxl bWVudGF0aW9uIG9ubHkgb3BlcmF0ZXMgb24KKy07OyBTSS1tb2RlIG9wZXJhbmRzIGFzIHRoZSBo aWdoLW9yZGVyIGJpdHMgcHJvdmlkZSBubyBpbmZvcm1hdGlvbgorLTs7IHRoYXQgaXMgbm90IGFs cmVhZHkgYXZhaWxhYmxlIGluIHRoZSBsb3ctb3JkZXIgYml0cy4gIFRvIGF2b2lkIHRoZQorLTs7 IGNvc3RzIG9mIGRhdGEgd2lkZW5pbmcgb3BlcmF0aW9ucywgZnV0dXJlIGVuaGFuY2VtZW50cyBt aWdodCBhbGxvdworLTs7IERJIG1vZGUgZm9yIG9wZXJhbmQgMCBhbmQvb3IgbWlnaHQgYWxsb3cg b3BlcmFuZCAxIHRvIGJlIFFJIG1vZGUuCistKGRlZmluZV9leHBhbmQgImNtcHJiMiIKKy0gIFso c2V0IChtYXRjaF9kdXAgMykKKy0JKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3Bj X3JlZ19vcGVyYW5kIiAiciIpCistCQkgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiZ3BjX3JlZ19v cGVyYW5kIiAiciIpXQorLQkgVU5TUEVDX0NNUFJCMikpCistICAgKHNldCAobWF0Y2hfb3BlcmFu ZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9ciIpCistCShpZl90aGVuX2Vsc2U6U0kgKGx0ICht YXRjaF9kdXAgMykKKy0JCQkgICAgIChjb25zdF9pbnQgMCkpCistCQkJIChjb25zdF9pbnQgLTEp CistCQkJIChpZl90aGVuX2Vsc2UgKGd0IChtYXRjaF9kdXAgMykKKy0JCQkJCSAgIChjb25zdF9p bnQgMCkpCistCQkJCSAgICAgICAoY29uc3RfaW50IDEpCistCQkJCSAgICAgICAoY29uc3RfaW50 IDApKSkpXQorLSAgIlRBUkdFVF9QOV9NSVNDIgorLXsKKy0gIG9wZXJhbmRzWzNdID0gZ2VuX3Jl Z19ydHggKENDbW9kZSk7CistfSkKKy0KKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAxIGFyZSBv cmdhbml6ZWQgYXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CistOzsgcmVwcmVzZW50cyBhIGJ5dGUg d2hvc2UgdmFsdWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5kCistOzsgdnYsIHRoZSBs ZWFzdCBzaWduaWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1ZSB0aGF0IGlzIHRvCist OzsgYmUgdGVzdGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgcmFuZ2VzIHNwZWNpZmllZCBi eSBvcGVyYW5kIDIuCistOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUgb3JnYW5pemVkIGFz IGhpXzE6bG9fMTpoaV8yOmxvXzIuCistOzsKKy07OyBTZXQgYml0IDEgKHRoZSBHVCBiaXQsIDB4 NCkgb2YgQ1IgcmVnaXN0ZXIgb3BlcmFuZCAwIHRvIDEgaWYKKy07OyAobG9fMSA8PSB2diBhbmQg dnYgPD0gaGlfMSkgb3IgaWYgKGxvXzIgPD0gdnYgYW5kIHZ2IDw9IGhpXzIpLgorLTs7IE90aGVy d2lzZSwgc2V0IHRoZSBHVCBiaXQgdG8gMC4gIFRoZSBvdGhlciAzIGJpdHMgb2YgdGhlIHRhcmdl dAorLTs7IENSIHJlZ2lzdGVyIGFyZSBhbGwgc2V0IHRvIDAuCistKGRlZmluZV9pbnNuICIqY21w cmIyX2ludGVybmFsIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Q0MgMCAiY2NfcmVnX29wZXJh bmQiICI9eSIpCistCSh1bnNwZWM6Q0MgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImdwY19yZWdfb3Bl cmFuZCIgInIiKQorLQkJICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImdwY19yZWdfb3BlcmFuZCIg InIiKV0KKy0JIFVOU1BFQ19DTVBSQjIpKV0KKy0gICJUQVJHRVRfUDlfTUlTQyIKKy0gICJjbXBy YiAlMCwxLCUxLCUyIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgImxvZ2ljYWwiKV0pCistCistOzsg VGVzdCBieXRlIG1lbWJlcnNoaXAgd2l0aGluIHNldCBvZiA4IGJ5dGVzLgorLTs7CistOzsgVGhl IGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUgb3JnYW5pemVkIGFzIHh4Onh4Onh4OnZ2LCB3aGVyZSB4 eAorLTs7IHJlcHJlc2VudHMgYSBieXRlIHdob3NlIHZhbHVlIGlzIGlnbm9yZWQgaW4gdGhpcyBj b250ZXh0IGFuZAorLTs7IHZ2LCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSwgaG9sZHMgdGhl IGJ5dGUgdmFsdWUgdGhhdCBpcyB0bworLTs7IGJlIHRlc3RlZCBmb3IgbWVtYmVyc2hpcCB3aXRo aW4gdGhlIHNldCBzcGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorLTs7IFRoZSBieXRlcyBvZiBvcGVy YW5kIDIgYXJlIG9yZ2FuaXplZCBhcyBlMDplMTplMjplMzplNDplNTplNjplNy4KKy07OworLTs7 IFJldHVybiBpbiB0YXJnZXQgcmVnaXN0ZXIgb3BlcmFuZCAwIGEgdmFsdWUgb2YgMSBpZiB2diBl cXVhbHMgb25lCistOzsgb2YgdGhlIHZhbHVlcyBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwg b3IgZTcuICBPdGhlcndpc2UsIHNldAorLTs7IHJlZ2lzdGVyIG9wZXJhbmQgMCB0byAwLiAgTm90 ZSB0aGF0IHRoZSA4IGJ5dGUgdmFsdWVzIGhlbGQgd2l0aGluCistOzsgb3BlcmFuZCAyIG5lZWQg bm90IGJlIHVuaXF1ZS4KKy07OworLTs7IFRob3VnaCB0aGUgaW5zdHJ1Y3Rpb25zIHRvIHdoaWNo IHRoaXMgZXhwYW5zaW9uIG1hcHMgb3BlcmF0ZSBvbgorLTs7IDY0LWJpdCByZWdpc3RlcnMsIHRo ZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIHRoYXQgb3BlcmFuZHMKKy07OyAwIGFu ZCAxIGhhdmUgbW9kZSBTSSBhcyB0aGUgaGlnaC1vcmRlciBiaXRzIHByb3ZpZGUgbm8gaW5mb3Jt YXRpb24KKy07OyB0aGF0IGlzIG5vdCBhbHJlYWR5IGF2YWlsYWJsZSBpbiB0aGUgbG93LW9yZGVy IGJpdHMuICBUbyBhdm9pZCB0aGUKKy07OyBjb3N0cyBvZiBkYXRhIHdpZGVuaW5nIG9wZXJhdGlv bnMsIGZ1dHVyZSBlbmhhbmNlbWVudHMgbWlnaHQgYWxsb3cKKy07OyBESSBtb2RlIGZvciBvcGVy YW5kIDAgYW5kL29yIG1pZ2h0IGFsbG93IG9wZXJhbmQgMSB0byBiZSBRSSBtb2RlLgorLShkZWZp bmVfZXhwYW5kICJjbXBlcWIiCistICBbKHNldCAobWF0Y2hfZHVwIDMpCistCSh1bnNwZWM6Q0Mg WyhtYXRjaF9vcGVyYW5kOlNJIDEgImdwY19yZWdfb3BlcmFuZCIgInIiKQorLQkJICAgIChtYXRj aF9vcGVyYW5kOkRJIDIgImdwY19yZWdfb3BlcmFuZCIgInIiKV0KKy0JIFVOU1BFQ19DTVBFUUIp KQorLSAgIChzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPXIiKQor LQkoaWZfdGhlbl9lbHNlOlNJIChsdCAobWF0Y2hfZHVwIDMpCistCQkJICAgICAoY29uc3RfaW50 IDApKQorLQkJCSAoY29uc3RfaW50IC0xKQorLQkJCSAoaWZfdGhlbl9lbHNlIChndCAobWF0Y2hf ZHVwIDMpCistCQkJCQkgICAoY29uc3RfaW50IDApKQorLQkJCQkgICAgICAgKGNvbnN0X2ludCAx KQorLQkJCQkgICAgICAgKGNvbnN0X2ludCAwKSkpKV0KKy0gICJUQVJHRVRfUDlfTUlTQyAmJiBU QVJHRVRfNjRCSVQiCisteworLSAgb3BlcmFuZHNbM10gPSBnZW5fcmVnX3J0eCAoQ0Ntb2RlKTsK Ky19KQorLQorLTs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4 eDp4eDp2diwgd2hlcmUgeHgKKy07OyByZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBp Z25vcmVkIGluIHRoaXMgY29udGV4dCBhbmQKKy07OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50 IGJ5dGUsIGhvbGRzIHRoZSBieXRlIHZhbHVlIHRoYXQgaXMgdG8KKy07OyBiZSB0ZXN0ZWQgZm9y IG1lbWJlcnNoaXAgd2l0aGluIHRoZSBzZXQgc3BlY2lmaWVkIGJ5IG9wZXJhbmQgMi4KKy07OyBU aGUgYnl0ZXMgb2Ygb3BlcmFuZCAyIGFyZSBvcmdhbml6ZWQgYXMgZTA6ZTE6ZTI6ZTM6ZTQ6ZTU6 ZTY6ZTcuCistOzsKKy07OyBTZXQgYml0IDEgKHRoZSBHVCBiaXQsIDB4NCkgb2YgQ1IgcmVnaXN0 ZXIgb3BlcmFuZCAwIHRvIDEgaWYgdnYKKy07OyBlcXVhbHMgb25lIG9mIHRoZSB2YWx1ZXMgZTAs IGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIG9yIGU3LiAgT3RoZXJ3aXNlLAorLTs7IHNldCB0aGUg R1QgYml0IHRvIHplcm8uICBUaGUgb3RoZXIgMyBiaXRzIG9mIHRoZSB0YXJnZXQgQ1IgcmVnaXN0 ZXIKKy07OyBhcmUgYWxsIHNldCB0byAwLgorLShkZWZpbmVfaW5zbiAiKmNtcGVxYl9pbnRlcm5h bCIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkNDIDAgImNjX3JlZ19vcGVyYW5kIiAiPXkiKQor LQkgKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIp CistCQkgICAgIChtYXRjaF9vcGVyYW5kOkRJIDIgImdwY19yZWdfb3BlcmFuZCIgInIiKV0KKy0J ICBVTlNQRUNfQ01QRVFCKSldCistICAiVEFSR0VUX1A5X01JU0MgJiYgVEFSR0VUXzY0QklUIgor LSAgImNtcGVxYiAlMCwlMSwlMiIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJsb2dpY2FsIildKQor LQorIChkZWZpbmVfZXhwYW5kICJiY2Q8YmNkX2FkZF9zdWI+Xzxjb2RlPiIKKyAgIFsocGFyYWxs ZWwgWyhzZXQgKHJlZzpDQ0ZQIENSNl9SRUdOTykKKyAJCSAgIChjb21wYXJlOkNDRlAKKy0tLSBn Y2MvY29uZmlnL3JzNjAwMC9yczYwMDAubWQKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAu bWQKK0BAIC0xMzcsNiArMTM3LDkgQEAKKyAgICBVTlNQRUNfTFNRCisgICAgVU5TUEVDX0ZVU0lP Tl9HUFIKKyAgICBVTlNQRUNfU1RBQ0tfQ0hFQ0sKKysgICBVTlNQRUNfQ01QUkIKKysgICBVTlNQ RUNfQ01QUkIyCisrICAgVU5TUEVDX0NNUEVRQgorICAgIFVOU1BFQ19BRERfUk9VTkRfVE9fT0RE CisgICAgVU5TUEVDX1NVQl9ST1VORF9UT19PREQKKyAgICBVTlNQRUNfTVVMX1JPVU5EX1RPX09E RAorQEAgLTE2NCw2ICsxNjcsOSBAQAorICAgIFVOU1BFQ1ZfRUhfUlIJCTsgZWhfcmVnX3Jlc3Rv cmUKKyAgICBVTlNQRUNWX0lTWU5DCQk7IGlzeW5jIGluc3RydWN0aW9uCisgICAgVU5TUEVDVl9N RlRCCQkJOyBtb3ZlIGZyb20gdGltZSBiYXNlCisrICAgVU5TUEVDVl9EQVJOCQkJOyBkYXJuIDEg KGRlbGl2ZXIgYSByYW5kb20gbnVtYmVyKQorKyAgIFVOU1BFQ1ZfREFSTl8zMgkJOyBkYXJuIDIK KysgICBVTlNQRUNWX0RBUk5fUkFXCQk7IGRhcm4gMAorICAgIFVOU1BFQ1ZfTkxHUgkJCTsgbm9u LWxvY2FsIGdvdG8gcmVjZWl2ZXIKKyAgICBVTlNQRUNWX01GRlMJCQk7IE1vdmUgZnJvbSBGUFND UgorICAgIFVOU1BFQ1ZfTUZGU0wJCTsgTW92ZSBmcm9tIEZQU0NSIGxpZ2h0IGluc3RydWN0aW9u IHZlcnNpb24KK0BAIC0xMzg1Myw2ICsxMzg1OSwyMjQgQEAKKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJ2ZWNtb3ZlIikKKyAgICAoc2V0X2F0dHIgInNpemUiICIxMjgiKV0pCisgCisrOzsgTWlzY2Vs bGFuZW91cyBJU0EgMy4wIChwb3dlcjkpIGluc3RydWN0aW9ucworKworKyhkZWZpbmVfaW5zbiAi ZGFybl8zMiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9ciIpCisrICAgICAgICAodW5zcGVjX3ZvbGF0aWxlOlNJIFsoY29uc3RfaW50IDApXSBVTlNQ RUNWX0RBUk5fMzIpKV0KKysgICJUQVJHRVRfUDlfTUlTQyIKKysgICJkYXJuICUwLDAiCisrICBb KHNldF9hdHRyICJ0eXBlIiAiaW50ZWdlciIpXSkKKysKKysoZGVmaW5lX2luc24gImRhcm5fcmF3 IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikK KysgICAgICAgICh1bnNwZWNfdm9sYXRpbGU6REkgWyhjb25zdF9pbnQgMCldIFVOU1BFQ1ZfREFS Tl9SQVcpKV0KKysgICJUQVJHRVRfUDlfTUlTQyAmJiBUQVJHRVRfNjRCSVQiCisrICAiZGFybiAl MCwyIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImludGVnZXIiKV0pCisrCisrKGRlZmluZV9pbnNu ICJkYXJuIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yIikKKysgICAgICAgICh1bnNwZWNfdm9sYXRpbGU6REkgWyhjb25zdF9pbnQgMCldIFVOU1BF Q1ZfREFSTikpXQorKyAgIlRBUkdFVF9QOV9NSVNDICYmIFRBUkdFVF82NEJJVCIKKysgICJkYXJu ICUwLDEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiaW50ZWdlciIpXSkKKysKKys7OyBUZXN0IGJ5 dGUgd2l0aGluIHJhbmdlLgorKzs7CisrOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUgb3Jn YW5pemVkIGFzIHh4Onh4Onh4OnZ2LCB3aGVyZSB4eAorKzs7IHJlcHJlc2VudHMgYSBieXRlIHdo b3NlIHZhbHVlIGlzIGlnbm9yZWQgaW4gdGhpcyBjb250ZXh0IGFuZAorKzs7IHZ2LCB0aGUgbGVh c3Qgc2lnbmlmaWNhbnQgYnl0ZSwgaG9sZHMgdGhlIGJ5dGUgdmFsdWUgdGhhdCBpcyB0bworKzs7 IGJlIHRlc3RlZCBmb3IgbWVtYmVyc2hpcCB3aXRoaW4gdGhlIHJhbmdlIHNwZWNpZmllZCBieSBv cGVyYW5kIDIuCisrOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUgb3JnYW5pemVkIGFzIHh4 Onh4OmhpOmxvLgorKzs7CisrOzsgUmV0dXJuIGluIHRhcmdldCByZWdpc3RlciBvcGVyYW5kIDAg YSB2YWx1ZSBvZiAxIGlmIGxvIDw9IHZ2IGFuZAorKzs7IHZ2IDw9IGhpLiAgT3RoZXJ3aXNlLCBz ZXQgcmVnaXN0ZXIgb3BlcmFuZCAwIHRvIDAuCisrOzsKKys7OyBUaG91Z2ggdGhlIGluc3RydWN0 aW9ucyB0byB3aGljaCB0aGlzIGV4cGFuc2lvbiBtYXBzIG9wZXJhdGUgb24KKys7OyA2NC1iaXQg cmVnaXN0ZXJzLCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvbmx5IG9wZXJhdGVzIG9uCisr OzsgU0ktbW9kZSBvcGVyYW5kcyBhcyB0aGUgaGlnaC1vcmRlciBiaXRzIHByb3ZpZGUgbm8gaW5m b3JtYXRpb24KKys7OyB0aGF0IGlzIG5vdCBhbHJlYWR5IGF2YWlsYWJsZSBpbiB0aGUgbG93LW9y ZGVyIGJpdHMuICBUbyBhdm9pZCB0aGUKKys7OyBjb3N0cyBvZiBkYXRhIHdpZGVuaW5nIG9wZXJh dGlvbnMsIGZ1dHVyZSBlbmhhbmNlbWVudHMgbWlnaHQgYWxsb3cKKys7OyBESSBtb2RlIGZvciBv cGVyYW5kIDAgYW5kL29yIG1pZ2h0IGFsbG93IG9wZXJhbmQgMSB0byBiZSBRSSBtb2RlLgorKyhk ZWZpbmVfZXhwYW5kICJjbXByYiIKKysgIFsoc2V0IChtYXRjaF9kdXAgMykKKysJKHVuc3BlYzpD QyBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCisrCQkgICAgKG1h dGNoX29wZXJhbmQ6U0kgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorKwkgVU5TUEVDX0NNUFJC KSkKKysgICAoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19yZWdfb3BlcmFuZCIgIj1yIikK KysJKGlmX3RoZW5fZWxzZTpTSSAobHQgKG1hdGNoX2R1cCAzKQorKwkJCSAgICAgKGNvbnN0X2lu dCAwKSkKKysJCQkgKGNvbnN0X2ludCAtMSkKKysJCQkgKGlmX3RoZW5fZWxzZSAoZ3QgKG1hdGNo X2R1cCAzKQorKwkJCQkJICAgKGNvbnN0X2ludCAwKSkKKysJCQkJICAgICAgIChjb25zdF9pbnQg MSkKKysJCQkJICAgICAgIChjb25zdF9pbnQgMCkpKSldCisrICAiVEFSR0VUX1A5X01JU0MiCisr eworKyAgb3BlcmFuZHNbM10gPSBnZW5fcmVnX3J0eCAoQ0Ntb2RlKTsKKyt9KQorKworKzs7IFRo ZSBieXRlcyBvZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDp4eDp2diwgd2hlcmUg eHgKKys7OyByZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoaXMg Y29udGV4dCBhbmQKKys7OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUsIGhvbGRzIHRo ZSBieXRlIHZhbHVlIHRoYXQgaXMgdG8KKys7OyBiZSB0ZXN0ZWQgZm9yIG1lbWJlcnNoaXAgd2l0 aGluIHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorKzs7IFRoZSBieXRlcyBvZiBv cGVyYW5kIDIgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDpoaTpsby4KKys7OworKzs7IFNldCBiaXQg MSAodGhlIEdUIGJpdCwgMHg0KSBvZiBDUiByZWdpc3RlciBvcGVyYW5kIDAgdG8gMSBpZgorKzs7 IGxvIDw9IHZ2IGFuZCB2diA8PSBoaS4gIE90aGVyd2lzZSwgc2V0IHRoZSBHVCBiaXQgdG8gMC4g IFRoZSBvdGhlcgorKzs7IDMgYml0cyBvZiB0aGUgdGFyZ2V0IENSIHJlZ2lzdGVyIGFyZSBhbGwg c2V0IHRvIDAuCisrKGRlZmluZV9pbnNuICIqY21wcmJfaW50ZXJuYWwiCisrICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpDQyAwICJjY19yZWdfb3BlcmFuZCIgIj15IikKKysJKHVuc3BlYzpDQyBbKG1h dGNoX29wZXJhbmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCisrCQkgICAgKG1hdGNoX29w ZXJhbmQ6U0kgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorKwkgVU5TUEVDX0NNUFJCKSldCisr ICAiVEFSR0VUX1A5X01JU0MiCisrICAiY21wcmIgJTAsMCwlMSwlMiIKKysgIFsoc2V0X2F0dHIg InR5cGUiICJsb2dpY2FsIildKQorKworKzs7IFNldCBvcGVyYW5kIDAgcmVnaXN0ZXIgdG8gLTEg aWYgdGhlIExUIGJpdCAoMHg4KSBvZiBjb25kaXRpb24KKys7OyByZWdpc3RlciBvcGVyYW5kIDEg aXMgb24uICBPdGhlcndpc2UsIHNldCBvcGVyYW5kIDAgcmVnaXN0ZXIgdG8gMQorKzs7IGlmIHRo ZSBHVCBiaXQgKDB4NCkgb2YgY29uZGl0aW9uIHJlZ2lzdGVyIG9wZXJhbmQgMSBpcyBvbi4KKys7 OyBPdGhlcndpc2UsIHNldCBvcGVyYW5kIDAgdG8gMC4gIE5vdGUgdGhhdCB0aGUgcmVzdWx0IHN0 b3JlZCBpbnRvCisrOzsgcmVnaXN0ZXIgb3BlcmFuZCAwIGlzIG5vbi16ZXJvIGlmZiBlaXRoZXIg dGhlIExUIG9yIEdUIGJpdHMgYXJlIG9uCisrOzsgd2l0aGluIGNvbmRpdGlvbiByZWdpc3RlciBv cGVyYW5kIDEuCisrKGRlZmluZV9pbnNuICJzZXRiX3NpZ25lZCIKKysgICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9ciIpCisrCSAoaWZfdGhlbl9lbHNlOlNJ IChsdCAobWF0Y2hfb3BlcmFuZDpDQyAxICJjY19yZWdfb3BlcmFuZCIgInkiKQorKwkJCSAgICAg IChjb25zdF9pbnQgMCkpCisrCQkJICAoY29uc3RfaW50IC0xKQorKwkJCSAgKGlmX3RoZW5fZWxz ZSAoZ3QgKG1hdGNoX2R1cCAxKQorKwkJCQkJICAgIChjb25zdF9pbnQgMCkpCisrCQkJCQkoY29u c3RfaW50IDEpCisrCQkJCQkoY29uc3RfaW50IDApKSkpXQorKyAgIlRBUkdFVF9QOV9NSVNDIgor KyAgInNldGIgJTAsJTEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNhbCIpXSkKKysKKyso ZGVmaW5lX2luc24gInNldGJfdW5zaWduZWQiCisrICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kg MCAiZ3BjX3JlZ19vcGVyYW5kIiAiPXIiKQorKwkgKGlmX3RoZW5fZWxzZTpTSSAobHR1IChtYXRj aF9vcGVyYW5kOkNDVU5TIDEgImNjX3JlZ19vcGVyYW5kIiAieSIpCisrCQkJICAgICAgKGNvbnN0 X2ludCAwKSkKKysJCQkgIChjb25zdF9pbnQgLTEpCisrCQkJICAoaWZfdGhlbl9lbHNlIChndHUg KG1hdGNoX2R1cCAxKQorKwkJCQkJICAgIChjb25zdF9pbnQgMCkpCisrCQkJCQkoY29uc3RfaW50 IDEpCisrCQkJCQkoY29uc3RfaW50IDApKSkpXQorKyAgIlRBUkdFVF9QOV9NSVNDIgorKyAgInNl dGIgJTAsJTEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNhbCIpXSkKKysKKys7OyBUZXN0 IGJ5dGUgd2l0aGluIHR3byByYW5nZXMuCisrOzsKKys7OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAx IGFyZSBvcmdhbml6ZWQgYXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CisrOzsgcmVwcmVzZW50cyBh IGJ5dGUgd2hvc2UgdmFsdWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5kCisrOzsgdnYs IHRoZSBsZWFzdCBzaWduaWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1ZSB0aGF0IGlz IHRvCisrOzsgYmUgdGVzdGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgcmFuZ2Ugc3BlY2lm aWVkIGJ5IG9wZXJhbmQgMi4KKys7OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAyIGFyZSBvcmdhbml6 ZWQgYXMgaGlfMTpsb18xOmhpXzI6bG9fMi4KKys7OworKzs7IFJldHVybiBpbiB0YXJnZXQgcmVn aXN0ZXIgb3BlcmFuZCAwIGEgdmFsdWUgb2YgMSBpZiAobG9fMSA8PSB2diBhbmQKKys7OyB2diA8 PSBoaV8xKSBvciBpZiAobG9fMiA8PSB2diBhbmQgdnYgPD0gaGlfMikuICBPdGhlcndpc2UsIHNl dCByZWdpc3RlcgorKzs7IG9wZXJhbmQgMCB0byAwLgorKzs7CisrOzsgVGhvdWdoIHRoZSBpbnN0 cnVjdGlvbnMgdG8gd2hpY2ggdGhpcyBleHBhbnNpb24gbWFwcyBvcGVyYXRlIG9uCisrOzsgNjQt Yml0IHJlZ2lzdGVycywgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb25seSBvcGVyYXRlcyBv bgorKzs7IFNJLW1vZGUgb3BlcmFuZHMgYXMgdGhlIGhpZ2gtb3JkZXIgYml0cyBwcm92aWRlIG5v IGluZm9ybWF0aW9uCisrOzsgdGhhdCBpcyBub3QgYWxyZWFkeSBhdmFpbGFibGUgaW4gdGhlIGxv dy1vcmRlciBiaXRzLiAgVG8gYXZvaWQgdGhlCisrOzsgY29zdHMgb2YgZGF0YSB3aWRlbmluZyBv cGVyYXRpb25zLCBmdXR1cmUgZW5oYW5jZW1lbnRzIG1pZ2h0IGFsbG93CisrOzsgREkgbW9kZSBm b3Igb3BlcmFuZCAwIGFuZC9vciBtaWdodCBhbGxvdyBvcGVyYW5kIDEgdG8gYmUgUUkgbW9kZS4K KysoZGVmaW5lX2V4cGFuZCAiY21wcmIyIgorKyAgWyhzZXQgKG1hdGNoX2R1cCAzKQorKwkodW5z cGVjOkNDIFsobWF0Y2hfb3BlcmFuZDpTSSAxICJncGNfcmVnX29wZXJhbmQiICJyIikKKysJCSAg ICAobWF0Y2hfb3BlcmFuZDpTSSAyICJncGNfcmVnX29wZXJhbmQiICJyIildCisrCSBVTlNQRUNf Q01QUkIyKSkKKysgICAoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19yZWdfb3BlcmFuZCIg Ij1yIikKKysJKGlmX3RoZW5fZWxzZTpTSSAobHQgKG1hdGNoX2R1cCAzKQorKwkJCSAgICAgKGNv bnN0X2ludCAwKSkKKysJCQkgKGNvbnN0X2ludCAtMSkKKysJCQkgKGlmX3RoZW5fZWxzZSAoZ3Qg KG1hdGNoX2R1cCAzKQorKwkJCQkJICAgKGNvbnN0X2ludCAwKSkKKysJCQkJICAgICAgIChjb25z dF9pbnQgMSkKKysJCQkJICAgICAgIChjb25zdF9pbnQgMCkpKSldCisrICAiVEFSR0VUX1A5X01J U0MiCisreworKyAgb3BlcmFuZHNbM10gPSBnZW5fcmVnX3J0eCAoQ0Ntb2RlKTsKKyt9KQorKwor Kzs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDp4eDp2diwg d2hlcmUgeHgKKys7OyByZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBpZ25vcmVkIGlu IHRoaXMgY29udGV4dCBhbmQKKys7OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUsIGhv bGRzIHRoZSBieXRlIHZhbHVlIHRoYXQgaXMgdG8KKys7OyBiZSB0ZXN0ZWQgZm9yIG1lbWJlcnNo aXAgd2l0aGluIHRoZSByYW5nZXMgc3BlY2lmaWVkIGJ5IG9wZXJhbmQgMi4KKys7OyBUaGUgYnl0 ZXMgb2Ygb3BlcmFuZCAyIGFyZSBvcmdhbml6ZWQgYXMgaGlfMTpsb18xOmhpXzI6bG9fMi4KKys7 OworKzs7IFNldCBiaXQgMSAodGhlIEdUIGJpdCwgMHg0KSBvZiBDUiByZWdpc3RlciBvcGVyYW5k IDAgdG8gMSBpZgorKzs7IChsb18xIDw9IHZ2IGFuZCB2diA8PSBoaV8xKSBvciBpZiAobG9fMiA8 PSB2diBhbmQgdnYgPD0gaGlfMikuCisrOzsgT3RoZXJ3aXNlLCBzZXQgdGhlIEdUIGJpdCB0byAw LiAgVGhlIG90aGVyIDMgYml0cyBvZiB0aGUgdGFyZ2V0CisrOzsgQ1IgcmVnaXN0ZXIgYXJlIGFs bCBzZXQgdG8gMC4KKysoZGVmaW5lX2luc24gIipjbXByYjJfaW50ZXJuYWwiCisrICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpDQyAwICJjY19yZWdfb3BlcmFuZCIgIj15IikKKysJKHVuc3BlYzpDQyBb KG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCisrCQkgICAgKG1hdGNo X29wZXJhbmQ6U0kgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorKwkgVU5TUEVDX0NNUFJCMikp XQorKyAgIlRBUkdFVF9QOV9NSVNDIgorKyAgImNtcHJiICUwLDEsJTEsJTIiCisrICBbKHNldF9h dHRyICJ0eXBlIiAibG9naWNhbCIpXSkKKysKKys7OyBUZXN0IGJ5dGUgbWVtYmVyc2hpcCB3aXRo aW4gc2V0IG9mIDggYnl0ZXMuCisrOzsKKys7OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAxIGFyZSBv cmdhbml6ZWQgYXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CisrOzsgcmVwcmVzZW50cyBhIGJ5dGUg d2hvc2UgdmFsdWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5kCisrOzsgdnYsIHRoZSBs ZWFzdCBzaWduaWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1ZSB0aGF0IGlzIHRvCisr OzsgYmUgdGVzdGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgc2V0IHNwZWNpZmllZCBieSBv cGVyYW5kIDIuCisrOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUgb3JnYW5pemVkIGFzIGUw OmUxOmUyOmUzOmU0OmU1OmU2OmU3LgorKzs7CisrOzsgUmV0dXJuIGluIHRhcmdldCByZWdpc3Rl ciBvcGVyYW5kIDAgYSB2YWx1ZSBvZiAxIGlmIHZ2IGVxdWFscyBvbmUKKys7OyBvZiB0aGUgdmFs dWVzIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBvciBlNy4gIE90aGVyd2lzZSwgc2V0Cisr OzsgcmVnaXN0ZXIgb3BlcmFuZCAwIHRvIDAuICBOb3RlIHRoYXQgdGhlIDggYnl0ZSB2YWx1ZXMg aGVsZCB3aXRoaW4KKys7OyBvcGVyYW5kIDIgbmVlZCBub3QgYmUgdW5pcXVlLgorKzs7CisrOzsg VGhvdWdoIHRoZSBpbnN0cnVjdGlvbnMgdG8gd2hpY2ggdGhpcyBleHBhbnNpb24gbWFwcyBvcGVy YXRlIG9uCisrOzsgNjQtYml0IHJlZ2lzdGVycywgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24g cmVxdWlyZXMgdGhhdCBvcGVyYW5kcworKzs7IDAgYW5kIDEgaGF2ZSBtb2RlIFNJIGFzIHRoZSBo aWdoLW9yZGVyIGJpdHMgcHJvdmlkZSBubyBpbmZvcm1hdGlvbgorKzs7IHRoYXQgaXMgbm90IGFs cmVhZHkgYXZhaWxhYmxlIGluIHRoZSBsb3ctb3JkZXIgYml0cy4gIFRvIGF2b2lkIHRoZQorKzs7 IGNvc3RzIG9mIGRhdGEgd2lkZW5pbmcgb3BlcmF0aW9ucywgZnV0dXJlIGVuaGFuY2VtZW50cyBt aWdodCBhbGxvdworKzs7IERJIG1vZGUgZm9yIG9wZXJhbmQgMCBhbmQvb3IgbWlnaHQgYWxsb3cg b3BlcmFuZCAxIHRvIGJlIFFJIG1vZGUuCisrKGRlZmluZV9leHBhbmQgImNtcGVxYiIKKysgIFso c2V0IChtYXRjaF9kdXAgMykKKysJKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3Bj X3JlZ19vcGVyYW5kIiAiciIpCisrCQkgICAgKG1hdGNoX29wZXJhbmQ6REkgMiAiZ3BjX3JlZ19v cGVyYW5kIiAiciIpXQorKwkgVU5TUEVDX0NNUEVRQikpCisrICAgKHNldCAobWF0Y2hfb3BlcmFu ZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9ciIpCisrCShpZl90aGVuX2Vsc2U6U0kgKGx0ICht YXRjaF9kdXAgMykKKysJCQkgICAgIChjb25zdF9pbnQgMCkpCisrCQkJIChjb25zdF9pbnQgLTEp CisrCQkJIChpZl90aGVuX2Vsc2UgKGd0IChtYXRjaF9kdXAgMykKKysJCQkJCSAgIChjb25zdF9p bnQgMCkpCisrCQkJCSAgICAgICAoY29uc3RfaW50IDEpCisrCQkJCSAgICAgICAoY29uc3RfaW50 IDApKSkpXQorKyAgIlRBUkdFVF9QOV9NSVNDICYmIFRBUkdFVF82NEJJVCIKKyt7CisrICBvcGVy YW5kc1szXSA9IGdlbl9yZWdfcnR4IChDQ21vZGUpOworK30pCisrCisrOzsgVGhlIGJ5dGVzIG9m IG9wZXJhbmQgMSBhcmUgb3JnYW5pemVkIGFzIHh4Onh4Onh4OnZ2LCB3aGVyZSB4eAorKzs7IHJl cHJlc2VudHMgYSBieXRlIHdob3NlIHZhbHVlIGlzIGlnbm9yZWQgaW4gdGhpcyBjb250ZXh0IGFu ZAorKzs7IHZ2LCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSwgaG9sZHMgdGhlIGJ5dGUgdmFs dWUgdGhhdCBpcyB0bworKzs7IGJlIHRlc3RlZCBmb3IgbWVtYmVyc2hpcCB3aXRoaW4gdGhlIHNl dCBzcGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorKzs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDIgYXJl IG9yZ2FuaXplZCBhcyBlMDplMTplMjplMzplNDplNTplNjplNy4KKys7OworKzs7IFNldCBiaXQg MSAodGhlIEdUIGJpdCwgMHg0KSBvZiBDUiByZWdpc3RlciBvcGVyYW5kIDAgdG8gMSBpZiB2dgor Kzs7IGVxdWFscyBvbmUgb2YgdGhlIHZhbHVlcyBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwg b3IgZTcuICBPdGhlcndpc2UsCisrOzsgc2V0IHRoZSBHVCBiaXQgdG8gemVyby4gIFRoZSBvdGhl ciAzIGJpdHMgb2YgdGhlIHRhcmdldCBDUiByZWdpc3RlcgorKzs7IGFyZSBhbGwgc2V0IHRvIDAu CisrKGRlZmluZV9pbnNuICIqY21wZXFiX2ludGVybmFsIgorKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6Q0MgMCAiY2NfcmVnX29wZXJhbmQiICI9eSIpCisrCSAodW5zcGVjOkNDIFsobWF0Y2hfb3Bl cmFuZDpTSSAxICJncGNfcmVnX29wZXJhbmQiICJyIikKKysJCSAgICAgKG1hdGNoX29wZXJhbmQ6 REkgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorKwkgIFVOU1BFQ19DTVBFUUIpKV0KKysgICJU QVJHRVRfUDlfTUlTQyAmJiBUQVJHRVRfNjRCSVQiCisrICAiY21wZXFiICUwLCUxLCUyIgorKyAg WyhzZXRfYXR0ciAidHlwZSIgImxvZ2ljYWwiKV0pCisgCisgKGRlZmluZV9pbnNuICIqbmFiczxt b2RlPjJfaHciCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpJRUVFMTI4IDAgImFsdGl2ZWNfcmVn aXN0ZXJfb3BlcmFuZCIgIj12IikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvbGli ZmZpX2dudWxpbnV4LnBhdGNoIGIvc3JjcGtncy9nY2MvcGF0Y2hlcy9saWJmZmlfZ251bGludXgu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQxM2I0YWVmNWFm Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nY2MvcGF0Y2hlcy9saWJmZmlfZ251bGludXgu cGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGxpYmZmaS9zcmMvY2xvc3VyZXMuYy5vcmlnCisr KysgbGliZmZpL3NyYy9jbG9zdXJlcy5jCitAQCAtMzQsNyArMzQsNyBAQAorICNpbmNsdWRlIDxm ZmlfY29tbW9uLmg+CisKKyAjaWYgIUZGSV9NTUFQX0VYRUNfV1JJVCAmJiAhRkZJX0VYRUNfVFJB TVBPTElORV9UQUJMRQorLSMgaWYgX19nbnVfbGludXhfXyAmJiAhZGVmaW5lZChfX0FORFJPSURf XykKKysjIGlmIF9fbGludXhfXyAmJiAhZGVmaW5lZChfX0FORFJPSURfXykKKyAvKiBUaGlzIG1h Y3JvIGluZGljYXRlcyBpdCBtYXkgYmUgZm9yYmlkZGVuIHRvIG1hcCBhbm9ueW1vdXMgbWVtb3J5 CisgICAgd2l0aCBib3RoIHdyaXRlIGFuZCBleGVjdXRlIHBlcm1pc3Npb24uICBDb2RlIGNvbXBp bGVkIHdoZW4gdGhpcworICAgIG9wdGlvbiBpcyBkZWZpbmVkIHdpbGwgYXR0ZW1wdCB0byBtYXAg c3VjaCBwYWdlcyBvbmNlLCBidXQgaWYgaXQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2NjL3BhdGNo ZXMvbm9uLW51bGxuZXNzLnBhdGNoIGIvc3JjcGtncy9nY2MvcGF0Y2hlcy9ub24tbnVsbG5lc3Mu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlMGU0NDI1Y2U0Li4wMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2djYy9wYXRjaGVzL25vbi1udWxsbmVzcy5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDg4ICswLDAgQEAKLVNvdXJjZTogMjAxOS0wNi0yMSAgSmVmZiBMYXcgIDxs YXdAcmVkaGF0LmNvbT4KLVVwc3RyZWFtOiB5ZXMKLVJlYXNvbjogUFIgdHJlZS1vcHRpbWl6YXRp b24vOTA5NDkKLSogdHJlZS1zc2EtY29weS5jIChmaW5pX2NvcHlfcHJvcCk6IFVzZSByZXNldF9m bG93X3NlbnNpdGl2ZV9pbmZvLgotKiB0cmVlLXNzYW5hbWVzLmMgKHJlc2V0X2Zsb3dfc2Vuc2l0 aXZlX2luZm8pOiBSZXNldCBub24tbnVsbCBzdGF0ZS4KLQotLS0tIGdjYy90cmVlLXNzYS1jb3B5 LmMJMjAxOS0wMS0wMSAxMzozMTo1NS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvdHJlZS1zc2Et Y29weS5jCTIwMTktMDYtMjYgMTg6NTA6MDEuMDMwMzk1NDcxICswMjAwCi1AQCAtNTQ1LDEzICs1 NDUsMTIgQEAKLSAJICAgICAgZHVwbGljYXRlX3NzYV9uYW1lX3B0cl9pbmZvIChjb3B5X29mW2ld LnZhbHVlLAotIAkJCQkJICAgU1NBX05BTUVfUFRSX0lORk8gKHZhcikpOwotIAkgICAgICAvKiBQ b2ludHMtdG8gaW5mb3JtYXRpb24gaXMgY2ZnIGluc2Vuc2l0aXZlLAotLQkJIGJ1dCBhbGlnbm1l bnQgaW5mbyBtaWdodCBiZSBjZmcgc2Vuc2l0aXZlLCBpZiBpdAotLQkJIGUuZy4gaXMgZGVyaXZl ZCBmcm9tIFZSUCBkZXJpdmVkIG5vbi16ZXJvIGJpdHMuCi0tCQkgU28sIGRvIG5vdCBjb3B5IGFs aWdubWVudCBpbmZvIGlmIHRoZSB0d28gU1NBX05BTUVzCi0tCQkgYXJlbid0IGRlZmluZWQgaW4g dGhlIHNhbWUgYmFzaWMgYmxvY2suICAqLwotKwkJIGJ1dCBbRV1WUlAgbWlnaHQgcmVjb3JkIGNv bnRleHQgc2Vuc2l0aXZlIGFsaWdubWVudAotKwkJIGluZm8sIG5vbi1udWxsbmVzcywgZXRjLiAg U28gcmVzZXQgY29udGV4dCBzZW5zaXRpdmUKLSsJCSBpbmZvIGlmIHRoZSB0d28gU1NBX05BTUVz IGFyZW4ndCBkZWZpbmVkIGluIHRoZSBzYW1lCi0rCQkgYmFzaWMgYmxvY2suICAqLwotIAkgICAg ICBpZiAodmFyX2JiICE9IGNvcHlfb2ZfYmIpCi0tCQltYXJrX3B0cl9pbmZvX2FsaWdubWVudF91 bmtub3duCi0tCQkJCShTU0FfTkFNRV9QVFJfSU5GTyAoY29weV9vZltpXS52YWx1ZSkpOwotKwkJ cmVzZXRfZmxvd19zZW5zaXRpdmVfaW5mbyAoY29weV9vZltpXS52YWx1ZSk7Ci0gCSAgICB9Ci0g CSAgZWxzZSBpZiAoIVBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKHZhcikpCi0gCQkgICAmJiBT U0FfTkFNRV9SQU5HRV9JTkZPICh2YXIpCi0tLS0gZ2NjL3RyZWUtc3NhbmFtZXMuYwkyMDE5LTAz LTE4IDE0OjU5OjExLjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy90cmVlLXNzYW5hbWVzLmMJMjAx OS0wNi0yNiAxODo1MDoxMS4yODIzOTQ5MDYgKzAyMDAKLUBAIC04MjAsNyArODIwLDEyIEBACi0g ICAgIHsKLSAgICAgICAvKiBwb2ludHMtdG8gaW5mbyBpcyBub3QgZmxvdy1zZW5zaXRpdmUuICAq LwotICAgICAgIGlmIChTU0FfTkFNRV9QVFJfSU5GTyAobmFtZSkpCi0tCW1hcmtfcHRyX2luZm9f YWxpZ25tZW50X3Vua25vd24gKFNTQV9OQU1FX1BUUl9JTkZPIChuYW1lKSk7Ci0rCXsKLSsJICAv KiBbRV1WUlAgY2FuIGRlcml2ZSBjb250ZXh0IHNlbnNpdGl2ZSBhbGlnbm1lbnQgaW5mbyBhbmQK LSsJICAgICBub24tbnVsbG5lc3MgcHJvcGVydGllcy4gIFdlIG11c3QgcmVzZXQgYm90aC4gICov Ci0rCSAgbWFya19wdHJfaW5mb19hbGlnbm1lbnRfdW5rbm93biAoU1NBX05BTUVfUFRSX0lORk8g KG5hbWUpKTsKLSsJICBTU0FfTkFNRV9QVFJfSU5GTyAobmFtZSktPnB0Lm51bGwgPSAxOwotKwl9 Ci0gICAgIH0KLSAgIGVsc2UKLSAgICAgU1NBX05BTUVfUkFOR0VfSU5GTyAobmFtZSkgPSBOVUxM OwotLS0tIC9kZXYvbnVsbAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9wcjkwOTQ5 LmMJMjAxOS0wNi0yNiAxODo1MzoxNi44NzAzODQ2NzkgKzAyMDAKLUBAIC0wLDAgKzEsNDIgQEAK LSt2b2lkIF9fYXR0cmlidXRlX18gKChub2lwYSwgbm9pbmxpbmUpKSBteV9wdXRzIChjb25zdCBj aGFyICpzdHIpIHsgfQotKwotK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaXBhLCBub2lubGluZSkp IG15X2ZyZWUgKHZvaWQgKnApIHsgfQotKwotKwotK3N0cnVjdCBOb2RlCi0rewotKyAgc3RydWN0 IE5vZGUgKmNoaWxkOwotK307Ci0rCi0rc3RydWN0IE5vZGUgc3BhY2VbMl0gPSB7IH07Ci0rCi0r c3RydWN0IE5vZGUgKiBfX2F0dHJpYnV0ZV9fICgobm9pcGEsIG5vaW5saW5lKSkgbXlfbWFsbG9j IChpbnQgYnl0ZXMpCi0rewotKyAgcmV0dXJuICZzcGFjZVswXTsKLSt9Ci0rCi0rdm9pZAotK3dh bGsgKHN0cnVjdCBOb2RlICptb2R1bGUsIGludCBjbGVhbnVwKQotK3sKLSsgIGlmIChtb2R1bGUg PT0gMCkKLSsgICAgewotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgaWYgKCFjbGVhbnVwKQot KyAgICB7Ci0rICAgICAgbXlfcHV0cyAoIk5vIGNsZWFudXAiKTsKLSsgICAgfQotKyAgd2FsayAo bW9kdWxlLT5jaGlsZCwgY2xlYW51cCk7Ci0rICBpZiAoY2xlYW51cCkKLSsgICAgewotKyAgICAg IG15X2ZyZWUgKG1vZHVsZSk7Ci0rICAgIH0KLSt9Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsg IHN0cnVjdCBOb2RlICpub2RlID0gbXlfbWFsbG9jIChzaXplb2YgKHN0cnVjdCBOb2RlKSk7Ci0r ICBub2RlLT5jaGlsZCA9IDA7Ci0rICB3YWxrIChub2RlLCAxKTsKLSt9CmRpZmYgLS1naXQgYS9z cmNwa2dzL2djYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCmluZGV4IGJhYjMzZDc5 OGFlLi4wNjliNjZhMTFmMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nY2MvdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2djYycKIF9tYWpvcnZlcj05Ci1fbWlub3J2ZXI9JHtfbWFqb3J2ZXJ9LjEKK19taW5vcnZl cj0ke19tYWpvcnZlcn0uMgogX2dtcF92ZXJzaW9uPTYuMS4yCi1fbXBmcl92ZXJzaW9uPTQuMC4x CitfbXBmcl92ZXJzaW9uPTQuMC4yCiBfbXBjX3ZlcnNpb249MS4xLjAKLV9pc2xfdmVyc2lvbj0w LjE5CitfaXNsX3ZlcnNpb249MC4yMQogCiBwa2duYW1lPWdjYwogdmVyc2lvbj0ke19taW5vcnZl cn0uMAotcmV2aXNpb249MworcmV2aXNpb249MQogc2hvcnRfZGVzYz0iR05VIENvbXBpbGVyIENv bGxlY3Rpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogaG9tZXBhZ2U9Imh0dHA6Ly9nY2MuZ251Lm9yZyIKQEAgLTIwLDE3ICsyMCwxOCBAQCBkaXN0 ZmlsZXM9IgogIGh0dHBzOi8vd3d3Lm1wZnIub3JnL21wZnItJHtfbXBmcl92ZXJzaW9ufS9tcGZy LSR7X21wZnJfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vbXBjL21wYy0ke19tcGNfdmVy c2lvbn0udGFyLmd6CiAgaHR0cDovL2lzbC5nZm9yZ2UuaW5yaWEuZnIvaXNsLSR7X2lzbF92ZXJz aW9ufS50YXIuYnoyIgotY2hlY2tzdW09Ijc5YTY2ODM0ZTk2YTYwNTBkOGZlNzhkYjJjM2IzMmZi Mjg1YjIzMGI4NTVkMGE2NjI4ODIzNWJjMDRiMzI3YTAKK2NoZWNrc3VtPSJlYTZlZjA4ZjEyMTIz OWRhNTY5NWY3NmM5YjMzNjM3YTExOGRjZjYzZTI0MTY0NDIyMjMxOTE3ZmE2MWZiMjA2CiAgODdi NTY1ZTg5YTlhNjg0ZmU0ZWJlZWRkYjgzOTlkY2UyNTk5ZjljOTA0OTg1NGNhOGMwZGZiZGVhMGUy MTkxMgotIDY3ODc0YTYwODI2MzAzZWUyZmI2YWZmYzZkYzBkZGQzZTc0OWU5YmZjYjRjODY1NWUz OTUzZDA0NThhNmUxNmUKKyAxZDNiZTcwODYwNGVhZTBlNDJkNTc4YmE5M2IzOTBjMmExNDVmMTc3 NDNhNzQ0ZDhmM2Y4YzJhZDU4NTVhMzhhCiAgNjk4NWM1MzgxNDNjMTIwOGRjYjFhYzQyY2VkYWQ2 ZmY1MmUyNjdiNDdlNWY5NzAxODNhM2U3NTEyNWI0M2MyZQotIGQ1OTcyNmYzNGY3ODUyYTA4MWZi ZDNkZWZkMWFiMjEzNmYxNzQxMTBmYzJlMGM4ZDEwYmIxMjIxNzNmYTllZDgiCisgZDE4Y2ExMWY4 YWQxYTM5YWI2ZDAzZDNkY2IzMzY1YWI0MTY3MjBmY2I2NWI0MmQ2OWYzNGY1MWJmMGEwZTg1OSIK IAogbm9waWU9eWVzCiBsaWIzMmRpc2FibGVkPXllcwogYm9vdHN0cmFwPXllcwogcmVwbGFjZXM9 ImdjYy1nY2o8Ny4yLjAgZ2NjLWdjai1qZGstY29tcGF0PDcuMi4wIGxpYm1weD49MCBsaWJtcHgt ZGV2ZWw+PTAiCiBhbHRlcm5hdGl2ZXM9ImNjOmNjOi91c3IvYmluL2djYyIKK25vY3Jvc3M9eWVz CiAKIGlmIFsgIiRDSFJPT1RfUkVBRFkiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHM9InBlcmwg ZmxleCIKQEAgLTY5LDEyICs3MCwxMSBAQCBpZiBbICIkQ0hST09UX1JFQURZIiBdOyB0aGVuCiAJ c3VicGFja2FnZXMrPSIgZ2NjLWZvcnRyYW4gbGliZ2ZvcnRyYW4tZGV2ZWwgbGliZ2ZvcnRyYW4i CiAJaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCXN1YnBhY2thZ2VzKz0iIGdjYy1v YmpjIGdjYy1vYmpjKysgbGlib2JqYy1kZXZlbCBsaWJvYmpjIgotCQljYXNlICIkWEJQU19UQVJH RVRfTUFDSElORSIgaW4KLQkJKi1tdXNsKQkjIEdvIHdvbid0IGxpbmsgZm9yIG11c2wgbGliYwot CQkJOzsKLQkJKikJc3VicGFja2FnZXMrPSIgZ2NjLWdvIGdjYy1nby10b29scyBsaWJnby1kZXZl bCBsaWJnbyIKLQkJCTs7Ci0JCWVzYWMKKwkJc3VicGFja2FnZXMrPSIgZ2NjLWdvIGdjYy1nby10 b29scyBsaWJnby1kZXZlbCBsaWJnbyIKKwkJIyB3ZSBuZWVkIHRoaXMgZm9yIGdjYy1nbyBvbiBt dXNsCisJCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCQltYWtl ZGVwZW5kcys9IiBsaWJ1Y29udGV4dC1kZXZlbCIKKwkJZmkKIAlmaQogZmkKIApAQCAtMTYyLDcg KzE2MiwxMCBAQCBwcmVfY29uZmlndXJlKCkgewogCSMgX0ZPUlRJRllfU09VUkNFIG5lZWRzIGFu IG9wdGltaXphdGlvbiBsZXZlbC4KIAlzZWQgLWkgIi9hY19jcHA9L3MvXCRDUFBGTEFHUy9cJENQ UEZMQUdTIC1PMi8iIHtnY2MsbGliaWJlcnR5fS9jb25maWd1cmUKIAljYXNlICIkWEJQU19UQVJH RVRfTUFDSElORSIgaW4KLQkJKi1tdXNsKSBwYXRjaCAtcDEgLWkgJHtGSUxFU0RJUn0vbGliZ25h cmwtbXVzbC5wYXRjaCA7OworCQkqLW11c2wpCisJCQlwYXRjaCAtcDEgLWkgJHtGSUxFU0RJUn0v bGliZ25hcmwtbXVzbC5wYXRjaAorCQkJcGF0Y2ggLXAwIC1pICR7RklMRVNESVJ9L2djY2dvLW11 c2wucGF0Y2gKKwkJCTs7CiAJZXNhYwogfQogZG9fY29uZmlndXJlKCkgewpAQCAtMjI1LDEzICsy MjgsNyBAQCBkb19jb25maWd1cmUoKSB7CiAJCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiR7WEJQ U19NQVNURVJESVJ9L3Vzci9saWIiCiAJCV9hcmdzKz0iIC0tYnVpbGQ9JHtfdHJpcGxldH0iCiAJ ZWxzZQotCQlfbGFuZ3M9ImMsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGx0byIKLQkJY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCQkqLW11c2wpCSMgTGlua2luZyBsaWJnby5zbyBp cyBicm9rZW4gZm9yIG11c2wgbGliYwotCQkJCTs7Ci0JCQkqKQlfbGFuZ3MrPSIsZ28iCi0JCQkJ OzsKLQkJZXNhYworCQlfbGFuZ3M9ImMsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIK IAkJX2FyZ3MrPSIgLS1idWlsZD0ke190cmlwbGV0fSIKIAkJX2FyZ3MrPSIgLS1lbmFibGUtZmFz dC1jaGFyYWN0ZXIiCiAJZmkK --===============7057528177180720774==--