T24gMTIgSnVuZSAyMDEyIGF0IDA2OjE0LCBSdXNzZWxsTWMgPGFwcHRlY2huekBnbWFpbC5jb20+ IHdyb3RlOgoKPiBUaGUgRW1wZXJvciBzdGlsbCBoYXMgbm8gY2xvdGhlcyBvbi4KPgo+CuKAizUr IHllYXJz4oCLIG9uIGhlJ3Mgc3RpbGwgdW5jbG90aGVkLgpbWyBSIHNheXM6IHQgZm91bmQgb3V0 IHlldCB0aGF0IHRoZXkgZG8gbm90IHVuZGVyc3RhbmQgdGhlIGJlaGF2aW91ciBvZgpncmF2aXR5 Ll1dCgoKIkFzdHJvbm9tZXJzIHJldmVhbCBldmlkZW5jZSBvZiBkeW5hbWljYWwgZGFyayBlbmVy Z3kiCgpPY3RvYmVyIDMsIDIwMTcgVW5pdmVyc2l0eSBvZiBQb3J0c21vdXRoCgpBc3Ryb25vbWVy cyBmb3VuZCB0aGF0IHRoZSBuYXR1cmUgb2YgZGFyayBlbmVyZ3kgbWF5IG5vdCBiZSB0aGUKY29z bW9sb2dpY2FsIGNvbnN0YW50IGludHJvZHVjZWQgYnkgQWxiZXJ0IEVpbnN0ZWluIDEwMCB5ZWFy cyBhZ28uIFRoaXMgaXMKY3J1Y2lhbCBmb3IgdGhlIHN0dWR5IG9mIGRhcmsgZW5lcmd5LgoKaHR0 cHM6Ly93d3cuc2NpZW5jZWRhaWx5LmNvbS9yZWxlYXNlcy8yMDE3LzEwLzE3MTAwMzExMTAzMi5o dG0KCgoK4oCLICAgICAgICAgUnVzc2VsbAoKX19fX19fX19fX19fX19f4oCLCgoKCgo+ID4gVGhl IFdoZWVsIHR1cm5zLi4uCj4KPiBPciwgdGhlIHdoZWVsICJjb250aW51YWxseSBjeWNsZXMgdGhy b3VnaCBhIHNlcmllcyBvZiAiYWVvbnMsIiAiIChmcm9tCj4gdGhlIGFydGljZWwpLgo+Cj4gUmVh ZGVyIGNvbW1lbnRzIGFyZSBpbnRlcmVzdGluZyAsIGJhbmFsLCBzdHVwaWQsIGluZm9ybWF0aXZl LAo+IGx1ZGljcm91cyBpbiB2YXJpb3VzIG1lYXN1cmUuCj4KPiBJIGRvIGxpa2UKPgo+ICAgICJU aGUgIldpbGtpbnNvbiBNaWNyb3dhdmUgQW5pc290cm9weSBQcm9iZSIgKFdNQVApIG1pc3Npb24g aGFzCj4gbWVhc3VyZWQgdGhlc2UgdmFyaWF0aW9ucyBhbmQgZm91bmQgdGhhdCB0aGUgdW5pdmVy c2UgaXMgMTMuNyBiaWxsaW9uCj4geWVhcnMgb2xkLCBhbmQgaXQgY29uc2lzdHMgb2YgNC42JSBh dG9tcywgMjMlIGRhcmsgbWF0dGVyLCBhbmQgNzIlCj4gZGFyayBlbmVyZ3kuIgo+Cj4gUHJlc3Vt YWJseSB0aGUgd29yZHMgImlzIiBhbmQgImNvbnNpc3RzIG9mIiBoYXZlIHNwZWNpYWxpc3QgbWVh bmluZ3MKPiBpbiB0aGlzIGNvbnRleHQuCj4KPiBBbHNvICJTY2llbmNlIiBhcyBhIHZlcmIgbG9v a3MgbGlrZSBmdW4uCj4KPiBOb3RlIHRoYXQgUGVucm9zZSdzIHBhcGVyIGlzIH49IDIgeWVhcnMg b2xkLCBzbyB0aGlzIG1heSBiZSBzbG93Cj4gU2NpZW50aWZpYyBuZXdzIGRheSBtYXRlcmlhbC4K Pgo+Cj4KPiAgICAgICAgICAgICAgUnVzc2VsbAo+Cj4gaHR0cDovL3d3dy5kYWlseWdhbGF4eS5j b20vbXlfd2VibG9nLzIwMTIvMDYvaW1hZ2Utb2YtdGhlLQo+IGRheS1ldmlkZW5jZS1vZi1hLXBh c3QtdW5pdmVyc2UtY2lyY3VsYXItcGF0ZXJucy1pbi10aGUtY29zbWljLW1pY3Jvd2F2ZS0KPiBi YWNrZ3JvdW5kLS5odG1sCj4KLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNs aXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlw IG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xp c3QK .