[3.15] gh-151942: Fix all Sphinx nitpicks in the Python 2.6 What's New (GH-154550) (#154952)
StanFromIreland <[email protected]> Fri, 31 Jul 2026 13:26:50 -0400 (EDT)
| Newsgroups | gmane.comp.python.cvs |
|---|---|
| Message-ID | <[email protected]> |
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi9jcHl0aG9uL2NvbW1pdC85NjVmMWY5NWIxZDE0MjBk YmU4ZGE5YzBmOTZlNGZlY2E3N2E2NzY3DQpjb21taXQ6IDk2NWYxZjk1YjFkMTQyMGRiZThkYTlj MGY5NmU0ZmVjYTc3YTY3NjcNCmJyYW5jaDogMy4xNQ0KYXV0aG9yOiBNaXNzIElzbGluZ3RvbiAo Ym90KSA8MzE0ODg5MDkrbWlzcy1pc2xpbmd0b25AdXNlcnMubm9yZXBseS5naXRodWIuY29tPg0K Y29tbWl0dGVyOiBTdGFuRnJvbUlyZWxhbmQgPHN0YW5AcHl0aG9uLm9yZz4NCmRhdGU6IDIwMjYt MDctMzFUMTk6MjY6MzcrMDI6MDANCnN1bW1hcnk6DQoNClszLjE1XSBnaC0xNTE5NDI6IEZpeCBh bGwgU3BoaW54IG5pdHBpY2tzIGluIHRoZSBQeXRob24gMi42IFdoYXQncyBOZXcgKEdILTE1NDU1 MCkgKCMxNTQ5NTIpDQoNCihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDQzMjBiYmU5MjRhNTQy ODI2YWY1OThjY2Q5Y2RiNmM1YmIyOThhYmUpDQoNCkNvLWF1dGhvcmVkLWJ5OiBTdGFuIFVsYnJ5 Y2ggPHN0YW5AcHl0aG9uLm9yZz4NCg0KZmlsZXM6DQpNIERvYy90b29scy8ubml0aWdub3JlDQpN IERvYy93aGF0c25ldy8yLjYucnN0DQoNCmRpZmYgLS1naXQgYS9Eb2MvdG9vbHMvLm5pdGlnbm9y ZSBiL0RvYy90b29scy8ubml0aWdub3JlDQppbmRleCA2YTRhYjlmNWFhM2JmNjUuLjk3NmNjM2Iy YTUyODJkOCAxMDA2NDQNCi0tLSBhL0RvYy90b29scy8ubml0aWdub3JlDQorKysgYi9Eb2MvdG9v bHMvLm5pdGlnbm9yZQ0KQEAgLTI5LDQgKzI5LDMgQEAgRG9jL2xpYnJhcnkveG1sLnNheC5yZWFk ZXIucnN0DQogRG9jL2xpYnJhcnkveG1sLnNheC5yc3QNCiBEb2MvbGlicmFyeS94bWxycGMuY2xp ZW50LnJzdA0KIERvYy9saWJyYXJ5L3htbHJwYy5zZXJ2ZXIucnN0DQotRG9jL3doYXRzbmV3LzIu Ni5yc3QNCmRpZmYgLS1naXQgYS9Eb2Mvd2hhdHNuZXcvMi42LnJzdCBiL0RvYy93aGF0c25ldy8y LjYucnN0DQppbmRleCBlMWY3MmI2YzRhNmM5MmMuLjNmNDY0NWQyYjViNDgzMCAxMDA2NDQNCi0t LSBhL0RvYy93aGF0c25ldy8yLjYucnN0DQorKysgYi9Eb2Mvd2hhdHNuZXcvMi42LnJzdA0KQEAg LTEwMSwxMCArMTAxLDEwIEBAIHRvIGJyZWFrLCB0aGV5J3ZlIGJlZW4gYmFja3BvcnRlZCB0byAy LjYgYW5kIGFyZSBkZXNjcmliZWQgaW4gdGhpcw0KIGRvY3VtZW50IGluIHRoZSBhcHByb3ByaWF0 ZSBwbGFjZS4gIFNvbWUgb2YgdGhlIDMuMC1kZXJpdmVkIGZlYXR1cmVzDQogYXJlOg0KIA0KLSog QSA6bWV0aDpgX19jb21wbGV4X19gIG1ldGhvZCBmb3IgY29udmVydGluZyBvYmplY3RzIHRvIGEg Y29tcGxleCBudW1iZXIuDQorKiBBIDptZXRoOmB+b2JqZWN0Ll9fY29tcGxleF9fYCBtZXRob2Qg Zm9yIGNvbnZlcnRpbmcgb2JqZWN0cyB0byBhIGNvbXBsZXggbnVtYmVyLg0KICogQWx0ZXJuYXRl IHN5bnRheCBmb3IgY2F0Y2hpbmcgZXhjZXB0aW9uczogYGBleGNlcHQgVHlwZUVycm9yIGFzIGV4 Y2BgLg0KICogVGhlIGFkZGl0aW9uIG9mIDpmdW5jOmBmdW5jdG9vbHMucmVkdWNlYCBhcyBhIHN5 bm9ueW0gZm9yIHRoZSBidWlsdC1pbg0KLSAgOmZ1bmM6YHJlZHVjZWAgZnVuY3Rpb24uDQorICA6 ZnVuYzpgIXJlZHVjZWAgZnVuY3Rpb24uDQogDQogUHl0aG9uIDMuMCBhZGRzIHNldmVyYWwgbmV3 IGJ1aWx0LWluIGZ1bmN0aW9ucyBhbmQgY2hhbmdlcyB0aGUNCiBzZW1hbnRpY3Mgb2Ygc29tZSBl eGlzdGluZyBidWlsdGlucy4gIEZ1bmN0aW9ucyB0aGF0IGFyZSBuZXcgaW4gMy4wDQpAQCAtMTE0 NSw3ICsxMTQ1LDcgQEAgY29uc3RyYWludHMgdXBvbiB0aGUgbWVtb3J5IHJldHVybmVkLiAgU29t ZSBleGFtcGxlcyBhcmU6DQogDQogKiA6YzptYWNybzpgUHlCVUZfV1JJVEFCTEVgIGluZGljYXRl cyB0aGF0IHRoZSBtZW1vcnkgbXVzdCBiZSB3cml0YWJsZS4NCiANCi0qIDpjOm1hY3JvOmBQeUJV Rl9MT0NLYCByZXF1ZXN0cyBhIHJlYWQtb25seSBvciBleGNsdXNpdmUgbG9jayBvbiB0aGUgbWVt b3J5Lg0KKyogOmM6bWFjcm86YCFQeUJVRl9MT0NLYCByZXF1ZXN0cyBhIHJlYWQtb25seSBvciBl eGNsdXNpdmUgbG9jayBvbiB0aGUgbWVtb3J5Lg0KIA0KICogOmM6bWFjcm86YFB5QlVGX0NfQ09O VElHVU9VU2AgYW5kIDpjOm1hY3JvOmBQeUJVRl9GX0NPTlRJR1VPVVNgDQogICByZXF1ZXN0cyBh IEMtY29udGlndW91cyAobGFzdCBkaW1lbnNpb24gdmFyaWVzIHRoZSBmYXN0ZXN0KSBvcg0KQEAg LTEzMzksNyArMTMzOSw3IEBAIGJ1aWx0aW4gcmV0dXJucyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0 aW9uIGZvciBhIG51bWJlcjo6DQogICAgID4+PiBiaW4oMTczKQ0KICAgICAnMGIxMDEwMTEwMScN CiANCi1UaGUgOmZ1bmM6YGludGAgYW5kIDpmdW5jOmBsb25nYCBidWlsdGlucyB3aWxsIG5vdyBh Y2NlcHQgdGhlICIwbyINCitUaGUgOmZ1bmM6YGludGAgYW5kIDpmdW5jOmAhbG9uZ2AgYnVpbHRp bnMgd2lsbCBub3cgYWNjZXB0IHRoZSAiMG8iDQogYW5kICIwYiIgcHJlZml4ZXMgd2hlbiBiYXNl LTggb3IgYmFzZS0yIGFyZSByZXF1ZXN0ZWQsIG9yIHdoZW4gdGhlDQogKmJhc2UqIGFyZ3VtZW50 IGlzIHplcm8gKHNpZ25hbGxpbmcgdGhhdCB0aGUgYmFzZSB1c2VkIHNob3VsZCBiZQ0KIGRldGVy bWluZWQgZnJvbSB0aGUgc3RyaW5nKTo6DQpAQCAtMTM5MiwzNSArMTM5MiwzNiBAQCBUaGlzIGlz IGVxdWl2YWxlbnQgdG86Og0KIC4uIF9wZXAtMzE0MToNCiANCiBQRVAgMzE0MTogQSBUeXBlIEhp ZXJhcmNoeSBmb3IgTnVtYmVycw0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCiANCiBQeXRob24gMy4wIGFkZHMgc2V2ZXJhbCBhYnN0cmFjdCBiYXNlIGNsYXNzZXMgZm9y IG51bWVyaWMgdHlwZXMNCiBpbnNwaXJlZCBieSBTY2hlbWUncyBudW1lcmljIHRvd2VyLiAgVGhl c2UgY2xhc3NlcyB3ZXJlIGJhY2twb3J0ZWQgdG8NCiAyLjYgYXMgdGhlIDptb2Q6YG51bWJlcnNg IG1vZHVsZS4NCiANCi1UaGUgbW9zdCBnZW5lcmFsIEFCQyBpcyA6Y2xhc3M6YE51bWJlcmAuICBJ dCBkZWZpbmVzIG5vIG9wZXJhdGlvbnMgYXQNCitUaGUgbW9zdCBnZW5lcmFsIEFCQyBpcyA6Y2xh c3M6YH5udW1iZXJzLk51bWJlcmAuICBJdCBkZWZpbmVzIG5vIG9wZXJhdGlvbnMgYXQNCiBhbGws IGFuZCBvbmx5IGV4aXN0cyB0byBhbGxvdyBjaGVja2luZyBpZiBhbiBvYmplY3QgaXMgYSBudW1i ZXIgYnkNCiBkb2luZyBgYGlzaW5zdGFuY2Uob2JqLCBOdW1iZXIpYGAuDQogDQotOmNsYXNzOmBD b21wbGV4YCBpcyBhIHN1YmNsYXNzIG9mIDpjbGFzczpgTnVtYmVyYC4gIENvbXBsZXggbnVtYmVy cw0KKzpjbGFzczpgfm51bWJlcnMuQ29tcGxleGAgaXMgYSBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5u dW1iZXJzLk51bWJlcmAuICBDb21wbGV4IG51bWJlcnMNCiBjYW4gdW5kZXJnbyB0aGUgYmFzaWMg b3BlcmF0aW9ucyBvZiBhZGRpdGlvbiwgc3VidHJhY3Rpb24sDQogbXVsdGlwbGljYXRpb24sIGRp dmlzaW9uLCBhbmQgZXhwb25lbnRpYXRpb24sIGFuZCB5b3UgY2FuIHJldHJpZXZlIHRoZQ0KIHJl YWwgYW5kIGltYWdpbmFyeSBwYXJ0cyBhbmQgb2J0YWluIGEgbnVtYmVyJ3MgY29uanVnYXRlLiAg UHl0aG9uJ3MgYnVpbHQtaW4NCi1jb21wbGV4IHR5cGUgaXMgYW4gaW1wbGVtZW50YXRpb24gb2Yg OmNsYXNzOmBDb21wbGV4YC4NCitjb21wbGV4IHR5cGUgaXMgYW4gaW1wbGVtZW50YXRpb24gb2Yg OmNsYXNzOmB+bnVtYmVycy5Db21wbGV4YC4NCiANCi06Y2xhc3M6YFJlYWxgIGZ1cnRoZXIgZGVy aXZlcyBmcm9tIDpjbGFzczpgQ29tcGxleGAsIGFuZCBhZGRzDQotb3BlcmF0aW9ucyB0aGF0IG9u bHkgd29yayBvbiByZWFsIG51bWJlcnM6IDpmdW5jOmBmbG9vcmAsIDpmdW5jOmB0cnVuY2AsDQor OmNsYXNzOmB+bnVtYmVycy5SZWFsYCBmdXJ0aGVyIGRlcml2ZXMgZnJvbSA6Y2xhc3M6YH5udW1i ZXJzLkNvbXBsZXhgLCBhbmQgYWRkcw0KK29wZXJhdGlvbnMgdGhhdCBvbmx5IHdvcmsgb24gcmVh bCBudW1iZXJzOiA6ZnVuYzpgfm1hdGguZmxvb3JgLCA6ZnVuYzpgfm1hdGgudHJ1bmNgLA0KIHJv dW5kaW5nLCB0YWtpbmcgdGhlIHJlbWFpbmRlciBtb2QgTiwgZmxvb3IgZGl2aXNpb24sDQogYW5k IGNvbXBhcmlzb25zLg0KIA0KLTpjbGFzczpgUmF0aW9uYWxgIG51bWJlcnMgZGVyaXZlIGZyb20g OmNsYXNzOmBSZWFsYCwgaGF2ZQ0KLTphdHRyOmBudW1lcmF0b3JgIGFuZCA6YXR0cjpgZGVub21p bmF0b3JgIHByb3BlcnRpZXMsIGFuZCBjYW4gYmUNCis6Y2xhc3M6YH5udW1iZXJzLlJhdGlvbmFs YCBudW1iZXJzIGRlcml2ZSBmcm9tIDpjbGFzczpgfm51bWJlcnMuUmVhbGAsIGhhdmUNCis6YXR0 cjpgfm51bWJlcnMuUmF0aW9uYWwubnVtZXJhdG9yYCBhbmQgOmF0dHI6YH5udW1iZXJzLlJhdGlv bmFsLmRlbm9taW5hdG9yYA0KK3Byb3BlcnRpZXMsIGFuZCBjYW4gYmUNCiBjb252ZXJ0ZWQgdG8g ZmxvYXRzLiAgUHl0aG9uIDIuNiBhZGRzIGEgc2ltcGxlIHJhdGlvbmFsLW51bWJlciBjbGFzcywN Ci06Y2xhc3M6YEZyYWN0aW9uYCwgaW4gdGhlIDptb2Q6YGZyYWN0aW9uc2AgbW9kdWxlLiAgKEl0 J3MgY2FsbGVkDQotOmNsYXNzOmBGcmFjdGlvbmAgaW5zdGVhZCBvZiA6Y2xhc3M6YFJhdGlvbmFs YCB0byBhdm9pZA0KKzpjbGFzczpgfmZyYWN0aW9ucy5GcmFjdGlvbmAsIGluIHRoZSA6bW9kOmBm cmFjdGlvbnNgIG1vZHVsZS4gIChJdCdzIGNhbGxlZA0KKzpjbGFzczpgfmZyYWN0aW9ucy5GcmFj dGlvbmAgaW5zdGVhZCBvZiBgYFJhdGlvbmFsYGAgdG8gYXZvaWQNCiBhIG5hbWUgY2xhc2ggd2l0 aCA6Y2xhc3M6YG51bWJlcnMuUmF0aW9uYWxgLikNCiANCi06Y2xhc3M6YEludGVncmFsYCBudW1i ZXJzIGRlcml2ZSBmcm9tIDpjbGFzczpgUmF0aW9uYWxgLCBhbmQNCis6Y2xhc3M6YH5udW1iZXJz LkludGVncmFsYCBudW1iZXJzIGRlcml2ZSBmcm9tIDpjbGFzczpgfm51bWJlcnMuUmF0aW9uYWxg LCBhbmQNCiBjYW4gYmUgc2hpZnRlZCBsZWZ0IGFuZCByaWdodCB3aXRoIGBgPDxgYCBhbmQgYGA+ PmBgLA0KIGNvbWJpbmVkIHVzaW5nIGJpdHdpc2Ugb3BlcmF0aW9ucyBzdWNoIGFzIGBgJmBgIGFu ZCBgYHxgYCwNCiBhbmQgY2FuIGJlIHVzZWQgYXMgYXJyYXkgaW5kZXhlcyBhbmQgc2xpY2UgYm91 bmRhcmllcy4NCkBAIC0xNDI5LDcgKzE0MzAsNyBAQCBJbiBQeXRob24gMy4wLCB0aGUgUEVQIHNs aWdodGx5IHJlZGVmaW5lcyB0aGUgZXhpc3RpbmcgYnVpbHRpbnMNCiA6ZnVuYzpgcm91bmRgLCA6 ZnVuYzpgbWF0aC5mbG9vcmAsIDpmdW5jOmBtYXRoLmNlaWxgLCBhbmQgYWRkcyBhIG5ldw0KIG9u ZSwgOmZ1bmM6YG1hdGgudHJ1bmNgLCB0aGF0J3MgYmVlbiBiYWNrcG9ydGVkIHRvIFB5dGhvbiAy LjYuDQogOmZ1bmM6YG1hdGgudHJ1bmNgIHJvdW5kcyB0b3dhcmQgemVybywgcmV0dXJuaW5nIHRo ZSBjbG9zZXN0DQotOmNsYXNzOmBJbnRlZ3JhbGAgdGhhdCdzIGJldHdlZW4gdGhlIGZ1bmN0aW9u J3MgYXJndW1lbnQgYW5kIHplcm8uDQorOmNsYXNzOmB+bnVtYmVycy5JbnRlZ3JhbGAgdGhhdCdz IGJldHdlZW4gdGhlIGZ1bmN0aW9uJ3MgYXJndW1lbnQgYW5kIHplcm8uDQogDQogLi4gc2VlYWxz bzo6DQogDQpAQCAtMTQ0Miw3ICsxNDQzLDcgQEAgb25lLCA6ZnVuYzpgbWF0aC50cnVuY2AsIHRo YXQncyBiZWVuIGJhY2twb3J0ZWQgdG8gUHl0aG9uIDIuNi4NCiANCiANCiBUaGUgOm1vZDpgZnJh Y3Rpb25zYCBNb2R1bGUNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KIFRvIGZpbGwgb3V0 IHRoZSBoaWVyYXJjaHkgb2YgbnVtZXJpYyB0eXBlcywgdGhlIDptb2Q6YGZyYWN0aW9uc2ANCiBt b2R1bGUgcHJvdmlkZXMgYSByYXRpb25hbC1udW1iZXIgY2xhc3MuICBSYXRpb25hbCBudW1iZXJz IHN0b3JlIHRoZWlyDQpAQCAtMTQ1MCw3ICsxNDUxLDcgQEAgdmFsdWVzIGFzIGEgbnVtZXJhdG9y IGFuZCBkZW5vbWluYXRvciBmb3JtaW5nIGEgZnJhY3Rpb24sIGFuZCBjYW4NCiBleGFjdGx5IHJl cHJlc2VudCBudW1iZXJzIHN1Y2ggYXMgYGAyLzNgYCB0aGF0IGZsb2F0aW5nLXBvaW50IG51bWJl cnMNCiBjYW4gb25seSBhcHByb3hpbWF0ZS4NCiANCi1UaGUgOmNsYXNzOmBGcmFjdGlvbmAgY29u c3RydWN0b3IgdGFrZXMgdHdvIDpjbGFzczpgSW50ZWdyYWxgIHZhbHVlcw0KK1RoZSA6Y2xhc3M6 YH5mcmFjdGlvbnMuRnJhY3Rpb25gIGNvbnN0cnVjdG9yIHRha2VzIHR3byA6Y2xhc3M6YH5udW1i ZXJzLkludGVncmFsYCB2YWx1ZXMNCiB0aGF0IHdpbGwgYmUgdGhlIG51bWVyYXRvciBhbmQgZGVu b21pbmF0b3Igb2YgdGhlIHJlc3VsdGluZyBmcmFjdGlvbi4gOjoNCiANCiAgICAgPj4+IGZyb20g ZnJhY3Rpb25zIGltcG9ydCBGcmFjdGlvbg0KQEAgLTE0NjQsNyArMTQ2NSw3IEBAIHRoYXQgd2ls bCBiZSB0aGUgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBvZiB0aGUgcmVzdWx0aW5nIGZyYWN0 aW9uLiA6Og0KICAgICBGcmFjdGlvbig1LCAzKQ0KIA0KIEZvciBjb252ZXJ0aW5nIGZsb2F0aW5n LXBvaW50IG51bWJlcnMgdG8gcmF0aW9uYWxzLA0KLXRoZSBmbG9hdCB0eXBlIG5vdyBoYXMgYW4g Om1ldGg6YGFzX2ludGVnZXJfcmF0aW9gIG1ldGhvZCB0aGF0IHJldHVybnMNCit0aGUgZmxvYXQg dHlwZSBub3cgaGFzIGFuIDptZXRoOmB+ZmxvYXQuYXNfaW50ZWdlcl9yYXRpb2AgbWV0aG9kIHRo YXQgcmV0dXJucw0KIHRoZSBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGZvciBhIGZyYWN0aW9u IHRoYXQgZXZhbHVhdGVzIHRvIHRoZSBzYW1lDQogZmxvYXRpbmctcG9pbnQgdmFsdWU6Og0KIA0K QEAgLTE0OTksNyArMTUwMCw3IEBAIFNvbWUgc21hbGxlciBjaGFuZ2VzIG1hZGUgdG8gdGhlIGNv cmUgUHl0aG9uIGxhbmd1YWdlIGFyZToNCiAgIDppc3N1ZTpgMTczOTQ2OGAuKQ0KIA0KICogVGhl IDpmdW5jOmBoYXNhdHRyYCBmdW5jdGlvbiB3YXMgY2F0Y2hpbmcgYW5kIGlnbm9yaW5nIGFsbCBl cnJvcnMsDQotICB1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZXkgbWVhbnQgYSA6bWV0aDpg X19nZXRhdHRyX19gIG1ldGhvZA0KKyAgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGV5IG1l YW50IGEgOm1ldGg6YH5vYmplY3QuX19nZXRhdHRyX19gIG1ldGhvZA0KICAgd2FzIGZhaWxpbmcg c29tZWhvdyBhbmQgdGhlIHJldHVybiB2YWx1ZSBvZiA6ZnVuYzpgaGFzYXR0cmAgd291bGQNCiAg IHRoZXJlZm9yZSBiZSBgYEZhbHNlYGAuICBUaGlzIGxvZ2ljIHNob3VsZG4ndCBiZSBhcHBsaWVk IHRvDQogICA6ZXhjOmBLZXlib2FyZEludGVycnVwdGAgYW5kIDpleGM6YFN5c3RlbUV4aXRgLCBo b3dldmVyOyBQeXRob24gMi42DQpAQCAtMTU4NiwxMCArMTU4NywxMCBAQCBTb21lIHNtYWxsZXIg Y2hhbmdlcyBtYWRlIHRvIHRoZSBjb3JlIFB5dGhvbiBsYW5ndWFnZSBhcmU6DQogICAgICAgICAg ICAgc2VsZi5feCA9IHZhbHVlIC8gMg0KIA0KICogU2V2ZXJhbCBtZXRob2RzIG9mIHRoZSBidWls dC1pbiBzZXQgdHlwZXMgbm93IGFjY2VwdCBtdWx0aXBsZSBpdGVyYWJsZXM6DQotICA6bWV0aDpg aW50ZXJzZWN0aW9uYCwNCi0gIDptZXRoOmBpbnRlcnNlY3Rpb25fdXBkYXRlYCwNCi0gIDptZXRo OmB1bmlvbmAsIDptZXRoOmB1cGRhdGVgLA0KLSAgOm1ldGg6YGRpZmZlcmVuY2VgIGFuZCA6bWV0 aDpgZGlmZmVyZW5jZV91cGRhdGVgLg0KKyAgOm1ldGg6YH5zZXQuaW50ZXJzZWN0aW9uYCwNCisg IDptZXRoOmB+c2V0LmludGVyc2VjdGlvbl91cGRhdGVgLA0KKyAgOm1ldGg6YH5zZXQudW5pb25g LCA6bWV0aDpgfnNldC51cGRhdGVgLA0KKyAgOm1ldGg6YH5zZXQuZGlmZmVyZW5jZWAgYW5kIDpt ZXRoOmB+c2V0LmRpZmZlcmVuY2VfdXBkYXRlYC4NCiANCiAgIDo6DQogDQpAQCAtMTYwNyw4ICsx NjA4LDggQEAgU29tZSBzbWFsbGVyIGNoYW5nZXMgbWFkZSB0byB0aGUgY29yZSBQeXRob24gbGFu Z3VhZ2UgYXJlOg0KICAgcG9zaXRpdmUgb3IgbmVnYXRpdmUgaW5maW5pdHkuICBUaGlzIHdvcmtz IG9uIGFueSBwbGF0Zm9ybSB3aXRoDQogICBJRUVFIDc1NCBzZW1hbnRpY3MuICAoQ29udHJpYnV0 ZWQgYnkgQ2hyaXN0aWFuIEhlaW1lczsgOmlzc3VlOmAxNjM1YC4pDQogDQotICBPdGhlciBmdW5j dGlvbnMgaW4gdGhlIDptb2Q6YG1hdGhgIG1vZHVsZSwgOmZ1bmM6YGlzaW5mYCBhbmQNCi0gIDpm dW5jOmBpc25hbmAsIHJldHVybiB0cnVlIGlmIHRoZWlyIGZsb2F0aW5nLXBvaW50IGFyZ3VtZW50 IGlzDQorICBPdGhlciBmdW5jdGlvbnMgaW4gdGhlIDptb2Q6YG1hdGhgIG1vZHVsZSwgOmZ1bmM6 YH5tYXRoLmlzaW5mYCBhbmQNCisgIDpmdW5jOmB+bWF0aC5pc25hbmAsIHJldHVybiB0cnVlIGlm IHRoZWlyIGZsb2F0aW5nLXBvaW50IGFyZ3VtZW50IGlzDQogICBpbmZpbml0ZSBvciBOb3QgQSBO dW1iZXIuICAoOmlzc3VlOmAxNjQwYCkNCiANCiAgIENvbnZlcnNpb24gZnVuY3Rpb25zIHdlcmUg YWRkZWQgdG8gY29udmVydCBmbG9hdGluZy1wb2ludCBudW1iZXJzDQpAQCAtMTYzMywxNyArMTYz NCwxNyBAQCBTb21lIHNtYWxsZXIgY2hhbmdlcyBtYWRlIHRvIHRoZSBjb3JlIFB5dGhvbiBsYW5n dWFnZSBhcmU6DQogICA6ZnVuYzpgY29tcGxleGAgY29uc3RydWN0b3Igd2lsbCBub3cgcHJlc2Vy dmUgdGhlIHNpZ24NCiAgIG9mIHRoZSB6ZXJvLiAgKEZpeGVkIGJ5IE1hcmsgVC4gRGlja2luc29u OyA6aXNzdWU6YDE1MDdgLikNCiANCi0qIENsYXNzZXMgdGhhdCBpbmhlcml0IGEgOm1ldGg6YF9f aGFzaF9fYCBtZXRob2QgZnJvbSBhIHBhcmVudCBjbGFzcw0KKyogQ2xhc3NlcyB0aGF0IGluaGVy aXQgYSA6bWV0aDpgfm9iamVjdC5fX2hhc2hfX2AgbWV0aG9kIGZyb20gYSBwYXJlbnQgY2xhc3MN CiAgIGNhbiBzZXQgYGBfX2hhc2hfXyA9IE5vbmVgYCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjbGFz cyBpc24ndA0KICAgaGFzaGFibGUuICBUaGlzIHdpbGwgbWFrZSBgYGhhc2gob2JqKWBgIHJhaXNl IGEgOmV4YzpgVHlwZUVycm9yYA0KICAgYW5kIHRoZSBjbGFzcyB3aWxsIG5vdCBiZSBpbmRpY2F0 ZWQgYXMgaW1wbGVtZW50aW5nIHRoZQ0KICAgOmNsYXNzOmBIYXNoYWJsZWAgQUJDLg0KIA0KLSAg WW91IHNob3VsZCBkbyB0aGlzIHdoZW4geW91J3ZlIGRlZmluZWQgYSA6bWV0aDpgX19jbXBfX2Ag b3INCi0gIDptZXRoOmBfX2VxX19gIG1ldGhvZCB0aGF0IGNvbXBhcmVzIG9iamVjdHMgYnkgdGhl aXIgdmFsdWUgcmF0aGVyDQorICBZb3Ugc2hvdWxkIGRvIHRoaXMgd2hlbiB5b3UndmUgZGVmaW5l ZCBhIDptZXRoOmAhX19jbXBfX2Agb3INCisgIDptZXRoOmB+b2JqZWN0Ll9fZXFfX2AgbWV0aG9k IHRoYXQgY29tcGFyZXMgb2JqZWN0cyBieSB0aGVpciB2YWx1ZSByYXRoZXINCiAgIHRoYW4gYnkg aWRlbnRpdHkuICBBbGwgb2JqZWN0cyBoYXZlIGEgZGVmYXVsdCBoYXNoIG1ldGhvZCB0aGF0IHVz ZXMNCiAgIGBgaWQob2JqKWBgIGFzIHRoZSBoYXNoIHZhbHVlLiAgVGhlcmUncyBubyB0aWR5IHdh eSB0byByZW1vdmUgdGhlDQotICA6bWV0aDpgX19oYXNoX19gIG1ldGhvZCBpbmhlcml0ZWQgZnJv bSBhIHBhcmVudCBjbGFzcywgc28NCisgIDptZXRoOmB+b2JqZWN0Ll9faGFzaF9fYCBtZXRob2Qg aW5oZXJpdGVkIGZyb20gYSBwYXJlbnQgY2xhc3MsIHNvDQogICBhc3NpZ25pbmcgYGBOb25lYGAg d2FzIGltcGxlbWVudGVkIGFzIGFuIG92ZXJyaWRlLiAgQXQgdGhlDQogICBDIGxldmVsLCBleHRl bnNpb25zIGNhbiBzZXQgYGB0cF9oYXNoYGAgdG8NCiAgIDpjOmZ1bmM6YFB5T2JqZWN0X0hhc2hO b3RJbXBsZW1lbnRlZGAuDQpAQCAtMTY1NSw3ICsxNjU2LDcgQEAgU29tZSBzbWFsbGVyIGNoYW5n ZXMgbWFkZSB0byB0aGUgY29yZSBQeXRob24gbGFuZ3VhZ2UgYXJlOg0KICAgd2lsbCBub3QgaW5h ZHZlcnRlbnRseSBjYXRjaCA6ZXhjOmBHZW5lcmF0b3JFeGl0YC4NCiAgIChDb250cmlidXRlZCBi eSBDaGFkIEF1c3RpbjsgOmlzc3VlOmAxNTM3YC4pDQogDQotKiBHZW5lcmF0b3Igb2JqZWN0cyBu b3cgaGF2ZSBhIDphdHRyOmBnaV9jb2RlYCBhdHRyaWJ1dGUgdGhhdCByZWZlcnMgdG8NCisqIEdl bmVyYXRvciBvYmplY3RzIG5vdyBoYXZlIGEgOmF0dHI6YCFnaV9jb2RlYCBhdHRyaWJ1dGUgdGhh dCByZWZlcnMgdG8NCiAgIHRoZSBvcmlnaW5hbCBjb2RlIG9iamVjdCBiYWNraW5nIHRoZSBnZW5l cmF0b3IuDQogICAoQ29udHJpYnV0ZWQgYnkgQ29sbGluIFdpbnRlcjsgOmlzc3VlOmAxNDczMjU3 YC4pDQogDQpAQCAtMTY2OCwxNyArMTY2OSwxNyBAQCBTb21lIHNtYWxsZXIgY2hhbmdlcyBtYWRl IHRvIHRoZSBjb3JlIFB5dGhvbiBsYW5ndWFnZSBhcmU6DQogICB3aWxsIG5vdyByb3VuZC10cmlw IHZhbHVlcy4gIEZvciBleGFtcGxlLCBgYGNvbXBsZXgoJygzKzRqKScpYGANCiAgIG5vdyByZXR1 cm5zIHRoZSB2YWx1ZSAoMys0aikuICAoOmlzc3VlOmAxNDkxODY2YCkNCiANCi0qIFRoZSBzdHJp bmcgOm1ldGg6YHRyYW5zbGF0ZWAgbWV0aG9kIG5vdyBhY2NlcHRzIGBgTm9uZWBgIGFzIHRoZQ0K KyogVGhlIHN0cmluZyA6bWV0aDpgfnN0ci50cmFuc2xhdGVgIG1ldGhvZCBub3cgYWNjZXB0cyBg YE5vbmVgYCBhcyB0aGUNCiAgIHRyYW5zbGF0aW9uIHRhYmxlIHBhcmFtZXRlciwgd2hpY2ggaXMg dHJlYXRlZCBhcyB0aGUgaWRlbnRpdHkNCiAgIHRyYW5zZm9ybWF0aW9uLiAgIFRoaXMgbWFrZXMg aXQgZWFzaWVyIHRvIGNhcnJ5IG91dCBvcGVyYXRpb25zDQogICB0aGF0IG9ubHkgZGVsZXRlIGNo YXJhY3RlcnMuICAoQ29udHJpYnV0ZWQgYnkgQmVuZ3QgUmljaHRlciBhbmQNCiAgIGltcGxlbWVu dGVkIGJ5IFJheW1vbmQgSGV0dGluZ2VyOyA6aXNzdWU6YDExOTMxMjhgLikNCiANCi0qIFRoZSBi dWlsdC1pbiA6ZnVuYzpgZGlyYCBmdW5jdGlvbiBub3cgY2hlY2tzIGZvciBhIDptZXRoOmBfX2Rp cl9fYA0KKyogVGhlIGJ1aWx0LWluIDpmdW5jOmBkaXJgIGZ1bmN0aW9uIG5vdyBjaGVja3MgZm9y IGEgOm1ldGg6YH5vYmplY3QuX19kaXJfX2ANCiAgIG1ldGhvZCBvbiB0aGUgb2JqZWN0cyBpdCBy ZWNlaXZlcy4gIFRoaXMgbWV0aG9kIG11c3QgcmV0dXJuIGEgbGlzdA0KICAgb2Ygc3RyaW5ncyBj b250YWluaW5nIHRoZSBuYW1lcyBvZiB2YWxpZCBhdHRyaWJ1dGVzIGZvciB0aGUgb2JqZWN0LA0K ICAgYW5kIGxldHMgdGhlIG9iamVjdCBjb250cm9sIHRoZSB2YWx1ZSB0aGF0IDpmdW5jOmBkaXJg IHByb2R1Y2VzLg0KLSAgT2JqZWN0cyB0aGF0IGhhdmUgOm1ldGg6YF9fZ2V0YXR0cl9fYCBvciA6 bWV0aDpgX19nZXRhdHRyaWJ1dGVfX2ANCisgIE9iamVjdHMgdGhhdCBoYXZlIDptZXRoOmB+b2Jq ZWN0Ll9fZ2V0YXR0cl9fYCBvciA6bWV0aDpgfm9iamVjdC5fX2dldGF0dHJpYnV0ZV9fYA0KICAg bWV0aG9kcyBjYW4gdXNlIHRoaXMgdG8gYWR2ZXJ0aXNlIHBzZXVkby1hdHRyaWJ1dGVzIHRoZXkg d2lsbCBob25vci4NCiAgICg6aXNzdWU6YDE1OTE2NjVgKQ0KIA0KQEAgLTE3MzksOCArMTc0MCw4 IEBAIE9wdGltaXphdGlvbnMNCiAgIG9uZSBvZiB0aGVzZSB0eXBlcy4gIChDb250cmlidXRlZCBi eSBOZWFsIE5vcndpdHouKQ0KIA0KICogVW5pY29kZSBzdHJpbmdzIG5vdyB1c2UgZmFzdGVyIGNv ZGUgZm9yIGRldGVjdGluZw0KLSAgd2hpdGVzcGFjZSBhbmQgbGluZSBicmVha3M7IHRoaXMgc3Bl ZWRzIHVwIHRoZSA6bWV0aDpgc3BsaXRgIG1ldGhvZA0KLSAgYnkgYWJvdXQgMjUlIGFuZCA6bWV0 aDpgc3BsaXRsaW5lc2AgYnkgMzUlLg0KKyAgd2hpdGVzcGFjZSBhbmQgbGluZSBicmVha3M7IHRo aXMgc3BlZWRzIHVwIHRoZSA6bWV0aDpgfnN0ci5zcGxpdGAgbWV0aG9kDQorICBieSBhYm91dCAy NSUgYW5kIDptZXRoOmB+c3RyLnNwbGl0bGluZXNgIGJ5IDM1JS4NCiAgIChDb250cmlidXRlZCBi eSBBbnRvaW5lIFBpdHJvdS4pICBNZW1vcnkgdXNhZ2UgaXMgcmVkdWNlZA0KICAgYnkgdXNpbmcg cHltYWxsb2MgZm9yIHRoZSBVbmljb2RlIHN0cmluZydzIGRhdGEuDQogDQpAQCAtMTc1Niw3ICsx NzU3LDcgQEAgT3B0aW1pemF0aW9ucw0KIC4uIF9uZXctMjYtaW50ZXJwcmV0ZXI6DQogDQogSW50 ZXJwcmV0ZXIgQ2hhbmdlcw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLS0t LS0tLS0tLS0tLS0tLS0tDQogDQogVHdvIGNvbW1hbmQtbGluZSBvcHRpb25zIGhhdmUgYmVlbiBy ZXNlcnZlZCBmb3IgdXNlIGJ5IG90aGVyIFB5dGhvbg0KIGltcGxlbWVudGF0aW9ucy4gIFRoZSA6 b3B0aW9uOmAhLUpgIHN3aXRjaCBoYXMgYmVlbiByZXNlcnZlZCBmb3IgdXNlIGJ5DQpAQCAtMTgw MCwxNSArMTgwMSwxNSBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24g bG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgd2VyZSBhcHBsaWVkLiAgKE1haW50YWluZWQg YnkgSm9zaWFoIENhcmxzb247IHNlZSA6aXNzdWU6YDE3MzYxOTBgIGZvcg0KICAgb25lIHBhdGNo LikNCiANCi0qIFRoZSA6bW9kOmBic2RkYmAgbW9kdWxlIGFsc28gaGFzIGEgbmV3IG1haW50YWlu ZXIsIEplc8O6cyBDZWEgQXZpw7NuLCBhbmQgdGhlIHBhY2thZ2UNCi0gIGlzIG5vdyBhdmFpbGFi bGUgYXMgYSBzdGFuZGFsb25lIHBhY2thZ2UuICBUaGUgd2ViIHBhZ2UgZm9yIHRoZSBwYWNrYWdl IGlzDQotICBgd3d3LmpjZWEuZXMvcHJvZ3JhbWFjaW9uL3B5YnNkZGIuaHRtDQorKiBUaGUgOm1v ZDpgIWJzZGRiYCBtb2R1bGUgYWxzbyBoYXMgYSBuZXcgbWFpbnRhaW5lciwgSmVzw7pzIENlYSBB dmnDs24sIGFuZCB0aGUNCisgIHBhY2thZ2UgaXMgbm93IGF2YWlsYWJsZSBhcyBhIHN0YW5kYWxv bmUgcGFja2FnZS4gIFRoZSB3ZWIgcGFnZSBmb3IgdGhlIHBhY2thZ2UNCisgIGlzIGB3d3cuamNl YS5lcy9wcm9ncmFtYWNpb24vcHlic2RkYi5odG0NCiAgIDxodHRwczovL3d3dy5qY2VhLmVzL3By b2dyYW1hY2lvbi9weWJzZGRiLmh0bT5gX18uDQogICBUaGUgcGxhbiBpcyB0byByZW1vdmUgdGhl IHBhY2thZ2UgZnJvbSB0aGUgc3RhbmRhcmQgbGlicmFyeQ0KICAgaW4gUHl0aG9uIDMuMCwgYmVj YXVzZSBpdHMgcGFjZSBvZiByZWxlYXNlcyBpcyBtdWNoIG1vcmUgZnJlcXVlbnQgdGhhbg0KICAg UHl0aG9uJ3MuDQogDQotICBUaGUgOm1vZDpgYnNkZGIuZGJzaGVsdmVgIG1vZHVsZSBub3cgdXNl cyB0aGUgaGlnaGVzdCBwaWNrbGluZyBwcm90b2NvbA0KKyAgVGhlIDptb2Q6YCFic2RkYi5kYnNo ZWx2ZWAgbW9kdWxlIG5vdyB1c2VzIHRoZSBoaWdoZXN0IHBpY2tsaW5nIHByb3RvY29sDQogICBh dmFpbGFibGUsIGluc3RlYWQgb2YgcmVzdHJpY3RpbmcgaXRzZWxmIHRvIHByb3RvY29sIDEuDQog ICAoQ29udHJpYnV0ZWQgYnkgVy4gQmFybmVzLikNCiANCkBAIC0xODE4LDkgKzE4MTksOSBAQCBj aGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBk ZXRhaWxzLg0KICAgIi9jZ2ktYmluL2FkZC5weT9jYXRlZ29yeT0xIi4gIChDb250cmlidXRlZCBi eSBBbGV4YW5kcmUgRmlvcmkgYW5kDQogICBOdWJpczsgOmlzc3VlOmAxODE3YC4pDQogDQotICBU aGUgOmZ1bmM6YHBhcnNlX3FzYCBhbmQgOmZ1bmM6YHBhcnNlX3FzbGAgZnVuY3Rpb25zIGhhdmUg YmVlbg0KLSAgcmVsb2NhdGVkIGZyb20gdGhlIDptb2Q6YCFjZ2lgIG1vZHVsZSB0byB0aGUgOm1v ZDpgdXJscGFyc2UgPHVybGxpYi5wYXJzZT5gIG1vZHVsZS4NCi0gIFRoZSB2ZXJzaW9ucyBzdGls bCBhdmFpbGFibGUgaW4gdGhlIDptb2Q6YCFjZ2lgIG1vZHVsZSB3aWxsDQorICBUaGUgOmZ1bmM6 YH51cmxsaWIucGFyc2UucGFyc2VfcXNgIGFuZCA6ZnVuYzpgfnVybGxpYi5wYXJzZS5wYXJzZV9x c2xgIGZ1bmN0aW9ucw0KKyAgaGF2ZSBiZWVuIHJlbG9jYXRlZCBmcm9tIHRoZSA6bW9kOmAhY2dp YCBtb2R1bGUgdG8gdGhlIDptb2Q6YHVybHBhcnNlIDx1cmxsaWIucGFyc2U+YA0KKyAgbW9kdWxl LiBUaGUgdmVyc2lvbnMgc3RpbGwgYXZhaWxhYmxlIGluIHRoZSA6bW9kOmAhY2dpYCBtb2R1bGUg d2lsbA0KICAgdHJpZ2dlciA6ZXhjOmBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYCBtZXNzYWdl cyBpbiAyLjYNCiAgICg6aXNzdWU6YDYwMDM2MmApLg0KIA0KQEAgLTE4MjgsMjcgKzE4MjksMjcg QEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0 aGUgZGV0YWlscy4NCiAgIGNvbnRyaWJ1dGVkIGJ5IE1hcmsgRGlja2luc29uIGFuZCBDaHJpc3Rp YW4gSGVpbWVzLg0KICAgRml2ZSBuZXcgZnVuY3Rpb25zIHdlcmUgYWRkZWQ6DQogDQotICAqIDpm dW5jOmBwb2xhcmAgY29udmVydHMgYSBjb21wbGV4IG51bWJlciB0byBwb2xhciBmb3JtLCByZXR1 cm5pbmcNCisgICogOmZ1bmM6YH5jbWF0aC5wb2xhcmAgY29udmVydHMgYSBjb21wbGV4IG51bWJl ciB0byBwb2xhciBmb3JtLCByZXR1cm5pbmcNCiAgICAgdGhlIG1vZHVsdXMgYW5kIGFyZ3VtZW50 IG9mIHRoZSBjb21wbGV4IG51bWJlci4NCiANCi0gICogOmZ1bmM6YHJlY3RgIGRvZXMgdGhlIG9w cG9zaXRlLCB0dXJuaW5nIGEgbW9kdWx1cywgYXJndW1lbnQgcGFpcg0KKyAgKiA6ZnVuYzpgfmNt YXRoLnJlY3RgIGRvZXMgdGhlIG9wcG9zaXRlLCB0dXJuaW5nIGEgbW9kdWx1cywgYXJndW1lbnQg cGFpcg0KICAgICBiYWNrIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgY29tcGxleCBudW1iZXIuDQog DQotICAqIDpmdW5jOmBwaGFzZWAgcmV0dXJucyB0aGUgYXJndW1lbnQgKGFsc28gY2FsbGVkIHRo ZSBhbmdsZSkgb2YgYSBjb21wbGV4DQorICAqIDpmdW5jOmB+Y21hdGgucGhhc2VgIHJldHVybnMg dGhlIGFyZ3VtZW50IChhbHNvIGNhbGxlZCB0aGUgYW5nbGUpIG9mIGEgY29tcGxleA0KICAgICBu dW1iZXIuDQogDQotICAqIDpmdW5jOmBpc25hbmAgcmV0dXJucyBUcnVlIGlmIGVpdGhlcg0KKyAg KiA6ZnVuYzpgfmNtYXRoLmlzbmFuYCByZXR1cm5zIFRydWUgaWYgZWl0aGVyDQogICAgIHRoZSBy ZWFsIG9yIGltYWdpbmFyeSBwYXJ0IG9mIGl0cyBhcmd1bWVudCBpcyBhIE5hTi4NCiANCi0gICog OmZ1bmM6YGlzaW5mYCByZXR1cm5zIFRydWUgaWYgZWl0aGVyIHRoZSByZWFsIG9yIGltYWdpbmFy eSBwYXJ0IG9mDQorICAqIDpmdW5jOmB+Y21hdGguaXNpbmZgIHJldHVybnMgVHJ1ZSBpZiBlaXRo ZXIgdGhlIHJlYWwgb3IgaW1hZ2luYXJ5IHBhcnQgb2YNCiAgICAgaXRzIGFyZ3VtZW50IGlzIGlu ZmluaXRlLg0KIA0KICAgVGhlIHJldmlzaW9ucyBhbHNvIGltcHJvdmVkIHRoZSBudW1lcmljYWwg c291bmRuZXNzIG9mIHRoZQ0KICAgOm1vZDpgY21hdGhgIG1vZHVsZS4gIEZvciBhbGwgZnVuY3Rp b25zLCB0aGUgcmVhbCBhbmQgaW1hZ2luYXJ5DQogICBwYXJ0cyBvZiB0aGUgcmVzdWx0cyBhcmUg YWNjdXJhdGUgdG8gd2l0aGluIGEgZmV3IHVuaXRzIG9mIGxlYXN0DQogICBwcmVjaXNpb24gKHVs cHMpIHdoZW5ldmVyIHBvc3NpYmxlLiAgU2VlIDppc3N1ZTpgMTM4MWAgZm9yIHRoZQ0KLSAgZGV0 YWlscy4gIFRoZSBicmFuY2ggY3V0cyBmb3IgOmZ1bmM6YGFzaW5oYCwgOmZ1bmM6YGF0YW5oYDog YW5kDQotICA6ZnVuYzpgYXRhbmAgaGF2ZSBhbHNvIGJlZW4gY29ycmVjdGVkLg0KKyAgZGV0YWls cy4gIFRoZSBicmFuY2ggY3V0cyBmb3IgOmZ1bmM6YH5jbWF0aC5hc2luaGAsIDpmdW5jOmB+Y21h dGguYXRhbmhgLCBhbmQNCisgIDpmdW5jOmB+Y21hdGguYXRhbmAgaGF2ZSBhbHNvIGJlZW4gY29y cmVjdGVkLg0KIA0KICAgVGhlIHRlc3RzIGZvciB0aGUgbW9kdWxlIGhhdmUgYmVlbiBncmVhdGx5 IGV4cGFuZGVkOyBuZWFybHkgMjAwMCBuZXcNCiAgIHRlc3QgY2FzZXMgZXhlcmNpc2UgdGhlIGFs Z2VicmFpYyBmdW5jdGlvbnMuDQpAQCAtMTg4MCwxNCArMTg4MSwxNCBAQCBjaGFuZ2VzLCBvciBs b29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAg ICAgdmFyaWFibGUoaWQ9MSwgbmFtZT0nYW1wbGl0dWRlJywgdHlwZT0naW50Jywgc2l6ZT00KQ0K IA0KICAgU2V2ZXJhbCBwbGFjZXMgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkgdGhhdCByZXR1cm5l ZCB0dXBsZXMgaGF2ZQ0KLSAgYmVlbiBtb2RpZmllZCB0byByZXR1cm4gOmZ1bmM6YG5hbWVkdHVw bGVgIGluc3RhbmNlcy4gIEZvciBleGFtcGxlLA0KLSAgdGhlIDptZXRoOmBEZWNpbWFsLmFzX3R1 cGxlYCBtZXRob2Qgbm93IHJldHVybnMgYSBuYW1lZCB0dXBsZSB3aXRoDQotICA6YXR0cjpgc2ln bmAsIDphdHRyOmBkaWdpdHNgLCBhbmQgOmF0dHI6YGV4cG9uZW50YCBmaWVsZHMuDQorICBiZWVu IG1vZGlmaWVkIHRvIHJldHVybiA6ZnVuYzpgfmNvbGxlY3Rpb25zLm5hbWVkdHVwbGVgIGluc3Rh bmNlcy4gIEZvciBleGFtcGxlLA0KKyAgdGhlIDptZXRoOmBkZWNpbWFsLkRlY2ltYWwuYXNfdHVw bGVgIG1ldGhvZCBub3cgcmV0dXJucyBhIG5hbWVkIHR1cGxlIHdpdGgNCisgIDphdHRyOmAhc2ln bmAsIDphdHRyOmAhZGlnaXRzYCwgYW5kIDphdHRyOmAhZXhwb25lbnRgIGZpZWxkcy4NCiANCiAg IChDb250cmlidXRlZCBieSBSYXltb25kIEhldHRpbmdlci4pDQogDQogKiBBbm90aGVyIGNoYW5n ZSB0byB0aGUgOm1vZDpgY29sbGVjdGlvbnNgIG1vZHVsZSBpcyB0aGF0IHRoZQ0KLSAgOmNsYXNz OmBkZXF1ZWAgdHlwZSBub3cgc3VwcG9ydHMgYW4gb3B0aW9uYWwgKm1heGxlbiogcGFyYW1ldGVy Ow0KKyAgOmNsYXNzOmB+Y29sbGVjdGlvbnMuZGVxdWVgIHR5cGUgbm93IHN1cHBvcnRzIGFuIG9w dGlvbmFsICptYXhsZW4qIHBhcmFtZXRlcjsNCiAgIGlmIHN1cHBsaWVkLCB0aGUgZGVxdWUncyBz aXplIHdpbGwgYmUgcmVzdHJpY3RlZCB0byBubyBtb3JlDQogICB0aGFuICptYXhsZW4qIGl0ZW1z LiAgQWRkaW5nIG1vcmUgaXRlbXMgdG8gYSBmdWxsIGRlcXVlIGNhdXNlcw0KICAgb2xkIGl0ZW1z IHRvIGJlIGRpc2NhcmRlZC4NCkBAIC0xOTEzLDcgKzE5MTQsNyBAQCBjaGFuZ2VzLCBvciBsb29r IHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgKENv bnRyaWJ1dGVkIGJ5IEFydmluIFNjaG5lbGw7IDppc3N1ZTpgMTYzODAzM2AuKQ0KIA0KICogQSBu ZXcgd2luZG93IG1ldGhvZCBpbiB0aGUgOm1vZDpgY3Vyc2VzYCBtb2R1bGUsDQotICA6bWV0aDpg Y2hnYXRgLCBjaGFuZ2VzIHRoZSBkaXNwbGF5IGF0dHJpYnV0ZXMgZm9yIGEgY2VydGFpbiBudW1i ZXIgb2YNCisgIDptZXRoOmB+Y3Vyc2VzLndpbmRvdy5jaGdhdGAsIGNoYW5nZXMgdGhlIGRpc3Bs YXkgYXR0cmlidXRlcyBmb3IgYSBjZXJ0YWluIG51bWJlciBvZg0KICAgY2hhcmFjdGVycyBvbiBh IHNpbmdsZSBsaW5lLiAgKENvbnRyaWJ1dGVkIGJ5IEZhYmlhbiBLcmV1dHouKQ0KIA0KICAgOjoN CkBAIC0xOTIyLDIwICsxOTIzLDIwIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3Vi dmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICAgICAjIGFuZCBhZmZlY3Rpbmcg dGhlIHJlc3Qgb2YgdGhlIGxpbmUuDQogICAgICBzdGRzY3IuY2hnYXQoMCwgMjEsIGN1cnNlcy5B X0JPTEQpDQogDQotICBUaGUgOmNsYXNzOmBUZXh0Ym94YCBjbGFzcyBpbiB0aGUgOm1vZDpgY3Vy c2VzLnRleHRwYWRgIG1vZHVsZQ0KKyAgVGhlIDpjbGFzczpgfmN1cnNlcy50ZXh0cGFkLlRleHRi b3hgIGNsYXNzIGluIHRoZSA6bW9kOmBjdXJzZXMudGV4dHBhZGAgbW9kdWxlDQogICBub3cgc3Vw cG9ydHMgZWRpdGluZyBpbiBpbnNlcnQgbW9kZSBhcyB3ZWxsIGFzIG92ZXJ3cml0ZSBtb2RlLg0K ICAgSW5zZXJ0IG1vZGUgaXMgZW5hYmxlZCBieSBzdXBwbHlpbmcgYSB0cnVlIHZhbHVlIGZvciB0 aGUgKmluc2VydF9tb2RlKg0KLSAgcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgdGhlIDpjbGFzczpg VGV4dGJveGAgaW5zdGFuY2UuDQorICBwYXJhbWV0ZXIgd2hlbiBjcmVhdGluZyB0aGUgOmNsYXNz OmB+Y3Vyc2VzLnRleHRwYWQuVGV4dGJveGAgaW5zdGFuY2UuDQogDQotKiBUaGUgOm1vZDpgZGF0 ZXRpbWVgIG1vZHVsZSdzIDptZXRoOmBzdHJmdGltZWAgbWV0aG9kcyBub3cgc3VwcG9ydCBhDQot ICBgYCVmYGAgZm9ybWF0IGNvZGUgdGhhdCBleHBhbmRzIHRvIHRoZSBudW1iZXIgb2YgbWljcm9z ZWNvbmRzIGluIHRoZQ0KKyogVGhlIDptb2Q6YGRhdGV0aW1lYCBtb2R1bGUncyA6bWV0aDpgfmRh dGV0aW1lLmRhdGV0aW1lLnN0cmZ0aW1lYCBtZXRob2RzIG5vdw0KKyAgc3VwcG9ydCBhIGBgJWZg YCBmb3JtYXQgY29kZSB0aGF0IGV4cGFuZHMgdG8gdGhlIG51bWJlciBvZiBtaWNyb3NlY29uZHMg aW4gdGhlDQogICBvYmplY3QsIHplcm8tcGFkZGVkIG9uDQogICB0aGUgbGVmdCB0byBzaXggcGxh Y2VzLiAgKENvbnRyaWJ1dGVkIGJ5IFNraXAgTW9udGFuYXJvOyA6aXNzdWU6YDExNThgLikNCiAN CiAqIFRoZSA6bW9kOmBkZWNpbWFsYCBtb2R1bGUgd2FzIHVwZGF0ZWQgdG8gdmVyc2lvbiAxLjY2 IG9mDQogICBgdGhlIEdlbmVyYWwgRGVjaW1hbCBTcGVjaWZpY2F0aW9uIDxodHRwczovL3NwZWxl b3Ryb3ZlLmNvbS9kZWNpbWFsL2RlY2FyaXRoLmh0bWw+YF9fLiAgTmV3IGZlYXR1cmVzDQogICBp bmNsdWRlIHNvbWUgbWV0aG9kcyBmb3Igc29tZSBiYXNpYyBtYXRoZW1hdGljYWwgZnVuY3Rpb25z IHN1Y2ggYXMNCi0gIDptZXRoOmBleHBgIGFuZCA6bWV0aDpgbG9nMTBgOjoNCisgIDptZXRoOmB+ ZGVjaW1hbC5EZWNpbWFsLmV4cGAgYW5kIDptZXRoOmB+ZGVjaW1hbC5EZWNpbWFsLmxvZzEwYDo6 DQogDQogICAgID4+PiBEZWNpbWFsKDEpLmV4cCgpDQogICAgIERlY2ltYWwoIjIuNzE4MjgxODI4 NDU5MDQ1MjM1MzYwMjg3NDcxIikNCkBAIC0xOTQ0LDI4ICsxOTQ1LDI5IEBAIGNoYW5nZXMsIG9y IGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQog ICAgID4+PiBEZWNpbWFsKDEwMDApLmxvZzEwKCkNCiAgICAgRGVjaW1hbCgiMyIpDQogDQotICBU aGUgOm1ldGg6YGFzX3R1cGxlYCBtZXRob2Qgb2YgOmNsYXNzOmBEZWNpbWFsYCBvYmplY3RzIG5v dyByZXR1cm5zIGENCi0gIG5hbWVkIHR1cGxlIHdpdGggOmF0dHI6YHNpZ25gLCA6YXR0cjpgZGln aXRzYCwgYW5kIDphdHRyOmBleHBvbmVudGAgZmllbGRzLg0KKyAgVGhlIDptZXRoOmB+ZGVjaW1h bC5EZWNpbWFsLmFzX3R1cGxlYCBtZXRob2Qgb2YgOmNsYXNzOmB+ZGVjaW1hbC5EZWNpbWFsYA0K KyAgb2JqZWN0cyBub3cgcmV0dXJucyBhIG5hbWVkIHR1cGxlIHdpdGggOmF0dHI6YCFzaWduYCwg OmF0dHI6YCFkaWdpdHNgLCBhbmQNCisgIDphdHRyOmAhZXhwb25lbnRgIGZpZWxkcy4NCiANCiAg IChJbXBsZW1lbnRlZCBieSBGYWN1bmRvIEJhdGlzdGEgYW5kIE1hcmsgRGlja2luc29uLiAgTmFt ZWQgdHVwbGUNCiAgIHN1cHBvcnQgYWRkZWQgYnkgUmF5bW9uZCBIZXR0aW5nZXIuKQ0KIA0KLSog VGhlIDptb2Q6YGRpZmZsaWJgIG1vZHVsZSdzIDpjbGFzczpgU2VxdWVuY2VNYXRjaGVyYCBjbGFz cw0KKyogVGhlIDptb2Q6YGRpZmZsaWJgIG1vZHVsZSdzIDpjbGFzczpgfmRpZmZsaWIuU2VxdWVu Y2VNYXRjaGVyYCBjbGFzcw0KICAgbm93IHJldHVybnMgbmFtZWQgdHVwbGVzIHJlcHJlc2VudGlu ZyBtYXRjaGVzLA0KLSAgd2l0aCA6YXR0cjpgYWAsIDphdHRyOmBiYCwgYW5kIDphdHRyOmBzaXpl YCBhdHRyaWJ1dGVzLg0KKyAgd2l0aCA6YXR0cjpgIWFgLCA6YXR0cjpgIWJgLCBhbmQgOmF0dHI6 YCFzaXplYCBhdHRyaWJ1dGVzLg0KICAgKENvbnRyaWJ1dGVkIGJ5IFJheW1vbmQgSGV0dGluZ2Vy LikNCiANCiAqIEFuIG9wdGlvbmFsIGBgdGltZW91dGBgIHBhcmFtZXRlciwgc3BlY2lmeWluZyBh IHRpbWVvdXQgbWVhc3VyZWQgaW4NCiAgIHNlY29uZHMsIHdhcyBhZGRlZCB0byB0aGUgOmNsYXNz OmBmdHBsaWIuRlRQYCBjbGFzcyBjb25zdHJ1Y3RvciBhcw0KLSAgd2VsbCBhcyB0aGUgOm1ldGg6 YGNvbm5lY3RgIG1ldGhvZC4gIChBZGRlZCBieSBGYWN1bmRvIEJhdGlzdGEuKQ0KLSAgQWxzbywg dGhlIDpjbGFzczpgRlRQYCBjbGFzcydzIDptZXRoOmBzdG9yYmluYXJ5YCBhbmQNCi0gIDptZXRo OmBzdG9ybGluZXNgIG5vdyB0YWtlIGFuIG9wdGlvbmFsICpjYWxsYmFjayogcGFyYW1ldGVyIHRo YXQNCisgIHdlbGwgYXMgdGhlIDptZXRoOmB+ZnRwbGliLkZUUC5jb25uZWN0YCBtZXRob2QuICAo QWRkZWQgYnkgRmFjdW5kbyBCYXRpc3RhLikNCisgIEFsc28sIHRoZSA6Y2xhc3M6YH5mdHBsaWIu RlRQYCBjbGFzcydzIDptZXRoOmB+ZnRwbGliLkZUUC5zdG9yYmluYXJ5YCBhbmQNCisgIDptZXRo OmB+ZnRwbGliLkZUUC5zdG9ybGluZXNgIG5vdyB0YWtlIGFuIG9wdGlvbmFsICpjYWxsYmFjayog cGFyYW1ldGVyIHRoYXQNCiAgIHdpbGwgYmUgY2FsbGVkIHdpdGggZWFjaCBibG9jayBvZiBkYXRh IGFmdGVyIHRoZSBkYXRhIGhhcyBiZWVuIHNlbnQuDQogICAoQ29udHJpYnV0ZWQgYnkgUGhpbCBT Y2h3YXJ0ejsgOmlzc3VlOmAxMjIxNTk4YC4pDQogDQotKiBUaGUgOmZ1bmM6YHJlZHVjZWAgYnVp bHQtaW4gZnVuY3Rpb24gaXMgYWxzbyBhdmFpbGFibGUgaW4gdGhlDQorKiBUaGUgOmZ1bmM6YCFy ZWR1Y2VgIGJ1aWx0LWluIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIGluIHRoZQ0KICAgOm1v ZDpgZnVuY3Rvb2xzYCBtb2R1bGUuICBJbiBQeXRob24gMy4wLCB0aGUgYnVpbHRpbiBoYXMgYmVl bg0KLSAgZHJvcHBlZCBhbmQgOmZ1bmM6YHJlZHVjZWAgaXMgb25seSBhdmFpbGFibGUgZnJvbSA6 bW9kOmBmdW5jdG9vbHNgOw0KKyAgZHJvcHBlZCBhbmQgOmZ1bmM6YH5mdW5jdG9vbHMucmVkdWNl YCBpcyBvbmx5IGF2YWlsYWJsZSBmcm9tIDptb2Q6YGZ1bmN0b29sc2A7DQogICBjdXJyZW50bHkg dGhlcmUgYXJlIG5vIHBsYW5zIHRvIGRyb3AgdGhlIGJ1aWx0aW4gaW4gdGhlIDIueCBzZXJpZXMu DQogICAoUGF0Y2hlZCBieSBDaHJpc3RpYW4gSGVpbWVzOyA6aXNzdWU6YDE3Mzk5MDZgLikNCiAN CkBAIC0xOTg5LDggKzE5OTEsOCBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZl cnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KIA0KICAgQW5vdGhlciBuZXcgZnVuY3Rp b24sIGBgaGVhcHB1c2hwb3AoaGVhcCwgaXRlbSlgYCwNCiAgIHB1c2hlcyAqaXRlbSogb250byAq aGVhcCosIHRoZW4gcG9wcyBvZmYgYW5kIHJldHVybnMgdGhlIHNtYWxsZXN0IGl0ZW0uDQotICBU aGlzIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gbWFraW5nIGEgY2FsbCB0byA6ZnVuYzpgaGVhcHB1 c2hgIGFuZCB0aGVuDQotICA6ZnVuYzpgaGVhcHBvcGAuDQorICBUaGlzIGlzIG1vcmUgZWZmaWNp ZW50IHRoYW4gbWFraW5nIGEgY2FsbCB0byA6ZnVuYzpgfmhlYXBxLmhlYXBwdXNoYCBhbmQgdGhl bg0KKyAgOmZ1bmM6YH5oZWFwcS5oZWFwcG9wYC4NCiANCiAgIDptb2Q6YGhlYXBxYCBpcyBub3cg aW1wbGVtZW50ZWQgdG8gb25seSB1c2UgbGVzcy10aGFuIGNvbXBhcmlzb24sDQogICBpbnN0ZWFk IG9mIHRoZSBsZXNzLXRoYW4tb3ItZXF1YWwgY29tcGFyaXNvbiBpdCBwcmV2aW91c2x5IHVzZWQu DQpAQCAtMjAwNCwxNCArMjAwNiwxNCBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1 YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgQmF0aXN0YS4pDQogDQogKiBN b3N0IG9mIHRoZSA6bW9kOmBpbnNwZWN0YCBtb2R1bGUncyBmdW5jdGlvbnMsIHN1Y2ggYXMNCi0g IDpmdW5jOmBnZXRtb2R1bGVpbmZvYCBhbmQgOmZ1bmM6YGdldGFyZ3NgLCBub3cgcmV0dXJuIG5h bWVkIHR1cGxlcy4NCisgIDpmdW5jOmAhZ2V0bW9kdWxlaW5mb2AgYW5kIDpmdW5jOmAhZ2V0YXJn c2AsIG5vdyByZXR1cm4gbmFtZWQgdHVwbGVzLg0KICAgSW4gYWRkaXRpb24gdG8gYmVoYXZpbmcg bGlrZSB0dXBsZXMsIHRoZSBlbGVtZW50cyBvZiB0aGUgIHJldHVybiB2YWx1ZQ0KICAgY2FuIGFs c28gYmUgYWNjZXNzZWQgYXMgYXR0cmlidXRlcy4NCiAgIChDb250cmlidXRlZCBieSBSYXltb25k IEhldHRpbmdlci4pDQogDQogICBTb21lIG5ldyBmdW5jdGlvbnMgaW4gdGhlIG1vZHVsZSBpbmNs dWRlDQotICA6ZnVuYzpgaXNnZW5lcmF0b3JgLCA6ZnVuYzpgaXNnZW5lcmF0b3JmdW5jdGlvbmAs DQotICBhbmQgOmZ1bmM6YGlzYWJzdHJhY3RgLg0KKyAgOmZ1bmM6YH5pbnNwZWN0LmlzZ2VuZXJh dG9yYCwgOmZ1bmM6YH5pbnNwZWN0LmlzZ2VuZXJhdG9yZnVuY3Rpb25gLA0KKyAgYW5kIDpmdW5j OmB+aW5zcGVjdC5pc2Fic3RyYWN0YC4NCiANCiAqIFRoZSA6bW9kOmBpdGVydG9vbHNgIG1vZHVs ZSBnYWluZWQgc2V2ZXJhbCBuZXcgZnVuY3Rpb25zLg0KIA0KQEAgLTIwNzIsNyArMjA3NCw3IEBA IGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhl IGRldGFpbHMuDQogICBgYGl0ZXJ0b29scy5jaGFpbigqaXRlcmFibGVzKWBgIGlzIGFuIGV4aXN0 aW5nIGZ1bmN0aW9uIGluDQogICA6bW9kOmBpdGVydG9vbHNgIHRoYXQgZ2FpbmVkIGEgbmV3IGNv bnN0cnVjdG9yIGluIFB5dGhvbiAyLjYuDQogICBgYGl0ZXJ0b29scy5jaGFpbi5mcm9tX2l0ZXJh YmxlKGl0ZXJhYmxlKWBgIHRha2VzIGEgc2luZ2xlDQotICBpdGVyYWJsZSB0aGF0IHNob3VsZCBy ZXR1cm4gb3RoZXIgaXRlcmFibGVzLiAgOmZ1bmM6YGNoYWluYCB3aWxsDQorICBpdGVyYWJsZSB0 aGF0IHNob3VsZCByZXR1cm4gb3RoZXIgaXRlcmFibGVzLiAgOmZ1bmM6YH5pdGVydG9vbHMuY2hh aW5gIHdpbGwNCiAgIHRoZW4gcmV0dXJuIGFsbCB0aGUgZWxlbWVudHMgb2YgdGhlIGZpcnN0IGl0 ZXJhYmxlLCB0aGVuDQogICBhbGwgdGhlIGVsZW1lbnRzIG9mIHRoZSBzZWNvbmQsIGFuZCBzbyBv bi4gOjoNCiANCkBAIC0yMDgxLDE0ICsyMDgzLDE1IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3Vn aCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICAoQWxsIGNv bnRyaWJ1dGVkIGJ5IFJheW1vbmQgSGV0dGluZ2VyLikNCiANCi0qIFRoZSA6bW9kOmBsb2dnaW5n YCBtb2R1bGUncyA6Y2xhc3M6YEZpbGVIYW5kbGVyYCBjbGFzcw0KLSAgYW5kIGl0cyBzdWJjbGFz c2VzIDpjbGFzczpgV2F0Y2hlZEZpbGVIYW5kbGVyYCwgOmNsYXNzOmBSb3RhdGluZ0ZpbGVIYW5k bGVyYCwNCi0gIGFuZCA6Y2xhc3M6YFRpbWVkUm90YXRpbmdGaWxlSGFuZGxlcmAgbm93DQorKiBU aGUgOm1vZDpgbG9nZ2luZ2AgbW9kdWxlJ3MgOmNsYXNzOmB+bG9nZ2luZy5GaWxlSGFuZGxlcmAg Y2xhc3MNCisgIGFuZCBpdHMgc3ViY2xhc3NlcyA6Y2xhc3M6YH5sb2dnaW5nLmhhbmRsZXJzLldh dGNoZWRGaWxlSGFuZGxlcmAsDQorICA6Y2xhc3M6YH5sb2dnaW5nLmhhbmRsZXJzLlJvdGF0aW5n RmlsZUhhbmRsZXJgLA0KKyAgYW5kIDpjbGFzczpgfmxvZ2dpbmcuaGFuZGxlcnMuVGltZWRSb3Rh dGluZ0ZpbGVIYW5kbGVyYCBub3cNCiAgIGhhdmUgYW4gb3B0aW9uYWwgKmRlbGF5KiBwYXJhbWV0 ZXIgdG8gdGhlaXIgY29uc3RydWN0b3JzLiAgSWYgKmRlbGF5Kg0KICAgaXMgdHJ1ZSwgb3Blbmlu ZyBvZiB0aGUgbG9nIGZpbGUgaXMgZGVmZXJyZWQgdW50aWwgdGhlIGZpcnN0DQotICA6bWV0aDpg ZW1pdGAgY2FsbCBpcyBtYWRlLiAgKENvbnRyaWJ1dGVkIGJ5IFZpbmF5IFNhamlwLikNCisgIDpt ZXRoOmB+bG9nZ2luZy5GaWxlSGFuZGxlci5lbWl0YCBjYWxsIGlzIG1hZGUuICAoQ29udHJpYnV0 ZWQgYnkgVmluYXkgU2FqaXAuKQ0KIA0KLSAgOmNsYXNzOmBUaW1lZFJvdGF0aW5nRmlsZUhhbmRs ZXJgIGFsc28gaGFzIGEgKnV0YyogY29uc3RydWN0b3INCisgIDpjbGFzczpgfmxvZ2dpbmcuaGFu ZGxlcnMuVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyYCBhbHNvIGhhcyBhICp1dGMqIGNvbnN0cnVj dG9yDQogICBwYXJhbWV0ZXIuICBJZiB0aGUgYXJndW1lbnQgaXMgdHJ1ZSwgVVRDIHRpbWUgd2ls bCBiZSB1c2VkDQogICBpbiBkZXRlcm1pbmluZyB3aGVuIG1pZG5pZ2h0IG9jY3VycyBhbmQgaW4g Z2VuZXJhdGluZyBmaWxlbmFtZXM7DQogICBvdGhlcndpc2UgbG9jYWwgdGltZSB3aWxsIGJlIHVz ZWQuDQpAQCAtMjExNyw4ICsyMTIwLDggQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBT dWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgICogOmZ1bmM6YH5tYXRoLmxv ZzFwYCByZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiAqMSt4Kg0KICAgICAoYmFzZSAq ZSopLg0KIA0KLSAgKiA6ZnVuYzpgdHJ1bmNgIHJvdW5kcyBhIG51bWJlciB0b3dhcmQgemVybywg cmV0dXJuaW5nIHRoZSBjbG9zZXN0DQotICAgIDpjbGFzczpgSW50ZWdyYWxgIHRoYXQncyBiZXR3 ZWVuIHRoZSBmdW5jdGlvbidzIGFyZ3VtZW50IGFuZCB6ZXJvLg0KKyAgKiA6ZnVuYzpgfm1hdGgu dHJ1bmNgIHJvdW5kcyBhIG51bWJlciB0b3dhcmQgemVybywgcmV0dXJuaW5nIHRoZSBjbG9zZXN0 DQorICAgIDpjbGFzczpgfm51bWJlcnMuSW50ZWdyYWxgIHRoYXQncyBiZXR3ZWVuIHRoZSBmdW5j dGlvbidzIGFyZ3VtZW50IGFuZCB6ZXJvLg0KICAgICBBZGRlZCBhcyBwYXJ0IG9mIHRoZSBiYWNr cG9ydCBvZg0KICAgICBgUEVQIDMxNDEncyB0eXBlIGhpZXJhcmNoeSBmb3IgbnVtYmVycyA8I3Bl cC0zMTQxPmBfXy4NCiANCkBAIC0yMTM4LDE0ICsyMTQxLDE1IEBAIGNoYW5nZXMsIG9yIGxvb2sg dGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICAo Q29udHJpYnV0ZWQgYnkgQ2hyaXN0aWFuIEhlaW1lcyBhbmQgTWFyayBEaWNraW5zb24uKQ0KIA0K LSogOmNsYXNzOmB+bW1hcC5tbWFwYCBvYmplY3RzIG5vdyBoYXZlIGEgOm1ldGg6YHJmaW5kYCBt ZXRob2QgdGhhdCBzZWFyY2hlcyBmb3IgYQ0KKyogOmNsYXNzOmB+bW1hcC5tbWFwYCBvYmplY3Rz IG5vdyBoYXZlIGEgOm1ldGg6YH5tbWFwLm1tYXAucmZpbmRgIG1ldGhvZCB0aGF0DQorICBzZWFy Y2hlcyBmb3IgYQ0KICAgc3Vic3RyaW5nIGJlZ2lubmluZyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJp bmcgYW5kIHNlYXJjaGluZw0KLSAgYmFja3dhcmRzLiAgVGhlIDptZXRoOmBmaW5kYCBtZXRob2Qg YWxzbyBnYWluZWQgYW4gKmVuZCogcGFyYW1ldGVyDQorICBiYWNrd2FyZHMuICBUaGUgOm1ldGg6 YH5tbWFwLm1tYXAuZmluZGAgbWV0aG9kIGFsc28gZ2FpbmVkIGFuICplbmQqIHBhcmFtZXRlcg0K ICAgZ2l2aW5nIGFuIGluZGV4IGF0IHdoaWNoIHRvIHN0b3Agc2VhcmNoaW5nLg0KICAgKENvbnRy aWJ1dGVkIGJ5IEpvaG4gTGVudG9uLikNCiANCiAqIFRoZSA6bW9kOmBvcGVyYXRvcmAgbW9kdWxl IGdhaW5lZCBhDQotICA6ZnVuYzpgbWV0aG9kY2FsbGVyYCBmdW5jdGlvbiB0aGF0IHRha2VzIGEg bmFtZSBhbmQgYW4gb3B0aW9uYWwNCisgIDpmdW5jOmB+b3BlcmF0b3IubWV0aG9kY2FsbGVyYCBm dW5jdGlvbiB0aGF0IHRha2VzIGEgbmFtZSBhbmQgYW4gb3B0aW9uYWwNCiAgIHNldCBvZiBhcmd1 bWVudHMsIHJldHVybmluZyBhIGNhbGxhYmxlIHRoYXQgd2lsbCBjYWxsDQogICB0aGUgbmFtZWQg ZnVuY3Rpb24gb24gYW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gaXQuICBGb3IgZXhhbXBsZTo6DQog DQpAQCAtMjE1Niw3ICsyMTYwLDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2 ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIChDb250cmlidXRlZCBieSBH ZW9yZyBCcmFuZGwsIGFmdGVyIGEgc3VnZ2VzdGlvbiBieSBHcmVnb3J5IFBldHJvc3lhbi4pDQog DQotICBUaGUgOmZ1bmM6YGF0dHJnZXR0ZXJgIGZ1bmN0aW9uIG5vdyBhY2NlcHRzIGRvdHRlZCBu YW1lcyBhbmQgcGVyZm9ybXMNCisgIFRoZSA6ZnVuYzpgfm9wZXJhdG9yLmF0dHJnZXR0ZXJgIGZ1 bmN0aW9uIG5vdyBhY2NlcHRzIGRvdHRlZCBuYW1lcyBhbmQgcGVyZm9ybXMNCiAgIHRoZSBjb3Jy ZXNwb25kaW5nIGF0dHJpYnV0ZSBsb29rdXBzOjoNCiANCiAgICAgPj4+IGluc3RfbmFtZSA9IG9w ZXJhdG9yLmF0dHJnZXR0ZXIoDQpAQCAtMjE3NCwxMiArMjE3OCwxMiBAQCBjaGFuZ2VzLCBvciBs b29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAg dGhlIG1vZGUgb2YgYSBzeW1saW5rLiAgKENvbnRyaWJ1dGVkIGJ5IEdlb3JnIEJyYW5kbCBhbmQg Q2hyaXN0aWFuDQogICBIZWltZXMuKQ0KIA0KLSAgOmZ1bmM6YGNoZmxhZ3NgIGFuZCA6ZnVuYzpg bGNoZmxhZ3NgIGFyZSB3cmFwcGVycyBmb3IgdGhlDQorICA6ZnVuYzpgfm9zLmNoZmxhZ3NgIGFu ZCA6ZnVuYzpgfm9zLmxjaGZsYWdzYCBhcmUgd3JhcHBlcnMgZm9yIHRoZQ0KICAgY29ycmVzcG9u ZGluZyBzeXN0ZW0gY2FsbHMgKHdoZXJlIHRoZXkncmUgYXZhaWxhYmxlKSwgY2hhbmdpbmcgdGhl DQogICBmbGFncyBzZXQgb24gYSBmaWxlLiAgQ29uc3RhbnRzIGZvciB0aGUgZmxhZyB2YWx1ZXMg YXJlIGRlZmluZWQgaW4NCiAgIHRoZSA6bW9kOmBzdGF0YCBtb2R1bGU7IHNvbWUgcG9zc2libGUg dmFsdWVzIGluY2x1ZGUNCi0gIDpjb25zdDpgVUZfSU1NVVRBQkxFYCB0byBzaWduYWwgdGhlIGZp bGUgbWF5IG5vdCBiZSBjaGFuZ2VkIGFuZA0KLSAgOmNvbnN0OmBVRl9BUFBFTkRgIHRvIGluZGlj YXRlIHRoYXQgZGF0YSBjYW4gb25seSBiZSBhcHBlbmRlZCB0byB0aGUNCisgIDpjb25zdDpgfnN0 YXQuVUZfSU1NVVRBQkxFYCB0byBzaWduYWwgdGhlIGZpbGUgbWF5IG5vdCBiZSBjaGFuZ2VkIGFu ZA0KKyAgOmNvbnN0OmB+c3RhdC5VRl9BUFBFTkRgIHRvIGluZGljYXRlIHRoYXQgZGF0YSBjYW4g b25seSBiZSBhcHBlbmRlZCB0byB0aGUNCiAgIGZpbGUuICAoQ29udHJpYnV0ZWQgYnkgTS4gTGV2 aW5zb24uKQ0KIA0KICAgYGBvcy5jbG9zZXJhbmdlKGxvdywgaGlnaClgYCBlZmZpY2llbnRseSBj bG9zZXMgYWxsIGZpbGUgZGVzY3JpcHRvcnMNCkBAIC0yMTg3LDcgKzIxOTEsNyBAQCBjaGFuZ2Vz LCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxz Lg0KICAgVGhpcyBmdW5jdGlvbiBpcyBub3cgdXNlZCBieSB0aGUgOm1vZDpgc3VicHJvY2Vzc2Ag bW9kdWxlIHRvIG1ha2Ugc3RhcnRpbmcNCiAgIHByb2Nlc3NlcyBmYXN0ZXIuICAoQ29udHJpYnV0 ZWQgYnkgR2VvcmcgQnJhbmRsOyA6aXNzdWU6YDE2NjMzMjlgLikNCiANCi0qIFRoZSBgYG9zLmVu dmlyb25gYCBvYmplY3QncyA6bWV0aDpgY2xlYXJgIG1ldGhvZCB3aWxsIG5vdyB1bnNldCB0aGUN CisqIFRoZSBgYG9zLmVudmlyb25gYCBvYmplY3QncyA6bWV0aDpgIWNsZWFyYCBtZXRob2Qgd2ls bCBub3cgdW5zZXQgdGhlDQogICBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdXNpbmcgOmZ1bmM6YG9z LnVuc2V0ZW52YCBpbiBhZGRpdGlvbiB0byBjbGVhcmluZw0KICAgdGhlIG9iamVjdCdzIGtleXMu ICAoQ29udHJpYnV0ZWQgYnkgTWFydGluIEhvcmNpY2thOyA6aXNzdWU6YDExODFgLikNCiANCkBA IC0yMTk4LDcgKzIyMDIsNyBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNp b24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgaW50byBhbiBpbmZpbml0ZSByZWN1cnNp b24gaWYgdGhlcmUncyBhIHN5bWxpbmsgdGhhdCBwb2ludHMgdG8gYQ0KICAgcGFyZW50IGRpcmVj dG9yeS4gICg6aXNzdWU6YDEyNzM4MjlgKQ0KIA0KLSogSW4gdGhlIDptb2Q6YG9zLnBhdGhgIG1v ZHVsZSwgdGhlIDpmdW5jOmBzcGxpdGV4dGAgZnVuY3Rpb24NCisqIEluIHRoZSA6bW9kOmBvcy5w YXRoYCBtb2R1bGUsIHRoZSA6ZnVuYzpgfm9zLnBhdGguc3BsaXRleHRgIGZ1bmN0aW9uDQogICBo YXMgYmVlbiBjaGFuZ2VkIHRvIG5vdCBzcGxpdCBvbiBsZWFkaW5nIHBlcmlvZCBjaGFyYWN0ZXJz Lg0KICAgVGhpcyBwcm9kdWNlcyBiZXR0ZXIgcmVzdWx0cyB3aGVuIG9wZXJhdGluZyBvbiBVbml4 J3MgZG90LWZpbGVzLg0KICAgRm9yIGV4YW1wbGUsIGBgb3MucGF0aC5zcGxpdGV4dCgnLmlweXRo b24nKWBgDQpAQCAtMjIyNSwxMiArMjIyOSwxMiBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2gg dGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgaWYgbm8gdHJhY2Vi YWNrIGlzIHN1cHBsaWVkLiAgIChDb250cmlidXRlZCBieSBGYWN1bmRvIEJhdGlzdGE7DQogICA6 aXNzdWU6YDExMDYzMTZgLikNCiANCi0qIFRoZSA6bW9kOmBwaWNrbGV0b29sc2AgbW9kdWxlIG5v dyBoYXMgYW4gOmZ1bmM6YG9wdGltaXplYCBmdW5jdGlvbg0KKyogVGhlIDptb2Q6YHBpY2tsZXRv b2xzYCBtb2R1bGUgbm93IGhhcyBhbiA6ZnVuYzpgfnBpY2tsZXRvb2xzLm9wdGltaXplYCBmdW5j dGlvbg0KICAgdGhhdCB0YWtlcyBhIHN0cmluZyBjb250YWluaW5nIGEgcGlja2xlIGFuZCByZW1v dmVzIHNvbWUgdW51c2VkDQogICBvcGNvZGVzLCByZXR1cm5pbmcgYSBzaG9ydGVyIHBpY2tsZSB0 aGF0IGNvbnRhaW5zIHRoZSBzYW1lIGRhdGEgc3RydWN0dXJlLg0KICAgKENvbnRyaWJ1dGVkIGJ5 IFJheW1vbmQgSGV0dGluZ2VyLikNCiANCi0qIEEgOmZ1bmM6YGdldF9kYXRhYCBmdW5jdGlvbiB3 YXMgYWRkZWQgdG8gdGhlIDptb2Q6YHBrZ3V0aWxgDQorKiBBIDpmdW5jOmB+cGtndXRpbC5nZXRf ZGF0YWAgZnVuY3Rpb24gd2FzIGFkZGVkIHRvIHRoZSA6bW9kOmBwa2d1dGlsYA0KICAgbW9kdWxl IHRoYXQgcmV0dXJucyB0aGUgY29udGVudHMgb2YgcmVzb3VyY2UgZmlsZXMgaW5jbHVkZWQNCiAg IHdpdGggYW4gaW5zdGFsbGVkIFB5dGhvbiBwYWNrYWdlLiAgRm9yIGV4YW1wbGU6Og0KIA0KQEAg LTIyNDcsMjIgKzIyNTEsMjIgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJz aW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIChDb250cmlidXRlZCBieSBQYXVs IE1vb3JlOyA6aXNzdWU6YDI0MzlgLikNCiANCi0qIFRoZSA6bW9kOmBweWV4cGF0YCBtb2R1bGUn cyA6Y2xhc3M6YFBhcnNlcmAgb2JqZWN0cyBub3cgYWxsb3cgc2V0dGluZw0KLSAgdGhlaXIgOmF0 dHI6YGJ1ZmZlcl9zaXplYCBhdHRyaWJ1dGUgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBidWZm ZXINCisqIFRoZSA6bW9kOmAhcHlleHBhdGAgbW9kdWxlJ3MgOmNsYXNzOmAhUGFyc2VyYCBvYmpl Y3RzIG5vdyBhbGxvdyBzZXR0aW5nDQorICB0aGVpciA6YXR0cjpgIWJ1ZmZlcl9zaXplYCBhdHRy aWJ1dGUgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBidWZmZXINCiAgIHVzZWQgdG8gaG9sZCBj aGFyYWN0ZXIgZGF0YS4NCiAgIChDb250cmlidXRlZCBieSBBY2hpbSBHYWVka2U7IDppc3N1ZTpg MTEzN2AuKQ0KIA0KLSogVGhlIDptb2Q6YFF1ZXVlYCBtb2R1bGUgbm93IHByb3ZpZGVzIHF1ZXVl IHZhcmlhbnRzIHRoYXQgcmV0cmlldmUgZW50cmllcw0KLSAgaW4gZGlmZmVyZW50IG9yZGVycy4g IFRoZSA6Y2xhc3M6YFByaW9yaXR5UXVldWVgIGNsYXNzIHN0b3Jlcw0KKyogVGhlIDptb2Q6YHF1 ZXVlYCBtb2R1bGUgbm93IHByb3ZpZGVzIHF1ZXVlIHZhcmlhbnRzIHRoYXQgcmV0cmlldmUgZW50 cmllcw0KKyAgaW4gZGlmZmVyZW50IG9yZGVycy4gIFRoZSA6Y2xhc3M6YH5xdWV1ZS5Qcmlvcml0 eVF1ZXVlYCBjbGFzcyBzdG9yZXMNCiAgIHF1ZXVlZCBpdGVtcyBpbiBhIGhlYXAgYW5kIHJldHJp ZXZlcyB0aGVtIGluIHByaW9yaXR5IG9yZGVyLA0KLSAgYW5kIDpjbGFzczpgTGlmb1F1ZXVlYCBy ZXRyaWV2ZXMgdGhlIG1vc3QgcmVjZW50bHkgYWRkZWQgZW50cmllcyBmaXJzdCwNCisgIGFuZCA6 Y2xhc3M6YH5xdWV1ZS5MaWZvUXVldWVgIHJldHJpZXZlcyB0aGUgbW9zdCByZWNlbnRseSBhZGRl ZCBlbnRyaWVzIGZpcnN0LA0KICAgbWVhbmluZyB0aGF0IGl0IGJlaGF2ZXMgbGlrZSBhIHN0YWNr Lg0KICAgKENvbnRyaWJ1dGVkIGJ5IFJheW1vbmQgSGV0dGluZ2VyLikNCiANCi0qIFRoZSA6bW9k OmByYW5kb21gIG1vZHVsZSdzIDpjbGFzczpgUmFuZG9tYCBvYmplY3RzIGNhbg0KKyogVGhlIDpt b2Q6YHJhbmRvbWAgbW9kdWxlJ3MgOmNsYXNzOmB+cmFuZG9tLlJhbmRvbWAgb2JqZWN0cyBjYW4N CiAgIG5vdyBiZSBwaWNrbGVkIG9uIGEgMzItYml0IHN5c3RlbSBhbmQgdW5waWNrbGVkIG9uIGEg NjQtYml0DQogICBzeXN0ZW0sIGFuZCB2aWNlIHZlcnNhLiAgVW5mb3J0dW5hdGVseSwgdGhpcyBj aGFuZ2UgYWxzbyBtZWFucw0KLSAgdGhhdCBQeXRob24gMi42J3MgOmNsYXNzOmBSYW5kb21gIG9i amVjdHMgY2FuJ3QgYmUgdW5waWNrbGVkIGNvcnJlY3RseQ0KKyAgdGhhdCBQeXRob24gMi42J3Mg OmNsYXNzOmB+cmFuZG9tLlJhbmRvbWAgb2JqZWN0cyBjYW4ndCBiZSB1bnBpY2tsZWQgY29ycmVj dGx5DQogICBvbiBlYXJsaWVyIHZlcnNpb25zIG9mIFB5dGhvbi4NCiAgIChDb250cmlidXRlZCBi eSBTaGF3biBMaWdvY2tpOyA6aXNzdWU6YDE3Mjc3ODBgLikNCiANCkBAIC0yMjg1LDExICsyMjg5 LDExIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBh bGwgdGhlIGRldGFpbHMuDQogICAoQ29udHJpYnV0ZWQgYnkgR3VpZG8gdmFuIFJvc3N1bSBmcm9t IHdvcmsgZm9yIEdvb2dsZSBBcHAgRW5naW5lOw0KICAgOmlzc3VlOmAzNDg3YC4pDQogDQotKiBU aGUgOm1vZDpgcmxjb21wbGV0ZXJgIG1vZHVsZSdzIDptZXRoOmBDb21wbGV0ZXIuY29tcGxldGVg IG1ldGhvZA0KKyogVGhlIDptb2Q6YHJsY29tcGxldGVyYCBtb2R1bGUncyA6bWV0aDpgfnJsY29t cGxldGVyLkNvbXBsZXRlci5jb21wbGV0ZWAgbWV0aG9kDQogICB3aWxsIG5vdyBpZ25vcmUgZXhj ZXB0aW9ucyB0cmlnZ2VyZWQgd2hpbGUgZXZhbHVhdGluZyBhIG5hbWUuDQogICAoRml4ZWQgYnkg TG9yZW56IFF1YWNrOyA6aXNzdWU6YDIyNTBgLikNCiANCi0qIFRoZSA6bW9kOmBzY2hlZGAgbW9k dWxlJ3MgOmNsYXNzOmBzY2hlZHVsZXJgIGluc3RhbmNlcyBub3cNCisqIFRoZSA6bW9kOmBzY2hl ZGAgbW9kdWxlJ3MgOmNsYXNzOmB+c2NoZWQuc2NoZWR1bGVyYCBpbnN0YW5jZXMgbm93DQogICBo YXZlIGEgcmVhZC1vbmx5IDphdHRyOmBxdWV1ZWAgYXR0cmlidXRlIHRoYXQgcmV0dXJucyB0aGUN CiAgIGNvbnRlbnRzIG9mIHRoZSBzY2hlZHVsZXIncyBxdWV1ZSwgcmVwcmVzZW50ZWQgYXMgYSBs aXN0IG9mDQogICBuYW1lZCB0dXBsZXMgd2l0aCB0aGUgZmllbGRzIGBgKHRpbWUsIHByaW9yaXR5 LCBhY3Rpb24sIGFyZ3VtZW50KWBgLg0KQEAgLTIyOTcsNyArMjMwMSw3IEBAIGNoYW5nZXMsIG9y IGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQog DQogKiBUaGUgOm1vZDpgc2VsZWN0YCBtb2R1bGUgbm93IGhhcyB3cmFwcGVyIGZ1bmN0aW9ucw0K ICAgZm9yIHRoZSBMaW51eCA6YzpmdW5jOmAhZXBvbGxgIGFuZCBCU0QgOmM6ZnVuYzpgIWtxdWV1 ZWAgc3lzdGVtIGNhbGxzLg0KLSAgOm1ldGg6YG1vZGlmeWAgbWV0aG9kIHdhcyBhZGRlZCB0byB0 aGUgZXhpc3RpbmcgOmNsYXNzOmBwb2xsYA0KKyAgOm1ldGg6YH5zZWxlY3QucG9sbC5tb2RpZnlg IG1ldGhvZCB3YXMgYWRkZWQgdG8gdGhlIGV4aXN0aW5nIGBgcG9sbGBgDQogICBvYmplY3RzOyBg YHBvbGxvYmoubW9kaWZ5KGZkLCBldmVudG1hc2spYGAgdGFrZXMgYSBmaWxlIGRlc2NyaXB0b3IN CiAgIG9yIGZpbGUgb2JqZWN0IGFuZCBhbiBldmVudCBtYXNrLCBtb2RpZnlpbmcgdGhlIHJlY29y ZGVkIGV2ZW50IG1hc2sNCiAgIGZvciB0aGF0IGZpbGUuDQpAQCAtMjMwOCw4ICsyMzEyLDggQEAg Y2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUg ZGV0YWlscy4NCiAgIGFuZCBhIGxpc3Qgb2YgdGhlIGRpcmVjdG9yeSdzIGNvbnRlbnRzLCBhbmQg cmV0dXJucyBhIGxpc3Qgb2YgbmFtZXMgdGhhdA0KICAgd2lsbCBiZSBpZ25vcmVkLCBub3QgY29w aWVkLg0KIA0KLSAgVGhlIDptb2Q6YHNodXRpbGAgbW9kdWxlIGFsc28gcHJvdmlkZXMgYW4gOmZ1 bmM6YGlnbm9yZV9wYXR0ZXJuc2ANCi0gIGZ1bmN0aW9uIGZvciB1c2Ugd2l0aCB0aGlzIG5ldyBw YXJhbWV0ZXIuICA6ZnVuYzpgaWdub3JlX3BhdHRlcm5zYA0KKyAgVGhlIDptb2Q6YHNodXRpbGAg bW9kdWxlIGFsc28gcHJvdmlkZXMgYW4gOmZ1bmM6YH5zaHV0aWwuaWdub3JlX3BhdHRlcm5zYA0K KyAgZnVuY3Rpb24gZm9yIHVzZSB3aXRoIHRoaXMgbmV3IHBhcmFtZXRlci4gIDpmdW5jOmB+c2h1 dGlsLmlnbm9yZV9wYXR0ZXJuc2ANCiAgIHRha2VzIGFuIGFyYml0cmFyeSBudW1iZXIgb2YgZ2xv Yi1zdHlsZSBwYXR0ZXJucyBhbmQgcmV0dXJucyBhDQogICBjYWxsYWJsZSB0aGF0IHdpbGwgaWdu b3JlIGFueSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhhdCBtYXRjaCBhbnkNCiAgIG9mIHRoZXNl IHBhdHRlcm5zLiAgVGhlIGZvbGxvd2luZyBleGFtcGxlIGNvcGllcyBhIGRpcmVjdG9yeSB0cmVl LA0KQEAgLTIzMzMsNyArMjMzNyw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3Vi dmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICBFdmVudCBsb29wcyB3aWxs IHVzZSB0aGlzIGJ5IG9wZW5pbmcgYSBwaXBlIHRvIGNyZWF0ZSB0d28gZGVzY3JpcHRvcnMsDQog ICBvbmUgZm9yIHJlYWRpbmcgYW5kIG9uZSBmb3Igd3JpdGluZy4gIFRoZSB3cml0YWJsZSBkZXNj cmlwdG9yDQotICB3aWxsIGJlIHBhc3NlZCB0byA6ZnVuYzpgc2V0X3dha2V1cF9mZGAsIGFuZCB0 aGUgcmVhZGFibGUgZGVzY3JpcHRvcg0KKyAgd2lsbCBiZSBwYXNzZWQgdG8gOmZ1bmM6YH5zaWdu YWwuc2V0X3dha2V1cF9mZGAsIGFuZCB0aGUgcmVhZGFibGUgZGVzY3JpcHRvcg0KICAgd2lsbCBi ZSBhZGRlZCB0byB0aGUgbGlzdCBvZiBkZXNjcmlwdG9ycyBtb25pdG9yZWQgYnkgdGhlIGV2ZW50 IGxvb3AgdmlhDQogICA6YzpmdW5jOmAhc2VsZWN0YCBvciA6YzpmdW5jOmAhcG9sbGAuDQogICBP biByZWNlaXZpbmcgYSBzaWduYWwsIGEgYnl0ZSB3aWxsIGJlIHdyaXR0ZW4gYW5kIHRoZSBtYWlu IGV2ZW50IGxvb3ANCkBAIC0yMzQxLDIwICsyMzQ1LDIwIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhy b3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICAoQ29u dHJpYnV0ZWQgYnkgQWRhbSBPbHNlbjsgOmlzc3VlOmAxNTgzYC4pDQogDQotICBUaGUgOmZ1bmM6 YHNpZ2ludGVycnVwdGAgZnVuY3Rpb24gaXMgbm93IGF2YWlsYWJsZSBmcm9tIFB5dGhvbiBjb2Rl LA0KKyAgVGhlIDpmdW5jOmB+c2lnbmFsLnNpZ2ludGVycnVwdGAgZnVuY3Rpb24gaXMgbm93IGF2 YWlsYWJsZSBmcm9tIFB5dGhvbiBjb2RlLA0KICAgYW5kIGFsbG93cyBjaGFuZ2luZyB3aGV0aGVy IHNpZ25hbHMgY2FuIGludGVycnVwdCBzeXN0ZW0gY2FsbHMgb3Igbm90Lg0KICAgKENvbnRyaWJ1 dGVkIGJ5IFJhbGYgU2NobWl0dC4pDQogDQotICBUaGUgOmZ1bmM6YHNldGl0aW1lcmAgYW5kIDpm dW5jOmBnZXRpdGltZXJgIGZ1bmN0aW9ucyBoYXZlIGFsc28gYmVlbg0KLSAgYWRkZWQgKHdoZXJl IHRoZXkncmUgYXZhaWxhYmxlKS4gIDpmdW5jOmBzZXRpdGltZXJgDQorICBUaGUgOmZ1bmM6YH5z aWduYWwuc2V0aXRpbWVyYCBhbmQgOmZ1bmM6YH5zaWduYWwuZ2V0aXRpbWVyYCBmdW5jdGlvbnMg aGF2ZSBhbHNvIGJlZW4NCisgIGFkZGVkICh3aGVyZSB0aGV5J3JlIGF2YWlsYWJsZSkuICA6ZnVu YzpgfnNpZ25hbC5zZXRpdGltZXJgDQogICBhbGxvd3Mgc2V0dGluZyBpbnRlcnZhbCB0aW1lcnMg dGhhdCB3aWxsIGNhdXNlIGEgc2lnbmFsIHRvIGJlDQogICBkZWxpdmVyZWQgdG8gdGhlIHByb2Nl c3MgYWZ0ZXIgYSBzcGVjaWZpZWQgdGltZSwgbWVhc3VyZWQgaW4NCiAgIHdhbGwtY2xvY2sgdGlt ZSwgY29uc3VtZWQgcHJvY2VzcyB0aW1lLCBvciBjb21iaW5lZCBwcm9jZXNzK3N5c3RlbQ0KICAg dGltZS4gIChDb250cmlidXRlZCBieSBHdWlsaGVybWUgUG9sbzsgOmlzc3VlOmAyMjQwYC4pDQog DQogKiBUaGUgOm1vZDpgc210cGxpYmAgbW9kdWxlIG5vdyBzdXBwb3J0cyBTTVRQIG92ZXIgU1NM IHRoYW5rcyB0byB0aGUNCi0gIGFkZGl0aW9uIG9mIHRoZSA6Y2xhc3M6YFNNVFBfU1NMYCBjbGFz cy4gVGhpcyBjbGFzcyBzdXBwb3J0cyBhbg0KLSAgaW50ZXJmYWNlIGlkZW50aWNhbCB0byB0aGUg ZXhpc3RpbmcgOmNsYXNzOmBTTVRQYCBjbGFzcy4NCisgIGFkZGl0aW9uIG9mIHRoZSA6Y2xhc3M6 YH5zbXRwbGliLlNNVFBfU1NMYCBjbGFzcy4gVGhpcyBjbGFzcyBzdXBwb3J0cyBhbg0KKyAgaW50 ZXJmYWNlIGlkZW50aWNhbCB0byB0aGUgZXhpc3RpbmcgOmNsYXNzOmB+c210cGxpYi5TTVRQYCBj bGFzcy4NCiAgIChDb250cmlidXRlZCBieSBNb250eSBUYXlsb3IuKSAgQm90aCBjbGFzcyBjb25z dHJ1Y3RvcnMgYWxzbyBoYXZlIGFuDQogICBvcHRpb25hbCBgYHRpbWVvdXRgYCBwYXJhbWV0ZXIg dGhhdCBzcGVjaWZpZXMgYSB0aW1lb3V0IGZvciB0aGUNCiAgIGluaXRpYWwgY29ubmVjdGlvbiBh dHRlbXB0LCBtZWFzdXJlZCBpbiBzZWNvbmRzLiAgKENvbnRyaWJ1dGVkIGJ5DQpAQCAtMjM2NSw3 ICsyMzY5LDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3Mg Zm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIGUtbWFpbCBiZXR3ZWVuIGFnZW50cyB0aGF0IGRvbid0 IG1hbmFnZSBhIG1haWwgcXVldWUuICAoTE1UUA0KICAgaW1wbGVtZW50ZWQgYnkgTGVpZiBIZWRz dHJvbTsgOmlzc3VlOmA5NTcwMDNgLikNCiANCi0gIDptZXRoOmBTTVRQLnN0YXJ0dGxzYCBub3cg Y29tcGxpZXMgd2l0aCA6cmZjOmAzMjA3YCBhbmQgZm9yZ2V0cyBhbnkNCisgIDptZXRoOmBzbXRw bGliLlNNVFAuc3RhcnR0bHNgIG5vdyBjb21wbGllcyB3aXRoIDpyZmM6YDMyMDdgIGFuZCBmb3Jn ZXRzIGFueQ0KICAga25vd2xlZGdlIG9idGFpbmVkIGZyb20gdGhlIHNlcnZlciBub3Qgb2J0YWlu ZWQgZnJvbSB0aGUgVExTDQogICBuZWdvdGlhdGlvbiBpdHNlbGYuICAoUGF0Y2ggY29udHJpYnV0 ZWQgYnkgQmlsbCBGZW5uZXI7DQogICA6aXNzdWU6YDgyOTk1MWAuKQ0KQEAgLTIzNzUsMTEgKzIz NzksMTEgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9y IGFsbCB0aGUgZGV0YWlscy4NCiAgIGVudmlyb25tZW50cy4gIFRJUEMgYWRkcmVzc2VzIGFyZSA0 LSBvciA1LXR1cGxlcy4NCiAgIChDb250cmlidXRlZCBieSBBbGJlcnRvIEJlcnRvZ2xpOyA6aXNz dWU6YDE2NDZgLikNCiANCi0gIEEgbmV3IGZ1bmN0aW9uLCA6ZnVuYzpgY3JlYXRlX2Nvbm5lY3Rp b25gLCB0YWtlcyBhbiBhZGRyZXNzIGFuZA0KKyAgQSBuZXcgZnVuY3Rpb24sIDpmdW5jOmB+c29j a2V0LmNyZWF0ZV9jb25uZWN0aW9uYCwgdGFrZXMgYW4gYWRkcmVzcyBhbmQNCiAgIGNvbm5lY3Rz IHRvIGl0IHVzaW5nIGFuIG9wdGlvbmFsIHRpbWVvdXQgdmFsdWUsIHJldHVybmluZyB0aGUNCiAg IGNvbm5lY3RlZCBzb2NrZXQgb2JqZWN0LiAgVGhpcyBmdW5jdGlvbiBhbHNvIGxvb2tzIHVwIHRo ZSBhZGRyZXNzJ3MNCiAgIHR5cGUgYW5kIGNvbm5lY3RzIHRvIGl0IHVzaW5nIElQdjQgb3IgSVB2 NiBhcyBhcHByb3ByaWF0ZS4gIENoYW5naW5nDQotICB5b3VyIGNvZGUgdG8gdXNlIDpmdW5jOmBj cmVhdGVfY29ubmVjdGlvbmAgaW5zdGVhZCBvZg0KKyAgeW91ciBjb2RlIHRvIHVzZSA6ZnVuYzpg fnNvY2tldC5jcmVhdGVfY29ubmVjdGlvbmAgaW5zdGVhZCBvZg0KICAgYGBzb2NrZXQoc29ja2V0 LkFGX0lORVQsIC4uLilgYCBtYXkgYmUgYWxsIHRoYXQncyByZXF1aXJlZCB0byBtYWtlDQogICB5 b3VyIGNvZGUgd29yayB3aXRoIElQdjYuDQogDQpAQCAtMjQwNywxNSArMjQxMSwxNSBAQCBjaGFu Z2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRh aWxzLg0KICAgOmM6ZnVuYzpgIVRlcm1pbmF0ZVByb2Nlc3NgLg0KICAgKENvbnRyaWJ1dGVkIGJ5 IENocmlzdGlhbiBIZWltZXMuKQ0KIA0KLSogQSBuZXcgdmFyaWFibGUgaW4gdGhlIDptb2Q6YHN5 c2AgbW9kdWxlLCA6YXR0cjpgZmxvYXRfaW5mb2AsIGlzIGFuDQorKiBBIG5ldyB2YXJpYWJsZSBp biB0aGUgOm1vZDpgc3lzYCBtb2R1bGUsIDpkYXRhOmB+c3lzLmZsb2F0X2luZm9gLCBpcyBhbg0K ICAgb2JqZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gZGVyaXZlZCBmcm9tIHRoZSA6ZmlsZTpg ZmxvYXQuaGAgZmlsZQ0KICAgYWJvdXQgdGhlIHBsYXRmb3JtJ3MgZmxvYXRpbmctcG9pbnQgc3Vw cG9ydC4gIEF0dHJpYnV0ZXMgb2YgdGhpcw0KLSAgb2JqZWN0IGluY2x1ZGUgOmF0dHI6YG1hbnRf ZGlnYCAobnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgbWFudGlzc2EpLA0KLSAgOmF0dHI6YGVwc2ls b25gIChzbWFsbGVzdCBkaWZmZXJlbmNlIGJldHdlZW4gMS4wIGFuZCB0aGUgbmV4dA0KKyAgb2Jq ZWN0IGluY2x1ZGUgOmF0dHI6YH5zeXMuZmxvYXRfaW5mby5tYW50X2RpZ2AgKG51bWJlciBvZiBk aWdpdHMgaW4gdGhlIG1hbnRpc3NhKSwNCisgIDphdHRyOmB+c3lzLmZsb2F0X2luZm8uZXBzaWxv bmAgKHNtYWxsZXN0IGRpZmZlcmVuY2UgYmV0d2VlbiAxLjAgYW5kIHRoZSBuZXh0DQogICBsYXJn ZXN0IHZhbHVlIHJlcHJlc2VudGFibGUpLCBhbmQgc2V2ZXJhbCBvdGhlcnMuICAoQ29udHJpYnV0 ZWQgYnkNCiAgIENocmlzdGlhbiBIZWltZXM7IDppc3N1ZTpgMTUzNGAuKQ0KIA0KLSAgQW5vdGhl ciBuZXcgdmFyaWFibGUsIDphdHRyOmBkb250X3dyaXRlX2J5dGVjb2RlYCwgY29udHJvbHMgd2hl dGhlciBQeXRob24NCisgIEFub3RoZXIgbmV3IHZhcmlhYmxlLCA6ZGF0YTpgfnN5cy5kb250X3dy aXRlX2J5dGVjb2RlYCwgY29udHJvbHMgd2hldGhlciBQeXRob24NCiAgIHdyaXRlcyBhbnkgOmZp bGU6YC5weWNgIG9yIDpmaWxlOmAucHlvYCBmaWxlcyBvbiBpbXBvcnRpbmcgYSBtb2R1bGUuDQog ICBJZiB0aGlzIHZhcmlhYmxlIGlzIHRydWUsIHRoZSBjb21waWxlZCBmaWxlcyBhcmUgbm90IHdy aXR0ZW4uICBUaGUNCiAgIHZhcmlhYmxlIGlzIGluaXRpYWxseSBzZXQgb24gc3RhcnQtdXAgYnkg c3VwcGx5aW5nIHRoZSA6b3B0aW9uOmAtQmANCkBAIC0yNDI4LDE2ICsyNDMyLDE2IEBAIGNoYW5n ZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFp bHMuDQogDQogICBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBz dXBwbGllZCB0byB0aGUgUHl0aG9uDQogICBpbnRlcnByZXRlciBpcyBhdmFpbGFibGUgYnkgcmVh ZGluZyBhdHRyaWJ1dGVzIG9mIGEgbmFtZWQNCi0gIHR1cGxlIGF2YWlsYWJsZSBhcyBgYHN5cy5m bGFnc2BgLiAgRm9yIGV4YW1wbGUsIHRoZSA6YXR0cjpgdmVyYm9zZWANCisgIHR1cGxlIGF2YWls YWJsZSBhcyBgYHN5cy5mbGFnc2BgLiAgRm9yIGV4YW1wbGUsIHRoZSA6YXR0cjpgfnN5cy5mbGFn cy52ZXJib3NlYA0KICAgYXR0cmlidXRlIGlzIHRydWUgaWYgUHl0aG9uDQotICB3YXMgZXhlY3V0 ZWQgaW4gdmVyYm9zZSBtb2RlLCA6YXR0cjpgZGVidWdgIGlzIHRydWUgaW4gZGVidWdnaW5nIG1v ZGUsIGV0Yy4NCisgIHdhcyBleGVjdXRlZCBpbiB2ZXJib3NlIG1vZGUsIDphdHRyOmB+c3lzLmZs YWdzLmRlYnVnYCBpcyB0cnVlIGluIGRlYnVnZ2luZyBtb2RlLCBldGMuDQogICBUaGVzZSBhdHRy aWJ1dGVzIGFyZSBhbGwgcmVhZC1vbmx5Lg0KICAgKENvbnRyaWJ1dGVkIGJ5IENocmlzdGlhbiBI ZWltZXMuKQ0KIA0KLSAgQSBuZXcgZnVuY3Rpb24sIDpmdW5jOmBnZXRzaXplb2ZgLCB0YWtlcyBh IFB5dGhvbiBvYmplY3QgYW5kIHJldHVybnMNCisgIEEgbmV3IGZ1bmN0aW9uLCA6ZnVuYzpgfnN5 cy5nZXRzaXplb2ZgLCB0YWtlcyBhIFB5dGhvbiBvYmplY3QgYW5kIHJldHVybnMNCiAgIHRoZSBh bW91bnQgb2YgbWVtb3J5IHVzZWQgYnkgdGhlIG9iamVjdCwgbWVhc3VyZWQgaW4gYnl0ZXMuICBC dWlsdC1pbg0KICAgb2JqZWN0cyByZXR1cm4gY29ycmVjdCByZXN1bHRzOyB0aGlyZC1wYXJ0eSBl eHRlbnNpb25zIG1heSBub3QsDQotICBidXQgY2FuIGRlZmluZSBhIDptZXRoOmBfX3NpemVvZl9f YCBtZXRob2QgdG8gcmV0dXJuIHRoZQ0KKyAgYnV0IGNhbiBkZWZpbmUgYSA6bWV0aDpgIV9fc2l6 ZW9mX19gIG1ldGhvZCB0byByZXR1cm4gdGhlDQogICBvYmplY3QncyBzaXplLg0KICAgKENvbnRy aWJ1dGVkIGJ5IFJvYmVydCBTY2h1cHBlbmllczsgOmlzc3VlOmAyODk4YC4pDQogDQpAQCAtMjQ2 MSwxMiArMjQ2NSwxMiBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24g bG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgdGhlaXIgVVRGLTggcmVwcmVzZW50YXRpb24u ICAoQ2hhcmFjdGVyIGNvbnZlcnNpb25zIG9jY3VyIGJlY2F1c2UgdGhlDQogICBQQVggZm9ybWF0 IHN1cHBvcnRzIFVuaWNvZGUgZmlsZW5hbWVzLCBkZWZhdWx0aW5nIHRvIFVURi04IGVuY29kaW5n LikNCiANCi0gIFRoZSA6bWV0aDpgVGFyRmlsZS5hZGRgIG1ldGhvZCBub3cgYWNjZXB0cyBhbiBg YGV4Y2x1ZGVgYCBhcmd1bWVudCB0aGF0J3MNCisgIFRoZSA6bWV0aDpgdGFyZmlsZS5UYXJGaWxl LmFkZGAgbWV0aG9kIG5vdyBhY2NlcHRzIGFuIGBgZXhjbHVkZWBgIGFyZ3VtZW50IHRoYXQncw0K ICAgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGV4Y2x1ZGUgY2VydGFpbiBmaWxlbmFt ZXMgZnJvbQ0KICAgYW4gYXJjaGl2ZS4NCiAgIFRoZSBmdW5jdGlvbiBtdXN0IHRha2UgYSBmaWxl bmFtZSBhbmQgcmV0dXJuIHRydWUgaWYgdGhlIGZpbGUNCiAgIHNob3VsZCBiZSBleGNsdWRlZCBv ciBmYWxzZSBpZiBpdCBzaG91bGQgYmUgYXJjaGl2ZWQuDQotICBUaGUgZnVuY3Rpb24gaXMgYXBw bGllZCB0byBib3RoIHRoZSBuYW1lIGluaXRpYWxseSBwYXNzZWQgdG8gOm1ldGg6YGFkZGANCisg IFRoZSBmdW5jdGlvbiBpcyBhcHBsaWVkIHRvIGJvdGggdGhlIG5hbWUgaW5pdGlhbGx5IHBhc3Nl ZCB0byA6bWV0aDpgfnRhcmZpbGUuVGFyRmlsZS5hZGRgDQogICBhbmQgdG8gdGhlIG5hbWVzIG9m IGZpbGVzIGluIHJlY3Vyc2l2ZWx5IGFkZGVkIGRpcmVjdG9yaWVzLg0KIA0KICAgKEFsbCBjaGFu Z2VzIGNvbnRyaWJ1dGVkIGJ5IExhcnMgR3VzdMOkYmVsKS4NCkBAIC0yNDgwLDEyICsyNDg0LDEz IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwg dGhlIGRldGFpbHMuDQogICBiZWhhdmlvdXIgY2FuIG5vdyBiZSBjaGFuZ2VkIGJ5IHBhc3Npbmcg YGBkZWxldGU9RmFsc2VgYCB0byB0aGUNCiAgIGNvbnN0cnVjdG9yLiAgKENvbnRyaWJ1dGVkIGJ5 IERhbWllbiBNaWxsZXI7IDppc3N1ZTpgMTUzNzg1MGAuKQ0KIA0KLSAgQSBuZXcgY2xhc3MsIDpj bGFzczpgU3Bvb2xlZFRlbXBvcmFyeUZpbGVgLCBiZWhhdmVzIGxpa2UNCisgIEEgbmV3IGNsYXNz LCA6Y2xhc3M6YH50ZW1wZmlsZS5TcG9vbGVkVGVtcG9yYXJ5RmlsZWAsIGJlaGF2ZXMgbGlrZQ0K ICAgYSB0ZW1wb3JhcnkgZmlsZSBidXQgc3RvcmVzIGl0cyBkYXRhIGluIG1lbW9yeSB1bnRpbCBh IG1heGltdW0gc2l6ZSBpcw0KICAgZXhjZWVkZWQuICBPbiByZWFjaGluZyB0aGF0IGxpbWl0LCB0 aGUgY29udGVudHMgd2lsbCBiZSB3cml0dGVuIHRvDQogICBhbiBvbi1kaXNrIHRlbXBvcmFyeSBm aWxlLiAgKENvbnRyaWJ1dGVkIGJ5IER1c3RpbiBKLiBNaXRjaGVsbC4pDQogDQotICBUaGUgOmNs YXNzOmBOYW1lZFRlbXBvcmFyeUZpbGVgIGFuZCA6Y2xhc3M6YFNwb29sZWRUZW1wb3JhcnlGaWxl YCBjbGFzc2VzDQorICBUaGUgOmNsYXNzOmB+dGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlYCBh bmQNCisgIDpjbGFzczpgfnRlbXBmaWxlLlNwb29sZWRUZW1wb3JhcnlGaWxlYCBjbGFzc2VzDQog ICBib3RoIHdvcmsgYXMgY29udGV4dCBtYW5hZ2Vycywgc28geW91IGNhbiB3cml0ZQ0KICAgYGB3 aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZSgpIGFzIHRtcDogLi4uYGAuDQogICAoQ29u dHJpYnV0ZWQgYnkgQWxleGFuZGVyIEJlbG9wb2xza3k7IDppc3N1ZTpgMjAyMWAuKQ0KQEAgLTI0 OTYsNyArMjUwMSw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBs b2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICBjb250ZXh0IG1hbmFnZXIgdGhhdCB0ZW1wb3Jh cmlseSBjaGFuZ2VzIGVudmlyb25tZW50IHZhcmlhYmxlcyBhbmQNCiAgIGF1dG9tYXRpY2FsbHkg cmVzdG9yZXMgdGhlbSB0byB0aGVpciBvbGQgdmFsdWVzLg0KIA0KLSAgQW5vdGhlciBjb250ZXh0 IG1hbmFnZXIsIDpjbGFzczpgVHJhbnNpZW50UmVzb3VyY2VgLCBjYW4gc3Vycm91bmQgY2FsbHMN CisgIEFub3RoZXIgY29udGV4dCBtYW5hZ2VyLCA6Y2xhc3M6YCFUcmFuc2llbnRSZXNvdXJjZWAs IGNhbiBzdXJyb3VuZCBjYWxscw0KICAgdG8gcmVzb3VyY2VzIHRoYXQgbWF5IG9yIG1heSBub3Qg YmUgYXZhaWxhYmxlOyBpdCB3aWxsIGNhdGNoIGFuZA0KICAgaWdub3JlIGEgc3BlY2lmaWVkIGxp c3Qgb2YgZXhjZXB0aW9ucy4gIEZvciBleGFtcGxlLA0KICAgYSBuZXR3b3JrIHRlc3QgbWF5IGln bm9yZSBjZXJ0YWluIGZhaWx1cmVzIHdoZW4gY29ubmVjdGluZyB0byBhbg0KQEAgLTI1MDcsOSAr MjUxMiw5IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZv ciBhbGwgdGhlIGRldGFpbHMuDQogICAgICAgICAgIGYgPSB1cmxsaWIudXJsb3BlbignaHR0cHM6 Ly9zZi5uZXQnKQ0KICAgICAgICAgICAuLi4NCiANCi0gIEZpbmFsbHksIDpmdW5jOmBjaGVja193 YXJuaW5nc2AgcmVzZXRzIHRoZSA6bW9kOmB3YXJuaW5nYCBtb2R1bGUncw0KLSAgd2FybmluZyBm aWx0ZXJzIGFuZCByZXR1cm5zIGFuIG9iamVjdCB0aGF0IHdpbGwgcmVjb3JkIGFsbCB3YXJuaW5n DQotICBtZXNzYWdlcyB0cmlnZ2VyZWQgKDppc3N1ZTpgMzc4MWApOjoNCisgIEZpbmFsbHksIDpm dW5jOmB+dGVzdC5zdXBwb3J0Lndhcm5pbmdzX2hlbHBlci5jaGVja193YXJuaW5nc2AgcmVzZXRz IHRoZQ0KKyAgOm1vZDpgd2FybmluZ3NgIG1vZHVsZSdzIHdhcm5pbmcgZmlsdGVycyBhbmQgcmV0 dXJucyBhbiBvYmplY3QgdGhhdCB3aWxsIHJlY29yZA0KKyAgYWxsIHdhcm5pbmcgbWVzc2FnZXMg dHJpZ2dlcmVkICg6aXNzdWU6YDM3ODFgKTo6DQogDQogICAgICAgd2l0aCB0ZXN0X3N1cHBvcnQu Y2hlY2tfd2FybmluZ3MoKSBhcyB3cmVjOg0KICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0 ZXIoImFsd2F5cyIpDQpAQCAtMjU0MSwzMSArMjU0NiwzMSBAQCBjaGFuZ2VzLCBvciBsb29rIHRo cm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgKENvbnRy aWJ1dGVkIGJ5IER3YXluZSBCYWlsZXk7IDppc3N1ZTpgMTU4MTA3M2AuKQ0KIA0KICogVGhlIDpt b2Q6YHRocmVhZGluZ2AgbW9kdWxlIEFQSSBpcyBiZWluZyBjaGFuZ2VkIHRvIHVzZSBwcm9wZXJ0 aWVzDQotICBzdWNoIGFzIDphdHRyOmBkYWVtb25gIGluc3RlYWQgb2YgOm1ldGg6YHNldERhZW1v bmAgYW5kDQotICA6bWV0aDpgaXNEYWVtb25gIG1ldGhvZHMsIGFuZCBzb21lIG1ldGhvZHMgaGF2 ZSBiZWVuIHJlbmFtZWQgdG8gdXNlDQorICBzdWNoIGFzIDphdHRyOmB+dGhyZWFkaW5nLlRocmVh ZC5kYWVtb25gIGluc3RlYWQgb2YgOm1ldGg6YCFzZXREYWVtb25gIGFuZA0KKyAgOm1ldGg6YCFp c0RhZW1vbmAgbWV0aG9kcywgYW5kIHNvbWUgbWV0aG9kcyBoYXZlIGJlZW4gcmVuYW1lZCB0byB1 c2UNCiAgIHVuZGVyc2NvcmVzIGluc3RlYWQgb2YgY2FtZWwtY2FzZTsgZm9yIGV4YW1wbGUsIHRo ZQ0KLSAgOm1ldGg6YGFjdGl2ZUNvdW50YCBtZXRob2QgaXMgcmVuYW1lZCB0byA6bWV0aDpgYWN0 aXZlX2NvdW50YC4gIEJvdGgNCisgIDptZXRoOmAhYWN0aXZlQ291bnRgIG1ldGhvZCBpcyByZW5h bWVkIHRvIDpmdW5jOmB+dGhyZWFkaW5nLmFjdGl2ZV9jb3VudGAuICBCb3RoDQogICB0aGUgMi42 IGFuZCAzLjAgdmVyc2lvbnMgb2YgdGhlIG1vZHVsZSBzdXBwb3J0IHRoZSBzYW1lIHByb3BlcnRp ZXMNCiAgIGFuZCByZW5hbWVkIG1ldGhvZHMsIGJ1dCBkb24ndCByZW1vdmUgdGhlIG9sZCBtZXRo b2RzLiAgTm8gZGF0ZSBoYXMgYmVlbiBzZXQNCiAgIGZvciB0aGUgZGVwcmVjYXRpb24gb2YgdGhl IG9sZCBBUElzIGluIFB5dGhvbiAzLng7IHRoZSBvbGQgQVBJcyB3b24ndA0KICAgYmUgcmVtb3Zl ZCBpbiBhbnkgMi54IHZlcnNpb24uDQogICAoQ2FycmllZCBvdXQgYnkgc2V2ZXJhbCBwZW9wbGUs IG1vc3Qgbm90YWJseSBCZW5qYW1pbiBQZXRlcnNvbi4pDQogDQotICBUaGUgOm1vZDpgdGhyZWFk aW5nYCBtb2R1bGUncyA6Y2xhc3M6YFRocmVhZGAgb2JqZWN0cw0KLSAgZ2FpbmVkIGFuIDphdHRy OmBpZGVudGAgcHJvcGVydHkgdGhhdCByZXR1cm5zIHRoZSB0aHJlYWQncw0KKyAgVGhlIDptb2Q6 YHRocmVhZGluZ2AgbW9kdWxlJ3MgOmNsYXNzOmB+dGhyZWFkaW5nLlRocmVhZGAgb2JqZWN0cw0K KyAgZ2FpbmVkIGFuIDphdHRyOmB+dGhyZWFkaW5nLlRocmVhZC5pZGVudGAgcHJvcGVydHkgdGhh dCByZXR1cm5zIHRoZSB0aHJlYWQncw0KICAgaWRlbnRpZmllciwgYSBub256ZXJvIGludGVnZXIu ICAoQ29udHJpYnV0ZWQgYnkgR3JlZ29yeSBQLiBTbWl0aDsNCiAgIDppc3N1ZTpgMjg3MWAuKQ0K IA0KICogVGhlIDptb2Q6YHRpbWVpdGAgbW9kdWxlIG5vdyBhY2NlcHRzIGNhbGxhYmxlcyBhcyB3 ZWxsIGFzIHN0cmluZ3MNCiAgIGZvciB0aGUgc3RhdGVtZW50IGJlaW5nIHRpbWVkIGFuZCBmb3Ig dGhlIHNldHVwIGNvZGUuDQogICBUd28gY29udmVuaWVuY2UgZnVuY3Rpb25zIHdlcmUgYWRkZWQg Zm9yIGNyZWF0aW5nDQotICA6Y2xhc3M6YFRpbWVyYCBpbnN0YW5jZXM6DQorICA6Y2xhc3M6YH50 aW1laXQuVGltZXJgIGluc3RhbmNlczoNCiAgIGBgcmVwZWF0KHN0bXQsIHNldHVwLCB0aW1lLCBy ZXBlYXQsIG51bWJlcilgYCBhbmQNCiAgIGBgdGltZWl0KHN0bXQsIHNldHVwLCB0aW1lLCBudW1i ZXIpYGAgY3JlYXRlIGFuIGluc3RhbmNlIGFuZCBjYWxsDQogICB0aGUgY29ycmVzcG9uZGluZyBt ZXRob2QuIChDb250cmlidXRlZCBieSBFcmlrIERlbWFpbmU7DQogICA6aXNzdWU6YDE1MzM5MDlg LikNCiANCi0qIFRoZSA6bW9kOmBUa2ludGVyYCBtb2R1bGUgbm93IGFjY2VwdHMgbGlzdHMgYW5k IHR1cGxlcyBmb3Igb3B0aW9ucywNCisqIFRoZSA6bW9kOmB0a2ludGVyYCBtb2R1bGUgbm93IGFj Y2VwdHMgbGlzdHMgYW5kIHR1cGxlcyBmb3Igb3B0aW9ucywNCiAgIHNlcGFyYXRpbmcgdGhlIGVs ZW1lbnRzIGJ5IHNwYWNlcyBiZWZvcmUgcGFzc2luZyB0aGUgcmVzdWx0aW5nIHZhbHVlIHRvDQog ICBUY2wvVGsuDQogICAoQ29udHJpYnV0ZWQgYnkgR3VpbGhlcm1lIFBvbG87IDppc3N1ZTpgMjkw NmAuKQ0KQEAgLTI1NzQsMTEgKzI1NzksMTEgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRo ZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIEdyZWdvciBMaW5nbC4g IE5ldyBmZWF0dXJlcyBpbiB0aGUgbW9kdWxlIGluY2x1ZGU6DQogDQogICAqIEJldHRlciBhbmlt YXRpb24gb2YgdHVydGxlIG1vdmVtZW50IGFuZCByb3RhdGlvbi4NCi0gICogQ29udHJvbCBvdmVy IHR1cnRsZSBtb3ZlbWVudCB1c2luZyB0aGUgbmV3IDptZXRoOmBkZWxheWAsDQotICAgIDptZXRo OmB0cmFjZXJgLCBhbmQgOm1ldGg6YHNwZWVkYCBtZXRob2RzLg0KKyAgKiBDb250cm9sIG92ZXIg dHVydGxlIG1vdmVtZW50IHVzaW5nIHRoZSBuZXcgOmZ1bmM6YH50dXJ0bGUuZGVsYXlgLA0KKyAg ICA6ZnVuYzpgfnR1cnRsZS50cmFjZXJgLCBhbmQgOmZ1bmM6YH50dXJ0bGUuc3BlZWRgIG1ldGhv ZHMuDQogICAqIFRoZSBhYmlsaXR5IHRvIHNldCBuZXcgc2hhcGVzIGZvciB0aGUgdHVydGxlLCBh bmQgdG8NCiAgICAgZGVmaW5lIGEgbmV3IGNvb3JkaW5hdGUgc3lzdGVtLg0KLSAgKiBUdXJ0bGVz IG5vdyBoYXZlIGFuIDptZXRoOmB1bmRvYCBtZXRob2QgdGhhdCBjYW4gcm9sbCBiYWNrIGFjdGlv bnMuDQorICAqIFR1cnRsZXMgbm93IGhhdmUgYW4gOmZ1bmM6YH50dXJ0bGUudW5kb2AgbWV0aG9k IHRoYXQgY2FuIHJvbGwgYmFjayBhY3Rpb25zLg0KICAgKiBTaW1wbGUgc3VwcG9ydCBmb3IgcmVh Y3RpbmcgdG8gaW5wdXQgZXZlbnRzIHN1Y2ggYXMgbW91c2UgYW5kIGtleWJvYXJkDQogICAgIGFj dGl2aXR5LCBtYWtpbmcgaXQgcG9zc2libGUgdG8gd3JpdGUgc2ltcGxlIGdhbWVzLg0KICAgKiBB IDpmaWxlOmB0dXJ0bGUuY2ZnYCBmaWxlIGNhbiBiZSB1c2VkIHRvIGN1c3RvbWl6ZSB0aGUgc3Rh cnRpbmcgYXBwZWFyYW5jZQ0KQEAgLTI1OTAsNyArMjU5NSw3IEBAIGNoYW5nZXMsIG9yIGxvb2sg dGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogKiBB biBvcHRpb25hbCBgYHRpbWVvdXRgYCBwYXJhbWV0ZXIgd2FzIGFkZGVkIHRvIHRoZQ0KICAgOmZ1 bmM6YHVybGxpYi51cmxvcGVuIDx1cmxsaWIucmVxdWVzdC51cmxvcGVuPmAgZnVuY3Rpb24gYW5k IHRoZQ0KLSAgOmNsYXNzOmB1cmxsaWIuZnRwd3JhcHBlcmAgY2xhc3MgY29uc3RydWN0b3IsIGFz IHdlbGwgYXMgdGhlDQorICA6Y2xhc3M6YCF1cmxsaWIuZnRwd3JhcHBlcmAgY2xhc3MgY29uc3Ry dWN0b3IsIGFzIHdlbGwgYXMgdGhlDQogICA6ZnVuYzpgdXJsbGliMi51cmxvcGVuIDx1cmxsaWIu cmVxdWVzdC51cmxvcGVuPmAgZnVuY3Rpb24uICBUaGUgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHRp bWVvdXQNCiAgIG1lYXN1cmVkIGluIHNlY29uZHMuICAgRm9yIGV4YW1wbGU6Og0KIA0KQEAgLTI2 MDcsMTIgKzI2MTIsMTMgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9u IGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIGhhcyBiZWVuIHVwZGF0ZWQgdG8gdmVyc2lv biA1LjEuMC4gIChVcGRhdGVkIGJ5DQogICBNYXJ0aW4gdm9uIEzDtndpczsgOmlzc3VlOmAzODEx YC4pDQogDQotKiBUaGUgOm1vZDpgd2FybmluZ3NgIG1vZHVsZSdzIDpmdW5jOmBmb3JtYXR3YXJu aW5nYCBhbmQgOmZ1bmM6YHNob3d3YXJuaW5nYA0KKyogVGhlIDptb2Q6YHdhcm5pbmdzYCBtb2R1 bGUncyA6ZnVuYzpgfndhcm5pbmdzLmZvcm1hdHdhcm5pbmdgIGFuZA0KKyAgOmZ1bmM6YH53YXJu aW5ncy5zaG93d2FybmluZ2ANCiAgIGdhaW5lZCBhbiBvcHRpb25hbCAqbGluZSogYXJndW1lbnQg dGhhdCBjYW4gYmUgdXNlZCB0byBzdXBwbHkgdGhlDQogICBsaW5lIG9mIHNvdXJjZSBjb2RlLiAg KEFkZGVkIGFzIHBhcnQgb2YgOmlzc3VlOmAxNjMxMTcxYCwgd2hpY2ggcmUtaW1wbGVtZW50ZWQN CiAgIHBhcnQgb2YgdGhlIDptb2Q6YHdhcm5pbmdzYCBtb2R1bGUgaW4gQyBjb2RlLikNCiANCi0g IEEgbmV3IGZ1bmN0aW9uLCA6ZnVuYzpgY2F0Y2hfd2FybmluZ3NgLCBpcyBhIGNvbnRleHQgbWFu YWdlcg0KKyAgQSBuZXcgZnVuY3Rpb24sIDpmdW5jOmB+d2FybmluZ3MuY2F0Y2hfd2FybmluZ3Ng LCBpcyBhIGNvbnRleHQgbWFuYWdlcg0KICAgaW50ZW5kZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMg dGhhdCBsZXRzIHlvdSB0ZW1wb3JhcmlseSBtb2RpZnkgdGhlDQogICB3YXJuaW5nIGZpbHRlcnMg YW5kIHRoZW4gcmVzdG9yZSB0aGVpciBvcmlnaW5hbCB2YWx1ZXMgKDppc3N1ZTpgMzc4MWApLg0K IA0KQEAgLTI2MjAsMTIgKzI2MjYsMTMgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBT dWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIGNsYXNzZXMgY2FuIG5vdyBi ZSBwcmV2ZW50ZWQgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFuZCBiaW5kaW5nIHRvDQogICB0 aGVpciBzb2NrZXQgYnkgcGFzc2luZyBgYEZhbHNlYGAgYXMgdGhlICpiaW5kX2FuZF9hY3RpdmF0 ZSoNCiAgIGNvbnN0cnVjdG9yIHBhcmFtZXRlci4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gbW9kaWZ5 IHRoZSBpbnN0YW5jZSdzDQotICA6YXR0cjpgYWxsb3dfcmV1c2VfYWRkcmVzc2AgYXR0cmlidXRl IGJlZm9yZSBjYWxsaW5nIHRoZQ0KLSAgOm1ldGg6YHNlcnZlcl9iaW5kYCBhbmQgOm1ldGg6YHNl cnZlcl9hY3RpdmF0ZWAgbWV0aG9kcyB0bw0KKyAgOmF0dHI6YH5zb2NrZXRzZXJ2ZXIuQmFzZVNl cnZlci5hbGxvd19yZXVzZV9hZGRyZXNzYCBhdHRyaWJ1dGUgYmVmb3JlIGNhbGxpbmcgdGhlDQor ICA6bWV0aDpgfnNvY2tldHNlcnZlci5CYXNlU2VydmVyLnNlcnZlcl9iaW5kYCBhbmQNCisgIDpt ZXRoOmB+c29ja2V0c2VydmVyLkJhc2VTZXJ2ZXIuc2VydmVyX2FjdGl2YXRlYCBtZXRob2RzIHRv DQogICBvcGVuIHRoZSBzb2NrZXQgYW5kIGJlZ2luIGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMu DQogICAoQ29udHJpYnV0ZWQgYnkgUGV0ZXIgUGFyZW50ZTsgOmlzc3VlOmAxNTk5ODQ1YC4pDQog DQotICA6Y2xhc3M6YFNpbXBsZVhNTFJQQ1NlcnZlcmAgYWxzbyBoYXMgYSA6YXR0cjpgX3NlbmRf dHJhY2ViYWNrX2hlYWRlcmANCisgIDpjbGFzczpgfnhtbHJwYy5zZXJ2ZXIuU2ltcGxlWE1MUlBD U2VydmVyYCBhbHNvIGhhcyBhIDphdHRyOmAhX3NlbmRfdHJhY2ViYWNrX2hlYWRlcmANCiAgIGF0 dHJpYnV0ZTsgaWYgdHJ1ZSwgdGhlIGV4Y2VwdGlvbiBhbmQgZm9ybWF0dGVkIHRyYWNlYmFjayBh cmUgcmV0dXJuZWQNCiAgIGFzIEhUVFAgaGVhZGVycyAiWC1FeGNlcHRpb24iIGFuZCAiWC1UcmFj ZWJhY2siLiAgVGhpcyBmZWF0dXJlIGlzDQogICBmb3IgZGVidWdnaW5nIHB1cnBvc2VzIG9ubHkg YW5kIHNob3VsZCBub3QgYmUgdXNlZCBvbiBwcm9kdWN0aW9uIHNlcnZlcnMNCkBAIC0yNjM3LDE0 ICsyNjQ0LDE1IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dz IGZvciBhbGwgdGhlIGRldGFpbHMuDQogICA6Y2xhc3M6YGRhdGV0aW1lLmRhdGVgIGFuZCA6Y2xh c3M6YGRhdGV0aW1lLnRpbWVgIHRvIHRoZQ0KICAgOmNsYXNzOmB4bWxycGNsaWIuRGF0ZVRpbWUg PHhtbHJwYy5jbGllbnQuRGF0ZVRpbWU+YCB0eXBlOyB0aGUgY29udmVyc2lvbiBzZW1hbnRpY3Mg d2VyZQ0KICAgbm90IG5lY2Vzc2FyaWx5IGNvcnJlY3QgZm9yIGFsbCBhcHBsaWNhdGlvbnMuICBD b2RlIHVzaW5nDQotICA6bW9kOmAheG1scnBjbGliYCBzaG91bGQgY29udmVydCA6Y2xhc3M6YGRh dGVgIGFuZCA6Y2xhc3M6YH5kYXRldGltZS50aW1lYA0KKyAgOm1vZDpgIXhtbHJwY2xpYmAgc2hv dWxkIGNvbnZlcnQgOmNsYXNzOmB+ZGF0ZXRpbWUuZGF0ZWAgYW5kIDpjbGFzczpgfmRhdGV0aW1l LnRpbWVgDQogICBpbnN0YW5jZXMuICg6aXNzdWU6YDEzMzA1MzhgKSAgVGhlIGNvZGUgY2FuIGFs c28gaGFuZGxlDQogICBkYXRlcyBiZWZvcmUgMTkwMCAoY29udHJpYnV0ZWQgYnkgUmFsZiBTY2ht aXR0OyA6aXNzdWU6YDIwMTRgKQ0KICAgYW5kIDY0LWJpdCBpbnRlZ2VycyByZXByZXNlbnRlZCBi eSB1c2luZyBgYDxpOD5gYCBpbiBYTUwtUlBDIHJlc3BvbnNlcw0KICAgKGNvbnRyaWJ1dGVkIGJ5 IFJpa3UgTGluZGJsYWQ7IDppc3N1ZTpgMjk4NWApLg0KIA0KLSogVGhlIDptb2Q6YHppcGZpbGVg IG1vZHVsZSdzIDpjbGFzczpgWmlwRmlsZWAgY2xhc3Mgbm93IGhhcw0KLSAgOm1ldGg6YGV4dHJh Y3RgIGFuZCA6bWV0aDpgZXh0cmFjdGFsbGAgbWV0aG9kcyB0aGF0IHdpbGwgdW5wYWNrDQorKiBU aGUgOm1vZDpgemlwZmlsZWAgbW9kdWxlJ3MgOmNsYXNzOmB+emlwZmlsZS5aaXBGaWxlYCBjbGFz cyBub3cgaGFzDQorICA6bWV0aDpgfnppcGZpbGUuWmlwRmlsZS5leHRyYWN0YCBhbmQgOm1ldGg6 YH56aXBmaWxlLlppcEZpbGUuZXh0cmFjdGFsbGANCisgIG1ldGhvZHMgdGhhdCB3aWxsIHVucGFj aw0KICAgYSBzaW5nbGUgZmlsZSBvciBhbGwgdGhlIGZpbGVzIGluIHRoZSBhcmNoaXZlIHRvIHRo ZSBjdXJyZW50IGRpcmVjdG9yeSwgb3INCiAgIHRvIGEgc3BlY2lmaWVkIGRpcmVjdG9yeTo6DQog DQpAQCAtMjY1OSw4ICsyNjY3LDkgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2 ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIChDb250cmlidXRlZCBieSBB bGFuIE1jSW50eXJlOyA6aXNzdWU6YDQ2NzkyNGAuKQ0KIA0KLSAgVGhlIDptZXRoOmBvcGVuYCwg Om1ldGg6YHJlYWRgIGFuZCA6bWV0aDpgZXh0cmFjdGAgbWV0aG9kcyBjYW4gbm93DQotICB0YWtl IGVpdGhlciBhIGZpbGVuYW1lIG9yIGEgOmNsYXNzOmBaaXBJbmZvYCBvYmplY3QuICBUaGlzIGlz IHVzZWZ1bCB3aGVuIGFuDQorICBUaGUgOm1ldGg6YH56aXBmaWxlLlppcEZpbGUub3BlbmAsIDpt ZXRoOmB+emlwZmlsZS5aaXBGaWxlLnJlYWRgIGFuZA0KKyAgOm1ldGg6YH56aXBmaWxlLlppcEZp bGUuZXh0cmFjdGAgbWV0aG9kcyBjYW4gbm93DQorICB0YWtlIGVpdGhlciBhIGZpbGVuYW1lIG9y IGEgOmNsYXNzOmB+emlwZmlsZS5aaXBJbmZvYCBvYmplY3QuICBUaGlzIGlzIHVzZWZ1bCB3aGVu IGFuDQogICBhcmNoaXZlIGFjY2lkZW50YWxseSBjb250YWlucyBhIGR1cGxpY2F0ZWQgZmlsZW5h bWUuDQogICAoQ29udHJpYnV0ZWQgYnkgR3JhaGFtIEhvcmxlcjsgOmlzc3VlOmAxNzc1MDI1YC4p DQogDQpAQCAtMjY3MSw3ICsyNjgwLDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBT dWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAuLiB3aG9sZSBuZXcgbW9kdWxl cyBnZXQgZGVzY3JpYmVkIGluIHN1YnNlY3Rpb25zIGhlcmUNCiANCiBUaGUgOm1vZDpgYXN0YCBt b2R1bGUNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQog DQogVGhlIDptb2Q6YGFzdGAgbW9kdWxlIHByb3ZpZGVzIGFuIEFic3RyYWN0IFN5bnRheCBUcmVl DQogcmVwcmVzZW50YXRpb24gb2YgUHl0aG9uIGNvZGUsIGFuZCBBcm1pbiBSb25hY2hlcg0KQEAg LTI2ODAsOCArMjY4OSw4IEBAIGNvbW1vbiB0YXNrcy4gIFRoZXNlIHdpbGwgYmUgdXNlZnVsIGZv ciBIVE1MIHRlbXBsYXRpbmcNCiBwYWNrYWdlcywgY29kZSBhbmFseXplcnMsIGFuZCBzaW1pbGFy IHRvb2xzIHRoYXQgcHJvY2Vzcw0KIFB5dGhvbiBjb2RlLg0KIA0KLVRoZSA6ZnVuYzpgcGFyc2Vg IGZ1bmN0aW9uIHRha2VzIGFuIGV4cHJlc3Npb24gYW5kIHJldHVybnMgYW4gQVNULg0KLVRoZSA6 ZnVuYzpgZHVtcGAgZnVuY3Rpb24gb3V0cHV0cyBhIHJlcHJlc2VudGF0aW9uIG9mIGEgdHJlZSwg c3VpdGFibGUNCitUaGUgOmZ1bmM6YH5hc3QucGFyc2VgIGZ1bmN0aW9uIHRha2VzIGFuIGV4cHJl c3Npb24gYW5kIHJldHVybnMgYW4gQVNULg0KK1RoZSA6ZnVuYzpgfmFzdC5kdW1wYCBmdW5jdGlv biBvdXRwdXRzIGEgcmVwcmVzZW50YXRpb24gb2YgYSB0cmVlLCBzdWl0YWJsZQ0KIGZvciBkZWJ1 Z2dpbmc6Og0KIA0KICAgICBpbXBvcnQgYXN0DQpAQCAtMjcyNywxMyArMjczNiwxMyBAQCBUaGlz IG91dHB1dHMgYSBkZWVwbHkgbmVzdGVkIHRyZWU6Og0KICAgICAgICBdLCBubD1UcnVlKQ0KICAg ICAgXSkNCiANCi1UaGUgOmZ1bmM6YGxpdGVyYWxfZXZhbGAgbWV0aG9kIHRha2VzIGEgc3RyaW5n IG9yIGFuIEFTVA0KK1RoZSA6ZnVuYzpgfmFzdC5saXRlcmFsX2V2YWxgIG1ldGhvZCB0YWtlcyBh IHN0cmluZyBvciBhbiBBU1QNCiByZXByZXNlbnRpbmcgYSBsaXRlcmFsIGV4cHJlc3Npb24sIHBh cnNlcyBhbmQgZXZhbHVhdGVzIGl0LCBhbmQNCiByZXR1cm5zIHRoZSByZXN1bHRpbmcgdmFsdWUu ICBBIGxpdGVyYWwgZXhwcmVzc2lvbiBpcyBhIFB5dGhvbg0KIGV4cHJlc3Npb24gY29udGFpbmlu ZyBvbmx5IHN0cmluZ3MsIG51bWJlcnMsIGRpY3Rpb25hcmllcywNCiBldGMuIGJ1dCBubyBzdGF0 ZW1lbnRzIG9yIGZ1bmN0aW9uIGNhbGxzLiAgSWYgeW91IG5lZWQgdG8NCiBldmFsdWF0ZSBhbiBl eHByZXNzaW9uIGJ1dCBjYW5ub3QgYWNjZXB0IHRoZSBzZWN1cml0eSByaXNrIG9mIHVzaW5nIGFu DQotOmZ1bmM6YGV2YWxgIGNhbGwsIDpmdW5jOmBsaXRlcmFsX2V2YWxgIHdpbGwgaGFuZGxlIGl0 IHNhZmVseTo6DQorOmZ1bmM6YGV2YWxgIGNhbGwsIDpmdW5jOmB+YXN0LmxpdGVyYWxfZXZhbGAg d2lsbCBoYW5kbGUgaXQgc2FmZWx5OjoNCiANCiAgICAgPj4+IGxpdGVyYWwgPSAnKCJhIiwgImIi LCB7Mjo0LCAzOjgsIDE6Mn0pJw0KICAgICA+Pj4gcHJpbnQgYXN0LmxpdGVyYWxfZXZhbChsaXRl cmFsKQ0KQEAgLTI3NDMsMTUgKzI3NTIsMTUgQEAgZXZhbHVhdGUgYW4gZXhwcmVzc2lvbiBidXQg Y2Fubm90IGFjY2VwdCB0aGUgc2VjdXJpdHkgcmlzayBvZiB1c2luZyBhbg0KICAgICAgIC4uLg0K ICAgICBWYWx1ZUVycm9yOiBtYWxmb3JtZWQgc3RyaW5nDQogDQotVGhlIG1vZHVsZSBhbHNvIGlu Y2x1ZGVzIDpjbGFzczpgTm9kZVZpc2l0b3JgIGFuZA0KLTpjbGFzczpgTm9kZVRyYW5zZm9ybWVy YCBjbGFzc2VzIGZvciB0cmF2ZXJzaW5nIGFuZCBtb2RpZnlpbmcgYW4gQVNULA0KK1RoZSBtb2R1 bGUgYWxzbyBpbmNsdWRlcyA6Y2xhc3M6YH5hc3QuTm9kZVZpc2l0b3JgIGFuZA0KKzpjbGFzczpg fmFzdC5Ob2RlVHJhbnNmb3JtZXJgIGNsYXNzZXMgZm9yIHRyYXZlcnNpbmcgYW5kIG1vZGlmeWlu ZyBhbiBBU1QsDQogYW5kIGZ1bmN0aW9ucyBmb3IgY29tbW9uIHRyYW5zZm9ybWF0aW9ucyBzdWNo IGFzIGNoYW5naW5nIGxpbmUNCiBudW1iZXJzLg0KIA0KIC4uID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiANCiBU aGUgOm1vZDpgIWZ1dHVyZV9idWlsdGluc2AgbW9kdWxlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQog DQogUHl0aG9uIDMuMCBtYWtlcyBtYW55IGNoYW5nZXMgdG8gdGhlIHJlcGVydG9pcmUgb2YgYnVp bHQtaW4NCiBmdW5jdGlvbnMsIGFuZCBtb3N0IG9mIHRoZSBjaGFuZ2VzIGNhbid0IGJlIGludHJv ZHVjZWQgaW4gdGhlIFB5dGhvbg0KQEAgLTI3NzEsMTUgKzI3ODAsMTUgQEAgVGhlIGZ1bmN0aW9u cyBpbiB0aGlzIG1vZHVsZSBjdXJyZW50bHkgaW5jbHVkZToNCiAgIHJldHVybiBpdGVyYXRvcnMs IHVubGlrZSB0aGUgMi54IGJ1aWx0aW5zIHdoaWNoIHJldHVybiBsaXN0cy4NCiANCiAqIGBgaGV4 KHZhbHVlKWBgLCBgYG9jdCh2YWx1ZSlgYDogaW5zdGVhZCBvZiBjYWxsaW5nIHRoZQ0KLSAgOm1l dGg6YF9faGV4X19gIG9yIDptZXRoOmBfX29jdF9fYCBtZXRob2RzLCB0aGVzZSB2ZXJzaW9ucyB3 aWxsDQotICBjYWxsIHRoZSA6bWV0aDpgX19pbmRleF9fYCBtZXRob2QgYW5kIGNvbnZlcnQgdGhl IHJlc3VsdCB0byBoZXhhZGVjaW1hbA0KKyAgOm1ldGg6YCFfX2hleF9fYCBvciA6bWV0aDpgIV9f b2N0X19gIG1ldGhvZHMsIHRoZXNlIHZlcnNpb25zIHdpbGwNCisgIGNhbGwgdGhlIDptZXRoOmB+ b2JqZWN0Ll9faW5kZXhfX2AgbWV0aG9kIGFuZCBjb252ZXJ0IHRoZSByZXN1bHQgdG8gaGV4YWRl Y2ltYWwNCiAgIG9yIG9jdGFsLiAgOmZ1bmM6YG9jdGAgd2lsbCB1c2UgdGhlIG5ldyBgYDBvYGAg bm90YXRpb24gZm9yIGl0cw0KICAgcmVzdWx0Lg0KIA0KIC4uID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiANCiBU aGUgOm1vZDpganNvbmAgbW9kdWxlOiBKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbg0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCiANCiBUaGUgbmV3IDptb2Q6YGpzb25gIG1vZHVsZSBzdXBwb3J0cyB0aGUgZW5jb2Rpbmcg YW5kIGRlY29kaW5nIG9mIFB5dGhvbiB0eXBlcyBpbg0KIEpTT04gKEphdmFzY3JpcHQgT2JqZWN0 IE5vdGF0aW9uKS4gSlNPTiBpcyBhIGxpZ2h0d2VpZ2h0IGludGVyY2hhbmdlIGZvcm1hdA0KQEAg LTI4NDYsMTIgKzI4NTUsMTIgQEAgVXNpbmcgdGhlIG1vZHVsZSBpcyBzaW1wbGU6Og0KIC4uID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCiANCiBjdHlwZXMgRW5oYW5jZW1lbnRzDQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tDQog DQogVGhvbWFzIEhlbGxlciBjb250aW51ZWQgdG8gbWFpbnRhaW4gYW5kIGVuaGFuY2UgdGhlDQog Om1vZDpgY3R5cGVzYCBtb2R1bGUuDQogDQotOm1vZDpgY3R5cGVzYCBub3cgc3VwcG9ydHMgYSA6 Y2xhc3M6YGNfYm9vbGAgZGF0YXR5cGUNCis6bW9kOmBjdHlwZXNgIG5vdyBzdXBwb3J0cyBhIDpj bGFzczpgfmN0eXBlcy5jX2Jvb2xgIGRhdGF0eXBlDQogdGhhdCByZXByZXNlbnRzIHRoZSBDOTkg YGBib29sYGAgdHlwZS4gIChDb250cmlidXRlZCBieSBEYXZpZCBSZW1haGw7DQogOmlzc3VlOmAx NjQ5MTkwYC4pDQogDQpAQCAtMjg2MywxMSArMjg3MiwxMSBAQCB3aGVyZSB2YXJpb3VzIGNvbWJp bmF0aW9ucyBvZiBgYChzdGFydCwgc3RvcCwgc3RlcClgYCBhcmUgc3VwcGxpZWQuDQogLi4gUmV2 aXNpb24gNTc3NjkNCiANCiBBbGwgOm1vZDpgY3R5cGVzYCBkYXRhIHR5cGVzIG5vdyBzdXBwb3J0 DQotOm1ldGg6YGZyb21fYnVmZmVyYCBhbmQgOm1ldGg6YGZyb21fYnVmZmVyX2NvcHlgDQorOm1l dGg6YH5jdHlwZXMuX0NEYXRhLmZyb21fYnVmZmVyYCBhbmQgOm1ldGg6YH5jdHlwZXMuX0NEYXRh LmZyb21fYnVmZmVyX2NvcHlgDQogbWV0aG9kcyB0aGF0IGNyZWF0ZSBhIGN0eXBlcyBpbnN0YW5j ZSBiYXNlZCBvbiBhDQotcHJvdmlkZWQgYnVmZmVyIG9iamVjdC4gIDptZXRoOmBmcm9tX2J1ZmZl cl9jb3B5YCBjb3BpZXMNCitwcm92aWRlZCBidWZmZXIgb2JqZWN0LiAgOm1ldGg6YH5jdHlwZXMu X0NEYXRhLmZyb21fYnVmZmVyX2NvcHlgIGNvcGllcw0KIHRoZSBjb250ZW50cyBvZiB0aGUgb2Jq ZWN0LA0KLXdoaWxlIDptZXRoOmBmcm9tX2J1ZmZlcmAgd2lsbCBzaGFyZSB0aGUgc2FtZSBtZW1v cnkgYXJlYS4NCit3aGlsZSA6bWV0aDpgfmN0eXBlcy5fQ0RhdGEuZnJvbV9idWZmZXJgIHdpbGwg c2hhcmUgdGhlIHNhbWUgbWVtb3J5IGFyZWEuDQogDQogQSBuZXcgY2FsbGluZyBjb252ZW50aW9u IHRlbGxzIDptb2Q6YGN0eXBlc2AgdG8gY2xlYXIgdGhlIGBgZXJybm9gYCBvcg0KIFdpbjMyIExh c3RFcnJvciB2YXJpYWJsZXMgYXQgdGhlIG91dHNldCBvZiBlYWNoIHdyYXBwZWQgY2FsbC4NCkBA IC0yODc1LDI0ICsyODg0LDI0IEBAIFdpbjMyIExhc3RFcnJvciB2YXJpYWJsZXMgYXQgdGhlIG91 dHNldCBvZiBlYWNoIHdyYXBwZWQgY2FsbC4NCiANCiBZb3UgY2FuIG5vdyByZXRyaWV2ZSB0aGUg VW5peCBgYGVycm5vYGAgdmFyaWFibGUgYWZ0ZXIgYSBmdW5jdGlvbg0KIGNhbGwuICBXaGVuIGNy ZWF0aW5nIGEgd3JhcHBlZCBmdW5jdGlvbiwgeW91IGNhbiBzdXBwbHkNCi1gYHVzZV9lcnJubz1U cnVlYGAgYXMgYSBrZXl3b3JkIHBhcmFtZXRlciB0byB0aGUgOmZ1bmM6YERMTGAgZnVuY3Rpb24N Ci1hbmQgdGhlbiBjYWxsIHRoZSBtb2R1bGUtbGV2ZWwgbWV0aG9kcyA6bWV0aDpgc2V0X2Vycm5v YCBhbmQNCi06bWV0aDpgZ2V0X2Vycm5vYCB0byBzZXQgYW5kIHJldHJpZXZlIHRoZSBlcnJvciB2 YWx1ZS4NCitgYHVzZV9lcnJubz1UcnVlYGAgYXMgYSBrZXl3b3JkIHBhcmFtZXRlciB0byB0aGUg YGBETExgYCBmdW5jdGlvbg0KK2FuZCB0aGVuIGNhbGwgdGhlIG1vZHVsZS1sZXZlbCBtZXRob2Rz IDpmdW5jOmB+Y3R5cGVzLnNldF9lcnJub2AgYW5kDQorOmZ1bmM6YH5jdHlwZXMuZ2V0X2Vycm5v YCB0byBzZXQgYW5kIHJldHJpZXZlIHRoZSBlcnJvciB2YWx1ZS4NCiANCiBUaGUgV2luMzIgTGFz dEVycm9yIHZhcmlhYmxlIGlzIHNpbWlsYXJseSBzdXBwb3J0ZWQgYnkNCi10aGUgOmZ1bmM6YERM TGAsIDpmdW5jOmBPbGVETExgLCBhbmQgOmZ1bmM6YFdpbkRMTGAgZnVuY3Rpb25zLg0KK3RoZSBg YERMTGBgLCA6ZnVuYzpgfmN0eXBlcy5PbGVETExgLCBhbmQgOmZ1bmM6YH5jdHlwZXMuV2luRExM YCBmdW5jdGlvbnMuDQogWW91IHN1cHBseSBgYHVzZV9sYXN0X2Vycm9yPVRydWVgYCBhcyBhIGtl eXdvcmQgcGFyYW1ldGVyDQotYW5kIHRoZW4gY2FsbCB0aGUgbW9kdWxlLWxldmVsIG1ldGhvZHMg Om1ldGg6YHNldF9sYXN0X2Vycm9yYA0KLWFuZCA6bWV0aDpgZ2V0X2xhc3RfZXJyb3JgLg0KK2Fu ZCB0aGVuIGNhbGwgdGhlIG1vZHVsZS1sZXZlbCBtZXRob2RzIDpmdW5jOmB+Y3R5cGVzLnNldF9s YXN0X2Vycm9yYA0KK2FuZCA6ZnVuYzpgfmN0eXBlcy5nZXRfbGFzdF9lcnJvcmAuDQogDQotVGhl IDpmdW5jOmBieXJlZmAgZnVuY3Rpb24sIHVzZWQgdG8gcmV0cmlldmUgYSBwb2ludGVyIHRvIGEg Y3R5cGVzDQorVGhlIDpmdW5jOmB+Y3R5cGVzLmJ5cmVmYCBmdW5jdGlvbiwgdXNlZCB0byByZXRy aWV2ZSBhIHBvaW50ZXIgdG8gYSBjdHlwZXMNCiBpbnN0YW5jZSwgbm93IGhhcyBhbiBvcHRpb25h bCAqb2Zmc2V0KiBwYXJhbWV0ZXIgdGhhdCBpcyBhIGJ5dGUNCiBjb3VudCB0aGF0IHdpbGwgYmUg YWRkZWQgdG8gdGhlIHJldHVybmVkIHBvaW50ZXIuDQogDQogLi4gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0K IEltcHJvdmVkIFNTTCBTdXBwb3J0DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KIEJpbGwgSmFuc3Nl biBtYWRlIGV4dGVuc2l2ZSBpbXByb3ZlbWVudHMgdG8gUHl0aG9uIDIuNidzIHN1cHBvcnQgZm9y DQogdGhlIFNlY3VyZSBTb2NrZXRzIExheWVyIGJ5IGFkZGluZyBhIG5ldyBtb2R1bGUsIDptb2Q6 YHNzbGAsIHRoYXQncw0KQEAgLTI5MDQsOSArMjkxMyw5IEBAIGluIHRoZSA6bW9kOmBzb2NrZXRg IG1vZHVsZSBoYXNuJ3QgYmVlbiByZW1vdmVkIGFuZCBjb250aW51ZXMgdG8gd29yaywNCiB0aG91 Z2ggaXQgd2lsbCBiZSByZW1vdmVkIGluIFB5dGhvbiAzLjAuDQogDQogVG8gdXNlIHRoZSBuZXcg bW9kdWxlLCB5b3UgbXVzdCBmaXJzdCBjcmVhdGUgYSBUQ1AgY29ubmVjdGlvbiBpbiB0aGUNCi11 c3VhbCB3YXkgYW5kIHRoZW4gcGFzcyBpdCB0byB0aGUgOmZ1bmM6YHNzbC53cmFwX3NvY2tldGAg ZnVuY3Rpb24uDQordXN1YWwgd2F5IGFuZCB0aGVuIHBhc3MgaXQgdG8gdGhlIDpmdW5jOmAhc3Ns LndyYXBfc29ja2V0YCBmdW5jdGlvbi4NCiBJdCdzIHBvc3NpYmxlIHRvIHNwZWNpZnkgd2hldGhl ciBhIGNlcnRpZmljYXRlIGlzIHJlcXVpcmVkLCBhbmQgdG8NCi1vYnRhaW4gY2VydGlmaWNhdGUg aW5mbyBieSBjYWxsaW5nIHRoZSA6bWV0aDpgZ2V0cGVlcmNlcnRgIG1ldGhvZC4NCitvYnRhaW4g Y2VydGlmaWNhdGUgaW5mbyBieSBjYWxsaW5nIHRoZSA6bWV0aDpgfnNzbC5TU0xTb2NrZXQuZ2V0 cGVlcmNlcnRgIG1ldGhvZC4NCiANCiAuLiBzZWVhbHNvOjoNCiANCkBAIC0zMDMyLDcgKzMwNDEs NyBAQCBDaGFuZ2VzIHRvIFB5dGhvbidzIGJ1aWxkIHByb2Nlc3MgYW5kIHRvIHRoZSBDIEFQSSBp bmNsdWRlOg0KIA0KICogVGhlIEJlcmtlbGV5REIgbW9kdWxlIG5vdyBoYXMgYSBDIEFQSSBvYmpl Y3QsIGF2YWlsYWJsZSBhcw0KICAgYGBic2RkYi5kYi5hcGlgYC4gICBUaGlzIG9iamVjdCBjYW4g YmUgdXNlZCBieSBvdGhlciBDIGV4dGVuc2lvbnMNCi0gIHRoYXQgd2lzaCB0byB1c2UgdGhlIDpt b2Q6YGJzZGRiYCBtb2R1bGUgZm9yIHRoZWlyIG93biBwdXJwb3Nlcy4NCisgIHRoYXQgd2lzaCB0 byB1c2UgdGhlIDptb2Q6YCFic2RkYmAgbW9kdWxlIGZvciB0aGVpciBvd24gcHVycG9zZXMuDQog ICAoQ29udHJpYnV0ZWQgYnkgRHVuY2FuIEdyaXNieS4pDQogDQogKiBUaGUgbmV3IGJ1ZmZlciBp bnRlcmZhY2UsIHByZXZpb3VzbHkgZGVzY3JpYmVkIGluDQpAQCAtMzA3NCw3ICszMDgzLDcgQEAg Q2hhbmdlcyB0byBQeXRob24ncyBidWlsZCBwcm9jZXNzIGFuZCB0byB0aGUgQyBBUEkgaW5jbHVk ZToNCiANCiAqIEMgZnVuY3Rpb25zIGFuZCBtZXRob2RzIHRoYXQgdXNlDQogICA6YzpmdW5jOmBQ eUNvbXBsZXhfQXNDQ29tcGxleGAgd2lsbCBub3cgYWNjZXB0IGFyZ3VtZW50cyB0aGF0DQotICBo YXZlIGEgOm1ldGg6YF9fY29tcGxleF9fYCBtZXRob2QuICBJbiBwYXJ0aWN1bGFyLCB0aGUgZnVu Y3Rpb25zIGluIHRoZQ0KKyAgaGF2ZSBhIDptZXRoOmB+b2JqZWN0Ll9fY29tcGxleF9fYCBtZXRo b2QuICBJbiBwYXJ0aWN1bGFyLCB0aGUgZnVuY3Rpb25zIGluIHRoZQ0KICAgOm1vZDpgY21hdGhg IG1vZHVsZSB3aWxsIG5vdyBhY2NlcHQgb2JqZWN0cyB3aXRoIHRoaXMgbWV0aG9kLg0KICAgVGhp cyBpcyBhIGJhY2twb3J0IG9mIGEgUHl0aG9uIDMuMCBjaGFuZ2UuDQogICAoQ29udHJpYnV0ZWQg YnkgTWFyayBEaWNraW5zb247IDppc3N1ZTpgMTY3NTQyM2AuKQ0KQEAgLTMxMjcsNyArMzEzNiw3 IEBAIENoYW5nZXMgdG8gUHl0aG9uJ3MgYnVpbGQgcHJvY2VzcyBhbmQgdG8gdGhlIEMgQVBJIGlu Y2x1ZGU6DQogLi4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0KIFBvcnQtU3BlY2lmaWMgQ2hhbmdlczogV2lu ZG93cw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQogDQogKiBUaGUgc3VwcG9ydCBmb3IgV2luZG93cyA5NSwgOTgs IE1FIGFuZCBOVDQgaGFzIGJlZW4gZHJvcHBlZC4NCiAgIFB5dGhvbiAyLjYgcmVxdWlyZXMgYXQg bGVhc3QgV2luZG93cyAyMDAwIFNQNC4NCkBAIC0zMTUzLDcgKzMxNjIsNyBAQCBQb3J0LVNwZWNp ZmljIENoYW5nZXM6IFdpbmRvd3MNCiANCiAqIFRoZSA6bW9kOmBzb2NrZXRgIG1vZHVsZSdzIHNv Y2tldCBvYmplY3RzIG5vdyBoYXZlIGFuDQogICA6bWV0aDpgfnNvY2tldC5zb2NrZXQuaW9jdGxg IG1ldGhvZCB0aGF0IHByb3ZpZGVzIGEgbGltaXRlZCBpbnRlcmZhY2UgdG8gdGhlDQotICA6Yzpm dW5jOmBXU0FJb2N0bGAgc3lzdGVtIGludGVyZmFjZS4NCisgIDpjOmZ1bmM6YCFXU0FJb2N0bGAg c3lzdGVtIGludGVyZmFjZS4NCiANCiAqIFRoZSA6bW9kOmBfd2lucmVnIDx3aW5yZWc+YCBtb2R1 bGUgbm93IGhhcyBhIGZ1bmN0aW9uLA0KICAgOmZ1bmM6YH53aW5yZWcuRXhwYW5kRW52aXJvbm1l bnRTdHJpbmdzYCwNCkBAIC0zMTc2LDcgKzMxODUsNyBAQCBQb3J0LVNwZWNpZmljIENoYW5nZXM6 IFdpbmRvd3MNCiAuLiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogDQogUG9ydC1TcGVjaWZpYyBDaGFuZ2VzOiBN YWMgT1MgWA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KICogV2hlbiBjb21waWxpbmcgYSBmcmFtZXdvcmsg YnVpbGQgb2YgUHl0aG9uLCB5b3UgY2FuIG5vdyBzcGVjaWZ5IHRoZQ0KICAgZnJhbWV3b3JrIG5h bWUgdG8gYmUgdXNlZCBieSBwcm92aWRpbmcgdGhlDQpAQCAtMzIzMCw3ICszMjM5LDcgQEAgUG9y dC1TcGVjaWZpYyBDaGFuZ2VzOiBNYWMgT1MgWA0KIC4uID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiANCiBQb3J0 LVNwZWNpZmljIENoYW5nZXM6IElSSVgNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KIEEgbnVtYmVyIG9mIG9sZCBJ UklYLXNwZWNpZmljIG1vZHVsZXMgd2VyZSBkZXByZWNhdGVkIGFuZCB3aWxsDQogYmUgcmVtb3Zl ZCBpbiBQeXRob24gMy4wOg0KQEAgLTMyNzQsNyArMzI4Myw3IEBAIHRoYXQgbWF5IHJlcXVpcmUg Y2hhbmdlcyB0byB5b3VyIGNvZGU6DQogKiBTdHJpbmcgZXhjZXB0aW9ucyBoYXZlIGJlZW4gcmVt b3ZlZC4gIEF0dGVtcHRpbmcgdG8gdXNlIHRoZW0gcmFpc2VzIGENCiAgIDpleGM6YFR5cGVFcnJv cmAuDQogDQotKiBUaGUgOm1ldGg6YF9faW5pdF9fYCBtZXRob2Qgb2YgOmNsYXNzOmBjb2xsZWN0 aW9ucy5kZXF1ZWANCisqIFRoZSA6bWV0aDpgIV9faW5pdF9fYCBtZXRob2Qgb2YgOmNsYXNzOmBj b2xsZWN0aW9ucy5kZXF1ZWANCiAgIG5vdyBjbGVhcnMgYW55IGV4aXN0aW5nIGNvbnRlbnRzIG9m IHRoZSBkZXF1ZQ0KICAgYmVmb3JlIGFkZGluZyBlbGVtZW50cyBmcm9tIHRoZSBpdGVyYWJsZS4g IFRoaXMgY2hhbmdlIG1ha2VzIHRoZQ0KICAgYmVoYXZpb3IgbWF0Y2ggYGBsaXN0Ll9faW5pdF9f KClgYC4NCkBAIC0zMjgyLDE2ICszMjkxLDE2IEBAIHRoYXQgbWF5IHJlcXVpcmUgY2hhbmdlcyB0 byB5b3VyIGNvZGU6DQogKiA6bWV0aDpgb2JqZWN0Ll9faW5pdF9fYCBwcmV2aW91c2x5IGFjY2Vw dGVkIGFyYml0cmFyeSBhcmd1bWVudHMgYW5kDQogICBrZXl3b3JkIGFyZ3VtZW50cywgaWdub3Jp bmcgdGhlbS4gIEluIFB5dGhvbiAyLjYsIHRoaXMgaXMgbm8gbG9uZ2VyDQogICBhbGxvd2VkIGFu ZCB3aWxsIHJlc3VsdCBpbiBhIDpleGM6YFR5cGVFcnJvcmAuICBUaGlzIHdpbGwgYWZmZWN0DQot ICA6bWV0aDpgX19pbml0X19gIG1ldGhvZHMgdGhhdCBlbmQgdXAgY2FsbGluZyB0aGUgY29ycmVz cG9uZGluZw0KKyAgOm1ldGg6YCFfX2luaXRfX2AgbWV0aG9kcyB0aGF0IGVuZCB1cCBjYWxsaW5n IHRoZSBjb3JyZXNwb25kaW5nDQogICBtZXRob2Qgb24gOmNsYXNzOmBvYmplY3RgIChwZXJoYXBz IHRocm91Z2ggdXNpbmcgOmZ1bmM6YHN1cGVyYCkuDQogICBTZWUgOmlzc3VlOmAxNjgzMzY4YCBm b3IgZGlzY3Vzc2lvbi4NCiANCi0qIFRoZSA6Y2xhc3M6YERlY2ltYWxgIGNvbnN0cnVjdG9yIG5v dyBhY2NlcHRzIGxlYWRpbmcgYW5kIHRyYWlsaW5nDQorKiBUaGUgOmNsYXNzOmB+ZGVjaW1hbC5E ZWNpbWFsYCBjb25zdHJ1Y3RvciBub3cgYWNjZXB0cyBsZWFkaW5nIGFuZCB0cmFpbGluZw0KICAg d2hpdGVzcGFjZSB3aGVuIHBhc3NlZCBhIHN0cmluZy4gIFByZXZpb3VzbHkgaXQgd291bGQgcmFp c2UgYW4NCi0gIDpleGM6YEludmFsaWRPcGVyYXRpb25gIGV4Y2VwdGlvbi4gIE9uIHRoZSBvdGhl ciBoYW5kLCB0aGUNCi0gIDptZXRoOmBjcmVhdGVfZGVjaW1hbGAgbWV0aG9kIG9mIDpjbGFzczpg Q29udGV4dGAgb2JqZWN0cyBub3cNCisgIDpleGM6YH5kZWNpbWFsLkludmFsaWRPcGVyYXRpb25g IGV4Y2VwdGlvbi4gIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUNCisgIDptZXRoOmB+ZGVjaW1hbC5D b250ZXh0LmNyZWF0ZV9kZWNpbWFsYCBtZXRob2Qgb2YgOmNsYXNzOmB+ZGVjaW1hbC5Db250ZXh0 YCBvYmplY3RzIG5vdw0KICAgZXhwbGljaXRseSBkaXNhbGxvd3MgZXh0cmEgd2hpdGVzcGFjZSwg cmFpc2luZyBhDQotICA6ZXhjOmBDb252ZXJzaW9uU3ludGF4YCBleGNlcHRpb24uDQorICA6ZXhj OmAhQ29udmVyc2lvblN5bnRheGAgZXhjZXB0aW9uLg0KIA0KICogRHVlIHRvIGFuIGltcGxlbWVu dGF0aW9uIGFjY2lkZW50LCBpZiB5b3UgcGFzc2VkIGEgZmlsZSBwYXRoIHRvDQogICB0aGUgYnVp bHQtaW4gIDpmdW5jOmBfX2ltcG9ydF9fYCBmdW5jdGlvbiwgaXQgd291bGQgYWN0dWFsbHkgaW1w b3J0DQpAQCAtMzMwOSwxNCArMzMxOCwxNCBAQCB0aGF0IG1heSByZXF1aXJlIGNoYW5nZXMgdG8g eW91ciBjb2RlOg0KIA0KICogVGhlIDptb2Q6YHNvY2tldGAgbW9kdWxlIGV4Y2VwdGlvbiA6ZXhj OmBzb2NrZXQuZXJyb3JgIG5vdyBpbmhlcml0cw0KICAgZnJvbSA6ZXhjOmBJT0Vycm9yYC4gIFBy ZXZpb3VzbHkgaXQgd2Fzbid0IGEgc3ViY2xhc3Mgb2YNCi0gIDpleGM6YFN0YW5kYXJkRXJyb3Jg IGJ1dCBub3cgaXQgaXMsIHRocm91Z2ggOmV4YzpgSU9FcnJvcmAuDQorICA6ZXhjOmAhU3RhbmRh cmRFcnJvcmAgYnV0IG5vdyBpdCBpcywgdGhyb3VnaCA6ZXhjOmBJT0Vycm9yYC4NCiAgIChJbXBs ZW1lbnRlZCBieSBHcmVnb3J5IFAuIFNtaXRoOyA6aXNzdWU6YDE3MDY4MTVgLikNCiANCiAqIFRo ZSA6bW9kOmB4bWxycGNsaWIgPHhtbHJwYy5jbGllbnQ+YCBtb2R1bGUgbm8gbG9uZ2VyIGF1dG9t YXRpY2FsbHkgY29udmVydHMNCiAgIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZWAgYW5kIDpjbGFzczpg ZGF0ZXRpbWUudGltZWAgdG8gdGhlDQogICA6Y2xhc3M6YHhtbHJwY2xpYi5EYXRlVGltZSA8eG1s cnBjLmNsaWVudC5EYXRlVGltZT5gIHR5cGU7IHRoZSBjb252ZXJzaW9uIHNlbWFudGljcyB3ZXJl DQogICBub3QgbmVjZXNzYXJpbHkgY29ycmVjdCBmb3IgYWxsIGFwcGxpY2F0aW9ucy4gIENvZGUg dXNpbmcNCi0gIDptb2Q6YCF4bWxycGNsaWJgIHNob3VsZCBjb252ZXJ0IDpjbGFzczpgZGF0ZWAg YW5kIDpjbGFzczpgfmRhdGV0aW1lLnRpbWVgDQorICA6bW9kOmAheG1scnBjbGliYCBzaG91bGQg Y29udmVydCA6Y2xhc3M6YH5kYXRldGltZS5kYXRlYCBhbmQgOmNsYXNzOmB+ZGF0ZXRpbWUudGlt ZWANCiAgIGluc3RhbmNlcy4gKDppc3N1ZTpgMTMzMDUzOGApDQogDQogKiAoMy4wLXdhcm5pbmcg bW9kZSkgVGhlIDpjbGFzczpgRXhjZXB0aW9uYCBjbGFzcyBub3cgd2FybnMNCg0KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KUHl0aG9uLWNoZWNraW5zIG1h aWxpbmcgbGlzdCAtLSBweXRob24tY2hlY2tpbnNAcHl0aG9uLm9yZwpUbyB1bnN1YnNjcmliZSBz ZW5kIGFuIGVtYWlsIHRvIHB5dGhvbi1jaGVja2lucy1sZWF2ZUBweXRob24ub3JnCmh0dHBzOi8v bWFpbC5weXRob24ub3JnL21haWxtYW4zLy9saXN0cy9weXRob24tY2hlY2tpbnMucHl0aG9uLm9y ZwpNZW1iZXIgYWRkcmVzczogcHl0aG9uLXB5dGhvbi1jaGVja2luc0BtLmdtYW5lLW14Lm9yZwo=