[qt/clang/llvm]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]> Wed, 5 Aug 2026 00:12:21 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
R2l0IHJlcG9zaXRvcnkgY2hhbmdlIHN1bW1hcnkgZm9yIHF0L2NsYW5nL2xsdm0KUHVzaGVkIGJ5 IG1pcnJvci1zZXJ2aWNlIGludG8gYnJhbmNoICd1cHN0cmVhbS9tYWluJy4KQ2hhbmdlZCBmcm9t IDk1OGE5YmIyOTk1OGJlZjE4NjZhMThkNGJkZTBjNGU3YWFiZTFhYzcgdG8gZDc1NzViYzVlNzJi ZjE1ZGFiYjlmNTc4MmE2MjllMjExYmY0OTE0YQpBY2tub3dsZWRnZW1lbnQgd2FzIHJlY2VpdmVk IHRoYXQgdGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBvbmx5IGV4aXN0aW5nIGNvZGUgdGhhdCBoYXMg YmVlbiBwdXNoZWQgdG8gYW5vdGhlciBwdWJsaWMgb3BlbiBzb3VyY2UgcmVwb3NpdG9yeS4KClRo aXMgY2hhbmdlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgbmV3IGNvbW1pdHM6CgpHaXQgY29tbWl0 IDc2MDljYjgzYmY1ZmM1YzI1ZTI4Nzc3MGRiMjc3ZGJiMzRlNjc0YjggYnkgR2l0SHViIChvbiBi ZWhhbGYgb2YgRmlubiBQbHVtbWVyKSBvbiAwNC8wOC8yMDI2IGF0IDE3OjMzLi4KW0RpcmVjdFhd IFByZXZlbnQgYGR4aWwtcmVzb3VyY2UtYWNjZXNzYCBmcm9tIGluc2VydGluZyBhIHJlc291cmNl IGFjY2VzcyBpbi1iZXR3ZWVuIHBoaSBub2RlcyAoIzIxMTM0MykKClRoZSBwYXNzIGNhbiBpbmNv cnJlY3RseSBwbGFjZSBhIGxvYWQvc3RvcmUgd2l0aGluIHRoZSBwaGkgbm9kZXMgYXQgdG9wCm9m IHRoZSBiYXNpYyBibG9jazogaHR0cHM6Ly9nb2Rib2x0Lm9yZy96L3g1RWM0R1dHVAoKVGhpcyBp cyByZXNvbHZlZCBieSB1cGRhdGluZyBgcmVwbGFjZUhhbmRsZVdpdGhJbmRpY2VzYCB0byBhZGp1 c3QgdGhlCmluc2VydGlvbiBwb2ludCB3aGVuIHRoZSBwdHIgY29tZXMgZnJvbSBhIHBoaSBub2Rl LgoKUmVzb2x2ZXMsIGluIHBhcnQsIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVj dC9pc3N1ZXMvMjExMTIxCgpBc3Npc3RlZCBieTogQ2xhdWRlIE9wdXMgNC44Cmh0dHBzOi8vaW52 ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC83NjA5Y2I4M2JmNWZjNWMyNWUyODc3 NzBkYjI3N2RiYjM0ZTY3NGI4CgpHaXQgY29tbWl0IDUzODJmN2Q2NGZmNTlkMTk4MDkxZmZkMjYz ZDdhZGVjZjVkN2RkNWEgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQmVuamFtaW4gTWF4d2VsbCkg b24gMDQvMDgvMjAyNiBhdCAxNzo0OC4uCltDb3N0TW9kZWxdW0FBcmNoNjRdIEFkZCBpbml0aWFs IGNvc3RzIGZvciBgbWFza2VkLmNvbXByZXNzc3RvcmVgICgjMjEzNzEyKQoKVGhpcyBhZGRzIGFu IGluaXRpYWwgY29zdCBtb2RlbCBmb3IgYG1hc2tlZC5jb21wcmVzc3N0b3JlYC4gVGhlIHRlc3Rz CmFyZSBiYXNlZCBvbiBgbWFza2VkX2V4cGFuZF9sb2FkLmxsYCwgd2hpY2ggY292ZXJzIGFsbCBj b25maWd1cmF0aW9ucwpmb3IgdGhlIGBleHBhbmRgL2Bjb21wYWN0YCBpbnN0cnVjdGlvbnMuCgpO b3RlOiBSaWdodCBub3csIHdlIG9ubHkgcmVwb3J0IHZhbGlkIGNvc3RzIGZvciBgbWFza2VkLmNv bXByZXNzc3RvcmVgCm9wZXJhdGlvbnMgdGhhdCBjYW4gYmUgbG93ZXJlZCB3aXRoIFNWRTEgKGFz IHRoYXQncyBhbGwgd2UgaGFuZGxlIElTRUwKZm9yIGF0IHRoZSBtb21lbnQpLgpodHRwczovL2lu dmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvNTM4MmY3ZDY0ZmY1OWQxOTgwOTFm ZmQyNjNkN2FkZWNmNWQ3ZGQ1YQoKR2l0IGNvbW1pdCBhZjE0NDU2YTJiYWM1NTAyNmIyZDU3Y2Jm MTRiMzkwNWM0NTJiOGE0IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIGFyc255ZGVyMTYpIG9uIDA0 LzA4LzIwMjYgYXQgMTc6NTIuLgpbT3Blbk1QXSBTaW1wbGlmeSBnZW5lcmljIG1pY3JvdGFzayBk aXNwYXRjaCAoIzIxNDAwNCkKClJlcGxhY2UgdGhlIGdlbmVyaWMgbWljcm90YXNrIGRpc3BhdGNo ZXIncyBoYW5kd3JpdHRlbiBmdW5jdGlvbi1wb2ludGVyCnR5cGVzIGFuZCBjYWxscyB3aXRoIGEg dmFyaWFkaWMtdGVtcGxhdGUgaGVscGVyIGFuZCBhIG1hY3JvIGZvciBlYWNoCnN1cHBvcnRlZCBh cmd1bWVudCBjb3VudC4KClRoZSBkaXNwYXRjaGVyIHN0aWxsIGNhc3RzIGVhY2ggbWljcm90YXNr IHRvIHRoZSBleGFjdCBmaXhlZC1hcml0eQpzaWduYXR1cmUgcmVxdWlyZWQgYnkgcGxhdGZvcm1z IHN1Y2ggYXMgV2ViQXNzZW1ibHkuIFRoaXMgaXMgaW50ZW5kZWQgYXMKYSByZWZhY3RvciBvbmx5 OiB0aGUgZXhpc3RpbmcgbGltaXQgb2YgMTUgbWljcm90YXNrIGFyZ3VtZW50cyBhbmQgdGhlCmRp YWdub3N0aWMgZm9yIGxhcmdlciBhcmd1bWVudCBjb3VudHMgcmVtYWluIHVuY2hhbmdlZC4KClRo aXMgcmVkdWNlcyB0aGUgcmVwZXRpdGl2ZSBjb2RlIGFuZCBtYWtlcyBmdXR1cmUgY2hhbmdlcyB0 byB0aGUKc3VwcG9ydGVkIGFyZ3VtZW50IHJhbmdlIGVhc2llciB0byByZXZpZXcuCgpTcGxpdCBv dXQgZnJvbSAjMjExMDcxCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2Nv bW1pdC9hZjE0NDU2YTJiYWM1NTAyNmIyZDU3Y2JmMTRiMzkwNWM0NTJiOGE0CgpHaXQgY29tbWl0 IDJhMmFkZGUzNTkzNzY2N2RkOTNkYzU1OTRhYzVkNTI4NDJlMTE2ZDIgYnkgR2l0SHViIChvbiBi ZWhhbGYgb2YgQ2hpbm1heSBEZXNocGFuZGUpIG9uIDA0LzA4LzIwMjYgYXQgMTc6NTYuLgpbQU1E R1BVXVtHSVNlbF0gQWRkIFJlZ0JhbmtMZWdhbGl6ZSBydWxlcyBmb3IgbGx2bS5hbWRnY24uZmRv dDIuYmYxNi5iZjE2ICgjMjE0MDEzKQpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xs dm0vLS9jb21taXQvMmEyYWRkZTM1OTM3NjY3ZGQ5M2RjNTU5NGFjNWQ1Mjg0MmUxMTZkMgoKR2l0 IGNvbW1pdCA1MDA5NjIyOThkNjI0YTc0YWRlNThjMmFlYjY1MzEzZmIzMmRkYTVhIGJ5IEdpdEh1 YiAob24gYmVoYWxmIG9mIEFsZXhleSBCYXRhZXYpIG9uIDA0LzA4LzIwMjYgYXQgMTc6NTcuLgpb SW5zdENvbWJpbmVdRm9sZCBmY21wK3NlbGVjdCB0byBtaW4vbWF4IGlmIGl0cyB6ZXJvIHNpZ24g aXMgbWlzc2luZwoKTG9vayB0aHJvdWdoIHBoaXMsIGNoYWluZWQgc2VsZWN0cyBhbmQgdGhlIGxv b3AgYmFjayBlZGdlIHRvIHRoZQpzZWxlY3QgaXRzZWxmIGFuZCBmb2xkIGlmIG5vIHVzZSBjYW4g b2JzZXJ2ZSB0aGUgc2lnbiBvZiB6ZXJvIG9mIHRoZQpyZXN1bHQuIFRoaXMgcmVzdG9yZXMgdGhl IGZvbGQgZm9yIGxvb3AtY2FycmllZCBhbmQgdW5yb2xsZWQgcnVubmluZwptaW4vbWF4IHZhbHVl cyAoZmNzZWwgLT4gZm1pbm5tIG9uIEFBcmNoNjQpIGxvc3QgdG8gdGhlIHNpZ25lZCB6ZXJvCmhh bmRsaW5nIGZpeCBpbiBtYXRjaFNlbGVjdFBhdHRlcm4gKCMyMTAwNzcpLgoKUmV2aWV3ZXJzOiBu aWtpYywgZHRjeHp5dwoKUHVsbCBSZXF1ZXN0OiBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZt LXByb2plY3QvcHVsbC8yMTMxMzMKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZt Ly0vY29tbWl0LzUwMDk2MjI5OGQ2MjRhNzRhZGU1OGMyYWViNjUzMTNmYjMyZGRhNWEKCkdpdCBj b21taXQgNzBlY2M1YmI2MjE4N2NhNzBlNmZlNGU1NjNkYmQ2MGY4OGMyZTdhMCBieSBHaXRIdWIg KG9uIGJlaGFsZiBvZiBUaW11ciBHb2x1Ym92aWNoKSBvbiAwNC8wOC8yMDI2IGF0IDE3OjU4Li4K UmV2ZXJ0ICJbR2xvYmFsSVNlbF0gQ29tYmluZSBtZXJnZS11bm1lcmdlIHdpdGggbWl4ZWQgc2Nh bGFyIGFuZCB2ZWN0b3IgdHlwZXMiICgjMjE0MDEwKQoKUmV2ZXJ0cyBsbHZtL2xsdm0tcHJvamVj dCMyMTMwODYKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0Lzcw ZWNjNWJiNjIxODdjYTcwZTZmZTRlNTYzZGJkNjBmODhjMmU3YTAKCkdpdCBjb21taXQgNjMyNmYx NGNkYzEyYmFiZmRjNDM1OWY1ZGRkNGRmY2Q2NmI1M2YzMyBieSBHaXRIdWIgKG9uIGJlaGFsZiBv ZiBBZGFtIFNtaXRoKSBvbiAwNC8wOC8yMDI2IGF0IDE4OjAzLi4KW0NJUl0gTG93ZXIgdmFyaWFk aWMgY2FsbHMgaW4gQ2FsbENvbnZMb3dlcmluZyBmb3IgeDg2XzY0ICgjMjEzMzE1KQoKQ2FsbENv bnZMb3dlcmluZyBjbGFzc2lmaWVkIGVhY2ggZnVuY3Rpb24gb25jZSBmcm9tIGl0cyBkZWNsYXJl ZApzaWduYXR1cmUgYW5kIHJldXNlZCB0aGF0IGNsYXNzaWZpY2F0aW9uIGF0IGV2ZXJ5IGNhbGwg c2l0ZS4gQW4gYXJndW1lbnQKcGFzc2VkIHRocm91Z2ggYW4gZWxsaXBzaXMgaGFzIG5vIGVudHJ5 IGluIHRoZSBjYWxsZWUncyBwYXJhbWV0ZXIgbGlzdCwKc28gb24geDg2XzY0IGFuIGVsbGlwc2lz IGFyZ3VtZW50IHRoYXQgbmVlZGVkIGFuIGV4dGVuc2lvbiBhdHRyaWJ1dGUsIGEKcmVnaXN0ZXIg Y29lcmNpb24sIG9yIGEgYnl2YWwgc2xvdCB3YXMgZW1pdHRlZCB1bmNoYW5nZWQgd2hlbmV2ZXIg dGhlCmNhbGxlZSdzIGRlY2xhcmVkIHBhcmFtZXRlcnMgaGFwcGVuZWQgdG8gbmVlZCBubyByZXdy aXRlLCBhbmQgcmVwb3J0ZWQKTllJIHdoZW4gdGhleSBkaWQuCgpBbiBlbGxpcHNpcyBhcmd1bWVu dCBjb21wZXRlcyBmb3IgdGhlIHNhbWUgcmVnaXN0ZXJzIGFzIGEgZGVjbGFyZWQgb25lLApzbyB0 aGUgc2FtZSB0d28tZWlnaHRieXRlIHJlY29yZCBnb2VzIGluIGEgcmVnaXN0ZXIgcGFpciBlYXJs eSBpbiB0aGUKbGlzdCBhbmQgYnl2YWwgb25jZSB0aGUgaW50ZWdlciByZWdpc3RlcnMgYXJlIGdv bmUuIFZhcmlhZGljIGNhbGwgc2l0ZXMKdW5kZXIgdGhlIHg4Nl82NCBkcml2ZXIgYXJlIG5vdyBj bGFzc2lmaWVkIGZyb20gdGhlIGNhbGwncyBvd24gb3BlcmFuZAp0eXBlcywgYW5kIHRoZSBkZWNs YXJlZCBwYXJhbWV0ZXIgY291bnQgcmVhY2hlcwpgbGx2bTo6YWJpOjpGdW5jdGlvbkluZm86OmNy ZWF0ZWAgYXMgaXRzIGBOdW1SZXF1aXJlZGAgYXJndW1lbnQsIHdoaWNoCmlzIHdoYXQgbGV0cyB0 aGUgY2xhc3NpZmllciB0ZWxsIGEgbmFtZWQgYXJndW1lbnQgZnJvbSBvbmUgcGFzc2VkCnRocm91 Z2ggdGhlIGVsbGlwc2lzLiBUb2RheSB0aGF0IGZsYWcgb25seSBkZWNpZGVzIHdoZXRoZXIgYSBs YXJnZQp2ZWN0b3IgZ29lcyBpbiBhIHJlZ2lzdGVyLCBhbmQgdGhlIENJUiB0eXBlIGJyaWRnZSBh ZG1pdHMgbm8gdmVjdG9yCnR5cGVzLCBzbyB0aGUgYm91bmRhcnkgY2hhbmdlcyBubyBvdXRwdXQg eWV0LgoKYHByZXBlbmRJbmRpcmVjdENhbGxlZWAgYWxzbyByZWJ1aWx0IHRoZSBjYWxsZWUgcG9p bnRlcidzIHBvaW50ZWUKd2l0aG91dCBgaXNWYXJBcmdgLCBkcm9wcGluZyB0aGUgZWxsaXBzaXMg ZnJvbSBhIGxvd2VyZWQgaW5kaXJlY3QgY2FsbAphbmQgd2l0aCBpdCB0aGUgdmVjdG9yLXJlZ2lz dGVyIGNvdW50IHRoZSB4ODZfNjQgU3lzViBBQkkgcGFzc2VzIGluIEFMLgpBIHZvaWQgcmV0dXJu IGFuZCBhIHJldHVybiB0aGUgQUJJIGRyb3BzLCBzdWNoIGFzIGFuIGVtcHR5IHJlY29yZCwgYm90 aApjbGFzc2lmeSBhcyBgSWdub3JlYCB3aGlsZSBuZWVkaW5nIG9wcG9zaXRlIHRyZWF0bWVudCwg c28KYEZ1bmN0aW9uQ2xhc3NpZmljYXRpb25gIG5vdyByZWNvcmRzIHdoaWNoIG9uZSBpdCB3YXMg d2hlcmUgdGhlCmNsYXNzaWZpY2F0aW9uIGlzIHByb2R1Y2VkLiBgbmVlZHNSZXdyaXRlYCBtb3Zl cyBmcm9tIHRoZSBDSVIgcmV3cml0ZXIKdG8gYG1saXIvaW5jbHVkZS9tbGlyL0FCSS9BQklSZXdy aXRlQ29udGV4dC5oYCwgb3ZlciBhIG5ldyBwZXItYXJndW1lbnQKYGlzUGFzc1Rocm91Z2hgLCBz byB0aGUgcGFzcyBhbmQgdGhlIHJld3JpdGVyIHNoYXJlIG9uZSBkZWZpbml0aW9uLgoKVHdvIHRo aW5ncyBhcmUgbmV3bHkgZGlhZ25vc2VkIHJhdGhlciB0aGFuIG5ld2x5IGJyb2tlbi4gVGhlCm9w ZXJhbmQtY291bnQgY2hlY2sgbW92ZXMgYWhlYWQgb2YgdGhlIHBhc3MtdGhyb3VnaCBlYXJseSBy ZXR1cm4sIHNvIGEKY2FsbCB3aG9zZSBvcGVyYW5kIGNvdW50IGRpc2FncmVlcyB3aXRoIGEgYG5v X3Byb3RvYCBjYWxsZWUncwpkZWNsYXJhdGlvbiBpcyByZXBvcnRlZCBpbnN0ZWFkIG9mIGxvd2Vy ZWQgd2l0aCBvcGVyYW5kcyB0aGUKY2xhc3NpZmljYXRpb24gbmV2ZXIgY292ZXJlZC4gQW5kIHRo ZSBpbmRpcmVjdC1jYWxsIHdhbGsgdmlzaXRzCmBjaXI6OkNJUkNhbGxPcEludGVyZmFjZWAgcmF0 aGVyIHRoYW4gb25seSBgY2lyLmNhbGxgLCBzbyBhIHZhcmlhZGljCmluZGlyZWN0IGBjaXIudHJ5 X2NhbGxgIGlzIGFjY291bnRlZCBmb3IsIGFuZCBvbmUgdGhhdCBuZWVkcyBhIHJld3JpdGUKaXMg cmVwb3J0ZWQgaW5zdGVhZCBvZiBsZWZ0IGFzIHdyaXR0ZW4gd2hpbGUgdGhlIHNpZ25hdHVyZSBh cm91bmQgaXQgaXMKY29lcmNlZC4gQSBub24tdmFyaWFkaWMgaW5kaXJlY3QgYGNpci50cnlfY2Fs bGAgaXMgZmlsdGVyZWQgb3V0IHdoZXJlCnRoZSB3YWxrIGNvbGxlY3RzLCBzaW5jZSByZXdyaXRp bmcgb25lIGlzIHVuaW1wbGVtZW50ZWQgZWl0aGVyIHdheSBhbmQKdGhhdCBnYXAgaGFzIG5vdGhp bmcgdG8gZG8gd2l0aCB0aGUgZWxsaXBzaXMuIFJlcG9ydGVkIE5ZSTogdmFyaWFkaWMKaW5kaXJl Y3QgY2FsbHMgdGhhdCBuZWVkIGEgcmV3cml0ZSwgdmFyaWFkaWMgY2FsbHMgdW5kZXIgdGhlIG90 aGVyCmRyaXZlcnMsIGFuZCBhbiBlbGxpcHNpcyBhcmd1bWVudCB3aG9zZSBBQkkgY29lcmNpb24g dGhlIHR5cGUgYnJpZGdlCmNhbm5vdCByZXByZXNlbnQuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcv cXQvY2xhbmcvbGx2bS8tL2NvbW1pdC82MzI2ZjE0Y2RjMTJiYWJmZGM0MzU5ZjVkZGQ0ZGZjZDY2 YjUzZjMzCgpHaXQgY29tbWl0IGM5ZjJiYTIyODQ5ZTUwZGYxMjc3ZGI4MjI1YTY0MTBiYTlkZGNi NWUgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgU2FtIEVsbGlvdHQpIG9uIDA0LzA4LzIwMjYgYXQg MTg6MDkuLgpbUklTQ1ZdIEZpeCBYcWNpIEZ1c2lvbnMgd2l0aCBGcmFtZSBJbmRleGVzICgjMjEz ODE1KQoKUHJlLVJBLCB0aGUgQURESSBjYW4gY29udGFpbiBhIGZyYW1lIGluZGV4IHJhdGhlciB0 aGFuIGEgcmVnaXN0ZXIsIHdoaWNoCmNhdXNlcyBgZ2V0UmVnKClgIHRvIGFzc2VydC4gVGhlc2Ug d2VyZSBtaXNzaW5nIHRoZSBgQ2hlY2tJc1JlZ09wZXJhbmRgCnRoYXQgbW9zdCBvdGhlciBmdXNp b25zIGhhdmUuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC9j OWYyYmEyMjg0OWU1MGRmMTI3N2RiODIyNWE2NDEwYmE5ZGRjYjVlCgpHaXQgY29tbWl0IGNhZmQz NmJmY2U2NzY4MjE5M2MzZDVkYTU5MWIwNTFhNDYwZTUwZjYgYnkgR2l0SHViIChvbiBiZWhhbGYg b2YgRXJpY2ggS2VhbmUpIG9uIDA0LzA4LzIwMjYgYXQgMTg6MTEuLgpbTkZDXVtDSVJdIFByb3Bh Z2F0ZSBTeW1ib2xUYWJsZXMgYmV0dGVyICgjMjEzOTcyKQoKVGhpcyBjYW1lIHVwIGR1cmluZyBz ZWxmLWJ1aWxkLCB3ZSBhcmUgc3BlbmRpbmcgYSBsb3Qgb2YgdGltZSBpbiBzb21lCmNhc2VzIGxv b2tpbmcgdXAgdXNpbmcgdGhlIGdsb2JhbCBzeW1ib2wgdGFibGUsIHdoaWNoIGRvZXMgbm8gY2Fj aGluZy4KUHJldmlvdXNseSB3ZSdkIHByb3BhZ2F0ZWQgdGhpcyBpbiBhIGZldyBwbGFjZXMsIGJ1 dCB0aGlzIHBhdGNoIHJlbW92ZXMKYWxsIHVzZXMgb2YgU3ltYm9sVGFibGU6Omxvb2t1cCBhbmQg YWRkcyB0aGUgY2FjaGUgZXZlcnl3aGVyZS4KClRoaXMgaW52b2x2ZWQgY2hhbmdpbmcgdGhlIHRh YmxlZ2VuIHRvIGluY2x1ZGUgaXQgaW4gZWFjaCBvZiBvdXIKcmV3cml0ZXJzLCBwbHVzIHRoZSBD aXJBdHRyIGxvd2VyaW5nIGV2ZXJ5d2hlcmUuCgpUaGUgb25seSB0aGluZyB3ZSBoYXZlIHRvIHRh a2UgY2FyZSBvZiBpcyB0byBtYWtlIHN1cmUgd2UgaW52YWxpZGF0ZSB0aGUKY2FjaGUvdXBkYXRl IHRoZSBjYWNoZSB3aGVuZXZlciB3ZSBhZGQgc29tZXRoaW5nIHdpdGggYSBuYW1lIChzZWUKY3Jl YXRlTExWTUZ1bmNPcElmTm90RXhpc3QpLgoKVGhpcyBpcyBORkMsIGFzIGl0IGlzbid0IG9ic2Vy dmFibGUsIG90aGVyIHRoYW4gYmVpbmcgYSBidWlsZCB0aW1lCmltcHJvdmVtZW50LgpodHRwczov L2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvY2FmZDM2YmZjZTY3NjgyMTkz YzNkNWRhNTkxYjA1MWE0NjBlNTBmNgoKR2l0IGNvbW1pdCAxZjY5YTE2Mjg5NDc4YzlhN2IyY2Rh NWRmNGNkMTZkNjYwOWViMmMyIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIFNpbW9uIFBpbGdyaW0p IG9uIDA0LzA4LzIwMjYgYXQgMTg6MTUuLgpbQ29zdE1vZGVsXVtYODZdIGdldEFyaXRobWV0aWNS ZWR1Y3Rpb25Db3N0IC0gZW5zdXJlIHdlIHRlc3QgdGhlIHZYaTEgcmVkdWN0aW9ucyB0eXBlcyBi ZWZvcmUgbGVnYWxpc2F0aW9uICgjMjExMDQzKQoKUHJlLUFWWDUxMiB0aGVzZSB3aWxsIGJlIGxl Z2FsaXplZCB0byB3aWRlciB2ZWN0b3IgdHlwZXMgYW5kIG1pZ2h0IG1hdGNoCmFnYWluc3Qgb3Ro ZXIgcmVkdWN0aW9ucyB0YWJsZXMuCgpOb3RpY2VkIHdoaWxlIHdvcmtpbmcgb24gaW1wcm92aW5n IGxvZ2ljIHJlZHVjdGlvbnMsIGJ1dCBoaXQgYSBjYXNlCndpdGgvd2l0aG91dCBwb3BjbnQgZm9y IGJvb2wgc3VtIHJlZHVjdGlvbiBwYXR0ZXJucyAtIEkndmUgYWRkZWQgYSBBVlgyCnRlc3QgcGFz cyB0byBjaGVjayB0aGUgKGNvcnJlY3RlZCkgY29zdHMgYXJlIHN0aWxsIHdvcmtpbmcKaHR0cHM6 Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0LzFmNjlhMTYyODk0NzhjOWE3 YjJjZGE1ZGY0Y2QxNmQ2NjA5ZWIyYzIKCkdpdCBjb21taXQgMDhhODczOWFjODlhMjdjN2RiZDAz NDkyNjY2MTFjYTk0ODY2YWUyZiBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBOZXJpeHl6KSBvbiAw NC8wOC8yMDI2IGF0IDE4OjE2Li4KW2xsZGJdW1B5dGhvbl0gSW5saW5lIGBsbGRiX2l0ZXJgIGZv ciBiZXR0ZXIgdHlwZSBpbmZlcmVuY2UgKCMyMTQwMDApCgpDdXJyZW50bHksIHRoZSBgbGxkYl9p dGVyYCBoZWxwZXIgaXMgdXNlZCBmb3IgcHJvdmlkaW5nIGBfX2l0ZXJfX2AgaW4KdGhlIFB5dGhv biBiaW5kaW5nczoKYGBgcHl0aG9uCmRlZiBsbGRiX2l0ZXIob2JqLCBnZXRzaXplLCBnZXRlbGVt KToKICAgICIiIkEgZ2VuZXJhdG9yIGFkYXB0b3IgdG8gc3VwcG9ydCBpdGVyYXRpb24gZm9yIGxs ZGIgY29udGFpbmVyIG9iamVjdHMuIiIiCiAgICBzaXplID0gZ2V0YXR0cihvYmosIGdldHNpemUp CiAgICBlbGVtID0gZ2V0YXR0cihvYmosIGdldGVsZW0pCiAgICBmb3IgaSBpbiByYW5nZShzaXpl KCkpOgogICAgICAgIHlpZWxkIGVsZW0oaSkKYGBgCgpBIHR5cGUgY2hlY2tlciBvciBMU1AgY2Fu J3Qgc2VlIHRocm91Z2ggdGhpcyBmdW5jdGlvbi4gQ3VycmVudGx5LCB0aGF0J3MKbm8gcHJvYmxl bSwgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cgdGhlIHJldHVybiB0eXBlIG9mIGFueSBTd2lnIHdy YXBwZXIsCmJ1dCB3aGVuIHdlIGFkZCB0eXBlIGFubm90YXRpb25zIChob3BlZnVsbHkgd2l0aCBT d2lnIDQuNSBpbiAjMjEzNDYzKSwKYF9faXRlcl9fYCByZW1haW5zIHVudHlwZWQuIFNvIGl0ZXJh dGluZyB0aHJvdWdoIHRoZSB3cmFwcGVycyB3b24ndCBzaG93CnRoZSBjb3JyZWN0IHR5cGUuCgpB cyB0aGUgZnVuY3Rpb25hbGl0eSBpcyBmYWlybHkgc2ltcGxlLCBpdCdzIGVhc2llciB0byBpbmxp bmUgaXQuIFRoYXQncwp3aGF0IHRoaXMgUFIgZG9lcy4gVGhlbiBhIHR5cGUgY2hlY2tlciBjYW4g aW5mZXIgdGhlIHJldHVybiB0eXBlLgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xs dm0vLS9jb21taXQvMDhhODczOWFjODlhMjdjN2RiZDAzNDkyNjY2MTFjYTk0ODY2YWUyZgoKR2l0 IGNvbW1pdCBhYjRmMjEwYTMxMjdlM2JhMTc3MzgxODkxMTk0MTQ0ZjkyNzk4YmE2IGJ5IEdpdEh1 YiAob24gYmVoYWxmIG9mIE1hdHQgQXJzZW5hdWx0KSBvbiAwNC8wOC8yMDI2IGF0IDE4OjE3Li4K Y2xhbmc6IFJlcGxhY2UgSXMqT2ZmbG9hZEFyY2ggZnJlZSBmdW5jdGlvbnMgd2l0aCBPZmZsb2Fk QXJjaCBtZXRob2RzICgjMjEzMzYzKQpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xs dm0vLS9jb21taXQvYWI0ZjIxMGEzMTI3ZTNiYTE3NzM4MTg5MTE5NDE0NGY5Mjc5OGJhNgoKR2l0 IGNvbW1pdCBhOWE2ZWRiNTkzNWM5ZjQyYzU5MjgzNjYxMjM1NmJlYTU2ZTNjMDhiIGJ5IEdpdEh1 YiAob24gYmVoYWxmIG9mIEFsZXhleSBCYXRhZXYpIG9uIDA0LzA4LzIwMjYgYXQgMTg6MTguLgpb U0xQXVZlY3Rvcml6ZSBzaW5nbGUtdXNlciBpbnN0cnVjdGlvbnMgYXMgdGhlIGxhc3QtYXR0ZW1w dCBzZWVkcwoKSW5zdHJ1Y3Rpb25zIHdpdGggdGhlIHNpbmdsZSB1c2VyIGNvc3Qgb25lIGV4dHJh Y3QgcGVyIGxhbmUsIHNvIHRoZXkgYXJlCnZlY3Rvcml6ZWQgYWZ0ZXIgYWxsIG90aGVyIHJvb3Rz IGluIHRoZSBmdW5jdGlvbiBhcmUgZXhoYXVzdGVkLCBncm91cGVkIGJ5CnRoZSBrZXkvc3Via2V5 IHBhaXJzLiBMb2FkcywgYWRkcmVzc2VzLCBjb21wYXJlcyBhbmQgdGhlIG9wZXJhdGlvbnMsIGZv bGRlZAphd2F5IG9yIGNvbnRyYWN0ZWQgaW50byB0aGUgc2NhbGFyIEZNQSwgYXJlIGV4Y2x1ZGVk LiBUaGUgcmVqZWN0ZWQgYnVuZGxlcwphbmQgdGhlIG1lbWJlcnMgb2YgdGhlIHByaWNlZCBtaW5p bWFsIG5vZGVzIGFyZSBub3QgcmV0cmllZCwgdW5sZXNzIHRoZQp0cmVlIHdhcyBkcm9wcGVkIGJ5 IHRoZSByZXBhY2tpbmcgb3ZlcmhlYWQgcmF0aGVyIHRoYW4gYnkgdGhlIG1lbWJlcnMuCgpSZXZp ZXdlcnM6IGhpcmFkaXR5YSwgUktTaW1vbiwgYmFiYWJ1Y2sKClB1bGwgUmVxdWVzdDogaHR0cHM6 Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3B1bGwvMjEyNTc5Cmh0dHBzOi8vaW52ZW50 LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC9hOWE2ZWRiNTkzNWM5ZjQyYzU5MjgzNjYx MjM1NmJlYTU2ZTNjMDhiCgpHaXQgY29tbWl0IDQwMmM5ZjlhNzc2ZGMyMGQwM2UzM2M0NDdkODY2 MzRjNDg2YTU0MzQgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgSGVucnkgSmlhbmcpIG9uIDA0LzA4 LzIwMjYgYXQgMTg6MjMuLgpbTkZDXVtDdWRhXVt0ZXN0XSBGaXggQ0hFQ0stTk9UIHBhdHRlcm5z IG1hdGNoaW5nIHRoZSBidWlsZCBkaXJlY3RvcnkgKCMyMTM3OTkpCgpgY3VkYS1vbXAtdW5zdXBw b3J0ZWQtZGVidWctb3B0aW9ucy5jdWAncyBDT01NT04tTk9UOiAuLi58bGxkYnwuLi4gY2FuCm1h dGNoIGFnYWluc3QgdGhlIGJ1aWxkIGRpcmVjdG9yeSBwYXRoIHRoYXQgbWF5IGNvbnRhaW4gYGxs ZGJgIGluIHRoZQpwYXRobmFtZS4gQ2hhbmdlIHRoZSB0ZXN0IHRvIGNoZWNrIHRoZSBleGFjdCBj YzEgYXJndW1lbnRzLgoKcmRhcjovLzE4MzUwMTU1OApodHRwczovL2ludmVudC5rZGUub3JnL3F0 L2NsYW5nL2xsdm0vLS9jb21taXQvNDAyYzlmOWE3NzZkYzIwZDAzZTMzYzQ0N2Q4NjYzNGM0ODZh NTQzNAoKR2l0IGNvbW1pdCBmNTlkNmY1Zjg2NmI5NzQxMzUxMGZhMTE5MTQ0NjUxZmJiYmM3MTIz IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIFVzYW1hIEhhbWVlZCkgb24gMDQvMDgvMjAyNiBhdCAx ODo0OS4uCltjbGFuZ11bdGVzdF0gQWRkIHRlc3QgZm9yIHN0YWNrX3Byb3RlY3Rvcl9pZ25vcmUg aW4gc3lzdGVtIG1hY3JvcyAoIzIxMzc3MCkKCmQzMTg0YmM2YzZhOCAoIltjbGFuZ10gRG9uJ3Qg d2FybiBvbiBzdGFja19wcm90ZWN0b3JfaWdub3JlIGluIHN5c3RlbQptYWNyb3MiKSBhZGRlZCBT dXBwcmVzc0luU3lzdGVtTWFjcm8gdG8Kd2Fybl9zdGFja19wcm90ZWN0aW9uX2lnbm9yZV9hdHRy aWJ1dGUgYnV0IG9ubHkgYWRkZWQgYW4gTExWTSBDb2RlR2VuCnRlc3QgZm9yIHRoZSBzdGFjay1w cm90ZWN0b3IgbWV0YWRhdGEsIHNvIHRoZSBkaWFnbm9zdGljIGNoYW5nZSBpdHNlbGYKd2FzIHVu dGVzdGVkLgoKQWRkIGEgdGVzdCB1c2luZyB0aGUgc2VsZi1pbmNsdWRlIHN5c3RlbV9oZWFkZXIg aWRpb206IHRoZSBhdHRyaWJ1dGUKZnJvbSBhIHN5c3RlbSBoZWFkZXIgbWFjcm8gZG9lcyBub3Qg d2FybiB1bmRlciAtZnN0YWNrLXByb3RlY3Rvci1hbGwsCndoaWxlIG9uZSB3cml0dGVuIGluIHVz ZXIgY29kZSBzdGlsbCBkb2VzLgoKcmRhcjovLzE4Mzk2Mjk4NQpodHRwczovL2ludmVudC5rZGUu b3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvZjU5ZDZmNWY4NjZiOTc0MTM1MTBmYTExOTE0NDY1 MWZiYmJjNzEyMwoKR2l0IGNvbW1pdCA0Mzc2YjhkNjY5NjFkYjM2MDk0NWRiNDRhYmU1MTBkOWYx M2FiZjYxIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEFsZXhleSBCYXRhZXYpIG9uIDA0LzA4LzIw MjYgYXQgMTg6NTcuLgpbU0xQXUZsYXR0ZW4gYWRkL3N1YiBhbmQgZmFkZC9mc3ViIGNoYWlucyBp bnRvIG9uZSByZWFzc29jaWF0ZWQgbm9kZQoKQSBwZWVsZWQgc3VidHJhY3Qga2VlcHMgdGhlIGNv bHVtbiBzaWduIGZvciBpdHMgZmlyc3Qgb3BlcmFuZCBhbmQgZmxpcHMKaXQgZm9yIHRoZSBzZWNv bmQsIHNvIG1peGVkIGFkZC9zdWIgKGZhZGQvZnN1YiB3aXRoIHJlYXNzb2MpIGNoYWlucwpsaW5l YXJpemUgaW50byBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgb3BlcmFuZCBjb2x1bW5zIGNvbWJpbmlu ZyBhcwpzdW0ocG9zaXRpdmUpIC0gc3VtKG5lZ2F0aXZlKSwgd2l0aCBzdWJ0cmFoZW5kIGNvbHVt bnMgcmVvcmRlcmVkIGJ5CnZhbHVlIGZhbWlseS4gbnV3IGlzIG5vdyBhbHNvIGRyb3BwZWQgb24g bm9uLWV4YWN0IGNvbWJpbmVzIHdoZW4gYQpuZWdhdGVkIGxlYWYgZXhpc3RzLCBzaW5jZSBhIHJl Z3JvdXBlZCBzdWJ0cmFoZW5kIHN1bSBjYW4gZXhjZWVkIHRoZQpvcmlnaW5hbCBydW5uaW5nIHRv dGFsLgoKUmV2aWV3ZXJzOiBSS1NpbW9uLCBiYWJhYnVjaywgaGlyYWRpdHlhCgpQdWxsIFJlcXVl c3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9wdWxsLzIxMzU0NApodHRw czovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvNDM3NmI4ZDY2OTYxZGIz NjA5NDVkYjQ0YWJlNTEwZDlmMTNhYmY2MQoKR2l0IGNvbW1pdCBiMDdmYzhhNDRhYTZhYzAzZWM4 ZTBjNzliMDQxMzRiZGE4N2I1Mjc5IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEZvbGtlcnQgZGUg VnJpZXMpIG9uIDA0LzA4LzIwMjYgYXQgMTk6MDAuLgpbU1BBUkNdIERvIG5vdCB1c2UgdGhlIHVu aW1wIHN0cnVjdC1yZXR1cm4gY29udmVudGlvbiBmb3IgemVyby1zaXplZCB0eXBlcyAoIzIxMzcz MykKCkdDQyBoYXMgc3BlY2lhbCBoYW5kbGluZyBmb3IgYW4gYHNyZXRgIG9mIGEgemVyby1zaXpl ZCB0eXBlLCBtYXRjaCB0aGF0CmhhbmRsaW5nLgoKaHR0cHM6Ly9nb2Rib2x0Lm9yZy96L1RjcmFh bzdyVAoKSXQgc2VlbXMgdW5saWtlbHkgc29tZW9uZSBpcyBhY3R1YWxseSByZWx5aW5nIG9uIHRo aXMsIHNvIEkgaGF2ZW4ndAphZGRlZCB0aGUgYWJpIGNvbXBhdGliaWxpdHkgbG9naWMuIFJ1c3Qg aG93ZXZlciB1c2VzIHplcm8tc2l6ZWQgdHlwZXMKcXVpdGUgaGVhdmlseSwgc28gaGF2aW5nIHRo aXMgd29yayBjb3JyZWN0bHkgaXMgdXNlZnVsIHRoZXJlLgpodHRwczovL2ludmVudC5rZGUub3Jn L3F0L2NsYW5nL2xsdm0vLS9jb21taXQvYjA3ZmM4YTQ0YWE2YWMwM2VjOGUwYzc5YjA0MTM0YmRh ODdiNTI3OQoKR2l0IGNvbW1pdCA4Y2YzMjY4YjNhNjVlMTg2ZjEwNDEzOWEzZjUzZDA3ZGU4ZDUw MzJhIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEFuZHkgS2F5bG9yKSBvbiAwNC8wOC8yMDI2IGF0 IDE5OjEwLi4KW0NJUl1bQUFyY2g2NF0gVXNlIENJUidzIGZtYSBhbmQgc3FydCBmb3IgTmVvbiBi dWlsdGlucyAoIzIxMzgwMCkKClRoaXMgY2hhbmdlIHJlcGxhY2VzIHNvbWUgbG9jYXRpb25zIHdo ZXJlIHRoZSBOZW9uIGJ1aWx0aW4gaGFuZGxpbmcgd2FzCmNhbGxpbmcgTExWTSBpbnRyaW5zaWNz IGRpcmVjdGx5IGZvciBGTUEgYW5kIHNxcnQgb3BlcmF0aW9ucyByYXRoZXIgdGhhbgp1c2luZyB0 aGUgQ0lSIG9wZXJhdGlvbnMuIFVzaW5nIHRoZSBDSVIgb3BlcmF0aW9ucyB3aWxsIGJlIG5lY2Vz c2FyeSB0bwpnZXQgdGhlIGJlc3QgY29uc3RyYWluZWQgRlAgaGFuZGxpbmcuCgpUaGlzIHdpbGwg c3RpbGwgcmVxdWlyZSBzZXR0aW5nIHRoZSBmZW52IGF0dHJpYnV0ZSBvbiB0aGVzZSBvcGVyYXRp b25zCndoZW4gbmVlZGVkLiBUaGlzIGNoYW5nZSBpcyBqdXN0IHRoZSBmaXJzdCBvZiBhIGZldyBw cmVsaW1pbmFyeSBjaGFuZ2VzCm5lZWRlZCB0byBnZXQgdXMgaW4gYSBnb29kIHN0YXRlIHRvIGFk ZCB0aGUgY29uc3RyYWluZWQgRlAgaGFuZGxpbmcuCgpBc3Npc3RlZC1ieTogQ3Vyc29yIC8gR3Jv ayA0LjUKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0LzhjZjMy NjhiM2E2NWUxODZmMTA0MTM5YTNmNTNkMDdkZThkNTAzMmEKCkdpdCBjb21taXQgZDQ2Mjg1MjZi ZGQyYzhiZDAzYWNkY2JmMGY5ZDg3MTBlZjI0MzQ4NiBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBB bmR5IEtheWxvcikgb24gMDQvMDgvMjAyNiBhdCAxOToxNS4uCltDSVJdIEFwcGx5IEZQIGNvbnN0 cmFpbnRzIHRvIGdsb2JhbCBpbml0aWFsaXplcnMgKCMyMTM3NzYpCgpCZWNhdXNlIENJUiBoYW5k bGVzIGdsb2JhbCBpbml0aWFsaXplcnMgdXNpbmcgYSByZWdpb24gb2YgdGhlIGNpci5nbG9iYWwK b3BlcmF0aW9uIGR1cmluZyBpbml0aWFsIGNvZGUgZ2VuZXJhdGlvbiwgdGhlc2UgaW5pdGlhbGl6 ZXJzIGRvbid0CmF1dG9tYXRpY2FsbHkgZ2V0IHRoZSBzdHJpY3RmcCBzZXR1cCBpbiBDSVJHZW5G dW5jdGlvbjo6c3RhcnRGdW5jdGlvbi4KClRoaXMgY2hhbmdlIGFkZHMgYW4gYXR0cmlidXRlIHRv IHRoZSBjaXIuZ2xvYmFsIG9wZXJhdGlvbiB0byB0cmFjawpmbG9hdGluZy1wb2ludCBjb25zdHJh aW50cyBzbyB0aGF0IHRoZSBgc3RyaWN0ZnBgIGF0dHJpYnV0ZSBjYW4gYmUgc2V0Cm9uIHRoZSBp bml0aWFsaXphdGlvbiBmdW5jdGlvbiB3aGVuIGl0IGlzIGNyZWF0ZWQgZHVyaW5nIEVIQUJJIGxv d2VyaW5nLgoKQXNzaXN0ZWQtYnk6IEN1cnNvciAvIHZhcmlvdXMgbW9kZWxzCmh0dHBzOi8vaW52 ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC9kNDYyODUyNmJkZDJjOGJkMDNhY2Rj YmYwZjlkODcxMGVmMjQzNDg2CgpHaXQgY29tbWl0IDMyYjY0NWQ5ZDY5YjhjMmU2Mjg5MGZlZDE5 MjAzMzM3YmVkZGY3OTcgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgRXJpYyBDaHJpc3RvcGhlcikg b24gMDQvMDgvMjAyNiBhdCAxOToyMS4uCltEZWJ1Z0luZm9dIFRyZWF0IHRhZyBvZmZzZXRzIGFz IG5vbi1lbWl0dGluZyAoIzIxMTk2OSkKCkRXX09QX0xMVk1fdGFnX29mZnNldCBkb2Vzbid0IGVt aXQgYW55dGhpbmcgaW50byB0aGUgRFdBUkYgZXhwcmVzc2lvbiwKc28gbG9vayBwYXN0IGl0IHdo ZW4gZGVjaWRpbmcgd2hldGhlciBhIHJlZ2lzdGVyIGV4cHJlc3Npb24gaXMgY29tcGxleApvciB3 aGV0aGVyIGFwcGVuZFRvU3RhY2sgbmVlZHMgdG8gYWRkIGEgZGVyZWZlcmVuY2UuCgpUZXN0ZWQg d2l0aCBtYWtlIGNoZWNrLgoKQXNzaXN0ZWQgd2l0aCBBSS4KaHR0cHM6Ly9pbnZlbnQua2RlLm9y Zy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0LzMyYjY0NWQ5ZDY5YjhjMmU2Mjg5MGZlZDE5MjAzMzM3 YmVkZGY3OTcKCkdpdCBjb21taXQgNzAyNTNhZjg3MDk2MTdiODYwODY1Y2U4ZDc0MjA0NzE4ZThh MTk3NSBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBWaXRhbHkgQnVrYSkgb24gMDQvMDgvMjAyNiBh dCAxOToyNy4uCltORkNdW2xpYkZ1enplcl0gUmVtb3ZlIHVudXNlZCBHZXRNb2R1bGVOYW1lIGhl bHBlciBpbiBUcmFjZVBDICgjMjE0MDMyKQoKRml4aW5nIGJ1aWxkIGJvdHMgYWZ0ZXIKaHR0cHM6 Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3B1bGwvMjAzMDg0LgpodHRwczovL2ludmVu dC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvNzAyNTNhZjg3MDk2MTdiODYwODY1Y2U4 ZDc0MjA0NzE4ZThhMTk3NQoKR2l0IGNvbW1pdCA3ZjQ5OGQ5ZDM2ZDEwMmE2NTMwODllODZjYzA3 ZDBhN2Y5MGJmYWVjIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIFFpb25nc2kgV3UpIG9uIDA0LzA4 LzIwMjYgYXQgMTk6MzguLgpbY2xhbmddW0RlcGVuZGVuY3lTY2FubmluZ10gVXNlIENvbXBpbGVy SW5zdGFuY2VXaXRoQ29udGV4dCBmb3IgVFUgU2Nhbm5pbmcgKCMyMTE0MDgpCgpBZnRlciBgQ29t cGlsZXJJbnN0YW5jZVdpdGhDb250ZXh0YCdzIHJlbG9jYXRpb24gdG8KYERlcGVuZGVuY3lTY2Fu bmluZ1dvcmtlci5jcHBgLCB3ZSBjYW4gdXNlIGl0IGZyZWVseSBhcyBhbgppbXBsZW1lbnRhdGlv biBlbmdpbmUgZm9yIFRVIHNjYW5uaW5nLiBUaGlzIFBSIGRvZXMgdGhhdCwgYW5kIHVuaWZpZXMK dGhlIGJ5LW5hbWUgc2Nhbm5pbmcgYW5kIFRVIHNjYW5uaW5nIHNvIHRoZXkgYWxsIGdvIHRocm91 Z2gKYENvbXBpbGVySW5zdGFuY2VXaXRoQ29udGV4dGAuCgpyZGFyOi8vMTY3MDM0MzA5CgoKCi0t LQoKPHN1Yj5TdGFjayBjcmVhdGVkIHdpdGggPGEKaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2dp dGh1Yi9naC1zdGFjayI+R2l0SHViIFN0YWNrcyBDTEk8L2E+IOKAoiA8YQpocmVmPSJodHRwczov L2doLmlvL3N0YWNrcy1mZWVkYmFjayI+R2l2ZSBGZWVkYmFjayDwn5KsPC9hPjwvc3ViPgpodHRw czovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvN2Y0OThkOWQzNmQxMDJh NjUzMDg5ZTg2Y2MwN2QwYTdmOTBiZmFlYwoKR2l0IGNvbW1pdCAwNDcyMmE0YTMyZTZmZWMxODk3 Y2MzY2I1YTU0ODA5ZmNkOGM5Y2FlIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIFFpb25nc2kgV3Up IG9uIDA0LzA4LzIwMjYgYXQgMTk6MzguLgpbY2xhbmddW0RlcGVuZGVuY3lTY2FubmluZ10gRGlz c29sdmUgRGVwZW5kZW5jeVNjYW5uZXJJbXBsLmgvY3BwICgjMjExNDA5KQoKYERlcGVuZGVuY3lT Y2FubmVySW1wbC5oL2NwcGAgd2VyZSBjcmVhdGVkIHRvIHNoYXJlIGNvZGUgYmV0d2VlbiBUVQpz Y2FubmluZyBhbmQgYnktbmFtZSBzY2FubmluZyB3aGVuIHRoZXkgd2VyZSBvbiBkaWZmZXJlbnQg Y29kZSBwYXRocy4KQWZ0ZXIgdW5pZnlpbmcgdGhlIGltcGxlbWVudGF0aW9uIHRocm91Z2ggYENv bXBpbGVySW5zdGFuY2VXaXRoQ29udGV4dGAsCndlIG5vIGxvbmdlciBuZWVkIGEgc2VwYXJhdGUg aGVhZGVyL2NwcCBwYWlyIGFuZCBhbGwgdGhlIGNvZGUgYXJlIG1vdmVkCmludG8gYERlcGVuZGVu Y3lTY2FubmluZ1dvcmtlci5jcHBgLiBUaGlzIFBSIGlzIG1lY2huaWNhbCBhbmQgZG9lcyBub3QK aW50ZW5kIHRvIGludHJvZHVjZSBiZWhhdml2b3IgY2hhbmdlcy4KCi0tLQoKPHN1Yj5TdGFjayBj cmVhdGVkIHdpdGggPGEKaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9naC1zdGFjayI+ R2l0SHViIFN0YWNrcyBDTEk8L2E+IOKAoiA8YQpocmVmPSJodHRwczovL2doLmlvL3N0YWNrcy1m ZWVkYmFjayI+R2l2ZSBGZWVkYmFjayDwn5KsPC9hPjwvc3ViPgpodHRwczovL2ludmVudC5rZGUu b3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvMDQ3MjJhNGEzMmU2ZmVjMTg5N2NjM2NiNWE1NDgw OWZjZDhjOWNhZQoKR2l0IGNvbW1pdCBiM2NlMDdiOTk5OTAwMGU2ZmFkMWMzYWE4ZjQyOWUyZmYy NmI1OThmIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEFiaGluYSBTcmVlKSBvbiAwNC8wOC8yMDI2 IGF0IDE5OjQxLi4KW1N5c3RlbVpdW3ovT1NdIHVzZSBMTFZNX1RIUkVBRF9MT0NBTCBpbnN0ZWFk IG9mIHRocmVhZF9sb2NhbCAoIzIxNDAzOSkKClRoaXMgcGF0Y2ggaXMgdG8gZml4IHRoZSBmb2xs b3dpbmcgZXJyb3Igb24gei9PUwoKYGBgCmxsdm0vaW5jbHVkZS9sbHZtL1N1cHBvcnQvUGVyVGhy ZWFkQnVtcFB0ckFsbG9jYXRvci5oOjc1OjEyOiBlcnJvcjogdGhyZWFkLWxvY2FsIHN0b3JhZ2Ug aXMgbm90IHN1cHBvcnRlZCBmb3IgdGhlIGN1cnJlbnQgdGFyZ2V0CiAgIDc1IHwgICAgIHN0YXRp YyB0aHJlYWRfbG9jYWwgc3RkOjp2ZWN0b3I8QWxsb2NhdG9yVHkgKj4gQ2FjaGU7CiAgICAgIHwg ICAgICAgICAgICBeCmBgYApodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9j b21taXQvYjNjZTA3Yjk5OTkwMDBlNmZhZDFjM2FhOGY0MjllMmZmMjZiNTk4ZgoKR2l0IGNvbW1p dCBjZGRjMTA3ODk5YmRmMDllZTNmZmQ2MGIwMGIzMjQ1NWU2OTliMTMwIGJ5IEdpdEh1YiAob24g YmVoYWxmIG9mIEFyc2VuaXkgT2JvbGVuc2tpeSkgb24gMDQvMDgvMjAyNiBhdCAxOTo0OC4uCltB TURHUFVdIERvIG5vdCB3aWRlbiBjb25zdGFudCBsb2FkcyB0aGF0IG1heSBub3QgYmUgZGVyZWZl cmVuY2VhYmxlICgjMTg0NzkwKQpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0v LS9jb21taXQvY2RkYzEwNzg5OWJkZjA5ZWUzZmZkNjBiMDBiMzI0NTVlNjk5YjEzMAoKR2l0IGNv bW1pdCBkZWU3MGEwZmM5NDhjZTkwNjBmNDIyNWVlNWI3MDdhZjQyODdlNWRjIGJ5IEdpdEh1YiAo b24gYmVoYWxmIG9mIEFsZXhhbmRlciBSaWNoYXJkc29uKSBvbiAwNC8wOC8yMDI2IGF0IDE5OjU1 Li4KW1RhYmxlR2VuXSBHZW5lcmF0ZSBgZ2V0UmVnQ2xhc3NGcm9tTWF0Y2hLaW5kKClgIGZvciBB c21NYXRjaGVycwoKVGhpcyBoZWxwZXIgY2FuIGJlIHVzZWZ1bCBpbiB2YWxpZGF0ZVRhcmdldE9w ZXJhbmRDbGFzcyB0byBnZXQgdGhlCk1DUmVnaXN0ZXJDbGFzcyBmb3IgdGhlIE1DS18qIGVudW0u Ck1pZ3JhdGUgdGhlIFJWWSBsb2dpYyB0byB1c2UgdGhpcyBuZXcgZ2VuZXJhdGVkIGZ1bmN0aW9u LiBDaGVja2luZyBhbGwKcmVnaXN0ZXIgY2xhc3NlcyBpbnN0ZWFkIG9mIGp1c3QgdGhlIFJWWSBv bmVzIHdpbGwgbWFyZ2luYWxseSBzbG93IGRvd24KdmFsaWRhdGVUYXJnZXRPcGVyYW5kQ2xhc3Ms IGJ1dCBzaW5jZSB0aGlzIGlzIGFscmVhZHkgYSBzbG93IHBhdGggaXQKc2hvdWxkIG5vdCBtYXR0 ZXIuCgpJZiBtdWx0aXBsZSBSZWdpc3Rlck9wZXJhbmRzIHNoYXJlIGEgUGFyc2VyTWF0Y2hDbGFz cyBidXQgbWFwIHRvIGRpZmZlcmVudApSZWdpc3RlckNsYXNzZXMsIG9taXQgdGhlbSBmcm9tIHRo ZSBnZW5lcmF0ZWQgZ2V0UmVnQ2xhc3NGcm9tTWF0Y2hLaW5kCm1hcHBpbmcgZnVuY3Rpb24uIEkg b3JpZ2luYWxseSB0cmllZCB0byBlbWl0IGFuIGVycm9yIGhlcmUsIGJ1dCBpdCB0dXJucwpvdXQg dGhlcmUgYXJlIG1hbnkgdGFyZ2V0cyB0aGF0IHJlbHkgb24gc2hhcmluZyB0aGUgUGFyc2VyTWF0 Y2hDbGFzcyB3aXRoCmRpZmZlcmVudCAoYnV0IHNpbWlsYXIpIFJlZ2lzdGVyQ2xhc3NlcyBzbyBp Z25vcmluZyB0aGVtIGlzIHNhZmVyLgoKUmV2aWV3ZWQgQnk6IGxlbmFyeQoKUHVsbCBSZXF1ZXN0 OiBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvcHVsbC8yMDA0NTMKaHR0cHM6 Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0L2RlZTcwYTBmYzk0OGNlOTA2 MGY0MjI1ZWU1YjcwN2FmNDI4N2U1ZGMKCkdpdCBjb21taXQgMGQxYjU0NjA0ZGFjNzNhZGMxNmFm MTVmNDMzYWUwYzkyMDY5ZmNjMiBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBBbGV4YW5kZXIgUmlj aGFyZHNvbikgb24gMDQvMDgvMjAyNiBhdCAxOTo1Ny4uCltUYWJsZUdlbl1bQXNtTWF0Y2hlcl0g UmVzb2x2ZSBSZWdDbGFzc0J5SHdNb2RlIGtpbmRzIGZvciBhbGwgb3BlcmFuZHMKCnZhbGlkYXRl T3BlcmFuZENsYXNzKCkgb25seSByZW1hcHBlZCBhIFJlZ0NsYXNzQnlId01vZGUgb3BlcmFuZCBr aW5kCndoZW4gdGhlIGFjdHVhbCBwYXJzZWQgb3BlcmFuZCB3YXMgYSByZWdpc3Rlci4gV2hlbiB0 aGUgb3BlcmFuZCB3YXMKc29tZXRoaW5nIGVsc2UgZW50aXJlbHkgKGUuZy4gYSBiYXJlIGltbWVk aWF0ZSB3aGVyZSBhIHJlZ2lzdGVyIHdhcwpleHBlY3RlZCksIHRoaXMgZmVsbCB0aHJvdWdoIHRv IHRoZSBnZW5lcmljICJLaW5kIDw9IE1DS19MQVNUX1JFR0lTVEVSIgpkaWFnbm9zdGljIGNoZWNr LCBzbyB3ZSBlbmQgdXAgd2l0aCBhIGdlbmVyaWMgTWF0Y2hfSW52YWxpZE9wZXJhbmQuCgpObyB0 ZXN0IGNoYW5nZXMgaGVyZSwgYnV0IHRoaXMgaXMgbmVlZGVkIHRvIGF2b2lkIGRpYWdub3N0aWMg cmVncmVzc2lvbnMKd2l0aCB0aGUgUlZZIGxvYWQvc3RvcmUgc3VwcG9ydCAoUFIgIzE3NzA3Myku CgpQdWxsIFJlcXVlc3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9wdWxs LzIxMzQ3OQpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvMGQx YjU0NjA0ZGFjNzNhZGMxNmFmMTVmNDMzYWUwYzkyMDY5ZmNjMgoKR2l0IGNvbW1pdCBjNzQwYzU0 NTE3ZmFmZGZiNmEzZGQzNTIyNzAwMDc2ZDUxODRjODQyIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9m IEFiaGluYSBTcmVlKSBvbiAwNC8wOC8yMDI2IGF0IDE5OjU3Li4KW1N5c3RlbVpdW3ovT1NdIEFk ZCBndWFyZCBmb3IgU0lfVVNFUiAgKCMyMTMxMDEpCgpTSV9VU0VSIGlzIG5vdCBkZWZpbmVkIG9u IHovT1MgYW5kIGlzIGNhdXNpbmcgdGhlIGZvbGxvd2luZyBidWlsZApmYWlsdXJlLiBgZXJyb3I6 IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ1NJX1VTRVInYCAKVGhpcyBwYXRjaCBhZGRz IGEgZ3VhcmQgdG8gY2hlY2sgd2hldGhlciBTSV9VU0VSIGlzIGRlZmluZWQKYmVmb3JlIHVzaW5n IGl0LgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvYzc0MGM1 NDUxN2ZhZmRmYjZhM2RkMzUyMjcwMDA3NmQ1MTg0Yzg0MgoKR2l0IGNvbW1pdCA4MzQzYzUzOGYw ZTdlZGVlOGJmYzJjODAwZjZkMWJmYWVmNjY0YzEyIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIGZv cmtpbmctZ29vZ2xlLWJhemVsLWJvdFtib3RdKSBvbiAwNC8wOC8yMDI2IGF0IDIwOjA5Li4KW0Jh emVsXSBGaXhlcyAwNDcyMmE0ICgjMjE0MDQ5KQoKVGhpcyBmaXhlcyAwNDcyMmE0YTMyZTZmZWMx ODk3Y2MzY2I1YTU0ODA5ZmNkOGM5Y2FlICgjMjExNDA5KS4KCkJ1aWxka2l0ZSBlcnJvciBsaW5r OgpodHRwczovL2J1aWxka2l0ZS5jb20vbGx2bS1wcm9qZWN0L3Vwc3RyZWFtLWJhemVsL2J1aWxk cz9jb21taXQ9MDQ3MjJhNGEzMmU2ZmVjMTg5N2NjM2NiNWE1NDgwOWZjZDhjOWNhZQoKQ28tYXV0 aG9yZWQtYnk6IEdvb2dsZSBCYXplbCBCb3QgPGdvb2dsZS1iYXplbC1ib3RAZ29vZ2xlLmNvbT4K aHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0LzgzNDNjNTM4ZjBl N2VkZWU4YmZjMmM4MDBmNmQxYmZhZWY2NjRjMTIKCkdpdCBjb21taXQgNDRjNmFlZDliZDliOWNk YTk5M2Y0ZTkzZjJjYmRiNGZiYmE4OTBkMCBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBTcGVuY2Vy IEJyeW5nZWxzb24pIG9uIDA0LzA4LzIwMjYgYXQgMjA6MTUuLgpbZmxhbmddW09wZW5NUF0gRGlh Z25vc2UgZmFpbGVkIGNvbnN0cnVjdCBkZWNvbXBvc2l0aW9uIGluc3RlYWQgb2YgZmFsbGluZyB0 aHJvdWdoICgjMjE0MDEyKQoKYGJ1aWxkQ29uc3RydWN0UXVldWVgIGFzc2VydHMgdGhhdCBkZWNv bXBvc2l0aW9uIHByb2R1Y2VkIG91dHB1dDoKCmBgYGNwcApDb25zdHJ1Y3REZWNvbXBvc2l0aW9u IGRlY29tcG9zZShtb2RPcCwgc2VtYUN0eCwgZXZhbCwgY29tcG91bmQsIGNsYXVzZXMpOwphc3Nl cnQoIWRlY29tcG9zZS5vdXRwdXQuZW1wdHkoKSAmJiAiQ29uc3RydWN0IGRlY29tcG9zaXRpb24g ZmFpbGVkIik7CmBgYAoKUmVsZWFzZSBidWlsZHMgaGF2ZSBubyBjaGVjaywgc28gdGhlIGVtcHR5 IHF1ZXVlIGZhbGxzIHRocm91Z2ggdG8gdGhlCmxvb3AgYmVsb3cgYW5kIG91dCB0byB0aGUKY2Fs bGVyLiBUaGF0IGlzIHVuZGVmaW5lZCBiZWhhdmlvdXIsIGFuZCBpdCBpcyByZWFjaGFibGUg4oCU IHNlbWFudGljcwpkb2VzIG5vdCBjYXRjaCBldmVyeQpkaXJlY3RpdmUvY2xhdXNlIGNvbWJpbmF0 aW9uIHRoYXQgY2Fubm90IGJlIGRlY29tcG9zZWQuIFRoZSByZXN1bHQgaXMgYW4KaW50ZXJtaXR0 ZW50IHNlZ2ZhdWx0CnJhdGhlciB0aGFuIGEgZGlhZ25vc3RpYy4KCiMyMTE0MzAgaXMgb25lIHdh eSBpbjogYGFsbG9jYXRlYCBpcyBhbiBPcGVuTVAgNS4wIGNsYXVzZSwgYnV0IG1vc3QKZGlyZWN0 aXZlcyBkZWNsYXJlIGl0IGluCmBPTVAudGRgIHdpdGhvdXQgYSBtaW5pbXVtIHZlcnNpb24sIHNv IHNlbWFudGljcyBhY2NlcHRzIGl0IGJlbG93IDUuMAphbmQgZGVjb21wb3NpdGlvbiB0aGVuCmNv cnJlY3RseSByZWZ1c2VzIGl0LiBmbGFuZyBkZWZhdWx0cyB0byBPcGVuTVAgMy4xLCBzbyBubyB1 bnVzdWFsIGZsYWdzCmFyZSBuZWVkZWQuIFRoZQppbnRlcm1pdHRlbmN5IGlzIHdoYXQgbWFkZSB0 aGF0IHJlcG9ydCBoYXJkIHRvIHBpbiBkb3duIOKAlCA0MCB0cmlhbHMgYXQKYC1mb3Blbm1wLXZl cnNpb249MzFgOgoKfCB8IHNlZ2ZhdWx0cyB8CnwtLS18LS0tfAp8IEFTTFIgb24gfCAyNS80MCB8 CnwgQVNMUiBvZmYgKGBzZXRhcmNoIC1SYCkgfCAwLzQwIHwKCndoaWNoIGlzIGFuIHVuaW5pdGlh bGl6ZWQgcmVhZC4KCkFmdGVyIHRoaXMgcGF0Y2ggdGhlIHNhbWUgaW5wdXQgZmFpbHMgZGV0ZXJt aW5pc3RpY2FsbHkgd2l0aCBhIGxvY2F0ZWQKZGlhZ25vc3RpYywgNDAvNDA6CgpgYGAKZXJyb3I6 IGxvYygicmVwcm8uZjkwIjo2OjExKTogT3Blbk1QIGNvbnN0cnVjdCBkZWNvbXBvc2l0aW9uIGZh aWxlZDogYSBjbGF1c2Ugb24KICAgICAgICd0YXJnZXQgdGVhbXMgZGlzdHJpYnV0ZSBwYXJhbGxl bCBkbycgY2Fubm90IGJlIGFwcGxpZWQgdG8gYW55IG9mIGl0cyBsZWFmIGNvbnN0cnVjdHMKYGBg CgpgZ2VuQ3Jhc2hEaWFnPWZhbHNlYCBzbyBpdCBleGl0cyBub24temVybyB3aXRob3V0IGEgYmFj a3RyYWNlLCByYXRoZXIKdGhhbiBwcmVzZW50aW5nIGFzIGEgY29tcGlsZXIKY3Jhc2guCgpUaGlz IGlzIGEgaGFyZGVuaW5nIGZpeCBmb3IgdGhlIGxvd2VyaW5nIHBhdGggYW5kIGlzIGluZGVwZW5k ZW50IG9mIGFueQpwYXJ0aWN1bGFyIGNsYXVzZTogaXQgY292ZXJzCmV2ZXJ5IGNvbWJpbmF0aW9u IHRoYXQgZGVjb21wb3NlcyBlbXB0eS4gSXQgZG9lcyBub3QgbWFrZSB0aGUgYGFsbG9jYXRlYApj YXNlIGEgKmdvb2QqIGRpYWdub3N0aWMg4oCUCnRoYXQgYmVsb25ncyBpbiBzZW1hbnRpY3MsIGFu ZCAjMjEzOTgwIGlzIHRoZSBzZXBhcmF0ZSBjaGFuZ2UgZm9yIGl0LgoKYGNoZWNrLWZsYW5nYCBp cyBjbGVhbiAoNDgwOCB0ZXN0cykuIE5vIHRlc3QgaXMgYWRkZWQ6IHRoZSBvbmx5IGluLXRyZWUK d2F5IHRvIHJlYWNoIHRoaXMgcGF0aCBpcwp0aHJvdWdoIHRoZSBgT01QLnRkYCBnYXAgdGhhdCAj MjEzOTgwIGZpeGVzLCBzbyBhIHRlc3QgaGVyZSB3b3VsZCBlbmNvZGUKdGhhdCBnYXAgYXMgZXhw ZWN0ZWQKYmVoYXZpb3VyIGFuZCBoYXZlIHRvIGJlIHJlbW92ZWQgd2hlbiBpdCBsYW5kcy4gSGFw cHkgdG8gYWRkIG9uZSBpZgp5b3UnZCBwcmVmZXIuCgoKLS0tCgpQYXJ0cyBvZiB0aGlzIGNoYW5n ZSB3ZXJlIHdyaXR0ZW4gb3IgYXVkaXRlZCB3aXRoIENsYXVkZSBDb2RlLiBJIGhhdmUKcmV2aWV3 ZWQgYWxsIG9mIGl0IGFuZCB0YWtlCmZ1bGwgcmVzcG9uc2liaWxpdHkgZm9yIHRoZSBjb250cmli dXRpb24uIFNlZQpgbGx2bS9kb2NzL0FJVG9vbFBvbGljeS5tZGAuCmh0dHBzOi8vaW52ZW50Lmtk ZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC80NGM2YWVkOWJkOWI5Y2RhOTkzZjRlOTNmMmNi ZGI0ZmJiYTg5MGQwCgpHaXQgY29tbWl0IDgzZmI3MmE5MDRlODIzMWJmNjg3OTA3NmI5YzEwYmRi ZjI1ZTQ3NDQgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQXJ0aHVyIEV1YmFua3MpIG9uIDA0LzA4 LzIwMjYgYXQgMjA6MjAuLgpbRFdQXSBFYWdlcmx5IGNsZWFyIGJ1ZmZlcnMgYWZ0ZXIgd3JpdGlu ZyAoIzIxMzM0NSkKCkxvd2VycyBwZWFrIG1lbW9yeSB1c2FnZSBvbiBhIGxsdm0tZHdwIGludm9j YXRpb24gZnJvbSAxMi4zN0dCIC0+CjExLjE5R0IuCgpUaGlzIGFjdHVhbGx5IG5vdyBiZWF0cyBv dXQgR05VIGR3cCAoMTEuMzVHQikgYXQgbGVhc3Qgd2hlbiB0aGUgb3V0cHV0CmZpbGUgaXMgaW4g dG1wZnMuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC84M2Zi NzJhOTA0ZTgyMzFiZjY4NzkwNzZiOWMxMGJkYmYyNWU0NzQ0CgpHaXQgY29tbWl0IGQ1MmU5ODgx NGM0MTQ4N2U1NjM1YTE4NmQ5N2JmNTgwM2UyMDI0NTcgYnkgR2l0SHViIChvbiBiZWhhbGYgb2Yg SGVucnkgSmlhbmcpIG9uIDA0LzA4LzIwMjYgYXQgMjA6MjUuLgpbTkZDXVtBTURHUFVdIEZpeCBl eGl0IGNvZGUgbWlzbWF0Y2ggd2l0aCBFWFBFTlNJVkVfQ0hFQ0sgaW4gc2NoZWR1bGXigKYgKCMy MTQwMjcpCgrigKYtYW1kZ3B1LXRyYWNrZXItcGh5c3JlZy1jcmFzaC5sbAoKT2JzZXJ2ZWQgaW4K aHR0cHM6Ly9jaS5zd2lmdC5vcmcvam9iL2xsdm0ub3JnL2pvYi9jbGFuZy1zdGFnZTEtUkEtZXhw ZW5zaXZlL2pvYi9tYWluLzExNTUKd2l0aCBMTFZNX0VOQUJMRV9FWFBFTlNJVkVfQ0hFQ0tTIGVu YWJsZWQsCmBDb2RlR2VuL0FNREdQVS9zY2hlZHVsZS1hbWRncHUtdHJhY2tlci1waHlzcmVnLWNy YXNoLmxsYCBmYWlscyBkdWUgdG8KTWFjaGluZVZlcmlmaWVyIHJ1bm5pbmcsIGNhdXNpbmcgYW4g ZXhpdCAxLgoKTW9kaWZpZWQgdG8gYWx3YXlzIHJ1biB0aGUgYC12ZXJpZnktbWFjaGluZWluc3Ry c2AuCgpyZGFyOi8vMTg0MDEwNzY2Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2 bS8tL2NvbW1pdC9kNTJlOTg4MTRjNDE0ODdlNTYzNWExODZkOTdiZjU4MDNlMjAyNDU3CgpHaXQg Y29tbWl0IGYyMGI2NGZmZTVjODFlMGVmMzViY2Y5OTkwZjYwYTFmZjkxNTdmN2IgYnkgR2l0SHVi IChvbiBiZWhhbGYgb2YgRG1pdHJ5IFZhc2lseWV2KSBvbiAwNC8wOC8yMDI2IGF0IDIwOjI2Li4K W2xsZGJdIERpc2FibGUgVGVzdFByb2Nlc3NTYXZlQ29yZU1pbmlkdW1wU2l6ZU1pc21hdGNoIG9u IFdpbmRvd3MgaG9zdHMgKCMyMTQwNDQpCgpUaGUgYnVpbGRib3QKW2xsZGItcmVtb3RlLWxpbnV4 LXdpbl0oaHR0cHM6Ly9sYWIubGx2bS5vcmcvYnVpbGRib3QvIy9idWlsZGVycy8xOTcpIGlzCnJl ZCBhZnRlciAjMjEyODYxLiAjMjEyODYxIGNhbm5vdCBiZSByZXZlcnRlZCBhdXRvbWF0aWNhbGx5 IG5vdyBiZWNhdXNlIG9mCiMyMTI2NDEuIFNvIGRpc2FibGUgVGVzdFByb2Nlc3NTYXZlQ29yZU1p bmlkdW1wU2l6ZU1pc21hdGNoIG9uIFdpbmRvd3MKaG9zdHMgdG8gbWFrZSB0aGUgYnVpbGRib3Qg Z3JlZW4gYWdhaW4uCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1p dC9mMjBiNjRmZmU1YzgxZTBlZjM1YmNmOTk5MGY2MGExZmY5MTU3ZjdiCgpHaXQgY29tbWl0IDAz Zjg2YzZkNGQ1NTgwOWY5NTMxYjVlMzdlYjgyNDllNTY5NzQ2YWEgYnkgR2l0SHViIChvbiBiZWhh bGYgb2YgRGF2aWQgWW91bmcpIG9uIDA0LzA4LzIwMjYgYXQgMjA6MzIuLgpbU3VwcG9ydF1bRHJp dmVyXVtMTERCXSBHdWFyZCBXSU4zMl9MRUFOX0FORF9NRUFOIGRlZmluaXRpb25zIHdpdGggI2lm bmRlZiAoIzIxMzA0NSkKClNldmVyYWwgV2luZG93cyBoZWFkZXJzL1RVcyB1bmNvbmRpdGlvbmFs bHkgYCNkZWZpbmUKV0lOMzJfTEVBTl9BTkRfTUVBTmAuIFdoZW4gYSBidWlsZCBwcmVkZWZpbmVz IHRoZSBtYWNybyBvbiB0aGUgY29tcGlsZXIKY29tbWFuZCBsaW5lIChlLmcuIGEgdG9vbGNoYWlu IHRoYXQgcGFzc2VzIC1EV0lOMzJfTEVBTl9BTkRfTUVBTiwgd2hpY2gKY2xhbmcgdHJlYXRzIGFz IGAjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4gMWApLCB0aGUgZGlmZmVyaW5nIHRva2VuCmxp c3RzIHRyaWdnZXIgLVdtYWNyby1yZWRlZmluZWQsIHdoaWNoIGJlY29tZXMgYSBoYXJkIGVycm9y IHVuZGVyCi1XZXJyb3IuCgpHdWFyZCB0aGUgZGVmaW5pdGlvbnMgd2l0aCAjaWZuZGVmLCBtYXRj aGluZyB0aGUgYWRqYWNlbnQgTk9NSU5NQVgKaGFuZGxpbmcgYW5kIHRoZSBleGlzdGluZyBwYXR0 ZXJuIGluCmxsdm0vbGliL1N1cHBvcnQvcnBtYWxsb2MvcnBtYWxsb2MuYy4gVGhlIG1hY3JvIGlz IG9ubHkgYSBwcmVzZW5jZSBmbGFnLApzbyBrZWVwaW5nIGFuIGV4dGVybmFsbHktcHJvdmlkZWQg ZGVmaW5pdGlvbiBpcyBjb3JyZWN0LgoKU2l0ZXMgZ3VhcmRlZDoKICBsbHZtL2luY2x1ZGUvbGx2 bS9TdXBwb3J0L1dpbmRvd3MvV2luZG93c1N1cHBvcnQuaAogIGxsdm0vbGliL1dpbmRvd3NEcml2 ZXIvTVNWQ1BhdGhzLmNwcAogIGNsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9NU1ZDLmNwcAog IGxsZGIvaW5jbHVkZS9sbGRiL0hvc3Qvd2luZG93cy93aW5kb3dzLmgKCk1ldGEgcmFuIGludG8g dGhpcyBpbnRlcm5hbGx5IGJ1aWxkaW5nIGxsZGIgb24gd2luZG93IGFmdGVyIGEgc3luYyB3aXRo CnVwc3RyZWFtIGZyb20gSnVseSBjb21taXQsIHNvIGFkZGluZyBndWFyZHMgd291bGQgYWxsb3cg dXMgdG8gZHJvcCBhCndvcmthcm91bmQgb2YgaWdub3JpbmcgdGhlIGR1cGxpY2F0ZSBkZWZpbmVz LgoKRXJyb3I6Cmxsdm1caW5jbHVkZVxsbHZtL1N1cHBvcnQvV2luZG93cy9XaW5kb3dzU3VwcG9y dC5oKDI5LDkpOiBlcnJvcjoKJ1dJTjMyX0xFQU5fQU5EX01FQU4nIG1hY3JvIHJlZGVmaW5lZCBb LVdlcnJvciwtV21hY3JvLXJlZGVmaW5lZF0KICAgMjkgfCAjZGVmaW5lIFdJTjMyX0xFQU5fQU5E X01FQU4KICAgICAgfCAgICAgICAgIF4KPGNvbW1hbmQgbGluZT4oMTAsOSk6IG5vdGU6IHByZXZp b3VzIGRlZmluaXRpb24gaXMgaGVyZQogICAxMCB8ICNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVB TiAxCiAgICAgIHwgICAgICAgICBeCjEgZXJyb3IgZ2VuZXJhdGVkLgpodHRwczovL2ludmVudC5r ZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvMDNmODZjNmQ0ZDU1ODA5Zjk1MzFiNWUzN2Vi ODI0OWU1Njk3NDZhYQoKR2l0IGNvbW1pdCA0NmI4ZWI4NjEzNTJkMGQzNDYyM2EzMTM5ZWQxMWRl NzYzMzE3MzIzIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIE5pa2l0YSBUZXJlbnRldikgb24gMDQv MDgvMjAyNiBhdCAyMDozOS4uCltORkNdW0NsYW5nXVtEb2NzXSBGaXggbWlub3IgdHlwb3MgaW4g Q29uc3RhbnQgSW50ZXJwcmV0ZXIgZG9jLiAoIzIxMTYwOCkKCkZpcnN0OiBUeXBvIGlzIG9idmlv dXMuIApTZWNvbmQ6IEluIHRoZSBleGFtcGxlLCB0aGUgYS55IGZpZWxkIGlzIG1pc3NpbmcgYW5k IGZpZWxkIGEuYi55IGlzCnJlcXVpcmVkLgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5n L2xsdm0vLS9jb21taXQvNDZiOGViODYxMzUyZDBkMzQ2MjNhMzEzOWVkMTFkZTc2MzMxNzMyMwoK R2l0IGNvbW1pdCAyMTc4ZGI2ZDNkZTRhZDlmYjk3OTRmNTVlNmQ2ZDM4Y2RmMmIwMzQ3IGJ5IEdp dEh1YiAob24gYmVoYWxmIG9mIFRpbXVyIEdvbHVib3ZpY2gpIG9uIDA0LzA4LzIwMjYgYXQgMjA6 NDIuLgpbWDg2XSBIYW5kbGUgbXVsdGktdXNlIHNldGNjIGluIGNvbW11dGVTZWxlY3QgKCMyMTM2 NDUpCgpXaGVuIGEgc2V0Y2MgY29uZGl0aW9uIGlzIHNoYXJlZCBiZXR3ZWVuIG11bHRpcGxlIHZz ZWxlY3RzLApjb21tdXRlU2VsZWN0IHByZXZpb3VzbHkgYmFpbGVkIG91dCBkdWUgdG8gdGhlIG1f T25lVXNlIGNvbnN0cmFpbnQuCkV4dGVuZCBpdCB0byBjaGVjayBhbGwgdXNlcnMgb2YgdGhlIHNl dGNjIGFuZCwgaWYgdGhleSBhbGwgYmVuZWZpdCBmcm9tCmNvbW11dGluZywgaW52ZXJ0IHRoZSBj b25kaXRpb24gb25jZSB3aXRoIFJlcGxhY2VBbGxVc2VzT2ZWYWx1ZVdpdGggYW5kCnN3YXAgYWxs IHZzZWxlY3Qgb3BlcmFuZHMuCgpUaGlzIGZpeGVzIGEgd3JpdGUtbWFzayBmdXNpb24gcmVncmVz c2lvbiB3aGVyZSBtYXNrZWQgbWluL21heApyZWR1Y3Rpb25zIHByb2R1Y2VkIHVuZnVzZWQgdm1p bnBzICsgdm1vdmFwcyB7JWt9IGluc3RlYWQgb2YgYSBzaW5nbGUKd3JpdGUtbWFza2VkIHZtaW5w cyB7JWt9LgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvMjE3 OGRiNmQzZGU0YWQ5ZmI5Nzk0ZjU1ZTZkNmQzOGNkZjJiMDM0NwoKR2l0IGNvbW1pdCBhYTc2OTYz ZWMwMzlmNDg1ZDA1YzEyMzViYWM1YTVlZGYzNjA1Mzc4IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9m IFNpbW9uIFBpbGdyaW0pIG9uIDA0LzA4LzIwMjYgYXQgMjA6NDMuLgpbWDg2XSBMb3dlclBBUklU WSAtIHVzZSBjb3VudE1heEFjdGl2ZUJpdHMgdG8gZGV0ZXJtaW5lIGlmIHJlcHJlc2VudGFibGUg YXMgdWludDhfdC4gTkZDLiAoIzIxNDA1NikKCk11Y2ggY2xlYW5lciB0aGFuIHVzaW5nIHRoZSBN YXNrZWRWYWx1ZUlzWmVybyBjaGVjay4KCkZpeCBpNjQgLT4geG9yKGkzMixpMzIpIHBhcml0eSBz dGFnZSBjb21tZW50IGFzIHdlbGwuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2 bS8tL2NvbW1pdC9hYTc2OTYzZWMwMzlmNDg1ZDA1YzEyMzViYWM1YTVlZGYzNjA1Mzc4CgpHaXQg Y29tbWl0IGNkNDU5ZjI0NjZlNDA4ZWJmOWRjZDQ1NWM1OGE0Mzk1MmQ2YTU5MDMgYnkgR2l0SHVi IChvbiBiZWhhbGYgb2YgRmFyem9uIExvdGZpKSBvbiAwNC8wOC8yMDI2IGF0IDIwOjQ3Li4KW1NQ SVJWXSBTcGxpdCB3aWRlIHNoYWRlciBQSElzIGJlZm9yZSBhcHBseWluZyBleHBsaWNpdCBzdXBw b3J0ZWQgdHlwZXMgKCMyMTM4MDYpCgpmaXhlcyAjMjEzODAyCgpBcHBseSB0aGUgbWF4aW11bS12 ZWN0b3Itc2l6ZSBydWxlIGJlZm9yZSB0aGUgZXhwbGljaXQgUEhJIGxlZ2FsaXR5CnJ1bGVzIGZv ciB0eXBlLiBUaGlzIHdheSBpZiB3ZSBzZWUgYSBzaXplIDE2IHZlY3RvciB3ZSBzcGxpdCBpdApi ZWZvcmVoYW5kLgoKSW4gbW9yZSBwcmVjaXNlIHdvcmRzIHRoaXMgcHJlc2VydmVzIGV4aXN0aW5n IGxlZ2FsaXR5IHJ1bGVzIHdoaWxlCmVuc3VyaW5nIHNoYWRlciBQSElzIHdpZGVyIHRoYW4gZm91 ciBsYW5lcyBhcmUgc3BsaXQgZmlyc3QuCgpBc3Npc3RlZCBieSBDb3BpbG90IChHUFQgNS42IFNv bCkKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0L2NkNDU5ZjI0 NjZlNDA4ZWJmOWRjZDQ1NWM1OGE0Mzk1MmQ2YTU5MDMKCkdpdCBjb21taXQgNGVmMmU3NTc4NWQ3 MWE5YWI4NjgyYmYyZjZiNGNjYzIyM2JhNTY4YyBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBFcmlj IENocmlzdG9waGVyKSBvbiAwNC8wOC8yMDI2IGF0IDIxOjA5Li4KW0ZpbGVDaGVja10gQXZvaWQg bWF0Y2hpbmcgSVIga2V5d29yZHMgaW4gc291cmNlIGZpbGVuYW1lcyAoIzIxMzgwOSkKCkFuY2hv ciBjaGVja3MgZm9yIGRlY2xhcmUsIGRlZmluZSwgYW5kIGNvbWRhdCB0byB0aGUgc3RhcnQgb2Yg bGluZXMgb3IgYW5vdGhlciBmaXh0dXJlIHNvCnBhdGhzIGluIG1vZHVsZSBoZWFkZXJzIGNhbm5v dCBzYXRpc2Z5IG9yIGludmFsaWRhdGUgdGhlbS4KClRlc3RlZCB3aXRoIG1ha2UgY2hlY2suCgpB c3Npc3RlZCBieSBBSS4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29t bWl0LzRlZjJlNzU3ODVkNzFhOWFiODY4MmJmMmY2YjRjY2MyMjNiYTU2OGMKCkdpdCBjb21taXQg OTUyNGZmODI2OTdiNTM5ZGY2ZmI3MTBkNzU0YTcwM2Q3ODhiYjEzNyBieSBHaXRIdWIgKG9uIGJl aGFsZiBvZiBGYWR5IEZhcmFnKSBvbiAwNC8wOC8yMDI2IGF0IDIxOjI1Li4KW2NsYW5nXVt0ZXN0 XSBVc2UgYEZpbGVDaGVja2AgaW4gYEluZGV4L3JlcGFyc2UtcHJlZGVmLW9iamMtcHJvdG9jb2wu bWAgKCMyMTM1NjYpCgpUaGUgdGVzdCBoYWQgYENIRUNLYCBkaXJlY3RpdmVzIHRoYXQgd2VyZSBu ZXZlciBleGVjdXRlZCBiZWNhdXNlIHRoZQpgUlVOYCBsaW5lIGRpZCBub3QgcGlwZSBvdXRwdXQg dG8gYEZpbGVDaGVja2AuIFRoaXMgYWxzbyBkcm9wcyB0aGUgZmlyc3QKYENIRUNLYCBkaXJlY3Rp dmUgaW4gZmF2b3Igb2YgdGhlIG9uZSBiZWxvdyBpdCBkdWUgdG8gYGxpYmNsYW5nYCBub3cKcmVw b3J0aW5nIHRvcC1sZXZlbCBmb3J3YXJkIGNsYXNzIGRlY2xhcmF0aW9ucyBhcyBgT2JqQ0NsYXNz UmVmYCBjdXJzb3JzCndoaWNoIGlzIHRoZSBtb2Rlcm4gcmVwcmVzZW50YXRpb24gb2YgdGhhdCBz YW1lIGRlY2xhcmF0aW9uLgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9j b21taXQvOTUyNGZmODI2OTdiNTM5ZGY2ZmI3MTBkNzU0YTcwM2Q3ODhiYjEzNwoKR2l0IGNvbW1p dCBkNWI5ZTYxMmQ3ODExNmZmYzUyNDEwNTg4ZmUyZjU2ZmNlNGM5NDEwIGJ5IEdpdEh1YiAob24g YmVoYWxmIG9mIFNpbW9uIFBpbGdyaW0pIG9uIDA0LzA4LzIwMjYgYXQgMjE6MzQuLgpbWDg2XSB2 ZWN0b3ItcmVkdWNlLW9yLWNtcC5sbCAtIGFkZCBub3Vud2luZCB0byBzaWxlbmNlIGNmaSBub2lz ZS4gTkZDLiAoIzIxNDA2NCkKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0v Y29tbWl0L2Q1YjllNjEyZDc4MTE2ZmZjNTI0MTA1ODhmZTJmNTZmY2U0Yzk0MTAKCkdpdCBjb21t aXQgMWUyNDM1ZTMyMzEyYjE0OTcwMGM1MGFiMmU4Y2Q0MzhmYWNmOWYyZiBieSBHaXRIdWIgKG9u IGJlaGFsZiBvZiBLcnp5c3p0b2YgUGFyenlzemVrKSBvbiAwNC8wOC8yMDI2IGF0IDIxOjM4Li4K W2ZsYW5nXVtPcGVuTVBdIFVzZSAnbGluZWFyLXN0ZXAnIGluc3RlYWQgb2YgJ3N0ZXAtc2ltcGxl LW1vZGlmaWVyJyBp4oCmICgjMjE0MDQxKQoK4oCmbiA1LjEtCgpUaGVzZSB0d28gbW9kaWZpZXJz IGFyZSBzdHJ1Y3R1cmFsbHkgaWRlbnRpY2FsLCBidXQgdGhlIGxhdHRlciBoYXMgYW4KZXhjbHVz aXZlIHByb3BlcnR5IHdoZXJlYXMgdGhlIGZvcm1lciBkb2VzIG5vdC4KQWxzbywgdGhpcyBhbGxv d3MgZGlhZ25vc3RpY3MgdG8gdXNlIHRoZSBtb2RpZmllciBuYW1lIHRoYXQgYXBwZWFycyBpbgp0 aGUgc3BlYyB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSB2ZXJzaW9uIGluIC1mb3Blbm1wLXZlcnNp b24uCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC8xZTI0MzVl MzIzMTJiMTQ5NzAwYzUwYWIyZThjZDQzOGZhY2Y5ZjJmCgpHaXQgY29tbWl0IDc0NTI3MWZjMjNm ZDIzZjgzZWFjZTk1OTI4NWFiZmQ1ODBhMjY3YTUgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgRGFu IExpZXcpIG9uIDA0LzA4LzIwMjYgYXQgMjE6NDYuLgpbTkZDXVtCb3VuZHNTYWZldHldIEdpdmUg YGNvdW50ZWRfYnlfb3JfbnVsbGAsIGBzaXplZF9ieWAsIGFuZCBgc2l6ZWRfYnlfb3JfbnVsbGAg dGhlaXIgb3duIGRvY3VtZW50YXRpb24gKCMyMTI4NzcpCgpQcmV2aW91c2x5IHRoZSBgY291bnRl ZF9ieWAsIGBjb3VudGVkX2J5X29yX251bGxgLCBgc2l6ZWRfYnlgLCBhbmQKYHNpemVkX2J5X29y X251bGxgIGF0dHJpYnV0ZXMgYWxsIHBvaW50ZWQgYXQgYSBzaW5nbGUgYERvY3VtZW50YXRpb25g Cm9iamVjdCAoYENvdW50ZWRCeURvY3NgKS4gVGhlIGdlbmVyYXRlZCBgQXR0cmlidXRlUmVmZXJl bmNlLnJzdGAKdGhlcmVmb3JlIGZvbGRlZCBhbGwgZm91ciBpbnRvIG9uZSBlbnRyeSB3aG9zZSB0 ZXh0IGRlc2NyaWJlZCBvbmx5CmBjb3VudGVkX2J5YCB1c2VkIG9uIGEgQzk5IGZsZXhpYmxlIGFy cmF5IG1lbWJlci4KClRoaXMgd2FzIG1pc2xlYWRpbmcgYmVjYXVzZSB0aGUgYXR0cmlidXRlcyBk aWZmZXIgaW4gaW1wb3J0YW50IHdheXMgdGhhdAp3ZW50IHVuZG9jdW1lbnRlZDoKCiogYGNvdW50 ZWRfYnlgIGNvdW50cyAqZWxlbWVudHMqIHdoZXJlYXMgYHNpemVkX2J5YCBjb3VudHMgKmJ5dGVz Ki4KKiBgY291bnRlZF9ieWAgYW5kIGBzaXplZF9ieWAgcmVxdWlyZSBhIG51bGwgcG9pbnRlciB0 byBoYXZlIGEgemVybwpjb3VudC9zaXplLCB3aGlsZSB0aGUgYF9vcl9udWxsYCB2YXJpYW50cyBh bGxvdyBhIG51bGwgcG9pbnRlcgpyZWdhcmRsZXNzIG9mIHRoZSBjb3VudCBvciBzaXplLgoqIGBj b3VudGVkX2J5YCBtYXkgYmUgYXBwbGllZCB0byBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciwgYnV0 CmBzaXplZF9ieWAsIGBjb3VudGVkX2J5X29yX251bGxgLCBhbmQgYHNpemVkX2J5X29yX251bGxg IGFwcGx5IHRvCnBvaW50ZXJzIG9ubHkuCgpBcyBhIHJlc3VsdCBhIHJlYWRlciBsb29raW5nIHVw IGFueSBvZiB0aGUgdGhyZWUgbm9uLWBjb3VudGVkX2J5YAphdHRyaWJ1dGVzIHdhcyBzaG93biBk b2N1bWVudGF0aW9uIGZvciBhIGRpZmZlcmVudCBhdHRyaWJ1dGUgd2l0aApkaWZmZXJlbnQgYmVo YXZpb3IuCgpUaGlzIGNoYW5nZSBnaXZlcyBgc2l6ZWRfYnlgLCBgY291bnRlZF9ieV9vcl9udWxs YCwgYW5kCmBzaXplZF9ieV9vcl9udWxsYCB0aGVpciBvd24gZG9jdW1lbnRhdGlvbiBzbyB0aGF0 IGVhY2ggcmVuZGVycyBhcyBpdHMKb3duIGVudHJ5IGRlc2NyaWJpbmcgaXRzIGFjdHVhbCBiZWhh dmlvci4gVGhlIHN1YnN0YW50aXZlIHRleHQgbGl2ZXMgaW4KYGNvdW50ZWRfYnlgIGFuZCBgc2l6 ZWRfYnlgOyB0aGUgYF9vcl9udWxsYCB2YXJpYW50cyBhcmUgZGVzY3JpYmVkIGluCnRlcm1zIG9m IHRoZWlyIGJhc2UgYXR0cmlidXRlLgoKV2hpbGUgd2UncmUgaGVyZSwgdGhpcyBwYXRjaCBhbHNv OgoKKiBSZXN0cnVjdHVyZXMgYGNvdW50ZWRfYnlgJ3MgZG9jdW1lbnRhdGlvbiB0byBleHBsYWlu IHRoZSBhdHRyaWJ1dGUncwptZWFuaW5nIGZpcnN0LCB3aXRoIHRoZSBmbGV4aWJsZS1hcnJheS1t ZW1iZXIgbWF0ZXJpYWwgbW92ZWQgaW50byBpdHMKb3duIHN1Yi1zZWN0aW9uIHJhdGhlciB0aGFu IGxlYWRpbmcgdGhlIGVudHJ5LiBJdCBtYWRlIHNlbnNlIHRoYXQgRkFNcwp3ZXJlIHRoZSBsZWFk aW5nIGVudHJ5IHdoZW4gdGhhdCB3YXMgdGhlIG9ubHkgY29udGV4dCB0aGUgYXR0cmlidXRlIHdh cwpzdXBwb3J0ZWQgaW4sIGJ1dCBpdCdzIGFsc28gbm93IHN1cHBvcnRlZCBvbiBwb2ludGVyIGZp ZWxkcyBpbiBhIHN0cnVjdC4KKiBEaXNjdXNzZXMgaG93IGBjb3VudGVkX2J5YCBvbiBgdm9pZCAq YCBpcyBzdXBwb3J0ZWQgYXMgYSBHTlUKZXh0ZW5zaW9uLgoqIEFkZHMgdHdvIHNlY3Rpb25zIG9u IGtlZXBpbmcgdGhlIHBvaW50ZXIgYW5kIGNvdW50L3NpemUgdmFsdWUgaW4gc3luYy4KVGhlIHR3 byBzZWN0aW9ucyBhcmUgcHJhY3RpY2FsbHkgaWRlbnRpY2FsIG90aGVyIHRoYW4gdGhlIGF0dHJp YnV0ZSB0aGV5CmRpc2N1c3MgYW5kIHRoZSBhc3NvY2lhdGVkIGNvdW50L3NpemUuCiogRm9yIGBj b3VudGVkX2J5YCwgZXhwbGFpbnMgaG93IGEgcG9pbnRlciB0byBhIGZvcndhcmQtZGVjbGFyZWQg dHlwZSBpcwphbGxvd2VkIGFzIGxvbmcgYXMgdGhlIHR5cGUgaXMgY29tcGxldGUgYXQgdGhlIHVz ZSBzaXRlcy4KKiBGb3IgYHNpemVkX2J5YCwgZXhwbGFpbnMgdGhlIG1vdGl2YXRpb24gZm9yIHVz aW5nIGl0IG9uIHR5cGVzIHRoYXQKYXJlbid0IGJ5dGUtc2l6ZWQuCgpBc3Npc3RlZC1ieTogQ2xh dWRlIENvZGUKCnJkYXI6Ly8xMzY5NzkzMTAKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFu Zy9sbHZtLy0vY29tbWl0Lzc0NTI3MWZjMjNmZDIzZjgzZWFjZTk1OTI4NWFiZmQ1ODBhMjY3YTUK CkdpdCBjb21taXQgYWVhYTJhYWNhZDVmZWYxYjcwMGE4MGM0ZTU1NWU2ZWZmYTU1OTM1ZSBieSBH aXRIdWIgKG9uIGJlaGFsZiBvZiBBYmhpbmF2IEdhYmEpIG9uIDA0LzA4LzIwMjYgYXQgMjE6NTgu LgpbT3Blbk1QXSBQcm9wYWdhdGUgUFJFU0VOVCB0byBwb2ludGVlIGVudHJpZXMgaW4gbWFwcGVy IGNvZGVnZW4gKCMyMTAyMTQpCgpGb3IgY2FzZXMgbGlrZToKCmBgYGMKI3ByYWdtYSBvbXAgZGVj bGFyZV9tYXBwZXIgKGRlZmF1bHQ6IFMgcykgbWFwKHMueCwgcy5wWzA6MTBdKQoKUyBzMTsKLi4u CiNwcmFnbWEgb21wIHRhcmdldF9lbnRlcl9kYXRhIG1hcChwcmVzZW50LCBhbGxvYzogczEpCmBg YApBZnRlciAibWFwcGVyLWV4cGFuc2lvbiIsIHRoZSBiZWhhdmlvciBvZiB0aGUgYWJvdmUgc2hv dWxkIGJlIGVxdWl2YWxlbnQKdG86CgpgYGAKI3ByYWdtYSBvbXAgdGFyZ2V0X2VudGVyX2RhdGEg bWFwKHByZXNlbnQsIGFsbG9jOiBzMS54KSBtYXAocHJlc2VudCwgYWxsb2M6IHMucFswOjEwXSkK YGBgCgppLmUuIFRoZSBgcHJlc2VudGAgbWFwLXR5cGUgbmVlZHMgdG8gYmUgcHJvcGFnYXRlZCB0 byB0aGUgbWFwIGZvciB0aGUKcG9pbnRlZSBvZiBgcy5wYC4gVGhhdCB3YXMgbm90IGhhcHBlbmlu ZyBwcmlvciB0byB0aGlzIGNoYW5nZS4KCldlIHRyeSB0byBsaW1pdCB0aGlzIHRvIGVudHJpZXMg dGhhdCBoYXZlIHRoZWlyIG93biAiYXR0YWNoLXB0ciIgKGxpa2UKYHMucFswOjEwXWApIGFuZCB0 aHVzIG9jY3VweSBhIHNlcGFyYXRlIHN0b3JhZ2UgYmxvY2sgdGhhbiB0aGUgYmFzZQp2YXJpYWJs ZSBmb3Igd2hpY2ggdGhlIG1hcHBlciBpcyBkZWNsYXJlZCAobGlrZSBgc2ApLgoKTm90ZSB0aGF0 IHdlIGRvIHRoaXMgb25seSB3aXRoIE9wZW5NUCA2LjArLCBzaW5jZSB0aGUgd29yZGluZyBpbiA1 LjIKaW1wbGllcyB0aGF0IFBSRVNFTlQgYXBwbGllcyBvbmx5IHRvIGBzLnhgIGFmdGVyIG1hcHBl ci1leHBhbnNpb24uCgoKVE9ETzogYFBSRVNFTlRgIGJpdCBzaG91bGQgYWxzbyBiZSBwcm9wYWdh dGVkIHRvIG5vbi1wb2ludGVlIGVudHJpZXMKcmVzdWx0aW5nIGZyb20gbWFwcGVyLWV4cGFuc2lv biwgZS5nLgoKYGBgYwpzdHJ1Y3QgUyB7CmludCB4OyBpbnQgeTsgaW50ICpwOwp9OwpTIHMxOwoj cHJhZ21hIG9tcCBkZWNsYXJlX21hcHBlciBtYXAocy54LCBzLnkpCi4uLgojcHJhZ21hIG9tcCB0 YXJnZXRfZW50ZXJfZGF0YSBtYXAocHJlc2VudDogczEpCi8vIHByZXNlbnQgaGFzIHRvIGJlIHBy b3BhZ2F0ZWQgaW53YXJkcyB0byBgcy54LCBzLnlgIHNvIHRoYXQgaXQgZG9lc24ndAovLyBhc3Nl cnQgdGhhdCB0aGUgZnVsbCBgczFgIGlzICJwcmVzZW50Ii4KYGBgCgpIb3dldmVyIHdlIGNhbm5v dCBkbyB0aGF0IHVudGlsIHdlIGhhdmUgcmVtb3ZlZCB0aGUgcmVtYWluaW5nIHVzZXMgb2YKUFRS X0FORF9PQkogbWFwcyBtYXAtdHlwZSAod2hpY2ggaXMgdXNlZCBmb3IgYnlyZWZzIGluIGNsYW5n IGF0IHRoZQptb21lbnQpLgoKLS0tLS0tLS0tCgpDby1hdXRob3JlZC1ieTogQ2xhdWRlIE9wdXMg NC44IDxub3JlcGx5QGFudGhyb3BpYy5jb20+Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xh bmcvbGx2bS8tL2NvbW1pdC9hZWFhMmFhY2FkNWZlZjFiNzAwYTgwYzRlNTU1ZTZlZmZhNTU5MzVl CgpHaXQgY29tbWl0IDk1NTcyYjQ3OWE2OWFhYWNhODI0MDYzZGQxNGM3MWQ2MTg2ZWZlYjQgYnkg R2l0SHViIChvbiBiZWhhbGYgb2YgQWxleGFuZGVyIFJpY2hhcmRzb24pIG9uIDA0LzA4LzIwMjYg YXQgMjI6MDAuLgpbUklTQy1WXVtNQ10gQWRkIGEgZmV3IG1vcmUgdGVzdHMgZm9yIGludmFsaWQg bHcgb3BlcmFuZHMKClRvIHNob3cgdGhlIGRpZmZlcmVuY2UgaW4gZGlhZ25vc3RpYyBvdXRwdXQg YXMgc3VnZ2VzdGVkIGluCmh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9wdWxs LzIxMDkwMS4KClB1bGwgUmVxdWVzdDogaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9q ZWN0L3B1bGwvMjE0MDcwCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2Nv bW1pdC85NTU3MmI0NzlhNjlhYWFjYTgyNDA2M2RkMTRjNzFkNjE4NmVmZWI0CgpHaXQgY29tbWl0 IDQ1MjQ2N2NiZjgyZjEzZjU3ZWRhNGM3ZmQ2NjIyNWIxMjI1YzdlNTggYnkgR2l0SHViIChvbiBi ZWhhbGYgb2YgamVmZm5pdS1vcGVuYWkpIG9uIDA0LzA4LzIwMjYgYXQgMjI6MDEuLgpbU2VsZWN0 aW9uREFHXSBTcGxpdCBtYXNrZWQgZGl2L3JlbSBvcGVyYW5kcyB3aXRoIGlsbGVnYWwgbWFza3Mg KCMyMTQwNTgpCgpQUiBkZXNjcmlwdGlvbiB3cml0dGVuIGJ5IENvZGV4CgpTcGxpdCBtYXNrZWQg c2lnbmVkIGFuZCB1bnNpZ25lZCBkaXZpc2lvbi9yZW1haW5kZXIgYWxvbmdzaWRlIGlsbGVnYWwK dmVjdG9yIG1hc2tzIHRvIGZpeCBOVlBUWCBTZWxlY3Rpb25EQUcgY3Jhc2hlcy4gQ292ZXJzIGFs bCBmb3VyCmludHJpbnNpY3MgYW5kIHRoZSBvcmlnaW5hbCBlaWdodC1sYW5lIHJlcHJvZHVjZXI7 IGZpdmUgZm9jdXNlZCBMTFZNCnRlc3RzIHBhc3MuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQv Y2xhbmcvbGx2bS8tL2NvbW1pdC80NTI0NjdjYmY4MmYxM2Y1N2VkYTRjN2ZkNjYyMjViMTIyNWM3 ZTU4CgpHaXQgY29tbWl0IGJjNmYyYTkyNjNiZmM1OTY2ZWE1OTZkMjIyNjlhYmZiZmQwMDAzZTIg YnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQWRhbSBTbWl0aCkgb24gMDQvMDgvMjAyNiBhdCAyMjow OS4uCltDSVJdIFJlamVjdCBhIGdsb2JhbCBjYXJyeWluZyBhIGZ1bmN0aW9uIHR5cGUgKCMyMTQw NjUpCgpUaGUgdmVyaWZpZXIgd2FzIGFjY2VwdGluZyBhIGBjaXIuZ2xvYmFsYCB3aG9zZSBgc3lt X3R5cGVgIGlzIGEKZnVuY3Rpb24uIFRoZSBMTFZNIGRpYWxlY3QgZ2xvYmFsIHRha2VzIG9uZSB0 b28sIHNvIGl0IHN1cnZpdmVzIHRvIExMVk0KSVIgdHJhbnNsYXRpb24gYW5kIGNyYXNoZXMgaW5z dGVhZCBvZiByZXBvcnRpbmcgYW4gZXJyb3IuCmBHbG9iYWxPcDo6dmVyaWZ5KClgIG5vdyByZWpl Y3RzIGl0LgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvYmM2 ZjJhOTI2M2JmYzU5NjZlYTU5NmQyMjI2OWFiZmJmZDAwMDNlMgoKR2l0IGNvbW1pdCA0MzdmZjM2 MGY3YWRjYTRjNmNmY2VjYTczMmI1NjhlZGQyNjkzYmQwIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9m IEVyaWNoIEtlYW5lKSBvbiAwNC8wOC8yMDI2IGF0IDIyOjEwLi4KW0NJUl0gTW92ZSBhcnJheS1j dG9yIGNsZWFudXAgdG8gcHJvcGVybHkgY2xlYW51cCB0ZW1wb3JhcmllcyAoIzIxMzk5MykKClRo aXMgcGF0Y2ggY2FtZSBvdXQgb2Ygc2VsZi1idWlsZCwgYW55IGNvbnN0cnVjdG9yIHRlbXBvcmFy eSBjYWxsZWQKZHVyaW5nIHRoZSBjb25zdHJ1Y3Rpb24gb2YgYW4gYXJyYXkgZWxlbWVudCB3YXMg YmVpbmcgaW1wcm9wZXJseSBjbGVhbmVkCnVwIChhY3R1YWxseSwgbm8gdGVybWluYXRvcj8pLiBU aGlzIHBhdGNoIG1vdmVzIHRoZSBSdW5DbGVhbnVwcyBSQUlJIHRvCmRvIHNvIGltbWVkaWF0ZWx5 IGluIHRoZSBib2R5LgoKVGhlIE9HQ0cvTExWTSBjaGVjayBsaW5lcyBhcmUgZWZmZWN0aXZlbHkg ZXF1YWwsIGV4Y2VwdCBPR0NHIHVzZXMgYSBQSEkKYW5kIHdlIGFyZSBkb2luZyBzbyB3aXRoIGFu IGl0ZXJhdG9yIGxvb3AsIGJ1dCB0aGUgJ2R0b3IgY2FsbGVkCmltbWVkaWF0ZWx5JyBpcyBzdGls bCBjb3JyZWN0LgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQv NDM3ZmYzNjBmN2FkY2E0YzZjZmNlY2E3MzJiNTY4ZWRkMjY5M2JkMAoKR2l0IGNvbW1pdCBiZDQx MTczNTM1NzRlMWMxODI3ZTY5NjgyMWQzZjRmMTgwYjI0ZWQ2IGJ5IEdpdEh1YiAob24gYmVoYWxm IG9mIERhdmlkIEdyZWVuKSBvbiAwNC8wOC8yMDI2IGF0IDIyOjE5Li4KW0FBcmNoNjRdW0dsb2Jh bElTZWxdIFVzZSBhIGNvbmNyZXRlIHR5cGUgZm9yIHN0b3JlIG1lcmdpbmcuICgjMjEzNzQwKQoK VGhpcyBpcyBqdXN0IHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHNjYWxhciB0eXBlcyBpbiB0aGUg TUlSLCBhcyB0aGUKdmFsdWUgaXMgYmV0d2VlbiBhIGNvbnN0YW50IGFuZCBhIHN0b3JlIGl0IHNo b3VsZCBoYXZlIGxpdHRsZSBlZmZlY3QuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcv bGx2bS8tL2NvbW1pdC9iZDQxMTczNTM1NzRlMWMxODI3ZTY5NjgyMWQzZjRmMTgwYjI0ZWQ2CgpH aXQgY29tbWl0IDIwMzM5ZGE3NTNkYmEzODliYWJkYjkzN2YyYzJiZTYyNGVhYzQ1MTcgYnkgR2l0 SHViIChvbiBiZWhhbGYgb2YgSm9uYXMgRGV2bGllZ2hlcmUpIG9uIDA0LzA4LzIwMjYgYXQgMjI6 NDUuLgpbbGxkYl0gU3RlcCBwYXN0IGEgcHJvbG9ndWUgdGhlIHBjIGlzIGluc2lkZSAoIzIxMzU1 NSkKCkEgc3RlcCBpbnRvIGEgZnVuY3Rpb24gcmFuIHBhc3QgaXRzIHByb2xvZ3VlIG9ubHkgd2hl biB0aGUgcGMgd2FzCmV4YWN0bHkgdGhlIGZ1bmN0aW9uJ3MgZmlyc3QgYWRkcmVzcy4gQSB0YXJn ZXQgd2hvc2UgZW50cnkgcG9pbnQgaXMgbm90CmEgZnVuY3Rpb24ncyBmaXJzdCBhZGRyZXNzIChz dWNoIGFzIFdlYkFzc2VtYmx5KSBpcyBlbnRlcmVkIHBhc3QgaXQuClRoaXMgbWVhbnMgdGhhdCB0 aGUgY2hlY2sgdG9vayBldmVyeSBzdWNoIGNhbGwgZm9yIG9uZSB3aG9zZSBwcm9sb2d1ZQpoYWQg YWxyZWFkeSBydW4sIGFuZCB0aGUgc3RlcCBzdG9wcGVkIG9uIHRoZSBvcGVuaW5nIGJyYWNlIGlu c3RlYWQgb2YKdGhlIGZpcnN0IHN0YXRlbWVudC4KCldoYXQgc2F5cyB0aGUgcHJvbG9ndWUgaGFz IHlldCB0byBydW4gaXMgdGhlIHBjIGJlaW5nIGluc2lkZSBpdCwgd2hpY2gKZm9yIGEgdGFyZ2V0 IHRoYXQgZG9lcyBlbnRlciBhdCB0aGUgZmlyc3QgYWRkcmVzcyBpcyB0aGUgY29uZGl0aW9uIHRo YXQKd2FzIHRoZXJlIGJlZm9yZS4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZt Ly0vY29tbWl0LzIwMzM5ZGE3NTNkYmEzODliYWJkYjkzN2YyYzJiZTYyNGVhYzQ1MTcKCkdpdCBj b21taXQgMDJiNWJlYjU3YmI0YmJjNDEzOTg1M2Y2ZGI1ZWM0YjkwYTcwZjY1NiBieSBHaXRIdWIg KG9uIGJlaGFsZiBvZiBDaGlubWF5IERlc2hwYW5kZSkgb24gMDQvMDgvMjAyNiBhdCAyMjo0OC4u CltBTURHUFVdW0dJU2VsXSBSZWdCYW5rTGVnYWxpemUgcnVsZXMgZm9yIENWVCBTY2FsZSBhbmQg U1IgQkYxNi1zcGVjaWZpYyBpbnRyaW5zaWNzICgjMjE0MDE4KQpodHRwczovL2ludmVudC5rZGUu b3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvMDJiNWJlYjU3YmI0YmJjNDEzOTg1M2Y2ZGI1ZWM0 YjkwYTcwZjY1NgoKR2l0IGNvbW1pdCAxZmMyYjM3YzY4OTJiNjg5NjJiN2E5MTZmOTY0OGQ1MjA0 NTQ5MDg1IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIENoaW5tYXkgRGVzaHBhbmRlKSBvbiAwNC8w OC8yMDI2IGF0IDIyOjQ4Li4KW0FNREdQVV1bR0lTZWxdIFJlZ0JhbmtMZWdhbGl6ZSBydWxlcyBm b3IgQkYxNiB2YXJpYW50cyBvZiBnZng5NTAgTUZNQSBpbnRyaW5zaWNzICgjMjE0MDQyKQpodHRw czovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvMWZjMmIzN2M2ODkyYjY4 OTYyYjdhOTE2Zjk2NDhkNTIwNDU0OTA4NQoKR2l0IGNvbW1pdCBkNzU3NWJjNWU3MmJmMTVkYWJi OWY1NzgyYTYyOWUyMTFiZjQ5MTRhIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIFBpeW91IENoZW4p IG9uIDA0LzA4LzIwMjYgYXQgMjI6NTkuLgpbUklTQ1ZdIGNvYWxlc2NlIGJldHdlZW4gVlNFVFZM SSBhbmQgU0ZfVlNFVFROVCAoIzIwMzQzOCkKCldoZW4gdHdpZGVuICE9IDAsIExNVUwsIHRhaWwg cG9saWN5LCBhbmQgbWFzayBwb2xpY3kgZnJvbSB0aGUgdXNlciBhcmUKaWdub3JlZC4gVGhlIHRh aWwgcG9saWN5IGFuZCBtYXNrIHBvbGljeSBhcmUgYWx3YXlzIHRyZWF0ZWQgYXMgYWdub3N0aWMu ClRoZSBub3JtYWwgUlZWIGluc3RydWN0aW9uIHdpbGwgaWdub3JlIHRoZSB0d2lkZW4gcGFyYW1l dGVyLiBUaGlzCm9ic2VydmF0aW9uIGNvdWxkIGFsbG93IHRoZSBSVlYgaW5zdHJ1Y3Rpb24gYW5k IHhzZm1tIGluc3RydWN0aW9uIHRvCnNoYXJlIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gaW5zdHJ1 Y3Rpb24uCgpXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgQVZMLCBTRVcsIGFuZCBBbHRGbXQgaXMg c2FtZSBiZXR3ZWVuIFZTRVRWTCBhbmQKVlNFVFZMVE4uCgotLS0tLS0tLS0KCkNvLWF1dGhvcmVk LWJ5OiBMdWtlIExhdSA8bHVrZV9sYXVAaWNsb3VkLmNvbT4KaHR0cHM6Ly9pbnZlbnQua2RlLm9y Zy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0L2Q3NTc1YmM1ZTcyYmYxNWRhYmI5ZjU3ODJhNjI5ZTIx MWJmNDkxNGEK