[3.13] gh-151942: Fix all Sphinx nitpicks in the Python 2.6 What's New (GH-154550) (#154954)
StanFromIreland <[email protected]> Fri, 31 Jul 2026 14:04:02 -0400 (EDT)
| Newsgroups | gmane.comp.python.cvs |
|---|---|
| Message-ID | <[email protected]> |
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi9jcHl0aG9uL2NvbW1pdC9jMmZkNzAzZmJhODA2Y2Nk ZTgyOTBhNTg3MmMzNjRkOGY1OGRmNWNlDQpjb21taXQ6IGMyZmQ3MDNmYmE4MDZjY2RlODI5MGE1 ODcyYzM2NGQ4ZjU4ZGY1Y2UNCmJyYW5jaDogMy4xMw0KYXV0aG9yOiBNaXNzIElzbGluZ3RvbiAo Ym90KSA8MzE0ODg5MDkrbWlzcy1pc2xpbmd0b25AdXNlcnMubm9yZXBseS5naXRodWIuY29tPg0K Y29tbWl0dGVyOiBTdGFuRnJvbUlyZWxhbmQgPHN0YW5AcHl0aG9uLm9yZz4NCmRhdGU6IDIwMjYt MDctMzFUMTg6MDM6NTFaDQpzdW1tYXJ5Og0KDQpbMy4xM10gZ2gtMTUxOTQyOiBGaXggYWxsIFNw aGlueCBuaXRwaWNrcyBpbiB0aGUgUHl0aG9uIDIuNiBXaGF0J3MgTmV3IChHSC0xNTQ1NTApICgj MTU0OTU0KQ0KDQooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA0MzIwYmJlOTI0YTU0MjgyNmFm NTk4Y2NkOWNkYjZjNWJiMjk4YWJlKQ0KDQpDby1hdXRob3JlZC1ieTogU3RhbiBVbGJyeWNoIDxz dGFuQHB5dGhvbi5vcmc+DQoNCmZpbGVzOg0KTSBEb2MvdG9vbHMvLm5pdGlnbm9yZQ0KTSBEb2Mv d2hhdHNuZXcvMi42LnJzdA0KDQpkaWZmIC0tZ2l0IGEvRG9jL3Rvb2xzLy5uaXRpZ25vcmUgYi9E b2MvdG9vbHMvLm5pdGlnbm9yZQ0KaW5kZXggYTY0OTVkYzNjYzVhZDk4Li41YTMzNjYyMWNlOTRi ZDAgMTAwNjQ0DQotLS0gYS9Eb2MvdG9vbHMvLm5pdGlnbm9yZQ0KKysrIGIvRG9jL3Rvb2xzLy5u aXRpZ25vcmUNCkBAIC0zNSw0ICszNSwzIEBAIERvYy9saWJyYXJ5L3htbC5zYXgucmVhZGVyLnJz dA0KIERvYy9saWJyYXJ5L3htbC5zYXgucnN0DQogRG9jL2xpYnJhcnkveG1scnBjLmNsaWVudC5y c3QNCiBEb2MvbGlicmFyeS94bWxycGMuc2VydmVyLnJzdA0KLURvYy93aGF0c25ldy8yLjYucnN0 DQpkaWZmIC0tZ2l0IGEvRG9jL3doYXRzbmV3LzIuNi5yc3QgYi9Eb2Mvd2hhdHNuZXcvMi42LnJz dA0KaW5kZXggZmE4ODQ5YWJlYmQ1OGM3Li5jMzc2MmRlNzdmMmM1MmQgMTAwNjQ0DQotLS0gYS9E b2Mvd2hhdHNuZXcvMi42LnJzdA0KKysrIGIvRG9jL3doYXRzbmV3LzIuNi5yc3QNCkBAIC0xMDEs MTAgKzEwMSwxMCBAQCB0byBicmVhaywgdGhleSd2ZSBiZWVuIGJhY2twb3J0ZWQgdG8gMi42IGFu ZCBhcmUgZGVzY3JpYmVkIGluIHRoaXMNCiBkb2N1bWVudCBpbiB0aGUgYXBwcm9wcmlhdGUgcGxh Y2UuICBTb21lIG9mIHRoZSAzLjAtZGVyaXZlZCBmZWF0dXJlcw0KIGFyZToNCiANCi0qIEEgOm1l dGg6YF9fY29tcGxleF9fYCBtZXRob2QgZm9yIGNvbnZlcnRpbmcgb2JqZWN0cyB0byBhIGNvbXBs ZXggbnVtYmVyLg0KKyogQSA6bWV0aDpgfm9iamVjdC5fX2NvbXBsZXhfX2AgbWV0aG9kIGZvciBj b252ZXJ0aW5nIG9iamVjdHMgdG8gYSBjb21wbGV4IG51bWJlci4NCiAqIEFsdGVybmF0ZSBzeW50 YXggZm9yIGNhdGNoaW5nIGV4Y2VwdGlvbnM6IGBgZXhjZXB0IFR5cGVFcnJvciBhcyBleGNgYC4N CiAqIFRoZSBhZGRpdGlvbiBvZiA6ZnVuYzpgZnVuY3Rvb2xzLnJlZHVjZWAgYXMgYSBzeW5vbnlt IGZvciB0aGUgYnVpbHQtaW4NCi0gIDpmdW5jOmByZWR1Y2VgIGZ1bmN0aW9uLg0KKyAgOmZ1bmM6 YCFyZWR1Y2VgIGZ1bmN0aW9uLg0KIA0KIFB5dGhvbiAzLjAgYWRkcyBzZXZlcmFsIG5ldyBidWls dC1pbiBmdW5jdGlvbnMgYW5kIGNoYW5nZXMgdGhlDQogc2VtYW50aWNzIG9mIHNvbWUgZXhpc3Rp bmcgYnVpbHRpbnMuICBGdW5jdGlvbnMgdGhhdCBhcmUgbmV3IGluIDMuMA0KQEAgLTExNDUsNyAr MTE0NSw3IEBAIGNvbnN0cmFpbnRzIHVwb24gdGhlIG1lbW9yeSByZXR1cm5lZC4gIFNvbWUgZXhh bXBsZXMgYXJlOg0KIA0KICogOmM6bWFjcm86YFB5QlVGX1dSSVRBQkxFYCBpbmRpY2F0ZXMgdGhh dCB0aGUgbWVtb3J5IG11c3QgYmUgd3JpdGFibGUuDQogDQotKiA6YzptYWNybzpgUHlCVUZfTE9D S2AgcmVxdWVzdHMgYSByZWFkLW9ubHkgb3IgZXhjbHVzaXZlIGxvY2sgb24gdGhlIG1lbW9yeS4N CisqIDpjOm1hY3JvOmAhUHlCVUZfTE9DS2AgcmVxdWVzdHMgYSByZWFkLW9ubHkgb3IgZXhjbHVz aXZlIGxvY2sgb24gdGhlIG1lbW9yeS4NCiANCiAqIDpjOm1hY3JvOmBQeUJVRl9DX0NPTlRJR1VP VVNgIGFuZCA6YzptYWNybzpgUHlCVUZfRl9DT05USUdVT1VTYA0KICAgcmVxdWVzdHMgYSBDLWNv bnRpZ3VvdXMgKGxhc3QgZGltZW5zaW9uIHZhcmllcyB0aGUgZmFzdGVzdCkgb3INCkBAIC0xMzM5 LDcgKzEzMzksNyBAQCBidWlsdGluIHJldHVybnMgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBm b3IgYSBudW1iZXI6Og0KICAgICA+Pj4gYmluKDE3MykNCiAgICAgJzBiMTAxMDExMDEnDQogDQot VGhlIDpmdW5jOmBpbnRgIGFuZCA6ZnVuYzpgbG9uZ2AgYnVpbHRpbnMgd2lsbCBub3cgYWNjZXB0 IHRoZSAiMG8iDQorVGhlIDpmdW5jOmBpbnRgIGFuZCA6ZnVuYzpgIWxvbmdgIGJ1aWx0aW5zIHdp bGwgbm93IGFjY2VwdCB0aGUgIjBvIg0KIGFuZCAiMGIiIHByZWZpeGVzIHdoZW4gYmFzZS04IG9y IGJhc2UtMiBhcmUgcmVxdWVzdGVkLCBvciB3aGVuIHRoZQ0KICpiYXNlKiBhcmd1bWVudCBpcyB6 ZXJvIChzaWduYWxsaW5nIHRoYXQgdGhlIGJhc2UgdXNlZCBzaG91bGQgYmUNCiBkZXRlcm1pbmVk IGZyb20gdGhlIHN0cmluZyk6Og0KQEAgLTEzOTIsMzUgKzEzOTIsMzYgQEAgVGhpcyBpcyBlcXVp dmFsZW50IHRvOjoNCiAuLiBfcGVwLTMxNDE6DQogDQogUEVQIDMxNDE6IEEgVHlwZSBIaWVyYXJj aHkgZm9yIE51bWJlcnMNCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQog DQogUHl0aG9uIDMuMCBhZGRzIHNldmVyYWwgYWJzdHJhY3QgYmFzZSBjbGFzc2VzIGZvciBudW1l cmljIHR5cGVzDQogaW5zcGlyZWQgYnkgU2NoZW1lJ3MgbnVtZXJpYyB0b3dlci4gIFRoZXNlIGNs YXNzZXMgd2VyZSBiYWNrcG9ydGVkIHRvDQogMi42IGFzIHRoZSA6bW9kOmBudW1iZXJzYCBtb2R1 bGUuDQogDQotVGhlIG1vc3QgZ2VuZXJhbCBBQkMgaXMgOmNsYXNzOmBOdW1iZXJgLiAgSXQgZGVm aW5lcyBubyBvcGVyYXRpb25zIGF0DQorVGhlIG1vc3QgZ2VuZXJhbCBBQkMgaXMgOmNsYXNzOmB+ bnVtYmVycy5OdW1iZXJgLiAgSXQgZGVmaW5lcyBubyBvcGVyYXRpb25zIGF0DQogYWxsLCBhbmQg b25seSBleGlzdHMgdG8gYWxsb3cgY2hlY2tpbmcgaWYgYW4gb2JqZWN0IGlzIGEgbnVtYmVyIGJ5 DQogZG9pbmcgYGBpc2luc3RhbmNlKG9iaiwgTnVtYmVyKWBgLg0KIA0KLTpjbGFzczpgQ29tcGxl eGAgaXMgYSBzdWJjbGFzcyBvZiA6Y2xhc3M6YE51bWJlcmAuICBDb21wbGV4IG51bWJlcnMNCis6 Y2xhc3M6YH5udW1iZXJzLkNvbXBsZXhgIGlzIGEgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+bnVtYmVy cy5OdW1iZXJgLiAgQ29tcGxleCBudW1iZXJzDQogY2FuIHVuZGVyZ28gdGhlIGJhc2ljIG9wZXJh dGlvbnMgb2YgYWRkaXRpb24sIHN1YnRyYWN0aW9uLA0KIG11bHRpcGxpY2F0aW9uLCBkaXZpc2lv biwgYW5kIGV4cG9uZW50aWF0aW9uLCBhbmQgeW91IGNhbiByZXRyaWV2ZSB0aGUNCiByZWFsIGFu ZCBpbWFnaW5hcnkgcGFydHMgYW5kIG9idGFpbiBhIG51bWJlcidzIGNvbmp1Z2F0ZS4gIFB5dGhv bidzIGJ1aWx0LWluDQotY29tcGxleCB0eXBlIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIDpjbGFz czpgQ29tcGxleGAuDQorY29tcGxleCB0eXBlIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIDpjbGFz czpgfm51bWJlcnMuQ29tcGxleGAuDQogDQotOmNsYXNzOmBSZWFsYCBmdXJ0aGVyIGRlcml2ZXMg ZnJvbSA6Y2xhc3M6YENvbXBsZXhgLCBhbmQgYWRkcw0KLW9wZXJhdGlvbnMgdGhhdCBvbmx5IHdv cmsgb24gcmVhbCBudW1iZXJzOiA6ZnVuYzpgZmxvb3JgLCA6ZnVuYzpgdHJ1bmNgLA0KKzpjbGFz czpgfm51bWJlcnMuUmVhbGAgZnVydGhlciBkZXJpdmVzIGZyb20gOmNsYXNzOmB+bnVtYmVycy5D b21wbGV4YCwgYW5kIGFkZHMNCitvcGVyYXRpb25zIHRoYXQgb25seSB3b3JrIG9uIHJlYWwgbnVt YmVyczogOmZ1bmM6YH5tYXRoLmZsb29yYCwgOmZ1bmM6YH5tYXRoLnRydW5jYCwNCiByb3VuZGlu ZywgdGFraW5nIHRoZSByZW1haW5kZXIgbW9kIE4sIGZsb29yIGRpdmlzaW9uLA0KIGFuZCBjb21w YXJpc29ucy4NCiANCi06Y2xhc3M6YFJhdGlvbmFsYCBudW1iZXJzIGRlcml2ZSBmcm9tIDpjbGFz czpgUmVhbGAsIGhhdmUNCi06YXR0cjpgbnVtZXJhdG9yYCBhbmQgOmF0dHI6YGRlbm9taW5hdG9y YCBwcm9wZXJ0aWVzLCBhbmQgY2FuIGJlDQorOmNsYXNzOmB+bnVtYmVycy5SYXRpb25hbGAgbnVt YmVycyBkZXJpdmUgZnJvbSA6Y2xhc3M6YH5udW1iZXJzLlJlYWxgLCBoYXZlDQorOmF0dHI6YH5u dW1iZXJzLlJhdGlvbmFsLm51bWVyYXRvcmAgYW5kIDphdHRyOmB+bnVtYmVycy5SYXRpb25hbC5k ZW5vbWluYXRvcmANCitwcm9wZXJ0aWVzLCBhbmQgY2FuIGJlDQogY29udmVydGVkIHRvIGZsb2F0 cy4gIFB5dGhvbiAyLjYgYWRkcyBhIHNpbXBsZSByYXRpb25hbC1udW1iZXIgY2xhc3MsDQotOmNs YXNzOmBGcmFjdGlvbmAsIGluIHRoZSA6bW9kOmBmcmFjdGlvbnNgIG1vZHVsZS4gIChJdCdzIGNh bGxlZA0KLTpjbGFzczpgRnJhY3Rpb25gIGluc3RlYWQgb2YgOmNsYXNzOmBSYXRpb25hbGAgdG8g YXZvaWQNCis6Y2xhc3M6YH5mcmFjdGlvbnMuRnJhY3Rpb25gLCBpbiB0aGUgOm1vZDpgZnJhY3Rp b25zYCBtb2R1bGUuICAoSXQncyBjYWxsZWQNCis6Y2xhc3M6YH5mcmFjdGlvbnMuRnJhY3Rpb25g IGluc3RlYWQgb2YgYGBSYXRpb25hbGBgIHRvIGF2b2lkDQogYSBuYW1lIGNsYXNoIHdpdGggOmNs YXNzOmBudW1iZXJzLlJhdGlvbmFsYC4pDQogDQotOmNsYXNzOmBJbnRlZ3JhbGAgbnVtYmVycyBk ZXJpdmUgZnJvbSA6Y2xhc3M6YFJhdGlvbmFsYCwgYW5kDQorOmNsYXNzOmB+bnVtYmVycy5JbnRl Z3JhbGAgbnVtYmVycyBkZXJpdmUgZnJvbSA6Y2xhc3M6YH5udW1iZXJzLlJhdGlvbmFsYCwgYW5k DQogY2FuIGJlIHNoaWZ0ZWQgbGVmdCBhbmQgcmlnaHQgd2l0aCBgYDw8YGAgYW5kIGBgPj5gYCwN CiBjb21iaW5lZCB1c2luZyBiaXR3aXNlIG9wZXJhdGlvbnMgc3VjaCBhcyBgYCZgYCBhbmQgYGB8 YGAsDQogYW5kIGNhbiBiZSB1c2VkIGFzIGFycmF5IGluZGV4ZXMgYW5kIHNsaWNlIGJvdW5kYXJp ZXMuDQpAQCAtMTQyOSw3ICsxNDMwLDcgQEAgSW4gUHl0aG9uIDMuMCwgdGhlIFBFUCBzbGlnaHRs eSByZWRlZmluZXMgdGhlIGV4aXN0aW5nIGJ1aWx0aW5zDQogOmZ1bmM6YHJvdW5kYCwgOmZ1bmM6 YG1hdGguZmxvb3JgLCA6ZnVuYzpgbWF0aC5jZWlsYCwgYW5kIGFkZHMgYSBuZXcNCiBvbmUsIDpm dW5jOmBtYXRoLnRydW5jYCwgdGhhdCdzIGJlZW4gYmFja3BvcnRlZCB0byBQeXRob24gMi42Lg0K IDpmdW5jOmBtYXRoLnRydW5jYCByb3VuZHMgdG93YXJkIHplcm8sIHJldHVybmluZyB0aGUgY2xv c2VzdA0KLTpjbGFzczpgSW50ZWdyYWxgIHRoYXQncyBiZXR3ZWVuIHRoZSBmdW5jdGlvbidzIGFy Z3VtZW50IGFuZCB6ZXJvLg0KKzpjbGFzczpgfm51bWJlcnMuSW50ZWdyYWxgIHRoYXQncyBiZXR3 ZWVuIHRoZSBmdW5jdGlvbidzIGFyZ3VtZW50IGFuZCB6ZXJvLg0KIA0KIC4uIHNlZWFsc286Og0K IA0KQEAgLTE0NDIsNyArMTQ0Myw3IEBAIG9uZSwgOmZ1bmM6YG1hdGgudHJ1bmNgLCB0aGF0J3Mg YmVlbiBiYWNrcG9ydGVkIHRvIFB5dGhvbiAyLjYuDQogDQogDQogVGhlIDptb2Q6YGZyYWN0aW9u c2AgTW9kdWxlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiANCiBUbyBmaWxsIG91dCB0aGUg aGllcmFyY2h5IG9mIG51bWVyaWMgdHlwZXMsIHRoZSA6bW9kOmBmcmFjdGlvbnNgDQogbW9kdWxl IHByb3ZpZGVzIGEgcmF0aW9uYWwtbnVtYmVyIGNsYXNzLiAgUmF0aW9uYWwgbnVtYmVycyBzdG9y ZSB0aGVpcg0KQEAgLTE0NTAsNyArMTQ1MSw3IEBAIHZhbHVlcyBhcyBhIG51bWVyYXRvciBhbmQg ZGVub21pbmF0b3IgZm9ybWluZyBhIGZyYWN0aW9uLCBhbmQgY2FuDQogZXhhY3RseSByZXByZXNl bnQgbnVtYmVycyBzdWNoIGFzIGBgMi8zYGAgdGhhdCBmbG9hdGluZy1wb2ludCBudW1iZXJzDQog Y2FuIG9ubHkgYXBwcm94aW1hdGUuDQogDQotVGhlIDpjbGFzczpgRnJhY3Rpb25gIGNvbnN0cnVj dG9yIHRha2VzIHR3byA6Y2xhc3M6YEludGVncmFsYCB2YWx1ZXMNCitUaGUgOmNsYXNzOmB+ZnJh Y3Rpb25zLkZyYWN0aW9uYCBjb25zdHJ1Y3RvciB0YWtlcyB0d28gOmNsYXNzOmB+bnVtYmVycy5J bnRlZ3JhbGAgdmFsdWVzDQogdGhhdCB3aWxsIGJlIHRoZSBudW1lcmF0b3IgYW5kIGRlbm9taW5h dG9yIG9mIHRoZSByZXN1bHRpbmcgZnJhY3Rpb24uIDo6DQogDQogICAgID4+PiBmcm9tIGZyYWN0 aW9ucyBpbXBvcnQgRnJhY3Rpb24NCkBAIC0xNDY0LDcgKzE0NjUsNyBAQCB0aGF0IHdpbGwgYmUg dGhlIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3Igb2YgdGhlIHJlc3VsdGluZyBmcmFjdGlvbi4g OjoNCiAgICAgRnJhY3Rpb24oNSwgMykNCiANCiBGb3IgY29udmVydGluZyBmbG9hdGluZy1wb2lu dCBudW1iZXJzIHRvIHJhdGlvbmFscywNCi10aGUgZmxvYXQgdHlwZSBub3cgaGFzIGFuIDptZXRo OmBhc19pbnRlZ2VyX3JhdGlvYCBtZXRob2QgdGhhdCByZXR1cm5zDQordGhlIGZsb2F0IHR5cGUg bm93IGhhcyBhbiA6bWV0aDpgfmZsb2F0LmFzX2ludGVnZXJfcmF0aW9gIG1ldGhvZCB0aGF0IHJl dHVybnMNCiB0aGUgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBmb3IgYSBmcmFjdGlvbiB0aGF0 IGV2YWx1YXRlcyB0byB0aGUgc2FtZQ0KIGZsb2F0aW5nLXBvaW50IHZhbHVlOjoNCiANCkBAIC0x NDk5LDcgKzE1MDAsNyBAQCBTb21lIHNtYWxsZXIgY2hhbmdlcyBtYWRlIHRvIHRoZSBjb3JlIFB5 dGhvbiBsYW5ndWFnZSBhcmU6DQogICA6aXNzdWU6YDE3Mzk0NjhgLikNCiANCiAqIFRoZSA6ZnVu YzpgaGFzYXR0cmAgZnVuY3Rpb24gd2FzIGNhdGNoaW5nIGFuZCBpZ25vcmluZyBhbGwgZXJyb3Jz LA0KLSAgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGV5IG1lYW50IGEgOm1ldGg6YF9fZ2V0 YXR0cl9fYCBtZXRob2QNCisgIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhleSBtZWFudCBh IDptZXRoOmB+b2JqZWN0Ll9fZ2V0YXR0cl9fYCBtZXRob2QNCiAgIHdhcyBmYWlsaW5nIHNvbWVo b3cgYW5kIHRoZSByZXR1cm4gdmFsdWUgb2YgOmZ1bmM6YGhhc2F0dHJgIHdvdWxkDQogICB0aGVy ZWZvcmUgYmUgYGBGYWxzZWBgLiAgVGhpcyBsb2dpYyBzaG91bGRuJ3QgYmUgYXBwbGllZCB0bw0K ICAgOmV4YzpgS2V5Ym9hcmRJbnRlcnJ1cHRgIGFuZCA6ZXhjOmBTeXN0ZW1FeGl0YCwgaG93ZXZl cjsgUHl0aG9uIDIuNg0KQEAgLTE1ODYsMTAgKzE1ODcsMTAgQEAgU29tZSBzbWFsbGVyIGNoYW5n ZXMgbWFkZSB0byB0aGUgY29yZSBQeXRob24gbGFuZ3VhZ2UgYXJlOg0KICAgICAgICAgICAgIHNl bGYuX3ggPSB2YWx1ZSAvIDINCiANCiAqIFNldmVyYWwgbWV0aG9kcyBvZiB0aGUgYnVpbHQtaW4g c2V0IHR5cGVzIG5vdyBhY2NlcHQgbXVsdGlwbGUgaXRlcmFibGVzOg0KLSAgOm1ldGg6YGludGVy c2VjdGlvbmAsDQotICA6bWV0aDpgaW50ZXJzZWN0aW9uX3VwZGF0ZWAsDQotICA6bWV0aDpgdW5p b25gLCA6bWV0aDpgdXBkYXRlYCwNCi0gIDptZXRoOmBkaWZmZXJlbmNlYCBhbmQgOm1ldGg6YGRp ZmZlcmVuY2VfdXBkYXRlYC4NCisgIDptZXRoOmB+c2V0LmludGVyc2VjdGlvbmAsDQorICA6bWV0 aDpgfnNldC5pbnRlcnNlY3Rpb25fdXBkYXRlYCwNCisgIDptZXRoOmB+c2V0LnVuaW9uYCwgOm1l dGg6YH5zZXQudXBkYXRlYCwNCisgIDptZXRoOmB+c2V0LmRpZmZlcmVuY2VgIGFuZCA6bWV0aDpg fnNldC5kaWZmZXJlbmNlX3VwZGF0ZWAuDQogDQogICA6Og0KIA0KQEAgLTE2MDcsOCArMTYwOCw4 IEBAIFNvbWUgc21hbGxlciBjaGFuZ2VzIG1hZGUgdG8gdGhlIGNvcmUgUHl0aG9uIGxhbmd1YWdl IGFyZToNCiAgIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGluZmluaXR5LiAgVGhpcyB3b3JrcyBvbiBh bnkgcGxhdGZvcm0gd2l0aA0KICAgSUVFRSA3NTQgc2VtYW50aWNzLiAgKENvbnRyaWJ1dGVkIGJ5 IENocmlzdGlhbiBIZWltZXM7IDppc3N1ZTpgMTYzNWAuKQ0KIA0KLSAgT3RoZXIgZnVuY3Rpb25z IGluIHRoZSA6bW9kOmBtYXRoYCBtb2R1bGUsIDpmdW5jOmBpc2luZmAgYW5kDQotICA6ZnVuYzpg aXNuYW5gLCByZXR1cm4gdHJ1ZSBpZiB0aGVpciBmbG9hdGluZy1wb2ludCBhcmd1bWVudCBpcw0K KyAgT3RoZXIgZnVuY3Rpb25zIGluIHRoZSA6bW9kOmBtYXRoYCBtb2R1bGUsIDpmdW5jOmB+bWF0 aC5pc2luZmAgYW5kDQorICA6ZnVuYzpgfm1hdGguaXNuYW5gLCByZXR1cm4gdHJ1ZSBpZiB0aGVp ciBmbG9hdGluZy1wb2ludCBhcmd1bWVudCBpcw0KICAgaW5maW5pdGUgb3IgTm90IEEgTnVtYmVy LiAgKDppc3N1ZTpgMTY0MGApDQogDQogICBDb252ZXJzaW9uIGZ1bmN0aW9ucyB3ZXJlIGFkZGVk IHRvIGNvbnZlcnQgZmxvYXRpbmctcG9pbnQgbnVtYmVycw0KQEAgLTE2MzMsMTcgKzE2MzQsMTcg QEAgU29tZSBzbWFsbGVyIGNoYW5nZXMgbWFkZSB0byB0aGUgY29yZSBQeXRob24gbGFuZ3VhZ2Ug YXJlOg0KICAgOmZ1bmM6YGNvbXBsZXhgIGNvbnN0cnVjdG9yIHdpbGwgbm93IHByZXNlcnZlIHRo ZSBzaWduDQogICBvZiB0aGUgemVyby4gIChGaXhlZCBieSBNYXJrIFQuIERpY2tpbnNvbjsgOmlz c3VlOmAxNTA3YC4pDQogDQotKiBDbGFzc2VzIHRoYXQgaW5oZXJpdCBhIDptZXRoOmBfX2hhc2hf X2AgbWV0aG9kIGZyb20gYSBwYXJlbnQgY2xhc3MNCisqIENsYXNzZXMgdGhhdCBpbmhlcml0IGEg Om1ldGg6YH5vYmplY3QuX19oYXNoX19gIG1ldGhvZCBmcm9tIGEgcGFyZW50IGNsYXNzDQogICBj YW4gc2V0IGBgX19oYXNoX18gPSBOb25lYGAgdG8gaW5kaWNhdGUgdGhhdCB0aGUgY2xhc3MgaXNu J3QNCiAgIGhhc2hhYmxlLiAgVGhpcyB3aWxsIG1ha2UgYGBoYXNoKG9iailgYCByYWlzZSBhIDpl eGM6YFR5cGVFcnJvcmANCiAgIGFuZCB0aGUgY2xhc3Mgd2lsbCBub3QgYmUgaW5kaWNhdGVkIGFz IGltcGxlbWVudGluZyB0aGUNCiAgIDpjbGFzczpgSGFzaGFibGVgIEFCQy4NCiANCi0gIFlvdSBz aG91bGQgZG8gdGhpcyB3aGVuIHlvdSd2ZSBkZWZpbmVkIGEgOm1ldGg6YF9fY21wX19gIG9yDQot ICA6bWV0aDpgX19lcV9fYCBtZXRob2QgdGhhdCBjb21wYXJlcyBvYmplY3RzIGJ5IHRoZWlyIHZh bHVlIHJhdGhlcg0KKyAgWW91IHNob3VsZCBkbyB0aGlzIHdoZW4geW91J3ZlIGRlZmluZWQgYSA6 bWV0aDpgIV9fY21wX19gIG9yDQorICA6bWV0aDpgfm9iamVjdC5fX2VxX19gIG1ldGhvZCB0aGF0 IGNvbXBhcmVzIG9iamVjdHMgYnkgdGhlaXIgdmFsdWUgcmF0aGVyDQogICB0aGFuIGJ5IGlkZW50 aXR5LiAgQWxsIG9iamVjdHMgaGF2ZSBhIGRlZmF1bHQgaGFzaCBtZXRob2QgdGhhdCB1c2VzDQog ICBgYGlkKG9iailgYCBhcyB0aGUgaGFzaCB2YWx1ZS4gIFRoZXJlJ3Mgbm8gdGlkeSB3YXkgdG8g cmVtb3ZlIHRoZQ0KLSAgOm1ldGg6YF9faGFzaF9fYCBtZXRob2QgaW5oZXJpdGVkIGZyb20gYSBw YXJlbnQgY2xhc3MsIHNvDQorICA6bWV0aDpgfm9iamVjdC5fX2hhc2hfX2AgbWV0aG9kIGluaGVy aXRlZCBmcm9tIGEgcGFyZW50IGNsYXNzLCBzbw0KICAgYXNzaWduaW5nIGBgTm9uZWBgIHdhcyBp bXBsZW1lbnRlZCBhcyBhbiBvdmVycmlkZS4gIEF0IHRoZQ0KICAgQyBsZXZlbCwgZXh0ZW5zaW9u cyBjYW4gc2V0IGBgdHBfaGFzaGBgIHRvDQogICA6YzpmdW5jOmBQeU9iamVjdF9IYXNoTm90SW1w bGVtZW50ZWRgLg0KQEAgLTE2NTUsNyArMTY1Niw3IEBAIFNvbWUgc21hbGxlciBjaGFuZ2VzIG1h ZGUgdG8gdGhlIGNvcmUgUHl0aG9uIGxhbmd1YWdlIGFyZToNCiAgIHdpbGwgbm90IGluYWR2ZXJ0 ZW50bHkgY2F0Y2ggOmV4YzpgR2VuZXJhdG9yRXhpdGAuDQogICAoQ29udHJpYnV0ZWQgYnkgQ2hh ZCBBdXN0aW47IDppc3N1ZTpgMTUzN2AuKQ0KIA0KLSogR2VuZXJhdG9yIG9iamVjdHMgbm93IGhh dmUgYSA6YXR0cjpgZ2lfY29kZWAgYXR0cmlidXRlIHRoYXQgcmVmZXJzIHRvDQorKiBHZW5lcmF0 b3Igb2JqZWN0cyBub3cgaGF2ZSBhIDphdHRyOmAhZ2lfY29kZWAgYXR0cmlidXRlIHRoYXQgcmVm ZXJzIHRvDQogICB0aGUgb3JpZ2luYWwgY29kZSBvYmplY3QgYmFja2luZyB0aGUgZ2VuZXJhdG9y Lg0KICAgKENvbnRyaWJ1dGVkIGJ5IENvbGxpbiBXaW50ZXI7IDppc3N1ZTpgMTQ3MzI1N2AuKQ0K IA0KQEAgLTE2NjgsMTcgKzE2NjksMTcgQEAgU29tZSBzbWFsbGVyIGNoYW5nZXMgbWFkZSB0byB0 aGUgY29yZSBQeXRob24gbGFuZ3VhZ2UgYXJlOg0KICAgd2lsbCBub3cgcm91bmQtdHJpcCB2YWx1 ZXMuICBGb3IgZXhhbXBsZSwgYGBjb21wbGV4KCcoMys0aiknKWBgDQogICBub3cgcmV0dXJucyB0 aGUgdmFsdWUgKDMrNGopLiAgKDppc3N1ZTpgMTQ5MTg2NmApDQogDQotKiBUaGUgc3RyaW5nIDpt ZXRoOmB0cmFuc2xhdGVgIG1ldGhvZCBub3cgYWNjZXB0cyBgYE5vbmVgYCBhcyB0aGUNCisqIFRo ZSBzdHJpbmcgOm1ldGg6YH5zdHIudHJhbnNsYXRlYCBtZXRob2Qgbm93IGFjY2VwdHMgYGBOb25l YGAgYXMgdGhlDQogICB0cmFuc2xhdGlvbiB0YWJsZSBwYXJhbWV0ZXIsIHdoaWNoIGlzIHRyZWF0 ZWQgYXMgdGhlIGlkZW50aXR5DQogICB0cmFuc2Zvcm1hdGlvbi4gICBUaGlzIG1ha2VzIGl0IGVh c2llciB0byBjYXJyeSBvdXQgb3BlcmF0aW9ucw0KICAgdGhhdCBvbmx5IGRlbGV0ZSBjaGFyYWN0 ZXJzLiAgKENvbnRyaWJ1dGVkIGJ5IEJlbmd0IFJpY2h0ZXIgYW5kDQogICBpbXBsZW1lbnRlZCBi eSBSYXltb25kIEhldHRpbmdlcjsgOmlzc3VlOmAxMTkzMTI4YC4pDQogDQotKiBUaGUgYnVpbHQt aW4gOmZ1bmM6YGRpcmAgZnVuY3Rpb24gbm93IGNoZWNrcyBmb3IgYSA6bWV0aDpgX19kaXJfX2AN CisqIFRoZSBidWlsdC1pbiA6ZnVuYzpgZGlyYCBmdW5jdGlvbiBub3cgY2hlY2tzIGZvciBhIDpt ZXRoOmB+b2JqZWN0Ll9fZGlyX19gDQogICBtZXRob2Qgb24gdGhlIG9iamVjdHMgaXQgcmVjZWl2 ZXMuICBUaGlzIG1ldGhvZCBtdXN0IHJldHVybiBhIGxpc3QNCiAgIG9mIHN0cmluZ3MgY29udGFp bmluZyB0aGUgbmFtZXMgb2YgdmFsaWQgYXR0cmlidXRlcyBmb3IgdGhlIG9iamVjdCwNCiAgIGFu ZCBsZXRzIHRoZSBvYmplY3QgY29udHJvbCB0aGUgdmFsdWUgdGhhdCA6ZnVuYzpgZGlyYCBwcm9k dWNlcy4NCi0gIE9iamVjdHMgdGhhdCBoYXZlIDptZXRoOmBfX2dldGF0dHJfX2Agb3IgOm1ldGg6 YF9fZ2V0YXR0cmlidXRlX19gDQorICBPYmplY3RzIHRoYXQgaGF2ZSA6bWV0aDpgfm9iamVjdC5f X2dldGF0dHJfX2Agb3IgOm1ldGg6YH5vYmplY3QuX19nZXRhdHRyaWJ1dGVfX2ANCiAgIG1ldGhv ZHMgY2FuIHVzZSB0aGlzIHRvIGFkdmVydGlzZSBwc2V1ZG8tYXR0cmlidXRlcyB0aGV5IHdpbGwg aG9ub3IuDQogICAoOmlzc3VlOmAxNTkxNjY1YCkNCiANCkBAIC0xNzM5LDggKzE3NDAsOCBAQCBP cHRpbWl6YXRpb25zDQogICBvbmUgb2YgdGhlc2UgdHlwZXMuICAoQ29udHJpYnV0ZWQgYnkgTmVh bCBOb3J3aXR6LikNCiANCiAqIFVuaWNvZGUgc3RyaW5ncyBub3cgdXNlIGZhc3RlciBjb2RlIGZv ciBkZXRlY3RpbmcNCi0gIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzOyB0aGlzIHNwZWVkcyB1 cCB0aGUgOm1ldGg6YHNwbGl0YCBtZXRob2QNCi0gIGJ5IGFib3V0IDI1JSBhbmQgOm1ldGg6YHNw bGl0bGluZXNgIGJ5IDM1JS4NCisgIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzOyB0aGlzIHNw ZWVkcyB1cCB0aGUgOm1ldGg6YH5zdHIuc3BsaXRgIG1ldGhvZA0KKyAgYnkgYWJvdXQgMjUlIGFu ZCA6bWV0aDpgfnN0ci5zcGxpdGxpbmVzYCBieSAzNSUuDQogICAoQ29udHJpYnV0ZWQgYnkgQW50 b2luZSBQaXRyb3UuKSAgTWVtb3J5IHVzYWdlIGlzIHJlZHVjZWQNCiAgIGJ5IHVzaW5nIHB5bWFs bG9jIGZvciB0aGUgVW5pY29kZSBzdHJpbmcncyBkYXRhLg0KIA0KQEAgLTE3NTYsNyArMTc1Nyw3 IEBAIE9wdGltaXphdGlvbnMNCiAuLiBfbmV3LTI2LWludGVycHJldGVyOg0KIA0KIEludGVycHJl dGVyIENoYW5nZXMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0t LS0tLS0tLS0tLQ0KIA0KIFR3byBjb21tYW5kLWxpbmUgb3B0aW9ucyBoYXZlIGJlZW4gcmVzZXJ2 ZWQgZm9yIHVzZSBieSBvdGhlciBQeXRob24NCiBpbXBsZW1lbnRhdGlvbnMuICBUaGUgOm9wdGlv bjpgLUpgIHN3aXRjaCBoYXMgYmVlbiByZXNlcnZlZCBmb3IgdXNlIGJ5DQpAQCAtMTgwMCwxNSAr MTgwMSwxNSBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBm b3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgd2VyZSBhcHBsaWVkLiAgKE1haW50YWluZWQgYnkgSm9z aWFoIENhcmxzb247IHNlZSA6aXNzdWU6YDE3MzYxOTBgIGZvcg0KICAgb25lIHBhdGNoLikNCiAN Ci0qIFRoZSA6bW9kOmBic2RkYmAgbW9kdWxlIGFsc28gaGFzIGEgbmV3IG1haW50YWluZXIsIEpl c8O6cyBDZWEgQXZpw7NuLCBhbmQgdGhlIHBhY2thZ2UNCi0gIGlzIG5vdyBhdmFpbGFibGUgYXMg YSBzdGFuZGFsb25lIHBhY2thZ2UuICBUaGUgd2ViIHBhZ2UgZm9yIHRoZSBwYWNrYWdlIGlzDQot ICBgd3d3LmpjZWEuZXMvcHJvZ3JhbWFjaW9uL3B5YnNkZGIuaHRtDQorKiBUaGUgOm1vZDpgIWJz ZGRiYCBtb2R1bGUgYWxzbyBoYXMgYSBuZXcgbWFpbnRhaW5lciwgSmVzw7pzIENlYSBBdmnDs24s IGFuZCB0aGUNCisgIHBhY2thZ2UgaXMgbm93IGF2YWlsYWJsZSBhcyBhIHN0YW5kYWxvbmUgcGFj a2FnZS4gIFRoZSB3ZWIgcGFnZSBmb3IgdGhlIHBhY2thZ2UNCisgIGlzIGB3d3cuamNlYS5lcy9w cm9ncmFtYWNpb24vcHlic2RkYi5odG0NCiAgIDxodHRwczovL3d3dy5qY2VhLmVzL3Byb2dyYW1h Y2lvbi9weWJzZGRiLmh0bT5gX18uDQogICBUaGUgcGxhbiBpcyB0byByZW1vdmUgdGhlIHBhY2th Z2UgZnJvbSB0aGUgc3RhbmRhcmQgbGlicmFyeQ0KICAgaW4gUHl0aG9uIDMuMCwgYmVjYXVzZSBp dHMgcGFjZSBvZiByZWxlYXNlcyBpcyBtdWNoIG1vcmUgZnJlcXVlbnQgdGhhbg0KICAgUHl0aG9u J3MuDQogDQotICBUaGUgOm1vZDpgYnNkZGIuZGJzaGVsdmVgIG1vZHVsZSBub3cgdXNlcyB0aGUg aGlnaGVzdCBwaWNrbGluZyBwcm90b2NvbA0KKyAgVGhlIDptb2Q6YCFic2RkYi5kYnNoZWx2ZWAg bW9kdWxlIG5vdyB1c2VzIHRoZSBoaWdoZXN0IHBpY2tsaW5nIHByb3RvY29sDQogICBhdmFpbGFi bGUsIGluc3RlYWQgb2YgcmVzdHJpY3RpbmcgaXRzZWxmIHRvIHByb3RvY29sIDEuDQogICAoQ29u dHJpYnV0ZWQgYnkgVy4gQmFybmVzLikNCiANCkBAIC0xODE4LDkgKzE4MTksOSBAQCBjaGFuZ2Vz LCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxz Lg0KICAgIi9jZ2ktYmluL2FkZC5weT9jYXRlZ29yeT0xIi4gIChDb250cmlidXRlZCBieSBBbGV4 YW5kcmUgRmlvcmkgYW5kDQogICBOdWJpczsgOmlzc3VlOmAxODE3YC4pDQogDQotICBUaGUgOmZ1 bmM6YHBhcnNlX3FzYCBhbmQgOmZ1bmM6YHBhcnNlX3FzbGAgZnVuY3Rpb25zIGhhdmUgYmVlbg0K LSAgcmVsb2NhdGVkIGZyb20gdGhlIDptb2Q6YCFjZ2lgIG1vZHVsZSB0byB0aGUgOm1vZDpgdXJs cGFyc2UgPHVybGxpYi5wYXJzZT5gIG1vZHVsZS4NCi0gIFRoZSB2ZXJzaW9ucyBzdGlsbCBhdmFp bGFibGUgaW4gdGhlIDptb2Q6YCFjZ2lgIG1vZHVsZSB3aWxsDQorICBUaGUgOmZ1bmM6YH51cmxs aWIucGFyc2UucGFyc2VfcXNgIGFuZCA6ZnVuYzpgfnVybGxpYi5wYXJzZS5wYXJzZV9xc2xgIGZ1 bmN0aW9ucw0KKyAgaGF2ZSBiZWVuIHJlbG9jYXRlZCBmcm9tIHRoZSA6bW9kOmAhY2dpYCBtb2R1 bGUgdG8gdGhlIDptb2Q6YHVybHBhcnNlIDx1cmxsaWIucGFyc2U+YA0KKyAgbW9kdWxlLiBUaGUg dmVyc2lvbnMgc3RpbGwgYXZhaWxhYmxlIGluIHRoZSA6bW9kOmAhY2dpYCBtb2R1bGUgd2lsbA0K ICAgdHJpZ2dlciA6ZXhjOmBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYCBtZXNzYWdlcyBpbiAy LjYNCiAgICg6aXNzdWU6YDYwMDM2MmApLg0KIA0KQEAgLTE4MjgsMjcgKzE4MjksMjcgQEAgY2hh bmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0 YWlscy4NCiAgIGNvbnRyaWJ1dGVkIGJ5IE1hcmsgRGlja2luc29uIGFuZCBDaHJpc3RpYW4gSGVp bWVzLg0KICAgRml2ZSBuZXcgZnVuY3Rpb25zIHdlcmUgYWRkZWQ6DQogDQotICAqIDpmdW5jOmBw b2xhcmAgY29udmVydHMgYSBjb21wbGV4IG51bWJlciB0byBwb2xhciBmb3JtLCByZXR1cm5pbmcN CisgICogOmZ1bmM6YH5jbWF0aC5wb2xhcmAgY29udmVydHMgYSBjb21wbGV4IG51bWJlciB0byBw b2xhciBmb3JtLCByZXR1cm5pbmcNCiAgICAgdGhlIG1vZHVsdXMgYW5kIGFyZ3VtZW50IG9mIHRo ZSBjb21wbGV4IG51bWJlci4NCiANCi0gICogOmZ1bmM6YHJlY3RgIGRvZXMgdGhlIG9wcG9zaXRl LCB0dXJuaW5nIGEgbW9kdWx1cywgYXJndW1lbnQgcGFpcg0KKyAgKiA6ZnVuYzpgfmNtYXRoLnJl Y3RgIGRvZXMgdGhlIG9wcG9zaXRlLCB0dXJuaW5nIGEgbW9kdWx1cywgYXJndW1lbnQgcGFpcg0K ICAgICBiYWNrIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgY29tcGxleCBudW1iZXIuDQogDQotICAq IDpmdW5jOmBwaGFzZWAgcmV0dXJucyB0aGUgYXJndW1lbnQgKGFsc28gY2FsbGVkIHRoZSBhbmds ZSkgb2YgYSBjb21wbGV4DQorICAqIDpmdW5jOmB+Y21hdGgucGhhc2VgIHJldHVybnMgdGhlIGFy Z3VtZW50IChhbHNvIGNhbGxlZCB0aGUgYW5nbGUpIG9mIGEgY29tcGxleA0KICAgICBudW1iZXIu DQogDQotICAqIDpmdW5jOmBpc25hbmAgcmV0dXJucyBUcnVlIGlmIGVpdGhlcg0KKyAgKiA6ZnVu YzpgfmNtYXRoLmlzbmFuYCByZXR1cm5zIFRydWUgaWYgZWl0aGVyDQogICAgIHRoZSByZWFsIG9y IGltYWdpbmFyeSBwYXJ0IG9mIGl0cyBhcmd1bWVudCBpcyBhIE5hTi4NCiANCi0gICogOmZ1bmM6 YGlzaW5mYCByZXR1cm5zIFRydWUgaWYgZWl0aGVyIHRoZSByZWFsIG9yIGltYWdpbmFyeSBwYXJ0 IG9mDQorICAqIDpmdW5jOmB+Y21hdGguaXNpbmZgIHJldHVybnMgVHJ1ZSBpZiBlaXRoZXIgdGhl IHJlYWwgb3IgaW1hZ2luYXJ5IHBhcnQgb2YNCiAgICAgaXRzIGFyZ3VtZW50IGlzIGluZmluaXRl Lg0KIA0KICAgVGhlIHJldmlzaW9ucyBhbHNvIGltcHJvdmVkIHRoZSBudW1lcmljYWwgc291bmRu ZXNzIG9mIHRoZQ0KICAgOm1vZDpgY21hdGhgIG1vZHVsZS4gIEZvciBhbGwgZnVuY3Rpb25zLCB0 aGUgcmVhbCBhbmQgaW1hZ2luYXJ5DQogICBwYXJ0cyBvZiB0aGUgcmVzdWx0cyBhcmUgYWNjdXJh dGUgdG8gd2l0aGluIGEgZmV3IHVuaXRzIG9mIGxlYXN0DQogICBwcmVjaXNpb24gKHVscHMpIHdo ZW5ldmVyIHBvc3NpYmxlLiAgU2VlIDppc3N1ZTpgMTM4MWAgZm9yIHRoZQ0KLSAgZGV0YWlscy4g IFRoZSBicmFuY2ggY3V0cyBmb3IgOmZ1bmM6YGFzaW5oYCwgOmZ1bmM6YGF0YW5oYDogYW5kDQot ICA6ZnVuYzpgYXRhbmAgaGF2ZSBhbHNvIGJlZW4gY29ycmVjdGVkLg0KKyAgZGV0YWlscy4gIFRo ZSBicmFuY2ggY3V0cyBmb3IgOmZ1bmM6YH5jbWF0aC5hc2luaGAsIDpmdW5jOmB+Y21hdGguYXRh bmhgLCBhbmQNCisgIDpmdW5jOmB+Y21hdGguYXRhbmAgaGF2ZSBhbHNvIGJlZW4gY29ycmVjdGVk Lg0KIA0KICAgVGhlIHRlc3RzIGZvciB0aGUgbW9kdWxlIGhhdmUgYmVlbiBncmVhdGx5IGV4cGFu ZGVkOyBuZWFybHkgMjAwMCBuZXcNCiAgIHRlc3QgY2FzZXMgZXhlcmNpc2UgdGhlIGFsZ2VicmFp YyBmdW5jdGlvbnMuDQpAQCAtMTg4MCwxNCArMTg4MSwxNCBAQCBjaGFuZ2VzLCBvciBsb29rIHRo cm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgICAgdmFy aWFibGUoaWQ9MSwgbmFtZT0nYW1wbGl0dWRlJywgdHlwZT0naW50Jywgc2l6ZT00KQ0KIA0KICAg U2V2ZXJhbCBwbGFjZXMgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkgdGhhdCByZXR1cm5lZCB0dXBs ZXMgaGF2ZQ0KLSAgYmVlbiBtb2RpZmllZCB0byByZXR1cm4gOmZ1bmM6YG5hbWVkdHVwbGVgIGlu c3RhbmNlcy4gIEZvciBleGFtcGxlLA0KLSAgdGhlIDptZXRoOmBEZWNpbWFsLmFzX3R1cGxlYCBt ZXRob2Qgbm93IHJldHVybnMgYSBuYW1lZCB0dXBsZSB3aXRoDQotICA6YXR0cjpgc2lnbmAsIDph dHRyOmBkaWdpdHNgLCBhbmQgOmF0dHI6YGV4cG9uZW50YCBmaWVsZHMuDQorICBiZWVuIG1vZGlm aWVkIHRvIHJldHVybiA6ZnVuYzpgfmNvbGxlY3Rpb25zLm5hbWVkdHVwbGVgIGluc3RhbmNlcy4g IEZvciBleGFtcGxlLA0KKyAgdGhlIDptZXRoOmBkZWNpbWFsLkRlY2ltYWwuYXNfdHVwbGVgIG1l dGhvZCBub3cgcmV0dXJucyBhIG5hbWVkIHR1cGxlIHdpdGgNCisgIDphdHRyOmAhc2lnbmAsIDph dHRyOmAhZGlnaXRzYCwgYW5kIDphdHRyOmAhZXhwb25lbnRgIGZpZWxkcy4NCiANCiAgIChDb250 cmlidXRlZCBieSBSYXltb25kIEhldHRpbmdlci4pDQogDQogKiBBbm90aGVyIGNoYW5nZSB0byB0 aGUgOm1vZDpgY29sbGVjdGlvbnNgIG1vZHVsZSBpcyB0aGF0IHRoZQ0KLSAgOmNsYXNzOmBkZXF1 ZWAgdHlwZSBub3cgc3VwcG9ydHMgYW4gb3B0aW9uYWwgKm1heGxlbiogcGFyYW1ldGVyOw0KKyAg OmNsYXNzOmB+Y29sbGVjdGlvbnMuZGVxdWVgIHR5cGUgbm93IHN1cHBvcnRzIGFuIG9wdGlvbmFs ICptYXhsZW4qIHBhcmFtZXRlcjsNCiAgIGlmIHN1cHBsaWVkLCB0aGUgZGVxdWUncyBzaXplIHdp bGwgYmUgcmVzdHJpY3RlZCB0byBubyBtb3JlDQogICB0aGFuICptYXhsZW4qIGl0ZW1zLiAgQWRk aW5nIG1vcmUgaXRlbXMgdG8gYSBmdWxsIGRlcXVlIGNhdXNlcw0KICAgb2xkIGl0ZW1zIHRvIGJl IGRpc2NhcmRlZC4NCkBAIC0xOTEzLDcgKzE5MTQsNyBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91 Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgKENvbnRyaWJ1 dGVkIGJ5IEFydmluIFNjaG5lbGw7IDppc3N1ZTpgMTYzODAzM2AuKQ0KIA0KICogQSBuZXcgd2lu ZG93IG1ldGhvZCBpbiB0aGUgOm1vZDpgY3Vyc2VzYCBtb2R1bGUsDQotICA6bWV0aDpgY2hnYXRg LCBjaGFuZ2VzIHRoZSBkaXNwbGF5IGF0dHJpYnV0ZXMgZm9yIGEgY2VydGFpbiBudW1iZXIgb2YN CisgIDptZXRoOmB+Y3Vyc2VzLndpbmRvdy5jaGdhdGAsIGNoYW5nZXMgdGhlIGRpc3BsYXkgYXR0 cmlidXRlcyBmb3IgYSBjZXJ0YWluIG51bWJlciBvZg0KICAgY2hhcmFjdGVycyBvbiBhIHNpbmds ZSBsaW5lLiAgKENvbnRyaWJ1dGVkIGJ5IEZhYmlhbiBLcmV1dHouKQ0KIA0KICAgOjoNCkBAIC0x OTIyLDIwICsxOTIzLDIwIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lv biBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICAgICAjIGFuZCBhZmZlY3RpbmcgdGhlIHJl c3Qgb2YgdGhlIGxpbmUuDQogICAgICBzdGRzY3IuY2hnYXQoMCwgMjEsIGN1cnNlcy5BX0JPTEQp DQogDQotICBUaGUgOmNsYXNzOmBUZXh0Ym94YCBjbGFzcyBpbiB0aGUgOm1vZDpgY3Vyc2VzLnRl eHRwYWRgIG1vZHVsZQ0KKyAgVGhlIDpjbGFzczpgfmN1cnNlcy50ZXh0cGFkLlRleHRib3hgIGNs YXNzIGluIHRoZSA6bW9kOmBjdXJzZXMudGV4dHBhZGAgbW9kdWxlDQogICBub3cgc3VwcG9ydHMg ZWRpdGluZyBpbiBpbnNlcnQgbW9kZSBhcyB3ZWxsIGFzIG92ZXJ3cml0ZSBtb2RlLg0KICAgSW5z ZXJ0IG1vZGUgaXMgZW5hYmxlZCBieSBzdXBwbHlpbmcgYSB0cnVlIHZhbHVlIGZvciB0aGUgKmlu c2VydF9tb2RlKg0KLSAgcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgdGhlIDpjbGFzczpgVGV4dGJv eGAgaW5zdGFuY2UuDQorICBwYXJhbWV0ZXIgd2hlbiBjcmVhdGluZyB0aGUgOmNsYXNzOmB+Y3Vy c2VzLnRleHRwYWQuVGV4dGJveGAgaW5zdGFuY2UuDQogDQotKiBUaGUgOm1vZDpgZGF0ZXRpbWVg IG1vZHVsZSdzIDptZXRoOmBzdHJmdGltZWAgbWV0aG9kcyBub3cgc3VwcG9ydCBhDQotICBgYCVm YGAgZm9ybWF0IGNvZGUgdGhhdCBleHBhbmRzIHRvIHRoZSBudW1iZXIgb2YgbWljcm9zZWNvbmRz IGluIHRoZQ0KKyogVGhlIDptb2Q6YGRhdGV0aW1lYCBtb2R1bGUncyA6bWV0aDpgfmRhdGV0aW1l LmRhdGV0aW1lLnN0cmZ0aW1lYCBtZXRob2RzIG5vdw0KKyAgc3VwcG9ydCBhIGBgJWZgYCBmb3Jt YXQgY29kZSB0aGF0IGV4cGFuZHMgdG8gdGhlIG51bWJlciBvZiBtaWNyb3NlY29uZHMgaW4gdGhl DQogICBvYmplY3QsIHplcm8tcGFkZGVkIG9uDQogICB0aGUgbGVmdCB0byBzaXggcGxhY2VzLiAg KENvbnRyaWJ1dGVkIGJ5IFNraXAgTW9udGFuYXJvOyA6aXNzdWU6YDExNThgLikNCiANCiAqIFRo ZSA6bW9kOmBkZWNpbWFsYCBtb2R1bGUgd2FzIHVwZGF0ZWQgdG8gdmVyc2lvbiAxLjY2IG9mDQog ICBgdGhlIEdlbmVyYWwgRGVjaW1hbCBTcGVjaWZpY2F0aW9uIDxodHRwczovL3NwZWxlb3Ryb3Zl LmNvbS9kZWNpbWFsL2RlY2FyaXRoLmh0bWw+YF9fLiAgTmV3IGZlYXR1cmVzDQogICBpbmNsdWRl IHNvbWUgbWV0aG9kcyBmb3Igc29tZSBiYXNpYyBtYXRoZW1hdGljYWwgZnVuY3Rpb25zIHN1Y2gg YXMNCi0gIDptZXRoOmBleHBgIGFuZCA6bWV0aDpgbG9nMTBgOjoNCisgIDptZXRoOmB+ZGVjaW1h bC5EZWNpbWFsLmV4cGAgYW5kIDptZXRoOmB+ZGVjaW1hbC5EZWNpbWFsLmxvZzEwYDo6DQogDQog ICAgID4+PiBEZWNpbWFsKDEpLmV4cCgpDQogICAgIERlY2ltYWwoIjIuNzE4MjgxODI4NDU5MDQ1 MjM1MzYwMjg3NDcxIikNCkBAIC0xOTQ0LDI4ICsxOTQ1LDI5IEBAIGNoYW5nZXMsIG9yIGxvb2sg dGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogICAgID4+ PiBEZWNpbWFsKDEwMDApLmxvZzEwKCkNCiAgICAgRGVjaW1hbCgiMyIpDQogDQotICBUaGUgOm1l dGg6YGFzX3R1cGxlYCBtZXRob2Qgb2YgOmNsYXNzOmBEZWNpbWFsYCBvYmplY3RzIG5vdyByZXR1 cm5zIGENCi0gIG5hbWVkIHR1cGxlIHdpdGggOmF0dHI6YHNpZ25gLCA6YXR0cjpgZGlnaXRzYCwg YW5kIDphdHRyOmBleHBvbmVudGAgZmllbGRzLg0KKyAgVGhlIDptZXRoOmB+ZGVjaW1hbC5EZWNp bWFsLmFzX3R1cGxlYCBtZXRob2Qgb2YgOmNsYXNzOmB+ZGVjaW1hbC5EZWNpbWFsYA0KKyAgb2Jq ZWN0cyBub3cgcmV0dXJucyBhIG5hbWVkIHR1cGxlIHdpdGggOmF0dHI6YCFzaWduYCwgOmF0dHI6 YCFkaWdpdHNgLCBhbmQNCisgIDphdHRyOmAhZXhwb25lbnRgIGZpZWxkcy4NCiANCiAgIChJbXBs ZW1lbnRlZCBieSBGYWN1bmRvIEJhdGlzdGEgYW5kIE1hcmsgRGlja2luc29uLiAgTmFtZWQgdHVw bGUNCiAgIHN1cHBvcnQgYWRkZWQgYnkgUmF5bW9uZCBIZXR0aW5nZXIuKQ0KIA0KLSogVGhlIDpt b2Q6YGRpZmZsaWJgIG1vZHVsZSdzIDpjbGFzczpgU2VxdWVuY2VNYXRjaGVyYCBjbGFzcw0KKyog VGhlIDptb2Q6YGRpZmZsaWJgIG1vZHVsZSdzIDpjbGFzczpgfmRpZmZsaWIuU2VxdWVuY2VNYXRj aGVyYCBjbGFzcw0KICAgbm93IHJldHVybnMgbmFtZWQgdHVwbGVzIHJlcHJlc2VudGluZyBtYXRj aGVzLA0KLSAgd2l0aCA6YXR0cjpgYWAsIDphdHRyOmBiYCwgYW5kIDphdHRyOmBzaXplYCBhdHRy aWJ1dGVzLg0KKyAgd2l0aCA6YXR0cjpgIWFgLCA6YXR0cjpgIWJgLCBhbmQgOmF0dHI6YCFzaXpl YCBhdHRyaWJ1dGVzLg0KICAgKENvbnRyaWJ1dGVkIGJ5IFJheW1vbmQgSGV0dGluZ2VyLikNCiAN CiAqIEFuIG9wdGlvbmFsIGBgdGltZW91dGBgIHBhcmFtZXRlciwgc3BlY2lmeWluZyBhIHRpbWVv dXQgbWVhc3VyZWQgaW4NCiAgIHNlY29uZHMsIHdhcyBhZGRlZCB0byB0aGUgOmNsYXNzOmBmdHBs aWIuRlRQYCBjbGFzcyBjb25zdHJ1Y3RvciBhcw0KLSAgd2VsbCBhcyB0aGUgOm1ldGg6YGNvbm5l Y3RgIG1ldGhvZC4gIChBZGRlZCBieSBGYWN1bmRvIEJhdGlzdGEuKQ0KLSAgQWxzbywgdGhlIDpj bGFzczpgRlRQYCBjbGFzcydzIDptZXRoOmBzdG9yYmluYXJ5YCBhbmQNCi0gIDptZXRoOmBzdG9y bGluZXNgIG5vdyB0YWtlIGFuIG9wdGlvbmFsICpjYWxsYmFjayogcGFyYW1ldGVyIHRoYXQNCisg IHdlbGwgYXMgdGhlIDptZXRoOmB+ZnRwbGliLkZUUC5jb25uZWN0YCBtZXRob2QuICAoQWRkZWQg YnkgRmFjdW5kbyBCYXRpc3RhLikNCisgIEFsc28sIHRoZSA6Y2xhc3M6YH5mdHBsaWIuRlRQYCBj bGFzcydzIDptZXRoOmB+ZnRwbGliLkZUUC5zdG9yYmluYXJ5YCBhbmQNCisgIDptZXRoOmB+ZnRw bGliLkZUUC5zdG9ybGluZXNgIG5vdyB0YWtlIGFuIG9wdGlvbmFsICpjYWxsYmFjayogcGFyYW1l dGVyIHRoYXQNCiAgIHdpbGwgYmUgY2FsbGVkIHdpdGggZWFjaCBibG9jayBvZiBkYXRhIGFmdGVy IHRoZSBkYXRhIGhhcyBiZWVuIHNlbnQuDQogICAoQ29udHJpYnV0ZWQgYnkgUGhpbCBTY2h3YXJ0 ejsgOmlzc3VlOmAxMjIxNTk4YC4pDQogDQotKiBUaGUgOmZ1bmM6YHJlZHVjZWAgYnVpbHQtaW4g ZnVuY3Rpb24gaXMgYWxzbyBhdmFpbGFibGUgaW4gdGhlDQorKiBUaGUgOmZ1bmM6YCFyZWR1Y2Vg IGJ1aWx0LWluIGZ1bmN0aW9uIGlzIGFsc28gYXZhaWxhYmxlIGluIHRoZQ0KICAgOm1vZDpgZnVu Y3Rvb2xzYCBtb2R1bGUuICBJbiBQeXRob24gMy4wLCB0aGUgYnVpbHRpbiBoYXMgYmVlbg0KLSAg ZHJvcHBlZCBhbmQgOmZ1bmM6YHJlZHVjZWAgaXMgb25seSBhdmFpbGFibGUgZnJvbSA6bW9kOmBm dW5jdG9vbHNgOw0KKyAgZHJvcHBlZCBhbmQgOmZ1bmM6YH5mdW5jdG9vbHMucmVkdWNlYCBpcyBv bmx5IGF2YWlsYWJsZSBmcm9tIDptb2Q6YGZ1bmN0b29sc2A7DQogICBjdXJyZW50bHkgdGhlcmUg YXJlIG5vIHBsYW5zIHRvIGRyb3AgdGhlIGJ1aWx0aW4gaW4gdGhlIDIueCBzZXJpZXMuDQogICAo UGF0Y2hlZCBieSBDaHJpc3RpYW4gSGVpbWVzOyA6aXNzdWU6YDE3Mzk5MDZgLikNCiANCkBAIC0x OTg5LDggKzE5OTEsOCBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24g bG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KIA0KICAgQW5vdGhlciBuZXcgZnVuY3Rpb24sIGBg aGVhcHB1c2hwb3AoaGVhcCwgaXRlbSlgYCwNCiAgIHB1c2hlcyAqaXRlbSogb250byAqaGVhcCos IHRoZW4gcG9wcyBvZmYgYW5kIHJldHVybnMgdGhlIHNtYWxsZXN0IGl0ZW0uDQotICBUaGlzIGlz IG1vcmUgZWZmaWNpZW50IHRoYW4gbWFraW5nIGEgY2FsbCB0byA6ZnVuYzpgaGVhcHB1c2hgIGFu ZCB0aGVuDQotICA6ZnVuYzpgaGVhcHBvcGAuDQorICBUaGlzIGlzIG1vcmUgZWZmaWNpZW50IHRo YW4gbWFraW5nIGEgY2FsbCB0byA6ZnVuYzpgfmhlYXBxLmhlYXBwdXNoYCBhbmQgdGhlbg0KKyAg OmZ1bmM6YH5oZWFwcS5oZWFwcG9wYC4NCiANCiAgIDptb2Q6YGhlYXBxYCBpcyBub3cgaW1wbGVt ZW50ZWQgdG8gb25seSB1c2UgbGVzcy10aGFuIGNvbXBhcmlzb24sDQogICBpbnN0ZWFkIG9mIHRo ZSBsZXNzLXRoYW4tb3ItZXF1YWwgY29tcGFyaXNvbiBpdCBwcmV2aW91c2x5IHVzZWQuDQpAQCAt MjAwNCwxNCArMjAwNiwxNCBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNp b24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgQmF0aXN0YS4pDQogDQogKiBNb3N0IG9m IHRoZSA6bW9kOmBpbnNwZWN0YCBtb2R1bGUncyBmdW5jdGlvbnMsIHN1Y2ggYXMNCi0gIDpmdW5j OmBnZXRtb2R1bGVpbmZvYCBhbmQgOmZ1bmM6YGdldGFyZ3NgLCBub3cgcmV0dXJuIG5hbWVkIHR1 cGxlcy4NCisgIDpmdW5jOmAhZ2V0bW9kdWxlaW5mb2AgYW5kIDpmdW5jOmAhZ2V0YXJnc2AsIG5v dyByZXR1cm4gbmFtZWQgdHVwbGVzLg0KICAgSW4gYWRkaXRpb24gdG8gYmVoYXZpbmcgbGlrZSB0 dXBsZXMsIHRoZSBlbGVtZW50cyBvZiB0aGUgIHJldHVybiB2YWx1ZQ0KICAgY2FuIGFsc28gYmUg YWNjZXNzZWQgYXMgYXR0cmlidXRlcy4NCiAgIChDb250cmlidXRlZCBieSBSYXltb25kIEhldHRp bmdlci4pDQogDQogICBTb21lIG5ldyBmdW5jdGlvbnMgaW4gdGhlIG1vZHVsZSBpbmNsdWRlDQot ICA6ZnVuYzpgaXNnZW5lcmF0b3JgLCA6ZnVuYzpgaXNnZW5lcmF0b3JmdW5jdGlvbmAsDQotICBh bmQgOmZ1bmM6YGlzYWJzdHJhY3RgLg0KKyAgOmZ1bmM6YH5pbnNwZWN0LmlzZ2VuZXJhdG9yYCwg OmZ1bmM6YH5pbnNwZWN0LmlzZ2VuZXJhdG9yZnVuY3Rpb25gLA0KKyAgYW5kIDpmdW5jOmB+aW5z cGVjdC5pc2Fic3RyYWN0YC4NCiANCiAqIFRoZSA6bW9kOmBpdGVydG9vbHNgIG1vZHVsZSBnYWlu ZWQgc2V2ZXJhbCBuZXcgZnVuY3Rpb25zLg0KIA0KQEAgLTIwNzIsNyArMjA3NCw3IEBAIGNoYW5n ZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFp bHMuDQogICBgYGl0ZXJ0b29scy5jaGFpbigqaXRlcmFibGVzKWBgIGlzIGFuIGV4aXN0aW5nIGZ1 bmN0aW9uIGluDQogICA6bW9kOmBpdGVydG9vbHNgIHRoYXQgZ2FpbmVkIGEgbmV3IGNvbnN0cnVj dG9yIGluIFB5dGhvbiAyLjYuDQogICBgYGl0ZXJ0b29scy5jaGFpbi5mcm9tX2l0ZXJhYmxlKGl0 ZXJhYmxlKWBgIHRha2VzIGEgc2luZ2xlDQotICBpdGVyYWJsZSB0aGF0IHNob3VsZCByZXR1cm4g b3RoZXIgaXRlcmFibGVzLiAgOmZ1bmM6YGNoYWluYCB3aWxsDQorICBpdGVyYWJsZSB0aGF0IHNo b3VsZCByZXR1cm4gb3RoZXIgaXRlcmFibGVzLiAgOmZ1bmM6YH5pdGVydG9vbHMuY2hhaW5gIHdp bGwNCiAgIHRoZW4gcmV0dXJuIGFsbCB0aGUgZWxlbWVudHMgb2YgdGhlIGZpcnN0IGl0ZXJhYmxl LCB0aGVuDQogICBhbGwgdGhlIGVsZW1lbnRzIG9mIHRoZSBzZWNvbmQsIGFuZCBzbyBvbi4gOjoN CiANCkBAIC0yMDgxLDE0ICsyMDgzLDE1IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUg U3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICAoQWxsIGNvbnRyaWJ1 dGVkIGJ5IFJheW1vbmQgSGV0dGluZ2VyLikNCiANCi0qIFRoZSA6bW9kOmBsb2dnaW5nYCBtb2R1 bGUncyA6Y2xhc3M6YEZpbGVIYW5kbGVyYCBjbGFzcw0KLSAgYW5kIGl0cyBzdWJjbGFzc2VzIDpj bGFzczpgV2F0Y2hlZEZpbGVIYW5kbGVyYCwgOmNsYXNzOmBSb3RhdGluZ0ZpbGVIYW5kbGVyYCwN Ci0gIGFuZCA6Y2xhc3M6YFRpbWVkUm90YXRpbmdGaWxlSGFuZGxlcmAgbm93DQorKiBUaGUgOm1v ZDpgbG9nZ2luZ2AgbW9kdWxlJ3MgOmNsYXNzOmB+bG9nZ2luZy5GaWxlSGFuZGxlcmAgY2xhc3MN CisgIGFuZCBpdHMgc3ViY2xhc3NlcyA6Y2xhc3M6YH5sb2dnaW5nLmhhbmRsZXJzLldhdGNoZWRG aWxlSGFuZGxlcmAsDQorICA6Y2xhc3M6YH5sb2dnaW5nLmhhbmRsZXJzLlJvdGF0aW5nRmlsZUhh bmRsZXJgLA0KKyAgYW5kIDpjbGFzczpgfmxvZ2dpbmcuaGFuZGxlcnMuVGltZWRSb3RhdGluZ0Zp bGVIYW5kbGVyYCBub3cNCiAgIGhhdmUgYW4gb3B0aW9uYWwgKmRlbGF5KiBwYXJhbWV0ZXIgdG8g dGhlaXIgY29uc3RydWN0b3JzLiAgSWYgKmRlbGF5Kg0KICAgaXMgdHJ1ZSwgb3BlbmluZyBvZiB0 aGUgbG9nIGZpbGUgaXMgZGVmZXJyZWQgdW50aWwgdGhlIGZpcnN0DQotICA6bWV0aDpgZW1pdGAg Y2FsbCBpcyBtYWRlLiAgKENvbnRyaWJ1dGVkIGJ5IFZpbmF5IFNhamlwLikNCisgIDptZXRoOmB+ bG9nZ2luZy5GaWxlSGFuZGxlci5lbWl0YCBjYWxsIGlzIG1hZGUuICAoQ29udHJpYnV0ZWQgYnkg VmluYXkgU2FqaXAuKQ0KIA0KLSAgOmNsYXNzOmBUaW1lZFJvdGF0aW5nRmlsZUhhbmRsZXJgIGFs c28gaGFzIGEgKnV0YyogY29uc3RydWN0b3INCisgIDpjbGFzczpgfmxvZ2dpbmcuaGFuZGxlcnMu VGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyYCBhbHNvIGhhcyBhICp1dGMqIGNvbnN0cnVjdG9yDQog ICBwYXJhbWV0ZXIuICBJZiB0aGUgYXJndW1lbnQgaXMgdHJ1ZSwgVVRDIHRpbWUgd2lsbCBiZSB1 c2VkDQogICBpbiBkZXRlcm1pbmluZyB3aGVuIG1pZG5pZ2h0IG9jY3VycyBhbmQgaW4gZ2VuZXJh dGluZyBmaWxlbmFtZXM7DQogICBvdGhlcndpc2UgbG9jYWwgdGltZSB3aWxsIGJlIHVzZWQuDQpA QCAtMjExNyw4ICsyMTIwLDggQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJz aW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgICogOmZ1bmM6YH5tYXRoLmxvZzFwYCBy ZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiAqMSt4Kg0KICAgICAoYmFzZSAqZSopLg0K IA0KLSAgKiA6ZnVuYzpgdHJ1bmNgIHJvdW5kcyBhIG51bWJlciB0b3dhcmQgemVybywgcmV0dXJu aW5nIHRoZSBjbG9zZXN0DQotICAgIDpjbGFzczpgSW50ZWdyYWxgIHRoYXQncyBiZXR3ZWVuIHRo ZSBmdW5jdGlvbidzIGFyZ3VtZW50IGFuZCB6ZXJvLg0KKyAgKiA6ZnVuYzpgfm1hdGgudHJ1bmNg IHJvdW5kcyBhIG51bWJlciB0b3dhcmQgemVybywgcmV0dXJuaW5nIHRoZSBjbG9zZXN0DQorICAg IDpjbGFzczpgfm51bWJlcnMuSW50ZWdyYWxgIHRoYXQncyBiZXR3ZWVuIHRoZSBmdW5jdGlvbidz IGFyZ3VtZW50IGFuZCB6ZXJvLg0KICAgICBBZGRlZCBhcyBwYXJ0IG9mIHRoZSBiYWNrcG9ydCBv Zg0KICAgICBgUEVQIDMxNDEncyB0eXBlIGhpZXJhcmNoeSBmb3IgbnVtYmVycyA8I3BlcC0zMTQx PmBfXy4NCiANCkBAIC0yMTM4LDE0ICsyMTQxLDE1IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3Vn aCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICAoQ29udHJp YnV0ZWQgYnkgQ2hyaXN0aWFuIEhlaW1lcyBhbmQgTWFyayBEaWNraW5zb24uKQ0KIA0KLSogOmNs YXNzOmB+bW1hcC5tbWFwYCBvYmplY3RzIG5vdyBoYXZlIGEgOm1ldGg6YHJmaW5kYCBtZXRob2Qg dGhhdCBzZWFyY2hlcyBmb3IgYQ0KKyogOmNsYXNzOmB+bW1hcC5tbWFwYCBvYmplY3RzIG5vdyBo YXZlIGEgOm1ldGg6YH5tbWFwLm1tYXAucmZpbmRgIG1ldGhvZCB0aGF0DQorICBzZWFyY2hlcyBm b3IgYQ0KICAgc3Vic3RyaW5nIGJlZ2lubmluZyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgYW5k IHNlYXJjaGluZw0KLSAgYmFja3dhcmRzLiAgVGhlIDptZXRoOmBmaW5kYCBtZXRob2QgYWxzbyBn YWluZWQgYW4gKmVuZCogcGFyYW1ldGVyDQorICBiYWNrd2FyZHMuICBUaGUgOm1ldGg6YH5tbWFw Lm1tYXAuZmluZGAgbWV0aG9kIGFsc28gZ2FpbmVkIGFuICplbmQqIHBhcmFtZXRlcg0KICAgZ2l2 aW5nIGFuIGluZGV4IGF0IHdoaWNoIHRvIHN0b3Agc2VhcmNoaW5nLg0KICAgKENvbnRyaWJ1dGVk IGJ5IEpvaG4gTGVudG9uLikNCiANCiAqIFRoZSA6bW9kOmBvcGVyYXRvcmAgbW9kdWxlIGdhaW5l ZCBhDQotICA6ZnVuYzpgbWV0aG9kY2FsbGVyYCBmdW5jdGlvbiB0aGF0IHRha2VzIGEgbmFtZSBh bmQgYW4gb3B0aW9uYWwNCisgIDpmdW5jOmB+b3BlcmF0b3IubWV0aG9kY2FsbGVyYCBmdW5jdGlv biB0aGF0IHRha2VzIGEgbmFtZSBhbmQgYW4gb3B0aW9uYWwNCiAgIHNldCBvZiBhcmd1bWVudHMs IHJldHVybmluZyBhIGNhbGxhYmxlIHRoYXQgd2lsbCBjYWxsDQogICB0aGUgbmFtZWQgZnVuY3Rp b24gb24gYW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gaXQuICBGb3IgZXhhbXBsZTo6DQogDQpAQCAt MjE1Niw3ICsyMTYwLDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9u IGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIChDb250cmlidXRlZCBieSBHZW9yZyBC cmFuZGwsIGFmdGVyIGEgc3VnZ2VzdGlvbiBieSBHcmVnb3J5IFBldHJvc3lhbi4pDQogDQotICBU aGUgOmZ1bmM6YGF0dHJnZXR0ZXJgIGZ1bmN0aW9uIG5vdyBhY2NlcHRzIGRvdHRlZCBuYW1lcyBh bmQgcGVyZm9ybXMNCisgIFRoZSA6ZnVuYzpgfm9wZXJhdG9yLmF0dHJnZXR0ZXJgIGZ1bmN0aW9u IG5vdyBhY2NlcHRzIGRvdHRlZCBuYW1lcyBhbmQgcGVyZm9ybXMNCiAgIHRoZSBjb3JyZXNwb25k aW5nIGF0dHJpYnV0ZSBsb29rdXBzOjoNCiANCiAgICAgPj4+IGluc3RfbmFtZSA9IG9wZXJhdG9y LmF0dHJnZXR0ZXIoDQpAQCAtMjE3NCwxMiArMjE3OCwxMiBAQCBjaGFuZ2VzLCBvciBsb29rIHRo cm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgdGhlIG1v ZGUgb2YgYSBzeW1saW5rLiAgKENvbnRyaWJ1dGVkIGJ5IEdlb3JnIEJyYW5kbCBhbmQgQ2hyaXN0 aWFuDQogICBIZWltZXMuKQ0KIA0KLSAgOmZ1bmM6YGNoZmxhZ3NgIGFuZCA6ZnVuYzpgbGNoZmxh Z3NgIGFyZSB3cmFwcGVycyBmb3IgdGhlDQorICA6ZnVuYzpgfm9zLmNoZmxhZ3NgIGFuZCA6ZnVu Yzpgfm9zLmxjaGZsYWdzYCBhcmUgd3JhcHBlcnMgZm9yIHRoZQ0KICAgY29ycmVzcG9uZGluZyBz eXN0ZW0gY2FsbHMgKHdoZXJlIHRoZXkncmUgYXZhaWxhYmxlKSwgY2hhbmdpbmcgdGhlDQogICBm bGFncyBzZXQgb24gYSBmaWxlLiAgQ29uc3RhbnRzIGZvciB0aGUgZmxhZyB2YWx1ZXMgYXJlIGRl ZmluZWQgaW4NCiAgIHRoZSA6bW9kOmBzdGF0YCBtb2R1bGU7IHNvbWUgcG9zc2libGUgdmFsdWVz IGluY2x1ZGUNCi0gIDpjb25zdDpgVUZfSU1NVVRBQkxFYCB0byBzaWduYWwgdGhlIGZpbGUgbWF5 IG5vdCBiZSBjaGFuZ2VkIGFuZA0KLSAgOmNvbnN0OmBVRl9BUFBFTkRgIHRvIGluZGljYXRlIHRo YXQgZGF0YSBjYW4gb25seSBiZSBhcHBlbmRlZCB0byB0aGUNCisgIDpjb25zdDpgfnN0YXQuVUZf SU1NVVRBQkxFYCB0byBzaWduYWwgdGhlIGZpbGUgbWF5IG5vdCBiZSBjaGFuZ2VkIGFuZA0KKyAg OmNvbnN0OmB+c3RhdC5VRl9BUFBFTkRgIHRvIGluZGljYXRlIHRoYXQgZGF0YSBjYW4gb25seSBi ZSBhcHBlbmRlZCB0byB0aGUNCiAgIGZpbGUuICAoQ29udHJpYnV0ZWQgYnkgTS4gTGV2aW5zb24u KQ0KIA0KICAgYGBvcy5jbG9zZXJhbmdlKGxvdywgaGlnaClgYCBlZmZpY2llbnRseSBjbG9zZXMg YWxsIGZpbGUgZGVzY3JpcHRvcnMNCkBAIC0yMTg3LDcgKzIxOTEsNyBAQCBjaGFuZ2VzLCBvciBs b29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAg VGhpcyBmdW5jdGlvbiBpcyBub3cgdXNlZCBieSB0aGUgOm1vZDpgc3VicHJvY2Vzc2AgbW9kdWxl IHRvIG1ha2Ugc3RhcnRpbmcNCiAgIHByb2Nlc3NlcyBmYXN0ZXIuICAoQ29udHJpYnV0ZWQgYnkg R2VvcmcgQnJhbmRsOyA6aXNzdWU6YDE2NjMzMjlgLikNCiANCi0qIFRoZSBgYG9zLmVudmlyb25g YCBvYmplY3QncyA6bWV0aDpgY2xlYXJgIG1ldGhvZCB3aWxsIG5vdyB1bnNldCB0aGUNCisqIFRo ZSBgYG9zLmVudmlyb25gYCBvYmplY3QncyA6bWV0aDpgIWNsZWFyYCBtZXRob2Qgd2lsbCBub3cg dW5zZXQgdGhlDQogICBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdXNpbmcgOmZ1bmM6YG9zLnVuc2V0 ZW52YCBpbiBhZGRpdGlvbiB0byBjbGVhcmluZw0KICAgdGhlIG9iamVjdCdzIGtleXMuICAoQ29u dHJpYnV0ZWQgYnkgTWFydGluIEhvcmNpY2thOyA6aXNzdWU6YDExODFgLikNCiANCkBAIC0yMTk4 LDcgKzIyMDIsNyBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9n cyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgaW50byBhbiBpbmZpbml0ZSByZWN1cnNpb24gaWYg dGhlcmUncyBhIHN5bWxpbmsgdGhhdCBwb2ludHMgdG8gYQ0KICAgcGFyZW50IGRpcmVjdG9yeS4g ICg6aXNzdWU6YDEyNzM4MjlgKQ0KIA0KLSogSW4gdGhlIDptb2Q6YG9zLnBhdGhgIG1vZHVsZSwg dGhlIDpmdW5jOmBzcGxpdGV4dGAgZnVuY3Rpb24NCisqIEluIHRoZSA6bW9kOmBvcy5wYXRoYCBt b2R1bGUsIHRoZSA6ZnVuYzpgfm9zLnBhdGguc3BsaXRleHRgIGZ1bmN0aW9uDQogICBoYXMgYmVl biBjaGFuZ2VkIHRvIG5vdCBzcGxpdCBvbiBsZWFkaW5nIHBlcmlvZCBjaGFyYWN0ZXJzLg0KICAg VGhpcyBwcm9kdWNlcyBiZXR0ZXIgcmVzdWx0cyB3aGVuIG9wZXJhdGluZyBvbiBVbml4J3MgZG90 LWZpbGVzLg0KICAgRm9yIGV4YW1wbGUsIGBgb3MucGF0aC5zcGxpdGV4dCgnLmlweXRob24nKWBg DQpAQCAtMjIyNSwxMiArMjIyOSwxMiBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1 YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgaWYgbm8gdHJhY2ViYWNrIGlz IHN1cHBsaWVkLiAgIChDb250cmlidXRlZCBieSBGYWN1bmRvIEJhdGlzdGE7DQogICA6aXNzdWU6 YDExMDYzMTZgLikNCiANCi0qIFRoZSA6bW9kOmBwaWNrbGV0b29sc2AgbW9kdWxlIG5vdyBoYXMg YW4gOmZ1bmM6YG9wdGltaXplYCBmdW5jdGlvbg0KKyogVGhlIDptb2Q6YHBpY2tsZXRvb2xzYCBt b2R1bGUgbm93IGhhcyBhbiA6ZnVuYzpgfnBpY2tsZXRvb2xzLm9wdGltaXplYCBmdW5jdGlvbg0K ICAgdGhhdCB0YWtlcyBhIHN0cmluZyBjb250YWluaW5nIGEgcGlja2xlIGFuZCByZW1vdmVzIHNv bWUgdW51c2VkDQogICBvcGNvZGVzLCByZXR1cm5pbmcgYSBzaG9ydGVyIHBpY2tsZSB0aGF0IGNv bnRhaW5zIHRoZSBzYW1lIGRhdGEgc3RydWN0dXJlLg0KICAgKENvbnRyaWJ1dGVkIGJ5IFJheW1v bmQgSGV0dGluZ2VyLikNCiANCi0qIEEgOmZ1bmM6YGdldF9kYXRhYCBmdW5jdGlvbiB3YXMgYWRk ZWQgdG8gdGhlIDptb2Q6YHBrZ3V0aWxgDQorKiBBIDpmdW5jOmB+cGtndXRpbC5nZXRfZGF0YWAg ZnVuY3Rpb24gd2FzIGFkZGVkIHRvIHRoZSA6bW9kOmBwa2d1dGlsYA0KICAgbW9kdWxlIHRoYXQg cmV0dXJucyB0aGUgY29udGVudHMgb2YgcmVzb3VyY2UgZmlsZXMgaW5jbHVkZWQNCiAgIHdpdGgg YW4gaW5zdGFsbGVkIFB5dGhvbiBwYWNrYWdlLiAgRm9yIGV4YW1wbGU6Og0KIA0KQEAgLTIyNDcs MjIgKzIyNTEsMjIgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxv Z3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIChDb250cmlidXRlZCBieSBQYXVsIE1vb3Jl OyA6aXNzdWU6YDI0MzlgLikNCiANCi0qIFRoZSA6bW9kOmBweWV4cGF0YCBtb2R1bGUncyA6Y2xh c3M6YFBhcnNlcmAgb2JqZWN0cyBub3cgYWxsb3cgc2V0dGluZw0KLSAgdGhlaXIgOmF0dHI6YGJ1 ZmZlcl9zaXplYCBhdHRyaWJ1dGUgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBidWZmZXINCisq IFRoZSA6bW9kOmAhcHlleHBhdGAgbW9kdWxlJ3MgOmNsYXNzOmAhUGFyc2VyYCBvYmplY3RzIG5v dyBhbGxvdyBzZXR0aW5nDQorICB0aGVpciA6YXR0cjpgIWJ1ZmZlcl9zaXplYCBhdHRyaWJ1dGUg dG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBidWZmZXINCiAgIHVzZWQgdG8gaG9sZCBjaGFyYWN0 ZXIgZGF0YS4NCiAgIChDb250cmlidXRlZCBieSBBY2hpbSBHYWVka2U7IDppc3N1ZTpgMTEzN2Au KQ0KIA0KLSogVGhlIDptb2Q6YFF1ZXVlYCBtb2R1bGUgbm93IHByb3ZpZGVzIHF1ZXVlIHZhcmlh bnRzIHRoYXQgcmV0cmlldmUgZW50cmllcw0KLSAgaW4gZGlmZmVyZW50IG9yZGVycy4gIFRoZSA6 Y2xhc3M6YFByaW9yaXR5UXVldWVgIGNsYXNzIHN0b3Jlcw0KKyogVGhlIDptb2Q6YHF1ZXVlYCBt b2R1bGUgbm93IHByb3ZpZGVzIHF1ZXVlIHZhcmlhbnRzIHRoYXQgcmV0cmlldmUgZW50cmllcw0K KyAgaW4gZGlmZmVyZW50IG9yZGVycy4gIFRoZSA6Y2xhc3M6YH5xdWV1ZS5Qcmlvcml0eVF1ZXVl YCBjbGFzcyBzdG9yZXMNCiAgIHF1ZXVlZCBpdGVtcyBpbiBhIGhlYXAgYW5kIHJldHJpZXZlcyB0 aGVtIGluIHByaW9yaXR5IG9yZGVyLA0KLSAgYW5kIDpjbGFzczpgTGlmb1F1ZXVlYCByZXRyaWV2 ZXMgdGhlIG1vc3QgcmVjZW50bHkgYWRkZWQgZW50cmllcyBmaXJzdCwNCisgIGFuZCA6Y2xhc3M6 YH5xdWV1ZS5MaWZvUXVldWVgIHJldHJpZXZlcyB0aGUgbW9zdCByZWNlbnRseSBhZGRlZCBlbnRy aWVzIGZpcnN0LA0KICAgbWVhbmluZyB0aGF0IGl0IGJlaGF2ZXMgbGlrZSBhIHN0YWNrLg0KICAg KENvbnRyaWJ1dGVkIGJ5IFJheW1vbmQgSGV0dGluZ2VyLikNCiANCi0qIFRoZSA6bW9kOmByYW5k b21gIG1vZHVsZSdzIDpjbGFzczpgUmFuZG9tYCBvYmplY3RzIGNhbg0KKyogVGhlIDptb2Q6YHJh bmRvbWAgbW9kdWxlJ3MgOmNsYXNzOmB+cmFuZG9tLlJhbmRvbWAgb2JqZWN0cyBjYW4NCiAgIG5v dyBiZSBwaWNrbGVkIG9uIGEgMzItYml0IHN5c3RlbSBhbmQgdW5waWNrbGVkIG9uIGEgNjQtYml0 DQogICBzeXN0ZW0sIGFuZCB2aWNlIHZlcnNhLiAgVW5mb3J0dW5hdGVseSwgdGhpcyBjaGFuZ2Ug YWxzbyBtZWFucw0KLSAgdGhhdCBQeXRob24gMi42J3MgOmNsYXNzOmBSYW5kb21gIG9iamVjdHMg Y2FuJ3QgYmUgdW5waWNrbGVkIGNvcnJlY3RseQ0KKyAgdGhhdCBQeXRob24gMi42J3MgOmNsYXNz OmB+cmFuZG9tLlJhbmRvbWAgb2JqZWN0cyBjYW4ndCBiZSB1bnBpY2tsZWQgY29ycmVjdGx5DQog ICBvbiBlYXJsaWVyIHZlcnNpb25zIG9mIFB5dGhvbi4NCiAgIChDb250cmlidXRlZCBieSBTaGF3 biBMaWdvY2tpOyA6aXNzdWU6YDE3Mjc3ODBgLikNCiANCkBAIC0yMjg1LDExICsyMjg5LDExIEBA IGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhl IGRldGFpbHMuDQogICAoQ29udHJpYnV0ZWQgYnkgR3VpZG8gdmFuIFJvc3N1bSBmcm9tIHdvcmsg Zm9yIEdvb2dsZSBBcHAgRW5naW5lOw0KICAgOmlzc3VlOmAzNDg3YC4pDQogDQotKiBUaGUgOm1v ZDpgcmxjb21wbGV0ZXJgIG1vZHVsZSdzIDptZXRoOmBDb21wbGV0ZXIuY29tcGxldGVgIG1ldGhv ZA0KKyogVGhlIDptb2Q6YHJsY29tcGxldGVyYCBtb2R1bGUncyA6bWV0aDpgfnJsY29tcGxldGVy LkNvbXBsZXRlci5jb21wbGV0ZWAgbWV0aG9kDQogICB3aWxsIG5vdyBpZ25vcmUgZXhjZXB0aW9u cyB0cmlnZ2VyZWQgd2hpbGUgZXZhbHVhdGluZyBhIG5hbWUuDQogICAoRml4ZWQgYnkgTG9yZW56 IFF1YWNrOyA6aXNzdWU6YDIyNTBgLikNCiANCi0qIFRoZSA6bW9kOmBzY2hlZGAgbW9kdWxlJ3Mg OmNsYXNzOmBzY2hlZHVsZXJgIGluc3RhbmNlcyBub3cNCisqIFRoZSA6bW9kOmBzY2hlZGAgbW9k dWxlJ3MgOmNsYXNzOmB+c2NoZWQuc2NoZWR1bGVyYCBpbnN0YW5jZXMgbm93DQogICBoYXZlIGEg cmVhZC1vbmx5IDphdHRyOmBxdWV1ZWAgYXR0cmlidXRlIHRoYXQgcmV0dXJucyB0aGUNCiAgIGNv bnRlbnRzIG9mIHRoZSBzY2hlZHVsZXIncyBxdWV1ZSwgcmVwcmVzZW50ZWQgYXMgYSBsaXN0IG9m DQogICBuYW1lZCB0dXBsZXMgd2l0aCB0aGUgZmllbGRzIGBgKHRpbWUsIHByaW9yaXR5LCBhY3Rp b24sIGFyZ3VtZW50KWBgLg0KQEAgLTIyOTcsNyArMjMwMSw3IEBAIGNoYW5nZXMsIG9yIGxvb2sg dGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogKiBU aGUgOm1vZDpgc2VsZWN0YCBtb2R1bGUgbm93IGhhcyB3cmFwcGVyIGZ1bmN0aW9ucw0KICAgZm9y IHRoZSBMaW51eCA6YzpmdW5jOmAhZXBvbGxgIGFuZCBCU0QgOmM6ZnVuYzpgIWtxdWV1ZWAgc3lz dGVtIGNhbGxzLg0KLSAgOm1ldGg6YG1vZGlmeWAgbWV0aG9kIHdhcyBhZGRlZCB0byB0aGUgZXhp c3RpbmcgOmNsYXNzOmBwb2xsYA0KKyAgOm1ldGg6YH5zZWxlY3QucG9sbC5tb2RpZnlgIG1ldGhv ZCB3YXMgYWRkZWQgdG8gdGhlIGV4aXN0aW5nIGBgcG9sbGBgDQogICBvYmplY3RzOyBgYHBvbGxv YmoubW9kaWZ5KGZkLCBldmVudG1hc2spYGAgdGFrZXMgYSBmaWxlIGRlc2NyaXB0b3INCiAgIG9y IGZpbGUgb2JqZWN0IGFuZCBhbiBldmVudCBtYXNrLCBtb2RpZnlpbmcgdGhlIHJlY29yZGVkIGV2 ZW50IG1hc2sNCiAgIGZvciB0aGF0IGZpbGUuDQpAQCAtMjMwOCw4ICsyMzEyLDggQEAgY2hhbmdl cywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWls cy4NCiAgIGFuZCBhIGxpc3Qgb2YgdGhlIGRpcmVjdG9yeSdzIGNvbnRlbnRzLCBhbmQgcmV0dXJu cyBhIGxpc3Qgb2YgbmFtZXMgdGhhdA0KICAgd2lsbCBiZSBpZ25vcmVkLCBub3QgY29waWVkLg0K IA0KLSAgVGhlIDptb2Q6YHNodXRpbGAgbW9kdWxlIGFsc28gcHJvdmlkZXMgYW4gOmZ1bmM6YGln bm9yZV9wYXR0ZXJuc2ANCi0gIGZ1bmN0aW9uIGZvciB1c2Ugd2l0aCB0aGlzIG5ldyBwYXJhbWV0 ZXIuICA6ZnVuYzpgaWdub3JlX3BhdHRlcm5zYA0KKyAgVGhlIDptb2Q6YHNodXRpbGAgbW9kdWxl IGFsc28gcHJvdmlkZXMgYW4gOmZ1bmM6YH5zaHV0aWwuaWdub3JlX3BhdHRlcm5zYA0KKyAgZnVu Y3Rpb24gZm9yIHVzZSB3aXRoIHRoaXMgbmV3IHBhcmFtZXRlci4gIDpmdW5jOmB+c2h1dGlsLmln bm9yZV9wYXR0ZXJuc2ANCiAgIHRha2VzIGFuIGFyYml0cmFyeSBudW1iZXIgb2YgZ2xvYi1zdHls ZSBwYXR0ZXJucyBhbmQgcmV0dXJucyBhDQogICBjYWxsYWJsZSB0aGF0IHdpbGwgaWdub3JlIGFu eSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhhdCBtYXRjaCBhbnkNCiAgIG9mIHRoZXNlIHBhdHRl cm5zLiAgVGhlIGZvbGxvd2luZyBleGFtcGxlIGNvcGllcyBhIGRpcmVjdG9yeSB0cmVlLA0KQEAg LTIzMzMsNyArMjMzNyw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lv biBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICBFdmVudCBsb29wcyB3aWxsIHVzZSB0 aGlzIGJ5IG9wZW5pbmcgYSBwaXBlIHRvIGNyZWF0ZSB0d28gZGVzY3JpcHRvcnMsDQogICBvbmUg Zm9yIHJlYWRpbmcgYW5kIG9uZSBmb3Igd3JpdGluZy4gIFRoZSB3cml0YWJsZSBkZXNjcmlwdG9y DQotICB3aWxsIGJlIHBhc3NlZCB0byA6ZnVuYzpgc2V0X3dha2V1cF9mZGAsIGFuZCB0aGUgcmVh ZGFibGUgZGVzY3JpcHRvcg0KKyAgd2lsbCBiZSBwYXNzZWQgdG8gOmZ1bmM6YH5zaWduYWwuc2V0 X3dha2V1cF9mZGAsIGFuZCB0aGUgcmVhZGFibGUgZGVzY3JpcHRvcg0KICAgd2lsbCBiZSBhZGRl ZCB0byB0aGUgbGlzdCBvZiBkZXNjcmlwdG9ycyBtb25pdG9yZWQgYnkgdGhlIGV2ZW50IGxvb3Ag dmlhDQogICA6YzpmdW5jOmAhc2VsZWN0YCBvciA6YzpmdW5jOmAhcG9sbGAuDQogICBPbiByZWNl aXZpbmcgYSBzaWduYWwsIGEgYnl0ZSB3aWxsIGJlIHdyaXR0ZW4gYW5kIHRoZSBtYWluIGV2ZW50 IGxvb3ANCkBAIC0yMzQxLDIwICsyMzQ1LDIwIEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0 aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogICAoQ29udHJpYnV0 ZWQgYnkgQWRhbSBPbHNlbjsgOmlzc3VlOmAxNTgzYC4pDQogDQotICBUaGUgOmZ1bmM6YHNpZ2lu dGVycnVwdGAgZnVuY3Rpb24gaXMgbm93IGF2YWlsYWJsZSBmcm9tIFB5dGhvbiBjb2RlLA0KKyAg VGhlIDpmdW5jOmB+c2lnbmFsLnNpZ2ludGVycnVwdGAgZnVuY3Rpb24gaXMgbm93IGF2YWlsYWJs ZSBmcm9tIFB5dGhvbiBjb2RlLA0KICAgYW5kIGFsbG93cyBjaGFuZ2luZyB3aGV0aGVyIHNpZ25h bHMgY2FuIGludGVycnVwdCBzeXN0ZW0gY2FsbHMgb3Igbm90Lg0KICAgKENvbnRyaWJ1dGVkIGJ5 IFJhbGYgU2NobWl0dC4pDQogDQotICBUaGUgOmZ1bmM6YHNldGl0aW1lcmAgYW5kIDpmdW5jOmBn ZXRpdGltZXJgIGZ1bmN0aW9ucyBoYXZlIGFsc28gYmVlbg0KLSAgYWRkZWQgKHdoZXJlIHRoZXkn cmUgYXZhaWxhYmxlKS4gIDpmdW5jOmBzZXRpdGltZXJgDQorICBUaGUgOmZ1bmM6YH5zaWduYWwu c2V0aXRpbWVyYCBhbmQgOmZ1bmM6YH5zaWduYWwuZ2V0aXRpbWVyYCBmdW5jdGlvbnMgaGF2ZSBh bHNvIGJlZW4NCisgIGFkZGVkICh3aGVyZSB0aGV5J3JlIGF2YWlsYWJsZSkuICA6ZnVuYzpgfnNp Z25hbC5zZXRpdGltZXJgDQogICBhbGxvd3Mgc2V0dGluZyBpbnRlcnZhbCB0aW1lcnMgdGhhdCB3 aWxsIGNhdXNlIGEgc2lnbmFsIHRvIGJlDQogICBkZWxpdmVyZWQgdG8gdGhlIHByb2Nlc3MgYWZ0 ZXIgYSBzcGVjaWZpZWQgdGltZSwgbWVhc3VyZWQgaW4NCiAgIHdhbGwtY2xvY2sgdGltZSwgY29u c3VtZWQgcHJvY2VzcyB0aW1lLCBvciBjb21iaW5lZCBwcm9jZXNzK3N5c3RlbQ0KICAgdGltZS4g IChDb250cmlidXRlZCBieSBHdWlsaGVybWUgUG9sbzsgOmlzc3VlOmAyMjQwYC4pDQogDQogKiBU aGUgOm1vZDpgc210cGxpYmAgbW9kdWxlIG5vdyBzdXBwb3J0cyBTTVRQIG92ZXIgU1NMIHRoYW5r cyB0byB0aGUNCi0gIGFkZGl0aW9uIG9mIHRoZSA6Y2xhc3M6YFNNVFBfU1NMYCBjbGFzcy4gVGhp cyBjbGFzcyBzdXBwb3J0cyBhbg0KLSAgaW50ZXJmYWNlIGlkZW50aWNhbCB0byB0aGUgZXhpc3Rp bmcgOmNsYXNzOmBTTVRQYCBjbGFzcy4NCisgIGFkZGl0aW9uIG9mIHRoZSA6Y2xhc3M6YH5zbXRw bGliLlNNVFBfU1NMYCBjbGFzcy4gVGhpcyBjbGFzcyBzdXBwb3J0cyBhbg0KKyAgaW50ZXJmYWNl IGlkZW50aWNhbCB0byB0aGUgZXhpc3RpbmcgOmNsYXNzOmB+c210cGxpYi5TTVRQYCBjbGFzcy4N CiAgIChDb250cmlidXRlZCBieSBNb250eSBUYXlsb3IuKSAgQm90aCBjbGFzcyBjb25zdHJ1Y3Rv cnMgYWxzbyBoYXZlIGFuDQogICBvcHRpb25hbCBgYHRpbWVvdXRgYCBwYXJhbWV0ZXIgdGhhdCBz cGVjaWZpZXMgYSB0aW1lb3V0IGZvciB0aGUNCiAgIGluaXRpYWwgY29ubmVjdGlvbiBhdHRlbXB0 LCBtZWFzdXJlZCBpbiBzZWNvbmRzLiAgKENvbnRyaWJ1dGVkIGJ5DQpAQCAtMjM2NSw3ICsyMzY5 LDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFs bCB0aGUgZGV0YWlscy4NCiAgIGUtbWFpbCBiZXR3ZWVuIGFnZW50cyB0aGF0IGRvbid0IG1hbmFn ZSBhIG1haWwgcXVldWUuICAoTE1UUA0KICAgaW1wbGVtZW50ZWQgYnkgTGVpZiBIZWRzdHJvbTsg Omlzc3VlOmA5NTcwMDNgLikNCiANCi0gIDptZXRoOmBTTVRQLnN0YXJ0dGxzYCBub3cgY29tcGxp ZXMgd2l0aCA6cmZjOmAzMjA3YCBhbmQgZm9yZ2V0cyBhbnkNCisgIDptZXRoOmBzbXRwbGliLlNN VFAuc3RhcnR0bHNgIG5vdyBjb21wbGllcyB3aXRoIDpyZmM6YDMyMDdgIGFuZCBmb3JnZXRzIGFu eQ0KICAga25vd2xlZGdlIG9idGFpbmVkIGZyb20gdGhlIHNlcnZlciBub3Qgb2J0YWluZWQgZnJv bSB0aGUgVExTDQogICBuZWdvdGlhdGlvbiBpdHNlbGYuICAoUGF0Y2ggY29udHJpYnV0ZWQgYnkg QmlsbCBGZW5uZXI7DQogICA6aXNzdWU6YDgyOTk1MWAuKQ0KQEAgLTIzNzUsMTEgKzIzNzksMTEg QEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0 aGUgZGV0YWlscy4NCiAgIGVudmlyb25tZW50cy4gIFRJUEMgYWRkcmVzc2VzIGFyZSA0LSBvciA1 LXR1cGxlcy4NCiAgIChDb250cmlidXRlZCBieSBBbGJlcnRvIEJlcnRvZ2xpOyA6aXNzdWU6YDE2 NDZgLikNCiANCi0gIEEgbmV3IGZ1bmN0aW9uLCA6ZnVuYzpgY3JlYXRlX2Nvbm5lY3Rpb25gLCB0 YWtlcyBhbiBhZGRyZXNzIGFuZA0KKyAgQSBuZXcgZnVuY3Rpb24sIDpmdW5jOmB+c29ja2V0LmNy ZWF0ZV9jb25uZWN0aW9uYCwgdGFrZXMgYW4gYWRkcmVzcyBhbmQNCiAgIGNvbm5lY3RzIHRvIGl0 IHVzaW5nIGFuIG9wdGlvbmFsIHRpbWVvdXQgdmFsdWUsIHJldHVybmluZyB0aGUNCiAgIGNvbm5l Y3RlZCBzb2NrZXQgb2JqZWN0LiAgVGhpcyBmdW5jdGlvbiBhbHNvIGxvb2tzIHVwIHRoZSBhZGRy ZXNzJ3MNCiAgIHR5cGUgYW5kIGNvbm5lY3RzIHRvIGl0IHVzaW5nIElQdjQgb3IgSVB2NiBhcyBh cHByb3ByaWF0ZS4gIENoYW5naW5nDQotICB5b3VyIGNvZGUgdG8gdXNlIDpmdW5jOmBjcmVhdGVf Y29ubmVjdGlvbmAgaW5zdGVhZCBvZg0KKyAgeW91ciBjb2RlIHRvIHVzZSA6ZnVuYzpgfnNvY2tl dC5jcmVhdGVfY29ubmVjdGlvbmAgaW5zdGVhZCBvZg0KICAgYGBzb2NrZXQoc29ja2V0LkFGX0lO RVQsIC4uLilgYCBtYXkgYmUgYWxsIHRoYXQncyByZXF1aXJlZCB0byBtYWtlDQogICB5b3VyIGNv ZGUgd29yayB3aXRoIElQdjYuDQogDQpAQCAtMjQwNywxNSArMjQxMSwxNSBAQCBjaGFuZ2VzLCBv ciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0K ICAgOmM6ZnVuYzpgIVRlcm1pbmF0ZVByb2Nlc3NgLg0KICAgKENvbnRyaWJ1dGVkIGJ5IENocmlz dGlhbiBIZWltZXMuKQ0KIA0KLSogQSBuZXcgdmFyaWFibGUgaW4gdGhlIDptb2Q6YHN5c2AgbW9k dWxlLCA6YXR0cjpgZmxvYXRfaW5mb2AsIGlzIGFuDQorKiBBIG5ldyB2YXJpYWJsZSBpbiB0aGUg Om1vZDpgc3lzYCBtb2R1bGUsIDpkYXRhOmB+c3lzLmZsb2F0X2luZm9gLCBpcyBhbg0KICAgb2Jq ZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gZGVyaXZlZCBmcm9tIHRoZSA6ZmlsZTpgZmxvYXQu aGAgZmlsZQ0KICAgYWJvdXQgdGhlIHBsYXRmb3JtJ3MgZmxvYXRpbmctcG9pbnQgc3VwcG9ydC4g IEF0dHJpYnV0ZXMgb2YgdGhpcw0KLSAgb2JqZWN0IGluY2x1ZGUgOmF0dHI6YG1hbnRfZGlnYCAo bnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgbWFudGlzc2EpLA0KLSAgOmF0dHI6YGVwc2lsb25gIChz bWFsbGVzdCBkaWZmZXJlbmNlIGJldHdlZW4gMS4wIGFuZCB0aGUgbmV4dA0KKyAgb2JqZWN0IGlu Y2x1ZGUgOmF0dHI6YH5zeXMuZmxvYXRfaW5mby5tYW50X2RpZ2AgKG51bWJlciBvZiBkaWdpdHMg aW4gdGhlIG1hbnRpc3NhKSwNCisgIDphdHRyOmB+c3lzLmZsb2F0X2luZm8uZXBzaWxvbmAgKHNt YWxsZXN0IGRpZmZlcmVuY2UgYmV0d2VlbiAxLjAgYW5kIHRoZSBuZXh0DQogICBsYXJnZXN0IHZh bHVlIHJlcHJlc2VudGFibGUpLCBhbmQgc2V2ZXJhbCBvdGhlcnMuICAoQ29udHJpYnV0ZWQgYnkN CiAgIENocmlzdGlhbiBIZWltZXM7IDppc3N1ZTpgMTUzNGAuKQ0KIA0KLSAgQW5vdGhlciBuZXcg dmFyaWFibGUsIDphdHRyOmBkb250X3dyaXRlX2J5dGVjb2RlYCwgY29udHJvbHMgd2hldGhlciBQ eXRob24NCisgIEFub3RoZXIgbmV3IHZhcmlhYmxlLCA6ZGF0YTpgfnN5cy5kb250X3dyaXRlX2J5 dGVjb2RlYCwgY29udHJvbHMgd2hldGhlciBQeXRob24NCiAgIHdyaXRlcyBhbnkgOmZpbGU6YC5w eWNgIG9yIDpmaWxlOmAucHlvYCBmaWxlcyBvbiBpbXBvcnRpbmcgYSBtb2R1bGUuDQogICBJZiB0 aGlzIHZhcmlhYmxlIGlzIHRydWUsIHRoZSBjb21waWxlZCBmaWxlcyBhcmUgbm90IHdyaXR0ZW4u ICBUaGUNCiAgIHZhcmlhYmxlIGlzIGluaXRpYWxseSBzZXQgb24gc3RhcnQtdXAgYnkgc3VwcGx5 aW5nIHRoZSA6b3B0aW9uOmAtQmANCkBAIC0yNDI4LDE2ICsyNDMyLDE2IEBAIGNoYW5nZXMsIG9y IGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQog DQogICBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBzdXBwbGll ZCB0byB0aGUgUHl0aG9uDQogICBpbnRlcnByZXRlciBpcyBhdmFpbGFibGUgYnkgcmVhZGluZyBh dHRyaWJ1dGVzIG9mIGEgbmFtZWQNCi0gIHR1cGxlIGF2YWlsYWJsZSBhcyBgYHN5cy5mbGFnc2Bg LiAgRm9yIGV4YW1wbGUsIHRoZSA6YXR0cjpgdmVyYm9zZWANCisgIHR1cGxlIGF2YWlsYWJsZSBh cyBgYHN5cy5mbGFnc2BgLiAgRm9yIGV4YW1wbGUsIHRoZSA6YXR0cjpgfnN5cy5mbGFncy52ZXJi b3NlYA0KICAgYXR0cmlidXRlIGlzIHRydWUgaWYgUHl0aG9uDQotICB3YXMgZXhlY3V0ZWQgaW4g dmVyYm9zZSBtb2RlLCA6YXR0cjpgZGVidWdgIGlzIHRydWUgaW4gZGVidWdnaW5nIG1vZGUsIGV0 Yy4NCisgIHdhcyBleGVjdXRlZCBpbiB2ZXJib3NlIG1vZGUsIDphdHRyOmB+c3lzLmZsYWdzLmRl YnVnYCBpcyB0cnVlIGluIGRlYnVnZ2luZyBtb2RlLCBldGMuDQogICBUaGVzZSBhdHRyaWJ1dGVz IGFyZSBhbGwgcmVhZC1vbmx5Lg0KICAgKENvbnRyaWJ1dGVkIGJ5IENocmlzdGlhbiBIZWltZXMu KQ0KIA0KLSAgQSBuZXcgZnVuY3Rpb24sIDpmdW5jOmBnZXRzaXplb2ZgLCB0YWtlcyBhIFB5dGhv biBvYmplY3QgYW5kIHJldHVybnMNCisgIEEgbmV3IGZ1bmN0aW9uLCA6ZnVuYzpgfnN5cy5nZXRz aXplb2ZgLCB0YWtlcyBhIFB5dGhvbiBvYmplY3QgYW5kIHJldHVybnMNCiAgIHRoZSBhbW91bnQg b2YgbWVtb3J5IHVzZWQgYnkgdGhlIG9iamVjdCwgbWVhc3VyZWQgaW4gYnl0ZXMuICBCdWlsdC1p bg0KICAgb2JqZWN0cyByZXR1cm4gY29ycmVjdCByZXN1bHRzOyB0aGlyZC1wYXJ0eSBleHRlbnNp b25zIG1heSBub3QsDQotICBidXQgY2FuIGRlZmluZSBhIDptZXRoOmBfX3NpemVvZl9fYCBtZXRo b2QgdG8gcmV0dXJuIHRoZQ0KKyAgYnV0IGNhbiBkZWZpbmUgYSA6bWV0aDpgIV9fc2l6ZW9mX19g IG1ldGhvZCB0byByZXR1cm4gdGhlDQogICBvYmplY3QncyBzaXplLg0KICAgKENvbnRyaWJ1dGVk IGJ5IFJvYmVydCBTY2h1cHBlbmllczsgOmlzc3VlOmAyODk4YC4pDQogDQpAQCAtMjQ2MSwxMiAr MjQ2NSwxMiBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2ggdGhlIFN1YnZlcnNpb24gbG9ncyBm b3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgdGhlaXIgVVRGLTggcmVwcmVzZW50YXRpb24uICAoQ2hh cmFjdGVyIGNvbnZlcnNpb25zIG9jY3VyIGJlY2F1c2UgdGhlDQogICBQQVggZm9ybWF0IHN1cHBv cnRzIFVuaWNvZGUgZmlsZW5hbWVzLCBkZWZhdWx0aW5nIHRvIFVURi04IGVuY29kaW5nLikNCiAN Ci0gIFRoZSA6bWV0aDpgVGFyRmlsZS5hZGRgIG1ldGhvZCBub3cgYWNjZXB0cyBhbiBgYGV4Y2x1 ZGVgYCBhcmd1bWVudCB0aGF0J3MNCisgIFRoZSA6bWV0aDpgdGFyZmlsZS5UYXJGaWxlLmFkZGAg bWV0aG9kIG5vdyBhY2NlcHRzIGFuIGBgZXhjbHVkZWBgIGFyZ3VtZW50IHRoYXQncw0KICAgYSBm dW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGV4Y2x1ZGUgY2VydGFpbiBmaWxlbmFtZXMgZnJv bQ0KICAgYW4gYXJjaGl2ZS4NCiAgIFRoZSBmdW5jdGlvbiBtdXN0IHRha2UgYSBmaWxlbmFtZSBh bmQgcmV0dXJuIHRydWUgaWYgdGhlIGZpbGUNCiAgIHNob3VsZCBiZSBleGNsdWRlZCBvciBmYWxz ZSBpZiBpdCBzaG91bGQgYmUgYXJjaGl2ZWQuDQotICBUaGUgZnVuY3Rpb24gaXMgYXBwbGllZCB0 byBib3RoIHRoZSBuYW1lIGluaXRpYWxseSBwYXNzZWQgdG8gOm1ldGg6YGFkZGANCisgIFRoZSBm dW5jdGlvbiBpcyBhcHBsaWVkIHRvIGJvdGggdGhlIG5hbWUgaW5pdGlhbGx5IHBhc3NlZCB0byA6 bWV0aDpgfnRhcmZpbGUuVGFyRmlsZS5hZGRgDQogICBhbmQgdG8gdGhlIG5hbWVzIG9mIGZpbGVz IGluIHJlY3Vyc2l2ZWx5IGFkZGVkIGRpcmVjdG9yaWVzLg0KIA0KICAgKEFsbCBjaGFuZ2VzIGNv bnRyaWJ1dGVkIGJ5IExhcnMgR3VzdMOkYmVsKS4NCkBAIC0yNDgwLDEyICsyNDg0LDEzIEBAIGNo YW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRl dGFpbHMuDQogICBiZWhhdmlvdXIgY2FuIG5vdyBiZSBjaGFuZ2VkIGJ5IHBhc3NpbmcgYGBkZWxl dGU9RmFsc2VgYCB0byB0aGUNCiAgIGNvbnN0cnVjdG9yLiAgKENvbnRyaWJ1dGVkIGJ5IERhbWll biBNaWxsZXI7IDppc3N1ZTpgMTUzNzg1MGAuKQ0KIA0KLSAgQSBuZXcgY2xhc3MsIDpjbGFzczpg U3Bvb2xlZFRlbXBvcmFyeUZpbGVgLCBiZWhhdmVzIGxpa2UNCisgIEEgbmV3IGNsYXNzLCA6Y2xh c3M6YH50ZW1wZmlsZS5TcG9vbGVkVGVtcG9yYXJ5RmlsZWAsIGJlaGF2ZXMgbGlrZQ0KICAgYSB0 ZW1wb3JhcnkgZmlsZSBidXQgc3RvcmVzIGl0cyBkYXRhIGluIG1lbW9yeSB1bnRpbCBhIG1heGlt dW0gc2l6ZSBpcw0KICAgZXhjZWVkZWQuICBPbiByZWFjaGluZyB0aGF0IGxpbWl0LCB0aGUgY29u dGVudHMgd2lsbCBiZSB3cml0dGVuIHRvDQogICBhbiBvbi1kaXNrIHRlbXBvcmFyeSBmaWxlLiAg KENvbnRyaWJ1dGVkIGJ5IER1c3RpbiBKLiBNaXRjaGVsbC4pDQogDQotICBUaGUgOmNsYXNzOmBO YW1lZFRlbXBvcmFyeUZpbGVgIGFuZCA6Y2xhc3M6YFNwb29sZWRUZW1wb3JhcnlGaWxlYCBjbGFz c2VzDQorICBUaGUgOmNsYXNzOmB+dGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlYCBhbmQNCisg IDpjbGFzczpgfnRlbXBmaWxlLlNwb29sZWRUZW1wb3JhcnlGaWxlYCBjbGFzc2VzDQogICBib3Ro IHdvcmsgYXMgY29udGV4dCBtYW5hZ2Vycywgc28geW91IGNhbiB3cml0ZQ0KICAgYGB3aXRoIHRl bXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZSgpIGFzIHRtcDogLi4uYGAuDQogICAoQ29udHJpYnV0 ZWQgYnkgQWxleGFuZGVyIEJlbG9wb2xza3k7IDppc3N1ZTpgMjAyMWAuKQ0KQEAgLTI0OTYsNyAr MjUwMSw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZv ciBhbGwgdGhlIGRldGFpbHMuDQogICBjb250ZXh0IG1hbmFnZXIgdGhhdCB0ZW1wb3JhcmlseSBj aGFuZ2VzIGVudmlyb25tZW50IHZhcmlhYmxlcyBhbmQNCiAgIGF1dG9tYXRpY2FsbHkgcmVzdG9y ZXMgdGhlbSB0byB0aGVpciBvbGQgdmFsdWVzLg0KIA0KLSAgQW5vdGhlciBjb250ZXh0IG1hbmFn ZXIsIDpjbGFzczpgVHJhbnNpZW50UmVzb3VyY2VgLCBjYW4gc3Vycm91bmQgY2FsbHMNCisgIEFu b3RoZXIgY29udGV4dCBtYW5hZ2VyLCA6Y2xhc3M6YCFUcmFuc2llbnRSZXNvdXJjZWAsIGNhbiBz dXJyb3VuZCBjYWxscw0KICAgdG8gcmVzb3VyY2VzIHRoYXQgbWF5IG9yIG1heSBub3QgYmUgYXZh aWxhYmxlOyBpdCB3aWxsIGNhdGNoIGFuZA0KICAgaWdub3JlIGEgc3BlY2lmaWVkIGxpc3Qgb2Yg ZXhjZXB0aW9ucy4gIEZvciBleGFtcGxlLA0KICAgYSBuZXR3b3JrIHRlc3QgbWF5IGlnbm9yZSBj ZXJ0YWluIGZhaWx1cmVzIHdoZW4gY29ubmVjdGluZyB0byBhbg0KQEAgLTI1MDcsOSArMjUxMiw5 IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwg dGhlIGRldGFpbHMuDQogICAgICAgICAgIGYgPSB1cmxsaWIudXJsb3BlbignaHR0cHM6Ly9zZi5u ZXQnKQ0KICAgICAgICAgICAuLi4NCiANCi0gIEZpbmFsbHksIDpmdW5jOmBjaGVja193YXJuaW5n c2AgcmVzZXRzIHRoZSA6bW9kOmB3YXJuaW5nYCBtb2R1bGUncw0KLSAgd2FybmluZyBmaWx0ZXJz IGFuZCByZXR1cm5zIGFuIG9iamVjdCB0aGF0IHdpbGwgcmVjb3JkIGFsbCB3YXJuaW5nDQotICBt ZXNzYWdlcyB0cmlnZ2VyZWQgKDppc3N1ZTpgMzc4MWApOjoNCisgIEZpbmFsbHksIDpmdW5jOmB+ dGVzdC5zdXBwb3J0Lndhcm5pbmdzX2hlbHBlci5jaGVja193YXJuaW5nc2AgcmVzZXRzIHRoZQ0K KyAgOm1vZDpgd2FybmluZ3NgIG1vZHVsZSdzIHdhcm5pbmcgZmlsdGVycyBhbmQgcmV0dXJucyBh biBvYmplY3QgdGhhdCB3aWxsIHJlY29yZA0KKyAgYWxsIHdhcm5pbmcgbWVzc2FnZXMgdHJpZ2dl cmVkICg6aXNzdWU6YDM3ODFgKTo6DQogDQogICAgICAgd2l0aCB0ZXN0X3N1cHBvcnQuY2hlY2tf d2FybmluZ3MoKSBhcyB3cmVjOg0KICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImFs d2F5cyIpDQpAQCAtMjU0MSwzMSArMjU0NiwzMSBAQCBjaGFuZ2VzLCBvciBsb29rIHRocm91Z2gg dGhlIFN1YnZlcnNpb24gbG9ncyBmb3IgYWxsIHRoZSBkZXRhaWxzLg0KICAgKENvbnRyaWJ1dGVk IGJ5IER3YXluZSBCYWlsZXk7IDppc3N1ZTpgMTU4MTA3M2AuKQ0KIA0KICogVGhlIDptb2Q6YHRo cmVhZGluZ2AgbW9kdWxlIEFQSSBpcyBiZWluZyBjaGFuZ2VkIHRvIHVzZSBwcm9wZXJ0aWVzDQot ICBzdWNoIGFzIDphdHRyOmBkYWVtb25gIGluc3RlYWQgb2YgOm1ldGg6YHNldERhZW1vbmAgYW5k DQotICA6bWV0aDpgaXNEYWVtb25gIG1ldGhvZHMsIGFuZCBzb21lIG1ldGhvZHMgaGF2ZSBiZWVu IHJlbmFtZWQgdG8gdXNlDQorICBzdWNoIGFzIDphdHRyOmB+dGhyZWFkaW5nLlRocmVhZC5kYWVt b25gIGluc3RlYWQgb2YgOm1ldGg6YCFzZXREYWVtb25gIGFuZA0KKyAgOm1ldGg6YCFpc0RhZW1v bmAgbWV0aG9kcywgYW5kIHNvbWUgbWV0aG9kcyBoYXZlIGJlZW4gcmVuYW1lZCB0byB1c2UNCiAg IHVuZGVyc2NvcmVzIGluc3RlYWQgb2YgY2FtZWwtY2FzZTsgZm9yIGV4YW1wbGUsIHRoZQ0KLSAg Om1ldGg6YGFjdGl2ZUNvdW50YCBtZXRob2QgaXMgcmVuYW1lZCB0byA6bWV0aDpgYWN0aXZlX2Nv dW50YC4gIEJvdGgNCisgIDptZXRoOmAhYWN0aXZlQ291bnRgIG1ldGhvZCBpcyByZW5hbWVkIHRv IDpmdW5jOmB+dGhyZWFkaW5nLmFjdGl2ZV9jb3VudGAuICBCb3RoDQogICB0aGUgMi42IGFuZCAz LjAgdmVyc2lvbnMgb2YgdGhlIG1vZHVsZSBzdXBwb3J0IHRoZSBzYW1lIHByb3BlcnRpZXMNCiAg IGFuZCByZW5hbWVkIG1ldGhvZHMsIGJ1dCBkb24ndCByZW1vdmUgdGhlIG9sZCBtZXRob2RzLiAg Tm8gZGF0ZSBoYXMgYmVlbiBzZXQNCiAgIGZvciB0aGUgZGVwcmVjYXRpb24gb2YgdGhlIG9sZCBB UElzIGluIFB5dGhvbiAzLng7IHRoZSBvbGQgQVBJcyB3b24ndA0KICAgYmUgcmVtb3ZlZCBpbiBh bnkgMi54IHZlcnNpb24uDQogICAoQ2FycmllZCBvdXQgYnkgc2V2ZXJhbCBwZW9wbGUsIG1vc3Qg bm90YWJseSBCZW5qYW1pbiBQZXRlcnNvbi4pDQogDQotICBUaGUgOm1vZDpgdGhyZWFkaW5nYCBt b2R1bGUncyA6Y2xhc3M6YFRocmVhZGAgb2JqZWN0cw0KLSAgZ2FpbmVkIGFuIDphdHRyOmBpZGVu dGAgcHJvcGVydHkgdGhhdCByZXR1cm5zIHRoZSB0aHJlYWQncw0KKyAgVGhlIDptb2Q6YHRocmVh ZGluZ2AgbW9kdWxlJ3MgOmNsYXNzOmB+dGhyZWFkaW5nLlRocmVhZGAgb2JqZWN0cw0KKyAgZ2Fp bmVkIGFuIDphdHRyOmB+dGhyZWFkaW5nLlRocmVhZC5pZGVudGAgcHJvcGVydHkgdGhhdCByZXR1 cm5zIHRoZSB0aHJlYWQncw0KICAgaWRlbnRpZmllciwgYSBub256ZXJvIGludGVnZXIuICAoQ29u dHJpYnV0ZWQgYnkgR3JlZ29yeSBQLiBTbWl0aDsNCiAgIDppc3N1ZTpgMjg3MWAuKQ0KIA0KICog VGhlIDptb2Q6YHRpbWVpdGAgbW9kdWxlIG5vdyBhY2NlcHRzIGNhbGxhYmxlcyBhcyB3ZWxsIGFz IHN0cmluZ3MNCiAgIGZvciB0aGUgc3RhdGVtZW50IGJlaW5nIHRpbWVkIGFuZCBmb3IgdGhlIHNl dHVwIGNvZGUuDQogICBUd28gY29udmVuaWVuY2UgZnVuY3Rpb25zIHdlcmUgYWRkZWQgZm9yIGNy ZWF0aW5nDQotICA6Y2xhc3M6YFRpbWVyYCBpbnN0YW5jZXM6DQorICA6Y2xhc3M6YH50aW1laXQu VGltZXJgIGluc3RhbmNlczoNCiAgIGBgcmVwZWF0KHN0bXQsIHNldHVwLCB0aW1lLCByZXBlYXQs IG51bWJlcilgYCBhbmQNCiAgIGBgdGltZWl0KHN0bXQsIHNldHVwLCB0aW1lLCBudW1iZXIpYGAg Y3JlYXRlIGFuIGluc3RhbmNlIGFuZCBjYWxsDQogICB0aGUgY29ycmVzcG9uZGluZyBtZXRob2Qu IChDb250cmlidXRlZCBieSBFcmlrIERlbWFpbmU7DQogICA6aXNzdWU6YDE1MzM5MDlgLikNCiAN Ci0qIFRoZSA6bW9kOmBUa2ludGVyYCBtb2R1bGUgbm93IGFjY2VwdHMgbGlzdHMgYW5kIHR1cGxl cyBmb3Igb3B0aW9ucywNCisqIFRoZSA6bW9kOmB0a2ludGVyYCBtb2R1bGUgbm93IGFjY2VwdHMg bGlzdHMgYW5kIHR1cGxlcyBmb3Igb3B0aW9ucywNCiAgIHNlcGFyYXRpbmcgdGhlIGVsZW1lbnRz IGJ5IHNwYWNlcyBiZWZvcmUgcGFzc2luZyB0aGUgcmVzdWx0aW5nIHZhbHVlIHRvDQogICBUY2wv VGsuDQogICAoQ29udHJpYnV0ZWQgYnkgR3VpbGhlcm1lIFBvbG87IDppc3N1ZTpgMjkwNmAuKQ0K QEAgLTI1NzQsMTEgKzI1NzksMTEgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2 ZXJzaW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIEdyZWdvciBMaW5nbC4gIE5ldyBm ZWF0dXJlcyBpbiB0aGUgbW9kdWxlIGluY2x1ZGU6DQogDQogICAqIEJldHRlciBhbmltYXRpb24g b2YgdHVydGxlIG1vdmVtZW50IGFuZCByb3RhdGlvbi4NCi0gICogQ29udHJvbCBvdmVyIHR1cnRs ZSBtb3ZlbWVudCB1c2luZyB0aGUgbmV3IDptZXRoOmBkZWxheWAsDQotICAgIDptZXRoOmB0cmFj ZXJgLCBhbmQgOm1ldGg6YHNwZWVkYCBtZXRob2RzLg0KKyAgKiBDb250cm9sIG92ZXIgdHVydGxl IG1vdmVtZW50IHVzaW5nIHRoZSBuZXcgOmZ1bmM6YH50dXJ0bGUuZGVsYXlgLA0KKyAgICA6ZnVu YzpgfnR1cnRsZS50cmFjZXJgLCBhbmQgOmZ1bmM6YH50dXJ0bGUuc3BlZWRgIG1ldGhvZHMuDQog ICAqIFRoZSBhYmlsaXR5IHRvIHNldCBuZXcgc2hhcGVzIGZvciB0aGUgdHVydGxlLCBhbmQgdG8N CiAgICAgZGVmaW5lIGEgbmV3IGNvb3JkaW5hdGUgc3lzdGVtLg0KLSAgKiBUdXJ0bGVzIG5vdyBo YXZlIGFuIDptZXRoOmB1bmRvYCBtZXRob2QgdGhhdCBjYW4gcm9sbCBiYWNrIGFjdGlvbnMuDQor ICAqIFR1cnRsZXMgbm93IGhhdmUgYW4gOmZ1bmM6YH50dXJ0bGUudW5kb2AgbWV0aG9kIHRoYXQg Y2FuIHJvbGwgYmFjayBhY3Rpb25zLg0KICAgKiBTaW1wbGUgc3VwcG9ydCBmb3IgcmVhY3Rpbmcg dG8gaW5wdXQgZXZlbnRzIHN1Y2ggYXMgbW91c2UgYW5kIGtleWJvYXJkDQogICAgIGFjdGl2aXR5 LCBtYWtpbmcgaXQgcG9zc2libGUgdG8gd3JpdGUgc2ltcGxlIGdhbWVzLg0KICAgKiBBIDpmaWxl OmB0dXJ0bGUuY2ZnYCBmaWxlIGNhbiBiZSB1c2VkIHRvIGN1c3RvbWl6ZSB0aGUgc3RhcnRpbmcg YXBwZWFyYW5jZQ0KQEAgLTI1OTAsNyArMjU5NSw3IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3Vn aCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBhbGwgdGhlIGRldGFpbHMuDQogDQogKiBBbiBvcHRp b25hbCBgYHRpbWVvdXRgYCBwYXJhbWV0ZXIgd2FzIGFkZGVkIHRvIHRoZQ0KICAgOmZ1bmM6YHVy bGxpYi51cmxvcGVuIDx1cmxsaWIucmVxdWVzdC51cmxvcGVuPmAgZnVuY3Rpb24gYW5kIHRoZQ0K LSAgOmNsYXNzOmB1cmxsaWIuZnRwd3JhcHBlcmAgY2xhc3MgY29uc3RydWN0b3IsIGFzIHdlbGwg YXMgdGhlDQorICA6Y2xhc3M6YCF1cmxsaWIuZnRwd3JhcHBlcmAgY2xhc3MgY29uc3RydWN0b3Is IGFzIHdlbGwgYXMgdGhlDQogICA6ZnVuYzpgdXJsbGliMi51cmxvcGVuIDx1cmxsaWIucmVxdWVz dC51cmxvcGVuPmAgZnVuY3Rpb24uICBUaGUgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHRpbWVvdXQN CiAgIG1lYXN1cmVkIGluIHNlY29uZHMuICAgRm9yIGV4YW1wbGU6Og0KIA0KQEAgLTI2MDcsMTIg KzI2MTIsMTMgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9uIGxvZ3Mg Zm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIGhhcyBiZWVuIHVwZGF0ZWQgdG8gdmVyc2lvbiA1LjEu MC4gIChVcGRhdGVkIGJ5DQogICBNYXJ0aW4gdm9uIEzDtndpczsgOmlzc3VlOmAzODExYC4pDQog DQotKiBUaGUgOm1vZDpgd2FybmluZ3NgIG1vZHVsZSdzIDpmdW5jOmBmb3JtYXR3YXJuaW5nYCBh bmQgOmZ1bmM6YHNob3d3YXJuaW5nYA0KKyogVGhlIDptb2Q6YHdhcm5pbmdzYCBtb2R1bGUncyA6 ZnVuYzpgfndhcm5pbmdzLmZvcm1hdHdhcm5pbmdgIGFuZA0KKyAgOmZ1bmM6YH53YXJuaW5ncy5z aG93d2FybmluZ2ANCiAgIGdhaW5lZCBhbiBvcHRpb25hbCAqbGluZSogYXJndW1lbnQgdGhhdCBj YW4gYmUgdXNlZCB0byBzdXBwbHkgdGhlDQogICBsaW5lIG9mIHNvdXJjZSBjb2RlLiAgKEFkZGVk IGFzIHBhcnQgb2YgOmlzc3VlOmAxNjMxMTcxYCwgd2hpY2ggcmUtaW1wbGVtZW50ZWQNCiAgIHBh cnQgb2YgdGhlIDptb2Q6YHdhcm5pbmdzYCBtb2R1bGUgaW4gQyBjb2RlLikNCiANCi0gIEEgbmV3 IGZ1bmN0aW9uLCA6ZnVuYzpgY2F0Y2hfd2FybmluZ3NgLCBpcyBhIGNvbnRleHQgbWFuYWdlcg0K KyAgQSBuZXcgZnVuY3Rpb24sIDpmdW5jOmB+d2FybmluZ3MuY2F0Y2hfd2FybmluZ3NgLCBpcyBh IGNvbnRleHQgbWFuYWdlcg0KICAgaW50ZW5kZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMgdGhhdCBs ZXRzIHlvdSB0ZW1wb3JhcmlseSBtb2RpZnkgdGhlDQogICB3YXJuaW5nIGZpbHRlcnMgYW5kIHRo ZW4gcmVzdG9yZSB0aGVpciBvcmlnaW5hbCB2YWx1ZXMgKDppc3N1ZTpgMzc4MWApLg0KIA0KQEAg LTI2MjAsMTIgKzI2MjYsMTMgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJz aW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAgIGNsYXNzZXMgY2FuIG5vdyBiZSBwcmV2 ZW50ZWQgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFuZCBiaW5kaW5nIHRvDQogICB0aGVpciBz b2NrZXQgYnkgcGFzc2luZyBgYEZhbHNlYGAgYXMgdGhlICpiaW5kX2FuZF9hY3RpdmF0ZSoNCiAg IGNvbnN0cnVjdG9yIHBhcmFtZXRlci4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSBp bnN0YW5jZSdzDQotICA6YXR0cjpgYWxsb3dfcmV1c2VfYWRkcmVzc2AgYXR0cmlidXRlIGJlZm9y ZSBjYWxsaW5nIHRoZQ0KLSAgOm1ldGg6YHNlcnZlcl9iaW5kYCBhbmQgOm1ldGg6YHNlcnZlcl9h Y3RpdmF0ZWAgbWV0aG9kcyB0bw0KKyAgOmF0dHI6YH5zb2NrZXRzZXJ2ZXIuQmFzZVNlcnZlci5h bGxvd19yZXVzZV9hZGRyZXNzYCBhdHRyaWJ1dGUgYmVmb3JlIGNhbGxpbmcgdGhlDQorICA6bWV0 aDpgfnNvY2tldHNlcnZlci5CYXNlU2VydmVyLnNlcnZlcl9iaW5kYCBhbmQNCisgIDptZXRoOmB+ c29ja2V0c2VydmVyLkJhc2VTZXJ2ZXIuc2VydmVyX2FjdGl2YXRlYCBtZXRob2RzIHRvDQogICBv cGVuIHRoZSBzb2NrZXQgYW5kIGJlZ2luIGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMuDQogICAo Q29udHJpYnV0ZWQgYnkgUGV0ZXIgUGFyZW50ZTsgOmlzc3VlOmAxNTk5ODQ1YC4pDQogDQotICA6 Y2xhc3M6YFNpbXBsZVhNTFJQQ1NlcnZlcmAgYWxzbyBoYXMgYSA6YXR0cjpgX3NlbmRfdHJhY2Vi YWNrX2hlYWRlcmANCisgIDpjbGFzczpgfnhtbHJwYy5zZXJ2ZXIuU2ltcGxlWE1MUlBDU2VydmVy YCBhbHNvIGhhcyBhIDphdHRyOmAhX3NlbmRfdHJhY2ViYWNrX2hlYWRlcmANCiAgIGF0dHJpYnV0 ZTsgaWYgdHJ1ZSwgdGhlIGV4Y2VwdGlvbiBhbmQgZm9ybWF0dGVkIHRyYWNlYmFjayBhcmUgcmV0 dXJuZWQNCiAgIGFzIEhUVFAgaGVhZGVycyAiWC1FeGNlcHRpb24iIGFuZCAiWC1UcmFjZWJhY2si LiAgVGhpcyBmZWF0dXJlIGlzDQogICBmb3IgZGVidWdnaW5nIHB1cnBvc2VzIG9ubHkgYW5kIHNo b3VsZCBub3QgYmUgdXNlZCBvbiBwcm9kdWN0aW9uIHNlcnZlcnMNCkBAIC0yNjM3LDE0ICsyNjQ0 LDE1IEBAIGNoYW5nZXMsIG9yIGxvb2sgdGhyb3VnaCB0aGUgU3VidmVyc2lvbiBsb2dzIGZvciBh bGwgdGhlIGRldGFpbHMuDQogICA6Y2xhc3M6YGRhdGV0aW1lLmRhdGVgIGFuZCA6Y2xhc3M6YGRh dGV0aW1lLnRpbWVgIHRvIHRoZQ0KICAgOmNsYXNzOmB4bWxycGNsaWIuRGF0ZVRpbWUgPHhtbHJw Yy5jbGllbnQuRGF0ZVRpbWU+YCB0eXBlOyB0aGUgY29udmVyc2lvbiBzZW1hbnRpY3Mgd2VyZQ0K ICAgbm90IG5lY2Vzc2FyaWx5IGNvcnJlY3QgZm9yIGFsbCBhcHBsaWNhdGlvbnMuICBDb2RlIHVz aW5nDQotICA6bW9kOmAheG1scnBjbGliYCBzaG91bGQgY29udmVydCA6Y2xhc3M6YGRhdGVgIGFu ZCA6Y2xhc3M6YH5kYXRldGltZS50aW1lYA0KKyAgOm1vZDpgIXhtbHJwY2xpYmAgc2hvdWxkIGNv bnZlcnQgOmNsYXNzOmB+ZGF0ZXRpbWUuZGF0ZWAgYW5kIDpjbGFzczpgfmRhdGV0aW1lLnRpbWVg DQogICBpbnN0YW5jZXMuICg6aXNzdWU6YDEzMzA1MzhgKSAgVGhlIGNvZGUgY2FuIGFsc28gaGFu ZGxlDQogICBkYXRlcyBiZWZvcmUgMTkwMCAoY29udHJpYnV0ZWQgYnkgUmFsZiBTY2htaXR0OyA6 aXNzdWU6YDIwMTRgKQ0KICAgYW5kIDY0LWJpdCBpbnRlZ2VycyByZXByZXNlbnRlZCBieSB1c2lu ZyBgYDxpOD5gYCBpbiBYTUwtUlBDIHJlc3BvbnNlcw0KICAgKGNvbnRyaWJ1dGVkIGJ5IFJpa3Ug TGluZGJsYWQ7IDppc3N1ZTpgMjk4NWApLg0KIA0KLSogVGhlIDptb2Q6YHppcGZpbGVgIG1vZHVs ZSdzIDpjbGFzczpgWmlwRmlsZWAgY2xhc3Mgbm93IGhhcw0KLSAgOm1ldGg6YGV4dHJhY3RgIGFu ZCA6bWV0aDpgZXh0cmFjdGFsbGAgbWV0aG9kcyB0aGF0IHdpbGwgdW5wYWNrDQorKiBUaGUgOm1v ZDpgemlwZmlsZWAgbW9kdWxlJ3MgOmNsYXNzOmB+emlwZmlsZS5aaXBGaWxlYCBjbGFzcyBub3cg aGFzDQorICA6bWV0aDpgfnppcGZpbGUuWmlwRmlsZS5leHRyYWN0YCBhbmQgOm1ldGg6YH56aXBm aWxlLlppcEZpbGUuZXh0cmFjdGFsbGANCisgIG1ldGhvZHMgdGhhdCB3aWxsIHVucGFjaw0KICAg YSBzaW5nbGUgZmlsZSBvciBhbGwgdGhlIGZpbGVzIGluIHRoZSBhcmNoaXZlIHRvIHRoZSBjdXJy ZW50IGRpcmVjdG9yeSwgb3INCiAgIHRvIGEgc3BlY2lmaWVkIGRpcmVjdG9yeTo6DQogDQpAQCAt MjY1OSw4ICsyNjY3LDkgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJzaW9u IGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiANCiAgIChDb250cmlidXRlZCBieSBBbGFuIE1j SW50eXJlOyA6aXNzdWU6YDQ2NzkyNGAuKQ0KIA0KLSAgVGhlIDptZXRoOmBvcGVuYCwgOm1ldGg6 YHJlYWRgIGFuZCA6bWV0aDpgZXh0cmFjdGAgbWV0aG9kcyBjYW4gbm93DQotICB0YWtlIGVpdGhl ciBhIGZpbGVuYW1lIG9yIGEgOmNsYXNzOmBaaXBJbmZvYCBvYmplY3QuICBUaGlzIGlzIHVzZWZ1 bCB3aGVuIGFuDQorICBUaGUgOm1ldGg6YH56aXBmaWxlLlppcEZpbGUub3BlbmAsIDptZXRoOmB+ emlwZmlsZS5aaXBGaWxlLnJlYWRgIGFuZA0KKyAgOm1ldGg6YH56aXBmaWxlLlppcEZpbGUuZXh0 cmFjdGAgbWV0aG9kcyBjYW4gbm93DQorICB0YWtlIGVpdGhlciBhIGZpbGVuYW1lIG9yIGEgOmNs YXNzOmB+emlwZmlsZS5aaXBJbmZvYCBvYmplY3QuICBUaGlzIGlzIHVzZWZ1bCB3aGVuIGFuDQog ICBhcmNoaXZlIGFjY2lkZW50YWxseSBjb250YWlucyBhIGR1cGxpY2F0ZWQgZmlsZW5hbWUuDQog ICAoQ29udHJpYnV0ZWQgYnkgR3JhaGFtIEhvcmxlcjsgOmlzc3VlOmAxNzc1MDI1YC4pDQogDQpA QCAtMjY3MSw3ICsyNjgwLDcgQEAgY2hhbmdlcywgb3IgbG9vayB0aHJvdWdoIHRoZSBTdWJ2ZXJz aW9uIGxvZ3MgZm9yIGFsbCB0aGUgZGV0YWlscy4NCiAuLiB3aG9sZSBuZXcgbW9kdWxlcyBnZXQg ZGVzY3JpYmVkIGluIHN1YnNlY3Rpb25zIGhlcmUNCiANCiBUaGUgOm1vZDpgYXN0YCBtb2R1bGUN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogDQogVGhl IDptb2Q6YGFzdGAgbW9kdWxlIHByb3ZpZGVzIGFuIEFic3RyYWN0IFN5bnRheCBUcmVlDQogcmVw cmVzZW50YXRpb24gb2YgUHl0aG9uIGNvZGUsIGFuZCBBcm1pbiBSb25hY2hlcg0KQEAgLTI2ODAs OCArMjY4OSw4IEBAIGNvbW1vbiB0YXNrcy4gIFRoZXNlIHdpbGwgYmUgdXNlZnVsIGZvciBIVE1M IHRlbXBsYXRpbmcNCiBwYWNrYWdlcywgY29kZSBhbmFseXplcnMsIGFuZCBzaW1pbGFyIHRvb2xz IHRoYXQgcHJvY2Vzcw0KIFB5dGhvbiBjb2RlLg0KIA0KLVRoZSA6ZnVuYzpgcGFyc2VgIGZ1bmN0 aW9uIHRha2VzIGFuIGV4cHJlc3Npb24gYW5kIHJldHVybnMgYW4gQVNULg0KLVRoZSA6ZnVuYzpg ZHVtcGAgZnVuY3Rpb24gb3V0cHV0cyBhIHJlcHJlc2VudGF0aW9uIG9mIGEgdHJlZSwgc3VpdGFi bGUNCitUaGUgOmZ1bmM6YH5hc3QucGFyc2VgIGZ1bmN0aW9uIHRha2VzIGFuIGV4cHJlc3Npb24g YW5kIHJldHVybnMgYW4gQVNULg0KK1RoZSA6ZnVuYzpgfmFzdC5kdW1wYCBmdW5jdGlvbiBvdXRw dXRzIGEgcmVwcmVzZW50YXRpb24gb2YgYSB0cmVlLCBzdWl0YWJsZQ0KIGZvciBkZWJ1Z2dpbmc6 Og0KIA0KICAgICBpbXBvcnQgYXN0DQpAQCAtMjcyNywxMyArMjczNiwxMyBAQCBUaGlzIG91dHB1 dHMgYSBkZWVwbHkgbmVzdGVkIHRyZWU6Og0KICAgICAgICBdLCBubD1UcnVlKQ0KICAgICAgXSkN CiANCi1UaGUgOmZ1bmM6YGxpdGVyYWxfZXZhbGAgbWV0aG9kIHRha2VzIGEgc3RyaW5nIG9yIGFu IEFTVA0KK1RoZSA6ZnVuYzpgfmFzdC5saXRlcmFsX2V2YWxgIG1ldGhvZCB0YWtlcyBhIHN0cmlu ZyBvciBhbiBBU1QNCiByZXByZXNlbnRpbmcgYSBsaXRlcmFsIGV4cHJlc3Npb24sIHBhcnNlcyBh bmQgZXZhbHVhdGVzIGl0LCBhbmQNCiByZXR1cm5zIHRoZSByZXN1bHRpbmcgdmFsdWUuICBBIGxp dGVyYWwgZXhwcmVzc2lvbiBpcyBhIFB5dGhvbg0KIGV4cHJlc3Npb24gY29udGFpbmluZyBvbmx5 IHN0cmluZ3MsIG51bWJlcnMsIGRpY3Rpb25hcmllcywNCiBldGMuIGJ1dCBubyBzdGF0ZW1lbnRz IG9yIGZ1bmN0aW9uIGNhbGxzLiAgSWYgeW91IG5lZWQgdG8NCiBldmFsdWF0ZSBhbiBleHByZXNz aW9uIGJ1dCBjYW5ub3QgYWNjZXB0IHRoZSBzZWN1cml0eSByaXNrIG9mIHVzaW5nIGFuDQotOmZ1 bmM6YGV2YWxgIGNhbGwsIDpmdW5jOmBsaXRlcmFsX2V2YWxgIHdpbGwgaGFuZGxlIGl0IHNhZmVs eTo6DQorOmZ1bmM6YGV2YWxgIGNhbGwsIDpmdW5jOmB+YXN0LmxpdGVyYWxfZXZhbGAgd2lsbCBo YW5kbGUgaXQgc2FmZWx5OjoNCiANCiAgICAgPj4+IGxpdGVyYWwgPSAnKCJhIiwgImIiLCB7Mjo0 LCAzOjgsIDE6Mn0pJw0KICAgICA+Pj4gcHJpbnQgYXN0LmxpdGVyYWxfZXZhbChsaXRlcmFsKQ0K QEAgLTI3NDMsMTUgKzI3NTIsMTUgQEAgZXZhbHVhdGUgYW4gZXhwcmVzc2lvbiBidXQgY2Fubm90 IGFjY2VwdCB0aGUgc2VjdXJpdHkgcmlzayBvZiB1c2luZyBhbg0KICAgICAgIC4uLg0KICAgICBW YWx1ZUVycm9yOiBtYWxmb3JtZWQgc3RyaW5nDQogDQotVGhlIG1vZHVsZSBhbHNvIGluY2x1ZGVz IDpjbGFzczpgTm9kZVZpc2l0b3JgIGFuZA0KLTpjbGFzczpgTm9kZVRyYW5zZm9ybWVyYCBjbGFz c2VzIGZvciB0cmF2ZXJzaW5nIGFuZCBtb2RpZnlpbmcgYW4gQVNULA0KK1RoZSBtb2R1bGUgYWxz byBpbmNsdWRlcyA6Y2xhc3M6YH5hc3QuTm9kZVZpc2l0b3JgIGFuZA0KKzpjbGFzczpgfmFzdC5O b2RlVHJhbnNmb3JtZXJgIGNsYXNzZXMgZm9yIHRyYXZlcnNpbmcgYW5kIG1vZGlmeWluZyBhbiBB U1QsDQogYW5kIGZ1bmN0aW9ucyBmb3IgY29tbW9uIHRyYW5zZm9ybWF0aW9ucyBzdWNoIGFzIGNo YW5naW5nIGxpbmUNCiBudW1iZXJzLg0KIA0KIC4uID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiANCiBUaGUgOm1v ZDpgIWZ1dHVyZV9idWlsdGluc2AgbW9kdWxlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogDQogUHl0 aG9uIDMuMCBtYWtlcyBtYW55IGNoYW5nZXMgdG8gdGhlIHJlcGVydG9pcmUgb2YgYnVpbHQtaW4N CiBmdW5jdGlvbnMsIGFuZCBtb3N0IG9mIHRoZSBjaGFuZ2VzIGNhbid0IGJlIGludHJvZHVjZWQg aW4gdGhlIFB5dGhvbg0KQEAgLTI3NzEsMTUgKzI3ODAsMTUgQEAgVGhlIGZ1bmN0aW9ucyBpbiB0 aGlzIG1vZHVsZSBjdXJyZW50bHkgaW5jbHVkZToNCiAgIHJldHVybiBpdGVyYXRvcnMsIHVubGlr ZSB0aGUgMi54IGJ1aWx0aW5zIHdoaWNoIHJldHVybiBsaXN0cy4NCiANCiAqIGBgaGV4KHZhbHVl KWBgLCBgYG9jdCh2YWx1ZSlgYDogaW5zdGVhZCBvZiBjYWxsaW5nIHRoZQ0KLSAgOm1ldGg6YF9f aGV4X19gIG9yIDptZXRoOmBfX29jdF9fYCBtZXRob2RzLCB0aGVzZSB2ZXJzaW9ucyB3aWxsDQot ICBjYWxsIHRoZSA6bWV0aDpgX19pbmRleF9fYCBtZXRob2QgYW5kIGNvbnZlcnQgdGhlIHJlc3Vs dCB0byBoZXhhZGVjaW1hbA0KKyAgOm1ldGg6YCFfX2hleF9fYCBvciA6bWV0aDpgIV9fb2N0X19g IG1ldGhvZHMsIHRoZXNlIHZlcnNpb25zIHdpbGwNCisgIGNhbGwgdGhlIDptZXRoOmB+b2JqZWN0 Ll9faW5kZXhfX2AgbWV0aG9kIGFuZCBjb252ZXJ0IHRoZSByZXN1bHQgdG8gaGV4YWRlY2ltYWwN CiAgIG9yIG9jdGFsLiAgOmZ1bmM6YG9jdGAgd2lsbCB1c2UgdGhlIG5ldyBgYDBvYGAgbm90YXRp b24gZm9yIGl0cw0KICAgcmVzdWx0Lg0KIA0KIC4uID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiANCiBUaGUgOm1v ZDpganNvbmAgbW9kdWxlOiBKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAN CiBUaGUgbmV3IDptb2Q6YGpzb25gIG1vZHVsZSBzdXBwb3J0cyB0aGUgZW5jb2RpbmcgYW5kIGRl Y29kaW5nIG9mIFB5dGhvbiB0eXBlcyBpbg0KIEpTT04gKEphdmFzY3JpcHQgT2JqZWN0IE5vdGF0 aW9uKS4gSlNPTiBpcyBhIGxpZ2h0d2VpZ2h0IGludGVyY2hhbmdlIGZvcm1hdA0KQEAgLTI4NDYs MTIgKzI4NTUsMTIgQEAgVXNpbmcgdGhlIG1vZHVsZSBpcyBzaW1wbGU6Og0KIC4uID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCiANCiBjdHlwZXMgRW5oYW5jZW1lbnRzDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tDQogDQogVGhv bWFzIEhlbGxlciBjb250aW51ZWQgdG8gbWFpbnRhaW4gYW5kIGVuaGFuY2UgdGhlDQogOm1vZDpg Y3R5cGVzYCBtb2R1bGUuDQogDQotOm1vZDpgY3R5cGVzYCBub3cgc3VwcG9ydHMgYSA6Y2xhc3M6 YGNfYm9vbGAgZGF0YXR5cGUNCis6bW9kOmBjdHlwZXNgIG5vdyBzdXBwb3J0cyBhIDpjbGFzczpg fmN0eXBlcy5jX2Jvb2xgIGRhdGF0eXBlDQogdGhhdCByZXByZXNlbnRzIHRoZSBDOTkgYGBib29s YGAgdHlwZS4gIChDb250cmlidXRlZCBieSBEYXZpZCBSZW1haGw7DQogOmlzc3VlOmAxNjQ5MTkw YC4pDQogDQpAQCAtMjg2MywxMSArMjg3MiwxMSBAQCB3aGVyZSB2YXJpb3VzIGNvbWJpbmF0aW9u cyBvZiBgYChzdGFydCwgc3RvcCwgc3RlcClgYCBhcmUgc3VwcGxpZWQuDQogLi4gUmV2aXNpb24g NTc3NjkNCiANCiBBbGwgOm1vZDpgY3R5cGVzYCBkYXRhIHR5cGVzIG5vdyBzdXBwb3J0DQotOm1l dGg6YGZyb21fYnVmZmVyYCBhbmQgOm1ldGg6YGZyb21fYnVmZmVyX2NvcHlgDQorOm1ldGg6YH5j dHlwZXMuX0NEYXRhLmZyb21fYnVmZmVyYCBhbmQgOm1ldGg6YH5jdHlwZXMuX0NEYXRhLmZyb21f YnVmZmVyX2NvcHlgDQogbWV0aG9kcyB0aGF0IGNyZWF0ZSBhIGN0eXBlcyBpbnN0YW5jZSBiYXNl ZCBvbiBhDQotcHJvdmlkZWQgYnVmZmVyIG9iamVjdC4gIDptZXRoOmBmcm9tX2J1ZmZlcl9jb3B5 YCBjb3BpZXMNCitwcm92aWRlZCBidWZmZXIgb2JqZWN0LiAgOm1ldGg6YH5jdHlwZXMuX0NEYXRh LmZyb21fYnVmZmVyX2NvcHlgIGNvcGllcw0KIHRoZSBjb250ZW50cyBvZiB0aGUgb2JqZWN0LA0K LXdoaWxlIDptZXRoOmBmcm9tX2J1ZmZlcmAgd2lsbCBzaGFyZSB0aGUgc2FtZSBtZW1vcnkgYXJl YS4NCit3aGlsZSA6bWV0aDpgfmN0eXBlcy5fQ0RhdGEuZnJvbV9idWZmZXJgIHdpbGwgc2hhcmUg dGhlIHNhbWUgbWVtb3J5IGFyZWEuDQogDQogQSBuZXcgY2FsbGluZyBjb252ZW50aW9uIHRlbGxz IDptb2Q6YGN0eXBlc2AgdG8gY2xlYXIgdGhlIGBgZXJybm9gYCBvcg0KIFdpbjMyIExhc3RFcnJv ciB2YXJpYWJsZXMgYXQgdGhlIG91dHNldCBvZiBlYWNoIHdyYXBwZWQgY2FsbC4NCkBAIC0yODc1 LDI0ICsyODg0LDI0IEBAIFdpbjMyIExhc3RFcnJvciB2YXJpYWJsZXMgYXQgdGhlIG91dHNldCBv ZiBlYWNoIHdyYXBwZWQgY2FsbC4NCiANCiBZb3UgY2FuIG5vdyByZXRyaWV2ZSB0aGUgVW5peCBg YGVycm5vYGAgdmFyaWFibGUgYWZ0ZXIgYSBmdW5jdGlvbg0KIGNhbGwuICBXaGVuIGNyZWF0aW5n IGEgd3JhcHBlZCBmdW5jdGlvbiwgeW91IGNhbiBzdXBwbHkNCi1gYHVzZV9lcnJubz1UcnVlYGAg YXMgYSBrZXl3b3JkIHBhcmFtZXRlciB0byB0aGUgOmZ1bmM6YERMTGAgZnVuY3Rpb24NCi1hbmQg dGhlbiBjYWxsIHRoZSBtb2R1bGUtbGV2ZWwgbWV0aG9kcyA6bWV0aDpgc2V0X2Vycm5vYCBhbmQN Ci06bWV0aDpgZ2V0X2Vycm5vYCB0byBzZXQgYW5kIHJldHJpZXZlIHRoZSBlcnJvciB2YWx1ZS4N CitgYHVzZV9lcnJubz1UcnVlYGAgYXMgYSBrZXl3b3JkIHBhcmFtZXRlciB0byB0aGUgYGBETExg YCBmdW5jdGlvbg0KK2FuZCB0aGVuIGNhbGwgdGhlIG1vZHVsZS1sZXZlbCBtZXRob2RzIDpmdW5j OmB+Y3R5cGVzLnNldF9lcnJub2AgYW5kDQorOmZ1bmM6YH5jdHlwZXMuZ2V0X2Vycm5vYCB0byBz ZXQgYW5kIHJldHJpZXZlIHRoZSBlcnJvciB2YWx1ZS4NCiANCiBUaGUgV2luMzIgTGFzdEVycm9y IHZhcmlhYmxlIGlzIHNpbWlsYXJseSBzdXBwb3J0ZWQgYnkNCi10aGUgOmZ1bmM6YERMTGAsIDpm dW5jOmBPbGVETExgLCBhbmQgOmZ1bmM6YFdpbkRMTGAgZnVuY3Rpb25zLg0KK3RoZSBgYERMTGBg LCA6ZnVuYzpgfmN0eXBlcy5PbGVETExgLCBhbmQgOmZ1bmM6YH5jdHlwZXMuV2luRExMYCBmdW5j dGlvbnMuDQogWW91IHN1cHBseSBgYHVzZV9sYXN0X2Vycm9yPVRydWVgYCBhcyBhIGtleXdvcmQg cGFyYW1ldGVyDQotYW5kIHRoZW4gY2FsbCB0aGUgbW9kdWxlLWxldmVsIG1ldGhvZHMgOm1ldGg6 YHNldF9sYXN0X2Vycm9yYA0KLWFuZCA6bWV0aDpgZ2V0X2xhc3RfZXJyb3JgLg0KK2FuZCB0aGVu IGNhbGwgdGhlIG1vZHVsZS1sZXZlbCBtZXRob2RzIDpmdW5jOmB+Y3R5cGVzLnNldF9sYXN0X2Vy cm9yYA0KK2FuZCA6ZnVuYzpgfmN0eXBlcy5nZXRfbGFzdF9lcnJvcmAuDQogDQotVGhlIDpmdW5j OmBieXJlZmAgZnVuY3Rpb24sIHVzZWQgdG8gcmV0cmlldmUgYSBwb2ludGVyIHRvIGEgY3R5cGVz DQorVGhlIDpmdW5jOmB+Y3R5cGVzLmJ5cmVmYCBmdW5jdGlvbiwgdXNlZCB0byByZXRyaWV2ZSBh IHBvaW50ZXIgdG8gYSBjdHlwZXMNCiBpbnN0YW5jZSwgbm93IGhhcyBhbiBvcHRpb25hbCAqb2Zm c2V0KiBwYXJhbWV0ZXIgdGhhdCBpcyBhIGJ5dGUNCiBjb3VudCB0aGF0IHdpbGwgYmUgYWRkZWQg dG8gdGhlIHJldHVybmVkIHBvaW50ZXIuDQogDQogLi4gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0KIEltcHJv dmVkIFNTTCBTdXBwb3J0DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KIEJpbGwgSmFuc3NlbiBtYWRl IGV4dGVuc2l2ZSBpbXByb3ZlbWVudHMgdG8gUHl0aG9uIDIuNidzIHN1cHBvcnQgZm9yDQogdGhl IFNlY3VyZSBTb2NrZXRzIExheWVyIGJ5IGFkZGluZyBhIG5ldyBtb2R1bGUsIDptb2Q6YHNzbGAs IHRoYXQncw0KQEAgLTI5MDQsOSArMjkxMyw5IEBAIGluIHRoZSA6bW9kOmBzb2NrZXRgIG1vZHVs ZSBoYXNuJ3QgYmVlbiByZW1vdmVkIGFuZCBjb250aW51ZXMgdG8gd29yaywNCiB0aG91Z2ggaXQg d2lsbCBiZSByZW1vdmVkIGluIFB5dGhvbiAzLjAuDQogDQogVG8gdXNlIHRoZSBuZXcgbW9kdWxl LCB5b3UgbXVzdCBmaXJzdCBjcmVhdGUgYSBUQ1AgY29ubmVjdGlvbiBpbiB0aGUNCi11c3VhbCB3 YXkgYW5kIHRoZW4gcGFzcyBpdCB0byB0aGUgOmZ1bmM6YHNzbC53cmFwX3NvY2tldGAgZnVuY3Rp b24uDQordXN1YWwgd2F5IGFuZCB0aGVuIHBhc3MgaXQgdG8gdGhlIDpmdW5jOmAhc3NsLndyYXBf c29ja2V0YCBmdW5jdGlvbi4NCiBJdCdzIHBvc3NpYmxlIHRvIHNwZWNpZnkgd2hldGhlciBhIGNl cnRpZmljYXRlIGlzIHJlcXVpcmVkLCBhbmQgdG8NCi1vYnRhaW4gY2VydGlmaWNhdGUgaW5mbyBi eSBjYWxsaW5nIHRoZSA6bWV0aDpgZ2V0cGVlcmNlcnRgIG1ldGhvZC4NCitvYnRhaW4gY2VydGlm aWNhdGUgaW5mbyBieSBjYWxsaW5nIHRoZSA6bWV0aDpgfnNzbC5TU0xTb2NrZXQuZ2V0cGVlcmNl cnRgIG1ldGhvZC4NCiANCiAuLiBzZWVhbHNvOjoNCiANCkBAIC0zMDMyLDcgKzMwNDEsNyBAQCBD aGFuZ2VzIHRvIFB5dGhvbidzIGJ1aWxkIHByb2Nlc3MgYW5kIHRvIHRoZSBDIEFQSSBpbmNsdWRl Og0KIA0KICogVGhlIEJlcmtlbGV5REIgbW9kdWxlIG5vdyBoYXMgYSBDIEFQSSBvYmplY3QsIGF2 YWlsYWJsZSBhcw0KICAgYGBic2RkYi5kYi5hcGlgYC4gICBUaGlzIG9iamVjdCBjYW4gYmUgdXNl ZCBieSBvdGhlciBDIGV4dGVuc2lvbnMNCi0gIHRoYXQgd2lzaCB0byB1c2UgdGhlIDptb2Q6YGJz ZGRiYCBtb2R1bGUgZm9yIHRoZWlyIG93biBwdXJwb3Nlcy4NCisgIHRoYXQgd2lzaCB0byB1c2Ug dGhlIDptb2Q6YCFic2RkYmAgbW9kdWxlIGZvciB0aGVpciBvd24gcHVycG9zZXMuDQogICAoQ29u dHJpYnV0ZWQgYnkgRHVuY2FuIEdyaXNieS4pDQogDQogKiBUaGUgbmV3IGJ1ZmZlciBpbnRlcmZh Y2UsIHByZXZpb3VzbHkgZGVzY3JpYmVkIGluDQpAQCAtMzA3NCw3ICszMDgzLDcgQEAgQ2hhbmdl cyB0byBQeXRob24ncyBidWlsZCBwcm9jZXNzIGFuZCB0byB0aGUgQyBBUEkgaW5jbHVkZToNCiAN CiAqIEMgZnVuY3Rpb25zIGFuZCBtZXRob2RzIHRoYXQgdXNlDQogICA6YzpmdW5jOmBQeUNvbXBs ZXhfQXNDQ29tcGxleGAgd2lsbCBub3cgYWNjZXB0IGFyZ3VtZW50cyB0aGF0DQotICBoYXZlIGEg Om1ldGg6YF9fY29tcGxleF9fYCBtZXRob2QuICBJbiBwYXJ0aWN1bGFyLCB0aGUgZnVuY3Rpb25z IGluIHRoZQ0KKyAgaGF2ZSBhIDptZXRoOmB+b2JqZWN0Ll9fY29tcGxleF9fYCBtZXRob2QuICBJ biBwYXJ0aWN1bGFyLCB0aGUgZnVuY3Rpb25zIGluIHRoZQ0KICAgOm1vZDpgY21hdGhgIG1vZHVs ZSB3aWxsIG5vdyBhY2NlcHQgb2JqZWN0cyB3aXRoIHRoaXMgbWV0aG9kLg0KICAgVGhpcyBpcyBh IGJhY2twb3J0IG9mIGEgUHl0aG9uIDMuMCBjaGFuZ2UuDQogICAoQ29udHJpYnV0ZWQgYnkgTWFy ayBEaWNraW5zb247IDppc3N1ZTpgMTY3NTQyM2AuKQ0KQEAgLTMxMjcsNyArMzEzNiw3IEBAIENo YW5nZXMgdG8gUHl0aG9uJ3MgYnVpbGQgcHJvY2VzcyBhbmQgdG8gdGhlIEMgQVBJIGluY2x1ZGU6 DQogLi4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KIA0KIFBvcnQtU3BlY2lmaWMgQ2hhbmdlczogV2luZG93cw0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQogDQogKiBUaGUgc3VwcG9ydCBmb3IgV2luZG93cyA5NSwgOTgsIE1FIGFu ZCBOVDQgaGFzIGJlZW4gZHJvcHBlZC4NCiAgIFB5dGhvbiAyLjYgcmVxdWlyZXMgYXQgbGVhc3Qg V2luZG93cyAyMDAwIFNQNC4NCkBAIC0zMTUzLDcgKzMxNjIsNyBAQCBQb3J0LVNwZWNpZmljIENo YW5nZXM6IFdpbmRvd3MNCiANCiAqIFRoZSA6bW9kOmBzb2NrZXRgIG1vZHVsZSdzIHNvY2tldCBv YmplY3RzIG5vdyBoYXZlIGFuDQogICA6bWV0aDpgfnNvY2tldC5zb2NrZXQuaW9jdGxgIG1ldGhv ZCB0aGF0IHByb3ZpZGVzIGEgbGltaXRlZCBpbnRlcmZhY2UgdG8gdGhlDQotICA6YzpmdW5jOmBX U0FJb2N0bGAgc3lzdGVtIGludGVyZmFjZS4NCisgIDpjOmZ1bmM6YCFXU0FJb2N0bGAgc3lzdGVt IGludGVyZmFjZS4NCiANCiAqIFRoZSA6bW9kOmBfd2lucmVnIDx3aW5yZWc+YCBtb2R1bGUgbm93 IGhhcyBhIGZ1bmN0aW9uLA0KICAgOmZ1bmM6YH53aW5yZWcuRXhwYW5kRW52aXJvbm1lbnRTdHJp bmdzYCwNCkBAIC0zMTc2LDcgKzMxODUsNyBAQCBQb3J0LVNwZWNpZmljIENoYW5nZXM6IFdpbmRv d3MNCiAuLiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQogDQogUG9ydC1TcGVjaWZpYyBDaGFuZ2VzOiBNYWMgT1Mg WA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KIA0KICogV2hlbiBjb21waWxpbmcgYSBmcmFtZXdvcmsgYnVpbGQg b2YgUHl0aG9uLCB5b3UgY2FuIG5vdyBzcGVjaWZ5IHRoZQ0KICAgZnJhbWV3b3JrIG5hbWUgdG8g YmUgdXNlZCBieSBwcm92aWRpbmcgdGhlDQpAQCAtMzIzMCw3ICszMjM5LDcgQEAgUG9ydC1TcGVj aWZpYyBDaGFuZ2VzOiBNYWMgT1MgWA0KIC4uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiANCiBQb3J0LVNwZWNp ZmljIENoYW5nZXM6IElSSVgNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIA0KIEEgbnVtYmVyIG9mIG9sZCBJUklYLXNw ZWNpZmljIG1vZHVsZXMgd2VyZSBkZXByZWNhdGVkIGFuZCB3aWxsDQogYmUgcmVtb3ZlZCBpbiBQ eXRob24gMy4wOg0KQEAgLTMyNzQsNyArMzI4Myw3IEBAIHRoYXQgbWF5IHJlcXVpcmUgY2hhbmdl cyB0byB5b3VyIGNvZGU6DQogKiBTdHJpbmcgZXhjZXB0aW9ucyBoYXZlIGJlZW4gcmVtb3ZlZC4g IEF0dGVtcHRpbmcgdG8gdXNlIHRoZW0gcmFpc2VzIGENCiAgIDpleGM6YFR5cGVFcnJvcmAuDQog DQotKiBUaGUgOm1ldGg6YF9faW5pdF9fYCBtZXRob2Qgb2YgOmNsYXNzOmBjb2xsZWN0aW9ucy5k ZXF1ZWANCisqIFRoZSA6bWV0aDpgIV9faW5pdF9fYCBtZXRob2Qgb2YgOmNsYXNzOmBjb2xsZWN0 aW9ucy5kZXF1ZWANCiAgIG5vdyBjbGVhcnMgYW55IGV4aXN0aW5nIGNvbnRlbnRzIG9mIHRoZSBk ZXF1ZQ0KICAgYmVmb3JlIGFkZGluZyBlbGVtZW50cyBmcm9tIHRoZSBpdGVyYWJsZS4gIFRoaXMg Y2hhbmdlIG1ha2VzIHRoZQ0KICAgYmVoYXZpb3IgbWF0Y2ggYGBsaXN0Ll9faW5pdF9fKClgYC4N CkBAIC0zMjgyLDE2ICszMjkxLDE2IEBAIHRoYXQgbWF5IHJlcXVpcmUgY2hhbmdlcyB0byB5b3Vy IGNvZGU6DQogKiA6bWV0aDpgb2JqZWN0Ll9faW5pdF9fYCBwcmV2aW91c2x5IGFjY2VwdGVkIGFy Yml0cmFyeSBhcmd1bWVudHMgYW5kDQogICBrZXl3b3JkIGFyZ3VtZW50cywgaWdub3JpbmcgdGhl bS4gIEluIFB5dGhvbiAyLjYsIHRoaXMgaXMgbm8gbG9uZ2VyDQogICBhbGxvd2VkIGFuZCB3aWxs IHJlc3VsdCBpbiBhIDpleGM6YFR5cGVFcnJvcmAuICBUaGlzIHdpbGwgYWZmZWN0DQotICA6bWV0 aDpgX19pbml0X19gIG1ldGhvZHMgdGhhdCBlbmQgdXAgY2FsbGluZyB0aGUgY29ycmVzcG9uZGlu Zw0KKyAgOm1ldGg6YCFfX2luaXRfX2AgbWV0aG9kcyB0aGF0IGVuZCB1cCBjYWxsaW5nIHRoZSBj b3JyZXNwb25kaW5nDQogICBtZXRob2Qgb24gOmNsYXNzOmBvYmplY3RgIChwZXJoYXBzIHRocm91 Z2ggdXNpbmcgOmZ1bmM6YHN1cGVyYCkuDQogICBTZWUgOmlzc3VlOmAxNjgzMzY4YCBmb3IgZGlz Y3Vzc2lvbi4NCiANCi0qIFRoZSA6Y2xhc3M6YERlY2ltYWxgIGNvbnN0cnVjdG9yIG5vdyBhY2Nl cHRzIGxlYWRpbmcgYW5kIHRyYWlsaW5nDQorKiBUaGUgOmNsYXNzOmB+ZGVjaW1hbC5EZWNpbWFs YCBjb25zdHJ1Y3RvciBub3cgYWNjZXB0cyBsZWFkaW5nIGFuZCB0cmFpbGluZw0KICAgd2hpdGVz cGFjZSB3aGVuIHBhc3NlZCBhIHN0cmluZy4gIFByZXZpb3VzbHkgaXQgd291bGQgcmFpc2UgYW4N Ci0gIDpleGM6YEludmFsaWRPcGVyYXRpb25gIGV4Y2VwdGlvbi4gIE9uIHRoZSBvdGhlciBoYW5k LCB0aGUNCi0gIDptZXRoOmBjcmVhdGVfZGVjaW1hbGAgbWV0aG9kIG9mIDpjbGFzczpgQ29udGV4 dGAgb2JqZWN0cyBub3cNCisgIDpleGM6YH5kZWNpbWFsLkludmFsaWRPcGVyYXRpb25gIGV4Y2Vw dGlvbi4gIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUNCisgIDptZXRoOmB+ZGVjaW1hbC5Db250ZXh0 LmNyZWF0ZV9kZWNpbWFsYCBtZXRob2Qgb2YgOmNsYXNzOmB+ZGVjaW1hbC5Db250ZXh0YCBvYmpl Y3RzIG5vdw0KICAgZXhwbGljaXRseSBkaXNhbGxvd3MgZXh0cmEgd2hpdGVzcGFjZSwgcmFpc2lu ZyBhDQotICA6ZXhjOmBDb252ZXJzaW9uU3ludGF4YCBleGNlcHRpb24uDQorICA6ZXhjOmAhQ29u dmVyc2lvblN5bnRheGAgZXhjZXB0aW9uLg0KIA0KICogRHVlIHRvIGFuIGltcGxlbWVudGF0aW9u IGFjY2lkZW50LCBpZiB5b3UgcGFzc2VkIGEgZmlsZSBwYXRoIHRvDQogICB0aGUgYnVpbHQtaW4g IDpmdW5jOmBfX2ltcG9ydF9fYCBmdW5jdGlvbiwgaXQgd291bGQgYWN0dWFsbHkgaW1wb3J0DQpA QCAtMzMwOSwxNCArMzMxOCwxNCBAQCB0aGF0IG1heSByZXF1aXJlIGNoYW5nZXMgdG8geW91ciBj b2RlOg0KIA0KICogVGhlIDptb2Q6YHNvY2tldGAgbW9kdWxlIGV4Y2VwdGlvbiA6ZXhjOmBzb2Nr ZXQuZXJyb3JgIG5vdyBpbmhlcml0cw0KICAgZnJvbSA6ZXhjOmBJT0Vycm9yYC4gIFByZXZpb3Vz bHkgaXQgd2Fzbid0IGEgc3ViY2xhc3Mgb2YNCi0gIDpleGM6YFN0YW5kYXJkRXJyb3JgIGJ1dCBu b3cgaXQgaXMsIHRocm91Z2ggOmV4YzpgSU9FcnJvcmAuDQorICA6ZXhjOmAhU3RhbmRhcmRFcnJv cmAgYnV0IG5vdyBpdCBpcywgdGhyb3VnaCA6ZXhjOmBJT0Vycm9yYC4NCiAgIChJbXBsZW1lbnRl ZCBieSBHcmVnb3J5IFAuIFNtaXRoOyA6aXNzdWU6YDE3MDY4MTVgLikNCiANCiAqIFRoZSA6bW9k OmB4bWxycGNsaWIgPHhtbHJwYy5jbGllbnQ+YCBtb2R1bGUgbm8gbG9uZ2VyIGF1dG9tYXRpY2Fs bHkgY29udmVydHMNCiAgIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZWAgYW5kIDpjbGFzczpgZGF0ZXRp bWUudGltZWAgdG8gdGhlDQogICA6Y2xhc3M6YHhtbHJwY2xpYi5EYXRlVGltZSA8eG1scnBjLmNs aWVudC5EYXRlVGltZT5gIHR5cGU7IHRoZSBjb252ZXJzaW9uIHNlbWFudGljcyB3ZXJlDQogICBu b3QgbmVjZXNzYXJpbHkgY29ycmVjdCBmb3IgYWxsIGFwcGxpY2F0aW9ucy4gIENvZGUgdXNpbmcN Ci0gIDptb2Q6YCF4bWxycGNsaWJgIHNob3VsZCBjb252ZXJ0IDpjbGFzczpgZGF0ZWAgYW5kIDpj bGFzczpgfmRhdGV0aW1lLnRpbWVgDQorICA6bW9kOmAheG1scnBjbGliYCBzaG91bGQgY29udmVy dCA6Y2xhc3M6YH5kYXRldGltZS5kYXRlYCBhbmQgOmNsYXNzOmB+ZGF0ZXRpbWUudGltZWANCiAg IGluc3RhbmNlcy4gKDppc3N1ZTpgMTMzMDUzOGApDQogDQogKiAoMy4wLXdhcm5pbmcgbW9kZSkg VGhlIDpjbGFzczpgRXhjZXB0aW9uYCBjbGFzcyBub3cgd2FybnMNCg0KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KUHl0aG9uLWNoZWNraW5zIG1haWxpbmcg bGlzdCAtLSBweXRob24tY2hlY2tpbnNAcHl0aG9uLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFu IGVtYWlsIHRvIHB5dGhvbi1jaGVja2lucy1sZWF2ZUBweXRob24ub3JnCmh0dHBzOi8vbWFpbC5w eXRob24ub3JnL21haWxtYW4zLy9saXN0cy9weXRob24tY2hlY2tpbnMucHl0aG9uLm9yZwpNZW1i ZXIgYWRkcmVzczogcHl0aG9uLXB5dGhvbi1jaGVja2luc0BtLmdtYW5lLW14Lm9yZwo=