SmFtZWNvIGlzIGEgZ3JlYXQgcGxhY2UgLi4uIGlmIHlvdSBkb24ndCBoYXZlIGEgcHJpbnRlZCBj YXRhbG9nLCBhc2sgCnRoYXQgdGhleSBpbmNsdWRlIG9uZSBpbiB5b3VyIG9yZGVyLiAgVGhpbmdz LCB0aGVyZSBhcmUgc28gbWFueSBsaXR0bGUgCkVFIHRoaW5ncyB0aGF0IGhlbHAgYXQgdGhlIHdv cmtiZW5jaC4uLgoKSgoKCkJvYiBCbGljayB3cm90ZToKPiBNYXliZSBJJ20gbG9va2luZyBhdCB0 aGUgd3Jvbmcgc3RvcmVzIC0gdGhpbm5lc3QgSSBjb3VsZCBmaW5kIGxvY2FsbHkgaXMKPiAxOEFX RywgY2FsbGVkICJTUFQtMSBsYW1wIGNvcmQiLiBUaGV5IGhhdmUgYXNzb3J0ZWQgYWxhcm0gY2Fi bGUgdGhhdCBpcwo+IGFsbW9zdCByaWdodCwgc3RpbGwgdG9vIGJpZy4KPgo+IEJ1dCBKUCBwb2lu dGVkIG1lIHRvIEphbWVjbywgdGhleSBoYXZlIDEwMGZ0IG9mIGV4YWN0bHkgd2hhdCBJIHdhbnQg Zm9yCj4gJDcuOTUuCj4KPiBUaGFua3MsIEJvYgo+Cj4gT24gTW9uLCBBcHIgNiwgMjAxNSwgYXQg MDI6MjEgUE0sIE1hcmMgTmljaG9sYXMgd3JvdGU6Cj4+IFllcOKApi5JIGJlbGlldmUgaXQgd2Fz IGNhbGxlZCDigJxsYW1wIGNvcmTigJ0gYXQgbXkgbG9jYWwgSEQgYW5kIGF2YWlsYWJsZSBieQo+ PiB0aGUgZm9vdCAoZXZlbiB0aG91Z2ggSeKAmW0gaW4gQ2FuYWRhIDspICkuCj4+Cj4+IC1tCj4+ Cj4+IC0tCj4+IE1hcmMgTmljaG9sYXMKPj4gU2VudCB3aXRoIEFpcm1haWwKPj4KPj4gT24gQXBy aWwgNiwgMjAxNSBhdCA1OjE1OjEzIFBNLCBKZXNzZSBMYWNrZXkgKGpzbC1tbEBjZWxlc3RpYWxh dWRpby5jb20pCj4+IHdyb3RlOgo+Pgo+PiBMb2NhbCBoYXJkd2FyZSBzdG9yZT8gSSBjYW4gZ2V0 IGl0IGJ5IHRoZSBmb290IGluIHNldmVyYWwgQVdHcyBhdCBhY2UKPj4gaGFyZHdhcmUgYW5kIGhv bWUgZGVzcG90Li4uCj4+Cj4+IEoKPj4KPj4KPj4gQm9iIEJsaWNrIHdyb3RlOgo+Pj4gSSdtIGxv b2tpbmcgZm9yIGEgc291cmNlIG9mIHNtYWxsIGFtb3VudHMgb2YgMiBjb25kdWN0b3IgMjRBV0cg c3RyYW5kZWQKPj4+IGNhYmxlLCBsaWtlIGEgY2hlYXAgQUMgYWRhcHRlciB3b3VsZCBoYXZlIGdv aW5nIG91dCB0byBpdHMgYmFycmVsIHBsdWcuCj4+PiBJIGNhbiBmaW5kIHJlZC9ibGFjayBvciBj bGVhciAic3BlYWtlciB3aXJlIiwgYnV0IEkgd2FudCBhbGwgYmxhY2ssIHdpdGgKPj4+IG9yIHdp dGhvdXQgYSBzdHJpcGUuIFRoZSBvbmx5IHN0dWZmIEkgZmluZCBpcyAkNDAgZm9yIDEwMCBmZWV0 LiBUaGF0J3MgYQo+Pj4gbGlmZXRpbWUgc3VwcGx5IGZvciBtZSBidXQgaWYgaXQgd2FzICQyMCBJ IG1pZ2h0IGdvIGZvciBpdC4KPj4+Cj4+PiBBbnkgbGlua3MgdG8gc29tZXRoaW5nLCBldmVuIGVC YXk/IEFsdGhvdWdoIEkgaGF2ZSBzZWFyY2hlZCBlQmF5IGFuZCBnb3QKPj4+IG5vIHNhdGlzZmFj dGlvbi4KPj4+Cj4+PiBTZWUgYXR0YWNoZWQgcGljdHVyZSBmb3IgYW4gaWRlYSBvZiB3aGF0IEkg d2FudC4KPj4+Cj4+PiBUaGFua3MhCj4+Pgo+Pj4gQm9iCj4KLS0gCmh0dHA6Ly93d3cucGljbGlz dC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFu Z2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWls bWFuL2xpc3RpbmZvL3BpY2xpc3QK .