U29tZW9uZSBzdWdnZXN0ZWQgdGhleSBTb21lb25lIG9uIEZhY2Vib29rIG9ic2VydmVkIHRoYXQg YSBCbHVlIFdoYWxlIGZhcnQKcHJvZHVjZXMgYSBidWJibGUgbGFyZ2UgZW5vdWdoIHRvIGZpdCBh IGhvcnNlIGluLgoKSSBjb21tZW50ZWQ6CgrigJxWb2x1bWUgb2YgYSBnYXMgYnViYmxlIGF0IHN0 YW5kYXJkIGF0bW9zcGhlcmljIHByZXNzdXJlIGF0IDAgZGVncmVlcwpDZWxzaXVzIGlzIDIyLjQg bGl0cmVzIHBlciAiZ3JhbSBtb2wiLiBBIGdyYW0gbW9sIHZhcmllcyB3aXRoIHN1YnN0YW5jZSAt CmJ1dCBpcyB0aGUgc2FtZSBudW1iZXIgb2YgZ3JhbXMgYXMgaW4gdGhlIGF0b21pYyB3ZWlnaHQg b2YgYSBzdWJzdGFuY2UuCkFyZW4ndCB5b3UgZ2xhZCB5b3UgYXNrZWQg8J+Zgi4KCkJVVCBXQUlU IC0gdGhlcmUncyBtb3JlIC0gYW5kIGl0cyBzaW1wbGVyLgpBc3N1bWUgdGhhdCBhIHdoYWxlcyBm bGF0dWxlbnQgZW1pc3Npb25zIGFyZSBtYWlubHkgTWV0aGFuZS4gVGhhdCB3aWxsIG5vdApiZSB3 aG9sbHkgdHJ1ZSwgYnV0IGl0J3MgYSBzdGFydC4KCkEgTWV0aGFuZSBtb2xlY3VsZSBoYXMgZm9y bXVsYSBDSDQgLSBvbmUgY2FyYm9uIGF0b20gYW5kIDQgeCBIeWRyb2dlbgphdG9tcy4gQ2FyYm9u IGhhcyBhdG9taWMgd2VpZ2h0IG9mIGFib3V0IDEyIGFuZCBIeWRyb2dlbiBvZiBhYm91dCAxIHNv Ck1ldGhhbmUgaGFzIGFuIGF0b21pYyB3ZWlnaHQgb2YgYWJvdXQgMTYuCgpTbywgZnJvbSBhYm92 ZSwgMTYgZ3JhbXMgb2YgTWV0aGFuZSBvY2N1cGllcyAyMi40IGxpdHJlcy4gU28gMSBncmFtCm9j Y3VwaWVzIDIyLjQvMTYgPSAxLjQgbGl0cmVzIHBlciBncmFtLgoKLSBXb3JraW5nIG91dCBob3cg bGFyZ2UgYSBob3JzZSBpcyBpcyBwcm9ibGVtYXRpYy4KCkhPV0VWRVIgYSBob3JzZSB1c3VhbGx5 IHdlaWdocyBpbiB0aGUgcmFuZ2UgNDAwIHRvIDEwMDAga2cuIEFzIGEgaG9yc2UKZmxvYXRzIChh bGJlaXQgbW9zdGx5IHN1Ym1lcmdlZCkgdGhlaXIgdm9sdW1lIGluIGxpdHJlcyBpcyBzbGlnaHRs eSBtb3JlCnRoYW4gdGhlaXIgd2VpZ2h0IGluIGtnLgpUbyBiZSBnZW5lcm91cyBhbmQgZml0IGEg bGFyZ2VyIHNpemVkIGhvcnNlIGludG8gdGhlIGJ1YmJsZSBsZXRzIGFkZCBhYm91dAo1MCUgdG8g dGhlIHVwcGVyIHZvbHVtZSAtIGllIGFsbW9zdCBhbGwgaG9yc2VzIHdpbGwgZml0IGludG8gYSBi dWJibGUgb2YKMTUwMCBsaXRyZXMgY2FwYWNpdHkuClRoYXQncyBhIGxhcmdlIGJ1YmJsZS4KCi0g QW5kLCBhdCAxLjQgbGl0cmVzIHBlciBncmFtIChhdCB0aGUgc3VyZmFjZSBvbiBhIGNvbGQgZGF5 KQp0aGF0J3MgYSBtYXNzIG9mIGFib3V0IDEwMDAgZ3JhbXMgb3IgMSBrZy4KLSBBcyBhIGJvbnVz LCBNZXRoYW5lIGhhcyBhbiBlbmVyZ3kgb2YgY29tYnVzdGlvbiBzb21ld2hhdCBzdXBlcmlvciB0 byBnYXMKLyBwZXRyb2wgLSBhYm91dCAxMCAtIDE1IGtXaC9rZy4KU28gYSBrZyBvZiBNZXRoYW5l IGlzIEFCT1VUIHRoZSBlcXVpdmFsZW50IG9mIDEvNCB0byAvMyBvZiBhIFVTIGdhbGxvbiBvZgpw ZXRyb2wuClNPCi0gSWYgeW91IGRyaXZlIGEgUHJpdXMgeW91IGNvdWxkIGV4cGVjdCB0byBnZXQg YWJvdXQgMTUrIG1pbGVzIG9uIGEgQmx1ZQpXaGFsZSB3aGFsZSBmYXJ0LgoKQXMgbm90IG1hbnkg cGVvcGxlIHJlYWRpbmcgdGhpcyBhcmUgbGlhYmxlIHRvIGRyaXZlIFByaXVzJ3MgdGhhdAppbmZv cm1hdGlvbiBpcyBsaWFibGUgdG8gYmUgb2YgbWluaW1hbCB1c2UuIFtPciwgZXZlbiBmb3IgUHJp dXMgZHJpdmVyc10uCgotIEJ5IGFub3RoZXIgbWVhc3VyZSAtIGJ1cm5pbmcgQmx1ZSBXaGFsZSBm YXJ0cyBpbiBhIE1ldGhhbmUgYWRhcHRlZCBnYXMKY29tYnVzdG9yIHdvdWxkIGhlYXQgYSBsYXJn aXNoIGxvdW5nZSBmb3Igb25lIGhvdXIgb24gYSBjb2xkIG5pZ2h0LgpbSW1wbGljaXQgYXNzdW1w dGlvbnMgcmUgaW5zdWxhdGlvbiBhbmQgZXh0ZXJuYWwgYW1iaWVudCBhbmQgY29tZm9ydApyZXF1 aXJlbWVudHMgY2FuIGJlIGRpc2N1c3NlZCBpZiBkZXNpcmVkXS4KLgpfX19fX19fX19fX19fX19f X19fCgoKU29tZW9uZSBzdWdnZXN0ZWQgdGhhdCB0aGV5IG1heSBiZSBhYmxlIHRvIGJlIHVzZWQg dG8gc2luayBob3VzZWJvYXRzLgpJIHJlc3BvbmRlZDoKCkFzaWRlIC0gbWFwIHRoZSBCZXJtdWRh IFRyaWFuZ2xlIG9udG8gaXRzIGFudGlwb2RlcyBpbiB0aGUgc291dGhlcgpoZW1pc3BoZXJlLiBX aGVyZSBkbyB5b3UgZ2V0LiBTdXJwcmlzZWVkIC0geW91IHNob3VsZG4ndCBiZSA6LSkuCgoKLSBX RnMgYXJlIHVubGlrZWx5IHRvIFNJTksgYSBob3VzZWJvYXQuCi0gSWYgeW91IHdhbnQgdG8gbWFr ZSBvbmUgZmxvYXQgYXdheSB5b3UgY291bGQgY2FwdHVyZSB0aGVtIGluIGEgYmFsbG9vbi4KTWV0 aGFuZSB3ZWlnaHMgYWJvdXQgNTAlIG9mIGFpciBwZXIgdm9sdW1lLgpBbGxvdyBzb21lIGZvciBj YW5vcHkgLSBzYXkgMjUlIG9mIG1hc3Mgb2YgYWlyIGZvciBsaWZ0IHRvIGJlIHNhZmUuCkFib3V0 IDggZ3JhbXMgcGVyIDIyLjRsaXRyZXMgb3IgMC4zNmcvbGl0cmUsIG9yIDIuOCBsaXRyZXMgcGVy IGdyYW0uClNheSBhIGhvdXNlYm9hdCB3ZWlnaHMgMTAgdG9uZXMgLSBJIGhhdmUgTk8gaWRlYSB3 aGF0IGlzIGEgcmVhbGlzdGljCndlaWdodC4gQWRqdXN0IGFzIGRlc2lyZWQuCjEwdCA9IDEwLDAw MCBrZyA9IDEwLDAwMCwwMDAgZ3JhbXMuClNvIHlvdSBuZWVkIGFib3V0IDEwLDAwMCwwMDAgeCAy LjggPSAyOCwwMDAsMDAwIGxpdHJlcyBvZiBlbnZlbG9wZSEhIQpBYm91dCBhIDMwIG1ldHJlIC8g MTAwIGZvb3QgYSBzaWRlIGN1YmUgIQoKCl9fX19fX19fX19fX19fX19fX19fX19fCgoKRSZPRQoK Ck15IHdpZmUgb3BpbmVzIHRoYXQgSSBzaG91bGQgYmUgY29uY2VudHJhdGluZyBvbiBvdGhlciBz dHVmZi4KSSBhZ3JlZS4KCgoKIFJ1c3NlbGwKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVj aHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBt ZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3Rp bmZvL3BpY2xpc3QK .