KkZDMiAmIFJha3V0ZW4gT25saW5lIFdlYnNpdGVzIE11bHRpcGxlIFhTUyAoQ3Jvc3Mtc2l0ZSBT Y3JpcHRpbmcpIGFuZCBPcGVuClJlZGlyZWN0IEN5YmVyIFZ1bG5lcmFiaWxpdGllcyAqCgoKCgpG QzIgYW5kIFJha3V0ZW4gYXJlIHRoZSBmaXJzdCBhbmQgc2Vjb25kIHRvcCByYW5raW5nIEphcGFu ZXNlIGxvY2FsIG9ubGluZQp3ZWJzaXRlcy4gVGhpcyBwb3N0IGludHJvZHVjZXMgc2V2ZXJhbCBY U1MgKENyb3NzLXNpdGUgU2NyaXB0aW5nKSBhbmQgT3BlbgpSZWRpcmVjdCBidWdzIG9mIHRoZW0u CgoKClRoZSBBbGV4YSByYW5rIG9mIGZjMi5jb20gaXMgNTIgb24gRmVicnVhcnkgMTggMjAxNSBh bmQgdGhlIHJlbGF0ZWQgcmFuayBpbgpKYXBhbiBpcyA0LiBUaGUgQWxleGEgcmFuayBvZiByYWt1 dGVuLmNvLmpwIGlzIDY0IG9uIE1heSAyOSAyMDE1IGFuZCB0aGUKcmVsYXRlZCByYW5rIGlzIGph cGFuIGlzIDcuCgoKCgpEaXNjb3ZlciBhbmQgUmVwb3J0ZXI6CldhbmcgSmluZywgRGl2aXNpb24g b2YgTWF0aGVtYXRpY2FsIFNjaWVuY2VzIChNQVMpLCBTY2hvb2wgb2YgUGh5c2ljYWwgYW5kCk1h dGhlbWF0aWNhbCBTY2llbmNlcyAoU1BNUyksIE5hbnlhbmcgVGVjaG5vbG9naWNhbCBVbml2ZXJz aXR5IChOVFUpLApTaW5nYXBvcmUuIChAanVzdHFkamluZykKaHR0cDovL3d3dy50ZXRyYXBoLmNv bS93YW5namluZwoKCgoKCgoqKDEpIEZDMiBYU1MgKGNyb3NzIHNpdGUgc2NyaXB0aW5nKSAmIE9w ZW4gUmVkaXJlY3QqCgoKCipEb21haW46KgpibG9nLmZjMi5jb20vCgoKIkZDMiAoZm91bmRlZCBK dWx5IDIwLCAxOTk5KSBpcyBhIHBvcHVsYXIgSmFwYW5lc2UgYmxvZ2dpbmcgaG9zdCwgdGhlIHRo aXJkCm1vc3QgcG9wdWxhciB2aWRlbyBob3N0aW5nIHNlcnZpY2UgaW4gSmFwYW4gKGFmdGVyIFlv dVR1YmUgYW5kIE5pY29uaWNvKSwKYW5kIGEgd2ViIGhvc3RpbmcgY29tcGFueSBoZWFkcXVhcnRl cmVkIGluIExhcyBWZWdhcywgTmV2YWRhLiBJdCBpcyB0aGUKc2l4dGggbW9zdCBwb3B1bGFyIHdl YnNpdGUgaW4gSmFwYW4gb3ZlcmFsbCAoYXMgb2YgSmFudWFyeSAyMDE0KS4gRkMyIGlzIGFuCmFi YnJldmlhdGlvbiBvZiAiRmFudGFzdGljIEt1cGktS3VwaSAo44Kv44OU44Kv44OUKSIuIEl0IGlz IGtub3duIHRvIGFsbG93CmNvbnRyb3ZlcnNpYWwgYWR1bHQgY29udGVudCBzdWNoIGFzIHBvcm5v Z3JhcGh5IGFuZCBoYXRlIHNwZWVjaCAodW5saWtlCm1hbnkgb2YgaXRzIGNvbXBldGl0b3JzKS4g VGhlIGNvbXBhbnkgdXNlcyByZW50ZWQgb2ZmaWNlIHNwYWNlIGZvciBpdHMKaGVhZHF1YXJ0ZXJz IHdoaWNoIGl0IHNoYXJlcyB3aXRoIG1hbnkgb3RoZXIgVS5TLi1iYXNlZCBidXNpbmVzc2VzLiBJ dCBhbHNvCnBheXMgdGF4ZXMgaW4gdGhlIFVuaXRlZCBTdGF0ZXMuIFRoZSBwaHlzaWNhbCBzZXJ2 ZXJzIGFyZSBsb2NhdGVkIGluIHRoZQpVbml0ZWQgU3RhdGVzLiBIb3dldmVyLCBpdCBpcyBiZWxp ZXZlZCB0aGF0IHRoZSBtYWpvcml0eSBvZiB0aGUgY29tcGFueSBhbmQKaXRzIHVzZXJzIChpbmNs dWRpbmcgZW1wbG95ZWVzKSBhcmUgbG9jYXRlZCB3aXRoaW4gSmFwYW4iIChXaWtpcGVkaWEpCgoK VGhlIEFsZXhhIHJhbmsgb2YgZmMyLmNvbSBpcyA1MiBvbiBGZWJydWFyeSAxOCAyMDE1LiBJdCBp cyB0aGUgdG9wIG9uZQpKYXBhbmVzZSBsb2NhbCB3ZWJzaXRlIHNlcnZpY2UuCgoKCgoKKigxLjEp IEZDMiBmYzIuY29tIDxodHRwOi8vZmMyLmNvbT4gT25saW5lIFdlYnNpdGUgVVJMcyBYU1MgKGNy b3NzIHNpdGUKc2NyaXB0aW5nKSBWdWxuZXJhYmlsaXRpZXMgKEFsbCBVUkxzIFVuZGVyIERvbWFp biBibG9nLmZjMi5jb20vdGFnCjxodHRwOi8vYmxvZy5mYzIuY29tL3RhZz4pKgoKCgoKKlZ1bG5l cmFiaWxpdHkgZGVzY3JpcHRpb246KgoKRkMyIGhhcyBhIGNvbXB1dGVyIGN5YmVyIHNlY3VyaXR5 IGJ1ZyBwcm9ibGVtLiBJdCBpcyB2dWxuZXJhYmxlIHRvIFhTUwphdHRhY2tzLiBIZXJlIGlzIHRo ZSBkZXNjcmlwdGlvbiBvZiBYU1M6ICJIYWNrZXJzIGFyZSBjb25zdGFudGx5CmV4cGVyaW1lbnRp bmcgd2l0aCBhIHdpZGUgcmVwZXJ0b2lyZSBvZiBoYWNraW5nIHRlY2huaXF1ZXMgdG8gY29tcHJv bWlzZQp3ZWJzaXRlcyBhbmQgd2ViIGFwcGxpY2F0aW9ucyBhbmQgbWFrZSBvZmYgd2l0aCBhIHRy ZWFzdXJlIHRyb3ZlIG9mCnNlbnNpdGl2ZSBkYXRhIGluY2x1ZGluZyBjcmVkaXQgY2FyZCBudW1i ZXJzLCBzb2NpYWwgc2VjdXJpdHkgbnVtYmVycyBhbmQKZXZlbiBtZWRpY2FsIHJlY29yZHMuIENy b3NzLXNpdGUgU2NyaXB0aW5nIChhbHNvIGtub3duIGFzIFhTUyBvciBDU1MpIGlzCmdlbmVyYWxs eSBiZWxpZXZlZCB0byBiZSBvbmUgb2YgdGhlIG1vc3QgY29tbW9uIGFwcGxpY2F0aW9uIGxheWVy IGhhY2tpbmcKdGVjaG5pcXVlcyBDcm9zcy1zaXRlIFNjcmlwdGluZyBhbGxvd3MgYW4gYXR0YWNr ZXIgdG8gZW1iZWQgbWFsaWNpb3VzCkphdmFTY3JpcHQsIFZCU2NyaXB0LCBBY3RpdmVYLCBIVE1M LCBvciBGbGFzaCBpbnRvIGEgdnVsbmVyYWJsZSBkeW5hbWljCnBhZ2UgdG8gZm9vbCB0aGUgdXNl ciwgZXhlY3V0aW5nIHRoZSBzY3JpcHQgb24gaGlzIG1hY2hpbmUgaW4gb3JkZXIgdG8KZ2F0aGVy IGRhdGEuIFRoZSB1c2Ugb2YgWFNTIG1pZ2h0IGNvbXByb21pc2UgcHJpdmF0ZSBpbmZvcm1hdGlv biwKbWFuaXB1bGF0ZSBvciBzdGVhbCBjb29raWVzLCBjcmVhdGUgcmVxdWVzdHMgdGhhdCBjYW4g YmUgbWlzdGFrZW4gZm9yIHRob3NlCm9mIGEgdmFsaWQgdXNlciwgb3IgZXhlY3V0ZSBtYWxpY2lv dXMgY29kZSBvbiB0aGUgZW5kLXVzZXIgc3lzdGVtcy4gVGhlCmRhdGEgaXMgdXN1YWxseSBmb3Jt YXR0ZWQgYXMgYSBoeXBlcmxpbmsgY29udGFpbmluZyBtYWxpY2lvdXMgY29udGVudCBhbmQKd2hp Y2ggaXMgZGlzdHJpYnV0ZWQgb3ZlciBhbnkgcG9zc2libGUgbWVhbnMgb24gdGhlIGludGVybmV0 LiIgKEFjdW5ldGl4KQoKCgoKVGhlIHByb2dyYW1taW5nIGNvZGUgZmxhdyBvY2N1cnMgYXQgZmMy IFVSTHMnIGZpbGVuYW1lcyAuIEZjMiBvbmx5IGZpbHRlcgpwYXJ0IG9mIHRoZSBmaWxlbmFtZXMg aW4gdGhlIHVybHMuIEFsbW9zdCBhbGwgdXJscyBhcmUgYWZmZWN0ZWQgdW5kZXIKZG9tYWluIGJs b2cuZmMyLmNvbS90YWcgYXJlIGFmZmVjdGVkLiBpLmUuCmh0dHA6Ly9ibG9nLmZjMi5jb20vdGFn L2RydWcvCmh0dHA6Ly9ibG9nLmZjMi5jb20vdGFnLy/jgqLjg6Hjg6rjgqsvCmh0dHA6Ly9ibG9n LmZjMi5jb20vdGFnL3RhZy/nv7voqLMKaHR0cDovL2Jsb2cuZmMyLmNvbS90YWcvLz7jg6zjgrfj g5Tjg5bjg63jgrDjgavlj4LliqDkuK3imaoKCgoKVGhlIHZ1bG5lcmFiaWxpdHkgY2FuIGJlIGF0 dGFja2VkIHdpdGhvdXQgdXNlciBsb2dpbi4gVGVzdHMgd2VyZSBwZXJmb3JtZWQKb24gRmlyZWZv eCAoMzcuMDIpIGluIFVidW50dSAoMTQuMDQpIGFuZCBJRSAoOS4wLjE1KSBpbiBXaW5kb3dzIDcu CgoKUE9DIENvZGU6Cmh0dHA6Ly9ibG9nLmZjMi5jb20vdGFnL2RydWcvLyI+PGltZyBzcmM9eCBv bmVycm9yPXByb21wdCgnanVzdHFkamluZycpPgpodHRwOi8vYmxvZy5mYzIuY29tL3RhZy8v44Ki 44Oh44Oq44KrLy8iPjxpbWcgc3JjPXggb25lcnJvcj1wcm9tcHQoJ2p1c3RxZGppbmcnKT4KaHR0 cDovL2Jsb2cuZmMyLmNvbS90YWcvdGFnL+e/u+iosy8vIj48aW1nIHNyYz14IG9uZXJyb3I9cHJv bXB0KCdqdXN0cWRqaW5nJyk+Cmh0dHA6Ly9ibG9nLmZjMi5jb20vdGFnLy8+44Os44K344OU44OW 44Ot44Kw44Gr5Y+C5Yqg5LitLy8iPjxpbWcgc3JjPXgKb25lcnJvcj1wcm9tcHQoJ2p1c3RxZGpp bmcnKT4KCgoKCgoKCipQb2MgVmlkZW86KgpodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92 PWpROGRMYm5vNkpRCgoKKkJsb2cgRGV0YWlsOioKaHR0cDovL3RldHJhcGguY29tL3NlY3VyaXR5 L3hzcy12dWxuZXJhYmlsaXR5L2ZjMi1ibG9nLXhzcy8KaHR0cDovL3NlY3VyaXR5cmVsYXRlZC5i bG9nc3BvdC5jb20vMjAxNS8wNi9mYzItZmMyY29tLW9ubGluZS13ZWJzaXRlLXVybHMteHNzLmh0 bWwKCgoKCgoKCiooMS4yKSBGQzIgT25saW5lIFdlYiBTZXJ2aWNlIE9wZW4gUmVkaXJlY3QgKFVu dmFsaWRhdGVkIFJlZGlyZWN0cyBhbmQKRm9yd2FyZHMpIEN5YmVyIFNlY3VyaXR5IFZ1bG5lcmFi aWxpdGllcyoKCgoKKigxLjIuMSkgVnVsbmVyYWJpbGl0eSBEZXNjcmlwdGlvbjoqCgpGQzIgb25s aW5lIHdlYiBzZXJ2aWNlIGhhcyBhIGNvbXB1dGVyIGN5YmVyIHNlY3VyaXR5IGJ1ZyBwcm9ibGVt LiBJdCBjYW4gYmUKZXhwbG9pdGVkIGJ5IE9wZW4gUmVkaXJlY3QgKFVudmFsaWRhdGVkIFJlZGly ZWN0cyBhbmQgRm9yd2FyZHMpIGF0dGFja3MuCkhlcmUgaXMgdGhlIGRlc2NyaXB0aW9uIG9mIE9w ZW4gUmVkaXJlY3Q6ICJBbiBvcGVuIHJlZGlyZWN0IGlzIGFuCmFwcGxpY2F0aW9uIHRoYXQgdGFr ZXMgYSBwYXJhbWV0ZXIgYW5kIHJlZGlyZWN0cyBhIHVzZXIgdG8gdGhlIHBhcmFtZXRlcgp2YWx1 ZSB3aXRob3V0IGFueSB2YWxpZGF0aW9uLiBUaGlzIHZ1bG5lcmFiaWxpdHkgaXMgdXNlZCBpbiBw aGlzaGluZwphdHRhY2tzIHRvIGdldCB1c2VycyB0byB2aXNpdCBtYWxpY2lvdXMgc2l0ZXMgd2l0 aG91dCByZWFsaXppbmcgaXQuIiAgT25lCmNvbnNlcXVlbmNlcyBvZiBpdCBpcyBQaGlzaGluZy4g KE9XQVNQKQoKClRoZSBwcm9ncmFtIGNvZGUgZmxhdyBjYW4gYmUgYXR0YWNrZWQgd2l0aG91dCB1 c2VyIGxvZ2luLiBUZXN0cyB3ZXJlCnBlcmZvcm1lZCBvbiBNaWNyb3NvZnQgSUUgKDkgOS4wLjgx MTIuMTY0MjEpIG9mIFdpbmRvd3MgNywgTW96aWxsYSBGaXJlZm94CigzNy4wLjIpICYgR29vZ2xl IENocm9taXVtIDQyLjAuMjMxMSAoNjQtYml0KSBvZiBVYnVudHUgKDE0LjA0LjIp77yMQXBwbGUK U2FmYXJpIDYuMS42IG9mIE1hYyBPUyBYIHYxMC45IE1hdmVyaWNrcy4KCgpJbiBmYWN0LCBkdXJp bmcgdGhlIHRlc3QsIGl0IGlzIG5vdCBoYXJkIHRvIGZpbmQgVVJMIFJlZGlyZWN0aW9uIGJ1Z3Mg aW4KRkMyLiBNYXliZSBmYzIuY29tIHBheXMgbGl0dGxlIGF0dGVudGlvbiB0byBtaXRpZ2F0ZSB0 aGVzZSBWdWxuZXJhYmlsaXRpZXMuClRoZXNlIGJ1Z3Mgd2VyZSBmb3VuZCBieSB1c2luZyBVUkZE Uy4KCgoKCgoqKDEuMi4yKSogVXNlIG9uZSBvZiB3ZWJwYWdlcyBmb3IgdGhlIGZvbGxvd2luZyB0 ZXN0cy4gVGhlIHdlYnBhZ2UgYWRkcmVzcwppcyAiaHR0cDovL3NlY3VyaXR5cG9zdC50dW1ibHIu Y29tLyIuIENhbiBzdXBwb3NlIHRoYXQgdGhpcyB3ZWJwYWdlIGlzCm1hbGljaW91cy4KCgpWdWxu ZXJhYmxlIFVSTCAxOgpodHRwOi8vYmxvZy5mYzIuY29tLz9qdW1wPWh0dHAlM0ElMkYlMkZmYzIu Y29tJTJGCgpQT0MgQ29kZToKaHR0cDovL2Jsb2cuZmMyLmNvbS8/anVtcD1odHRwOi8vd3d3LnRl dHJhcGguY29tL2Vzc2F5amVhbnMvcG9lbXMvZGlzdGFuY2UuaHRtbAoKCgpWdWxuZXJhYmxlIFVS TCAyOgpodHRwOi8vYmxvZ3JhbmtpbmcuZmMyLmNvbS9vdXQucGhwP2lkPTEwNDMwNCZ1cmw9aHR0 cCUzQSUyRiUyRmZjMi5jb20lMkYKClBPQyBDb2RlOgpodHRwOi8vYmxvZ3JhbmtpbmcuZmMyLmNv bS9vdXQucGhwP2lkPTEwNDMwNCZ1cmw9aHR0cDovL3d3dy50ZXRyYXBoLmNvbS9lc3NheWplYW5z L3BvZW1zL2Rpc3RhbmNlLmh0bWwKCgoKCgoKKlBvYyBWaWRlbzoqCmh0dHBzOi8vd3d3LnlvdXR1 YmUuY29tL3dhdGNoP3Y9cjh2VTJaLXVlUUkKCgoqQmxvZyBEZXRhaWw6KgpodHRwOi8vdGV0cmFw aC5jb20vc2VjdXJpdHkvb3Blbi1yZWRpcmVjdC9mYzItc2VydmljZS1vcGVuLXJlZGlyZWN0Lwpo dHRwOi8vc2VjdXJpdHlyZWxhdGVkLmJsb2dzcG90LmNvbS8yMDE1LzA2L2ZjMi1vbmxpbmUtd2Vi LXNlcnZpY2Utb3Blbi1yZWRpcmVjdC5odG1sCgoKCgoKKigxLjMpIFZ1bG5lcmFiaWxpdHkgRGlz Y2xvc3VyZToqClRob3NlIHZ1bG5lcmFiaWxpdGllcyB3ZXJlIHJlcG9ydGVkIHRvIHJha3V0ZW4t Y2VydEByYWt1dGVuLmNvLmpwIGluIDIwMTQuCk5vIG9uZSByZXBsaWVkLiBVbnRpbCBub3csIHRo ZXkgYXJlIHN0aWxsIHVucGF0Y2hlZC4KCgoKCgoKCgoKKigyKSBSYWt1dGVuIFhTUyAoY3Jvc3Mg c2l0ZSBzY3JpcHRpbmcpICYgT3BlbiBSZWRpcmVjdCoKCgoKCipEb21haW46KgpyYWt1dGVuLmNv bQoKIlJha3V0ZW4sIEluYy4gKOalveWkqeagquW8j+S8muekviBSYWt1dGVuIEthYnVzaGlraS1n YWlzaGE/KSBpcyBhIEphcGFuZXNlIGVsZWN0cm9uaWMKY29tbWVyY2UgYW5kIEludGVybmV0IGNv bXBhbnkgYmFzZWQgaW4gVG9reW8sIEphcGFuLiBJdHMgQjJCMkMgZS1jb21tZXJjZQpwbGF0Zm9y bSBSYWt1dGVuIEljaGliYSBpcyB0aGUgbGFyZ2VzdCBlLWNvbW1lcmNlIHNpdGUgaW4gSmFwYW4g YW5kIGFtb25nCnRoZSB3b3JsZOKAmXMgbGFyZ2VzdCBieSBzYWxlcy4gSGlyb3NoaSBNaWtpdGFu aSBmb3VuZGVkIHRoZSBjb21wYW55IGluCkZlYnJ1YXJ5IDE5OTcgYXMgTURNLCBJbmMuLCBhbmQg aXMgc3RpbGwgaXRzIGNoaWVmIGV4ZWN1dGl2ZS4gUmFrdXRlbgpTaG9wcGluZyBNYWxsICjmpb3l pKnluILloLQgUmFrdXRlbiBJY2hpYmE/KSBzdGFydGVkIG9wZXJhdGlvbnMgaW4gTWF5IDE5OTcu IEluCkp1bmUgMTk5OSwgdGhlIGNvbXBhbnkgY2hhbmdlZCBpdHMgbmFtZSB0byBSYWt1dGVuLCBJ bmMuIFRoZSBKYXBhbmVzZSB3b3JkCnJha3V0ZW4gbWVhbnMgb3B0aW1pc20uIEluIDIwMTIsIHRo ZSBjb21wYW55J3MgcmV2ZW51ZXMgdG90YWxlZCBVUyQ0LjYKYmlsbGlvbiB3aXRoIG9wZXJhdGlu ZyBwcm9maXRzIG9mIGFib3V0IFVTJDI0NCBtaWxsaW9uLiBJbiBKdW5lIDIwMTMsClJha3V0ZW4s IEluYy4gcmVwb3J0ZWQgaXQgaGFkIGEgdG90YWwgb2YgMTAsMzUxIGVtcGxveWVlcyB3b3JsZHdp ZGUuIEluCjIwMDUsIFJha3V0ZW4gc3RhcnRlZCBleHBhbmRpbmcgb3V0c2lkZSBKYXBhbiwgbWFp bmx5IHRocm91Z2ggYWNxdWlzaXRpb25zCmFuZCBqb2ludCB2ZW50dXJlcy4gSXRzIGFjcXVpc2l0 aW9ucyBpbmNsdWRlIEJ1eS5jb20gKG5vdyBSYWt1dGVuLmNvbQpTaG9wcGluZyBpbiB0aGUgVVMp LCBQcmljZW1pbmlzdGVyIChGcmFuY2UpLCBJa2VkYSAobm93IFJha3V0ZW4gQnJhc2lsKSwKVHJh ZG9yaWEgKG5vdyBSYWt1dGVuIERldXRzY2hsYW5kKSwgUGxheS5jb20gKFVLKSwgV3Vha2kudHYg KFNwYWluKSwgYW5kCktvYm8gSW5jLiAoQ2FuYWRhKS4gVGhlIGNvbXBhbnkgaGFzIGludmVzdG1l bnRzIGluIFBpbnRlcmVzdCwgT3pvbi5ydSwgQUhBCkxpZmUsIGFuZCBEYWlseSBHcm9tbWV0LiIg IChXaWtpcGVkaWEpCgoKVGhlIEFsZXhhIHJhbmsgb2YgcmFrdXRlbi5jby5qcCBpcyA2NCBpbiBN YXkgMjkgMjAxNS4gSXQgaXMgdGhlIHNlY29uZCB0b3AKSmFwYW5lc2UgbG9jYWwgc2VydmljZSB3 ZWJzaXRlLgoKCgoKCiooMi4xKSBSYWt1dGVuIFdlYnNpdGUgU2VhcmNoIFBhZ2UgWFNTIChjcm9z cyBzaXRlIHNjcmlwdGluZykgV2ViIFNlY3VyaXR5ClZ1bG5lcmFiaWxpdHkqCgoqKDIuMS4xKSBW dWxuZXJhYmlsaXR5IGRlc2NyaXB0aW9uOioKcmFrdXRlbi5kZSBoYXMgYSBjb21wdXRlciBzY2ll bmNlIHNlY3VyaXR5IGJ1ZyBwcm9ibGVtLiBJdCBpcyB2dWxuZXJhYmxlIHRvClhTUyBhdHRhY2tz LiBIZXJlIGlzIHRoZSBkZXNjcmlwdGlvbiBvZiBYU1M6ICJDcm9zcy1TaXRlIFNjcmlwdGluZyAo WFNTKQphdHRhY2tzIGFyZSBhIHR5cGUgb2YgaW5qZWN0aW9uLCBpbiB3aGljaCBtYWxpY2lvdXMg c2NyaXB0cyBhcmUgaW5qZWN0ZWQKaW50byBvdGhlcndpc2UgYmVuaWduIGFuZCB0cnVzdGVkIHdl YiBzaXRlcy4gWFNTIGF0dGFja3Mgb2NjdXIgd2hlbiBhbgphdHRhY2tlciB1c2VzIGEgd2ViIGFw cGxpY2F0aW9uIHRvIHNlbmQgbWFsaWNpb3VzIGNvZGUsIGdlbmVyYWxseSBpbiB0aGUKZm9ybSBv ZiBhIGJyb3dzZXIgc2lkZSBzY3JpcHQsIHRvIGEgZGlmZmVyZW50IGVuZCB1c2VyLiBGbGF3cyB0 aGF0IGFsbG93CnRoZXNlIGF0dGFja3MgdG8gc3VjY2VlZCBhcmUgcXVpdGUgd2lkZXNwcmVhZCBh bmQgb2NjdXIgYW55d2hlcmUgYSBJRUVFIHdlYgphcHBsaWNhdGlvbiB1c2VzIGlucHV0IGZyb20g YSB1c2VyIHdpdGhpbiB0aGUgb3V0cHV0IGl0IGdlbmVyYXRlcyB3aXRob3V0CnZhbGlkYXRpbmcg b3IgZW5jb2RpbmcgaXQuIiAoT1dTQVApCgoKCgoKCiooMi4xLjIpICpUaGUgcHJvZ3JhbSBjb2Rl IGZsYXcgb2NjdXJzIGF0ICImcSIgcGFyYW1ldGVyIGluIGF0CiJzdWNoZW4vYXNkLz8iIHBhZ2Vz LCBpLmUuCmh0dHA6Ly93d3cucmFrdXRlbi5kZS9zdWNoZW4vYXNkLz9jYXRlZ29yeV9oaWVyYXJj aHk9MCZxPXJlZGRpdF9uaWNlX211c2ljX25ld3MKCgoKVGhlIHZ1bG5lcmFiaWxpdHkgY2FuIGJl IGF0dGFja2VkIHdpdGhvdXQgdXNlciBsb2dpbi4gVGVzdHMgd2VyZSBwZXJmb3JtZWQKb24gRmly ZWZveCAoMzcuMDIpIGluIFVidW50dSAoMTQuMDQpIGFuZCBJRSAoOC4wLiA3NjAxKSBpbiBXaW5k b3dzIDcuIFRoZQpidWdzIHdlcmUgZm91bmQgYnkgdXNpbmcgQ1NYRFMuCgoKVnVsbmVyYWJsZSBV UkxzOgpodHRwOi8vd3d3LnJha3V0ZW4uZGUvc3VjaGVuL2FzZC8/Y2F0ZWdvcnlfaGllcmFyY2h5 PTAmcT1hZGNhc2hfc2hvcHBpbmdfcGF5bWVudAoKClBPQyBDb2RlOgpodHRwOi8vd3d3LnJha3V0 ZW4uZGUvc3VjaGVuL2FzZC8/Y2F0ZWdvcnlfaGllcmFyY2h5PTAmcT1hZGNhc2hfc2hvcHBpbmdf cGF5bWVudCcKLyI+PGltZyBzcmM9eCBvbmVycm9yPXByb21wdCgvdGV0cmFwaC8pPgoKCgoKCgoq UG9jIFZpZGVvOioKaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1GSzdubXVSdXBKSQoK CipCbG9nIERldGFpbDoqCmh0dHBzOi8vdnVsbmVyYWJpbGl0eXBvc3Qud29yZHByZXNzLmNvbS8y MDE1LzA2LzExL3Jha3V0ZW4teHNzLwpodHRwOi8vc2VjdXJpdHlyZWxhdGVkLmJsb2dzcG90LmNv bS8yMDE1LzA2L3Jha3V0ZW4td2Vic2l0ZS1zZWFyY2gtcGFnZS14c3MtY3Jvc3MuaHRtbAoKCgoK CgoqKDIuMS4zKSBWdWxuZXJhYmlsaXR5IERpc2Nsb3N1cmU6KgpUaG9zZSB2dWxuZXJhYmlsaXRp ZXMgYXJlIHBhdGNoZWQgbm93LgoKCgoKCgoKKigyLjIpIFJha3V0ZW4gT25saW5lIFdlYnNpdGUg T3BlbiBSZWRpcmVjdCAoVVJMIFJlZGlyZWN0aW9uKSBDeWJlcgpTZWN1cml0eSBWdWxuZXJhYmls aXRpZXMqCgoKCiooMi4yLjEpIFZ1bG5lcmFiaWxpdHkgRGVzY3JpcHRpb246KgoKUmFrdXRlbiBv bmxpbmUgd2Vic2l0ZSBoYXMgYSBjb21wdXRlciBlbmdpbmVlcmluZyBzZWN1cml0eSBidWcgcHJv YmxlbS4gSXQKY2FuIGJlIGV4cGxvaXRlZCBieSBVUkwgUmVkaXJlY3Rpb24gKFVudmFsaWRhdGVk IFJlZGlyZWN0cyBhbmQgRm9yd2FyZHMpCmF0dGFja3MuIEhlcmUgaXMgdGhlIGRlc2NyaXB0aW9u IG9mIE9wZW4gUmVkaXJlY3Q6ICJBIHdlYiBhcHBsaWNhdGlvbgphY2NlcHRzIGEgdXNlci1jb250 cm9sbGVkIGlucHV0IHRoYXQgc3BlY2lmaWVzIGEgbGluayB0byBhbiBleHRlcm5hbCBzaXRlLAph bmQgdXNlcyB0aGF0IGxpbmsgaW4gYSBSZWRpcmVjdC4gVGhpcyBzaW1wbGlmaWVzIHBoaXNoaW5n IGF0dGFja3MuIEFuIGh0dHAKcGFyYW1ldGVyIG1heSBjb250YWluIGEgVVJMIHZhbHVlIGFuZCBj b3VsZCBjYXVzZSB0aGUgd2ViIGFwcGxpY2F0aW9uIHRvCnJlZGlyZWN0IHRoZSByZXF1ZXN0IHRv IHRoZSBzcGVjaWZpZWQgVVJMLiBCeSBtb2RpZnlpbmcgdGhlIFVSTCB2YWx1ZSB0byBhCm1hbGlj aW91cyBzaXRlLCBhbiBhdHRhY2tlciBtYXkgc3VjY2Vzc2Z1bGx5IGxhdW5jaCBhIHBoaXNoaW5n IHNjYW0gYW5kCnN0ZWFsIHVzZXIgY3JlZGVudGlhbHMuIEJlY2F1c2UgdGhlIHNlcnZlciBuYW1l IGluIHRoZSBtb2RpZmllZCBsaW5rIGlzCmlkZW50aWNhbCB0byB0aGUgb3JpZ2luYWwgc2l0ZSwg cGhpc2hpbmcgYXR0ZW1wdHMgaGF2ZSBhIG1vcmUgdHJ1c3R3b3J0aHkKYXBwZWFyYW5jZS4iIChG cm9tIENXRSkKCgoiVGhlIEZ1bGwgRGlzY2xvc3VyZSBtYWlsaW5nIGxpc3QgaXMgYSBwdWJsaWMg Zm9ydW0gZm9yIGRldGFpbGVkIGRpc2N1c3Npb24Kb2YgdnVsbmVyYWJpbGl0aWVzIGFuZCBleHBs b2l0YXRpb24gdGVjaG5pcXVlcywgYXMgd2VsbCBhcyB0b29scywgcGFwZXJzLApuZXdzLCBhbmQg ZXZlbnRzIG9mIGludGVyZXN0IHRvIHRoZSBjb21tdW5pdHkuIEZEIGRpZmZlcnMgZnJvbSBvdGhl cgpzZWN1cml0eSBsaXN0cyBpbiBpdHMgb3BlbiBuYXR1cmUgYW5kIHN1cHBvcnQgZm9yIHJlc2Vh cmNoZXJzJyByaWdodCB0bwpkZWNpZGUgaG93IHRvIGRpc2Nsb3NlIHRoZWlyIG93biBkaXNjb3Zl cmVkIGJ1Z3MuIFRoZSBmdWxsIGRpc2Nsb3N1cmUKbW92ZW1lbnQgaGFzIGJlZW4gY3JlZGl0ZWQg d2l0aCBmb3JjaW5nIHZlbmRvcnMgdG8gYmV0dGVyIHNlY3VyZSB0aGVpcgpwcm9kdWN0cyBhbmQg dG8gcHVibGljbHkgYWNrbm93bGVkZ2UgYW5kIGZpeCBmbGF3cyByYXRoZXIgdGhhbiBoaWRlIHRo ZW0uClZlbmRvciBsZWdhbCBpbnRpbWlkYXRpb24gYW5kIGNlbnNvcnNoaXAgYXR0ZW1wdHMgYXJl IG5vdCB0b2xlcmF0ZWQgaGVyZSEiCkEgZ3JlYXQgbWFueSBvZiB0aGUgZmxsb3dpbmcgd2ViIHNl Y3VyaXRpZXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBoZXJlLApCdWZmZXIgb3ZlcmZsb3csIEhUVFAg UmVzcG9uc2UgU3BsaXR0aW5nIChDUkxGKSwgQ01EIEluamVjdGlvbiwgU1FMCmluamVjdGlvbiwg UGhpc2hpbmcsIENyb3NzLXNpdGUgc2NyaXB0aW5nLCBDU1JGLCBDeWJlci1hdHRhY2ssIFVudmFs aWRhdGVkClJlZGlyZWN0cyBhbmQgRm9yd2FyZHMsIEluZm9ybWF0aW9uIExlYWthZ2UsIERlbmlh bCBvZiBTZXJ2aWNlLCBGaWxlCkluY2x1c2lvbiwgV2VhayBFbmNyeXB0aW9uLCBQcml2aWxlZ2Ug RXNjYWxhdGlvbiwgRGlyZWN0b3J5IFRyYXZlcnNhbCwgSFRNTApJbmplY3Rpb24sIFNwYW0uCgoK VGhlIHByb2dyYW0gY29kZSBmbGF3IGNhbiBiZSBhdHRhY2tlZCB3aXRob3V0IHVzZXIgbG9naW4u IFRlc3RzIHdlcmUKcGVyZm9ybWVkIG9uIE1pY3Jvc29mdCBJRSAoOSA5LjAuODExMi4xNjQyMSkg b2YgV2luZG93cyA3LCBNb3ppbGxhIEZpcmVmb3gKKDM3LjAuMikgJiBHb29nbGUgQ2hyb21pdW0g NDIuMC4yMzExICg2NC1iaXQpIG9mIFVidW50dSAoMTQuMDQuMinvvIxBcHBsZQpTYWZhcmkgNi4x LjYgb2YgTWFjIE9TIFggdjEwLjkgTWF2ZXJpY2tzLgoKClNpbmNlIGtub3cgb25seSBhIGxpdHRs ZSBKYXBhbmVzZSwgbm90IHN1cmUgd2hldGhlciBSYWt1dGVuIHBheXMgbXVjaAphdHRlbnRpb24g dG8gT3BlbiBSZWRpcmVjdCBWdWxuZXJhYmlsaXRpZXMgb3Igbm90LgoKCgoKCiooMi4yLjIpKiBV c2Ugb25lIG9mIHdlYnBhZ2VzIGZvciB0aGUgZm9sbG93aW5nIHRlc3RzLiBUaGUgd2VicGFnZSBh ZGRyZXNzCmlzICJodHRwOi8vd3d3LmluemVlZC5jb20va2FsZWlkb3Njb3BlLyIuIENhbiBzdXBw b3NlIHRoYXQgdGhpcyB3ZWJwYWdlIGlzCm1hbGljaW91cy4KCgoKVnVsbmVyYWJsZSBVUkwgMToK aHR0cDovL2FjY291bnQucmFrdXRlbi1zZWMuY28uanAvY2dpLWJpbi9idHJhY2tpbmc/VVJMPWh0 dHBzOi8vd3d3Lm5ldGZsaXguY29tL21vdmllcy8KClBPQyBDb2RlOgpodHRwOi8vYWNjb3VudC5y YWt1dGVuLXNlYy5jby5qcC9jZ2ktYmluL2J0cmFja2luZz9VUkw9aHR0cDovL3d3dy5pbnplZWQu Y29tL2thbGVpZG9zY29wZS8KCgoKClZ1bG5lcmFibGUgVVJMIDI6Cmh0dHA6Ly9hZmZpbGlhdGUu cmFrdXRlbi5jb20vZnMtYmluL2NsaWNrP3UxPW5vX3JlZmVyJmlkPUp2KnYxL1dsZHpnJnN1Ymlk PTAmb2ZmZXJpZD0yMjkzMDAuMSZ0eXBlPTEwJnRtcGlkPTY5MzMmUkRfUEFSTTE9aHR0cCUzQSUy RiUyRmFkY2FzaC5jb20lMmZtb25leQoKUE9DIENvZGU6Cmh0dHA6Ly9hZmZpbGlhdGUucmFrdXRl bi5jb20vZnMtYmluL2NsaWNrP3UxPW5vX3JlZmVyJmlkPUp2KnYxL1dsZHpnJnN1YmlkPTAmb2Zm ZXJpZD0yMjkzMDAuMSZ0eXBlPTEwJnRtcGlkPTY5MzMmUkRfUEFSTTE9aHR0cDovL3d3dy5pbnpl ZWQuY29tL2thbGVpZG9zY29wZS8KCgoKClZ1bG5lcmFibGUgVVJMIDM6Cmh0dHA6Ly9jbGlja2Zy b20ucmFrdXRlbi5jb20vZGVmYXVsdC5hc3A/YWRpZD0xNzM3OSZzVVJMPWh0dHAlM0ElMkYlMkZ3 d3cuY3JhaWdzbGlzdC5vcmcKClBPQyBDb2RlOgpodHRwOi8vY2xpY2tmcm9tLnJha3V0ZW4uY29t L2RlZmF1bHQuYXNwP3NVUkw9aHR0cDovL3d3dy5pbnplZWQuY29tL2thbGVpZG9zY29wZS8KCgoK CgoKKlBvYyBWaWRlbzoqCmh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dXhzdUxnQWRw Q3cKCgoqQmxvZyBEZXRhaWw6KgpodHRwOi8vdGV0cmFwaC5jb20vc2VjdXJpdHkvb3Blbi1yZWRp cmVjdC9yYWt1dGVuLW9wZW4tcmVkaXJlY3QvCmh0dHA6Ly9zZWN1cml0eXJlbGF0ZWQuYmxvZ3Nw b3QuY29tLzIwMTUvMDYvcmFrdXRlbi1vcGVuLXJlZGlyZWN0Lmh0bWwKCgoKCgoqKDIuMi4zKSBW dWxuZXJhYmlsaXR5IERpc2Nsb3N1cmU6KgpUaG9zZSB2dWxuZXJhYmlsaXRpZXMgYXJlIG5vdCBw YXRjaGVkIG5vdy4KCgoKCgoKCgoqTW9yZSBEZXRhaWxzOioKaHR0cDovL3RldHJhcGguY29tL3Nl Y3VyaXR5L3dlYi1zZWN1cml0eS9mYzItcmFrdXRlbi14c3MtYW5kLXVybC1yZWRpcmVjdGlvbi8K aHR0cDovL3NlY3VyaXR5cmVsYXRlZC5ibG9nc3BvdC5jb20vMjAxNS8wNi9mYzItcmFrdXRlbi1v bmxpbmUtd2Vic2l0ZXMtbXVsdGlwbGUuaHRtbAoKCgoKCgotLQpKaW5nIFdhbmcsCkRpdmlzaW9u IG9mIE1hdGhlbWF0aWNhbCBTY2llbmNlcyAoTUFTKSwKU2Nob29sIG9mIFBoeXNpY2FsIGFuZCBN YXRoZW1hdGljYWwgU2NpZW5jZXMgKFNQTVMpLApOYW55YW5nIFRlY2hub2xvZ2ljYWwgVW5pdmVy c2l0eSAoTlRVKSwKU2luZ2Fwb3JlLgpodHRwOi8vd3d3LnRldHJhcGguY29tL3dhbmdqaW5nLwpo dHRwczovL3R3aXR0ZXIuY29tL2p1c3RxZGppbmcKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClNlbnQgdGhyb3VnaCB0aGUgRnVsbCBEaXNjbG9zdXJlIG1h aWxpbmcgbGlzdApodHRwczovL25tYXAub3JnL21haWxtYW4vbGlzdGluZm8vZnVsbGRpc2Nsb3N1 cmUKV2ViIEFyY2hpdmVzICYgUlNTOiBodHRwOi8vc2VjbGlzdHMub3JnL2Z1bGxkaXNjbG9zdXJl Lw==