SSBsaWtlIHRoZSB0YWdzIHRvbywgZm9yIHRoZSBzYW1lIHJlYXNvbiBQTFVTLCBJIGFsc28gZG8g YXV0b21hdGVkwqAgc29ydCAKYnkgdGhvc2UgdGFncyAoUElDIGZvbGRlciwgRUUgZm9sZGVyLCBl dGMpLiBJJ3ZlIGdyb3duIHRvIGxpa2UgdGhlbS4uLiA7KQoKSSB3b3VsZCBhY3R1YWxseSBmaW5k IG1vcmUgZ3JhbnVsYXJpdHkgaW4gbmFtaW5nIHVzZWZ1bCAtIG9yIHBlcmhhcHMgYW4gCm9wdGlv bmFsIHN1Yi10YWcuIFBJQyB3b3VsZCBiZSB0aGUgZ2VuZXJhbCBtaWNyb2NvbnRyb2xsZXIgdGFn IGFuZCB0aGUgCnN1YiB0YWcgd291bGQgYmUgdGhlIGFyY2hpdGVjdHVyZSBhbmQvb3IgaGFyZHdh cmUvc29mdHdhcmUgYXMgc3ViIHRhZy4gCkVFIHN1YiB0YWdzIHdvdWxkIGJlIHRoZSBnZW5lcmFs IGFyZWEgaW52b2x2ZWQgKHNpbmNlIHdlIGFsbCBwcmV0dHkgbXVjaCAKc3BlYWsgRUUpLCBhbmQg c28gb24uIFRoZSBzZWNvbmQgdGFnIHdvdWxkbid0IGJlIHNvIHN0cmljdGx5IGVuZm9yY2VkLCAK YW5kIGJlICJ0aGUgb25lIHdvcmQgdGhhdCBiZXN0IGRlc2NyaWJlcyB0aGUgc3ViamVjdCBhcmVh IGludm9sdmVkIi4KClRoZW4gdGhlIHJlc3Qgb2YgdGhlIHN1YmplY3QgbGluZSBjYW4gYmUgY3Jl YXRpdmUgbWFya2V0aW5nIGZvciAKYXR0ZW50aW9uLi4uIDspCgpKdXN0IG15IDIgY2VudHMuCgpE ciBTa2lwCgoKT24gNy8yMy8xOSAxMjo0NSBBTSwgQm9iIEJsaWNrIHdyb3RlOgo+IENocmlzLAo+ IE91ciBzb2Z0d2FyZSBjYW4gcHJlcGVuZCBzb21lIHRleHQgdG8gdGhlIHN1YmplY3QgbGluZSBv ZiBtZXNzYWdlcywgdGhhdCBtaWdodCBzZXJ2ZSB0byBoZWxwIHRoZW0gc3RhbmQgb3V0IGFzIGNv bWluZyBmcm9tIHRoZSBwaWNsaXN0Lgo+IEZyaWVuZGx5IHJlZ2FyZHMsIEJvYgo+Cj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEZyb206IHBpY2xpc3QtYm91bmNl c0BtaXQuZWR1IDxwaWNsaXN0LWJvdW5jZXNAbWl0LmVkdT4gb24gYmVoYWxmIG9mIENocmlzIFJv cGVyCj4gU2VudDogTW9uZGF5LCBKdWx5IDIyLCAyMDE5IDI6MTggUE0KPiBUbzogTWljcm9jb250 cm9sbGVyIGRpc2N1c3Npb24gbGlzdCAtIFB1YmxpYy4KPiBTdWJqZWN0OiBSZTogW1BJQ10gSnVz dCBhIGxpdHRsZSByZW1pZGVyIGFib3V0IHRvcGljIHRhZ3MKPgo+IFBlcnNvbmFsbHkgSSBsaWtl IHRoZSB0YWdzLgo+IEkgYW0gbm90IHVzaW5nIHRoZW0gdG8gZmlsdGVyIGFzIHN1Y2gsIEkgZmls dGVyIG9uIGFkZHJlc3MsIGJ1dCBzZWVpbmcgYQo+IHRhZyBtYWtlcyB0aGUgcG9zdCBzdGFuZCBv dXQgaW4gdGhlIGluYm94IHNvIEkgb3BlbiB0aGVtIGZpcnN0Lgo+IFdpdGhvdXQgdGhlIHRhZyB0 aGV5IHdpbGwgYmxlbmQgdmlzdWFsbHkgd2l0aCB0aGUgbm9pc2UgYW5kIGdldCByZWFkIHdoZW4K PiBhbmQgaWYgIEkgaGF2ZSB0aW1lIHRvIHJlYWQgZWFjaCBzdWJqZWN0IG9yLCBpZiB0aGUgc3Vi amVjdCBmYWlscyB0byBjYXRjaAo+IG15IGF0dGVudGlvbiwgZGlzYXBwZWFyIGludG8gb2JzY3Vy aXR5Lgo+Cj4gQ2hlcnMKPiBDaHJpcwo+Cj4KLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVj aHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBt ZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3Rp bmZvL3BpY2xpc3QK .