Shakespeare: A Critical Study of His Mind and Art, Edward Dowden

Print Friendly, PDF & Email

[[pre]]czo4MDQzMzI6XCJSRUZBQ0UgVE8gVEhFIFRISVJEIEVESVRJT04uIA0KDQpJbiB0aGUgcHJlc2VudCBlZGl0aW9uLCBJIGhhdmUgbWF7WyYqJl19ZGUgc3VjaCBjb3JyZWN0aW9ucyBhcyANCmFwcGVhcmVkIG5lZWRmdWwsIGFuZCBoYXZlIGJyb3VnaHQgbXkgc3RhdGVtZW50cyBvbntbJiomXX0gDQpzb21lIGRvdWJ0ZnVsIHBvaW50cyBpbnRvIGhhcm1vbnkgd2l0aCB0aGUgbGF0ZXN0IHJlLSANCnN1bHRzIG9mIFNoYWtzcGVye1smKiZdfWlhbiBzY2hvbGFyc2hpcC4gDQoNCkkgd2lzaCB0byBpbnNpc3QgdXBvbiB0aGUgc3RhdGVtZW50IG1hZGUgb24gcC4gMjQ2IA0KdGh7WyYqJl19YXQgSnVsaXVzIEdjZXNhciBsaWVzIGluIHBvaW50IG9mIHRpbWUgYmVzaWRlIEhhbWxldCANCkJvdGggYXJlIHRyYWdlZGllcyBvZntbJiomXX0gdGhvdWdodCByYXRoZXIgdGhhbiBvZiBwYXNzaW9uOyANCmJvdGggcHJlc2VudCwgaW4gdGhlaXIgY2hpZWYgY2hhcmFjdGVycywge1smKiZdfXRoZSBzcGVjdGFjbGUgb2YgDQpub2JsZSBuYXR1cmVzIHdoaWNoIGZhaWwgdGhyb3VnaCBzb21lIHdlYWtuZXNzIG9yIGRlZmktIA17WyYqJl19CmNpZW5jeSByYXRoZXIgdGhhbiB0aHJvdWdoIGNyaW1lLiBVcG9uIEJydXR1cyBhcyB1cG9uIA0KSGFtbGV0IGEgYnVyZGVuIGlzIHtbJiomXX1sYWlkIHdoaWNoIGhlIGlzIG5vdCBhYmxlIHRvIGJlYXIgOyANCm5laXRoZXIgQnJ1dHVzIG5vciBIYW1sZXQgaXMgZml0dGVkIGZve1smKiZdfXIgYWN0aW9uLCB5ZXQgYm90aCANCmFyZSBjYWxsZWQgdG8gYWN0IGluIGRhbmdlcm91cyBhbmQgZGlmZmljdWx0IGFmZmFpcnMuIEp7WyYqJl19dWxpLSANCnVzIENjZXNhciB3YXMgcHJvYmFibHkgY29tcGxldGUgYmVmb3JlIEhhbWxldCBhc3N1bWVkIA0KaXRzIGxhdGVzdCBmb3tbJiomXX1ybSwgcGVyaGFwcyBiZWZvcmUgSGFtbGV0IHdhcyB3cml0dGVuLiBTdGlsbCwgDQpnaXZpbmcgdGhlIHJlYWRlciBhIGNhdXRpb24se1smKiZdfSBhcyBJIGRpZCBpbiB0aGUgY2FzZSBvZiBUaGUgDQpUZW1wZXN0XiBJIGFtIG5vdCB1bndpbGxpbmcgdG8gc3BlYWsgb2YgSGFtbGV7WyYqJl19dCBhcyB0aGUgDQpzZWNvbmQgb2YgU2hha3NwZXJlXCdzIHRyYWdlZGllcy4gSGFtbGV0IHNlZW1zIHRvIGhhdmUgDQppdHMgcm9vdHN7WyYqJl19IHNvIGRlZXAgaW4gU2hha3NwZXJlXCdzIG5hdHVyZSwgaXQgd2FzIHNvIG11Y2ggYSANCnN1YmplY3Qgb2Ygc3BlY2lhbCBwcmVkaWx7WyYqJl19ZWN0aW9uLCBpdCBpcyBzbyBjbG9zZWx5IGNvbm5lY3RlZCANCndpdGggb2xkZXIgZHJhbWF0aWMgd29yay4gV2UgYWNxdWlyZSB0aHtbJiomXX1lIHNhbWUgZmVlbGluZyANCndpdGggcmVmZXJlbmNlIHRvIEhhbWxldCB3aGljaCB3ZSBoYXZlIGZvciBHb2V0aGVcJ3MgDQpGYXVzdHtbJiomXX0g4oCUIHRoYXQgaXQgaGFzIHRvIGRvIHdpdGggYWxtb3N0IHRoZSB3aG9sZSBvZiB0aGUgDQpkZWVwZXIgcGFydCBvZiB0aGUgcG9le1smKiZdfXRcJ3MgbGlmZSB1cCB0byB0aGUgZGF0ZSBvZiBpdHMgY3JlYXRpb24uIA0KDQp2aSBQcmVmYWNlIHRvIHRoZSBUaGlyZCBFZGl0aW9ue1smKiZdfS4gDQoNCkFmdGVyIFNoYWtzcGVyZSBoYWQgd3JpdHRlbiB0aGVzZSB0d28gdHJhZ2VkaWVzLCBvaSANCuKAondoaWxlIGhlIHdhcyB7WyYqJl19d3JpdGluZyB0aGVtLCBoZSBjb250aW51ZWQgdG8gd3JpdGUgY29tLSANCmVkeS4gQnV0IHRoZSBnZW5pYWwgc3Bpcml0IG9mIGNvbXtbJiomXX1lZHkgd2FzIGRlc2VydGluZyBoaW0uIA0KVHdlbGZ0aCBOaWdodCByZXN1bWVzIGFsbCB0aGUgYWRtaXJhYmxlIGh1bW9yb3VzIGNoe1smKiZdfWFyLSANCmFjdGVyaXN0aWNzIG9mIHRoZSBncm91cCBvZiBjb21lZGllcyB3aGljaCBpdCBjb21wbGV0ZXMuIA0KVGhlbiB0aGUgY2h7WyYqJl19YW5nZSBjb21lcyA7IEFsbCBecyBXZWxsIHRoYXQgRW5kcyBXZWxsIGlzIA0KZ3JhdmUgYW5kIGVhcm5lc3Q7IE1lYXN1cmUgZm9yIHtbJiomXX1NZWFzdXJlIGlzIGRhcmsgYW5kIA0KYml0dGVyLiBJbiB0aGUgZmlyc3QgZWRpdGlvbiBvZiB0aGlzIHdvcmsgSSBkaWQgbm90IHZle1smKiZdfW50LSANCnVyZSB0byBhdHRlbXB0IGFuIGludGVycHJldGF0aW9uIG9mIFRyb2lsdXMgYW5kIENyZXNzaWRhLiANCkkgbm93IGJlbGl7WyYqJl19ZXZlIHRoaXMgc3RyYW5nZSBhbmQgZGlmZmljdWx0IHBsYXkgd2FzIGEgbGFzdCANCmF0dGVtcHQgdG8gY29udGludWUgY29tZWR5LHtbJiomXX0gbWFkZSB3aGVuIFNoYWtzcGVyZSBoYWQgDQpjZWFzZWQgdG8gYmUgYWJsZSB0byBzbWlsZSBnZW5pYWxseSwgYW5kIHdoZW4gaGUge1smKiZdfW11c3QgYmUgDQplaXRoZXIgaXJvbmljYWwgb3IgZWxzZSB0YWtlIGEgZGVlcCwgcGFzc2lvbmF0ZSwgYW5kIHRyYWctIA0KaWNhbCB7WyYqJl19dmlldyBvZiBsaWZlLiANCg0KSSBoYXZlIGVsc2V3aGVyZSB3cml0dGVuIGFzIGZvbGxvd3MgOiANCg0KXCIgVHJvaWx1cyBhbmQgQ3J7WyYqJl19ZXNzaWRhIGFwcGVhcmVkIGluIHR3byBxdWFydG8gZWRpdGlvbnMgaW4gdGhlIHllYXIgMTYwOSA7IA0KaW4gdGhlIHRpdGxlLXBhZ3tbJiomXX1lIG9mIHRoZSBlYXJsaWVyIG9mIHRoZSB0d28gaXQgaXMgc3RhdGVkIHRvIGhhdmUgYmVlbiBhY3RlZCBhdCANCnRoZSBHbG9iZSA7e1smKiZdfSB0aGUgbGF0ZXIgY29udGFpbnMgYSBzaW5ndWxhciBwcmVmYWNlIGluIHdoaWNoIHRoZSBwbGF5IGlzIHNwb2tlbiANCm9mIGFzICp7WyYqJl19IG5ldmVyIHN0YWxcJ2Qgd2l0aCB0aGUgc3RhZ2UsIG5ldmVyIGNsYXBwZXItY2xhd1wnZCB3aXRoIHRoZSBwYWxtZXMgb2YgDQp0aGUge1smKiZdfXZ1bGdhcixcJyBhbmQgYXMgaGF2aW5nIGJlZW4gcHVibGlzaGVkIGFnYWluc3QgdGhlIHdpbGwgb2YgKiB0aGUgZ3JhbmQgDQpwb3Nze1smKiZdfWVzc29ycy5cJyBQZXJoYXBzIHRoZSBwbGF5IHdhcyBwcmludGVkIGF0IGZpcnN0IGZvciB0aGUgdXNlIG9mIHRoZSB0aGVhLSANCnRye1smKiZdfWUsIGFuZCB3aXRoIHRoZSBpbnRlbnRpb24gb2YgYmVpbmcgcHVibGlzaGVkIGFmdGVyIGJlaW5nIHJlcHJlc2VudGVkLCBhbmQgDQp7WyYqJl19dGhhdCB0aGUgcHJpbnRlcnMsIGFnYWluc3QgdGhlIGtub3duIHdpc2ggb2YgdGhlIHByb3ByaWV0b3JzIG9mIFNoYWtzcGVyZVwncyB7WyYqJl19DQptYW51c2NyaXB0LCBhbnRpY2lwYXRlZCB0aGUgZmlyc3QgcmVwcmVzZW50YXRpb24gYW5kIGlzc3VlZCB0aGUgcXVhcnRvIHdpdHtbJiomXX1oIA0KdGhlIGF0dHJhY3RpdmUgYW5ub3VuY2VtZW50IHRoYXQgaXQgd2FzIGFuIGFic29sdXRlIG5vdmVsdHkuIFRoZSBlZGl0b3Jze1smKiZdfSANCm9mIHRoZSBmb2xpbywgYWZ0ZXIgaGF2aW5nIGRlY2lkZWQgdGhhdCBUcm9pbHVzIGFuZCBDcmVzc2lkYSBzaG91bGQgZm9sbG97WyYqJl19dyANCkJvcm5lbyBhbmQgSnVsaWV0IGFtb25nIHRoZSBUcmFnZWRpZXMsIGNoYW5nZWQgdGhlaXIgbWluZHMsIGFwcGFyZW50bHkgdXtbJiomXX1uLSANCmNlcnRhaW4gaG93IHRoZSBwbGF5IHNob3VsZCBiZSBjbGFzc2VkLCBhbmQgcGxhY2VkIGl0IGJldHdlZW4gdGhlIEhpc3Rve1smKiZdfXJpZXMgDQphbmQgVHJhZ2VkaWVzOyB0aGlzIGxlZCB0byB0aGUgY2FuY2VsbGluZyBvZiBhIGxlYWYsIGFuZCB0aGUgZmlsbGluZy17WyYqJl19dXAgb2YgYSANCmJsYW5rIHNwYWNlIGxlZnQgYnkgdGhlIGFsdGVyYXRpb24gd2l0aCp0aGUgUHJvbG9ndWUgdG8gVHJvaWx1cyBhbntbJiomXX1kIENyZXNzaWRhIA0K4oCUIGEgcHJvbG9ndWUgd2hpY2ggaXMgYmVsaWV2ZWQgYnkgc2V2ZXJhbCBjcml0aWNzIG5vdCB0byBoYXZle1smKiZdfSBjb21lIGZyb20gDQpTaGFrc3BlcmVcJ3MgaGFuZC4gDQoNClwiIFRoZXJlIGlzIGV4dHJlbWUgdW5jZXJ0YWludHkgd2l0aCByZXNwZXtbJiomXX1jdCB0byB0aGUgZGF0ZSBvZiB0aGUgcGxheS4gRGVrLSANCmtlciBhbmQgQ2hldHRsZSB3ZXJlIGVuZ2FnZWQgaW4gMTU5OSB1cG9ue1smKiZdfSBhIHBsYXkgb24gdGhpcyBzdWJqZWN0LCBhbmQgZnJvbSANCmFuIGVudHJ5IGluIHRoZSBTdGF0aW9uZXJzXiBSZWdpc3RlciBvbiB7WyYqJl19RmViLiBZLCAxNjAyLTMsIGl0IGFwcGVhcnMgdGhhdCBhIA0KDQpQcmVmYWNlIHRvIHRoZSBUaGlyZCBFZGl0aW9uLiB2ZmwgDQoNCntbJiomXX1UcmNpaGlzIGFuZCBDcmVzc2lkYSBoYWQgYmVlbiBhY3RlZCBieSBTaGFrc3BlcmVcJ3MgY29tcGFueSwgdGhlIExvcmQgDQpDaGFtYntbJiomXX1lcmxhaW5cJ3MgU2VydmFudHMuIFdhcyB0aGlzIFNoYWtzcGVyZVwncyBwbGF5PyBXZSBhcmUgdGhyb3duIA0KYmFjayB1cG9uIGludGV7WyYqJl19cm5hbCBldmlkZW5jZSB0byBkZWNpZGUgdGhlIHF1ZXN0aW9uLCBhbmQgdGhlIGludGVybmFsIGV2aS0gDQpkZW5jZSBpcyBpdHNlbHtbJiomXX1mIG9mIGEgY29uZmxpY3Rpbmcga2luZCwgYW5kIGhhcyBsZWQgdG8gb3Bwb3NpdGUgY29uY2x1c2lvbnMuIA0KVGhlIG1hc3NpdmUge1smKiZdfXdvcmxkbHkgd2lzZG9tIG9mIFVseXNzZXMgYXJndWVzLCBpdCBpcyBzdXBwb3NlZCwgaW4gZmF2b3Igb2YgYSANCmxhdGUgZGF0ZSx7WyYqJl19IGFuZCB0aGUgZ2VuZXJhbCB0b25lIG9mIHRoZSBwbGF5IGhhcyBiZWVuIGNvbXBhcmVkIHdpdGggdGhhdCBvZiANClRpbW9uIG9mIHtbJiomXX1BdGhlbnMsIFRoZSBmYWN0IHRoYXQgaXQgZG9lcyBub3QgY29udGFpbiBhIHNpbmdsZSB3ZWFrLSBlbmRpbmcgDQphbmQgb25seSBze1smKiZdfWl4IGxpZ2h0LWVuZGluZ3MgaXMsIGhvd2V2ZXIsIGFsbW9zdCBkZWNpc2l2ZSBldmlkZW5jZSBhZ2FpbnN0IG91ciANCnBsYWNpbmd7WyYqJl19IGl0IGFmdGVyIGVpdGhlciBUaW1vbiBvciBNYWNiZXRoXiBhbmQgdGhlIG90aGVyIG1ldHJpY2FsIGNoYXJhY3Rlci0gDQppc3RpY3tbJiomXX1zIGFyZSBjb25zaWRlcmVkIGJ5IEhlcnR6YmVyZ14gdGhlIG1vc3QgY2FyZWZ1bCBzdHVkZW50IG9mIHRoaXMgY2xhc3Mgb2YgDQple1smKiZdfXZpZGVuY2UsIGluIHRoZSBjYXNlIG9mIHRoZSBwcmVzZW50IHBsYXksIHRvIHBvaW50IHRvIGEgZGF0ZSBhYm91dCAxNjAzLiANCk97WyYqJl19dGhlciBhdXRob3JpdGllcyBwbGFjZSBpdCBhcyBsYXRlIGFzIDE2MDggb3IgMTYwOTsgd2hpbGUgYSB0aGlyZCB0aGVvcnkgDQoodHtbJiomXX1oYXQgb2YgVmVycGxhbmNrIGFuZCBHcmFudCBXaGl0ZSkgYXR0ZW1wdHMgdG8gc29sdmUgdGhlIGRpZmZpY3VsdGllcyBieSANCnN1e1smKiZdfXBwb3NpbmcgdGhhdCBpdCB3YXMgZmlyc3Qgd3JpdHRlbiBpbiAxNjAzIGFuZCByZXZpc2VkIGFuZCBlbmxhcmdlZCBzaG9ydGx5IA17WyYqJl19CmJlZm9yZSB0aGUgcHVibGljYXRpb24gb2YgdGhlIHF1YXJ0by4gUGFydHMgb2YgdGhlIHBsYXkg4oCUIG5vdGFibHkgdGhlIGxhc3tbJiomXX10IA0KYmF0dGxlIG9mIEhlY3RvciDigJQgYXBwZWFyIG5vdCB0byBiZSBieSBTaGFrc3BlcmUuIFRoZSBpbnRlcnByZXRhdGlvbiBve1smKiZdfWYgdGhlIA0KcGxheSBpdHNlbGYgaXMgYXMgZGlmZmljdWx0IGFzIHRoZSBhc2NlcnRhaW5tZW50IG9mIHRoZSBleHRlcm5hbCBmYWN7WyYqJl19dHMgb2YgaXRzIA0KaGlzdG9yeS4gV2l0aCB3aGF0IGludGVudGlvbiwgYW5kIGluIHdoYXQgc3Bpcml0LCBkaWQgU2hha3NwZXJlIHtbJiomXX13cml0ZSB0aGlzIA0Kc3RyYW5nZSBjb21lZHkgPyBBbGwgdGhlIEdyZWVrIGhlcm9lcyB3aG8gZm91Z2h0IGFnYWluc3QgVHJveSBhe1smKiZdfXJlIHBpdGktIA0KbGVzc2x5IGV4cG9zZWQgdG8gcmlkaWN1bGUgOyBIZWxlbiBhbmQgQ3Jlc3NpZGEgYXJlIGxpZ2h0LCBzZW5zdWF7WyYqJl19bCwgYW5kIGhlYXJ0LSANCmxlc3MsIGZvciB3aG9zZSBzYWtlIGl0IHNlZW1zIGluZmF0dWF0ZWQgZm9sbHkgdG8gc3RyaWtlIGEgYntbJiomXX1sb3cgOyBUcm9pbHVzIGlzIGFuIA0KZW50aHVzaWFzdGljIHlvdW5nIGZvb2wgOyBhbmQgZXZlbiBIZWN0b3IsIHRob3VnaCB2YWxpe1smKiZdfWFudCBhbmQgZ2VuZXJvdXMsIA0Kc3BlbmRzIGhpcyBVZmUgaW4gYSBjYXVzZSB3aGljaCBoZSBrbm93cyB0byBiZSB1bnByb2ZpdGF7WyYqJl19YmxlLCBpZiBub3QgZXZpbC4gDQpBbGwgdGhpcyBpcyBzZWVuIGFuZCBzYWlkIGJ5IFRoZXJzaXRlcywgd2hvc2UgbWluZCBpcyBtYXtbJiomXX1kZSB1cCBvZiB0aGUgc2N1bSANCm9mIHRoZSBmb3VsbmVzcyBvZiBodW1hbiBsaWZlLiBCdXQgY2FuIFNoYWtzcGVyZVwncyB2aWV3IHtbJiomXX1vZiB0aGluZ3MgaGF2ZSANCmJlZW4gdGhlIHNhbWUgYXMgdGhhdCBvZiBUaGVyc2l0ZXMgPyANCg0KXCIgVGhlIGNlbnRyYWwgdGhlbXtbJiomXX1lLCB0aGUgeW91bmcgbG92ZSBhbmQgZmFpdGggb2YgVHJvaWx1cyBnaXZlbiB0byBvbmUgd2hvIA0Kd2FzIGZhbHNlIGFuZCBmaWNre1smKiZdfWxlLCBhbmQgaGlzIGRpc2NvdmVyeSBvZiBoaXMgZXJyb3IsIGxlbmRzIGl0cyBjb2xvciB0byB0aGUgDQp3aG9sZSBwbGF5LiBJdCB7WyYqJl19aXMgdGhlIGNvbWVkeSBvZiBkaXNpbGx1c2lvbi4gQW5kIGFzIFRyb2lsdXMgcGFzc2VkIHRocm91Z2ggDQp0aGUgaWxsdXNpb24gb3tbJiomXX1mIGhpcyBmaXJzdCBsb3ZlIGZvciB3b21hbiwgc28gYnkgbWlkZGxlIGxpZmUgdGhlIHdvcmxkIGl0c2VsZiANCm9mdGVuIGFwcGVhe1smKiZdfXJzIGxpa2Ugb25lIHRoYXQgaGFzIG5vdCBrZXB0IGhlciBwcm9taXNlcywgYW5kIHdobyBpcyBhIHBvb3IgDQpkZWNlaXZlci4gV2V7WyYqJl19IGNvbWUgdG8gc2VlIHRoZSBzZWFteSBzaWRlIG9mIGxpZmUgOyBhbmQgZnJvbSB0aGlzIG1vb2Qgb2YgDQpkaXNpbGx1c2lvbiBpdHtbJiomXX0gaXMgYSBkZWxpdmVyYW5jZSB0byBwYXNzIG9uIGV2ZW4gdG8gYSBkYXJrIGFuZCB0cmFnaWMgdmlldyBvZiANCmxpZmUsIHRvIHdoe1smKiZdfWljaCBiZWF1dHkgYW5kIHZpcnR1ZSByZWFwcGVhciwgZXZlbiB0aG91Z2ggaHVtYW4gd2Vha25lc3Mgb3IgDQpodW1hbiB2aWNlIG17WyYqJl19YXkgZG8gdGhlbSBiaXR0ZXIgd3JvbmcuIE5vdyBzdWNoIGEgbW9vZCBvZiBjb250ZW1wdHVvdXMgDQpkZXByZWNpYXRpb24gb2YgbHtbJiomXX1pZmUgbWF5IGhhdmUgY29tZSBvdmVyIFNoYWtzcGVyZSwgYW5kIHNwb2lsZWQgaGltLCBhdCB0aGF0IA0KdGltZSwgZm9yIGEgd3Jpe1smKiZdfXRlciBvZiBjb21lZHkuIEJ1dCBmb3IgSXNhYmVsbGEgd2Ugc2hvdWxkIGZpbmQgdGhlIGNvbWluZy0gDQpvbiBvZiB0aGlzIG1vb2R7WyYqJl19IGluIE1lYXN1cmUgZm9yIE1lYXN1cmUgOyB0aGVyZSBpcyBwZXJoYXBzIGEgdG91Y2ggb2YgaXQgaW4gDQpIYW1sZXQsIEF0IHRoaXtbJiomXX1zIHRpbWUgVHJvaWx1cyBhbmQgQ3Jlc3NpZGEgbWF5IGhhdmUgYsKrZXUgd3JpdHRlbiwgYW5kIA0KDQp2aWlpIFByZWZhY2UgdG8ge1smKiZdfXRoZSBUaGlyZCBFZGl0aW9uLiANCg0KdGhlbiBTaGFrc3BlcmUsIHJvdXNpbmcgaGltc2VsZiB0byBhIGRlZXBlciBpbnF1ZXN0IGl7WyYqJl19bnRvIHRoaW5ncywgbWF5IGhhdmUgDQpwYXNzZWQgb24gdG8gaGlzIGdyZWF0IHNlcmllcyBvZiB0cmFnZWRpZXMuIA0KDQpcIiBMZXR7WyYqJl19IHVzIGNhbGwgdGhpcywgdGhlbiwgdGhlIGNvbWVkeSBvZiBkaXNpbGx1c2lvbiA7IGFuZCBjZXJ0YWlubHksIHdoZXJldmVmIA0Kd3tbJiomXX1lIHBsYWNlIGl0LCB3ZSBtdXN0IG5vdGljZSBhIHN0cmlraW5nIHJlc2VtYmxhbmNlIGluIGl0cyBzcGlyaXQgYW5kIHN0cnVjdHVye1smKiZdfWUgDQp0byBUaW1vbiBvZiBBdGhlbnMsIFRpbW9uIGhhcyBhIGxheCBiZW5ldm9sZW5jZSBhbmQgc2hhbGxvdyB0cnVzdCBpbiB0aGV7WyYqJl19IA0KZ29vZG5lc3Mgb2YgbWVuIDsgaGUgaXMgdW5kZWNlaXZlZCwgYW5kIGJpdHRlcmx5IHR1cm5zIGF3YXkgZnJvbSB0aGUgd2hvbHtbJiomXX1lIA0KaHVtYW4gcmFjZSBpbiBhIHJhZ2Ugb2YgZGlzYXBwb2ludG1lbnQuIEluIHRoZSBzYW1lIHBsYXkgQWxjaWJpYWRlcyBpcywge1smKiZdfWluIA0KbGlrZSBtYW5uZXIsIHdyb25nZWQgYnkgdGhlIHdvcmxkIDsgYnV0IGhlIHRha2VzIGhpcyBpbmp1cmllcyBmaXJtbHksIGx7WyYqJl19aWtlIGEgDQptYW4gb2YgYWN0aW9uIGFuZCBleHBlcmllbmNlLCBhbmQgc2V0cyBhYm91dCB0aGUgc3ViZHVpbmcgb2YgaGlzIGJhc3tbJiomXX1lIGFuLSANCnRhZ29uaXN0cy4gQXBlbWFudHVzLCBhZ2FpbiwgaXMgdGhlIGRvZy1saWtlIHJldmlsZXIgb2YgbWVuLCBrbm93aW5ne1smKiZdfSB0aGVpciANCmJhc2VuZXNzLCBhbmQgYmFzZSBoaW1zZWxmLiBIZXJlLCBUcm9pbHVzLCB0aGUgbm9ibGUgZ3JlZW4gLWdvb3NlLCB7WyYqJl19Z29lcyANCnRocm91Z2ggaGlzIHlvdXRoZnVsIGFnb255IG9mIGFzY2VydGFpbmluZyB0aGUgdW53b3J0aGluZXNzIG9mIGhlciB0b3tbJiomXX0gd2hvbSANCmhlIGhhZCBnaXZlbiBoaXMgZmFpdGggYW5kIGhvcGUgOyBidXQgaGUgaXMgbWFkZSBvZiBhIHN0cm9uZ2VyIGFuZCBte1smKiZdfW9yZSBlbi0gDQplcmdldGljIGZpYnJlIHRoYW4gVGltb24sIGFuZCBoZSBjb21lcyBvdXQgb2YgaGlzIHRyaWFsIGEgbWFuLCBubyB7WyYqJl19bG9uZ2VyIGEgDQpib3ksIHNvbWV3aGF0IGhhcmRlciBwZXJoYXBzIHRoYW4gYmVmb3JlLCBidXQgc3RydW5nIHVwIGZvciBzdXN0YXtbJiomXX1pbmVkIGFuZCANCmRldGVybWluZWQgYWN0aW9uLiBIZSBpcyBjb21wbGV0ZWx5IGRlbGl2ZXJlZCBmcm9tIENyZXNzaWRhIGFuZCBme1smKiZdfXJvbSBQYW4tIA0KZGFyLCBhbmQgYnkgSGVjdG9yXCdzIGRlYXRoIHN1cHBsaWVkIHdpdGggYSBtb3RpdmUgZm9yIHRoZSB1dG1vc3Qge1smKiZdfWV4ZXJ0aW9uIA0Kb2YgaGlzIGhlcm9pYyBwb3dlcnMuIFVseXNzZXMsIHRoZSBhbnRpdGhlc2lzIG9mIFRyb2lsdXMsIGlzIHRoZSB7WyYqJl19bXVjaC1leHBlcmktIA0KZW5jZWQgbWFuIG9mIHRoZSB3b3JsZCwgcG9zc2Vzc2VkIG9mIGl0cyBoaWdoZXN0IGFuZCBicm9hZGVzdHtbJiomXX0gd2lzZG9tLCB3aGljaCANCnlldCBhbHdheXMgcmVtYWlucyB3b3JsZGx5IHdpc2RvbSwgYW5kIG5ldmVyIHJpc2VzIGludG8gdGhle1smKiZdfSBzcGlyaXR1YWwgY29uLSANCnRlbXBsYXRpb24gb2YgYSBQcm9zcGVyby4gSGUgc2VlcyBhbGwgdGhlIHVud29ydGhpbmVzcyBvZiB7WyYqJl19aHVtYW4gbGlmZSwgYnV0IA0Kd2lsbCB1c2UgaXQgZm9yIGhpZ2ggd29ybGRseSBlbmRzIDsgdGhlIHNwaXJpdCBvZiBpcnJldmVyZXtbJiomXX1uY2UgYW5kIGluc3Vib3JkaW5hLSANCnRpb24gaW4gdGhlIGNhbXAgaGUgd291bGQgcmVzdHJhaW4gYnkgdGhlIHBvbGl0aWMgbWFje1smKiZdfWhpbmVyeSBvZiB3aGF0IGhlIGNhbGxzIA0KKiBkZWdyZWVcJyDigJQgSS4gaWlpLiA3NS0xMzYuIENyZXNzaWRhIGhlIHJlYWRzIGF0e1smKiZdfSBhIGdsYW5jZSwgc2VlaW5nIHRvIHRoZSBib3R0b20gDQpvZiBoZXIgc2Vuc3VhbCBzaGFsbG93IG5hdHVyZSA7IGFuZCBoZSBhc3N7WyYqJl19aXN0cyBhdCB0aGUgZGlzaWxsdXNpb25pbmcgb2YgdGhlIA0KeW91bmcgUHJpbmNlLCB3aG9zZSBub2JsZW5lc3MgaXMgYXBwYXJlbntbJiomXX10IHRvIGhpbSBmcm9tIHRoZSBmaXJzdC4gVGhlcnNpdGVzIA0KYWxzbyBzZWVzIHRocm91Z2ggdGhlIGlsbHVzaW9ucyBvZiB0aGUge1smKiZdfXdvcmxkLCBidXQgaGlzIHZlcnkgaW5jYXBhY2l0eSB0byBoYXZlIA0KZXZlciBiZWVuIGRlY2VpdmVkIGlzIGEgc2lnbiBvZiB0aGV7WyYqJl19IGlnbm9ibGUgbmF0dXJlIG9mIHRoZSB3cmV0Y2guIEhlIGZlZWRzIA0KYW5kIGdyb3dzIHN0cm9uZyB1cG9uIGdhcmJhZ2UgOyBwaHtbJiomXX15c2ljYWwgbmFzdGluZXNzZXMgYW5kIG1vcmFsIHNvcmVzIGFyZSANCnRoZSBsdXh1cmllcyBvZiBoaXMgaW1hZ2luYXRpb24uIFRoe1smKiZdfWUgb3RoZXIgY2hhcmFjdGVycyDigJQgdGhlIGJydXRlIHdhcnJpb3IsIA0KQWpheCA7IHRoZSBpbnNvbGVudCBzZWxmLXdvcnNoaXB7WyYqJl19cGVyLCBBY2hpbGxlcyA7IEhlY3RvciwgaGVyb2ljLCBidXQgdG9vIGNhcmVsZXNzIA0KaG93IGFuZCB3aGVuIGhlIGV4cGVuZHMgaHtbJiomXX1pcyBoZXJvaWMgc3RyZW5ndGgg4oCUIGFyZSBvZiBtaW5vciBpbXBvcnRhbmNlLiBBcyANCnRoZSBibGluZG5lc3Mgb2YgeW91dGhme1smKiZdfXVsIGxvdmUgaXMgc2hvd24gaW4gVHJvaWx1cywgc28gb2xkIGFnZSBpbiBpdHMgbGVhc3QgdmVuLSANCmVyYWJsZSBmb3JtLCBnaXZ7WyYqJl19ZW4gdXAgdG8gYSBncmF0aWZpY2F0aW9uIG9mIHNlbnN1YWxpdHkgYnkgcHJveHksIGlzIGV4cG9zZWQgdG8gDQpkZXJpc2lvbiBpbntbJiomXX0gUGFuZGFyLCBUaGUgbWF0ZXJpYWxzIGZvciBUcm9pbHVzIGFuZCBDcmVzc2lkYSB3ZXJlIGZvdW5kIGJ5IA0KU2hha3NwZXJlIGlue1smKiZdfSBDaGF1Y2VyXCdzIFRyb2lsdXMgYW5kIENyZXNzaWRhOyBDYXh0b25cJ3MgdHJhbnNsYXRpb24gZnJvbSB0aGUgDQpGcmVuY2gsIFJlY3tbJiomXX11eWxlc14gb3IgRGVzdHJ1Y3Rpb24gb2YgVHJveTsgcGVyaGFwcywgYWxzbywgTHlkZ2F0ZVwncyBUcm95ZSBCb2tlLCANClRoZXJzaXtbJiomXX10ZXMgaGUgcHJvYmFibHkgZm91bmQgbSBCb29rIElJLiBvZiBDaGFwbWFuXCdzIEhvbWVyLiBTaGFrc3BlcmVcJ2EgDQpjb25jZXB0aW97WyYqJl19biBvZiBDcmVzc2lkYSBhbmQgb2YgUGFuZGFyIGRpZmZlcnMgd2lkZWx5IGZyb20gQ2hhdWNlclwnczsgaW4gDQoNClByZWZhY2UgdG97WyYqJl19IHRoZSBUaGlyZCBFZGl0aW9uLiANCg0KSVggDQoNClNoYWtzcGVyZVwncyBoYW5kcywgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBnZW57WyYqJl19ZXJhbCBkZXNpZ24gb2YgdGhlIGRyYW1hLCANCkNyZXNzaWRhIGFuZCBoZXIgdW5jbGUgZ3JvdyBiYXNlIGFuZCBjb250ZW1wdGlibHtbJiomXX1lLiBTb21lIGNyaXRpY3MgaGF2ZSANCnN1cHBvc2VkIHRoYXQgdGhlIGxvdmUtc3Rvcnkgd2FzIHdyaXR0ZW4gYXQgYSBtdWNoIGVhe1smKiZdfXJsaWVyIGRhdGUgdGhhbiB0aGUgDQpwYXJ0IHdoaWNoIHRyZWF0cyBvZiBVbHlzc2VzIDsgYnV0IHdlIGhhdmUgc2VlbiB0aGF0IHR7WyYqJl19aGUgY29udHJhc3RlZCBjaGFyYWMtIA0KdGVycyBvZiBUcm9pbHVzIGFuZCBVbHlzc2VzIGFyZSBib3RoIGVzc2VudGlhbCBwYXJ0c3tbJiomXX0gb2YgdGhlIGNvbmNlcHRpb24gb2YgdGhlIA0KZHJhbWEsIGFuZCB3ZXJlIGNyZWF0ZWQgYXMgY291bnRlcnBhcnRzLlwnXCcgDQoNClR7WyYqJl19aGUgZm9sbG93aW5nIHRhYmxlIHByZXNlbnRzIHRoZSBwbGF5cyBpbiBhIHNlcmllcyBvZiANCmdyb3VwcyB3aGljaCBzdWNjZWVkIHtbJiomXX1vbmUgYW5vdGhlciBpbiBjaHJvbm9sb2dpY2FsIG9yLSANCmRlci4gVGhlIHBvc2l0aW9uIG9mIHRocmVlIG9yIGZvdXIgcGxheXMge1smKiZdfW9mIHNlY29uZGFyeSANCmltcG9ydGFuY2UgbWF5IGJlIGRvdWJ0ZnVsIDsgYW5kIEkgY2xhaW0gbm8gY2VydGFpbnR5IA0KZm9yIHR7WyYqJl19aGUgb3JkZXIgb2YgdGhlIHBsYXlzIHdpdGhpbiB0aGUgZ3JvdXBzIDsgYnV0IEkgb2ZmZXIgDQp0aGUgYXJyYW5nZW1lbnQgb2YgZ3tbJiomXX1yb3VwcyB3aXRoIGdyZWF0IGNvbmZpZGVuY2UgYXMgdG8gDQppdHMgZ2VuZXJhbCBjb3JyZWN0bmVzcy4gSXQgd2lsbCBiZSBvYnNle1smKiZdfXJ2ZWQgdGhhdCBpbiBzb21lIA0KY2FzZXMgb25lIGdyb3VwIG92ZXJsYXBzIGluIHBvaW50IG9mIHRpbWUgdGhhdCB3aGljaCBmb2x7WyYqJl19LSANCmxvd3MgaXQuIFRvIGtlZXAgdGhlIGNvbWVkaWVzIHRvZ2V0aGVyLCBJIGhhdmUgcGxhY2VkIA0KXCJNaWRkbGUgVHJhZ2VkeVwie1smKiZdfSBhZnRlciB0aGUgdGhpcmQgZGl2aXNpb24gb2Ygd2hhdCBJIA0KaGF2ZSBuYW1lZCBcIkxhdGVyIENvbWVkeSA7XCIgaXQgd2lsbCBzdXtbJiomXX1mZmljZSBpZiB0aGUgcmVhZGVyIA0KYmVhciBpbiBtaW5kIHRoYXQsIGFzIGEgZmFjdCwgdGhlIGNvbWVkeSBvdmVybGFwcyB0aGUge1smKiZdfXN1Yy0gDQpjZWVkaW5nIGdyb3VwIG9mIHRyYWdlZGllcy4gDQoNCjEuIFByZS1TaGFrc3BlcmlhbiBHcm91cC4gDQp7VG91Y2hlZCB7WyYqJl19YnkgU2hha3NwZXJlLikgDQpUaXR1cyBBbmRyb25pY3VzICgxNTg4LTkwKS4gDQoNCjEgSGVucnkgVkkuICgxNTkwLTkxKS4gDQoNCntbJiomXX0yLiBFYXJseSBDb21lZHkuIA0KTG92ZVwncyBMYWJvciBcJ3MgTG9zdCAoMTU5MCkuIA0KQ29tZWR5IG9mIEVycm9ycyAoMTU5MSkuIA17WyYqJl19ClR3byBHZW50bGVtZW4gb2YgVmVyb25hICgxNTkyLSANCg0KOTMpLiANCk1pZHN1bW1lci1OaWdodFwncyBEcmVhbSgxNTkzLTk0KS57WyYqJl19IA0KDQozLiBNYXJsb3dlLVNoYWtzcGVyZSBHcm91cC4gDQpFYXJseSBIaXN0b3J5LiANCg0KMiBhbmQgMyBIZW5yeSBWTCAoMTU5MXtbJiomXX0tOTIpLiANClJpY2hhcmQgSUlJICgxNTkzKS4gDQoNCjQuIEVhcmx5IFRyYWdlZHkuIA0KDQpSb21lbyBhbmQgSnVsaWV0ICg/IHR3e1smKiZdfW8gZGF0ZXMuIDFeOSAxLCANCjE1OTcpLiANCg0KNS4gTWlkZGxlIEhpc3RvcnkuIA0KDQpSaWNoYXJkIElMICgxNTk0KS4gDQpLaW57WyYqJl19ZyBKb2huICgxNTk1KS4gDQoNCjYuIE1pZGRsZSBDb21lZHkuIA0KTWVyY2hhbnQgb2YgVmVuaWNlICgxNTk2KS4gDQoNClwnNy4gTGF7WyYqJl19dGVyIEhpc3RvcnkuIA0KDQpIaXN0b2p5IGFuZCBDb21lZHkgVW5pdGVkIA0KDQoxIGFuZCAyIEhlbnJ5IElWLigxNTlcJzctOTgpLiB7WyYqJl19DQpIZW5yeSBWLiAoMTU5OSkuIA0KDQpQcmVmYWNlIHRvIHRoZSBUaGlyZCBFZGl0aW9uLiANCg0KOC4gTGF0ZXIgQ29tZWR5LiANCntbJiomXX0NCihhKSBSb3VnaCBhbmQgQm9pc3Rlcm91cyBDb21lZHksIA0KDQpUYW1pbmcgb2YgdGhlIFNocmV3ICg/IDE1OTcpLiANCk1lcnJ5e1smKiZdfSBXaXZlcyAoPyAxNTk4KS4gDQoNCihiKSBKb3ljbXNeIFJlZmluZWReIFJvbWFudGljLiANCg0KTXVjaCBBZG8gYWJvdXQgTm90aGl7WyYqJl19bmcgKDE1OTgpLiANCkFzIFlvdSBMaWtlIEl0ICgxNTk5KS4gDQpUd2VsZnRoIE5pZ2h0ICgxNjAwLTEpLiANCg0KKGMpIFNlcmlvdXtbJiomXX1zXiBEYXJoXiBJcm9uaWNhbCwgDQoNCkFsbCBcJ3MgV2VsbCAoPyAxNjAxLTIpLiANCk1lYXN1cmUgZm9yIE1lYXN1cmUgKDE2MDMpLntbJiomXX0gDQpUcm9pbHVzIGFuZCBDcmVzc2lkYSAoPyAxNjAzIDsgcmV2aXNlZCANCjE2MDcgPykuIA0KDQo5LiBNaWRkbGUgVHJhZ2VkeS4ge1smKiZdfQ0KDQpKdWxpdXMgQ2Flc2FyICgxNjAxKS4gDQpIYW1sZXQgKDE2MDIpLiANCg0KMTAuIExhdGVyIFRyYWdlZHkuIA0KT3RoZWxsbyB7WyYqJl19KDE2MDQpLiANCkxlYXIgKDE2MDUpLiANCk1hY2JldGggKDE2MDYpLiANCkFudG9ueSBhbmQgQ2xlb3BhdHJhICgxNjA3KSwgDQpDb3tbJiomXX1yaW9sYW51cyAoMTYwOCkuIA0KVGltb24gKDE2MDctOCkuIA0KDQoxMS4gUm9tYW5jZXMuIA0KUGVyaWNsZXMgKDE2MDgpLiANCkN5e1smKiZdfW1iZWxpbmUgKDE2MDkpLiANClRlbXBlc3QgKDE2MTApLiANCldpbnRlclwncyBUYWxlICgxNjEwLTExKS4gDQoNCjEyLiBGcmFnbWVue1smKiZdfXRzLiANClR3byBOb2JsZSBLaW5zbWVuICgxNjEyKS4gDQpIZW5yeSBWSUlMICgxNjEyLTEzKS4gDQoNClBvZW1zLiANCg0KVmVudXN7WyYqJl19IGFuZCBBZG9uaXMgKD8gMTU5MikuIA0KTHVjcmVjZSAoMTU5My05NCkuIA0KU29ubmV0cyAoPyAxNTk1LTE2MDUpLiANCg0KVGhlIHtbJiomXX1zdHVkZW50IHdpbGwgb2JzZXJ2ZSBpbiB0aGlzIGFycmFuZ2VtZW50IGVhcmx5LCANCm1pZGRsZSwgYW5kIGxhdGVyIENvbWVkeSA7e1smKiZdfSBlYXJseSwgbWlkZGxlLCBhbmQgbGF0ZXIgSGlzLSANCnRvcnkgOyBhbmQgZWFybHksIG1pZGRsZSwgYW5kIGxhdGVyIFRyYWdlZHl7WyYqJl19LiBOb3Qgb25seSANCmlzIGl0IHdlbGwgdG8gdmlldyB0aGUgZW50aXJlIGJvZHkgb2YgU2hha3NwZXJlXCdzIHBsYXlzIGluIA0KdGh7WyYqJl19ZSBvcmRlciBvZiB0aGVpciBjaHJvbm9sb2dpY2FsIHN1Y2Nlc3Npb24sIGJ1dCBhbHNvIHRvIA0KdHJhY2UgaW4gY2hyb25vbG9naXtbJiomXX1jYWwgb3JkZXIgdGhlIHRocmVlIHNlcGFyYXRlIGxpbmVzIG9mIA0KQ29tZWR5LCBIaXN0b3J5LCBhbmQgVHJhZ2VkeS4gVGhlIGdye1smKiZdfW91cCBuYW1lZCBSby0gDQptYW5jZXMgY29ubmVjdCB0aGVtc2VsdmVzLCBvZiBjb3Vyc2UsIHdpdGggdGhlIENvbWUtIA0KZGllcyB7WyYqJl19OyBidXQgdGhlcmUgaXMgYSBncmF2ZSBlbGVtZW50IGluIHRoZW0gd2hpY2ggaXMgY29uLSANCm5lY3RlZCB3aXRoIHRoZSBUcmFnZXtbJiomXX1kaWVzIHdoaWNoIHByZWNlZGVkIHRoZW0uIEl0IGhhcyANCmJlZW4gbm90aWNlZCB0aGF0IHRoZSBSb21hbmNlcyBoYXZlIGluIGNve1smKiZdfW1tb24gdGhlIGluLSANCmNpZGVudHMgb2YgcmV1bmlvbnMsIHJlY29uY2lsaWF0aW9ucywgYW5kIHRoZSByZWNvdmVyeSBvZiANCmx7WyYqJl19b3N0IGNoaWxkcmVuLiBTaGFrc3BlcmUsIHRob3VnaCBzbyByZW1hcmthYmxlIGZvciBoaXMgDQoNClByZWZhY2UgdG8gdGhlIFRoaXtbJiomXX1yZCBFZGl0aW9uLiB4aSANCg0KcG93ZXIgb2YgY3JlYXRpbmcgY2hhcmFjdGVyLCBpcyBub3QgZGlzdGluZ3Vpc2hlZCBhbW9uZyANe1smKiZdfQpkcmFtYXRpc3RzIGZvciBoaXMgcG93ZXIgb2YgaW52ZW50aW5nIGluY2lkZW50LiBIYXZpbmcgDQpmb3VuZCBhIHNpdHVhdGlvbiB7WyYqJl19d2hpY2ggaW50ZXJlc3RlZCBoaXMgaW1hZ2luYXRpb24gb3IgDQp3YXMgc3VjY2Vzc2Z1bCBvbiB0aGUgc3RhZ2UsIGhlIGludHJvZHtbJiomXX11Y2VkIGl0IGFnYWluIGFuZCANCmFnYWluLCB3aXRoIHZhcmlhdGlvbnMuIFRodXMsIGluIHRoZSBFYXJseSBDb21lZGllcywgDQpte1smKiZdfWlzdGFrZXMgb2YgaWRlbnRpdHksIGRpc2d1aXNlcywgZXJyb3JzLCBhbmQgYmV3aWxkZXJtZW50cywgDQppbiB2YXJpb3VzIGZvcm17WyYqJl19cywgcmVjdXIgYXMgYSBzb3VyY2Ugb2YgbWVycmltZW50IGFuZCANCm1hdGVyaWFsIGZvciBhZHZlbnR1cmUuIEluIHRoZSBMYXRlcntbJiomXX0gQ29tZWRpZXMsIGFnYWluLCANCml0IGlzIHF1aXRlIHJlbWFya2FibGUgaG93IFNoYWtzcGVyZSAoZ2VuZXJhbGx5IGluIHRoZSANe1smKiZdfQpwb3J0aW9ucyBvZiB0aGVzZSBwbGF5cyB3aGljaCBhcmUgZHVlIHRvIGhpcyBvd24gaW52ZW4tIA0KdGlvbikgcmVwZWF0cywgd2l7WyYqJl19dGggdmFyaWF0aW9ucywgdGhlIGluY2lkZW50IG9mIGEgdHJpY2sgb3IgDQpmcmF1ZCBwcmFjdGlzZWQgdXBvbiBvbmUgd2hvIGlzIHtbJiomXX1hIHNlbGYgLWxvdmVyLCBhbmQgaXRzIGNvbi0gDQpzZXF1ZW5jZXMsIGdyYXZlIG9yIGdheS4gVGh1cyBGYWxzdGFmZiBpcyBmYXR1e1smKiZdfW91cyBlbm91Z2ggDQp0byBiZWxpZXZlIHRoYXQgdHdvIEVuZ2xpc2ggbWF0cm9ucyBhcmUgZHlpbmcgb2YgbG92ZSANCmZvciBoaW17WyYqJl19LCBhbmQgaXMgbWFkZSB0aGUgdmljdGltIG9mIHRoZWlyIG1lcnJ5IHRyaWNrcy4gDQpNYWx2b2xpbyBpcyBtYWRlIGFuIGFzcyBvZntbJiomXX0gYnkgdGhlIG1pc2NoaWV2b3VzIE1hcmlhIA0KdGFraW5nIGFkdmFudGFnZSBvZiBoaXMgc29sZW1uIHNlbGYtZXN0ZWVtOyBCZWF0e1smKiZdfXJpY2UgDQphbmQgQmVuZWRpY2sgYXJlIGN1bm5pbmdseSBlbnRyYXBwZWQsIHRocm91Z2ggdGhlaXIgDQpnb29kLW5hdHVyZWQgdmF7WyYqJl19bml0eSwgaW50byBsb3ZlIGZvciB3aGljaCB0aGV5IGhhZCBiZWVuIA0KYWxyZWFkeSBwcmVkaXNwb3NlZCA7IHRoZSBib2FzdGZ1bHtbJiomXX0gUGFyb2xsZXMgaXMgZGVjZWl2ZWQsIA0KZmxvdXRlZCwgYW5kIGRpc2dyYWNlZCBieSBoaXMgZmVsbG93LXNvbGRpZXJzIDsgYW5ke1smKiZdfSAoU2hhay0gDQpzcGVyZVwncyBtb29kIGdyb3dpbmcgZWFybmVzdCwgYW5kIGhpcyB0aG91Z2h0cyBiZWluZyANCnNldCB1cG9uIGRle1smKiZdfWVwIHF1ZXN0aW9ucyBvZiBjaGFyYWN0ZXIpIEFuZ2VsbywgdGhlIHNlbGYtIA0KZGVjZWl2ZXIsIGJ5IHRoZSBjcmFmdCBvZiB0aGV7WyYqJl19IER1a2UsIGlzIGRpc2NvdmVyZWQgcGFpbmZ1bC0gDQpseSB0byB0aGUgZXllcyBvZiBvdGhlcnMgYW5kIHRvIGhpcyBvd24gaGVhcntbJiomXX10LiANCg0KRm9yIHRoZSBpbmRleCwgd2hpY2ggYWRkcyB0byB0aGUgdXNlZnVsbmVzcyBvZiB0aGUgDQpwcmVzZW50IGVkaXRpb24se1smKiZdfSBJIGhhdmUgdG8gdGhhbmsgbXkgZnJpZW5kIE1yLiBBcnRodXIgDQpFLiBMb3ZlLCBvZiBUcmluaXR5IENvbGxlZ2UsIER1Ymxpbi57WyYqJl19IA0KDQpJdCBoYXMgYmVlbiBhIGhhcHBpbmVzcyB0byBtZSB0byBmaW5kIHRoYXQgd2hhdCBJIGhhdmUgDQp3cml0dGVuIG9uIFNoYXtbJiomXX1rc3BlcmUgaGFzIGJlZW4gYXBwcm92ZWQgYnkgZGlzdGluZ3Vpc2hlZCANClNoYWtzcGVyZSBzY2hvbGFycyBpbiBFbmdsYW5kLCBpe1smKiZdfW4gR2VybWFueSwgaW4gRnJhbmNlLCANCmFuZCBpbiBBbWVyaWNhLiBJIGRvIG5vdCB0aGFuayBteSBjcml0aWNzIGZvciB0aGVpciB7WyYqJl19DQoNCnhpaSBQcmVmYWNlIHRvIHRoZSBUaGlyZCBFZGl0aW9uLiANCg0KZ2VuZXJvdXMgcmVjb2duaXRpb24gb2Ygd2hhdGV2ZXIgbXtbJiomXX1heSBkZXNlcnZlIGNvbW1lbnQgDQpkYXRpb24gaW4gbXkgd29yayA7IEkgbWF5LCBob3dldmVyLCBhdCBsZWFzdCBleHByZXNzIHRoe1smKiZdfWUgDQpzZW5zZSBvZiBlbmNvdXJhZ2VtZW50IGRlcml2ZWQgZnJvbSB3aGF0IHRoZXkgaGF2ZSANCnNhaWQuIE9uZSBvZiB0aGUgZWF7WyYqJl19cmxpZXN0IHZvaWNlcyB3aGljaCBzcG9rZSBhIHdvcmQgb2YgDQplbXBoYXRpYyBhcHByb3ZhbCBvZiB0aGlzIGJvb2sgaXMgbm93IHtbJiomXX1zaWxlbnQgaW4gZGVhdGgsIA0KYW5kIEkgY2Fubm90IGJ1dCBkZXNpcmUgdG8gYXNzb2NpYXRlLCBhdCBsZWFzdCBieSBteSBncmF0e1smKiZdfWUtIA0KZnVsIHJlY29sbGVjdGlvbiwgdGhpcyBTdHVkeSBvZiBTaGFrc3BlcmUgd2l0aCB0aGUgaG9uLSANCm9yZWQgbmFtZSBvZiB7WyYqJl19aXRzIHJldmlld2VyIGluIFRoZSBBY2FkZW15XiB0aGUgbGF0ZSBNciwgDQpSaWNoYXJkIFNpbXBzb24sICwgDQoNClBSRUZBQ0UgVHtbJiomXX1PIFRIRSBGSVJTVCBFRElUSU9OLiANCg0KVGhlIGF0dGVtcHQgbWFkZSBpbiB0aGlzIHZvbHVtZSB0byBjb25uZWN0IHRoZSBzdHVke1smKiZdfXkgDQpvZiBTaGFrc3BlcmVcJ3Mgd29ya3Mgd2l0aCBhbiBpbnF1aXJ5IGFmdGVyIHRoZSBwZXJzb25hbC0gDQppdHkgb2YgdGhlIHdye1smKiZdfWl0ZXIsIGFuZCB0byBvYnNlcnZlLCBhcyBmYXIgYXMgaXMgcG9zc2libGUsIGluIA0KaXRzIHNldmVyYWwgc3RhZ2VzLCB0aGUgZ3J7WyYqJl19b3d0aCBvZiBoaXMgaW50ZWxsZWN0IGFuZCBjaGFyYWN0ZXIgDQpmcm9tIHlvdXRoIHRvIGZ1bGwgbWF0dXJpdHksIGRpc3Rpbmd1aXtbJiomXX1zaGVzIHRoZSB3b3JrIGZyb20gDQp0aGUgZ3JlYXRlciBudW1iZXIgb2YgcHJlY2VkaW5nIGNyaXRpY2lzbXMgb2YgU2hha3NwZXJle1smKiZdfS4gDQpBIHNlbnNlIG9mIGhhemFyZCBhbmQgZGlmZmljdWx0eSBuZWNlc3NhcmlseSBhY2NvbXBhbmllcyANCnRoZSBhdHRlbXB0IHR7WyYqJl19byBwYXNzIHRocm91Z2ggdGhlIGNyZWF0aW9ucyBvZiBhIGdyZWF0IA0KZHJhbWF0aWMgcG9ldCB0byB0aGUgbWluZCBvZiB0aGUgY3tbJiomXX1yZWF0b3IuIFN0aWxsIG5vIG9uZSwgDQpJIHN1cHBvc2UsIHdvdWxkIG1haW50YWluIHRoYXQgYSBwcm9kdWN0IG9mIG1pbmQgc28ge1smKiZdfQ0KbGFyZ2UgYW5kIG1hbmlmb2xkIGFzIHRoZSB3cml0aW5ncyBvZiBTaGFrc3BlcmUgY2FuIGZhaWwgDQppbiBzb21lIG1lYXN1cmV7WyYqJl19IHRvIHJldmVhbCBpdHMgb3JpZ2luIGFuZCBjYXVzZS4gDQoNClRoZSByZWFkZXIgbXVzdCBub3QgZmFsbCBpbnRvIHRoZSBlcnJvcntbJiomXX0gb2Ygc3VwcG9zaW5nIA0KdGhhdCBJIGVuZGVhdm9yIHRvIGlkZW50aWZ5IFNoYWtzcGVyZSB3aXRoIGFueSBvbmUgb2YgDQpoaXMge1smKiZdfWRyYW1hdGljIHBlcnNvbmFnZXMuIFRoZSBjb21wbGV4IG5hdHVyZSBvZiB0aGUgDQpwb2V0IGNvbnRhaW5lZCBhIGxvdmUtaWRlYWx7WyYqJl19aXN0IGxpa2UgRW9tZW8gKHN0dWRlbnRzIG9mIA0KdGhlIFNvbm5ldHMgd2lsbCBub3QgZmluZCBpdCBkaWZmaWN1bHQgdG8gYWRtaXtbJiomXX10IHRoZSBwb3NzaS0gDQpiaWxpdHkgb2YgdGhpcykgOyBpdCBjb250YWluZWQgYSBzcGVjdWxhdGl2ZSBpbnRlbGxlY3QgbGlrZSANe1smKiZdfQp0aGF0IG9mIEhhbWxldC4gQnV0IHRoZSBjb21wbGV0ZSBTaGFrc3BlcmUgd2FzIHVuLSANCmxpa2UgUm9tZW8gYW5kIHVubGlrZSB7WyYqJl19SGFtbGV0LiBTdGlsbCwgaXQgaXMgZXZpZGVudCwgbm90IA0KZnJvbSBvbmUgcGxheSwgYnV0IGZyb20gbWFueSwgdGhhdCB0aGUgc3tbJiomXX10cnVnZ2xlIGJldHdlZW4gDQpcImJsb29kXCIgYW5kIFwianVkZ21lbnRcIiB3YXMgYSBncmVhdCBhZmZhaXIgb2YgU2hhay0gDQpzcGVyZXtbJiomXX1cJ3MgbGlmZSA7IGFuZCBpbiBhbGwgaGlzIGxhdGVyIHdvcmtzIHdlIG9ic2VydmUgdGhlIA0KDQplZmZvcnQgdG8gY29udHJvbCBhIHtbJiomXX13aXN0ZnVsIGN1cmlvc2l0eSBhYm91dCB0aGUgbXlzdGVyaWVzIA0KDQpJIA0KDQppIA0KDQp4aXYgUHJlZmFjZSB0byB0aGUgRmlye1smKiZdfXN0IEVkaXRpb24uIA0KDQpvZiBodW1hbiBleGlzdGVuY2UuIEFuZCB0aGVyZWZvcmUsIEkgc2F5LCBhIHBvdGVudGlhbCANCkVvbWV7WyYqJl19byBhbmQgYSBwb3RlbnRpYWwgSGFtbGV0LCB0YWtpbmcgdGhlc2UgbmFtZXMgYXMgDQpyZXByZXNlbnRhdGl2ZSBvZiBjZXJ0YWluIHtbJiomXX1zcGlyaXR1YWwgdGVuZGVuY2llcyBvciBoYWJpdHMsIA0KZXhpc3RlZCBpbiBTaGFrc3BlcmUuIE5vciBkbyBJIGlkZW50aWZ5IFNoe1smKiZdfWFrc3BlcmUgd2l0aCANClByb3NwZXJvIDsgYWx0aG91Z2ggU2hha3NwZXJlXCdzIHRlbXBlciBpbiB0aGUgcGxheXMgb2YgDQp0aGUge1smKiZdfWxhc3QgcGVyaW9kIGlzIHRoZSB0ZW1wZXIgb2YgUHJvc3Blcm8uIEl0IHdvdWxkIG5vdCANCmJlIGVhc3kgdG8gcGljdHVyZSB0byB7WyYqJl19b3Vyc2VsdmVzIHRoZSBncmVhdCBtYWdpY2lhbiB3YWl0ZWQgDQpvbiBieSBzdWNoIG1pbmlzdGVyaW5nIHNwaXJpdHMgYXMgU2lyIHtbJiomXX1Kb2huIEZhbHN0YWZmLCBTaXIgDQpUb2J5IEJlbGNoLCBhbmQgdGhlIG51cnNlIG9mIEp1bGlldC4gDQoNCkluIG9yZGVyIHRvIGdle1smKiZdfXQgc3Vic3RhbnRpYWwgZ3JvdW5kIHRvIGdvIHVwb24sIEkgaGF2ZSANCnRob3VnaHQgaXQgbmVjZXNzYXJ5IHRvIGZvcm0gYWNxdWF7WyYqJl19aW50YW5jZSB3aXRoIGEgY29uLSANCnNpZGVyYWJsZSBib2R5IG9mIHJlY2VudCBTaGFrc3BlcmUgc2Nob2xhcnNoaXAsIGJvdGggDXtbJiomXX0KRW5nbGlzaCBhbmQgQ29udGluZW50YWwuIEJ1dCBJIGF2b2lkIHRoZSBkaXNjdXNzaW9uIG9mIA0KcHVyZWx5IHNjaG9sYXN0aWMge1smKiZdfXF1ZXN0aW9ucy4gVG8gYXBwcm9hY2ggU2hha3NwZXJlIG9uIA0KdGhlIGh1bWFuIHNpZGUgaXMgdGhlIG9iamVjdCBvZiB0aGlzIGJ7WyYqJl19b29rIDsgYnV0IEkgYmVsaWV2ZSANCnRoYXQgU2hha3NwZXJlIGlzIG5vdCB0byBiZSBhcHByb2FjaGVkIG9uIGFueSBzaWRlIA0KdHtbJiomXX1ocm91Z2ggZGlsZXR0YW50aXNtLiANCg0KSSBoYXZlIGNhcmVmdWxseSBhY2tub3dsZWRnZWQgbXkgb2JsaWdhdGlvbnMgdG8gcHJle1smKiZdfS0gDQpjZWRpbmcgd3JpdGVycy4gSW4gd29ya2luZyBvdXQgdGhlIGdlbmVyYWwgZGVzaWduIGFuZCANCm1haW4gZmVhdHVyZXMgb2Z7WyYqJl19IHRoaXMgc3R1ZHksIEkgd2FzIGFibGUgdG8gb2J0YWluIGxpdHRsZSANCmhlbHA7IGJ1dCBpbiBkZXRhaWxzIEkgb2J0YWluZWQgbXtbJiomXX11Y2guIE15IHJlZmVyZW5jZXMgDQpleHByZXNzLCBJIG1heSBzYXksIGNvbnNpZGVyYWJseSBtb3JlIHRoYW4gbXkgYWN0dWFsIA0Ke1smKiZdfWRlYnQ7IGZvciBpbiB0aG9zZSBpbnN0YW5jZXMgaW4gd2hpY2ggSSBmb3VuZCB0aGF0IG15IA0KdGhvdWdodCBoYWQgYmVlbiBhbnR7WyYqJl19aWNpcGF0ZWQsIGFuZCB3ZWxsIGV4cHJlc3NlZCBlbHNlLSANCndoZXJlLCBJIGhhdmUgbm90ZWQgdGhlIGNvaW5jaWRlbmNlLiBEb3tbJiomXX11YnRsZXNzIG1hbnkgDQppbnN0YW5jZXMgb2Ygc3VjaCBjb2luY2lkZW5jZSByZW1haW4gdW5vYnNlcnZlZCBieSBtZS4gDQpTaW5je1smKiZdfWUgSSB3cm90ZSB0aGUgY2hhcHRlciBpbiB3aGljaCBUaGUgVGVtcGVzdCBpcyBjb24tIA0Kc2lkZXJlZCwgSSBoYXZlIHJlYWQgZm97WyYqJl19ciB0aGUgZmlyc3QgdGltZSBMbG95ZFwncyBlc3NheSB1cG9uIA0KdGhlIHBsYXksIGFuZCBJIGhhdmUgZm91bmQgc29tZSBzdHJpa2l7WyYqJl19bmcgYW5kIHNhdGlzZmFjdG9yeSANCnBvaW50cyBvZiBhZ3JlZW1lbnQgYmV0d2VlbiBteXNlbGYgYW5kIHRoYXQgZ29vZCBjcml0aXtbJiomXX1jLiANCg0KSW4gYWxsIGVzc2VudGlhbHMgSSBoYXZlIGFkaGVyZWQgdG8gdGhlIGNocm9ub2xvZ2ljYWwgDQptZXRob2Qgb2Ygc3R1e1smKiZdfWR5aW5nIFNoYWtzcGVyZVwncyB3cml0aW5ncy4gQnV0IGl0IHNlZW1lZCANCg0KUHJlZmFjZSB0byB0aGUgRmlyc3QgRWRpdGlvbi4ge1smKiZdfXh2IA0KDQpwZWRhbnRyeSB0byBzYWNyaWZpY2UgY2VydGFpbiBhZHZhbnRhZ2VzIG9mIGNvbnRyYXN0IGFuZCANCmNvbXBhcmlzb257WyYqJl19IHRvIGEgcHJvY2VkdXJlIGluIGV2ZXJ5IGluc3RhbmNlLCBmcm9tIHBsYXkgDQp0byBwbGF5LCBhY2NvcmRpbmcgdG8gZGF0ZXMuIHtbJiomXX1UaHVzLCBpbiB0aGUgY2hhcHRlciBvbiB0aGUgDQpFbmdsaXNoIEhpc3RvcmljYWwgUGxheXMgSSBoYXZlLCBmb3IgY29udmVuaWVue1smKiZdfWNlIG9mIGlsbHVzLSANCnRyYXRpb24sIHRyZWF0ZWQgSGVucnkgVkkuIGFmdGVyIEtpbmcgSm9obl4gYW5kIGJlZm9yZSANClJpY2h7WyYqJl19YXJkIElJSS4gSW4gdGhlIG9wZW5pbmcgb2YgdGhlIGVpZ2h0aCBjaGFwdGVyLCBJIA0KaGF2ZSBleHBsYWluZWQgd2hhdCBJIGJlbHtbJiomXX1pZXZlIHRvIGJlIHRoZSByaWdodCBtYW5uZXIgDQpvZiB1c2luZyB0aGUgY2hyb25vbG9naWNhbCBtZXRob2QuIEkgaGF2ZSBjYWxse1smKiZdfWVkIFRoZSANClRlbXBlc3QgU2hha3NwZXJlXCdzIGxhc3QgcGxheSwgYnV0IEkgYW0gcXVpdGUgd2lsbGluZyB0byANCmdyYW50IHRoe1smKiZdfWF0IEEgV2ludGVyXnMgVGFsZV4gSGVucnkgVklJSS5eIGFuZCBwZXJoYXBzIA0KQ3ltYmVsaW5lIG1heSBhY3R1YWxseSBoYXZlIHN7WyYqJl19dWNjZWVkZWQgVGhlIFRlbXBlc3QuIA0KRm9yIHRoZSBwdXJwb3NlIG9mIHN1Y2ggYSBzdHVkeSBhcyB0aGUgcHJlc2VudCwgaWYgaXtbJiomXX10IGJlIA0KYWRtaXR0ZWQgdGhhdCB0aGVzZSBwbGF5cyBiZWxvbmcgdG8gb25lIGFuZCB0aGUgc2FtZSBwZS0gDQpyaW9kIOKAlCB0e1smKiZdfWhlIGZpbmFsIHBlcmlvZCBvZiB0aGUgZ3Jvd3RoIG9mIFNoYWtzcGVyZVwncyBhcnQgDQrigJQgaXQgbWF0dGVycyBsaXR0bGUgaG93e1smKiZdfSB0aGUgcGxheXMgc3VjY2VlZGVkIG9uZSBhbm90aGVyIA0Kd2l0aGluIHRoYXQgcGVyaW9kLiANCg0KSSByZWZlciBpbiBvbmUgcGF7WyYqJl19c3NhZ2UgdG8gSGVucnkgWUlJSS4gKGFjdCBpdi4sIHNjLiAyKSANCmFzIGlmIHdyaXR0ZW4gYnkgU2hha3NwZXJlLiBUaGUgc2NlbntbJiomXX1lIHdhcywgSSBiZWxpZXZlLCANCmNvbmNlaXZlZCBieSBTaGFrc3BlcmUsIGFuZCBjYXJyaWVkIG91dCBpbiB0aGUgc3Bpcml0IG9me1smKiZdfSANCmhpcyBkZXNpZ24gYnkgRmxldGNoZXIuIA0KDQpBYm91dCBoYWxmIG9mIHRoaXMgdm9sdW1lIHdhcyByZWFkIGluIHRoZSBmb3J7WyYqJl19bSBvZiBsZWN0LSANCnVyZXMgKFwiIFNhdHVyZGF5IExlY3R1cmVzIGluIGNvbm5lY3Rpb24gd2l0aCBBbGV4YW5kcmEgDQpDb2xsZWd7WyYqJl19ZSwgRHVibGluXCIpIGluIHRoZSBNdXNldW0gQnVpbGRpbmdzLCBUcmluaXR5IENvbC0gDQpsZWdlLCBEdWJsaW4sIGR1cmluZyB0aGV7WyYqJl19IHNwcmluZyBvZiB0aGUgeWVhciAxODc0LiANCg0KSW4gc29tZSBpbnN0YW5jZXMgSSBoYXZlIHJlZmVycmVkIHRvLCBhbmQgcXVvdHtbJiomXX1lZCBmcm9tLCANCnBhcGVycyBieSB0aGUgUmV2LiBGLiBHLiBGbGVheSBhcyByZWFkIGF0IG1lZXRpbmdzIG9mIA0KdGhlIE5ldyBTe1smKiZdfWhha3NwZXJlIFNvY2lldHksIGJ1dCB3aGljaCBoYXZlIG5vdCByZWNlaXZlZCANCnRoZSBmaW5hbCBjb3JyZWN0aW9ucyBvZiB0aGV7WyYqJl19aXIgYXV0aG9yLiANCg0KSW4gc2VlaW5nIHRoZSB2b2x1bWUgdGhyb3VnaCB0aGUgcHJlc3MsIEkgcmVjZWl2ZWQgDQp2YWx1YWJsZXtbJiomXX0gc3VnZ2VzdGlvbnMgYW5kIGNvcnJlY3Rpb25zIGZyb20gTXIuIEhhcm9sZCANCkxpdHRsZWRhbGUsIHRoZSBlZGl0b3IsIGZvciB0e1smKiZdfWhlIF1TXCJldyBTaGFrc3BlcmUgU29jaWV0eSwgDQpvZiBcIiBUaGUgVHdvIE5vYmxlIEtpbnNtZW4sXCIgZm9yIHdoaWNoIEkgdGhhbmt7WyYqJl19IGhpbS4gDQoNClhWSSANCg0KUHJlZmFjZSB0byB0aGUgRmlyc3QgRWRpdGlvbi4gDQoNCkkgaGF2ZSB0byB0aGFuayB0aGUgRGlyZXtbJiomXX1jdG9yIG9mIHRoZSBOZXcgU2hha3NwZXJlIA0KU29jaWV0eSwgTXIuIEYuIEouIEZ1cm5pdmFsbCwgZm9yIHBlcm1pc3Npb24gdG8ge1smKiZdfXByaW50IHRoZSANClwiVHJpYWwgVGFibGUgb2YgdGhlIE9yZGVyIG9mIFNoYWtzcGVyZVwncyBQbGF5cyxcIiB3aGljaCANCmFwcGVhcnN7WyYqJl19IGluIGhpcyBpbnRyb2R1Y3Rpb24gdG8gdGhlIG5ldyBlZGl0aW9uIG9mIFwiIFNoYWtlLSANCnNwZWFyZSBDb21tZW50YXJpZXMgXCIge1smKiZdfWJ5IEdlcnZpbnVzLiANCg0KVFJJQUwgVEFCTEUgT0YgVEhFIE9SREVSIE9GIFNIQUtTUEVSRVwnUyBQTEFZUy4gDQoNCltUaGlzLCBse1smKiZdfWlrZSBhbGwgb3RoZXIgdGFibGVzLCBtdXN0IGJlIGxvb2tlZCBvbiBhcyBtZXJlbHkgdGVudGF0aXZlLCBhbmQgb3BlbiANCnRvIG17WyYqJl19b2RpZmljYXRpb24gZm9yIGFueSBnb29kIHJlYXNvbnMuIEJ1dCBpZiBvbmx5IGl0IGNvbWVzIG5lYXIgdGhlIHRydXRoLCANCnRoZXtbJiomXX1uIHJlYWRpbmcgdGhlIHBsYXlzIGluIGl0cyBvcmRlciB3aWxsIHRoZSBzb29uZXIgZW5hYmxlIHRoZSBzdHVkZW50IHRvIA0KZmlue1smKiZdfWQgb3V0IGl0cyBtaXN0YWtlcy4gKE0uIHN0YW5kcyBmb3IgXCIgbWVudGlvbmVkIGJ5IEZyYW5jaXMgTWVyZXMgaW4gaGlzIA0KKlBhe1smKiZdfWxsYWRpcyBUYW1pYSxcJyAxNTk4LlwiKV0gDQoNCkluIGhpcyBpbnRyb2R1Y3RvcnkgZXNzYXlzIHRvICpcJyBTaGFrZXNwZWFyZVwncyBEe1smKiZdfXJhbWF0aXNjaGUgV2Vya2UgXCIgKEdlcm1hbiANClNoYWtlc3BlYXJlIFNvY2lldHkpLCBQcm9mLiBIZXJ0emJlcmcgZGF0ZXMgVGl0e1smKiZdfXVzIDE1ODctODkgOyBMb3ZlXCdzIExhYm9yIFwnwqsgDQpMb3N0XiAxNTkyIDsgQ29tZWR5IG9mIEVycm9yc14gYWJvdXQgTmV3LXllYXtbJiomXX1yXCdzLWRheSwgMTU5MSA7IFR3byBHZW50bGVtZW5eIA0KMTU5MjsgQWxsIFwncyBXZWxsLCAxNjAzIDsgVHJvaWx1cyBhbmQgQ3Jlc3N7WyYqJl19aWRhLCAxNjAzIDsgYW5kIEN5bWhlbGltLCAxNjExLiANCg0KU3VwcG9zZWQgDQpEYXRlLiANCg0KRWFybGllc3QgDQpBVWFzaW9uLntbJiomXX0gDQoNCkRhdGUgb2YgDQpQdWJsaWNhdGlvbi4gDQoNCkZpcnN0IFBlcmlvZC4gDQoNClZlbnVzIGFuZCBBZG9uaXMgDQoNClRpdHVze1smKiZdfSBBbmRyb25pY3VzIHRvdWNoZWQgdXAgDQpMb3ZlXCdzIExhYm9yIFwncyBMb3N0IC4uLi4gDQpbTG92ZVwncyBMYWJvciBcJ3MgV29ubmUge1smKiZdfS4gLiANCg0KQ29tZWR5IG9mIEVycm9ycyANCg0KTWlkc3VtbWVyLU5pZ2h0XCdzIERyZWFtICkgDQoNCig/IHR3byBkYXRlcykgXSANe1smKiZdfQoNClR3byBHZW50bGVtZW4gb2YgVmVyb25hIC4gDQooPykgMSBIZW5yeSBWSS4gdG91Y2hlZCB1cCAuIA0KKD8pIFRyb2lsdXMgYW57WyYqJl19ZCBDcmVzc2lkYSBiZWd1biANCg0KKD8pIEx1Y3JlY2UgDQoNClJvbWVvIGFuZCBKdWxpZXQgDQoNCig/KSBBIExvdmVyXCdzIENvbXB7WyYqJl19bGFpbnQgLiAsIC4gDQoNClJpY2hhcmQgSUkgDQoNClJpY2hhcmQgSUlJIA0KDQoyIGFuZCAzIEhlbnJ5IFZJLiByZWNhc3Qg4oCiIHtbJiomXX0uIA0KSm9obiANCg0KU2Vjb25kIFBlcmlvZC4gDQoNCk1lcmNoYW50IG9mIFZlbmljZSANCg0KVGFtaW5nIG9mIHRoZSBTaHJldywge1smKiZdfXBhcnQgLiANCg0KMSBIZW5yeSBJViANCg0KMiBIZW5yeSBJViANCg0KMTU4NS04WSANCig/KSAxNTg4IA0KMTU4OC04OSANCg0KXSB7WyYqJl19DQoNCjE1ODktOTEgDQoNCjE1OTAtOTEgDQoNCjE1OTAtOTIgDQooPykgMTU5MC05MiANCg0KKD8pIDE1OTEtOTMgDQoNCjE1OTMtOXtbJiomXX00IA0KMTU5NCANCig/KSAxNTk0LTk1IA0KMTU5NSANCg0KKD8pIDE1OTYgDQoNCig/KSAxNTk2LTk3IA0KMTU5Ni05N14gDQoxNTk3e1smKiZdfS05ODEgDQoNCjE1OTQgTS4gDQoxNTk4IE0uIA0KMTU5OCBNLiANCjE1OTggTS4gDQoNCjE1OTggTS4gDQoNCjE1OTggTS4gDQoNCjF7WyYqJl19NTk0IA0KDQoxNTk1IE0uIA0KDQooPykgMTU5NSBNLiANCig/KSAxNTk1IE0gDQoNCjE1OTggTS4gDQoNCjE1OTggTS4gDQoNCjE1OXtbJiomXX04IE0uIA0KMTU5OCBNLiANCg0KMTU5MyANClsoPykgMTU5NF0gMTYwMCANCjE1OTggKGFtZW5kZWQpIA0KDQoxNjIzIA0KDQoxNjAwe1smKiZdfSANCg0KMTYyMyANCjE2MjMgDQoNCjE1OTQgDQoxNTk3IA0KDQoxNTk3IA0KMTU5NyANCjE2MjMgDQoxNjIzIA0KDQoxNjAwdCANCjF7WyYqJl19NjIzKjEgDQoxNTk4IA0KMTYwMCANCg0KUHJlZmFjZSB0byB0aGUgRmlyc3QgRWRpdGlvbi4gDQoNClRyaWFsIFRhYmxlIG9mIHRoZXtbJiomXX0gT3JkZXIgb2YgU2hha3NwZXJlXCdzIFBsYXRzIOKAlCBDb250aW51ZWQsLiANCg0KeHZpaSANCg0KU3VwcG9zZWQgDQpEYXRlLiANCntbJiomXX0NCkVhcmxpZXN0IA0KQWxsdXNpb24uIA0KDQpEYXRlIG9mIA0KUHVibGljYXRpb24uIA0KDQpNZXJyeSBXaXZecyAuLiwsLuKAouKAe1smKiZdfaIuIA0KDQpIZW5yeSBWIA0KDQpNdWNoIEFkbyANCg0KQXMgWW91IExpa2UgSXQgDQoNClR3ZWxmdGggTmlnaHQgDQoNCkFsbCBcJ3Mge1smKiZdfVdlbGwgKD8gTG92ZVwncyBMYWJvciBcJ3MgKSANCg0KV29ubmUgcmVjYXN0KSBKIA0KDQpTb25uZXRzIA0KDQpUaGlyZCBQZXJpb2QuIHtbJiomXX0NCg0KSGFtbGV0IC4gLiANCg0KTWVhc3VyZSBmb3IgTWVpYXN1cmUgLi4uLiANCkp1bGl1cyBDYWVzYXIgLiAuIC4gLiAuIC4gLiAue1smKiZdfSANCg0KT3RoZWxsbyANCg0KTWFjYmV0aCAs4oCiIOKAoiDigKIgDQoNCkxlYXIgDQoNClRyb2lsdXMgYW5kIENyZXNzaWRhICg/KSB7WyYqJl19Y29tLSBcXCANCg0KcGxldGVkICkgDQoNCkFudG9ueSBhbmQgQ2xlb3BhdHJhIC4uLi4gDQoNCkNvcmlvbGFudXMgDQoNClRpbW9uLCB7WyYqJl19cGFydCANCg0KRm91cnRoIFBlcmlvZC4gDQoNClBlcmljbGVzLCBwYXJ0IA0KDQpUd28gTm9ibGUgS2luc21lbiAuLi4uIA0KDQpUZXtbJiomXX1tcGVzdCANCg0KQ3ltYmVsaW5lIA0KDQpXaW50ZXJcJ3MgVGFsZSANCg0KSGVucnkgVklJTCwgcGFydCANCg0KMTU5OC05OSANCjE1OXtbJiomXX05dCANCjE1OTktMTYwMH06IA0KDQpsZW9vaiANCmxlb2lqIA0KDQoxNjAxLTIgDQooPykgMTU5Mi0xNjAyIA0KDQoxIDYwMi0zIHQge1smKiZdfQ0KKD8pIDE2MDMgDQooPykgMTYwMS0zIA0KKD8pIDE2MDQgDQoxNjA1LTZ0IA0KMTYwNS02XiANCg0KMSA2MDYtNyANCg0KMTYwNi17WyYqJl19NyANCg0KKD8pIDE2MDctOCANCg0KMTYwNy04IA0KDQoxNjA4fTogDQoxNjA5IA0KMTYxMCANCjE2MTAtMTIgDQooPykgMTYxMSANCntbJiomXX0xNjEzfTogDQoNCjE2MDIgDQoxNTk5IA0KMTYwMCANCjE2MDAgDQoxNjAyIA0KDQoxNTk4IE0uIA0KDQooPykgDQoNCig/KSANCjE2e1smKiZdfTEwIA0KDQoxNjEwIA0KDQoxNjA2IA0KDQoxNjA5IA0KDQoxNjA4ICg/KSANCg0KMTYwOCANCg0KKD8pIDE2MTQgDQoNCjE2MTEgDQp7WyYqJl19MTYxMyAoPykgDQoNCjE2MDIgDQoNCjE2MDAgDQoNCjE2MDAgDQoNCjE2MjPCpyANCg0KMTYyMyANCg0KMTYyMyANCg0KMTYwOSANCntbJiomXX0NCjE2MDMqIA0KDQoxNjIzIA0KDQoxNjIzIA0KDQoxNjIyIA0KDQoxNjIzIA0KDQoxNjA4KiANCg0KMTYwOSANCg0KMTYyMyANCjE2e1smKiZdfTIzIA0KMTYyMyANCg0KMTYwOSogDQoNCjE2MzQgDQoNCjE2MjMgDQoNCjE2MjMgDQoNCjE2MjMgDQoNCjE2MjMgDQoNCiogRW50ZXJ7WyYqJl19ZWQgb25lIHllYXIgYmVmb3JlIGF0IFN0YXRpb25lcnNcJyBIYWxsLiANCg0KZiBFbnRlcmVkIHR3byB5ZWFycyBiZWZvcmUgYXQgU3R7WyYqJl19YXRpb25lcnNcJyBIYWxsLiANCg0KWCBNYXkgYmUgbG9va2VkIG9uIGFzIGZhaXJseSBjZXJ0YWluLiANCg0KwqcgRW50ZXJlZCBpbiB7WyYqJl19dGhlIFN0YXRpb25lcnNcJyBSZWdpc3RlcnMgaW4gMTYwMC4gDQoNCkQgXCIgVGhlIFRhbWluZyBvZiBhIFNocmV3IFwiIHdhcyBwdWJsaXtbJiomXX1zaGVkIGluIDE2OTQsIA0KDQpDT05URU5UUy4gDQoNCkNIQVBURVIgSS4gLF7igJ4gDQoNClNoYWtzZmVywqMgYW5kIHRoZSBFbGl6e1smKiZdfWFiZXRoYW4gQWdlIDEgDQoNCkNIQVBURVIgbi4gDQpUaGUgR3Jvd3RoIG9mIFNoYWtzcGVyZVwncyBNaW5kIGFuZCBBcnQg4oCiIC4ge1smKiZdfS4gLiA4NyANCg0KQ0hBUFRFUiBpbi4gDQpUaGUgRmlyc3QgYW5kIHRoZSBTZWNvbmQgVHJhZ2VkeSA6IFJvbWVvIGFuZCBKdWxpZXR7WyYqJl19OyBIYW1sZXQuIDg0IA0KDQpDSEFQVEVSIElWLCANClRoZSBFbmdsaXNoIEhpc3RvcmljYWwgUGxhdHMgMTQ0IA0KDQpDSEFQVEVSIHtbJiomXX1WLiANCk90aGVsbG87IE1hY2JldGg7IExlYXIgMTk4IA0KDQpDSEFQVEVSIFZJLiANClRoZSBSb21hbiBQbGF0cyDigKIg4oCiIDI0e1smKiZdfTUgDQoNCkNIQVBURVIgVklJLiANClRoZSBIdW1vciBvcCBTaGFrc3BlcmUg4oCiIOKAoiDigKIgMzAwIA0KDQpDSEFQVEVSIFZJSUl7WyYqJl19LiANClNoYWtzcGVyZVwncyBMYXN0IFBsYXlzIOKAouKAouKAoiBTMyA2IA0KDQpJbmRleCDigKLigKLigKLigKIqwqvCq8Krb8Krwqt7WyYqJl19wqsgODgzIA0KDQp5IA0KDQpTSEFLU1BFUkUtSElTIE1JTkQgQU5EIEFSVC4gDQoNCkNIQVBURVIgSS4gDQoNClNIQUtTUEVSRSBBTntbJiomXX1EIFRIRSBFTElaQUJFVEhBTiBBR0UuIA0KDQpJbiB0aGVzZSBjaGFwdGVycyBhbiBhdHRlbXB0IHdpbGwgYmUgbWFkZSB0byBwcmVze1smKiZdfWVudCANCmEgdmlldyBvciBhc3BlY3Qgb2YgYSBncmVhdCBwb2V0LCBhbmQgdGhlIGZpcnN0IHdvcmQgbXVzdCANCmV4cGxhaW4gcHJ7WyYqJl19ZWNpc2VseSB3aGF0IHN1Y2ggYSB2aWV3IG9yIGFzcGVjdCBpcyB3b3J0aCwgDQp3aGF0IGl0IHByb2Zlc3NlcyB0byBiZSwgYW5kIHtbJiomXX13aGF0IGl0IGRpc2NsYWltcy4gRHIuIE5ldy0gDQptYW4sIGluIGhpcyBcIiBHcmFtbWFyIG9mIEFzc2VudCxcIiBoYXMgZGlzdGluZ3V7WyYqJl19aXNoZWQgdHdvIA0KbW9kZXMgb2YgYXBwcmVoZW5kaW5nIHByb3Bvc2l0aW9ucy4gVGhlcmUgaXMgd2hhdCBoZSANCmNhbGxzIHRoZXtbJiomXX0gcmVhbCBhcHByZWhlbnNpb24gb2YgYSBwcm9wb3NpdGlvbiwgYW5kIHRoZXJlIGlzIA0KdGhlIG5vdGlvbmFsIGFwcHJlaGVuc2lve1smKiZdfW4uIEluIHJlYWwgYXBwcmVoZW5zaW9uIHRoZXJlIA0KaXMgdGhlIHBlcmNlcHRpb24gb2Ygc29tZSBhY3R1YWwsIGNvbmNyZXRlLCB7WyYqJl19aW5kaXZpZHVhbCBvYi0gDQpqZWN0LCBlaXRoZXIgd2l0aCB0aGUgZXllIG9yIHNvbWUgYm9kaWx5IHNlbnNlLCBvciB3aXRoIA0KdHtbJiomXX1oZSBtaW5kXCdzIGV5ZSDigJQgbWVtb3J5IG9yIGltYWdpbmF0aW9uLiBCdXQgb3VyIA0KbWluZHMgYXJlIG5vdCBzbyBjb25zdHJ1Y3tbJiomXX10ZWQgYXMgdG8gYmUgYWJsZSB0byByZWNlaXZlIGFuZCANCnJldGFpbiBvbmx5IGFuIGV4YWN0IGltYWdlIG9mIGVhY2ggb2YgdGhle1smKiZdfSBvYmplY3RzIHRoYXQgDQpjb21lIGJlZm9yZSB1cyBvbmUgYnkgb25lLCBpbiBhbmQgZm9yIGl0c2VsZi4gT24gdGhlIA0KY29udHJ7WyYqJl19YXJ5LCB3ZSBjb21wYXJlIGFuZCBjb250cmFzdC4gV2Ugc2VlIGF0IG9uY2UgDQpcIiB0aGF0IG1hbiBpcyBsaWtlIG1hbiwgeWV0IHV7WyYqJl19bmxpa2UgOyBhbmQgdW5saWtlIGEgaG9yc2UsIA0KYSB0cmVlLCBhIG1vdW50YWluLCBvciBhIG1vbnVtZW50LiBBbmQgaW4gY29uc3tbJiomXX1lcXVlbmNlIA0Kd2UgYXJlIGV2ZXIgZ3JvdXBpbmcgYW5kIGRpc2NyaW1pbmF0aW5nLCBtZWFzdXJpbmcgYW5kIA0Kc291bmRpbmcse1smKiZdfSBmcmFtaW5nIGNyb3NzIGNsYXNzZXMgYW5kIGNyb3NzIGRpdmlzaW9ucywgYW5kIA0KdGhlcmVieSByaXNpbmcgZnJvbSBwYXJ0aWN7WyYqJl19dWxhcnMgdG8gZ2VuZXJhbHMgOyB0aGF0IGlzLCBmcm9tIA0KaW1hZ2VzIHRvIG5vdGlvbnMuIC4gLiAuIFwnIE1hbiBcJyBpcyBubyBse1smKiZdfW9uZ2VyIHdoYXQgaGUgcmVhbGx5IA0KaXMsIGFuIGluZGl2aWR1YWwgcHJlc2VudGVkIHRvIHVzIGJ5IG91ciBzZW5zZXMsIGJ1dCB7WyYqJl19YXMgd2UgDQpyZWFkIGhpbSBpbiB0aGUgVWdodCBvZiB0aG9zZSBjb21wYXJpc29ucyBhbmQgY29udHJhc3RzIA0KDQoxIA0KDQoyIHtbJiomXX1TaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQgDQoNCndoaWNoIHdlIGhhdmUgbWFkZSBoaW0gc3VnZ2VzdCB0byB1cy4gSGUge1smKiZdfWlzIGF0dGVudWF0ZWQgDQppbnRvIGFuIGFzcGVjdCwgb3IgcmVsZWdhdGVkIHRvIGhpcyBwbGFjZSBpbiBhIGNsYXNzaWZpY2F0aW97WyYqJl19bi4gDQpUaHVzIGhpcyBhcHBlbGxhdGlvbiBpcyBtYWRlIHRvIHN1Z2dlc3QsIG5vdCB0aGUgcmVhbCANCmJlaW5nIHdoaWNoIGhlIHtbJiomXX1pcyBpbiB0aGlzIG9yIHRoYXQgc3BlY2ltZW4gb2YgaGltc2VsZiwgDQpidXQgYSBkZWZpbml0aW9uLlwiIFRodXMgaW5kaXZpZHVhbHtbJiomXX0gcHJvcG9zaXRpb25zIGFib3V0IA0KdGhlIGNvbmNyZXRlLCBpbiB0aGUgbWluZCBvZiBhIHRoaW5rZXIgd2hvc2UgaW50ZWxsZWN0e1smKiZdfSANCndvcmtzIGluIHRoZSB3YXkgb2Ygbm90aW9uYWwgYXBwcmVoZW5zaW9uLCBcIiBhbG1vc3QgY2Vhc2UgDQp0byBiZSwgYW5kIGFye1smKiZdfWUgZGlsdXRlZCBvciBzdGFydmVkIGludG8gYWJzdHJhY3Qgbm90aW9ucy4gDQpUaGUgZXZlbnRzIG9mIGhpc3RvcnkgYW5kIHRoZSB7WyYqJl19Y2hhcmFjdGVycyB3aG8gZmlndXJlIGluIGl0IA0KbG9zZSB0aGVpciBpbmRpdmlkdWFsaXR5LlwiIA0KDQpOb3csIGl0IGlzIG5vdCB7WyYqJl19c3VjaCBhbiBhc3BlY3QsIHN1Y2ggYSB2aWV3IG9mIFNoYWtzcGVyZSwgDQp3aGljaCBpdCBpcyBoZXJlIGF0dGVtcHRlZCB0byBwcntbJiomXX1lc2VudC4gVG8gY29tZSBpbnRvIA0KY2xvc2UgYW5kIGxpdmluZyByZWxhdGlvbiB3aXRoIHRoZSBpbmRpdmlkdWFsaXR5IG9mIGEge1smKiZdfXBvZXQgDQptdXN0IGJlIHRoZSBjaGllZiBlbmQgb2Ygb3VyIHN0dWR5IOKAlCB0byByZWNlaXZlIGZyb20gaGlzIA0KbmF0dXJlIHR7WyYqJl19aGUgcGVjdWxpYXIgaW1wdWxzZSBhbmQgaW1wcmVzc2lvbiB3aGljaCBoZSwgDQpiZXN0IG9mIGFsbCwgY2FuIGdpdmUuIFdlIG11c3tbJiomXX10IG5vdCBhdHRlbnVhdGUgU2hha3NwZXJlIA0KdG8gYW4gYXNwZWN0LCBvciByZWR1Y2UgaGltIHRvIGEgZGVmaW5pdGlvbiwgb3Ige1smKiZdfWRlcHJpdmUgDQpoaW0gb2YgaW5kaXZpZHVhbGl0eSwgb3IgbWFrZSBvZiBoaW0gYSBtZXJlIG5vdGlvbi4gDQpZZXQsIGFsc28sIG57WyYqJl19byBleHBlcmltZW50IHdpbGwgaGVyZSBiZSBtYWRlIHRvIGJyaW5nIFNoYWstIA0Kc3BlcmUgYmVmb3JlIHRoZSByZWFkZXIgYXMgaHtbJiomXX1lIHNwb2tlIGFuZCB3YWxrZWQsIGFzIGhlIA0KamVzdGVkIGluIGhpcyB0YXZlcm4gb3IgbWVkaXRhdGVkIGluIGhpcyBzb2xpdHVke1smKiZdfWUuIEl0IGlzIGEgDQpyZWFsIGFwcHJlaGVuc2lvbiBvZiBTaGFrc3BlcmVcJ3MgY2hhcmFjdGVyIGFuZCBnZW5pdXMgDQp3aGljaCBpe1smKiZdfXMgZGVzaXJlZCwgYnV0IG5vdCBzdWNoIGFuIGFwcHJlaGVuc2lvbiBhcyBtZXJlIA0Kb2JzZXJ2YXRpb24gb2YgdGhlIGV4dGVybmF7WyYqJl19bHMgb2YgdGhlIG1hbiwgb2YgaGlzIGxpZmUgb3Igb2YgDQpoaXMgcG9ldHJ5LCB3b3VsZCBiZSBsaWtlbHkgdG8gcHJvZHVjZS4gSXtbJiomXX0gd2lzaCByYXRoZXIgdG8gDQphdHRhaW4gdG8gc29tZSBjZW50cmFsIHByaW5jaXBsZXMgb2YgbGlmZSBpbiBoaW0gd2hpY2ggDQphe1smKiZdfW5pbWF0ZSBhbmQgY29udHJvbCB0aGUgcmVzdCwgZm9yIHN1Y2ggdGhlcmUgYXJlIGV4aXN0ZW50IA0KaW4gZXZlcnkgbWFuIHdob3N7WyYqJl19ZSBsaWZlIGlzIGxpZmUgaW4gYW55IHRydWUgc2Vuc2Ugb2YgdGhlIA0Kd29yZCwgYW5kIG5vdCBhIG1lcmUgYWZmYWlyIG9mIGNoYXtbJiomXX1uY2UsIG9mIGltcHVsc2UsIG9mIA0KbW9vZHMsIGFuZCBvZiBhY2NpZGVudHMuIA0KDQpJbiBzdWNoIGEgc3R1ZHkgYXMgdGhpcyB3e1smKiZdfWUgZW5kZWF2b3IgdG8gcGFzcyB0aHJvdWdoIA0KdGhlIGNyZWF0aW9uIG9mIHRoZSBhcnRpc3QgdG8gdGhlIG1pbmQgb2YgdGhlIGN7WyYqJl19cmVhdG9yIDsgYnV0IA0KaXQgYnkgbm8gbWVhbnMgcHJldmVudHMgb3VyIHJldHVybmluZyB0byB2aWV3IHRoZSB3b3JrIA0Kb2YgYXtbJiomXX1ydCBzaW1wbHkgYXMgc3VjaCwgYXBhcnQgZnJvbSB0aGUgYXJ0aXN0LCBhbmQgYXMgc3VjaCANCnRvIHJlY2VpdmUgZGVsaWdodCBme1smKiZdfXJvbSBpdC4gTmF5LCBpbiB0aGUgZW5kIGl0IGF1Z21lbnRzIA0KDQpTaGFrc3BlcmUgYW5kIHRoZSBFbGl6YWJldGhhbiBBZ2UuIDN7WyYqJl19IA0KDQpvdXIgZGVsaWdodCBieSBlbmFibGluZyB1cyB0byBkaXNjb3ZlciBhIG1hc3Mgb2YgZmFjdCANCndoaWNoIHdvdWxkIG90aHtbJiomXX1lcndpc2UgYmUgb3Zlcmxvb2tlZC4gVG8gZW5qb3kgdGhlIA0KYmVhdXR5IG9mIGEgbGFuZHNjYXBlLCBpdCBpcyBub3QgbmVjZXNze1smKiZdfWFyeSB0byB1bmRlcnN0YW5kIA0KdGhlIG5hdHVyZSBhbmQgYXJyYW5nZW1lbnQgb2YgdGhlIHJvY2tzIHdoaWNoIHVuZGVybGllIHx7WyYqJl19IA0Kb3IgcmlzZSB1cCBmcm9tIHRoZSBzb2lsLiBXaGlsZSBzdHVkeWluZyB0aGUgc3RyYXRpZmljYS0gXCcgDQp0aW9uIG9mIHRob3N7WyYqJl19ZSByb2Nrcywgd2UgYWJzb2x1dGVseSBsb3NlIHNpZ2h0IG9mIHRoZSBiZWF1dHkgDQpvZiB0aGUgbGFuZHNjYXBlLiBOZXZlcnRoZXtbJiomXX1sZXNzLCBhIGxhcmdlciBtYXNzIG9mIHBsZWFzdXJlIGogDQppcyBpbiB0aGUgZW5kIHBvc3Nlc3NlZCBieSBvbmUgd2hvIGFkZHMge1smKiZdfXRvIGhpcyBpbnN0aW5jdGl2ZSwgLyANCnNwb250YW5lb3VzIGZlZWxpbmcgb2YgZGVsaWdodCBhIGtub3dsZWRnZSBvZiB0aGUgZ2V7WyYqJl19b2xvZ3kgPSANCm9mIHRoZSBjb3VudHJ5LiBJbiBsaWtlIG1hbm5lciwgd2hpbGUgdGhlIHN0dWR5IG9mIGFuYXQtLyANCm9teSBpc3tbJiomXX0gcXVpdGUgZGlzdGluY3QgZnJvbSB0aGUgcGxlYXN1cmUgd2hpY2ggdGhlIHNpZ2h0cyANCm9mIGEgYmVhdXRpZnVsIGh1bWFuIGJve1smKiZdfWR5IGdpdmVzLCB5ZXQsIGluIHRoZSBlbmQsIHRoZCANCnNjdWxwdG9yIHdobyBhZGRzIHRvIGhpcyBpbnN0aW5jdGl2ZSwgc3BvbnR7WyYqJl19YW5lb3VzIGRlbGlnaHQgDQppbiB0aGUgYmVhdXR5IG9mIG1vdWxkZWQgZm9ybSBhbmQgbW92aW5nIGxpbWIgYXQgDQprbm93bGVkZ3tbJiomXX1lIG9mIGh1bWFuIGFuYXRvbXkgcmVjZWl2ZXMgYSBtYXNzIG9mIHBsZWFzLSANCnVyZSBncmVhdGVyIHRoYW4gdGhhdCBvZiBvbmUge1smKiZdfXdobyBpcyB1bmFjcXVhaW50ZWQgd2l0aCBcXCANCg0KdGhlIGZhY3RzIG9mIHN0cnVjdHVyZSBhbmQgZnVuY3Rpb24uIFRoZXJlIGlze1smKiZdfSBhbiBvYnZpb3VzIA0KY2F1c2Ugb2YgdGhpcy4gVGhlIGdlb2xvZ2lzdCBhbmQgdGhlIGFuYXRvbWlzdCBzZWUgbW9yZV4gDQphbmR7WyYqJl19IHNlZSBhIG5ldyBjbGFzcyBvZiBwaGVub21lbmEsIHdoaWNoIHByb2R1Y2UgbmV3IA0KZGVsaWdodHMuIFRoZSBsaW5lcyBvZiBmb3tbJiomXX1yY2UgaW4gYSBsYW5kc2NhcGUsIHRvIHdoaWNoIGFuIA0Kb3JkaW5hcnkgb2JzZXJ2ZXIgaXMgZW50aXJlbHkgaW5zZW5zaWJsZSwge1smKiZdfWNvbWUgb3V0IHRvIHRoZSANCmluc3RydWN0ZWQgZXllLCBhbmQgZ2l2ZSBpdCB0aHJpbGxzIG9mIHN0cm9uZyBlbW90aW9uLCBsaWt7WyYqJl19ZSANCnRob3NlIHdoaWNoIHdlIHJlY2VpdmUgZnJvbSB0aGUgYXRobGV0ZXMgb3IgdGhlIGdvZHMgb2YgDQpNaWNoYWVsIEFuZ2Vsb3tbJiomXX0uIFRoZSBsaW5lcyBvZiBmb3JjZSBhcmUgZHJhd24gaW4gdGhlIA0KZ3Jhbml0ZSBhbmQgdGhlIHNhbmRzdG9uZSBkaWZmZXJlbnRse1smKiZdfXksIGFuZCBoZW5jZSBhbiBlbmQtIA0KbGVzcyB2YXJpZXR5IG9mIGRlbGlnaHRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGluZmluaXR7WyYqJl19ZSB2YS0gDQpyaWV0eSBvZiB0aGUgZGlzcG9zaXRpb24gb2YgaXRzIHJvY2stZm9yY2VzIGJ5IG5hdHVyZS4gV2UgDQpkbyBub3Qgb3tbJiomXX1ubHkgdW5kZXJzdGFuZCBiZXR0ZXIgd2hhdCBpcyBiZWZvcmUgdXMsIHdlIGVuam95IA0KaXQgbW9yZS4gV2UgYXJlIG5vdCBhdHRle1smKiZdfW51YXRpbmcgaXQgdG8gYW4gYXNwZWN0LCBvciBpbm9iLSANCnNlcnZhbnQgb2YgaXRzIGluZGl2aWR1YWxpdHkgOyB3ZSBhcmUsIG97WyYqJl19biB0aGUgY29udHJhcnksIHBlbi0gDQpldHJhdGluZyB0byB0aGUgY2VudHJlIG9mIHRoYXQgaW5kaXZpZHVhbGl0eS4gSXQgaXMgZ3tbJiomXX1lbi0gDQplcmFsbHkgbm90IHVudGlsIHRoZSBkb21pbmFudCBsaW5lcyBvZiBmb3JjZSBhcmUgY2xlYXJseSANCnBlcmNlaXZlZCB0e1smKiZdfWhhdCB3ZSBjYW4gZ3JvdXAgaW4ganVzdCBwcm9wb3J0aW9ucyB0aGUgbWlub3IgDQpkZXRhaWxzIHdoaWNoIGludmVzdGlnYXRpb257WyYqJl19IHByZXNlbnRzIHRvIG91ciBub3RpY2UuIA0KT25lIHdobyBzdGFuZHMgaW4gdGhlIFNpc3RpbmUgQ2hhcGVsIGF0IEVvbWUgYW5kIHtbJiomXX0NCg0KNCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpsb29rcyB1cCB0byBpdHMgY2VpbGluZyBtdXN0IGluIGR1e1smKiZdfWUgdGltZSBiZWNvbWUgYXdhcmUgDQpvZiBoaXMgb3duIHNwaXJpdCBhcyBpZiBpdCB3ZXJlIHNvbWUgb3ZlcmJ1cmRlbmVkIGNhcnl7WyYqJl19LSANCmF0aWQgc3VzdGFpbmluZyB0aGUgd2VpZ2h0IG9mIHRoZSB0aG91Z2h0IG9mIE1pY2hhZWwgDQpBbmdlbG8uIFRoZSBmaXJzdHtbJiomXX0gZWZmb3J0IOKAlCBhbmQgaXQgaXMgbm8gdHJpdmlhbCBlZmZvcnQg4oCUIA0KbXVzdCBiZSB0byByYWlzZSBvbmVcJ3Mgc2VsZiB0b3tbJiomXX0gdGhlIGhlaWdodCBvZiB0aGUgZ3JlYXQgYXJndS0gDQptZW50LiBNZXJlbHkgdG8gY29uY2VpdmUgcHJvcGhldCBvciBzaWJ5bCwge1smKiZdfXByaW1pdGl2ZSANCm1hbiBvciB0aGUgYXdmdWwgZGVtaXVyZ2UsIGFzIHBsYWNlZCBiZWZvcmUgb25lXCdzIGV5ZXMgDQppcyBhbiBle1smKiZdfXhlcmNpc2Ugd2hpY2ggZGVtYW5kcyBjb25jZW50cmF0aW9uIG9mIHNlbGYgYW5kIA0KYWJhbmRvbm1lbnQgb2YgdGhlIHdvcmxkIOJ7WyYqJl19gJQgYW4gZXhlcmNpc2Ugd2hpY2ggc3RyYWlucyANCmFuZCBleGhhdXN0cyB0aGUgaW1hZ2luYXRpb24uIFRvIGFzY2VuZCBmcm9tIHtbJiomXX10aGlzIHRvIA0KYSBjb21wcmVoZW5zaW9uIG9mIHRoZSB0b3RhbCBwcm9kdWN0IOKAlCB0byBmZWVsIHRoZSBzdHUtIA0KcGVuZG91e1smKiZdfXMgbGlmZSB3aGljaCBhbmltYXRlcyBub3QgYWxvbmUgZWFjaCBzaW5nbGUgZmlndXJlLCANCnJhcHQgb3IgYnJvb2RpbmcsIGJ1dCB7WyYqJl19d2hpY2ggY2lyY2xlcyB0aHJvdWdoIHRoZW0gYWxsLCANCndoaWNoIHBsYXlzIGZyb20gZWFjaCB0byB0aGUgb3RoZXIsIGFuZCBmb3tbJiomXX1ybXMgdGhlIG9uZSANCnZpdGFsIHNvdWwgdGhhdCBsaWVzIGJlaGluZCB0aGlzIG1hbmlmb2xkIGNyZWF0aW9uIOKAlCB0byANCmFje1smKiZdfWhpZXZlIHRoaXMgaXMgc29tZXRoaW5nIHJhcmVyIGFuZCBtb3JlIGRpZmZpY3VsdC4gQnV0IA0KdGhlcmUgaXMgeWV0IGEgaGlnaGV7WyYqJl19ciBhc2NlbnNpb24gcG9zc2libGUuIFRoZXNlIHZhc3QgDQpjcmVhdGlvbnMsIGFuZCBtdWNoIGJlc2lkZXMgdGhlc2Ug4oCUIFN0LntbJiomXX0gUGV0ZXJcJ3MgYXQgUm9tZSwgDQp0aGUgRGF2aWQgYXQgRmxvcmVuY2UsIHRoZSBTbGF2ZXMgb2YgdGhlIExvdXZyZSwgdGhlIA0KTHtbJiomXX1hc3QgSnVkZ21lbnQsIHRoZSBNb3NlcywgdGhlIFRvbWJzIG9mIHRoZSBNZWRpY2ksIHRoZSANClBvZW1zIGZvciBWaXR0b3JpYSBDe1smKiZdfW9sb25uYSDigJQgYWxsIHRoZXNlIGFyZSBsZXNzIHRoYW4gDQpNaWNoYWVsIEFuZ2Vsby4gVGhlc2Ugd2VyZSB0aGUgcHJvamVjdGl7WyYqJl19b25zIG9mIGEgc2luZ2xlIA0KbWluZC4gVGhlcmUgaXMgc29tZXRoaW5nIGhpZ2hlciBhbmQgbW9yZSB3b25kZXJmdWwgDQp0aGFuIHtbJiomXX1TdC4gUGV0ZXJcJ3Mgb3IgdGhlIExhc3QgSnVkZ21lbnQg4oCUIG5hbWVseSwgdGhlIG1pbmQgDQp3aGljaCBmbHVuZyB0aGVzZSBjcntbJiomXX1lYXRpb25zIGludG8gdGhlIHdvcmxkLiBBbmQgeWV0LCBpdCANCmlzIHdoZW4gd2UgbWFrZSB0aGUgZWZmb3J0IHdoaWNoIGRlbWFue1smKiZdfWRzIG91ciBtb3N0IA0KY29uY2VudHJhdGVkIGFuZCBtb3N0IHN1c3RhaW5lZCBlbmVyZ3kg4oCUIGl0IGlzIHdoZW4gd2UgDQpzdHJ7WyYqJl19aXZlIHRvIGNvbWUgaW50byBwcmVzZW5jZSBvZiB0aGUgbGl2aW5nIG1pbmQgb2YgdGhlIA0KY3JlYXRvciDigJQgdGhhdCB0aGUgc3tbJiomXX1lbnNlIG9mIHN0cnVnZ2xlIGFuZCBlZmZvcnQgaXMgcmVsaWV2ZWQuIA0KV2UgYXJlIG5vIGxvbmdlciBzdXJyb3VuZGVkIGJ5IGEge1smKiZdfW1lcmUgd29ybGQgb2YgDQp0aG91Z2h0cyBhbmQgaW1hZ2luYXRpb25zIHdoaWNoLCBpbiBhbiBhbG1vc3Qgc2VsZmlzaCANCndheSx7WyYqJl19IHdlIGxhYm9yIHRvIGFwcHJvcHJpYXRlIGFuZCBwb3NzZXNzLiBXZSBhcmUgaW4gDQpjb21wYW55IHdpdGggYSBtYW4gOyBhbmQgYXtbJiomXX0gc2Vuc2Ugb2YgcmVhbCBodW1hbiBzeW1wYS0gDQp0aHkgYW5kIGZlbGxvd3NoaXAgcmlzZXMgd2l0aGluIHVzLiBWaXJ0dWUgZ29le1smKiZdfXMgb3V0IG9mIA0KaGltLiBXZSBhcmUgY29uc2Npb3VzIG9mIGhpcyBzdHJlbmd0aCBjb21tdW5pY2F0aW5nIA0KDQpTaGFrc3BlcmV7WyYqJl19IGFuZCB0aGUgRWxpemFiZXRoYW4gQWdlLiA1IA0KDQppdHNlbGYgdG8gdXMuIFdlIG1heSBub3Qgb3Zlcm1hc3RlciBoaW0sIGFuZHtbJiomXX0gcGx1Y2sgb3V0IA0KdGhlIGhlYXJ0IG9mIGhpcyBteXN0ZXJ5IDsgeWV0IGl0IGlzIGdvb2QgdG8gcmVtYWluIGluIGhpcyANCmNve1smKiZdfW1wYW5pb25zaGlwLiBUaGVyZSBpcyBzb21ldGhpbmcgaW4gdGhpcyBpbnZpZ29yYXRpbmcgDQpzdHJ1Z2dsZSB3aXRoIGEgbmF0dXJ7WyYqJl19ZSBncmVhdGVyIHRoYW4gb25lXCdzIG93biB3aGljaCB1bi0gDQphdm9pZGFibHkgcHV0cyBvbiBpbiBvbmVcJ3MgaW1hZ2luYXRpb24ge1smKiZdfXRoZSBzaGFwZSBvZiB0aGUgDQpIZWJyZXcgc3Rvcnkgb2YgUGVuaWVsLiBXZSB3cmVzdGxlIHdpdGggYW4gdW5rbm93biANCm1hbiB7WyYqJl19dW50aWwgdGhlIGJyZWFraW5nIG9mIHRoZSBkYXkuIFdlIHNheSwgXCIgVGVsbCBtZSwgDQpJIHByYXkgdGhlZSwgdGh5IG5hbWUsXCIge1smKiZdfWFuZCBoZSB3aWxsIG5vdCB0ZWxsIGl0LiBCdXQgDQp0aG91Z2ggd2UgY2Fubm90IGNvbXBlbCBoaW0gdG8gcmV2ZWFsIGhpcyBzZWN7WyYqJl19cmV0LCB3cSANCndyZXN0bGUgd2l0aCBoaW0gc3RpbGwuIFdlIHNheSwgXCIgSSB3aWxsIG5vdCBsZXQgdGhlZSBnbywgDQpleGNlcHR7WyYqJl19IHRob3UgYmxlc3MgbWUuXCIgQW5kIHRoZSBibGVzc2luZyBpcyBvYnRhaW5lZC4gDQoNCklmIHRvIGxheSBob2xkIG9mIE1pY2hhZWx7WyYqJl19IEFuZ2VsbyBhbmQgdG8gc3RyaXZlIHdpdGggDQpoaW0gYmUgdGhlIG1vc3Qgc3RyZW51b3VzIGZlYXQgYWNoaWV2YWJsZSBieSB0aHtbJiomXX1lIGNyaXRpY2FsIA0KaW1hZ2luYXRpb24gaW4gdGhlIHdvcmxkIG9mIHBsYXN0aWMgYXJ0LCB0byBkZWFsIHdpdGggDQpTaGFrc3Ble1smKiZdfXJlIHJlcXVpcmVzIG1vcmUgZW5kdXJhbmNlLCBhIGZpcm1lciBuZXJ2ZSwgYW5kIA0KYSBmaW5lciBjdW5uaW5nLiBUaGUgZ3JlYXR7WyYqJl19IGlkZWFsIGFydGlzdCDigJQgYSBNaWx0b24sIGEgDQpNaWNoYWVsIEFuZ2VsbywgYSBEYW50ZSDigJQgYmV0cmF5cyBoaW1zZWxmIHtbJiomXX1pbiBzcGl0ZSBvZiB0aGUgDQpoYXVnaHRpZXN0IHJlc2VydmUuIEJ1dCBTaGFrc3BlcmUsIGlmIGFuIGlkZWFsaXN0LCB3YXMgDQphe1smKiZdfWxzbyBhYm92ZSBhbGwgZWxzZSBhIHJlYWxpc3QgaW4gYXJ0LCBhbmQgbHVya3MgYWxtb3N0IGltLSANCnByZWduYWJseSBiZWhpbmR7WyYqJl19IGhpcyB3b3JrLiBcIiBUaGUgc2VjcmV0cyBvZiBuYXR1cmUgaGF2ZSANCm5vdCBtb3JlIGdpZnQgaW4gdGFjaXR1cm5pdHkuXCIgKiBBe1smKiZdfW5kIHlldCBzb21lIGZldyBvZiANCnRoZSBzZWNyZXRzIG9mIG5hdHVyZSBjYW4gYmUgd3Jlc3RlZCBmcm9tIGhlci4gQnV0IA0KU2h7WyYqJl19YWtzcGVyZSBwb3NzZXNzZWQgdGhhdCBtb3N0IGJhZmZsaW5nIG9mIHNlbGYtZGVmZW5jZXMg4oCUIA0KaHVtb3IuIEp1c3Qgd2hlbntbJiomXX0gd2UgaGF2ZSBsYWlkIGhvbGQgb2YgaGltIGhlIGVsdWRlcyANCnVzLCBhbmQgd2UgaGVhciBvbmx5IGRpc3RhbnQgaXJvbmljYWwge1smKiZdfWxhdWdodGVyLiBXaGF0IGlzIA0KdG8gYmUgZG9uZT8gSG93IHNoYWxsIGEgZHJhbWF0aXN0IOKAlCBhIGRyYW1hdGlzdCBwb3MtIA17WyYqJl19CnNlc3NlZCBvZiBodW1vciDigJQgYmUgY2hlYXRlZCBvZiBoaXMgcHJpdmFjeSAlIEhvdyBzaGFsbCANCmhpcyByZXNlcnZlIGJlIHtbJiomXX1vdmVybWFzdGVyZWQgPyBIb3cgc2hhbGwgd2UgaW50ZXJyb2dhdGUgDQpoaW0gPyBJcyB0aGVyZSBhbnkgbWFnaWMgd29yZCB3aGlje1smKiZdfWggd2lsbCBjb21wZWwgaGltIA0KdG8gcHV0IG9mZiBkaXNndWlzZSwgYW5kIGRlY2xhcmUgaGltc2VsZiBpbiBoaXMgdHJ1ZSBzaGF7WyYqJl19cGU/IA0KDQpJZiogd2UgY291bGQgd2F0Y2ggaGlzIHdyaXRpbmdzIGNsb3NlbHksIGFuZCBvYnNlcnZlIA0KdGhlaXIgZ3Jvd3RoLHtbJiomXX0gdGhlIGxhd3Mgb2YgdGhhdCBncm93dGggd291bGQgYmUgcmVmZXJhYmxlIA0KdG8gdGhlIG5hdHVyZSBvZiB0aGUgbWFuIGFuZCB0e1smKiZdfW8gdGhlIG5hdHVyZSBvZiBoaXMgZW4tIA0KDQoqIFRyb2lsdXMgYW5kIENyZXNzaWRhXiBhY3QgaXYuLCBhYy4gMiwgDQoNCjYgU2h7WyYqJl19YWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydCANCg0Kdmlyb250bmVudC4gQW5kIHdlIG1pZ2h0IGV2ZW4gYmUgYWJsZSB0byByZXtbJiomXX1mZXIgdG8gb25lIA0KYW5kIHRoZSBvdGhlciBvZiB0aGVzZSB0d28gZmFjdG9ycyBwcm9kdWNpbmcgYSBjb21tb24gDQpyZXN1bHRhe1smKiZdfW50IHRoYXQgd2hpY2ggaXMgc3BlY2lhbGx5IGR1ZSB0byBlYWNoLiBGb3J0dW5hdGUtIA0KbHkgdGhlIHN1Y2Nlc3Npb24gb2YgU2h7WyYqJl19YWtzcGVyZVwncyB3cml0aW5ncyAoYWx0aG91Z2ggaXQgaXMgDQpwcm9iYWJsZSB0aGF0IG5laXRoZXIgZXh0ZXJuYWwgbm9yIGludGV7WyYqJl19cm5hbCBldmlkZW5jZSB3aWxsIA0KZXZlciBzdWZmaWNlIHRvIG1ha2UgdGhlIGNocm9ub2xvZ3kgY2VydGFpbiBhbmQgcHJlY2lzZXtbJiomXX0pIA0KaXMgc3VmZmljaWVudGx5IGFzY2VydGFpbmVkIHRvIGVuYWJsZSB1cyB0byBzdHVkeSB0aGUgbWFpbiANCmZlYXR1cmVzIG9me1smKiZdfSB0aGUgZ3Jvd3RoIG9mIFNoYWtzcGVyZSBhcyBhbiBhcnRpc3QgYW5kIGFzIA0KYSBtYW4uIFdlIGRvIG5vdCBub3cgcGxhY2UgQSB7WyYqJl19TWlkc3VtbWVyIC0gTmlnTSBzIA0KRHJlYW0gYW5kIFRoZSBUZW1wZXN0IHNpZGUgYnkgc2lkZSBhcyBTaGFrc3BlcmVcJ3MgDQpwbGF7WyYqJl19eXMgb2YgZmFpcnktbGFuZC4gV2Uga25vdyB0aGF0IGEgbG9uZyBpbnRlcnZhbCBvZiANCnRpbWUgbGllcyBiZXR3ZWVuIHRoZSB0d3tbJiomXX1vLCBhbmQgdGhhdCBpZiB0aGV5IHJlc2VtYmxlIG9uZSANCmFub3RoZXIgaW4gc3VwZXJmaWNpYWwgb3IgYWNjaWRlbnRhbCBjaXJje1smKiZdfXVtc3RhbmNlcywgdGhleSANCm11c3QgZGlmZmVyIHRvIHRoZSB3aG9sZSBleHRlbnQgb2YgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB7WyYqJl19DQp0aGVeIHlvdXRoZnVsIFNoYWtzcGVyZSBhbmQgdGhlIG1hdHVyZSwgZXhwZXJpZW5jZWQsIA0KZnVsbHkgZGV2ZWxvcGVkIG1hbntbJiomXX0uIE11Y2ggaXMgZHVlIHRvIHRoZSBpbmR1c3RyeSBvZiANCk1hbG9uZSA7IG11Y2ggdG8gdGhlIGluZ2VudWl0eSBhbmQgaW5kdXN0e1smKiZdfXJ5IG9mIHJlY2VudCANClNoYWtzcGVyZSBzY2hvbGFycyB3aG8sIGluIHRoZSBjaGFuZ2VzIHdoaWNoIHRvb2sgcGxhY2UgDQppbiB7WyYqJl19dGhlIHBvZXRcJ3MgbWFubmVyIG9mIHdyaXRpbmcgdmVyc2UsIGhhdmUgZm91bmQgYW4gDQppbmRleCwgdHJ1c3R3b3J0aHkgaW4gdGh7WyYqJl19ZSBtYWluLCB0byB0aGUgdHJ1ZSBjaHJvbm9sb2d5IG9mIA0KdGhlIHBsYXlzLl4gDQoNCiogTXIuIFNwZWRkaW5nLCBpbiBoaXMgYXtbJiomXX1ydGljbGUgXCJXaG8gV3JvdGUgSGVucnkgWUlJSS4gP1wiIHtHZW50bGVtYW5cJ3MgDQpNYWdhemluZSwgQXVndXN0LCAxODUwKSwgZmlye1smKiZdfXN0IGFwcGxpZWQgcXVhbnRpdGF0aXZlIGNyaXRpY2lzbSBvZiB2ZXJzZSBwZWN1LSANCmxpYXJpdGllcyB0byB0aGUgc3R1ZHkgb2Z7WyYqJl19IFNoYWxpc3BlcmVcJ3Mgd3JpdGluZ3MuIE1yLiBDaGFybGVzIEJhdGh1cnN0LCBpbiANClwiIFJlbWFya3Mgb24gdGhlIERpZmZlcmVue1smKiZdfWNlcyBvZiBTaGFrc3BlcmVcJ3MgVmVyc2lmaWNhdGlvbiBpbiBEaWZmZXJlbnQgDQpQZXJpb2RzIG9mIGhpcyBMaWZlXCIgKExvbmRvbntbJiomXX0sIDE4NlkpLCBjYWxsZWQgYXR0ZW50aW9uIHRvIHRoZSBjaGFuZ2UgXCJmcm9tIA0KYnJva2VuIHRvIGludGVycnVwdGVkIHZlcnNlXCJ7WyYqJl19IHdoaWNoIHRvb2sgcGxhY2UgYXMgU2hha3NwZXJlIGFkdmFuY2VkIGluIA0KaGlzIGRyYW1hdGljIGNhcmVlciA7IGFuZCBvYnNlcntbJiomXX12ZWQsIGFsc28sIHRoZSBpbmNyZWFzZSBpbiB0aGUgdXNlIG9mIGRvdWJsZS0gDQplbmRpbmdzIGluIGhpcyBsYXRlciBwbGF5cy4ge1smKiZdfVByb2Zlc3NvciBDcmFpaywgaW4gaGlzIFwiIEVuZ2xpc2ggb2YgU2hha3NwZXJlLFwiIA0KYW5kIFByb2Zlc3NvciBKLiBLLiBJbmdyYXtbJiomXX1tLCBpbiBhIGxlY3R1cmUgdXBvbiBTaGFrc3BlcmUgcHVibGlzaGVkIGluIA0KXCJBZnRlcm5vb24gTGVjdHVyZXNcIiAoQmVsbCBhbmR7WyYqJl19IERhbGR5LCAxODYzKSwgYWdhaW4gY2FsbGVkIGF0dGVudGlvbiB0byANCnRoZXNlIHBlY3VsaWFyaXRpZXMgb2YgdmVyc2lmaWNhdHtbJiomXX1pb24gYXMgYWZmb3JkaW5nIGV2aWRlbmNlIGZvciB0aGUgYXNjZXJ0YWluLSANCm1lbnQgb2YgdGhlIGNocm9ub2xvZ3kgb2YgdGhle1smKiZdfSBwbGF5cy4gRmluYWxseSwgYWJvdXQgdGhlIHNhbWUgdGltZSBpbiBFbmctIA0KbGFuZCBhbmQgaW4gR2VybWFueSwgdHdvIGludmV7WyYqJl19c3RpZ2F0b3JzIOKAlCBSZXYuIEYuIEcuIEZsZWF5IGFuZCBQcm9mZXNzb3IgDQpIZXJ0emJlcmcg4oCUIGJlZ2FuIHRvIGFwcGx5IHtbJiomXX1cIiBxdWFudGl0YXRpdmUgY3JpdGljaXNtIFwiIG9mIHRoZSBjaGFyYWN0ZXJpc3RpY3MgDQpvZiB2ZXJzZSB0byB0aGUgZGV0ZXJtaW57WyYqJl19YXRpb24gb2YgdGhlIGRhdGVzIG9mIHBsYXlzLiBUaGUgdGVzdCBvbiB3aGljaCANCkhlcnR6YmVyZyBjaGllZmx5IHJlbGllcyBpc3tbJiomXX0gdGhlIGZlbWluaW5lIChkb3VibGUpIGVuZGluZyA7IGhlIGdpdmVzIHRoZSBwZXItIA0KY2VudGFnZSBvZiBzdWNoIGVuZGluZ3Mge1smKiZdfWluIHNldmVudGVlbiBwbGF5cywgYW5kIGJlbGlldmVzIHRoYXQgdGhlIHBlcmNlbnRhZ2UgDQoNClNoYWtzcGVyZSBhbmQgdGhlIEV7WyYqJl19bGl6YWJldGhhbiBBZ2UuIDcgDQoNCkl0IHdpbGwgYmUgd2VsbCBmaXJzdCB0byBzdGFuZCBhd2F5IGZyb20gU2hha3NwZXJlLCBhbntbJiomXX1kIA0KdG8gdmlldyBoaW0gYXMgb25lIGVsZW1lbnQgaW4gYSB3b3JsZCBsYXJnZXIgdGhhbiBoaW0tIA0Kc2VsZi4gSW4gb3JkZXIge1smKiZdfXRoYXQgYW4gb3JnYW5pc20g4oCUIHBsYW50IG9yIGFuaW1hbCDigJQgDQpzaG91bGQgZXhpc3QgYXQgYWxsLCB0aGVyZSBtdXN0IGJ7WyYqJl19ZSBhIGNlcnRhaW4gY29ycmVzcG9uZC0gDQplbmNlIGJldHdlZW4gdGhlIG9yZ2FuaXNtIGFuZCBpdHMgZW52aXJvbm1lbnQuIElmIHtbJiomXX1pdCANCmJlIGZvdW5kIHRvIHRocml2ZSBhbmQgZmxvdXJpc2gsIHdlIGluZmVyIHRoYXQgc3VjaCBjb3JyZS0gDQpzcG9uZGVuY2Uge1smKiZdfWlzIGNvbnNpZGVyYWJsZS4gTm93LCB3ZSBrbm93IHNvbWV0aGluZyBvZiBcXCANCnRoZSBFbGl6YWJldGhhbiBwZXJpb2QsIGFuZCB3e1smKiZdfWUga25vdyB0aGF0IFNoYWtzcGVyZSB3YXMgaiANCmEgbWFuIHdobyBwcm9zcGVyZWQgaW4gdGhhdCBwZXJpb2QuIEluIHRoYXQgc3B7WyYqJl19ZWNpYWwhIA0KZW52aXJvbm1lbnQgU2hha3NwZXJlIHRocm92ZTogaGUgcHV0IGZvcnRoIGhpcyBibG9zLSggDQpzb21zIGFuZCBib3tbJiomXX1yZSBmcnVpdC4gQW5kIGluIHRoZSBzbWFsbGVyIG1hdHRlciBvZiBtYS0gDQp0ZXJpYWwgc3VjY2VzcyBoZSBmbG91cmlzaGVkIGFse1smKiZdfXNvLiBJbiBhbiBFbGl6YWJldGhhbiBhdG1vcy0gDQpwaGVyZSBoZSByZWFjaGVkIGhpcyBmdWxsIHN0YXR1cmUsIGFuZCBiZWNhbWV7WyYqJl19IG5vdCBvbmx5IDsgDQpncmVhdCBhbmQgd2lzZSwgYnV0IGZhbW91cywgcmljaCwgYW5kIGhhcHB5LiBDYW4gd2UgOyANCmRpc2NvdntbJiomXX1lciBhbnkgc2lnbmlmaWNhbmNlIGluIHRoZXNlIGZhY3RzID8gV2UgYXJlIHRvbGQgLCANCnRoYXQgU2hha3NwZXJlIFwiIHdhcyBub3tbJiomXX10IG9mIGFuIGFnZSwgYnV0IGZvciBhbGwgdGltZS5cIiANClRoYXQgYXNzZXJ0aW9uIG1pc2xlYWRzdXM7IGFuZCwgaW5kZWVkLCBpbntbJiomXX0gdGhlIHNhbWUgcG9lbSANCnRvIHRoZSBtZW1vcnkgb2YgaGlzIGZyaWVuZCBmcm9tIHdoaWNoIHRoZXNlIHdvcmRzIGFyZSANCnRhe1smKiZdfWtlbiwgQmVuIEpvbnNvbiBhcG9zdHJvcGhpemVzIGhpcyBncmVhdCByaXZhbCBhcyBcIiBTb3VsIA0Kb2YgdGhlIEFnZS5cIiBTaGFrc3tbJiomXX1wZXJlIHdhcyBmb3IgYWxsIHRpbWUgYnkgdmlydHVlIG9mIA0KY2VydGFpbiBwb3dlcnMgYW5kIHBlcmNlcHRpb25zIDsgYnV0IGhle1smKiZdfSBhbHNvIGJlbG9uZ2VkIA0KZXNwZWNpYWxseSB0byBhbiBhZ2Ug4oCUIGhpcyBvd24gYWdlLCB0aGUgYWdlIG9mIFNwZW5zZXIsfCB7WyYqJl19DQpLYWxlaWdoLCBKb25zb24sIEJhY29uLCBCdXJsZWlnaCwgSG9va2VyIOKAlCBhIFByb3Rlc3RhbnQgDQphZ2UsIGEgbW9uYXJjaHtbJiomXX1pY2FsIGFnZSwgYW4gYWdlIGVtaW5lbnRseSBwb3NpdGl2ZSBhbmQgDQpwcmFjdGljYWwuIEEgbWFuIGRvZXMgbm90IGF0dGFpbiB0e1smKiZdfW8gdGhlIHVuaXZlcnNhbCBieSANCmFiYW5kb25pbmcgdGhlIHBhcnRpY3VsYXIsIG5vciB0byB0aGUgZXZlcmxhc3RpbmcgYnkgYW57WyYqJl19IA0KDQppbmRpY2F0ZXMgdGhlaXIgY2hyb25vbG9naWNhbCBvcmRlci4gU2VlIHRoZSBwcmVmYWNlIHRvIEN5bWhlbGluZSBpbiB0aHtbJiomXX1lIA0KR2VybWFuIFNoYWtlc3BlYXJlIFNvY2lldHlcJ3MgZWRpdGlvbiBvZiBUaWVjayBhbmQgU2NobGVnZVBzIHRyYW5zbGF0aW9uLntbJiomXX0gDQpNci4gRmxlYXlcJ3MgcmVzdWx0cywgaW5kZXBlbmRlbnRseSBhc2NlcnRhaW5lZCwgd2VyZSBwdWJsaXNoZWQgc3Vic2VxdWVudHtbJiomXX1seSANCnRvIEhlcnR6YmVyZ1wncy4gU2VlIFRyYW5zLiBOZXcgU2guIFNvYywgYW5kIE1hY21pbGxhckNzIE1hZ2F6aW5lXiBTZXB0LntbJiomXX0sIA0KMTg3NC4gSW4gMTg3MyBNci4gRnVybml2YWxsLCBpbiBmb3VuZGluZyB0aGUgTmV3IFNoYWtzcGVyZSBTb2NpZXR5IOKAlCANe1smKiZdfQpiZWZvcmUgaGUgd2FzIGF3YXJlIHRoYXQgTXIuIEZsZWF5XCdzIHdvcmsgd2FzIGluIHByb2dyZXNzIOKAlCBpbnNpc3RlZCBvbiB0e1smKiZdfWhlIA0KaW1wb3J0YW5jZSBvZiBtZXRyaWNhbCB0ZXN0cyBmb3IgZGV0ZXJtaW5pbmcgdGhlIGNocm9ub2xvZ3ksIGFuZCBnYXZlIHR7WyYqJl19aGUgDQpwcm9wb3J0aW9uIG9mIHN0b3BwZWQgdG8gdW5zdG9wcGVkIGxpbmVzIGluIHRocmVlIGVhcmx5IGFuZCB0aHJlZSBsYXRlIHtbJiomXX1wbGF5cy4gDQpUaGUgbGF0ZXN0IGNvbnRyaWJ1dGlvbiB0byB0aGUgc3ViamVjdCBpcyBQcm9mZXNzb3IgSW5ncmFtXCdzIHZhbHVhYntbJiomXX1sZSBwYXBlciANCnJlYWQgYmVmb3JlIHRoZSBOZXcgU2guIFNvYywgb8K7IHRoZSBcIiBXZWFrLWVuZGluZyBcIiBUZXN0LiANCg0KOCB7WyYqJl19U2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KZW5kZWF2b3IgdG8gb3ZlcmxlYXAgdGhlIGxpbWl0YXRpb25zIG9mIHtbJiomXX10aW1lIGFuZCBwbGFjZS4gDQpUaGUgYWJpZGluZyByZWFsaXR5IGV4aXN0cyBub3Qgc29tZXdoZXJlIGFwYXJ0IGluIHRoZSANCmFpe1smKiZdfXIsIGJ1dCB1bmRlciBjZXJ0YWluIHRlbXBvcmFyeSBhbmQgbG9jYWwgZm9ybXMgb2YgDQp0aG91Z2h0LCBmZWVsaW5nLCBhbmQgZW57WyYqJl19ZGVhdm9yLiBXZSBjb21lIG1vc3QgZGVlcGx5IA0KaW50byBjb21tdW5pb24gd2l0aCB0aGUgcGVybWFuZW50IGZhY3RzIGFuZCBmb3tbJiomXX1yY2VzIG9mIA0KaHVtYW4gbmF0dXJlIGFuZCBodW1hbiBsaWZlIGJ5IGFjY2VwdGluZywgZmlyc3Qgb2YgYWxsLCANCnRoaXMgZmFje1smKiZdfXQg4oCUIHRoYXQgYSBkZWZpbml0ZSBwb2ludCBvZiBvYnNlcnZhdGlvbiBhbmQgc3ltcGEtIA0KdGh5LCBub3QgYSB2YWd1ZSBub3d7WyYqJl19aGVyZSwgaGFzIGJlZW4gYXNzaWduZWQgdG8gZWFjaCBvZiANCnVzLiANCg0KV2hhdCBpcyB0aGUgZXRoaWNhbCBzaWduaWZpY2FuY3tbJiomXX1lIG9mIHRoYXQgbGl0ZXJhcnkgbW92ZS0gDQptZW50IHRvIHdoaWNoIFNoYWtzcGVyZSBiZWxvbmdlZCwgYW5kIG9mIHdoaWNoIGhle1smKiZdfSB3YXMgDQphIHBhcnQg4oCUIHRoZSBFbGl6YWJldGhhbiBkcmFtYSA/IFRoZSBxdWVzdGlvbiBzZWVtcyBhdCANCmZpcnN0IGltcHJ7WyYqJl19b3Blci4gVGhlcmUgaXMgcGVyaGFwcyBubyBib2R5IG9mIGxpdGVyYXR1cmUgDQpqXmhpY2ggaGFzIGxlc3Mgb2YgYW4gZXhwcmVzc3tbJiomXX0gdGVuZGVuY3kgZm9yIHRoZSBpbnRlbGxlY3QgDQp0aGFuIHRoZSBkcmFtYSBvZiB0aGUgYWdlIG9mIEVsaXphYmV0aC4gSXQgaXMge1smKiZdfXRoZSBvdXQtIA0KY29tZSBvZiBhIHJpY2ggYW5kIG1hbmlmb2xkIGxpZmUgOyBpdCBpcyBmdWxsIG9mIGEgc2Vuc2Ugb2YgDQoNCl57WyYqJl19IGxlbiBqb3ltZW50LCBhbmQgb3ZlcmZsb3dpbmcgd2l0aCBlbmVyZ3kgOyBidXQgaXQgaXMgZm9yIA0KdGhlIG1vc3QgcGFydCBhYntbJiomXX1zb2x1dGVseSBkZXZvaWQgb2YgYSBjb25zY2lvdXMgcHVycG9zZS4gDQpUaGUgY2hpZWYgcGxheXdyaWdodCBvZiB0aGUgbW92ZW1le1smKiZdfW50IGRlY2xhcmVkIHRoYXQgdGhlIA0KZW5kIG9mIHBsYXlpbmcsIFwnXCcgYm90aCBhdCB0aGUgZmlyc3QgYW5kIG5vdywgd2FzIGFuZHtbJiomXX0gaXMgdG8gDQoNCl5ob2xkLCBhcyBedHdlcmUsIHRoZSBtaXJyb3IgdXAgdG8gbmF0dXJlLlwiIEEgbWlycm9yIGhhcyANCkJPIHRlbntbJiomXX1kZW5jeS4gVGhlIHF1ZXN0aW9ucyB3ZSBhc2sgYWJvbnQgaXQgYXJlLCBcIkRvZXMgDQp0aGlzIG1pcnJvciByZWZsZWN0IGNsZWFybHtbJiomXX15IGFuZCBmYWl0aGZ1bGx5ID9cIiBhbmQgXCIgSW4gd2hhdCANCmRpcmVjdGlvbiBpcyBpdCB0dXJuZWQgP1wiIENhcGFjaXR5IGZvciBwe1smKiZdfWVyY2VpdmluZywgZm9yIGVuLSANCmpveWluZywgYW5kIGZvciByZXByb2R1Y2luZyBmYWN0cywgYW5kIGZhY3RzIG9mIGFzIGdyZWF7WyYqJl19dCANCnZhcmlldHkgYXMgcG9zc2libGUg4oCUIHRoaXMgd2FzIHRoZSBxdWFsaWZpY2F0aW9uIG9mIGEgZHJhbS0gDQphdGlzdCBpbntbJiomXX0gdGhlIGRheXMgb2YgRWxpemFiZXRoLiBUaGUgZmFjdHMgd2VyZSB0aG9zZSBvZiANCg0KXFwgaHVtYW4gcGFzc2lvbiBhbmQgaHVtYXtbJiomXX1uIGFjdGl2aXR5LiBIZSBuZWVkZWQgbm90LCBhcyANCmVhY2ggb2Ygb3VyIHBvZXRzIGF0IHRoZSBwcmVzZW50IHRpbWUgbmVlZHMse1smKiZdfSB0byBoYXZlIGEgDQpkb2N0cmluZSBvciBhIHJldmVsYXRpb24gb3IgYW4gaW50ZXJwcmV0YXRpb24uIFRoZSBtZXJlIA0KDQpcXCBme1smKiZdfWFjdCB3YXMgZW5vdWdoIHdpdGhvdXQgYW55IHRoZW9yeSBhYm91dCB0aGUgZmFjdCA7IGFuZCANCnRoaXMgZmFjdCBtZW4gc2F3IG17WyYqJl19b3JlIGluIGl0cyB0b3RhbGl0eSwgbW9yZSBpbiB0aGUgcm91bmQsIA0KYmVjYXVzZSB0aGV5IGFwcHJvYWNoZWQgaXQgaW4gdGhlIHtbJiomXX1zcGlyaXQgb2YgZnJhbmsgZW5qb3ktIA0KbWVudC4gSXQgd2FzIG5vdCBmb3IgdGhlbSBhdHRlbnVhdGVkIGludG8gYW4gYXNwZWN0e1smKiZdfSBvciANCnJlbGVnYXRlZCB0byBhIGNsYXNzLiAsIA0KDQpTaGFrc3BlcmUgYW5kIHRoZSBFbGl6YWJldGhhbiBBZ2UuIGcgDQoNCkl7WyYqJl19biB0aGUgS2VuYXNjZW5jZSBhbmQgUmVmb3JtYXRpb24gcGVyaW9kIGxpZmUgaGFkIA0KZ3Jvd24gYSByZWFsIHRoaW5nIOKAlCB0aHtbJiomXX1pcyBsaWZlIG9uIGVhcnRoIGZvciB0aHJlZXNjb3JlIA0KeWVhcnMgYW5kIHRlbi4gVGhlIHRlcnJvciBhbmQgc2FkbmVzcyBvZiB0e1smKiZdfWhlIE1pZGRsZSANCkFnZXMsIHRoZSBhYmFuZG9ubWVudCBvZiBlYXJ0aGx5IGpveSwgdGhlIHdpc3RmdWxuZXNzIA0KYW5kIHBhdGh7WyYqJl19b3Mgb2Ygc3Bpcml0dWFsIGRlc2lyZSwgYW5kLCBvbiB0aGUgb3RoZXIgaGFuZCwgdGhlIA0Kc2NlcHRpY2lzbSwgaXJvbnksIGFuZHtbJiomXX0gc2Vuc3VhbGl0eSB1bmRlciB0aGUgYmFuIHdlcmUgDQp0aGluZ3Mgd2hpY2gsIGFzIGRvbWluYW50IGZvcm1zIG9mIGh1bWFuIGxpe1smKiZdfWZlLCBoYWQgDQpwYXNzZWQgYXdheS4gVGhlIGhpZ2hlc3QgbWVkaWFldmFsIHNwaXJpdHMgd2VyZSB0aG9zZSANCndoaWNoIGhhZCB7WyYqJl19ZmVsdCB3aXRoIG1vc3QgaW50ZW5zaXR5IHRoYXQgd2UgYXJlIHN0cmFuZ2VycyANCmFuZCBwaWxncmltcyBoZXJlIG9uIGVhcnRoLHtbJiomXX0gdGhhdCB3ZSBoYXZlIG5vIGFiaWRpbmcgDQpwbGFjZSBhbW9uZyBodW1hbiBsb3ZlcyBhbmQgaHVtYW4gc29ycm93cywgdGhhdCBse1smKiZdfWlmZSANCmlzIG9mIGxpdHRsZSB3b3J0aCBleGNlcHQgd2l0aCByZWZlcmVuY2UgdG8gaW5maW5pdGUsIGludmlzaS0gDQpibGUgYW57WyYqJl19dGVjZWRlbnRzIGFuZCBpc3N1ZXMgaW4gb3RoZXIgd15vcmxkcy4gV2l0aCBhbGwgaGlzIA0KdGVuZGVyIGFqZmZpbml0aWVzIHRvIHtbJiomXX10aGUgYnJvdGhlcmhvb2Qgb2YgZWxlbWVudGFsIHBvd2VycyANCmFuZCBvZiBhbmltYWxzLiBTYWludCBGcmFuY2lzIGZlbHQgYWxse1smKiZdfWllZCB0byB0aGVzZSBhcyBicmV0aC0gDQpyZW4gb25seSBiZWNhdXNlIHRoZXkgaGFkIGNlYXNlZCB0byBiZSByaXZhbHMgZm9yIGh7WyYqJl19aXMgaGVhcnQgDQp3aXRoIHRoZSBzdXByZW1lIGxvdmVyLCBKZXN1cy4gVGhlIGRlZXBlc3QgcmVsaWdpb3VzIA0Kdm9pY2Ugb2YgdHtbJiomXX1oZSBNaWRkbGUgQWdlcyBjb3VwbGVzIGluIGEgc2luZ2xlIGJyZWF0aCB0aGUgDQp3b3JkcyBkZSBpbWl0YXRpb25lIENocmlzdGkge1smKiZdfWFuZCBkZSBjb250ZW1wdHUgb21uaXVtIA0KdmFuaXRhdHVtIG11bmRpLiBJdCBpcyB0aGUgYXNjZXRpYyBxdWVzdGVyLCBHYWxhaGF7WyYqJl19ZCwgDQp3aXRoIHZpc2lvbiB1bmRpbW1lZCBieSBhbnkgbWlzdCBvZiBlYXJ0aGx5IHBhc3Npb24sIA0Kd2hvIGJlaG9sZHMgdGhlIHtbJiomXX1teXN0aWNhbCBHcmFpbC4gQW5nZWxpY28gcGFpbnRzIFBhcmEtIA0KZGlzZSwgYW5kLCBiZWNhdXNlIHRoZSBlYXJ0aCBjYW4gYWZme1smKiZdfW9yZCBubyBlcXVhbCBiZWF1dHksIA0KdGhlbiBQYXJhZGlzZSBhZ2FpbiA7IGJlbG93IHRoZSBnbG9yeSBvZiBzZXJhcGhpbSBhbmR7WyYqJl19IA0KY2hlcnViaW0gYXBwZWFyIHRoZSBob21lbHkgZmFjZXMgb2YgcHJpZXN0IGFuZCBtb25rLCANCnRyYW5zcG9ydGVkIGludG8gdHtbJiomXX1oZSBwZWxsdWNpZCBhbmQgY2hhbmdlbGVzcyBhdG1vc3BoZXJlIA0Kb2YgSGVhdmVuIOKAlCBmb3IgdGhlc2UgbWVuIGhhZCBhYmFue1smKiZdfWRvbmVkIGVhcnRoLCBhbmQgbWF5IA0KdGhlcmVmb3JlIGluaGVyaXQgcGVycGV0dWFsIGJsZXNzZWRuZXNzLiBEYW50ZSwgZmlsbGV7WyYqJl19ZCANCndpdGgga2VlbiBwb2xpdGljYWwgcGFzc2lvbiBhcyBoZSB3YXMsIGZpbmRzIGhpcyBzdWJqZWN0cyANCm9mIGhpZ2hlc3QgaXtbJiomXX1tYWdpbmF0aXZlIGludGVyZXN0IG5vdCBpbiB0aGUgbGlmZSBvZiBGbG9yZW5jZSANCmFuZCBQaXNhIGFuZCBWZXJvbmEsIGJ1dCBpe1smKiZdfW4gY2lyY2xlcyBvZiBIZWxsLCBhbmQgdGhlIG1vdW50IA0Kb2YgUHVyZ2F0b3J5LCBhbmQgdGhlIHJvc2Ugb2YgYmVhdGlmaWVkIHN7WyYqJl19cGlyaXRzLiBIdW1hbiANCmxvdmUgY2Vhc2VzIHRvIGJlIGFkZXF1YXRlIGZvciB0aGUgbmVlZHMgb2YgaGlzIGFkdWx0IA0KaGVhcntbJiomXX10OyB0aGUgd29tYW4gd2hvIHdhcyBkZWFyZXN0IHRvIGhpbSBjZWFzZXMgdG8gYmUgDQp3b21hbiwgYW5kIGlzIHN1YmxpbWVkIGlue1smKiZdfXRvIHRoZSBzdXBlcm5hdHVyYWwgd2lzZG9tIG9mIA0KDQpsbyBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQp0aGV7WyYqJl19b2xvZ3kuIFdoaWxlIHRoZSB3b3JsZCB3YXMgdGh1cyBnaXZlbiBvdmVyIHRvIFNhdGFuXiANCnRob3NlIHdobyB3ZXJlIGxhY2tpbntbJiomXX1nIGluIHRoZSBzcGlyaXR1YWwgcGFzc2lvbiwgYW5kIHdobyANCmNvdWxkIG5vdCBhYmFuZG9uIHRoaXMgd29ybGQsIGNsb3NlZCBhe1smKiZdfSBiYXJnYWluIHdpdGggdGhlIA0KRXZpbCBPbmUuIFRvZ2V0aGVyIHdpdGggdGhlIHdvcmxkIGFuZCB0aGUgZmxlc2gsIHRoZXkgDQp7WyYqJl19YWNjZXB0ZWQgdGhlIGRldmlsLCBhcyBpbiB0aGUgbF9lZ2VuZCBGYXVzdHVzIGRvZXMsIGFuZCBhcyANCm1hbnkgYSBvbmUgZGlkIHtbJiomXX1pbiBmYWN0LiBPdXIgaW1hZ2luYXRpb24gY2FuIGhhcmRsKVwnXCcgDQpmaW5kIGEgcGxhY2UgZm9yIFNoYWtzcGVyZSBpbiBhbnkgcGF7WyYqJl19cnQgb2YgdGhlIE1pZGRsZSANCkFnZXMuIEVpdGhlciB0aGV5IHdvdWxkIHRyYW5zZm9ybSBoaW0sIG9yIGhlIHdvdWxkIA0KY29uZntbJiomXX1vdW5kIGFuZCBkaXNvcmdhbml6ZSB0aGVtLiBXaXRoIGhpcyBldmVyLXByZXNlbnQgDQouc2Vuc2Ugb2YgdHJ1dGgsIGhpcyByZWFse1smKiZdfWl6YXRpb24gb2YgZmFjdCwgYW5kIGVzcGVjaWFsbHkgb2YgDQoNCnNeIHRoYXQgZ3JlYXQgZmFjdCwgYSBtb3JhbCBvcmRlciBvZiB7WyYqJl19dGhlIHVuaXZlcnNlLCB3ZSBjYW5ub3QgDQp0aGluayBvZiBTaGFrc3BlcmUgYW1vbmcgdGhlIG1lbiBvZiBwbGVhc3VyZSwgc2NlcHtbJiomXX10aS0gDQpjaXNtLCBhbmQgaXJvbnkgOyBoZSBjb3VsZCBub3Qgc3RheSBoaXMgZW5lcmd5IG9yIGhpcyBodW1vciANCnc0dGggdGhle1smKiZdfSBzaGFsbG93IGx1YnJpY2l0aWVzIG9mIEJvY2NhY2Npby4gTmVpdGhlciBjYW4gDQp3ZSBwaWN0dXJlIHRvIG91cnNlbHZlcyBhbiB7WyYqJl19YXNjZXRpYyBTaGFrc3BlcmUsIHN1cHByZXNzaW5nIA0KaGlzIGRlc2lyZSBvZiBrbm93bGVkZ2UsIHRyYW5zZm9ybWluZyBoaXMgaHtbJiomXX1lYXJ0eSBzZW5zZSBvZiANCm5hdHVyYWwgZW5qb3ltZW50IGludG8gY3VyaW9zaXRpZXMgb2YgbXlzdGljIGpveSwgZXhoYWxpbmcge1smKiZdfQ0KaGlzIHN0cmVuZ3RoIGluIHNpZ2hzIGFmdGVyIGFuIFwiIFVyYnMgYmVhdGEgbGVydXNhbGVtLFwiIG9yIA0KaW4gdGVuZGVyIGxhbXtbJiomXX1lbnRhdGlvbiBvdmVyIHRoZSB2YW5pdHkgb2YgaHVtYW4gbG92ZSBhbmQgDQpodW1hbiBncmllZi4gDQoNCkJ1dCBpbiB0aGUgUmVue1smKiZdfWFzY2VuY2UgYW5kIFJlZm9ybWF0aW9uIHBlcmlvZCwgaW5zdGVhZCANCm9mIHN1YnN0aXR1dGluZyBzdXBlcm5hdHVyYWwgcG93ZXJ7WyYqJl19cyBhbmQgcGVyc29ucyBhbmQgDQpldmVudHMgZm9yIHRoZSBuYXR1cmFsIGZhY3RzIG9mIHRoZSB3b3JsZCwgbWVuIHJlY3VycmVkIHtbJiomXX0NCnRvIHRob3NlIGZhY3RzLCBhbmQgZm91bmQgaW4gdGhlbSBpbnNwaXJhdGlvbiBhbmQgc3VzdGUtIA0KbmFuY2UgZm9yIGhlYXJ0e1smKiZdfSBhbmQgaW50ZWxsZWN0IGFuZCBjb25zY2llbmNlLiBPZiBQYXJhZGlzZSANCm1lbiBrbmV3IHNvbWV3aGF0IGxlc3MgdGhhbiBBbmd7WyYqJl19ZWxpY28gaGFkIGtub3duLCBvciANCnZEYW50ZTsgYnV0IHRoZXkgc2F3IHRoYXQgdGhpcyBlYXJ0aCBpcyBnb29kLiBQaHlzaWNhbHtbJiomXX0gDQoNCl4gL25hdHVyZSB3YXMgbm90IGRhbW5hYmxlIDsgdGhlIG91dGx5aW5nIHJlZ2lvbnMgb2YgdGhlIA0KKCBlYXJ0aCB3ZXJle1smKiZdfSBub3QgYWxsIHRlbmFudGVkIGJ5IHZhbXBpcmVzIGFuZCBkZXZpbHMuIFNpciANClwnIEpvaG4gTWFuZGV2aWxsZSBicm91Z2h0IGJhe1smKiZdfWNrIHN0b3JpZXMgb2Ygb2JzY3VyZSB2YWxsZXlzIA0KY29tbXVuaWNhdGluZyB3aXRoIEhlbGwgYW5kIGhhdW5jZWQgYnkgaG9taWN7WyYqJl19aWRhbCBkZS0gDQptb25zIDsgUmFsZWlnaCBicm91Z2h0IGJhY2sgdGhlIHRvYmFjY28tcGxhbnQgYW5kIHRoZSANCnBvdGF0by4gSXtbJiomXX1uIHRoZSBjb2xsZWdlIG9mIGhpcyBOZXcgQXRsYW50aXMsIEJhY29uIGVyZWN0cyANCmEgc3RhdHVlIHRvIHRoZSBpbnZlbnRvciBve1smKiZdfWYgc3VnYXIuIERyZWFtcyBvZiB1bmV4cGxvcmVkIA0KcmVnaW9ucyBleGNpdGVkIHRoZSBpbWFnaW5hdGlvbiBvZiBTcGFuaWFyZCB7WyYqJl19YW5kIEVuZ2xpc2gqIA0KDQpcXCANCg0KU2hha3NwZXJlIGFuZCB0aGUgRWxpemFiZXRoYW4gQWdlLiAxIDEgDQoNCm1hbiBpbiB0aGV7WyYqJl19IGxhdGVyIFJlbmFzY2VuY2U7IGJ1dCBpdCB3YXMgb2YgRWwgRG9yYWRvIA0KdGhleSBkcmVhbWVkLCB3aXRoIGl0cyBnb2xkLXJvb3tbJiomXX1mZWQgY2l0eSBhbmQgYXVyaWZlcm91cyANCnNhbmRzLiBIYXJkeSBtZW4gd2VudCBmb3J0aCB0byBlc3RhYmxpc2ggcGxhbnRhdGlve1smKiZdfW5zIA0KYW5kIHBvc3Nlc3MgdGhlIGVhcnRoLiBBbmQgYXMgdGhlc2Ugd2VyZSBlYWdlciB0byBhYy0gDQpxdWlyZSBwb3dlciBvdmV7WyYqJl19ciB0aGUgcGh5c2ljYWwgd29ybGQgYnkgZXh0ZW5kaW5nIGluIHRoZSANCkluZGllcyBhbmQgQW1lcmljYSB0aGUgZG9taW5pb24gb3tbJiomXX1mIGNpdmlsaXplZCBtYW4sIG90aGVycyANCndlcmUgbm8gbGVzcyBlYWdlcmx5IGVuZ2FnZWQgaW4gZW5kZWF2b3JpbmcgdG8gZXh0e1smKiZdfWVuZCwgDQpieSBtZWFucyBvZiBzY2llbnRpZmljIGRpc2NvdmVyeSwgdGhlIGRvbWluaW9uIG9mIG1hbiANCm92ZXIgYWxsIGZvcmN7WyYqJl19ZXMgYW5kIHByb3ZpbmNlcyBvZiBuYXR1cmUuIFRoZSBzdHVkZW50IG9mIA0Kc2NpZW5jZSB3YXMgbm90IG5vdyBhIG1hZ2ljaWFuIHtbJiomXX3igJQgYSBkZWFsZXIgaW4gdGhlIGJsYWNrIGFydCwgDQppbiBtaXJhY2xlcyBvZiB0aGUgZGlhYm9saWMga2luZCA7IGhlIHBsZWFke1smKiZdfWVkIGluIHRoZSBjb3VydHMsIA0KaGUgaGVsZCBhIHNlYXQgaW4gUGFybGlhbWVudCwgaGUgYmVjYW1lIExvcmQgQ2hhbmNlbGxvciB7WyYqJl19YSANCm9mIEVuZ2xhbmQuIEl0IHdhcyBhc2NlcnRhaW5lZCB0aGF0IGhlYXZlbiB3YXMgbm90IGNvbi0gMSANCnN0cnVjdGVkIG9mIHtbJiomXX1hIHNlcmllcyBvZiBzcGhlcmVzIG1vdmluZyBvdmVyIGFuZCBhcm91bmQgXFwgDQp0aGUgZWFydGgsIGJ1dCB0aGF0IHRoZSBlYXJ0aHtbJiomXX0gd2FzIHRydWx5IGluIGhlYXZlbi4gVGhpcyBcXCANCmlzIHR5cGljYWwgb2YgdGhlIG1vcmFsIGRpc2NvdmVyeSBvZiB0aGUgdGltZXtbJiomXX0uIE1lbiBmb3VuZCAvIA0KdGhhdCB0aGUgZWFydGggaXMgaW4gaGVhdmVuLCB0aGF0IEdvZCBpcyBub3QgYWJvdmUgbmF0dXJlLCBcXHtbJiomXX0gDQp0b3VjaGluZyBpdCBvbmx5IHRocm91Z2ggcmFyZSBwcmV0ZXJuYXR1cmFsIHBvaW50cyBvZiBjb24tIDEgDQp0YWN0IOKAlCBye1smKiZdfWF0aGVyIHRoYXQgaGUgaXMgbm90IGZhciBmcm9tIGV2ZXJ5IG9uZSBvZiB1cyA7IHRoYXQgai8gDQpodW1hbiBsaWZlIGlzIHNhY3J7WyYqJl19ZWQsIGFuZCB0aW1lIGEgZnJhZ21lbnQgb2YgZXRlcm5pdHkuXiANCg0KQ2F0aG9saWNpc20gaGFkIGVuZGVhdm9yZWQgdG8gc2FuY3tbJiomXX10aWZ5IHRoaW5ncyBzZWN1bGFyIA0KYnkgdmlydHVlIHByb2NlZWRpbmcgdG93YXJkcyB0aGVtIGZyb20gc3BlY2lhbCBlY2NsZXNpe1smKiZdfS0gDQphc3RpY2FsIHBlcnNvbnMgYW5kIHBsYWNlcyBhbmQgYWN0cy4gVGhlIG1vZGVybiBzcGlyaXQsIA0Kb2Ygd2hpY2ggUHJvdGV7WyYqJl19c3RhbnRpc20gaXMgYSBwYXJ0LCByZXZlYWxlZCBpbiB0aGUgdG90YWwgDQpsaWZlIG9mIG1lbiBhIGRlZXBlciBhbmQgdHJ1ZXIgc3tbJiomXX1hbmN0aXR5IHRoYW4gY2FuIGJlIGNvbi0gDQpmZXJyZWQgYnkgdG91Y2hlcyBvZiBhbnkgd2FuZCBvZiBlY2NsZXNpYXN0aWNhbCBte1smKiZdfWFnaWMuIA0KVGhlIGJ1cmRlbiBvZiB0aGUgY3Vyc2Ugd2FzIGxpZ2h0ZW5lZC4gS25vd2xlZGdlIHdhcyBeIA0KZ29vZCwgYW5kIG17WyYqJl19ZW4gc2V0IGFib3V0IGluY3JlYXNpbmcgdGhlIHN0b3JlIG9mIGtub3dsLSggDQoNCiogU2VlIHRoZSBleGNlbGxlbnQgb3BlbmluZ3tbJiomXX0gY2hhcHRlcnMgb2YgXCIgU2hha2VzcGVhcmUgYWxzIFByb3Rlc3RhbnQsIA0KUG9saXRpa2VyLCBQc3ljaG9sb2cgdW5kIERpY2h0ZXtbJiomXX1yLFwiIGJ5IERyLiBFZHVhcmQgVmVoc2UuICoqIFNoYWtlc3BlYXJlLCANCmRlciB1bmdlbGVocnRlLCB1bnN0dWRpcnRlIERpY2h0ZXtbJiomXX1yLCBpc3QgZGVyIGVyc3RlLCBpbiB3ZWxjaGVtIHNpY2ggZGVyIG1vZGVybmUgDQpHZWlzdCwgZGVyIHZvbiBkZXIgV2VsdCB3ZWlze1smKiZdfXMsIGRlciBkaWUgZ2VzYW1tdGUgV2lya2xpY2hrZWl0IHp1IGJlZ3JlaWZlbiANCnN1Y2h0LCBlbmVyZ2lzY2ggenVzYW1tZW5mYXN7WyYqJl19c3QuIERpZXNlciBtb2Rlcm5lIEdlaXN0IGlzdCBkZXIgZ2VyYWRlIA0KR2VnZW5zYXR6IGRlcyBtaXR0ZWxhbHRlcmxpY2hlbiBHZXtbJiomXX1pc3RlcyA7IGVyIGVyZmFzc3QgZGllIFdlbHQgdW5kIG5hbWVudC0gDQpsaWNoIGRpZSBpbm5lcmUgV2VsdCBhbHMgZWluIFN0aWlje1smKiZdfWsgZGVzIEhpbXJhZWxzLCB1bmQgZGFzIExlYmVuIGFscyBlaW5lbiANClRoZWlsIGRlciBFd2lna2VpdCBcIiAodm9sLiBpLiwgcC4ge1smKiZdfTYyKS4gDQoNCjEgMiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQplZGdlIGJ5IGludGVycm9nYXRpb24gb2YgbmF7WyYqJl19dHVyZSwgYW5kIGJ5IHJlc2VhcmNoIGludG8gdGhlIA0KbGlmZSBvZiBtYW5raW5kIGFzIHByZXNlcnZlZCBpbiBhbmNpZW50IGxpdHtbJiomXX1lcmF0dXJlcy4gVmlzaS0gDQpibGUgcG9tcCB3YXMgYSB0aGluZyB3aGljaCB0aGUgZXllIG1pZ2h0IGZyYW5rbHkgZW5qb3kgOyANe1smKiZdfQptZW4gdHJpZWQgdG8gbWFrZSBsaWZlIHNwbGVuZGlkLiBSYWxlaWdoIHJvZGUgYnkgdGhlIA0KUXVlZW4gaW4gc2lsdmVyIGFybW97WyYqJl19cjsgdGhlIEplc3VpdCBEcmV4ZWxpdXMgZXN0aW1hdGVkIA0KdGhlIHZhbHVlIG9mIHRoZSBzaG9lcyB3b3JuIGJ5IHRoaXMgbWluaXtbJiomXX1vbiBvZiB0aGUgRW5nbGlzaCANCkNsZW9wYXRyYSBhdCBzaXggdGhvdXNhbmQgc2l4IGh1bmRyZWQgZ29sZCBwaWVjZXMuIFRoZSANe1smKiZdfQplc3NheXMgXCIgT2YgQnVpbGRpbmdcIiBhbmQgXCIgT2YgR2FyZGVucy9cJyBieSBCYWNvbiwgc2hvdyANCmhvdyB0aGlzIHN1cGVyYiBte1smKiZdfXVuZGFuZSByaXR1YWxpc20gaGFkIGEgY2hhcm0gZm9yIGhpcyANCmltYWdpbmF0aW9uLiBCZWF1dHkgd2FzIG5vdyBjb25mZXNzZWR7WyYqJl19IHRvIGJlIGdvb2QgOyANCm5vdCB0aGUgYmVhdXR5IG9mIFBhcmFkaXNlIHdoaWNoIEF1Z2VsaWNvIHBhaW50ZWQsIGJ1dCANCnRoYXtbJiomXX10IG9mIExpb25hcmRvXCdzIE1vbm5hIExpc2EsIGFuZCBSYWZmYWVsZVwncyBGb3JuYXJpbmEsIA0KYW5kIG9mIHRoZSBkYXVnaHRlcnN7WyYqJl19IG9mIFBhbG1hIFllY2NoaW8uIFRoZSBlYXJ0aCwgYW5kIA0KdGhvc2UgZXhjZWxsZW50IGNyZWF0dXJlcywgbWFuIGFuZCB3b21hbntbJiomXX0sIHdhbGtpbmcgdXBvbiANCml0LCBmb3JtZWQgYSBzcGVjdGFjbGUgd29ydGggYSBwYWludGVycyBzb3VsLiBPbmVcJ3MgDQpjb3VudHtbJiomXX1yeSB3YXMgZm9yIHRoZSBwcmVzZW50IG5vdCB0aGUgaGVhdmVubHkgSmVydXNhbGVtLCANCmJ1dCBhIGNlcnRhaW4gZGVmaW5lZCBwe1smKiZdfW9ydGlvbiBvZiB0aGlzIGhhYml0YWJsZSBnbG9iZSA7IGFuZCANCnBhdHJpb3Rpc20gYmVjYW1lIGEgdmlydHVlLCBhbmQgcXVlZW57WyYqJl19LXdvcnNoaXAgYSBwaWVjZSBvZiANCi8gcmVsaWdpb24uIENvbnNjaWVuY2Ugd2FzIGEgZmFpdGhmdWwgd2l0bmVzczsgYW4gYWN0dXtbJiomXX1hbCANCnNlbnNlIG9mIHNpbiBhbmQgYW4gYWN0dWFsIG5lZWQgb2YgcmlnaHRlb3VzbmVzcyB3ZXJlIGluLSANCmRpdmlkdWFsIGNve1smKiZdfW5jZXJucyBiZWxvbmdpbmcgdG8gdGhlIGlubW9zdCBzZWxmIG9mIGVhY2ggDQpodW1hbiBiZWluZywgYW5kIG5vdCB0byBiZSBkZWF7WyYqJl19bHQgd2l0aCBieSBlY2NsZXNpYXN0aWNhbCANCm1lY2hhbmlzbSwgYnkgc2FsZSBvZiBpbmR1bGdlbmNlLCBvciBkaXNwZW5zYXRpb3tbJiomXX1uIG9mIGEgDQpwb3BlLiBXb21hbiB3YXMgbmVpdGhlciBhIHNhdGFuaWMgYmFpdCB0byBjYXRjaCB0aGUgDQpzb3VsIG9mIG1hbiwge1smKiZdfW5vciB3YXMgc2hlIHRoZSBzdXBlcm5hdHVyYWwgb2JqZWN0IG9mIG1lZGktIA0KYWV2YWwgY2hpdmFscmljIGRldm90aW9uIDsgc2h7WyYqJl19ZSB3YXMgbm8gbWlyYWNsZSwgeWV0IG5vdCBsZXNzIA0Kbm9yIG90aGVyIHRoYW4gdGhhdCBlbmRsZXNzbHkgaW50ZXJlc3RpbmcgdHtbJiomXX1oaW5nIOKAlCB3b21hbi4gDQpKIExvdmUsIGZyaWVuZHNoaXAsIG1hcnJpYWdlLCB0aGUgdGllcyBvZiBwYXJlbnQgYW5kIGNoaWxke1smKiZdfSwgDQpJIGplYWxvdXN5LCBhbWJpdGlvbiwgaGF0cmVkLCByZXZlbmdlLCBsb3lhbHR5LCBkZXZvdGlvbiwgDQpcXCBtZXJjeSDigJQge1smKiZdfXRoZXNlIHdlcmUgbm90IGluc2lnbmlmaWNhbnQgYWZmYWlycyBiZWNhdXNlIGJlLSANClxcIGxvbmdpbmcgdG8gYSB3b3JsZCB3aGlje1smKiZdfWggcGFzc2VzIGF3YXkgOyBodW1hbiBsaWZlIGJlaW5nIA0KSSBvZiBpbXBvcnRhbmNlLCB0aGVzZSwgdGhlIGJsZXNzaW5ncyBhbmR7WyYqJl19IGN1cnNlcyBvZiBodW1hbiANCjEgbGlmZSwgd2VyZSBpbXBvcnRhbnQgYWxzby4gSGVhdmVuIG1heSBiZSB2ZXJ5IHJlYWwgOyB3ZXtbJiomXX0gDQpoYXZlIGEgZ29vZCBob3BlIHRoYXQgaXQgaXMgc28gOyBtZWFud2hpbGUgaGVyZSBpcyBvdXIgDQplYXJ0aCDigJQgYSBzdWJze1smKiZdfXRhbnRpYWwsIGluZHViaXRhYmxlIGZhY3QuIA0KDQpTaGFrc3BlcmUgYW5kIHRoZSBFbGl6YWJldGhhbiBBZ2UuIDEgMyANCg0KVGh7WyYqJl19ZSBzZWxmLWNvbnNjaW91cyBldGhpY3Mgb2YgdGhlIEVsaXphYmV0aGFuIHBlcmlvZCBmaW5kIA0KYW4gaW1hZ2luYXRpdmUgdXR0ZXtbJiomXX1yYW5jZSBpbiBTcGVuc2VyXCdzIFwiIEZhZXJpZSBRdWVlbmUuXCdeIA0KU3BlbnNlclwncyB2aWV3IG9mIGh1bWFuIGxpZmUgaXMgZ3JhdntbJiomXX1lIGFuZCBlYXJuZXN0IDsgaXQgaXMgdCANCnRoYXQgb2YgYSBrbmlnaHRseSBlbmNvdW50ZXIgd2l0aCBwcmluY2lwYWxpdGllcyBhe1smKiZdfW5kIHBvdy0gXFwgDQplcnMgb2YgZXZpbC4gWWV0IFNwZW5zZXIgaXMgbmVpdGhlciBtZWRpYWV2YWwgbm9yIGVzc2VuLSANCnRpYWxse1smKiZdfXkgUHVyaXRhbiA7IHRoZSBkZXNpZ24gb2YgdGhlIFwiIEZhZXJpZSBRdWVlbmUgXCIgaXMgaW4gDQpoYXJtb255IHdpdGggdGhlIGdlbntbJiomXX1lcmFsIEVsaXphYmV0aGFuIG1vdmVtZW50LiBUaGUgDQpwcm9ibGVtIHdoaWNoIHRoZSBwb2V0IHNldHMgaGltc2VsZiB0byBjb25ze1smKiZdfWlkZXIgaXMgbm90IA0KdGhhdCBvZiBvdXIgZ3JlYXQgRW5nbGlzaCBwcm9zZSBhbGxlZ29yeSDigJQgXCIgVGhlIFBpbGdyaW1cJ3MgDXtbJiomXX0KUHJvZ3Jlc3MgXCIg4oCUIGhvdyB0aGUgc291bCBvZiBtYW4gbWF5IGVzY2FwZSBmcm9tIGVhcnRoIA0KdG8gaGVhdmVuLiBLb3IgaXtbJiomXX1zIHRoZSBxdWVzdCBvZiBhIG15c3RpY2FsIEdyYWlsIGEgY2VudHJhbCANCnBvaW50IGluIHRoaXMgZXBpYyBvZiBBcnRodXIuIFRoe1smKiZdfWUgZ2VuZXJhbCBlbmQgb2YgU3Blbi0gDQpzZXJcJ3MgcG9lbSBpcyBcIiB0byBmYXNoaW9uIGEgZ2VudGxlbWFuIG9yIG5vYmxlIHBlcntbJiomXX1zb24gaW4gXiANCnZpcnR1b3VzIGFuZCBnZW50bGUgZGlzY2lwbGluZS5cIiBBIGdyYW5kIHNlbGYtY3VsdHVyZSBpcyANCnRoYXQgYXtbJiomXX1ib3V0IHdoaWNoIFNwZW5zZXIgaXMgY29uY2VybmVkIDsgbm90LCBhcyB3aXRoIA0KQmFueWFuLCB0aGUgZXNjYXBlIG9mIHRoZSBze1smKiZdfW91bCB0byBoZWF2ZW4gOyBub3QgdGhlIGF0dGFpbi0gDQptZW50IG9mIHN1cGVybmF0dXJhbCBncmFjZSB0aHJvdWdoIGEgcG9pbnR7WyYqJl19IG9mIG15c3RpY2FsIA0KY29udGFjdCwgbGlrZSB0aGUgdmlzaW9uIHdoaWNoIHdhcyBncmFudGVkIHRvIHRoZSB2aXJnaW4gDQprbntbJiomXX1pZ2h0IG9mIHRoZSBtZWRpYWV2YWwgYWxsZWdvcnkuIFNlbGYtY3VsdHVyZSwgdGhlIGZvcm1hLSANCnRpb24gb2YgYSBjb21wbGV0e1smKiZdfWUgY2hhcmFjdGVyIGZvciB0aGUgdXNlcyBvZiBlYXJ0aCwgYW5kIA0KYWZ0ZXJ3YXJkcywgaWYgbmVlZCBiZSwgZm9yIHRoZSB1c2V7WyYqJl19cyBvZiBoZWF2ZW4g4oCUIHRoaXMgd2FzIA0Kc3ViamVjdCBzdWZpaWNpZW50IGZvciB0aGUgdHdlbnR5LWZvdXIgYm9va3MgZGVzaXtbJiomXX1nbmVkIHRvIA0KZm9ybSB0aGUgZXBpYyBvZiB0aGUgYWdlIG9mIEVsaXphYmV0aC4gQW5kIHRoZSBtZWFucyANCm9mIHRoYXQgc2Vse1smKiZdfWYgLWN1bHR1cmUgYXJlIG9mIHRoZSBhY3RpdmUga2luZCDigJQgbmFtZWx5LCB3YXItIA0KZmFyZSDigJQgd2FyZmFyZSBub3QgZm97WyYqJl19ciBpdHMgb3duIHNha2UsIGJ1dCBmb3IgdGhlIGdlbmVyb3VzIA0KYWNjb21wbGlzaG1lbnQgb2YgdW5zZWxmaXNoIGVuZHMuIEdvZHtbJiomXX1saW5lc3MsIHNlbGYtbWFzLSBcXCANCnRlcnksIGNoYXN0aXR5LCBmcmF0ZXJuaXR5LCBqdXN0aWNlLCBjb3VydGVzeSwgY29uc3RhbntbJiomXX1jeSDigJQgXFwgDQplYWNoIG9mIHRoZXNlIGlzIGFuIGVsZW1lbnQgaW4gdGhlIGlkZWFsIG9mIGh1bWFuIGNoYXJhYy0gDQp0ZXIgY3tbJiomXX1vbmNlaXZlZCBieSB0aGUgcG9ldCA7IG5vdCBhbiBhc2NldGljLCBub3QgYSBtZWRpYWV2YWwgDQppZGVhbC4gSWYgd2UgYXJlIHRve1smKiZdfSBnaXZlIGEgbmFtZSB0byB0aGF0IGlkZWFsLCB3ZSBtdXN0IA0KY2FsbCBpdCBNYWduaWZpY2VuY2UsIEdyZWF0LWRvaW5nLiBQZW57WyYqJl19aXRlbnRpYWwgZGlzY2lwbGluZSANCmFuZCBoZWF2ZW5seSBjb250ZW1wbGF0aW9uIGFyZSByZWNvZ25pemVkIGJ5IFNwZW5zZXIgDXtbJiomXX0KYXMgbmVlZGZ1bCB0byB0aGUgcGVyZmVjdGluZyBvZiB0aGUgR29kd2FyZCBzaWRlIG9mIG1hblwncyANCm5hdHVyZSwgYW5kIGFzIHtbJiomXX1wcmVwYXJpbmcgaGltIGZvciBzdHJlbnVvdXMgZW5jb3VudGVyIHdpdGggDQpldmlsIEogeWV0IGl0IGlzIGNoYXJhY3RlcmlzdGlje1smKiZdfSB0aGF0IGV2ZW4gSGVhdmVubHkgQ29uLSANCg0KMTQgXCcgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KdGVtcGxhe1smKiZdfXRpb24gaW4gU3BlbnNlclwncyBhbGxlZ29yeSBjYW5ub3QgZm9yZ2V0IHRoZSBpbSANCnBvcnRhbmNlIG9mIHRob3NlIHdvbmRlcmZ1e1smKiZdfWwgdGhpbmdzIG9mIGVhcnRoIOKAlCBMb25kb24gDQphbmQgdGhlIFF1ZWVuLiANCg0KTm9yIGlzIGVhY2ggb2YgU3BlbnNlclwncyBre1smKiZdfW5pZ2h0cyAoYWx0aG91Z2ggdXBvbiBoaXMgDQpvd24gc3RyZW5ndGggYW5kIHNraWxsLCBhc3Npc3RlZCBieSBkaXZpbmUgZ3JhY2V7WyYqJl19LCBkZXBlbmRzIA0KdGhlIGlzc3VlIG9mIGhpcyBzdHJpZmUpIGEgc29saXRhcnkga25pZ2h0LWVycmFudC4gVGhlIHBvZXQgDQppc3tbJiomXX0gbm90IHdpdGhvdXQgYSBzZW5zZSBvZiB0aGUgY29ycG9yYXRlIGxpZmUgb2YgaHVtYW5pdHkuIA0KQXMgdGhlIHZpcnR1ZXMgYXJle1smKiZdfSBsaW5rZWQgb25lIHRvIGFub3RoZXIgYnkgYSBnb2xkZW4gDQpjaGFpbiwgc28gaXMgZWFjaCBub2JsZSBuYXR1cmUgYm91bmQgdG97WyYqJl19IGhpcyBmZWxsb3dzLiANCkFydGh1ciBpcyB0aGUgc3VjY29yZXIgb2YgYWxsOyBhbGwgYXJlIHRoZSBzZXJ2YW50cyBvZiANCkdsb3tbJiomXX1yaWFuYS4gU3BlbnNlciB3b3VsZCBzZWVtIHRvIGhhdmUgbG9uZ2VkIGZvciBzb21lIA0KbmV3IG9yZGVyIG9mIGxvZnR5LCBjb3Jwe1smKiZdfW9yYXRlIGxpZmUsIGEgbGF0ZXIgUm91bmQgVGFibGVeIA0Kc3VpdGFibGUgdG8gdGhlIEVsaXphYmV0aGFuIGFnZS4gSWYgaXQgd2V7WyYqJl19cmUgYSBkcmVhbSwgDQptb3JlIGZpdHRlZCBmb3IgRmFlcnkgTGFuZCB0aGFuIGZvciBFbmdsYW5kIG9mIHRoZSBzaXgtIA0KdGVlbntbJiomXX10aCBjZW50dXJ5LCB3ZSBtYXkgcGVyaGFwcyBwYXJkb24gU3BlbnNlciBmb3IgYmUtIA0KbGllZiBpbiBpbmNhbGN1bGFibGUgcG9ze1smKiZdfXNpYmlsaXRpZXMgb2YgdmlydHVlOyBmb3IgaGUgaGFkIA0Ka25vd24gU2lkbmV5LCBhbmQgdGhlIGNoYXJhY3RlciBvZiBTaWRuZXl7WyYqJl19IHNlZW1zIGZvci0gDQpldmVyIHRvIGhhdmUgbGl2ZWQgd2l0aCBoaW0sIGluc3BpcmluZyBoaW0gd2l0aCBpbmV4LSANCnRpbmd1aXtbJiomXX1zaGFibGUgZmFpdGggaW4gbWFuLiBXaXRoIG5hdGlvbmFsIGxpZmUgU3BlbnNlciANCm93bmVkIGEgc3ltcGF0aHkgd2hpY2ggd2Uge1smKiZdfWRvIG5vdCBleHBlY3QgdG8gZmluZCBpbiB0aGUgDQptZWRpYWV2YWwgcm9tYW5jZXMgb2YgQXJ0aHVyLCB3cml0dGVuIGJlZm9yZSB7WyYqJl19RW5nbGFuZCANCmhhZCBhY3F1aXJlZCBhbiBpbmRlcGVuZGVudCBuYXRpb25hbCBjaGFyYWN0ZXIsIG5vciBpbiANCkJ1bnlhblwncyB7WyYqJl19YWxsZWdvcnksIHdoaWNoIGRvZXMgbm90IGNvbmNlcm4gaXRzZWxmIHdpdGggYWYtIA0KZmFpcnMgb2YgZWFydGhseSBwb2xpdHksIHtbJiomXX1hbmQgd2hpY2ggY2FtZSBpbnRvIGV4aXN0ZW5jZSBhdCANCmEgcGVyaW9kIG9mIG5hdGlvbmFsIGRlcHJlc3Npb24sIGEgdGltZSB3e1smKiZdfWhlbiB0aGUgcG9saXRpY2FsIA0KZW5lbWllcyBvZiBFbmdsYW5kIHdlcmUgaGVyIHJlbGlnaW91cyBhbGxpZXMuIEJ1dCBpbiANCnR7WyYqJl19aGUgZGF5cyBvZiBFbGl6YWJldGggdGhlIG5hdGlvbiBoYWQgc3BydW5nIHVwIHRvIGEgY29uLSANCnNjaW91c25lc3Mgb2YgbmV3IHtbJiomXX1zdHJlbmd0aCBhbmQgdml0YWxpdHksIGFuZCBpdHMgcG9saXRpY2FsIA0KYW5kIHJlbGlnaW91cyBhbnRhZ29uaXN0cywgU3BhaW4ge1smKiZdfWFuZCB0aGUgUGFwYWN5LCB3ZXJlIA0KaWRlbnRpY2FsLiBGYWVyeSBMYW5kIHdpdGggU3BlbnNlciBpcyBpbmRlZWQgbm8gZHJlYW17WyYqJl19LSANCndvcmxkIDsgaXQgbGllcyBpbiBubyBkaXN0YW50IGxhdGl0dWRlLiBIaXMgZXBpYyBhYm91bmRzIA0Kd2l0aCBjb250ZW1wb3tbJiomXX1yYXJ5IHBvbGl0aWNhbCBhbmQgcmVsaWdpb3VzIGZlZWxpbmcuIFRoZSANCmNvbWJhdCB3aXRoIE9yZ29nbGlvLCB0aGUgc3RyaXBwe1smKiZdfWluZyBvZiBEdWVzc2EsIHRoZSANCmRlYXRoIG9mIEtpcmtyYXBpbmUsIGNvdWxkIGhhdmUgYmVlbiB3cml0dGVuIG9ubHkgYnkgDQp7WyYqJl19YW4gRW5nbGlzaG1hbiBhbmQgYSBQcm90ZXN0YW50IHBvc3Nlc3NlZCkgYnkgbm8gaGFsZi0gDQoNClNoYWtzcGVyZSBhbmQgdGhlIHtbJiomXX1FbGl6YWJldGhhbiBBZ2UuIDEgNSANCg0KaGVhcnRlZCBoYXRyZWQgdG93YXJkcyBTcGFpbiBhbmQgdGhlIFBhcGFsIHBvd2VyLiANe1smKiZdfQpTcGVuc2VyXCdzIHZpZXdzIG9uIElyaXNoIHBvbGl0aWNzLCB3aGljaCBpbnRlcmVzdGVkIGhpbSANCnNvIG5lYXJseSwgYXJlIHRve1smKiZdfSBiZSBkaXNjb3ZlcmVkIGluIHRoZSBcJ14gTGVnZW5kIG9mIEFydGhlLSANCmdhbGwgXCIgd2l0aCBoYXJkbHkgbGVzcyBjbGVhcm5lc3tbJiomXX1zIHRoYW4gaW4gaGlzIHByb3NlIGRpYWxvZ3VlIA0KdXBvbiB0aGUgXCIgUHJlc2VudCBTdGF0ZSBvZiBJcmVsYW5kLlwiIA0KDQpGdXJ7WyYqJl19dGhlciwgaW4gaGlzIG1hdGVyaWFsIGxpZmUsIFNwZW5zZXIgYXBwZWFycyB0byBoYXZlIA0KaGFkIGEgc3VmZmljaWVudCBob2xkIHtbJiomXX11cG9uIHBvc2l0aXZlIGZhY3QuIER1cmluZyB0aGUgDQpzYW1lIHllYXIgaW4gd2hpY2gsIGZvciB0aGUgc2Vjb25kIHRpbWUsIGhle1smKiZdfSBiZWNhbWUgYSANCmxvdmVyIOKAlCB0aGUgeWVhciBkdXJpbmcgd2hpY2ggaGUgd29vZWQgaGlzIEVsaXphYmV0aCwgYW5kICwgDQp7WyYqJl19cmVjb3JkZWQgaGlzIGRlc3BhaXJzIGFuZCByYXB0dXJlcyBpbiB0aGUgSXRhbGlhbiBsb3ZlLSANCnBoaWxvc29waHkgb2YgdGhlIHtbJiomXX1BbW9yZXR0aSDigJQgdGhlIHBpcGluZyBhbmQgcGFzdG9yYWwgDQpDb2xpbiBDbG91dCBleGhpYml0ZWQgc3VpdCBmb3IgdGhyZWUge1smKiZdfXBsb3VnaGxhbmRzLCBwYXJjZWxzIFwnIA0Kb2YgU2hhbmJhbGx5bW9yZSwgYW5kIHdhcyBhbGxlZ2VkIHRvIGhhdmUgXCIgY29udmVydHtbJiomXX1lZCANCmEgZ3JlYXQgZGVhbCBvZiBjb3JuIFwiIGVsc2V3aGVyZSBcIiB0byBoaXMgcHJvcGVyIHVzZS5cIiANCk5laXRoZXIgbG92ZSBue1smKiZdfW9yIHBvZXRyeSBtYWRlIGhpbSBpbnNlbnNpYmxlIHRvIHRoZSBzdWItIA0Kc3RhbnRpYWwgdGhvdWdoIG1pbm9yIGZhY3Qgb2YgcGx7WyYqJl19b3VnaGxhbmRzIG9mIFNoYW5iYWxseS0gDQptb3JlLiBXaXRoIG1lYXN1cmVsZXNzIGRvbWluaW9uIGluIEZhZXJ5IExhbmQsIGhlIHtbJiomXX0NCnlldCBkaWQgbm90IGRpc2RhaW4gYSBzbGljZSBvZiB0aGUgZm9yZmVpdGVkIGVzdGF0ZSBvZiB0aGUgDQpFYXJsIG9mIERlc21ve1smKiZdfW5kLiBTb21lIHBvd2VyZnVsIGhvc3RpbGl0eSBoaW5kZXJlZCBoaXMgDQpjb3VydCAtIHByZWZlcm1lbnQgOyBhbmQgdGhlIGdyaWV7WyYqJl19dmFuY2UgZmluZHMgYSBwbGFjZSBpbiANClNwZW5zZXJcJ3MgdmVyc2UuIEhpcyBvd24gbWF0ZXJpYWwgbGlmZSBoZSBlbmRlYXZvcmV7WyYqJl19ZCwgDQpub3QgYWx0b2dldGhlciBzdWNjZXNzZnVsbHksIHRvIHJlbmRlciBzb2xpZCBhbmQgcHJvc3Blci0gDQpvdXMuIFRoZSBpbntbJiomXX10ZW50aW9uIG9mIGhpcyBncmVhdCBwb2V0aWNhbCBhY2hpZXZlbWVudCBpcyANCm9uZSB3aGljaCwgd2hpbGUgaW4gYSBoaWdoIHNle1smKiZdfW5zZSByZWxpZ2lvdXMsIGlzIGF0IHRoZSBzYW1lIA0KdGltZSBlbWluZW50bHkgcG9zaXRpdmUuIEEgY29tcGxldGUgZGV2ZWxvcG17WyYqJl19ZW50IG9mbCANCm5vYmxlIGh1bWFuIGNoYXJhY3RlciBmb3IgYWN0aXZlIHVzZXMsIG5vdCBhIGNsb2lzdGVyZWQgXFwgDQp2aXJ0dWV7WyYqJl19LCBpcyB0aGF0IHdoaWNoIFNwZW5zZXIgbG9va2VkIHVwb24gYXMgbW9zdCBuZWVkZWQgDQpmb3IgR29kIGFuZCBtYW4uIFN1Y2ggYXtbJiomXX0gZGVzaWduIGlzIGluIGhhcm1vbnkgd2l0aCB0aGUgDQpzcGlyaXQgb2YgRW5nbGFuZCBpbiB0aGUgZGF5cyBvZiBFbGl6YWJldGgue1smKiZdfSBUbyBiZSBncmVhdCANCmFuZCB0byBkbyBncmVhdCB0aGluZ3Mgc2VlbWVkIGJldHRlciB0aGFuIHRvIGVudGVyIHRoZSANCkNlbGV7WyYqJl19c3RpYWwgQ2l0eSBhbmQgZm9yZ2V0IHRoZSBDaXR5IG9mIERlc3RydWN0aW9uIDsgYmV0LSANCnRlciB0aGFuIHRvIHJlY2VpdmUgaXtbJiomXX1uIGVjc3Rhc3kgdGhlIHZpc2lvbiBvZiBhIGRpdmluZSBteXMtIA0KdGVyeSwgb3IgdG8gYmUgZmVkIHdpdGggbWlyYWN1bG91cyBme1smKiZdfW9vZC4gSW4gU3BlbnNlciANCnRoZXNlIGV0aGljcyBvZiB0aGUgRWxpemFiZXRoYW4gYWdlIGFycml2ZWQgYXQgYSBzZWxmLWNvblwne1smKiZdfSANCkJjaW91cyBleGlzdGVuY2UuIA0KDQpcXCANCg0KMSA2IFNoYWtzcGVyZeKAlEhpcyBNaW5kIGFpaWQgQXJ0IA0KDQpMZXQgdXMse1smKiZdfSByZW1haW5pbmcgYXQgdGhlIHNhbWUgcG9pbnQgb2YgdmlldywgZ2xhbmNlIA0Kbm93IGF0IEJhY29uIGFuZCB0aGUgc2NpZW50aWZ7WyYqJl19aWMgbW92ZW1lbnQuIEJhY29uIGFuZCANClNoYWtzcGVyZSBzdGFuZCBmYXIgYXBhcnQuIEluIG1vcmFsIGNoYXJhY3RlciBhbmQgaXtbJiomXX1uIA0KZ2lmdHMgb2YgaW50ZWxsZWN0IGFuZCBzb3VsIHdlIHNob3VsZCBmaW5kIGxpdHRsZSByZXNlbS0gDQpibGFuY2UgYmV0d2Vle1smKiZdfW4gdGhlbS4gV2hpbGUgQmFjb25cJ3Mgc2Vuc2Ugb2YgdGhlIHByZXMtIA0KZW5jZSBvZiBwaHlzaWNhbCBsYXcgaW4gdGhlIHVuaXZle1smKiZdfXJzZSB3YXMgZm9yIGhpcyB0aW1lIGV4LSANCnRyYW9yZGluYXJpbHkgZGV2ZWxvcGVkLCBoZSBzZWVtcyBwcmFjdGljYWxseSB0byB7WyYqJl19aGF2ZSBhY3QtIA0KZWQgdXBvbiB0aGUgdGhlb3J5IHRoYXQgdGhlIG1vcmFsIGxhd3Mgb2kgdGhlIHdvcmxkIGFyZSANCm5vdCBpbntbJiomXX1leG9yYWJsZSwgYnV0IHJhdGhlciBieSB0YWN0aWNzIGFuZCBkZXh0ZXJpdHkgbWF5IA0KYmUgY2xldmVybHkgZXZhZGVkLiBUaGVpe1smKiZdfXIgc3VwcmVtYWN5IHdhcyBhY2tub3dsZWRnZWQgDQpieSBTaGFrc3BlcmUgaW4gdGhlIG1pbnV0ZXN0IGFzIHdlbGwgYXMgaW4gdGh7WyYqJl19ZSBncmVhdGVzdCANCmNvbmNlcm5zIG9mIGh1bWFuIGxpZmUuIEJhY29uXCdzIHN1cGVyYiBpbnRlbGxlY3Qgd2FzIA0KbmVpdGhlciB7WyYqJl19ZGlzdHVyYmVkIG5vciBpbXBlbGxlZCBieSB0aGUgcHJvbXB0aW5ncyBvZiBoaXMgDQpoZWFydC4gT2YgcGVyZmVjdCBmcmllbmRzaHtbJiomXX1pcCBvciBvZiBwZXJmZWN0IGxvdmUgaGUgbWF5LCANCndpdGhvdXQgcmVsdWN0YW5jZSwgYmUgcHJvbm91bmNlZCBpbmNhcGFibGUue1smKiZdfSBTaGFrc3BlcmUgDQp5aWVsZGVkIGhpcyB3aG9sZSBiZWluZyB0byBib3VuZGxlc3MgYW5kIG1lYXN1cmVsZXNzIA0KZGV2b3Rpb257WyYqJl19LiBCYWNvblwncyBldGhpY2FsIHdyaXRpbmdzIHNwYXJrbGUgd2l0aCBhIGZyb3N0eSANCmJyaWxsaWFuY2Ugb2YgZmFuY3ksIHBsYXl7WyYqJl19aW5nIG92ZXIgdGhlIHdvcmxkbHkgbWF4aW1zIA0Kd2hpY2ggY29uc3RpdHV0ZWQgaGlzIHdpc2RvbSBmb3IgdGhlIGNvbmR1Y3Qgb3tbJiomXX1mIGxpZmUuIA0KDQpJIFNoYWtzcGVyZSByZWFjaGVzIHRvIHRoZSB1bHRpbWF0ZSB0cnV0aHMgb2YgaHVtYW4gbGlmZSANCmFuZCBje1smKiZdfWhhcmFjdGVyIHRocm91Z2ggYSBzdXByZW1lIGFuZCBpbmRpdmlzaWJsZSBlbmVyZ3kgDQoNClwnIG9mIGxvdmUsIGltYWdpbmF0aW9ue1smKiZdfSwgYW5kIHRob3VnaHQuIFlldCBCYWNvbiBhbmQgU2hhay0gDQpzcGVyZSBiZWxvbmdlZCB0byBvbmUgZ3JlYXQgbW92ZW1lbnQgb2Z7WyYqJl19IGh1bWFuaXR5LiANClRoZSB3aG9sZSBlbmRlYXZvciBvZiBCYWNvbiBpbiBzY2llbmNlIGlzIHRvIGF0dGFpbiB0aGUgDQpmYWN0LHtbJiomXX0gYW5kIHRvIGFzY2VuZCBmcm9tIHBhcnRpY3VsYXIgZmFjdHMgdG8gZ2VuZXJhbC4gSGUgDQp0dXJuZWQgYXdheSB3aXRoIHV0dGVye1smKiZdfSBkaXNzYXRpc2ZhY3Rpb24gZnJvbSB0aGUgc3BlY3VsYXQtIA0KaW5nIGluIHZhY3VvIG9mIHRoZSBNaWRkbGUgQWdlcy4gSGlzIGl7WyYqJl19bnRlbGxlY3QgZGVtYW5kLSANCmVkIHBvc2l0aXZlIGtub3dsZWRnZSA7IGhlIGNvdWxkIG5vdCBmZWVkIHVwb24gdGhlIHdpbmQuIHtbJiomXX0NCkZyb20gdGhlIHRyYWRpdGlvbiBvZiBwaGlsb3NvcGh5IGFuZCBmcm9tIGF1dGhvcml0eSBoZSANCnJldmVydGVkIHRvIG5hdHVye1smKiZdfWUuIEJldHdlZW4gZmFpdGggYW5kIHJlYXNvbiBCYWNvbiBzZXQgDQphIGdyZWF0IGFuZCBpbXBhc3NhYmxlIGd1bGYuIFRoZW9sb2d7WyYqJl19eSBpcyBzb21ldGhpbmcgdG9vIA0KaGlnaCBmb3IgaHVtYW4gaW50ZWxsZWN0IHRvIGRpc2N1c3MuIEJhY29uIGlzIHByb2ZvdW5kbHtbJiomXX15IA0KZGVmZXJlbnRpYWwgdG8gdGhlb2xvZ3ksIGJlY2F1c2UsIGFzIG9uZSBjYW5ub3QgaGVscCBzdXMtIA0KcGVjdGluZywgaGUge1smKiZdfXdhcyBwcm9mb3VuZGx5IGluZGlmZmVyZW50IGFib3V0IGl0LiBUaGUgDQpzY2hvb2xtZW4gZm9yIHRoZSBzZXJ2aWNlIG9mIGZhaXR7WyYqJl19aCBoYWQgc3VtaTlYKW5lZCBodW1hbiANCg0KU2hha3NwZTdcJ2UgYW5kIHRoZSBFbGl6YWJldGhhbiBBZ2UuIDEgNyANCg0KcmVhc297WyYqJl19biB0byB0aGVpciBhaWQsIGFuZCBSZWFzb24sIHRoZSBhbGx5LCBoYWQgaW4gdGltZSANCnByb3ZlZCBhIGRhbmdlcm91cyBhbnRhZ3tbJiomXX1vbmlzdC4gQmFjb24sIGluIHRoZSBpbnRlcmVzdCBvZiANCnNjaWVuY2UsIGRpc21pc3NlZCBmYWl0aCB0byB0aGUgdW5leGNlcHRpe1smKiZdfW9uYWJsZSBwcm92aW5jZSANCm9mIHN1cGVybmF0dXJhbCB0cnV0aHMuIFRvIGhpbSBhIGRvZ21hIG9mIHRoZW9sb2d5IHdhcyANCmV7WyYqJl19cXVhbGx5IGNyZWRpYmxlIHZeaGV0aGVyIGl0IHBvc3Nlc3NlZCBhbiBhcHBlYXJhbmNlIG9mIA0KcmVhc29uYWJsZW5lc3Mgb3IgYXtbJiomXX1wcGVhcmVkIGFic3VyZC4gVGhlIHRvdGFsIGZvcmNlIG9mIA0KaW50ZWxsZWN0IGhlIHJlc2VydmVkIGZvciBzdWJqdWdhdGluZyB0e1smKiZdfW8gdGhlIHVuZGVyc3RhbmQtIA0KaW5nIHRoZSB3b3JsZCBvZiBwb3NpdGl2ZSBmYWN0LiANCg0KQXMgdGhlIG1hdHRlciB3aXRoIHd7WyYqJl19aGljaCBCYWNvblwncyBwaGlsb3NvcGh5IGNvbmNlcm5zIA0KaXRzZWxmIGlzIHBvc2l0aXZlLCBzbyBpdHMgZW5kIGlzIHByZS1lbWl7WyYqJl19bmVudGx5IHByYWN0aWNhbC4gDQpUaGUga25vd2xlZGdlIGhlIGNoaWVmbHkgdmFsdWVkIHdhcyB0aGF0IHdoaWNoIHByb20tIA0KaXtbJiomXX1zZWQgdG8gZXh0ZW5kIHRoZSBkb21pbmlvbiBvZiBtYW4gb3ZlciBuYXR1cmUsIGFuZCB0aHVzIA0KdG8gZW5yaWNoIG1hblwncyBsaXtbJiomXX1mZS4gSGlzIGNvbmNlcHRpb24gb2YgaHVtYW4gd2VsZmFyZSANCndhcyBsYXJnZSBhbmQgbWFnbmlmaWNlbnQgOyB5ZXQgaXQgd2Fze1smKiZdfSB3YW50aW5nIGluIHNvbWUgDQpzcGlyaXR1YWwgZWxlbWVudHMgd2hpY2ggaGFkIG5vdCBiZWVuIGxvc3Qgc2lnaHQgb2YgaW4gDQp7WyYqJl19ZWFybGllciBhbmQgZGFya2VyIHRpbWVzLiBUbyBodW1hbiB3ZWxmYXJlLCB0aHVzIGNvbi0gDQpjZWl2ZWQgaW4gYSB3YXkgc29tZXtbJiomXX13aGF0IG1hdGVyaWFsaXN0aWMsIHNjaWVuY2UgaXMgdG8gbWluLSANCmlzdGVyLiBBbmQgdGhlIGluc3RydW1lbnRzIG9mIHNjaWVue1smKiZdfWNlIGJ5IHdoaWNoIGl0IGF0dGFpbnMgDQp0aGlzIGVuZCBhcmUgdGhlIHB1cmVseSBuYXR1cmFsIGluc3RydW1lbnRzIG9mIG9ic2V7WyYqJl19cnZhLSANCnRpb24sIGV4cGVyaW1lbnQsIGFuZCBpbmZlcmVuY2UuIERldm90aW9uIHRvIHRoZSBmYWN0LCBhIA0KcmV0dXJuIGZyb3tbJiomXX1tIHRoZSBzdXBlcm5hdHVyYWwgdG8gdGhlIHN0cmljdGx5IG5hdHVyYWwgYW5kIA0KaHVtYW4sIHdpdGggYSBwcmFjdGljYWwsIG11e1smKiZdfW5kYW5lIG9iamVjdCDigJQgdGhlc2UgYXJlIHRoZSANCmNoYXJhY3RlcmlzdGljcyBvZiB0aGUgRWxpemFiZXRoYW4gbW92ZW1lbnR7WyYqJl19IGluIHNjaWVuY2UuKiANCg0KTGV0IHVzIG5vdyB0dXJuIHRvIHRoZSByZWxpZ2lvdXMgbW92ZW1lbnQgaW4gRW5nLSANCmxhbmQuIHtbJiomXX1UaGF0IG1vdmVtZW50IGNhbm5vdCBiZSBzYWlkIHRvIGhhdmUgaGFkLCBsaWtlIA0KdGhlIFJlZm9ybWF0aW9uIG1vdmVtZW50IGlue1smKiZdfSBHZXJtYW55LCBhIGNlbnRyYWwgcG9pbnQgDQpvZiB2aXRhbGl0eSBhbmQgc3VzdGVuYW5jZSBpbiB0aGUgYWdvbnkgb2YgYW4gaW57WyYqJl19ZGl2aWR1YWwgDQpjb25zY2llbmNlLiBOb3Igd2FzIGl0IGd1aWRlZCwgbGlrZSB0aGUgbW92ZW1lbnQgaW4gDQpGcmFuY2UsIGJ5IHtbJiomXX1hIHN1cHJlbWUgb3JnYW5pemluZyBwb3dlciDigJQgdGhlb2xvZ2ljYWwgYW5kIA0KcG9saXRpY2FsIOKAlCBjYXBhYmxlIG9mIGxhe1smKiZdfXJnZSwgaWYgc29tZXdoYXQgdG9vIGxvZ2ljYWxseSByaWdpZCwgDQoNCiogTXIuIFNwZWRkaW5nXCdzIGVzdGltYXRlIG9mIEJhY29ue1smKiZdfSBkaWZmZXJzIG11Y2ggZnJvbSB0aGF0IGdpdmVuIGFib3ZlLCANCmFuZCBNci4gU3BlZGRpbmcgaGFzIHRoZSBiZXN0IHJpZ2h0IG97WyYqJl19ZiBhbnkgbGl2aW5nIHBlcnNvbiB0byBzcGVhayBvZiBCYWNvbi4gDQpPbmUgbXVzdCwgaG93ZXZlciwgcmVtYWluIGZhaXRoZnVsIHtbJiomXX10byBvbmVcJ3Mgb3duIGltcHJlc3Npb24gb2YgZmFjdHMsIGV2ZW4gDQp3aGVuIHRoYXQgaW1wcmVzc2lvbiBpcyBmb3VuZGVkIG9uIHtbJiomXX1wYXJ0aWFsICh5ZXQgbm90IHdob2xseSBpbnN1ZmZpY2llbnQpIA0Ka25vd2xlZGdlLiANCjIgDQoNCjEgOCBTaGFrc3BlcmUg4oCUe1smKiZdfSBIaXMgTWluZCBhbmQgQXJ0LiANCg0KaWRlYWwgY29uY2VwdGlvbnMuIFRoZSBkb2dtYSBvZiBBbmdsaWNhbmlzbSBpcyBub3QsIGx7WyYqJl19aWtlIA0KQ2FsdmluaXN0aWMgZG9nbWEsIHRoZSBleHByZXNzaW9uIGFuZCBkZXZlbG9wbWVudCBvZiBhbiANCmlkZWEgOyBpdCBiZXtbJiomXX1jb21lcyBpbnRlbGxpZ2libGUgb25sfV4gdGhyb3VnaCByZWNvbGxlY3Rpb24gb2YgDQphIHNlcmllcyBvZiBoaXN0b3JpY2FsIGV2e1smKiZdfWVudHMg4oCUIHRoZSBiYWxhbmNlIG9mIHBhcnRpZXMsIGNvbS0gDQpwcm9taXNlcyB3aXRoIHRoaXMgc2lkZSBhbmQgd2l0aCB0aGF7WyYqJl19dCwgdGhlIGV4aWdlbmNpZXMgb2YgDQp0aW1lcyBhbmQgc2Vhc29ucy4gQnV0IGlmIEVuZ2xhbmQgaGFkIG5laXRoZXIgYSBMdXRoZXtbJiomXX1yIA0Kbm9yIGEgQ2FsdmluLCBzaGUgaGFkIENyYW5tZXIgYW5kIEhvb2tlci4gVGhlIHJlbGlnLSANCmlvdXMgcmV2b2x1dGlvbiBve1smKiZdfWYgRnJhbmNlIGluIHRoZSBzaXh0ZWVudGggY2VudHVyeSwgbGlrZSANCnRoZSBwb2xpdGljYWwgcmV2b2x1dGlvbiBvZiAxNzg5LCB7WyYqJl19dGhvdWdoIGl0IHNlbnQgYSBzdHJvbmcgDQp3YXZlIG9mIG1vcmFsIGZlZWxpbmcgdGhyb3VnaCBFdXJvcGUsIGZhaWxlZCB0byBzdXtbJiomXX1zdGFpbiANCml0c2VsZi4gSXRzIHVuY29tcHJvbWlzaW5nIGlkZWFsaXR5IGtlcHQgaXQgdG9vIG11Y2ggb3V0IA0Kb2YgcmVsYXRpe1smKiZdfW9uIHdpdGggdGhlIHZpdGFsLCBjb25jcmV0ZSwgYW5kIGV2ZXItYWx0ZXJpbmcgZmFjdHMgDQpvZiBodW1hbiBzb2NpZXR5LiBUaGV7WyYqJl19IEVuZ2xpc2ggUmVmb3JtYXRpb24sIG9uIHRoZSBvdGgtIA0KZXIgaGFuZCwgaWYgbGVzcyBwcmVzZW50YWJsZSBpbiBsb2dpY2FsIHtbJiomXX1mb3JtdWxhZSB0byB0aGUgaW4tIA0KdGVsbGVjdCwgd2FzLCBsaWtlIEVuZ2xpc2ggcG9saXRpY2FsIGZyZWVkb20gYXMgY29tcGFye1smKiZdfWVkIA0Kd2l0aCBGcmVuY2ggbGliZXJ0eSwgZXF1YWxpdHksIGFuZCBmcmF0ZXJuaXR5LCBtdWNoIG1vcmUgDQpvZiBhIHByYWN0aWN7WyYqJl19YWwgc3VjY2Vzcy4gDQoNCkNvc21vcG9saXRhbiB0aGUgRW5nbGlzaCBSZWZvcm1hdGlvbiB3YXMgbm90IDsgaXQgd2FzIA0KYSBncntbJiomXX1vd3RoIG9mIHRoZSBzb2lsLCBhbmQgY2Fubm90IGJlIHRyYW5zcGxhbnRlZCA6IHRoaXMgaXMgDQppdHMgbm90ZSBvZiBpbmZlcmlve1smKiZdfXJpdHksIGFuZCBlcXVhbGx5IGl0cyBjaGFyYWN0ZXJpc3RpYyBleGNlbC0gDQpsZW5jZS4gQnkgY29tYmluZWQgZmlybW5lc3MgYW57WyYqJl19ZCBlYXNpbmVzcyBvZiB0ZW1wZXIsIGJ5IA0KY29uY2Vzc2lvbnMgYW5kIGNvbXByb21pc2VzLCBieSB1bndlYXJpYWJsZSBnb29kIHtbJiomXX1zZW5zZSwgDQphIFJlZm9ybWVkIENodXJjaCB3YXMgYnJvdWdodCBpbnRvIGV4aXN0ZW5jZSDigJQgYSBtYW51LSANCmZhY3R1cmUge1smKiZdfXJhdGhlciB0aGFuIGEgY3JlYXRpb24g4oCUIGluIHdoaWNoIHRoZSBhdmVyYWdlIG1hbiANCm1pZ2h0IGZpbmQgYXZlcmFnZSBwaWV7WyYqJl19dHksIGF2ZXJhZ2UgcmF0aW9uYWxpdHksIGFuZCBhbiBhdmVyLSANCmFnZSBhbW91bnQgb2Ygc29vdGhpbmcgYXBwZWFsIHRvIHRoZXtbJiomXX0gc2Vuc2VzIDsgd2hpbGUgcmFyZXIgDQpzcGlyaXRzIGNvdWxkIGZyYW1lIG91dCBvZiB0aGUgbW9kZXJhdGlvbiBvZiB0aGUgQW5ne1smKiZdfWxpLSANCmNhbiByaXR1YWwgYW5kIEFuZ2xpY2FuIGRldm90aW9uYWwgdGVtcGVyIGEgcmVmaW5lZCB0eXBlIA0Kb2YgcGlldHksIGZ7WyYqJl19cmVlIGZyb20gZXh0cmF2YWdhbmNlLCBkZWxpY2F0ZSBhbmQgcHVyZSDigJQgb2YtIA0KZmVuZGluZywgbGlrZSB0aGUgY2F0aGVkcntbJiomXX1hbHMgb2YgRW5nbGFuZCwgbmVpdGhlciBieSByaWdpZC0gDQppdHksIG9uIHRoZSBvbmUgaGFuZCwgbm9yIGJ5IGZsYW1ib3lhbnQge1smKiZdfWZlcnZvcnMsIG9uIHRoZSANCm90aGVyLCB0aGUgdHlwZSBvZiBwaWV0eSByZWFsaXplZCBpbiBhIGRpc3Rpbmd1aXNoZWQgZGVncmV7WyYqJl19ZSANCmJ5IEdlb3JnZSBIZXJiZXJ0LCBieSBLZW4sIGJ5IEtlYmxlLiBJbiBoaXMgXCIgRWNjbGVzaWFzLSANCnRpY2FsIFNvbm5ldHN7WyYqJl19LFwiIFdvcmRzd29ydGggc3BlYWtzIG9mIHRoZSByaXR1YWwgYW5kIGxpdHVyLSANCmd5IG9mIHRoZSBDaHVyY2ggb2YgRW5nbGFuZCB7WyYqJl19YXMgYWZmb3JkaW5nIG1hdGVyaWFsIGFuZCANCg0KU2hha3NwZXJlIGFuZCB0aGUgRWxpemFiZXRoYW4gQWdlLiAxIDkgDQoNCnNjb3tbJiomXX1wZSBmb3IgXCJ0aGUgaW50ZW5zaXRpZXMgb2YgaG9wZSBhbmQgZmVhclwiIGFuZCBmb3IgDQpcIiBwYXNzaW9uYXRlIGV4ZXJjaXNlIG9me1smKiZdfSBsb2Z0eSB0aG91Z2h0cy5cIiBJbiB0aGUgcHJlZmFjZSANCnRvIFwiIFRoZSBDaHJpc3RpYW4gWWVhcixcIiB0aGUgbW9kZXJhdGlvbix7WyYqJl19IHRoZSBzb290aGluZyANCmluZmx1ZW5jZSwgb2YgdGhlIGRldm90aW9uYWwgc2VydmljZXMgb2YgdGhlIENodXJjaCBhcmUgbm8tIHtbJiomXX0NCnRpY2VkLiBXb3Jkc3dvcnRoLCBldmVuIHdoZW4gdGhlIGZsb29kIG9mIHNwaXJpdHVhbCBsaWdodCANCmFuZCBzdHJlbmd0aCB3e1smKiZdfWhpY2ggZW5jb21wYXNzZWQgaGlzIHlvdXRoIGFuZCBlYXJseSANCm1hbmhvb2QgaGFkIGViYmVkLCByZW1haW5lZCBXb3Jkc3dvcnR7WyYqJl19aCBzdGlsbCA7IGFuZCANCmZyb20gYmV5b25kIHRoZSBsaXR0bGUgbmVhdGx5IG9yZGVyZWQgZW5jbG9zdXJlIG9mIEFuZ2xpLSANCntbJiomXX1jYW5pc20gdm9pY2VzIHN0aWxsIGNhbWUgdG8gaGltIG9mIG1vdW50YWluIHdpbmRzIGFuZCANCm9mIFwibWlnaHR5IHdhdGVycyByb3tbJiomXX1sbGluZyBldmVybW9yZS5cIiBLZWJsZSwgd2hvIHdhcyANCmJvcm4gYW5kIGJyZWQgaW4gdGhlIEFuZ2xpY2FuIHBhZGRvY2ssIHVuZHtbJiomXX1lcnN0b29kIGl0cyANCmxpbWl0YXRpb25zIGJldHRlciwgYW5kIHdyb3RlIHRoZSB0cnVlIHBvZXRyeSBvZiBoaXMgY29tLSANCm11e1smKiZdfW5pb24g4oCUIGEgcG9ldHJ5IGZyZWUgZnJvbSBhbGwgcmlzayBvZiBiZWluZyBvdmVyLXBvZXRpLSANCmNhbC4gRGFudGUgaXMgdGh7WyYqJl19ZSBwb2V0IG9mIENhdGhvbGljaXNtIDsgTWlsdG9uIGlzIHRoZSANCnBvZXQgb2YgUHVyaXRhbmlzbSA7IHRoZSBwb2V0IG9mIEFuZ3tbJiomXX1saWNhbmlzbSBpcyBLZWJsZS4gDQoNCk11Y2ggaW4gdGhlIGVjY2xlc2lhc3RpY2FsIGhpc3Rvcnkgb2Ygb3VyIGNvdW50cnkgd2Fze1smKiZdfSANCmR1ZSB0byBDcmFubWVyLiBIYWQgdGhhdCB1bndvcnRoeSByaWdodCBoYW5kIG9mIGhpcyANCmJlZW4gbGVzcyBzZW5zaXRpdmV7WyYqJl19IG9yIGxlc3MgcGxpYWJsZSwgdGhlIENodXJjaCBvZiBFbmdsYW5kIA0KbWlnaHQgaGF2ZSBiZWVuIGEgbW9yZSBoZXJvaWMgd2l0bntbJiomXX1lc3MgZm9yIHRydXRoIChzb21lLSANCnRpbWVzIGEgbm9ibGUgZmFpbHVyZSBzZXJ2ZXMgdGhlIHdvcmxkIGFzIGZhaXRoZnVsbHkge1smKiZdfWFzIGRvZXMgDQphIGRpc3Rpbmd1aXNoZWQgc3VjY2VzcyksIGJ1dCBpdCBjb3VsZCBoYXJkbHkgaGF2ZSBiZWNvbWUgDQphIG5hdGl7WyYqJl19b25hbCBpbnN0aXR1dGlvbiB3aXRoIHJvb3RzIHdoaWNoIHJhbWlmeSB0aHJvdWdoIA0KZXZlcnkgbGF5ZXIgb2Ygc29jaWV0eS4gQXtbJiomXX1uZCBIb29rZXIg4oCUIGluIHdoYXQgbGllcyB0aGUgDQpzcGVjaWFsIGdyZWF0bmVzcyBvZiBIb29rZXIgPyBJcyBub3QgaGlzIHNwe1smKiZdfWVjaWFsIHF1YWxpdHkgYSANCm1hamVzdGljIGNvbW1vbi1zZW5zZSA/IF4gXCJJZiB3ZSBhcmUgdG8gZml4IG9uIGFueSBmdW4tIA0Ke1smKiZdfWRhbWVudGFsIHBvc2l0aW9uLFwiIHdyaXRlcyB0aGUgRGVhbiBvZiBTdC4gUGF1bFwncywgXCIgYXMgdGhlIA0Ka2V5IG9mIEhvb2tlclwne1smKiZdfXMgbWV0aG9kIG9mIGFyZ3VpbmcsIEkgc2hvdWxkIGxvb2sgZm9yIGl0IA0KaW4gaGlzIGRvY3RyaW5lLCBzbyBwZXJ0aW5hY2lvdXN7WyYqJl19bHkgdXJnZWQgYW5kIGFsd2F5cyBpbS0gDQpwbGllZCwgb2YgdGhlIGNvbmN1cnJlbmNlIGFuZCBjby1vcGVyYXRpb24sIGVhY2ggaXtbJiomXX1uIGl0cyANCmR1ZSBwbGFjZSwgb2YgYWxsIHBvc3NpYmxlIG1lYW5zIG9mIGtub3dsZWRnZSBmb3IgbWFuXCdzIA0KZGlyZWN0aW9uLntbJiomXX1cIiBQdXJpdGFuaXNtIGFwcGVhbGVkIGFnYWluc3QgcmVhc29uIHRvIHRoZSANCmxldHRlciBvZiBTY3JpcHR1cmUsIGFuZCBzYWNyaXtbJiomXX1maWNlZCBmYWN0IHRvIHRoZW9yeS4gVGhlIA0KUmVuYXNjZW5jZSBwaGlsb3NvcGhlcnMgYXBwZWFsZWQgZnJvbSBhdXRob3JpdHkge1smKiZdfXRvIGh1LSANCg0KKiBJIGFtIG5vdCBzdXJlIHdoZXRoZXIgTXIuIE1hdHRoZXcgQXJub2xkIGhhcyBub3QgYXBwbGllZCB0aGlzIGV7WyYqJl19eHByZWEqIA0Kc2lvbiBcJyogbWFqZXN0aWMgY29tbW9uLXNlbnNlIFwiIHRvIEhvb2tlci4gDQoNCnJcJyANCg0KMjAgU2hha3NwZXJlIHtbJiomXX3igJQgSGlzIE1pbmQgYW5kIEFydCANCg0KbWFuIHJlYXNvbiBhbG9uZS4gSG9va2VyLCB3aGlsZSBhc3NpZ25pbmcgdGhlIHVsdGlte1smKiZdfWF0ZSwgDQpqdWRpY2lhbCBwb3NpdGlvbiB0byByZWFzb24sIHdpbGwgbm90IGRlbnkgaXRzIHBsYWNlIHRvIGVpdGhlciANClNjcml7WyYqJl19cHR1cmUsIG9yIHRvIHRoZSBDaHVyY2gsIG9yIHRvIHRyYWRpdGlvbi4gSGUgaXMgYW4gZW0tIA0KYm9kaW1lbnQgb2YgdGhlIGVjY3tbJiomXX1sZXNpYXN0aWNhbCB3aXNkb20gb2YgRW5nbGFuZC4gV2hpbGUgDQpwcm92aWRpbmcgdGhlIENodXJjaCwgYXMgdGhlIERlYW4gb2Yge1smKiZdfVN0LiBQYXVsXCdzIGhhcyBzYWlkLCANCndpdGggYSBicm9hZCwgaW50ZWxsaWdpYmxlIHRoZW9yeS4gSG9va2VyIHNhdmVzIHRoaXMge1smKiZdfXRoZW9yeSANCmZyb20gcmlnaWRpdHkgYW5kIG1lcmVseSBpZGVhbCBjb25zdHJ1Y3RpdmVuZXNzIGJ5IHJvb3QtIA0KaW5nIGl0IGl7WyYqJl19biBoaXMgcmljaCBmZWVsaW5nIGZvciB0aGUgY29uY3JldGUgZmFjdC4gQ2hhcmFjLSANCnRlcmlzdGljYWxseSBFbmdsaXNoIHRoZXtbJiomXX0gd29yayBvZiBIb29rZXIgd2lsbCBhbHdheXMgcmUtIA0KbWFpbiBieSBpdHMgbHlpbmcgY2xvc2UgdG8gcmVhbGl0eSwgYnkgaXRze1smKiZdfSBwcmFjdGljYWwgdGVuZGVuLSANCmN5LCBieSBpdHMgbW9kZXJhdGlvbiwgYnkgaXRzIGxhcmdlIGdvb2Qtc2Vuc2UuIE1vcmUgbWF7WyYqJl19cy0gDQpzaXZlIEhvb2tlclwncyBzcGlyaXR1YWxpdHkgYmVjb21lcywgYmVjYXVzZSBpdCBpbmNsdWRlcyBhIA0Kbm9ibGUgcmVhbGl7WyYqJl19emF0aW9uIG9mIHBvc2l0aXZlIGZhY3QuIA0KDQpLb3csIHRoZSBzYW1lIHNvaWwgdGhhdCBwcm9kdWNlZCBCYWNvbiBhbmQgSG9va3tbJiomXX1lciANCnByb2R1Y2VkIFNoYWtzcGVyZTsgdGhlIHNhbWUgZW52aXJvbm1lbnQgZm9zdGVyZWQgdGhlIA0KZ3Jvd3RoIG9mIGFsbCB0e1smKiZdfWhyZWUuIENhbiB3ZSBkaXNjb3ZlciBhbnl0aGluZyBwb3NzZXNzZWQgDQppbiBjb21tb24gYnkgdGhlIHNjaWVudGlmaWMgbW92ZW17WyYqJl19ZW50LCB0aGUgZWNjbGVzaWFzdGljYWwgDQptb3ZlbWVudCwgYW5kIHRoZSBkcmFtYSBvZiB0aGUgcGVyaW9kPyBUaGF0IHdoaWNoIHtbJiomXX0NClYgYXBwZWFycyB0byBiZSBjb21tb24gdG8gYWxsIGlzIGEgcmljaCBmZWVsaW5nIGZvciBwb3NpdGl2ZV4gDQpTIGNvbmNyZXRle1smKiZdfSBmYWN0LiBUaGUgZmFjdHMgd2l0aCB3aGljaCB0aGUgZHJhbWEgY29uY2VybnMgDQpzLCBpdHNlbGYgYXJlIHRob3NlIG9mIGh1bWF7WyYqJl19biBjaGFyYWN0ZXIgaW4gaXRzIGxpdmluZyBwbGF5LiANCiEgXCcgXCcsIEFuZCBhc3N1cmVkbHksIHdoYXRldmVyIGJlIGl0cyBpbXBle1smKiZdfXJmZWN0aW9uLCBpdHMgY3J1ZGUtIA0KbmVzcywgaXRzIGV4dHJhdmFnYW5jZSwgbm8gb3RoZXIgYm9keSBvZiBsaXRlcmF0dXJlIGh7WyYqJl19YXMgDQphbWFzc2VkIGluIGVxdWFsIGZ1bG5lc3MgYW5kIGVxdWFsIHZhcmlldHkgYSBzdG9yZSBvZiBjb24tIA0KY3JldGUgZmFjdHtbJiomXX1zIGNvbmNlcm5pbmcgaHVtYW4gY2hhcmFjdGVyIGFuZCBodW1hbiBsaWZlIDsgDQphc3N1cmVkbHkgbm90IHRoZSBkcmFtYSBvZiBKe1smKiZdfUVzY2h5bHVzIGFuZCBTb3Bob2NsZXMsIG5vdCANCnRoZSBkcmFtYSBvZiBDYWxkZXJvbiBhbmQgTG9wZSBkZSBWZWdhLCBub3QgdGh7WyYqJl19ZSBkcmFtYSANCm9mIENvcm5laWxsZSBhbmQgRWFjaW5lLiBUaGVzZSBnaXZlIHVzIHZpZXdzIG9mIGh1bWFuIA0KbGlmZSwgYW5kIHtbJiomXX1zZWxlY3QgcG9ydGlvbnMgb2YgaXQgZm9yIGFydGlzdGljIGhhbmRsaW5nLiBUaGUgDQpFbGl6YWJldGhhbiBkcmFtYSBnaXZlcyB1e1smKiZdfXMgdGhlIHN0dWZmIG9mIGxpZmUgaXRzZWxmIOKAlCB0aGUgDQpjb2Fyc2Ugd2l0aCB0aGUgZmluZSwgdGhlIG1lYW4gd2l0aCB0aGV7WyYqJl19IGhlcm9pYywgdGhlIGh1LSANCm1vcm91cyBhbmQgZ3JvdGVzcXVlIHdpdGggdGhlIHRyYWdpYyBhbmQgdGhlIHRlcnJpYmxlLiANCntbJiomXX1UaGUgcGVyc29uYWdlcyBvZiB0aGUgZHJhbWEg4oCUIGlmIHdlIGV4Y2VwdCB0aG9zZSBvZiBNYXItIA0KbG93ZSwgXCIgYXJlIG5vdHtbJiomXX0gc3ltYm9scyBvZiBhbnkgYWJzb2x1dGUgb3IgaWRlYWwgdHlwZS4gDQouLi4gVGhlIGh1bWFuIGJlaW5nIGlzIG5vdCBkZWZpbmVke1smKiZdfSBieSBpdHMgbW9zdCBwcm9taS0gDQoNClNoYWtzcGVyZSBhbmQgdGhlIEVsaXphYmV0aGFuIEFnZS4gMiAxIA0KDQpuZW50IGZhY3V7WyYqJl19bHR5LCBub3IgbGlmZSBieSBpdHMgbW9zdCBwb3RlbnQgbWFuaWZlc3RhdGlvbi4gDQpUaGUgYmVpbmdzIHRoZW1zZWx2ZXMsIGxpZntbJiomXX1lIGl0c2VsZiwgYXJlIGJyb3VnaHQgYmVmb3JlIHVzIA0Kb24gdGhlIHNjZW5lLCBhbmQgdGhhdCB3aXRoIGEgcmVhbGl0eSwgdHJ1e1smKiZdfXRoLCBhbmQgcGVyZmVjdGlvbiANCnRoZSBoaWdoZXN0IGV2ZXIgYXR0YWluZWQgYnkgbWFuLlwiIF4gDQoNClBvZXRyeSwgaW4gdGhpe1smKiZdfXMgRWxpemFiZXRoYW4gcGVyaW9kLCBpcyBwdXQgdXBvbiBhIHB1cmVseSANCmh1bWFuIGJhc2lzLiBJVG8gZmF0ZSBicm9vZHMgb3Z7WyYqJl19ZXIgdGhlIGFjdGlvbnMgb2YgbWVuIHwgDQphbmQgdGhlIGhpc3Rvcnkgb2YgZmFtaWxpZXMgOyB0aGUgb25seSBmYXRhbGl0eSBpc3tbJiomXX0gdGhlIGZhdGFsLSBJIA0KaXR5IG9mIGNoYXJhY3RlciwgZiBMdWNrLCBhbiBvdXRzdGFuZGluZyBlbGVtZW50IGhlbHAtIA0KaW5ne1smKiZdfSB0byBkZXRlcm1pbmUgdGhlIGxpdmVzIG9mIG1vcnRhbHMsIGFuZCBub3QgcmVkdWNpYmxlIA0KdG8ga25vd24gbGF3LCBsdWNrIGd7WyYqJl19b29kIGFuZCBiYWQsIFNoYWtzcGVyZSByZWFkaWx5IGFkLSANCm1pdHMgOyBidXQgbHVjayBpcyBzdHJpY3RseSBhIHRoaW5nIGluIHtbJiomXX10aGUgY291cnNlIG9mIG5hdHVyZS4gDQpUaGUgZGl2aW5pdHkgd2hpY2ggc2hhcGVzIG91ciBlbmRzIHdvcmtzIGVmZmljaWVudGx5e1smKiZdfSwgYnV0IA0Kc2VjcmV0bHkuIE1lblwncyBsaXZlcyBpbiB0aGUgZHJhbWEgb2YgU2hha3NwZXJlIGFyZSBub3QgDQpkaXNvcmdhbml6e1smKiZdfWVkIGFuZCBkZW5hdHVyYWxpemVkIGJ5IGlycnVwdGlvbnMgb2YgdGhlIG1pLSANCnJhY3Vsb3VzLiBUaGUgb25lIHN0YW5kaW5nIG17WyYqJl19aXJhY2xlIGlzIHRoZSB3b3JsZCBpdHNlbGYuIA0KVGhhdCBwb3dlciBhbmQgdmlydHVlIHdoaWNoIGNhbiBhY2hpZXZlIHdvbmRlcntbJiomXX1zLCB3aGljaCANCmNhbiBkbyBoaWdoZXIgdGhpbmdzIHRoYW4gYWxsIGZlYXRzIG9mIGdyb3Rlc3F1ZSBtYWdpYyByZS0gDQpjb3Jke1smKiZdfWVkIGluIHRoZSBMZWdlbmQsIGlzIHNpbXBseSBhXiBub2JsZSBvciBiZWF1dGlmdWwgc291bFxcIA0Kb2YgbWFuIG9yIHdvbWFuLiBJe1smKiZdfWYgd2UgcmVjb2duaXplIGluIGEgbW9yYWwgb3JkZXIgb2YgMSANCnRoZSB3b3JsZCBhIGRpdmluZSBwcmVzZW5jZSwgdGhlbiB0aGV7WyYqJl19IGRpdmluZSBwcmVzZW5jZSBpcyANCm5ldmVyIGFic2VudCBmcm9tIHRoZSBTaGFrc3BlcmlhbiB3b3JsZC4gRm9yIHN1Y2ggc2EtIHtbJiomXX0NCmNyZWQgdGhhdW1hdHVyZ3kgYXMgdGhhdCBvZiBDYWxkZXJvblwncyBcIlwiIEF1dG9zIFwiIHdlIHNoYWxsIA0KaW4gdmFpbiBzZWVrIHtbJiomXX1pbiB0aGUgZHJhbWEgb2YgRW5nbGFuZC4gOns6IA0KDQrimaZKb3NlcGggTWF6emluaSwgXCJDcml0aWNhbCBhbmQgTGl0ZXJhcnkgV3tbJiomXX1yaXRpbmdzLFwiIHZvbC4gaWkuLCBwcC4gMTMzLCAxMzQuIA0KT24gd2hhdCBmb2xsb3dzIE1henppbmkgd3JpdGVzIDogXCJJbiBTaGF7WyYqJl19a3NwZXJlLCBhbmQgdGhpcyBpcyBhIHJlYWwgcHJvZ3Jlc3MgDQooYXMgY29tcGFyZWQgd2l0aCBKRXNjaHlsdXMpLCBIYmVydHkgZHtbJiomXX1vZXMgZXhpc3QuIFRoZSBhY3Qgb2YgYSBzaW5nbGUgZGF5LCANCm9yIGl0IG1heSBiZSBvZiBhbiBob3VyLCBoYXMgdGhyb3duIGFue1smKiZdfSBlbnRpcmUgbGlmZSB1bmRlciB0aGUgZG9taW5pb24gb2YgDQpuZWNlc3NpdHkgOyBidXQgaW4gdGhhdCBkYXkgb3IgaG91ciB0aGV7WyYqJl19IG1hbiB3YXMgZnJlZSwgYW5kIGFyYml0ZXIgb2YgaGlzIG93biANCmZ1dHVyZVwiIChwLiAxMzUpLiANCg0KZiBcIiBTaGFrZXNwZWFye1smKiZdfWUgc3RlbGx0ZSB6dWVyc3Qgc2VpbmUgU3RpaWNrZSBhdWYgZ2FueiByZWluIG1lbnNjaGxpY2hlbiANCkJvZGVuLiAuIC4gLiBXaWV7WyYqJl19IGVpbmVzIE1lbnNjaGVuIEdlbWlpdGggaXN0LCBzbyBpc3QgYXVjaCBzZWluIFNjaGlja3NhbC4gDQouIC4gLiBBbGxlcywgd2FzIHtbJiomXX1hdXNzZXJsaWNoIGdlc2NoaWVodCwgaXN0IGJlaSBTaGFrZXNwZWFyZSBkdXJjaCBlaW4gSW5uZXJlcyANCmJlZGluZ3QuXCIg4oCUIHtbJiomXX1FLiBZZWhzZSwgU2hha2VzcGVhcmUgYWxzIFByb3Rlc3RhbnReIGV0Yy4sIHZvbC4gaS4sIHBwLiA1KjcsIDU4LiANCg0KOmo6IEl0e1smKiZdfSBpcyByZW1hcmthYmxlIHRoYXQgdGhlIHBlY3VsaWFyIG1lcml0IG9mIENhbGRlcm9uIHJlY29nbml6ZWQgYnkgU2hlbC0gDQpsZXl7WyYqJl19IGluIGhpcyBcIkRlZmVuY2Ugb2YgUG9ldHJ5XCIg4oCUIGEgbWVyaXQgd2hpY2ggU2hlbGxleSBjYW5ub3QgYXR0cmlidXRlIHRvIA0Ke1smKiZdfXRoZSBFbGl6YWJldGhhbiBkcmFtYXRpc3RzIOKAlCBzaG91bGQgYmUgaGlzIGVuZGVhdm9yIHRvIGNvbm5lY3QgYXJ0IHdpdGggcmV7WyYqJl19LSANCmxpZ2lvbi4gDQoNCjIyIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCl4gQSB2aWdvcm91cywgbXVuZGFuZXtbJiomXX0gdml0YWxpdHkg4oCUIHRoaXMgY29uc3RpdHV0ZXMgdGhlIA0KKGJhc2lzIG9mIHRoZSBFbGl6YWJldGhhbiBkcmFtYS4gWWlnb3Ige1smKiZdfXJldmVhbHMsIG9uIHRoZSANCm9uZSBoYW5kLCB0aGUgdHJhZ2VkeSBvZiBsaWZlLiBMb3ZlIGFuZCBoYXRyZWQsIGpveSBhbmQgDQp7WyYqJl19c29ycm93LCBsaWZlIGFuZCBkZWF0aCBiZWluZyB2ZXJ5IHJlYWwgdG8gYSB2aWdvcm91cyBuYXQtIA0KdXJlLCB0cmFnZWR5IGJlY3tbJiomXX1vbWVzIHBvc3NpYmxlLiBUbyBvbmUgd2hvIGV4aXN0cyBsYW4tIA0KZ3VpZGx5IGZyb20gZGF5IHRvIGRheSwgbmVpdGhlciBjYW4ge1smKiZdfXRoZSBjcm9zcyBhbmQgcGFzc2lvbiANCm9mIGFueSBodW1hbiBoZWFydCBiZSBpbnRlbGxpZ2libGUsIG5vciB0aGUgc29sZW1uIGl7WyYqJl19bnRlbi0gDQpzaXRpZXMgb2Ygam95LCB0aGUgZ2xvcmlvdXMgcmVzdXJyZWN0aW9uIGFuZCBhc2NlbnNpb24gb2YgYSANCmxpZmUgYXtbJiomXX1uZCBzb3VsLiBUaGUgaGVhcnQgbXVzdCBiZSBhbGwgYWxpdmUgYW5kIHNlbnNpdGl2ZSANCmJlZm9yZSB0aGUgaW1hZ2luYXRpb24ge1smKiZdfWNhbiBjb25jZWl2ZSwgd2l0aCBzd2lmdCBhc3N1cmFuY2UsIA0KYW5kIG5vIGhlc2l0YXRpb24gb3IgZXJyb3IsIGV4dHJlbWVzIG97WyYqJl19ZiByYXB0dXJlIGFuZCBvZiANCnBhaW4uIFRoZSBzdHVwZW5kb3VzIG1hc3Mgb2YgTGVhclwncyBhZ29ueSwgYW5kIHRoZSANCnNwYXN7WyYqJl19bXMgb2YgYW5ndWlzaCB3aGljaCBtYWtlIE90aGVsbG8gd3JpdGhlIGluIGJvZHkgYXMgDQppbiBtaW5kLCBmZWxsIHdpdGhpbiB0aHtbJiomXX1lIGNvbXBhc3Mgb2YgdGhlIHNhbWUgaW1hZ2luYXRpb24gDQp0aGF0IGluY2x1ZGVkIGF0IHRoZSBvdGhlciBleHRyZW1pdHkgdGhle1smKiZdfSB0cmVtYmxpbmcgZXgtIA0KcGVjdGF0aW9uIG9mIFRyb2lsdXMgYmVmb3JlIHRoZSBlbnRyYW5jZSBvZiBDcmVzc2lkYSpeIOKAlCB7WyYqJl19DQppbnRvIHdoaWNoIHRoZSBkcmFtYXRpc3QgZW50ZXJzIHNvIHByb2ZvdW5kbHksIHdoaWxlIGF0IA0KdGhlIHNhbWUgdGltZSBoZXtbJiomXX0gaG9sZHMgaGltc2VsZiBpcm9uaWNhbGx5IGFsb29mIOKAlCB0aGUgDQpmdWxuZXNzIG9mIHNhdGlzZmllZCBuZWVkIHdoZW4gUG9ze1smKiZdfXRodW11cyBlbWJyYWNlcyBJbS0gDQpvZ2VuIOKAlCANCg0KXCIgSGFuZyB0aGVyZSBsaWtlIGZydWl0LCBteSBzb3VsLCANClRpbGwge1smKiZdfXRoZSB0cmVlIGRpZSFcIiANCg0KYW5kIHRoZSByYXB0dXJlIChhbG1vc3QgdHJhbnNjZW5kaW5nIHRoZSBib3VuZHMgb2YgY29uXiANe1smKiZdfQoNCiogVHJvaWx1cywg4oCUIFwiIEkgYW0gZ2lkZHkgOyBleHBlY3RhdGlvbiB3aGlybHMgbWUgcm91bmQuIA0KVGhlIGltYWdpbmFye1smKiZdfXkgcmVsaXNoIGlzIHNvIHN3ZWV0IA0KVGhhdCBpdCBlbmNoYW50cyBteSBzZW5zZSA7IHdoYXQgd2lsbCBpdCBiZSwgDQpXaGVuIHR7WyYqJl19aGF0IHRoZSB3YXRlcnkgcGFsYXRlIHRhc3RlcyBpbmRlZWQgDQpMb3ZlXCdzIHRocmljZSByZXB1cmVkIG5lY3RhciA/IERlYXRoLCB7WyYqJl19SSBmZWFyIG1lLCANClN3b29uaW5nIGRlc3RydWN0aW9uLCBvciBzb21lIGpveSB0b28gZmluZSwgDQpUb28gc3VidGxlLXBvdGVudHtbJiomXX0sIHR1bmVkIHRvbyBzaGFycCBpbiBzd2VldG5lc3MsIA0KRm9yIHRoZSBjYXBhY2l0eSBvZiBteSBydWRlciBwb3dlcnMgOiANCkkge1smKiZdfWZlYXIgaXQgbXVjaCA6IGFuZCBJIGRvIGZlYXIsIGJlc2lkZXMuIA0KVGhhdCBJIHNoYWxsIGxvc2UgZGlzdGluY3Rpb24gaW4gbXl7WyYqJl19IGpveXMgOyANCkFzIGRvdGggYSBiYXR0bGUsIHdoZW4gdGhleSBjaGFyZ2Ugb24gaGVhcHMgDQpUaGUgZW5lbXkgZmx5aW5nXCIgKGF7WyYqJl19Y3QgaWlpLiwgc2MuIDIpLiBeIA0KDQpTaGFrc3BlcmUgYW5kIHRoZSBFbGl6YWJldGhhXmkgQWdlLiAyMyANCg0Kc2Npb3VzbmVzc3tbJiomXX0pIG9mIFBlcmljbGVzIHVwb24gdGhlIHJlY292ZXJ5IG9mIGhpcyBsb25nLWxvc3QgDQpNYXJpbmEgOiANCg0KXCIgSGVsaWNhbnVzLHtbJiomXX0gc3RyaWtlIG1lLCBob25vclwnZCBzaXIgOyANCkdpdmUgbWUgYSBnYXNoLCBwdXQgbWUgdG8gcHJlc2VudCBwYWluIDsgDQpMZXN0IHtbJiomXX10aGlzIGdyZWF0IHNlYSBvZiBqb3lzIHJ1c2hpbmcgdXBvbiBtZSANCk9cJ2VyYmVhciB0aGUgc2hvcmVzIG9mIG15IG1vcnRhbGl0eXtbJiomXX0uIA0KQW5kIGRyb3duIG1lIHdpdGggdGhlaXIgc3dlZXRuZXNzLlwiIA0KDQpPbiB0aGUgb3RoZXIgaGFuZCwgdGhpcyBzYW1lIHZpZ3tbJiomXX1vciBlbmFibGVzIG1lbiB0byANCnBlcmNlaXZlIGFuZCBlbmpveSB0aGUgY29tZWR5IG9mIGxpZmU7IGZvciB2aWdvciBlbmpveXMge1smKiZdfQ0KZm9sbHk6IHdoZW4gaXQgbGF1Z2hzLCBsaWtlIFNoYWtzcGVyZVwncyBZYWxlbnRpbmUsIFwiaXQgDQpsYXVnaHMgbGlrZSBhIGNvY3tbJiomXX1rLlwiIE9uZSB3aG8gaXMgdGhvcm91Z2hseSBpbiBlYXJuZXN0IGlzIA0Kbm90IGFmcmFpZCB0byBsYXVnaCA7IGhlIGtub3dzIHRoYXtbJiomXX10IGhlIG1heSBzYWZlbH1eIGhhdmUgDQpoaXMgbGF1Z2ggb3V0LCBhbmQgdGhhdCBpdCB3aWxsIG5vdCBkaXN0dXJiIHRoZSBzb2xpe1smKiZdfWQgcmVsYS0gDQp0aW9ucyBvZiB0aGluZ3MuIEl0IGlzIG9ubHkgd2hlbiB3ZSBhcmUgaGFsZiBpbiBlYXJuZXN0IA0KdGhhdCB3ZSB7WyYqJl19Y2hlcmlzaCBvdXIgc2VyaW91c25lc3MsIGFuZCB0cmVtYmxlIGxlc3QgdGhlIGRpZy0gDQpuaXR5IG9mIG91ciBncmllZnMgb3IgantbJiomXX1veXMgc2hvdWxkIGJlIGltcGFpcmVkLiBBbmQsIGFjLSANCmNvcmRpbmdseSwgd2hlbiBncmVhdCB0cmFnZWRpZXMgY2FuIGJlIHdye1smKiZdfWl0dGVuLCBqb3lvdXMgDQpjb21lZGllcyBjYW4gYmUgd3JpdHRlbiBhbHNvLiBCdXQgd2hlbiBsaWZlIGdyb3dzIGJhc2UgDQpvciB7WyYqJl19dHJpdmlhbCwgd2hlbiBncmVhdCB0cmFnZWR5IGNlYXNlcyAoYXMgaW4gdGhlIHBlcmlvZCBvZiANCnRoZSBSZXN0b3JhdGlvbiApLHtbJiomXX0gd2hlbiBmYWxzZSBoZXJvaWNzIGFuZCBzaG93eSBzZW50aS0gDQptZW50YWxpdHkgdGFrZSB0aGUgcGxhY2Ugb2YgdHJhZ2ljIHBhe1smKiZdfXNzaW9uLCB0aGVuIHRoZSBsYXVnaC0gDQp0ZXIgb2YgbWVuIGJlY29tZXMgYnJ1dGFsIGFuZCBqb3lsZXNzIOKAlCB0aGUgY3JhY2t7WyYqJl19bGluZyBvZiANCnRob3JucyB1bmRlciBhIHBvdC4gDQoNClRoaXMgdmlnb3JvdXMgdml0YWxpdHkgd2hpY2ggdW5kZXJsaWVzIHRoZXtbJiomXX0gRWxpemFiZXRoYW4gDQpkcmFtYSBpcyBlc3NlbnRpYWxseSBtdW5kYW5lLiBUbyBpdCBhbGwgdGhhdCBpcyB1cG9uIA0KdGhpcyBle1smKiZdfWFydGggaXMgcmVhbCA7IGFuZCBpdCBkb2VzIG5vdCBjb25jZXJuIGl0c2VsZiBncmVhdGx5IA0KYWJvdXQgdGhlIHJlYWxpdHkgb2Z7WyYqJl19IG90aGVyIHRoaW5ncy4gT2YgaGVhdmVuIG9yIGhlbGwgaXQgDQpoYXMgbm8gcG93ZXIgdG8gc2luZy4gSXQgZmluZHMgc3VjaCBhbntbJiomXX1kIHN1Y2ggZmFjdHMgaGVyZSANCmFuZCBub3csIGFuZCBkb2VzIG5vdCBpbnZlbnQgb3IgZGlzY292ZXIgc3VwZXJuYXR1LSANCnJhe1smKiZdfWwgY2F1c2VzIHRvIGV4cGxhaW4gdGhlIGZhY3RzLiBJdCBwdXJzdWVzIG1hbiB0byB0aGUgDQptb21lbnQgb2YgZGVhdGgsIGJ1dCB7WyYqJl19aXQgcHVyc3VlcyBoaW0gbm8gZnVydGhlci4gSWYgaXQgDQpjb25mZXNzZXMgXCIgdGhlIGJ1cmRlbiBvZiB0aGUgbXlzdGVyeVwiIG9me1smKiZdfSBodW1hbiBsaWZlLCBpdCANCmRvZXMgbm90IGF0dGVtcHQgdG8gbGlnaHRlbiB0aGF0IGJ1cmRlbiBieSBhbnkgXCJUaHVzIA0Kc2Fpe1smKiZdfXRoIHRoZSBMb3JkXCIgd2hpY2ggY2Fubm90IGJlIHZlcmlmaWVkIG9yIGF0dGVzdGVkIGJ5IA0KYWN0dWFsIGV4cGVyaWVuY2UuIElme1smKiZdfSBpdCBjb250YWlucyBhIGRpdmluZSBlbGVtZW50LCB0aGUgDQoNCjI0IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydCANCg17WyYqJl19CmRpdmluZSBpcyB0byBiZSBsb29rZWQgZm9yIGluIHRoZSBodW1hbiwgbm90IGFwYXJ0IGZyb20gDQp0aGUgaHVtYW4uIEl0IGtub3tbJiomXX13cyBldGVybml0eSBvbmx5IHRocm91Z2ggdGltZSwgd2hpY2ggDQppcyBhIHBhcnQgb2YgZXRlcm5pdHkuKl4gDQoNCiogVGhlIGZve1smKiZdfWxsb3dpbmcgcGFzc2FnZSBhZGRzIHRvIHdoYXQgaGFzIGJlZW4gd3JpdHRlbiBhYm92ZSwgYW5kIGlsbHVzLSANCnRyYXRlcyBpdCB7WyYqJl19OiBcIiBUaGUgZmVlbGluZyB3aGljaCB3ZSBjb21tb25seSBjYWxsIHBhdGhvcyBzZWVtcywgd2hlbiBvbmUgDQphbmFseXplcyBpdCx7WyYqJl19IHRvIGFyaXNlIG91dCBvZiBhIHBlcmNlcHRpb24gb2YgZ3JhbmQgaW5jb25ncnVpdGllcyDigJQgZmlsbGluZyBhIA0KcGxhY2UgaXtbJiomXX1uIG9uZSBjbGFzcyBvZiBvdXIgaWRlYXMgY29ycmVzcG9uZGluZyB0byB0aGF0IGluIGFub3RoZXIgaW4gd2hpY2ggDQp0aGUgc2Vue1smKiZdfXNlIG9mIHRoZSBsdWRpY3JvdXMgaXMgcGxhY2VkIGJ5IExvY2tlLiBBbmQgdGhpcyBwYXRob3Mgd2FzIGF0dGFpbi0gDQplZCBieSB7WyYqJl19bWVkaWFldmFsIGFzY2V0aWNpc20gdGhyb3VnaCBpdHMgaGFiaXQgb2YgZHdhcmZpbmcgaW50byBpbnNpZ25pZmljYW5jZSANCnRoZXtbJiomXX0gZWFydGhseSBsaWZlIGFuZCBpdHMgYmVsb25naW5ncywgYW5kIHNldHRpbmcgdGhlIG1lYW5uZXNzIGFuZCB3cmV0Y2hlZC0gDQpue1smKiZdfWVzcyB3aGljaCBpdCBhdHRyaWJ1dGVkIHRvIGl0IGluIGNvbnRyYXN0IHRvIHRoZSBmYXItb2ZmIHZpc2lvbiBvZiBnbG9yeSBhbmR7WyYqJl19IA0KZ3JlYXRuZXNzLiAuIC4gLiBBbm90aGVyIHNvcnQgb2YgcGF0aG9zIOKAlCB0aGUgcGFnYW4g4oCUIC4gLiAuIHJlc3VsdHMgZntbJiomXX1yb20gYSANCmZ1bGwgcmVhbGl6aW5nIG9mIHRoZSBqb3kgYW5kIHRoZSBiZWF1dHkgb2YgdGhlIGVhcnRoLCBhbmQgdGhlIG5vYmxle1smKiZdfW5lc3Mgb2YgDQptZW5cJ3MgbGl2ZXMgb24gaXQsIGFuZCBmcm9tIHNlZWluZyBhIGdyYW5kIGluZXhwbGljYWJsZW5lc3MgaW4gdGhle1smKiZdfSBpbmNvbmdydS0gDQppdHkgYmV0d2VlbiB0aGUgYnJpZ2h0bmVzcyBvZiB0aGVzZSBhbmQgdGhlIGRhcmtuZXNzIHdoaWNoIGxpZXN7WyYqJl19IGF0IGVpdGhlciANCmVuZCBvZiB0aGVtIDsgdGhlIGluZmluaXRlIGNvbnRyYWRpY3Rpb24gYmV0d2VlbiBhY3R1YWwgZ3JlYXRuZXtbJiomXX1zcyBhbmQgdGhlIA0KYXBwYXJlbnQgbm90aGluZ25lc3Mgb2YgaXRzIHdoZW5jZSBhbmQgd2hpdGhlciA7IHRoZSBteXN0ZXJ5IG9me1smKiZdfSBzdHJvbmcgYW5kIA0KYmVhdXRpZnVsIGltcHVsc2VzIGZpbmRpbmcgbm8gYWRlcXVhdGUgb3V0Y29tZSBub3csIG5vciBwcm9taXN7WyYqJl19ZVwnIG9mIGV2ZXIgDQpmaW5kaW5nIGl0IGhlcmVhZnRlciA7IGh1bWFuIHBhc3Npb24ga2luZGxpbmcgaW50byBIZ2h0IGFuZCBnbG97WyYqJl19dywgb25seSB0byANCmJ1cm4gaXRzZWxmIG91dCBpbnRvIGFzaGVzIDsgdGhlIHN0cnVnZ2xlIGtlcHQgdXAgYnkgdGhlIHdpbGwgb3tbJiomXX1mIHN1Y2Nlc3NpdmUgDQpnZW5lcmF0aW9ucyBhZ2FpbnN0IEZhdGUsIGV2ZXIgYmVnaW5uaW5nIGFuZCBldmVyIGVuZGluZyBpbiBke1smKiZdfWVmZWF0LCB0byByZS0gDQpjb21tZW5jZSBhcyB2YWlubHkgYXMgYmVmb3JlIDsgdGhlIG5ldmVyLWFuc3dlcmVkIFdoeSA/IHV0dGV7WyYqJl19cmVkIHVuY2Vhcy0gDQppbmdseSBpbiBteXJpYWQgdG9uZXMgZnJvbSBvdXQgYWxsIGh1bWFuIGxpZmUuIFRoZSBwb2V0cnkgb2YgdHtbJiomXX1oZSBHcmVla3MgDQpnYWluZWQgZnJvbSB0aGUgY29udGVtcGxhdGlvbiBvZiB0aGVzZSB0aGluZ3MgYSBwYXRob3Mgd2hpY2gsIGhve1smKiZdfXdldmVyIA0KZ2xhZGx5IGEgQ2hyaXN0aWFuIHBvZXQgbWF5IGZvcmVnbyBzdWNoIGdhaW4gZm9yIGhpcyBhcnQsIHdhcyBpbiBpdHN7WyYqJl19IHNhZG5lc3MgDQppbmV4cHJlc3NpYmx5IGJlYXV0aWZ1bC4gVGhlIFwnIElsaWFkIFwnIGhhZCBhIGRlZXAgdW5kZXJjdXJyZW50IG9me1smKiZdfSBpdCBldmVuIGluIA0KdGhlIG1pZHN0IG9mIGFsbCBpdHMgaGVhbHRoeSBjaGlsZGxpa2Ugb2JqZWN0aXZpdHksIGFuZCBpdCB3YXN7WyYqJl19IGV2ZXIgcHJlc2VudCANCmFtb25nc3QgdGhlIGdyZWF0IHRyYWdlZGlhblwncyBpbnRyb3NwZWN0aXZlIGFuYWx5emluZ3Mgb2YgaHV7WyYqJl19bWFuaXR5LiBIaWdoIA0KYXJ0IG9mIGxhdGVyIHRpbWVzIGhhcywgZm9yIHRoZSBtb3N0IHBhcnQsIHJldGFpbmVkIHRoaXMgcGFnYXtbJiomXX1uIGJlYXV0eS4gDQpUaG91Z2ggdGhlcmUgaXMgbm8gcmVhc29uIHRvIHRoaW5rIHRoYXQgdGhlcmUgd2FzIGFueSBwYWdhbmlzbSBpe1smKiZdfW4gU2hhay0gDQpzcGVyZVwncyBjcmVlZCwgeWV0IHdlIGNhbm5vdCBoZWxwIGZlZWxpbmcgdGhhdCwgd2hldGhlciB0aGUgY2F1c2Uge1smKiZdfWlzIHRvIGJlIA0Kc291Z2h0IGluIGhpcyBpbmRpdmlkdWFsIGdlbml1cyBvciBpbiBSZW5haXNzYW5jZSBpbmZsdWVuY2VzLCB0aGV7WyYqJl19IHNwaXJpdCBvZiANCmhpcyBhcnQgaXMgaW4gbWFueSByZXNwZWN0cyBwYWdhbi4gSW4gaGlzIGdyZWF0IHRyYWdlZGllcyBoZSB0cntbJiomXX1hY2VzIHRoZSANCndvcmtpbmdzIG9mIG5vYmxlIG9yIGxvdmVseSBodW1hbiBjaGFyYWN0ZXJzIG9uIHRvIHRoZSBwb2ludCDigJQge1smKiZdfWFuZCBubyBmdXItIA0KdGhlciDigJQgd2hlcmUgdGhleSBkaXNhcHBlYXIgaW50byB0aGUgZGFya25lc3Mgb2YgZGVhdGgsIGFuZCB7WyYqJl19ZW5kcyB3aXRoIGEgbG9vayANCmhhY2teIG5ldmVyIG9uIHRvd2FyZHMgYW55dGhpbmcgYmV5b25kLiBIaXMgc3Rlcm5seSB0cnV0aHtbJiomXX1mdWwgcmVhbGlzbSB3aWxsIA0Kbm90LCBvZiBjb3Vyc2UsIGFsbG93IGhpbSB0byBhdHRlbXB0IGEgc2hhbGxvdyBwb2V0aWNhbCBqe1smKiZdfXVzdGljZSwgYW5kIG1ldGUgb3V0IA0KdG8gZWFjaCBvZiBoaXMgbWVuIGFuZCB3b21lbiB0aGUgcG9ydGlvbiBvZiBlYXJ0aGx5IGd7WyYqJl19b29kIHdoaWNoIG1pZ2h0IA0Kc2VlbSB0aGVpciBkdWUgOyBhbmQgaGlzIGFydGlzdGljIGluc3RpbmN0cyDigJQgcG9zaXRpdmUgcntbJiomXX1hdGhlciB0aGFuIHNwZWN1bGF0aXZlIA0K4oCUIHByZWZlciB0aGUgbWFqZXN0eSBhbmQgaW5maW5pdGUgc2FkbmVzcyBvZiB1bmV4e1smKiZdfXBsYWluZWRuZXNzIHRvIGFueSBhdHRlbXB0IA0KdG8gbG9vayBvbiB0b3dhcmRzIGEgZnV0dXJlIHNvbHV0aW9uIG9mIGhhcmQgcml7WyYqJl19ZGRsZXMgaW4gaHVtYW4gZmF0ZXMuXCIg4oCUIEUuIA0KcC4gV2VzdCAoaW4gdGhlIGZpcnN0IG9mIHR3byBhcnRpY2xlcyBvbiBcIkJye1smKiZdfW93bmluZyBhcyBhIFByZWFjaGVyXlwiIFRoaSANCg0KU2hha3NwZXJlIGFuZCB0aGUgRWxpemFiZXRoYW4gQWdlLiAyNSANCg0KV2l0e1smKiZdfWhvdXQgYW4gZXRoaWNhbCB0ZW5kZW5jeSwgdGhlbiwgdGhlIEVsaXphYmV0aGFuIA0KZHJhbWEgeWV0IHByb2R1Y2VzIGFuIGV0aGl7WyYqJl19Y2FsIGVmZmVjdC4gQSBmYWl0aGZ1bCBwcmVzLSANCmVudGF0aW9uIG9mIHRoZSBmYWN0cyBvZiB0aGUgd29ybGQgZG9lcyBub3QgbHtbJiomXX1lYXZlIHVzIGluLSANCmRpZmZlcmVudCB0byBnb29kIGFuZCBldmlsLCBidXQgcmF0aGVyIHJvdXNlcyB3aXRoaW4gdXMsIA0KbW9ye1smKiZdfWUgdGhhbiBhbGwgbWF4aW1zIGFuZCBhbGwgcHJlYWNoaW5nIGNhbiwgYW4gaW5leHRpbi0gDQpndWlzaGFibGUgbG95YWx0eSB0byB7WyYqJl19Z29vZC4gSXQgaXMgYW55IGZhbHNpZnlpbmcgb2YgdGhvc2UgDQpmYWN0cywgd2hldGhlciB0aGUgZmFsc2lmaWNhdGlvbiBiZSB0aHtbJiomXX1hdCBvZiB0aGUgc2Vuc3VhbGlzdCBvciANCm9mIHRoZSBwdXJpc3QsIHdoZXRoZXIgaXQgYmUgYSBsaWUgdG9sZCB0byBzZWR1Y2Uge1smKiZdfXVzIHRvIHZpY2UgDQpvciB0byBicmliZSB1cyB0byB2aXJ0dWUg4oCUIGl0IGlzIHRoaXMgd2hpY2ggbWF5IHBvc3NpYmx5IGxlYWR7WyYqJl19IA0KdXMgYXNpZGUgZnJvbSBkaXJlY3RuZXNzLCBzaW1wbGljaXR5LCBhbmQgdXByaWdodG5lc3Mgb2YgDQphY3Rpb24uIElzIHRoZXtbJiomXX0gRWxpemFiZXRoYW4gZHJhbWEgcmVsaWdpb3VzPyBObywgaWYgcmUtIA0KbGlnaW9uIGJlIHNvbWV0aGluZyB3aGljaCBzdGFuZHMge1smKiZdfW92ZXIgYW5kIGFib3ZlIGh1bWFuIA0KbGlmZSwgbHVyaW5nIGl0IGF3YXkgZnJvbSBlYXJ0aCA6IG5vLCBpZiB0aGUgaGlnaGVzdCB7WyYqJl19YWN0cyBvZiANCnJlbGlnaW9uIGJlIGFuIGFjY2VzcyB0byB0aGUgZGl2aW5lIHByZXNlbmNlIHRocm91Z2ggc3BlLSANCmNpYWwgZXtbJiomXX1jY2xlc2lhc3RpY2FsIHJpdGVzIGFuZCBwbGFjZXMgYW5kIHBlcnNvbnMuIFllcywgaWYgDQp0aGUgZmFjdHMgb2YgdGhlIHdvcmxke1smKiZdfSBiZSB0aGVtc2VsdmVzIHNhY3JlZCDigJQgcGFydHMgb2YgYSANCmRpdmluZSBvcmRlciBvZiB0aGluZ3MsIGFuZCBpbnRlcnBlbmV7WyYqJl19dHJhdGVkIGJ5IHRoYXQgU3UtIA0KcHJlbWUgS2VhbGl0eSwgYXBwcmVoZW5kZWQgeWV0IHVua25vd2FibGUsIG9mIHdoaWNoIA0KdHtbJiomXX1oZSB3b3JsZHMgb2YgbWF0dGVyIGFuZCBvZiBtaW5kIGFyZSBhIG1hbmlmZXN0YXRpb24uIA0KDQpUbyBtYW55LCBhdCB0aGUgcHJle1smKiZdfXNlbnQgdGltZSwgdGhlIHNhbml0eSBhbmQgdGhlIA0Kc3RyZW5ndGggb2YgU2hha3NwZXJlIHdvdWxkIGFzc3VyZWRseSBiZSBhbiB7WyYqJl19aW5mbHVlbmNlIA0KdGhhdCBtaWdodCB3ZWxsIGJlIGNhbGxlZCByZWxpZ2lvdXMuIFRoZSBFbGl6YWJldGhhbiBpIA0KZHJhbWEgaXtbJiomXX1zIHRob3JvdWdobHkgZnJlZSBmcm9tIGxhc3NpdHVkZSBhbmQgZnJvbSB0aGF0IHwgDQpsZXRoYXJneSBvZiBoZWFydCB3aGljaCBte1smKiZdfW9zdCBvZiB1cyBoYXZlIGZlbHQgYXQgb25lIHRpbWUgXFwgDQpvciBhbm90aGVyLiBUaG9zZSB3aG9zZSBsb3QgZmFsbHMgaW4gYSBwe1smKiZdfWVyaW9kIG9mIGRvdWJ0IA0KYW5kIHNwaXJpdHVhbCBhbHRlcmF0aW9uLCBiZXR3ZWVuIHRoZSBlYmIgYW5kIHRoZSBmbG93LCBpbiB7WyYqJl19DQp0aGUgd2VsdGVyIGFuZCB3YXNoIG9mIHRoZSB3YXZlcywgYXJlIOKAlCBiZWNhdXNlIHRoZXkgbGFjayANCnRoZSBqb3lvdXMgZXtbJiomXX1uZXJneSBvZiBhIGZhaXRoIOKAlCBwZWN1bGlhcmx5IHN1YmplY3QgdG8gdGhpcyANCm1vb2Qgb2YgYmFycmVuIGxldGhhcmd5LiBBe1smKiZdfW5kIGl0IGlzIG5vdCBhbG9uZSBpbiB0aGUgDQpteXN0aWMsIHNwaXJpdHVhbCBsaWZlIG9mIHRoZSBzb3VsIHRoYXQgd2UgbWF5IHN7WyYqJl19dWZmZXIgZnJvbSANCg0KQmFyayBCbHVlIE1hZ2F6aW5lXiBPY3QuIGFuZCBOb3YuLCBJU1wnWmwgKS4gwrtUaGlzIHBhc3NhZ2UgbWF7WyYqJl19eSBiZSBib3JuZSANCmluIG1pbmQgdG8gaWxsdXN0cmF0ZSB0aGUgdmlldyB0YWtlbiBvZiB0aGUgZ3JlYXQgdHJhZ2VkaWVzIG9mIHtbJiomXX1TaGFrLiANCnNwZXJlIGluIGEgc3Vic2VxdWVudCBjaGFwdGVyIG9mIHRoaXMgdm9sdW1lLiBTZWUgYWxzbywgb24gdGhlIGFnbm9ze1smKiZdfXRpY2lzbSANCm9mIFNoYWtzcGVyZSwgTXIuIFJ1c2tpblwncyBsZWN0dXJlIFwiIFRoZSBNeXN0ZXJ5IG9mIExpZmUgYW5kIGl0cyBBcntbJiomXX10cyxcIiBpbiANCioqIEFmdGVybm9vbiBMZWN0dXJlc1wiIChEdWJsaW46IE1cJ0dlZSwgMTg2OSksIHBwLiAxMTAsIDExMS4gDQoNCjI2e1smKiZdfSBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpjb2xkbmVzcyBvciBhcmlkaXR5LiBUaGVyZSBhcmUgc2Vhc29ucyB7WyYqJl19d2hlbiBhIHN0ZXJpbGUgDQp3b3JsZC13ZWFyaW5lc3MgaXMgaW5kdWNlZCBieSB0aGUgc3VwZXJmaWNpYWwgYmFycmVubmVzcyANCntbJiomXX1vZiBsaWZlLiBUaGUgcGVyc29ucyB3ZSBrbm93IHNlZW0gdG8gc2hyaXZlbCB1cCBhbmQgDQpiZWNvbWUgd2l6ZW5lZCBhbmQgZ3Jve1smKiZdfXRlc3F1ZS4gVGhlIHBsYWNlcyB3ZSBoYXZlIA0KbG92ZWQgdHJhbnNmb3JtIHRoZW1zZWx2ZXMgaW50byB1Z2x5IGxpdHRsZSBwcml7WyYqJl19c29ucy4gVGhlIA0KaWRlYWxzIGZvciB3aGljaCB3ZSBsaXZlZCBhcHBlYXIgYWJzdXJkIHBhdHRlcm5zLCBpbnNpZy0gDQpuaWZpY3tbJiomXX1hbnQgYXJhYmVzcXVlcywgZGV2b2lkIG9mIGlkZWEgYW5kIG9mIGJlYXV0eS4gT3VyIA0Kb3duIGhlYXJ0IGlzIGEgbW9zdCBpbXBle1smKiZdfXJ0aW5lbnQgYWppZCB1bnByb2ZpdGFibGUgaGFuZC0gDQpmdWwgb2YgZHVzdC4gSXQgaXMgd2VsbCBpZiBzb21lIHN1cHJlbWUgam97WyYqJl19eSBvciBzb3Jyb3cgDQp3aGljaCBoYXMgb3ZlcnRha2VuIHVzIHNhdmUgdXMgZnJvbSBwb3NzaWJsZSByZWN1cnJlbmNlIA0Kb2YgdHtbJiomXX1oaXMgbW9vZCBvZiB3ZWFyeSBjeW5pY2lzbS4gQnV0IGh1bWJsZXIgbWVhbnMgYXQgDQp0aW1lcyBoYXZlIHNlcnZlZC4gVGhlIHRle1smKiZdfWFyIHNoZWQgb3ZlciBhIHRhbGUgb2YgTWFyLSANCm5pb250ZWwgYnkgb25lIHdobyByZWNvcmRlZCBoaXMgbWFsYWR5IGFuZCBoaXN7WyYqJl19IHJlY292LSANCmVyeSBoYXMgb2NjYXNpb25lZCBjZXJ0YWluIHNtaWxlcyBvbiBjcml0aWNhbCBsaXBzLl4gQSANCnRydWUgcGh5c3tbJiomXX1pY2lhbiBvZiB0aGUgc291bCBkaXNjZXJucyB0aGF0IHN1Y2ggYSB0ZWFyIGlzIG5vdCANCmRlc3BpY2FibGUsIGJ1dCBzaWduaWZpe1smKiZdfWNhbnQgYXMgdGhlIGJlYWRzIG9mIHBlcnNwaXJhdGlvbiANCndoaWNoIHRlbGwgdGhhdCB0aGUgY3Jpc2lzIG9mIGEgZmV2ZXIgaXN7WyYqJl19IGZhdm9yYWJseSBwYXNzZWQuIA0KVG8gdGhpcyBtb29kIG9mIGJhcnJlbiB3b3JsZC13ZWFyaW5lc3MgdGhlIEVsaXphYmV0aGFuIHtbJiomXX0NCmRyYW1hIGNvbWVzIHdpdGggbm8gZGlyZWN0IHRlYWNoaW5nLCBidXQgd2l0aCB0aGUgdmlzaW9uIA0Kb2YgbGlmZS4gRXZlbiB0e1smKiZdfWhvdWdoIGRlYXRoIGVuZCBhbGwsIHRoZXNlIHRoaW5ncyBhdCBsZWFzdCANCmFyZSDigJQgYmVhdXR5IGFuZCBmb3JjZSwgcHVyaXR7WyYqJl19eSwgc2luLCBhbmQgbG92ZSwgYW5kIGFuZ3Vpc2ggDQphbmQgam95LiBUaGVzZSB0aGluZ3MgYXJlLCBhbmQgdGhlcmVmb3JlIGxpZntbJiomXX1lIGNhbm5vdCBiZSANCmEgbGl0dGxlIGlkbGUgd2hpcmwgb2YgZHVzdC4gV2UgYXJlIHNob3duIHRoZSBzdHJvbmcgDQptYW4gdGFre1smKiZdfWVuIGluIHRoZSB0b2lscywgdGhlIHNpbm5lciBzaW5raW5nIGZhcnRoZXIgYW5kIA0KZmFydGhlciBhd2F5IGZyb20gbGlnaHQgYW57WyYqJl19ZCByZWFsaXR5IGFuZCB0aGUgc3Vic3RhbnRpYWwgDQpsaWZlIG9mIHRoaW5ncyBpbnRvIHRoZSBkdWJpb3VzIGFuZCB0aGUgZHVza3tbJiomXX0sIHRoZSBwdXJlIA0KaGVhcnQgYWxsIHZpdGFsIGFuZCBjb25maWRlbnQgYW5kIGpveW91cyA7IHdlIGFyZSBzaG93biANCnRoZSBne1smKiZdfWxhZCwgdmljYXJpb3VzIHNhY3JpZmljZSBvZiBzb3VsIGZvciBzb3VsLCB0aGUgbWFsaWduIA0KYWN0aXZpdHkgb2YgZXZpbCwgdGh7WyYqJl19ZSB2aW5kaWNhdGlvbiBvZiByaWdodCBieSB0aGUgdHJ1ZSBqdXMtIA0KdGljaWFyeSA7IHdlIGFyZSBzaG93biB0aGUgZ29vZCBjb3tbJiomXX1tbW9uIHRoaW5ncyBvZiB0aGUgDQp3b3JsZCwgYW5kIHRoZSBnb29kIHRoaW5ncyB0aGF0IGFyZSByYXJlIDsgdGhlIGxvdmUgb2Yge1smKiZdfQ0KcGFyZW50cyBhbmQgY2hpbGRyZW4sIHRoZSBjb21yYWRlc2hpcCBvZiB5b3VuZyBtZW4sIHRoZSANCmV4cXVpc2l0ZSB2aXZhY2l7WyYqJl19dHksIGNvdXJhZ2UsIGFuZCBoaWdoLXNwaXJpdGVkIGludGVsbGVjdCBvZiANCg0KKiBKLiBTLiBNaWxQcyBBdXRvYmlvZ3JhcGh5LHtbJiomXX0gcHAuIDE0YSwgMTQxLiANCg0KU2hha3NwZXJlIGFuZCB0aGUgRWxpemFiZXRoYW4gQWdlLiAyKkogDQoNCm5vYmxlIGdpcmxob29ke1smKiZdfSwgdGhlIGRldm90aW9uIG9mIG1hbiBhbmQgd29tYW4gdG8gbWFuIA0KYW5kIHdvbWFuLiBUaGUgdmlzaW9uIG9mIGxpZmUgcmlzZXN7WyYqJl19IGJlZm9yZSB1cywgYW5kIHdlIA0Ka25vdyB0aGF0IHRoZSB2aXNpb24gcmVwcmVzZW50cyBhIHJlYWxpdHkuIFRoZXNlIHRoaW5nc3tbJiomXX0sIA0KdGhlbiwgYmVpbmcgYWN0dWFsLCBob3cgcG9vciBhbmQgc2hhbGxvdyBhIHRyaWNrIG9mIHRoZSANCmhlYXJ0IGlzIGN5bmlje1smKiZdfWlzbSAhIA0KDQpqIFR3byB2aWV3cyBvZiB0aGUgY2hhcmFjdGVyIG9mIFNoYWtzcGVyZSBoYXZlIGJlZW4gLyANCnBeUVleZGkgZm97WyYqJl19ciBvdXIgYWNjZXB0YW5jZSA7IHdlIGFyZSBleHBlY3RlZCB0byBtYWtlIGEgeSANCmYgY2hvaWNlIGJldHdlZW4gdGhlIHR3by4gQXtbJiomXX1jY29yZGluZyB0byBvbmUgb2YgdGhlc2UgDQovIHZpZXdzLCBTaGFrc3BlcmUgc3RhbmRzIGJlZm9yZSB1cyBhIGNoZWVyZnVsLCBze1smKiZdfWVsZi1wb3MtIA0Kc2Vzc2VkLCBhbmQgcHJ1ZGVudCBtYW4sIHdobyBjb25kdWN0ZWQgaGlzIGxpZmUgd2l0aCANCnNvdW5kIHdvcmx7WyYqJl19ZGx5IGp1ZGdtZW50OyBhbmQgaGUgd3JvdGUgcGxheXMsIGFib3V0IA0Kd2hpY2ggaGUgZGlkIG5vdCBncmVhdGx5IGNhcmUgOyBhY3tbJiomXX1xdWlyZWQgcHJvcGVydHksIGFib3V0IA0Kd2hpY2ggaGUgY2FyZWQgbXVjaCA7IHJldGlyZWQgdG8gU3RyYXRmb3JkLCBhbmQsIGF0e1smKiZdfXRhaW5pbmcgDQp0aGUgZW5kIG9mIGhpcyBhbWJpdGlvbiwgYmVjYW1lIGEgd2VhbHRoeSBhbmQgcmVzcGVjdGEtIA0KYmxlIGJ1cmd7WyYqJl19ZXNzIG9mIGhpcyBuYXRpdmUgdG93biwgYm9yZSB0aGUgYXJtcyBvZiBhIGdlbnRsZS0gDQptYW4sIG1hcnJpZWQgaGlzIHR3byBkYXtbJiomXX11Z2h0ZXJzIHdpdGggcHJ1ZGVuY2UsIGFuZCBkaWVkIA0Kd2l0aCB0aGUgaGFwcHkgY29uc2Npb3VzbmVzcyBvZiBoYXZpbmcgZ2Fpe1smKiZdfW5lZCBhIGNyZWRpdC0gDQphYmxlIGFuZCBzdWJzdGFudGlhbCBwb3NpdGlvbiBpbiB0aGUgd29ybGQuIFRoZSBvdGhlciANCnZpZXd7WyYqJl19IG9mIFNoYWtzcGVyZVwncyBjaGFyYWN0ZXIgaGFzIGJlZW4gcmVjZW50bHkgcHJlc2VudC0gDQplZCBieSBNLiBUYWluZSB3aXRoIGh7WyYqJl19aXMgdW5mbGFnZ2luZyBicmlsbGlhbmN5IGFuZCBlbmVyZ3kuIA0KQWNjb3JkaW5nIHRvIHRoaXMgc2Vjb25kIGNvbmNlcHRpb24sIHtbJiomXX1TaGFrc3BlclEgd2FzIGEgbWFuIA0Kb2YgYWxtb3N0IHN1cGVyaHVtYW4gcGFzc2lvbnMsIGV4dHJlbWUgaW4gam95IGFuZCBwYWlue1smKiZdfSwgDQppbXBldHVvdXMgaW4gaGlzIHRyYW5zcG9ydHMsIGRpc29yZGVybHkgaW4gaGlzIC4gY29uZHVjdCwgDQpoZWVkbGVzcyBvZiB7WyYqJl19Y29uc2NpZW5jZSwgYnV0IHNlbnNpdGl2ZSB0byBldmVyeSB0b3VjaCBvaWYgDQpwbGVhc3VyZSDigJQgYSBtYW4gb2YgaW5vcmRpbntbJiomXX1hdGUsIGV4dHJhdmFnYW50IGdlbml1cy4gDQoNCkl0IGlzIGltcG9zc2libGUgdG8gYWNjZXB0IGVpdGhlciBvZiB0aGVzZSByZXBye1smKiZdfWVzZW50YS0gDQp0aW9ucyBvZiBTaGFrc3BlcmUgYXMgYSBjb21wbGV0ZSBzdGF0ZW1lbnQgb2YgdGhlIGZhY3QuIA0KQ2VydGFpbiB7WyYqJl19aXQgaXMsIGhvd2V2ZXIsIHRoYXQgYSBwb3J0aW9uIG9mIHRydXRoIGlzIGNvbi0gDQp0YWluZWQgaW4gdGhlIGZpcnN0IG9mIHRoZXtbJiomXX1zZSB0d28gU2hha3NwZXJlIHRoZW9yaWVzLiANClRoZXJlIGNhbiBiZSBubyBkb3VidCB0aGF0IFNoYWtzcGVyZSBjb25zaWRlcmVke1smKiZdfSBpdCANCndvcnRoIGhpcyB3aGlsZSB0byBiZSBwcnVkZW50LCBpbmR1c3RyaW91cywgYW5kIGVjb25vbWljYWwuIA0KSGUgd291bGR7WyYqJl19IGFwcGVhciB0byBoYXZlIGhhZCBhIHZlcnkgc3VmbDNjaWVudCBzZW5zZSBvZiANCmxpZmUsIGFuZCBpbiBwYXJ0aWN1bGFyIG9mIHtbJiomXX1oaXMgb3duIGxpZmUsIGFzIHJlYWwsIGFuZCBvZiB0aGlzIA0KZWFydGggYXMgYSBwb3NzZXNzaW9uLiBIZSBoYWQgc2VlbiBoaXMge1smKiZdfWZhdGhlciBzaW5raW5nIA0KZGVlcGVyIGFuZCBkZWVwZXIgaW50byBwZWN1bmlhcnkgZW1iYXJyYXNzbWVudCwgYW5kIA0KDQoyOCB7WyYqJl19U2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQpkcm9wcGluZyBhd2F5IGZyb20gdGhlIGdvb2QgcG9zaXRpb24gd2hpY3tbJiomXX1oIGhlIGhhZCANCmhlbGQgYW1vbmdzdCBoaXMgZmVsbG93LXRvd25zbWVuLiBTaGFrc3BlcmUgaGFkIG1hci0gDQpyaWVkIGF0IGVpe1smKiZdfWdodGVlbiB5ZWFycyBvZiBhZ2UgOyBoZSB3YXMgYXQgdGhlIGFnZSBvZiB0d2VuLSANCnR5LW9uZSB0aGUgZmF0aGVyIG9mIGEgc297WyYqJl19biBhbmQgb2YgdHdvIGRhdWdodGVycy4gQSByZWNrLSANCmxlc3MsIGltcHJvdmlkZW50IGxpZmUgYmVjYW1lIG1vcmUgdGhhbiBldntbJiomXX1lciB1bmRlc2lyYWJsZS4gDQpIZSB0b29rIHRoZSBtZWFucyB3aGljaCBnYXZlIGhpbSB0aGUgYmVzdCBjaGFuY2Ugb2YgDQphdHRhe1smKiZdfWluaW5nIHdvcmxkbHkgcHJvc3Blcml0eTsgaGUgbWFkZSBoaW1zZWxmIHVzZWZ1bCBpblxcIA0KZXZlcnkgcG9zc2libGUgd2F5IHRve1smKiZdfSBoaXMgZHJhbWF0aWMgY29tcGFueS4gV2hpbGUgDQpvdGhlcnMg4oCUIEdyZWVuZSBhbmQgUGVlbGUgYW5kIE1hcmxvd2Ug4oCUIGh7WyYqJl19YWQgc3F1YW5kZXItIA0KZWQgdGhlaXIgc3RyZW5ndGggaW4gdGhlIHR1cmJ1bGVudCBsaWZlIG9mIExvbmRvbiwgU2hhay0gDQpzcHtbJiomXX1lcmUgaHVzYmFuZGVkIGhpcyBzdHJlbmd0aC4gVGhlIHRoZWF0cmljYWwgbGlmZSBkaWQgDQpub3QgYnJpbmcgc2F0aXNmYWN0aW9ue1smKiZdfSB0byBoaW0gOyBoZSBmZWx0IHRoYXQgaGlzIG1vcmFsIGJlLSANCmluZyBzdWZmZXJlZCBsb3NzIHdoaWxlIGhlIHNwZW50IGhpbXN7WyYqJl19ZWxmIHVwb24gdGhlIG1pc2NlbC0gDQpsYW5lb3VzIGFjdGl2aXRpZXMgZm9yY2VkIHVwb24gaGltIGJ5IGhpcyBwb3NpdGlvbiBhbntbJiomXX1kIA0KcHJvZmVzc2lvbiA7IGhlIHdhcyBtYWRlIGZvciBhIGhpZ2hlciwgcHVyZXIgbGlmZSBvZiBtb3JlIA0KY29udGludW91cyBwe1smKiZdfXJvZ3Jlc3MgdG93YXJkcyBhbGwgdGhhdCBpcyBleGNlbGxlbnQsIGFuZCBoZSANCmZlbHQgcGFpbmZ1bGx5IHRoYXQgaGlzIG5hdHV7WyYqJl19cmUgd2FzIGJlaW5nIHN1YmR1ZWQgdG8gd2hhdCANCml0IHdvcmtlZCBpbiwgYXMgdGhlIGR5ZXJcJ3MgaGFuZCByZWNlaXZlcyBpdHN7WyYqJl19IHN0YWluLl4gTmV2LSANCmVydGhlbGVzcywgaGUgZGlkIG5vdCwgaW4gdGhlIGZhc2hpb24gb2YgaWRlYWxpc3RzLCBoYXN0aWx5IHtbJiomXX0NCmFiYW5kb24gdGhlIGxpZmUgd2hpY2ggc2VlbWVkIHRvIGVudGFpbCBhIGNlcnRhaW4gc3Bpcml0LSANCnVhbCBsb3NzIDsgaGUge1smKiZdfXJlY29nbml6ZWQgdGhlIHJlYWxpdHkgb2YgZXh0ZXJuYWwsIG9iamVjdGl2ZSANCmR1dGllcyBhbmQgY2xhaW1zIOKAlCBkdXRpZXN7WyYqJl19IHRvIGhpcyBmYXRoZXIsIHRvIGhpcyBmYW1pbHksIHRvIA0KaGlzIG93biBmdXR1cmUgc2VsZiA7IGhlIGFjY2VwdGVkIHRoZSBsb3tbJiomXX1naWMgb2YgZmFjdHMgOyBoZSANCmNvbXBlbGxlZCB0aGUgbG93ZXIgYW5kIHByb3Zpc2lvbmFsIGxpZmUgb2YgcGxheWVyIGFuZCANe1smKiZdfQpwbGF5d3JpZ2h0IHRvIGJlY29tZSB0aGUgc2VydmFudCBvZiBoaXMgaGlnaGVyIGxpZmUsIGFzIA0KZmFyIGFzIGNpcmN1bXN0YW57WyYqJl19Y2VzIHBlcm1pdHRlZCA7IGFuZCBoZSBjYXJlZnVsbHkgYW5kIA0Kc3RlYWRpbHkgYXBwbGllZCBoaW1zZWxmIHRvIGVmZmVjdGluZ3tbJiomXX0gaGlzIGRlbGl2ZXJhbmNlIGZyb20gDQp0aGF0IHByb3Zpc2lvbmFsIGxpZmUgYXQgdGhlIGVhcmxpZXN0IHN1aXRhYmxlIHBlcmlve1smKiZdfWQgOyBidXQgDQpub3QgYmVmb3JlIHRoYXQgcGVyaW9kIGhhZCBhcnJpdmVkLiBBbmQgYWZ0ZXJ3YXJkcywgDQp3aGVuIFNoYWtzcGV7WyYqJl19cmUgaGFkIGJlY29tZSBhIHByb3NwZXJvdXMgY291bnRyeSBnZW4tIA0KdGxlbWFuLCBoZSBkaWQgbm90IGVuZGVhdm9yIHRvIGN1dHtbJiomXX0gaGltc2VsZiBsb29zZSBmcm9tIA0KaGlzIHBhc3QgbGlmZSB3aGljaCBoYWQgc2VydmVkIGhpbSwgYW5kIHRoZSBhc3NvY2lhdGVze1smKiZdfSANCndobyBoYWQgYmVlbiBoaXMgZnJpZW5kcyBhbmQgaGVscGVycyA7IHRoZSBTdHJhdGZvcmQgZ2VuLSANCg0K4pmmIFNvbm5ldHN7WyYqJl19XiBjeGkuIA0KDQpTaGFrc3BlcmUgYW5kIHRoZSBFbGl6YWJldGhhbiBBZ2UuIDI5IA0KDQp0bGVtYW4gd2hvIG1pZ2h0IHdyaXRlIHtbJiomXX1oaW1zZWxmIEFybWlnZXJvIFwiIGluIGFueSBiaWxsLCANCndhcnJhbnQsIHF1aXR0YW5jZSwgb3Igb2JsaWdhdGlvbiBcJ1wnIHdhcyBue1smKiZdfW90IHNvIGVuYW1vdXJlZCANCm9mIHRoaXMgZGlzdGluY3Rpb24gYXMgdG8gYmUgYXNoYW1lZCBvZiB0aGUgZGF5cyB3aGVuIGhlIA17WyYqJl19CmxpdmVkIGJ5IHB1YmxpYyBtZWFucyA7IGhlIHJlbWVtYmVycyBpbiBoaXMgd2lsbCBhbW9uZyANCnRoZSBydXJhbCBlc3F1aXJlc3tbJiomXX0gYW5kIGdlbnRyeSwgXCJNeSBGZWxsb3dlcywgSm9obiANCkhlbXluZ2VzLCBLaWNoYXJkIEJ1cmJhZ2UsIGFuZCBIZW5yeSBDdW5kZXtbJiomXX1sbC5cIiANCg0KVGh1cywgYWxsIHRocm91Z2ggaGlzIGxpZmUsIHdlIG9ic2VydmUgaW4gU2hha3NwZXJlIGEgDQpzdWZmaWNpZW50IHtbJiomXX1yZWNvZ25pdGlvbiBvZiBleHRlcm5hbCBmYWN0LCBleHRlcm5hbCBjbGFpbXMsIA0KYW5kIG9ibGlnYXRpb25zLiBIZW5jZSB3b3Jse1smKiZdfWRseSBwcm9zcGVyaXR5IGNvdWxkIG5vdCBiZSANCmEgbWF0dGVyIHdoaWNoIHdvdWxkIGV2ZXIgc2VlbSB1bmltcG9ydGFudCB0byB7WyYqJl19U2hhay0gDQpzcGVyZS4gSW4gMTYwNCwgd2hlbiBoZSB3YXMgYSB3ZWFsdGh5IG1lXm4sIFdpbGxpYW0gDQpTaGFrc3BlcmUgYnJvdXtbJiomXX1naHQgYW4gYWN0aW9uIGFnYWluc3QgUGhpbGlwIFJvZ2VycywgaW4gDQp0aGUgY291cnQgb2YgU3RyYXRmb3JkLCBmb3IgwqMxIDE1e1smKiZdfV4uIDEwNj8uLCBiZWluZyB0aGUgcHJpY2UgDQpvZiBtYWx0IHNvbGQgYW5kIGRlbGl2ZXJlZCB0byBoaW0gYXQgZGlmZmVyZW50IHR7WyYqJl19aW1lcy4gVGhlIA0KaW5jaWRlbnQgaXMgY2hhcmFjdGVyaXN0aWMuIFNoYWtzcGVyZSBldmlkZW50bHkgY291bGQgZXMtIA0KdGltYXtbJiomXX10ZSB0aGUgcHJlY2lzZSB2YWx1ZSBmb3IgdGhpcyB0ZW1wb3JhbCBsaWZlICh0aG91Z2ggDQpwb3NzaWJseSBub3QgZm9yIGV0ZXJue1smKiZdfWl0eSkgb2YgwqMxIDE1Xi4gMTAmbHQ7Xi4gOyBhbmQsIGluIGFkZGktIA0KdGlvbiB0byB0aGlzLCBoZSBib3JlIGRvd24gd2l0aCB7WyYqJl19dW5mYWx0ZXJpbmcgaW5zaXN0ZW5jZSBvbiANCnRoZSBwb3NpdGl2ZSBmYWN0IHRoYXQgdGhlIHJpZ2h0IHBsYWNlIG91dCBvZiBhbHtbJiomXX1sIHRoZSB1bmktIA0KdmVyc2UgZm9yIHRoZSBzYWlkIMKjMSAxNTUuIFxcXmQuIHRvIG9jY3VweSBsYXkgaW4gdGhlIHBvY2tldCANCntbJiomXX1vZiBXaWxsaWFtIFNoYWtzcGVyZS4gDQoNClByYWN0aWNhbCwgcG9zaXRpdmUsIGFuZCBhbGl2ZSB0byBtYXRlcmlhbCBpbnRlcmVze1smKiZdfXRzLCBTaGFrLSANCnNwZXJlIHVucXVlc3Rpb25hYmx5IHdhcy4gQnV0IHRoZXJlIGlzIGFub3RoZXIgc2lkZSB0byANCmhpcyBjaGF7WyYqJl19cmFjdGVyLiBBYm91dCB0aGUgc2FtZSB0aW1lIHRoYXQgaGUgYnJvdWdodCBoaXMgDQphY3Rpb24gYWdhaW5zdCBQaGlsaXAgUm9nZXtbJiomXX1ycyBmb3IgdGhlIHByaWNlIG9mIG1hbHQsIHRoZSANCnBvZXQgd2FzIGVuZ2FnZWQgdXBvbiBoaXMgT3RoZWxsbyBhbmQgaGlzIExle1smKiZdfWFyLiBJcyBpdCANCmNvbmNlaXZhYmxlIHRoYXQgU2hha3NwZXJlIHRob3VnaHQgbW9yZSBvZiBoaXMgcG91bmRzIA0KdGhhbiBvZiB7WyYqJl19aGlzIHBsYXlzPyBTdHJvbmdseSBhcyBoZSBmZWx0IHRoZSBmYWN0IGFib3V0IA0KdGhlIGxpdHRsZSBzdW0gb2YgbW9uZXkgd2hpY3tbJiomXX1oIGhlIHNvdWdodCB0byByZWNvdmVyLCANCmlzIGl0IG5vdCBiZXlvbmQgcG9zc2liaWxpdHkgb2YgZG91YnQgdGhhdCBoaXMgd2hve1smKiZdfWxlIA0KbmF0dXJlIHdhcyBpbW1lYXN1cmFibHkgbW9yZSBraW5kbGVkLCBhcm91c2VkLCBhbmQgDQpzd2F5ZWQgYnkgdGhlIHZpc2l7WyYqJl19b24gb2YgTGVhciB1cG9uIHRoZSBoZWF0aCwgb2YgT3RoZWxsbyANCnRha2VuIGluIHRoZSBzbmFrZS1saWtlIGZvbGRzIG9mIGxhZ3tbJiomXX1vXCdzIGN1bm5pbmcsIGFuZCBieSANCnRoZSBpbnNjcnV0YWJsZSBteXN0ZXJpZXMgcmVzcGVjdGluZyBodW1hbiBsaWZlIHdoaWNoIHtbJiomXX0NCnRoZXNlIHN1Z2dlc3RlZCA/IEl0IGlzIGhpZ2hseSBpbXBvcnRhbnQgdG8gZml4IG91ciBhdHRlbiogDQoNCjMwIFNoYWtzcGVye1smKiZdfWUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQp0aW9uIG9uIHdoYXQgaXMgcG9zaXRpdmUsIHByYWN0aWNhbCwgYW5kIGZpbml0ZSB7WyYqJl19aW4gU2hha3NwZXJlXCdzIA0KYXJ0IGFzIHdlbGwgYXMgaW4gU2hha3NwZXJlXCdzIGxpZmUuIEJ1dCBpZiB0aGUgcG9ldCB3YXMgb2Yge1smKiZdfQ0KDQpeIGhpcyBvd24gYWdlLCBoZSB3YXMgYWxzbyBcIiBmb3IgYWxsIHRpbWUuXCIgSGUgZG9lcyBub3QgDQptZXJlbHkgZW5kZWF2b3tbJiomXX1yIHRvIGNvbXBhc3MgYW5kIGNvbXByZWhlbmQgdGhlIGtub3ctIA0KYWJsZTogaGUgYnJvb2RzIHdpdGggYSBwYXNzaW9uYXRlIGlue1smKiZdfXRlbnNpdHkgb3ZlciB0aGF0IA0Kd2hpY2ggY2Fubm90IGJlIGtub3duLiBBbmQsIGFnYWluLCBoZSBub3Qgb25seSBzdHVkaWVzIA17WyYqJl19CnNlbGYtY29udHJvbCA6IGhlIGNvdWxkIGRlcGljdCwgYW5kIHdlIGNhbm5vdCBkb3VidCB0aGF0IA0KaGUga25ldyBieSBwZXJzb3tbJiomXX1uYWwgZXhwZXJpZW5jZSwgYWJzb2x1dGUgYWJhbmRvbm1lbnQgDQphbmQgc2VsZi1zdXJyZW5kZXIuIFRoZSBpbmZpbml0ZSBvZiBte1smKiZdfWVkaXRhdGlvbiwgdGhlIGluZmktIA0Kbml0ZSBvZiBwYXNzaW9uLCBib3RoIHRoZXNlIGxheSB3aXRoaW4gdGhlIHJhbmdlIG9mIFN7WyYqJl19aGFrLSANCnNwZXJlXCdzIGV4cGVyaWVuY2UgYW5kIFNoYWtzcGVyZVwncyBhcnQuIEhlIGRvZXMgbm90LCBpbi0gDQpkZWVkLCBjb21le1smKiZdfSBmb3J3YXJkIHdpdGggZXhwbGFuYXRpb25zIG9mIHRoZSBteXN0ZXJpZXMgDQpvZiBleGlzdGVuY2U7IHBlcmhhcHMgYmVjYXVzZSB7WyYqJl19aGUgZmVsdCBtb3JlIHRoYW4gb3RoZXIgDQoNClxcaiBtZW4gdGhlaXIgbXlzdGVyaW91c25lc3MuIE1hbnkgb2YgdXMgc2VlbSB0byB7WyYqJl19dGhpbmsgaXQgDQp0aGUgYWxsLWVzc2VudGlhbCB0aGluZyB0byBiZSBwcm92aWRlZCB3aXRoIGFuc3dlcnMgdG8gdGhlIA0KZGlmbHtbJiomXX1TY3VsdCBxdWVzdGlvbnMgd2hpY2ggdGhlIHdvcmxkIHByb3BvdW5kcywgbm8gbWF0dGVyIA0KaG93IGxpdHRsZSB0aGUgYW5zd2Vye1smKiZdfXMgYmUgdG8gdGhlc2UgZ3JlYXQgcXVlc3Rpb25zLiBTaGFrLSANCnNwZXJlIHNlZW1zIHRvIGhhdmUgY29uc2lkZXJlZCBpdCBtb3J7WyYqJl19ZSBpbXBvcnRhbnQgdG8gcHV0IA0KdGhlIHF1ZXN0aW9ucyBncmVhdGx5LCB0byBmZWVsIHRoZSBzdXByZW1lIHByb2JsZW1zLiANCntbJiomXX0NClRodXMgU2hha3NwZXJlLCBsaWtlIG5hdHVyZSBhbmQgbGlrZSB0aGUgdmlzaW9uIG9mIGh1LSANCm1hbiBsaWZlIGl0c2VsZiwge1smKiZdfWlmIGhlIGRvZXMgbm90IGZ1cm5pc2ggdXMgd2l0aCBhIGRvY3RyaW5lLCANCmhhcyB0aGUgcG93ZXIgdG8gZnJlZSwgYXJvdXNlLCB7WyYqJl19ZGlsYXRlLiBBZ2FpbiBhbmQgYWdhaW4gDQp3ZSBmYWxsIGJhY2sgaW50byBvdXIgbGl0dGxlIGNyZWVkIG9yIG91ciBsaXR0bGUgdHtbJiomXX1oZW9yeS4gDQpTaGFrc3BlcmUgZGVsaXZlcnMgdXM7IHVuZGVyIGhpcyBpbmZsdWVuY2Ugd2UgY29tZSANCmFuZXcgaW50byB0aGUge1smKiZdfXByZXNlbmNlIG9mIHN0dXBlbmRvdXMgbXlzdGVyaWVzLCBhbmQsIGluLSANCnN0ZWFkIG9mIG91ciBsaXR0bGUgcGllY2Ugb2YgY297WyYqJl19bWZvcnQgYW5kIHN1cHBvcnQgYW5kIGNvbi0gDQp0ZW50bWVudCwgd2UgcmVjZWl2ZSB0aGUgZ2lmdCBvZiBzb2xlbW4gYXdlIGFuZHtbJiomXX0gYm93IA0KdGhlIGhlYWQgaW4gcmV2ZXJlbnRpYWwgc2lsZW5jZS4gVGhlc2UgcXVlc3Rpb25zIGFyZSBub3QgDQpzdGF0ZWQgYnkge1smKiZdfVNoYWtzcGVyZSBhcyBpbnRlbGxlY3R1YWwgcHJvYmxlbXMuIEhlIHN0YXRlcyANCnRoZW0gcHJlZ25hbnRseSwgZm9yIHRoZSBlbW97WyYqJl19dGlvbnMgYW5kIGZvciB0aGUgaW1hZ2luYS0gDQp0aW9uLiBBbmQgaXQgaXMgYnkgdmlydHVlIG9mIGhpcyB2ZXJ5IGtub3dsZWRnZXtbJiomXX0gdGhhdCBoZSANCmNvbWVzIGZhY2UgdG8gZmFjZSB3aXRoIHRoZSBteXN0ZXJ5IG9mIHRoZSB1bmtub3duLiANCkJlY2F1c2UgaGUge1smKiZdfWhhZCBzZW50IGRvd24gaGlzIHBsdW1tZXQgZmFydGhlciBpbnRvIHRoZSANCmRlcHRocyB0aGFuIG90aGVyIG1lbiwgaGUga25ldyB7WyYqJl19YmV0dGVyIHRoYW4gb3RoZXJzIGhvdyANCmZhdGhvbWxlc3MgZm9yIGh1bWFuIHRob3VnaHQgdGhvc2UgZGVwdGhzIHJlbWFpbi4gXCJ7WyYqJl19IFRpbiANCg0KU2hha3NwZXJlIGFuZCB0aGUgRWxpemFiZXRoYW4gQWdlLiAzMSANCg0KZ2VuaWUsXCIgWWljdG9yIEh1Z28gaGFzIHN7WyYqJl19YWlkLCBcIiBlc3Qgbm4gcHJvbW9udG9pcmUgZGFucyANCklcJ2luZmluaS5cJ1wnIFRoaXMgcHJvbW9udG9yeSB3aGljaCB3ZSBuYW1lIFN7WyYqJl19aGFrc3BlcmUsIA0Kc3RyZXRjaGluZyBvdXQgbG9uZyBhbmQgc2hhcnAsIGhhcyBiZWZvcmUgaXQgbWVhc3VyZWxlc3MgXkogDQpzZXtbJiomXX1hIGFuZCB0aGUgbWFzcyBvZiB0aHJlYXRlbmluZyBjbG91ZCA7IGJlaGluZCBpdCB0aGUgaGFiLSANCml0YWJsZSBnbG9iZSwgaWxse1smKiZdfXVtaW5hdGVkLCBhbmQgYWxpdmUgd2l0aCBtb3ZpbmcgZmlndXJlcyANCm9mIG1hbiBhbmQgd29tYW4uIA0KDQpPdXIgY29uY2x1c2l7WyYqJl19b24sIHRoZXJlZm9yZSwgaXMgdGhhdCBTaGFrc3BlcmUgbGl2ZWQgYW5kIA0KbW92ZWQgaW4gdHdvIHdvcmxkcyDigJQgb25lIGxpbXtbJiomXX1pdGVkLCBwcmFjdGljYWwsIHBvc2l0aXZlIDsgDQp0aGUgb3RoZXIgYSB3b3JsZCBvcGVuaW5nIGludG8gdHdvIGluZmluaXRlcywge1smKiZdfWFuIGluZmluaXRlIA0Kb2YgdGhvdWdodCBhbmQgYW4gaW5maW5pdGUgb2YgcGFzc2lvbi4gSGUgZGlkIG5vdCBzdXAtIA0KcHJlc3N7WyYqJl19IGVpdGhlciBsaWZlIHRvIHRoZSBhZHZhbnRhZ2Ugb2YgdGhlIG90aGVyIDsgYnV0IGhlIA0KYWRqdXN0ZWQgdGhlbSwgYW5kIGJ5IHtbJiomXX1zdGVybiBhbmQgcGVyc2lzdGVudCByZXNvbHV0aW9uIGhlbGQgDQp0aGVtIGluIHRoZSBuZWNlc3NhcnkgYWRqdXN0bWVudC4gSW4ge1smKiZdfXRoZSB5ZWFyIDE2MDIgDQpTaGFrc3BlcmUgYm91Z2h0IGZvciB0aGUgc3VtIG9mIHRocmVlIGh1bmRyZWQgYW5kIA0KdHdlbnR5IHB7WyYqJl19b3VuZHMgb25lIGh1bmRyZWQgYW5kIHNldmVuIGFjcmVzIG9mIGFyYWJsZSBsYW5kIA0KaW4gdGhlIHBhcmlzaCBvZiBPbGQgU3RyYXtbJiomXX10Zm9yZC4gSXQgd2FzIGluIHRoZSBzYW1lIHllYXIgDQooaWYgdGhlIGNocm9ub2xvZ3kgb2YgRGVsaXVzIGJlIGFjY2VwdGVkIGFze1smKiZdfSBjb3JyZWN0KSB0aGF0IA0KU2hha3NwZXJlLCBpbiB0aGUgcGVyc29uIG9mIGhpcyBIYW1sZXQsIG11c2luZyBvbiBhIHNrdWxsLCB7WyYqJl19DQp3YXMgdHJhY2luZyBvdXQgdGhlIHJlbGF0aW9ucyBvZiBhIGJ1eWVyIG9mIGxhbmQgdG8gdGhlIA0Kc29pbCBpbiBhIHNvbWV3aHtbJiomXX1hdCBzaW5ndWxhciBmYXNoaW9uLiBcJ1wnIFRoaXMgZmVsbG93IG1pZ2h0IA0KYmUgaW4gXCdzIHRpbWUgYSBncmVhdCBidXllciBvZiBse1smKiZdfWFuZCwgd2l0aCBoaXMgc3RhdHV0ZXMsIGhpcyANCnJlY29nbml6YW5jZXMsIGhpcyBmaW5lcywgaGlzIGRvdWJsZSB2b3VjaGVycyx7WyYqJl19IGhpcyByZWNvdmVyLSANCmllcyA7IGlzIHRoaXMgdGhlIGZpbmUgb2YgaGlzIGZpbmVzLCBhbmQgdGhlIHJlY292ZXJ5IG9mIGhpc3tbJiomXX0gcmUtIA0KY292ZXJpZXMsIHRvIGhhdmUgaGlzIGZpbmUgcGF0ZSBmdWxsIG9mIGZpbmUgZGlydCA/XCIgVGhlIGNvdXItIA0KdGllcntbJiomXX0gT3NyaWMsIHdobyBoYXMgXCIgbXVjaCBsYW5kIGFuZCBmZXJ0aWxlLFwiIGlzIGRlc2NyaWJlZCANCmJ5IHRoZSBQcmluY2UgKHdobyB7WyYqJl19Y291bGQgYmUgY29udGVudGVkIGluIGEgbnV0LXNoZWxsLCBidXQgDQp0aGF0IGhlIGhhcyBiYWQgZHJlYW1zKSBhcyBcIiBzcGFjaW97WyYqJl19dXMgaW4gdGhlIHBvc3Nlc3Npb24gb2YgDQpkaXJ0LlwiIFlldCB0aGlzIGRpcnQgU2hha3NwZXJlIHVzZWQgdG8gc2VydmUgaGlzIG57WyYqJl19ZWVkcy4gDQoNCkhvdyBzaGFsbCBhIG1hbiBsaXZlIHNhbmVseSBpbiBwcmVzZW5jZSBvZiB0aGUgc21hbGwgDQpkYWlseSBmYWN0c3tbJiomXX0gb2YgbGlmZSAod2hpY2ggYXJlIGFsc28gbm90IHNtYWxsLCBidXQgZ3JlYXQpLCANCmFuZCBpbiBwcmVzZW5jZSBvZiB0aGUgdmFze1smKiZdfXQgbXlzdGVyeSBvZiBkZWF0aCA/IEhvdyANCnNoYWxsIGhlIHByb3BvcnRpb24gaGlzIGludGVyZXN0cyBiZXR3XmVlbiB0aGUgYnJ7WyYqJl19aWdodCBpbGx1LSANCm1pbmF0ZWQgc3BvdCBvZiB0aGUga25vd24gYW5kIHRoZSBkaW0gZW52aXJvbmluZyB1bi0gDQprbm93biB3XntbJiomXX1oaWNoIHBvc3Nlc3NlcyBzdWNoIHN0cm9uZyBhdHRyYWN0aW9uIGZvciB0aGUgDQpzb3VsPyBIb3cgc2hhbGwgaGUgcmVzdHJhaW4ge1smKiZdfWFuZCBhdHRhY2ggaGlzIGRlc2lyZXMgdG8gdGhlIA0KDQozMiBTaGFrc3BlcmUg4oCUIEhpcyBNbWQgYW5kIEFydC4gDQoNCmxpdHR7WyYqJl19bGUgb2JqZWN0cyB3aGljaCBjbGFpbSBlYWNoIGl0cyBkZWZpbml0ZSBzaGFyZSBvZiB0aGUgDQpoZWFydCwgd2hpbGUgdGhlIGhlYXtbJiomXX1ydCBsb25ncyB0byBhYmFuZG9uIGl0c2VsZiB0byBzb21lIG9uZSANCnRoaW5nIHdpdGggbWVhc3VyZWxlc3MgZGV2b3Rpb24gJSBTe1smKiZdfWhha3NwZXJlXCdzIGF0dGFpbm1lbnQgDQpvZiBzYW5pdHkgYW5kIHNlbGYtY29udHJvbCB3YXMgbm90IHRoYXQgb2YgYSBkYXkgb3Ige1smKiZdfW9mIGEgDQp5ZWFyLCBpdCB3YXMgdGhlIGF0dGFpbm1lbnQgb2YgaGlzIGxpZmUuIE5vdyBoZSB3YXMgDQp0ZW1wdGVkIGJ5IGhpcyB7WyYqJl19c3BlY3VsYXRpdmUgaW50ZWxsZWN0IGFuZCBpbWFnaW5hdGlvbiB0byANCmxvc2UgYWxsIGNsZWFyIHBlcmNlcHRpb24gb2YgaGlzIHtbJiomXX1saW1pdGVkIGFuZCBmaW5pdGUgbGlmZSA7IGFuZCANCmFnYWluIGhlIHdhcyB0ZW1wdGVkIHRvIHJlc2lnbiB0aGUgY29uZHVjdCBve1smKiZdfWYgaGlzIGJlaW5nIA0KYnkgdGhlIHByb21wdGluZ3Mgb2YgYSBwYXNzaW9uYXRlIGhlYXJ0LiBIZSBpcyBpbmV4b3JhLSANCmJsZSB7WyYqJl19aW4gaGlzIHBsYXlzIHRvIGFsbCByZWJlbHMgYWdhaW5zdCB0aGUgZmFjdCA7IGJlY2F1c2UgaGUgDQp3YXMgY29uc2Npb3VzIG9mIHtbJiomXX10aGUgc3Ryb25nZXN0IHRlbXB0YXRpb24gdG8gYmVjb21lIGhpbS0gDQpzZWxmIGEgcmViZWwuIEhlIGNhbm5vdCBmb3JnaXZlIGFue1smKiZdfSBpZGVhbGlzdCwgYmVjYXVzZSBpbiANCnNwaXRlIG9mIGhpcyBwcmFjdGljYWwgYW5kIHBvc2l0aXZlIG5hdHVyZSBoZSB3YXMgKGx7WyYqJl19ZXQgdGhlIA0KU29ubmV0cyB3aXRuZXNzKSBhbiBpZGVhbGlzdCBoaW1zZWxmLiBIaXMgc2VyaWVzIG9mIGRyYS0gDQptYXRpYyB3cntbJiomXX1pdGluZ3MgaXMgb25lIGxvbmcgc3R1ZHkgb2Ygc2VsZi1jb250cm9sLiANCg0KQW5kIFNoYWtzcGVyZSwgd2UgaGF2ZSBnb29kIHJle1smKiZdfWFzb24gdG8gYmVsaWV2ZSwgZGlkIGF0IA0KbGFzdCBhdHRhaW4gdG8gdGhlIHNlcmVuZSBzZWxmLXBvc3Nlc3Npb24gd2hpY2ggaGV7WyYqJl19IGhhZCANCnNvdWdodCB3aXRoIHN1Y2ggcGVyc2lzdGVudCBlZmlmb3J0LiBIZSBmZWFyZWQgdGhhdCBoZSANCm1pZ2h0IGJlY29tZXtbJiomXX0gKGluIHNwaXRlIG9mIE1lcmN1dGlvXCdzIGplc3RzKSBhIEVvbWVvIDsgaGUgDQpmZWFyZWQgdGhhdCBoZSBtaWdodCBmYWx0ZXIgZntbJiomXX1yb20gaGlzIHN0cm9uZyBzZWxmLW1haW50ZS0gDQpuYW5jZSBpbnRvIGEgSGFtbGV0IDsgaGUgc3VmZmVyZWQgZ3JpZXZvdXMgd3Jve1smKiZdfW5nLCBhbmQgaGUgDQpyZXNvbHZlZCB0aGF0IGhlIHdvdWxkIG5vdCBiZSBhIFRpbW9uLiBIZSBlbmRlZCBieSANCmJlY29taW5nIER7WyYqJl19dWtlIFByb3NwZXJvLiBBZG1pcmVkIE1pcmFuZGEg4oCUIHRydWx5IFwiIGEgDQp0aHJlYWQgb2YgaGlzIG93biBsaWZlIFwiIOKAlCBoe1smKiZdfWUgbWFkZSBvdmVyIHRvIHRoZSB5b3VuZyBnYWwtIA0KbGFudCBGZXJkaW5hbmQgKGFuZCB5ZXQgd2FzIHRoZXJlIG5vdCBhIHRvdWN7WyYqJl19aCBvZiBzYWRuZXNzIA0KaW4gcmVzaWduaW5nIHRvIGEgc29tZXdoYXQgc2hhbGxvdy1zb3VsZWQgRmxldGNoZXIgdGhlIA0KYXJ0IHtbJiomXX1oZSBsb3ZlZD8pLiBIZSBicm9rZSBoaXMgbWFnaWMgc3RhZmY7IGhlIGRyb3duZWQgDQpoaXMgYm9vayBkZWVwZXIgdGhhbiBldmVye1smKiZdfSBwbHVtbWV0IHNvdW5kZWQgOyBoZSB3ZW50IA0KYmFjaywgc2VyZW5lbHkgbG9va2luZyBkb3duIHVwb24gYWxsIG9mIGh1bWFuIGx7WyYqJl19aWZlLCB5ZXQgDQpyZWZ1c2luZyBoaXMgc2hhcmUgaW4gbm9uZSBvZiBpdCwgdG8gaGlzIGR1a2Vkb20gYXQgU3RyYXQtIA0KZm9yZHtbJiomXX0sIHJlc29sdmVkIHRvIGRvIGR1a2VcJ3Mgd29yaywgc3VjaCBhcyBpdCBpcywgd2VsbCA7IHlldCANClByb3NwZXJvIG11c3QgZm9yZXtbJiomXX12ZXIgaGF2ZSByZW1haW5lZCBzb21ld2hhdCBhcGFydCANCmFuZCBkaXN0aW5ndWlzaGVkIGZyb20gb3RoZXIgZHVrZXMgYW5kIFdhe1smKiZdfXJ3aWNrc2hpcmUgDQptYWduaWZpY29lcywgYnkgdmlydHVlIG9mIHRoZSBlbmNoYW50ZWQgaXNsYW5kIGFuZCB0aGUgDQptYXJ2ZWx7WyYqJl19bG91cyB5ZWFycyBvZiBtYWdlc2hpcC4gXiANCg0KU2hha3NwZXJlIGFuZCB0aGUgRWxpemFiZXRoYW4gQWdlLiAzMyANCg0KSXQgaHtbJiomXX1hcyBiZWVuIGFza2VkIHdoZXRoZXIgU2hha3NwZXJlIHdhcyBhIFByb3Rlc3RhbnQgDQpvciBhIENhdGhvbGljLCBhbmQgaGUgaGFze1smKiZdfSBiZWVuIHByb3ZlZCB0byBiZWxvbmcgdG8gZWFjaCANCmNvbW11bmlvbiB0byB0aGUgc2F0aXNmYWN0aW9uIG9mIGNvbnRlbmRpbmd7WyYqJl19IHRoZW9sb2dpY2FsIA0KemVhbG90cy4gU2hha3NwZXJlXCdzIHBvZXRyeSwgcmVzdGluZyB1cG9uIGEgcHVyZWx5IGh1LSANCm1hbiB7WyYqJl19YmFzaXMsIGlzIG5vdCBhIHJlbmRlcmluZyBpbnRvIGFydCBvZiB0aGUgZG9nbWFzIG9mIA0KZWl0aGVyIENhdGhvbGljaXNtIG9yIHtbJiomXX1Qcm90ZXN0YW50aXNtLiBTaGFrc3BlcmUgaGltc2VsZiwgDQphIGdyZWF0IGFydGlzdGljIG5hdHVyZSwgZnJhbWVkIGZvciBtYW5pe1smKiZdfWZvbGQgam95IGFuZCBwYWluLCANCm1heSwgbGlrZSBvdGhlciBhcnRpc3RzLCBoYXZlIGhhZCBubyBmYWN1bHR5IGZvciB0aGUgYXR7WyYqJl19dGFpbi0gDQptZW50IG9mIGNlcnRpdHVkZSB1cG9uIGV4dHJhLW11bmRhbmUgYW5kIHN1cGVyaHVtYW4gDQptYXR0ZXJzIDsgb2YgY3tbJiomXX1vbmNyZXRlIG1vcmFsIGZhY3RzIGhlIGhhZCB0aGUgY2xlYXJlc3QgcGVyLSANCmNlcHRpb24sIGJ1dCB3ZSBkbyBub3QgZmluZCB0e1smKiZdfWhhdCBoZSB3YXMgaW50ZXJlc3RlZCwgYXQgDQpsZWFzdCBhcyBhbiBhcnRpc3QsIGluIHRydXRocyBvciBhbGxlZ2VkIHRydXRocyB7WyYqJl19d2hpY2ggdHJhbi0gDQpzY2VuZCB0aGUgbGltaXRzIG9mIGh1bWFuIGV4cGVyaWVuY2UuIFRoYXQgdGhlIHdvcmxkXCcgDQpzdWdnZXN7WyYqJl19dHMgaW5xdWlyaWVzIHdoaWNoIGNhbm5vdCBiZSBhbnN3ZXJlZCA7IHRoYXQgbXlzLSANCnRlcmllcyBjb25mcm9udCBhbmQgYmFmZntbJiomXX1sZSB1cyA7IHRoYXQgYXJvdW5kIG91ciBrbm93bGVkZ2UgDQpsaWVzIGlnbm9yYW5jZSwgYXJvdW5kIG91ciBsaWdodCBkYXJrbmVze1smKiZdfXMg4oCUIHRoaXMgdG8gU2hhay0gDQpzcGVyZSBzZWVtZWQgYSBmYWN0IGNvbnRhaW5pbmcgd2l0aGluIGl0IGEgcHJvZm91bmQgc2l7WyYqJl19Zy0sIA0KbmlmaWNhbmNlLCB3aGljaCBtaWdodCBhbG1vc3QgYmUgbmFtZWQgcmVsaWdpb3VzLiBCdXQsfSANCnN0dWRpb3VzbHkgYXtbJiomXX1zIFNoYWtzcGVyZSBhYnN0YWlucyBmcm9tIGVtYm9keWluZyB0aGVvLWkgDQpsb2dpY2FsIGRvZ21hIGluIGhpcyBhcnQsIGFuZCB0e1smKiZdfW9sZXJhbnQgYXMgaGlzIHNwaXJpdCBpcywgaXQgaXMgDQpjZXJ0YWluIHRoYXQgdGhlIHNwaXJpdCBvZiBQcm90ZXN0YW50aXNtIOJ7WyYqJl19gJQgb2YgUHJvdGVzdGFudGlzbSANCmNvbnNpZGVyZWQgYXMgcG9ydGlvbiBvZiBhIGdyZWF0IG1vdmVtZW50IG9mIGh1bWFuaXR5IHtbJiomXX0NCuKAlCBhbmltYXRlcyBhbmQgYnJlYXRoZXMgdGhyb3VnaCBoaXMgd3JpdGluZ3MuIFVubGVzcyANCmhlIGhhZCBzdG9vZCBpbiBhe1smKiZdfW50YWdvbmlzbSB0byBoaXMgdGltZSwgaXQgY291bGQgbm90IGJlIA0Kb3RoZXJ3aXNlLiBTaGFrc3BlcmVcJ3MgY3JlZWQgaXMgbm90e1smKiZdfSBhIHNlcmllcyBvZiBhYnN0cmFjdCANCnN0YXRlbWVudHMgb2YgdHJ1dGgsIGJ1dCBhIGJvZHkgb2YgY29uY3JldGUgaW1wdWxzZXN7WyYqJl19LCB0ZW4tIA0KZGVuY2llcywgYW5kIGhhYml0cy4gVGhlIHNwaXJpdCBvZiBoaXMgZmFpdGggaXMgbm90IHRvIGJlIA0KYXNjZXJ0YXtbJiomXX1pbmVkIGJ5IGJyaW5naW5nIHRvZ2V0aGVyIGxpdHRsZSBzZW50ZW5jZXMgZnJvbSB0aGUgDQp1dHRlcmFuY2VzIG9mIHRoaXMgb25le1smKiZdfSBvZiBoaXMgZHJhbWF0aXMganBlcnNvbmNlIGFuZCBvZiANCnRoYXQuIEJ5IHN1Y2ggYSBtZXRob2QgaGUgbWlnaHQgYmUgcHJvdmV7WyYqJl19ZCAoYXMgQmlyY2ggDQp0cmllZCB0byBwcm92ZSBTaGFrc3BlcmUpIGFuIGF0aGVpc3QuXiBUaGUgZmFpdGggYnkgDQoNCiogXCIgSW57WyYqJl19cXVpcnkgaW50byB0aGUgUGhpbG9zb3BoeSBhbmQgUmVVZ2lvbiBvZiBTaGFrZXNwZWFyZSxcIiAxODQ4LiANCg0KVGhpcyBpcyBhbHN7WyYqJl19byB0b28gbXVjaCB0aGUgbWV0aG9kIChsZWFkaW5nLCBob3dldmVyLCB0byBhIHZlcnkgZGlmZmVyZW50IA0KDQpyZXN1bHQpIG9mIHtbJiomXX1yaWF0aGUgaW4gdGhlIGxhYm9yaW91cyBjaGFwdGVyIFwiIERpZSBBbnNjaGF1dW5nZW4gU2hha3NwZWFyZV5zIA0KDQpqaWJlciBzZXtbJiomXX1pbiBTZWxic3QsIGV0Yy4sXCIgd2hpY2ggb3BlbnMgdGhlIGZpcnN0IHZvbHVtZSBvZiBcIlNoYWtzcGVhcmUgaW4gDQoNCjMgDQoNCjN7WyYqJl19NCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQp3aGljaCBTaGFrc3BlcmUgbGl2ZWQgaXMgcmF0aGVyIHRvIGJlIHtbJiomXX1kaXNjb3ZlcmVkIGJ5IA0Kbm90aW5nIHRoZSB0b3RhbCBpc3N1ZSBhbmQgcmVzdWx0YW50IG9mIGhpcyBhcnQgdG93YXJkcyB0aGUge1smKiZdfQ0KZm9zdGVyaW5nIGFuZCBzdXN0ZW5hbmNlIG9mIGEgY2VydGFpbiB0eXBlIG9mIGh1bWFuIA0KY2hhcmFjdGVyLiBJdCBtYXkgYmV7WyYqJl19IGFzc2VydGVkLCB3aXRob3V0IGhlc2l0YXRpb24sIHRoYXQgDQp0aGUgUHJvdGVzdGFudCB0eXBlIG9mIGNoYXJhY3RlciwgYW5kIHtbJiomXX10aGUgUHJvdGVzdGFudCBwb2xpLSANCnR5IGluIHN0YXRlIGFuZCBuYXRpb24sIGlzIHRoYXQgd2hpY2ggaGFzIHJlY2VpdmVkIGlte1smKiZdfXB1bHNlIA0KYW5kIHZpZ29yIGZyb20gdGhlIG1pbmQgb2YgdGhlIGdyZWF0ZXN0IG9mIEVuZ2xpc2ggcG9ldHMuIA0KRW5lcmd5LCB7WyYqJl19ZGV2b3Rpb24gdG8gdGhlIGZhY3QsIHNlbGYtZ292ZXJubWVudCwgdG9sZXJhbmNlLCANCmEgZGlzYmVsaWVmIGluIG1pbnV0ZSBhcHtbJiomXX1wYXJhdHVzIGZvciB0aGUgaW1wcm92ZW1lbnQgb2YgDQpodW1hbiBjaGFyYWN0ZXIsIGFuIGluZGlmZmVyZW5jZSB0byBleHRlcm5he1smKiZdfWxzIGluIGNvbXBhcmktIA0Kc29uIHdpdGggdGhhdCB3aGljaCBpcyBvZiB0aGUgaW52aXNpYmxlIGxpZmUsIGFuZCBhIHJlc29sdS17WyYqJl19IA0KdGlvbiB0byBqdWRnZSBhbGwgdGhpbmdzIGZyb20gYSBwdXJlbHkgaHVtYW4gc3RhbmRwb2ludCDigJQgDQp0aGVzZSBncm93IHtbJiomXX11cG9uIHVzIGFzIGhhYml0cyBvZiB0aG91Z2h0IGFuZCBmZWVsaW5nLCBhcyANCmxvbmcgYXMgU2hha3NwZXJlIHJlbWFpbnMgYW4ge1smKiZdfWluZmx1ZW5jZSB3aXRoIHVzIGluIHRoZSANCmJ1aWxkaW5nLXVwIG9mIGNoYXJhY3Rlci4gU3VjaCBoYWJpdHMgb2YgdGhvdWdodCB7WyYqJl19YW5kIA0KZmVlbGluZyBhcmUgdGhvc2Ugd2hpY2ggYmVsb25nIG1vcmUgZXNwZWNpYWxseSB0byB0aGUgDQpQcm90ZXN0YW50IGlkZXtbJiomXX1hbCBvZiBtYW5ob29kLlwiXiANCg0KSXMgU2hha3NwZXJlIGEgcmVsaWdpb3VzIHBvZXQgPyBBbiBhbnN3ZXIgaGFzIGJlZW4gDQpnaXtbJiomXX12ZW4gdG8gdGhpcyBxdWVzdGlvbiBieSBNci4gV2FsdGVyIEJhZ2Vob3QsIHdoaWNoIGNvbi0gDQp0YWlucyB0aGUgZXNzZW50aWFse1smKiZdfSB0cnV0aCA6IFwiIElmIHRoaXMgd29ybGQgaXMgbm90IGFsbCBldmlsLCANCmhlIHdobyBoYXMgdW5kZXJzdG9vZCBhbmQgcGFpbnRle1smKiZdfWQgaXQgYmVzdCBtdXN0IHByb2JhYmx5IA0KaGF2ZSBzb21lIGdvb2QuIElmIHRoZSB1bmRlcmx5aW5nIGFuZCBhbG1pZ2h0eSBlc3N7WyYqJl19ZW5jZSANCm9mIHRoaXMgd29ybGQgYmUgZ29vZCwgdGhlbiBpdCBpcyBsaWtlbHkgdGhhdCB0aGUgd3JpdGVyIA0Kd2hvIG1vc3QgZHtbJiomXX1lZXBseSBhcHByb2FjaGVkIHRvIHRoYXQgZXNzZW5jZSB3aWxsIGJlIGhpbS0gDQoNCnNlaW5lciBXaXJrbGljaGtlaXQuXCIgT24gdHtbJiomXX1oaXMgc3ViamVjdCwgc2VlIFZlaHNlXCdzIGJvb2sgYWxyZWFkeSByZWZlcnJlZCANCnRvOyB0aGUgbGFzdCBvZiBLcmV5c3NpZ1wncyB7WyYqJl19bGVjdHVyZXMgaW4gaGlzIHNtYWxsZXIgd29yaywgXCIgU2hha2VzcGVhcmUtIA0KRnJhZ2VuO1wiIGFuZCBSdW1lbGluLCBcIiBTaGFrZXtbJiomXX1zcGVhcmUtU3R1ZGllbixcIiBwcC4gMjA3LTIxNSAoc2Vjb25kIGVkaXRpb24pLiANCiogU2VlIG9uIHRoaXMgc3ViamVjdCB0aGUgYXtbJiomXX1ibGUgcmVwbHkgdG8gUmlvIGJ5IE1pY2hhZWwgQmVybmF5cywgaW4gXCIgSmFoci0gDQpidWNoIGRlciBkZXV0c2NoZW4gU2hha2VzcHtbJiomXX1lYXJlIC0gR2VzZWxsc2NoYWZ0LFwiIHZvbC4gaS4sIHBwLiAyMjAtMjk5LiBBIA0KbWludXRlIGJ1dCBwZXJoYXBzIHNpZ25pZmljYXtbJiomXX1udCBwaWVjZSBvZiBldmlkZW5jZSBoYXMgYmVlbiBub3RpY2VkIHJlY2VudGx5IA0KYnkgSC4gdm9uIEZyaWVzZW4uIEluIFJvbWVve1smKiZdfSBhbmQgSnVsaWV0IChhY3QgaXYuLCBzYy4gMSkgd2UgcmVhZCwgXCIgT3Igc2hhbGwgSSANCmNvbWUgdG8geW91IGF0IGV2ZW5pbmcge1smKiZdfW1hc3MgP1wiIE5vIENhdGhvbGljLCBvYnNlcnZlcyBILiB2b24gRnJpZXNlbiwgDQpjb1xcaWxkIGhhdmUgc3Bva2VuIG9mICpcJyBldmV7WyYqJl19bmluZyBtYXNzIFwnKiAoICpcJyBBbHRlbmdsYW5kIHVuZCBXaWxsaWFtIFNoYWstIA0Kc3BlcmVcIiBbMThIXSwgcHAuIDI4NiwgMjg3KXtbJiomXX0uIFN0YXVudG9uIGhhZCBwcmV2aW91c2x5IG5vdGljZWQgdGhlIGRpZmZpY3VsdHkgDQpCdXQgc2VlIHRic2ogcGFwZXIgb24gdGhpe1smKiZdfXMgcGFzc2FnZSBieSB0aGUgbGF0ZSBNci4gUi4gU2ltcHNvbiwgaW4gVHJhbnMsIA0KTmV3IFNoLiAmYW1wOyBjLCAxODc2LTc2LiB7WyYqJl19DQoNClNoYWtzcGVyZSBhbmQgdGhlIEVsaXphYmV0aGFuIEFnZS4gMzUgDQoNCnNlbGYgZ29vZC4gVGhlcmUgaXMgYSByZWxpZ2lvbntbJiomXX0gb2Ygd2Vlay1kYXlzIGFzIHdlbGwgYXMgb2YgDQpTdW5kYXlzLCBhIHJlbGlnaW9uIG9mIFwnIGNha2VzIGFuZCBhbGUgXCcgYXMgd2V7WyYqJl19bGwgYXMgb2YgcGV3cyANCmFuZCBhbHRhci1jbG90aHMuIFRoaXMgRW5nbGFuZCBsYXkgYmVmb3JlIFNoYWtzcGVyZSBhcyANCml0IHtbJiomXX1saWVzIGJlZm9yZSB1cyBhbGwsIHdpdGggaXRzIGdyZWVuIGZpZWxkcywgYW5kIGl0cyBsb25nIA0KaGVkZ2Vyb3dzLCBhbmQgaXRze1smKiZdfSBtYW55IHRyZWVzLCBhbmQgaXRzIGdyZWF0IHRvd25zLCBhbmQgDQppdHMgZW5kbGVzcyBoYW1sZXRzLCBhbmQgaXRzIG1vdGxleSB7WyYqJl19c29jaWV0eSwgYW5kIGl0cyBsb25nIA0KaGlzdG9yeSwgYW5kIGl0cyBib2xkIGV4cGxvaXRzLCBhbmQgaXRzIGdhdGhlcmluZyBwb3tbJiomXX13ZXIgOyANCmFuZCBoZSBzYXcgdGhhdCB0aGV5IHdlcmUgZ29vZC4gVG8gaGltIHBlcmhhcHMgbW9yZSANCnRoYW4gdG8gYW55IG9ue1smKiZdfWUgZWxzZSBoYXMgaXQgYmVlbiBnaXZlbiB0byBzZWUgdGhhdCB0aGV5IA0Kd2VyZSBhIGdyZWF0IHVuaXR5LCBhIGdyZWF0IHJlbGl7WyYqJl19Z2lvdXMgb2JqZWN0IDsgdGhhdCBpZiB5b3UgDQpjb3VsZCBvbmx5IGRlc2NlbmQgdG8gdGhlIGlubmVyIGxpZmUsIHRvIHRoZSBkZXtbJiomXX1lcCB0aGluZ3MsIA0KdG8gdGhlIHNlY3JldCBwcmluY2lwbGVzIG9mIGl0cyBub2JsZSB2aWdvciwgdG8gdGhlIGVzc2VuY2UgDQpve1smKiZdfWYgY2hhcmFjdGVyLCAuLi4gd2UgbWlnaHQsIHNvIGZhciBhcyB3ZSBhcmUgY2FwYWJsZSBvZiANCnNvIGRvaW5nLCB1bmRlcnN0YW57WyYqJl19ZCB0aGUgbmF0dXJlIHdoaWNoIEdvZCBoYXMgbWFkZS4gDQpMZXQgdXMsIHRoZW4sIHRoaW5rIG9mIGhpbSwgbm90IGFzIGEgdGVhY3tbJiomXX1oZXIgb2YgZHJ5IGRvZ21hcyANCm9yIGEgc2F5ZXIgb2YgaGFyZCBzYXlpbmdzLCBidXQgYXMgDQoNClwnIEEgcHJpZXN0IHRvIHVzIHtbJiomXX1hVSANCk9mIHRoZSB3b25kZXIgYW5kIGJsb29tIG9mIHRoZSB3b3JsZCxcJyANCg0KYSB0ZWFjaGVyIG9mIHRoZSBoZWFydHMgb2YgbXtbJiomXX1lbiBhbmQgd29tZW4uXCIgXiANCg0KSXQgaXMgaW1wb3NzaWJsZSwgaG93ZXZlciwgdGhhdCB0aGUgc2l4dGVlbnRoIG9yIHRoZSANCntbJiomXX1zZXZlbnRlZW50aCBjZW50dXJ5IHNob3VsZCBzZXQgYSBsaW1pdCB0byB0aGUgbmluZXRlZW50aC4gDQpUaGUgdm95YWdpbmcgc3Bpe1smKiZdfXJpdCBvZiBtYW4gY2Fubm90IHJlbWFpbiB3aXRoaW4gdGhlIA0KZW5jbG9zdXJlIG9mIGFueSBvbmUgYWdlIG9yIGFueSBzaW5nbGV7WyYqJl19IG1pbmQuIFdlIG5lZWQgDQp0byBzdXBwbGVtZW50IHRoZSBub2JsZSBwb3NpdGl2aXNtIG9mIFNoYWtzcGVyZSB3aXRoIGFuIA0KZXtbJiomXX1sZW1lbnQgbm90IGVhc3kgdG8gZGVzY3JpYmUgb3IgZGVmaW5lLCBidXQgbm9uZSB0aGUgbGVzcyANCmFjdHVhbCwgd2hpY2ggdGhle1smKiZdfSBwcmVzZW50IGNlbnR1cnkgaGFzIGRlbWFuZGVkIGFzIGVzc2VuLSANCnRpYWwgdG8gaXRzIHNwaXJpdHVhbCBsaWZlIGFuZCB3ZWx7WyYqJl19bC1iZWluZywgYW5kIHdoaWNoIGl0cyBzcGlyLSANCml0dWFsIHRlYWNoZXJzIOKAlCBXb3Jkc3dvcnRoLCBDb2xlcmlkZ2UsIFNoZXtbJiomXX1sbGV5LCBOZXdtYW4sIA0KTWF1cmljZSwgQ2FybHlsZSwgQnJvd25pbmcsIFdoaXRtYW4gKGEgc3RyYW5nZSBhbmQgYXAtIA0KcGFye1smKiZdfWVudGx5IG1vdGxleSBhc3NlbWJsYWdlKSDigJQgaGF2ZSBzdXBwbGllZCBhbmQgYXJlIHN0aWxsIA0Kc3VwcGx5aW5nLiBUaGUgc2N7WyYqJl19aWVudGlmaWMgbW92ZW1lbnQgb2YgdGhlIHByZXNlbnQgY2VuLSANCnR1cnkgaXMgbm90IG1vcmUgdW5xdWVzdGlvbmFibHkgYSBmYXtbJiomXX1jdCB0aGFuIHRoaXMgaXMgYSBmYWN0LCANCg0KKiBcIiBFc3RpbWF0ZXMgb2Ygc29tZSBFbmdsaXNobWVuIGFuZCBTY290Y2htZW4sXCJ7WyYqJl19IGJ5IFdhbHRlciBCYWdlaG90LCANCnAuIDI3MC4gDQoNCl42IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCkluIHtbJiomXX10aGUgbWVhbnRpbWUsIHRvIGVudGVyIHdpdGggc3Ryb25nIGFuZCB1bmRpc3R1cmJlZCANCmNvbXByZWhlbnNpb24gaW50byBTaGFre1smKiZdfXNwZXJlLCBsZXQgdXMgZW5kZWF2b3IgdG8gaG9sZCANCm91cnNlbHZlcyBzdHJlbnVvdXNseSBhdCB0aGUgU2hha3NwZXJpYW4gc3R7WyYqJl19YW5kcG9pbnQsIGFuZCANCnZpZXcgdGhlIHVuaXZlcnNlIGZyb20gdGhlbmNlLiBXZSBzaGFsbCBhZnRlcndhcmRzIGdvIA0Kb3VyIHtbJiomXX13YXksIGFzIHNlZW1zIGJlc3QsIGJlYXJpbmcgd2l0aCB1cyBTaGFrc3BlcmVcJ3MgZ2lmdC4gDQpBbmQgU2hha3NwZXJlIGhhcyBub3tbJiomXX0gYmV0dGVyIGdpZnQgdG8gYmVzdG93IHRoYW4gdGhlIA0Kc3RyZW5ndGggYW5kIGNvdXJhZ2UgdG8gcHVyc3VlIG91ciBvd24gcGF0e1smKiZdfWgsIHRocm91Z2ggDQpwYWluIG9yIHRocm91Z2ggam95LCB3aXRoIHZpZ29yIGFuZCByZXNvbHV0aW9uLiANCg0KViANCg0KR3Jvd3R7WyYqJl19aCBvZiBTaGFrc3BlcmVzIE1pbmQgYW5kIEFydCAzNyANCg0KQ0hBUFRFSyBJSS4gDQoNClRIRSBHS09XVEggT0YgU0hBS1NQRVJlXCd7WyYqJl19cyBNSU5EIEFORCBBUlQuIA0KDQpJbiB0aGUgcHJlY2VkaW5nIGNoYXB0ZXIsIGEgYnJpZWYgYW5kIHBhcnRpYWwgc3R1ZHkgd2FzIHtbJiomXX0NCmF0dGVtcHRlZCBvZiBTaGFrc3BlcmUgdGhlIG1hbiBhbmQgU2hha3NwZXJlIHRoZSBhcnRpc3QsIA0KY29uc2lkZXJlZCBhcyBve1smKiZdfW5lIGVsZW1lbnQgaW4gdGhlIGdyZWF0IGludGVsbGVjdHVhbCBhbmQgDQpzcGlyaXR1YWwgbW92ZW1lbnQgb2YgdGhlIEVsaXphYmV7WyYqJl19dGhhbiBwZXJpb2QuIFRoZSBvci0gDQpnYW5pc20g4oCUIGEgZHJhbWF0aWMgcG9ldCDigJQgd2UgZW5kZWF2b3JlZCB0byB2aWV3IHtbJiomXX1pbiANCmNvbm5lY3Rpb24gd2l0aCBpdHMgZW52aXJvbm1lbnQuIE5vdyB3ZSBwcm9jZWVkIHRvIA0Kb2JzZXJ2ZSwgaW4gc29tZSBme1smKiZdfWV3IG9mIGl0cyBzdGFnZXMgb2YgcHJvZ3Jlc3MsIHRoZSBncm93dGggDQpvZiB0aGF0IG9yZ2FuaXNtLiBTaGFrc3BlcmUgaW4gMTV7WyYqJl19OTAsIFNoYWtzcGVyZSBpbiAxNjAwLCANCmFuZCBTaGFrc3BlcmUgaW4gMTYxMCB3YXMgb25lIGFuZCB0aGUgc2FtZSBsaXZpbmcgZXtbJiomXX1uLSANCnRpdHkgOyBidXQgdGhlIGFkb2xlc2NlbnQgU2hha3NwZXJlIGRpZmZlcmVkIGZyb20gdGhlIA0KYWR1bHQsIGFuZCBhZ2Fpe1smKiZdfW4gZnJvbSBTaGFrc3BlcmUgaW4gdGhlIHN1cHJlbWFjeSBvZiBoaXMgDQpyaXBlbmVkIG1hbmhvb2QsIGFzIG11Y2ggYXMgdGhlIHN7WyYqJl19bGVuZGVyIHN0ZW0sIGdyYWNlZnVsIA0KYW5kIHBsaWFudCwgc3ByZWFkaW5nIGl0cyBmaXJzdCBsZWF2ZXMgdG8gdGhlIHN1bnNoaXtbJiomXX1uZSBvZiANCk1heSwgZGlmZmVycyBmcm9tIHRoZSBtb3ZpbmcgZXhwYW5zZSBvZiBncmVlbmVyeSB2aXNpYmxlIA0KYSBjZW50dXJ5e1smKiZdfSBsYXRlciwgd2hpY2ggaXMgaGFyZCB0byBjb21wcmVoZW5kIGFuZCBwcm9iZSANCndpdGggdGhlIGV5ZSBpbiBpdHMgaW5maW5pdGV7WyYqJl19IGRldGFpbHMsIG11bHRpdHVkaW5vdXMgYW5kIHlldCANCm9uZSA7IHJlY2VpdmluZyB0aHJvdWdoIGl0cyBzZW5zaXRpdmUgc3VyZntbJiomXX1hY2VzIHRoZSBnaWZ0cyBvZiANCmxpZ2h0IGFuZCBkZXcsIG9mIG5vb25kYXkgYW5kIG9mIG5pZ2h0IDsgZ3Jhc3BpbmcgdGhlIA0Ke1smKiZdfWVhcnRoIHdpdGggaW5leHRyaWNhYmxlIGxpdmluZyBrbm90cyA7IG5vdCB1bnBvc3Nlc3NlZCBvZiANCmhhdW50cyBvZiBzaGFkb3d7WyYqJl19IGFuZCBzZWNyZWN5IDsgaW5zdGluY3Qgd2l0aCBhbXBsZSBteXMtIA0KdGVyaW91cyBtdXJtdXJzIOKAlCB0aGUgdHJlZSB3aGljaHtbJiomXX0gaGFzIGEgaGlzdG9yeSwgYW5kIGJlYXJzLCANCmluIHdyaW5rbGVkIGJhcmsgYW5kIHdyZW5jaGVkIGJvdWdoLCBtZW1vcmlhbHMge1smKiZdfW9mIHRpbWUgDQphbmQgY2hhbmdlLCBvZiBoYXJkc2hpcCBhbmQgZHJvdWdodCBhbmQgc3Rvcm0uIFRoZSANCnBvZXQgR3JheSwgaW57WyYqJl19IGEgd2VsbC1rbm93biBwYXNzYWdlLCBpbnZlbnRlZCBhIHBpZWNlIG9mIA0KYmVhdXRpZnVsIG15dGhvbG9neSwgYWNjb3JkaW5nIHtbJiomXX10byB3aGljaCB0aGUgaW5mYW50IFNoYWstIA0Kc3BlcmUgaXMgcmVwcmVzZW50ZWQgYXMgcmVjZWl2aW5nIGdpZnRzIGZyb20gdGhle1smKiZdfSBncmVhdCBEaXMtIA0KcGVuc2F0cmVzcyA6IA0KDQozOCBTaGFrc3BlcmXigJRIaXMgTWluZCBhbmQgQXJ0LiANCg0K4oCiKiBGYXJ7WyYqJl19IGZyb20gdGhlIHN1biBhbmQgc3VtbWVyIGdhbGUsIA0KSW4gdGh5IGdyZWVuIGxhcCB3YXMgTmF0dXJlXCdzIGRhcmxpbmcgbGFpZCx7WyYqJl19IA0KV2hhdCB0aW1lLCB3aGVyZSBsdWNpZCBBdm9uIHN0cmF5TSwgDQpUbyBoaW0gdGhlIG1pZ2h0eSBNb3RoZXIgZGlkIHVudmVpbHtbJiomXX0gDQpIZXIgYXdmdWwgZmFjZSA7IHRoZSBkYXVudGxlc3MgQ2hpbGQgDQpTdHJldGNoTSBmb3J0aCBoaXMgbGl0dGxlIGFybXMgYW5ke1smKiZdfSBzbWlsZWQgOyANClRoaXMgcGVuY2lsIHRha2UsIHNoZSBzYWlkLCB3aG9zZSBjb2xvcnMgY2xlYXIgDQpSaWNobHkgcGFpbnQgdGh7WyYqJl19ZSB2ZXJuYWwgeWVhciA7IA0KVGhpbmUgdG9vIHRoZXNlIGdvbGRlbiBrZXlzLCBpbW1vcnRhbCBCb3kgISANClRoaXMgY2FuIHVubHtbJiomXX1vY2sgdGhlIGdhdGVzIG9mIEpveSwgDQpPZiBIb3Jyb3IgdGhhdCwgYW5kIHRocmlsbGluZyBGZWFycywgDQpPciBvcGUgdGhlIHNhe1smKiZdfWNyZWQgZm91bnQgb2Ygc3ltcGF0aGV0aWMgVGVhcnMuXCIgDQoNCkJ1dCB0aGUgbWlnaHR5IE1vdGhlciwgbW9yZSBzdHVkaW91cyBve1smKiZdfWYgdGhlIHdlbGZhcmUgDQpvZiBoZXIgY2hhcmdlLCBpbiBmYWN0IGdhdmUgaGVyIGdpZnRzIG9ubHkgYXMgdGhleSBjb3VsZCANCmJ7WyYqJl19ZSB1c2VkLiBUaG9zZSBrZXlzIHNoZSBkaWQgbm90IGludHJ1c3QgdG8gU2hha3NwZXJlIA0KdW50aWwsIGJ5IG1hbmlmb2xkIGV4cHtbJiomXX1lcmllbmNlLCBieSBjb25zb2xpZGF0aW5nIG9mIGludGVsLSANCmxlY3QsIGltYWdpbmF0aW9uLCBhbmQgcGFzc2lvbnMsIGFuZCBie1smKiZdfXkgdGhlIGdyb3d0aCBvZiANCnNlbGYtY29udHJvbCwgaGUgaGFkIGJlY29tZSBmaXR0ZWQgdG8gY29uZnJvbnQgdGhlIGRyZWFkLSB7WyYqJl19DQpmdWwsIGFjdHVhbCBwcmVzZW5jZXMgb2YgaHVtYW4gYW5ndWlzaCBhbmQgb2YgaHVtYW4gDQoNCmpveS4gDQoNCkV2ZXJ5dGhpbntbJiomXX1nIHRha2VzIHVwIGl0cyBwbGFjZSBtb3JlIHJpZ2h0bHkgaW4gYSBzcGEtIA0KY2lvdXMgd29ybGQsIGFjY3VyYXRlbHkgb2JzZXJ2e1smKiZdfWVkLCB0aGFuIGluIHRoZSBuYXJyb3cgDQp3b3JsZCBvZiB0aGUgbWVyZSBpZGVhbGlzdC4gSW4gYmFyZSBhY3F1aXNpdGlvbiBvZiB7WyYqJl19b2ItIA0Kc2VydmVkIGZhY3QsIFNoYWtzcGVyZSBtYXJ2ZWxsb3VzbHkgaW5jcmVhc2VkIGZyb20geWVhciANCnRvIHllYXIuIEhlIHtbJiomXX1ncmV3IGluIHdpc2RvbSBhbmQgaW4ga25vd2xlZGdlIChzdWNoIGFuIA0KYWRtaXNzaW9uIGRvZXMgbm90IHdyb25nIHRoZSBkaXZpe1smKiZdfW5pdHkgb2YgZ2VuaXVzKSwgbm90IGxlc3MsIA0KYnV0IG1vcmUsIHRoYW4gb3RoZXIgbWVuLiBRdWl0ZSBhIGxpdHRsZSBsaWJyYXJ7WyYqJl19eSBleGlzdHMgDQppbGx1c3RyYXRpbmcgdGhlIG1pbnV0ZSBhY3F1YWludGFuY2Ugb2YgU2hha3NwZXJlIHdpdGggDQp0aGlzIGJyYXtbJiomXX1uY2ggb2YgaW5mb3JtYXRpb24gYW5kIHdpdGggdGhhdCA6IFwiIFRoZSBMZWdhbCANCkFjcXVpcmVtZW50cyBvZiBTaGFrc3BlcmUsXCJ7WyYqJl19IFwiIFNoYWtzcGVyZVwncyBLbm93bGVkZ2UgDQphbmQgVXNlIG9mIHRoZSBCaWJsZSxcIiBcIiBTaGFrc3BlcmVcJ3MgRGVsaW5lYXRpb25ze1smKiZdfSBvZiBJbi0gDQpzYW5pdHksXCIgXCIgVGhlIEt1cmFsIExpZmUgb2YgU2hha3NwZXJlLFwiIFwiIFNoYWtzcGVyZVwncyANCkdhcmRlbixcIiB7WyYqJl19XCIgVGhlIE9ybml0aG9sb2d5IG9mIFNoYWtzcGVyZSxcIiBcIiBUaGUgSW4tIA0Kc2VjdHMgTWVudGlvbmVkIGJ5IFNoYWtzcGVyZSxcIiB7WyYqJl19YW5kIHN1Y2ggbGlrZS4gQ29uamVjdC0gDQp1cmFsIGlucXVpcnksIHdoaWNoIGF0dGVtcHRzIHRvIGRldGVybWluZSBcXF5oZXRoZXJ7WyYqJl19IFNoYWstIA0Kc3BlcmUgd2FzIGFuIGF0dG9ybmV5XCdzIGNsZXJrLCBvciB3aGV0aGVyIGhlIHdhcyBhIHNvbGRpZXIgOyANCndoZXR7WyYqJl19aGVyIFNoYWtzcGVyZSB3YXMgZXZlciBpbiBJdGFseSwgb3Igd2hldGhlciBoZSB3YXMgDQoNCkdyb3d0aCBvZiBTaGFrc3BlcmVzIHtbJiomXX1NaW5kIGFuZCBBcnQgMzkgDQoNCmluIEdlcm1hbnksIG9yIHdoZXRoZXIgaGUgd2FzIGluIFNjb3RsYW5kIOKAlCBpbnF1aXJ5IHN1e1smKiZdfWNoIA0KYXMgdGhpcyBtYXkgbGVhZCB0byBubyB2ZXJ5IGNlcnRhaW4gcmVzdWx0IHdpdGggcmVzcGVjdCB0byANCnRoZSBwYXJ0aWN7WyYqJl19dWxhciBtYXR0ZXIgaW4gcXVlc3Rpb24uIEJ1dCBvbmUgdGhpbmcgd2hpY2ggDQpzdWNoIHNwZWNpYWwgY3JpdGljYWwgc3R1ZGllc3tbJiomXX0gYXMgdGhlc2UgZXN0YWJsaXNoIGlzIHRoZSBlbm9yLSANCm1vdXMgcmVjZXB0aXZpdHkgb2YgdGhlIHBvZXQuIFRoaXMgdmFzdCBhe1smKiZdfW5kIHZhcmllZCBtYXNzIA0Kb2YgaW5mb3JtYXRpb24gaGUgYXNzaW1pbGF0ZWQgYW5kIG1hZGUgaGlzIG93bi4gQW5kIA0Kc3VjaCB7WyYqJl19c3RvcmUgb2YgaW5mb3JtYXRpb24gY2FtZSB0byBTaGFrc3BlcmUgb25seSwgYnkgdGhlIA0Kd2F5LCBhcyBhbiBhZGRpdGlvbiB0b3tbJiomXX0gdGhlIG1vcmUgaW1wb3J0YW50IHBvc3Nlc3Npb24gb2YgDQprbm93bGVkZ2UgYWJvdXQgaHVtYW4gY2hhcmFjdGVyIGFuZCBodW1he1smKiZdfW4gbGlmZSB3aGljaCANCmZvcm1zIHRoZSBwcm9wZXIgYm9keSBvZiBmYWN0IG5lZWRmdWwgZm9yIGRyYW1hdGljIGFydC4gDQpJbiB7WyYqJl19cHJvcG9ydGlvbiBhcyBhbiBhbmltYWwgaXMgb2YgZ3JlYXQgc2l6ZSwgdGhlIG1hc3NlcyBvZiANCm51dHJpbWVudCB3aGljaCBoZXtbJiomXX0gcHJvY3VyZXMgYXJlIGxhcmdlLiBcIiBUaGUgYXJjdGljIA0Kd2hhbGUgZ3VscHMgaW4gd2hvbGUgc2hvYWxzIG9mIGFjYWxlcGhhZXtbJiomXX0gYW5kIG1vbGx1c2tzLlwiIA0KDQpCdXQgaXQgd15hcyBub3QgYWxvbmUgb3IgY2hpZWZseSB0aHJvdWdoIG1hc3Mgb2YgYWNxdWlzaXtbJiomXX0tIA0KdGlvbiB0aGF0IFNoYWtzcGVyZSBiZWNhbWUgZ3JlYXQuIEhlIHdeYXMgbm90IG1lcmVseSBhIA0KY2VudHJlIGZvciB0aGUge1smKiZdfWRyaWZ0aW5nIGNhcGl0YWwgb2Yga25vd2xlZGdlLiBFYWNoIGZhY3VsdHkgDQpleHBhbmRlZCBhbmQgYmVjYW1lIG1vcmUgZW5lcmd7WyYqJl19ZXRpYywgd2hpbGUsIGF0IHRoZSBzYW1lIA0KdGltZSwgdGhlIHN0cnVjdHVyYWwgYXJyYW5nZW1lbnQgb2YgdGhlIG1hblwncyB3aG97WyYqJl19bGUgbmF0LSANCnVyZSBiZWNhbWUgbW9yZSBjb21wbGV4IGFuZCBpbnZvbHZlZC4gSGlzIHBvd2RlciBvZiANCnRob3VnaHQgaW5jcntbJiomXX1lYXNlZCBzdGVhZGlseSBhcyB5ZWFycyB3ZW50IGJ5LCBib3RoIGluIHN1cmUgDQpncmFzcCBvZiB0aGUga25vd15uIGFuZCBpbiBie1smKiZdfXJvb2RpbmcgaW50ZW5zaXR5IG9mIGdhemUgDQp1cG9uIHRoZSB1bmtub3duLiBIaXMgZW1vdGlvbnMsIGluc3RlYWQgb2YgbG9zaW57WyYqJl19ZyANCnRoZWlyIGVuZXJneSBhbmQgc3VidGxldHkgYXMgeW91dGggZGVlcGVuZWQgaW50byBtYW4tIA0KaG9vZCwgaW5zdGVhZCBvZntbJiomXX0gYmVjb21pbmcgZHVsbGVkIGFuZCBjcnVzdGVkIG92ZXIgYnkgDQpjb250YWN0IHdpdGggdGhlIHdvcmxkLCBiZWNhbWUgKGFzIGlze1smKiZdfSB0aGUgY2FzZSB3Xml0aCBhbGwgDQp0aGUgZ3JlYXRlc3QgbWVuIGFuZCB3b21lbiksIGJ5IGNvbnRhY3Qgd2l0aCB0aGUgd29ybGR7WyYqJl19LCANCnN3aWZ0ZXIgYW5kIG9mIG1vcmUgYW1wbGUgdm9sdW1lLiBBcyBTaGFrc3BlcmUgcGVuZS0gDQp0cmF0ZWQgZnVydGhlciBhbntbJiomXX1kIGZ1cnRoZXIgaW50byB0aGUgYWN0dWFsIGZhY3RzIG9mIG91ciBsaWZlLCANCmhlIGZvdW5kIGluIHRob3NlIGZhY3RzIG1vcmUge1smKiZdfXRvIHJvdXNlIGFuZCBraW5kbGUgYW5kIHN1cy0gDQp0YWluIHRoZSBoZWFydCA7IGhlIGRpc2NvdmVyZWQgbW9yZSBhd2Z1bCBhbmR7WyYqJl19IG15c3RlcmlvdXMgDQpkYXJrbmVzcywgYW5kIGFsc28gbW9yZSBpbnRlbnNlIGFuZCBsb3ZlbGllciBsaWdodC4gQW5kIA0KaXQgaXtbJiomXX1zIGNsZWFybHkgYXNjZXJ0YWluYWJsZSBmcm9tIGhpcyBwbGF5cyBhbmQgcG9lbXMgdGhhdCANClNoYWtzcGVyZVwncyB3aWxsIGdyZXtbJiomXX13LCB3aXRoIGFkdmFuY2luZyBhZ2UsIGJleW9uZCBtZWFzLSANCnVyZSBjYWxtZXIgYW5kIG1vcmUgc3Ryb25nLiBFYWNoIGZvcm1pe1smKiZdfWRhYmxlIHRlbXB0YS0gDQp0aW9uIGhlIHN1Y2NlZWRlZCwgYmVmb3JlIGhlIHdhcyBkb25lIHdpdGggaXQsIGluIHN1YmR1LSANCg17WyYqJl19CjQwIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydCANCg0KaW5nLCBhdCBsZWFzdCBzbyBmYXIgYXMgdG8gcHJlY2x1ZGUgYXtbJiomXX0gZmF0YWwgcmVzdWx0LiBJbiB0aGUgDQplbmQgaGUgb2J0YWluZWQgc2VyZW5lIGFuZCBpbmRlZmVhc2libGUgcG9zc2Vzc2lvbiBve1smKiZdfWYgDQpoaW1zZWxmLiBIZSBzdGlsbCByZW1haW5lZCwgaW5kZWVkLCBiYWZmbGVkIGJlZm9yZSB0aGUgDQpteXN0ZXJ5IG9mIGxpZmV7WyYqJl19IGFuZCBkZWF0aCA7IGJ1dCBoZSBoYWQgZ2FpbmVkIHZpZ29yIHRvIA0KY29wZSB3aXRoIGZhdGUgOyBoZSBjb3VsZCBcIiBhY2NlcHR7WyYqJl19IGFsbCB0aGluZ3Mgbm90IHVuZGVyLSANCnN0b29kLlwiIEFuZCBkdXJpbmcgdGhlc2UgeWVhcnMsIHdoaWxlIGVhY2ggZmFjdWx0eSB7WyYqJl19d2FzIA0KYXVnbWVudGluZyBpdHMgcHJvcGVyIGxpZmUsIHRoZSB2aXRhbCBwbGF5IG9mIG9uZSBmYWN1bHR5IA0KaW50byBhbmQgdHtbJiomXX1ocm91Z2ggdGhlIG90aGVyIGJlY2FtZSBtb3JlIHN3aWZ0LCBzdWJ0bGUsIA0KYW5kIHBlbmV0cmF0aW5nLiBJbiBTaGFrc3BlcmVcJ3tbJiomXX1zIGVhcmxpZXIgd3JpdGluZ3MsIHdlIGNhbiANCm9ic2VydmUgaGltIHNldHRpbmcgaGlzIHdpdCB0byB3b3JrIG9yIGhpcyBmYW5je1smKiZdfXkgdG8gd29yazsgDQpub3cgaGUgaXMgY2xldmVyIGFuZCBpbnRlbGxlY3R1YWwsIGFuZCBhZ2FpbiBoZSBpcyB0ZW5kZXIgDQphbmR7WyYqJl19IGVudGh1c2lhc3RpYy4gQnV0IGluIGhpcyBsYXRlciBzdHlsZSwgaW1hZ2luYXRpb24gYW5kIA0KdGhvdWdodCwgd2lzZG9tIGFuZHtbJiomXX0gbWlydGggYW5kIGNoYXJpdHksIGV4cGVyaWVuY2UgYW5kIA0Kc3VybWlzZSwgcGxheSBpbnRvIGFuZCB0aHJvdWdoIG9uZSBhbm90e1smKiZdfWhlciwgdW50aWwgZnJlLSANCnF1ZW50bHkgdGhlIHNpZ25pZmljYW5jZSBvZiBhIHBhc3NhZ2UgYmVjb21lcyBvYnNjdXJlZCANCmJ7WyYqJl19eSBpdHMgbWFuaWZvbGQgdml0YWxpdHkuIFRoZSBtdXJtdXIgb2YgYW4gZW1icnlvIA0KdGhvdWdodCBvciBmZWVsaW5nIGFscmVhZHtbJiomXX15IG9ic2N1cmVseSBtaW5nbGVzIHdpdGggdGhlIA0KbXVybXVycyBvZiB0aGUgcGFyZW50IGxpZmUgaW4gd2hpY2ggaXQgaXMgZW52e1smKiZdfWVsb3BlZC5eIA0KDQpOb3csIHdoYXQgZG9lcyBleHRyYW9yZGluYXJ5IGdyb3d0aCBpbXBseSA/IGYgSXQgDQppbXBsaWVzIGNhcGF7WyYqJl19Y2l0eSBmb3Igb2J0YWluaW5nIHRoZSBtYXRlcmlhbHMgb2YgZ3Jvd3RoIDsgDQppbiB0aGlzIGNhc2UgbWF0ZXJpYWxzIGZvciB0aHtbJiomXX1lIGdyb3d0aCBvZiBpbnRlbGxlY3QsIG9mIGltLSANCmFnaW5hdGlvbiwgb2YgdGhlIHdpbGwsIG9mIHRoZSBlbW90aW9ucy4gSXQge1smKiZdfW1lYW5zLCB0aGVyZS0gDQpmb3JlLCBjYXBhY2l0eSBvZiBzZWVpbmcgbWFueSBmYWN0cywgb2YgbWVkaXRhdGluZywgb2YgZmVlbC17WyYqJl19IA0KaW5nIGRlZXBseSwgYW5kIG9mIGNvbnRyb2xsaW5nIHN1Y2ggZmVlbGluZy4gSXQgaW1wbGllcyANCnRoZSBhdm9pZGFuY2Ugb3tbJiomXX1mIGluanVyaWVzIHdoaWNoIGludGVyZmVyZSB3aXRoIGdyb3d0aCwgDQplc2NhcGUgZnJvbSBlbmVtaWVzIHdoaWNoIGJyaW5nIGxpe1smKiZdfWZlIHRvIGEgc3VkZGVuIGVuZCwgDQphbmQgdGhlcmVmb3JlIHN0cmVuZ3RoIGFuZCBza2lsbCBhbmQgcHJ1ZGVuY2UgaW4gZGVhbGl7WyYqJl19bmcgDQp3aXRoIHRoZSB3b3JsZC4gSXQgaW1wbGllcyBhIHBvd2VyIGluIHRoZSBvcmdhbmlzbSBvZiANCmZpdHRpbmcgaXRzIG1vdntbJiomXX1lbWVudHMgdG8gbWVldCBudW1lcm91cyBleHRlcm5hbCBjb2V4LSANCg0KKiBTZWUgdGhlIHZhbHVhYmxlIGNyaXRpY2lzbSBvZiBTe1smKiZdfWhha3NwZXJlXCdzIHN0eWxlIGFzIGNvbnRyYXN0ZWQgd2l0aCANCkZsZXRjaGVyXCdzIGluIFwiIEEgTGV0dGVyIG9uIFNoYWtzcGVyZVwne1smKiZdfXMgQXV0aG9yc2hpcCBvZiBUaGUgVHdvIE5vYmxlIEtpbnMtIA0KbWVuXCIgKDE4MzMpLCBieSBNci4gU3BhbGRpbmcsIHBwLiAxMy0xe1smKiZdfTguIFRoZSBjcml0aWNpc20gYXBwbGllcyB3aXRoIA0Kc3BlY2lhbCBwcm9wcmlldHkgdG8gU2hha3NwZXJlXCdzIGxhdGVyIHN0eWxle1smKiZdfS4gDQoNCnQgSW4gbXkgYW5zd2VyIHRvIHRoaXMgcXVlc3Rpb24sIEkgYm9ycm93IHNldmVyYWwgZXhwcmVzc2lvbnMgZnJvbSBIZXJ7WyYqJl19LSANCmJlcnQgU3BlbmNlclwncyBcIiBCaW9sb2d5LlwiIA0KDQpHcm93dGggb2YgU2hha3NwZXJlIHMgTWluZCBhbmQgQXJ0IDQxIA0KDXtbJiomXX0KaXN0ZW5jZXMgYW5kIHNlcXVlbmNlcy4gSW4gYSB3b3JkLCB3ZSBhcmUgYnJvdWdodCBiYWNrIA0Kb25jZSBhZ2FpbiB0byBTaGFre1smKiZdfXNwZXJlXCdzIHJlc29sdXRlIGZpZGVsaXR5IHRvIHRoZSBmYWN0LiANCkJ5IHZpcnR1ZSBvZiB0aGlzIGhpcyBsaWZlIGJlY2FtZSBhe1smKiZdfSBzdWNjZXNzLCBhcyBmYXIgYXMgc3VjLSANCmNlc3MgaXMgcGVybWl0dGVkIHRvIHN1Y2ggYSBjcmVhdHVyZSBhcyBtYW4gaW4gc3V7WyYqJl19Y2ggYSANCndvcmxkIGFzIHRoZSBwcmVzZW50LiANCg0KSXQgc2VlbXMgbXVjaCB0aGF0IHRoZSBuZWVkeSB5b3V0aCB3aG8gbGVmdHtbJiomXX0gaGlzIG5hLSANCnRpdmUgdG93biBwcm9iYWJseSB1bmRlciBwcmVzc3VyZSBvZiBwb3ZlcnR5IHNob3VsZCwgYXQgDQp0aGUgYWdle1smKiZdfSBvZiB0aGlydHktdGhyZWUsIGhhdmUgYmVjb21lIHBvc3Nlc3NvciBvZiBOZXcgDQpQbGFjZSBhdCBTdHJhdGZvcmQsIGFuZCBmcm97WyYqJl19bSB5ZWFyIHRvIHllYXIgaGF2ZSBhZGRlZCB0byANCmhpcyB3b3JsZGx5IGRpZ25pdHkgYW5kIHdlYWx0aC4gU3VjaCBtYXRlcmlhbHtbJiomXX0gYWR2YW5jZS0gDQptZW50IGFyZ3VlcyBhIHBvd2VyIG9mIHVuZGVyc3RhbmRpbmcsIGFuZCBhZGFwdGluZyBvbmVcJ3MgDQpzZWxmIHtbJiomXX10bywgdGhlIGZhY3RzIG9mIHRoZSBtYXRlcmlhbCB3b3JsZC4gQnV0IHRoYXQgd2FzIG5vdCANCnRoZSBjaGllZiBzdWNjZXNzIGlue1smKiZdfSB0aGUgbGlmZSBvZiBTaGFrc3BlcmUuIFdoZW4gV29yZHMtIA0Kd29ydGggdGhvdWdodCBvZiBcIiBtaWdodHkgcG9ldHMgaW4gdGhle1smKiZdfWlyIG1pc2VyeSBkZWFkIFwiIOKAlCANCndoZW4sIGluIHN1ZGRlbiBtb29kIG9mIGRlamVjdGlvbiwgaGUgbXVybXVyZWQgdG8gaGlte1smKiZdfS0gDQpzZWxmLCANCg0KKiogV2UgcG9ldHMgaW4gb3VyIHlvdXRoIGJlZ2luIGluIGdsYWRuZXNzIDsgDQpCdXQgdGhlcmVvZiBjb217WyYqJl19ZXMgaW4gdGhlIGVuZCBkZXNwb25kZW5jeSBhbmQgbWFkbmVzcyBcIiDigJQgDQoNCmhlIHRob3VnaHQgb2YgQ2hhdHRlcnRvbiBhbmR7WyYqJl19IG9mIEJ1cm5zLCBub3Qgb2YgU2hha3NwZXJlLiANClRoZSBlYXJseSBjb250ZW1wb3JhcmllcyBvZiBTaGFrc3BlcmUsIE1hcmxvd3tbJiomXX1eZSBhbmQgDQpHcmVlbmUg4oCUIG9uZSBvZiB0aGVtIGEgbWFuIG9mIHNwbGVuZGlkIGdlbml1cyDigJQgZmFpbGVkIGFzIA0KQ2hhe1smKiZdfXR0ZXJ0b24gZmFpbGVkLiBJdCBtdXN0IGhhdmUgYXBwZWFyZWQgdG8gU2hha3NwZXJlIA0KKHdobyB3ZWxsIGVub3VnaCB1bmRlcnN7WyYqJl19dG9vZCBob25lc3QgZnJvbGljKSBhIHBvb3IgYWZmYWlyLCANCmEgZmxpbXN5IGtpbmQgb2YgaWRlYWxpc20g4oCUIHRoaXMgcmVja3tbJiomXX1sZXNzIGtub2NraW5nIG9mIGEgDQptYW5cJ3MgaGVhZCBhZ2FpbnN0IHRoZSBzb2xpZCBsYXdzIG9mIHRoZSB1bml2ZXJzZS4gVGhlIHtbJiomXX0NCnByb3Rlc3QgYWdhaW5zdCBmYWN0LCBhZ2FpbnN0IG91ciBzdWJqZWN0aW9uIHRvIGxhdywgbWFkZSANCmJ5IHN1Y2ggbWVuIGFze1smKiZdfSBNYXJsb3dlIGFuZCBHcmVlbmUsIHdhcyBhIHZ1bGdhciBhbmQgDQpzdXBlcmZpY2lhbCBwcm90ZXN0LiBTaGFrc3BlcmUgY291bGR7WyYqJl19IGdldCBubyBkZWxpZ2h0IGZyb20gDQp0aGUgaW5zYW5pdHkgb2Ygc293aW5nIHdpbGQgb2F0cy4gSGlzIGluc2FuaXR5IHdhcyBvZntbJiomXX0gYSANCmZhciBncmF2ZXIgYW5kIG1vcmUgdGVycmlibGUga2luZC4gSXQgYXNzdW1lZCB0d28gZm9ybXMgDQrigJQgdGhlIFJvbWVve1smKiZdfSBmb3JtIGFuZCB0aGUgSGFtbGV0IGZvcm0g4oCUIGFiYW5kb25tZW50IA0KdG8gcGFzc2lvbiwgYWJhbmRvbm1lbnQgdG8gYnJvb2R7WyYqJl19aW5nIHRob3VnaHQg4oCUIHR3byBkaXMtIA0KZWFzZXMgb2YgeW91dGgsIGVhY2ggZmF0YWwgaW4gaXRzIG93biB3YXkgOyB0d28gZntbJiomXX1vcm1zIG9mIA0KdGhlIG9uZSBzdXByZW1lIGNyaW1lIGluIFNoYWtzcGVyZVwncyBleWVzLCB3YW50IG9mIGZpZGVsLSANCml0eSB0b3tbJiomXX0gdGhlIGZhY3QuIFRoZSBub2JsZSBwcmFjdGljYWwgZW5lcmd5IG9mIFNoYWtzcGVyZSANCg0KNDIgU2hha3NwZXJlIOKAlCBIaXMge1smKiZdfU1pbmQgYW5kIEFydCANCg0Kd2FzIHRlbXB0ZWQgdG8gc2VsZi1iZXRyYWphbCwgb24gdGhlIG9uZSBoYW5kLCBieSB0aGUgDQpzdXB7WyYqJl19cmVtYWN5IG9mIGJsaW5kIGRlc2lyZSA7IG9uIHRoZSBvdGhlciBoYW5kLCBieSB0aGUgDQpzYXBwaW5nLWluIG9mIHRob3VnaHQgdXtbJiomXX1wb24gdGhlIHdpbGwgYW5kIGFjdGl2ZSBwb3dlcnMuIA0KVGhlIHN0cnVnZ2xlIGJldHdlZW4gc2VsZiAtIHdpbGwgYW5kIHJlYXNve1smKiZdfW4sIGJldHdlZW4gDQpcImJsb29kXCIgYW5kIFwianVkZ21lbnQsXCIgYXBwZWFycyBpbiBhbGwgaGlzIHdyaXRpbmdzIHRvIA0KYmUgZXZle1smKiZdfXIgaW4gdGhlIGJhY2tncm91bmQg4oCUIGEgdGhlbWUgcmVhZHkgYXQgYW55IG1vLSANCm1lbnQsIGlmIHBlcm1pdHRlZCwgdG8gYmV7WyYqJl19Y29tZSBwcm9taW5lbnQuIEFuZCBTaGFrLSANCnNwZXJlXCdzIHByb2ZvdW5kZXN0IGFuZCBtb3N0IHN5bXBhdGhldGljIHBzeWNob2x7WyYqJl19b2dpY2FsIA0Kc3R1ZHksIEhhbWxldF4gcmVwcmVzZW50cyBpbiBkZXRhaWwgdGhlIG90aGVyIGNoaWVmIA0KdGVtcHRhdGlvbiB0b3tbJiomXX0gd2hpY2ggaGUgd2FzLCBpdCB3b3VsZCBzZWVtLCBzdWJqZWN0ZWQuIA0KSW4gYWxsIHRoZSBsYXRlciBwbGF5cyBoaXMgZXllIGlze1smKiZdfSBpbnRlbnRseSBmaXhlZCB1cG9uIHRoZSANCmRlZXAgaW5zb2x1YmxlIHF1ZXN0aW9ucyBzdWdnZXN0ZWQgYnkgaHVtYW4gY2hhcmF7WyYqJl19Y3RlciANCmFuZCBkZXN0aW55LCBmaXhlZCB3aXRoIGEgYnJvb2Rpbmcgd2lzdGYgdWxuZXNzIHdoaWNoIHlldCwgDQp3ZSBwZXJjZXtbJiomXX1pdmUsIGhlIGJlY2FtZSwgYXMgeWVhcnMgd2VudCBvbiwgbW9yZSBhbmQgbW9yZSANCmFibGUgdG8gY29udHJvbC4gDQoNClNoYWtze1smKiZdfXBlcmVcJ3MgY2VudHJhbCBzZWxmIHByb25vdW5jZWQgaW4gZmF2b3Igb2Ygc2FuaXR5IA0K4oCUIGluIGZhdm9yIG9mIHNlZWluZyB0e1smKiZdfWhpbmdzIGFzIHRoZXkgYXJlLCBhbmQgc2hhcGluZyBsaWZlIA0KYWNjb3JkaW5nbHkuIEhlIGJvdWdodCB1cCBob3VzZXMgYW5kIGx7WyYqJl19YW5kcyBpbiBTdHJhdC0gDQpmb3JkLCBhbmQgc28gbWFkZSBhIHByb3Rlc3QsIHN1cGVyZmljaWFsLCBpbmRlZWQsIHlldCByZWFsLHtbJiomXX0gDQphZ2FpbnN0IHRoZSBSb21lbyBhbmQgdGhlIEhhbWxldCB3aXRoaW4gaGltLiBCdXQgdGhlIA0KaWRlYWxpc3Qgd2l0aGluIGhpe1smKiZdfW0gbWFkZSBTaGFrc3BlcmUgYXQgYWxsIHRpbWVzIGZhciBvdGhlciANCnRoYW4gYSBtZXJlIGNvdW50cnkgbWFnbmF0ZSBvciB3ZWF7WyYqJl19bHRoeSBidXJnaGVyLiBJdCANCnJlbWFpbmVkLCBhZnRlciBhbGwsIG5lYXJseSB0aGUgZGVlcGVzdCBwYXJ0IG9mIGhpbSA6IA0KDXtbJiomXX0KXCIgSGFtbGV0LiBJcyBub3QgcGFyY2htZW50IG1hZGUgb2Ygc2hlZXAtc2tpbnMgPyANCkhvcmF0aW8uIEF5LCBteSBsb3JkLCBhbntbJiomXX1kIG9mIGNhbGYgLXNraW5zIHRvby4gDQpIYW1sZXQuIFRoZXkgYXJlIHNoZWVwIGFuZCBjYWx2ZXMgd2hpY2ggc2VlayBvdXQgYXNze1smKiZdfXVyYW5jZSBpbiB0aGF0LlwiIA0KDQpBbmQgUHJvc3Blcm8gZGVjbGFyZXMgdGhlIGVuZCBvZiB0aGUgd2hvbGUgbWF0dGVyOiANCg0Ke1smKiZdfSoqIFdlIGFyZSBzdWNoIHN0dWZmIA0KQXMgZHJlYW1zIGFyZSBtYWRlIG9uLCBhbmQgb3VyIGxpdHRsZSBsaWZlIA0KSXMgcm91bmR7WyYqJl19ZWQgd2l0aCBhIHNsZWVwLlwiIA0KDQpTaGFrc3BlcmVcJ3MgZGV2b3Rpb24gdG8gbWF0ZXJpYWwgaW50ZXJlc3RzIHdhcyB0aGUgbGVhe1smKiZdfXN0IA0KcGFydCBvZiB0aGUgcHJvdGVzdCBtYWRlIGFnYWluc3QgaGlzIHRlbl5wdGF0aW9uIHRvIGV4LSANCnRyYXZhZ2FuY2Ugb2Z7WyYqJl19IHNvdWwuIFRoZXJlIGFyZSBtb3JlIGltcG9ydGFudCBmYWN0cyB0aGFuIA0KdGhvc2Ugb2YgdGhlIG1hdGVyaWFsIGxpZmUuIFNoYXtbJiomXX1rc3BlcmUgY2FzdCBoaXMgcGx1bW1ldCANCmludG8gdGhlIHNlYSBvZiBodW1hbiBzb3Jyb3cgYW5kIHdyb25nIGFuZCBsb3NzLiBIe1smKiZdfWUgDQoNCkdyb3d0aCBvZiBTaGFrc3BlcmVzIE1pbmQgYW5kIEFydC4gNDMgDQoNCnN0dWRpZWQgZXZpbC4gSGUgd291bGQgbGV0IG57WyYqJl19b25lIG9mIHRoYXQgZGFyayBzaWRlIG9mIGxpZmUgDQplc2NhcGUgZnJvbSBoaW0uIEhlIGRlbmllZCBub25lIG9mIHRoZSBiaXR0ZXtbJiomXX1ybmVzcywgdGhlIA0Kc2lucywgdGhlIGNhbGFtaXR5LCBvZiB0aGUgd29ybGQuIEhlIGxvb2tlZCBzdGVhZGlseSBhdCANCkNvcmRle1smKiZdfWxpYSBzdHJhbmdsZWQgaW4gdGhlIGFybXMgb2YgTGVhciA7IGFuZCBoZSBzdW0tIA0KbW9uZWQgdXAgYSBzdHJlbnVvdXMgZm9ydGl7WyYqJl19dHVkZSwgYSBzdG9pY2FsIHN1Ym1pc3Npb24gdG8gDQptYWtlIGVuZHVyYWJsZSBzdWNoIGEgc3BlY3RhY2xlLiBCdXQsIGF0IHRoZXtbJiomXX0gc2FtZSB0aW1lLCANCmhlIHJldGFpbmVkIGhpcyBsb3lhbHR5IHRvIGdvb2QgOyBvdmVyIGFnYWluc3QgRWRtdW5kIA0KYW5kIHRoe1smKiZdfWUgbW9uc3Ryb3VzIHNpc3RlcnMgaGUgc2F3IHRoZSBpbnZpbmNpYmxlIGxveWFsdHkgb2YgDQphIEtlbnQsIHRoZSBwcmFjdGljYWx7WyYqJl19IGdlbml1cyBvZiBhbiBFZGdhciBpbiB0aGUgc2VydmljZSBvZiANCmdvb2QsIGFuZCB0aGUgcmVkZWVtaW5nIGFyZG9yIG9mIGEgQ3tbJiomXX1vcmRlbGlhLiBSZXNjdWluZyANCmhpcyBzb3VsIGZyb20gYWxsIGJpdHRlcm5lc3MsIGhlIGFycml2ZWQgZmluYWxseSBhdCBhIHRle1smKiZdfW1wZXIgDQpzdHJvbmcgYW5kIHNlbGYtcG9zc2Vzc2VkIGFzIHRoYXQgb2Ygc3RvaWNpc20sIHlldCBmcmVlIGZyb20gDQp0aGUgc3R7WyYqJl19b2ljYWwgYXR0aXR1ZGUgb2YgZGVmaWFuY2UgOyBhIHRlbXBlciBsaWJlcmFsLCBncmEtIA0KY2lvdXMsIGNoYXJpdGFibGUsIGEgdHtbJiomXX1lbmRlciB5ZXQgc3RyZW51b3VzIGNhbG0uIA0KDQpUaGUgWWVuaUxTIGFuZCBBZG9uaXMgaXMgc3R5bGVkIGJ5IGl0cyBhdXRob3Ise1smKiZdfSBpbiB0aGUgDQpkZWRpY2F0aW9uIHRvIHRoZSBFYXJsIG9mIFNvdXRoYW1wdG9uLCBcJ1wnIHRoZSBmaXJzdCBoZWlyIG9mIA0KbXkgaXtbJiomXX1udmVudGlvbi5cIiBHZXJ2aW51cyBiZWxpZXZlcyB0aGF0IHRoZSBwb2VtIG1heSANCmhhdmUgYmVlbiB3cml0dGVuIGJlZm9yZSB0aHtbJiomXX1lIHBvZXQgbGVmdCBTdHJhdGZvcmQuIEFsLSANCnRob3VnaCBwb3NzaWJseSBzZXBhcmF0ZWQgYnkgYSBjb25zaWRlcmFibGUgaW50e1smKiZdfWVydmFsIGZyb20gDQppdHMgY29tcGFuaW9uIHBvZW0sIFRoZSBSYXBlIG9mIEx1Y3JlY2UgKDE1OTQpLCB0aGUgdHdvIA0KbWF5IGJ7WyYqJl19ZSByZWdhcmRlZCBhcyBlc3NlbnRpYWxseSBvbmUgaW4ga2luZC5eIFRoZSBzcGVjaWFsLSANCnR5IG9mIHRoZXNlIHBvZW1zIGFzIHtbJiomXX1wb3J0aW9ucyBvZiBTaGFrc3BlcmVcJ3MgYXJ0IGhhcyBwZXItIA0KaGFwcyBub3QgYmVlbiBzdWZpaWNpZW50bHkgb2JzZXJ2ZWQsIHtbJiomXX1mIEVhY2ggaXMgYW4gYXJ0aXN0aWMgDQpzdHVkeSA7IGFuZCB0aGV5IGZvcm0sIGFzIGhhcyBiZWVuIGp1c3Qgb2JzZXJ2ZWQsIGNve1smKiZdfW0tIA0KDQoqIE1yLiBGdXJuaXZhbGwgbm90ZXMgaW4gdGhlIFZlbnU4IGFuZCBBZG9uaXMgdGhlIGZvbGxvd2luZyBwaWN0dXJlcyB7WyYqJl19DQpmcm9tIFNoYWtzcGVyZVwncyB5b3V0aGZ1bCBsaWZlIGF0IFN0cmF0Zm9yZDogdGhlIGhvcnNlICgxLiAyNjAtMzE4KTsgdGhlIA17WyYqJl19CmhhcmUtaHVudCAoNzYzLTc2OCk7IHRoZSBvdmVyZmxvd2luZyBBdm9uICg3Mik7IHRoZSB0d28gc2lsdmVyIGRvdmVzIA0KKDM2NntbJiomXX0pOyB0aGUgbWlsY2ggZG9lIGFuZCBmYXduIGluIHNvbWUgYnJha2UgaW4gQ2hhcmxlY290ZSBQYXJrICg4NzUsIDg3Nik7IA0KdGhle1smKiZdfSByZWQgbW9tICg0NTMpIDsgdGhlIGh1c2ggb2YgdGhlIHdpbmQgYmVmb3JlIGl0IHJhaW5zICg0NTgpIDsgdGhlIG1hbnkgDQpjbG97WyYqJl19dWRzIGNvbnN1bHRpbmcgZm9yIGZvdWwgd2VhdGhlciAoOTcyKTsgdGhlIG5pZ2h0LW93bCAoNTMxKTsgdGhlIGxhcmsgDQooODUzKXtbJiomXX0uIFRoZSBMdWNyZWNlXiBoZSBhZGRzLCBcIiBtdXN0IGhhdmUgYmVlbiB3cml0dGVuIHNvbWUgdGltZSBhZnRlciB0aGUgDQpWZW5pdHtbJiomXX1zXiBhcyBpdHMgcHJvcG9ydGlvbiBvZiB1bnN0b3BwZWQgbGluZXMgaXMgMSBpbiAxMC44MSAoMTcxIHN1Y2ggbGluZXMgDQp0byB0e1smKiZdfWhlIHBvZW1cJ3MgMTg1NSksIGFnYWluc3QgdGhlIFZlbnVzXCdzIDEgaW4gMjUuNDAgKDQ3IHJ1bi1vbiBsaW5lcyBpbiANCjExOTQpLntbJiomXX1cIiDigJQgUHJlZmFjZSBieSBGLiBKLiBGdXJuaXZhbGwgdG8gXCdcJyBTaGFrZXNwZWFyZSBDb21tZW50YXJpZXNcIiBieSBHZXItIA0KdntbJiomXX1pbnVzIChlZC4gMTg3NCkuIA0KDQpmIENvbGVyaWRnZSB0b3VjaGVzIHVwb24gdGhlIGZhY3QsIGFuZCBpdCBpcyBub3RlZCBieSBMe1smKiZdfWxveWQuIA0KDQo0NCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpwYW5pb24gc3R1ZGllcyDigJQgb25lIG9mIGZ7WyYqJl19ZW1hbGUgbHVzdCBhbmQgYm95aXNoIGNvbGRuZXNzLCANCnRoZSBvdGhlciBvZiBtYWxlIGx1c3QgYW5kIHdvbWFubHkgY2hhc3RpdHtbJiomXX15LiBDb2xlcmlkZ2UgDQpub3RpY2VkIFwidGhlIHV0dGVyIGFsb29mbmVzcyBvZiB0aGUgcG9ldFwncyBvd24gZmVlbGluZ3MgDQpmcm97WyYqJl19bSB0aG9zZSBvZiB3aGljaCBoZSBpcyBhdCBvbmNlIHRoZSBwYWludGVyIGFuZCB0aGUgDQphbmFseWlzdCA7XCIgYnV0IGl0IGNhbiB7WyYqJl19aGFyZGx5IGJlIGFkbWl0dGVkIHRoYXQgdGhpcyBhbG9vZi0gDQpuZXNzIG9mIHRoZSBwb2V0XCdzIG93biBmZWVsaW5ncyBwcm9jZWV7WyYqJl19ZHMgZnJvbSBhIGRyYW1hdGljIA0KYWJhbmRvbm1lbnQgb2Ygc2VsZi4gVGhlIHN1YmplY3RzIG9mIHRoZXNlIHR3byBwb2VtcyANCntbJiomXX1kaWQgbm90IGNhbGwgYW5kIGNob29zZSB0aGVpciBwb2V0IDsgdGhleSBkaWQgbm90IHBvc3Nlc3MgDQpoaW0gYW5kIGNvbXBlbCBoe1smKiZdfWltIHRvIHJlbmRlciB0aGVtIGludG8gYXJ0LiBSYXRoZXIgDQp0aGUgcG9ldCBleHByZXNzbHkgbWFkZSBjaG9pY2Ugb2YgdGhlIHN7WyYqJl19dWJqZWN0cywgYW5kIGRlLSANCmxpYmVyYXRlbHkgc2V0IGhpbXNlbGYgZG93biBiZWZvcmUgZWFjaCB0byBhY2NvbXBsaXNoIGFuIHtbJiomXX0NCmV4aGF1c3RpdmUgc3R1ZHkgb2YgaXQuIA0KDQpJZiB0aGUgVmVudXMgYW5kIEFkb25pcyBzb25uZXRzIGluIFRoZSBQYXNzaW9ue1smKiZdfWF0ZSANClBpbGdyaW0gYmUgYnkgU2hha3NwZXJlLCBpdCB3b3VsZCBzZWVtIHRoYXQgaGUgaGFkIA0KYmVlbiB0cnlpbmcgdmFyaW97WyYqJl19dXMgcG9ldGljYWwgZXhlcmNpc2VzIG9uIHRoaXMgdGhlbWUuIA0KQW5kIGZvciBhIHlvdW5nIHdyaXRlciBvZiB0aGUgUmVuYXNjZXtbJiomXX1uY2UsIHRoZSBzdWJqZWN0IA0Kb2YgU2hha3NwZXJlXCdzIGVhcmxpZXN0IHBvZW0gd2FzIGEgc3BsZW5kaWQgb25lIOKAlCBhcyANCntbJiomXX12b2x1cHR1b3VzIGFuZCB1bnNwaXJpdHVhbCBhcyB0aGF0IG9mIGEgY2xhc3NpY2FsIHBpY3R1cmUgDQpieSBUaXRpYW4uIEl0IGlue1smKiZdfWNsdWRlZCB0d28gZmlndXJlcyBjb250YWluaW5nIGluZXhoYXVzdC0gDQppYmxlIHBhc3R1cmUgZm9yIHRoZSBmbGVzaGx5IGV5ZSx7WyYqJl19IGFuZCBkZWxpY2FjaWVzIGFuZCBkYWludGllcyANCmZvciB0aGUgc2Vuc3VvdXMgaW1hZ2luYXRpb24gb2YgdGhlIFJlbmFzY2VuY3tbJiomXX1lIOKAlCB0aGUgZW4tIA0KYW1vdXJlZCBRdWVlbiBvZiBCZWF1dHksIGFuZCB0aGUgYmVhdXRpZnVsLCBkaXNkYWluZnVsIA0KYm95e1smKiZdfS4gSXQgYWZmb3JkZWQgb2NjYXNpb24gZm9yIGVuZGxlc3MgZXhlcmNpc2VzIGFuZCB2YXJpYS0gDQp0aW9ucyBvbiB0aGUgdGhlbWV7WyYqJl19cyBCZWF1dHksIEx1c3QsIGFuZCBEZWF0aC4gSW4gaG9sZC0gDQppbmcgdGhlIHN1YmplY3QgYmVmb3JlIGhpcyBpbWFnaW5hdGlvbntbJiomXX0sIFNoYWtzcGVyZSBpcyBwZXItIA0KZmVjdGx5IGNvb2wgYW5kIGNvbGxlY3RlZC4gSGUgaGFzIG1hZGUgY2hvaWNlIG9mIHRoZSANe1smKiZdfQpzdWJqZWN0LCBhbmQgaGUgaXMgaW50ZXJlc3RlZCBpbiBkb2luZyBoaXMgZHV0eSBifV4gaXQgaW4gdGhlIA0KbW9zdCB0aG9yb3V7WyYqJl19Z2ggd2F5IGEgeW91bmcgcG9ldCBjYW4gOyBidXQgaGUgcmVtYWlucyB1bi0gDQppbXBhc3Npb25lZCDigJQgaW50ZW50IHdob2xseXtbJiomXX0gdXBvbiBnZXR0aW5nIGRvd24gdGhlIHJpZ2h0IA0KY29sb3JzIGFuZCBsaW5lcyB1cG9uIGhpcyBjYW52YXMuIE9ic2VydmUgaGlze1smKiZdfSBkZXRlcm1pLSANCm5hdGlvbiB0byBwdXQgaW4gYWNjdXJhdGVseSB0aGUgZGV0YWlscyBvZiBlYWRoIG9iamVjdCA7IHRvIA0Kb217WyYqJl19aXQgbm90aGluZy4gUG9vciBXYXQsIHRoZSBoYXJlLCBpcyBkZXNjcmliZWQgaW4gYSBkb3plbiANCnN0YW56YXMuIEFub3RoZXIgc3tbJiomXX1lcmllcyBvZiBzdGFuemFzIGRlc2NyaWJlcyB0aGUgc3RhbGxpb24gDQrigJQgYWxsIGhpcyBwb2ludHMgYXJlIGVudW1lcmF0ZWQge1smKiZdfTogDQoNCkdyb3d0aCBvZiBTaGFrc3BlcmVzIE1pbmQgYW5kIEFydC4gNDUgDQoNCioqIFJvdW5kLWhvb2YgZCwgc2hvcnQtam9pbnR7WyYqJl19ZWQsIGZldGxvY2tzIHNoYWcgYW5kIGxvbmcsIA0KQnJvYWQgYnJlYXN0LCBmdWxsIGV5ZSwgc21hbGwgaGVhZCBhbmQgbm9zdHJpbHtbJiomXX0gd2lkZSwgDQpIaWdoIGNyZXN0LCBzaG9ydCBlYXJzLCBzdHJhaWdodCBsZWdzIGFuZCBwYXNzaW5nIHN0cm9uZywgDQpUaGluIG1he1smKiZdfW5lLCB0aGljayB0YWlsLCBicm9hZCBidXR0b2NrLCB0ZW5kZXIgaGlkZS5cIiANCg0KVGhpcyBwYXNzYWdlIG9mIHBvZXRyeSBoYXMge1smKiZdfWJlZW4gYWRtaXJlZCA7IGJ1dCBpcyBpdCANCnBvZXRyeSBvciBhIHBhcmFncmFwaCBmcm9tIGFuIGFkdmVydGlzZW1lbnQgb2YgYSB7WyYqJl19aG9yc2UtIA0Kc2FsZSA/IEl0IGlzIHBhcnQgb2YgU2hha3NwZXJlXCdzIHN0dWR5IG9mIGFuIGFuaW1hbCwgYW5kIA0KaGUgZG9lcyB7WyYqJl19aGlzIHdvcmsgdGhvcm91Z2hseS4gSW4gbGlrZSBtYW5uZXIsIGhlIGRvZXMgDQpub3Qgc2hyaW5rIGZyb20gZmFpdGhmdWxseSBwdXtbJiomXX10dGluZyBkb3duIGVhY2ggb25lIG9mIHRoZSANCmFtb3JvdXMgcHJvdm9jYXRpb25zIGFuZCB1cmdlbmNpZXMgb2YgVmVudXMuIFRoe1smKiZdfWUgY29tLSANCnBsZXRlIHNlcmllcyBvZiBtYW5vZXV2cmVzIG11c3QgYmUgZGV0YWlsZWQuIA0KDQpJbiBMdUd2ZWNlIHRoZSBhY3R7WyYqJl19aW9uIGlzIGRlbGF5ZWQgYW5kIGRlbGF5ZWQsIHRoYXQgDQpldmVyeSBtaW51dGUgcGFydGljdWxhciBtYXkgYmUgZGVzY3JpYmVkLHtbJiomXX0gZXZlcnkgbWlub3IgDQppbmNpZGVudCByZWNvcmRlZC4gSW4gdGhlIG5ld25lc3Mgb2YgaGVyIHN1ZmZlcmluZyBhbmQgDQpzaGFte1smKiZdfWUsIEx1Y3JlY2UgZmluZHMgdGltZSBmb3IgYW4gZWxhYm9yYXRlIHRpcmFkZSBhcHByby0gDQpwcmlhdGUgdG8gdGhlIHRoZW1lIFwie1smKiZdfSBOaWdodCxcIiBhbm90aGVyIHRvIHRoYXQgb2YgXCIgVGltZSxcIiANCmFub3RoZXIgdG8gdGhhdCBvZiBcIk9wcG9ydHVuaXR5LlwiIEVhY3tbJiomXX1oIHRvcGljIGlzIGV4LSANCmhhdXN0ZWQuIFRoZW4sIHN0dWRpb3VzbHksIGEgbmV3IGluY2lkZW50IGlzIGludHJvZHVjZWQsIA0Ke1smKiZdfWFuZCBpdHMgc2lnbmlmaWNhbmNlIGZvciB0aGUgZW1vdGlvbnMgaXMgZHJhaW5lZCB0byB0aGUgbGFzdCANCmRyb3AgaW4gYSBuZXd7WyYqJl19IHRpcmFkZS4gV2Ugbm93aGVyZSBlbHNlIGRpc2NvdmVyIFNoYWstIA0Kc3BlcmUgc28gZXZpZGVudGx5IGVuZ2FnZWQgdXBvbiBoaXtbJiomXX1zIHdvcmsuIEFmdGVyd2FyZHMgDQpoZSBwdXRzIGEgc3RyZXNzIHVwb24gaGlzIHZlcnNlcyB0byBjb21wZWwgdGhlbSB0byBjb24te1smKiZdfSANCnRhaW4gdGhlIGhpZGRlbiB3ZWFsdGggb2YgaGlzIHRob3VnaHQgYW5kIGltYWdpbmF0aW9uLiANCkhlcmUgaGUgZGlzcGxheXN7WyYqJl19IGF0IGxhcmdlIHN1Y2ggd2VhbHRoIGFzIGhlIHBvc3Nlc3NlcyA7IGhlIA0Kd2lsbCBoYXZlIG5vbmUgb2YgaXQgaGFsZiBzZWVuLntbJiomXX0gVGhlIGRlc2NyaXB0aW9ucyBhbmQgZGVjLSANCmxhbWF0aW9ucyBhcmUgdW5kcmFtYXRpYywgYnV0IHRoZXkgc2hvdyB1cyB0aGUge1smKiZdfW1hdGVyaWFscyANCmxhaWQgb3V0IGluIGRlNDphaWwgZnJvbSB3aGljaCBkcmFtYXRpYyBwb2V0cnkgb3JpZ2luYXRlcy4gDQpIYXZ7WyYqJl19aW5nIGRyYXduIHNvIGNhcmVmdWxseSBmcm9tIG1vZGVscywgdGhlIHRpbWUgY29tZXMgDQp3aGVuIGhlIGNhbiB0cnVzdCBoaW1zZXtbJiomXX1sZiB0byBkcmF3IGZyb20gbWVtb3J5LCBhbmQgaGUgDQpwb3NzZXNzZXMgbWFydmVsbG91cyBmcmVlZG9tIG9mIGhhbmQsIGJlY2F1e1smKiZdfXNlIGhpcyBwcmUtIA0KdmlvdXMgc3R1ZGllcyBoYXZlIGJlZW4gc28gbGFib3Jpb3VzLiBJdCB3YXMgdGhlIHNhbWUgDQpoYW5kIHR7WyYqJl19aGF0IGRyZXcgdGhlIHN0YWxsaW9uIGluIFZlbnVzIGFuZCBBZG9uaXMgd2hpY2ggDQphZnRlcndhcmRzIGRyZXcgd2l0aCBpbmZhbHtbJiomXX1saWJsZSB0b3VjaHkgYXMgdGhvdWdoIHRoZS8gDQp3ZXJlIGFsaXZlLCB0aGUgZG9ncyBvZiBUaGVzZXVzIDogDQoNCjQ2IFNoYWtze1smKiZdfXBlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpcIiBNeSBob3VuZHMgYXJlIGJyZWQgb3V0IG9mIHRoZSBTcGFydGFuIGtpbmQge1smKiZdfQ0KU28gZmxld1wnZCwgc28gc2FuZGVkLCBhbmQgdGhlaXIgaGVhZHMgYXJlIGh1bmcgDQpXaXRoIGVhcnMgdGhhdCBzd2VlcCBhd2F5e1smKiZdfSB0aGUgbW9ybmluZyBkZXcgOyANCkNyb29rLWtuZWVkLCBhbmQgZGV3LWxhcHBNIGxpa2UgVGhlc3NhbGlhbiBidWxscyA7IA0KU2x7WyYqJl19b3cgaW4gcHVyc3VpdCA7IGJ1dCBtYXRjaFwnIGQgaW4gbW91dGggbGlrZSBiZWxscywgDQpFYWNoIHVuZGVyIGVhY2guIEEgY3J5IG17WyYqJl19b3JlIHR1bmFibGUgDQpXYXMgbmV2ZXIgaG9sbGFcJ2QgdG8sIG5vciBjaGVlclwnZCB3aXRoIGhvcm4sIA0KSW4gQ3JldGUsIGluIFNwe1smKiZdfWFydGEsIG5vciBpbiBUaGVzc2FseS5cIiAqIA0KDQpXaGVuIHRoZXNlIHBvZW1zIHdlcmUgd3JpdHRlbiwgU2hha3NwZXJlIHdhcyBje1smKiZdfWF1dGlvdXMqIA0KbHkgZmVlbGluZyBoaXMgd2F5LiBMYXJnZSwgc2xvdy0gZ3Jvd2luZyBuYXR1cmVzLCBnaWZ0ZWQgDQp3aXRoIGF7WyYqJl19IHNlbnNlIG9mIGNvbmNyZXRlIGZhY3QgYW5kIHdpdGggaHVtb3IsIG9yZGluYXJpbHkgDQpwb3NzZXNzIG5vIGdyZWF0IHNlbGYtY3tbJiomXX1vbmZpZGVuY2UgaW4geW91dGguIEFuIGlkZWFsaXN0LCANCmxpa2UgTWlsdG9uLCBtYXkgcmVzb2x2ZSBpbiBlYXJseSBtYW5ob29ke1smKiZdfSB0aGF0IGhlIHdpbGwgDQphY2hpZXZlIGEgZ3JlYXQgZXBpYyBwb2VtLCBhbmQgaW4gb2xkIGFnZSBtYXkgdHVybiBpbnRvIA0KZmF7WyYqJl19Y3QgdGhlIGlkZWFzIG9mIGhpcyB5b3V0aC4gQW4gaWRlYWxpc3QsIGxpa2UgTWFybG93ZSwgDQptYXkgYmVnaW4gaGlzIGNhcmVlcntbJiomXX0gd2l0aCBhIHNwbGVuZGlkIHlvdXRoZnVsIGF1ZGFjaXR5LCANCg0KKiBUaGUgY29tcGFyaXNvbiBvZiB0aGVzZSB0d28gcGFzc2Fne1smKiZdfWVzIGlzIGZyb20gSGF6bGl0dCwgd2hvc2UgdW5mYXZvci0gDQphYmxlIGNyaXRpY2lzbSBvZiBTaGFrc3BlcmVcJ3MgcG9lbXMgZXhwe1smKiZdfXJlc3NlcyB3ZWxsIG9uZSBzaWRlIG9mIHRoZSB0cnV0aC4gDQpcIiBUaGUgdHdvIHBvZW1zIG9mIFZlbm0gYW5kIEFkb25pcyBhbmQge1smKiZdfW9mIFRhcnF1aW4gYW5kIEx1Y3JlY2UgYXBwZWFyIA0KdG8gdXMgbGlrZSBhIGNvdXBsZSBvZiBpY2UtaG91c2VzLiBUaGV5IGFyZSB7WyYqJl19YWJvdXQgYXMgaGFyZCwgYXMgZ2xpdHRlcmluZywgYW5kIA0KYXMgY29sZC4gVGhlIGF1dGhvciBzZWVtcyBhbGwgdGhlIHRpbWUgdHtbJiomXX1vIGJlIHRoaW5raW5nIG9mIGhpcyB2ZXJzZXMsIGFuZCBub3QgDQpvZiBoaXMgc3ViamVjdCDigJQgbm90IG9mIHdoYXQgaGlzIGNoe1smKiZdfWFyYWN0ZXJzIHdvdWxkIGZlZWwsIGJ1dCBvZiB3aGF0IGhlIHNoYWxsIA0Kc2F5IDsgYW5kLCBhcyBpdCBtdXN0IGhhcHBlbiBpbiB7WyYqJl19YWxsIHN1Y2ggY2FzZXMsIGhlIGFsd2F5cyBwdXRzIGludG8gdGhlaXIgDQptb3V0aHMgdGhvc2UgdGhpbmdzIHdoaWNoIHRoZXkgd3tbJiomXX1vdWxkIGJlIHRoZSBsYXN0IHRvIHRoaW5rIG9mLCBhbmQgd2hpY2ggaXQgDQpzaG93cyB0aGUgZ3JlYXRlc3QgaW5nZW51aXR5IGlue1smKiZdfSBoaW0gdG8gZmluZCBvdXQuIFRoZSB3aG9sZSBpcyBsYWJvcmVkLCB1cC0gDQpoaWxsIHdvcmsuIFRoZSBwb2V0IGlzIHBlcnBldHV7WyYqJl19YWxseSBzaW5nbGluZyBvdXQgdGhlIGRpZmZpY3VsdGllcyBvZiB0aGUgYXJ0IHRvIA0KbWFrZSBhbiBleGhpYml0aW9uIG9mIGhpc3tbJiomXX0gc3RyZW5ndGggYW5kIHNraWxsIGluIHdyZXN0bGluZyB3aXRoIHRoZW0uIEhlIGlzIA0KbWFraW5nIHBlcnBldHVhbCB0cmlhbHMge1smKiZdfW9mIHRoZW0gYXMgaWYgaGlzIG1hc3Rlcnkgb3ZlciB0aGVtIHdlcmUgZG91YnRlZC4gDQouLi4gQSBiZWF1dGlmdWwgdGhvdWdodCB7WyYqJl19aXMgc3VyZSB0byBiZSBsb3N0IGluIGFuIGVuZGxlc3MgY29tbWVudGFyeSB1cG9uIA0KaXQuIC4gLiAuIFRoZXJlIGlzLCBiZXNpZHtbJiomXX1lcywgYSBzdHJhbmdlIGF0dGVtcHQgdG8gc3Vic3RpdHV0ZSB0aGUgbGFuZ3VhZ2Ugb2YgDQpwYWludGluZyBmb3IgdGhhdCBvZiBwe1smKiZdfW9ldHJ5LCB0byBtYWtlIHVzIHNlZSB0aGVpciBmZWVsaW5ncyBpbiB0aGUgZmFjZXMgb2YgdGhlIA0KcGVyc29ucy5cIiDigJQgQ2hhe1smKiZdfXJhY3RlcnMgb2YgU2hha3NwZXJlXCcgcyBQbGF5cyAoZWQuIDE4MTgpLCBwcC4gMzQ4LCAzNDkuIENvbGUtIA0KcmlkZ2VcJ3MgbXVjaHtbJiomXX0gbW9yZSBmYXZvcmFibGUgY3JpdGljaXNtIHdpbGwgYmUgZm91bmQgaW4gXCIgQmlvZ3JhcGhpYSBMaXRlcmEtIA0KcmlhIFwiIChlZC57WyYqJl19IDE4NDcpLCB2b2wuIGlpLiwgY2guIGlpLiBUaGUgcGVjdWxpYXJpdHkgb2YgdGhlIERvZW1zIGxhc3Qgbm90aWNlZCBpbiB0aGUgDXtbJiomXX0KZXh0cmFjdCBmcm9tIEhhemxpdHQgaXMgaW5nZW5pb3VzbHkgYWNjb3VudGVkIGZvciBieSBDb2xlcmlkZ2UuICpcJyBUaGUgZ3JlYXtbJiomXX10IA0KaW5zdGluY3Qgd2hpY2ggaW1wZWxsZWQgdGhlIHBvZXQgdG8gdGhlIGRyYW1hIHdhcyBzZWNyZXRseSB3b3JraW5nIGluIGhpe1smKiZdfW0sIA0KcHJvbXB0aW5nIGhpbSAuLi4gdG8gcHJvdmlkZSBhIHN1YnN0aXR1dGUgZm9yIHRoYXQgdmlzdWFsIGxhbmd1YWdlLCB0aGF7WyYqJl19dCANCmNvbnN0YW50IGludGVydmVudGlvbiBhbmQgcnVubmluZyBjb21tZW50IGJ5IHRvbmUsIGxvb2ssIGFuZCBnZXN0dXJlLCANCntbJiomXX13aGljaCBpbiBoaXMgZHJhbWF0aWMgd29ya3MgaGUgd2FzIGVudGl0bGVkIHRvIGV4cGVjdCBmcm9tIHRoZSBwbGF5ZXJpIFwiIA0KKHtbJiomXX1wcC5sOCxswrspLiANCg0KR3Jvd3RoIG9mIFNoYWtzcGVyZXMgTWluZCBhbmQgQXJ0LiA0NyANCg0KYSBzdHVwZW5kb3VzIFwiIFRhbXtbJiomXX1idXJsYWluZS5cIiBBIG1hbiBvZiB0aGUga2luZCB0byANCndoaWNoIFNoYWtzcGVyZSBiZWxvbmdlZCwgYWx0aG91Z2ggdmVyeSByZXtbJiomXX1zb2x1dGUsIGFuZCANCmRldGVybWluZWQsIGlmIHBvc3NpYmxlLCB0byBzdWNjZWVkLCByZXF1aXJlcyB0aGUgZXZpZGVuY2UgDQpve1smKiZdfWYgb2JqZWN0aXZlIGZhY3RzIHRvIGdpdmUgaGltIHNlbGYtY29uZmlkZW5jZS4gSGlzIHNwZS0gDQpjaWFsIHZpcnR1ZSBsaWVzIGl7WyYqJl19biBhIHBlY3VsaWFybHkgcHJlZ25hbnQgYW5kIHJpY2ggcmVsYXRpb24gDQp3aXRoIHRoZSBhY3R1YWwgd29ybGQsIGFuZCBzdWNoIHtbJiomXX1yZWxhdGlvbiBjb21tb25seSBlc3RhYi0gDQpsaXNoZXMgaXRzZWxmIGJ5IGEgZ3JhZHVhbCBwcm9jZXNzLiBBY2NvcmRpbmdseSwge1smKiZdfWluc3RlYWQgDQpvZiBmbGluZ2luZyBhYnJvYWQgaW50byB0aGUgd29ybGQgd2hpbGUgc3RpbGwgYSBzdHJpcGxpbmcgDQpzb21lIHV7WyYqJl19bnByZWNlZGVudGVkIGNyZWF0aW9uLCBhcyBNYXJsb3dlIGRpZCwgb3IgYXMgVmljLSANCnRvciBIdWdvIGRpZCwgYW5kIHNlY3VyaXtbJiomXX1uZyB0aGVyZWJ5IHRoZSBwb3NpdGlvbiBvZiBhIA0KbGVhZGVyIG9mIGFuIGluc3VyZ2VudCBzY2hvb2wsIFNoYWtzcGVyZSBiZWdhe1smKiZdfW4sIGlmIG5vdCANCnRpbWlkbHksIGF0IGxlYXN0IGNhdXRpb3VzbHkgYW5kIHRlbnRhdGl2ZWx5LiBIZSB1bmRlci0gDQp0YWtlcyB7WyYqJl19d29yayBvZiBhbnkgYW5kIGV2ZXJ5IGRlc2NyaXB0aW9uLCBhbmQgdHJpZXMgYW5kIA0KdGVzdHMgaGltc2VsZiB1cG9uIGFsbC5eIHtbJiomXX1IZSBpcyB0aGVyZWZvcmUgYSB2YWx1ZWQgcGVyc29uIA0KaW4gaGlzIHRoZWF0cmljYWwgY29tcGFueSwgcmVhZHkgdG8gdHVybiBoe1smKiZdfWlzIGhhbmQgdG8gYW55LSANCnRoaW5nIGhlbHBmdWwg4oCUIGEgSmFjay1vZiAtYWxsLXRyYWRlcywgYSBcIkpvaGFubmVzLWZhY3Rve1smKiZdfS0gDQp0dW0gOyBcIiBoZSBpcyBvYmxpZ2luZyBhbmQgZnJlZSBmcm9tIHNlbGYtYXNzZXJ0aW9uIDsgaGUgaXMgDQp3YWl0aW5nIGhpe1smKiZdfXMgdGltZTsgaGUgaXMgbm90IHlldCBzdXJlIG9mIGhpbXNlbGY7IGhlIGZpbmRzIA0KaXQgdGhlIHNlbnNpYmxlIHRoaW5nIG5vdCB7WyYqJl19dG8gcHJvZmVzcyBzaW5ndWxhcml0eS4gXCJEaXZlcnMgDQpvZiB3b3JzaGlwXCIgcmVwb3J0IGhpcyBcInVwcmlnaHRuZXNzIG9mIGRlYXtbJiomXX1saW5nO1wiIGhlIGlzIA0KXCJleGNlbGxlbnQgaW4gdGhlIHF1YWxpdHkgaGUgcHJvZmVzc2VzO1wiXiBoaXMgZGVtZWFub3IgDQppcyBje1smKiZdfWl2aWwgOyBoZSBpcyByZWNvZ25pemVkIGV2ZW4gYWxyZWFkeSBhcyBoYXZpbmcgYSBcIiBmYWNlLSANCnRpb3VzIGdyYWNlIGluIHdye1smKiZdfWl0aW5nLlwiIGYgTGV0IHVzIG5vdCBzdXBwb3NlLCBiZWNhdXNlIA0KU2hha3NwZXJlIGRlY2xpbmVzIHRvIGFzc2F1bHQgdGhlIHJle1smKiZdfWFsIHdvcmxkIGFuZCB0aGUgd29ybGQgDQpvZiBpbWFnaW5hdGlvbiwgYW5kIHRha2UgdGhlbSBieSB2aW9sZW5jZSwgdGhhdCBoZSB7WyYqJl19aXMgDQp0aGVyZWZvcmUgYSBwZXJzb24gb2Ygc2xpZ2h0IGZvcmNlIG9mIGNoYXJhY3Rlci4gSGUgaXMgDQpkZXRlcm1pbmVkIHRvIHtbJiomXX1tYXN0ZXIgYm90aCB0aGVzZSB3b3JsZHMsIGlmIHBvc3NpYmxlLiBIZSANCmFwcHJvYWNoZXMgdGhlbSB3aXRoIGEgZmFjaWxlIGFue1smKiZdfWQgZW5nYWdpbmcgYWlyIDsgYnktYW5kLSANCg0KKiBPbiB0aGUgc3BlY2lhbCB1c2Ugb2YgdGhlIHdvcmQgXCIgcXVhbGl0eSBcIiBmb3tbJiomXX1yIHRoZSBzdGFnZS1wbGF5ZXJcJ3MgcHJvZmVzLSANCnNpb24sIHNlZSBhIG5vdGUgYnkgSGVybWFubiBLdXJ6IGluIGhpcyBhcnRpY3tbJiomXX1sZSBcIiBTaGFrZXNwZWFyZSBkZXIgU2NoYXUtIA0Kc3BpZWxlcixcIiBTaGFrZXNwZWFyZS1KYWhyYmFjaF4gdm9sLiB2aS4sIHBwLiB7WyYqJl19MzFWLCAzMTguIA0KDQpmIENoZXR0bGVcJ3MgKlwnIEtpbmQgSGVhcnRcJ3MgRHJlYW0sXCIgMTU5Mi4gQnV0IHNlZSBNci4gSG93YXJkIFN7WyYqJl19dGF1bnRvblwncyANCmxldHRlciBpbiBUaGUgQXRoZW5jZXVtXiBGZWIuIDcsIDE4NzQgOyBNci4gU2ltcHNvblwncyBhcnRpY2xlIFwiIHtbJiomXX1TaGFrc3BlcmUgQWwtIA0KbHVzaW9uIEJvb2tzLFwiIFRoZSBBY2FkZW15LCBBWSlyaVxcIDExLCAxODc0OyBhbmQgRHIuIEluZ2xlYnl7WyYqJl19XCdzIHByZWZhY2UgdG8gDQpcIiBTaGFrc3BlcmUgQWxsdXNpb24gQm9va3MsXCIgcHVibGlzaGVkIGZvciB0aGUgTmV3IFNoYWtzcGVyZXtbJiomXX0gU29jaWV0eSANCg0KNDggU2hha3NwZXJl4oCUSGlzIE1pbmQgYW5kIEFydC4gDQoNCmJ5IGhpcyBncmFzcCB1cG9uIGZhY3RzIHdpe1smKiZdfWxsIHRpZ2h0ZW4uIEZyb20gTWFybG93ZSBhbmQgDQpmcm9tIE1pbHRvbiBoYWxmIG9mIHRoZSB3b3JsZCBlc2NhcGVzLiBTaGFrcGV7WyYqJl19cmUgd2lsbCANCmxheSBob2xkIG9mIGl0IGluIGl0cyB0b3RhbGl0eSwgYW5kLCBvbmNlIHRoYXQgaGUgaGFzIGxhaWQgDQpob2xkIHtbJiomXX1vZiBpdCwgd2lsbCBuZXZlciBsZXQgaXQgZ28uIA0KDQpUaGlzIGlzIHRoZSBwZXJpb2Qgb2YgU2hha3NwZXJlXCdzIHRlbnRhdGl2ZXtbJiomXX0gZHJhbWF0aWMgDQplZmZvcnRzLiBBbW9uZyB0aGVzZSwgbm90d2l0aHN0YW5kaW5nIHN0cm9uZyBleHRlcm5hbCANCmV2aWRlbmNle1smKiZdfSDigJQgdGhlIHRlc3RpbW9ueSBvZiBNZXJlcywgYW5kIHRoZSBmYWN0IHRoYXQgDQpIZW1pbmdlIGFuZCBDb25kZWxsIGluY2x1ZGV7WyYqJl19ZCB0aGUgcGxheSBpbiB0aGUgZmlyc3QgDQpmb2xpbyDigJQgaXQgaXMgZGlmbFNjdWx0IHRvIGFkbWl0IFRpdHVzIEE3aWRyb25pR3tbJiomXX11cy4gVGhhdCANCnRyYWdlZHkgYmVsb25ncyB0byB0aGUgcHJlLVNoYWtzcGVyaWFuIHNjaG9vbCBvZiBibG9vZHkgDQpkcmFtYXMue1smKiZdfSBJZiBhbnkgcG9ydGlvbnMgb2YgaXQgYmUgZnJvbSBTaGFrc3BlcmVcJ3MgaGFuZCwgDQppdCBoYXMgYXQgbGVhc3QgdGhpcyBpbnRle1smKiZdfXJlc3Qg4oCUIGl0IHNob3dzIHRoYXQgdGhlcmUgd2FzIGEgcGUtIA0KcmlvZCBvZiBTaGFrc3BlcmVcJ3MgYXV0aG9yc2hpcCB3aGVue1smKiZdfSB0aGUgcG9ldCBoYWQgbm90IHlldCANCmRpc2NvdmVyZWQgaGltc2VsZiwgYSBwZXJpb2Qgd2hlbiBoZSB5aWVsZGVkIHRvIHRoZSB7WyYqJl19cG9wdS0gDQpsYXIgaW5mbHVlbmNlcyBvZiB0aGUgZF55IGFuZCBob3VyIDsgdGhpcyBtdWNoIGludGVyZXN0LCBhbmQgDQpubyBtb3tbJiomXX1yZS4gVGhhdCBTaGFrc3BlcmUgaGltc2VsZiBlbnRlcmVkIHdpdGggcGFzc2lvbiANCm9yIGVuZXJneSBpbnRvIHRoZSBsaXRlcmFye1smKiZdfXkgbW92ZW1lbnQgd2hpY2ggdGhlIFwiIFNwYW5pc2ggDQpUcmFnZWR5IFwiIG9mIEt5ZCBtYXkgYmUgdGFrZW4gdG8gcmVwcmVzZW50LHtbJiomXX0gaGlzIG90aGVyIA0KZWFybHkgd3JpdGluZ3MgZm9yYmlkIHVzIHRvIGJlbGlldmUuIFRoZSBzdXBwb3NlZCBTdHVybSANCnVuZCBEe1smKiZdfXJhbmcgcGVyaW9kIG9mIFNoYWtzcGVyZVwncyBhcnRpc3RpYyBjYXJlZXIgZXhpc3RzIA0Kb25seSBpbiB0aGUgaW1hZ2luYXRpb24ge1smKiZdfW9mIGhpcyBHZXJtYW4gY3JpdGljcy4gVGhlIGVhcmx5IA0KeWVhcnMgb2YgU2hha3NwZXJlXCdzIGF1dGhvcnNoaXAgd2VyZSB5ZWFye1smKiZdfXMgb2YgYnJpZ2h0IGFuZCANCnRlbmRlciBwbGF5IG9mIGZhbmN5IGFuZCBvZiBmZWVsaW5nLiBJZiBhbiBlcG9jaCBvZiBzdG9ybSB7WyYqJl19DQphbmQgc3RyZXNzIGF0IGFueSB0aW1lIGFycml2ZWQsIGl0IHdhcyB3aGVuIFNoYWtzcGVyZVwncyANCmdlbml1cyBoYWQgcmVhY2h7WyYqJl19ZWQgaXRzIGZ1bGwgbWF0dXJpdHksIGFuZCBMZWFyIHdhcyB0aGUgDQpwcm9kdWN0IG9mIHRoYXQgZXBvY2guIEJ1dCB0aGVpaV4gaXtbJiomXX1mIHRoZSBzdG9ybSBhbmQgc3RyZXNzIA0Kd2VyZSBwcm9sb25nZWQgYXJpZCB1cmdlbnQsIFNoYWtzcGVyZSBwb3NzZXNzZWQgc3Vme1smKiZdfWZpY2llbnQtIA0KcG93ZXIgb2YgZW5kdXJhbmNlLCBhbmQgaGFkIG9idGFpbmVkIHN1ZmZpY2llbnQgZ3Jhc3Agb2YgDQp0aGUgc3R7WyYqJl19cm9uZyBzdXJlIHJvb3RzIG9mIGxpZmUsIHRvIHNhdmUgaGltIGZyb20gYmVpbmcgYm9ybmUgDQphd2F5IGludG8gdGhlIGNoYW9zIHtbJiomXX1vciBpbiBhbmpeIGRpcmVjdGlvbiBhY3Jvc3MgdGhlIGJvcmRlcl4gDQpvZiB0aGUgb3JkZXJlZCByZWFsbSBvZiBhcnQuIFVwb24ge1smKiZdfXRoZSB3aG9sZSwgVGl0dXMgQW4tIA0KZHJvbmljdXMgbWF5IGJlIGRpc3JlZ2FyZGVkLiBFdmVuIGlmIGl0IHdlcmUgYSB3b3JrIA17WyYqJl19Cm9mIFNoYWtzcGVyZSwgd2Ugc2hvdWxkIHN0aWxsIGNhbGwgaXQgdW4tU2hha3NdM2VyaWFuLiANClwiIFNoYWtzcGVyZVwncyB0cmFne1smKiZdfWVkeSxcIiBHZXJhbGQgTWFzc2V5IGhhcyB0cnVseSBzYWlkLCBcIiBpcyANCnRoZSB0cmFnZWR5IG9mIFRlcnJvciA7IHRoaXMgaXMgdHtbJiomXX1oZSB0cmFnZWR5IG9mIEhvcnJvci4gLiDigKIgLiANCg0KR3Jvd3RoIG9mIFNoYWtzcGVyZXMgTWluZCBhbmQgQXJ0IDQ5IA0KDQpJe1smKiZdfXQgcmVla3MgYmxvb2QsIGl0IHNtZWxscyBvZiBibG9vZCA7IHdlIGFsbW9zdCBmZWVsIHRoYXQgd2UgDQpoYXZlIGhhbmRsZWQgYmx7WyYqJl19b29kIOKAlCBpdCBpcyBzbyBncm9zcy4gVGhlIG1lbnRhbCBzdGFpbiBpcyANCm5vdCB3aGl0ZW5lZCBieSBTaGFrc3BlcmVcJ3Mgc3d7WyYqJl19ZWV0IHNwcmluZ3Mgb2YgcGl0eSA7IHRoZSANCmhvcnJvciBpcyBub3QgaGFsbG93ZWQgYnkgdGhhdCBhcHBhbGxpbmcgc3VibGltaXtbJiomXX10eSB3aXRoIA0Kd2hpY2ggaGUgaW52ZXN0ZWQgaGlzIGNob3NlbiBtaW5pc3RlcnMgb2YgZGVhdGguIEl0IGlzIA0KdHJhZ2VkeSBve1smKiZdfW5seSBpbiB0aGUgY29hcnNlc3QgbWF0ZXJpYWwgcmVsYXRpb25zaGlwcy5cIi5eIA0KDQpPZiBQZXJpY2xlc14gdGhlIHBvcnRpb24ge1smKiZdfXdyaXR0ZW4gYnkgU2hha3NwZXJlIOKAlCB0aGUgDQpsb3ZlbHkgbGl0dGxlIHJvbWFuY2Ugd2hpY2ggTXIuIEZsZWF5IGhhcyBzZXB7WyYqJl19YXJhdGVkIGZyb20gDQp0aGUgY29hcnNlIHdvcmsgb2YgS293bGV5IGFuZCBXaWxraW5zLCBhbmQgbmFtZWQgTWEtIA0KcmluYSDigHtbJiomXX2UIGJlbG9uZ3MgdG8gdGhlIHBlcmlvZCBvZiBTaGFrc3BlcmVcJ3MgbWF0dXJpdHksIA0KYWZ0ZXIgMTYwMC4gUm93bGV5XCdzIHdvcmt7WyYqJl19IFwiaXMgYWx3YXlzIGRldGFjaGVkLCBhbmQgDQpzcGxpdHMgb2ZmIGZyb20gaGlzIGNvYWRqdXRvcnNcJyB3aXRoIGEgY2xlYW4gY2xle1smKiZdfWF2YWdlLiBJbiANCkZsZXRjaGVyXCdzIE1haWQgb2YgdGhlIE1pbGwgdGhlIHdvcmsgb2YgdGhlIHR3byBtZW4gDQptaWdodCBiZSBwe1smKiZdfXVibGlzaGVkIGFzIHR3byBzZXBhcmF0ZSBwbGF5cy5cInQgU2ltaWxhcmx5IA0KaW4gdGhlIHBsYXkgQSBDdXJlIGZvciBhIEN1Y2tve1smKiZdfWxkLCB0aGUgd29yayBvZiBSb3dsZXkgDQpzcGxpdHMgb2ZmIGZyb20gdGhhdCBvZiBXZWJzdGVyLCBsZWF2aW5nIHRoZSBsaXR0bGV7WyYqJl19IGRyYW1hIA0Kd2hpY2ggTXIuIEdvc3NlIGNsYWltcyB0aGUgaG9ub3Igb2YgaGF2aW5nIGRlbGl2ZXJlZCANCm91dF4gb2YgdGhlIHtbJiomXX1jb21wb3VuZCBtYW51ZmFjdHVyZSBvZiB0aGUgdHdvIGF1dGhvcnMsIA0KYW5kIHdoaWNoIGhlIGhhcyBncmFjZWZ1bGx5IGVudGl0e1smKiZdfWxlZCBMb3ZlcnMgR3JhZHVhdGVeWCANCg0KU2V0dGluZyBhc2lkZSBUaXR1cyBBbmRyb25pY3VzIGFuZCBNYXJpbmFeIGZvdXIgDQp7WyYqJl19ZHJhbWF0aWMgZXhwZXJpbWVudHMgYnkgU2hha3NwZXJlIHJlbWFpbiwgZWFjaCBpbiBhIA0KZGlmZmVyZW50IG1hbm5lciBmcm9tIHtbJiomXX10aGUgcmVzdC4gRmlyc3QsIGEgcG9ydGlvbiBhdCBsZWFzdCANCm9mIHRoZSBTZWNvbmQgYW5kIFRoaXJkIFBhcnRzIG9mIEtpbmcge1smKiZdfUhlbnJ5IFZMIOKAlCBFbmctIA0KbGlzaCBoaXN0b3JpY2FsIGRyYW1hLsKnIFRoZSBUd28gR2VudGxlbWVuIG9mIFZlcm9uYV4gDQp7WyYqJl19DQoqIFwiIFNoYWtlc3BlYXJlXCdzIFNvbm5ldHMgYW5kIGhpcyBQcml2YXRlIEZyaWVuZHMsXCIgcC4gNTgxLiBLcmV5c3NpZywgd2hvIHtbJiomXX0NCmFjY2VwdHMgVGl0dXMgQXJpZHJvbmljdXMgYXMgYW4gZWFybHkgd29yayBvZiBTaGFrc3BlcmUsIGdpdmVzIGFuIGVsYWJvcmF0e1smKiZdfWUgDQpzdHVkeSBvZiB0aGUgcGxheS4gRm9yIG1hdHRlcnMgb2YgZXh0ZXJuYWwgZXZpZGVuY2UsIGV0Yy4sIGNvbnN1bHQgdGhlIGF7WyYqJl19cnRpY2xlIA0KYnkgSC4gS3VyeiBpbiBTaGFrZXNwZWFyZS1KYWhyaHVjaF4gdm9sLiB2LiA7IGFuZCBvbiBjaGFyYWN0ZXJpc3RpY3tbJiomXX1zIG9mIG1ldHJlLCANCnRoZSBwcmVmYWNlIGJ5IEhlcnR6YmVyZyBpbiBTY2hsZWdlbCBhbmQgVGllY2tcJ3MgdHJhbnNsYXRpb24sIHtbJiomXX1lZGl0ZWQgYnkgDQptZW1iZXJzIG9mIHRoZSBHZXJtYW4gU2hha2VzcGVhcmUgU29jaWV0eS4gU2VlIGFsc28gTXIuIEFsYmVydCBDe1smKiZdfW9oblwncyANClwiU2hha2VzcGVhcmUgaW4gR2VybWFueSxcIiBwLiBjeGlpLiANCg0KdCBUcmFucy4gTmV3IFNoLiBTb2MsIHBhcnQgaS57WyYqJl19LCBcIk9uIHRoZSBQbGF5IG9mIFBlcmljbGVzLFwiIGJ5IHRoZSBSZXYuIEYuIEctIA0KRmxlYXkuIA0KDQpYIEZyYXNlclwncyBNYWdhentbJiomXX1pbmUsIE1heSwgMTg3NCwgXCIgSm9obiBXZWJzdGVyLFwiIGJ5IEVkbXVuZCBXLiBHb3NzZS4gDQoNCsKnIEluIE1yLiBSLiBHcmFudCB7WyYqJl19V2hpdGVcJ3MgRXNzYXkgdXBvbiB0aGUgYXV0aG9yc2hpcCBvZiBIZW5yeSBGLywgaGUgDQphcmd1ZXMgdGhhdCB0aGUgZWFybHkgQ297WyYqJl19bnRlbnRpb24gYW5kIHRoZSBUcnVlIFRyYWdlZGllIGNvbnRhaW4gcG9ydGlvbnMgLWl5IA0KNCANCg0KNTAgU2hha3NwZXJlIOKAlHtbJiomXX0gSGlzIE1pbmQgYW5kIEFydC4gDQoNCmEgY29tZWR5IG9mIGdyYWNlZnVsIG1pcnRsaSBhbmQgc3ByaWdodGx5IGFuZCB0ZW5kZXIge1smKiZdfQ0KZmVlbGluZywgd2l0aCB0aGUgaW50ZXJlc3Qgb2YgbG92ZSBwcmVkb21pbmFudDsgTG92Xl4gDQpMYWJvciBecyBMb3N0XiBhIGN7WyYqJl19b21lZHkgb2YgZGlhbG9ndWUsIGEgcGllY2Ugb2YgYWlyeSBzYXRpcmUsIA0Kd2l0aCBhbiB1bmRlcmx5aW5nIHNlcmlvdXMgaW50ZXtbJiomXX1udGlvbjsgdGhlIENvbWVkeSBvZiBFci0gDQpyb3JzXiBhIGNvbWVkeSBvZiBpbmNpZGVudCwgb2YgYWxtb3N0IGZhcmNpY2FsIGFke1smKiZdfXZlbnR1cmUg4oCUIA0KdGhlIHNvbGUgYXR0ZW1wdCBvZiBTaGFrc3BlcmUgYXQgaW1pdGF0aW9uIG9mIHRoZSBjb21pYyANCmRyYW17WyYqJl19YSBvZiBhbmNpZW50IFJvbWUuIEluIHRoaXMgcGxheSBTaGFrc3BlcmUgZ2F5bHkgDQpjb25mcm9udHMgaW1wcm9iYWJpbGl0aWVzLHtbJiomXX0gYW5kIHJlcXVpcmVzIHRoZSBzcGVjdGF0b3IgdG8gDQphY2NlcHQgdGhlbS4gSGUgYWRkcyB0byB0aGUgdHdpbnMgQW50aXBob2x1e1smKiZdfXMgdGhlIHR3aW5zIA0KRHJvbWlvLiBJZiB3ZSBhcmUgaW4gZm9yIGltcHJvYmFiaWxpdHksIGxldCB1cyBhdCBsZWFzdCBiZSANCnJ7WyYqJl19ZXBhaWQgZm9yIGl0IGJ5IGZ1biwgYW5kIGhhdmUgdGhhdCBpbiBhYnVuZGFuY2UuIExldCANCnRoZSBpbmNyZWRpYmxlIGJlY29tZXtbJiomXX0gYSB0d29mb2xkIGluY3JlZGliaWxpdHksIGFuZCBpdCBpcyANCm5vbmUgdGhlIHdvcnNlLl4gV2UgbWF5IGNvbmNsdWRlIHRoYXQse1smKiZdfSB3aGlsZSBTaGFrLSANCnNwZXJlIHdhcyByZWFkeSB0byB0cnkgaGlzIGhhbmQgdXBvbiBhIGZhcmNpY2FsIHN1YmplY3QsIA0KYSB7WyYqJl19c2luZ2xlIGV4cGVyaW1lbnQgc2F0aXNmaWVkIGhpbSB0aGF0IHRoaXMgd2FzIG5vdCBoaXMgDQpwcm92aW5jZSwgZm9yIHRvIHN1Y3tbJiomXX1oIHN1YmplY3RzIGhlIG5ldmVyIHJldHVybmVkLiANCg0KRHVyaW5nIHRoZSB5ZWFycyBpbiB3aGljaCB0aGUgcG9ldCB3YXMgZXhwe1smKiZdfWVyaW1lbnRpbmcgDQppbiBoaXN0b3J5LCBjb21lZHksIGFuZCBmYXJjZSwgdGhhdCBhYm91dCB3aGljaCBoZSB3YXMgDQptb3N0IG97WyYqJl19ZiBhbGwgc2VjcmV0bHkgY29uY2VybmVkIHdhcyBhIHRyYWdlZHkg4oCUIGEgdHJhZ2VkeSANCm9mIGEga2luZCBhbHRvZ2V0aGVyIHtbJiomXX1kaWZmZXJlbnQgZnJvbSBUaWhpcyBBbmRyb25pY3VzIGFuZCANCnRoZSBncm91cCBvZiBibG9vZHkgcGxheXMgdG8gd2hpY2ggaXQge1smKiZdfWJlbG9uZ3MuIFN1Y2ggYSANCmdyYWNlZnVsIHBpZWNlIG9mIGNvbWVkeSBhcyBUaGUgVHdvIEdlbnRsZW1lbiBvZiBWZS0gDQpUb257WyYqJl19YSBkaWQgbm90IHByb2ZvdW5kbHkgZW5nYWdlIGhpcyBpbWFnaW5hdGlvbi4gSWYgdGhlIA0KDQpTaGFrc3BlcmUsIGFmdGVyd2FyZHtbJiomXX1zIHRyYW5zZmVycmVkIHRvIGhpcyBIZW5yeSBGLy4sIFBhcnRzIElJLiBhbmQgSUlJLiA7IGFuZCANCnRoYXQgdGhlIHJlbWFpbm1ne1smKiZdfSBwb3J0aW9ucyBhcmUgYnkgTWFybG93ZSwgR3JlZW5lLCBhbmQgUGVlbGUuIEJ1dCBzZWUgDQpub3RlLCBwLiA4Ni4gDQoNCiogVGh7WyYqJl19ZSBzb3VyY2Ugb2YgdGhpcyBjb21lZHkgaXMgdXN1YWxseSBzYWlkIHRvIGJlIGEgdHJhbnNsYXRpb24gb2YgdGhlIA0KTWVub2VjaHtbJiomXX1taSBvZiBQbGF1dHVzLCBieSBXLiBXYXJuZXIuIEhlcnR6YmVyZywgaW4gaGlzIHByZWZhY2UgdG8gdGhlIHBsYXkgDQppbiB0aGUge1smKiZdfUdlcm1hbiBTaGFrZXNwZWFyZSBTb2NpZXR5XCdzIGVkaXRpb24gb2YgU2NobGVnZWwgYW5kIFRpZWNrXCdzIHRyYW5zLSANCmxhdGlvbntbJiomXX0sIGNhcmVmdWxseSBkaXN0aW5ndWlzaGVzIHRoZSBjaGFyYWN0ZXJzIGFuZCBpbmNpZGVudHMgd2hpY2ggU2hha3NwZXJlIA0KZGlke1smKiZdfSBub3Qgb3dlIHRvIHRoZSBNZW5vZWNocm5pLCBJbiB0aGUgYXJ0aWNsZSBcIlp3ZWkgbmV1ZW50ZGVja3RlIFNoYWtlLSANCnNwZWFye1smKiZdfWVxdWVsbGVuIFwiIChEaWUgTGl0ZXJhdHVyXiBKYW4uIDE2LCAxODc0KSwgdGhlIHdyaXRlciwgRHIuIFBhdWwgV2lzLSANCmxpY2Vue1smKiZdfXVzLCBwb2ludHMgb3V0IGFub3RoZXIgc291cmNlIGluIHRoZSBBbXBoaXRydW8uIEhpcyBzdXBwb3NpdGlvbiB0aGF0IA0KdGhlIGl7WyYqJl19bmNpZGVudCBvZiB0aGUgc3Rvcm0gaW4gdGhlIENvbWVkeSBvZiBFcnJvcnMgaXMgZGVyaXZlZCBmcm9tIHRoZSBzdG9ybSANCmluIHtbJiomXX1QZXJpY2xlcyBtdXN0IGJlIHNldCBhc2lkZSBhcyB1bnRlbmFibGUuIFNoYWtzcGVyZVwncyBhY3F1YWludGFuY2Ugd2l0aCANCnRoKntbJiomXX0qLCBBbXBoaXRydW8gbWF5IGhhdmUgYmVlbiBtYWRlLCBpbiB0aGUgZmlyc3QgaW5zdGFuY2UsIHRocm91Z2ggdGhlIHJ1ZGUgDQpFe1smKiZdfW5nbGlzaCBpbWl0YXRpb24gb2YgUGxhdXR1c1wncyBjb21lZHksIEphY2sgSnVnZ2xlci4gDQoNCmkgDQoNCkdyb3d0aCBvZiBTaGFre1smKiZdfXNwZXJlcyBNaW5kIGFuZCBBcnQgNSAxIA0KDQpmaWZ0aCBhY3QgY2FtZSBmcm9tIFNoYWtzcGVyZVwncyBwZW4gYXMgaXQgbm93IHN0e1smKiZdfWFuZHMsIHdlIA0KbXVzdCBiZWxpZXZlIHRoYXQgaGUgaGFuZGVkIG92ZXIgaGlzIHBsYXkgdG8gdGhlIGFjdG9ycyANCndoaWxlIGF7WyYqJl19IHBvcnRpb24gb2YgaXQgc3RpbGwgcmVtYWluZWQgb25seSBhIGhhc3R5IHNrZXRjaCwgDQp0aGUgZGVub3VlbWVudCBiZWluZyBsZXtbJiomXX1mdCBmb3IgZnV0dXJlIHdvcmtpbmcgb3V0LlwiXiBCdXQgDQp0aGUgZGVzaWduZWQgdHJhZ2VkeSBzZWVtcyB0byBoYXZlIGJlZW4gdHtbJiomXX1oZSBncmVhdCBhZmZhaXIgDQpvZiBoaXMgbGl0ZXJhcnkgY2FyZWVyIGF0IHRoaXMgcGVyaW9kLiBJdCBpcyB0aGUgb3BpbmlvbiBve1smKiZdfWYgDQpEeWNlLCBvZiBHcmFudCBXaGl0ZSwgYW5kIG9mIG90aGVycyB0aGF0IFNoYWtzcGVyZSBiZS0gDQpnYW4gdG8gd29yayB1cG97WyYqJl19biBSb21lbyBhbmQgSnVsaWV0IG5vdCBsYXRlciB0aGFuIGFib3V0IA0KMTU5MSA7IHRoYXQgaXMsIGFjY29yZGluZyB0byB0aGUgY3tbJiomXX1vbW1vbmx5IHJlY2VpdmVkIGNocm8tIA0Kbm9sb2d5LCBhbG1vc3QgYXQgdGhlIG1vbWVudCB3aGVuIGhlIGJlZ2FuIHRvIHdyaXRle1smKiZdfSANCmZvciB0aGUgc3RhZ2UgOyBhbmQgdGhhdCwgaGF2aW5nIG9jY3VwaWVkIGhpbSBmb3IgYSBzZXJpZXMgDQpvZiB5ZWFycywgdGh7WyYqJl19ZSB0cmFnZWR5IGFzc3VtZWQgaXRzIHByZXNlbnQgZm9ybSBhYm91dCANCjE1OTUtOTcuIElmIHRoaXMgYmUgdGhlIGNhc2UsIGFuZHtbJiomXX0gaWYsIGFzIHRoZXJlIGlzIHJlYXNvbiANCnRvIGJlbGlldmUsIFNoYWtzcGVyZSB3YXMgYWxzbyBkdXJpbmcgbWFueSB5ZWFycyBpe1smKiZdfW50ZXItIA0KZXN0ZWQgaW4gdGhlIHN1YmplY3Qgb2YgSGFtbGV0XiB3ZSBkaXNjb3ZlciBhIGZhY3Qgd2hpY2ggDQppcyBjaGFyYWN7WyYqJl19dGVyaXN0aWMgb2YgdGhlIHBvZXQg4oCUIHRoYXQgaGUgYWNjZXB0ZWQgdGhlIGtub3dsLSANCmVkZ2UgdGhhdCBoaXMgcG93ZXJzIHtbJiomXX13ZXJlIHVuZGV2ZWxvcGVkIGFuZCBhY3RlZCB1cG9uIA0KaXQsIHdhaXRpbmcgd2l0aCBoaXMgdHdvIGNob3NlbiBzdWJqZWN0cyDie1smKiZdfYCUIHRoZSBzdG9yeSBvZiB0aGUgDQoNCiogSGVydHpiZXJnIGlzIG9mIG9waW5pb24gdGhhdCBlaXRoZXIgdGhlIHBsYXkgd2FzIHJ7WyYqJl19ZWhhbmRsZWQgYW5kIGN1dCBkb3duIA0KYnkgc29tZSBFbGl6YWJldGhhbiBwbGF5d3JpZ2h0LCBvciBvdXIgdGV4dCB3YXMgaW1wZXtbJiomXX1yZmVjdGx5IG1hZGUgdXAgZnJvbSANCmNvcGllcyBvZiB0aGUgcGFydHMgb2YgdGhlIHNldmVyYWwgYWN0b3JzLiBJZiBlaXRoZXIge1smKiZdfW9mIHRoZXNlIGh5cG90aGVzZXMgYmUgDQpjb3JyZWN0LCB3ZSBhcmUgbm90IGluIHBvc3Nlc3Npb24gb2YgU2hha3NwZXJlXCdzIGNve1smKiZdfW1wbGV0ZSBwbGF5LiBUaGUgd29yZHMgDQphZGRyZXNzZWQgYnkgVmFsZW50aW5lIHRvIFByb3RldXMgKCBhY3Qgdi4sIHNjLiA0ICl7WyYqJl19LCBcIiBBbGwgdGhhdCBpcyBtaW5lIGluIA0KU3lsdmlhIEkgZ2l2ZSB0aGVlLFwiIGNhbm5vdCBiZSBhbiBpbnRlcnBvbGF0aW9uLCBme1smKiZdfW9yIHRoZXkgYXJlIG5lZWRlZCB0byBhYy0gDQpjb3VudCBmb3IgSnVsaWFcJ3MgZmFpbnRpbmcuIFdlcmUgdGhleSBzcG9rZW4gYnkge1smKiZdfVZhbGVudGluZSB0byB0ZXN0IHRoZSBsb3ktIA0KYWx0eSBvZiBoaXMgcHJvZmVzc2VkbHkgcmVwZW50YW50IGZyaWVuZCA/IEFuZCB7WyYqJl19aXMgdGhlcmUgYSBnYXAgaGVyZSwgb3JpZ2luYWxseSANCm9jY3VwaWVkIGJ5IHNwZWVjaGVzIG9mIFByb3RldXMgYW5kIFN5bHZpYXtbJiomXX0gPyBTZWUgSGVydHpiZXJnXCdzIHByZWZhY2UgaW4gDQp0aGUgR2VybWFuIFNoYWtlc3BlYXJlIFNvY2lldHlcJ3MgZWRpdGlvbiBvZiB7WyYqJl19U2NobGVnZWwgYW5kIFRpZWNrXCdzIHRyYW5zbGEtIA0KdGlvbi4gSGVydHpiZXJnIChyZWx5aW5nIHBhcnRseSBvbiBtZXRyaWNhbCB7WyYqJl19ZXZpZGVuY2UpIGFzc2lnbnMgYSBsYXRlciBwbGFjZSANCnRvIFRoZSBUd28gR210bGVybmVuIG9mIFZlaS1vbmEgaW4gdGhlIHN1Y3tbJiomXX1jZXNzaW9uIG9mIFNoYWtzcGVyZVwncyBwbGF5cyANCnRoYW4gdGhhdCB1c3VhbGx5IGFzc2lnbmVkIGJ5IGNyaXRpY3MuIEkgcmVtYXtbJiomXX1pbiB1bmNvbnZpbmNlZCBieSB0aGUgYXJndS0gDQptZW50cyBmb3IgbGF0ZW5lc3Mgb2YgZGF0ZS4gU2VlIG9uIHRoaXMgc3ViamVje1smKiZdfXQgYSBsZWN0dXJlIGJ5IE1yLiBIYWxlcyByZS0gDQpwb3J0ZWQgaW4gVGhlIEFjYWRlbXleIEphbi4gMzEsIDE4XCc3NCwgYW5kIE1ye1smKiZdfS4gRnVybml2YWxsXCdzIGNyaXRpY2lzbSBvZiB0aGUgDQpwYXBlciBieSB0aGUgUmV2LiBGLiBHLiBGbGVheSBpbiBUcmFucy4gTmV3e1smKiZdfSBTaC4gU28uLCAxODc0LiBIYXZpbmcgbWFkZSANCm91dCB0aGUgZ3JvdXAgb2YgU2hha3NwZXJlXCdzIGVhcmx5IGNvbWVkaWVzLCBpe1smKiZdfXQgZG9lcyBub3QgZ3JlYXRseSBtYXR0ZXIsIGZvciANCnRoZSBwdXJwb3NlcyBvZiB0aGUgcHJlc2VudCBzdHVkeSwgaW4gd2hhdCB7WyYqJl19b3JkZXIgdGhlIHBsYXlzIGZvbGxvd2VkIG9uZSBhbi0gDQpvdGhlciB3aXRoaW4gdGhlIGdyb3VwIDsgYnV0IEkgaW5jbGluZSB0b3tbJiomXX13YXJkcyBwbGFjaW5nIEEgTWlkc3VtbWVyIE5pZ2hmaSANCkRyZWFtIGxhc3QuIA0KDQo1MiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5ke1smKiZdfSBhbmQgQXJ0IA0KDQpzdGFyLWNyb3NzZWQgbG92ZXJzLCBhbmQgdGhlIHN0b3J5IG9mIHRoZSBtYW4gc3VtbW9uZWQgDQp0byBhY3R7WyYqJl19aW9uIHdob3NlIHdpbGwgd2FzIHNhcHBlZCDigJQgdW50aWwgaGUgYmVsaWV2ZWQgaGltLSANCnNlbGYgY29tcGV0ZW50IHRvIGRvIHtbJiomXX1qdXN0aWNlIHRvIGhpcyBjb25jZXB0aW9ucy4gV2hhdCBhIA0KY29udHJhc3QgaXMgcHJlc2VudGVkIGJ5IHRoaXMgd2FpdGluZyBve1smKiZdfWYgZ2VuaXVzLCB0aGlzIHBhLSANCnRpZW5jZSBcJ1wnIHVudGlsIHRoZSBnb2xkZW4gY291cGxldHMgYXJlIGRpc2Nsb3NlZCxcIiB0byB7WyYqJl19dGhlIA0KZmV2ZXJpc2ggZWFnZXJuZXNzIG9mIE1hcmxvd2UgdG8gYXBwZWFzZSBoaXMgYW1iaXRpb24gDQphbmQgdW5idXJkZW4gaHtbJiomXX1pbXNlbGYgb2YgdGhlIHByZXNzdXJlIG9mIGhpcyBpbWFnaW5hdGlvbiAhIA0KDQpBcyBjaGFyYWN0ZXJpc3RpYyBvZiB0aGVzZSBle1smKiZdfWFybHkgcGxheXMsIHdlIG1heSBub3RpY2UsKiANCihpLikgZnJlcXVlbmN5IG9mIHJoeW1lIGluIHZhcmlvdXMgYXJyYW5nZW1lbnR7WyYqJl19czoge2EpIA0Kcmh5bWVkIGNvdXBsZXRzOyAoSikgcmh5bWVkIHF1YXRyYWluczsge2MpIHRoZSBzZXh0YWluLCANCmNvbnNpc3RpbntbJiomXX1nIG9mIGFuIGFsdGVybmF0ZWx5IHJoeW1pbmcgcXVhdHJhaW4sIGZvbGxvd2VkIA0KYnkgYSBjb3VwbGV0ICh0aGUgYXJyYW5nZW1le1smKiZdfW50IG9mIHRoZSBsYXN0IHNpeCBsaW5lcyBvZiANClNoYWtzcGVyZVwncyBTb25uZXRzKSwgKGlpLikgT2NjdXJyZW5jZSBvZiByaHlte1smKiZdfWVkIGRvZy0gDQpnZXJlbCB2ZXJzZSBpbiB0d28gZm9ybXMgOiB7YSkgdmVyeSBzaG9ydCBsaW5lcywgYW5kIGliKSANCnZlcnkgbG97WyYqJl19bmcgbGluZXMsIChpaWkuKSBDb21wYXJhdGl2ZSBpbmZyZXF1ZW5jeSBvZiB0aGUgDQpmZW1pbmluZSAob3IgZG91YmxlKSBlbmRpbntbJiomXX1nIDsgKGl2LikgY29tcGFyYXRpdmUgaW5mcmUtIA0KdFt1ZW5jeSBvZiB0aGUgd2VhayBlbmRpbmcgOyAodi4pIGNvbXBhcmF0aXZle1smKiZdfSBpbmZyZXF1ZW4tIA0KY3kgb2YgdGhlIHVuc3RvcHBlZCBsaW5lIDsgKHZpLikgcmVndWxhciBpbnRlcm5hbCBzdHJ1Y3R1cmUgDQp7WyYqJl19b2YgdGhlIGxpbmUgOyBleHRyYSBzeWxsYWJsZXMgc2VsZG9tIHBhY2tlZCBpbnRvIHRoZSB2ZXJzZSA7IA0KKHZpaS4pIGZyZXF1ZXtbJiomXX1uY3kgb2YgY2xhc3NpY2FsIGFsbHVzaW9ucyA7ICh2aWlpLikgZnJlcXVlbmN5IG9mIA0KcHVucyBhbmQgY29uY2VpdHM7IChpeC4pe1smKiZdfSB3aXQgYW5kIGltYWdlcnkgZHJhd24gb3V0IGluIA0KZGV0YWlsIHRvIHRoZSBwb2ludCBvZiBleGhhdXN0aW9uOyAoeC4pIGNsb3d7WyYqJl19bnMgd2hvIGFyZSwgDQpieSBjb21wYXJpc29uIHdpdGggdGhlIGxhdGVyIGNvbWljIGNoYXJhY3RlcnMsIG91dHN0YW5kLSANCmluZ3tbJiomXX0gcGVyc29ucyBpbiB0aGUgcGxheSB0b2xkIG9mZiBzcGVjaWFsbHkgZm9yIGNsb3duYWdlIDsgDQooeGkuKSB0aGUgcHJlc2VuY2Uge1smKiZdfW9mIHRlcm1hZ2FudCBvciBzaHJld2lzaCB3b21lbiA7ICh4aWkuKSANCnNvbGlsb3F1aWVzIGFkZHJlc3NlZCByYXRoZXIgdG8gdGh7WyYqJl19ZSBhdWRpZW5jZSAodG8gZXhwbGFpbiANCnRoZSBidXNpbmVzcyBvZiB0aGUgcGllY2Ugb3IgdGhlIG1vdGl2ZXMgb2YgdGhlIGFjdHtbJiomXX1vcnMpIA0KdGhhbiB0byB0aGUgc3BlYWtlclwncyBzZWxmIDsgKHhpaWkuKSBzeW1tZXRyeSBpbiB0aGUgZ3JvdXAtIA0KaW5nIG9mIHtbJiomXX1wZXJzb25zLiANCg0KVG8gaWxsdXN0cmF0ZSB0aGUgbGFzdCBvZiB0aGVzZSBjaGFyYWN0ZXJpc3RpY3Mg4oCUIGFuZCBlYWNoIA0Ke1smKiZdfW9mIHRoZSBhYm92ZS1tZW50aW9uZWQgY2hhcmFjdGVyaXN0aWNzIG1pZ2h0IHJlYWRpbHkgYmUgDQppbGx1c3RyYXRlZCBhdCBsZW57WyYqJl19Z3RoIOKAlCB3ZSBtYXkgb2JzZXJ2ZSB0aGUgYXJyYW5nZW1lbnQgDQoNCiogU2VlIG9uIHRoaXMgc0FiamVjdCBhIGxlY3R1cmUgYntbJiomXX15IE1yLiBIYWxlcywgcmVwb3J0ZWQgaW4gVGhlIEFjYWRlbXleIA0KSmFuLiAxNywgMTg3NC4gDQoNCkdyb3d0aCBvZiBTaGFrc3Ble1smKiZdfXJlcyBNaW5kIGFuZCBBcnQgNSAzIA0KDQpvZiBkcmFtYXRpcyBwZXJzb25jZSBpbiBUaGUgVHdvIEdlbnRsZW1lbiBvZiBWZXJvbmF7WyYqJl19LiANClByb3RldXMsIHRoZSBmaWNrbGUsIGlzIHNldCBvdmVyIGFnYWluc3QgVmFsZW50aW5lLCB0aGUgDQpmYWl0aGZ1bCBmXCIgU3l7WyYqJl19bHZpYSwgdGhlIGJyaWdodCBhbmQgaW50ZWxsZWN0dWFsLCBpcyBzZXQgb3ZlciANCmFnYWluc3QgSnVsaWEsIHRoZSBhcmRlbnQgYXtbJiomXX1uZCB0ZW5kZXIgOyBMYXVuY2UsIHRoZSBodW1vci0gDQppc3QsIGlzIHNldCBvdmVyIGFnYWluc3QgU3BlZWQsIHRoZSB3aXQuIFNve1smKiZdfSBpbiBMb3ZlcnMgTGEtIA0KaGVyIF5zIExvc3ReIHRoZSBLaW5nIGFuZCBoaXMgdGhyZWUgZmVsbG93LXN0dWRlbnRzIGJhbGFuY2V7WyYqJl19IA0KdGhlIFByaW5jZXNzIGFuZCBoZXIgdGhyZWUgbGFkaWVzLiBUaGUgYXJyYW5nZW1lbnQgaXMgDQp0b28gZ2VvbWV0cmljYWwgO3tbJiomXX0gdGhlIGdyb3VwcyBhcmUgb2J2aW91c2x5IGFydGlmaWNpYWwsIG5vdCANCm9yZ2FuaWMgYW5kIHZpdGFsLiBUaGlzIGluZGljYXRle1smKiZdfXMgYSBjZXJ0YWluIHdhbnQgb2YgY29uLSANCmZpZGVuY2Ugb24gdGhlIHBhcnQgb2YgdGhlIHBvZXQ7IGhlIGZlYXJzIHRoZSB3ZWl7WyYqJl19Z2h0IG9mIA0KdG9vIG11Y2ggbGliZXJ0eS4gSGUgY2Fubm90IHlldCBmZWVsIHRoYXQgaGlzIHN0cnVjdHVyZSANCmlzIHNlY3VyZXtbJiomXX0gd2l0aG91dCBhIHN5c3RlbSBvZiBtZWNoYW5pc20gdG8gc3VwcG9ydCB0aGUgDQpzdHJ1Y3R1cmUuIEhlIGVuZGVhdm9ycyB0byBhe1smKiZdfXR0YWluIHVuaXR5IG9mIGVmZmVjdCBsZXNzIGJ5IA0KdGhlIGluc3BpcmF0aW9uIG9mIGEgY29tbW9uIGxpZmUgdGhhbiBieSB0aGV7WyYqJl19IGRpc3Bvc2l0aW9uIA0Kb2YgcGFydHMuIEhlIGZpbmRzIGhlIGNhbiBicmluZyBmb3J3YXJkIGhpcyBmb3JjZXMgaW4gDQp0dXJuLHtbJiomXX0gb25lIGFmdGVyIGFub3RoZXIsIG1vcmUgcmVhZGlseSB3aGVuIHRoZXkgYXJlIG51bS0gDQpiZXJlZCBhbmQgbWFyc2hhbGxlZCBpe1smKiZdfW4gZGVmaW5pdGUgb3JkZXIuIEluIHRoZSBvcGVuaW5nIA0Kc2NlbmUgb2YgaGlzIGVhcmxpZXN0IHRyYWdlZHksIHR3byBDYXB1bGV7WyYqJl19dCBtZW4tc2VydmFudHMgDQphcmUgZmlyc3QgaW50cm9kdWNlZCwgbmV4dCB0d28gTW9udGFndWUgbWVuLXNlcnZhbnRzOyANCnRoZXtbJiomXX1uIEJlbnZvbGlvIG9uIHRoZSBNb250YWd1ZSBzaWRlLCB0aGVuIFR5YmFsdCBvbiB0aGUgDQpDYXB1bGV0IHNpZGUgOyB0aGVuIG9ue1smKiZdfSBlYWNoIHNpZGUgY2l0aXplbnMgOyB0aGVuIG9sZCBDYXB1bGV0IA0KYW5kIExhZHkgQ2FwdWxldCwgdGhlbiBNb250YWd1ZSBhbmR7WyYqJl19IExhZHkgTW9udGFndWUgOyANCmZpbmFsbHksIGFzIGtleXN0b25lIHRvIGJpbmQgYWxsIHRvZ2V0aGVyLCB0aGUgUHJpbmNlLiBJbntbJiomXX0gDQp0aGUgcGxheXMgd2hpY2ggYmVsb25nIHRvIFNoYWtzcGVyZVwncyBwZXJpb2Qgb2YgbWFzdGVyLSANCnNoaXAgaGUgY2FuIGRpc3tbJiomXX1wZW5zZSB3aXRoIHN1Y2ggYXJ0aWZpY2UuIEluIHRoZXNlIGxhdGVyIA0KcGxheXMgdW5pdHkgaXMgcHJlc2VudCB0aHJvdWdoIHRoe1smKiZdfWUgdmlydHVlIG9mIG9uZSBsaXZpbmcgDQpmb3JjZSB3aGljaCBhbmltYXRlcyB0aGUgd2hvbGUuIFRoZSB1bml0eSBpcyBub3QgbWV7WyYqJl19cmUtIA0KbHkgc3RydWN0dXJhbCwgYnV0IHZpdGFsLiBBbmQgdGhlcmVmb3JlIHRoZSBwb2V0IGhhcyBubyANCmFwcHJlaGVuc2lvbntbJiomXX0gdGhhdCB0aGUgbWlub3IgY2VudHJlcyBvZiBkZXZlbG9wbWVudCBpbiANCmhpcyBjcmVhdGlvbiB3aWxsIHN1ZGRlbmx5IGJlY29te1smKiZdfWUgaW5zdWJvcmRpbmF0ZS4gQXMtIA0Kc3VyZWQgdGhhdCB0aGUgb3JnYW5pc20gaXMgbGl2aW5nLCBoZSBmZWFybGVzc2x5IGxldHN7WyYqJl19IGl0IGRlLSANCg0KKiBXaGVuIE1yLiBIYWxlcyBzYWlkLCBcIkV2ZW4gUHJvdGV1c1wncyBuYW1lIGlzIGEgc2lebiBvZiBlYXJseSB3e1smKiZdfW9yayDigJQgDQp0aGUgcmlwZXIgU2hha3NwZXJlIF5vZXMgbm90IGxpa2Ugc2lnbmlmaWNhbnQgbmFtZXMsXCIgaGUgZm9yZ290IEZle1smKiZdfXJkaXRhLCBNYS0gDQpyaW5hLCBNaXJhbmRhLiANCg0KNTQgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KdmVsb3B7WyYqJl19IGl0c2VsZiBpbiBpdHMgcHJvcGVyIG1vZGUsIHVuaWNlbnRyYWwgKGFzIE1hY2JldGgpXiANCm9yIG11bHRpY2VudHJhbCAoYXMgS3tbJiomXX1pbmcgTGVhcikuIEluIHRoZSBlYXJseSBwbGF5cyBzdHJ1Y3QtIA0KdXJlIGRldGVybWluZXMgZnVuY3Rpb24gOyBpbiB0aGUgbGF0e1smKiZdfWVyIHBsYXlzIG9yZ2FuaXphdGlvbiANCmlzIHByZWNlZGVkIGJ5IGxpZiBlLlwiXiANCg0KVGhlIGdyb3d0aCBvZiBTaGFrc3BlcmVcJ3tbJiomXX1zIGZyZWVkb20gYXMgYW4gYXJ0aXN0IHdhcyANCnJlYWxseSBpZGVudGljYWwgd2l0aCBoaXMgcGFzc2luZyB1bmRlciB0aGUgaW5me1smKiZdfWx1ZW5jZSBvZiBhIA0KaGlnaGVyIGxhdy4gVGhpcyBzdGF0ZW1lbnQsIHdoaWNoIGFwcGxpZXMgdG8gdGhlIHN0cnVjdC0gDQp1cmV7WyYqJl19IG9mIGhpcyBwbGF5cywgYXBwbGllcyBpbiBsaWtlIG1hbm5lciB0byB0aGUgYWx0ZXJpbmcgDQpjaGFyYWN0ZXIgb2YgaGlzIHZlcntbJiomXX1zaWZpY2F0aW9uLiBGb3IsIGluIHRydXRoLCBzdWNoIGFuIGFwLSANCnBhcmVudGx5IG1lY2hhbmljYWwgdGhpbmcgYXMgdGhlIHN0e1smKiZdfW9wcGluZyBvZiBhIHBhc3NhZ2UgDQpvZiB2ZXJzZSBpcyBub3QgbWVjaGFuaWNhbCwgYnV0IGluIGl0cyBlc3NlbmNlIHNwaXJpdHV7WyYqJl19YWwuIA0KQXQgZmlyc3QsIHdoZW4gd2UgcmVzb2x2ZSB0byBsaXZlIGEgbGlmZSBzb21ld2hhdCBoaWdoZXIgDQp0aGFuIHRoZSBjb3tbJiomXX1tbW9uIGxpZmUgb2YgdnVsZ2FyIGFjY2lkZW50LCB3ZSBkbyB3ZWxsIHRvIA0KcHV0IG91cnNlbHZlcyB1bmRlciBhIHN5c3RlbSBve1smKiZdfWYgcnVsZXMgYW5kIHByZWNlcHRzOyANCnRocm91Z2ggc3RyaWN0IG9ic2VydmFuY2Ugb2YgdGhlc2Ugd2Ugc2hhbGwgc2VjdXJlLCB7WyYqJl19aW4gYSANCmNlcnRhaW4gZGVncmVlLCB0aGUgaWRlYWxpdHkgb3VyIGxpZmUgaGFzIG5lZWQgb2YuIEJ1dCBpbiANCg0KKiBIZWJsZXtbJiomXX1yLCBpbiBoaXMgaW5nZW5pb3VzIGFuZCBkZWxpZ2h0ZnVsbHkgYnJpZWYgYW5hbHlzZXMgb2YgZm91cnRlZW4gY29tLSANCmVkaWVze1smKiZdfSBvZiBTaGFrc3BlcmUsIGVuZGVhdm9ycyB0byBwb2ludCBvdXQgYSBjdXJpb3VzbHkgc3ltbWV0cmljYWwgYXJyYW5nZS0gDQptZW57WyYqJl19dCBpbiB0aGUgc3RydWN0dXJlIGFuZCBhY3Rpb24gb2Ygc2V2ZXJhbCwgYXMgd2VsbCBsYXRlIGFzIGVhcmx5LiBJIGdpdmUgYSANCntbJiomXX1mZXcgZXhhbXBsZXMsIGFiYnJldmlhdGluZyBIZWJsZXIgeWV0IGZ1cnRoZXIuIDJcJ3dvIEdlbnRsZW1lbiwgYSBsb3lhbCANCmZyaXtbJiomXX1lbmQgYW5kIGxvdmVyIHNldCBvdmVyIGFnYWluc3QgYSBkaXNsb3lhbC4gTWVycnkgV2l2ZXMsIGFuIG9sZCBzaW5uZXIgDQpmbG91e1smKiZdfXRlZCBhbmQgZGlzYXBwb2ludGVkLCBhbmQgYSB5b3VuZyBwYWlyIG9mIGxvdmVycyB3aG9zZSByb2d1ZXJ5IGlzIHN1Yy0gDQpjZXN7WyYqJl19c2Z1bC4gTWVhc3VyZSBmb3IgTWVhc3VyZSwgQW5nZWxvIGNvbmRlbW5zIENsYXVkaW8gdG8gZGVhdGggZm9yIGNvbi0gDQpzdW1tYXtbJiomXX10aW5nIGhpcyBtYXJyaWFnZSB3aXRob3V0IENodXJjaCByaXRlcyA7IGJ5IHN0cmF0YWdlbSBoZSBpcyBoaW1zZWxmIA0KcGxhY2Vke1smKiZdfSBpbiBhbiBpZGVudGljYWwgcG9zaXRpb24gb2YgZ3VpbHQuIENvbWVkeSBvZiBFcnJvcnMsIHRoZSB0d2lucyBEcm8tIA0KbWlvIGF7WyYqJl19bmQgdGhlaXIgc3RvcnkgcmVwZWF0IHRoZSB0d2lucyBBbnRpcGhvbHVzIGFuZCB0aGVpcnMuIE11Y2ggQWRvLCB0d28gDQpsb3ZlcntbJiomXX1zIChCZWF0cmljZSBhbmQgQmVuZWRpY2spIGFyZSBicm91Z2h0IHRvZ2V0aGVyIGJ5IGFuIGhvbmVzdCBmcmF1ZCA7IHR3byANCmxve1smKiZdfXZlcnMgKENsYXVkaW8gYW5kIEhlcm8pIGFyZSBzZXBhcmF0ZWQgYnkgYSBjcmltaW5hbCBmcmF1ZC4gTWlkc3VtbWVyLSANCk5pZ2h7WyYqJl19ZnMgRHJlYW0sIHRoZSBsb3ZlIG9mIFRoZXNldXMgYW5kIEhpcHBvbHl0YSDigJQgaXRzIGNvdXJzZSBydW5uaW5nIA0Kc21vb3RoIHtbJiomXX07IGFuZCB0aGUgdHJvdWJsZWQgY291cnNlIG9mIGxvdmUgb2YgdGhlIGh1bWFuIG1vcnRhbHMsIG9mIE9iZXJvbiANCmFuZCBUaXRhe1smKiZdfW5pYSwgYW5kIChhcyBjb21pYyBjb250cmFzdCkgb2YgUHlyYW11cyBhbmQgVGhpc2JlLiBBbGwgXCdzIFdlbGwsIGEgDQp5b3VuZyBue1smKiZdfW9ibGVtYW4gbWlzbGVkIGJ5IGEgZmFsc2UgZnJpZW5kIHRvIHdob20gaGUgY2xlYXZlcywgYW5kIGZyb24qIA0Kd2hvbSBoZSBpcyB7WyYqJl19c2VwYXJhdGVkIGF0IGxlbmd0aCA7IGFuZCBsZWQgYXJpZ2h0IGJ5IGEgdHJ1ZSB3aWZlIHdob20gaGUgZGUtIA0Kc2VydHMsIGFuZHtbJiomXX0gdG8gd2hvbSBoZSBpcyB1bml0ZWQgYXQgbGVuZ3RoICh0aGUgZnJpZW5kLCBJIGFkZCwgaXMgYWxsIHdvcmRzIA0Kd2l0aG91dCBke1smKiZdfWVlZHMg4oCUIFBhcm9VZXMuIFRoZSB3aWZlIGlzIGRlZWRzIHdpdGhvdXQgd29yZHMpLiBTZWUgdGhlIGludGVyLSANCmVzdGluZyB7WyYqJl19cGFzc2FnZSBmcm9tIFZpc2NoZXIsIHdpdGggcmVmZXJlbmNlIHRvIHRoZSBkb3VibGUgYWN0aW9uIG9mIFNoYWstIA0Kc3BlcmVcJ3N7WyYqJl19IGNvbWVkaWVzLCBxdW90ZWQgYnkgSGVibGVyLCBcIkF1ZnNhdHplIGlpYmVyIFNoYWtlc3BlYXJlLFwiIHBwLiAxOV4gDQoxOTkuIA0Ke1smKiZdfQ0KLyANCg0KR3Jvd3RoIG9mIFNoYWtzcGVyZXMgTWluZCBhbmQgQXJ0LiA1NSANCg0KZHVlIHRpbWUgd2UgZmxpbmcgYXdheSBvdXJ7WyYqJl19IG1hbnVhbHMsIG91ciBjb2RlcyBvZiBzcGlyaXQtIA0KdWFsIGRyaWxsLCBvdXIgbGl0dGxlIHJ1bGVzIGFuZCByZXN0cmljdGlvbntbJiomXX1zLiBBIGRlZXBlciBvci0gDQpkZXIgdGFrZXMgYXV0aG9yaXR5IG92ZXIgb3VyIGJlaW5nLCBhbmQgcmVzdW1lcyBpbiBpdHNlbGYge1smKiZdfQ0KdGhlIG5hcnJvd2VyIG9yZGVyOyB0aGUgcmh5dGhtIG9mIG91ciBsaWZlIGFjcXVpcmVzIGEgDQpsYXJnZXIgaGFybW9ueSwgYSB7WyYqJl19bW92ZW1lbnQgZnJlZSBhbmQgeWV0IHN1cmUgYXMgdGhhdCBvZiANCm5hdHVyZS4gSW4gbGlrZSBtYW5uZXIsIGEgdGhvdWdodCBhdHtbJiomXX0gZmlyc3QgZW5kZWF2b3JzIHRvIA0Kc2VjdXJlIGlkZWFsaXR5IGZvciBpdHMgbGlmZSBieSBhZGhlcmVuY2UgdG8gYSBzeXN0ZW0ge1smKiZdfW9mIA0KbmFycm93IHJ1bGUuIFRoaXMgaXMgdGhlIGV4cGxhbmF0aW9uIG9mIHRoZSBlYXJseSBtYW4tIA0KbmVyIG9mIGFsbCBncmV7WyYqJl19YXQgd3JpdGVycyBvZiB2ZXJzZSwgYWxsIGdyZWF0IHBhaW50ZXJzIGFuZCANCm11c2ljaWFucywgYXMgY29tcGFyZWQgd2l0aCB0aHtbJiomXX1laXIgbGF0ZXIgbWFubmVyLiBUaGVpciANCnN0eWxlIGJlY29tZXMgZnJlZSBhbmQgZGFyaW5nLCBiZWNhdXNlIHRoZSBncmVhdCBme1smKiZdfWFjdHMgb2YgDQp0aGUgd29ybGQgaGF2ZSBub3cgdGFrZW4gaG9sZCBvZiB0aGVtLCBhbmQgYmVjYXVzZSANCnRoZWlyIHN1YmplY3R7WyYqJl19aW9uIHRvIGhpZ2hlc3QgbGF3IGlzIGF0IGxlbmd0aCBjb21wbGV0ZS4gDQpUaGV5IGFuZCB0aGVpciB3b3JrIGFyZSBhcyBmcmVlIHtbJiomXX1hcyB0aGUgd2luZHMsIG9yIGFzIHRoZSANCmdyb3dpbmcgZ3Jhc3MsIG9yIGFzIHRoZSB3YXZlcywgb3IgdGhlIGRyaWZ0IG9mIGNse1smKiZdfW91ZHMsIG9yIA0KdGhlIG1vdGlvbiBvZiB0aGUgc3RhcnMuIEFzIGZyZWUsIHRoYXQgaXMgdG8gc2F5LCBpbiBjb20tIA0KcGxldGV7WyYqJl19LCBub2JsZSwgYW5kIGdsYWQgc3ViamVjdGlvbi4gDQoNCkxvdmVycyBMYWJvciBecyBMb3N0XiBpZiB3ZSBkbyBub3QgYXNzaWduIHtbJiomXX10aGF0IHBsYWNlIHRvIA0KVGhlIFR3byBHZW50bGVtZW4gb2YgVmVyb25hXiBpcyB0aGUgZmlyc3QgaW5kZXBlbmRlbnQsIA0Kd2hve1smKiZdfWxseSBvcmlnaW5hbCB3b3JrIG9mIFNoYWtzcGVyZS4gTXIuIENoYXJsZXMgS25pZ2h0IA0KbmFtZWQgaXQgXCIgVGhlIENvbWVkeSBve1smKiZdfWYgQWZmZWN0YXRpb25zLFwiIGFuZCB0aGF0IHRpdGxlIA0KYXB0bHkgaW50ZXJwcmV0cyBvbmUgaW50ZW50aW9uIG9mIHRoZSBwbGF5e1smKiZdfS4gSXQgaXMgYSBzYXRpcmktIA0KY2FsIGV4dHJhdmFnYW56YSBlbWJvZHlpbmcgU2hha3NwZXJlXCdzIGNyaXRpY2lzbSB1cG9uIA0Ke1smKiZdfWNvbnRlbXBvcmFyeSBmYXNoaW9ucyBhbmQgZm9pYmxlcyBpbiBzcGVlY2gsIGluIG1hbm5lcnMsIA0KYW5kIGluIGxpdGVyYXR1cmV7WyYqJl19LiBUaGlzIHByb2JhYmx5LCBtb3JlIHRoYW4gYW55IG90aGVyIA0Kb2YgdGhlIHBsYXlzIG9mIFNoYWtzcGVyZS4gc3VmZmVycyB0aHtbJiomXX1yb3VnaCBsYXBzZSBvZiB0aW1lLiANCkZhbnRhc3RpY2FsIHNwZWVjaCwgcGVkYW50aWMgbGVhcm5pbmcsIGV4dHJhdmFnYW50IGxve1smKiZdfXZlLSANCmh5cGVyYm9sZSwgZnJpZ2lkIGZlcnZvcnMgaW4gcG9ldHJ5IOKAlCBhZ2FpbnN0IGVhY2ggb2YgdGhlc2UsIA0Kd2l0aCB7WyYqJl19dGhlIGJyaWdodG5lc3MgYW5kIHZpdmFjaXR5IG9mIHlvdXRoLCBjb25maWRlbnQgaW4gDQp0aGUgc3VjY2VzcyBvZiBpdHMgY2F1c3tbJiomXX1lLCBTaGFrc3BlcmUgZGlyZWN0cyB0aGUgbGlnaHQgYXJ0aWwtIA0KbGVyeSBvZiBoaXMgd2l0LiBCZWluZyB5b3VuZyBhbmQgY2xle1smKiZdfXZlciwgaGUgaXMgYWJzb2x1dGVseSANCmRldm9pZCBvZiByZXNwZWN0IGZvciBub25zZW5zZSwgd2hldGhlciBpdCBiZSBkYWludHl7WyYqJl19LCBhZi0gDQpmZWN0ZWQgbm9uc2Vuc2UsIG9yIGdyYXZlLCB1bmNvbnNjaW91cyBub25zZW5zZS4gDQoNCkJ1dCwgb3ZlciBhbmQgYXtbJiomXX1ib3ZlIHRoaXMsIHRoZXJlIGlzIGEgc2VyaW91cyBpbnRlbnRpb24gaW4gDQp0aGUgcGxheS4gSXQgaXMgYSBwcm90ZXN0IGFnYWlue1smKiZdfXN0IHlvdXRoZnVsIHNjaGVtZXMgb2YgDQoNCjU2IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCkJuYXBpbmcgbGl7WyYqJl19ZmUgYWNjb3JkaW5nIHRvIG5vdGlvbnMgcmF0aGVyIHRoYW4gYWNjb3JkaW5nIA0KdG8gcmVhbGl0eSwgYSBwcm90ZXN0IGFnYWluc3tbJiomXX10IGlkZWFsaXppbmcgYXdheSB0aGUgZmFjdHMgb3QgDQpsaWZlLiBUaGUgcGxheSBpcyBjaGllZmx5IGludGVyZXN0aW5nIGFzIGNve1smKiZdfW50YWluaW5nIFNoYWstIA0Kc3BlcmVcJ3MgY29uZmVzc2lvbiBvZiBmYWl0aCB3aXRoIHJlc3BlY3QgdG8gdGhlIHRydWUgcHJpbmNpe1smKiZdfS0gDQpwbGVzIG9mIHNlbGYgLWN1bHR1cmUuIFRoZSBLaW5nIG9mIE5hdmFycmUgYW5kIGhpcyB5b3VuZyANCmxvcmRzIGhhZCByZXN7WyYqJl19b2x2ZWQsIGZvciBhIGRlZmluaXRlIHBlcmlvZCBvZiB0aW1lLCB0byBjaXJjdW0tIA0Kc2NyaWJlIHRoZWlyIGJlaW5ncyBhbmQgdHtbJiomXX1oZWlyIGxpdmVzIHdpdGggYSBsaXR0bGUgY29kZSBvZiANCnJ1bGVzLiBUaGV5IGhhZCBkZXNpZ25lZCB0byBlbmNsb3NlIGEgbGl0e1smKiZdfXRsZSBmYXZvcmVkIHBhcmsgDQppbiB3aGljaCBpZGVhcyBzaG91bGQgcnVsZSB0byB0aGUgZXhjbHVzaW9uIG9mIHRoZSBibGluZCB7WyYqJl19DQphbmQgcnVkZSBmb3JjZXMgb2YgbmF0dXJlLiBUaGV5IHdlcmUgcGxlYXNlZCB0byByZS0gDQphcnJhbmdlIGh1bWFuIGNoYXJhY3tbJiomXX10ZXIgYW5kIGh1bWFuIGxpZmUsIHNvIHRoYXQgaXQgbWlnaHQgDQphY2NvcmQgd2l0aCB0aGVpciBpZGVhbGlzdGljIHNjaGVtZSBve1smKiZdfWYgc2VsZiAtZGV2ZWxvcG1lbnQuIA0KVGhlIGNvdXJ0IHdhcyB0byBiZSBhIGxpdHRsZSBBY2FkZW1lIDsgbm8gd29tYW4gd2FzIHR7WyYqJl19byANCmJlIGxvb2tlZCBhdCBmb3IgdGhlIHNwYWNlIG9mIHRocmVlIHllYXJzIDsgZm9vZCBhbmQgc2xlZXAgDQp3ZXJlIHRvIGJlIHtbJiomXX1wbGFjZWQgdW5kZXIgcHJlY2lzZSByZWd1bGF0aW9uLiBBbmQgdGhlIHJlLSANCnN1bHQgaXMg4oCUIHdoYXQgPyBUaGF0IGh1bWFue1smKiZdfSBuYXR1cmUgcmVmdXNlcyB0byBiZSBkZWFsdCANCndpdGggaW4gdGhpcyBmYXNoaW9uIG9mIGFyYml0cmFyeSBzZWxlY3Rpb24gYW57WyYqJl19ZCByZWplY3Rpb24uIA0KVGhlIHlvdXRoZnVsIGlkZWFsaXN0cyBoYWQgc3VwcG9zZWQgdGhhdCB0aGV5IHdvdWxkIA0KZm9ybSBhIHtbJiomXX1saXR0bGUgZ3JvdXAgb2Ygc2VsZWN0IGFuZCByZWZpbmVkIGFzY2V0aWNzIG9mIA0Ka25vd2xlZGdlIGFuZCBjdWx0dXJlIDsgaXQge1smKiZdfXdhcyBxdWlja2x5IHByb3ZlZCB0aGF0IHRoZXkgDQp3ZXJlIG1lbi4gVGhlIHBsYXkgaXMgU2hha3NwZXJlXCdzIGRlY2xhcmF0aW9ue1smKiZdfSBpbiBmYXZvciANCm9mIHRoZSBmYWN0IGFzIGl0IGlzLiBIZXJlLCBoZSBzYXlzLCB3ZSBhcmUgd2l0aCBzdWNoIGFuZCANCnN1Y2h7WyYqJl19IGFwcGV0aXRlcyBhbmQgcGFzc2lvbnMuIExldCB1cywgaW4gYW55IHNjaGVtZSBvZiANCnNlbGYgLWRldmVsb3BtZW50LCBnZXQgdHtbJiomXX1oYXQgZmFjdCBhY2tub3dsZWRnZWQgYXQgYWxsIGV2ZW50cyA7IA0Kb3RoZXJ3aXNlIHdlIHNoYWxsIHF1aWNrbHkgZW5vdWdoIGJle1smKiZdfXRyYXkgb3Vyc2VsdmVzIGFzIA0KYXJyYW50IGZvb2xzLCBmaXQgdG8gYmUgZmxvdXRlZCBieSB3b21lbiwgYW5kIG5lZWRpbmcgdG97WyYqJl19IA0KbGVhcm4gZnJvbSB0aGVtIGEgcG9ydGlvbiBvZiB0aGVpciBkaXJlY3RuZXNzLCBwcmFjdGljYWxpdHksIA0KYW5kIGdvb2Qtc3tbJiomXX1lbnNlLiANCg0KQW5kIHlldCB0aGUgUHJpbmNlc3MgYW5kIFJvc2FsaW5lIGFuZCBNYXJpYSBoYXZlIA0Kbm90IHRoZSBlbnRpcmUge1smKiZdfWFkdmFudGFnZSBvbiB0aGVpciBzaWRlLiBJdCBpcyB3ZWxsIHRvIGJlIA0KcHJhY3RpY2FsIDsgYnV0IHRvIGJlIHByYWN0aWNhbCx7WyYqJl19IGFuZCBhbHNvXnRvIGhhdmUgYSBjYXBhY2l0eSANCmZvciBpZGVhcywgaXMgYmV0dGVyLiBCZXJvd25lLCB0aGUgZXhwb25lbnQgb3tbJiomXX1mIFNoYWtzcGVyZVwncyANCm93biB0aG91Z2h0LCB3aG8gZW50ZXJlZCBpbnRvIHRoZSB5b3V0aGZ1bCwgaWRlYWxpc3RpYyANCnByb3tbJiomXX1qZWN0IG9mIGhpcyBmcmllbmRzLCB3aXRoIGEgc2F0aXNmYWN0b3J5IGFzc3VyYW5jZSB0aGF0IA0KdGhlIHRpbWUgd291bGQgY29te1smKiZdfWUgd2hlbiB0aGUgZW50aXJlIGRyZWFtLXN0cnVjdHVyZSANCg0KR3Jvd3RoIG9mIFNoYWtzcGVyZSBzIE1pbmQgYW5kIEFydC4gNTd7WyYqJl19IA0KDQp3b3VsZCB0dW1ibGUgcmlkaWN1bG91c2x5IGFib3V0IHRoZSBlYXJzIG9mIHRoZW0gYWxs4oCUIA0KQmVyb3duZSBpcyB5ZXtbJiomXX10IGEgbGFyZ2VyIG5hdHVyZSB0aGFuIHRoZSBQcmluY2VzcyBvciBSb3NhKiANCmxpbmUuIEhpcyBnb29kIC1zZW5zZSBpcyB0aGUge1smKiZdfWdvb2QgLXNlbnNlIG9mIGEgdGhpbmtlciANCmFuZCBvZiBhIG1hbiBvZiBhY3Rpb24uIFdoZW4gaGUgaXMgbW9zdCBmbG91dGVkIA17WyYqJl19CmFuZCBiZW1vY2tlZCwgd2UgeWV0IGFja25vd2xlZGdlIGhpbSB2aWN0b3Jpb3VzIGFuZCANCnRoZSBtYXN0ZXI7IGFuZCBSb3NhbHtbJiomXX1pbmUgd2lsbCBjb25mZXNzIHRoZSBmYWN0IGJ5LWFuZC0gDQoNCmJ5LiANCg0KSW4gdGhlIG1pZHN0IG9mIG1lcnJpbWVudCBhbmQge1smKiZdfW5vbnNlbnNlIGNvbWVzIGEgc3VkLSANCmRlbiBhbmQgZ3JpZXZvdXMgaW5jdXJzaW9uIG9mIGZhY3QgZnVsbCBvZiBwYWluLiBUaGV7WyYqJl19IA0KZmF0aGVyIG9mIHRoZSBQcmluY2VzcyBpcyBkZWFkLiBBbGwgdGhlIHdvcmxkIGlzIG5vdCANCm1pcnRoIOKAlCBcIiB0aGlzIHN7WyYqJl19aWRlIGlzIEhpZW1zLCBXaW50ZXIgOyB0aGlzIFllciwgdGhlIA0KU3ByaW5nLlwiIFRoZSBsb3ZlcnMgbXVzdCBwYXJ0IOKAlCBcIiBKe1smKiZdfWFjayBoYXRoIG5vdCBoaXMgDQpKaWxsIDtcIiBhbmQgdG8gZW5ncmF2ZSB0aGUgbGVzc29uIGRlZXBseSwgd2hpY2ggZWFjaCBoZWFye1smKiZdfXQgDQpuZWVkcywgdGhlIEtpbmcgYW5kIHR3byBvZiBoaXMgY29tcGFuaW9ucyBhcmUgZGlzbWlzc2VkIA0KZm9yIGEgdHdlbHZlbW97WyYqJl19bnRoIHRvIGxlYXJuIHRoZSBkaWZsRWVyZW5jZSBiZXR3ZWVuIHJlYWxpdHkgDQphbmQgdW5yZWFsaXR5IDsgd2hpbGUgQmVyb3duZXtbJiomXX0sIHdobyBoYXMga25vd24gdGhlIG1pcnRoIA0Kb2YgdGhlIHdvcmxkLCBtdXN0IGFsc28gbWFrZSBhY3F1YWludGFuY2Ugd2l0aCBpe1smKiZdfXRzIHNvci0gDQpyb3csIG11c3QgdmlzaXQgdGhlIHNwZWVjaGxlc3Mgc2ljayBhbmQgdHJ5IHRvIHdpbiBcIiB0aGUgDQpwYWluZWQge1smKiZdfWltcG90ZW50IHRvIHNtaWxlLlwiIA0KDQpMZXQgdXMgZ2V0IGhvbGQgb2YgdGhlIHJlYWxpdGllcyBvZiBodW1hbiBuYXR1cmUgYW5ke1smKiZdfSANCmh1bWFuIGxpZmUsIFNoYWtzcGVyZSB3b3VsZCBzYXksIGFuZCBsZXQgdXMgZm91bmQgdXBvbiANCnRoZXNlIHJlYWxpdGllcyx7WyYqJl19IGFuZCBub3QgdXBvbiB0aGUgbWlzdCBvciB0aGUgYWlyLCBvdXIgDQpzY2hlbWVzIG9mIGluZGl2aWR1YWwgYW5kIHNvY2lhbCBhZHtbJiomXX12YW5jZW1lbnQuIElTVG90IHRoYXQgDQpTaGFrc3BlcmUgaXMgaG9zdGlsZSB0byBjdWx0dXJlIDsgYnV0IGhlIGtub3dzIHRoYXQge1smKiZdfWEgcGVyLSANCmZlY3QgZWR1Y2F0aW9uIG11c3QgaW5jbHVkZSB0aGUgY3VsdHVyZSwgdGhyb3VnaCBhY3R1YWwgDQpleHBlcmllbmN7WyYqJl19ZSwgb2YgdGhlIHNlbnNlcyBhbmQgb2YgdGhlIGFmbEVlY3Rpb25zLiBMb25nIA0KYWZ0ZXIgdGhpcyBwbGF5IHdhcyB3cml0dGVuLHtbJiomXX0gU2hha3NwZXJlIGltYWdpbmVkIFBlcmRpdGEsIA0KaGlzIHNoZXBoZXJkZXNzLXByaW5jZXNzLCBwb3NzZXNzZWQgb2YgYWxsIHRoe1smKiZdfWUgZ3JhY2UgYW5kIA0KcmVmaW5lbWVudCBvZiBwZXJmZWN0IGJyZWVkaW5nLCB3aXRoIGFsbCB0aGUgaW5ub2NlbmNlIA0KYW5kIG57WyYqJl19YXRpdmUgbGliZXJ0eSBvZiBydXN0aWMgZ2lybGhvb2QuIFBlcmRpdGEgcmVmdXNlcyB0byANCmFkbWl0IGludG8gaGVyIGdhcmRlbntbJiomXX0gdGhlIHBhcnRpLWNvbG9yZWQgZmxvd2VycyB0aGF0IGhhZCANCmJlZW4gXCcgYXJ0aWZsY2lhbGx5IHByb2R1Y2VkLCBcIiBzdHJlYWt7WyYqJl19ZWQgZ2lsbHl2b3JzLCB3aGljaCANCnNvbWUgY2FsbCBuYXR1cmVcJ3MgYmFzdGFyZHMuXCIgQnV0IGludG8gUG9saXhlbmVzXCcgbW91dHtbJiomXX1oIA0KU2hha3NwZXJlIHB1dHMgYW4gdW5hbnN3ZXJhYmxlIGRlZmVuY2Ugb2YgY3VsdHVyZSwgc28gDQp0aGF0IHRvIG1ha2UgZ29ve1smKiZdfWQgaGVyIGRlY2lzaW9uIHRoZXJlIHJlbWFpbnMgdG8gUGVyZGl0YSANCg0KNTggU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ7WyYqJl19TCANCg0Kb25seSBhbiBleHF1aXNpdGUgaW5zdGluY3Qgb2YgdW5yZWFzb25pbmcgc2luY2VyaXR5LCBvciBhIA0KZ3JhY2VmdWwgd3tbJiomXX1pbGZ1bG5lc3Mgd2hpY2ggcmVmdXNlcyB0byBiZSBjb252aW5jZWQgOiANCg0KXCJQbz8uIFdoZXJlZm9yZSwgZ2VudGxlIG1haWRlbntbJiomXX0sIA0KDQpEbyB5b3UgbmVnbGVjdCB0aGVtID8gDQoNClBlci4gRm9yIEkgaGF2ZSBoZWFyZCBpdCBzYWlkLiANCg0KVGhlcmUgaXMge1smKiZdfWFuIGFydCB3aGljaCwgaW4gdGhlaXIgcGllZG5lc3MsIHNoYXJlcyANCldpdGggZ3JlYXQgY3JlYXRpbmcgbmF0dXJlLiANCg0KUG97WyYqJl19bC4gU2F5LCB0aGVyZSBiZSA7IA0KDQpZZXQgbmF0dXJlIGlzIG1hZGUgYmV0dGVyIGJ5IG5vIG1lYW4sIA0KQnV0IG5hdHVyZSBtYXtbJiomXX1rZXMgdGhhdCBtZWFuIDsgc28gb3ZlciB0aGF0IGFydCAqIA0KV2hpY2ggeW91IHNheSBhZGRzIHRvIG5hdHVyZSwgaXMgYW4gYXJ0e1smKiZdfSANClRoYXQgbmF0dXJlIG1ha2VzLiBZb3Ugc2VlLCBzd2VldCBtYWlkLCB3ZSBtYXJyeSANCkEgZ2VudGxlciBzY2lvbiB0byB0aGV7WyYqJl19IHdpbGRlc3Qgc3RvY2suIA0KQW5kIG1ha2UgY29uY2VpdmUgYSBiYXJrIG9mIGJhc2VyIGtpbmQgDQpCeSBidWQgb2Ygbm9ibGVyIHtbJiomXX1yYWNlIDsgdGhpcyBpcyBhbiBhcnQgDQpXaGljaCBkb2VzIG1lbmQgbmF0dXJlLCBjaGFuZ2UgaXQgcmF0aGVyLCBidXQgDQpUaGUge1smKiZdfWFydCBpdHNlbGYgaXMgbmF0dXJlLiANCg0KRmVyLiBTbyBpdCBpcy4gDQoNClBvbCwgVGhlbiBtYWtlIHlvdXIgZ2FyZGVuIHJpY2h7WyYqJl19IGluIGdpbGx5dm9ycywgDQpBbmQgZG8gbm90IGNhbGwgdGhlbSBiYXN0YXJkcy4gDQoNClBlci4gaW5pIG5vdCBwdXQgDQoNClRoZXtbJiomXX0gZGliYmxlIGluIGVhcnRoIHRvIHNldCBvbmUgc2xpcCBvZiB0aGVtLlwiIA0KDQpTaGFrc3BlcmVcJ3MgdmlldyBvZiBodW1hbiBjdWx7WyYqJl19dHVyZSBhbmQgaHVtYW4gbGlmZSBhZC0gDQptaXR0ZWQgbm8gZXNzZW50aWFsIG9wcG9zaXRpb24gYmV0d2VlbiBQZXJkaXRhXCdzIGl7WyYqJl19bnN0aW5jdCANCm9mIHNpbmNlcml0eSBhbmQgdGhlIG1hdHVyZXIgd2lzZG9tIG9mIFBvbGl4ZW5lcy4gDQoNCkluIHRoZSBzZWNvbntbJiomXX1kIGFjdCBvZiB0aGUgQ29tZWR5IG9mIEVycm9ycyAoc2MuIDIpIG9jLSANCmN1cnMgdGhlIGZvbGxvd2luZyBkaWFsb2d1ZSA6IA0Ke1smKiZdfQ0KXl5MdWNpYW5hLiBEcm9taW8sIGdvIGJpZCB0aGUgc2VydmFudHMgc3ByZWFkIGZvciBkaW5uZXIuIA0KDQpEcm8uIFMuIDAsIGZ7WyYqJl19b3IgbXkgYmVhZHMgISBJIGNyb3NzIG1lIGZvciBhIHNpbm5lci4gDQpUaGlzIGlzIHRoZSBmYWlyeS1sYW5kIDogc3BpdGUgb2Ygc3tbJiomXX1waXRlcyAhIA0KV2UgdGFsayB3aXRoIGdvYmxpbnMsIG93bHMsIGFuZCBzcHJpdGVzOiANCklmIHdlIG9iZXkgdGhlbSBub3QsIHRoe1smKiZdfWlzIHdpbGwgZW5zdWUg4oCUIA0KVGhleVwnbGwgc3VjayBvdXIgYnJlYXRoIG9yIHBpbmNoIHVzIGJsYWNrIGFuZCBibHVlLiANCg0Ke1smKiZdfUx1Yy4gV2h5IHByYXRcJ3N0IHRob3UgdG8gdGh5c2VsZiBhbmQgYW5zd2VyXCdzdCBub3QgPyANCkRyb21pbywgdGhvdSBkcm9uZSwgdHtbJiomXX1ob3Ugc25haWwsIHRob3Ugc2x1ZywgdGhvdSBzb3QgSSANCg0KRHJvLiBTLiBJIGFtIHRyYW5zZm9ybWVkLCBtYXN0ZXIsIGFtIEkge1smKiZdfW5vdCA/IA0KDQpBbnQuIFMuIEkgdGhpbmsgdGhvdSBhcnQsIGluIG1pbmQsIGFuZCBzbyBhbSBJLiANCg0KRHJvLiA4LiBOYXksIG17WyYqJl19YXN0ZXIsIGJvdGggaW4gbWluZCBhbmQgaW4gbXkgc2hhcGUuIA0KDQrigJQg4oCUXCcgDQoNCiogUHJvZmVzc29yIENyYWlrIGNvbmp7WyYqJl19ZWN0dXJlZCBcImV2ZW4gdGhhdCBhcnQuXCIgDQoNCkdyb3d0aCBvZiBTaGFrc3BlcmVzIE1pbmQgYW5kIEFydCA1OSANCg0KQXV0IDgue1smKiZdfSBUaG91IGhhc3QgdGhpbmUgb3duIGZvcm0uIA0KDQpEcm8uIFMuIE5vLCBJIGFtIGFuIGFwZS4gDQoNCkx1Yy4gSWYgdGhvdSBhcnR7WyYqJl19IGNoYW5nZWQgdG8gYXVnaHQsIFwndGlzIHRvIGFuIGFzcy5cIiANCg0KV2hlbiBTaGFrc3BlcmUgd3JvdGUgdGh1cyBvZiBmYWlyeS1se1smKiZdfWFuZCwgb2YgdGhlIHByYW5rcyANCm9mIFJvYmluIEdvb2RmIGVsbG93LCBhbmQgb2YgdGhlIHRyYW5zZm9ybWF0aW9uIG9mIGEgbWF7WyYqJl19biANCnRvIGFuIGFzcywgY2FuIGl0IGJlIGRvdWJ0ZWQgdGhhdCBoZSBsaWFkIGluIGhpcyB0aG91Z2h0cyANCkEgTWlkc3VtbWVyLXtbJiomXX1KVmlnaGZzIERyZWFtID8gVGhlIHBsYXkgd2FzIHBlcmhhcHMgDQpzbyBuYW1lZCBiZWNhdXNlIGl0IGlzIGEgZHJlYW0tcGxheSwge1smKiZdfXRoZSBmYW50YXN0aWMgYWR2ZW50LSANCnVyZXMgb2YgYSBuaWdodCwgYW5kIGJlY2F1c2UgaXQgd2FzIGZpcnN0IHJlcHJlc2VudGV7WyYqJl19ZCBpbiANCm1pZHN1bW1lciDigJQgdGhlIG1pZHN1bW1lciwgcGVyaGFwcywgb2YgMTU5NC4gVGhlIA0KaW1hZ2luZWQgc2Vhc29uIHtbJiomXX1vZiB0aGUgYWN0aW9uIG9mIHRoZSBwbGF5IGlzIHRoZSBiZWdpbi0gDQpuaW5nIG9mIE1heSwgZm9yLCBhY2NvcmRpbmcgdG8gdGhle1smKiZdfSBtYWduaWZpY2VudCBwaWVjZSBvZiANCm1lZGlhZXZhbC1jbGFzc2ljYWwgbXl0aG9sb2d5IGVtYm9kaWVkIGhlcmUsIGFuZCBpbiB7WyYqJl19dGhlIA0KS25pZ2h0ZXMgVGFsZSBvZiBDaGF1Y2VyLCBhbmQgYWdhaW4gaW4gdGhlIFR3byBOb2JsZSANCktpbnNtZW4gb2YgU2hha3tbJiomXX1zcGVyZSBhbmQgRmxldGNoZXIsIHRoaXMgd2FzIHRoZSBtb250aCANCm9mIFRoZXNldXNcJ3MgbWFycmlhZ2Ugd2l0aCBoaXMgQW1hentbJiomXX1vbmlhbiBicmlkZS5eIEluIA0KbGlrZSBtYW5uZXIsIHRoZSBwbGF5IG9mIFR3ZWxmdGggTmlnaHQgcmVjZWl2ZWQgaXRzIG5hbWUge1smKiZdfQ0KcHJvYmFibHkgYmVjYXVzZSBpdCB3YXMgZmlyc3QgZW5hY3RlZCBhdCB0aGF0IHNlYXNvbiBvZiANCmZlc3Rpdml0eSA7IGFuZCB7WyYqJl19YXMgaWYgdG8gZGVjbGFyZSBtb3JlIGVtcGhhdGljYWxseSB0aGF0IGl0IA0Kc2hhbGwgYmUgbmFtZWxlc3MsIFNoYWtzcGVyZSBhZHtbJiomXX1kcyBhIHNlY29uZCB0aXRsZS4gVHdlbGZ0aCANCk5pZ2h0eSBvciBXaGF0IFlvdSBXaWxsIDsgdGhhdCBpcyAoZm9yIHdlIG5lZWQge1smKiZdfXNlZWsgbm8gDQpkZWVwZXIgc2lnbmlmaWNhbmNlKSwgVHdlbGZ0aCBOaWdodHkgb3IgYW55dGhpbmcgeW91IGxpa2UgDQp0byBjYWx7WyYqJl19bCBpdC4gQSBNaWRzdW1tZXItIE5pZ2h0XiA4IERyZWFtIHdhcyB3cml0dGVuIG9uIA0KdGhlIG9jY2FzaW9uIG9mIHRoZSBtYXJyaXtbJiomXX1hZ2Ugb2Ygc29tZSBub2JsZSBjb3VwbGUg4oCUIHBvcy0gDQpzaWJseSBmb3IgdGhlIG1hcnJpYWdlIG9mIHRoZSBwb2V0XCdzIHBhdHtbJiomXX1yb24gU291dGhhbXB0b24gDQp3aXRoIEVsaXphYmV0aCBZZXJub24sIGFzIE1yLiBHZXJhbGQgTWFzc2V5IHN1cHBvc2VzIDsgDQpwe1smKiZdfW9zc2libHkgYXQgYW4gZWFybGllciBkYXRlLCB0byBkbyBob25vciB0byB0aGUgbWFycmlhZ2Ugb2YgDQp0aGUgRWFybCBvZiBFc3N7WyYqJl19ZXggd2l0aCBMYWR5IFNpZG5leS5mIA0KDQoqIFRpdGFuaWEgc2F5cyB0byBPYmVyb24gKGFjdCBpaS4sIHNjLiAxKSA6IA0KDQpcIiB7WyYqJl19QW5kIG5ldmVyIHNpbmNlIHRoZSBtaWRkbGUgc3VtbWVyXCdzIHNwcmluZyANCk1ldCB3ZSBvbiBoaWxsLCBpbiBkYWxlLCBmb3Jlc3R7WyYqJl19LCBvciBtZWFkLFwiIGV0Yy4gDQpQZXJoYXBzIGEgbmlnaHQgaW4gZWFybHkgTWF5IG1pZ2h0IGJlIGNvbnNpZGVyZWQgYSBuaWdodCB7WyYqJl19aW4gdGhlIHNwcmluZyANCm9mIG1pZHN1bW1lci4gDQoNCnQgTXIuIE1hc3NleSBpcyBvYmxpZ2VkIHRvIGVudGVydGFpbiB0aGUgc3tbJiomXX11cHBvc2l0aW9uIHRoYXQgdGhlIHBsYXkgd2FzIA0Kd3JpdHRlbiBzb21lIHRpbWUgYmVmb3JlIHRoZSBtYXJyaWFnZSBhY3R1YWxse1smKiZdfXkgdG9vayBwbGFjZSAoMTU5OCksIFwiIGF0IGEgDQoNCjZvIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNClRoZSBje1smKiZdfWVudHJhbCBmaWd1cmUgb2YgdGhlIHBsYXkgaXMgdGhhdCBvZiBUaGVzZXVzLiANClRoZXJlIGlzIG5vIGZpZ3VyZSBpbiB0aGUgZWF7WyYqJl19cmx5IGRyYW1hIG9mIFNoYWtzcGVyZSBzbyANCm1hZ25pZmljZW50LiBIaXMgYXJlIHRoZSBsYXJnZSBoYW5kcyB0aGF0IGhhdmUgaHtbJiomXX1lbHBlZCANCnRvIHNoYXBlIHRoZSB3b3JsZC4gSGlzIHV0dGVyYW5jZSBpcyB0aGUgcmljaCAtIHRvbmVkIA0Kc3BlZWNoIG9mIG9ue1smKiZdfWUgd2hvIGlzIG1hc3RlciBvZiBldmVudHMg4oCUIHdobyBoYXMgbmV2ZXIgDQprbm93biBhIHNocmlsbCBvciBlYWdlciBmZWVsaW57WyYqJl19Zy4gSGlzIG51cHRpYWwgZGF5IGlzIGF0IA0KaGFuZCA7IGFuZCB3aGlsZSB0aGUgb3RoZXIgbG92ZXJzIGFyZSBhZ2l0YXRlZCwgYntbJiomXX1ld2lsZGVyZWQsIA0KaW5jZW5zZWQsIFRoZXNldXMsIHdobyBkb2VzIG5vdCB0aGluayBvZiBoaW1zZWxmIGFzIGEgDQpsb3Zlciwge1smKiZdfWJ1dCByYXRoZXIgYXMgYSBiZW5lZmljZW50IGNvbnF1ZXJvciwgcmVtYWlucyBpbiANCmNhbG0gcG9zc2Vzc2lvbiBvZiBoaXMgam97WyYqJl19eS4gVGhlc2V1cywgYSBncmFuZCBpZGVhbCBmaWd1cmUsIA0KaXMgdG8gYmUgc3R1ZGllZCBhcyBTaGFrc3BlcmVcJ3MgY29uY2VwdGl7WyYqJl19b24gb2YgdGhlIGhlcm9pYyANCm1hbiBvZiBhY3Rpb24gaW4gaGlzIGhvdXIgb2YgZW5qb3ltZW50IGFuZCBvZiBsZWlzdXJlLiANCntbJiomXX1XaXRoIGEgc3BsZW5kaWQgY2FwYWNpdHkgZm9yIGVuam95bWVudCwgZ3JhY2lvdXMgdG8gYWxsLCANCmVubm9ibGVkIGJ5IHRoZSBne1smKiZdfWxvcnksIGltcGxpZWQgcmF0aGVyIHRoYW4gZXhwbGljaXQsIG9mIA0KZ3JlYXQgZm9yZWdvbmUgYWNoaWV2ZW1lbnQsIGhlIHN0YW57WyYqJl19ZHMgYXMgY2VudHJlIG9mIHRoZSANCnBvZW0sIGdpdmluZyB0aGVpciB0cnVlIHByb3BvcnRpb25zIHRvIHRoZSBmYWlyeSB0cmliZXtbJiomXX0sIA0KdXBvbiB0aGUgb25lIGhhbmQsIGFuZCwgdXBvbiB0aGUgb3RoZXIsIHRvIHRoZSBcImh1bWFuIA0KbW9ydGFscy5cIiBUaGUgaGV7WyYqJl19cm9pYyBtZW4gb2YgYWN0aW9uIOKAlCBUaGVzZXVzLCBIZW5yeSANCnYuLiBIZWN0b3Ig4oCUIGFyZSBzdXByZW1lbHkgYWRtaXJlZHtbJiomXX0gYnkgU2hha3NwZXJlLiBZZXQgDQppdCBpcyBvYnNlcnZhYmxlIHRoYXQgYXMgdGhlIHRvdGFsIFNoYWtzcGVyZSBpcyBzdXBlcmlve1smKiZdfXIgdG8gDQpSb21lbywgdGhlIG1hbiBnaXZlbiBvdmVyIHRvIHBhc3Npb24sIGFuZCB0byBIYW1sZXReIA0KDQpwZXJpb2Qgd2hlbiB7WyYqJl19aXQgbWF5IGhhdmUgYmVlbiB0aG91Z2h0IHRoZSBRdWVlblwncyBjb25zZW50IGNvdWxkIGJlIG9iLSANCnRhaW5lZC4gLi4uIEkgaGF7WyYqJl19dmUgdmVudHVyZWQgdGhlIGRhdGUgb2YgMTU5NSBcJ14gKFwiIFNoYWtlc3BlYXJlXCdzIFNvbm5ldHMgYW5kIA0KaGlzIFByaXZhdGUgRntbJiomXX1yaWVuZHMsXCIgcC4gNDgxKS4gUHJvZmVzc29yIEthcmwgRWx6ZVwncyB0aGVvcnksIG1haW50YWluZWQgaW4gYSANCmhpZ2hseSBpbmd7WyYqJl19ZW5pb3VzIHBhcGVyIGluIFNoYWtlc3BlYXJlLUphaHJoaWNcXCB2b2wuIGlpaS4sIHRoYXQgdGhlIHBsYXkgd2FzIA0Kd3JpdHRlbiB7WyYqJl19Zm9yIHRoZSBtYXJyaWFnZSBvZiB0aGUgeW91bmcgRWFybCBvZiBFc3NleCwgd291bGQgdGhyb3cgYmFjayB0aGUgDQpkYXRlIHRvIHtbJiomXX0xNTkwIOKAlCBhIGdvb2QgZGVhbCB0b28gZWFybHksIEkgYmVsaWV2ZS4gUHJvZmVzc29yIEVsemUgaGFzLCBob3dldmVyLCANCm11e1smKiZdfWNoIHRvIHNheSBpbiBmYXZvciBvZiB0aGlzIG9waW5pb24uIFNlZSBhbHNvIHRoZSBleGNlbGxlbnQgYXJ0aWNsZSBieSANCkhlcm17WyYqJl19YW5uIEt1cnogaW4gU2hha2VzcGVhcmUtSmFocmJ1Y2heanZvbC4gaXYuIElsbHVzdHJhdGlvbnMgb2YgdGhlIEZhaXJ5IA0KTXl0aHtbJiomXX1vbG9neSBvZiBBIE1pZHN1bW1lci1OaWdoZiBzIERyZWFtIHdpbGwgYmUgZm91bmQgaW4gdGhlIHZvbHVtZSBieSANCkhhbFV3ZWxse1smKiZdfSBiZWFyaW5nIHRoYXQgbmFtZSwgaXNzdWVkIGJ5IHRoZSBTaGFrZXNwZWFyZSBTb2NpZXR5ICgxODQ1KSwgYW5kIA0KYWxzbyBpbiB7WyYqJl19XCIgU2hha3NwZXJlLUZvcnNjaHVuZ2VuLFwiIGlpLiwgXCdcJyBOYWNoa2xhbmdlIGdlcm1hbmlzY2hlciBNeXRoZSxcIiBieSANCkJlbm5ve1smKiZdfSBUc2NoaXNjaHdpdHogKDE4NjgpLiBNci4gSGFscGluXCdzIGV4Y2VlZGluZ2x5IGluZ2VuaW91cyBzdHVkeSBvZiANCk9iZXJvblwnc3tbJiomXX0gVmlzaW9uIGludGVycHJldHMgdGhhdCBjZWxlYnJhdGVkIHBhc3NhZ2UgYXMgaGF2aW5nIHJlZmVyZW5jZSB0byANCkxlaWNlc3Rle1smKiZdfXJcJ3MgaW50cmlndWUgd2l0aCBMZXR0aWNlLCBkYXVnaHRlciBvZiBTaXIgRnJhbmNpcyBLbm9sbHlzLCBhbmQgd2lmZSANCm9mIFdhe1smKiZdfWx0ZXIgRGV2ZXJldXgsIEVhcmwgb2YgRXNzZXguIA0KDQpHcm93dGggb2YgU2hha3NwZXJlcyBNaW5kIGFuZCBBcnQuIDZpIA0KDQp7WyYqJl19dGhlIG1hbiBnaXZlbiBvdmVyIHRvIHRob3VnaHQsIHNvIHRoZSBIYW1sZXQgYW5kIHRoZSANCktvbWVvIHdpdGhpbiBoaW0gZ2l2ZXtbJiomXX0gU2hha3NwZXJlIGFuIGluZmluaXRlIGFkdmFudGFnZSANCm92ZXIgZXZlbiB0aGUgbW9zdCBoZXJvaWMgbWVuIG9mIGFjdGlvbi4ge1smKiZdfUhlIGFkbWlyZXMgDQp0aGVzZSBtZW4gb2YgYWN0aW9uIHN1cHJlbWVseSwgYnV0IGhlIGFkbWlyZXMgdGhlbSBmcm9tIA0KYW4gb3V7WyYqJl19dHNpZGUgcG9pbnQgb2Ygdmlldy4gXCIgVGhlc2UgZmVsbG93cyBvZiBpbmZpbml0ZSANCnRvbmd1ZSxcIiBzYXlzIEhlbnJ5LCB3b29pe1smKiZdfW5nIHRoZSBGcmVuY2ggcHJpbmNlc3MsIFwiIHRoYXQgDQpjYW4gcmh5bWUgdGhlbXNlbHZlcyBpbnRvIGxhZGllc1wnIGZhdm9ycywgdHtbJiomXX1oZXkgZG8gYWx3YXlzIA0KcmVhc29uIHRoZW1zZWx2ZXMgb3V0IGFnYWluLiBXaGF0ICEgYSBzcGVha2VyIGlzIGJ1dCBhIA0KcHJhe1smKiZdfXRlciwgYSByaHltZSBpcyBidXQgYSBiYWxsYWQuXCIgSXQgaXMgaW50byBUaGVzZXVzXCdzIA0KbW91dGggdGhhdCBTaGFrc3BlcmUgcHtbJiomXX11dHMgdGhlIHdvcmRzIHdoaWNoIGNsYXNzIHRvLSANCmdldGhlciBcIiB0aGUgbHVuYXRpYywgdGhlIGxvdmVyLCBhbmQgdGhlIHBvZXtbJiomXX10IFwiIGFzIG9mIGltLSANCmFnaW5hdGlvbiBhbGwgY29tcGFjdC4gVGhhdCBpcyB0aGUgdG91Y2ggd2hpY2ggc2hvd3MgDQpob3cgU3tbJiomXX1oYWtzcGVyZSBzdG9vZCBvZmYgZnJvbSBUaGVzZXVzLCBkaWQgbm90IGlkZW50aWZ5IA0KaGltc2VsZiB3aXRoIHRoaXMgZ3JhbmQge1smKiZdfWlkZWFsICh3aGljaCBoZSBhZG1pcmVkIHNvIHRydWx5KSwgDQphbmQgYWRtaXR0ZWQgdG8gaGltc2VsZiBhIHNlY3JldCBzdXBlcml7WyYqJl19b3JpdHkgb2YgaGlzIG93biANCnNvdWwgb3ZlciB0aGF0IG9mIHRoaXMgbm9ibGUgbWFzdGVyIG9mIHRoZSB3b3JsZC4gDQoNCkNvbXtbJiomXX1tZW50cyBieSBTaGFrc3BlcmUgdXBvbiBoaXMgb3duIGFydCBhcmUgbm90IHNvIA0KbnVtZXJvdXMgdGhhdCB3ZSBjYW4gYWZmb3Jke1smKiZdfSB0byBvdmVybG9vayB0aGVtLiBJdCBtdXN0IA0KaGVyZSBiZSBub3RlZCB0aGF0IFNoYWtzcGVyZSBtYWtlcyB0aGUgXCIgcGFscGFie1smKiZdfWxlIGdyb3NzXCIgDQppbnRlcmx1ZGUgb2YgdGhlIEF0aGVuaWFuIG1lY2hhbmljYWxzIHNlcnZlIGFzIGFuIGluZGktIA0KcmVjdCBhe1smKiZdfXBvbG9neSBmb3IgaGlzIG93biBuZWNlc3NhcmlseSBpbXBlcmZlY3QgYXR0ZW1wdCB0byANCnJlcHJlc2VudCBmYWlyeS1sYW5kIGF7WyYqJl19bmQgdGhlIG1hamVzdGljIHdvcmxkIG9mIGhlcm9pYyBsaWZlLiANCk1hZ2lubiB3cml0ZXMsIFwiIFdoZW4gSGlwcG9seXRhIHNwZWF7WyYqJl19a3Mgc2Nvcm5mdWxseSBvZiANCnRoZSB0cmFnZWR5IGluIHdoaWNoIEJvdHRvbSBob2xkcyBzbyBjb25zcGljdW91cyBhIHBhcnQsIHtbJiomXX0NClRoZXNldXMgYW5zd2VycyB0aGF0IHRoZSBiZXN0IG9mIHRoaXMga2luZCBbc2NlbmljIHBlci0gDQpmb3JtYW5jZXNdIGFyZSBie1smKiZdfXV0IHNoYWRvd3MsIGFuZCB0aGUgd29yc3Qgbm8gd29yc2UsIGlmIA0KaW1hZ2luYXRpb24gYW1lbmQgdGhlbS4gU2hlIGFuc3dlcnN7WyYqJl19IFtmb3IgSGlwcG9seXRhIA0KaGFzIG5vbmUgb2YgVGhlc2V1c1wncyBpbmR1bGdlbmNlIHRvd2FyZHMgaW5lZmxmaWNpZW5jeSwgDQp7WyYqJl19YnV0IHJhdGhlciBhIHdvbWFuXCdzIGludG9sZXJhbmNlIG9mIHRoZSBhYnN1cmRdIHRoYXQgaXQgDQptdXN0IGJlIHlvdXIgaW1hZ2l7WyYqJl19bmF0aW9uIHRoZW4sIG5vdCB0aGVpcnMuIEhlIHJldG9ydHMgDQp3aXRoIGEgam9rZSBvbiB0aGUgdmFuaXR5IG9mIGFjdG9ycywgYXtbJiomXX1uZCB0aGUgY29udmVyc2F0aW9uIA0KaXMgaW1tZWRpYXRlbHkgY2hhbmdlZC4gVGhlIG1lYW5pbmcgb2YgdGhlIER1a2UgaXMgDQp0e1smKiZdfWhhdCwgaG93ZXZlciB3ZSBtYXkgbGF1Z2ggYXQgdGhlIHNpbGxpbmVzcyBvZiBCb3R0b20gDQphbmQgaGlzIGNvbXBhbmlvbnMgaW57WyYqJl19IHRoZWlyIHJpZGljdWxvdXMgcGxheSwgdGhlIGF1dGhvciANCmxhYm9ycyB1bmRlciBubyBtb3JlIHRoYW4gdGhlIGNvbW1vbiBjYXtbJiomXX1sYW1pdHkgb2YgDQoNCjYyIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCmRyYW1hdGlzdHMuIFRoZXkgYXJlIGFse1smKiZdfWwgYnV0IGRlYWxlcnMgaW4gc2hhZG93eSByZXByZS0gDQpzZW50YXRpb25zIG9mIGxpZmUgOyBhbmQgaWYgdGhlIHdvcnN0IGFtb257WyYqJl19ZyB0aGVtIGNhbiBzZXQgDQp0aGUgbWluZCBvZiB0aGUgc3BlY3RhdG9yIGF0IHdvcmssIGhlIGlzIGVxdWFsIHRvIHRoZSBiZXN0LntbJiomXX1cIiBcIl4gDQpNYWdpbm4gaGFzIG1pc3NlZCB0aGUgbW9yZSBpbXBvcnRhbnQgc2lnbmlmaWNhbmNlIG9mIA0KdGhlIHBhc3NhZ2UuIEl7WyYqJl19dHMgZHJhbWF0aWMgYXBwcm9wcmlhdGVuZXNzIGlzIHRoZSBlc3NlbnRpYWwgDQpwb2ludCB0byBvYnNlcnZlLiBUbyBUaGVzZXVzLHtbJiomXX0gdGhlIGdyZWF0IG1hbiBvZiBhY3Rpb24sIA0KdGhlIHdvcnN0IGFuZCB0aGUgYmVzdCBvZiB0aGVzZSBzaGFkb3d5IHJlcHJlc2Vue1smKiZdfXRhdGlvbnMgDQphcmUgYWxsIG9uZS4gSGUgZ3JhY2lvdXNseSBsZW5kcyBoaW1zZWxmIHRvIGJlIGFtdXNlZCwgDQphbmQgd2lsbCB7WyYqJl19bm90IGdpdmUgdW5tYW5uZXJseSByZWJ1ZmYgdG8gdGhlIHBhaW5zdGFraW5nIA0KY3JhZnRzbWVuIHdobyBoYXZlIHNvIGxhYm9yaXtbJiomXX1vdXNseSBkb25lIHRoZWlyIGJlc3QgdG8gDQpwbGVhc2UgaGltLiBCdXQgU2hha3NwZXJlXCdzIG1pbmQgYnkgbm8gbWVhbnMgZ29lc3tbJiomXX0gDQphbG9uZyB3aXRoIHRoZSB1dHRlcmFuY2Ugb2YgVGhlc2V1cyBpbiB0aGlzIGluc3RhbmNlIGFueSANCm1vcmUgdGhhbiB3aGVue1smKiZdfSBoZSBwbGFjZXMgaW4gYSBzaW5nbGUgZ3JvdXAgdGhlIGxvdmVyLCANCnRoZSBsdW5hdGljLCBhbmQgdGhlIHBvZXQuIFdpdGggb257WyYqJl19ZSBwcmluY2lwbGUgZW5vdW5jZWQgDQpieSB0aGUgRHVrZSwgaG93ZXZlciwgU2hha3NwZXJlIGV2aWRlbnRseSBkb2VzIGFncmVlIHtbJiomXX3igJQgDQpuYW1lbHksIHRoYXQgaXQgaXMgdGhlIGJ1c2luZXNzIG9mIHRoZSBkcmFtYXRpc3QgdG8gc2V0IHRoZSANCnNwZWN0YXRve1smKiZdfXJcJ3MgaW1hZ2luYXRpb24gdG8gd29yayA7IHRoYXQgdGhlIGRyYW1hdGlzdCBtdXN0IA0KcmF0aGVyIGFwcGVhbCB0byB0aGUgbWlue1smKiZdfWRcJ3MgZXllIHRoYW4gdG8gdGhlIGV5ZSBvZiBzZW5zZSA7IA0KYW5kIHRoYXQgdGhlIGNvLW9wZXJhdGlvbiBvZiB0aGUgc3BlY3Rhe1smKiZdfXRvciB3aXRoIHRoZSBwb2V0IA0KaXMgbmVjZXNzYXJ2LiBGb3IgdGhlIG1ldGhvZCBvZiBCb3R0b20gYW5kIGhpcyBjb20tIA0KcGF7WyYqJl19bnkgaXMgcHJlY2lzZWx5IHRoZSByZXZlcnNlLCBhcyBHZXJ2aW51cyBoYXMgb2JzZXJ2ZWQsIA0Kb2YgU2hha3NwZXJlXCdzIG93biB7WyYqJl19bWV0aG9kLiBUaGV5IGFyZSBkZXRlcm1pbmVkIHRvIA0KbGVhdmUgbm90aGluZyB0byBiZSBzdXBwbGllZCBieSB0aGUgaW1hZ2luYXtbJiomXX10aW9uLiBXYWxsIA0KbXVzdCBiZSBwbGFzdGVyZWQgOyBNb29uc2hpbmUgbXVzdCBjYXJyeSBsYW50ZXJuIGFuZCANCmJ1c2guIEFue1smKiZdfWQgd2hlbiBIaXBwb2x5dGEsIGFnYWluIGJlY29taW5nIGltcGF0aWVudCANCm9mIGFic3VyZGl0eSwgZXhjbGFpbXMsIFwiIEkgYW0ge1smKiZdfWF3ZWFyeSBvZiB0aGlzIG1vb24gISANCndvdWxkIGhlIHdvdWxkIGNoYW5nZSAhXCIgU2hha3NwZXJlIGZ1cnRoZXIgaW5zaXN0cyBve1smKiZdfW4gDQpoaXMgcGllY2Ugb2YgZHJhbWF0aWMgY3JpdGljaXNtIGJ5IHVyZ2luZywgdGhyb3VnaCB0aGUgDQpEdWtlXCdzIG1vdXRoLCB0e1smKiZdfWhlIGFic29sdXRlIG5lY2Vzc2l0eSBvZiB0aGUgbWFuIGluIHRoZSANCm1vb24gYmVpbmcgd2l0aGluIGhpcyBsYW50ZXJuLiBTaGF7WyYqJl19a3NwZXJlIGFzIG11Y2ggYXMgDQpzYXlzLCBcIiBJZiB5b3UgZG8gbm90IGFwcHJvdmUgbXkgZHJhbWF0aWMgbWV0aG9kIG9mIHByZS17WyYqJl19IA0Kc2VudGluZyBmYWlyeS1sYW5kIGFuZCB0aGUgaGVyb2ljIHdvcmxkLCBoZXJlIGlzIGEgc3BlY2ktIA0KbWVuIG9mIHRoZSByaXtbJiomXX12YWwgbWV0aG9kLiBZb3UgdGhpbmsgbXkgZmFpcnktd29ybGQgDQptaWdodCBiZSBhbWVuZGVkLiBXZWxsLCBhbWVuZCBpdCB3aXRoe1smKiZdfSB5b3VyIG93biBpbnYgDQoNCm0gaXQgDQoNClNoYWtzcGVhcmUgUGFwZXJzLFwiIHAuIDExOS4gDQoNCkdyb3d0aCBvZiBTaGFrc3Ble1smKiZdfXJecyBNaW5kIGFuZCBBcnQuIDYzIA0KDQphZ2luYXRpb24uIEkgY2FuIGRvIG5vIG1vcmUgdW5sZXNzIEkgYWRvcHQgdGhlIGFydGl7WyYqJl19c3RpYyANCmlkZWFzIG9mIHRoZXNlIEF0aGVuaWFuIGhhbmRpY3JhZnRzbWVuLlwiIF4gDQoNCkl0IGlzIGEgZGVsaWdodGZ1bCBleGF7WyYqJl19bXBsZSBvZiBTaGFrc3BlcmVcJ3MgaW1wYXJ0aWFsaXR5IA0KdGhhdCBoZSBjYW4gcmVwcmVzZW50IFRoZXNldXMgd2l0aCBzbyBtdWN7WyYqJl19aCBnZW51aW5lIGVuLSANCnRodXNpYXNtLiBNci4gTWF0dGhldyBBcm5vbGQgaGFzIG5hbWVkIG91ciBhcmlzdG8tIA0KY3JhdHMsIHtbJiomXX13aXRoIHRoZWlyIGhhcmR5LCBlZmZpY2llbnQgbWFubmVycywgdGhlaXIgYWRkaWN0aW9uIA0KdG8gZmllbGQgc3BvcnRzLCBhbmQge1smKiZdfXRoZWlyIGhhdHJlZCBvZiBpZGVhcywgXCIgdGhlIEJhcmJhcmktIA0KYW5zLlwiIFRoZXNldXMgaXMgYSBzcGxlbmRpZCBhbmQgZ3JhY3tbJiomXX1pb3VzIGFyaXN0b2NyYXQsIHBlci0gDQpoYXBzIG5vdCB3aXRob3V0IGEgdG91Y2ggb2YgdGhlIEJhcmJhcmlhbiBpbiBoaW0uIEhle1smKiZdfSANCndvdWxkIGhhdmUgZm91bmQgSGFtbGV0IGEgd2hvbGx5IHVuaW50ZWxsaWdpYmxlIHBlcnNvbiwgDQp3aG8sIGluIHBvc3Nlc3N7WyYqJl19aW9uIG9mIGhpcyBvd24gdGhvdWdodHMsIGNvdWxkIGJlIGNvbnRlbnQtIA0KZWQgaW4gYSBudXRzaGVsbC4gV2hlbiBTaGFrc3BlcntbJiomXX1lIHdyb3RlIFRoZSBUd28gR2VuLSANCmlsZW1lbiBvZiBWZXJvbmFeIGluIHdoaWNoLCB3aXRoIGxpdHRsZSBkcmFtYXRpYyBwcm9we1smKiZdfXJpZXR5LCANCnRoZSBEdWtlIG9mIE1pbGFuIGNlbGVicmF0ZXMgXCIgdGhlIGZvcmNlIG9mIGhlYXZlbi1icmVkIA0KcG9lc3ksXCIgd3tbJiomXX1lIG1heSByZWFzb25hYmx5IHN1cHBvc2UgdGhhdCB0aGUgcG9ldCBtaWdodCANCm5vdCBoYXZlIGJlZW4gcXVpdGUganVzdCB0byBve1smKiZdfW5lIHdobyB3YXMgaW5kaWZsZmVyZW50IHRvIA0KYXJ0LiBCdXQgbm93IGhpcyBzZWxmLW1hc3RlcnkgaGFzIGluY3JlYXNlZCwgYW57WyYqJl19ZCB0aGVyZS0gDQpmb3JlIHdpdGggdW5mZWlnbmVkIHNhdGlzZmFjdGlvbiBoZSBwcmVzZW50cyBUaGVzZXVzLCANCnRoZSBtYXN0ZXtbJiomXX1yIG9mIHRoZSB3b3JsZCwgd2hvLCBoYXZpbmcgYmVhdXR5IGFuZCBoZXJvaWMgDQpzdHJlbmd0aCBpbiBhY3R1YWwgcG9zc2Vzc2lve1smKiZdfW4sIGRvZXMgbm90IG5lZWQgdG8gc3VtbW9uIA0KdGhlbSB0byBvY2N1cHkgaGlzIGltYWdpbmF0aW9uIOKAlCB0aGUgZ3JlYXQgY2h7WyYqJl19aWVmdGFpbiB0byANCndob20gYXJ0IGlzIGEgdmVyeSBzbWFsbCBjb25jZXJuIG9mIGxpZmUsIGZpdCBmb3IgYSBsZWlzdXJlIA0KaHtbJiomXX1vdXIgYmV0d2VlbiBiYXR0bGUgYW5kIGJhdHRsZS4gVGhlc2V1cywgd2hvIGhhcyBub3RoLSANCmluZyBhbnRpcXVlIG9yIEdyZWNpe1smKiZdfWFuIGFib3V0IGhpbSwgaXMgYW4gaWRlYWxpemVkIHN0dWR5IA0KZnJvbSB0aGUgbGlmZS4gUGVyaGFwcyBoZSBpcyBpZGVhbGl6ZWR7WyYqJl19IEVzc2V4LCBwZXJoYXBzIA0KaWRlYWxpemVkIFNvdXRoYW1wdG9uLiBQZXJoYXBzIHNvbWUgbmlnaHQgYSBkcmFtYXRpYyANCmNvbXtbJiomXX1wYW55IHdhcyBvcmRlcmVkIHRvIHBlcmZvcm0gaW4gcHJlc2VuY2Ugb2YgYSBncmVhdCANCkVsaXphYmV0aGFuIG5vYmxlIOKAlCB3e1smKiZdfWUga25vdyBub3Qgd2hvbSDigJQgd2hvIG5lZWRlZCB0byANCmVudGVydGFpbiBoaXMgZ3Vlc3RzLCBhbmQgdGhlcmUsIGluIGEgbW97WyYqJl19bWVudCBvZiBmaW5lIGltYWctIA0KaW5hdGl2ZSB2aXNpb24sIHRoZSBwb2V0IGRpc2NvdmVyZWQgVGhlc2V1cy4gDQoNCiogT24gU3tbJiomXX1oYWtzcGVyZVwncyBzdHVkaWVzIG9mIGNoaXZhbHJpYyBtZWRpYWV2YWwgcG9ldHJ5LCBzZWUgc29tZSBpbnRlcmVzdC0gDQppbmcgcHtbJiomXX1hZ2VzIGluIE1yLiBTcGFsZGluZ1wncyBcIiBMZXR0ZXIgb24gU2hha3NwZXJlXCdzIEF1dGhvcnNoaXAgb2YgdGhlIFR3byANCk5vYmxle1smKiZdfSBLaW5zbWVuLFwiIHBwLiBDVi1cJ1pTIDsgdGhlIGFydGljbGUgXCIgQ2hhdWNlciBhbmQgU2hha3NwZXJlIFwiIGluIHRoZSANClF1YXJ0e1smKiZdfWVybHkgUmV2aWV3XiBKYW4uLCAxODczIDsgYW5kIEhlcnR6YmVyZ1wncyBsZWFybmVkIGRpc2N1c3Npb24gb2YgdGhlIA0Kc291cmNle1smKiZdfXMgb2YgdGhlIFRyb2lsdXMgc3RvcnkgaW4gU2hha2VzcGVhcmUtSmFocmJpTGNoeSB2b2wgdmkuIA0KDQo2NCBTaGFrc3BlcmUg4oB7WyYqJl19lCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KQSBNaWRzdW1tZXItTmlnTSA4IERyZWFtIGlzLCBhcyBpdHMgbmFtZSBpbXBsaWVzLCANCntbJiomXX1hIHBoYW50YXNtYWdvcnkgOyBhIG1hc2sgb2Ygc2hhZG93cyBmdWxsIG9mIG1hcnZlbCwgc3VyLSANCnByaXNlcywgc3BsZW5kb3Ise1smKiZdfSBhbmQgZ3JvdGVzcXVlbmVzcy4gQnV0IGR1cmluZyB0aGUgc2FtZSANCnllYXJzIGluIHdoaWNoIFNoYWtzcGVyZSB3YXMgd3JpdGl7WyYqJl19bmcgaGlzIGNvbWVkaWVzLCBhbmQgDQp3aGlsZSBoZSB3YXMgZW5nYWdlZCB1cG9uIGhpcyBmaXJzdCBncmVhdCB0cmFnZWR5LCBoZXtbJiomXX0gY29uLSANCnRpbnVlZCBhbHNvIHN0ZWFkaWx5IGF0IHdvcmsgdXBvbiBoaXMgc2VyaWVzIG9mIEVuZ2xpc2ggDQpoaXN0b3JpY2Fse1smKiZdfSBwbGF5cy4gVGhlIGN1bHR1cmUgYWZmb3JkZWQgdG8gU2hha3NwZXJlIGJ5IA0KdGhlIHdyaXRpbmcgb2YgdGhlc2UgcGxheXMgd2F7WyYqJl19cyBoaWdobHkgaW1wb3J0YW50IGF0IHRoYXQgDQpwcmVjaXNlIHBlcmlvZCBvZiBoaXMgY2FyZWVyLiBUaGUgc3Vic3RhbnRpYWwgbXtbJiomXX1hdHRlciB1cG9uIA0Kd2hpY2ggaGUgd2FzIGVuZ2FnZWQgc2VydmVkIHRvIGV4dGVuZCBhbmQgY29uc29saWRhdGUgDQp0aGF0IHJle1smKiZdfWxhdGlvbiB3aGljaCB3YXMgZXN0YWJsaXNoaW5nIGl0c2VsZiBzbG93bHkgYnV0IA0Kc3VyZWx5IGJldHdlZW4gdGhlIGltYWdpbmF7WyYqJl19dGlvbiBvZiB0aGUgZHJhbWF0aXN0IGFuZCB0aGUgDQphY3R1YWwgd29ybGQuIFRoZSB0b3VnaCBjbGF5IG9mIGhpc3RvcmljYWwgZntbJiomXX1hY3QgZGlkIG5vdCANCnRha2UgYXJ0aXN0aWMgc2hhcGUgdG9vIHJlYWRpbHksIGFuZCBoaXMgaGFuZHMgd2VyZSBzdHJlbmd0aC0ge1smKiZdfQ0KZW5lZCBieSB0aGUgbGFib3Igb2YgbW91bGRpbmcgaXQgaW50byBmb3JtLiBJbiB0cmVhdGluZyANCmhpc3RvcmljYWwgc3ViamV7WyYqJl19Y3RzLCBtb3Jlb3ZlciwgdW5yZWFsaXRpZXMgb2YgZXZlcnkga2luZCANCm11c3QgYmUgc3Rlcm5seSBzZXQgYXNpZGUgOyBubyBncntbJiomXX1hY2VmdWwgcG9ldGljYWwgcGhyYXNpbmcsIA0Kbm8gZGVsaWNhdGUgY29uY2VpdHMsIG5vIHF1aXBzIGFuZCBjcmFua3Mgb2Ygd2l0e1smKiZdfSwgU2hhay0gDQpzcGVyZSBwZXJjZWl2ZWQsIHdvdWxkIGNvbXBlbnNhdGUgaGVyZSBmb3Igd2FudCBvZiBmaWRlbC0gDQppdHkgdG97WyYqJl19IHRoZSBlc3NlbnRpYWwgdHJ1dGggb2YgdGhpbmdzLiBUaGVuLCBhZ2FpbiwgaWYgaW4gDQp3cml0aW5nIFJvbWVvIGFyaWQgSnVsaXtbJiomXX1ldCBTaGFrc3BlcmUgcmFuIGEgY2VydGFpbiByaXNrIA0Kb2YgYWJhbmRvbmluZyBoaXMgZ2VuaXVzIG92ZXIgbXVjaCB0byBseXJpe1smKiZdfWNhbCBpbnRlbnNpdHksIA0KdGhlIGN1bHR1cmUgYWZmb3JkZWQgYnkgdGhlIGhpc3RvcmljYWwgZHJhbWFzIGFjdGVkIGFzIGEgDQp7WyYqJl19c2FmZWd1YXJkLiBJZiBpbiBoaXMgZWFybHkgY29tZWRpZXMgU2hha3NwZXJlIHJlbGllZCANCnVwb24gc3ltbWV0cnkgb2YgYXJyYXtbJiomXX1uZ2VtZW50IGZvciBzZWN1cmluZyB1bml0eSBvZiBkZS0gDQpzaWduLCBoZXJlIHN1Y2ggc3ltbWV0cnkgd2FzIG9idmlvdXNseSB1e1smKiZdfW5hdHRhaW5hYmxlLCBhbmQgDQpoZSBtdXN0IGxvb2sgZm9yIGEgZGVlcGVyIGdyb3VuZCBvZiB1bml0eS4gDQoNCkJ1dCB0aGUgbW97WyYqJl19c3QgaW1wb3J0YW50IGluZmx1ZW5jZSBleGVyY2lzZWQgYnkgaGlzIGRyYS0gDQptYXRpYyBzdHVkaWVzIGluIEVuZ2xpc2ggaGlzdHtbJiomXX1vcnkgdXBvbiB0aGUgbWluZCBvZiBTaGFrLSANCnNwZXJlIHdhcyB0aGF0IHRoZXkgZW5nYWdlZCBoaXMgaW1hZ2luYXRpb24gaW4ge1smKiZdfWFuIGlucXVpcnkgDQppbnRvIHRoZSBzb3VyY2VzIG9mIHBvd2VyIGFuZCBvZiB3ZWFrbmVzcywgb2Ygc3VjY2VzcyBhbmQgDQpvZiB7WyYqJl19ZmFpbHVyZSwgaW4gYSBtYW5cJ3MgZGVhbGluZyB3aXRoIHRoZSBwb3NpdGl2ZSwgc29jaWFsIA0Kd29ybGQuIFRoZXkga2VwdCBjb257WyYqJl19c3RhbnRseSBiZWZvcmUgU2hha3NwZXJlXCdzIG1pbmQgDQp0aGUgcHJvYmxlbSBcIiBIb3cgaXMgYSBtYW4gdG8gb2J0YWluIGEgbWFze1smKiZdfXRlcnkgb2YgdGhlIA0KYWN0dWFsIHdvcmxkLCBhbmQgaW4gd2hhdCB3YXlzIG1heSBoZSBmYWlsIG9mIHN1Y2ggbWFzKiANCg0KR3J7WyYqJl19b3d0aCBvZiBTaGFrc3BlcmlzIE1pbmQgYW5kIEFydC4gNjUgDQoNCnRlcnk/XCdcJyBUaGlzIHdhcyBhIHN1YmplY3QgaW4gd2hpY2gge1smKiZdfVNoYWtzcGVyZSBoYWQgYSANCnBlcnNvbmFsIGludGVyZXN0LCBmb3IgaGUgd2FzIGhpbXNlbGYgcmVzb2x2ZWQsIGFzIGZhciBhcyB7WyYqJl19DQppbiBoaW0gbGF5LCBub3QgdG8gZmFpbCBpbiB0aGlzIG1hdGVyaWFsIGxpZmUgb2Ygb3VycywgYnV0IA0KcmF0aGVyLCBpZiBwb3tbJiomXX1zc2libGUsIHRvIGJlLCBmb3IgaGlzIG93biBuZWVkcywgYSBtYXN0ZXIgb2YgDQpldmVudHMuIFRoZSBwb3J0cmFpdHMgb2YgRW5ne1smKiZdfWxpc2gga2luZ3MgZnJvbSBLaW5nIEpvaG4gDQp0byBLaW5nIEhlbnJ5IFYuIGFyZSBhIHNlcmllcyBvZiBzdHVkaWVzIG9mIHdlYWt7WyYqJl19bmVzcyBhbmQgDQpvZiBzdHJlbmd0aCBmb3IgdGhlIGF0dGFpbmluZyBvZiBraW5nbHkgZW5kcy4gVG8gZmFpbCBpcyANCnRoZSBzdXtbJiomXX1wcmVtZSBzaW4uIFdvcnNlIGFsbW9zdCB0aGFuIGNyaW1pbmFsaXR5IGlzIHdlYWstIA0KbmVzcywgZXhjZXB0IHRoYXQgY3JpbWUse1smKiZdfSBiZXNpZGVzIGJlaW5nIGNyaW1lLCBpcyBpdHNlbGYgYSBjZXItIA0KdGFpbiBraW5kIG9mIHdlYWtuZXNzLiBIZW5yeSBWSS4gaXN7WyYqJl19IGEgdGltaWQgc2FpbnQgOyBpdCANCndlcmUgYmV0dGVyIHRoYXQgaGUgaGFkIGJlZW4gYSBtYW4uIERvZXMgaGlzIHRpbWlkIA0Kc3tbJiomXX1haW50bGluZXNzIHNlcnZlIGhpbSBpbiB0aGUgcGxhY2Ugb2YgZW5lcmd5IG9mIHRob3VnaHQgDQphbmQgd2lsbCwgb3Igc2VjdXJle1smKiZdfSBoaW0gZnJvbSBhIG1pc2VyYWJsZSBvdmVydGhyb3cgPyBJdCANCmlzIGltcG9ydGFudCB0byBvYnNlcnZlIHRoZSBmdW5kYW1lbnR7WyYqJl19YWwgZGlmZmVyZW5jZSB3aGljaCANCmV4aXN0cyBiZXR3ZWVuIHRoZSBzZXJpZXMgb2YgRW5nbGlzaCBoaXN0b3JpY2FsIHBsYXlzIHtbJiomXX1hbmQgDQp0aGUgZ3JlYXQgc2VyaWVzIG9mIHRyYWdlZGllcywgYmVnaW5uaW5nIHdpdGggSGFtbGV0XiBlbmQtIA0KaW5nIHdpdGgge1smKiZdfVRpbW9uIG9mIEF0aGVuc14gaW4gd2hpY2ggU2hha3NwZXJlIGVtYm9kaWVkIA0KaGlzIHJpcGVzdCBleHBlcmllbmNlIG9mIGxpZmV7WyYqJl19LiBJbiB0aGUgaGlzdG9yaWNhbCBwbGF5cyB0aGUgDQpxdWVzdGlvbiB3aGljaCBpbmV2aXRhYmx5IGNvbWVzIGZvcndhcmQgYWdhaXtbJiomXX1uIGFuZCBhZ2FpbiANCmlzIHRoaXMsIFwiIEJ5IHdoYXQgbWVhbnMgc2hhbGwgYSBtYW4gYXR0YWluIHRoZSBub2JsZXN0IA0KcHJhY3tbJiomXX10aWNhbCBzdWNjZXNzIGluIHRoZSBvYmplY3RpdmUgd29ybGQgViBJbiB0aGUgZ3JlYXQgDQp0cmFnZWRpZXMgdGhlIHByb2JsZW0ge1smKiZdfWlzIGEgc3Bpcml0dWFsIG9uZS4gSXQgaXMgc3RpbGwgdGhlIA0KcHJvYmxlbSBvZiBmYWlsdXJlIGFuZCBzdWNjZXNzLiBCdXQgaW57WyYqJl19IHRoZXNlIHRyYWdlZGllcyANCnN1Y2Nlc3MgbWVhbnMgbm90IGFueSBwcmFjdGljYWwgYWNoaWV2ZW1lbnQgaW4gdGhlIHdvcmxkLHtbJiomXX0gDQpidXQgdGhlIHBlcmZlY3RlZCBsaWZlIG9mIHRoZSBzb3VsIDsgYW5kIGZhaWx1cmUgbWVhbnMgdGhlIA0KcnVpbiBvZiB0aGUge1smKiZdfWxpZmUgb2YgYSBzb3VsIHRocm91Z2ggcGFzc2lvbiBvciB3ZWFrbmVzcywgDQp0aHJvdWdoIGNhbGFtaXR5IG9yIGNyaW1lLiANCg17WyYqJl19ClRoZSBoaXN0b3JpY2FsIHBsYXlzIGxlYWQgdXAgdG8gSGVucnkgRi4sIGluIHRoZSBjaHJvLSANCm5vbG9naWNhbCBzdWNjZXNzaXtbJiomXX1vbiBvZiBTaGFrc3BlcmVcJ3MgcGxheXMgdGhlIGxhc3Qgb2YgdGhlIA0Kc2VyaWVzLiBUaGUgdHJhZ2VkaWVzIGxlYWQgdXAgdG8gVHtbJiomXX1oZSBUZW1wZXN0XiB3aGljaCANCmNsb3NlcyBTaGFrc3BlcmVcJ3MgZW50aXJlIGNhcmVlciBhcyBkcmFtYXRpc3QuIEdlcnZpbnVzIHtbJiomXX0NCmhhcyBzcG9rZW4gb2YgS2luZyBIZW5yeSBZLiBhcyBpZiBoZSB3ZXJlIFNoYWtzcGVyZVwncyANCmlkZWFsIG9mIGhpZ2hlc3QgbXtbJiomXX1hbmhvb2QsIGFuZCBvdGhlciBjcml0aWNzIGhhdmUgYXNzZW50ZWQgDQp0byB0aGlzIG9waW5pb24uIEl0IGlzIGFuIG9waW5pb24ge1smKiZdfXdoaWNoLCBzdGF0ZWQgaW4gYW4gdW4tIA0KcXVhbGlmaWVkIHdheSwgbXVzdCBiZSBzZXQgYXNpZGUgYXMgbm90IHdhcnJhbnRlZCB7WyYqJl19YnkgdGhlIA0KNSANCg0KMDYgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KZmFjdHMgb2YgU2hha3NwZXJlXCdzIGR7WyYqJl19cmFtYXMuIEJ1dCBpdCBpcyBjbGVhciBhbmQgdW5xdWVzLSANCnRpb25hYmxlIHRoYXQgS2luZyBIZW5yeSBWLiBpcyBTaGFrc3BlcntbJiomXX1lXCdzIGlkZWFsIG9mIHRoZSANCnByYWN0aWNhbCBoZXJvaWMgY2hhcmFjdGVyLiBIZSBpcyB0aGUga2luZyB3aG8gd2lsbCBub3QgDXtbJiomXX0KZmFpbC4gSGUgd2lsbCBub3QgZmFpbCBhcyB0aGUgc2FpbnRseSBIZW5yeSBZSS4gZmFpbGVkLCANCm5vciBhcyBSaWNoYXJkIElJe1smKiZdfS4gZmFpbGVkLCBhIGhlY3RpYywgc2VsZi1pbmR1bGdlbnQgbmF0dXJlLCANCmEgbW9ja2VyeSBraW5nIG9mIHBhZ2VhbnRyeSBhbmR7WyYqJl19IHNlbnRpbWVudCBhbmQgcmhldG8tIA0KcmljIDsgbm9yIHdpbGwgaGUgb25seSBwYXJ0aWFsbHkgc3VjY2VlZCBieSBwcnVkZW50aXtbJiomXX1hbCBkZS0gDQp2aWNlcywgYW5kIHN0cmF0YWdlbXMgYW5kIGNyaW1lcywgbGlrZSBoaXMgZmF0aGVyLCBcIiBncmVhdCANCkJvbGluZ3tbJiomXX1icm9rZS5cIiBUaGUgc3VjY2VzcyBvZiBIZW5yeSBWLiB3aWxsIGJlIHNvdW5kIA0KdGhyb3VnaG91dCwgYW5kIGl0IHdpbGwgYmUgY3tbJiomXX1vbXBsZXRlLiBXaXRoIGhpcyBnbG9yaW91cyANCnByYWN0aWNhbCB2aXJ0dWVzLCBoaXMgY291cmFnZSwgaGlzIGludGVncml0eSwge1smKiZdfWhpcyB1bmZhbHRlci0gDQppbmcganVzdGljZSwgaGlzIGhlYXJ0eSBFbmdsaXNoIHdhcm10aCwgaGlzIG1vZGVzdHksIGhpcyANCmx7WyYqJl19b3ZlIG9mIHBsYWlubmVzcyByYXRoZXIgdGhhbiBvZiBwYWdlYW50cnksIGhpcyBqb3lvdXMgDQp0ZW1wZXIsIGhpcyBidXNpbmVzc3tbJiomXX0tbGlrZSBFbmdsaXNoIHBpZXR5LCBIZW5yeSBpcyBpbmRlZWQgDQp0aGUgaWRlYWwgb2YgdGhlIGtpbmcgd2hvIG11c3QgYXR0YWlue1smKiZdfSBhIHN1Y2Nlc3MgY29tcGxldGUsIA0KYW5kIHRob3JvdWdobHkgcmVhbCBhbmQgc291bmQuIA0KDQpCdXQgaXMgdGhpcyBwcmFjdGl7WyYqJl19Y2FsLCBwb3NpdGl2ZSwgZWZmaWNpZW50IGNoYXJhY3Rlciwgd2l0aCANCmhpcyBzb2xkaWVyLWxpa2UgcGlldHkgYW5kIGhpcyBqb3tbJiomXX1sbHkgZmFzaGlvbiBvZiB3b29pbmcsIGlzIA0KdGhpcyB0aGUgaGlnaGVzdCBpZGVhbCBvZiBvdXIgc3VwcmVtZSBwb2V0ID8gSXMge1smKiZdfXRoaXMgdGhlIA0KaGlnaGVzdCBpZGVhbCBvZiBTaGFrc3BlcmUsIHdobyBsaXZlZCBhbmQgbW92ZWQgYW5kIGhhZCANCmhpcyBiZWl7WyYqJl19bmcgbm90IGFsb25lIGluIHRoZSB3b3JsZCBvZiBsaW1pdGF0aW9uLCBvZiB0YW5naWJsZSwgDQpwb3NpdGl2ZSBmYWN0LCBidXQgYXtbJiomXX1sc28gaW4gYSB3b3JsZCBvZiB0aGUgc291bCwgYSB3b3JsZCBvcGVuLSANCmluZyBpbnRvIHR3byBlbmRsZXNzIHZpc3RhcyDigJQge1smKiZdfXRoZSB2aXN0YSBvZiBtZWRpdGF0aW9uIGFuZCANCnRoZSB2aXN0YSBvZiBwYXNzaW9uID8gQXNzdXJlZGx5IGl0IGlzIG5vdCBzby57WyYqJl19IFdlIHR1cm4gdG8gDQp0aGUgZ3JlYXQgdHJhZ2VkaWVzLCBhbmQgd2hhdCBkbyB3ZSB0aGVyZSBkaXNjb3ZlciA/IEluIA0KdGhlc3tbJiomXX1lIFNoYWtzcGVyZSBpcyBlbmdhZ2VkIGluIGEgc2VyaWVzIG9mIHN0dWRpZXMgbm90IGNvbi0gDQpjZXJuaW5nIHN1Y2Nlc3MgaW4ge1smKiZdfXRoZSBtYXN0ZXJ5IG9mIGV2ZW50cyBhbmQgdGhpbmdzLCBidXQgDQpjb25jZXJuaW5nIHRoZSBoaWdoZXIgc3VjY2VeIGFuZCB0aGV7WyYqJl19IG1vcmUgYXdmdWwgZmFpbHVyZSANCndoaWNoIGFwcGVhciBpbiB0aGUgZXhhbHRhdGlvbiBvciB0aGUgcnVpbiBvZiBhIHNvdWwuIHtbJiomXX0NClRoaXMgd2l0aCBTaGFrc3BlcmUgaXMgdGhlIHRydWUgdGhlbWUgb2YgdHJhZ2VkeS4gSGF2LSANCmluZyBleGhpYml0ZWQgdmFye1smKiZdfWlvdXMgY2FsYW1pdHkgb3ZlcnRha2luZyB0aGUgYmVpbmcgYW5kIA0KZXNzZW50aWFsIGxpZmUgb2YgbWFuIOKAlCBjYWxhbWl0eSB7WyYqJl19Y29tbW9ubHkgYXJpc2luZyBmcm9tIA0KZmxhd3Mgb2YgY2hhcmFjdGVyIHdoaWNoIGRpc2Nsb3NlIHRoZW1zZWx2ZXMgYW5kIGJlY3tbJiomXX1vbWUgDQpmb3JtaWRhYmxlIGluIHRoZSB0ZXN0IG9mIGNpcmN1bXN0YW5jZXMgOyBoYXZpbmcgc2hvd24gaW4gDQpNYWNiZXRoLCBpe1smKiZdfXUgQW50b255LCBpdSBPdGhlbGxvLCBpbiBDb3Jpb2xhbnVzIHRoZSBydWluIG9mIA0KDQpHcm93dGggb2YgU2hha3NwZXJlXCdzIE1pe1smKiZdfW5kIGFuZCBBcnQuIDY3IA0KDQpjaGFyYWN0ZXIgaW4gZ3JlYXRlciBvciBsZXNzIGRlZ3JlZSwgU2hha3NwZXJlIHJlcHJlc2VudGV7WyYqJl19ZCANCmFic29sdXRlLCBvdmVyd2hlbG1pbmcsIGlycmV0cmlldmFibGUgcnVpbiBpbiBUaW1vbiBvZiANCkF0aGVuc14gYSBwbGF5IHtbJiomXX13cml0dGVuIHByb2JhYmx5IG5vdCBsb25nIGJlZm9yZSB0aGUgVGVybiogDQpwZXN0LiBBbmQsIGFmdGVyIGV4aGliaXRpbmcgdGhle1smKiZdfSBhYnNvbHV0ZSBydWluIG9mIGEgbGlmZSANCmFuZCBvZiBhIHNvdWwsIFNoYWtzcGVyZSBjbG9zZWQgdGhlIHdvbmRlcmZ1bCBzZXJ7WyYqJl19aWVzIG9mIA0KaGlzIGRyYW1hdGljIHdyaXRpbmdzIGJ5IGV4aGliaXRpbmcgdGhlIG5vYmxlc3QgZWxldmF0aW9uIA0Kb2YgY2hhcntbJiomXX1hY3RlciwgdGhlIG1vc3QgYWRtaXJhYmxlIGF0dGFpbm1lbnQgb2YgaGVhcnQsIG9mIA0KaW50ZWxsZWN0LCBvZiB3aWxsLCB3aGlje1smKiZdfWggb3VyIHByZXNlbnQgbGlmZSBhZG1pdHMsIGluIHRoZSBwZXItIA0Kc29uIG9mIFByb3NwZXJvLiBXaGF0IG1vcmUgd2FzIGxlZnR7WyYqJl19IGZvciBTaGFrc3BlcmUgdG8gDQpzYXkgPyBJcyBpdCBzbyB2ZXJ5IHN0cmFuZ2UgdGhhdCBoZSBhY2NlcHRlZCBhcyBhIGdvb2QgDXtbJiomXX0KcG9zc2Vzc2lvbiB0aGUgY2FsbSBlbmVyZ3kgb2YgaGlzIFN0cmF0Zm9yZCBsaWZlLCBoYXZpbmcgDQphdCBsYXN0IHdob2xseSBse1smKiZdfWliZXJhdGVkIGhpcyBtaW5kID8gDQoNClNoYWtzcGVyZSwgd2hlbiBoZSBoYWQgY29tcGxldGVkIGhpcyBFbmdsaXNoIGhpc3Rvci17WyYqJl19IA0KaWNhbCBwbGF5cywgbmVlZGVkIHJlc3QgZm9yIGhpcyBpbWFnaW5hdGlvbiA7IGFuZCBpbiBzdWNoIA0KYSBtb29kLCBjcmF2aXtbJiomXX1uZyByZWZyZXNobWVudCBhbmQgcmVjcmVhdGlvbiwgaGUgd3JvdGUgaGlzIA0KcGxheSBvZiBBcyBZb3UgTGlrZSBJdC4gVG8gdW5ke1smKiZdfWVyc3RhbmQgdGhlIHNwaXJpdCBvZiB0aGlzIA0KcGxheSwgd2UgbXVzdCBiZWFyIGluIG1pbmQgdGhhdCBpdCB3YXMgd3JpdHRlbiB7WyYqJl19aW1tZWRpLSANCmF0ZWx5IGFmdGVyIFNoYWtzcGVyZVwncyBncmVhdCBzZXJpZXMgb2YgaGlzdG9yaWVzLCBlbmRpbmcgDQp3aXRoIEh7WyYqJl19ZW5yeSBWLiAoMTU5OSksIGFuZCBiZWZvcmUgaGUgYmVnYW4gdGhlIGdyZWF0IHNlLSANCnJpZXMgb2YgdHJhZ2VkaWVzLiBTaGFrc3tbJiomXX1wZXJlIHR1cm5lZCB3aXRoIGEgc2Vuc2Ugb2YgcmUtIA0KbGllZiwgYW5kIGEgbG9uZyBlYXNlZnVsIHNpZ2gsIGZyb20gdGhlIG9we1smKiZdfXByZXNzaXZlIHN1YmplY3RzIA0Kb2YgaGlzdG9yeSwgc28gZ3JhdmUsIHNvIHJlYWwsIHNvIG1hc3NpdmUsIGFuZCBmb3VuZCByZXN7WyYqJl19dCANCmFuZCBmcmVlZG9tIGFuZCBwbGVhc3VyZSBpbiBlc2NhcGUgZnJvbSBjb3VydHMgYW5kIA0KY2FtcHMgdG8gdGhlIEZvcmVzdHtbJiomXX0gb2YgQXJkZW4gOiANCg0KXCIgV2hvIGRvdGggYW1iaXRpb24gc2h1biwgDQpBbmQgbG92ZXMgdG8gbGl2ZSBpXCcgdGhlIHN1biwgDQp7WyYqJl19DQpDb21lIGhpdGhlciwgY29tZSBoaXRoZXIsIGNvbWUgaGl0aGVyLlwiIA0KDQpJbiBzb21ld2hhdCB0aGUgc2FtZSBzcGlyaXQsIG57WyYqJl19ZWVkaW5nIHJlbGllZiBmb3IgYW4gb3Zlci0gDQpzdHJhaW5lZCBpbWFnaW5hdGlvbiwgaGUgd3JvdGUgaGlzIG90aGVyIHBhc3RvcntbJiomXX1hbCBkcmFtYSwgDQpUaGUgV2ludGVyXCdecyBUYWxlLiwgaW1tZWRpYXRlbHksIG9yIGFsbW9zdCBpbW1lZGlhdGVseSwgDQphZnRlcntbJiomXX0gVGltb24gb2YgQXRoZW5zLiBJbiBzdWNoIGEgY2FzZSBoZSBjaG9zZSBhIGdyYWNlLSANCmZ1bCBzdG9yeSwgaW4gZ3JlYXQgcGFye1smKiZdfXQgbWFkZSByZWFkeSB0byBoaXMgaGFuZCwgZnJvbSANCmFtb25nIHRoZSBwcm9zZSB3cml0aW5ncyBvZiBoaXMgZWFybHkgY29udGV7WyYqJl19bXBvcmFyaWVzLCANClRob21hcyBMb2RnZSBhbmQgUm9iZXJ0IEdyZWVuZS4gTGlrZSB0aGUgYmFuaXNoZWQgDQpEdWtlLCBTaGFrc3tbJiomXX1wZXJlIGhpbXNlbGYgZm91bmQgdGhlIGZvcmVzdCBsaWZlIG9mIEFyZGVuIA0KDQo2OCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFue1smKiZdfWQgQXJ0LiANCg0KbW9yZSBzd2VldCB0aGFuIHRoYXQgb2YgcGFpbnRlZCBwb21wIDsgYSBsaWZlIFwiIGV4ZW1wdCANCmZyb20gcHVie1smKiZdfWxpYyBoYXVudCxcIiBpbiBhIHF1aWV0IHJldHJlYXQsIHdoZXJlIGZvciB0dXJidS0gDQpsZW50IGNpdGl6ZW5zLCB0aGUgZGVlciwge1smKiZdfVwiIHBvb3IgZGFwcGxlZCBmb29scy9cJyBhcmUgdGhlIG9ubHkgDQpuYXRpdmUgYnVyZ2hlcnMuIA0KDQpUaGUgcGxheSBoYXMgYmVlbntbJiomXX0gcmVwcmVzZW50ZWQgYnkgb25lIG9mIGl0cyByZWNlbnQgDQplZGl0b3JzIGFzIGFuIGVhcmx5IGF0dGVtcHQgbWFkZSBieSB0aGUge1smKiZdfXBvZXQgdG8gY29udHJvbCANCnRoZSBkYXJrIHNwaXJpdCBvZiBtZWxhbmNob2xqXiBpbiBoaW1zZWxmIFwnXCcgYnkgdGhpbmtpbmcgaXtbJiomXX10IA0KYXdheS5cIiBUaGUgY2hhcmFjdGVycyBvZiB0aGUgYmFuaXNoZWQgRHVrZSwgb2YgT3JsYW4tIA0KZG8sIG9mIFJvc2FsaW5kLHtbJiomXX0gYXJlIGRlc2NyaWJlZCBhcyB0aHJlZSBncmFkYXRpb25zIG9mIGNoZWVyLSANCmZ1bG5lc3MgaW4gYWR2ZXJzaXR5LCB3aXRoIEphe1smKiZdfXF1ZXMgcGxhY2VkIG92ZXIgdGhlbSBpbiBkZS0gDQpzaWduZWQgY29udHJhc3QuXiBCdXQgbm8gcmVhbCBhZHZlcnNpdHkgaGFzIGN7WyYqJl19b21lIHRvIGFueSANCm9uZSBvZiB0aGVtLiBTaGFrc3BlcmUsIHdoZW4gaGUgcHV0IGludG8gdGhlIER1a2VcJ3MgDQptb3V0aCB0aGV7WyYqJl19IHdvcmRzIFwiIFN3ZWV0IGFyZSB0aGUgdXNlcyBvZiBhZHZlcnNpdHksXCIgDQprbmV3IHNvbWV0aGluZyBvZiBkZWVwZXIgYWZmbGlje1smKiZdfXRpb24gdGhhbiBhIGxpZmUgaW4gdGhlIA0KZ29sZGVuIGxlaXN1cmUgb2YgQXJkZW4uIE9mIHJlYWwgbWVsYW5jaG9seSB0aGVyZSB7WyYqJl19aXMgDQpub25lIGluIHRoZSBwbGF5IDsgZm9yIHRoZSBtZWxhbmNob2x5IG9mIEphcXVlcyBpcyBub3QgDQpncmF2ZSBhbmQgZWFybntbJiomXX1lc3QsIGJ1dCBzZW50aW1lbnRhbCwgYSBzZWxmLWluZHVsZ2VudCBodS0gDQptb3IsIGEgcGV0dGVkIGZvaWJsZSBvZiBjaGFyYWN0e1smKiZdfWVyLCBtZWxhbmNob2x5IHByZXBlbnNlIA0KYW5kIGN1bHRpdmF0ZWQgOyBcIiBpdCBpcyBhIG1lbGFuY2hvbHkgb2YgbWluZSBvd24se1smKiZdfSBjb20tIA0KcG91bmRlZCBvZiBtYW55IHNpbXBsZXMsIGV4dHJhY3RlZCBmcm9tIG1hbnkgb2JqZWN0cyA7IA0KYW5kIGluZGVlZCB7WyYqJl19dGhlIHN1bmRyeSBjb250ZW1wbGF0aW9uIG9mIG15IHRyYXZlbHMsIGluIA0Kd2hpY2ggbXkgb2Z0ZW4gcnVtaW5hdGlvbiB3cmFwc3tbJiomXX0gbWUgaW4gYSBtb3N0IGh1bW9yLSANCm91cyBzYWRuZXNzLlwiIFRoZSBEdWtlIGRlY2xhcmVzIHRoYXQgSmFxdWVzIGhhcyBiZWVuIHtbJiomXX0NClwiYSBsaWJlcnRpbmUsIGFzIHNlbnN1YWwgYXMgdGhlIGJydXRpc2ggc3RpbmcgaXRzZWxmO1wiIGJ1dCANCnRoZSBEdWtlIGlzIHV7WyYqJl19bmFibGUgdG8gdW5kZXJzdGFuZCBzdWNoIGEgY2hhcmFjdGVyIGFzIHRoYXQgDQpvZiBKYXF1ZXMuZiBKYXF1ZXMgaGFzIGJlZW4gbntbJiomXX1vIG1vcmUgdGhhbiBhIGN1cmlvdXMgDQpleHBlcmltZW50ZXIgaW4gbGliZXJ0aW5pc20sIGZvciB0aGUgc2FrZSBvZiBhZGRpbmcge1smKiZdfWFuIGV4LSANCnBlcmllbmNlIG9mIG1hZG5lc3MgYW5kIGZvbGx5IHRvIHRoZSBzdG9yZSBvZiB2YXJpb3VzIHN1LSANCnBlcmZpY2l7WyYqJl19YWwgZXhwZXJpZW5jZXMgd2hpY2ggY29uc3RpdHV0ZSBoaXMgdW5wcmFjdGljYWwgZm9vbC0gDQplcnkgb2Ygd2lzZG9tLiBUaGUgaHtbJiomXX1hdW50cyBvZiBzaW4gaGF2ZSBiZWVuIHZpc2l0ZWQgYXMgDQoNCiogQSZhbXA7IFlvdSBMaWtlIEl0LCBlZGl0ZWQgYnkgdGhlIFJle1smKiZdfXYuIEMuIEUuIE1vYmVybHkgKDE4NzIpLCBwcC4gNy05LiANCg0KZiBUaGUgRHVrZSBhY2NvcmRpbmdseSByZXBlbHMgSmFxdWVzLiB7WyYqJl19XCdcJ1wnXCdKYXF1ZXMuIEkgaGF2ZSBiZWVuIGFsbCB0aGlzIA0KZGF5IHRvIGF2b2lkIGhpbSA7IGhlIGlzIHRvbyBkaXNwdXRhYmxlIGZ7WyYqJl19b3IgbXkgY29tcGFueSA7IEkgdGhpbmsgb2YgYXMgbWFueSANCm1hdHRlcnMgYXMgaGUsIGJ1dCBJIGdpdmUgaGVhdmVuIHRoYW5rc3tbJiomXX0sIGFuZCBtYWtlIG5vIGJvYXN0IG9mIHRoZW0sXCIgDQoNCkdyb3d0aCBvZiBTaGFrc3BlcmVcJ3MgTWluZCBhbmQgQXJ0LiA2OSANCg17WyYqJl19CmEgcGFydCBvZiBoaXMgdHJhdmVsLiBCeS1hbmQtYnkgaGUgd2lsbCBnbyB0byB0aGUgdXN1cnBpbmcgDQpEdWtlLCB3aG8gaGFzIHtbJiomXX1wdXQgb24gYSByZWxpZ2lvdXMgbGlmZSwgYmVjYXVzZSANCg0KXCIgT3V0IG9mIHRoZXNlIGNvbnZlcnRpdGVzIA0KVGhlcmUgaXMgbXtbJiomXX11Y2ggbWF0dGVyIHRvIGJlIGhlYXJkIGFuZCBsZWFybk0uXCIgDQoNCkphcXVlcyBkaWVkLCB3ZSBrbm93IG5vdCBob3cgb3Igd2hlbntbJiomXX0gb3Igd2hlcmUgOyANCmJ1dCBoZSBjYW1lIHRvIGxpZmUgYWdhaW4gYSBjZW50dXJ5IGxhdGVyLCBhbmQgYXBwZWFyZWQgDQppbiB0e1smKiZdfWhlIHdvcmxkIGFzIGFuIEVuZ2xpc2ggY2xlcmd5bWFuLiBXZSBuZWVkIHN0YW5kIGluIA0Kbm8gZG91YnQgYXMgdG8gaGlzIGNoYXJ7WyYqJl19YWN0ZXIsIGZvciB3ZSBhbGwga25vdyBoaW0gdW5kZXIgDQpoaXMgbGF0ZXIgbmFtZSBvZiBMYXdyZW5jZSBTdGVybmUuIE1yLiBZb3tbJiomXX1yaWNrIG1hZGUgDQphIG1pc3Rha2UgYWJvdXQgaGlzIGZhbWlseSB0cmVlIDsgaGUgY2FtZSBub3Qgb3V0IG9mIHRoZSANCnBsYXkge1smKiZdfW9mIEhhbWxldF4gYnV0IG91dCBvZiBBcyBZb3UgTGlrZSBJdC4gSW4gQXJkZW4gDQpoZSB3ZXB0IGFuZCBtb3JhbGl6ZWQgb3ZlciB7WyYqJl19dGhlIHdvdW5kZWQgZGVlciA7IGFuZCBhdCANCk5hbXBvcnQgaGlzIHRlYXJzIGFuZCBzZW50aW1lbnQgZ3VzaGVkIGZvcnRoIGZvcntbJiomXX0gdGhlIA0KZGVhZCBkb25rZXkuIEphcXVlcyBrbm93cyBubyBib25kcyB0aGF0IHVuaXRlIGhpbSANCnRvIGFueSBsaXZpbmcgdGhpe1smKiZdfW5nLiBIZSBsaXZlcyB1cG9uIG5vdmVsLCBjdXJpb3VzLCBhbmQgDQpkZWxpY2F0ZSBzZW5zYXRpb25zLiBIZSBzZWVrcyB0aGUgZGV7WyYqJl19bGljaW91cyBpbXByZXZ1IHNvIA0KbG92ZWQgYW5kIHN0dWRpb3VzbHkgc291Z2h0IGZvciBieSB0aGF0IHBlcmZlY3RlZCBGcmVuY3tbJiomXX1oIA0KZWdvaXN0LCBIZW5yaSBCZXlsZS4gXCIgQSBmb29sICEgYSBmb29sICEgSSBtZXQgYSBmb29sIGlcJyANCnRoZSBmb3Jlc3QgIVwie1smKiZdfSDigJQgYW5kIGluIHRoZSBkZWxpZ2h0IG9mIGNvbWluZyB1cG9uIHRoaXMgZXgtIA0KcXVpc2l0ZSBzdXJwcmlzZSwgSmFxdWVzIGx7WyYqJl19YXVnaHMgbGlrZSBjaGFudGljbGVlciwgDQoNClwiIFNhbnMgaW50ZXJtaXNzaW9uIA0KQW4gaG91ciBieSBoaXMgZGlhbC5cIiANCg0Ke1smKiZdfUhpcyB3aG9sZSBsaWZlIGlzIHVuc3Vic3RhbnRpYWwgYW5kIHVucmVhbCwgYSBjdXJpb3NpdHkgDQpvZiBkYWludHkgbW9ja2VyeS57WyYqJl19IFRvIGhpbSBcIiBhbGwgdGhlIHdvcmxkIFwncyBhIHN0YWdlLCANCmFuZCBhbGwgdGhlIG1lbiBhbmQgd29tZW4gbWVyZWx5IHBsYXlle1smKiZdfXJzO1wiIHRvIGhpbSANCnNlbnRpbWVudCBzdGFuZHMgaW4gcGxhY2Ugb2YgcGFzc2lvbiA7IGFuIGFlc3RoZXRpYywgYW1hLSANCnRle1smKiZdfXVyaXNoIGV4cGVyaWVuY2Ugb2YgdmFyaW91cyBtb2RlcyBvZiBsaWZlIHN0YW5kcyBpbiBwbGFjZSANCm9mIHByYWN0aWNhbCB3aXN7WyYqJl19ZG9tLCBhbmQgd29yZHMgaW4gcGxhY2Ugb2YgZGVlZHMuIA0KDQpcIiBIZSBmYXRpZ3VlcyBtZSxcIiB3cm90ZSBvdXIgZWFybmVzdCBhe1smKiZdfW5kIHNlbnNpdGl2ZSANClRoYWNrZXJheSBvZiB0aGUgSmFxdWVzIG9mIEVuZ2xpc2ggbGl0ZXJhdHVyZSwgXCIgd2l0aCANCmhpcyBwe1smKiZdfWVycGV0dWFsIGRpc3F1aWV0IGFuZCBoaXMgdW5lYXN5IGFwcGVhbHMgdG8gbXkgcmlzaS0gDQpibGUgb3Igc2VudGltZW50YWwgZmF7WyYqJl19Y3VsdGllcy4gSGUgaXMgYWx3YXlzIGxvb2tpbmcgaW4gDQpteSBmYWNlLCB3YXRjaGluZyBoaXMgZWZmZWN0LCB1bmNlcnRhaW4gd3tbJiomXX1oZXRoZXIgSSB0aGluayANCmhpbSBhbiBpbXBvc3RvciBvciBub3Q7IHBvc3R1cmUgLW1ha2luZywgY29heGluZywgYW5kIA0KaW1we1smKiZdfWxvcmluZyBtZS4gXCcgU2VlIHdoYXQgc2Vuc2liaWxpdHkgSSBoYXZlIOKAlCBvd24gbm93IA0KDQo3MCBTaGFrc3BlcmUg4oCUIEhpe1smKiZdfXMgTWluZCBhbmQgQXJ0LiANCg0KdGhhdCBJXCdtIHZlcnkgY2xldmVyIOKAlCBkbyBjcnkgbm93LCB5b3UgY2FuXCd0IHJlc2lzdCB0aHtbJiomXX1pcy5cJ1wnXiANClRlcyA7IGZvciBKYXF1ZXMgd2FzIGF0IGhpcyBiZXN0IGluIHRoZSBGb3Jlc3Qgb2YgQXJkZW4sIA0KYW5kIHdhcyB7WyYqJl19YSBsaXR0bGUgc3BvaWxlZCBieSBwcmVhY2hpbmcgd2Vla2x5IHNlcm1vbnMsIA0KYW5kIGJ5IHdyaXRpbmcgc28gbG9uZyBhIGNhcHtbJiomXX1yaWNlIGFzIGhpcyBcJ1wnIFRyaXN0cmFtIFNoYW4tIA0KZHkuXCIgU2hha3NwZXJlIGhhcyBnaXZlbiB1cyBqdXN0IGVub3VnaCBvZiBKe1smKiZdfWFxdWVzLCANCmFuZCBub3QgdG9vIG11Y2ggOyBhbmQsIGluIGhpcyB1bmRvZ21hdGljLCBhcnRpc3RpYywgdGVuLSANCmRlciwgcGx7WyYqJl19YXlmdWwsIGFuZCB5ZXQgZWFybmVzdCBtYW5uZXIsIHVwb24gSmFxdWVzIFNoYWstIA0Kc3BlcmUgaGFzIHByb25vdW5jZWQganVkZ3tbJiomXX1tZW50LiBGYWxzdGFmZiBzdXBwb3NlZCB0aGF0LCANCmJ5IGluZmluaXRlIHBsYXkgb2Ygd2l0LCBhbmQgaW5leGhhdXN0aWJsZSBye1smKiZdfWVzb3VyY2Ugb2YgYSANCmdlbml1cyBjcmVhdGl2ZSBvZiBzcGxlbmRpZCBtZW5kYWNpdHksIGhlIGNvdWxkIGNvcnVzLSANCmNhdGV7WyYqJl19IGF3YXkgdGhlIGZhY3RzIG9mIGxpZmUsIGFuZCBhbHdheXMgcmVtYWluIG1hc3RlciBvZiANCnRoZSBzaXR1YXRpb24gYnkgZ2l2aXtbJiomXX1uZyBpdCBhIGNsZXZlciB0dXJuIGluIHRoZSBpZGVhLCBvciBieSANCnBsYXlpbmcgb3ZlciBpdCB3aXRoIGFuIGFyYWJlc3F1ZSBve1smKiZdfWYgYXJjaCB3YWdnZXJ5LiANCg0KXCIgSSBrbm93IHRoZWUgbm90LCBvbGQgbWFuIDsgZmFsbCB0byB0aHkgcHJheWVycyA7IA0KSG93e1smKiZdfSBpbGwgd2hpdGUgaGFpcnMgYmVjb21lIGEgZm9vbCBhbmQgamVzdGVyICFcIiANCg0KVGhhdCB3YXMgdGhlIHRlcnJpYmxlIGluY3Vye1smKiZdfXNpb24gb2YgZmFjdC4gU3VjaCB3b3JkcyBhcyANCnRoZXNlLCBjb21pbmcgZnJvbSB0aGUgbGlwcyBvZiBhIG1hbiB3aG8gaGFkIGF7WyYqJl19biB1bmVyLSANCnJpbmcgcGVyY2VwdGlvbiBhbmQgYW4gdW5mYWx0ZXJpbmcgZ3Jhc3Agb2YgdGhlIGZhY3QsIHdlcmUgDQptb3JlIHtbJiomXX10aGFuIHdvcmRzIOKAlCB0aGV5IHdlcmUgYSBkZWVkLCB3aGljaCBGYWxzdGFmZiB0aGUgDQp1bnN1YmR1YWJsZSwgd2l0aCBhbGwge1smKiZdfWhpcyB3aXQsIGNvdWxkIG5vdCBjb3J1c2NhdGUgYXdheS4gDQpcIiBCeSBteSB0cm90aCwgaGVcJ2xsIHlpZWxkIHRoZSBjcm93IGEgcHtbJiomXX11ZGRpbmcgb25lIG9mIA0KdGhlc2UgZGF5cyA7IHRoZSBraW5nIGhhcyBraWxsXCdkIGhpcyBoZWFydC5cIiBKYXF1ZXMsIGluIA0KaGl7WyYqJl19cyBvd24gd2F5LCBzdXBwb3NlcyB0aGF0IGhlIGNhbiBkaXNwZW5zZSB3aXRoIHJlYWxpdGllcy4gDQpUaGUgd29ybGQsIG5vdCBhc3tbJiomXX0gaXQgaXMsIGJ1dCBhcyBpdCBtaXJyb3JzIGl0c2VsZiBpbiBoaXMgb3duIA0KbWluZCwgd2hpY2ggZ2l2ZXMgdG8gZWFjaCBvYmple1smKiZdfWN0IGEgaHVtb3JvdXMgZGlzdG9ydGlvbiDigJQgDQp0aGlzIGlzIHdoYXQgYWxvbmUgaW50ZXJlc3RzIEphcXVlcy4gU2hha3NwZXJ7WyYqJl19ZSB3b3VsZCANCnNheSB0byB1cywgXCIgVGhpcyBlZ29pc3RpYywgY29udGVtcGxhdGl2ZSwgdW5yZWFsIG1hbm5lciANCm9mIHRyZWF7WyYqJl19dGluZyBsaWZlIGlzIG9ubHkgYSBkZWxpY2F0ZSBraW5kIG9mIGZvb2xlcnkuIFJlYWwgDQprbm93bGVkZ2Ugb2YgbGlmZSBjYW4gbntbJiomXX1ldmVyIGJlIGFjcXVpcmVkIGJ5IHRoZSBjdXJpb3VzIA0Kc2Vla2VyIGZvciBleHBlcmllbmNlcy5cIiBCdXQgdGhpcyBTaGFrc3BlcntbJiomXX1lIHNheXMgaW4gaGlzIA0Kbm9uLWhvcnRhdG9yeSwgdW5kb2dtYXRpYyB3YXkuIA0KDQpVcG9uIHRoZSB3aG9sZS4gQXMgWW91IExpe1smKiZdfWtlIEl0IGlzIHRoZSBzd2VldGVzdCBhbmQgDQpoYXBwaWVzdCBvZiBhbGwgU2hha3NwZXJlXCdzIGNvbWVkaWVzLiBObyBvbmUgc3Vme1smKiZdfWZlcnM7IA0Kbm8gb25lIGxpdmVzIGFuIGVhZ2VyIGludGVuc2UgbGlmZSA7IHRoZXJlIGlzIG5vIHRyYWdpYyBpbi0gDQp0ZXJlc3R7WyYqJl19IGluIGl0IGFzIHRoZXJlIGlzIGluIFRoZSBNZXJjaGFudCBvZiBWZW5pY2VeIGFzIA0KDQpHcm93dGggb2YgU2hha3NwZXJlcyBNaXtbJiomXX1uZCBhbmQgQXJ0IDcxIA0KDQp0aGVyZSBpcyBpbiBNdWNoIEFkbyBhYm91dCBOb3RoaW5nLiBJdCBpcyBtaXJ0aGZ1bCwgDQpidXQge1smKiZdfXRoZSBtaXJ0aCBpcyBzcHJpZ2h0bHksIGdyYWNlZnVsLCBleHF1aXNpdGUgOyB0aGVyZSBpcyANCm5vbmUgb2YgdGhlIHJvbGxpY2t7WyYqJl19aW5nIGZ1biBvZiBhIFNpciBUb2J5IGhlcmUgOyB0aGUgc29uZ3MgDQphcmUgbm90IFwiIGNvemllcnNcJyBjYXRjaGVzIFwiIHNob3V0ZXtbJiomXX1kIGluIHRoZSBuaWdodCAtIHRpbWUsIA0KXCJ3aXRob3V0IGFueSBtaXRpZ2F0aW9uIG9yIHJlbW9yc2Ugb2Ygdm9pY2UsXCIgYnV0IHR7WyYqJl19aGUgDQpzb2xvcyBhbmQgZHVldHMgb2YgcGFnZXMgaW4gdGhlIHdpbGQtd29vZCwgb3IgdGhlIG5vaXNpZXIgDQpjaG9ydXMgb2YgZntbJiomXX1vcmVzdGVycy4gVGhlIHdpdCBvZiBUb3VjaHN0b25lIGlzIG5vdCBtZXJlIA0KY2xvd25hZ2UsIG5vciBoYXMgaXQgYW55IGluZGlye1smKiZdfWVjdCBzZXJpb3VzIHNpZ25pZmljYW5jZXMgOyBpdCANCmlzIGEgZGFpbnR5IGtpbmQgb2YgYWJzdXJkaXR5IHdvcnRoeSB0byBob2x7WyYqJl19ZCBjb21wYXJpc29uIA0Kd2l0aCB0aGUgbWVsYW5jaG9seSBvZiBKYXF1ZXMuIEFuZCBPcmxhbmRvLCBpbiB0aGUgDQpiZWF1dHkgYXtbJiomXX1uZCBzdHJlbmd0aCBvZiBlYXJseSBtYW5ob29kLCBhbmQgRW9zYWxpbmQg4oCUIA0KDQpcIkEgZ2FsbGFudCBjdXJ0bGUtYXhlIHVwb3tbJiomXX1uIGhlciB0aGlnaCwgDQpBIGJvYXItc3BlYXIgaW4gaGVyIGhhbmQsXCIgDQoNCmFuZCB0aGUgYnJpZ2h0LCB0ZW5kZXIsIGxveWFsIHtbJiomXX13b21hbmhvb2Qgd2l0aGluIOKAlCBhcmUgZmlnLSANCnVyZXMgd2hpY2ggcXVpY2tlbiBhbmQgcmVzdG9yZSBvdXIgc3Bpcml0cywge1smKiZdfWFzIG11c2ljIGRvZXMgDQp3aGljaCBpcyBuZWl0aGVyIG5vaXN5IG5vciBzdXBlcmZpY2lhbCwgYW5kIHlldCB3aGljaCANCmtub3d7WyYqJl19cyBsaXR0bGUgb2YgdGhlIGRlZXAgcGFzc2lvbiBhbmQgc29ycm93IG9mIHRoZSB3b3JsZC4gDQpTaGFrc3BlcmUsIHdoZW4gaGUgd3tbJiomXX1yb3RlIHRoaXMgaWR5bGxpYyBwbGF5LCB3YXMgaGltLSANCnNlbGYgaW4gaGlzIEZvcmVzdCBvZiBBcmRlbi4gSGUgaGFkIGVuZGVke1smKiZdfSBvbmUgZ3JlYXQgDQphbWJpdGlvbiDigJQgdGhlIGhpc3RvcmljYWwgcGxheXMg4oCUIGFuZCBub3QgeWV0IGNvbW1lbmNlZCANCmh7WyYqJl19aXMgdHJhZ2VkaWVzLiBJdCB3YXMgYSByZXN0aW5nLXBsYWNlLiBIZSBzZW5kcyBoaXMgaW0tIA0KYWdpbmF0aW9uIGludG8gdGhlIHtbJiomXX13b29kcyB0byBmaW5kIHJlcG9zZS4gSW5zdGVhZCBvZiB0aGUgDQpjb3VydHMgYW5kIGNhbXBzIG9mIEVuZ2xhbmQgYW5kIHRoZSBle1smKiZdfW1iYXR0bGVkIHBsYWlucyBvZiANCkZyYW5jZSwgaGVyZSB3YXMgdGhpcyB3b29kbGFuZCBzY2VuZSwgd2hlcmUgdGhlIHBhbG0tIA17WyYqJl19CnRyZWUsIHRoZSBsaW9uZXNzLCBhbmQgdGhlIHNlcnBlbnQgXnJlIHRvIGJlIGZvdW5kIDsgcG9zLSANCnNlc3NlZCBvZiBhIGZsb3tbJiomXX1yYSBhbmQgZmF1bmEgdGhhdCBmbG91cmlzaCBpbiBzcGl0ZSBvZiBwaHlzLSANCmljYWwgZ2VvZ3JhcGhlcnMuIFRoZXJlIGlzIGFue1smKiZdfSBvcGVuLWFpciBmZWVsaW5nIHRocm91Z2hvdXQgDQp0aGUgcGxheS4gVGhlIGRpYWxvZ3VlLCBhcyBoYXMgYmVlbiBvYnNlcnZlZCx7WyYqJl19IGNhdGNoZXMgDQpmcmVlZG9tIGFuZCBmcmVzaG5lc3MgZnJvbSB0aGUgYXRtb3NwaGVyZS4gXCIgTmV2ZXIgaXMgDQp0aGUgc2NlbmV7WyYqJl19IHdpdGhpbi1kb29ycywgZXhjZXB0IHdoZW4gc29tZXRoaW5nIGRpc2NvcmQtIA0KYW50IGlzIGludHJvZHVjZWQgdG8gaGVpZ2h0ZXtbJiomXX1uLCBhcyBpdCB3ZXJlLCB0aGUgaGFybW9ueS5cIiBeIA0KQWZ0ZXIgdGhlIHRydW1wZXQtdG9uZXMgb2YgSGVucnkgVi4gY29tZXMgdHtbJiomXX1oZSBzd2VldCANCnBhc3RvcmFsIHN0cmFpbiwgc28gYnJpZ2h0LCBzbyB0ZW5kZXIuIE11c3QgaXQgbm90IGJlIGFsbCANCg0KKiBDe1smKiZdfS4gQS4gQnJvd24sIFwiIFNoYWtlc3BlYXJlXCdzIEF1dG9iaW9ncmFwaGljYWwgUG9lbXMsXCIgcC4gMjgzLiANCg0KNzIgU2hha3NwZXJ7WyYqJl19ZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCmluIGtlZXBpbmc/IFNoYWtzcGVyZSB3YXMgbm90IHRyeWluZyB0byBjb250cm9sIHtbJiomXX1MaXMgDQptZWxhbmNob2x5LiBXaGVuIGhlIG5lZWRlZCB0byBkbyB0aGF0LCBTaGFrc3BlcmUgY29uLSANCmZyb250ZWQgaGlzIG1le1smKiZdfWxhbmNob2x5IHZlcnkgcGFzc2lvbmF0ZWx5LCBhbmQgbG9va2VkIGl0IA0KZnVsbCBpbiB0aGUgZmFjZS4gSGVyZSBoZSBuZWVkZWR7WyYqJl19IHJlZnJlc2htZW50LCBhIHN1bmxpZ2h0IA0KdGVtcGVyZWQgYnkgZm9yZXN0LWJvdWdocywgYSBicmVlemUgdXBvbiBoaXMgZm9yZXtbJiomXX1oZWFkLCBhIA0Kc3RyZWFtIG11cm11cmluZyBpbiBoaXMgZWFycy4qXiANCg0KT2YgdGhlIGdyb3VwIG9mIGNvbWVkaWVzIHdoaWNoe1smKiZdfSBiZWxvbmcgdG8gdGhpcyBwZXJpb2QsIA0KdGhlIHR3byBsYXRlc3QgaW4gZGF0ZSBhcmUgcHJvYmFibHkgTWVhc3VyZSBmb3IgTWV7WyYqJl19YXN1cmUgDQphbmQgQWxsIF5zIFdlbGwgdGhhdCBFbmRzIFdlbGwsIFdoZW4gdGhlIGZvcm1lciBvZiB0aGVzZSANCnBsYXlzIHdhc3tbJiomXX0gd3JpdHRlbiwgU2hha3NwZXJlIHdhcyBldmlkZW50bHkgYmlkZGluZyBmYXJlLSANCndlbGwgdG8gbWlydGguIEl0cyBzaWduaWZpe1smKiZdfWNhbmNlIGlzIGdyYXZlIGFuZCBlYXJuZXN0IDsgdGhlIA0KaHVtb3JvdXMgc2NlbmVzIHdvdWxkIGJlIGFsdG9nZXRoZXIgcmVwdWx7WyYqJl19c2l2ZSB3ZXJlIGl0IA0Kbm90IHRoYXQgdGhleSBhcmUgbmVlZGVkIHRvIHByZXNlbnQsIHdpdGhvdXQgZGlzZ3Vpc2Ugb3IgDQpleHtbJiomXX10ZW51YXRpb24sIHRoZSB3b3JsZCBvZiBtb3JhbCBsaWNlbnNlIGFuZCBjb3JydXB0aW9uIA0Kb3V0IG9mIGFuZCBhYm92ZSB3aGlje1smKiZdfWggcmlzZSB0aGUgdmlyZ2luYWwgc3RyZW5ndGggYW5kIHNlLSANCnZlcml0eSBhbmQgYmVhdXR5IG9mIElzYWJlbGxhLiBBdCB0aGV7WyYqJl19IGVudHJhbmNlIHRvIHRoZSANCmRhcmsgYW5kIGRhbmdlcm91cyB0cmFnaWMgd29ybGQgaW50byB3aGljaCBTaGFrc3BlcmUgDQp3YXtbJiomXX1zIG5vdyBhYm91dCB0byBwYXNzIHN0YW5kIHRoZSBmaWd1cmVzIG9mIElzYWJlbGxhIGFuZCANCm9mIEhlbGVuYSDigJQgb25lIHRoe1smKiZdfWUgZW1ib2RpbWVudCBvZiBjb25zY2llbmNlLCB0aGUgb3RoZXIgDQp0aGUgZW1ib2RpbWVudCBvZiB3aWxsLiBJc2FiZWxsYSBpcyB7WyYqJl19dGhlIG9ubHkgb25lIG9mIFNoYWstIA0Kc3BlcmVcJ3Mgd29tZW4gd2hvc2UgaGVhcnQgYW5kIGV5ZXMgYXJlIGZpeGVkIHVwb24gYW57WyYqJl19IA0KaW1wZXJzb25hbCBpZGVhbCwgdG8gd2hvbSBzb21ldGhpbmcgYWJzdHJhY3QgaXMgbW9yZSwgaW4gDQp0aGUgYXJkb3IgYW5kIHtbJiomXX1lbmVyZ3kgb2YgaGVyIHlvdXRoLCB0aGFuIGFueSBodW1hbiBwZXItIA0Kc29uYWxpdHkuIE91dCBvZiB0aGlzIFZpZW5uYSwgaW4ge1smKiZdfXdoaWNoIA0KDQpcIiBDb3JydXB0aW9uIGJvaWxzIGFuZCBidWJibGVzIA0KVGlsbCBpdCBvdmVycnVuIHRoZSBzdGV3LFwiIA0KDQoqIHtbJiomXX1IZWJsZXIgd3JpdGVzIG9mIEEmYW1wOyBZb3UgbEFKY2UgSXQgOiBcIiBFcyBpc3QgZWluZSBXYWxkY3VyIGYgaWlyIEhvZmxldXRlLHtbJiomXX0gDQpkaWUgenVtIEdsaWljayBtaXQgaGV1dGlnZW4gQmFkLSBvZGVyIEx1ZnRjdXJlbiBkYXMgZ2VtZWluIGhhdCwgZGFzcyB2aWVse1smKiZdfWUgDQpHZXN1bmRlIGRhYmVpIHNpbmQuIFNvIHZvciBBbGxlbiBPcmxhbmRvIHVuZCBSb3NhbGluZGUsIGZpaXIgd2VsY2hlIGJlaWR7WyYqJl19ZSANCmRpZSBDdXIga2VpbmUgYW5kZXJlIEJlZGV1dHVuZyBoYXQsIGFscyBpaHJlIExpZWJlIGF1ZiBkaWUgbGllYmxpY2hzdGUgV3tbJiomXX1laXNlIA0KenVyIEVyc2NoZWludW5nIHVuZCBSZWlmZSB6dSBicmluZ2VuLCB3YWhyZW5kIGRhcyB2b3JpaWJlcmdlaGVuZCBCZWRle1smKiZdfW5rLSANCmxpY2hlIGlocmVyIExhZ2UgZGVuIEFsbGVzLCBzZWxic3QgZGllIExpZWJlIG5vY2gsIHZlcnNjaG9uZW5kZW4gR290dGV7WyYqJl19ci0gDQpmdW5rZW4gZGVzIEh1bW9ycyBoZXJ2b3Jsb2NrdC4gRGFuZWJlbiBkZXIgQ29udHJhc3QgZGVyIGJsb3NzZW4gbGllYmVuIHtbJiomXX0NCk5hdHVyIGluIGRlbSBTY2hhZiBlcnBhcmNoZW4sIHVuZCBkaWUgaGVpdGVyZSBQYXJvZGllIGRlcyBpZHlsbGlzY2hlbiBIb2Yte1smKiZdfSANCmxlYmVucyBpbiBkZXIgSGVpcmF0aCBkZXMgTmFycmVuIG1pdCBlaW5lbSBMYW5kbWFkY2hlbiwgd2FocmVuZCBkZXIgQmxhLSB7WyYqJl19DQpzaXJ0ZSAoSmFxdWVzKSBhdWNoIGRlciBmcmlzY2hlc3RlbiBOYXR1ciBzZWluZSBlaWdlbmUgRmFyYmUgYW5rcmFua2VsdC5cIiB7WyYqJl19DQrigJQgXCIgQXVmc2F0emUgaWliZXIgU2hha2VzcGVhcmUsXCIgcC4gMTk1LiANCg0KR3Jvd3RoIG9mIFNoYWtzcGVyZXMgTWluZCBhe1smKiZdfW5kIEFydC4gNzMgDQoNCmVtZXJnZXMgdGhpcyBwdXJlIHplYWwsIHRoaXMgcmVjdGl0dWRlIG9mIHdpbGwsIHRoaXMgdmlyZ2luIA17WyYqJl19CnNhbmN0aXR5LiBJc2FiZWxsYVwncyBzYWludGxpbmVzcyBpcyBub3Qgb2YgdGhlIHBhc3NpdmUsIHRpbS0gDQpvcm91cywgb3IgbWV7WyYqJl19cmVseSBtZWRpdGF0aXZlIGtpbmQuIEl0IGlzIGFuIGFjdGl2ZSBwdXJzdWl0IA0Kb2YgaG9saW5lc3MgdGhyb3VnaCBleGVyY2lzZXtbJiomXX0gYW5kIGRpc2NpcGxpbmUuIFNoZSBrbm93cyANCm5vdGhpbmcgb2YgYSBNYW5pY2hzZWFuIGhhdHJlZCBvZiB0aGUgYm9keTsgdGhle1smKiZdfSBsaWZlIA0KcnVucyBzdHJvbmdseSBhbmQgZ2xhZGx5IGluIGhlciB2ZWlucyA7IHNpbXBseSBoZXIgc291bCANCmlzIHNldCB1cG97WyYqJl19biB0aGluZ3MgYmVsb25naW5nIHRvIHRoZSBzb3VsLCBhbmQgdXNlcyB0aGUgYm9keSANCmZvciBpdHMgb3duIHB1cnBvc2VzLiBBbntbJiomXX1kIHRoYXQgdGhlIGxpZmUgb2YgdGhlIHNvdWwgbWF5IA0KYmUgaW52aWdvcmF0ZWQsIHNoZSB3b3VsZCBicmluZyBldmVyeSB1bnJ1e1smKiZdfWx5IHRob3VnaHQgDQppbnRvIGNhcHRpdml0eSwgXCIgaGF2aW5nIGluIGEgcmVhZGluZXNzIHRvIHJldmVuZ2UgYWxsIGRpcy0gDQpve1smKiZdfWJlZGllbmNlLlwiIA0KDQpcIiBoYWIuIEFuZCBoYXZlIHlvdSBudW5zIG5vIGZhcnRoZXIgcHJpdmlsZWdlcyA/IA0KVHJhbi4gQXJlIHtbJiomXX10aGVzZSBub3QgbGFyZ2UgZW5vdWdoID8gDQpJbWguIFllcywgdHJ1bHkuIEkgc3BlYWsgbm90IGFzIGRlc2lyaW5nIG1vcmUgOyANe1smKiZdfQpCdXQgcmF0aGVyIHdpc2hpbmcgYSBtb3JlIHN0cmljdCByZXN0cmFpbnQgDQpVcG9uIHRoZSBzaXN0ZXJob29kLlwnKiANCg0KVGhpe1smKiZdfXMgc2V2ZXJpdHkgb2YgSXNhYmVsbGEgcHJvY2VlZHMgZnJvbSBubyByZWFsIHR1cm5pbmctIA0KYXdheSwgb24gaGVyIHBhcnQsIGZ7WyYqJl19cm9tIHRoZSBqb3lzIGFuZCBob3BlcyBvZiB3b21hbi0gDQpob29kIDsgaGVyIGJyb3RoZXIsIGhlciBzY2hvb2xmZWxsb3cgSnVsaXtbJiomXX1hLCB0aGUgbWVtb3J5IA0Kb2YgaGVyIGZhdGhlciwgYXJlIHByZWNpb3VzIHRvIGhlci4gSGVyIHNldmVyaXR5IGlzIG9ubHkgYSANe1smKiZdfQpwb3J0aW9uIG9mIHRoZSB2aXRhbCBlbmVyZ3kgb2YgaGVyIGhlYXJ0LiBMaXZpbmcgYWN0aXZlbHksIA0Kc2hlIG11c3QgbGl2ZSB7WyYqJl19cHVyZWx5IDsgYW5kIHRvIGhlciB0aGUgY2xvaXN0ZXIgaXMgbG9va2VkIA0KdXBvbiBhcyB0aGUgcGxhY2Ugd2hlcmUgaGVyIGVuZXtbJiomXX1yZ3kgY2FuIHNwZW5kIGl0c2VsZiBpbiANCnN0ZXJuIGVmZm9ydHMgdG93YXJkcyBpZGVhbCBvYmplY3RzLiBCb2RpbHkgc3VmZmVye1smKiZdfWluZyBpcyANCmJvZGlseSBzdWZmZXJpbmcgdG8gSXNhYmVsbGEsIHdob3NlIFwiIGNoZWVrLXJvc2VzIFwiIHByby0gDQpjbGFpbSBoZXtbJiomXX1yIHBoeXNpY2FsIGhlYWx0aCBhbmQgdmlnb3I7IGJ1dCBib2RpbHkgc3VmZmVyLSANCmluZyBpcyBzd2FsbG93ZWQgdXAgaW4gdGhle1smKiZdfSBqb3kgb2YgcXVpY2tlbmVkIHNwaXJpdHVhbCANCmV4aXN0ZW5jZSA6IA0KDQpcIiBXZXJlIEkgdW5kZXIgdGhlIHRlcm1zIG9mIGRle1smKiZdfWF0aCwgDQpUaGUgaW1wcmVzc2lvbiBvZiBrZWVuIHdoaXBzIElcJ2Qgd2VhciBhcyBydWJpZXMsIA0KQW5kIHN0cmlwIG15c2VsZiB0e1smKiZdfW8gZGVhdGgsIGFzIHRvIGEgYmVkIA0KVGhhdCBsb25naW5nIGhhdmUgYmVlbiBzaWNrIGZvciBlcmUgSVwnZCB5aWVsZCANCk15IGJve1smKiZdfWR5IHVwIHRvIHNoYW1lLlwiIA0KDQpBbmQgYXMgc2hlIGhhZCBzdHJlbmd0aCB0byBhY2NlcHQgcGFpbiBhbmQgZGVhdGggZm9yIA0Ke1smKiZdfWhlcnNlbGYgcmF0aGVyIHRoYW4gZGlzaG9ub3IsIHNvIHNoZSBjYW4gcmVzb2x1dGVseSBhY2NlcHQgDQpwYWluIGFuZCBkZWF0aCB7WyYqJl19Zm9yIHRob3NlIHdobyBhcmUgZGVhcmVzdCB0byBoZXIuIFdoZW4gDQoNCjc0IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydHtbJiomXX0uIA0KDQpDbGF1ZGlvIGZhbHRlcnMgYmFjayBkaXNtYXllZCBmcm9tIHRoZSBpbW1lZGlhdGUgcHJvcy0gDQpwZWN0IG9mIHRoZSBne1smKiZdfXJhdmUsIElzYWJlbGxhIHV0dGVycyBoZXIgcGl0ZW91cyBcIiBBbGFzLCBhbGFzICFcIiANCnRvIHBlcmNlaXZlIHRoZSB0ZW5kZXJuZXtbJiomXX1zcyBhbmQgdGltb3JvdXNuZXNzIG9mIGhpcyBzcGlyaXQgOyANCmJ1dCB3aGVuIGhlIGZhaW50bHkgaW52aXRlcyBoZXIgdG8geWlle1smKiZdfWxkIGhlcnNlbGYgdG8gc2hhbWUgDQpmb3IgaGlzIHNha2UsIHNoZSBzZXZlcnMgaGVyc2VsZiB3aXRoIGluZGlnbmF0aW9uLCBub3R7WyYqJl19IGZyb20gDQpoZXIgYnJvdGhlciwgbm90IGZyb20gQ2xhdWRpbywgYnV0IGZyb20gdGhpcyBkaXNncmFjZSBvZiANCm1hbmhvb2QgaXtbJiomXX1uIGhlciBicm90aGVyXCdzIGZvcm0g4oCUIHRoaXMgdHJlYXNvbiBhZ2FpbnN0IA0KZmlkZWxpdHkgb2YgdGhlIGhlYXJ0IDogDQoNCntbJiomXX1cIiAwLCB5b3UgYmVhc3QgISANCg0KMCwgZmFpdGhsZXNzIGNvd2FyZCAhIDAsIGRpc2hvbmVzdCB3cmV0Y2ggISANCg0KV2lsdCB0aHtbJiomXX1vdSBiZSBtYWRlIGEgbWFuIG91dCBvZiBteSB2aWNlID8gDQoNClRha2UgbXkgZGVmaWFuY2UgISANCkRpZTsgcGVyaXNoIVwiIA0KDXtbJiomXX0KSXNhYmVsbGEgZG9lcyBub3QgcmV0dXJuIHRvIHRoZSBzaXN0ZXJob29kIG9mIFNhaW50IA0KQ2xhcmUuIFB1dHRpbmcgYXNpZGUge1smKiZdfWZyb20gaGVyIHRoZSBkcmVzcyBvZiByZWxpZ2lvbiwgYW5kIA0KdGhlIHN0cmljdCBjb252ZW50dWFsIHJ1bGUsIHNoZSBhY2NlcHR7WyYqJl19cyBoZXIgcGxhY2UgYXMgRHVjaC0gDQplc3Mgb2YgVmllbm5hLiBJbiB0aGlzIHRoZXJlIGlzIG5vIGRyb3BwaW5nLWF3YXksIHRocntbJiomXX1vdWdoIA0KbG92ZSBvZiBwbGVhc3VyZSBvciB0aHJvdWdoIHN1cGluZW5lc3MsIGZyb20gaGVyIGlkZWFsIDsgDQppdCBpcyBlbnRpe1smKiZdfXJlbHkgbWVldCBhbmQgcmlnaHQuIFNoZSBoYXMgbGVhcm5lZCB0aGF0IGluIA0KdGhlIHdvcmxkIG1heSBiZSBmb3VuZCBhIGRpc2N7WyYqJl19aXBsaW5lIG1vcmUgc3RyaWN0LCBtb3JlIA0KYXdmdWwsIHRoYW4gdGhlIGRpc2NpcGxpbmUgb2YgdGhlIGNvbnZlbnQgOyBzaGUgaHtbJiomXX1hcyBsZWFybmVkIA0KdGhhdCB0aGUgd29ybGQgaGFzIG5lZWQgb2YgaGVyLiBIZXIgbGlmZSBpcyBzdGlsbCBhIGNvbnNlLSANCmNye1smKiZdfWF0ZWQgbGlmZSA7IHRoZSB2aXRhbCBlbmVyZ3kgb2YgaGVyIGhlYXJ0IGNhbiBleGVydCBhbmQgDQphdWdtZW50IGl0c2VsZiB0aHJ7WyYqJl19b3VnaCBnbGFkIGFuZCBmYWl0aGZ1bCB3aWZlaG9vZCwgYW5kIA0KdGhyb3VnaCBub2JsZSBzdGF0aW9uLCBtb3JlIGZ1bGx5IHRoYXtbJiomXX1uIGluIHNlY2x1c2lvbi4gVG8gDQpwcmVzaWRlIG92ZXIgdGhpcyBwb2xsdXRlZCBhbmQgZmVjdWxlbnQgVmllbm5hIGlzIHRoZSANe1smKiZdfQpvZmZpY2UgYW5kIGNoYXJnZSBvZiBJc2FiZWxsYSwgXCIgYSB0aGluZyBlbnNreVwnZCBhbmQgc2FpbnQtIA0KZWQ6XCIgDQoNClwiIFNwe1smKiZdfWlyaXRzIGFyZSBub3QgZmluZWx5IHRvdWNoZWQgDQpCdXQgdG8gZmluZSBpc3N1ZXMgOyBub3IgTmF0dXJlIG5ldmVyIGxlbmRzIA17WyYqJl19ClRoZSBzbWFsbGVzdCBzY3J1cGxlIG9mIGhlciBleGNlbGxlbmNlLCANCkJ1dCwgbGlrZSBhIHRocmlmdHkgZ29kZGVzcywgc2hlIHtbJiomXX1kZXRlcm1pbmVzIA0KSGVyc2VsZiB0aGUgZ2xvcnkgb2YgYSBjcmVkaXRvciDigJQgDQpCb3RoIHRoYW5rcyBhbmQgdXNlLlwiICogDXtbJiomXX0KDQrigKIgKiBNZWFzdXJlIGZvciBNZWFzdXJlXiBhY3QgaS4sIHNjLiAxLiANCg0KR3Jvd3RoIG9mIFNoYWtzcGVyZV5zIE1pbmQge1smKiZdfWFuZCBBcnQuIDc1IA0KDQpJbiBBbGwgXnMgV2VsbCB0aGF0IEVuZHMgV2VsbCwgYSBzdWJqZWN0IG9mIGV4dHJlbWUgZGlmZmktIA17WyYqJl19CmN1bHR5LCB3aGVuIHJlZ2FyZGVkIG9uIHRoZSBldGhpY2FsIHNpZGUsIHdhcyB0cmVhdGVkIGJ5IA0KU2hha3NwZXJlIHdpdGggYXtbJiomXX0gZnVsbCBjb25zY2lvdXNuZXNzIG9mIGl0cyBkaWZmaWN1bHR5ICogQSANCndvbWFuIHdobyBzZWVrcyBoZXIgaHVzYmFuZCwgYW5ke1smKiZdfSBnYWlucyBoaW0gYWdhaW5zdCBoaXMgDQp3aWxsOyB3aG8gYWZ0ZXJ3YXJkcyBieSBhIGZyYXVkIOKAlCBhIGZyYXVkIGhvd2V2ZXJ7WyYqJl19IHBpb3VzIA0K4oCUZGVmZWF0cyBoaXMgaW50ZW50aW9uIG9mIGVzdHJhbmdpbmcgaGVyLCBhbmQgYmVjb21lcyANCnRoZSBtb3RoZXtbJiomXX1yIG9mIGhpcyBjaGlsZCA7IHN1Y2ggYSBwZXJzb25hZ2UgaXQgd291bGQgc2VlbSANCmEgc3VmZmljaWVudGx5IGRpZmZpY3VsdCB0e1smKiZdfWFzayB0byByZW5kZXIgYXR0cmFjdGl2ZSBvciBhZG1pLSANCnJhYmxlLiBZZXQgSGVsZW5hIGhhcyBiZWVuIG5hbWVkIGJ5IENvbGV7WyYqJl19cmlkZ2UgXCIgdGhlIA0KbG92ZWxpZXN0IG9mIFNoYWtzcGVyZVwncyBjaGFyYWN0ZXJzLlwiIFBvc3NpYmx5IENvbGVyaWRnZSANCnJlY3tbJiomXX1vZ25pemVkIGluIEhlbGVuYSB0aGUgc2luZ2xlIHF1YWxpdHkgd2hpY2gsIGlmIGJyb3VnaHQgDQp0byBiZWFyIHVwb24gaGltc2Vse1smKiZdfWYgYnkgb25lIHRvIHdob20gaGUgeWllbGRlZCBsb3ZlIA0KYW5kIHdvcnNoaXAsIHdvdWxkIGhhdmUgZ2l2ZW4gZGVmaW5pdGVuZXN7WyYqJl19cyBhbmQgZW5lcmd5IA0KDQoqIFllYXJzIHdpZGUgYXBhcnQgaGF2ZSBiZWVuIGFzc2lnbmVkIGZvciB0aGUgZGF0ZSBvZiBBbGwgXCd7WyYqJl19NSBXZWxsIHRoYXQgRW5kcyANCldlbGwuIE1yLiBGbGVheSBiZWxpZXZlcyB0aGF0IGl0IHdhcyB3cml0dGVuIGF0IHR3byBkaWZmZXtbJiomXX1yZW50IHBlcmlvZHMsIGFuZCANCnRoYXQgdGhlIHBsYXkgY29udGFpbnMgZWFybHkgYW5kIGxhdGVyIHdvcmssIHdoaWNoIGhlIGVue1smKiZdfWRlYXZvcnMgdG8gc2VwYXJhdGUuIA0KSGlzIGRhdGUgZm9yIHRoZSBjb21wbGV0ZWQgcGxheSBpcyAxNjAyLiBILiB2b24gRnJpZXN7WyYqJl19ZW4gaXMgYWxzbyBvZiBvcGluaW9uIA0KdGhhdCB0aGlzIGlzIG9uZSBvZiBTaGFrc3BlcmVcJ3MgZWFybGllc3QgcGxheXMsIGFuZCB7WyYqJl19d2FzIGFmdGVyd2FyZHMgcmVoYW5kbGVkLiANClNlZSBTaGFrZXNwZWE3XCdlLUphaHJodWNcXCB2b2wuIGlpLiwgcHAuIDQ4LTU0LiBTe1smKiZdfW8gYWxzbyBHZXJ2aW51cy4gKEguIHZvbiANCkZyaWVzZW4gb2JzZXJ2ZXMgcmVzZW1ibGFuY2VzIG9mIHN0eWxlIHRvIHRoZSBEdWt7WyYqJl19ZVwncyBzcGVlY2hlcyBpbiBNZWFzdXJlIA0KZm9yIE1lYXN1cmUgOyBhbmQgUHJvZmVzc29yIEthcmwgRWx6ZSBwb2ludHMgb3V0IHZ7WyYqJl19YXJpb3VzIHBhcmFsbGVscyB0byBwYXMtIA0Kc2FnZXMgaW4gSGFtbGV0LiBTaGFrZXNwZWFyZS1KYWhyaGlvY2heIHZvbC4gdmlpLntbJiomXX0sIHBwLiAyMzUsIDIzNi4pIERlbGl1cywgd2hvc2UgDQpvcGluaW9uIG9uIHN1Y2ggYSBtYXR0ZXIgbXVzdCBiZSByZWdhcmRlZCBhe1smKiZdfXMgd2VpZ2h0eSwgcHJvbm91bmNlcyB0aGUgc3R5bGUgDQphbmQgdGhlIHZlcnNlIHRocm91Z2hvdXQgdG8gYmUgZGlmZmVyZW50IGl7WyYqJl19biB0aGVpciBjaGFyYWN0ZXJpc3RpYyBwZWN1bGlhcml0aWVzIA0KZnJvbSB0aG9zZSBvZiBTaGFrc3BlcmVcJ3MgZWFybHkgcGxheXN7WyYqJl19LiBQcm9mZXNzb3IgSGVydHpiZXJnIGFzc2lnbnMgdGhlIA0KZGF0ZSAxNjAzIDsgYW5kIGhlIGV4cHJlc3NseSBkZW5pZXMgdGhhdHtbJiomXX0gYW4gZWFybHkgYW5kIGxhdGVyIHN0eWxlIGFyZSBvYnNlcnYtIA0KYWJsZSBpbiB0aGUgcGxheS4gXCIgTWFuIG11c3MgZWluZ2VzdHtbJiomXX1laGVuLCBkYXNzIGRpZSBtZXRyaXNjaGVuIHdpZSBzdGlsaS0gDQpzdGlzY2hlbiBFaWdlbnRoaWltbGljaGtlaXRlbiBzaWNoIGdse1smKiZdfWVpY2htYXNzaWcgYXVmIGRhcyBnYW56ZSBHZWRpY2h0IGVyLSANCnN0cmVja2VuIHVuZCBlcyBkdXJjaGF1cyBhbHMgYXVzIGVpbmV7WyYqJl19bSBHdXNzIGdlYXJiZWl0ZXQgZXJzY2hlaW5lbiBsYXNzIGVuLiANCldlbm4gYWxzbyBkaWVzZSBDaGFyYWN0ZXJ6aWlnZSBlaW5lcntbJiomXX0gc3BhdGVyZW4gUGVyaW9kZSwgYWxzIGVpbmVyIHp3ZWl0ZW4gDQoqIFRleHRlc3JlY2Vuc2lvbiBcJyBlbnRzcHJ1bmdlbiBzZWluIHtbJiomXX1zb2xsdGVuLCBzbyBtaWlzc3RlIG1hbiBhbm5laG1lbiwgZGFzcyANCmRlciBEaWNodGVyIG1pdCBBYnNpY2h0IHZvbiBBbmZhbmcge1smKiZdfWJpcyB6dSBFbmRlIHNlaW5lbiBrbGFyZW4gQXVzZHJ1Y2sgDQphbmdlZHVua2VsdCwgZGVuIGVpbmZhY2hlbiBTYXR6YmF1IHZlcnd7WyYqJl19aWNrZWx0IHVuZCBkaWUgcmVnZWxtYXNzaWdlbiB1bmQgDQpnbGF0dGVuIFZlcnNlIGFub21hbCB1bmQgaG9scHJpZyBnZW1hY2h0IHtbJiomXX1oYWJlLiBEaWVzIGthbm4gTmllbWFuZCBhbi0gDQpuZWhtZW4uXCIgSGVydHpiZXJnIHJlamVjdHMgdGhlIG9waW5pb24gdGhhdCBBbHtbJiomXX1sIFwnwqsgV2VsbCBpcyB0aGUgcGxheSAoaW4gYW4gDQplYXJsaWVyIGZvcm0pIG1lbnRpb25lZCBieSBNZXJlcyBhcyBcJ1wnXCdcJ0xvdmV7WyYqJl19XCdzIExhYm9yIFwnwqsgVFQlaS5cIiBIZXJ0emJlcmcgY29uLSANCnRlbmRzIHRoYXQgTG92ZVwncyBMYWJvciBcJ3MgV29uIHdhcyB0aGUge1smKiZdfVRhbWluZyBvZiB0aGUgU2hyZXRvLCBLcmV5c3NpZyBjb24tIA0KbmVjdHMgQWxsIFwncyBXZWxsICh0aGUgc3ViZHVhbCBvZiBodXNie1smKiZdfWFuZCBieSB3aWZlKSB3aXRoIHRoZSBTaHJldyAodGhlIA0Kc3ViZHVhbCBvZiB3aWZlIGJ5IGh1c2JhbmQpLiANCg0KNzYgU2hha3N7WyYqJl19cGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCnRvIGhpcyBzb21ld2hhdCB2YWd1ZSBhbmQgaW5jb2hlcmVudCBsaWZlLiBGb3tbJiomXX1yIHNha2Ugb2YgDQp0aGlzIG9uZSB0aGluZyBTaGFrc3BlcmUgd2FzIGludGVyZXN0ZWQgaW4gdGhlIHN0b3J5LCBhbmQgDQpzbyBhe1smKiZdfWRtaXJhYmxlIGRpZCBpdCBzZWVtIHRvIGhpbSB0aGF0IGhlIGNvdWxkIG5vdCBjaG9vc2UgDQpidXQgZW5kZWF2b3IgdG8gbWFrZSB7WyYqJl19YmVhdXRpZnVsIGFuZCBub2JsZSB0aGUgZW50aXJlIGNoYXItIA0KYWN0ZXIgYW5kIGFjdGlvbiBvZiBIZWxlbmEuIFRoaXMgb25lIHtbJiomXX10aGluZyBpcyB0aGUgZW4tIA0KZXJneSwgdGhlIGxlYXAtdXAsIHRoZSBkaXJlY3QgYWR2YW5jZSBvZiB0aGUgd2lsbCBvZiBIZWwte1smKiZdfSANCmVuYSwgaGVyIHByb21wdCwgdW5lcnJvbmVvdXMgdGVuZGVuY3kgdG93YXJkcyB0aGUgcmlnaHQgDQphbmQgZWZmaWNpZW50IGR7WyYqJl19ZWVkLiBTaGUgZG9lcyBub3QgZGlzcGxheSBoZXJzZWxmIHRocm91Z2ggDQpoZXIgd29yZHMgOyBzaGUgZG9lcyBub3QsIGV4Y2VwdHtbJiomXX0gb24gcmFyZXN0IG9jY2FzaW9ucywgYWxsb3cgDQpoZXIgZmVlbGluZ3MgdG8gZXhwYW5kIGFuZCBkZXBsb3kgdGhlbXNlbHZlcyA7e1smKiZdfSBoZXIgZW50aXJlIA0KZm9yY2Ugb2YgY2hhcmFjdGVyIGlzIGNvbmNlbnRyYXRlZCBpbiB3XmhhdCBzaGUgZG9lcy4gQW5kIA0KdGh7WyYqJl19ZXJlZm9yZSB3ZSBzZWUgaGVyIHF1aXRlIGFzIG11Y2ggaW5kaXJlY3RseSwgdGhyb3VnaCANCnRoZSBlZmZlY3Qgd2hpY2ggc2hlIHtbJiomXX1oYXMgcHJvZHVjZWQgdXBvbiBvdGhlciBwZXJzb25zIG9mIA0KdGhlIGRyYW1hLCBhcyB0aHJvdWdoIHNlbGYgLWNvbmZlc3Npb24ge1smKiZdfW9yIGltbWVkaWF0ZSBwcmVzLSANCmVudGF0aW9uIG9mIGhlciBjaGFyYWN0ZXIuIA0KDQpBIG1vdHRvIGZvciB0aGUgcGxheSBtYXl7WyYqJl19IGJlIGZvdW5kIGluIHRoZSB3b3JkcyB1dC0gDQp0ZXJlZCB3aXRoIHBpb3VzIGFzdG9uaXNobWVudCBieSB0aGUgY2xvd24sIHdoZXtbJiomXX1uIGhpcyANCm1pc3RyZXNzIGJpZHMgaGltIHRvIGJlZ29uZSwgXCdcJyBUaGF0IG1hbiBzaG91bGQgYmUgYXQgDQp3b21hblwncyBjb21te1smKiZdfWFuZCwgYW5kIHlldCBubyBodXJ0IGRvbmUuXCIgSGVsZW5hIGlzIA0KdGhlIHByb3ZpZGVuY2Ugb2YgdGhlIHBsYXkgOyBhbmQgdGhle1smKiZdfXJlIGlzIFwiIG5vIGh1cnQgZG9uZSxcJ1wnIA0KYnV0IHJhdGhlciBoZWFsaW5nIOKAlCBoZWFsaW5nIG9mIHRoZSBib2R5IG9mIHRoZSB7WyYqJl19RnJlbmNoIA0Ka2luZywgaGVhbGluZyBvZiB0aGUgc3Bpcml0IG9mIHRoZSBtYW4gc2hlIGxvdmVzLipeIEZvciANCkJlcnRyYW0sIHtbJiomXX13aGVuIHRoZSBzdG9yeSBiZWdpbnMsIHRob3VnaCBlbmRvd2VkIHdpdGggDQpiZWF1dHkgYW5kIGJyYXZlcnkgYW5kIHRoZSBhZHZhe1smKiZdfW50YWdlcyAoYW5kIGRpc2FkdmFuLSANCnRhZ2VzKSBvZiByYW5rLCBpcyBpbiBjaGFyYWN0ZXIsIGluIGhlYXJ0LCBpbiB3aWxsLCB7WyYqJl19YSBjcnVkZSwgDQp1bmdyYWNpb3VzIGJveS4gSGVsZW5hIGxvdmVzIGhpbSwgYW5kIHNldHMgaGltLCBpbiBoZXIgDQpsb3ZlLCBhYntbJiomXX1vdmUgaGVyc2VsZiwgdGhlIHBvb3IgcGh5c2ljaWFuXCdzIGRhdWdodGVyLCBvdXQgb2YgDQpoZXIgc3BoZXJlIDogXiANCg0KXCIgXCdUe1smKiZdfXdlcmUgYWxsIG9uZSANClRoYXQgSSBzaG91bGQgbG92ZSBhIGJyaWdodCwgcGFydGljdWxhciBzdGFyIA0KQW5kIHRoaW5rIHRvIHd7WyYqJl19ZWQgaXQsIGhlIGlzIHNvIGFib3ZlIG1lLlwiIA0KDQpTaGUgbG92ZXMgaGltIHRodXMsIGJ1dCAoaWYgbG92ZSBjYW4gYmUgY29uY2V7WyYqJl19aXZlZCBhcyANCg0KKiBcIiBOaWNodCBudXIgYW0gS29uaWdlLCBzb25kZXJuIGF1Y2ggYW4gQmVydHJhbSB2b1VicmluZ3Qgc2llIGV7WyYqJl19aW5lIA0KZ2xpaWNrbGljaGUgSGVpbHVuZy5cIiDigJQgUHJvZmVzc29yIEthcmwgRWx6ZSwgU2hha2VzcGVhcmUtIEphaHJodWNoXiB7WyYqJl19dm9sLiB2aWkuLCANCnAuIDIyMi4gDQoNCkdyb3d0aCBvZiBTaGFrc3BlcmVcJ3MgTWluZCBhbmQgQXJ0LiA3NyANCg0KZGlzdGluY3R7WyYqJl19IGZyb20gbGlraW5nKSBzaGUgZG9lcyBub3Qgd2hvbGx5IGxpa2UgaGlyYS4gU2hlIA0KYWRtaXRzIHRvIGhlcnNlbGYgdGhhdCBpbntbJiomXX0gd29yc2hpcCBvZiBCZXJ0cmFtIHRoZXJlIGlzIGEgDQpjZXJ0YWluIGZhdHVvdXNuZXNzIOKAlCANCg0KXCIgTm93IGhlXCdzIGdvbmV7WyYqJl19LCBhbmQgbXkgaWRvbGF0cm91cyBmYW5jeSANCk11c3Qgc2FuY3RpZnkgaGlzIHJlbGlxdWVzLlwiIA0KDQpTaGUgc2VlcyBmcm9tIHR7WyYqJl19aGUgZmlyc3QgdGhhdCB0aGUgZnJpZW5kIG9mIGhpcyBjaG9pY2UsIHRoZSANCkZyZW5jaCBjYXB0YWluLCBpcyBcIiBhIG5vdG9yaW97WyYqJl19dXMgbGlhcixcIiBcIiBzb2xlbHkgYSBjb3dhcmQsXCIgDQpcIiBhIGdyZWF0IHdheSBmb29sIDtcIiBzaGUgdHJlbWJsZXMgZm9yIHdoYXQge1smKiZdfUJlcnRyYW0gbWF5IA0KbGVhcm4gYXQgdGhlIGNvdXJ0LiANCg0KXCIgR29kIHNlbmQgaGltIHdlbGwgISANClRoZSBjb3VydFwncyBhIHtbJiomXX1sZWFybmluZyBwbGFjZSA7IGFuZCBoZSBpcyBvbmUg4oCUIA0KUGFyb2wgV2hhdCBvbmUgaVwnIGZhaXRoPyANCkVlbCBUaGF0IEkgd3tbJiomXX1pc2ggd2VsbC5cIiANCg0KWWV0IHNoZSBzZWVzIGluIEJlcnRyYW0gYSBwb3RlbnRpYWwgbm9ibGVuZXNzIHdhaXRpbmcgdG8gDQpiZXtbJiomXX0gZXZva2VkLiBBbmQgaGVyIHdpbGwgbGVhcHMgZm9yd2FyZCB0byBoZWxwIGhpbS4gDQpOb3cgc2hlIGxvdmVzIGhpbSDigJQgbG92e1smKiZdfWVzIGhpbSB3aXRoIGRldm90aW9uIHdoaWNoIA0KY29tZXMgZnJvbSBhIGNvbnNjaW91c25lc3MgdGhhdCBzaGUgY2FuIGNvbmZlciB7WyYqJl19bXVjaCA7IA0KYW5kIHNoZSB3aWxsIGZvcm0gaGltIHNvIHRoYXQgb25lIGRheSBzaGUgc2hhbGwgbGlrZSBoaW0gDQphbHNvLiANCntbJiomXX0NClwnXCdIZWwgXCdUaXNwaXR5LiANCg0KUGFyb2wgV2hhdFwncyBwaXR5ID8gDQoNCkhlbCBUaGF0IHdpc2hpbmcgd2VsbCBoYWQgbm90IHtbJiomXX1hIGJvZHkgaW5cJ3QsIA0KV2hpY2ggbWlnaHQgYmUgZmVsdCA7IHRoYXQgd2UsIHRoZSBwb29yZXIgYm9ybiwgDQpXaG9zZSBiYXNlcntbJiomXX0gc3RhcnMgZG8gc2h1dCB1cyB1cCBpbiB3aXNoZXMsIA0KTWlnaHQgd2l0aCBlZmZlY3RzIG9mIHRoZW0gZm9sbG93IG91ciBmcmlle1smKiZdfW5kcywgDQpBbmQgc2hvdyB3aGF0IHdlIGFsb25lIG11c3QgdGhpbmsuXCIgDQoNCkJ1dCB0aGUgXCIgd2lzaGluZyB3ZWxsIFwiIG9mIHN7WyYqJl19dWNoIGEgd29tYW4gYXMgSGVsZW5hIGhhcyANCmluZGVlZCBhIHNlbnNpYmxlIGFuZCBhcHByZWhlbnNpYmxlIGJvZHkgaW4gaXQuIHtbJiomXX1XaXRoIGEgDQpzYWNyZWQgYm9sZG5lc3Mgc2hlIGFzc3VtZXMgYSBjb21tYW5kIG92ZXIgQmVydHJhbVwncyANCmZhdGUgYW5kIGhlcntbJiomXX0gb3duLiBTaGUgY2Fubm90IGJlbGlldmUgaW4gdGhlIHBpZXR5IG9mIA0KcmVzaWduYXRpb24gb3IgcGFzc2l2ZW5lc3MsIGluIHRoe1smKiZdfWUgcmVsaWdpb3VzIGR1dHkgb2YgbGV0dGluZyANCnRoaW5ncyBkcmlmdCA7IHJhdGhlciwgc2hlIGZpbmRzIGluIHRoZSBsb3ZlIHd7WyYqJl19aGljaCBwcm9tcHRzIA0KaGVyIGEgdHJ1ZSBtYW5kYXRlIGZyb20gYWJvdmUsIGFuZCBhIHZlcml0YWJsZSBwcm92aWRlbi0gDQp0aXtbJiomXX1hbCBwb3dlciA6IA0KDQpcIiBPdXIgcmVtZWRpZXMgb2Z0IGluIG91cnNlbHZlcyBkbyBsaWUgDQpXaGljaCB3ZSBhc2NyaWJlIHRvIHtbJiomXX1oZWF2ZW4gOiB0aGUgZmF0ZWQgc2t5IA0KDQo3OCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpHaXZlcyB1cyBme1smKiZdfXJlZSBzY29wZSwgb25seSBkb3RoIGJhY2t3YXJkIHB1bGwgDQpPdXIgc2xvdyBkZXNpZ25zIHdoZW4gd2Ugb3Vyc2VsdmVzIGFyZSB7WyYqJl19ZHVsbC4gDQpXaGF0IHBvd2VyIGlzIGl0IHRoYXQgbW91bnRzIG15IGxvdmUgc28gaGlnaCA/XCIgDQoNCkhlbGVuYSBnb2VzIGZvcnR7WyYqJl19aCwgZW5jb3VyYWdlZCBieSBoZXIgbWlzdHJlc3MsIHRoZSANCm1vdGhlciBvZiB0aGUgbWFuIHNoZSBzZWVrcyB0byB3aW4gOyBnb3tbJiomXX1lcyBmb3J0aCB0byBnYWluIA0KaGVyIGh1c2JhbmQsIHRvIGFsbGF5IGhlciBvd24gbmVlZCBvZiBzZXJ2aWNlIHRvIGhpbSwgdG8ge1smKiZdfQ0KaW1wb3NlIGhlcnNlbGYgb24gQmVydHJhbSBhcyB0aGUgYmxlc3NpbmcgdGhhdCBoZSByZXF1aXJlcy4gDQpBbGwgdGhpcyBIZWx7WyYqJl19ZW5hIGRvZXMgb3Blbmx5LCB3aXRoIHBlcmZlY3QgY291cmFnZS4gU2hlIA0KZG9lcyBub3QgY29uY2VhbCBoZXIgbG92ZSBmcm9tIHtbJiomXX10aGUgQ291bnRlc3M7IHNoZSBkb2VzIA0Kbm90IGZvciBhIG1vbWVudCBkcmVhbSBvZiBzdGVhbGluZyBhZnRlciBCZXJ0cmFtIGlue1smKiZdfSANCm1hblwncyBhdHRpcmUuIEl0IGlzIHRoZSBtb3N0IGltcHVsc2l2ZWx5IG9yIHRoZSBtb3N0IGRlbGktIA0KY2F0ZWx5IGFuZCBle1smKiZdfXhxdWlzaXRlbHkgZmVtaW5pbmUgb2YgU2hha3NwZXJlXCdzIHdvbWVuIA0Kd2hvbSBoZSBkZWxpZ2h0cyB0byBkaXNndWlzZSBpbiB0e1smKiZdfWhlIFwiZ2FybmlzaCBvZiBhIGJveVwiIA0K4oCUIEp1bGlhLCB3aXRoIGhlciBoYWlyIGtuaXQgdXAgXCIgaW4gdHdlbnR5IG9kZC1jb257WyYqJl19Y2VpdGVkIA0KdHJ1ZS1sb3ZlIGtub3RzO1wiIFJvc2FsaW5kLCB0aGUgZ2FsbGFudCBjdXJ0bGUtYXhlIHVwb24gDQpoZXIgdGhpZ2h7WyYqJl19IDsgVmlvbGEsIHRoZSBzd2VldC12b2ljZWQsIGluIHZ0XmhvbSBcIiBhbGwgaXMgc2VtLSANCmJsYXRpdmUgYSB3b21hblwncyBwYXJ0e1smKiZdfSA7XCIgSmVzc2ljYSwgZm9yIHdeaG9zZSB0cmFuc2Zvcm1hLSANCnRpb24gQ3VwaWQgaGltc2VsZiB3b3VsZCBibHVzaCA7IFBvcnRpe1smKiZdfWEsIHRoZSB3aXNlIHlvdW5nIA0KanVkZ2UsIHNvIHBvaWduYW50bHkgZmVtaW5pbmUgaW4gaGVyIGdpZnRzIG9mIGludGVsbGVjdCB7WyYqJl19DQphbmQgaGVhcnQgOyBJbW9nZW4sIHdobyBzdGVwcyBpbnRvIHRoZSBjYXZlcm5cJ3MgbW91dGggDQp3aXRoIHRoZSBhZHZhbmNlZCB7WyYqJl19c3dvcmQgaW4gYSBzbGVuZGVyIGFuZCB0cmVtYmxpbmcgDQpoYW5kLiBJbiBIZWxlbmEgdGhlcmUgaXMgc28gbXVjaCBzb2xpZGl0eXtbJiomXX0gYW5kIHN0cmVuZ3RoIA0Kb2YgY2hhcmFjdGVyIHRoYXQgd2UgZmVlbCBzaGUgd291bGQgYmUgZW5mZWVibGVkIGJ5IGFueSANCm1he1smKiZdfWxlIGRpc2d1aXNlIHdoaWNoIG1pZ2h0IGNvbXBsaWNhdGUgdGhlIGltcHJlc3Npb24gDQpwcm9kdWNlZCBieSBoZXIgcGxhaW4gd297WyYqJl19bWFuaG9vZC4gVGhlcmUgY291bGQgYmUgbm8gDQoNCihjaGFybSBpbiBwcmVzZW50aW5nIGFzIGEgcHJldGVuZGVyIHRvIG1hbGUgY3tbJiomXX1vdXJhZ2Ugb25lIA0Kd2hvIHdhcyBhY3R1YWxseSBjb3VyYWdlb3VzIGFzIGEgbWFuLiANCg0KQnV0IHRocm91Z2hvdXQsIHdoaWxle1smKiZdfSBIZWxlXm5hIGlzIGFidW5kYW50bHkgY291cmEtIA0KZ2VvdXMsIFNoYWtzcGVyZSBpbnRlbmRzIHRoYXQgc2hlIHNoYWxsIGF0IG57WyYqJl19byBtb21lbnQgDQphcHBlYXIgdW53b21hbmx5LiBJbiBvZmZlcmluZyBoZXJzZWxmIHRvIEJlcnRyYW0sIHNoZSANCmZpcnN0IGRpc3tbJiomXX1jbG9zZXMgaGVyIHJlYWwgZmVlbGluZyBieSB3b3JkcyBhZGRyZXNzZWQgdG8gb25lIA0Kb2YgdGhlIHlvdW5nIGxvcmRzLCBmcm9te1smKiZdfSBhbW9uZyB3aG9tIGl0IGlzIGdyYW50ZWQgaGVyIA0KdG8gY2hvb3NlIGEgaHVzYmFuZCA6IA0KDQoqXCcgQmUgbm90IGFmcmFpZCB0e1smKiZdfWhhdCBJIHlvdXIgaGFuZCBzaG91bGQgdGFrZSA7IA0KSVwnbGwgbmV2ZXIgZG8geW91IHdyb25nIGZvciB5b3VyIG9edm4gc2FrZS5cIntbJiomXX0gDQoNCkdyb3d0aCBvZiBTaGFrc3BlcmVzIE1pbmQgYW5kIEFydC4gNzkgDQoNCk9ubHkgd2l0aCBCZXJ0cmFtIHNoZSB3b3VsZCB2e1smKiZdfWVudHVyZSBvbiB0aGUgYm9sZCBleC0gDQpwZXJpbWVudCBvZiB3cm9uZ2luZyBoaW0gZm9yIGhpcyBvd24gc2FrZS4gVGhlIGV4cGV7WyYqJl19cmktIA0KbWVudCwgaW5kZWVkLCBkb2VzIG5vdCBhdCBmaXJzdCBzZWVtIHRvIHN1Y2NlZWQuIEhlbGVuYSANCmlzIHdlZGRlZCB0b3tbJiomXX0gQmVydHJhbSA7IHNoZSBoYXMgbGFpZCBoZXIgd2lsbCB3aXRob3V0IHJlLSANCnNlcnZlIGluIGhlciBodXNiYW5kXCdzIGhhbmRzIHtbJiomXX07IHNoZSBoYWQgZGVzaXJlZCB0byBzdXItIA0KcmVuZGVyIGFsbCB0byBoaW0sIGZvciBoaXMgZ29vZCwgYW5kIHNoZSBoYXMgc3Vye1smKiZdfXJlbmRlcmVkIA0KYWxsLiBCdXQgQmVydHJhbSBkb2VzIG5vdCBmaW5kIHRoaXMgcHJvdmlkZW50aWFsIHN1cGVyLSANCmludGVuZGV7WyYqJl19bmNlIG9mIGhpcyBhZmZhaXJzIG9mIHRoZSBoZWFydCBhbHRvZ2V0aGVyIHRvIGhpcyANCnRhc3RlOyBhbmQgaW4gY29tcGFueSB3aXtbJiomXX10aCBQYXJvbGxlcyBoZSBmaWxlcyBmcm9tIGhpcyANCndpZmVcJ3MgcHJlc2VuY2UgdG8gdGhlIEl0YWxpYW4gd2FyLiBVcG9uIHJlYXtbJiomXX1kaW5nIHRoZSANCmNvbmNpc2UgYW5kIGNydWVsIGxldHRlciBpbiB3aGljaCBCZXJ0cmFtIGhhcyBkZWNsYXJlZCANCnRoZSBmaW5he1smKiZdfWxpdHkgb2YgaGlzIHNlcGFyYXRpb24gZnJvbSBoZXIsIEhlbGVuYSBkb2VzIG5vdCANCmZhaW50LCBub3IgZG9lcyBzaGUgYnJlYWt7WyYqJl19IGZvcnRoIGludG8gYml0dGVyIGxhbWVudGF0aW9uLiANClwiIFRoaXMgaXMgYSBkcmVhZGZ1bCBzZW50ZW5jZSxcIiBcIiBcJ1RpcyBiaXR7WyYqJl19dGVyLlwiIFRodXMsIHBydW4tIA0KaW5nIGhlciB3b3JkcywgSGVsZW5hIGNvbnRyb2xzIFwiIHRoZSB0aG91Z2h0cyB3aGljaCBzd2Vse1smKiZdfWwgDQphbmQgdGhyb25nXCIgb3ZlciBoZXIsIHVudGlsIHRoZXkgY29uZGVuc2UgdGhlbXNlbHZlcyBpbnRvIA0Kb25lIHN0cm9uZyBwe1smKiZdfXVycG9zZS4gU2hlIHdpbGwgbGVhdmUgaGVyIG1vdGhlciwgbGVhdmUgDQpoZXIgaG9tZTsgYW5kIHdoZW4gc2hlIGlzIGdvbmUgYW57WyYqJl19ZCBmb3Jnb3R0ZW4sIEJlcnRyYW0gDQp3aWxsIHJldHVybiBmcm9tIGhhcmRzaGlwIGFuZCBkYW5nZXIuIEJ1dCBzaGUgd291bGQgDXtbJiomXX0KZmFpbiBzZWUgaGltIDsgYW5kIGlmIGFueXRoaW5nIGNhbiBzdGlsbCBiZSBkb25lLCBzaGUgd2lsbCANCmRvIHRoYXQgdGhpbmcue1smKiZdfSANCg0KVGhlIG1vZGUgYnkgd2hpY2ggSGVsZW5hIHN1Y2NlZWRzIGluIGFjY29tcGxpc2hpbmcgDQp0aGUgY29uZGl0aW9ucyB1cG97WyYqJl19biB3aGljaCBCZXJ0cmFtIGhhcyBwcm9taXNlZCB0byBhYy0gDQprbm93bGVkZ2UgaGVyIGFzIGhpcyB3aWZlIHNlZW1zIGluZGVlZHtbJiomXX0gaGFyZGx5IHRvIHBvcy0gDQpzZXNzIGFueSBtb3JhbCBmb3JjZSwgYW55IHZhbGlkaXR5IGZvciB0aGUgaGVhcnQgb3IgdGhlIGNve1smKiZdfW4tIA0Kc2NpZW5jZS4gSXQgY2FuIG9ubHkgYmUgc2FpZCwgaW4gZXhwbGFuYXRpb24sIHRoYXQgdG8gSGVsLSANCmVuYSBhbiBpbmZ7WyYqJl19aW5pdGUgdmlydHVlIGFuZCBzaWduaWZpY2FuY2UgcmVzaWRlcyBpbiBhIGRlZWQuIA0KT3V0IG9mIGEgd29yZCBvciBvdXQgb2YgYXtbJiomXX0gZmVlbGluZyBzaGUgZG9lcyBub3QgaG9wZSBmb3IgDQptZWFzdXJlbGVzcyBnb29kIHRvIGNvbWUgOyBidXQgb3V0IG9mIGEgZGVle1smKiZdfWQsIHdoYXQgbWF5IA0Kbm90IGNvbWUgPyBUaGF0IEJlcnRyYW0gc2hvdWxkIGFjdHVhbGx5IGhhdmUgcmVjZWl2ZWQgDQpoZXIgYXN7WyYqJl19IGhpcyB3aWZlLCBhY3R1YWxseSwgdGhvdWdoIHVud2l0dGluZ2x5IDsgdGhhdCBoZSANCnNob3VsZCBpbmRlZWQgYmUgZmF0aGVyIHtbJiomXX1vZiB0aGUgY2hpbGQgc2hlIGJlYXJzIGhpbSDigJQgdGhlc2UgDQphcmUgZmFjdHMsIGFjY29tcGxpc2hlZCB0aGluZ3MsIHdoaWNoe1smKiZdfSBtdXN0IHdvcmsgb3V0IHNvbWUgDQpyZWFsIGFkdmFudGFnZS4gQW5kIG5vdyBCZXJ0cmFtIGhhcyBsZWFybmVkIGhpcyBuZWVkIA17WyYqJl19Cm9mIHNlbGYgLWRpc3RydXN0LCBwZXJoYXBzIGhhcyBsZWFybmVkIHRydWUgbW9kZXN0eS4gSGlzIA0KDQo4byBTaGFrc3BlcmUg4ntbJiomXX2AlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KZnJpZW5kICh3aG8gd2FzIGFsbCB2YWluIHdvcmRzIGFwYXJ0IGZyb20gZGVlZHMpIGhhe1smKiZdfXMgDQpiZWVuIHVubWFza2VkIGFuZCBwaXRpbGVzc2x5IGV4cG9zZWQuIE1heSBub3QgQmVyLSANCnRyYW0gbm93IGJlIGNhcGFibGV7WyYqJl19IG9mIGVzdGltYXRpbmcgdGhlIHdvcnRoIG9mIHRoaW5ncyANCmFuZCBvZiBwZXJzb25zIG1vcmUganVzdGx5ID8gSGVsZW5hLCBpbntbJiomXX0gdGFraW5nIHRoZSBwbGFjZSANCm9mIERpYW5hLCBpbiBiZWd1aWxpbmcgaGVyIGh1c2JhbmQgaW50byBhdCBsZWFzdCBtYXRlcmlhe1smKiZdfWwgDQp2aXJ0dWUsIGlzIHN0aWxsIFwiIGRvaW5nIGhpbSB3cm9uZywgZm9yIGhpcyBvd24gc2FrZS5cIiBUaGUgDQptYW4gaXMgXCJhdCB7WyYqJl19d29tYW5cJ3MgY29tbWFuZCxcIiBhbmQgdGhlcmUgaXMgXCJubyBodXJ0IA0KZG9uZS5cIiANCg0KRXZlbiBhdCB0aGUgbGFzdCwgQmVydHJ7WyYqJl19YW1cJ3MgYXR0YWlubWVudCBpcyBidXQgc21hbGw7IGhlIA0KaXMgc3RpbGwgbm8gbW9yZSB0aGFuIGEgcG90ZW50aWFsIHBpZWNlIG97WyYqJl19ZiB3b3J0aHkgbWFuLSANCmhvb2QuIFdlIGNhbm5vdCBzdXBwb3NlIHRoYXQgU2hha3NwZXJlIGhhcyByZXByZXNlbnQtIA0KZWQgaHtbJiomXX1pbSB0aHVzIHdpdGhvdXQgYSBwdXJwb3NlLiBEb2VzIG5vdCB0aGUgcG9ldCB3aXNoIA0KdXMgdG8gZmVlbCB0aGF0IGFsdGhvdWdoe1smKiZdfSBtdWNoIHJlbWFpbnMgdG8gYmUgd3JvdWdodCBpbiANCkJlcnRyYW0sIGhpcyB3ZWxmYXJlIGlzIG5vdyBhc3N1cmVkPyBUaGUgY297WyYqJl19dXJhZ2VvdXMgDQp0aXRsZSBvZiB0aGUgcGxheS4gQWxsIF5zIFdlbGwgdGhhdCBFbmRzIFdlbGwsIGlzIGxpa2UgYW4gdXQtIA0KdHtbJiomXX1lcmFuY2Ugb2YgdGhlIGhlYXJ0IG9mIEhlbGVuYSwgd2hvIGhhcyBzdHJlbmd0aCBhbmQgZW4tIA0KZHVyYW5jZSB0byBhdHRhaW4ge1smKiZdfXRoZSBlbmQsIGFuZCB3aG8gd2lsbCBtZWFzdXJlIHRoaW5ncywgDQpub3QgYnkgdGhlIHBhaW5zIGFuZCB0cmlhbHMgb2YgdGhlIHd7WyYqJl19YXksIG5vdCBieSB0aGUgZHUtIA0KYmlvdXMgYW5kIGRpZmZpY3VsdCBtZWFucywgYnV0IGJ5IHRoYXQgZW5kLCBieSB0aGUgYWNjb3tbJiomXX1tLSANCnBsaXNoZWQgaXNzdWUuIFdlIG5lZWQgbm90LCB0aGVyZWZvcmUsIGNvbmNlcm4gb3Vyc2VsdmVzIA0KYW55IGxvbmdlciBhe1smKiZdfWJvdXQgQmVydHJhbSA7IGhlIGlzIHNhZmUgaW4gdGhlIGhhbmRzIG9mIA0KSGVsZW5hIDsgc2hlIHdpbGwgZmFzaGlvbiBoaW0gYXN7WyYqJl19IGhlIHNob3VsZCBiZSBmYXNoaW9uZWQuIA0KQmVydHJhbSBpcyBhdCBsZW5ndGggZGVsaXZlcmVkIGZyb20gdGhlIHNuYXJlcyBhbntbJiomXX1kIGRlLSANCmx1c2lvbnMgd2hpY2ggYmVzZXQgaGlzIHllYXJzIG9mIGhhdWdodHkgaWdub3JhbmNlIGFuZCANCmR1bG5lc3Mgb2Yge1smKiZdfXRoZSBoZWFydCA7IGhlIGlzIGRvdWJseSB3b24gYnkgSGVsZW5hIDsgdGhlcmUtIA0KZm9yZSBoZSBjYW5ub3Qgd2FuZGVyIGZhcix7WyYqJl19IHRoZXJlZm9yZSBoZSBjYW5ub3QgZmluYWxseSBiZSANCmxvc3QuXiBcXCANCg0KVGhlIGNoYW5nZXMgb2YgdHlwZSB3aGljaCB0b297WyYqJl19ayBwbGFjZSBpbiB0aGUgcHJvbWktIA0KbmVudCBmZW1hbGUgY2hhcmFjdGVycyBvZiBTaGFrc3BlcmVcJ3MgcGxheXMgYXMgdGhlIHB7WyYqJl19b2V0IA0KDQoqIE9uIHRoaXMgcGxheSBjb25zdWx0IFByb2Zlc3NvciBLYXJsIEVsemVcJ3MgYXJ0aWNsZSBpbiBTaGFKY2VzcGVhcmV7WyYqJl19LUphaHItIA0KYnVjaGogdm9sLiB2aWkuLCBhbmQgcHJlZmFjZSBieSBIZXJ0emJlcmcgaW4gdGhlIEdlcm1hbiBTaGFrZXNwZWFyZXtbJiomXX0gU29jaWV0eVwncyANCmVkaXRpb24gb2YgU2NobGVnZWwgYW5kIFRpZWNrXCdzIHRyYW5zbGF0aW9uIG9mIFNoYWtzcGVyZSwgdm9sLiB7WyYqJl19eGkuIEhlcnR6YmVyZyANCm1haW50YWlucyB0aGF0IGxvdmUgb2YgTGFmZXVcJ3MgZGF1Z2h0ZXIgaXMgYSBtb3RpdmUgb2YgQmVydHJ7WyYqJl19YW1cJ3MgcmVqZWN0aW9uIA0Kb2YgSGVsZW5hLiBCdXQgc2VlIEVsemVcJ3MgcmVwbHkgaW4gdGhlIGFib3ZlLW1lbnRpb25lZCBhcnRpe1smKiZdfWNsZSwgcC4gMjI2LiANCg0KSSANCg0KR3Jvd3RoIG9mIFNoYWtzcGVyZXMgTWluZCBhbmQgQXJ0LiA4IDEgDQoNCnBhc3NlZCBmcm97WyYqJl19bSB5b3V0aCB0byBtYW5ob29kLCBhbmQgZnJvbSBlYXJseSBtYW5ob29kIA0KdG8gcmlwZXIgbWF0dXJpdHksIHdvdWxkIGZvcm0gYXtbJiomXX1uIGludGVyZXN0aW5nIHN1YmplY3QgZm9yIA0KZGV0YWlsZWQgc3R1ZHkuIFRoZSBlbW90aW9uYWwgd29tZW4gb2YgdGhlIGVhcmx5e1smKiZdfSBwbGF5cywgDQppZiBub3QgdHVyYnVsZW50IGFuZCBhZ2dyZXNzaXZlLCBhcmUgc3RpbGwgZGVmaWNpZW50IGluIGRlbC0gDQppY2F7WyYqJl19Y3kgb2YgaGVhcnQsIGluIHJlZmluZW1lbnQgb2YgaW5zdGluY3QsIGltcHVsc2UsIGFuZCANCmhhYml0LiBUaGUgaW50ZWxsZWN0dXtbJiomXX1hbCB3b21lbiwgd2hvIHN0YW5kIGJ5IHRoZSBzaWRlIA0Kb2YgdGhlc2UsIGFyZSBicmlnaHQgYW5kIGNsZXZlciwgYnV0IG92ZXIte1smKiZdfWNvbmZpZGVudCwgZm9yLSANCndhcmQsIG9yIGRlZmlhbnQuIEluIHRoZSBlYXJseSBoaXN0b3JpY2FsIHBsYXlzIGFwcGVhciANCnR7WyYqJl19ZXJyaWJsZSBmZW1hbGUgZm9ybXMg4oCUIHdvbWVuIHdob3NlIGFtYml0aW9ucyBoYXZlIA0KYmVlbiBmb2lsZWQsIHdob3NlIGhlYXtbJiomXX1ydHMgaGF2ZSBiZWVuIHRvcm4gYW5kIGNydXNoZWQsIA0Kd2hvIGFyZSBmaWxsZWQgd2l0aCBmaWVyY2Ugc29ycm93LCBwYXNzaW9ue1smKiZdfWF0ZSBpbmRpZ25hdGlvbiwgDQphIHRoaXJzdCBmb3IgcmV2ZW5nZS4gU3VjaCBhcmUgdGhlIER1Y2hlc3Mgb2YgR2xvc3RlciwgDQp7WyYqJl19TWFyZ2FyZXQgb2YgQW5qb3UsIFF1ZWVuIEVsaW5vciwgQ29uc3RhbmNlLiBBcyBjb20tIA0KZWR5IHN1Y2NlZWRzIGNvbWVkeSwgdHtbJiomXX1oZSBmZW1hbGUgY2hhcmFjdGVycyBiZWNvbWUgbW9yZSANCmNvbXBsZXgsIG1vcmUgc3VidGxlLCBtb3JlIGV4cXVpc2l0ZS4gRW9ze1smKiZdfWFsaW5lXCdzIGZsb3V0LSANCmluZyBvZiBCZXJvd25lIGJlY29tZXMgUm9zYWxpbmRcJ3MgYXJjaCBtb2NrZXJ5IG9mIA0KT3JsYW5kb3tbJiomXX0sIG9yIHRoZSBzcG9ydGl2ZSBjb250ZXN0cyBvZiBCZWF0cmljZSB3ZHRoIEJlbi0gDQplZGljay4gSW4gUG9ydGlhLCBvZiBUaGUge1smKiZdfU1lcmNoYW50IG9mIFZlbmljZV4gaW50ZWxsZWN0IA0KYW5kIGVtb3Rpb25zIHBsYXkgaW50byBvbmUgYW5vdGhlciB3aXRoIGV4cXV7WyYqJl19aXNpdGUgc3dpZnQtIA0KbmVzcywgYnJpZ2h0bmVzcywgYW5kIHZpdGFsIHdhcm10aC4gDQoNCkp1c3QgYXQgdGhlIGNsb3NlIG9mIHtbJiomXX10aGUgcGVyaW9kIHdoaWNoIGdhdmUgYmlydGggdG8gDQpTaGFrc3BlcmVcJ3MgbW9zdCBqb3lvdXMgY29tZWRpZXMsIGFuZCBhdCB0aHtbJiomXX1lIGVudHJhbmNlIA0KdG8gdGhlIHRyYWdpYyBwZXJpb2QsIGFwcGVhciB0eXBlcyBvZiBmZW1hbGUgY2hhcmFjdGVyIA0Kd2hpY2gge1smKiZdfWFyZSBkaXN0aW5ndWlzaGVkIGJ5IHNvbWUgc2luZ2xlIGVsZW1lbnQgb2YgcGUtIA0KY3VsaWFyIHN0cmVuZ3RoIOKAlCBIZWxlbmF7WyYqJl19LCBJc2FiZWxsYSwgUG9ydGlhIG9mIEp1bGl1cyBDY2VzYXIgDQoodHlwZSBvZiBwZXJmZWN0IHdvbWFubHkgaGVyb2lzbSwgeWV0IHtbJiomXX1lbnZpcm9uZWQgYnkgdGhlIA0Kd2Vha25lc3Mgb2YgaGVyIHNleCkgOyBhbmQgb3ZlciBhZ2FpbnN0IHRoZXNlIGFyZSBzdHVkaWVze1smKiZdfSANCm9mIGZlbWluaW5lIGluY2FwYWNpdHkgb3IgaWdub2JsZW5lc3Mg4oCUIE9waGVsaWEsIEdlci0gDQp0cnVkZSwgQ3Jlc3NpZGF7WyYqJl19LiBJdCBpcyBhcyBpZiBTaGFrc3BlcmUgYXQgdGhpcyB0aW1lIG5lZWQtIA0KZWQgc29tZSBvbmUgc3Ryb25nLCBvdXRzdGFuZGluZ3tbJiomXX0gZXhjZWxsZW5jZSB0byBncmFzcCBhbmQgDQpzdGVhZHkgaGltc2VsZiBieSwgYW5kIGhhZCBsb3N0IGhpcyBkZWxpZ2h0IGluIHRoe1smKiZdfWUgZXZlbiANCmhhcm1vbnkgb2YgY2hhcmFjdGVyIHdoaWNoIHN1aXRzIHVzLCBhbmQgYnJpbmdzIHVzIGpveSANCndoZW4gd2UgbWF7WyYqJl19a2Ugbm8gc2luZ2xlLCB1cmdlbnQsIGFuZCBwZWN1bGlhciBkZW1hbmQgDQpmb3IgaGVscC4gTmV4dCBmb2xsb3cgdGhlIHRyYWdpY3tbJiomXX0gZmlndXJlcyDigJQgRGVzZGVtb25hLCANCnRoZSBpbnZpbmNpYmxlIGxveWFsdHkgb2Ygd2lmZWhvb2QgOyBDb3JkZWxpYSwgdGhle1smKiZdfSBpbnZpbi0gDQo2IA0KDQo4MiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQsIA0KDQpjaWJsZSBmaWxpYWwgbG95YWx0eSB7WyYqJl194oCUIHNhY3JpZmljaWFsIGxpdmVzLCB3aGljaCBhcmUgb2ZpZXJlZCANCnVwLCBhbmQgd2hpY2ggc2FuY3RpZnkgdGhlIGVhcnRoIHtbJiomXX07IGxpdmVzIHdoaWNoIGZhbGwgaW4gdGhlIA0Kc3RyaWZlIHdpdGggZXZpbCwgYW5kIHdoaWNoLCBmYWxsaW5nLCBhY2hpZXZlIHRoe1smKiZdfWVpciB2aWN0by0gDQpyaWVzIG9mIGxvdmUuIEFuZCBhcyB0aGVzZSBtYWtlIHRoZSB3b3JsZCBiZWF1dGlmdWwgYW5kIA0Kc2FjcmV7WyYqJl19ZCwgZXZlbiB3aGlsZSB0aGV5IGxlYXZlIGl0IHN0cmFuZ2UgYW5kIHNvcnJvd2Z1bCwgc28gDQpvdmVyIGFnYWluc3QgdGhlbSBhcHtbJiomXX1wZWFyIHRoZSBkZXN0cm95ZXJzIG9mIGxpZmUg4oCUIExhZHkgDQpNYWNiZXRoIGFuZCB0aGUgbW9uc3RlcnMgR29uZXJpbCwgUmVne1smKiZdfWFuLiANCg0KRmluYWxseSwgaW4gU2hha3NwZXJlXCdzIGxhdGVzdCBwbGF5cyBhcHBlYXIsIHVwb24gdGhlIA0Kb25lIGhhbmQsIHRoe1smKiZdfWUgZmlndXJlcyBvZiB0aGUgZ3JlYXQgc3VmZmVyZXJzIOKAlCBjYWxtLCBzZWxmLSANCnBvc3Nlc3NlZCwgbXVjaC1lbmR1cmluZyB7WyYqJl19OyBmcmVlIGZyb20gc2VsZi1wYXJ0aWFsaXR5LCB1bi0gDQpqdXN0IHJlc2VudG1lbnQsIGFuZCB0aGUgcGFzc2lvbiBvZiByZXZlbntbJiomXX1nZSDigJQgUXVlZW4gDQpLYXRoYXJpbmUsIEhlcm1pb25lIDsgYW5kLCBvbiB0aGUgb3RoZXIgaGFuZCwgYXJlIGV4LSANCnF1aXNpe1smKiZdfXRlIGdpcmxpc2ggZmlndXJlcywgY2hpbGRyZW4gd2hvIGhhdmUga25vd24gbm8gc29yLSANCnJvdywgb3ZlciB3aG9tIGlzIHNoZWR7WyYqJl19IGEgbWFnaWNhbCBiZWF1dHksIGFuIGlkZWFsIGxpZ2h0LCANCndoaWxlIGFib3ZlIHRoZW0gU2hha3NwZXJlIGlzIHNlZW4sIGFzIHtbJiomXX1pdCB3ZXJlLCBib3dpbmcgDQp0ZW5kZXJseSDigJQgTWlyYW5kYSwgUGVyZGl0YS4gSG93IGdyZWF0IGEgZGlzdGFuY2UgaGFzIA0Ke1smKiZdfWJlZW4gdHJhdmVyc2VkICEgSW5zdGVhZCBvZiB0aGUgdGVycmlibGUgTWFyZ2FyZXQgb2YgDQpBbmpvdSwgd2UgaGF2ZSBoZXJlIFF7WyYqJl19dWVlbiBLYXRoYXJpbmUuIFNoYWtzcGVyZSBpbiANCmhpcyBlYXJseSBwZXJpb2Qgd291bGQgaGF2ZSBmb3VuZCBjb2xkLCBhbmQgd3tbJiomXX1pdGhvdXQgDQpzdWl0YWJpbGl0eSBmb3IgdGhlIHB1cnBvc2VzIG9mIGFydCwgS2F0aGFyaW5lXCdzIHBhdGllbmNlLCANCnJlc2VydntbJiomXX1lLCBhbmQgZXF1aWxpYnJpdW0gb2Ygc291bC4gSW5zdGVhZCBvZiBSb3NhbGluZSwgDQpoZXJlIGlzIFBlcmRpdGEuIEEgZGVhdGgte1smKiZdfWJlZCwgZ2xvcmlvdXMgd2l0aCBhIHZpc2lvbiBvZiANCmFuZ2VscywgYW5kIHRoZSBleHF1aXNpdGUgZGF3biBvZiBhIHlvdW5nIGd7WyYqJl19aXJsXCdzIGxpZmUg4oCUIA0KdGhlc2UgYXJlIHRoZSB0d28gbGFzdCB0aGluZ3Mgb24gd2hpY2ggdGhlIGltYWdpbmF0aW9uIA0Kb2Z7WyYqJl19IHRoZSBwb2V0IGNhcmVkIHRvIGR3ZWxsIGFmZmVjdGlvbmF0ZWx5IGFuZCBsb25nLiANCg0KSGVyZSwgZm9yIHRoZSBwcmVzZW50LHtbJiomXX0gd2UgbWF5IHBhdXNlLiBXZSBoYXZlIGdsYW5jZWQgDQphdCB0aGUgZ3Jvd3RoIG9mIFNoYWtzcGVyZVwncyBtaW5kIGFuZCBhcnQgYXtbJiomXX1zIGZhciBvbndhcmQgDQphcyB0aGUgb3BlbmluZyBvZiB0aGUgcGVyaW9kIG9mIHRoZSBncmVhdCB0cmFnZWRpZXMuIFdoYXQgDQpTe1smKiZdfWhha3NwZXJlIGdhaW5lZCBvZiBpbnNpZ2h0IGFuZCBvZiBzdHJlbmd0aCBkdXJpbmcgdGhhdCANCnBlcmlvZCBhIHN1YnNlcXVlbnR7WyYqJl19IGNoYXB0ZXIgd2lsbCBhdHRlbXB0IHRvIHRlbGwuXiANCg0KKiBJIGFtIHVud2lsbGluZyB0byBvZmZlciBhbnkgY3JpdGljaXNtIHtbJiomXX1vZiB0aGUgcGxheSBvZiBUcm9pbHVzIGFuZCBDcmVzc2kqIA0KZGEgdW50aWwgSSBzZWUgbXkgd2F5IG1vcmUgY2xlYXJseSB0aHJve1smKiZdfXVnaCBjZXJ0YWluIGRpZmZpY3VsdGllcyByZXNwZWN0aW5nIGl0cyANCmRhdGUgYW5kIGl0cyBldGhpY2FsIHNpZ25pZmljYW5jZS57WyYqJl19IE1yLiBGbGVheSBiZWxpZXZlcyB0aGF0IHRocmVlIHN0b3JpZXMgY2FuIA0KYmUgZGlzdGluZ3Vpc2hlZCDigJQgKDEpIFRyb2lsdXtbJiomXX1zIGFuZCBDcmVzc2lkYTsgKDIpIEhlY3RvcjsgKDMpIEFqYXgsIFVseXNzZXNeIA0KDQpwIA0KDQpHcm93dGggb2YgU2hha3NwZXJle1smKiZdfXMgTWluZCBhbmQgQXJ0LiA4MyANCg0KYW5kIHRoZSBHcmVlayBDYW1wIDsgYW5kIHRoYXQgdGhlc2Ugc3RvcmllcyB3ZXJlIHdyaXR7WyYqJl19dGVuIGF0IGRpZmZlcmVudCBwZS0gDQpub2RzLiAoU2VlIFRyYW5zLiBOZXcgU2guIFNvYy4pIE1y4oCeIEZ1cm5pdmFsbCBzYXlzLHtbJiomXX0gXCJUaGF0IHRoZXJlIGFyZSB0d28gDQpwYXJ0cywgYW4gZWFybHkgYW5kIGEgbGF0ZSwgSSBkbyBub3QgZG91YnQuXCIgSGVydHpiZXJ7WyYqJl19ZyBhc3NpZ25zIHRoZSBkYXRlIA0KMTYwMy4gU2VlIGhpcyB2YWx1YWJsZSBwcmVmYWNlIGluIHRoZSBHZXJtYW4gU2hha2VzcGVhcntbJiomXX1lIFNvY2lldHlcJ3MgZWRpLSANCnRpb24gb2YgVGllY2sgYW5kIFNjaGxlZ2VsXCdzIHRyYW5zbGF0aW9uIG9mIFNoYWtzcGVyZSwgdm97WyYqJl19bC4geGkuLCBhbmQgb24gdGhlIA0Kc291cmNlcyBvZiB0aGUgcGxheSBoaXMgYXJ0aWNsZSBpbiBTaGFrZXNwZWFyZS1KYWhyYnVjaHtbJiomXX1eIHZvbC4gdmkuIDsgYWxzbywgaW4gdm9sLiANCmlpaS4sIHRoZSBhcnRpY2xlIGJ5IEthcmwgRWl0bmVyLiBIZXJ0emJlcmcgYmVse1smKiZdfWlldmVzIHRoYXQgLnRoZSBwbGF5IHJlbWFpbmVkIA0KdW5wcmludGVkIGFuZCB1bmFjdGVkIHVudGlsIDE2MDkuIFVscmljaVwncyBhe1smKiZdfXJ0aWNsZSBvbiBUcm9pbHVzIGFuZCBDcmVzc2lkYSANCmluIFNoYWtlc3BlYXJlLSBKYWhyYnVjaF5cXG9cXC4gaXguLCBtYWtlcyBpdHtbJiomXX0gY2xlYXIgdGhhdCB0aGUgcGxheSBiZWxvbmdzIHJhdGhlciANCnRvIGNvbWVkeSB0aGFuIHRyYWdlZHkuIFRoaXMgYXJ0aWNsZSBte1smKiZdfWF5IGJlIGNvbnN1bHRlZCAoYXMgd2VsbCBhcyBIZXJ0ei0gDQpiZXJnXCdzIHByZWZhY2UpIG9uIHRoZSBxdWVzdGlvbnMgcmFpc2Vke1smKiZdfSBieSB0aGUgY29uY2x1ZGluZyBsaW5lcyBvZiB0aGUgZGlmZmktIA0KY3VsdCBlcGlsb2d1ZSBieSBQYW5kYXJ1cy4gDQoNClNvIGZ7WyYqJl19YXIgd2FzIHdyaXR0ZW4gaW4gMTg3NSA7IGJ1dCBzaW5jZSB0aGVuIEkgaGF2ZSBjb21lIHRvIHVuZGVyc3RhbmQgaW4gDQpzb21lIHtbJiomXX1kZWdyZWUsIEkgYmVsaWV2ZSwgdGhlIHNpZ25pZmljYW5jZSBvZiB0aGlzIGRpZmZpY3VsdCBwbGF5LiAoU2VlIGFudGVeIHByZWYte1smKiZdfSANCmFjZSB0byB0aGUgdGhpcmQgZWRpdGlvbi4pIA0KDQo4NCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBckwgDQoNCkNIQVB7WyYqJl19VEVFIElJSS4gDQoNClRIRSBGSUVTVCBBTkQgU0VDT05EIFRSQUdFRFk6IFJPTUVPIEFORCBKVUxJRVReIA0KDQpIQU1MRVQuIA0KDXtbJiomXX0KRHVyaW5nIHRoZSBmaXJzdCB0ZW4geWVhcnMgb2YgU2hha3NwZXJlXCdzIGRyYW1hdGljIGNhIA0KcmVlciBoZSB3cm90ZSBxdWlja3tbJiomXX1seSwgcHJvZHVjaW5nIChpZiB3ZSBzdXBwb3NlIHRoYXQgaGUgDQpjb21tZW5jZWQgYXV0aG9yc2hpcCBpbiBJNTlPNSBhdCB0aGUge1smKiZdfWFnZSBvZiB0d2VudHktIA0Kc2l4KSwgb24gYW4gYXZlcmFnZSwgYWJvdXQgdHdvIHBsYXlzIGluIGVhY2ggeWVhci4gVGhlc2UgDQp7WyYqJl19ZWlnaHRlZW4gb3IgdHdlbnR5IHBsYXlzIHdyaXR0ZW4gYmV0d2VlbiAxNTkwIGFuZCAxNjAwIA0KaW5jbHVkZSBzb21lIGVpZ2h0IHtbJiomXX1vciBuaW5lIGNvbWVkaWVzLCBhbmQgdGhlIHdob2xlIG9mIA0KdGhlIGdyZWF0IHNlcmllcyBvZiBFbmdsaXNoIGhpc3RvcmljYWwge1smKiZdfWRyYW1hcywgd2hpY2gsIHdoZW4gDQpIZW5yeSBWLiB3YXMgd3JpdHRlbiwgU2hha3NwZXJlIHByb2JhYmx5IGxvb2tlZCB1cG9uIA17WyYqJl19CmFzIGNvbXBsZXRlLiBUbyB0aGlzIGZpZWxkIGhlIGRpZCBub3QgcmV0dXJuLCBleGNlcHQgaW4gDQpvbmUgaW5zdGFuY2UsIHdoZXtbJiomXX1uIGl0IHdvdWxkIHNlZW0gdGhhdCBhIHBvcnRpb24gb2YgYSBwbGF5IA0Kb24gdGhlIHN1YmplY3Qgb2YgSGVucnkgVklJSS4gd2Fze1smKiZdfSB3cml0dGVuLCBhbmQsIHdoaWxlIA0Kc3RpbGwgaW5jb21wbGV0ZSwgd2FzIGhhbmRlZCBvdmVyLCBvbiBzb21lIHNwZWNpYWwgb2N7WyYqJl19Y2EtIA0Kc2lvbiwgdG8gdGhlIGRyYW1hdGlzdCBGbGV0Y2hlciB0byBleHBhbmQgZnJvbSB0aHJlZSBhY3RzIA0KaW50byBmaXZlLntbJiomXX0gSW4gdGhlIGZpcnN0IGRlY2FkZSBvZiBTaGFrc3BlcmVcJ3MgYXV0aG9yc2hpcCANCihpZiB3ZSBzZXQgYXNpZGUgVGl0dXMgQW5kcntbJiomXX1vbmljdXMgYXMgdGhlIHdvcmsgb2YgYW4gdW4tIA0Ka25vd24gd3JpdGVyKSwgYSBzaW5nbGUgdHJhZ2VkeSBhcHBlYXJzIOKAlCBSe1smKiZdfW9tZW8gYW5kIA0KSnVsaWV0LiBUaGlzIHBsYXkgaXMgYmVsaWV2ZWQgdG8gaGF2ZSBlbmdhZ2VkIFNoYWstIA0Kc3BlcmVcJ3MgYXR0e1smKiZdfWVudGlvbiBkdXJpbmcgYSBudW5pYmVyIG9mIHllYXJzLiBEaXNzYXRpc2ZpZWQsIA0KcHJvYmFibHksIHdpdGggdGhlIGZpcnN0IGZ7WyYqJl19b3JtIHdoaWNoIGl0IGFzc3VtZWQsIFNoYWstIA0Kc3BlcmUgd29ya2VkIHVwb24gdGhlIHBsYXkgYWdhaW4sIHJld3JpdGluZyBhbntbJiomXX1kIGVubGFyZy0gDQppbmcgaXQuXiBCdXQgaXQgaXMgbm90IHVubGlrZWx5IHRoYXQgZXZlbiB0aGVuIGhlIGNvbi0gDQoNCiogVGhle1smKiZdfSBvcGluaW9uIG9mIE1yLiBSaWNoYXJkIEdyYW50IFdoaXRlIGRlc2VydmVzIHRvIGJlIHN0YXRlZC4gSXQgaXMgDQpcIiB0aGF0IHRoe1smKiZdfWUgUm9tZW8gYW5kIEp1bGh0IHdoaWNoIGhhcyBjb21lIGRvd24gdG8gdXMgKGZvciB0aGVyZSBtYXkgaGF2ZSANCmJlZW4gYW4gYW57WyYqJl19dGVjZWRlbnQgcGxheSB1cG9uIHRoZSBzYW1lIHN0b3J5KSB3YXMgZmlyc3Qgd3JpdHRlbiBbaW4gMTU5MV0gDQoNClJvbWVvIGFuZHtbJiomXX0gSnVsaWV0IDg1IA0KDQpzaWRlcmVkIGhpcyBwb3dlcnMgdG8gYmUgaW5zdWZmaWNpZW50bHkgbWF0dXJlZCBmb3IgdGhlIA0KZ3Jle1smKiZdfWF0IGRlYWxpbmcsIGFzIGFydGlzdCwgd2l0aCBodW1hbiBsaWZlIGFuZCBwYXNzaW9uIA0Kd2hpY2ggdHJhZ2VkeSBkZW1hbmRzIDt7WyYqJl19IGZvciwgaGF2aW5nIHdyaXR0ZW4gUm9tZW8gYW5kIA0KSnVsaWV0XiBTaGFrc3BlcmUgcmV0dXJuZWQgdG8gdGhlIGhpc3Rvcmllc3tbJiomXX0sIGluIHdoaWNoLCANCmRvdWJ0bGVzcywgaGUgd2FzIGF3YXJlIHRoYXQgaGUgd2FzIHJlY2VpdmluZyB0aGUgYmVzdCANCnBvc3Npe1smKiZdfWJsZSBjdWx0dXJlIGZvciBmdXR1cmUgdHJhZ2VkeTsgYW5kIGhlIHdyb3RlIHRoZSANCmxpdHRsZSBncm91cCBvZiBjb21lZGllcyB7WyYqJl19aW4gd2hpY2ggU2hha3NwZXJpYW4gbWlydGggDQpvYnRhaW5zIGl0cyBoaWdoZXN0IGFuZCBtb3N0IGNvbXBsZXRlIGV4cHJlc3Npb3tbJiomXX1uLiBUaGVuLCANCmFmdGVyIGFuIGludGVydmFsIG9mIGFib3V0IGZpdmUgeWVhcnMsIGEgc2Vjb25kIHRyYWdlZHksIA0KSGFtbGV0e1smKiZdfV4gd2FzIHByb2R1Y2VkLiBPdmVyIEhhbWxldF4gYXMgb3ZlciBSb21lbyANCmFuZCBKdWxpZXReIGl0IGlzIHN1cHBvc2VkIHRoYXR7WyYqJl19IFNoYWtzcGVyZSBsYWJvcmVkIGxvbmcgDQphbmQgY2FyZWZ1bGx5LiBMaWtlIFJvbWVvIGFuZCBKdWxpZXReIHRoZSBwbGF5IGV4aXtbJiomXX1zdHMgDQppbiB0d28gZm9ybXMsIGFuZCB0aGVyZSBpcyByZWFzb24gdG8gYmVsaWV2ZSB0aGF0IGluIHRoZSANCmVhcmxpZXIgZm9ye1smKiZdfW0gaW4gZWFjaCBpbnN0YW5jZSB3ZSBwb3NzZXNzIGFuIGltcGVyZmVjdCANCnJlcG9ydCBvZiBTaGFrc3BlcmVcJ3MgZmlyc3QgdHJle1smKiZdfWF0bWVudCBvZiBoaXMgdGhlbWUuXiANCg0KSXQgbWF5IGJlIHRob3VnaHQgcGFyYWRveGljYWwgdG8gaW5mZXIgZnJvbSB0aGUgYWJ7WyYqJl19LSANCnNlbmNlIG9mIHRyYWdlZHkgaW4gdGhlIGVhcmxpZXIgeWVhcnMgb2YgU2hha3NwZXJlXCdzIGRyYS0gDQptYXRpYyBjYXJlZXJ7WyYqJl19LCB0aGF0IGhlIGxvb2tlZCB1cG9uIHRoZSB3cml0aW5nIG9mIHRyYWdlZHkgDQphcyBoaXMgY2hpZWYgdm9jYXRpb24gYXMgYXV0aHtbJiomXX1vciA7IHlldCB0aGUgaW5mZXJlbmNlIGlzIG5vdCANCnVuY29uZmlybWVkIGJ5IGZhY3RzIGluIFNoYWtzcGVyZVwncyBzdWJzZXF1ZXtbJiomXX1udCBjYXJlZXIuIA0KQWxtb3N0IGZyb20gdGhlIGZpcnN0IGl0IHdvdWxkIGFwcGVhciB0aGF0IGhlIGhhZCBiZWZvcmUgDQpoaW0ge1smKiZdfXRoZSBkZXNpZ24gb2YgUm9tZW8gYW5kIEp1bGlldCBXaGVuLCBhZnRlciBmaXZlIA0Kb3Igc2l4IHllYXJzLCBpdCB3YXMgYWN0dWF7WyYqJl19bGx5IGFjY29tcGxpc2hlZCwgdGhlcmUgc3RpbGwgYXAtIA0KDQpieSB0d28gb3IgbW9yZSBwbGF5d3JpZ2h0cywgb2Ygd2hvbSBTaHtbJiomXX1ha3NwZXJlIHdhcyBvbmUgOyB0aGF0IHN1YnNlcXVlbnQtIA0KbHkgW2luIDE1OTZdIFNoYWtzcGVyZSByZXdyb3RlIHRoaXMgb2xke1smKiZdfSBwbGF5LCBvZiB3aGljaCBoZSB3YXMgcGFydCBhdXRob3IsIA0KbWFraW5nIGhpcyBwcmluY2lwYWwgY2hhbmdlcyBpbiB0aGUgcGF7WyYqJl19c3NhZ2VzIHdoaWNoIHdlcmUgY29udHJpYnV0ZWQgYnkgaGlzIA0KY28tbGFib3JlcnMuXCIgTXIuIFdoaXRlIGJlbGlldmVzIHRoZSB7WyYqJl19Zmlyc3QgcXVhcnRvIG9mIFJvbWVvIGFuZCBKdWxpZXQgdG8gDQpiZSBhbiBpbXBlcmZlY3QgYW5kIGdhcmJsZWQgY29weSwgb2J0YXtbJiomXX1pbmVkIGJ5IHRoZSBhaWQgb2YgYSByZXBvcnRlciwgb2YgDQpTaGFrc3BlcmVcJ3MgbmV3IHdvcmssIHRoZSBkZWZlY3RzIG9mIHdoaXtbJiomXX1jaCB3ZXJlIHN1cHBsaWVkIHBhcnRseSBieSBzb21lIA0KdmVyc2UtbW9uZ2VycyBvZiB0aGUgZGF5LCBhbmQgcGFydGx5IGZyb20ge1smKiZdfXRoZSBvbGQgcGxheSBpbiB0aGUgY29tcG9zaXRpb24gDQpvZiB3aGljaCBTaGFrc3BlcmUgd2FzIG9uZSBvZiB0d28gb3IgbW9yZSB7WyYqJl19Y28tbGFib3JlcnMuIA0KDQoqIFRoZSBlZGl0b3JzIG9mIHRoZSBDYW1icmlkZ2UgU2hha3NwZXJlIGJlVWV2ZSB0aGF0IHRoZXJlIHtbJiomXX13YXMgYW4gb2xkIA0KcGxheSBvbiB0aGUgc3ViamVjdCBvZiBIYW1sZXQsIFwiIHNvbWUgcG9ydGlvbnMgb2Ygd2hpY2ggYXJlIHN0aXtbJiomXX1sbCBwcmVzZXJ2ZWQgDQppbiB0aGUgcXVhcnRvIG9mIDE2MDMuXCIgRm9yIHZhcmlvdXMgYml0cyBvZiBldmlkZW5jZSAoc29tZSBnb3tbJiomXX1vZCwgc29tZSANCmJhZCkgdG8gcHJvdmUgdGhhdCB0aGUgdGV4dCBvZiB0aGlzIHF1YXJ0byB3YXMgb2J0YWluZWQgb3JhbGx5LCBhe1smKiZdfW5kIG5vdCBkaXJlY3QtIA0KbHkgZlwnXm9tIGEgbWFudXNjcmlwdCwgc2VlIFRzY2hpc2Nod2l0elwncyBcIiBTaGFrc3BlcmUtRm9yc2N7WyYqJl19aHVuZ2VuIOKAlCBJLiBIYW0tIA0KbGV2IFBQLSAxMC0xNCwgDQoNCjg2IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDXtbJiomXX0KDQpwZWFyZWQgaW4gdGhlIHBsYXkgdW5taXN0YWthYmxlIG1hcmtzIG9mIGltbWF0dXJlIGp1ZGctIA0KbWVudC4gU2hha3NwZXJle1smKiZdfSBhY2NvcmRpbmdseSwgd2hvIGluIGhpcyBoaXN0b3JpZXMgaGFkIA0KYWJ1bmRhbmNlIG9mIHdvcmsgcGxhbm5lZCBvdXQgZm9yIGh7WyYqJl19aW0sIHdpc2VseSBhYnN0YWluZWQgDQpmb3Igc29tZSB0aW1lIGZ1cnRoZXIgZnJvbSB3cml0aW5nIHRyYWdlZHkuIEJhdCBhcyBzb3tbJiomXX1vbiANCmFzIEhhbWxldCB3YXMgY29tcGxldGVkLCBhbmQgaXQgYmVjYW1lIGEgZGVtb25zdHJhdGVkIA0KZmFjdCB0byB0aGUgcG9le1smKiZdfXQgdGhhdCBoZSBoYWQgYXR0YWluZWQgaGlzIGZ1bGwgbWF0dXJpdHksIA0KYW5kIHdhcyBtYXN0ZXIgb2YgaGlzIGNyYWZ0LCB0aGV7WyYqJl19biBoZSBubyBsb25nZXIgaGVzaXRhdGVkIA0Kb3IgZGVsYXllZCA7IGFuZCB5ZWFyIGJ5IHllYXIsIGZyb20gMTYwMiB0byAxNjEyLHtbJiomXX0gaGUgYWRkLSANCmVkIHRvIHRoZSBncmVhdCByb2xsIG9mIGhpcyB0cmFnZWRpZXMsIGFjY29tcGxpc2hpbmcgaW4gDQp0aG9zZSB5e1smKiZdfWVhcnMsIGJ5IHN1c3RhaW5lZCBlbmVyZ3kgb2YgaGVhcnQgYW5kIGltYWdpbmEtIA0KdGlvbiwgYXMgbWFydmVsbG91cyBhIGZlYXR7WyYqJl19IG9mIGF1dGhvcnNoaXAgYXMgdGhlIHdvcmxkIGhhcyANCnNlZW4uIA0KDQpXaGVuIFNoYWtzcGVyZSBiZWdhbiB0byB3cml0ZSBmb3tbJiomXX1yIHRoZSBzdGFnZSwgYXMgd2FzIA0Kbm90aWNlZCBpbiB0aGUgcHJlY2VkaW5nIGNoYXB0ZXIsIGhlIHdhcyBieSBubyBtZWFucyANe1smKiZdfQptaXNsZWQgYnkgc2VsZi1jb25maWRlbmNlLiBIZSBiZWdhbiBjYXV0aW91c2x5IGFuZCB0ZW4tIA0KdGF0aXZlbHksIGZlZWxpbmd7WyYqJl19IGhpcyB3YXkuIEFuZCB0aGVyZSB3YXMgb25lIGNhdXNlIA0Kd2hpY2ggbWlnaHQgcmVhc29uYWJseSBtYWtlIGhpbSB0aW1pZCBpbntbJiomXX0gdGhlIGRpcmVjLSANCnRpb24gb2YgdHJhZ2VkeS4gU2hha3NwZXJlLCBhdCB0aGUgYWdlIG9mIHR3ZW50eS1zaXgsIA0Kd2FzIG5ve1smKiZdfXQgYWZyYWlkIHRvIGNvbXBldGUgd2l0aCBjb250ZW1wb3Jhcnkgd3JpdGVycyBpbiANCmNvbWVkeSBhbmQgaGlzdG9yeS4gSGUgY297WyYqJl19LW9wZXJhdGVkLCBpdCBtYXkgYmUsIGluIHRoZSANCndyaXRpbmcgb2YgaGlzdG9yaWNhbCBwbGF5cywgVGhlIEZpcnN0IFBhcnQgb3tbJiomXX1mIHRoZSBDb250ZW4tIA0KdGlvbiBhbmQgVGhlIFRyaWNlIFRyYWdlZGllIG9mIFJpY2hhcmQgRHVrZSBvZiBZb3JoZV4gDQphdCBhe1smKiZdfW4gZWFybHkgYWdlIDsgYW5kIGFmdGVyd2FyZHMgYnkgcmV2aXNpb24gYW5kIGFkZGl0aW9uIA0KbWFkZSB0aGVzZSBwbGF5cyBzdGl7WyYqJl19bGwgbW9yZSBoaXMgb3duLlwnXiBCdXQgdGhlIGRlcGFydC0gDQptZW50IG9mIHRyYWdlZHkgd2FzIGRvbWluYXRlZCBieSBhIHdyaXR7WyYqJl19ZXIgb2Ygc3VwZXJiIA0KZ2VuaXVzLCBDaHJpc3RvcGhlciBNYXJsb3dlLiBTaGFrc3BlcmUsIHdob3NlIHBvd2VycyANCnJpcGVuZXtbJiomXX1kIHNsb3dseSwgbWF5LCBhdCB0aGUgdGltZSB3aGVuIGhlIHdyb3RlIFRoZSBDb20tIA0KZWR5IG9mIEVycm9ycyBhbmQgTG92ZXJze1smKiZdfSBMYWJvciBecyBMb3N0XiBoYXZlIHdlbGwgaGVzaXRhdGVkIA0KdG8gZGlzcHV0ZSB3aXRoIE1hcmxvd2UgaGlzIHNwZWNpYWwgcHJ7WyYqJl19b3ZpbmNlLiBJbWl0YXRvcnMgDQoNCuKZpiBUaGUgbGF0ZXN0IHN0dWR5IG9mIDIgYW5kIDMgSGVucnkgVkkuIGFuZCB0aGUgcmVsYXtbJiomXX10aW9uIG9mIHRoZXNlIHRvIFRoZSANCkNvbnRlbnRpb24gYW5kIFRydWUgVHJhZ2VkaWUgaXMgdGhlIGFkbWlyYWJseSBjYXJlZnVse1smKiZdfSBlc3NheSBieSBNaXNzIEphbmUgDQpMZWUsIFRyYW5zLiBOZXcgU2guIFNvYy4sIDE4NzUtNzYuIFRoZSBvcGluaW9uIGFycml2ZWR7WyYqJl19IGF0IGJ5IE1pc3MgTGVlIGlzIA0KdGhhdCBpbiAyIGFuZCAzIEhlbnJ5IFZJLiBTaGFrc3BlcmUgYW5kIE1hcmxvd2UgYXJlIHJldntbJiomXX1pc2VycyBvZiB3b3JrIGJqIA0KTWFybG93ZSwgR3JlZW5lLCBhbmQgcGVyaGFwcyBQZWVsZS4gDQoNClJvbWVvIGFuZCBqZnVsaWVMe1smKiZdfSA4NyANCg0KYW5kIGRpc2NpcGxlcyBoYWQgY3Jvd2RlZCBhcm91bmQgdGhlIG1hc3Rlci4gQWxsIHRoZSANCnZpY2VzIG9mIGhpcyB7WyYqJl19c3R5bGUgaGFkIGJlZW4gZXhhZ2dlcmF0ZWQuIFNoYWtzcGVyZSBzYXcgDQpvbmUgdGhpbmcgY2xlYXJseSwgdGhhdCBpZiB0aGUgdHtbJiomXX1pbWUgZXZlciBjYW1lIHdoZW4gaGUgDQp3b3VsZCB3cml0ZSB0cmFnZWR5LCB0aGUgdHJhZ2VkeSBtdXN0IGJlIG9mIGEga2luZCBhe1smKiZdfWx0by0gDQpnZXRoZXIgZGlmZmVyZW50IGZyb20gdGhhdCBjcmVhdGVkIHVwb24gTWFybG93ZVwncyBtZXRoLSANCm9kIOKAlCB0aGUge1smKiZdfW1ldGhvZCBvZiBpZGVhbGl6aW5nIHBhc3Npb25zIG9uIGEgZ2lnYW50aWMgc2NhbGUuIA0KVG8gYWRkIHRvIHRoZSBwaWVjZXMgb2Z7WyYqJl19IHRoZSBzY2hvb2wgb2YgTWFybG93ZSBhIHJoYXBzb2R5IA0Kb2YgYmxvb2QgY29tbWluZ2xlZCB3aXRoIG5vbnNlbnNlIHdhcyBpbXtbJiomXX1wb3NzaWJsZSBmb3IgDQpTaGFrc3BlcmUsIHdobyB3YXMgbmV2ZXIgYWx0b2dldGhlciB3YW50aW5nIGluIGEgc2FuZSANCmp1ZGdte1smKiZdfWVudCBhbmQgYSBsaXZlbHkgc2Vuc2Ugb2YgdGhlIGFic3VyZC4gDQoNClRodXMgaXQgY2FtZSBhYm91dCB0aGF0IFNoYWtzcGVyZSx7WyYqJl19IGF0IG5lYXJseSBmb3J0eSANCnllYXJzIG9mIGFnZSwgd2FzIHRoZSBhdXRob3Igb2YgYnV0IHR3byBvciB0aHJlZSB0cmFnZS0gDXtbJiomXX0KZGllcy4gT2YgdGhlc2UsIFJvbWVvIGFuZCBKdWxpZXQgbWF5IGJlIGxvb2tlZCB1cG9uIA0KYXMgdGhlIHdvcmsgb2YgdGhlIGFye1smKiZdfXRpc3RcJ3MgYWRvbGVzY2VuY2UgOyBhbmQgSGFtbGV0IGFzIA0KdGhlIGV2aWRlbmNlIHRoYXQgaGUgaGFkIGJlY29tZSBhZHVsdCwge1smKiZdfWFuZCwgaW4gdGhpcyBzdS0gDQpwcmVtZSBkZXBhcnRtZW50LCBtYXN0ZXIgb2YgaGlzIGNyYWZ0LiBUbyBhZGQgdG8gdGhlIA0KaW57WyYqJl19dGVyZXN0IG9mIHRoZXNlIHBsYXlzIGFzIHN1YmplY3RzIG9mIFNoYWtzcGVyaWFuIHN0dWR5LCANCmVhY2gsIGFzIHdhcyBvYnNlcntbJiomXX12ZWQgYWJvdmUsIGV4aXN0cyBpbiB0d28gdmVyeSBkaWZmZXJlbnQgDQpmb3JtcyA7IGFuZCBmcm9tIHRoZXNlIHNvbWV0aGluZyBte1smKiZdfWF5IGJlIGxlYXJuZWQgYXMgDQp0byB0aGUgcG9ldFwncyBtZXRob2Qgb2YgcmVoYW5kbGluZyBoaXMgb3duIHdvcmsuIEluIA0KdGhle1smKiZdfSBjYXNlIG9mIFJvbWVvIGFuZCBKdWxpZXReIHdlIHBvc3Nlc3MgdGhlIEVuZ2xpc2ggDQpvcmlnaW5hbCwgYSBwb2VtIGJ5IEFydGh7WyYqJl19dXIgQnJvb2tlLCB1cG9uIHdoaWNoIFNoYWstIA0Kc3BlcmUgZm91bmRlZCBoaXMgZHJhbWEsIGFuZCB3aGljaCBpbiBtYW55IHBhcntbJiomXX10aWN1bGFycyANCmhlIG1pbnV0ZWx5IGZvbGxvd2VkLiBJdCBpcyB0aGVyZWZvcmUgcG9zc2libGUsIGluIHRoZSANCmNhc2Ugb2Yge1smKiZdfXRoaXMgcGxheSwgdG8gaW52ZXN0aWdhdGUgd2l0aCBwZWN1bGlhciBhZHZhbnRhZ2UgDQpTaGFrc3BlcmVcJ3MgbWV0aG9kIG9mIHRye1smKiZdfWVhdGluZyBoaXMgb3JpZ2luYWwuIA0KDQpUaGUgZmlyc3QgdHdvIHRyYWdlZGllcyBoYXZpbmcgYmVlbiBzbyBjYXJlZnVsbHkgYW57WyYqJl19ZCANCmRlbGliZXJhdGVseSB0aG91Z2h0IG91dCwgaGF2aW5nIGJlZW4gbG9va2VkIHVwb24gYnkgDQp0aGVpciBhdXRob3IgYXMgb3tbJiomXX1mIGNoaWVmIGltcG9ydGFuY2UgYW1vbmcgaGlzIHdyaXRpbmdzLCANCndlIG1pZ2h0IGFudGljaXBhdGUgdGhhdCB0aGUgc2Vjb25ke1smKiZdfSBjb3VsZCBoYXJkbHkgaGF2ZSANCmJlZW4gd3JpdHRlbiB3aXRob3V0IGNvbnNjaW91cyByZWZlcmVuY2UgdG8gdGhlIGZpcnN0LiB7WyYqJl19DQpJbiBoaXMgZWFybHkgdGVudGF0aXZlIHBsYXlzLCBTaGFrc3BlcmUgbWFkZSB0cmlhbCBvZiB2YS0gDQpyaW91cyBzdHlsZXMgO3tbJiomXX0gaGUgYnJva2Ugb3V0IG5vdyBvbiB0aGlzIHNpZGUsIG5vdyBvbiB0aGF0LCANCmluIGRpcmVjdGlvbnMgd2hpY2ggd2VyZSB3aWRle1smKiZdfSBhcGFydDsgbm93IGhlIHdhcyBlbi0gDQpnYWdlZCB1cG9uIGEgaGlzdG9yeSwgbm93IHVwb24gYSBjb21lZHkgb2YgaW5jaWRlbnR7WyYqJl19LCANCg0KODggU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KYWxtb3N0IGEgZmFyY2UgOyBub3cgYSBjb21lZHkgb3tbJiomXX1mIGRpYWxvZ3VlLCBhbmQgYWdhaW4gYSANCmNvbWVkeSBvZiB0ZW5kZXIgYW5kIGdyYWNlZnVsIHNlbnRpbWVudC4gSGUgZXZpZGVue1smKiZdfXRseSANCmhhZCByZXNvbHZlZCB0aGF0IGhlIHdvdWxkIG5vdCByZXBlYXQgaGltc2VsZiwgdGhhdCBoZSANCndvdWxkIG5vdCBhbGx7WyYqJl19b3cgaGlzIGludmVudGlvbiB0byBjb21lIHVuZGVyIGNvbnRyb2wgb2YgDQphbnkgb25lIG9mIGl0cyBvd24gY3JlYXR1cmVzLiBUb3tbJiomXX1vIG9mdGVuIGEgZGlzdGluZ3Vpc2hlZCANCmxpdGVyYXJ5IHN1Y2Nlc3MgaXMgdGhlIHByZWx1ZGUgdG8gbGl0ZXJhcnkgZmFpbHVye1smKiZdfWUuIFRoZSANCmFydGlzdCwgaW4gZmFpbnRlciBjb2xvcnMgYW5kIHdpdGggYSBtb3JlIHVuY2VydGFpbiBvdXRsaW5lLCANCnJlcGV7WyYqJl19YXRzIGhpcyBhZG1pcmVkIGZpZ3VyZXMgYW5kIHNpdHVhdGlvbnMuIFNoYWtzcGVyZSANCmluc3RpbmN0aXZlbHkgYW5kIGJ5IHJlc3tbJiomXX1vbHZlIHB1dCBoaW1zZWxmIGludG8gcmVsYXRpb24gDQp3aXRoIGZhY3RzIG9mIHRoZSBtb3N0IGRpdmVyc2Uga2luZHMsIGFuZCBwe1smKiZdfXJlZmVycmVkIGEgDQpjb21wYXJhdGl2ZWx5IHNsb3cgYXR0YWlubWVudCBvZiBhIGNvbXByZWhlbnNpb24gb2YgDQpsaWZlIHRvIGF7WyYqJl19IG5hcnJvdyBpbnRlbnNpdHkgb2YgaW5kaXZpZHVhbGl0eS4gVGhlIGJyb2FkIA0KaGlzdG9yeSBvZiB0aGUgbmF0aW9uIGludGVyZXtbJiomXX1zdGVkIGhpbSwgYnV0IGFsc28gdGhlIHBhc3Npb24gDQpvZiBsb3ZlIGFuZCBkZWF0aCBpbiB0d28geW91bmcgaGVhcnRzIDogaGUge1smKiZdfWNvdWxkIGxhdWdoIA0KYnJpZ2h0bHksIGFuZCBtb2NrIHRoZSBhZmZlY3RhdGlvbnMgYW5kIGZhc2hpb25hYmxlIGZvbGxpZXMgDQp7WyYqJl19b2YgaGlzIGRheSA7IGJ1dCBoZSBtdXN0IGFsc28gc3RhbmQgYmVmb3JlIHRoZSB0b21iIG9mIA0KdGhlIENhcHVsZXRzIHBvc3Nlc3tbJiomXX1zZWQgYnkgYSBzZW5zZSBvZiBteXN0ZXJ5LCBhbmQgdGhhdCANCnN0cmVudW91cyBwYWluIGluIHdoaWNoIHNvbWV0aGluZyBlbHNle1smKiZdfSB0aGFuIG1lcmUgc29yLSANCnJvdyBpcyBwcmVkb21pbmFudC4gDQoNCk5vdywgd2hlbiB3cml0aW5nIEhhbWxldF4gaGlzIHNlY297WyYqJl19bmQgdHJhZ2VkeSwgU2hhay0gDQpzcGVyZSwgd2UgbXVzdCBuZWVkcyBiZWxpZXZlLCBkZXRlcm1pbmVkIHRoYXQgaGUgd291bGQgDXtbJiomXX0KYnJlYWsgYXdheSBmcm9tIHRoZSBpbmZsdWVuY2Ugb2YgaGlzIGZpcnN0IHRyYWdlZHksIFJvbWVvIA0KYW5kIEp1bGlldCBCb3Jue1smKiZdfWVvIGFtXl9jQS9eWl42XiAuIGlzIHN0ZWVwZWQgaW4gcGFzc2lvbjsgDQpIYW1sZXQgaXMgc3RlZXBlZF5pbiBtZWRpdGF0aW9uLiB7WyYqJl19Q29udHJhc3QgdGhlIGguZXJvIG9mIA0KdGhlIG9uZSBwbGF5LCB0aGUgbWFuIG9mIHRoZSBTb3V0aCwgd2l0aCB0aGUgY2hpZWYgZntbJiomXX1pZ3VyZSANCm9mIHRoZSBvdGhlciwgdGhlIFRldXRvbiwgdGhlIG1hbiBvZiB0aGUgSV5vcnRoLiBDb24tIA0KdHJhc3QgSGFtbGV0e1smKiZdfVwncyBmcmllbmQgYW5kIGNvbWZvcnRlciwgSG9yYXRpbywgcG9zc2Vzc2VkIA0Kb2YgZ3JhdmUgc3RyZW5ndGgsIHNlbGYtZ292ZXJue1smKiZdfW1lbnQsIGFuZCBiYWxhbmNlIG9mIGNoYXItIA0KYWN0ZXIsIHdpdGggUm9tZW9cJ3MgZiByaWVuY14sIE1lcmN1dGlvLCBhbGwgYnJpe1smKiZdfWxsaWFuY2UsIGludGVsLSANCmxlY3QsIHdpdCwgYW5kIGVmZmVydmVzY2VudCBhbmltYWwgc3Bpcml0cy4gQ29udHJhc3QgdGhlIA17WyYqJl19CmdheSBmZXN0aXZhbCBpbiBDYXB1bGV0XCdzIGhvdXNlIHdpdGggdGhlIGJydXRhbCBkcmlua2luZyANCm9mIHRoZSBEYW5pc2gga2l7WyYqJl19bmcgYW5kIGNvdXJ0aWVycy4gQ29udHJhc3QgdGhlIG1vb25saXQgDQpuaWdodCBpbiB0aGUgZ2FyZGVuLCB3aGlsZSB0aGUgbmlnaHtbJiomXX10aW5nYWxlXCdzIHNvbmcgaXMgcGFudC0gDQppbmcgZm9ydGggZnJvbSB0aGUgcG9tZWdyYW5hdGUgdHJlZSwgd2l0aCB0aGUgc2lsZXtbJiomXX1uY2UsIA0KdGhlIG5pcHBpbmcgYW5kIGVhZ2VyIGFpciBvZiB0aGUgcGxhdGZvcm0gb2YgRWxzaW5vcmUsIA0KDQpSb21lbyBhbmQge1smKiZdfUp1bGlldCA4OSANCg0KdGhlIGJlZXRsaW5nIGZpZWlnaHQgdG8gc2Vhd2FyZCwgYW5kIHRoZSBmb3JtIG9mIHRlcnJvciANCndoaWN7WyYqJl19aCBzdGFsa2VkIGJlZm9yZSB0aGUgc2VudGluZWxzLiBDb250cmFzdCB0aGUgcGVyZmVjdCANCmxvdmUgb2YgSnVsaWV0IGFuZCBoZXtbJiomXX1yIEVvbWVvIHdpdGggdGhlIHBpdGVvdXMgZm9pbGVkIGRlLSANCnNpcmUgZm9yIGxvdmUgaW4gSGFtbGV0IGFuZCBPcGhlbGlhLiBDe1smKiZdfW9udHJhc3QgdGhlIHBhc14gDQpzaW9uYXRlIHNlaXp1cmUgdXBvbiBkZWF0aCwgYXMgaGVyIGltbWVkaWF0ZSBhbmQgaGlnaC0gDQp7WyYqJl19ZXN0IG5lZWQsIG9mIHRoZSBJdGFsaWFuIHdpZmUgd2l0aCB0aGUgbWlzYWR2ZW50dXJlIG9mIA0KdGhlIGNyYXplZCBPcGhlbGlhLHtbJiomXX0gc28gcGl0aWZ1bCwgc28gYWNjaWRlbnRhbCwgc28gdW5oZXJvaWMsIA0KZW5kaW5nIGluIFwnXiBtdWRkeSBkZWF0aC5cIiBZZXQsIHd7WyYqJl19aXRoIGFsbCB0aGVpciBwb2ludHMgb2YgDQpjb250cmFzdCwgdGhlcmUgaXMgb25lIGNlbnRyYWwgcG9pbnQgb2YgYWZsZmluaXR5IHtbJiomXX1iZXR3ZWVuIHRoZSANCnBsYXlzLiBMaWtlIE1yLiBCcm93bmluZ1wncyBcIiBQYXJhY2Vsc3VzIFwnXCcgYW5kIGhpcyBcIiBTb3ItIA0KZGV7WyYqJl19bGxvLFwiIHRoZSBwb2VtcyBhcmUgY29tcGFuaW9uIHBvZW1zLCB3aGlsZSB0aGV5IGFyZSBzZXQgDQpvdmVyIG9uZSBhZ2FpbnN0IHR7WyYqJl19aGUgb3RoZXIgOyB0aGV5IGFyZSBjb250cmFzdGVkLCBidXQgY29tLSANCnBsZW1lbnRhcnkuXiBIYW1sZXQgcmVzZW1ibGVzIEVvbXtbJiomXX1lbyBpbiBoaXMgaW5hYmlsaXR5IA0KdG8gbWFpbnRhaW4gdGhlIHdpbGwgaW4gYSBmcnVpdGZ1bCByZWxhdGlvbiB3aXRoIGZhY3Rze1smKiZdfSBhbmQgDQp3aXRoIHRoZSByZWFsIHdvcmxkLCBsXmVpdGhlciBpcyBhIHJ1bGVyIG9mIGV2ZW50cy4gTHVjayANCmlzIGZvcmV2ZXJ7WyYqJl19IGFnYWluc3QgRW9tZW87IHRoZSBzdGFycyBhcmUgaW5hdXNwaWNpb3VzIHRvIA0KaGltLCBhbmQgdG8gc3VjaCBtZW4gdGhlIHN0YXtbJiomXX1ycyB3aWxsIGFsd2F5cyBiZSBpbmF1c3BpLSANCmNpb3VzLCBhcyB0byBhIEhlbnJ5IFkuIHRoZXkgd2lsbCBhbHdheXMgcHJvdmUge1smKiZdfWF1eGlsaWFyeS4gDQpXaXRoIEhhbWxldCB0byByZXNvbHZlIGlzIHRvIHN0YW5kIGF0IGdhemUgYmVmb3JlIGFuIGFjLSANCnRpb257WyYqJl19LCBhbmQgdG8gYmVjb21lIGluY2FwYWJsZSBvZiBhY2hpZXZpbmcgaXQuIFRoZSBuZWMtIA0KZXNzYXJ5IGNvdXBsaW5nIGJldHdlZXtbJiomXX1uIHRoZSBwdXJwb3NlIGFuZCB0aGUgZGVlZCBoYXMgDQpiZWVuIGZhdGFsbHkgZGlzc29sdmVkLiBUaGVyZSBpcyB0aGlzIGNlbnRye1smKiZdfWFsIHBvaW50IGluIA0KY29tbW9uIGJldHdlZW4gSGFtbGV0IGFuZCBFb21lbyDigJQgdGhlIHdpbGwgaW4gZWFjaCANCmlzIHNhcHB7WyYqJl19ZWQsIGJ1dCBpbiBlYWNoIGl0IGlzIHNhcHBlZCBieSBhIHRvdGFsbHkgZGlmZmVyZW50IA0KZGlzZWFzZSBvZiBzb3VsLmYgDQoNCntbJiomXX1UaGUgZXh0ZXJuYWwgYXRtb3NwaGVyZSBvZiB0aGUgdHJhZ2VkeSBvZiBSb21lbyBhbmQgDQpKdWxpZXReIGl0cyBJdGFsaWFuIGNve1smKiZdfWxvciBhbmQgd2FybXRoLCBoYXZlIGJlZW4gc28gZmluZWx5IA0KZmVsdCBieSBNLiBQaGlsYXImYW1wO3RlIENoYXNsZXMgdGhhdCB7WyYqJl19aGlzIHdvcmRzIGRlc2VydmUgdG8gYmUgDQphIHBvcnRpb24gb2YgZXZlcnkgY3JpdGljaXNtIG9mIHRoYXQgcGxheSA6IA0KDQoqIHtbJiomXX1TZWUgdGhlIHdyaXRlclwncyBsZWN0dXJlIG9uIHRoZSBwb2V0cnkgb2YgTXIuIFRlbm55c29uIGFuZCBNci4gQnJvd24tIA0KaW5nLHtbJiomXX0gXCJBZnRlcm5vb24gTGVjdHVyZXMsXCIgdm9sLiB2LiwgcC4gMTc4LiANCg0KZiBcIlJvbWVvIGlzIEhhbWxldCBpbiBsb3ZlLiBUaGVye1smKiZdfWUgaXMgdGhlIHNhbWUgcmljaCBleHViZXJhbmNlIG9mIHBhc3Npb24gDQphbmQgc2VudGltZW50IGluIHRoZSBvbmUgdGhhdCB0aGV7WyYqJl19cmUgaXMgb2YgdGhvdWdodCBhbmQgc2VudGltZW50IGluIHRoZSBvdGhlci4gDQpCb3RoIGFyZSBhYnNlbnQgYW5kIHNlbGYgLWludntbJiomXX1vbHZlZCA7IGJvdGggbGl2ZSBvdXQgb2YgdGhlbXNlbHZlcyBpbiBhIHdvcmxkIG9mIA0KaW1hZ2luYXRpb24uXCIg4oCUIEhhemxpdHtbJiomXX10LCBDaGFyYWN0ZXJzIG9mIFNoYWtzcGVhcmVecyBQbGF5c14gcC4gMTQ3IChlZC4gMTgxOCkuIA0KDQo5MCBTaGFrc3BlcmUg4oCUe1smKiZdfSBIaXMgTWluZCBhbmQgQXJ0LiANCg0KXCJXaG8gZG9lcyBub3QgcmVjYWxsIHRob3NlIGxvdmVseSBzdW1tZXIgbmlnaHRzIGluIA0Ke1smKiZdfXdoaWNoIHRoZSBmb3JjZXMgb2YgbmF0dXJlIHNlZW0gZWFnZXIgZm9yIGRldmVsb3BtZW50LCANCmFuZCBjb25zdHJhaW5lZCB0byB7WyYqJl19cmVtYWluIGluIGRyb3dzeSBsYW5ndW9yIOKAlCBhIG1pbmdMbmcgDQpvZiBpbnRlbnNlIGhlYXQsIHN1cGVyYWJ1bmRhbnQgZW5lcntbJiomXX1neSwgaW1wZXR1b3VzIHBvd2VyLCANCmFuZCBzaWxlbnQgZnJlc2huZXNzID8gDQoNClwiVGhlIG5pZ2h0aW5nYWxlIHNpbmdzIGluIHtbJiomXX10aGUgZGVwdGhzIG9mIHRoZSB3b29kcy4gDQpUaGUgZmxvd2VyLWN1cHMgYXJlIGhhbGYgY2xvc2VkLiBBIHBhbGUgbHVzdHJlIGlze1smKiZdfSBzaGVkIA0Kb3ZlciB0aGUgZm9saWFnZSBvZiB0aGUgZm9yZXN0cyBhbmQgdXBvbiB0aGUgYnJvdyBvZiB0aGUgDQpoaWxscy4gVGh7WyYqJl19ZSBkZWVwIHJlcG9zZSBjb25jZWFscywgd2UgYXJlIGF3YXJlLCBhIHByb2NyZS0gDQphbnQgZm9yY2UgOyB0aGUgbWVsYW5jaG9seXtbJiomXX0gcmVzZXJ2ZSBvZiBuYXR1cmUgaXMgdGhlIG1hc2sgDQpvZiBhIHBhc3Npb25hdGUgZW1vdGlvbi4gVW5kZXIgdGhlIHBhbGVuZXNze1smKiZdfSBhbmQgdGhlIA0KY29vbG5lc3Mgb2YgdGhlIG5pZ2h0LCB5b3UgZGl2aW5lIHJlc3RyYWluZWQgYXJkb3JzLCANCmFuZCBmbG93ZXJ7WyYqJl19cyB3aGljaCBicm9vZCBpbiBzaWxlbmNlLCBpbXBhdGllbnQgdG8gc2hpbmUgDQpmb3J0aC4gDQoNClwiIFN1Y2ggaXMgdGhlIHBlY3V7WyYqJl19bGlhciBhdG1vc3BoZXJlIHdpdGggd2hpY2ggU2hhay0gDQpzcGVyZSBoYXMgZW52ZWxvcGVkIG9uZSBvZiBoaXMgbW9zdCB3b25kZXtbJiomXX1yZnVsIGNyZWF0aW9ucyANCuKAlCBSb21lbyBhbmQgSnVsaWV0LiANCg0KXCJOb3Qgb25seSB0aGUgc3Vic3RhbmNlLCBidXQgdGhlIHtbJiomXX1mb3JtcyBvZiB0aGUgbGFuZ3VhZ2UgDQpjb21lIGZyb20gdGhlIFNvdXRoLiBJdGFseSB3YXMgdGhlIGludmVudG9yIG9mIHRoZSB0e1smKiZdfWFsZSA6IA0Kc2hlIGRyZXcgaXQgZnJvbSBoZXIgbmF0aW9uYWwgbWVtb3JpYWxzLCBoZXIgb2xkIGZhbWlseSANCmZldWRzLCBoZXJ7WyYqJl19IGFubmFscyBmaWxsZWQgd2l0aCBhbW9yb3VzIGFuZCBibG9vZHkgaW50cmlndWVzLiANCkluIGl0cyBseXJpYyBhY2NlbnQsIGl0c3tbJiomXX0gYmxpbmRuZXNzIG9mIHBhc3Npb24sIGl0cyBibG9zc29taW5nIA0KYW5kIGFidW5kYW50IHZpdGFsaXR5LCBpbiB0aGUgYnJpbGxpe1smKiZdfWFudCBpbWFnZXJ5LCBpbiB0aGUgYm9sZCANCmNvbXBvc2l0aW9uLCBubyBvbmUgY2FuIGZhaWwgdG8gcmVjb2duaXplIEl0YWx5LiB7WyYqJl19S29tZW8gDQp1dHRlcnMgaGltc2VsZiBsaWtlIGEgc29ubmV0IG9mIFBldHJhcmNoLCB3aXRoIHRoZSBzYW1lIA0KcmVmaW5lZCBjaHtbJiomXX1vaWNlIGFuZCB0aGUgc2FtZSBhbnRpdGhlc2VzIDsgdGhlcmUgaXMgdGhlIHNhbWUgDQpncmFjZSBhbmQgdGhlIHNhbWUgcGxlYXN1e1smKiZdfXJlIGluIHZlcnNpZnlpbmcgcGFzc2lvbiBpbiBhbC0gDQpsZWdvcmljYWwgc3Rhbnphcy4gSnVsaWV0LCB0b28sIGlzIHdob2xseSB7WyYqJl19dGhlIHdvbWFuIG9mIA0KSXRhbHkgOyB3aXRoIHNtYWxsIGdpZnQgb2YgZm9yZXRob3VnaHQsIGFuZCBhYnNvbHV0ZWx5IGluLSANCntbJiomXX1nZW51b3VzIGluIGhlciBhYmFuZG9uXiBzaGUgaXMgYXQgb25jZSB2ZWhlbWVudCBhbmQgDQpwdXJlLlwiIF4gDQoNClRoZSBzZWFzb3tbJiomXX1uIGlzIG1pZHN1bW1lci4gSXQgd2FudHMgYSBmb3J0bmlnaHQgYW5kIA0KDQp0b14gDQoNCm9kZCBkYXlzIG9mIExhbW1hcy10aWRle1smKiZdfSAoQXVndXN0IDFzdCkuIFdpbGhlbG0gU2NobGUtIA0KKiBcImpmZXR1ZGVzIHN1ciBXLiBTaGFrc3BlYXJlLCBNYXJpZSBTdHVhcnQse1smKiZdfSBldCBQQXJldGluL1wncHAuIDE0MSwgMTQyLiANCg0KSSANCg0KUm9tZW8gYW5kIEp1bGlldC4gOTEgDQoNCmdlbCwgYW5kIGFmdGVye1smKiZdfSBoaW0gSGF6SHR0LCBoYXZlIHNwb2tlbiBhcyBpZiB0aGUgYXRtb3MtIA0KcGhlcmUgb2YgdGhlIHBsYXkgd2VyZSB0aGF0IG9mIGF7WyYqJl19IHNvdXRoZXJuIHNwcmluZy5cIl4gU3VjaCANCmEgY3JpdGljaXNtIGluZGljYXRlcyBhIHdhbnQgb2Ygc2Vuc2liaWxpdHkgdG8gdGh7WyYqJl19ZSB0b25lIGFuZCANCmNvbG9yaW5nIG9mIHRoZSBwaWVjZS4gVGhlIG1pZC1KdWx5IGhlYXQgYnJvb2RzIG92ZXIgDQp0aGUgZml2ZXtbJiomXX0gdHJhZ2ljIGRheXMgb2YgdGhlIHN0b3J5LiBUaGUgbWFkIGJsb29kIGlzIHN0aXItIA0KcmluZyBpbiBtZW5cJ3MgdmVpbnMgZHVyaXtbJiomXX1uZyB0aGVzZSBob3Qgc3VtbWVyIGRheXMuZiANClRoZXJlIGlzIGEgdGh1bmRlcm91cyBmZWVsaW5nIGluIHRoZSBtb3JhbCBlbGVte1smKiZdfWVudC4gDQpUaGUgc3VtbWVyIHdhcyBuZWVkZWQgYWxzbywgdGhhdCB0aGUgbmlnaHRzIGFuZCBtb3JuLSANCmluZ3MgbWlnaHQgcXV7WyYqJl19aWNrbHkgbWVldC4gVGhlIG5pZ2h0cyBhcmUgdGhvc2UgbHVtaW5vdXMgDQpuaWdodHMgZnJvbSB3aGljaCB0aGUgZGF5aFwnZ2h0IHN7WyYqJl19ZWVtcyBuZXZlciB3aG9sbHkgdG8gZGUtIA0KcGFydCDigJQgbmlnaHRzIHRocm91Z2ggd2hpY2ggdGhlIHdhcm10aCBvZiBkYXkgc3tbJiomXX10aWxsIGhhbmdzIA0Kb3ZlciB0aGUgdHJlZXMgYW5kIGZsb3dlcnMuIA0KDQpJdCBpcyB3b3J0aCB3aGlsZSB0byBwYXVzZSBhbmQge1smKiZdfW5vdGUgU2hha3NwZXJlXCdzIG1ldGhvZCANCm9mIHRyZWF0aW5nIGV4dGVybmFsIG5hdHVyZSBhcyB0aGUgbWlsaWVpYyBvciBlbnZle1smKiZdfWxvcGluZyANCm1lZGl1bSBvZiBodW1hbiBwYXNzaW9uIDsgd2hpbGUgc29tZXRpbWVzLCBpbiBhZGRpdGlvbiwgDQpiZXR3ZWVuIGV7WyYqJl19eHRlcm5hbCBuYXR1cmUgYW5kIGh1bWFuIHBhc3Npb24gU2hha3NwZXJlIHJlLSANCnZlYWxzIGFjdXRlIHBvaW50cyBvZiBzcGVjaXtbJiomXX1hbCBjb250YWN0LiBXZSByZWNhbGwgaW4gS2luZyANCkxlYXIgdGhlIGxvbmcgYW5kIHRlcnJpYmxlIGRheSB3aGljaCBiZWdpbnMge1smKiZdfWF0IG1vb25zZXQgDQpiZWZvcmUgdGhlIGRhd24sIHdoZW4gS2VudCBpcyBwdXQgaW4gdGhlIHN0b2NrcywgYW5kIA0Kd2hpY2ggZW57WyYqJl19ZHMgd2l0aCB0aGUgc3Rvcm0gdXBvbiB0aGUgaGVhdGguIFRoZSBhZ29ueSANCmlzIGludGVuc2lmaWVkIGJ5IHRoZSBzdHJldGNoIHtbJiomXX1vZiB0aW1lLCBzdHJhaW5lZCB3aXRoIHBhc3Npb24gDQphbmQgZXZlbnRzLCB1bnRpbCB0aGUgdGltZSB0aW5nbGVzIGFuZCBpcyBpe1smKiZdfW50ZW5zZSA7IGl0IGN1bC0gDQptaW5hdGVzIGluIHRoZSBuaWdodCBvZiBmdXJpb3VzIHdpbmQgYW5kIHNwb3V0aW5nIHJhaW4sIA17WyYqJl19Cm9mIGxpZ2h0bmluZyBhbmQgb2YgdGh1bmRlciwgd2hlbiB0aGUgcm9vdHMgb2YgbmF0dXJlIA0Kc2VlbSBzaGFrZW4gaW4gdGhlIHtbJiomXX1zYW1lIHVwaGVhdmFsIG9mIHRoaW5ncyB3aGljaCBtYWtlcyANCmEgZGF1Z2h0ZXIgY3J1ZWwuIFdlIHJlbWVtYmVyIGhvdyBEdW5je1smKiZdfWFuIGJyZWF0aGVkIGEgDQpkZWxpY2F0ZSBhaXIgd2hlbiBoZSBlbnRlcmVkIHVuZGVyIHRoZSBtYXJ0bGV0LWhhdW50ZWQgDQpwb3J7WyYqJl19dGFscyBvZiBNYWNiZXRoLCBhcyB0aG91Z2ggbmF0dXJlIGluc2ludWF0ZWQgaW50byANCkR1bmNhblwncyBzZW5zZXMgYSB0cmVhY2h7WyYqJl19ZXJvdXMgcHJlc2VudGltZW50IG9mIHBlYWNlIGFuZCANCnNlY3VyaXR5IDsgYW5kIHRoZXJlIGZvbGxvd2VkIHVwb24gdGhpcyB0aHtbJiomXX1lIG5pZ2h0IHdoZW4gDQp0aGUgZWFydGggd2FzIGZldmVyb3VzIGFuZCB0aGUgYWlyIHdhcyBmaWxsZWQgd2l0aCBsYW1lbnQtIA0Ke1smKiZdfQ0KKiBTbyBhbHNvIEZsYXRoZSwgXCIgU2hha3NwZWFyZSxcIiBldGMuLCBwYXJ0IGlpLiwgcC4gMTg4LiANCg0KZiBcJ1wnXCdcJyBCZW52b2x7WyYqJl19aW8sIEZvciBub3cgdGhlc2UgaG90IGRheXMgaXMgdGhlIG1hZCBibG9vZCBzdGlycmluZy5cIiBTZWUgDQp0aGUgZXh0cmFjdCBmcm97WyYqJl19bSBEci4gVGhlb2RvciBTdHJhdGVyLCBpbiBILiBILiBGdXJuZXNzXCdzIHZhcmlvcnVtIGVkaXRpb24gb2YgDQpSb21lbyBhbmQgSnV7WyYqJl19bGlldCwgcHAuIDQ2MSwgNDYyLiANCg0KOTIgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KaW5ncyBhbmQgc3RyYXtbJiomXX1uZ2Ugc2NyZWFtcyBvZiBkZWF0aC4gV2UgcmVtZW1iZXIgdGhhdCANCm90aGVyIG5pZ2h0IG9mIHRlbXBlc3QqIGFuZCBwcm9kaWd5e1smKiZdfSB3aGljaCBwcmVjZWRlZCB0aGUgDQpmYWxsIG9mIEp1bGl1cyBDYWVzYXIsIHdoZW4gQ2Fzc2l1cywgY2F0Y2hpbmcgZXhoaWxhcmF7WyYqJl19dGlvbiANCmFuZCBlbmVyZ3kgZnJvbSB0aGUgbXV0aW55IGluIHRoZSBoZWF2ZW4sIHdhbGtlZCBhYm91dCANCnRoZSBzdHJlZXRzIHtbJiomXX11bmJyYWNlZCwgXCdcJyBzdWJtaXR0aW5nIGhpbSB1bnRvIHRoZSBwZXJpbG91cyANCm5pZ2h0LlwiIFRoZW4gaW4gY29udHJhc3Qgd2l0e1smKiZdfWggdGhlc2Ugd2UgdGhpbmsgb2YgdGhlIGx5cmljIA0KbG92ZSBvZiBMb3JlbnpvIGFuZCBKZXNzaWNhIHVuZGVyIHRoZSBzdGFyLXN7WyYqJl19b3duIHNreSwgZXYtIA0KZXJ5IG9yYiBvZiB3aGljaCBzaW5ncyBpbiBpdHMgbW90aW9uIGxpa2UgYW4gYW5nZWwgXCIgc3RpbGwgDQp7WyYqJl19cXVpcmluZyB0byB0aGUgeW91bmctZXllZCBjaGVydWJpbXMgZiB3ZSB0aGluayBvZiB0aGUgDQpGb3Jlc3Qgb2YgQXJkZW4sIHdpdHtbJiomXX1oIGl0cyB0ZW1wZXJlZCBsaWdodCBhbmQgc2hhZGUsIGl0cyANCnN0cmVhbXMgd2hlcmUgdGhlIGRlZXIgY29tZXMgdG8gZHJpbmsse1smKiZdfSBhbmQgZ3JlZW4gaGF1bnRzIA0KaW4gd2hpY2ggYWR2ZXJzaXR5IGdyb3dzIHN3ZWV0IDsgd2UgdGhpbmsgb2YgdGhlIG1vdW4tIA17WyYqJl19CnRhaW4gY291bnRyeSBvZiBXYWxlcywgYW5kIHRoZSBzYWx1dGF0aW9ucyB0byB0aGUgaGVhdmVuIA0Kb2YgdGhlIHJveWFsIHlvdXtbJiomXX10aHMgd2hvbSBDeW1iZWxpbmUgaGFkIGxvc3QuIFRoZSBhaXIgDQp3aGljaCBzdXJyb3VuZHMgdGhlIGlzbGFuZCBvZiBQcm9zcGVye1smKiZdfW8gaXMgb25lIG9mIGVuY2hhbnQtIA0KbWVudCBmaXQgdG8gYnJlYXRoZSB1cG9uIG1hcnZlbCBhbmQgYmVhdXR5IDogDQoNClwiIFRoe1smKiZdfWUgaXNsZSBpcyBmdWxsIG9mIG5vaXNlcywgDQpTb3VuZHMgYW5kIHN3ZWV0IGFpcnMgdGhhdCBnaXZlIGRlbGlnaHQgYW5kIGh1cnR7WyYqJl19IG5vdC5cIiANCg0KSW4gdGhlIHBsYXkgb2YgUGVyaWNsZXNeIHdlIGFyZSBmb3JldmVyIGluIHByZXNlbmNlIG9mIA0KdGhlIHdhdGV7WyYqJl19cnMsIGZ1cmlvdXMgb3Igc2VyZW5lIDsgYW5kIHRoZWlyIHZvaWNlcyBvZiB0dW11bHQgDQpvciBvZiBjYWxtIGFyZSBmb3JldmVyIHtbJiomXX1taW5nbGluZyB3aXRoIHRoZSBodW1hbiB2b2ljZXMg4oCUIA0Kd2l0aCB0aGUgc29ycm93IG9mIHRoZSBiZXJlYXZlZCBmYXRoZXIse1smKiZdfSBhbmQgdGhlIG1hZ2ljYWwgDQpzaW5naW5nIG9mIHRoZSBzZWEtcHVyZSBhbmQgc2VhLXNlbnNpdGl2ZSBNYXJpbmEuIE9uY2UgDQp7WyYqJl19YWdhaW4sIGluIFRpbW9uXiB3ZSBhcmUgaW4gcHJlc2VuY2Ugb2YgdGhlIHNlYSA6IGJ1dCBpdCBpcyANCm5vdCB0aGUgc3Rvcm15IHtbJiomXX13YXRlcnMgb2YgUGVyaWNsZXMgdGhhdCB3ZSBnYXplIGF0IDsgaXQgaXMgDQpub3QgdGhlIHllbGxvdyBzYW5kcyBvZiBQcm9zcGVye1smKiZdfW9cJ3MgaXNsYW5kLCB3aGVyZSB0aGUgc2VhLSANCm55bXBocyBkYW5jZSBhbmQgY291cnRlc3kgYW5kIHRha2UgaGFuZHMgOyBpbiBUe1smKiZdfWltb24gaXQgDQppcyBuZWl0aGVyIHRoZSBzdHJlbmd0aCBub3IgdGhlIGJlYXV0eSBvZiB0aGUgd2F2ZXMgd2UgDQphcmUgbWFkZSB7WyYqJl19dG8gZmVlbCA6IA0KDQpcIiBUaW1vbiBoYXRoIG1hZGUgaGlzIGV2ZXJsYXN0aW5nIG1hbnNpb24gDQpVcG9uIHRoZSBiZWFjaGVkIHZ7WyYqJl19ZXJnZSBvZiB0aGUgc2FsdCBmbG9vZCA7IA0KV2hvIG9uY2UgYSBkYXkgd2l0aCBoaXMgZW1ib3NzZWQgZnJvdGggDQpUaGUgdHVyYntbJiomXX11bGVudCBzdXJnZSBzaGFsbCBjb3Zlci5cIiANCg0KV2Ugc2VlIHRoZSBjb2xkIHdoaXRlIGxpcCBvZiB0aGUgd2F2ZSBjdXJsaW5nIHtbJiomXX1vdmVyLCBhbmQgDQpjdXJsaW5nIG92ZXIgYWdhaW4sIHdpdGggYml0dGVyIG1vbm90b255IHVwb24gdGhlIHNhbmQgOyANCg0KUm9te1smKiZdfWVvIGFuZCBKdWxpZXQuIDkzIA0KDQphbmQgaXQgaXMgdGhlcmUsIHRvdWNoZWQgYnkgdGhlIHNhbHQgYW5kIHBpdGlsZXNzIGVkZ2V7WyYqJl19IG9mIA0KdGhlIHNlYSwgdGhhdCB0aGUgY29ycHNlIG9mIHRoZSBkZXNwZXJhdGUgbWFuIG11c3QgbGllIA0KYWJhbmRvbmVkLiANCntbJiomXX0NClJvbWVvIGlzIG5vdCB0aGUgZGV0ZXJtaW5lciBvZiBldmVudHMgaW4gdGhlIHBsYXkuIA0KSGUgZG9lcyBub3Qgc3RhbmQgcHJve1smKiZdfW1pbmVudGx5IGZvcndhcmQsIGEgc2luZ2xlIGZpZ3VyZSANCmluIHRoZSBmaXJzdCBzY2VuZSwgYXMgZG9lcyBNYXJsb3dlXCdzIEJhe1smKiZdfXJyYWJhcywgYW5kIFNoYXQgDQpzcGVyZVwncyBSaWNoYXJkIElJSS4sIHNvbGlsb3F1aXppbmcgYWJvdXQgaGlzIG93biBwZXJzb24ge1smKiZdfQ0KYW5kIGhpcyBwbGFucy4gVGhlIGZpcnN0IHNjZW5lIG9mIHRoZSBwbGF5IHByZXBhcmVzIGEgDQpwbGFjZSBmb3IgUm9tZW8gOyB7WyYqJl19aXQgcHJlc2VudHMgdGhlIG1vcmFsIGVudmlyb25tZW50IG9mIA0KdGhlIGhlcm8gOyBpdCBleGhpYml0cyB0aGUgZmV1ZCBvZiB0aHtbJiomXX1lIGhvdXNlcyB3aGljaCBkZXRlcsKrIA0KbWluZXMgdGhlIGxvdmVyc1wnIGZhdGUsIGFsdGhvdWdoIHRoZXksIGZvciBhIGJyaWVmIHtbJiomXX1zcGFjZSwgDQpmb3JnZXQgdGhlc2UgZ3JpbSByZWFsaXRpZXMgaW4gdGhlIHJhcHR1cmUgb2YgdGhlaXIgam95LiANClRoZSBzdHJpe1smKiZdfWZlIG9mIHRoZSBob3VzZXMgQ2FwdWxldCBhbmQgTW9udGFndWUgYXBwZWFycyANCmluIHRoaXMgZmlyc3Qgc2NlbmUgaW4gaXRzIHR7WyYqJl19cml2aWFsLCBsdWRpY3JvdXMgYXNwZWN0IDsgdGhyZWF0LSANCmVuaW5nLCBob3dldmVyLCBpbiBhIG1vbWVudCB0byBiZWNvbWUgZXtbJiomXX1hcm5lc3QgYW5kIGZvci0gDQptaWRhYmxlLiBUaGUgc2VydmluZy1tZW4gR3JlZ29yeSBhbmQgU2Ftc29uIGJpdGluZyANCnRodW1ie1smKiZdfXMgYXQgdGhlIHNlcnZpbmctbWVuIEFicmFoYW0gYW5kIEJhbHRoYXNhciwgdGhpcyANCmlzIHRoZSBvYnZlcnNlIG9mIHRoZSB0cmF7WyYqJl19Z2ljIHNob3cuIFR1cm4gdG8gdGhlIG90aGVyIA0Kc2lkZSwgYW5kIHdoYXQgZG8gd2Ugc2VlID8gVGhlIGRlYWQgYm9kaWVzIG9mIHtbJiomXX15b3VuZyANCmFuZCBiZWF1dGlmdWwgaHVtYW4gY3JlYXR1cmVzIOKAlCBvZiBUeWJhbHQgYW5kIFBhcmlzLCBvZiANCkp1bGlldCBhe1smKiZdfW5kIFJvbWVvIOKAlCB0aGUgYmxvb2R5IGhhcnZlc3Qgb2YgdGhlIHN0cmlmZS4gVGhpcyANCmZpcnN0IHNjZW5lLCBoYWxmIGx1ZGl7WyYqJl19Y3JvdXMgYnV0IHdob2xseSBncmF2ZSwgd2FzIHdyaXR0ZW4gDQpub3Qgd2l0aG91dCBhIHJlZmVyZW5jZSB0byB0aGUgZmluYWwgc3tbJiomXX1jZW5lLiBUaGUgYmFuZHlpbmcgDQpvZiB2dWxnYXIgd2l0IGJldHdlZW4gdGhlIHNlcnZhbnRzIG11c3Qgbm90IGhpZGUgZnJvbSANe1smKiZdfQp1cyBhIGNlcnRhaW4gZ3JpbSBpcm9ueSB3aGljaCB1bmRlcmxpZXMgdGhlIG9wZW5pbmcgb2YgDQp0aGUgcGxheS4gSGVyZSB0aGV7WyYqJl19IHR3byBvbGQgcml2YWxzIG1lZXQgOyB0aGV5IHdpbGwgbWVldCANCmFnYWluLiBBbmQgdGhlIFByaW5jZSBhcHBlYXJzIGluIHRoZXtbJiomXX0gbGFzdCBzY2VuZSBhcyBpbiB0aGUgDQpmaXJzdC4gVGhlbiBvbGQgQ2FwdWxldCBhbmQgTW9udGFndWUgd2lsbCBiZSBwYWNpZmlle1smKiZdfWQgOyANCnRoZW4gdGhleSB3aWxsIGNvbnNlbnQgdG8gbGV0IHRoZWlyIGRlc29sYXRlZCBsaXZlcyBkZWNsaW5lIA0KdG8gdGhlIGd7WyYqJl19cmF2ZSBpbiBxdWlldG5lc3MuIE1lYW53aGlsZSBzZXJ2aW5nLW1lbiB3aXRoIA0KYSBzZW5zZSBvZiBwZXJzb25hbCBkaWduaXR5IHtbJiomXX1tdXN0IGJpdGUgdGhlaXIgdGh1bWJzLCBhbmQgDQpvdGhlciBpbmNpZGVudHMgbWF5IGhhcHBlbi4gDQoNCkZldyBjcml0aWNzIG9me1smKiZdfSB0aGUgcGxheSBoYXZlIG9taXR0ZWQgdG8gY2FsbCBhdHRlbnRpb24gDQp0byB0aGUgZmFjdCB0aGF0IFNoYWtzcGVyZSByZXByZXN7WyYqJl19ZW50cyBSb21lbyBhcyBhbHJlYWR5IA0KaW4gbG92ZSBiZWZvcmUgaGUgZ2l2ZXMgaGlzIGhlYXJ0IHRvIEp1bGlldCDigJQgaW4gbHtbJiomXX1vdmUgd2l0aCANCg0KOTQgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KdGhlIHBhbGUtY2hlZWtlZCwgZGFyay1le1smKiZdfXllZCwgZGlzZGFpbmZ1bCBSb3NhbGluZS4gXCIgSWYgd2EgDQphcmUgcmlnaHQsXCIgQ29sZXJpZGdlIHdyb3RlLCBcIi4uLiBpbiBwcm97WyYqJl19bm91bmNpbmcgdGhpcyANCm9uZSBvZiBTaGFrc3BlYXJlXCdzIGVhcmx5IGRyYW1hcywgaXQgYWZmb3JkcyBhIHN0cm9uZyBpbi0gDQp7WyYqJl19c3RhbmNlIG9mIHRoZSBmaW5lbmVzcyBvZiBoaXMgaW5zaWdodCBpbnRvIHRoZSBuYXR1cmUgb2YgDQp0aGUgcGFzc2lvbnMgdGhhdHtbJiomXX0gUm9tZW8gaXMgaW50cm9kdWNlZCBhbHJlYWR5IGxvdmUtYmUtIA0Kd2lsZGVyZWQuXCIgVGhlIGNpcmN1bXN0YW5jZSBpcyBub3Qgb3tbJiomXX1mIFNoYWtzcGVyZVwncyBpbi0gDQp2ZW50aW9uLiBIZSBoYXMgcmV0YWluZWQgaXQgZnJvbSBCcm9va2VcJ3MgcG9lbSA7IGJ1dCANCnR7WyYqJl19aGF0IGhlIHRob3VnaHQgZml0IHRvIHJldGFpbiB0aGUgY2lyY3Vtc3RhbmNlLCBmZWFybGVzc2x5IA0KZGVjbGFyaW5nIHRoYXQgUntbJiomXX1vbWVvXCdzIHN1cHJlbWUgbG92ZSBpcyBub3QgaGlzIGZpcnN0IGxvdmUsIA0KaXMgbm90ZXdvcnRoeS4gVGhlIGNvbnRyYXN0IGluIHtbJiomXX10aGUgbWluZCBvZiB0aGUgZWFybGllciANCnBvZXQgYmV0d2VlbiBSb3NhbGluZSwgd2hvIA0KDQpcIiBGcm9tIGhlciB5b3V0aCB3YXtbJiomXX1zIGZvc3RlcmVkIGV2ZXJtb3JlIA0KV2l0aCB2ZXJ0dWVzIGZvb2RlLCBhbmQgdGF1Z2h0IGluIHNjaG9sZSwgb2Ygd2lzZG9tZXMge1smKiZdfXNraWxmdWxsIGxvcmUsXCcqIA0KDQphbmQgSnVsaWV0LCB3aG8geWllbGRzIHRvIGhlciBwYXNzaW9uLCBhbmQgYnkgaXQgaXMgZGUme1smKiZdfWx0OyANCnN0cm95ZWQsIHdhcyBhIGNvbnRyYXN0IHdoaWNoIFNoYWtzcGVyZSByZWplY3RlZCBhcyBhIA0KcGllY2Ugb2YgZm9ybWF7WyYqJl19bCBhbmQgYmFycmVuIG1vcmFsaXR5LiBPZiB3aGF0IGNoYXJhY3RlciANCmlzIHRoZSBsb3ZlIG9mIFJvbWVvIGZvciBSb3NhbGluZXtbJiomXX0gJSBSb21lb1wncyBpcyBub3QgYXUgDQphY3RpdmUsIHByYWN0aWNhbCBuYXR1cmUgbGlrZSBIZW5yeSBWLiA7IG5laXRoZXIgaXMgaHtbJiomXX1lIA0KZ3JlYXQgYnkgaW50ZWxsZWN0LCBhIHRoaW5rZXIsIGluIGFueSBoaWdoIHNlbnNlIG9mIHRoZSANCndvcmQuIEJ1dCBpZiBoe1smKiZdfWUgbGl2ZXMgYW5kIG1vdmVzIGFuZCBoYXMgaGlzIGJlaW5nIG5laS0gDQp0aGVyIGhlcm9pY2FsbHkgaW4gdGhlIG9iamVjdGl2ZSB7WyYqJl19d29ybGQgb2YgYWN0aW9uLCBsaWtlIEhlbi0gDQpyeSB2Liwgbm9yIGluIHRoZSB3b3JsZCBvZiB0aGUgbWluZCwgbGlrZSBIYW1sZXtbJiomXX10LCBhbGwgdGhlIA0KbW9yZSBoZSBsaXZlcywgbW92ZXMsIGFuZCBoYXMgaGlzIGJlaW5nIGluIHRoZSB3b3JsZCBvZiANCm1lcmUge1smKiZdfWVtb3Rpb24uIFRvIGhpbSBlbW90aW9uIHdoaWNoIGVucmljaGVzIGFuZCBleC0gDQphbHRzIGl0c2VsZiB3aXRoIHRoZSBpbWFnaW57WyYqJl19YXRpb24sIGVtb3Rpb24gYXBhcnQgZnJvbSANCnRob3VnaHQgYW5kIGFwYXJ0IGZyb20gYWN0aW9uLCBpcyBhbiBlbmQgaW4gaXRzZXtbJiomXX1sZi4gDQpUaGVyZWZvcmUgaXQgZGVsaWdodHMgaGltIHRvIGhvdmVyIG92ZXIgaGlzIG93biBzZW50aS0gDQptZW50LCB0byBicm9ve1smKiZdfWQgdXBvbiBpdCwgdG8gZmVlZCB1cG9uIGl0IHJpY2hseS4gUm9tZW8gDQptdXN0IG5lZWRzIHN0ZWVwIGhpcyB3aG9sZSBuYXR1cmV7WyYqJl19IGluIGZlZWxpbmcsIGFuZCwgaWYgDQpKdWxpZXQgZG9lcyBub3QgYXBwZWFyLCBoZSBtdXN0IGxvdmUgUm9zYWxpbmUuIA0KDQpOZXtbJiomXX12ZXJ0aGVsZXNzLCB0aGUgbG92ZSBvZiBSb3NhbGluZSBjYW5ub3QgYmUgdG8gUm9tZW8gDQphcyBpcyB0aGUgbG92ZSBvZiBKdWxpe1smKiZdfWV0LiBJdCBpcyBhIGxhdyBpbiBtb3JhbCBkeW5hbWljcywgDQp0b28gbGl0dGxlIHJlY29nbml6ZWQsIHRoYXQgdGhlIGJyZWFkdGh7WyYqJl19IGFuZCBoZWlnaHQgYW5kIA0KcGVybWFuZW5jZSBvZiBhIGZlZWxpbmcgZGVwZW5kLCBpbiBhIGNlcnRhaW4gZGVncmVlIGF0IA0KbHtbJiomXX1lYXN0LCB1cG9uIHRoZSBhY3R1YWwgZm9yY2Ugb2YgaXRzIGV4dGVybmFsIGNhdXNlLiBObyANCg0KUm9tZW8gYW5kIEp1bGlldC4ge1smKiZdfTk1IA0KDQphcmRvciBvZiBzZWxmIC1wcm90ZWN0aW9uLCBubyBhYmFuZG9ubWVudCBwcmVwZW5zZSwgbm8gDQpzZWxmLXN1c3RhaW57WyYqJl19ZWQgZW5lcmd5LCBjYW4gY3JlYXRlIGFuZCBzaGFwZSBhIHBhc3Npb24gb2YgDQplcXVhbCB2b2x1bWUsIGFuZCBwb3NzZXNzaW5nIHtbJiomXX1hIGxpa2UgY2VydGFpbnR5IGFuZCBkaXJlY3QtIA0KbmVzcyBvZiBhZHZhbmNlLCB3aXRoIGEgcGFzc2lvbiBzaGFwZWQsIGRldGVye1smKiZdfW1pbmVkLCBhbmQgDQpmb3JldmVyIHJlaW52aWdvcmF0ZWQgYnkgcG9zaXRpdmUsIG9iamVjdGl2ZSBmYWN0LiBTaGFrLSANCnNwZXJ7WyYqJl19ZSBoYWQgYmVjb21lIGFzc3VyZWQgdGhhdCB0aGUgZmFjdHMgb2YgdGhlIHdvcmxkIGFyZSANCndvcnRoeSB0byBjb21tYW5kIG91cntbJiomXX0gaGlnaGVzdCBhcmRvciwgb3VyIG1vc3QgcmVzb2x1dGUgDQphY3Rpb24sIG91ciBtb3N0IHNvbGVtbiBhd2UgOyBhbmQgdGhhdCB0e1smKiZdfWhlIG1vcmUgd2UgcGVuLSANCmV0cmF0ZSBpbnRvIGZhY3QsIHRoZSBtb3JlIHdpbGwgb3VyIG5hdHVyZSBiZSBxdWlja2VuZWQsIA17WyYqJl19Cg0KZW5yaWNoZWQsIGFuZCBleGFsdGVkLiBUaGUgcGxheSBvZiBSb21lbyBhbmQgSnVsaWV0IA0KDQpleGhpYml0cyB0byB1cyB0aHtbJiomXX1lIGRlbGl2ZXJhbmNlIG9mIGEgbV5uIGZyb20gZHJlYW0gaW50byANCnJlYWxpdHkuIEluIFJvbWVvXCdzIGxvdmUgb2YgUm9zYWxpbntbJiomXX1lIHdlIGZpbmQgcmVwcmVzZW50LSANCmVkIHRoZSBkcmVhbS1saWZlIGFzIHlldCB1bmRpc3R1cmJlZCwgdGhlIGFiYW5kb25tZW50e1smKiZdfSB0byANCmVtb3Rpb24gZm9yIGVtb3Rpb25cJ3Mgc2FrZS4gUm9tZW8gbnVyc2VzIGhpcyBsb3ZlIDsgaGUgDQpzaGVkcyB0ZWFycyA7e1smKiZdfSBoZSBjdWx0aXZhdGVzIHNvbGl0dWRlIDsgaGUgdXR0ZXJzIGhpcyBncm9hbnMgDQppbiB0aGUgaGVhcmluZyBvZiB0aGUgY29tZm97WyYqJl19cnRhYmxlIGZyaWFyOyBoZSBzdGltdWxhdGVzIGhpcyANCmZhbmN5IHdpdGggdGhlIHNvdWdodC1vdXQgcGhyYXNlcywgdGhlIGN1cntbJiomXX1pb3VzIGFudGl0aGVzZXMsIA0Kb2YgdGhlIGFtb3JvdXMgZGlhbGVjdCBvZiB0aGUgcGVyaW9kIGlcIl4gDQoNClwiIFdoeSwgdGhlbix7WyYqJl19IGJyYXdsaW5nIGxvdmUgISBsb3ZpbmcgaGF0ZSAhIA0KYW55dGhpbmcsIG9mIG5vdGhpbmcgZmlyc3QgY3JlYXRlICEgDQpoZWF2eXtbJiomXX0gbGlnaHRuZXNzICEgc2VyaW91cyB2YW5pdHkgISANCk1pc3NoYXBlbiBjaGFvcyBvZiB3ZWxsLXNlZW1pbmcgZm9ybXMgISANCkZle1smKiZdfWF0aGVyIG9mIGxlYWQsIGJyaWdodCBzbW9rZSwgY29sZCBmaXJlLCBzaWNrIGhlYWx0aCAhXCIgDQoNCkhlIGJyb29kcyB1cG9uIHRoe1smKiZdfWUgbHV4dXJ5IG9mIGhpcyBzb3Jyb3cuIEFuZCB0aGVuIA0KUm9tZW8gbWVldHMgSnVsaWV0LiBKdWxpZXQgaXMgYW4gYWN0dWFsIGZ7WyYqJl19b3JjZSBiZXlvbmQgDQphbmQgYWJvdmUgaGltc2VsZiwgYSB2ZXJpdGFibGUgZmFjdCBvZiB0aGUgd29ybGQuIE5ldmVyLSANCnRoZXtbJiomXX1sZXNzLCB0aGVyZSByZW1haW5zIGEgY2VydGFpbiBjbGluZ2luZyBzZWxmIC1jb25zY2lvdXMtIA0KbmVzcywgYW4gYWJzZW5jZSBve1smKiZdfWYgcGVyZmVjdCBzaW1wbGljaXR5IGFuZCBkaXJlY3RuZXNzLCBldmVuIA0KaW4gUm9tZW9cJ3MgdmVyeSByZWFsIGxvdmUgb2YgSnVse1smKiZdfWlldC4gVGhpcyBpcyBwbGFjZWQgYnkgDQpTaGFrc3BlcmUgaW4gZGVzaWduZWQgY29udHJhc3Qgd2l0aCB0aGUgc2luZ2xlbmVzcyB7WyYqJl19b2YgSnUtIA0KbGlldFwncyBuYXR1cmUsIGhlciBkaXJlY3QgdW5lcnJvbmVvdXMgcGFzc2lvbiwgd2hpY2ggZ29lcyANCg0KKiBNcnN7WyYqJl19LiBKYW1lc29uIGhhcyBub3RpY2VkIHRoYXQgaW4gQWxsIFwnNSBXZWxsIHRoYXQgRW5kcyBXZWxsIEhlbGVuYSANCm1vY2tpbmdseSB7WyYqJl19cmVwcm9kdWNlcyB0aGlzIHN0eWxlIG9mIGFtb3JvdXMgYW50aXRoZXNlcyAoYWN0IGkuLCBzYy4gMSwgMTEuIElTTy0gDQpJU08pLntbJiomXX0gSGVsZW5hLCB3aG8gbGl2ZXMgc28gZWZmZWN0aXZlbHkgaW4gdGhlIHdvcmxkIG9mIGZhY3QsIGlzIGNvbnRlbXB0dW91cyANCnRve1smKiZdfXdhcmRzIGFsbCB1bnJlYWxpdHkgYW5kIGFmZmVjdGF0aW9uLiANCg0KOTYgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiB7WyYqJl19DQoNCnN0cmFpZ2h0IHRvIGl0cyBvYmplY3QsIGFuZCBuZXZlciBicm9vZHMgdXBvbiBpdHNlbGYuIEl0IA0KaXMgUm9tZW8gd2hvIHtbJiomXX1zYXlzIGluIHRoZSBnYXJkZW4gc2NlbmUsIA0KDQpcIiBIb3cgc2lsdmVyLXN3ZWV0IHNvdW5kIGxvdmVyc1wnIHRvbmd1ZXMgYnkgbml7WyYqJl19Z2h0LCANCkxpa2Ugc29mdGVzdCBtdXNpYyB0byBhdHRlbmRpbmcgZWFycyAhXCIgDQoNCkhlIGhhcyBvdmVyaGVhcmQgdGhlIHZvaWN7WyYqJl19ZSBvZiBKdWxpZXQsIGFuZCBoZSBjYW5ub3QgYW4tIA0Kc3dlciBoZXIgY2FsbCB1bnRpbCBoZSBoYXMgZHJhaW5lZCB0aGUgc3dlZXtbJiomXX10bmVzcyBvZiB0aGUgDQpzb3VuZC4gSGUgaXMgb25lIG9mIHRob3NlIG1lbiB0byB3aG9tIHRoZSBlbW90aW9uYWwgDQphdG1vc3Boe1smKiZdfWVyZSB3aGljaCBpcyBnaXZlbiBvdXQgYnkgdGhlIHJlYWwgb2JqZWN0LCBhbmQgDQp3aGljaCBzdXJyb3VuZHMgaXQgbGlrZSBhIGx7WyYqJl19dW1pbm91cyBtaXN0LCBpcyBtb3JlIGltcG9yLSANCnRhbnQgdGhhbiB0aGUgcmVhbGl0eSBpdHNlbGYuIEFzIGhlIHR1cm5zIHNsb3tbJiomXX13bHkgYXdheSwgDQpsb2F0aCB0byBsZWF2ZSwgUm9tZW8gZXhjbGFpbXMsIA0KDQpcIiBMb3ZlIGdvZXMgdG93YXJkIGxvdmUsIGFzIHtbJiomXX1zY2hvb2xib3lzIGZyb20gdGhlaXIgYm9va3MgOyANCkJ1dCBsb3ZlIGZyb20gbG92ZSwgdG93YXJkIHNjaG9vbCB3aXRoIGhlYXZ5e1smKiZdfSBsb29rcy5cIiANCg0KQnV0IEp1bGlldFwncyBmaXJzdCB0aG91Z2h0IGlzIG9mIHRoZSBkYW5nZXIgdG8gd2hpY2ggUm8tIA0KbWVvIHtbJiomXX1pcyBleHBvc2VkIGluIGhlciBmYXRoZXJcJ3MgZ3JvdW5kcy4gSXQgaXMgSnVsaWV0IHdobyANCndpbGwgbm90IGFsbG93IHRoZSB1dHtbJiomXX10ZXJhbmNlIG9mIGFueSBvYXRoLCBiZWNhdXNlIHRoZSB3aG9sZSANCnJlYWxpdHkgb2YgdGhhdCBuaWdodFwncyBldmVudCwgdGVycntbJiomXX1pYmxlIGluIGl0cyBqb3ksIGhhcyBmbGFzaGVkIA0KdXBvbiBoZXIgOyBhbmQgc2hlLCB3aG8gbGl2ZXMgaW4gbm8gZ29sZGVuIGhhe1smKiZdfXplIG9mIGx1eHUtIA0KcmlvdXMgZmVlbGluZywgaXMgYXJvdXNlZCBhbmQgYWxhcm1lZCBieSB0aGUgc3VkZGVuIHNob2NrIA0Kb2Z7WyYqJl19IHRvbyBtdWNoIGhhcHBpbmVzcy4gSXQgaXMgSnVsaWV0IHdobyB1c2VzIGRpcmVjdCBhbmQgDQpzaW1wbGUgd29yZHMgOiANCg0KXCJ7WyYqJl19IEZhcmV3ZWxsIGNvbXBsaW1lbnQgISANCkRvc3QgdGhvdSBsb3ZlIG1lPyBJIGtub3cgdGhvdSB3aWx0IHNheSBcJ0F5LCogDQpBbmR7WyYqJl19IEkgd2lsbCB0YWtlIHRoeSB3b3JkLlwiIA0KDQpTaGUgaGFzIGRlY2xhcmVkIHRoYXQgaGVyIGJvdW50eSBpcyBtZWFzdXJlbGVzcyx7WyYqJl19IHRoYXQgaGVyIA0KbG92ZSBpcyBpbmZpbml0ZSwgd2hlbiBhIHN1ZGRlbiBwcm9zYWljIGludGVycnVwdGlvbiBvYy0gDQpjdXJzIHtbJiomXX06IHRoZSBudXJzZSBjYWxscyB3aXRoaW4sIEp1bGlldCBsZWF2ZXMgdGhlIHdpbmRvdywgDQphbmQgUm9tZW8gaXMgbGVmdCBhbG9ue1smKiZdfWUuIElzIHRoaXMgbmV3IGpveSBhIGRyZWFtID8gDQoNClwiIGJsZXNzZWQsIGJsZXNzZWQgbmlnaHQgISBJIGFtIGFmZWFyZCwgDQpCe1smKiZdfWVpbmcgaW4gbmlnaHQsIGFsbCB0aGlzIGlzIGJ1dCBhIGRyZWFtLCANClRvbyBmbGF0dGVyaW5nLXN3ZWV0IHRvIGJlIHN1YnN0YW57WyYqJl19dGlhbC5cIiANCg0KQnV0IEp1bGlldCBoYXN0aWx5IHJlYXBwZWFycyB3aXRoIHdvcmRzIHVwb24gaGVyIGxpcHMgDQp3aGljaCBtYWt7WyYqJl19ZSBpdCBldmlkZW50IHRoYXQgaXQgaXMgbm8gZHJlYW0gb2Ygam95IGluIHdoaWNoIA0Kc2hlIGxpdmVzIDogDQoNClJvbWVvIGFuZHtbJiomXX0gak1saWV0LiA5NyANCg0KKiogVGhyZWUgd29yZHMsIGRlYXIgUm9tZW8sIGFuZCBnb29kIG5pZ2h0IGluZGVlZC4gDQpJZiB0aGF0e1smKiZdfSB0aHkgYmVudCBvZiBsb3ZlIGJlIGhvbm9yYWJsZSwgDQpUaHkgcHVycG9zZSBtYXJyaWFnZSwgc2VuZCBtZSB3b3JkIHRvLW1vcnJ7WyYqJl19b3csIA0KQnkgb25lIHRoYXQgSVwnbGwgcHJvY3VyZSB0byBjb21lIHRvIHRoZWUsIA0KV2hlcmUsIGFuZCB3aGF0IHRpbWUgdGhvdSB7WyYqJl19d2lsdCBwZXJmb3JtIHRoZSByaXRlLCANCkFuZCBhbGwgbXkgZm9ydHVuZXMgYXQgdGh5IGZvb3QgSVwnbGwgbGF5LCANCkFuZCBmb2x7WyYqJl19bG93IHRoZWUsIG15IGxvcmQsIHRocm91Z2hvdXQgdGhlIHdvcmxkLlwiIA0KDQpUaGUgd2hvbGVuZXNzIGFuZCBjcnlzdGFsbGluZSB7WyYqJl19cHVyaXR5IG9mIEp1bGlldFwncyBwYXNeIA0Kc2lvbiBpcyBmbGF3ZWQgYnkgbm8gZG91YmxlIHNlbGYuIFNoZSBpcyBhbGwgYW5kIGV7WyYqJl19bnRpcmUgaW4gDQplYWNoIGFjdCBvZiBoZXIgc291bC4gV2hpbGUgUm9tZW8sIG9uIHRoZSBjb250cmFyeSwgaXMgDQphcyB5ZXQgYntbJiomXX11dCBoYWxmIGRlbGl2ZXJlZCBmcm9tIHNlbGYtY29uc2Npb3VzbmVzcy4gDQoNCklmIFNoYWtzcGVyZSB2ZW50dXJlZCB1cG9uIGFue1smKiZdfXkgZ2VuZXJhbGl6YXRpb24gYWJvdXQgDQp3b21lbiwgaXQgd2FzIHBlcmhhcHMgdGhpcyDigJQgdGhhdCB0aGUgbmF0dXJlcyBvZiB7WyYqJl19d29tZW4gDQphcmUgdXN1YWxseSBtYWRlIHVwIG9mIGZld2VyIGVsZW1lbnRzIHRoYW4gdGhvc2Ugb2YgbWVuLCANCmJ1dCB0aGF0IHtbJiomXX10aG9zZSBlbGVtZW50cyBhcmUgb3JkaW5hcmlseSBpbiBqdXN0ZXIgcG9pc2UsIA0KbW9yZSBmdWxseSBvcmdhbml6ZWQsIG1vcmUge1smKiZdfWNvaGVyZW50IGFuZCBjb21wYWN0IDsgYW5kIA0KdGhhdCwgY29uc2VxdWVudGx5LCBwcm9tcHQgYW5kIGVmZmljaWVudCBhY3Rpb257WyYqJl19IGlzIG1vcmUgYSANCndvbWFuXCdzIGdpZnQgdGhhbiBhIG1hblwncy4gXCdeIE1hbiBkZWxpZ2h0cyBub3QgbWUsIG5vciANCndvbWFuIHtbJiomXX1uZWl0aGVyLFwiIGNvbmZlc3NlZCBIYW1sZXQgOyBhbmQgdGhlIGNvdXJ0aWVycyANCmRlY2xhcmUgdGhleSBzbWlsZWQgdG8gdGhpbntbJiomXX1rIGlmIGhlIGRlbGlnaHRlZCBub3QgaW4gbWFuIA0Kd2hhdCBMZW50ZW4gZW50ZXJ0YWlubWVudCB0aGUgcGxheWVycyB3b3VsZCBye1smKiZdfWVjZWl2ZSANCmZyb20gaGltLiBUaGUgcGxheWVycyDigJQgZm9yIHRoZSBkcmFtYSBpcyBmb3VuZGVkIG9uIA0KbWVyZSBkZWxpZ2h7WyYqJl19dCBpbiBodW1hbiBwZXJzb25hbGl0eS4gTWFuIGRlbGlnaHRlZCBTaGFrLSANCnNwZXJlLCBhbmQgd29tYW4gYWxzbyA7IGJ1dCB0aHtbJiomXX1lIGNoaWVmIHByb2JsZW1zIG9mIGxpZmUgDQpzZWVtZWQgdG8gbHVyayBmb3IgU2hha3NwZXJlIGluIHRoZSBzb3VscyBhbmQgaW4ge1smKiZdfXRoZSBsaXZlcyANCm9mIG1lbiwgYW5kIHRoZXJlZm9yZSBoZSB3YXMgbW9yZSBwcm9mb3VuZGx5IGludGVyZXN0ZWQgDQppbiB0aGV7WyYqJl19IG5hdHVyZXMgb2YgbWVuIHRoYW4gaW4gdGhvc2Ugb2Ygd29tZW4uIEhpcyBncmVhdCANCnRyYWdlZGllcyBhcmUgbm90IENvcmRlbHtbJiomXX1pYSwgRGVzZGVtb25hLCBPcGhlbGlhLCBZb2x1bS0gDQpuaWEgOyBidXQgTGVhciwgT3RoZWxsbywgSGFtbGV0LCBDb3Jpb2xhbnVze1smKiZdfS4gU2hha3NwZXJlXCdzIA0KbWVuIGhhdmUgYSBoaXN0b3J5LCBtb3JhbCBncm93dGggb3IgbW9yYWwgZGVjYXkgOyBoaXMgDQp3b21le1smKiZdfW4gYWN0IGFuZCBhcmUgYWN0ZWQgdXBvbiwgYnV0IHNlbGRvbSBncm93IGFuZCBhcmUgDQp0cmFuc2Zvcm1lZC4gV2UgZ2V0IGZyb217WyYqJl19IFNoYWtzcGVyZSBubyBoaXN0b3JpZXMgb2YgYSANCndvbWFuXCdzIHNvdWwgbGlrZV4gdGhlIGhpc3Rvcnkgb2YgUm9tb2xhIG9yIG97WyYqJl19ZiBNYWdnaWUgDQpUdVVpdmVyIG9yIG9mIERvcm90aGVhIEJyb29rZSA7IG5vbmUg4oCUIHVubGVzcywgcGVyaGFwcywgDQp0aGF0IHtbJiomXX1vZiBDbGVvcGF0cmEg4oCUIGF0IGFsbCBzbyBjYXJlZnVsbHkgc3R1ZGllZCBhbmQgY3VyaS0gDQpwdXNseSBkZXRhaWxlZCBhcyBte1smKiZdfWF5IGJlIGZvdW5kIGluIHRoZSBub3ZlbHMgb2YgR29ldGhlLiANCuKWoDcgDQoNCjk4IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW57WyYqJl19ZCBBcnQgDQoNClNoYWtzcGVyZSBjcmVhdGVzIGhpcyB3b21lbiBieSBhIHNpbmdsZSBzdHJvbmcgb3IgZXgtIA0KcXVpc2l0ZSBpbntbJiomXX1zcGlyYXRpb24sIGJ1dCBoZSBzdHVkaWVzIGhpcyBtZW4uIEhpcyB3aXR0eSANCndvbWVuIGFyZSBub3QgYSBjb21wbGV4IG9mIGFse1smKiZdfWwgdmFyaW91cyBxdWFsaXRpZXMsIGxpa2UgDQpGYWxzdGFmZiA7IGhpcyB3aWNrZWQgd29tZW4gYXJlIHNpbXBseSB3aWNrZWQsIGx7WyYqJl19aWtlIEdvbi0gDQplcmlsIGFuZCBSZWdhbiwgbm90IGFuIGluc2NydXRhYmxlIG15c3Rlcnkgb2YgaW5pcXVpdHkgDQpsaWtlIGxhZ3tbJiomXX1vIDsgaGlzIHdvbWVuIG9mIGludGVsbGVjdCBhcmUgYnJpZ2h0LCBhcmUgZWZmZWN0aXZlIA0Kd2l0aCBpZGVhcyB3aGljaCB0aGV5e1smKiZdfSB1c2UgYXMgdGhlIG1lYW5zIG9mIGFjdGlvbiBvciBvZiANCmVuam95bWVudCwgYnV0IGFtb25nIHRoZW0gdGhlcmUgaXMgbm90IGF7WyYqJl19IGZlbWFsZSBIYW0tIA0KbGV0Ll4gDQoNCllldCB0aGUgd29tZW4gb2YgU2hha3NwZXJlIGhhdmUgYWxtb3N0IGFsd2F5cyB0aGUgDXtbJiomXX0KYWR2YW50YWdlIG9mIGhpcyBtZW4uIEFsdGhvdWdoIHRoZWlyIG5hdHVyZXMgYXJlIG1hZGUgDQp1cCBvZiBmZXdlciBlbGVtZW50e1smKiZdfXMsIHlldCwgYmVjYXVzZSB0aG9zZSBlbGVtZW50cyBhcmUgDQpxdWl0ZSB2aXRhbCBhbmQgY29oZXJlbnQsIGhpcyB3b21lbiBhcmV7WyYqJl19IGluIHRoZSBoaWdoZXN0IA0KZGVncmVlIGRpcmVjdCBpbiBmZWVsaW5nIGFuZCBlZmZpY2llbnQgaW4gYWN0aW9uLiBBbGwgdGhlIHtbJiomXX0NCmhhbGYtb3JnYW5pemVkIHBvd2VyIG9mIG1lbiBpcyBub3QgYSBtYXRjaCBmb3IgdGhlaXIgZGktIA0KcmVjdG5lc3MgYW5kIGVme1smKiZdfWZpY2llbmN5LiBQb3J0aWEsIGluIHRoZSBNZXJjaGFudCBvZiBZZW4tIA0KaWNlXiBjYW4gYnJpbmcgYWxsIGhlciB3aXRzIGF0IGF7WyYqJl19IG1vbWVudFwncyBub3RpY2UgaW50byBwbGF5IDsgDQpldmVyeSBmYWN1bHR5IGlzIGluc3RpbmN0IHdpdGggYSBzaW5nbGUgYW5kIGl7WyYqJl19bmRpdmlzaWJsZSBlbi0gDQplcmd5IDsgc2V0IG92ZXIgYWdhaW5zdCB0aGUgZ3JlYXQgbWFzY3VsaW5lIGZvcmNlIG9mIFNoeS0gDXtbJiomXX0KbG9jaywgc2hlIHByb3ZlcyBtb3JlIHRoYW4gYSBtYXRjaCBmb3IgaGltLiBJbiBIZWxlbmEgDQp7QWxsIF5zIFdlbGwgdGhhdCBFe1smKiZdfW5kcyBXZWxsKSB0aGVyZSBpcyBwZXJmZWN0IHJlY3RpdHVkZSBvZiANCmludGVsbGVjdCBhbmQgd2lsbCwgYW5kIGEgc29saWQgdW57WyYqJl19aXR5IG9mIGNoYXJhY3RlciB3aGljaCANCmVuYWJsZXMgaGVyIHRvIHNoYXBlIGV2ZW50cyBhcyBzaGUgaGFzIGRlY2lkZWQgaXQgaXtbJiomXX1zIHdlbGwgDQoNCiogU2VlIG9uIHRoaXMgc3ViamVjdCBNcnMuIEphbWVzb25cJ3MgXCIgQ2hhcmFjdGVyaXN0aWNzIG9mIFdvbWVuLFwie1smKiZdfSBJbi0gDQp0cm9kdWN0aW9uIDsgYWxzbyBhIHJlbWFya2FibGUgcGFzc2FnZSBpbiBNci4gUnVza2luXCdzICpcJyBTZXNhbWUgYW5kIHtbJiomXX1MaWxpZXMsXCIgDQpwcC4gMTI2LTEzMS4gUmlpbWVsaW4gbWFpbnRhaW5zIHRoYXQgaW4gY29uc2VxdWVuY2Ugb2YgaGlzIHBvc2l0aXtbJiomXX1vbiBhcyANCnBsYXllciwgU2hha3NwZXJlIHdhcyBleGNsdWRlZCBmcm9tIHRoZSBhY3F1YWludGFuY2Ugb2Ygd29tZW4gb2YgZmlue1smKiZdfWUgDQpjdWx0dXJlIGFuZCBjaGFyYWN0ZXIsIGFuZCB0aGVyZWZvcmUgZHJldyB1cG9uIGhpcyBmYW5jeSBmb3IgaGlzIGZlbWFsZSB7WyYqJl19cG9yLSANCnRyYWl0cy4gQXQgdGhlIHNhbWUgdGltZSwgU2hha3NwZXJlIHNoYXJlZCB3aXRoIEdvZXRoZSwgUGV0cmFyY2gsIFJhcHtbJiomXX1oYWVsLCANCkRhbnRlLCBSb3Vzc2VhdSwgSmVhbiBQYXVsIChhIHN0cmFuZ2UgYXNzZW1ibGFnZSAhKSwgYSBteXN0aWNhbCB2ZW5le1smKiZdfXJhdGlvbiANCmZvciB0aGUgZmVtaW5pbmUgZWxlbWVudCBvZiBodW1hbml0eSBhcyB0aGUgaGlnaGVyIGFuZCBtb3JlIGRpdmluZS57WyYqJl19IEZvciANCmEgY29tcGFyaXNvbiBvZiBTaGFrc3BlcmUgd2l0aCBHb2V0aGUgaW4gdGhpcyByZXNwZWN0LCBzZWUgUmlpbWVsaW4sIHtbJiomXX1cIiBTaGFrZS0gDQpzcGVhcmUtU3R1ZGllbixcIiBwcC4gMjgyIC0gMjkyLiBJdCBpcyBjbGV2ZXIgYW5kIHN1cGVyZmljaWFsLCBsaWt7WyYqJl19ZSBtdWNoIG9mIA0KdGhlIFwiIHJlYWxpc3RpYyBjcml0aWNpc20gXCIgb2YgUmlpbWVsaW4uIExlb1wncyBcIiBTaGFrZXNwZWFyZVwncyBGe1smKiZdfXJhdWVuLUlkZWFsZSBcIiANCmlzIGEgc29tZXdoYXQgbWlzbGVhZGluZyB0aXRsZS4gSW4gdGhlIGZldyBwYWdlcyBvbiBTaGFrc3Ble1smKiZdfXJlXCdzIHdvbWVuIA0KKHBwLiAzNS00NCkgdGhlcmUgaXMgY29udGFpbmVkIGxpdHRsZSB0aGF0IGlzIG5ldyBvciB2YWx1YWJsZS4ge1smKiZdfQ0KDQpSb21lbyBhbmQgSnVsaWV0IDk5IA0KDQp0aGV5IHNob3VsZCBiZSBzaGFwZWQsIGFuZCBzZWN1cmVzIGhlciBmcm9tIGFsbCB7WyYqJl19ZGlzdHJhYy0gDQp0aW9uIGFuZCBhbGwgaWxsdXNpb24uIFNoZSBpbXBvc2VzIGhlcnNlbGYgYXMgYSBibGVzc2luZyANCnVwb24gdHtbJiomXX1oZSBoaWdoLWJvcm4geW91dGgsIHdobywgZm9yIGhpcyBwYXJ0LCBoYWQgYmVlbiANCnN1ZmxTY2llbnRseSBibGluZCBhbmQgZHVse1smKiZdfWw7IGF0IGxlbmd0aCBoZSBwZXJjZWl2ZXMgdGhhdCANCndoaWxlIGhlIHN0dW1ibGVkIGFuZCBzZWVtZWQgdG8gZ28gYXN0cmF5LCB7WyYqJl19SGVsZW5hIHdhcyANCnRoZSBwcm92aWRlbmNlIHdoaWNoIGZvcmNlZCBoaW0gdG8gc3R1bWJsZSBpbnRvIHNlY3VyaS0gDQp0eSBhbntbJiomXX1kIHN0cmVuZ3RoIGFuZCB0aGUgYWJpZGluZy1wbGFjZSBvZiBsb3ZlLiBZb2x1bS0gDQpuaWEsIGJ5IHRoZSB1bmZhbHRlcmluZyBpe1smKiZdfW5zaXN0ZW5jZSBvZiBoZXIgc2luZ2xlIG1vcmFsIA0KbW90aXZlLCBzdWJkdWVzIENvcmlvbGFudXMuIE1hY2JldGggaXMgYnJhdmV7WyYqJl19IGFuZCBjb3ctIA0KYXJkbHksIHNjZXB0aWNhbCBhbmQgc3VwZXJzdGl0aW91cywgbG95YWwgYW5kIHRyZWFjaGVyb3VzLCANCmFtYntbJiomXX1pdGlvdXMgYW5kIGNhcGFibGUgb2Ygc2VydmljZSwgYXQgb25jZSByZXN0cmFpbmVkIGFuZCANCnN0aW11bGF0ZWQgYnkgaGlzIGlte1smKiZdfWFnaW5hdGlvbi4gTGFkeSBNYWNiZXRoIGlzIHRlcnJpYmx5IA0KZWZmaWNpZW50OiBhdCBvbmUgdGltZSBhIHdpbGwgc3RydW5nIHR7WyYqJl19ZW5zZSwgYXQgYW5vdGhlciBhIA0KY29uc2NpZW5jZSBzdHJ1bmcgdGVuc2UgOyBwb3NzZXNzZWQgb2Ygb25seSB0aGF0IGFjdGl2ZXtbJiomXX0gDQpraW5kIG9mIGltYWdpbmF0aW9uIHdoaWNoIG1hc3RlcnMgcHJhY3RpY2FsIGRpZmZpY3VsdGllcy4gDQpTaGUgaGFzIHZpb2xle1smKiZdfW50bHkgd3JlbmNoZWQgaGVyIG5hdHVyZSwgYW5kIHRoZSB3cmVuY2ggDQppcyBmYXRhbC4gQnV0IE1hY2JldGggY2FuIGxpdmUgb257WyYqJl19LCBzaW5raW5nIGZ1cnRoZXIgYW5kIA0KZnVydGhlciBmcm9tIHJlYWxpdHkgYW5kIHN0cmVuZ3RoIGFuZCBqb3leIGRyb3BwaW5nIHtbJiomXX1hd2F5IA0KaW50byB0aGUgc2hhZG93LCB1bmRlcmdvaW5nIGdyYWR1YWwgZXh0aW5jdGlvbiwgZGVjYXksIA0KYW5kIGRpc2ludGVne1smKiZdfXJhdGlvbiBvZiBoaXMgbW9yYWwgYmVpbmc7IG5ldmVyIGEgc3VkZGVuIA0KYW5kIGFic29sdXRlIHJ1aW4uIA0KDQpKdWxpZXQgYXR7WyYqJl19IG9uY2UgdGFrZXMgdGhlIGxlYWQuIEl0IGlzIHNoZSB3aG8gcHJvcG9zZXMgDQphbmQgdXJnZXMgb24gdGhlIHN1ZGRlbiBtYXJyaXtbJiomXX1hZ2UuIFNoZSBpcyBpbXBhdGllbnQgZm9yIA0KY29tcGxldGUgc2VsZi1zdXJyZW5kZXIsIGVhZ2VyIHRoYXQgdGhlIGRlZWQgc2hve1smKiZdfXVsZCBiZS0gDQpjb21lIHBlcmZlY3QgYW5kIGlycmV2ZXJzaWJsZS4gXCJXaGVuLCBhZnRlciB0aGUgZGVhdGggb2YgDQpUeWJhbHQse1smKiZdfSBLb21lbyBsZWFybnMgZnJvbSB0aGUgbGlwcyBvZiB0aGUgZnJpYXIgdGhhdCBoZSANCmhhcyBiZWVuIGNvbmRlbW5lZCB0byBiYW57WyYqJl19aXNobWVudCBoZSBpcyB1dHRlcmx5IHVuLSANCm1hbm5lZC4gSGUgYWJhbmRvbnMgaGltc2VsZiB0byBoZWxwbGVzcyBhbmQgaG9wZXtbJiomXX1sZXNzIA0KZGVzcGFpci4gSGUgdHVybnMgdGhlIHRlbmRlciBlbW90aW9uIHVwb24gaGltc2VsZiwgYW5kIA0KZXh0cmFjdHMgYWxse1smKiZdfSB0aGUgbWlzZXJ5IHdoaWNoIGlzIGNvbnRhaW5lZCBpbiB0aGF0IG9uZSANCndvcmQgXCJiYW5pc2hlZC5cIiBIZSB0aHJvd3MgaGltc3tbJiomXX1lbGYgdXBvbiB0aGUgZ3JvdW5kLCANCmFuZCBncm92ZWxzIHBpdGlmdWxseSBpbiB0aGUgYWJqZWN0bmVzcyBvZiBoaXMgZGlzbWF5e1smKiZdfS4gSGlzIA0Kd2lsbCBpcyB1bmFibGUgdG8gZGVhbCB3aXRoIGhpcyBvd24gZW1vdGlvbnMgc28gYXMgdG8gc3ViLSANCmR1ZSBvciB7WyYqJl19Y29udHJvbCB0aGVtLiBVcG9uIHRoZSBuZXh0IGRheSwgYWZ0ZXIgaGVyIGNhc3QtIA0KaW5nLWF3YXkgb2YgaGVyIG93biBraW5kcntbJiomXX1lZCwgYWZ0ZXIgaGVyIHBhcnRpbmcgd2l0aCBoZXIgDQoNCuKWoF4lIA0KDQpsT08gU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQge1smKiZdfUFydC4gDQoNCmh1c2JhbmQsIEp1bGlldCBjb21lcyB0byB0aGUgc2FtZSBjZWxsIG9mIEZyaWFyIExhdXJlbmNlLCANCmhlciBmYWN7WyYqJl19ZSBwYWxlLCBhbmQgdHJhY2VzIG9mIHRlYXJzIHVwb24gaXQgd2hpY2ggc2hlIGNhbi0gDQpub3QgaGlkZS4gUGFyaXMsIHRoZSBsb3tbJiomXX12ZXIgd2hvbSBoZXIgZmF0aGVyIGFuZCBtb3RoZWlQIA0KaGF2ZSBkZXNpZ25lZCBmb3IgSnVsaWV0LCBpcyB0aGVyZS4gU2hlIG1le1smKiZdfWV0cyBoaW0gd2l0aCANCmdheSB3b3JkcywgZ2FsbGFudGx5IGNvbmNlYWxpbmcgdGhlIGhlYXJ0IHdoaWNoIGlzIGVhZ2VyIA0KYW57WyYqJl19ZCB0cmVtYmxpbmcsIGFuZCB1cGhlbGQgZnJvbSBkZXNwZXJhdGlvbiBvbmx5IGJ5IGEgDQpoaWdoLXN0cnVuZyBmb3J0aXR1ZGUuIHtbJiomXX1UaGVuIHdoZW4gdGhlIGRvb3IgaXMgc2h1dCBoZXIgDQpoZWFydCByZWxpZXZlcyBpdHNlbGYsIGFuZCBzaGUgdXJnZXMgdGhlIGZye1smKiZdfWlhciwgd2l0aCBwYXMtIA0Kc2lvbmF0ZSBlbmVyZ3ksIHRvIGRldmlzZSBmb3J0aHdpdGggYSByZW1lZHkgZm9yIHRoZSBldmlsIA17WyYqJl19CnRoYXQgaGFzIGJlZmFsbGVuLiANCg0KSW4gaGVyIGhvbWUsIEp1bGlldCBpcyBub3cgd2l0aG91dCBhZHZpc2VyIG9yIHN1c3RhaXtbJiomXX1uZXIuIA0KQSBnaXJsIG9mIGZvdXJ0ZWVuIHllYXJzLCBzaGUgc3RhbmRzIHRoZSBjZW50cmUgb2YgYSBjaXJjbGUgDQpvZiBwb3dle1smKiZdfXIgd2hpY2ggaXMgdHlyYW5ub3VzLCBhbmQgcGxlZGdlZCB0byBjcnVzaCBoZXIgDQpyZXNpc3RhbmNlOyBvbGQgQ2FwdWxldCAodGh7WyYqJl19ZSBDYXB1bGV0cyBhcmUgYSBmaWVyeSwgc2VsZi0gDQp3aWxsZWQgcmFjZSwgdW5saWtlIHRoZSBtaWxkZXIgTW9udGFndWVzKSBoYXtbJiomXX1zIHZlaGVtZW50LSANCmx5IHVyZ2VkIHVwb24gaGVyIHRoZSBtYXJyaWFnZSB3aXRoIENvdW50IFBhcmlzLiBTaGUgDQp0dXJucyBoe1smKiZdfWVyIHBhbGUgZmFjZSB1cG9uIGhlciBmYXRoZXIsIGFuZCBhZGRyZXNzZXMgaGltIA0KYXBwZWFsaW5nbHkgOl4gDQoNClwiIEdvb2Qge1smKiZdfWZhdGhlciwgSSBiZXNlZWNoIHlvdSBvbiBteSBrbmVlcyANCkhlYXIgbWUgd2l0aCBwYXRpZW5jZSBidXQgdG8gc3BlYWsgYSB3b3J7WyYqJl19ZC5cIiANCg0KU2hlIHR1cm5zIHRvIGhlciBtb3RoZXIg4oCUIHRoZSBwcm91ZCBJdGFsaWFuIG1hdHJvbiwgDQpzdGlsbCB5b3VuZyx7WyYqJl19IHdobyBoYWQgbm90IG1hcnJpZWQgZm9yIGxvdmUsIHdob3NlIGhhdHJlZCANCmlzIGNvbGQgYW5kIGRlYWRseSwgYW5kIHdob3NlIHtbJiomXX1yZWxhdGlvbiB3aXRoIHRoZSBjaGlsZCwgDQoNCndobyBpcyBkZWFyIHRvIGhlciwgaXMgcGF0aGV0aWNhbGx5IGltcGVyZmVjdCA6e1smKiZdfWYgXi4uIA0KDQomZ3Q7LSANCg0KKiBTaGFrc3BlcmUsIGFzIE1yLiBDbGFya2Ugbm90aWNlcywgY29udHJpdmVzIHRvIGJyaW5nIGJ7WyYqJl19ZWZvcmUgdXMgdGhlIHBhbGUtIA0KbmVzcyBvZiBKdWxpZXRcJ3MgZmFjZSBpbiB0aGlzIGdyZWF0IGNyaXNpcyBvZiBoZXIgbGlmZSx7WyYqJl19IGRyYW1hdGljYWxseSwgYnkgbWVhbnMgDQpvZiBvbGQgQ2FwdWxldFwncyB2aXR1cGVyYXRpdmUgdGVybXMgOiANCg0KXCIgT3V0LCB5e1smKiZdfW91IGdyZWVuLXNpY2tuZXNzIGNhcnJpb24gISBvdXQsIHlvdSBiYWdnYWdlICEgDQpZb3UgdGFsbG93IGZhY2UgSVwiIA0KZiBTaGFre1smKiZdfXNwZXJlIHJlZHVjZXMgSnVsaWV0XCdzIGFnZSBmcm9tIHRoZSBzaXh0ZWVuIHllYXJzIG9mIEJyb29rZVwncyBwb2VtIA0KdG8gZm91cntbJiomXX10ZWVuLiBIZSBsb3ZlZCB0aGUgeWVhcnMgb2YgYnVkZGluZyB3b21hbmhvb2QgOiBNaXJhbmRhIGlzIGZpZnRlZW4gDQp5ZWFycyBve1smKiZdfWYgYWdlLCBNYXJpbmEgZm91cnRlZW4uIExhZHkgQ2FwdWxldCBzYXlzIHRvIEp1bGlldCwgDQoNClwiIEJ5IG15IGNvdW50IA0KSSB3e1smKiZdfWFzIHlvdXIgbW90aGVyIG11Y2ggdXBvbiB0aGVzZSB5ZWFycyANClRoYXQgeW91IGFyZSBub3cgYSBtYWlkIFwiIChhY3QgIS4sIHNje1smKiZdfS4gMykuIA0KVGhlcmVmb3JlIHNoZSBpcyBwZXJoYXBzIHVuZGVyIHRoaXJ0eSB5ZWFycyBvZiBhZ2UuIEJ1dCBpdCBpcyB0aGlydHl7WyYqJl19IHllYXJzIA0KDQpSb21lbyBhbmQgSnVsaWV0IGkgbyBpIA0KDQpcIiBJcyB0aGVyZSBubyBwaXR5IHNpdHRpbmcgaW4gdGhlIGNsb3V7WyYqJl19ZHMsIA0KVGhhdCBzZWVzIGludG8gdGhlIGJvdHRvbSBvZiBteSBncmllZiA/IA0Kc3dlZXQgbXkgbW90aGVyLCBjYXN0IG1lIG5vdHtbJiomXX0gYXdheSAhIA0KRGVsYXkgdGhpcyBtYXJyaWFnZSBmb3IgYSBtb250aCwgYSB3ZWVrLlwiIA0KDQpMYXN0LCBzaGUgbG9va3MgZm9yIHtbJiomXX1zdXBwb3J0IHRvIGhlciBudXJzZSwgdHVybmluZyBpbiANCnRoYXQgZHJlYWRmdWwgbW9tZW50IHdpdGggdGhlIGluc3RpbmN0IG9me1smKiZdfSBjaGlsZGhvb2QgdG8gDQp0aGUgd29tYW4gb24gd2hvc2UgYnJlYXN0IHNoZSBoYWQgbGFpbiwgYW5kIHV0dGVyaW5nIA0Kd29yZHN7WyYqJl19IG9mIGRlc3BlcmF0ZSBhbmQgc2ltcGxlIGVhcm5lc3RuZXNzIDogDQoNClwiIEdvZCAhIG51cnNlIEkgaG93IHNoYWxsIHRoaXMgYmV7WyYqJl19IHByZXZlbnRlZCA/IA0KDQrigKIg4oCiIG8g4oCiIOKAoiDigKIg4oCiIA0KDQpTb21lIGNvbWZvcnQsIG51cnNlLlwiIA0KDQpUaGV7WyYqJl19IHNhbWUgdW5mYWx0ZXJpbmcgc2V2ZXJpdHkgd2l0aCB3aGljaCBhIHN1cmdlb24gDQpvcGVyYXRlcyBpcyBzaG93biBieSBTaGFrc3tbJiomXX1wZXJlIGluIGhpcyBmaWRlbGl0eSBoZXJlIHRvIHRoZSANCm51cnNlXCdzIGNoYXJhY3Rlci4gVGhlIGdyb3NzIGFuZCB3YW50b24gaHtbJiomXX1lYXJ0LCB3aGlsZSANCg0KdHRoZSBzdW4gb2YgcHJvc3Blcml0eSBpcyBmdWxsLCBibG9zc29tcyBpbnRvIGJyb2FkIHZ1bGdhci0ge1smKiZdfQ0KaXR5IDsgYW5kIHRoZSByYWlsbGVyeSBvZiBNZXJjdXRpbyBkZWFscyB3aXRoIGl0IHN1ZmxTY2llbnQtIA0KbHkuIE5vdyBpbiB7WyYqJl19dGhlIGhvdXIgb2YgdHJpYWwgaGVyIGdyb3NzbmVzcyByaXNlcyB0byB0aGUgDQpkaWduaXR5IG9mIGEgY3JpbWUuIFwnXCcgVGhlIENve1smKiZdfXVudCBpcyBhIGxvdmVseSBnZW50bGVtYW4gOyANClJvbWVvIFwncyBhIGRpc2hjbG91dCB0byBoaW0uIFRoZSBzZWNvbmQgbWF0Y2gge1smKiZdfWV4Y2VscyANCsKnIHRoZSBmaXJzdCA7IG9yLCBpZiBpdCBkb2VzIG5vdCwgSnVsaWV0XCdzIGZpcnN0IGlzIGRlYWQsIG9yIGFzIA0Ke1smKiZdfWdvb2QgYXMgZGVhZCwgYmVpbmcgYXdheSBmcm9tIGhlci5cIiBcJ14gVGhpcyBtb21lbnQsXCIgDQoNCmlNcnMuIEphbWVzb24gaGFzIGZ7WyYqJl19aW5lbHkgc2FpZCwgXCIgcmV2ZWFscyBKdWxpZXQgdG8gaGVyc2VsZi4gDQpTaGUgZG9lcyBub3QgYnJlYWsgaW50byB1cGJyYWlkaW57WyYqJl19Z3MgOyBpdCBpcyBubyBtb21lbnQgZm9yIA0KYW5nZXIgOyBpdCBpcyBpbmNyZWR1bG91cyBhbWF6ZW1lbnQsIHN1Y2NlZWRlZCBieXtbJiomXX0gdGhlIGV4LSANCnRyZW1pdHkgb2Ygc2Nvcm4gYW5kIGFiaG9ycmVuY2UsIHdoaWNoIHRha2VzIHBvc3Nlc3Npb24gDQpvZiBoZXIge1smKiZdfW1pbmQuIFNoZSBhc3N1bWVzIGF0IG9uY2UgYW5kIGFzc2VydHMgYWxsIGhlciANCm93biBzdXBlcmlvcml0eSwgYW5kIHJpc2VzIHR7WyYqJl19byBtYWplc3R5IGluIHRoZSBzdHJlbmd0aCBvZiANCmhlciBkZXNwYWlyLlwiIEhlcmUgSnVsaWV0IGVudGVycyBpbnRvIGhlciBzb2x7WyYqJl19aXR1ZGUuKl4gDQoNCnNpbmNlIG9sZCBDYXB1bGV0IGxhc3Qgd2VudCBtYXNraW5nIChhY3QgaS4sIHNjLiA1KS4gT2JzZXJ2ZSBMYXtbJiomXX1keSBDYXB1bGV0XCdzIA0KbWFubmVyIG9mIHNwZWVjaCB3aXRoIGhlciBodXNiYW5kIGluIGFjdCBpdi4sIHNjLiA0LCBhbmQgbm90ZXtbJiomXX0gaGVyIGFubm91bmNlLSANCm1lbnQgKGludGVuZGVkIHRvIGdyYXRpZnkgSnVVZXQpIHRoYXQgc2hlIHdpbGwgZGVzcGF0Y2ggYSBte1smKiZdfWVzc2VuZ2VyIHRvIE1hbi0gDQp0dWEgdG8gcG9pc29uIFJvbWVvIChhY3QgaWlpLiwgc2MuIDUpLiANCg0KKiBcIiBUaGUgbnVyc2Uge1smKiZdfWhhcyBhIGNlcnRhaW4gdnVsZ2FyaXplZCBhaXIgb2YgcmFpaWsgYW5kIHJlZmluZW1lbnQsIGFzIGlmLCANCnByaWRpbmcgaGVyc2V7WyYqJl19bGYgb24gdGhlIGNvbmZpZGVuY2Ugb2YgaGVyIHN1cGVyaW9ycywgc2hlIGhhZCBjYXVnaHQgYW5kIGFzdCANCnNpbWlsYXRlZCB0aHtbJiomXX1laXIgbWFubmVycyB0byBoZXIgb3duIHZ1bGdhciBuYXR1cmUuIEluIHRoaXMgbWl4dHVyZSBvZiByZSogDQpmaW5lbWVudCBhbmQge1smKiZdfXZ1bGdhcml0eSBib3RoIGVsZW1lbnRzIGFyZSBtYWRlIHRoZSB3b3JzZSBmb3IgYmVpbmcgdG9nZXRoY0sgDQoNCkkwMiBTaGFrc3B7WyYqJl19ZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KVGhlIGZyaWFyIGhhcyBnaXZlbiBKdWxpZXQgYSBwaGlhbCBjb250YWluaW5nIHtbJiomXX1hIHN0cmFuZ2UsIA0KaWluZnJpZWQgbWl4dHVyZSwgYW5kIF5oZSBpcyBhbG9uZSBpbiBoZXIgY2hhbWJlci4gSnVsaS0gDQpldFwnc3tbJiomXX0gc29saWxvcXV5IGVuZHMgd2l0aCBvbmUgb2YgdGhvc2UgdHJpdW1waGFudCB0b3VjaGVzIA0KYnkgd2hpY2ggU2hha3NwZXJlIGdse1smKiZdfW9yaWZpZWQgdGhhdCB3aGljaCBoZSBhcHByb3ByaWF0ZWQgDQpmcm9tIGhpcyBvcmlnaW5hbHMuIEluIEJyb29rZVwncyBwb2VtLCBKe1smKiZdfXVsaWV0IHN3YWxsb3dzIA0KdGhlIHNsZWVwaW5nLXBvdGlvbiBoYXN0aWx5LCBsZXN0IGhlciBjb3VyYWdlIHNob3VsZCBmYWlsLiB7WyYqJl19DQpcIiBTaGFrc3BlYXJlLFwiIENvbGVyaWRnZSB3cm90ZSwgXCIgcHJvdmlkZXMgZm9yIHRoZSBmaW5lc3QgDQpkZWNlbmNpZXMuIEl0IHtbJiomXX13b3VsZCBoYXZlIGJlZW4gdG9vIGJvbGQgYSB0aGluZyBmb3IgYSANCmdpcmwgb2YgZmlmdGVlbiDigJQgYnV0IHNoZSBzd2FsbG93e1smKiZdfXMgdGhlIGRyYXVnaHQgaW4gYSBmaXQgb2YgDQpmcmlnaHQuXCIgVGhpcyBkZXByaXZlcyBKdWxpZXQgb2YgYWxsIHRoYXQgaXMgbW9ze1smKiZdfXQgY2hhcmFhLSANCnRlcmlzdGljIGluIHRoZSBhY3QuIEluIHRoZSBuaWdodCBhbmQgdGhlIHNvbGl0dWRlLCB3aXRoIGEgDQpkZXN7WyYqJl19cGVyYXRlIGRlZWQgdG8gZG8sIGhlciBpbWFnaW5hdGlvbiBpcyBpbnRlbnNlbHkgYW5kIA0KbW9yYmlkbHkgZXhjaXRlZC4gQWxsIHtbJiomXX10aGUgaGlkZW91cyBzZWNyZXRzIG9mIHRoZSB0b21iIA0KYXBwZWFyIGJlZm9yZSBoZXIuIFN1ZGRlbmx5LCBpbiBoZXIgZGlzb3Jke1smKiZdfWVyZWQgdmlzaW9uLCANCnRoZSBmaWd1cmUgb2YgdGhlIG11cmRlcmVkIFR5YmFsdCByaXNlcywgYW5kIGlzIG1hbmlmZXN0bHkgDQp7WyYqJl19aW4gcHVyc3VpdCBvZiBzb21lIG9uZS4gT2Ygd2hvbSA/IE5vdCBvZiBKdWxpZXQsIGJ1dCANCm9mIGhlciBsb3Zlciwgd2hvIGhhZHtbJiomXX0gc2xhaW4gaGltLiBBIG1vbWVudCBiZWZvcmUsIEp1KiANCmxpZXQgaGFkIHNocnVuayB3aXRoIGhvcnJvciBmcm9tIHRoZSB0aG91e1smKiZdfWdodCBvZiBjb25mcm9udC0gDQppbmcgVHliYWx0IGluIHRoZSB2YXVsdCBvZiB0aGUgQ2FwdWxldHMuIEJ1dCBub3cgQm8tIA0Kcm57WyYqJl19ZW8gaXMgaW4gZGFuZ2VyLiBBbGwgZmVhciBkZXNlcnRzIGhlci4gVG8gc3RhbmQgYnkgDQpLb21lb1wncyBzaWRlIGlzIGhlciBvbmV7WyYqJl19IG5lY2Vzc2l0eS4gV2l0aCBhIGNvbmZ1c2VkIA0Kc2Vuc2UgdGhhdCB0aGlzIGRyYXVnaHQgd2lsbCBzb21laG93IHBsYWNlIGhlcntbJiomXX0gY2xvc2UgdG8gDQp0aGUgbXVyZGVyb3VzIFR5YmFsdCwgYW5kIGNsb3NlIHRvIEJvbWVvIHdob20gc2hlIA0Kd291bGQgc2F2ZSwge1smKiZdfWNhbGxpbmcgYWxvdWQgdG8gVHliYWx0IHRvIGRlbGF5IG9uZSBtb21lbnQgDQrigJQgXCIgU3RheSwgVHliYWx0LCBzdGF5ICFcIiDigHtbJiomXX2UIHNoZSBkcmFpbnMgdGhlIHBoaWFsLCBub3QgXCIgaW4gYSANCmZpdCBvZiBmcmlnaHQsXCIgYnV0IHdpdGggdGhlIHdvcmRzIFwiIEJve1smKiZdfW1lbyAhIEkgY29tZSA7IHRoaXMgDQpkbyBJIGRyaW5rIHRvIHRoZWUuXCIgdi4gDQoNClRoZSBicm9vZGluZyBuYXR1cmUgb2YgQm9te1smKiZdfWVvLCB3aGljaCBjaGVyaXNoZXMgZW1vLSANCnRpb24sIGFuZCBsaXZlcyBpbiBpdCwgaXMgbWFkZSBzYWxpZW50IGJ5IGNvbnRyYXN7WyYqJl19dCB3aXRoIE1lci0gDQpjdXRpbywgd2hvIGlzIGFsbCB3aXQgYW5kIGludGVsbGVjdCBhbmQgdml2YWNpdHksIGFuIHVuY29uLSANCntbJiomXX0NCi4gLiAuIFNoZSBhYm91bmRzLCBob3dldmVyLCBpbiBzZXJ2aWNlYWJsZSBxdWFsaXRpZXMuXCIg4oCUIEh1ZHNvbiwgU2hha2UqIHtbJiomXX0NCnNwZXJlXFwgTGlmZSwgQXJ0XiBhbmQgQ2hhcmFjdGVyc14gdm9sLiBpaS4sIHBwLiAyMTQsIDIxNS4gTXJzLiBKYW1lc29uIG9iLXtbJiomXX0gDQpCZXJ2ZXMganVzdGx5IHRoYXQgdGhlIHN3ZWV0bmVzcyBhbmQgZGlnbml0eSBvZiBKdWxpZXRcJ3MgY2hhcmFjdGVyIGNvdWxkIHtbJiomXX1oYXJkKiANCmx5IGhhdmUgYmVlbiBwcmVzZXJ2ZWQgaW52aW9sYXRlIGlmIFNoYWtzcGVyZSBoYWQgcGxhY2VkIGhlciBpbiBjb25ue1smKiZdfWVjdGlvbiANCndpdGggYW55IGNvbW1vbnBsYWNlIGRyYW1hdGljIHdhaXRpbmctd29tYW4uIA0KDQpSb21lbyBhbmQgSnVsaWV0IDF7WyYqJl19MDMgDQoNCnRyb2xsYWJsZSBwbGF5IG9mIGdsZWFtaW5nIGFuZCBnbGFuY2luZyBsaWZlLiBVcG9uIHRoZSANCm1vcm5pbmcgYWZ0ZXtbJiomXX1yIHRoZSBiZXRyb3RoYWwgd2l0aCBKdWxpZXQsIGEgbWVldGluZyBoYXAtIA0KcGVucyBiZXR3ZWVuIFJvbWVvIGFuZCBNZXJjdXRpe1smKiZdfW8uIFByZXZpb3VzbHksIHdoaWxlIA0KbG92ZXIgb2YgUm9zYWxpbmUsIFJvbWVvIGhhZCBjdWx0aXZhdGVkIGEgbG92ZXItbGlrZSB7WyYqJl19bWVsLSANCmFuY2hvbHkuIEJ1dCBub3csIHBhcnRseSBiZWNhdXNlIGhpcyBibG9vZCBydW5zIGdsYWRseSwgDQpwYXJ0bHkgYmVjYXtbJiomXX11c2UgdGhlIHVuaW9uIG9mIHNvdWwgd2l0aCBKdWxpZXQgaGFzIG1hZGUgdGhlIA0Kd2hvbGUgd29ybGQgbW9yZSByZWFsIGFuZCBze1smKiZdfXVic3RhbnRpYWwsIGFuZCB0aGluZ3MgaGF2ZSANCmdyb3duIHRvbyBzb2xpZCBhbmQgbGFzdGluZyB0byBiZSBkaXN0dXJiZWQgYnl7WyYqJl19IGEgbGF1Z2gsIA0KUm9tZW8gY2FuIGNvbnRlbmQgaW4gamVzdCB3aXRoIE1lcmN1dGlvIGhpbXNlbGYsIGFuZCANCnN0cmV0Y2ggaHtbJiomXX1pcyB3aXQgb2YgY2hldmVyaWwgXCIgZnJvbSBhbiBpbmNoIG5hcnJvdyB0byBhbiBlbGwgDQpicm9hZC5cIiBNZXJjdXRpbyBhbmQgdGh7WyYqJl19ZSBudXJzZSBhcmUgU2hha3NwZXJlXCdzIGNyZWEtIA0KdGlvbnMgaW4gdGhpcyBwbGF5LiBGb3IgdGhlIGNoYXJhY3RlciBvZiB0aGV7WyYqJl19IGZvcm1lciBoZSANCmhhZCBidXQgYSBzbGlnaHQgaGludCBpbiB0aGUgcG9lbSBvZiBBcnRodXIgQnJvb2tlLiANClRoZXJlIHdlIHtbJiomXX1yZWFkIG9mIE1lcmN1dGlvIGFzIGEgY291cnRpZXIgd2hvIHdhcyBib2xkIA0KYW1vbmcgdGhlIGJhc2hmdWwgbWFpZGVucyBhcyBhe1smKiZdfSBsaW9uIGFtb25nIGxhbWJzLCBhbmQgDQp3ZSBhcmUgdG9sZCB0aGF0IGhlIGhhZCBhbiBcIiBpY2UtY29sZCBoYW5kLlwiIFB1dHRpbntbJiomXX1nIHRvLSANCmdldGhlciB0aGVzZSB0d28gc3VnZ2VzdGlvbnMsIGRpc2NvdmVyaW5nIGEgc2lnbmlmaWNhbmNlIGluIA0KdGhlbSwge1smKiZdfWFuZCBhbmltYXRpbmcgdGhlbSB3aXRoIHRoZSBicmVhdGggb2YgaGlzIG93biANCmxpZmUsIFNoYWtzcGVyZSBjcmVhdGVkIHRoZSB7WyYqJl19YnJpbGxpYW50IGZpZ3VyZSB3aGljaCBsaWdodHMgDQp1cCB0aGUgZmlyc3QgaGFsZiBvZiBSb21lbyBhbmQgSnVsaWV0XiBhbmQgZHtbJiomXX1pc2FwcGVhcnMgDQp3aGVuIHRoZSBjb2xvcnMgYmVjb21lIGFsbCB0b28gZ3JhdmUgYW5kIHNvbWJyZS4gDQoNClJvbWVvIGhhcyBhe1smKiZdfWNjZXB0ZWQgdGhlIGdyZWF0IGJvbmQgb2YgbG92ZS4gTWVyY3UtIA0KdGlvLCB3aXRoIGhpcyBpY2UtY29sZCBoYW5kLCB0aGUgbGl7WyYqJl19b24gYW1vbmcgbWFpZGVucywgDQpjaG9vc2VzLCBhYm92ZSBhbGwgdGhpbmdzLCBhIGRlZmlhbnQgbGliZXJ0eSDigJQgYSBsaWJlcntbJiomXX10eSBvZiANCnNwZWVjaCBnYXlseSBhdCB3YXIgd2l0aCB0aGUgcHJvcHJpZXRpZXMsIGFuIGFpcnkgZnJlZWRvbSANCm9mIGZhbmN5e1smKiZdfSwgYSBjYXJlbGVzcyBhbmQgbWFzdGVyZnVsIGNvdXJhZ2UgaW4gZGVhbGluZyB3aXRoIA0KbGlmZSBhcyB0aG91Z2ggaXQgd2VyZSB7WyYqJl19YSBtYXR0ZXIgb2Ygc2xpZ2h0IGltcG9ydGFuY14tSltlXyANCndpbGwgVGludCBhdHRhY14uaCBoaW1zZWxmIHRvakJpdGZpbnIgb3tbJiomXX1mIHRoZSBob3VzZXMuIEhlIGlzIGluLSANCnZpdGVkIGJ5IENhcHVsZXQgdG8gdGhlIGJhbnF1ZXQsVDN1dCBoZSBnb2VzIHRvIHRoe1smKiZdfWUgYmFuLSANCnF1ZXQgaW4gY29tcGFueSB3aXRoIFJvbWVvIGFuZCB0aGUgTW9udGFndWVzLiBIZSANCmNhbiBkbyBnZW5lcm91cyB7WyYqJl19YW5kIGRpc2ludGVyZXN0ZWQgdGhpbmdzLCBidXQgaGUgd2lsbCBub3QgDQpzdWJtaXQgdG8gdGhlIHRyYW1tZWxzIG9mIGJlaW5nIHtbJiomXX1yZWNvZ25pemVkIGFzIGdlbmVyb3VzLiANCkhlIGRpZXMgbWFpbnRhaW5pbmcgaGlzIGZyZWVkb20sIGFuZCBkZWZ5aW5nIGRlYXRoe1smKiZdfSB3aXRoIA0KYSBqZXN0LiBUbyBiZSBtYWRlIHdvcm1cJ3MgbWVhdCBvZiBzbyBzdHVwaWRseSwgYnkgYSB2aWwtIA0KbGFpbiB0aGF0e1smKiZdfSBmaWdodHMgYnkgdGhlIGJvb2sgb2YgYXJpdGhtZXRpYywgYW5kIHRocm91Z2ggDQoNCkkwNCBTaGFrc3BlcmUg4oCUIEhpcyBNaW57WyYqJl19ZCBhbmQgQXJ0LiANCg0KS29tZW9cJ3MgYXdrd2FyZG5lc3MsIGlzIGVub3VnaCB0byBtYWtlIGEgbWFuIGltcGEuIA0KdGllbnQuIFwie1smKiZdfSBBIHBsYWd1ZSBvXCcgYm90aCB5b3VyIGhvdXNlcyAhXCIgVGhlIGRlYXRoIG9mIA0KTWVyY3V0aW8gaXMgbGlrZSB0aGUgcmVtb3ZhbHtbJiomXX0gb2YgYSBzaGlmdGluZyBicmVhZHRoIG9mIHN1bi0gDQpsaWdodCwgd2hpY2ggc3BhcmtsZXMgb24gdGhlIHNlYSA7IG5vdyB0aGUge1smKiZdfWNsb3VkcyBjbG9zZSBpbiANCnVwb24gb25lIGFub3RoZXIsIGFuZCB0aGUgc3RyZXNzIG9mIHRoZSBnYWxlIGJlZ2lucy4qXiANCg17WyYqJl19ClRoZSBtb21lbnQgdGhhdCBSb21lbyByZWNlaXZlcyB0aGUgZmFsc2UgdGlkaW5ncyBvZiANCkp1bGlldFwncyBkZWF0aCBpcyB0aGV7WyYqJl19IG1vbWVudCBvZiBoaXMgYXNzdW1pbmcgZnVsbCBtYW4tIA0KaG9vZC4gTm93LCBmb3IgdGhlIGZpcnN0IHRpbWUsIGhlIGlzIGNvbXtbJiomXX1wbGV0ZWx5IGRlbGl2ZXJlZCANCmZyb20gdGhlIGxpZmUgb2YgZHJlYW0sIGNvbXBsZXRlbHkgYWR1bHQsIGFuZCBhYmxlIHRvIGFje1smKiZdfXQgDQp3aXRoIGFuIGluaXRpYXRpdmUgaW4gaGlzIG93biB3aWxsLCBhbmQgd2l0aCBtYW5seSBkZXRlci0gDQptaW5hdGlvbi4gQWN7WyYqJl19Y29yZGluZ2x5LCBoZSBub3cgc3BlYWtzIHdpdGggbWFzY3VsaW5lIA0KZGlyZWN0bmVzcyBhbmQgZW5lcmd5IDogDQoNClwiIElzIGl7WyYqJl19dCBldmVuIHNvID8gVGhlbiBJIGRlZnkgeW91LCBzdGFycyAhXCIgDQoNClllcyA7IGhlIGlzIG5vdyBtYXN0ZXIgb2YgZXZlbnRzIDt7WyYqJl19IHRoZSBzdGFycyBjYW5ub3QgYWx0ZXIgDQpoaXMgY291cnNlLCANCg0KXCIgVGhvdSBrbm93XCdzdCBteSBsb2RnaW5ncyA6IGdldCBte1smKiZdfWUgaW5rIGFuZCBwYXBlciwgDQpBbmQgaGlyZSBwb3N0LWhvcnNlcyA7IEkgd2lsbCBoZW5jZSB0by1uaWdodC4gDQoNCkJhbCwgSSB7WyYqJl19ZG8gYmVzZWVjaCB5b3UsIHNpciwgaGF2ZSBwYXRpZW5jZS4gDQpZb3VyIGxvb2tzIGFyZSBwYWxlIGFuZCB3aWxkLCBhbmQgZG8gaXtbJiomXX1tcG9ydCANClNvbWUgbWlzYWR2ZW50dXJlLiANCg0KUm9tLiBUdXNoICEgdGhvdSBhcnQgZGVjZWl2ZWQuIA0KDQpMZWF2ZSBtZSwge1smKiZdfWFuZCBkbyB0aGUgdGhpbmcgSSBiaWQgdGhlZSBkby4gDQpIYXN0IHRob3Ugbm8gbGV0dGVycyB0byBtZSBmcm9tIHRoZSBmcmlhciB7WyYqJl19PyANCg0KQmFsLiBObywgbXkgZ29vZCBsb3JkLiANCg0KUm9tLiBObyBtYXR0ZXIgOyBnZXQgdGhlZSBnb25lLCANCg0KQW5kIGhpcntbJiomXX1lIHRob3NlIGhvcnNlcyA7IElcJ2xsIGJlIHdpdGggdGhlZSBzdHJhaWdodC5cJ1wnIA0KDQpcIk5vdGhpbmcsXCIgYXMgTWFnaW5uIGhhcyB7WyYqJl19b2JzZXJ2ZWQsIFwiY2FuIGJlIG1vcmUgDQpxdWlldCB0aGFuIGhpcyBmaW5hbCBkZXRlcm1pbmF0aW9uLCANCg0KKiBXZWxsLCBKdWx7WyYqJl19aWV0LCBJIHdpbGwgbGllIHdpdGggdGhlZSB0by1uaWdodC5cJyANCg0KXCJJdCBpcyBwbGFpbiBKdWxpZXQuIC4gwrsgLiBUaGVyZSBpe1smKiZdfXMgbm90aGluZyBhYm91dCBeQ3UtIA0KcGlkXCdzIGFycm93XCcgb3IgXCdEaWFuXCdzIHdpdDtcJyBubyBob25leWVkIHdvcmQgZXNjYXBlc3tbJiomXX0gDQoNCiogVGhlIEdlcm1hbiBwcm9mZXNzb3Igc29tZXRpbWVzIGRvZXMgbm90IHF1aXRlIGtlZXAgcGFjZSB3aXRoIFNoYWvCqyANe1smKiZdfQpzcGVyZSwgYW5kIGlzIGhlYXJkIHN0dW1ibGluZyBoZWF2aWx5IGJlaGluZCBoaW0uIEdlcnZpbnVzIHRodXMgZGVzY3JpYmVzIA17WyYqJl19Ck1lcmN1dGlvIDogKlwnIEEgbWFuIHdpdGhvdXQgY3VsdHVyZSwgY29hcnNlIGFuZCBydWRlLCB1Z2x5LCBhIHNjb3JuZnVsIHJpZGl7WyYqJl19wqsgDQpjdWxlciBvZiBhbGwgc2Vuc2liaWxpdHkgYW5kIGxvdmUuXCIgDQoNClJvbWVvIGFuZCBKdWxpZXQgMTA1IA0KDQpoaXMgbGl7WyYqJl19cHMsIG5vciwgYWdhaW4sIGRvZXMgYW55IGFjY2VudCBvZiBkZXNwYWlyLiBIaXMgbWluZCANCmlzIHNvIG1hZGUgdXAsIHRoZSB3aHtbJiomXX1vbGUgY291cnNlIG9mIHRoZSBzaG9ydCByZW1haW5kZXIgDQpvZiBoaXMgbGlmZSBzbyB1bmFsdGVyYWJseSBmaXhlZCwgdGhhdCBpe1smKiZdfXQgaXMgcGVyZmVjdGx5IHVzZWxlc3MgDQp0byB0aGluayBtb3JlIGFib3V0IGl0LlwiIF4gVGhlc2Ugd29yZHMsIGJlY2F1c2UgdGhle1smKiZdfXkgDQphcmUgdGhlIHNpbXBsZXN0LCBhcmUgYW1vbmcgdGhlIG1vc3QgbWVtb3JhYmxlIHRoYXQgDQpFb21lbyB1dHRlcnMuIElzIHR7WyYqJl19aGlzLCBpbmRlZWQsIHRoZSBzYW1lIEVvbWVvIHdobyANCnNpZ2hlZCBhbmQgd2VwdCBhbmQgc3Bva2Ugc29ubmV0LXdpc2UsIGFuZHtbJiomXX0gcGVubmVkIGhpbS0gDQpzZWxmIGluIGhpcyBjaGFtYmVyLCBzaHV0dGluZyB0aGUgZGF5bGlnaHQgb3V0IGZvciBsb3ZlIG9mIA0Ke1smKiZdfVJvc2FsaW5lPyBOb3cgcGFzc2lvbiwgaW1hZ2luYXRpb24sIGFuZCB3aWxsIGFyZSBmdXNlZCANCnRvZ2V0aGVyLCBhbmQgRW9tZW97WyYqJl19LCB3aG8gd2FzIHdlYWssIGhhcyBhdCBsZW5ndGggYmUtIA0KY29tZSBzdHJvbmcuIA0KDQpJbiB0d28gbm90ZXdvcnRoeSBwYXJ0aXtbJiomXX1jdWxhcnMgU2hha3NwZXJlIGhhcyB2YXJpZWQgDQpmcm9tIGhpcyBvcmlnaW5hbC4gSGUgaGFzIGNvbXByZXNzZWQgdGhlIGFjdGlve1smKiZdfW4gZnJvbSANCnNvbWUgbW9udGhzIGludG8gZm91ciBvciBmaXZlIGRheXMuZiBUaHVzIHByZWNpcGl0YW5jeSANCg0KKiBcIiBTaGFre1smKiZdfWVzcGVhcmUgUGFwZXJzLFwiIHAuIDk5LiANCg0KZiBUaGUgZm9sbG93aW5nIHBhc3NhZ2UsIHF1b3RlZCBieSBILiBILiBGdXJuZXNze1smKiZdfSAodmFyaW9ydW0gUm9tZW8gYW5kIA0KSnVsaWV0XiBwcC4gMjI2LCAyMjcpIGZyb20gTXIuIENsYXJrZSwgbWF5IGJlIHNlcnZpY2V7WyYqJl19YWJsZSBhcyBnaXZpbmcgc29tZSBvZiANCnRoZSBub3RlcyBvZiB0aW1lIHdoaWNoIG9jY3VyIGluIHRoaXMgcGxheSA6IFwiIEluIHN7WyYqJl19Y2VuZSAxLCB0aGUgUHJpbmNlIGRlc2lyZXMgDQpDYXB1bGV0IHRvIGdvIHdpdGggaGltIGF0IG9uY2UsIGFuZCBNb250YWd1ZSB0b3tbJiomXX0gY29tZSB0byBoaW0gKiB0aGlzIGFmdGVybm9vbi5cJyANCkluIHNjZW5lIDIsIENhcHVsZXQgc3BlYWtzIG9mIE1vbnRhZ3VlIGJlaXtbJiomXX1uZyAqIGJvdW5kXCcgYXMgd2VsbCBhcyBoaW1zZWxmLCANCndoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBQcmluY2VcJ3MgY2hhcmdlIGh7WyYqJl19YXMganVzdCBiZWVuIGdpdmVuIHRvIGJvdGggb2YgdGhlbSwgDQphbmQgc2hvcnRseSBhZnRlciBzcGVha3Mgb2YgdGhlIGZlc3RpdntbJiomXX1hbCBhdCBoaXMgaG91c2UgKiB0aGlzIG5pZ2h0LlwnIEF0IHRoaXMgZmVzLSANCnRpdmFsIFJvbWVvIHNlZXMgSnVsaWV0LCB3aGVuIHtbJiomXX1zaGUgc3BlYWtzIG9mIHNlbmRpbmcgdG8gaGltIFwnIHRvLW1vcnJvdyxcJyBhbmQgDQpvbiB0aGF0IF5tb3Jyb3dcJyB0aGUgbG92ZXJze1smKiZdfSBhcmUgdW5pdGVkIGJ5IEZyaWFyIExhdXJlbmNlLiBBY3QgaWlpLCBvcF5ucyANCndpdGggdGhlIHNjZW5lIHdoZXJlIFR5YmFsdCB7WyYqJl19a2lsbHMgTWVyY3V0aW8sIGFuZCBkdXJpbmcgd2hpY2ggc2NlbmUgUm9tZW9cJ3MgDQp3b3JkcywgKiBUeWJhbHQsIHRoYXQgYW4gaG97WyYqJl19dXIgaGF0aCBiZWVuIG15IGtpbnNtYW4sXCcgc2hvdyB0aGF0IHRoZSB0aGVuIA0KdGltZSBpcyB0aGUgYWZ0ZXJub29uIG9mIHRoZSB7WyYqJl19c2FtZSBkYXkuIFRoZSBmcmlhciwgYXQgdGhlIGNsb3NlIG9mIHNjZW5lIDMgDQpvZiB0aGF0IGFjdCwgYmlkcyBSb21lbyBcJyBnb297WyYqJl19ZCBuaWdodCA7XCcgYW5kIGluIHRoZSBuZXh0IHNjZW5lIFBhcmlzLCBpbiByZXBseSB0byANCkNhcHVsZXRcJ3MgaW5xdWlyeSwgXCcgV3tbJiomXX1oYXQgZGF5IGlzIHRoaXMgViByZXBsaWVzLCAqIE1vbmRheV4gbXkgbG9yZC5cJyBUaGlzLCBieSANCnRoZSB3YXksIGRlbm90ZXMgdHtbJiomXX1oYXQgdGhlICogb2xkIGFjY3VzdG9tZWQgZmVhc3QgXCcgb2YgdGhlIENhcHVsZXRzLCBhY2NvcmRpbmcgDQp0byBhIHVzdWFsIHByYXtbJiomXX1jdGljZSBpbiBDYXRob2xpYyBjb3VudHJpZXMsIHdhcyBjZWxlYnJhdGVkIG9uIGEgU3VuZGF5IGV2ZW4tIA0KaW5nLiBJbiBzY2Vue1smKiZdfWUgNSBvZiBhY3QgaWlpLiBjb21lcyB0aGUgcGFydGluZyBvZiB0aGUgbG92ZXJzIGF0IHRoZSBkYXduIG9mIA0KVHVlc2RheSwgYW57WyYqJl19ZCB3aGVuLCBhdCB0aGUgY2xvc2Ugb2YgdGhlIHNjZW5lLCBKdWxpZXQgc2F5cyBzaGUgc2hhbGwgcmVwYWlyIHRvIA0KRnJpYXIgTHtbJiomXX1hdXJlbmNlXCdzIGNlbGwuIEFjdCBpdiwgY29tbWVuY2VzIHdpdGggaGVyIGFwcGVhcmFuY2UgdGhlcmUsIHRodXMgDQpjYXJyeWluZ3tbJiomXX0gb24gdGhlIGFjdGlvbiBkdXJpbmcgdGhlIHNhbWUgZGF5LCBUdWVzZGF5LiBCdXQgdGhlIGVmZmVjdCBvZiBsb25nIA0KdGltZSBpe1smKiZdfXMgaW50cm9kdWNlZCBieSB0aGUgbWVudGlvbiBvZiBcJyBldmVuaW5nIG1hc3MsXCdcJyBhbmQgYnkgdGhlIGZyaWFyXCdzIGRlLSANCnRhe1smKiZdfWlsZWQgZGlyZWN0aW9ucyBhbmQgcmVmZXJlbmNlIHRvIFwnIHRvLW1vcnJvd1wncyBuaWdodCA7XCcgc28gdGhhdCB3aGVuIHReZSBtaW57WyYqJl19ZCANCmhhcyBiZWVuIHByZXBhcmVkIGJ5IHRoZSBjaGFuZ2Ugb2Ygc2NlbmUsIGJ5IENhcHVsZXRcJ3MgYW54aW91cyBwcmVwYXJhdGl7WyYqJl19b25zIA0KZm9yIHRoZSB3XmVkZGluZywgYW5kIGJ5IEp1bGlldFwncyByZXR1cm4gdG8gZmlsaWFsIHN1Ym1pc3Npb24sIHRoZXJlIHN7WyYqJl19ZWVtcyBubyANCg0KbG82IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCmlzIGFkZGVkIHRvIHRoZSBjb3Vyc2Ugb3tbJiomXX1mIGV2ZW50cyBhbmQgcGFzc2lvbnMuIFNoYWxpc3BlcmUgDQpoYXMgYWxzbyBtYWRlIHRoZSBjYXRhc3Ryb3BoZSBtb3JlIGNhbGFte1smKiZdfWl0b3VzIHRoYW4gaXQgaXMgDQppbiBCcm9va2VcJ3MgcG9lbS4gSXQgd2FzIGhpcyBpbnZlbnRpb24gdG8gYnJpbmcgUGFyaXMgDQphe1smKiZdfWNyb3NzIFJvbWVvIGluIHRoZSBjaHVyY2gteWFyZC4gUGFyaXMgY29tZXMgdG8gc3RyZXcgDQpoaXMgZmxvd2VycywgdXR0ZXJpbmd7WyYqJl19IGluIGEgcmh5bWVkIHNleHRhaW4gKHN1Y2ggYXMgbWlnaHQgDQpoYXZlIGZhbGxlbiBmcm9tIFJvbWVvXCdzIGxpcHMgaW4gdGhlIGZ7WyYqJl19aXJzdCBhY3QpIGhpcyBwcmV0dHkgDQpsYW1lbnRhdGlvbi4gUm9tZW8gZ29lcyByZXNvbHV0ZWx5IGZvcndhcmQgdG8gZGVhdGhvIHtbJiomXX0NCkhlIGlzIG5vIGxvbmdlciBcJ1wnIHlvdW5nIFJvbWVvLFwiIGJ1dCBhZHVsdCwgYW5kIFBhcmlzIGlzIA0KdGhlIGJveS4gSGUgc3Ble1smKiZdfWFrcyB3aXRoIHRoZSBnZW50bGVuZXNzIGFuZCB3aXRoIHRoZSANCmF1dGhvcml0eSBvZiBvbmUgd2hvIGtub3dzIHdoYXQgbGlmZSB7WyYqJl19YW5kIGRlYXRoIGFyZSwgb2YgDQpvbmUgd2hvIGhhcyBnYWluZWQgdGhlIHN1cGVyaW9yIHBvc2l0aW9uIG9mIHRob3NlIHdobyANCntbJiomXX1hcmUgYWJvdXQgdG8gZGllIG92ZXIgdGhvc2Ugd2hvIHN0aWxsIG1heSBsaXZlIDogDQoNClwiIEdvb2QsIGdlbnRsZSB5b3V0aCwgdHtbJiomXX1lbXB0IG5vdCBhIGRlc3BlcmF0ZSBtYW4uIA0KRmx5IGhlbmNlIGFuZCBsZWF2ZSBtZSA7IHRoaW5rIHVwb24gdGhlc2UgZ29uZSA7e1smKiZdfSANCkxldCB0aGVtIGFmZnJpZ2h0IHRoZWUuIEkgYmVzZWVjaCB0aGVlLCB5b3V0aCwgDQpQdXQgbm90IGFub3RoZXIgc2luIHVwb257WyYqJl19IG15IGhlYWQgDQpCeSB1cmdpbmcgbWUgdG8gZnVyeS5cIiANCg0KSGUgd291bGQgc2F2ZSBQYXJpcywgaWYgdGhhdCBtaWdodCBiZS57WyYqJl19IEJ1dCBQYXJpcyBzdGlsbCANCmNyb3NzZXMgUm9tZW8sIGFuZCBoZSBtdXN0IG5lZWRzIGJlIGRlYWx0IHdpdGggOiANCg0KXCIgV2l7WyYqJl19bHQgdGhvdSBwcm92b2tlIG1lID8gdGhlbiBoYXZlIGF0IHRoZWUsIGJveSAhXCIgDQoNClJvbWVvIGhhcyBub3cgYSBkZWZpbml0ZSB7WyYqJl19b2JqZWN0IDsgaGUgaGFzIGEgZGVlZCB0byBkbywgDQphbmQgaGUgd2lsbCBub3QgYnJvb2sgb2JzdGFjbGVzLl4gDQoNCnZpb2xlbntbJiomXX1jZSBkb25lIHRvIHRoZSBpbWFnaW5hdGlvbiBieSBMYWR5IENhcHVsZXRcJ3MgcmVtYXJraW5nLCAqIFwnVGlzIG5vdyANCm5lYXIgbml7WyYqJl19Z2h0LlwnIC4gLiAuIEp1bGlldCByZXRpcmVzIHRvIGhlciBvd24gcm9vbSB3aXRoIHRoZSBpbnRlbnRpb24gb2Ygc2VsZWN0LSANCml7WyYqJl19bmcgd2VkZGluZyBhdHRpcmUgZm9yIHRoZSBuZXh0IG1vcm5pbmcsIHdoaWNoIGhlciBmYXRoZXIgaGFzIHNhaWQgc2hhbGwgYmUgDXtbJiomXX0KdGhhdCBvZiB0aGUgbWFycmlhZ2UsIGFudGljaXBhdGluZyBpdCBieSBhIHdob2xlIGRheSDigJQgV2VkbmVzZGF5IGluc3RlYWQge1smKiZdfW9mIA0KVGh1cnNkYXkuXCIgVGhlIHNsZWVwaW5nLXBvdGlvbiBpcyBleHBlY3RlZCBieSB0aGUgZnJpYXIgdG8gb3BlcmF0ZSBkdXJpe1smKiZdfW5nIA0KdHdvIC0gYW5kIC0gZm9ydHkgaG91cnMgKGFjdCBpdi4sIHNjLiAxKS4gSnVVZXQgZHJpbmtzIGl0IHVwb24gVHVlc2RheSB7WyYqJl19bmlnaHQsIA0Kb3IgcmF0aGVyIGluIHRoZSBuaWdodCBob3VycyBvZiBXZWRuZXNkYXkgbW9ybmluZyDigJQgZGVsYXlpbmcgYXMgbHtbJiomXX1vbmcgYXMgDQpzaGUgZGFyZS4gT24gdGhlIG5pZ2h0IG9mIFRodXJzZGF5IHNoZSBhd2FrZW5zIGluIHRoZSB0b21iIGFuZCBkaWVze1smKiZdfS4gDQpNYWdpbm4gYmVsaWV2ZWQgdGhhdCB0aGVyZSBtdXN0IGJlIHNvbWUgbWlzdGFrZSBpbiB0aGUgcmVhZGluZyBcIiB0d28tYW5ke1smKiZdfS0gDQpmb3J0eSBob3VycyA7XCIgYnV0IHRoZXJlIGlzIG5vIG5lZWQgdG8gc3VwcG9zZSB0aGlzLiBUaGUgcGxheSwgYXMgTWFnaW5ue1smKiZdfSANCm9ic2VydmVzLCBpcyBkYXRlZCBieSBTaGFrc3BlcmUgdGhyb3VnaG91dCB3aXRoIGEgbW9zdCBleGFjdCBhdHRlbnRpb24gdG97WyYqJl19IA0KaG91cnMuIA0KDQoqIEluIHRoZSBmaXJzdCBxdWFydG8sIEJlbnZvbGlvIGRpZXMuIE1vbnRhZ3VlIChhY3Qgdi4sIHNjLiA4KXtbJiomXX0gYW5ub3VuY2VzIA0KdGhlIGRlYXRoIG9mIGhpcyB3aWZlIFxcIHRoZSBxdWFydG8gYWRkcyB0aGUgbGluZSwgKlwnIEFuZCB5b3VuZyB7WyYqJl19QmVudm9saW8gaXMgZGXCqyANCmNlYXNlZCB0b28uXCIgDQoNClJvbWVvIGFuZCB5dWxpZXQuIDEwNyANCg0KRnJpYXIgTGF1cmVuY2V7WyYqJl19IHJlbWFpbnMgdG8gZnVybmlzaCwgdGhlIFByaW5jZSB3aXRoIGFuIA0KZXhwbGFuYXRpb24gb2YgdGhlIGV2ZW50cy4gSXQgaXMgaXtbJiomXX1tcG9zc2libGUgdG8gYWdyZWUgd2l0aCANCnRob3NlIGNyaXRpY3MsIGFtb25nIG90aGVycyBHZXJ2aW51cywgd2hvIHJlcHJlc2Vue1smKiZdfXQgdGhlIA0KZnJpYXIgYXMgYSBraW5kIG9mIGNob3J1cyBleHByZXNzaW5nIFNoYWtzcGVyZVwncyBvd24gZXRoLS0tIA0KaWNhbCBpe1smKiZdfWRlYXMsIGFuZCBoaXMgb3BpbmlvbnMgcmVzcGVjdGluZyB0aGUgY2hhcmFjdGVycyBhbmQgDQphY3Rpb24uIEl0IGlzIG5vdCBTaGF7WyYqJl19a3NwZXJlXCdzIHByYWN0aWNlIHRvIGV4cG91bmQgdGhlIA0KbW9yYWxpdGllcyBvZiBoaXMgYXJ0aXN0aWMgY3JlYXRpb25zIDsgbm97WyYqJl19ciBkb2VzIGhlIGV2ZXIsIGJ5IA0KbWVhbnMgb2YgYSBjaG9ydXMsIHN0YW5kIGFib3ZlIGFuZCBvdXRzaWRlIHRoZSBtZW4gYW5kIHtbJiomXX0NCndvbWVuIG9mIGhpcyBwbGF5cywgd2hvIGFyZSBib25lIG9mIGhpcyBib25lLCBhbmQgZmxlc2ggDQpvZiBoaXMgZmxlc2guIFRoe1smKiZdfWUgbmVhcmVzdCBhcHByb2FjaCwgcGVyaGFwcywgdG8gYSBjaG9ydXMgDQppcyB0byBiZSBmb3VuZCBpbiB0aGUgcGVyc29uIG9mIEV7WyYqJl19bm9iYXJidXMgaW4gQW50b255IGFuZCANCkNsZW9wYXRyYS4gSGFtbGV0IGNvbW1pc3Npb25zIEhvcmF0aW8gdG8gcmVwb3J0IGhpbXtbJiomXX0gDQphbmQgaGlzIGNhdXNlIGFyaWdodCB0byB0aGUgdW5zYXRpc2ZpZWQgOyBhbmQgSG9yYXRpbywgcGxhYy0gDQppbmcgdGhlIGJve1smKiZdfWRpZXMgb2YgdGhlIGRlYWQgdXBvbiBhIHN0YWdlLCBpcyBhYm91dCwgaW4ganUtIA0KZGljaWFsIG1hbm5lciwgdG8gZGVjbGFyZSB7WyYqJl19dGhlIGNhdXNlcyBvZiB0aGluZ3MgOyBidXQgU2hhay0gDQpzcGVyZSBkZWNsaW5lcyB0byBwdXQgb24gcmVjb3JkIGZvciB1cyB0aHtbJiomXX1lIGV4cGxhbmF0aW9ucyANCm1hZGUgYnkgSG9yYXRpby4gTm8gISBGcmlhciBMYXVyZW5jZSBhbHNvIGlzIG1vdmluZyANCmluIHRoe1smKiZdfWUgY2xvdWQsIGFuZCBtaXNsZWQgYnkgZXJyb3IgYXMgd15lbGwgYXMgdGhlIHJlc3QuIA0KU2hha3NwZXJlIGhhcyBuZXZlciBtYWR7WyYqJl19ZSB0aGUgbW9kZXJhdGUsIHNlbGYtcG9zc2Vzc2VkLCANCnNlZGF0ZSBwZXJzb24gYSBmaW5hbCBvciBhYnNvbHV0ZSBqdWRnZSBvZntbJiomXX0gdGhlIGltcHVsc2l2ZSANCmFuZCB0aGUgcGFzc2lvbmF0ZS4gVGhlIG9uZSBzZWVzIGEgc2lkZSBvZiB0cnV0aCB3aGljaCBpcyANe1smKiZdfQp1bnNlZW4gYnkgdGhlIG90aGVyIDsgYnV0IHRvIG5laXRoZXIgaXMgdGhlIHdob2xlIHRydXRoIA0KdmlzaWJsZS4gVGhlIGZyaWF7WyYqJl19ciBoYWQgc3VwcG9zZWQgdGhhdCBieSB2aXJ0dWUgb2YgaGlzIA0KcHJ1ZGVuY2UsIGhpcyBtb2RlcmF0aW9uLCBoaXMgc2FnZSBjb3tbJiomXX11bnNlbHMsIGhpcyBhbWlhYmxlIA0Kc29waGlzdHJpZXMsIGhlIGNvdWxkIGd1aWRlIHRoZXNlIHR3byB5b3VuZywgcGFzc2lvbmF0e1smKiZdfWUgDQpsaXZlcywgYW5kIGRvIGF3YXkgdGhlIG9sZCB0cmFkaXRpb24gb2YgZW5taXR5IGJldHdlZW4gDQp0aGUgaG91c2VzLiBUaGV7WyYqJl19cmUgaW4gdGhlIHRvbWIgb2YgdGhlIENhcHVsZXRzIGlzIHRoZSByZS0gDQp0dXJuIGJyb3VnaHQgaW4gYnkgaGlzIGludmVzdG1lbntbJiomXX10IG9mIGtpbmRseSBzY2hlbWluZy4gDQpTaGFrc3BlcmUgZGlkIG5vdCBiZWxpZXZlIHRoYXQgdGhlIGhpZ2hlc3Qgd2lzZG9tIG9me1smKiZdfSANCmh1bWFuIGxpZmUgd2FzIGFjcXVpcmFibGUgYnkgbWlsZCwgbW9uYXN0aWMgbWVkaXRhdGlvbiwgDQphbmQgYnkgZ2F0aGVyaW57WyYqJl19ZyBvZiBzaW1wbGVzIGluIHRoZSBjb29sbmVzcyBvZiB0aGUgZGF3bi4gDQpGcmlhciBMYXVyZW5jZSB0b28sIG9sZCBtYW4sIGhhZHtbJiomXX0gaGlzIGxlc3NvbiB0byBsZWFybi4gDQoNCkluIGFjY29yZGFuY2Ugd2l0aCBoaXMgdmlldyB0aGF0IHRoZSBmcmlhciByZXByZXNle1smKiZdfW50cyANCnRoZSBjaG9ydXMgaW4gdGhpcyB0cmFnZWR5LCBHZXJ2aW51cyBkaXNjb3ZlcnMgYXMgdGhlIA0KbGVhZGluZyBpZGVhIG97WyYqJl19ZiB0aGUgcGllY2UgYSBsZXNzb24gb2YgbW9kZXJhdGlvbiA6IHRoZSANCg0KbG84IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIHtbJiomXX1BcnQuIA0KDQpwb2V0IG1ha2VzIGhpcyBjb25mZXNzaW9uIHRoYXQgXCIgZXhjZXNzIGluIGFueSBlbmpveW1lbnReIA0KaG93ZXZlcntbJiomXX0gcHVyZSBpbiBpdHNlbGYsIHRyYW5zZm9ybXMgaXRzIHN3ZWV0IGludG8gYml0dGVyLSANCm5lc3MgOyB0aGF0IGRldm90aW9uIHRve1smKiZdfSBhbnkgc2luZ2xlIGZlZWxpbmcsIGhvd2V2ZXIgbm9ibGUsIA0KYmVzcGVha3MgaXRzIGFzY2VuZGVuY3kgOyB0aGF0IHRoaXMgYXN7WyYqJl19Y2VuZGVuY3kgbW92ZXMgdGhlIA0KbWFuIGFuZCB3b21hbiBvdXQgb2YgdGhlaXIgbmF0dXJhbCBzcGhlcmVzLlwiIFwiXiBJdCBpcyANe1smKiZdfQpzb21ld2hhdCBoYXJkIHVwb24gU2hha3NwZXJlIHRvIHN1cHBvc2UgdGhhdCBoZSBzZWNyZXQtIA0KZWQgaW4gZWFjaCBvZiBoaXN7WyYqJl19IGRyYW1hcyBhIGNlbnRyYWwgaWRlYSBmb3IgYSBHZXJtYW4gY3JpdMKwIA0KaWMgdG8gZGlzY292ZXIuIEJ1dCBpZiB0aGVyZSBiZXtbJiomXX0gYSBjZW50cmFsIGlkZWEgaW4gUm9tZW8gDQphbmQgSnVsaWV0XiBjYW4gdGhpcyBiZSBpdD8gV2hhdCEgZGlkIFNoYWtzcGVyZSwge1smKiZdfXRoZW4sIA0KbWVhbiB0aGF0IFJvbWVvIGFuZCBKdWxpZXQgbG92ZWQgdG9vIHdlbGw/IFRoYXQgYWxsIA0Kd291bGQgaGF2ZSBiZWV7WyYqJl19biBiZXR0ZXIgaWYgdGhleSBoYWQgc3VycmVuZGVyZWQgdGhlaXIgDQpsaXZlcyBlYWNoIHRvIHRoZSBvdGhlciBsZXNzIHJhcHR1cntbJiomXX1vdXNseSwgbGVzcyBhYnNvbHV0ZWx5ID8gDQpBdCB3aGF0IHByZWNpc2UgcG9pbnQgb3VnaHQgYSBkaXNjcmVldCByZWdhcmQgZm9ye1smKiZdfSBhbm90aGVyIA0KaHVtYW4gc291bCB0byBjaGVjayBpdHNlbGYgYW5kIHNheSwgXCIgVGh1cyBmYXIgdG93XmFyZHMgDQpjb21wbGV0e1smKiZdfWUgdW5pb24gd2lsbCBJIGFkdmFuY2UsIGJ1dCBoZXJlIGl0IGlzIHBydWRlbnQgdG8gDQpzdG9wIFYgT3IgYXJlIG5vdCBFb21lb1wne1smKiZdfXMgd29yZHMgYXQgbGVhc3QgYXMgdHJ1ZSBhcyB0aGUgDQpmcmlhclwncz8gDQoNCipcJyBDb21lIHdoYXQgc29ycm93IGNhbiwgDQpJdHtbJiomXX0gY2Fubm90IGNvdW50ZXJ2YWlsIHRoZSBleGNoYW5nZSBvZiBqb3ktIA0KVGhhdCBvbmUgc2hvcnQgbWludXRlIGdpdmVzIG1lIGlue1smKiZdfSBoZXIgc2lnaHQgDQpEbyB0aG91IGJ1dCBjbG9zZSBvdXIgaGFuZHMgd2l0aCBob2x5IHdvcmRzLCANClRoZW4gbG92ZS1kZXZvdXJ7WyYqJl19aW5nIERlYXRoIGRvIHdoYXQgaGUgZGFyZSwgDQpJdCBpcyBlbm91Z2ggSSBtYXkgYnV0IGNhbGwgaGVyIG1pbmUuXCIgDQoNCkRvdWJ7WyYqJl19dGxlc3MsIGFsc28sIENvcmRlbGlhIG1pc3VuZGVyc3Rvb2QgdGhlIHRydWUgbmF0dXJlIA0Kb2YgdGhlIGZpbGlhbCByZWxhdGlvbntbJiomXX0gOyB1cG9uIHBlcmNlaXZpbmcgYSBwb3NzaWJpbGl0eSBvZiBkZS0gDQpmZWF0LCBzaGUgb3VnaHQgdG8gaGF2ZSByZXRyZWF0ZWQge1smKiZdfXRvIHRoZSBzYWZlIGNvYXN0IG9mIA0KRnJhbmNlLiBQb3J0aWFqIHVwb24gaGVhcmluZyB0aGF0IHRoZSBlbmVtaWVzIG9mIEJydXR7WyYqJl19dXMgDQp3ZXJlIG1ha2luZyBoZWFkLCB3ZWFrbHkgXCIgZmVsbCBkaXN0cmFjdCBcIiBhbmQgc3dhbGxvd2VkIA0KZmlyZSwgbm90IGhhe1smKiZdfXZpbmcgbGVhcm5lZCB0aGF0IGEgd2VsbC1iYWxhbmNlZCBoZWFydCBiZXN0b3dzIA0KdXBvbiBhIGh1c2JhbmQgb25seSBhIHJlZ3V7WyYqJl19bGF0ZWQgbW9kZXJhdGlvbiBvZiBsb3ZlIDsgDQpTaGFrc3BlcmUsIGJ5IHRoZSBleGFtcGxlIG9mIFBvcnRpYSwgd291bGQgdGVhY3tbJiomXX1oIHVzIHRoYXQgDQphIHBlbmFsdHkgaXMgcGFpZCBmb3IgZXhjZXNzIG9mIHdpZmVseSBsb3lhbHR5ICEgSlNUbyA7IHRoaXMgDQpte1smKiZdfWV0aG9kIG9mIGp1ZGdpbmcgY2hhcmFjdGVycyBhbmQgYWN0aW9ucyBieSBncm9zcyBhd2FyZHMgDQoNCiogXCIgU2hha2VzcGVhcmUge1smKiZdfUNvbm1pY250YXJpZXMsXCIgYnkgR2VydmludXMsIHRyYW5zbGF0ZWQgYnkgRi4gRS4gQnVubmV0dCANCjE4NjMuIFZvbC4gaS4sIHAue1smKiZdfSAyOTMuIA0KDQpSb21lbyBhbmQgSnVsaWV0LiAxMDkgDQoNCm9mIHBsZWFzdXJlIGFuZCBwYWluIGFzIG1lYXN1cmVkIGJ5IHRoZSB7WyYqJl19c2Vuc2VzIGRvZXMgbm90IA0KaW50ZXJwcmV0IHRoZSBldGhpY3Mgb3IgdGhlIGFydCBvZiBTaGFrc3BlcmUgb3Igb2YgYW55IA0KZ3tbJiomXX1yZWF0IHBvZXQuIFNoYWtzcGVyZSB3YXMgYXdhcmUgdGhhdCBldmVyeSBzdHJvbmcgZW1vLSANCnRpb24gd2hpY2ggZXhhbHRzIGFue1smKiZdfWQgcXVpY2tlbnMgdGhlIGlubmVyIGxpZmUgb2YgbWFuIGF0IA0KdGhlIHNhbWUgdGltZSBleHBvc2VzIHRoZSBvdXRlciBsaWZlIG97WyYqJl19ZiBhY2NpZGVudCBhbmQgY2lyLSANCmN1bXN0YW5jZSB0byBpbmNyZWFzZWQgcmlzay4gQnV0IHRoZSB0aGVtZSBvZiB0cmFnZWR5LHtbJiomXX0gDQphcyBjb25jZWl2ZWQgYnkgdGhlIHBvZXQsIGlzIG5vdCBtYXRlcmlhbCBwcm9zcGVyaXR5IG9yIA0KZmFpbHVyZSA6IGl0IGlze1smKiZdfSBzcGlyaXR1YWwgOyBmdWxmaWxtZW50IG9yIGZhaWx1cmUgb2YgYSBkZXN0aW55IA0KaGlnaGVyIHRoYW4gdGhhdCB3aGljaCBpcyB7WyYqJl19cmVsYXRlZCB0byB0aGUgYXJ0IG9mIGdldHRpbmcgb24gDQppbiBsaWZlLiBUbyBkaWUsIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uc3tbJiomXX0sIG1heSBiZSBhIGhpZ2hlciANCnJhcHR1cmUgdGhhbiB0byBsaXZlLiANClAgU2hha3NwZXJlIGRpZCBub3QgaW50ZW5kIHRoYXQge1smKiZdfXRoZSBmZWVsaW5nIGV2b2tlZCBieSANCnRoZSBsYXN0IHNjZW5lIG9mIHRoaXMgdHJhZ2VkeSBvZiBqUm9tZW8gYW5kIEp1bGlldCB7WyYqJl19c2hvdWxkIA0KYmUgb25lIG9mIGhvcGVsZXNzIHNvcnJvdyBvciBkZXNwYWlyIGluIHByZXNlbmNlIG9mIGZhaWwtIA0KdXJlLCBydXtbJiomXX1pbiwgYW5kIG1pc2VyYWJsZSBjb2xsYXBzZS5cIl4gSnVsaWV0IGFuZCBLb21lbywgdG8gDQp3aG9tIFZlcm9uYSBoYXMgYmVlbiBhIHtbJiomXX1oYXJzaCBzdGVwbW90aGVyLCBoYXZlIGFjY29tLSANCg0KKiBLcmV5c3NpZyB3cml0ZXMgd2l0aCByZWZlcmVuY2UgdG8gdGhpcyB0e1smKiZdfXJhZ2VkeSA6ICpcJyBOaWNodCB6dWZhbGxpZyBpc3QgZGllIA0KaWRlYWxlLCBsZWlkZW5zY2hhZnRVY2hlIEp1Z2VuZFVlYmUgaW4ge1smKiZdfVNhZ2UgdW5kIEdlZGljaHQgYWxsZXIgVm9sa2VyIGRpZSANClNjaHdlc3RlciBkZXMgTGVpZGVzLiBTaWUgaGF0IGlocmVuIExvaG57WyYqJl19IGluIHNpY2ggc2VsYnN0LiBEYXMgTGViZW4gaGF0IA0KaWhyIE5pY2h0cyB3ZWl0ZXIgenUgYmlldGVuIFwiIChcIiBTaGFrZXNwZWFye1smKiZdfWUtRnJhZ2VuLFwiIHAuIDEyMCkuIEluIHRoZSBTaGFrZS0gDQpzcGVhcmUtSmFocmJ1Y2hqIHZvbC4gaXguLCBwLiAzMjgsIHdpbGwge1smKiZdfWJlIGZvdW5kIGEgbm90aWNlIG9mIGEgc3R1ZHkgb2YgUm9tZW8gDQphbmQgSnVsaWV0IChMZWlwc2ljLCAxODc0KSBieSB0aGUgY2V7WyYqJl19bGVicmF0ZWQgYXV0aG9yIG9mIHRoZSBcJ1wnUGhpbG9zb3BoaWMgZGVzIA0KVW5iZXd1c3N0ZW4sXCIgRS4gdm9uIEhhcnRtYW5uLiBIZXtbJiomXX0gcHJvbm91bmNlcyB0aGF0IHRoZSBsb3ZlIGJldHdlZW4gDQpKdWxpZXQgYW5kIFJvbWVvIGlzIG5vdCB0aGUgZGVlcCwgc3Bpcml0e1smKiZdfXVhbCwgR2VybWFuIGlkZWFsIG9mIGxvdmUsIGJ1dCBhIA0Kc2Vuc3VvdXMgcGxheSBvZiBwYXNzaW9uYXRlIGZhbmN5LiAoRGlkIG57WyYqJl19b3QgdGhpcyBsYXRlc3QgbGVhZGVyIG9mIEdlcm1hbiANCnRob3VnaHQgcHJldmlvdXNseSB0ZWFjaCB0aGF0IGxvdmUgYXQgaXRzIHtbJiomXX1iZXN0IGFuZCB0cnVlc3QgaXMgYW4gaWxsdXNpb24gaW0tIA0KcG9zZWQgdXBvbiB0aGUgaW5kaXZpZHVhbCBieSB0aGUgVW5jb25ze1smKiZdfWNpb3VzIFNvbWV3aGF0IHdoaWNoIGRpc3BsYXlzIA0KaXRzZWxmIHRocm91Z2ggbmF0dXJlIGFuZCBtYW4g4oCUIGFuIGlsbHVzaW97WyYqJl19biB3aGljaCBzZXJ2ZXMgdGhlIGltcG9ydGFudCBwdXItIA0KcG9zZSBvZiBzZWN1cmluZyB0aGUgY29udGludWFuY2Ugb2YgdGhlIHtbJiomXX1zcGVjaWVzID8pIFRvIHN1Y2ggY3JpdGljaXNtIHRoZSANCnRydWUgYW5zd2VyIHdhcyBnaXZlbiBsb25nIHNpbmNlIGJ5IEZyYW56e1smKiZdfSBIb3JuIDogXCIgU2hha3NwZWFyZSBrbm93cyANCm5vdGhpbmcsIGFuZCBjaG9vc2VzIHRvIGtub3cgbm90aGluZywgb2YgdGhhdCBme1smKiZdfWFsc2UgZGl2aXNpb24gb2YgbG92ZSBpbnRvIA0Kc3Bpcml0dWFsIGFuZCBzZW5zdWFsIDsgb3IsIHJhdGhlciwgaGUga25vd3Mgb2Z7WyYqJl19IGl0IG9ubHkgd2hlbiBoZSBwdXJwb3NlbHkgDQp0YWtlcyBub3RpY2Ugb2YgaXQg4oCUIHRoYXQgaXMsIHdoZW4gaGUgd2lzaGVzIHtbJiomXX10byBkZXBpY3QgYWZmZWN0YXRpb24gc3RyaXZpbmcgYWZ0ZXIgDQphIG1pc2NvbmNlaXZlZCBQbGF0b25pc20gOyBvciwgb24gdGhle1smKiZdfSBvdGhlciBoYW5kLCB3aGVuIGhlIHBvcnRyYXlzIGEgY29hcnNlLCANCmJydXRpc2gsIG1lcmVseSBlYXJ0aGx5IHBhc3Npb24gXCIge1smKiZdfSh0cmFuc2xhdGVkIGluIEZ1cm5lc3NcJ3MgUm9tZW8gYW5kIEp1bGlldF4gDQpwLiA0NDYpLiBDb250cmFzdCBKdWxpZXQgd2l0aCBDe1smKiZdfXJlc3NpZGE7IG9yIEdvZXRoZVwncyBNaWdub24gd2l0aCBoaXMgUGhpbGluYS4gDQpTZWUgU2hhSmNlc3BlYXJlLUphaHJodWNcXHlvXFx7WyYqJl19LlZcXFxcLl5eLmxeXFwgYW5kIE1ycy4gSmFtZXNvblwncyBcIkNoYXJhY3Rlci0gDQppc3RpY3Mgb2YgV29tZW4sXCIgZXNwZWNpYWxseSB0aHtbJiomXX1lIHBhc3NhZ2UgaW4gd2hpY2ggc2hlIGNvbW1lbnRzIHVwb24gSmlpKiANClsgbGlldFwncyBzb2xpbG9xdXksIFwiIEdhbGxvcCBhcGF7WyYqJl19Y2UuXCIgDQoNCkkgbE8gU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KcGxpc2hlZCB0aGVpciBsaXZlcy4gVGhleSB7WyYqJl19bG92ZWQgcGVyZmVjdGx5LiBFb21lbyBoYWQgDQphdHRhaW5lZCB0byBtYW5ob29kLiBKdWxpZXQgaGFkIHN1ZGRlbmx5IGJsb3Nzb3tbJiomXX1tZWQgDQppbnRvIGhlcm9pYyB3b21hbmhvb2QuIFRocm91Z2ggaGVyLCBhbmQgdGhyb3VnaCBhbi0gDQpndWlzaCBhbmQgam95LCBoe1smKiZdfWVyIGxvdmVyIGhhZCBlbWVyZ2VkIGZyb20gdGhlIGxpZmUgb2YgDQpkcmVhbSBpbnRvIHRoZSB3YWtpbmcgbGlmZSBvZiB0cnV0aC57WyYqJl19IEp1bGlldCBoYWQgc2F2ZWQgDQpoaXMgc291bCA7IHNoZSBoYWQgcmVzY3VlZCBoaW0gZnJvbSBhYmFuZG9ubWVudCB0byANCnNwdXtbJiomXX1yaW91cyBmZWVsaW5nLCBmcm9tIGFiYW5kb25tZW50IHRvIG1vcmJpZCBzZWxmIC1jb24tIA0Kc2Npb3VzbmVzcywgYW5kIHRoZSBle1smKiZdfW5lcnZhdGluZyBsdXh1cnkgb2YgZW1vdGlvbiBmb3IgDQplbW90aW9uXCdzIHNha2UuIFdoYXQgbW9yZSB3YXMgbmVlZGVkID8gQW5ke1smKiZdfSBhcyBzZWMtIA0Kb25kYXJ5IHRvIGFsbCB0aGlzLCB0aGUgZW5taXR5IG9mIHRoZSBob3VzZXMgaXMgYXBwZWFzZWQuIA0KTW9udGF7WyYqJl19Z3VlIHdpbGwgcmFpc2UgaW4gcHVyZSBnb2xkIHRoZSBzdGF0dWUgb2YgdHJ1ZSBhbmQgDQpmYWl0aGZ1bCBKdWxpZXQ7IENhcHVsZXtbJiomXX10IHdpbGwgcGxhY2UgUm9tZW8gYnkgaGVyIHNpZGUuIA0KVGhlaXIgbGl2ZXMgYXJlIGFjY29tcGxpc2hlZCA7IHRoZXkgZ28gdG8ge1smKiZdfXRha2UgdXAgdGhlaXIgDQpwbGFjZSBpbiB0aGUgbGFyZ2UgaGlzdG9yeSBvZiB0aGUgd29ybGQsIHdoaWNoIGNvbnRhaW5zIA0KbWF7WyYqJl19bnkgc3VjaCB0aGluZ3MuIFNoYWtzcGVyZSBpbiB0aGlzIGxhc3Qgc2NlbmUgY2FycmllcyANCmZvcndhcmQgb3VyIGltYWdpbmF0aXtbJiomXX1vbiBmcm9tIHRoZSBob3Jyb3Igb2YgdGhlIHRvbWIgdG8gDQp0aGUgYmV0dGVyIGxpZmUgb2YgbWFuLCB3aGVuIHN1Y2ggbG92ZSBhe1smKiZdfXMgdGhhdCBvZiBKdWxpZXQgDQphbmQgUm9tZW8gd2lsbCBiZSBwdWJsaWNseSBob25vcmVkIGFuZCByZW1lbWJlcmVkIGJ5IA0KYSB7WyYqJl19bWVtb3JpYWwgYWxsIGdvbGQuXCJeIA0KDQoqIEFtb25nIHRoZSBjcml0aWNzIG9mIHRoaXMgcGxheSwgb25lIG9mIHRoZSBtb3N0IGl7WyYqJl19bnRlbGxpZ2VudGx5IGFwcHJlY2lhdGl2ZSANCmlzIEdlb3JnZSBGbGV0Y2hlciwgaW4gaGlzIFwnXCdTdHVkaWVzIG9mIFNoYWtlc3Ble1smKiZdfWFyZVwiICgxODQ3KS4gRmxldGNoZXJcJ3MgaW4tIA0KdGVycHJldGF0aW9uIG9mIEp1bGlldFwncyBzb2xpbG9xdXkgYmVmb3JlIHNoZSB7WyYqJl19ZHJpbmtzIHRoZSBzbGVlcGluZy1wb3Rpb24gZGlmZmVycyANCmZyb20gdGhhdCBnaXZlbiBhYm92ZSA7IGFuZCBJIHdpbGwgbm90IHtbJiomXX1hc3NlcnQgdGhhdCBGbGV0Y2hlciBtYXkgbm90IGJlIHJpZ2h0IA0KKHBwLiAzNDktMzU1KS4gSXQgbWF5IGJlIHdvcnRoIHdoaWxle1smKiZdfSB0byBhZGQgYSBub3RlIG9uIHRoZSBjaGllZiBjcml0aWNhbCANCmNydXggb2YgdGhlIHBsYXksIFwiUnVubmF3YXllcyBFeWVzXCIgKHtbJiomXX1hY3QgaWlsLCBzYy4uMiwgMS4gNikuIFRoZSBub3RlcyBvbiANCnRoaXMgcGFzc2FnZSBpbiBNci4gRnVybmVzc1wncyBlZGl0aW9uIHtbJiomXX1vZiB0aGUgcGxheSBmaWxsIG5lYXJseSB0aGlydHkgY2xvc2VseSANCnByaW50ZWQgcGFnZXMuIFwiIERpZSBaZWl0IGlzdCB1bmVuZHtbJiomXX1saWNoIGxhbmcsXCIgc2FpZCBHb2V0aGUuIEkgYWRkIG15IHN0b25lIA0KdG8gdGhpcyBjYWlybiwgdW5kZXIgd2hpY2ggdGhlIG1lYXtbJiomXX1uaW5nIGxpZXMgYnVyaWVkLiBJbiBUaGUgTWVyY2hhbnQgb2YgDQpWZW5pY2UgKGFjdCBpaS4sIHNjLiA2KSB0aGVyZSBpcyBhbiBle1smKiZdfWNobyBvZiB0aGUgc2Vuc2UgYW5kIG9mIHRoZSBsYW5ndWFnZSBvZiANCnRoaXMgcGFzc2FnZSB3aGljaCBjb25maXJtcyB0aGUgcmV7WyYqJl19YWRpbmcgUnVubmF3YXllcy4gR3JhdGlhbm8gYW5kIFNhbGFyaW5vIA0KaGF2ZSBzcG9rZW4gb2YgdGhlIGVhZ2VybmVzcyBvZiBsb3tbJiomXX12ZXJzIG91dHJ1bm5pbmcgdGltZS4gVGhpcyBzZXQgU2hhay0gDQpzcGVyZSB0aGlua2luZyBvZiB0aGUgcGFzc2FnZSBpbiBSb21le1smKiZdfW8gYW5kIEp1bGlldCwgSmVzc2ljYSwgaW4gaGVyIGJveVwnYSANCmRpc2d1aXNlLCBzYXlzLCANCg0KXCIgTG92ZSBpcyBibGluZCwgYXtbJiomXX1uZCBsb3ZlcnMgY2Fubm90IHNlZSANCg0KVGhlIHByZXR0eSBmb2xsaWVzIHRoYXQgdGhlbXNlbHZlcyBjb21taXQuIA0KDQrigKIge1smKiZdfeKAouKAouKAouKAouKAoiANCg0KTG9yZW56by4gQnV0IGNvbWUgYXQgb25jZTsgDQoNCkZvciB0aGUgY2xvc2Ugbmlna3QgZG90aCB7WyYqJl19cGxheSB0aGUgcnVuYXdheSxeXCcqIA0KDQpIYW1sZXQsIGluIA0KDQpJSS4gDQoNCi8gV2hlbiBIYW1sZSB0IHdhcyB3cml0dGVuLiB7WyYqJl19UyBoYWtzcGVyZSBoYS5kIHBhIHNzZWQgDQp0aHJvdWdoIGhpcyB5ZWFycyBvZiBhcHByZW4gdGljZXNoaXAgYW5kIGJlY29tZSBhIHtbJiomXX1tYXNeIA0KdGVyLWRyYW1hdGlzdCBJbiBnIHBpbnQgb3Qgc3R5VHAgdHxpXiBQXl5KIFJmZmxuZHMgbWlybHdeIA0KYmV0d2VlbiBoe1smKiZdfWlzIGVhcmx5IGFuZCBoIGlzIGxhdGUgc3Qgd29ya3NeIFRoZSBzdHVkaW91cyANCnN1cGVyaW50ZW5kZW5jZSBvZiB0aGUgcG9ldCB7WyYqJl19b3ZlciB0aGUgZGV2ZWxvcG1lbnQgb2YgaGlzIA0KdGhvdWdodCBhbmQgaW1hZ2luaW5ncywgdmVyeSBhcHBhcmVudCBpbiBTaGFrc3tbJiomXX1wZXJlXnMgDQplYXJseSB3cml0aW5ncywgbm93IGNvbmNlYWxzIGl0c2VsZiA7IGJ1dCB0aGUgYWN0aW9uIG9mIGltLSANCmFnaW5he1smKiZdfXRpb24gYW5kIHRob3VnaHQgaGFzIG5vdCB5ZXQgYmVjb21lIGVtYmFycmFzc2luZyANCmluIGl0cyBzd2lmdG5lc3MgYW5kIG11bHR7WyYqJl19aXBsaWNpdHkgb2YgZGlyZWN0aW9uLl4gUmFwaWQgDQpkaWFsb2d1ZSBpbiB2ZXJzZSwgYWRtaXJhYmxlIGZvciBpdHMgY29tYmluYXtbJiomXX10aW9uIG9mIHZlcmktIA0Kc2ltaWxpdHVkZSB3aXRoIGFydGlzdGljIG1ldHJpY2FsIGVmZmVjdHMsIG9jY3VycyBpbiB0aGUgDQpze1smKiZdfWNlbmUgaW4gd2hpY2ggSGFtbGV0IHF1ZXN0aW9ucyBoaXMgZnJpZW5kcyByZXNwZWN0aW5nIA0KdGhlIGFwcGVhcmFuY2Ugb2YgdGh7WyYqJl19ZSBnaG9zdCAoYWN0IGkuLCBzYy4gMikgOyB0aGUgc29saWxvcXVpZXMgDQpvZiBIYW1sZXQgYXJlIGV4Y2VsbGVudCBleGFtcGxlc3tbJiomXX0gb2YgdGhlIHNsb3csIGR3ZWxsaW5nIA0KdmVyc2Ugd2hpY2ggU2hha3NwZXJlIGFwcHJvcHJpYXRlcyB0byB0aGUgdXR0ZXJhbmNle1smKiZdfSBvZiANCnRob3VnaHQgaW4gc29saXR1ZGUgOyBhbmQgbm93aGVyZSBkaWQgU2hha3NwZXJlIHdyaXRlIGEgDQpub2JsZXIgcGllY2V7WyYqJl19IG9mIHByb3NlIHRoYW4gdGhlIHNwZWVjaCBpbiB3aGljaCBIYW1sZXQgDQpkZXNjcmliZXMgdG8gRW9zZW5jcmFudHogYW5kIEd1aXtbJiomXX1sZGVuc3Rlcm4gaGlzIG1lbGFuLSANCg0KQ29tcGFyZSB0aGUgZmlyc3QgdGVuIGxpbmVzIG9mIEp1bGlldFwncyBzb2xpbG9xdXksIHtbJiomXX1hbmQgb2JzZXJ2ZSB0aGUgZWNobyBvZiANCnNlbnNlIGFuZCBzcGVlY2guIA0KDQoqIFRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgU2hhe1smKiZdfWtzcGVyZVwncyBsYXRlc3Qgc3R5bGUgYXJlIGRlc2NyaWJlZCBieSBNci4gU3BlZC0gDQpkaW5nIGluIHRoZSBmb2xsb3dpbmcgbWFze1smKiZdfXRlcmx5IHBpZWNlIG9mIGNyaXRpY2lzbSA6IFwiIFRoZSBvcGVuaW5nIG9mIFteSGVucnkgDQpWSUlJSl0gLCAuIC4gc2VlbWVkIHRve1smKiZdfSBoYXZlIHRoZSBmdWxsIHN0YW1wIG9mIFNoYWtzcGVyZSBpbiBoaXMgbGF0ZXN0IG1hbi0gDQpsaWVyIDsgdGhlIHNhbWUgY2xvc2V7WyYqJl19IC0gcGFja2VkIGV4cHJlc3Npb24gOyB0aGUgc2FtZSBsaWZlIGFuZCByZWFsaXR5IGFuZCANCmZyZXNobmVzcyA7IHRoZSBzYW1lIHtbJiomXX1yYXBpZCBhbmQgYWJydXB0IHR1cm5pbmdzIG9mIHRob3VnaHQsIHNvIHF1aWNrIHRoYXQgDQpsYW5ndWFnZSBjYW4gaGFyZGx5IGZve1smKiZdfWxsb3cgZmFzdCBlbm91Z2ggOyB0aGUgc2FtZSBpbXBhdGllbnQgYWN0aXZpdHkgb2YgaW4tIA0KdGVsbGVjdCBhbmQgZmFuY3ksIHd7WyYqJl19aGljaCwgaGF2aW5nIG9uY2UgZGlzY2xvc2VkIGFuIGlkZWEsIGNhbm5vdCB3YWl0IHRvIHdvcmsgDQppdCBvcmRlcmx5IG91dDsgdHtbJiomXX1oZSBzYW1lIGRhcmluZyBjb25maWRlbmNlIGluIHRoZSByZXNvdXJjZXMgb2YgbGFuZ3VhZ2UgDQp3aGljaCBwbHVuZ2VzIGhlYWRse1smKiZdfW9uZyBpbnRvIGEgc2VudGVuY2Ugd2l0aG91dCBrbm93aW5nIGhvdyBpdCBpcyB0byBjb21lIA0KZm9ydGggOyB0aGUgc2FtZSBjYXJ7WyYqJl19ZWxlc3MgbWV0cmUgd2hpY2ggZGlzZGFpbnMgdG8gcHJvZHVjZSBpdHMgaGFybW9uaW91cyANCmVmZmVjdHMgYnkgdGhlIG9yZGluYXtbJiomXX1yeSBkZXZpY2VzLCB5ZXQgaXMgZXZpZGVudGx5IHN1YmplY3QgdG8gYSBtYXN0ZXIgb2YgaGFyLSANCm1vbnk7IHRoZSBzYW1lIGVue1smKiZdfXRpcmUgZnJlZWRvbSBmcm9tIGJvb2stbGFuZ3VhZ2UgYW5kIGNvbW1vbnBsYWNlXCIgDQoob24gdGhlIHNldmVyYWwgc2hhcmVzIG9me1smKiZdfSBTaGFrc3BlcmUgYW5kIEZsZXRjaGVyIGluIHRoZSBwbGF5IG9mIEhlbnJ5IFZJSUkuXiANCmJ5IEphbWVzIFNwZWRkaW5nIDsgcmV7WyYqJl19cHJpbnRlZCBpbiBUcmFucy4gTmV3IFNoLiBTb2MuIGZyb20gVGhlIEdlbnRVbWFyQ3MgDQpNYWdhemluZSBmb3IgQXVndXN0LCAxOHtbJiomXX01MCkuIA0KDQoxMTIgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KY2hvbHkuIEJ1dCBzdWNoIHBhcnRpY3VsYXJze1smKiZdfSBhcyBqaGVzZSBkbyBuIG90IGNvbnN0aXR1dCBlIA0KdGhlIGNoaWVmIGV2aWRlbmNlIHdoaSBjaCBwcm92ZXMgdGhhdCB0bGlwLiB7WyYqJl19cG9wbC4gXFwgXFxpXFxpXFwgciZndDtvLXB5IA0KYXR0YWluZWQgbWF0dXJpdCB5LiBUaGUgbXlzdGVyeSwgdGhlIGJhZmZsaW5nLCB2aXR7WyYqJl19YWwgb2ItIA0Kc2N1cml0eSBvZiB0aGUgcGxheSwgYW5kLCBpbiBwYXJ0aWN1bGFyLCBvZiB0aGUgY2hhcmFjdGVyIG9mIA0KaXRzIHtbJiomXX1jaGllZiBwZXJzb24sIG1ha2UgaXQgZXZpZGVudCB0aGF0IFNoYWtzcGVyZSBoYWQgbGVmdCANCmZhciBiZWhpbmQgaGltIHRoYXQge1smKiZdfWVhcmx5IHN0YWdlIG9mIGRldmVsb3BtZW50IHdoZW4gYW4gDQphcnRpc3Qgb2J0cnVkZXMgaGlzIGludGVudGlvbnMsIG9yLCBkaXN7WyYqJl19dHJ1c3RpbmcgaGlzIG93biBhYmlsLSANCml0eSB0byBrZWVwIHNpZ2h0IG9mIG9uZSB1bmlmb3JtIGRlc2lnbiwgZGVsaWJlcmF0ZXtbJiomXX1seSBhbmQgDQp3aXRoIGVmZm9ydCBob2xkcyB0aGF0IGRlc2lnbiBwZXJzaXN0ZW50bHkgYmVmb3JlIGhpbS4gDQpdXmhlbiBTXmxpe1smKiZdfWFecF5wcHJmaSBwbnlecF1mXnxwLkggUmdtVVUgaGUgbXVzdCBoYXZlIHRydXN0ciANCmVkIGhpbXNlbGYgYW5kIHRybnN0ZV4gaGl7WyYqJl19cyBeIHVkaWVuY2UgXiBoZSB0cnVzdHMgaGltc2VsZiB0byANCmVudGVyIGludG8gcmVsYXRpb24gd2l0aCBoaXMgc3ViamVjdCwgaHtbJiomXX1pZ2hseSBjb21wbCBleCBhcyANCnRoYXQgc3ViamVjdCB3YXMsIGluIGEgcHVyZSwgZW1vdGlvbmFsIG1hbl5qXFwgSnRMYW1sZXQgDXtbJiomXX0KbWlnaHQgc28gZWFzaWx5IGhhdmUgYmVlbiBtYW51ZmFjdHVyZWQgaW50byBhbiBlbmlnbWEgDQpvciBhIHB1enpsZSA7IGFuZCB0e1smKiZdfWhlbiB0aGUgcHV6emxlLCBpZiBzdWZmaWNpZW50IHBhaW5zIHdlcmUgDQpiZXN0b3dlZCwgY291bGQgYmUgY29tcGxldGVseSB0YWt7WyYqJl19ZW4gdG8gcGllY2VzIGFuZCBleC0gDQpwbGFpbmVkLiBCdXQgU2hha3NwZXJlIGNyZWF0ZWQgaXQgYSBteXN0ZXJ5LCBhbmQgdGhlcntbJiomXX1lLSANCmZvcmUgaXQgaXMgZm9yZXZlciBzdWdnZXN0aXZlIDsgZm9yZXZlciBzdWdnZXN0aXZlLCBhbmQgDQpuZXZlciB3aG9sbHkge1smKiZdfWV4cGxpY2FibGUuIA0KDQp0IEl0IG11c3Qgbm90IGJlIHN1cHBvc2VkLCB0aGVuLCB0aGF0IGFueSBpZGVhXiBhbnkgDQptYWdpYyB7WyYqJl19cGhyYXNlLCB3aWxsIHNvbHZlIHRoZSBkaWZmaWN1bHRpZXMgcHJlc2VudGVkIGJ5IHRoZSANCnBsYXksIG9yIHN1ZGRlbmx5IGlsbHtbJiomXX11bWluYXRlIGV2ZXJ5dGhpbmcgaW4gaXQgd2hpY2ggaXMgDQpvYnNjdXJlLiBUaGUgb2JzY3VyaXR5IGl0c2VsZiBpcyBhIHZpdGFse1smKiZdfSBwYXJ0IG9mIHRoZSB3b3JrIA0Kb2YgYXJ0IHdoaWNoIGRlYWxzIG5vdCB3aXRoIGEgcHJvYmxlbSwgYnV0IHdpdGggYSBsaWZlOyB7WyYqJl19DQphbmQgaW4gdGhhdCBsaWZlLCB0aGUgaGlzdG9yeSBvZiBhIHNvdWwgd2hpY2ggbW92ZWQgDQp0aHJvdWdoIHNoYWRvd3kgYm9yZHtbJiomXX1lcmxhbmRzIGJldHdlZW4gdGhlIG5pZ2h0IGFuZCANCmRheSwgdGhlcmUgaXMgbXVjaCAoYXMgaW4gbWFueSBhIGxpZmUgdGhhdCBpe1smKiZdfXMgcmVhbCkgdG8gZWx1ZGUgDQphbmQgYmFmZmxlIGlucXVpcnkuIEl0IGlzIGEgcmVtYXJrYWJsZSBjaXJjdW1zdGFuY2UgdGhhdCB7WyYqJl19DQp3aGlsZSB0aGUgbGVuZ3RoIG9mIHRoZSBwbGF5IGluIHRoZSBzZWNvbmQgcXVhcnRvIGNvbi0gDQpzaWRlcmFibHkgZXhjZWVkc3tbJiomXX0gaXRzIGxlbmd0aCBpbiB0aGUgZWFybGllciBmb3JtIG9mIDE2MDMsIA0KYW5kIHRodXMgbWF0ZXJpYWxzIGZvciB0aGUgaW50ZXJwe1smKiZdfXJldGF0aW9uIG9mIFNoYWtzcGVyZVwncyANCnB1cnBvc2UgaW4gdGhlIHBsYXkgYXJlIG9mZmVyZWQgaW4gZ3JlYXRlciBhYnVuZGFue1smKiZdfWNlLCB0aGUgDQpvYnNjdXJpdHkgZG9lcyBub3QgZGltaW5pc2gsIGJ1dCwgb24gdGhlIGNvbnRyYXJ5LCBkZWVwZW5zOyANCmFuZCB7WyYqJl19aWYgc29tZSBxdWVzdGlvbnMgYXBwZWFyIHRvIGJlIHNvbHZlZCwgb3RoZXIgcXVlc3Rpb25zIA0KaW4gZ3JlYXRlciBudW1iZXIgc3tbJiomXX1wcmluZyBpbnRvIGV4aXN0ZW5jZS4gDQoNCmkgDQoNCkhhbWxldCAxMTMgDQoNCldlIG1heSBhdCBvbmNlIHNldCBhc2lkZSBhcyBte1smKiZdfWlzZGlyZWN0ZWQgYSBjZXJ0YWluIGNsYXNzIA0Kb2YgSGFtbGV0IGludGVycHJldGF0aW9ucyDigJQgdGhvc2Ugd2hpY2ggd291bGR7WyYqJl19IHRyYW5zZm9ybSANCnRoaXMgdHJhZ2VkeSBvZiBhbiBpbmRpdmlkdWFsIGxpZmUgaW50byBhIGRyYW1hdGljIHN0dWR5IA0Kb2Ygc3tbJiomXX1vbWUgZ2VuZXJhbCBzb2NpYWwgcGhlbm9tZW5vbiwgb3Igb2Ygc29tZSBwZXJpb2QgaW4gDQp0aGUgaGlzdG9yeSBvZiBjaXZpbGl6e1smKiZdfWF0aW9uLiBBIHdyaXRlciB3aG8gaGFzIGFwcGxpZWQgYW4gDQphZG1pcmFibGUgZ2VuaXVzIGZvciBjcml0aWNpc20sIGNvbXByZWh7WyYqJl19ZW5zaXZlIGFuZCBwZW5lLSANCnRyYXRpdmUsIHRvIHRoZSBzdHVkeSBvZiB0aGlzIHBsYXleIGRlc2NyaWJlcyBpdCBhcyBTaGFrLXtbJiomXX0gDQpzcGVyZVwncyBhcnRpc3RpYyBwcmVzZW50YXRpb24gb2YgYSBwaGVub21lbm9uIHJlY3VycmVudCANCmluIHRoZSB3b3JsZCB3aXtbJiomXX10aCB0aGUgcmVndWxhcml0eSBvZiBhIGxhdyBvZiBuYXR1cmUsIHRoZSANCnBoZW5vbWVub24gb2YgcmV2b2x1dGlvbnMuIEhhbWxle1smKiZdfXQgY2Fubm90IGVzY2FwZSBmcm9tIA0KdGhlIHdvcmxkIHdoaWNoIHN1cnJvdW5kcyBoaW0uIEluIHRoZSB3cmVjayBvZiBhIHNvLSB7WyYqJl19DQpjaWV0eSB3aGljaCBpcyByb3R0ZW4gdG8gdGhlIGNvcmUsIGhlIGdvZXMgZG93biA7IHdpdGggdGhlIA0KYWNjZXNzaW9uIG9mIHtbJiomXX1Gb3J0aW5icmFzLCBhIG5ldyBhbmQgc291bmRlciBlcmEgb3BlbnMuIA0KV2UgbXVzdCBub3QgYWxsb3cgYW55IHRoZW9yeSwgaG93e1smKiZdfWV2ZXIgaW5nZW5pb3VzLCB0byANCmRpdmVydCBvdXIgYXR0ZW50aW9uIGZyb20gZml4aW5nIGl0c2VsZiBvbiB0aGlzIGZhY3QsIHR7WyYqJl19aGF0IA0KSGFtbGV0IGlzIHRoZSBjZW50cmFsIHBvaW50IG9mIHRoZSBwbGF5IG9mIEhhbWxldCwgSXQgaXMgDQpub3QgdGhlIGdlbntbJiomXX1lcmFsIGNhdGFjbHlzbSBpbiB3aGljaCBhIGRlY2F5ZWQgb3JkZXIgb2YgDQp0aGluZ3MgaXMgc3dlcHQgYXdheSB0byBnaXZlIHBse1smKiZdfWFjZSB0byBuZXcgcm91Z2ggbWF0ZS0gDQpyaWFsIDsgaXQgaXMgbm90IHRoZSBkb3duZmFsbCBvZiB0aGUgRGFuaXNoIG1vbmFyY2h7WyYqJl19eSBhbmQgDQpvZiBhIGNvcnJ1cHQgc29jaWV0eSwgdG9nZXRoZXIgd15pdGggdGhlIGFjY2Vzc2lvbiBvZiBhIG5ldyANCmR5bmFzdHtbJiomXX15IGFuZCBvZiBhIGhhcmRpZXIgY2l2aWxpemF0aW9uLCB0aGF0IGNoaWVmbHkgaW50ZXJlc3QtIA0KZWQgU2hha3NwZXJlLiBUaGUge1smKiZdfXZpdGFsIGhlYXJ0IG9mIHRoZSB0cmFnZWR5IG9mIEhhbWxldCANCmNhbm5vdCBiZSBhbiBpZGVhIDsgbmVpdGhlciBjYW4gaXQgYmV7WyYqJl19IGEgZnJhZ21lbnQgb2YgcG9saXQtIA0KaWNhbCBwaGlsb3NvcGh5LiBPdXQgb2YgU2hha3NwZXJlXCdzIHByb2ZvdW5kIHN5bXBhdGh7WyYqJl19eSANCndpdGggYW4gaW5kaXZpZHVhbCBzb3VsIGFuZCBhIHBlcnNvbmFsIGxpZmUsIHRoZSB3b25kZXJmdWwgDQpjcmVhdGlvbiBjYXtbJiomXX1tZSBpbnRvIGJlaW5nLiANCg0KSXQgaXMgdHJ1ZSwgaG93ZXZlciwgYXMgdGhlIGNyaXRpYyByZWZlcnJlZCB0byBtYWludGFpbnMse1smKiZdfVwnIA0KdGhhdCB0aGUgd2Vha25lc3Mgb2YgSGFtbGV0IGlzIG5vdCB0byBiZSB3aG9sbHkgc2V0IGRvd24gDQp0byBoaXMgb3duIGFje1smKiZdfWNvdW50LiBUaGUgd29ybGQgaXMgYWdhaW5zdCBoaW0uIFRoZXJlIA0KaXMgbm8gc3VjaCB0aGluZyBhcyBuYWtlZCBtYW5ob29kLiB7WyYqJl19U2hha3NwZXJlLCB3aG8gZmVsdCANCnNvIHRydWx5IHRoZSBzaWduaWZpY2FuY2Ugb2YgZXh0ZXJuYWwgbmF0dXJlIGFzIHRoZSBlbntbJiomXX12aXJvbi0gDQppbmcgbWVkaXVtIG9mIGh1bWFuIHBhc3Npb24sIHVuZGVyc3Rvb2QgYWxzbyB0aGF0IG5vIA0KDQoqIEguIEEuIFdle1smKiZdfXJuZXIsIFwiIFVlYmVyIGRhcyBEdW5rZWwgaW4gZGVyIEhhbWxldC1UcmFnb2RpZSxcIiBKYWhyaHVjaCANCmRlciBkZXV0c2NoZW4gU3tbJiomXX1oYWtlc3BlYXJlLSBHZXNlbGxzY2hhZnRqIHZvbC4gdi4sIHBwLiAzNy04MS4gDQo4IA0KDQoxMTQgU2hha3NwZXJlIOKAlCBIaXMge1smKiZdfU1pbmQgYW5kIEFydCANCg0KbWFuIGlzIGluZGVwZW5kZW50IG9mIHRoZSBzb2NpYWwgYW5kIG1vcmFsIGNvbmRpdGlvbnMgDQp1bmR7WyYqJl19ZXIgd2hpY2ggaGUgbGl2ZXMgYW5kIGFjdHMuIEdvZXRoZSwgaW4gdGhlIGNlbGVicmF0ZWQgDQpjcml0aWNpc20gdXBvbiB0aGlzIHtbJiomXX1wbGF5IGNvbnRhaW5lZCBpbiBoaXMgXCdcJyBXaWxoZWxtIE1laXMtIA0KdGVyL1wnIGhhcyBvbmx5IG9mZmVyZWQgYSBoYWxmLWludGVye1smKiZdfXByZXRhdGlvbiBvZiBpdHMgZGlmZmljdWwtIA0KdGllcyA7IGFuZCBzdWJzZXF1ZW50IGNyaXRpY2lzbSwgdW5kZXIgdGhlIGluZmx7WyYqJl19dWVuY2Ugb2YgDQpHb2V0aGUsIGhhcyBleGhpYml0ZWQgYSB0ZW5kZW5jeSB0b28gZXhjbHVzaXZlbHkgc3ViamVjLSANCnRpdmUuIHtbJiomXX1cIiBUbyBtZSxcIiB3cm90ZSBHb2V0aGUsIFwiIGl0IGlzIGNsZWFyIHRoYXQgU2hha3NwZXJlIA0KbWVhbnQgLi4uIHRvIHJlcHJlc2Vue1smKiZdfXQgdGhlIGVmZmVjdHMgb2YgYSBncmVhdCBhY3Rpb24gbGFpZCANCnVwb24gYSBzb3VsIHVuZml0IGZvciB0aGUgcGVyZm9ybWFuY2V7WyYqJl19IG9mIGl0LiBJbiB0aGlzIHZpZXcgDQp0aGUgd2hvbGUgcGllY2Ugc2VlbXMgdG8gYmUgY29tcG9zZWQuIFRoZXJlIGlzIGFuIG9ha3tbJiomXX0tIA0KdHJlZSBwbGFudGVkIGluIGEgY29zdGx5IGphciwgd2hpY2ggc2hvdWxkIGhhdmUgYm9ybmUgDQpwbGVhc2FudCBmbG93ZXJze1smKiZdfSBpbiBpdHMgYm9zb20gOiB0aGUgcm9vdHMgZXhwYW5kLCB0aGUgamFyIA0KaXMgc2hpdmVyZWQuXCIgDQoNClRoaXMgaXMgb25lIGhhe1smKiZdfWxmIG9mIHRoZSB0cnV0aCA7IGJ1dCBvbmx5IG9uZSBoYWxmLiBJbiANCnNldmVyYWwgb2YgdGhlIHRyYWdlZGllcyBvZiBTaGFrc3B7WyYqJl19ZXJlLCB0aGUgdHJhZ2ljIGRpc3R1cmItIA0KYW5jZSBvZiBjaGFyYWN0ZXIgYW5kIGxpZmUgaXMgY2F1c2VkIGJ5IHRoZSBzdWJqZXtbJiomXX1jdGlvbiBvZiANCnRoZSBjaGllZiBwZXJzb24gb2YgdGhlIGRyYW1hIHRvIHNvbWUgZG9taW5hbnQgcGFzc2lvbiwgDQplc3NlbnRpe1smKiZdfWFsbHkgYW50aXBhdGhldGljIHRvIGhpcyBuYXR1cmUsIHRob3VnaCBwcm9jZWVkaW5nIA0KZnJvbSBzb21lIGluaGVyZW50IHdlYWt7WyYqJl19bmVzcyBvciBpbXBlcmZlY3Rpb24g4oCUIGEgcGFzc2lvbiANCmZyb20gd2hpY2ggdGhlIHZpY3RpbSBjYW5ub3QgZGVsaXZlciBoaXtbJiomXX1tc2VsZiwgYW5kIHdoaWNoIA0KZmluYWxseSB3b3JrcyBvdXQgaGlzIGRlc3RydWN0aW9uLiBUaHVzIE90aGVsbG8sIHdob3NlIA0Ke1smKiZdfW5hdHVyZSBpcyBpbnN0aW5jdGl2ZWx5IHRydXN0ZnVsIGFuZCBjb25maWRpbmcsIHdpdGggYSBub2JsZSANCmNoaWxkbGlrZSB0cnV7WyYqJl19c3Qg4oCUIGEgbWFuIA0KDQpcIiBPZiBhIGZyZWUgYW5kIG9wZW4gbmF0dXJlLCANClRoYXQgdGhpbmtzIG1lbiBob25lc3QgdGhhdCB7WyYqJl19YnV0IHNlZW0gdG8gYmUgc28sXCIgDQoNCmEgbWFuIFwiIG5vdCBlYXNpbHkgamVhbG91cyBcIiDigJQgT3RoZWxsbyBpcyBpbm9jdWxhdHtbJiomXX1lZCB3aXRoIA0KdGhlIHBvaXNvbiBvZiBqZWFsb3VzeSBhbmQgc3VzcGljaW9uLCBhbmQgdGhlIHBvaXNvbiBtYWQtIA0KZGVucyBhe1smKiZdfW5kIGRlc3Ryb3lzIGhpbS4gTWFjYmV0aCwgbWFkZSBmb3Igc3Vib3JkaW5hdGlvbiwgXFwgDQppcyB0aGUgdmljdGltIG9mIGEgdGVye1smKiZdfXJpYmxlIGFuZCB1bm5hdHVyYWwgYW1iaXRpb24uIExlYXIsIA0KaWdub3JhbnQgb2YgdHJ1ZSBsb3ZlLCB5ZXQgd2l0aCBhIHN1cHJ7WyYqJl19ZW1lIG5lZWQgb2YgbG92aW5nIA0KYW5kIG9mIGJlaW5nIGxvdmVkLCBpcyBjb21wZWxsZWQgdG8gaGF0cmVkLCBhbmQgZHJpdmVzIHtbJiomXX0NCmZyb20gaGlzIHByZXNlbmNlIHRoZSBvbmUgYmVpbmcgd2hvIGNvdWxkIGhhdmUgc2F0aXNmaWVkIA0KdGhlIGh1bmdlciBvZiBoe1smKiZdfWlzIGhlYXJ0LiBUaW1vbiwgd2hvIHdvdWxkIGZhaW4gaW5kdWxnZSANCmEgdW5pdmVyc2FsIGxheCBiZW5ldm9sZW5jZSwgaXMgdHJ7WyYqJl19YW5zZm9ybWVkIHRvIGEgcmV2b2x0ZXIgDQpmcm9tIGh1bWFuaXR5IDogXCIgSSBhbSBNaXNhbnRocm9wb3MsIGFuZCBoYXRlIG1hbmt7WyYqJl19aW5kLlwiIA0KDQpIYW1sZXQuIDExNSANCg0KV2UgbWF5IHJlYXNvbmFibHkgY29uamVjdHVyZSB0aGF0IHRoZSBIYW1sZXQgb2YgdGh7WyYqJl19ZSANCm9sZCBwbGF5IOKAlCBhIHBsYXkgYXQgbGVhc3QgYXMgb2xkIGFzIHRoYXQgZ3JvdXAgb2YgYmxvb2R5IA0KdHJhZ2VkaWVzIHtbJiomXX1pbnNwaXJlZCBieSB0aGUgZWFybGllciB3b3JrcyBvZiBNYXJsb3dlIOKAlCB3YXMgDQphY3R1YWxseSB3aGF0IFNoYWtzcGVyZVwnc3tbJiomXX0gSGFtbGV0LCB3aXRoIGEgYml0dGVyIHBsZWFzdXJlIA0KaW4gbWlzcmVwcmVzZW50aW5nIGhpcyBvd24gbmF0dXJlLCBkZXNjcmlie1smKiZdfWVzIGhpbXNlbGYgYXMgDQpiZWluZywgXCIgdmVyeSBwcm91ZCwgcmV2ZW5nZWZ1bCwgYW1iaXRpb3VzLlwiIFRoaXMgcmUtIA0KdmVuZ3tbJiomXX1lZnVsIEhhbWxldCBvZiB0aGUgb2xkIHBsYXkgZXhoaWJpdGVkLCB3ZSBtYXkgc3VwKiANCnBvc2UsIGEgY2xvc2Uga2luc2hpcCB0e1smKiZdfW8gdGhlIEhhbWxldCBvZiB0aGUgRnJlbmNoIG5vdmVsaXN0IA0KQmVsbGVmb3Jlc3QsIGFuZCBvZiB0aGUgRW5nbGlzaCBcIiBIaXN0e1smKiZdfW9yaWMgXCIg4oCUIHRoZSBIYW1sZXQgDQp3aG8gaW4gdGhlIGJhbnF1ZXQtaGFsbCBidXJucyB0byBkZWF0aCBoaXMgdW5jbGVcJ3MgY3tbJiomXX1vdXItIA0KdGllcnMsIHdob20gaGUgaGFkIHByZXZpb3VzbHkgc3R1cGVmaWVkIHdpdGggc3Ryb25nIGRyaW5rLiANCkJ1dCBTaGFre1smKiZdfXNwZXJlLCBpbiBhY2NvcmRhbmNlIHdpdGggaGlzIGRyYW1hdGljIG1ldGhvZCwgDQphbmQgaGlzIGludGVyZXN0IGFzIGFydGlzdCB7WyYqJl19aW4gY29tcGxleCByYXRoZXIgdGhhbiBzaW1wbGUgDQpwaGVub21lbmEgb2YgaHVtYW4gcGFzc2lvbiBhbmQgZXhwZXJpZW5jZSwgd3tbJiomXX1oZW4gcmUtIA0KY3JlYXRpbmcgdGhlIGNoYXJhY3RlciBvZiB0aGUgRGFuaXNoIFByaW5jZSwgZmFzaGlvbnMgaGltIA0KYXMgYSBte1smKiZdfWFuIHRvIHdob20gcGVyc2lzdGVudCBhY3Rpb24sIGFuZCBpbiBhbiBlc3BlY2lhbCANCmRlZ3JlZSB0aGUgZHV0eSBvZiBkZWxpYmV7WyYqJl19cmF0ZSByZXZlbmdlLCBpcyBwZWN1bGlhcmx5IGFudGktIA0KcGF0aGV0aWMuIFVuZGVyIHRoZSBwaXRpbGVzcyBidXJkZW4gaW1wb3tbJiomXX1zZWQgdXBvbiBoaW0sIA0KSGFtbGV0IHRyZW1ibGVzLCB0b3R0ZXJzLCBmYWxscy4gVGh1cyBmYXIgR29ldGhlIGlzIA0KcmlnaHQue1smKiZdfSANCg0KQnV0IHRoZSB0cmFnaWMgbm9kdXMgaW4gU2hha3NwZXJlXCdzIGZpcnN0IHRyYWdlZHkg4oCUIA0KUm9tZW8gYW5kIEp1bGlle1smKiZdfXQg4oCUIHdhcyBub3Qgd2hvbGx5IG9mIGEgc3ViamVjdGl2ZSBjaGFyLSANCmFjdGVyLiBUaGUgdHdvIGxvdmVycyBhcmUgaW4gaGF7WyYqJl19cm1vbnkgd2l0aCBvbmUgYW5vdGhlciwgDQphbmQgd2l0aCB0aGUgcHVyZXN0IGFuZCBoaWdoZXN0IGltcHVsc2VzIG9mIHRoZWlyIHtbJiomXX1vd24gDQpoZWFydHMuIFRoZSBkaXNjb3JkIGNvbWVzIGZyb20gdGhlIG91dGVyIHdvcmxkIDogdGhleSANCmFyZSBhIHBhaXIgb2Yge1smKiZdfVwic3Rhci1jcm9zc2VkIGxvdmVycy5cIiBUaGVpciBsb3ZlIGlzIGVudmVsLSANCm9wZWQgaW4gdGhlIGhhdHJlZCBvZiB0aGUgaG91c3tbJiomXX1lcy4gVGhlaXIgbGlmZSBoYWQgZ3Jvd24gDQp1cG9uIGEgbGFyZ2VyIGxpZmUsIGEgdHJhZGl0aW9uIGFuZCBpbmhlcml0YW5jZSBve1smKiZdfWYgaG9zdGlsaXR5IA0KYW5kIGNyaW1lIDsgYWdhaW5zdCB0aGlzIHRoZXkgcmViZWxsZWQsIGFuZCB0aGUgbGFyZ2VyIGxpZmUgDQp7WyYqJl19c3ViZHVlZCB0aGVtLiBUaGUgd29ybGQgZm91Z2h0IGFnYWluc3QgRW9tZW8gYW5kIA0KSnVsaWV0LCBhbmQgdGhleSBmZWxsIGluIHtbJiomXX10aGUgdW5lcXVhbCBzdHJpZmUuIE5vdywgR29ldGhlIA0KZmFpbGVkIHRvIG9ic2VydmUsIG9yIGRpZCBub3Qgb2JzZXJ2ZSBzdWZme1smKiZdfWljaWVudGx5LCB0aGF0IHRoaXMgDQppcyBhbHNvIHRoZSBjYXNlIHdpdGggSGFtbGV0IDogDQoNClwiIFRoZSB0aW1lIGlzIG91dCBve1smKiZdfWYgam9pbnQgOiBjdXJzZWQgc3BpdGUsIA0KVGhhdCBldmVyIEkgd2FzIGJvcm4gdG8gc2V0IGl0IHJpZ2h0IFQqIA0KDQoxIDEgNiB7WyYqJl19U2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQpIYW1sZXQgaXMgY2FsbGVkIHVwb24gdG8gYXNzZXJ0IG1vcmFsIG9yZHtbJiomXX1lciBpbiBhIHdvcmxkIA0Kb2YgbW9yYWwgY29uZnVzaW9uIGFuZCBvYnNjdXJpdHkuIEhlIGhhcyBub3QgYW4gb3BlbiANCnBsYWlue1smKiZdfSBvciBhIGhpbGxzaWRlIG9uIHdoaWNoIHRvIGZpZ2h0IGhpcyBiYXR0bGUsIGJ1dCBhIHBsYWNlIA0KZGFuZ2Vyb3VzIGFuZCBtaXN7WyYqJl19bGVhZGluZywgd2l0aCBkaW0gYW5kIHdpbmRpbmcgd2F5cy4gDQpIZSBpcyBtYWRlIGZvciBob25lc3R5LCBhbmQgaGUgaXMgY29tcHtbJiomXX1lbGxlZCB0byB1c2UgdGhlIA0Kd2VhcG9ucyBvZiBoaXMgYWR2ZXJzYXJpZXMsIGNvbXBlbGxlZCB0byBwcmFjdGlzZSBhIHNoaWZ0e1smKiZdfS0gDQppbmcgYW5kIHN1YnRsZSBzdHJhdGFnZW07IHRodXMgaGUgY29tZXMgdG8gd2FzdGUgaGltLSANCnNlbGYgaW4gaW5nZW51aXR7WyYqJl19eSBhbmQgY3JhZnR5IGRldmljZS4gQWxsIHRoZSBzdHJlbmd0aCANCndoaWNoIGhlIHBvc3Nlc3NlcyB3b3VsZCBoYXZlIGJlY29tZXtbJiomXX0gb3JnYW5pemVkIGFuZCANCmF2YWlsYWJsZSBoYWQgaGlzIHdvcmxkIGJlZW4gb25lIG9mIGhvbmVzdHksIG9mIGhhcHBpLSANCm5le1smKiZdfXNzLCBvZiBodW1hbiBsb3ZlLiBCdXQgYSB3b3JsZCBvZiBkZWNlaXQsIG9mIGVzcGlvbmFnZSwgDQpvZiBzZWxmaXNobmVzcywgc3V7WyYqJl19cnJvdW5kcyBoaW0uIEhpcyBpZGVhbGlzbSwgYXQgdGhpcnR5IHllYXJzIA0Kb2YgYWdvLCBhbG1vc3QgdGFrZXMgdGhlIGZvcm0gb3tbJiomXX1mIHBlc3NpbWlzbSA7IGhpcyBsaWZlIGFuZCANCmhpcyBoZWFydCBiZWNvbWUgc3RlcmlsZSA7IGhlIGxvc2VzIHRoZSBlbmVyZ3kge1smKiZdfXdoaWNoIHNvdW5kIA0KYW5kIGpveW91cyBmZWVsaW5nIHN1cHBsaWVzOyBhbmQgaW4gdGhlIHdpZGUtc3ByZWFkaW5nIA0Kd2FzdGV7WyYqJl19IG9mIGNvcnJ1cHRpb24gd2hpY2ggbGllcyBhcm91bmQgaGltLCBoZSBpcyB0ZW1wdGVkIA0KdG8gdW5kZXJzdGFuZCBhbmQgZGV0ZXtbJiomXX1zdCB0aGluZ3MgcmF0aGVyIHRoYW4gYWNjb21wbGlzaCANCnNvbWUgbGltaXRlZCBwcmFjdGljYWwgc2VydmljZS4gSW4gdGhlIHVue1smKiZdfXdlZWRlZCBnYXJkZW4gDQpvZiB0aGUgd29ybGQsIHdoeSBzaG91bGQgaGUgdGFzayBoaXMgbGlmZSB0byB1cHJvb3QgYSBzaW4tIA17WyYqJl19CmdsZSB3ZWVkID8gDQoNCklmIEdvZXRoZVwncyBzdHVkeSBvZiB0aGUgcGxheSwgYWRtaXJhYmxlIGFzIGl0IHdhcywgbWlzLSANCmx7WyYqJl19ZWQgY3JpdGljaXNtIGluIG9uZSB3YXkgYnkgZGlyZWN0aW5nIGF0dGVudGlvbiB0b28gZXhjbHUtIA0Kc2l2ZWx5IHVwb24gdGhlIHtbJiomXX1pbm5lciBuYXR1cmUgb2YgSGFtbGV0LCB0aGUgc3R1ZGllcyBieSANClNjaGxlZ2VsIGFuZCBieSBDb2xlcmlkZ2UgdGVuZGVkIHRve1smKiZdfSBtaXNsZWFkIGNyaXRpY2lzbSANCmluIGFub3RoZXIgYnkgYXR0YWNoaW5nIGFuIGV4YWdnZXJhdGVkIGltcG9ydGFuY2UgdG8gDQp7WyYqJl19b25lIGVsZW1lbnQgb2YgSGFtbGV0XCdzIGNoYXJhY3Rlci4gXCIgVGhlIHdob2xlLFwiIHdyb3RlIA0KU2NobGVnZWwsIFwiIGlzIGludGV7WyYqJl19bmRlZCB0byBzaG93IHRoYXQgYSBjYWxjdWxhdGluZyBjb25zaWQtIA0KZXJhdGlvbiwgd2hpY2ggZXhoYXVzdHMgYWxsIHRoZSByZXtbJiomXX1sYXRpb25zIGFuZCBwb3NzaWJsZSBjb24tIA0Kc2VxdWVuY2VzIG9mIGEgZGVlZCwgbXVzdCBjcmlwcGxlIHRoZSBwb3dlciBvZiBhe1smKiZdfWN0aW5nLlwiIA0KSXQgaXMgdHJ1ZSB0aGF0IEhhbWxldFwncyBwb3dlciBvZiBhY3Rpbmcgd2FzIGNyaXBwbGVkIGJ5IA0KaGlzIGhhYntbJiomXX1pdCBvZiBcIiB0aGlua2luZyB0b28gcHJlY2lzZWx5IG9uIHRoZSBldmVudCA7XCIgYW5kIA0KaXQgaXMgdHJ1ZSwgYXMgQ29sZXJpZGd7WyYqJl19ZSBzYWlkLCB0aGF0IGluIEhhbWxldCB3ZSBzZWUgXCJhIA0KZ3JlYXQsIGFuIGFsbW9zdCBlbm9ybW91cyBpbnRlbGxlY3R1YWwgYWN7WyYqJl19dGl2aXR5LCBhbmQgYSBwcm8tIA0KcG9ydGlvbmF0ZSBhdmVyc2lvbiB0byByZWFsIGFjdGlvbiBjb25zZXF1ZW50IHVwb24gaXQuXCJ7WyYqJl19IA0KQnV0IEhhbWxldCBpcyBub3QgbWVyZWx5IG9yIGNoaWVmbHkgaW50ZWxsZWN0dWFsIDsgdGhlIA0KDQpIYW1sZXQuIDExNyANCntbJiomXX0NCmVtb3Rpb25hbCBzaWRlIG9mIGhpcyBjaGFyYWN0ZXIgaXMgcXVpdGUgYXMgaW1wb3J0YW50IGFzIA0KdGhlIGludGVsbGVjdHVhe1smKiZdfWwgOyBoaXMgbWFsYWR5IGlzIGFzIGRlZXAtc2VhdGVkIGluIGhpcyBzZW4tIA0Kc2liaWxpdGllcyBhbmQgaW4gaGlzIGhlYXJ0IGF7WyYqJl19cyBpdCBpcyBpbiB0aGUgYnJhaW4uIElmIGFsbCBoaXMgDQpmZWVsaW5ncyB0cmFuc2xhdGUgdGhlbXNlbHZlcyBpbnRvIHRob3VnaHtbJiomXX10cywgaXQgaXMgbm8gbGVzcyANCnRydWUgdGhhdCBhbGwgaGlzIHRob3VnaHRzIGFyZSBpbXByZWduYXRlZCB3aXRoIGZlZWxpbmcue1smKiZdfSANClRvIHJlcHJlc2VudCBIYW1sZXQgYXMgYSBtYW4gb2YgcHJlcG9uZGVyYXRpbmcgcG93ZXIgDQpvZiByZWZsZWN0aW9uLCBhbmR7WyYqJl19IHRvIGRpc3JlZ2FyZCBoaXMgY3JhdmluZywgc2Vuc2l0aXZlIGhlYXJ0LCANCmlzIHRvIG1ha2UgdGhlIHdob2xlIHBsYXkgaW5jb3tbJiomXX1oZXJlbnQgYW5kIHVuaW50ZWxsaWdpYmxlLl4gDQpJdCBpcyBIYW1sZXRcJ3MgaW50ZWxsZWN0LCBob3dldmVyLCB0b2dldGhlciB3aXtbJiomXX10aCBoaXMgDQpkZWVwIGFuZCBhYmlkaW5nIHNlbnNlIG9mIHRoZSBtb3JhbCBxdWFsaXRpZXMgb2YgdGhpbmdzLCANCndoaWNoIGRpe1smKiZdfXN0aW5ndWlzaGVzIGhpbSwgdXBvbiB0aGUgZ2xhbmNlIG9mIGEgbW9tZW50LCANCmZyb20gdGhlIGhlcm8gb2YgU2hha3NwZXJlXCdze1smKiZdfSBmaXJzdCB0cmFnZWR5LCBFb21lby4gSWYgDQpSb21lbyBmYWlsIHRvIHJldGFpbiBhIHNlbnNlIG9mIGZhY3QgYW5kIG9mIHRoZSB7WyYqJl19cmVhbCB3b3JsZCANCmJlY2F1c2UgdGhlIGZhY3QsIGFzIGl0IHdlcmUsIG1lbHRzIGF3YXkgYW5kIGRpc2FwcGVhcnMgDQppbiBhIHtbJiomXX1zb2x2ZW50IG9mIGRlbGljaW91cyBlbW90aW9uLCBIYW1sZXQgZXF1YWxseSBsb3NlcyANCmEgc2Vuc2Ugb2YgZmFjdCBiZWNhdXNle1smKiZdfSB3aXRoIGhpbSBlYWNoIG9iamVjdCBhbmQgZXZlbnQgDQoNCmlcJyB0cmFuc2Zvcm1zIGFuZCBleHBhbmRzIGl0c2VsZiBpbnRvIGFue1smKiZdfSBpZGVhLiBXaGVuIHRoZSANCnBsYXkgb3BlbnMgaGUgaGFzIHJlYWNoZWQgdGhlIGFnZSBvZiB0aGlydHkgeWVhcnMg4oCUIHRoZSB7WyYqJl19DQphZ2UsIGl0IGhhcyBiZWVuIHNhaWQsIHdoZW4gdGhlIGlkZWFsaXR5IG9mIHlvdXRoIG91Z2h0IHRvIA0KYmVjb21lIG9uZSB3aXtbJiomXX10aCBhbmQgaW5mb3JtIHRoZSBwcmFjdGljYWwgdGVuZGVuY2llcyBvZiANCm1hbmhvb2Qg4oCUIGFuZCBoZSBoYXMgcmVjZWl2ZWQge1smKiZdfWN1bHR1cmUgb2YgZXZlcnkga2luZCANCmV4Y2VwdCB0aGUgY3VsdHVyZSBvZiBhY3RpdmUgbGlmZS4gRHVyaW5nIHRoZSByZWlnbiB7WyYqJl19b2YgDQp0aGUgc3Ryb25nLXdpbGxlZCBlbGRlciBIYW1sZXQsIHRoZXJlIHdhcyBubyBjYWxsIHRvIGFjLSANCnRpb24gZm9yIGhpc3tbJiomXX0gbWVkaXRhdGl2ZSBzb24uIEhlIGhhcyBzbGlwcGVkIG9uIGludG8gDQp5ZWFycyBvZiBmdWxsIG1hbmhvb2Qgc3RpbGwgYSBoYXVue1smKiZdfXRlciBvZiB0aGUgdW5pdmVyc2l0eSwgDQphIHN0dWRlbnQgb2YgcGhpbG9zb3BoaWVzLCBhbiBhbWF0ZXVyIGluIGFydCwgYSBwb257WyYqJl19ZGVyZXIgDQpvbiB0aGUgdGhpbmdzIG9mIGxpZmUgYW5kIGRlYXRoLCB3aG8gaGFzIG5ldmVyIGZvcm1lZCBhIA0KcmVzb2x1dGlvbntbJiomXX0gb3IgZXhlY3V0ZWQgYSBkZWVkLiANCg0KVGhpcyBsb25nIGNvdXJzZSBvZiB0aGlua2luZywgYXBhcnQgZnJvbSBhY3Rpb24sIGhhe1smKiZdfXMgDQpkZXN0cm95ZWQgSGFtbGV0XCdzIHZlcnkgY2FwYWNpdHkgZm9yIGJlbGllZiwgc2luY2UgaW4gYmUgDQpsaWVmIHRoZXJlIGV4e1smKiZdfWlzdHMgYSBjZXJ0YWluIGVsZW1lbnQgY29udHJpYnV0ZWQgYnkgdGhlIA0Kd2lsbC4gSGFtbGV0IGNhbm5vdCBhZGp1c3QgdGhlIGl7WyYqJl19bmZpbml0ZSBwYXJ0IG9mIGhpbSB0byANCg0KKiBTZWUgVy4gT2VobG1hbm5cJ3MgYXJ0aWNsZSBcIiBEaWUgR2VtaWl0aHNzZWl0ZSBke1smKiZdfWVzIEhhbWxldC1DaGFyYWN0ZXJzLFwiIA0KaW4gSmFocmJ1Y2ggZGVyIGRldXRzY2hlbiBTaGFrZXNwZWFyZSAtR2VzZWxsc2NoYWZpe1smKiZdfV4gdm9sLiBpaWkuLCBwLiAyMDguIA0KDQoxIDEgOCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQgDQoNCnRoZSBmaW5pdGV7WyYqJl19IDsgdGhlIG9uZSBpbnZhZGVzIHRoZSBvdGhlciBhbmQgaW5mZWN0cyBpdCA7IG9yXiANCnJhdGhlciwgdGhlIGZpbml0ZSBkaXNsaXtbJiomXX1tbnMgYW5kIGRpc3NvbHZlcywgYW5kIGxlYXZlcyBoaW0gDQpvbmx5IGluIHByZXNlbmNlIG9mIHRoZSBpZGVhLiBIZSBjYW5ub3Qge1smKiZdfW1ha2UgcmVhbCB0byANCmhpbXNlbGYgdGhlIGFjdHVhbCB3b3JsZCwgZXZlbiB3aGlsZSBoZSBzdXBwb3NlcyBoaW1zZWxmIA0KYSB7WyYqJl19bWF0ZXJpYWxpc3QgOyBoZSBjYW5ub3Qgc3RlYWRpbHkga2VlcCBhbGl2ZSB3aXRoaW4gaGltLSANCnNlbGYgYSBzZW5zZSBvZiB0aHtbJiomXX1lIGltcG9ydGFuY2Ugb2YgYW55IHBvc2l0aXZlLCBsaW1pdGVkIA0KdGhpbmcg4oCUIGEgZGVlZCwgZm9yIGV4YW1wbGUuIFRoaW5ne1smKiZdfXMgaW4gdGhlaXIgYWN0dWFsLC4gcGhlLSANCm5vbWVuYWwgYXNwZWN0IGZpaXQgYmVmb3JlIGhpbSBhcyB0cmFuc2l0b3J5LCBhY2N7WyYqJl19aWRlbnRhbCwgDQphbmQgdW5yZWFsLiBBbmQgdGhlIGFic29sdXRlIHRydXRoIG9mIHRoaW5ncyBpcyBzbyBoYXJkIA0KdG8gYXR0YXtbJiomXX1pbiwgYW5kIG9ubHksIGlmIGF0IGFsbCwgaXMgdG8gYmUgYXR0YWluZWQgaW4gdGhlIG1pbmQuIA0KQWNjb3JkaW5nbHksIEhhbWxle1smKiZdfXQgY2FuIGxheSBob2xkIG9mIG5vdGhpbmcgd2l0aCBjYWxtLCANCnJlc29sdmVkIGVuZXJneSA7IGhlIGNhbm5vdCBldmVuIHJldGF7WyYqJl19aW4gYSB0aG91Z2h0IGluIGluLSANCmRlZmVhc2libGUgcG9zc2Vzc2lvbi4gVGh1cyBhbGwgdGhyb3VnaCB0aGUgcGxheSBoZSB3YXtbJiomXX0tIA0KdmVycyBiZXR3ZWVuIG1hdGVyaWFsaXNtIGFuZCBzcGlyaXR1YWxpc20sIGJldHdlZW4gYmUtIA0KbGllZiBpbiBpbW1vcnRhe1smKiZdfWxpdHkgYW5kIGRpc2JlbGllZiwgYmV0d2VlbiByZWxpYW5jZSB1cG9uIA0KcHJvdmlkZW5jZSBhbmQgYSBib3dpbmcgdW5kZXIgZmF7WyYqJl19dGUuXCJeIEluIHByZXNlbmNlIG9mIA0KdGhlIGdob3N0LCBhIHNlbnNlIG9mIGhpcyBvd24gc3Bpcml0dWFsIGV4aXN0ZW5jZSBhbmR7WyYqJl19IHRoZSANCmltbW9ydGFsIGxpZmUgb2YgdGhlIHNvdWwgZ3Jvd3Mgc3Ryb25nIHdpdGhpbiBoaW0uIEluIA0KcHJlc2VuY2Ugb2Ygc3tbJiomXX1waXJpdCBoZSBpcyBoaW1zZWxmIGEgc3Bpcml0IDogDQoNClwiIEkgZG8gbm90IHNldCBteSBsaWZlIGF0IGEgcGluXCdzIGZlZSA7IA17WyYqJl19CkFuZCBmb3IgbXkgc291bCwgd2hhdCBjYW4gaXQgZG8gdG8gdGhhdCwgDQpCZWluZyBhIHRoaW5nIGltbW9ydGFsIGFzIGl0c2VsZntbJiomXX0gP1wiIA0KDQpXaGVuIGxlZnQgdG8gaGlzIHByaXZhdGUgdGhvdWdodHMsIGhlIHdhdmVycyB1bmNlci0gDQp0YWlubHkgdG8gYW5kIHtbJiomXX1mcm8gOyBkZWF0aCBpcyBhIHNsZWVwIOKAlCBhIHNsZWVwLCBpdCBtYXkgYmUsIA0KdHJvdWJsZWQgd2l0aCBkcmVhbXMuIEluIHRoe1smKiZdfWUgZ3JhdmV5YXJkLCBpbiB0aGUgcHJlcy0gDQplbmNlIG9mIGh1bWFuIGR1c3QsIHRoZSBiYXNlIGFmZmluaXRpZXMgb2Ygb3VyIGJ7WyYqJl19b2RpbHkgbmF0LSANCnVyZSBwcm92ZSBpcnJlc2lzdGlibHkgYXR0cmFjdGl2ZSB0byB0aGUgY3VyaW9zaXR5IG9mIEhhbS0gDQpsZXtbJiomXX10XCdzIGltYWdpbmF0aW9uIDsgYW5kIGhlIGNhbm5vdCBjaG9vc2UgYnV0IHB1cnN1ZSB0aGUgDQpoaXN0b3J5IG9mIGh1bWFuIGR1c3tbJiomXX10IHRocm91Z2ggYWxsIGl0cyBzZXJpZXMgb2YgaGlkZW91cyANCg0KKiBJbiBcIiBTaGFrc3BlcmUtRm9yc2NodW5nZW4g4oCUIEkuIHtbJiomXX1IYW1sZXQsXCIgYnkgQmVubm8gVHNjaGlzY2h3aXR6IChIYWxsZSwgDQoxODY4KSwgdGhlIGF1dGhvciBlbmRlYXZvcnMgdG8gcHJvdntbJiomXX1lIHRoYXQgU2hha3NwZXJlIHdhcyBhY3F1YWludGVkIHdpdGggDQp0aGUgcGhpbG9zb3BoeSBvZiBCcnVubywgYW5kIGVtYm9kaWVke1smKiZdfSBwb3J0aW9ucyBvZiBpdCBpbiB0aGUgcGxheSBvZiBIYW1sZXQgDQpHaW9yZGFubyBCcnVubyBsaXZlZCBpbiBMb25kb24gZnJvbSB7WyYqJl19dGhlIHllYXIgMTU4MyB0byAxNTg2LCB3aGVyZSBoZSANCnNlZW1zIHRvIGhhdmUgcmVjZWl2ZWQgdGhlIHBhdHJvbmFnZSBvZiBTaXtbJiomXX1yIFAuIFNpZG5leSwgTG9yZCBCdWNraHVyc3QsIGFuZCANCnRoZSBFYXJsIG9mIExlaWNlc3Rlci4gSGUgYmVjYW1lIHByb2Zlc3Nve1smKiZdfXIgYXQgV2l0dGVuYmVyZy4gDQoNCkhhbWxldC4gMTE5IA0KDQptZXRhbW9ycGhvc2VzLiBUaHVzLCBhcyBFb21lb1wncyBlbW90aW9ue1smKiZdfXMgd2hpbGUgaGUgDQpsaXZlZCBpbiBhYmFuZG9ubWVudCB0byB0aGUgbGlmZSBvZiBmZWVsaW5nIGZvciBmZWVsaW5nXCdzIA0Kc2Fre1smKiZdfWUgYXJlIG5vdCBnZW51aW5lIGVtb3Rpb25zLCBzbyBIYW1sZXRcJ3MgdGhvdWdodHMgDQp3aGlsZSBoZSBpcyBnaXZlbiBvdmVyIHRve1smKiZdfSB0aGUgbGlmZSBvZiBicm9vZGluZyBtZWRpdGEtIA0KdGlvbiBhcmUgaGFyZGx5IGV2ZW4gc28gbXVjaCBhcyByZWFsIHRob3VnaHR7WyYqJl19cywgYnV0IGFyZSANCnJhdGhlciBwaGFudG9tIGlkZWFzIHdoaWNoIGRpc3NvbHZlLCByZWZvcm0sIGFuZCBkaXMtIA0Kc29sdmUgYXtbJiomXX1nYWluLCBjaGFuZ2luZyBmb3JldmVyIHdpdGggZXZlcnkgd2luZCBvZiBjaXItIA0KY3Vtc3RhbmNlLiBIZSBpcyBpbmNhcGFibGUge1smKiZdfW9mIGNlcnRpdHVkZS4gDQoNCldoZW4gSGFtbGV0IGZpcnN0IHN0YW5kcyBiZWZvcmUgdXMsIGhpcyBmYXRoZXIgaGFzIA0KYmVlbiB7WyYqJl19dHdvIG1vbnRocyBkZWFkIDsgaGlzIG1vdGhlciBoYXMgYmVlbiBmb3IgYSBtb250aCANCnRoZSB3aWZlIG9mIENsYXVkaXVzLiBIZXtbJiomXX0gaXMgc29saXRhcnkgaW4gdGhlIG1pZHN0IG9mIHRoZSANCmNvdXJ0LiBBIG1hc3Mgb2Ygc29ycm93IGFuZCBvZiB3b3VuZGVkIGZle1smKiZdfWVsaW5nLCBvZiANCnNoYW1lIGFuZCBvZiBkaXNndXN0LCBoYXMgYmVlbiB0aHJvd24gYmFjayB1cG9uIGhpbSA7IA0KYW5kIHRoaXN7WyYqJl19IHNlY3JldGlvbiBvZiBmZWVsaW5nIHdoaWNoIG9idGFpbnMgbm8gdmVudCBpcyANCmJ1c3kgaW4gcHJvZHVjaW5nIGEgd2lkZS1zcHtbJiomXX1yZWFkaW5nLCBtb3JiaWQgaHVtb3IuIFRoZSANCm1pc2VyeSBvZiBzZWxmLXN1cHByZXNzaW9uIGxlYXZlcyBoaW0gaW4gYSBzdGF0e1smKiZdfWUgb2Ygd2VhayANCmFuZCBpbnRlbnNlIGlycml0YWJpbGl0eS4gRXZlcnkgd29yZCB1dHRlcmVkIHByaWNrcyBoaW0sIA0KYW5kIGh7WyYqJl19ZSBpcyBsb25naW5nIHRvIGJlIGFsb25lLiBBIGxpdHRsZSBiaXR0ZXJuZXNzIGVzLSANCmNhcGVzIGluIGhpcyBicmllZiBhY3JpZHtbJiomXX0gYW5zd2VycyB0byB0aGUgS2luZyA7IGFuZCB3aGVuIA0KaGlzIG1vdGhlciwgaW4gaGVyIGluc2Vuc2liaWxpdHkgdG8gdHJ1ZSBme1smKiZdfWVlbGluZywgY2hhbmNlcyANCnVwb24gdGhlIHdvcmQgXCIgc2VlbXMsXCIgaGlzIGlycml0YXRpb24gYnJlYWtzIGZvcnRoLCBhbmQsIHtbJiomXX0NCmFmdGVyIGhpcyBmYXNoaW9uICh0aGF0IG9mIG9uZSB3aG8gcmVsaWV2ZXMgaGltc2VsZiBieSANCnNwZWVjaCByYXRoZXIgdGhhe1smKiZdfW4gYnkgZGVlZHMpLCBoZSB1bnBhY2tzIGhpcyBoZWFydCBpbiANCndvcmRzLiBUaGUgUXVlZW4sIHdobyBpcyBzb2Z0IGFuZCBzZW57WyYqJl19c3VhbCwgYSBsb3ZlciBvZiANCmVhc2UsIHdpdGhhbCBhIGxpdHRsZSBzZW50aW1lbnRhbCwgYW5kIHRoZXJlZm9yZSBpbmNhcGFibHtbJiomXX1lIA0Kb2YgZ2VudWluZSBwYXNzaW9uLCBkb2VzIG5vdCByZXNlbnQgdGhlIG91dGJyZWFrIG9mIGhlciANCnN0cmFuZ2Ugc29uIDsge1smKiZdfWFuZCBIYW1sZXQsIHNvbWV3aGF0IGFzaGFtZWQgb2YgaGlzIGRlbS0gDQpvbnN0cmF0aW9uLCB3aGljaCBoYXMgdGhlIGxvb2sgb2Z7WyYqJl19IGEgZGlzcGxheSBvZiBzdXBlcmlvciANCmZlZWxpbmcsIGVuZHVyZXMgaW4gc2lsZW5jZSBoaXMgdW5jbGVcJ3MgdGVkaW91cyBtb3J7WyYqJl19YWxpemluZyANCm9uIHRoZSBkdXRpZXMgb2YgbW91cm5lcnMuIFRoZW4gd2l0aCBncmF2ZSBjb3VydGVzeSANCmhlIHlpZWxkcyB0b3tbJiomXX0gaGlzIG1vdGhlclwncyByZXF1ZXN0IHRoYXQgaGUgc2hvdWxkIHJlbm91bmNlIA0KaGlzIGludGVudGlvbiBvZiByZXR1cm5pbmcgdHtbJiomXX1vIFdpdHRlbmJlcmcg4oCUIA0KDQpcIiBJIHNoYWxsIGluIGFsbCBteSBiZXN0IG9iZXkgeW91LCBtYWRhbS5cIiANCg0KV2hhdCBtYXR7WyYqJl19dGVycyBpdCB3aGV0aGVyIGhlIGdvIG9yIHN0YXkgISBMaWZlIGlzIGFsbCBzbyANCmZsYXQsIHN0YWxlLCBhbmQgdW5wcm9maXRhYntbJiomXX1sZSB0aGF0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gDQoNCjEgMjAgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQpXe1smKiZdfWl0dGVuYmVyZyBhbmQgRWxzaW5vcmUgY2Fubm90IGJlIHdvcnRoIGNvbnRlbmRpbmcgDQpmb3IuXCJeIEJ1dCB3aGVuIGF0IGxlbmd0e1smKiZdfWggaGUgaXMgYWxvbmUsIEhhbWxldCBmZWVscyANCmhpbXNlbGYgZW5mcmFuY2hpc2VkIOKAlCBmcmVlIHRvIHNoZWQgYWJyb2FkIGh7WyYqJl19aXMgc29ycm93LCANCnRvIGdhemUgaW50ZW5zZWx5IGFuZCBtb3VybmZ1bGx5IHVwb24gaGlzIG93biBhcmlkaXR5IA0Kb2Ygc3BpcntbJiomXX1pdCwgYW5kIHRvIGNvbXBlbnNhdGUgaW4gdGhlIGlkZWEgZm9yIHRoZSBleHBlbmRpLSANCnR1cmUgb2Yga2luZG5lc3MgaW4gYWN0e1smKiZdfSBtYWRlIG9uIGhpcyBtb3RoZXJcJ3MgYmVoYWxmLiBBIA0KZnJhaWwgbW90aGVyLCBhbiBpbmNlc3R1b3VzIG1vdGhlciwgYSBtb3Roe1smKiZdfWVyIGVuZG93ZWQgDQp3aXRoIGxlc3MgZGlzY291cnNlIG9mIHJlYXNvbiB0aGFuIHRoZSBiZWFzdHMgISBIZSBoYXMgDQpzYXRpc2Z7WyYqJl19aWVkIHRoZSBRdWVlbiB3aXRoIGFuIGFjdCA7IGFuZCBhY3Rpb24sIHRoaXMgd2F5IG9yIA0KdGhhdCwgaXMgcHJvZm91bmRseSBpbntbJiomXX1zaWduaWZpY2FudCB0byBIYW1sZXQuIEJ1dCBpbiBoaXMgDQptaW5kIHNoZSBzaGFsbCBnZXQgbm8gYWR2YW50YWdlIG9mIGhpbS4ge1smKiZdfUhlIHdpbGwgc2VlIA0KaGVyIGFzIHNoZSBpcyA7IGFuZCBpZiBoZSBpcyBncmFjaW91cyB0byBoZXIgaW4gaGlzIGRlZWRzLCANCmh7WyYqJl19ZSB3aWxsLCBpbiBoaXMgdGhvdWdodHMsIGJlIHN0ZXJuIGFuZCBpbmV4b3JhYmxlLiANCg0KSW4gdGhpcyBzY2VuZSB3ZSBtYWtlIHtbJiomXX1hY3F1YWludGFuY2Ugd2l0aCB0d28gaW1wb3ItIA0KdGFudCBwZXJzb25zIGluIEhhbWxldFwncyB3b3JsZC4gXCIgU29tZXRoaW5nIGl7WyYqJl19cyByb3R0ZW4gDQppbiB0aGUgc3RhdGUgb2YgRGVubWFyayxcIiBleGNsYWltZWQgTWFyY2VsbHVzLiBSYXRoZXIgDQphbGwgaXMgcm97WyYqJl19dHRlbiDigJQgdGhlIHdob2xlIGhlYWQgaXMgc2ljayBhbmQgdGhlIHdob2xlIGhlYXJ0IA0KZmFpbnQuIE9uIHRoZSB0aHJvbmUsIHtbJiomXX10aGUgaGVhcnQgb2YgdGhlIGxpdmluZyBvcmdhbmlzbSANCm9mIGEgc3RhdGUsIHJlaWducyB0aGUgYXBwZWFyYW5jZSBvZiBhIGtpe1smKiZdfW5nIDsgYnV0IHVuZGVyIA0KdGhpcyBraW5nbHkgYXBwZWFyYW5jZSBpcyBoaWRkZW4gYSB3cmV0Y2hlZCwgY29ycnVwdCwgYW5kIA17WyYqJl19CmNvd2FyZGx5IHNvdWwgOyBhIHBvaXNvbmVyIG9mIHRoZSB0cnVlIGtpbmcgYW5kIG9mIHRydWUgDQpraW5nc2hpcCA7IGluY2VzdHtbJiomXX11b3VzLCBncm9zcywgYW5kIHdhbnRvbiA7IGEgZmllcmNlIGRyaW5rLSANCmVyIDsgYSBwYWx0ZXJlciB3aXRoIGhpcyBjb25zY2lle1smKiZdfW5jZSA7IGFuZCwgYXMgSGFtbGV0LCB2ZWhlLSANCm1lbnRseSB1cmdpbmcgdGhlIGZhY3QsIGRlc2NyaWJlcyBoaW0sIFwnXCcgYSB2aXtbJiomXX1jZSBvZiBraW5ncyxcIiANClwiIGEgdmlsbGFpbiBhbmQgYSBjdXQtcHVyc2UsXCIgXCIgYSBwYWRkb2NrLCBhIGJhdCwgYSBnaWIuXCIgDQp7WyYqJl19U3VjaCBpcyBraW5nc2hpcCBpbiBEZW5tYXJrLiANCg0KQW5kIHRoZSBRdWVlbiwgSGFtbGV0XCdzIG1vdGhlciwgb25lIG9mIHRoZSB7WyYqJl19dHdvIHdvbS0gDQplbiBmcm9tIHdob20gSGFtbGV0IG11c3QgaW5mZXIgd2hhdCB3b21hbmhvb2QgaXMg4oCUIA0Kd2hhdCBpcyBzaHtbJiomXX1lID8gRm9yIHRoaXJ0eSB5ZWFycyBzaGUgaGFkIGdpdmVuIHRoZSBhcHBlYXItIA0KYW5jZSwgdGhlIHNpbXVsYWNydW1eIG9mIHRye1smKiZdfXVlIGxvdmUgdG8gaGVyIGh1c2JhbmQsIG9uZSANCm9uIHdob20gDQoNCiogT2JzZXJ2ZSB0aGUgY29udHJhc3QgYmV0d2VlbiBIYW17WyYqJl19bGV0IGFuZCBMYWVydGVzLiBUaGUgbGF0dGVyIHdyaW5ncywgDQpieSBsYWJvcnNvbWUgcGV0aXRpb24sIGxlYXZlIGZyb20gaGlzIHtbJiomXX1mYXRoZXIgdG8gcmV0dXJuIHRvIFBhcmlzLiBMYWVydGVzIA0KaGFkIGNvbWUgZnJvbSBQYXJpcyB0byB0aGUgY29yb25hdGlvbiA7e1smKiZdfSBIb3JhdGlvIGZyb20gV2l0dGVuYmVyZyB0byB0aGUgDQpsYXRlIGtpbmdcJ3MgZnVuZXJhbC4gDQoNCkhhbWxldCAxMjEgDQoNClwiIHtbJiomXX1FdmVyeSBnb2QgZGlkIHNlZW0gdG8gc2V0IGhpcyBzZWFsIA0KVG8gZ2l2ZSB0aGUgd29ybGQgYXNzdXJhbmNlIG9mIGEgbWFuIDtcIntbJiomXX0gDQoNCm9uZSB3aG8sIGV2ZW4gaW4gdGhlIHBsYWNlIG9mIHBlbmFuY2UsIHN0aWxsIHJldGFpbnMgaGlzIA0Kc29saWNpdHVkZSBme1smKiZdfW9yIGhlci4gQW5kIHRoaXMgc2hvdyBvZiB0aGlydHkgeWVhcnNcJyBsb3ZlIA0KaGFkIHByb3ZlZCB0byBiZSB3aXRob3V0IHJlYWxpe1smKiZdfXR5IG9yIHJvb3QgaW4gaGVyIGJlaW5nIDogaXQgDQpoYWQgYmVlbiBubyBtb3JlIHRoYW4gYSBzaW5raW5nLWRvd24gdXBvbiB0aGV7WyYqJl19IGFjY2ktIA0KZGVudGFsIHRoaW5ncyBvZiBsaWZlLCBpdHMgY29tZm9ydHMgYW5kIHBsZWFzdXJlcy4gSGVyIGh1cy0gDQpiYW5kIHtbJiomXX1oYWQgcGFzc2VkIG91dCBvZiBoZXIgZXhpc3RlbmNlIGxpa2UgYW55IG90aGVyIGNhcy0gDQp1YWwgb2JqZWN0LiBEdXJpbmcgYWxse1smKiZdfSB0aG9zZSB5ZWFycyBvZiBibGFtZWxlc3Mgd2lmZWhvb2QsIA0Kc2hlIGhhZCBuZXZlciBvbmNlIGNvbmNlaXZlZCB0aGUgcG9zc2l7WyYqJl19YmlsaXR5IG9mIGEgbG92ZSANCndoaWNoIGlzIGZvdW5kZWQgdXBvbiB0aGUgZXNzZW50aWFsLCBub3QgdGhlIGFjY2lkZW50YWwsIHtbJiomXX0NCmVsZW1lbnRzIG9mIGxpZmUgOyBzaGUgaGFkIG5ldmVyIG9uY2Uga25vd24gd2hhdCBpcyB0aGUgDQpib25kIG9mIGxpZmUgdG8ge1smKiZdfWxpZmUsIGFuZCBvZiBzb3VsIHRvIHNvdWwuIFRoZSB0aW1pZCwgc2VsZi0gDQppbmR1bGdlbnQsIHNlbnN1b3VzLCBzZW50aW1lbnR7WyYqJl19YWwgUXVlZW4gaXMgYXMgcmVtb3RlIGZyb20gDQp0cnVlIHdvbWFuXCdzIHZpcnR1ZSBhcyBDbGF1ZGl1cyBpcyBmcm9tIHRoZSB2aXJ7WyYqJl19dHVlcyBvZiANCnJveWFsIG1hbmhvb2QuIA0KDQpUaGUgdGhpcmQgc2NlbmUgb2YgdGhlIGZpcnN0IGFjdCBpbnRyb2R1Y2VzIGFub3tbJiomXX10aGVyIA0KZ3JvdXAgb2YgcGVyc29uYWdlcywgZGlzdGluZ3Vpc2hlZCBmaWd1cmVzIG9mIHRoZSBEYW5pc2ggDQpjb3VydC4gTGFle1smKiZdfXJ0ZXMgaXMgdGhlIGN1bHR1cmVkIHlvdW5nIGdlbnRsZW1hbiBvZiB0aGUgDQpwZXJpb2QuXiBIZSBpcyBhY2NvbXBsaXNoZWQsIGN7WyYqJl19aGl2YWxyaWMsIGdhbGxhbnQgOyBidXQgdGhlIA0KYWNjb21wbGlzaG1lbnRzIGFyZSBzdXBlcmZpY2lhbCwgdGhlIGNoaXZhbHJ5IHtbJiomXX10aGVhdHJpY2FsLCANCnRoZSBnYWxsYW50cnkgb2YgYSBzaG93eSBraW5kLiBIZSBpcyBtYXN0ZXIgb2YgZXZlbnRzIA0KdXAgdG8ge1smKiZdfWEgY2VydGFpbiBwb2ludCwgYmVjYXVzZSBoZSBzZWVzIHRoZWlyIGNvYXJzZSwgZ2F1ZHksIA0Kc3VwZXJmaWNpYWwgc2lnbmlmaWN7WyYqJl19YW5jZS4gSXQgaXMgaGlzIHBhcnQgdG8gZG8gZmluZSB0aGluZ3MgDQphbmQgbWFrZSBmaW5lIHNwZWVjaGVzIDsgdG8gZW50ZXIgdHtbJiomXX1oZSBraW5nXCdzIHByZXNlbmNlIA0KZ2FsbGFudGx5IGRlbWFuZGluZyBhdG9uZW1lbnQgZm9yIGhpcyBmYXRoZXJcJ3MgbXVyZGVyIDt7WyYqJl19IA0KdG8gbGVhcCBpbnRvIGhpcyBzaXN0ZXJcJ3MgZ3JhdmUgYW5kIHV0dGVyIGEgdGhlYXRyaWNhbCByYW50IA0Kb2Ygc29ycm93LiB7WyYqJl19SGFtbGV0IHNlZXMgaW4gaGlzIG93biBjYXVzZSBhbiBpbWFnZSBvZiANCg0KKiBHZXJ2aW51cyBoYXMgZGVzY3JpYmVkIEhhbWxldHtbJiomXX0gYXMgYSBtYW4gb2YgYSBjaXZpbGl6ZWQgcGVyaW9kIHN0YW5kLSANCmluZyBpbiB0aGUgY2VudHJlIG9mIGFuIGhlcm9pYyBhZ2Uge1smKiZdfW9mIHJvdWdoIG1hbm5lcnMgYW5kIHBoeXNpY2FsIGRhcmluZyANCihcJyogU2hha2VzcGVhcmUgQ29tbWVudGFyaWVzLFwiIHZvbC4gaXtbJiomXX1pLiwgcC4gMTYxKS4gTm8gcGllY2Ugb2YgY3JpdGljaXNtIGNvdWxkIA0KZmFsbCBtb3JlIHdpZGUgb2YgdGhlIG1hcmsuIFRoZSBhe1smKiZdfWdlIG9mIENsYXVkaXVzLCBQb2xvbml1cywgTGFlcnRlcywgT3NyaWMsIA0KYW5kIG9mIHRoZSBzdHVkZW50cyBvZiBwaGlsb3NvcGh7WyYqJl19eSBhdCBXaXR0ZW5iZXJnLCBpcyBhbiBhZ2UgY29tcGxleCBhbmQgDQpyZWZpbmVkLCBhbmQgaW4gYWxsIHRoaW5ncyB0aGUgcmV2ZXtbJiomXX1yc2Ugb2YgaGVyb2ljLiBTZWUgS3JleXNzaWcsICoqIFlvcmxlc3VuLSANCmdkXTNeIGlpYmVyIFNoYWtlc3BlYXJlLFwiIHZvbC4gaXtbJiomXX1pLiwgcC4gJSUlIChlZC4gMTg2MikuIA0KDQoxMiAyIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCnRoYXQgb2Yge1smKiZdfUxhZXJ0ZXMuIEVhY2ggaGFzIGxvc3QgYSBmYXRoZXIgYnkgZm91bCBtZWFucywgDQphbmQgTGFlcnRlcyBkZWxheXMgbm90IHRvLiB7WyYqJl19c2VlayByZXZlbmdlLiBCdXQgU2hha3NwZXJlIA0KZG9lcyBub3QgbWFrZSB0aGUgY29udHJhc3QgYmV0d2VlbiBIYW1sZXQgYW5kIHtbJiomXX1MYWVyLSANCnRlcyBmYXZvcmFibGUgdG8gdGhlIGxhdHRlci4gTm8gb3ZlcndlaWdodCBvZiB0aG91Z2h0LCANCm5vIHN1c2NlcHRpe1smKiZdfWJpbGl0eSBvZiBjb25zY2llbmNlLCByZXRhcmRzIHRoZSBhY3Rpb24gb2YgdGhlIA0KeW91bmcgZ2FsbGFudC4gSGUgcmVhZGlseSB7WyYqJl19ZmFsbHMgaW4gd2l0aCB0aGUgS2luZ1wncyANCnNjaGVtZSBvZiBhc3Nhc3NpbmF0aW9uLCBhbmQgYWRkcyBoaXMgcHJpdmF0ZSBjb257WyYqJl19dHJpYnUtIA0KdGlvbiBvZiB2aWxsYWlueSDigJQgdGhlIHZlbm9tIG9uIGhpcyByYXBpZXJcJ3MgcG9pbnQuIExhLSANCmVydGVzIGh7WyYqJl19YXMgYmVlbiBubyBzdHVkZW50IG9mIHBoaWxvc29waGljIFdpdHRlbmJlcmcuXiANClRoZSBGcmVuY2ggY2FwaXRhbCwgXCIgc28gZGV7WyYqJl19YXIgdG8gdGhlIGF2ZXJhZ2UsIHNlbnN1YWwgDQptYW4sXCIgaXMgTGFlcnRlc1wnIHNjaG9vbCBvZiBlZHVjYXRpb24uIFdoYXQgbGVze1smKiZdfXNvbnMgaGUgDQpsZWFybmVkIHRoZXJlIHdlIG1heSBjb25qZWN0dXJlIGZyb20gdGhlIGNvbnZlcnNhdGlvbiANCm9mIFBvbG9uaXV7WyYqJl19cyB3aXRoIGhpcyBzZXJ2YW50IFJleW5hbGRvLiANCg0KTGFlcnRlc1wnIGxpdHRsZSBzaXN0ZXIsIE9waGVsaWEsIGlzIGxvdmVkIGJ7WyYqJl19eSB0aGUgTG9yZCANCkhhbWxldC4gV2hhdCBpcyBPcGhlbGlhID8gQ2FuIHNoZSBjb250cmlidXRlIHRvIHRoZSANCmRlbGl2ZXJhbntbJiomXX1jZSBvZiBIYW1sZXQgZnJvbSBoaXMgc2FkIGxpZmUgb2YgYnJvb2RpbmcgDQp0aG91Z2h0LCBmcm9tIGhpcyB3ZWFrbmVzcyBhbmQge1smKiZdfWhpcyBtZWxhbmNob2x5ICUgSnVsaWV0IA0KaGFkIGRlbGl2ZXJlZCBSb21lbyBmcm9tIGhpcyBkcmVhbSBvZiBzZWxmLWNvbnNjaW97WyYqJl19dXMgDQplZ29pc3RpYyBmZWVsaW5nIGludG8gdGhlIHJlYWxpdHkgb2YgYW5ndWlzaCBhbmQgb2Ygam95LiANCldoYXQgY2FuIE9waHtbJiomXX1lbGlhIGRvID8gTm90aGluZy4gU2hlIGlzIGEgdGVuZGVyIGxpdHRsZSANCmZyYWdpbGUgc291bCwgd2hvIG1pZ2h0IGhhdmUgZ3Jve1smKiZdfXduIHRvIGhlciBzbGlnaHQgcGVyZmVjLSANCnRpb24gaW4gc29tZSBuZWF0IGdhcmRlbi1wbGF0IG9mIGxpZmUuIEhhbWxldCBmYWx7WyYqJl19bHMgaW50byANCnRoZSB0b28gZnJlcXVlbnQgZXJyb3Igb2Ygc3VwcG9zaW5nIHRoYXQgYSBtYW4gZ2FpbnMgDQpyZXN0IGFuZCBjb3tbJiomXX1tcG9zdXJlIHRocm91Z2ggdGhlIHByZXNlbmNlIG9mIGEgbmF0dXJlIA0Kd2VhaywgZ2VudGxlLCBhbmQgY2xpbmdpbmcgOyBhbmQge1smKiZdfXRoYXQgdGhlIHZlcnkgaW5jYXBhY2l0eSANCm9mIHN1Y2ggYSBuYXR1cmUgdG8gc2hhcmUgdGhlIHRyb3VibGVzIG9mIGhlYXJ0IGF7WyYqJl19bmQgYnJhaW4gDQp3aGljaCBiZXNldCBvbmUgbXVzdCBiZSBhIHNvdXJjZSBvZiByZWZyZXNobWVudCBhbmQgDQpyZXBvc2UuIEFuZHtbJiomXX0gc28gaXQgaXMgZm9yIG1vbWVudHMgd2hlbiB0aGUgcGF0aG9zIG9mIA0Kc2xlbmRlciBqb3ksIHVuYXdhcmUgb2YgdGhlIGdyZWF0e1smKiZdfSBpbnRlcmVzdHMgYW5kIHNvcnJvd3MgDQpvZiB0aGUgd29ybGQsIHRvdWNoZXMgdXMuIEJ1dCBhIHN0cm9uZyBuYXR1cmUgd2FzIHd7WyYqJl19aGF0IA0KSGFtbGV0IHJlYWxseSBuZWVkZWQuIEFsbCB0aGUgY29tZm9ydCBoZSBldmVyIGdvdCBpbiANCmxpZmUgY2FtZSBmcm9tIHtbJiomXX1vbmUgd2hvIHdhcyBcIiBtb3JlIGFuIGFudGlxdWUgUm9tYW4gDQoNCuKZpiBTaGFrc3BlcmUgcmVtZW1iZXJlZCBMdXRoZXIsIHRoaXtbJiomXX1ua3MgR2VydmludXMuIEhlIGhhZCBHaW9yZGFubyANCkJydW5vIGluIGhpcyBtaW5kLCBzYXlzIFRzY2hpc2Nod2l0ei4gVGhlIHVue1smKiZdfWl2ZXJzaXR5IHdhcyBmYW1vdXMgOiBHaW9pJmd0OyANCmRhbm8gQnJ1bm8gbmFtZXMgaXQgdGhlIEF0aGVucyBvZiBHZXJtYW55LiB7WyYqJl19DQoNCkhhbWxldC4gMTIzIA0KDQp0aGFuIGEgRGFuZS9cJyBoaXMgZnJpZW5kIEhvcmF0aW8uIElmIGhlIGhhZCBmb3VuZCBvbmUgDQp7WyYqJl19d2hvIHRvIEhvcmF0aW9cJ3MgZm9ydGl0dWRlLCBoaXMgcGFzc2l2ZSBzdHJlbmd0aCwgaGFkIA0KYWRkZWQgYXJkb3IgYW5kIGVudGh7WyYqJl19dXNpYXNtLCBIYW1sZXRcJ3MgbWVsYW5jaG9seSBtdXN0IA0KaGF2ZSB2YW5pc2hlZCBhd2F5IDsgaGUgd291bGQgaGF2ZSBiZWVuIGx7WyYqJl19aWZ0ZWQgdXAgDQppbnRvIHRoZSBsaWdodCBhbmQgc3RyZW5ndGggb2YgdGhlIGdvb2QgZmFjdHMgb2YgdGhlIA0Kd29ybGQsIGFuZHtbJiomXX0gdGhlbiBoZSBjb3VsZCBub3QgaGF2ZSBmYWx0ZXJlZCB1cG9uIGhpcyANCndheS4gDQoNCkFzIHRoaW5ncyB3ZXJlLCBIYW1sZXQge1smKiZdfXF1aWNrbHkgbGVhcm5lZCwgYW5kIHRoZSBrbm93bC0gDQplZGdlIGVtYml0dGVyZWQgaGltLCB0aGF0IE9waGVsaWEgY291bGQgbmV7WyYqJl19aXRoZXIgcmVjZWl2ZSANCmdyZWF0IGdpZnRzIG9mIHNvdWwsIG5vciBpbiByZXR1cm4gcmVuZGVyIGVxdWl2YWxlbnQgZ2lmdHMuIHtbJiomXX0NClRoZXJlIGlzIGFuIGV4Y2hhbmdlIG9mIGxpdHRsZSB0b2tlbnMgYmV0d2VlbiB0aGUgbG92ZXJzLCANCmJ1dCBvZiB0aGUgbGFye1smKiZdfWdlIGV4Y2hhbmdlIG9mIHNvdWwgdGhlcmUgaXMgbm9uZTsgYW5kIA0KSGFtbGV0LCBpbiBoaXMgYml0dGVyIG1vb2QsIGNhbiB0cnV7WyYqJl19dGhmdWxseSBleGNsYWltLCBcIiBJIA0KbmV2ZXIgZ2F2ZSB5b3UgYXVnaHQuXCIgSGFtbGV0IHdhcyBjb25zY2lvdXMgb2Ygbm8gDQpje1smKiZdfW9uc3RyYWluaW5nIHBvd2VyIHRvIHByZXZlbnQgaGltLCB3aGVuIGhlIHRob3VnaHQgb2YgDQpoaXMgbW90aGVyXCdzIGZyYWlsdHkse1smKiZdfSBmcm9tIGV4dGVuZGluZyBoaXMgd29yZHMgdG8gaGVyIA0Kd2hvbGUgc2V4IOKAlCBcIiBGcmFpbHR5LCB0aHkgbmFtZSBpcyB3b21he1smKiZdfW4uXCIgSGFkIGEgbm9ibGUgDQpuYXR1cmUgc3Rvb2QgaW4gT3BoZWxpYVwncyBwbGFjZSwgdG8gdXR0ZXIgc3VjaCB3b3JkcyB3b3VsZHtbJiomXX0gDQpoYXZlIGJlZW4gdHJlYXNvbiBhZ2FpbnN0IGhpcyBpbm1vc3QgY29uc2Npb3VzbmVzcy4gTGV0IA0KdGhlIHJlYWRlciBjb250e1smKiZdfXJhc3QgSnVsaWV0XCdzIGNvbW1hbmRpbmcgZW5lcmd5IG9mIGZlZWwtIA0KaW5nLCBvZiBpbWFnaW5hdGlvbiwgb2Ygd2lsbCwgd2l0e1smKiZdfWggT3BoZWxpYVwncyB0aW1pZGl0eSBhbmQgDQpzZWxmLWRpc3RydXN0LCB0aGUgaW5jYXBhYmxlIHN3ZWV0bmVzcyBhbmQgZ2VudGxle1smKiZdfW5lc3Mgb2YgDQpoZXIgaGVhcnQsIGhlciBkb2NpbGl0eSB0byBhbGwgbGF3ZnVsIGd1YXJkaWFucyBhbmQgZ292LSANCmVybm9ycy57WyYqJl19IEp1bGlldCB0aHJvd3Mgb2ZmIGZhdGhlciwgbW90aGVyLCBhbmQgbnVyc2UsIGFuZCANCnN0YW5kcyBpbiBzb2xpdGFyeSBzdHJlbntbJiomXX1ndGggb2YgbG92ZSA7IHNoZSBhbHdheXMgdXNlcyB0aGUgDQpkaXJlY3Rlc3Qgd29yZCwgYWx3YXlzIGNvdW5zZWxzIHRoZSBicmF2e1smKiZdfWVzdCBhY3Rpb24uIEluIA0KaGlzIGxhdGVyIHBsYXlzLCBTaGFrc3BlcmUgY2FuIHN0aWxsIGJlIHNlZW4gdG8gcmVqb2ljZSBhbmR7WyYqJl19IA0KZXhwYW5kIGluIHByZXNlbmNlIG9mIHRoZSBjb3VyYWdlIG9mIHRydWUgbG92ZS4gRGVzZGUtIA0KbW9uYSDigJQgDQoNClwiIEF7WyYqJl19IG1haWRlbiBuZXZlciBib2xkIDsgDQpPZiBzcGlyaXQgc28gc3RpbGwgYW5kIHF1aWV0IHRoYXQgaGVyIG1vdGlvbiANCkJsdXNoTXtbJiomXX0gYXQgaGVyc2VsZlwi4oCUIA0KDQpzdGFuZGluZyBieSBPdGhlbGxvXCdzIHNpZGUgY2FuIGNvbmZyb250IGhlciBpbmRpZ25hbnQgDQp7WyYqJl19ZmF0aGVyLCB3aXRoIHRoZSBEdWtlIGFuZCBtYWduaWpmaWNvZXMuIEltb2dlbiwgZm9yIA0KUG9zdGh1bXVzXCdzIHNha2UsIGNhbiB7WyYqJl19c2hvb3QgYWdhaW5zdCB0aGUgS2luZyBoZXIgc2JhaXRzIA0KDQoxIDI0IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDXtbJiomXX0KDQpvZiBpbmRpZ25hbnQgc2Nvcm4sIHNvIGtlZW4gYW5kIGV4cXVpc2l0ZSwgeWV0IGhlYXZpbHkgDQp0aW1iZXJlZCBlbm91Z2gge1smKiZdfXRvIHdpbmcgZm9yd2FyZCB0aHJvdWdoIHRoZSB3aW5kIG9mIA0KQ3ltYmVsaW5lXCdzIGFuZ2VyLiBCdXQgT3BoZWxpYSBpcyBkZWNve1smKiZdfXJvdXMgYW5kIHRpbWlkLCANCndpdGggbm8gaW5pdGlhdGl2ZSBpbiBoZXIgb3duIGhlYXJ0OyB1bmltYWdpbmF0aXZlOyANCmNob297WyYqJl19c2luZyBoZXIgcGhyYXNlcyB3aXRoIGEgc2Vuc2Ugb2YgbWFpZGVubHkgcHJvcHJpLSANCmV0eTogDQoNClwiIEhlIGhhdGgsIG15IGx7WyYqJl19b3JkLCBvZiBsYXRlIG1hZGUgbWFueSB0ZW5kZXJzIA0KT2YgaGlzIGFmZmVjdGlvbiB0byBtZS5cIiANCg0KQW5kIFBvbG9uaXVzIGl7WyYqJl19bnF1aXJlcywgXCIgRG8geW91IGJlbGlldmUgaGlzIHRlbmRlcnMsIGFzIA0KeW91IGNhbGwgdGhlbSA/XCIgXCIgSSBkbyBub3Qga25vd3tbJiomXX0sIG15IGxvcmQsIHdoYXQgSSBzaG91bGQgDQp0aGluay5cIiBJdCBtYXkgYmUgdGhhdCBoZXIgYnJvdGhlciBhbmQgZmF0aGVyIGFyZXtbJiomXX0gcmlnaHQ7IA0KdGhhdCB0aGUgXCIgaG9seSB2b3dzIFwiIG9mIEhhbWxldCBvbiB3aGljaCBzaGUsIHBvb3IgbGl0dGxlIA0Kc291bCx7WyYqJl19IGhhZCByZWxpZWQgYXJlIGJ1dCBcIiBzcHJpbmdlcyB0byBjYXRjaCB3b29kY29ja3MuXCIgSW4gDQpoZXIgbWFkbmVzcywgdGhlIGlte1smKiZdfXByZXNzaW9uIG1hZGUgdXBvbiBoZXIgYnkgdGhlIHdvcmRzIA0Kb2YgUG9sb25pdXMgYW5kIExhZXJ0ZXMsIHdoaWNoIHNoZSBoYWR7WyYqJl19IHVudGlsIHRoZW4gY29uLSANCmNlYWxlZCwgZmluZHMgdXR0ZXJhbmNlIDogXCIgU2hlIHNheXMgc2hlIGhlYXJzIHRoZXJlXCdzIHRye1smKiZdfWlja3MgDQppXCcgdGhlIHdvcmxkLlwiIEp1bGlldCByZXNvbHZlZCBoZXIgZG91YnRzLCBub3QgYnkgY29uLSANCnN1bHRpbmcgb2xkIHtbJiomXX1DYXB1bGV0IG9yIGhlciBudXJzZSwgYnV0IGJ5IHByZXNzaW5nIGZvcndhcmQgDQp0byBwZXJmZWN0IGtub3dsZWRnZSBvZiB0aGUge1smKiZdfWhlYXJ0IG9mIFJvbWVvLCBhbmQgYnkgb2MtIA0KY3VweWluZyB0aGF0IGhlYXJ0IHdpdGggYSBwdXJpdHkgb2YgcGFzc2lvbiBvbmx7WyYqJl19eSBsZXNzIHRoYW4gDQpoZXIgb3duLiBPcGhlbGlhLCB3aGVuIGhlciBmYXRoZXIgZGlyZWN0cyBoZXIgdG8gZGlzLSANCnRydXN0IHtbJiomXX10aGUgbWFuIHNoZSBsb3ZlcywgdG8gZGVueSBoaW0gaGVyIHByZXNlbmNlLCB0byByZS0gDQpwZWwgaGlzIGxldHRlcnMsIGhhcyBve1smKiZdfW5seSBoZXIgbWVlayBsaXR0bGUgc3VibWlzc2lvbiB0byANCnV0dGVyLCBcIiBJIHNoYWxsIG9iZXksIG15IGxvcmQuXCIgDQoNClRoZXtbJiomXX0gY29taWMgZWxlbWVudCBpbiB0aGlzIHNjZW5lIGlzIHByZXNlbnQsIGJ1dCBpcyANCm5vdCBvYnRydWRlZC4gU2hha3NwZXJlLCBcIntbJiomXX1kZXIgZmVpbmUgU2hha3NwZXJlLCBkZXIgDQpTY2hhbGssXCJeIHNtaWxlcyB2aXNpYmx5LCBidXQgcmVzdHJhaW5zIGhpbXNlbGYgZntbJiomXX1yb20gDQpkb3ducmlnaHQgbGF1Z2h0ZXIuIExhZXJ0ZXMgaGFzIHJlYWQgaGlzIG1vcmFsIGxlY3R1cmUgDQp0byBPcGhlbGlhLCBhe1smKiZdfW5kIHNoZSBpbiB0dXJuIHZlbnR1cmVzIHVwb24gYSBnZW50bGUgbGl0dGxlIA0KcGllY2Ugb2Ygc2lzdGVybHkgYWR2aWNlLiBMYWV7WyYqJl19cnRlcyBzdWRkZW5seSBkaXNjb3ZlcnMgdGhhdCANCmhlIG91Z2h0IHRvIGJlIGFib2FyZCBoaXMgc2hpcCA6IFwiIEkgc3RheSB0b297WyYqJl19IGxvbmcuXCIgT3BoZS0gDQpsaWEgXCJpcyBnaXZpbmcgdGhlIGNvbnZlcnNhdGlvbiBhIG5lZWRsZXNzIGFuZCBpbmNvbnZlbi0gDQoNe1smKiZdfQoqIEYuIFRoLlZpc2NoZXIsIGluIEphQXJpel5BIGRlciBkZXVVY2xpZW4gU2hha2VzcGVhcmUtIEdlYWVVc2NoYS90XllvaSANCml7WyYqJl19bCwgcC4gMTQ5LiANCg0KSSANCg0KSSANCg0KSGFtbGV0LiAxMjUgDQoNCiZsdDsgDQoNCmxlbnQgdHVybiA7IC4gLiAuIGZvciBzaXtbJiomXX1zdGVycyB0byBsZWN0dXJlIGJyb3RoZXJzIGlzIGFuIGludmVyLSANCnNpb24gb2YgdGhlIG5hdHVyYWwgb3JkZXIgb2YgdGhpbmdze1smKiZdfS5cIl4gQnV0IGF0IHRoaXMgbW8tIA0KbWVudCB0aGUgdmVuZXJhYmxlIENoYW1iZXJsYWluIGFwcGVhcnMuIExhZXJ0ZXMsIHdobyANe1smKiZdfQp3YXMgc3VwcG9zZWQgdG8gaGF2ZSBnb25lLCBpcyBjYXVnaHQuIFRoZXJlIGlzIG9ubHkgb25lIA0KbW9kZSBvZiBlc2NhcGUgZnJ7WyYqJl19b20gdGhlIGltbWluZW50IHNjb2xkaW5nIOKAlCB0byBrbmVlbCANCmFuZCBhc2sgYSBzZWNvbmQgYmxlc3NpbmcuIFdoYXQgbWF0dHtbJiomXX1lciB0aGF0IGl0IGhhcyBhbGwgDQpiZWVuIHNhaWQgb25jZSBiZWZvcmUgPyBTdGFydCB0aGUgb2xkIG1hbiBvbiBoaXMgaG9iYnkge1smKiZdfQ0Kb2YgdXR0ZXJpbmcgd2lzZG9tLCBhbmQgb2ZmIGhlIHdpbGwgZ28gOiANCg0KXCJBIGRvdWJsZSBibGVzc2luZyBpcyBhIGRvdWJse1smKiZdfWUgZ3JhY2UgOyANCk9jY2FzaW9uIHNtaWxlcyB1cG9uIGEgc2Vjb25kIGxlYXZlLlwiIA0KDQpUaGUgYWR2aWNlIG9mIFBvbG9uaXVze1smKiZdfSBpcyBhIGNlbnRvIG9mIHF1b3RhdGlvbnMgZnJvbSANCkx5bHlcJ3MgXCIgRXVwaHVlcy5cIiBmIEl0cyBzaWduaWZpY2FuY2UgbXVzdCB7WyYqJl19YmUgbG9va2VkIGZvciANCmxlc3MgaW4gdGhlIG1hdHRlciB0aGFuIGluIHRoZSBzZW50ZW50aW91cyBtYW5uZXIuIFBvbG8tIA0KbntbJiomXX1pdXMgaGFzIGJlZW4gd2lzZSB3aXRoIHRoZSBsaXR0bGUgd2lzZG9tIG9mIHdvcmxkbHkgcHJ1LSANCmRlbmNlLiBIZSBoYXMgYmVle1smKiZdfW4gYSBtYXN0ZXIgb2YgaW5kaXJlY3QgbWVhbnMgb2YgZ2V0LSANCnRpbmcgYXQgdGhlIHRydXRoLCBcIiB3aW5kbGFjZXMgYW5kIGFze1smKiZdfXNheXMgb2YgYmlhcy5cIiBJbiB0aGUgDQpzaGFsbG93IGxvcmUgb2YgbGlmZSBoZSBoYXMgYmVlbiBsZWFybmVkLiBPZiB0cnVlIHdpe1smKiZdfXNkb20gDQpoZSBoYXMgbmV2ZXIgaGFkIGEgZ2xlYW0uIEFuZCB3aGF0IFNoYWtzcGVyZSB3aXNoZXMgDQp0byBzaWduaWZ5IGluIHR7WyYqJl19aGlzIHNwZWVjaCBpcyB0aGF0IHdpc2RvbSBvZiBQb2xvbml1c1wncyANCmtpbmQgY29uc2lzdHMgb2YgYSBzZXQgb2YgbWF4aW1zIDt7WyYqJl19IGFsbCBzdWNoIHdpc2RvbSBtaWdodCANCmJlIHNldCBkb3duIGZvciB0aGUgaGVhZC1saW5lcyBvZiBjb3B5Ym9va3MuIFRoYXQgaXtbJiomXX1zIHRvIA0Kc2F5LCBoaXMgd2lzZG9tIGlzIG5vdCB0aGUgb3V0ZmxvdyBvZiBhIHJpY2ggb3IgZGVlcCBuYXQtIA0KdXJlLCBidXQge1smKiZdfXRoZSBsaXR0bGUgYWNjdW11bGF0ZWQgaG9hcmQgb2YgYSBsb25nIGFuZCBzdS0gDQpwZXJmaWNpYWwgZXhwZXJpZW5jZS4gVGhpcyB7WyYqJl19aXMgd2hhdCB0aGUgc2VudGVudGlvdXMgbWFuLSANCm5lciBzaWduaWZpZXMuIEFuZCB2ZXJ5IHJpZ2h0bHkgU2hha3NwZXJlIGhhc3tbJiomXX0gcHV0IGludG8gDQpQb2xvbml1c1wncyBtb3V0aCB0aGUgbm9ibGUgbGluZXMsIA0KDQoqIEMuIEUuIE1vYmVybHksIFJ1Z2J5IGVkaXtbJiomXX10aW9uIG9mIEhhbWxldF4gcC4gMjEuIA0KDQp0IE1yLiBXLiBMLiBSdXNodG9uLCBpbiBoaXMgXCIgU2hha2VzcGVhcmVcJ3MgRXVwaHV7WyYqJl19aXNtLFwiIHBwLiA0NC00NyAoTG9uLSANCmRvbiwgMTg3MSksIHBsYWNlcyBzaWRlIGJ5IHNpZGUgdGhlIHByZWNlcHRzIG9mIFBvbG97WyYqJl19bml1cyBhbmQgb2YgRXVwaHVlcy4gDQpeXCdcJ1BvTCBHaXZlIHRoeSB0aG91Z2h0cyBubyB0b25ndWUuIEV1cGguIEJlIG5vdCBsYXZpe1smKiZdfXNoIG9mIHRoeSB0b25ndWUuIA0KUG9sLCBEbyBub3QgZHVsbCB0aHkgcGFsbSwgZXRjLiBFdXBoLiBFdmVyeSBvbmUgdGhhdCBzaGF7WyYqJl19a2V0aCB0aGVlIGJ5IHRoZSANCmhhbmQgaXMgbm90IGpvaW5lZCB0byB0aGVlIGluIGhlYXJ0LiBQb2wuIEJld2FyZSBvZiBlbnRyYXtbJiomXX1uY2UgdG8gYSBxdWFycmVsLCANCmV0Yy4gRXVwaC4gQmUgbm90IHF1YXJyZWxsb3VzIGZvciBldmVyeSBsaWdodCBvY2Nhc2lvbi4ge1smKiZdfVBvbC4gR2l2ZSBldmVyeSANCm1hbiB0aGluZSBlYXIsIGJ1dCBmZXcgdGh5IHZvaWNlLiBFdXBoLiBJdCBzaGFsbCBiZSB0aGVyZSB7WyYqJl19YmV0dGVyIHRvIGhlYXIgDQp3aGF0IHRoZXkgc2F5IHRoYW4gdG8gc3BlYWsgd2hhdCB0aG91IHRoaW5rZXN0LlwiIEJvdGggUG9sb257WyYqJl19aXVzIGFuZCBFdVwnIA0KcGh1ZXMgc3BlYWsgb2YgdGhlIGFkdmljZSBnaXZlbiBhcyBcIiB0aGVzZSBmZXcgcHJlY2VwdHMuXCIgDQoNCntbJiomXX0xMjYgXCcgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KXCIgVG8gdGhpbmUgb3duIHNlbGYgYmUgdHJ1ZSwgDQpBbmR7WyYqJl19IGl0IG11c3QgZm9Vb3YvIGFzIHRoZSBuaWdodCB0aGUgZGF5IA0KVGhvdSBjYW5zdCBub3QgdGhlbiBiZSBmYWxzZSB0byBhbnkgbXtbJiomXX1hbi5cIiANCg0KNXJlcyA7IFBvbG9uaXVzIGhhcyBnb3Qgb25lIGdyZWF0IHRydXRoIGFtb25nIGhpcyBjb3B5Xl4gDQpib29rIG1heHtbJiomXX1pbXMsIGJ1dCBpdCBjb21lcyBpbiBhcyBhIGxpdHRsZSBiaXQgb2YgaGFyZCwgdW4tIA0Kdml0YWwgd2lzZG9tIGxpa2UgdGhlIHJle1smKiZdfXN0OiBcJ1wnRHJlc3Mgd2VsbF4gZG9uSCBsZW5kIG9yIA0KaG9ycm93IG1vbmV5IDsgdG8gdGhpbmUgb3duIHNlbGYgaGUgdHJ1ZVAgXCJ7WyYqJl19XiANClxcIEJ1dCB0byBhcHByZWNpYXRlIGFuZCBlbmpveSBmdWxseSB0aGUgQ2hhbWJlcmxhaW5cJ3MgDQptb3JhbGl0eSwgd2UgbXVze1smKiZdfXQgb2JzZXJ2ZSBoaW0gaW4gdGhlIGZpcnN0IHNjZW5lIG9mIHRoZSANCnNlY29uZCBhY3QuIFJleW5hbGRvIGlzIGRlc3BhdGNoZWR7WyYqJl19IGFzIGEgc3B5IHVwb24gdGhlIA0KY29uZHVjdCBvZiB0aGUgc29uIG9uIHdob20gdGhlIHBhdGVybmFsIGJsZXNzaW5nIGhhZCANCntbJiomXX1iZWVuIHNvIHRlbmRlcmx5IGJlc3Rvd2VkLiBQb2xvbml1cyBkb2VzIG5vdCBleHBlY3QgDQptb3JhbGl0eSBvZiBhbiBpZGVhbCBre1smKiZdfWluZCBmcm9tIHRoZSBib3kuIEFzIGlzIG5hdHVyYWwsIA0KTGFlcnRlcyBpbiBQYXJpcyB3aWxsIHNvdyBoaXMgd2lsZCBvYXRzLiB7WyYqJl19SWYgaGUgY29tZSBiYWNrIA0KdGhlIGFjY29tcGxpc2hlZCBjYXZhbGllciwgc2tpbGZ1bCBpbiBtYW5hZ2Ugb2YgaGlzIGhvcnNlLHtbJiomXX0gDQphIG1hc3RlciBvZiBmZW5jaW5nLCBhYmxlIHRvIGZpbmdlciBhIGx1dGUsIFBvbG9uaXVzIHdpbGwgDQp0cmVhc3VyZSB1cCBpe1smKiZdfW4gaGlzIGhlYXJ0LCBub3QgZGlzY29udGVudGVkLCB0aGUga25vd2xlZGdlIA0Kb2YgaGlzIHNvblwncyBcIiB3aWxkIHNsaXBzIGFuZHtbJiomXX0gc2FsbGllcy5cIiBmIA0KDQpNZWFud2hpbGUsIEhhbWxldCwgaW4gdGhlIG1pZHN0IG9mIGhpcyBzdGVyaWxlIHdvcmxkLSANCndlYXtbJiomXX1yaW5lc3MsIGhhcyByZWNlaXZlZCBhIHNob2NrLCBidXQgbm90IHRoZSBzaG9jayBvZiBqb3kuIA0KSGlzIGZhdGhlclwncyBzcGlyaXtbJiomXX10IGlzIGFicm9hZC4gV2l0aCBIb3JhdGlvIGFuZCBNYXItIA0KY2VsbHVzLCBIYW1sZXQgb24gdGhlIHBsYXRmb3JtIGF0IG5pZ2h0e1smKiZdfSBpcyBhd2FpdGluZyB0aGUgDQphcHBlYXJhbmNlIG9mIHRoZSBnaG9zdC4gVGhlIHNvdW5kcyBvZiBDbGF1ZGl1c1wncyByZXZlbHJ5e1smKiZdfSANCnJlYWNoIHRoZWlyIGVhcnMuIEhhbWxldCBpcyBzdGFydGVkIHVwb24gYSBzZXJpZXMgb2YgcmUtIA0KZmxlY3Rpb25zIHN1Z2d7WyYqJl19ZXN0ZWQgYnkgdGhlIERhbmlzaCBkcmlua2luZyBjdXN0b21zIDsgaGlzIA0Kc3Vycm91bmRpbmdzIGRpc2FwcGVhciA7IGhlIGhhc3tbJiomXX0gY2Vhc2VkIHRvIHJlbWVtYmVyIHRoZSANCg0KKiBDb21wYXJlIGFuZCBjb250cmFzdCB3aXRoIHRoZSBhZHZpY2Ugb2YgUG9sb25pe1smKiZdfXVzIHRoZSBwYXJ0aW5nIHdvcmRzIG9mIA0KdGjCqyZndDsgQ291bnRlc3MgdG8gQmVydHJhbSBpXkFsbCBcXCBXZWxsIHRoYXQgRW5ke1smKiZdfXMgV2VsbF4gYWN0IGkuLCBzYy4gMSkuIE9ic2VydmUgDQpob3cgdGhlIHNwZWVjaCBvZiB0aGUgQ291bnRlc3Mgb3BlbnMgYW5kIGV7WyYqJl19bmRzIHdpdGggbW90aGVybHkgcGFzc2lvbiBvZiANCmZlYXIgYW5kIHByaWRlLCBpbiB3aGljaCBsaWVzIGVuY2xvc2VkIGhlciBsaXtbJiomXX10dGxlIGVpZm9ydCBhdCBtb3JhbCBwcmVjZXB0LiANCg0KZiBUaGUgbGFzdCB3b3JkcyBvZiBQb2xvbml1cyB0byBSZXluYWxkbyBhe1smKiZdfXJlLCBcIiBBbmQgbGV0IGhpbSBbTGFlcnRlc10gDQpwbHkgaGlzIG11c2ljLlwiIE9uIHRoZXNlIHdvcmRzIFZpc2NoZXIgb2JzZXJ2ZXtbJiomXX1zLCBcIkRpZSBwYWFyIFdvcnRjaGVuIGVyc3QgDQplbmhhbHRlbiBkZW4gZ2FuemVuIFNjaGxpaXNzZWwgOyBkZXIgU29obiBkYXJmIHtbJiomXX1zcGllbGVuLCB0cmlua2VuLCByYXVmZW4sIGZsdS0gDQpjaGVuLCB6YW5rZW4sIGluIHNhdWJyZSBIYXVzZXIsICogdmlkZWxpY2V0e1smKiZdfSBCb3JkZWxsZSxcJyBnZWhlbiwgd2VubiBlciBudXIgTXVzaWsgDQp0cmVpYnQ7IGFjaHRlIENhdmFsaWVyc2VyemllaHVuZyAhXCIgKHtbJiomXX1cIkRpZSByZWFsaXN0aXNjaGUgU2hha2VzcGVhcmUgLSBLcml0aWsgDQp1bmQgSGFtbGV0LFwiIHZvbiBGLiBUaC4gVmlzY2hlciwgaW57WyYqJl19IEphaHJodWNoIGRlciBkZXV0c2NoZW4gU2hha2VzcGVhcmUtR2V0IA0KSGxsc2NoYS90LCB2b2wuIGlpLiwgcC4gMTQ5LikgDQoNCntbJiomXX1IYW1sZXQgMTI3IA0KDQpwdXJwb3NlIHdpdGggd2hpY2ggaGUgaGFzIGNvbWUgaGl0aGVyIDsgaGUgaXMgbG9zdCBpbiBoaXMgDQpve1smKiZdfXduIHRob3VnaHRzLiBUaGUgZ2hvc3QgaXMgcHJlc2VudCBiZWZvcmUgSGFtbGV0IGlzIA0KYXdhcmUuIEl0IGlzIEhvcmF0aW8gd2h7WyYqJl19byBpbnRlcnJ1cHRzIGhpcyBtZWRpdGF0aW9uLCBhbmQgDQpyb3VzZXMgaGltIHRvIGJlaG9sZCB0aGUgYXBwYXJpdGlvbi4gTm8gc3tbJiomXX1vb25lciBoYXMgDQpIYW1sZXQgaGVhcmQgdGhlIHdvcmQgXCJNdXJkZXJcIiB1cG9uIGhpcyBmYXRoZXJcJ3MgbGlwcyANCnRoYW4gaGUge1smKiZdfWlzIGFkZHJlc3NlZCB0byBcIiBzd2VlcCB0byBoaXMgcmV2ZW5nZSBcIuKAlGluIHRoZSANCmlkZWEg4oCUIA0KDQpcIiBXaXRoIHdpbmd7WyYqJl19cyBhcyBzd2lmdCANCkFzIG1lZGl0YXRpb24gb3IgdGhlIHRob3VnaHRzIG9mIGxvdmUuXCIgDQoNCkhlIHdpbGwgY2hhbmdlIGhpcyB7WyYqJl19ZW50aXJlIG1lbnRhbCBzdG9jayBhbmQgc3RvcmUgOyBoZSB3aWxsIA0KZm9yZ2V0IGhpcyBhcnRzIGFuZCBoaXMgcGhpbG9zb3BoaXtbJiomXX1lczsgaGUgd2lsbCByZXRhaW4gbm8gDQp0aG91Z2h0IHNhdmUgb2YgaGlzIG11cmRlcmVkIGZhdGhlci4gQW5kIHdoZW4gdGhlIA0Ke1smKiZdfWdob3N0IGRlcGFydHMsIGhlIGRyYXdzIOKAlCBcIiBub3QgaGlzIHN3b3JkLCBidXQgaGlzIG5vdGUtIA0KYm9vay5cIiBeIFRoZXJlLHtbJiomXX0gYXQgbGVhc3QsIGhlIGNhbiBnZXQgaXQgZG93biBpbiBibGFjayBhbmQgDQp3aGl0ZSB0aGF0IHRoZSBzbWlsaW5nIENsYXVkaXVze1smKiZdfSBpcyBhIHZpbGxhaW4g4oCUIGNhbiBwdXQgdGhhdCANCmZhY3QgYmV5b25kIHRoZSByZWFjaCBvZiBkb3VidCBvciB2aWNpc3NpdHV7WyYqJl19ZGUgOyBmb3Igc3ViLSANCmplY3RpdmUgaW1wcmVzc2lvbnMsIEhhbWxldCBpcyB0b28gd2VsbCBhd2FyZSwgZG8gbm90IHJlLSANCntbJiomXX10YWluIHRoZSBjZXJ0aXR1ZGUgd2hpY2ggZHVyaW5nIG9uZSB2aXZpZCBtb21lbnQgc2VlbWVkIA0KdG8gY2hhcmFjdGVyaXplIHRoe1smKiZdfWVtLiBIZSB3aWxsIGhlbmNlZm9ydGggcmVtZW1iZXIgbm90aC0gDQp0aGluZyBidXQgdGhlIGdob3N0IDsgYW5kLCB0byBhc3N1cmV7WyYqJl19IGhpbXNlbGYgb2YgdGhhdF4gaGUgc2V0cyANCmRvd24gaGlzIGZhdGhlclwncyBwYXJ0aW5nIHdvcmRzLCBcIiBBZGlldSwgYWRpZXUge1smKiZdfSEgcmVtZW0tIA0KYmVyIG1lLlwiIFRoYXQgaXMgdG8gc2F5LCBcIiBoZSBwdXRzIGEga25vdCB1cG9uIGhpcyBoYW5kLSANCmtlcmNoaXtbJiomXX1lZi5cIiB0IEhlIGlzIGNvbnNjaW91cyB0aGF0IGhlIGlzIG5vdCBtYWRlIGZvciB0aGUgDQp3b3JsZCBvZiBhY3Rpb24gOyB0aGF0IHtbJiomXX10aGUgZmFjdCBpcyBhbHdheXMgaW4gcHJvY2VzcyBvZiBnbGlkLSANCmluZyBhd2F5IGZyb20gaGltIGFuZCBiZWluZyByZXBsYWNle1smKiZdfWQgYnkgYW4gaWRlYS4gQW5kIA0KaGUgaXMgcmVzb2x2ZWQgdG8gZ3VhcmQgYWdhaW5zdCB0aGlzIGluIHRoZSBwcmVzZW50IGluc3R7WyYqJl19YW5jZS4gDQpJdCBpcyBub3csIGluIGEgc3VkZGVuIGluc3BpcmF0aW9uIG9mIGV4Y2l0ZWQgZmVlbGluZywgDQp0aGF0IEhhbWxldHtbJiomXX0gY29uY2VpdmVzIHRoZSBwb3NzaWJpbGl0eSBvZiBoaXMgYXNzdW1pbmcgYW4gDQphbnRpYyBkaXNwb3NpdGlvbi4gV2hhdCBpcyBIe1smKiZdfWFtbGV0XCdzIHB1cnBvc2UgaW4gdGhpcz8gDQpIZSBmaW5kcyB0aGF0IGhlIGlzIGludm9sdW50YXJpbHkgY29uZHVjdGluZyBoaW1ze1smKiZdfWVsZiBpbiBhIA0Kd2lsZCBhbmQgdW5pbnRlbGxpZ2libGUgZmFzaGlvbi4gSGUgaGFzIGVzY2FwZWQgXCJmcm9tIA0KDQoqIFcuIE9le1smKiZdfWhsbWFubiwgSmFocmh1Y2ggZGVyIGRldXRzY2hlbiBTaGFrZXNwZWFyZS0gR2VzZWxsc2NoYWZ0XiB2b2wuIGxpTCwgDQpwLiAyMTF7WyYqJl19LiANCnQgZmllYmxlciwgXCIgQXVmc2F0emUgaWliZXIgU2hha2VzcGVhcmVcIiAoQmVybiwgMTg2NSksIHAuIDEzOC4gDQoNCjEyOCBTe1smKiZdfWhha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQpoaXNcIiBvd24gZmVlbGluZ3Mgb2YgdGhlIG92ZXJ3aGVsbWluZyBhbmQge1smKiZdfXN1cGVybmF0dXJhbCANCmJ5IGEgd2lsZCB0cmFuc2l0aW9uIHRvIHRoZSBsdWRpY3JvdXMg4oCUIGEgc29ydCBvZiBjdW5uaW5nIA17WyYqJl19CmJyYXZhZG8sIGJvcmRlcmluZyBvbiB0aGUgZmxpZ2h0cyBvZiBkZWxpcml1bS5cIiBIaXMgbWluZCANCnN0cnVnZ2xlcyBcInRvIHJle1smKiZdfXN1bWUgaXRzIGFjY3VzdG9tZWQgY291cnNlLCBhbmQgZWZmZWN0IGEgDQpkb21pbmlvbiBvdmVyIHRoZSBhd2Z1bCBzaGFwZXMgYW57WyYqJl19ZCBzb3VuZHMgdGhhdCBoYXZlIA0KdXN1cnBlZCBpdHMgc292ZXJlaWdudHkuXCJcIl4gSGUgYXNzdW1lcyBtYWRuZXNzIGFzIGEgDQpte1smKiZdfWVhbnMgb2YgY29uY2VhbGluZyBoaXMgYWN0dWFsIGRpc3R1cmJhbmNlIG9mIG1pbmQuIEhpcyANCm92ZXItZXhjaXRhYmlsaXR5IG17WyYqJl19YXkgYmV0cmF5IGhpbSA7IGJ1dCBpZiBpdCBiZSBhIHJlY2VpdmVkIA0Kb3BpbmlvbiB0aGF0IGhpcyBtaW5kIGlzIHVuaGluZ2VkLHtbJiomXX0gc3VjaCBhbiBhY2Nlc3Mgb2YgDQpvdmVyLWV4Y2l0ZW1lbnQgd2lsbCBwYXNzIHVub2JzZXJ2ZWQgYW5kIHVuc3R1ZGllZC4gQXQge1smKiZdfQ0KdGhpcyBtb21lbnQgSGFtbGV0XCdzIGltbWVkaWF0ZSBuZWVkIGlzIHRvIGNhbG0gaGltLSANCnNlbGYsIHRvIGVzY2FwZSBpbnRve1smKiZdfSBzb2xpdHVkZSwgdGhlcmUgdG8gcmVjb3ZlciBzZWxmLW1hc3RlcnksIA0KYW5kIGNvbWUgdG8gYSBjbGVhciB1bmRlcnN0YW5kaW57WyYqJl19ZyBvZiB0aGUgYWx0ZXJlZCBzdGF0ZSANCm9mIHRoaW5ncy4gSW4gdGhlIGxpZ2h0IG9mIHRoZSBjb3VydCwgaGUgaXMgcGVyc2VjdXtbJiomXX10ZWQgYnkgDQp0aGUgZXllcyBvZiB0aGUgY3VyaW91cyBhbmQgdGhlIHN1c3BpY2lvdXMgOyBoZSBpcyBcIiB0b28gDQptdWNoIGlcJyB7WyYqJl19dGhlIHN1bi5cIiBUbyBiZSBpbiBwcmVzZW5jZSBvZiBhbGwsIGFuZCB5ZXQgdG8gDQpiZSBoaWRkZW4gOyB0byBiZSBpbnRlbGxpZ2l7WyYqJl19YmxlIHRvIGhpbXNlbGYsIGFuZCBhIHBlcnBsZXhpdHkgDQp0byBvdGhlcnM7IHRvIGJlIHdpdGhpbiByZWFjaCBvZiBldmVyeSBvbntbJiomXX1lLCBhbmQgdG8gYmUgDQpoaW1zZWxmIGluYWNjZXNzaWJsZSDigJQgdGhhdCB3b3VsZCBiZSBhbiBlbnZpYWJsZSBwb3NpdGlvbiAhe1smKiZdfSANCk1hZG5lc3MgcG9zc2Vzc2VzIGV4cXVpc2l0ZSBpbW11bml0aWVzIGFuZCBwcml2aWxlZ2VzLiANCkZyb20gdGhlIHNhZmUgdmF7WyYqJl19bnRhZ2Ugb2YgdW5pbnRlbGxpZ2liaWxpdHksIGhlIGNhbiBkZWxpZ2h0IA0KaGltc2VsZiBieSB1dHRlcmluZyBoaXMgd2hvbGUgbXtbJiomXX1pbmQsIGFuZCBzZW5kaW5nIGZvcnRoIA0KaGlzIHdvcmRzIGFtb25nIHRoZSB3b3JkcyBvZiBvdGhlcnMsIHdpdGggdGhlaXIgbWVhe1smKiZdfW4tIA0KaW5nIGRpc2d1aXNlZCwgYXMgaGUgaGltc2VsZiBtdXN0IGJlLCBjbG90aGVkIGluIGFuIGFudGljIA0KZ2FyYiBvZiBwYXJ7WyYqJl19YWJsZSwgZGFyayBzYXlpbmdzIHdoaWNoIHNwZWFrIHRoZSB0cnV0aCBpbiBhIA0KbXlzdGVyeS4gDQoNCiogVGhlIGZpcnN0IHF1b3tbJiomXX10YXRpb24gaXMgZnJvbSBTLiBULiBDb2xlcmlkZ2UgOyB0aGUgc2Vjb25kIGZyb20gYW4gZXNzYXkgDQpieSBIYXJ0bGV5IENvbGVye1smKiZdfWlkZ2UsIFwiIE9uIHRoZSBDaGFyYWN0ZXIgb2YgSGFtbGV0LFwiIFwiIEVzc2F5cyBhbmQgTWFyZ2ktIA0KbmFsaWEsXCIgdm9sLiBpLixwe1smKiZdfXAuIDE1MS0xNzEuIEFuIGVhcmxpZXIgd3JpdGVyIHRoYW4gUy4gVC4gQ29sZXJpZGdlIGhhZCB3ZWxsIA0Kc2FpZCwgXCIgSGFtbGV0e1smKiZdfSB3YXMgZnVsbHkgc2Vuc2libGUgaG93IHN0cmFuZ2UgdGhvc2UgaW52b2x1bnRhcnkgaW1wcm9wcmllLSANCnRpZXMgbXVzdCBhcHB7WyYqJl19ZWFyIHRvIG90aGVycy4gSGUgd2FzIGNvbnNjaW91cyBoZSBjb3VsZCBub3Qgc3VwcHJlc3MgdGhlbSA7IA0KaGUga25ldyBoZSB3YXtbJiomXX1zIHN1cnJvdW5kZWQgd2l0aCBzcGllcyA7IGFuZCBoZSB3YXMganVzdGx5IGFwcHJlaGVuc2l2ZSBsZXN0IA0KaGlzIHN1c3BpY2lve1smKiZdfW5zIG9yIHB1cnBvc2VzIHNob3VsZCBiZSBkaXNjb3ZlcmVkLiBCdXQgaG93IGFyZSB0aGVzZSBjb25zZS0gDQpxdWVuY2VzIHRvIGJ7WyYqJl19ZSBwcmV2ZW50ZWQgPyBCeSBjb3VudGVyZmVpdGluZyBhbiBpbnNhbml0eSB3aGljaCBpbiBwYXJ0IA0KZXhpc3RzLlwiIOKAlCBSaWN7WyYqJl19aGFyZHNva1wncyAtwqNKczVhPy/CqyBvbiBTaGFrZXNwZWFyZVwncyBEcmFtYXRpYyBDaGFyYWN0ZXJzICgxNzg2Sl4gDQpwLiAxNjMue1smKiZdfSANCg0KSGFtbGV0LiAxMjkgDQoNCjEgSGFtbGV0IGRvZXMgbm90IGFzc3VtZSBtYWRuZXNzIHRvIGNvbmNlYWwgYW55IHBsYW4gDQp7WyYqJl19b2YgcmV2ZW5nZS4gSGUgcG9zc2Vzc2VzIG5vIHN1Y2ggcGxhbi4gQW5kIGFzIGZhciBhcyANCmhpcyBhY3RpdmUgcG93ZXJzIGFyZXtbJiomXX0gY29uY2VybmVkLCB0aGUgYXNzdW1lZCBtYWRuZXNzIGlzIA0KYSBtaXNmb3J0dW5lLiBJbnN0ZWFkIG9mIGFzc2lzdGluZyBoaW0ge1smKiZdfXRvIGFjaGlldmUgYW55LSANCnRoaW5nLCBpdCBpcyBvbmUgb2YgdGhlIGNhdXNlcyB3aGljaCB0ZW5kIHRvIHJldGFyZCBoaXMgDQp7WyYqJl19YWN0aW9uLiBGb3Igbm93LCBpbnN0ZWFkIG9mIGZvcmNpbmcgaGltc2VsZiB1cG9uIHRoZSANCndvcmxkLCBhbmQgY29tcGVsbGluZ3tbJiomXX0gaXQgdG8gYWNjZXB0IGEgbWFuZGF0ZSBvZiBoaXMgDQpJIHdpbGwsIGhlIGNhbiBlbmpveSB0aGUgZGVsaWdodCBvZiBhIG1lcmUge1smKiZdfW9ic2VydmVyIGFuZCANCmNyaXRpYyDigJQgYW4gb2JzZXJ2ZXIgYW5kIGNyaXRpYyBib3RoIG9mIGhpbXNlbGYgYW5kIG9mIG90aC17WyYqJl19IA0KZXJzLiBIZSBjYW4gdW5kZXJzdGFuZCBhbmQgbW9jayA7IHdoZXJlYXMgaGUgb3VnaHQgDQp0byBzZXQgaGltc2VsZiBzdGVybntbJiomXX1seSB0byBoaXMgcGllY2Ugb2Ygd29yay4gSGUgdXR0ZXJzIA0KaGltc2VsZiBoZW5jZWZvcnRoIGF0IGxhcmdlLCBiZWNhdXNlIGhle1smKiZdfSBpcyB1bmludGVsbGlnaWJsZS4gDQpIZSBkb2VzIG5vdCBhaW0gYXQgcHJvZHVjaW5nIGFueSBlZmZlY3Qgd2l0aCBoaXMgc3BlZWN7WyYqJl19aCwgDQpleGNlcHQgaW4gdGhlIGluc3RhbmNlIG9mIGhpcyBhcHBlYWwgdG8gR2VydHJ1ZGVcJ3MgY29uLSANCnNjaWVuY2UuIEhpcyB7WyYqJl19d29yZHMgYXJlIG5vdCBkZWVkcy4gVGhleSBhcmUgdXR0ZXJlZCANCnNlbGYgLWluZHVsZ2VudGx5IHRvIHBsZWFzZSB0aGUgaW50ZXtbJiomXX1sbGVjdHVhbCBvciBhcnRpc3RpYyBwYXJ0IA0Kb2YgaGltLCBvciB0byBncmF0aWZ5IGhpcyBwYXNzaW5nIG1vb2Qgb2YgbWVsYW5je1smKiZdfWhvbHksIA0Kb2YgaXJyaXRhdGlvbiwgb3Igb2Ygc2Nvcm4uIEhlIGJld2lsZGVycyBQb2xvbml1cyB3aXRoIA0KbW9ja2VyeSwgd2h7WyYqJl19aWNoIGVmZmVjdHMgbm90aGluZywgYnV0IHdoaWNoIGJpdHRlcmx5IGRlLSANCmxpZ2h0cyBIYW1sZXQgYnkgaXRzIHN1YnRsZXR5IHtbJiomXX1hbmQgY2xldmVybmVzcy4gSGUgc3BlYWtzIA0Kd2l0aCBzaW5ndWxhciBvcGVubmVzcyB0byBoaXMgY291cnRpZXIgZnJpZW5kcywge1smKiZdfWJlY2F1c2UgDQp0aGV5LCBmaWxsZWQgd2l0aCB0aG91Z2h0cyBvZiB3b3JsZGx5IGFkdmFuY2VtZW50IGFuZCANCmFtYml0aW9uLCB7WyYqJl19cmVhZCBhbGwgaGlzIG1lYW5pbmdzIHVwc2lkZSBkb3duLCBhbmQgdGhlIA0KaGVhcnQgb2YgaGlzIG15c3RlcnkgaXMgYWJzb2x1dHtbJiomXX1lbHkgaW5hY2Nlc3NpYmxlIHRvIHRoZWlyIA0Kc2hhbGxvdyB3aXRzLiBXaGVuIGhlIGRlc2NyaWJlcyB0byB0aGVtIGhpcyBtZWxhe1smKiZdfW5jaG9seSwgDQpoZSBpcyBpbiB0cnV0aCBzcGVha2luZyBpbiBzb2xpdHVkZSB0byBoaW1zZWxmLiBOb3RoaW5nIA0KaXMgZWFzaWV7WyYqJl19ciB0aGFuIHRvIHRocm93IHRoZW0gb2ZmIHRoZSBzY2VudC4gXCIgQSBrbmF2aXNoIA0Kc3BlZWNoIHNsZWVwcyBpbiBhIGZvb2xpc2h7WyYqJl19IGVhci5cJ1wnIFRoZSBleHF1aXNpdGUgY2xldmVybmVzcyANCm9mIGhpcyBtaW1ldGljcyBhbmQgaGlzIG1vY2tlcnkgaXMgc29tZSBje1smKiZdfW9tcGVuc2F0aW9uIA0KdG8gSGFtbGV0IGZvciBoaXMgaW5hY3Rpb24uIFRoaXMgaW50ZWxsZWN0dWFsIHZlcnNhdGlsaXR5LCANCnR7WyYqJl19aGlzIGFnaWxpdHksIGZsYXR0ZXJzIGhpcyBjb25zY2lvdXNuZXNzIDsgYW5kIGl0IGlzIG9ubHkgb24gDQpvY2Nhc2lvbnMgdGhhdHtbJiomXX0gaGUgaXMgY29tcGVsbGVkIHRvIG9ic2VydmUgaW50byB3aGF0IGEgDQpzd29vbiBvciBzeW5jb3BlIGhpcyB3aWxsIGhhcyBmYWxse1smKiZdfWVuLiANCg0KWWV0IGl0IGhhcyBiZWVuIHRydWx5IHNhaWQgdGhhdCBvbmx5IG9uZSB3aG8gZmVlbHMgDQpIYW1sZXRcJ3Mgc3RyZW5ne1smKiZdfXRoIHNob3VsZCB2ZW50dXJlIHRvIHNwZWFrIG9mIEhhbWxldFwncyANCjkgDQoNCjEzMCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFue1smKiZdfWQgQXJ0IA0KDQp3ZWFrbmVzcy4gVGhhdCBpbiBzcGl0ZSBvZiBkaWZsU2N1bHRpZXMgd2l0aG91dCwgYW5kIGluLSANCndhcmQgZGl7WyYqJl19ZmxTY3VsdGllcywgaGUgc3RpbGwgY2xpbmdzIHRvIGhpcyB0ZXJyaWJsZSBkdXR5IOKAlCBsZXQqIA0KdGluZyBpdCBnbywgaW5kZXtbJiomXX1lZCwgZm9yIGEgdGltZSwgYnV0IHJldHVybmluZyB0byBpdCBhZ2FpbiwgDQphbmQgaW4gdGhlIGVuZCBhY2NvbXBsaXNoaW5nIGl0e1smKiZdfSDigJQgaW1wbGllcyBzdHJlbmd0aCwgZmllIA0KaXMgbm90IGluY2FwYWJsZSBvZiB2aWdvcm91cyBhY3Rpb24sIGlmIG9ubHkgaGV7WyYqJl19IGJlIGFsbG93ZWQgDQpubyBjaGFuY2Ugb2YgdGhpbmtpbmcgdGhlIGZhY3QgYXdheSBpbnRvIGFuIGlkZWEuIEhlIA0KaXMgdGhlIHtbJiomXX1maXJzdCB0byBib2FyZCB0aGUgcGlyYXRlIDsgaGUgc3RhYnMgUG9sb25pdXMgdGhyb3VnaCANCnRoZSBhcnJhcyA7IGhlIHN1ZGRle1smKiZdfW5seSBhbHRlcnMgdGhlIHNlYWxlZCBjb21taXNzaW9uLCBhbmQgDQpzZW5kcyBoaXMgc2Nob29sZmVsbG93cyB0byB0aGUgRW5nbGl7WyYqJl19c2ggaGVhZHNtYW4gOyBoZSANCmZpbmFsbHkgZXhlY3V0ZXMganVzdGljZSB1cG9uIHRoZSBraW5nLiBCdXQgYWxsIGhpcyBhYy0gDXtbJiomXX0KdGlvbiBpcyBzdWRkZW4gYW5kIGZyYWdtZW50YXJ5LiBJdCBpcyBub3QgY29udGludW91cyANCmFuZCBjb2hlcmVudC4gSGlzIHZpe1smKiZdfW9sZW50IGV4Y2l0YWJpbGl0eSBleGhhdXN0cyBoaW0uIA0KQWZ0ZXIgdGhlIG5pZ2h0IG9mIGVuY291bnRlciB3aXRoIHRoZSBnaG97WyYqJl19c3QsIGEgZml0IG9mIGFiLSANCmplY3QgZGVzcG9uZGVuY3ksIHdlIG1heSBiZSBjZXJ0YWluLCBlbnN1ZWQsIHdoaWNoIGhhZCANCntbJiomXX1iZWd1biB0byBzZXQgaW4gd2hlbiB0aGUgd29yZHMgd2VyZSB1dHRlcmVkIOKAlCANCg0KXCIgVGhlIHRpbWUgaXMgb3V0IG9mIGpvaXtbJiomXX1udCA7IDAsIGN1cnNlZCBzcGl0ZSwgDQpUaGF0IGV2ZXIgSSB3YXMgYm9ybiB0byBzZXQgaXQgcmlnaHQgIVwiIA0KDQpBZnRlciBoZXtbJiomXX0gaGFzIHNsYWluIFBvbG9uaXVzLCBoZSB3XmVlcHMgOyBhZnRlciBoaXMgc3RydWctIA0KZ2xlIHdpdGggTGFlcnRlcyBpbiBPcGhle1smKiZdfWxpYVwncyBncmF2ZSBhIG1vb2Qgb2YgZGVwcmVzc2lvUSANCmVuc3VlcyA6IA0KDQpcIiBUaHVzIGF3aGlsZSB0aGUgZml0IHdpbGwgd3tbJiomXX1vcmsgb24gaGltOyANCkFub24gYXMgcGF0aWVudCBhcyB0aGUgZmVtYWxlIGRvdmUgDQpXaGVuIHRoYXQgaGVyIGdvbGRlbiBjb3Vwe1smKiZdfWxldHMgYXJlIGRpc2Nsb3NlZCwgDQpIaXMgc2lsZW5jZSB3aWxsIHNpdCBkcm9vcGluZy5cIiANCg0KSGlzIGZlZWxpbmdzIGFyZSBue1smKiZdfW90IHVuZGVyIGNvbnRyb2wuIFRoZXkgcXVpY2tseSBmYS0gDQp0aWd1ZSB0aGVtc2VsdmVzLCBsaWtlIGEgZG9nIHdobyBub3cgaHV7WyYqJl19cnJpZXMgYmVmb3JlIGhpcyANCm1hc3RlciwgYW5kIG5vdyBkcm9wcyBiZWhpbmQsIGJ1dCB3aWxsIG5vdCBhZHZhbmNlIA0Kc3RlYXtbJiomXX1kaWx5Ll4gDQoNCkF0IHRoZSBtb21lbnQgd2hlbiBQb2xvbml1cyBoYXMgZGlzbWlzc2VkIEtleS0gDQpuYWxkbywgT3BoZWxpYSBje1smKiZdfW9tZXMgcnVubmluZyB0byBoZXIgZmF0aGVyLCBcIiBBbGFzLCBteSANCmxvcmQsIEkgaGF2ZSBiZWVuIHNvIGFmZnJpZ2h0ZWQgIVwiIHtbJiomXX1TdWNoIGlzIHRoZSBwaXRlb3VzbHkgDQppbmFkZXF1YXRlIHJlc3BvbnNlIG9mIE9waGVsaWEgdG8gSGFtbGV0XCdzIG11dGUgY29uZntbJiomXX1lcy0gDQpzaW9uIG9mIGhpcyBzb3Jyb3cuIEhpcyBsZXR0ZXJzIGhhdmUgYmVlbiByZXBlbGxlZCA7IGhlciANCg0KKiBUaGUgaWxse1smKiZdfXVzdHJhdGlvbiBpcyBIZWJsZXJcJ3MuIA0KDQpIYW1sZXQuIDEzMSANCg0KcHJlc2VuY2UgaGFzIGJlZW4gZGVuaWVkIHRvIGhpbS4ge1smKiZdfUhhbWxldCByZXNvbHZlcyB0aGF0IA0KaGUgd2lsbCBzZWUgaGVyLCBhbmQgaGVhciBoZXIgc3BlYWsuIEhlIGdvZXMsIHByb2ZvdW57WyYqJl19ZGx5LSANCmFnaXRhdGVkLCBpbiB0aGUgZGlzb3JkZXJlZCBhdHRpcmUgd2hpY2ggaXMgbm93IG5vdGhpbmcgDQp1bnVzdWFsIHdpdHtbJiomXX1oIGhpbSwgYW5kIHdoaWNoIGNvbnN0aXR1dGVzIHBhcnQgb2YgSGFtbGV0XCdzIA0KXCJ0cmFuc2Zvcm1hdGlvbi5cIiBIZSBpcyBub3Qge1smKiZdfWluIHRoZSBtb29kIHRvIGNvbnNpZGVyIA0KdmVyeSBhdHRlbnRpdmVseSBwYXJ0aWN1bGFycyBvZiB0aGUgdG9pbGV0LiBIZSBkaXN7WyYqJl19Y292ZXJzIA0KT3BoZWxpYSBzZXdpbmcgaW4gaGVyIGNsb3NldC4gSGUgc3RhbmRzLCB1bmFibGUgdG8gDQpzcGVhaywgaG9sZGluZ3tbJiomXX0gaGVyIGhhbmQsIGdhemluZyBpbiBoZXIgZmFjZSwgdHJ5aW5nIHRvIA0KZGlzY292ZXIgaWYgdGhlcmUgYmUgaW4gaGVyIGFueSB2e1smKiZdfWlydHVlIG9yIHN0cmVuZ3RoLCBhbnktIA0KdGhpbmcgd2hpY2ggY2FuIGdpdmUgYSBzaGFkb3cgb2YgaG9wZSB0aGF0IHRoZSB3aWR7WyYqJl19ZW5pbmcgDQpndWxmIGJldHdlZW4gdGhlbSBpcyBub3QgcXVpdGUgaW1wYXNzYWJsZS4gSGUgZW5kZWF2LSANCm9ycyB0byBtYWtlIHtbJiomXX1hIG5ldyBzdHVkeSBvZiBoZXIgc291bCB0aHJvdWdoIGhlciBleWVzLiANCkFuZCBpbiBoZXIgZXllcyBoZSByZWFkcyDigJQgZnJpe1smKiZdfWdodC4gVGhlIG1vc3QgcGl0ZW91cyANCnBhcnQgb2YgdGhlIGluY2lkZW50IGlzIHRoYXQgT3BoZWxpYSBpcyB3aG9sbHkgYmxhbWV7WyYqJl19bGVzcy4gDQpTaGUgaXMgc2hvY2tlZCwgYmV3aWxkZXJlZCwgYWxhcm1lZCwgYW54aW91cyB0byBydW4gYXdheSANCmFuZCBnZXQgdXtbJiomXX1uZGVyIHRoZSBwcm90ZWN0aW9uIG9mIGhlciBmYXRoZXIuIE5vIHdvbmRlciANCkhhbWxldCBjYW5ub3QgdXR0ZXIgYSB3b3JkICEge1smKiZdfU5vIHdvbmRlciB0aGF0IGhpcyBnZXN0LSANCnVyZSBleHByZXNzZXMgYWJzb2x1dGUgY29uZmlybWF0aW9uIG9mIGhpcyB1bmhhcHB7WyYqJl19eSBmZWFycywgDQp1dHRlciBkZXNwYWlyIG9mIGZpbmRpbmcgdmlydHVlIGluIGhlciAhIEEgc2lnaCByaXNlcyBmcm9tIA0KdGhlIHtbJiomXX1kZXB0aHMgb2YgaGlzIHNwaXJpdC4gSGUgZmVlbHMgdGhhdCBhbGwgaXMgb3Zlci4gSGUgDQprbm93cyBob3cgc3RyYW5nZSBhbmQge1smKiZdfXJlbW90ZSBoaXMgdm9pY2Ugd291bGQgc291bmQuIA0KQW5kIGFzIEhhbWxldCBjYW4gZmVlbCBub3RoaW5nIHdpdGhvdXQgZ2VuZXJ7WyYqJl19YWxpemluZywgaGUgDQpyZWNvZ25pemVzIGluIHRoaXMgZmFpbHVyZSBvZiBoZWFydCB0byBhbnN3ZXIgaGVhcnQgYSB0eXBlIA0Kb3tbJiomXX1mIG9uZSBncmVhdCBzb3Jyb3cgb2YgdGhlIHdvcmxkLiANCg0KUG9sb25pdXMgcmVjZWl2ZXMgZnJvbSB0aGUgZG9jaWxlIE9waGVse1smKiZdfWlhIHRoZSBsZXR0ZXJzIG9mIA0KSGFtbGV0LiBTaGUgZG9lcyBub3Qgc2hyaW5rIGZyb20gYmV0cmF5aW5nIHRoZSBzZWNyZXRzIA17WyYqJl19Cm9mIGhpcyB3ZWFrbmVzcyBhbmQgaGlzIG1lbGFuY2hvbHkgY29uZmlkZWQgdG8gaGVyLiBUaGUgDQpvZGRlc3Qgb2YgdGhlIGxldHtbJiomXX10ZXJzLCB0aGF0IHdoaWNoIHNlZW1lZCBtb3N0IGluY29oZXJlbnQsIA0KaXMgY2FycmllZCBvZmYgdG8gYmUgcmVhZCBhbG91ZCB0e1smKiZdfW8gdGhlIEtpbmcg4oCUIE9waGVsaWEgY29uLSANCnNlbnRpbmcuIFdoYXQgaXMgdGhlIHB1cnBvcnQgb2YgdGhpcyBsZXR0ZXI/IFd7WyYqJl19YXMgaXQgDQptZWFudCBhcyBhIGtpbmQgb2YgdGVzdCA/IERpZCBIYW1sZXQgd2lzaCB0byBhc2NlcnRhaW4gDQp3aGV0bGllciBPcHtbJiomXX1oZWxpYSB3b3VsZCBiZSBwdXp6bGVkIGJ5IHRoZSBzdXBlcmZpY2lhbCBvZGQtIA0KaXR5IG9mIGl0LCBvciB3b3VsZCBwZW5ldHJhe1smKiZdfXRlIHRvIHRoZSBncmllZiBhbmQgdGhlIGxvdmUgDQp3aGljaCBsYXkgYmVuZWF0aCBpdCA/IFwnXCcgSGUgdGhhdCBoYXRoIGVhcnMgdHtbJiomXX1vIGhlYXIsIGxldCBoaW0gDQpoZWFyIFwiIOKAlCB1cG9uIHRoaXMgcHJpbmNpcGxlIEhhbWxldCBjb25zdGFudGx5IGFjdHMuIEhlIHtbJiomXX0NCg0KMTMyIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydCANCg0KaXMgY29udGVudCB0aGF0IHRoZSBmZWVibGUtaGVhcnRle1smKiZdfWQgYW5kIGR1bGwtd2l0dGVkIHNob3VsZCANCmZpbmQgaGltIGEgcHV6emxlIGFuZCBhbiBvZmZlbmNlLiANCg0KVGhlIFByaW5jZSB7WyYqJl19Y29tZXMgYnkgcmVhZGluZy4gUG9sb25pdXMgYWNjb3N0cyBoaW0sIA0KYXNzdW1pbmcgdGhhdCBIYW1sZXQgaXMgZG93bnJpZ2h0IHtbJiomXX1tYWQuIEhhbWxldFwncyBpcm9ueSANCmhlcmUgY29uc2lzdHMgaW4gaGlzIGFkb3B0aW9uIGFuZCBleGFnZ2VyYXRpb24gb2YgdGhlIHtbJiomXX0NCmlkZWFzIG9mIFBvbG9uaXVzLiBcIiBZb3UgaGF2ZSBpbW11cmVkIHlvdXIgZGF1Z2h0ZXIgOyANCnlvdSBoYXZlIHJlcGVsbGVkIHtbJiomXX1teSBsZXR0ZXJzLCBhbmQgZGVuaWVkIG1lIHNpZ2h0IG9mIA0KaGVyIDsgTyB3aXNlIG9sZCBtYW4gISBmb3Igd29tYW5cJ3MgdmlydHtbJiomXX11ZSBpcyB0aGUgZnJhaWxlc3QgDQpvZiB0aGluZ3MsIGFuZCB0aGVyZSBpcyBubyBtYWxlIGNyZWF0dXJlIHdobyBpcyBub3QgYSANe1smKiZdfQpjb3JydXB0ZXIgb2YgdmlydHVlLiBJZiB0aGUgbW9zdCBnbG9yaW91cyBhbmQgdml2aWZ5aW5nIA0KdGhpbmcgaW4gdGhlIHVuaXZ7WyYqJl19ZXJzZSwgdGhlIHN1biwgd2lsbCBicmVlZCBtYWdnb3RzIG91dCBvZiANCmNhcnJpb24sIHRydWx5IFByaW5jZSBIYW1sZXQgbWF5IHtbJiomXX1iZSBzdXNwZWN0ZWQgISBCZXdhcmUgDQpvZiB5b3VyIGRhdWdodGVyISBGcmllbmQsIGxvb2sgdG9cJ3QuXCIgQW5kIHRoZW4sIGluIA17WyYqJl19Cm1vcmUgZGlyZWN0IGZhc2hpb24sIEhhbWxldCBicmVha3MgZm9ydGggaW50byBhIHNhdGlyZSBvbiANCm9sZCBtZW4gd2l0aCB0aHtbJiomXX1laXIgd2VhayBoYW1zIGFuZCBtb3N0IHBsZW50aWZ1bCBsYWNrIG9mIA0Kd2l0LiBQb2xvbml1cyByZXRpcmVzIGJld2lsZGVyZWQse1smKiZdfSBhbmQgdHdvIG5ldyBwZXJzZWN1LSANCnRvcnMgYXBwZWFyLiANCg0KSW4gR29ldGhlXCdzIG5vdmVsLCBcIiBXaWxoZWxtIE1laXN0ZXtbJiomXX1yLFwiIHRoZSBoZXJvLCB3aGVuIA0KYWRhcHRpbmcgdGhlIHBsYXkgb2YgSGFtbGV0IHRvIHRoZSBHZXJtYW4gc3RhZ2UsIGFsdGVyc3tbJiomXX0gDQppdCBpbiBjZXJ0YWluIHBhcnRpY3VsYXJzLiBTZXJsbywgdGhlIG1hbmFnZXIgb2YgdGhlIHRoZWEtIA0KdHJlLCBzdWdnZXN0e1smKiZdfXMgdGhhdCBSb3NlbmNyYW50eiBhbmQgR3VpbGRlbnN0ZXJuIHNob3VsZCANCmJlIFwiIGNvbXByZXNzZWQgaW50byBvbmUuXCIgXCIgSGV7WyYqJl19YXZlbiBrZWVwIG1lIGZyb20gYWxsIA0Kc3VjaCBjdXJ0YWlsbWVudHMgIVwiIGV4Y2xhaW1zIFdpbGhlbG0gOyBcIiB0aGV5IGRlc3Rye1smKiZdfW95IGF0IA0Kb25jZSB0aGUgc2Vuc2UgYW5kIHRoZSBlZmZlY3QuIFdoYXQgdGhlc2UgdHdvIHBlcnNvbnMgDQphcmUgYW5kIGRvLCB7WyYqJl19aXQgaXMgaW1wb3NzaWJsZSB0byByZXByZXNlbnQgYnkgb25lLiBJbiBzdWNoIA0Kc21hbGwgbWF0dGVycyB3ZSBkaXNjb3ZlciBTaHtbJiomXX1ha3NwZXJlXCdzIGdyZWF0bmVzcy4gVGhlc2UgDQpzb2Z0IGFwcHJvYWNoZXMsIHRoaXMgc21pcmtpbmcgYW5kIGJvd2luZywgdGhpc3tbJiomXX0gYXNzZW50aW5nLCANCndoZWVkbGluZywgZmxhdHRlcmluZywgdGhpcyB3aGlza2luZyBhZ2lsaXR5LCB0aGlzIHdhZ2dpbmcgDQpve1smKiZdfWYgdGhlIHRhaWwsIHRoaXMgYWxsbmVzcyBhbmQgZW1wdGluZXNzLCB0aGlzIGxlZ2FsIGtuYXZlcnksIA0KdGhpcyBpbmVwdGl0dWR7WyYqJl19ZSBhbmQgaW5zaXBpZGl0eSwgaG93IGNhbiB0aGV5IGJlIGV4cHJlc3NlZCANCmJ5IGEgc2luZ2xlIG1hbiA/IFRoZXJlIG91Z2h0IHtbJiomXX10byBiZSBhdCBsZWFzdCBhIGRvemVuIG9mIA0KdGhlc2UgcGVvcGxlIGlmIHRoZXkgY291bGQgYmUgaGFkIDsgZm9yIGl0IGlzIG9ue1smKiZdfWx5IGluIHNvY2ktIA0KZXR5IHRoYXQgdGhleSBhcmUgYW55dGhpbmc7IHRoZXkgYXJlIHNvY2lldHkgaXRzZWxmLCBhbmQgDQpTaGF7WyYqJl19a3NwZXJlIHNob3dlZCBubyBsaXR0bGUgd2lzZG9tIGFuZCBkaXNjZXJubWVudCBpbiANCmJyaW5naW5nIGluIGEgcGFpciBvZiB0aHtbJiomXX1lbS5cIiBXaGF0IEdvZXRoZSBhZG1pcmFibHkgDQoNCkhhbWxldCAxMzMgDQoNCmV4cHJlc3NlcywgU2hha3NwZXJlLCBcIiBkZXIgU2N7WyYqJl19aGFsayxcIiBoYXMgcGVyaGFwcyBoaW50ZWQgaW4gDQp0aGUgYWRkcmVzcyBvZiB0aGUgS2luZyBhbmQgUXVlZW4gdG8gdGhlIHBhaXJ7WyYqJl19IG9mIGNvdXJ0LSANCmllcnM6IA0KDQoqKiBLaW5nLiBUaGFua3MsIFJvc2VuY3JhbnR6IGFuZCBnZW50bGUgR3VpbGRlbnN0ZXJuLntbJiomXX0gDQpRdWVlbi4gVGhhbmtzLCBHdWlsZGVuc3Rlcm4gYW5kIGdlbnRsZSBSb3NlbmNyYW50ei5cIiANCg0KVGhhdCBpcywgXCJzaXggdG97WyYqJl19IG9uZSwgYW5kIGhhbGYgYSBkb3plbiB0byB0aGUgb3RoZXIuXCIgDQpXaXRoIG5vIHRpZSBvZiBmcmllbmRzaGlwIG9yIGNhcGFjaXR7WyYqJl19eSBmb3IgdHJ1ZSBodW1hbiANCmNvbXJhZGVzaGlwLCB0aGUgY29tcGFuaW9ucyBodW50IGluIGEgY291cGxlIDsgYW5kIHRoZXkgDXtbJiomXX0KZ28sIHdpdGggdGhlIHNhbWUgaW5kaXN0aW5ndWlzaGFibGUgc21pcmtpbmcgYW5kIGJvd2luZywgDQp0byB0aGVpciBmYXRlIGlue1smKiZdfSBFbmdsYW5kLiBUaGVyZSBpcyBncmltIGlyb255IGluIHRoaXMgZW5kLSANCmluZyBvZiB0aGUgY291cnRpZXJzXCcgaGlzdG9yeS4ge1smKiZdfVwiIFRoZXkgd2VyZSBsb3ZlbHkgYW5kIA0KcGxlYXNhbnQgaW4gdGhlaXIgbGl2ZXMsXCIgYWZ0ZXIgdGhlIHRhc3RlIG9mIENsYXVkaXtbJiomXX11c1wncyBjb3VydCwgDQpcImFuZCBpbiB0aGVpciBkZWF0aCB0aGV5IHdlcmUgbm90IGRpdmlkZWQuXCIgDQoNCkluIHRoZSBmaXJzdCBze1smKiZdfWNlbmUgb2YgdGhlIHRoaXJkIGFjdCBPcGhlbGlhIGlzIHN0YXRpb25lZCANCmFzIGEgZGVjb3kgdG8gZXhwb3NlIHRvIGhlciBmYXR7WyYqJl19aGVyIGFuZCB0aGUgS2luZyB0aGUgZGlzLSANCmVhc2Ugb2YgdGhlIG1hbiBzaGUgbG92ZXMuIEl0IHdpbGwgYXNzaXN0LCBzaGUgaXtbJiomXX1zIGFzc3VyZWQsIA0KdG8gYnJpbmcgYWJvdXQgSGFtbGV0XCdzIHJlc3RvcmF0aW9uIDsgYW5kIE9waGVsaWEgaXMgZG9jLSANCmlsZXtbJiomXX0sIGFuZCBkb2VzIG5vdCBxdWVzdGlvbiBoZXIgaW5zdHJ1Y3RvcnMuIEEgYm9vayBvZiANCmRldm90aW9ucyBpcyBwbGFjZWQgaW4ge1smKiZdfWhlciBoYW5kLl4gSGFtbGV0IGNvbWVzIGJ5LCANCmJyb29kaW5nIHVwb24gc3VpY2lkZSwgdXBvbiB0aGUgbWFuaWZvbGQgaWxscyB7WyYqJl19b2YgdGhlIA0Kd29ybGQsIGFuZCBoaXMgb3duIHdlYWtuZXNzLiBIZSBzZWVzIE9waGVsaWEsIHNvIGxvdmUtIA0KbHksIHNvIGNoaXtbJiomXX1sZGxpa2UsIHNvIGlubm9jZW50LCBwcmF5aW5nLiBTaGUgaXMgZm9yIGEgbW8tIA0KbWVudCBzb21ldGhpbmcgYmV0dGVyIGFuZCBte1smKiZdfW9yZSBiZWF1dGlmdWwgdGhhbiB3b21hbiwgDQpzb21ldGhpbmcgXCIgYWZhciBmcm9tIHRoZSBzcGhlcmUgb2YgaGlzIHNvcnJvdyA7e1smKiZdfVwiIGFuZCBoZSANCmludm9sdW50YXJpbHkgZXhjbGFpbXMsIA0KDQoqIFBvbG9uaXVzIChnaXZpbmcgdGhlIGJvb2spIHNheXMsIA0Ke1smKiZdfQ0KXCIgUmVhZCBvbiB0aGlzIGJvb2sgOyANClRoYXQgc2hvdyBvZiBzdWNoIGFuIGV4ZXJjaXNlIG1heSBjb2xvciANCllvdXIgbG9ue1smKiZdfWVsaW5lc3MuIFdlIGFyZSBvZnQgdG8gYmxhbWUgaW4gdGhpcyDigJQgDQpcJ1RpcyB0b28gbXVjaCBwcm92ZWQg4oCUIHRoYXQgd2l0e1smKiZdfWggZGV2b3Rpb25cJ3MgdmlzYWdlLCANCkFuZCBwaW91cyBhY3Rpb24sIHdlIGRvIHN1Z2FyIG9cJ2VyIA0KVGhlIGRldmlsIGhpbXNlbHtbJiomXX1mLlwiIA0KDQpIYW1sZXQsIHNlZWluZyBoZXIgYXQgcHJheWVyLCBleGNsYWltcywgDQoNClwiIE55bXBoLCBpbiB0aHkgb3Jpc29uc157WyYqJl19IA0KQmUgYWxsIG15IHNpbnMgcmVtZW1iZXJcJ2QsXCIgDQoNCjEgMzQgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0Ke1smKiZdfVwiIE55bXBoLCBpbiB0aHkgb3Jpc29ucywgDQpCZSBhbGwgbXkgc2lucyByZW1lbWJlclwnZC5cIiANCg0KQnV0IE9wVGllbGlhIHBsYXl7WyYqJl19cyBoZXIgcGFydCB3aXRoIGEgbWFubmVyIHRoYXQgYmV0cmF5cyANCmhlci4gT2JzZXJ2ZSB0aGUgZm91ciByaHltZWQgbGluZXMsIHtbJiomXX1lbmRpbmcgd2l0aCB0aGUgbGl0IA0KdGllIHNldCBzZW50ZW5jZSAod2hpY2ggbG9va3MgYXMgaWYgcHJlcGFyZWQgYmVmb3JlaGFue1smKiZdfWQpLCANCg0KXCIgRm9yIHRvIHRoZSBub2JsZSBtaW5kIA0KUmljaCBnaWZ0cyB3YXggcG9vciB3aGVuIGdpdmVycyBwcm92ZSB1bmtpe1smKiZdfW5kLlwiIA0KDQpBbmQgdGhlbiwgdXBvbiB0aGUgc3BvdCwgdGhlIFByaW5jZVwncyBwcmVzZW50cyBhcmUgcHJvLSANCmR1Y2VkLiBIb3tbJiomXX13IGNvdWxkIEhhbWxldCwgZW5kb3dlZCB3aXRoIHN3aWZ0IHBlbmV0cmEtIA0KdGlvbiBhcyBoZSBpcywgZmFpbCB0byBkZXRlY3Qge1smKiZdfXRoZSBmcmF1ZD8gSGUgaGFkIHVubWFza2VkIA0KRW9zZW5jcmFudHogYW5kIEd1aWxkZW5zdGVybiwgYW5kIHRoZXJlYnkgaGlzIHN7WyYqJl19dXNwaWNpb25zIA0KaGFkIGJlZW4gcXVpY2tlbmVkLiBBbmQsIGFzIGZvciBhIG1vbWVudCBoZSBoYWQgYmVlbiANCnRvdWNoZWQgYXtbJiomXX1uZCBleGFsdGVkIGJ5IHRoZSBwcmVzZW5jZSBvZiBPcGhlbGlhXCdzIGlubm8tIA0KY2VuY2UgYW5kIHBpZXR5LCBoZSBpcyBub3cgcHtbJiomXX1yb3BvcnRpb25hdGVseSBpbmRpZ25hbnQuIA0KDQpPbmUgb2YgdGhlIGRlZXBlc3QgY2hhcmFjdGVyaXN0aWNzIG9mIEhhbWxldFwnc3tbJiomXX0gbmF0dXJlIA0KaXMgYSBsb25naW5nIGZvciBzaW5jZXJpdHksIGZvciB0cnV0aCBpbiBtaW5kIGFuZCBtYW5uZXJzOyANCmFuIGF2e1smKiZdfWVyc2lvbiBmcm9tIGFsbCB0aGF0IGlzIGZhbHNlLCBhZmZlY3RlZCwgb3IgZXhhZ2dlcmF0LSANCmVkLipeIE9waGVsaWEgaXMgam97WyYqJl19aW5lZCB3aXRoIHRoZSByZXN0IG9mIHRoZW0gOyBzaGUgaXMgYW4gDQppbXBvc3RvciwgYSBzcHkgOyBpbmNhcGFibGUgb2YgdHJ1dHtbJiomXX1oLCBvZiBob25vciwgb2YgbG92ZS4gDQpIYXZlIHRoZXkgZGVzaXJlZCB0byBvYnNlcnZlIGFuIG91dGJyZWFrIG9mIGhpcyBpbnNhe1smKiZdfW5pdHkgPyANCkhlIHdpbGwgZ2l2ZSBpdCB0byB0aGVtIHdpdGggYSB2ZW5nZWFuY2UuIFdpdGggYW4gYWwtIA0KbW9zdCBzYXZhZ2V7WyYqJl19IHplYWwsIHdoaWNoIGlzIHVuZGVybmVhdGggbm90aGluZyBidXQgYml0dGVyIA0KcGFpbiwgaGUgcG91bmNlcyB1cG9uIE9waGVsaXtbJiomXX1hXCdzIGRlY2VpdC4gXCIgSGEsIGhhICEgYXJlIHlvdSANCmhvbmVzdD9cIiBIaXMgY3J1ZWx0eSBpcyB0aGF0IG9mIGFuIGlkZWFsaXN0e1smKiZdfSwgd2hvIGNhbm5vdCANCnByZWNpc2VseSBtZWFzdXJlIHRoZSBlZmZlY3Qgb2YgaGlzIHdvcmRzIHVwb24gaGlzIGhlYXJlciwgDQp7WyYqJl19YnV0IHdobyByZXF1aXJlcyB0byBsaWJlcmF0ZSBoaXMgbWluZC4gQW5kIGFnYWluIEhhbS0gDQpsZXQgcGxheXMgYml0dGVybHkgYXtbJiomXX10IGFwcHJvdmluZyBvZiB0aGUgcHJpbmNpcGxlcyBhbmQgY29uLSANCmR1Y3Qgb2YgUG9sb25pdXMgaW4gdGhlIG1hdHRlciBvZiBoe1smKiZdfWlzIHJlbGF0aW9ucyB3aXRoIA0KT3BoZWxpYSA6IFwiIFlvdSBoYXZlIGJlZW4gc2VjbHVkZWQgZnJvbSB0aGF0IGRhbmdlcm91cyANe1smKiZdfQpjb3JydXB0ZXIgb2YgeW91dGgsIFByaW5jZSBIYW1sZXQgOyB5b3UgbG92ZSB0byBkZXZvdGUgDQp5b3Vyc2VsZiB0byBwcmF5ZXJ7WyYqJl19IGFuZCBzb2xpdHVkZS4gTW9zdCB3aXNlIGFuZCByaWdodCAhIA0KSSBhbSBhbGwgdGhhdCB5b3VyIGZhdGhlciBoYXMgcmVwcmVzZXtbJiomXX1udGVkIG1lLCBhbmQgd29yc2UgDQoNCiogRmFsc2UsIGFzIHRoZSBiZWFyaW5nIG9mIFJvc2VuY3JhbnR6IGFuZCBHdWlsZGVuc3Rle1smKiZdfXJuIDsgYWZmZWN0ZWQsIGFzIHRoZSANCnhuZnRubmVyIG9mIE9zcmljIDsgZXhhZ2dlcmF0ZWQsIGFzIExhZXJ0ZXNcJyB0aGVhdHJpe1smKiZdfWNhbCByYW50IGluIE9waGVsaWFcJ3MgZ3JhdmEgDQoNCkhhbWxldCAxMzUgDQoNCuKAlCB2ZXJ5IHByb3VkLCByZXZlbmdlZnVsLCBhe1smKiZdfW1iaXRpb3VzIFthbGwgdGhhdCBIYW1sZXQgd2FzIA0Kbm97XFwuIEFuZCB5ZXQgdGhlcmUgaXMgaW4gdGhlIHdvcmxkIHN1Y2ggYSB0e1smKiZdfWhpbmcgYXMgY2FMIA0KdW1ueTsgaXQgbWF5IGhhcHBlbiB0byB0b3VjaCB5b3Vyc2VsZiBzb21lIGRheS4gWW91IA0Kd2hvIGFyZSB7WyYqJl19c28gZmFpciBhbmQgZnJhaWwsIHNvIHBpb3VzIGluIGFwcGVhcmFuY2UsIHNvIGZhbHNlIA0KaW4gZGVlZCwgZG8geW91IGxvb2sgb3tbJiomXX1uIHVzIG1lbiBhcyBkYW5nZXJvdXMgdG8gdmlydHVlID8gDQovaGF2ZSBoZWFyZCBhIGxpdHRsZSBvZiB3b21lblwncyBkb2luZ3MgdHtbJiomXX1vbzsga2VlcCB5b3VyIA0KcHJlY2lvdXMgdmlydHVlLCBpZiB5b3UgY2FuLCBhbmQgbGV0IHVzIG1hbGUgbW9uc3RlcnMgYmUuIA0Ke1smKiZdfUdldCB0aGVlIHRvIGEgbnVubmVyeSAhXCIgQW5kIHRvIGNvbXBsZXRlIHRoZSBzdGFydGxpbmcgDQplZmZlY3Qgb2YgdGhpcyBvdXRie1smKiZdfXJlYWsgb2YgaW5zYW5pdHksIHNvbGljaXRlZCBieSBoaXMgcGVyc2UtIA0KY3V0b3JzLCBoZSBzZW5kcyBhIHNoYWZ0IGFmdGVyIHR7WyYqJl19aGUgQ2hhbWJlcmxhaW4sIGFuZCBhIHNoYWZ0IA0KYWZ0ZXIgdGhlIEtpbmcgOiANCg0KXCIgSGFtLiBXaGVyZVwncyB5b3VyIGZhdGhle1smKiZdfXIgPyANCk9waC4gW2NvbWluZyBvdXQgd2l0aCBoZXIgZG9jaWxlIGxpdHRsZSBaaWVdLiBBdCBob21lLCBteSBsb3JkLiAmZ3Q7IA17WyYqJl19Cg0KSGFtLCBMZXQgdGhlIGRvb3JzIGJlIHNodXQgdXBvbiBoaW0sIHRoYXQgaGUgbWF5IHBsYXkgdGhlIGZvb2wgbm8tIA0Kd2hlcntbJiomXX1lIGJ1dCBpblwncyBvd24gaG91c2UuXCIgDQoNClRoaXMgZm9yIFBvbG9uaXVzIDsgYW5kIGZvciB0aGUgS2luZywgd2l0aCBtZW5hY2l7WyYqJl19bmcgZW0tIA0KcGhhc2lzIHRoZSB3b3JkcyBhcmUgdXR0ZXJlZCwgXCJJIHNheSB3ZSB3aWxsIGhhdmUgbm8gDQptb3JlIG1hcnJpYWd7WyYqJl19ZXMgOiB0aG9zZSB0aGF0IGFyZSBtYXJyaWVkIGFscmVhZHksIGFsbCBidXQgDQpvbmUsIHNoYWxsIGxpdmU7IHRoZSByZXN0IHNoYXtbJiomXX1sbCBrZWVwIGFzIHRoZXkgYXJlLiBUbyBhIA0KbnVubmVyeSwgZ28gIVwiIA0KDQpIYW1sZXQgYnVyc3RzIG91dCBvZiB0aGUgbG9iYntbJiomXX15IHdpdGggYSB0cml1bXBoYW50IGFuZCANCnlldCBiaXR0ZXIgc2Vuc2Ugb2YgaGF2aW5nIHR1cm5lZCB0aGUgdGFibGVzIHVwb24ge1smKiZdfWhpcyB0b3ItIA0KbWVudG9ycy4gSGUgaGFzIHRocm93biBpbnRvIHN1ZGRlbiBjb25mdXNpb24gdGhlIA0KcmFua3Mgb2YgdGhlIGV7WyYqJl19bmVteS4gT3BoZWxpYSByZW1haW5zIHRvIHdlZXAuIEluIHRoZSANCnBhdXNlcyBvZiBIYW1sZXRcJ3MgY3J1ZWwgaW52ZWN0aXZlLCB7WyYqJl19c2hlIGhhZCB1dHRlcmVkIGhlciANCnBpdGVvdXMgbGl0dGxlIGFwcGVhbHMgdG8gaGVhdmVuIDogXCIgSGVhdmVubHkgcG93ZXJzLCB7WyYqJl19cmUtIA0Kc3RvcmUgaGltICFcIiBcIiBPLCBoZWxwIGhpbSwgeW91IHN3ZWV0IGhlYXZlbnMgIVwiIFdoZW4gDQpoZSBhYnJ1cHRseSBkZXtbJiomXX1wYXJ0cywgdGhlIHBvb3IgZ2lybFwncyBzb3Jyb3cgb3ZlcmZsb3dzLiBJbiANCmhlciBsYW1lbnQsIEhhbWxldFwncyBub2JsZSByZWF7WyYqJl19c29uLCB3aGljaCBpcyBvdmVydGhyb3duLCANCnNvbWVob3cgZ2V0cyBtaXhlZCB1cCB3aXRoIHRoZSBlbGVnYW5jZSBvZiBoaXMgY3tbJiomXX1vcy0gDQp0dW1lLCB3aGljaCBoYXMgc3VmZmVyZWQgZXF1YWwgcnVpbi4gSGUgd2hvIHdhcyB0aGUgDQpcImdsYXNzIG9mIGZhc2hpb3tbJiomXX1uLFwiIG5vdGljZWQgYnkgZXZlcnkgb25lLCBcIl5oZSBvYnNlcnZlZCANCm9mIGFsbCBvYnNlcnZlcnMsXCIgaXMgYSBob3BlbGVzcyBse1smKiZdfXVuYXRpYy4gU2hlIGhhcyBubyBiaXR0ZXIgDQp0aG91Z2h0IGFib3V0IGhlciBsb3Zlci4gU2hlIGlzIFwiIG9mIGxhZGllcyBtb3N0e1smKiZdfSBkZWplY3QgDQoNCjEgMzYgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KYW5kIHdyZXRjaGVkIDtcIiBhbGwgaGVye1smKiZdfSBlbW90aW9uIGlzIGhlbHBsZXNzIHRlbmRlcm5lc3MgYW5kIA0Kc29ycm93LiBIZXIgZ3JpZWYgaXMgYXMgZGVlcCBhcyBoZXIgc297WyYqJl19dWwgaXMgZGVlcC4gDQoNCkhhbWxldCBub3cgYmluZHMgaGltc2VsZiBtb3JlIGNsb3NlbHkgdGhhbiBldmVyIHRvIA0KSG9yYXRpb3tbJiomXX0uIFRoaXMgZnJpZW5kIGFuZCBmZWxsb3ctc2Nob2xhciBpcyB0aGUgb25lIHN0ZXItIA0KbGluZyB0aGluZyBpbiB0aGUgcm90dGVue1smKiZdfSBzdGF0ZSBvZiBEZW5tYXJrLiBUaGVyZSBpcyBhIA0KdG91Y2hpbmcgZGV2b3Rpb24gc2hvd24gYnkgSGFtbGV0IHRvIEhvcmF0aW97WyYqJl19IGluIHRoZSANCm1lZXRpbmcgd2hpY2ggZm9sbG93cyB0aGUgc2NlbmUgaW4gdGhlIGxvYmJ5IHdpdGggT3BoZS0gDQpsaWEg4oCUIHtbJiomXX1hIGRldm90aW9uIHdoaWNoIGlzIHRoZSBvdmVyZmxvdyBvZiBncmF0aXR1ZGUgZm9yIHRoZSANCmNvbWZvcnQgYW5kIHJlZnVnZSBoe1smKiZdfWUgZmluZHMgd2l0aCBoaXMgZnJpZW5kIGFmdGVyIHRoZSByZS0gDQpjZW50IHByb29mIG9mIHRoZSBpbmNhcGFjaXR5IGFuZCB3YW57WyYqJl19dCBvZiBpbnRlZ3JpdHkgaW4gdGhlIA0Kd29tYW4gaGUgaGFkIGxvdmVkLiBIb3JhdGlvXCdzIGVxdWFuaW1pdHksIGhpcyBldmVubmV7WyYqJl19c3MgDQpvZiB0ZW1wZXIsIGlzIGxpa2Ugc29saWQgbGFuZCB0byBIYW1sZXQgYWZ0ZXIgdGhlIHRvc3NpbmdzIA0KYW5kIHR1bXVsdHtbJiomXX0gb2YgaGlzIG93biBoZWFydC4gVGhlIFByaW5jZSBhcG9sb2dpemVzIA0Kd2l0aCBiZWF1dGlmdWwgZGVsaWNhY3kgZm9yIHNlZW1pe1smKiZdfW5nIHRvIGZsYXR0ZXIgSG9yYXRpby4gDQpJdCBpcyBub3QgZmxhdHRlcnk7IHdoYXQgY2FuIGhlIGV4cGVjdCBmcm9tIGEgbWFuIHN7WyYqJl19byANCnBvb3IgPyBJdCBpcyBnZW51aW5lIGRlbGlnaHQgaW4gdGhlIHNhbml0eSwgdGhlIHN0cmVuZ3RoLCANCnRoZSBjb25zdGFuY3tbJiomXX15LCBvZiBIb3JhdGlvXCdzIGNoYXJhY3Rlci4gWWV0IGFsbCB0aGUgd2hpbGUgDQpTaGFrc3BlcmUgY29tcGVscyB1cyB0byBmZWVsIHtbJiomXX10aGF0IGl0IGlzIEhhbWxldCB3aXRoIGhpcyANCm1hbmlmb2xkIHdlYWtuZXNzIGFuZCBpbGwtY29tbWluZ2xlZCBibG9vZCBhbmQge1smKiZdfWp1ZGctIA0KbWVudCB3aG8gaXMgdGhlIHJhcmVyIG5hdHVyZSBvZiB0aGUgdHdvIDsgYW5kIHRoYXQgSG9yYS0gDQp0aW8gaXMgbWF7WyYqJl19ZGUgdG8gYmUgaGlzIGhlbHBtYXRlLCByZWNvZ25pemluZyBpbiBzZXJ2aWNlIGhpcyANCmhpZ2hlc3QgZHV0eS4gDQoNClRoZXJlIHtbJiomXX1pcyBubyBGcmlhciBMYXVyZW5jZSBpbiB0aGlzIHBsYXkuIFRvIGhpbSB0aGUgDQpDYXRob2xpYyBjaGlsZHJlbiBvZiBWZXJvbmEge1smKiZdfWNhcnJpZWQgdGhlaXIgdHJvdWJsZXMsIGFuZCANCnJlY2VpdmVkIGZyb20gdGhlaXIgZmF0aGVyIGNvbWZvcnQgYW5kIGNvdW5zZWx7WyYqJl19LiBIYW1sZXQgDQppcyBoYXJkbHkgdGhlIG1hbiB0byBzZWVrIGZvciB3aXNkb20gb3IgZm9yIHN1Y2NvciBmcm9tIA0KYSBwcmllc3tbJiomXX10LiBMZXQgdGhlbSByZXNvbHZlIGhpcyBkb3VidHMgYWJvdXQgdGhlIHNvdWwsIA0KYWJvdXQgaW1tb3J0YWxpdHksIGFib3V0IEdve1smKiZdfWQgZmlyc3QuIEJ1dCBTaGFrc3BlcmUgaGFzIA0KdGFrZW4gY2FyZSB0byBzaG93IHVzLCBpbiB0aGUgZWZmZXRlIHNvY2lldHkgb2Z7WyYqJl19IERlbm1hcmssIA0Kd2hlcmUgZXZlcnl0aGluZyBuZWVkcyByZW5ld2luZywgd2hhdCByZWxpZ2lvbiBpcy4gVG8gDQpPcGhlbGlhXCd7WyYqJl19cyBmdW5lcmFsIHRoZSBDaHVyY2ggcmVsdWN0YW50bHkgc2VuZHMgaGVyIHJlcC0gDQpyZXNlbnRhdGl2ZS4gQWxsIHRoYXQgdGhlIHtbJiomXX1vY2Nhc2lvbiBzdWdnZXN0cyBvZiBoYXJzaCwgZm9yLSANCm1hbCwgYW5kIGVzc2VudGlhbGx5IGluaHVtYW4gZG9nbWF0aWNzIGlze1smKiZdfSB1dHRlcmVkIGJ5IHRoZSANCnByaWVzdC4gVGhlIGRpc3RyYWN0ZWQgZ2lybCBoYXMgYnkgdW50aW1lbHkgYWNjaWRlbnQgbWV0IA17WyYqJl19CmhlciBkZWF0aDsgYW5kIHRoZXJlZm9yZSwgaW5zdGVhZCBvZiBjaGFyaXRhYmxlIHByYXllcnMsIA0KDQpIYW1sZXQuIDEzNyANCntbJiomXX0NClwiIFNoYXJkcywgZmxpbnRzLCBhbmQgcGViYmxlcyBzaG91bGQgYmUgdGhyb3duIG9uIGhlci5cJyogDQoNClRoZXNlIGFyZSB0aGV7WyYqJl19IHNhY3JlZCB3b3JkcyBvZiB0cnV0aCwgb2YgcGVhY2UsIG9mIGNvbnNvbGFeIA0KdGlvbiwgd2hpY2ggcmVsaWdpb24gaGFzIHRvIHtbJiomXX13aGlzcGVyIHRvIHdvdW5kZWQgaGVhcnRzICEgDQoNClwiIFdlIHNob3VsZCBwcm9mYW5lIHRoZSBzZXJ2aWNlIG9mIHRoZSBkZWFkLHtbJiomXX0gDQpUbyBzaW5nIGEgcmVxdWllbSBhbmQgc3VjaCByZXN0IHRvIGhlciANCkFzIHRvIHBlYWNlLXBhcnRlZCBzb3Vscy5cIiANCg0KVHtbJiomXX1oaXMgaXMgdGhlIHJlbGlnaW9uIHdoaWNoIGhlbHBzIHRvIG1ha2UgQ2xhdWRpdXMgYSBwYWwtIA0KdGVyZXIgd2l0aCBoaXMgY29ue1smKiZdfXNjaWVuY2UsIGFuZCBIYW1sZXQgYW4gYWltbGVzcyB3YW5kZXItIA0KZXIgYWZ0ZXIgdHJ1dGguIEJldHRlciBjb25zb3J0IGluIER7WyYqJl19ZW5tYXJrIHdpdGggcGxheWVycyANCnRoYW4gd2l0aCBwcmllc3RzICFcIl4gDQoNCldoZW4gdGhlIHBsYXkgaXMgYWJvdXQgdG8gYmV7WyYqJl19IGVuYWN0ZWQsIEhhbWxldCBkZWNsaW5lcyANCmEgc2VhdCBuZWFyIGhpcyBtb3RoZXIsIGJlY2F1c2UgaGUgd2lzaGVzIHRvIG9jY3tbJiomXX11cHkgYSANCnBvc2l0aW9uIGZyb20gd2hpY2ggaGUgY2FuIHNjcnV0aW5pemUgdGhlIEtpbmdcJ3MgY291bnRlLSANCm5hbmNlLiBIZXtbJiomXX0gaXMgbm93IGZ1bGx5IHJvdXNlZCwgZXZlcnkgbmVydmUgaGlnaC1zdHJ1bmcuIA0KSnVzdCBhdCBwcmVzZW50IE9waGVsaWEgaXMge1smKiZdfW5vdGhpbmcgdG8gaGltLiBJZiBoZSBzYXkgDQphbnl0aGluZyB0byBoZXIsIGl0IHdpbGwgYmUgZm9yIHRoZSBzYWtlIG9mIHN0YXl7WyYqJl19aW5nIGhpcyBvd24gDQpoZWFydCBpbiBpdHMgdHJlbXVsb3VzIGludGVuc2l0eSwgYW5kIGdldHRpbmcgdGhyb3VnaCB0aGUgDQplYXtbJiomXX1nZXIgbW9tZW50cyBvZiBzdXNwZW5zZS4gSXQgd2lsbCBiZSBzb21ldGhpbmcgaXNzdS0gDQppbmcgZnJvbSB0aGUgYml0dGVyIHVwe1smKiZdfXBlciBzdXJmYWNlIG9mIGhpcyBzb3VsIOKAlCBhIGJpdHRlciANCmplc3QgbW9zdCBsaWtlbHkuIEhhbWxldCBkZXJpdmVzIGFuIGF7WyYqJl19Y3JpZCBwbGVhc3VyZSBmcm9tIA0KcGVycGxleGluZyBhbmQgZW1iYXJyYXNzaW5nIFBvbG9uaXVzIGFuZCBSb3NlbmNyYW50eiANCntbJiomXX1hbmQgR3VpbGRlbnN0ZXJuLiBOb3cgaXQgcGxlYXNlcyBoaW0gdG8gZW1iYXJyYXNzIA0KT3BoZWxpYSB3aXRoIGhhbGYgLWFtYmlne1smKiZdfXVvdXMgb2JzY2VuaXRpZXMuIFRoZXNlIGFyZSANCnRoZSBlbGVjdHJpY2FsIHNwYXJrcyB3aGljaCBzY2ludGlsbGF0ZSBhbmQgc257WyYqJl19YXAgd2hpbGUgdGhlIA0KY3VycmVudCBpcyBzdHJlYW1pbmcgdG8gaXRzIHJlY2VwdGFjbGUuIFdpdGggT3BoZWxpYSwgDQp3aG8gY3tbJiomXX1oZXJpc2hlZCB0aGUgcHJvcHJpZXRpZXMgYXMgdGhvdWdoIHRoZXkgY29uc3RpdHV0LSANCmVkIHRoZSBtb3JhbCBsYXcsIEhhbWxle1smKiZdfXQgZmluZHMgaGltc2VsZiB0ZW1wdGVkIHRvIGJlIA0KaW50b2xlcmFibHkgaW1wcm9wZXIuIE9waGVsaWEgdW5kZXJzdGFuZHMgaGl7WyYqJl19cyB3b3JkcywgDQphbmQgdmVudHVyZXMgdG8gZGVsaXZlciBhIGdlbnRsZSByZXByaW1hbmQuIFwiIFlvdSBhcmUgDQpuYXVnaHQsIHl7WyYqJl19b3UgYXJlIG5hdWdodCA7IElcJ2xsIG1hcmsgdGhlIHBsYXkuXCIgQnV0IEhhbS0gDQpsZXQgY29udGludWVzIGhpcyBwZXJzZWN1dGlve1smKiZdfW4uIEFsbCB0aGlzIGNvbWVzIGZyb20gdGhlIA0KDQoqIEguIEEuIFdlcm5lciwgSmFocmh1Y2ggZGVyIGRldXRzY2hlbiBTaGFrZXN7WyYqJl19cGVhcmUtIEdlc2VsbHNjaGFmdF4gdm9sLiB2XiANCnAuIDY2LiANCg0KMSAzOCBTaGFrc3BlcmXigJRIaXMgTWluZCBhbmQgQXJ0LntbJiomXX0gDQoNCkJ1cGVyZmljaWFsIHBhcnQgb2YgSGFtbGV0IDsgYXMgb25lIHRveXMgd2l0aCBzb21lIHRyaWZsZSANCndoaWxlIGEgZG9ve1smKiZdfW0gaXMgaW1wZW5kaW5nLiBIaXMgcGFzc2lvbiBpcyBjb25jZW50cmF0LSANCmVkIGluIHdhdGNoaW5nIHRoZSBjb3VudGVuYW5jZSB7WyYqJl19b2YgdGhlIEtpbmcuKl4gDQoNClRoaXMgaXMgdGhlIG5pZ2h0IG9mIEhhbWxldFwncyB0cml1bXBoLiBUaGUgS2luZ1wncyANCmd1aWx0e1smKiZdfSBpcyB1bmtlbm5lbGxlZCA7IEhhbWxldCBkaXNwb3NlcyBvZiBvbmUgYWZ0ZXIgYW4tIA0Kb3RoZXIgb2YgaGlzIHRvcm1lbnRvcnN7WyYqJl19OyBoZSBoYXMgc3VwZXJhYnVuZGFudCBlbmVyZ3k7IA0KaGUgdGFrZXMgZWFjaCBpbiB0dXJuLCBhbmQgaXMgZXF1YWwgdG8gYWxsLntbJiomXX0gQW5kIHlldCBIYW0tIA0KbGV0IGlzIGZvcmV2ZXIgd2Fsa2luZyBvdmVyIHRoZSBpY2UgOyBoaXMgcG93ZXIgb2Ygc2VsZi1jb24te1smKiZdfSANCnRyb2wgaXMgbmV2ZXIgcXVpdGUgdG8gYmUgdHJ1c3RlZC4gVGhlIHN1Y2Nlc3Mgb2YgaGlzIGRlLSANCnZpY2UgZm9yIGFzY2V7WyYqJl19cnRhaW5pbmcgdGhlIGd1aWx0IG9mIENsYXVkaXVzIGlzIGZvbGxvd2VkIGJ5IA0KdGhlIHNhbWUgbW9vZCBvZiB3aWxkIGV4Y2l0ZXtbJiomXX1tZW50IHdoaWNoIGZvbGxvd2VkIHRoZSANCmVuY291bnRlciB3aXRoIGhpcyBmYXRoZXJcJ3Mgc3Bpcml0IDsgYWdhaW4gaGUgc2VlbXtbJiomXX1zIGluLSANCmNvaGVyZW50bHksIGV4dHJhdmFnYW50bHkgZ2F5IDsgYWdhaW4gaGlzIHdvcmRzIGFyZSBcIiB3aWxkIA0KYW5kIHdoaXtbJiomXX1ybGluZyB3b3Jkcy5cIiBmIEFuZCBhcyBvbiB0aGF0IG9jY2FzaW9uIEhhbS0gDQpsZXQgaGFkIGZlbHQgdGhlIG5lZWQgb2YgY2FsbXtbJiomXX1pbmcgaGltc2VsZiwgYW5kLCBpbiBoaXMgDQpzb21ld2hhdCBmYW50YXN0aWMgd2F5LCBoYWQgZXhwcmVzc2VkIHRoYXQgbmVlZCwge1smKiZdfVwiIEZvciANCm15IG93biBwb29yIHBhcnQsIGxvb2sgeW91LCBJXCdsbCBnbyBwcmF5LFwiIHNvIG5vdyBoZSANCmNhbGxzIGZvciBtdXN7WyYqJl19aWMsIFwiIENvbWUsIHNvbWUgbm1zaWMgOyBjb21lIHRoZSByZWNvcmQtIA0KZXJzIVwiIEJ1dCBoZSBpcyBoYXVudGVkIGJ5IHRoZSBpe1smKiZdfXJyZXByZXNzaWJsZSBSb3Nlbi0gDQpjcmFudHogYW5kIEd1aWxkZW5zdGVybi4gV2l0aCB0aGVtIEhhbWxldCBpcyBub3cgc2UtIA17WyYqJl19CnZlcmVseSBhbmQgaW1wZXJpb3VzbHkgY291cnRlb3VzLCBub3cgZW5pZ21hdGljYWwsIG5vdyANCmlyb25pY2FsLiBBdCBsYXN0LHtbJiomXX0gd2hlbiBoZSBhZHZhbmNlcyB0byBpbnRlcnByZXQgaGlzIHBhci0gDQphYmxlIG9mIHRoZSByZWNvcmRlcnMsIGhlIGJlY29tZXMge1smKiZdfXRlcnJpYmx5IGRpcmVjdCBhbmQgZnJhbmsuIA0KVGhlIGNvdXJ0aWVycyBhcmUgc2lsZW5jZWQgOyB0aGV5IGhhdmUgbm90IHRoZSB7WyYqJl19c3Bpcml0IGV2ZW4gDQp0byBtdXR0ZXIgYSBsaWUuIEFuZCBoYXZpbmcgZGlzcG9zZWQgb2YgdGhlbSwgSGFtbGV0IA0KdGFrZXMgaXtbJiomXX1uIGhhbmQgUG9sb25pdXMuIEhlIGlzIGFzc3VtaW5nIHRoZSBvZmZlbnNpdmUgDQp3aXRoIGhpcyBmb2VzLiBIZSBzdGVwcyBmb3J3e1smKiZdfWFyZCB0byBhc3Npc3QgdGhlIG9sZCBDaGFtLSANCmJlcmxhaW4gdG8gZXhwb3NlIGhpcyBmb2xseSA7IGhlIGxlbmRzIGhpbSBhIGh7WyYqJl19YW5kIHRvIHJlbi0gDQpkZXIgaGltc2VsZiBjb250ZW1wdGlibGUuIE5leHQgSGFtbGV0IGhhc3RlbnMgdG8gaGlzIA0KDQoqIE9uIHtbJiomXX10aGUgc3BlZWNoIG9mIFwiIHNvbWUgZG96ZW4gb3Igc2l4dGVlbiBsaW5lcyBcIiB3aGljaCBIYW1sZXQgaW5zZXJ0cyANCmluIHRoZSB7WyYqJl19cGxheSwgc2VlIHRoZSBkaXNjdXNzaW9uIGJ5IFByb2Zlc3NvciBTZWVsZXksIE1yLiBNYWxsZXNvbiwgYW5kIG90aGVycywgDQpUcntbJiomXX1hbnMuIE5ldyBTaC4gU29jLCAxODc0LiANCg0KXFwgT24gdGhlIGxpbmUgXCIgQSB2ZXJ5LCB2ZXJ5IOKAlCBwYWpvY2ssXCcqIHNlZSB0e1smKiZdfWhlIGFydGljbGUgb24gU2hha2Z0cGVyZSBpcSANCkVkaW5idXJnaCBSZXZpZXcsIE9jdC4sIDE4NzIsIHBwLiAzNjEsIDM2Mi4gDQp7WyYqJl19DQpIYW1sZXQuIGkzOSANCg0KbW90aGVyXCdzIGNsb3NldC4gXCJeIEhlIGxpYXMgd29yZHMgdGhhdCBtdXN0IGJlIHNwb2tlbi4gDQpIe1smKiZdfWUgaGFzIGEgZ3JlYXQgZXNzYXkgdG8gbWFrZSB0b3dhcmRzIHRoZSBkZWxpdmVyYW5jZSANCm9mIGEgaHVtYW4gc291bCBmcm9tIHR7WyYqJl19aGUgYm9uZGFnZSBvZiBjb3JydXB0aW9uLiBUaGUgDQpzbGF1Z2h0ZXIgb2YgUG9sb25pdXMgYXBwZWFycyB0byBoaW0gYSB0cml2aXtbJiomXX1hbCBpbmNpZGVudCwgDQpieSB0aGUgd2F5IDsgaXQgZG9lcyBub3QgYWZmZWN0IGhpbSB1bnRpbCBoZSBoYXMgc3BlbnQgaGlzIA0Ke1smKiZdfXBvd2VycyBpbiB0aGUgZWZmb3J0IHRvIHVwbGlmdCBoaXMgbW90aGVyXCdzIHdlYWsgc291bCwgYW5kIA0KYnJlYXRoZSBpbnRvIGl0e1smKiZdfSBzdHJlbmd0aCBhbmQgY291cmFnZSBhbmQgY29uc3RhbmN5LiBUaGVuLCANCmluIHRoZSBleGhhdXN0aW9uIHdoaWNoIHN1Y2NlZWR7WyYqJl19cyBoaXMgZWZmb3J0LCBoaXMgdGVhcnMgZmxvdyANCmZhc3QuIA0KDQpJbiB0aGUgZGF3biBvZiB0aGUgZm9sbG93aW5nIG1vcm5pbntbJiomXX1nLCBIYW1sZXQgaXMgZGUtIA0Kc3BhdGNsamVkIHRvIEVuZ2xhbmQuIEZyb20gdGhpcyB0aW1lIGZvcndhcmQgaGUgYWN0cywgaWYge1smKiZdfQ0Kbm90IHdpdGggY29udGludWl0eSBhbmQgd2l0aCBhIHBsYW4sIGF0IGxlYXN0IHdpdGggZW5lci0gDQpneS4gSGUgaGFzIGZhbGx7WyYqJl19ZW4gaW4gbG92ZSB3aXRoIGFjdGlvbiA7IGJ1dCB0aGUgYWN0aW9uIGlzIA0Kc3VkZGVuLCBjb252dWxzaXZlLCBhbmQgaW50ZXJydXtbJiomXX1wdGVkLiBIZSBpcyBhYmFuZG9uaW5nIA0KaGltc2VsZiBtb3JlIHRoYW4gcHJldmlvdXNseSB0byBoaXMgY2hhbmNlcyBvZiBhY2hpe1smKiZdfWV2aW5nIA0KdGhpbmdzLCBhbmQgdGhpbmtzIGxlc3Mgb2YgZm9ybWluZyBhbnkgY29uc2lzdGVudCBzY2hlbWUuIA0KVGhlIGRlYXR7WyYqJl19aCBvZiBQb2xvbml1cyB3YXMgYWNjaWRlbnRhbCwgYW5kIEhhbWxldCByZWNvZy0gDQpuaXplZCwgb3IgdHJpZWQgdG8gcmVjb2duaXtbJiomXX16ZSwgaW4gaXQgKHNpbmNlIGluIGhpcyBvd24gd2lsbCANCnRoZSBkZWVkIGhhZCBubyBvcmlnaW4pIHRoZSBwbGVhc3VyZSBvZiBoe1smKiZdfWVhdmVuIDogDQoNClwiIEkgZG8gcmVwZW50IDogYnV0IGhlYXZlbiBoYXRoIHBsZWFzZWQgaXQgc28sIA0KVG8gcHVuaXNoIG1lIHdpe1smKiZdfXRoIHRoaXMsIGFuZCB0aGlzIHdpdGggbWUsIA0KVGhhdCBJIG11c3QgYmUgdGhlaXIgc2NvdXJnZSBhbmQgbWluaXN0ZXIuXCIgDQoNe1smKiZdfQpXaGVuIGFib3V0IHRvIGRlcGFydCBmb3IgRW5nbGFuZCwgSGFtbGV0IGFjY2VwdHMgdGhlIA0KbmVjZXNzaXR5IHdpdGggYXMgcmV7WyYqJl19c29sdXRlIGEgc3Bpcml0IGFzIG1heSBiZSwgYmVsaWV2aW5nLCBvciANCnRyeWluZyB0byBiZWxpZXZlLCB0aGF0IGhlIGFuZCBoaXtbJiomXX1zIGNvbmNlcm5zIGFyZSBpbiB0aGUgaGFuZCANCm9mIEdvZC4gDQoNCiogT2YgdGhlIHNwZWVjaCBpbiBwcmVzZW5jZSBvZiB0aGUge1smKiZdfXByYXlpbmcgQ2xhdWRpdXMsIFJpY2hhcmRzb24gaGFkIHNhaWQgDQp3aGF0IFMuIFQuIENvbGVyaWRnZSBpbiBvdGhlciB3b3JkcyB7WyYqJl19cmVwZWF0ZWQsIFwiIEkgdmVudHVyZSB0byBhZmZpcm0gdGhhdCB0aGVzZSANCmFyZSBub3QgSGFtbGV0XCdzIHJlYWwgc2VudGltZW50e1smKiZdfXMuXCIgTm90aWNlIHRoYXQgdGhlIGdob3N0IGFwcGVhcnMgcHJlY2lzZS0gDQpseSBhdCB0aGUgcG9pbnQgd2hlcmUgSGFtbGV0XCdzIHtbJiomXX13b3JkcyByZXNwZWN0aW5nIENsYXVkaXVzIGFyZSBtb3N0IHZpdHVwZXItIA0KYXRpdmUuIEhhbWxldCBpcyBpbW1lZGlhdGVseSBze1smKiZdfWVuc2libGUgdGhhdCBoZSBpcyB3ZWFrZW5pbmcgaGlzIGhlYXJ0IHdpdGggDQp3b3JkcywgYW5kIGhhcyBuZWdsZWN0ZWQgZGVlZHN7WyYqJl19LiBUaGUgYWlyLCB3aGljaCBoYXMgYmVlbiBzbyBoZWF0ZWQsIHNlZW1zIA0KdG8gZ3JvdyBpY3ksIGFuZCB0aGUgdGVtcGVyYXR1cntbJiomXX1lIG9mIEhhbWxldFwncyBwYXNzaW9uIHN1ZGRlbmx5IGZhbGxzIOKAlCB0byByaXNuIA0KYWdhaWEgYnktYW5kLWJ5LiANCg0KMTQwIHtbJiomXX1TaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpcJ1wnSGFtLiBGb3IgRW5nbGFuZCEgDQoNCktpbmcsIEF5LCBIYW1sZXR7WyYqJl19LiANCg0KSGFtLCBHb29kLiANCg0KS2luZywgU28gaXMgaXQsIGlmIHRob3Uga25ld1wnc3Qgb3VyIHB1cnBvc2VzLiANCkhhbS4gSSB7WyYqJl19c2VlIGEgY2hlcnViIHRoYXQgc2VlcyB0aGVteSANCg0KVGhhdCBpcywgTXkgdGltZXMgYXJlIGluIEdvZFwncyBoYW5kLiBBZ2Fpbix7WyYqJl19IHdoZW4gaGUgDQpyZWZsZWN0cyB0aGF0LCBhY3RpbmcgdXBvbiBhIHN1ZGRlbiBpbXB1bHNlLCBpbiB3aGljaCB0aGVyZSANCndhc3tbJiomXX0gbm90aGluZyB2b2x1bnRhcnkgKGZvciB0aGUgZGVlZCB3YXMgYWNjb21wbGlzaGVkIGJlLSANCmZvcmUgaGUgaGFkIGNvbmNlaXZle1smKiZdfWQgd2hhdCBpdCB3YXMpLCBoZSBoYWQgc2VudCBoaXMgdHdvIA0Kc2Nob29sZmVsbG93cyB0byBkZWF0aCwgSGFtbGV0XCdzIHRob3Vne1smKiZdfWh0cyBnbyBvbiB0byBkaXMtIA0KY292ZXIgdGhlIGRpdmluZSBwdXJwb3NlIGluIHRoZSBldmVudCA6IA0KDQoqKiBMZXQgdXMga257WyYqJl19b3cgDQpPdXIgaW5kaXNjcmV0aW9uIHNvbWV0aW1lcyBzZXJ2ZXMgdXMgd2VsbC4gDQpXaGVuIG91ciBkZWVwIHBsb3RzIGRvIHBhbHtbJiomXX1sIDsgYW5kIHRoYXQgc2hvdWxkIHRlYWNoIHVzIA0KVGhlcmVcJ3MgYSBkaXZpbml0eSB0aGF0IHNoYXBlcyBvdXIgZW5kcy4gDQpSb3tbJiomXX11Z2gtaGV3IHRoZW0gaG93IHdlIHdpbGwuIA0KDQpIb3JhdGlvLiBUaGF0IGlzIG1vc3QgY2VydGFpbi5cIiANCg0KT25jZSBtb3JlLHtbJiomXX0gd2hlbiBIb3JhdGlvIGJpZHMgdGhlIFByaW5jZSB5aWVsZCB0byB0aGUgDQpzZWNyZXQgbWlzZ2l2aW5nIHdoaWNoIHRyb3VibGVke1smKiZdfSBoaXMgaGVhcnQgYmVmb3JlIGhlIHdlbnQgDQp0byB0aGUgdHJpYWwgb2Ygc2tpbGwgd2l0aCBMYWVydGVzLCBIYW1sZXQgcHV0cyB7WyYqJl19YXNpZGUgaGlzIA0KZnJpZW5kXCdzIGFkdmljZSB3aXRoIHRoZSB3b3JkcyBcIldlIGRlZnkgYXVndXJ5IDsgdGhlcmVcJ3MgDQphIHNwZXtbJiomXX1jaWFsIHByb3ZpZGVuY2UgaW4gdGhlIGZhbGwgb2YgYSBzcGFycm93LiBJZiBpdCBiZSBub3csIA0KXCd0aXMgbm90IHRvIGNvbWUgO3tbJiomXX0gaWYgaXQgYmUgbm90IHRvIGNvbWUsIGl0IHdpbGwgYmUgbm93IDsgaWYgDQppdCBiZSBub3Qgbm93LCB5ZXQgaXQgd2lsbCBjb21le1smKiZdfSA7IHRoZSByZWFkaW5lc3MgaXMgYWxsLlwiIA0KDQpEb2VzIFNoYWtzcGVyZSBhY2NlcHQgdGhlIGludGVycHJldGF0aW9uIG9mIGV2e1smKiZdfWVudHMgDQp3aGljaCBIYW1sZXQgaXMgbGVkIHRvIGFkb3B0ID8gTm8gOyB0aGUgcHJvdmlkZW5jZSBpbiANCndoaWNoIFNoYWtzcGV7WyYqJl19cmUgYmVsaWV2ZWQgaXMgYSBtb3JhbCBvcmRlciB3aGljaCBpbi0gDQpjbHVkZXMgbWFuXCdzIGhpZ2hlc3QgZXhlcmNpc2Ugb2YgZm97WyYqJl19cmVzaWdodCwgZW5lcmd5LCBhbmQgDQpyZXNvbHV0aW9uLiBUaGUgZGlzcG9zaXRpb24gb2YgSGFtbGV0IHRvIHJlZHVjZSB0byBhIHtbJiomXX0NCm1pbmltdW0gdGhlIHNoYXJlIHdoaWNoIG1hblwncyBjb25zY2lvdXMgd2lsbCBhbmQgZm9yZS0gDQpzaWdodCBoYXZlIGluIHRoZXtbJiomXX0gZGlzcG9zaW5nIG9mIGV2ZW50cywgYW5kIHRvIGVubGFyZ2UgdGhlIA0Kc3BoZXJlIG9mIHRoZSBhY3Rpb24gb2YgcG93ZXJzIG91e1smKiZdfXRzaWRlIHRoZSB3aWxsLCBoYXMgYSANCmRyYW1hdGljLCBub3QgYSB0aGVvbG9naWNhbCwgc2lnbmlmaWNhbmNlLiBIZWxlbmEsIHd7WyYqJl19aG8gDQpjbGVhcmx5IHNlZXMgd2hhdCBzaGUgcmVzb2x2ZXMgdG8gZG8sIGFuZCBhY2NvbXBsaXNoZXMgDQpuZWl0aGVyIGxlc3MgbntbJiomXX1vciBtb3JlIHRoYW4gc2hlIGhhcyByZXNvbHZlZCwgcHJvZmVzc2VzIGEgDQpkaWZmZXJlbnQgY3JlZWQgOiANCg0KYSANCg0KSGFte1smKiZdfWxldC4gMTQxIA0KDQrigKLigKIgT3VyIHJlbWVkaWVzIG9mdCBpbiBvdXJzZWx2ZXMgZG8gbGllLCANCldoaWNoIHdlIGFzY3JpYmV7WyYqJl19IHRvIGhlYXZlbiA7IHRoZSBmYXRlZCBza3kgDQpHaXZlcyB1cyBmcmVlIHNjb3BlLCBvbmx5IGRvdGggYmFja3dhcmQgcHVsbCANCntbJiomXX1PdXIgc2xvdyBkZXNpZ25zIHdoZW4gd2Ugb3Vyc2VsdmVzIGFyZSBkdWxsLlwiIOKZpiANCg0KSG9yYXRpbywgYSBiZWxpZXZlciBpbntbJiomXX0gdGhlIFwiIGRpdmluaXR5IHRoYXQgc2hhcGVzIG91ciANCmVuZHMsXCIgYnkgaGlzIHByb21pc2VkIGV4cGxhbmF0aW9uIG9mIHRoZSB7WyYqJl19ZXZlbnRzLCBkZWxpdi0gDQplcnMgdXMgZnJvbSB0aGUgdHJhbnNjZW5kZW50YWwgb3B0aW1pc20gb2YgSGFtbGV0LCBhbmQgDQpyZXtbJiomXX1zdG9yZXMgdGhlIHB1cmVseSBodW1hbiB3YXkgb2Ygdmlld2luZyB0aGluZ3M6IA0KDQoqXCcgR2l2ZSBvcmRlciB0aGF0IHRoZXNlIHtbJiomXX1ib2RpZXMgDQpIaWdoIG9uIGEgc3RhZ2UgYmUgcGxhY2VkIHRvIHRoZSB2aWV3IDsgDQpBbmQgbGV0IG1lIHNwZWFrIHRvIHRoZSB5e1smKiZdfWV0IHVua25vd2luZyB3b3JsZCANCkhvdyB0aGVzZSB0aGluZ3MgY2FtZSBhYm91dCA6IHNvIHNoYWxsIHlvdSBoZWFyIA0KT2YgY2F7WyYqJl19cm5hbCwgYmxvb2R5LCBhbmQgdW5uYXR1cmFsIGFjdHMsIA0KT2YgYWNjaWRlbnRhbCBqdWRnbWVudHMsIGNhc3VhbCBzbGF1Z2h0ZXtbJiomXX1ycywgDQpPZiBkZWF0aHMgcHV0IG9uIGJ5IGN1bm5pbmcgYW5kIGZvcmNlZCBjYXVzZSwgDQpBbmQgaW4gdGhpcyB1cHNob3QgcHVye1smKiZdfXBvc2VzIG1pc3Rvb2ssIA0KRmFsUG4gb24gdGhlIGludmVudG9yc1wnIGhlYWRzIDogYWxsIHRoaXMgY2FuIEkgDQpUcnVseSBkZVV2e1smKiZdfWVyLlwiIA0KDQpUaGUgYXJyaXZhbCBvZiBGb3J0aW5icmFzIGNvbnRyaWJ1dGVzIGFsc28gdG8gdGhlIHJlcy0gDQp0b3JhdGlvbiBve1smKiZdfXQgYSBwcmFjdGljYWwgYW5kIHBvc2l0aXZlIGZlZWxpbmcuIFdpdGggbm9uZSANCm9mIHRoZSByYXJlIHF1YWxpdGllcyBvZiB0aGV7WyYqJl19IERhbmlzaCBwcmluY2UsIGhlIGV4Y2VscyBoaW0gDQppbiBwbGFpbiBncmFzcCBvZiBvcmRpbmFyeSBmYWN0LiBTaGFrc3BlcmUga3tbJiomXX1ub3dzIHRoYXQgDQp0aGUgc3VjY2VzcyBvZiB0aGVzZSBtZW5eIHdobyBhcmUgbGltaXRlZCwgZGVmaW5pdGUsIHBvc2ktIA0KdGl2e1smKiZdfWUsIHdpbGwgZG8gbm8gZGlzaG9ub3IgdG8gdGhlIGZhaWx1cmUgb2YgdGhlIHJhcmVyIG5hdC0gDQp1cmVzLCB0byB3aG9tIHRoZSB7WyYqJl19cHJvYmxlbSBvZiBsaXZpbmcgaXMgbW9yZSBlbWJhcnJhc3MtIA0KaW5nLCBhbmQgZm9yIHdob20gdGhlIHRlc3RzIG9mIHRoZSB3b3tbJiomXX1ybGQgYXJlIHN0cmljdGVyIGFuZCANCm1vcmUgZGVsaWNhdGUuIFNoYWtzcGVyZSBeXCcgYmVhdHMgdHJpdW1waGFudCBtYXJjaGVzIHtbJiomXX1cIiANCm5vdCBmb3Igc3VjY2Vzc2Z1bCBwZXJzb25zIGFsb25lLCBidXQgYWxzbyBcIiBmb3IgY29ucXVlcmVkIA0KYW5kIHNsYWluIHB7WyYqJl19ZXJzb25zLlwiIA0KDQpEb2VzIEhhbWxldCBmaW5hbGx5IGF0dGFpbiBkZWxpdmVyYW5jZSBmcm9tIGhpcyBkaXMtIA0KZWFzZSBvZiB7WyYqJl19d2lsbD8gU2hha3NwZXJlIGhhcyBsZWZ0IHRoZSBhbnN3ZXIgdG8gdGhhdCANCnF1ZXN0aW9uIGRvdWJ0ZnVsLiBQcm9iYWJseSBpZntbJiomXX0gYW55dGhpbmcgY291bGQgc3VwcGx5IA0KdGhlIGxpbmsgd2hpY2ggd2FzIHdhbnRpbmcgYmV0d2VlbiB0aGUgcHVycG9zZSBhbmQge1smKiZdfQ0KdGhlIGRlZWQsIGl0IHdhcyB0aGUgYWNoaWV2ZW1lbnQgb2Ygc29tZSBzdXByZW1lIGFjLSANCg0KKiBBbGwgXCdzIFdlbGwgdGhhe1smKiZdfXQgRW5kcyBXZWxsLCBhY3QgaS4sIHNjLiAxLCANCg0KMTQyIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCnRpb257WyYqJl19LiBUaGUgbGFzdCBtb21lbnRzIG9mIEhhbWxldFwncyBsaWZlIGFyZSB3ZWxsIHNwZW50LCANCmFuZCwgZm9yIGVuZXJneSBhbmQgZm97WyYqJl19cmVzaWdodCwgYXJlIHRoZSBub2JsZXN0IG1vbWVudHMgDQpvZiBoaXMgZXhpc3RlbmNlLiBIZSBzbmF0Y2hlcyB0aGUgcG9pc29uZXtbJiomXX1kIGJvd2wgZnJvbSANCkhvcmF0aW8sIGFuZCBzYXZlcyBoaXMgZnJpZW5kOyBoZSBnaXZlcyBoaXMgZGpkbmcgdm9pY2UgDQpmb3Ige1smKiZdfUZvcnRpbmJyYXMsIGFuZCBzYXZlcyBoaXMgY291bnRyeS4gVGhlIHJlc3QgaXMgc2ktIA0KbGVuY2UgOiANCg0KXCIgSGFkIEkgYnV0e1smKiZdfSB0aW1lIChhcyB0aGlzIGZlbGwgc2VyZ2VhbnQsIGRlYXRoLCANCklzIHN0cmljdCBpbiBoaXMgYXJyZXN0KSwgMCwgMSBjb3VsZCB7WyYqJl19dGVsbCB5b3UuXCIgDQoNCkJ1dCBoZSBoYXMgbm90IHRvbGQuIExldCB1cyBub3QgdG9vIHJlYWRpbHkgYXNzdW1lIHRoYXQgDQp3ZSB7WyYqJl19XCJrbm93IHRoZSBzdG9wc1wiIG9mIEhhbWxldCwgdGhhdCB3ZSBjYW4gXCJwbHVjayANCm91dCB0aGUgaGVhcnQgb2YgaGlzIG15c3RlcntbJiomXX15LlwiIA0KDQpPbmUgdGhpbmcsIGhvd2V2ZXIsIHdlIGRvIGtub3cg4oCUIHRoYXQgdGhlIG1hbiB3aG8gDQp3cm90ZSB0aGUgcGxheXtbJiomXX0gb2YgSGFtbGV0IGhhZCBvYnRhaW5lZCBhIHRob3JvdWdoIGNvbS0gDQpwcmVoZW5zaW9uIG9mIEhhbWxldFwncyBtYWxhZHkuIEFuZHtbJiomXX0sIGFzc3VyZWQsIGFzIHdlIGEgci5lIA0KYnkgYWJ1bmRhbnQgZXZpZGVuY2UsIHRoYXQgU2hha3NwZXJlIHRyYW5zZm8gcm1lZCB3e1smKiZdfWl0aCANCmZlbmVdXmV0aWMgd2lsbCBoaXMgS25vd2xlZGdlIGludG8gaSBeb14mZ3Q7XiBeXl5cJ15eIGJcJ14gXlFUbF4tIA0KXmRtaXtbJiomXX10IHRoYXQgd2hlbiBIYW1sZXQgd2FzIHdyaXR0IGVuIFNoYWtzcGVyZSBoYWQgZ2FpbmVkIA0KYSBmdXJ0aGVyIHN0YXllIGluIGtpe1smKiZdfXMgY3VsdHVyZSBvdCBzZUgtLSZsdDs7Xm5udHJuVF4gYW5kIHRoYXQgaGVMIA0KVGlhZCBiZWNvbWUgbm90IG9ubHkgYWR1bHQgYXN7WyYqJl19IGFuIGF1dGhvcl4gYnV0IGhhZCBlbnRlcmdpSkwgDQp1cG9uIHRoZSBmdWxsIG1hdHVyaXR5IG9mIGhpcyBtYW5ob29kLiBeIA0KDXtbJiomXX0KKiBUbyByZWZlciBldmVuIHRvIHRoZSBiZXN0IHBvcnRpb24gb2YgdGhlIGltbWVuc2UgSGFtbGV0IGxpdGVyYXR1cmUgd291bGQge1smKiZdfQ0KcmVxdWlyZSBjb25zaWRlcmFibGUgc3BhY2UuIEkgYmVsaWV2ZSBteSBzdHVkeSBvZiB0aGUgcGxheSBpcyBpbmRlYnRlZCANCmN7WyYqJl19aGllZmx5IHRvIHRoZSBhcnRpY2xlIGJ5IEguIEEuIFdlcm5lciwgaW4gSmFocmh1Y2ggZGVyIGRldXRzY2hlbiBTaGFrZS0gDQpzcHtbJiomXX1lYXJlIC1HZXNlbGxzY2hhZnReIHZvbC4gdi4sIGFuZCB0byBhbiBlc3NheSBieSBteSBmcmllbmQgSi4gVG9kaHVudGVyLCBNLkQue1smKiZdfSwgDQpyZWFkIGJlZm9yZSB0aGUgRHVibGluIFVuaXZlcnNpdHkgU2hha3NwZXJlIFNvY2lldHkuIFRoZSBkb2N0b3JzIG9mIHRoZSB7WyYqJl19DQppbnNhbmUgaGF2ZSBiZWVuIHN0dWRpb3VzIG9mIHRoZSBzdGF0ZSBvZiBIYW1sZXRcJ3MgbWluZCDigJQgRG9jdG9ycyBSYXksIEt7WyYqJl19ZWwtIA0KbG9nZywgQ29ub2xseSwgTWF1ZHNsZXksIEJ1Y2tuaWxsLiBUaGV5IGFyZSB1bmFuaW1vdXMgaW4gd2lzaGluZyB0byBwdXtbJiomXX10IA0KSGFtbGV0IHVuZGVyIGp1ZGljaW91cyBtZWRpY2FsIHRyZWF0bWVudCA7IGJ1dCB0aGV5IGZpbmQgaXQgaGFyZGVyIHRoYW4ge1smKiZdfQ0KUG9sb25pdXMgZGlkIHRvIGhpdCB1cG9uIGEgZGVmaW5pdGlvbiBvZiBtYWRuZXNzIDogDQoNCipcJyBGb3IgdG8gZGVmaW5lIHRye1smKiZdfXVlIG1hZG5lc3MsIA0KV2hhdCBpc1wndCBidXQgdG8gYmUgbm90aGluZyBlbHNlIGJ1dCBtYWQgP1wiIA0KDQpUaGUgY3JpdGljcyBhcntbJiomXX1lIG5lYXJseSBlcXVhbGx5IGRpdmlkZWQgaW4gdGhlaXIgZXN0aW1hdGVzIG9mIE9waGVsaWEuIEZsYXRoZSANCmlzIGV4dHJhdmFne1smKiZdfWFudGx5IGhvc3RpbGUgdG8gdGhlIFBvbG9uaXVzIGZhbWlseS4gTXIuIFJ1c2tpbiAoXCIgU2VzYW1lIGFuZCANCkxpbGllcyBcIikgbXtbJiomXX1heSBiZSBtZW50aW9uZWQgYW1vbmcgRW5nbGlzaCB3cml0ZXJzIGFzIGZvcm1pbmcgbm8gZmF2b3JhYmxlIA0KZXN0aW1hdGUgb2Yge1smKiZdfU9waGVsaWEgOyBhbmQgYWdhaW5zdCBNcnMuIEphbWVzb25cJ3MgYXV0aG9yaXR5IHdlIG1heSBzZXQgdGhlIA0KYXV0aG9yaXR5IG9me1smKiZdfSBhIGxhZHkgd3JpdGVyIGluIEphaHJodWNoIGRlciBkZXV0c2NoZW4gU2hha2VzcGVhcmUtIEdlc2VsbC0gDQoNCkhhbWxldCAxNDN7WyYqJl19IA0KDQpzY2hhZnReIHZvbC4gaWkuLCBwcC4gMTYtMzYuIFZpc2NoZXIgY2hpdmFscm91c2x5IGRlZmVuZHMgT3BoZWxpYSwgYW5kIHtbJiomXX1IZS0gDQpibGVyIGNvaW5jaWRlcy4gVGhlIHN0dWR5IG9mIEhhbWxldCBieSBCZW5ubyBUc2NoaXNjaHdpdHogaXMgbGVhcm5lZCBhe1smKiZdfW5kIA0KaW5nZW5pb3VzLiBILiB2b24gRnJpZXNlblwncyBcIkJyaWVmZSBpaWJlciBTaGFrZXNwZWFyZVwncyBIYW1sZXRcIiBjb250YWlue1smKiZdfXMgDQptdWNoIG1vcmUgdGhhbiBpdHMgbmFtZSBpbXBsaWVzLCBhbmQgaXMsIGluZGVlZCwgYSBzdHVkeSBvZiB0aGUgZW50aXJlIGR7WyYqJl19ZS0gDQp2ZWxvcG1lbnQgb2YgU2hha3NwZXJlLiBTaXIgRWR3YXJkIFN0cmFjaGV5XCdzIFwiIFNoYWtzcGVhcmVcJ3MgSGFtbGV0LFwiIA17WyYqJl19CjE4NDgsIGludGVycHJldHMgdGhlIHBsYXkgdGhyb3VnaG91dCBpbiBhIGRpZmZlcmVudCBzZW5zZSBmcm9tIHRoZSBpbnRlcnByZXtbJiomXX0tIA0KdGF0aW9uIGF0dGVtcHRlZCBpbiB0aGlzIGNoYXB0ZXIuIFNlZSBlc3BlY2lhbGx5IHdoYXQgaXMgY2FsbGVkIFwiIEhhbWxldHtbJiomXX1cJ3MgDQpGaW5hbCBEaXNjb3ZlcnksXCIgcHAuIDkxLTkzLiANCg0KV2VyZGVyXCdzIFwiVm9ybGVzdW5nZW4gaWliZXIgU2hha2VzcGVhcntbJiomXX1lXCdzIEhhbWxldCxcIiAxODc1LCBwcmVzZW50cyANCndpdGggcmVtYXJrYWJsZSBmb3JjZSB0aGUgdmlldyB0aGF0IEhhbWxldFwncyB3e1smKiZdfWFzIG5vdCBhIHdlYWsgbmF0dXJlLiANCk1yLiBGcmFuayBNYXJzaGFsbFwncyBcIkEgU3R1ZHkgb2YgSGFtbGV0LFwiIGlmIGxlc3MgYnJ7WyYqJl19aWxsaWFudCwgaXMsIEkgdGhpbmssIA0KbW9yZSBzb3VuZC4gTGFzdCBtdXN0IGJlIG1lbnRpb25lZCBNci4gRnVybmVzc1wncyBtYWd7WyYqJl19bmlmaWNlbnQgdmFyaW9ydW5hIA0KZWRpdGlvbiBvZiB0aGUgcGxheSwgaW4gdHdvIHZvbHVtZXMsIDE4IDc3LiANCg0KMTQ0IFNoYXtbJiomXX1rc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpDSEFQVEVLIGxZLiANCg0KVEhFIEVOR0xJU0ggSElTVE9FSUNBTCBQTEFZe1smKiZdfVMuIA0KDQpUaGUgaGlzdG9yaWNhbCBwbGF5cyBvZiBTaGFrc3BlcmUgbWF5IGJlIGFwcHJvYWNoZWQgDQpmcm9tIG1hbnkgc2lkZXN7WyYqJl19LiBJdCB3b3VsZCBiZSBpbnRlcmVzdGluZyB0byBlbmRlYXZvciANCnRvIGFzY2VydGFpbiBmcm9tIHRoZW0gd2hhdCB3YXMgU2hha3tbJiomXX1zcGVyZVwncyBwb2xpdGljYWwgDQpjcmVlZC5cIl4gSXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8gY29tcGFyZSBoaXMgbWV0aG9kIA17WyYqJl19CmFzIGFydGlzdCB3aGVuIGhhbmRsaW5nIGhpc3RvcmljYWwgbWF0dGVyIHdpdGggdGhhdCBvZiANCnNvbWUgb3RoZXIgZ3JlYXQgZHtbJiomXX1yYW1hdGlzdCDigJQgd2l0aCB0aGF0IG9mIFNjaGlsbGVyIHdoZW4gDQp3cml0aW5nIFwiIFdhbGxlbnN0ZWluLFwiIG9yIEdvZXRoZSB7WyYqJl19d2hlbiB3cml0aW5nIFwiIEVnLSANCm1vbnQsXCIgb3IgWWljdG9yIEh1Z28gd2hlbiB3cml0aW5nIFwiIENyb213ZWxsLlwiIA0KU2hha3N7WyYqJl19cGVyZVwncyBvcGluaW9ucywgaG93ZXZlciwgYW5kIFNoYWtzcGVyZVwncyBtZXRoLSANCm9kIGFzIGFydGlzdCwgYXJlIGxlc3MgdGhhe1smKiZdfW4gU2hha3NwZXJlIGhpbXNlbGYuIEl0IGlzIHRoZSANCm1hbiB3ZSBhcmUgc3RpbGwgc2Vla2luZyB0byBkaXNjb3ZlciDigJQgYmV7WyYqJl19aGluZCBoaXMgd29ya3MsIA0KYmVoaW5kIGhpcyBvcGluaW9ucywgYmVoaW5kIGhpcyBhcnRpc3RpYyBwcm9jZXNzLCB0U2hhay0gDXtbJiomXX0Kc3BlcmVcJ3MgbGlmZSwgd2UgbXVzdCBiZWxpZXZlLCByYW4gb24gYmVsb3cgaGlzIGFydCwgYW5kIA0Kd2FzIHRvIGhpbXNlbGYgb3tbJiomXX1mIGRlZXBlciBpbXBvcnQgdGhhbiBoaXMgd29yayBhcyBhcnRpc3QuIA0KTm90LCBwZXJoYXBzLCBoaXMgbWF0ZXJpYWwgbGlmZSwge1smKiZdfXRob3VnaCB0byB0aGlzIGFsc28gaGUgY29uLSANCnRyaXZlZCB0byBtYWtlIGhpcyBhcnQgY29udHJpYnV0ZSwgYnV0IHRoZSBsaWZ7WyYqJl19ZSBvZiBoaXMgaW4tIA0KbW9zdCBiZWluZy4gVG8gaGltIGFydCB3YXMgbm90LCBhcyBpdCBoYXMgYmVlbiB0byBzb21lIA0KcG9ldHtbJiomXX1zIGFuZCBwYWludGVycyBhbmQgbXVzaWNpYW5zLCBhIHRlbXBsZS13b3JzaGlwIDsgYSANCmRldm90aW9uIG9mIHNlbGYsIGEgc3Vye1smKiZdfXJlbmRlciB3aGljaCBpcyBhdCBvbmNlIGJsaXNzZnVsIA0KYW5kIHBhdGhldGljIHRvIHNvbWUgcHJlc2VuY2UgZ3JlYXRlciBhbmR7WyYqJl19IG5vYmxlciB0aGFuIA0KDQoqIFNlZSBvbiB0aGlzIHN1YmplY3QgXCIgU2hha3NwZXJlLUZvcnNjaHVuZ2VuLFwiIGJ5IEJlbm5vIFRze1smKiZdfWNoaXNjaC0gDQp3aXR6LCBpbi4g4oCUIFwiU2hha3NwZXJlXCdzIFN0YWF0IHVuZCBLb25pZ3RodW0uXCIgVGhlIHdyaXRlciBkd2VsbHN7WyYqJl19IG9uIA0KdGhlIG1vcmFsIGFuZCByZWxpZ2lvdXMgY2hhcmFjdGVyIG9mIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGtpbmcgYW5kIHBlb3tbJiomXX1wbGUgDQphcyBjb25jZWl2ZWQgYnkgU2hha3NwZXJlLiBIZSBzYXlzIHdlbGwsIFwiIEZpaXIgU2hha3NwZXJlIG5hbWxpY2ggaXN0IHtbJiomXX1kYXMgDQpLb25pZ3RodW0gZHVyY2hhdXMgbmljaHQgZGlAIGdla3JtaXRlIFNwaXR6ZSBlaW5lciBQeXleYW1pZGVeIHNvbmRlcm4ge1smKiZdfWRlciANCmxlYmVuZGlnZSBNaXR0ZWxwdW5rdCBlaW5lcyBvcmdhbmlzY2hlbiBHYW56ZW4sIG5hY2ggd2VsY2hlbSB6dSBkYXMgR2V7WyYqJl19LSANCnNhbW10bGViZW4gZGVzIE9yZ2FuaXNtdXMgcHVsc2lydCxcIiBwLiA4NC4gU2VlIHRoZSBzdWJzZXF1ZW50IGNoYXB0ZXIgaW57WyYqJl19IA0KdGhpcyB2b2x1bWUgdXBvbiBcIlRoZSBSb21hbiBQbGF5cyxcJ1wnIHBwLiAyNzYtMzM2LiANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaXtbJiomXX1jYWwgUGxheXMuIDE0NSANCg0Kb25lXCdzIHNlbGYuIE9mIHN1Y2ggcGF0aG9zIHdlIGRpc2NvdmVyIG5vbmUgaW4gU2hhay0gDQpzcHtbJiomXX1lcmVcJ3MgbGlmZS4gSGUgcG9zc2Vzc2VkIGhpcyBhcnQsIGFuZCB3YXMgbm90IHBvc3Nlc3NlZCANCmJ5IGl0LiBXaXRoIGhpbSBwb3tbJiomXX1ldHJ5IHdhcyBub3QsIGFzIGl0IHdhcyB3aXRoIEtlYXRzLCANCm9yIGFzIGl0IHdhcyB3aXRoIFNoZWxsZXksIGEgcGFzc2lvbiBme1smKiZdfXJvbSB3aGljaCBkZWxpdmVyLSANCmFuY2Ugd2FzIGltcG9zc2libGUuIFNoYWtzcGVyZSBkZWxpdmVyZWQgaGltc2VsZiBmcm9tIA17WyYqJl19CmhpcyBsaWZlIGFzIGFydGlzdCB3aXRoIHF1aWV0IGRldGVybWluYXRpb24sIGFuZCBmb3VuZCBpdCANCndlbGwgdG8gZW5qb3kgaHtbJiomXX1pcyBzdG9yZSBvZiB3b3JsZGx5IHN1Y2Nlc3MsIGFuZCBsZWFybiB0byANCnBvc3Nlc3MgaGlzIHNvdWwgYW1vbmcgdGhlIGZpZWxke1smKiZdfXMgYW5kIHN0cmVhbXMgb2YgU3RyYXQtIA0KZm9yZCwgYmVmb3JlIHRoZXJlIGNhbWUgYW4gZW5kIG9mIGFsbC4gVGhlIG1haW4gcXV7WyYqJl19ZXMtIA0KdGlvbiwgdGhlcmVmb3JlLCB3aGljaCBpdCBpcyBkZXNpcmFibGUgdG8gcHV0IGluIHRoZSBjYXNlIG9mIA0KdGhlIGhpc3tbJiomXX10b3JpY2FsIHBsYXlzIG5vdyB0byBiZSBjb25zaWRlcmVkIGlzIHRoaXMg4oCUIFdoYXQgDQp3YXMgU2hha3NwZXJlIGdhaW5pbmcge1smKiZdfWZvciBoaW1zZWxmIG9mIHdpc2RvbSBvciBvZiANCnN0cmVuZ3RoIHdeaGlsZSB0aGVzZSB3ZXJlIHRoZSBvcmdhbnMgdGhyb3VnaCB7WyYqJl19d2hpY2ggaGlzIA0KZmFjdWx0aWVzIG9mIHRob3VnaHQgYW5kIGltYWdpbmF0aW9uIG5vdXJpc2hlZCB0aGVtLSANCnNlbHZlcywgaXtbJiomXX1uaGFsaW5nIGFuZCBleGhhbGluZyB0aGVpciBicmVhdGggb2YgbGlmZSA/IFRoYXQgDQpeaGFrc3BlcmUgc2hvdWxkIGhhdmUgYWNje1smKiZdfW9tcGxpc2hlZCBzbyBncmVhdCBhbiBhY2hpZXZlLSANCm1lbnQgdG93YXJkIHMgdGhlIGludGVycHJldGluZyBvZiBoaXN0b3JeIGl7WyYqJl19cyBtdWNoIDsgdGhhdCANCmhlIHNob3VsZCBoYXZlIGdyYXNwZWQgaW4gdGhvdWdodCB0aGUgbmF0aW9uYWwgbGlmZSBvZiANCkVuZ3tbJiomXX1sYW5kIGR1cmluZyBhIGNlbnR1cnkgYW5kIHVwd2FyZHMsIGluIGhlciBwZXJpb2RzIA0Kb2YgZGlzYXN0ZXIgYW5kIGNvbGxhcHNle1smKiZdfSwgb2YgY2l2aWwgZW1icm9pbG1lbnQsIGFuZCBvZiBoZS0gDQpyb2ljIHVuaW9uIGFuZCBleGFsdGF0aW9uIOKAlCB0aGlzIGlzIG17WyYqJl19dWNoLiBCdXQgdGhhdCwgYnkgDQpoaXMgc3R1ZHkgb2YgaGlzdG9yeSwgU2hha3NwZXJlIHNob3VsZCBoYXZlIGJ1aWx0IHVwIGhpc3tbJiomXX0gDQpvd24gbW9yYWwgbmF0dXJlLCBhbmNURWF2ZSBmb3J0aWZpZWQgaGltc2VsZiBmb3IgdGhlIGNvbi0gDQpkdWN0IG9mIGxpZmUse1smKiZdfSB3YXMsIHdlIG1heSBzdXJtaXNlLCB0byBTaGFrc3BlcmUgdGhlIGNoaWVmIA0Kb3V0Y29tZSBvZiBoaXMgdG9pbC4gDQoNCkFuZCB7WyYqJl19Y2VydGFpbmx5IG5vdCB0aGUgbGVhc3QgcmVtYXJrYWJsZSB0aGluZyBhYm91dCANCnRoZXNlIGhpc3RvcmljYWwgcGxheXMgaXMgdHtbJiomXX1oYXQgd2hpbGUgZWFjaCBpcyBhbiBlZmxQb3J0IHNvIA0KZWFybmVzdCB0byByZWFsaXplIG9iamVjdGl2ZSBmYWN0LCBhdCB0aGUge1smKiZdfXNhbWUgdGltZSB0aGV5IA0KZGlzY2xvc2Ugc28gbXVjaCBvZiB0aGUgd3JpdGVyXCdzIHBlcnNvbmFsaXR5LiBFdmVuIFNoYWteIA0Ke1smKiZdfXNwZXJlIGNhbm5vdCB0cmFuc2NlbmQgaGltc2VsZi4gRmFjdHMgbXVzdCBncm91cCBhbmQgDQpvcmdhbml6ZSB0aGVpKl0gc2VsdmV7WyYqJl19cyBiZWZvcmUgdGhleSBiZWNvbWUgYXZhaWxhYmxlIGZvciANCnRoZSBzZXJ2aWNlIG9mIGFydCA7IGFuZCBmb3IgZWFjaCBhcnRpc3tbJiomXX10IHRoZXkgZ3JvdXAgdGhlbS0gDQpzZWx2ZXMgYXJvdW5kIGhpcyBzdHJvbmdlc3QgZmVlbGluZ3MgYW5kIG1vc3QgY2hlcmlzaGVke1smKiZdfSANCmNvbnZpY3Rpb25zIHJlc3BlY3RpbmcgaHVtYW4gbGlmZS4gSWYsIGJ5IGZhdm9yYWJsZSANCmNoYW5jZSwgaGFuZHMgYXQgd297WyYqJl19cmsgYW1vbmcgY29uZnVzZWQgc2xpcHMgb2YgYW5jaWVudCANCjEwIA0KDQoxIDQ2IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIHtbJiomXX1BcnQgDQoNCnBhcmNobWVudCB3ZXJlIHRvIGxheSBob2xkIG9mIHRsaWUgaW52ZW50b3J5IG9mIFNoYXQgDQpzcGVyZVwncyBnb29kc3tbJiomXX0gYW5kIGNoYXR0ZWxzIOKAlCBpZiBpdCB3ZXJlIGFzY2VydGFpbmVkIHdoYXQgDQpob3VzZWhvbGQgc3R1ZmYgdGhlIHBvZXQgaGFke1smKiZdfSBnYXRoZXJlZCBhcm91bmQgaGltIGF0IA0KU3RyYXRmb3JkIOKAlCB0aGUgaW5mb3JtYXRpb24gd291bGQgYmUgZWFnZXJsfV4gd2V7WyYqJl19bGNvbWVkIA0KYXMgdGhyb3dpbmcgbGlnaHQgdXBvbiB0aGUgb2JzY3VyZSBzdG9yeSBvZiBoaXMgd29ybGRseSANCmNhcmVlci4gQntbJiomXX11dCBoZXJlIGluIHRoZXNlIGhpc3RvcmljYWwgcGxheXMsIGFuZCBpbiBhbGwgaGlzIA0KcGxheXMsIGFyZSBkb2N1bWVudHMgd3Jpe1smKiZdfXR0ZW4gb3ZlciBldmVyeXdoZXJlIHdpdGggZmFjdHMgDQphYm91dCBTaGFrc3BlcmUuIFRoZSBmYWN0cyBhcmUgdGhlcmUg4oCUIG17WyYqJl19dXN0IGJlIHRoZXJlLiANCldoYXQgaXMgcmVxdWlyZWQgdG8gYXNjZXJ0YWluIHRoZW0gY2FuIGJlIG5vdGhpbmcgYnV0IA0KZXllc3tbJiomXX0gdG8gd2hpY2ggdGhvc2UgZmFjdHMgd2lsbCBkaXNjbG9zZSB0aGVtc2VsdmVzLiANCg0KSWYgdGhlIG91dGxpbmUgb2YgU2hha3Nwe1smKiZdfWVyZVwncyBjaGFyYWN0ZXIgc2tldGNoZWQgaW4gDQp0aGVzZSBwYWdlcyBiZSBhdCBhbGwgYSBnZW51aW5lIGxpa2VuZXNzLCB3ZSBze1smKiZdfWhhbGwgbm90IA0KdGhpbmsgb2YgaGltIG1lcmVseSBvciBjaGllZmx5IGFzIHRoZSBnYXksIGdlbmlhbCwgcXVpY2stIA0Kd2l0dGV7WyYqJl19ZCBoYXVudGVyIG9mIHRoZSBNZXJtYWlkLCBjYXJlZXJpbmcgaW4gbGlnaHQgZGVmaS0gDQphbmNlIGFyb3VuZCB0aGUgYnVsayBvZntbJiomXX0gQmVuIEpvbnNvblwncyBtaW5kIDsgd2Ugc2hhbGwgDQpub3QgcmVtZW1iZXIgaGltIGFzIHRoZSBTaGFrc3BlcmUgYWJvdXQgd2hvc3tbJiomXX1lIGRlZXItIA0Kc3RlYWxpbmcgZXhwZWRpdGlvbnMgaW4gdGhlIGNvdW50cnksIGFuZCBsZXNzIGlubm9jZW50IGFkLcK7IA0KdmVue1smKiZdfXR1cmVzIGluIHRvd24sIHN0b3JpZXMgb2YgZHViaW91cyBhdXRob3JpdHkgaGF2ZSBjb21lIA0KZG93biB0byB1cy4gV2Ugc2hhbGx7WyYqJl19IHJhdGhlciB0aGluayBvZiBoaW0gYXMgYSBtYW4gcG9zLSANCnNlc3NpbmcgaW1tZW5zZSBwb3RlbnRpYWwgc3RyZW5ndGgsIGJ1dHtbJiomXX0gYXdhcmUgb2YgY2VydGFpbiANCndlYWtuZXNzZXMgb2YgaGlzIG93biBuYXR1cmUgOyByZXNvbHZlZCwgdGhlcmVmb3JlLCB0byBie1smKiZdfWUgDQpzdGVybiB3aXRoIGhpbXNlbGYgYW5kIHRvIG1hc3RlciB0aG9zZSB3ZWFrbmVzc2VzOyByZS0gDQpzb2x2ZWQgdG8gcmVhbGl7WyYqJl19emUgYWxsIHRoYXQgcG90ZW50aWFsIHN0cmVuZ3RoIHdoaWNoIGxheSANCndpdGhpbiBoaW0uIFRoYXQgaGlzIHNlbnNpdGl2ZW5lc3tbJiomXX1zIHRvIHBsZWFzdXJlIGFuZCB0byANCnBhaW4gd2FzIG9mIGV4dHJhb3JkaW5hcnkgcmFuZ2UgYW5kIGRlbGljYWN5IHdlIGFyZSBje1smKiZdfWVyLSANCnRhaW4gOyB3ZSBhcmUgY2VydGFpbiwgYWxzbywgdGhhdCBoZSBkZXRlcm1pbmVkIGhlIHdvdWxkIA0Kbm90IGxlYXZlIGh7WyYqJl19aW1zZWxmIHRvIGJlIHRoZSBwbGF5dGhpbmcsIHRoZSB0aHJhbGwsIG9yIHRoZSANCnZpY3RpbSBvZiB0aGF0IHNlbnNpdGl2ZW5lc3tbJiomXX1zLiBXZSBhcmUgYWNjdXN0b21lZCB0byBzcGVhayANCm9mIHRoZSB0ZW5kZXJuZXNzLCB0aGUgaW5maW5pdGUgdG9sZXJhbmNlLCBve1smKiZdfWYgdGhlIGdlbml1cyBvZiANClNoYWtzcGVyZS4gVGhlIGltcGFydGlhbCBzdHVkZW50IG11c3Qgc3VyZWx5IGJlIG5vIGxlc3MgDQp7WyYqJl19aW1wcmVzc2VkIGJ5IHRoZSB1bnlpZWxkaW5nIGp1c3RpY2Ugb2YgU2hha3NwZXJlLCBoaXMgDQpzdGVybiBmaWRlbGl0eSB0byBmYXtbJiomXX1jdCwgYW5kIGJ5IHRoZSBsYXJnZSBkZW1hbmRzIGhlIG1ha2VzIA0KdXBvbiBodW1hbiBjaGFyYWN0ZXIuIEJ5IG11Y2ggb2Ygb3Vye1smKiZdfSBwYXNzaW9uYXRlIGluLSANCnRvbGVyYW5jZSBmb3VuZGVkIHVwb24gcHJlanVkaWNlIGFuZCBwZXJzb25hbCBvciBjbGFzcyANCmZ7WyYqJl19ZWVsaW5nLCBTaGFrc3BlcmUgcmVtYWluZWQgd2hvbGx5IHVudG91Y2hlZC4gV2hlbiANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaWNhbHtbJiomXX0gUGxheXMuIDE0NyANCg0Kd2UgY29tZSB0byBTaGFrc3BlcmUgYW5kIG1pc3Mgb3VyIG93biBsaXR0bGUgYml0dGVybmVzcyANCmFue1smKiZdfWQgdmlvbGVuY2VzLCBhbmQgZmluZCBoaW0gc28gbGFyZ2UgYW5kIGh1bWFuLCB3ZSBuYXQtIA0KdXJhbGx5IGRlc2NyaWJlIGhpbSB7WyYqJl19YXMgdG9sZXJhbnQuIFNoYWtzcGVyZVwncyB0b2xlcmFuY2UsIA0KaG93ZXZlciwgaXMgbm90aGluZyBlbHNlIGJ1dCBqdXN0aWNlIDt7WyYqJl19IGFuZCBldmVuIGhpcyBodW1vciwgDQp0aGUgaHVtb3Igb2YgYSBtYW4gZnJhbWVkIGZvciBhYnVuZGFudCBqb3kgYW5kIHNvci0gDXtbJiomXX0Kcm93LCBoYXMgaW4gaXQgc29tZXRoaW5nIG9mIHNldmVyaXR5LCBiZWNhdXNlIGhlIGVtcGxveXMgDQppdCB0byByZWNvdmVyIGhpe1smKiZdfW1zZWxmIGZyb20gdGhlIG5hcnJvd2luZyBpbnRlbnNpdHkgb2YgaGlzIA0KZW50aHVzaWFzbXMsIGFuZCB0byByZXN0b3JlIGhpbSB7WyYqJl19dG8gdGhlIGxldmVsIG9mIGV2ZXJ5LWRheSANCmZhY3QuIEluIHRoZSBjaGFyYWN0ZXJzIG9mIHRoZSB3ZWFrIG9yIHRoZSB3aWNrZXtbJiomXX1kIHdob20gDQpoZSBjb25kZW1ucywgU2hha3NwZXJlIGRlbmllcyBubyBiZWF1dGlmdWwgb3IgdGVuZGVyIA0KdHJhaXQgOyBidXQge1smKiZdfWhlIGNvbmRlbW5zIHRoZW0gd2l0aG91dCByZXByaWV2ZS4gDQoNClRoZSBjaGFyYWN0ZXJzIGluIHRoZSBoaXN0b3JpY2FsIHBsYXl7WyYqJl19cyBhcmUgY29uY2VpdmVkIA0KY2hpZWZseSB3aXRoIHJlZmVyZW5jZSB0byBhY3Rpb24uIFRoZSB3b3JsZCByZXByZXNlbnRlZCANCntbJiomXX1pbiB0aGVzZSBwbGF5cyBpcyBub3Qgc28gbXVjaCB0aGUgd29ybGQgb2YgZmVlbGluZyBvciBvZiANCnRob3VnaHQgYXMgdGhlIGxpe1smKiZdfW1pdGVkIHdvcmxkIG9mIHRoZSBwcmFjdGljYWJsZS4gSW4gdGhlIA0KZ3JlYXQgdHJhZ2VkaWVzIHdlIGFyZSBjb25jZXJuZWQgbW97WyYqJl19cmUgd2l0aCB3aGF0IG1hbiBpcyANCnRoYW4gd2l0aCB3aGF0IGhlIGRvZXMuIEF0IHRoZSBjbG9zZSBvZiBlYWNoIHRyYWdlZHkgDXtbJiomXX0Kd2UgYXJlIGxlZnQgd2l0aCBhIF5lbnNlIG9mIG1lYXN1cmVsZXNzIGZhaWx1cmUsIG9yIHdpdGggDQp0aGUgc3Rlcm4gam95IG9me1smKiZdfSBhYnNvbHV0ZSBhbmQgY29uY2x1ZGVkIGF0dGFpbm1lbnQuIA0KVGhlcmUgaXMgc29tZXRoaW5nIGluZmluaXRlIGluIHRob3VnaHR7WyYqJl19IGFuZCBlbW90aW9uLiANCldlIGRvIG5vdCB0aGluayBzbyBmYXIsIGFuZCB0aGVuIHN0b3A7IGJleW9uZCB0aGUgDQprbm93biBvdXtbJiomXX1yIHRob3VnaHRzIG11c3QgdHJhdmVsIHVudGlsIHRoZXkgYXJlIGNvbmZyb250LSANCmVkIGJ5IHRoZSB1bmtub3dhYmxlLiBXZSBke1smKiZdfW8gbm90IGxvdmUsIHdlIGRvIG5vdCBzdWZsRWVyLCANCnNvIG11Y2ggYW5kIG5vIG1vcmU7IG91ciBsb3ZlIGlzIHdpdGhvdXQgbGl7WyYqJl19bWl0YXRpb24sIA0KYW5kIG91ciBhbmd1aXNoIGFuZCBvdXIgam95IGNhbm5vdCBiZSB3ZWlnaGVkIGluIHRoZSANCmJhbGFuY2VzIHtbJiomXX1vZiBlYXJ0aC4gQnV0IG91ciBkZWVkcyBhcmUgZGVmaW5pdGUgOyBhbmQgZWFjaCANCm1hbiwgd2hlbiB0ZXN0ZWQgYnkgZGVlZHMse1smKiZdfSBjYW4gYmUgYnJvdWdodCB0byBhIHBvc2l0aXZlIA0Kc3RhbmRhcmQuIFRoZSBxdWVzdGlvbiBpbiB0aGlzIGNhc2UgaXMgbm90LCB7WyYqJl19V2hhdCBoYXMgDQpiZWVuIHRoZSBsaWZlIG9mIHlvdXIgc291bCwgd2hhdCBoYXZlIHlvdSB0aG91Z2h0IGFuZCANCnN1ZmZlcmVkIHtbJiomXX1hbmQgZW5qb3llZCA/IFRoZSBxdWVzdGlvbiBpcywgV2hhdCBoYXZlIHlvdSANCmRvbmUgPyBBbmQgYWNjb3JkaW5nbHksIGluIHRoe1smKiZdfWUgaGlzdG9yaWNhbCBwbGF5cywgd2UgYXJlIA0KY29uc2Npb3VzIG9mIGEgY2VydGFpbiBsaW1pdGF0aW9uLCBhIGNlcnRhaW4gbWV7WyYqJl19YXN1cmluZyBvZiANCm1lbiBieSBwb3NpdGl2ZSBhY2hpZXZlbWVudHMgYW5kIHJlc3VsdHMgOiANCg0KXCIgQWN0aW9uIGlzIHRyYW57WyYqJl19c2l0b3J5IOKAlCBhIHN0ZXAsIGEgYmxvdywgDQpUaGUgbW90aW9uIG9mIGEgbXVzY2xlIOKAlCB0aGlzIHdheSBvciB0aGF0IOKAlHtbJiomXX0gDQoNCjEgNDggU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KKlRpcyBkb25lIDsgYW5kIGluIHRoZSBhZnRlci12e1smKiZdfWFjYW5jeSANCldlIHdvbmRlciBhdCBvdXJzZWx2ZXMgbGlrZSBtZW4gYmV0cmF5XCdkIDogDQpTdWZmZXJpbmcgaXMgcGVybWFuZW50e1smKiZdfSwgb2JzY3VyZSwgYW5kIGRhcmssIA0KQW5kIGhhcyB0aGUgbmF0dXJlIG9mIGluZmluaXR5LlwiIA0KDQpUaGUgaGlzdG9yaWVzLCBse1smKiZdfWlrZSB0aGUgdHJhZ2VkaWVzLCBhcmUgZm9yIHRoZSByZWFkZXIgYSBzY2hvb2wgDQpvZiBkaXNjaXBsaW5lIDsgYnV0IHRoZSBpc3N7WyYqJl19dWVzIHdpdGggd2hpY2ggdGhleSBkZWFsIGFyZSBub3QgDQp0aGUgaW5maW5pdGUgaXNzdWVzIG9mIGxpZmUgYW5kIGRlYXRoIDsgdHtbJiomXX1oZSBpbXByZXNzaW9uIGVhY2ggDQpsZWF2ZXMgYXQgdGhlIGNsb3NlIGlzIG5vdCBhbiBpbXByZXNzaW9uIG9mIG1lYXN1cmVsZXNze1smKiZdfSANCnBhdGhvcywgb3Igb2YgcGFpbiBkaXNzb2x2ZWQgaW4gcGVyZmVjdCBqb3kuIFRoZXkgZGVhbCANCndpdGggdGhlIGZpbml0ZSB7WyYqJl19aXNzdWVzIG9mIGZhaWx1cmUgb3Igc3VjY2VzcyBpbiB0aGUgYWNoaWV2LSANCmluZyBvZiBwcmFjdGljYWwgZW5kcyA7IGFuZCB0aHtbJiomXX1lIGZlZWxpbmcgd2hpY2ggdGhleSBsZWF2ZSANCndpdGggdXMgaXMgdGhhdCBvZiBhIHdob2xlc29tZSwgbXVuZGFuZSBwaXR5IGFue1smKiZdfWQgdGVycm9yLCANCm9yIGEgc2FuZSBhbmQgc3Ryb25nIG11bmRhbmUgc2F0aXNmYWN0aW9uLiANCg0KQnV0LCBpZiB0aGUgaGlzdG97WyYqJl19cmljYWwgcGxheXMgY2Fubm90IGNvbXBldGUgd2l0aCB0aGUgDQp0cmFnZWRpZXMgaW4gZGVwdGggb2Ygc3Bpcml0dWFsIHNpZ25pZntbJiomXX1pY2FuY2UsIHRoZXkgY29tcGVuLSANCnNhdGUgaW4gc29tZSBtZWFzdXJlIGZvciB0aGlzLCBhcyBHZXJ2aW51cyBoYXMgb2JzZXJ2e1smKiZdfWVkLCANCmJ5IHRoZWlyIGJyZWFkdGggYW5kIGNvbXByZWhlbnNpdmVuZXNzLiBUaGUgbGlmZSBvZiANCm1hbiwgZ29vZCBvciBldml7WyYqJl19bCwgaXMgbm90IHNlZW4gaW4gaXRzIGluZmluaXRlIHNpZ25pZmljYW5jZSANCmZvciB0aGUgaW5kaXZpZHVhbCwgYnV0IGl0cyBjb3tbJiomXX1uc2VxdWVuY2VzIGFyZSBzaG93biBpbiBhIA0KZGVmaW5pdGUgc2VyaWVzIG9mIGV2ZW50cywgYXMgYSBzYW5hdGl2ZSB2aXJ0dWUge1smKiZdfWluIHNvY2lldHksIA0Kb3IgYXMgYSBzcHJlYWRpbmcgaW5mZWN0aW9uLiBUaGUgbXlzdGVyeSBvZiBldmlsIGlzIG5vdCANCmhlcmV7WyYqJl19IGFuIGF3ZnVsIHNoYWRvdywgYmVmb3JlIHdoaWNoIHdlIHN0YW5kIGFwcGFsbGVkLCANCnN0cml2aW5nIHRvIGFjY2VwdCB0aGUgZHtbJiomXX1hcmtuZXNzIHdoaWNoIGlzIG5vdCB1bmRlcnN0b29kIA0KZm9yIHRoZSBsaWdodFwncyBzYWtlLCB3aGljaCBhdXRoZW50aWNhdGVzIHtbJiomXX1hbmQganVzdGlmaWVzIGl0LSANCnNlbGYuIEV2aWwgaW4gdGhlIGhpc3RvcmljYWwgcGxheXMgaXMgd3JvbmctZG9pbmcsIHdoaWNoe1smKiZdfSANCmlzIGZvbGxvd2VkIGJ5IGluZXZpdGFibGUgcmV0cmlidXRpb24uIFNpciBXYWx0ZXIgUmEtIA0KbGVpZ2gsIGluIHRoZSBwcmV7WyYqJl19ZmFjZSB0byB0aGUgXCIgSGlzdG9yeSBvZiB0aGUgV29ybGQsXCIgaGFzIA0KdHJhY2VkIGluIGEgcmVtYXJrYWJsZSBwYXNzYWdlLCB3e1smKiZdfXJpdHRlbiBwb3NzaWJseSB0byB2aW5kaS0gDQpjYXRlIGhpcyBvd24gb3J0aG9kb3h5LCB0aGUganVzdGljZSBvZiBHb2QgaW4gdGh7WyYqJl19ZSBsaXZlcyANCm9mIEVuZ2xpc2gga2luZ3MuIFwiIFdoYXRzb2V2ZXIgYSBtYW4gc293ZXRoLCB0aGF0IHNoYWxsIA0KaGUgYWxzbyB7WyYqJl19cmVhcCA7XCIgXCdeIFRoZSBzaW5zIG9mIHRoZSBmYXRoZXJzIHNoYWxsIGJlIHZpc2l0ZWQgDQp1cG9uIHRoZSBjaGlsZHJlbiB0byB0e1smKiZdfWhlIHRoaXJkIGFuZCBmb3VydGggZ2VuZXJhdGlvbiBcIiDigJQgDQp0aGVzZSBhcmUgdGhlIHRleHRzIG9mIFJhbGVpZ2hcJ3MgdGhlb3tbJiomXX1sb2d5IG9mIGhpc3RvcnkuIEdvLSANCmluZyBvdmVyIHRoZSBzYW1lIHBlcmlvZCBvZiBoaXN0b3J5LCBTaGFrc3BlcmUsIHdpdGgge1smKiZdfWFuIA0KdW5mYWx0ZXJpbmcgaGFuZCwgZXhwb3NlcyB0aGUgY29uc2VxdWVuY2VzIG9mIHdlYWtuZXNzLCANCg0KVGhlIEVuZ2xpc2h7WyYqJl19IEhpc3RvcmljYWwgUGxheXMuIDE0OSANCg0Kb2YgZXJyb3IsIGFuZCBvZiBjcmltZS4gT3VyIGdyZWF0ZXN0IGxpdmluZyBub3ZlbHtbJiomXX1pc3QgaGFzIA0KaW5zaXN0ZWQgd2l0aCBkcmVhZGZ1bCBlbXBoYXNpcyB1cG9uIHRoZSBpcnJlcGFyYWJsZSwgaXItIA0KcmV2ZXJze1smKiZdfWlibGUgaXNzdWUsIHN0aWxsIGRldmVsb3BpbmcgaXRzZWxmLCBvZiBldmVyeSBiYXNlIG9yIA0KZXZpbCBkZWVkLiBTaGFrc3BlcmV7WyYqJl19IGRlbmllcyBmYWN0IGFzIGxpdHRsZSBhcyBHZW9yZ2UgDQpFbGlvdC4gQnV0IGhlIHNob3dzIHVzIGFsc28gaG93IHRoZSBzb3VyY3tbJiomXX1lcyBvZiBnb29kIA0KYXJlIGluY2FsY3VsYWJsZTsgaGUgc2hvd3MgdXMgaG93IHRoZSBjb25zZXF1ZW5jZXMgb2YgDQppbGwgZGVle1smKiZdfWRzIG1heSwgYXQgYSBsYXRlciB0aW1lLCBiZSBjYXVnaHQgdXAgYnkgYSBmbG9vZCBvZiANCmJsZXNzaW5nLCBhbmQgbWF5IHJlYWx7WyYqJl19bHkgYmUgYm9ybmUgYXdheSBmb3JldmVyIGludG8gb2ItIA0KbGl2aW9uLiBJdCBpcywgaW5kZWVkLCBkZW1vbnN0cmFibHkgdHJ1ZXtbJiomXX0gdGhhdCB0aGUgcG93ZXIgDQp3aGljaCBzdXJ2aXZlcyBhbiBldmlsIGFjdCBjYW4gYmUgc3ViZHVlZCBvciB0cmFuc2Zvcm1lZCANe1smKiZdfQpvbmx5IGF0IHRoZSBleHBlbnNlIG9mIHNvIG11Y2ggb2YgdGhlIHZpcnR1b3VzIGZvcmNlIG9mIA0KdGhlIHdvcmxkLiBTdGlsbCB7WyYqJl19aXQgaXMgd2VsbCB0byBiZSBhc3N1cmVkIHRoYXQgZXZpbCwgZXZlbiANCmF0IHRoZSBleHBlbnNlIG9mIGdvb2QsIGNhbiBiZSBzdXtbJiomXX1iZHVlZCA7IHN1Y2ggYW4gYXNzdXItIA0KYW5jZSBidW95cyB1cyBhYm92ZSBkZXNwYWlyLiBJbiB0aGUgc3Rlcm4ganVzdGljZSBve1smKiZdfWYgDQpHZW9yZ2UgRWxpb3QgdGhlcmUgaXMgYSBjZXJ0YWluIGlkZWFsaXNtIHdoaWNoIHByb2NlZWRzIA0KZnJvbSBhIGRlc2lyZSB7WyYqJl19Zm9yIHNjaWVudGlmaWMgcmlnb3IsIGRlZmluaXRlbmVzcywgYW5kIGNlcnRpLSANCnR1ZGUuIFNoYWtzcGVyZSwgcG9zc2Vzc2luZ3tbJiomXX0gaGltc2VsZiBvZiB0aGUgY29uY3JldGUgZmFjdHMgDQpvZiB0aGUgd29ybGQgd2l0aCBhIGxhcmdlciBncmFzcCwgc2hvd3MgdXMge1smKiZdfXRoZSBtaW5nbGVkIA0Kd2ViIG9mIGdvb2QgYW5kIGV2aWwsIGFzIGl0IGFjdHVhbGx5IGlzIDsgYW5kIHRvIGRyYXcgdGhlIA0KdGh7WyYqJl19cmVhZHMgYXN1bmRlciwgYW5kIG9ic2VydmUgZWFjaCBvbmUgYXBhcnQgZnJvbSB0aGUgcmVzdCwgDQppcyBoYXJkbHkgbGVzcyBkaXtbJiomXX1maWljdWx0IHRvIGFjY29tcGxpc2ggaW4gU2hha3NwZXJlXCdzIHdvcmxkIA0Kb2YgaW1hZ2luYXRpb24gdGhhbiBpbiB0aGF0IG9mIHtbJiomXX10aGUgdmVyaXRhYmxlIGxpZmUgb2YgbWFuLiANClNldHRpbmcgYXNpZGUgSGVucnkgWUlJSSxeIGEgcGxheSB3cml0dGVuIHByb2Jhe1smKiZdfWJseSANCmZvciBzb21lIHNwZWNpYWwgb2NjYXNpb24sIG9yIHVwb24gc29tZSBzcGVjaWFsIG9jY2FzaW9uIA0KaGFuZGVkIG92ZXJ7WyYqJl19IHRvIHRoZSBkcmFtYXRpc3QgRmxldGNoZXIgdG8gY29tcGxldGUgOyBzZXQtIA0KdGluZyBhc2lkZSBhbHNvIHRoZSBzb21ld2hhdHtbJiomXX0gc2xpZ2h0IHNrZXRjaCBvZiBFZHdhcmQgSVYuIA0Kd2hpY2ggYXBwZWFycyBpbiBLaW5nIEhlbnJ5IFZJLl4gUGFydCBpaWkuLCBhe1smKiZdfW5kIGluIHRoZSANCm9wZW5pbmcgc2NlbmVzIG9mIEhpbmcgUmljaGFyZCBJSUxeIHNpeCBmdWxsLWxlbmd0aCANCnBvcnRyYWl0cyB7WyYqJl19b2Yga2luZ3Mgb2YgRW5nbGFuZCBoYXZlIGJlZW4gbGVmdCBieSBTaGFrLSANCnNwZXJlLiBUaGVzZSBzaXggZmFsbCBpbnRvIHR3b3tbJiomXX0gZ3JvdXBzIG9mIHRocmVlIGVhY2gg4oCUIA0Kb25lIGdyb3VwIGNvbnNpc3Rpbmcgb2Ygc3R1ZGllcyBvZiBraW5nbHkgd2Vha25le1smKiZdfXNzLCB0aGUgDQpvdGhlciBncm91cCBvZiBzdHVkaWVzIG9mIGtpbmdseSBzdHJlbmd0aC4gSW4gdGhlIG9uZSANCmdyb3VwIHN0YW57WyYqJl19ZCBLaW5nIEpvaG4sIEtpbmcgUmljaGFyZCBJSS4sIGFuZCBLaW5nIA0KSGVucnkgVkkuIDsgaW4gdGhlIG90aGVyIEtpbmcgSGVucntbJiomXX15IElWLiwgS2luZyBIZW5yeSANCnYuLCBhbmQgS2luZyBSaWNoYXJkIElJSS4gSm9obiBpcyB0aGUgcm95YWwgY3JpbWluYWwsIA0Ke1smKiZdfQ0KMSA1MCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQp3ZWFrIGluIGhpcyBjcmltaW5hbGl0eSA7IEhlbnJ5IFZ7WyYqJl19SS4gaXMgdGhlIHJveWFsIHNhaW50LCANCndlYWsgaW4gaGlzIHNhaW50bGluZXNzLiBUaGUgZmVlYmxlbmVzcyBvZiBSaWNoYXJkIHtbJiomXX1JSS4gDQpjYW5ub3QgYmUgY2hhcmFjdGVyaXplZCBpbiBhIHdvcmQgOyBoZSBpcyBhIGdyYWNlZnVsLCBzZW4tIA0KdGltZW50YWwge1smKiZdfW1vbmFyY2guIEtpY2hhcmQgSUlJLiwgaW4gdGhlIG90aGVyIGdyb3VwLCBpcyBhIA0Kcm95YWwgY3JpbWluYWwsIHN0cm9uZyBpbiB7WyYqJl19aGlzIGNyaW1lLiBIZW5yeSBJVi4sIHRoZSB1c3VycC0gDQppbmcgQm9saW5nYnJva2UsIGlzIHN0cm9uZyBieSBhIGZpbmUgY3JhZntbJiomXX10IGluIGRlYWxpbmcgd2l0aCANCmV2ZW50cywgYnkgcmVzb2x1dGlvbiBhbmQgcG9saWN5LCBieSBlcXVhbCBjYXV0aW9uIGFuZCANe1smKiZdfQpkYXJpbmcuIFRoZSBzdHJlbmd0aCBvZiBIZW5yeSBWLiBpcyB0aGF0IG9mIHBsYWluIGhlcm9pYyANCm1hZ25pdHVkZSwgdGhvcm97WyYqJl19dWdobHkgc291bmQgYW5kIHN1YnN0YW50aWFsLCBmb3VuZGVkIA0KdXBvbiB0aGUgZXRlcm5hbCB2ZXJpdGllcy4gSGVyZSwgdGhlbntbJiomXX0sIHdlIG1heSByZWNvZ25pemUgDQp0aGUgb25lIGRvbWluYW50IHN1YmplY3Qgb2YgdGhlIGhpc3RvcmllcyDigJQgdml6LiwgaG93e1smKiZdfSBhIG1hbiANCm1heSBmYWlsLCBhbmQgaG93IGEgbWFuIG1heSBzdWNjZWVkLCBpbiBhdHRhaW5pbmcgYSBwcmFjLSANCnRpY2FsIG17WyYqJl19YXN0ZXJ5IG9mIHRoZSB3b3JsZC4gVGhlc2UgcGxheXMgYXJlLCBhcyBTY2hsZWdlbCANCmhhcyBuYW1lZCB0aGVtLCBhIFwibWlycm97WyYqJl19ciBmb3Iga2luZ3M7XCIgYW5kIHRoZSBjaGFyYWMtIA0KdGVycyBvZiB0aGVzZSBwbGF5cyBhbGwgbGVhZCB1cCB0byBIZW5yeSBWLix7WyYqJl19IHRoZSBtYW4gDQpmcmFtZWQgZm9yIHRoZSBtb3N0IG5vYmxlIGFuZCBqb3lvdXMgbWFzdGVyeSBvZiB0aGluZ3MuIA0KDQpJLiANCntbJiomXX0NCkluIEtpbmcgSm9obiB0aGUgaG91ciBvZiB1dG1vc3QgZWJiIGluIHRoZSBuYXRpb25hbCANCmxpZmUgb2YgRW5nbGFuZCBpcyBpe1smKiZdfW52ZXN0aWdhdGVkIGJ5IHRoZSBpbWFnaW5hdGlvbiBvZiB0aGUgDQpwb2V0LiBUaGUga2luZyByZWlnbnMgbmVpdGhlciBieSB3YXJ7WyYqJl19cmFudCBvZiBhIGp1c3QgdGl0bGUsIA0KOmlvciwgbGlrZSBCb2xpbmdicm9rZSwgYnkgd2FycmFudCBvZiB0aGUgcmlnaHQgb2YgdHtbJiomXX1oZSANCnN0cm9uZ2VzdC4gSGUga25vd3MgdGhhdCBoaXMgaG91c2UgaXMgZm91bmRlZCB1cG9uIA0KdGhlIHNhbmQ7IGhlIGtub3dze1smKiZdfSB0aGF0IGhlIGhhcyBubyBqdXN0aWNlIG9mIEdvZCBhbmQgDQpubyB2aXJ0dWUgb2YgbWFuIG9uIHdoaWNoIHRvIHJlbHkuIFRoZXJ7WyYqJl19ZWZvcmUgaGUgYXMtIA0Kc3VtZXMgYW4gYWlyIG9mIGF1dGhvcml0eSBhbmQgcmVnYWwgZ3JhbmRldXIuIEJ1dCANCndpdGhpbiBhbHtbJiomXX1sIGlzIHJvdHRlbm5lc3MgYW5kIHNoYW1lLiBVbmxpa2UgdGhlIGJvbGQgDQp1c3VycGVyIFJpY2hhcmQsIEpvaG4gZW5kZWF2b3Jze1smKiZdfSB0byB0dXJuIGF3YXkgaGlzIGV5ZXMgDQpmcm9tIGZhY3RzIG9mIHdoaWNoIGhlIGlzIHlldCBhd2FyZSA7IGhlIGRhcmUgbm90IGd7WyYqJl19YXplIA0KaW50byBoaXMgb3duIHdyZXRjaGVkIGFuZCBjb3dhcmRseSBzb3VsLiBXaGVuIHRocmVhdC0gDQplbmVkIGJ5IEZyYW5jZXtbJiomXX0gd2l0aCB3YXIsIGFuZCBub3cgYWxvbmUgd2l0aCBoaXMgbW90aGVyLCANCkpvaG4gZXhjbGFpbXMsIG1ha2luZyBhbiBlZmZvcnQge1smKiZdfXRvIGZvcnRpZnkgaGlzIGhlYXJ0IDogDQoNClwiIE91ciBzdHJvbmcgcG9zc2Vzc2lvbiBhbmQgb3VyIHJpZ2h0IGZvciB1cy5cIiANCntbJiomXX0NCkJ1dCBFbGlub3IsIHdpdGggYSB3b21hblwncyBjb21eYWdlIGFuZCBkaXJlY3RuZXNzLCBmb3ItIA0KYmlkcyB0aGUgdW5hdmFpbHtbJiomXX1pbmcgc2VsZi1kZWNlaXQgOiANCg0KaSANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaWNhbCBQbGF5c1wnLiAxNTEgDQoNClwiIFlvdXIgc3R7WyYqJl19cm9uZyBwb3NzZXNzaW9uIG11Y2ggbW9yZSB0aGFuIHlvdXIgcmlnaHQsIA0KT3IgZWxzZSBpdCBtdXN0IGdvIHdyb25nIHdpdGggeXtbJiomXX1vdSBhbmQgbWUuXCJcIiANCg0KS2luZyBFaWNoYXJkLCB3aGVuIGhlIHdvdWxkIG5hYWtlIGF3YXkgd2l0aCB0aGUgeW91bmcgDQpwcml7WyYqJl19bmNlcywgc3VtbmFvbnMgVHlycmVsIHRvIGhpcyBwcmVzZW5jZSwgYW5kIGlucXVpcmVzLCANCndpdGggY3luaWNhbCBpbmRpZmZlcntbJiomXX1lbmNlIHRvIGh1bWFuIHNlbnRpbWVudCwgDQoNClwiRGFyXCdzdCB0aG91IHJlc29sdmUgdG8ga2lsbCBhIGZyaWVuZCBvZiBtaW5lID97WyYqJl19XCIgDQoNCmFuZCB3aGVuIFR5cnJlbCBhY2NlcHRzIHRoZSBjb21taXNzaW9uLCBSaWNoYXJkLCBpbiBhIA0KbW9tZW50IG9mIHVuZGl7WyYqJl19c2d1aXNlZCBleHVsdGF0aW9uLCBicmVha3MgZm9ydGggd2l0aCANClwiIFRob3Ugc2luZ1wnc3Qgc3dlZXQgbXVzaWMgIVwiIEpvaG4gd3tbJiomXX1vdWxkIGluc3BpcmUgSHUtIA0KYmVydCB3aXRoIGhpcyBtdXJkZXJvdXMgcHVycG9zZSByYXRoZXIgbGlrZSBzb21lIHZhZ3VlIA0Ke1smKiZdfWluZmx1ZW5jZSB0aGFuIGxpa2UgYSBwZXJzb25hbCB3aWxsLCBvYnNjdXJlbHkgYXMgc29tZSBwYWxlIA0KbWlzdCB3b3JrcyB3aGl7WyYqJl19Y2ggY3JlZXBzIGFjcm9zcyB0aGUgZmllbGRzLCBhbmQgbGVhdmVzIA0KYmxpZ2h0IGJlaGluZCBpdCBpbiB0aGUgc3Vuc2hpbmUuIHtbJiomXX1IZSB0cmVtYmxlcyBsZXN0IGhlIA0Kc2hvdWxkIGhhdmUgc2FpZCB0b28gbXVjaCA7IGhlIHRyZW1ibGVzIGxlc3QgaGUgc2hvdWxke1smKiZdfSANCm5vdCBoYXZlIHNhaWQgZW5vdWdoIDsgYXQgbGFzdCB0aGUgbmVhcmVyIGZlYXIgcHJldmFpbHMsIA0KYW5kIHRoZSB3b3JkcyB7WyYqJl19XCIgZGVhdGgsXCIgXCIgYSBncmF2ZSxcIiBmb3JtIHRoZW1zZWx2ZXMgdXBvbiANCmhpcyBsaXBzLiBIYXZpbmcgdG91Y2hlZCBhIHNwcml7WyYqJl19bmcgd2hpY2ggd2lsbCBwcm9kdWNlIA0KYXNzYXNzaW5hdGlvbiwgaGUgZnVydGl2ZWx5IHdpdGhkcmF3cyBoaW1zZWxmIGZyb20gdHtbJiomXX1oZSANCm1lY2hhbmlzbSBvZiBjcmltZS4gSXQgc3VpdHMgdGhlIEtpbmctXCdzIGludGVyZXN0IGFmdGVyLSANCndhcmRzIHRoYXQgQXtbJiomXX1ydGh1ciBzaG91bGQgYmUgbGl2aW5nLCBhbmQgSm9obiBhZGRzIHRvIA0KaGlzIGNyaW1lIHRoZSBiYXNlbmVzcyBvZiBhIG1pc2Vye1smKiZdfWFibGUgYXR0ZW1wdCBieSBjaGljYW4tIA0KZXJ5IGFuZCB0aW1vcm91cyBzb3BoaXNtcyB0byB0cmFuc2ZlciB0aGUgcmVzcG9uc2l7WyYqJl19YmlsaXR5IA0Kb2YgbXVyZGVyIGZyb20gaGltc2VsZiB0byBoaXMgaW5zdHJ1bWVudCBhbmQgYWNjb21wbGljZS4gDQpIZSB3b3VsZHtbJiomXX0gZmFpbiBkYXJrZW4gdGhlIGV5ZXMgb2YgaGlzIGNvbnNjaWVuY2UgYW5kIG9mIA0KaGlzIHVuZGVyc3RhbmRpbmcuIA0KDQpUaGUge1smKiZdfXNob3cgb2Yga2luZ2x5IHN0cmVuZ3RoIGFuZCBkaWduaXR5IGluIHdoaWNoIA0KSm9obiBpcyBjbG90aGVkIGluIHRoZSBlYXJsaWV7WyYqJl19ciBzY2VuZXMgb2YgdGhlIHBsYXkgbXVzdCANCnRoZXJlZm9yZSBiZSByZWNvZ25pemVkIChhbHRob3VnaCBTaGFrc3BlcmUgZG9lc3tbJiomXX0gbm90IA0Kb2J0cnVkZSB0aGUgZmFjdCkgYXMgbm8gbW9yZSB0aGFuIGEgcG9vciBwcmV0ZW5jZSBvZiB0cnVlIA0KcmVnYWwgc3Rye1smKiZdfWVuZ3RoIGFuZCBob25vci4gVGhlIGZhY3QsIG9ubHkgaGludGVkIGluIHRoZXNlIA0KZWFybGllciBzY2VuZXMsIGJlY29tZXMgYWZ7WyYqJl19dGVyd2FyZHMgYWxsIHRoZSBtb3JlIGltcHJlc3NpdmUsIA0Kd2hlbiB0aGUgdGltZSBjb21lcyB0byBzaG93IHRoaXMgZGFzdGFyZHtbJiomXX0ga2luZywgd2hvIGhhZCANCmJlZW4gc28gZ3JlYXQgaW4gdGhlIGJhcnRlciBvZiB0ZXJyaXRvcnksIGluIHRoZSBzYWxlIG9mIA0Ke1smKiZdfWNpdGllcywgaW4gdGhlIHNhY3JpZmljZSBvZiBsb3ZlIGFuZCBtYXJyaWFnZS10cnV0aCB0byBwb2xpLSANCmN5LCBub3cgY2hhbmd7WyYqJl19aW5nIGZyb20gcGFsZSB0byByZWQgaW4gdGhlIHByZXNlbmNlIG9mIA0KDQoxNTIgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXtbJiomXX1ydC4gDQoNCmhpcyBvd24gbm9ibGVzLCBub3cgdmFpbmx5IHRyeWluZyB0byB0cmVhZCBiYWNrIHRoZSBwYXRoIA0Kb2YgY3JpbWUse1smKiZdfSBub3cgaW5jYXBhYmxlIG9mIGVuZHVyaW5nIHRoZSBwaHlzaWNhbCBzdWZmZXJpbmcgDQpvZiB0aGUgaG91ciBvZiBkZWF0aC4gU2V7WyYqJl19bnNpYmxlIHRoYXQgaGUgaXMgYSBraW5nIHdpdGggbm8gDQppbndhcmQgc3RyZW5ndGggb2YganVzdGljZSBvciBvZiB2aXJ0dWUsIHtbJiomXX1Kb2huIGVuZGVhdm9ycyANCnRvIGJ1dHRyZXNzIHVwIGhpcyBwb3dlciB3aXRoIGV4dGVybmFsIHN1cHBvcnRzIDsgYWdhaW5zdCANe1smKiZdfQp0aGUgYWR2aWNlIG9mIGhpcyBub2JsZXMgaGUgY2VsZWJyYXRlcyBhIHNlY29uZCBjb3JvbmF0aW9uLCANCm9ubHkgZm9ydGh3aXR7WyYqJl19aCB0byByZW1vdmUgdGhlIGNyb3duIGZyb20gaGlzIGhlYWQgYW5kIA0KcGxhY2UgaXQgaW4gdGhlIGhhbmRzIG9mIGFuIEl0YWxpYXtbJiomXX1uIHByaWVzdC4gUGFuZHVscGgsIFwiIG9mIA0KZmFpciBNaWxsYWluZSBjYXJkaW5hbCxcIiB3aG8gcG9zc2Vzc2VzIHRoZSBhc3R1dGV7WyYqJl19bmVzcyBhbmQgDQpza2lsbCB0byBkaXJlY3QgdGhlIHZhcmlvdXMgY29uZmxpY3RpbmcgZm9yY2VzIG9mIHRoZSB0aW1lIHRvIA0KaHtbJiomXX1pcyBvd24gYWR2YW50YWdlIOKAlCBQYW5kdWxwaCBpcyB0aGUgZGUgZmFjdG8gbWFzdGVyIG9mIA0KRW5nbGFuZCwgYW5kLCBhcyBoe1smKiZdfWUgcGxlYXNlcywgbWFrZXMgcGVhY2Ugb3IgYW5ub3VuY2VzIA0Kd2FyLiANCg0KVGhlIGNvdW50cnksIGFzIGluIHBlcmlvZHMgb2Z7WyYqJl19IGRvdWJ0IGFuZCBkYW5nZXIsIHdhcyANClwnXiBwb3NzZXNzZWQgd2l0aCBydW1vcnMsIGZ1bGwgb2YgaWRsZSBkcmVhbXMuXCIgUGV0e1smKiZdfWVyIG9mIA0KUG9tZnJldCBoYWQgYW5ub3VuY2VkIHRoYXQgYmVmb3JlIEFzY2Vuc2lvbi1kYXkgYXQgDQpub29uIHRoZSBLaW5nIHN7WyYqJl19aG91bGQgZGVsaXZlciB1cCBoaXMgY3Jvd24uIEpvaG4gc3ViLSANCm1pdHMgdG8gdGhlIGRlZ3JhZGF0aW9uIGRlbWFuZGVkIG9mIHtbJiomXX1oaW0sIGFuZCBoYXMgdGhlIA0KaW5jcmVkaWJsZSBiYXNlbmVzcyB0byBiZSBwbGVhc2VkIHRoYXQgaGUgaGFzIGRvbmUgc28gb2Yge1smKiZdfQ0KaGlzIG93biBmcmVlLXdpbGwgOiANCg0KXCIgSXMgdGhpcyBBc2NlbnNpb24tZGF5ID8gZGlkIG5vdCB0aGUgcHJvcGhldCANClNhe1smKiZdfXkgdGhhdCBiZWZvcmUgQXNjZW5zaW9uLWRheSBhdCBub29uIA0KTXkgY3Jvd24gSSBzaG91bGQgZ2l2ZSBvZmYgPyBFdmVuIHNvIEl7WyYqJl19IGhhdmUuIA0KSSBkaWQgc3VwcG9zZSBpdCBzaG91bGQgYmUgb24gY29uc3RyYWludCA7IA0KQnV0LCBIZWF2ZW4gYmUgdGhhbmtcJ2R7WyYqJl19ICEgaXQgaXMgYnV0IHZvbHVudGFyeS5cIiANCg0KQWZ0ZXIgdGhpcywgd2UgYXJlIG5vdCBzdXJwcmlzZWQgdGhhdCB3aGVuIHRoZSB7WyYqJl19QmFzdGFyZCANCmVuZGVhdm9ycyB0byByb3VzZSBoaW0gdG8gbWFubGluZXNzIGFuZCByZXNvbHV0aW9uIOKAlCANCg0KXCIgQXdheSB7WyYqJl19YW5kIGdsaXN0ZXIgbGlrZSB0aGUgZ29kIG9mIHdhciANCldoZW4gaGUgaW50ZW5kZXRoIHRvIGJlY29tZSB0aGUgZmllbGQgXCIg4oB7WyYqJl19lCANCg0KSm9obiBpcyBub3QgYXNoYW1lZCB0byBhbm5vdW5jZSB0aGUgXCJoYXBweSBwZWFjZVwiIA0Kd2hpY2ggaGUgaGFzIG1hZGUge1smKiZdfXdpdGggdGhlIHBhcGFsIGxlZ2F0ZSwgb24gd2hvbSBoZSANCnJlbGllcyBmb3IgcHJvdGVjdGlvbiBhZ2FpbnN0IHRoZSBpbnZhZGV7WyYqJl19cnMgb2YgRW5nbGFuZC4gDQpGYXVsY29uYnJpZGdlIHN0aWxsIHVyZ2VzIHRoZSBkdXR5IG9mIGFuIGVmZm9ydCBhdCBzZWxmLWRlLXtbJiomXX0gDQpmZW5jZSBmb3IgdGhlIHNha2Ugb2YgaG9ub3IgYW5kIG9mIHNhZmV0eTsgYW5kIHRoZSBLaW5nXiANCmluY2FwYWJsZSBvZiBhe1smKiZdfWNjZXB0aW5nIGhpcyBvd24gcmVzcG9uc2liaWxpdGllcyBhbmQgcHJpdiANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaWNhbCBQbGF5cy57WyYqJl19IDE1MyANCg0KaWxlZ2VzLCBoYW5kcyBvdmVyIHRoZSBjYXJlIG9mIEVuZ2xhbmQgdG8gaGlzIGlsbGVnaXRpbWF0ZSANCm5lcGhld3tbJiomXX0gOiBcIiBIYXZlIHRob3UgdGhlIG9yZGVyaW5nIG9mIHRoaXMgcHJlc2VudCB0aW1lLlwiIA0KVGhlcmUgaXMgbGl0dGxlIGluIHRoZSB7WyYqJl19cGxheSBvZiBLaW5nIEpvaG4gd2hpY2ggc3RyZW5ndGgtIA0KZW5zIG9yIGdsYWRkZW5zIHRoZSBoZWFydC4gSW4gdGhlIHR1ZyBvZntbJiomXX0gc2VsZmlzaCBwb3dlciANCmhpdGhlciBhbmQgdGhpdGhlciwgYW1pZHN0IHRoZSBzdHJ1Z2dsZSBvZiBraW5nbHkgZ3JlZWRzIA0Ke1smKiZdfWFuZCBwcmllc3RseSBwcmlkZSwgYW1pZHN0IHRoZSBzYWxlcyBvZiBjaXRpZXMsIHRoZSBsb3ZlbGVzcyANCm1hcnJpYWdlIG9mIHB7WyYqJl19cmluY2VzLCB0aGUgcnVtb3JzIGFuZCBjb25mdXNpb24gb2YgdGhlIA0KcGVvcGxlLCBhIHBhdGhldGljIGJlYXV0eSBpbGx1bWluZXtbJiomXX1zIHRoZSBib3lpc2ggZmlndXJlIG9mIA0KQXJ0aHVyLCBzbyBncmFjaW91cywgc28gcGFzc2l2ZSwgdW50b3VjaGVkIGJ5IHRoZSBhe1smKiZdfWR1bHQgDQpyYXBhY2l0aWVzIGFuZCBjcmltZXMgb2YgdGhlIG90aGVycyA6IA0KDQpcIiBHb29kLCBteSBtb3RoZXIsIHBlYWNlICEge1smKiZdfQ0KSSB3b3VsZCB0aGF0IEkgd2VyZSBsb3cgbGFpZCBpbiBteSBncmF2ZSA7IA0KSSBhbSBub3Qgd29ydGggdGhpcyBjb2lsIHRoYXR7WyYqJl19XCdzIG1hZGUgZm9yIG1lLlwiIA0KDQpUaGUgdm9pY2Ugb2YgbWF0ZXJuYWwgcGFzc2lvbiwgYSB3b21hblwncyB2b2ljZSwgaW1wby0gDXtbJiomXX0KdGVudCBhbmQgc2hyaWxsLCBhbW9uZyB0aGUgdW5oZWVkaW5nIG1hbGUgZm9yY2VzLCBnb2VzIA0KdXAgYWxzbyBmcm9tIHRoZSBwe1smKiZdfWxheS4gVGhlcmUgaXMgdGhlIHBpdHkgb2Ygc3Rlcm4gYXJtZWQgDQptZW4gZm9yIHRoZSBydWluIG9mIGEgY2hpbGRcJ3MgbGlmZS4ge1smKiZdfVRoZXNlLCBhbmQgdGhlIGJvaXMtIA0KdGVyb3VzIGJ1dCBnZW51aW5lIGFuZCBoZWFydHkgcGF0cmlvdGlzbSBvZiBGYXVsY29uLSB7WyYqJl19DQpicmlkZ2UsIGFyZSB0aGUgb25seSBwcmVzZW5jZXMgb2YgaHVtYW4gdmlydHVlIG9yIGJlYXV0eSANCndoaWNoIGFyZSB0byBiZXtbJiomXX0gcGVyY2VpdmVkIGluIHRoZSBkZWdlbmVyYXRlIHdvcmxkIGRlLSANCnBpY3RlZCBieSBTaGFrc3BlcmUuIEFuZCB0aGUgZW5kLCBse1smKiZdfWlrZSB3aGF0IHByZWNlZGVkIA0KaXQsIGlzIG1pc2VyYWJsZS4gVGhlIEtpbmcgbGllcyBwb2lzb25lZCwgb3Zlcm1hc3RlcmVkIGJ7WyYqJl19eSANCm1lcmUgcGh5c2ljYWwgYWdvbnkg4oCUIGFnb255IHdoaWNoIGxlYXZlcyBsaXR0bGUgcm9vbSBmb3IgDQphbnkgcGFuZ3Mgb3tbJiomXX1mIGNvbnNjaWVuY2UsIHdlcmUgdGhlIHBhbHNpZWQgbW9yYWwgbmF0dXJlIA0Kb2YgdGhlIGNyaW1pbmFsIGNhcGFibGUgb2Ygc3Vje1smKiZdfWggbm9ibGVyIHN1ZmZlcmluZyA6IA0KDQpcIiBJIGFtIGEgc2NyaWJibGVkIGZvcm0sIGRyYXduIHdpdGggYSBwZW4gDQpVcG9uIGEge1smKiZdfXBhcmNobWVudCwgYW5kIGFnYWluc3QgdGhpcyBmaXJlIA0KRG8gSSBzaHJpbmsgdXAuXCIgDQoNCm4uIA0KDQpXaGV0aGVyIGFueSBwe1smKiZdfW9ydGlvbnMgb2YgdGhlIGZpcnN0IHBhcnQgb2YgSGVucnkgVkkuIA0KYmUgZnJvbSB0aGUgaGFuZCBvZiBTaGFrc3BlcmUsIGFuZCx7WyYqJl19IGlmIHRoZXJlIGJlLCB3aGF0IA0KdGhvc2UgcG9ydGlvbnMgYXJlLCBuZWVkIG5vdCBiZSBoZXJlIGludmVzdGlnYXRlZC4gVGhlIHtbJiomXX0NCnBsYXkgYmVsb25ncywgaW4gdGhlIG1haW4sIHRvIHRoZSBwcmUtU2hha3NwZXJpYW4gc2Nob29sLiANClNoYWtzcGVyZSBmaW5ke1smKiZdfXMgaGlzIG93biBnZW5pdXMgZm9yIHRoZSBkcmFtYXRpYyByZW5kZXItIA0KDQoxIDU0IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW57WyYqJl19ZCBBcnQuIA0KDQppbmcgb2YgaGlzdG9yeSBmb3IgdGhlIGZpcnN0IHRpbWUgZGlzdGluY3RseSBpbiB0aGUgc2Vjb25kIA0KYW5kIHtbJiomXX10aGlyZCBwYXJ0cyBvZiBIZW5yeSBWSS4gVGhlIHdyaXRlciBvZiB0aGUgZmlyc3QgDQpwYXJ0IGRvZXMgbm90IHN0YW5kIGFib3Zle1smKiZdfSB0aGUgY2hhcmFjdGVycyB3aGljaCBoZSBjcmUtIA0KYXRlcyA7IGhlIGlzIHZpb2xlbnRseSBwcmVqdWRpY2VkIGFnYWluc3Qgc297WyYqJl19bWUsIGFuZCBoZSBmZWVscyANCmEgbHlyaWNhbCBkZWxpZ2h0IGluIHNpbmdpbmcgdGhlIHByYWlzZXMgb2Ygb3RoZXJzLiBCdXQgaXtbJiomXX1uIA0KdGhlIHRyZWF0bWVudCBvZiB0aGUgY2hhcmFjdGVycyBvZiB0aGUgS2luZywgb2YgR2xvc3RlciwgDQpvZiBZb3JrLCBvZiBSe1smKiZdfWljaGFyZCwgaW4gdGhlIGxhdGVyIHBhcnRzIG9mIHRoZSB0cmlsb2d5IHRoZSANClNoYWtzcGVyaWFuIGltcGFydGlhbGl0eSBhbmR7WyYqJl19IGlyb255IGFyZSBjbGVhcmx5IGRpc2Nlcm4tIA0KaWJsZS4gU2hha3NwZXJlIGRvZXMgbm90IGhhdGUgS2luZyBIZW5yeSA7IGhlIHtbJiomXX1pcyBhcyBmYS0gDQp2b3JhYmx5IGRpc3Bvc2VkIHRvIGhpbSBhcyBpcyBwb3NzaWJsZSA7IGJ1dCBoZSBzYXlzLCB3aXRoIA0KdGhle1smKiZdfSBzYW1lIGNsZWFyIGFuZCBkZWZpbml0ZSBleHByZXNzaW9uIGluIHdoaWNoIHRoZSBoaXMtIA0KdG9yaWNhbCBmYWN0IHV0dGVyZWR7WyYqJl19IGl0c2VsZiwsIHRoYXQgdGhpcyBzYWludCBvZiBhIGZlZWJsZSB0eXBlIA0KdXBvbiB0aGUgdGhyb25lIG9mIEVuZ2xhbmQgd2FzIHtbJiomXX1hIGN1cnNlIHRvIHRoZSBsYW5kIGFuZCANCnRvIHRoZSB0aW1lIG9ubHkgbGVzcyB0aGFuIGEgcm95YWwgY3JpbWluYWwgYXMgd2Vhe1smKiZdfWsgYXMgDQpIZW5yeSB3b3VsZCBoYXZlIGJlZW4uIA0KDQpUaGUgaGVyb2ljIGRheXMgb2YgdGhlIGZpZnRoIEhlbnJ5LCB3aGVuIHR7WyYqJl19aGUgcGxheSANCm9wZW5zLCBiZWxvbmcgdG8gdGhlIHBhc3QgOyBidXQgdGhlaXIgbWVtb3J5IHN1cnZpdmVzIGluIA0KdGhlIGhlYXtbJiomXX1ydHMgYW5kIGluIHRoZSB2aWdvcm91cyBtdXNjbGVzIG9mIHRoZSBncmVhdCBsb3JkcyANCmFuZCBlYXJscyB3aG8gc3Vycm91bmQge1smKiZdfXRoZSBLaW5nLiBIZSBvbmx5LCB3aG8gbW9zdCANCnNob3VsZCBoYXZlIHRyZWFzdXJlZCBhbmQgYXVnbWVudGVkIGhpcyBpbmhlcml7WyYqJl19dGFuY2Ugb2YgDQpnbG9yeSBhbmQgb2YgcG93ZXIsIGlzIGluc2Vuc2libGUgdG8gdGhlIGxhcmdlIHJlc3BvbnNpYmlsLSANCml0aXtbJiomXX1lcyBhbmQgcHJpdmlsZWdlcyBvZiBoaXMgcGxhY2UuIEhlIGlzIGNvbGQgaW4gZ3JlYXQgYWYtIA0KZmFpcnMgOyBoaXMgc3VwcmVte1smKiZdfWUgY29uY2VybiBpcyB0byByZW1haW4gYmxhbWVsZXNzLiBGcmVlIA0KZnJvbSBhbGwgZ3JlZWRzIGFuZCBhbWJpdGlvbnMsIGhlIHl7WyYqJl19ZXQgaXMgcG9zc2Vzc2VkIGJ5IA0KZWdvaXNtLCB0aGUgZWdvaXNtIG9mIHRpbWlkIHNhaW50bGluZXNzLiBIaXMgdmlydHVlIGlzIHtbJiomXX0NCm5lZ2F0aXZlLCBiZWNhdXNlIHRoZXJlIGlzIG5vIHZpZ29yb3VzIGJhc2lzIG9mIG1hbmhvb2QgDQp3aXRoaW4gaGltIG91dCBve1smKiZdfWYgd2hpY2ggaGVyb2ljIHNhaW50bGluZXNzIG1pZ2h0IGRldmVsb3AgDQppdHNlbGYuIEZvciBmZWFyIG9mIHdoYXQgaXMgd3Jvbmd7WyYqJl19LCBoZSBzaHJpbmtzIGZyb20gd2hhdCANCmlzIHJpZ2h0LiBUaGlzIGlzIG5vdCB0aGUgdmlydHVlIGFzY3JpYmVkIHRvIHRoZSBuZXtbJiomXX1hcmVzdCANCmZvbGxvd2VycyBvZiBcIiB0aGUgRmFpdGhmdWwgYW5kIFRydWUgXCIgd2hvIGluIGhpcyByaWdodC0gDQplb3VzbmVzcyB7WyYqJl19ZG90aCBqdWRnZSBhbmQgbWFrZSB3YXIuIEhlbnJ5IGlzIHBhc3NpdmUgaW4gDQp0aGUgcHJlc2VuY2Ugb2YgZXZpbCwgYW5kIHdlZXtbJiomXX1wcy4gSGUgd291bGQga2VlcCBoaXMgZ2FyLSANCm1lbnRzIGNsZWFuIDsgYnV0IHRoZSBnYXJtZW50cyBvZiBHb2RcJ3Mgc29sZGllcntbJiomXX0tc2FpbnRzLCANCndobyBkbyBub3QgZmVhciB0aGUgc29pbHMgb2Ygc3RydWdnbGUsIGdsZWFtIHdpdGggYSBoaWdoLSANCmVyLCBpe1smKiZdfW50ZW5zZXIgcHVyaXR5LiBcIiBIaXMgZXllcyB3ZXJlIGFzIGEgZmlhbWUgb2YgZmlyZSwgDQoNClRoZSBFbmdsaXNoIEhpc3Rvcmlje1smKiZdfWFsIFBsYXlzLiAxNTUgDQoNCmFuZCBvbiBoaXMgaGVhZCB3ZXJlIG1hbnkgY3Jvd25zIDsgLiAuIC4gYW5kIHRoZSBhcm1pZXMgDQp7WyYqJl19d2hpY2ggd2VyZSBpbiBoZWF2ZW4gZm9sbG93ZWQgaGltIHVwb24gd2hpdGUgaG9yc2VzLCANCmNsb3RoZWQgaW4gZmluZSBsaW5lbntbJiomXX0sIHdoaXRlIGFuZCBjbGVhbi5cIiBUaGVzZSBzb2xkaWVycyANCmluIGhlYXZlbiBoYXZlIHRoZWlyIHJlcHJlc2VudGF0aXZlcyBpbntbJiomXX0gZWFydGgsIGFuZCBIZW5yeSANCndhcyBub3Qgb25lIG9mIHRoZXNlLiBaZWFsIG11c3QgY29tZSBiZWZvcmUgY2hhcml0eSwgDQphe1smKiZdfW5kIHRoZW4gd2hlbiBjaGFyaXR5IGNvbWVzIGl0IHdpbGwgYXBwZWFyIGFzIGEgc2VsZi1kZS0gDQpuaWFsLlwiXiBCdXQgSGVucnkge1smKiZdfWtub3dzIG5vdGhpbmcgb2YgemVhbDsgYW5kIGhlIGlzIA0KYW1pYWJsZSwgbm90IGNoYXJpdGFibGUuIA0KDQpUaGVyZSBpcyBzb217WyYqJl19ZXRoaW5nIG9mIGlyb255IGluIHRoZSBzY2VuZSB3aXRoIHdoaWNoIA0KdGhlIHNlY29uZCBwYXJ0IG9mIEhlbnJ5IFZJLiBvcGVuc3tbJiomXX0uIFN1ZmZvbGssIHRoZSBMYW5jZS0gDQpsb3Qgb2YgdGhpcyB0cmFnZWR5LCBoYXMgYnJvdWdodCBmcm9tIEZyYW5jZSB0aGUgUHJpe1smKiZdfW5jZXNzIA0KTWFyZ2FyZXQsIGFuZCB0aGUgam95IG9mIHRoZSBibGFtZWxlc3MgS2luZywgdXBvbiByZWNlaXYtIA0KaW5nLCBhdCB7WyYqJl19dGhlIGNvc3Qgb2YgdHdvIGhhcmQtd29uIHByb3ZpbmNlcywgdGhpcyB0ZXJyaWJsZSANCndpZmUsIHdobyB3aWxsIFwiIGRhbmRsZSB7WyYqJl19aGltIGxpa2UgYSBiYWJ5LFwiIGhhcyBpbiBpdCBzb21lLSANCnRoaW5nIHBpdGlhYmxlLCBzb21ldGhpbmcgcGF0aGV0aWMsIGFuZCB7WyYqJl19c29tZXRoaW5nIGx1ZGktIA0KY3JvdXMuIFRoZSByZWxhdGlvbnMgb2YgdGhlIEtpbmcgdG8gTWFyZ2FyZXQgdGhyb3VnaC0gDQpvdXtbJiomXX10IHRoZSBwbGF5IGFyZSBkZWxpY2F0ZWx5IGFuZCBwcm9mb3VuZGx5IGNvbmNlaXZlZC4gDQpIZSBjbGluZ3MgdG8gaGVyIGFzIHRve1smKiZdfSBzb21ldGhpbmcgc3Ryb25nZXIgdGhhbiBoaW1zZWxmIDsgDQpoZSBkcmVhZHMgaGVyIGFzIGEgYm95IG1pZ2h0IGRyZWFkIHNvbWV7WyYqJl19IGZvcm1pZGFibGUgDQptYXN0ZXIgOiANCg0KXCIgRXhldGVyLiBIZXJlIGNvbWVzIHRoZSBRdWVlbiwgd2hvc2UgbG9va3MgYmV0cmF7WyYqJl19eSBoZXIgYW5nZXIgOiANCklcJ2xsIHN0ZWFsIGF3YXkuIA0KDQpIZW5yeSwgQW5kIHNvIHdpbGwgSS5cIiANCg0KWWV0IHRocm91Z2gge1smKiZdfWhpcyBvd24gZnJlZWRvbSBmcm9tIHBhc3Npb24gaGUgZGVyaXZlcyBhIA0Kc2Vuc2Ugb2Ygc3VwZXJpb3JpdHkgdG8gaGlzIHdpZmV7WyYqJl19IDsgYW5kIGFmdGVyIHNoZSBoYXMgZGFzaGVkIA0KaGltIGFsbCBvdmVyIHdpdGggdGhlIHNwcmF5IG9mIGhlciB2aW9sZW50IGFuZ3tbJiomXX1lciBhbmQgaGVyIA0Kc2Nvcm4sIEhlbnJ5IG1heSBiZSBzZWVuIG1pbGRseSB3aXBpbmcgYXdheSB0aGUgZHJvcHMsIA0KaW5zdWZme1smKiZdfWVyYWJseSBwbGFjYWJsZSwgb2ZmZXJpbmcgZXhjdXNlcyBmb3IgdGhlIHZpdHVwZXJhLSANCnRpb24gYW5kIHRoZSBpbnN1bHRzIHd7WyYqJl19aGljaCBoZSBoYXMgcmVjZWl2ZWQgOiANCg0KXCIgUG9vciBRdWVlbiwgaG93IGxvdmUgdG8gbWUgYW5kIHRvIGhlciBzb24gDQpIYXR7WyYqJl19aCBtYWRlIGhlciBicmVhayBvdXQgaW50byB0ZXJtcyBvZiByYWdlICFcIiANCg0KQW1vbmcgaGlzIFwiIHdvbGZpc2ggZWFybHMgXCIgSHtbJiomXX1lbnJ5IGlzIGluIGNvbnN0YW50IHRlci0gDQoqIEouIEguIE5ld21hbiwgXCIgVmVyc2VzIG9uIFZhcmlvdXMgT2FjYXNpb25zLFwiIHB7WyYqJl19LiA2MC4gDQoNCjE1NiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpyb3IsIG5vdCBvZiBiZWluZyBoaW1zZWxmIHtbJiomXX10b3JuIHRvIHBpZWNlcywgYnV0IG9mIHRoZWlyIGZseS0gDQppbmcgYXQgb25lIGFub3RoZXJcJ3MgdGhyb2F0cy4gVmlvbGVudCBzY3tbJiomXX1lbmVzLCBkaXN0dXJiaW5nIA0KdGhlIGNsb2lzdHJhbCBwZWFjZSB3aGljaCBpdCB3b3VsZCBwbGVhc2UgaGltIHRvIHNlZSByZWlne1smKiZdfW4gDQp0aHJvdWdob3V0IHRoZSB1bml2ZXJzZSwgYXJlIGhhdGVmdWwgYW5kIHRlcnJpYmxlIHRvIEhlbi0gDQpyeS4gSGUgcmlkZXN7WyYqJl19IG91dCBoYXdraW5nIHdpdGggaGlzIFF1ZWVuIGFuZCBTdWZmb2xrLCANCnRoZSBDYXJkaW5hbCBhbmQgR2xvc3RlciA7IHNvbWUgb3tbJiomXX1mIHRoZSByaWRlcnMgaGFyZGx5IGFibGUgDQpmb3IgYW4gaG91ciB0byBjb25jZWFsIHRoZWlyIGVtdWxhdGlvbiBhbmQgdGhlaXIge1smKiZdfWhhdGUuIA0KSGVucnkgdGFrZXMgYSBsYW5ndWlkIGludGVyZXN0IGluIHRoZSBzcG9ydCwgYnV0IGFsbCBvY2NhLSANCnNpb25zIHN7WyYqJl19dXBwbHkgZm9vZCBmb3IgaGlzIGNvbnRlbXBsYXRpdmUgcGlldHkgOyBoZSBzdWZmZXJzIA0KZnJvbSBhIGNlcnRhaW4gaW5jb250aXtbJiomXX1uZW5jZSBvZiBkZXZvdXQgZmVlbGluZywgYW5kIG5vdyANCnRoZSBmYWxjb25zIHNldCBoaW0gbW9yYWxpemluZyA6IA0KDQoqXCcgQntbJiomXX11dCB3aGF0IGEgcG9pbnQsIG15IGxvcmQsIHlvdXIgZmFsY29uIG1hZGUsIA0KQW5kIHdoYXQgYSBwaXRjaCBzaGUgZmxldyBhYm92e1smKiZdfWUgdGhlIHJlc3QgISANClRvIHNlZSBob3cgR29kIGluIGFsbCBoaXMgY3JlYXR1cmVzIHdvcmtzICFcIiANCg0KQSBtb21lbnQgYWZ0e1smKiZdfWVyIGFuZCB0aGUgcGVlcnMsIHdpdGggTWFyZ2FyZXQgYW1vbmcgDQp0aGVtLCBhcmUgYmFuZHlpbmcgZnVyaW91cyB3b3Jkcy4gSGV7WyYqJl19bnJ5XCdzIGFuZ3Vpc2ggaXMgDQpleHRyZW1lLCBidXQgaGUgaG9wZXMgdGhhdCBzb21ldGhpbmcgbWF5IGJlIGRvbmUgYnkgYSANCmZ7WyYqJl19ZXcgbW9yYWwgcmVmbGVjdGlvbnMgc3VpdGFibGUgdG8gdGhlIG9jY2FzaW9uIDogDQoNClwiIEkgcHJcJ3l0aGVlLCBwZWFjZSwgDQpHe1smKiZdfW9vZCBRdWVlbiwgYW5kIHdoZXQgbm90IG9uIHRoZXNlIGZ1cmlvdXMgcGVlcnMsIA0KRm9yIGJsZXNzZWQgYXJlIHRoZSBwZWFjZW17WyYqJl19YWtlcnMgb24gZWFydGguIA0KDQpDYXJkaW5hbCwgTGV0IG1lIGJlIGJsZXNzZWQgZm9yIHRoZSBwZWFjZSBJIG1ha2UgDQpBZ2FpbntbJiomXX1zdCB0aGlzIHByb3VkIFByb3RlY3RvciB3aXRoIG15IHN3b3JkLlwiIA0KDQppIA0KDQpcXCANCg0KVGhlIGFuZ3J5IGNvbGxvcXV5IGl7WyYqJl19cyBwcmVzZW50bHkgc2lsZW5jZWQgYnkgdGhlIGNyeSwgDQpcIiBBIG1pcmFjbGUgISBhIG1pcmFjbGUgIVwiIGFuZCB0aGUgaW1wb3N0e1smKiZdfW9yIFNpbWNveCBhbmQgDQpoaXMgd2lmZSBhcHBlYXIuIEhlbnJ5LCB3aXRoIGhpcyBmYXR1b3VzIHByb2NsaXZpdHkgdG93LSANCmF7WyYqJl19cmRzIHRoZSBlZGlmeWluZywgcmVqb2ljZXMgaW4gdGhpcyBtYW5pZmVzdGF0aW9uIG9mIEdvZFwncyAxIA0KZ3JhY2UgaW4gdGhlIHJ7WyYqJl19ZXN0b3JhdGlvbiB0byBzaWdodCBvZiBhIG1hbiBib3JuIGJsaW5kIDogDQoNClwiIEdyZWF0IGlzIGhpcyBjb21mb3J0IGluIHRoaXN7WyYqJl19IGVhcnRobHkgdmFsZS4gDQpBbHRob3VnaCBieSBoaXMgc2lnaHQgaGlzIHNpbiBiZSBtdWx0aXBsaWVkLipeIA0KDQooVGhhdCBpc3tbJiomXX0gdG8gc2F5LCBcIiBJZiB3ZSBoYWQgdGhlIGdvb2QtZm9ydHVuZSB0byBiZSBkZS0gDQpwcml2ZWQgb2YgYWxsIG91ciBzZW5zZXMgYXtbJiomXX1uZCBhcHBldGl0ZXMsIHdlIHNob3VsZCBoYXZlIGEgDQpmYWlyIGNoYW5jZSBvZiBiZWluZyBxdWl0ZSBzcG90bGVzcyA7IHlldCBse1smKiZdfWV0IHVzIHRoYW5rIEdvZCANCmZvciBoaXMgbXlzdGVyaW91cyBnb29kbmVzcyB0byB0aGlzIG1hbiFcIikgQW5kIG9uY2UsIA0KbW9ye1smKiZdfWUsIHdoZW4gdGhlIFByb3RlY3RvciwgYnkgYSBzbGlnaHQgZXhlcmNpc2Ugb2Ygc2hyZXdkXCcgDQoNClRoZSBFbmdsaXNoIEhpc3Rve1smKiZdfXJpY2FsIFBsYXlzLiAxNTcgDQoNCm5lc3MgYW5kIGNvbW1vbi1zZW5zZSwgaGFzIHVubWFza2VkIHRoZSByb2d1ZSBhbmQgaGFzIA17WyYqJl19CmhhZCBoaW0gd2hpcHBlZCwgZXh0cmVtZSBpcyB0aGUgYW5ndWlzaCBvZiB0aGUgS2luZyA6IA0KDQpcIiBLLiBIZW5yeS4gR29kICF7WyYqJl19IHNlZXN0IHRob3UgdGhpcywgYW5kIGJlYXJlc3Qgc28gbG9uZyA/IA0KUXVlZW4sIEl0IG1hZGUgbWUgbGF1Z2ggdG8gc2VlIHRoZXtbJiomXX0gdmlsbGFpbiBydW4uXCIgDQoNCkJ1dCB0aGUgZmVlYmxlIHNhaW50LCB3aG8gaXMgY2FzdCBkb3duIHVwb24gdGhlIG9jY3VyLSANCntbJiomXX1yZW5jZSBvZiBhIHBpZWNlIG9mIHZ1bGdhciBrbmF2ZXJ5LCBjYW4gaGltc2VsZiBhYmFuZG9uIA0KdG8gYnV0Y2hlcnMgdGhlIG5ve1smKiZdfWJsZXN0IGxpZmUgaW4gRW5nbGFuZC4gSGlzIGNvbnNjaWVuY2UgDQphc3N1cmVzIGhpbSB0aGF0IEdsb3N0ZXIgaXMgaW5ub2NlbnR7WyYqJl19IDsgaGUgaG9wZXMgdGhlIER1a2UgDQp3aWxsIGJlIGFibGUgdG8gY2xlYXIgaGltc2VsZjsgYnV0IEdsb3N0ZXJcJ3MganVkZ2VzIGF7WyYqJl19cmUgDQpTdWZmb2xrLCBcIiB3aXRoIGhpcyBjbG91ZHkgYnJvdyxcIiBzaGFycCBCdWNraW5naGFtLCANCg0KXCIgQW5kIGRvZ2dlZCBZb3tbJiomXX1yaywgdGhhdCByZWFjaGVzIGF0IHRoZSBtb29uLlwiIA0KDQpIZW5yeSBpcyBub3QgZXF1YWwgdG8gY29uZnJvbnRpbmcgc3VjaCB0ZXtbJiomXX1ycmlibGUgZmFjZXMgYXMgDQp0aGVzZSA7IGFuZCBzbywgdHJ1c3RpbmcgdG8gR29kLCB3aG8gd2lsbCBkbyBhbGwgdGhpbmdzIA0Ke1smKiZdfXdlbGwsIGhlIHNsaW5rcyBvdXQgb2YgdGhlIFBhcmxpYW1lbnQgc2hlZGRpbmcgdGVhcnMsIGFuZCANCmxlYXZlcyBHbG9zdGVyIHR7WyYqJl19byBoaXMgZmF0ZSAuIA0KDQpcIiBNeSBsb3Jkcywgd2hhdCB0byB5b3VyIHdpc2RvbSBzZWVtZXRoIGJlc3QsIA0KRG8sIG9yIHVuZG97WyYqJl19LCBhcyBpZiBvdXJzZWxmIHdlcmUgaGVyZS5cIiANCg0KV2hlbiBIZW5yeSBoZWFycyB0aGF0IGhpcyB1bmNsZSBpcyBkZWFkLCBoZSB7WyYqJl19c3dvb25zIDsgDQpoZSBzdXNwZWN0cyB0aGF0IHRoZSBub2JsZSBvbGQgbWFuIGhhcyBiZWVuIGZvdWxseSBkZWFsdCANCndpdGggO3tbJiomXX0gYnV0IGp1ZGdtZW50IGJlbG9uZ3MgdG8gR29kIDsgcG9zc2libHkgaGlzIHN1cy0gDQpwaWNpb24gbWF5IGJlIGEgZmFsc2Ugb25le1smKiZdfSA7IGhvdyB0ZXJyaWJsZSBpZiBoZSBzaG91bGQgDQpzdWxseSBoaXMgcHVyaXR5IG9mIGhlYXJ0IHdpdGggYSBmYWxzZSBzdXNwaWN7WyYqJl19aW9uICEgbWF5IEdvZCANCmZvcmdpdmUgaGltIGlmIGhlIGRvIHNvICEgQW5kIHRsaXVzIGh1bW9yaW5nIGhpcyB0aW0tIA0Kb3JvdXtbJiomXX1zLCBpcnJpdGFibGUgY29uc2NpZW5jZSwgSGVucnkgaXMgaW5jYXBhYmxlIG9mIGFjdGlvbiwgDQphbmQgYWxsb3dzIHRoaW5ncyB0e1smKiZdfW8gdGFrZSB0aGVpciBjb3Vyc2UuIA0KDQpUaGlzIG1vcmJpZCBzY3J1cHVsb3NpdHkgb2YgY29uc2NpZW5jZSB3aGljaCBjaGFyYWN7WyYqJl19LSANCnRlcml6ZXMgSGVucnkgd2hpbGUgaGUgbmVnbGVjdHMgdGhlIGhpZ2ggZHV0aWVzIG9mIGhpcyANCnBvc2l0aW9uIHNldHMgaHtbJiomXX1pbSBzcGVjdWxhdGluZyB1bmVhc2lseSBhYm91dCB0aGUgdmFsaWRpdHkgDQpvZiBoaXMgdGl0bGUgdG8gdGhlIHRocm9uZSDigJQge1smKiZdfWEgdGl0bGUgd2hpY2ggaGFzIGRlc2NlbmRlZCANCnRocm91Z2ggdGhlIGdyZWF0IHZpY3RvciBvZiBBZ2luY291cnQgZnJvbSBIZW57WyYqJl19cnlcJ3MgDQpncmFuZGZhdGhlci4gSGUgdHVybnMgZnJvbSBZb3JrIHRvIFdhcndpY2ssIGZyb20gDQpXYXJ3aWNrIHRvIElUb3J0aHV7WyYqJl19bWJlcmxhbmQsIHVuY2VydGFpbiB3aGF0IGhlIG91Z2h0IA0KdG8gdGhpbmsuIENsaWZmb3JkIGJvbGRseSBjdXRzIHRoZSBrbm90O3tbJiomXX0gYW5kIEhlbnJ5XCdzIA0KY291cmFnZSByZXZpdmVzIDogDQoNCjEgNTggU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCntbJiomXX0NCipcJyBLaW5nIEhlbnJ5LCBiZSB0aHkgdGl0bGUgcmlnaHQgb3Igd3JvbmcsIA0KTG9yZCBDbGlmZm9yZCB2b3dzIHRvIGZpZ2h0IHtbJiomXX1pbiB0aHkgZGVmZW5jZS5cIiANCg0KQnV0IHRoZSBLaW5nLCBpbiB0aGUgcHJlc2VuY2Ugb2YgYXJtZWQgZm9yY2UsIGNhbm5vdCANCntbJiomXX1tYWludGFpbiBoaXMgcmVzb2x1dGlvbiwgYW5kIGVuZHMgYnkgYSBjb21wcm9taXNlLCANCndoaWNoLCB1cG9uIGNvbmRpdGlvbiBve1smKiZdfWYgdGhlIGZvcmZlaXR1cmUgb2YgaGlzIHNvblwncyANCnJpZ2h0cywgd2lsbCBzZWN1cmUgcGVhY2UgaW4gaGlzIGRheXMuIFdlIHN5e1smKiZdfW1wYXRoaXplIA0Kd2l0aCB0aGUgaW5kaWduYW50IE1hcmdhcmV0LiBZZXQgaW4gSGVucnlcJ3MgY29uZHVjdCANCnRoZXJlIGhhcyBie1smKiZdfWVlbiBubyBhY3RpdmUgc2VsZmlzaG5lc3MgOyBoZSBoYXMgb25seSBhY2NlcHQtIA0KZWQgcGVhY2UgYXQgdGhlIHByaWNlIHJlcXV7WyYqJl19aXJlZC4gDQoNCkJldHdlZW4gWW9yaywgb24gdGhlIG9uZSBoYW5kLCBhbmQgWW9ya1wncyBpbnN0cnUtIA0KbWVudC4gSmFjayBDYWR7WyYqJl19ZSwgb24gdGhlIG90aGVyLCB0aGUgdW5oYXBweSBLaW5nIGlzIGhhcmQgDQpzZXQuIE5vdCB0aGF0IGl0IGlzIG9mIGhpbXNlbGYgaHtbJiomXX1lIGNoaWVmbHkgdGhpbmtzIDsgaGUgc3VmLSANCmZlcnMgb24gYWNjb3VudCBvZiB0aGUgcmViZWxzIGFzIG11Y2ggYXMgb24gaGlze1smKiZdfSBvd24gYWMtIA0KY291bnQuIEhlIHdpbGwgcGFybGV5IHdpdGggQ2FkZSA7IHN0aWxsIGJldHRlciwgaGUgd2lsbCANCnNlbmQgXCIge1smKiZdfXNvbWUgaG9seSBiaXNob3AgXCIgdG8gZW50cmVhdCB3aXRoIHRoZSByZWJlbHMuIA0KWW9yaywgbWVhbndoaWxlLCBpcyBhcHByb2Fje1smKiZdfWhpbmcsIGFuZCBkZW1hbmRzIHRoYXQgdGhlIA0KS2luZ1wncyBhZHZpc2VyLCBTb21lcnNldCwgYmUgcmVtb3ZlZC4gSGVucnksIHdpe1smKiZdfXRoIHBsYWMtIA0KaWQgYWNxdWllc2NlbmNlLCBzZWVzIFNvbWVpXnNldCBwcmVwYXJlZCB0byBzYWNyaWZpY2UgaGltLSANCnNlbGZ7WyYqJl19LCBhbmQgZGVzcGF0Y2hlcyBCdWNraW5naGFtIHRvIGNvbmZlciBpbiBnZW50bGUgbGFuLSANCmd1YWdlIHdpdGggaGlzIGFudGFnb3tbJiomXX1uaXN0LiBBdCBsZWFzdCwgdGhlIHZpcnR1ZSB0byByZWZyYWluIA0KZnJvbSBkaXNndWlzaW5nLCBhcyBKb2huIGRpc2d1aXNlZCwge1smKiZdfXVuZGVyIGhpZ2gtc291bmRpbmcgDQp3b3JkcywgdGhlIGFiamVjdG5lc3Mgb2YgaGlzIHN0YXRlLCBiZWxvbmdzIHRvIEhlbnJ5IDp7WyYqJl19IA0KDQpcIiBJIHByYXkgdGhlZSwgQnVja2luZ2hhbSwgZ28gYW5kIG1lZXQgaGltLCANCkFuZCBhc2sgaGltIHdoYXRcJ3MgdGhlIHJle1smKiZdfWFzb24gb2YgdGhlc2UgYXJtcy4gDQpUZWxsIGhpbSBJXCdsbCBzZW5kIER1a2UgRWRtdW5kIHRvIHRoZSBUb3dlcjsgDQpBbmQsIFNve1smKiZdfW1lcnNldCwgd2Ugd2lsbCBjb21taXQgdGhlZSBoaXRoZXIgDQpVbnRpbCBoaXMgYXJteSBiZSBkaXNtaXNzZWQgZnJvbSBoaW5hLiB7WyYqJl19DQoNClNvbSwgTXkgbG9yZCwgDQpJXCdsbCB5aWVsZCBteXNlbGYgdG8gcHJpc29uIHdpbGxpbmdseSwgDQpPciB1bnRvIGRlYXRoLCB7WyYqJl19dG8gZG8gbXkgY291bnRyeSBnb29kLiANCg0KSy4gSGVuLiBJbiBhbnkgY2FzZSBiZSBub3QgdG9vIHJvdWdoIGluIHRlcm1zLCANCntbJiomXX1Gb3IgaGUgaXMgZmllcmNlLCBhbmQgY2Fubm90IGJyb29rIGhhcmQgbGFuZ3VhZ2UuIA0KDQpCdWNrLCBJIHdpbGwsIG15IGxvcmQge1smKiZdfTsgYW5kIGRvdWJ0IG5vdCBzbyB0byBkZWFsIA0KQXMgYWxsIHRoaW5ncyBzaGFsbCByZWRvdW5kIHVudG8geW91ciBnb29kLiANCg17WyYqJl19CksuIEhlbi4gQ29tZSwgd2lmZSwgbGV0XCdzIGluIGFuZCBsZWFybiB0byBnb3Zlcm4gYmV0dGVyLCANCkZvciB5ZXQgbWF5IEVuZ2x7WyYqJl19YW5kIGN1cnNlIG15IHdyZXRjaGVkIHJlaWduLlwiIA0KDQpraSBsZW5ndGggdGhlIHdyZXRjaGVkIHJlaWduIGFwcHJvYWNoZXMgaXR7WyYqJl19cyBlbmQgDQoNClRoZSBFbmdsaXNoIEhpc3RvcmljYWwgUGxheXMuIDE1OSANCg0KSGVucnkgaGFzIGxvbmdlZCB0byBiZSBhIHN1YntbJiomXX1qZWN0LCBhbmQgaGUgaXMgc3VjaCBmb3IgDQpzb21lIHNob3J0IHRpbWUgYmVmb3JlIGhpcyBkZWF0aC4gRnJvbSB0aGUgYmF0dGxle1smKiZdfSBpbiANCndoaWNoIFJpY2hhcmQsIGJsb29kaG91bmQgLXdpc2UsIGlzIHB1cnN1aW5nIENsaWZmb3JkLCANCkhlbnJ5IHdpdGhkcmF7WyYqJl19d3MsIGFuZCwgc2VhdGluZyBoaW1zZWxmIHVwb24gYSBtb2xlLWhpbGwsIA0KbWVkaXRhdGVzIG9uIHRoZSBoYXBweSBsaWZlIG9mIHtbJiomXX1zaGVwaGVyZCAtIHN3YWlucywgYW5kIA0KcHJheXMgdGhhdCB0byB3aG9tIEdvZCB3aWxscyB0aGUgdmljdG9yeSBtYXkgZmFsbC4ge1smKiZdfUhlIA0KbWlsZGx5IGJlZ3MgdGhlIGZ1Z2l0aXZlcyB0byB0YWtlIGhpbSBhbG9uZyB3aXRoIHRoZW0gOiANCg0KXCIgTmF5LCB0YWtle1smKiZdfSBtZSB3aXRoIHRoZWUsIGdvb2Qgc3dlZXQgRXhldGVyIDsgDQpOb3QgdGhhdCBJIGZlYXIgdG8gc3RheSwgYnV0IGxvdmUgdG8gZ297WyYqJl19IA0KV2hpdGhlciB0aGUgcXVlZW4gaW50ZW5kcy5cIiANCg0KV2hlbiB0aGUga2VlcGVycyBtYWtlIGhpbSB0aGVpciBwcmlzb25lcix7WyYqJl19IEhlbnJ5IGlzIA0Kc2luY2VyZWx5IGNvbmNlcm5lZCBhYm91dCB0aGUgcHVyaXR5IG9mIGNvbnNjaWVuY2Ugb2YgaGlzIA0KY2FwdHtbJiomXX1vcnMuIEhlIGlucXVpcmVzLCB3aXRoIHVuZmVpZ25lZCBhbmQgZGlzaW50ZXJlc3RlZCANCmFueGlldHksIHdoZXRoZXIgdGhleSBoe1smKiZdfWF2ZSB0YWtlbiBhbiBvYXRoIG9mIGFsbGVnaWFuY2UgDQp0byBoaW0uIEF0IGFsbCBldmVudHMsIGhlIHdpbGwgbm90IG5vdyBjb217WyYqJl19bWFuZCB0aGVtIA0KdG8gcmVsZWFzZSBoaW0sIGFuZCBzbyB0aGV5IGNhbm5vdCBvZmZlbmQuIEhpcyBvd24gZmF0ZSANCmRvZXMgbntbJiomXX1vdCBjb25jZXJuIGhpbSA7IGhlIHdlYXJzIGhpcyBjcm93biBDb250ZW50IDsgYW5kIA0KaGUgaXMgc3VyZSB0aGF0IHRoZSBuZXcge1smKiZdfWtpbmcgd2lsbCBleGVjdXRlIG5laXRoZXIgbW9yZSANCm5vciBsZXNzIHRoYW4gR29kIHdpbGxzLiANCg0KSW4gcHJpc29uIEhlbnJ7WyYqJl19eSwgYXQgbGFzdCwgaXMgcmVhbGx5IGhhcHB5IDsgbm93IGhlIGlzIA0KcmVzcG9uc2libGUgZm9yIG5vdGhpbmcgOyBoZSBlbmpveXtbJiomXX1zLCBmb3IgdGhlIGZpcnN0IHRpbWUsIA0KdHJhbnF1aWwgc29saXR1ZGUgOyBoZSBpcyBhIGJpcmQgd2hvIHNpbmdzIGluIGhpcyBje1smKiZdfWFnZS4gDQpIaXMgbGF0dGVyIGRheXMgaGUgd2lsbCBzcGVuZCwgdG8gdGhlIHJlYnVrZSBvZiBzaW4gYW5kIA0KdGhlIHByYWlzZSB7WyYqJl19b2YgaGlzIENyZWF0b3IsIGluIGRldm90aW9uLiBIZW5yeVwncyBlLi4gLmEgaW0tIA0KaXR5IGlzIG5vdCBvZiB0aGUgaGlnaGVzdCB7WyYqJl19a2luZCA7IGhlIGlzIGluY2FwYWJsZSBvZiBjb20tIA0KbW90aW9uLiBIaXMgcGVhY2UgaXMgbm90IHRoYXQgd2hpY2ggdW5kZXJsaXtbJiomXX1lcyB3aG9sZS0gDQpzb21lIGFnaXRhdGlvbiwgYSBwZWFjZSB3aGljaCBwYXNzZXMgdW5kZXJzdGFuZGluZy4gDQpcIlF1aWV0bmVzc3tbJiomXX0gaXMgYSBncmFjZSDigJQgbm90IGluIGl0c2VsZiwgb25seSB3aGVuIGl0IGlzIA0KZ3JhZnRlZCBvbiB0aGUgc3RlbSBvZiBmYWl0e1smKiZdfWgsIHplYWwsIHNlbGYtYWJhc2VtZW50LCBhbmQgDQpkaWxpZ2VuY2UuXCIgXCJeIElmIEhlbnJ5IGhhZCBrbm93biB0aGUgbm9ibGVuZXtbJiomXX1zcyBvZiB0cnVlIA0Ka2luZ3NoaXAsIGhpcyBjb250ZW50IGluIHByaXNvbiBtaWdodCBiZSBhZG1pcmFibGUgOyBhcyBpdCANCmlze1smKiZdfSwgdGhlIGJlYXV0eSBvZiB0aGF0IGNvbnRlbnQgZG9lcyBub3Qgc3RyaWtlIHVzIGFzIG9mIGEgDQpyaWNoIG9yIHZpdmlkIGtpbmR7WyYqJl19LiBCdXQgdGhlIGVuZCBpcyBjb21lLCBhbmQgdGhhdCBpcyBhIA0KDQoqIEpvaG4gSC4gTmV3bWFuLCBcIiBQYXJvY2hpYWwgYW5kIFB7WyYqJl19bGFpbiBTZXJtb25zLFwiIHZvbC4gdi4sIHAuIDdpLCANCg0KMSA2MCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQp7WyYqJl19Z2Fpbi4gSGVucnkgaGFzIHlpZWxkZWQgdG8gdGhlIEhvdXNlIG9mIFlvcmssIGFuZCB0aGUgDQpldmlsIHRpbWUgaXMgZ3Jvd2luZ3tbJiomXX0gc2hvcnRlci4gVGhlIHdvcmRzIG9mIHRoZSBncmVhdCANCkR1a2Ugb2YgWW9yayBhcmUgY29uZmlybWVkIGJ5IG91ciBzZW5zZSBve1smKiZdfWYgZmFjdCBhbmQgcmlnaHQgOiANCg0KXCIgS2luZyBkaWQgSSBjYWxsIHRoZWUgPyBuYXksIHRob3UgYXJ0IG5vdCBraW5nLiANCg0Ke1smKiZdfeKAoiDigKIg4oCiIOKAoiDigKIgciANCg0KR2l2ZSBwbGFjZSA7IGJ5IGhlYXZlbiwgdGhvdSBzaGFsdCBydWxlIG5vIG1vcmUgDQp7WyYqJl19T1wnZXIgaGltIHdob20gaGVhdmVuIGNyZWF0ZWQgZm9yIHRoeSBydWxlciAhXCIgKiANCg0KSEkuIA0KDQpDZXJ0YWluIHF1YWxpdGlle1smKiZdfXMgd2hpY2ggbWFrZSBpdCB1bmlxdWUgYW1vbmcgdGhlIA0KZHJhbWFzIG9mIFNoYWtzcGVyZSBjaGFyYWN0ZXJpemUgdGhlIHBsYXl7WyYqJl19IG9mIEtpbmcgUmljaC0gDQphcmQgSUlJLCBJdHMgbWFubmVyIG9mIGNvbmNlaXZpbmcgYW5kIHByZXNlbnRpbmcgY2hhci0gDQphY3tbJiomXX10ZXIgaGFzIGEgY2VydGFpbiByZXNlbWJsYW5jZSwgbm90IGVsc2V3aGVyZSB0byBiZSBmb3VuZCANCmluIFNoYWtzcGVyZVwncyB3cntbJiomXX1pdGluZ3MsIHRvIHRoZSBpZGVhbCBtYW5uZXIgb2YgTWFybG93ZS4gDQpBcyBpbiB0aGUgcGxheXMgb2YgTWFybG93ZSwgdGhlcmUge1smKiZdfWlzIGhlcmUgb25lIGRvbWluYW50IA0KZmlndXJlIGRpc3Rpbmd1aXNoZWQgYnkgYSBmZXcgc3Ryb25nbHkgbWFya2VkIGFuZCBpbm97WyYqJl19ci0gDQpkaW5hdGVseSBkZXZlbG9wZWQgcXVhbGl0aWVzLiBUaGVyZSBpcyBpbiB0aGUgY2hhcmFjdGVyLSANCml6YXRpb24gbm8gbXtbJiomXX15c3RlcnksIGJ1dCBtdWNoIG9mIGEgZGVtb25pYyBpbnRlbnNpdHkuIA0KQ2VydGFpbiBwYXNzYWdlcyBhcmUgZW50aXJlbHkgaW4ge1smKiZdfXRoZSBseXJpY2FsLWRyYW1hdGljIHN0eWxlIA0K4oCUIGFuIGVtb3Rpb24gd2hpY2ggaXMgb25lIGFuZCB0aGUgc2FtZSwgb2NjdXB7WyYqJl19eWluZywgYXQgDQp0aGUgc2FtZSBtb21lbnQsIHR3byBvciB0aHJlZSBvZiB0aGUgcGVyc29uYWdlcywgYW5kIA0Kb2J0YWluaW5nIHtbJiomXX11dHRlcmFuY2UgdGhyb3VnaCB0aGVtIGFsbW9zdCBzaW11bHRhbmVvdXNseSwgDQpvciBpbiBpbW1lZGlhdGUgc3VjY2Vzc2lvbiA7e1smKiZdfSBhcyBhIG11c2ljYWwgbW90aXZlIGlzIGluLSANCnRlcnByZXRlZCBieSBhbiBvcmNoZXN0cmEsIG9yIHRha2VuIHVwIHNpbmdseSB7WyYqJl19Ynkgc3VjLSANCmNlc3NpdmUgaW5zdHJ1bWVudHMgOiANCg0KKiBXaXRob3V0IGVudGVyaW5nIGludG8gdGhlIGNvbnRyb3ZlcnN5IHtbJiomXX1hcyB0byB0aGUgYXV0aG9yc2hpcCBvZiB0aGUgRmlyZCANClBhcnQgb2YgdGhlIENvbnRlbnRpb24gYW5kIFRoZSBUcnVlIFRyYWdle1smKiZdfWRpZSAodGhlIG9sZCBwbGF5cyBjb3JyZXNwb25kaW5nIA0KdG8gdGhlIHNlY29uZCBhbmQgdGhpcmQgcGFydHMgb2YgS2luZyBIZW57WyYqJl19cnkgVkwpXiBpdCBtYXkgYmUgaW5zdHJ1Y3RpdmUgdG8gDQptZW50aW9uIGhvdyBhdXRob3JpdGllcyBhcmUgZGl2aWRlZC4gSW4gZntbJiomXX1hdm9yIG9mIFNoYWtzcGVyZVwncyBhdXRob3JzaGlwIA0Kb2YgdGhlc2UgcGxheXMg4oCUIEpvaG5zb24sIFN0ZWV2ZW5zLCBLbmlnaHtbJiomXX10LCBTY2hsZWdlbCwgVGllY2ssIFVscmljaSwgRGVsaXVzLCANCk9lY2hlbGhhdXNlciwgSC4gdm9uIEZyaWVzZW4uIEluIGZhdm9ye1smKiZdfSBvZiBHcmVlbmVcJ3Mgb3IgTWFybG93ZVwncyBhdXRob3JzaGlwIA0K4oCUIE1hbG9uZSwgQ29sbGllciwgRHljZSwgQ291cnRlbmF5LHtbJiomXX0gR2VydmludXMsIEtyZXlzc2lnLCBhbmQgdGhlIEZyZW5jaCBjcml0aWNzLiANCkNsYXJrIGFuZCBXcmlnaHQsIEhhbGxpd2VsbCwge1smKiZdfUxsb3lkLCBhbmQgb3RoZXJzIGJlbGlldmUgdGhhdCBhIHBvcnRpb24gb2YgU2hhay0gDQpzcGVyZVwncyB3b3JrIG1heSBiZSBmb3Vue1smKiZdfWQgaW4gdGhlc2Ugb2xkIHBsYXlzLiBTZWUgdGhlIG5vdGUgZnJvbSB3aGljaCBJIA0KcGFydGx5IG9idGFpbiB0aGlzIGxpc3Qgb2Z7WyYqJl19IGF1dGhvcml0aWVzIGluIEphaHJidWNoIGRlciBkZXV0c2NoZW4gU2hha2VzcGVhcmUtIA0KT2VzZWxrY2hhZnReIHZvbC4gaWlpLntbJiomXX0sIHAuIDQyLiBTZWUgYWxzbywgaW4gdm9sLiBpLiwgdGhlIGFydGljbGUgYnkgVWxyaWNpLCBcIiBDaHJpc3RvLSANCnBoZXIgTWFybHtbJiomXX1vd2UgdW5kIFNoYWtlc3BlYXJlXCdzIFZlcmhhbHRuaXNzIHp1IGlobS5cIiBTZWUgdGhlIHByZXZpb3VzIA0Kbm90ZXMsIHAuIDQ5IGF7WyYqJl19bmQgcC4gODYsIGZvciB0aGUgb3BpbmlvbnMgb2YgTXIuIEdyYW50IFdoaXRlIGFuZCBNaXNzIEouIExlZS4gDQoNClRoZSBFbmdsaXtbJiomXX1zaCBIaXN0b3JpY2FsIFwnUGxheXMuIDEgNiAxIA0KDQpcIiBRLiBFbGl6LiBXYXMgbmV2ZXIgd2lkb3cgaGFkIHNvIGRlYXIgYSBsb3N7WyYqJl19cyAhIA0KQ2hpbGRyZW4uIFdlcmUgbmV2ZXIgb3JwaGFucyBoYWQgc28gZGVhciBhIGxvc3MgISANCkR1Y2hlc3MuIFdhcyBuZXZlcntbJiomXX0gbW90aGVyIGhhZCBzbyBkZWFyIGEgbG9zcyAhIA0KQWxhcyAhIEkgYW0gdGhlIG1vdGhlciBvZiB0aGVzZSBncmllZnMuXCIgDQoNCntbJiomXX1NZXJlIHZlcmlzaW1pbGl0dWRlIGluIHRoZSBwbGF5IG9mIEtpbmcgUmljaGFyZCBJSUwgDQpiZWNvbWVzLCBhdCB0aW1lcywgc3Vie1smKiZdfW9yZGluYXRlIHRvIGVmZmVjdHMgb2Ygc3ltcGhvbmljIA0Kb3JjaGVzdHJhdGlvbiBvciBvZiBzdGF0dWVzcXVlIGNvbXBvc2l0aW97WyYqJl19bi4gVGhlcmUgaXMgYSANCkJsYWtlLWxpa2UgdGVycm9yIGFuZCBiZWF1dHkgaW4gdGhlIHNjZW5lIGluIHdoaWNoIHRoZSANCnRocntbJiomXX1lZSB3b21lbiDigJQgcXVlZW5zIGFuZCBhIGR1Y2hlc3Mg4oCUIHNlYXQgdGhlbXNlbHZlcyANCnVwb24gdGhlIGdyb3VuZCBpbiB0e1smKiZdfWhlaXIgZGVzb2xhdGlvbiBhbmQgZGVzcGFpciBhbmQgY3J5IA0KYWxvdWQgaW4gdXR0ZXIgYW5ndWlzaCBvZiBzcGlyaXQuIEZpcnN7WyYqJl19dCBieSB0aGUgbW90aGVyIG9mIA0KdHdvIGtpbmdzLCB0aGVuIGJ5IEVkd2FyZFwncyB3aWRvdywgbGFzdCBieSB0aGUgdGVycmlibGV7WyYqJl19IA0KTWVkdXNhIC1saWtlIFF1ZWVuIE1hcmdhcmV0LCB0aGUgc2FtZSBhdHRpdHVkZSBpcyBhcy0gDQpzdW1lZCBhbmQgdGhlIHNhbXtbJiomXX1lIGdyaWVmIGlzIHBvdXJlZCBmb3J0aC4gTWlzZXJ5IGhhcyANCm1hZGUgdGhlbSBpbmRpZmZlcmVudCB0byBhbGwgY2VyZW1vbnkge1smKiZdfW9mIHF1ZWVuc2hpcCwgYW5kLCANCmZvciBhIHRpbWUsIHRvIHRoZWlyIHByaXZhdGUgZGlmZmVyZW5jZXMgOyB0aGV5IGFyZSBzZWF7WyYqJl19dGVkLCANCmEgcmlnaWQgeWV0IHR1bXVsdHVvdXNseSBwYXNzaW9uYXRlIGdyb3VwLCBpbiB0aGUgbWFqZXN0eSANCm9mIG1lcmUgd3tbJiomXX1vbWFuaG9vZCBhbmQgc3VwcmVtZSBjYWxhbWl0eS4gRWVhZGVycyBhYy0gDQpxdWFpbnRlZCB3aXRoIEJsYWtlXCdzIGlsbHVzdHJhdHtbJiomXX1pb25zIHRvIHRoZSBCb29rIG9mIEpvYiANCndpbGwgcmVtZW1iZXIgd2hhdCBlZmZlY3RzLCBzdWJsaW1lIGFuZCBhcHBhbGxpbmcse1smKiZdfSB0aGUgDQphcnRpc3QgcHJvZHVjZXMgYnkgYW5pbWF0aW5nIGEgZ3JvdXAgb2YgZmlndXJlcyB3aXRoIG9uZSANCmNvbW1vbiBwYXN7WyYqJl19c2lvbiwgd2hpY2ggc3BvbnRhbmVvdXNseSBwcm9kdWNlcyBpbiBlYWNoIA0KaW5kaXZpZHVhbCB0aGUgc2FtZSBleHRyYXZhZ2FudHtbJiomXX0gbW92ZW1lbnQgb2YgaGVhZCBhbmQgDQpsaW1icy4gDQoNClRoZSBkZW1vbmljIGludGVuc2l0eSB3aGljaCBkaXN0aW5ndWlzaGVze1smKiZdfSB0aGUgcGxheSANCnByb2NlZWRzIGZyb20gdGhlIGNoYXJhY3RlciBvZiBSaWNoYXJkIGFzIGZyb20gaXRzIHNvdXJjZSANCmFuZCB7WyYqJl19Y2VudHJlLiBBcyB3aXRoIHRoZSBjaGllZiBwZXJzb25hZ2VzIG9mIE1hcmxvd2VcJ3MgDQpwbGF5cywgc28gUmljaGFyZCBpbiB0aGl7WyYqJl19cyBwbGF5IHJhdGhlciBvY2N1cGllcyB0aGUgaW1hZy0gDQppbmF0aW9uIGJ5IGF1ZGFjaXR5IGFuZCBmb3JjZSB0aGFuIGluc2ludXtbJiomXX1hdGVzIGhpbXNlbGYgDQp0aHJvdWdoIHNvbWUgc3VidGxlIHNvbHZlbnQsIHNvbWUgbWFnaWMgYW5kIG15c3RlcnkgDQpvZiBhcnQue1smKiZdfSBIaXMgY2hhcmFjdGVyIGRvZXMgbm90IGdyb3cgdXBvbiB1cyA7IGZyb20gdGhlIA0KZmlyc3QgaXQgaXMgY29tcGxldGUuIFdlIGF7WyYqJl19cmUgbm90IGN1cmlvdXMgdG8gZGlzY292ZXIgd2hhdCANClJpY2hhcmQgaXMsIGFzIHdlIGFyZSBjdXJpb3VzIHRvIGNvbWUgaW50b3tbJiomXX0gcHJlc2VuY2Ugb2YgDQp0aGUgc291bCBvZiBIYW1sZXQuIFdlIGFyZSBpbiBubyBkb3VidCBhYm91dCBSaWNoYXJkIDsgDQpidXQge1smKiZdfWl0IHlpZWxkcyB1cyBhIHN0cm9uZyBzZW5zYXRpb24gdG8gb2JzZXJ2ZSBoaW0gaW4gdmEqIA0KMTEgDQoNCjEgNiAyIFNoYWtzcGV7WyYqJl19cmUg4oCUIEhpcyBNaW5kIGFuZCBBIHJ0LiANCg0KcmlvdXMgY2lyY3Vtc3RhbmNlcyBhbmQgc2l0dWF0aW9ucyA7IHdlIGFyZSByb3tbJiomXX11c2VkIGFuZCANCmFuaW1hdGVkIGJ5IHRoZSBwcmVzZW5jZSBvZiBhbG1vc3Qgc3VwZXJodW1hbiBlbmVyZ3kgDQphbmQgcG93ZXIse1smKiZdfSBldmVuIHRob3VnaCB0aGF0IHBvd2VyIGFuZCB0aGF0IGVuZXJneSBiZSANCm1hbGlnbi4gDQoNCkNvbGVyaWRnZSBoYXMgc2FpZCB7WyYqJl19b2YgRWljaGFyZCB0aGF0IHByaWRlIG9mIGludGVsbGVjdCBpcyANCmhpcyBjaGFyYWN0ZXJpc3RpYy4gVGhpcyBpcyB0cnVlIDsgYntbJiomXX11dCBoaXMgZG9taW5hbnQgY2hhci0gDQphY3RlcmlzdGljIGlzIG5vdCBpbnRlbGxlY3R1YWwsIGl0IGlzIHJhdGhlciBhIGRlbW9ue1smKiZdfWljIGVuLSANCmVyZ3kgb2Ygd2lsbC4gVGhlIHNhbWUgY2F1c2Ugd2hpY2ggcHJvZHVjZXMgdGVtcGVzdCANCmFuZCBzaGlwd3JlY2t7WyYqJl19IHByb2R1Y2VzIFJpY2hhcmQgOyBoZSBpcyBhIGZpZXJjZSBlbGVtZW4tIA0KdGFsIHBvd2VyIHJhZ2luZyB0aHJvdWdoIHRoZSB3b3tbJiomXX1ybGQgOyBidXQgdGhpcyBlbGVtZW50YWwgDQpwb3dlciBpcyBjb25jZW50cmF0ZWQgaW4gYSBodW1hbiB3aWxsLiBUaGUgbmVlZCBve1smKiZdfWYgDQphY3Rpb24gaXMgd2l0aCBSaWNoYXJkIGFuIGFwcGV0aXRlIHRvIHdoaWNoIGFsbCB0aGUgb3RoZXIgDQphcHBldGl0ZXMgYXJ7WyYqJl19ZSBzdWJvcmRpbmF0ZS4gSGUgcmVxdWlyZXMgc3BhY2UgaW4gdGhlIA0Kd29ybGQgdG8gYnVzdGxlIGluIDsgaGlzIHdpbGwgbXVzdHtbJiomXX0gd3JlYWsgaXRzZWxmIG9uIG1lbiANCmFuZCB0aGluZ3MuIEFsbCB0aGF0IGlzIGRvbmUgaW4gdGhlIHBsYXkgcHJvY2VlZHMgZnJve1smKiZdfW0gDQpSaWNoYXJkIDsgdGhlcmUgaXMsIGFzIGhhcyBiZWVuIG9ic2VydmVkIGJ5IE1yLiBIdWRzb24sIA0Kbm8gaW50ZXJhY3Rpb257WyYqJl19LiBcIiBUaGUgZHJhbWEgaXMgbm90IHNvIG11Y2ggYSBjb21wb3NpLSANCnRpb24gb2YgY28tb3BlcmF0aXZlIGNoYXJhY3RlcnMsIG17WyYqJl19dXR1YWxseSBkZXZlbG9waW5nIGFuZCANCmRldmVsb3BlZCwgYXMgdGhlIHByb2xvbmdlZCB5ZXQgaHVycmllZCBvdXRjb21lIG9mIHtbJiomXX1hIA0Kc2luZ2xlIGNoYXJhY3RlciwgdG8gd2hpY2ggdGhlIG90aGVyIHBlcnNvbnMgc2VydmUgYnV0IGFzIA0KZXhwb25lbnRzIGFue1smKiZdfWQgY29uZHVjdG9yczsgYXMgaWYgaGUgd2VyZSBhIHZvbHVtZSBvZiANCmVsZWN0cmljaXR5IGRpc2Nsb3NpbmcgaGltc2VsZiBieSB7WyYqJl19bWVhbnMgb2Ygb3RoZXJzLCBhbmQgDQpxdWVuY2hpbmcgdGhlaXIgYWN0aXZlIHBvd2VycyBpbiB0aGUgdmVyeSBwcm9jZXNzIG9mIHtbJiomXX0NCmRvaW5nIHNvLlwiXiANCg0KUmljaGFyZCwgd2l0aCBoaXMgZGlzdG9ydGVkIGFuZCB3aXRoZXJlZCBib2R5LCBoaXMgYXJtIA0Kc3tbJiomXX1ocnVuayBsaWtlIFwiIGEgYmxhc3RlZCBzYXBsaW5nLFwiIGlzIHlldCBhIHN1YmxpbWUgZmlndXJlIA0KYnkgdmlydHVlIG9mIGhpcyB7WyYqJl19ZW5lcmd5IG9mIHdpbGwgYW5kIHRyZW1lbmRvdXMgcG93ZXIgb2YgDQppbnRlbGxlY3QuIEFsbCBvYnN0YWNsZXMgZ2l2ZSB3YXkgYntbJiomXX1lZm9yZSBoaW0g4oCUIHRoZSBjb3VyLSANCmFnZSBvZiBtZW4gYW5kIHRoZSBiaXR0ZXIgYW5pbW9zaXR5IG9mIHdvbWVuLiBBbmQge1smKiZdfQ0KUmljaGFyZCBoYXMgYSBwYXNzaW9uYXRlIHNjb3JuIG9mIG1lbiwgYmVjYXVzZSB0aGV5IGFyZSANCndlYWtlciBhbmQgbW9yZSB7WyYqJl19b2J0dXNlIHRoYW4gaGUsIHRoZSBkZWZvcm1lZCBvdXRjYXN0IA0Kb2YgbmF0dXJlLiBIZSBwcmFjdGlzZXMgaHlwb2NyaXN5IG5vdHtbJiomXX0gbWVyZWx5IGZvciB0aGUgDQpzYWtlIG9mIHN1Y2Nlc3MsIGJ1dCBiZWNhdXNlIGhpcyBoeXBvY3Jpc3kgaXMgYSBjeW5pY2FsIA0Ke1smKiZdfQ0KKiBILiBOLiBIdWRzb24sIFwiIFNoYWtlc3BlYXJlLCBoaXMgTGlmZSwgQXJ0LCBhbmQgQ2hhcmFjdGVycyxcIiB2b2wuIGlpLiwgcHtbJiomXX0uIDE2ZCANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaWNhbCBQbGF5cy4gMTYzIA0KDQpqZXN0IG9yIGEgZ3Jvc3MgaW5zdWx0IHRvIGh1e1smKiZdfW1hbml0eS4gVGhlIE1heW9yIG9mIExvbsKrIA0KZG9uIGhhcyBhIGJvdXJnZW9pcyB2ZW5lcmF0aW9uIGZvciBwaWV0eSBhbmQgZXN7WyYqJl19dGFibGlzaGVkIA0KZm9ybXMgb2YgcmVsaWdpb24uIFJpY2hhcmQgYWR2YW5jZXMgdG8gbWVldCBoaW0gcmVhZC0gDQppbmcgYSBib3tbJiomXX1vayBvZiBwcmF5ZXJzLCBhbmQgc3VwcG9ydGVkIG9uIGVhY2ggc2lkZSBieSBhIA0KYmlzaG9wLiBUaGUgZ3JpbSBqb2tlLCB0aGUge1smKiZdfWNvbnRlbXB0dW91cyBpbnN1bHQgdG8gdGhlIA0KY2l0aXplbiBmYWl0aCBpbiBDaHVyY2ggYW5kIEtpbmcsIGZsYXR0ZXJzIGhpcyB7WyYqJl19bWFsaWduYW50IA0Kc2Vuc2Ugb2YgcG93ZXIuIFRvIGNoZWF0IGEgZ3VsbCwgYSBjb2Fyc2UgaHlwb2NyaXN5IHN1Zi0gDQpmaWNlc3tbJiomXX0uXCdeIA0KDQpUb3dhcmRzIGhpcyB0b29sIEJ1Y2tpbmdoYW0sIHdoZW4gb2NjYXNpb24gc3VpdHMsIA0KUmljaGFyZCBjYW4gYmUgZntbJiomXX1yYW5rbHkgY29udGVtcHR1b3VzLiBCdWNraW5naGFtIGlzIA0KdW5hYmxlIHRvIGtlZXAgcGFjZSB3aXRoIFJpY2hhcmQgaW4gaGlze1smKiZdfSBoZWFkbG9uZyBjYS0gDQpyZWVyIDsgaGUgZmFsbHMgYmVoaW5kIGFuZCBpcyBzY2FudCBvZiBicmVhdGggOiANCg0KXCIgVGhlIGRle1smKiZdfWVwLXJldm9sdmluZywgd2l0dHkgQnVja2luZ2hhbSANCk5vIG1vcmUgc2hhbGwgYmUgdGhlIG5laWdoYm9yIHRvIG15IGNvdW5zZWx7WyYqJl19IDsgDQpIYXRoIGhlIHNvIGxvbmcgaGVsZCBvdXQgd2l0aCBtZSB1bnRpcmVkLCANCkFuZCBzdG9wcyBoZSBub3cgZm9yIGJyZWF0aHtbJiomXX0gViANCg0KVGhlIER1a2UsIFwiIGhpcyBvdGhlciBzZWxmLCBoaXMgY291bnNlbFwncyBjb25zaXN0b3J5LCBoaXMgDQpvcmFjbGUsIGh7WyYqJl19aXMgcHJvcGhldCxcIiBjb21lcyBiZWZvcmUgdGhlIEtpbmcgY2xhaW1pbmcgdGhlIA0KZnVsZmlsbWVudCBvZiBhIHByb21pc2UgdGh7WyYqJl19YXQgaGUgc2hvdWxkIHJlY2VpdmUgdGhlIEVhcmwtIA0KZG9tIG9mIEhlcmVmb3JkLiBSaWNoYXJkIGJlY29tZXMgc3VkZGVubHkgZHtbJiomXX1lYWYsIGFuZCwgDQpjb250ZW1wdHVvdXNseSBkaXNyZWdhcmRpbmcgdGhlIGludGVycGVsbGF0aW9ucyBvZiBCdWNrLSANCmluZ2hhe1smKiZdfW0sIGNvbnRpbnVlcyBoaXMgdGFsayBvbiBpbmRpZmZlcmVudCBtYXR0ZXJzLiBBdCANCmxlbmd0aCBoZSB0dXJucyB0byBcIiBoaXMge1smKiZdfW90aGVyIHNlbGYgOlwnXCcgDQoNClwiIEJ1Y2suIE15IGxvcmQgISANCg0KSywgUmljaC4gQXksIHdoYXRcJ3Mgb1wnY2xvY2sgPyANCg0KQntbJiomXX11Y2suIEkgYW0gdGh1cyBib2xkIHRvIHB1dCB5b3VyIGdyYWNlIGluIG1pbmQgDQpPZiB3aGF0IHlvdSBwcm9taXNlZCBtZS4gDQoNe1smKiZdfQpLIFJpY2guIFdlbGwsIGJ1dCB3aGF0XCdzIG9cJ2Nsb2NrID8gDQoNCkJ1Y2suIFVwb24gdGhlIHN0cm9rZSBvZiB0ZW4uIA0KDQpLLntbJiomXX0gUmljaC4gV2VsbCwgbGV0IGl0IHN0cmlrZS4gDQoNCkJ1Y2suIFdoeSBsZXQgaXQgc3RyaWtlID8gDQoNCksuIFJpY2guIEJlY2F1e1smKiZdfXNlIHRoYXQgbGlrZSBhIEphY2sgdGhvdSBrZWVwXCdzdCB0aGUgc3Ryb2tlIA0KQmV0d2l4dCB0aHkgYmVnZ2luZyBhbmQgbXkgbWVke1smKiZdfWl0YXRpb24uIA0KSSBhbSBub3QgaW4gdGhlIGdpdmluZyB2ZWluIHRvLWRheS5cIiANCg0KKiBUaGUgcGxhbiBvcmlnaW5hdGVzIHdpe1smKiZdfXRoIEJ1Y2tpbmdoYW0sIGJ1dCBSaWNoYXJkIHBsYXlzIGhpcyBwYXJ0IHdpdGggDQptYW5pZmVzdCBkZWxpZ2h0LiBTaGFrc3BlcmV7WyYqJl19IGhhZCBubyBoaXN0b3JpY2FsIGF1dGhvcml0eSBmb3IgdGhlIHByZXNlbmNlIA0Kb2YgdGhlIEJpc2hvcHMuIFNlZSBTa290dG93ZXtbJiomXX1cJ3MgXCIgTGlmZSBvZiBTaGFrc3BlYXJlLFwiIHZvbC4gaS4sIHBwLiAxOTYsIDE5Ni4gDQoNCjEgNjQgU2hha3NwZXJlIOKAlCBIaXMge1smKiZdfU1pbmQgYW5kIEFydC4gDQoNClJpY2hhcmRcJ3MgY3luaWNpc20gYW5kIGluc29sZW5jZSBoYXZlIGluIHRoZW0gYSBraW5kIA0Kb2Yge1smKiZdfWdyaW0gbWlydGgg4oCUIHN1Y2ggYSBob25ob21pZSBhcyBtaWdodCBiZSBtZXQgd2l0aCANCmFtb25nIHRoZSBodW1vcmlzdHMgb2Z7WyYqJl19IFBhbmRlbW9uaXVtLiBIaXMgYnJ1dGFsaXR5IGlzIA0KYSBtYW5uZXIgb2Ygam9raW5nIHdpdGggYSBwdXJwb3NlLiBXaGVuIGhpc3tbJiomXX0gbW90aGVyLCANCndpdGggUXVlZW4gRWxpemFiZXRoLCBjb21lcyBieSBcIiBjb3Bpb3VzIGluIGV4Y2xhaW1zLFwiIA0KcmVhZHkgdG97WyYqJl19IFwiIHNtb3RoZXIgaGVyIGRhbW5lZCBzb24gaW4gdGhlIGJyZWF0aCBvZiBiaXQtIA0KdGVyIHdvcmRzLFwiIHRoZSBtaXJ0aGZ1bCBSe1smKiZdfWljaGFyZCBjYWxscyBmb3IgYSBmbG91cmlzaCBvZiANCnRydW1wZXRzIHRvIGRyb3duIHRoZXNlIHNocmlsbCBmZW1hbGUgdm9pY2V7WyYqJl19cyA6IA0KDQpcIiBBIGZsb3VyaXNoLCB0cnVtcGV0cyAhIHN0cmlrZSBhbGFydW0sIGRydW1zICEgDQpMZXQgbm90IHRoZSBoZWF2ZW57WyYqJl19cyBoZWFyIHRoZXNlIHRlbGwtdGFsZSB3b21lbiANClJhaWwgb24gdGhlIExvcmRcJ3MgYW5vaW50ZWQuIFN0cmlrZSwgSSBzYXkgIVwne1smKiZdfSogDQoNCk9uIGFuIG9jY2FzaW9uIHdoZW4gaHlwb2NyaXN5IGlzIG1vcmUgc2VydmljZWFibGUgdGhhbiANCmJydXRhbGl0eSwgUml7WyYqJl19Y2hhcmQga25lZWxzIHRvIGltcGxvcmUgaGlzIG1vdGhlclwncyBibGVzc2luZywgDQpidXQgaGFzIGEgY2hhcmFjdGVyaXN0aWMgd297WyYqJl19cmQgb2YgY29udGVtcHR1b3VzIGltcGlldHkgdG8gDQp1dHRlciBhc2lkZSA6IA0KDQpcIiBEdWNoZXNzLiBHb2QgYmxlc3MgdGhlZSB7WyYqJl19YW5kIHB1dCBtZWVrbmVzcyBpbiB0aHkgYnJlYXN0LCANCkxvdmUsIGNoYXJpdHksIG9iZWRpZW5jZSwgYW5kIHRydWUgZHV0eS4gDXtbJiomXX0KDQpSaWNoYXJkLiBBbWVuICEgYW5kIG1ha2UgbWUgZGllIGEgZ29vZCBvbGQgbWFuICEgDQpUaGF0IGlzIHRoZSBidXR0LWVuZCBve1smKiZdfWYgYSBtb3RoZXJcJ3MgYmxlc3NpbmcgOyANCkkgbWFydmVsIHRoYXQgaGVyIGdyYWNlIGRpZCBsZWF2ZSBpdCBvdXQuXCIgDQoNCkhlIHtbJiomXX1wbGF5cyBoaXMgcGFydCBiZWZvcmUgaGlzIGZ1dHVyZSB3aWZlLCB0aGUgTGFkeSANCkFubmUsIGxheWluZyBvcGVuIGhpcyBicmVhe1smKiZdfXN0IHRvIHRoZSBzd29yZFwncyBwb2ludCB3aXRoIA0KYSBtYWxpY2lvdXMgY29uZmlkZW5jZS4gSGUga25vd3MgdGhlIG1lYXN1cmUge1smKiZdfW9mIHdvbS0gDQphblwncyBmcmFpbHR5LCBhbmQgcmVsaWVzIG9uIHRoZSBzcGlyaXR1YWwgZm9yY2Ugb2YgaGlzIGF1ZGFjLSANCml0e1smKiZdfXkgYW5kIGRpc3NpbXVsYXRpb24gdG8gc3ViZHVlIHRoZSB3ZWFrIGhhbmQgd2hpY2ggdHJpZXMgDQp0byBsaWZ0IHRoZSBzd29yZC57WyYqJl19IFdpdGggbm8gZnJpZW5kcyB0byBiYWNrIGhpcyBzdWl0LCB3aXRoIA0Kbm90aGluZyBidXQgXCdcJyB0aGUgcGxhaW4gZGV2aWwsIGFue1smKiZdfWQgZGlzc2VtYmxpbmcgbG9va3MsXCIgaGUgDQp3aW5zIGhpcyBicmlkZS4gVGhlIGhpZGVvdXMgaXJvbnkgb2Ygc3VjaCBhIGNvdXJ0e1smKiZdfXNoaXAsIA0KdGhlIG1vY2tlcnkgaXQgaW1wbGllcyBvZiBodW1hbiBsb3ZlLCBpcyBlbm91Z2ggdG8gbWFrZSANCmEgbWFuIFwiIHlve1smKiZdfXVyIG9ubHkgamlnbWFrZXIsXCIgYW5kIHNlbmRzIFJpY2hhcmRcJ3MgYmxvb2QgDQpkYW5jaW5nIGFsb25nIGhpcyB2ZWlucy4gDQoNCntbJiomXX1XaGlsZSBSaWNoYXJkIGlzIHBsb3R0aW5nIGZvciB0aGUgY3Jvd24uIExvcmQgSGFzdGluZ3MgDQp0aHJlYXRlbnMgdG8gcHJvdmUge1smKiZdfWFuIG9ic3RhY2xlIGluIHRoZSB3YXkuIFdoYXQgaXMgdG8gDQpoZlwiIGRvbmUgPyBCdWNraW5naGFtIGlzIGR1YmlvdXMgYW5kIHRle1smKiZdfW50YXRpdmUgOiANCg0KXCIgTm93LCBteSBsb3JkLCB3aGF0IHNoYWxsIHdlIGRvLCBpZiB3ZSBwZXJjZWl2ZSANCkxvcmQgSGFzdGlue1smKiZdfWdzIHdpbGwgbm90IHlpZWxkIHRvIG91ciBjb21wbG90cyA/XCIgDQoNClRoZSBFbmdsaXNoIEhpc3RvcmljYWwgUGxheXMuIDE2NSANe1smKiZdfQoNCldpdGggc2hhcnAgZGV0b25hdGlvbiwgcXVpY2tseSBiZWd1biBhbmQgcXVpY2tseSBvdmVyLCANClJpY2hhcmRcJ3MgYW5zd2Vye1smKiZdfSBpcyBkaXNjaGFyZ2VkLCBcJ14gQ2hvcCBvZmYgaGlzIGhlYWQsIG1hbiAhXCIgDQpUaGVyZSBjYW4gYmUgbm8gYmVnaW5uaW5nLCBtaXtbJiomXX1kZGxlLCBvciBlbmQgdG8gYSBkZWVkIHNvIA0Kc2ltcGxlIGFuZCBzbyBzdW1tYXJ5LiBQcmVzZW50bHksIEhhc3RpbmdzLCBtYWtpe1smKiZdfW5nIA0Kc3VuZHJ5IHNtYWxsIGFzc2lnbmF0aW9ucyBmb3IgZnV0dXJlIGRheXMgYW5kIHdlZWtzLCANCmdvZXMsIGEgbXVyZGVyZWR7WyYqJl19IG1hbiwgdG8gdGhlIGNvbmZlcmVuY2UgYXQgdGhlIFRvd2VyLiANClJpY2hhcmQsIHdob3NlIHN0YXJ0bGluZyBmaWd1cmUgZW1lcntbJiomXX1nZXMgZnJvbSB0aGUgYmFjay0gDQpncm91bmQgdGhyb3VnaG91dCB0aGUgcGxheSB3aXRoIHNtYWxsIHJlZ2FyZCBmb3IgdmVyaS0ge1smKiZdfQ0Kc2ltaWxpdHVkZSwgYW5kIGFsd2F5cyBhdCB0aGUgbW9zdCBlZmZlY3RpdmUgbW9tZW50LCBpcyANCnN1ZGRlbmx5IG9uIHRoZSB7WyYqJl19c3BvdCwganVzdCBhcyBIYXN0aW5ncyBpcyBhYm91dCB0byBnaXZlIA0KaGlzIHZvaWNlIGluIHRoZSBjb25mZXJlbmNlIGFzIHRob3tbJiomXX11Z2ggaGUgd2VyZSB0aGUgcmVwcmUtIA0Kc2VudGF0aXZlIG9mIHRoZSBhYnNlbnQgRHVrZS4gUmljaGFyZCBpcyBwcmVwYXJlZCwge1smKiZdfXdoZW4gDQp0aGUgb3Bwb3J0dW5lIGluc3RhbnQgaGFzIGFycml2ZWQsIHRvIHNwcmluZyBhIG1pbmUgdW5kZXIgDQpIYXN0aW5nc1wne1smKiZdfXMgZmVldC4gQnV0IG1lYW53aGlsZSBhIG1hdHRlciBvZiBlcXVhbCBpbS0gDQpwb3J0YW5jZSBjb25jZXJucyBoaW0g4oCUIG15IEx7WyYqJl19b3JkIG9mIEVseVwncyBzdHJhd2JlcnJpZXM7IA0KdGhlIGZsYXZvciBvZiBIb2xib3JuIHN0cmF3YmVycmllcyBpcyBleHF1aXNpdGV7WyYqJl19LCBhbmQgdGhlIA0KZnJ1aXQgbXVzdCBiZSBzZW50IGZvci4gUmljaGFyZFwncyBkZXNpcmUgdG8gYXBwZWFyIGRpcy0gDQplbmdhZ2V7WyYqJl19ZCBmcm9tIHNpbmlzdGVyIHRob3VnaHQgaXMgbGVzcyBpbXBvcnRhbnQgdG8gbm90ZSANCnRoYW4gUmljaGFyZFwncyBuZWVkIG9mIGl7WyYqJl19bmR1bGdpbmcgYSBjeW5pY2FsIGNvbnRlbXB0IG9mIA0KaHVtYW4gbGlmZS4gVGhlIGV4cGxvc2lvbiB0YWtlcyBwbGFjZSA7IEhhc3tbJiomXX10aW5ncyBpcyANCnNlaXplZCA7IGFuZCB0aGUgZGVsaWNhY2llcyBhcmUgcmVzZXJ2ZWQgdW50aWwgdGhlIGhlYWQgDQpvZiBSaWNoe1smKiZdfWFyZFwncyBlbmVteSBpcyBvZmYuIFRoZXJlIGlzIGEgd2FudG9ubmVzcyBvZiANCmRpYWJsZXJpZSBpbiB0aGlzIGluY2lkZW50IDoge1smKiZdfQ0KDQpcIiBUYWxrXCdzdCB0aG91IHRvIG1lIG9mIGlmIDggPyBUaG91IGFydCBhIHRyYWl0b3LigJQgDQpPZmYgd2l0aCBoaXMgaGVhZHtbJiomXX0gISBOb3csIGJ5IFNhaW50IFBhdWwsIEkgc3dlYXIgDQpJIHdpbGwgbm90IGRpbmUgdW50aWwgSSBzZWUgdGhlIHNhbWUgIVwiKiANCntbJiomXX0NClRoZSBmaWVyeSBlbmVyZ3kgb2YgUmljaGFyZCBpcyBhdCBpdHMgc2ltcGxlc3QsIHVubWluLSANCmdsZWQgd2l0aCBpcm9ueSBve1smKiZdfXIgZGlzc2ltdWxhdGlvbiBpbiBncmVhdCBkYXlzIG9mIG1pbGl0YXJ5IA0KbW92ZW1lbnQgYW5kIG9mIGJhdHRsZS4gVGhlbiB0aGV7WyYqJl19IGZvcmNlIHdpdGhpbiBoaW0gDQpleHBlbmRzIGl0c2VsZiBpbiBhIHBhcm94eXNtIHdoaWNoIGhhcyBhbGwgdGhlIGludGVuc2l0eXtbJiomXX0gDQpvZiB1bmdvdmVybmFibGUgc3Bhc21vZGljIGFjdGlvbiwgYW5kIHdoaWNoIGlzIHlldCBvci0gDQpnYW5pemVkIGFuZCBjb250e1smKiZdfXJvbGxlZCBieSBoaXMgaW50ZWxsZWN0LiBUaGVuIGhlIGlzIGVuLSANCg0KKiBUaGlzIHNjZW5lLCBpbmNsdWRpbmcgdGhlIGluY2l7WyYqJl19ZGVudCBvZiB0aGUgZGlzaCBvZiBzdHJhd2JlcnJpZXMsIGlzIGZyb20gDQpTaXIgVC4gTW9yZVwncyBoaXN0b3J5LiBTZWUgQ291cnR7WyYqJl19ZW5heVwncyBcIiBDb21tZW50YXJpZXMgb24gU2hha3NwZWFyZSxcIiB2b2wgDQppaS4sIHBwLiA4NC04XCc3LiANCg0KMSA2NiBTaGFrc3B7WyYqJl19ZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KZ2FnZWQgYXQgaGlzIHRydWVzdCBkZXZvdGlvbnMsIGFuZCBudW1iZXJzIGhpc3tbJiomXX0gQXZlLU1hLSANCnJpYXMgbm90IHdpdGggYmVhZHMsIGJ1dCB3aXRoIHJpbmdpbmcgc3Ryb2tlcyB1cG9uIHRoZSANCmhlbG1ldHMge1smKiZdfW9mIGhpcyBmb2VzLl4gSGUgaXMgaW5zcGlyZWQgd2l0aCAqKnRoZSBzcGxlZW4gDQpvZiBmaWVyeSBkcmFnb25zIDtcIiBcIiBhIHRob3tbJiomXX11c2FuZCBoZWFydHMgYXJlIGdyZWF0IHdpdGhpbiANCmhpcyBib3NvbS5cIiBPbiB0aGUgZXZlIG9mIHRoZSBiYXR0bGUgb2YgQm9zd3tbJiomXX1vcnRoIEZpZWxkLCANClJpY2hhcmQsIHdpdGggdW5jb250cm9sbGFibGUgZWFnZXJuZXNzLCB1cmdlcyBoaXMgaW5xdWlyeSANCmlue1smKiZdfXRvIHRoZSBtaW51dGlhZSBvZiBwcmVwYXJhdGlvbiB3aGljaCBtYXkgaW5zdXJlIHN1Yy0gDQpjZXNzLiBIZSBsYWNrcyBoaXMgdXN7WyYqJl19dWFsIGFsYWNyaXR5IG9mIHNwaXJpdCwgeWV0IGEgZG96ZW4gDQpzdWJhbHRlcm5zIHdvdWxkIGhhcmRseSBzdWZsUy5jZSB0byByZXtbJiomXX1jZWl2ZSB0aGUgb3JkZXJzIA0Kd2hpY2ggaGUgcmFwaWRseSBlbnVuY2lhdGVzLiBIZSBpcyB1cG9uIHRoZSB3aW5nIG9mIA0KXCIgZntbJiomXX1pZXJ5IGV4cGVkaXRpb24gOlwnXCcgDQoNClwiIEkgd2lsbCBub3Qgc3VwIHRvLW5pZ2h0LiBHaXZlIG1lIHNvbWUgaW5rIGFuZCBwYXBle1smKiZdfXIuIA0KV2hhdCwgaXMgbXkgYmVhdmVyIGVhc2llciB0aGFuIGl0IHdhcyA/IA0KQW5kIGFsbCBteSBhcm1vciBsYWlkIHdpdGhpbiB7WyYqJl19bXkgdGVudCA/IA0KDQpDYXRlc2J5LiBJdCBpcywgbXkgbGllZ2UsIGFuZCBhbGwgdGhpbmdzIGFyZSBpbiByZWFkaW5lc3MuIA0KDXtbJiomXX0KSywgUmljaC4gR29vZCBOb3Jmb2xrLCBoaWUgdGhlZSB0byB0aHkgY2hhcmdlIDsgDQpVc2UgY2FyZWZ1bCB3YXRjaCwgY2hvb3Nle1smKiZdfSB0cnVzdHkgc2VudGluZWxzLiANCg0KTm9yZm9say4gSSBnbywgbXkgbG9yZC4gDQoNCksuIFJpY2guIFN0aXIgd2l0aCB0aGUgbGF7WyYqJl19cmsgdG8tbW9ycm93LCBnZW50bGUgTm9yZm9say4gDQoNCk5vcmZvbGsuIEkgd2FycmFudCB5b3UsIG15IGxvcmQuIA0KDQpLLiBSaXtbJiomXX1jaC4gQ2F0ZXNieSAhIA0KDQpDYXRlc2J5LiBNeSBsb3JkID8gDQoNCksuIFJpY2guIFNlbmQgb3V0IGEgcHVyc3VpdmFudCBhdCBhe1smKiZdfXJtcyANClRvIFN0YW5sZXlcJ3MgcmVnaW1lbnQgOyBiaWQgaGltIGJyaW5nIGhpcyBwb3dlciANCkJlZm9yZSBzdW5yaXNpbmcsIGxle1smKiZdfXN0IGhpcyBzb24gR2VvcmdlIGZhbGwgDQpJbnRvIHRoZSBiVW5kIGNhdmUgb2YgZXRlcm5hbCBuaWdodC4gDQoNCkZpbGwgbWUgYSB7WyYqJl19Ym93bCBvZiB3aW5lLiBHaXZlIG1lIGEgd2F0Y2guIFtFeGl0IENhdGVzYnksIA0KU2FkZGxlIFdoaXRlIFN1cnJleSBmb3IgdGhlIHtbJiomXX1maWVsZCB0by1tb3Jyb3cuIA0KTG9vayB0aGF0IG15IHN0YXZlcyBiZSBzb3VuZCwgYW5kIG5vdCB0b28gaGVhdnkuIA0KUmF0Y2xpe1smKiZdfWZmIElcIiANCg0KQW5kLCBsZWFybmluZyBmcm9tIFJhdGNsaWZsRSB0aGF0IE5vcnRodW1iZXJsYW5kIGFuZCANClN1cnJleSBhcmUge1smKiZdfWFsZXJ0LCBnaXZpbmcgaGlzIGxhc3QgZGlyZWN0aW9uIHRoYXQgaGlzIGF0dGVuZC0gDQphbnQgc2hvdWxkIHJldHVybiBhdCBtaWR7WyYqJl19bmlnaHQgdG8gaGVscCBoaW0gdG8gYXJtLCBLaW5nIA0KUmljaGFyZCByZXRpcmVzIGludG8gaGlzIHRlbnQuIA0KDQpJbiBhbGwgaHtbJiomXX1pcyBtaWxpdGFyeSBtb3ZlbWVudHMsIGFzIGluIHRoZSB3aG9sZSBvZiBSaWNoLSANCmFyZFwncyBjYXJlZXIsIHRoZXJlIGlzIHNvbXtbJiomXX1ldGhpbmcgZWxzZSB0aGFuIHNlbGYtc2Vla2luZy4gSXQgDQppcyB0cnVlIHRoYXQgUmljaGFyZCwgbGlrZSBFZG11bmQsIGxpa2Uge1smKiZdfWxhZ28sIGlzIHNvbGl0YXJ5OyANCg0KKiAzIEhlbnIpaSBWSS5eIGFjdCBpaS4sIHNvLiAxLCANCg0KVGhlIEVuZ2xpc2ggSGlzdG97WyYqJl19cmljYWwgUGxheXMuIDEgNiA3IA0KDQpoZSBoYXMgbm8gZnJpZW5kLCBubyBicm90aGVyIDsgXCIgSSBhbSBteXNlbGYgYWxvbmUgO1wie1smKiZdfSBhbmQgDQphbGwgdGhhdCBFaWNoYXJkIGFjaGlldmVzIHRlbmRzIHRvIGhpcyBvd24gc3VwcmVtYWN5LiANCk5ldmVydGhlbGVzcyx7WyYqJl19IHRoZSBjZW50cmFsIGNoYXJhY3RlcmlzdGljIG9mIFJpY2hhcmQgaXMgbm90IA0Kc2VsZi1zZWVraW5nIG9yIGFtYml0aW9uLiBJdHtbJiomXX0gaXMgdGhlIG5lY2Vzc2l0eSBvZiByZWxlYXNpbmcgDQphbmQgbGV0dGluZyBsb29zZSB1cG9uIHRoZSB3b3JsZCB0aGUgZm9yY2Uge1smKiZdfXdpdGhpbiBoaW0gDQoobWVyZSBmb3JjZSBpbiB3aGljaCB0aGVyZSBpcyBub3RoaW5nIG1vcmFsKSwgdGhlIG5lY2VzLSANCnNpdHl7WyYqJl19IG9mIGRlcGxveWluZyBiZWZvcmUgaGltc2VsZiBhbmQgb3RoZXJzIHRoZSB0ZXJyaWJsZSANCnJlc291cmNlcyBvZiBoaXMgd2lsbHtbJiomXX0uIE9uZSBodW1hbiB0aWUgU2hha3NwZXJlIGF0dHJpYi0gDQp1dGVzIHRvIEVpY2hhcmQgOiBjb250ZW1wdHVvdXMgdG8gaGlzIG1ve1smKiZdfXRoZXIsIGluZGlmZmVyLSANCmVudCB0byB0aGUgbGlmZSBvciBkZWF0aCBvZiBDbGFyZW5jZSBhbmQgRWR3YXJkIGV4Y2VwdCANCmF7WyYqJl19cyB0aGVpciBsaWZlIG9yIGRlYXRoIG1heSBzZXJ2ZSBoaXMgb3duIGF0dGVtcHQgdXBvbiANCnRoZSBjcm93biwgY3luaWNhbGx5IHtbJiomXX1sb3ZlbGVzcyB0b3dhcmRzIGhpcyBmZWVibGUgYW5kIHVuLSANCmhhcHB5IHdpZmUsIEVpY2hhcmQgYWRtaXJlcyB3aXRoIGFuIGVue1smKiZdfXRodXNpYXN0aWMgYWRtaS0gDQpyYXRpb24gaGlzIGdyZWF0IGZhdGhlciA6IA0KDQpcIiBNZXRoaW5rcyBcJ3RpcyBwcml6ZSBlbm91Z3tbJiomXX1oIHRvIGJlIGhpcyBzb24uXCIgDQpBbmQgdGhlIG1lbW9yeSBvZiBoaXMgZmF0aGVyIHN1cHBsaWVzIGhpbSB3aXRoIGEgDQpmYW1pbHtbJiomXX15IHByaWRlLCB3aGljaCwgaG93ZXZlciwgZG9lcyBub3QgaW1wbHkgYXR0YWNobWVudCANCm9yIGxveWFsdHkgdG8gYW55IG1lbWJle1smKiZdfXIgb2YgaGlzIGhvdXNlLiANCg0KXCIgQnV0IEkgd2FzIGJvcm4gc28gaGlnaCA7IA0KT3VyIGFlcnkgYnVpbGRldGggaW4gdGhlIGNle1smKiZdfWRhclwncyB0b3AsIA0KQW5kIGRhbFVlcyB3aXRoIHRoZSB3aW5kIGFuZCBzY29ybnMgdGhlIHN1bi5cIiANCg0KSGlzdG9yeSBzdXBwbHtbJiomXX1pZWQgU2hha3NwZXJlIHdpdGggdGhlIGZpZ3VyZSBvZiBoaXMgDQpFaWNoYXJkLiBIZSBoYXMgYmVlbiBhY2N1c2VkIG9mIGRhcmtle1smKiZdfW5pbmcgdGhlIGNvbG9ycyANCmFuZCBleGFnZ2VyYXRpbmcgdGhlIGRlZm9ybWl0eSBvZiB0aGUgY2hhcmFjdGVyIG9mIHRoZSANCmh7WyYqJl19aXN0b3JpY2FsIEVpY2hhcmQgZm91bmQgaW4gTW9yZSBhbmQgSG9saW5zaGVkLiBUaGUgDQpmYWN0IGlzIHByZWNpc2VseSB0aGUgY3tbJiomXX1vbnRyYXJ5LiBUaGUgbXl0aGljIEVpY2hhcmQgb2YgDQp0aGUgaGlzdG9yaWFucyAoYW5kIHRoZXJlIG11c3QgaGF2ZSBiZWVuIHNve1smKiZdfW1lIGFwcGFsbGluZyANCmZhY3QgdG8gb3JpZ2luYXRlIHN1Y2ggYSBteXRoKSBpcyBtYWRlIHNvbWV3aGF0IGxlc3MgDQpncmltIGF7WyYqJl19bmQgYmxvb2R5IGJ5IHRoZSBkcmFtYXRpc3QuXiBFc3NlbnRpYWxseSwgaG93LSANCg0KKiBTZWUgdGhlIGRldGFpbGVkIHN0dWR5IHtbJiomXX1vZiB0aGlzIHBsYXkgYnkgVy4gT2VjaGVsaGF1c2VyLCBpbiBKYWhyYnVjaCBkZXIgDQpkZXV0c2NoZW4gU2hha2VzcGVhcmUtIEdle1smKiZdfXNlbGxzY2hhZnQsIHZvbC4gaWlpLiwgcHAuIDM3LTM5LCBhbmQgcHAuIDQ3LCA1My4gSG9sLSANCmluc2hlZFwnIHMgdHJlYXRtZW50e1smKiZdfSBvZiB0aGUgY2hhcmFjdGVyIG9mIFJpY2hhcmQgaXMgaGFyZGx5IGluIGhhcm1vbnkgd2l0aCANCml0c2VsZi4gRnJvbSB0aGUgZGV7WyYqJl19YXRoIG9mIEVkd2FyZCBJVi4gb253YXJkcyB0aGUgUmljaGFyZCBvZiBIb2xpbnNoZWQgDQpyZXNlbWJsZXMgU2hha3NwZXJlXCdzIFJ7WyYqJl19aWNoYXJkLCBidXQgcG9zc2Vzc2VzIGZhaW50ZXIgdHJhY2VzIG9mIGh1bWFuaXR5LiANCuKAoiogV2VubiBoaWVybmFjaCBhbHNvIHtbJiomXX10aGF0c2FjaGxpY2ggendlaSBIb2xpbnNoZWRcJyBzY2hlIFZlcnNpb25lbiBkZXMgQ2hhLSANCg0KMSA2OCBTaGFrc3BlcmUg4oCUIHtbJiomXX1IaXMgTWluZCBhbmQgQXJ0LiANCg0KZXZlciwgU2hha3NwZXJlXCdzIFJpY2hhcmQgaXMgb2YgdGhlIGRpYWJvbGljYWwgKHNvbWV0aHtbJiomXX1pbmcgDQptb3JlIGRyZWFkZnVsIHRoYW4gdGhlIGNyaW1pbmFsKSBjbGFzcy4gSGUgaXMgbm90IHdlYWssIA0KYmVjYXVzZSBoZSBpe1smKiZdfXMgc2luZ2xlLWhlYXJ0ZWQgaW4gaGlzIGRldm90aW9uIHRvIGV2aWwuIA0KUmljaGFyZCBkb2VzIG5vdCBzZXJ2ZSB0dl5vIG1hc3R7WyYqJl19ZXJzLiBIZSBpcyBub3QsIGxpa2UgDQpKb2huLCBhIGRhc3RhcmRseSBjcmltaW5hbCA7IGhlIGlzIG5vdCwgbGlrZSBNYWNiZXRoLHtbJiomXX0gam95LSANCmxlc3MgYW5kIGZhaXRobGVzcyBiZWNhdXNlIGhlIGhhcyBkZXNlcnRlZCBsb3lhbHR5IGFuZCANCmhvbm9yLiBIZSBoe1smKiZdfWFzIGEgZmllcmNlIGpveSwgYW5kIGhlIGlzIGFuIGludGVuc2UgYmVsaWV2ZXIgDQrigJQgaW4gdGhlIGNyZWVkIG9mIGhlbGwuIEF7WyYqJl19bmQgdGhlcmVmb3JlIGhlIGlzIHN0cm9uZy4gSGUgDQppbnZlcnRzIHRoZSBtb3JhbCBvcmRlciBvZiB0aGluZ3MsIGFuZCB0cmllc3tbJiomXX0gdG8gbGl2ZSBpbiB0aGlzIA0KaW52ZXJ0ZWQgc3lzdGVtLiBIZSBkb2VzIG5vdCBzdWNjZWVkIDsgaGUgZGFzaGVzIGhpbS0gDQpze1smKiZdfWVsZiB0byBwaWVjZXMgYWdhaW5zdCB0aGUgbGF3cyBvZiB0aGUgd29ybGQgd2hpY2ggaGUgaGFzIA0Kb3V0cmFnZWQuIFlldCwgd2h7WyYqJl19aWxlIEpvaG4gaXMgd2hvbGx5IGRlc3BpY2FibGUsIHdlIGNhbi0gDQpub3QgcmVmcmFpbiBmcm9tIHlpZWxkaW5nIGEgY2VydGFpbntbJiomXX0gdHpeaWJ1dGUgb2YgYWRtaXJhdGlvbiANCnRvIHRoZSBib2xkZXIgbWFsZWZhY3Rvciwgd2hvIHZlbnR1cmVzIG9uIHRoZSBkYXJpe1smKiZdfW5nIGV4LSANCnBlcmltZW50IG9mIGNob29zaW5nIGV2aWwgZm9yIGhpcyBnb29kLiANCg0KU3VjaCBhbiBleHBlcmltZW50LCBTaGF7WyYqJl19a3NwZXJlIGRlY2xhcmVzIGVtcGhhdGljYWxseSwgDQphcyBleHBlcmllbmNlIGFuZCBoaXN0b3J5IGRlY2xhcmUsIG11c3QgaW4gdHtbJiomXX1oZSBlbmQgZmFpbC4gDQpUaGUgZ2hvc3RzIG9mIHRoZSB1c3VycGVyXCdzIHZpY3RpbXMgcmlzZSBiZXR3ZWVuIHRoZSANCmNhbXBzLHtbJiomXX0gYW5kIGFyZSB0byBSaWNoYXJkIHRoZSBFcmlubnllcywgdG8gUmljaG1vbmQgDQppbnNwaXJlcnMgb2YgaG9wZSBhbmQgdmljdG9ye1smKiZdfWlvdXMgY291cmFnZS4gQXQgbGVuZ3RoIA0KUmljaGFyZCB0cmVtYmxlcyBvbiB0aGUgYnJpbmsgb2YgYW5uaWhpbGF0aW9uXiB0cmV7WyYqJl19bWJsZXMgDQpvdmVyIHRoZSBsb3ZlbGVzcyBndWxmIDogDQoNClwiIEkgc2hhbGwgZGVzcGFpciA7IHRoZXJlIGlzIG5vIGNyZWF0dXJ7WyYqJl19ZSBsb3ZlcyBtZSA7IA0KQW5kIGlmIEkgZGllLCBubyBzb3VsIHNoYWxsIHBpdHkgbWUuXCIgDQoNCkJ1dCB0aGUgc3RpciBvZiBiYXR7WyYqJl19dGxlIHJlc3RvcmVzIGhpbSB0byByZXNvbHV0ZSB0aG91Z2h0cyDigJQgDQpeXCcgQ29tZSwgYnVzdGxlLCBidXN0bGUgOyBjYXBhcml7WyYqJl19c29uIG15IGhvcnNlIFwiIOKAlCBhbmQgaGUgZGllcyANCmluIGEgZmllcmNlIHBhcm94eXNtIG9mIGFjdGlvbi4gUmljaG1vbmQgY297WyYqJl19bnF1ZXJzLCBhbmQgDQpoZSBjb25xdWVycyBleHByZXNzbHkgYXMgdGhlIGNoYW1waW9uIGFuZCByZXByZXNlbnRhdGl2ZSANCm9mIHtbJiomXX10aGUgbW9yYWwgb3JkZXIgb2YgdGhlIHdvcmxkLCB3aGljaCBSaWNoYXJkIGhhZCBlbi0gDQpkZWF2b3JlZCB0byBzZXQgYXNpZGUge1smKiZdfTogDQoNCnJha3RlcnMgdW5kIGRlciBIYW5kbHVuZ2VuIFJpY2hhcmRcJ3Mgdm9ybGllZ2VuLCBzbyBoYXQgU2hha2VzcGVhcmUgYWxse1smKiZdfWVyLSANCmRpbmdzIGRpZSBhdWYgTW9yZSBiYXNpcnRlLCBhbHNvIGRpZSBzY2h3YXJ6ZXJlLCBnZXdhaGx0OyBpaWJlciBkaWVzZSB7WyYqJl19aXN0IGVyIA0KYWJlciBuaWNodCwgd2llIHNvIHZpZWxmYWNoIGJlaGF1cHRldCB3aXJkLCBoaW5hdXNnZWdhbmdlbiwgc29uZGVybntbJiomXX0gZXIgaGF0IA0Kc2llIHNvZ2FyIGdlbWlsZGVydCwgaGF0IGRpZSBGYWRlbiwgd2VsY2hlIGRhcyBVbmdlaGV1ZXIgbm9jaCBtaXQge1smKiZdfWRlciANCk1lbnNjaGhlaXQgdmVya25paXBmZW4sIHZlcnN0YXJrdCwgc3RhdHQgc2llIGdhbnogenUgbG9zZW4uXCIgDQoNClRoZSBFe1smKiZdfW5nbGlzaCBIaXN0b3JpY2FsIFBsYXlzLiAxNjkgDQoNClwiIFRob3UsIHdob3NlIGNhcHRhaW4gSSBhY2NvdW50IG15c2VsZiwgDQpMe1smKiZdfW9vayBvbiBteSBmb3JjZXMgd2l0aCBhIGdyYWNpb3VzIGV5ZSA7IA0KUHV0IGluIHRoZWlyIGhhbmRzIHRoeSBicnVpc2luZyBpcm97WyYqJl19bnMgb2Ygd3JhdGgsIA0KVGhhdCB0aGV5IG1heSBjcnVzaCBkb3duIHdpdGggYSBoZWF2eSBmYWxsIA0KVGhlIHVzdXJwaW5nIGhlbHtbJiomXX1tZXRzIG9mIG91ciBhZHZlcnNhcmllcyAhIA0KTWFrZSB1cyB0aHkgbWluaXN0ZXJzIG9mIGNoYXN0aXNlbWVudC4gDQpUaGF0IHdle1smKiZdfSBtYXkgcHJhaXNlIHRoZWUgaW4gdGh5IHZpY3RvcnkuXCIgDQoNClRoZSBmZW1hbGUgZmlndXJlcyBvZiB0aGlzIHBsYXkg4oCUIFF1e1smKiZdfWVlbiBFbGl6YWJldGgsIA0KUXVlZW4gTWFyZ2FyZXQsIHRoZSBEdWNoZXNzIG9mIFlvcmssIHRoZSBMYWR5IEFubmUg4oCUIA0KYW57WyYqJl19ZCB3aXRoIHRoZXNlIHRoZSB3b21lbiBvZiBTaGFrc3BlcmVcJ3Mgb3RoZXIgaGlzdG9yaWNhbCANCnBsYXlzLCB3b3VsZCBmb3JtIGF7WyYqJl19biBpbnRlcmVzdGluZyBzdWJqZWN0IGZvciBhIHNlcGFyYXRlIA0Kc3R1ZHkuIFRoZSB3b21lbiBvZiB0aGUgaGlzdG9yaWVzIGRvIHtbJiomXX1ub3QgYXR0YWluIHRoZSANCmJlc3QgaGFwcGluZXNzIG9mIHdvbWVuLiBJbiB0aGUgcm91Z2ggc3RydWdnbGUgb2YgaW4tIA0KdGVye1smKiZdfWVzdHMsIG9mIHBhcnRpZXMsIG9mIG5hdGlvbnMsIHRoZXkgYXJlIGRlZnJhdWRlZCBvZiB0aGVpciANCmpveSwgYW5kIG9mIGl0cyB7WyYqJl19b2JqZWN0cy4gTGlrZSBDb25zdGFuY2UsIGxpa2UgRWxpemFiZXRoLCANCmxpa2UgTWFyZ2FyZXQsIGxpa2UgdGhlIFF1ZWVuIG9mIHtbJiomXX10aGUgc2Vjb25kIFJpY2hhcmQsIA0KbGlrZSBLYXRoYXJpbmUgb2YgQXJhZ29uLCB0aGV5IG1vdXJuIOKAlCBzb21lIHRoZSBsb3Nze1smKiZdfSBvZiANCmNoaWxkcmVuLCBzb21lIG9mIGh1c2JhbmRzLCBzb21lIG9mIGJyb3RoZXJzLCBhbmQgYWxsIG9mIA0KbG92ZS4gT3IgZWx7WyYqJl19c2UsIGxpa2UgSGFycnkgUGVyY3lcJ3Mgd2lmZSAod2hvIGFsc28gbGl2ZXMgdG8gDQpsYW1lbnQgaGVyIGh1c2JhbmRcJ3MgZGVhdGgse1smKiZdfSBhbmQgdG8gdHJlbWJsZSBmb3IgaGVyIGZhLSANCnRoZXJcJ3MgZmF0ZSksXCJeIHRoZXkgYXJlIHRoZSB3aXZlcyBvZiBtZW4gb2YgYXtbJiomXX1jdGlvbiB0byB3aG9tIA0KdGhleSBhcmUgZGVhciwgYnV0IFwiIGluIHNvcnQgb3IgbGltaXRhdGlvbixcIiBkd2VsbGluZyBidXQgaW57WyYqJl19IA0KdGhlIHN1YnVyYnMgb2YgdGhlaXIgaHVzYmFuZHNcJyBnb29kIHBsZWFzdXJlLCANCg0KXCIgVG8ga2VlcCB3aXRoIHlvdSBhdCBte1smKiZdfWVhbHMsIGNvbWZvcnQgeW91ciBiZWQsIA0KQW5kIHRhbGsgd2l0aCB5b3Ugc29tZXRpbWVzLiBcJ14gDQoNClRoZSB3b29pbmcgb2Yge1smKiZdfXRoZSBGcmVuY2ggS2F0aGFyaW5lIGJ5IEtpbmcgSGVucnkgDQpWLiBpcyBidXNpbmVzcy1saWtlLCBhbmQgc291bmRseSBhZmZlY3R7WyYqJl19aW9uYXRlLCBidXQgYnkgbm8gDQptZWFucyBvZiB0aGUga2luZCB3aGljaCBpcyBtb3N0IHNhdGlzZnlpbmcgdG8gdGhlIGhlYXJ0IHtbJiomXX0NCm9mIGEgc2Vuc2l0aXZlIG9yIGFyZGVudCB3b21hbi4gVGhhdCBTaGFrc3BlcmUgaGltLSANCnNlbGYgbG92ZWQgaW4gYW5vdGhle1smKiZdfXIgZmFzaGlvbiB0aGFuIHRoYXQgb2YgSG90c3B1ciBvciANCkhlbnJ5IG1pZ2h0IGJlIGluZmVycmVkLCBpZiBubyBvdGhlciBzdWZ7WyYqJl19ZmljaWVudCBldmlkZW5jZSANCndlcmUgZm9ydGhjb21pbmcsIGZyb20gdGhlIGFkbWlyYWJsZSBtb2NrZXJ5IG9mIHRoZSANCmxvdntbJiomXX1lIGdpdmVuIGJ5IG1lbiBvZiBsZXR0ZXJzIGFuZCBtZW4gb2YgaW1hZ2luYXRpb24g4oCUIA0KDQpwb2V0cyBpbiBjaGllZiDigJQge1smKiZdfXdoaWNoIGhlIHB1dHMgaW50byBIZW5yeVwncyBtb3V0aDogDQoNCuKAlCBJIOKAlCANCg0K4oCiIFNlZSB0aGUgcGF0aGV0aWMgc2Nle1smKiZdfW5lLCAyIEhtcnkgSVYsLCBhY3QgaWkuLCBzYy4gMy4gDQoNCjEgNzAgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg17WyYqJl19ClwiIEFuZCB3aGlsZSB0aG91IGxpdmVzdCwgZGVhciBLYXRlLCB0YWtlIGEgZmVsbG93IG9mIHBsYWluIA0KYW5kIHVuY29pbmVkIGN7WyYqJl19b25zdGFuY3k7IGZvciBoZSBwZXJmb3JjZSBtdXN0IGRvIHRoZWUgDQpyaWdodCwgYmVjYXVzZSBoZSBoYXRoIG5vdCB0aGUgZ2lmdHtbJiomXX0gdG8gd29vIGluIG90aGVyIA0KcGxhY2VzIDsgZm9yIHRoZXNlIGZlbGxvd3Mgb2YgaW5maW5pdGUgdG9uZ3VlLCB0aGF0IGNhbiANe1smKiZdfQpyaHltZSB0aGVtc2VsdmVzIGludG8gbGFkaWVzXCcgZmF2b3JzLCB0aGV5IGRvIGFsd2F5cyByZWEtIA0Kc29uIHRoZW1zZWx2ZXMge1smKiZdfW91dCBhZ2Fpbi5cJ1wnIFdhcyB0aGlzIGEgc2tpdCBieSBTaGFrLSANCnNwZXJlIGFnYWluc3QgaGltc2VsZiwgb3IgYWdhaW5zdCBhbntbJiomXX0gaW50ZXJwcmV0YXRpb24gb2YgaGltLSANCnNlbGYgZm9yIHdoaWNoIGhlIHBlcmNlaXZlZCB0aGVyZSB3YXMgYSBnb29kIGRlYWwge1smKiZdfXRvIGJlIA0Kc2FpZCwgZnJvbSBhIHBvaW50IG9mIHZpZXcgb3RoZXIgdGhhbiBoaXMgb3duID8gV2hpbGUgDQp0aGUgcG9ldCB3YXN7WyYqJl19IGJ1eWluZyB1cCBsYW5kIG5lYXIgU3RyYXRmb3JkLCBoZSBjb3VsZCBkZS0gDQpzY3JpYmUgaGlzIGNvdXJ0aWVyIE9zcmljIGFzIHtbJiomXX1cIiB2ZXJ5IHNwYWNpb3VzIGluIHRoZSBwb3NzZXMtIA0Kc2lvbiBvZiBkaXJ0LlwiIElzIHRoaXMgYSBwaWVjZSBvZiBpcm9ueSBzaW17WyYqJl19aWxhciBpbiBraW5kPyANCg0KVGhlIGZpZ3VyZSBvZiBRdWVlbiBNYXJnYXJldCBpcyBwYWluZnVsbHkgcGVyc2lzdGVudCANCnVwb3tbJiomXX1uIHRoZSBtaW5kXCdzIGV5ZSwgYW5kIHR5cmFubml6ZXMsIGFsbW9zdCBhcyBtdWNoIGFzIA0KdGhlIGZpZ3VyZSBvZiBLaW5nIFJpY3tbJiomXX1oYXJkIGhpbXNlbGYsIG92ZXIgdGhlIGltYWdpbmEtIA0KdGlvbi4gXCJBbHRob3VnaCBiYW5pc2hlZCB1cG9uIHBhaW4gb2YgZGVhdHtbJiomXX1oLCBzaGUgcmUtIA0KdHVybnMgdG8gRW5nbGFuZCB0byBhc3Npc3QgYXQgdGhlIGludGVzdGluZSBjb25mbGljdHMgb2YgdGhlIA0Ke1smKiZdfUhvdXNlIG9mIFlvcmsuIFNoYWtzcGVyZSBwZXJzb25pZmllcyBpbiBoZXIgdGhlIGFuLSANCmNpZW50IE5lbWVzaXM7IGhlIGdpdmV7WyYqJl19cyBoZXIgbW9yZSB0aGFuIGh1bWFuIHByb3Bvci0gDQp0aW9ucywgYW5kIHJlcHJlc2VudHMgaGVyIGFzIGEgc29ydCBvZiBzdXBlcntbJiomXX1uYXR1cmFsIGFwcGEtIA0Kcml0aW9uLiBTaGUgcGVuZXRyYXRlcyBmcmVlbHkgaW50byB0aGUgcGFsYWNlIG9mIEVkd2FyZCANCklWe1smKiZdfS4sIHNoZSB0aGVyZSBicmVhdGhlcyBmb3J0aCBoZXIgaGF0cmVkIGluIHByZXNlbmNlIG9mIA0KdGhlIGZhbWlseSBvZiBZb3JrIGF7WyYqJl19bmQgaXRzIGNvdXJ0aWVyIGF0dGVuZGFudHMuIE5vIG9uZSANCmRyZWFtcyBvZiBhcnJlc3RpbmcgaGVyLCBhbHRob3VnaCBzaGUgaXtbJiomXX1zIGFuIGV4aWxlZCB3b21hbiwgDQphbmQgc2hlIGdvZXMgZm9ydGgsIG1lZXRpbmcgbm8gb2JzdGFjbGUsIGFzIHNoZSBoYWQgZW4te1smKiZdfSANCnRlcmVkLiBUaGUgc2FtZSBtYWdpYyByaW5nLCB3aGljaCBvbiB0aGUgZmlyc3Qgb2NjYXNpb24gDQpvcGVuZWQgdGhlIGRvb3J7WyYqJl19cyBvZiB0aGUgcm95YWwgbWFuc2lvbiwgb3BlbnMgdGhlbSBmb3IgDQpoZXIgb25jZSBhZ2Fpbiwgd2hlbiBFZHdhcmQgSVYuIGlzIHtbJiomXX1kZWFkLCBhbmQgaGlzIHNvbnMgDQpoYXZlIGJlZW4gYXNzYXNzaW5hdGVkIGluIHRoZSBUb3dlciBieSB0aGUgb3JkZXIgb2YgDQpSe1smKiZdfWljaGFyZC4gU2hlIGNhbWUsIHRoZSBmaXJzdCB0aW1lLCB0byBjdXJzZSBoZXIgZW5lbWllcyA7IA0Kc2hlIGNvbWVzIG5vdyB0byB7WyYqJl19Z2F0aGVyIHRoZSBmcnVpdHMgb2YgaGVyIG1hbGVkaWN0aW9uLiANCkxpa2UgYW4gYXZlbmdpbmcgRnVyeSBvciB0aGUgY2xhc3NpY3tbJiomXX1hbCBGYXRlLCBzaGUgaGFzIGFuLSANCm5vdW5jZWQgdG8gZWFjaCBoaXMgZG9vbS5cIiBcIl4gDQoNCiogQS4gTWV6aV5yZXMsIFwiIFNoe1smKiZdfWFrc3BlYXJlLCBzZXMgKEV1dnJlcyBldCBzZXMgQ3JpdGlxdWVzLFwiIHAuIDEzOS4gDQoNClRoZSBFbmdsaXNoIEhpc3RvcmljYWwge1smKiZdfVBsYXlzLiAxNzEgDQoNClRoZSBwbGF5IG11c3Qgbm90IGJlIGRpc21pc3NlZCB3aXRob3V0IG9uZSB3b3JkIA0Kc3Bva2VuIG9mIEt7WyYqJl19aW5nIEVkd2FyZCBJVi4gSGUgZGlkIG5vdCBpbnRlcmVzdCB0aGUgDQppbWFnaW5hdGlvbiBvZiBTaGFrc3BlcmUuIEVkd2FyZCBpc3tbJiomXX0gdGhlIHNlbGYtaW5kdWxnZW50LCANCmx1eHVyaW91cyBraW5nLiBUaGUgb25lIHRoaW5nIHdoaWNoIFNoYWtzcGVyZSBjYXJlZCANe1smKiZdfQp0byBzYXkgYWJvdXQgaGltIHdhcyB0aGF0IGhpcyBwbGVhc2FudCBkZWx1c2lvbiBvZiBwZWFjZS0gDQptYWtpbmcgc2hvcnRseSB7WyYqJl19YmVmb3JlIGhpcyBkZWF0aCB3YXMgYSBwb29yIGFuZCBpbnN1ZmxCLSANCmNpZW50IGNvbXBlbnNhdGlvbiBmb3IgYSBsaWZlIHNwZXtbJiomXX1udCBpbiBlYXNlIGFuZCBsdXh1cnkgDQpyYXRoZXIgdGhhbiBpbiBsYXlpbmcgdGhlIGhhcmQgYW5kIHN0cm9uZyBiYXNlcyBvZiBhe1smKiZdfSBzdWItIA0Kc3RhbnRpYWwgcGVhY2UuIEEgZmV3IHNvZnQgd29yZHMgYW5kIHBsYWNpbmcgb2YgaGFuZHMgDQppbiBoYW5kcyB3aWx7WyYqJl19bCBub3QgcmVwYWlyIHRoZSByYXZhZ2Ugb2YgZmllcmNlIHllYXJzLCBhbmQgDQp0aGUgZGVjYXkgb2Ygc291bmQgaHVtYW4gYm9uZHtbJiomXX1zIGR1cmluZyBzb2Z0LCBlZmZlbWluYXRlIA0KeWVhcnMuIEp1c3QgYXMgdGhlIHBlYWNlLW1ha2luZyBpcyBwZXJmZWN0LCBSaWNoe1smKiZdfWFyZCBpcyANCnByZXNlbnQgb24gdGhlIHNjZW5lIDogDQoNClwiIFRoZXJlIHdhbnRldGggbm93IG91ciBicm90aGVyIEdsb3N0ZXIge1smKiZdfWhlcmUgDQpUbyBtYWtlIHRoZSBibGVzc2VkIHBlcmlvZCBvZiBvdXIgcGVhY2UuXCIgDQoNCkFuZCBHbG9zdGVyIHN0YW5kcyBiZWZve1smKiZdfXJlIHRoZSBkeWluZyBraW5nIHRvIGFubm91bmNlIA0KdGhhdCBDbGFyZW5jZSBsaWVzIG11cmRlcmVkIGluIHRoZSBUb3dlci4gVGh7WyYqJl19aXMgaXMgDQpTaGFrc3BlcmVcJ3MgY29tbWVudCB1cG9uLCBhbmQgY29uZGVtbmF0aW9uIG9mLCB0aGUgDQpzZWxmLWluZHVsZ2VudCB7WyYqJl19S2luZy5cIl4gDQoNCklWLiANCg0KVGhlIHBsYXkgb2YgS2luZyBSaWNoYXJkIElJLiBwb3NzZXNzZXMgbm9uZSBvZiB0aGUgDQp0aXR7WyYqJl19YW5pYyBzdG9ybXkgZm9yY2Ugd15oaWNoIGJyZWF0aGVzIHRocm91Z2ggS2luZyBSaWNoLSANCmFyZCBJSUxeIGJ1dCBpbiBkZWxpY3tbJiomXX1hdGUgY3VubmluZyBpbiB0aGUgcmVuZGVyaW5nIG9mIA0KY2hhcmFjdGVyIGl0IGV4Y2VscyB0aGUgbW9yZSBwb3B1bGFyIHBsYXkue1smKiZdfSBUaGUgdHdvIA0KcHJpbmNpcGFsIGZpZ3VyZXMgaW4gS2luZyBSaWNoYXJkIDExXiB0aGF0IG9mIHRoZSBraW5nIA0Kd2hvIGZlbGx7WyYqJl19LCBhbmQgdGhhdCBvZiB0aGUga2luZyB3aG8gcm9zZSDigJQgdGhlIHVzdXJwaW5nIA0KQm9saW5nYnJva2Ug4oCUIGdyb3cgYmVmb3tbJiomXX1yZSB1cyBpbnNlbnNpYmx5IHRocm91Z2ggYSBzZXJpZXMgDQpvZiBmaW5lIGFuZCBjaGFyYWN0ZXJpc3RpYyBzdHJva2VzLiBUaGV5e1smKiZdfSBkbyBub3QsIGxpa2UgdGhlIA0KDQoqIE90dG8gTHVkd2lnIG5vdGljZXMgdGhlIGlkZWFsIHRyZWF0bWVudCBvZiB0aW1lIGluIEt7WyYqJl19aW5nIFJpY2hhcmQgSUlMIA0KQnV0IGRvZXMgaXQgZGlmZmVyIGZyb20gdGhlIHRyZWF0bWVudCBvZiB0aW1lIGluIG90aGVyIGhpc3tbJiomXX10b3JpY2FsIHBsYXlzIG9sIA0KU2hha3NwZXJlPyBcIldpZSBpbiBrZWluZW0gYW5kZXJlbiBzZWluZXIgU3RsaWNrZSBkaWUgQmVnZXtbJiomXX1iZW5oZWl0ZW4gDQpnZXdhbHRzYW1lciB6dXNhbW1lbmdlcmlpY2t0IHNpbmQsIHNvIGlzdCBhdWNoIGluIGtlaW5lbSBhbmRlcmVue1smKiZdfSBkaWUgWmVpdCANCnNvIGlkZWFsIGJlaGFuZGVsdCBhbHMgaGllci4gSGllciBnaWVidCBlcyBrZWluIEdlc3Rlcm4sIGtlaW4gTW97WyYqJl19cmdlbiwga2VpbmUgDQpVaHIsIHVuZCBrZWluZW4gS2FsZW5kZXIuXCIg4oCUIFNoYWtlc3BlYXleZS1TdHVkaWVuXiBwcC4gNDUwLCB7WyYqJl19NDUxLiANCg0KMTcyIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCmZpZ3VyZXMgaW4gS2luZyBSaWNoYXJkIElJSXtbJiomXX0sXiBmb3JjaWJseSBwb3NzZXNzIHRoZW1zZWx2ZXMgDQpvZiBvdXIgaW1hZ2luYXRpb24sIGJ1dCBlbmdhZ2UgaXQgYmVmb3JlIGl0e1smKiZdfSBpcyBhd2FyZSwgYW5kIA0KYnkgZGVncmVlcyBhZHZhbmNlIHN0cm9uZ2VyIGNsYWltcyB1cG9uIHVzLCBhbmQgbWFrZSANCmdvb2R7WyYqJl19IHRob3NlIGNsYWltcy4gSXQgd2lsbCBiZSB3b3J0aCB3aGlsZSB0byB0cnkgdG8gYXMtIA0KY2VydGFpbiB3aGF0IFNoYWtzcGVyZXtbJiomXX0gbG9va2VkIHVwb24gYXMgbW9zdCBzaWduaWZpY2FudCANCmluIHRoZSBjaGFyYWN0ZXJzIG9mIHRoZXNlIHR3byByb3lhbCBwZXJze1smKiZdfW9ucyDigJQgdGhlIHdlYWsgDQpraW5nIHdobyBjb3VsZCBub3QgcnVsZSwgYW5kIHRoZSBzdHJvbmcga2luZyB3aG8gcHJlc3NlZCB7WyYqJl19DQpoaW0gZnJvbSBoaXMgcGxhY2UuIA0KDQpUaGVyZSBpcyBhIGNvbmRpdGlvbiBvZiB0aGUgaW50ZWxsZWN0IHdoaWNoIHdlIGRlc3tbJiomXX1jcmliZSANCmJ5IHRoZSB3b3JkIFwiIGJveWlzaG5lc3MuXCIgVGhlIG1pbmQgaW4gdGhlIGJveWlzaCANCnN0YWdlIG9mIGdyb3d0aCB7WyYqJl19XCIgaGFzIG5vIGRpc2NyaW1pbmF0aW5nIGNvbnZpY3Rpb25zIGFuZCANCm5vIGdyYXNwIG9mIGNvbnNlcXVlbmNlcy5cIiBJdCBoYXMge1smKiZdfW5vdCBhcyB5ZXQgZ290IGhvbGQgDQpvZiByZWFsaXRpZXMgOyBpdCBpcyBcIiBtZXJlbHkgZGF6emxlZCBieSBwaGVub21lbmEsIGlue1smKiZdfXN0ZWFkIA0Kb2YgcGVyY2VpdmluZyB0aGluZ3MgYXMgdGhleSBhcmUuXCIgVGhlIHRhbGsgb2YgYSBwZXJzb24gDQp3aG8gcmVtYWlue1smKiZdfXMgaW4gdGhpcyBzZW5zZSBib3lpc2ggaXMgb2Z0ZW4gY2xldmVyLCBidXQgaXQgaXMgDQp1bnJlYWwgOyBub3cgaGUgd2lsbCBzYXl7WyYqJl19IGJyaWxsaWFudCB0aGluZ3MgdXBvbiB0aGlzIHNpZGUgDQpvZiBhIHF1ZXN0aW9uLCBhbmQgbm93IHVwb24gdGhlIG9wcG9zaXRlIHtbJiomXX1zaWRlLiBIZSBoYXMgDQpubyBjb25zaXN0ZW5jeSBvZiB2aWV3LiBIZSBpcyB3YW50aW5nIGFzIHlldCBpbiBzZXJpb3VzLSANCm5le1smKiZdfXNzIG9mIGludGVsbGVjdCwgaW4gdGhlIGFkdWx0IG1pbmQuXCJeIE5vdywgaWYgd2UgZXh0ZW5kIA0KdGhpcyBjaGFyYWN0ZXJpc3Rpe1smKiZdfWMgb2YgYm95aXNobmVzcyBmcm9tIHRoZSBpbnRlbGxlY3QgdG8gdGhlIA0KZW50aXJlIGNoYXJhY3Rlciwgd2UgbWF5IHVuZGVyc3R7WyYqJl19YW5kIG11Y2ggb2Ygd2hhdCBTaGFrLSANCnNwZXJlIG1lYW50IHRvIHJlcHJlc2VudCBpbiB0aGUgcGVyc29uIG9mIEVpY2hhcmQgSXtbJiomXX1JLiANCk5vdCBhbG9uZSBoaXMgaW50ZWxsZWN0LCBidXQgaGlzIGZlZWxpbmdzLCBsaXZlIGluIHRoZSB3b3JsZCANCm9mIHBoZW5ve1smKiZdfW1lbmEsIGFuZCBhbHRvZ2V0aGVyIGZhaWwgdG8gbGF5IGhvbGQgb2YgdGhpbmdzIA0KYXMgdGhleSBhcmUgOyB0aGV5IGhhdmUgbm97WyYqJl19IGNvbnNpc3RlbmN5IGFuZCBubyBjb250aW51aXR5LiANCkhpcyB3aWxsIGlzIGVudGlyZWx5IHVuZm9ybWVkIDsgaXQgcG9zc2Vzc3tbJiomXX1lcyBubyBhdXRob3JpdHkgDQphbmQgbm8gZXhlY3V0aXZlIHBvd2VyOyBoZSBpcyBhdCB0aGUgbWVyY3kgb2YgZXZlcnkgDQpjaGFue1smKiZdfWNlIGltcHVsc2UgYW5kIHRyYW5zaXRvcnkgbW9vZC4gSGUgaGFzIGEga2luZCBvZiANCmFydGlzdGljIHJlbGF0aW9uIHRvIGxpZmV7WyYqJl19LCB3aXRob3V0IGJlaW5nIGFuIGFydGlzdC4gQW4gYXItIA0KdGlzdCBpbiBsaWZlIHNlaXplcyB1cG9uIHRoZSBzdHVmZiBvZiBjaXtbJiomXX1yY3Vtc3RhbmNlLCBhbmQsIHdpdGggDQpzdHJlbnVvdXMgd2lsbCBhbmQgc3Ryb25nIGNyZWF0aXZlIHBvd2VyLCBzaGFwZXMgc29te1smKiZdfWUgDQpuZXcgYW5kIG5vYmxlIGZvcm0gb2YgaHVtYW4gZXhpc3RlbmNlLiANCg0KS2ljaGFyZCwgdG8gd2hvbSBhbGwgdGhpbmdzIGF7WyYqJl19cmUgdW5yZWFsLCBoYXMgYSBmaW5lIGZlZWwtIA0KDQoqIEpvaG4gSGVucnkgTmV3bWFuLCBcIiBJZGVhIG9mIGEgVW5pdmVyc2l0eSx7WyYqJl19XCIgcHJlZmFjZS4gDQoNClRoZSBFbmdsaXNoIEhpc3RvcmljYWwgUGxheXMuIDE3MyANCg0KaW5nIGZvciBcIiBzaXR1YXRpb25zLlwnXntbJiomXX0gV2l0aG91dCB0cnVlIGtpbmdseSBzdHJlbmd0aCBvciANCmRpZ25pdHksIGhlIGhhcyBhIGZpbmUgZmVlbGluZyBmb3IgdGhlIHJve1smKiZdfXlhbCBzaXR1YXRpb24uIA0KV2l0aG91dCBhbnkgbWFraW5nIHJlYWwgdG8gaGltc2VsZiB3aGF0IEdvZCBvciB3aGF0IA0KZGVhdGh7WyYqJl19IGlzLCBoZSBjYW4gcHV0IGhpbXNlbGYsIGlmIG5lZWQgYmUsIGluIHRoZSBhcHByb3ByaS0gDQphdGUgYXR0aXR1ZGUgdG93YXJkc3tbJiomXX0gR29kIGFuZCB0b3dhcmRzIGRlYXRoLiBJbnN0ZWFkIG9mIA0KY29tcHJlaGVuZGluZyB0aGluZ3MgYXMgdGhleSBhcmUsIGFuZCBhe1smKiZdfWNoaWV2aW5nIGhlcm9pYyANCmRlZWRzLCBoZSBzYXRpYXRlcyBoaXMgaGVhcnQgd2l0aCB0aGUgZ3JhY2UsIHRoZSB0ZW5kZXJuZXN7WyYqJl19cywgDQp0aGUgYmVhdXR5LCBvciB0aGUgcGF0aG9zIG9mIHNpdHVhdGlvbnMuIExpZmUgaXMgdG8gUmljaC0gDQphcmQgYSBzaG93LHtbJiomXX0gYSBzdWNjZXNzaW9uIG9mIGltYWdlcyA7IGFuZCB0byBwdXQgaGltc2VLIA0KaW50byBhY2NvcmQgd2l0aCB0aGUgc2VzdGhldGlje1smKiZdfSByZXF1aXJlbWVudHMgb2YgaGlzIHBvc2l0aW9uIA0KaXMgUmljaGFyZFwncyBmaXJzdCBuZWNlc3NpdHkuIEhlIGlzIGVxdWFsIHRve1smKiZdfSBwbGF5aW5nIGFueSANCnBhcnQgZ3JhY2VmdWxseSB3aGljaCBoZSBpcyBjYWxsZWQgdXBvbiBieSBjaXJjdW1zdGFuY2VzIA0KdG97WyYqJl19IGVuYWN0LiBCdXQgd2hlbiBoZSBoYXMgZXhoYXVzdGVkIHRoZSBzZXN0aGV0aWMgc2F0aXMtIA0KZmFjdGlvbiB0byBiZSBkZXJpdntbJiomXX1lZCBmcm9tIHRoZSBzaXR1YXRpb25zIG9mIGhpcyBsaWZlLCBoZSBpcyANCmxlZnQgd2l0aCBub3RoaW5nIGZ1cnRoZXIgdG8gZG8ue1smKiZdfSBIZSBpcyBhbiBhbWF0ZXVyIGluIA0KbGl2aW5nOyBub3QgYW4gYXJ0aXN0Ll4gDQoNCk5vdGhpbmcgaGFkIGRpc3R1cmJlZCB0aGV7WyYqJl19IGdyYWNlZnVsIGRyZWFtIG9mIFJpY2hhcmRcJ3MgDQphZG9sZXNjZW5jZS4gVGhlIHNvbiBvZiB0aGUgQmxhY2sgUHJpbmNlLCBiZWF7WyYqJl19dXRpZnVsIGluIA0KZmFjZSBhbmQgZm9ybSwgdGhvdWdoIG5vdyBwYXN0IGhpcyB5b3V0aCwgYSBraW5nIHNpbmNlIA0KYm95aG9vZHtbJiomXX0sIGhlIGhhcyBrbm93biBubyBhbnRhZ29uaXNtIG9mIG1lbiBvciBjaXItIA0KY3Vtc3RhbmNlIHdoaWNoIG1pZ2h0IGFyb3VzZSB0e1smKiZdfWhlIHdpbGwuIEhlIGhhcyBhbiBpbi0gDQpkZXNjcmliYWJsZSBjaGFybSBvZiBwZXJzb24gYW5kIHByZXNlbmNlIDsgSG90c3B1ciB7WyYqJl19cmUtIA0KbWVtYmVycyBoaW0gYXMgXCIgUmljaGFyZCwgdGhhdCBzd2VldCwgbG92ZWx5IHJvc2UuXCIgQnV0IA0KYSBraW5nIHdobyBye1smKiZdfXVsZXMgYSBkaXNjb250ZW50ZWQgcGVvcGxlIGFuZCB0dXJidWxlbnQgDQpub2JsZXMgbmVlZHMgdG8gYmUgc29tZXRoaW5nIG1vcmV7WyYqJl19IHRoYW4gYSogYmVhdXRpZnVsIGJsb3MtIA0Kc29taW5nIGZsb3dlci4gUmljaGFyZCBoYXMgYWJhbmRvbmVkIGhpcyBuYXR1cmUgdHtbJiomXX1vIA0Kc2VsZi1pbmR1bGdlbmNlLCBhbmQgdGhlcmVmb3JlIHRoZSB3b3JsZCBiZWNvbWVzIHRvIGhpbSANCm1vcmUgdW5yZWFsIHRoe1smKiZdfWFuIGV2ZXIuIEhlIGhhcyBiZWVuIHN1cnJvdW5kZWQgYnkgZmxhdC0gDQoNCiogXCIgRGllIGd1dGVuIEVpZ2Vuc2NoYWZ0ZW4gc2Vpe1smKiZdfW5lciBOYXR1ciB3ZXJkZW4gaWhtIHVubmlpdHosIGphIGdlZiBhaHItIA0KbGljaCA7IGVyIGdld2FocnQgZGFzIGVyc2NoaWl0dGV7WyYqJl19cm5kZSBTY2hhdXNwaWVsIGVpbmVzIGJlaXNwaWVsbG9zZW4sIGdlaXN0aWdlbiANCnVuZCBnZW1paXRobGljaGVuIG5pY2h0IHdlbntbJiomXX1pZ2VyIGFscyBhdXNzZXJsaWNoZW4gQmFua2VydXR0cyBpbiBGb2xnZSBkZXMgDQplaW5lbiBVbXN0YW5kZXMg4oCUIGRhc3MgZGlle1smKiZdfSBOYXR1ciBpaG4gbWl0IGVpbmVtIERpbGV0dGFudGVuY2hhcmFjdGVyIGF1ZiANCmVpbmUgU3RlbGxlIGJlcnVmZW4sIGRpZSBtZWh7WyYqJl19ciBhbHMgamVkZSBhbmRlcmUgZWluZW4gS2lpbnN0bGVyIGZvcmRlcnQuXCIg4oCUIA0KS2JleXNzaWcsIFZvcmxlc3VuZ20gaWliZXJ7WyYqJl19IFNoYWtlc3BlYXJlIChlZC4gMTg3NCksIHZvbC4gTCwgcCwgMTg5LiBTZWUgd2hhNCANCmZvbGxvd3Mgb24gUmljaGFyZFwncyBcIiBEe1smKiZdfWlsZXR0YW50aXNtdXMuXCIgDQoNCjEgNzQgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KdGVyZXJzLCB3aG8gaGVse1smKiZdfXBlZCB0byBtYWtlIGhpcyBhdG1vc3BoZXJlIGEgbHVtaW5vdXMgDQptaXN0LCB0aHJvdWdoIHdoaWNoIHRoZSBmYWN0cyBvZiBsaWZ7WyYqJl19ZSBhcHBlYXJlZCB3aXRoIGFsbCANCnRoZWlyIHJhZ2dlZCBvdXRsaW5lcyBzbW9vdGhlZCBhd2F5LiBJbiB0aGUgZmlyc3Qgc2NlbntbJiomXX1lIA0Kb2YgdGhlIHBsYXkgaGUgZW5hY3QtcyB0aGUgcGFydCBvZiBhIGtpbmcgd2l0aCBhIGZpbmUgc2hvdyANCm9mIGRpZ25pdHkge1smKiZdfTsgaGlzIGJlYXJpbmcgaXMgc3BsZW5kaWQgYW5kIGlycmVwcm9hY2hhYmxlLiANCk1vd2JyYXkgaXMgb2JzdGluYXRlLCBhbmQgd2l7WyYqJl19bGwgbm90IHRocm93IGRvd24gdGhlIGdhZ2UgDQpvZiBCb2xpbmdicm9rZSA7IFJpY2hhcmQgZXhjbGFpbXMsIA0KDQpcIiBSYWdlIG17WyYqJl19dXN0IGJlIHdpdGhzdG9vZC4gDQpHaXZlIG1lIGhpcyBnYWdlOiBsaW9ucyBtYWtlIGxlb3BhcmRzIHRhbWUuXCIgDQoNCkJ1dCBNb3d7WyYqJl19YnJheSByZXRhaW5zIHRoZSBnYWdlLiBcJ1wnIFdlIHdlcmUgbm90IGJvcm4gdG8gDQpCdWUsIGJ1dCB0byBjb21tYW5kLFwiIGRlY2xhcntbJiomXX1lcyBSaWNoYXJkLCB3aXRoIHJveWFsIG1hamVzLSANCnR5OyB5ZXQgaGUgYWRtaXRzIHRoYXQgdG8gY29tbWFuZCBleGNlZWRzIGhpe1smKiZdfXMgcG93ZXIuIA0KV2hhdCBvZiB0aGF0PyBIYXMgbm90IFJpY2hhcmQgYm9ybmUgaGltc2VsZiBzcGxlbmRpZC0gDQpseSwgYW5kIHV7WyYqJl19dHRlcmVkIGhpbXNlbGYgaW4gYSByb3lhbCBtZXRhcGhvciDigJQgXCIgTGlvbnMgbWFrZSANCmxlb3BhcmRzIHRhbWUgVCANCg0KQXR7WyYqJl19IHRoaXMgdmVyeSBtb21lbnQgQm9saW5nYnJva2UsIHdpdGggZXllIHNldCB1cG9uIA0KaGlzIHB1cnBvc2UgYWZhciBvZmYsIGhhc3tbJiomXX0gcmVzb2x1dGVseSB0YWtlbiB0aGUgZmlyc3Qgc3RlcCANCnRvd2FyZHMgYXR0YWluaW5nIGl0LiBUaGUgY2hhbGxlbmdlIG9mIE1ve1smKiZdfXdicmF5IGNvbmNlYWxzIA0KYSBkZWVwZXIgcHVycG9zZS4gU28gbGl0dGxlIGRvZXMgQm9saW5nYnJva2UgcmVhbGx5IGZlZWwgDQp7WyYqJl19b2YgaG9zdGlsaXR5IHRvIGhpcyBhbnRhZ29uaXN0IHRoYXQgb25lIG9mIGhpcyBmaXJzdCBhY3RzLCBhcyANCnNvb24gYXMgaGUgaXtbJiomXX1zIGluIGEgcG9zaXRpb24gdG8gYWN0IHdpdGggYXV0aG9yaXR5LCBpcyB0byBkZS0gDQpjbGFyZSBNb3dicmF5XCdzIHJlcGVhbC5eIHtbJiomXX1CdXQgdG8gc3RhbmQgZm9yd2FyZCBhcyBjaGFtLSANCnBpb24gb2YgdGhlIHdyb25ncyBvZiBFbmdsYW5kLCB0byBtYWtlIGhpbXNle1smKiZdfWxmIHRoZSBlbWktIA0KbmVudCBqdXN0aWNpYXJ5IGJ5IHJpZ2h0IG9mIG5hdHVyZSwgdGhpcyBpcyB0aGUgaW5pdGlhbCBzdGVwIA17WyYqJl19CnRvd2FyZHMgZnV0dXJlIGtpbmdzaGlwIDsgYW5kIEJvbGluZ2Jyb2tlIHBlcmNlaXZlcyANCmNsZWFybHkgdGhhdCB0aGUgZmFjdHtbJiomXX0gb2YgR2xvc3RlclwncyBkZWF0aCBtYXkgc2VydmUgYXMgZnVsLSANCmNydW0gZm9yIHRoZSBsZXZlciB3aGljaCBpcyB0byBzaGFrZXtbJiomXX0gdGhlIHRocm9uZSBvZiBFbmctIA0KbGFuZC4gTm9yIGlzIHRoZSBLaW5nIHF1aXRlIGluc2Vuc2libGUgb2YgdGhlIHRlbmRlbmN5e1smKiZdfSANCm9mIGhpcyBjb3VzaW5cJ3MgYWN0aW9uLiBBbHJlYWR5IGhlIGJlZ2lucyB0byBxdWFpbCBiZWZvcmUgDQpoaXMgYm9sZCBhbnRhe1smKiZdfWdvbmlzdCA6IA0KDQpcIiBIb3cgaGlnaCBhIHBpdGNoIGhpcyByZXNvbHV0aW9uIHNvYXJzICFcIiANCg0KKiBLcmV5c3NpZyBzdWdnZXtbJiomXX1zdHMgdGhhdCB0aGlzIHBpZWNlIG9mIG1hZ25hbmltaXR5IHdhcyByZWFsbHkgYSBwaWVjZSBvZiANCmZpbmUgaHlwb2NyaXN5IDsge1smKiZdfUJvbGluZ2Jyb2tlIHdhcyBwZXJoYXBzIGF3YXJlIG9mIE5vcmZvbGtcJ3MgZGVhdGggYXQgdGhlIA0KdGltZSB0aGF0IGhlIGdhdmUge1smKiZdfW9yZGVyIGZvciBoaXMgcmVwZWFMIA0KDQpUaGUgRW5nbGlzaCBIaXN0b3JpY2FsIFBsYXlzLiAxNzUgDQoNClJpY2hhcmQgdHJpZXN7WyYqJl19IGdyYWNlZnVsbHkgdG8gY29uY2VhbCBoaXMgZGlzY29tcG9zdXJlLCBhbmQgDQp0byBkZWNlaXZlIEJvbGluZ2Jyb2tlIDsgYnV0IHtbJiomXX1oZSBpcyBub3QsIGxpa2UgUmljaGFyZCB0aGUgDQpodW5jaGJhY2ssIGEgZGFyaW5nIGFuZCBlZmZsdWVudCBoeXBvY3JpdGUuIEhle1smKiZdfSBiZXRyYXlzIA0KaGlzIHdlYWtuZXNzIGFuZCBoaXMgZGlzdHJ1c3QsIGFkbWluaXN0ZXJpbmcgdG8gdGhlIHR3byANCm1lbiBkZWN7WyYqJl19cmVlZCB0byBleGlsZSBhbiBvYXRoIHdoaWNoIHBsZWRnZXMgdGhlbSBuZXZlciANCnRvIHJlY29uY2lsZSB0aGVtc2VsdmVzIGluIHtbJiomXX10aGVpciBiYW5pc2htZW50LCBhbmQgbmV2ZXIgdG8gDQpwbG90IGFnYWluc3QgdGhlIEtpbmcuIA0KDQpCb2xpbmdicm9rZSBhY2Nle1smKiZdfXB0cyBoaXMgZXhpbGUsIHBhcnRzIGZyb20gdGhlIEVuZ2xpc2ggDQpjcm93ZCB3aXRoIGFuIGFpciBvZiBncmFjaW91cywgY29uZGV7WyYqJl19c2NlbmRpbmcgZmFtaWxpYXJpdHkgDQp3aGljaCBmbGF0dGVycyAod2hlcmVhcyBSaWNoYXJkXCdzIHVuZGlnbmlmaWVkIGZhbWlsaWF7WyYqJl19cml0eSANCm9ubHkgZGlzcGxlYXNlcyksXCJeIGFuZCBiaWRzIGZhcmV3ZWxsIHRvIGhpcyBjb3VudHJ5IGFzIGEgDQpzb24gYmlkcyB7WyYqJl19ZmFyZXdlbGwgdG8gdGhlIG1vdGhlciB3aXRoIHdob20gaGlzIG5hdHVyYWwgDQpsb3lhbHR5IHJlbWFpbnMsIGFuZCB3aG9tLCBpbntbJiomXX0gZHVlIHRpbWUsIGhlIHdpbGwgc2VlIGFnYWluLiANCkpvaG4gb2YgR2F1bnQgaXMgbHlpbmcgb24gaGlzIGRlYXRoLWJlZC4gVGhle1smKiZdfSBsYXN0IG9mIA0KdGhlIGdyZWF0IHJhY2Ugb2YgdGhlIHRpbWUgb2YgRWR3YXJkIElJTCwgbm8gRW5nbGlzaCANCnNwaXJpdCB3aWx7WyYqJl19bCBicmVhdGhlIHN1Y2ggcGF0cmlvdGlzbSBhcyBoaXMgdW50aWwgdGhlIGRheXMgDQpvZiBBZ2luY291cnQuIFdpdGggdGhlIHByb3tbJiomXX1waGV0aWMgaW5zcGlyYXRpb24gb2YgYSBkeWluZyANCm1hbiwgaGUgZGFyZXMgdG8gd2FybiBoaXMgZ3JhbmQtbmVwaGV3LCBhbmQge1smKiZdfXRvIHJlYnVrZSANCmhpbSBmb3IgaGlzIHRyZWFzb24gYWdhaW5zdCB0aGUgYW5jaWVudCBob25vciBvZiBFbmdsYW5kLiANClJpY2h7WyYqJl19YXJkLCB3aG8sIHdpdGggaGlzIGNoYXJhY3RlcmlzdGljIHNlbnNpYmlsaXR5IG9mIGEgc3VwZXItIA0KZmljaWFsIGtpbmQsIHR1cntbJiomXX1ucyBwYWxlIGFzIGhlIGxpc3RlbnMsIHJlY292ZXJzIGhpbXNlbGYgYnkgYSANCnRyYW5zaXRpb24gZnJvbSBvdmVyYXdlZCBhbGFye1smKiZdfW0gdG8gYm95aXNoIGluc29sZW5jZS4gVGhlIA0Kd2hpdGUtaGFpcmVkIHdhcnJpb3IsIG5vdyBhIHByb3BoZXQsIHdobyBsaWVzIGR7WyYqJl19eWluZyBiZS0gDQpmb3JlIGhpbSwgaXMgLCwgLCAsIA0KDQpcIiBBIGx1bmF0aWMsIGxlYW4td2l0dGVkIGZvb2wsIA0KDQpQcmVzdW17WyYqJl19aW5nIG9uIGFuIGFndWVcJ3MgcHJpdmlsZWdlLFwiIA0KDQp3aG8gZGFyZXMsIHdpdGggYSBmcm96ZW4gYWRtb25pdGlvbiwgdG8gbWFre1smKiZdfWUgcGFsZSB0aGUgDQoNCiogXCIgVGhlIHNraXBwaW5nIGtpbmcsIGhlIGFtYmxlZCB1cCBhbmQgZG93biANCldpdGggc2hhbGxvdyBqe1smKiZdfWVzdGVycyBhbmQgcmFzaCBiYXZpbiB3aXRzLCANClNvb24ga2luZGxlZCBhbmQgc29vbiBidXJudCA7IGNhcmRlZCBoaXMgc3RhdGV7WyYqJl19LCANCk1pbmdsZWQgaGlzIHJveWFsdHkgd2l0aCBjYXBlcmluZyBmb29scywgDQoNCkdyZXcgYSBjb21wYW5pb24gdG8gdGhlIGNvbXtbJiomXX1tb24gc3RyZWV0cy5cIiANClRodXMgSGVucnkgSVYuIGRlc2NyaWJlcyBoaXMgcHJlZGVjZXNzb3IgYXMgYSBsZXNzb24gdG8gUHJpbntbJiomXX1jZSBIZW5yeSwgDQp3aG9zZSBmYW1pbGlhcml0eSB3aXRoIGhpcyBmdXR1cmUgc3ViamVjdHMgaXMgbmVpdGhlciBpbiBoaXMgZmF0e1smKiZdfWhlclwncyBtYW5uZXIgDQpub3IgaW4gdGhhdCBvZiBSaWNoYXJkIElJLiANCg0KMSA3NiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFue1smKiZdfWQgQXJ0LiANCg0Kcm95YWwgY2hlZWsgb2YgUmljaGFyZC4gVGhlIGZhY3RzIGFyZSB2ZXJ5IGRpc2FncmVlYWJsZSwgDQphbmQgd2h7WyYqJl19eSBzaG91bGQgYSBraW5nIGFkbWl0IGludG8gaGlzIGNvbnNjaW91c25lc3MgYW4gDQp1Z2x5IG9yIGRpc2FncmVlYWJsZSBmYWN0IHtbJiomXX0/IA0KDQpCeSAtYW5kIC1ieSwgYmVpbmcgaW5mb3JtZWQgdGhhdCBKb2huIG9mIEdhdW50IGlzIA0KZGVhZCwgUmljaGFyZCBoYXMge1smKiZdfXRoZSBtb3N0IGdyYWNlZnVsIGFuZCBhcHByb3ByaWF0ZSANCndvcmQgcmVhZHkgZm9yIHNvIHNvbGVtbiBhbiBvY2Nhc2lvbiA6IA17WyYqJl19Cg0KXCIgVGhlIHJpcGVzdCBmcnVpdCBmaXJzdCBmYWxscywgYW5kIHNvIGRvdGggaGUgOyANCkhpcyB0aW1lIGlzIHNwZW50LCBvdXJ7WyYqJl19IHBpbGdyaW1hZ2UgbXVzdCBiZS5cIiANCg0KSW4gd2hpY2ggcGlsZ3JpbWFnZSB0aGUgZmlyc3Qgc3RlcCBpcyB0byBzZWl6ZSB1cG97WyYqJl19biANCg0KXCIgVGhlIHBsYXRlLCBjb2luLCByZXZlbnVlcywgYW5kIG1vdmFibGVzLiANCldoZXJlb2Ygb3VyIHVuY2xlIEdhdW50IGR7WyYqJl19aWQgc3RhbmQgcG9zc2Vzc2VkLlwiIA0KDQpFdmVuIFlvcmssIHRoZSB0ZW1wb3JpemluZyBZb3JrLCB3aG8gd291bGQgZmFpbiBiZSB7WyYqJl19DQphbGwgdGhpbmdzIHRvIGFsbCBtZW4gaWYgYnkgYW55IG1lYW5zIGhlIG1pZ2h0IHNhdmUgaGltLSANCnNlbGYsIGlzIGFtYXplZHtbJiomXX0sIGFuZCB2ZW50dXJlcyB0byByZW1vbnN0cmF0ZSBhZ2FpbnN0IHRoZSANCmNyaW1pbmFsIGZvbGx5IG9mIHRoaXMgYWN0LiBCdXQge1smKiZdfVJpY2hhcmQsIGxpa2UgYWxsIHNlbGYtaW4tIA0KZHVsZ2VudCBuYXR1cmVzLCBoYXMgb25seSBhIGhhbGYtYmVsaWVmIGluIGFueSB7WyYqJl19cG9zc2libGUgDQpmdXR1cmUuIEhlIGNob29zZXMgdG8gbWFrZSB0aGUgcHJlc2VudCB0aW1lIGVhc3ksIGFuZCANCmxldCB0aGUgZntbJiomXX11dHVyZSBwcm92aWRlIGZvciBpdHNlbGYgOyBoZSBoYXMgYmVlbiBsaXZpbmcgdXBvbiANCmNoYW5jZXMgdG9vIGxvbmc7IGhlIGhhe1smKiZdfXMgdG9vIGxvbmcgYmVlbiBtb3J0Z2FnaW5nIHRoZSANCmhlYWx0aCBvZiB0by1tb3Jyb3cgZm9yIHRoZSBwbGVhc3VyZSBvZiB0by17WyYqJl19ZGF5IDogDQoNClwiIFRoaW5rIHdoYXQgeW91IHdpbGwsIHdlIHNlaXplIGludG8gb3VyIGhhbmRzIA0KSGlzIHBsYXRlLCBoaXMgZ297WyYqJl19b2RzLCBoaXMgbW9uZXksIGFuZCBoaXMgbGFuZHMuXCIgDQoNCkJ1dCBub3cgdGhlIHRlbXBlc3QgYmVnaW5zIHRvIHNpbmcuIEJvbGl7WyYqJl19bmdicm9rZSANCihiZWZvcmUgaGUgY2FuIHBvc3NpYmx5IGhhdmUgaGVhcmQgb2YgaGlzIGZhdGhlclwncyBkZWF0aCANCmFuZCB0aGV7WyYqJl19IHNlaXp1cmUgYnkgUmljaGFyZCBvZiBoaXMgb3duIHJpZ2h0cyBhbmQgcm95YWwtIA0KdGllcykgaGFzIGVxdWlwcGVkIGFuIGV4cHtbJiomXX1lZGl0aW9uLCBhbmQgaXMgYWJvdXQgdG8gbGFuZCANCnVwb24gdGhlIEVuZ2xpc2ggY29hc3QuIFRoZSBLaW5nIG1ha2VzIGEgaGFze1smKiZdfXR5IHJldHVybiANCmZyb20gaGlzIFwibWlsaXRhcnkgcHJvbWVuYWRlXCIgaW4gSXJlbGFuZC5eXiBUaGUgZmlyc3QgDQp3b3JkcyBvZntbJiomXX0gZWFjaCwgYXMgaGUgdG91Y2hlcyBoaXMgbmF0aXZlIHNvaWwsIGFyZSBjaGFyYWN0ZXItIA0KaXN0aWMsIGFuZCB3ZXJlIGRvdWJ0e1smKiZdfWxlc3MgcGxhY2VkIGJ5IFNoYWtzcGVyZSBpbiBkZXNpZ25lZCANCmNvbnRyYXN0LiBcJ1wnSG93IGZhciBpcyBpdF4gbXkgbG9yZF4gdHtbJiomXX1vIEJlcmtlbGV5IG5vd1ZeIA0KDQpUaGUgYmFuaXNoZWQgbWFuIGhhcyBubyB0ZW5kZXIgcGhyYXNlcyB0byBiZV5vdyB1cG9uIA0Ke1smKiZdfQ0KLSAtIC1eIA0KDQoqIEZyLiBLcmV5c3NpZywgXCIgVm9ybGVzdW5nZW4gaWliZXIgU2hha2VzcGVhcmUsXCIgdm9sLiBpLiwgcC4gMXtbJiomXX05TCANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaWNhbCBQbGF5cyAxNzcgDQoNCkVuZ2xpc2ggZWFydGgsIG5vdyB0aGF0IGhlIHNldHMge1smKiZdfWZvb3QgdXBvbiBpdCBvbmNlIG1vcmUuIA0KQWxsIGhpcyBmYWN1bHRpZXMgYXJlIGZpcm0tc2V0LCBhbmQgYmVudCB1cG9uIGFjaGl7WyYqJl19ZXZlbWVudC4gDQpCdXQgS2ljaGFyZCwgd2hvIGhhcyBiZWVuIGFic2VudCBmb3IgYSBmZXcgZGF5cyBpbiBJcmUtIA0KbGFuZCwgZXtbJiomXX1udGVycyB3aXRoIGFsbCBwb3NzaWJsZSB6ZWFsIGludG8gdGhlIHNlbnRpbWVudCBvZiANCmhpcyBzaXR1YXRpb24gOiAsLF4gLiAue1smKiZdfSANCg0KXCIgSSB3ZWVwIGZvciBqb3kgDQpUbyBzdGFuZCB1cG9uIG15IGtpbmdkb20gb25jZSBhZ2Fpbi4gDQpEZWFyIGVhcnRoLCBJe1smKiZdfSBkbyBzYWx1dGUgdGhlZSB3aXRoIG15IGhhbmQsIA0KVGhvdWdoIHJlYmVscyB3b3VuZCB0aGVlIHdpdGggdGhlaXIgaG9yc2VzXCcge1smKiZdfWhvb2ZzIDsgDQpBcyBhIGxvbmctcGFydGVkIG1vdGhlciB3aXRoIGhlciBjaGlsZCANClBsYXlzIGZvbmRseSB3aXRoIGhlciB0ZWF7WyYqJl19cnMgYW5kIHNtaWxlcyBpbiBtZWV0aW5nLCANClNvIHdlZXBpbmcsIHNtaWxpbmcsIGdyZWV0IEkgdGhlZSwgbXkgZWFydGgsIA0KQXtbJiomXX1uZCBkbyB0aGVlIGZhdm9ycyB3aXRoIG15IHJveWFsIGhhbmRzLlwiIA0KDQpXaGljaCBzZW50aW1lbnRhbCBmYXZvcnMgZm9ybSBhIHtbJiomXX1ncmFjZWZ1bCBpbmNpZGVudCBpbiB0aGUgDQpwbGF5IG9mIFJpY2hhcmRcJ3MgbGlmZSwgYnV0IGNhbiBoYXJkbHkgY29tcGVuc2F0ZXtbJiomXX0gdGhlIHdhbnQgDQpvZiB0cnVlIGFuZCBtYW5seSBwYXRyaW90aXNtLiBUaGlzIHNhbWUgZWFydGggd2hpY2ggDQpSaWNoYXJkIGNhe1smKiZdfXJlc3NlZCB3aXRoIGV4dHJhdmFnYW50IHNlbnNpYmlsaXR5IHdhcyB0aGUgDQpFbmdsYW5kIHdoaWNoIEpvaG4gb2YgR2F1bnQsIHd7WyYqJl19aXRoIHN0cm9uZyBlbnRodXNpYXNtLCANCmhhZCBhcG9zdHJvcGhpemVkIDogDQoNCipcJyBUaGlzIGJsZXNzZWQgcGxvdCwgdGhpcyB7WyYqJl19ZWFydGgsIHRoaXMgcmVhbG0sIHRoaXMgRW5nbGFuZCwgDQpUaGlzIG51cnNlLCB0aGlzIHRlZW1pbmcgd29tYiBvZiByb3lhbCBraXtbJiomXX1uZ3MsIA0KRmVhclwnZCBieSB0aGVpciBicmVlZCwgYW5kIGZhbW91cyBmb3IgdGhlaXIgYmlydGgsIA0KUmVub3duZWQgZm9yIHRoZXtbJiomXX1pciBkZWVkcy5cIiANCg0KSXQgd2FzIHRoZSBFbmdsYW5kIHdoaWNoIFJpY2hhcmQgaGFkIGFsaWVuYXRlZCBmcm9tIA0KaGltc2VsZntbJiomXX0gYW5kIGxlYXNlZCBvdXQgXCIgbGlrZSB0byBhIHRlbmVtZW50IG9yIHBlbHRpbmcgDQpmYXJtLlwiIFdoYXQgb2YgdGhhdCwgaG93ZXZ7WyYqJl19ZXIgPyBEaWQgbm90IFJpY2hhcmQgYWQtIA0KZHJlc3MgaGlzIEVuZ2xhbmQgd2l0aCBwaHJhc2VzIGZ1bGwgb2YgdGVuZGVyIHNlbntbJiomXX1zaWJpbGl0eSwgDQphbmQgcmVuZGVyIGhlciBtb2NrZXJ5IGZhdm9ycyB3aXRoIGhpcyByb3lhbCBoYW5kcyA/IA0KDQpCb2xpbmdie1smKiZdfXJva2UgaGFzIGFscmVhZHkgZ2FpbmVkIHRoZSBzdXBwb3J0IG9mIHRoZSANCldlbHNoLiBSaWNoYXJkIGhhcyB1cG9uIGhpcyBzaWR7WyYqJl19ZSBwb3dlcnMgaGlnaGVyIHRoYW4gDQpuYXR1cmFsIGZsZXNoIGFuZCBibG9vZC4gU2hhbGwgaGUgbm90IHJpc2UgbGlrZSB0aGUgc3tbJiomXX11biANCmluIHRoZSBlYXN0ZXJuIHNreSwgYW5kIHdpdGggdGhlIG1hamVzdHkgb2YgaGlzIHJveWFsIGFwLSANCnBhcml0aW9uIHNje1smKiZdfWFyZSBhd2F5IHRoZSB0cmVhc29ucyBvZiB0aGUgbmlnaHQ/IElzIGhlIG5vdCANCnRoZSBhbm9pbnRlZCBkZXB1dHkgb2YgR29kID97WyYqJl19IA0KDQpcIiBOb3QgYWxsIHRoZSB3YXRlciBpbiB0aGUgcm91Z2ggcnVkZSBzZWEgDQpDYW4gd2FzaCB0aGUgYmFsbSBmcm9tIGFuIGF7WyYqJl19bm9pbnRlZCBraW5nIDogDQpUaGUgYnJlYXRoIG9mIHdvcmxkbHkgbWVuIGNhbm5vdCBkZXBvc2UgDQpUaGUgZGVwdXR5IGVsZWN0ZXtbJiomXX1kIGJ5IHRoZSBMb3JkLlwiIA0KMTIgDQoNCjEgNzggU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQpZZXMgOyBoZSB3aXtbJiomXX1sbCByZWx5IG9uIEdvZCA7IGl0IGlzIGRldm91dCA7IGl0IGlzIG5vdCBsYWJvcmkqIA0Kb3VzLiBGb3IgZXZlcnkgYXJtZWQgbWFue1smKiZdfSB3aG8gZmlnaHRzIGZvciBCb2xpbmdicm9rZSwgDQoNClwiIEdvZCBmb3IgaGlzIFJpY2hhcmQgaGF0aCBpbiBoZWF2ZW5seSBwYXkge1smKiZdfQ0KQSBnbG9yaW91cyBhbmdlbC5cIiANCg0KQW5kIGF0IHRoaXMgbW9tZW50IFNhbGlzYnVyeSBlbnRlcnMgdG8gYW5ub3VuY2UgdGhle1smKiZdfSANCnJldm9sdCBvZiBXYWxlcy4gUmljaGFyZCBoYXMgYmVlbiBzbGFjayBpbiBhY3Rpb24sIGFuZCANCmFycml2ZWQgYSBkYXkgdG97WyYqJl19byBsYXRlLiBSZW1vcnNlbGVzcyBjb21tZW50IHVwb24gdGhlIA0KcmhldG9yaWNhbCBwaWV0eSBvZiB0aGUgS2luZyAhIEEgY29tcHtbJiomXX1hbnkgb2YgYW5nZWxzIGZpZ2h0IA0KdXBvbiBoaXMgc2lkZSA7IHRydWUsIGJ1dCB0aGUgc3R1cmR5IFdlbHNobWVuIHN0YW5kIGZve1smKiZdfXIgDQpCb2xpbmdicm9rZSAhIEhlIGlzIHRoZSBkZXB1dHkgZWxlY3RlZCBieSB0aGUgTG9yZCA7IGJ1dCANCnRoZSBMb3JkXCdzIGRle1smKiZdfXB1dHkgaGFzIGFycml2ZWQgYSBkYXkgdG9vIGxhdGUgISANCg0KQW5kIG5vdyBSaWNoYXJkIGFsdGVybmF0ZXMgYmV0d2VlbiBhYmp7WyYqJl19ZWN0IGRlc3BvbmQtIA0KZW5jeSAocmVsaWV2ZWQgYnkgYWNjZXB0aW5nIGFsbCB0aGUgYWVzdGhldGljIHNhdGlzZmFjdGlvbiANCntbJiomXX1kZXJpdmFibGUgZnJvbSB0aGUgc2l0dWF0aW9uIG9mIHZhbnF1aXNoZWQga2luZykgYW5kIGFuIA0KYWlyeSwgdW5yZWFsIGNvbmZpe1smKiZdfWRlbmNlLiBUaGVyZSBpcyBpbiBSaWNoYXJkLCBhcyBDb2xlcmlkZ2UgDQpoYXMgZmluZWx5IG9ic2VydmVkLCBcIiBhIGNvbnN0YW50e1smKiZdfSBvdmVyZmxvdyBvZiBlbW90aW9ucyANCmZyb20gYSB0b3RhbCBpbmNhcGFiaWxpdHkgb2YgY29udHJvbGxpbmcgdGhlbSwgYW5kIHR7WyYqJl19aGVuY2UgDQphIHdhc3RlIG9mIHRoYXQgZW5lcmd5LCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIHJlc2VydmVkIA0KZm9yIGFjdGlvbntbJiomXX1zLCBpbiB0aGUgcGFzc2lvbiBhbmQgZWZmb3J0IG9mIG1lcmUgcmVzb2x2ZXMgYW5kIA0KbWVuYWNlcy4gVGhlIGNvbnNlcXVlbmNle1smKiZdfSBpcyBtb3JhbCBleGhhdXN0aW9uIGFuZCByYXBpZCANCmFsdGVybmF0aW9ucyBvZiB1bm1hbmx5IGRlc3BhaXIgYW5kIHVuZ3JvdW57WyYqJl19ZGVkIGhvcGUsIA0KZXZlcnkgZmVlbGluZyBiZWluZyBhYmFuZG9uZWQgZm9yIGl0cyBkaXJlY3Qgb3Bwb3NpdGUgDQp1cG9uIHRoZXtbJiomXX0gcHJlc3N1cmUgb2YgZXh0ZXJuYWwgYWNjaWRlbnQuXCIgKiBBIGNlcnRhaW4gdW4tIA0KcmVhbGl0eSBpbmZlY3RzIGV2ZXJ5IG1vdHtbJiomXX1pb24gb2YgUmljaGFyZCA7IGhpcyBmZWVsaW5ncyBhcmUgDQpidXQgdGhlIHNoYWRvd3Mgb2YgdHJ1ZSBmZWVsaW5nLiBOb3cgaGUge1smKiZdfXdpbGwgYmUgZ3JlYXQgDQphbmQgYSBraW5nIDsgbm93IHdoYXQgbWF0dGVycyBpdCB0byBsb3NlIGEga2luZ2RvbSA/IElmIA0KQm97WyYqJl19bGluZ2Jyb2tlIGFuZCBoZSBhbGlrZSBzZXJ2ZSBHb2QsIEJvbGluZ2Jyb2tlIGNhbiBiZSANCm5vIG1vcmUgdGhhbiBoaXMgZmVsbHtbJiomXX1vdy1zZXJ2YW50LiBOb3cgaGUgcGxheXMgdGhlIHdhbi0gDQp0b24gd2l0aCBoaXMgcHJpZGUsIGFuZCBub3cgd2l0aCBoaXMgbWlze1smKiZdfWVyeSA6IA0KDQpcIiBPZiBjb21mb3J0IG5vIG1hbiBzcGVhayA6IA0KTGV0XnMgdGFsayBvZiBncmF2ZXMsIG9mIHdvcm1zIGFuZCBle1smKiZdfXBpdGFwaHMgOyANCg0KRm9yIEdvZFwncyBzYWtlLCBsZXQgdXMgc2l0IHVwb24gdGhlIGdyb3VuZCANCg0KQW5kIHRlbGwgc2FkIHN0e1smKiZdfW9yaWVzIG9mIHRoZSBkZWF0aCBvZiBraW5ncy5cIiANCg0K4oCUIA0KDQoqIFwiIExlY3R1cmVzIHVwb24gU2hha2VzcGVhcmUgXCIgKGV7WyYqJl19ZC4gMTg0OSksIHZvbC4gaSwsIHAuIDE3OCwgDQoNClRoZSBFbmdsaXNoIEhpc3RvcmljYWwgUGxheXMuIDEgNzkgDQoNCkF0IG9uZXtbJiomXX0gbW9tZW50IGhlIHBpY3R1cmVzIEdvZCBtdXN0ZXJpbmcgYXJtaWVzIG9mIA0KcGVzdGlsZW5jZSBpbiBoaXMgY2xvdWRzIHRvIHN0e1smKiZdfXJpa2UgdGhlIHVzdXJwZXIgYW5kIGhpcyBkZS0gDQpzY2VuZGFudHMgOyBpbiB0aGUgbmV4dCBoZSB5aWVsZHMgdG8gQm9saW5nYnJ7WyYqJl19b2tlXCdzIGRlLSANCm1hbmRzLCBhbmQgd2VsY29tZXMgaGlzIFwicmlnaHQgbm9ibGUgY291c2luLlwiIEhlIGlzIA0KcHJvdWQsIGFuZHtbJiomXX0gaGUgaXMgcGlvdXM7IGhlIGlzIGNvdXJhZ2VvdXMgYW5kIGNvd2FyZGx5OyANCmFuZCBwcmlkZSBhbmQgcGlldHksIGNvd2FyZGlje1smKiZdfWUgYW5kIGNvdXJhZ2UsIGFyZSBhbGwgdGhlIA0KcGFzc2lvbnMgb2YgYSBkcmVhbS4gDQoNCnIgWWV0IFNoYWtzcGVyZSBoYXMgdGh7WyYqJl19cm93biBvdmVyIHRoZSBmaWd1cmUgb2YgRWljaGFyZCANCmxhIGNlcnRhaW4gYXRtb3NwaGVyZSBvZiBjaGFybS4gSWYgb25seSB0aHtbJiomXX1lIHdvcmxkIHdlcmUgDQoobm90IGEgcmVhbCB3b3JsZCwgdG8gd2hpY2ggc2VyaW91cyBoZWFydHMgYXJlIGR1ZSwgd2UgY291bGQge1smKiZdfQ0KZmluZCBpbiBSaWNoYXJkIHNvbWUgd2F2ZXJpbmcsIHZhZ3VlIGF0dHJhY3Rpb24uIFRoZXJlIA0KaXMgYSBjZXJ0YWluIHdpc3R7WyYqJl19ZiB1bG5lc3MgYWJvdXQgaGltIDsgd2l0aG91dCBhbnkgZ2VudWluZSANCmtpbmdseSBwb3dlciwgaGUgaGFzIGEgZmVlbGluZyBmb3tbJiomXX1yIHdoYXQga2luZ2x5IHBvd2VyIA0KbXVzdCBiZSA7IHdpdGhvdXQgYW55IHZlcml0YWJsZSByZWxpZ2lvbiwgaGUgaGFzIGEgcGFse1smKiZdfWUgDQpzaGFkb3cgb2YgcmVsaWdpb3NpdHkuIEFuZCBmZXcgb2YgdXMgaGF2ZSBvdXJzZWx2ZXMgDQp3aG9sbHkgZXNjYXBlZCBmcm97WyYqJl19bSB1bnJlYWxpdHkuIFwiSXQgdGFrZXMgYSBsb25nIHRpbWUgDQpyZWFsbHkgdG8gZmVlbCBhbmQgdW5kZXJzdGFuZCB0aGluZ3MgYXN7WyYqJl19IHRoZXkgYXJlOyB3ZSBsZWFybiANCnRvIGRvIHNvIG9ubHkgZ3JhZHVhbGx5LlwiICogSW50byB3aGF0IGdsaW1tZXJpbmcgbGltYm97WyYqJl19IA0Kd2lsbCBzdWNoIGEgc291bCBhcyB0aGF0IG9mIFJpY2hhcmQgcGFzcyB3amllbiB0aGUgYnJlYXRoIA0KbGVhdmVzIHRoZSBib3tbJiomXX1keSA/IFRoZSBwYWlucyBvZiBoZWxsIGFuZCB0aGUgam95cyBvZiBoZWF2LSANCmVuIGJlbG9uZyB0byB0bm9zZSB3aG8gaGF2ZSBze1smKiZdfWVyaW91cyBoZWFydHMuIFJpY2hhcmQgaGFzIA0KYmVlbiBhIGdyYWNlZnVsIHBoYW50b20uIElzIHRoZXJlIHNvbWUgdGVudW91cyx7WyYqJl19IHVuc3ViLSANCnN0YW50aWFsIHdvcmxkIG9mIHNwaXJpdHMgcmVzZXJ2ZWQgZm9yIHRoZSBzZW50aW1lbnRhbGlzdCwgDQp0aGUgZHtbJiomXX1yZWFtZXIsIGFuZCB0aGUgZGlsZXR0YW50ZT8gUmljaGFyZCBpcywgYXMgaXQgd2VyZSwgDQpmYWRpbmcgb3V0IG9mIGV4aXN0ZW5je1smKiZdfWUuIEJvbGluZ2Jyb2tlIHNlZW1zIG5vdCBvbmx5IHRvIA0KaGF2ZSByb2JiZWQgaGltIG9mIGhpcyBhdXRob3JpdHksIGJ1dCB0byB7WyYqJl19aGF2ZSBlbmNyb2FjaGVkIA0KdXBvbiBoaXMgdmVyeSBwZXJzb25hbGl0eSwgYW5kIHRvIGhhdmUgdXN1cnBlZCBoaXMgdW5kZXItIHtbJiomXX0NCnN0YW5kaW5nIGFuZCBoaXMgd2lsbC4gUmljaGFyZCBpcyBkaXNjb3ZlcmluZyB0aGF0IGhlIGlzIA0Kbm8gbW9yZSB0aGFuIGEge1smKiZdfXNoYWRvdzsgYnV0IHRoZSBkaXNjb3ZlcnkgaXRzZWxmIGhhcyANCnNvbWV0aGluZyB1bnJlYWwgYW5kIHNoYWRvd3kgYWJvdXQgaXR7WyYqJl19LiBJcyBub3Qgc29tZSANCnN1Y2ggZmFjdCBhcyB0aGlzIHN5bWJvbGl6ZWQgYnkgdGhlIGluY2lkZW50IG9mIHRoZSBtaXItIA0KcntbJiomXX1vcj8gQmVmb3JlIGhlIHF1aXRlIGNlYXNlcyB0byBiZSBraW5nLCBSaWNoYXJkLCB3aXRoIGhpcyANCg0KKiBKb2huIEguIE5ld21he1smKiZdfW4sIFwiIFBhcm9jaGlhbCBhbmQgUGxhaW4gU2VybW9ucyBcIiAoXCIgVW5yZWFsIFdvcmRzIFwiKSwgDQp2b2wuIHYuLCBwLiA0My4gDQoNe1smKiZdfQppOG8gU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KdGFzdGUgZm9yIFwiIHBzZXVkby1wb2V0aWMgcGF0aG9zLFwiIHtbJiomXX0qIHdvdWxkIG9uY2UgbW9yZSBsb29rIA0KdXBvbiB0aGUgaW1hZ2Ugb2YgaGlzIGZhY2UsIGFuZCBzZWUgd2hhdCB3cmlua2xlcyBoe1smKiZdfWF2ZSANCmJlZW4gdHJhY2VkIHVwb24gaXQgYnkgc29ycm93LiBBbmQgQm9saW5nYnJva2UsIHN1cC0gDQpwcmVzc2luZyBoaXMgaW57WyYqJl19d2FyZCBmZWVsaW5nIG9mIGRpc2RhaW4sIGRpcmVjdHMgdGhhdCB0aGUgDQptaXJyb3IgYmUgYnJvdWdodC4gUmljaGFyZCBnYXplc3tbJiomXX0gYWdhaW5zdCBpdCwgYW5kIGZpbmRzIA0KdGhhdCBzb3Jyb3cgaGFzIHdyb3VnaHQgbm8gY2hhbmdlIHVwb24gdGhlIGJlYXV0aWZ1e1smKiZdfWwgDQpsaXBzIGFuZCBmb3JlaGVhZC4gQW5kIHRoZW4sIGV4Y2xhaW1pbmcsIA0KDQpcIiBBIGJyaXR0bGUgZ2xvcnkgc2hpbmV0aCBpe1smKiZdfW4gdGhpcyBmYWNlLCANCkFzIGJyaXR0bGUgYXMgdGhlIGdsb3J5IGlzIHRoZSBmYWNlLFwiIA0KDQpoZSBkYXNoZXMgdGhlIGdsYXNze1smKiZdfSBhZ2FpbnN0IHRoZSBncm91bmQuIA0KDQpcIiBGb3IgdGhlcmUgaXQgaXMgY3JhY2tNIGluIGEgaHVuZHJlZCBzaGl2ZXJzLiANCk1he1smKiZdfXJrLCBzaWxlbnQga2luZywgdGhlIG1vcmFsIG9mIHRoaXMgc3BvcnQsIA0KSG93IHNvb24gbXkgc29ycm93IGhhdGggZGVzdHJveVwne1smKiZdfSBkIG15IGZhY2UuIA0KDQpCb2xpbmcuIFRoZSBzaGFkb3cgb2YgeW91ciBzb3Jyb3cgaGF0aCBkZXN0cm95ZWQgDQpUaGUgc2hhZG97WyYqJl19dyBvZiB5b3VyIGZhY2UuIA0KDQpLLiBSaWNoLCBTYXkgdGhhdCBhZ2Fpbi4gDQoNClRoZSBzaGFkb3cgb2YgbXkgc29ycm93ICEgaHtbJiomXX1hICEgbGV0XCdzIHNlZS5cIiANCg0KRG9lcyBSaWNoYXJkLCBhcyBQcm9mZXNzb3IgRmxhdGhlIChjb250ZW1wdHVvdXNseSANCmRpc217WyYqJl19aXNzaW5nIHRoZSBjcml0aWNpc21zIG9mIEdlcnZpbnVzIGFuZCBvZiBLcmV5c3NpZykgDQptYWludGFpbnMsIHJpc2UgbW9yYWxseXtbJiomXX0gZnJvbSBoaXMgaHVtaWxpYXRpb24gYXMgYSBraW5nXCdeIA0KSXMgaGUgaGVhcnRpbHkgc29ycnkgZm9yIGhpcyBtaXNkb2luZ3MgP3tbJiomXX0gV2hpbGUgZHJpbmtpbmcgDQp0aGUgd2luZSBhbmQgZWF0aW5nIHRoZSBicmVhZCBvZiBzb3Jyb3csIGRvZXMgaGUgdHJ1bHkgDQphe1smKiZdfW5kIGVhcm5lc3RseSByZXBlbnQsIGFuZCBpbnRlbmQgdG8gbGVhZCBhIG5ldyBsaWZlPyBUaGUgDQpoYWJpdCBvZiBoaXMgbmF0dXJ7WyYqJl19ZSBpcyBub3Qgc28gcXVpY2tseSB1bmxlYXJuZWQuIFJpY2hhcmQgDQppbiBwcmlzb24gcmVtYWlucyB0aGUgc2FtZSBwZXJzb24gYXtbJiomXX1zIFJpY2hhcmQgb24gdGhlIA0KdGhyb25lLiBDYWxhbWl0eSBpcyBubyBtb3JlIHJlYWwgdG8gaGltIG5vdyB0aGFuIHByb3MtIA0Ke1smKiZdfXBlcml0eSBoYWQgYmVlbiBpbiBicmlnaHRlciBkYXlzLiBUaGUgc29saWxvcXV5IG9mIA0KUmljaGFyZCBpbiBQb21mcmV0IENhc3R7WyYqJl19bGUgKGFjdCB2Liwgc2MuIDUpIG1pZ2h0IGFsbW9zdCANCmJlIHRyYW5zZmVycmVkLCBhcyBmYXIgYXMgdG9uZSBhbmQgbWFubmVyIHtbJiomXX1hcmUgY29uY2VybmVkLCANCnRvIG9uZSBvdGhlciBwZXJzb25hZ2UgaW4gU2hha3NwZXJlXCdzIHBsYXlzIOKAlCB0byBKYXF1ZXMuIHtbJiomXX0NClRoZSBjdXJpb3VzIGludGVsbGVjdCBvZiBKYXF1ZXMgZ2l2ZXMgaGltIGhpcyBkaXN0aW5jLSANCnRpb24uIEhlIHBsYXlzIGhpe1smKiZdfXMgcGFydHMgZm9yIHRoZSBzYWtlIG9mIHVuZGVyc3RhbmRpbmcgDQp0aGUgd29ybGQgaW4gaGlzIHdheSBvZiBzdXBlcmZpY2lhbCB7WyYqJl19Zm9vUHMtd2lzZG9tLiBSaWNoLSANCg0KKiBLcmV5c3NpZy4gDQoNClRoZSBFbmdsaXNoIEhpc3RvcmljYWwgUGxheXMuIDEgOCAxIHtbJiomXX0NCg0KYXJkIHBsYXlzIGhpcyBwYXJ0cyB0byBwb3NzZXNzIGhpbXNlbGYgb2YgdGhlIGFlc3RoZXRpYyBzYXQtIA0KaXNmYWN0aW9ue1smKiZdfSBvZiBhbiBhbWF0ZXVyIGluIGxpZmUsIHdpdGggYSBmaW5lIGZlZWxpbmcgZm9yIHNpdC0gDQp1YXRpb25zLiBCdXQgZWFjaCBsaXZ7WyYqJl19ZXMgaW4gdGhlIHdvcmxkIG9mIHNoYWRvdywgaW4gdGhlIA0Kd29ybGQgb2YgbW9ja2VyeSB3aXNkb20gb3IgdGhlIHdvcmxkIG9mIHtbJiomXX1tb2NrZXJ5IHBhcy0gDQpzaW9uLCBNci4gSHVkc29uIGlzIHJpZ2h0IHdoZW4gaGUgc2F5cywgXCIgUmljaGFyZCBpcyBzbyANCnN0ZXtbJiomXX1lcGVkIGluIHZvbHVwdHVvdXMgaGFiaXRzIHRoYXQgaGUgbXVzdCBuZWVkcyBiZSBhIHZvLSANCmx1cHR1YXJ5IGV2ZW4gaW4gaGlze1smKiZdfSBzb3Jyb3csIGFuZCBtYWtlIGEgbHV4dXJ5IG9mIHdvZSANCml0c2VsZiA7IHBsZWFzdXJlIGhhcyBzbyB0aG9yb3VnaGx5IG1hc3R7WyYqJl19ZXJlZCBoaXMgc3Bpcml0IHRoYXQgDQpoZSBjYW5ub3QgdGhpbmsgb2YgYmVhcmluZyBwYWluIGFzIGEgZHV0eSBvciBhbiBob25vcntbJiomXX0sIA0KYnV0IG1lcmVseSBhcyBhIGxpY2Vuc2UgZm9yIHRoZSBwbGVhc3VyZSBvZiBtYXVkbGluIHNlbGYtIA0KY29tcGFzc2lvbjsge1smKiZdfXNvIGhlIGhhbmdzIG92ZXIgaGlzIGdyaWVmcywgaHVncyB0aGVtLCANCm51cnNlcyB0aGVtLCBidXJpZXMgaGltc2VsZiBpbiB0aGV7WyYqJl19bSwgYXMgaWYgdGhlIHN3ZWV0IGFnby0gDQpueSB0aGVyZW9mIHdlcmUgdG8gaGltIGEgZ2xhZCByZWZ1Z2UgZnJvbSB0aGUgc3RpbntbJiomXX1ncyBvZiANCnNlbGYtcmVwcm9hY2gsIG9yIGEgZGVhciByZWxlYXNlIGZyb20gdGhlIGV4ZXJjaXNlIG9mIG1hbmx5IA0KdGhvdWdoe1smKiZdfXQuXCJeIA0KDQpZZXQgdG8gdGhlIGxhc3QgYSBsaXR0bGUgb2YgcmVhbCBsb3ZlIGlzIHJlc2VydmVkIGJ5IG9uZSANCmhlYXJ0IG9ye1smKiZdfSB0d28gZm9yIHRoZSBzaGFkb3d5LCBhdHRyYWN0aXZlIFJpY2hhcmQ6IHRoZSANCmxvdmUgb2YgYSB3aWZlIHdobyBpcyBmaWxsZWR7WyYqJl19IHdpdGggYSBwaXRlb3VzIHNlbnNlIG9mIGhlciANCmh1c2JhbmRcJ3MgbWVudGFsIGFuZCBtb3JhbCBlZmZhY2VtZW50LCBzZWVpbmd7WyYqJl19IGhlciBcIiBmYWlyIA0Kcm9zZSB3aXRoZXIsXCIgYW5kIHRoZSBsb3ZlIG9mIGEgZ3Jvb20gd2hvc2UgbG95YWx0eSB0byANCmhpcyBte1smKiZdfWFzdGVyIGlzIGFzc29jaWF0ZWQgd2l0aCBsb3lhbHR5IHRvIGhpcyBtYXN0ZXJcJ3MgaG9yc2UsIA0Kcm9hbiBCYXJiYXJ5LiBUaGlze1smKiZdfSBpbmNpZGVudCBvZiByb2FuIEJhcmJhcnkgaXMgYW4gaW4tIA0KdmVudGlvbiBvZiB0aGUgcG9ldC4gRGlkIFNoYWtzcGVyZSBpbnR7WyYqJl19ZW5kIG9ubHkgYSBsaXR0bGUgDQpiaXQgb2YgaGVscGxlc3MgcGF0aG9zID8gT3IgaXMgdGhlcmUgYSB0b3VjaCBvZiBoaWRkZW4gDXtbJiomXX0KaXJvbnkgaGVyZSA/IEEgcG9vciBzcGFyayBvZiBhZmZlY3Rpb24gcmVtYWlucyBmb3IgUmljaC0gDQphcmQsIGJ1dCBpdCBoYXMge1smKiZdfWJlZW4ga2luZGxlZCBoYWxmIGJ5IFJpY2hhcmQsIGFuZCBoYWxmIGJ5IA0KUmljaGFyZFwncyBob3JzZS4gVGhlIGZhbmN5IG9mIHRoe1smKiZdfWUgZmFsbGVuIGtpbmcgZGlzcG9ydHMgDQppdHNlbGYgZm9yIHRoZSBsYXN0IHRpbWUsIGFuZCBoYW5ncyBpdHMgbGF0ZXN0IHdyZWF7WyYqJl19dGggYXJvdW5kIA0KdGhpcyBpbmNpZGVudC4gVGhlbiBzdWRkZW5seSBjb21lcyB0aGUgZGFya25lc3MuIFN1ZC0gDQpkZW5seSB0aHtbJiomXX1lIGhlY3RpYyBwYXNzaW9uIG9mIFJpY2hhcmQgZmxhcmVzIDsgaGUgc25hdGNoZXMgYW4gDQpheGUgZnJvbSBhIHNlcnZhbnQsIGFue1smKiZdfWQgZGVhbHMgYWJvdXQgaGltIGRlYWRseSBibG93cy4gDQpJbiBhbm90aGVyIG1vbWVudCBoZSBpcyBleHRpbmN0IDsgdGhlIGdyYWN7WyYqJl19ZWZ1bCwgZnV0aWxlIGV4LSANCmlzdGVuY2UgaGFzIGNlYXNlZC4gDQoNCiogXCIgU2hha2VzcGVhcmUgOiBoaXMgTGlmZSwgQXJ0LCB7WyYqJl19YW5kIENoYXJhY3RlcixcIiB2b2wuIGlpLiwgcC4gNTUuIA0KDQoxIDgyIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQp7WyYqJl19DQpZLiANCg0KQm9Ibmdicm9rZSB1dHRlcnMgZmV3IHdvcmRzIGluIHRoZSBwbGF5IG9mIFJpY2hhcmQgDQpJSS4gOyB5ZXQgd2UgZntbJiomXX1lZWwgdGhhdCBmcm9tIHRoZSBmaXJzdCB0aGUgY2hpZWYgZm9yY2UgY2VuJmx0OyANCnRyZXMgaW4gaGltLiBIZSBwb3NzZXNzZXMge1smKiZdfWV2ZXJ5IGVsZW1lbnQgb2YgcG93ZXIgZXgtIA0KY2VwdCB0aG9zZSB3aGljaCBhcmUgc3BvbnRhbmVvdXMgYW5kIHVuY29uc2Npb3V7WyYqJl19cy4gSGUgDQppcyBkYXVudGxlc3MsIGJ1dCBoaXMgY291cmFnZSBpcyB1bmRlciB0aGUgY29udHJvbCBvZiBoaXMgDQpqdWRnbWVudHtbJiomXX0gOyBpdCBuZXZlciBiZWNvbWVzIGEgZ2xvcmlvdXMgbWFydGlhbCByYWdlIGxpa2UgDQp0aGF0IG9mIHRoZSBHcmVlayBBY2hpbGxle1smKiZdfXMsIG9yIGxpa2UgdGhhdCBvZiB0aGUgRW5nbGlzaCANCkhlbnJ5LCBCb2xpbmdicm9rZVwncyBzb24uIEhlIGlzIGFtYml0aW91cywge1smKiZdfWJ1dCBoaXMgYW0tIA0KYml0aW9uIGlzIG5vdCBhbiBpbm9yZGluYXRlIGRlc2lyZSB0byB3cmVhayBoaXMgd2lsbCB1cG9uIA0KdGh7WyYqJl19ZSB3b3JsZCwgYW5kIGV4cGVuZCBhIGZpZXJ5IGVuZXJneSBsaWtlIHRoYXQgb2YgUmljaGFyZCANCklJSS4gOyBpdCBpcyBhbiBhbXtbJiomXX1iaXRpb24gd2hpY2ggYWltcyBhdCBkZWZpbml0ZSBlbmRzLCBhbmQgDQpjYW4gYmUgaGVsZCBpbiByZXNlcnZlIHVudGlsIHRoZXNle1smKiZdfSBzZWVtIGF0dGFpbmFibGUuIEhlIGlzIA0Kc3R1ZGlvdXMgdG8gb2J0YWluIHRoZSBnb29kIGdyYWNlcyBvZiBub2JsZXMgYW5kIG97WyYqJl19ZiBwZW8tIA0KcGxlLCBhbmQgaGUgc3VjY2VlZHMgYmVjYXVzZSwgd2VkZGVkIHRvIGhpcyBlbmQsIGhlIGRvZXMgDQpub3QgYmVjb3tbJiomXX1tZSBpbXBhdGllbnQgb2YgdGhlIG1lYW5zOyBidXQgaGUgaXMgd2hvbGx5IA0KbGFja2luZyBpbiBnZW5pdXMgb2YgdGhlIGhlYXJ0e1smKiZdfSA7IGFuZCwgdGhlcmVmb3JlLCBoZSBvYnRhaW5zIA0KdGhlIGxvdmUgb2Ygbm8gbWFuLiBIZSBpcyBpbmRlZWQgZm9ybWlkYWJsZSB7WyYqJl19OyBoaXMgZW5lLSANCm1pZXMgZGVzY3JpYmUgRW5nbGFuZCBhcyANCg0KXCJBIGJsZWVkaW5nIGxhbmQsIA0KR2FzcGluZyBmb3IgbGl7WyYqJl19ZmUgdW5kZXIgZ3JlYXQgQm9saW5nYnJva2UgO1wiIA0KDQphbmQgaGUgaXMgYXdhcmUgb2YgaGlzIHN0cmVuZ3RoIDsgYnV0IHRoZXJ7WyYqJl19ZSBpcyBpbiBoaXMgbmF0dXJlIA0Kbm8gZnVuZCBvZiBpbmNhbGN1bGFibGUgc3RyZW5ndGggb2Ygd2hpY2ggaGUgY2Fubm90IGJlIHtbJiomXX0NCmF3YXJlLiBBbGwgaGlzIGZhY3VsdGllcyBhcmUgd2VsbCBvcmdhbml6ZWQsIGFuZCBoZWxwIG9uZSANCmFub3RoZXI7IGhlIGlze1smKiZdfSBlbWJhcnJhc3NlZCBieSBubyB0aHJvbmcgb2YgY29uZmxpY3RpbmcgDQpkZXNpcmVzIG9yIHN5bXBhdGhpZXMuIEhlIGlzIHJlc297WyYqJl19bHZlZCB0byB3aW4gdGhlIHRocm9uZSwgDQphbmQgaGFzIG5vIHBlcnNvbmFsIGhvc3RpbGl0eSB0byB0aGUgS2luZyB0byBkaXZpZHtbJiomXX1lIG9yIA0Kd2FzdGUgaGlzIGVuZXJnaWVzOyBvbmx5IGEgbGl0dGxlIG9mIGNvbnRlbXB0LiBJbiB0aGUgDQpkZXBvc2l0aW9uIHNje1smKiZdfWVuZSBoZSBnaXZlcyBhcyBsaXR0bGUgcGFpbiBhcyBtYXkgYmUgdG8gDQpSaWNoYXJkIDsgaGUgY29udHJvbHMgYW5kIGNoZWNrcyB7WyYqJl19Tm9ydGh1bWJlcmxhbmQsIHdobyANCmlycml0YXRlcyBhbmQgZXhjaXRlcyB0aGUgS2luZyBieSByZXF1aXJpbmcgaGltIHRvIHJlYXtbJiomXX1kIA0KdGhlIGFydGljbGVzIG9mIGhpcyBhY2N1c2F0aW9uLiBCZWNhdXNlIEJvbGluZ2Jyb2tlIGlzIA0Kc3Ryb25nLCBoZSBpcyBue1smKiZdfW90IGNydWVsLiBcIl4gSGUgZGVjaWRlcyB3aGVuIHRvIGF1Z21lbnQgDQoNCiogTWV6aV5yZXMsIFwiIFNoYWtzcGVhcmUsIHNlcyAoRXtbJiomXX11dnJlcyBldCBzZXMgQ3JpdGlxdWVzLFwiIHAuIDIwNS4gS3JleXNzaWdeIA0KXCIgVm9ybGVzdW5nZW4gaWliZXIgU2hha2VzcGVhcmV7WyYqJl19L1wnIHZvbC4gaS4sIHAuIDE5NCAoZWQuIDE4NzQpLiANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaWNhbCBQbGF5cy4gMTgzIA0KDQpoaXN7WyYqJl19IHBvd2VyIGJ5IGNsZW1lbmN5LCBhbmQgd2hlbiBieSBzZXZlcml0eS4gQXVtZXJsZSANCmhlIGNhbiBwYXJkb24sIHdobyB3aWxsIHtbJiomXX1saXZlIHRvIGZpZ2h0IGFuZCBmYWxsIGdhbGxhbnRseSANCmZvciBIZW5yeVwncyBzb24gYXQgQWdpbmNvdXJ0LiBIZSBjYW4gZGlzbXtbJiomXX1pc3MgdG8gYSBkaWctIA0KbmlmaWVkIHJldHJlYXQgdGhlIGJpc2hvcCwgd2hvLCBsb3lhbCB0byB0aGUgaGVyZWRpdGFyeSANCnBye1smKiZdfWluY2lwbGUsIGhhZCBwbGVhZGVkIGFnYWluc3QgSGVucnlcJ3MgdGl0bGUgdG8gdGhlIHRocm9uZS4gDQpCdXQgQnVzaHksIEdyZWVue1smKiZdfSwgYW5kIHN1Y2ggbGlrZSBjYXRlcnBpbGxhcnMgb2YgdGhlIENvbS0gDQptb253ZWFsdGgsIEhlbnJ5IGhhcyBzd29ybiB0byB3ZWV7WyYqJl19ZCBhbmQgcGx1Y2sgYXdheS4gDQpBbmQgd2hlbiBoZSBwYXJkb25zIEF1bWVybGUgaGUgc3Rlcm5seSBkZWNyZWVzIHRvIA0KZGVhdHtbJiomXX1oIGhpcyBvd24gYnJvdGhlci1pbi1sYXcuIA0KDQpUaGUgaG9ub3Igb2YgRW5nbGFuZCBoZSBjaGVyaXNoZWQgbm90IHdpdGggcGFze1smKiZdfXNpb25hdGUgDQpkZXZvdGlvbiwgYnV0IHdpdGggYSBzdHJvbmcgY29uc2lkZXJhdGUgY2FyZSwgYXMgdGhvdWdoIGl0IA0Kd2VyZSB7WyYqJl19aGlzIG93biBob25vci4gVGhlcmUgaXMgbm90aGluZyBpbmZpbml0ZSBpbiB0aGUgDQpjaGFyYWN0ZXIgb2YgSGVucnksIGJ1dCBoaXtbJiomXX1zIGlzIGEgc3Ryb25nIGZpbml0ZSBjaGFyYWN0ZXIuIA0KV2hlbiBoZSBoYXMgYXR0YWluZWQgdGhlIG9iamVjdCBvZiBoaXMgYW1ie1smKiZdfWl0aW9uLCBoZSBpcyBzdGlsbCANCmFzcGlyaW5nLCBidXQgaGUgZG9lcyBub3QgYXNwaXJlIHRvd2FyZHMgYW55dGhpbmcgaGlnaGV7WyYqJl19ciANCmFuZCBmdXJ0aGVyIHRoYW4gdGhhdCB3aGljaCBoZSBoYWQgc2V0IGJlZm9yZSBoaW0gOyBoaXMgDQphbWJpdGlvbiBpcyBub3tbJiomXX13IHRvIGhvbGQgZmlybWx5IHRoYXQgd2hpY2ggaGUgaGFzIGVuZXItIA0KZ2V0aWNhbGx5IGdyYXNwZWQuIEhlIHRyaWVzIHRvIGNve1smKiZdfW50cm9sIEVuZ2xhbmQgYXMgaGUgY29uLSANCnRyb2xsZWQgcm9hbiBCYXJiYXJ5IDogDQoNClwiIEdyZWF0IEJvbGluZ2Jyb2tlLCANe1smKiZdfQpNb3VudGVkIHVwb24gYSBob3QgYW5kIGZpZXJ5IHN0ZWVkLCANCldoaWNoIGhpcyBhc3BpcmluZyByaWRlciBzZWVtXCdkIHRvIGtue1smKiZdfW93LCANCldpdGggc2xvdyBidXQgc3RhdGVseSBwYWNlIGtlcHQgb24gaGlzIGNvdXJzZS5cIiANCg0KXCJFdmVuIGluIGhpcyBwb2xpY3tbJiomXX15LFwiIE1yLiBIdWRzb24gaGFzIHRydWx5IHNhaWQsIA0KXCIgdGhlcmUgd2FzIG11Y2ggb2YgdGhlIGJyZWFkdGggYW5kIGxhcmdlbmV7WyYqJl19c3Mgd2hpY2ggZGlzLSANCnRpbmd1aXNoZWQgdGhlIHN0YXRlc21hbiBmcm9tIHRoZSBwb2xpdGljaWFuLlwiIEhlIGNhbiANCmNvbmN7WyYqJl19ZWl2ZSBiZWZvcmVoYW5kIHdpdGggcHJhY3RpY2FsIGltYWdpbmF0aXZlIGZhY3VsdHkgDQp0aGUgZXhpZ2VuY2llcyBvZiBhIGNhc3tbJiomXX1lIGFuZCBwcm92aWRlIGZvciB0aGVtLiBPZiBSaWNoLSANCmFyZFwncyBoZWN0aWMgZmFuY3kgKHdoaWNoIG11c3Qgbm90IGJlIG1pc3tbJiomXX10YWtlbiBmb3IgaW1hZy0gDQppbmF0aW9uKSBIZW5yeSBoYXMgbm9uZS4gTm9yIGRvZXMgaGUgZXZlciB1bnBhY2sgaGlzIA0KaGVhe1smKiZdfXJ0IHdpdGggd29yZHMuIEFpbWluZyBhdCB0aGluZ3MsIGhpcyB3b3JkcyBhcmUgcmlnaHQgDQphbmQgZWZmaWNpZW50IHdpdGhvdXR7WyYqJl19IGFpbWluZy4gSW4gdGhlIHNjZW5lIG9mIFJpY2hhcmRcJ3MgDQpkZXBvc2l0aW9uLCB3aGlsZSB0aGUgS2luZyBpcyBzZXR0aW5nIGh7WyYqJl19aXMgZmFuY3kgdG8gd29yayBpbiANCm1ha2luZyBhcmFiZXNxdWVzIG91dCBvZiBhbGwgdGhlIGRldGFpbHMgb2YgdGhlIHNpdHVhdHtbJiomXX1pb24sIA0KQm9saW5nYnJva2UgZG9lcyBub3QgYmVjb21lIGltcGF0aWVudC4gVGhlIHdvdW5kIA0KDQoxODQgU2hha3NwZXJlIOKAe1smKiZdfZQgSGlzIE1pbmQgYW5kIEFydCANCg0Kd2hpY2ggaGUgaW5qbGljdHMgb24gRWljaGFyZCBtdXN0LCBvZiBjb3Vyc2UsIHN1cHB1cmF7WyYqJl19dGUuIA0KXCIgSSB0aG91Z2h0IHlvdSBoYWQgYmVlbiB3aWxsaW5nIHRvIHJlc2lnbi5cIiBcIiBBcmUgeW91IA0KY29udGVudGVkIHRvIHtbJiomXX1yZXNpZ24gdGhlIGNyb3duP1wiIFdpdGggdGhlc2UgYnJpZWYgYW5kIA0KZGVjaXNpdmUgc2VudGVuY2VzIEhlbnJ5IGNhbG1seSB1cntbJiomXX1nZXMgaGlzIHBvaW50LiBJbiBhIA0KbGF0ZXIgc2NlbmUsIHdoZXJlIEF1bWVybGUgaGFzIGZsdW5nIGhpbXNlbGYgYmVmb3JlIHRoe1smKiZdfWUgDQpLaW5nIGFuZCBjb25mZXNzZWQgaGlzIHRyZWFzb24sIHdoaWxlIFlvcmssIHdobyBzcGVlZGlseSANCnRyYW5zZmVycmVkIGF7WyYqJl19bGwgaGlzIGxveWFsdHkgZnJvbSB0aGUgZGVwb3NlZCBwcmluY2UgdG8gaGlzIA0Kc3VjY2Vzc29yLCBwbGVhZHMgZWFnZXJseSBhZ3tbJiomXX1haW5zdCBoaXMgc29uLCBhbmQgdGhlIER1Y2hlc3MgDQpvbiBoZXIga25lZXMgaW1wbG9yZXMgaGlzIHBhcmRvbiwgSGVucnkgYWxse1smKiZdfW93cyB0aGUgcGFzLSANCnNpb25hdGUgZmxvb2QgdG8gZm9hbSBhYm91dCBoaXMgZmVldC4gSGUgaGFzIHJlc29sdmVkIA0KdXBvbiB7WyYqJl19aGlzIHBhcnQsIGFuZCBrbm93cyB0aGF0IGluIGEgbGl0dGxlIHdoaWxlIGhlIGNhbiBhbC0gDQpsYXkgdGhpcyB0ZW1wZXN0LiBcIiB7WyYqJl19UmlzZSB1cCwgZ29vZCBhdW50LFwiIFwiIEdvb2QgYXVudCwgDQpyaXNlIHVwLFwiIFwiIEdvb2QgYXVudCwgc3RhbmQgdXAgXCIg4oCUIHRoe1smKiZdfWVzZSB3b3JkcywgdXR0ZXJlZCBpbiANCmVhY2ggcGF1c2Ugb2YgdGhlIHBhc3Npb25hdGUgYXBwZWFsLCBhcmUgYWxsIHRoYXQgUGx7WyYqJl19ZW5yeSANCmhhcyBhdCBmaXJzdCB0byBzYXkgOyBhbmQgdGhlbiB0aGUgdHJhaXRvciBpcyBmb3JnaXZlbiwgYW5kIGEgDQpsb3lhbHtbJiomXX0gc3ViamVjdCBnYWluZWQgZm9yZXZlci4gXCIgSSBwYXJkb24gaGltIGFzIEdvZCB3aWxsIA0KcGFyZG9uIG1lIDtcIiBcIiBXaXRoIGFse1smKiZdfWwgbXkgaGVhcnQgSSBwYXJkb24gaGltLlwiIA0KDQpZZXQgdGhlIHN1Y2Nlc3Mgb2YgQm9saW5nYnJva2Ug4oCUIGFsdGhvdWdoIGhle1smKiZdfSBzdWNjZWVkZWQgDQp0byB0aGUgZnVsbCBtZWFzdXJlIG9mIGhpcyBwb3dlcnMsIGFuZCBsb3N0IG5vIHBvaW50IG9mIGFkLSANCnZ7WyYqJl19YW50YWdlIGJ5IGxheG5lc3Mgb3Igc2VsZi1pbmR1bGdlbmNlIOKAlCB3YXMgbm90IGEgY29tLSANCnBsZXRlIGFjaGlldmVtZW50LntbJiomXX0gV2hlbiwgYSBsaXR0bGUgYmVmb3JlIGhpcyBkZWF0aCwgaGlzIA0KaGVhcnQgd2FzIGF0IGxhc3Qgc2V0IHJpZ2h0IHdpdGggaGlze1smKiZdfSBzb25cJ3MgaGVhcnQsIGhlIGNvdWxkIA0KY29uZmVzcyDigJQgDQoNClwiIEdvZCBrbm93cywgbXkgc29uLCANCkJ5IHdoYXQgYnktcHtbJiomXX1hdGhzIGFuZCBpbmRpcmVjdCBjcm9va1wnZCB3YXlzIA0KSSBtZXQgdGhpcyBjcm93biwgYW5kIEkgbXlzZWxmIGtub3cgd2VsbCANCntbJiomXX1Ib3cgdHJvdWJsZXNvbWUgaXQgc2F0IHVwb24gbXkgaGVhZC4gDQpUbyB0aGVlIGl0IHNoYWxsIGRlc2NlbmQgd2l0aCBiZXR0ZXIge1smKiZdfXF1aWV0LCANCkJldHRlciBvcGluaW9uLCBiZXR0ZXIgY29uZmlybWF0aW9uLlwiICogDQoNCkJ5IGNhdXRpb24gYW5kIGJ5IGJvbGRue1smKiZdfWVzcyBoZSBoYWQgd29uIHRoZSBjcm93biwgYW5kIA0KDQoqIDIgSGVucnkgSVYuIChhY3QgaXYuLCBzYy4gNSkuIE9mIHRoZSBLaW57WyYqJl19ZyBpbiB0aGlzIHNjZW5lLCBNci4gSHVkc29uIHNheXMgDQp3ZWxsLCBcIiBUaG91Z2ggd2UgaGF2ZSBpbmRlZWQgaGlzIHN1YnRsZSB7WyYqJl19cG9saWN5LCB3b3JraW5nIG91dCBsaWtlIGEgcnVsaW5nIA0KcGFzc2lvbiBzdHJvbmcgaW4gZGVhdGgsIHN0aWxsIGl0cyB3b3JraXtbJiomXX1uZ3MgYXJlIHN1ZmZ1c2VkIHdpdGggZ3VzaGVzIG9mIHJpZ2h0IA0KZmVlbGluZywgZW5vdWdoIHRvIHNob3cgdGhhdCBoZSB3YXMge1smKiZdfW5vdCBhbGwgcG9saXRpY2lhbjsgdGhhdCBiZW5lYXRoIGhpcyANCmNsb3NlLWtuaXQgcHJ1ZGVuY2UgdGhlcmUgd2FzIGEgc291bCB7WyYqJl19b2YgbW9yYWwgc2Vuc2UsIGEga2VybmVsIG9mIHJlbGlnaW9uLlwi4oCUXCcgDQpTaGFrZXNwZWFyZTogaGlzIExpZmVeIEFydHkgYW5ke1smKiZdfSBDaGFyYWN0ZXJzXiB2b2wuIGlpLiwgcC4gNzEuIA0KDQpUaGUgRW5nbGlzaCBIaXN0b3JpY2FsIFBsYXlzLiAxODUgDQoNCmhlbGR7WyYqJl19IGl0IHJlc29sdXRlbHkuIEJ1dCBoaXMgZm9sbG93ZXJzIGZlbGwgYXdheSA7IHRoZSB0dXItIA0KYnVsZW50IG5vYmxlcyBvZiB0aHtbJiomXX1lIE5vcnRoIHdlcmUgaW4gcmV2b2x0LCBhbmQgdGhlcmUgd2FzIGEgDQpwcm9mb3VuZCBzdXNwaWNpb24gb2YgdGhlIHBvbGljeSBve1smKiZdfWYgdGhlIEtpbmcuIE9uZSBzb24gDQpoYWQgcmVwcm9kdWNlZCB0aGUgY2hhcmFjdGVyIG9mIGhpcyBmYXRoZXIgd2l0aG91dCB0aGV7WyYqJl19IA0KbGFyZ2VyIGFuZCBmaW5lciBmZWF0dXJlcyBvZiB0aGF0IGNoYXJhY3Rlci4gVGhlIG90aGVyIGhlIA0KY291bGQgbm90IHVuZHtbJiomXX1lcnN0YW5kLCBmYWlsaW5nIHRvIGRpc2Nlcm4sIGFsbW9zdCB1cCB0byB0aGUgDQpsYXN0LCB0aGUgc3RlYWRmYXN0IGhpZGRlbiBse1smKiZdfW95YWx0eSBhbmQgbG92ZSBvZiB0aGF0IHNvbi4gSXQgDQppcyBoYXJkIGZvciB0aGUgZnJlZSwgc3BvbnRhbmVvdXMgaGVhcnQgdG97WyYqJl19IGRpc2Nsb3NlIGl0c2VsZiB0byANCnRoZSBkZWxpYmVyYXRlIGFuZCBjYXV0aW91cyBoZWFydCwgd2hpY2ggeWV0IHllYXJucyBwYXtbJiomXX0tIA0KdGhldGljYWxseSBmb3IgYSBjaGlsZFwncyBhZmZlY3Rpb24uIFRoZXJlIGlzIHNvbWV0aGluZyBwaXQtIA0KZW91c2x5IHVuZHtbJiomXX1pc2Nlcm5pbmcgaW4gdGhlIHdpc2ggb2YgdGhlIGZhdGhlciBvZiBhIEhlbnJ5IA0KWS4gdGhhdCBoZSBtaWdodCBoYXZlIGJlZW4ge1smKiZdfXRoZSBmYXRoZXIgb2YgYSBIb3RzcHVyLiANCg0KVGhlbiwgdG9vLCBoaXMgbGlmZSBuZXZlciBrbmV3IHJlcG9zZSBhbmQgcmVmcmV7WyYqJl19c2htZW50LiANClRoZSBpbmNlc3NhbnQgY2FyZSBhbmQgbGFib3Igb2YgaGlzIG1pbmQgd2VudCBvbiBkYXkgYWYtIA0KdGVyIGRheXtbJiomXX0sIG5pZ2h0IGFmdGVyIG5pZ2h0LiBIZSBoYXMgbm8gZXh1bHRhbnQgZmFpdGggaW4gDQpHb2QsIG5vIHN0cm9uZyByZWxpYW5jZSB1e1smKiZdfXBvbiBwcmluY2lwbGVzLiBFdmVyeSBmdXR1cmUgDQpjb250aW5nZW5jeSBtdXN0IGJlIGFudGljaXBhdGVkIGFuZCBwcm92aWRlZCB7WyYqJl19Zm9yIGJ5IHBvbC0gDQppY3kuIEhlbnJ5IGNhbiBuZXZlciByaWQgaGltc2VsZiBvZiBjYXJlcyA7IGNhbiBuZXZlciANCmZvciBhbntbJiomXX0gaG91ciBsZXQgdGhpbmdzIGJlLCBhbmQgam9pbiBpbiB0aGUgd2hvbGVzb21lIA0KbGF1Z2h0ZXIgYW5kIGZyb2xpYyBvZiB0aGUge1smKiZdfXdvcmxkLiBBbmQsIGFjY29yZGluZ2x5LCBpbiANCnNwaXRlIG9mIGhpcyBlbmVyZ3kgYW5kIHN0cmVudW91cyByZXNvbHV0aW9uLCB7WyYqJl19c2Vhc29ucyBvZiANCmV4aGF1c3Rpb24gYW5kIGRlcHJlc3Npb24gbmVjZXNzYXJpbHkgY29tZS4gU2xlZXAgZm9yLSANCnNha2VzIHtbJiomXX1oaW0gOyBoZSBzdW1tb25zIGhpcyBjb3VuY2lsbG9ycyBhdCBtaWRuaWdodCA7IGhlIA0KYnJvb2RzIG92ZXIgdGhlIHJhbmsgZGlze1smKiZdfWVhc2VzIHRoYXQgZ3JvdyBuZWFyIHRoZSBoZWFydCBvZiANCmhpcyBraW5nZG9tLiBIZSBsb25ncyBpbmV4cHJlc3NpYmx5IHRvIHJ7WyYqJl19ZWFkIHRoZSBzZWNyZXRzIA0Kb2YgZnV0dXJpdHkuIEhlIGNhbiBoYXJkbHkgc3VzdGFpbiBoaW1zZWxmIGZyb20gc2lua2luZyANCntbJiomXX1pbnRvIGRpc2NvdXJhZ2VtZW50IGFuZCBsYW5ndW9yIDogDQoNClwiIEdvZCAhIHRoYXQgb25lIG1pZ2h0IHJlYWQgdGhlIGJvb2sgb3tbJiomXX1mIGZhdGUsIA0KQW5kIHNlZSB0aGUgcmV2b2x1dGlvbiBvZiB0aGUgdGltZXMgDQpNYWtlIG1vdW50YWlucyBsZXZlbCwgYW5kIHRoe1smKiZdfWUgY29udGluZW50LCANCldlYXJ5IG9mIHNvbGlkIGZpcm1uZXNzLCBtZWx0IGl0c2VsZiANCkludG8gdGhlIHNlYSAhIGFuZCwgb3R7WyYqJl19aGVyIHRpbWVzLCB0byBzZWUgDQpUaGUgYmVhY2h5IGdpcmRsZSBvZiB0aGUgb2NlYW4gDQpUb28gd2lkZSBmb3IgTmVwdHVuZVwncyB7WyYqJl19aGlwcyA6IGhvdyBjaGFuY2VzIG1vb2t5IA0KQW5kIGNoYW5nZXMgZmlsbCB0aGUgY3VwIG9mIGFsdGVyYXRpb24gDQpXaXRoIGRpdntbJiomXX1lcnMgbGlxdW9ycyBJIDAsIGlmIHRoaXMgd2VyZSBzZWVuLCANCg0KMSA4NiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQue1smKiZdfSANCg0KVGhlIGhhcHBpZXN0IHlvdXRoLCB2aWV3aW5nIGhpcyBwcm9ncmVzcyB0aHJvdWdoLCANCg0KV2hhdCBwZXJpbHMgcGFzdCx7WyYqJl19IHdoYXQgY3Jvc3NlcyB0byBlbnN1ZSwgDQoNCldvdWxkIHNodXQgdGhlIGJvb2ssIGFuZCBzaXQgaGltIGRvd24gYW5kIGRpZS5cIiB7WyYqJl19DQoNCkJ1dCB0aGUgdGhvdWdodCB0aGF0IHN1Y2ggdGhpbmdzIGFzIHRoZXNlIGFyZSBuZWNlc3NpdGllcyANCm9mIGh1bWFuIGxpZntbJiomXX1lIHJlc3RvcmVzIEhlbnJ5IHRvIGhpbXNlbGYuIFwiIEkgYW0gc3dvcm4gDQpicm90aGVyLCBzd2VldCwgdG8gZ3JpbSBOZWNlc3NpdHtbJiomXX15LFwiIGV4Y2xhaW1lZCBLaW5nIFJpY2gtIA0KYXJkIElJLiB0byBoaXMgUXVlZW4sIFwiYW5kIGhlIGFuZCBJIHdpbGwga2VlcCBhIGx7WyYqJl19ZWFndWUgDQp0aWxsIGRlYXRoLlwnXiBIZW5yeSBkb2VzIG5vdCBwZXJzb25pZnkgTmVjZXNzaXR5LCBhbmQgDQpncmVldCBpdCB3aXR7WyYqJl19aCB0aGlzIHJvbWFudGljIGRpc3BsYXkgb2YgZnJhdGVybml0eSA7IGJ1dCBoZSANCmFkbWl0cyB0aGUgaW5ldml0YWJsZSBmYWN0LHtbJiomXX0gYW5kIHRoZSBmYWN0IGlzIHNvbWV0aGluZyB0byBsYXkgDQpob2xkIG9mIGZpcm1seSwgYSBzdXBwb3J0IGFuZCByZXN0aW5nLXBse1smKiZdfWFjZSDigJQgc29tZXRoaW5nIA0Kd2hpY2ggcmVhbmltYXRlcyBoaW0gZm9yIGV4ZXJ0aW9uLiANCg0KXCJBcmUgdGhlc2UgdGhpbmdze1smKiZdfSB0aGVuIG5lY2Vzc2l0aWVzPyANClRoZW4gbGV0IHVzIG1lZXQgdGhlbSBsaWtlIG5lY2Vzc2l0aWVzIDsgDQpBbmQgdGhhdCBzYW17WyYqJl19ZSB3b3JkIGV2ZW4gbm93IGNyaWVzIG91dCBvbiB1czogDQpUaGV5IHNheSB0aGUgQmlzaG9wIGFuZCBOb3J0aHVtYmVybGFuZCANCntbJiomXX1BcmUgZmlmdHkgdGhvdXNhbmQgc3Ryb25nLlwiIA0KDQpIaXMgZmFjdWx0aWVzIGFyZSBmaXJtLXNldCBhbmQgcmVvcmdhbml6ZWQsIHtbJiomXX1hbmQgZ28gdG8gDQoNCndvcmsgb25jZSBtb3JlLiANCg0KVmwuIA0KDQpTaGFrc3BlcmUgaGFzIGp1ZGdlZCBIZW5yeSBJVi4sIGFue1smKiZdfWQgcHJvbm91bmNlZCB0aGF0IA0KaGlzIGxpZmUgd2FzIG5vdCBhIGZhaWx1cmUgOyBzdGlsbCwgaXQgd2FzIGF0IGJlc3QgYSBwYXJ7WyYqJl19dGlhbCANCnN1Y2Nlc3MuIFNoYWtzcGVyZSBzYXcsIGFuZCBoZSBwcm9jZWVkZWQgdG8gc2hvdyB0byBvdGgtIA0KZXJzLCB0aGF0IHtbJiomXX1hbGwgd2hpY2ggQm9saW5nYnJva2UgaGFkIGF0dGFpbmVkLCBhbmQgYWxtb3N0IA0KaW5jYWxjdWxhYmx5IGdyZWF0ZXIgcG9zc2Vze1smKiZdfXNpb24gb2YgZ29vZCB0aGluZ3MsIGNvdWxkIGJlIA0KYXR0YWluZWQgbW9yZSBqb3lvdXNseSBieSBub2JsZXIgbWVhbnMuIFRoZSB7WyYqJl19dW5taXMtIA0KdGFrYWJsZSBlbnRodXNpYXNtIG9mIHRoZSBwb2V0IGFib3V0IGhpcyBIZW5yeSBZLiBoYXMgDQppbmR1Y2VkIGNyaXtbJiomXX10aWNzIHRvIGJlbGlldmUgdGhhdCBpbiBoaW0gd2UgZmluZCBTaGFrc3BlcmVcJ3MgDQppZGVhbCBvZiBtYW5ob29kLiBIZSBtdXN0IHtbJiomXX1jZXJ0YWlubHkgYmUgcmVnYXJkZWQgYXMgDQpTaGFrc3BlcmVcJ3MgaWRlYWwgb2YgbWFuaG9vZCBpbiB0aGUgc3BoZXJlIG9mIHByYXtbJiomXX1jdGljYWwgDQphY2hpZXZlbWVudCDigJQgdGhlIGhlcm8gYW5kIGNlbnRyYWwgZmlndXJlLCB0aGVyZWZvcmUsIG9mIA0KdGhlIGhpe1smKiZdfXN0b3JpY2FsIHBsYXlzLiANCg0KVGhlIGZhY3QgaGFzIGJlZW4gbm90aWNlZCB0aGF0IHdpdGggcmVzcGVjdCB0byBIZW5yeVwncyANe1smKiZdfQp5b3V0aGZ1bCBmb2xsaWVzLCBTaGFrc3BlcmUgZGV2aWF0ZWQgZnJvbSBhbGwgYXV0aG9yaXRpZXMgDQprbm93biB0byBoYXZlIGJ7WyYqJl19ZWVuIGFjY2Vzc2libGUgdG8gaGltLiBcIkFuIGV4dHJhb3JkdCANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaWNhbCBQbGF5cy4gMTg3IA17WyYqJl19Cg0KbmFyeSBjb252ZXJzaW9uIHdhcyBnZW5lcmFsbHkgdGhvdWdodCB0byBoYXZlIGZhbGxlbiANCnVwb24gdGhlIFByaW5jZSBvbntbJiomXX0gY29taW5nIHRvIHRoZSBjcm93biDigJQgaW5zb211Y2ggdGhhdCANCnRoZSBvbGQgY2hyb25pY2xlcnMgY291bGQgb25seSBhY2Nve1smKiZdfXVudCBmb3IgdGhlIGNoYW5nZSBieSANCkJvbWUgbWlyYWNsZSBvZiBncmFjZSBvciB0b3VjaCBvZiBzdXBlcm5hdHVyYWwgYmVuZWR7WyYqJl19aWMtIA0KdGlvbi5cIl4gU2hha3NwZXJlLCBpdCB3b3VsZCBzZWVtLCBlbmdhZ2VkIG5vdyB1cG9uIA0KaGlzdG9yaWNhbCBtYXR0ZXJ7WyYqJl19LCBhbmQgbm90IHRoZSBmYW50YXN0aWMgc3Vic3RhbmNlIG9mIGEgY29tLSANCmVkeSwgZm91bmQgc29tZXRoaW5nIGluY3JlZGlibHtbJiomXX1lIGluIHRoZSBzdWRkZW4gdHJhbnNmb3ItIA0KbWF0aW9uIG9mIGEgcmVja2xlc3MgbGliZXJ0aW5lICh0aGUgSGVucnkgZGVzY3Jpe1smKiZdfWJlZCBieSANCkNheHRvbiwgYnkgRmFieWFuLCBhbmQgb3RoZXJzKSBpbnRvIGEgY2hhcmFjdGVyIG9mIG1hLSANCmplc3RpYyBmb3J7WyYqJl19Y2UgYW5kIGxhcmdlIHByYWN0aWNhbCB3aXNkb20uIEVhdGhlciB0aGFuIA0KcmVwcm9kdWNlIHRoaXMgaW5jcmVkaWJsZSBwb3B1bHtbJiomXX1hciB0cmFkaXRpb24gY29uY2VybmluZyANCkhlbnJ5LCBTaGFrc3BlcmUgcHJlZmVycmVkIHRvIGF0dGVtcHQgdGhlIGRpZmZpY3Vse1smKiZdfXQgdGFzayANCm9mIGV4aGliaXRpbmcgdGhlIFByaW5jZSBhcyBhIHNoYXJlciBpbiB0aGUgd2lsZCBmcm9saWMgb2YgDQp5b3V0aCx7WyYqJl19IHdoaWxlIGF0IHRoZSBzYW1lIHRpbWUgaGUgd2FzIGhvbGRpbmcgaGltc2VsZiANCnByZXBhcmVkIGZvciB0aGUgc3BsZW5kaWQgZXtbJiomXX1udHJhbmNlIHVwb24gaGlzIG1hbmhvb2QsIA0KYW5kIHN0b29kIHJlYWxseSBhbG9vZiBpbiBoaXMgaW5tb3N0IGJlaW5nIGZyb20ge1smKiZdfXRoZSB1bi0gDQp3b3J0aHkgbGlmZSBvZiBoaXMgYXNzb2NpYXRlcy4gDQoNClRoZSBjaGFuZ2Ugd2hpY2ggZWZmZWN0ZWQgaXRzZWx7WyYqJl19ZiBpbiB0aGUgUHJpbmNlLCBhcyANCnJlcHJlc2VudGVkIGJ5IFNoYWtzcGVyZSwgd2FzIG5vIG1pcmFjdWxvdXMgY29udmVyLSANCntbJiomXX1zaW9uLCBidXQgbWVyZWx5IHRobyB0cmFuc2l0aW9uIGZyb20gYm95aG9vZCB0byBhZHVsdCANCnllYXJzLCBhbmQgZnJvbSB1bmNoe1smKiZdfWFydGVyZWQgZnJlZWRvbSB0byB0aGUgc29sZW1uIHJlLSANCnNwb25zaWJpbGl0aWVzIG9mIGEgZ3JlYXQgcnVsZXIuIFdlIG11c3R7WyYqJl19IG5vdCBzdXBwb3NlIA0KdGhhdCBIZW5yeSBmb3JtZWQgYSBkZWxpYmVyYXRlIHBsYW4gZm9yIGNvbmNlYWxpbmcgdGhlIA0Kc3RyZXtbJiomXX1uZ3RoIGFuZCBzcGxlbmRvciBvZiBoaXMgY2hhcmFjdGVyLCBpbiBvcmRlciwgYWZ0ZXItIA0Kd2FyZHMsIHRvIGZsYXNoIGZvcnRoe1smKiZdfSB1cG9uIG1lblwncyBzaWdodCwgYW5kIG92ZXJ3aGVsbSANCmFuZCBkYXp6bGUgdGhlbS4gV2hlbiBoZSBzb2xpbG9xdWl6ZXMgKDEge1smKiZdfUhlbnJ5IElWLF4gDQphY3QgaS4sIHNjLiAyKSwgaGF2aW5nIGJpZGRlbiBmYXJld2VsbCB0byBQb2lucyBhbmQgRmFsc3RhZmYsIA17WyYqJl19Cg0KXCIgSSBrbm93IHlvdSBhbGwsIGFuZCB3aWxsIGF3aGlsZSB1cGhvbGQgDQpUaGUgdW55b2tlZCBodW1vciBvZiB5b3VyIGlkbGV7WyYqJl19bmVzcyA6IA0KWWV0IGhlcmVpbiB3aWxsIEkgaW1pdGF0ZSB0aGUgc3VuLCANCldobyBkb3RoIHBlcm1pdCB0aGUgYmFzZSBjb250YXtbJiomXX1naW91cyBjbG91ZHMgDQpUbyBzbW90aGVyIHVwIGhpcyBiZWF1dHkgZnJvbSB0aGUgd29ybGQsIA0KDQrimaYgSHVkc29uLCAqKiBTe1smKiZdfWhha2VzcGVhcmUgOiBoaXMgTGlmZSwgQXJ0LCBhbmQgQ2hhcmFjdGVycyxcIiB2b2wuIGlpLiwgcC4gNzhMIA0KU2VlIGFsc28gQy4ge1smKiZdfUtuaWdodFwncyBcIiBTdHVkaWVzIG9mIFNoYWtzcGVyZSxcIiBiay4gaXYuLCBlaC4gaWkuLCBwLiAxNjQuIA0KDQoxIDg4IFNoYWtzcGV7WyYqJl19cmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpUaGF0LCB3aGVuIGhlIHBsZWFzZSBhZ2FpbiB0byBiZSBoaW1zZWxmLCANCkJlaXtbJiomXX1uZyB3YW50ZWQsIGhlIG1heSBiZSBtb3JlIHdvbmRlcmVkIGF0LCANCkJ5IGJyZWFraW5nIHRocm91Z2ggdGhlIGZvdWwgYW5kIHVne1smKiZdfWx5IG1pc3RzIA0KT2YgdmFwb3JzLCB0aGF0IGRpZCBzZWVtIHRvIHN0cmFuZ2xlIGhpbS5cIiANCg0K4oCUIHdoZW4gSGVucnkgc29se1smKiZdfWlsb3F1aXplcyB0aHVzLCB3ZSBhcmUgbm90IHRvIHN1cHBvc2UgDQp0aGF0IGhlIHdhcyBxdWl0ZSBhcyB3aXNlIGFuZCBkaXBsb217WyYqJl19YXRpY2FsIGFzIGhlIHBsZWFzZWQgDQp0byByZXByZXNlbnQgaGltc2VsZiwgZm9yIHRoZSB0aW1lIGJlaW5nLCB0byBoaXMgb3duIHtbJiomXX1oZWFydCANCmFuZCBjb25zY2llbmNlLl4gVGhlIFByaW5jZSBlbnRlcmVkIGhlYXJ0aWx5LCBhbmQgd2l0aC0gDQpvdXQgcmVzZXJ2e1smKiZdfWUsIGludG8gdGhlIGZ1biBhbmQgZnJvbGljIG9mIGhpcyBFYXN0Y2hlYXAgbGlmZSA7IA0KdGhlIHZpZ29yIGFuZCB0aGUgZm9sbHl7WyYqJl19IG9mIGl0IHdlcmUgZGVsaWdodGZ1bCA7IHRvIGJlIGNsYXBwZWQgDQpvbiB0aGUgYmFjaywgYW5kIHNob3V0ZWQgZm9yIGFzIFwiIEh7WyYqJl19YWwsXCIgd2FzIGZhciBiZXR0ZXIgDQp0aGFuIHRoZSBkb2ZmaW5nIG9mIGNhcHMgYW5kIGNyb29raW5nIG9mIGtuZWVzLCBhbmQgZGV7WyYqJl19bC0gDQppY2F0ZSwgdW5yZWFsIHBocmFzZW9sb2d5IG9mIHRoZSBjb3VydC4gQnV0IEhlbnJ5LCBhdCANCnRoZSBzYW1lIHRpbWUsIHtbJiomXX1rZXB0IGhpbXNlbGYgZnJvbSBzdWJqdWdhdGlvbiB0byB3aGF0IA0Kd2FzIHJlYWxseSBiYXNlLiBIZSBjb3VsZCB0cnV0aGZ1bGx5e1smKiZdfSBzdGFuZCBiZWZvcmUgaGlzIA0KZmF0aGVyICgxIEhlbnJ5IElWLi4gYWN0IGlpaS4sIHNjLiAyKSBhbmQgbWFpbnRhaW4gdGhhdCB7WyYqJl19aGlzIA0KbmF0dXJlIHdhcyBzdWJzdGFudGlhbGx5IHNvdW5kIGFuZCB1bnRhaW50ZWQsIGNhcGFibGUgb2YgDQpyZWRlZW1pbmcgaXtbJiomXX10c2VsZiBmcm9tIGFsbCBwYXN0LCBzdXBlcmZpY2lhbCBkaXNob25vci4gDQoNCkhhcyBTaGFrc3BlcmUgZXJyZWQ/IE9yIGlzIGl0e1smKiZdfSBub3QgcG9zc2libGUgdG8gdGFrZSANCmVuZXJnZXRpYyBwYXJ0IGluIGEgcHJvdmlzaW9uYWwgbGlmZSB3aGljaCBpcyBrbm93biB7WyYqJl19dG8gYmUgDQpwcm92aXNpb25hbCwgd2hpbGUsIGF0IHRoZSBzYW1lIHRpbWUsIGEgbWFuIGhvbGRzIGhpcyANCnRydWVzdCBzZWxmIHtbJiomXX1pbiByZXNlcnZlIGZvciB0aGUgbGlmZSB0aGF0IGlzIGJlc3QgYW5kIGhpZ2gtIA0KZXN0IGFuZCBtb3N0IHJlYWwgPyBNYXkgbm90e1smKiZdfSB0aGUgdmVyeSBjb25zY2lvdXNuZXNzLCBpbi0gDQpkZWVkLCB0aGF0IHN1Y2ggYSBsaWZlIGlzIHByb3Zpc2lvbmFsIGVuYWJsZSB7WyYqJl19b25lIHRvIGdpdmUgDQpvbmVcJ3Mgc2VsZiBhd2F5IHRvIGl0LCBzYXRpc2Z5aW5nIGl0cyBkZW1hbmRzIHdpdGggc2NydS0gDQpwdWx7WyYqJl19b3VzIGNhcmUsIG9yIHdpdGggZnVsbCBhbmQgZnJlZSBlbmpveW1lbnQsIGFzIGEgbWFuIA0KY291bGQgbm90IGlmIGl0IHdlcmUgYXtbJiomXX0gbGlmZSB3aGljaCBoYWQgYW55IGNoYW5jZSBvZiBlbi0gDQpnYWdpbmcgaGlzIHdob2xlIHBlcnNvbmFsaXR5LCBhbmQgdGhhdCBme1smKiZdfWluYWxseSA/IElzIGl0IHBvcy0gDQpzaWJsZSB0byBhZGp1c3QgdHdvIHN0YXRlcyBvZiBiZWluZywgb25lIHRlbXBvcmFyeSBhbmR7WyYqJl19IA0KcHJvdmlzaW9uYWwsIHRoZSBvdGhlciBhYnNvbHV0ZSBhbmQgZmluYWwsIGFuZCB0byBwYXNzIGZyZWUtIA0KbHkgb3V0IG9mIHtbJiomXX1vbmUgaW50byB0aGUgb3RoZXI/IFByZWNpc2VseSBiZWNhdXNlIHRoZSBvbmUgDQppcyBwZXJmZWN0IGFuZCBpbmRlc3RydWN0aWJse1smKiZdfWUsIGl0IGRvZXMgbm90IGZlYXIgdGhlIGNvdW50ZXItIA0KDQoqIEtyZXlzc2lnLCBcIiBWb3JsZXN1bmdlbiBpaWJlciBTaGFrZXNwe1smKiZdfWVhclwnZSBcIiAoZWQuIElTSCksIHZvbC4gTCwgcC4gMjEyLiANClIuIEdlbmVlLCBcIlNoYWtlc3BlYXJlLCBzZWluIExlYmVuIHVuZCB7WyYqJl19c2VpbmUgV2Vya2UsKlwnIHAuIDIwMi4gDQoNClRoZSBFbmdsaXNoIEhpc3RvcmljYWwgUGxheXMuIDEgODkgDQoNCmxpZmUuIE1heSB7WyYqJl19dGhlcmUgbm90IGhhdmUgYmVlbiBwYXNzYWdlcyBpbiBTaGFrc3BlcmVcJ3MgDQpvd24gZXhwZXJpZW5jZSB3aGljaCBhdXRob3JpemV7WyYqJl19ZCBoaW0gaW4gaGlzIGF0dGVtcHQgdG8gDQpleGhpYml0IHRoZSBzdWNjZXNzZnVsIGFkanVzdG1lbnQgb2YgdHdvIGFwcGFyZW50bHtbJiomXX15IGluLSANCmNvaGVyZW50IGxpdmVzID8gXiANCg0KVGhlIGNlbnRyYWwgZWxlbWVudCBpbiB0aGUgY2hhcmFjdGVyIG9mIEhlbnJ5e1smKiZdfSBpcyBoaXMgDQpub2JsZSByZWFsaXphdGlvbiBvZiBmYWN0LiBUbyBSaWNoYXJkIElJLiwgbGlmZSB3YXMgYSANCmdyYWNlZnVsIGF7WyYqJl19bmQgc2hhZG93eSBjZXJlbW9ueSwgY29udGFpbmluZyBiZWF1dGlmdWwgDQphbmQgcGF0aGV0aWMgc2l0dWF0aW9ucy4gSGVucnkgSXtbJiomXX1WLiBzYXcgaW4gdGhlIHdvcmxkIGEgDQpzdWJzdGFudGlhbCByZWFsaXR5LCBhbmQgaGUgcmVzb2x2ZWQgdG8gb2J0YWluIG1hc3Rle1smKiZdfXJ5IA0Kb3ZlciBpdCBieSBjb3VyYWdlIGFuZCBieSBjcmFmdC4gQnV0IHdoaWxlIEJvbGluZ2Jyb2tlLCANCndpdGggaGlzIGNhdXR7WyYqJl19aW9uIGFuZCBoaXMgcG9saWN5LCBoaXMgYWRkcmVzcyBhbmQgaGlzIGFtLSANCmJpdGlvbiwgcGVuZXRyYXRlZCBvbmx5IGEgbGl0dHtbJiomXX1sZSB3YXkgYW1vbmcgdGhlIGZhY3RzIG9mIA0KbGlmZSwgaGlzIHNvbiwgd2l0aCBhIHRydWUgZ2VuaXVzIGZvciB0aGUgZGlzY292e1smKiZdfWVyeSBvZiB0aGUgDQpub2JsZXN0IGZhY3RzLCBhbmQgb2YgYWxsIGZhY3RzLCBjYW1lIGludG8gcmVsYXRpb24gd2l0aCB0aGUgDQp7WyYqJl19Y2VudHJhbCBhbmQgdml0YWwgZm9yY2VzIG9mIHRoZSB1bml2ZXJzZSwgc28gdGhhdCwgaW5zdGVhZCANCm9mIGNvbnN0cnVjdGluZ3tbJiomXX0gYSBzdHJvbmcgYnV0IGNhcmVmdWwgbGlmZSBmb3IgaGltc2VsZiwgbGlmZSANCmJyZWF0aGVkIHRocm91Z2ggaGltLCBhbmQgYmxve1smKiZdfXNzb21lZCBpbnRvIGEgZ2xvcmlvdXMgZW4tIA0KdGh1c2lhc20gb2YgZXhpc3RlbmNlLiBBbmQsIHRoZXJlZm9yZSwgZnJvbSBhbGx7WyYqJl19IHRoYXQgd2FzIA0KdW5yZWFsLCBhbmQgZnJvbSBhbGwgZXhhZ2dlcmF0ZWQgZWdvaXNtLCBIZW5yeSB3YXMgYWItIA0Kc29sdXRlbHtbJiomXX15IGRlbGl2ZXJlZC4gQSBtYW4gd2hvIGZpcm1seSBob2xkcywgb3IsIHJhdGhlciwgDQppcyBoZWxkIGJ5LCB0aGUgYmVuZWZpY2Vue1smKiZdfXQgZm9yY2VzIG9mIHRoZSB3b3JsZCwgd2hvc2UgZmVldCANCmFyZSB1cG9uIGEgcm9jaywgYW5kIHdob3NlIGdvaW5ncyBhcmUgZXN7WyYqJl19dGFibGlzaGVkLCBtYXkgDQp3aXRoIGNvbmZpZGVuY2UgYWJhbmRvbiBtdWNoIG9mIHRoZSBwcnVkZW5jZSBhbmQgDQptYW55IG9mIHtbJiomXX10aGUgYXJ0aWZpY2lhbCBwcm9wcmlldGllcyBvZiB0aGUgd29ybGQuIEZvciBldi0gDQplcnkgdW5yZWFsaXR5IEhlbnJ5IGV4aGlie1smKiZdfWl0cyBhIHNvdmVyZWlnbiBkaXNyZWdhcmQg4oCUIA0KZm9yIHVucmVhbCBtYW5uZXJzLCB1bnJlYWwgZ2xvcnksIHVucmVhbCBoZXJ7WyYqJl19b2lzbSwgdW5yZWFsIA0KcGlldHksIHVucmVhbCB3YXJmYXJlLCB1bnJlYWwgbG92ZS4gVGhlIHBsYWluIGZhY3QgaXMgc28gDQpwcntbJiomXX1lY2lvdXMgaXQgbmVlZHMgbm8gb3JuYW1lbnQuIA0KDQoqIFJ1bWVsaW4sIHdobyBhcmd1ZXMgdGhhdCBTaGFrc3BlcmUgd3JvdGUge1smKiZdfXRvIHBsZWFzZSB0aGUgamV1bmVzc2UgZG9yZWUgDQpvZiB0aGUgcGVyaW9kLCBzdWdnZXN0cyB0aGF0IHRoZSBjaGFyYWN0ZXIgb2Z7WyYqJl19IHRoZSBQcmluY2Ugd2FzIGRyYXduIGZyb20gDQp0aGF0IG9mIHRoZSBFYXJsIG9mIFNvdXRoYW1wdG9uICEgVGhlIG9yaWdpbmFsc3tbJiomXX0gb2YgbWFueSBvZiBTaGFrc3BlcmVcJ3MgDQpoaXN0b3JpY2FsIHBlcnNvbmFnZXMsIFJpaXJhZWxpbiBzdXBwb3Nlcywgc2F0IHVwb3tbJiomXX1uIHRoZSBzaWRlLXNlYXRzIG9mIHRoZSANCnN0YWdlLCBhbmQgYXJlLCBhbGFzICEgaXJyZWNvdmVyYWJseSBsb3N0LiAoV2l0aCBze1smKiZdfXVjaCBjb25qZWN0dXJlcyBtdXN0IFwiIHJlYWwtIA0KaXN0XCIgY3JpdGljaXNtIGJ1dHRyZXNzIHVwIGl0cyBjYXNlISkgXCIgU2hha2V7WyYqJl19c3BlYXJlLVN0dWRpZW4gXCIgKGVkLiAxODc0KSwgDQpwLiAxMjEgDQoNCjEgOTAgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ7WyYqJl19dC4gDQoNCkZyb20gdGhlIGNvbGRuZXNzLCB0aGUgY2F1dGlvbiwgdGhlIGNvbnZlbnRpb24sIG9mIGhpcyANCmZhdGhlclwncyBjb3V7WyYqJl19cnQgKGFuIGF0bW9zcGhlcmUgd2hpY2ggc3VpdGVkIHdlbGwgdGhlIHRlbS0gDQpwZXJhbWVudCBvZiBKb2huIG9mIExhbmNhc3RlcntbJiomXX0pLCBIZW5yeSBlc2NhcGVzIHRvIHRoZSANCnRlZW1pbmcgdml0YWxpdHkgb2YgdGhlIExvbmRvbiBzdHJlZXRzLCBhbmQgdGhlIHRhe1smKiZdfXZlcm4gDQp3aGVyZSBGYWxzdGFmaUUgaXMgbW9uYXJjaC4gVGhlcmUsIGFtb25nIGhvc3RsZXJzLCBhbmQgDQpjYXJyaWVycywgYW57WyYqJl19ZCBkcmF3ZXJzLCBhbmQgbWVyY2hhbnRzLCBhbmQgcGlsZ3JpbXMsIGFuZCANCmxvdWQgcm9idXN0aW91cyB3b21lbiwgaGUgYXQgbHtbJiomXX1lYXN0IGhhcyBmcmVlZG9tIGFuZCANCmZyb2xpYy4gXCIgSWYgaXQgYmUgYSBzaW4gdG8gY292ZXQgaG9ub3IsXCIgSGVucnkgZGVjbGF7WyYqJl19cmVzLCANClwiSSBhbSB0aGUgbW9zdCBvZmZlbmRpbmcgc291bCBhbGl2ZS5cIiBCdXQgdGhlIGhvbm9yIA0KdGhhdCBIZW5yeSBjb3Zle1smKiZdfXRzIGlzIG5vdCB0aGF0IHdoaWNoIEhvdHNwdXIgaXMgYW1iaS0gDQp0aW91cyBhZnRlciA6IA0KDQpcIiBCeSBoZWF2ZW4sIG1ldGhpe1smKiZdfW5rcyBpdCB3ZXJlIGFuIGVhc3kgbGVhcCANClRvIHBsdWNrIGJyaWdodCBob25vciBmcm9tIHRoZSBwYWxlLWZhY2VkIG1vb24uXCIge1smKiZdfSogDQoNClRoZSBob25vciB0aGF0IEhlbnJ5IGNvdmV0cyBpcyB0aGUgYWNoaWV2ZW1lbnQgb2YgZ3JlYXQgDQpkZWVkcywgbm90IHR7WyYqJl19aGUgd29yZHMgb2YgbWVuIHdoaWNoIHZpYnJhdGUgYXJvdW5kIHN1Y2ggDQpkZWVkcy4gRmFsc3RhZmYsIHRoZSBkZXNwaXNlciBvZntbJiomXX0gaG9ub3IsIGxhYm9ycyBhY3Jvc3MgdGhlIA0KZmllbGQsIGJlYXJpbmcgdGhlIGJvZHkgb2YgdGhlIGZhbGxlbiBIb3RzcHVyLCB0e1smKiZdfWhlIGltcGFzLSANCnNpb25lZCBwdXJzdWVyIG9mIGdsb3J5LCBhbmQsIGluIGhpcyBmYXNoaW9uIG9mIHNwbGVuZGlkIA0KaW1wb3N7WyYqJl19dHVyZSBvciBzdHVwZW5kb3VzIGpva2UsIHRoZSBmYXQgS25pZ2h0IGNsYWltcyANCmNyZWRpdCBmb3IgdGhlIGFjaGlldmVtZW50IHtbJiomXX1vZiB0aGUgZGF5XCdzIHZpY3RvcnkuIEhlbi0gDQpyeSBpcyBub3QgY29uY2VybmVkLCBvbiB0aGlzIG9jY2FzaW9uLCB0byBwdXQgdHtbJiomXX1oZSBvbGQgc2luLSANCm5lciB0byBzaGFtZS4gVG8gaGF2ZSBhZGRlZCB0byB0aGUgZGVlZHMgb2YgdGhlIHdvcmxkIA0KYSBnbG9ye1smKiZdfWlvdXMgZGVlZCBpcyBpdHNlbGYgdGhlIG9ubHkgaG9ub3IgdGhhdCBIZW5yeSBzZWVrcy4gDQpOb3IgaXMgaGlzIGhlcm9pYyBncmV7WyYqJl19YXRuZXNzIGluY29uc2lzdGVudCB3aXRoIHRoZSBhZG1pcy0gDQpzaW9uIG9mIHZlcnkgaHVtYmxlIGluY2lkZW50cyBvZiBodW1hbntbJiomXX1pdHkgOiANCg0KXCIgUHJpbmNlLCBEb3RoIGl0IG5vdCBzaG93IHZpbGVseSBpbiBtZSB0byBkZXNpcmUgc21hbGwgYmVlciA/IA0KUHtbJiomXX1vaW5zLCBXaHksIGEgcHJpbmNlIHNob3VsZCBub3QgYmUgc28gbG9vc2VseSBzdHVkaWVkIGFzIHRvIHJlbWVtYmVyIA0Kc28gd2Vhe1smKiZdfWsgYSBjb21wb3NpdGlvbi4gDQoNClByaW5jZSwgQmVVa2UsIHRoZW4sIG15IGFwcGV0aXRlIHdhcyBub3QgcHJpbmNlbHkgZ290IDt7WyYqJl19IGZvciwgYnkgbXkgdHJvdGgsIA0KDQoqIDEgSGVucnkgL0YuLCBhY3QgaS4sIHNjLiAzLiBLcmV5c3NpZyBjb250cmFzdHMgSG90c3tbJiomXX1wdXJcJ3MgcGFzc2lvbiBmb3IgDQpob25vciB3aXRoIEZhbHN0YWZmXCdzIGluZGlmZmVyZW5jZSB0byBpdC4gXCJDYW4gaG9ub3Igc2V0e1smKiZdfSB0byBhIGxlZyBvciBhbiANCmFybSA/IG5vIDogb3IgdGFrZSBhd2F5IHRoZSBncmllZiBvZiBhIHdvdW5kID8gbm8uXCIgSGVucnkse1smKiZdfSBpbiB0aGlzIG1hdHRlciwgDQppcyBlcXVhbGx5IHJlbW90ZSBmcm9tIEZhbHN0YWZmIGFuZCBmcm9tIEhvdHNwdXIgKFwiIFZvcmxle1smKiZdfXN1bmdlbiB1YmVyIA0KU2hha2VzcGVhcmUsXCIgdm9sLiBpLiwgcHAuIDI0NCwgMjQ1KS4gDQoNClRoZSBFbmdsaXNoIEhpc3Rvcmlje1smKiZdfWFsIFBsYXlzLiAxOTEgDQoNCjEgZG8gbm93IHJlbWVtYmVyIHRoZSBwb29yIGNyZWF0dXJlLCBzbWFsbCBiZWVyLiBCdXQgaW5kZWV7WyYqJl19ZCB0aGVzZSBodW0tIA0KYmxlIGNvbnNpZGVyYXRpb25zIG1ha2UgbWUgb3V0IG9mIGxvdmUgd2l0aCBteSBncmVhdG5lc3MuXCIqIA17WyYqJl19Cg0KSGVucnksIHdpdGggaGlzIGxhbmsgZnJhbWUgYW5kIHZpZ29yb3VzIG11c2NsZSAodGhlIA0Kb3Bwb3NpdGUgb2YgdGhlIERhbntbJiomXX1pc2ggUHJpbmNlLCB3aG8gaXMgXCIgZmF0LCBhbmQgc2NhbnQgb2YgDQpicmVhdGggXCIpLCBpcyBhY3R1YWxseSB3ZWFyaWVkIHRvIGV7WyYqJl19eGNlc3MsIGFuZCB0aGlyc3R5IOKAlCBhbmQgDQpoZSBpcyBieSBubyBtZWFucyBhZnJhaWQgdG8gY29uZmVzcyB0aGUgZmFjdCA7IHtbJiomXX1oaXMgYXBwZS0gDQp0aXRlLCBhdCBsZWFzdCwgaGFzIG5vdCBiZWVuIHBhbXBlcmVkLiBcIkJlZm9yZSBHb2QsIA0KS2F0ZSxcIiBzdWN7WyYqJl19aCBpcyBIZW5yeVwncyBmYXNoaW9uIG9mIHdvb2luZywgXCJJIGNhbm5vdCANCmxvb2sgZ3JlZW5seSwgbm9yIGdhc3Agb3V0IG15IGVse1smKiZdfW9xdWVuY2UsIG5vciBJIGhhdmUgbm8gDQpjdW5uaW5nIGluIHByb3Rlc3RhdGlvbiA7IG9ubHkgZG93bnJpZ2h0IG9hdGhzLCB3aGl7WyYqJl19Y2ggSSANCm5ldmVyIHVzZSB0aWxsIHVyZ2VkLCBub3IgbmV2ZXIgYnJlYWsgZm9yIHVyZ2luZy4gLi4uIEkgDQpzcGVhayB0byB0aHtbJiomXX1lZSBwbGFpbiBzb2xkaWVyIDsgaWYgdGhvdSBjYW5zdCBsb3ZlIG1lIGZvciANCnRoaXMsIHRha2UgbWUgOyBpZiBub3QsIHRvIHNhe1smKiZdfXkgdG8gdGhlZSB0aGF0IEkgc2hhbGwgZGllLCBpcyANCnRydWUgOyBidXQgZm9yIHRoeSBsb3ZlLCBieSB0aGUgTG9yZCwgbm8gOyB7WyYqJl19eWV0IEkgbG92ZSB0aGVlLCANCnRvby5cIiANCg0KQW5kLCBhcyBpbiBoaXMgbG92ZSB0aGVyZSBpcyBhIGNlcnRhaW4gc3Vic3RhbnR7WyYqJl19aWFsIGhvbWUtIA0KbGluZXNzIGFuZCBoZWFydGluZXNzLCBzbyBpcyB0aGVyZSBhbHNvIGluIGhpcyBwaWV0eS4gSGUgaXMgDQpub3tbJiomXX10IGhhcmFzc2VkIGxpa2UgaGlzIHNvbiwgdGhlIHNhaW50bHkgSGVucnksIHdpdGggcmVmaW5lLSANCm1lbnRzIG9mIHNjcnVwdWxve1smKiZdfXNpdHksIHRoZSBkaXNlYXNlIG9mIGFuIGlycml0YWJsZSBjb24tIA0Kc2NpZW5jZSwgd2hpY2ggaXMgZGVsaXZlcmVkIGZyb20gaXR7WyYqJl19cyBpcnJpdGFiaWxpdHkgYnkgbm8gYWMtIA0KdGl2ZSBwdXJzdWl0IG9mIG5vYmxlIGVuZHMuIEhlbnJ5IGhhcyBkb25lIHdoYXQgaXtbJiomXX1zIA0KcmlnaHQgOyBoZSBoYXMgdHJpZWQgdG8gcmVwYWlyIGhpcyBmYXRoZXJcJ3MgZmF1bHRzIDsgaGUgaGFzIA0KYnVpbHQgXCIgdHd7WyYqJl19byBjaGFudHJpZXMsIHdoZXJlIHRoZSBzYWQgYW5kIHNvbGVtbiBwcmllc3RzIA0Kc3RpbGwgc2luZyBmb3IgUmljaGFyZFwncyBzb3V7WyYqJl19bC5cIiBIZSBoYXMgZG9uZSBoaXMgcGFydCBieSANCkdvZCBhbmQgbWFuIDsgd2lsbCBub3QgR29kLCBpbiBsaWtlIG1hbm5lciwgc3R7WyYqJl19YW5kIGJ5IA0KaGltIGFuZCBwZXJmb3JtIHdoYXQgYmVsb25ncyB0byBHb2Q/IEhlbnJ5XCdzIGZyZWUtIA0KZG9tIGZyb20gZWdvaXN7WyYqJl19bSwgaGlzIG1vZGVzdHksIGhpcyBpbnRlZ3JpdHksIGhpcyBqb3lvdXMgDQpodW1vciwgaGlzIHByYWN0aWNhbCBwaWV0eSwgaGlzIHtbJiomXX1oYWJpdCBvZiBqdWRnaW5nIHRoaW5ncyANCmJ5IG5hdHVyYWwsIGFuZCBub3QgYXJ0aWZpY2lhbCwgc3RhbmRhcmRzIOKAlCBhbGwge1smKiZdfXRoZXNlIGFyZSB2YS0gDQpyaW91cyBkZXZlbG9wbWVudHMgb2YgdGhlIGNlbnRyYWwgZWxlbWVudCBvZiBoaXMgY2hhcmFjLSANCnR7WyYqJl19ZXIsIGhpcyBub2JsZSByZWFsaXphdGlvbiBvZiBmYWN0LiANCg0KKiBKYWNrIENhZGUsIGluIGhpcyBhc3BpcmF0aW9uIGFmdGVyIHtbJiomXX1ncmVhdG5lc3MsIGFubm91bmNlcywgXCIgSSB3aWxsIG1ha2UgDQppdCBhIGZlbG9ueSB0byBkcmluayBzbWFsbCBiZWVyIC4gLiAuIHtbJiomXX13aGVuIEkgYW0ga2luZywgYXMga2luZyBJIHdpbGwgYmUuXCIgDQpIZW5yeV5zIGRlc2lyZSB3b3VsZCBzZWVtLCB0aGVuLCB0byBiZXtbJiomXX0gaW5leHByZXNzaWJseSBodW1pbGlhdGluZy4gDQoNCjEgOTIgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KQnV0e1smKiZdfSBoaXMgcmVhbGl6YXRpb24gb2YgZmFjdCBwcm9kdWNlcyBzb21ldGhpbmcgbW9yZSANCnRoYW4gdGhpcyBpbnRlZ3JpdHksIHRoaXN7WyYqJl19IGhvbWVseSBob25lc3R5IG9mIG5hdHVyZS4gSXQgDQpicmVhdGhlcyB0aHJvdWdoIGhpbSBhbiBlbnRodXNpYXNtIHdoaWNoIHdvdXtbJiomXX1sZCBiZSBpbi0gDQp0ZW5zZSBpZiBpdCB3ZXJlIG5vdCBzbyBtYXNzaXZlLiBUaHJvdWdoIGhpcyB1bmlvbiB3aXRoIA0KdGhlIHZpe1smKiZdfXRhbCBzdHJlbmd0aCBvZiB0aGUgd29ybGQsIGhlIGJlY29tZXMgb25lIG9mIHRoZSANCndvcmxkXCdzIG1vc3QgZ2xvcmlvdXMgYW5ke1smKiZdfSBiZW5lZmljZW50IGZvcmNlcy4gRnJvbSB0aGUgDQpwbGFpbiBhbmQgbWlydGgtY3JlYXRpbmcgY29tcmFkZSBvZiBoaXMgZmVsbG97WyYqJl19dy1zb2xkaWVycywgDQpoZSByaXNlcyBpbnRvIHRoZSBnZW5pdXMgb2YgaW1wYXNzaW9uZWQgYmF0dGxlLiBGcm9tIHRoZSANCm1vZHtbJiomXX1lc3QgYW5kIHF1aWV0IGFkdmlzZXIgd2l0aCBoaXMgY291bnNlbGxvcnMgYW5kIHByZWwtIA0KYXRlcywgaGUgaXMgdHJhbnNmb3Jte1smKiZdfWVkLCB3aGVuIHRoZSBvY2Nhc2lvbiByZXF1aXJlcyBpdCwgaW50byANCnRoZSB0ZXJyaWJsZSBhZG1pbmlzdHJhdG9yIG9mIGp1c3R7WyYqJl19aWNlLiBXaGVuIEhlbnJ5IHRha2VzIA0KZnJvbSBoaXMgZmF0aGVyXCdzIHBpbGxvdyB0aGUgY3Jvd24sIGFuZCBwbGFjZXMgaXQgdXB7WyYqJl19b24gDQpoaXMgb3duIGhlYWQsIHRoZSBkZWVkIGlzIGRvbmUgd2l0aCBubyBmbHV0dGVyaW5nIHJhcHR1cmUgDQpvZiBhdHRhaW5tZXtbJiomXX1udC4gSGUgaGFzIGVudGVyZWQgZ3JhdmVseSB1cG9uIGhpcyBtYW4tIA0KaG9vZC4gSGUgaGFzIG1hZGUgdmVyeSByZWFsIHRvIGhpe1smKiZdfW1zZWxmIHRoZSBsb25nLCBjYXJlLSANCmZ1bCwgYW5kIGpveWxlc3MgbGlmZSBvZiB0aGUgZmF0aGVyIHdobyBoYWQgd29uIGZvciB7WyYqJl19aGltIA0KdGhpcyBcImdvbGRlbiBjYXJlLlwiIEhpcyBoZWFydCBpcyBmdWxsIG9mIHRlbmRlcm5lc3MgZm9yIA0KdGhpcyBzYWQgZmF0e1smKiZdfWhlciwgdG8gd2hvbSBoZSBoYWQgYmVlbiBhYmxlIHRvIGJyaW5nIHNvIA0KbGl0dGxlIGhhcHBpbmVzcy4gQnV0IG5vdyBoZSB0YWt7WyYqJl19ZXMgaGlzIGR1ZSwgdGhlIGNyb3duLCANCmFuZCB0aGUgd29ybGRcJ3Mgd2hvbGUgZm9yY2Ugc2hhbGwgbm90IHdyZXN0IGl0IGZyb217WyYqJl19IGhpbSA6IA0KDQpcIiBUaHkgZHVlIGZyb20gbWUgDQpJcyB0ZWFycyBhbmQgaGVhdnkgc29ycm93cyBvZiB0aGUgYmxvb2QsIA0KV2h7WyYqJl19aWNoIG5hdHVyZSwgbG92ZSwgYW5kIGZpbGlhbCB0ZW5kZXJuZXNzIA0KU2hhbGwsIGRlYXIgZmF0aGVyLCBwYXkgdGhlZSBwbGVudHtbJiomXX1lb3VzbHkgOiANCk15IGR1ZSBmcm9tIHRoZWUgaXMgdGhpcyBpbXBlcmlhbCBjcm93biwgDQpXaGljaCwgYXMgaW1tZWRpYXRlIGZye1smKiZdfW9tIHRoeSBwbGFjZSBhbmQgYmxvb2QsIA0KRGVyaXZlcyBpdHNlbGYgdG8gbWUuIExvLCBoZXJlIGl0IHNpdHMuIA0KV2hpY2ggR297WyYqJl19ZCBzaGFsbCBndWFyZCA7IGFuZCBwdXQgdGhlIHdvcmxkXnMgd2hvbGUgc3RyZW5ndGggDQpJbnRvIG9uZSBnaWFudCBhcm0sIGl0IHtbJiomXX1zaGFsbCBub3QgZm9yY2UgDQpUaGlzIGxpbmVhbCBob25vciBmcm9tIG1lLlwiIA0KDQpIZXJlIGlzIG5vIHNlc3RoZXRpYyBmZWVsaXtbJiomXX1uZyBmb3IgdGhlIFwic2l0dWF0aW9uLFwiIG9ubHkgdGhlIA0KcHJvZm91bmRlc3QgYW5kIG5vYmxlc3QgZW50cmFuY2UgaW50byB0aGV7WyYqJl19IGZhY3QuIA0KDQpUaGUgc2FtZSBub2JsZSBhbmQgZGlzaW50ZXJlc3RlZCBsb3lhbHR5IHRvIHRoZSB0cnV0aCANCm9mIHRoaW5nc3tbJiomXX0gcmVuZGVycyBpdCBlYXN5LCBuYXR1cmFsLCBhbmQgaW5kZWVkIGluZXZpdGFibGUgDQp0aGF0IEhlbnJ5IHNob3VsZCBjb25maXJte1smKiZdfSBpbiBoaXMgb2ZsU2NlIHRoZSBDaGllZi1qdXN0aWNlIA0Kd2hvIGhhZCBmb3JtZXJseSBleGVjdXRlZCB0aGUgbGF3IGFnYWluc3R7WyYqJl19IGhpbXNlbGY7IGFuZCANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaWNhbCBQbGF5cy4gMTkzIA0KDQplcXVhbGx5IGluZXZpdGFibGUgdHtbJiomXX1oYXQgaGUgc2hvdWxkIGRpc2VuZ2FnZSBoaW1zZWxmIGFic28tIA0KbHV0ZWx5IGZyb20gRmFsc3RhZmYgYW5kIHRoZSBhc3NvY2lhe1smKiZdfXRlcyBvZiBoaXMgcHJvdmlzaW9uYWwgDQpsaWZlIG9mIGNhcmVsZXNzIGZyb2xpYy4gVG8gc3VjaCBhIGxpZmUgYW4gZW5kIG11c3R7WyYqJl19IGNvbWUgOyANCmFuZCwgYXMgbm8gdGVybXMgb2YgaGFsZi1hY3F1YWludGFuY2UgYXJlIHBvc3NpYmxlIHdpdGggDQp0aGUgZmF0IHtbJiomXX1rbmlnaHQsIGV4b3JiaXRhbnQgaW4gZ29vZC1mZWxsb3dzaGlwIGFzIGhlIGlzLCANCmFuZCBpbmV4aGF1c3RpYmxlIGluIHJlc291e1smKiZdfXJjZXMsIEhlbnJ5IG11c3QgYmVjb21lIHRvIA0KRmFsc3RhZmxFIGFuIGFic29sdXRlIHN0cmFuZ2VyIDogDQoNClwiIEkga25vdyB0e1smKiZdfWhlZSBub3QsIG9sZCBtYW4gOiBmYWxsIHRvIHRoeSBwcmF5ZXJzIDogDQpIb3cgaWxsIHdoaXRlIGhhaXJzIGJlY29tZSBhIGZvb2x7WyYqJl19IGFuZCBqZXN0ZXIgIVwiIA0KDQpIZW5yeSBoYXMgYmVlbiBzdGVybiB0byBoaXMgZm9ybWVyIHNlbGYsIGFuZCB0dXJuZWQgaGltIA17WyYqJl19CmF3YXkgZm9yZXZlcjsgdGhlcmVmb3JlIGhlIGNhbiBiZSBzdGVybiB0byBGYWxzdGFmZi4gDQpUaGVyZSBpcyBubyBmYWx0ZXJpbntbJiomXX1nLiBCdXQgYXQgYW4gZW5mb3JjZWQgZGlzdGFuY2Ugb2YgDQp0ZW4gbWlsZXMgZnJvbSBoaXMgcGVyc29uIChmb3IgdGhlIGZhc2Npe1smKiZdfW5hdGlvbiBvZiBGYWxzdGFmZiANCmNhbiBoYXJkbHkgd2VhdmUgYSBicmlkZ2UgYWNyb3NzIHRoYXQgaW50ZXJ2YWwpIEZhbHN0YWZ7WyYqJl19ZiANCnNoYWxsIGJlIHN1ZmZpY2llbnRseSBwcm92aWRlZCBmb3IgOiANCg0KXCIgRm9yIGNvbXBldGVuY2Ugb2YgbGlmZSBJIHdpbGx7WyYqJl19IGFsbG93IHlvdSANClRoYXQgbGFjayBvZiBtZWFucyBlbmZvcmNlIHlvdSBub3QgdG8gZXZpbCA6IA0KQW5kIGFzIHdlIGhlYXIgeXtbJiomXX1vdSBkbyByZWZvcm0geW91cnNlbHZlcywgDQpXZSB3aWxsLCBhY2NvcmRpbmcgdG8geW91ciBzdHJlbmd0aHMgYW5kIHF1YWxpdGlle1smKiZdfXMsIA0KR2l2ZSB5b3UgYWR2YW5jZW1lbnQuXCIgKiANCg0KU2hvcnRseSBiZWZvcmUgdGhlIEVuZ2xpc2ggYXJteSBzZXRzIHNhaWwge1smKiZdfWZvciBGcmFuY2UsIA0KdGhlIHRyZWFzb24gb2YgQ2FtYnJpZGdlLCBTY3Jvb3AsIGFuZCBHcmV5IGlzIGRpc2Nsb3NlZCANCnRvIHR7WyYqJl19aGUgS2luZy4gSGUgZG9lcyBub3QgYmV0cmF5IGhpcyBhY3F1YWludGFuY2Ugd2l0aCANCnRoZWlyIGRlc2lnbnMuIFN1cnJvdW5kZXtbJiomXX1kIGJ5IHRyYWl0b3JzLCBoZSBib2xkbHkgZW50ZXJzIA0KaGlzIGNvdW5jaWwtY2hhbWJlciBhdCBTb3V0aGFtcHRvbiAodGhlIHdpe1smKiZdfW5kIGlzIHNpdHRpbmcgDQpmYWlyLCBhbmQgYnV0IG9uZSBkZWVkIHJlbWFpbnMgdG8gZG8gYmVmb3JlIHRoZXkgZ28gDQphYnJvYWR7WyYqJl19KS4gT24gdGhlIHByZWNlZGluZyBkYXkgYSBtYW4gd2FzIGFycmVzdGVkIHdobyANCmhhZCByYWlsZWQgYWdhaW5zdCB0aGUgcGVyc3tbJiomXX1vbiBvZiB0aGUgS2luZy4gSGVucnkgZ2l2ZXMgDQpvcmRlcnMgdGhhdCBoZSBiZSBzZXQgYXQgbGliZXJ0eSA6IA0KDQoqIEl0IGlze1smKiZdfSBub3Rld29ydGh5IHRoYXQgYWx0aG91Z2ggd2UgbWVldCBTaXIgSm9obiBzbyBvZnRlbiBpbiAyIEhlbnJ5IA0KSVYuLCB3ZSBmaW57WyYqJl19ZCB0aGUgUHJpbmNlIG9ubHkgb24gYSBzaW5nbGUgb2NjYXNpb24gaW4gaGlzIGNvbXBhbnk7IGFuZCBpdCANCndvdWxkIGJlIGJleXtbJiomXX1vbmQgaHVtYW4gbmF0dXJlIHRvIGRlbnkgaGltc2VsZiB0aGUgZGVsaWdodCBhbmQgZWRpZmljYXRpb24gDQpvZiBzdWNoIGEgc3Ble1smKiZdfWN0YWNsZSBhcyB0aGUgZmF0IGtuaWdodCBjdWRkbGluZyBhbmQga2lzc2luZyBEb2xsIFRlYXJzaGVldCA/LiANCkhlbnJ5IHJybXN7WyYqJl19dCBnby4gDQoxMyANCg0KMSA5NCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQgDQoNCiogXCIgV2UgY29uc2lkZXIgDQoNCkl7WyYqJl19dCB3YXMgZXhjZXNzIG9mIHdpbmUgdGhhdCBzZXQgaGltIG9uOyANCkFuZCBvbiBoaXMgbW9yZSBhZHZpY2Ugd2UgcGFyZG9uIGhpbXtbJiomXX0uXCIgDQoNCkJ1dCBTY3Jvb3AgYW5kIEdyZXkgYW5kIENhbWJyaWRnZSBpbnRlcnBvc2UuIEl0IA0Kd291bGQgYmUgdHJ1ZSBtZXJjeXtbJiomXX0sIHRoZXkgaW5zaXN0LCB0byBwdW5pc2ggc3VjaCBhbiBvZi0gDQpmZW5kZXIuIEFuZCB0aGVuLCB3aGVuIHRoZXkgaGF2ZSB1bmF3e1smKiZdfWFyZXMgYnJvdWdodCANCnRoZW1zZWx2ZXMgd2l0aGluIHRoZSByYW5nZSBvZiBqdXN0aWNlLCBIZW5yeSB1bmZvbGRzIA0KdGhlaXJ7WyYqJl19IGd1aWx0LiBUaGUgd3JhdGggb2YgSGVucnkgaGFzIGluIGl0IHNvbWUgb2YgdGhhdCANCmF3ZiB1bG5lc3MgYW5kIHRlcnJvciBzdXtbJiomXX1nZ2VzdGVkIGJ5IHRoZSBBcG9jYWx5cHRpYyByZWZlci0gDQplbmNlIHRvIFwnXnRoZSB3cmF0aCBvZiB0aGUgTGFtYi5cIiBJdCBpcyB7WyYqJl19dGhlIG1vcmUgdGVycmlibGUgDQpiZWNhdXNlIGl0IHRyYW5zY2VuZHMgYWxsIGVnb2lzdGljIGZlZWxpbmcuIFdoYXQgZmlsbHMgdHtbJiomXX1oZSANCktpbmcgd2l0aCBpbmRpZ25hdGlvbiBpcyBub3Qgc28gbXVjaCB0aGF0IGhpcyBsaWZlIHNob3VsZCANCmhhdmUgYmVlbiBje1smKiZdfW9uc3BpcmVkIGFnYWluc3QgYnkgbWVuIG9uIHdob20gaGlzIGJvdW4tIA0KdHkgaGFzIGJlZW4gYmVzdG93ZWQgd2l0aG91dCBtZWF7WyYqJl19c3VyZSwgYXMgdGhhdCB0aGV5IHNob3VsZCANCmhhdmUgcmV2b2x0ZWQgYWdhaW5zdCB0aGUgbG95YWx0eSBvZiBtYW4sIHdlYWtlbntbJiomXX1lZCB0aGUgDQpib25kcyBvZiBmZWxsb3dzaGlwLCBhbmQgbG93ZXJlZCB0aGUgaGlnaCB0cmFkaXRpb24gb2YgDQpodW1hbml0eSA6e1smKiZdfSANCg0KXCIgMCwgaG93IGhhc3QgdGhvdSB3aXRoIGplYWxvdXN5IGluZmVjdGVkIA0KVGhlIHN3ZWV0bmVzcyBvZiBhZmZpYW5jZSAhe1smKiZdfSBTaG93IG1lbiBkdXRpZnVsPyANCldoeSwgc28gZGlkc3QgdGhvdSA6IHNlZW0gdGhleSBncmF2ZSBhbmQgbGVhcm5lZCA/IA0KV2h7WyYqJl19eSwgc28gZGlkc3QgdGhvdSA6IGNvbWUgdGhleSBvZiBub2JsZSBmYW1pbHkgPyANCldoeSwgc28gZGlkc3QgdGhvdSA6IHNlZW0gdHtbJiomXX1oZXkgcmVsaWdpb3VzID8gDQpXaHksIHNvIGRpZHN0IHRob3UgOiBvciBhcmUgdGhleSBzcGFyZSBpbiBkaWV0LCANCkZyZWUgZnJve1smKiZdfW0gZ3Jvc3MgcGFzc2lvbiwgb3Igb2YgbWlydGggb3IgYW5nZXIsIA0KQ29uc3RhbnQgaW4gc3Bpcml0LCBub3Qgc3dlcnZpbmcgd2l7WyYqJl19dGggdGhlIGJsb29kLCANCkdhcm5pc2hcJ2QgYW5kIGRlY2tNIGluIG1vZGVzdCBjb21wbGVtZW50LCANCk5vdCB3b3JraW5nIHdpdGh7WyYqJl19IHRoZSBleWUgd2l0aG91dCB0aGUgZWFyLiANCkFuZCBidXQgaW4gcHVyZ2VkIGp1ZGdtZW50IHRydXN0aW5nIG5laXRoZXI/IA0KU3tbJiomXX11Y2ggYW5kIHNvIGZpbmVseSBib2x0ZWQgZGlkc3QgdGhvdSBzZWVtIDsgDQpBbmQgdGh1cyB0aHkgZmFsbCBoYXRoIGxlZnQgYSBre1smKiZdfWluZCBvZiBibG90IA0KVG8gbWFyayB0aGUgZnVsbC1mcmF1Z2h0IG1hbiBhbmQgYmVzdCBpbmR1ZWQgDQpXaXRoIHNvbWUgc3VzcGl7WyYqJl19Y2lvbi4gSSB3aWxsIHdlZXAgZm9yIHRoZWUgOyANCkZvciB0aGlzIHJldm9sdCBvZiB0aGluZSwgbWV0aGlua3MsIGlzIGxpa2UgDXtbJiomXX0KQW5vdGhlciBmYWxsIG9mIG1hbi5cIiANCg0KTm8gd29uZGVyIHRoYXQgdGhlIHRlcnJpYmxlIG1vcmFsIGluc2lzdGVuY2Ugb2YgdHtbJiomXX1oZXNlIA0Kd29yZHMgY2FuIHN1YmR1ZSBjb25zY2llbmNlcyBtYWRlIG9mIHBlbmV0cmFibGUgc3R1ZmY7IA0Kbm8gd29uZGVyIHRoe1smKiZdfWF0IHN1Y2ggYW4gYXdmdWwgZGlzY292ZXJ5IG9mIGhpZ2ggcmVhbGl0aWVzIA0KcGYgbGlmZSBzaG91bGQgY2FsbCBmb3J0aCB0aGV7WyYqJl19IGxveWFsdHkgdGhhdCBsdXJrZWQgd2l0aGluIGEgDQoNClRoZSBFbmdsaXNoIEhpc3RvcmljYWwgUGxheXMuIDE5NSANCg0KdHJhaXtbJiomXX10b3JcJ3MgaGVhcnQuIEJ1dCwgdGhvdWdoIHRlYXJzIGVzY2FwZSBIZW5yaiwgaGUgY2FuLSANCm5vdCByZWxlbnQgOiANCg0KXCIgVG97WyYqJl19dWNoaW5nIG91ciBwZXJzb24gc2VlayB3ZSBubyByZXZlbmdlIDsgDQpCdXQgd2Ugb3VyIGtpbmdkb21cJ3Mgc2FmZXR5IG11c3Qgc297WyYqJl19IHRlbmRlciwgDQpXaG9zZSBydWluIHlvdSBoYXZlIHNvdWdodCwgdGhhdCB0byBoZXIgbGF3cyANCldlIGRvIGRlbGl2ZXIgeW91LntbJiomXX0gR2V0IHlvdSB0aGVyZWZvcmUgaGVuY2UsIA0KUG9vciBtaXNlcmFibGUgd3JldGNoZXMsIHRvIHlvdXIgZGVhdGgsIA0KVGhlIHRhe1smKiZdfXN0ZSB3aGVyZW9mIEdvZCBvZiBoaXMgbWVyY3kgZ2l2ZSANCllvdSBwYXRpZW5jZSB0byBlbmR1cmUsIGFuZCB0cnVlIHJlcGVudGF7WyYqJl19bmNlIA0KT2YgYWxsIHlvdXIgZGVhciBvZmZlbmNlcyBJXCIuIA0KDQpBbmQsIGhhdmluZyB2aW5kaWNhdGVkIHRoZSBqdXN0aWNlIG97WyYqJl19ZiBHb2QgYW5kIHB1cmdlZCANCmhpcyBjb3VudHJ5IG9mIHRyZWFzb24sIEhlbnJ5IHNldHMgaGlzIGZhY2UgdG8gRnJhbmNlIA0Kd3tbJiomXX1pdGggdGhlIGxpZ2h0IG9mIHNwbGVuZGlkIGFjaGlldmVtZW50IGluIGhpcyBleWVzLiANCg0KT24gdGhlIG5pZ2h0IGJlZm9yZSB0e1smKiZdfWhlIGdyZWF0IGJhdHRsZSwgSGVucnkgbW92ZXMgDQphbW9uZyBoaXMgc29sZGllcnMsIGFuZCBwYXNzZXMgZGlzZ3Vpc2VkIGZyb217WyYqJl19IHNlbnRpbmVsIHRvIA0Kc2VudGluZWwuIEhlIGlzIG5vdCwgbGlrZSBoaXMgZmF0aGVyLCBleGhhdXN0ZWQgYW5kIG91dC0gDQp3b3tbJiomXX1ybiBieSB0aGUgY2FyZWZ1bCBjb25zdHJ1Y3Rpb24gb2YgYSBsaWZlLiBJZiBhbiBob3VyIA0Kb2YgZGVwcmVzc2lvbiBjb21lcyB1e1smKiZdfXBvbiBoaW0sIGhlIHlldCBpcyBzdHJvbmcsIGJlY2F1c2UgDQpoZSBjYW4gbG9vayB0aHJvdWdoIGhpcyBkZXByZXNzaW9uIHRvIGF7WyYqJl19IHN0cmVuZ3RoIGFuZCB2aXItIA0KdHVlIG91dHNpZGUgb2YgYW5kIGJleW9uZCBoaW1zZWxmLiBKb3kgbWF5IGViYiB3aXRoIA0KaHtbJiomXX1pbSwgb3IgcmlzZSwgYXMgaXQgd2lsbCA7IHRoZSBjdXJyZW50IG9mIGhpcyBpbm1vc3QgYmVpbmcgaXMgDQpmZWQgYnkgYSBzb3Vye1smKiZdfWNlIHRoYXQgc3ByaW5ncyBmcm9tIHRoZSBoYXJkIHJvY2sgb2YgbGlmZSwgDQphbmQgaXMgbm8gdGlkYWwgZmxvdy4gSGUgYWNjZXB7WyYqJl19dHMgaGlzIHdlYWtuZXNzIGFuZCBoaXMgDQp3ZWFyaW5lc3MgYXMgcGFydCBvZiB0aGUgc3VycmVuZGVyIG9mIGVhc2UgYW5kIHN0cntbJiomXX1lbmd0aCANCmFuZCBzZWxmIHdoaWNoIGhlIG1ha2VzIG9uIGJlaGFsZiBvZiBFbmdsYW5kLiBXaXRoIGEgDQp0b3VjaCBvZiBoaXMge1smKiZdfW9sZCBsb3ZlIG9mIGZyb2xpYywgaGUgZW50ZXJzIG9uIHRoZSBxdWFycmVsIA0Kd2l0aCBXaWxsaWFtcywgYW5kIGV4Y2hhbmdlcyB7WyYqJl19Z2FnZXMgd2l0aCB0aGUgc29sZGllci4gDQpXaGVuIG1vcm5pbmcgZGF3bnMsIGhlIGxvb2tzIGZyZXNobHksIGFuZCBcIm92ZXJiZWF7WyYqJl19cnMgDQphdHRhaW50XCIgd2l0aCBjaGVlcmZ1bCBzZW1ibGFuY2UgYW5kIHN3ZWV0IG1hamVzdHk6IA0KDQpcIiBBIGxhcmdlc3MgdW5pe1smKiZdfXZlcnNhbCBsaWtlIHRoZSBzdW4gDQpIaXMgbGliZXJhbCBleWUgZG90aCBnaXZlIHRvIGV2ZXJ5IG9uZSwgDQpUaGF3aW5nIGNvbGR7WyYqJl19IGZlYXIuXCIgDQoNCldpdGggYSBwcmF5ZXIgdG8gR29kIGhlIHNldHMgdG8gcmlnaHRzIHRoZSBoZWF2ZW53YXJkIA0Kc2lkZSBvZiB7WyYqJl19aGlzIG5hdHVyZSwgYW5kIHRoZXJlIGxlYXZlcyBpdC4gSW4gdGhlIGJhdHRsZSANCkhlbnJ5IGRvZXMgbm90LCBpbiB0aGUgbWFubntbJiomXX1lciBvZiBoaXMgcG9saXRpYyBmYXRoZXIsIHNlbmQgDQppbnRvIHRoZSBmaWVsZCBhIG51bWJlciBvZiBjb3VudGVyZmVpdCBraW5ne1smKiZdfXMgdG8gYXR0cmFjdCANCg0KMSA5NiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQphd2F5IGZyb20gaGltc2VsZiB7WyYqJl19dGhlIGNlbnRyZSBvZiB0aGUgd2FyLiBUaGVyZSBpcyBubyANCnN0cmF0YWdlbSBhdCBBZ2luY291cnQuIEl0IGlzIFwicGxhaW4gc2h7WyYqJl19b2NrIGFuZCBldmVuIA0KcGxheSBvZiBiYXR0bGUuXCIgSWYgSGVucnkgZm9yIGEgbW9tZW50IGNlYXNlcyB0byBiZSB0aGUgDQpza2l7WyYqJl19bGZ1bCB3aWVsZGVyIG9mIHJlc29sdXRlIHN0cmVuZ3RoLCBpdCBpcyBvbmx5IHdoZW4gaGUgDQpyaXNlcyBpbnRvIHRoZSBnZW5pdXtbJiomXX1zIG9mIHRoZSByYWdlIG9mIGJhdHRsZSA6IA0KDQoqXCcgSSB3YXMgbm90IGFuZ3J5IHNpbmNlIEkgY2FtZSB0byBGcmFuY2UgDQpVbntbJiomXX10aWwgdGhpcyBpbnN0YW50LiBUYWtlIGEgdHJ1bXBldCwgaGVyYWxkIDsgDQpLaWRlIHRob3UgdW50byB0aGUgaG9yc2VtZW4gb24ge1smKiZdfXlvbiBoaWxsIDogDQpJZiB0aGV5IHdpbGwgZmlnaHQgd2l0aCB1cywgYmlkIHRoZW0gY29tZSBkb3duLCANCk9yIHZvaWQgdGhlIGZ7WyYqJl19aWVsZCA7IHRoZXkgZG8gb2ZmZW5kIG91ciBzaWdodCA6IA0KSWYgdGhleSBkbyBuZWl0aGVyLCB3ZSB3aWxsIGNvbWUgdG8gdGhlbXtbJiomXX0uIA0KQW5kIG1ha2UgdGhlbSBza2lyciBhd2F5IGFzIHN3aWZ0IGFzIHN0b25lcyANCkVuZm9yY2VkIGZyb20gdGhlIG9sZCBBc3N5e1smKiZdfXJpYW4gc2xpbmdzIDsgDQpCZXNpZGVzLCB3ZVwnbGwgY3V0IHRoZSB0aHJvYXRzIG9mIHRob3NlIHdlIGhhdmUsIA0KQW5kIG5vdCBhe1smKiZdfSBtYW4gb2YgdGhlbSB0aGF0IHdlIHNoYWxsIHRha2UgDQpTaGFsbCB0YXN0ZSBvdXIgbWVyY3kuXCIgDQoNCkl0IGlzIGluIGhhcm1ve1smKiZdfW55IHdpdGggdGhlIHNwaXJpdCBvZiB0aGUgcGxheSBhbmQgd2l0aCANCnRoZSBjaGFyYWN0ZXIgb2YgSGVucnkgdGhhdCBpdCBzaG97WyYqJl19dWxkIGNsb3NlIHdpdGggbm8gb3MtIA0KdGVudGF0aW91cyBoZXJvaWNzLCBidXQgd2l0aCB0aGUgaGFsZi1qb2N1bGFyLCB3aG9sZXtbJiomXX0tZWFyLSANCm5lc3Qgd29vaW5nIG9mIHRoZSBGcmVuY2ggcHJpbmNlc3MgYnkgdGhlIEVuZ2xpc2gga2luZy4gDQpcIldpdGggYSB0b3tbJiomXX11Y2ggb2YgaXJvbnksIHRvIHdoaWNoIG9uZSBvZiB0aGUgY3JpdGljcyBvZiB0aGVeIA0KcGxheSBoYXMgY2FsbGVkIGF0dGVudGlve1smKiZdfW4sXCJeIHdlIGFyZSBmdXJuaXNoZWQgd2l0aCBhIGhpbnQgDQphcyB0byB0aGUgZXZlbnRzIHdoaWNoIG11c3QgZm9sbG93IEhlbnJ5e1smKiZdfVwncyBnbG9yaW91cyANCnJlaWduLiBcIiBTaGFsbCBub3QgdGhvdSBhbmQgSSxcIiBleGNsYWltcyB0aGUgS2luZywgaW4gaGlzIA0KdW57WyYqJl19Y29udmVudGlvbmFsIG1hbm5lciBvZiB3aW5uaW5nIGEgYnJpZGUg4oCUIFwiIFNoYWxsIG5vdCANCnRob3UgYW5kIEksIGJldHdlZW57WyYqJl19IFNhaW50IERlbmlzIGFuZCBTYWludCBHZW9yZ2UsIGNvbS0gDQpwb3VuZCBhIGJveSwgaGFsZiBGcmVuY2gsIGhhbGYgRW5nbGlzaHtbJiomXX0sIHRoYXQgc2hhbGwgZ28gdG8gDQpDb25zdGFudGlub3BsZSBhbmQgdGFrZSB0aGUgVHVyayBieSB0aGUgYmVhcmQgVCBUaGlzIA0Ke1smKiZdfWJveSwgZGVzdGluZWQgdG8gZ28gdG8gQ29uc3RhbnRpbm9wbGUgYW5kIGNvbmZyb250IHRoZSANClR1cmssIHdhcyB0aGUgaGVscGx7WyYqJl19ZXNzIEhlbnJ5IFlJLiANCg0KVGhlIGhpc3RvcmljYWwgcGxheXMgYXJlIGRvY3VtZW50cyB3cml0dGVuIGFsbCBvdmVyIA0Kd2l0aHtbJiomXX0gZmFjdHMgYWJvdXQgU2hha3NwZXJlLiBTb21lIG9mIHRoZXNlIGZhY3RzIGFyZSANCm5vdyBkaXNjZXJuaWJsZS4gV2UgaGF2ZSBse1smKiZdfWVhcm5lZCBzb21ldGhpbmcgYWJvdXQgDQpTaGFrc3BlcmVcJ3MgY29udmljdGlvbnMgYXMgdG8gaG93IHRoZSBub2JsZXN0IHByYWN0e1smKiZdfWljYWwgDQoNCiogSC4gTi4gSHVkc29uLiANCg0KVGhlIEVuZ2xpc2ggSGlzdG9yaWNhbCBQbGF5cy4gMTk3IA0KDQpzdWNjZXNzIGl7WyYqJl19biBsaWZlIG1heSBiZSBhY2hpZXZlZC4gV2Uga25vdyB3aGF0IFNoYWstIA0Kc3BlcmUgd291bGQgaGF2ZSB0cmllZCB0byBiZWNvbXtbJiomXX1lIGhpbXNlbGYgaWYgdGhlcmUgaGFkIA0Kbm90IGJlZW4gYSBzaWRlIG9mIGhpcyBjaGFyYWN0ZXIgd2hpY2ggYWNrbm93bGVkZ2Vke1smKiZdfSANCmNsb3NlciBhZmxTbml0eSB3aXRoIEhhbWxldCB0aGFuIHdpdGggSGVucnkuIFdlIGNhbiANCmluIHNvbWUgbWVhc3VyZSBpbmZ7WyYqJl19ZXIgaG93IFNoYWtzcGVyZSB3b3VsZCBlbmRlYXZvciANCnRvIGNvbnRyb2wsIGFuZCBpbiB3aGF0IGRpcmVjdGlvbnMgaGUgd291bHtbJiomXX1kIGVuZGVhdm9yIHRvIA0KcmVpbmZvcmNlLCBoaXMgb3duIG5hdHVyZSB3aGlsZSBpbiBwdXJzdWl0IG9mIGEgcHJhY3RpY2FsIA0Ke1smKiZdfW1hc3Rlcnkgb3ZlciBldmVudHMgYW5kIHRoaW5ncy4gDQoNCjEgOTggU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg17WyYqJl19CkNIQVBURVIgVi4gDQoNCk9USEVMTE8gOyBNQUNCRVRIIDsgTEVBUi4gDQoNCklmIFNoYWtzcGVyZSBoYWQgZGllZCBhdCB0aGUgYXtbJiomXX1nZSBvZiBmb3J0eSwgaXQgbWlnaHQgDQpoYXZlIGJlZW4gc2FpZCwgXCIgVGhlIHdvcmxkIGhhcyBsb3N0IG11Y2gsIGJ1dCB0aGUgd3tbJiomXX1vcmxkXCdzIA0KY2hpZWYgcG9ldCBjb3VsZCBoYXJkbHkgaGF2ZSBjcmVhdGVkIGFueXRoaW5nIG1vcmUgd29uLSANCmRlcmZ1bCB0aHtbJiomXX1hbiBIYW5pbGV0UCBCdXQgYWZ0ZXIgSGFtbGV0IGNhbWUgS2luZyANCkxlYXIuIEhhbWxldCB3YXMsIGluIGZhY3QsIG9ubHkgdGhle1smKiZdfSBwb2ludCBvZiBkZXBhcnR1cmUgDQppbiBTaGFrc3BlcmVcJ3MgaW1tZW5zZSBhbmQgZmluYWwgc3dlZXAgb2YgbWluZCDigJQgdGhhe1smKiZdfXQgDQppbiB3aGljaCBoZSBlbmRlYXZvcmVkIHRvIGluY2x1ZGUgYW5kIGNvbXByZWhlbmQgbGlmZSANCmZvciB0aGUgZmlyc3QgdGl7WyYqJl19bWUgYWRlcXVhdGVseS4gXlRocm91Z2ggSGFtbGV0IOKAlCBwZXItIA0KaGFwcywgYWxzbywgdGhyb3VnaCBldmVudHMgaW4gdGhlIHtbJiomXX1wb2V0XCdzIHBlcnNvbmFsIGhpc3RvcnksIA0Kd2hpY2ggdGVzdGVkIGhpcyB3aWxsIGFzIEhhbWxldFwncyB3aWxsIHdhcyB0ZXN0ZWR7WyYqJl19IOKAlCBTaGFrLSANCnNwZXJlIGhhZCBiZWVuIHJlYWNoZWQgYW5kIHRvdWNoZWQgYnkgdGhlIHNoYWRvdyBvZiANCnNvbWUgb2YgdHtbJiomXX1oZSBkZWVwIG15c3RlcmllcyBvZiBodW1hbiBleGlzdGVuY2UuIFNvbWUtIA0KaG93LCBhIHJlbGF0aW9uIGJldHdlZW4gaGlzIHNve1smKiZdfXVsIGFuZCB0aGUgZGFyayBhbmQgdGVyLSANCnJpYmxlIGZvcmNlcyBvZiB0aGUgd29ybGQgd2FzIGVzdGFibGlzaGVkLCBhbmQgdG97WyYqJl19IGVzY2FwZSANCmZyb20gYSB0aG9yb3VnaCBpbnZlc3RpZ2F0aW9uIGFuZCBzb3VuZGluZyBvZiB0aGUgZGVwdGhzIA0Kb2YgbGlmZXtbJiomXX0gd2FzIG5vIGxvbmdlciBwb3NzaWJsZS4gU2hha3NwZXJlIGhhZCBieSB0aGlzIA0KdGltZSBtYXN0ZXJlZCB0aGUgd29ybGQgZnJve1smKiZdfW0gYSBwcmFjdGljYWwgcG9pbnQgb2Ygdmlldy4gDQpIZSB3YXMgYSBwcm9zcGVyb3VzIGFuZCB3ZWFsdGh5IG1hbi4gSGUgaGFkIGN7WyYqJl19b20tIA0KcGxldGVkIGhpcyBFbmdsaXNoIGhpc3RvcmljYWwgcGxheXMsIHdoaWNoIGFyZSBjb25jZXJuZWQgDQp3aXRoIHRoaXMgcHtbJiomXX1yYWN0aWNhbCBtYXN0ZXJ5IG9mIHRoZSB3b3JsZC4gQnV0IGFsbCB0aGUgDQptb3JlIGJlY2F1c2UgaGUgaGFkIHJlc29sdmVkIGhpe1smKiZdfXMgbWF0ZXJpYWwgZGlmZmljdWx0aWVzIA0Kd2FzIGhpcyBtaW5kIG9wZW4gdG8gdGhlIHByb2ZvdW5kZXIgc3Bpcml0dWFsIHByb2J7WyYqJl19bGVtcyANCm9mIGxpZmUuIEhhdmluZyBjb21wbGV0ZWQgSGVucnkgRiEsIGZvciBhIHNob3J0IHBlcmlvZCANCmhlIHlpZWxkZWQgaHtbJiomXX1pcyBpbWFnaW5hdGlvbiBhbmQgaGlzIGhlYXJ0IHRvIHRoZSBicmlnaHRlc3QgDQphbmQgbW9zdCBleHViZXJhbnQgZW5qb3ltZW50e1smKiZdfS4gQXJvdW5kIHRoZSB5ZWFyIDE2MDAgDQphcmUgZ3JvdXBlZCBzb21lIG9mIHRoZSBtb3N0IG1pcnRoZnVsIGNvbWVkaWVzIHRoYXR7WyYqJl19IA0KU2hha3NwZXJlIGV2ZXIgd3JvdGUuIFRoZW4sIGEgbGl0dGxlIGxhdGVyLCBhcyBzb29uIGFzIA0KDQpPdGhlbGxvOyBNYWNiZXtbJiomXX10aDsgTGVhci4gMTk5IA0KDQpIYW1sZXQgaXMgY29tcGxldGVkLCBhbGwgY2hhbmdlcy4gRnJvbSAxNjA0IHRvIDE2MTAgDQphIHNoe1smKiZdfW93IG9mIHRyYWdpYyBmaWd1cmVzLCBsaWtlIHRoZSBraW5ncyB3aG8gcGFzc2VkIGJlZm9yZSANCk1hY2JldGgsIGZpbGxlZCB0aGV7WyYqJl19IHZpc2lvbiBvZiBTaGFrc3BlcmUsIHVudGlsIGF0IGxhc3QgdGhlIA0KZGVzcGVyYXRlIGltYWdlIG9mIFRpbW9uIHJvc2UgYmVmb3tbJiomXX1yZSBoaW0gOyB3aGVuLCBhcyANCnRob3VnaCB1bmFibGUgdG8gZW5kdXJlIG9yIHRvIGNvbmNlaXZlIGEgbW9yZSBsYW1lbnQtIA0Ke1smKiZdfWFibGUgcnVpbiBvZiBtYW4sIGhlIHR1cm5lZCBmb3IgcmVsaWVmIHRvIHRoZSBwYXN0b3JhbCANCmxvdmVzIG9mIFByaW5jZSBGbG97WyYqJl19cml6ZWwgYW5kIFBlcmRpdGEgOyBhbmQsIGFzIHNvb24gYXMgdGhlIA0KdG9uZSBvZiBoaXMgbWluZCB3YXMgcmVzdG9yZWQsIGdhdntbJiomXX1lIGV4cHJlc3Npb24gdG8gaXRzIA0KdWx0aW1hdGUgbW9vZCBvZiBncmF2ZSBzZXJlbml0eSBpbiBUaGUgVGVtanBlc3ReIGFuZCANe1smKiZdfQpzbyBlbmRlZC4gDQoNCkR1cmluZyB0aGVzZSB5ZWFycyB0aGUgaW1hZ2luYXRpdmUgZmVydm9yIG9mIFNoYWstIA0Kc3BlcmUgd2F7WyYqJl19cyBhdCBpdHMgaGlnaGVzdCwgYW5kIHN1c3RhaW5lZCBpdHNlbGYgd2l0aG91dCANCmFiYXRlbWVudC4gVGhlcmUgd2FzIG5vIGZldntbJiomXX1lcmlzaCBleGNpdGVtZW50IGluIGhpcyANCmVuZXJneSwgYW5kIHRoZXJlIHdhcyBubyBwYXVzZS4gSW4gc29tZSBvZiBoaXMgZWFye1smKiZdfWxpZXIgDQp5ZWFycyBvZiBhdXRob3JzaGlwIChpZiB0aGUgZ2VuZXJhbGx5IHJlY2VpdmVkIGNocm9ub2xvZ3kgDQpiZSBhY2NlcHR7WyYqJl19ZWQpLCB0d28gb3IgZXZlbiB0aHJlZSBwbGF5cyB3ZXJlIHByb2R1Y2VkIA0Kd2l0aGluIGEgdHdlbHZlbW9udGgsIG9mIHdoaWNoIHtbJiomXX10aGlzIG9yIHRoYXQgd2FzIGFmdGVyLSANCndhcmRzIGFja25vd2xlZGdlZCBieSBpdHMgYXV0aG9yIHRvIGJlIGEgaGFzdHkgcGlle1smKiZdfWNlIG9mIA0Kd29yaywgeWV0IG9mIHN1ZmZpY2llbnQgc3Vic3RhbmNlIGFuZCBtZXJpdCB0byBkZXNlcnZlIHJlLSANCmhhbmRsaW57WyYqJl19Zy4gRHVyaW5nIGEgY2VydGFpbiBicmllZiBzZWFzb24sIGl0IG1heSBoYXZlIA0KYmVlbiB0aGF0IFNoYWtzcGVyZSBhbHRvZ2V0aHtbJiomXX1lciBjZWFzZWQgdG8gd3JpdGUgZm9yIHRoZSANCnN0YWdlLiBCdXQgbm93LCBpbiB1bmJyb2tlbiBzZXJpZXMsIHllYXIgYnkgeWVhe1smKiZdfXIsIG9uZSANCmdyZWF0IHRyYWdlZHkgc3VjY2VlZHMgYW5vdGhlci4gSGF2aW5nIGNyZWF0ZWQgT3RoZWxsb14gDQpzdXJlbHkgdGh7WyYqJl19ZSBleWUgb2YgYSBwb2V0XCdzIG1pbmQgd291bGQgZGVtYW5kIHF1aWV0dWRlLCANCnBhc3NpdmUgYWNjZXB0YW5jZSBvZiBzb21lIGN7WyYqJl19YWxtIGJlYXV0eSwgYSBwZXJpb2Qgb2YgcmVzLSANCnRvcmF0aW9uLiBCdXQgT3RoZWxsbyBpcyBwdXJzdWVkIGJ5IExlYXJeIExlYXtbJiomXX1yIGJ5IE1hYy0gDQpoZXRoXiBNYWNiZXRoIGJ5IEFudG9ueSBhbmQgQ2xlb2pwYXRyYV4gQW50b255IGFuZCANCkNsZW9wYXRyYSBie1smKiZdfXkgQ29yaW9sYW51cy4gSXQgaXMgZXZpZGVudCB0aGF0IHRoZSBhcnRpc3QgDQp3YXMgbm93IGNvbXBsZXRlbHkgcm91c2VkLiBUaGV7WyYqJl19IGltcGV0dXMgb2YgaGlzIGFkLSANCnZhbmNlIGNvbnRpbnVlZCwgYW5kIGNhcnJpZWQgaGltIHdpdGhvdXQgZWZmb3J0IG9uIGZyb3tbJiomXX1tIA0Kc3ViamVjdCB0byBzdWJqZWN0LiBIZSBjb3VsZCBub3QgcHV0IGFzaWRlIGhpcyBzdHVwZW4tIA0KZG91cyB0YXNrOyBuZWl0e1smKiZdfWhlciB3b3VsZCBoZSBhY2NvbXBsaXNoIGFueSBwYXJ0IG9mIGl0IA0KaW1wZXJmZWN0bHkuIEluIHRoZXNlIHllYXJzIHRoZSB1dG17WyYqJl19b3N0IGltYWdpbmF0aXZlIHN1cy0gDQpjZXB0aWJpbGl0eSBpcyB1bml0ZWQgd2l0aCB0aGUgdXRtb3N0IHNlbGYtY29udHJvbC4gRXtbJiomXX12ZXJ5IA0KcG9ydGlvbiBvZiBoaXMgYmVpbmcgaXMgYXQgbGVuZ3RoIGVuZ2FnZWQgaW4gdGhlIG1hZ25pZmktIA0KDQoyKFgmZ3Q7e1smKiZdfSBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpjZW50IGVmZm9ydC4gQXQgZmlyc3QsIGluIHRoZSBjYXJlZXIgb2Z7WyYqJl19IG1vc3QgYXJ0aXN0cywgYSBwb3IgDQp0aW9uIG9mIHRoZWlyIG5hdHVyZSBob2xkcyBhbG9vZiBmcm9tIGFydCwgYW5kIGlzIHJlYXtbJiomXX1keSBmb3IgDQphcHBsaWNhdGlvbiB0byBvdGhlciBzZXJ2aWNlLiBUaGV5IGhhdmUgYSBwb2V0aWNhbCBzaWRlLCANCmFuZCBhIHNpe1smKiZdfWRlIHdoaWNoIGlzIHByb3NhaWMuIEdyYWR1YWxseSwgYXMgdGhleSBhZHZhbmNlIA0KdG93YXJkcyBtYXR1cml0eSwgZmFjdWx0eSB7WyYqJl19YWZ0ZXIgZmFjdWx0eSBpcyBicm91Z2h0IGludG8gDQpmcnVpdGZ1bCByZWxhdGlvbiB3aXRoIHRoZSBhcnQtaW5zdGluY3QsIHVudHtbJiomXX1pbCBhdCBsZW5ndGggdGhlIA0KZW50aXJlIG5hdHVyZSBvZiB0aGUgYXJ0aXN0IGlzIGZ1c2VkIGluIG9uZSwgYW5kIGhpcyB3b3Jre1smKiZdfSANCmJlY29tZXMgdGhlIGV4cHJlc3Npb24gb2YgYSBjb21wbGV0ZSBwZXJzb25hbGl0eS4gVGhpcyANCnBlcmlvZCBoYWQgbm93IGF7WyYqJl19cnJpdmVkIGZvciBTaGFrc3BlcmUuIEluIHRoZSBncmVhdCB0cmFnLSANCmVkaWVzLCBwYXNzaW9uIGFuZCB0aG91Z2h0LCBodW1vcntbJiomXX0gYW5kIHBhdGhvcywgc2V2ZXJpdHkgDQphbmQgdGVuZGVybmVzcywga25vd2xlZGdlIGFuZCBndWVzcywgYXJlIGFsbCBhY2NlcHRle1smKiZdfWQgYXMgDQp3b3JrZXJzIHRvZ2V0aGVyIHdpdGggdGhlIGltYWdpbmF0aW9uLiANCi8gNHsgXnJhXmVkIHksIGFzIGNvbmNlaXZlZCB7WyYqJl19YnkgU2hha3NwZXJlLCBpcyBjb25jZXJuZWQgd2l0aCANCi8gdGhlIHJ1aW4gb3IgdGhlIHJlc3RvcmF0aW9uIG9mIHRoZSBzb3VsLHtbJiomXX0gYW5kIG9mIHRoZSBsaWZlIG9mIA0KXFwgbWVuLiBJbiBvdGhlciB3b3JkcywgaXRzIHN1YmplY3QgaXMgdGhlIHN0cnVnZ2xlIG9mIHtbJiomXX1nb29kIA0KV2QgZXZpbCBpbiB0aGUgd29ybGQuIFRoaXMgc3RyaWtlcyBkb3duIHVwb24gdGhlIHJvb3RzIA0KL29mIHRoaW5ncy4ge1smKiZdfVRoZSBjb21lZGllcyBvZiBTaGFrc3BlcmUgaGFkLCBpbiBjb21wYXItIA0KU2lzb24sIHBsYXllZCB1cG9uIHRoZSBzdXJmYWNlIG97WyYqJl19ZiBsaWZlLiBUaGUgaGlzdG9yaWVzLCANCnRob3VnaCB2ZXJ5IGVhcm5lc3QsIGhhZCBub3QgZGVhbHQgd2l0aCB0aGUgZGVlcGVyIHtbJiomXX1teXMtIA0KLyB0ZXJpZXMgb2YgYmVpbmcuIEhlbnJ5IEZcIi4sIHRoZSBpZGVhbCBmaWd1cmUgb2YgdGhlIGhpc3RvcmktIA0KLyBjYXtbJiomXX1sIHBsYXlzLCBoYXMgYSByZWFsIGFuZCBmaXJtIGdyYXNwIG9mIHRoZSBhY3R1YWwgd29ybGRsZiANCl0gSGUgaGFzIGhpcyByZWxpe1smKiZdfWdpb24sIGFuZCBoZSBoYXMgaGlzIHBhc3Npb24gb2YgbG92ZSA7IGJ1dCANCi8gYm90aCBhcmUgcG9zaXRpdmUsIHByYWN0aWNhbCx7WyYqJl19IGFuZCBsaW1pdGVkLiBObyBtb3JlIGNhbiANCmhpcyByZWxpZ2lvbiB0aGFuIGhpcyBsb3ZlIGV2ZXIgZW1iYXJyYXNzIEhlbnJ5IHtbJiomXX1pbiBoaXMgDQpqb3lvdXMgbWFzdGVyeSBvdmVyIG1lbiBhbmQgdGhpbmdzLiBIaXMgc29sZGllci1saWtlIA0KXFwgcGlldHkgYW5kIHtbJiomXX1sYXJnZSwgaW5jdXJpb3VzIHRydXN0IGluIEdvZCBzdWZmaWNlIHRvIHJlc29sdmUgDQphbGwgcXVlc3Rpb25zIHdpdGggcmVnYXJke1smKiZdfSB0byB0aGF0IGRhcmsgb3V0bHlpbmcgcmVnaW9uIA0Kd2hpY2ggc3Vycm91bmRzIHRoZSBrbm93YWJsZSBhbmQgdGhlIHByYWN0aWN7WyYqJl19YWJsZS4gV2l0aCANCmEgZGV2b3V0IG9wdGltaXNtLCBIZW5yeSBwZXJjZWl2ZXMgdGhlcmUgaXMgXCIgc29tZSBzb3VsIA0Kb2YgZ297WyYqJl19b2RuZXNzIGluIHRoaW5ncyBldmlsLFwiIGFuZCBoZSBwcm9jZWVkcyB0byBjb25maXJtIA0KdGhpcyBwcmluY2lwbGUgYnkgdGhlIHZ7WyYqJl19ZXJ5IHN1YnN0YW50aWFsIGFuZCBidXNpbmVzcy1saWtlIA0KaW5zdGFuY2UgdGhhdCB0aGVpciBiYWQgbmVpZ2hib3JzLCB0aGUgRntbJiomXX1yZW5jaCwgaGFkIG1hZGUgDQpoaXMgc29sZGllcnMgZWFybHkgc3RpcnJlcnMuIEJ1dCBzdWNoIGRldm91dCBvcHRpbWlzbSANCndhe1smKiZdfXMgYWJzb2x1dGVseSB3aXRob3V0IGF2YWlsIGZvciB0aGUgc3Bpcml0dWFsIG5lZWRzIG9mIHRoZSANCm1hbiB3aG8gaGFkIGNvbmN7WyYqJl19ZWl2ZWQgSGFtbGV0LiBcIiBUbyBzYXkgdG8gdGhlZSB0aGF0IA0KDQpPdGhlbGxvOyBNYWNiZXRoOyBMZWFyLiAyMDEgDQoNCkkgc2h7WyYqJl19YWxsIGRpZSxcIiBkZWNsYXJlcyBLaW5nIEhlbnJ5IHRvIEthdGhhcmluZSwgXCIgaXMgdHJ1ZTsgDQpidXQgZm9yIHRoeSBsb3ZlLCBie1smKiZdfXkgdGhlIExvcmQsIG5vLlwiIFlldCBTaGFrc3BlcmUgaGFkIA0KZGlzY292ZXJlZCB0aGF0IHRvIGRpZSBmb3IgbG92ZSBtYXkgYmUge1smKiZdfXRoZSBoaWdoZXN0IG5lZWQgDQpvZiBhIGxpZmUgdW5kZXIgY2VydGFpbiBleHRyZW1lIGNvbmRpdGlvbnMuIEp1bGlldCBoYWQgDQp7WyYqJl19ZGllZCBmb3IgbG92ZSA7IEVvbWVvIGhhZCBkaWVkIGZvciBsb3ZlIDsgYW5kLCBpbiBzbyBkb2luZywgDQp0aGV5IGhhZCBmdWxmaXtbJiomXX1sbGVkIGFuZCBhY2NvbXBsaXNoZWQgdGhlaXIgbGl2ZXMuIFRoZXJlLSANCmZvcmUsIHRoaXMgbG92ZSBvZiBIZW5yeSBpcyB0ZXN0e1smKiZdfWVkIGJ5IFNoYWtzcGVyZSwgYW5kIGRlLSANCmNsYXJlZCB0byBiZSBhIHBhc3Npb24gd2l0aCBsaW1pdGF0aW9uLCBzZXJ2aWNlYWJ7WyYqJl19bGUgZm9yIA0KdXNlZnVsIGVuZHMgb2YgbWFycmlhZ2UsIGFuZCBmb3IgdGhlIHByb2R1Y2luZyBvZiBjaGlsLSANCmRyZW4gOyBidXtbJiomXX10IG5vdCB0aGF0IGRldm90aW9uIG9mIHNvdWwgdG8gc291bCB3aGljaCBkb2VzIA0Kbm90IHJlY29nbml6ZSB0aGUgbGltaXRhdGlve1smKiZdfW5zIG9mIHNwYWNlIG9yIG9mIHRpbWUuIFwiIFRoZXJlIA0KaXMgc29tZSBzb3VsIG9mIGdvb2RuZXNzIGluIHRoaW5ncyBldmlsLFwiIHtbJiomXX1kZWNsYXJlcyBLaW5nIA0KSGVucnkuIEFuZCBhcyBjb21tZW50IHVwb24gc3VjaCBkZXZvdXQgb3B0aW1pc20sIA0KU2hha3NwZXJle1smKiZdfSBwcm9kdWNlcyBHb25lcmlsIGFuZCBFZWdhbiwgbGFnbywgYW5kIHRoZSANCldpdGNoZXMgaW4gTWFjYmV0aCwgSlNUb3csIGluIHR7WyYqJl19aGUgdHJhZ2VkaWVzLCBTaGFrc3BlcmUgDQpoYXMgZmx1bmcgaGltc2VsZiBhYnJvYWQgdXBvbiB0aGUgZGltIHNlYSB3aGljaCBtb3tbJiomXX1hbnMgDQphcm91bmQgb3VyIGxpdHRsZSBzb2xpZCBzcGhlcmUgb2YgdGhlIGtub3duLiBTdWNoIGVhc3kgDQphbmQgcGlvdXMgYW5ze1smKiZdfXdlcnMgdG8gdGhlIHJpZGRsZXMgb2YgdGhlIHdeb3JsZCBhcyBjb25zdGktIA0KdHV0ZWQgdGhlIHdvcmtpbmcgZmFpdGggb2YgYSB7WyYqJl19SGVucnkgVi4gYmVsb25nIHRvIGEgc21hbGxlciANCmFuZCBzYWZlciB3b3JsZCBvZiB0aG91Z2h0LCBmZWVsaW5nLCBhbmQgYWN0aXtbJiomXX1vbiA7IG5vdCB0byB0aGlzLiANClRoZXJlIGFyZSBjZXJ0YWluIHByb2JsZW1zIHdoaWNoIFNoYWtzcGVyZSBhdCBvbmNlIA0KcHJve1smKiZdfW5vdW5jZXMgaW5zb2x1YmxlLiBJIEhlIGRvZXMgbm90LCBsaWtlIE1pbHRvbiwgcHJvcG9zZSANCnRvIGdpdmUgYW55IGFjY291bnR7WyYqJl19IG9mIHRoZSBvcmlnaW4gb2YgZXZpbC4gSGUgZG9lcyBub3QsIA0KbGlrZSBEYW50ZSwgcHVyc3VlIHRoZSBzb3VsIG9mIG1hbiB0aHtbJiomXX1yb3VnaCBjaXJjbGVzIG9mIHVuLSANCmVuZGluZyB0b3J0dXJlLCBvciBzcGhlcmVzIG1hZGUgcmFkaWFudCBieSB0aGUgZXRlcm5he1smKiZdfWwgDQpwcmVzZW5jZSBvZiBHb2QuIFNhdGFuIGluIFNoYWtzcGVyZVwncyBwb2VtcyBkb2VzIG5vdCANCmNvbWUgdm95YWdpbmcgb24ge1smKiZdfWdpZ2FudGljIHZhbnMgYWNyb3NzIENoYW9zIHRvIGZpbmQgdGhlIA0KZWFydGguIE5vIGdyZWF0IGRlbGl2ZXJlciBvZiBtYW5raW57WyYqJl19ZCBkZXNjZW5kcyBmcm9tIHRoZSANCmhlYXZlbnMuIEhlcmUsIHVwb24gdGhlIGVhcnRoLCBldmlsIGlzIOKAlCBzdWNoIHdhcyBTaHtbJiomXX1hay0gDQpzcGVyZVwncyBkZWNsYXJhdGlvbiBpbiB0aGUgbW9zdCBlbXBoYXRpYyBhY2NlbnQuIGxhZ28gDQphY3R1YWxseSBleGlzdHtbJiomXX1zLiB8IFRoZXJlIGlzIGFsc28gaW4gdGhlIGVhcnRoIGEgc2FjcmVkIHBhcy0gDQpzaW9uIG9mIGRlbGl2ZXJhbmNlLCBhIHB1cmUge1smKiZdfXJlZGVlbWluZyBhcmRvci4gQ29yZGVsaWEgDQpleGlzdHMuIFRoaXMgU2hha3NwZXJlIGNhbiB0ZWxsIGZvciBjZXJ0YWluLiBCdXR7WyYqJl19IGhvdyANCmxhZ28gY2FuIGJlLCBhbmQgd2h5IENvcmRlbGlhIGxpZXMgc3RyYW5nbGVkIGFjcm9zcyB0aGUgDQpicmVhc3Qgb2YgTHtbJiomXX1lYXIg4oCUIGFyZSB0aGVzZSBxdWVzdGlvbnMgd2hpY2ggeW91IGdvIG9uIHRvIA0KDQoyMDIgU2hha3NwZXJlIOKAlCBIaXMgTWlue1smKiZdfWQgYW5kIEFydC4gDQoNCmFzayA/IFNvbWV0aGluZyBoYXMgYmVlbiBhbHJlYWR5IHNhaWQgb2YgdGhlIHNldmVyaXR5IA0Kb2YgU2h7WyYqJl19YWtzcGVyZS4gSXQgaXMgYSBwb3J0aW9uIG9mIGhpcyBzZXZlcml0eSB0byBkZWNsaW5lIA0KYWxsIGFuc3dlcnMgdG8gc3VjaCBxdXtbJiomXX1lc3Rpb25zIGFzIHRoZXNlLiBJcyBpZ25vcmFuY2UgDQpwYWluZnVsPyBXZWxsLCB0aGVuLCBpdCBpcyBwYWluZnVsLiBMaXR0bGUge1smKiZdfXNvbHV0aW9ucyBvZiANCnlvdXIgbGFyZ2UgZGlmZmljdWx0aWVzIGNhbiByZWFkaWx5IGJlIG9idGFpbmVkIGZyb20gcHJpZXN0IA17WyYqJl19Cm92IGpwaGlsb3NvcGhlLiBeU2hha3NwZXJlIHByZWZlcnMgdG8gbGV0IHlvdSByZW1haW4gaW4gDQp0aGUgc29sZW1uIHByZXNlbntbJiomXX1jZSBvZiBhIG15c3RlcnkuLyBIZSBkb2VzIG5vdCBpbnZpdGUgDQp5b3UgaW50byBoaXMgbGl0dGxlIGNodXJjaCBvciBoaXMgbGl0e1smKiZdfXRsZSBsaWJyYXJ5IGJyaWxsaWFudGx5IA0KaWxsdW1pbmF0ZWQgYnkgcGhpbG9zb3BoaWNhbCBvciB0aGVvbG9naWNhbCBydXNobGl7WyYqJl19Z2h0cy4gDQpZb3UgcmVtYWluIGluIHRoZSBkYXJrbmVzcy4gQnV0IHlvdSByZW1haW4gaW4gdGhlIA0Kdml0YWwgYWlyLiBBbmQgdHtbJiomXX1oZSBncmVhdCBuaWdodCBpcyBvdmVyaGVhZC4gDQoNCkNyaXRpY3Mgb2YgdGhlIGxhc3QgY2VudHVyeSB3ZXJlIG11Y2ggZXhlcmNpe1smKiZdfXNlZCBpbiBtaW5kIA0KYWJvdXQgU2hha3NwZXJlXCdzIHZpb2xhdGlvbnMgb2YgdGhlIHJ1bGUgb2YgcG9ldGljYWwganVzLSANCnRpe1smKiZdfWNlLiBEci4gSm9obnNvbiwgd2l0aCBoaXMgc3R1cmR5IEJyaXRpc2ggbW9yYWxpdHksIGNvdWxkIA0Kbm90IGVuZHVyZSB0byByZWF7WyYqJl19ZCB0aGUgbGFzdCBzY2VuZXMgb2kgS2luZyBMZWFyIF4gYW5kIGRlLSANCmNsYXJlZCBpbiBmYXZvciBvZiBOYWh1bSBUYXRlXCdzIGl7WyYqJl19bXByb3ZlbWVudCBvbiBTaGFrLSANCnNwZXJlXCdzIHBsYXksIGFjY29yZGluZyB0byB3aGljaCBFZGdhciBtYWtlcyBsb3ZlIHRvIA17WyYqJl19CkNvcmRlbGlhLCBhbmQgc2hlIHJldGlyZXMgaW4gdGhlIGVuZCBcIiB3aXRoIHZpY3RvcnkgYW5kIA0KZmVsaWNpdHkuXCIgVG8gZGlle1smKiZdfSBpcyBzbyBleGNlZWRpbmdseSB1bmNvbWZvcnRhYmxlOyB0byANCmxpdmUgYW5kIGJlIGEgaGFwcHkgd2lmZSBpcyBzbyBlbWluZW57WyYqJl19dGx5IHNhdGlzZmFjdG9yeS4gDQpTaGFrc3BlcmVcJ3MgbW9yYWxpdHkgaXMgc29tZXdoYXQgbW9yZSBzdGVybiB0aGFuIHRoYXQgDQp7WyYqJl19b2YgdGhlIGdyZWF0IG1vcmFsaXN0LiBTaGFrc3BlcmUgaW50cm9kdWNlcyBpbnRvIHRoZSANCndvcmxkIG5vIGxpdHRsZSBldGhpY3tbJiomXX1hbCBjb2RlLiBTdWNoIGEgbGl0dGxlIGV0aGljYWwgY29kZSANCndvdWxkIGZsdXR0ZXIgYXdheSBpbiB0YXR0ZXJzIGFjcm9zcyB0e1smKiZdfWhlIHRlbXBlc3QgYW5kIHRoZSANCm5pZ2h0IG9mIExlYXJcJ3MgYWdvbnkuIEJ1dCBTaGFrc3BlcmUgZGlzY292ZXJzIHRoZSANCnN1e1smKiZdfXByZW1lIGZhY3Qg4oCUIHRoYXQgdGhlIG1vcmFsIHdvcmxkIHN0YW5kcyBpbiBzb3ZlcmVpZ24gDQppbmRlcGVuZGVuY2Ugb2YgdGh7WyYqJl19ZSB3b3JsZCBvZiB0aGUgc2Vuc2VzLl4gQ29yZGVsaWEgbGllcyANCg0KKiBLcmV5c3NpZyBkZXNjcmliZXMgU2hha3NwZXJlXCdzIGV7WyYqJl19dGhpY3MgYXMgZXNzZW50aWFsbHkgaWRlbnRpY2FsIHdpdGggdGhlIA0KZXRoaWNzIG9mIEthbnQgOiAqXCcgVm9uIGFsaWVuIFRyYWd7WyYqJl19b2RpZW4gU2hha2VzcGVhcmVcJ3MsIGphIHZvbiBhbGllbiB1bnMgYmUtIA0Ka2FubnRlbiBUcmFnb2RpZW4gYWx0ZXIgdW5kIG5ldWV7WyYqJl19ciBaZWl0LCBzY2hlaW50IExlYXIgdW5zIGFtIHZvbGxzdGFuZGlnc3RlbiANCmRpZSBCZXplaWNobnVuZyAqIGVyaGFiZW4sXCcgaW17WyYqJl19IFNjaGlsbGVyXCdzY2hlbiBTaW5uZSwgenUgdmVyZGllbmVuLCBpbnNvZmVybiBzaWUgDQptaXQgZ2FueiBiZXNvbmRlcmVtIE5hY2h7WyYqJl19ZHJ1Y2sgZGllIHVuYmVkaW5ndGUgc291dmVyYW5lIFVuYWJoYW5naWdrZWl0IA0KZGVyIHNpdHRsaWNoZW4gV2VsdCB2b24gZGVyIHtbJiomXX1kZXIgU2lubmUgenVyIEFuc2NoYXV1bmcgYnJpbmd0IDogZGllIFRyYWdvZGllIA0KZGVzIGthdGVnb3Jpc2NoZW4gSW1wZXJhdGl2e1smKiZdfVwncyB2b24gZGVtIGdyb3NzdGVuIGdlcm1hbmlzY2hlbiBEaWNodGVyIGdlLSANCnNjaGF1dCB1bmQgZ2VzY2hhZmZlbiwgendlaSBKe1smKiZdfWFocmh1bmRlcnRlIGVoZSBkZXIgZ3Jvc3N0ZSBnZXJtYW5pc2NoZSBEZW4tIA0Ka2VyIHNlaW4gR2VzZXR6IHdpc3NlbnNjaGFmdGx7WyYqJl19aWNoIGJlZ3JpaW5kZXRlLlwiIOKAlCBTaGFrZXNwZWFyZS1GcmFnZW55IHAuIDEyOCwgDQoNCk90aGVsbG87IE1hY2JldGg7IExlYXJ7WyYqJl19LiAyMDMgDQoNCnVwb24gdGhlIGJyZWFzdCBvZiBMZWFyLiBcIiBVcG9uIHN1Y2ggc2FjcmlmaWNlcyB0aGUgZ29kcyANCnRoZW1zZWx7WyYqJl19dmVzIHRocm93IGluY2Vuc2UuXCIgQ29yZGVsaWEsIGZvcmdldHRpbmcgaGVyIGZhLSANCnRoZXIsIG1pZ2h0IGhhdmUgcmV0dXJuZWR7WyYqJl19IHRvIEZyYW5jZSwgYW5kIGhhdmUgbGl2ZWQgcHJvcy0gDQpwZXJvdXNseS4gQnV0IHRoZW4gQ29yZGVsaWEsIHRoZSBwdXJlIHplYXtbJiomXX1sIG9mIHJlZGVlbS0gDQppbmcgYXJkb3IsIHdvdWxkLCBpbmRlZWQsIGhhdmUgY2Vhc2VkIHRvIGJlLiBOb3cgc2hlIA0KaGFzIGZ1e1smKiZdfWxmaWxsZWQgdGhlIGVuZCBvZiBoZXIgYmVpbmcuIEl0IGlzIG5vdCBzbyBoYXJkIHRvIA0KZGllLiBDb3JkZWxpYSBoYWQgYWNjZXB7WyYqJl19dGVkIGhlciBsb3Qgd2l0aCBmb3J0aXR1ZGUgOiANCg0KXCIgV2UgYXJlIG5vdCB0aGUgZmlyc3QgDQpXaG8gd2l0aCBiZXN0IG1lYW57WyYqJl19aW5nIGhhdmUgaW5jdXJyTSB0aGUgd29yc3QuXCIgDQoNCkFuZCBmb3IgdXMgdGhlIGVhcnRoIGlzIG1hZGUgbW9yZSBiZWF1dGlmdWx7WyYqJl19IGJ5IGhlciBsaWZlIA0KYW5kIGJ5IGhlciBkZWF0aC4gVGhhdCB3aGljaCBzYXRpc2ZpZXMgb3VyIGhlYXJ0LCB0aGF0IA0Kd2hpY3tbJiomXX1oIGJyaW5ncyB1cyBzdHJlbmd0aCBhbmQgY29uc29sYXRpb24sIGlzIG5vdCB0aGF0IGJ5IA0KaGFwcHkgY29uY3VycmVuY2Ugb2Yge1smKiZdfWNpcmN1bXN0YW5jZXMgQ29yZGVsaWEgc2hvdWxkIHN1Yy0gDQpjZWVkIGluIGhlciBlbnRlcnByaXNlLCBidXQgbWVyZWx5IHRoYXR7WyYqJl19IENvcmRlbGlhIGV4aXN0ZWQuIA0KTGVzc2VyIGhhcHBpbmVzcyBjYW4gYmUgZGlzcGVuc2VkIHdpdGggaWYgd2UgYXJlIGdyYW50ZXtbJiomXX1kIA0KdGhlIGpveSBvZiB0aGUgcHJlc2VuY2Ugb2YgYmVhdXRpZnVsLCBoZXJvaWMgc291bHMuIENvci0gDQpkZWxpYSBoYXMgc3Rye1smKiZdfWVuZ3RoZW5lZCB0aGUgYm9uZHMgb2YgaHVtYW5pdHkgOyBzaGUgaGFzIA0KZW5yaWNoZWQgdGhlIHRyYWRpdGlvbiBvZiBodW1hbiB7WyYqJl19Z29vZG5lc3MuIEl0IGlzIGJldHRlciANCmZvciBlYWNoIG9mIHVzIHRvIGJyZWF0aGUgYmVjYXVzZSBzaGUgaGFzIGJlZW4gYSB3b3tbJiomXX1tYWlsay4gDQpUaHVzIGFsdGhvdWdoIHRoZXJlIHdhcyBubyBwb3NzaWJpbGl0eSBmb3IgU2hha3NwZXJlIA0KdG8gYmVjb21lIGEge1smKiZdfWZhY2lsZSBvcHRpbWlzdCwgYmVhcmluZyBqYXVudGlseSBhIGJhbm5lciANCndpdGggdGhlIGRldmljZSBXaGF0ZXZlciBpc14gaXN7WyYqJl19IGhlc3ReIGFuZCBzaW5naW5nIHRvIHNvbWUgDQp0dW5lLCBzZWN1bGFyIG9yIHNhY3JlZCwgdGhlIHBlcmZlY3Rpb25zIG9mIHRoaXtbJiomXX1zIHRoZSBiZXN0IG9mIA0KYWxsIHBvc3NpYmxlIHdvcmxkcywgaGUgaXMgZXF1YWxseSBmYXIgcmVtb3ZlZCBmcm9tIGRlLSANCnNwe1smKiZdfWFpci4gVGhlIGFic29sdXRlIGRlc3BhaXIgYXMgcmVwcmVzZW50ZWQgYnkgU2hha3NwZXJlIA0K4oCUIHRoYXQgb2YgVGltb24g4oB7WyYqJl19lCBpcyBkZXNwYWlyIG9mIGh1bWFuIHZpcnR1ZS4gQW5kIHRvIA0Kc3VjaCBkZXNwYWlyIG9mIGh1bWFuIHZpcnR1ZSBTaGFrc3BlcntbJiomXX1lIG5ldmVyIHlpZWxkZWQgDQpoaW1zZWxmLiBBdCB0aGUgZW50cmFuY2UgdG8gaGlzIGxvbmcgc2VyaWVzIG9mIHRyYWdpYyB3cml0e1smKiZdfS0gDQppbmdzIHN0YW5kcyB0aGUgZmlndXJlIG9mIElzYWJlbCwgaW4gTHVjaW9cJ3MgZXllcyBcImEgdGhpbmcgDQplbnNreVwnZCBhbmR7WyYqJl19IHNhaW50ZWRcIiBpbiB0aGF0IFZpZW5uYSB3aGVyZSANCg0KXCIgQ29ycnVwdGlvbiBib2lscyBhbmQgYnViYmxlcyANClRpbGwgaXQge1smKiZdfW92ZXJydW4gdGhlIHN0ZXcuXCIgDQoNCkF0IHRoZSBjbG9zZSBzdGFuZCBQcm9zcGVybyBhbmQgSGVybWlvbmUuIFRoZSBpbGxCIA0Ke1smKiZdfW9mIGxpZmUgaGFkIHN1bmsgZGVlcCBpbnRvIEhhbWxldFwncyBzb3VsIDogDQoNCjIwNCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFue1smKiZdfWQgQSByTCANCg0KXCIgVGhlIG9wcHJlc3NvclwncyB3cm9uZywgdGhlIHByb3VkIG1hblwncyBjb250dW1lbHksIA0KVGhlIHBhbmdzIG97WyYqJl19ZiBkZXNwaXNlZCBsb3ZlLCB0aGUgbGF3XCdzIGRlbGF5LCANClRoZSBpbnNvbGVuY2Ugb2Ygb2ZmaWNlLCBhbmQgdGhlIHNwdXJucyB7WyYqJl19DQpUaGF0IHBhdGllbnQgbWVyaXQgb2YgdGhlIHVud29ydGh5IHRha2VzLlwiIA0KDQpCdXQgcHJlc2VudGx5IGJ5IGhpcyBzaWRlIHN7WyYqJl19dG9vZCBodW1hbiB2aXJ0dWUgOiBIb3JhdGlvLCANClwiYSBtYW4gdGhhdCBGb3J0dW5lIGJ1ZmZldHMgYW5kIHJld2FyZHNcIiDigJQge1smKiZdfXRoZXNlIHZlcnkgDQppbGxzIHdoaWNoIEhhbWxldCBlbnVtZXJhdGVkIOKAlCBeXCdoYWQgdGFcJ2VuIHdpdGggZXF1YWwgDQp0aGFua3tbJiomXX1zLlwiIGxhZ28gaXMgYSBkZXZvdXJpbmcgZ3VsZiBvZiBldmlsLCBcIiBtb3JlIGZlbGwgdGhhbiANCmFuZ3Vpc2gsIGh1bmdlciwgb3J7WyYqJl19IHRoZSBzZWEuXCIgQnV0IG92ZXIgYWdhaW5zdCBoaXMgbWFsaWctIA0Kbml0eSBhbmQgY29sZCBpbXB1cmVuZXNzIHJpc2VzIERlc2R7WyYqJl19ZW1vbmEsIHdobyBjYW5ub3QgDQpleHRlbmQgaGVyIGltYWdpbmF0aW9uIHNvIGZhciBhcyB0byBjcmVkaXQgYW55IGJyZWFjaCBvZntbJiomXX0gDQp3aWZlbHkgZmFpdGggb3IgbW9kZXN0eSBpbiBhbnkgd29tYW4uIEdvbmVyaWwgYW5kIFJlLSANCmdhbiBkaXNtaXNzIHRoZSBve1smKiZdfWxkIG1hbiBpbnRvIHRoZSB0ZW1wZXN0IGFuZCB0aGUgbmlnaHQgOyANCmJ1dCBDb3JkZWxpYSByZXN0b3JlcyBoaW0gd2l0aCB0aGV7WyYqJl19IHdhcm10aCBvZiBoZXIgYm9zb20uIA0KVGhpcyBwZXJpb2QgZHVyaW5nIHdoaWNoIFNoYWtzcGVyZSB3YXMgZW5nYWdlZCB1cG9uIHtbJiomXX0NCmhpcyBncmVhdCB0cmFnZWRpZXMgd2FzIG5vdCwgYXMgaXQgaGFzIGJlZW4gc29tZXRpbWVzIHJlcC0gDQpyZXNlbnRlZCwgYSBwe1smKiZdfWVyaW9kIG9mIGRlcHJlc3Npb24gYW5kIG9mIGdsb29tIGluIFNoYWstIA0Kc3BlcmVcJ3Mgc3Bpcml0dWFsIHByb2dyZXNzLiBUcnVle1smKiZdfSwgaGUgd2FzIG5vdyBzb3VuZGluZyANCl5lIGRlcHRocyBvZiBldmlsIGFzIGhlIGhhZCBuZXZlciBzb3VuZGVkIHRoZW0gYmVmb3J7WyYqJl19ZS4gDQpLdXQgaGlzIGZhaXRoIGluIGdvb2RuZXNzIGhhZCBuZXZlciBiZWVuIHNvIHN0cm9uZyBhbmQgDQpzdXJlLiBIaXRoZXJ0b3tbJiomXX0gaXQgaGFkIG5vdCBiZWVuIHRob3JvdWdobHkgdGVzdGVkLiBJbiANCnRoZSBvdmVyc3RyYWluZWQgbG95YWx0eSBvZiBWYWxlbnRpe1smKiZdfW5lIHRvIGhpcyB1bndvcnRoeSANCmZyaWVuZCB0aGVyZSBpcyBzb21ldGhpbmcgZmFudGFzdGljIGFuZCB1bnJlYWwuIFRoZSANCmd7WyYqJl19cmF2ZXIgZnJpZW5kc2hpcCBvZiBIb3JhdGlvIGZvciBIYW1sZXQgaXMgZGVlcGVyIGFuZCANCm1vcmUgZ2VudWluZS4gVGhlcmUgaXtbJiomXX1zIGdhbGxhbnRyeSBpbiBQb3J0aWFcJ3MgcmVzY3VlIG9mIA0KaGVyIGh1c2JhbmRcJ3MgZnJpZW5kIGZyb20gZGVhdGg7IGJ1dCB0aGV7WyYqJl19IGRldm90aW9uIG9mIA0KQ29yZGVsaWEgbm91cmlzaGVzIGl0c2VsZiBmcm9tIHNwcmluZ3Mgb2Ygc3RyZW5ndGggd2hpY2ggDQpsaXtbJiomXX1lIGZhcnRoZXIgZG93biBhbW9uZyB0aGUgcm9vdHMgb2YgdGhpbmdzLiBOb3csIHdpdGggDQpldmVyeSBmcmVzaCBkaXNjb3Zlcnkge1smKiZdfW9mIGNyaW1lLCBTaGFrc3BlcmUgbWFkZSBkaXNjb3ZlcnkgDQpvZiB2aXJ0dWUgd2hpY2ggY2Fubm90IHN1ZmZlciBkZWZlYXQuIFR7WyYqJl19aGUga25vd2xlZGdlIG9mIA0KZXZpbCBhbmQgb2YgZ29vZCBncm93IHRvZ2V0aGVyLiBXaGlsZSBTaGFrc3BlcmUgbW92ZWQgDQpnYXtbJiomXX15bHkgdXBvbiB0aGUgc3VyZmFjZSBvZiBsaWZlLCBpdCB3YXMgdGhlIHBsYXkgb2YgaW50ZWxsZWN0IA0KdGhhdCBzdGlycmVkIHdpe1smKiZdfXRoaW4gaGltIHRoZSBsaXZlbGllc3Qgc2Vuc2Ugb2YgcGxlYXN1cmUuIA0KVGhlIGJyaWdodCBzcGVlY2ggYW5kIHVuc3ViZHVhYmx7WyYqJl19ZSBtaXJ0aCwgbm90IGRpc2pvaW5lZCANCmZyb20gY29tbW9uLXNlbnNlIGFuZCBnb29kbmVzcyBvZiBoZWFydCBvZiBhIFJvc2FsaXtbJiomXX1uZCANCg0KT3RoZWxsbzsgTWFjYmV0aDsgTGVhci4gMjA7XiANCg0Kb3IgYSBCZWF0cmljZSwgZmlcJyBlZCBoaW0gd2l0aCBhIHNlbntbJiomXX1zZSBvZiBxdWlja2VuZWQgZXhpc3QtIA0KZW5jZS4gSVNcJ293IHRoYXQgaGUgaGFkIGNvbWUgdG8gY29tcHJlaGVuZCBtb3JlIG9mIHtbJiomXX0NCnRoZSBzb3Jyb3cgYW5kIG1vcmUgb2YgdGhlIGV2aWwgb2YgdGhlIGVhcnRoIOKAlCB0cmVhY2hlcnksIA0KaW5ncmF0aXR1ZGUse1smKiZdfSBjcnVlbHR5LCBsdXN0IOKAlCBTaGFrc3BlcmUgZm91bmQgcGVyaGFwcyBsZXNzIA0KdG8gZGVsaWdodCBoaW0gaW4gbWVyZSBicml7WyYqJl19Z2h0bmVzcyBvZiBpbnRlbGxlY3QgOyBoZSBjZXItIA0KdGFpbmx5IGdhdmUgaGlzIGhlYXJ0IGF3YXkgd2l0aCBtb3JlIGZlcnZvcntbJiomXX0gb2YgbG95YWx0eSB0byANCmh1bWFuIGdvb2RuZXNzLCB0byBmb3J0aXR1ZGUsIHB1cml0eSBvZiBoZWFydCwgc2VsZi1zdXJyZW4te1smKiZdfSANCmRlciwgc2VsZi1tYXN0ZXJ54oCUIHRvIGV2ZXJ5IG5vYmxlIGV4cHJlc3Npb24gb2YgY2hhcmFjdGVyLiANClN1Y2ggbWVsbG97WyYqJl19d2luZyBhbmQgZW5yaWNoaW5nIG9mIFNoYWtzcGVyZVwncyBuYXR1cmUgDQpjb3VsZCBub3QgaGF2ZSBwcm9jZWVkZWQgZHVyaW5nIGF7WyYqJl19IHBlcmlvZCBpbiB3aGljaCBoaXMgDQptb3JhbCBiZWluZyB3YXMgaW4gY29uZnVzaW9uLCBhbmQgaGVhdmVuIGFuZCBlYXJ0aCANCntbJiomXX1zZWVtZWQgdG8gbGllIGNoYW90aWNhbGx5IGFyb3VuZCBoaW0uIFdlcmUgaGlzIGRlbGlnaHQgDQppbiBtYW4gYW5kIHdvbWFuLCBoe1smKiZdfWlzIGZhaXRoIGFuZCBqb3kgaW4gaHVtYW4gZ29vZG5lc3MsIA0Kc3RhaW5lZCB3aXRoIHN1VWVubmVzcyBhbmQgaWdub2JsZSByZXN7WyYqJl19ZW50bWVudCwgY291bGQgaGUgDQpoYXZlIGRpc2NvdmVyZWQgSG9yYXRpbyBhbmQgS2VudCwgQ29yZGVsaWEgYW5kIERlc2RlLSANCntbJiomXX1tb25hPyBOby4gSWYgdGhlIHNlbnNlIG9mIHdyb25nIHNhbmsgZGVlcCBpbnRvIGhpcyANCnNvdWwsIGlmIGxpZmUgYmVjYW1lIGhhe1smKiZdfXJkZXIgYW5kIG1vcmUgZ3JhdmUsIHlldCBoZSBzdXItIA0KbW91bnRlZCBhbGwgc2Vuc2Ugb2YgcGVyc29uYWwgd3JvbmcgOyBhbmR7WyYqJl19IHdoaWxlIGxpZmUgZ3JldyANCm1vcmUgc2V2ZXJlLCBpdCBncmV3IG1vcmUgYmVhdXRpZnVsLiANCg0KSS4gDQoNClRoZSB0cmFnZXtbJiomXX1keSBvZiBPdGhlbGxvIGlzIHRoZSB0cmFnZWR5IG9mIGEgZnJlZSBhbmQgDQpsb3JkbHkgY3JlYXR1cmUgdGFrZW4gaW4gdGhlIHRve1smKiZdfWlscywgYW5kIHdyaXRoaW5nIHRvIGRlYXRoLiANCkluIG9uZSBvZiBoaXMgc29ubmV0cyBTaGFrc3BlcmUgaGFzIHNwb2tlbiBvZiB7WyYqJl19DQoNClwiIFNvbWUgZmllcmNlIHRoaW5nIHJlcGxldGUgd2l0aCB0b28gbXVjaCByYWdlIA0KV2hvc2Ugc3RyZW5ndGhcJ3MgYWJ1bmRhe1smKiZdfW5jZSB3ZWFrZW5zIGhpcyBvd24gaGVhcnQuKiogDQoNClN1Y2ggYSBmaWVyY2UgdGhpbmcsIG1hZGUgd2VhayBieSBoaXMgdmVyeSB7WyYqJl19c3RyZW5ndGgsIGlzIA0KT3RoZWxsby4gVGhlcmUgaXMgYSBiYXJiYXJlc3F1ZSBncmFuZGV1ciBhbmQgc2ltcGxpY2l0eSANCmFib3tbJiomXX11dCB0aGUgbW92ZW1lbnRzIG9mIGhpcyBzb3VsLiBIZSBzZWVzIHRoaW5ncyB3aXRoIA0KYSBsYXJnZSBhbmQgZ2VuZXJvdXMgZXlle1smKiZdfSwgbm90IHByeWluZyBpbnRvIHRoZSBjdXJpb3VzIG9yIA0KdGhlIG9jY3VsdC4gSGUgaXMgYSBsaWJlcmFsIGFjY2VwdGVyIG9mIGx7WyYqJl19aWZlLCBhbmQgd2l0aCBhIA0KY2FyZWxlc3MgbWFnbmlmaWNlbmNlIHdlYXJzIGFib3V0IGhpbSB0aGUgb3JuYW1lbnQgb2YgDQpzdHtbJiomXX1yYW5nZSBleHBlcmllbmNlIOKAlCBtZW1vcmllcyBvZiANCg0KXCIgQW50cmVzIHZhc3QsIGFuZCBkZXNhcnRzIGlkbGUsIA0KQm91Z3tbJiomXX1oIHF1YXJyaWVzLCByb2NrcywgYW5kIGhpbGxzIHdob3NlIGhlYWRzIHRvdWNoIGhlYXllViogDQoNCjJvNiBTaGFrc3BlcmUg4oCUe1smKiZdfSBIaXMgTWluZCBhbmQgQXJ0IA0KDQptZW1vcmllcyBvZiBcIiBkaXNhc3Ryb3VzIGNoYW5jZXMsIG9mIG1vdmluZyBhY2NpZGVudHMge1smKiZdfWJ5IA0KZmxvb2QgYW5kIGZpZWxkLlwiIFRoZXJlIGlzIHNvbWV0aGluZyBvZiBncmFuZCBpbm5vY2VuY2UgDQppbiBoaXMgbG95YWx0e1smKiZdfXkgdG8gVmVuaWNlLCBieSB3aGljaCBNci4gQnJvd25pbmcgd2FzIG5vdCANCnVuYWZmZWN0ZWQgd2hlbiBoZSBjb25jZWl2ZWQgaGl7WyYqJl19cyBNb29yaXNoIGNvbW1hbmRlciwgDQpMdXJpYS4gT3RoZWxsbywgYSBzdHJhbmdlciwgd2l0aCB0YXdueSBza2luIGFuZCBmaWVyY3tbJiomXX1lIA0KdHJhZGl0aW9ucyBpbiBoaXMgYmxvb2QsIGlzIGZhc2NpbmF0ZWQgYnkgdGhlIGdyYXZlIHNlbmF0ZSwgDQp0aGUgbm9ibHkge1smKiZdfW9yZGVyZWQgbGlmZSAocG9zc2Vzc2luZyBhIGNlcnRhaW4gcmljaCBjb2xvcmluZyANCm9mIGl0cyBvd24pLCBhbmQgdGhlIGFzdHV7WyYqJl19dGUgaW50ZWxsaWdlbmNlIG9mIHRoZSBDaXR5IG9mIHRoZSANClNlYS4gQXQgaGlzIGxhc3QgbW9tZW50LCB0aHJvdWdoIHRoZSBibHtbJiomXX1pbmRpbmcgc2FuZC0gDQpzdG9ybSBvZiBoaXMgb3duIHBhc3Npb24sIHRoaXMgZmVlbGluZyBvZiBkaXNpbnRlcmVzdGVkIA0KbG95e1smKiZdfWFsdHkgcmVjdXJzIHRvIE90aGVsbG8sIGFuZCBicmluZ3MgaGltIGEgbW9tZW50XCdzIGpveSANCmFuZCBwcmlkZS4gSGlzIGhpc3Rve1smKiZdfXJ5IGhhcyBiZWVuLCBpbmRlZWQsIGEgY2FsYW1pdG91cyANCm1pc3Rha2UgOyBsaWtlIHRoZSBiYXNlIEluZGlhbiwgaGUgaGFzIHR7WyYqJl19aHJvd24gYXdheSBcIiBhIA0KcGVhcmwgcmljaGVyIHRoYW4gYWxsIGhpcyB0cmliZS5cIiBCdXQgdGhlcmUgaXMgb25lIGZhY3QgDQp3e1smKiZdfWl0aCB3aGljaCB0aGUgcmVtZW1icmFuY2Ugb2YgaGltIG1heSBnbyBkb3duIHRvIA0KbWVuLCBvbmUgZmFjdCB3aGljaCB3aWxsIHJ7WyYqJl19ZXNjdWUgZnJvbSBjb21wbGV0ZSBkZWZvcm1pdHkgDQphbmQgYWJzdXJkIHVucmVhc29uIHRoZSBzdG9yeSBvZiBPdGhlbGxvIDogDXtbJiomXX0KDQoqKiBTZXQgeW91IGRvd24gdGhpcyA7IA0KXiBBbmQgc2F5LCBiZXNpZGVzLCB0aGF0IGluIEFsZXBwbyBvbmNlLCANCg0KV2hle1smKiZdfXJlIGEgbWFsaWduYW50IGFuZCBhIHR1cmJhblwnZCBUdXJrIA0KQmVhdCBhIFZlbmV0aWFuIGFuZCB0cmFkdWNlZCB0aGUgU3RhdGUse1smKiZdfSANCkkgdG9vayBieSB0aGUgdGhyb2F0IHRoZSBjaXJjdW1jaXNlZCBkb2csIA0KQW5kIHNtb3RlIGhpbSwgdGh1cy5cIiANCg0KV2l0e1smKiZdfWggdGhpcyBsb3lhbHR5IHRvIFZlbmljZSwgdGhlcmUgaXMgYWxzbyBhbiBpbnN0aW5jdGl2ZSANCnR1cm5pbmcgdG93YXJkcyB0aGV7WyYqJl19IGJhcmJhcmljIGdsb3J5IHdoaWNoIGhlIGhhcyBzdXJyZW4tIA0KZGVyZWQuIEhlIGlzIHRoZSBjaGlsZCBvZiByb3lhbCBhbmNlc3tbJiomXX10cnkgOiBcIiBJIGZldGNoIG15IA0KbGlmZSBhbmQgYmVpbmcgZnJvbSBtZW4gb2Ygcm95YWwgc2llZ2UuXCIgQWxsIHRoZSBtb3JlIA17WyYqJl19CmpveW91cyBvbiB0aGlzIGFjY291bnQgaXQgaXMgdG8gZGV2b3RlIGhpbXNlbGYgdG8gdGhlIHNlci0gDQp2aWNlIG9mIHRoZSBTdHtbJiomXX1hdGUuIEFuZCB0aHVzIE90aGVsbG8gaGFzIHJlYWNoZWQgbWFuLSANCmhvb2QsIGFuZCBwYXNzZWQgb24gdG8gbWlkZGxlIGxpZmUue1smKiZdfSANCg0KVGhlbiBpbiB0aGUgaG91c2Ugb2YgQnJhYmFudGlvIHRoaXMgc2ltcGxlIGFuZCBtYWctIA0KbmlmaWNlbnQgbmF0dXJlIGZ7WyYqJl19b3VuZCBoaXMgZmF0ZS4gRGVzZGVtb25hLCBtb3ZpbmcgdG8gDQphbmQgZnJvIGF0IGhlciBob3VzZS1hZmZhaXJzLCBvciBsaXN0ZXtbJiomXX1uaW5nIHdpdGggZ3JhdmUgd29uLSANCmRlciwgYW5kIGVhZ2VyIHJlc3RyYWluZWQgc3ltcGF0aHksIHRvIHRoZSBzdG9yeSBvZiBoe1smKiZdfWlzIA0KYWR2ZW50dXJvdXMgbGlmZSwgYmVjYW1lIHRvIGhpbSwgYXQgZmlyc3QgaW4gYW4gdW5jb25zY2lvdXMgDQoNCk90aGVsbG97WyYqJl19OyBNYWNiZXRoOyBMZWFyLiAyMDcgDQoNCndheSwgdGhlIHR5cGUgb2YgYmVhdXR5LCBnZW50bGVuZXNzLCByZXBvc2UsIGFuZCB0ZXtbJiomXX1uZGVyIA0Kd29tYW5ob29kLiBBbmQgRGVzZGVtb25hLCBpbiBoZXIgdHVybiwgYnJvdWdodCB1cCANCmFtaWRzdCB0aGUgcmVmaW5le1smKiZdfW1lbnRzIGFuZCBjZXJlbW9uaWVzIG9mIFZlbmV0aWFuIGxpZmUsIA0Kd2F0Y2hpbmcgZWFjaCBkYXkgdGhlIHNhbWUgZ29uZG9sYXN7WyYqJl19IGdsaWRlIGJ5LCBoZWFyaW5nIA0KaGVyIGZhdGhlclwncyB0YWxrIG9mIHNvbWUgbGl0dGxlIG5ldyBsYXcgb2YgdGhlIER1a2UsIA17WyYqJl19CmZvdW5kIGluIHRoZSBNb29yIHN0cmFuZ2VuZXNzIGFuZCBzcGxlbmRvciBvZiBzdHJvbmcgDQptYW5ob29kLCBoZXJvaWMgc2ltcHtbJiomXX1saWNpdHksIHRoZSBjaGFybSBvZiBvbmUgd2hvIGhhZCANCnN1ZmZlcmVkIGluIHNvbGl0dWRlLCBhbmQgb24gd2hvc2UgaGlzdG9ye1smKiZdfXkgY29tcGFzc2lvbiANCm1pZ2h0IGJlIGxhdmlzaGVkLiBUaHVzLCB3aGlsZSBCcnV0dXMgYW5kIFBvcnRpYSB3ZXJlIA0KaW5kaXN7WyYqJl19c29sdWJseSBib3VuZCB0b2dldGhlciBieSB0aGVpciBsaWtlbmVzcywgRGVzZGVtb25hIA0KYW5kIE90aGVsbG8gd2VyZSBtdXR1YXtbJiomXX1sbHkgYXR0cmFjdGVkIGJ5IHRoZSB3b25kZXIgYW5kIA0KZ3JhY2Ugb2YgdW5saWtlbmVzcy4gSW4gdGhlIGxvdmUgb2YgZWFjaCB0e1smKiZdfWhlcmUgd2FzIGEgcm8tIA0KbWFudGljIGVsZW1lbnQgOyBhbmQgcm9tYW5jZSBpcyBub3QgdGhlIGhpZ2hlc3QgZm9ybSBvZiANCnR7WyYqJl19aGUgc2VydmljZSB3aGljaCBpbWFnaW5hdGlvbiByZW5kZXJzIHRvIGxvdmUuIEZvciByby0gDQptYW5jZSBkaXNndWlzZXMgY2VydHtbJiomXX1haW4gZmFjdHMsIG9yIHNlZXMgdGhlbSwgYXMgaXQgd2VyZSwgDQp0aHJvdWdoIGEgbHVtaW5vdXMgbWlzdCA7IGJ1dCB0aGUgaGlne1smKiZdfWhlc3Qgc2VydmljZSB3aGljaCANCnRoZSBpbWFnaW5hdGlvbiBjYW4gcmVuZGVyIHRvIHRoZSBoZWFydCBpcyB0aGUgZGlzY292ZXJ7WyYqJl19eSANCm9mIGV2ZXJ5IGZhY3QsIHRoZSBoYXJkIGFuZCBiYXJlIGFzIHdlbGwgYXMgdGhlIGJlYXV0aWZ1bCA7IA0KYW5kLCB0byBlZntbJiomXX1mZWN0IHRoaXMsIGxpa2UgYSBjbGVhciBub3J0aCB3aW5kIGl0IGJsb3dzIGFsbCANCm1pc3RzIGF3YXkuIFRoZXJlIHdhcyBhIGNle1smKiZdfXJ0YWluIHNpZGUgb2YgT3RoZWxsb1wncyBuYXR1cmUgDQp3aGljaCBpdCB3ZXJlIHdlbGwgdGhhdCBEZXNkZW1vbmEgaGFkIHNlZW4se1smKiZdfSB0aG91Z2ggc2hlIA0KdHJlbWJsZWQuIA0KDQpCdXQgaWYgRGVzZGVtb25hIGxvdmVzIG5vdCB3aXRoIHRoZSBtb3N0IGluc3RydWN7WyYqJl19dGVkIA0KaGVhcnQsIHNoZSB5ZXQgbG92ZXMgcHVyZWx5IGFuZCB3aXRoIHRlbmRlciBkZXZvdGlvbi4gDQpBbmQgYmVjYXVzZSBoZXtbJiomXX1yIGxvdmUgd2FzIHNvIGVudGlyZWx5IHRoYXQgb2YgdGhlIGhlYXJ0IA0KYW5kIG9mIHRoZSBpbWFnaW5hdGlvbiwgRGVzZGVtb25he1smKiZdfSBmZWx0IHRoZSB0YXdueSBmYWNlIA0KYW5kIHRoZSBtYXR1cmUgeWVhcnMgYW5kIGhhbGYtYmFyYmFyaWMgb3JpZ2luIG9mIE90aGV7WyYqJl19bGxvIA0Kb25seSBhcyBkaW0gdW5kZXItY2hvcmRzIGVucmljaGluZyB0aGUgaGFybW9uaWVzIG9mIGhlciANCmxvdmUuIFRoZSB3aHtbJiomXX1vbGUgY3VycmVudCBvZiBoZXIgYmVpbmcsIG9yZGluYXJpbHkgc28gZWFzeSANCmFuZCB0cmFucXVpbCwgaHVycmllZCBmb3J3YXJke1smKiZdfSB3aXRoIHdoYXQgdG8gaGVyc2VsZiBzZWVtZWQgDQpcIiBkb3ducmlnaHQgdmlvbGVuY2UsXCIgdG8gdW5pdGUgaXRzZWxmIHdpdGggdHtbJiomXX1oZSBpbm1vc3QgYmUmbHQ7IA0KaW5nIG9mIHRoZSBNb29yIDogDQoNClwiIFRoYXQgSSBkaWQgbG92ZSB0aGUgTW9vciB0byBsaXZlIHtbJiomXX13aXRoIGhpbSwgDQpNeSBkb3ducmlnaHQgdmlvbGVuY2UgYW5kIHN0b3JtIG9mIGZvcnR1bmVzIA0KTWF5IHRydW1wZXQgdG8gdGhle1smKiZdfSB3b3JsZCA7IG15IGhlYXJ0IFwncyBzdWJkdWVkIA0KDQoybzggU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KRXZle1smKiZdfW4gdG8gdGhlIHZlcnkgcXVhbGl0eSBvZiBteSBsb3JkIDsgDQpJIHNhdyBPdGhlbGxvXCdzIHZpc2FnZSBpbiBoaXMgbWluZCwgDQpBe1smKiZdfW5kIHRvIGhpcyBob25vcnMgYW5kIGhpcyB2YWxpYW50IHBhcnRzIA0KRGlkIEkgbXkgc291bCBhbmQgZm9ydHVuZXMgY29uYWVjcmF7WyYqJl19dGUuXCIgDQoNCipFW2F6bGl0dCBoYXMgb2JzZXJ2ZWQgdHJ1bHksIFwiIFRoZSBleHRyYXZhZ2FuY2Ugb2YgaGVyIA0KcmVzb2x1dGlve1smKiZdfW5zLCB0aGUgcGVydGluYWNpdHkgb2YgaGVyIGFmZmVjdGlvbnMsIG1heSBiZSBzYWlkIA0KdG8gYXJpc2Ugb3V0IG9mIHRoZSBnZW57WyYqJl19dGxlbmVzcyBvZiBoZXIgbmF0dXJlLiBUaGV5IGltcGx5IA0KYW4gdW5yZXNlcnZlZCByZWxpYW5jZSBvbiB0aGUgcHVyaXR5IG9mIHtbJiomXX1oZXIgb3duIGludGVuLSANCnRpb25zLCBhbmQgZW50aXJlIHN1cnJlbmRlciBvZiBoZXIgZmVhcnMgdG8gaGVyIGxvdmUsIGEga25pe1smKiZdfXQtIA0KdGluZyBvZiBoZXJzZWxmLCBoZWFydCBhbmQgc291bCwgdG8gdGhlIGZhdGUgb2YgYW5vdGhlci5cIiBcIl4gDQpBbmQgaXQgaXtbJiomXX1zIHRoaXMgYmVpbmcsIHdobyBpcyB0byBPdGhlbGxvIFwiIGEgd29uZGVyIGFuZCBhIA0KYmVhdXR5IGFuZCBhIHRlcnJvcixcIiANCg17WyYqJl19ClwiIEEgZ2VudGxlIHRvbmUgDQpBbWlkIHJ1ZGUgdm9pY2VzLCBhIGJlbG92ZWQgbGlnaHQsIA0KQSBzb2xpdHVkZSwgYSByZWZ1Z2V7WyYqJl19LCBhIGRlbGlnaHQgXCIg4oCUIA0KDQppdCBpcyB0aGlzIGJlaW5nIHdob20gaGUgbXVzdCBoZXJlYWZ0ZXIgY2FzdCBhd2F5IGFuZCB7WyYqJl19DQp0cmFtcGxlIHVuZGVyZm9vdDogDQoNClwiIHRob3Ugd2VlZCANCldobyBhcnQgc28gbG92ZWx5IGZhaXIsIGFuZCBzbWVsUHN0IHN7WyYqJl19byBzd2VldCANClRoYXQgdGhlIHNlbnNlIGFjaGVzIGF0IHRoZWUsIHdvdWxkIHRob3UgaGFkXCdzdCBuZVwnZXIgYmVlbiBib3JuICFcIntbJiomXX0gDQoNClBvcnRpYSB3YXMgdG8gQnJ1dHVzIHRoZSBpZGVhbCBvZiBhbGwgaGUgd291bGQgZmFpbiBiZS0gDQpjb21lIGhpbXNlbGYge1smKiZdfTsgdGhlIGF0dHJhY3Rpb24gd2FzIHRoYXQgb2YgaWRlbnRpY2FsIHF1YWxpLSANCnRpZXMgOiBcIiBPIHllIGdvZHMsIHJlbmRlciBte1smKiZdfWUgd29ydGh5IG9mIHRoaXMgbm9ibGUgd2lmZSAhXCIgDQphbmQgUG9ydGlhIGNvdWxkIGNvbWUgdG8gQnJ1dHVzIGFuZCB1cmdlIHVwe1smKiZdfW9uIGhpbSBoZXIgDQpyaWdodCBvZiBzaGFyaW5nIGluIGFsbCB0aGF0IGNvbmNlcm5lZCBoaW0uIEJldHdlZW4gDQpQb3J0aWEgYW57WyYqJl19ZCBCcnV0dXMsIHRoZXJlZm9yZSwgbm8gZXJyb3JzIG9mIHRoZSBoZWFydCB3ZXJlIA0KcG9zc2libGUuIEJ1dCB0byBEZXNkZW1vbntbJiomXX1hIGhlciBodXNiYW5kIHdhcyBoZXIgbG9yZCwgDQphIGJlaW5nIHRvIGJlIHdvcnNoaXBwZWQgYW5kIHNlcnZlZCwgYW5kIGluIGhpe1smKiZdfXMgZ2VudGxlciANCm1vb2QgdG8gYmUgcGxheWVkIHdpdGgsIGFuZCBncmFjaW91c2x5IGJlIGNvbnRyYWRpY3RlZCANCmFuZCBjYXJ7WyYqJl19ZXNzZWQuIEFuZCBPdGhlbGxvLCBmb3IgaGlzIHBhcnQsIGhhcyBhIGNhcmUgdG8gDQpzdGFuZCBiZXR3ZWVuIGhpcyBnZW50bGUgd3tbJiomXX1pZmUgYW5kIHRoZSByb3VnaCB2ZXhhdGlvbnMgDQp3aGljaCBiZXNldCBoaW1zZWxmLiBXaGVuLCByb3VzZWQgYXQgbmlnaHQgYnkge1smKiZdfXRoZSBicmF3bCwgDQpzaGUgYXBwZWFycyBpbiB0aGUgc3RyZWV0cywgdGhlIE1vb3IgaXMgZG91Ymx5IGluZGlnbmFudCANCndpdGh7WyYqJl19IHRoZSBvZmZlbmRlcnMsIGJlY2F1c2UgdGhleSBoYXZlIHRyb3VibGVkIGhlciByZXBvc2UsIA0KDQoqIFwiIENoYXJhY3RlcnMgb2Z7WyYqJl19IFNoYWtlc3BlYXJcJ3MgUGxheXMsXCIgYnkgVy4gSGF6SHR0LCBwLiA1Miwgc2Vjb25kIGVkaXRpb24uIA0KDQpPdGhlbGxvOyBNYWNie1smKiZdfWV0aDsgTGVhci4gMjA5IA0KDQphbmQgd2l0aCBhZmkgY3Rpb25hdGUgZm9yY2UgaGUgdHVybnMgaGVyIGJhY2sgZnJvbSBpbnF1aXJ7WyYqJl19LSANCmluZyBpbnRvIHdoYXQgaGFkIGNhdXNlZCBoaW0gZGlzdHVyYmFuY2UgOiANCg0KXCIgTG9vaywgaWYgbXkgZ2VudGxlIGxvdmV7WyYqJl19IGJlIG5vdCByYWlzZWQgdXAgISANCklcJ2xsIG1ha2UgdGhlZSBhbiBleGFtcGxlLiANCkpEZXMuIFdoYXRcJ3MgdGhlIG1hdHRlciA/e1smKiZdfSANCg0KT2loLiBBbGxcJ3Mgd2VsbCBub3csIHN3ZWV0aW5nOyBjb21lIGF3YXkgdG8gYmVkLlwiIA0KDQpUaGUgbmF0dXJlIG9mIE90aHtbJiomXX1lbGxvIGlzIGZyZWUgYW5kIG9wZW4gOyBoZSBsb29rcyBvbiANCm1lbiB3aXRoIGEgZ2F6ZSB0b28gbGFyZ2UgYW5kIHJveWFsIHRve1smKiZdfSBzdXNwZWN0IHRoZW0gb2YgDQptYWxpZ25pdHkgYW5kIGZyYXVkIDsgaGUgaXMgYSBtYW4gXCIgbm90IGVhc2lseSBqZWFsb3VzIDpcIntbJiomXX0gDQoNClwiIE15IG5vYmxlIE1vb3IgDQpJcyB0cnVlIG9mIG1pbmQsIGFuZCBtYWRlIG9mIG5vIHN1Y2ggYmFzZW5lc3MgDQpBcyBqZXtbJiomXX1hbG91cyBjcmVhdHVyZXMgYXJlLlwiIA0KDQpIZSBoYXMsIGhvd2V2ZXIsIGEgc2Vuc2Ugb2YgaGlzIG93biBpbmVmbEJjaWVuY3kgaXtbJiomXX1uIGRlYWwtIA0KaW5nIHdpdGggdGhlIGNvbXBsZXggYW5kIHN1YnRsZSBjb25kaXRpb25zIG9mIGxpZmUgaW4gaGlzIA0KYWRvcHRle1smKiZdfWQgY291bnRyeS4gXCJXaGVyZSBhbGwgaXMgcGxhaW4gYW5kIGJyb2FkLCBoZSByZWxpZXMgDQp1cG9uIGhpcyBvd24ganVkZ21lbnQge1smKiZdfWFuZCBlbmVyZ3kuIEhlIGlzIGEgbWFzdGVyIG9mIA0Kc2ltcGxlLCBjb21tYW5kaW5nIGFjdGlvbi4gV2hlbiwgdXBvbiB0aGUgbml7WyYqJl19Z2h0IG9mIA0KRGVzZGVtb25hXCdzIGRlcGFydHVyZSBmcm9tIGhlciBmYXRoZXJcJ3MgaG91c2UsIEJyYWJhbi0gDQp0aW8gYW5kIHRoe1smKiZdfWUgb2ZmaWNlcnMgd2l0aCB0b3JjaGVzIGFuZCB3ZWFwb25zIG1lZXQgaGltLCANCmFuZCBhIHR1bXVsdCBzZWVtcyBpbmV2aXRhYmx7WyYqJl19ZSwgT3RoZWxsbyBzdWJkdWVzIGl0IHdpdGggDQp0aGUgdW50cm91YmxlZCwgbGFyZ2UgdmFsaWRpdHkgb2YgaGlzIHdpbGwgOiANCntbJiomXX0NClwiIEtlZXAgdXAgeW91ciBicmlnaHQgc3dvcmRzLCBmb3IgdGhlIGRldyB3aWxsIHJ1c3QgdGhlbS5cIiANCg0KQnV0IGZvciBjdXJ7WyYqJl19aW91cyBpbnF1aXJ5IGludG8gY29tcGxleCBmYWN0cyBoZSBoYXMgbm8gZmFjLSANCnVsdHkgOyBoZSBsb3NlcyBoaXMgYmVhcmluZ3tbJiomXX1zIDsgXCIgYmVpbmcgd3JvdWdodCB1cG9uLFwiIGhlIGlzIA0KXCdeIHBlcnBsZXhlZCBpbiB0aGUgZXh0cmVtZS5cIiBUaGVuLCB0b28sIHtbJiomXX1oaXMgaG90IE1hdXJpLSANCnRhbmlhbiBibG9vZCBtb3VudHMgcXVpY2tseSB0byB0aGUgcG9pbnQgb2YgYm9pbGluZy4gSWYgDQpoe1smKiZdfWUgYmUgaW5mZWN0ZWQsIHRoZSBwb2lzb24gaHVycmllcyB0aHJvdWdoIGhpcyB2ZWlucywgYW5kIA0KaGUgcmFnZXMgaW4gaGlzIGF7WyYqJl19Z29ueS4gDQoNCkhlcmUsIHVwb24gdGhlIG9uZSBzaWRlLCBpcyBtYXRlcmlhbCBmb3IgYSBmdXR1cmUgY2F0YXMtIA0KdHJvcGhlLntbJiomXX0gQW5kLCBvbiB0aGUgb3RoZXIsIHRoZXJlIGlzIERlc2RlbW9uYVwncyB0aW1pZC0gDQppdHkuIFdoZW4gc2hlIGNvdWxkIHN0YW5kIHtbJiomXX1ieSBPdGhlbGxvXCdzIHNpZGUsIERlc2RlbW9uYSANCndhcyBhYmxlIHRvIGNvbmZyb250IGhlciBmYXRoZXIsIGFuZCwgaW4gcHJlc3tbJiomXX1lbmNlIG9mIHRoZSANCkR1a2UgYW5kIG1hZ25pZmljb2VzLCBkZWNsYXJlIHRoYXQgc2hlIHdvdWxkIG5vdCByZXR1cm4gDQp0byB0e1smKiZdfWhlIGhvbWUgc2hlIGhhZCBhYmFuZG9uZWQuIEJ1dCBkdXJpbmcgT3RoZWxsb1wncyANCmNvdXJ0c2hpcCBEZXNkZW1vbmEgaGFkIHNoe1smKiZdfXJ1bmsgZnJvbSBhbnkgc3BlZWNoIHVwb24gDQoxNCANCg0KMiAxIG8gU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg17WyYqJl19CnRoaXMgbWF0dGVyIHdpdGxpIEJyYWJhbnRpbywgYW5kIGJ5IGlubm9jZW50IHJlc2VydmVzIGFuZCANCmxpdHRsZSBkaXNzZW1ibHtbJiomXX1pbmdzIGhhZCBrZXB0IGhpbSBpbiBpZ25vcmFuY2Ugb2YgdGhpcyANCmdyZWF0IGV2ZW50IGluIGhlciBoaXN0b3J5Ll4gVGhlIE1ve1smKiZdfW9yIGhhZCBtb3ZlZCBoZXIgDQppbWFnaW5hdGlvbiBieSBoaXMgc3RyYW5nZSBub2JpbGl0eSwgaGlzIGV4b3RpYyBncmFuZGV1ci57WyYqJl19IA0KQnV0IGhvdyBpZiBhZnRlcndhcmRzIGhlciBpbWFnaW5hdGlvbiBiZSBleGNpdGVkIGJ5IA0Kc29tZSBzdHJhbmdlIHRlcnJvcntbJiomXX0gYWJvdXQgaGVyIGh1c2JhbmQgPyBXaGF0IHdpbGwgaGVyIA0KcmVmaW5lZCBmZW1pbmluZSBhY2NvbXBsaXNobWVudHMgYXZhaWwge1smKiZdfWhlciB0aGVuIOKAlCBoZXIgDQpkZWxpY2FjeSB3aXRoIGhlciBuZWVkbGUsIHRoZSBhZG1pcmFibGUgbXVzaWMgd2l0aCB3aGljaCB7WyYqJl19DQpzaGUgXCIgd2lsbCBzaW5nIHRoZSBzYXZhZ2VuZXNzIG91dCBvZiBhIGJlYXIuXCdcJyANCg0KXCIgSSBmZWFyIHlvdSwgZm9yIHlvdSB7WyYqJl19YXJlIGZhdGFsIHRoZW4sIA0KV2hlbiB5b3VyIGV5ZXMgcm9sbCBzby5cIiANCg0KVGhlIGhhbmRrZXJjaGllZiB3aGljaCBzaGUgaGF7WyYqJl19cyBsb3N0IGJlY29tZXMgdGVycmlibGUgdG8gDQpoZXIsIHdoZW4gT3RoZWxsbywgd2l0aCBPcmllbnRhbCByYXB0dXJlIGludG8gdHtbJiomXX1oZSBtYXJ2ZWwtIA0KbG91cywgZGVzY3JpYmVzIGl0cyB2aXJ0dWUgOiANCg0KXCIgVGhlcmVcJ3MgbWFnaWMgaW4gdGhlIHdlYiBvZiB7WyYqJl19aXQgOiANCkEgc2lieWwgdGhhdCBoYWQgbnVtYmVyXCdkIGluIHRoZSB3b3JsZCANClRoZSBzdW4gdG8gY291cnNlIHR3byBodW5kcmV7WyYqJl19ZCBjb21wYXNzZXMsIA0KSW4gaGVyIHByb3BoZXRpYyBmdXJ5IHNld00gdGhlIHdvcmsgOyANClRoZSB3b3JtcyB3ZXJlIGhhbGxvd3tbJiomXX1cJ2QgdGhhdCBkaWQgYnJlZWQgdGhlIHNpbGsuIA0KQW5kIGl0IHdhcyBkeWVkIGluIG11bW15IHdoaWNoIHRoZSBza2lsZnVsIA0KQ3tbJiomXX1vbnNlcnZlZCBvZiBtYWlkZW5zXCcgaGVhcnRzLlwiIA0KDQpGb3IgRGVzZGVtb25hLCB3aXRoIGhlciBzbW9vdGgsIGludGVsbGlnaWJ7WyYqJl19bGUgZ2lybFwncyBsaWZlIA0KaW4gVmVuaWNlLCBoYXZpbmcgYXQgbGFyZ2VzdCBpdHMgbGl0dGxlIHBhdGhldGljIHJvbWFuY2Ugb2Z7WyYqJl19IA0KaGVyIG1haWQgQmFyYmFyYSwgd2l0aCBoZXIgc29uZyBvZiBcIiBXaWxsb3csXCIgaGVyZSBmbG93ZWQgDQppbiByb21hbmNlIHRve1smKiZdfW8gc3R1cGVuZG91cywgdG9vIHRvcnJpZCBhbmQgYWxpZW4sIHRvIGJlIA0Kb3RoZXIgdGhhbiBkcmVhZGZ1bC4gU2hhbGwgd2Ugd297WyYqJl19bmRlciB0aGF0IGluIGhlciBkaXMtIA0KdHVyYmFuY2Ugb2YgbWluZCBzaGUgdHJlbWJsZXMgdG8gZGVjbGFyZSB0byBoZXIgaHVzYntbJiomXX1hbmQgDQp0aGF0IHRoaXMgdGFsaXNtYW4gY291bGQgbm90IGJlIGZvdW5kPyBVbmRlcm5lYXRoIHRoZSANCm1vbWVudGFyeSwgc3Vwe1smKiZdfWVyZmljaWFsIGZhbHNlaG9vZCByZW1haW5zIHRoZSBjb25zdGFuY3kgDQphbmQgZmlkZWxpdHkgb2YgaGVyIGhlYXJ0IDsgdGhyb3V7WyYqJl19Z2ggYWxhcm0gYW5kIHNob2NrIGFuZCANCg0KKiBBIGNpcmN1bXN0YW5jZSB3aGljaCBsYWdvIGFmdGVyd2FyZHMgdHVybnMgdG8gYXtbJiomXX1jY291bnQgYWdhaW5zdCB0aGUgDQpwZWFjZSBvZiBPdGhlbGxvXCdzIG1pbmQgOiANCg0KXCIgU2hlIGRpZCBkZWNlaXZlIGhlciBmYXR7WyYqJl19aGVyIG1hcnJ5aW5nIHlvdSA7IA0KQW5kIHdoZW4gc2hlIHNlZW1cJ2QgdG8gc2hha2UgYW5kIGZlYXIgeW91ciBsb29rcywgDQpTaGV7WyYqJl19IGxvdmVkIHRoZW0gbW9zdC4gDQoNCk9paCwgQW5kIHNvIHNoZSBkaWQuXCIgDQoNCk90aGVsbG87IE1hY2JldGg7IExlYXIuIDIxMSB7WyYqJl19DQoNCnN1cnByaXNlLCBhXi1pZCBhd2Z1bCBhbHRlcmF0aW9uIG9mIHRoZSB3b3JsZCwgaGVyIGhlYXJ0IG5ldmVyIA0Kc3dlcnZlc3tbJiomXX0gZnJvbSBsb3lhbHR5IHRvIGhlciBodXNiYW5kLiBJZiBzaGUgaGFkIGRlLSANCmNlaXZlZCBCcmFiYW50aW8sIGFzIGluIGhpcyBhe1smKiZdfW5nZXIgaGUgZGVjbGFyZXMsIGFuZCBpZiBpbiANCnRoaXMgbWF0dGVyIG9mIHRoZSBoYW5ka2VyY2hpZWYgc2hlIGhhZCBmYWx0ZXJ7WyYqJl19ZWQgZnJvbSB0aGUgDQp0cnV0aCwgRGVzZGVtb25hIGF0b25lcyBmb3IgdGhlc2UgdW4gdmVyYWNpdGllcyA7IG5vdCBieSANCmFjcXtbJiomXX11aXNpdGlvbiBvZiBhIGNvbmZpZGVudCBjYW5kb3Ig4oCUIHN1Y2ggY291cmFnZW91cyBkZWFsLSANCmluZyB3aXRoIGRpZmZpY3Vse1smKiZdfXRpZXMgd2FzIGltcG9zc2libGUgZm9yIERlc2RlbW9uYSDigJQgYnV0IA0KYnkgb25lIG1vcmUgZmFsc2Vob29kLCB0aGUgc2FjcmV7WyYqJl19ZCBsaWUgd2hpY2ggaXMgbXVybXVyZWQgDQpieSBoZXIgbGlwcyBhcyB0aGV5IGdyb3cgZm9yZXZlciBzaWxlbnQgOiANCg0KXCIgRW17WyYqJl19aWxpYS4gMCwgd2hvIGhhdGggZG9uZSB0aGlzIGRlZWQgPyANCg0KQmVzLiBOb2JvZHkgOyBJIG15c2VsZiA6IGZhcmV3ZWxsIDsgDXtbJiomXX0KQ29tbWVuZCBtZSB0byBteSBraW5kIGxvcmQgOyAwLCBmYXJld2VsbC5cIiAqIA0KDQpJZiB0aGUgc2FtZSB1bmtub3dhYmxlIGZvcntbJiomXX1jZSB3aGljaCBtYW5pZmVzdHMgaXRzZWxmIA0KdGhyb3VnaCBtYW4gbWFuaWZlc3RzIGl0c2VsZiBsaWtld2lzZSB0aHJvdWdoIHRoe1smKiZdfWUgYW5pLSANCm1hbCB3b3JsZCwgd2UgbWlnaHQgc3VwcG9zZSB0aGF0IHRoZXJlIHdlcmUgc29tZSBzcGUtIA0KY2lhbCBhZmZpbml7WyYqJl19dGllcyBiZXR3ZWVuIHRoZSBzb3VsIG9mIE90aGVsbG8gYW5kIHRoZSBsaW9uIG9mIA0KaGlzIGFuY2VzdHJhbCBkZXNlcnQuIEFzc3tbJiomXX11cmVkbHkgdGhlIHNhbWUgbWFsaWduYW50IHBvdy0gDQplciB0aGF0IGx1cmtzIGluIHRoZSBleWUgYW5kIHRoYXQgZmlsbHMgd2l0e1smKiZdfWggdmVub20gdGhlIA0KZmFuZyBvZiB0aGUgc2VycGVudCB3b3VsZCBzZWVtIHRvIGhhdmUgYnJvdWdodCBpbnRvIGV4LSANCg0KKiB7WyYqJl19SW4gMTgzMCwgaW4gcGVyaW9kIG9mIGZ1bGwgcmV2b2x1dGlvbiBpbiBtYXR0ZXJzIG9mIGRyYW1hdGljIGFydCBhdCBQYXJpcywgDXtbJiomXX0KdGhlIE90aGVsbG8gdHJhbnNsYXRlZCBhbmQgcHJlZmFjZWQgYnkgQWxmcmVkIGRlIFZpZ255IHdhcyBhY3RlZCBhdCB0aGUgDQpUe1smKiZdfWhldG9lIEZyYW55YWlzLiBUaGUgRHVlIGRlIEJyb2dsaWUgb24gdGhpcyBvY2Nhc2lvbiBwdWJsaXNoZWQgaW4gdGhlIA0KUmV2dWV7WyYqJl19IEZyYW5eYWlzZSBhIHJlbWFya2FibGUgYXJ0aWNsZSAocmVwcmludGVkIGJ5IE0uIEd1aXpvdCBpbiBoaXMgXCIgU2hhay0gDQpzcGV7WyYqJl19YXJlIGV0IHNvbiBUZW1wcyxcIiBwcC4gMjY0LTM0Mykgb24gdGhlIFwiU3RhdGUgb2YgRHJhbWF0aWMgQXJ0IGluIEZyYW5jZS5cIiANCntbJiomXX1PZiB0aGVzZSBsYXN0IHdvcmRzIG9mIERlc2RlbW9uYSwgYXMgZGVsaXZlcmVkIGJ5IE1pbGUuIE1hcnMsIHRoZSBEdWUgZGUgDQpCe1smKiZdfXJvZ2xpZSB3cml0ZXMgOiBcIiBOb3VzIGRldm9ucyBsZSBkZWNsYXJlciA7IFRlZmZldCBkZSBjZSBtb3QgYSBldGUgbnVsIOKAlCBle1smKiZdfXQgDQpmcmFuY2hlbWVudCBub3VzIG5vdXMgZXRpb25zIHRvdWpvdXJzIGRvdXRlIHF1XCdpbCBlbiBkZXZhaXQgYXJyaXZlciBhaW5ze1smKiZdfWkuIA0KLiAuIC4gRGVwdWlzIGxlIGpvdXIgZGUgc29uIG1hcmlhZ2UgRGVzZGVtb25hIHNcJ2VzdCBjb25zaWRlcmVlIGNvbW1lIGxhe1smKiZdfSANCnByb3ByaWV0ZSBkXCdPdGhlbGxvLCBjb21tZSBxdWVscXVlIGNob3NlIGRvbnQgT3RoZWxsbyBlc3QgbGUgbWFpdHJlIGRcJ3VzZXtbJiomXX1yIA0KZXQgZFwnYWJ1c2VyLCBjb21tZSB1bmUgZXNjbGF2ZSBxdVwnaWwgcGVudCBiYXR0cmUgb3UgdHVlciBzXCdpbCBsdWkgZW4gcHJle1smKiZdfW5kIA0KZmFudGFpc2llOyBjb21tZW50IHZpZW5kcmFpdC1lbGxlIF4gcGVuc2VyIHRvdXQtIGEgLWNvdXAgcXVcJ090aGVsbG8gY291e1smKiZdfXJlIA0KYXVjdW4gcmlzcXVlIGEgcHJvcG9zIGRcJ2VsbGUsIG5pIHF1XCdpbCBzb2l0IG5lY2Vzc2FpcmUgZGUgbGUgbWV0dHJlIF4gSXtbJiomXX1cJ2FicmkgDQpkXCd1bmUgcG91cnN1aXRlIGNyaW1pbmVsbGUgP1wiIFRoZSBjcml0aWNpc20gaXMgbW9yZSBjdXJpb3VzIHRoYW4ganVze1smKiZdfXQgOyBidXQgDQp0aGUgcmVjb3JkZWQgZmFjdCBpcyBpbnRlcmVzdGluZy4gU2VlLCBvbiB0aGUgZmVlbGluZyB0b3dhcmRzIFNoYWt7WyYqJl19c3BlcmUgaW4gDQpGcmFuY2UgYXQgdGhlIHRpbWUgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBPdGhlbGxvXiBcIiBIaXN0b2lyZSB7WyYqJl19ZGUgSVwnbG5mbHVlbmNlIA0KZGUgU2hha3NwZWFyZSBzdXIgbGUgVGhlYXRyZSBGcmFuOWFpcyAoU2VwdGllbWUgUGhhc2UpLFwiIHBhe1smKiZdfXIgQWxiZXJ0IExhY3JvaXggDQooQnJ1eGVsbGVzLCAxODU2KS4gDQoNCjIxMiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnR7WyYqJl19IA0KDQppc3RlbmNlIGxhZ28uIFwiSXQgaXMgdGhlIHN0cmVuZ3RsaSBvZiB0aGUgYmFzZSBlbGVtZW50IA0KdGhhdCBpcyBzbyBkcmV7WyYqJl19YWRmdWwgaW4gdGhlIHNlcnBlbnQgOyBpdCBpcyB0aGUgdmVyeSBvbW5pcG8tIA0KdGVuY2Ugb2YgdGhlIGVhcnRoLiAuLi4gSXQgc3tbJiomXX1jYXJjZWx5IGJyZWF0aGVzIHdpdGggaXRzIG9uZSANCmx1bmcgKHRoZSBvdGhlciBzaHJpdmVsbGVkIGFuZCBhYm9ydGl2ZSkgOyBpe1smKiZdfXQgaXMgcGFzc2l2ZSB0byANCnRoZSBzdW4gYW5kIHNoYWRlLCBhbmQgaXMgY29sZCBvciBob3QgbGlrZSBhIHN0b25lIDsgeWV0IFwne1smKiZdfSBpdCANCmNhbiBvdXRjbGltYiB0aGUgbW9ua2V5LCBvdXRzd2ltIHRoZSBmaXNoLCBvdXRsZWFwIHRoZSANCnplYnJhLCBvdXR3cmV7WyYqJl19c3RsZSB0aGUgYXRobGV0ZSwgYW5kIGNydXNoIHRoZSB0aWdlci5cJyBJdCBpcyBhIA0KZGl2aW5lIGhpZXJvZ2x5cGggb2YgdGhlIGR7WyYqJl19ZW1vbmlhYyBwb3dlciBvZiB0aGUgZWFydGgg4oCUIA0Kb2YgdGhlIGVudGlyZSBlYXJ0aGx5IG5hdHVyZS5cIl4gU3VjaCBpcyB0aGV7WyYqJl19IHNlcnBlbnQgDQpsYWdvLiANCg0KSW4gdGhlIGxhc3Qgc2NlbmUgb2YgdGhlIHBsYXkgT3RoZWxsbyBjYWxscyBvbiBDYXNzaW8gKHtbJiomXX1mb3IgDQpoZSBjYW5ub3QgaGltc2VsZiBhcHByb2FjaCB0aGUgaG9ycm9yKSB0byBpbnRlcnJvZ2F0ZSANCmxhZ28gcmVzcGVjdGlue1smKiZdfWcgdGhlIG1vdGl2ZXMgb2YgaGlzIG1hbGlnbmFudCBjcmltZSA6IA0KDQpcIiBXaWxsIHlvdSwgSSBwcmF5LCBkZW1hbmQgdGhhdCBke1smKiZdfWVtaS1kZXZpbCANCldoeSBoZSBoYXRoIHRodXMgZW5zbmFyZWQgbXkgc291bCBhbmQgYm9keSA/XCIgDQoNCkFuZCBsYWdvIGZvcmVje1smKiZdfWxvc2VzIGFsbCBzdWNoIGlucXVpcnkgd2l0aCB0aGUgd29yZHMg4oCUIA0KdGhleSBhcmUgdGhlIGxhc3Qgd29yZHMgdGhhdCBoZSB7WyYqJl19dXR0ZXJzIOKAlCANCg0KXCIgRGVtYW5kIG1lIG5vdGhpbmcgOiB3aGF0IHlvdSBrbm93IHlvdSBrbm93IDogDQpGcm9tIHRoaXMgdGl7WyYqJl19bWUgZm9ydGggSSBuZXZlciB3aWxsIHNwZWFrIHdvcmQuXCIgDQoNClNoYWtzcGVyZSB3b3VsZCBoYXZlIHVzIGJlbGlldmUgdGhhdCB7WyYqJl19YXMgdGhlcmUgaXMgYSBwYXMtIA0Kc2lvbiBvZiBnb29kbmVzcyB3aXRoIG5vIG1vdGl2ZSBidXQgZ29vZG5lc3MgaXRzZWxmLCBzb3tbJiomXX0gDQp0aGVyZSBpcyBhbHNvIGEgZHJlYWRmdWwgY2FwYWNpdHkgaW4gdGhlIHNvdWwgZm9yIGRldm90aW9uIA0KdG8gZXZpbCBpbmRle1smKiZdfXBlbmRlbnRseSBvZiBtb3RpdmVzLCBvciBvdXQgb2YgYWxsIHByb3BvcnRpb24gDQp0byBzdWNoIG1vdGl2ZXMgYXMgbWF5IGV4aXN7WyYqJl19dC5mIGxhZ28gaXMgdGhlIGFic29sdXRlIGluLSANCg0KKiBSdXNraW4sIFwiIFRoZSBRdWVlbiBvZiB0aGUgQWlyLFwiIHBwLiA4Mywge1smKiZdfTg0LiBUaGUgd29yZHMgcXVvdGVkIGJ5IE1yLiANClJ1c2tpbiBhcmUgdGhvc2Ugb2YgTXIuIFJpY2hhcmQgT3dlbi4gDQoNCmYgRm97WyYqJl19ciBhIGRpc2N1c3Npb24gb2YgdGhlIG1vdGl2ZXMgb2YgbGFnbywgc2VlIEhlYmxlciwgXCIgQXVmc2F0emUgaWliZXIgDQpTaGFrZXN7WyYqJl19cGVhcmUgXCIgKEJlcm4sIDE4NjUpLCBwcC4gNDItNjAuIFRoZSBEdWUgZGUgQnJvZ2xpZSwgaW4gdGhlIGFydGljbGUgDQpxdW90ZWR7WyYqJl19IGFscmVhZHksIGVuZGVhdm9ycyB0byBzaG93IHRoYXQgdGhlIGNoYXJhY3RlciBvZiBsYWdvIGlzIGluY29oZXJlbnQuIA0KXCIgUXV7WyYqJl19XCdlc3QtY2UgcXVsYWdvID8gRXN0LWNlIGxlIG1hbGluIGVzcHJpdCBvdSBkdSBtb2lucyBzb24gcmVwcmVzZW50YW50IA0Kc3VyIGx7WyYqJl19YSB0ZXJyZSA/IE90aGVsbG8gYS10LWlsIHJhaXNvbiBxdWFuZCBpbCBsZSByZWdhcmRlIGF1eCBwaWVkcyBwb3VyIHZvaXIgDQpzXCd7WyYqJl19aWwgbmUgbGVzIGF1cmFpdCBwYXMgZm91cmNodXMgPyAsIC4gLiBBbG9ycyBwb3VycXVvaSBkb25uZXIgNCBsYWdvIGRlcyBtby0gDXtbJiomXX0KdGlmcyBodW1haW5zIGV0IGludGVyZXNzZXMgPyBQb3VycXVvaSBub3VzIG1vbnRyZXIgZW4gbHVpIHVuZSBiYXNzZSBjdXBpLSANe1smKiZdfQpkaXRlLCBsZSByZXNzZW50aW1lbnQgZFwndW5lIGluanVyZSBmYWl0ZSBeIHNvbiBob25uZXVyIDsgSVwnZW52aWUgZFwndW4gcG9zdGV7WyYqJl19IHBsdXMgDQo2MWV2ZSBxdWUgbGUgc2llbiA/IC4gLiAuIENlcyBwYXNzaW9ucyBkZSBiYXMgYWxvaSBkZXRydWlzZW50IHRvdXQgbHtbJiomXX1lIGZhbnRhcy0gDQp0aXF1ZSBkdSByb2xlIDsgbGUgZGVtb24gY1wnYSBuaSBodW1ldXIgbmkgaG9ubmV1ciA7IGlsIG5cJ2EgbmkgcmF7WyYqJl19bmN1bmUsIG5pIA0KDQpPdGhlbGxvOyBNYWNiZXRoOyBMZWFyLiAyMTMgDQoNCmZpZGVsIDsgZm9yIExlIGlzIGRldm9pZCBvZiBhbHtbJiomXX1sIGZhaXRoIGluIGJlYXV0eSBhbmQgaW4gdmlyKiANCnR1ZS4gVGltb24gZGlzYmVsaWV2ZXMsIGJ1dCBoZSBiZWNvbWVzIGRlc3Ble1smKiZdfXJhdGUgYW5kIA0KYWJhbmRvbnMgbGlmZS4gbGFnbyBmaW5kcyBpdCByaWdodCBhbmQgbmF0dXJhbCB0byBsaXZlIGluIA0KYSB3b3J7WyYqJl19bGQgaW4gd2hpY2ggYWxsIG1lbiBhcmUga25hdmVzIG9yIGZvb2xzLCBhbmQgYWxsIA0Kd29tZW4gYXJlIHRoYXQgd2hpY2ggRGVzZHtbJiomXX1lbW9uYSBpcyB1bmFibGUgdG8gbmFtZS4gDQoNClRvZ2V0aGVyIHdpdGggZXZlcnl0aGluZyBiZWF1dGlmdWwsIGV2ZXJ5dGhpbmcge1smKiZdfW5vYmxlLCANCnRoZXJlIGluZXZpdGFibHkgZXhpc3RzIGEgZ3Jvc3MgZWxlbWVudCBvZiB0aGUgZWFydGguIEl0IGlzIA0KdXBvbiB7WyYqJl19dGhpcyBncm9zcyBlbGVtZW50IGFsb25lIHRoYXQgbGFnbyBiYXR0ZW5zLCBhbmQgaGUgDQpjYW4gZGlzY292ZXIgaXQgZXZlcnl3aHtbJiomXX1lcmUgYnkgZGVueWluZyBhbmQgZGlzbWlzc2luZyBhbGwgDQp0aGF0IHRyYW5zZm9ybXMsIHB1cmlmaWVzLCBhbmQgZW5ub2JsZXMge1smKiZdfWl0LiBPdGhlbGxvLCB3aXRoIA0KaGlzIGhlcm9pYyBzaW1wbGljaXR5IGFuZCByb3lhbHR5IG9mIHNvdWwsIA0KDQpcIiBXaWxsIGFze1smKiZdfSB0ZW5kZXJseSBiZSBsZWQgYnkgdGhlIG5vc2UgDQpBcyBhc3NlcyBhcmUuXCcqIA0KDQpDYXNzaW8sIHdobyBpcyBmdWxsIG9mIGNoe1smKiZdfWl2YWxyaWMgZW50aHVzaWFzbSBmb3IgaGlzIGdyZWF0IA0KbGVhZGVyIGFuZCB0aGUgYmVhdXRpZnVsIGJyaWRlIHdob20gaGUgaGF7WyYqJl19cyB3b24sIGlzIHRvIA0KbGFnbyBcIiBhIGtuYXZlIHZlcnkgdm9sdWJsZSA7IG5vIGZ1cnRoZXIgY29uc2Npb25hYmxlIHRoYW4gDQp7WyYqJl19aW4gcHV0dGluZyBvbiB0aGUgbWVyZSBmb3JtIG9mIGNpdmlsIGFuZCBodW1hbmUgZmVlbGluZywgDQpmb3IgdGhlIGJldHRlciBjb3tbJiomXX1tcGFzc2luZyBvZiBoaXMgc2FsdCBhbmQgbW9zdCBoaWRkZW4gDQpsb29zZSBhZmZlY3Rpb24uXCIgRGVzZGVtb25hLCBleGNsYWltc3tbJiomXX0gUm9kZXJpZ28sIGlzIFwiZnVsbCANCm9mIG1vc3QgYmxlc3NlZCBjb25kaXRpb24uXCIgbGFnby4gXCIgQmxlc3NlZCBmaWdcJ3MgLSBlbntbJiomXX1kICEgDQp0aGUgd2luZSBzaGUgZHJpbmtzIGlzIG1hZGUgb2YgZ3JhcGVzIDogaWYgc2hlIGhhZCBiZWVuIA0KYmxlc3NlZCBzaGUge1smKiZdfXdvdWxkIG5ldmVyIGhhdmUgbG92ZWQgdGhlIE1vb3IuIEJsZXNzZWQgDQpwdWRkaW5nICEgRGlkc3QgdGhvdSBub3Qgc2VlIGhlciB7WyYqJl19cGFkZGxlIHdpdGggdGhlIHBhbG0gDQpvZiBoaXMgaGFuZCAhIERpZHN0IG5vdCBtYXJrIHRoYXQgP1wiIFRoZSBNb29yIGhhcyBpbi17WyYqJl19IA0KDQpjb2xlcmUsIG5pIGNvbnZvaXRpc2UgOyBjXCdlc3QgdW4gcGVyc29ubmFnZSBkZXNpbnRlcmVzc2UgOyBpbCBmYWl0IGxlIG17WyYqJl19YWwgcGFyY2UgDQpxdWUgbGUgbWFsIGVzdCBsZSBtYWwsIGV0IHF1XCdpbCBlc3QsIGx1aSwgbGUgbWFsaW4uIGxhZ28gZXN0LWlsIGF7WyYqJl19dSBjb250cmFpcmUsIA0KY29tbWUgaWwgc1wnZW4gZmFpdCBnbG9pcmUsIGxlIHBhcmZhaXQgZWdvaXN0ZSwgSVwnaG9tbWUgcXVpIHNhe1smKiZdfWx0IGF1IHN1cHJlbWUgDQpkZWdyZSBzXCdhaW1lciBsdWktbWVtZSwgSVwnZXRyZSBxdWkgc2FpdCBzdWJvcmRvbm5lciBoaWVyYXJjaHtbJiomXX1pcXVlbWVudCBzZXMgDQpkZXNpcnMgc2Vsb24gbGV1ciBkZWdyZSBkXCdpbXBvcnRhbmNlLCBldCBkaXNwb3NlciBlbnN1aXRlIHNlc3tbJiomXX0gYWN0aW9ucyBkZSANCm1hbmlecmUgaCB0ZW5kcmUgaW52YXJpYWJsZW1lbnQgaCBzYSBwbHVzIGhhdXRlIHNhdGlzZmFjdGlvbiwge1smKiZdfWNvdXRlIHF1ZSANCmNvdXRlIGggYXV0cnVpLCBzYW5zIHNjcnVwdWxlLCBzYW5zIHJlbW9yZHMsIGV0IGF1c3NpIHNhbnMgc2UgbGF7WyYqJl19aXNzZXIgZGV0b3VybmVyIA0KcGFyIGRlcyB2ZWxsZWl0ZXMgZFwndW4gb3JkcmUgaW5mIGVyaWV1ciA/IEFsb3JzIHBvdXJxdW9pIHB7WyYqJl19b3Vyc3VpdC1pbCBlbiBtZW1lIA0KdGVtcHMgdHJvaXMgb3UgcXVhdHJlIGJ1dHMgZGlzdGluY3RzLCBldCBkXCd1bmUgaW1wb3J0YW57WyYqJl19Y2UgcG91ciBsdWkgdHJlcyBpbmUtIA0KZ2FsZT8gLiAuIC4gUG91cnF1b2kgc3VydG91dCBwcm9kaWd1ZS10LWlsLCBkYW5zIGNoYXtbJiomXX1xdWUgb2NjYXNpb24sIGNlbnQgZm9pcyANCnBsdXMgZGUgbWVjaGFuY2V0ZSBxdWUgbGUgYmVzb2luIGRlIGxhIGNpcmNvbnN0YW5je1smKiZdfWUgbmUgbGUgY29tcG9ydGUgP1wnKiBSZS0gDQpwcmludGVkIGluIEd1aXpvdFwncyAqXCcgU2hha3NwZWFyZSBldCBzb24gVGVtcHMsXCIge1smKiZdfXBwLiAzMjIsIDMyMy4gDQoNCjIgMSA0IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCmZsYW1lZCBoZXIgaW1hZ2l7WyYqJl19bmF0aW9uIHdpdGggXCIgYnJhZ2dpbmcgYW5kIHRlbGxpbmcgaGVyIA0KZmFudGFzdGljYWwgbGllcy5cIiBMb3ZlIFwiIGlzIG1lcmVseXtbJiomXX0gYSBsdXN0IG9mIHRoZSBibG9vZCBhbmQgDQphIHBlcm1pc3Npb24gb2YgdGhlIHdpbGwuXCdcJyBWaXJ0dWUgaXMgXCIgYSBmaWcgISBcJ3tbJiomXX10aXMgaW4gb3VyLSANCnNlbHZlcyB0aGF0IHdlIGFyZSB0aHVzIG9yIHRodXMuXCIgXCIgTywgSSBoYXZlIGxvc3QgbXkgDQpyZXB1dGF7WyYqJl19dGlvbiAhXCIgQ2Fzc2lvIGNyaWVzLCBcIiBJIGhhdmUgbG9zdCB0aGUgaW1tb3J0YWwgcGFydCANCm9mIG15c2VsZiwgYW5kIHdoYXQge1smKiZdfXJlbWFpbnMgaXMgYmVzdGlhbC4gTXkgcmVwdXRhdGlvbiwgDQpsYWdvLCBteSByZXB1dGF0aW9uLlwiIGxhZ28uIFwiIEFzIEkgYW0gYXtbJiomXX1uIGhvbmVzdCBtYW4sIEkgDQp0aG91Z2h0IHlvdSBoYWQgcmVjZWl2ZWQgc29tZSBib2RpbHkgd291bmQuXCIgQWxsIHRoaXMgDQppc3tbJiomXX0gdGhlIGVhcnRoaW5lc3Mgb2YgdGhlIHNlcnBlbnQ7IHRoZSBkdWxsIGV5ZSB3aGljaCANCnF1aWNrZW5zIG9ubHkgdG8gZmFzY2lue1smKiZdfWF0ZSBhbmQgdG8gc3RyaWtlIDsgdGhlIG11ZGR5IHNraW4sIA0KZGlzY29sb3JlZCB3aXRoIGZvdWwgYmxvdGNoZXMgOyBhbmQgdGh7WyYqJl19ZSBkdXN0LCB3aGljaCBpcyB0aGUgDQpzZXJwZW50XCdzIG1lYXQuIFRoaXMgY29sZCBtYWxpZ25hbnQgcG93ZXIsIHBhc3Npb25sZXN7WyYqJl19cyANCmFuZCBpbnRlbGxlY3R1YWxseSBzZW5zdWFsIOKAlCB0aGUgc291bCBpdHNlbGYgaGF2aW5nIGJlY29tZSANCm1vcmUgYW5pbXtbJiomXX1hbCB0aGFuIHRoZSBib2R5IGNhbiBldmVyIGJlIOKAlCBpcyBpbmNhcm5hdGVkIGluIA0KdGhlIHBlcnNvbiBvZiBhIG1hbiBzdGlse1smKiZdfWwgeW91bmcuIGxhZ28gaGFzIHJlYWNoZWQgdGhlIA0KYWdlIG9mIHR3ZW50eS1laWdodC4gQW5kIGhlIHdvdWxkIHBhc3MgZm9yIGF7WyYqJl19IG1lcnJ5IA0Ka25hdmUuIFdoaWxlIGVudGljaW5nIENhc3NpbyB0byBoaXMgcnVpbiwgaGUgZW50ZXJ0YWlucyANCnRoZSBjb21wYXtbJiomXX1ueSB3aXRoIGNsYXR0ZXJpbmcgc29uZyA6IA0KDQpcIiBBbmQgbGV0IG1lIHRoZSBjYW5ha2luIGNsaW5rLCBjbGluayA7IA0KQW5kIHtbJiomXX1sZXQgbWUgdGhlIGNhbmFraW4gY2xpbmsuXCIgDQoNCkl0IGlzIHRoZSBncmluIG9mIGEgZGVhdGhcJ3MtaGVhZCwgdGhlIG1pcnRoIG97WyYqJl19ZiBhIGdob3VsLiogDQoNClRoZXNlIGFyZSB0aGUgY2hpZWYgZm9yY2VzLCBhbmQgdGhlIHBsYXkgb2YgdGhlc2UgZm9yY2VzIA0KY3tbJiomXX1vbnN0aXR1dGVzIHRoZSB0cmFnZWR5LiBTaW5jZSBDb2xlcmlkZ2UgbWFkZSB0aGUgcmUtIA0KbWFyaywgYWxsIGNyaXRpY3Mgb2Yge1smKiZdfU90aGVsbG8gYXJlIGNvbnN0cmFpbmVkIHRvIHJlcGVhdCBhZnRlciANCmhpbSB0aGF0IHRoZSBwYXNzaW9uIG9mIHRoZSBNb29yIGl7WyYqJl19cyBub3QgYWx0b2dldGhlciBqZWFsLSANCm91c3nigJRpdCBpcyByYXRoZXIgdGhlIGFnb255IG9mIGJlaW5nIGNvbXBlbGxlZCB0b3tbJiomXX0gaGF0ZSANCnRoYXQgd2hpY2ggaGUgc3VwcmVtZWx5IGxvdmVkIDogDQoNCiogVGhlIHBhc3Npb25sZXNzIGNoYXJhY3RlciBvZiBse1smKiZdfWFnbywgQ29sZXJpZGdlIHNheXMsIFwiIGlzIGFsbCB3aWxsIGluIGludGVsLSANCmxlY3QgO1wiIGFuZCBoZSBub3RpY2VzIHdlbGwgXCJ7WyYqJl19IHRoZSBtb3RpdmUtaHVudGluZyBvZiBhIG1vdGl2ZWxlc3MgbWFsaWduaXR5LFwiIGluIA0KbGFnb1wncyBzb2xpbG9xdXkgKGFjdCBpe1smKiZdfS4sIHNjLiAzKS4gTXIuIEh1ZHNvblwncyBzdHVkeSBvZiB0aGUgY2hhcmFjdGVyIG9mIGxhZ28gDQppcyBjYXJlZnVsIGFuZCBkaXNje1smKiZdfXJpbWluYXRpbmcuIFwibGFnb1wncyBjcmVlZCxcIiB3cml0ZXMgTXIuIEh1ZHNvbiwgXCJpcyB0aGF0IA0KdGhlIHlpZWxkaW5nIHRvIGFue1smKiZdfXkgaW5zcGlyYXRpb25zIGZyb20gd2l0aG91dCBhcmd1ZXMgYW4gaWdub2JsZSB3YW50IG9mIA0KbWVudGFsIGZvcmNlLiAuIC4gLiB7WyYqJl19SW50ZWxsZWN0dWFsaXR5IGlzIGxhZ29cJ3MgcHJvcGVyIGNoYXJhY3RlciA7IHRoYXQgaXMsIGludGVsbGVjdCANCmhhcyBpbiBoaW17WyYqJl19IGNhc3Qgb2ZmIGFsbCBhbGxlZ2lhbmNlIHRvIHRoZSBtb3JhbCByZWFzb24sIGFuZCBiZWNvbWUgYSBsYXcgdW50byANCml0c2VsZntbJiomXX0sIHNvIHRoYXQgdGhlIG1lcmUgZmFjdCBvZiBoaXMgYmVpbmcgYWJsZSB0byBkbyBhIHRoaW5nIGlzIHN1ZmZpY2llbnQgY2F1c2Uge1smKiZdfQ0KZm9yIGRvaW5nIGl0IFwiIA0KDQpPdGhlbGxvOyBNYWNiZXRoOyBMZWFyLiAyMTUgDQoNClwiIGppbHhjZWxsZW50IHdyZXRjaCAhIHtbJiomXX1QZXJkaXRpb24gY2F0Y2ggbXkgc291bCwgDQpCdXQgSSBkbyBsb3ZlIHRoZWUgISBhbmQgd2hlbiBJIGxvdmUgdGhlZSBub3QsIA0Ke1smKiZdfUNoYW9zIGlzIGNvbWUgYWdhaW4uXCIgDQoNCk90aGVsbG8gZG9lcyBub3QgZmVlbCBoaW1zZWxmIHBsYWNlZCBpbiByaXZhbHJ5IHdpe1smKiZdfXRoIA0KQ2Fzc2lvIGZvciB0aGUgYWZmZWN0aW9uIG9mIGhpcyB3aWZlLiBsYWdvIGhhcyBjb250cml2ZWQgDQp0aGF0IHRoZSBNb297WyYqJl19ciBzaGFsbCBvdmVyaGVhciBoaW0gY29udmVyc2luZyB3aXRoIENhc3NpbyANCmFib3V0IEJpYW5jYS4gQ2Fzc2lvLCBhdCB0aG91Z3tbJiomXX1odCBvZiB0aGUgZXh0cmF2YWdhbnQgcHVyLSANCnN1aXQgb2YgaGltIGJ5IHRoZSBZZW5ldGlhbiBjb3VydGVzYW4sIGxhdWdocyBhe1smKiZdfWxvdWQuIEl0IA0KaXMgdGhlbiB0aGF0IE90aGVsbG8gYnJlYWtzIG91dCB3aXRoIHRoZSBlbnJhZ2VkIGNyeSwgDQpcIkhvdyBzaGFse1smKiZdfWwgSSBtdXJkZXIgaGltLCBsYWdvID9cIiBCdXQgT3RoZWxsbyBzdXBwb3NlZCANCnRoYXQgQ2Fzc2lvIGhhZCBiZWVuIHNwZWFraW5ne1smKiZdfSBvZiBEZXNkZW1vbmEsIGFuZCB0aGF0IA0KaGlzIGxhdWdoIHdhcyBhIHByb2ZhbmUgbW9ja2VyeSBvZiBoZXIgZmFsbC4gSXQgd2F7WyYqJl19cyANCkNhc3Npb1wncyBzdXBwb3NlZCBpZ25vYmxlIHRob3VnaHQgcmVzcGVjdGluZyBEZXNkZW1vbmEsIA0KZXZlbiBtb3JlIHRoYW57WyYqJl19IGplYWxvdXN5LCB3aGljaCBtYWRlIGhpbSBzZWVtIHRvIE90aGVsLSANCmxvIHRvIG1lcml0IG1vcnRhbCB2ZW5nZWFuY2UuIE9yZHtbJiomXX1pbmFyaWx5IE90aGVsbG8gdGhpbmtzIA0KbGl0dGxlIGFib3V0IENhc3Npby4gSGlzIGFnb255IGlzIGNvbmNlbnRyYXRlZCBpbiB0e1smKiZdfWhlIA0KdGhvdWdodCB0aGF0IHRoZSBmYWlyZXN0IHRoaW5nIG9uIGVhcnRoIHNob3VsZCBiZSBmb3VsLCANCnRoYXQgdGhlIGZvdW57WyYqJl19dGFpbiBmcm9tIHdoaWNoIHRoZSBjdXJyZW50IG9mIGhpcyBsaWZlIGhhZCANCnNlZW1lZCB0byBydW4gc28gcHVyZSBhbmQgZnJlZXtbJiomXX0gc2hvdWxkIGJlIA0KDQpcIiBBIGNpc3Rlcm4gZm9yIGZvdWwgdG9hZHMgDQpUbyBrbm90IGFuZCBnZW5kZXIgaW4hXCIgDQoNCkl0IGl7WyYqJl19cyB3aXRoIGFuIGFnb25pemVkIHNlbnNlIG9mIGp1c3RpY2UgdGhhdCBoZSBkZXN0cm95cyANCnRoZSBjcmVhdHVyZSB3aG8gaXMgZHtbJiomXX1lYXJlc3QgdG8gaGltIGluIHRoZSB3b3JsZCwga25vd2luZyANCmNlcnRhaW5seSB0aGF0IHdpdGggaGVycyBoaXMgb3duIHRydWUge1smKiZdfWxpZmUgbXVzdCBjZWFzZS4gDQpOYXksIGl0IGlzIG5vdCB3aXRoIHRoZSBjZXNzYXRpb24gb2YgRGVzZGVtb25hXCdzIGJyZWF0aCANe1smKiZdfQp0aGF0IHRoZSBsaWZlIG9mIE90aGVsbG8gZW5kcyA7IGhlIGlzIGltYWJsZSB0byBzdXJ2aXZlIHRoZSANCmxvc3Mgb2YgZmFpdGh7WyYqJl19IGluIGhlciBwZXJmZWN0IHB1cml0eS4gQWxsIHRoYXQgaGFkIGJlZW4gDQpnbG9yaW91cyBiZWNvbWVzIHJlbW90ZSBhbmQgaW1wb3tbJiomXX1zc2libGUgZm9yIGhpbSBpZiBEZXMtIA0KZGVtb25hIGJlIGZhbHNlLiBXZSBoZWFyIHRoZSBncmVhdCBjaGlsZGxpa2Ugc29iIG9me1smKiZdfSANCk90aGVsbG9cJ3Mgc291bCA6IA0KDQpcIiAwLCBub3csIGZvcmV2ZXIgDQpGYXJld2VsbCB0aGUgdHJhbnF1aWwgbWluZCAhIGZhcntbJiomXX1ld2VsbCBjb250ZW50ICEgDQpGYXJld2VsbCB0aGUgcGx1bWVkIHRyb29wLCBhbmQgdGhlIGJpZyB3YXJzIA0KVGhhdCBtYWtlIGFte1smKiZdfWJpdGlvbiB2aXJ0dWUgIVwiIA0KDQpGcm9tIHRoZSBmaXJzdCBzdWdnZXN0aW9uIG9mIHN1c3BpY2lvbiBieSBoaXMgZW5zbmFyZXIse1smKiZdfSANCg0KMiAxIDYgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KT3RoZWxsbyBpcyBpbXBhdGllbnQgZm9yIGFzc3V7WyYqJl19cmFuY2UsIGFuZCBmaW5kcyBzdXNwZW5zZSBpbiogDQp0b2xlcmFibGUuIFdoeT8gTm90IHN1cmVseSBiZWNhdXNlIGhlIGlzIGVhZ3tbJiomXX1lciB0byANCmNvbnZpY3QgaGlzIHdpZmUgb2YgaW5maWRlbGl0eSA7IGJ1dCByYXRoZXIgYmVjYXVzZSBoZSB3aWxsIA0Kbm90IGFse1smKiZdfWxvdyBoaXMgcGFzc2lvbmF0ZSBkZXNpcmUgdG8gYmVsaWV2ZSBoZXIgcHVyZSB0byANCmFidXNlIGhpbSwgYW5kIHJldGFpbiBoaW17WyYqJl19IGluIGEgZm9vbFwncyBwYXJhZGlzZSwgd2hpbGUgYSANCmdyZWF0IGFnb255IG1heSBwb3NzaWJseSByZW1haW4gYmVmb3JlIGhpbS57WyYqJl19IA0KDQpPZiB0aGUgdHJhZ2ljIHN0b3J5LCB3aGF0IGlzIHRoZSBmaW5hbCBpc3N1ZSA/IFRoZSBjZW4tIA0KdHJhbCBwb2ludCBvZntbJiomXX0gaXRzIHNwaXJpdHVhbCBpbXBvcnQgbGllcyBpbiB0aGUgY29udHJhc3QgYmUtIA0KdHdlZW4gdGhlIHR3byBtZW4sIGxhZ28gYW5ke1smKiZdfSBoaXMgdmljdGltLiBUZ8Kjb14gdyBpdGgga3AucCxuIA0KaW50ZWxsZWN0dWEgbCBmYWN1bHRpZXMgYW5kIG1hbmlmb2xkIGN1bHR7WyYqJl19dXJlIGluIEl0YWwgaWFuVEpjZSzigJQgDQohaVRPc0phaWlpaS50YnJpXl5eZSZhbXA7aiBhZnRlXiBoaXMgZmEgc2hpbyBuIGluIHtbJiomXX1hIHdvcmxkIGZyb20gd2hpY2hfIA0KYWxsIF5WXldeIF5uZCBmbC4xMSBoZnRmbG50eSBhcmZ0IG5oc3AubiB0LiBPdGhlbGxvLCB3e1smKiZdfSBpdEwtaGxnIA0KYiBhcmJhcmljIGluamFwKD9wbnAuZnQgYW5kIHJwZ15dIHJuYSBebmlmaWNlbmNlIG9mIHNvdWwgLCBtdXN0IA17WyYqJl19CmMgZWFzZSB0IE8tbGl2cGkgdGhlICwgbW9tZW50IGhlIGNlYXNlcyB0byByZXRhaW4gZmFpdGggaXUgLXRoZSANCnB1cml0eSBhbntbJiomXX0gZCBnXm9vZG5lc3Mgd2hpY2ggd2VyZSB0byBoaW0gdGhlIGhpZ2ggZXN0IGFuZCANCuKAom1uZ0ZyIHBxbCB0aGl1Z3MgaWlwUXUge1smKiZdfXBecnRKPyAtIE9yLCBpZiBoZSBsaXZlLCBsaWZlIG11c3QgYmUtIA0KY29tZSB0byBoaW0gYSBjcnVlbCBhZ29ueS4gU2hha3NwZXJ7WyYqJl19ZSBjb21wZWxzIHVzIHRvIGFjLSANCmtub3dsZWRnZSB0aGF0IHNlbGYtc2xhdWdodGVyIGlzIGEgcmFwdHVyb3VzIGVuZXJneSDigHtbJiomXX2UIHRoYXQgDQpzdWNoIHByb2xvbmdlZCBhZ29ueSBpcyBqb3kgaW4gY29tcGFyaXNvbiB3aXRoIHRoZSANCmVhcnRobHkgbGlmZS1pe1smKiZdfW4tZGVhdGggb2Ygc3VjaCBhIHNvdWwgYXMgdGhhdCBvZiBsYWdvLiBUaGUgDQpub2JsZSBuYXR1cmUgaXMgdGFrZW4gaW4gdGhlIHR7WyYqJl19b2lscyBiZWNhdXNlIGl0IGlzIG5vYmxlLCANCmxhZ28gc3VzcGVjdHMgaGlzIHdpZmUgb2YgZXZlcnkgYmFzZW5lc3MsIGJ1dCB0aHtbJiomXX1lIHN1c3BpY2lvbiANCmhhcyBubyBvdGhlciBlZmZlY3QgdGhhbiB0byBpbnRlbnNpZnkgaGlzIG1hbGlnbml0eS4gbGFnbyANCmNve1smKiZdfXVsZCBub3QgYmUgY2FwdHVyZWQgYW5kIGNvbnN0cmFpbmVkIHRvIGhlcm9pYyBzdWZmZXJpbmcgDQphbmQgcmFnZS4gVGhlIHNoYW17WyYqJl19ZSBvZiBldmVyeSBiZWluZyB3aG8gYmVhcnMgdGhlIA0KbmFtZSBvZiB3b21hbiBpcyBjcmVkaWJsZSB0byBsYWdvLCBhbmQgeWV0IHtbJiomXX1oZSBjYW4gZ3JhdGUgDQpmcm9tIGhpcyB0aHJvYXQgdGhlIGphcnJpbmcgbXVzaWMgOiANCg0KXCIgQW5kIGxldCBtZSB0aGUgY2FuYXtbJiomXX1raW4gY2xpbmssIGNsaW5rIDsgDQpBbmQgbGV0IG1lIHRoZSBjYW5ha2luIGNsaW5rLlwiIA0KDQpUaGVyZSBpcywgdGhlcmVmcHJlLHtbJiomXX0gU2hha3NwZXJlIHdvdWxkIGhhdmUgdXMgdW5kZXJzdGFuZCwgDQpzb21ldGhpbmcgbW9yZSBpbmltaWNhbCB0byBodW1hbml0eSB0e1smKiZdfWhhbiBzdWZmZXJpbmcg4oCUIA0KbmFtZWx5LCBhbiBpbmNhcGFjaXR5IGZvciBub2JsZSBwYWluLiBUbyBkaWUgYXMgT3RoZWxsbyB7WyYqJl19DQpkaWVzIGlzIGluZGVlZCBncmlldm91cy4gQnV0IHRvIGxpdmUgYXMgbGFnbyBsaXZlcywgZGUtIA0Kdm91cmluZyB0aGUgZHVzdHtbJiomXX0gYW5kIHN0aW5naW5nIOKAlCB0aGlzIGlzIG1vcmUgYXBwYWxsaW5nLiANCg0KT3RoZWxsbzsgTWFjYmV0aDsgTGVhci4gMjE3IA0Ke1smKiZdfQ0KU3VjaCBpcyB0aWwgc3Bpcml0dWFsIG1vdGl2ZSB0aGF0IGNvbnRyb2xzIHRoZSB0cmFnZWR5LiANCkFuZCB0aGUgdmFsaWRpdHl7WyYqJl19IG9mIHRoaXMgdHJ1dGggaXMgZGVtb25zdHJhYmxlIHRvIGV2ZXJ5IA0Kc291bmQgY29uc2NpZW5jZS4gTm8gc3VwZXJuYXR1cmFsIHtbJiomXX1hdXRob3JpdHkgbmVlZHMgdG8gDQpiZSBzdW1tb25lZCB0byBiZWFyIHdpdG5lc3MgdG8gdGhpcyByZWFsaXR5IG9mIGh1bWFuIA0Ke1smKiZdfWxpZmUuIElzVG8gcGFsbGlkIGZsYW1lIG9mIGhlbGwsIG5vIHNwbGVuZG9yIG9mIGRhd25pbmcgDQpoZWF2ZW4sIG5lZWRzIHNob3d7WyYqJl19IGl0c2VsZiBiZXlvbmQgdGhlIHZlcmdlIG9mIGVhcnRoIHRvIA0KaWxsdW1pbmUgdGhpcyB0cnV0aC4gSXQgaXMgYSBwb3J0aW9uIHtbJiomXX1vZiB0aGUgYXNjZXJ0YWluZWQgDQpmYWN0IG9mIGh1bWFuIG5hdHVyZSwgYW5kIG9mIHRoaXMgb3VyIG1vcnRhbCBleGlzdGVuY2Uue1smKiZdfSANClwiV2UgbG9vayB1cG9uIFwiIHRoZSB0cmFnaWMgbG9hZGluZyBvZiB0aGUgYmVkLFwiIGFuZCB3ZSANCnNlZSBsYWdvIGluIHByZXN7WyYqJl19ZW5jZSBvZiB0aGUgcnVpbiBoZSBoYXMgd3JvdWdodC4gV2UgDQphcmUgbm90IGNvbXBlbGxlZCB0byBzZWVrIGZvciBhbnkgcmVzb3tbJiomXX1sdXRpb24gb2YgdGhlc2UgYXAtIA0KcGFyZW50IGRpc2NvcmRzIGluIGFueSBhbGxlZ2VkIGxpZmUgdG8gY29tZS4gVGhhdCBtYXkge1smKiZdfQ0KYWxzbyBiZSA7IHdlIHNoYWxsIGFjY2VwdCBpdCwgaWYgaXQgYmUuIEJ1dCBsb29raW5nIHN0ZXJubHkgDQphbmQgc3RyaWN0bHl7WyYqJl19IGF0IHdoYXQgaXMgbm93IGFjdHVhbCBhbmQgcHJlc2VudCB0byBvdXIgDQpzaWdodCwgd2UgeWV0IHJpc2UgYWJvdmUgZGVzcGFpcntbJiomXX0uIERlc2RlbW9uYVwncyBhZGhlc2lvbiANCnRvIGhlciBodXNiYW5kIGFuZCB0byBsb3ZlIHN1cnZpdmVkIHRoZSB1bHRpbWF0ZSB0cntbJiomXX1pYWwuIA0KT3RoZWxsbyBkaWVzIFwiIHVwb24gYSBraXNzLlwiIEhlIHBlcmNlaXZlcyBoaXMgb3duIA0KY2FsYW1pdG91cyBlcnJvcix7WyYqJl19IGFuZCBoZSByZWNvZ25pemVzIERlc2RlbW9uYSBwdXJlIGFuZCANCmxveWFsIGFzIHNoZSB3YXMuIEdvb2RuZXNzIGlzIGp1c3RpZntbJiomXX1pZWQgb2YgaGVyIGNoaWxkLiBJdCANCmlzIGV2aWwgd2hpY2ggc3VmZmVycyBkZWZlYXQuIEl0IGlzIGxhZ28gd2hvc2Ugd2hvbGUge1smKiZdfWV4LSANCmlzdGVuY2UgaGFzIGJlZW4gbW9zdCBibGluZCwgcHVycG9zZWxlc3MsIGFuZCBtaXNlcmFibGUg4oCUIA0KYSBzdHJ1Z2d7WyYqJl19bGUgYWdhaW5zdCB0aGUgdmlydHVvdXMgcG93ZXJzIG9mIHRoZSB3b3JsZCwgYnkgDQp3aGljaCBhdCBsYXN0IGhlIHN0YW5kcyBjb3tbJiomXX1udmljdGVkIGFuZCBjb25kZW1uZWQuIA0KDQpuLiANCg0KVGhlcmUgaXMgYSBsaW5lIGluIHRoZSBwbGF5IG9mIE1hY2JldGheIHV0e1smKiZdfXRlcmVkIGFzIHRoZSANCmV2ZW5pbmcgc2hhZG93cyBiZWdpbiB0byBnYXRoZXIgb24gdGhlIGRheSBvZiBCYW5xdW9cJ3MgDQptdXJke1smKiZdfWVyLCB3aGljaCB3ZSBtYXkgcmVwZWF0IHRvIG91cnNlbHZlcyBhcyBhIG1vdHRvIG9mIA0KdGhlIGVudGlyZSB0cmFnZWR5LCBcIiBHe1smKiZdfW9vZCB0aGluZ3Mgb2YgZGF5IGJlZ2luIHRvIGRyb29wIFwnXlwnIA0KYW5kIGRyb3dzZS5cIiBJdCBpcyB0aGUgdHJhZ2VkeSBvZiB0aGV7WyYqJl19IHR3aWxpZ2h0IGFuZCB0aGUgDQpzZXR0aW5nLWluIG9mIHRoaWNrIGRhcmtuZXNzIHVwb24gYSBodW1hbiBzb3VsLiBXZSBhc3Npc3tbJiomXX10IA0KYXQgdGhlIHNwZWN0YWNsZSBvZiBhIHRlcnJpYmxlIHN1bnNldCBpbiBmb2xkZWQgY2xvdWRzIG9mIA0KYmxvb2QuIFRvIHRoe1smKiZdfWUgbGFzdCwgaG93ZXZlciwgb25lIHRoaW4gaGFuZFwncy1icmVhZHRoIG9mIA0KbWVsYW5jaG9seSBsaWdodCByZW1haW5zIOKAlCB0e1smKiZdfWhlIHNhZG5lc3Mgb2YgdGhlIGRheSB3aXRoLSANCm91dCBpdHMgc3RyZW5ndGguIE1hY2JldGggaXMgdGhlIHByZXkgb2YgYSBwcm97WyYqJl19Zm91bmQgDQoNCjIgMSA4IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCndvcmxkLSB3ZWFyaW5lc3MuIEFuZCB3aHtbJiomXX1pbGUgYSBodWdlIGVubnVpIHB1cnN1ZXMgY3JpbWUsIA0KdGhlIGNyaW1pbmFsIGlzIG5vdCB5ZXQgaW4gdXR0ZXIgYmxhY2tuZXNze1smKiZdfSBvZiBuaWdodC4gV2hlbiANCnRoZSBwbGF5IG9wZW5zLCB0aGUgc3VuIGlzIGFscmVhZHkgZHJvcHBpbmcgYmVsb3cgdGhlIA0KdmV7WyYqJl19cmdlLiBBbmQgYXMgYXQgc3Vuc2V0IHN0cmFuZ2Ugd2luZHMgYXJpc2UgYW5kIGdhdGhlciANCnRoZSBjbG91ZHMgdG8gd2VzdHdhcntbJiomXX1kIHdpdGggbXlzdGVyaW91cyBwYXVzZSBhbmQgc3Rpci4gDQpzbyB0aGUgcGxheSBvZiBNYWNiZXRoIG9wZW5zIHdpdGggbW92ZW1le1smKiZdfW50IG9mIG15c3RlcmktIA0Kb3VzLCBzcGlyaXR1YWwgcG93ZXJzLCB3aGljaCBhcmUgYXV4aWxpYXJ5IG9mIHRoYXQgYXdmdWwgDQp7WyYqJl19c2hhZG93IHdoaWNoIGZpcnN0IGNyZWVwcyBhbmQgdGhlbiBzdHJpZGVzIGFjcm9zcyB0aGUgDQptb3JhbCBob3Jpem9uLiANCg0KSXtbJiomXX10IG5lZWQgaGFyZGx5IGJlIG9uY2UgbW9yZSByZXBlYXRlZCB0aGF0IHRoZSBXaXRjaGVzIA0Kb2YgTWFjYmV0aCBhcmUgbm90IHRoe1smKiZdfWUgYnJvb20tc3RpY2sgd2l0Y2hlcyBvZiB2dWxnYXIgdHJhLSANCmRpdGlvbi5eIElmIHRoZXkgYXJlIGdyb3Rlc3F1ZSwgdGhleSB7WyYqJl19YXJlIGFsc28gc3VibGltZS4gDQoNCiogVGhlIHRoZW9yeSBvZiBNZXNzcnMuIENsYXJrIGFuZCBXcmlnaHQgKENsYXJlbmRvbiBQcntbJiomXX1lc3MgZWRpdGlvbiBvZiANCk1hY2hldGhcXCB0aGF0IHRoZSBwbGF5IGlzIGFuIGFsdGVyYXRpb24gYnkgTWlkZGxldG9uIG9mIGEgdHtbJiomXX1yYWdlZHkgb2YgU2hhay0gDQpzcGVyZSwgaXMgYWNjZXB0ZWQgYnkgTXIuIEZsZWF5LCBhbmQgY2FycmllZCBmYXJ0aGVyIGludG8ge1smKiZdfWRldGFpbCAoVHJhbnMuIE5ldyANClNoLiBTb2MsIDE4NzQpLiBNci4gRmxlYXkgaXMgb2Ygb3BpbmlvbiB0aGF0IHRoZSB3aXRjaGV7WyYqJl19cyBhcm91bmQgdGhlIGNhbGRyb24gDQooYWN0IGl2Liwgc2MuIDEpIGFyZSBjcmVhdGlvbnMgb2YgU2hha3NwZXJlOyBidXQgaGUgYntbJiomXX1lVWV2ZXMgdGhhdCB0aGV5IGFyZSBlbi0gDQp0aXJlbHkgZGlzdGluY3QgZnJvbSB0aGUgdGhyZWUgXCJ3ZWlyZCBzaXN0ZXJzLFwiIHR7WyYqJl19aGUgTm9ybmFlIG9mIGFjdCBpLiwgc2MuIDMuIA0KSGUgd3JpdGVzIDogXCIgSW4gSG9saW5zaGVkIHdlIGZpbmQgdGhhdCAqIE1hY2J7WyYqJl19ZXRoIGFuZCBCYW5xdW8gd2VyZSBtZXQgYnkgDQppaWogd29tZW4gaW4gc3RyYXVuZ2UgYW5kIGZlcmx5IGFwcGFyZWxsIHJlc2VtYntbJiomXX1saW5nIGNyZWF0dXJlcyBvZiBhbiBlbGRlciANCndvcmxkIFwneSB0aGF0IHRoZXkgdmFuaXNoZWQgOyB0aGF0IGF0IGZpcnN0IGJ5IHtbJiomXX1NYWNiZXRoIGFuZCBCYW5xdW8gKiB0aGV5IHdlcmUgDQpyZXB1dGVkIGJ1dCBzb21lIHZheW5lIGZhbnRhc3RpY2FsbCBpbGx1c2lve1smKiZdfW4sXCcgYnV0IGFmdGVyd2FyZHMgdGhlIGNvbW1vbiANCm9waW5pb24gd2FzIHRoYXQgdGhleSB3ZXJlICogZXl0aGVyIHRoZSB3ZWlye1smKiZdfWQgc2lzdGVycyDigJQgdGhhdCBpcywgeWUgR29kZGVzc2VzIA0Kb2YgZGVzdGluaWUg4oCUIG9yIGVsc2Ugc29tZSBOaW1waGVzIG97WyYqJl19ciBGZWlyaWVzIGVuZGV3ZWQgd2l0aCBrbm93bGVkZ2Ugb2YgDQpwcm9waGVzaWUgYnkgdGhlaXIgTmljcm9tYW50aWNhbGwgc2NpZXtbJiomXX1uY2UgXCcgKGFjdCBpaS4sIHNjLiAyKS4gQnV0IGluIHRoZSBwYXJ0IA0KY29ycmVzcG9uZGluZyB0byBJVi4gaS4sIE1hY2JldGggaXtbJiomXX1zIHdhcm5lZCB0byB0YWtlIGhlZWQgb2YgTWFjZHVmZiBieSAqIGNlci0gDQp0YWluIHd5c2FyZGVzIDtcJyBidXQgaGUgZG9lcyBub3tbJiomXX10IGtpbGwgaGltLCBiZWNhdXNlICogYSBjZXJ0YWluIHdpdGNoIHdob20gaGUgDQpoYWQgaW4gZ3JlYXQgdHJ1c3RcJyBoYWQgZ2l2ZXtbJiomXX1uIGhpbSB0aGUgdHdvIG90aGVyIGVxdWl2b2NhbCBwcmVkaWN0aW9ucy4gDQpOb3csIGl0IGlzIHRvIG1lIGluY3JlZGlibGUgdGhhe1smKiZdfXQgU2hha3NwZXJlLCB3aG8gaW4gdGhlIHBhcnRzIG9mIHRoZSBwbGF5IG5vdCANCnJlamVjdGVkIGJ5IHRoZSBDYW1icmlkZ2UgZWR7WyYqJl19aXRvcnMgbmV2ZXIgdXNlcyB0aGUgd29yZCwgb3IgYWxsdWRlcyB0byB3aXRjaGVzIA0KaW4gYW55IHdheSwgc2hvdWxkIGhhdmUgZHtbJiomXX1lZ3JhZGVkICogeWUgR29kZGVzc2VzIG9mIGRlc3RpbmllIFwnIHRvIHRocmVlIG9sZCANCndvbWVuLCB3aG8gYXJlIGNhbGxlZCBieXtbJiomXX0gUGFkZG9jayBhbmQgR3JpbWFsa2luLCAuIC4gLiBzYWlsIGluIHNpZXZlcywga2lsbCANCkJ3aW5lLCBzZXJ2ZSBIZWNhdGUsIGFue1smKiZdfWQgZGVhbCBpbiBhbGwgdGhlIGNvbW1vbiBjaGFybXMsIGlsbHVzaW9ucywgYW5kIGluLSANCmNhbnRhdGlvbnMgb2YgdnVsZ2FyIHd7WyYqJl19aXRjaGVzLiBUaGUgdGhyZWUsIHdobyAqIGxvb2sgbm90IGxpa2UgdGhlIGluaGFiaXRhbnRzIA0Kb1wnIHRoXCcgZWFydGgsIGFuZCB5e1smKiZdfWV0IGFyZSBvblwndCA7XCcgdGhleSB3aG8gKiBjYW4gbG9vayBpbnRvIHRoZSBzZWVkcyBvZiB0aW1lIGFuZCANCnNheSB3aGljaCBncntbJiomXX1haW4gd2lsbCBncm93IDtcJyB0aGV5IHdobyBcJyBzZWVtIGNvcnBvcmFsLFwnIGJ1dCBeIG1lbHQgaW50byB0aGUgDQphaXIgXCcgbGlrZXtbJiomXX0gKiBidWJibGVzIG9mIHRoZSBlYXJ0aCA7XCcgKiB0aGUgd2V5IHdhcmQgc2lzdGVycyxcJyB3aG8gXCfilqAgbWFrZSB0aGVtLSANCnNle1smKiZdfWx2ZXMgYWlyLFwnIGFuZCBoYXZlICptb3JlIHRoYW4gbW9ydGFsIGtub3dsZWRnZSxcJyBhcmUgbm90IGJlaW5ncyBvZiB0aGlzIA0KQntbJiomXX10YW1wLlwiIE1yLiBGbGVheVwncyBkaWZmaWN1bHR5IGlzIHRoYXQgaW4gSUlJLiBpdi4gMTMzLCBhbmQgSVYuIGkuIDEzNiwgTWFjYmV7WyYqJl19dGggDQpjYWxscyB0aGUgd2l0Y2hlcyBvZiBJVi4gaS4gXCIgdGhlIHdlaXJkIHNpc3RlcnMsXCIgYW5kIGhlIGFja25vd2xlZGdlcyB0e1smKiZdfWhhdCBowqsgDQoNCk90aGVsbG86IE1hY2JldGg7IExlYXIuIDIxOSANCg0KVGhlIHdlaXJkIHNpc3RlcnMgb2Ygb3VyIGRyYW1hdGl7WyYqJl19c3QgbWF5IHRha2UgdGhlaXIgcGxhY2UgDQpiZXNpZGUgdGhlIHRlcnJpYmxlIG9sZCB3b21lbiBvZiBNaWNoYWVsIEFvZ2Vsbywgd3tbJiomXX1obyANCnNwaW4gdGhlIGRlc3RpbmllcyBvZiBtYW4uIFNoYWtzcGVyZSBpcyBubyBtb3JlIGFmcmFpZCANCnRoYW4gTWljaGFlbCBBe1smKiZdfW5nZWxvIG9mIGJlaW5nIHZ1bGdhci4gSXQgaXMgdGhlIGZlZWJsZSwgDQpzZW50aW1lbnRhbC1pZGVhbCBhcnRpc3Qgd2hvIGlzIG57WyYqJl19ZXJ2b3VzIGFib3V0IHRoZSBkaWduaXR5IA0Kb2YgaGlzIGNvbmNlcHRpb25zLCBhbmQgd2hvLCBpbiBhaW1pbmcgYXQgdGhlIGdyZXtbJiomXX1hdCwgYXR0YWlucyANCm9ubHkgdGhlIGdyYW5kaW9zZSA7IGhlIHRoaW5zIGF3YXkgYWxsIHRoYXQgaXMgcG9zaXRpdmUgYW5kIA0Ke1smKiZdfW1hdGVyaWFsLCBpbiB0aGUgaG9wZSBvZiBkaXNjb3ZlcmluZyBzb21lIG5vdmVsdHkgb2Ygc2hhZC0gDQpvd3kgaG9ycm9yLiBCdXR7WyYqJl19IHRoZSBncmVhdCBpZGVhbCBhcnRpc3RzIOKAlCBNaWNoYWVsIEFuZ2VsbywgDQpEYW50ZSwgQmxha2UsIEJlZXRob3ZlbiDigJQgc3tbJiomXX1lZSB0aGluZ3MgZmFyIG1vcmUgZHJlYWRmdWwgDQp0aGFuIHRoZSB2YWd1ZSBob3Jyb3JzIG9mIHRoZSByb21hbnRpY2lzdCA7IHRoe1smKiZdfWV5IGFyZSBwZXItIA0KZmVjdGx5IGZlYXJsZXNzIGluIHRoZWlyIHVzZSBvZiB0aGVeYXRlcmlhbCwgdGhlIGRlZmluaXRlLCANCnR7WyYqJl19aGUgZ3Jvc3MsIHRoZSBzbyAtIGNhbGxlZCB2dWxnYXIuICkgQW5kIHRodXMgU2hha3NwZXJlIA0KZmVhcmxlc3NseSBzaG93ZWQgdXtbJiomXX1zIGhpcyB3ZWlyZCBzaXN0ZXJzLCBcIiB0aGUgR29kZGVzc2VzIG9mIA0KZGVzdGluaWUsXCIgYnJld2luZyBpbmZlcm5hbCBjaGFybXN7WyYqJl19IGluIHRoZWlyIHdpY2tlZCBjYWwtIA0KZHJvbi4gV2UgY2Fubm90IHF1aXRlIGRpc3BlbnNlIGluIHRoaXMgbGlmZSB3aXRoIHJpdHtbJiomXX11YWwtIA0KaXNtLCBhbmQgdGhlIHJpdHVhbGlzbSBvZiBldmlsIGlzIGZvdWwgYW5kIHVnbHkgOyB0aGUgaGVsbC0gDQpicm90aCB3e1smKiZdfWhpY2ggdGhlIFdpdGNoZSBzIGFyZSBjb29raW5nIGJ1YmJsZXMgdXAgd2l0aCBubyANCnJlZmluZWQsIHNwaXJpdHVhbCBwb2lzb257WyYqJl19IDsgdGhlIHF1aW50ZXNzZW5jZSBvZiBtaXNjaGllZiBpcyANCmJlaW5nIGJyZXdlZCBvdXQgb2YgZm91bCB0aGluZ3Mgd2hpY2ggY3tbJiomXX1hbiBiZSBlbnVtZXJhdC0gDQplZDsgdGhpY2sgYW5kIHNsYWIgdGhlIGdydWVsIG11c3QgYmUgbWFkZS4gWWV0IHRoZXNlIA0Kd2Vpe1smKiZdfXJkIHNpc3RlcnMgcmVtYWluIHRlcnJpYmxlIGFuZCBzdWJsaW1lLiBUaGV5IHRpbmdsZSANCmluIGV2ZXJ5IGZpYnJlIHdpdGggZXZ7WyYqJl19aWwgZW5lcmd5LCBhcyB0aGUgdGVtcGVzdCBkb2VzIHdpdGggDQp0aGUgZWxlY3RyaWMgY3VycmVudCA7IHRoZWlyIG1hbGlnbml0eXtbJiomXX0gaXMgaW5leGhhdXN0aWJsZSA7IA0KdGhleSBhcmUgd2VsbHMgb2Ygc2luIHNwcmluZ2luZyB1cCBpbnRvIGV2ZXJsYXN0aW5nIGRle1smKiZdfWF0aCA7IA0KdGhleSBoYXZlIHRoZWlyIHJhcHR1cmVzIGFuZCBlY3N0YXNpZXMgaW4gY3JpbWUgOyB0aGV5IA0Kc25hdGNoIHdpdGh7WyYqJl19IGRlbGlnaHQgYXQgdGhlIHJlbGljcyBvZiBpbXBpZXR5IGFuZCBmb3VsIGRpcy0gDQplYXNlIDsgdGhleSBhcmUgdGhlIGF3ZnVsIHtbJiomXX1pbnNwaXJlcnMgb2YgbXVyZGVyLCBpbnNhbml0eSwgDQpzdWljaWRlLiANCg0KVGhlIHdlaXJkIHNpc3RlcnMsIHNheXMgR2Vydmlue1smKiZdfXVzLCBcIiBhcmUgc2ltcGx5IHRoZSBlbS0gDQpib2RpbWVudCBvZiBpbndhcmQgdGVtcHRhdGlvbi5cIiBUaGV5IGFyZSBzdXJlbHkgbXtbJiomXX11Y2ggDQptb3JlIHRoYW4gdGhpcy4gSWYgd2UgbXVzdCByZWdhcmQgdGhlIGVudGlyZSB1bml2ZXJzZSANCg0KY2Fubm90IGF0IHBye1smKiZdfWVzZW50IHNvbHZlIHRoaXMgZGlmZmljdWx0eS4gSXQgaXMgaGFyZGx5LCBwZXJoYXBzLCBhIHNvdW5kIG1ldGhvZCANCm9mIGNyaXR7WyYqJl19aWNpc20gdG8gaW52ZW50IGFuIGh5cG90aGVzaXMgd2hpY2ggY3JlYXRlcyBhbiBpbnNvbHVibGUgZGlmZmljdWx0eS4gDQoNCjIyMHtbJiomXX0gU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KYXMgYSBtYW5pZmVzdGF0aW9uIG9mIGFuIHVua25vd24gc29tZXdoe1smKiZdfWF0IHdoaWVsaSBsaWVzIA0KYmVoaW5kIGl0LCB3ZSBhcmUgY29tcGVsbGVkIHRvIGFkbWl0IHRoYXQgdGhlcmUgaXMgYW4gDQphcG97WyYqJl19Y2FseXBzZSBvZiBwb3dlciBhdXhpbGlhcnkgdG8gdmljZSwgYXMgcmVhbGx5IGFzIHRoZXJlIA0KaXMgYSBtYW5pZmVzdGF0aW9uIHtbJiomXX1vZiB2aXJ0dW91cyBlbmVyZ3kuIEFsbCB2ZW5lcmFibGUgDQpteXRob2xvZ2llcyBhZG1pdCB0aGlzIGZhY3QuIFRoZSBNZXBoaXN0e1smKiZdfW9waGVsZXMgb2YgDQpHb2V0aGUgcmVtYWlucyBhcyB0aGUgdGVzdGltb255IG9mIG91ciBzY2llbnRpZmljIG5pbmUtIA0KdGVlbnR7WyYqJl19aCBjZW50dXJ5IHVwb24gdGhlIG1hdHRlci4gVGhlIGhpc3Rvcnkgb2YgdGhlIHJhY2UsIA0KYW5kIHRoZSBzb2NpYWwgbWVkaXVtIHtbJiomXX1pbiB3aGljaCB3ZSBsaXZlIGFuZCBicmVhdGhlLCBoYXZlIA0KY3JlYXRlZCBmb3JjZXMgb2YgZ29vZCBhbmQgZXZpbCB3aGljaCBhe1smKiZdfXJlIGluZGVwZW5kZW50IG9mIA0KdGhlIHdpbGwgb2YgZWFjaCBpbmRpdmlkdWFsIG1hbiBhbmQgd29tYW4uIFRoZSBzaW5zIA0Kb2Z7WyYqJl19IHBhc3QgY2VudHVyaWVzIHRhaW50IHRoZSBhdG1vc3BoZXJlIG9mIHRvLWRheS4gV2UgDQptb3ZlIHRocm91Z2ggdGhlIHdvcmxkIHtbJiomXX1zdWJqZWN0IHRvIGFjY3VtdWxhdGVkIGZvcmNlcyANCm9mIGV2aWwgYW5kIG9mIGdvb2Qgb3V0c2lkZSBvdXJzZWx2ZXMuIFdlIGFye1smKiZdfWUgY2F1Z2h0IHVwIA0KYXQgdGltZXMgdXBvbiBhIHN0cmVhbSBvZiB2aWZ0dW91cyBmb3JjZSwgYSBiZW5lZmljZW50IA0KY3VycmV7WyYqJl19bnQgd2hpY2ggYmVhcnMgdXMgb253YXJkIHRvd2FyZHMgYW4gYWJpZGluZy1wbGFjZSANCm9mIGpveSwgb2YgcHVyaXR5LCBhbmQgb3tbJiomXX1mIHNhY3JpZmljZSA7IG9yIGEgY291bnRlci1jdXJyZW50IA0KZHJpZnRzIHVzIHRvd2FyZHMgZGFya25lc3MgYW5kIGNvbGQgYW5ke1smKiZdfSBkZWF0aC4gQW5kIA0KdGhlcmVmb3JlIG5vIGdyZWF0IHJlYWxpc3QgaW4gYXJ0IGhhcyBoZXNpdGF0ZWQgdG8gYWRtaXQgDQp0aGV7WyYqJl19IGV4aXN0ZW5jZSBvZiB3aGF0IHRoZW9sb2dpYW5zIG5hbWUgZGl2aW5lIGdyYWNlLCBhbmQgDQpvZiB3aGF0IHRoZW9sb2dpYW5zIHtbJiomXX1uYW1lIFNhdGFuaWMgdGVtcHRhdGlvbi4gKF4gVGhlcmUgaXMsIA0KaW4gdHJ1dGgsIG5vIHN1Y2ggdGhpbmcgYXMgXCIgbmFrZWQgbXtbJiomXX1hbmhvb2QuXCIgVGhlIGF0LSANCnRlbXB0IHRvIGRpdm9yY2Ugb3Vyc2VsdmVzIGZyb20gdGhlIGxhcmdlIGltcGVyc29uYWwgbGlmZXtbJiomXX0gDQpvZiB0aGUgd29ybGQsIGFuZCB0byBlcmVjdCBvdXJzZWx2ZXMgaW50byBpbmRlcGVuZGVudCANCndpbGxzLCBpcyB0aGUgZHJle1smKiZdfWFtIG9mIHRoZSBpZGVhbGlzdC4pIEFuZCBiZXR3ZWVuIHRoZSBldmlsIA0Kd2l0aGluIGFuZCB0aGUgZXZpbCB3aXRob3V0IHN1YnN7WyYqJl19aXN0cyBhIHRlcnJpYmxlIHN5bXBhdGh5IA0KYW5kIHJlY2lwcm9jaXR5LiBUaGVyZSBpcyBpbiB0aGUgYXRtb3NwaGVyZSBhIHp5bXtbJiomXX1vdGljIA0KcG9pc29uIG9mIHNpbiA7IGFuZCB0aGUgY29uc3RpdHV0aW9uIHdoaWNoIGlzIG1vcmFsbHkgZW4tIA0KZmVlYmxlZCBze1smKiZdfXVwcGxpZXMgYXBwcm9wcmlhdGUgbnV0cmltZW50IGZvciB0aGUgZ2VybXMgb2YgDQpkaXNlYXNlIDsgd2hpbGUgdGhlIGhhcmR5IG17WyYqJl19b3JhbCBuYXR1cmUgcmVwZWxzIHRoZSBzYW1lIA0KZ2VybXMuIE1hY2JldGggaXMgaW5mZWN0ZWQgOyBCYW5xdW8gcGFzc2VzIGZyZXtbJiomXX1lLiogTGV0IA0KdXMsIHRoZW4sIG5vdCBpbnF1aXJlIGFmdGVyIHRoZSBuYW1lcyBvZiB0aGVzZSBmYXRhbCBzaXN0ZXJzLiANCg0Ke1smKiZdfSogXCIgQmFucXVvLiBNZXJjaWZ1bCBwb3dlcnMgDQoNClJlc3RyYWluIGluIG1lIHRoZSBjdXJzZWQgdGhvdWdodHMgdGhhdCBuYXR1e1smKiZdfXJlIA0KR2l2ZXMgd2F5IHRvIGluIHJlcG9zZSAhXCIgDQoNCmYgDQoNCk90aGVsbG87IE1hY2JldGg7IExlYXIuIDIyMSANCg0KTmFte1smKiZdfWVsZXNzIHRoZXkgYXJlLCBhbmQgc2V4bGVzcy4gSXQgaXMgZW5vdWdoIHRvIGtub3cgDQp0aGF0IHN1Y2ggcG93ZXJzIGF1eGlsaWF7WyYqJl19cnkgdG8gdmljZSBkbyBleGlzdCBvdXRzaWRlIG91ci0gDQpzZWx2ZXMsIGFuZCB0aGF0IFNoYWtzcGVyZSB3YXMgc2NpZW50aWZpY3tbJiomXX1hbGx5IGFjY3VyYXRlICUgDQpoaXMgc3RhdGVtZW50IG9mIHRoZSBmYWN0LiANCg0KQnV0IGl0IGlzIGFsc28gYnkgbm8gbWVhbnMge1smKiZdfWRpZmZpY3VsdCB0byBiZWxpZXZlIHRoYXQgaW4gDQp0aGUgbWVyZSBtYXR0ZXIgb2Ygc3VwZXJzdGl0aW9uLCBpbiBhbGwgdGhhdCB7WyYqJl19cmVsYXRlcyB0byBwcmUtIA0Kc2VudGltZW50cywgZHJlYW1zLCBvbWVucywgZ2hvc3QgYmVsaWVmLCBhbmQgc3VjaCBsaWtlLCANCntbJiomXX1TaGFrc3BlcmUgd291bGQgaGF2ZSBmYWlsZWQgdG8gc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzIA0Kb2YgZW5saWdodGVuZWQgcGVye1smKiZdfXNvbnMgb2YgdG8tZGF5LCB3aG8gcmVjZWl2ZSB0aGVpciByZS0gDQpwb3J0cyBvZiB0aGUgdW5pdmVyc2UgdGhyb3VnaCB0aGUgc2N7WyYqJl19aWVudGlmaWMgYXJ0aWNsZSBpbiB0aGUgDQpuZXdlc3QgbWFnYXppbmUgOiANCg0KXCIgVGhlcmUgYXJlIG1vcmUgdGhpbmdzIGluIGh7WyYqJl19ZWF2ZW4gYW5kIGVhcnRoLCBIb3JhdGlvLCANClRoYW4gYXJlIGRyZWFtdCBvZiBpbiB5b3VyIHBoaWxvc29waHkuXCIgDQoNClwiIFRoe1smKiZdfWV5IHNheSBtaXJhY2xlcyBhcmUgcGFzdCBcIiAoTGFmIGV1IGlzIHNwZWFraW5nIGluIEFsbCBcJzUgDQpXZWxsIHRoYXQgRW5kcyBXZXtbJiomXX1sbCkgOyBcIiBhbmQgd2UgaGF2ZSBvdXIgcGhpbG9zb3BoaWNhbCBwZXItIA0Kc29ucywgdG8gbWFrZSBtb2Rlcm4gYW5kIGZhbWlsaXtbJiomXX1hciB0aGluZ3Mgc3VwZXJuYXR1cmFsIA0KYW5kIGNhdXNlbGVzcy4gSGVuY2UgaXMgaXQgdGhhdCB3ZSBtYWtlIHRyaWZsZXMgb2Yge1smKiZdfXRlcnJvcnMgOyANCmVuc2NvbmNpbmcgb3Vyc2VsdmVzIGludG8gc2VlbWluZyBrbm93bGVkZ2UsIHdoZW4gd2UgDQpzaG91bGQgc3V7WyYqJl19Ym1pdCBvdXJzZWx2ZXMgdG8gYW4gdW5rbm93biBmZWFyLlwnXCcgKiBIb3ctIA0KZXZlciB3ZSBtYXkgYWNjb3VudCBmb3IgaXQsIHRoe1smKiZdfWUgZmFjdCBpcyB1bnF1ZXN0aW9uYWJsZSANCnRoYXQgc29tZSBvZiB0aGUgcmljaGVzdCBjcmVhdGl2ZSBuYXR1cmVzIG9mIHRoZSB7WyYqJl19d29ybGQgDQpoYXZlIGFsbCB0aGVpciBsaXZlcyBiZWVuIGJlbGlldmVycywgaWYgbm90IHdpdGggdGhlaXIgaW50ZWwtIA0KbGVjdHtbJiomXX0sIGF0IGxlYXN0IHdpdGggdGhlaXIgaW5zdGluY3RpdmUgZmVlbGluZ3MgYW5kIHRoZWlyIGltLSANCmFnaW5hdGlvbiwgaW4gbXVje1smKiZdfWggb2YgdGhlIG9sZC13aXZlc1wnIGxvcmUgb2YgdGhlIG51cnNlcnkuIA0KU2NvdHQgZG9lcyBub3QgYXMgYSBzY2VwdGljIG1ha2Uge1smKiZdfXVzZSBpbiBoaXMgbm92ZWxzIG9mIA0KZ2hvc3RseSBhbmQgc3VwZXJuYXR1cmFsIG1hY2hpbmVyeSBtZXJlbHkgZm9yIHRoZSBzYWt7WyYqJl19ZSANCm9mIHByb2R1Y2luZyBjZXJ0YWluIGFydGlzdGljIGVmZmVjdHMuIEhlIHJldGFpbmVkIGF0IGxlYXN0IA0KYSBoYWxmIC1mYXtbJiomXX1pdGggaW4gdGhlIEdvdGhpYyBteXRob2xvZ3kgb2YgdGhlIE5vcnRoLiANCkdvZXRoZSBmb3IgYSB0aW1lIGRldm90ZWQgaGltc2Vse1smKiZdfWYgdG8gdGhlIHB1cnN1aXQgb2YgYWwtIA0KY2hlbXkuIEluIFwiIFRoZSBTcGFuaXNoIEd5cHN5IFwiIG9mIEdlb3JnZSBFbGlvdCwgZntbJiomXX1yb20gDQp0aGUgbmVja2xhY2Ugb2YgWmFyY2EgZGltIG1hc3RlcmluZyBwb3dlcnMsIGJsaW5kIHlldCANCnN0cm9uZywgcGFzcyBpe1smKiZdfW50byBoaXMgZGF1Z2h0ZXJcJ3Mgd2lsbCA7IGFuZCBpbiB0aGF0IHBvZW0gDQp0aGUgc2NpZW5jZSBvZiBtb2Rlcm4gcHN5Y2hvbG9ne1smKiZdfXkgYWNjZXB0cyBjZXJ0YWluIG9mIHRoZSANCg0KKiBBY3QgaWkuLCBzYy4gOC4gDQoNCjIgMjIgU2hha3NwZXJlIOKAlCBIaXMgTWl7WyYqJl19bmQgYW5kIEFydC4gDQoNCmZhY3RzIG9mIG9sZCBzdXBlcnN0aXRpb25zIOKAlCBhY2NlcHRzIHRoZW0gYW5kIGV4cGxhaW5zIA0KdHtbJiomXX1oZW0uIFdlIHNsaWdodGVyIGFuZCBzbWFsbGVyIG5hdHVyZXMgY2FuIGRlcHJpdmUgb3VyLSANCnNlbHZlcyBhbHRvZ2V0aGVyIG9me1smKiZdfSB0aGUgc2Vuc2UgZm9yIHN1Y2ggcGhlbm9tZW5hIDsgd2UgDQpjYW4gZWxldmF0ZSBvdXJzZWx2ZXMgaW50byBhIHJhcmUgYXRtb3N7WyYqJl19cGhlcmUgb2YgaW50ZWxsZWN0LSANCnVhbGl0eSBhbmQgaW5jcmVkdWxpdHkuIFRoZSB3aWRlciBhbmQgcmljaGVyIG5hdHVyZXMgb3tbJiomXX1mIA0KY3JlYXRpdmUgYXJ0aXN0cyBoYXZlIHJlY2VpdmVkIHRvbyBsYXJnZSBhbiBpbmhlcml0YW5jZSANCmZyb20gdGhlIHJhY2Use1smKiZdfSBhbmQgaGF2ZSB0b28gZnVsbHkgYWJzb3JiZWQgYWxsIHRoZSBpbmZsdS0gDQplbmNlcyBvZiB0aGVpciBlbnZpcm9ubWVudCBmb3J7WyYqJl19IHRoaXMgdG8gYmUgcG9zc2libGUgaW4gdGhlaXIgDQpjYXNlLiggV2hpbGUgZGltIHJlY29sbGVjdGlvbnMgYW5kIGZvcmVmZWVsaXtbJiomXX1uZ3MgaGF1bnQgdGhlaXIgDQpibG9vZCwgdGhleSBjYW5ub3QgZW5jbG9zZSB0aGVtc2VsdmVzIGluIGEgbGl0dGxlIHBpbmZvbGQge1smKiZdfQ0Kb2YgZGVtb25zdHJhYmxlIGtub3dsZWRnZSBhbmQgY2FsbCBpdCB0aGUgdW5pdmVyc2UuXCdeIA0KDQpcIiBUaGUgdHJ1ZSByZWFzb3tbJiomXX1uIGZvciB0aGUgZmlyc3QgYXBwZWFyYW5jZSBvZl5edGhlIA0KV2l0Y2hlcyxcIiBDb2xlcmlkZ2UgaGFzIHNhaWQsIFwiIGlzIHRvIHN7WyYqJl19dHJpa2UgdGhlIGtleS1ub3RlIA0Kb2YgdGhlIGNoYXJhY3RlciBvZiB0aGUgd2hvbGUgZHJhbWEuXCIgVGhleSBhcHBlYXIgaW4gYSB7WyYqJl19DQpkZXNlcnQgcGxhY2UsIHdpdGggdGh1bmRlciBhbmQgbGlnaHRuaW5nIDsgaXQgaXMgdGhlIGJhcnJlbiANCmFuZCBibGFzdGVkIHtbJiomXX1wbGFjZSB3aGVyZSBldmlsIGhhcyBvYnRhaW5lZCB0aGUgbWFzdGVyeSBvZiANCnRoaW5ncy4gT2JzZXJ2ZSB0aGF0IHRoZSBsYXN0e1smKiZdfSB3b3JkcyBvZiB0aGUgV2l0Y2hlcywgaW4gDQp0aGUgb3BlbmluZyBzY2VuZSBvZiB0aGUgcGxheSwgYXJlIHRoZSBmaXJzdCB3b3J7WyYqJl19ZHMgd2hpY2ggDQpNYWNiZXRoIGhpbXNlbGYgdXR0ZXJzLCANCg0KXCIgRmFpciBpcyBmb3VsLCBhbmQgZm91bCBpcyBmIGFpXiBJZiB7WyYqJl19DQoNCkhvdmVyIHRocm91Z2ggdGhlIGZvZyBhbmQgZmlsdGh5IGFpci5cIiAqIA0KDQpNYWNiZXRoLiBcIiBTbyBmb3VsIGFuZCBmYWlye1smKiZdfSBhIGRheSBJIGhhdmUgbm90IHNlZW4uXCIgDQpTaGFrc3BlcmUgaW50aW1hdGVzIGJ5IHRoaXMgdGhhdCBhbHRob3VnaCBNYWNiZXRoe1smKiZdfSBoYXMgDQpub3QgeWV0IHNldCBleWVzIHVwb24gdGhlc2UgaGFncywgdGhlIGNvbm5lY3Rpb24gaXMgYWxyZWFkeSANCmVzdGFibGl7WyYqJl19c2hlZCBiZXR3ZWVuIGhpcyBzb3VsIGFuZCB0aGVtLiBUaGVpciBzcGVsbHMgaGF2ZSANCmFscmVhZHkgd3JvdWdodCB1cG9uIGhpc3tbJiomXX0gYmxvb2QuIFdoZW4gdGhlIHRocmVlIHNpc3RlcnMgDQptZWV0IE1hY2JldGggYW5kIEJhbnF1byB1cG9uIHRoZSBoZWF0aCwgaXQge1smKiZdfWlzIEJhbnF1byANCnRvIHdob20gdGhleSBhcmUgZmlyc3QgdmlzaWJsZSBpbiB0aGUgZ3JheSwgbm9ydGhlcm4gYWlyLiANClRvIEJ7WyYqJl19YW5xdW8gdGhleSBhcmUgb2JqZWN0aXZlIOKAlCB0aGV5IGFyZSBvdXRzaWRlIGhpbXNlbGYsIA0KYW5kIGhlIGNhbiBvYnNlcnZlIHtbJiomXX1hbmQgZGVzY3JpYmUgdGhlaXIgc3RyYW5nZSBhc3BlY3QsIA0KdGhlaXIgd2lsZCBhdHRpcmUsIGFuZCB0aGVpciBteXN0ZXJpb3Vze1smKiZdfSBnZXN0dXJlLiBNYWNiZXRoIA0KaXMgcmFwdCBpbiBzaWxlbmNlLCBhbmQgdGhlbiB3aXRoIGVhZ2VyIGxvbmdpbmcgZGVtYW5kcyx7WyYqJl19IGEgDQpcIiBTcGVhayBpZiB5b3UgY2FuIDogd2hhdCBhcmUgeW91ID9cIiA7IFdoZW4gdGhleSBoYXZlIFxcIA0KDQoqIFdvcmRzIHV0dHtbJiomXX1lcmVkIGJ5IGFsbCB0aHJlZSB3aXRjaGVzLCBhZnRlciBlYWNoIGhhcyBzaW5nbHkgc3Bva2VuIHRocmljZS4gDQoNCl4gDQoNCl4ge1smKiZdfQ0KDQpPdGhlbGxvOyBNYWNiZXRoOyBMZWFyLiAyMjMgDQoNCmdpdmVuIGhpbSB0aGUgdGhyZWUgaGFpbHMg4oCUIGFzIEdsYW1pcyx7WyYqJl19IGFzIENhd2RvciwgYW5kIGFzIA0KS2luZyA7IHRoZSBoYWlsIG9mIHRoZSBwYXN0LCBvZiB0aGUgcHJlc2VudCwgb2YgdGhlIGZ1dHtbJiomXX11cmUg4oCUIOKAoiANCk1hY2JldGggc3RhcnRzLiBcIiBJdCBpcyBhIGZ1bGwgcmV2ZWxhdGlvbiBvZiBoaXMgY3JpbWluYWwgDQphcHtbJiomXX10aXR1ZGVzL1wnIE1yLiBIdWRzb24gaGFzIHdlbGwgc2FpZCwgXCIgdGhhdCBzbyBzdGFydGxlcyANCmFuZCBzdXJwcmlzZXMgaGltIGl7WyYqJl19bnRvIGEgcmFwdHVyZSBvZiBtZWRpdGF0aW9uLlwiIEFuZCwgDQpiZXNpZGVzIHRoaXMsIChNYWNiZXRoIGlzIHN0YXJ0bGVkIHRvIGZ7WyYqJl19aW5kIHRoYXQgdGhlcmUgaXMgYSANCnRlcnJpYmxlIGNvcnJlc3BvbmRlbmNlIGVzdGFibGlzaGVkIGJldHdlZW4gdGhlIGJhc2VyIHtbJiomXX1pbi0gDQpzdGluY3RzIG9mIGhpcyBvd24gaGVhcnQgYW5kIGNlcnRhaW4gYXdmdWwgZXh0ZXJuYWwgYWdlbi0gDQpjaWVzIG9mIGV2e1smKiZdfWlsLikgDQoNCihTaGFrc3BlcmUgZG9lcyBub3QgYmVsaWV2ZSBpbiBhbnkgc3VkZGVuIHRyYW5zZm9ybWEtIA0KdGlvbiBvZiBhIG57WyYqJl19b2JsZSBhbmQgbG95YWwgc291bCBpbnRvIHRoYXQgb2YgYSB0cmFpdG9yIGFuZCANCm11cmRlcmVyLi8gQXQgdGhlIG91dHNldCBNYXtbJiomXX1jYmV0aCBwb3NzZXNzZXMgbm8gcmVhbCBmaWRlbC0gDQppdHkgdG8gdGhpbmdzIHRoYXQgYXJlIHRydWUsIGhvbmVzdCwganVzdCwge1smKiZdfXB1cmUsIGxvdmVseS4gSGUgDQppcyBzaW1wbHkgbm90IHlldCBpbiBhbGxpYW5jZSB3aXRoIHRoZSBwb3dlcnMgb2YgZXZpbC4gDQp7WyYqJl19SGUgaGFzIGFwdGl0dWRlcyBmb3IgZ29vZG5lc3MgYW5kIGFwdGl0dWRlcyBmb3IgY3JpbWUuIA0KKCBTaGFrc3BlcmUgZmVsdCBwcntbJiomXX1vZm91bmRseSB0aGF0IHRoaXMgY2FyZWxlc3MgYXR0aXR1ZGUgb2YgDQpzdXNwZW5zZSBvciBpbmRpZmZlcmVuY2UgYmV0d2VlbiB2e1smKiZdfWlydHVlIGFuZCB2aWNlIGNhbm5vdCANCmNvbnRpbnVlIGxvbmdeIFRoZSBraW5nZG9tIG9mIGhlYXZlbiBzdWZmZXJzIHZpb2xlbmN7WyYqJl19ZSwgDQphbmQgdGhlIHZpb2xlbnQgdGFrZSBpdCBieSBmb3JjZS4gVGhvc2Ugd2hvIGxhY2sgZW5lcmd5IA0Kb2YgZ29vZG5lc3MsIHtbJiomXX1hbmQgZHJvcCBpbnRvIGEgbGFuZ3VpZCBuZXV0cmFsaXR5IGJldHdlZW4gDQp0aGUgYW50YWdvbmlzdCBzcGlyaXR1YWwgZm9yY2Vze1smKiZdfSBvZiB0aGUgd29ybGQsIG11c3Qgc2VydmUgDQp0aGUgZGV2aWwgYXMgc2xhdmVzIGlmIHRoZXkgd2lsbCBub3QgZGVjaWRlIHRvIHN7WyYqJl19ZXJ2ZSBHb2QgYXMgDQpmcmVlbWVuLiANCg0KQnV0IGJlc2lkZSB0aGUgdmFndWUgeWV0IG1hc3RlcmluZyBpbnNwaXJhdGlvbiBvZntbJiomXX0gDQpjcmltZSByZWNlaXZlZCBmcm9tIHRoZSBXaXRjaGVzLCB0aGVyZSBpcywgdGhlIG1vcmUgZGVmaS0gDQpuaXRlIGluc3BpcmF0e1smKiZdfWlvbiByZWNlaXZlZCBmcm9tIGhpcyB3aWZlLiBRZF5hY2JldGggaXMgZXgtIA0KY2l0YWJseSBpbWFnaW5hdGl2ZSwgYW5kIGhpcyB7WyYqJl19aW1hZ2luYXRpb24gYWx0ZXJuYXRlbHkgc3RpbS0gDQp1bGF0ZXMgYW5kIGVuZmVlYmxlcyBoaW0uIFRoZSBmYWN0cyBpbiB0aGVpcntbJiomXX0gY2xlYXItY3V0IA0Kb3V0bGluZSBkaXNhcHBlYXIgaW4gdGhlIGRpbSBhdG1vc3BoZXJlIG9mIHN1cm1pc2UsIGRlLSANCnNpcmUse1smKiZdfSBmZWFyLCBob3BlLCB3aGljaCB0aGUgc3Bpcml0IG9mIE1hY2JldGggZWZmdXNlcyBhcm91bmQgDQp0aGUgZmFjdC4gQnV0IGhpcyB7WyYqJl19d2lmZSBzZWVzIHRoaW5ncyBpbiB0aGUgY2xlYXJlc3QgYW5kIA0KbW9zdCBkZWZpbml0ZSBvdXRsaW5lLiApIEhlciBkZWxpY2F0ZXtbJiomXX0gZnJhbWUgaXMgZmlsbGVkIHdpdGggDQpoaWdoLXN0cnVuZyBuZXJ2b3VzIGVuZXJneS5cIl4gV2l0aCBoZXIgdG8gcGVyY2VpdmUgaXtbJiomXX1zIA0KDQplXCIgQWNjb3JkaW5nIHRvIG15IG5vdGlvbixcIiBNcnMuIFNpZGRvbnMgd3JvdGUsIFwiIFtMYWR5IE1hY2JldGhcJ3MgYmVhdXtbJiomXX0sIA0KaXMgb2YgdGhhdCBjaGFyYWN0ZXIgd2hpY2ggSSBiZWxpZXZlIGlzIGdlbmVyYWxseSBhbGxvd2VkIHRvIGJlIG1vc3QgY2Fwe1smKiZdfS0gDQoNCjIyNCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpmb3J0aHdpdGggdG8gZGVjaWRlLCB0byBkZWNpZGV7WyYqJl19IGlzIHRvIGFjdC4pIEhhdmluZyByZXNvbHZlZCANCnVwb24gaGVyIGVuZCwgYSBwcmFjdGljYWwgbG9naWMgY29udmluY2VzIGhlcntbJiomXX0gdGhhdCB0aGUgDQptZWFucyBhcmUgaW1wbGllZCBhbmQgZGV0ZXJtaW5lZC4gaU1hY2JldGggcmVzb2x2ZXMsIA0KYW5kIGZhbHRle1smKiZdfXJzIGJhY2sgZnJvbSBhY3Rpb24gO3Ygbm93IGhlIGlzIHJlc3RyYWluZWQgYnkgaGlzIA0KaW1hZ2luYXRpb24sIG5vdyBieSBoaXN7WyYqJl19IGZlYXJzLCBub3cgYnkgaGlzIGxpbmdlcmluZyB2ZWwtIA0KbGVpdGllcyB0b3dhcmRzIGEgbG95YWwgYW5kIGhvbm9yYWJsZSBleHtbJiomXX1pc3RlbmNlLiBIZSBpcyANCnVuYWJsZSB0byBrZWVwIGluIGNoZWNrIG9yIHB1dCB1bmRlciByZXN0cmFpbnQgYW55IG9uZSANCm9me1smKiZdfSB0aGUgdmFyaW91cyBpbmNvaGVyZW50IHBvd2VycyBvZiBoaXMgbmF0dXJlLCB3aGljaCANCmltcGVkZSBhbmQgZW1iYXJyYXNzIGV7WyYqJl19YWNoIHRoZSBhY3Rpb24gb2YgdGhlIG90aGVyLCBkTGFkeSANCk1hY2JldGggZ2FpbnMsIGZvciB0aGUgdGltZSwgc3VmZmljaWVudHtbJiomXX0gc3RyZW5ndGggYnkgdGhyb3ctIA0KaW5nIGhlcnNlbGYgcGFzc2lvbmF0ZWx5IGludG8gYSBzaW5nbGUgcHVycG9zZSwgYW5kIGJ5e1smKiZdfSByZXMtIA0Kb2x1dGVseSByZXByZXNzaW5nIGFsbCB0aGF0IGlzIGluY29uc2lzdGVudCB3aXRoIHRoYXQgcHVyLSANCnBvc2UuIEl7WyYqJl19bnRvIHRoZSBzZXJ2aWNlIG9mIGV2aWwgc2hlIGNhcnJpZXMgc29tZSBvZiB0aGUgDQppbnRlbnNpdHkgYW5kIGVuZXJneSBvZiBhc3tbJiomXX1jZXRpY2lzbSDigJQgc2hlIGN1dHMgb2ZmIGZyb20gaGVyLSANCnNlbGYgaGVyIGJldHRlciBuYXR1cmUsIHNoZSB5aWVsZHMgdG8ge1smKiZdfW5vIHdlYWsgcGFsdGVyaW5nIA0Kd2l0aCBjb25zY2llbmNlLiBcIkkgaGF2ZSBnaXZlbiBzdWNrLFwiIHNoZSBleGNsYWltcywgDQpcImF7WyYqJl19bmQga25vdyBob3cgdGVuZGVyIFwndGlzIHRvIGxvdmUgdGhlIGJhYmUgdGhhdCBtaWxrcyANCm1lLlwiIFNoZSBpcyB1bmFibGUgdG8ge1smKiZdfXN0YWIgRHVuY2FuIGJlY2F1c2UgaGUgcmVzZW1ibGVzIA0KaGVyIGZhdGhlciBpbiBoaXMgc2xlZXAgOyBzaGUgaXMgYXBwYWxsZWR7WyYqJl19IGJ5IHRoZSBjb3Bpb3VzIA0KYmxvb2QgaW4gd2hpY2ggdGhlIG9sZCBtYW4gbGllcywgYW5kIHRoZSBob3Jyb3Igb2YgdGhlIA0Kc3tbJiomXX1pZ2h0IGNsaW5ncyB0byBoZXIgbWVtb3J5OyB0aGUgc21lbGwgb2YgdGhlIGJsb29kIGlzIA0KaGF0ZWZ1bCB0byBoZXIsIGFuZCBhe1smKiZdfWxtb3N0IGluc3VwcG9ydGFibGU7IHNoZSBoYWQgbm90IGJlZW4gDQp3aXRob3V0IGFwcHJlaGVuc2lvbiB0aGF0IGhlciBmZW1pbml7WyYqJl19bmUgbmF0dXJlIG1pZ2h0IGZhaWwgDQp0byBjYXJyeSBoZXIgdGhyb3VnaCB0aGUgdGVycmlibGUgb3JkZWFsLCB0aHJvdWdoIHdoaXtbJiomXX1jaCANCnNoZSB5ZXQgcmVzb2x2ZWQgdGhhdCBpdCBzaG91bGQgYmUgY29tcGVsbGVkIHRvIHBhc3MuIFNoZSANCm11c3Qgbm90IHdhe1smKiZdfXN0ZSBhbiBhdG9tIG9mIGhlciBzdHJlbmd0aCBvZiB3aWxsLCB3aGljaCANCmhhcyB0byBzZXJ2ZSBmb3IgdHdvIG11cmRlcmVycyB7WyYqJl194oCUIGZvciBoZXIgaHVzYmFuZCBhcyB3ZWxsIA0KYXMgZm9yIGhlcnNlbGYuIFNoZSBwdXRzIGludG8gcmVxdWlzaXRpb24sIHdpdHtbJiomXX1oIHRoZSBhaWQgb2YgDQoNCnRpdmF0aW5nIHRvIHRoZSBvdGhlciBzZXgg4oCUIGZhaXIsIGZlbWluaW5lLCBuYXksIHBlcmhhcHMge1smKiZdfWV2ZW4gZnJhZ2lsZS5cIiBEci4gDQpCdWNrbmlsbCAoYmVmb3JlIGhlIHdhcyBhd2FyZSB0aGF0IE1ycy4gU2lkZG9ucyBoZWxkIGEge1smKiZdfXNpbWlsYXIgb3BpbmlvbikgDQp3cm90ZSwgXCIgTGFkeSBNYWNiZXRoIHdhcyBhIGxhZHkgYmVhdXRpZnVsIGFuZCBkZWxpY2F0ZSwge1smKiZdfXdob3NlIG9uZSB2aXZpZCANCnBhc3Npb24gcHJvdmVzIHRoYXQgaGVyIG9yZ2FuaXphdGlvbiB3YXMgaW5zdGluY3Qgd2l0aCBuZXJ7WyYqJl19dmUgZm9yY2UsIHVub3AtIA0KcHJlc3NlZCBieSB3ZWlnaHQgb2YgZmxlc2guIFByb2JhYmx5IHNoZSB3YXMgc21hbGwgOyBmb3IgaXtbJiomXX10IGlzIHRoZSBzbWFsbGVyIA0KQm9ydCBvZiB3b21hbiB3aG9zZSBlbW90aW9uYWwgZmlyZSBpcyB0aGUgbW9zdCBmaWVyY2UsIGFue1smKiZdfWQgc2hlIGhlcnNlbGYgYmVhcnMgDQppbWNvbnNjaW91cyB0ZXN0aW1vbnkgdG8gdGhlIGZhY3QgdGhhdCBoZXIgaGFuZCB3YXMgbGl7WyYqJl19dHRsZSBcIiAoXCIgTWFkIEZvbGslUyANClNoYWtlc3BlYXJlLFwiIHAuIDQ1KS4gU2hlIGlzIE1hY2JldGhcJ3MgXCIgZGVhcmVzdCBjaHVje1smKiZdfWsuXCIgDQoNCk90aGVsbG87IE1hY2JldGg7IExlYXIuIDIyNSANCg0Kd2luZSBhbmQgb2Ygc3RpbXVsYW50IHdvcmRzLCB0aGUgcmVze1smKiZdfWVydmUgb2YgbmVydm91cyBmb3JjZSANCndoaWNoIGxheSB1bnVzZWQuIEpTVG8gd2l0Y2hlcyBoYXZlIGdpdmVuIGhlciBcIiBIYWlse1smKiZdfSA7XCIgDQpubyBhaXJ5IGRhZ2dlciBtYXJzaGFscyBoZXIgdGhlIHdheSB0aGF0IHNoZSBpcyBnb2luZyA7IA0Kbm9yIGlzIHNoZSBhe1smKiZdfWZ0ZXJ3YXJkcyBoYXVudGVkIGJ5IHRoZSB0ZXJyaWJsZSB2aXNpb24gb2YgDQpCYW5xdW9cJ3MgZ29yeSBoZWFkLiBBcyBsb25nIGFze1smKiZdfSBoZXIgd2lsbCByZW1haW5zIGhlciANCl4gb3duLCBzaGUgY2FuIHRocm93IGhlcnNlbGYgdXBvbiBleHRlcm5hbCBmYWN0cywgYW57WyYqJl19ZCBtYWluLSANCnRhaW4gaGVyc2VsZiBpbiByZWxhdGlvbiB3aXRoIHRoZSBkZWZpbml0ZSwgYWN0dWFsIHN1cnJvdW5kLSANCmluZ3tbJiomXX1zIDteaXQgaXMgaW4gaGVyIHNsZWVwLCB3aGVuIHRoZSB3aWxsIGlzIGluY2FwYWJsZSBvZiANCmFjdGlvbiwgdGhhdCBzaGUgaXMge1smKiZdfXBlcnNlY3V0ZWQgYnkgdGhlIHBhc3ROd2hpY2ggcGVycGV0dS0gDQphbGx5IHJlbmV3cyBpdHNlbGYsIG5vdCBpbiBnaG9zdGx5IHN7WyYqJl19aGFwZXMsIGJ1dCBieSB0aGUgaW0tIA0KYWdpbmVkIHJlY3VycmVuY2Ugb2YgcmVhbCBhbmQgdGVycmlibGUgaW5jaWRlbnRzLiANCntbJiomXX0NClRoZSBmZWFycyBvZiBMYWR5IE1hY2JldGggdXBvbiB0aGUgbmlnaHQgb2YgRHVuLSANCmNhblwncyBtdXJkZXIgYXJlIHRoZSBkZXtbJiomXX1maW5pdGUgb25lcywgdGhhdCB0aGUgbXVyZGVyZXJzIA0KbWF5IGJlIGRldGVjdGVkIDsgdGhhdCBzb21lIG9taXNzaW9uIGluIHRoe1smKiZdfWUgcHJlYXJyYW5nZWQgDQpwbGFuIG1heSBvY2N1cjsgdGhhdCBzaGUgb3IgaGVyIGh1c2JhbmQgbWF5IGJlIHN1bS0gDQptb25lZCB7WyYqJl19dG8gYXBwZWFyIGJlZm9yZSB0aGUgdHJhY2VzIG9mIHRoZWlyIGNyaW1lIGhhdmUgDQpiZWVuIHJlbW92ZWQuIE1vcmUgYXdmdWwgY3tbJiomXX1vbnNpZGVyYXRpb25zIHdvdWxkIHByZXNzIA0KaW4gdXBvbiBoZXIgYW5kIG92ZXJ3aGVsbSBoZXIgc2FuaXR5LCBidXQgdGhhdCBze1smKiZdfWhlIGZvcmMtIA0KaWJseSByZXBlbHMgdGhlbSBmb3IgdGhlIHRpbWUgOiANCg0KXCIgVGhlc2UgZGVlZHMgbXVzdCBub3QgYmUgdGhve1smKiZdfXVnaHQgDQpBZnRlciB0aGVzZSB3YXlzIDsgc28sIGl0IHdpbGwgbWFrZSB1cyBtYWQuXCIgDQoNClRvIGhlciB0aGUgc2lnaHQgb2Yge1smKiZdfUR1bmNhbiBkZWFkIGlzIGFeIHRlcnJpYmxlIGFzIHRvIE1hYy0gDQpiZXRoIDsgYnV0IHNoZSB0YWtlcyB0aGUgZGFnZ2VyIGZyb217WyYqJl19IGhlciBodXNiYW5kLCBhbmQsIA0Kd2l0aCBhIGZvcmNlZCBqZXN0LCBoaWRlb3VzIGluIHRoZSBzZWxmLXZpb2xlbmNlIHdoaWNoIHtbJiomXX1pdCANCmltcGxpZXMsIHNoZSBzdGVwcyBmb3J0aCBpbnRvIHRoZSBkYXJrIGNvcnJpZG9yIDogDQoNClwiIElmIGhlIGRvIGJsZWVkLHtbJiomXX0gDQoxKjExIGdpbGQgdGhlIGZhY2VzIG9mIHRoZSBncm9vbXMgd2l0aGFsIDsgDQpGb3IgaXQgbXVzdCBzZWVtIHRoZWlyIGd1aWx0e1smKiZdfS5cIiANCg0KXCIgQSBwbGF5IG9mIGZhbmN5IGhlcmUgaXMgbGlrZSBhIGdsZWFtIG9mIGdoYXN0bHkgc3VuLSANCnNoaW5lIHN0cmlraXtbJiomXX1uZyBhY3Jvc3MgYSBzdG9ybXkgbGFuZHNjYXBlLlwiIF4gVGhlIGtub2NrLSANCmluZyBhdCB0aGUgZ2F0ZSBjbGFzaGVzIHVwb24gaHtbJiomXX1lciBvdmVyc3RyYWluZWQgbmVydmVzIGFuZCANCnRocmlsbHMgaGVyIDsgYnV0IHNoZSBoYXMgZGV0ZXJtaW5hdGlvbiBhbmQgZW5le1smKiZdfXJneSB0byBkaS0gDQpyZWN0IHRoZSBhY3Rpb25zIG9mIE1hY2JldGggYW5kIHJvdXNlIGhpbSBmcm9tIHRoZSBtb29kIA0KDQoqIE17WyYqJl19YWRiZXRcXCBDbGFyZW5kb24gUHJlc3MgZWRpdGlvbiwgcCwgMTA4Ll4gDQoxNiANCg0KMiAyNiBTaGFrc3BlcmUg4oCUIEhpcyBNaW57WyYqJl19ZCBhbmQgQXJ0LiANCg0Kb2YgYWJqZWN0IGRlcHJlc3Npb24gd2hpY2ggc3VjY2VlZGVkIGhpcyBjcmltZS4gQSB3aGl0ZSANCmZsYXtbJiomXX1tZSBvZiByZXNvaGl0aW9uIGdsb3dzIHRocm91Z2ggaGVyIGRlbGljYXRlIG9yZ2FuaXphLSANCnRpb24sIGxpa2UgbGlnaHQgdGhye1smKiZdfW91Z2ggYW4gYWxhYmFzdGVyIGxhbXAgOiANCg0KXCIgSW5maXJtIG9mIHB1cnBvc2UgISANCkdpdmUgbWUgdGhlIGRhZ2dlcnMgOiB0e1smKiZdfWhlIHNsZWVwaW5nIGFuZCB0aGUgZGVhZCANCkFyZSBidXQgYXMgcGljdHVyZXMgOiBcJ3RpcyB0aGUgZXllIG9mIGNoaWxkaG9vZCANe1smKiZdfQpUaGF0IGZlYXJzIGEgcGFpbnRlZCBkZXZpbC5cIiANCg0KSWYgdGhlIGhvbGQgd2hpY2ggc2hlIHBvc3Nlc3NlcyBvdmVyIGhlciBve1smKiZdfXduIGZhY3VsdGllcyANCnNob3VsZCByZWxheCBmb3IgYSBtb21lbnQsIGFsbCB3b3VsZCBiZSBsb3N0LiBGb3IgZHJlYWQtIA0KZnV7WyYqJl19bCBkZWVkcyBhbnRpY2lwYXRlZCBhbmQgcmVzb2x2ZWQgdXBvbiBzaGUgaGFzIHN0cmVuZ3RoIDsgDQpidXRVaGUgc3VycHJpc2Ugb3tbJiomXX1mIGEgbm92ZWwgaG9ycm9yIG9uIHdoaWNoIHNoZSBoYXMgbm90IA0KY291bnRlZCBkZXByaXZlcyBoZXIgc3VkZGVubHkgb2YgY29ue1smKiZdfXNjaW91c25lc3MuXCdeIFdoZW4gDQpNYWNiZXRoIGFubm91bmNlcyBoaXMgYnV0Y2hlcnkgb2YgRHVuY2FuXCdzIGdyb29tcywgdGhlIHtbJiomXX0NCmxhZHkgc3dvb25zIOKAlCBub3QgaW4gZmVpZ25pbmcsIGJ1dCBpbiBmYWN0IOKAlCBhbmQgaXMgYm9ybmUgDQphd2F5IGluc2Vue1smKiZdfXNpYmxlLiANCi8gTWFjYmV0aCB3YXN0ZXMgaGltc2VsZiBpbiB2YWd1ZSwgaW1hZ2luYXRpdmUgcmVtb3JzZSA6IA0KDQpcIiBXaWxse1smKiZdfSBub3QgZ3JlYXQgTmVwdHVuZVwncyBvY2VhbiB3YXNoIHRoaXMgYmxvb2QgDQpDbGVhbiBmcm9tIG15IGhhbmQgPyBObywgdGhpcyBte1smKiZdfXkgaGFuZCB3aWxsIHJhdGhlciANClRoZSBtdWx0aXR1ZGlub3VzIHNlYXMgaW5jYXJuYWRpbmUsIA0KTWFraW5nIHRoZSBncmVlbiB7WyYqJl19b25lIHJlZC5cIiANCg0KVGh1cyBoaXMgaW1hZ2luYXRpb24gc2VydmVzIHRvIGRpc3NpcGF0ZSB0aGUgaW1wcmVzc2lvbiANCm9mIGh7WyYqJl19aXMgY29uc2NpZW5jZS4gLiBXaGF0IGlzIHRoZSB3b3J0aCBvZiB0aGlzIHZhZ3VlLCBpbS0gDQphZ2luYXRpdmUgcmVtb3JzZT8gKHtbJiomXX1NYWNiZXRoIHJldGFpbmVkIGVub3VnaCBvZiBnb29kLSANCm5lc3MgdG8gbWFrZSBoaW0gYSBoYWdnYXJkLCBtaXNlcmFibGUgY3Jpe1smKiZdfW1pbmFsIDsgbmV2ZXIgDQplbm91Z2ggdG8gcmVzdHJhaW4gaGltIGZyb20gYSBjcmltZS4gKSBIaXMgaGFuZCBzb29uIA0KYmVjYW17WyYqJl19ZSBzdWJkdWVkIHRvIHdoYXQgaXQgd29ya2VkIGluIOKAlCB0aGUgYmxvb2QgaW4gDQp3aGljaCBpdCBwYWRkbGVkIGFuZCBwbGFzaHtbJiomXX1lZC4gQW5kIHlldCB0aGUgbG9vc2UgaW5jby0gDQpoZXJlbnQgZmFjdWx0aWVzLCBldmVyIGJlY29taW5nIG1vcmUgYW5kIG1vcmUge1smKiZdfWRpc29yZ2FuLSANCml6ZWQgYW5kIGRpc2ludGVncmF0ZWQsIHNvbWVob3cgaGVsZCB0b2dldGhlciB0aWxsIHRoZSANCmVuZC4gXCIge1smKiZdfU15IGhhbmRzIGFyZSBvZiB5b3VyIGNvbG9yLFwiIGV4Y2xhaW1zIExhZHkgDQpNYWNiZXRoIDsgXCIgYnV0IEkgc2hhbWUgdG8gd2VhcntbJiomXX0gYSBoZWFydCBzbyB3aGl0ZS4gQSANCmxpdHRsZSB3YXRlciBjbGVhcnMgdXMgb2YgdGhpcyBkZWVkLlwiIFlldCBpdCBpcyBzaGUsIHtbJiomXX13aG8gDQpoYXMgdXR0ZXJlZCBubyBsYXJnZSB3b3JkcyBhYm91dCBcIiB0aGUgbXVsdGl0dWRpbm91cyANCnNlYXMsXCIgd2hvIHdpbGx7WyYqJl19IHJpc2UgaW4gc2x1bWJlcnkgYWdpdGF0aW9uLCBhbmQsIHdpdGggaGVyIA0KYWNjdXN0b21lZCBhY3Rpb24sIGVhZ2VybHkgZXNzYXtbJiomXX15IHRvIHJlbW92ZSBmcm9tIGhlciANCg0KT3RoZWxsbzsgTWFjYmV0aDsgTGVhci4gMjI3IA0KDQpsaXR0bGUgaGFuZCBpdHMgaW5le1smKiZdfWZmYWNlYWJsZSBzdGFpbiwgYW5kLCB3aXRoIGhlciBkZWxpY2F0ZSANCnNlbnNlLCBzaWNrZW4gYXQgdGhlIHNtZWxsIG9mIGJsb297WyYqJl19ZCB1cG9uIGl0LCB3aGljaCBcIiBhbGwgDQp0aGUgcGVyZnVtZXMgb2YgQXJhYmlhIHdpbGwgbm90IHN3ZWV0ZW4gO1wiIGFuZCwgbGFze1smKiZdfXQsIHdpbGwgDQpsb29zZW4gdGhlIHRlcnJpYmxlIGNvbnN0cmljdGlvbiBvZiBoZXIgaGVhcnQgd2l0aCBhIHNpZ2ggDQp0aGF0IGx7WyYqJl19b25ncyB0byBiZSBwZXJwZXR1YWwuIFZKdCBpcyB0aGUgcXVlZW4sIGFuZCBub3QgaGVyIA0KaHVzYmFuZCwgd2hvIGlzIHNsYWluIHtbJiomXX1ieSBjb25zY2llbmNlLiBeIA0KLyBZZXQgdGhlIHNvdWwgb2YgTWFjYmV0aCBuZXZlciBxdWl0ZSBkaXNhcHBlYXJzIGludG8gDQp0e1smKiZdfWhlIGJsYWNrbmVzcyBvZiBkYXJrbmVzcy4gSGUgaXMgYSBjbG91ZCB3aXRob3V0IHdhdGVyLCANCmNhcnJpZWQgYWJvdXQgb2Ygd2l7WyYqJl19bmRzIDsgYSB0cmVlIHdob3NlIGZydWl0IHdpdGhlcnMsIGJ1dCANCm5vdCwgZXZlbiB0byB0aGUgbGFzdCwgcXVpdGUgcGx1Y2tlZHtbJiomXX0gdXAgYnkgdGhlIHJvb3RzLiBGb3IgDQp0aGUgZHVsbCBmZXJvY2l0eSBvZiBNYWNiZXRoIGlzIGpveWxlc3MuIEFsbCBoaXMgbGlme1smKiZdfWUgaGFzIA0KZ29uZSBpcnJldHJpZXZhYmx5IGFzdHJheSwgYW5kIGhlIGlzIGF3YXJlIG9mIHRoaXMuIEhpcyANCnN1c3BpY2lvbiB7WyYqJl19YmVjb21lcyB1bmNvbnRyb2xsYWJsZSA7IGhpcyByZWlnbiBpcyBhIHJlaWduIG9mIA0KdGVycm9yOyBhbmQgYXMgaGUgZHJvcHMgZHtbJiomXX1lZXBlciBhbmQgZGVlcGVyIGludG8gdGhlIHNvbC0gDQppdHVkZSBhbmQgdGhlIGdsb29tLCBoaXMuIHNlbnNlIG9mIGVycm9yIGFue1smKiZdfWQgbWlzZm9ydHVuZSwgDQpmdXRpbGUgYW5kIHVucHJvZHVjdGl2ZSBhcyB0aGF0IHNlbnNlIGlzLCBpbmNyZWFzZXMuIEhlIA0KbW97WyYqJl19dmVzIHVuZGVyIGEgZHJlYXJ5IGNsb3VkLCBhbmQgYWxsIHRoaW5ncyBsb29rIGdyYXkgYW5kIA0KY29sZC4gSGUgaGFzIGxpdmVkIHtbJiomXX1sb25nIGVub3VnaCwgeWV0IGhlIGNsaW5ncyB0byBsaWZlIDsgDQp0aGF0IHdoaWNoIHNob3VsZCBhY2NvbXBhbnkgb2xkIGFnZSwge1smKiZdfVwiYXMgaG9ub3IsIGxvdmUsIA0Kb2JlZGllbmNlLCB0cm9vcHMgb2YgZnJpZW5kcyxcJ1wnIGhlIG1heSBub3QgbG9vayB0byBoYXZlLiB7WyYqJl19DQpGaW5hbGx5LCBoaXMgc2Vuc2liaWxpdHkgaGFzIGdyb3duIHNvIGR1bGwgdGhhdCBldmVuIHRoZSANCmludGVsbGlnZW5jZSBvZntbJiomXX0gaGlzIHdpZmVcJ3MgZGVhdGgg4oCUIHRoZSBkZWF0aCBvZiBoZXIgd2hvIA0KaGFkIGJlZW4gYm91bmQgdG8gaGltIGJ5IHN1Y2ggY3tbJiomXX1sb3NlIGNvbW11bmlvbiBpbiANCmNyaW1lIOKAlCBoYXJkbHkgdG91Y2hlcyBoaW0sIGFuZCBzZWVtcyBsaXR0bGUgbW9yZSB0aGFue1smKiZdfSANCm9uZSBhZGRpdGlvbmFsIGluY2lkZW50IGluIHRoZSB3ZWFyeSwgbWVhbmluZ2xlc3MgdGFsZSBvZiANCg0KXCIgU2hlIHNob3Vse1smKiZdfWQgaGF2ZSBkaWVkIGhlcmVhZnRlciA7IA0KVGhlcmUgd291bGQgaGF2ZSBiZWVuIGEgdGltZSBmb3Igc3VjaCBhIHdvcmQuIA0KVG97WyYqJl19LW1vcnJvdywgYW5kIHRvLW1vcnJvdywgYW5kIHRvLW1vcnJvdywgDQpDcmVlcHMgaW4gdGhpcyBwZXR0eSBwYWNlIGZyb20gZGF5IHtbJiomXX10byBkYXkgDQpUbyB0aGUgbGFzdCBzeWxsYWJsZSBvZiByZWNvcmRlZCB0aW1lIDsgDQpBbmQgYWxsIG91ciB5ZXN0ZXJkYXlzIGhhe1smKiZdfXZlIGxpZ2h0ZWQgZm9vbHMgDQpUaGUgd2F5IHRvIGR1c3R5IGRlYXRoLiBPdXQsIG91dCwgYnJpZWYgY2FuZGxlICEgDQpMaWZlXCdze1smKiZdfSBidXQgYSB3YWxraW5nIHNoYWRvdywgYSBwb29yIHBsYXllciANClRoYXQgc3RydXRzIGFuZCBmcmV0cyBoaXMgaG91ciB1cG9uIHR7WyYqJl19aGUgc3RhZ2UsIA0KQW5kIHRoZW4gaXMgaGVhcmQgbm8gbW9yZSA7IGl0IGlzIGEgdGFsZSANClRvbGQgYnkgYW4gaWRpb3QsIGZ1bHtbJiomXX1sIG9mIHNvdW5kIGFuZCBmdXJ5LCANClNpZ25pZnlpbmcgbm90aGluZy5cIiANCg0KMjI4IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYXtbJiomXX1uZCBBcnQgDQoNClRoaXMgd29ybGQtd2VhcmluZXNzLCB3aGljaCBoYXMgbm90IHRoZSBlbmVyZ3kgb2YgVGkqIA0KbWVuXCdzIGRlc3tbJiomXX1wYWlyLCBpcyB5ZXQgbGVzcyByZW1vdGUgZnJvbSB0aGUgam95IGFuZCBnbG9yeSANCm9mIHRydWUgbGl2aW5nIHRoYW4gaXMgdGhle1smKiZdfSB3b3JtIC1saWtlIHZpdmFjaXR5IG9mIGxhZ28uIA0KTWFjYmV0aCByZW1lbWJlcnMgdGhhdCBoZSBvbmNlIGtuZXcgdGhlcmUgd2F7WyYqJl19cyBzdWNoIGEgDQp0aGluZyBhcyBodW1hbiBnb29kbmVzcy4uIEhlIHN0YW5kcyBhIGhhZ2dhcmQgc2hhZG93IA0KYWdhaW5zdCB0aHtbJiomXX1lIGhhbmRcJ3MtYnJlYWR0aCBvZiBwYWxlIHNreSB3aGljaCB5aWVsZHMgdXMgc3VmLSANCmZpY2llbnQgbGlnaHQgdG8gc2VlIGhpbXtbJiomXX0uIEJ1dCBsYWdvIHJpc2VzIGNvbXBhY3Qgd2l0aCANCmZpZW5kLWxpa2UgZW5lcmd5LCBzZWVuIGJyaWdodGx5IGluIHRoZSBnb2Rse1smKiZdfWVzcyBnbGFyZSBvZiANCmhlbGwuIFtUaGUgZW5kIG9mIE1hY2JldGggaXMgc2F2YWdlIGFuZCBhbG1vc3QgYnJ1dGFsIOKAlCANCmF7WyYqJl19IGRlYXRoIHdpdGhvdXQgaG9ub3Igb3IgbG92ZWxpbmVzcy4gSGUgZmlnaHRzIG5vdyBub3QgDQpsaWtlIFwiIEJlbGxvbmFcJ3MgYnJpe1smKiZdfWRlZ3Jvb20gbGFwcFwnZCBpbiBwcm9vZixcIiBidXQgd2l0aCBhIA0Kd2lsZCBhbmQgYW5pbWFsIGNsaW5naW5nIHRvIGxpZmUgOiANCntbJiomXX0NClwiIFRoZXkgaGF2ZSB0aWVkIG1lIHRvIGEgc3Rha2UgOyBJIGNhbm5vdCBmbHksIA0KQnV0LCBiZWFyLWxpa2UsIEkgbXVzdCBmaXtbJiomXX1naHQgdGhlIGNvdXJzZS5cIiANCg0KSGlzIGZvbGxvd2VycyBkZXNlcnQgaGltIDsgaGUgZmVlbHMgaGltc2VsZiB0YWtlbiBpbiBhIHtbJiomXX0NCnRyYXAuIFRoZSBwb3dlcnMgb2YgZXZpbCBpbiB3aGljaCBoZSBoYWQgdHJ1c3RlZCB0dXJuIA0KYWdhaW5zdCBoaW0gYW5kIGJle1smKiZdfXRyYXkgaGltLiBIaXMgY291cmFnZSBiZWNvbWVzIGEgZGVzLSANCnBlcmF0ZSByYWdlLiBXZSBhcmUgaW4gcGFpbiB1bnRpbCB0aGV7WyYqJl19IGhvcnJpYmxlIG5lY2Vzc2l0eSANCmlzIGFjY29tcGxpc2hlZC4gDQoNClNoYWtzcGVyZSBwdXJzdWVzIE1hY2JldGggbm8gZmFydHtbJiomXX1oZXIuIEhlIGRvZXMgbm90IA0KZm9sbG93IGhpbSB3aXRoIHllYXJuaW5nIGNvbmplY3R1cmUsIGFzIE1yLiBCcm93bmluZyANCmZve1smKiZdfWxsb3dzIHRoZSBtdXJkZXJlciBvZiBoaXMgcG9lbSwgXCIgVGhlIEtpbmcgYW5kIHRoZSANCkJvb2ssXCIgDQoNClwiIEludG8gdGhhdCB7WyYqJl19c2FkLCBvYnNjdXJlLCBzZXF1ZXN0ZXJlZCBzdGF0ZS4gDQpXaGVyZSBHb2QgdW5tYWtlcyBidXQgdG8gcmVtYWtlIHRoZSBzb3VsIHtbJiomXX0NCkhlIGVsc2UgbWFkZSBmaXJzdCBpbiB2YWluLlwiIA0KDQpPdXIgZmVldCByZW1haW4gb24gc29saWQgU2NvdHRpc2ggZWFydGguIHtbJiomXX1CdXQgYSBuZXcgDQoNCmFuZCBiZXR0ZXIgZXJhIG9mIGhpc3RvcnkgZGF3bnMuIE1hY2JldGggYW5kIFNpd2FyZFwncyANCg0Kc29uIHtbJiomXX1saWUgZGVhZCA7IGJ1dCB0aGUgd29ybGQgZ29lcyBvbi4gVGhlIHRyYWdpYyBkZWVkcyANCg0KdGFrZSB1cCB0aGVpciBwbGFjZSBpe1smKiZdfW4gdGhlIGxhcmdlIGxpZmUgb2YgYSBjb3VudHJ5LiBXZSANCg0Kc3VmZmVyIG5vIGRlamVjdGlvbiA7IFwiIHRoZSB0aW1lIGlzIGZye1smKiZdfWVlLlwiIFNhbmUgYW5kIHN0cm9uZywgDQoNCndlIGV4cGVjdCB0aGUgZGF5IHdoZW4gTWFsY29sbSB3aWxsIGJlIGNyb3duZWQgYXQge1smKiZdfQ0KDQpTY29uZS4gDQoNCmluLiANCg0KVGhlIHRyYWdlZHkgb2YgS21nIExlYXIgd2FzIGVzdGltYXRlZCBieSBTaGVsbGV5LCANCg17WyYqJl19Ci1DeVwndnZeQy1cJy1cJ15cJyANCg0KXnkgXiBcJypeIE90aGVsYjsgTWFjYmV0aDsgTGVhciwgMjI5IA0KDQppbiBoaXMgXCIgRGVmZW5jZXtbJiomXX0gb2YgUG9ldHJ5LFwiIGFzIGFuIGVxdWl2YWxlbnQgaW4gbW9kZXJuIA0KbGl0ZXJhdHVyZSBmb3IgdGhlIHRyaWxvZ3kgaW4gdGhlIHtbJiomXX1saXRlcmF0dXJlIG9mIEdyZWVjZSB3aXRoIA0Kd2hpY2ggdGhlIChFZGlwdXMgVHlyYW5udXNeIG9yIHRoYXQgd2l0aCB3aGljaCB0e1smKiZdfWhlIA0KQWdhbWVtbm9uIHN0YW5kcyBjb25uZWN0ZWQuIEtpbmcgTGVhciBpc14gaW5kZWVkXiANCnRoZSBncmVhIHRlc3Qgc2luZ2x7WyYqJl19ZSBhY2hpZXZlbWVudCBpbiBwb2V0cnkgb2YgdGhlIFRldS0gDQp0b25pYywgb3IgSVNUb3J0aGVybiwgZ2VuaXVzLiBCeSBpdHMgbHtbJiomXX1hcmdlbmVzcyBvZiBjb25jZXAtIA0KdGlvbiBhbmQgdGhlIHZhcmlldHkgb2YgaXRzIGRldGFpbHMsIGJ5IGl0cyByZXZlbGF0aW9ue1smKiZdfSBvZiBhIA0KaGFybW9ueSBleGlzdGluZyBiZXR3ZWVuIHRoZSBmb3JjZXMgb2YgbmF0dXJlIGFuZCB0aGUgDQpwYXNzaW9ucyBvZiB7WyYqJl19bWFuLCBieSBpdHMgZ3JvdGVzcXVlbmVzcyBhbmQgaXRzIHN1YmxpbWl0eSwgDQppdCBvd25zIGtpbnNoaXAgd2l0aCB0aGUgZ3JlYXtbJiomXX10IGNhdGhlZHJhbHMgb2YgR290aGljIGFyLSANCmNoaXRlY3R1cmUuIFRvIGNvbmNlaXZlLCB0byBjb21wYXNzLCB0byBjb21wcmVoe1smKiZdfWVuZCwgYXQgDQpvbmNlIGluIGl0cyBzdHVwZW5kb3VzIHVuaXR5IGFuZCBpbiBpdHMgYWxtb3N0IGVuZGxlc3MgDQp2YXJpZXR5LCB7WyYqJl19YSBidWlsZGluZyBsaWtlIHRoZSBjYXRoZWRyYWwgb2YgS2hlaW1zLCBvciB0aGF0IA0Kb2YgQ29sb2duZSwgaXMgYSBmZWF0IHdoaXtbJiomXX1jaCBtaWdodCBzZWVtIHRvIGRlZnkgdGhlIG1vc3QgDQphdGhsZXRpYyBpbWFnaW5hdGlvbi4gQnV0IHRoZSBpbXByZXNzaW9uIHdoe1smKiZdfWljaCBTaGFrLSANCnNwZXJlXCdzIHRyYWdlZHkgcHJvZHVjZXMsIHdoaWxlIGVxdWFsbHkgbGFyZ2Ug4oCUIGFsbW9zdCANCm1vbnN0e1smKiZdfXJvdXMg4oCUIGFuZCBlcXVhbGx5IGludHJpY2F0ZSwgbGFja3MgdGhlIG1hdGVyaWFsIGZpeC0gDQppdHkgYW5kIGRldGVybWluYXR7WyYqJl19ZW5lc3Mgb2YgdGhhdCBwcm9kdWNlZCBieSB0aGVzZSBncmVhdCANCndvcmtzIGluIHN0b25lLiBFdmVyeXRoaW5nIGluIHRoZSB0cntbJiomXX1hZ2VkeSBpcyBpbiBtb3Rpb24sIA0KYW5kIHRoZSBtb3Rpb24gaXMgdGhhdCBvZiBhIHRlbXBlc3QuIEEgZ3JvdGVzcXVlIGhlYWQse1smKiZdfSANCndoaWNoIHdhcyBwZWVyaW5nIG91dCB1cG9uIHVzIGZyb20gYSBwb2ludCBuZWFyIGF0IA0KaGFuZCwgc3VkZGVubHkgY2hhbmd7WyYqJl19ZXMgaXRzIHBsYWNlIGFuZCBpdHMgZXhwcmVzc2lvbiwgYW5kIA0Kbm93IGlzIHNlZW4gZHJpdmVuIG9yIGZhZGluZyBhd2F5IGludHtbJiomXX1vIHRoZSBkaXN0YW5jZSB3aXRoIA0KbGlwcyBhbmQgZXllcyB0aGF0LCBpbnN0ZWFkIG9mIGdyb3Rlc3F1ZSwgYXBwZWFyIHNhZCBhe1smKiZdfW5kIA0KcGF0aGV0aWNcJyBBbGwgdGhhdCB3ZSBzZWUgYXJvdW5kIHVzIGlzIHRlbXBlc3R1b3VzbHkgDQp3aGlybGluZyBhbmQgaGVhe1smKiZdfXZpbmcsIHlldCB3ZSBhcmUgYXdhcmUgdGhhdCBhIGxhdyBwcmUtIA0Kc2lkZXMgb3ZlciB0aGlzIHZpY2lzc2l0dWRlIGFuZCBhcHB7WyYqJl19YXJlbnQgaW5jb2hlcmVuY2UuIFdlIA0KYXJlIGNvbmZpZGVudCB0aGF0IHRoZXJlIGlzIGEgbG9naWMgb2YgdGhlIHRlbXBlc3QuIHtbJiomXX1XaGlsZSANCmVhY2ggdGhpbmcgYXBwZWFycyB0byBiZSB0b3JuIGZyb20gaXRzIHByb3BlciBwbGFjZSwgYW5kIA0KdG8gaGF2ZSBse1smKiZdfW9zdCBpdHMgbmF0dXJhbCBzdXBwb3J0cyBhbmQgc3RheXMsIGluc3RpbmN0cywgcGFzLSANCnNpb25zLCByZWFzb24sIGFsbCB3cmV7WyYqJl19bmNoZWQgYW5kIGNvbnRvcnRlZCwgeWV0IGVhY2ggdGhpbmcgDQppbiB0aGlzIHNlZW1pbmcgY2hhb3MgdGFrZXMgdXAgaXRzIHBsYXtbJiomXX1jZSB3aXRoIGluZmFsbGlibGUgDQphc3N1cmFuY2UgYW5kIHByZWNpc2lvbi4gDQoNCi9JbiBLaW5nIExlYXJeIG1vcmUgdGhhbiBpe1smKiZdfW4gYW55IG90aGVyIG9mIGhpcyBwbGF5cywgDQpTbmFrc3BlcmUgc3RhbmRzIGluIHByZXNlbmNlIG9mIHRoZSBteXN0ZXJpZXMgb2Z7WyYqJl19IGh1bWF1IA0KDQoyMzAgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KbGlmZS4gQSBtb3JlIGltcGF0aWVudCBpbntbJiomXX10ZWxsZWN0IHdvdWxkIGhhdmUgcHJvcG9zZWQgDQpleHBsYW5hdGlvbnMgb2YgdGhlc2UuIEEgbGVzcyByb2J1c3Qgc3Bpcml0IHdve1smKiZdfXVsZCBoYXZlIA0KcGVybWl0dGVkIHRoZSBkb21pbmFudCB0b25lIG9mIHRoZSBwbGF5IHRvIGJlY29tZSBhbiANCmVhZ2VyIG9yIHB7WyYqJl19YXRoZXRpYyB3aXN0ZnVsbmVzcyByZXNwZWN0aW5nIHRoZSBzaWduaWZpY2FuY2UgDQpvZiB0aGVzZSBoYXJkIHJpZGRsZXMgaW4gdHtbJiomXX1oZSBkZXN0aW55IG9mIG1hbi4gU2hha3NwZXJlIA0KY2hlY2tzIHN1Y2ggd2lzdGZ1bCBjdXJpb3NpdHksIHRob3VnaCBpdCBleGlze1smKiZdfXRzIGRpc2Nlcm4tIA0KaWJseSA7IGhlIHdpbGwgcHJlc2VudCBsaWZlIGFzIGl0IGlzLiBJZiBsaWZlIHByb3Bvc2VzIGluZXgtIA17WyYqJl19CnBsaWNhYmxlIHJpZGRsZXMsIFNoYWtzcGVyZVwncyBhcnQgbXVzdCBwcm9wb3NlIHRoZW0gYWxzby4gDQpCdXQsIHdoaWxlIFNoYWt7WyYqJl19c3BlcmUgd2lsbCBwcmVzZW50IGxpZmUgYXMgaXQgaXMsIGFuZCBzdWctIA0KZ2VzdCBubyBpbmFkZXF1YXRlIGV4cGxhbmF0aW9uc3tbJiomXX0gb2YgaXRzIGRpZmZpY3VsdCBwcm9ibGVtcywgDQpoZSB3aWxsIGdhemUgYXQgbGlmZSBub3Qgb25seSBmcm9tIHdpdGhpbl4gYnV0e1smKiZdfSwgaWYgcG9zc2libGUsIA0KYWxzbyBmcm9tIGFuIGV4dHJhLW11bmRhbmUsIGV4dHJhLWh1bWFuIHBvaW50IG9mIHZpZXcsIA0KYW57WyYqJl19ZCwgZ2F6aW5nIHRoZW5jZSBhdCBsaWZlLCB3aWxsIHRyeSB0byBkaXNjZXJuIHdoYXQgYXNwZWN0IA0KdGhpcyBmbGVldGluZyBhbntbJiomXX1kIHdvbmRlcmZ1bCBwaGVub21lbm9uIHByZXNlbnRzIHRvIHRoZSANCmV5ZXMgb2YgZ29kcy4gL0hlbmNlIGEgZ3JhbmQgaXJvbnkge1smKiZdfWluIHRoZSB0cmFnZWR5IG9mIA0KTGVhcjsgaGVuY2UgYXVecm4gaXQgdGhhdCBpcyBncmVhdCBpcyBhbHNvIHNtYWxsOyBhbGwgdGh7WyYqJl19YXQgDQppcyB0cmFnaWNhbGx5IHN1YmxpbWUgaXMgYWxzbyBncm90ZXNxdWUuIEhlbmNlIGl0IHNlZXMgDQptYW4gd2Fsa2luZyBpbntbJiomXX0gYSB2YWluIHNoYWRvdyA7IGdyb3BpbmcgaW4gdGhlIG1pc3QgOyANCmNvbW1pdHRpbmcgZXh0cmF2YWdhbnQgbWlzdGFrZXMgOyB3e1smKiZdfWFuZGVyaW5nIGZyb20gbGlnaHQgDQppbnRvIGRhcmtuZXNzIDsgc3R1bWJsaW5nIGJhY2sgYWdhaW4gZnJvbSBkYXJrbmVzcyBpbnR7WyYqJl19byANCmxpZ2h0IDsgc3BlbmRpbmcgaGlzIHN0cmVuZ3RoIGluIGJhcnJlbiBhbmQgaW1wb3RlbnQgDQpyYWdlcyA7IG1hbiBpbiBoaXtbJiomXX1zIHdlYWtuZXNzLCBoaXMgdW5yZWFzb24sIGhpcyBhZmZsaWN0aW9uLCANCmhpcyBhbmd1aXNoLCBoaXMgcG92ZXJ0eSBhbmQgbWVhe1smKiZdfW5uZXNzLCBoaXMgZXZlcmxhc3RpbmcgDQpncmVhdG5lc3MgYW5kIG1hamVzdHleIEhlbmNlLCB0b28sIHRoZSBjaGFyYWN0ZXJzLCB7WyYqJl19d2hpbGUgDQp0aGV5IHJlbWFpbiBpbmRpdmlkdWFsIG1lbiBhbmQgd29tZW4sIGFyZSBpZGVhbCwgcmVwLSANCnJlc2VudGF0aXZlLHtbJiomXX0gdHlwaWNhbCA7IEdvbmVyaWwgYW5kIFJlZ2FuLCB0aGUgZGVzdHJ1Y3RpdmUgDQpmb3JjZSwgdGhlIHJhdmVuaW5nIGVnb2lzbSBpe1smKiZdfW4gaHVtYW5pdHkgd2hpY2ggaXMgYXQgd2FyIA0Kd2l0aCBhbGwgZ29vZG5lc3M7IEtlbnQsIGEgY2xlYXIsIHVubWluZ2xlZCBmaWR7WyYqJl19ZWxpdHk7IA0KQ29yZGVsaWEsIHVubWluZ2xlZCB0ZW5kZXJuZXNzIGFuZCBzdHJlbmd0aCwgYSBwdXJlIHJlLSANCmRlZW1pbmcgYXtbJiomXX1yZG9yLiBBcyB3ZSByZWFkIHRoZSBwbGF5IHdlIGFyZSBoYXVudGVkIGJ5IA0KYSBwcmVzZW5jZSBvZiBzb21ldGhpbmcgYmV5b25ke1smKiZdfSB0aGUgc3Rvcnkgb2YgYSBzdWZmZXJpbmcgDQpvbGQgbWFuIDsgd2UgYmVjb21lIGRpbWx5IGF3YXJlIHRoYXQgdGhlIHBsYXkgaGF7WyYqJl19cyBzb21lIA0KcmFzdCBpbXBlcnNvbmFsIHNpZ25pZmljYW5jZSwgbGlrZSB0aGUgUHJvbWV0aGV1cyBCb3VuZCANCm9mIF5zY2h5bHtbJiomXX11cywgYW5kIGxpa2UgR29ldGhlXCdzIEZhdXN0IFdlIHNlZW0gdG8gZ2F6ZSANCnVwb24gXCIgaHVnZSwgY2xvdWR5IHN5bWJvbHMgb2Z7WyYqJl19IHNvbWUgaGlnaCByb21hbmNlLlwiIA0KDQpPdGhlbGxvOyBNYWNiZXRoOyBMZWFyLiAyMyAxIA0KDQpXaGF0IHdhcyBpcm9ueSB3aGV7WyYqJl19biBodW1hbiBsaWZlIHdhcyB2aWV3ZWQgZnJvbSB0aGUgDQpvdXRzaWRlLCBleHRyYS1tdW5kYW5lIHBvaW50IG9mIHZpZXcgYmVjb3tbJiomXX1tZXMsIHdoZW4gbGlmZSANCmlzIHZpZXdlZCBmcm9tIHdpdGhpbiwgU3RvaWNpc20uIEZvciB0byBTdG9pY2lzbSB0aGUgDQptZXJle1smKiZdfSBwaGVub21lbm9uIG9mIGh1bWFuIGV4aXN0ZW5jZSBpcyBhIHZhc3QgcGllY2Ugb2YgDQp1bnJlYXNvbiBhbmQgZ3JvdGVzcXVlbmV7WyYqJl19c3MsIGFuZCBmcm9tIHRoaXMgdW5yZWFzb24gYW5kIA0KZ3JvdGVzcXVlbmVzcyBTdG9pY2lzbSBtYWtlcyBpdHMgZXNjYXBlIGJ5IHtbJiomXX1iZWNvbWluZyBpbi0gDQpkaWZmZXJlbnQgdG8gdGhlIHBoZW5vbWVub24sIGFuZCBieSBkZXZvdGlvbiB0byB0aGUgbW9yLSANCmFse1smKiZdfSBpZGVhLCB0aGUgbGF3IG9mIHRoZSBzb3VsLCB3aGljaCBpcyBmb3JldmVyIG9uZSB3aXRoIGl0LSANCnNlbGYgYW5kIHdpdGggdGh7WyYqJl19ZSBoaWdoZXN0IHJlYXNvbi4gVGhlIGV0aGljcyBvZiB0aGUgcGxheSANCm9mIEtpbmcgTGVhciBhcmUgU3RvaWNhbCBldGhpY3MuIHtbJiomXX1TaGFrc3BlcmVcJ3MgZmlkZWxpdHkgdG8gDQp0aGUgZmFjdCB3aWxsIGFsbG93IGhpbSB0byBkZW55IG5vIHBhaW4gb3IgY2FsYW1pdHtbJiomXX15IHRoYXQgDQpiZWZhbGxzIG1hbi4gXCJUaGVyZSB3YXMgbmV2ZXIgeWV0IHBoaWxvc29waGVyIHRoYXQgDQpjb3VsZCBlbmR1cmUgdHtbJiomXX1oZSB0b290aGFjaGUgcGF0aWVudGx5LlwiIFwnXiBIZSBrbm93cyB0aGF0IA0KaXQgaXMgaW1wb3NzaWJsZSB0byANCg0KXCIgRmV0dGVye1smKiZdfSBzdHJvbmcgbWFkbmVzcyBpbiBhIHNpbGtlbiB0aHJlYWQsIA0KQ2hhcm0gYWNoZSB3aXRoIGFpciwgYW5kIGFnb255IHdpdGggd297WyYqJl19cmRzLlwiIA0KDQpIZSBhZG1pdHMgdGhlIHN1ZmZlcmluZywgdGhlIHdlYWtuZXNzLCBvZiBodW1hbml0eSA7IGJ1dCANCmhlIGRlY2x7WyYqJl19YXJlcyB0aGF0IGluIHRoZSBpbm5lciBsYXcgdGhlcmUgaXMgYSBjb25zdHJhaW5pbmcgDQpwb3dlciBzdHJvbmdlciB0aGFuIGEgc3tbJiomXX1pbGtlbiB0aHJlYWQ7IGluIHRoZSBmaWRlbGl0eV4gb2YgDQpwdXJlIGhlYXJ0cywgaW4gdGhlIHJhcHR1cmUgb2YgbG92ZSBhbmQge1smKiZdfXNhY3JpZmljZSwgdGhlcmUgaXMgDQphIGNoYXJtIHdoaWNoIGlzIG5laXRoZXIgYWlyIG5vciB3b3JkcywgYnV0LCBpbmRlZWQsIHB7WyYqJl19by0gDQp0ZW50IGVub3VnaCB0byBzdWJkdWUgcGFpbiBhbmQgbWFrZSBjYWxhbWl0eSBhY2NlcHRhLSANCmJsZS4gQ29yZGVsaWEsIHtbJiomXX13aG8gdXR0ZXJzIG5vIHdvcmQgaW4gZXhjZXNzIG9mIGhlciBhY3R1YWwgDQpmZWVsaW5nLCBjYW4gZGVjbGFyZSwgYXMgc2hlIGlze1smKiZdfSBsZWQgdG8gcHJpc29uLCBoZXIgY2FsbSBhbmQgDQpkZWNpZGVkIGFjY2VwdGFuY2Ugb2YgaGVyIGxvdCA6IA0KDQpcIiBXZSBhcmUge1smKiZdfW5vdCB0aGUgZmlyc3QgDQpXaG8sIHdpdGggYmVzdCBtZWFuaW5nLCBoYXZlIGluY3VycmVkIHRoZSB3b3JzdCA7IA0KRm9yIHRoZWV7WyYqJl19LCBvcHByZXNzZWQga2luZywgSSBhbSBjYXN0IGRvd24gOyANCk15c2VsZiBjb3VsZCBlbHNlIG91dC1mcm93biBmYWxzZSBmb3J0dXtbJiomXX1uZVwncyBmcm93bi5cIiB0IA0KDQpCdXQgdGhvdWdoIGV0aGljYWwgcHJpbmNpcGxlcyByYWRpYXRlIHRocm91Z2ggdGhlIHBsYXkgDQp7WyYqJl19DQpcIl4gTXVjaCBBZG8gQWJvdXQgTm90aGluZ14gYWN0IHYuLCBzYy4gMS4gDQoNCmYgQ29tcGFyZSBhbHNvLCBhcyBleHByZXNzaW57WyYqJl19ZyB0aGUgbW9vZCBpbiB3aGljaCBjYWxhbWl0eSBtdXN0IGJlIGNvbsKrIA0KZnJvbnRlZCwgdGhlIHdvcmRzIG9mIEVkZ2FyIDogDXtbJiomXX0KDQpcIiBNZW4gbXVzdCBlbmR1cmUgDQpUaGVpciBnb2luZyBoZW5jZSwgZXZlbiBhcyB0aGVpciBjb21pbmcgaGl0aGVyOyANClJpcHtbJiomXX1lbmVzcyBpcyBhbGwuXCIgDQoNCjIzMiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpvZiBMZWFyXiBpdHMgY2hpZXtbJiomXX1mIGZ1bmN0aW9uIGlzIG5vdCwgZXZlbiBpbmRpcmVjdGx5LCB0byB0ZWFjaCANCm9yIGluY3VsY2F0ZSBtb3JhbCB0cnV0aCwgYnV0e1smKiZdfSByYXRoZXIsIGJ5IHRoZSBkaXJlY3QgcHJlc2VuLSANCnRhdGlvbiBvZiBhIHZpc2lvbiBvZiBodW1hbiBsaWZlIGFuZCBvZiB0aGV7WyYqJl19IGVudmVsb3BpdWcgDQpmb3JjZXMgb2YgbmF0dXJlLCB0byBcIiBmcmVlLCBhcm91c2UsIGRpbGF0ZS5cIiBXZSBtYXkgYmUgDQp1bmFie1smKiZdfWxlIHRvIHNldCBkb3duIGluIHdvcmRzIGFueSBzZXQgb2YgdHJ1dGhzIHdoaWNoIHdlIA0KaGF2ZSBiZWVuIHRhdWdodCBieSB0aGV7WyYqJl19IGRyYW1hLiBCdXQgY2FuIHdlIHNldCBkb3duIA0KaW4gd29yZHMgdGhlIHByZWNpc2UgbW9yYWwgc2lnbmlmaWNhbmNlIG9mIGEgZntbJiomXX11Z3VlIG9mIA0KSGFuZGVsIG9yIGEgc3ltcGhvbnkgb2YgQmVldGhvdmVuPyBXZSBhcmUga2luZGxlZCANCmFuZCBhcm91c2VkIGJ5e1smKiZdfSB0aGVtIDsgb3VyIHdob2xlIG5hdHVyZSBpcyBxdWlja2VuZWQgOyBpdCANCnBhc3NlcyBmcm9tIHRoZSBoYWJpdHVhbCwgaGFyZCx7WyYqJl19IGVuY3J1c3RlZCwgYW5kIGNvbGQgY29uZGktIA0KdGlvbiBpbnRvIFwidGhlIGZsdWlkIGFuZCBhdHRhY2hpbmcgc3RhdGVcIiDigJQge1smKiZdfXRoZSBzdGF0ZSBpbiANCndoaWNoIHdlIGRvIG5vdCBzZWVrIHRydXRoIGFuZCBiZWF1dHksIGJ1dCBhdHRyYWN0IGFuZCANCmFyZSB7WyYqJl19c291Z2h0IGJ5IHRoZW0gOyB0aGUgc3RhdGUgaW4gd2hpY2ggXCIgZ29vZCB0aG91Z2h0cyANCnN0YW5kIGJlZm9yZSB1cyBsaWtlIGZ7WyYqJl19cmVlIGNoaWxkcmVuIG9mIEdvZCwgYW5kIGNyeSBcJyBXZSANCmFyZSBjb21lLlwnIFwiIF4gVGhlIHBsYXkgb3IgdGhlIHBpZWNlIG9mIHtbJiomXX1tdXNpYyBpcyBub3QgYSANCmNvZGUgb2YgcHJlY2VwdHMgb3IgYSBib2R5IG9mIGRvY3RyaW5lIDtmIGl0IGlzIFwiYSBmb2N1cyANCntbJiomXX13aGVyZSBhIG51bWJlciBvZiB2aXRhbCBmb3JjZXMgdW5pdGUgaW4gdGhlaXIgcHVyZXN0IGVuLSANCmVyZ3kuXCIgDQoNCl5uIHRoZXtbJiomXX0gcGxheSBvZiBLaW5nIExlYXIgd2UgY29tZSBpbnRvIGNvbnRhY3Qgd2l0aCANCnRoZSBpbWFnaW5hdGlvbiwgdGhlIGhlYXJ0LCB0e1smKiZdfWhlIHNvdWwgb2YgU2hha3NwZXJlLCBhdCBhIA0KbW9tZW50IHdoZW4gdGhleSBhdHRhaW5lZCB0aGVpciBtb3N0IHBvd2VyZnVsIGF7WyYqJl19bmQgaW4tIA0KdGVuc2Ugdml0YWxpdHleIFwiIEhlIHdhcyBoZXJlLFwiIEhhemxpdHQgd3JvdGUsIFwiXCcgZmFpcmx5IA0KY2F1Z2h0IGl7WyYqJl19biB0aGUgd2ViIG9mIGhpcyBvd24gaW1hZ2luYXRpb24uXCIgQW5kIGJlaW5nIA0KdGh1cyBhcm91c2VkIGFib3V0IGRlZXBlciB0aGl7WyYqJl19bmdzLCBTaGFrc3BlcmUgZGlkIG5vdCBpbiANCnRoaXMgcGxheSBmZWVsIHRoYXQgbWVyZSBoaXN0b3JpY2FsIHZlcmlzaW1pbGl0dXtbJiomXX1kZSB3YXMgb2YgDQpjaGllZiBpbXBvcnRhbmNlLiBIZSBmb3VuZCB0aGUgaW5jaWRlbnRzIHJlY29yZGVkIGluIA0KaGlzdG9yeSBhe1smKiZdfW5kIGJhbGxhZCBhbmQgZHJhbWE7IGhlIGFjY2VwdGVkIHRoZW0gYXMgaGUgDQpmb3VuZCB0aGVtLiBPdXIgaW1hZ2luYXRpb24gbXV7WyYqJl19c3QgZ3JhbnQgU2hha3NwZXJlIA0KY2VydGFpbiBwb3N0dWxhdGVzLCB0aG9zZSB3aGljaCB0aGUgc3RvcnkgdGhhdCBoYWQgdGFrZXtbJiomXX1uIA0Kcm9vdCBpbiB0aGUgaGVhcnRzIG9mIHRoZSBwZW9wbGUgYWxyZWFkeSBzcGVjaWZpZWQuIFRoZSANCg0KKiBHb2V0aGVecyBcIntbJiomXX0gQ29udmVyc2F0aW9ucyB3aXRoIEVja2VybWFubixcIiBGZWIuIDI0LCAxODI0LiANCg0KZiBGbGF0aGUsIHdobyBvcmRpbmFyaWx5IHtbJiomXX1maW5kcyBhbGwgcHJlY2VkaW5nIGNyaXRpY3Mgd3JvbmcgYW5kIGhpbXNlbGYgcHJvLSANCmZvdW5kbHkgcmlnaHQsIGRpc2NvdmVye1smKiZdfXMgaW4gS2luZyBMZWFyIFNoYWtzcGVyZVwncyBcIiB3YXJuaW5nIGxldHRlciBhZ2FpbnN0IA0KbmF0dXJhbGlzbSBhbmQgcHNldWRvLXtbJiomXX1yYXRpb25hbGlzbSA7XCIgdGhlIHBsYXkgaXMgdHJhbnNsYXRlZCBpbnRvIGEgZGlkYWN0aWEgDQpkaXNjb3Vyc2Ugb24gaW5maWRlbHtbJiomXX1pdHkuIA0KDQpPdGhlbGxvOyBNYWNiZXRoOyBMZWFyLiAyMzMgDQoNCm9sZCBcIiBDaHJvbmljbGUgSGlzdG9yeSBvZiBLaW5nIExlaXtbJiomXX1yIFwnXCcgaGFkIGFzc2lnbmVkIGluLSANCmdlbmlvdXMgbW90aXZlcyBmb3IgdGhlIGFwcGFyZW50bHkgaW1wcm9iYWJsZSBjb25kdWN7WyYqJl19dCANCmFzY3JpYmVkIHRvIHRoZSBLaW5nLiBIZSByZXNvbHZlcyB0aGF0IHVwb24gQ29yZGVsaWFcJ3MgDQpwcm90ZXN0aW5nIHRoYXR7WyYqJl19IHNoZSBsb3ZlcyBoaW0gaGUgd2lsbCBzYXksIFwiIFRoZW4sIGRhdWdoLSANCnRlciwgZ3JhbnQgbWUgb25lIHJlcXVlc3Qg4oCUIGF7WyYqJl19Y2NlcHQgdGhlIGh1c2JhbmQgSSBoYXZlIA0KY2hvc2VuIGZvciB5b3UsXCIgYW5kIHRodXMgaGUgd2lsbCB0YWtlIGhlciBhdCBhIHZ7WyYqJl19YW50YWdlLiANCkl0IHdvdWxkIGhhdmUgYmVlbiBlYXN5IGZvciBTaGFrc3BlcmUgdG8gaGF2ZSBzZWN1cmVkIA0KdGhpcyBraW5kIHtbJiomXX1vZiB2ZXJpc2ltaWxpdHVkZSA7IGl0IHdvdWxkIGhhdmUgYmVlbiBlYXN5IGZvciANCmhpbSB0byBoYXZlIHJlZmVycmVkIHRoZSBje1smKiZdfW9uZHVjdCBvZiBMZWFyIHRvIGluZ2VuaW91c2x5IA0KaW52ZW50ZWQgbW90aXZlcyA7IGhlIGNvdWxkLCBpZiBoZSBoYWQgY2hvc2V7WyYqJl19biwgYnkgcHN5Y2hvLSANCmxvZ2ljYWwgZmVuY2UgaGF2ZSB0dXJuZWQgYXNpZGUgdGhlIHdlYXBvbnMgb2YgdGhvc2UgYXMtIA0Kc3tbJiomXX1haWxhbnRzIHdobyBsYXkgdG8gaGlzIGNoYXJnZSBpbXByb2JhYmlsaXR5IGFuZCB1bm5hdHUtIA0KcmFsbmVzcy4gQnV0IHRoZW4ge1smKiZdfXRoZSBrZXktbm90ZSBvZiB0aGUgcGxheSB3b3VsZCBoYXZlIA0KYmVlbiBzdHJ1Y2sgaW4gYW5vdGhlciBtb2RlLiBTaGFrc3BlcmV7WyYqJl19IGRpZCBub3QgYXQgYWxsIA0KY2FyZSB0byBqdXN0aWZ5IGhpbXNlbGYgYnkgc3BlY2lhbCBwbGVhZGluZyBhbmQgcHN5Y2hvbG9neXtbJiomXX0gDQppY2FsIGZlbmNlLiBUaGUgc2N1bHB0b3Igb2YgdGhlIExhb2Nvb24gaGFzIG5vdCBlbmdyYXZlZCANCmJlbG93IGhpcyBncm91e1smKiZdfXAgdGhlIGxpbmVzIG9mIFZpcmdpbCB3aGljaCBkZXNjcmliZSB0aGUgDQpwcm9ncmVzcyBvZiB0aGUgc2VycGVudCB0b3dhcmRzIGh7WyYqJl19aXMgdmljdGltcyA7IGhlIHdhcyBpbi0gDQp0ZXJlc3RlZCBpbiB0aGUgc3VwcmVtZSBtb21lbnQgb2YgdGhlIGZhdGhlclwncyBhZ297WyYqJl19bnksIA0KYW5kIGluIHRoZSBwaXRlb3VzIGVmZm9ydCBhbmQgdW5hdmFpbGluZyBhcHBlYWwgb2YgdGhlIA0KY2hpbGRyZW4uIFNoYXtbJiomXX1rc3BlcmUsIGluIGFjY29yZGFuY2Ugd2l0aCBoaXMgZHJhbWF0aWMgDQptZXRob2QsIGRyb3ZlIGZvcndhcmQgYWNyb3NzIHRoZSBpe1smKiZdfW50ZXJ2ZW5pbmcgYWNjaWRlbnRzIA0KdG93YXJkcyB0aGUgcGFzc2lvbiBvZiBMZWFyIGluIGFsbCBpdHMgc3RhZ2VzLCBoaXMgd2l7WyYqJl19bGQgcmUtIA0Kdm9sdCBhZ2FpbnN0IGh1bWFuaXR5LCBoaXMgY29uZmxpY3Qgd2l0aCB0aGUgcG93ZXJzIG9mIA0KbmlnaHQgYW5kIHtbJiomXX10ZW1wZXN0LCBoaXMgcmVzdG9yYXRpb24gdGhyb3VnaCB0aGUgc2FjcmVkIA0KYmFsbSBvZiBhIGRhdWdodGVyXCdzIGxvdmUuIA0KDXtbJiomXX0KSVRldmVydGhlbGVzcywgdGhvdWdoIGl0cyBjaGllZiBwdXJwb3NlIGJlIHRvIGdldCB0aGUgDQpmb3JjZXMgb2YgdGhlIGRyYW1he1smKiZdfSBpbnRvIHBvc2l0aW9uIGJlZm9yZSB0aGVpciBwbGF5IHVwb24gDQpvbmUgYW5vdGhlciBiZWdpbnMsIHRoZSBmaXJzdCBzY2VuZSB7WyYqJl19Y2Fubm90IGJlIGluY29oZXJlbnQuIA0KSW4gdGhlIG9wZW5pbmcgc2VudGVuY2UgU2hha3NwZXJlIGdpdmVzIHVzIGNsZWFybHkgdHtbJiomXX1vIHVuLSANCmRlcnN0YW5kIHRoYXQgdGhlIHBhcnRpdGlvbiBvZiB0aGUga2luZ2RvbSBiZXR3ZWVuIEFsLSANCmJhbnkgYW5kIENve1smKiZdfXJud2FsbCBpcyBhbHJlYWR5IGFjY29tcGxpc2hlZC4gSW4gdGhlIGNvbi0gDQpjbHVkaW5nIHNlbnRlbmNlcyB3ZSBhcmUgcmVtaW57WyYqJl19ZGVkIG9mIExlYXJcJ3MgXCIgaW5jb25zdGFudCANCnN0YXJ0cyxcIiBvZiBcInRoZSB1bnJ1bHkgd2F5d2FyZG5lc3MgdGhhdCBpbmZpcm17WyYqJl19IGFuZCANCmNob2xlcmljIHllYXJzIGJyaW5nIHdpdGggdGhlbS5cIiBJdCBpcyBldmlkZW50bHkgaW50ZW5kKiANCg0KMiAzNCBTaGF7WyYqJl19a3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQplZCB0aGF0IHdlIHNob3VsZCB1bmRlcnN0YW5kIHRoZSBkZW1hbmQgbWFkZXtbJiomXX0gdXBvbiANCmhpcyBkYXVnaHRlcnMgZm9yIGEgcHJvZmVzc2lvbiBvZiB0aGVpciBsb3ZlIHRvIGhhdmQgYmVlbiANCmEgc3VkZGVue1smKiZdfSBmcmVhayBvZiBzZWxmIC1pbmR1bGdlZCB3YXl3YXJkbmVzcywgaW4gd2hpY2ggDQp0aGVyZSB3YXMgc29tZXRoaW5nIG9mIGplc3R7WyYqJl19LCBzb21ldGhpbmcgb2YgdW5yZWFzb24sIHNvbWUtIA0KdGhpbmcgb2YgdGhlIGluZmlybWl0eSB3aGljaCByZXF1aXJlcyBkZW1vbntbJiomXX1zdHJhdGlvbnMgb2YgDQp0aGUgaGVhcnQuXiBIYXZpbmcgbWFkZSB0aGUgZGVtYW5kLCBob3dldmVyLCBpdCBtdXN0IA0Kbm90IGJle1smKiZdfSByZWZ1c2VkLiBMZWFyXCdzIHdpbGwgbXVzdCBiZSBvcHBvc2VsZXNzLiBJdCBpcyANCnRoZSBjZW50cmUgYW5kIHByaW1lIGZvcmNle1smKiZdfSBvZiBoaXMgbGl0dGxlIHVuaXZlcnNlLiBUbyBiZSANCnRocm93biBvdXQgb2YgdGhpcyBwYXNzaW9uYXRlIHdpbGZ1bG5lc3MsIHR7WyYqJl19byBiZSBtYWRlIGEgDQpwYXNzaXZlIHRoaW5nLCB0byBiZSBzdHJpcHBlZCBmaXJzdCBvZiBhZmZlY3Rpb24sIHRoZW4gb2YgDQpwb3tbJiomXX13ZXIsIHRoZW4gb2YgaG9tZSBvciBzaGVsdGVyLCBsYXN0LCBvZiByZWFzb24gaXRzZWxmLCBhbmQsIA0KZmluYWxseSwgdG8gbGVhe1smKiZdfXJuIHRoZSBwcmVjaW91c25lc3Mgb2YgdHJ1ZSBsb3ZlIG9ubHkgYXQgdGhlIA0KbW9tZW50IHdoZW4gaXQgbXVzdCBiZSBmb3JldmV7WyYqJl19ciByZW5vdW5jZWQg4oCUIHN1Y2ggaXMgdGhlIA0KYXdmdWwgYW5kIHB1cmlmeWluZyBvcmRlYWwgdGhyb3VnaCB3aGljaCBMZWFyIHtbJiomXX1pcyBjb20tIA0KcGVsbGVkIHRvIHBhc3MuIA0KDQpTaGFrc3BlcmUgXCIgdGFrZXMgaW5ncmF0aXR1ZGUsXCIgVmljdG9yIEh1Z28gaGF7WyYqJl19cyBzYWlkLCANClwiYW5kIGhlIGdpdmVzIHRoaXMgbW9uc3RlciB0d28gaGVhZHMsIEdvbmVyaWwgLiAuIC4gYW5kIA0KUmVnYW4uXCdcJ3tbJiomXX0gVGhlIHR3byB0ZXJyaWJsZSBjcmVhdHVyZXMgYXJlLCBob3dldmVyLCBkaXMtIA0KDQoqIENvbGVyaWRnZSB3cml0ZXMsIFwiIFRoZXtbJiomXX0gZmlyc3QgZm91ciBvciBmaXZlIGxpbmVzIG9mIHRoZSBwbGF5IGxldCB1cyBrbm93IA0KdGhhdCB0aGUgdHJpYWwgaXMgYnV0IGEge1smKiZdfXRyaWNrIDsgYW5kIHRoYXQgdGhlIGdyb3NzbmVzcyBvZiB0aGUgb2xkIEtpbmdcJ3MgcmFnZSANCmlzIGluIHBhcnQgdGhlIG5hdHVye1smKiZdfWFsIHJlc3VsdCBvZiBhIHNpbGx5IHRyaWNrIHN1ZGRlbmx5IGFuZCBtb3N0IHVuZXhwZWN0ZWRseSANCmJhZmZsZWQgYW5kIGRpc2F7WyYqJl19cHBvaW50ZWQuXCIgRHIuIEJ1Y2tuaWxsIG1haW50YWlucyB0aGF0IHRoZSBwYXJ0aXRpb24gb2YgdGhlIA0Ka2luZ2RvbSBpcyBcIiB0e1smKiZdfWhlIGZpcnN0IGFjdCBvZiBMZWFyXCdzIGRldmVsb3BpbmcgaW5zYW5pdHkuXCIgU2hhSmNlc3BlYXJlLUphaHItIA0KaHVjaHkgdm9sLntbJiomXX0gaWkuLCBjb250YWlucyBhIHNob3J0IGFuZCBpbnRlcmVzdGluZyBhcnRpY2xlIGJ5IFVscmljaSBvbiBcIiBMdWR3aWcgDQpEZXZyaXtbJiomXX1lbnQgYXMgS2luZyBMZWFyLlwiIFRoYXQgZ3JlYXQgYWN0b3IsIGlmIFVscmljaSBtaWdodCB0cnVzdCBoaXMgb3duIGltLSANCnByZXtbJiomXX1zc2lvbiwgd291bGQgc2VlbSB0byBoYXZlIHVuZGVyc3Rvb2QgdGhlIGZpcnN0IHNjZW5lIG9mIHRoZSBwbGF5IGluIHRoZSANCnNle1smKiZdfW5zZSBpbiB3aGljaCBVbHJpY2kgaGltc2VsZiBleHBsYWlucyBpdCDigJQgdml6LiwgdGhhdCBMZWFyXCdzIGRlbWFuZCBmb3IgYSBke1smKiZdfWVjLSANCmxhcmF0aW9uIG9mIGhpcyBkYXVnaHRlclwncyBsb3ZlIHdhcyBzdWRkZW4gYW5kIHNwb3J0aXZlLCBtYWRlIHBhcnRseSB0e1smKiZdfW8gcGFzcyANCnRoZSB0aW1lIHVudGlsIHRoZSBhcnJpdmFsIG9mIEJ1cmd1bmR5IGFuZCBGcmFuY2UuIEhhdmluZyBhc3NpZ25lZCB7WyYqJl19dGhlaXIgDQpwb3J0aW9ucyB0byBHb25lcmlsIGFuZCBSZWdhbiwgdGhlcmUgY291bGQgbm90IGJlIGEgc2VyaW91cyBtZWFuaW5nIHtbJiomXX1pbiBMZWFyXCdzIA0KDQp3b3JkcyB0byBDb3JkZWxpYSA6IA0KDQpcIiBXaGF0IGNhbiB5b3Ugc2F5IHRvIGRyYXcgDQpBIHRoaXJkIG17WyYqJl19b3JlIG9wdWxlbnQgdGhhbiB5b3VyIHNpc3RlcnMgP1wiIA0KDQpUaGUgd29yZHMgd2VyZSBzYWlkIHdpdGggYSBzbWlsZSwgeWV0LCB7WyYqJl19YXQgdGhlIHNhbWUgdGltZSwgd2l0aCBhIHNlY3JldCBhbmQgDQpmbGluZ2luZyBkZXNpcmUgZm9yIHRoZSBkZW1vbnN0cmF0aW9uIHtbJiomXX1vZiBsb3ZlIGRlbWFuZGVkLiBBbGwgdGhlIG1vcmUgaXMgDQpMZWFyIHN1cnByaXNlZCBhbmQgb2ZmZW5kZWQgYnkgQ29yZGVsaWFcJ3tbJiomXX1zIGVhcm5lc3QgYW5kIGFsbW9zdCBqdWRpY2lhbCByZXBseS4gDQpCdXQgQ29yZGVsaWEgaXMgYXQgb25jZSBzdXBwcmVzc2luZyBhe1smKiZdfW5kIGluIHRoaXMgd2F5IG1hbmlmZXN0aW5nIGhlciBpbmRpZ25hKiANCnRpb24gYWdhaW5zdCBoZXIgc2lzdGVyc1wnIGhlYXJ0bGVze1smKiZdfXMgZmxhdHRlcnkuIA0KDQpPdGhlbGxvOyBNYWNiZXRoOyBMZWFyLiAyMzUgDQoNCnRpbmd1aXNoYWJsZS4gR29uZXJpbCBpcyB0aGV7WyYqJl19IGNhbG0gd2llbGRlciBvZiBhIHBpdGlsZXNzIA0KZm9yY2UsIHRoZSByZXNvbHV0ZSBpbml0aWF0b3Igb2YgY3J1ZWx0eS4gUmVnYXtbJiomXX1uIGlzIGEgc21hbGwtIA0KZXIsIHNocmlsbGVyLCBmaWVyY2VyLCBtb3JlIGVhZ2VyIHBpZWNlIG9mIG1hbGljZS4gVGhlIHR5ci0ge1smKiZdfQ0KYW5ueSBvZiB0aGUgZWxkZXIgc2lzdGVyIGlzIGEgY29sZCwgcGVyc2lzdGVudCBwcmVzc3VyZSwgYXMgDQpsaXR0bGUgYWZmZWN7WyYqJl19dGVkIGJ5IHRlbmRlcm5lc3Mgb3Igc2NydXBsZSBhcyB0aGUgYWN0aW9uIG9mIA0Kc29tZSBjcnVzaGluZyBoYW1tZXI7IFJlZ2FuXCd7WyYqJl19cyBmZXJvY2l0eSBpcyBtb3JlIHVuLSANCm1lYXN1cmVkLCBhbmQgbGVzcyBhYm5vcm1hbCBvciBtb25zdHJvdXMuIFJlZ2FuIHdvdXtbJiomXX1sZCANCmF2b2lkIGhlciBmYXRoZXIsIGFuZCwgd2hpbGUgc2hlIGNvbmZyb250cyBoaW0gYWxvbmUsIHF1YWlscyANCmEgbGl0dGxle1smKiZdfSBhcyBzaGUgaGVhcnMgdGhlIG9sZCBtYW5cJ3MgY3Vyc2UgcHJvbm91bmNlZCBhZ2FpbnN0IA0KaGVyIHNpc3RlciA6IA0KDQpcIiB0aHtbJiomXX1lIGJsZXN0IGdvZHMgISBzbyB3aWxsIHlvdSB3aXNoIG9uIG1lIA0KV2hlbiB0aGUgcmFzaCBtb29kIGlzIG9uLlwiIA0KDQpCdXQgR3tbJiomXX1vbmVyaWwga25vd3MgdGhhdCBhIGhlbHBsZXNzIG9sZCBtYW4gaXMgb25seSBhIGhlbHAtIA0KbGVzcyBvbGQgbWFuLCB0aGF0IHdve1smKiZdfXJkcyBhcmUgbWVyZWx5IHdvcmRzLiBXaGVuLCBhZnRlciANCkxlYXJcJ3MgdGVycmlibGUgbWFsZWRpY3Rpb24sIGhlIHJpZGVzIGF3e1smKiZdfWF5IHdpdGggaGlzIHRyYWluLCANCkdvbmVyaWwsIHdobyB3b3VsZCBicmluZyB0aGluZ3MgdG8gYW4gaXNzdWUsIHB1cnN1ZXMgaGV7WyYqJl19ciANCmZhdGhlciwgZGV0ZXJtaW5lZCB0byBzZWUgbWF0dGVycyBvdXQgdG8gdGhlIGVuZC5eIFRvIA0KY29tcGxldGUgdGhlIGhvcntbJiomXX1yb3IgdGhleSBwcm9kdWNlIGluIHVzLCB0aGVzZSBtb25zdGVycyANCmFyZSBhbW9yb3VzLiBUaGVpciBsb3ZlIGlzIGV2ZW4gbW9ye1smKiZdfWUgaGlkZW91cyB0aGFuIHRoZWlyIA0KaGF0ZS4gVGhlIHdhcnMgb2YgDQoNClwiIERyYWdvbnMgb2YgdGhlIHByaW1lIA0KVGhhdCB0e1smKiZdfWFyZSBlYWNoIG90aGVyIGluIHRoZWlyIHNsaW1lIFwiIA0KDQpmb3JtZWQgYSBzcGVjdGFjbGUgbGVzcyBwcm9kaWdpb3VzIHRoYW4ge1smKiZdfXRoZWlyIG11dHVhbCANCmJsYW5kaXNobWVudHMgYW5kIGNhcmVzc2VzLiANCg0KXCIgUmVnYW4sIEkga25vdyB5b3VyIGxhZHkgZG9le1smKiZdfXMgbm90IGxvdmUgaGVyIGh1c2JhbmQgOyANCkkgYW0gc3VyZSBvZiB0aGF0IDogYW5kIGF0IGhlciBsYXRlIGJlaW5nIGhlcmUgDQp7WyYqJl19U2hlIGdhdmUgc3RyYW5nZSBvZWlsbGFkZXMgYW5kIG1vc3Qgc3BlYWtpbmcgbG9va3MgDQpUbyBub2JsZSBFZG11bmQuXCIgDQoNClR7WyYqJl19byB0aGUgbGFzdCBHb25lcmlsIGlzIHRydWUgdG8gaGVyIGNoYXJhY3Rlci4gUmVnYW4gaXMgDQpkZXNwYXRjaGVkIG91dCBvZiBsaXtbJiomXX1mZSBieSBoZXIgc2lzdGVyIDsgR29uZXJpbCB0aHJ1c3RzIGhlciANCm93biBsaWZlIGFzaWRlLCBhbmQgYm9sZGx5IGVudGVycyB0e1smKiZdfWhlIGdyZWF0IGRhcmtuZXNzIG9mIHRoZSANCmdyYXZlLiANCg0KT2YgdGhlIHNlY29uZGFyeSBwbG90IG9mIHRoaXMgdHJhZ2VkeSB7WyYqJl194oCUIHRoZSBzdG9yeSBvZiANCg0KKiBJdCBpcyBHb25lcmlsIHdobyBmaXJzdCBzdWdnZXN0cyB0aGUgcGx1Y2tpbmctb3V0IG9mIHtbJiomXX1HbG91Y2VzdGVyXCdzIGV5ZXMuIA0KVGhlIHBvaW50cyBvZiBjb250cmFzdCBiZXR3ZWVuIHRoZSBzaXN0ZXJzIGFyZSB3ZWxsIGJyb3tbJiomXX11Z2h0IG91dCBieSBHZXJ2aW51YSANCg0KMjM2IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCkdsb3VjZXN0ZXIge1smKiZdfWFuZCBoaXMgc29ucyDigJQgU2NobGVnZWwgaGFzIGV4cGxhaW5lZCBvbmUgDQpjaGllZiBzaWduaWpCLmNhbmNlIDogXCIgV2VyZSBMe1smKiZdfWVhciBhbG9uZSB0byBzdWZmZXIgZnJvbSBoaXMgDQpkYXVnaHRlcnMsIHRoZSBpbXByZXNzaW9uIHdvdWxkIGJlIGxpbWl0ZWQgdG97WyYqJl19IHRoZSBwb3ctIA0KZXJmdWwgY29tcGFzc2lvbiBmZWx0IGJ5IHVzIGZvciBoaXMgcHJpdmF0ZSBtaXNmb3J0dW5lLiANCkJ1dCB0d3tbJiomXX1vIHN1Y2ggdW5oZWFyZC1vZiBleGFtcGxlcyB0YWtpbmcgcGxhY2UgYXQgdGhlIA0Kc2FtZSB0aW1lIGhhdmUgdGhlIGFwcGVhcmFue1smKiZdfWNlIG9mIGEgZ3JlYXQgY29tbW90aW9uIGluIA0KdGhlIG1vcmFsIHdvcmxkIDsgdGhlIHBpY3R1cmUgYmVjb21lcyBnaWdhbnRpYyx7WyYqJl19IGFuZCBmaWxscyANCnVzIHdpdGggc3VjaCBhbGFybSBhcyB3ZSBzaG91bGQgZW50ZXJ0YWluIGF0IHRoZSBpZGVhIA0KdGhhdCB0aHtbJiomXX1lIGhlYXZlbmx5IGJvZGllcyBtaWdodCBvbmUgZGF5IGZhbGwgZnJvbSB0aGVpciANCmFwcG9pbnRlZCBvcmJpdHMuXCIgXiBUaGUgdHtbJiomXX1yZWFjaGVyeSBvZiBFZG11bmQsIGFuZCB0aGUgDQp0b3J0dXJlIHRvIHdoaWNoIEdsb3VjZXN0ZXIgaXMgc3ViamVjdGVkLCBhcmUge1smKiZdfW91dCBvZiB0aGUgDQpjb3Vyc2Ugb2YgZmFtaWxpYXIgZXhwZXJpZW5jZSA7IGJ1dCB0aGV5IGFyZSBjb21tb25wbGFjZSANCmFuZCB7WyYqJl19cHJvc2FpYyBpbiBjb21wYXJpc29uIHdpdGggdGhlIGluaHVtYW5pdHkgb2YgdGhlIA0Kc2lzdGVycyBhbmQgdGhlIGFnb255IG9mIHtbJiomXX1MZWFyLiBXaGVuIHdlIGhhdmUgY2xpbWJlZCANCnRoZSBzdGVlcCBhc2NlbnQgb2YgR2xvdWNlc3RlclwncyBtb3VudCBvZiBwYXNzaXtbJiomXX1vbiwgd2Ugc2VlIA0Kc3RpbGwgYWJvdmUgdXMgYW5vdGhlciB2aWEgZG9sb3Jvc2EgbGVhZGluZyB0byB0aGF0IA0KDQpcIiBXYWxsIHtbJiomXX1vZiBlYWdsZS1iYWZmbGluZyBtb3VudGFpbiwgDQpCbGFjaywgd2ludHJ5LCBkZWFkLCB1bm1lYXN1cmVkLFwnKiANCg0KdG8gd2hpY3tbJiomXX1oIExlYXIgaXMgY2hhaW5lZC4gVGh1cyB0aGUgb25lIHN0b3J5IG9mIGhvcnJvciANCnNlcnZlcyBhcyBhIG1lYW5zIG9mIGFwcHJve1smKiZdfWFjaCB0byB0aGUgb3RoZXIsIGFuZCBoZWxwcyB1cyANCnRvIGNvbmNlaXZlIGl0cyBtYWduaXR1ZGUuIFRoZSB0d28sIGFzIFNjaGx7WyYqJl19ZWdlbCBvYnNlcnZlcywgDQpwcm9kdWNlIHRoZSBpbXByZXNzaW9uIG9mIGEgZ3JlYXQgY29tbW90aW9uIGluIHRoZSBtb3JhbCANCntbJiomXX13b3JsZC4gVGhlIHRodW5kZXIgd2hpY2ggYnJlYWtzIG92ZXIgb3VyIGhlYWQgZG9lcyANCm5vdCBzdWRkZW5seSBjZWFzZSB0byBye1smKiZdfWVzb3VuZCwgYnV0IGlzIHJlZHVwbGljYXRlZCwgbXVsdGktIA0KcGxpZWQsIGFuZCBtYWduaWZpZWQsIGFuZCByb2xscyBhd2F5IHd7WyYqJl19aXRoIGxvbmcgcmV2ZXJiZXJhLSANCnRpb24uIA0KDQpTaGFrc3BlcmUgYWxzbyBkZXNpcmVzIHRvIGF1Z21lbnQgdGhlIG1vcmFsIHtbJiomXX1teXN0ZXJ5LCANCnRoZSBncmFuZCBpbmV4cGxpY2FibGVuZXNzIG9mIHRoZSBwbGF5LiBXZSBjYW4gYXNzaWduIA0KY2F1c2VzIHRve1smKiZdfSBleHBsYWluIHRoZSBldmlsIGluIEVkbXVuZFwncyBoZWFydC4gSGlzIGJpcnRoIA0KaXMgc2hhbWVmdWwsIGFuZCB0aGUgYnJhbmQge1smKiZdfWJ1cm5zIGludG8gaGlzIGhlYXJ0IGFuZCBicmFpbi4gDQpIZSBoYXMgYmVlbiB0aHJvd24gYWJyb2FkIGluIHRoZSB3b3JsZCwgYW57WyYqJl19ZCBpcyBjb24tIA0Kc3RyYWluZWQgYnkgbm9uZSBvZiB0aGUgYm9uZHMgb2YgbmF0dXJlIG9yIG1lbW9yeSwgb2YgDQoqaSBJIGkgSXtbJiomXX0gaSDilqDilqAgSUkgaSZsdDsgDQoNCuKZpiBcIkxlY3R1cmVzIG9uIERyYW1hdGljIEFydCxcIiB0cmFuc2xhdGVkIGJ5IEouIEJsYWN7WyYqJl19aywgcC4gNDEyLiANCg0KT3RoZWxsbzsgTWFjYmV0aDsgTGVhci4gMjM3IA0KDQpoYWJpdCBvciBhc3NvY2lhdGlvbi4qIEEgaGFyZHtbJiomXX0sIHNjZXB0aWNhbCBpbnRlbGxlY3QsIHVuaW4tIA0Kc3BpcmVkIGFuZCB1bmZlZCBieSB0aGUgaW5zdGluY3RzIG9mIHRoZSBoZWFye1smKiZdfXQsIGNhbiBlYXNpbHkgDQplbm91Z2ggcmVhc29uIGF3YXkgdGhlIGNvbnNjaW91c25lc3Mgb2Ygb2JsaWdhdGlvbnMgdGhlIA0KbW97WyYqJl19c3Qgc2FjcmVkLiBFZG11bmRcJ3MgdGhvdWdodCBpcyBcImFjdGl2ZSBhcyBhIHZpcnVsZW50IA0KYWNpZCwgZWF0aW5nIGl0cyByYXBpe1smKiZdfWQgd2F5IHRocm91Z2ggYWxsIHRoZSB0aXNzdWVzIG9mIGh1bWFuIA0Kc2VudGltZW50LlwidCBIaXMgbWluZCBpcyBkZXN0aXR1dGUge1smKiZdfW9mIGRyZWFkIG9mIHRoZSBEaS0gDQp2aW5lIE5lbWVzaXMuIExpa2UgbGFnbywgbGlrZSBFaWNoYXJkIElJSS4sIGhlIGZpbmRzIHR7WyYqJl19aGUgDQpyZWd1bGF0aW5nIGZvcmNlIG9mIHRoZSB1bml2ZXJzZSBpbiB0aGUgZWdvIOKAlCBpbiB0aGUgaW4tIA0KZGl2aWR1YWwgd3tbJiomXX1pbGwuIEJ1dCB0aGF0IHRlcnJvciBvZiB0aGUgdW5zZWVuIHdoaWNoIEVkLSANCm11bmQgc2Nvcm5lZCBhcyBzbyBtdWNoIHN1cGVye1smKiZdfXN0aXRpb24gaXMgXCIgdGhlIGluaXRpYWwgcmVjLSANCm9nbml0aW9uIG9mIGEgbW9yYWwgbGF3IHJlc3RyYWluaW5nIGRlc2lyZSwge1smKiZdfWFuZCBjaGVja3MgdGhlIA0KaGFyZCBib2xkIHNjcnV0aW55IG9mIGltcGVyZmVjdCB0aG91Z2h0IGludG8gb2JsaWdhdGlvbnMgDQp7WyYqJl19d2hpY2ggY2FuIG5ldmVyIGJlIHByb3ZlZCB0byBoYXZlIGFueSBzYW5jdGl0eSBpbiB0aGUgDQphYnNlbmNlIG9mIGZlZWxpbmcuXCJ7WyYqJl19IFwiV2UgY2FuLCB0aGVyZWZvcmUsIGluIHNvbWUgZGVncmVlIA0KYWNjb3VudCBmb3IgRWRtdW5kXCdzIGJvbGQgZWdvaXNtIGFuZCBpe1smKiZdfW5odW1hbml0eS4gDQpXaGF0IG9ibGlnYXRpb25zIHNob3VsZCBhIGNoaWxkIGZlZWwgdG8gdGhlIG1hbiB3aG8sIGZvciANCmEgbW97WyYqJl19bWVudFwncyBzZWxmaXNoIHBsZWFzdXJlLCBoYWQgZGVncmFkZWQgYW5kIHN0YWluZWQgaGlzIA0KZW50aXJlIGxpZmU/IEluIGxpa2V7WyYqJl19IG1hbm5lciwgR2xvdWNlc3RlclwncyBzdWZmZXJpbmdzIGRvIA0Kbm90IGFwcGVhciB0byB1cyBpbmV4cGxpY2FibHkgbXlzdGVyaW97WyYqJl19dXMuIA0KDQpcIiBUaGUgZ29kcyBhcmUganVzdCwgYW5kIG9mIG91ciBwbGVhc2FudCB2aWNlcyANCk1ha2UgaW5zdHJ1bWVudHMgdG97WyYqJl19IHBsYWd1ZSB1cyA7IA0KVGhlIGRhcmsgYW5kIHZpY2lvdXMgcGxhY2Ugd2hlcmUgdGhlZSBoZSBnb3QgDQpDb3N0IGhpbSBoaXMgZXtbJiomXX15ZXMuXCIgDQoNCkJ1dCwgaGF2aW5nIGdvbmUgdG8gdGhlIGVuZCBvZiBvdXIgdGV0aGVyLCBhbmQgZXgtIA0KcGxhaW5lZCBhbGwgdHtbJiomXX1oYXQgaXMgZXhwbGljYWJsZSwgd2UgYXJlIG1ldCBieSBlbmlnbWFzIA0Kd2hpY2ggd2lsbCBub3QgYmUgZXhwbGFpbmVkLiBXZSB3e1smKiZdfWVyZSwgcGVyaGFwcywgc29tZS0gDQp3aGF0IHRvbyByZWFkeSB0byANCg0KXCIgVGFrZSB1cG9uIHVzIHRoZSBteXN0ZXJ5IG9mIHRoe1smKiZdfWluZ3MgDQpBcyBpZiB3ZSB3ZXJlIEdvZFwncyBzcGllcy5cIiAlIA0KDQpOb3cgd2UgYXJlIGJhZmZsZWQsIGFuZCBib3cgdGhlIGhlYXtbJiomXX1kIGluIHNpbGVuY2UuIElzIGl0LCANCg0KKiBHbG91Y2VzdGVyIChhY3QgaS4sIHNjLiAxKSBzYXlzIG9mIEVkbXVuZCwgXCIgSGUgaHtbJiomXX1hdGggYmVlbiBvdXQgbmluZSB5ZWFycywgDQphbmQgYXdheSBoZSBzaGFsbCBhZ2Fpbi5cIiANCg0KdCBUaGlzIGFuZCB0aGUgcXVvdHtbJiomXX1hdGlvbiBuZXh0IGZvbGxvd2luZyB3aWxsIGJlIHJlbWVtYmVyZWQgYnkgcmVhZGVycyBvZiANCl4qIFJvbW9sYSA7XCIgdGhleSBvY3tbJiomXX1jdXIgaW4gdGhhdCBtZW1vcmFibGUgY2hhcHRlciBlbnRpdGxlZCBcIiBUaXRvXCdzIERpbGVtbWEuXCcqIA0KDQpcXCBXb3JkcyBvZiBMZXtbJiomXX1hciAoYWN0IHYuLCBzYy4gMyksIA0KDQoyIDM4IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCmluZGVlZCwgdGhle1smKiZdfSBzdGFycyB0aGF0IGdvdmVybiBvdXIgY29uZGl0aW9uID8gVXBvbiB3aGF0IA0KdGhlb3J5IHNoYWxsIHdlIGFjY291bnQgZm9yIHR7WyYqJl19aGUgc2lzdGVyaG9vZCBvZiBhIEdvbmVyaWwgDQphbmQgYSBDb3JkZWxpYSAlIEFuZCB3aHkgaXMgaXQgdGhhdCBHbG91Y2VzdGVyLHtbJiomXX0gd2hvc2UgDQpzdWZmZXJpbmcgaXMgdGhlIHJldHJpYnV0aW9uIGZvciBwYXN0IG1pc2RlZWRzLCBzaG91bGQgYmUgDQpyZXN0b3Jle1smKiZdfWQgdG8gc3Bpcml0dWFsIGNhbG0gYW5kIGxpZ2h0LCBhbmQgc2hvdWxkIHBhc3MgYXdheSANCmluIGEgcmFwdHVyZSBvZiBtaW5nbGV7WyYqJl19ZCBnbGFkbmVzcyBhbmQgZ3JpZWYsIA0KDQpcIiBIaXMgZmxhd00gaGVhcnQsIA0KQWxhY2sgISB0b28gd2VhayB0aGUgY29uZmxpY3R7WyYqJl19IHRvIHN1cHBvcnQsIA0KXCdUd2l4dCB0d28gZXh0cmVtZXMgb2YgcGFzc2lvbiwgam95IGFuZCBncmllZiwgDQpCdXJzdCBzbWlsaW57WyYqJl19Z2x5IDsgDQoNCndoaWxlIExlYXIsIGEgbWFuIG1vcmUgc2lubmVkIGFnYWluc3QgdGhhbiBzaW5uaW5nLCANCnNob3VsZCBiZSByb3tbJiomXX1iYmVkIG9mIHRoZSBjb21mb3J0IG9mIENvcmRlbGlhXCdzIGxvdmUsIA0Kc2hvdWxkIGJlIHN0cmV0Y2hlZCB0byB0aGUgbGFzdCBtb3tbJiomXX1tZW50IHVwb24gXCJ0aGUgcmFjayANCm9mIHRoaXMgdG91Z2ggd29ybGQsXCIgYW5kIHNob3VsZCBleHBpcmUgaW4gdGhlIGNsaW1heCB7WyYqJl19b2YgDQphIHBhcm94eXNtIG9mIHVucHJvZHVjdGl2ZSBhbmd1aXNoID8gDQoNClNoYWtzcGVyZSBkb2VzIG5vdCBhdHRlbXB0IHRvIHtbJiomXX1hbnN3ZXIgdGhlc2UgcXVlc3Rpb25zLiANClRoZSBpbXByZXNzaW9uIHdoaWNoIHRoZSBmYWN0cyB0aGVtc2VsdmVzIHByb2R1Y2Use1smKiZdfSB0aGVpciANCmluZmx1ZW5jZSB0byBcIiBmcmVlLCBhcm91c2UsIGRpbGF0ZSxcIiBzZWVtcyB0byBTaGFrc3BlcmUgDQptb3JlIHByZXtbJiomXX1jaW91cyB0aGFuIGFueSBwcm9wb3NlZCBleHBsYW5hdGlvbiBvZiB0aGUgZmFjdHMgDQp3aGljaCBjYW5ub3QgYmUgdmVyaWZpZWQue1smKiZdfSBUaGUgaGVhcnQgaXMgcHVyaWZpZWQgbm90IGJ5IA0KZG9nbWEsIGJ1dCBieSBwaXR5IGFuZCB0ZXJyb3IuIEJ1dCB0aGVyZSBhcmV7WyYqJl19IG90aGVyIHF1ZXMtIA0KdGlvbnMgd2hpY2ggdGhlIHBsYXkgc3VnZ2VzdHMuIElmIGl0IGJlIHRoZSBzdGFycyB0aGF0IA0KZ292ZXtbJiomXX1ybiBvdXIgY29uZGl0aW9ucyA7IGlmIHRoYXQgYmUsIGluZGVlZCwgYSBwb3NzaWJpbGl0eSANCndoaWNoIEdsb3VjZXN0ZXIsIGlue1smKiZdfSBoaXMgZmlyc3Qgc2hvY2sgYW5kIGNvbmZ1c2lvbiBvZiANCm1pbmQsIGRlY2xhcmVzLCANCg0KXCIgQXMgZmxpZXMgdG8gd2FudG9ue1smKiZdfSBib3lzIGFyZSB3ZSB0byB0aGUgZ29kcyA7IA0KVGhleSBraWxsIHVzIGZvciB0aGVpciBzcG9ydCA7XCIgDQoNCmlmLCBtZWFzdXJle1smKiZdfWQgYnkgbWF0ZXJpYWwgc3RhbmRhcmRzLCB0aGUgaW5ub2NlbnQgYW5kIHRoZSANCmd1aWx0eSBwZXJpc2ggYnkgYSBsaWtlIGZhdGV7WyYqJl19IOKAlCB3aGF0IHRoZW4gPyBTaGFsbCB3ZSB5aWVsZCANCm91cnNlbHZlcyB0byB0aGUgbHVzdCBmb3IgcGxlYXN1cmUgPyBzaGFsbHtbJiomXX0gd2Ugb3JnYW5pemUgb3VyIA0KbGl2ZXMgdXBvbiB0aGUgcHJpbmNpcGxlcyBvZiBhIHN0dWRpb3VzIGFuZCBwaXRpbGVzcyBlZ28te1smKiZdfSANCmlzbT8gDQoNClRvIHRoZXNlIHF1ZXN0aW9ucyB0aGUgYW5zd2VyIG9mIFNoYWtzcGVyZSBpcyBjbGVhciANCmFuZCBlbXBoYXR7WyYqJl19aWMuIFNoYWxsIHdlIHN0YW5kIHVwb24gR29uZXJpUHMgc2lkZSBvciANCnVwb24gdGhhdCBvZiBDb3JkZWxpYSA/IFNoYWxsIHdlIHtbJiomXX1qb2luIEVkZ2FyIG9yIGpvaW4gdGhlIA0KDQpPdGhlbGxvOyBNYWNiZXRoOyBMZWFyLiAyMzkgDQoNCnRyYWl0b3I/IFNoYWtzcGVye1smKiZdfWUgb3Bwb3NlcyB0aGUgcHJlc2VuY2UgYW5kIHRoZSBpbmZsdS0gDQplbmNlIG9mIGV2aWwgbm90IGJ5IGFueSB0cmFuc2NlbmRlbnR7WyYqJl19YWwgZGVuaWFsIG9mIGV2aWwsIGJ1dCANCmJ5IHRoZSBwcmVzZW5jZSBvZiBodW1hbiB2aXJ0dWUsIGZpZGVsaXR5LCBhbmQgc2VsZntbJiomXX0gLXNhY3JpZmktIA0KY2lhbCBsb3ZlLiBJbiBubyBwbGF5IGlzIHRoZXJlIGEgY2xlYXJlciwgYW4gaW50ZW5zZXIgbWFuLSANCmlme1smKiZdfWVzdGF0aW9uIG9mIGxveWFsIG1hbmhvb2QsIG9mIHN0cm9uZyBhbmQgdGVuZGVyIHdvbWFuLSANCmhvb2QuIFRoZSBkZXZvdGlvbiB7WyYqJl19b2YgS2VudCB0byBoaXMgbWFzdGVyIGlzIGEgcGFzc2lvbi0gDQphdGUsIHVuc3ViZHVhYmxlIGRldm90aW9uLCB3aGljaCBtaWdodHtbJiomXX0gY2hvb3NlIGZvciBpdHMgDQp3YXRjaHdvcmQgdGhjaXNheWluZyBvZiBHb2V0aGUsIFwiSSBsb3ZlIHlvdTsgd2hhdCBpcyANCnRoYXtbJiomXX10IHRvIHlvdT9cIiBFZGdhclwncyBub2JpbGl0eSBvZiBuYXR1cmUgaXMgbm90IGRpcy0gDQpndWlzZWQgYnkgdGhlIGJlZ2dhclwncyBye1smKiZdfWFncyA7IGhlIGlzIHRoZSBza2lsZnVsIHJlc2lzdGVyIG9mIA0KZXZpbCwgdGhlIGNoYW1waW9uIG9mIHJpZ2h0IHRvIHRoZSB1dHR7WyYqJl19ZXJhbmNlLiBBbmQgaWYgDQpHb25lcmlsIGFuZCBFZWdhbiBhbG9uZSB3b3VsZCBsZWF2ZSB0aGUgd29ybGQgdW5pbnRlbC0gDQpsaXtbJiomXX1naWJsZSBhbmQgZGVzcGVyYXRlLCB0aGVyZSBpcyANCg0KXCIgT25lIGRhdWdodGVyLCANCldobyByZWRlZW1zIG5hdHVyZSBmcm9tIHtbJiomXX10aGUgZ2VuZXJhbCBjdXJzZSANCldoaWNoIHR3YWluIGhhdmUgYnJvdWdodCBoZXIgdG8uXCIgDQoNCldlIGZlZWwgdGhyb3VnaG91dHtbJiomXX0gdGhlIHBsYXkgdGhhdCBldmlsIGlzIGFibm9ybWFsOyBhIA0KY3Vyc2Ugd2hpY2ggYnJpbmdzIGRvd24gZGVzdHJ1Y3Rpb24gdXBve1smKiZdfW4gaXRzZWxmIDsgdGhhdCBpdCANCmlzIHdpdGhvdXQgYW55IGxvbmcgY2FyZWVyIDsgdGhhdCBldmlsLWRvZXIgaXMgYXQgdmFyaWF7WyYqJl19bmNlIA0Kd2l0aCBldmlsLWRvZXIuIEJ1dCBnb29kIGlzIG5vcm1hbCA7IGZvciBpdCB0aGUgY2FyZWVyIGlzIA0KbG9uZyA7IGFuZHtbJiomXX0gXCIgYWxsIGhvbmVzdCBhbmQgZ29vZCBtZW4gYXJlIGRpc3Bvc2VkIHRvIGJlLSANCmZyaWVuZCBob25lc3QgYW5kIGdvb2QgbWVuLHtbJiomXX0gYXMgc3VjaC5cIiBeIA0KDQpcIiBDb3JkZWxpYS4gdGhvdSBnb29kIEtlbnQsIGhvdyBzaGFsbCBJIGxpdmUsIGFuZCB3b3JrLCANClR7WyYqJl19byBtYXRjaCB0aHkgZ29vZG5lc3MgISBNeSBsaWZlIHdpbGwgYmUgdG9vIHNob3J0LCANCkFuZCBldmVyeSBtZWFzdXJlIGZhaWwgbXtbJiomXX1lLiANCg0KS2VudCwgVG8gYmUgYWNrbm93bGVkZ2VkLCBtYWRhbSwgaXMgb3ZlcnBhaWQuIA0KQWxsIG15IHJlcG9ydHMgZ28gd2l0e1smKiZdfWggdGhlIG1vZGVzdCB0cnV0aCA7IA0KTm9yIG1vcmUsIG5vciBjbGlwcGVkLCBidXQgc28uXCIgDQoNCmxpVGV2ZXJ0aGVsZXNzLCB3e1smKiZdfWhlbiBldmVyeXRoaW5nIGhhcyBiZWVuIHNhaWQgdGhhdCBjYW4gDQpiZSBzYWlkIHRvIG1ha2UgdGhlIHdvcmxkIGludGVsbGlnaWJ7WyYqJl19bGUsIHdoZW4gd2UgaGF2ZSANCnN0cml2ZW4gb3VyIHV0bW9zdCB0byByZWFsaXplIGFsbCB0aGUgcG9zc2libGUgZ29vZCB0aGF0IHtbJiomXX0NCmV4aXN0cyBpbiB0aGUgd29ybGQsIGEgbmVlZCBvZiBmb3J0aXR1ZGUgcmVtYWlucy4gDQoNCkl0IGlzIHdvcnRoeSBvZiBub3Rle1smKiZdfSB0aGF0IGVhY2ggb2YgdGhlIHByaW5jaXBhbCBwZXJzb24tIA0KYWdlcyBvZiB0aGUgcGxheSBpcyBicm91Z2h0IGludG8gcHJlc2V7WyYqJl19bmNlIG9mIHRob3NlIG15cy0gDQoNCiogQnV0bGVyLCBcIiBBbmFsb2d5LFwiIHBhcnQgaS4sIGNoLiBpaWkuIA0KDQoyNDAgU2hha3Nwe1smKiZdfWVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCnRlcmlvdXMgcG93ZXJzIHdoaWNoIGRvbWluYXRlIGxpZmUgYW5kIHByZXNpZGV7WyYqJl19IG92ZXIgaHUtIA0KbWFuIGRlc3RpbnkgOyBhbmQgZWFjaCwgYWNjb3JkaW5nIHRvIGhpcyBjaGFyYWN0ZXIsIGlzIG1hZGUgDQp0b3tbJiomXX0gb2ZmZXIgYW4gaW50ZXJwcmV0YXRpb24gb2YgdGhlIGdyZWF0IHJpZGRsZS4gT2YgdGhlc2UgDQppbnRlcnByZXRhdGlvbnMsIG5ve1smKiZdfW5lIGlzIGFkZXF1YXRlIHRvIGFjY291bnQgZm9yIGFsbCB0aGUgDQpmYWN0cy4gU2hha3NwZXJlIChkaWZmZXJpbmcgaW4gdGhpcyB7WyYqJl19ZnJvbSB0aGUgb2xkIHBsYXkpIA0KcGxhY2VkIHRoZSBzdG9yeSBpbiBoZWF0aGVuIHRpbWVzLCBwYXJ0bHksIHdlIG1heSBzdXItIHtbJiomXX0NCm1pc2UsIHRoYXQgaGUgbWlnaHQgYmUgYWJsZSB0byBwdXQgdGhlIHF1ZXN0aW9uIGJvbGRseSwgDQpcIiBXaGF0IGFyZSB0aGUgZ3tbJiomXX1vZHMgP1wiIEVkbXVuZCwgYXMgd2UgaGF2ZSBzZWVuLCBkaXMtIA0KY292ZXJzIG5vIHBvd2VyIG9yIGF1dGhvcml0eSBoaWdoZXIgdHtbJiomXX1oYW4gdGhlIHdpbGwgb2YgdGhlIA0KaW5kaXZpZHVhbCBhbmQgYSBoYXJkIHRyZW5jaGFudCBpbnRlbGxlY3QuIEluIHRoZSBvcGVue1smKiZdfS0gDQppbmcgb2YgdGhlIHBsYXkgaGUgdXR0ZXJzIGhpcyBpcm9uaWNhbCBhcHBlYWwgOiANCg0KXCIgSSBncm93IDsgSSBwcm9zcGVye1smKiZdfSDigJQgDQpOb3cgZ29kcyBzdGFuZCB1cCBmb3IgYmFzdGFyZHMuXCIgKiANCg0KSXQgaXMgbm90IHVudGlsIGhlIGlzIG1vcnRhbGx5e1smKiZdfSB3b3VuZGVkLCB3aXRoIGhpcyBicm90aGVyIA0Kc3RhbmRpbmcgb3ZlciBoaW0sIHRoYXQgdGhlIHJlY29nbml0aW9uIG9mIGEgbW97WyYqJl19cmFsIGxhdyANCmZvcmNlcyBpdHNlbGYgcGFpbmZ1bGx5IHVwb24gaGlzIGNvbnNjaW91c25lc3MsIGFuZCBoZSANCm1ha2VzIGhpc3tbJiomXX0gYml0dGVyIGNvbmZlc3Npb24gb2YgZmFpdGggOiANCg0KXCIgVGhlIHdoZWVsIGlzIGNvbWUgZnVsbCBjaXJjbGUsIEkgYW0gaGVyZXtbJiomXX0uXCIgDQoNCkhpcyBzZWxmLWluZHVsZ2VudCBmYXRoZXIgaXMsIGFmdGVyIHRoZSBtYW5uZXIgb2YgdGhlIHNlbGYtIA0KaW5kdWxnZXtbJiomXX1udCwgcHJvbmUgdG8gc3VwZXJzdGl0aW9uIDsgYW5kIEdsb3VjZXN0ZXJcJ3Mgc3VwZXItIA0Kc3RpdGlvbiBhZmZvcmRzIHNvbWUgY3tbJiomXX1vdW50ZW5hbmNlIHRvIEVkbXVuZFwncyBzY2VwdGljaXNtLiANClwiIFRoaXMgaXMgdGhlIGV4Y2VsbGVudCBmb3BwZXJ5IG9mIHRoZSB7WyYqJl19d29ybGQsIHRoYXQgd2hlbiANCndlIGFyZSBzaWNrIGluIGZvcnR1bmUg4oCUIG9mdGVuIHRoZSBzdXJmZWl0IG9mIG91ciBvd24gYntbJiomXX1lLSANCmhhdmlvciDigJQgd2UgbWFrZSBndWlsdHkgb2Ygb3VyIGRpc2FzdGVycyB0aGUgc3VuLCB0aGUgDQptb29uLCBhbmQgdGhle1smKiZdfSBzdGFycywgYXMgaWYgd2Ugd2VyZSB2aWxsYWlucyBieSBuZWNlc3NpdHkgOyANCmZvb2xzIGJ5IGhlYXZlbmx5IGNvbXB1bHNpb257WyYqJl19IDsga25hdmVzLCB0aGlldmVzLCBhbmQgdHJlYWNoLSANCmVycyBieSBzcGhlcmljYWwgcHJlZG9taW5hbmNlIDsgZHJ1bmthcmRzLHtbJiomXX0gbGlhcnMsIGFuZCBhZHVsLSANCnRlcmVycyBieSBhbiBlbmZvcmNlZCBvYmVkaWVuY2Ugb2YgcGxhbmV0YXJ5IGluZmx1ZW5jZTsge1smKiZdfQ0KYW5kIGFsbCB0aGF0IHdlIGFyZSBldmlsIGluIGJ5IGEgZGl2aW5lIHRocnVzdGluZy1vbi5cIiANCg0KRWRnYXIsIG9uIHRoZSBje1smKiZdfW9udHJhcnksIHRoZSBjaGFtcGlvbiBvZiByaWdodCwgZXZlciBhYy0gDQp0aXZlIGluIG9wcG9zaW5nIGV2aWwgYW5kIGFkdmFuY2l7WyYqJl19bmcgdGhlIGdvb2QgY2F1c2UsIGRpcy0gDQoNCiogQ29tcGFyZSBFZG11bmRcJ3Mgd29yZHMgKHV0dGVyZWQgd2l0aCBpbndhcmQgc2N7WyYqJl19b3JuKSBzcG9rZW4gb2YgRWRnYXIgOiANCg0KXCIgSSB0b2xkIGhpbSB0aGUgcmV2ZW5naW5nIGdvZHMgDQpcJ0dhaW5zdCBwYXJyaWNpe1smKiZdfWRlcyBkaWQgYWxsIHRoZWlyIHRodW5kZXJzIGJlbmQuXCdcJyANCg0KT3RoZWxsbzsgTWFjYmV0aDsgTGVhci4gMjQxIA0KDQpjb3ZlcntbJiomXX1zIHRoYXQgdGhlIGdvZHMgYXJlIHVwb24gdGhlIHNpZGUgb2YgcmlnaHQsIGFyZSB1bi0gDQpjZWFzaW5nbHkgYXQgd29yayBpbiB0e1smKiZdfWhlIHZpbmRpY2F0aW9uIG9mIHRydXRoIGFuZCB0aGUgDQpleGVjdXRpb24gb2YganVzdGljZS4gSGlzIGZhaXRoIGxpdmVzIHRocm97WyYqJl19dWdoIHRyaWFsIGFuZCANCmRpc2FzdGVyLCBhIGZsYW1lIHdoaWNoIHdpbGwgbm90IGJlIHF1ZW5jaGVkLiBBbmQgaGUgDQpidW95c3tbJiomXX0gdXAsIGJ5IHZpcnR1ZSBvZiBoaXMgb3duIGVuZXJneSBvZiBzb3VsLCB0aGUgc3Bpcml0IA0Kb2YgaGlzIGZhdGhlciwgd2hpY2gse1smKiZdfSB1bnByZXBhcmVkIGZvciBjYWxhbWl0eSwgaXMgc3RhZ2dlci0gDQppbmcgYmxpbmRseSwgc3R1bm5lZCBmcm9tIGl0cyBwb3dlciB7WyYqJl19dG8gdGhpbmssIGFuZCByZWFkeSANCnRvIHNpbmsgaW50byBkYXJrbmVzcyBhbmQgYSB3ZWx0ZXIgb2YgY2hhb3RpYyBkaXNiZWxpZXtbJiomXX1mLiANCkdsb3VjZXN0ZXIsIGluIGhpcyBmaXJzdCBjb25mdXNpb24gb2Ygc3Bpcml0LCBleGNsYWltcyBiaXQtIA0KdGVybHkgYWdhe1smKiZdfWluc3QgdGhlIGRpdmluZSBnb3Zlcm5tZW50IDogDQoNClwiIEFzIGZsaWVzIHRvIHdhbnRvbiBib3lzIGFyZSB3ZSB0byB0aGUgZ29ke1smKiZdfXMgOyANClRoZXkga2lsbCB1cyBmb3IgdGhlaXIgc3BvcnQuXCIgDQoNCkJ1dCBiZWZvcmUgdGhlIGVuZCBoYXMgY29tZSBoZSBcInNoYXtbJiomXX1rZXMgcGF0aWVudGx5IGhpcyANCmdyZWF0IGFmZmxpY3Rpb24gb2ZmIDsgXCdcJyBoZSB3aWxsIG5vdCBxdWFycmVsIHdpdGggdGhlIFwie1smKiZdfSBncmVhdCANCm9wcG9zZWxlc3Mgd2lsbHMgXCIgb2YgdGhlIGdvZHMgOyBuYXksIG1vcmUgdGhhbiB0aGlzLCBiZSANCmNhbiBpZGVue1smKiZdfXRpZnkgaGlzIG93biB3aWxsIHdpdGggdGhlaXJzLCBoZSBjYW4gYWNjZXB0IGxpZmUgDQpjb250ZW50ZWRseSBhdCB0aGVpciBoYW57WyYqJl19ZHMsIG9yIGRlYXRoLiBUaGUgd29yZHMgb2YgRWQtIA0KZ2FyIGZpbmQgYSByZXNwb25zZSBpbiBoaXMgb3duIGlubW9zdCBoZWFydHtbJiomXX0gOiANCg0KXCIgVGhvdSBoYXBweSBmYXRoZXIsIA0KVGhpbmsgdGhhdCB0aGUgY2xlYXJlc3QgZ29kcywgd2hvIG1ha2UgdGhlbSBob3tbJiomXX1ub3JzIA0KT2YgbWVuXCdzIGltcG9zc2liaWxpdGllcywgaGF2ZSBwcmVzZXJ2ZWQgdGhlZS5cIiANCg0KQW5kIGFzIEVkZ2FyLCB0aGV7WyYqJl19IGp1c3RpY2lhcnksIGZpbmRzIGluIHRoZSBnb2RzIGhpcyBmZWxsb3ctIA0Kd29ya2VycyBpbiB0aGUgZXhlY3V0aW9uIG9mIGp1c3tbJiomXX10aWNlLCBzbyBDb3JkZWxpYSwgaW4gd2hvc2UgDQpoZWFydCBsb3ZlIGlzIGEgY2xlYXIgYW5kIHBlcnBldHVhbCBpbGx1bWluYXRpe1smKiZdfW9uLCBjYW4gdHVybiANCmZvciBhc3Npc3RhbmNlIGFuZCBjby1vcGVyYW5jeSBpbiBoZXIgZGVlZHMgb2YgbG92ZSB0byB0aGUgDQp7WyYqJl19c3Ryb25nIGFuZCBnZW50bGUgcnVsZXJzIG9mIHRoZSB3b3JsZCA6IA0KDQpcIiB5b3Uga2luZCBnb2RzLiANCkN1cmUgdGhpcyBncmV7WyYqJl19YXQgYnJlYWNoIGluIGhpcyBhYnVzZWQgbmF0dXJlLlwiIA0KDQpLZW50IHBvc3Nlc3NlcyBubyB2aXNpb24sIGxpa2UgdGhhdCB3aGl7WyYqJl19Y2ggZ2xhZGRlbnMgRWQtIA0KZ2FyLCBvZiBhIGRpdmluZSBwcm92aWRlbmNlLiBIaXMgbG95YWx0eSB0byByaWdodCBoYXMgDQpzb3tbJiomXX1tZXRoaW5nIGluIGl0IG9mIGEgZGVzcGVyYXRlIGluc3RpbmN0LCB3aGljaCBwZXJzaXN0cywgaW4gDQpzcGl0ZSBvZiB0aGUgYXBwe1smKiZdfWVhcmFuY2VzIHByZXNlbnRlZCBieSB0aGUgd29ybGQuIFNoYWstIA0Kc3BlcmUgd291bGQgaGF2ZSB1cyBrbm93IHRoYXQgdGhlcmV7WyYqJl19IGlzIG5vdCBhbnkgZGV2b3Rpb24gDQp0byB0cnV0aCwgdG8ganVzdGljZSwgdG8gY2hhcml0eSwgbW9yZSBpbnRlbnNlIGFuZCByZXtbJiomXX1hbCB0aGFuIA0KdGhhdCBvZiB0aGUgbWFuIHdobyBpcyBmYWl0aGZ1bCB0byB0aGVtIG91dCBvZiB0aGUgc2hlZXIgDQoxNiANCg0Ke1smKiZdfTI0MiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpzcGlyaXQgb2YgbG95YWx0eSwgdW5zdGltdWxhdGVkIGFuZCB7WyYqJl19dW5zdXBwb3J0ZWQgYnkgYW55IA0KZmFpdGggd2hpY2ggY2FuIGJlIGNhbGxlZCB0aGVvbG9naWNhbC4gS2VudCwgd2hvIGhhcyANCntbJiomXX1zZWVuIHRoZSB2aWNpc3NpdHVkZSBvZiB0aGluZ3MsIGtub3dzIG9mIG5vIGhpZ2hlciBwb3ctIA0KZXIgcHJlc2lkaW5nIG92ZXIge1smKiZdfXRoZSBldmVudHMgb2YgdGhlIHdvcmxkIHRoYW4gZm9ydHVuZS4gDQpUaGVyZWZvcmUsIGFsbCB0aGUgbW9yZSwgS2VudCBjbGluZ3N7WyYqJl19IHRvIHRoZSBwYXNzaW9uYXRlIGluLSANCnN0aW5jdCBvZiByaWdodC1kb2luZywgYW5kIHRvIHRoZSBoYXJkeSB0ZW1wZXIsIHRoZXtbJiomXX0gZm9ydGktIA0KdHVkZSB3aGljaCBtYWtlcyBldmlsLCB3aGVuIGl0IGhhcHBlbnMgdG8gY29tZSwgZW5kdXJhLSANCmJsZS4gSXQge1smKiZdfWlzIEtlbnQgd2hvIHV0dGVycyBoaXMgdGhvdWdodCBpbiB0aGUgd29yZHMg4oCUIA0KDQpcIiBOb3RoaW5nIGFsbW9zdCBzZWVzIG1pe1smKiZdfXJhY2xlcyANCkJ1dCBtaXNlcnkuXCIgDQoNCkFuZCB0aGUgbWlyYWNsZSBoZSBzZWVzLCBpbiBoaXMgZGlzdHJlc3MsIGlzIHRoZSBhe1smKiZdfXBwcm9hY2gtIA0KaW5nIHN1Y2NvciBmcm9tIEZyYW5jZSwgYW5kIHRoZSBsb3lhbHR5IG9mIENvcmRlbGlhXCdzIA0Kc3Bpcml0LiBJe1smKiZdfXQgaXMgS2VudCwgYWdhaW4sIHdobywgY2hhcmFjdGVyaXN0aWNhbGx5IG1ha2luZyANCnRoZSBiZXN0IG9mIGFuIHVubHVja3kgY2h7WyYqJl19YW5jZSwgZXhjbGFpbXMsIGFzIGhlIHNldHRsZXMgaGltLSANCnNlbGYgdG8gc2xlZXAgaW4gdGhlIHN0b2NrcywgDQoNClwiIEZvcnR7WyYqJl19dW5lLCBnb29kIG5pZ2h0IDsgc21pbGUgb25jZSBtb3JlLCB0dXJuIHRoeSB3aGVlbC5cIiANCg0KQW5kIGFnYWluIDogDQoNClwiSXQge1smKiZdfWlzIHRoZSBzdGFycywgDQpUaGUgc3RhcnMgYWJvdmUgdXMsIGdvdmVybiBvdXIgY29uZGl0aW9ucy5cIiANCg0KQW5kIGFnYWluIChve1smKiZdfWYgTGVhcikgOiANCg0KXCIgSWYgRm9ydHVuZSBicmFnIG9mIHR3byBzaGUgbG92ZWQgYW5kIGhhdGVkLCANCk9uZSBvZiB0aGVtIHdle1smKiZdfSBiZWhvbGQuXCIgDQoNCkFjY29yZGluZ2x5LCB0aGVyZSBpcyBhdCBvbmNlIGFuIGV4cXVpc2l0ZSB0ZW5kZXJuZXNzIA0KaW4gS2Vue1smKiZdfXRcJ3MgbmF0dXJlLCBhbmQgYWxzbyBhIGNlcnRhaW4gcm91Z2huZXNzIGFuZCBoYXJkLSANCm5lc3MsIG5lZWRmdWwgdG8gcHJvdGVje1smKiZdfXQsIGZyb20gdGhlIHNob2NrcyBvZiBsaWZlLCB0aGUgdGVuLSANCmRlcm5lc3Mgb2Ygb25lIHdobyBmaW5kcyBubyByZWZ1Z2UgaW57WyYqJl19IGNvbW11bmlvbiB3aXRoIA0KdGhlIGhpZ2hlciBwb3dlcnMsIG9yIGluIGEgY3JlZWQgb2YgcmVsaWdpb3VzIG9wdGltaXNtLiANCntbJiomXX0NCkJ1dCBMZWFyIGhpbXNlbGYg4oCUIHRoZSBjZW50cmFsIGZpZ3VyZSBvZiB0aGUgdHJhZ2VkeSDigJQgDQp3aGF0IG9mIGhpbT8ge1smKiZdfVdoYXQgb2Ygc3VmZmVyaW5nIGh1bWFuaXR5IHRoYXQgd2FuLSANCmRlcnMgZnJvbSB0aGUgZGFya25lc3MgaW50byBsaWdodCwgYW57WyYqJl19ZCBmcm9tIHRoZSBsaWdodCANCmludG8gdGhlIGRhcmtuZXNzPyBMZWFyIGlzIGdyYW5kbHkgcGFzc2l2ZSDigJQgcGxheWVkIA0KdXtbJiomXX1wb24gYnkgYWxsIHRoZSBtYW5pZm9sZCBzb3VyY2VzIG9mIG5hdHVyZSBhbmQgb2Ygc28tIA0KY2lldHkuIEFuZCB0aG91Z2ggaGUge1smKiZdfWlzIGluIHBhcnQgZGVsaXZlcmVkIGZyb20gaGlzIGltLSANCnBlcmlvdXMgc2VsZi13aWxsLCBhbmQgbGVhcm5zLCBhdCBsYXN0LCB7WyYqJl19d2hhdCB0cnVlIGxvdmUgaXMsIGFuZCANCnRoYXQgaXQgZXhpc3RzIGluIHRoZSB3b3JsZCwgTGVhciBwYXNzZXMgYXdheSBmcm9tIHtbJiomXX1vdXIgDQoNCk90aGVsbG87IE1hY2JldGg7IExlYXIuIDI0MyANCg0Kc2lnaHQsIG5vdCBpbiBhbnkgbW9vZCBvZiByZXNpZ25hdGlve1smKiZdfW4gb3IgZmFpdGggb3IgaWxsdW1pLSANCm5hdGVkIHBlYWNlLCBidXQgaW4gYSBwaXRlb3VzIGFnb255IG9mIHllYXJuaW5nIGZvciB7WyYqJl19dGhhdCANCmxvdmUgd2hpY2ggaGUgaGFkIGZvdW5kIG9ubHkgdG8gbG9zZSBmb3JldmVyLiBEb2VzIA0KU2hha3NwZXJlIG1lYW4gdHtbJiomXX1vIGNvbnRyYXN0IHRoZSBwbGVhc3VyZSBpbiBhIGRlbW9uc3RyYS0gDQp0aW9uIG9mIHNwdXJpb3VzIGFmZmVjdGlvbiBpbiB0aGUge1smKiZdfWZpcnN0IHNjZW5lIHdpdGggdGhlIA0KYWdvbml6ZWQgY3J5IGZvciByZWFsIGxvdmUgaW4gdGhlIGxhc3Qgc2NlbmUsIGFuZCBkb2V7WyYqJl19cyBoZSANCndpc2ggdXMgdG8gdW5kZXJzdGFuZCB0aGF0IHRoZSB0cnVlIGdhaW4gZnJvbSB0aGUgYml0dGVyIA0KZGlzY2lwbGluZXtbJiomXX0gb2YgTGVhclwncyBvbGQgYWdlIHdhcyBwcmVjaXNlbHkgdGhpcyDigJQgaGlzIGFjLSANCnF1aXJpbmcgYSBzdXByZW1lIG5lZWQgb3tbJiomXX1mIHdoYXQgaXMgYmVzdCwgdGhvdWdoIGEgbmVlZCANCndoaWNoIGZpbmRzLCBhcyBmYXIgYXMgd2UgY2FuIGxlYXJuLCBubyBzYXRpe1smKiZdfXNmYWN0aW9uID8gDQoNCldlIGd1ZXNzIGF0IHRoZSBzcGlyaXR1YWwgc2lnbmlmaWNhbmNlIG9mIHRoZSBncmVhdCANCnRyYWdpYyB7WyYqJl19ZmFjdHMgb2YgdGhlIHdvcmxkLCBidXQsIGFmdGVyIG91ciBndWVzc2luZywgdGhlaXIgDQpteXN0ZXJpb3VzbmVzcyByZW1haW5zLntbJiomXX0gDQoNCk91ciBlc3RpbWF0ZV4gcWYgdGhpcyBkcmFtYSBhcyBhIHdob2xlLCBNci4gSHVkc29uIGhhIHMgDQpzYWlkLCBkZXBlbmRze1smKiZdfSB2ZXJ5IG11Y2ggb24gdGhlIHZpZXcgd2UgdGFrZSBvZiB0aGUgRm9vbCA7IA0KYW5kIE1yLiBIdWRzb24gaGFzIGhpbXNlbGYgdW57WyYqJl19ZGVyc3Rvb2QgTGVhclwncyBcIiBwb29yIA0KYm95IFwiIHdpdGggc3VjaCBkZWxpY2F0ZSBzeW1wYXRoeSB0aGF0IHRvIGFycml2ZSBhdHtbJiomXX0gcHJlLSANCmNpc2VseSB0aGUgcmlnaHQgcG9pbnQgb2YgdmlldyB3ZSBuZWVkIG5vdCBnbyBiZXlvbmQgaGlzIA0Kd29yZHMgOiBcIntbJiomXX0gSSBrbm93IG5vdCBob3cgSSBjYW4gYmV0dGVyIGRlc2NyaWJlIHRoZSBGb29sIA0KdGhhbiBhcyB0aGUgc291bCBvZiBwYXRob3Mge1smKiZdfWluIGEgc29ydCBvZiBjb21pYyBtYXNxdWVyYWRlIDsgDQpvbmUgaW4gd2hvbSBmdW4gYW5kIGZyb2xpYyBhcmUgc3VibGltZWQgYW57WyYqJl19ZCBpZGVhbGl6ZWQgDQppbnRvIHRyYWdpYyBiZWF1dHkuIC4gLiAuIEhpcyBcJyBsYWJvcmluZyB0byBvdXRqZXN0IExlYXJcJ3MgDQpoe1smKiZdfWVhcnQtc3RydWNrIGluanVyaWVzXCcgdGVsbHMgdXMgdGhhdCBoaXMgd2l0cyBhcmUgc2V0IGEtZGFuYy0gDQppbmcgYnkgZ3JpZWYge1smKiZdfTsgdGhhdCBoaXMgamVzdHMgYnViYmxlIHVwIGZyb20gdGhlIGRlcHRocyANCm9mIGEgaGVhcnQgc3RydWdnbGluZyB3aXRoIHBpdHl7WyYqJl19IGFuZCBzb3Jyb3csIGFzIGZvYW0gZW4tIA0Kd3JlYXRoZXMgdGhlIGZhY2Ugb2YgZGVlcGx5IHRyb3VibGVkIHdhdGVycy4gLiAuIHtbJiomXX0uIFRoZXJlIA0KaXMgYWxsIGFsb25nIGEgc2hyaW5raW5nLCB2ZWx2ZXQtZm9vdGVkIGRlbGljYWN5IG9mIHN0ZXAgDQppbiB0aGUge1smKiZdfUZvb2xcJ3MgYW50aWNzLCBhcyBpZiBhd2VkIGJ5IHRoZSBob2xpbmVzcyBvZiANCnRoZSBncm91bmQgOyBhbmQgaGUgc2VlbXMgYnJpe1smKiZdfW5naW5nIGRpdmVyc2lvbiB0byB0aGUgDQp0aG91Z2h0cywgdGhhdCBoZSBtYXkgdGhlIGJldHRlciBzdGVhbCBhIHNlbnNlIG9mIHd7WyYqJl19b2UgDQppbnRvIHRoZSBoZWFydC4gQW5kIEkgYW0gbm90IGNsZWFyIHdoZXRoZXIgdGhlIGluLSANCnNwaXJlZCBhbnRpY3MgdGhhdHtbJiomXX0gc3BhcmtsZSBmcm9tIHRoZSBzdXJmYWNlIG9mIGhpcyBtaW5kIA0KYXJlIGluIG1vcmUgaW1wcmVzc2l2ZSBjb250cmFzdCB3aXRoe1smKiZdfSB0aGUgZGFyaywgdHJhZ2ljIA0Kc2NlbmVzIGludG8gd2hpY2ggdGhleSBhcmUgdGhyb3duLCBsaWtlIHJvY2tldHMgaW50byBhIA17WyYqJl19Cm1pZG5pZ2h0IHRlbXBlc3QsIG9yIHdpdGggdGhlIHVuZGVyY3VycmVudCBvZiBkZWVwIHRyYWdpYyANCg0KMjQ0IFNoYWtzcGVyZXtbJiomXX0g4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQp0aG91Z2h0ZnVsbmVzcyBvdXQgb2Ygd2hpY2ggdGhleSBmYWx0ZXJpbmdseSBpc3N1e1smKiZdfWUgYW5kIA0KcGxheS5cJ1wnIF4gDQoNCk9mIHRoZSB0cmFnZWR5IG9mIEtpbmcgTGVhciBhIGNyaXRpYyB3aXNoZXMgdG8gc2F5IGFzIHtbJiomXX0NCmxpdHRsZSBhcyBtYXkgYmUgOyBmb3IsIGluIHRoZSBjYXNlIG9mIHRoaXMgcGxheSwgd29yZHMgYXJlIA0KbW9yZSB0aGFuIG9ye1smKiZdfWRpbmFyaWx5IGluYWRlcXVhdGUgdG8gZXhwcmVzcyBvciBkZXNjcmliZSBpdHMgDQp0cnVlIGltcHJlc3Npb25eIEEgdGVtcGVzdCB7WyYqJl19b3IgYSBkYXduIHdpbGwgbm90IGJlIGFuYS0gDQpseXplZCBpbiB3b3JkcyA7IHdlIG11c3QgZmVlbCB0aGUgc2hhdHRlcmluZyBmdXtbJiomXX1yeSBvZiB0aGUgDQpnYWxlLCB3ZSBtdXN0IHdhdGNoIHRoZSBjYWxtIGxpZ2h0IGJyb2FkZW5pbmcuZiBBbmQgDQp0aGUgc2Vuc2F0e1smKiZdfWlvbiBleHBlcmllbmNlZCBieSB0aGUgcmVhZGVyIG9mIEtpbmcgTGVhciByZS0gDQpzZW1ibGVzIHRoYXQgcHJvZHVjZWQgYnkgc297WyYqJl19bWUgZ3JhbmQgbmF0dXJhbCBwaGVub21lLSANCm5vbi4gVGhlIGVmZmVjdCBjYW5ub3QgYmUgcmVjZWl2ZWQgYXQgc2Vjb25kLWhhbntbJiomXX1kOyBpdCANCmNhbm5vdCBiZSBkZXNjcmliZWQgOyBpdCBjYW4gaGFyZGx5IGJlIHN1Z2dlc3RlZC4gJSANCg0KKiBcIiBTaGFrZXNwZXtbJiomXX1hcmVcJ3MgTGlmZSwgQXJ0LCBhbmQgQ2hhcmFjdGVycyxcIiB2b2wuIGlpLiwgcHAuIDM1MSwgMzUyLiBXaGF0IA0KZm9sbG93cywgdG97WyYqJl19byBsb25nIHRvIHF1b3RlLCBpcyBhbHNvIGV4Y2VsbGVudC4gDQoNCnQgSW4gVmljdG9yIEh1Z29cJ3Mgdm9sdW1lIG9mIGRpdGh5cmF7WyYqJl19bWJpYyBwcm9waGVzeWluZyBlbnRpdGxlZCBcIldpbGwtIA0KaWFtIFNoYWtlc3BlYXJlLFwiIGEgcGFzc2FnZSB1cG9uIEtpbmcgTGVhe1smKiZdfXIgKGVkLiAxODY5LCBwcC4gMjA1LTIwOSkgaXMgcGFyLSANCnRpY3VsYXJseSBub3Rld29ydGh5IEhpcyBwb2ludCBvZiB2aWV3IOJ7WyYqJl19gJQgdGhhdCB0aGUgdHJhZ2VkeSBpcyBcIiBDb3JkZWxpYSxcIiBub3QgDQpcIiBLaW5nIExlYXIsXCIgdGhhdCB0aGUgb2xkIEtpbmcgaXN7WyYqJl19IG9ubHkgYW4gb2NjYXNpb24gZm9yIGhpcyBkYXVnaHRlciDigJQgaXMgYWJzby0gDQpsdXRlbHkgd3JvbmcgOyBidXQgdGhlIGNyaXtbJiomXX10aWNpc20sIG5vdHdpdGhzdGFuZGluZywgY2F0Y2hlcyBsYXJnZW5lc3MgYW5kIHBhcy0gDQpzaW9uIGZyb20gdGhlIHBsYXkuIFwiIHtbJiomXX1FdCBxdWVsbGUgZmlndXJlIHF1ZSBsZSBwZXJlICEgcXVlbGxlIGNhcmlhdGlkZSAhIENcJ2VzdCANCklcJ2hvbW1lIGNvdXJiZS4gSCB7WyYqJl19bmUgZmFpdCBxdWUgY2hhbmdlciBkZSBmYXJkZWF1eCwgdG91am91cnMgcGx1cyBsb3VyZHMuIA0KUGx1cyBsZSB2aWVpbGxhcmQgZntbJiomXX0gYWlibGl0LCBwbHVzIGxlIHBvaWRzIGF1Z21lbnRlLiBEIHZpdCBzb3VzIGxhIHN1cmNoYXJnZS4gDQpuIHBvcnRlIGRcJ2Fib3JkIHtbJiomXX1JXCdlbXBpcmUsIHB1aXMgSVwnaW5ncmF0aXR1ZGUsIHB1aXMgSVwnaXNvbGVtZW50LCBwdWlzIGxlIGRlc2VzLSANCnBvaXIsIHB1aXMge1smKiZdfWxhIGZhaW0gZXQgbGEgc29pZiwgcHVpcyBsYSBmb2xpYywgcHVpcyB0b3V0ZSBsYSBuYXR1cmUuIExlcyBudWVlcyANCnZpZW5uZW57WyYqJl19dCBzdXIgc2EgdF50ZSwgbGVzIGZvcmV0cyBUYWNjYWJsZW50IGRcJ29tYnJlLCBJXCdvdXJhZ2FuIHNcJ2FiYXQgc3VyIHNhIA0KbnVxdXtbJiomXX1lLCBJXCdvcmFnZSBwbG9tYmUgc29uIG1hbnRlYXUsIGxhIHBsdWllIHBlc2Ugc3VyIHNlcyBlcGF1bGVzLCBpbCBtYXJjaGUgDQpwbHtbJiomXX1pZSBldCBoYWdhcmQsIGNvbW1lIHNcJ2lsIGF2YWl0IGxlcyBkZXV4IGdlbm91eCBkZSBsYSBudWl0IHN1ciBzb24gZG9zLiANCkVwZXtbJiomXX1yZHUgZXQgaW1tZW5zZSwgaWwgamV0dGUgYXV4IGJvdXJyYXNxdWVzIGV0IGF1eCBncmVsZXMgY2UgY3JpIGVwaXF1ZSA6IA0KUG91e1smKiZdfXJxdW9pIG1lIGhhaXNzZXotdm91cywgdGVtcGV0ZXMgPyBwb3VycXVvaSBtZSBwZXJzZWN1dGV6LXZvdXMgPyB2b2lpcyANCm5eZXR7WyYqJl19ZXMgcGFzIG1lcyBmaWxsZXMuIEV0IGFsb3JzLCBjXCdlc3QgZmluaSA7IGxhIGx1ZXVyIHNcJ2V0ZWludCwgbGEgcmFpc29uIHNlIGQ2e1smKiZdfS0gDQpjb3VyYWdlLCBldCBzXCdlbiB2YSwgTGVhciBlc3QgZW4gZW5mIGFuY2UuIEFoICEgaWwgZXN0IGVuZmFudCwgY2UgdmllaWxse1smKiZdfWFyZC4gRWggDQpiaWVuICEgaWwgbHVpIGZhdXQgdW5lIG1ecmUuIFNhIGZpbGxlIHBhcmFpdC4gU29uIHVuaXF1ZSBmaWxsZSwgQ297WyYqJl19cmRlbGlhLiBDYXIgDQpsZXMgZGV1eCBhdXRyZXMsIFJlZ2FuZSBldCBHb25lcmlsIG5lIHNvbnQgcGx1cyBzZXMgZmlsbGVzIHF1ZXtbJiomXX0gZGUgbGEgcXVhbnRpdGUgDQpuZWNlc3NhaXJlIHBvdXIgYXZvaXIgZHJvaXQgYXUgbm9tIGRlIHBhcnJpY2lkZXMuXCIgRm9yIHRoZXtbJiomXX0gZGVzY3JpcHRpb24gb2YgDQpcIklcJ2Fkb3JhYmxlIGFsbGFpdGVtZW50LFwiIFwidGhlIG1hdGVybml0eSBvZiB0aGUgZGF1Z2h0ZXIgb3tbJiomXX12ZXIgdGhlIGZhdGhlcixcIiANCnNlZSB3aGF0IGZvbGxvd3MsIHAuIDIwOC4gDQoNCiUgSW4gYWRkaXRpb24gdG8gdGhlIG1lZGljYXtbJiomXX1sIHN0dWRpZXMgb2YgTGVhclwncyBjYXNlIGJ5IERvY3RvcnMgQnVja25pbGwgDQphbmQgS2VsbG9nZywgd2UgbWF5IG1lbnRpb24gdHtbJiomXX1oZSBcIktvbmlnIExlYXJcIiBvZiBEci4gQ2FybCBTdGFyayAoU3R1dHQtIA0KZ2FydCwgMTg3MSksIGZhdm9yYWJseSBub3RpY2VkIGl7WyYqJl19biBTaGFoZXNwZWFyZS1KYWhyaHVjaHkgdm9sLiB2aS4gOyBhbmQgYWdhaW4gYmogDQpNZWlzc25lciwgaW4gaGlzIHN0dWR5IG9mIHtbJiomXX10aGUgcGxheSwgU2hha2VzcGVhcmUtSmFocmh1Y2heIHZvbC4gdmlpLiwgcHAuIDExMC0xMSZhbXA7IA0KDQpUaGUgUm9tYW4gUGxhe1smKiZdfXlzLiAyNDUgDQoNCkNIQVBURUsgVkkuIA0KDQpUSEUgUk9NQU4gUExBWVMuIA0KSS4gDQoNClRoZSB0d28gYm9va3Mgd2hpY2ggY297WyYqJl19bnRyaWJ1dGVkIHRoZSBsYXJnZXN0IG1hdGVyaWFsIA0KdG93YXJkcyB0aGUgYnVpbGRpbmctdXAgb2YgU2hha3NwZXJlXCdzIGFydC17WyYqJl19c3RydWN0dXJlIHdlcmUgDQp0aGUgY2hyb25pY2xlcyBvZiBIb2xpbnNoZWQsIGEgcXVhcnJ5IHdvcmtlZCBieSB0aGUgcG9ldCANCntbJiomXX1wcmV2aW91cyB0byBJNk9PNSBhbmQgTm9ydGhcJ3MgdHJhbnNsYXRpb24gb2YgUGx1dGFyY2hcJ3MgDQpcIiBMaXZlcyxcIiBhIHF1YXJyeXtbJiomXX0gd29ya2VkIGFmdGVyIDE2MDAuIFRvIHRoaXMgbGF0dGVyIHNvdXJjZSANCndlIG93ZSBKdWxpdXMgQ29lc2FyXiBDb3Jpb2xhbnVze1smKiZdfV4gQW50bWl5IGFuZCBDbGVvanBhdHJhXiANCmFuZCwgaW4gcGFydCwgVGltb24gb2YgQXRoZW5zLiBTaGFrc3BlcmUgdHJlYXRlZCB7WyYqJl19dGhlIA0KbWF0ZXJpYWwgd2hpY2ggbGF5IGJlZm9yZSBoaW0gaW4gSG9saW5zaGVkIGFuZCBpbiBQbHUtIA0KdGFyY2ggd2l0aCByZXtbJiomXX12ZXJlbnQgY2FyZS4gSXQgd2FzIG5vdCBhIGhhcHB5IGZhbHNpZnlpbmcgDQpvZiB0aGUgZmFjdHMgb2YgaGlzdG9yeSB0byB3aGlje1smKiZdfWggaGUsIGFzIGRyYW1hdGlzdCwgYXNwaXJlZCwgDQpidXQgYW4gaW1hZ2luYXRpdmUgcmVuZGVyaW5nIG9mIHRoZSB2ZXJ5IGZhY3R7WyYqJl19cyB0aGVtLSANCnNlbHZlcy4gUGx1dGFyY2ggaGUgZm9sbG93cyBldmVuIG1vcmUgc3R1ZGlvdXNseSBhbmQgDQpjbG9zZWx5IHRoYXtbJiomXX1uIGhlIGZvbGxvd2VkIEhvbGluc2hlZC4gWWV0IGl0IGlzIHRvIGJlIA0Kbm90ZWQgdGhhdCwgd2hpbGUgU2hha3NwZXJlIGlzIHBye1smKiZdfW9mb3VuZGx5IGZhaXRoZnVsIHRvIA0KUm9tYW4gbGlmZSBhbmQgY2hhcmFjdGVyLCBpdCBpcyBhbiBpZGVhbCB0cnV0aCwgdHJ1dGh7WyYqJl19IHNwaXItIA0KaXR1YWwgcmF0aGVyIHRoYW4gdHJ1dGggbWF0ZXJpYWwsIHdoaWNoIGhlIHNlZWtzIHRvIGRpcy0gDQpjb3Zlci4gSHtbJiomXX1pcyBtZXRob2QsIGFzIGNyaXRpY3MgaGF2ZSBwb2ludGVkIG91dCwgaXMgd2lkZS0gDQpseSBkaWZmZXJlbnQgZnJvbSB0aGF0IG9me1smKiZdfSBoaXMgY29udGVtcG9yYXJ5LCBCZW4gSm9uc29uLiANCk1yLiBLbmlnaHQsIHRyZWF0aW5nIHRoaXMgc3ViamVjdCwgaGFzIHNhaWR7WyYqJl19LCBcIiBKb25zb24gaGFzIA0KbGVmdCB1cyB0d28gUG9tYW4gcGxheXMgcHJvZHVjZWQgZXNzZW50aWFsbHkgdXBvbiBhIA0KZGlmZmV7WyYqJl19cmVudCBwcmluY2lwbGUuIEluIGhpcyBTZWphbnVzIHRoZXJlIGlzIHNjYXJjZWx5IGEgDQpzcGVlY2ggb3IgYW4gaW5jaWRlbnQgdHtbJiomXX1oYXQgaXMgbm90IGRlcml2ZWQgZnJvbSB0aGUgYW4tIA0KY2llbnQgYXV0aG9yaXRpZXM7IGFuZCBKb25zb25cJ3Mgb3duIGVkaXRpb3tbJiomXX1uIG9mIHRoZSBwbGF5IA0KaXMgY3Jvd2RlZCB3aXRoIHJlZmVyZW5jZXMgYXMgbWludXRlIGFzIHdvdWxkIGhhdmUgYmVlbiANCnJle1smKiZdfXF1aXJlZCBmcm9tIGFueSBtb2Rlcm4gYW5uYWxpc3QuIC4gLiAuIEhpcyBjaGFyYWN0ZXJzIA0KLi4uIGFyZSBtYWRlIHRvIHNwZWF7WyYqJl19ayBhY2NvcmRpbmcgdG8gdGhlIHZlcnkgd29yZHMgb2YgDQoNCjI0NiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDXtbJiomXX0KVGFjaXR1cyBhbmQgU3VldG9uaXVzIDsgYnV0IHRoZXkgYXJlIG5vdCBsaXZpbmcgbWVuLlwiIF4gDQpTaGFrc3BlcmUgd2FzIGF3YXtbJiomXX1yZSB0aGF0IGhpcyBwZXJzb25hZ2VzIG11c3QgYmUgbWVuIA0KYmVmb3JlIHRoZXkgd2VyZSBSb21hbnMuIEhlIGZlbHQgdGhhdCB0e1smKiZdfWhlIHRydXRoIG9mIA0KcG9ldHJ5IG11c3QgYmUgdml0YWwgYW5kIHNlbGYgLWV2aWRlbmNpbmcgOyB0aGF0IGlmIGl0IGhhcyANCmd7WyYqJl19b3QgaG9sZCBvZiB0aGUgZmFjdCwgbm8gcmVmZXJlbmNlIHRvIGF1dGhvcml0eSB3aWxsIG1ha2UgDQp0aGUgdmFsaWRpdHkgb2YgdHtbJiomXX1oZSBmYWN0IG1vcmUgdmFsaWQuIEhlIGtuZXcgdGhhdCB0aGUgDQpidXR0cmVzc2luZy11cCBvZiBhcnQgd2l0aCBlcnVkaXRpb24ge1smKiZdfXdpbGwgbm90IGdpdmUgc3RhYmlsLSANCml0eSB0byB0aGF0IHdoaWNoIG11c3Qgc3RhbmQgYnkgbm8gYWlkIG9mIG1hdGVyaWFsIHB7WyYqJl19cm9wcyANCmFuZCBzdGF5cywgYnV0LCBpZiBhdCBhbGwsIGJ5IHZpcnR1ZSBvZiB0aGUgb25lIGxpdmluZyBzb3VsIA0Kb2Ygd2hpY3tbJiomXX1oIGl0IGlzIHRoZSBib2R5LiANCg0KVGhlIEdlcm1hbiByb21hbnRpY2lzdCBjcml0aWMgRnJhbnogSG9ybiBoYXMgc2FpZCANCnRoe1smKiZdfWF0IHRoZSBoZXJvIG9mIFNoYWtzcGVyZVwncyBLaW5nIEpvaG4gXCIgc3RhbmRzIG5vdCBpbiANCnRoZSBsaXN0IG9mIHBlcnNvbmFnZXtbJiomXX1zLCBhbmQgY291bGQgbm90IHN0YW5kIHdpdGggdGhlbS4gLiAuIC4gDQpUaGUgaGVybyBpcyBFbmdsYW5kLlwiIE1yLiBLbmlnaHQgYXtbJiomXX1kZHMgdGhhdCB0aGUgaGVybyANCm9mIFNoYWtzcGVyZVwncyBncmVhdCBjbGFzc2ljYWwgdHJpbG9neSBpcyBSb21lLiBJbXBvci0gDXtbJiomXX0KdGFudCwgaG93ZXZlciwgYXMgdGhlIHBvbGl0aWNhbCBzaWduaWZpY2FuY2UgZG91YnRsZXNzIGlzLCANCnRoZXJlIGlzIHNvbWV0e1smKiZdfWhpbmcgbW9yZSBpbXBvcnRhbnQuIFdoZXRoZXIgYXQgYW55IA0KdGltZSBTaGFrc3BlcmUgd2FzIGNvbmNlcm5lZCBhcyBkZWVwbHl7WyYqJl19IGFib3V0IGNvcnBvcmF0ZSANCmxpZmUg4oCUIGVjY2xlc2lhc3RpY2FsLCBwb2xpdGljYWwsIG9yIGV2ZW4gbmF0aW9uYWwg4oCUIHtbJiomXX1hcyBoZSB3YXMgDQphYm91dCB0aGUgbGlmZSBhbmQgZGVzdGlueSBvZiB0aGUgaW5kaXZpZHVhbCBtYW4gbWF5IA0Kd2VsbCBiZSBxe1smKiZdfXVlc3Rpb25lZC4gQnV0IGF0IHRoaXMgdGltZSB0aGUgcGxheSBvZiBzb2NpYWwgDQpmb3JjZXMgY2VydGFpbmx5IGRpZCBub3QgZW57WyYqJl19Z2FnZSBoaXMgaW1hZ2luYXRpb24gd2l0aCBleC0gDQpjbHVzaXZlIG9yIHN1cHJlbWUgaW50ZXJlc3QuIFRoZSBzdHJ1Z2dsZSBvZntbJiomXX0gcGF0cmljaWFuIA0KYW5kIHBsZWJlaWFuIGlzIG5vdCB0aGUgc3ViamVjdCBvZiBDb3Jpb2xhbnVzXiBhbmQgdGhlIA0KdHJhZ2Vke1smKiZdfXkgcmVzb2x2ZXMgaXRzZWxmIGJ5IG5vIHNvbHV0aW9uIG9mIHRoYXQgcG9saXRpY2FsIA0KcHJvYmxlbS4gUHJpbWFyaWx5LCB0aGV7WyYqJl19IHRyYWdlZHkgaXMgdGhhdCBvZiBhbiBpbmRpdmlkdWFsIA0Kc291bC4gSXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhlIGRhdGVzIHtbJiomXX1vZiB0aGVzZSBwbGF5cy4gDQpKdWxpdXMgQ2NCc2FyXiB3aGljaCBNYWxvbmUgYXNzaWduZWQgdG8gdGhlIHllYXIgMTYwNywgDQppe1smKiZdfXMgbm93LCB3aXRoIGdvb2QgcmVhc29uLCBjYXJyaWVkIGJhY2sgYXMgZWFybHkgYXMgMTYwMSA7IA0KYW5kIHRodXMgaXQgbGllcyB7WyYqJl19c2lkZSBieSBzaWRlLCBpbiBwb2ludCBvZiB0aW1lLCB3aXRoIEhhbS0gDQpsZXRcXCBBZnRlciBhbiBpbnRlcnZhbCBvZiBzZXZlbiB7WyYqJl19eWVhcnMgb3IgdXB3YXJkcywgdGhlIA0KDQoqIENoYXJsZXMgS25pZ2h0LCBcIlN0dWRpZXMgb2YgU2hha3NwZXJlXCIgKDE4NTEpLCBwe1smKiZdfS4gNDA1LiANCmYgTXIuIEhhbGxpd2VsbCBwb2ludGVkIG91dCB0aGUgZm9sbG93aW5nIGxpbmVzIGluIFdlZXZlclwncyBcIiBNaXJyb3tbJiomXX1yIG9mIA0KTWFydHlyc1wiICgxNjAxKTsgDQoNClRoZSBSb21hbiBQbGF5cy4gMjQ3IA0KDQpzZWNvbmQgb2YgdGhlIFJvbWFuIHBsYXtbJiomXX15cywgQW50b255IGNtZCBDbGVvcGF0cmFeIHdhcyANCndyaXR0ZW4uXCJeIFRoZSBldmVudHMgb2YgUm9tYW4gaGlzdG9yeSBjb25uZXtbJiomXX1jdCBBbnRvbnkgDQphbmQgQ2xlb3BhdHJhIGltbWVkaWF0ZWx5IHdpdGggSnVsaXVzIEdjZXNhciA7IHlldCBTaGFrLSANCnNwZXJle1smKiZdfSBhbGxvd2VkIGEgbnVtYmVyIG9mIHllYXJzIHRvIHBhc3MsIGR1cmluZyB3aGljaCANCmhlIHdhcyBhY3RpdmVseSBlbmdhZ2VkIGF7WyYqJl19cyBhdXRob3IsIGJlZm9yZSBoZSBzZWVtcyB0byANCmhhdmUgdGhvdWdodCBvZiBoaXMgc2Vjb25kIFJvbWFuIHBsYXkuIFdoYXQgaXtbJiomXX1zIHRoZSANCnNpZ25pZmljYW5jZSBvZiB0aGlzIGZhZmV0PyBEb2VzIGl0IG5vdCBtZWFuIHRoYXQgdGhlIA0KaGlzdG9yaWNhbCBje1smKiZdfW9ubmVjdGlvbiB3YXMgbm93IGEgY29ubmVjdGlvbiB0b28gZXh0ZXJuYWwgDQphbmQgdG9vIG1hdGVyaWFsIHRvIGNhcnJ5IFNoYWt7WyYqJl19c3BlcmUgb24gZnJvbSBzdWJqZWN0IHRvIA0Kc3ViamVjdCwgYXMgaXQgaGFkIHN1ZmZpY2VkIHRvIGRvIHdoaWxlIGhlIHdhcyBlbntbJiomXX1nYWdlZCANCnVwb24gaGlzIHNlcmllcyBvZiBFbmdsaXNoIGhpc3RvcmljYWwgcGxheXM/IFRoZSBwcm8tIA0KZm91bmRlc3QgY29ue1smKiZdfWNlcm5zIG9mIHRoZSBpbmRpdmlkdWFsIHNvdWwgd2VyZSBub3cgcHJlc3MtIA0KaW5nIHVwb24gdGhlIGltYWdpbmF0aW9uIG9mIHR7WyYqJl19aGUgcG9ldC4gRHJhbWFzIG5vdyANCndyaXR0ZW4gdXBvbiBzdWJqZWN0cyB0YWtlbiBmcm9tIGhpc3RvcnkgYmVjYW1lIG5vdCANCntbJiomXX3igKJjaHJvbmljbGVzLCBidXQgdHJhZ2VkaWVzLiBUaGUgbW9yYWwgaW50ZXJlc3Qgd2FzIHN1LSANCnByZW1lLiBUaGUgc3Bpcml0e1smKiZdfXVhbCBtYXRlcmlhbCBkZWFsdCB3aXRoIGJ5IFNoYWtzcGVyZVwncyANCg0KXCIgVGhlIG1hbnktaGVhZGVkIG11bHRpdHVkZSB3ZXJlIHtbJiomXX1kcmF3biANCkJ5IEJydXR1c1wnIHNwZWVjaCwgdGhhdCBDYWVzYXIgd2FzIGFtYml0aW91cyA7IA0KV2hlbiBlbG9xdWVudCBNYXJrIHtbJiomXX1BbnRvbnkgaGFkIHNob3duIA0KSGlzIHZpcnR1ZXMsIHdobyBidXQgQnJ1dHVzIHRoZW4gd2FzIHZpY2lvdXMgViogDQoNClRoZSB0e1smKiZdfWhlb3J5IG9mIE1yLiBGbGVheSAoVHJhbnMuIE5ldyBTaC4gU29jLCAxODc0KSwgdGhhdCBvdXIgcHJlc2VudCBKdWxpdyANCkNjZXN7WyYqJl19YXIgaXMgYSBwbGF5IG9mIFNoYWtzcGVyZVwncyBhbHRlcmVkIGJ5IEJlbiBKb25zb24gYWJvdXQgMTYwNywgaXMgdW5zdXAtIA0KcG97WyYqJl19cnRlZCBieSBhbnkgc3VmZmljaWVudCBldmlkZW5jZSwgaW50ZXJuYWwgb3IgZXh0ZXJuYWwuIERlbGl1cyBkYXRlcyBKdWxpdXMgDXtbJiomXX0KQ2NCc2FyIFwiIGJlZm9yZSBEZWNlbWJlciwgMTYwNC5cJyogDQoNCiogVGhlcmUgaXMgYW4gZW50cnkgaW4gdGhlIFN0YXRpb25lcnN7WyYqJl19XCcgUmVnaXN0ZXJzLCBieSBFZHdhcmQgQmxvdW50LCBNYXkgDQoyMCwgMTYwOCwgb2YgXCJhIGJvb2tlIGNhbGxlZCBBbnRvbnkgYW5ke1smKiZdfSBDbGVvcGF0cmEuXCIgVGhpcyBpcyBnZW5lcmFsbHkgDQpzdXBwb3NlZCB0byBoYXZlIGJlZW4gU2hha3NwZXJlXCdzIHBsYXkgKHNvIHtbJiomXX1NYWxvbmUsIENoYWxtZXJzLCBEcmFrZSwgQ29sLSANCmxpZXIsIERlbGl1cywgR2VydmludXMsIEh1ZHNvbiwgRmxlYXksIGFuZCBve1smKiZdfXRoZXJzKS4gS25pZ2h0IGFuZCBWZXJwbGFuY2sgDQphc3NpZ24gYSBsYXRlciBkYXRlLiBNci4gSGFsbGl3ZWxsLCBvbiBjb21wYXJ7WyYqJl19aW5nIHRoZSBlYXJseSBlZGl0aW9ucyBvZiANCk5vcnRoXCdzIFBsdXRhcmNoIOKAlCAxNTc5LCAxNTk1LCAxNjAzLCAxNjEyIOKAlCB7WyYqJl19bm90aWNlZCBtYW55IHNtYWxsIGRpZmZlci0gDQplbmNlcyBiZXR3ZWVuIHRoZW0sIFwiIGFuZCBpbiBvbmUgY2FzZSwgaW4gQ29yaW97WyYqJl19bGFudXMsIGhpdCBvbiBhIHdvcmQgXCcgdm5mb3ItIA0KdHVuYXRlLFwnIGFsdGVyZWQgYnkgdGhlIDE2MTIgZWRpdGlvbiBmcm9tIHRoe1smKiZdfWUgZm9ybWVyIG9uZVwncyAqIHZuZiBvcnR1bmF0ZWx5LFwnIA0Kd2hpY2ggKiB2bmYgb3J0dW5hdGUgXCcgd2FzIHRoZSB3b3JkIHVzZWR7WyYqJl19IGJ5IFNoYWtzcGVyZSBpbiBoaXMgdHJhZ2VkeSBvZiANCkNvcmlvbGFybXMsIFRoaXMgd2FzLCB0aF52XmlvdmVeIHByaW1hLWZhY3tbJiomXX1pZSBldmlkZW5jZSB0aGF0IFNoYWtzcGVyZSB1c2VkIA0KdGhlIDE2MTIgZWRpdGlvbiBvZiBOb3J0aCBmb3IgaGlzIENvcmlvbGFue1smKiZdfXVzXiBpZiBub3QgZm9yIGhpcyBvdGhlciBSb21hbiANCnBsYXlzIFwiIChUcmFucy4gTmV3IFNoLiBTb2MpLiBNci4gUGF0b24gY2xhe1smKiZdfWltcyBmb3IgYSBjb3B5IG9mIE5vcnRoXCdzIFBsdS0gDQp0YXJjaCBub3cgaW4gdGhlIEdyZWVub2NrIGxpYnJhcnkgdGhlIGhvbm9ye1smKiZdfSBvZiBoYXZpbmcgYmVlbiBTaGFrc3BlcmVcJ3MgDQpvd24gY29weS4gSW4gaXQgYXBwZWFyIHRoZSBpbml0aWFscyBXLiBTLCBJdCBpe1smKiZdfXMgYSBjb3B5IG9mIHRoZSAxNjEyIGVkaXRpb24uIA0KDQoyNDggU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KaW17WyYqJl19YWdpbmF0aW9uIGluIHRoZSBwbGF5IG9mIEp1bGl1cyBDY0JzYXIgbGF5IHdpZGUgYXBhcnQgDQpmcm9tIHRoYXQgd2hpY2ggZm9ybXtbJiomXX1zIHRoZSBjZW50cmUgb2YgdGhlIEFudG9ueSBjbWQgDQpDbGVvcGF0cmEuIFRoZXJlZm9yZSB0aGUgcG9ldCB3YXMgbm90IGNhcnJpe1smKiZdfWVkIGRpcmVjdGx5IA0KZm9yd2FyZCBmcm9tIG9uZSB0byB0aGUgb3RoZXIuIA0KDQpCdXQgaGF2aW5nIGluIE1hY2JldGggKGFib3V7WyYqJl19dCAxNjA2KSBzdHVkaWVkIHRoZSBydWluIA0Kb2YgYSBuYXR1cmUgd2hpY2ggZ2F2ZSBmYWlyIHByb21pc2UgaW4gbWVuXCdzIGV5ZXN7WyYqJl19IG9mIA0KZ3JlYXRuZXNzIGFuZCBub2JpbGl0eSwgU2hha3NwZXJlLCBpdCBtYXkgYmUsIHByb2NlZWRlZCANCmRpcmVjdGx5IHRvIHtbJiomXX1hIHNpbWlsYXIgc3R1ZHkgaW4gdGhlIGNhc2Ugb2YgQW50b255LiBJbiANCnRoZSBuYXR1cmUgb2YgQW50b255LCBhcyBpbiB0aGUge1smKiZdfW5hdHVyZSBvZiBNYWNiZXRoLCB0aGVyZSANCmlzIGEgbW9yYWwgZmF1bHQgb3IgZmxhdywgd2hpY2ggY2lyY3Vtc3RhbmNlcyBkaXN7WyYqJl19Y292ZXIsIA0KYW5kIHdoaWNoIGluIHRoZSBlbmQgd29ya3MgaGlzIGRlc3RydWN0aW9uLiBJbiBlYWNoIA0KcGxheSB0aGUgcGF0aHtbJiomXX1vcyBpcyBvZiB0aGUgc2FtZSBraW5kIOKAlCBpdCBsaWVzIGluIHRoZSBncmFkLSANCnVhbCBzZXZlcmluZyBvZiBhIG1hbiwgdGhye1smKiZdfW91Z2ggdGhlIGx1c3Qgb2YgcG93ZXIgb3IgDQpeO2hyb3VnaCB0aGUgbHVzdCBvZiBwbGVhc3VyZSwgZnJvbSBoaXMgYmV0dGVyIHN7WyYqJl19ZWxmLiBCeSANCnRoZSBzaWRlIG9mIEFudG9ueSwgYXMgYnkgTWFjYmV0aFwncyBzaWRlLCB0aGVyZSBzdG9vZCBhIA0KdGVycmlibGV7WyYqJl19IGZvcmNlLCBpbiB0aGUgZm9ybSBvZiBhIHdvbWFuLCB3aG9zZSBmdW5jdGlvbiBpdCANCndhcyB0byByZWFsaXplIGFuZCByaXBlbntbJiomXX0gdGhlIHVub3JnYW5pemVkIGFuZCB1bmRldmVsLSANCm9wZWQgZXZpbCBvZiBoaXMgc291bC4gQW50b255XCdzIHNpbiB3YXMgYW4gaXtbJiomXX1ub3JkaW5hdGUgDQpwYXNzaW9uIGZvciBlbmpveW1lbnQgYXQgdGhlIGV4cGVuc2Ugb2YgUm9tYW4gdmlydHVlIA0KYW5kIG1hbmx5e1smKiZdfSBlbmVyZ3kgOyBhIHByb2RpZ2FsaXR5IG9mIGhlYXJ0LCBhIHN1cGVyYiBlZ28tIA0KaXNtIG9mIHBsZWFzdXJlLiBBZnRlciBhIGJ7WyYqJl19cmllZiBpbnRlcnZhbCwgU2hha3NwZXJlIHdlbnQgDQpvbiB0byBhcHBseSBoaXMgaW1hZ2luYXRpb24gdG8gdGhlIGludmVzdGlnYXtbJiomXX10aW5nIG9mIGFuLSANCm90aGVyIGZvcm0gb2YgZWdvaXNtIOKAlCBub3QgdGhlIGVnb2lzbSBvZiBzZWxmLWRpZmZ1c2lvbiwgDQpie1smKiZdfXV0IG9mIHNlbGYgLSBjb25jZW50cmF0aW9uLiBBcyBBbnRvbnkgYmV0cmF5cyBoaW1zZWxmIA0KYW5kIGhpcyBjYXVzZSB0aHJvdWd7WyYqJl19aCBoaXMgc2luIG9mIGluZHVsZ2VuY2UgYW5kIGxheGl0eSwgDQpzbyBDb3Jpb2xhbnVzIGRvZXMgdmlvbGVuY2UgdG8gaGlzIG93bntbJiomXX0gc291bCBhbmQgdG8gaGlzIA0KY291bnRyeSB0aHJvdWdoIGhpcyBzaW4gb2YgaGF1Z2h0aW5lc3MsIHJpZ2lkaXR5LCBhbmQgaW4te1smKiZdfSANCm9yZGluYXRlIHByaWRlLiBUaHVzIGFuIGV0aGljYWwgdGVuZGVuY3kgY29ubmVjdHMgdGhlc2UgDQp0d28gcGxheXMsIHdoaWN7WyYqJl19aCBhcmUgYWxzbyBjb25uZWN0ZWQgaW4gcG9pbnQgb2YgdGltZTsgDQp3aGlsZSBBbnRvbnkgYW5kIENsZW9wYXRyYV4gYWx0aG91Z3tbJiomXX1oIGhpc3RvcmljYWxseSBhIGNvbi0gDQp0aW51YXRpb24gb2YgSnVsaXVzIEdvZXNhcl4gc3RhbmRzIHNlcGFyYXRlZCBmcm9tIGl0e1smKiZdfSwgYm90aCANCmluIHRoZSBjaHJvbm9sb2dpY2FsIG9yZGVyIG9mIFNoYWtzcGVyZVwncyBwbGF5cyBhbmQgaW4gDQp0aGUgbG9naWNhe1smKiZdfWwgb3JkZXIgYXNzaWduZWQgYnkgc3VjY2Vzc2l2ZSBkZXZlbG9wbWVudHMgb2YgDQp0aGUgY29uc2NpZW5jZSwgdGhlIGludGVsbGV7WyYqJl19Y3ReIGFuZCB0aGUgaW1hZ2luYXRpb24gb2YgdGhlIA0KZHJhbWF0aXN0LiANCg0KVGhlIFJvbWFuIFBsYXlzLiAyNDkgDQoNClRoZXtbJiomXX0gdGhlbWUgb2YgdGhlIEVuZ2xpc2ggaGlzdG9yaWNhbCBwbGF5cyBpcyB0aGUgc3VlLSANCmNlc3MgYW5kIHRoZSBmYWlsdXJlIG9me1smKiZdfSBtZW4gdG8gYWNoaWV2ZSBub2JsZSBwcmFjdGljYWwgDQplbmRzLiBTaGFrc3BlcmUgb2JzZXJ2ZWQgdGhhdCB0aGVyZSBhcmUgdHd7WyYqJl19byBjbGFzc2VzIG9mIA0KbWVuIGluIHRoZSB3b3JsZCDigJQgdGhvc2Ugd2hvIHVzZSB0aGUgcmlnaHQgbWVhbnMgZm9yIA0KZWZmZXtbJiomXX1jdGluZyB0aGVpciBlbmRzLCB3aG8sIGlmIHRoZXkgd2FudCBmcnVpdCwgcGxhbnQgZnJ1aXQtIA0KdHJlZXMgOyBhbmQsIHNlY29ue1smKiZdfWRseSwgdGhvc2Ugd2hvIHdpbGwgbm90IGFjY2VwdCB0aGUgZmFjdCwgDQp3aG8gdHJ5IHRvIGdldCBmcnVpdCBieSB2YXJpb3VzIGl7WyYqJl19bmdlbmlvdXMgbWV0aG9kcywgb25seSANCm5vdCBieSBwbGFudGluZyBmcnVpdC10cmVlcy4gU3VjY2VzcyBpbiB0aGUgdmlzaWJsZXtbJiomXX0gbWF0ZS0gDQpyaWFsIHdvcmxkLCB0aGUgd29ybGQgb2Ygbm9ibGUgcG9zaXRpdmUgYWN0aW9uLCBpcyB0aGUgbWVhcy0gDQp1cmUge1smKiZdfW9mIGdyZWF0bmVzcyBpbiB0aGUgRW5nbGlzaCBoaXN0b3JpY2FsIHBsYXlzIDsgYW5kIHRoZSANCmlkZWFsLCBoZXJvaWMgY2hhcmF7WyYqJl19Y3RlciBvZiB0aG9zZSBwbGF5cyBpcyB0aGF0IG9mIHRoZSBraW5nIA0Kd2hvIHNvIGdsb3Jpb3VzbHkgc3VjY2VlZGVkIOKAlCBIZXtbJiomXX1ucnkgVi4gQnV0IGluIHRoZSANCnRyYWdlZGllcywgdGhlIG1lbiB3aG8gZmFpbCBhcmUgbm90IG5lY2Vzc2FyaWx5IGxlc3Mgd29ye1smKiZdfXRoeSANCm9mIGFkbWlyYXRpb24gdGhhbiB0aGUgbWVuIHdobyBzdWNjZWVkLiBPY3Rhdml1cywgd2hvIA0KZGVhbHMgc2tpbGZ1bGx7WyYqJl19eSB3aXRoIGxpZmUgYW5kIGlzIG1pc2xlZCBieSBubyBlbnRodXNpYXNtcywgDQp3aG9zZSBjb29sIGhlYXJ0IGRvZXMgbm90IGRpc3tbJiomXX10dXJiIGhpcyBlZmxTY2llbnQgaGFuZCwgd2hvIA0Kc2VlcyB0aGUgZmFjdCB3aXRoIGNsZWFyLWN1dCBlZGdlcywgYW5kIGFjaGlle1smKiZdfXZlcyB0aGUgbmVjLSANCmVzc2FyeSBkZWVkIHdpdGggbG9naWNhbCBwcmVjaXNpb24sIHdoaWNoIGlzIHBpdGlsZXNzLCBidXQgDQp7WyYqJl19bm90IGNydWVsIOKAlCBPY3Rhdml1cyBpcyBzdWNjZXNzZnVsLiBZZXQgd2Ugc2hvdWxkIHJhdGhlciANCmZhaWwgd2l0aCBCcnV0dXtbJiomXX1zLiBQcm9zcGVyaXR5IG9yIGFkdmVyc2l0eSBpbiB0aGUgbWF0ZS0gDQpyaWFsIHdvcmxkIGlzIGhlcmUgYSBzZWNvbmRhcnkgYWZme1smKiZdfWFpci4gQnkgdGhpcyB0aW1lIFNoYWstIA0Kc3BlcmUgaGltc2VsZiwgYnkgdXNlIG9mIG1lYW5zIHdoaWNoIGhlIHdvdWxkIG5vdCB7WyYqJl19cmUtIA0KamVjdCwgaG93ZXZlciBkaXN0YXN0ZWZ1bCB0aGV5IHdlcmUsIGhhZCBzdWNjZWVkZWQgOiBoZSANCmhhZCBwcmFjdGljYXtbJiomXX1sbHkgbWFzdGVyZWQgbGlmZSBmcm9tIHRoZSBtYXRlcmlhbCBwb2ludCBvZiANCnZpZXcuIEJ1dCB0aGUgYnJlYWtpbmcgLWRvd24ge1smKiZdfW9yIHRoZSBidWlsZGluZy11cCBvZiANCmNoYXJhY3RlciBzZWVtZWQgdG8gaGltLCBub3cgbW9yZSB0aGFuIGV2ZXIgYmVmb3JlLCB7WyYqJl19b2YgDQpzdXByZW1lIGltcG9ydGFuY2UuIA0KDQpJbiBKdWxpdXMgQ2Nlc2FyIFNoYWtzcGVyZSBtYWtlcyBhIGNvbXBsZXRlIGltYXtbJiomXX1naS0gDQpuYXRpdmUgc3R1ZHkgb2YgdGhlIGNhc2Ugb2YgYSBtYW4gcHJlZGVzdGluZWQgdG8gZmFpbHVyZSwgDQp3aG8gbmV2ZXJ0e1smKiZdfWhlbGVzcyByZXRhaW5zIHRvIHRoZSBlbmQgdGhlIG1vcmFsIGludGVncml0eSANCndoaWNoIGhlIHByaXplZCBhcyBoaXMgaGlnaGV7WyYqJl19c3QgcG9zc2Vzc2lvbiwgYW5kIHdobywgd2F0aCANCmVhY2ggbmV3IGVycm9yLCBhZHZhbmNlcyBhIGZyZXNoIGNsYWltIHVwb24gb3tbJiomXX11ciBhZG1pcmEtIA0KdGlvbiBhbmQgb3VyIGxvdmUuIFRvIG1haW50YWluIHRoZSB3aWxsIGluIGEgZnJ1aXRmdWwgDQpyZWxhdGlve1smKiZdfW4gd2l0aCBmYWN0cyDigJQgdGhhdCB3YXMgd2hhdCBSb21lbyBjb3VsZCBub3QgZG8sIA0KYmVjYXVzZSBoZSBicm9vZGVkIG92ZXJ7WyYqJl19IHRoaW5ncyBhcyB0aGV5IHJlZmxlY3RlZCBhbmQgcmUtIA0KDQoxIA0KDQoyNTAgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXtbJiomXX1ydC4gDQoNCnBlYXRlZCB0aGVtc2VsdmVzIGluIGhpcyBvd24gZW1vdGlvbnMgOyB3aGF0IEhhbWxldCANCmNvdWxkIG5vdCBkbywge1smKiZdfWJlY2F1c2UgaGUgd291bGQgbm90LCBvciBjb3VsZCBub3QsIGNvbWUgDQppbnRvIGRpcmVjdCBjb250YWN0IHdpdGggZXZlbnRzLCB7WyYqJl19YnV0IHN0dWRpZWQgdGhlbSBhcyB0aGV5IA0KZW5kbGVzc2x5IHJlcGVhdGVkIGFuZCByZWZsZWN0ZWQgdGhlbXNlbHZlcyBpbiBoaXtbJiomXX1zIG93biANCnRoaW5raW5nLiBIZW5yeSBWLiBoYWQgYmVlbiBhIHJ1bGVyIG9mIG1lbiwgYmVjYXVzZSwgDQpwb3NzZXNzaW5nIGEge1smKiZdfWNlcnRhaW4gcGxhaW4gZ2VuaXVzIGZvciBnZXR0aW5nIGludG8gZGlyZWN0IA0KcmVsYXRpb24gd2l0aCBjb25jcmV0ZSBmYWN0LCB7WyYqJl19YW5kIHBvc3Nlc3NpbmcsIGFsc28sIGVudGlyZSANCm1vcmFsIHNvdW5kbmVzcywgaGlzIHdpbGwsIGhpcyBjb25zY2llbmNlLCBoaXtbJiomXX1zIGludGVsbGVjdCwgDQphbmQgaGlzIGVudGh1c2lhc21zIGhhZCBhbGwgYmVlbiBhdCBvbmUgYW5kIGhhZCBhbGwgDQp0ZW5kZWQge1smKiZdfXRvIGFjdGlvbi4gU2hha3NwZXJlXCdzIGFkbWlyYXRpb24gb2YgdGhlIGdyZWF0IA0KbWVuIG9mIGFjdGlvbiBpcyBpbW1lbnNlLCBie1smKiZdfWVjYXVzZSBoZSBoaW1zZWxmIHdhcyBwcmktIA0KbWFyaWx5IG5vdCBhIG1hbiBvZiBhY3Rpb24uIEhlIGlzIHN0ZXJuIHRvIGFsbCB7WyYqJl19aWRlYWxpc3RzLCANCmJlY2F1c2UgaGUgd2FzIGF3YXJlIHRoYXQgaGUgbWlnaHQgdG9vIGVhc2lseSB5aWVsZCBoaW0tIA0Kc2VsZntbJiomXX0gdG8gdGhlIHRlbmRlbmNpZXMgb2YgYW4gaWRlYWxpc3QuIFdoZW4gU2hha3NwZXJlIA0KZmVlbHMgaGltc2VsZiBzaG9vdGluZyB1e1smKiZdfXAgdG9vIHJhcGlkbHksIGhlIFwiIHN0b3BzXCctIGhpbXNlbGYsIA0KYXMgZ2FyZGVuZXJzIGRvIGEgcGxhbnQsIHRoYXQgaGUgbWF5IHtbJiomXX10aHJvdyBvdXQgc2hvb3RzIGJlLSANCmxvdyBhbmQgaW5jcmVhc2UgaW4gc3RyZW5ndGggYW5kIG1hc3NpdmVuZXNzLiBJZiBoaXMge1smKiZdfQ0KZmVlbGluZ3MgYmVnaW4gdG8gaWRlYWxpemUsIGhlIHN0b3BzIHRoZW0sIGluIG9yZGVyIHRoYXQgYnkgDQpjb21pbmcgaW50byB7WyYqJl19bW9yZSBmcnVpdGZ1bCByZWxhdGlvbiB3aXRoIGZhY3QgaGUgbWF5IGFkZCANCmZvcmNlIGFuZCBhbXBsaXR1ZGUgdG8gaGlzIGZlZXtbJiomXX1saW5ncy4gSWYgaGlzIGlkZWFzIHRlbmQgdG8gDQpiZWNvbWUgYWJzdHJhY3QgYW5kIG5vdGlvbmFsLCBoZSBwbHVuZ2VzIHRoZW0ge1smKiZdfWludG8gY29uLSANCmNyZXRlIG1hdHRlciwgaW4gb3JkZXIgdGhhdCB0aGV5IG1heSBlbnJpY2ggYW5kIHZpdGFsaXplIA0KdGhlbXN7WyYqJl19ZWx2ZXMuIEFnYWluc3QgaGlzIGlkZWFsaXppbmcgdGVuZGVuY3kgU2hha3NwZXJlIA0KY29uc3RhbnRseSBwbGF5cyBvZmxmIGhpc3tbJiomXX0gaHVtb3IsIHJlc29sdmVkIHRoYXQgaGUgd2lsbCBub3QgDQpsZXQgaGltc2VsZiBlc2NhcGUgZnJvbSB0aGUgcmVhbCB3b3JsZCwge1smKiZdfWFuZCBmcm9tIHRoZSANCndob2xlIG9mIGl0LiBCdXQgd2l0aCBoaXMgc3Rlcm5uZXNzIHRvIGlkZWFsaXN0cyB0aGVyZSBpcyANCm17WyYqJl19aW5nbGVkIGEgcGFzc2lvbmF0ZSB0ZW5kZXJuZXNzLiBIZSBzaG93cyB1cywgcmVtb3JzZS0gDQpsZXNzbHksIHRoZWlyIGZhaWx1cntbJiomXX1lIDsgYnV0IHdoaWxlIHRoZXkgZmFpbCB3ZSBsb3ZlIHRoZW0uIA0KDQpTaGFrc3BlcmUgXCJzdG9wc1wiIGhpbXNlbGYgYmVjYXVzZSB7WyYqJl19aGUgaGFzIGVudGlyZSBjb24tIA0KZmlkZW5jZSBpbiB0aGUgdmlnb3Igb2YgYm90aCBoaXMgaW50ZWxsZWN0IGFuZCBoaXMgaGVhcntbJiomXX10LCANCmFuZCBhbHNvIGluIHRoZSBnb29kIHBvd2VycyBvZiB0aGlzIHByZXNlbnQgd29ybGQuIEhlIA0KZG9lcyBub3Qgc3VwcG9ze1smKiZdfWUgdGhhdCBoaXMgdGhvdWdodHMgd2lsbCBiZSBsZXNzIHN0cm9uZyANCmFuZCBmcnVpdGZ1bCBiZWNhdXNlIGhlIHBsdW5nZXMgaGl7WyYqJl19cyBpZGVhcyBiYWNrIGludG8gY29uLSANCmNyZXRlIGZhY3QuIEhlIGRvZXMgbm90IHN1cHBvc2UgdGhhdCBoZSB3aWxsIGNlYXNlIHtbJiomXX10byANCmxvdmUgYmVjYXVzZSBoZSBjaG9vc2VzIHRvIHNlZSB0aGluZ3MgYXMgdGhleSBhcmUsIGFuZCANCg0KVGhlIFJvbWFuIFBse1smKiZdfWF5cy4gMjUxIA0KDQplYWNsaSB0aGluZyBvbiBldmVyeSBzaWRlLCByYXRoZXIgdGhhbiByZWZpbmUgdGhpbmdzIGF3YXkgDQppbnR7WyYqJl19byB0aGUgYWJzdHJhY3Rpb25zIG9mIHRoZSBoZWFydCB3aGljaCBhcmUgZGVzaXJlZCBieSANCnRoZSBwdXJpc3Qgb3IgdGhlIHNlbntbJiomXX10aW1lbnRhbGlzdC4gSGUgZG9lcyBub3QgZmVhciB0aGF0IA0KXFwgaGlzIHdpbGwgbWF5IGdyYXNwIHRoaW5ncyB3aXRoIGxlc3MgZXtbJiomXX1uZXJneSBvciBsZXNzIHRlbmFjLSANCml0eSwgYmVjYXVzZSBoZSBrbm93cyBoaXMgcHVycG9zZSBhbmQgY2FuIHJlZnJhaW4uIEFue1smKiZdfWQgDQphY2NvcmRpbmdseSwgd2hpbGUgd2UgbWF5IG5vdGUgbWFueSBwYXJ0aWN1bGFycyB3aGljaCANCmRpc3Rpbmd1aXNoIFNoYWt7WyYqJl19c3BlcmVcJ3MgbGF0ZXIgd3JpdGluZ3MgZnJvbSB0aG9zZSBvZiBoaXMgDQplYXJsaWVyIHllYXJzLCB0aGUgZ3JlYXQgZGlzdGluY3R7WyYqJl19aW9uIG9mIGFsbCBpcyB0aGlzLCB0aGF0IGhpcyANCnBvd2VyIG9mIHRob3VnaHQsIHdoaWxlIGxvc2luZyBub25lIG9mIGl0cyBsaXtbJiomXX10aGVuZXNzIGFuZCANCmNlbGVyaXR5LCBiZWNhbWUsIGFzIHRpbWUgd2VudCBvbiwgbW9yZSBtYXNzaXZlIGFuZCBzdGVybi0gDQpse1smKiZdfXkgY2FwYWJsZSBvZiBlbmR1cmFuY2UgOyBzbyB0aGF0IGhlIGRhcmVkIHRvIGNvbmZyb250IHRoZSANCm1vc3QgYXdmdWwgcHJvYmx7WyYqJl19ZW1zIG9mIGxpZmUsIGFuZCBjb3VsZCBhdCB3aWxsIGVpdGhlciBzdG8tIA0KaWNhbGx5IGRldGFpbiBoaXMgbWluZCBmcm9tIGNvbntbJiomXX10ZW1wbGF0aW9uIG9mIHRoZSB1bmtub3duIA0Kb3IgY291bGQgYnJvb2QgdXBvbiBpdCB3aXRoIGxvbmcgYW5kIHdpc3RmdWwgaW50e1smKiZdfWVuc2l0eSA7IA0KYW5kLCBhdCB0aGUgc2FtZSB0aW1lLCBoaXMgZmVlbGluZ3MsIGluY3JlYXNpbmcgaW4gYXJkb3IgYW5kIA0Kc3d7WyYqJl19aWZ0bmVzcywgZ3JldyBpbiBtYXNzaXZlbmVzcyBhbmQgY29tcGxleGl0eSwgdW50aWwgZnJvbSANCnN1Y2ggbHlyaWMgbWVsb2R5IHtbJiomXX1vZiBwYXNzaW9uIGFzIHJlYWNoZXMgdXMgZnJvbSBSb21lbyANCihtZCBKdWxpZXQgd2UgbWFrZSB0cmFuc2l0aW9uIHRvIHRoZSBve1smKiZdfXJjaGVzdHJhbCBzeW1waG9ueSANCm9mIGVtb3Rpb24gd2hpY2ggZW52ZWxvcHMgdXMgd2hlbiB3ZSBhcHByb2FjaCBLaW5nIA0KTGV7WyYqJl19YXIuIA0KDQpCcnV0dXMgaXMgdGhlIHBvbGl0aWNhbCBHaXJvbmRpbi4gSGUgaXMgcGxhY2VkIGluIGNvbi0gDQp0cmFzdCB3aXRoIHtbJiomXX1oaXMgYnJvdGhlci1pbi1sYXcgQ2Fzc2l1cywgdGhlIHBvbGl0aWNhbCBKYWNvLSANCmJpbi4gQnJ1dHVzIGlzIGFuIGlkZWFsaXN0e1smKiZdfSA7IGhlIGxpdmVzIGFtb25nIGJvb2tzIDsgaGUgDQpub3VyaXNoZXMgaGltc2VsZiB3aXRoIHBoaWxvc29waGllcyA7IGhlIGlzIHN7WyYqJl19ZWNsdWRlZCBmcm9tIA0KdGhlIGltcHJlc3Npb24gb2YgZmFjdHMuIE1vcmFsIGlkZWFzIGFuZCBwcmluY2lwbGVzIGFyZSANCm1vcntbJiomXX1lIHRvIGhpbSB0aGFuIGNvbmNyZXRlIHJlYWxpdGllczsgaGUgaXMgc3R1ZGlvdXMgb2YgDQpzZWxmLXBlcmZlY3Rpb24sIGplYWxve1smKiZdfXVzIG9mIHRoZSBwdXJpdHkgb2YgaGlzIG93biBjaGFyYWN0ZXIsIA0KdW53aWxsaW5nIHRoYXQgc28gY2xlYXIgYSBjaGFyYWN0ZXJ7WyYqJl19IHNob3VsZCByZWNlaXZlIGV2ZW4gDQp0aGUgYXBwYXJlbnQgc3RhaW4gb2YgbWlzY29uY2VwdGlvbiBvciBtaXNyZXByZXNlbnRhdHtbJiomXX1pb24uIA0KSGUgaXMsIHRoZXJlZm9yZSwgYXMgc3VjaCBtZW4gYXJlLCB0b28gbXVjaCBnaXZlbiB0byBleC0gDQpwbGFuYXRpb24ge1smKiZdfW9mIGhpcyBjb25kdWN0LiBIYWQgaGUgbGl2ZWQsIGhlIHdvdWxkIGhhdmUgDQp3cml0dGVuIGFuIEFwb2xvZ3kgZm9yIGhpcyBsaWZ7WyYqJl19ZSwgZWR1Y2luZyBldmlkZW5jZSwgd2l0aCBhIA0KY2FsbSBzdXBlcmlvcml0eSwgdG8gcHJvdmUgdGhhdCBlYWNoIGFjdCBvZiBoaXtbJiomXX1zIGxpZmUgcHJvLSANCmNlZWRlZCBmcm9tIGFuIGhvbm9yYWJsZSBtb3RpdmUuIENhc3NpdXMsIG9uIHRoZSBjb24tIA0KdHJhcnkse1smKiZdfSBpcyBieSBubyBtZWFucyBzdHVkaW91cyBvZiBtb3JhbCBwZXJmZWN0aW9uLiBIZSANCg0KMjUyIFNoYWtzcGVyZSDigJQgSGlzIE17WyYqJl19aW5kIGFuZCBBcnQuIA0KDQppcyBmcmFua2x5IGVudmlvdXMsIGFuZCBoYXRlcyBDYWVzYXIuIFlldCBoZSBpcyBub3QgaWdub8KrIHtbJiomXX0NCmJsZS4gQnJ1dHVzIGxvdmVzIGhpbSwgYW5kIHRoZSBsb3ZlIG9mIEJydXR1cyBpcyBhIHBhdGVudCANCndoaWNoIGVzdGFibGlze1smKiZdfWhlcyBhIG1hblwncyBub2JpbGl0eSA6IA0KDQpcIiBUaGUgbGFzdCBvZiBhbGwgdGhlIFJvbWFucywgZmFyZSB0aGVlIHdlbGwgISANCntbJiomXX1JdCBpcyBpbXBvc3NpYmxlIHRoYXQgZXZlciBSb21lIA0KU2hvdWxkIGJyZWVkIHRoeSBmZWxsb3cuXCIgKiANCg0KQW5kIENhc3NpdXtbJiomXX1zIGhhcyBvbmUgd2hvIHdpbGwgZGllIGZvciBoaW0uIFRpdGluaXVzIA0KY3Jvd25zIHRoZSBkZWFkIGJyb3cgb2YgdGhlIGNvbnNwe1smKiZdfWlyYXRvciA6IA0KDQpcIiBCcnV0dXMsIGNvbWUgYXBhY2UsIA0KQW5kIHNlZSBob3cgSSByZWdhcmRlZCBDYWl1cyBDYXNzaXVzLiDie1smKiZdfYCUIA0KQnkgeW91ciBsZWF2ZSwgZ29kcyDigJQgdGhpcyBpcyBhIFJvbWFuXCdzIHBhcnQ6IA0KQ29tZSwgQ2Fzc2l1c1wnIHN3b3JkLHtbJiomXX0gYW5kIGZpbmQgVGl0aW5pdXNcJyBoZWFydC5cIiANCg0KQ2Fzc2l1cyBoYXMgYSBzd2lmdCBhbmQgY2xlYXIgcGVyY2VwdGlvbiBvZiB7WyYqJl19dGhlIGZhY3QuIEhlIA0KaXMgbm90LCBsaWtlIEJydXR1cywgYSB0aGVvcmlzdCwgYnV0IFwiIGEgZ3JlYXQgb2JzZXJ2ZXIsXCIgd2hve1smKiZdfSANClwiIGxvb2tzIHF1aXRlIHRocm91Z2ggdGhlIGRlZWRzIG9mIG1lbi5cJ1wnIEJydXR1cyBsaXZlcyBpbiANCnRoZSBhYnN0cmFjdGl7WyYqJl19b24sIGluIHRoZSBpZGVhIDsgQ2Fzc2l1cyBsaXZlcyBpbiB0aGUgY29uY3JldGUsIA0KaW4gdGhlIGZhY3QuIA0KDQpUaGUgY29uc3tbJiomXX1waXJhY3kgaGFzIGJlZW4gY29uY2VpdmVkIGFuZCBoYXRjaGVkIGJ5IA0KQ2Fzc2l1cy4gVGhlIG9uZSB0aGluZyB3YW50aW5nIHRve1smKiZdfSB0aGUgY29uc3BpcmF0b3JzLCBhcyANCmhlIHBlcmNlaXZlcywgaXMgbW9yYWwgZWxldmF0aW9uLCBhbmQgdGhhdCBwcmVzdGlnZSB7WyYqJl19d2hpY2ggDQp3b3VsZCBiZSBsZW50IHRvIHRoZSBlbnRlcnByaXNlIGJ5IGEgZGlzaW50ZXJlc3RlZCBhbmQgDQpsb2Z0eSBzb3VsIHtbJiomXX1saWtlIHRoYXQgb2YgQnJ1dHVzLiBUaGUgdGltZSBpcyB0aGUgZmVhc3Qgb2YgDQpMdXBlcmNhbCwgYW5kIEFudG9ueSBpcyB0byBye1smKiZdfXVuIGluIHRoZSBnYW1lcy4gQ2Flc2FyIA0KcGFzc2VzIGJ5LCBhbmQgYXMgaGUgcGFzc2VzIGEgc29vdGhzYXllciBjYWxscyBpbiB7WyYqJl19c2hyaWxsIA0KdG9uZXMgZnJvbSB0aGUgcHJlc3Mgb2YgcGVvcGxlLCBcJ14gQmV3YXJlIHRoZSBJZGVzIG9mIA0KTWFyY2guXCIgQ2Fle1smKiZdfXNhciBzdW1tb25zIGhpbSBmb3J3YXJkLCBnYXplcyBpbiBoaXMgZmFjZSwgDQphbmQgZGlzbWlzc2VzIGhpbSB3aXRoIGF1dGhvcml7WyYqJl19dGF0aXZlIGdlc3R1cmUsIFwiSGUgaXMgYSANCmRyZWFtZXI7IGxldCB1cyBsZWF2ZSBoaW06IHBhc3MuXCIgSXQgaXMgZXZpZGVudGx5e1smKiZdfSBpbi0gDQp0ZW5kZWQgdGhhdCBDYWVzYXIgc2hhbGwgaGF2ZSBhIGZvaWJsZSBmb3Igc3VwcG9zaW5nIHRoYXQgDQpoZSBjYW4gcmV7WyYqJl19YWQgb2ZpIGNoYXJhY3RlciBmcm9tIHRoZSBmYWNlcyBvZiBtZW4gOiANCg0KXCIgWW9uZCBDYXNzaXVzIGhhcyBhIGxlYW4gYW5kIGh7WyYqJl19dW5ncnkgbG9vay5cIiANCg0KKiBUaGVzZSBsaW5lcyBhcmUgdGFrZW4gYWxtb3N0IHdvcmQgZm9yIHdvcmQgZnJvbSBOb3J0aFwncyBQe1smKiZdfWx1dGFyY2guIA0KQmVzaWRlcyBoYXZpbmcgcmVhZCBQbHV0YXJjaCwgaXQgc2VlbXMgcHJvYmFibGUgdGhhdCBTaGFrc3BlcmUgd2F7WyYqJl19cyBhYy0gDQpxdWFpbnRlZCB3aXRoIHRoZSB0cmFuc2xhdGlvbiBvZiBBcHBpYW4sIDE1VjgsIGZyb20gd2hpY2ggaGUgcHJvYmFibHtbJiomXX15IG9iwqsgDQp0YWluZWQgdGhlIGhpbnRzIGZvciBoaXMgZ3JlYXQgc3BlZWNoZXMgb2YgQnJ1dHVzIGFuZCBvZiBBbnRvbnkuIA0Ke1smKiZdfQ0KVGhlIFJvbWFuIFBsYXlzLiAyNTMgDQoNCkNzZXNhciBuZWVkIG5vdCBjb25kZXNjZW5kIHRvIHRoZSBvcmRpbmFyeSB3YXlzIG97WyYqJl19ZiBvYi0gDQp0YWluaW5nIGFjcXVhaW50YW5jZSB3aXRoIGZhY3RzLiBIZSBhc2tzIG5vIHF1ZXN0aW9uIG9mIA0KdGhlIHNvb3Roc3tbJiomXX1heWVyLiBIZSB0YWtlcyB0aGUgcm95YWwgcm9hZCB0byBrbm93bGVkZ2UtIA0KaW50dWl0aW9uLiBUaGlzIHNlbGYtaW5kdWxnZW5je1smKiZdfWUgb2YgaGlzIG93biBmb2libGVzIGlzLCBhcyANCml0IHdlcmUsIHN5bWJvbGl6ZWQgYnkgaGlzIHBoeXNpY2FsIGluZmlybWl0eSx7WyYqJl19IHdoaWNoIGhlIA0KYWRtaXRzIGluIGxvcmRseSBmYXNoaW9uIOKAlCBcIiBDb21lIG9uIG15IHJpZ2h0IGhhbmQsIGZvciANCnRoaXN7WyYqJl19IGVhciBpcyBkZWFmLlwiIENhZXNhciBpcyBlbnRpdGxlZCB0byBvd24gc3VjaCBhIGZvaWJsZSANCmFzIGRlYWZuZXNzIDsgaXQgbWF7WyYqJl19eSBwYXNzIHdlbGwgd2l0aCBDYWVzYXIuIElmIG1lbiB3b3VsZCANCmhhdmUgaGltIGhlYXIgdGhlbSwgbGV0IHRoZW0gY29tZSB0b3tbJiomXX0gaGlzIHJpZ2h0IGVhci4gDQpNZWFud2hpbGUsIHRoaW5ncyBtYXkgYmUgd2hpc3BlcmVkIHdoaWNoIGl0IHdlcmUgd2VsbCANCmZve1smKiZdfXIgaGltIGlmIGhlIHN0cmFpbmVkIGFuIGVhciDigJQgcmlnaHQgb3IgbGVmdCDigJQgdG8gY2F0Y2guIEluIA0KU2hha3NwZXJlXCdze1smKiZdfSByZW5kZXJpbmcgb2YgdGhlIGNoYXJhY3RlciBvZiBDYWVzYXIsIHdoaWNoIA0KaGFzIGNvbnNpZGVyYWJseSBiZXdpbGRlcmVkIGh7WyYqJl19aXMgY3JpdGljcywgb25lIHRob3VnaHQgb2YgDQp0aGUgcG9ldCB3b3VsZCBzZWVtIHRvIGJlIHRoaXMg4oCUIHRoYXQgdW5sZXNzIHtbJiomXX1hIG1hbiBjb24tIA0KdGludWFsbHkga2VlcHMgaGltc2VsZiBpbiByZWxhdGlvbiB3aXRoIGZhY3RzLCBhbmQgd2l0aCBoaXMgDQpwe1smKiZdfXJlc2VudCBwZXJzb24gYW5kIGNoYXJhY3RlciwgaGUgbWF5IGJlY29tZSB0byBoaW1zZWxmIA0KbGVnZW5kYXJ5IGFuZCBteXRoaWN7WyYqJl19YWwuIFRoZSByZWFsIG1hbiBDYWVzYXIgZGlzYXBwZWFycyANCmZvciBoaW1zZWxmIHVuZGVyIHRoZSBncmVhdG5lc3Mgb2YgdGhlIHtbJiomXX1DYWVzYXIgbXl0aC4gSGUgDQpmb3JnZXRzIGhpbXNlbGYgYXMgaGUgYWN0dWFsbHkgaXMsIGFuZCBrbm93cyBvbmx5IHRoZSB2YXN0e1smKiZdfSANCmxlZ2VuZGFyeSBwb3dlciBuYW1lZCBDYWVzYXIuIEhlIGlzIGEgbnVtZW4gdG8gaGltLSANCnNlbGYsIHNwZWFraW5nIG9mIEN7WyYqJl19YWVzYXIgaW4gdGhlIHRoaXJkIHBlcnNvbiwgYXMgaWYgb2Ygc29tZSANCnBvd2VyIGFib3ZlIGFuZCBiZWhpbmQgaGlzIGNvbnNjaXtbJiomXX1vdXNuZXNzLiBBbmQgYXQgdGhpcyANCnZlcnkgbW9tZW50IOKAlCBzbyBpcm9uaWNhbCBpcyB0aGUgdGltZS1zcGlyaXQg4oCUIENhe1smKiZdfXNzaXVzIGlzIA0KY3J1ZWxseSBpbnNpc3RpbmcgdG8gQnJ1dHVzIHVwb24gYWxsIHRob3NlIGluZmlybWl0aWVzIA0Kd2hpY2ggcHJ7WyYqJl19b3ZlIHRoaXMgZ29kIG5vIG1vcmUgdGhhbiBhIHBpdGlmdWwgbW9ydGFsLiANCg0KSnVsaXVzIENhZXNhciBhcHBlYXJzIGluIG9ubHtbJiomXX15IHRocmVlIHNjZW5lcyBvZiB0aGUgcGxheS4gDQpJbiB0aGUgZmlyc3Qgc2NlbmUgb2YgdGhlIHRoaXJkIGFjdCBoZSBkaWVzLiBXe1smKiZdfWhlcmUgaGUgZG9lcyANCmFwcGVhciwgdGhlIHBvZXQgc2VlbXMgYW54aW91cyB0byBpbnNpc3QgdXBvbiB0aGUgd2Vha25lc3MgDQp7WyYqJl19cmF0aGVyIHRoYW4gdGhlIHN0cmVuZ3RoIG9mIENhZXNhci4gSGUgc3dvb25zIHdoZW4gdGhlIA0KY3Jvd24gaXMgb2ZmZXJlZCB0b3tbJiomXX0gaGltLCBhbmQgdXBvbiBoaXMgcmVjb3ZlcnkgZW5hY3RzIGEgDQpwaWVjZSBvZiBzdGFneSBoZXJvaXNtIDsgaGUgc3VmZmVycyBme1smKiZdfXJvbSB0aGUgZmFsbGluZy1zaWNrLSANCm5lc3M7IGhlIGlzIGRlYWYgOyBoaXMgYm9keSBkb2VzIG5vdCByZXRhaW4gaXRzIGVhcmx7WyYqJl19eSB2aWdvci4gDQpIZSBpcyBzdWJqZWN0IHRvIHRoZSB2YWluIGhvcGVzIGFuZCB2YWluIGFsYXJtcyBvZiBzdXBlci0gDQpzdGl0aXtbJiomXX1vbi4gSGlzIG1hbm5lciBvZiBzcGVlY2ggaXMgcG9tcG91cyBhbmQgYXJyb2dhbnQgOyANCmhlIGFjY2VwdHMgZmxhdHRlcnkgYXMge1smKiZdfWEgcmlnaHQgOyBoZSB2YWNpbGxhdGVzLCB3aGlsZSBwcm9mZXNzLSANCg0KMjU0IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEF7WyYqJl19cnQuIA0KDQppbmcgdW5hbHRlcmFibGUgY29uc3RhbmN5IDsgaGUgaGFzIGxvc3QgaW4gcGFydCBoaXMgZ2lmdCBvZiANCnBlcmNlaXtbJiomXX12aW5nIGZhY3RzLCBhbmQgb2YgZGVhbGluZyBlZmxTY2llbnRseSB3aXRoIG1lbiBhbmQgDQp3aXRoIGV2ZW50cy4gV2h5IGlzIHRoe1smKiZdfWlzID8gQW5kIHdoeSBpcyB0aGUgcGxheSwgbm90LSANCndpdGhzdGFuZGluZywgXCJKdWxpdXMgQ2Flc2FyP1wiIFdoeSBkaWQgU2hha3tbJiomXX1zcGVyZSBkZS0gDQpjaWRlIHRvIHJlcHJlc2VudCBpbiBzdWNoIGEgbGlnaHQgdGhlIGNoaWVmIG1hbiBvZiB0aGUgUm8tIA0KbWFue1smKiZdfSB3b3JsZCA/IFBhc3NhZ2VzIGluIG90aGVyIHBsYXlzIHByb3ZlIHRoYXQgU2hhay0gDQpzcGVyZSBoYWQgbm90IHJlYWxseSBtaXN7WyYqJl19Y29uY2VpdmVkIFwiIHRoZSBtaWdodGllc3QgSnVsaXVzLFwiIA0KXCIgYnJvYWQtZnJvbnRlZCBDYWVzYXIsXCIgdGhlIGNvbnF1ZXJvciB7WyYqJl19b3ZlciB3aG9tIFwnXiBkZWF0aCANCm1ha2VzIG5vIGNvbnF1ZXN0LlwiIF4gXCIgVGhlIHBvZXQsXCIgd3JpdGVzIEdlcnZpbnVzLCBcIiBpe1smKiZdfWYgDQpoZSBpbnRlbmRlZCB0byBtYWtlIHRoZSBhdHRlbXB0IG9mIHRoZSByZXB1YmxpY2FucyBoaXMgDQptYWluIHRoZW1lLCBjb3V7WyYqJl19bGQgbm90IGhhdmUgdmVudHVyZWQgdG8gY3JlYXRlIHRvbyBncmVhdCANCmFuIGludGVyZXN0IGluIENhZXNhciA7IGl0IHdhcyBuZXtbJiomXX1jZXNzYXJ5IHRvIGtlZXAgaGltIGluIHRoZSANCmJhY2tncm91bmQsIGFuZCB0byBwcmVzZW50IHRoYXQgdmlldyBvZiBoaW0gd2hpe1smKiZdfWNoIGdhdmUgYSANCnJlYXNvbiBmb3IgdGhlIGNvbnNwaXJhY3kuIEFjY29yZGluZyBldmVuIHRvIFBsdXRhcmNoLCANCi4gLiAuIEN7WyYqJl19YWVzYXJcJ3MgY2hhcmFjdGVyIGFsdGVyZWQgbXVjaCBmb3IgdGhlIHdvcnNlIHNob3J0bHkgDQpiZWZvcmUgaGlzIGRlYXRoLCBhbmR7WyYqJl19IFNoYWtzcGVyZSBoYXMgcmVwcmVzZW50ZWQgaGltIGFjLSANCmNvcmRpbmcgdG8gdGhpcyBzdWdnZXN0aW9uLlwiIFxcIE1yLiBIdWRze1smKiZdfW9uIG9mZmVycyBhIHNvbWUtIA0Kd2hhdCBzaW1pbGFyIGV4cGxhbmF0aW9uIDogXCIgSSBoYXZlIHNvbWV0aW1lcyB0aG91Z2h0IA0Ke1smKiZdfXRoYXQgdGhlIHBvbGljeSBvZiB0aGUgZHJhbWEgbWF5IGhhdmUgYmVlbiB0byByZXByZXNlbnQgDQpDYWVzYXIgbm90IGFzIGhlIHd7WyYqJl19YXMgaW5kZWVkLCBidXQgYXMgaGUgbXVzdCBoYXZlIGFwcGVhcmVkIA0KdG8gdGhlIGNvbnNwaXJhdG9ycyA7IHRvIG1ha2UgdXMgc3tbJiomXX1lZSBoaW0gYXMgdGhleSBzYXcgaGltLCANCmluIG9yZGVyIHRoYXQgdGhleSwgdG9vLCBtaWdodCBoYXZlIGZhaXIgYW5kIGVxdWFse1smKiZdfSBqdWRnLSANCm1lbnQgYXQgb3VyIGhhbmRzLiBGb3IgQ2Flc2FyIHdhcyBsaXRlcmFsbHkgdG9vIGdyZWF0IHRvIA0KYmUgc2VlbiB7WyYqJl19YnkgdGhlbSwgc2F2ZSBhcyBjaGlsZHJlbiBvZnRlbiBzZWUgYnVnYmVhcnMgYnkgDQptb29ubGlnaHQsIHdoZW4gdGhlaXIgaW5leHtbJiomXX1wZXJpZW5jZWQgZXllcyBhcmUgbW9ja2VkIA0Kd2l0aCBhaXIuXCIgQW5kIE1yLiBIdWRzb24gYmVsaWV2ZXMgdGhhdCBoZSBjYW4gZHtbJiomXX1ldGVjdCANCmEgXCJyZWZpbmVkIGFuZCBzdWJ0bGUgaXJvbnlcIiBkaWZmdXNpbmcgaXRzZWxmIHRocm91Z2ggDQp0aGUgdGV4dHVyZSB7WyYqJl19b2YgdGhlIHBsYXkgOyB0aGF0IEJydXR1cywgYSBzaGFsbG93IGlkZWFsaXN0LCANCnNob3VsZCBvdXRzaGluZSB0aGUgZ3JlYXRlc3tbJiomXX10IHByYWN0aWNhbCBnZW5pdXMgdGhlIHdvcmxkIA0KZXZlciBzYXcsIGNhbiBoYXZlIG5vIG90aGVyIHRoYW4gYW4gaXJvbmljYWwge1smKiZdfXNpZ25pZmljYW5jZS4gDQpOZWl0aGVyIEdlcnZpbnVzIG5vciBNci4gSHVkc29uIGhhcyBzb2x2ZWQgdGhlIGRpZi0gDQpmaWN1bHR7WyYqJl19eS4gSnVsaXVzIENhZXNhciBpcyBpbmRlZWQgcHJvdGFnb25pc3Qgb2YgdGhlIHRyYWctIA0KDQoqIEhhbWxldCwgYWN0IGkuLCBzY3tbJiomXX0uIDEgOyBBbnRvbnkgYW5kIENsZW9wYXRyYSwgYWN0IEwsIHNvLiA1IDsgS2luZyBSaWNoYXJkIA0KSUlJLiwgYWN0IGlpaS4sIHNje1smKiZdfS4gMS4gDQoNCnQgR2VydmludXMsICoqIFNoYWtlc3BlYXJlIENvbW1lbnRhcmllc1wiICgxODYzKSwgdm9sLiBpaS4sIHAuIDM2MC4ge1smKiZdfQ0KDQpUaGUgUm9tYW4gUGxheXMuIDI1NSANCg0KZWR5IDsgYnV0IGl0IGlzIG5vdCB0aGUgQ2Flc2FyIHdob3NlIGJvZGlseSBwcmV7WyYqJl19c2VuY2UgaXMgDQp3ZWFrLCB3aG9zZSBtaW5kIGlzIGRlY2xpbmluZyBpbiBzdHJlbmd0aCBhbmQgc3VyZS1mb290ZWQgDQplbmVyZ3tbJiomXX15LCB0aGUgQ2Flc2FyIHdobyBzdGFuZHMgZXhwb3NlZCB0byBhbGwgdGhlIGFjY2lkZW50cyANCm9mIGZvcnR1bmUuIFRoaXMgYm9ke1smKiZdfWlseSBwcmVzZW5jZSBvZiBDYWVzYXIgaXMgYnV0IG9mIHNlYy0gDQpvbmRhcnkgaW1wb3J0YW5jZSwgYW5kIG1heSBiZSBzdXBwbGl7WyYqJl19ZWQgd2hlbiBpdCBhY3R1YWxseSANCnBhc3NlcyBhd2F5LCBieSBPY3Rhdml1cyBhcyBpdHMgc3Vic3RpdHV0ZS4gSXQgaXMgdGhlIHtbJiomXX1zcGlyaXQgDQpvZiBDYWVzYXIgd2hpY2ggaXMgdGhlIGRvbWluYW50IHBvd2VyIG9mIHRoZSB0cmFnZWR5IDsgDQphZ2FpbnN0IHRoe1smKiZdfWlzIOKAlCB0aGUgc3Bpcml0IG9mIENhZXNhciDigJQgQnJ1dHVzIGZvdWdodDsgYnV0IA0KQnJ1dHVzLCB3aG8gZm9yZXZlciBlcnJ7WyYqJl19cyBpbiBwcmFjdGljYWwgcG9saXRpY3MsIHN1Y2NlZWRlZCANCm9ubHkgaW4gc3RyaWtpbmcgZG93biBDYWVzYXJcJ3MgYm9keSA7IGh7WyYqJl19ZSB3aG8gaGFkIGJlZW4gDQp3ZWFrIG5vdyByaXNlcyBhcyBwdXJlIHNwaXJpdCwgc3Ryb25nIGFuZCB0ZXJyaWJsZSwgYW5kIA0KYXtbJiomXX12ZW5nZXMgaGltc2VsZiB1cG9uIHRoZSBjb25zcGlyYXRvcnMuIFRoZSBjb250cmFzdCBiZS0gDQp0d2VlbiB0aGUgd2Vha25lc3Mge1smKiZdfW9mIENhZXNhclwncyBib2RpbHkgcHJlc2VuY2UgaW4gdGhlIA0KZmlyc3QgaGFsZiBvZiB0aGUgcGxheSwgYW5kIHRoZSBtaWdodCBve1smKiZdfWYgaGlzIHNwaXJpdHVhbCBwcmVzLSANCmVuY2UgaW4gdGhlIGxhdHRlciBoYWxmIG9mIHRoZSBwbGF5LCBpcyBlbXBoYXNpemVkLCB7WyYqJl19YW5kIHBlci0gDQpoYXBzIG92ZXItZW1waGFzaXplZCwgYnkgU2hha3NwZXJlLiBJdCB3YXMgdGhlIGVycm9yIG9mIA0KQnJ1dHVzIHtbJiomXX10aGF0IGhlIGZhaWxlZCB0byBwZXJjZWl2ZSB3aGVyZWluIGxheSB0aGUgdHJ1ZSANCkNhZXNhcmVhbiBwb3dlciwgYW5kIGFjdGVke1smKiZdfSB3aXRoIHNob3J0LXNpZ2h0ZWQgZWFnZXJuZXNzIA0KYW5kIHZpb2xlbmNlLiBNYXJrIEFudG9ueSwgb3ZlciB0aGUgZGVhZCBib2R7WyYqJl19eSBvZiBoaXMgDQpsb3JkLCBhbm5vdW5jZXMgd2hhdCBpcyB0byBmb2xsb3cgOiANCg0KXCIgT3ZlciB0aHkgd291bmRzIG5vdyBkbyB7WyYqJl19SSBwcm9waGVzeSDigJQgDQoNCuKAoiDigKLigKLigKLCq+KAoiANCg0KQSBjdXJzZSBzaGFsbCBsaWdodCB1cG9uIHRoZSBsaW1ic3tbJiomXX0gb2YgbWVuIDsgDQpEb21lc3RpYyBmdXJ5IGFuZCBmaWVyY2UgY2l2aWwgc3RyaWZlIA0KU2hhbGwgY3VtYmVyIGFsbCB0aGUgcGFye1smKiZdfXRzIG9mIEl0YWx5IDsgDQoNCuKAoiDigKIgLiDigKIg4oCiIA0KDQpBbmQgQ2Flc2FyXCdzIHNwaXJpdCwgcmFuZ2luZyBmb3IgcmV2e1smKiZdfWVuZ2UsIA0KV2l0aCBBdGUgYnkgaGlzIHNpZGUgY29tZSBob3QgZnJvbSBoZWxsLCANClNoYWxsIGluIHRoZXNlIGNvbmZpbmVzIHd7WyYqJl19aXRoIGEgbW9uYXJjaFwncyB2b2ljZSANCkNyeSAqIEhhdm9jLFwnIGFuZCBsZXQgc2xpcCB0aGUgZG9ncyBvZiB3YXIuXCIgDQoNClRoZXtbJiomXX0gZ2hvc3Qgb2YgQ2Flc2FyIChkZXNpZ25hdGVkIGJ5IFBsdXRhcmNoIG9ubHkgdGhlIA0KXl4gZXZpbCBzcGlyaXQgXCIgb2YgQnJ1dHtbJiomXX11cyksIHdoaWNoIGFwcGVhcnMgb24gdGhlIG5pZ2h0IGJlLSANCmZvcmUgdGhlIGJhdHRsZSBvZiBQaGlsaXBwaSwgc2VydmVzIGFze1smKiZdfSBhIGtpbmQgb2YgdmlzaWJsZSANCnN5bWJvbCBvZiB0aGUgdmFzdCBwb3N0aHVtb3VzIHBvd2VyIG9mIHRoZSBkaWN0YXRvci4gDQp7WyYqJl19Q2Fzc2l1cyBkaWVzIHdpdGggdGhlIHdvcmRzIOKAlCANCg0KMjU2IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gXCcgDQp7WyYqJl19DQpcIiBDYWVzYXIsIHRob3UgYXJ0IHJldmVuZ2VkLCANCkV2ZW4gd2l0aCB0aGUgc3dvcmQgdGhhdCBraWxsZWQgdGhlZS5cIiANCg0Ke1smKiZdfUJydXR1cywgd2hlbiBoZSBsb29rcyB1cG9uIHRoZSBkZWFkIGZhY2Ugb2YgaGlzIGJyb3RoZXIsIA0KZXhjbGFpbXMsIA0KDQoqXCcge1smKiZdfUp1bGl1cyBDYWVzYXIsIHRob3UgYXJ0IG1pZ2h0eSB5ZXQgISANClRoeSBzcGlyaXQgd2Fsa3MgYWJyb2FkLCBhbmQgdHVybnMgb3V7WyYqJl19ciBzd29yZHMgDQpJbiBvdXIgb3duIHByb3BlciBlbnRyYWlscy5cIiANCg0KRmluYWxseSwgdGhlIGxpdHRsZSBlZmZvcnQgb2YgdGh7WyYqJl19ZSBhcmlzdG9jcmF0IHJlcHVibGljYW5zIHNpbmtzIA0KdG8gdGhlIGdyb3VuZCwgZm9pbGVkIGFuZCBjcnVzaGVkIGJ5IHRoZSBmb3tbJiomXX1yY2Ugd2hpY2ggdGhleSANCmhhZCBob3BlZCB0byBhYm9saXNoIHdpdGggb25lIHZpb2xlbnQgYmxvdy4gQnJ1dHVzIA0KZGllczoge1smKiZdfQ0KDQpcIiBDYWVzYXIsIG5vdyBiZSBzdGlsbCA6IA0KSSBraWxsZWQgbm90IHRoZWUgd2l0aCBoYWxmIHNvIGdvb2QgYSB3aWxsLlwiIHtbJiomXX0NCg0KQnJ1dHVzIGRpZXMgOyBhbmQgT2N0YXZpdXMgbGl2ZXMgdG8gcmVhcCB0aGUgZnJ1aXQgd2hvc2UgDQpzZWVkIGhhZCBiZWVue1smKiZdfSBzb3duIGJ5IGhpcyBncmVhdCBwcmVkZWNlc3Nvci4gXCJXaXRoIA0Kc3RyaWN0IHByb3ByaWV0eSwgdGhlcmVmb3JlLCB0aGUgcGxhe1smKiZdfXkgYmVhcnMgdGhlIG5hbWUgb2YgDQpKdWxpdXMgQ2Nlc2FySl4gDQoNCkJydXR1cyBoYXMgc2VlbiBBbnRvbnkgZ29pbmcgdG8gdGh7WyYqJl19ZSBjb3Vyc2Ugd2hlcmUgaGUgDQppcyB0byBydW4gd2l0aCBvdGhlcnMuIFRoZSBmZWFzdCBvZiBMdXBlcmNhbCwgaW4gaG9ub3Igb3tbJiomXX1mIA0KdGhlIGdvZCBQYW4sIGlzIGJlaW5nIGNlbGVicmF0ZWQsIGFuZCBBbnRvbnkgaXMgcHJlc2VudCANCmFzIGNoaWVmIG9mIG9ue1smKiZdfWUgb2YgdGhlIGNvbXBhbmllcyBvZiBwcmllc3RzLiBUaGUgU3RvaWMgDQpCcnV0dXMgbG9va3MgdXBvbiBhbGwgdGhpcyBhcyBhbiB7WyYqJl19b2ZmZW5jZS4gSGUgZGVzcGlzZXMgDQpBbnRvbnksIGJlY2F1c2UgQW50b255IGlzIFwiZ2FtZXNvbWUsXCIgYW5kIGhlIGxvdmVzIA0Ke1smKiZdfXRoZSBkaWduaWZpZWQgZ3Jhdml0eSBvZiBoaXMgb3duIGNoYXJhY3RlciA6IA0KDQpcIiBDb3MsIFdpbGwgeW91IGdvIHNlZSB0aGUge1smKiZdfW9yZGVyIG9mIHRoZSBjb3Vyc2U/IA0KDQpCcnUsIE5vdCBJLiANCg0KQ29zLiBJIHByYXkgeW91LCBkby4gDQoNCkJydSwgSSBhbSB7WyYqJl19bm90IGdhbWVzb21lIDsgSSBkbyBsYWNrIHNvbWUgcGFydCANCk9mIHRoYXQgcXVpY2sgc3Bpcml0IHRoYXQgaXMgaW4gQW50b255LntbJiomXX0gDQpMZXQgbWUgbm90IGhpbmRlciwgQ2Fzc2l1cywgeW91ciBkZXNpcmVzIDsgDQpyaWwgbGVhdmUgeW91LlwiIA0KDQoqIEkgYW0gaXtbJiomXX1uIGdyZWF0IHBhcnQgaW5kZWJ0ZWQgZm9yIHRoaXMgZXhwbGFuYXRpb24gb2YgdGhlIGRpZmZpY3VsdHkgdG8gdGhlIA0KYXJ0aWNse1smKiZdfWUgXCIgRGllIGRyYW1hdGlzY2hlIEVpbmhlaXQgaW0gSnVsaXVzIENzZXNhcixcIiBieSBEci4gQWxiZXJ0IExpbmRuZXIsIA0KaW4gdHtbJiomXX1oZSBKYWhyaHVjaCBkZXIgZGV1dHNjaGVuIFNoYWtlc3BlYXJlIC1HZXNlbGxzY2hhZnQsIHZvbC4gaWkuLCBwcC4gOTAtOTUuIA0Ke1smKiZdfURyLiBMaW5kbmVyIGZhaWxzLCBob3dldmVyLCB0byBicmluZyBvdXQgdGhlIHJlbGF0aW9uIG9mIFNoYWtzcGVyZVwncyBjb25jZXAqe1smKiZdfSANCnRpb24gb2YgQ2Fzc2FyIGluIHRoaXMgcGxheSB0byB0aGUgY2hhcmFjdGVyIGFuZCBhY3Qgb2YgQnJ1dHVhLiANCg0KVGhlIFJ7WyYqJl19b21hbiBQbGF5cy4gMjU3IA0KDQpBbnRvbnkgaXMgYSBtYW4gb2YgZ2VuaXVzIHdpdGhvdXQgbW9yYWwgZmlicmUgOyBhIG5hdC0gDXtbJiomXX0KdXJlIG9mIGEgcmljaCwgc2Vuc2l0aXZlLCBwbGVhc3VyZS1sb3Zpbmcga2luZCA7IHRoZSBwcmV5IG9mIA0KZ29vZCBpbXB1bHNle1smKiZdfXMgYW5kIG9mIGJhZCA7IGxvb2tpbmcgb24gbGlmZSBhcyBhIGdhbWUsIGluIA0Kd2hpY2ggaGUgaGFzIGEgZGlzdGluZ3Vpc2hlZCB7WyYqJl19cGFydCB0byBwbGF5LCBhbmQgcGxheWluZyANCnRoYXQgcGFydCB3aXRoIG1hZ25pZmljZW50IGdyYWNlIGFuZCBza2lsbC4gSGUgaXtbJiomXX1zIGNhcGEtIA0KYmxlIG9mIHBlcnNvbmFsIGRldm90aW9uICh0aG91Z2ggbm90IG9mIGRldm90aW9uIHRvIGFuIA0KaWRlYSksIGFue1smKiZdfWQgaGFzLCBpbmRlZWQsIGEgZ2lmdCBmb3Igc3Vib3JkaW5hdGlvbiDigJQgc3Vib3JkaS0gDQpuYXRpb24gdG8gYSBKdWxpdXMgQ2F7WyYqJl19ZXNhciwgdG8gYSBDbGVvcGF0cmEuIEFuZCBhcyBoZSBoYXMgDQplbnRodXNpYXNtIGFib3V0IGdyZWF0IHBlcnNvbmFsaXRpZXMsIHtbJiomXX1zbyBoZSBoYXMgYSBjb24tIA0KdGVtcHQgZm9yIGluZWZsU2NpZW5jeSBhbmQgaW5lcHRpdHVkZS4gTGVwaWR1cyBpcyB0byBoaW0ge1smKiZdfQ0KXCIgYSBzbGlnaHQsIHVubWVyaXRhYmxlIG1hbiwgbWVldCB0byBiZSBzZW50IG9uIGVycmFuZHMsXCdcJyANCm9uZSB0aGF0IGlzIHR7WyYqJl19byBiZSB0YWxrZWQgb2Ygbm90IGFzIGEgcGVyc29uLCBidXQgYXMgYSBwcm9wLSANCmVydHkuIEFudG9ueSBwb3NzZXNzZXMgbm8gY3tbJiomXX1vbnN0YW5jeSBvZiBzZWxmLWVzdGVlbSA7IGhlIA0KY2FuIGRyb3AgcXVpY2tseSBvdXQgb2YgZmF2b3Igd2l0aCBoaW1zZWxmIDsge1smKiZdfWFuZCBiZWluZyANCndpdGhvdXQgcmV2ZXJlbmNlIGZvciBoaXMgb3duIHR5cGUgb2YgY2hhcmFjdGVyLCBhbmQgYmUtIA0KaW5nIGV7WyYqJl19bmRvd2VkIHdpdGggYSBmaW5lIHZlcnNhdGlsaXR5IG9mIHBlcmNlcHRpb24gYW5kIA0KZmVlbGluZywgaGUgY2FuIGFkbWlyZSBxdXtbJiomXX1hbGl0aWVzIHRoZSBtb3N0IHJlbW90ZSBmcm9tIA0KaGlzIG93bi4gSXQgaXMgQW50b255IHdobyB1dHRlcnMgdGhlIGlsb2dlIG92e1smKiZdfWVyIHRoZSANCmJvZHkgb2YgQnJ1dHVzIGF0IFBoaWxpcHBpLiBBbnRvbnkgaXMgbm90IHdpdGhvdXQgYW4gDQphZXN0aGV0aWMgc2V7WyYqJl19bnNlIGFuZCBpbWFnaW5hdGlvbiwgdGhvdWdoIG9mIGEgc29tZXdoYXQgDQpubnNwaXJpdHVhbCBraW5kOiBoZSBkb2VzIG5vdCBqdXtbJiomXX1kZ2UgbWVuIGJ5IGEgc2V2ZXJlIA0KbW9yYWwgY29kZSwgYnV0IGhlIGZlZWxzIGluIGFuIGFlc3RoZXRpYyB3YXkgdGhlIGdyYWNle1smKiZdfSwgDQp0aGUgc3BsZW5kb3IsIHRoZSBwaXRlb3VzIGludGVyZXN0IG9mIHRoZSBhY3RvcnMgaW4gdGhlIGV4LSANCmNpdGluZyBkcmF7WyYqJl19bWEgb2YgbGlmZSwgb3IgdGhlaXIgaW1wZXJ0aW5lbmNlLCBpbmVwdGl0dWRlLCBhbmQgDQpjb21pY2FsaXR5IDsgYW5kIGhlIGZlZXtbJiomXX1scyB0aGF0IHRoZSBwbGF5IGlzIHBvb3JlciBieSB0aGUgDQpsb3NzIG9mIHNvIG5vYmxlIGEgZmlndXJlIGFzIHRoYXQgb2YgYSBCe1smKiZdfXJ1dHVzLiBCdXQgQnJ1LSANCnR1cywgb3ZlciB3aG9tIGhpcyBpZGVhbHMgZG9taW5hdGUsIGFuZCB3aG8gaXMgYmxpbmQgdG8gDQp7WyYqJl19ZmFjdHMgd2hpY2ggYXJlIG5vdCBpbiBoYXJtb255IHdpdGggaGlzIHRoZW9yeSBvZiB0aGUgDQp1bml2ZXJzZSwgaXMgcXVpdGUgdXtbJiomXX1uYWJsZSB0byBwZXJjZWl2ZSB0aGUgcG93ZXIgZm9yIGdvb2QgDQpvciBmb3IgZXZpbCB0aGF0IGlzIGxvZGdlZCBpbiBBbnRvbnkse1smKiZdfSBhbmQgdGhlcmUgaXMgaW4gdGhlIA0KZ3JlYXQgZmlndXJlIG9mIEFudG9ueSBub3RoaW5nIHdoaWNoIGNhbiBlbmdhZ2Ugb3IgaW57WyYqJl19LSANCnRlcmVzdCBoaXMgaW1hZ2luYXRpb247IGZvciBCcnV0dXNcJ3MgdmlldyBvZiBsaWZlIGlzIG5vdCANCmltYWdpbmF0aXZlIG97WyYqJl19ciBwaWN0b3JpYWwgb3IgZHJhbWF0aWMsIGJ1dCB3aG9sbHkgZXRoaWNhbC4gDQpUaGUgZmFjdCB0aGF0IEFudG9ueSBhYmFuZG9uc3tbJiomXX0gaGltc2VsZiB0byBwbGVhc3VyZSwgaXMgDQrigKJeZ2FtZXNvbWUvXCcgcmVkdWNlcyBoaW0gaW4gdGhlIGV5ZXMgb2YgQnJ1dHVzIHtbJiomXX10byBhIHZlcnkgDQoxNyANCg0KMjU4IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEEgcnQuIA0KDQpvcmRpbmFyeSBwZXJzb24ge1smKiZdfeKAlCBvbmUgd2hvIGlzIHNpbGx5IG9yIHN0dXBpZCBlbm91Z2ggbm90IA0KdG8gcmVjb2duaXplIHRoZSBmaXJzdCBwcmluY2lwbGV7WyYqJl19IG9mIGh1bWFuIGNvbmR1Y3QsIHRoZSANCm5lZWQgb2Ygc2VsZi1tYXN0ZXJ5IDsgb25lIGFnYWluc3Qgd2hvbSB0aGUgbGF3cyBvZntbJiomXX0gdGhlIA0Kd29ybGQgbXVzdCBmaWdodCwgYW5kIHdobyBpcyB0aGVyZWZvcmUgb2Ygbm8gaW1wb3J0YW5jZS4gDQpBbmQgQnJ1dHVze1smKiZdfSB3YXMgcmlnaHQgd2l0aCByZXNwZWN0IHRvIHRoZSB1bHRpbWF0ZSBpc3N1ZXMgDQpmb3IgQW50b255LiBTb29uZXIgb3IgbGF0ZXJ7WyYqJl19IEFudG9ueSBtdXN0IGZhbGwgdG8gcnVpbi4gDQpCdXQgYmVmb3JlIHRoZSBtb3JhbCBkZWZlY3QgaW4gQW50b255XCdzIG5hdHVyZSB7WyYqJl19ZGVzdHJveWVkIA0KaGlzIGZvcnR1bmUsIG11Y2ggd2FzIHRvIGhhcHBlbi4gQmVmb3JlIEFjdGl1bSBtaWdodCANCmNvbWUgUGhpbHtbJiomXX1pcHBpLiANCg0KVGhlIHByb2Nlc3Npb24gcGFzc2VzIG9uIDsgQ2Flc2FyIGFuZCBBbnRvbnkgYXJlIG91dCANCm9mIHNpZ2h0OyBCe1smKiZdfXJ1dHVzIGFuZCBDYXNzaXVzIGFyZSBsZWZ0IGFsb25lLiBDYXNzaXVzIA0KY29tcGxhaW5zIG9mIHdhbnQgb2Ygd2FybXRoIGFuZCB7WyYqJl19Z2VudGxlbmVzcyBpbiB0aGUgYmVhci0gDQppbmcgb2YgQnJ1dHVzIHRvd2FyZHMgaGltIG9mIGxhdGUuIFRoZSBtYW5uZXIgb2Ygc3tbJiomXX1lbGYtIA0KcmVzdHJhaW50IGhhYml0dWFsIHRvIEJydXR1cyBpcyBub3RpY2VhYmxlLCBoaXMgZ3JhdmUgY291ci0gDQp0ZXN5IGFue1smKiZdfWQgZGVzaXJlIGZvciBhIHNpbmNlcmUgZXhwbGFuYXRpb24gYW5kIHZpbmRpY2F0aW9uIA0Kb2YgaGltc2VsZi4gQ2Fzc2l1cyBub3d7WyYqJl19IGVuZGVhdm9ycyB0byBnYWluIG92ZXIgQnJ1dHVzIA0KdG8gdGhlIGNvbnNwaXJhY3ksIGF2b2lkaW5nIGFueSBzdWdnZXN0aW9uIHtbJiomXX1vZiBhbiBpbnRlcmVzdC0gDQplZCBtb3RpdmUsIGJ1dCBob2xkaW5nIHVwLCBhcyBpdCB3ZXJlLCBhIG1pcnJvciBpbiB3aGljaCANe1smKiZdfQpCcnV0dXMgbWF5IHNlZSBoaW1zZWxmIHJlZmxlY3RlZCwgYW5kIHRoZW5jZSBpbmZlciB3aGF0IA0KbG9mdHkgYWNoaWV2ZW1lbnR7WyYqJl19IGlzIGV4cGVjdGVkIGJ5IFJvbWUgZnJvbSBvbmUgc28gbm8tIA0KYmxlLiBBcyBoaXMgb3duIGNyZWRlbnRpYWxzIENhc3NpdXMgcHtbJiomXX11dHMgZm9yd2FyZCBoaXMgDQpmcmVlZG9tIGZyb20gdGhvc2UgdmljZXMgd2hpY2ggQnJ1dHVzIG1vc3QgY29udGVtbnMsIA0KYXMge1smKiZdfWlmIHRoZXJlIHdlcmUgbm8gZGFuZ2VycyBmcm9tIHRoZSBtYW4gd2hvc2UgbGlmZSBpcyANCm5vdCBsYXgsIG9zdGVudGF0aW91cyx7WyYqJl19IGFuZCBzZWxmLWluZHVsZ2VudDogDQoNClwiIEFuZCBiZSBub3QgamVhbG91cyBvbiBtZSwgZ2VudGxlIEJydXR1cy4gDQpXZXJlIEl7WyYqJl19IGEgY29tbW9uIGxhdWdoZXIsIG9yIGRpZCB1c2UgDQpUbyBzdGFsZSB3aXRoIG9yZGluYXJ5IG9hdGhzIG15IGxvdmUgDQpUbyBldntbJiomXX1lcnkgbmV3IHByb3Rlc3RlciA7IGlmIHlvdSBrbm93IA0KVGhhdCBJIGRvIGZhd24gb24gbWVuIGFuZCBodWcgdGhlbSBoYXJkIA0Ke1smKiZdfUFuZCBhZnRlciBzY2FuZGFsIHRoZW0sIG9yIGlmIHlvdSBrbm93IA0KVGhhdCBJIHByb2Zlc3MgbXlzZWxmIGluIGJhbnF1ZXRpbmd7WyYqJl19IA0KVG8gYWxsIHRoZSByb3V0LCB0aGVuIGhvbGQgbWUgZGFuZ2Vyb3VzLlwiIA0KDQpJdCBpcyBub3Rld29ydGh5IHRoYXQgd2hpbGV7WyYqJl19IENhc3NpdXMgdGh1cyBwbGF5cyB3aXRoIA0KQnJ1dHVzIGFuZCBzZWN1cmVzIGhpbSwgYWxtb3N0IHVzaW5nIGhpbSBhcyBoaXMgdHtbJiomXX1vb2wsIGhlIA0KaXMgZnVsbHkgY29uc2Npb3VzIG9mIHRoZSBzdXBlcmlvcml0eSBvZiBCcnV0dXMuIFRoZSB2ZXJ5IA0Kd2Vha25le1smKiZdfXNzZXMgb2YgQnJ1dHVzIGNvbWVcJyBmcm9tIHRoZSBub2JpbGl0eSBvZiBoaXMgbmF0LSANCg0KVGhlIFJvbWFuIFBsYXlzLiAyNTkge1smKiZdfQ0KDQpucmUuIEhlIGNhbm5vdCBjcmVkaXQgb3IgY29uY2VpdmUgdGhlIGJhc2UgZmFjdHMgb2YgbGlmZS4gDQpIZSBoYXMgbm8gaW57WyYqJl19c3RydW1lbnQgYnkgd2hpY2ggdG8gZ2F1Z2UgdGhlIGxpdHRsZW5lc3MgDQpvZiBsaXR0bGUgc291bHMuIA0KDQpUaGUgbGFzdCBzY3tbJiomXX1lbmUgb2YgdGhlIGZpcnN0IGFjdCBicmluZ3MgdXMgdG8gdGhlIHRlbS0gDQpwZXN0dW91cyBuaWdodCBvZiBwcm9kaWdpZXMgd2hpe1smKiZdfWNoIHByZWNlZGVkIHRoZSBkZWF0aCBvZiANCkp1bGl1cyBDYWVzYXIuIENhc2NhIGFwcGVhcnMgd2l0aCB0aGUgc3VwZXJmaWNpYWx7WyYqJl19IGdhcmIgDQpvZiBjeW5pY2lzbSBkcm9wcGVkLiBEb2VzIFNoYWtzcGVyZSBpbiB0aGlzIHBsYXkgbWVhbiANCnRvIHNpZ25pZnkgdHtbJiomXX1vIHVzIHVub2J0cnVzaXZlbHkgdGhhdCB0aGUgcGhpbG9zb3BoaWNhbCBjcmVlZCANCndoaWNoIGEgbWFuIHByb2Zlc3NlcyBncm93e1smKiZdfXMgb3V0IG9mIGhpcyBjaGFyYWN0ZXIgYW5kIA0KY2lyY3Vtc3RhbmNlcyBhcyBmYXIgYXMgaXQgaXMgcmVhbGx5IGEgcG9ydGlvbiB7WyYqJl19b2YgaGlzIG93biANCmJlaW5nIDsgYW5kIHRoYXQgYXMgZmFyIGFzIGl0IGlzIHJlY2VpdmVkIGJ5IHRoZSBpbnRlbGxlY3QgaW4gDXtbJiomXX0KdGhlIGNhbG0gb2YgbGlmZSBmcm9tIHRlYWNoZXJzIGFuZCBzY2hvb2xzLCBzdWNoIGEgcGhpbG8tIA0Kc29waGljYWwgY3JlZWQge1smKiZdfWRvZXMgbm90IGFkaGVyZSB2ZXJ5IGNsb3NlbHkgdG8gdGhlIHNvdWwgb2YgDQphIG1hbiwgYW5kIG1heSwgdXBvbiB0aGUgcHJlc3N7WyYqJl19dXJlIG9mIGV2ZW50cyBvciBvZiBwYXMtIA0Kc2lvbnMsIGJlIGNhc3QgYXNpZGUgJSBUaGUgRXBpY3VyZWFuIENhc3NpdXMgaXMgc3tbJiomXX1oYWtlbiANCm91dCBvZiBoaXMgcGhpbG9zb3BoaWNhbCBzY2VwdGljaXNtIGJ5IHRoZSBwb3J0ZW50cyB3aGljaCANCmFwcGVhcmVke1smKiZdfSB1cG9uIHRoZSBtYXJjaCB0byBQaGlsaXBwaSA6IA0KDQpcIiBZb3Uga25vdyB0aGF0IEkgaGVsZCBFcGljdXJ1cyBzdHJvbmcsIA0Ke1smKiZdfUFuZCBoaXMgb3BpbmlvbiA7IG5vdyBJIGNoYW5nZSBteSBtaW5kLCANCkFuZCBwYXJ0bHkgY3JlZGl0IHRoaW5ncyB0aGF0IGRvIHB7WyYqJl19cmVzYWdlLlwiIA0KDQpUaGUgU3RvaWMgQnJ1dHVzLCB3aG8sIGJ5IHRoZSBydWxlcyBvZiBoaXMgcGhpbG9zb3BoeSwgDQpibGFtZWR7WyYqJl19IENhdG8gZm9yIGEgc2VsZi1pbmZsaWN0ZWQgZGVhdGgsIHJ1bnMgdXBvbiBoaXMgb3duIA0Kc3dvcmQgYW5kIGRpZXMuIFRoZSBkcntbJiomXX1hbWF0aWMgc2VsZi1jb25zaXN0ZW5jeSBvZiB0aGUgDQpjaGFyYWN0ZXJzIGNyZWF0ZWQgYnkgY2VydGFpbiB3cml0ZXJzIGlzIHRve1smKiZdfSBiZSBub3RpY2VkLiBXZSANCm11c3Qgbm90aWNlIGluIHRoZSBjYXNlIG9mIFNoYWtzcGVyZSwgYXMgYSBwaWVjZSBvZiBoaWdoZXJ7WyYqJl19IA0KYXJ0LCB0aGUgZHJhbWF0aWMgaW5jb25zaXN0ZW5jeSBvZiBoaXMgY2hhcmFjdGVycy4gSW4gDQp0aGUgcHJlY2VkaW5nIHNjZXtbJiomXX1uZSwgZGVzY3JpYmluZyBpbiBoaXMgY3luaWNhbCBtb29kIHRoZSANCmNlcmVtb255IGF0IHdoaWNoIGFuIG9mZmVyIG9mIHRoZSBje1smKiZdfXJvd24gd2FzIG1hZGUgdG8gDQpDYWVzYXIsIENhc2NhIHV0dGVycyBoaW1zZWxmIGluIHByb3NlOyBoZXJlIFNoYWtzcGVyZSANCnB7WyYqJl19dXRzIHZlcnNlIGludG8gaGlzIG1vdXRoLiBcIiBEaWQgQ2ljZXJvIHNheSBhbnl0aGluZz9cIiANCkNhc3NpdXMgaW5xdWlyZWQgaW4ge1smKiZdfXRoZSBwcmVjZWRpbmcgY29udmVyc2F0aW9uLCBhbmQgQ2FzY2EgDQphbnN3ZXJlZCwgd2l0aCBjdXJ0IHNjb3JuLCBcIiBBeSwgaGUge1smKiZdfXNwb2tlIEdyZWVrLlwiIEJ1dCANCm5vdywgc28gbW92ZWQgb3V0IG9mIGhpbXNlbGYgaXMgQ2FzY2EgYnkgdGhlIHBvcnRlbnRzIG9me1smKiZdfSANCnRoZSBuaWdodCB0aGF0IGhlIGVubGFyZ2VzIGhpbXNlbGYgYW5kIGdyb3dzIGVmZnVzaXZlIHRvIA0KDQoyNm8gU2hha3NwZXJ7WyYqJl19ZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCnRoaXMgdmVyeSBDaWNlcm8sIHRoZSByZWNvbGxlY3Rpb24gb2Ygd2hvbSBoZSBoYXtbJiomXX1kIGRpcy0gDQptaXNzZWQgd2l0aCBzdWNoIGltcGF0aWVudCBjb250ZW1wdC4gDQoNCkNpY2VybyBwYXNzZXMgYWxvbmcgdGhlIHN0e1smKiZdfXJlZXRzIHBlcmNlaXZpbmcgbm8gbW9yZSANCnRoYW4gYSBzdG9ybSBmcm9tIHdoaWNoIGl0IGlzIHBydWRlbnQgdGhhdCBhbiBvbGR7WyYqJl19IG1hbiANCnNob3VsZCBiZSBob3VzZWQuIEhpcyBzcGlyaXQgaXMgaW5zdWxhdGVkIGJ5IGEgdGhpbiwgbm9uLSANCmNvbmR1Y3RpbntbJiomXX1nIHdlYiBvZiBzY2VwdGljaXNtIGFuZCBpbnRlbGxlY3R1YWxpdHkgZnJvbSANCnRoZSBlbGVjdHJpYyBhdG1vc3BoZXJlIG9mIHRoe1smKiZdfWUgdGltZS4gVGhpcyBlbGVjdHJpYyBhdG1vLSANCnNwaGVyZSBwbGF5cyB0aHJvdWdoIGV2ZXJ5IG5lcnZlIG9mIENhc3NpdXMuIEh7WyYqJl19aXMgZW5lcmd5IA0Kb2YgYnJhaW4gYW5kIGxpbWIgaXMgc3RpbXVsYXRlZCBhbmQgaW50ZW5zaWZpZWQgdW50aWwgaXQgDQpuZWVkc3tbJiomXX0gdG8gcmVsaWV2ZSBpdHNlbGYgaW4gbW92ZW1lbnQuIEl0IGlzIHRvIGhpbSBhIG5pZ2h0IA0Kb2YgaGlnaC1zdHJ1bmcgZGVsaWdoe1smKiZdfXQuIEJlc2lkZXMsIENhc3NpdXMgaGFzIG11Y2ggd29yayANCnRvIGRvLCBhbmQgdGhlIHRlbXBlc3Qgc3VpdHMgaGlzIHB1cnBvc2V7WyYqJl19cyA6IA0KDQpcIiBGb3IgbXkgcGFydCwgSSBoYXZlIHdhbGtlZCBhYm91dCB0aGUgc3RyZWV0cywgDQpTdWJtaXR0aW5nIG1lIHVudG97WyYqJl19IHRoZSBwZXJpbG91cyBuaWdodCA7IA0KQW5kIHRodXMsIHVuYnJhY2VkLCBDYXNjYSwgYXMgeW91IHNlZSwgDQpIYXZlIGJhcmVkIHtbJiomXX1teSBib3NvbSB0byB0aGUgdGh1bmRlci1zdG9uZSA6IA0KQW5kIHdoZW4gdGhlIGNyb3NzIGJsdWUgbGlnaHRuaW5nIHNlZW1cJ2QgdHtbJiomXX1vIG9wZW4gDQpUaGUgYnJlYXN0IG9mIGhlYXZlbiwgSSBkaWQgcHJlc2VudCBteXNlbGYgDQpFdmVuIGluIHRoZSBhaW0gYW5kIHZle1smKiZdfXJ5IGZsYXNoIG9mIGl0LlwiIA0KDQpCcnV0dXMgaXMgaW4gaGlzIG9yY2hhcmQgYWxvbmUuIEhlIGhhcyBzdG9sZW4gYXdheSBmcm9te1smKiZdfSANClBvcnRpYS4gSGUgaXMgc2Vla2luZyB0byBtYXN0ZXIgaGltc2VsZiBpbiBzb2xpdHVkZSwgYW5kIA0KYnJpbmcgdW5kZXIgdGh7WyYqJl19ZSBzdWJqZWN0aW9uIG9mIGEgY2xlYXIgaWRlYSBhbmQgYSBkZWZpbml0ZSANCuKAonJlc29sdmUgdGhlIHR1bXVsdHVhcnkgcG93ZXtbJiomXX1ycyBvZiBoaXMgbmF0dXJlLCB3aGljaCBoYXZlIA0KYmVlbiByb3VzZWQgYW5kIHRocm93biBpbnRvIGRpc29yZGVyIGJ5IHRoZSBze1smKiZdfXVnZ2VzdGlvbnMgDQpvZiBDYXNzaXVzLiBJbiB0aGUgc29saWxvcXV5IG9mIEJydXR1cywgYWZ0ZXIgaGUgaGFzIGJlZW4gDQpsZWZ7WyYqJl19dCBhbG9uZSwgd2lsbCBiZSBmb3VuZCBhbiBleGNlbGxlbnQgZXhhbXBsZSBvZiB0aGUgcGUtIA0KY3VsaWFyIGJyb29kaW5nIG9yIHtbJiomXX1kd2VsbGluZyBzdHlsZSB3aGljaCBTaGFrc3BlcmUgYXAtIA0KcHJvcHJpYXRlZCBhdCB0aGlzIHBlcmlvZCB0byB0aGUgc29saWxve1smKiZdfXF1aWVzIG9mIG1lbi4gVGhlIA0Kc29saWxvcXVpZXMgb2YgaGlzIHdvbWVuIGFyZSBjb25jZWl2ZWQgaW4gYSBkaWZmZXJlbnQgDQp7WyYqJl19bWFubmVyLiBPZiB0aGlzIHNwZWVjaCBDb2xlcmlkZ2UgaGFzIHNhaWQsIFwiIEkgZG8gbm90IGF0IA0KcHJlc2VudCBzZWUgaW50byB7WyYqJl19U2hha3NwZXJlXCdzIG1vdGl2ZSwgaGlzIHJhdGlvbmFsZV4gb3IgaW4gDQp3aGF0IHBvaW50IG9mIHZpZXcgaGUgbWVhbnQgQnJ1dHV7WyYqJl19c1wncyBjaGFyYWN0ZXIgdG8gYXAtIA0KcGVhci5cIiBTaGFrc3BlcmVcJ3MgbW90aXZlIGlzIG5vdCBmYXIgdG8gc2Vlay4gSGUgd2lzaHtbJiomXX1lcyANCnRvIHNob3cgdXBvbiB3aGF0IGdyb3VuZHMgdGhlIHBvbGl0aWNhbCBpZGVhbGlzdCBhY3RzLiANCkJydXR1cyByZXNvbHZle1smKiZdfXMgdGhhdCBDc2VzYXIgc2hhbGwgZGllIGJ5IGhpcyBoYW5kIGFzIHRoZSANCg0KVGhlIFJvbWFuIFBsYXlzLiAyNjEgDQoNCmNvbmN7WyYqJl19bHVzaW9uIG9mIGEgc2VyaWVzIG9mIGh5cG90aGVzZXMuIFRoZXJlIGlzLCBhcyBpdCB3ZXJlLCANCmEgc29yaXRlcyBvZiBhYnN0cntbJiomXX1hY3QgcHJpbmNpcGxlcyBhYm91dCBhbWJpdGlvbiBhbmQgcG93ZXIsIA0KYW5kIHJlYXNvbiBhbmQgYWZmZWN0aW9uIDsgZmluYWxse1smKiZdfXksIGEgcHJvZm91bmQgc3VzcGljaW9uIG9mIA0KQ2Flc2FyIGlzIGVuZ2VuZGVyZWQsIGFuZCBoaXMgZGVhdGggaXMgZGVjcmVlZC57WyYqJl19IEl0IGlzIA0KaWRlYWxpc3RzIHdobyBjcmVhdGUgYSBwb2xpdGljYWwgdGVycm9yIDsgdGhleSBhcmUgZnJlZSBmcm9tIA0KYWxsIHtbJiomXX1kZXNpcmUgZm9yIGJsb29kLXNoZWRkaW5nOyBidXQgdG8gdGhlbSB0aGUgbGl2ZXMgb2YgDQptZW4gYW5kIHdvbWVuIGFyZSBhY2Npe1smKiZdfWRlbnRzOyB0aGUgbGl2ZXMgb2YgaWRlYXMgYXJlIA0KdGhlIHRydWUgcmVhbGl0aWVzIDsgYW5kLCBhcm1lZCB3aXRoIGFuIGFic3R7WyYqJl19cmFjdCBwcmluY2lwbGUgDQphbmQgYSBzdXNwaWNpb24sIHRoZXkgcGVyZm9ybSBkZWVkcyB3aGljaCBhcmUgYXQgb25jZSANCmJlYXtbJiomXX11dGlmdWwgYW5kIGhpZGVvdXMgOiANCg0KXCIgXCdUaXMgYSBjb21tb24gcHJvb2YgDQpUaGF0IGxvd2xpbmVzcyBpcyB5b3VuZyBBbWJ7WyYqJl19aXRpb25cJ3MgbGFkZGVyLCANCldoZXJldG8gdGhlIGNsaW1iZXItdXB3YXJkIHR1cm5zIGhpcyBmYWNlIDsgDQpCdXQgd2hlbiBoZSB7WyYqJl19b25jZSBhdHRhaW5zIHRoZSB1dG1vc3Qgcm91bmQsIA0KSGUgdGhlbiB1bnRvIHRoZSBsYWRkZXIgdHVybnMgaGlzIGJhY2ssIA0KTHtbJiomXX1vb2tzIGluIHRoZSBjbG91ZHMsIHNjb3JuaW5nIHRoZSBiYXNlIGRlZ3JlZXMgDQpCeSB3aGljaCBoZSBkaWQgYXNjZW5kIDogc28ge1smKiZdfUNhZXNhciBtYXkgOyANClRoZW4sIGxlc3QgaGUgbWF5LF4gcHJldmVudCAxXCIgDQoNClRoZSB3cml0dGVuIGluc3RpZ2F0aW9ucyB3e1smKiZdfWhpY2ggQ2Fzc2l1cyBoYXMgY2F1c2VkIHRvIA0KYmUgdGhyb3duIGluIGF0IEJydXR1c1wncyB3aW5kb3cgYWRkIHRoZSBmaW5hbCBje1smKiZdfW9uZmlybWEtIA0KdGlvbiB0byBoaXMgcmVzb2x2ZSA7IGFuZCBhdCB0aGlzIG1vbWVudCB0aGUgY29uc3BpcmF0b3JzIA0KZW50ZXJ7WyYqJl19LiBXaGlsZSBCcnV0dXMgYW5kIENhc3NpdXMgY29udmVyc2UgYXBhcnQsIGFuZCANCnRoZSBvdGhlcnMgYXJlIHR1cm5lZCBpbiB0aHtbJiomXX1lIGRpcmVjdGlvbiBvZiB0aGUgZWFzdCwgdGhlIGZpcnN0IA0KZ3JheSBsaW5lcyBvZiBtb3JuaW5nIGJlZ2luIGRvdWJ0ZnVsbHkge1smKiZdfXRvIGZyZXQgdGhlIGNsb3Vkcy4gDQpsIV5cImF0dXJlLCB3aXRoIGhlciBtaW5pc3RyaWVzIG9mIHR3aWxpZ2h0IGFuZCBkYXktZGF3e1smKiZdfW4sIA0Kc3VmZmVycyBubyBpbnRlcnJ1cHRpb24gb2YgaGVyIGNhbG0sIGJlbmVmaWNlbnQgb3BlcmFuY3ksIA0KYW5kLCBhZnRlciB7WyYqJl19dGVtcGVzdCwgYW5vdGhlciBtb3JuaW5nIGlzIGJyb2FkZW5pbmcgZm9yIA0KYWxsIEVvbWUuIENhc2NhIHBvaW50cyBoaXMgc3dvcntbJiomXX1kIHRvd2FyZHMgdGhlIENhcGl0b2wsIA0KYW5kIGF0IHRoZSBzYW1lIG1vbWVudCB0aGUgc25uIGFyaXNlcy4gXCIgSXMgdGhlcmUgbntbJiomXX1vdCxcIiANCmFza3MgTXIuIENyYWlrLCBcIiBzb21lIGFsbHVzaW9uLCB3aGljaCB0aGUgbG9vayBhbmQgdG9uZSANCm9mIHRoZSBzcGV7WyYqJl19YWtlciBtaWdodCBleHByZXNzIG1vcmUgY2xlYXJseSB0aGFuIGhpcyB3b3JkcywgDQp0byB0aGUgZ3JlYXQgYWN0IGFib3V0IHRvIHtbJiomXX1iZSBwZXJmb3JtZWQgaW4gdGhlIENhcGl0b2wsIA0KYW5kIHRoZSBjaGFuZ2UsIGFzIG9mIGEgbmV3IGRheSwgdGhhdCB3YXMgZXhwe1smKiZdfWVjdGVkIHRvIA0KZm9sbG93IGl0P1wiIE9ic2VydmUgaG93IHN0cm9uZ2x5IFNoYWtzcGVyZSBtYXJrcyANCnRoZSBwYXNzYWdlIG9me1smKiZdfSB0aW1lIHVwIHRvIHRoZSBtb21lbnQgb2YgQ2Flc2FyXCdzIGRlYXRoIDsgDQoNCjI2MiBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFue1smKiZdfWQgQXJ0LiANCg0KbmlnaHQsIGRhd24sIGVpZ2h0IG9cJ2Nsb2NrLCBuaW5lIG9cJ2Nsb2NrLCB0aGF0IG91ciBzdXMtIA0KcGVuc2UgbXtbJiomXX1heSBiZSBoZWlnaHRlbmVkLCBhbmQgb3VyIGludGVyZXN0IGtlcHQgdXBvbiB0aGUgDQpzdHJhaW4uIA0KDQpJdCBpcyBjaGFyYWN0e1smKiZdfWVyaXN0aWMgb2YgQnJ1dHVzIHRoYXQgaGUgd2lsbCBhbGxvdyBubyBvYXRoIA0KdG8gYmUgdGFrZW4gYnkgdGhlIGNvbnNwaXJhdG97WyYqJl19cnMuIEhlIHdobyBoYXMgYmVlbiBhbGwgDQpoaXMgbGlmZSBjdWx0aXZhdGluZyByZWxpYW5jZSBvbiB0aGUgd2lsbCwgYXBhcnQgZntbJiomXX1yb20gZXh0ZXItIA0KbmFsIHByb3BzLCBjYW5ub3Qgbm93IGZhbGwgYmFjayBmb3Igc3VwcG9ydCB1cG9uIHRoZSANCm9iamVjdGl2e1smKiZdfWUgYm9uZCBvZiBhIHZvdyBvciBwbGVkZ2UuIFRoZWlyIGVudGVycHJpc2UgDQpsb29rcyBtb3JlIGNsZWFyIGFuZCBiZWF1dGlmdWx7WyYqJl19IGluIHRoZSBsaWdodCBvZiBpdHMgb3duIA0KY291cmFnZSBhbmQganVzdGljZSB0aGFuIHdoZW4gYXNzb2NpYXRlZCB3aXRoIGEgdntbJiomXX11bGdhciANCmZvcm11bGEgb2Ygd29yZHMgOiANCg0KXCIgRG8gbm90IHN0YWluIA0KVGhlIGV2ZW4gdmlydHVlIG9mIG91ciBlbnRlcntbJiomXX1wcmlzZSwgDQpOb3IgdGhlIGluc3VwcHJlc3NpdmUgbWV0dGxlIG9mIG91ciBzcGlyaXRzLCANClRvIHRoaW5rIHRoYXQgb3Igb3Vye1smKiZdfSBjYXVzZSBvciBvdXIgcGVyZm9ybWFuY2UgDQpEaWQgbmVlZCBhbiBvYXRoLlwiIA0KDQpDYXNzaXVzIG5vdyBwcm9wb3NlcyB0byBie1smKiZdfXJpbmcgQ2ljZXJvIGludG8gdGhlIHBsb3Q7IA0KQ2FzY2EsIENpbm5hLCBhbmQgTWV0ZWxsdXMgQ2ltYmVyIHdhcm1seSBjb25jdXJ7WyYqJl19LiANCkJydXR1cyBvYmplY3RzIChhbmQgaXQgaXMgdG8gYmUgbm90aWNlZCB0aGF0IFNoYWtzcGVyZSANCmRpZCBub3Qgb2J0YWluIHtbJiomXX1mcm9tIFBsdXRhcmNoIHRoaXMgZmluZSB0cmFpdCkgOiANCg0KXCIgMCwgbmFtZSBoaW0gbm90IDsgbGV0IHVzIG5vdCBicmVhayB3aXtbJiomXX10aCBoaW0gOyANCkZvciBoZSB3aWxsIG5ldmVyIGZvbGxvdyBhbnl0aGluZyANClRoYXQgb3RoZXIgbWVuIGJlZ2lyQ14gDQoNCkFue1smKiZdfWQsIGJ5IG1lcmUgZm9yY2Ugb2YgaGlzIG1vcmFsIGF1dGhvcml0eSwgQnJ1dHVzIGNhcnJpZXMgDQpoaXMgcG9pbnQuIFNvLCBhZ2F7WyYqJl19aW4sIHdpdGggdGhlIG5leHQgbWF0dGVyIHVuZGVyIGRpc2N1cy0gDQpzaW9uLiBDYXNzaXVzLCBlc3RpbWF0aW5nIHRoZSBpbXBvcntbJiomXX10YW5jZSBvZiBBbnRvbnksIGp1c3QtIA0KbHkgdXJnZXMgdGhhdCBBbnRvbnkgc2hvdWxkIHBlcmlzaCB3aXRoIENhZXNhci4gQnV0e1smKiZdfSANCkJydXR1cyBhZ2FpbiBvYmplY3RzLiBUaGUgcG9saXRpY2FsIEdpcm9uZGluIGlzIG5vdCB3YXItIA0KcmluZyBhZ2FpbnN0IG17WyYqJl19ZW4sIGJ1dCBhZ2FpbnN0IGlkZWFzIDogDQoNClwiIExldCB1cyBiZSBzYWNyaWZpY2VycywgYnV0IG5vdCBidXRjaGVycywgQ2FpdXN7WyYqJl19LiANCldlIGFsbCBzdGFuZCB1cCBhZ2FpbnN0IHRoZSBzcGlyaXQgb2YgQ2Flc2FyIDsgDQpBbmQgaW4gdGhlIHNwaXJpdCBvZiBtZXtbJiomXX1uIHRoZXJlIGlzIG5vIGJsb29kLlwiIA0KDQpCZXNpZGVzLCBhcGFydCBmcm9tIENhZXNhciwgQW50b255IGNhbiBkbyBub3RoaW5nLntbJiomXX0gSXMgDQpoZSBub3QgZ2l2ZW4gXCJ0byBzcG9ydHMsIHRvIHdpbGRuZXNzLCBhbmQgbXVjaCBjb20tIA0KcGFueSxcIiBhbmQsIHRoZXJ7WyYqJl19ZWZvcmUsIGFuIGluc2lnbmlmaWNhbnQgcGVyc29uID8gQSBzaG9ydC0gDQoNClRoZSBSb21hbiBQbGF5cy4gMjYzIA0KDQpzaWdodHtbJiomXX1lZCBpZGVhbGlzbSAhIFlldCBpdCB3YXMgYmV0dGVyIHRoYXQgQnJ1dHVzIHNob3VsZCANCmRpZSB3aXRoIGZvaWxlZCBwdXJwb3Nle1smKiZdfSBhdCBQaGlsaXBwaSB0aGFuIHRoYXQgaGUgc2hvdWxkIA0Kc3VsbHkgdGhlIGJyaWdodG5lc3Mgb2YgaGlzIHZpcnR1ZSBieSB0aGV7WyYqJl19IHN0YWluIG9mIHdoYXQgDQpzZWVtZWQgdG8gaGltIG5lZWRsZXNzIGJsb29kLXNoZWRkaW5nLiBMaWtlIHRoZSBHaS0gDQpyb25kaXtbJiomXX1uIHRoYXQgaGUgaXMsIEJydXR1cyB0cnVzdHMgdG8gbW9yYWwgZm9yY2VzIGFuZCBpZGVhcywgDQp3aGljaCBvcGVyYXRlIGluIHRoe1smKiZdfWUgcmVhbCB3b3JsZCBpbiBhIGxhcmdlIGluY2FsY3VsYWJsZSANCndheSwgdW5saWtlIHRoYXQgYWxsb3dlZCBmb3IgaW4gYW55IG97WyYqJl19ZiBvdXIgaWRlYWxpc3RpYyANCnNjaGVtZXMgb2YgdGhlIHdvcmxkLiBXaGlsZSBjb21taXR0aW5nIGFuIGFjdCBvZiB2aW8tIA0KbHtbJiomXX1lbmNlIGFnYWluc3QgY29uc3RpdHV0ZWQgYXV0aG9yaXR5LCBCcnV0dXMgZmFpbHMgdG8gcGVyLSANCmNlaXZlIHRoZSBuZWNlc3Nhe1smKiZdfXJ5IGNvbnNlcXVlbmNlcyBvZiB0aGF0IGFjdC4gQ2Fzc2l1cywgDQp3aG8gd2l0aCBDYWVzYXIgd291bGQgaGF2ZSBzdGFiYmVkIEF7WyYqJl19bnRvbnksIG1pZ2h0IGhhdmUgDQpzZXJ2ZWQgaGlzIGNhdXNlIGJldHRlciB0aGFuIGRpZCBCcnV0dXMuIFRoZSBnaWZ0IHdpdGggDXtbJiomXX0Kd2hpY2ggQnJ1dHVzIGVucmljaGVkIHRoZSB3b3JsZCB3YXMgdGhlIGdpZnQgb2YgaGltc2VsZiwgDQphIHNvdWwgb2YgaW5jb3Jye1smKiZdfXVwdGlibGUgdmlydHVlLiANCg0KQXMgdGhlIGNvbnNwaXJhdG9ycyBkZXBhcnQsIEJydXR1cywgd2hvIGlzIG5vdCBmYXNoaW9uLSB7WyYqJl19DQplZCBmb3IgY29uc3BpcmFjeSwgYmlkcyB0aGVtIGxvb2sgZnJlc2ggYW5kIG1lcnJpbHksIA0KDQpcIiBBbmQgYmVhciBpdCBhcyB7WyYqJl19b3VyIFJvbWFuIGFjdG9ycyBkbywgDQpXaXRoIHVudGlyZWQgc3Bpcml0cyBhbmQgZm9ybWFsIGNvbnN0YW5jeS5cIiANCg0KSG93IGl7WyYqJl19bGwgQnJ1dHVzIGNhbiBjb25jZWFsIGhpcyBpbndhcmQgdHJvdWJsZSBhcHBlYXJzIA0KZnJvbSB3aGF0IGltbWVkaWF0ZWx5IGZvbHtbJiomXX1sb3dzLiBQb3J0aWEgZW50ZXJzLiBUaGUgDQpzdHJhbmdlIGJlaGF2aW9yIGFuZCBkaXN0cmF1Z2h0IGFzcGVjdCBvZiBCcnV0dXMge1smKiZdfWhhdmUgDQpyb3VzZWQgaGVyIHRlbmRlcmVzdCB3aWZlbHkgYW54aWV0aWVzLiBObyByZWxhdGlvbiBvZiANCm1hbiBhbmQgd29tYW57WyYqJl19IGluIHRoZSBwbGF5cyBvZiBTaGFrc3BlcmUgaXMgYWx0b2dldGgtIA0KZXIgc28gbm9ibGUgYXMgdGhhdCBvZiBQb3J0aWEgYW5kIHtbJiomXX1CcnV0dXMuIFRoZSBsb3ZlIG9mIA0KQnJ1dHVzIGNvdWxkIG5vdCBiZSBnaXZlbiBleGNlcHQgd2l0aCBhZG1pcmF0aW9uIGVxdWFse1smKiZdfSANCnRvIGhpcyBsb3ZlLiBIZSBjb3VsZCBub3Qgc2VwYXJhdGUgYSBwdWJsaWMgbGlmZSBvZiBhYy0gDQp0aW9uIGZyb20gaGlzIGx7WyYqJl19aWZlIG9mIHRoZSBob21lLCBvciBzaW5rIGRvd24gdXBvbiBtaWxkIA0KZG9tZXN0aWMgY29tZm9ydCwgc29tZSBcIiBncmFjaW91cyB7WyYqJl19c2lsZW5jZVwiIGxpa2UgdGhlVmlyLSANCmdpbGlhIG9mIENvcmlvbGFudXMuIEhpcyBsb3ZlIG11c3QgYmUgc3RyZW51b3VzLCBsaWt7WyYqJl19ZSANCmV2ZXJ5IG90aGVyIHBhcnQgb2YgaGlzIGNoYXJhY3RlciwgYW5kIG11c3QgY29uc3RhbnRseSANCmluZnVzZSB2aWdvciBhbntbJiomXX1kIGFyZG9yIGludG8gaGlzIGxpZmUuIFBvcnRpYSwgd2hpbGUgcGVyLSANCmZlY3RseSBhIHdvbWFuLCBtdXN0IGJlIHRvIGhpbSBte1smKiZdfW9yZSB0aGFuIGEgd29tYW47IA0Kc2hlIG11c3QgYmUgYW4gaWRlYWwgb2YgYXVndXN0IGFuZCBhZG9yYWJsZSBoZXJvaXNtLiANClB7WyYqJl19b3J0aWEsIENhdG9cJ3MgZGF1Z2h0ZXIsIEJydXR1c1wncyB3aWZlLCBpcyBhIFN0b2ljLCBsaWtlIGhlciANCg0KMjY0IFNoYWtzcGVye1smKiZdfWUg4oCUIEhpcyBNaW5kIGFuZCBBcnQgDQoNCmh1c2JhbmQuIFRvIHRlc3QgaGVyIGNvbnN0YW5jeSwgc2hlIGhhZCBpbmZsaWN0ZWR7WyYqJl19IHVwb24gDQpoZXJzZWxmIGEgd291bmQgaW4gdGhlIHRoaWdoIOKAlCB0aGUgd2lsbCBkZWFsaW5nIGhhcmRseSANCndpdGggdGhlIHtbJiomXX1ib2R5LCB0aGUgaWRlYSBkYXJpbmcgdG8gdHJhbnNmb3JtIGl0c2VsZiB3aXRoIA0KZWFnZXJuZXNzIGFuZCBrZWVuIGNvbnZpY3Rpe1smKiZdfW9uIGludG8gdGhlIGFjdC4gV2UgcmVhZCBvZiANCm5vIGVtYnJhY2UsIG5vIHRvdWNoIG9mIGhhbmRzIG9yIGxpcHMsIGJldHdlZW57WyYqJl19IEJydXR1cyANCmFuZCBQb3J0aWEgOyBidXQgd2Uga25vdyB0aGF0IHRoZWlyIHNvdWxzIGhhdmUgbWV0LCB0aGF0IA0KdGhleSBhcntbJiomXX1lIGluc2VwYXJhYmx5IG9uZSwgYW5kIGFic29sdXRlbHkgZXF1YWwuIEp1bGlldCwgDQpoZXJvaWMgbmF0dXJlIHRob3VnaCBoZXJze1smKiZdfSBiZSwgaXMgYnV0IGEgcGFzc2lvbmF0ZSBnaXJsIGJ5IA0KdGhlIHNpZGUgb2YgdGhpcyBwZXJmZWN0IHdvbWFuLiBBbmQgdGhlIG57WyYqJl19b2JpbGl0eSBvZiANClBvcnRpYSBtYWtlcyB0aGUgbG92ZSBvZiBCcnV0dXMgZm9yIGhlciBhbG1vc3QgYSByZS0gDQpsaWZpcmlvbntbJiomXX0gOiANCg0KwrAgXCIgeWUgZ29kcywgDQoNClJlbmRlciBtZSB3b3J0aHkgb2YgdGhpcyBub2JsZSB3aWZlICFcJ1wnIA0KDQpIZSBoYWQge1smKiZdfXRob3VnaHQgbm90IHRvIGJ1cmRlbiBoZXIgd2l0aCB0aGUgc2VjcmV0IG9mIHRoZSANCmNvbnNwaXJhY3k7IHRoZSBzZW5zZSBvZiB7WyYqJl19c29tZXRoaW5nIGNvbmNlYWxlZCBoYXMgbWFkZSANCmhpcyBtYW5uZXIgdG93YXJkcyBoZXIgY29uc3RyYWluZWQuIE5vdywgYXMgYXtbJiomXX1uIGVxdWFsLCANCnNoZSBkZW1hbmRzIGhlciByaWdodCwgc2hlIHBsZWFkcyBmb3IgaGVyIGhhcHBpbmVzcyBvZiANCnNoYXJpbmcge1smKiZdfWFsbCB0aGF0IGNvbmNlcm5zIGhlciBodXNiYW5kLiBTaGUgd2lsbCBub3QgYmUgDQpwdXQgb2ZmIHdpdGgga2luZCBldmFzaW9ucyB7WyYqJl19OyBzaGUgcHJlc3NlcyBmb3J3YXJkIHRvIGtub3cgDQp0aGUgZm9ybWlkYWJsZSB0cnV0aCA7IGFuZCBwbGVhZHMgdXBvbiBoZXIga3tbJiomXX1uZWVzIGJlZm9yZSANCnRoZSBodXNiYW5kIHdob20gc2hlIHZlbmVyYXRlcyBldmVuIGFzIGhlIHZlbmVyYXRlcyANCmhlcjogDQoNe1smKiZdfQpcIiBVcG9uIG15IGtuZWVzIA0KSSBjaGFybSB5b3UsIGJ5IG15IG9uY2UgY29tbWVuZGVkIGJlYXV0eSwgDQpCeSBhbGwgeW91ciB2e1smKiZdfW93cyBvZiBsb3ZlLCBhbmQgdGhhdCBncmVhdCB2b3cgDQpXaGljaCBkaWQgaW5jb3Jwb3JhdGUgYW5kIG1ha2UgdXMgb25lLiANClR7WyYqJl19aGF0IHlvdSB1bmZvbGQgdG8gbWUsIHlvdXIgc2VsZiwgeW91ciBoYWxmLCANCldoeSB5b3UgYXJlIGhlYXZ5LlwiIA0KDQpBbmQgQnJ7WyYqJl19dXR1cyBncmFudHMgaGVyIHRoZSBzaGFyZSBpbiBoaXMgZW50ZXJwcmlzZSB0byANCndoaWNoIHNoZSBpcyBlbnRpdGxlZC4gDQoNCntbJiomXX1XaXRoIHRoaXMgc2NlbmUgbWF5IGJlIGNvbXBhcmVkIGFuZCBjb250cmFzdGVkIHRoZSANCnNjZW5lIGluIHRoZSBmaXJzdCBwYXJ0e1smKiZdfSBvZiBLaW5nIEhlbnJ5IC9GLl5hY3QgaWkuLCBzYy4gMyksIA0KaW4gd2hpY2ggTGFkeSBQZXJjeSwgYWxhcm1lZCBieSB0aGUgZXZ7WyYqJl19aWRlbmNlcyBvZiBleGNpdGUtIA0KbWVudCB3aGljaCBoZXIgaHVzYmFuZCBjYW5ub3QgY29uY2VhbCwgYnV0IG9mIHdoaWNoIGhlIHtbJiomXX0NCndpbGwgbm90IHJlbmRlciBhbiBhY2NvdW50LCBwZXJzZWN1dGVzIGhpbSB3aXRoIGxvdmluZyANCmltcG9ydHVuaXR5IHRvIGRpe1smKiZdfXNjbG9zZSBoaXMgc2VjcmV0LiBMYWR5IFBlcmN5IGxvdmVzIA0KDQpUaGUgUm9tYW4gUGxheXMuIDI2NSANCg0KSG90c3B1ciBhcyB7WyYqJl19YSBsb3lhbCB3aWZlIDsgYnV0IHNoZSBoYXMgbm8gc2VyaW91cyBjb25maS0gDQpkZW5jZSBpbiBoZXIgb3duIGluZmx1ZW5jZSB3aXtbJiomXX10aCBoZXIgZ2FsbGFudCBtYWRjYXAgDQpIYXJyeSA7IGFuZCwgd2hpbGUgcGxheWZ1bGx5IGluc2lzdGluZyBvbiBoZXIgZGVtYW5ke1smKiZdfXMsIA0Kc2hlIGV4cGVjdHMgYSByZWZ1c2FsLiANCg0KXCIgQ29tZSwgY29tZSwgeW91IHBhcmFxdWl0bywgYW5zd2VyIG1lIA0KRGlye1smKiZdfWVjdGx5IHVudG8gdGhpcyBxdWVzdGlvbiB0aGF0IEkgYXNrIDsgDQpJbiBmYWl0aCBJXCdsbCBicmVhayB0aHkgbGl0dGxlIGZpbmdle1smKiZdfXIsIEhhcnJ5LCANCkFuIGlmIHRob3Ugd2lsdCBub3QgdGVsbCBtZSBhbGwgdGhpbmdzIHRydWUuXCIgDQoNCkhvdHNwdXIsIHRocm91e1smKiZdfWdoIGhpcyBzZWVtaW5nIHJlY2tsZXNzbmVzcywgaGFzIGluIHJlYWlyIA0KaXR5IGEgZ2VudWluZSBtYW5seSB0ZW5kZXJuZXNzIGZ7WyYqJl19b3IgaGlzIHdpZmUgOyBoZSBpcyB0cm91Yi0gDQpsZWQgYnkgaGVyIGltcG9ydHVuaXRpZXMsIGFuZCBhbnhpb3VzIHRvIGVzY2FwZXtbJiomXX0gZnJvbSANCnRoZW0gOyBidXQgaGUgaXMgbm90IGdvaW5nIHRvIGJlIHNvIHdlYWsgYXMgdG8gYmV0cmF5IGhpcyANCnNlY3JldCB0e1smKiZdfW8gYSB3b21hbiA6IA0KDQpcIiBXaGl0aGVyIEkgbXVzdCwgSSBtdXN0IDsgYW5kLCB0byBjb25jbHVkZSwgDQpUaGlzIGV2ZW5pbmcge1smKiZdfW11c3QgSSBsZWF2ZSB5b3UsIGdlbnRsZSBLYXRlLiANCkkga25vdyB5b3Ugd2lzZSwgYnV0IHlldCBubyBmYXJ0aGVyIHdpc2UgDQp7WyYqJl19VGhhbiBIYXJyeSBQZXJjeVwncyB3aWZlIDsgY29uc3RhbnQgeW91IGFyZS4gDQpCdXQgeWV0IGEgd29tYW4gOyBhbmQgZm9yIHNlY3J7WyYqJl19ZWN5IA0KTm8gbGFkeSBjbG9zZXIgOyBmb3IgSSB3aWxsIGJlbGlldmUgDQpUaG91IHdpbHQgbm90IHV0dGVyIHdoYXQgdGhvdSBkb3tbJiomXX1zdCBub3Qga25vdyA7IA0KQW5kIHNvIGZhciB3aWxsIEkgdHJ1c3QgdGhlZSwgZ2VudGxlIEthdGUuIA0KDQpMYWR5LiBIb3cgISBze1smKiZdfW8gZmFyID8gDQoNCkhvdC4gTm90IGFuIGluY2ggZnVydGhlci5cIiANCg0KQW5kIHRoZW4gY29tZXMgdGhlIGV4cGxhbmF0aW9uIG9me1smKiZdfSBoaXMgYXBwYXJlbnQgcm91Z2gqIA0KDQpeXl5eXCcgXCJCdXQgaGFyayB5b3UsIEthdGU7IA0KDQpXaGl0aGVyIEkgZ28sIHRoaXRoZXtbJiomXX1yIHNoYWxsIHlvdSBnbyB0b28gOyANClRvLWRheSB3aWxsIEkgc2V0IGZvcnRoLCB0by1tb3Jyb3cgeW91LiANCldpbGwgdGhpcyBje1smKiZdfW9udGVudCB5b3UsIEthdGUgPyANCg0KTGFkeS4gSXQgbXVzdCBvZiBmb3JjZS5cIiANCg0KVGhlIHJlbGF0aW9uIG9mIGh1c2JhbmQge1smKiZdfWFuZCB3aWZlIGFzIGNvbmNlaXZlZCBpbiB0aGUgaGlzLSANCnRvcmljYWwgcGxheXMgZGlmZmVycyB0aHJvdWdob3V0IGZyb20gdGh7WyYqJl19YXQgcmVsYXRpb24gYXMgY29uLSANCmNlaXZlZCBpbiB0aGUgdHJhZ2VkaWVzLiANCg0KSW4gdGhlIGZvdXJ0aCBzY2VuZSB3ZSBhZ3tbJiomXX1haW4gbWVldCBQb3J0aWEuIEJydXR1cyANCmhhcyBnb25lIGZvcnRoIHRvIGJyaW5nIENhZXNhciB0byB0aGUgQ2FwaXRvbC4gUG9ye1smKiZdfXRpYSBpcyANCnN0YW5kaW5nIHdpdGhvdXQgdGhlIGRvb3Igb2YgaGVyIGhvdXNlLCBzdHJhaW5pbmcgaGVyIGVhciANCnRvIGNhdGN7WyYqJl19aCBhbnkgc291bmQgdGhlIHdpbmQgbWF5IGJlYXIgZnJvbSB0aGF0IGRpcmVjLSANCnRpb24uIFwiIFRoaW5rIHlvdSxcIiBhc2tlZCBQe1smKiZdfW9ydGlhLCBpbiB0aGUgcHJlY2VkaW5nIHNjZW5lXiANCg0KMjY2IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCl57WyYqJl19XCdJIGFtIG5vIHN0cm9uZ2VyIHRoYW4gbXkgc2V4P1wiIE5vdyBzaGUgZGlzY2NyZXJhIA0KaGVyIHdvbWFuaG9vZCA6IA0KDQpcIiBjb3tbJiomXX1uc3RhbmN5LCBiZSBzdHJvbmcgdXBvbiBteSBzaWRlLCANClNldCBhIGh1Z2UgbW91bnRhaW4gXCd0d2VlbiBteSBoZWFydCBhbmQgdHtbJiomXX1vbmd1ZSAhIA0KSSBoYXZlIGEgbWFuXCdzIG1pbmQsIGJ1dCBhIHdvbWFuXCdzIG1pZ2h0LlwiIA0KDQpTaGUgaXMgb25lIHN0cnVuZyBue1smKiZdfWVydmUgb2Ygc3VzcGVuc2UgYW5kIGFueGlldHkuIFNoZSBpcyANCnVuY29udHJvbGxhYmx5IGVhZ2VyIChmb3IgdGhpcyBzdG9pY2F7WyYqJl19bCB3b21hbiBpcyBvZiBhbiBvci0gDQpnYW5pemF0aW9uIGFzIGZhciBhcyBwb3NzaWJsZSByZW1vdmVkIGZyb20gdGhlIHBobGVnbXtbJiomXX1hdC0gDQppYykgOyB5ZXQgd2hlbiB0aGUgc29vdGhzYXllciBzcGVha3MsIGFkZGluZyB0byBoZXIgYW54aS0gDQpldHkgYXMgdG8ge1smKiZdfXRoZSBldmVudCB0aGUgYXBwcmVoZW5zaW9uIHRoYXQgdGhlIHBsb3QgaGFzIA0KYmVlbiBkaXNjb3ZlcmVkLCBzaGUgZm9yIHRoZSB7WyYqJl19dGltZSBjb250cm9scyBoZXJzZWxmLCBhbmQgDQphcHBlYXJzIGNhbG0uIFdoZW4gaGUgaXMgZ29uZSwgc2hlIGNhbiBlbmR1cmUgbntbJiomXX1vIA0KbG9uc3JlciBcXCANCg0KXiAqIFwiSSBtdXN0IGdvIGluLiBBeSBtZSwgaG93IHdlYWsgYSB0aGluZyANCg0KVGhlIGhlYXJ0IG97WyYqJl19ZiB3b21hbiBpcyAhXCIgDQoNClN1Y2ggYSB3b21hbiBhcyBQb3J0aWEgcGF5cyBhIHRlcnJpYmxlIHRheCBmb3IgaGVyIHNlbGYtIA17WyYqJl19Cm1hc3RlcnkuIFRoZSBjaGllZiBwYXltZW50IG9mIGVmbEV1c2l2ZSB0ZWFycyBhbmQgaHlzdGVyLSANCmljYWwgY3JpZXMgc2hlIHtbJiomXX1jYW5ub3QgcmVuZGVyIGFzIGhlciB0cmlidXRlIHRvIHRoZSB0eXJhbi0gDQpub3VzIHBvd2Vycy4gV2hlbiB0ZWFycyBlc2NhcGUge1smKiZdfWhlciwgZWFjaCBvbmUgaXMgZGlzdGlsbGVkIA0KZnJvbSBhbiBpbnRlbnNlIGFnb255LiBBbmQgYmVjYXVzZSBzaGUgeWllbGRzIGx7WyYqJl19ZXNzIHRoYW4gDQpvdGhlcnMsIHNoZSBtYXkgc25hcCB0aGUgbW9yZSBzdWRkZW5seS4gXCIgSXQgaXMgdGhlIA0Kc3Ryb25nZXN0IGh7WyYqJl19ZWFydHMsXCIgc2FpZCBMYW5kb3IsIFwidGhhdCBhcmUgdGhlIHNvb25lc3QgDQpicm9rZW4uXCIgSGFkIFBvcnRpYSBiZWVuIGxlc3MgaHtbJiomXX1lciBodXNiYW5kXCdzIGVxdWFsLCBsZXNzIA0KYWJzb2x1dGVseSBvbmUgd2l0aCBoaW0gaW4gaGlzIGFpbXMgYW5kIGVuZGVhdm9yc3tbJiomXX0sIHNoZSANCm1pZ2h0IGhhdmUgbGl2ZWQuIEhlciBkZWF0aCwgbGlrZSBoZXIgbGlmZSwgZXhjbHVkZXMgYWxsIA0KY29tbW9uIGdye1smKiZdfWllZiBhbmQgam95IDsgdGhlIHBhaW4gaXMgYSBwYWluIHdoaWNoIG1ha2VzIA0KdXMgc3Ryb25nZXIgOyB0aGUgam95IGlzIHN0cml7WyYqJl19Y3RlciB0aGFuIGR1dHksIGFuZCBvZiBoaWdoZXIgDQpwb3dlciB0byBjb25zdHJhaW4gdG8gYWxsIHRoYXQgaXMgZXhjZWxsZW50LntbJiomXX0gU2hha3NwZXJlLCANCndpdGggZmluZSBqdWRnbWVudCwgaGFzIGFsbG93ZWQgdXMgdG8gc2VlIFBvcnRpYSBzZWxkb20gDQppbiB0e1smKiZdfWhlIHBsYXkgOyBvdGhlcndpc2UgYW4gaW50ZXJlc3QgYWxpZW4gZnJvbSB0aGF0IHdoaWNoIA0KaGUgaW50ZW5kZWQgbWlnaHQgaGF7WyYqJl19dmUgZ3Jvd24gcHJlZG9taW5hbnQuXCJeIA0KDQoqIE1yLiBIdWRzb24gKFwiU2hha2VzcGVhcmU6IGhpcyBMaWZlLCBBcnQsIGFuZCBDe1smKiZdfWhhcmFjdGVycy5cIiB2b2wuIElMLCBwLiANCjIzOSkgbm90aWNlcyBhIHRvdWNoaW5nIGluY2lkZW50IGZyb20gUGx1dGFyY2ggcmVze1smKiZdfXBlY3RpbmcgUG9ydGlhIHdoaWNoIA0KU2hha3NwZXJlIGRpZCBub3QgdXNlLiBBdCB0aGUgcGFydGluZyBvZiBQb3J0aWEgZnJvbSB7WyYqJl19QnJ1dHVzIGluIHRoZSBzZWEqIA0KQmlkZSBjaXR5IG9mIEVsZWEsIHNoZSB0cmllZCB0byBkaXNzZW1ibGUgaGVyIHNvcnJvdywgXCJ7WyYqJl19IEJ1dCBhIGNlcnRhaW4gcGFpbnQqIA0KDQpUaGUgUm9tYW4gUGxheXMuIDI2NyANCg0KVFRwb24gdGhlIGRlYXRoIG9mIENhZXNhcntbJiomXX0sIENhc3NpbnMgcGFydHMgdGhlIGNyb3dkIGFuZCANCmRlbGl2ZXJzIGFuIG9yYXRpb24uIFRoaXMgc3BlZWNoIG9mIENhc3NpdXMge1smKiZdfVNoYWtzcGVyZSANCmhhcyBub3QgcmVjb3JkZWQgZm9yIHVzLiBXZSBtYXkgYmUgY2VydGFpbiB0aF50IGl0IHdhcyANCmZpZXJ5LCB7WyYqJl19dHJpdW1waGFudCwgYW5kIGVmZmVjdGl2ZSA7IHdlIG1heSBiZSBjZXJ0YWluIHRoYXQgDQpoZSBkaWQgbm90LCBsaWtlIEJydXR1c3tbJiomXX0sIG1ha2Ugc3R1ZGlvdXMgZWZmb3J0IHRvIGV4Y2x1ZGUgDQphbGwgYXBwZWFsIHRvIHBhc3Npb24uIEl0IGlzIGNoYXJhY3Rlcmlze1smKiZdfXRpYyBvZiB0aGUgaWRlYWxpc3QgDQp0aGF0IGhlIHNob3VsZCB0cmVhdCB0aGUgUm9tYW4gY3Jvd2Qg4oCUIHRoYXQgc2Vuc2l0aXZ7WyYqJl19ZSwgdmEtIA0KcmlhYmxlLCBpcnJhdGlvbmFsIG1hc3Mg4oCUIGFzIGlmIGl0IG11c3Qgbm90IGJlIGluZHVsZ2VkIGluIA0KYW55IHtbJiomXX1tYW5uZXIgb2YgcGVyc3Vhc2lvbiBleGNlcHQgYSBjYWxtIGFwcGVhbCB0byByZWFzb24sIA0KYW5kIHRoZSBwcmVzZW50YXRpb24ge1smKiZdfW9mIGFuIGlkZWFsIG9mIEp1c3RpY2UuIEhlIGJlZ2lucyANCndpdGggYSB2aW5kaWNhdGlvbiBvZiBoaXMgb3duIGNvbmR1Y3QsIGF7WyYqJl19biBhcG9sb2d5IGZvciANCkJydXR1cy4gSGlzIG1hbm5lciBpcyBkZWxpYmVyYXRlIGFuZCBjb25zdHJhaW5lZCB1bnRpbCANCmhlIHtbJiomXX1wYXNzZXMgZnJvbSBzZWxmLWRlZmVuY2UgdG8gYSBkaXJlY3QgYXBwZWFsIHRvIGhpcyBjb3VuLSANCnRyeW1lblwncyBwYXRyaW90aXtbJiomXX1zbSBhbmQgbG92ZSBvZiBmcmVlZG9tIDsgYW5kIGl0IGlzIG5vLSANCnRpY2VhYmxlIHRoYXQgYXQgdGhpcyBwb2ludCBoaXMgc3Ble1smKiZdfWVjaCwgd2hpY2ggYmVnYW4gYXMgDQpwcm9zZSwgaWYgbm90IGFjdHVhbGx5IHZlcnNlLCBob3ZlcnMgb24gdGhlIGJyaW5rIG9mIHZ7WyYqJl19ZXJzZS4gDQpCdXQgQnJ1dHVzLCB3aG8gaXMgdXR0ZXJseSB1bmFibGUgdG8gY2FsY3VsYXRlIHRoZSBjb20tIA0KcG9zaXRpb24gb3tbJiomXX1mIGNvbmNyZXRlIGZvcmNlcywgY29tbWl0cyBhIHlldCBncmF2ZXIgZXJyb3IuIA0KV2hlbiBBbnRvbnksIGFmdGVyIHRoZSBhc3Nhe1smKiZdfXNzaW5hdGlvbiwgY29tZXMgaW50byB0aGUgDQpwcmVzZW5jZSBvZiB0aGUgbGVhZGVycyBvZiB0aGUgY29uc3BpcmFjeSwgQnJ1dHV7WyYqJl19cyBhZGRyZXNzLSANCmVzIGhpbSBhbHNvIHdpdGggYSBzcGVlY2ggb2YgZXhwbGFuYXRpb24sIGFuIGFwb2xvZ2lhLiANCkNhc3NpdXtbJiomXX1zLCB3aG8gYXQgdGhlaXIgcHJpdmF0ZSBjb25jbGF2ZSBoYWQgdXJnZWQgTWFyayANCkFudG9ueVwncyBkZWF0aCwgbm93IGNvbWVzIHtbJiomXX1mb3J3YXJkIHdpdGggYSBicmllZiBhbmQgZWYtIA0KZmVjdGl2ZSBhcHBlYWwgdG8gQW50b255XCdzIGludGVyZXN0cyA6IA0KDQpcIiB7WyYqJl19WW91ciB2b2ljZSBzaGFsbCBiZSBhcyBzdHJvbmcgYXMgYW55IG1hblwncyANCkluIHRoZSBkaXNwb3Npbmcgb2YgbmV3IGRpZ25pdGl7WyYqJl19ZXMuXCIgDQoNCkFudG9ueSBiZWdzIHRvIGJlIGFsbG93ZWQgdG8gc3BlYWsgYXQgQ2Flc2FyXCdzIGZ1bmVyYWwuIA0KSW4gdGhlIGpve1smKiZdfXkgb2YgaGF2aW5nIGFjaGlldmVkIGFuIGVtaW5lbnQgZGVlZCB3aGljaCwgDQp0aG91Z2ggaXQgbG9vayBzYXZhZ2UsIHdhcyBpbmR7WyYqJl19ZWVkIG1lcmNpZnVsLCBhbmQgZm9yIHdoaWNoIA0KDQppbmcgYmV3cmF5ZWQgaGVyIGluIHRoZSBlbmQuIFRoZSBkZXZpY2Ugd2FzIHtbJiomXX10YWtlbiBvdXQgb2YgdGhlIEdyZWVrIHN0b3JpZXMgDQpob3cgQW5kcm9tYWNoZSBhY2NvbW9hbmllZCBoZXIgaHVzYmFuZCwgSGVje1smKiZdfXRvciwgd2hlbiBoZSB3ZW50IG91dCBvZiBUcm95IA0KdG8gdGhlIHdhcnMsIGFuZCBob3cgSGVjdG9yIGRlbGl2ZXJlZCBoZXIgaGl7WyYqJl19cyBsaXR0bGUgc29uLCBhbmQgaG93IGhlciBleWVzIA0Kd2VyZSBuZXZlciBvZmYgaGltLiBQb3J0aWEsIHNlZWluZyB0aGlzIHBpY3tbJiomXX10dXJlLCBhbmQgbGlrZW5pbmcgaGVyc2VsZiB0byBiZSANCmluIHRoZSBzYW1lIGNhc2UsIGZlbGwgYS13ZWVwaW5nIDsgYW5kIGNve1smKiZdfW1pbmcgdGhpdGhlciBvZnRlbnRpbWVzIGluIGEgZGF5IHRvIA0KwrtlZSBpdCwgc2hlIHdlcHQgc3RpbGwuXCcqIA0KDQoyNjggU2hhe1smKiZdfWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydCANCg0KaGUgY2FuIHJlbmRlciBhbXBsZSBcIiByZWFzb25zIFwiIOKAlCBCcnV0dXMgaXtbJiomXX1zIHdlbGwgcGxlYXNlZCANCnRvIGFjdCBnZW5lcm91c2x5IHRvIGEgcGFydGlzYW4gb2YgQ2Flc2FyLCBhbmQgZ2l2ZXMgY29uLSANe1smKiZdfQpzZW50LiBDYXNzaXVzIGlzIHN0aWxsIHVyZ2VudCB0byBoYXZlIHRoZSBmdXR1cmUgcmVsYS0gDQp0aW9uIG9mIEFudG9ueSB0byB7WyYqJl19dGhlIGNvbnNwaXJhdG9ycyBkZXRlcm1pbmVkIGFuZCBtYWRlIA0KY2xlYXIgOiANCg0KXCIgV2lsbCB5b3UgYmUgcHJpY2tcJ2QgaW4ge1smKiZdfW51bWJlciBvZiBvdXIgZnJpZW5kcyA7IA0KT3Igc2hhbGwgd2Ugb24sIGFuZCBub3QgZGVwZW5kIG9uIHlvdSA/XCIgDQoNClVwb24ge1smKiZdfWhlYXJpbmcgQnJ1dHVzIGdpdmUgY29uc2VudCB0byBBbnRvbnlcJ3MgcmVxdWVzdCwgDQpDYXNzaXVzIGludGVycG9zZXMgOiANCg0Ke1smKiZdfVwiIEJydXR1cywgYSB3b3JkIHdpdGggeW91LiANCllvdSBrbm93IG5vdCB3aGF0IHlvdSBkbyA7IGRvIG5vdCBjb25zZW50IA0KVGhhe1smKiZdfXQgQW50b255IHNwZWFrIGluIGhpcyBmdW5lcmFsLlwiIA0KDQpCdXQgQnJ1dHVzIHJlcGxpZXMgdGhhdCBoZSB3aWxsIGhpbXNlbGYge1smKiZdfWdvIGZpcnN0IGludG8gdGhlIA0KcHVscGl0LCBcIkFuZCBzaG93IHRoZSByZWFzb24gb2Ygb3VyIENhZXNhclwncyBkZWF0aC5cJ1wnIA0Ke1smKiZdfVNob3cgdGhlIHJlYXNvbiAhIEFmdGVyIHdoaWNoLCBkb3VidGxlc3MsIGFwcGVhbCB0byB0aGUgDQpwYXNzaW9ucyBvZiBhIEtvbWF7WyYqJl19biBjcm93ZCBtdXN0IGJlIGluZWZsRWVjdHVhbC4gQnV0IGluIA0KcmVhbGl0eSB0aGUgc3BlZWNoIG9mIEJydXR1cyBpcyB1bmFibHtbJiomXX1lIHRvIHJvdXNlIGFueSBlbi0gDQp0aHVzaWFzbSBhbW9uZyBoaXMgaGVhcmVycyBmb3IgTGliZXJ0eSBvciBhbiBpZGVhbCBvZiANe1smKiZdfQpKdXN0aWNlLiBUaGUgcGVvcGxlIHJlcXVpcmUgYSBDYWVzYXIgOyBhbmQgaWYgdGhlaXIgZm9ybWVyIA0KbG9yZCBiZSBkZWFkLCB7WyYqJl19dGhlbiB0aGV5IHdpbGwgaGF2ZSBCcnV0dXMgaGltc2VsZiBmb3IgdGhlaXIgDQpuZXcgbG9yZC4gDQoNClwiIDEgQ2l0IEJyaW5nIGh7WyYqJl19aW0gaW4gdHJpdW1waCBob21lIHVudG8gaGlzIGhvdXNlLiANCg0KMiBhdCBHaXZlIGhpbSBhIHN0YXR1ZSB3aXRoIGhpcyBhbmNlc3tbJiomXX10b3JzLiANCg0KMyBDaXQgTGV0IGhpbSBiZSBDYWVzYXIuXCIgDQoNClRoaXMgaXMgbm90IHRoZSBtb29kIGluIHdoaWNoIHRoZSBjaXtbJiomXX10aXplbnMgY2FuIG9mZmVyIHJlLSANCnNpc3RhbmNlIHRvIHRoZSBhcHBlYWxzIG9mIEFudG9ueS4gVGhlIHBvbGl0aWNhbCBpZGVhe1smKiZdfWxpc3QgDQphZGRzIGFub3RoZXIgdG8gaGlzIHNlcmllcyBvZiBmYXRhbCBtaXNjYWxjdWxhdGlvbnMuXCJeIA0KDQoqIE1yLiBIdWRze1smKiZdfW9uIG5vdGljZXMgdGhhdCBcIiBQbHV0YXJjaCBoYXMgYSBzaG9ydCBwYXNzYWdlIHdoaWNoIHNlcnZlZCBhcyANCmEgaGludCwgbm90e1smKiZdfSBpbmRlZWQgb2YgdGhlIG1hdHRlciwgYnV0IGZvciB0aGUgc3R5bGUsIG9mIHRoYXQgc3BlZWNoIFtvZiBCcnV0dXNdLiANCiogVGh7WyYqJl19ZXkgZG8gbm90ZSxcJyBzYXlzIGhlLCAqIHRoYXQgaW4gc29tZSBvZiBoaXMgZXBpc3RsZXMgaGUgY291bnRlcmZlaXRlZCB0aGF0IA17WyYqJl19CmJyaWVmIGNvbXBlbmRpb3VzIG1hbm5lciBvZiB0aGUgTGFjZWRhZW1vbmlhbnMuIEFzLCB3aGVuIHRoZSB3YXIgd2FzIA0KYmVndXtbJiomXX1uLCBoZSB3cm90ZSB0byB0aGUgUGVyZ2FtZW5pYW5zIGluIHRoaXMgc29ydCA6ICpeIEkgdW5kZXJzdGFuZCB5b3UgaGF2ZSANCmdpe1smKiZdfXZlbiBEb2xhYmVsbGEgbW9uZXkgOiBpZiB5b3UgaGF2ZSBkb25lIGl0IHdpbGxpbmdseSwgeW91IGNvbmZlc3MgeW91IGhhdmUgDQp7WyYqJl19b2ZmZW5kZWQgbWU7IGlmIGFnYWluc3QgeW91ciB3aWxscywgc2hvdyBpdCBieSBnaXZpbmcgbWUgd2lsbGluZ2x5LlwiIFRoaXMgDQp7WyYqJl19d2FzIEJydXR1c1wncyBtYW5uZXIgb2YgbGV0dGVycywgd2hpY2ggd2VyZSBob25vcmVkIGZvciB0aGVpciBicmllZm5lc3MgXCcgXCIgDXtbJiomXX0KKFwiIFNoYWtlc3BlYXJlIDogaGlzIExpZmUsIEFydCwgYW5kIENoYXJhY3RlcnMsXCIgdm9sLiBpaS4sIHBwLiAyMzQsIDIzNSkuIFR7WyYqJl19aGlzIA0KDQpUaGUgUm9tYW4gUGxheXMuIDI2OSANCg0KVGhlIHNlY29uZCBzY2VuZSBvZiB0aGUgZm91cnRoIGFjdCB3YXMgYWxyZXtbJiomXX1hZHkgY2VsZS0gDQpicmF0ZWQgaW4gU2hha3NwZXJlXCdzIG93biBkYXkuIExlb25hcmQgRGlnZ2VzIHJlY29yZHMgDQppdHMgcG9wdXtbJiomXX1sYXJpdHkuIEl0IHdhcyBpbWl0YXRlZCBieSBCZWF1bW9udCBhbmQgRmxldGNoLSANCmVyIGluIFRoZSBNYWlkXCdzIFRyYWdlZHleIHtbJiomXX1hbmQgYWZ0ZXJ3YXJkcyBieSBEcnkgZGVuIA0KaW4gQWxsIGZvciBMb3ZlLiBcIiBJIGtub3cgbm8gcGFydCBvZiBTaGFrc3BlYXJlLHtbJiomXX1cIiANCkNvbGVyaWRnZSB3cm90ZSwgXCIgdGhhdCBtb3JlIGltcHJlc3NlcyBvbiBtZSB0aGUgYmVsaWVmIA0Kb2YgaGlzIGdlbml1cyB7WyYqJl19YmVpbmcgc3VwZXJodW1hbiB0aGFuIHRoaXMgc2NlbmUgYmV0d2VlbiANCkJydXR1cyBhbmQgQ2Fzc2l1cy5cIiBCcnV0dXMgaGFzIGF7WyYqJl19bGllbmF0ZWQgaGlzIGZyaWVuZCBieSANCnVuY29tcHJvbWlzaW5nIGFkaGVyZW5jZSB0byBoaXMgb3duIGlkZWFsIHN0YW5kYXJkIHtbJiomXX1vZiANCnB1cml0eSA7IGhlIGhhcyBjb25kZW1uZWQgTHVjaXVzIEJlbGxhIGZvciB0YWtpbmcgYnJpYmVzLCANCmFsdGhvdWdoIENhe1smKiZdfXNzaXVzIGhhZCB3cml0dGVuIGluIGhpcyBiZWhhbGYuIEJydXRqaXMgbG92ZXMgDQp2aXJ0dWUgYW5kIGRlc3Bpc2VzIGdvbGQgOyB7WyYqJl19YmF0IGluIHRoZSBsb2dpYyBvZiBmYWN0cyB0aGVyZSANCmlzIGFuIGlyb255IGNydWVsIG9yIHBhdGhldGljLiBCcnV0dXMgbWFpbntbJiomXX10YWlucyBhIGxvZnR5IA0KcG9zaXRpb24gb2YgaW1tYWN1bGF0ZSBob25vciBhYm92ZSBDYXNzaXVzIDsgYnV0IGlkZWFscywgDQphe1smKiZdfW5kIGFuIGhlcm9pYyBjb250ZW1wdCBmb3IgZ29sZCwgd2lsbCBub3QgZmlsbCB0aGUgbWlsaXRhcnkgDQpjb2ZpXmVyIG9yIHBheSB7WyYqJl19dGhlIGxlZ2lvbnMsIGFuZCB0aGUgcG9ldHJ5IG9mIG5vYmxlIHNlbnRpLSANCm1lbnQgc3VkZGVubHkgZHJvcHMgZG93biB0byB0aHtbJiomXX1lIHByb3NhaWMgY29tcGxhaW50IHRoYXQgDQpDYXNzaXVzIGhhZCBkZW5pZWQgdGhlIGRlbWFuZHMgbWFkZSBieSBCcnV0dXMgZm9ye1smKiZdfSBjZXItIA0KdGFpbiBzdW1zIG9mIG1vbmV5LlwiXiBOb3IgaXMgQnJ1dHVzLCB0aG91Z2ggaGUgd29yc2hpcCANCmFuIGlkZWFsIG9me1smKiZdfSBKIHVzdGljZSwgcXVpdGUganVzdCBpbiBtYXR0ZXJzIG9mIGNvbmNyZXRlIHByYWMtIA0KdGljYWwgZGV0YWlsLiANCg0KXCIgQ29ze1smKiZdfS4gSSBkZW5pZWQgeW91IG5vdC4gDQoNCkJydS4gWW91IGRpZC4gDQoNCkNvcy4gSSBkaWQgbm90IDsgaGUgd2FzIGJ1dCBhIGZvb2x7WyYqJl19IA0KDQpUaGF0IGJyb3VnaHQgbXkgYW5zd2VyIGJhY2suIEJydXR1cyBoYXRoIHJpdmVkIG15IGhlYXJ0IDsgDQpBIGZyaWVuZCBzaHtbJiomXX1vdWxkIGJlYXIgaGlzIGZyaWVuZFwncyBpbmZpcm1pdGllcywgDQpCdXQgQnJ1dHVzIG1ha2VzIG1pbmUgZ3JlYXRlciB0aGFuIHRoZXtbJiomXX15IGFyZS5cIiANCg0KcGVjdWxpYXJpdHkgb2Ygc3R5bGUgaXMgbm90IGNvbmZpbmVkIHRvIEJydXR1c1wncyBhZGRyZXNzIHRvIHRoZSB7WyYqJl19cGVvcGxlLiBJdCBhcMKrIA0KcGVhcnMsIGZvciBleGFtcGxlLCBpbiBoaXMgZmluYWwgYW5kIGRlbGliZXJhdGUgcmVwbHkgdG8gQ3tbJiomXX1hc3NpdXMsIGFjdCBpLiwgc2MuIDI7IA0KDQpcIiBUaGF0IHlvdSBkbyBsb3ZlIG1lLCBJIGFtIG5vdGhpbmcgamVhbG91cyA7IA0KV3tbJiomXX1oYXQgeW91IHdvdWxkIHdvcmsgbWUgdG8sIEkgaGF2ZSBzb21lIGFpbSA7IA0KDQpXaGF0IHlvdSBoYXZlIHNhaWQgDQpJIHdpbGwge1smKiZdfWNvbnNpZGVyIDsgd2hhdCB5b3UgaGF2ZSB0byBzYXkgDQpJIHdpbGwgd2l0aCBwYXRpZW5jZSBoZWFyLlwiIA0KDQrimaYgS3JleXNze1smKiZdfWlnLCBcIiBWb3JsZXN1bmdlbiBpaWJlciBTaGFrZXNwZWFyZSBcIiBDZWQuIDE4XCc3NCksIHZvbC4gaS4sIHAuIDQyNCogDQoNCjIgNzB7WyYqJl19IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCkVhY2ggaXMgbmF0dXJhbGx5IGFuZCBpbmV2aXRhYmx5IGFnZ3JpZXtbJiomXX12ZWQgd2l0aCB0aGEgDQpvdGhlciA7IG9uZSBmcm9tIHRoZSBwcmFjdGljYWwsIHRoZSBvdGhlciBmcm9tIHRoZSBpZGVhbCwgDQpze1smKiZdfXRhbmRwb2ludC4gU2hha3NwZXJlLCBpbiBoaXMgaW5maW5pdGUgcGl0eSBmb3IgaHVtYW4gDQplcnJvciBhbmQgZnJhaWx0eSwgbWF7WyYqJl19a2VzIHVzIGxvdmUgQnJ1dHVzIGFuZCBDYXNzaXVzIHRoZSANCmJldHRlciB0aHJvdWdoIHRoZSBsaXR0bGUgd3JvbmdzIHdoaWNoIHtbJiomXX1icmluZyB0aGUgZ3JlYXQgDQp3ZWFsdGggb2YgdGhlaXIgbG92ZSBhbmQgdHJ1ZSBmcmF0ZXJuaXR5IHRvIGxpZ2h0LiBCcnV0dXMge1smKiZdfQ0KY2FsbHMgZm9yIGEgYm93bCBvZiB3aW5lIGluIHdoaWNoIHRvIHBsZWRnZSB0aGVpciByZWNvbi0gDQpjaWxpYXRpb24uIFRoZW57WyYqJl19IHdoZW4gdGhlaXIgaGVhcnRzIGFyZSB0ZW5kZXJlc3QgY29tZXMgDQp0aGUgY29uZmVzc2lvbiBvZiB0aGUgc29ycm93IHdoaWNoIHtbJiomXX1CcnV0dXMgY291bGQgbm90IHV0LSANCnRlciBhcyBsb25nIGFzIGEgc2hhZG93IGxheSBiZXR3ZWVuIGhpcyBzb3VsIGFuZCBoaXMge1smKiZdfQ0KZnJpZW5kXCdzIDogDQoNClwiIENvcy4gSSBkaWQgbm90IHRoaW5rIHlvdSBjb3VsZCBoYXZlIGJlZW4gc28gYW5ncnkuIA0KDQpCcntbJiomXX11LiBDYXNzaXVzLCBJIGFtIHNpY2sgb2YgbWFueSBncmllZnMuIA0KDQpDb3MuIE9mIHlvdXIgcGhpbG9zb3BoeSB5b3UgbWFrZSBue1smKiZdfW8gdXNlLCANCklmIHlvdSBnaXZlIHBsYWNlIHRvIGFjY2lkZW50YWwgZXZpbHMuIA0KDQpCcnUuIE5vIG1hbiBiZWFycyBzb3Jyb3d7WyYqJl19IGJldHRlci4gUG9ydGlhIGlzIGRlYWQuXCIgDQoNCkJ1dCBCcnV0dXMgaXMgc3VzdGFpbmVkIGJ5IHRoZSBzcGlyaXQgb2YgUG9ydGl7WyYqJl19YS4gVG8gbGl2ZSANCmluIGhlciBzcGlyaXQgb2YgU3RvaWNpc20gYmVjb21lcyBub3cgdGhlIGhpZ2hlc3QgYWN0IG9mIA0KcmVsaXtbJiomXX1naW9uIHRvIGhlciBtZW1vcnkuIA0KDQpcIiBTcGVhayBubyBtb3JlIG9mIGhlci4gR2l2ZSBtZSBhIGJvd2wgb2Ygd2luZSA7IA0KSXtbJiomXX1uIHRoaXMgSSBidXJ5IGFsbCB1bmtpbmRuZXNzLCBDYXNzaXVzLlwiIA0KDQpUaGUgYXJtZWQgbWVuIHRhbGtpbmcgc28gZ3JhdmVseXtbJiomXX0sIGJlZm9yZSB0aGUgZ3JlYXQgZGF5IA0Kd2hpY2ggaXMgdG8gZGVjaWRlIHRoZSBmYXRlIG9mIHRoZSB3b3JsZCwgb2YgdGhlIFwiaXtbJiomXX1uc3VwLSANCnBvcnRhYmxlIGFuZCB0b3VjaGluZyBsb3NzXCIgbWFrZSB1cyBrbm93IHdoYXQgdGhpcyANCndvbWFuIHdhcy4gUHJvZntbJiomXX1vdW5kIGVtb3Rpb24sIFNoYWtzcGVyZSB3YXMgYXdhcmUsIA0KY2FuIGV4cHJlc3MgaXRzZWxmIHF1aWV0bHkgYW5kIHdpdGggcmVze1smKiZdfWVydmUuIFRoZSBub2lzeSANCmRlbW9uc3RyYXRpb24gb2YgZ3JpZWYgb3ZlciB0aGUgc3VwcG9zZWQgZGVhZCBKdWxpZXQgaXMgDQp7WyYqJl19dGhlIGV4dHJhdmFnYW50IGFiYW5kb25tZW50IHRvIHNvcnJvdywgcGFydGx5IHJlYWwgYW5kIA0KcGFydGx5IGZvcm1hbCwgb2YgaHtbJiomXX1lYXJ0cyB3aGljaCB3ZXJlIGxpdHRsZSBzZW5zaXRpdmUsIGFuZCANCndoaWNoIGhhZCBsaXR0bGUgY29uY2VybmVkIHRoZW1zZWx2e1smKiZdfWVzIGFib3V0IHRoZSBqb3kgb3IgDQptaXNlcnkgb2YgSnVsaWV0IGxpdmluZy4gTGFlcnRlc1wnIHJhbnQgaW4gdGhlIGdyYXZlIG9me1smKiZdfSANCk9waGVsaWEgaXMgcmVwcm92ZWQgYnkgdGhlLiBtb3JlIHZpb2xlbnQgaHlwZXJib2xlIG9mIA0KSGFtbGV0LiBCcnV0dXMgd2l7WyYqJl19bGwgaGVuY2Vmb3J0aCBiZSBzaWxlbnQgYW5kIHBvc3Nlc3MgDQpoaXMgc291bCA6IA0KDQpcIiBDVndzLiBQb3J0aWEsIHRob3UgYXJ7WyYqJl19dCBnb25lLiANCkJydSwgTm8gbW9yZSwgSSBwcmF5IHlvdS5cIiANCg0KVGhlIFJvbWFuIFBsYXlzLiAyNzEgDQoNClRoZSByZW1haW57WyYqJl19ZGVyIG9mIHRoZSBsaWZlIG9mIEJydXR1cyBpcyBhIHNhZCwgc3VzdGFpbmVkIA0KZGV2b3Rpb24gdG8gaGlzIGNhdXNlLiANCg0KQXtbJiomXX1uZCBub3cgb25jZSBtb3JlIGhlIGhlbHBzIHRvIHJ1aW4gdGhhdCBjYXVzZS4gQ2FzLSANCnNpdXMsIHdpdGggZ29vZCByZWFzb24se1smKiZdfSB1cmdlcyB0aGF0IHRoZSBhcm15IHNob3VsZCBub3QgDQphZHZhbmNlIHVwb24gUGhpbGlwcGkgOyBCcnV0dXMgaXMgaW4gZmF2b3J7WyYqJl19IG9mIGFkdmFuY2luZy4gDQpDYXNzaXVzLCBhcyBhbHdheXMsIGlzIGluIHRoZSByaWdodCA7IEJydXR1cywgYXMgYWx3YXlzLCBjYXtbJiomXX1yLSANCnJpZXMgaGlzIHBvaW50LiBOaWdodCBoYXMgY3JlcHQgdXBvbiB0aGVpciB0YWxrLCBhbmQgd2l0aCANCmEgcHJvZm91bmQge1smKiZdfXJlY29uY2lsaWF0aW9uLCB3aXRoIGEgc2Vuc2Ugb2YgZnVsbCBhbmQgbWVhcy0gDQp1cmVsZXNzIGZyYXRlcm5pdHksIHRoZXkgcGF7WyYqJl19cnQuIFRoZSBSb21hbiBsZWFkZXIsIG5vdyANCnRoYXQgdGhlIGdyZWF0IGJhdHRsZSBoYXMgZHJhd24gbmVhciwgZG9lcyBub3Qgb3tbJiomXX1jY3VweSANCmhpbXNlbGYsIGxpa2UgSGVucnkgVi4gYmVmb3JlIHRoZSBtb3JuaW5nIG9mIEFnaW5jb3VydCwgDQppbiBtb3Zpbmcge1smKiZdfWZyb20gc2VudGluZWwgdG8gc2VudGluZWwgd2l0aCB3b3JkcyBvZiBjaGVlci4gDQpIZSBpcyBpbiBoaXMgdGVudCwgYW5kIHRoZSB7WyYqJl19Ym95IEx1Y2l1cyB0b3VjaGVzIGhpcyBpbnN0cnUtIA0KbWVudCwgZHJvd3NpbHkgZmluZ2VyaW5nIHRoZSBzdHJpbmdzLl4gQnJ1dHtbJiomXX11cywgd2l0aCBoaXMgDQpiZWF1dGlmdWwgZnJlZWRvbSBmcm9tIHRoZSBwZXR0eSBzZWxmLWludGVyZXN0cyBvZiBkYWlseSANCmxpe1smKiZdfWZlLCBpcyBnZW50bGUgYW5kIGNvbnNpZGVyYXRlIHRvd2FyZHMgZXZlcnkgb25lLiBUaGUgDQpzZXJ2YW50cyBoYXZlIGxhaW4gZG97WyYqJl19d24uIEx1Y2l1cyBkcm9wcyBhd2F5IGludG8gdGhlIA0KaXJyZXNpc3RpYmxlIHNsZWVwIG9mIGJveWhvb2QuIEJydXR1cywgd2hvLHtbJiomXX0gYXQgdGhlIGNhbGwgb2YgDQpkdXR5IGFuZCBob25vciwgY291bGQgcGx1bmdlIGhpcyBkYWdnZXIgaW50byBDYWVzYXIsIA0KY2Fue1smKiZdfW5vdCB3YWtlIGEgc2xlZXBpbmcgYm95LiBTaGFrc3BlcmUgaGFkIHNvbWVob3cgDQpsZWFybmVkIA0KDQpcIiBUaGUgZGV2b3Rpb24ge1smKiZdfXRvIHNvbWV0aGluZyBhZmFyIA0KRnJvbSB0aGUgc3BoZXJlIG9mIG91ciBzb3Jyb3cuXCIgDQoNCkJydXR1cyBnZW50bHkgZGlzZW5ne1smKiZdfWFnZXMgdGhlIGluc3RydW1lbnQgZnJvbSB0aGUgaGFuZCANCm9mIEx1Y2l1cywgYW5kIGNvbnRpbnVlcyBoaXMgYm9vayB3aGVyZSB7WyYqJl19aGUgaGFkIGxlZnQgaXQgb2ZmIA0KbGFzdCBuaWdodC4gVGhlcmUgaXMgbm90aGluZyBtb3JlIHRlbmRlciBpbiB0aGUgcGxheXMgDXtbJiomXX0Kb2YgU2hha3NwZXJlIHRoYW4gdGhpcyBzY2VuZS4gVGhlIHRlbmRlcm5lc3Mgb2YgYSBtYW4gDQp3aG8gaXMgc3Rlcm4gaXMgdGhle1smKiZdfSBvbmx5IHRlbmRlcm5lc3Mgd2hpY2ggaXMgd2hvbGx5IGRlbGktIA0KY2F0ZSBhbmQgcmVmaW5lZC4gDQpJbiB0aGUgYmF0dGxlIGF7WyYqJl19dCBQaGlsaXBwaSBpdCBpcyBCcnV0dXMgd2hvLCBieSBoaXMgaW4tIA0KDQoqIEJydXR1cyBsb3ZlcyBtdXNpYyA7IGJ1dCBvZiBDYXtbJiomXX1zc2l1cywgQ2Flc2FyIG5vdGVzLCBcIiBoZSBoZWFycyBubyBtdXNpYy5cJ1wnIA0KQ29tcGFyZSBNZXJjaGFudCBvZiBWZW5pY2VeIGFje1smKiZdfXQgdi4sIHNjLiAxIDogDQoNClwiIFRoZSBtYW4gdGhhdCBoYXRoIG5vIG11c2ljIGluIGhpbXNlbGYsIA0KTm9yIGlzIG5vdCBtb3Zle1smKiZdfWQgd2l0aCBjb25jb3JkIG9mIHN3ZWV0IHNvdW5kcywgDQpJcyBmaXQgZm9yIHRyZWFzb25zLCBzdHJhdGFnZW1zLCBhbmQgc3BvaWx7WyYqJl19cy5cIiANCg0KMjcyIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCmNvbnNpZGVyYXRlIHJhc2huZXNzIGFuZCBtaXN7WyYqJl19Y2FsY3VsYXRpb24gb2YgZmFjdHMsIGluc3VyZXMgDQpkZWZlYXQuIFRoaXMgaXMgaGlzIGxhc3QgZXJyb3IuIEhlIGlzIHdpbGxpbntbJiomXX1nIHRoYXQgU3RyYXRvIA0Kc2hvdWxkIGhvbGQgdGhlIHN3b3JkIHdoaWxlIGhlIGZhbGxzIHVwb24gaXQgOiANCg0KXCIgVGhvdSBhcntbJiomXX10IGEgZmVsbG93IG9mIGEgZ29vZCByZXNwZWN0LCANClRoeSBsaWZlIGhhdGggaGFkIHNvbWUgc21hdGNoIG9mIGhvbm9yIGluIGl0e1smKiZdfSA7IA0KSG9sZCB0aGVuIG15IHN3b3JkLlwiIA0KDQpCcnV0dXMgbXVzdCBkaWUgYnkgbm8gaWdub2JsZSBoYW5kLiBUbyB0aGUgbGFze1smKiZdfXQgbW8tIA0KbWVudCBoZSByZXZlcmVzIGhpbXNlbGYuIEFuZCB0aGUgY29uY2x1ZGluZyB3b3JkcyBvZiANCnRoZSBwbGF5IGNvbnZ7WyYqJl19ZXkgdG8gdXMgYW4gYXNzdXJhbmNlLCB3aGljaCB3ZSByZXF1aXJlLCANCnRoYXQgaGlzIGJvZHkgc2hhbGwgc3VmZmVyIG5vIHdyb3tbJiomXX1uZy4gDQoNClRoZSBsaWZlIG9mIEJydXR1cywgYXMgdGhlIGxpdmVzIG9mIHN1Y2ggbWVuIG11c3QgYmUsIA0Kd2FzIGEgZ29vZCBse1smKiZdfWlmZSwgaW4gc3BpdGUgb2YgaXRzIGRpc2FzdHJvdXMgZm9ydHVuZXMuIEhlIA0KaGFkIGZvdW5kIG5vIG1hbiB3aG8gd2FzIG5vdCB7WyYqJl19dHJ1ZSB0byBoaW0uIEFuZCBoZSANCmhhZCBrbm93biBQb3J0aWEuIFRoZSBpZGVhbGlzdCB3YXMgcHJlZGVzdGluZWQgdG8gZmFpbHtbJiomXX0tIA0KdXJlIGluIHRoZSBwb3NpdGl2ZSB3b3JsZC4gQnV0IGZvciBoaW0gdGhlIHRydWUgZmFpbHVyZSANCndvdWxkIGhhdmUgYmVle1smKiZdfW4gZGlzbG95YWx0eSB0byBoaXMgaWRlYWxzLiBPZiBzdWNoIGZhaWwtIA0KdXJlIGhlIHN1ZmZlcmVkIG5vbmUuIE9jdGF2aXVzIGF7WyYqJl19bmQgTWFyayBBbnRvbnkgcmUtIA0KbWFpbmVkIHZpY3RvcnMgYXQgUGhpbGlwcGkuIFlldCB0aGUgcHVyZXN0IHdyZWF0aCBvZiANCntbJiomXX12aWN0b3J5IHJlc3RzIG9uIHRoZSBmb3JlaGVhZCBvZiB0aGUgZGVmZWF0ZWQgY29uc3BpcmF0b3IuIA0KDQpJSS4gDQoNClRoZSB0e1smKiZdfXJhbnNpdGlvbiBmcm9tIHRoZSBKdWxpdXMgQ2Nlc2FyIG9mIFNoYWtzcGVyZSB0byANCmhpcyBBbnRvbnkgYW5kIENsZW9wYXRyYSB7WyYqJl19cHJvZHVjZXMgaW4gdXMgdGhlIGNoYW5nZSBvZiANCnB1bHNlIGFuZCB0ZW1wZXIgZXhwZXJpZW5jZWQgaW4gcGFzc2luZyBmcm9tIHtbJiomXX1hIGdhbGxlcnkgDQpvZiBhbnRpcXVlIHNjdWxwdHVyZSB0byBhIHJvb20gc3BsZW5kaWQgd2l0aCB0aGUgY29sb3JzIA0Kb2YgVGl0e1smKiZdfWlhbiBhbmQgUGF1bCBZZXJvbmVzZS4gSW4gdGhlIGNoYXJhY3RlcnMgb2YgdGhlIA0KSnVsaXVzIENjZXNhciB0aGVyZSBpcyBhIHN7WyYqJl19ZXZlcml0eSBvZiBvdXRsaW5lIDsgdGhleSBpbXBvc2UgDQp0aGVtc2VsdmVzIHdpdGggc3RyaWN0IGF1dGhvcml0eSB1cG9uIHRoZXtbJiomXX0gaW1hZ2luYXRpb24gOyANCnN1Ym9yZGluYXRlZCB0byB0aGUgZ3JlYXQgc3Bpcml0IG9mIENhZXNhciwgdGhlIGNvbnNwaXJhLSANe1smKiZdfQp0b3JzIGFwcGVhciBhcyBmaWd1cmVzIG9mIGxpZmUtc2l6ZSwgYnV0IHRoZXkgaW1wcmVzcyB1cyBhcyANCm5vIGxhcmdlciB0aGF7WyYqJl19biBsaWZlLiBUaGUgZGVtYW5kIHdoaWNoIHRoZXkgbWFrZSBpcyANCmV4YWN0IDsgc3VjaCBhbmQgc3VjaCB0cmlidXRlIG11c3QgYntbJiomXX1lIHJlbmRlcmVkIGJ5IHRoZSANCnNvdWwgdG8gZWFjaC4gVGhlIGNoYXJhY3RlcnMgb2YgdGhlIEFudG9ueSBhbmQgQ2xlby0gDQpwe1smKiZdfWF0cmEgaW5zaW51YXRlIHRoZW1zZWx2ZXMgdGhyb3VnaCB0aGUgc2Vuc2VzLCB0cm91YmxlIA0KdGhlIGJsb29kLCBlbnNuYXJlIHR7WyYqJl19aGUgaW1hZ2luYXRpb24sIGludmFkZSBvdXIgd2hvbGUgDQoNClRoZSBSb21hbiBQbGF5cy4gMjczIA0KDQpiZWluZywgbGlrZSBjb3tbJiomXX1sb3Igb3IgbGlrZSBtdXNpYy4gVGhlIGZpZ3VyZXMgZGlsYXRlIHRvIA0KcHJvcG9ydGlvbnMgZ3JlYXRlciB0aGFuIGh1bWFuLCBhe1smKiZdfW5kIGFyZSBzZWVuIHRocm91Z2ggYSANCmdvbGRlbiBoYXplIG9mIHNlbnN1b3VzIHNwbGVuZG9yLiBKdWxpdXMgQ2Nlc2FyIGFuZCB7WyYqJl19DQpBbnRvbnkgYW5kIENsZW9wYXRyYSBhcmUgcmVsYXRlZCBhcyB3b3JrcyBvZiBhcnQgcmF0aGVyIA0KYnkgcG9pbnRzIG9mIGNvbntbJiomXX10cmFzdCB0aGFuIGJ5IHBvaW50cyBvZiByZXNlbWJsYW5jZS4gSW4gDQp0aGUgb25lIGFuIGlkZWFsIG9mIGR1dHkgaXMgZG9taW5he1smKiZdfW50IDsgdGhlIG90aGVyIGlzIGEgZGl2LSANCmluaXphdGlvbiBvZiBwbGVhc3VyZSBmb2xsb3dlZCBieSB0aGUgcmVtb3JzZWxlc3N7WyYqJl19IE5lbS0gDQplc2lzIG9mIGV0ZXJuYWwgbGF3LiBCcnV0dXMsIHRoZSBTdG9pYywgY29uc3RhbnQsIGxveWFsIHRvIA0KaGlzIGlkZXtbJiomXX1hcywgc3R1ZGlvdXMgb2YgbW9yYWwgcGVyZmVjdGlvbiwgYmVudCB1cG9uIGdhaW4tIA0KaW5nIHNlbGYtbWFzdGVyeSwgdW5zdWxse1smKiZdfWllZCBhbmQgdW50YXJuaXNoZWQgdG8gdGhlIGVuZCwgDQpzdGFuZHMgb3ZlciBhZ2FpbnN0IEFudG9ueSwgc3dheWVkIGhpdGhlciB7WyYqJl19YW5kIHRoaXRoZXIgDQpieSBhcHBldGl0ZXMsIGludGVyZXN0cywgaW1hZ2luYXRpb24sIGNhcmVsZXNzIG9mIGhpcyBvd24gDQptb3tbJiomXX1yYWwgYmVpbmcsIGluY2FwYWJsZSBvZiBzZWxmLWNvbnRyb2wsIHNvaWxlZCB3aXRoIHRoZSANCnN0YWlucyBvZiBwYXNzaW9uIGFue1smKiZdfWQgZGVjYXkuIEFuZCBvZiBDbGVvcGF0cmEgd2hhdCANCnNoYWxsIGJlIHNhaWQgPyBJcyBzaGUgYSBjcmVhdHVyZSBvZiB0aGUgc2F7WyYqJl19bWUgYnJlZWQgYXMgDQpDYXRvXCdzIGRhdWdodGVyLCBQb3J0aWEgPyBEb2VzIHRoZSBvbmUgd29yZCB3b21hbiBpbi0gDQpjbHVkZSB7WyYqJl19bmF0dXJlcyBzbyBkaXZlcnNlPyBPciBpcyBDbGVvcGF0cmEg4oCUIEFudG9ueVwncyANClwic2VycGVudCBvZiBvbGQgTmlsZVwiIOKAlHtbJiomXX0gbm8gbW9ydGFsIHdvbWFuLCBidXQgTGlsaXRoLCANCndobyBlbnNuYXJlZCBBZGFtIGJlZm9yZSB0aGUgbWFraW5nIG9mIEV2ZSA/e1smKiZdfSBTaGFrLSANCnNwZXJlIGhhcyBtYWRlIHRoZSBvbmUgYXMgdHJ1bHkgd29tYW4gYXMgdGhlIG90aGVyIOKAlCANClBvcnRpYSwgdGh7WyYqJl19ZSBpZGVhbCBvZiBtb3JhbCBsb3ZlbGluZXNzLCBoZXJvaWMgYW5kIGZlbWktIA0KbmluZSA7IENsZW9wYXRyYSwgdGhlIGlkZWFsIHtbJiomXX1vZiBzZW5zdWFsIGF0dHJhY3RpdmVuZXNzLCBmZW1pLSANCm5pbmUgYWxzbyA6IA0KDQpcIiBBIGJsaXNzIGluIHByb29mLCBhbmQgcHtbJiomXX1yb3ZlZCwgYSB2ZXJ5IHdvZSA7IA0KQmVmb3JlLCBhIGpveSBwcm9wb3NlZCA7IGJlaGluZCwgYSBkcmVhbS5cIiAqIA0KDQpXZSBkb3tbJiomXX0gbm90IG9uY2Ugc2VlIHRoZSBsaXBzIG9mIEJydXR1cyBsYWlkIG9uIFBvcnRpYVwncyANCmxpcHMgYXMgc2VhbCBvZiBwZXJmZWN0IHtbJiomXX11bmlvbiwgYnV0IHdlIGtub3cgdGhhdCB0aGVpciANCmJlaW5ncyBhbmQgdGhlaXIgbGl2ZXMgaGFkIGVtYnJhY2VkIGluIGZsYXdse1smKiZdfWVzcyBjb25maS0gDQpkZW5jZSBhbmQgcGVyZmVjdCBtdXR1YWwgc2VydmljZS4gQW50b255LCBlbWJyYWNpbmcgDQpDbGVvcGF0cmF7WyYqJl19LCBleGNsYWltcywgDQoNClwiIFRoZSBub2JsZW5lc3Mgb2YgbGlmZSANCklzIHRvIGRvIHRodXMgOyB3aGVuIHN1Y2ggYSBtdXR1YWx7WyYqJl19IHBhaXIgDQpBbmQgc3VjaCBhIHR3YWluIGNhbiBkb1wndCwgaW4gd2hpY2ggSSBiaW5kLCANCk9uIHBhaW4gb2YgcHVuaXNobWVudCx7WyYqJl19IHRoZSB3b3JsZCB0byB3ZWV0IA0KDQpXZSBzdGFuZCB1cCBwZWVybGVzcy5cIiANCg0KwrsgXCcg4pagIOKWoCANCg0KKiBTaGFrc3Ble1smKiZdfXJlXCdzIFNvbm5ldHMsIGN4eGl4LiANCjE4IA0KDQoyIDc0IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydCANCg0KWWV0IHRoe1smKiZdfWlzIFwiIG11dHVhbCBwYWlyLFwiIG1hZGUgZWFjaCB0byBmaWxsIHRoZSBib2R5IGFuZCANCnNvdWwgb2YgdGhlIG90aGVyIHdpdGggdntbJiomXX1vbHVwdHVvdXMgZGVsaWdodCwgYXJlIG1hZGUgYWxzbyANCmVhY2ggZm9yIHRoZSBvdGhlclwncyB0b3JtZW50LiBBbnRvbnkgaXMgaHtbJiomXX1hdW50ZWQgYnkgc3VzcGktIA0KY2lvbiB0aGF0IENsZW9wYXRyYSB3aWxsIGJldHJheSBoaW0gOyBoZSBiZWxpZXZlcyBpdCBwb3Nze1smKiZdfWlibGUgDQp0aGF0IHNoZSBjb3VsZCBkZWdyYWRlIGhlcnNlbGYgdG8gZmFtaWxpYXJpdHkgd2l0aCBDc2VzYXJcJ3MgDQptZW5pYWxze1smKiZdfS4gQW5kIENsZW9wYXRyYSBpcyBhd2FyZSB0aGF0IHNoZSBtdXN0IHdlYXZlIA0KaGVyIHNuYXJlcyB3aXRoIGVuZGxlc3MgdmFyaWV7WyYqJl19dHksIG9yIEFudG9ueSB3aWxsIGVzY2FwZS4gDQoNClRoZSBzcGlyaXQgb2YgdGhlIHBsYXksIHRob3VnaCBzdXBlcmZpY2lhbGx5IHtbJiomXX1pdCBhcHBlYXIgDQp2b2x1cHR1b3VzLCBpcyBlc3NlbnRpYWxseSBzZXZlcmUuIFRoYXQgaXMgdG8gc2F5LCBTaGFrLSANCnNwZXJle1smKiZdfSBpcyBmYWl0aGZ1bCB0byB0aGUgZmFjdC4gVGhlIGZhc2NpbmF0aW9uIGV4ZXJjaXNlZCANCmJ5IENsZW9wYXRyYSBvdmVyIEFudG97WyYqJl19bnksIGFuZCBoYXJkbHkgbGVzcyBieSBBbnRvbnkgDQpvdmVyIENsZW9wYXRyYSwgaXMgbm90IHNvIG11Y2ggdGhhdCBvZiB0aGUgc3tbJiomXX1lbnNlcyBhcyBvZiANCnRoZSBzZW5zdW91cyBpbWFnaW5hdGlvbi4gQSB0aGlyZCBvZiB0aGUgd29ybGQgaXMgdGhlaXJzLiANClRoe1smKiZdfWV5IGhhdmUgbGVmdCB5b3V0aCBiZWhpbmQgd2l0aCBpdHMgc2xpZ2h0IG1lbG9kaW91cyANCnJhcHR1cmVzIGFuZCBkZXNwYWlycy57WyYqJl19IFRoZWlycyBpcyB0aGUgZGVlcGVyIGludG94aWNhdGlvbiANCm9mIG1pZGRsZSBhZ2UsIHdoZW4gZGVhdGggaGFzIGJlY29tZSBhIHtbJiomXX1yZWFsaXR5IDsgd2hlbiANCnRoZSB3b3JsZCBpcyBsaW1pdGVkIGFuZCBwb3NpdGl2ZSA7IHdoZW4gbGlmZSBpcyB1cmdlZCB0byANe1smKiZdfQp5aWVsZCB1cCBxdWlja2x5IGl0cyB1dG1vc3QgdHJlYXN1cmVzIG9mIGRlbGlnaHQuIFdoYXQgDQptYXkgdGhleSBub3QgYWNoaWV7WyYqJl19dmUgb2Ygam95IHdobyBoYXZlIHBvd2VyIGFuZCBiZWF1dHksIA0KYW5kIHBvbXAgYW5kIHBsZWFzdXJlLCBhbGwgdGhlaXIgb3duIHtbJiomXX0/IEhvdyBzaGFsbCB0aGV5IA0KZmlsbCBldmVyeSBtaW51dGUgb2YgdGhlaXIgdGltZSB3aXRoIHRoZSBxdWludGVzc2VuY2Ugb2Yge1smKiZdfQ0KZW5qb3ltZW50IGFuZCBvZiBnbG9yeSA/IA0KDQpcIiBMZXQgUm9tZSBpbiBUaWJlciBtZWx0ICEgYW5kIHRoZSB3aWRlIGFyY2gge1smKiZdfQ0KT2YgdGhlIHJhbmdlZCBlbXBpcmUgZmFsbCA/IGhlcmUgaXMgbXkgc3BhY2UuXCIgDQoNCk9ubHkgb25lIHRoaW5nIHRoZXkgaGFke1smKiZdfSBub3QgYWxsb3dlZCBmb3Ig4oCUIHRoYXQgb3ZlciANCmFuZCBhYm92ZSBwb3dlciBhbmQgYmVhdXR5LCBhbmQgcGxlYXN1cmUgYW57WyYqJl19ZCBwb21wLCANCnRoZXJlIGlzIGEgY2VydGFpbiBpbmV2aXRhYmxlIGZhY3Qg4oCUIGEgbGF3IOKAlCB3aGljaCBjYW5ub3QgDQpiZXtbJiomXX0gZXZhZGVkLiBQbGVhc3VyZSBzaXRzIGVudGhyb25lZCBhcyBxdWVlbiA7IHRoZXJlIGlzIA0KYSByZXZlbCwgYW5kIHRoZSBsb3Jke1smKiZdfXMgb2YgdGhlIGVhcnRoLCBjcm93bmVkIHdpdGggcm9zZXMsIA0KZGFuY2UgYmVmb3JlIGhlciB0byB0aGUgc291bmQgb2YgbGFzY2l7WyYqJl19dmlvdXMgZmx1dGVzLiBCdXQgDQpwcmVzZW50bHkgdGhlIHNjZW5lIGNoYW5nZXMgOyB0aGUgaGFsbCBvZiByZXZlbCBpcyB0cmFuc3tbJiomXX0tIA0KZm9ybWVkIHRvIGFuIGFyZW5hIDsgdGhlIGRhbmNlcnMgYXJlIGFybWVkIGdsYWRpYXRvcnMgOyANCmFuZCBhcyB0aGV5IGFke1smKiZdfXZhbmNlIHRvIGNvbWJhdCB0aGV5IHBheSB0aGUgbGFzdCBob21hZ2UgDQp0byB0aGVpciBxdWVlbiB3aXRoIHRoZSB3b3JkcyBNb3J7WyYqJl19aXR1cmkgdGUgc2FsdXRhbnQuIA0KDQpUaGUgUm9tYW4gUGxheXMuIDI3NSANCg0KVGhlIHBhdGhvcyBvZiBBbnRvbnkgYW5kIENsZXtbJiomXX1vanBhaS9yYSByZXNlbWJsZXMgdGhlIA0KcGF0aG9zIG9mIE1hY2JldGguIEJ1dCBTaGFrc3BlcmUsIGxpa2UgRGFudGUsIGFsbG93e1smKiZdfXMgDQp0aGUgc291bCBvZiB0aGUgcGVyanVyZXIgYW5kIG11cmRlcmVyIHRvIGRyb3AgaW50byBhIA0KbG93ZXIsIGJsYWNrZXIsIGF7WyYqJl19bmQgbW9yZSBsb25lbHkgY2lyY2xlIG9mIEhlbGwgdGhhbiB0aGUgDQpzb3VsIG9mIHRoZSBtYW4gd2hvIGhhcyBzaW5uZWQgdGhyb3tbJiomXX11Z2ggdm9sdXB0dW91cyBzZWxmLSANCmluZHVsZ2VuY2UuIFlldCBub25lIHRoZSBsZXNzIEFudG9ueSBpcyBkYWlseSBkcm9wcGlue1smKiZdfWcgDQphd2F5IGZhcnRoZXIgZnJvbSBhbGwgdGhhdCBpcyBzb3VuZCwgc3Ryb25nLCBhbmQgZW5kdXJpbmcuIA0KSGlzIGp1ZGdtZW57WyYqJl19dCB3YW5lcyB3aXRoIGhpcyBmb3J0dW5lLiBIZSBjaGFsbGVuZ2VzIHRvIA0KYSBjb21iYXQgd2l0aCBzd29yZHMgaGlzIGNsZWFyLXtbJiomXX1zaWdodGVkIGFuZCB1bmltcGFzc2lvbmVkIA0Kcml2YWwsIGludG8gd2hvc2UgaGFuZHMgdGhlIGVtcGlyZSBvZiB0aGUgd29ybGQge1smKiZdfWlzIGFib3V0IA0KdG8gZmFsbC4gSGUgYWJhbmRvbnMgaGltc2VsZiB0byBhIHNlbnNlbGVzcyBleGFzcGVyYXRpb24gOiANCg0KXCIge1smKiZdfUkgd2lsbCBiZSB0cmVibGUtc2luZXdNLCBoZWFydGVkLCBicmVhdGhlZCwgDQpBbmQgZmlnaHQgbWFsaWNpb3VzbHkgOyBmb3Igd2h7WyYqJl19ZW4gbWluZSBob3VycyANCldlcmUgbmljZSBhbmQgbHVja3ksIG1lbiBkaWQgcmFuc29tIGxpdmVzIA0KT2YgbWUgd2l0aCBqZXN0c3tbJiomXX0gOyBidXQgbm93IElcJ2xsIHNldCBteSB0ZWV0aCwgDQpBbmQgc2VuZCB0byBkYXJrbmVzcyBhbGwgdGhhdCBzdG9wIG1lLlwiIA0KDQp7WyYqJl19SGUgc2VlcyBoaXMgZmF0ZSBjbG9zaW5nIGluIHVwb24gaGltIDsgaGUgd2lsbCBzZWxsIGhpcyANCmxpZmUgZGVhcmx5IDsgYW5kLHtbJiomXX0gbWVhbnRpbWUsIGxpa2UgYSBtYW4gY29uZGVtbmVkIHRvIGV4LSANCmVjdXRpb24gdXBvbiB0aGUgbW9ycm93LCBoZSB3aWxsIGhhe1smKiZdfXZlIG9uZSBtb3JlIG5pZ2h0IA0Kb2YgcGxlYXN1cmU6IA0KDQombHQ7KiBDb21lLCANCkxldFwncyBoYXZlIG9uZSBvdGhlciBnYXVke1smKiZdfXkgbmlnaHQgOiBjYWxsIHRvIG1lIA0KQWxsIG15IHNhZCBjYXB0YWlucyA7IGZpbGwgb3VyIGJvd2xzIG9uY2UgbW9yZSA7IA0KTGV7WyYqJl19dFwncyBtb2NrIHRoZSBtaWRuaWdodCBiZWxsLiANCkNobywgSXQgaXMgbXkgYmlydGhkYXkuXCIgDQoNCkJ1dCBBbnRvbnlcJ3Mgc3RydXtbJiomXX1nZ2xlIGFmdGVyIGJvaXN0ZXJvdXMgbWlydGggcHJvdmVzIGEgDQpwaXRlb3VzIG1vY2tlcnkuIFRoZSBiYW5xdWV0IGlzIGEgdmFse1smKiZdfWVkaWN0aW9uIDsgdGhlIGdyZWF0IA0KbGVhZGVyXCdzIGZvbGxvd2VycyBhcmUgdHJhbnNmb3JtZWQgdG8gd29tZW4gOyBFbm9iYXJie1smKiZdfXVzIA0KdHVybnMgYXdheSBcIm9uaW9uIC1leWVkLlwiIEFudG9ueSBtYWtlcyBvbmUgcnVkZSBlZi0gDQpmb3J0IHRvIGxpZnQgaGltc3tbJiomXX1lbGYgdXAgYWJvdmUgdGhlIGRhbXBzIGFuZCBkZXByZXNzaW9uIA0Kd2hpY2ggaGF2ZSBmYWxsZW4gb24gaGlzIHNwaXJpdCA7IG9ue1smKiZdfWUgZWZmb3J0IHRvIGZsaW5nIGFzaWRlIA0KdGhlIGNvbnNjaW91c25lc3Mgb2YgdGhlIGZhaWx1cmUgb2YgaGlzIGxpZmUsIHdoaWN7WyYqJl19aCB5ZXQgDQpjbGluZ3MgdG8gaGltIDogDQoNClwiIEhvLCBobywgaG8gISANCk5vdyB0aGUgd2l0Y2ggdGFrZSBtZSwgaWYgSSBtZWF7WyYqJl19bnQgaXQgdGh1cyAhIA0KR3JhY2UgZ3JvdyB3aGVyZSB0aG9zZSBkcm9wcyBmYWxsICEgTXkgaGVhcnR5IGZyaWVuZHMsIA0KWW91IHtbJiomXX10YWtlIG1lIGluIHRvbyBkb2xvcm91cyBhIHNlbnNlIDsgDQoNCjIgNzYgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0Ke1smKiZdfQ0KRm9yIEkgc3Bha2UgdG8geW91IGZvciB5b3VyIGNvbWZvcnQgOyBkaWQgZGVzaXJlIHlvdSANClRvIGJ1cm4gdGhpcyBuaWdodCB7WyYqJl19d2l0aCB0b3JjaGVzIDoga25vdywgbXkgaGVhcnRzLCANCkkgaG9wZSB3ZWxsIG9mIHRvLW1vcnJvdyA7IGFuZCB3aWxsIGxlYWQgeXtbJiomXX1vdSANCldoZXJlIHJhdGhlciBJXCdsbCBleHBlY3QgdmljdG9yaW91cyBsaWZlIA0KVGhhbiBkZWF0aCBhbmQgaG9ub3IuIExldFwncyB7WyYqJl19dG8gc3VwcGVyLCBjb21lLCANCkFuZCBkcm93biBjb25zaWRlcmF0aW9uLlwnKiANCg0KSGVyY3VsZXMsIHRoZSBnZW5lcm91cyB3aWV7WyYqJl19bGRlciBvZiBzdHJlbmd0aCwgd2hvbSBBbi0gDQp0b255IGxvdmVkLCBpcyBkZXBhcnRpbmcgZnJvbSBoaW07IG11c2ljIGhlYXJkIHtbJiomXX1hdCBtaWQtIA0KbmlnaHQgYnkgdGhlIHNlbnRpbmVscyB3YXJuIHRoZW0gb2YgdGhlIHdpdGhkcmF3YWwgb2YgDQp0aGUgZmF2b3Ige1smKiZdfW9mIHRoZSBkaXZpbml0eS4gRXhwZXJpZW5jZSwgbWFuaG9vZCwgaG9ub3IsIA0KbW9yZSBhbmQgbW9yZSB2aW9sYXRlIHRoZW1zZWx7WyYqJl19dmVzIGluIEFudG9ueS4gQ2xlb3BhLSANCnRyYVwncyBzaGlwIHR1cm5zIHRoZSBydWRkZXIgYW5kIGZsaWVzIGZyb20gdGhlIHNlYS17WyYqJl19ZmlnaHQuIA0KQW50b255LCByZWdhcmRsZXNzIG9mIGZvcnR1bmUgYW5kIG9mIHNoYW1lLCANCg0KXCIgQ2xhcHMgb24gdGhlIHNlYS17WyYqJl19d2luZyBhbmQsIGxpa2UgYSBkb3RpbmcgbWFsbGFyZCwgDQpMZWF2aW5nIHRoZSBmaWdodCBpbiBoZWlnaHQsIGZsaWVzIGFmdGVyIHtbJiomXX1oZXIuXCcqIA0KDQpIZSBpcywgaW5kZWVkLCB0aGUgcnVpbiBvZiBDbGVvcGF0cmFcJ3MgbiZndDthZ2ljIDsgeWV0IGhlIGlzIA0KYSB7WyYqJl19bG9yZGx5IGFuZCBlbWluZW50IHJ1aW4gOyBhbmQgYmVmb3JlIGFsbCBzaW5rcyBpbiBibGFjay0gDQpuZXNzIGFuZCBhc2hlcyB0aHtbJiomXX1lcmUgaXMgYSBsYXN0IGxlYXBpbmctdXAgb2YgdGhlIGZsYW1lIG9mIGhpcyANCmZvcnR1bmUsIGJ5IHdoaWNoIHdlIHNlZSB0aGUge1smKiZdfWZpZ3VyZSBvZiBBbnRvbnksIHN0aWxsIG1hLSANCmplc3RpYywgcGF0aGV0aWNhbGx5IGlsbHVtaW5hdGVkIGJ5IGEgZ2xvcnkgdGh7WyYqJl19YXQgcGFzc2VzIGF3YXkuIA0KSGUgaXMgbWFkZSBnbGFkIHdpdGggb25lIGhvdXJcJ3MgdmljdG9yeS4gVGhvdWdoIGRlLSANCnNlcnR7WyYqJl19ZWQgYnkgRW5vYmFyYnVzLCBTY2FydXMgaGFzIGJlZW4gZmFpdGhmdWwsIGFuZCBpcyBhdCANCmhpcyBzaWRlLCByZWQgZnJvbSBob3tbJiomXX1ub3JhYmxlIHdvdW5kcyA6IA0KDQpcIiBHaXZlIG1lIHRoeSBoYW5kIDsgDQpcXF5CYXRlVCBDbGVvcGF0cmFeIGF0dGVuZGVkLlwnXSANe1smKiZdfQpUbyB0aGlzIGdyZWF0IGZhaXJ5IElcJ2xsIGNvbW1lbmQgdGh5IGFjdHMsIA0KDQpNYWtlIGhlciB0aGFua3MgYmxlc3MgdGhlZS4ge1smKiZdfeKAlCBbVG8gQ2xlby5cJ10gdGhvdSBkYXkgb1wnIHRoZSB3b3JsZCwgDQpDaGFpbiBtaW5lIGFybVwnZCBuZWNrIDsgbGVhcCB0aG91LCB7WyYqJl19YXR0aXJlIGFuZCBhbGwsIA0KVGhyb3VnaCBwcm9vZiBvZiBoYXJuZXNzIHRvIG15IGhlYXJ0LCBhbmQgdGhlcmUgDQpSaWRlIG9uIHtbJiomXX10aGUgcGFudHMgdHJpdW1waGluZyAhIA0KDQpDbGVvLiBMb3JkIG9mIGxvcmRzICEgDQoNCmluZmluaXRlIHZpcnR1ZSwgY29tZXN0e1smKiZdfSB0aG91IHNtaWxpbmcgZnJvbSANClRoZSB3b3JsZFwncyBncmVhdCBzbmFyZSB1bmNhdWdodCA/IA0KDQpBbnQuIE15IG5pZ2h0aW5ne1smKiZdfWFsZS4gDQoNCldlIGhhdmUgYmVhdCB0aGVtIHRvIHRoZWlyIGJlZHMuIFdoYXQsIGdpcmwgISB0aG91Z2ggZ3JheSANClBvIHNvbWV7WyYqJl19dGhpbmcgbWluZ2xlIHdpdGggb3VyIHlvdW5nZXIgYnJvd24uIA0KWWV0IGhhXCcgd2UgYSBicmFpbiB0aGF0IG5vdXJpc2hlcyBvdXJ7WyYqJl19IG5lcnZlcywgDQpBbmQgY2FuIGdldCBnb2FsIGZvciBnb2FsIG9mIHlvdXRoLlwiIA0KDQpUaGUgUm9tYW4gUGxheXMuIDJcJ2pcJ2ogDXtbJiomXX0KDQpNZWFzdXJlIHRoaW5ncyBvbmx5IGJ5IHRoZSBzZW5zdW91cyBpbWFnaW5hdGlvbiwgYW5kIA0KZXZlcnl0aGluZyBpbiB0aGUge1smKiZdfXdvcmxkIG9mIE9yaWVudGFsIHZvbHVwdHVvdXNuZXNzLCBpbiANCndoaWNoIEFudG9ueSBsaWVzIGJld2l0Y2hlZCwgaXMgZ3JlYXR7WyYqJl19LiBUaGUgcGFzc2lvbiBhbmQgDQp0aGUgcGxlYXN1cmUgb2YgdGhlIEVneXB0aWFuIHF1ZWVuIGFuZCBvZiBoZXIgcGFyYS0gDQptb3tbJiomXX11ciB0b2lsIGFmdGVyIHRoZSBpbmZpbml0ZS4gVGhlIEhlcmN1bGVhbiBzdHJlbmd0aCBvZiANCkFudG9ueSwgdGhlIGdyYW5kZXVye1smKiZdfSBhbmQgcHJvZGlnYWwgcG93ZXIgb2YgaGlzIG5hdHVyZSwgDQppbmZsYXRlIGFuZCBidW95IHVwIHRoZSBpbWFnaW5hdGlvbiBvZiB7WyYqJl19Q2xlb3BhdHJhIDogDQoNClwiIFRoZSBkZW1pLSBBdGxhcyBvZiB0aGlzIGVhcnRoLCB0aGUgYXJtIA0KQW5kIGJ1cmdvbmV0IG9mIG17WyYqJl19ZW4uXCIgDQoNCldoaWxlIGhlIGlzIGFic2VudCwgQ2xlb3BhdHJhIHdvdWxkLCBpZiBpdCB3ZXJlIHBvc3NpYmxlLCANCmFubmloaWx7WyYqJl19YXRlIHRpbWUg4oCUIA0KDQpcIiBDaGFybWlhbi4gV2h5LCBtYWRhbSA/IA0KDQpDbGVvLiBUaGF0IEkgbWlnaHQgc2xlZXAgb3V0IHR7WyYqJl19aGlzIGdyZWF0IGdhcCBvZiB0aW1lLiANCk15IEFudG9ueSBpcyBhd2F5LlwiIA0KDQpXaGVuIEFudG9ueSBkaWVzLCB0aGUgb25seSB7WyYqJl19ZW1pbmVudCB0aGluZyBpbiB0aGUgZWFydGggDQppcyBnb25lLCBhbmQgYSB1bml2ZXJzYWwgZmxhdG5lc3MsIGFuIGVxdWFsaXR5IHtbJiomXX1vZiBpbnNpZ25pZmktIA0KY2FuY2VzLCByZW1haW5zIDogDQoNClwiIFlvdW5nIGJveXMgYW5kIGdpcmxzIA0KQXJlIGxldmVsIG5vd3tbJiomXX0gd2l0aCBtZW4gOyB0aGUgb2RkcyBpcyBnb25lLCANCkFuZCB0aGVyZSBpcyBub3RoaW5nIGxlZnQgcmVtYXJrYWJsZSANCkJlbmVhe1smKiZdfXRoIHRoZSB2aXNpdGluZyBtb29uLlwiIA0KDQpXZSBkbyBub3QgbWlzdGFrZSB0aGlzIGZlZWxpbmcgb2YgQ2xlb3BhdHJhIHRvd2Fye1smKiZdfWRzIA0KQW50b255IGZvciBsb3ZlOyBidXQgaGUgaGFzIGJlZW4gZm9yIGhlciAod2hvIGhhZCANCmtub3duIENhZXNhciBhbmQgUG97WyYqJl19bXBleSkgdGhlIHN1cHJlbWUgc2Vuc2F0aW9uLiBTaGUgDQppcyBuZWl0aGVyIGZhaXRoZnVsIHRvIGhpbSBub3IgZmFpdGhsZXNzIHtbJiomXX07IGluIGhlciBjb21wbGV4IA0KbmF0dXJlLCBiZW5lYXRoIGVhY2ggZm9sZCBvciBsYXllciBvZiBzaW5jZXJpdHkgbGllcyBvbmUge1smKiZdfW9mIA0KaW5zaW5jZXJpdHksIGFuZCB3ZSBjYW5ub3QgdGVsbCB3aGljaCBpcyB0aGUgbGFzdCBhbmQgaW4tIA0KbmVybW9zdC4gSGV7WyYqJl19ciBpbWFnaW5hdGlvbiBpcyBzdGltdWxhdGVkIGFuZCBub3VyaXNoZWQgDQpieSBBbnRvbnlcJ3MgcHJlc2VuY2UuIEFuZCBoZSwgaW57WyYqJl19IGhpcyB0dXJuLCBmaW5kcyBpbiB0aGUgDQpiZWF1dHkgYW5kIHdpdGNoY3JhZnQgb2YgdGhlIEVneXB0aWFuIHNvbWV0aGluZyBub3tbJiomXX0gbGVzcyANCmluY29tbWVuc3VyYWJsZSBhbmQgaW5jb21wcmVoZW5zaWJsZS4gWWV0IG5vIG9uZSANCmZlbHQgbW9yZSBwcm9mb3Vue1smKiZdfWRseSB0aGFuIFNoYWtzcGVyZSDigJQgYXMgaGlzIFNvbm5ldHMgDQphYnVuZGFudGx5IHRlc3RpZnkg4oCUIHRoYXQgdGhlIGdsb3J7WyYqJl19eSBvZiBzdHJlbmd0aCBhbmQgb2YgDQpiZWF1dHkgaXMgc3ViamVjdCB0byBsaW1pdCBhbmQgdG8gdGltZS4gV2hhdCBoZSB3b3VsZHtbJiomXX0gDQpzZWVtIHRvIHNheSB0byB1cyBpbiB0aGlzIHBsYXksIG5vdCBpbiB0aGUgbWFubmVyIG9mIGEgDQoNCjI3OCBTaGFrc3BlcmUge1smKiZdfeKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQpkb2N0cmluYWlyZSBvciBhIG1vcmFsaXN0LCBidXQgd2hvbGx5IGFzIGFuIGFydGlzdCx7WyYqJl19IGlzIHRoYXQgDQp0aGlzIHNlbnN1b3VzIGluZmluaXRlIGlzIGJ1dCBhIGRyZWFtLCBhIGRlY2VpdCwgYSBzbmFyZS4gDQpUaGUgbXtbJiomXX1pc2VyYWJsZSBjaGFuZ2UgY29tZXMgdXBvbiBBbnRvbnkuIFRoZSByZS0gDQptb3JzZWxlc3MgcHJhY3RpY2Ugb2YgQ2xlb3BhdHJhe1smKiZdfSB1cG9uIGhpcyBoZWFydCBoYXMgZG9uZSANCmhpbSB0byBkZWF0aC4gQW5kIGFtb25nIHRoaW5ncyB3aGljaCB0aGUgYmFycmVuIA17WyYqJl19CndvcmxkIG9mZmVycyB0byB0aGUgUXVlZW4gc2hlIG5vdyBmaW5kcyBkZWF0aCDigJQgYSBwYWluLSANCmxlc3MgZGVhdGjigJQgN3tbJiomXX10aGUgbGVhc3QgaGF0ZWZ1bC4gU2hha3NwZXJlLCBpbiBoaXMgaGlnaCBpbS0gDQpwYXJ0aWFsaXR5IHRvIGZhY3QsIGRlbmllcyBue1smKiZdfW9uZSBvZiB0aGUgZ2xvcnkgb2YgdGhlIGx1c3Qgb2YgDQp0aGUgZXllIGFuZCB0aGUgcHJpZGUgb2YgbGlmZS4gSGUgY29tcGVscyB7WyYqJl19dXMgdG8gYWMtIA0Ka25vd2xlZGdlIHRoZXNlIHRvIHRoZSB1dG1vc3QuIEJ1dCBoZSBhZGRzIHRoYXQgdGhlcmUgDQppcyBhbm90aHtbJiomXX1lciBkZW1vbnN0cmFibGUgZmFjdCBvZiB0aGUgd29ybGQgd2hpY2ggdGVzdHMgdGhlIA0KdmlzaWJsZSBwb21wIG9mIHRoZSBlYXJ0e1smKiZdfWgsIGFuZCB0aGUgc3BsZW5kb3Igb2Ygc2Vuc3VvdXMgDQpwYXNzaW9uLCBhbmQgZmluZHMgdGhlbSB3YW50aW5nLiBUaGUgZ2xvcnl7WyYqJl19IG9mIHRoZSByb3lhbCANCmZlc3RpdmFsIGlzIG5vdCBkdWxsZWQgYnkgU2hha3NwZXJlIG9yIGRpbWluaXNoZWQgOyBidXQsIA0KYXtbJiomXX1sc28sIGhlIHNob3dzIHVzLCBpbiBsZXR0ZXJzIG9mIGZsYW1lLCB0aGUgaGFuZHdyaXRpbmcgdXBvbiANCnRoZSB3YWxsLiANCg0Ke1smKiZdfVRoaXMgU2hha3NwZXJlIGVmZmVjdHMsIGhvd2V2ZXIsIG5vdCBtZXJlbHkgb3IgY2hpZWZseSANCmJ5IG1lYW5zIG9mIGEgY2F0YXN7WyYqJl19dHJvcGhlLiBIZSBkb2VzIG5vdCBkZWFsIGluIHByZWNlcHRzIA0Kb3IgbW9yYWwgcmVmbGVjdGlvbnMsIG9yIHByYWN0aWNhbCBhcHtbJiomXX1wbGljYXRpb25zLiBIZSBpcyBhbiANCmFydGlzdCwgYnV0IGFuIGFydGlzdCB3aG8gZ3Jhc3BzIHRydXRoIGxhcmdlbHkuIFRoZSBle1smKiZdfXRoLSANCmljYWwgdHJ1dGggbGl2ZXMgYW5kIGJyZWF0aGVzIGluIGV2ZXJ5IHBhcnQgb2YgaGlzIHdvcmsgYXMgDQphcnRpc3QsIG57WyYqJl19byBsZXNzIHRoYW4gdGhlIHRydXRoIHRvIHRoaW5ncyBzZW5zaWJsZSBhbmQgcHJlLSANCnNlbnRhYmxlIHRvIHRoZSBpbWFnaW5hdHtbJiomXX1pb24uIEF0IGV2ZXJ5IG1vbWVudCBpbiB0aGlzIA0KcGxheSB3ZSBhc3Npc3QgYXQgYSBjYXRhc3Ryb3BoZSDigJQgdGhlIGRlY2xpe1smKiZdfW5lIG9mIGEgbG9yZGx5IA0KbmF0dXJlLiBBdCBldmVyeSBtb21lbnQgd2UgYXJlIG5lY2Vzc2FyaWx5IGF3YXJlIG9mIA0KdGhlIGd7WyYqJl19cm9zcywgdGhlIG1lYW4sIHRoZSBkaXNvcmRlcmx5IHdvbWFuaG9vZCBpbiBDbGVvLSANCnBhdHJhLCBubyBsZXNzIHRoYW4gb2YgdHtbJiomXX1oZSB3aXRjaGVyeSBhbmQgd29uZGVyIHdoaWNoIGV4LSANCmNpdGUgYW5kIGNoYXJtIGFuZCBzdWJkdWUuIFdlIHNlZSBoZXIgYSBke1smKiZdfWlzc2VtYmxlciwgDQphIHRlcm1hZ2FudCwgYSBjb3dhcmQgOyBhbmQgeWV0IFwiIHZpbGVzdCB0aGluZ3MgYmVjb21lIA0KaGVyLlwiIHtbJiomXX1UaGUgcHJlc2VuY2Ugb2YgYSBzcGlyaXQgb2YgSVwnaWZlIGluIENsZW9wYXRyYSwgDQpxdWljaywgc2hpZnRpbmcsIG11bHRpdHVkaXtbJiomXX1ub3VzLCBpbmNhbGN1bGFibGUsIGZhc2NpbmF0ZXMgdGhlIA0KZXllLCBhbmQgd291bGQsIGlmIGl0IGNvdWxkLCBsdWxsIHRoZSBte1smKiZdfW9yYWwgc2Vuc2UgdG8gc2xlZXAsIA0KYXMgdGhlIHNlYSBkb2VzIHdpdGggaXRzIGVuZGxlc3Mgc25ha2UtbGlrZSBtb3Rpb25zIGl7WyYqJl19biB0aGUgDQpCdW4gYW5kIHNoYWRlLiBTaGUgaXMgYSB3b25kZXIgb2YgdGhlIHdvcmxkLCB3aGljaCB3ZSANCndvdWxkIHRyYXZlbHtbJiomXX0gZmFyIHRvIGxvb2sgdXBvbi4gRW5vYmFyYnVzLCB3aGlsZSBjb25yIA0KDQpUaGUgUm9tYW4gUGxheXMuIDI3OSANCg0KdGVtcHR1e1smKiZdfW91c2x5IGlyb25pY2FsLCBhbmQgbG9va2luZyB0aHJvdWdoIGhlciBtYW5pZmVzdCANCnByYWN0aWNlIHVwb24gTWFyayBBbnRvbnl7WyYqJl19IHdpdGggcGVyZmVjdCBjbGVhcm5lc3Mgb2YgdmlzLSANCmlvbiwgYWRtaXRzIGFsc28gdGhhdCBzaGUgcmVwYXlzIHRoZSBjb3N0IHtbJiomXX1vZiBpbnNwZWN0aW9uLiANCg0KKuKAoirigKIgQXJkLiBTaGUgaXMgY3VubmluZyBwYXN0IG1hblwncyB0aG91Z2h0LiANCg0KRW1vLntbJiomXX0gQWxhY2ssIHNpciwgbm8gOyBoZXIgcGFzc2lvbnMgYXJlIG1hZGUgb2Ygbm90aGluZyBidXQgdGhlIGomYW1wO25lc3QgcGFydCANe1smKiZdfQpvZiBwdXJlIGxvdmUgOyB3ZSBjYW5ub3QgY2FsbCBoZXIgd2luZHMgYW5kIHdhdGVycywgc2lnaHMgYW5kIHRlYXJzIDsgdGhleSB7WyYqJl19DQphcmUgZ3JlYXRlciBzdG9ybXMgYW5kIHRlbXBlc3RzIHRoYW4gYWxtYW5hY3MgY2FuIHJlcG9ydCA7IHRoaXMgY2Fubm90IGJlIHtbJiomXX0NCmN1bm5pbmcgaW4gaGVyIOKAlCBpZiBpdCBiZSwgc2hlIG1ha2VzIGEgc2hvd2VyIG9mIHJhaW4gYXMgd2VsbCBhcyBKb3ZlLiANe1smKiZdfQoNCkFudC4gV291bGQgSSBoYWQgbmV2ZXIgc2VlbiBoZXIgISANCg0KRW5qby4gMCwgc2lyLCB5b3UgaGFkIHRoZW4gbGVmdCB1bnN7WyYqJl19ZWVuIGEgd29uZGVyZnVsIHBpZWNlIG9mIHdvcmsgOyB3aGljaCANCm5vdCB0byBoYXZlIGJlZW4gYmxlc3Qgd2l0aGFsIHdvdWxkIHtbJiomXX1oYXZlIGRpc2NyZWRpdGVkIHlvdXIgdHJhdmVsLlwiIA0KDQpcIiBHcmVhdCBjcmltZXMsIHNwcmluZ2luZyBmcm9tIGhpZ2ggcGFzc2l7WyYqJl19b25zLCBncmFmdGVkIG9uIA0KaGlnaCBxdWFsaXRpZXMsIGFyZSB0aGUgbGVnaXRpbWF0ZSBzb3VyY2Ugb2YgdHJhZ2ljIHBvZXRyeXtbJiomXX0uIA0KQnV0IHRvIG1ha2UgdGhlIGV4dHJlbWUgb2YgbGl0dGxlbmVzcyBwcm9kdWNlIGFuIGVmZmVjdCANCmxpa2UgZ3JhbmRldXIge1smKiZdfeKAlCB0byBtYWtlIHRoZSBleGNlc3Mgb2YgZnJhaWx0eSBwcm9kdWNlIGFuIA0KZWZmZWN0IGxpa2UgcG93ZXIg4oCUIHRvIGhlYXB7WyYqJl19IHVwIHRvZ2V0aGVyIGFsbCB0aGF0IGlzIG1vc3QgDQp1bnN1YnN0YW50aWFsLCBmcml2b2xvdXMsIHZhaW4sIGNvbnRlbXB0aWJsZXtbJiomXX0sIGFuZCB2YXJpYWJsZSwgDQp0aWxsIHRoZSB3b3J0aGxlc3NuZXNzIGJlIGxvc3QgaW4gdGhlIG1hZ25pdHVkZSwgYW5kIGEgDQpze1smKiZdfWVuc2Ugb2YgdGhlIHN1YmxpbWUgc3ByaW5nIGZyb20gdGhlIHZlcnkgZWxlbWVudHMgb2YgDQpsaXR0bGVuZXNzIOKAlCB0byBkbyB7WyYqJl19dGhpcyBiZWxvbmdlZCBvbmx5IHRvIFNoYWtzcGVyZSwgdGhhdCANCndvcmtlciBvZiBtaXJhY2xlcy4gQ2xlb3BhdHJhIGlzIGEgYntbJiomXX1yaWxsaWFudCBhbnRpdGhlc2lzLCBhIA0KY29tcG91bmQgb2YgY29udHJhZGljdGlvbnMsIG9mIGFsbCB0aGF0IHdlIG1vc3QgaGF0e1smKiZdfWUsIHdpdGggDQp3aGF0IHdlIG1vc3QgYWRtaXJlLlwnXiBcIl4gDQoNCklmIHdlIHdvdWxkIGtub3cgaG93IGFuIGFydGlzdCBkZXZvdHtbJiomXX1lZCB0byBoaWdoIG1vcmFsIA0KaWRlYWxzIHdvdWxkIHRyZWF0IHN1Y2ggYSBjaGFyYWN0ZXIgYXMgdGhhdCBvZiB0aGUgZmxlc2hse1smKiZdfXkgDQplbmNoYW50cmVzcywgd2UgaGF2ZSBidXQgdG8gdHVybiB0byB0aGUgU2Ftc29uIEFnby0gDQpuaXN0ZXMuIE1pbHRvbiBleHB7WyYqJl19b3NlcyBEYWxpbGEgb25seSB0byBkcml2ZSBoZXIgZXhwbG9zaXZlLSANCmx5IGZyb20gdGhlIHN0YWdlLiBTaGFrc3BlcmUgd291bHtbJiomXX1kIGhhdmUgc3R1ZGllZCBoZXIgDQp3aXRoIGVxdWFsIGRlbGlnaHQgYW5kIGRldGVzdGF0aW9uLiBZZXQgdGhlIHNldmVyaXR5IG9me1smKiZdfSANClNoYWtzcGVyZSwgaW4gaGlzIG93biBkcmFtYXRpYyBmYXNoaW9uLCBpcyBhcyBhYnNvbHV0ZSBhcyANCnRoYXQgb2YgTWlsdG97WyYqJl19bi4gQW50b255IGlzIGRlYWQuIFRoZSBzdXByZW1lIHNlbnNhdGlvbiANCm9mIENsZW9wYXRyYVwncyBsaWZlIGlzIGVuZGVkLCBhbmR7WyYqJl19IHNoZSBzZWVtcywgaW4gdGhlIGZpcnN0IA0KDQoqIE1ycy4gSmFtZXNvbiwgXCJDaGFyYWN0ZXJpc3RpY3Mgb2YgV29tZW4sKiogdm97WyYqJl19bC4gaWkuLCBwLiAxMjIsIGVkLiAxODU4LiANClRoZSBzdHVkeSBvZiBDbGVvcGF0cmFcJ3MgY2hhcmFjdGVyIGlzIGFtb25nIHRoZSB7WyYqJl19YmVzdCBvZiB0aGlzIHdyaXRlclwncyBjcml0LSANCmljaXNtcyBvZiBTaGFrc3BlcmUuIA0KDQoyIDhvIFNoYWtzcGVyZSDigJQgSGl7WyYqJl19cyBNaW5kIGFuZCBBcnQuIA0KDQpwYXNzaW9uYXRlIGJ1cnN0IG9mIGNoYWdyaW4sIHRvIGhhdmUgbm8gbG9uZ2VyIGludGVyZXN0IHtbJiomXX1pbiANCmFueXRoaW5nIGJ1dCBkZWF0aC4gQnktYW5kLWJ5IHNoZSBpcyBpbiB0aGUgcHJlc2VuY2Ugb2YgDQpDYWVzYXIsIGFuZCBoe1smKiZdfWFuZHMgb3ZlciB0byBoaW0gYSBkb2N1bWVudCwgdGhlIFwiIGJyaWVmIG9mIA0KbW9uZXksIHBsYXRlLCBhbmQgamV3ZWxzIFwiIG9mIHtbJiomXX13aGljaCBzaGUgaXMgcG9zc2Vzc2VkLiBTaGUgDQpjYWxscyBvbiBoZXIgdHJlYXN1cmVyLCBTZWxldWN1cywgdG8gdm91Y2ggZm9ye1smKiZdfSBpdHMgYWNjdXJhY3kgOiANCg0KXCIgU3BlYWsgdGhlIHRydXRoLCBTZWxldWN1cy4gDQoNCkJlbC4gTWFkYW0sIA0KSSBoYWQgcmF0e1smKiZdfWhlciBzZWFsIG15IGxpcHMgdGhhbiB0byBteSBwZXJpbCANClNwZWFrIHRoYXQgd2hpY2ggaXMgbm90LiANCg0KQ2xlbywgV2hhdCB7WyYqJl19aGF2ZSBJIGtlcHQgYmFjayA/IA0KDQpCZWwuIEVub3VnaCB0byBwdXJjaGFzZSB3aGF0IHlvdSBoYXZlIG1hZGUga25vd24uIA0KDXtbJiomXX0KQ2Nlcy4gTmF5LCBibHVzaCBub3QsIENsZW9wYXRyYSA7IEkgYXBwcm92ZSANCllvdXIgd2lzZG9tIGluIHRoZSBkZWVkLlwiIA0KDXtbJiomXX0KSW4gaGVyIGRlc3BhaXIsIHdoaWxlIGRlY2xhcmluZyB0aGF0IHNoZSB3aWxsIGRpZSBcIiBpbiB0aGUgDQpoaWdoIFJvbWFuIGZhc3tbJiomXX1oaW9uLFwiIENsZW9wYXRyYSB5ZXQgY2xpbmdzIHRvIGhlciBwbGF0ZSANCmFuZCBqZXdlbHMuIEFuZCB0aGUgY29sZCBhcHByb3ZhbHtbJiomXX0gb2YgQ2Flc2FyLCB3aG8gbmV2ZXIgDQpnYWlucyB0aGUgcG93ZXIgd2hpY2ggcGFzc2lvbiBzdXBwbGllcywgbm9yIGxvc2VzIHRoe1smKiZdfWUgDQpwb3dlciB3aGljaCBwYXNzaW9uIHdpdGhkcmF3cyBhbmQgZGlzc2lwYXRlcyDigJQgdGhlIGFwLSANCnByb3ZhbCBvZiBDYWV7WyYqJl19c2FyIGlzIGNvbmZpcm1lZCBieSB0aGUganVkZ21lbnQgb2YgdGhlIA0Kc3BlY3RhdG9yLiBJdCBpcyByaWdodCBhbmQgbmF0dXJhbHtbJiomXX0gdGhhdCBDbGVvcGF0cmEgc2hvdWxkIA0KbG92ZSBoZXIgamV3ZWxzLCBhbmQgcHJhY3Rpc2UgYSBmcmF1ZCB1cG9uIGhlciBjb25xe1smKiZdfXVlcm9yLiANCg0KSVNUb3IgaXMgaGVyIGRlYXRoIHF1aXRlIGluIHRoYXQgXCIgaGlnaCBSb21hbiBmYXNoaW9uIFwiIA0Kd2hpY2ggc3tbJiomXX1oZSBoYWQgYW5ub3VuY2VkLiBTaGUgZHJlYWRzIHBoeXNpY2FsIHBhaW4sIGFuZCANCmlzIGZlYXJmdWwgb2YgdGhlIHJhdmFnZSB3e1smKiZdfWhpY2ggZGVhdGggbWlnaHQgY29tbWl0IHVwb24gDQpoZXIgYmVhdXR5O14gdW5kZXIgaGVyIHBoeXNpY2lhblwncyBkaXJlY3Rpb24se1smKiZdfSBzaGUgaGFzIA0KXCIgcHVyc3VlZCBjb25jbHVzaW9ucyBpbmZpbml0ZSBvZiBlYXN5IHdheXMgdG8gZGllLlwiIEFuZCANCm5vdyB0b3tbJiomXX0gZGllIHBhaW5sZXNzbHkgaXMgYmV0dGVyIHRoYW4gdG8gZ3JhY2UgdGhlIHRyaXVtcGggDQpvZiBPY3Rhdml1cy4gSW4gaGVyIGRle1smKiZdfWF0aCB0aGVyZSBpcyBzb21ldGhpbmcgZGF6emxpbmcgDQphbmQgc3BsZW5kaWQsIHNvbWV0aGluZyBzZW5zdW91cywgc29tZXRoaW57WyYqJl19ZyB0aGVhdHJpY2FsLCANCnNvbWV0aGluZyBtYWduaWZpY2VudGx5IGNvcXVldHRpc2gsIGFuZCBub3RoaW5nIHN0ZXJuLiANCg0KKntbJiomXX0gKlwnIFNoYWxsIHRoZXkgaG9pc3QgbWUgdXAsIA0KDQpBbmQgc2hvdyBtZSB0byB0aGUgc2hvdXRpbmcgdmFybGV0cnkgDQpPZiBjZXtbJiomXX1uc3VyaW5nIFJvbWUgPyBSYXRoZXIgYSBkaXRjaCBpbiBFZ3lwdCANCkJlIGdlbnRsZSBncmF2ZSB1bnRvIG1lICEgcmF0aGVyIG9ue1smKiZdfSBOaWx1c1wnIG11ZCANCkxheSBtZSBzdGFyayBuYWtlZCwgYW5kIGxldCB0aGUgd2F0ZXItZmxpZXMgDQpCbG93IG1lIGludG8gYWJoe1smKiZdfW9ycmluZy5cIiANCg0KVGhlIFJvbWFuIFBsYXlzLiAyODEgDQoNCllldCBTaGFrc3BlcmUgZG9lcyBub3QgcGxheSB0aGUgcnVkZSBte1smKiZdfW9yYWxpc3QgOyBoZSBuZWVkcyANCm5vIGNob3J1cyBvZiBJc3JhZWxpdGUgY2FwdGl2ZXMgdG8gdXR0ZXIgaW52ZWN0aXZlIGFnYWl7WyYqJl19bnN0IA0KdGhpcyBEYWxpbGEuIExldCBoZXIgcG9zc2VzcyBhbGwgaGVyIGdyYW5kZXVyIGFuZCBoZXIgDQpjaGFybS4gU2hha3NwZXtbJiomXX1yZSBjYW4gc2hvdyB1cyBtb3JlIGV4Y2VsbGVudCB0aGluZ3MgDQp3aGljaCB3aWxsIG1ha2UgdXMgcHJvb2YgYWdhaW5zdCB0aGUge1smKiZdfWZhc2NpbmF0aW9uIG9mIHRoZXNlbyANCg0KXCIgQ2xlby4gR2l2ZSBtZSBteSByb2JlLCBwdXQgb24gbXkgY3Jvd24gOyBJIGhhdmUge1smKiZdfQ0KSW1tb3J0YWwgbG9uZ2luZ3MgaW4gbWUgOiBub3cgbm8gbW9yZSANClRoZSBqdWljZSBvZiBFZ3lwdFwncyBncmFwZSBzaGFsbCBte1smKiZdfW9pc3QgdGhpcyBsaXAgOyDigJQgDQpZYXJlLCB5YXJlLCBnb29kIElyYXMgOyBxdWljay4g4oCUIE1ldGhpbmtzIEkgaGVhciANCkF7WyYqJl19bnRvbnkgY2FsbCA6IEkgc2VlIGhpbSByb3VzZSBoaW1zZWxmIA0KVG8gcHJhaXNlIG15IG5vYmxlIGFjdCA7IEkgaGVhciBoaW0gbXtbJiomXX1vY2sgDQpUaGUgbHVjayBvZiBDYWVzYXIsIHdoaWNoIHRoZSBnb2RzIGdpdmUgbWVuIA0KVG8gZXhjdXNlIHRoZWlyIGFmdGVyLXdye1smKiZdfWF0aC4gSHVzYmFuZCwgSSBjb21lIDogDQpOb3cgdG8gdGhhdCBuYW1lIG15IGNvdXJhZ2UgcHJvdmUgbXkgdGl0bGUgISANCkkgYW17WyYqJl19IGZpcmUgYW5kIGFpciA7IG15IG90aGVyIGVsZW1lbnRzIA0KSSBnaXZlIHRvIGJhc2VyIGxpZmUuIOKAlCBTbyA7IGhhdmUgeW91IHtbJiomXX1kb25lID8gDQpDb21lLCB0aGVuLCBhbmQgdGFrZSB0aGUgbGFzdCB3YXJtdGggb2YgbXkgbGlwcy4gDQpGYXJld2VsbCwga2luZCBDe1smKiZdfWhhcm1pYW4uIOKAlCBJcmFzLCBsb25nIGZhcmV3ZWxsLiANCg0KXFxLbWU4IHRoZW0sIElyYXMgZmFsbHMgYW5kIGRpZXMuIA0KSGF2e1smKiZdfWUgSSB0aGUgYXNwaWMgaW4gbXkgbGlwcyA/IERvc3QgZmFsbCA/IA0KSWYgdGhvdSBhbmQgbmF0dXJlIGNhbiBzbyBnZW50bHkgcGF7WyYqJl19cnQsIA0KVGhlIHN0cm9rZSBvZiBkZWF0aCBpcyBhcyBhIGxvdmVyXCdzIHBpbmNoLCANCldoaWNoIGh1cnRzIGFuZCBpcyBkZXNpcmV7WyYqJl19ZC4gRG9zdCB0aG91IGxpZSBzdGlsbCA/IA0KSWYgdGh1cyB0aG91IHZhbmlzaGVzdCwgdGhvdSB0ZWxsXCdzdCB0aGUgd29ybGQgDQp7WyYqJl19SXQgaXMgbm90IHdvcnRoIGxlYXZlLXRha2luZy4gDQoNCkNoYXIuIERpc3NvbHZlLCB0aGljayBjbG91ZCBhbmQgcmFpbiwgdGhhdHtbJiomXX0gSSBtYXkgc2F5IA0KVGhlIGdvZHMgdGhlbXNlbHZlcyBkbyB3ZWVwICEgDQoNCkNsZW8sIFRoaXMgcHJvdmVzIG1lIGJhc2UgOiANe1smKiZdfQoNCklmIHNoZSBmaXJzdCBtZWV0IHRoZSBjdXJsZWQgQW50b255LCANCkhlXCdsbCBtYWtlIGRlbWFuZCBvZiBoZXIsIGFuZCBzcGVue1smKiZdfWQgdGhhdCBraXNzIA0KV2hpY2ggaXMgbXkgaGVhdmVuIHRvIGhhdmUuIENvbWUsIHRob3UgbW9ydGFsIHdyZXRjaCAlIA0KWyBUbyB7WyYqJl19YW4gYXNwXiB3aGljaCBzaGUgYXBwbGllcyB0byBoZXIgYnJlYXN0LCANCldpdGggdGh5IHNoYXJwIHRlZXRoIHRoaXMga25vdCBpbntbJiomXX10cmluc2ljYXRlIA0KT2YgbGlmZSBhdCBvbmNlIHVudGllIDogcG9vciB2ZW5vbW91cyBmb29sLCANCkJlIGFuZ3J5IGFuZCBkZXNwe1smKiZdfWF0Y2guIDAsIGNvdWxkc3QgdGhvdSBzcGVhaywgDQpUaGF0IEkgbWlnaHQgaGVhciB0aGVlIGNhbGwgZ3JlYXQgQ2Flc2FyIGFzcyB7WyYqJl19DQpVbnBvbGljaWVkICEgDQoNCkNoYXIsIGVhc3Rlcm4gc3RhciAhIA0KDQpDbGVvLiBQZWFjZSwgcGVhY2UgISANCg0KRG9zdCB0aHtbJiomXX1vdSBub3Qgc2VlIG15IGJhYnkgYXQgbXkgYnJlYXN0IA0KVGhhdCBzdWNrcyB0aGUgbnVyc2UgdGlzbGVlcCA/IA0KDQpDaGFyKiAwe1smKiZdfSwgYnJlYWsgISAwLCBicmVhayAhIA0KDQoyODIgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KQ2xlby4gQXMgc3d7WyYqJl19ZWV0IGFzIGJhbG0sIGFzIHNvZnQgYXMgYWlyLCBhcyBnZW50bGUg4oCUIA0KTyBBbnRvbnkgISDigJQgTmF5LCBJIHdpbGwgdGFrZXtbJiomXX0gdGhlZSB0b28gOiANCg0Ke15BcHBseWluZyBhbm90aGVyIGFzcCB0byBoZXIgYXJtLiANCldoYXQgc2hvdWxkIEkgc3RheSBbRGlle1smKiZdfXMsIA0KDQpDaGFyLiBJbiB0aGlzIHZpbGUgd29ybGQgPyBTbywgZmFyZSB0aGVlIHdlbGwuIA0KTm93IGJvYXN0IHRoZWUuIERlYXR7WyYqJl19aCAhIGluIHRoeSBwb3NzZXNzaW9uIGxpZXMgDQpBIGxhc3MgdW5wYXJhbGxlbFwnZC4gRG93bnkgd2luZG93cywgY2xvc2UgOyANCkF7WyYqJl19bmQgZ29sZGVuIFBob2VidXMgbmV2ZXIgYmUgYmVoZWxkIA0KT2YgZXllcyBhZ2FpbiBzbyByb3lhbC5cIiANCg0KSUlJLiANCg0KVGh7WyYqJl19ZSBzdWJqZWN0IG9mIENvcmlvbGFudXMgaXMgdGhlIHJhaW4gb2YgYSBub2JsZSBsaWZlIA0KdGhyb3VnaCB0aGUgc2luIG9mIHByaXtbJiomXX1kZS4gSWYgZHV0eSBiZSB0aGUgZG9taW5hbnQgaWRlYWwgDQp3aXRoIEJydXR1cywgYW5kIHBsZWFzdXJlIG9mIGEgbWFnbmlmaWNle1smKiZdfW50IGtpbmQgYmUgdGhlIA0KaWRlYWwgb2YgQW50b255IGFuZCBDbGVvcGF0cmEsIHRoYXQgd2hpY2ggZ2l2ZXMgdG9uZSBhbmQgDQp7WyYqJl19Y29sb3IgdG8gQ29yaW9sYW51cyBpcyBhbiBpZGVhbCBvZiBzZWxmLWNlbnRyZWQgcG93ZXIuIA0KVGhlIGdyZWF0bmVzcyBvZiBCcntbJiomXX11dHVzIGlzIGFsdG9nZXRoZXIgdGhhdCBvZiB0aGUgbW9yYWwgDQpjb25zY2llbmNlOyBoaXMgZXh0ZXJuYWwgZmlndXJlIGRvZXMge1smKiZdfW5vdCBkaWxhdGUgdXBvbiB0aGUgDQp3b3JsZCB0aHJvdWdoIGEgZ29sZGVuIGhhemUgbGlrZSB0aGF0IG9mIEFudG9ueSwgbm9yIA17WyYqJl19CmJ1bGsgbWFzc2l2ZWx5IGFuZCB0b3dlciBsaWtlIHRoYXQgb2YgQ29yaW9sYW51cy4gQnJ1LSANCnR1cyB2ZW5lcmF0ZXMgaGlzIHtbJiomXX1pZGVhbHMsIGFuZCB2ZW5lcmF0ZXMgaGltc2VsZiA7IGJ1dCB0aGlzIA0KdmVuZXJhdGlvbiBvZiBzZWxmIGlzIGluIGEgY2VydGFpe1smKiZdfW4gc2Vuc2UgZGlzaW50ZXJlc3RlZC4gQSANCmhhdWdodHkgYW5kIHBhc3Npb25hdGUgcGVyc29uYWwgZmVlbGluZywgYSBzdXBlcmJ7WyYqJl19IGVnb2lzbSwgDQphcmUgd2l0aCBDb3Jpb2xhbnVzIHRoZSBzb3VyY2VzIG9mIHdlYWtuZXNzIGFuZCBvZiANCnN0cmVuZ3RoLiBCcntbJiomXX11dHVzIGlzIHRlbmRlciBhbmQgY29uc2lkZXJhdGUgdG8gYWxsIOKAlCB0byANCmhpcyBob3VzZWhvbGQgc2VydmFudHMsIHRvIHRoe1smKiZdfWUgYm95IEx1Y2l1cywgdG8gdGhlIHBvb3IgDQpwZWFzYW50cnkgZnJvbSB3aG9tIGhlIHdpbGwgbm90IHdyaW5nIHRoZWlyIHBldHR7WyYqJl19eSBoYXJkLSANCmVhcm5lZCBnYWlucy4gVGhlIFRoZXNldXMgb2YgQSBNaWRzdW1tZXItTmlnTXMgDQpEcmVhbV4gdGhlIGdyZWF0IHtbJiomXX1sb3JkIGFuZCBjb25xdWVyb3IsIG5vdyBpbiBoaXMgbW9vZCANCm9mIGxlaXN1cmUgYW5kIGVuam95bWVudCwgaXMgZ3JhY2lvdXNse1smKiZdfXkgaW5kdWxnZW50IHRvIHRoZSANCnJvdWdoLWhhbmRlZCBhbmQgdGhpY2std2l0dGVkIG1lY2hhbmljYWxzIG9mIEF0aGVucy4gDQp7WyYqJl19SW4gSGVucnkgVi4gU2hha3NwZXJlIGhhZCBkcmF3biB0aGUgZmlndXJlIG9mIGEgbWFuIA0KcmlnaHQgcm95YWwsIHdobyB5ZXQga3tbJiomXX1lZXBzIGhpcyBzeW1wYXRoaWVzIGluIGxpdmluZyBjb24tIA0KdGFjdCB3aXRoIHRoZSBodW1ibGVzdCBvZiBoaXMgc3ViamVjdHMse1smKiZdfSBhbmQgd2hvLCBieSBoaXMgDQpyZWFsIHJpc2luZyBhYm92ZSBzZWxmLCBoaXMgbm9ibGUgZGlzaW50ZXJlc3RlZG5lc3MsIGlzIHN7WyYqJl19YXZlZCANCmZyb20gYXJyb2dhbmNlIGFuZCBoYXVnaHR5IHNlbGYtd2lsbC4gT24gdGhlIGdyb3VuZCBvZiANCmNvbW1vbiBtYW5ob3tbJiomXX1vZCBoZSBjYW4gbWVldCBKb2huIEJhdGVzIGFuZCBNaWNoYWVsIA0KDQpUaGUgUm9tYW4gUGxheXMuIDI4MyANCg0KV2lsbGlhbXMge1smKiZdfTsgYW5kIHRoZSBncmVhdCBLaW5nLCBzdHJvbmcsIGJlY2F1c2UgbGllIHBvcy0gDQpzZXNzZXMgaW4gaGltc2VsZiBzbyBsYXJnZSB7WyYqJl19YSBmdW5kIG9mIHRoaXMgcGxhaW4sIHNvdW5kIG1hbi0gDQpob29kLCBmaW5kcyBjb21mb3J0IGFuZCBzdXBwb3J0IGluIGhpcyBzZXtbJiomXX1uc2Ugb2YgZXF1YWxpdHkgDQp3aXRoIGhpcyBzdWJqZWN0cyBhbmQgZmVsbG93IC0gc29sZGllcnMuIFwiIEZvciB0aG91Z2ggSSANCntbJiomXX1zcGVhayBpdCB0byB5b3UsXCIgc2F5cyBIZW5yeSwgd2hpbGUgcGxheWluZyB0aGUgcHJpdmF0ZSANCnNvbGRpZXIgb24gdGhlIG5pZ3tbJiomXX1odCBiZWZvcmUgdGhlIGJhdHRsZSwgXCIgSSB0aGluayB0aGUgS2luZyANCmlzIGJ1dCBhIG1hbiBhcyBJIGFtIDsgdGhlIHZpb2xldHtbJiomXX0gc21lbGxzIHRvIGhpbSBhcyBpdCBkb3RoIA0KdG8gbWUgOyB0aGUgZWxlbWVudCBzaG93cyB0byBoaW0gYXMgaXQgZG90aCB0byBte1smKiZdfWUgOyBhbGwgDQpoaXMgc2Vuc2VzIGhhdmUgYnV0IGh1bWFuIGNvbmRpdGlvbnMgOyBoaXMgY2VyZW1vbmllcyBsYWlkIA0KYnksIGl7WyYqJl19biBoaXMgbmFrZWRuZXNzIGhlIGFwcGVhcnMgYnV0IGEgbWFuIDsgYW5kIHRob3VnaCANCmhpcyBhZmZlY3Rpb25zIGFyZSBoaWdoZXtbJiomXX1yIG1vdW50ZWQgdGhhbiBvdXJzLCB5ZXQgd2hlbiANCnRoZXkgc3Rvb3AsIHRoZXkgc3Rvb3Agd2l0aCB0aGUgbGlrZSB3aW5nLlwiIHtbJiomXX1Pbmx5IHRoZSANCmdyZWF0bmVzcyBvZiBhIGhpZ2ggcmVzcG9uc2liaWxpdHkgZGlzdGluZ3Vpc2hlcyB0aGUgS2luZywgDQphbmQge1smKiZdfWdpdmVzIGhpbSB3ZWlnaHRpZXIgY2FyZXMgYW5kIG5vYmxlciB0b2lsLiBTdWNoIGlzIA0KdGhlIHNwaXJpdCwgbmVpdGhlciBhcml7WyYqJl19c3RvY3JhdGljIG5vciwgaW4gdGhlIG1vZGVybiBkb2N0cmktIA0KbmFpcmUgc2Vuc2UsIGRlbW9jcmF0aWMsIG9mIFNoYWtzcGVyZXtbJiomXX1cJ3MgSGVucnkgVi4gDQoNClwiVGhlIHdob2xlIGRyYW1hdGljIG1vcmFsIG9mIENvcmlvbGFudXNeXCdeIEhhemxpdHQgDQp3cm90ZSwge1smKiZdfVwiIGlzIHRoYXQgdGhvc2Ugd2hvIGhhdmUgbGl0dGxlIHNoYWxsIGhhdmUgbGVzcywgYW5kIA0KdGhhdCB0aG9zZSB3aG8gaGF2ZSBte1smKiZdfXVjaCBzaGFsbCB0YWtlIGFsbCB0aGF0IG90aGVycyBoYXZlIA0KbGVmdC4gVGhlIHBlb3BsZSBhcmUgcG9vciwgdGhlcmVmb3JlIHR7WyYqJl19aGV5IG91Z2h0IHRvIGJlIA0Kc3RhcnZlZC4gVGhleSBhcmUgc2xhdmVzLCB0aGVyZWZvcmUgdGhleSBvdWdodCB0byBiZSANCmJlYXtbJiomXX10ZW4uIFRoZXkgd29yayBoYXJkLCB0aGVyZWZvcmUgdGhleSBvdWdodCB0byBiZSANCnRyZWF0ZWQgbGlrZSBiZWFzdHMgb2YgYnVye1smKiZdfWRlbi4gVGhleSBhcmUgaWdub3JhbnQsIHRoZXJlLSANCmZvcmUgdGhleSBvdWdodCBub3QgdG8gYmUgYWxsb3dlZCB0byBmZWVsIHR7WyYqJl19aGF0IHRoZXkgd2FudCANCmZvb2Qgb3IgY2xvdGhpbmcgb3IgcmVzdDsgdGhhdCB0aGV5IGFyZSBlbnNsYXZlZCwgb3AtIA0KcHJlc3tbJiomXX1zZWQsIGFuZCBtaXNlcmFibGUuXCIqIFRoaXMgaXMgc2ltcGx5IGltcG9zc2libGU7IA0KdGhpcyBpcyBleHRyYXZhZ2FudGx5IHVudHtbJiomXX1ydWUsIGEgcGllY2Ugb2YgdGhlIHBhc3Npb25hdGUgaW4tIA0KanVzdGljZSB3aGljaCBicmVha3MgZm9ydGggZXZlcnkgbm93IGFue1smKiZdfWQgYWdhaW4gaW4gSGF6LSANCmxpdHRcJ3Mgd3JpdGluZ3MuIFRoZSBkcmFtYXRpYyBtb3JhbCBvZiBDb3Jpb2xhbnVzIGxpZXMgDQpme1smKiZdfWFyIG5lYXJlciB0byB0aGUgdmVyeSBvcHBvc2l0ZSBvZiBIYXpsaXR0XCdzIHN0YXRlbWVudC4gDQpIYWQgdGhlIGhlcm8gb2YgdGhle1smKiZdfSBwbGF5IHBvc3Nlc3NlZCBzb21lIG9mIHRoZSBodW1hbiANCnN5bXBhdGhpZXMgb2YgSGVucnkgVi4sIHRoZSB0cmFnaWMgaXNzdWV7WyYqJl19IHdvdWxkIGhhdmUgYmUtIA0KY29tZSBpbXBvc3NpYmxlLiANCg0KKiBcIiBDaGFyYWN0ZXJzIG9mIFNoYWtzcGVhclwncyBQbGF5cyxcIntbJiomXX0gcC4gXCc3NCAoZWQuIDE4MTgpLiANCg0KMjg0IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNClwiIFNoYWtzcGVyZSx7WyYqJl19XCIgYSBncmVhdCBtb2Rlcm4gcG9ldCBoYXMgc2FpZCwgXCIgaXMgaW5jYXIqIA0KbmF0ZWQsIHVuY29tcHJvbWlzaW5nIGZldWRhbGlze1smKiZdfW0gaW4gbGl0ZXJhdHVyZS5cIiAqIFNoYWstIA0Kc3BlcmUgaXMgc3VyZWx5IHNvbWV0aGluZyBtb3JlIGh1bWFuIGFuZCBwZXJtYW5le1smKiZdfW50IA0KdGhhbiBmZXVkYWxpc20gOyBidXQgaXQgaXMgdHJ1ZSB0aGF0IGhlIGlzIG5vdCBpbiBhIG1vZGVybiANCnNlbnNlIGRlbW97WyYqJl19Y3JhdGljLiBUaGF0IGhlIHJlY29nbml6ZWQgdGhlIG1hbmx5IHdvcnRoIA0KYW5kIHZpZ29yIG9mIHRoZSBjb21tb24gRW5nbGlzaHtbJiomXX0gY2hhcmFjdGVyIGlzIGV2aWRlbnQuIA0KSXQgY2Fubm90IGJlIGRlbmllZCwgaG93ZXZlciwgdGhhdCB3aGVuIHRoZSBwZW9wbGUge1smKiZdfWFyZSANCnNlZW4gaW4gbWFzc2VzIGluIFNoYWtzcGVyZVwncyBwbGF5cywgdGhleSBhcmUgbmVhcmx5IGFsLSANCndheXMgc2hvd24ge1smKiZdfWFzIGZhY3Rpb3VzLCBmaWNrbGUsIGFuZCBpcnJhdGlvbmFsLiBUbyBleHBsYWluIA0KdGhpcyBmYWN0LCB3ZSBuZWVkIG5vdCBzdXB7WyYqJl19cG9zZSB0aGF0IFNoYWtzcGVyZSB3cm90ZSB0byANCmZsYXR0ZXIgdGhlIHByZWp1ZGljZSBvZiB0aGUgamV1N2llc3NlIGRvcmVlIHtbJiomXX1vZiB0aGUgRWxpemEtIA0KYmV0aGFuIHRoZWF0cmUuZiBIb3cgY291bGQgU2hha3NwZXJlIHJlcHJlc2VudCB0aGUgDQpwZW9wbGUge1smKiZdfW90aGVyd2lzZSA/IEluIHRoZSBUdWRvciBwZXJpb2QgdGhlIHBlb3BsZSBoYWQgDQpub3QgeWV0IGVtZXJnZWQuIFRoZSBwZW9wbGV7WyYqJl19LCBsaWtlIE1pbHRvblwncyBoYWxmIC1jcmVhdGVkIA0KYW5pbWFscywgaXMgc3RpbGwgcGF3aW5nIHRvIGdldCBmcmVlIGl0cyBoaW57WyYqJl19ZGVyIHBhcnRzIGZyb20gDQp0aGUgbWlyZS4gVGhlIG1lZGlhZXZhbCBhdHRlbXB0cyB0byByZXNpc3Qgb3BwcmVzc2lvbiwgDQp0aHtbJiomXX1lIHJpc2luZ3Mgb2YgcGVhc2FudHMgb3Igb2YgY2l0aXplbnMsIGluYXVndXJhdGVkIGNvbS0gDQptb25seSBieSB0aGUgbXVyZGVye1smKiZdfSBvZiBhIGxvcmQgb3Igb2YgYSBiaXNob3AsIHdlcmUgZm9yIA0KdGhlIG1vc3QgcGFydCBkZXNwZXJhdGUgYXR0ZW1wdHMsIHJhc2h7WyYqJl19IGFuZCBkYW5nZXJvdXMsIHN1cy0gDQp0YWluZWQgYnkgbm8gc2Vuc2Ugb2YgYWRlcXVhdGUgbW9yYWwgb3IgbWF0ZXJpYWwgcG93ZXtbJiomXX1yLiANCkl0IGlzIG9ubHkgYWZ0ZXIgc3VjaCBhbiBpbW1lbnNlIGFjaGlldmVtZW50IGFzIHRoYXQgb2YgDQoxNzg5LCBzdWNoIGEge1smKiZdfXByb29mIG9mIHBvd2VyIGFzIHRoZSBGcmVuY2ggS2V2b2x1dGlvbiBhZi0gDQpmb3JkZWQsIHRoYXQgbW9yYWwgZGlnbml0eSwgdGh7WyYqJl19ZSBzcGlyaXQgb2Ygc2VsZi1jb250cm9sIGFuZCANCnNlbGYtZGVuaWFsLCB0aGUgaGVyb2ljIGRldm90aW9uIG9mIG1hc3NlcyBvZntbJiomXX0gbWVuIHRvIGlkZWFzLCANCmFuZCBub3QgbWVyZWx5IGludGVyZXN0cywgY291bGQgYmVnaW4gdG8gbWFuaWZlc3QgdGhlbS0gDQpze1smKiZdfWVsdmVzLiBTaGFrc3BlcmUgc3R1ZGllZCBhbmQgcmVwcmVzZW50ZWQgaW4gaGlzIGFydCB0aGUgDQp3b3JsZCB3aGljaCBsYXkgYmV7WyYqJl19Zm9yZSBoaW0uIElmIGhlIHByb3BoZXNpZWQgdGhlIGZ1dC0gDQp1cmUsIGl0IHdhcyBub3QgaW4gdGhlIG9yZGluYXJ5IG1hbm5lcntbJiomXX0gb2YgcHJvcGhldHMsIGJ1dCANCm9ubHkgYnkgY29tcGxldGVseSBlbWJvZHlpbmcgdGhlIHByZXNlbnQsIGluIHdoaWNoIHRoZSANe1smKiZdfQpmdXR1cmUgd2FzIGNvbnRhaW5lZC4gDQoNCkl0IGhhcyBiZWVuIGFza2VkLCBpZiBTaGFrc3BlcmUgaGFkIGJlZW4gYm9ybiBhIGd7WyYqJl19ZW5lci0gDQphdGlvbiBsYXRlciwgd2hhdCBzaWRlIHdvdWxkIGhlIGhhdmUgdGFrZW4gaW4gdGhhdCBncmVhdCANCg0KKiBXYWx0IHtbJiomXX1XaGl0bWFuLCBcJyogRGVtb2NyYXRpYyBWaXN0YXMsXCIgcC4gODEuIA0KdCBTZWUgUnVtZWxraWkgXCIgU2hha2VzcGVhcmUtU3R1ZGlle1smKiZdfW4vXCcgcC4gMjIyLiANCg0KVGhlIFJvbWFuIFBsYXlzLiAyODUgDQoNCmNvbmZsaWN0IGluIHdoaWNoIE1pbHRvbiBzdHJ1Z2dsZWQge1smKiZdfXNvIG5vYmx5IG9uIHRoZSBzaWRlIA0Kb2YgbGliZXJ0eS4gQSBjcml0aWMgb2YgYWRtaXJhYmxlIGluc2lnaHQsIGFscmVhZHkgcmV7WyYqJl19ZmVycmVkIA0KdG8g4oCUIEguIEEuIFdlcm5lciDigJQgZGlzY292ZXJzIGluIHRoZSBhdXRob3Igb2YgSGFtbGV0IA0KYW5kIG9mIHtbJiomXX1MZWFyIGEgdGhpbmtlciBpbiB0aGUgZm9yZW1vc3QgcmFua3Mgb2YgbW9kZXJuIA0KYW5kIHBhdHJpb3RpYyBzcGlyaXRzLCBhIGZve1smKiZdfXJlcnVubmVyIG9mIHRoZSBzdHJ1Z2dsZSBpbiB3aGljaCANCkVuZ2xhbmQgd2FzIHRvIGVuZ2FnZSBmaXJzdCBhbW9uZyB0aGUgbmF7WyYqJl19dGlvbnMgb2YgRXUqIA0Kcm9wZS4gVGhlIGRyYW1hIG9mIEhhbWxldCBpcyBcImEgUHJvbWV0aGV1cy1zaWdoIGZvciANCmZyZWVkb217WyYqJl19IGFuZCBkZWxpdmVyYW5jZSwgZm9yIGhvbm9yIGFuZCBpbmZsdWVuY2UsIGZvciBzZS0gDQpjdXJpdHkgYW5kIHBlYWNlLlwiIEl0IHB7WyYqJl19b3J0cmF5cyB0aGUgY29sbGlzaW9uIGJldHdlZW4gYW4gDQplZmZldGUgc29jaWV0eSBidXR0cmVzc2luZyBpdHNlbGYgdXAgYWdhaXtbJiomXX1uc3QgdGhlIHBhc3QsIGFuZCANClwiIGFuIGlkZWEsIGV2ZXIgeW91bmcsIHRvIHdoaWNoIGFsbCB0aGUgZnV0dXJlIGJlbG9uZ3MuXCJ7WyYqJl19IA0KQnV0IFNoYWtzcGVyZVwncyBzdGF0ZW1lbnQgb2YgdGhlIGZhY3QgY29uY2VybmluZyB0aGUgcmV2LSANCm9sdXRpb25hcnkgZXB7WyYqJl19b2NocyBvZiB0aGUgd29ybGQgaXMgdXR0ZXJlZCwgdGhlIGNyaXRpYyBhZGRzLCANCm5vdCBhcyBhIHBpZWNlIG9mIHBvbGl0aWNhbHtbJiomXX0gaW5zdHJ1Y3Rpb24sIGJ1dCBhcyBhIHF1ZXN0aW9uIHRvIA0KZmF0ZSA7IGl0IGlzLCBhcyBpdCB3ZXJlLCBcIiB0aGUgZmlyc3QgaHtbJiomXX1hbGYgb2YgYSBCb29rIG9mIEpvYixcIiBhIA0Kc29sZW1uIGJhbGFuY2luZyBvZiBnb29kIGFuZCBldmlsIGluIHRoZSB3b3JsZCwgd3tbJiomXX1oZXJlaW4gDQpuZWl0aGVyIGFwcGVhcnMgcHJlcG9uZGVyYW50IDsgYW5kIHRoZSBsb25nZXIgdGhlIHBvZXQgDQp0aG91Z2h0LCB0e1smKiZdfWhlIG1vcmUgZGVmaW5pdGVseSB0aGUgcG9saXRpY2FsIHBoZW5vbWVub24sIA0KYW5kIGl0cyBpbmZsdWVuY2UgdXBvbiB0aGUgbGl7WyYqJl19ZmUgYW5kIGNoYXJhY3RlciBvZiBpbmRpdmlkLSANCnVhbCBtYW4sIGFzc3VtZWQgdGhlIHNoYXBlIG9mIGFuIGluc29sdWJsZSByaXtbJiomXX1kZGxlLlwiXiBJdCANCmlzIGltcG9zc2libGUgdG8gYWNjZXB0IHRoaXMgaW50ZXJwcmV0YXRpb24gb2YgU2hha3NwZXJlXCdzIA0KcG97WyYqJl19bGl0aWNhbCB0ZW5kZW5jaWVzIG90aGVyd2lzZSB0aGFuIGFzIGFuIGluZ2VuaW91cyByZWFkLSANCmluZy1pbiBvZiBtb2Rlcm4gaXtbJiomXX1kZWFzIGJldHdlZW4gdGhlIGxpbmVzIG9mIFNoYWtzcGVyZVwncyANCmFydC4gDQoNCkJ1dCBuZWl0aGVyIGNhbiB3ZSBhZG1pdCB3aXtbJiomXX10aCB0aGUgY2hhbXBpb24gb2Ygc28tIA0KY2FsbGVkIFwiIHJlYWxpc3QgXCIgY3JpdGljaXNtLCBFaWltZWxpbiwgdGhhdCBTaGFrc3B7WyYqJl19ZXJlIHBlci0gDQpjZWl2ZWQgdGhlIGV4aXN0ZW5jZSBhbHJlYWR5IGluIEVsaXphYmV0aFwncyB0aW1lIG9mIHRoZSANClJveWFsaXN7WyYqJl19dCBhbmQgUm91bmRoZWFkIHBhcnRpZXMsIGFuZCB0aGF0LCBiZWluZyBwZXJzb24tIA0KYWxseSBhc3NvY2lhdGVkIHdpdGggdGhlIHtbJiomXX15b3VuZyBFbGl6YWJldGhhbiBub2JpbGl0eSwgYW5kLCANCmFzIGFjdG9yLCBwbGF5d3JpZ2h0LCBhbmQgc3RhZ2UtbWFuYWdlciwge1smKiZdfW9wcG9zZWQgdG8gdGhlIA0KUHVyaXRhbiBob3VyZ2VvaXNpZV4gXCIgU2hha3NwZXJlIHdhcyBhbiBleHRyZW1lIFJveWFsaXN0LCANe1smKiZdfQphbmQgYW4gYWRoZXJlbnQgb2YgdGhlIHB1cmVzdCB3YXRlciB0byB0aGUgY291cnQgcGFydHkgYW5kIA0KDQoqIFwiVWViZXIgZGFze1smKiZdfSBEdW5rZWwgaW4gZGVyIEhhbWxldCAtIFRyYWdvZGllLFwiIHZvbiBILiBBLiBXZXJuZ3JpIA0KSmFocmh1Y2ggZGVyIGRldXRzY2hle1smKiZdfW4gU2hha2VzcGVhcmUtIEdlc2VVc2NoYWZ0XiB2b2wuIHYuLCBwcC4gMyA3LTgxLiANCg0KMjg2IFNoYWtzcGVyZSDigJQgSGlzIE17WyYqJl19aW5kIGFuZCBBcnQuIA0KDQp0aGUgbm9ibGVzLlwiICogSVNUbyA7IGhhZCBTaGFrc3BlcmUgbGl2ZWQgd2hlbiBNaWx0b24gDQpsaXZ7WyYqJl19ZWQsIGhlIHdvdWxkIHByb2JhYmx5IGhhdmUgcGFzc2VkIHRocm91Z2ggaGlzIGxpZmUgDQphbmQgZ29uZSB0byB0aGUgZ3JhdmUgaXtbJiomXX1uIHNpbGVuY2UuIEhlIHdvdWxkIGNlcnRhaW5seSANCm5ldmVyIGhhdmUgY29uc3VtZWQgaGltc2VsZiBpbiB3cml0aW5nIHBhc3Npe1smKiZdfW9uYXRlIHBhbS0gDQpwaGxldHMgb2YgaHVnZSBkaW1lbnNpb25zLCBhcyBNaWx0b24gZGlkLCBvbiBiZWhhbGYgZWl0aGVyIA0Kb2Z7WyYqJl19IHRoaXMgcGFydHkgb3Igb2YgdGhhdC4gV2UgY2Fubm90IHN1cHBvc2UgdGhhdCBoZSANCndvdWxkIGhhdmUgYmVlbiBzYXRpc2ZpZXtbJiomXX1kIHdpdGggdGhlIGNhdmFsaWVyIGlkZWFsIG9mIG1hbi0gDQpob29kLCB3aXRoIGl0cyBnYWxsYW50cnkgb2Ygc2hvd3kgZGV2b3Rpe1smKiZdfW9uIHRvIENodXJjaCBhbmQgDQpLaW5nIOKAlCB0byB0aGUgY2h1cmNoIG9mIExhdWQgYW5kIHRoZSByb3lhbHR5IG9mIENoYXJsZXN7WyYqJl19LiANCldlIGNhbm5vdCBpbWFnaW5lIFNoYWtzcGVyZSBhbW9uZyB0aGUgY291cnQgc2luZ2VycyANCndobyBncmF0ZWQgXCIgbGVhbiB7WyYqJl19YW5kIGZsYXNoeSBzb25ncyBcIiBvbiBzY3Jhbm5lbCBwaXBlcy4gDQpCdXQgbmVpdGhlciBjb3VsZCBoZSBoYXZlIGFjY2VwdGVkIGF7WyYqJl19cyBjb21wbGV0ZSB0aGUgUHUtIA0Kcml0YW4gaWRlYWwuIFNpciBUb2J5IEJlbGNoIGlzIG5vdCBhbiBlbWJvZGltZW50IG9mIHRoZXtbJiomXX0gDQpoaWdoZXN0IHdpc2RvbSA7IGJ1dCBNYWx2b2xpbyBoYXMgbm8gYW5zd2VyIHdoZW4gdGhlIA0KaXJyZXByZXNzaWJsZSBrbmlne1smKiZdfWh0IGFkZHJlc3NlcyBoaW0gOiBcIiBEb3N0IHRob3UgdGhpbmssIA0KYmVjYXVzZSB0aG91IGFydCB2aXJ0dW91cywgdGhlcmUgc2hhe1smKiZdfWxsIGJlIG5vIG1vcmUgY2FrZXMgDQphbmQgYWxlIFQgR2luZ2VyIGlzIGhvdCBpbiB0aGUgbW91dGgsIEZlc3RlLCB0aGUgY2xvd257WyYqJl19LCANCmp1c3RseSBkZWNsYXJlcyA7IGFuZCB0aGF0IGZhY3QgbXVzdCBlbnRlciBpbnRvIGV2ZXJ5IGFkLSANCmVxdWF0ZSBpZGVhIHtbJiomXX1vZiBodW1hbiBsaWZlLiBIYWQgU2hha3NwZXJlIGxpdmVkIHdoZW4gDQpNaWx0b24gbGl2ZWQsIGhlIHdvdWxkIGhhdmUgc2VlbiBhe1smKiZdfW5kIG1vdXJuZWQgb3ZlciB0aGUgDQpicmVhY2ggaW4gaHVtYW5pdHksIHRoZSB2aW9sZW5jZSBkb25lIHRvIGh1bWFuIGhhcHBpLSB7WyYqJl19DQpuZXNzIGFuZCBodW1hbiBjdWx0dXJlIGJ5IHR3byBvcHBvc2l0ZSBpZGVhbHMgd2hpY2ggdG9yZSANCnRoZSB0cnV0aCBpbiBzdXtbJiomXX1uZGVyLiBJdCB3b3VsZCBoYXZlIGJlZW4gaW1wb3NzaWJsZSBmb3IgDQpoaW0uIHRvIGF0dGFpbiBoaXMgb3duIGNvbXBsZXRlIGRle1smKiZdfXZlbG9wbWVudCBlaXRoZXIgYXMgYW4gDQphcnRpc3Qgb3IgYXMgYSBtYW4uIEhlIHdvdWxkIGhhdmUgbG9va2VkIG9uLCBhbmQgdXR7WyYqJl19LSANCnRlcmVkIG5vdyBhbmQgYWdhaW4gdGhlIGNyeSBvZiBwYWluIGFuZCBpbmRpZ25hdGlvbiwgDQpcIiBBIHBsYWd1ZSBvbiBib3R7WyYqJl19aCB5b3VyIGhvdXNlcyAhXCIgDQoNCldoYXQgd2VyZSBTaGFrc3BlcmVcJ3MgcG9saXRpY2FsIHZpZXdzPyBJdCBpcyBtYXR0ZXIgDQpve1smKiZdfWYgY29uZ3JhdHVsYXRpb24gdGhhdCBTaGFrc3BlcmUgYXBwcm9hY2hlZCBoaXN0b3J5LCBub3QgDQp0aHJvdWdoIHBvbGl0aWNhbCB7WyYqJl19dGhlb3JpZXMgb3IgcGhpbG9zb3BoaWVzLCBidXQgdGhyb3VnaCBhIA0Kd2lkZSBhbmQgZGVlcCBzeW1wYXRoeSB3aXRoIGh1bWFuIHtbJiomXX1hY3Rpb24gYW5kIGh1bWFuIA0Kc3VmZmVyaW5nLiBUaGF0IGEgcG9ldCBvZiB0aGUgbmluZXRlZW50aCBjZW50dXJ5IHNob3VsZCANe1smKiZdfQpkaXNyZWdhcmQgcG9saXRpY2FsIHRoZW9yaWVzLCBhbmQgcGhpbG9zb3BoaWVzIG9mIGhpc3RvcnksIA0KDQpeIEkgaSBcJyBcJyBcJyB7WyYqJl19XCcgXCcgJmx0OyBpTSANCg0KKiBSaWltZWxpbiwgKlwnIFNoYWtlc3BlYXJlXnR1ZGllbixcIiBwLiAyMTcuIA0KDQpUaGUgUm9tYW4gUGx7WyYqJl19YXlzLiAyODcgDQoNCndvdWxkIHByb3ZlIHRoYXQgaGUgd2FzIGxhY2tpbmcgaW4gdGhhdCB2ZXJ5IHN5bXBhdGh5IA0Kd2l0aCBodXtbJiomXX1tYW5pdHkgd2hpY2ggbWFkZSBTaGFrc3BlcmUgd2hhdCBoZSB3YV4gQnV0IA0KdGhlIHNldmVudGVlbnRoIGNlbnR1cnkgd2FzIG9ue1smKiZdfWUgaW4gd2hpY2gsIGluIHRoZSB3b3JsZCANCm9mIHBvbGl0aWNzLCBuYXRpb24gc3RydWdnbGVkIHdpdGggbmF0aW9uLCBhbmQgbWF7WyYqJl19biB3aXRoIA0KbWFuLCByYXRoZXIgdGhhbiBpZGVhIHdpdGggaWRlYS4gU2hha3NwZXJlIGhhcyBubyBwby0gDQpsaXRpY2FsIGRvY3tbJiomXX10cmluZSB0byBhcHBseSB0byB0aGUgY2l2aWwgY29udGVzdCBvZiB0aGUgaG91c2VzIA0Kb2YgTGFuY2FzdGVyIGFuZCBZb3JrIGJ5e1smKiZdfSB3aGljaCB0byByZXNvbHZlIHRoZSBjbGFpbXMgb2YgDQp0aGUgY29udGVuZGluZyBwYXJ0aWVzLiBJZiB3ZSBkaXNjb3ZlciBhbnl7WyYqJl19IHByaW5jaXBsZSBpbiANCndoaWNoIGhlIGhhZCBmYWl0aCwgaXQgaXMgdGhhdCBvZiB0aGUgcmlnaHQgb2YgdGhlIGtpbmdsaWVzdHtbJiomXX0gDQpuYXR1cmUgdG8gYmUga2luZy4gVGhlIGRpdmluZSByaWdodCBvZiBSaWNoYXJkIElJLiwgZ2FsLSANCmxhbnRseSB1cmdlZCBie1smKiZdfXkgdGhlIEJpc2hvcCBvZiBDYXJsaXNsZSwgaXMgaGFyZGx5IGFzIHNhY3JlZCANCmluIFNoYWtzcGVyZVwncyBleWVzIGFzIHRoZSBke1smKiZdfWl2aW5lIHJpZ2h0IG9mIHRoZSBzb24gb2YgdGhlIA0KdXN1cnBpbmcgQm9saW5nYnJva2UuIEl0IGlzIEhlbnJ5IFZJLiB3aG9zZSB7WyYqJl19b3Zlci1pcnJpLSANCnRhYmxlIGNvbnNjaWVuY2Ugc3VnZ2VzdHMgdG8gaGltIGRvdWJ0cyByZXNwZWN0aW5nIHRoZSANCnRpdGxlIHtbJiomXX1vZiBoaXMgaG91c2UuIEhhcHBpbHkgd2UgYXJlIG5vdCBhZmZsaWN0ZWQgYnkgU2hhay0gDQpzcGVyZSB3aXRoIGRvY3RyaW5haXJle1smKiZdfSB1dHRlcmFuY2VzLCB3aXRoIHNlbnRpbWVudHMgbGliZXJhbCANCm9yIHJlYWN0aW9uYXJ5IHV0dGVyZWQgYnkgdGhlIGhlcm9lcyB7WyYqJl19b2YgbW9uYXJjaHkgb3Igb2YgDQpyZXB1YmxpY2FuaXNtLiBBIHRpbWUgd2lsbCBwZXJoYXBzIGNvbWUsIG1vcmUgZmF2b3JhLSANCntbJiomXX1ibGUgdG8gdHJ1ZSBhcnQgdGhhbiB0aGUgcHJlc2VudCwgd2hlbiBpZGVhcyBhcmUgbGVzcyBvdXQtIA0Kc3RhbmRpbmcgZmFjdG9ye1smKiZdfXMgaW4gaGlzdG9yeSB0aGFuIHRoZXkgaGF2ZSBiZWVuIGluIHRoaXMgDQpjZW50dXJ5IDsgd2hlbiB0aG91Z2h0IHdpbGwgYmUgb2J7WyYqJl19c2N1cmVseSBwcmVzZW50IGluIGluLSANCnN0aW5jdGl2ZSBhY3Rpb24gYW5kIGluIGh1bWFuIGVtb3Rpb24sIGFuZCB3aWxsIHZpdHtbJiomXX1hbGl6ZSANCmFuZCBpbnNwaXJlIHRoZXNlIGpveW91c2x5IHJhdGhlciB0aGFuIHR5cmFuaWNhbGx5IGRvbWktIA0KbmF0ZSB0aGVte1smKiZdfS4gQW5kIHRoZW4gbWVuXCdzIHN5bXBhdGh5IHdpdGggdGhlIEVsaXphLSANCmJldGhhbiBkcmFtYSB3aWxsIGJlIG1vcmUgcHJvbXB0e1smKiZdfSBhbmQgc3VyZSB0aGFuIGluIG91ciANCmRheSBpdCBjYW4gYmUuIA0KDQpQYXJ0eSBzcGlyaXRzIGFyZSBiYWZmbGVkIGJ5IHRoZSB7WyYqJl19Z3JlYXQgaHVtYW4gcG9ldC4gVGhleSANCmNhbiwgd2l0aCBlbnRpcmUgZWFzZSBhbmQgc2VsZi1zYXRpc2ZhY3Rpb24sIHJlYWQgdHtbJiomXX1oZWlyIHNldi0gDQplcmFsIGNyZWVkcywgcG9saXRpY2FsIGFuZCByZWxpZ2lvdXMsIGludG8gdGhlIHBvZXRyeSBvZiBTaGFrLSANe1smKiZdfQpzcGVyZSA7IGh2WGptZCB0aGVtIHRoZXJlIHRoZXkgY2Fubm90LiBPbmx5IGlmIHdlIGxvb2sgDQpmb3Igd2hhdCBpcyB0cnVseSB7WyYqJl19aHVtYW4gYW5kIG9mIHBlcm1hbmVudCBpbnRlcmVzdCB0byANCm1hbiwgd2Ugc2hhbGwgbm90IGJlIGRpc2FwcG9pbnRlZC4gXCIgTWF7WyYqJl19bnkgcmVwcm9hY2hlcyANCmhhdmUgYmVlbiB1dHRlcmVkIGFnYWluc3QgU2hha3NwZXJlLiBCdXQgdGhlIGh5cG9jcml0ZSANCndob3tbJiomXX1tIGhpcyBwb2V0cnkgZG9lcyBub3QgdW5tYXNrIGFuZCBjb3ZlciB3aXRoIGNvbmZ1LSANCnNpb24sIHRoZSB0eXJhbnQgd2hvIGRve1smKiZdfWVzIG5vdCBzdWZmZXIgaW4gaGltc2VsZiB0aGUgcGFuZ3MgDQoNCjI4OCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA17WyYqJl19Cg0Kb2YgY29uc2NpZW5jZSBhbmQgZWFybiB0aGUgZ2VuZXJhbCBoYXRyZWQsIHRoZSBjb3dhcmQgDQp3aG8gXWYmZ3Q7IG5vdCBtYXtbJiomXX1kZSBhIGxhdWdoaW5nLXN0b2NrLCB0aGUgZHJlc3NlZC11cCBpbXBvc2ktIA0KdGlvbiB3aG8sIGRpc2NvdmVyZWQgaW4gaGlzIG5he1smKiZdfWtlZG5lc3MsIGRvZXMgbm90IGV4cGVyaS0gDQplbmNlIHRoZSBwb2V0XCdzIGFubmloaWxhdGluZyBzY29ybiwgaXMgaW4gdmFpbiB0e1smKiZdfW8gYmUgc291Z2h0IA0KZm9yIGFtb25nIHRoZSBoaXN0b3JpY2FsIGZpZ3VyZXMgb2YgdGhlc2UgZHJhbWFzLlwiIFwiXiANCg0KVGhhdHtbJiomXX0gdGhlIHBlb3BsZSBzaG91bGQgYXBwZWFyIGF0IGFsbCBpbiB0aGUgaGlzdG9yaWVzIG9mIA0KU2hha3NwZXJlIGlzIHdvcnRoeSBve1smKiZdfWYgbm90ZS4gSW4gRnJlbmNoIHRyYWdlZHkgdGhlIHBlby0gDQpwbGUgcGxheXMgbm8gcGFydCA7IGFuZCBuYXR1cmFsbHksIGZvciB7WyYqJl19XCIgRnJlbmNoIGhpc3RvcnkgZG9lcyANCm5vdCBzcGVhayBvZiB0aGUgcGVvcGxlIGJlZm9yZSB0aGUgbmluZXRlZW50aCBjZW50dXJ7WyYqJl19eS5cIiBmIA0KU2hha3NwZXJlXCdzIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwZW9wbGUgaXMgYnkgbm8gbWVhbnMgDQpoYXJzaCBvciB1e1smKiZdfW5nZW5pYWwuIEhlIGRvZXMgbm90IGRpc2NvdmVyIGluIHRoZW0gaGVyb2ljIA0KdmlydHVlcyA7IGhlIGRvZXMgbm90IHRoaW5rIHR7WyYqJl19aGF0IGEgY3Jvd2Qgb2YgY2l0aXplbnMgaXMgDQppbnZhcmlhYmx5IHZlcnkgd2lzZSwgcGF0aWVudCwgb3IgdGVtcGVyYXRlIDsgYXtbJiomXX1uZCBoZSBoYXMgDQphIGNlcnRhaW4gYXZlcnNpb24sIHF1aXRlIHVuZGVyIGNvbnRyb2wsIGhvd2V2ZXIsIHRvIHRoZSANCnN3ZWF0e1smKiZdfXkgY2FwcyBhbmQgZ3JpbXkgaGFuZHMgYW5kIHN0aW5raW5nIGJyZWF0aCBvZiBnYXItIA0KbGljLWVhdGVycyBhbmQgbWVuIG9mIG97WyYqJl19Y2N1cGF0aW9uLl4gTmV2ZXJ0aGVsZXNzLCBTaGFrLSANCg0KKiBGLiBLcmV5c3NpZywgXCIgU2hha2VzcGVhcmUtRnJhZ2VuLFwiIHBwe1smKiZdfS4gOTcsIDk4LiBUaGUgZGlzY3Vzc2lvbiBvZiB0aGlzIA0Kc3ViamVjdCBieSBLcmV5c3NpZyBpcyBleGNlbGxlbnQuIFwiU2hha2Vze1smKiZdfXBlYXJlIGhhdHRlIHNpY2ggYmVpIHNlaW5lbiANClp1c2NoYXVlcm4gc28gd2VuaWcgRGFuayB2ZXJkaWVudCBhbHMgYmVpIGRlbiB7WyYqJl19QmVob3JkZW4sIHdlbm4gZXIgZXR3YSBpbiANCmRlciBTY2hpbGRlcnVuZyBkZXMgS29uaWcgSm9oYW5uIGZpaXIgZGllIEJhcm9uZXtbJiomXX0gdW5kIGRpZSBDb21tdW5lbiBnZS0gDQpnZW4gZGVuIEtvbmlnIFBhcnRlaSBnZW5vbW1lbiBoYXR0ZSwgc3RhdHQgZmlpciBFbmdse1smKiZdfWFuZCBnZWdlbiBGcmFua3JlaWNoIA0KdW5kIGdlZ2VuIGRlbiBQYXBzdC4gSmEsIGVyIGhhdHRlIGdhbnogYXVzIGRlciBpaG4gdW17WyYqJl19Z2ViZW5kZW4gZ2Vpc3RpZ2VuIA0KQXRtb3NwaGFyZSBoZXJhdXN0cmV0ZW4gbWlpc3NlbiwgdW0gbmFjaCBwb2xpdGlzY2hlciBHZXtbJiomXX1zaW5udW5nc3RVY2h0aWctIA0Ka2VpdCB1bmQgR2VzY2hpY2h0c3BoaWxvc29waGllIGltIFNpbm5lIHNlaW5lciBoZXV0aWdlbiBLe1smKiZdfXJpdGlrZXIgdW5kIE5hY2gtIA0KYWhtZXIgenUgdHJhY2h0ZW4uIE1hbiB3aXJkIHNlaW5lIEhpc3RvcmllbiB2ZXJnZWJsaWNoIG57WyYqJl19YWNoIGxpYmVyYWxlbiANClNlbnRlbnplbiBkdXJjaHN1Y2hlbi4gV2VubiBlciBkYW5uIGFiZXIsIHZvbiBzZWluZW0gU3RhbmRwdXtbJiomXX1ua3RlLCANCmRhYmVpIGltIFJlY2h0ZSB3YXIsIHNpbmQgZXMgc2VpbmUgR2VnbmVyIHZvbiBkZW0gaWhyaWdlbiBuaWNodCBlYmVue1smKiZdfXNvIA0Kc2VociwgaW5kZW0gc2llIHNpY2ggbGllYmVyIGFuIGRlbiBHZWRhbmtlbi0gdW5kIEdlc2lubnVuZ3NoZWxkZW4gdW5zZXJ7WyYqJl19ZXIgDQptb2Rlcm5lbiBoaXN0b3Jpc2NoZW4gRHJhbWVuIGVyYmF1ZW4gYWxzIGFuIGRlbiBTY2hsYWdlenVcJ3MgdW5kIEhhbHRlLSB7WyYqJl19DQpmZXN0XCdzLCBkZW4gdW5iYXJtaGVyemlnZW4gVHlyYW5uZW4sIGRlbiBob2NoZmFocmVuZGVuIFJpdHRlcm4sIGRlbiBpbi0gDQp7WyYqJl19dHJpZ3VhbnRlbiBQcmllc3Rlcm4gdW5kIGxlaWRlbnNjaGFmdGxpY2hlbiBXZWliZXJuIGRlciBTaGFrZXNwZWFyZVwnc2NoZW4gDQp7WyYqJl19SGlzdG9yaWVuID9cIiDigJQgU2hha2VzcGVhcmUtRnJhZ2VuXiBwLiA5Mi4gSSBhbSBpbmRlYnRlZCB0byBvdGhlciBwYXNzYWdlcyB7WyYqJl19DQppbiB0aGUgc2FtZSBsZWN0dXJlIGZvciBzb21lIHN1Z2dlc3Rpb25zLiANCg0KZiBBLiBNZXppXnJlcywgXCJTaGFrZXNwZWFyZSx7WyYqJl19IHNlcyBDRXV2cmVzIGV0IHNlcyBDcml0aXF1ZXMsXCIgcC4gMTU0LiBNLiANCk1lemlecmVzIHN0dWRpZXMgdGhlIGhpc3RvcmljYWx7WyYqJl19IGRyYW1hcyBvZiBTaGFrc3BlcmUgaW4gYSBoaWdobHkgaW50ZXJlc3RpbmcgDQptYW5uZXIsIHRocm93aW5nIHRoZSBjaGFyYWN0ZXtbJiomXX1ycyBpbnRvIGdyb3VwcyDigJQgdGhlIHdvbWVuLCB0aGUgY2hpbGRyZW4sIHRoZSANCnBlb3BsZSwgdGhlIGxvcmRzLCB0aGUgcHJle1smKiZdfWxhdGVzLCB0aGUga2luZ3MuIA0KDQpYIEtyZXlzc2lnLCBcIiBTaGFrZXNwZWFyZS1GcmFnZW4sXCIgcC4gOTYuIA0KDQpUaGUgUm9tYXtbJiomXX1uIFBsYXlzLiAyODkgDQoNCnNwZXJlIHJlY29nbml6ZXMgdGhhdCB0aGUgaGVhcnQgb2YgdGhlIHBlb3BsZSBpcyBzb3VuZCA7IA0Ke1smKiZdfXRoZWlyIGZlZWxpbmdzIGFyZSBnZW5lcmFsbHkgcmlnaHQsIGJ1dCB0aGVpciB2aWV3IG9mIGZhY3RzIA0KaXMgcGVydmVydGVkIGJ7WyYqJl19eSBpbnRlcmVzdHMsIGJ5IHBhc3Npb25zLCBieSBzdHVwaWRpdHkuIEluIA0KdGhlIHBsYXkgb2YgQ29yaW9sYW51cyB0aGUgY2l0aXtbJiomXX16ZW5zIGFyZSBub3QgaW5zZW5zaWJsZSB0byANCnRoZSB2aXJ0dWVzIG9mIHRoZSBncmVhdCBDb25zdWwgOyB0aGV5IGFwcHJlY2lhe1smKiZdfXRlIHRoZSBodS0gDQptb3JvdXMga2luZGxpbmVzcyBvZiB0aGUgcGF0cmljaWFuIE1lbmVuaXVzLiBCdXQgdGhleSANCmFyZSBhcyB7WyYqJl19d2F4IGluIHRoZSBoYW5kcyBvZiB0aGVpciBkZW1hZ29ndWVzLiBJcyBTaGFrLSANCnNwZXJlXCdzIHJlcHJlc2VudGF0aW9uIHNvIHd7WyYqJl19aG9sbHkgdW5qdXN0IHRvIHRoZSBzZXZlbi0gDQp0ZWVudGggY2VudHVyeSwgb3IgZXZlbiB0byB0aGUgbmluZXRlZW50aCA/IEhlIHtbJiomXX1oYWQgbm8gDQpwb2xpdGljYWwgZG9jdHJpbmFpcmUgcGhpbG9zb3BoeSwgbm8gaHVtYW5pdGFyaWFuIGlkZWFsLSANCmlzbSwgdG8ge1smKiZdfXB1dCBiZXR3ZWVuIGhpbXNlbGYgYW5kIHRoZSBmYWN0cyBjb25jZXJuaW5nIHRoZSANCmNoYXJhY3RlciBvZiB0aGUgcGVvcGxlLiB7WyYqJl19SGlzIGFnZSBkaWQgbm90IHN1cHBseSBoaW0gDQp3aXRoIGh1bWFuaXRhcmlhbiBpZGVhbGlzbTsgYnV0IG1hbiBkZWxpZ2h0ZWQgU3tbJiomXX1oYWstIA0Kc3BlcmUsIGFuZCB3b21hbiBhbHNvLiBUaGVyc2l0ZXMgd2FzIG5vdCBiZXlvbmQgdGhlIA0KcmFuZ2Ugb2YgaGlzIHN5e1smKiZdfW1wYXRoeS4gQW5kIHRvIFNoYWtzcGVyZSB0aGUgcGVvcGxlIA0KZGlkIG5vdCBhcHBlYXIgYXMgVGhlcnNpdGVzIDsgYXQgd29yc3R7WyYqJl19IGl0IGFwcGVhcmVkIGFzIENhbC0gDQppYmFuLiANCg0KRnVydGhlciwgaWYgU2hha3NwZXJlIGV4cG9zZXMgdGhlIHZpY2VzIG9mIHtbJiomXX1hIG1vYiwgaGUgDQpzaHJpbmtzIGFzIGxpdHRsZSBmcm9tIGV4cG9zaW5nIHRoZSB2aWNlcyBvZiBhIGNvdXJ0LiBUaGUgDQp3aXNke1smKiZdfW9tIG9mIHRoZSBwb3B1bGFjZSBpcyBub3QgaW5mZXJpb3IgdG8gdGhlIHdpc2RvbSBvZiBhIA0KUG9sb25pdXMuIFRoZSBtYW5uZXJ7WyYqJl19cyBvZiBoYW5kaWNyYWZ0c21lbiBhcmUgYXMgdHJ1bHkgDQpnZW50bGUgYXMgdGhlIG1hbm5lcnMgb2YgT3NyaWMuIE9mIGNlcmVtb3tbJiomXX1ueSBTaGFrc3BlcmUgDQp3YXMgbm8gbG92ZXIgOyBidXQgaGUgd2FzIGRlZXBseSBpbiBsb3ZlIHdpdGggYWxsIHRoYXQgaXMgDQpze1smKiZdfW91bmQsIHN1YnN0YW50aWFsLCBob25lc3QuIFByaW5jZSBIZW5yeSBmbGllcyBmcm9tIHRoZSANCmluYW5pbWF0ZSwgYmxvb2RsZXN7WyYqJl19cywgYW5kIGluc2luY2VyZSB3b3JsZCBvZiBoaXMgZmF0aGVyXCdzIA0KY291cnQgdG8gdGhlIHNvY2lldHkgb2YgZHJhd2VycyBhbmR7WyYqJl19IGNhcnJpZXJzIGluIEVhc3RjaGVhcC4gDQpJbiB0aGUgcGxheSBvZiBDb3Jpb2xhbnVzXiB0aGUgaW50b2xlcmFudCBoYXVnaHRpbntbJiomXX1lc3MgYW5kIA0KaW5qdXN0aWNlIG9mIHRoZSBwYXRyaWNpYW4gaXMgYnJ1dGFsIGFuZCBzdHVwaWQsIG5vdCBsZXNzLCANCmJ1dCBye1smKiZdfWF0aGVyIG1vcmUsIHRoYW4gdGhlIHBsZWJlaWFuIGluY29uc3RhbmN5IGFuZCB0dXItIA0KYnVsZW5jZS4gDQoNCkluIFNoYWtzcGV7WyYqJl19cmVcJ3MgbGF0ZSBwbGF5LCBUaGUgVGVtcGVzdF4gd3JpdHRlbiB3aGVuIA0KaGUgd2FzIGFib3V0IHRvIHJldGlyZSBmb3IgZ29vZCB7WyYqJl19dG8gaGlzIFN0cmF0Zm9yZCBob21lLCBoZSANCmluZHVsZ2VzIGluIGEgc2x5IGxhdWdoIGF0IHRoZSBwcmluY2lwbGVzIG9mIGNvbXtbJiomXX1tdW5pc20uIA0KSGUgd2hvIGhhZCBlYXJuZWQgdGhlIE5ldyBQbGFjZSwgYW5kIGJlY29tZSBhIGxhbmRlZCANCmpnZW50bGVtYW4ge1smKiZdfWJ5IHllYXJzIG9mIGlya3NvbWUgdG9pbCwgZGlkIG5vdCBzZWUgdGhhdCBobyANCjE5IA0KDQoyOTAgU2hha3NwZXJlIOKAlCBIaXN7WyYqJl19IE1pbmQgYW5kIEFydC4gDQoNCndhcyBib3VuZCB0byBzaGFyZSBoaXMgdGVuZW1lbnRzIGFuZCBsYW5kcyB3aXRoIGhpcyBsZXNhIHtbJiomXX0NCmluZHVzdHJpb3VzIG5laWdoYm9ycy4gT24gdGhlIGNvbnRyYXJ5LCBoZSBtZWFudCB0byBob2xkIA0KdGhlbSBoaW1zZWxmIGJ5e1smKiZdfSBldmVyeSBsZWdhbCB0aXRsZSwgYW5kLCBhdCBoaXMgZGVjZWFzZSwgdG8gDQpoYW5kIHRoZW0gZG93biB0byBoaXMgZGF1Z2h0ZXJ7WyYqJl19IGFuZCBoZXIgc29ucyBhbmQgc29uc1wnIA0Kc29ucy4gSW50byB0aGUgbW91dGggb2YgdGhlIGhvbmVzdCBvbGQgY291bnNlbGxvciB7WyYqJl19R29uLSANCnphbG8sIHRoZSBkcmFtYXRpc3QgcHV0cyB0aGUgcGxlYXNhbnQgdGhlb3J5IG9mIGNvbW11LSANCm5pc20gYW5kIG9mIHtbJiomXX1odW1hbiBwZXJmZWN0aWJpbGl0eSwgYW5kIEdvbnphbG8gaXMgYW11cy0gDQppbmdseSBsYW5kZWQgaW4gdGhlIGluY29uc2VxdWVue1smKiZdfWNlIG9mIHJlc29sdmluZyB0byBiZSBoaW0tIA0Kc2VsZiBzb3ZlcmVpZ24gb2YgaGlzIGtpbmdsZXNzIGNvbW1vbndlYWx0aC5eIEl7WyYqJl19biBTaGFrLSANCnNwZXJlXCdzIGVhcmxpZXN0IHBsYXksIG9yIG9uZSBvZiB0aGUgZWFybGllc3QsIEhlbnJ5IFZJLiwgYW5kIA0KaW57WyYqJl19IGEgcGFzc2FnZSBjZXJ0YWlubHkgbm90IHdyaXR0ZW4gYnkgTWFybG93ZSwgbm9yIGluIHRoZSANCm1hbm5lciBvZiBHcmVlbmUsIHtbJiomXX1KYWNrIENhZGUgYW5ub3VuY2VzIGhpcyBpbnRlbmRlZCANCnJlZm9ybWF0aW9uIG9mIHRoZSBzdGF0ZSBvZiBFbmdsYW5kLiBcIiBCZXtbJiomXX0gYnJhdmUsIHRoZW4gOyANCmZvciB5b3VyIGNhcHRhaW4gaXMgYnJhdmUsIGFuZCB2b3dzIHJlZm9ybWF0aW9uLiBUaGVyZSANCnNoe1smKiZdfWFsbCBiZSBpbiBFbmdsYW5kIHNldmVuIGhhbGYtcGVubnkgbG9hdmVzIHNvbGQgZm9yIGEgDQpwZW5ueSA7IHRoZSB0aHJlZS1ob297WyYqJl19cGVkIHBvdCBzaGFsbCBoYXZlIHRlbiBob29wcyA7IGFuZCANCkkgd2lsbCBtYWtlIGl0IGZlbG9ueSB0byBkcmluayBzbWFsbCBiZXtbJiomXX1lciA7IGFsbCB0aGUgcmVhbG0gDQpzaGFsbCBiZSBpbiBjb21tb24sIGFuZCBpbiBDaGVhcHNpZGUgc2hhbGwgbXkgcGFsZnJleSANe1smKiZdfQpnbyB0byBncmFzcyA6IGFuZCB3aGVuIEkgYW0ga2luZywgYXMga2luZyBJIHdpbGwgYmUg4oCUIFwnXCcgDQpBbmQgdGhlIHBlb3BsZXtbJiomXX0gc2hvdXQsIFwiIEdvZCBzYXZlIHlvdXIgbWFqZXN0eSAhXCIgR2VvcmdlIA0KQmV2aXMgYW5kIEpvaG4gSG9sbGFuZCBkaXNjdXNzIGF7WyYqJl19ZmZhaXJzIG9mIHN0YXRlIDogDQoNClwiIEJldmlzLiBJIHRlbGwgdGhlZSwgSmFjayBDYWRlIHRoZSBjbG90aGllciBtZWFucyB0byB7WyYqJl19ZHJlc3MgdGhlIGNvbW1vbi0gDQp3ZWFsdGgsIGFuZCB0dXJuIGl0LCBhbmQgZ2V0IGEgbmV3IG5hcCB1cG9uIGl0LiANCg0KSG9VLntbJiomXX0gU28gaGUgaGFkIG5lZWQsIGZvciBcJ3RpcyB0aHJlYWRiYXJlLiBXZWxsLCBJIHNheSBpdCB3YXMgbmV2ZXIgbWVycnkgDQp3b3JsZHtbJiomXX0gaW4gRW5nbGFuZCBzaW5jZSBnZW50bGVtZW4gY2FtZSB1cC4gDQoNCkJldmlzLiBtaXNlcmFibGUgYWdlICEgdmlydHVlIGlzIG5ve1smKiZdfXQgcmVnYXJkZWQgaW4gaGFuZGljcmFmdHNtZW4uIA0KDQpIb1UuIFRoZSBub2JpbGl0eSB0aGluayBzY29ybiB0byBnbyBpbiBsZWF7WyYqJl19dGhlciBhcHJvbnMuIA0KDQpCZXZpcy4gTmF5LCBtb3JlLCB0aGUgS2luZ1wncyBjb3VuY2lsIGFyZSBubyBnb29kIHdvcmttZW4uIA17WyYqJl19Cg0KSG9VLiBUcnVlIDsgYW5kIHlldCBpdCBpcyBzYWlkLiBMYWJvciBpbiB0aHkgdm9jYXRpb24gOyB3aGljaCBpcyBhcyBtdWNoIHtbJiomXX1hcyANCnRvIHNheSwgbGV0IHRoZSBtYWdpc3RyYXRlcyBiZSBsYWJvcmluZyBtZW4gOyBhbmQgdGhlcmVmb3JlIHNob3VsZCB3ZSBie1smKiZdfWUgDQptYWdpc3RyYXRlcy4gDQoNCkJldmlzLiBUaG91IGhhc3QgaGl0IGl0IDsgZm9yIHRoZXJlXCdzIG5vIGJldHRlciBzaWduIG9me1smKiZdfSBhIGJyYXZlIG1pbmQgdGhhbiBhIA0KaGFyZCBoYW5kLlwiIA0KDQoqIFNoYWtzcGVyZSBib3Jyb3dzIGhpcyBpbWFnaW5hcnkgY29te1smKiZdfW1vbndlYWx0aCBmcm9tIE1vbnRhaWduZS4gT24gDQpTaGFrc3BlcmVcJ3Mgb2JsaWdhdGlvbnMgdG8gTW9udGFpZ25lXiBzXmUgTS4ge1smKiZdfVBoaWxhcl50ZSBDaGFzbGVzIDogXCIgRXR1ZGV0bCANCmd1ciBTaGFrZXNwZWFyZSxcIiBwcC4gMTYyLTE4NywgDQoNClRoZSBSb21hbntbJiomXX0gUGxheXMtLiAyOTEgDQoNClwiIEFuIGF1ZGllbmNlLFwiIHdyaXRlcyBNci4gV2FsdGVyIEJhZ2Vob3QsIFwiIHdoaWNoIGhvbmEgDQpme1smKiZdfWlkZSBlbnRlcmVkIGludG8gdGhlIG1lcml0IG9mIHRoaXMgc2NlbmUgd291bGQgbmV2ZXIgYmUtIA0KbGlldmUgaW4gZXZlcnlib2R7WyYqJl19eVwncyBzdWZsUHJhZ2UuIFRoZXkgd291bGQga25vdyB0aGF0IA0KdGhlcmUgaXMgc3VjaCBhIHRoaW5nIGFzIG5vbnNlbnNlIDsgYW57WyYqJl19ZCB3aGVuIGEgbWFuIGhhcyANCm9uY2UgYXR0YWluZWQgdG8gdGhhdCBkZWVwIGNvbmNlcHRpb24sIHlvdSBtYXkgYmUgc3VyZSANCntbJiomXX1vZiBoaW0gZXZlciBhZnRlci4gLiAuIC4gVGhlIGF1dGhvciBvZiBDb3Jpb2xhbnVzIG5ldmVyIA0KYmVsaWV2ZWQgaW4gYSBtb2Ise1smKiZdfSBhbmQgZGlkIHNvbWV0aGluZyB0b3dhcmRzIHByZXZlbnQtIA0KaW5nIGFueWJvZHkgZWxzZSBmcm9tIGRvaW5nIHNvLiBCdXQgdGh7WyYqJl19aXMgcG9saXRpY2FsIGlkZWEgDQp3YXMgbm90IGV4YWN0bHkgdGhlIHN0cm9uZ2VzdCBpbiBTaGFrc3BlcmVcJ3MgbWluZC4gLiAuIC57WyYqJl19IA0KSGUgaGFkIHR3byBvdGhlcnMgc3Ryb25nZXIsIG9yIGFzIHN0cm9uZy4gRmlyc3QsIHRoZSBmZWVsLSANCmluZyBvZiBsb3lhbHtbJiomXX10eSB0byB0aGUgYW5jaWVudCBwb2xpdHkgb2YgdGhpcyBjb3VudHJ5LCBub3QgDQpiZWNhdXNlIGl0IHdhcyBnb29kLCBidXQgYmVje1smKiZdfWF1c2UgaXQgZXhpc3RlZC4gLiAuIC4gVGhlIA0Kc2Vjb25kIHBlY3VsaWFyIHRlbmV0IHdoaWNoIHdlIGFzY3JpYmUgdG8gaGlzIHB7WyYqJl19b2xpdGljYWwgDQpjcmVlZCBpcyBhIGRpc2JlbGllZiBpbiB0aGUgbWlkZGxlIGNsYXNzZXMuIFdlIGZlYXIgaGUgaGFkIA0Kbm8gb3tbJiomXX1waW5pb24gb2YgdHJhZGVycy4gLiAuIC4gWW91IHdpbGwgZ2VuZXJhbGx5IGZpbmQgdGhhdCANCndoZW4gYSBcJyBjaXRpemVuIFwnIGl7WyYqJl19cyBtZW50aW9uZWQsIGhlIGRvZXMgb3Igc2F5cyBzb21ldGhpbmcgDQphYnN1cmQuXiBTaGFrc3BlcmUgaGFkIGEgY2xlYXIgcGVyY3tbJiomXX1lcHRpb24gdGhhdCBpdCBpcyBwb3MtIA0Kc2libGUgdG8gYnJpYmUgYSBjbGFzcyBhcyB3ZWxsIGFzIGFuIGluZGl2aWR1YWwuIC4ge1smKiZdfeKAoiAuIEhlIA0KZXZlcnl3aGVyZSBzcGVha3MgaW4gcHJhaXNlIG9mIGEgdGVtcGVyZWQgYW5kIG9yZGVyZWQgDQphbmQgcXVhbGl7WyYqJl19ZmllZCBwb2xpdHksIGluIHdoaWNoIHRoZSBwZWN1bmlhcnkgY2xhc3NlcyBoYXZlIA0KYSBjZXJ0YWluIGluZmx1ZW5jZSwgYnV0IHtbJiomXX1ubyBtb3JlOyBhbmQgc2hvd3MgaW4gZXZlcnkgDQpwYWdlIGEga2VlbiBzZW5zaWJpbGl0eSB0byB0aGUgbGFyZ2Ugdmlld3MgYW5ke1smKiZdfSBoaWdoLXNvdWxlZCANCmVuZXJnaWVzLCB0aGUgZ2VudGxlIHJlZmluZW1lbnRzIGFuZCBkaXNpbnRlcmVzdGVkIGRlc2lyZXMsIA17WyYqJl19CmluIHdoaWNoIHRob3NlIGNsYXNzZXMgYXJlIGxpa2VseSB0byBiZSBlc3BlY2lhbGx5IGRlZmktIA0KY2llbnQuIEhlIGlzIHBhcntbJiomXX10aWN1bGFybHkgdGhlIHBvZXQgb2YgcGVyc29uYWwgbm9iaWxpdHksIA0KdGhvdWdoIHRocm91Z2hvdXQgaGlzIHdyaXRpbmdzIHRoe1smKiZdfWVyZSBpcyBhIHNlbnNlIG9mIGZyZWUtIA0KZG9tIDsganVzdCBhcyBNaWx0b24gaXMgdGhlIHBvZXQgb2YgZnJlZWRvbSwgdGhvdWd7WyYqJl19aCB3aXRoIA0KYW4gdW5kZXJseWluZyByZWZlcmVuY2UgdG8gcGVyc29uYWwgbm9iaWxpdHk7IGluZGVlZCwgd2UgDQptaWdodCB3ZXtbJiomXX1sbCBleHBlY3Qgb3VyIHR3byBwb2V0cyB0byBjb21iaW5lIHRoZSBhcHByZS0gDQpjaWF0aW9uIG9mIGEgcnVkZSBhbmQgZ2VuZXJve1smKiZdfXVzIGxpYmVydHkgd2l0aCB0aGF0IG9mIGEgZGVsLSANCmljYXRlIGFuZCByZWZpbmVkIG5vYmxlbmVzcywgc2luY2UgaXQgaXMgdGh7WyYqJl19ZSB1bmlvbiBvZiB0aGVzZSANCg0KKiBOb3QgYWx3YXlzLiBTZWUsIGZvciBleGFtcGxlLCBLaW5nIFJpY2hhcmQgSUlJLl4gYWN0IHtbJiomXX1paS4sIHNvLiAzLCB3aGVyZSBhIA0KXCJkaXZpbmUgaW5zdGluY3QsXCIgaW5mb3JtaW5nIG1lblwncyBtaW5kcyBvZiBjb21pbmcgZGFue1smKiZdfWdlciwgbW92ZXMgaW4gdGhlIA0KYnJlYXN0cyBvZiB0aGUgY2l0aXplbnMuIA0KDQoyOTIgU2hha3NwZXJlIOKAlCBIaXMgTWluZCB7WyYqJl19YW5kIEFydC4gDQoNCnR3byBlbGVtZW50cyB0aGF0IGNoYXJhY3Rlcml6ZXMgb3VyIHNvY2lldHkgYW5kIHRoZWlyIGV4IA0KcGVyaXtbJiomXX1lbmNlLlwiIFwiXiANCg0KQWx0aG91Z2ggdGhlIHBsYXkgb2YgQ29yaW9sYW51cyBhbG1vc3QgaW5ldml0YWJseSANCnN1Z2dlc3RzIGF7WyYqJl19IGRpZ3Jlc3Npb24gaW50byB0aGUgY29uc2lkZXJhdGlvbiBvZiB0aGUgcG9saS0gDQp0aWNzIG9mIFNoYWtzcGVyZSwgaXQgbXVzdHtbJiomXX0gb25jZSBhZ2FpbiBiZSBhc3NlcnRlZCB0aGF0IHRoZSANCmNlbnRyYWwgYW5kIHZpdmlmeWluZyBlbGVtZW50IGluIHRoZSBwbGF5e1smKiZdfSBpcyBub3QgYSBwb2xpdGktIA0KY2FsIHByb2JsZW0sIGJ1dCBhbiBpbmRpdmlkdWFsIGNoYXJhY3RlciBhbmQgbGlmZS4gVGhlIA17WyYqJl19CnRyYWdpYyBzdHJ1Z2dsZSBvZiB0aGUgcGxheSBpcyBub3QgdGhhdCBvZiBwYXRyaWNpYW5zIHdpdGggDQpwbGViZWlhbnMsIGJ1dHtbJiomXX0gb2YgQ29yaW9sYW51cyB3aXRoIGhpcyBvd24gc2VsZi4gSXQgaXMgbm90IA0KdGhlIFJvbWFuIHBlb3BsZSB3aG8gYnJpbmcgYWJve1smKiZdfXV0IGhpcyBkZXN0cnVjdGlvbiA7IGl0IGlzIA0KdGhlIHBhdHJpY2lhbiBoYXVnaHRpbmVzcyBhbmQgcGFzc2lvbmF0ZSBzZWxmLXd7WyYqJl19aWxsIG9mIENvci0gDQppb2xhbnVzIGhpbXNlbGYuIFdlcmUgdGhlIGNvbnRlc3Qgb2YgcG9saXRpY2FsIHBhcnRpZXMgDQp0aGUgY3tbJiomXX1oaWVmIGludGVyZXN0IG9mIFNoYWtzcGVyZVwncyBkcmFtYSwgdGhlIGZpZ3VyZXMgb2YgDQp0aGUgdHJpYnVuZXMgbXVzdCBoYXZlIHtbJiomXX1iZWVuIGRyYXduIHVwb24gYSBsYXJnZXIgc2NhbGUuIA0KVGhleSB3b3VsZCBoYXZlIGJlZW4gZW5kb3dlZCB3aXRoIHNvbWV0aGlue1smKiZdfWcgbW9yZSANCnRoYW4gXCIgZiBveHNoaXAuXCIgQXMgcmVwcmVzZW50YXRpdmVzIG9mIGEgZ3JlYXQgcHJpbmNpcGxlLCANCm9yIG9mIHtbJiomXX1hIHBvd2VyIGNvbnN0YW50bHkgdGVuZGluZyBpbiBvbmUgZGlyZWN0aW9uLCB0aGV5IA0KbWlnaHQgaGF2ZSBhcHBlYXJlZCB3b3J0e1smKiZdfWh5IHJpdmFscyBvZiB0aGUgbGVhZGVycyBvZiB0aGUgDQpwYXRyaWNpYW4gcGFydHkgOyBhbmQgdGhlIGZhbGwgb2YgQ29yaW9sYW57WyYqJl19dXMgd291bGQgYmUgc2lnLSANCm5hbGl6ZWQgYnkgc29tZSBjb25xdWVzdCBhbmQgYWR2YW5jZSBvZiB0aGUgdGlkZSBvZiANCnBvcHtbJiomXX11bGFyIHBvd2VyLmYgU2hha3NwZXJlXCdzIGRyYW1hIGlzIHRoZSBkcmFtYSBvZiBpbi0gDQpkaXZpZHVhbGl0eSwgaW5jbHVkaW5nIHtbJiomXX11bmRlciB0aGlzIG5hbWUgYWxsIHRob3NlIGJvbmRzIA0Kb2YgZHV0eSBhbmQgb2YgYWZmZWN0aW9uIHdoaWNoIGF0dGFjaCBtYW4ge1smKiZdfXRvIGhpcyBmZWxsb3ctIA0KbWFuLCBidXQgbm90IGltcGVyc29uYWwgcHJpbmNpcGxlcyBhbmQgaWRlYXMuOn06IFRoZSBwYXMtIA17WyYqJl19Cg0KKiBXYWx0ZXIgQmFnZWhvdCwgXCIgRXN0aW1hdGVzIG9mIFNvbWUgRW5nbGlzaG1lbiBhbmQgU2NvdGNobWVuLFwiIHBwLiANCjI1e1smKiZdfVwnNy0yNjAuIFNlZSBvbiB0aGUgc3ViamVjdCBnZW5lcmFsbHkgb2YgdGhlIGxpdGVyYXR1cmUgb2YgYXJpc3RvY3JhdGljIGFuZCBve1smKiZdfWYgDQpkZW1vY3JhdGljIGVwb2NocyB0aGUgd3JpdGVyXCdzIGFydGljbGUgXCJUaGUgUG9ldHJ5IG9mIERlbW9jcmFjeSDigJQgV2FsdHtbJiomXX0gDQpXaGl0bWFuLFwiIFdlc3RtaW5zdGVyIFJldmlld14gSnVseSwgMTg3MS4gDQoNCmYgSSBvd2UgdGhpcyBvYnNlcnZhdGlvbiB0b3tbJiomXX0gUHJvZmVzc29yIEguIFRoLiBSb3RzY2hlciwgXCIgU2hha2VzcGVhcmUgaW4gDQpzZWluZW4gaG9jaHN0ZW4gQ2hhcmFjdGVyZ2ViaXtbJiomXX1sZGVuLFwiIGV0Yy4gKERyZXNkZW4sIDE4NjQpLCBwLiAyMC4gDQoNCiUgXCJIaXMgW1NoYWtzcGVyZVwnc10gZHJhbWEgaXMgdGhlIGRye1smKiZdfWFtYSBvZiBpbmRpdmlkdWFsaXR5LiAuIC4gLiBTaGFrLSANCnNwZXJlIHNob3dzIG5laXRoZXIgdGhlIGNvbnNjaW91c25lc3Mgb2Z7WyYqJl19IGEgbGF3IG5vciBvZiBodW1hbml0eSA7IHRoZSBmdXQtIA0KdXJlIGlzIG11dGUgaW4gaGlzIGRyYW1hcywgYW5kIGVudGh1c2lhc3tbJiomXX1tIGZvciBncmVhdCBwcmluY2lwbGVzIHVua25vd24uIA0KSGlzIGdlbml1cyBjb21wcmVoZW5kcyBhbmQgc3VtcyB1cCB0aGUgcGFze1smKiZdfXQgYW5kIHRoZSBwcmVzZW50IDsgaXQgZG9lcyBub3QgDQppbml0aWF0ZSB0aGUgZnV0dXJlLiBIZSBpbnRlcnByZXRlZCBhbiBlcG97WyYqJl19Y2ggOyBoZSBhbm5vdW5jZWQgbm9uZS5cIiDigJQgSm8qIA0KQkVQSCBNYXp6aW5pLCBMaWZlIGFuZCBXcml0aW5nc14gdm9sLiBpaS57WyYqJl19LCBwcC4gMTMzLCAxMzQuIFNlZSBSaWltZWxpbiwgXCIgU2hha2UqIA0KZ3BlYXJlLVN0dWRpZW4vXCcgcHAuIDE2OSwgMTcwLiANCg0Ke1smKiZdfVRoZSBSb21hbiBQbGF5cy4gMjkzIA0KDQpCaW9uIG9mIHBhdHJpb3Rpc20sIGhpZ2gtdG9uZWQgYW5kIGVudGh1c2lhc3RpYywgc3R7WyYqJl19YW5kcyANCndpdGggU2hha3NwZXJlIGluc3RlYWQgb2YgZ2VuZXJhbCBwb2xpdGljYWwgcHJpbmNpcGxlcyANCmFuZCBpZGVhczsgYXtbJiomXX1uZCB0aGUgbGlmZSBvZiB0aGUgaW5kaXZpZHVhbCBpcyB3aWRlbmVkIGFuZCANCmVsZXZhdGVkIGJ5IHRoZSBuYXRpb25hbCBsaWZle1smKiZdfSwgdG8gd2hpY2ggdGhlIGluZGl2aWR1YWwgc3VyXiANCnJlbmRlcnMgaGltc2VsZiB3aXRoIGdsYWRuZXNzIGFuZCB3aXRoIHByaWR7WyYqJl19ZS4gDQoNClRoZSBwcmlkZSBvZiBDb3Jpb2xhbnVzIGlzLCBob3dldmVyLCBub3QgdGhhdCB3aGljaCANCmNvbWVzIGZyb20gc2VsZntbJiomXX0gLXN1cnJlbmRlciB0byBhbmQgdW5pb24gd2l0aCBzb21lIHBvdy0gDQplciBvciBwZXJzb24gb3IgcHJpbmNpcGxlIGhpZ2hlciB0e1smKiZdfWhhbiBvbmVcJ3Mgc2VsZi4gSXQgaXMgDQp0d29mb2xkIOKAlCBhIHBhc3Npb25hdGUgc2VsZi1lc3RlZW0gd2hpY2ggaXMgZXNzZW50e1smKiZdfWlhbGx5IA0KZWdvaXN0aWMsIGFuZCwgc2Vjb25kbHksIGEgcGFzc2lvbmF0ZSBwcmVqdWRpY2Ugb2YgY2xhc3MuIA0KSGlzIG5hdHV7WyYqJl19cmUgaXMgdGhlIHJldmVyc2Ugb2YgY29sZCBvciBzZWxmaXNoIDsgaGlzIHN5bXBhLSANCnRoaWVzIGFyZSBkZWVwLCB3YXJtLCBhbntbJiomXX1kIGdlbmVyb3VzIDsgYnV0IGEgbGluZSwgaGFyZCBhbmQgDQpmYXN0LCBoYXMgYmVlbiBkcmF3biBmb3IgaGltIGJ5IHRoZSBhcmlze1smKiZdfXRvY3JhdGljIHRyYWRpdGlvbiwgDQphbmQgaXQgaXMgb25seSB3aXRoaW4gdGhhdCBsaW5lIHRoYXQgaGUgcGVybWl0cyBoaXMgc3l7WyYqJl19bXBhLSANCnRoaWVzIHRvIHBsYXkuIFRvIHRoZSBzdXJwcmlzZSBvZiB0aGUgdHJpYnVuZXMsIGhlIGNhbiANCmFjY2VwdCwgd2VsbHtbJiomXX0gcGxlYXNlZCwgYSBzdWJvcmRpbmF0ZSBjb21tYW5kIHVuZGVyIENvbWluLSANCml1cy4gSGUgeWllbGRzIHdpdGgga2luZGx5IGNve1smKiZdfW5kZXNjZW5zaW9uIHRvIGFjY2VwdCB0aGUgDQpkZXZvdGlvbiBhbmQgZmlkZWxpdHkgb2YgTWVuZW5pdXMsIGFuZCBjaGVyaXNoZXN7WyYqJl19IHRvd2FyZHMgDQp0aGUgb2xkIG1hbiBhIGZpbGlhbCByZWdhcmQg4oCUIHRoZSBmZWVsaW5nIG9mIGEgc29uIHdobyBoYXMgDQp0aHtbJiomXX1lIGNvbnNjaW91c25lc3MgdGhhdCBoZSBpcyBncmVhdGVyIHRoYW4gaGlzIGZhdGhlci4gSGUgDQptdXN0IGRpc21pc3MgTWVuZW5pe1smKiZdfXVzIGRpc2FwcG9pbnRlZCBmcm9tIHRoZSBZb2xzY2lhbiANCmNhbXAgOyBidXQgaGUgY29udHJpdmVzIGFuIGlubm9jZW50IGZyYXV7WyYqJl19ZCBieSBtZWFucyBvZiANCndoaWNoIHRoZSBvbGQgc2VuYXRvciB3aWxsIGZhbmN5IHRoYXQgaGUgaGFzIGVmZmVjdGVkIA0KbW9yZXtbJiomXX0gZm9yIHRoZSBwZWFjZSBvZiBSb21lIHRoYW4gYW5vdGhlciBjb3VsZC4gRm9yIA0KVmlyZ2lsaWEsIHRoZSBnZW50bGUgd29tYW4ge1smKiZdfWluIHdob20gaGlzIGhlYXJ0IGZpbmRzIHJlc3QsIA0KQ29yaW9sYW51cyBoYXMgYSBtYW5seSB0ZW5kZXJuZXNzIGFuZCBjb25zdGF7WyYqJl19bnQgZnJlc2huZXNzIA0Kb2YgYWRoZXNpb24gOiANCg0KKlwnIDAsIGEga2lzcyANCkxvbmcgYXMgbXkgZXhpbGUsIHN3ZWV0IGFzIG17WyYqJl19eSByZXZlbmdlICEgDQpOb3csIGJ5IHRoZSBqZWFsb3VzIHF1ZWVuIG9mIGhlYXZlbiwgdGhhdCBraXNzIA0KSSBjYXJyaWVkIGZyb3tbJiomXX1tIHRoZWUsIGRlYXIgOyBhbmQgbXkgdHJ1ZSBsaXAgDQpIYXRoIHZpcmdpblwnZCBpdCBlXCdlciBzaW5jZSAhXCIgDQoNCkluIGhpcyBie1smKiZdfW95IGhlIGhhcyBhIGZhdGhlclwncyBqb3ksIGFuZCB5aWVsZHMgdG8gYW4gYW1iaXRpb3VzIA0KaG9wZSwgYW5kIGEgeWVhcm5pbmcge1smKiZdfWZvcndhcmQgdG8gaGlzIHNvblwncyBwb3NzaWJsZSBmdXR1cmUgDQpvZiBoZXJvaWMgYWN0aW9uLCBpbiB3aGljaCB0aGVyZSBpcyBze1smKiZdfW9tZXRoaW5nIG9mIHRvdWNoaW5nIA0KcGF0ZXJuYWwgd2Vha25lc3MgOiANCg0KWCANCg0KMjk0IFNoYWtzcGVyZSDigJQgSGlzIE17WyYqJl19aW5kIGFuZCBBcnQuIA0KDQpcIiBUaGUgZ29kIG9mIHNvbGRpZXJzLCANCldpdGggdGhlIGNvbnNlbnQgb2Ygc3VwcmVtZSBKb3ZlLCB7WyYqJl19aW5mb3JtIA0KVGh5IHRob3VnaHRzIHdpdGggbm9ibGVuZXNzIDsgdGhhdCB0aG91IG1heVwnc3QgcHJvdmUgDQpUbyBzaGFtZSB1bnZ7WyYqJl19dWxuZXJhYmxlLCBhbmQgc3RpY2sgaSogdGhlIHdhcnMgDQpMaWtlIGEgZ3JlYXQgc2VhLW1hcmssIHN0YW5kaW5nIGV2ZXJ5IGZsYXtbJiomXX13LCANCkFuZCBzYXZpbmcgdGhvc2UgdGhhdCBleWUgdGhlZSAhXCIgDQoNCkhpcyB3aWZlXCdzIGZyaWVuZCBWYWxlcmlhIGlzIHRoZSB7WyYqJl19XCIgbW9vbiBvZiBLb21lL1wnIA0KDQpcIiBDaGFzdGUgYXMgdGhlIGljaWNsZSANClRoYXRcJ3MgY3VyZGxlZCBieSB0aGUgZnJvc3QgZnJ7WyYqJl19b20gcHVyZXN0IHNub3cgDQpBbmQgaGFuZ3Mgb24gRGlhbipzIHRlbXBsZS5cIiAqIA0KDQpJbiBoaXMgbW90aGVyLCBWb2x1bW5pYSx7WyYqJl19IHRoZSBhd2Z1bCBSb21hbiBtYXRyb24sIGhlIA0KcmVqb2ljZXMgd2l0aCBhIG5vYmxlIGVudGh1c2lhc20gYW5kIHByaWRlIDsgYXtbJiomXX1uZCB3aGlsZSANCnNoZSBpcyBwcmVzZW50IGFsd2F5cyBmZWVscyBoaW1zZWxmLCBieSBjb21wYXJpc29uIHdpdGggDQp0aGlzIGdye1smKiZdfWVhdCBtb3RoZXIsIGluZmVyaW9yIGFuZCB1bmltcG9ydGFudC4gDQoNCkJ1dCBDb21pbml1cywgTWVuZW5pdXMsIGFuZCBWaXJnaWx7WyYqJl19aWEsIFZhbGVyaWEgYW5kIA0KVm9sdW1uaWEsIGFuZCBoaXMgYm95IGJlbG9uZyB0byB0aGUgcHJpdmlsZWdlZCBjbGFzczsgDQp0aHtbJiomXX1leSBhcmUgcGF0cmljaWFuLiBCZXlvbmQgdGhpcyBwYXRyaWNpYW4gY2xhc3MgbmVpdGhlciANCmhpcyBzeW1wYXRoaWVzIG5vciBoe1smKiZdfWlzIGltYWdpbmF0aW9uIGZpbmQgaXQgcG9zc2libGUgdG8gDQpyYW5nZS4gVGhlIHBsZWJlaWFucyBhcmUgXCIgYSBjb21tb24gY3J5e1smKiZdfSBvZiBjdXJzIFwiIA0Kd2hvc2UgYnJlYXRoIENvcmlvbGFudXMgaGF0ZXMuIEhlIGNhbm5vdCwgbGlrZSBCb2xpbmctIA0KYnJva2Use1smKiZdfSBmbGF0dGVyIHRoZWlyIHdlYWtuZXNzIHdoaWxlIGhlIGRlc3Bpc2VzIHRoZW0gaW4tIA0Kd2FyZGx5LiBIZSBpcyBub3QgZXZlbiB7WyYqJl19aW5kaWZmZXJlbnQgdG93YXJkcyB0aGVtOyBoZSANCnJhdGhlciByZWpvaWNlcyBpbiB0aGVpciBtYWxpY2UgYW5kIGRpc3BsZWFzdXtbJiomXX1yZSA7IGlmIHRoZSANCm5vYmlsaXR5IHdvdWxkIGxldCBoaW0gdXNlIGhpcyBzd29yZCwgaGUgd291bGQgbWFrZSBhIA0KcXVhcnJ5e1smKiZdfSBcIndpdGggdGhvdXNhbmRzIG9mIHRoZXNlIHF1YXJ0ZXJcJ2Qgc2xhdmVzXCIgYXMgaGlnaCANCmFzIGhlIGNvdWxkIHBpY2sgaGlzIGx7WyYqJl19YW5jZS4gU2ljaW5pdXMgdGhlIFRyaWJ1bmUgaXMgXCIgdGhlIA0KVHJpdG9uIG9mIHRoZSBtaW5ub3dzLlwiIFdoZW4gQ29yaW9sYW51e1smKiZdfXMgZGVwYXJ0cyBmcm9tIA0KUm9tZSwgYXMgdGhvdWdoIGFsbCB0aGUgdmlydHVlIG9mIHRoZSBjaXR5IHdlcmUgcmVzaWRlbnQgDQp7WyYqJl19aW4gaGltc2VsZiwgaGUgcmV2ZXJzZXMgdGhlIGFwcGFyZW50IGZhY3QgYW5kIHByb2FvdW5jZXMgDQphIHNlbnRlbmNlIG9mIGJhbntbJiomXX1pc2htZW50IGFnYWluc3QgdGhvc2Ugd2hvbSBoZSBsZWF2ZXMgDQoNCiogT2JzZXJ2ZSB0aGUgZXh0cmFvcmRpbmFyeSB2aXRhbCBie1smKiZdfWVhdXR5IGFuZCBpbGx1bWluYXRpbmcgcXVhbGl0eSBvZiBTaGFrwqtpIA0Kc3BlcmVcJ3MgbWV0YXBob3JzIGFuZCBzaW1pbGVzLiBBe1smKiZdfSBjb21tb25wbGFjZSBwb2V0IHdvdWxkIGhhdmUgd3JpdHRlbiANClwiIGFzIGNoYXN0ZSBhcyBzbm93IDtcIiBidXQgU2hha3NwZXJlXCd7WyYqJl19cyBpbWFnaW5hdGlvbiBkaXNjb3ZlcnMgZGVncmVlcyBvZiANCmNoYXN0aXR5IGluIGljZSBhbmQgc25vdywgYW5kIGNob29zZXMgdHtbJiomXX1oZSBjaGFzdGVzdCBvZiBhbGwgZnJvemVuIHRoaW5ncy4gT24gDQp0aGlzIHN1YmplY3QsIHNlZSBhbiBleGNlbGxlbnQgc3R1ZHkge1smKiZdfWJ5IFJldi4gSC4gTi4gSHVkc29uLCBcIlNoYWtlc3BlYXJlOiANCmJpcyBMaWZlLiBBcnReIGFuZCBDaGFyYWN0ZXJzLF5cJyB2b2wgaXtbJiomXX0uLCBwcC4gMjE3LTIzNy4gDQoNClRoZSBSb21hbiBQbGF5cy4gMjk1IA0KDQpiZWhpbmQg4oCUIFwiLyBoYS9uaXNoIHlvdVAgQnJ1dHtbJiomXX11cyBpcyB3YXJyYW50ZWQgYnkgdGhlIA0KZmFjdCB3aGVuIGhlIHNheXMsIA0KDQpcIiBZb3Ugc3BlYWsgb1wnIHRoZSBwZW9wbGUgDQp7WyYqJl19QXMgaWYgeW91IHdlcmUgYSBnb2QgdG8gcHVuaXNoLCBub3QgDQpBIG1hbiBvZiB0aGVpciBpbmZpcm1pdHkuXCIgDQoNCkFuZCB5ZXR7WyYqJl19IHRoZSB3ZWFrbmVzcywgdGhlIGluY29uc3RhbmN5LCBhbmQgdGhlIGluY2EtIA0KcGFjaXR5IG9mIGFwcHJlaGVuZGluZyBmYWN0c3tbJiomXX0gd2hpY2ggYXJlIHRoZSB2aWNlcyBvZiB0aGUgDQpwZW9wbGUsIHJlZmxlY3QgYW5kIHJlcGVhdCB0aGVtc2VsdmVzIGluIHRoZSBne1smKiZdfXJlYXQgcGF0cmktIA0KY2lhbiA7IGhpcyBhcmlzdG9jcmF0aWMgdmljZXMgY291bnRlcmJhbGFuY2UgdGhlaXIgcGxlYmVpYW4uIA17WyYqJl19CkhlIGlzIHJpZ2lkIGFuZCBvYnN0aW5hdGUgOyBidXQgdW5kZXIgdGhlIGluZmx1ZW5jZSBvZiBhbiANCmFuZ3J5IGVnb2lzbSBoZXtbJiomXX0gY2FuIHJlbm91bmNlIGhpcyBwcmluY2lwbGVzLCBoaXMgcGFydHksIA0KYW5kIGhpcyBuYXRpdmUgY2l0eS4gSGUgd2lsbCBub3Qge1smKiZdfWJlYXIgYXdheSB0byBoaXMgcHJpdmF0ZSANCnVzZSB0aGUgcGFsdHJ5IGJvb3R5IG9mIHRoZSBZb2xzY2VzIDsgYnV0IHRvIG9idGF7WyYqJl19aW4gdGhlIA0KY29uc3Vsc2hpcCBoZSBpcyB1cmdlZCBieSBoaXMgcHJvdWQgbW90aGVyIGFuZCBoaXMgcGF0cmktIA0KY2lhbiBmcntbJiomXX1pZW5kcyB0byBzdGFuZCBiYXJlaGVhZGVkIGJlZm9yZSB0aGUgbW9iLCB0byBleC0gDQpwb3NlIGhpcyB3b3VuZHMsIHRvIHN1ZSBme1smKiZdfW9yIHRoZWlyIHZvdGVzLCB0byBnaXZlIGhpcyBoZWFydCANCnRoZSBsaWUsIHRvIGJlbmQgdGhlIGtuZWUgbGlrZSBhIGJlZ2dhciB7WyYqJl19YXNraW5nIGFuIGFsbXMuIA0KVGhlIGp1ZGdtZW50IGFuZCBibG9vZCBvZiBDb3Jpb2xhbnVzIGFyZSBpbGwgY29tbWluLSANCmdsZXtbJiomXX1kIDsgaGUgZGVzaXJlcyB0aGUgZW5kLCBidXQgY2FuIG9ubHkgaGFsZiBzdWJtaXQgdG8gdGhlIA0KbWVhbnMgd2hpY2ggYXJlIG5le1smKiZdfWNlc3NhcnkgdG8gYXR0YWluIHRoYXQgZW5kIDsgaGUgaGFzIG5vdCANCnN1ZmZpY2llbnQgc2VsZi1jb250cm9sIHRvIGVuYWJsZSB7WyYqJl19aGltIHRvIGRpc3Bvc2Ugb2YgdGhvc2UgDQpjaGFuY2VzIG9mIHdoaWNoIGhlIGlzIGxvcmQuIEFuZCBzbyBoZSBtYXJzIGhpcyBmb3tbJiomXX1ydHVuZS4gDQpUaGUgcHJpZGUgb2YgQ29yaW9sYW51cywgYXMgTXIuIEh1ZHNvbiBoYXMgb2JzZXJ2ZWQsIGlzIA0KXCIgcmVuZGVyZXtbJiomXX1kIGFsdG9nZXRoZXIgaW5mbGFtbWFibGUgYW5kIHVuY29udHJvbGxhYmxlIGJ5IA0KcGFzc2lvbjsgaW5zb211Y2ggdGhhdCBpZiBhe1smKiZdfSBzcGFyayBvZiBwcm92b2NhdGlvbiBpcyBzdHJ1Y2sgDQppbnRvIHRoZSBsYXR0ZXIsIHRoZSBmb3JtZXIgaW5zdGFudGx5IGZsYW17WyYqJl19ZXMgdXAgYmV5b25kIA0KbWVhc3VyZSwgYW5kIHN3ZWVwcyBhd2F5IGFsbCB0aGUgcmVnYXJkcyBvZiBwcnVkZW5jZSwgb2YgDQpkZXtbJiomXX1jb3J1bSwgYW5kIGV2ZW4gb2YgY29tbW9uLXNlbnNlLlwiIF4gTm93LCBzdWNoIHBhcy0gDQpzaW9uIGFzIHRoaXMgU2hha3NwZXJlIHtbJiomXX1rbmV3IHRvIGJlIHdlYWtuZXNzLCBhbmQgbm90IA0Kc3RyZW5ndGggOyBhbmQgYnkgdGhpcyB1bmNvbnRyb2xsYWJsZSB2aW9sZW5je1smKiZdfWUgb2YgdGVtcGVyIA0KQ29yaW9sYW51cyBkcmF3cyBkb3duIHVwb24gaGltc2VsZiBoaXMgYmFuaXNobWVudCANCmZyb20gUm9tZSB7WyYqJl19YW5kIGhpcyBzdWJzZXF1ZW50IGZhdGUuIA0KDQpBdCB0aGUgbW9tZW50IHdoZW4gaGUgcGFzc2VzIGZvcnRoIHRocm91Z2ggdGhlIHtbJiomXX1nYXRlcyANCg0K4pmmIFwiU2hha2VzcGVhcmU6IGhpcyBMaWZlwrsgQXJ0LCBhbmQgQ2hhcmFjdGVyc15cJyogdm9sLiBpaS7Cu3AuNCh7WyYqJl19cjMuIA0KDQoyOTYgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQpvZiB0aGUgY2l0eSwgYW5kIG9ubHkgdGhlbiwgaHtbJiomXX1pcyBwYXNzaW9uLCBpbnN0ZWFkIG9mIGJyZWFrIA0KaW5nIHZpb2xlbnRseSBmb3J0aCwgc3ViZHVlcyBoaXMgbmF0dXJlIGluIGEge1smKiZdfW1vcmUgZXZpbCANCmZhc2hpb24sIGFuZCBiZWNvbWVzIGRhcmsgYW5kIGRlYWRseS4gSGUgZmVlbHMgdGhhdCBuZSANCmhhcyBiZWV7WyYqJl19biBkZXNlcnRlZCBieSBcIiB0aGUgZGFzdGFyZCBub2JsZXMsXCIgYW5kIGdpdmVuIA0Kb3ZlciBhcyBhIHByZXkgdG8gdGhlIG1vYi4ge1smKiZdfUhlLCB3aG8gaGFkIGJlZW4gc28gd2FybSwgDQpzbyBnZW5lcm91cywgc28gbG95YWwgdG93YXJkcyBoaXMgY2xhc3MsIG5vdyBmZWV7WyYqJl19bHMgaGltc2VsZiANCmJldHJheWVkIDsgYW5kIHRoZSBkZWFkbHkgbmVlZCBvZiByZXZlbmdlLCB0b2dldGhlciB3aXRoIA0KdGhlIHtbJiomXX1zZW5zZSB0aGF0IGhlIGlzIGluIHNvbGl0dWRlIGFuZCBtdXN0IGRlcGVuZCB1cG9uIGhpcyANCm93biBzdHJlbmd0aCBhbmQgcHJ1e1smKiZdfWRlbmNlLCBtYWtlcyBoaW0gY2FsbS4gSGUgZW4tIA0KZGVhdm9ycyB0byBwYWNpZnkgaGlzIG1vdGhlciBhbmQgdG8gY2hlY2sgdGh7WyYqJl19ZSBvbGQgbWFuXCdzIA0KdGVhcnMgOyBoZSB1dHRlcnMgbm8gdmlvbGVudCBzcGVlY2guIE9ubHkgb25lIG9ic2N1cmUgDQphbmQgZm97WyYqJl19cm1pZGFibGUgd29yZCBlc2NhcGVzIGhpcyBsaXBzIDogDQoNClwiIEkgZ28gYWxvbmUgDQpMaWtlIHRvIGEgbG9uZWx5IGRyYWdvbiB7WyYqJl19dGhhdCBoaXMgZmVuIA0KTWFrZXMgZmVhclwnZCBhbmQgdGFsa2VkIG9mIG1vcmUgdGhhbiBzZWVuLlwiIA0KDQpBbmQgaW4gdGhpcyBze1smKiZdfXBpcml0IGhlIHN0cmlkZXMgZm9yd2FyZCB0b3dhcmRzIENvcmlvbGkuIA0KDQpObyBwYXNzYWdlIGluIHRoZSBwbGF5IGlzIHF1aWN7WyYqJl19ayB3aXRoIHN1Y2ggYnJpZ2h0LCBzcG9uLSANCnRhbmVvdXMsIGFsbW9zdCBseXJpY2FsIGZlZWxpbmcgYXMgdGhlIGFkZHJlc3Mgb3tbJiomXX1mIGhpcyBkZS0gDQpmZWF0ZWQgcml2YWwgdG8gQ29yaW9sYW51cywgd2hlbiBoZSBmaW5kcyB0aGUgZ3JlYXQgbGVhZGVyIA0KYW4ge1smKiZdfXVuYmlkZGVuIGd1ZXN0IHdpdGhpbiBoaXMgaG91c2UgYXQgQW50aXVtLiBFbnRodS0gDQpzaWFzbSBhYm91dCBncmVhdCBwZXJzb257WyYqJl19YWxpdGllcyBmaW5kcyBub2JsZXIgZXhwcmVzc2lvbiANCnBlcmhhcHMgaW4gdGhlIHdyaXRpbmdzIG9mIFNoYWtzcGVyZSB0aGFuIHtbJiomXX1pbiB0aG9zZSBvZiANCmFueSBvdGhlciBwb2V0IG9mIGFueSBjb3VudHJ5LiBUaGUgcmVhZGVyIHdpbGwgcmVjYWxsIA0KdGhhdCB3e1smKiZdfW9uZGVyZnVsIG91dGJyZWFrIG9mIGFkbWlyYXRpb24gYW5kIGhvbWFnZSBmcm9tIA0KdGhlIGFnZWQgSVNUZXN0b3Igd2hlbiBoZSB7WyYqJl19Z2F6ZXMgZm9yIHRoZSBmaXJzdCB0aW1lIHVwb2EgDQpIZWN0b3JcJ3MgdW5oZWxtZXRlZCBoZWFkIDogDQoNClwiIEkgaGF2ZSwgdGhve1smKiZdfXUgZ2FsbGFudCBUcm9qYW4sIHNlZW4gdGhlZSBvZnQsIA0KTGFib3JpbmcgZm9yIGRlc3RpbnksIG1ha2UgY3J1ZWwgd2F5IA0KVGh7WyYqJl19cm91Z2ggcmFua3Mgb2YgR3JlZWtpc2ggeW91dGgsIGFuZCBJIGhhdmUgc2VlbiB0aGVeIA0KQXMgaG90IGFzIFBlcnNldXMgc3B1cntbJiomXX0gdGh5IFBocnlnaWFuIHN0ZWVkLiANCkRlc3Bpc2luZyBtYW55IGZvcmZlaXRzIGFuZCBzdWJkdWVtZW50cywgDQpXaGVuIHRob3Uge1smKiZdfWhhc3QgaHVuZyB0aHkgYWR2YW5jZWQgc3dvcmQgaVwnIHRoZSBhaXIsIA0KTm90IGxldHRpbmcgaXQgZGVjbGluZSBvbiB0aGUgZGVje1smKiZdfWxpbmVkLCANClRoYXQgSSBoYXZlIHNhaWQgdG8gc29tZSBteSBzdGFuZGVycy1ieSwgDQoqWG8sIEp1cGl0ZXIgaXMgeW9uZGVyXiB7WyYqJl19ZGVhbGluZyBsaWZlIFAgDQpBbmQgSSBoYXZlIHNlZW4gdGhlZSBwYXVzZSBhbmQgdGFrZSB0aHkgYnJlYXRoLCANCldoZW4gdGhhdHtbJiomXX0gYSByaW5nIG9mIEdyZWVrcyBoYXZlIGhlbW1NIHRoZWUgaW4sIA0KTGlrZSBhbiBPbHltcGlhbiB3cmVzdGxpbmcuXCIgDQoNClRoZXtbJiomXX0gUm9tYW4gUGxheXMuIDI5NyANCg0KQW5kIHRoZSBvbGQgbWFuIGNvbnRpbnVlcyBpbiB0aGUgbGlrZSBzdHJhaW4gdW50aWwgYWxte1smKiZdfW9zdCANCmJyZWF0aCBtdXN0IGZhaWwgaGltLiBUaGUgaW5zdGFudGFuZW91cyBhbmQgaW52b2x1bi0gDQp0YXJ5IGhvbWFnZSBwYWl7WyYqJl19ZCBieSBBdWZpZGl1cyB0byBDb3Jpb2xhbnVzIGlzIHRoZSBzYW1lIA0KaW4ga2luZCDigJQgdGhlIG92ZXJ3aGVsbWluZyBqb3kgb3tbJiomXX1mIHN0YW5kaW5nIGZhY2UgdG8gZmFjZSANCndpdGggdmVyaXRhYmxlIGh1bWFuIGdyZWF0bmVzcyBhbmQgbm9iaWxpdHkuIA0KDQpCe1smKiZdfXV0IENvcmlvbGFudXMgaGFzIGZvdW5kIGluIEFudGl1bSBubyBzZWNvbmQgaG9tZS4gDQpIb25vcmVkIGFuZCBkZWZlcnJlZCB0byx7WyYqJl19IHRlbmRlZCBvbiwgYW5kIHRyZWF0ZWQgYXMgYWwtIA0KbW9zdCBzYWNyZWQsIGhlIGlzIHN0aWxsIHRoZSBcIiBsb25lbHkgZHJhZ297WyYqJl19biB0aGF0IGhpcyBmZW4gDQptYWtlcyBmIGVhclwnZC5cIiBDdXQgb2ZpIGZyb20gaGlzIGtpbmRyZWQgYW5kIGhpcyBmcmllbmRzLCANe1smKiZdfQp3cm9uZ2VkIGJ5IGhpcyBvd24gcGFzc2lvbmF0ZSBzZW5zZSBvZiBwZXJzb25hbGl0eSwgaGlzIA0KdmlvbGVudCBlZ29pc20sIGh7WyYqJl19ZSByZXNvbHZlcyB0byBzdGFuZCANCg0KXCIgQXMgaWYgYSBtYW4gd2VyZSBhdXRob3Igb2YgaGltc2VsZiwgDQpBbmQga25ldyBubyB7WyYqJl19b3RoZXIga2luLlwiIA0KDQpCdXQgdGhlIGxvdmVzIGFuZCBsb3lhbHRpZXMgdG8gd2hpY2ggaGUgaGFzIGRvbmUgdmlvLSANCmxlbmN7WyYqJl19ZSByZWFjdCBhZ2FpbnN0IGhpbS4gVGhlIHN0cnVnZ2xlLCBwcm9kaWdpb3VzIGFuZCANCnBhdGhldGljLCBiZWdpbnMgYmV0d2VlbntbJiomXX0gYWxsIHRoYXQgaXMgbWFzc2l2ZSwgc3Rlcm4sIGluZmxleC0gDQppYmxlLCBhbmQgYWxsIHRoYXQgaXMgdGVuZGVyIGFuZCB3aW5ue1smKiZdfWluZyBpbiBoaXMgbmF0dXJlIDsgYW5kIA0KdGhlIHN0cmVuZ3RoIGlzIHN1YmR1ZWQgYnkgdGhlIHdlYWtuZXNzLiBJdCBpcyBhcyB7WyYqJl19aWYgYW4gDQpvYWsgd2VyZSByZW50IGFuZCB1cHJvb3RlZCBub3QgYnkgdGhlIHN0cm9rZSBvZiBsaWdodC0gDQpuaW5nLCBidXQgYntbJiomXX15IHNvbWUgbWlyYWNsZSBvZiBnZW50bGUgeWV0IGlycmVzaXN0aWJsZSBtdXNpYy4gDQpBbmQgd2hpbGUgQ29yaW9sYW51cyB5aWVse1smKiZdfWRzIHVuZGVyIHRoZSBpbmZsdWVuY2Ugb2YgYW4gDQppbnN0aW5jdCBub3QgdG8gYmUgY29udHJvbGxlZCwgaGUgcG9zc2Vzc2VzIHR7WyYqJl19aGUgZGlzdGluY3QgY29uLSANCnNjaW91c25lc3MgdGhhdCBzdWNoIHlpZWxkaW5nIGlzIG1vcnRhbCB0byBoaW1zZWxmLiBIZSANCntbJiomXX1oYXMgY29tZSB0byBoYXRlIGFuZCB0byBjb25xdWVyLCBidXQgaGUgbXVzdCBuZWVkcyBwZXItIA0KaXNoIGFuZCBsb3ZlIDogDQoNe1smKiZdfQpcIiBNeSB3aWZlIGNvbWVzIGZvcmVtb3N0IDsgdGhlbiB0aGUgaG9ub3JNIG1vdWxkIA0KV2hlcmVpbiB0aGlzIHRydW5rIHdhcyBme1smKiZdfXJhbWVkLCBhbmQgaW4gaGVyIGhhbmQgDQpUaGUgZ3JhbmRjaGlsZCB0byBoZXIgYmxvb2QuIEJ1dCBvdXQsIGFmZmVjdGlvbiAhIA17WyYqJl19CkFsbCBib25kIGFuZCBwcml2aWxlZ2Ugb2YgbmF0dXJlLCBicmVhayAhIA0KTGV0IGl0IGJlIHZpcnR1b3VzIHRvIGJlIG9ic3RpbntbJiomXX1hdGUgISANCldoYXQgaXMgdGhhdCBjdXJ0ZXN5IHdvcnRoID8gT3IgdGhvc2UgZG92ZXNcJyBleWVzLCANCldoaWNoIGNhbiBtYWtlIHtbJiomXX1nb2RzIGZvcnN3b3JuID8gSSBtZWx0LCBhbmQgYW0gbm90IA0KT2Ygc3Ryb25nZXIgZWFydGggdGhhbiBvdGhlcnMuIE15IG1vdGhle1smKiZdfXIgYm93cyA7IA0KQXMgaWYgT2x5bXB1cyB0byBhIG1vbGVoaWxsIHNob3VsZCANCkluIHN1cHBsaWNhdGlvbiBub2QgOyBhbmQgbXl7WyYqJl19IHlvdW5nIGJveSANCkhhdGggYW4gYXNwZWN0IG9mIGludGVyY2Vzc2lvbiwgd2hpY2ggDQpHcmVhdCBuYXR1cmUgY3JpZXMgKiBEZXtbJiomXX1ueSBub3RcJyBcIiANCg0KMjk4IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNClRoZSBjb252dWxzaXZlIGVmZm9ydHN7WyYqJl19IHRvIG1haW50YWluIGhpcyBoYXJkbmVzcyBhbmQgDQpyaWdpZGl0eSBhcmUgaW4gdmFpbiA7IENvcmlvbGFudXMgeWllbGRzIDsgaHtbJiomXX1pcyBvYnN0aW5hY3kgDQphbmQgcHJpZGUgYXJlIGJyb2tlbiA7IGhlIGlzIGNvbXBlbGxlZCB0byBsZWFybiB0aGF0IGEgDQptYW4ge1smKiZdfWNhbm5vdCBzdGFuZCBhcyBpZiBoZSB3ZXJlIGF1dGhvciBvZiBoaW1zZWxmLiBBbmQgDQpzbyB0aGUgZm9ydHVuZXMgb2YgQ29yaW97WyYqJl19bGFudXMgZmFsbCwgYnV0IHRoZSBtYW4gcmlzZXMgd2l0aCANCnRoYXQgZmFsbC4gDQoNCkRlbGl2ZXJlZCBmcm9tIHBhdHJpY2lhbntbJiomXX0gcHJpZGUgYW5kIGhpcyBsb25nIGhhYml0IG9mIA0KZWdvaXNtLCBDb3Jpb2xhbnVzIGNhbm5vdCBiZS4gVGhlIHB1cmVseSBodW1he1smKiZdfW4gaW5mbHUtIA0KZW5jZXMgaGF2ZSByZWFjaGVkIGhpbSB0aHJvdWdoIHRoZSBvbmx5IGFwcHJvYWNoZXMgYnkgDQp3aGljaCBoZSB7WyYqJl19d2FzIGFjY2Vzc2libGUg4oCUIHRocm91Z2ggaGlzIG93biBmYW1pbHkuIFRvIA0KdGhlIHBsZWJlaWFuIGNsYXNzIGhlIG11c3Qgc3tbJiomXX10aWxsIHJlbWFpbiB0aGUgaW50b2xlcmFudCANCnBhdHJpY2lhbi4gTmV2ZXJ0aGVsZXNzLCBoZSBoYXMgdW5kZXJnb25lIGEgcHJve1smKiZdfWZvdW5kIA0KZXhwZXJpZW5jZSA7IGhlIGhhcyBhY2tub3dsZWRnZWQgcHVyZWx5IGh1bWFuIGluZmx1LSANCmVuY2VzIGluIHRoZSB7WyYqJl19b25seSB3YXkgaW4gd2hpY2ggaXQgd2FzIHBvc3NpYmxlIGZvciBoaW0gDQp0byBkbyBzby4gTm8gc2luZ2xlIGV4cGVyaWVuY2UsIHtbJiomXX1TaGFrc3BlcmUgd2FzIGF3YXJlLCANCmNhbiBkZWxpdmVyIHRoZSBzb3VsIGZyb20gdGhlIGxvbmcgaGFiaXQgb2YgcGFzc2lvbmF0e1smKiZdfWUgDQplZ29pc20uIEFuZCwgYWNjb3JkaW5nbHksIGF0IHRoZSBsYXN0IGl0IGlzIHRoaXMgd2hpY2ggYmUtIA0KdHJheXMgaGltIGl7WyYqJl19bnRvIHRoZSBoYW5kcyBvZiB0aGUgY29uc3BpcmF0b3JzLiBIaXMgY29uLSANCmR1Y3QgYmVmb3JlIEVvbWUgaXMgYWJvdXQgdG8gYntbJiomXX1lIGp1ZGljaWFsbHkgaW5xdWlyZWQgaW50byANCmF0IEFudGl1bS4gQnV0IHRoZSB3b3JkIFwiIGJveSxcIiBlamFjdWxhdGVkIGFnYWl7WyYqJl19bnN0IGhpbSANCmJ5IEF1ZmlkaXVzLCBcIiB0b3VjaGVzIENvcmlvbGFudXMgaW50byBhbiBlY3N0YXN5IG9mIHBhcy0gDQpzaW9uYXR7WyYqJl19ZSByYWdlIDpcIiANCg0KXCIgQm95ICEgc2xhdmUgISANCg0KUGFyZG9uIG1lLCBsb3JkcywgSGlzIHRoZSBmaXJzdCB0aW1lIHRoYXQge1smKiZdfWV2ZXIgDQoNCkkgd2FzIGZvcmNlZCB0byBzY29sZC4gDQoNCuKAoiDigKLigKLigKLigKLigKIgDQoNCkJveSAhIGZhbHNlIGhvdW57WyYqJl19ZCAhIA0KDQpJZiB5b3UgaGF2ZSB3cml0IHlvdXIgYW5uYWxzIHRydWUsIFwndGlzIHRoZXJlIA0KDQpUaGF0LCBsaWtlIGFuIGVhZ2x7WyYqJl19ZSBpbiBhIGRvdmUtY290ZSwgSSANCg0KRmx1dHRlcl4geW91ciBWb2xzY2lhbnMgaW4gQ29yaW9saSA7IA0KDQpBbG9uZSwgSSBkaXtbJiomXX1kIGl0LiBCb3kgSVwiIA0KDQpBbmQgaW4gYSBtb21lbnQgdGhlIHN3b3JkcyBvZiB0aGUgY29uc3BpcmF0b3JzIGhhdmUgDQpwaWVyY3tbJiomXX1lZCBoaW0uIEEgVm9sc2NpYW4gbG9yZCwgcmV2ZXJlbnQgZm9yIGZhbGxlbiBncmVhdC0gDQpuZXNzLCBwcm90ZWN0cyB0aGUgYm9ke1smKiZdfXkgOiANCg0KXCIgVHJlYWQgbm90IHVwb24gaGltLiBNYXN0ZXJzIGFsbCwgYmUgcXVpZXQgOyANClB1dCB1cCB5b3VyIHN3b3Jkcy5cIntbJiomXX0gDQoNClRoZSBSb21hbiBQbGF5cy4gMjk5IA0KDQpTbyBzdWRkZW5seSBoYXMgaGUgcGFzc2VkIGZyb20gdG93ZXJpbmcgcGFzc2lve1smKiZdfW4gdG8gDQp0aGUgaGVscGxlc3NuZXNzIG9mIGRlYXRoLCB0aGUgdmljdGltIG9mIGhpcyBvd24gdmlvbGVudCANCmVnb2lzbSBhbmR7WyYqJl19IHVuY29udHJvbGxhYmxlIHNlbGYtd2lsbC4gV2UgcmVtYWluIHdpdGggDQp0aGUgc2Vuc2UgdGhhdCBhIGdyZWF0IGdhcCBpbiB0aHtbJiomXX1lIHdvcmxkIGhhcyBiZWVuIG1hZGUgOyANCnRoYXQgYSBzZWEtbWFyayBcJ1wnIHN0YW5kaW5nIGV2ZXJ5IGZsYXcgXCIgaGFzIGZvciBhe1smKiZdfWxsIHRpbWUgDQpkaXNhcHBlYXJlZC4gV2Ugc2VlIHRoZSBsaXZlcyBvZiBzbWFsbGVyIG1lbiBzdGlsbCBnb2luZyANCm9uIDsgd2V7WyYqJl19IHJlcHJlc3MgYWxsIHZpb2xlbmNlIG9mIGxhbWVudGF0aW9uLCBhbmQgYmVhciANCmFib3V0IHdpdGggdXMgYSBtZW1vcnkgaW4gd3tbJiomXX1oaWNoIHByaWRlIGFuZCBwaXR5IGFyZSANCmJsZW5kZWQuIA0KDQozMDAgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANe1smKiZdfQoNCkNIQVBURVIgVklJLiANCg0KVEhFIEhVTU9SIE9GIFNIQUtTUEVSRS4gDQoNCkEgU1RVRFkgb2YgU2hha3NwZXJlIHdoaWNoIGZ7WyYqJl19YWlscyB0byB0YWtlIGFjY291bnQgb2wgDQpcXFNoYWtzcGVyZVwncyBodW1vciBtdXN0IHJlbWFpbiBlc3NlbnRpYWxseSBpbmNvbXBse1smKiZdfWV0ZS4gDQpeeV5UaGUgY2hhcmFjdGVyIGFuZCBzcGlyaXR1YWwgaGlzdG9yeSBvZiBhIG1hbiB3aG8gaXMgZW4tIA0KZG93ZWQgd2l7WyYqJl19dGggYSBjYXBhY2l0eSBmb3IgaHVtb3JvdXMgYXBwcmVjaWF0aW9uIG9mIHRoZSANCndvcmxkIG11c3QgZGlmZmVyIHRocm91Z2hvdXtbJiomXX10IGFuZCBpbiBldmVyeSBwYXJ0aWN1bGFyIGZyb20gDQp0aG9zZSBvZiB0aGUgbWFuIHdob3NlIG1vcmFsIG5hdHVyZSBoYXMgbmV2e1smKiZdfWVyIHJpcHBsZWQgDQpvdmVyIHdpdGggZ2VuaWFsIGxhdWdodGVyLiBBdCB3aGF0ZXZlciBmaW5hbCBpc3N1ZSBTaGFrLSANCnNwZXJ7WyYqJl19ZSBhcnJpdmVkLCBhZnRlciBsb25nIHNwaXJpdHVhbCB0cmF2YWlsLCBhcyB0byB0aGUgYXR0YWluLSANCm1lbnQgb2YgaGlzIGxpZntbJiomXX1lLCB0aGF0IHByZWNpc2UgaXNzdWUgcmF0aGVyIHRoYW4gYW5vdGhlciANCndhcyBhcnJpdmVkIGF0IGluIHBhcnQgYnkgdmlydHVle1smKiZdfSBvZiB0aGUgZmFjdCBvZiBTaGFrc3BlcmVcJ3MgDQpodW1vci4gSW4gdGhlIGNvbXBvc2l0aW9uIG9mIGZvcmNlcyB3aGljaCBkZXRle1smKiZdfXJtaW5lZCANCnRoZSBvcmJpdCB0cmF2ZXJzZWQgYnkgdGhlIG1pbmQgb2YgdGhlIHBvZXQsIHRoaXMgbXVzdCBiZSANCmFsbG93ZWR7WyYqJl19IGZvciBhcyBhIGZvcmNlIGFtb25nIG90aGVycywgaW4gaW1wb3J0YW5jZSBub3QgDQp0aGUgbGVhc3QsIGFuZCBlZmZpY2llbnQgYXtbJiomXX10IGFsbCB0aW1lcywgZXZlbiB3aGVuIGxpdHRsZSBhcC0gDQpwYXJlbnQuIEEgbWFuIHdob3NlIHZpc2FnZSBeXCcgaG9sZHMgb25lIHtbJiomXX1zdGVybiBpbnRlbnQgXCIgDQpmcm9tIGRheSB0byBkYXksIGFuZCB3aG9zZSBqb3kgYmVjb21lcyBhdCB0aW1lcyBhbG1vc3QgDQphIHtbJiomXX1zdXBlcm5hdHVyYWwgcmFwdHVyZSwgbWF5IGRlc2NlbmQgdGhyb3VnaCBjaXJjbGVzIG9mIA0KaGVsbCB0byB0aGUgbmFycm93ZXN0e1smKiZdfSBhbmQgdGhlIGxvd2VzdCA7IGhlIG1heSBtb3VudCBmcm9tIA0Kc3BoZXJlIHRvIHNwaGVyZSBvZiBQYXJhZGlzZSB1bnRpbCBoZSB7WyYqJl19c3RhbmRzIHdpdGhpbiB0aGUgDQpsaWdodCBvZiB0aGUgRGl2aW5lIE1hamVzdHkgOyBidXQgaGUgd2lsbCBoYXJkbHkgc3VjY2VlZHtbJiomXX0gDQppbiBwcmVzZW50aW5nIHVzIHdpdGggYW4gYWRlcXVhdGUgaW1hZ2Ugb2YgbGlmZSBhcyBpdCBpcyBvbiANCnRoaXMgZWFydGgge1smKiZdfW9mIG91cnMgaW4gaXRzIG9jZWFuaWMgYW1wbGl0dWRlIGFuZCB2YXJpZXR5LiANClwnXCdBIGZldyBtZW4gb2YgZ2VuaXVzIHRoZXJlIHtbJiomXX1oYXZlIGJlZW4gd2hvLCB3aXRoIHZpc2lvbiANCnBlbmV0cmF0aXZlIGFzIGxpZ2h0bmluZywgaGF2ZSBnYXplZCwgYXMgaXQgd2Vye1smKiZdfWUsIHRocm91Z2ggDQpsaWZlLCBhdCBzb21lIGV0ZXJuYWwgc2lnbmlmaWNhbmNlcyBvZiB3aGljaCBsaWZlIGlzIHRoZSANCnN5bWJ7WyYqJl19b2wuIEludGVudCB1cG9uIGl0cyBzYWNyZWQgbWVhbmluZywgdGhleSBoYXZlIGhhZCANCm5vIGV5ZSB0byBub3RlIHRoZSBmb3Jtc3tbJiomXX0gb2YgdGhlIGdyb3Rlc3F1ZSBoaWVyb2dseXBoIG9mIA0KDQpUaGUgSHVtb3Igb2YgU2hha3NwZXJlLiAzMDEgDQoNCmh1bWFuIGV4e1smKiZdfWlzdGVuY2UuIFN1Y2ggbWVuIGFyZSBub3QgZnJhbWVkIGZvciBsYXVnaC0gDQp0ZXIuIFRvIHRoaXMgbGl0dGxlIGdyb3VwIHRoZSB7WyYqJl19Y3JlYXRvciBvZiBGYWxzdGFmbGYsIG9mIEJvdC0gDQp0b20sIGFuZCBvZiBUb3VjaHN0b25lIGRvZXMgbm90IGJlbG9uZy4gDQoNCntbJiomXX1TaGFrc3BlcmUsIHdobyBzYXcgbGlmZSBtb3JlIHdpZGVseSBhbmQgd2lzZWx5IHRoYW4gDQphbnkgb3RoZXIgb2YgdGhlIHNlZXJze1smKiZdfSwgY291bGQgbGF1Z2guIFRoYXQgaXMgYSBjb21mb3J0YS0gDQpibGUgZmFjdCB0byBiZWFyIGluIG1pbmQg4oCUIGEgZmFjdCB3aGl7WyYqJl19Y2ggc2VydmVzIHRvIHJlc2N1ZSB1cyANCmZyb20gdGhlIGRvbWluYXRpb24gb2YgaW50ZW5zZSBhbmQgbmFycm93IG5hdHVyZXMsIHtbJiomXX13aG8gDQpjbGFpbSBhdXRob3JpdHkgYnkgdmlydHVlIG9mIHRoZWlyIGdyYXNwIG9mIG9uZSBoYWxmIG9mIHRoZSANCnJlYWxpdGlle1smKiZdfXMgb2Ygb3VyIGV4aXN0ZW5jZSBhbmQgdGhlaXIgZGVuaWFsIG9mIHRoZSByZXN0LiANClNoYWtzcGVyZSBjb3VsZCBsYXVnaC4gQnV7WyYqJl19dCB3ZSBtdXN0IGdvIG9uIHRvIGFzaywgDQpcIldoYXQgZGlkIGhlIGxhdWdoIGF0PyBhbmQgd2hhdCB3YXMgdGhlIG1hbm5lciBvZiB7WyYqJl19DQpoaXMgbGF1Z2h0ZXI/XCdcJyBUaGVyIGUgYXJlIGFzIG1hbnkgbW9kZXMgb2YgbGF1Z2h0ZXIgYXMgDQp0aGVyZSBeXl5eIGpeZ2Z0e1smKiZdfXRmaSBeXiBeXl4gJmx0O15pXnIgbm1vbiBzb3VsIG9mIGppdW1hbml0eSB0byByXiogDQpmbGVldCB0aGUgaHVtb3JvdXMgYXBwZWF7WyYqJl19cmFuY2VzIG9mIHRoZSB3b3JsZC4gSG9nYXJ0aCwgDQppbiBvbmUgb2YgaGkgcyBwaWVjXmVpXiBvZiBjb2FpIFwnIGleZSApXnlDIGl7WyYqJl19Xl5saWJsayB1aWdpYXJpbiBnLCBoYXMgDQpwcmVzZW50ZWQgYSBncm91cCBvZiBvY2N1cGFudHMgb2YgdGhlIHBpdCBvZiBhIHRoZXtbJiomXX1hdHJlIA0Kc2tldGNoZWQgZHVyaW5nIHRoZSBwZXJmb3JtYW5jZSBvZiBzb21lIGJyb2FkIGNvbWVkeSANCm9yIGZhcmNlLiBXaGF0e1smKiZdfSBwcm9jZWVkcyB1cG9uIHRoZSBzdGFnZSBpcyBpbnZpc2libGUgYW5kIA0KdW5kaXNjb3ZlcmFibGUgc2F2ZSBhcyB3ZSBjYXRjaCB7WyYqJl19aXRzIHJlZmxlY3Rpb24gb24gdGhlIGZhY2VzIA0Kb2YgdGhlIHNwZWN0YXRvcnMsIGluIHRoZSBzYW1lIHdheSB0aGF0IHdlIGluZntbJiomXX1lciBhIHN1bnNldCANCmZyb20gdGhlIGV2ZW5pbmcgZmxhbWUgdXBvbiB3aW5kb3dzIHRoYXQgZnJvbnQgdGhlIHdlc3QuIA0KRWFje1smKiZdfWggbGF1Z2hpbmcgZmFjZSBpbiBIb2dhcnRoXCdzIHByaW50IGV4aGliaXRzIGEgZGlmZmVyZW50IA0KbW9kZSBvciBhIGRpZmZlcmVue1smKiZdfXQgc3RhZ2Ugb2YgdGhlIHJpc2libGUgcGFyb3h5c20uIFRoZXJlIA0KaXMgdGhlIGhhYml0dWFsIGVuam95ZXIgb2YgdGhlIGJyb2F7WyYqJl19ZCBjb21pYyBhYmFuZG9uZWQgdG8gDQpoaXMgbWlydGgsIHdoaWNoIGlzIG9wZW4gYW5kIHVuYXNoYW1lZCDigJQgbWlydGggd2hpY3tbJiomXX1oIGhlIA0KaXMgZXZpZGVudGx5IGEgbWF0Y2ggZm9yLCBhbmQgYWJsZSB0byBzdXN0YWluLiBCeSBoaXMgc2lkZSBpcyANCmEgY29te1smKiZdfXBhbmlvbiBmZW1hbGUgcG9ydHJhaXQsIGEgd29tYW4gd2l0aCBoZWFkIHRocm93biANCmJhY2sgdG8gZWFzZSB0aGUgdmlvbGVuY2V7WyYqJl19IG9mIHRoZSBndWZmYXcgOyBhbGwgaGVyIGxvb3NlIHJlLSANCmR1bmRhbnQgZmxlc2ggaXMgdGlja2xlZCBpbnRvIGFuIG9yZ2FzbXtbJiomXX0gb2YgbWVycmltZW50IDsgDQpzaGUgaXMgZmFpcmx5IG92ZXJjb21lLiBPbiB0aGUgb3RoZXIgc2lkZSBzaXRzIHRoZSBzcGVjLSANe1smKiZdfQp0YXRvciB3aG8gaGFzIHBhc3NlZCB0aGUgY2xpbWF4IG9mIGhpcyBsYXVnaHRlciA7IGhlIHdpcGVzIA0KdGhlIHRlYXJzIGZyb217WyYqJl19IGhpcyBleWVzLCBhbmQgaXMgb24gdGhlIHdheSB0byByZWdhaW4gYW4gDQppbnNlY3VyZSBhbmQgdGVtcG9yYXJ5IGNvbXBvc3VyZXtbJiomXX0uIEJlbG93IGFwcGVhcnMgYSANCmdpcmwgb2YgZWlnaHRlZW4gb3IgdHdlbnR5LCB3aG9zZSB2YWNhbmN5IG9mIGludGVsbGVjdCBpe1smKiZdfXMgDQpjYXB0dXJlZCBhbmQgb2NjdXBpZWQgYnkgdGhlIGlubm9jdW91cyBmb2xseSBzdGlsbCBpdSANCg0KMzAyIFNoYWtzcGVyZSB7WyYqJl194oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpwcm9ncmVzcyA7IHNoZSBnYXplcyBvbiBleHBlY3RhbnRseSwgYXNzdXJlZCB0aGF0IHtbJiomXX1hIG5ldyANCmJsb3Nzb20gb2YgdGhlIHdvbmRlciBvZiBhYnN1cmRpdHkgaXMgYWJvdXQgdG8gZGlzcGxheSBpdC0gDQpzZWxmLiBIe1smKiZdfWVyIGZhdGhlciwgYSBtYW4gd2hvIGRvZXMgbm90IG9mdGVuIHN1cnJlbmRlciANCmhpbXNlbGYgdG8gYW4gaW5kZWNlbnQgY29udnV7WyYqJl19bHNpb24sIGxlYW5zIGhpcyBmYWNlIHVwb24gaGlzIA0KaGFuZCwgYW5kIHdpdGggdGhlIG90aGVyIHN0ZWFkaWVzIGhpbXNlbGYgYntbJiomXX15IGdyYXNwaW5nIG9uZSANCm9mIHRoZSBpcm9uIHNwaWtlcyB0aGF0IGVuY2xvc2UgdGhlIG9yY2hlc3RyYS4gSW4gdGhlIA0Kcmlne1smKiZdfWh0IGNvcm5lciBzaXRzIHRoZSBodW1vcmlzdCwgd2hvc2UgZXllcywgYXJvdW5kIHdoaWNoIA0KdGhlIHdyaW5rbGVzIGdhdGhlcix7WyYqJl19IGFyZSBoYWxmIGNsb3NlZCwgd2hpbGUgaGUgYWxyZWFkeSBnb2VzIA0Kb3ZlciB0aGUgamVzdCBhIHNlY29uZCB0aW1lIGluIGhpc3tbJiomXX0gaW1hZ2luYXRpb24uIEF0IHRoZSANCm9wcG9zaXRlIHNpZGUgYW4gZWxkZXJseSB3b21hbiBpcyBzZWVuLCBwYXN0IHRoZSBwZXJpe1smKiZdfW9kIA0Kd2hlbiBhbmltYWwgdmlvbGVuY2VzIGFyZSBwb3NzaWJsZSwgbGF1Z2hpbmcgYmVjYXVzZSBzaGUgDQprbm93cyB0aGVyZSB7WyYqJl19aXMgc29tZXRoaW5nIHRvIGxhdWdoIGF0LCB0aG91Z2ggc2hlIGlzIHRvbyANCmR1bGwtd2l0dGVkIHRvIGtub3cgcHJlY2lzZWx5IHtbJiomXX13aGF0LiBPbmUgc3BlY3RhdG9yLCBhcyANCndlIGd1ZXNzIGZyb20gaGlzIGludHJvdmVydGVkIGFpciwgaXMgbGF1Z2hpbmcgdG8ge1smKiZdfXRoaW5rIA0Kd2hhdCBzb21lYm9keSBlbHNlIHdvdWxkIHRoaW5rIG9mIHRoaXMuIEZpbmFsbHksIHRoZSANCnRoaW4tbGlwcGVkLCB7WyYqJl19cGVyay1ub3NlZCBwZXJzb24gb2YgcmVmaW5lbWVudCBsb29rcyBhc2lkZSwgDQphbmQgYnkgaGlzIGNyaXRpY2FsIGluZGlmbEVlcntbJiomXX1lbmNlIGNvbmRlbW5zIHRoZSBicm9hZCwgaW5qdS0gDQpkaWNpb3VzIG1pcnRoIG9mIHRoZSBjb21wYW55LiANCg0KQWxsIHRoZXNle1smKiZdfSBsYXVnaGVycyBvZiBIb2dhcnRoIGFyZSB2ZXJ5IGNvbW1vbnBsYWNlLCANCmFuZCBzb21lIGFyZSB2ZXJ5IHZ1bGdhciBwZXJzb257WyYqJl19cyA7IG9uZSB0cml2aWFsLCBsdWRpY3JvdXMgDQpzcGVjdGFjbGUgaXMgdGhlIG9jY2FzaW9uIG9mIHRoZWlyIG1pcnRoLiBXaGVuIHtbJiomXX1mcm9tIHN1Y2ggDQpsYXVnaHRlciBhcyB0aGlzIHdlIHR1cm4gdG8gdGhlIGxhdWdodGVyIG9mIG1lbiBvZiBnZW4tIA0KaXVzLCB3e1smKiZdfWhvIGdhemUgYXQgdGhlIHRvdGFsIHBsYXkgb2YgdGhlIHdvcmxkXCdzIGxpZmUsIGFuZCANCndoZW4gd2UgbGlzdGVuIHRvIHRoaXMse1smKiZdfSBhcyB3aXRoIHRoZSBhZ2VzIGl0IGdvZXMgb24gZ2F0aGVyLSANCmluZyBhbmQgc3dlbGxpbmcsIG91ciBzZW5zZSBvZiBoZWFyaW57WyYqJl19ZyBpcyBlbnZlbG9wZWQgYW5kIA0KYWxtb3N0IGFubmloaWxhdGVkIGJ5IHRoZSBjaG9ydXMgb2YgbW9jayBhbmQgamVzdCwgb2YgYXtbJiomXX1uLSANCnRpYyBhbmQgYnVmZm9vbmVyeSwgb2YgdGVuZGVyIG1pcnRoIGFuZCBpbmRpZ25hbnQgc2F0aXJlLCANCm9mIG1vbnN0cm91e1smKiZdfXMgYnVybGVzcXVlIGFuZCBzbHkgYWJzdXJkaXR5LCBvZiBkZXNwZXJhdGUgDQptaXNhbnRocm9waWMgZGVyaXNpb24gYW5kIGdlbml7WyYqJl19YWwsIGFmZmVjdGlvbmF0ZSBjYXJlc3Npbmcgb2YgDQpodW1hbiBpbXBlcmZlY3Rpb24gYW5kIGh1bWFuIGZvbGx5LiBXZSBoZWFyIHtbJiomXX1mcm9tIA0KYmVoaW5kIHRoZSBtYXNrIHRoZSBlbm9ybW91cyBsYXVnaHRlciBvZiBBcmlzdG9waGFuZXMsIA0KYXNjZW5kaW5nIHBle1smKiZdfWFsIGFib3ZlIHBlYWwsIHVudGlsIGl0IHBhc3NlcyBpbnRvIGp1YmlsYW50IA0KZWNzdGFzeSwgb3IgZnJvbSB0aGUgdXByb2FyIHN7WyYqJl19cHJpbmdzIHNvbWUgZXhxdWlzaXRlIGx5cmljIA0Kc3RyYWluLiBXZSBoZWFyIGxhdWdodGVyIG9mIHBhc3Npb25hdGUgaW5kaWduYXtbJiomXX10aW9uIGZyb20gDQpKdXZlbmFsLCB0aGUgaW5kaWduYXRpb24gb2YgXCIgdGhlIGFuY2llbnQgYW5kIGZyZWUgc291bCBvZiANCg0KVHtbJiomXX1oZSBIdW1vciBvZiBTaGFrc3BlcmUuIDMwMyANCg0KdGhlIGRlYWQgcmVwdWJsaWNzLlwiICogXm5kIHRoZXJlIGlzIEVhYmVsYWlzLHtbJiomXX0gd2l0aCBoaWEgDQpodWdlIGJ1ZmZvb25lcnksIGFuZCB0aGUgZWFybmVzdCBleWVzIGludGVudCBvbiBmcmVlZG9tIA0Kd2hpY2gge1smKiZdfWxvb2sgb3V0IGF0IHVzIGluIHRoZSBtaWRzdCBvZiB0aGUgemFueVwncyB0dW1ibGluZ3MgDQphbmQgaW5kZWNlbmNpZXMuIEFuZCBDe1smKiZdfWVydmFudGVzLCB3aXRoIGhpcyByZWZpbmVkIE9hc3RpbC0gDQppYW4gYWlyLCBhbmQgZGVlcCBtZWxhbmNob2x5IG1pcnRoIGF0IG97WyYqJl19ZGRzIHdpdGggdGhlIGVuLSANCnRodXNpYXNtIHdoaWNoIGlzIGRlYXJlc3QgdG8gaGlzIHNvdWwuIEFuZCBNb2xpZXJlLCB3aXRoIHtbJiomXX0NCmhpcyBsYXVnaHRlciBvZiB1bmVycmluZyBnb29kLXNlbnNlLCB1bmRlbHVkZWQgYnkgZmFzaGlvbiANCm9yIHZhbml0eSwgb3Ige1smKiZdfWZvbGx5IG9yIGh5cG9jcmlzeSwgYW5kIGJyaWdodGx5IG1vY2tpbmcgDQp0aGVzZSBpbnRvIG1vZGVzdHkuIEFuZCBNaWx0b24sIHd7WyYqJl19aXRoIGhpcyBmaWVyY2Ugb2JqdXItIA0KZ2F0b3J5IGxhdWdodGVyLCBFbGlqYWgtbGlrZSBpbnN1bHQgYWdhaW5zdCB0aGUgZW5lbXtbJiomXX1pZXMgb2YgDQpmcmVlZG9tIGFuZCBvZiBFbmdsYW5kLiBBbmQgVm9sdGFpcmUsIHdpdGggaGlzIHF1aWNrIA0KaW50ZWxsZWN0dWFse1smKiZdfSBzY29ybiBhbmQgZWFnZXIgbWFsaWNlIG9mIHRoZSBicmFpbi4gQW5kIA0KdGhlcmUgaXMgdGhlIHVyYmFuZSBhbmQgYW1pYWJsZSB7WyYqJl19cGxheSBvZiBBZGRpc29uXCdzIGludmVuLSANCnRpb24sIG5vdCBjYXBhYmxlIG9mIGxhcmdlIGFjaGlldmVtZW50LCBidXQgc3RpcnJ7WyYqJl19aW5nIHRoZSANCmNvcm5lcnMgb2YgdGhlIG1vdXRoIHdpdGggYSBodW1hbmUgc21pbGUg4oCUIGdyYWNpb3VzIA0KZ2F5ZXR5IGZvcntbJiomXX0gdGhlIGJyZWFrZmFzdCB0YWJsZXMgb2YgRW5nbGFuZC4gQW5kIEZpZWxkLSANCmluZ1wncyBjYXJlbGVzcyBtYXN0ZXJ5IG9mIHRoZXtbJiomXX0gd2hvbGUgYnJvYWQsIGNvbW1vbiBmaWVsZCANCm9mIG1pcnRoLiBBbmQgU3Rlcm5lXCdzIGV4cXVpc2l0ZSBjdXJpb3NpdHkgb2Ygb3tbJiomXX1kZG5lc3MsXl4gDQpoaXMgc3VidGxlIGV4dHJhdmFnYW5jZXMgYW5kIGh1bW9ycyBwcmVwZW5zZS4gQW5kIA0KdGhlcmUgaXMgdGhle1smKiZdfSB0cmFnaWMgbGF1Z2h0ZXIgb2YgU3dpZnQsIHdoaWNoIGFubm91bmNlcyB0aGUgDQpleHRpbmN0aW9uIG9mIHJlYXNvbiwgYW5kIGx7WyYqJl19b3NzIGJleW9uZCByZWNvdmVyeSBvZiBodW1hbiANCmZhaXRoIGFuZCBjaGFyaXR5IGFuZCBob3BlLiBqSG93LCBpbiB0aGlzIGNob3tbJiomXX1ydXMgb2YgDQpsYXVnaHRlcnMsIGpveW91cyBhbmQgdGVycmlibGVeIGlzIHRoZSBsYXVnaHRlciBvZiBTaGFrLSANCnNwZXJlIGRpe1smKiZdfXN0aW5ndWlzaGFibGUgPyANCg0KSW4gdGhlIMKjcnN0IHBsYWNlLCB0aGUgaHVtb3Igb2YgU2hha3NwZXJlLCBsaWtlIGhpcyA0Xjt7WyYqJl19LS0gDQp0b3RhbCBnZW5pdXMsIGlzIG1hcl55LXNpZGplZHIgSGUgZG9lcyBub3QgcGxlZGdlIGhpbXNlbGYgDQphc15yYW1hdGlzdHtbJiomXX0gdG8gYW55IG9uZSB2aWV3IG9mIGh1bWFuIGxpZmUuIElmIHdlIG9wZW4gDQphIG5vdmVsIGJ5IENoYXJsZXMgRGlja2Vucywgd2Uge1smKiZdfWZlZWwgYXNzdXJlZCBiZWZvcmVoYW5kIA0KdGhhdCB3ZSBhcmUgY29uZGVtbmVkIHRvIGFuIGV4dWJlcmFuY2Ugb2YgcGhpbGFuLSB7WyYqJl19DQp0aHJvcHkgOyB3ZSBrbm93IGhvdyB0aGUgd3JpdGVyIHdpbGwgaW5zaXN0IHRoYXQgd2UgDQptdXN0IGFsbCBiZSBnb29kIGZyaXtbJiomXX1lbmRzLCBhbGwgYmUgbWVuIGFuZCBicm90aGVycyBpbnRveGktIA0KY2F0ZWQgd2l0aCB0aGUgZGVsaWdodCBvZiBvbmUgYW5vdGhle1smKiZdfXJcJ3MgcHJlc2VuY2UgOyB3ZSBleC0gDQoNCiogXCIgSnV2ZW5hbCwgY1wnZXN0IGxhIHZpZWlsbGUgXm1lIGxpYnJlIGRlcyByZXB1Ymx7WyYqJl19aXF1ZXMgbW9ydGVzIDsgaWwgYSBlbiBsdWkgDQp1bmUgUm9tZSBkYW5zIElcJ2FpcmFpbiBkZSBsYXF1ZWxsZSBzb250IGZvbmR1ZXN7WyYqJl19IEF0aF5uZXMgZXQgU3BhcnRlLFwiIOKAlCBWaW8gDQpUT1IgSHVnbywgV2lsbGlhbSBTaGFrZXNwZWFyZSwgcC4gNDYgKGVkLiAxODZ7WyYqJl19OSkuIA0KDQozMDQgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KcGVjdCBoaW0gdG8gaG9sZCBvdXQgdGhlIHJpZ3tbJiomXX1odCBoYW5kIG9mIGZlbGxvd3NoaXAgdG8gbWFuLCANCndvbWFuLCBhbmQgY2hpbGQgOyB3ZSBhcmUgcHJlcGFyZWQgZm9yIHRoZSBie1smKiZdfWFjZWhhbmFsaWEgDQpvZiBiZW5ldm9sZW5jZS4gVGhlIGxlc3NvbiB3ZSBoYXZlIHRvIGxlYXJuIGZyb20gdGhpcyANCnRlYWNoZXJ7WyYqJl19IGlzIHRoYXQsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBhIGZldyBpbmV2aXRhYmxlIGFuZCANCmluY3JlZGlibGUgbW9uc3RlcnMgb3tbJiomXX1mIGNydWVsdHksIGV2ZXJ5IG1hbiBuYXR1cmFsbHkgZW4tIA0KZ2VuZGVyZWQgb2YgdGhlIG9mZnNwcmluZyBvZiBBZGFtIGlzIG9me1smKiZdfSBoaXMgb3duIG5hdHVyZSANCmluY2xpbmVkIHRvIGV2ZXJ5IGFtaWFibGUgdmlydHVlLiBTaGFrc3BlcmUgYWJvdW5kcyBpbiANCmt7WyYqJl19aW5kbHkgbWlydGggOyBoZSByZWNlaXZlcyBhbiBleHF1aXNpdGUgcGxlYXN1cmUgZnJvbSB0aGUgDQpcXCBhbGVydCB3aXQgYW5kIGJ7WyYqJl19cmlnaHQgZ29vZCBzZW5zZSBvZiBhIFJvc2FsaW5kIDsgaGUgY2FuIA0KZGFuZGxlIGEgZm9vbCBhcyB0ZW5kZXJseSBhcyBhbnkgbntbJiomXX11cnNlIHF1YWxpZmllZCB0byB0YWtlIGEgDQpiYWJ5IGZyb20gdGhlIGJpcnRoIGNhbiBkZWFsIHdpdGggaGVyIGNoYXJnZS4gQnV0e1smKiZdfSANClNoYWtzcGVyZSBpcyBub3QgcGxlZGdlZCB0byBkZWVwLWR5ZWQsIHVsdHJhIGFtaWFiaWxpdHkuIA0KV2l0aCBKYXF1ZXMgaGV7WyYqJl19IGNhbiByYWlsIGF0IHRoZSB3b3JsZCwgd2hpbGUgcmVtYWluaW5nIA0KY3VyaW91c2x5IGFsb29mIGZyb20gYWxsIGRlZXAgY29uY3tbJiomXX1lcm4gYWJvdXQgaXRzIGludGVyZXN0cywgDQp0aGlzIHdheSBvciB0aGF0LiBXaXRoIFRpbW9uIGhlIGNhbiB0dXJuIHVwb24gdGhle1smKiZdfSANCndvcmxkIHdpdGggYSByYWdlIG5vIGxlc3MgdGhhbiB0aGF0IG9mIFN3aWZ0LCBhbmQgZGlzY292ZXIgDQppbiBtYW4gYW5kIHd7WyYqJl19b21hbiBhIGNyZWF0dXJlIGFzIGFib21pbmFibGUgYXMgdGhlIFlhXiANCmhvby4gSW5qb2l0bExlciB3b3JkcywgdGhlIGh1bW9yIHtbJiomXX1vZiBTaGFrc3BlcmUsIGxpa2UgaGlzIA0KdHB0YWwgZ2VuaXVzLCBpcyBkcmFtYXRpYy4gDQoNClRoZW4sIGFnYWluLCBhbHRob3Vne1smKiZdfWggU2hha3NwZXJlIGxhdWdocyBpbmNvbXBhcmFibHksIA0KbWVyZSBsYXVnaHRlciB3ZWFyaWVzIGhpbS4gVGhlIG9ubHkgcGxheSB7WyYqJl19b2YgU2hhay0gDQpzcGVyJmx0OzNcJ3MsIG91dCBvZiBuZWFybHkgZm9ydHksIHdoaWNoIGlzIGZhcmNpY2FsLiBUaGUgQ29tZWR5IA17WyYqJl19Cm9mIEVycm9yc14gd2FzIHdyaXR0ZW4gaW4gdGhlIHBvZXRcJ3MgZWFybGllc3QgcGVyaW9kIG9mIGF1LSANCnRob3JzaGlwLCBhbmR7WyYqJl19IHdhcyBmb3JtZWQgdXBvbiB0aGUgc3VnZ2VzdGlvbiBvZiBhIHByZS0gDQpjZWRpbmcgcGllY2UuIEl0IGhhcyBiZWVuIG9ic2VydntbJiomXX1lZCB3aXRoIHRydXRoIGJ5IEdlci0gDQp2aW51cyB0aGF0IHRoZSBmYXJjaWNhbCBpbmNpZGVudHMgb2YgdGhpcyBwbGF5IGhhdmUge1smKiZdfWJlZW4gDQpjb25uZWN0ZWQgYnkgU2hha3NwZXJlIHdpdGggYSB0cmFnaWMgYmFja2dyb3VuZCB3aGljaCANCmlzIHByb2JhYmx5IGh7WyYqJl19aXMgb3duIGludmVudGlvbi4gV2l0aCBiZWF1dHkgb3Igd2l0aCBwYS0gDQp0aG9zIG9yIHdpdGggdGhvdWdodCwgU2hha3NwZXJlIHtbJiomXX1jYW4gbWluZ2xlIGhpcyBtaXJ0aCwgDQphbmQgdGhlbiBoZSBpcyBoYXBweSwgYW5kIGtub3dzIGhvdyB0byBkZWFsIHdpdGggcGxhe1smKiZdfXkgDQpvZiB3aXQgb3IgaHVtb3JvdXMgY2hhcmFjdGVyaXphdGlvbjsgYnV0IGFuIGVudGlyZWx5IA0KY29taWMgc3ViamVjdCBzb217WyYqJl19ZXdoYXQgZGlzY29uY2VydHMgdGhlIHBvZXQuIE9uIHRoaXMgDQpncm91bmQsIGlmIG5vIG90aGVyIHdlcmUgZm9ydGhjb21pbmcsIHtbJiomXX1pdCBtaWdodCBiZSBzdXMtIA0KcGVjdGVkIHRoYXQgVGhlIFRhbWluZyBvZiB0aGUgU2hyZXcgd2FzIG5vdCBhbHRvZ2V0aGVyIA0Ke1smKiZdfXRoXiB3b3JrIG9mIFNoYWtzcGVyZVwncyBoYW5kLiBUaGUgc2Vjb25kYXJ5IGludHJpZ3VlcyANCg0KSSBUaGUgSHVtb3Igb2YgU2hhe1smKiZdfWtzcGVyZS4gMzA1IA0KDQphbmQgbWlub2kqIGluY2lkZW50cyB3ZXJlIG9mIGxpdHRsZSBpbnRlcmVzdCB0byB0aGUgcG9ldC4gDQp7WyYqJl19QnV0IGluIHRodEogYnVveWFudCBmb3JjZSBvZiBQZXRydWNoaW9cJ3MgY2hhcmFjdGVyLCBpbiBoaXMgDQpzdWJkdWluZyB0ZW1wZXN7WyYqJl19dCBvZiBoaWdoIHNwaXJpdHMsIGFuZCBpbiB0aGUgcGVyc29uIG9mIHRoZSANCmZvaWxlZCByZSB2b2wgdHJlc3MgYWdhaW5zdCB0aHtbJiomXX1lIGxhdyBvZiBzZXgsIHdobyBjYXJyaWVzIGludG8gDQpoZXIgd2lmZWx5IGxveWFsdHkgdGhlIHNhbWUgZW5lcmd5IHdoaWNoIHNoe1smKiZdfWUgaGFkIHNob3duIA0KaW4gaGVyIHZpcmdpbiBzYXV2YWdlcmllXiB0aGVyZSB3XmVyZSBlbGVtZW50cyBvZiBodW1hbiANCmNoYXJ7WyYqJl19YWN0ZXIgaW4gd2hpY2ggdGhlIGltYWdpbmF0aW9uIG9mIHRoZSBwb2V0IHRvb2sgZGUtIA0KbGlnaHQuXiBpIA0KDQpVbmxlc3MgaXtbJiomXX10IGJlIGl0cyBvd24gZXhjZXNzLCBob3dldmVyLCBTaGFrc3BlcmVcJ3MgDQpsYXVnaHRlciBzZWVtcyB0byBmZWFyIG5vdGhpbmcuIHtbJiomXX1JdCBkb2VzIG5vdCwgd2hlbiBpdCANCmhhcyBvbmNlIGFycml2ZWQgYXQgaXRzIGZ1bGwgZGV2ZWxvcG1lbnQsIGZlYXIgZW50aHVze1smKiZdfWktIA0KYXNtIG9yIHBhc3NqaW9uIG9yIHRyYWdpYyBpbnRlbnNpdHkgOyBub3IgZG8gdGhlc2UgZmVhciBpdC4gDQpUaGUgdHJhZGl7WyYqJl19dGlvbnMgb2YgdGhlIEVuZ2xpc2ggZHJhbWEgaGFkIGZhdm9yZWQgdGhlIGp1eC0gDQp0YXBvc2l0aW9uIG9mIHRoZSBzZXJpb3VzIHtbJiomXX1hbmQgY29taWMgOyBidXQgaXQgd2FzIHJlc2VydmVkIA0KZm9yIFNoYWtzcGVyZSB0byBtYWtlIGVhY2ggYSBwYXJ0IG9mIHRoZSBve1smKiZdfXRoZXIgOyB0byBpbnRlci0gDQpwZW5ldHJhdGUgdHJhZ2VkeSB3aXRoIGNvbWVkeSwgYW5kIGNvbWVkeSB3aXRoIHRyYWdpYyANCmV7WyYqJl19YXJuZXN0bmVzcy4gSW4gTWFybG93ZVwncyBEb2N0b3IgRmF1c3RpaVN5IGFzIHdlIG5vdyANCnBvc3Nlc3MgaXQsIHRoZSBzY2VuZXN7WyYqJl19IG9mIGV4dHJhdmFnYW50IGJ1cmxlc3F1ZSBhcmUgbWVyZWx5IA0KYSBkaXZlcnRpc3NlbWVudCBhZnRlciB0aGUgdGVycm9yIGFuZHtbJiomXX0gYXdmdWwgc29sZW1uaXR5IG9mIA0KdGhlIHRyYWdpYyBzY2VuZXMuIE9uZSBjYW5ub3QgYnV0IGRlc2lyZSB0byBiZWxpZXZlIHRoe1smKiZdfWF0IA0Kc3VjaCBwYXNzYWdlcyBvZiBydWRlIGJ1cmxlc3F1ZSB3ZXJlIHRoZSBpbnZlbnRpb24gb2YgDQpzb21lIGNsdW1zeSBwbGF7WyYqJl19eXdyaWdodCwgYW5kIG5vdCB0aGUgbGFib3Jpb3VzIGRlZ3JhZGEtIA0KdGlvbiBvZiBoaXMgb3duIGFydCBieSBNYXJsb3dlLCB3aHtbJiomXX1vIHBvc3Nlc3NlZCBubyBnaWZ0IG9mIA0KDQoqIFwiIEZhcm1lciwgbmVhcmx5IGEgaHVuZHJlZCB5ZWFycyBhZ28sIHNhaWQgdGhhdHtbJiomXX0gU2hha3NwZXJlIHdyb3RlIG9ubHkgDQp0aGUgUGV0cnVjaGlvIHNjZW5lcyBpbiBUaGUgVGFtaW5nIG9mIHRoZSBTaHJldy4gTXIue1smKiZdfSBDb2xsaWVyIGhlc2l0YXRpbmdseSANCmFkb3B0ZWQgdGhpcyB2aWV3LiBNci4gR3JhbnQgVyBMaXRlIGRldmVsb3BlZCBpdCwgYW57WyYqJl19ZCBJIChhbmQgTXIuIEZsZWF5IGFmLSANCnRlcndhcmRzKSB0dXJuZWQgaXQgaW50byBmaWd1cmVzLCBtYWtpbmcgdGhlIGZvbGxvd3tbJiomXX1pbmcgcGFydHMgU2hha3NwZXJlXCdzLCANCnRob3VnaCBpbiBtYW55IHBsYWNlcyB0aGV5IGFyZSB3b3JrZWQgdXAgYnkgaGltIGZyb3tbJiomXX1tIHRoZSBvbGQgVGFtaW5nIG9mIA0KYSBTaHJldzogSW5kdWN0aW9uOyBhY3QgaWwsIHNjLiAxLCAxLiAxNjgtMzI2ICg/IHRvdWNoe1smKiZdfWluZyAxMTUtMTZcJzcpOyBJSUkuIGlpLiANCjEuIDEyNSwgMTUxLTI0MDsgSVYuIGkuIChhbmQgaWkuIER5Y2UpOyBJVi4gaWlpLiwge1smKiZdfXYuIChpdi4sIHZpLiwgRHljZSk7IFYuIGlpLiAxLiAxLSANCjE4MCA7IGluIHNob3J0LCB0aGUgcGFydHMgb2YgS2F0aGFyaW5lIGF7WyYqJl19bmQgUGV0cnVjaGlvLCBhbmQgYWxtb3N0IGFsbCBHcnVtaW8sIA0Kd2l0aCB0aGUgY2hhcmFjdGVycyBvbiB0aGUgc3RhZ2Ugd2l0aHtbJiomXX0gdGhlbSwgYW5kIHBvc3NpYmxlIG9jY2FzaW9uYWwgdG91Y2hlcyANCmVsc2V3aGVyZSAoVHJhbnMuIE5ldyBTaC4gU29jLCAxODc0e1smKiZdfSwgcHAuIDEwMy0xMTApLiBUaGUgcmVzdCBpcyBieSB0aGUgYWx0ZXJlciANCmFuZCBhZGFwdGVyIG9mIHRoZSBvbGQgQSBTaHJld157WyYqJl19IHByb2JhYmx5IE1hcmxvd2UsIGFzIHRoZXJlIGFyZSBkZWxpYmVyYXRlIA0KY29waWVzIG9yIHBsYWdpYXJpc21zIG9mIGhpbSBpbntbJiomXX0gdGVuIHBhc3NhZ2VzIChHLiBXaGl0ZSkuXCIg4oCUIEYuIEouIEZ1cm5peWFsbCwgDQpQcmVmYWNlIHRvIEdlcnZpbnVzXCdzIFNoYWt7WyYqJl19ZXNwZWFyZSBDb21tZW50YXJpZXNeIDE4NzQuIEkgY2Fubm90IGFjY2VwdCB0aE8gDQpvcGluaW9uIHRoYXQgTWFybG93ZSB3YXMgdHtbJiomXX1oZSBhZGFwdGVyIG9mIFRoZSBUYW1pbmcgb2YgYSBTaHJldywgDQoyMCANCg0KM282IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5ke1smKiZdfSBBcnQuIA0KDQpodW1vci4gSW4gRG9jdG9yIEZhdXN0dXMgdGhlIGp1eHRhcG9zaXRpb24gb2YgdGhlIGVsZSogDQp2YXRlZCBhbmR7WyYqJl19IHRoZSBidXJsZXNxdWUgc2NlbmVzIHByb2R1Y2VzIGFuIGU6ZmZlY3QgYXMgaW4tIA0KY29uZ3J1b3VzIGFzIGlmIGEgZ3JvdXAgb3tbJiomXX1mIER1dGNoIGJvb3JzIGNhcm91c2luZyBpbiBhIA0KdGF2ZXJuIG9mIFRlbmllcnMgd2VyZSB0cmFuc2ZlcnJlZCBpbnRvIHNvbWUge1smKiZdfWc7cmVhdCBzYWNyZWQgDQpvciBjbGFzc2ljYWwgY29tcG9zaXRpb24gYnkgTGlvbmFyZG8gZGEgVmluY2kgb3IgUmFTYS0gDQplbGx7WyYqJl19ZS4gVGhlIHNlcmlvdXMgYW5kIHRoZSBjb21pYyBwb3J0aW9ucyBvZiB0aGUgcGxheSBtb3ZlIA0KdXBvbiBkaWZmZXJlbnQgcGxhbntbJiomXX1lcyBvZiBmZWVsaW5nLCBhbmQgdGhlIG9uZSBjYW5ub3QgYXMtIA0Kc2lzdCBvciBjby1vcGVyYXRlIHdhdGggdGhlIG90aGVyLiBJe1smKiZdfW4gU2hha3NwZXJlXCdzIGVhcmxpZXN0IA0KdHJhZ2VkeSBoaXMgbWV0aG9kIGlzIGFscmVhZHkgaW4gZXhpc3RlbmNlLiBIZSBpcyBue1smKiZdfW90IA0KYWZyYWlkIHRoYXQgdGhlIHBhc3Npb24gYW5kIHRoZSBhbmd1aXNoIG9mIHRoZSBsaXZlcyBvZiANCktvbWVvIGFuZCBKdWx7WyYqJl19aWV0IHdpbGwgc3VmZmVyIGFiYXRlbWVudCBiZWNhdXNlIE1lcmN1dGlvIA0KY29ydXNjYXRlcyBhbmQgc2NpbnRpbGxhdGVzLCBvcntbJiomXX0gYmVjYXVzZSB0aGUgbnVyc2UgcHVmZnMgYW5kIA0KcGVyc3BpcmVzLCB0ZWxscyBsb25nLXdpbmRlZCBzdG9yaWVzLCBhbmQgdGlwe1smKiZdfXBsZXMgaGVyIGFxdWEtIA0Kdml0Y2UuIEluIFRoZSBUd28gR2VudGxlbWVuIG9mIFZlcm9uYSwsIHdoaWxlIEp1bGlhLCANCnN0YW57WyYqJl19ZGluZyBieSBkaXNndWlzZWQsIGhlYXJzIGhlciBmYWl0aGxlc3MgbG92ZXIgZGV2b3RpbmcgDQpoaW1zZWxmIHRvIFNpbHZpYSwgdHtbJiomXX1oZSBIb3N0IGZhbGxzIHNvdW5kIGFzbGVlcC4gVGhpcyBpcyANCnF1aXRlIGFzIGl0IHNob3VsZCBiZS4gVGhlIHdvcmxkIGlzIG5ve1smKiZdfXQgYWxsIG1hZGUgZm9yIHBhcy0gDQpzaW9uYXRlIHlvdW5nIGdlbnRsZW1lbiBhbmQgbGFkaWVzLiBUaGUgc3RvdXQgYm9keSBvZiB7WyYqJl19DQptaW5lIGhvc3QgaGFzIGl0cyByaWdodHMgYW5kIGR1ZXMgYWxzbyA6IFwiIEJ5IG15IGhhbGlkb20sIA0KSSB3YXMgZmFzdCBhc2x7WyYqJl19ZWVwLlwiIFNoYWtzcGVyZVwncyBodW1vciBoZXJlIGlzIGEgcG9ydGlvbiANCm9mIGhpcyBmaWRlbGl0eSB0byB0aGUgZmFjdCwgaGlze1smKiZdfSBjb250ZW50IGluIHNlZWluZyB0aGluZ3MgYXMgDQp0aGV5IGFyZSwgaGlzIGp1c3RpY2UsIGhpcyBpbXBhcnRpYWxpdHkuIFRoZSB7WyYqJl19Y2xvd24gbGF1Z2hzIA0KYXQgdGhlIGxvdmVyLCBhbmQgbm90IHdpdGhvdXQgYSBmYWlyIHNob3cgb2YgY2xvd24tbGlrZSANCmNvbXtbJiomXX1tb24tc2Vuc2UuIFNoYWtzcGVyZSBpcyBkaXNwb3NlZCB0byBsZXQgbm8gc2lkZSBvZiBhIA0KZmFjdCBlc2NhcGUgaGltLiBJZmxUe1smKiZdfVRpU3J2XmEgdHJpdmlhbCwgbHVkaWNyb3VzIGFzcGVjdCwgYnkgDQpfYWxsIG1lYW5zIGxldCB1cyBoYXZlIHRoYXQgcHV0IHVwb257WyYqJl19IHJlY29yZC4gVGhlIHZhbGV0LSANCmRlLWNoYW1icmUgcmFuZ2Ugb2YgZW1vdGlvbiBpcyBhcyB1bmRlbmlhYmxlIGEgcGllY2Ugb3tbJiomXX1mIA0KcmVhbGl0eSBhcyBpcyB0aGUgaGVyb2ljIDsgYW5kIHRoZSB3b3JsZCwgc29tZWhvdywgaXMgd2lkZSANCmVub3VnaCBmb3Ige1smKiZdfWJvdGggdmFsZXQgYW5kIGhlcm8uIEl0IGlzIGRlc2lyYWJsZSB0byBhc2Nlci0gDQp0YWluIHdoYXQgbGlnaHRzIHRoZSBvbmUgbWF7WyYqJl19eSB0aHJvdyB1cG9uIHRoZSBvdGhlci4gDQoNClRoaXMgYXBwYXJlbnQgaG9sZGluZyBoaW1zZWxmIGFsb29mIGZyb20sIGFuZCBhYntbJiomXX1vdmUsIA0KaGlzIG93biBjcmVhdGlvbnMsIGhpcyBwZXJmZWN0IGltcGFydGlhbGl0eSB0b3dhcmRzIGVhY2ggDQpwZXJzb24sIGFue1smKiZdfWQgc29tZXRpbWVzIHRvd2FyZHMgdGhlIGVudGlyZSBhY3Rpb24gb2YgaGlzIA0KZHJhbWEsIGlzIHdoYXQgU2NobGVnZWwgaGFzIHN7WyYqJl19cG9rZW4gam9mIF4gXlNoYWtzcGVyZVwncyANCmlyb255LiBUaGlzIGlyb255LCBTY2hsZWdlbCBoYXMgc2FpZCwgaXMgXCIgdGhlIGdye1smKiZdfWF2ZSBvZiBlblwnIA0KDQpUaGUgSGlMbW9yIG9mIFNoYWtzcGVyZS4gMzA3IA0KDQp0aHVzaWFzbS4gV2UgYXJyaXZlIGF0IGl0IG9ue1smKiZdfWx5IGFmdGVyIHdlIGhhdmUgaGFkIHRoZSANCm1pc2ZvcnR1bmUgdG8gc2VlIGh1bWFuIG5hdHVyZSB0aHJvdWdoIGFuZCB0aHJvdWd7WyYqJl19aCwgDQphbmQgd2hlbiBubyBjaG9pY2UgcmVtYWlucyBidXQgdG8gYWRvcHQgdGhlIG1lbGFuY2hvbHkgDQp0cnV0aCB0aGF0IFwnIG57WyYqJl19byB2aXJ0dWUgb3IgZ3JlYXRuZXNzIGlzIGFsdG9nZXRoZXIgcHVyZSBvciANCmdlbnVpbmUsXCcgb3IgdGhlIGRhbmdlcm91cyBlcnJ7WyYqJl19b3IgdGhhdCBcJyB0aGUgaGlnaGVzdCBwZXJmZWMtIA0KdGlvbiBpcyBhdHRhaW5hYmxlLlwnIFwiIFwiIEhlcmUsXCIgdGhlIGNyaXRpYyBje1smKiZdfW9udGludWVzLCBcIiB3ZSANCnRoZXJlZm9yZSBtYXkgcGVyY2VpdmUgaW4gdGhlIHBvZXQgaGltc2VsZiwgbm90d2l0aHN0YW5kLSANe1smKiZdfQppbmcgaGlzIHBvd2VyIHRvIGV4Y2l0ZSB0aGUgbW9zdCBmZXJ2ZW50IGVtb3Rpb25zLCBhIGNlci0gDQp0YWluIGNvb2wgaW5kaWZ7WyYqJl19ZmVyZW5jZSwgYnV0IHN0aWxsIHRoZSBpbmRpZmZlcmVuY2Ugb2YgYSBzdXBlLSANCnJpb3IgbWluZCwgd2hpY2ggaGFzIHJ1biB0aHtbJiomXX1yb3VnaCB0aGUgd2hvbGUgc3BoZXJlIG9mIA0KaHVtYW4gZXhpc3RlbmNlIGFuZCBzdXJ2aXZlZCBmZWVsaW5nLlwiIF4gDQoNCkluIHtbJiomXX10aGlzIGNyaXRpY2lzbSBieSBTY2hsZWdlbCB0aGVyZSBpcyBhbiBhcHBlYXJhbmNlIG9mIA0KdHJ1dGgsIGJ1dCBubyBtb3JlIHRoe1smKiZdfWFuIGFuIGFwcGVhcmFuY2UuIFNoYWtzcGVyZVwncyBpbS0gDQpwYXJ0aWFsaXR5IHRvd2FyZHMgdGhlIHBlcnNvbnMgYW5kIG1vdGl2e1smKiZdfWVzIG9mIGhpcyBwbGF5cyBpcyANCm5vdCByZWFsIGFsb29mbmVzcy4gSXQgcmF0aGVyIHByb2NlZWRzIGZyb20gaGlzIHByb2ZvdW57WyYqJl19ZCANCmludGVyZXN0IGluIGhpcyBzdWJqZWN0LCBoaXMgZGV0ZXJtaW5hdGlvbiB0byBkbyBqdXN0aWNlIHRvIA0KZXZlcnkgc2lkZXtbJiomXX0gb2YgaXQuIFwiIEluIHRyb3RoLFwiIGV4Y2xhaW1zIFByaW5jZSBIZW5yeSwgXCJJIA0KZG8gbm93IHJlbWVtYmVyIHRoZSBwb29yIGNye1smKiZdfWVhdHVyZSBzbWFsbCBiZWVyLCBidXQsIGluLSANCmRlZWQsIHRoZXNlIGh1bWJsZSBjb25zaWRlcmF0aW9ucyBtYWtlIG1lIG91dCB7WyYqJl19b2YgbG92ZSANCndpdGggbXkgZ3JlYXRuZXNzLFwiIERvZXMgU2hha3NwZXJlIGZlZWwgbGVzcyBlbnRodXNpYXNtIA0KZm9yIHRoZSB7WyYqJl19Z2xvcmlvdXMgbWFuaG9vZCBvZiBIZW5yeSBiZWNhdXNlIEhlbnJ5IHJlLSANCm1lbWJlcnMgdGhlIHBvb3IgY3JlYXR1cmUgc21hbHtbJiomXX1sIGJlZXIgPyBObyA7IFNoYWtzcGVyZSANCmlzIHByZXBhcmVkIHRvIGFkbWl0IHRoYXQgSGVucnkgaXMgZXZlcnkgd2hpdCBodW1he1smKiZdfW4sIA0KYW5kIHRoZXJlZm9yZSBpdCBpcyB0aGF0IHRoZSBzcGxlbmRvciBvZiBoaXMgbWFuaG9vZCANCnN0cmVuZ3RoZW5zIHVzLCB7WyYqJl19YW5kIGZpbGxzIHVzLCBhcyBpdCB3ZXJlLCB3aXRoIGEgcGVyc29uYWwgDQpwcmlkZSBhbmQgam95IDogDQoNClwiIEkgc2F3IHlvdW57WyYqJl19ZyBIYXJyeSB3aXRoIGhpcyBiZWF2ZXIgb24sIA0KSGlzIGN1aXNzZXMgb24gaGlzIHRoaWdocywgZ2FsbGFudGx5IGFybVwnZCwgDQp7WyYqJl19UmlzZSBmcm9tIHRoZSBncm91bmQgbGlrZSBmZWF0aGVyTSBNZXJjdXJ5LCANCkFuZCB2YXVsdGVkIHdpdGggc3VjaCBlYXNlIGludHtbJiomXX1vIGhpcyBzZWF0LCANCkFzIGlmIGFuIGFuZ2VsIGRyb3BwTSBkb3duIGZyb20gdGhlIGNsb3VkcywgDQpUbyB0dXJuIGFuZCB3aW5ke1smKiZdfSBhIGZpZXJ5IFBlZ2FzdXMgDQpBbmQgd2l0Y2ggdGhlIHdvcmxkIHdpdGggbm9ibGUgaG9yc2VtYW5zaGlwLioqIA0KDQoqIFwiIExle1smKiZdfWN0dXJlcyBvbiBEcmFtYXRpYyBBcnQgYW5kIExpdGVyYXR1cmUsXCIgYnkgQS4gVy4gU2NobGVnZWwgKGVkLCAxODQ2KV4gDQpwLiA4e1smKiZdfTY5LiANCg0KM284IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydCANCg0KSXQgaXMgYmVjYXVzZSBTaGFrc3BlcmUgc28gZW57WyYqJl19dGlyZWx5IGFja25vd2xlZGdlcyB0aGUgDQpoZXJvaWMgaW4gSGVucnkgdGhhdCBoZSBoYXMgbm8gdGltaWRpdHkgaW4gcmlza2luZ3tbJiomXX0gaGlzIA0KcmVwdXRhdGlvbiBhcyBoZXJvIGJ5IGNvbmZlc3Npb24gb2YgdGhlIGNvbW1vbiBpbmNpZGVudHMgDQpvZiBodW1hbml0e1smKiZdfXksIGhlcm9pYyBhcyB3ZWxsIGFzIG5vbi1oZXJvaWMuIFRoYXQgYSBtb3N0IA0KQ2hyaXN0aWFuIGtpbmcgc2hvdWxkIGVhY2ggbW97WyYqJl19cm5pbmcgcmVjZWl2ZSBoaXMgcGVydWtlIA0KaW5zZXJ0ZWQgdXBvbiBhIGNhbmUgdGhyb3VnaCBhbiBhcGVydHVyZSBvZiBoaXMgYntbJiomXX1lZC1jdXItIA0KdGFpbnMgaXMgZW50aXJlbHkgY29ycmVjdCA7IGZvciB0aGUgdmFsZXQgY2Fubm90IHJldGFpbiBmYWl0aCANCmlue1smKiZdfSBhIHBlcnVrZWxlc3MgZ3JhbmQgbW9uYXJjaC4gQnV0IFNoYWtzcGVyZSBkYXJlcyB0byANCmluc3BlY3QgaGlzIGhlcm8gYXMgXCIge1smKiZdfXVuYWNjb21tb2RhdGVkIG1hbi5cIiBcIiBVbmFjY29tLSANCm1vZGF0ZWQgbWFuIGlzIG5vIG1vcmUgYnV0IHN1Y2ggYSBwb29yLCBiYXtbJiomXX1yZSwgZm9ya2VkIA0KYW5pbWFsIGFzIHRob3UgYXJ0LFwiIGV4Y2xhaW1zIExlYXIgdG8gdGhlIHNoaXZlcmluZyBFZC0gDQpnYXIgO3tbJiomXX0gYW5kIHlldCBoZSBpcywgYXQgdGhlIHNhbWUgdGltZSwgXCIgSG93IG5vYmxlIGluIHJlYS0gDQpzb24gISBob3cgaW5maW5pdGUgaXtbJiomXX1uIGZhY3VsdHkgISBpbiBmb3JtIGFuZCBtb3ZpbmcgaG93IA0KZXhwcmVzcyBhbmQgYWRtaXJhYmxlICEgaW4gYWN0aW9uIGhvdyBse1smKiZdfWlrZSBhbiBhbmdlbCAhIGluIA0KYXBwcmVoZW5zaW9uIGhvdyBsaWtlIGEgZ29kICEgdGhlIGJlYXV0eSBvZiB0aGUgd29ybGQgISB7WyYqJl19DQp0aGUgcGFyYWdvbiBvZiBhbmltYWxzICFcIiANCg0KU2hha3NwZXJlIHJlY29nbml6ZWQgYm90aCBvdXIgaHVtYW4gaW1wZXJmZWN7WyYqJl19dGlvbiANCmFuZCBvdXIgaHVtYW4gZ3JlYXRuZXNzIDsgaGUgZGVuaWVkIHRoZSBvbmUgYXMgbGl0dGxlIGFzIA0KdGhlIG90aGVyO3tbJiomXX0gaGVuY2UgaGlzIGVudGh1c2lhc20gaXMgbm90IHN1cHByZXNzZWQgYnksIA0KYnV0IGF0IG9uZSB3aXRoLCBoaXMgdGVuZGVybmVze1smKiZdfXMsIGhpcyBwaXR5LCBoaXMgcGF0aG9zLiBEZXMtIA0KZGVtb25hIGZhbHRlcnMgZnJvbSB0aGUgdHJ1dGggYmVmb3JlIHRoZSB0ZXJ7WyYqJl19cmlibGUgZXllIG9mIA0KaGVyIGh1c2JhbmQ7IGJ1dCBzaGUgdXR0ZXJzIGhlciBkeWluZyBhbmQgcmVkZWVtaW5nIA0KZmFsc2Vob3tbJiomXX1vZC4uIEltb2dlblwncyBxdWljayByZXNlbnRtZW50IHdyb25ncyBmb3IgYSBtby0gDQptZW50IHRoZSBob25vciBvZiBQb3N0aHVtdXtbJiomXX1zIDsgYnV0IEltb2dlblwncyBhcm1zIGFyb3VuZCANClBvc3RodW11c1wncyBuZWNrIGRvIG1vcmUgdGhhbiBtYWtlIGFtZW5kcy4gQSB7WyYqJl19d29tYW4gDQppcyBkZWFyZXIgdG8gU2hha3NwZXJlIHRoYW4gYW4gYW5nZWwgOyBhIG1hbiBpcyBiZXR0ZXIgdGhhaCANCmEgZ29kLntbJiomXX0gLiBBdCB0aGUgRGlldCBvZiBXb3JtcywgaW4gMTUyMSwgaGlzIEltcGVyaWFsIE1hai0gDQplc3R5LCB3aG8gZGlkIG5vdCBrbm93e1smKiZdfSBIaWdoLUdlcm1hbiwgcmVxdWlyZWQgTWFydGluIA0KTHV0aGVyIHRvIHJlcGVhdCBoaXMgbG9uZyBkZWZlbmNlIGluIHRoZSBMYXR7WyYqJl19aW4gdG9uZ3VlLiANClRoZSBzd2VhdCBmbG93ZWQgb24gTHV0aGVyXCdzIGZvcmVoZWFkIDsgaGlzIGx1bmdzIHdlcmUgDQpleGhhdXN7WyYqJl19dGVkLCBoaXMgdGhyb2F0IHdhcyBwYXJjaGVkLiBUaGUgRHVrZSBvZiBCcnVucy0gDQp3aWNrLCB3aG8gc2F0IGJ5IGhpcyBzaWRlLHtbJiomXX0gZGVzcGF0Y2hlZCBhIHNlcnZhbnQgZm9yIHRocmVlIA0KZmxhZ29ucyBvZiB0aGUgYmVzdCBFaW1iZWNrIGJlZXIuIFwnXiBJIHNoYXtbJiomXX1sbCBuZXZlciBmb3JnZXQgDQp0aGF0IG5vYmxlIGFjdGlvbixcIiB3cml0ZXMgSGVpbmUsIHdpdGggYSBnZW51aW5lIGJ1cnN0IG9mIHtbJiomXX0NCmRlbGlnaHQgaW4gdGhlIGhvbWVseSBoZXJvaXNtIG9mIG91ciBkZWFyIG1hc3RlciBNYXJ0aW4gDQoNClRoZSBIdW1vciBvZiBTe1smKiZdfWhhaHNwZXJlLiAzMDkgDQoNCkx1dGhlciwgXCJ3aGljaCBkb2VzIHNvIG11Y2ggaG9ub3IgdG8gdGhlIEhvdXNlIG9mIA0KQnJ1bnN3e1smKiZdfWljay5cIiAqIFRoZSBob3N0IGZhbGxzIGZhc3QgYXNsZWVwIHdoaWxlIEp1bGlhXCdzIA0KaGVhcnQgaXMgb25seSBqdXN0IHNvdW5kIHtbJiomXX1hbmQgc3Ryb25nIGVub3VnaCB0byBrZWVwIGZyb20gDQpicmVha2luZy4gRG9lcyB0aGUgcHJvcGlucXVpdHkgb2YgdGhlIHNub3Jpe1smKiZdfW5nIGhvc3QgDQptYWtlIHRoZSBhbmd1aXNoIG9mIEp1bGlhIGxlc3MgcmVhbCA/IE1hc3Qgd2Ugc3VwcG9zZSANCnRoYXQgbG92ZSB7WyYqJl19d2FzIGFuIGlsbHVzaW9uIHdoaWNoIFNoYWtzcGVyZSBoYWQgdHJhbnNjZW5kLSANCmVkIGJlY2F1c2UgRnJpYXIgTGF1cmVuY2UgbXtbJiomXX1vcmFsaXplcyBvbiB0aGUgdmlvbGVudCBlbmRzIA0Kb2YgdmlvbGVudCBkZWxpZ2h0cyAlIEluIEFudG9ueSBhbmQgQ2xlb3BhdHJhe1smKiZdfSBhIGNsb3duIA0KYmVhcnMgdGhlIGJhc2tldCBpbiB3aGljaCBpcyBoaWRkZW4gXCIgdGhlIHByZXR0eSB3b3JtIG9mIA0KTmlsdXMge1smKiZdfXRoYXQga2lsbHMgYW5kIHBhaW5zIG5vdC5cIiAuSXMgU2hha3NwZXJlIGluZGlmZmVyZW50IA0KdG8gdGhlIGdyYXZpdHkgb2YgZHlpe1smKiZdfW5nIGJlY2F1c2UgYSBncm90ZXNxdWUgcnVzdGljIGJlY29tZXMgDQp0aGUgbWVzc2VuZ2VyIG9mIGRlYXRoIHRvIHRoZSBncmVhdCB7WyYqJl19RWd5cHRpYW4gcXVlZW4/IElzIA0KZHlpbmcgbm90IGFsdG9nZXRoZXIgYSByZWFsaXR5PyBBc3N1cmVkbHksIHRob3VnaCBhIA0KY3tbJiomXX1sb3duIGhhcyBicm91Z2h0IHRoZSBiYXNrZXQsIHRoZSB3b3JtIFwiIHdpbGwgZG8gaGlzIA0Ka2luZCBcIiB1cG9uIElyYXMgYW5kIEN7WyYqJl19aGFybWlhbiBhbmQgQ2xlb3BhdHJhLiBEZWF0aCANCmlzIHJlYWwuIEFuZ3Vpc2ggYW5kIGxvdmUgYXJlIHJlYWwsIHRob3VnaCBQZXtbJiomXX10ZXIgY2FsbCBmb3IgDQpzb21lIFwiIG1lcnJ5IGR1bXAgXCIgdG8gY29tZm9ydCBoaW0sIGFuZCB0aG91Z2ggbWluZSANCmhvc3QgeWl7WyYqJl19ZWxkIHRvIHRoZSBsdXh1cmlvdXMgb2JzZXNzaW9uIG9mIGEgc25vb3plLiANClwnIOKAlCBKVHJhZ2VkeSB3aXRoIFNoYWtzcGVyZSB7WyYqJl19YmVjb21lcyBtb3JlIHRyYWdpYyBiZWNhdXNlIA0KaXQgbGllcyBzXnJyb3VuZGVkIGJ5IHRoZSBjb21tb24gcmVhbGl0aWVzLiBvaXtbJiomXX0gbGlmZS4gSGUtIA0Kcm9pY3Mgd2hpY2ggYXJlIHNvIGVsZXZhdGVkIGFzIHRvIGRpc2RhaW4gYWxsIHRoYXQgaXMgYWN0dWFsIA0Ke1smKiZdfWFuZCBvcmRpbmFyeSwgbGlrZSB0aG9zZSBvZiB0aGUgUmVzdG9yYXRpb24gZHJhbWEgYW5kIA0KdGhhdCBvZiBhIHN1YnNlcXVlbnR7WyYqJl19IHBlcmlvZCwgdGVuZCByYXBpZGx5IHRvIGJlY29tZSANCnBzZXVkby1oZXJvaWNzLCBhbmQgYWZmZWN0IHVzLCBpbiB0aGUgZW5kLHtbJiomXX0gYXMgYWN0dWFsbHkgY29tLSANCmljIOKAlCBhIHJpZGljdWxvdXMsIHVuZGVzaWduZWQgcGFyb2R5IG9mIGdlbnVpbmUgbm9iaWxpe1smKiZdfXR5IA0Kb2YgZmVlbGluZyBhbmQgY29uZHVjdC4gSGVjdG9yIGJlY29tZXMgRHJhd2NhbnNpci4gDQpUaGUgc3RhdHVlc3F1ZSBncm97WyYqJl19dXAgb2Ygd2hpY2ggV2hpc2tlcmFuZG9zIGlzIHRoZSBjZW4tIA0KdHJlIOKAlCB1bmNsZXMgYW5kIG5pZWNlcyDigJQgc3RhbmQgaXtbJiomXX1uIG1lbmFjaW5nIGF0dGl0dWRlIGF0IGEgDQpkZWFkbG9jaywgZWFjaCB3aXRoIGEgZGFnZ2VyIGF0IHRoZSBicmVhc3QuIFNoYWtze1smKiZdfXBlcmVeIA0KYSBHZXJtYW4gcG9ldCBoYXMgc2FpZCwgaW5vY3VsYXRlcyBoaXMgdHJhZ2VkeSB3aXRoIGEgLC4gDQpjb21p4oKsXi17WyYqJl19dmktcm5zLFwiYW5kIHRodSBzIGl5IGlzIFwncHJlIGZyb20gdGhlIGdyZWF0IGRpcy0gXCIgKiANCg0KZWFzZSBvZiBhYnNpXV5kaWl5LntbJiomXX10IEFCc3QgcmFGdF5Ucm9tIFwnIEVvIGVvIGFuIGQgSnVsaWV0IA0KDQpeIOKWoCBeIC4uIFwnIOKAlCAuIOKAlCBfX19fIOKAlCAuICx7WyYqJl19IC4g4oCUIF9fX19fIOKAlCBfXiANCg0KKiBIZWluZSwgXCIgU2FtbXRsaWNoZSBXZXJrZSxcIiB2b2wuIHYuIChcIiBVZWJlciBEZXV0c3tbJiomXX1jaGxhbmQgXCIpLCBwLiA3Ni4gDQpmIFwiIERhcyBLb21pc2NoZSBpc3QgZGVyIG5hdGlpcmxpY2hlIEZlaW5kIGRlcyBHcmF2aXRhdGl7WyYqJl19c2NoZW4gOyBlcyB2ZXJoYWx0IA0KZWljaCB6dW0gVHJhZ2lzY2hlbiB3aWUgZGllIHNvZ2VuYW5udGUgZ2Vmb3JkZXJ0ZSBGYXJiZXtbJiomXX0genUgZGVyIGFuZGVybiANCg0KMyAxIG8gU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQp0aGUgc2NlbmVzIGluLiB3e1smKiZdfWhpY2ggdGhlIHNlcnZpbmcgLW1lbiBiaXRlIHRodW1icywgdGhlIA0Kc2NlbmVzIGluIHdoaWNoIE1lcmN1dGlvIGplc3RzLCB0aG97WyYqJl19c2UgaW4gd2hpY2ggdGhlIG51cnNlIA0KbGV0cyBsb29zZSBoZXIgd2FudG9uIHRvbmd1ZSwgdGhvc2UgaW4gd2hpY2ggb2xkIENhcHtbJiomXX11bGV0IA0KZnVzc2VzIGFuZCBmcmV0cywgYW5kIGxlYXZlIG9ubHkgdGhlIHBhc3NhZ2VzIG9mIGpveSBhbmQgDQpvZiBzb3Jyb3cge1smKiZdfWJldHdlZW4gdGhlIGxvdmVycyDigJQgaG93IGluc3Vic3RhbnRpYWwgdGhlIGpveSANCmFuZCB0aGUgc29ycm93IGFwcGVhciAhIEl7WyYqJl19biBvcmRlciB0aGF0IHRoZSBhbmdlbHMgaW4gdGhlIA0KZHJlYW0gb2YgSmFjb2IgbWlnaHQgZGVzY2VuZCB0byB0aGlzIGFiaWRpbntbJiomXX1nLXBsYWNlIG9mIA0Kb3VycywgYW5kIG1pZ2h0IGFzY2VuZCBhZ2FpbiwgdGhlcmUgd2FzIG5lZWRlZCBcJ1wnYSBsYWRkZXIgDQpzZXR7WyYqJl19IHVwIG9uIHRoZSBlYXJ0aCwgdGhlIHRvcCBvZiB3aGljaCByZWFjaGVkIHRvIGhlYXZlbi5cJ14gDQpUaGUgYXJkb3JzIGFuZCB2aXJ7WyYqJl19dHVlcyBhbmQgc3Bpcml0dWFsIHByZXNlbmNlcyBvZiB0aGUgaHUtIA0KbWFuIHNvdWwgYXJlIG1vc3QgZW5lcmdldGljYWxseSBvcHtbJiomXX1lcmFudCB3aGVuIHRoZXkgZmluZCANCmZvb3Rpbmcgb24gdGhpcyBsYWRkZXIsIHdoaWNoIGhhcyBpdHMgYmFzZSB1cG9uIHRoZSBje1smKiZdfW9tLSANCm1vbiBncm91bmQuIA0KDQpDYW4gd2UgZGlzY292ZXIgYW55IHNpbmdsZSBleHByZXNzaW9uIHdoaWNoIHdpbGwgcmUtIA17WyYqJl19CnN1bWUgdGhlIHZhcmlvdXMgaHVtb3JvdXMgYXBwZWFyYW5jZXMgb2YgbGlmZSBhcyB0aGV5IA0KcHJlc2VudGVkIHRoZW1zZWx2ZXtbJiomXX1zIHRvIFNoYWtzcGVyZSA/IEl0IHdvdWxkIGJlIGhhemFyZC0gDQpvdXMgdG8gYWRvcHQgYW55IHN1Y2ggZXhwcmVzc2lvbiBhbmQge1smKiZdfW1ha2Ugb2YgaXQgYSB0aGVvcnkgDQpvZiBTaGFrc3BlcmlhbiBodW1vciwgd2l0aCB3aGljaCBmYWN0cyBtdXN0IGJlIGNvbS0gDQp7WyYqJl19cGVsbGVkIHRvIHNxdWFyZS4gWWV0LCBieSBjb250cmFzdGluZyB0aGUgdHJhZ2ljIHdpdGggdGhlIA0KY29taWMgZGV2ZWxvcG1lbntbJiomXX10cyBvZiBodW1hbiBjaGFyYWN0ZXIgaW4gdGhlIGRyYW1hIG9mIA0KU2hha3NwZXJlLCBpdCBpcyBwb3NzaWJsZSB0byBkaXNjb3Zle1smKiZdfXIgYXQgbGVhc3Qgb25lIG1haW4gZmVhdC0gDQp1cmUgb2YgdGhlIGNvbWljIGFzIGl0IHdhcyBjb25jZWl2ZWQgYnkgdGhlIHBvZXR7WyYqJl19LF4gRXYtIA0KDQooR290aGUpIDsgd2VubiBtYW4gbmljaHQgUm90aCBtaXQgR3JpaW4gYWJ3ZWNoc2VsbiBsYXNzdCwgc28gd2lyZHtbJiomXX0genVsZXR6dCANCmRhcyBSb3RoIHNlbGJlciBHcmlpbi4gU28gd2lyZCBkYXMgVHJhZ2lzY2hlIGtvbWlzY2gsIGRhcyBLb21pc2Noe1smKiZdfWUgbGFuZy0gDQp3ZWlsaWcuIEluIGRlciBCZWltaXNjaHVuZyB2b24gSHVtb3IgbGllZ3QgZWluZSBBcnQgSW5vY3VsYXRpb24gZGV7WyYqJl19ciBrby0gDQptaXNjaGVuIEt1aHBvY2tlbiwgZGFtaXQgbmljaHQgZGllIE1lbnNjaGVucG9ja2VuLCBkLiBpLiwgZGVyIFVtc2NobHtbJiomXX1hZyANCmluXCdzIExhY2hlcmxpY2hlIGVpbnRyZXRlLiBEYW5uIHZvbGxlbmRldCBzaWNoIGR1cmNoIGRpZSBIaW56dXRoYXQgZGVzIHtbJiomXX1Lby0gDQptaXNjaGVuIHp1bSBUcmFnaXNjaGVuIGVyc3QgZGllIFdlbHRnYW56aGVpdCwgZGllIEdhbnpoZWl0IGRlcyBMZWJlbnMue1smKiZdfSANClNvIGhhYmVuIFNoYWtlc3BlYXJlXCdzIEZpZ3VyZW4gaWhyIGNoYXJha3RlcmlzdGlzY2hlcyBQYXRob3MgbmljaHQgaW1tZXIge1smKiZdfQ0Kd2llIGVpbiBLbGVpZCBhbSBMZWliZSwgc2llIGhhYmVuIG5vY2ggYW5kZXJlIGxlaWNodGVyZSBDaGFyYWt0ZXJ6aWlnZSwgZGl7WyYqJl19ZSANCmluIG1pdHRsZXJlbiBadXN0YW5kZW4gamVuZSBzbyBsYW5nZSBlcnNldHplbiwgYmlzIHNpZSB3aWVkZXIgZWludHJldGVuLHtbJiomXX0gdW5kIA0KYmVzb25kZXJzIGluIGRpZXNlbSBXZWNoc2VsIGxpZWd0IGVpbmUgd3VuZGVyYmFyZSBXaXJrbGljaGtlaXQgaWhyZXMge1smKiZdfUxlLSANCmJlbnMgdW5kIGRlcyBnYW56ZW4gU3RpaWNrZXMuIERpZSB2ZXJ0cmF1aGNoc3RlIFNwcmFjaGUgZ2V3b2hubGljaGVyIA17WyYqJl19Clp1c3RhbmRlIHVuZCBkZXIga2lpaG5zdGUgU2Nod3VuZyBkZXMgUGF0aG9zIGluIGRlbiBhdXNzZXJvcmRlbnRsaWNoc3RlbiANCntbJiomXX1TaXR1YXRpb25lbiA7IGRhendpc2NoZW4gZWluZSBVbmVuZGxpY2hrZWl0IHZvbiBNaXR0ZWx0aW50ZW4uXCcqIOKAlCBPdHRvIEx1ZHtbJiomXX0tIA0KV0lHLCBTaGFrZXNwZWFyZSogU3R1ZGllbl4gcHAuIFwnNywgOC4gDQoNCiogU2VlIEdlcnZpbnVzIG9uIHRoZSBkaWZmZXJlbntbJiomXX10IGJyYW5jaGVzIG9mIHRoZSBkcmFtYSwgKiogU2hha2VzcGVhcmUgDQpDb21tZW50YXJpZXNcIiAoZWQuIDE4NjMpLCB2b2wuIGlpLntbJiomXX0sIHBwLiA1OVktNjEyLiANCg0KVGhlIEh1bW9yIG9mIFNoYWtzcGVyZS4gDQoNCmVyeSBlbWJvZGltZW50IG9mIHRob3VnaHQsIG9me1smKiZdfSBwYXNzaW9uLCBvciBvZiB3aWxsIHdoaWNoIA0KcGFzc2VzIGNvbnNpZGVyYWJseSBiZXlvbmQgdGhlIG5vcm1hbCBzdGFuZGFyZCB7WyYqJl19aXMgdHJhZ2ljLCANCm9yIGNvbnRhaW5zIHdpdGhpbiBpdCBwb3RlbnRpYWwgZWxlbWVudHMgb2YgdHJhZ2VkeS4gQV5eIA0KZW1ib3tbJiomXX1kaW1lbnRzIG9mIHRob3VnaHQsIHBhc3Npb24sIGFuZCB2b2xpdGlvbiB3aGljaCBmYWxsIA0KY29uc2lkZXJhYmx5IGJlbG93IHRoe1smKiZdfWUgbm9ybWFsIHN0YW5kYXJkIGFyZSBjb21pYywgb3IgY29uLSANCnRhaW4gcG9zc2libGUgY29taWMgZWxlbWVudHMuIEVvbWVvIGl7WyYqJl19cyBhIHRyYWdpYyBwZXJzb24tIA0KYWdlLCBiZWNhdXNlIGluIGhpbSB0aGUgcGFzc2lvbiBvZiBsb3ZlIGhhcyBncm93biBzdS0gDXtbJiomXX0KcHJlbWVseSBncmVhdCwgYW5kIHVuZGVyIGl0cyBpbmZsdWVuY2UgaGlzIGV4dGVybmFsLCBtYS0gDQp0ZXJpYWwgbGlmZSwgdGhle1smKiZdfSBsaWZlIG9mIGxpbWl0YXRpb24sIGlzIHdyZWNrZWQgYW5kIHJ1aW5lZC4gDQpIYW1sZXQgaXMgYSB0cmFnaWMgcGVyc29uYWdlLCB7WyYqJl19YmVjYXVzZSBpbiBoaW0gdGhvdWdodCBoYXMgDQpkZXZlbG9wZWQgaXRzZWxmIGluIGEgd2F5IGFuZCBkZWdyZWUgd2hpY2ggaXMgd3tbJiomXX1pdGhvdXQgDQpzdWl0YWJpbGl0eSBvciBwcm9wb3J0aW9uIHRvIHRoaXMgZmluaXRlIGxpZmUuIFJpY2hhcmQgSUlJLiANCmlzIHRye1smKiZdfWFnaWMsIGJlY2F1c2UgaGlzIHdpbGwgaXMgdW5zYXRpc2ZpZWQgYnkgZXZlci1yZW5ld2VkIA0KdmljdG9yeSwgYW5kIHN0aWxsIG57WyYqJl19ZWVkcyB0byB3cmVhayBpdHNlbGYgYWJzb2x1dGVseSB1cG9uIA0KdGhlIHdvcmxkLiBCdXQgU2xlbmRlciBpcyBjb21pYywgd2hvc3tbJiomXX1lIGxvdmUgb2Ygc3dlZXQgDQpBbm5lIFBhZ2UgaXMgc28gZmFpbnQgYSB2ZWxsZWl0eSB0aGF0IGhlIGlzIGNvbXBlbGxlZCB0byANe1smKiZdfQpib3Jyb3cgYWxsIHRoZSBzdWdnZXN0aW9ucyBvZiBoaXMgcGFzc2lvbiBmcm9tIGhpcyB1bmNsZSA6IA0KDQpcIiBTaG90LCBNaXN0e1smKiZdfXJlc3MgQW5uZSwgbXkgY291c2luIGxvdmVzIHlvdS4gDQoNClNpbSwgQXksIHRoYXQgSSBkbyA7IGFzIHdlbGwgYXMgSSBsb3ZlIGF7WyYqJl19bnkgd29tYW4gaW4gR2xvdWNlc3RlcnNoaXJlLiANCg0KU2hvdCwgSGUgd2lsbCBtYWludGFpbiB5b3UgbGlrZSBhIGdlbnRsZXdvbXtbJiomXX1hbi4gDQoNCjhsZW4sIEF5LCB0aGF0IEkgd2lsbCwgY29tZSBjdXQgYW5kIGxvbmctdGFpbCwgdW5kZXIgdGhlIGRlZ3JlZSBvZiBhe1smKiZdfSBzcXVpcmUuIA0KDQpTaG90LiBIZSB3aWxsIG1ha2UgeW91IGEgaHVuZHJlZCBhbmQgZmlmdHkgcG91bmRzIGpvaW50dXJlLiANCg17WyYqJl19CkFubmUsIEdvb2QgTWFzdGVyIFNoYWxsb3csIGxldCBoaW0gd29vIGZvciBoaW1zZWxmLlwiIA0KDQpTbGVuZGVyLCB0b28gZXZpZGV7WyYqJl19bnRseSwgaXMgbm90IGEgUm9tZW8gOyBhbmQgd2hlbiBoZSBpcyANCnB1dCBpbiB0aGUgZW1iYXJyYXNzaW5nIHBvc2l0aW9uIG9mIHtbJiomXX1iZWluZyBhbGxvd2VkIHRvIHdvbyANCmZvciBoaW1zZWxmLCB0aGUgZGlhbG9ndWUgcHJvY2VlZHMgOiANCg0KKlwnXkFubmUuIE5vd3tbJiomXX0sIE1hc3RlciBTbGVuZGVyIOKAlCANCg0KU2xlbiwgTm93LCBnb29kIE1pc3RyZXNzIEFubmUg4oCUIA0KDQpBbm5lLCBXaGF0IGlze1smKiZdfSB5b3VyIHdpbGw/IA0KDQpTbGVuLiBbQnJpZ2h0ZW5pbmcgdXAgdW5kZXIgdGhlIGluc3BpcmF0aW9uIG9mIGEgaGFwcHkgdGhvdWd7WyYqJl19aHReIE15IHdpbGwhIA0KXCdvZHMgaGVhcnRsaW5ncywgdGhhdFwncyBhIHByZXR0eSBqZXN0IGluZGVlZCAhIEkgbmVcJ2VyIG1hZGUgbXtbJiomXX15IHdpbGwgeWV0LCBJIA0KdGhhbmsgaGVhdmVuIDsgSSBhbSBub3Qgc3VjaCBhIHNpY2tseSBjcmVhdHVyZSwgSSBnaXZlIGhlYXZle1smKiZdfW4gcHJhaXNlLiANCg0KQW5uZS4gSSBtZWFuLCBNYXN0ZXIgU2xlbmRlciwgd2hhdCB3b3VsZCB5b3Ugd2l0aCBtZSA/IA0KDQpTbGV7WyYqJl19bi4gVHJ1bHksIGZvciBtaW5lIG93biBwYXJ0LCBJIHdvdWxkIGxpdHRsZSBvciBub3RoaW5nIHdpdGggeW91IDsgeW91ciANCmZhdHtbJiomXX1oZXIgYW5kIG15IHVuY2xlIGhhdmUgbWFkZSBtb3Rpb25zIDsgaWYgaXQgYmUgbXkgbHVjaywgc28gOyBpZiBub3QsIGhhcHB5IA0Ke1smKiZdfW1hbiBiZSBoaXMgZG9sZSAhIFRoZXkgY2FuIHRlbGwgeW91IGhvdyB0aGluZ3MgZ28gYmV0dGVyIHRoYW4gSSBjYW4gOyB5b3UgDQp7WyYqJl19bWF5IGFzayB5b3VyIGZhdGhlci5cIiANCg0KMyAxIDIgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0LiANCg0KU2xlbmRlclwne1smKiZdfXMgbWVlayByZXNpZ25hdGlvbiB0byBhIHN1Y2Nlc3NmdWwgaXNzdWUgb2YgaGkmYW1wOyANCndvb2luZywgXCIgSWYgaXQgYmUgbXkge1smKiZdfWx1Y2ssIHNvLFwiIGJyb3VnaHQgZG91YnRsZXNzIGFuIGFyY2ggDQpzbWlsZSwgcXVpY2tseSBzbW9vdGhlZCBhd2F5LCB0byB0aGUge1smKiZdfWxpcHMgYW5kIGFuIGFtdXNlZCANCnR3aW5rbGUgdG8gdGhlIGV5ZXMgb2Ygc3dlZXQgQW5uZSBQYWdlLiBUaGUgcGFpbmZ1bCANCm97WyYqJl19YmxpZ2F0aW9uIG9mIG1ha2luZyBsb3ZlLCB3aGljaCBoZSBtYWtlcyB3aXRoIGFsbCBoaXMgDQpoZWFydCwgYW5kIHdpdGggaGlzIHtbJiomXX1sYXJnZXN0IG9hdGhzIChcIiBcJ29kcyBoZWFydGxpbmdzICFcIikgaXMgDQpzdWJtaXR0ZWQgdG8gYnkgU2xlbmRlciB3aXRoIHRoZSBze1smKiZdfWFtZSBnb29kIGdyYWNlIHdpdGggDQp3aGljaCBGYWxzdGFmZlwncyByYWdnZWQgY29uc2NyaXB0cyBhY2NlcHQgdGhlIG5lY2Vzc2l0e1smKiZdfXkgb2YgDQpmaWdodGluZy4gU2xlbmRlciwgdW5kZXIgdGhlIGNvbmR1Y3Qgb2YgbG92ZSwgYWR2YW5jZXMgDQp0byBjb25xdWVzdCB7WyYqJl19d2l0aCBhIGxpa2UgZ2FsbGFudHJ5IHRvIHRoYXQgZXhoaWJpdGVkIGJ5IA0KTW91bGR5LCBTaGFkb3csIGFuZCBGZWVibGUsIHdoZXtbJiomXX1uIG1hcnNoYWxsZWQgZm9yIHdhciANCnVuZGVyIHRoZSBiYW5uZXIgb2YgcGF0cmlvdGlzbSBhbmQgaG9ub3IuIFNpciBBbmRyZXcge1smKiZdfQ0KQWd1ZWNoZWVrIGlzIGEgY29tbW9uIHBlcnNvbmFnZSwgd2hvc2UgYmVpbmcsIGFzIGl0IA0KdHJlbWJsZXMgdXBvbiB0aGUgYm97WyYqJl19cmRlciBvZiBub24tZXhpc3RlbmNlLCBpcyBrZXB0IGZyb20gDQpxdWl0ZSB2YW5pc2hpbmcgYXdheSBieSB0aGUgZmFpbnQgcmVmbHtbJiomXX1lY3Rpb25zIGl0IGNhdGNoZXMgDQpvZiBTaXIgVG9ieVwncyBib2lzdGVyb3VzIHZpdGFsaXR5LiBUaHJvdWdoIGhpcyBzb2Z0IHZlaXtbJiomXX1sIA0Kb2Ygc2lsbGluZXNzIGFuZCBpbWJlY2lsaXR5IChQcm92aWRlbmNlIHRlbXBlcmluZyB0aGUgDQp3aW5kIHRvIHRoZSBzaG9ye1smKiZdfW4gbGFtYikgZ2xpbW1lcnMgZm9yIGEgbW9tZW50IHRoZSANCmZhaW50IHN1c3BpY2lvbiB0aGF0IC5oZSBpcyBhbiBhc3MgOyBidXR7WyYqJl19IGFueSB3YW50IG9mIGJyaWxsLSANCmlhbmN5IG9uIFNpciBBbmRyZXdcJ3MgcGFydCBpcyB0byBiZSBzZXQgZG93biB0byBhY2NpZGV7WyYqJl19bi0gDQp0YWwsIGFuZCBub3QgaW5oZXJlbnQsIGNhdXNlczogXCJNZXRoaW5rcyBzb21ldGltZXMgSSANCmhhdmUgbm8gbW9yZSB3aXR7WyYqJl19IHRoYW4gYSBDaHJpc3RpYW4gb3IgYW4gb3JkaW5hcnkgbWFuIA0KaGFzOyBidXQgSSBhbSBhIGdyZWF0IGVhdGVyIG9mIGJlZWYsIHtbJiomXX1hbmQgSSBiZWxpZXZlIHRoYXQgDQpkb2VzIGhhcm0gdG8gbXkgd2l0LlwiIEFuZCBEb2diZXJyeSBpcyBjb21pYyB3aXRoIA0KaGlzIHtbJiomXX1sYWJvcmlvdXMgaW5lZmxCY2llbmN5LCBkZWxpdmVyaW5nIHRvIHRoZSBXYXRjaCBtb3N0IA0KcGFpbmZ1bCBpbnN0cnVjdGlvbnMge1smKiZdfWhvdyB0byBkbyBub3RoaW5nOiANCg0KXl5Cb2cuIFlvdSBzaGFsbCBjb21wcmVoZW5kIGFsbCB2YWdyb20gbWVuIDsgeW91IGFyZSB7WyYqJl19dG8gYmlkIGFueSBtYW4gDQpzdGFuZCBpbiB0aGUgUHJpbmNlXCdzIG5hbWUuIA0KDQpTZWNvbmQgV2F0Y2guIEhvdyBpZiBhXCcgd2lse1smKiZdfWwgbm90IHN0YW5kID8gDQoNCkJvZy4gV2h5LCB0aGVuLCB0YWtlIG5vIG5vdGUgb2YgaGltLCBidXQgbGV0IGhpbSBnbywgYW5kIHB7WyYqJl19cmVzZW50bHkgY2FsbCANCnRoZSByZXN0IG9mIHRoZSB3YXRjaCwgYW5kIHRoYW5rIEdvZCB5b3UgYXJlIHJpZCBvZiBhIGtuYXZlLntbJiomXX1cIiANCg0KLkFsaWtlIGluIHRoZSB0cmFnaWMgYW5kIGluIHRoZSBjb21pYyB0aGVyZSBpcyBhbiBpbmNvbi0gDQpncnVpdHkgdG8gYntbJiomXX1lIGZvdW5kLiBUaGUgdHJhZ2ljIGluY29uZ3J1aXR5IGFyaXNlcyBmcm9tIA0KdGhlIGRpc3Byb3BvcnRpb24gYmV0d2VlbiB0aGUge1smKiZdfXdvcmxkIGFuZCB0aGUgc291bCBvZiBtYW4gOyANCmxpZmUgaXMgdG9vIHNtYWxsIHRvIHNhdGlzZnkgdGhlIHNvdWw7IHRoZSBkZXN7WyYqJl19aXJlcyBvZiBtYW4gDQoNClRoZSBIdW1vciBvZiBTaGFrc3BlcmUuIDMxMyANCg0KYXJlIGluZmluaXRlLCBhbmQgYWxsIHBvc3NpYntbJiomXX1sZSBhdHRhaW5tZW50IGV4aXN0cyB1bmRlciANCnN0cmljdGVzdCBsaW1pdGF0aW9uLiBUaGUgY29taWMgaW5jb25ncnVpdHkgaXMge1smKiZdfXRoZSByZS0gDQp2ZXJzZSBvZiB0aGlzLiBJdCBhcmlzZXMgZnJvbSB0aGUgZGlzcHJvcG9ydGlvbiBiZXR3ZWVuIA0KaWplcnRhaW57WyYqJl19IHNvdWxzIG9mIG1lbiBhbmQgZXZlbiB0aGlzIHZlcnkgb3JkaW5hcnkgd29ybGQgDQpvZiBvdXJzLiBXaGVuIGEgbWFuXCdzIHdpdHN7WyYqJl19IGFyZSBzbyB1bmpvaW50ZWQgYW5kIHNvIGlsbC0gDQp0cmFpbmVkIHRoYXQsIGlmIHB1dCBpbnRvIG1vdGlvbiwgdGhleSBmb3J0aHtbJiomXX13aXRoIGdldCBhdCANCmNyb3NzIHB1cnBvc2VzIHdpdGggdGhlbXNlbHZlcywgd2hpbGUgdGhlIGhhcHB5IGltYmVjaWxlIA0KcmVte1smKiZdfWFpbnMgc3VwcmVtZWx5IHVuY29uc2Npb3VzIG9mIGhpcyBpbmNhcGFjaXR5LCB3ZSBhcmUgaW4gDQpwcmVzZW5jZSBvZiBhbiBleGF7WyYqJl19bXBsZSBvZiB0aGUgY29taWMgaW5jb25ncnVpdHkuIEhhbS0gDQpsZXQgYnJvb2Rpbmcgd2lzdGZ1bGx5IHVwb24gdGhlIHVua25vd3tbJiomXX1uLCB1bnRpbCB0aGUgbWluZFwncyANCmV5ZSBpcyBiYWlmbGVkIGJ5IHRoZSBkYXJrbmVzcyDigJQgdGhhdCBpcyBhbiBleGFtcGxlIHtbJiomXX1vZiANCmdyYW5kIGluY29uZ3J1aXR5LCBlc3NlbnRpYWxseSB0cmFnaWMuIEVvbWVvIHdvdWxkIGxvdmUgDQppbmZpbml0ZWx5LCBhe1smKiZdfW5kIGJlIGxvdmVkIDsgYW5kIHRoZXJlIGxpZXMgaGlzIGJvZHkgbW90aW9uLSANCmxlc3MgYW5kIHNlbnNlbGVzcyBpbiB0aGUgdG97WyYqJl19bWIgb2YgdGhlIENhcHVsZXRzLiBDb3JkZWxpYSANCnNwZW5kcyBhbGwgaGVyIHdlYWx0aCBvZiBwaWV0eSB0byByZWRlZW0gaGVyIHtbJiomXX1mYXRoZXIgZnJvbSANCmluaHVtYW5pdHkgYW5kIHNvbGl0dWRlIDsgYW5kIExlYXIgaGFuZ3Mgb3ZlciBoZXIgYm9keSANCmNvbWZve1smKiZdfXJ0bGVzcyBhbmQgZGVzcGVyYXRlLiBXZSBjYW4gZW5kdXJlIHRoZXNlIHNpZ2h0cyANCmJlY2F1c2Ugd2Uga25vdyB0aGF0IHRoZXJ7WyYqJl19ZSBpcyBubyBhYnNvbHV0ZSBmYWlsdXJlIGZvciB0aGUgDQpsb3ZlIGFuZCBkZXZvdGlvbiB3aGljaCBuZWNlc3NhcmlseSBzY29ybntbJiomXX0gYWxsIHN1Y2ggY29uc2UtIA0KcXVlbmNlcyBhcyB0aGVzZSwgYW5kIHdoaWNoIGRvIG5vdCBvd2UgYWxsZWdpYW5jZSB0byBhYy0ge1smKiZdfQ0KY2lkZW50IG9yIHRpbWUgb3IgcGxhY2UuIE5ldmVydGhlbGVzcywgdGhlcmUgcmVtYWlucyBhIA0KdGVycmlibGUgdHJhZ2ljIGl7WyYqJl19bmNvbmdydWl0eS4gSGFtbGV0XCdzIGJhZmZsZWQgbW92ZW1lbnQsIA0KaGlzIGJlYXRpbmcgdG8gYW5kIGZybyBpbiBhIHZhc3QgYW57WyYqJl19ZCBvYnNjdXJlIHdvcmxkIHdoaWNoIA0KaGUgY2Fubm90IGNvbXByZWhlbmQsIGhhcyBpbiBpdCBzb21ldGhpbmcgcGF0aGV0aWMgYXtbJiomXX1uZCANCnNvbWV0aGluZyBzdWJsaW1lLiBQb2xvbml1cywgd2l0aCBoaXMgbWFzdGVyeSBvZiBjb3VydCANCm1hbm5lcnMgYW5kIHNle1smKiZdfWNyZXRzIGFuZCBwb2xpY3ksIHdpdGggaGlzIGFzc3VtZWQgb20tIA0KbmlzY2llbmNlIGFuZCByZWFsIGluZXB0aXR1ZGUsIGV4Y2l7WyYqJl19dGVzIGEgc21pbGUgd2hpY2ggY2FyLSANCnJpZXMgd2l0aCBpdCBzb21ldGhpbmcgb2YgY29udGVtcHQuIEhpcyBrbm93bGVkZ2Ugb3tbJiomXX1mIA0KdGhlIHdvcmxkIGZhbGxzIHNvIGx1ZGljcm91c2x5IHNob3J0IG9mIHdoYXQgdHJ1ZSBrbm93bC0gDQplZGdlIGlzLiBJZiBwe1smKiZdfWVyc29uYWwgbnVsbGl0eSBiZSBkcmVzc2VkIHVwIGluIGZvcm1hbCBkaWctIA0Kbml0eSBhbmQgdGhlIHByZXRlbnNpb24gb2Ygb2Z7WyYqJl19ZmljZSwgaXQgYmVjb21lcyBtb3JlIGNvbi0gDQpzcGljdW91cy4gSWYsIHdoZXJlIGluY2FwYWNpdHkgYmUgYWxsIGJ1dCBhYnNvbHtbJiomXX11dGUsIHRoZXJlIA0KeWV0IGFyZSBkaXNjb3ZlcmVkIGRlZ3JlZXMgb2YgaW5jYXBhY2l0eSBncmVhdGVyIGFuZCBsZXNzLCANCndle1smKiZdfSBkaWxhdGUgaW4gcHJlc2VuY2Ugb2YgdGhlIGluZmluaXRlbHkgbGl0dGxlLCBhbmQgZXhwZWN0IA0KaW5leGhhdXN0aWJseSB2YXJ7WyYqJl19aWVkIGFuZCBldmVyLWRpbWluaXNoaW5nIHF1YW50dW1zIG9mIA0KDQozIDEgNCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcntbJiomXX10IA0KDQpzZW5zZSBvbiB0aGlzIHNpZGUgb2YgaWRpb2N5LlwiXiBEb2diZXJyeSwgdGhlIGNpdHkgb2ZmaWNlciwgDQppcyBub3QgYXtbJiomXX0gdmVyeSBjb21wZXRlbnQgcGVyc29uLCBidXQgaGUgaXMgaW4gYSBwb3NpdGlvbiB0byANCmFwb2xvZ2l6ZSBmb3IgdGhlIGZlZWJse1smKiZdfWVyIGludGVsbGVjdCBvZiBWZXJnZXMsIHdob20gaGUgDQpwYXRyb25pemVzLCBhcyBhIGNvbmRlc2NlbmRpbmcgc3VwZXJpb3IgcGV7WyYqJl19cnNvbiBzaG91bGQuIA0KXCIgR29vZG1hbiBWZXJnZXMsIHNpciwgc3BlYWtzIGEgbGl0dGxlIG9mZiB0aGUgbWF0dGVyIDsgYW4gDQp7WyYqJl19b2xkIG1hbiwgc2lyLCBhbmQgaGlzIHdpdHMgYXJlIG5vdCBzbyBibHVudCBhcywgR29kIGhlbHAsIEkgDQp3b3VsZCBkZXNpcmUgdHtbJiomXX1oZXkgd2VyZSA7IGJ1dCBpbiBmYWl0aCwgaG9uZXN0IGFzIHRoZSBza2luIA0KYmV0d2VlbiBoaXMgYnJvd3MuXCIgDQoNClBlcnNvbntbJiomXX1zIHdobyBhcmUgY3VyaW91cyBhYm91dCBwb3NzZXNzaW5nIHRoZSBtb3N0IA0KZGVsaWNhdGUgc2VudGltZW50cyBtaWdodCBtYWlue1smKiZdfXRhaW4gdGhhdCBpbmNhcGFjaXR5IG9mIA0KaGVhcnQsIG9yIHdpbGwsIG9yIHVuZGVyc3RhbmRpbmcgaXMgdGhlIGFwcHJvcHJpYXR7WyYqJl19ZSBvYmplY3QgDQpvZiBzeW1wYXRoeSBhbmQgcGl0eSByYXRoZXIgdGhhbiBvZiBtaXJ0aC4gVGhlcmUgaXMsIGluLSANCmRlZWQsIHtbJiomXX1hbiBpbmNhcGFjaXR5IHdoaWNoIGlzIHBhdGhldGljIOKAlCB0aGF0IHdoaWNoIGJlaW5nIA0KY29uc2Npb3VzIG9mIGl0c2VsZiwge1smKiZdfXllYXJucyBmb3IgYSBoaWdoZXIgY29tcHJlaGVuc2lvbiBvZiANCnRoaW5ncywgZm9yIGEgbW9yZSB1bmRlcnN0YW5kaW5nIGhlYXJ7WyYqJl19dCwgYXMgYSBkb2cgZHVtYmx5IA0KeWVhcm5zIGZvciBtb3JlIGZ1bGwgaW50ZWxsaWdlbmNlIG9mIGhpcyBtYXN0ZXJcJ3Mgd2lzaGV7WyYqJl19cyANCmFuZCB0aG91Z2h0cy4gQnV0IHRoZSBraW5kbHkgbGF1Z2ggb2YgU2hha3NwZXJlIGF0IA0Kc2VsZi1jb21wbGFjZW50IGZxVXtbJiomXX1qXiBhbmQgaW5lcHRpdHVkZSBpcyBhIG11Y2ggbW9yZSBzaW4tIA0KY2VyZSBhbmQgd2hvbGVzb21lIG1hbmlmZXN0YXRpb24gb2Yge1smKiZdfWZlZWxpbmcgdGhhbiB0aGUgDQpyZWZpbmVtZW50cyBvZiBzeW1wYXRoeSBkZWFydG8gdGhlIGhlYXJ0IG9mIHRoZSBwYXRob3MtIA17WyYqJl19CnRub25nZW4gSXQgaXMgZGVlcGx5IGxhbmllbnRhYmxlLCBubyBkb3VidCwgdGhhdCBzb21lIA0KXCJvZiBvdXIgbmVpZ2hib3JzIGF7WyYqJl19cmUgbm90IHF1YWxpZmllZCB0byBzdGFuZCBhcyBtb2RlbHMgZm9yIA0KYW4gQXBvbGxvIEJlbHZlZGVyZSBvciBhIFZlbnVzIG9mIHtbJiomXX1NZWxvcy4gU3RpbGwsIHRvIHdlZXAgDQpiZWNhdXNlIG1pZGRsZS1hZ2VkIGdlbnRsZW1lbiBkaXNwbGF5IGF0IHRpbWVzIGFuIHVue1smKiZdfS0gDQpncmFjZWZ1bCByb3R1bmRpdHkgb2YgcGVyc29uLCBvciBiZWNhdXNlIGV2ZXJ5IG5vc2UgaXMgDQpub3Qgc3RyYWlnaHQsIHd7WyYqJl19b3VsZCBoYXJkbHkgaW1wcm92ZSB0aGUgY29uZGl0aW9uIG9mIHRoZSANCndvcmxkLiBUaGVzZSBmYWN0cyBhcmUgcmVjb2duaXplZHtbJiomXX0gYW5kIGFsbG93ZWQgZm9yIG1vc3QgDQp3aG9sZXNvbWVseSBieSBhbiBob25lc3QgbGF1Z2ggbGlrZSB0aGF0IG9mIENydWlrc2hhe1smKiZdfW5rIA0Kb3Igb2YgTGVlY2guIEl0IGlzIHdlbGwgdG8gc21pbGUgYXQgdGhlc2UgZ3JvdGVzcXVlIGRlLSANCnBhcnR1cmVzIGZyb217WyYqJl19IHRoZSBpZGVhbCwgYW5kIHJlc2VydmUgb3VyIHRlYXJzIGZvciBoaWdoZXIgDQp1c2VzLiBUaGUgZ2VuaWFsIGxhdWdodGVyIG9mIHtbJiomXX1TaGFrc3BlcmUgYXQgaHVtYW4gYWItIA0Kc3VyZGl0eSBpcyBmcmVlIGZyb20gZXZlbiB0aGF0IGFtaWFibGUgY3luaWNpc20sIHdoe1smKiZdfWljaCANCg0KKiBTZWUgSGF6bGl0dCBvbiBTaGFsbG93IGFuZCBTaWxlbmNlLCBcIiBFbmdsaXNoIENvbWljIFdyaXRlcnMsXCIgbGVjdHtbJiomXX11cmUgaWkuLCANCnBwLiA0MSwgNDIgKGVkLiAxODY5KS4gDQoNClRoZSBIdW1vciBvZiBTaGFrc3BlcmUuIDMxNSANCg0KXml2ZXMge1smKiZdfXRvIHRoZSBodW1vciBvZiBKYW5lIEF1c3RlbiBhIGNlcnRhaW4gcGlxdWFudCANCmZsYXZvci4gSXQgaXMgbGlrZSB0aGUgcGxheSB7WyYqJl19b2Ygc3VtbWVyIGxpZ2h0bmluZywgd2hpY2ggDQpodXJ0cyBubyBsaXZpbmcgY3JlYXR1cmUsIGJ1dCBzdXJwcmlzZXMsIGlsbHVtaXtbJiomXX1uYXRlcywgYW5kIA0KY2hhcm1zLiANCg0KVG8ga2VlcCB1cyBjb25zdGFudGx5IHNlbnNpYmxlIG9mIHRoZSBncm90ZXNxdWUgd2hpe1smKiZdfWNoIA0Kc3Vycm91bmRzIHVzIGlzLCBpbmRlZWQsIHRvIHJlbmRlciB1cyBhIHNlcnZpY2Ugb2Ygbm8gc2xpZ2h0IA0KaW1wb3J0YW57WyYqJl19Y2UgOyBmb3Igd2UgYXJlIHRvbyByZWFkeSB0byBhY2NlcHQgaW1wZXJmZWN0aW9uLCANCmFuZCByYXBpZGx5IHRvIGZvcmdldCBpdHtbJiomXX0gd2hlbiBvbmNlIGFjY2VwdGVkLiBXaXRoIG1vc3QgDQpvZiB1cywgc28gaGFiaXR1YXRlZCBoYXMgdGhlIGV5ZSBiZWNvbWUgdG8ge1smKiZdfXRoZSB2aXNpYmxlIA0KZ3JvdGVzcXVlIGluIGh1bWFuIGZhY2UgYW5kIGZvcm0sIGNvc3R1bWUgYW5kIGdlc3R1cmUsIA0KdGhhdCB7WyYqJl19d2UgYXJlIHVuYWJsZSBhdCBmaXJzdCB0byByZWNvZ25pemUgdGhlIHByb2ZvdW5kIA0KZmlkZWxpdHkgb2Ygc3VjaCBtYXR0ZXItb3tbJiomXX1mLWZhY3QgcGljdHVyZXMgYXMgdGhvc2Ugb2YgSG8tIA0KZ2FydGgsIG9yIHRoZSBpZGVhbCB0cnV0aCB3aGljaCBleGlzdHMgYXMge1smKiZdfWxpdmluZyBjZW50cmUgDQpvZiB0aGUgaW5leGhhdXN0aWJsZSwgZmFudGFzdGljIGludmVudGlvbnMgb2YgQ3J1aWtzaGFuay4gDQp7WyYqJl19V2UgbmVlZCB0byBoYXZlIG91ciBzZW5zZSBvZiBzZWVpbmcgcmVuZXdlZCBhbmQgcmVuLSANCmRlcmVkIGZyZXNoIGFuZCBjaGlsZHtbJiomXX1saWtlIGJlZm9yZSB3ZSBjYW4gcGVyY2VpdmUgaW4gZXZlcnkgDQpzdHJlZXQgdGhyb3VnaCB3aGljaCB3ZSB3YWxrIHRoZSB0eXBle1smKiZdfXMgb2Ygb3VyIENydWlrLSANCnNoYW5rIGFuZCBvdXIgSG9nYXJ0aC4gQW5kIGFyb3VuZCB0aGUgbGlmZSBvZiBlYWNoIG9mIA0KdXN7WyYqJl19IHRoZXJlIGlzIGZvcmV2ZXIgZ2F0aGVyaW5nIGFuIGFjY3JldGlvbiBvZiB0aGUgZ3JvdGVzcXVlIA0KaW4gaGFiaXQgYW5kIGNoYXtbJiomXX1yYWN0ZXIgdG8gd2hpY2ggd2UgcXVpY2tseSBiZWNvbWUgaW4tIA0Kc2Vuc2libGUuIFRvIGRlbGl2ZXIgdGhlIGlkZWFsIG1hbiBme1smKiZdfXJvbSB0aGlzIHJlcXVpcmVzIA0KY29uc3RhbnQgZnJlc2huZXNzIG9mIHBlcmNlcHRpb24gYW5kIHZpZ2lsYW5jZSBvZiB3aWxsLiB7WyYqJl19DQpTaGFrc3BlcmUgZG9lcyBub3Qgc2VlbSB0byBmZWVsIHRoYXQgRG9nYmVycnkgYW5kIFZlcmdlcyANCmFyZSBjcmVhdHVyZXMgb3tbJiomXX1mIGFub3RoZXIgYnJlZWQgZnJvbSBoaW1zZWxmLiBIZSBzdGFuZHMsIA0KaXQgaXMgdHJ1ZSwgYXQgdGhlIG9wcG9zaXRlIHBvbGUge1smKiZdfW9mIGh1bWFuaXR5IDsgbmV2ZXJ0aGVsZXNzLCANCmEgcG90ZW50aWFsIERvZ2JlcnJ5IGVsZW1lbnQgZXhpc3RlZCBldmVuIGluIFN7WyYqJl19aGFrc3BlcmUuIA0KXCIgQ29tbW9uIHBlb3BsZSxcIiBhcyBNci4gQmFnZWhvdCBoYXMgaGFwcGlseSBzYWlkLCANClwiIGNvdWxkIGJlIHtbJiomXX1jdXQgb3V0IG9mIFNoYWtzcGVyZSA7XCIganVzdCBhcyB0aGUgcm9idXN0IGFuZCANCnByb3NhaWMgc3RhdGVzbWFuIG9mIFdlc3Rtb3tbJiomXX1yZWxhbmQgY291bGQgaGF2ZSBiZWVuIGN1dCANCm91dCBvZiB0aGUgZ3JlYXQgc3Bpcml0dWFsIHRoaW5rZXIgYW5kIHBvZXQgb2Yge1smKiZdfXRoZSBMYWtlIA0KZGlzdHJpY3QuIFRoZXJlZm9yZSwgYXBhcnQgZnJvbSB0aGUgaW50ZXJlc3Qgb2Ygc3ltcGF0aHksIA0Kd2UgaGF7WyYqJl19dmUgYSBwZXJzb25hbCBpbnRlcmVzdCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBjb20tIA0KbW9uIGZlYXR1cmVzIG9mIHRoZSBtb3N0IHtbJiomXX1vcmRpbmFyeSBsaXZlcy4gT3VyIG93biBsaWZlIA0KaXMgYWtpbiB0byB0aGVtLCBhbmQgbWF5IHJlYWRpbHkgbGFwc2UgaW50byBhe1smKiZdfSByZXNlbWJsYW5jZSANCmN1cmlvdXNseSBleGFjdC4gQnV0IGFzIGxvbmcgYXMgd2UgY2FuIGlzbWlsZSBhdCB0aGVtIA0KDQozIDF7WyYqJl19IDYgU2hha3NwZXJlIOKAlCBIaXMgTWluZCBhbmQgQXJ0IA0KDQp3ZSBhcmUgc2FmZSA7IG91ciBzZW5zZSBvZiBodW1vciBpcyBzZXtbJiomXX1ydmFudCBvZiBvdXIgcGFzKiANCmZpaW9uIGZvciBwZXJmZWN0aW9uLiBXZSBoYXZlIG5vIG5lZWQgdG8gZ3JvdyBpbXBhdGllbnQge1smKiZdfQ0Kb3IgaW5kaWduYW50IHdpdGggdGhlc2UgZ3JvdGVzcXVlIHBvcnRpb25zIG9mIGh1bWFuaXR5IDsgDQp0aGF0IHdvdWxkIHVubmV7WyYqJl19Y2Vzc2FyaWx5IGRpc3R1cmIgdGhlIGJhbGFuY2Ugb2Ygb3VyIGxpdmVzIA0KYW5kIHRoZSBwdXJpdHkgb2Ygb3VyIHBlcmNlcHRpb3tbJiomXX1ucyA6IHdlIG9ubHkgbmVlZCB0byB1bi0gDQpkZXJzdGFuZCB0aGVtIGFuZCB0byBzbWlsZS4gDQoNCl4gXCcgVGhlIGh1bW9yIG9mIHtbJiomXX1TaGFrc3BlcmUsIGhvd2V2ZXIsIGlzIG11Y2ggbW9yZSB0aGFuIA0KYSBsYXVnaHRlci1wcm9kdWNpbmcgcG93ZXIuIEl0IGlzIGEge1smKiZdfXByZXNlbmNlIGFuZCBwZXJ2YWQtIA0KaW5nIGluZmx1ZW5jZSB0aHJvdWdob3V0IGhpcyBtb3N0IGVhcm5lc3QgY3JlYXRpb25zLiB7WyYqJl19VGhpcyANCml0IGlzIHdoaWNoIHByZXNlcnZlcyBTaGFrc3BlcmUgZnJvbSBhbGwgZWFnZXIgYW5kIHNocmlsbCANCmludGVuc2l0eXtbJiomXX0gOyB0aGlzIGl0IGlzIHdoaWNoIG1ha2VzIGhpcyBlbW90aW9ucyB2b2x1bWktIA0Kbm91cyBhbmQgbWFzc2l2ZS4gQW5kIG9mIHRoe1smKiZdfWlzIGh1bW9yIHRoZXJlIGFyZSB0d28gDQpwcmluY2lwYWwgc3RhZ2VzIG9yIGRlZ3JlZXMuIEZpcnN0IOKAlCBnaXZlbiBhIHBlcnN7WyYqJl19b24gb3IgYW4gDQpldmVudCwgYSBwYXNzaW9uIG9yIGEgdGhvdWdodCwgU2hha3NwZXJlIGV4YW1pbmVzIGl0IG9uIA0KZXZlcnkgc3tbJiomXX1pZGUsIGNvbXBhcmVzIGl0IHdpdGggYWxsIG90aGVyIG9iamVjdHMgd2l0aCB3aGljaCANCml0IG1heSBuYXR1cmFsbHkgYmUgY29ue1smKiZdfW5lY3RlZCBvciBtYXkgaGFwcGVuIHRvIGJlIGFzc28tIA0KY2lhdGVkIDsgcHV0cyBpdCBpbiBpdHMgZW52aXJvbm1lbnQsIHNlZXN7WyYqJl19IHRoZSBmaW5lIGFuZCB0aGUgDQpjb2Fyc2UsIHRoZSBwb2V0aWMgYW5kIHRoZSBwcm9zYWljLCBhbmQgdGh1cyBhY3F1aXJlcyBhIHtbJiomXX0NCnJpY2ggYW5kIHByZWduYW50IGZlZWxpbmcgZm9yIGl0LiBTbyBhYnVuZGFudCBhbmQgdmEtIA0KcmllZCBpcyB0aGUgYm9keSBve1smKiZdfWYgZmFjdCB3aGljaCBoZSBpcyBwb3NzZXNzZWQgb2YgdGhhdCBvbmUgDQpwb3J0aW9uLCBhcyBpdCB3ZXJlLCBiYWxhbmNlcyB0aGV7WyYqJl19IG90aGVyLCBhbmQgaGUgaXMgc2F2ZWQgDQpmcm9tIGFsbCB0aGUgdmlvbGVuY2UgYW5kIGV4dHJhdmFnYW5jZSB0aGF0IG9yaWdpbntbJiomXX1hdGUgaW4gDQp0aGUgcGFydGlhbCB2aWV3cyBvZiB0aGUgaWRlYWxpc3QuIE9waGVsaWFcJ3MgZGVhdGggaXMgcGEtIA0KdGhldGljIHtbJiomXX07IGJ1dCB0aGUgcGF0aG9zIG9mIFNoYWtzcGVyZSBpcyBub3QgdGhlIHByZXR0eSBwYS0gDQp0aG9zIG9mIEJlYXVtb250IGFuZCBGe1smKiZdfWxldGNoZXIgOyBhIHNvZnQsIGEgc3dlZXQgYW5kIHRlbi0gDQpkZXIgc29ycm93IDsgYSBnZW50bGUgaW52ZXN0aXR1cmUgb2YgbWV7WyYqJl19bGFuY2hvbHkuIFNoYWstIA0Kc3BlcmUgc2VlcyB0aGUgZmFjdCBmcm9tIHRoZSBRdWVlblwncyBwb2ludCBvZiB2aWV3LCBhbmQgDQp7WyYqJl19ZnJvbSBIYW1sZXRcJ3M7IGZyb20gdGhlIHByaWVzdFwncyBhbmQgZnJvbSB0aGUgZ3JhdmUtIA0KZGlnZ2VyXCdzIHBvaW50cyBvZiB2aXtbJiomXX1ldy4gVGhhdCBpcyB0byBzYXksIGhlIHNlZXMgdGhlIGZhY3QgDQppbiB0aGUgcm91bmQgOyBhbmQgdGhlIHBhdGhvcyBvZiBPcGhle1smKiZdfWxpYVwncyBkZWF0aCBpcyBpbiB0aGUgDQpkcmFtYSBhcyByZWFsIGFzIGl0IHdvdWxkIGJlIGlmIHRoZSBvY2N1cnJlbmNlIGJlY2Fte1smKiZdfWUgDQphY3R1YWwuIFRoaXMgaXMgdGhlIG1hbm5lciBpbiB3aGljaCB0aGUgaHVtb3Igb2YgU2hhay0gDQotc3BlcmUgd29ya3MgaW57WyYqJl19IHRoZSBmaXJzdCBzdGFnZSBvciBkZWdyZWUuIA0KDQpCdXQsIHNlY29uZGx5LCB3aGVuIGFsbCByZWFsaXRpZXMgb2YgdGhpcyB3b3tbJiomXX1ybGQgYW5kIG9mIA0KdGltZSBoYXZlIGJlZW4gcmVwcmVzZW50ZWQgYXMgZmFyIGFzIHRoZXkgY2FuIGJlIGluIHRoZWlyIA0KDQpUe1smKiZdfWhlIEh1bW9yIG9mIFNoYWtzcGVyZS4gMzE3IA0KDQp0b3RhbGl0eSwgU2hha3NwZXJlIG1lYXN1cmVzIHRoZXNlIGJ5IGFic29sdXR7WyYqJl19ZSBzdGFuZGFyZHMqIA0KSGUgbGF5cyB0aGUgbWVhc3VyaW5nLXJlZWQgb2YgdGhlIGluZmluaXRlIGJ5IHRoZSBzaWRlIG9mIA0Kd3tbJiomXX1oYXQgaXMgZmluaXRlLCBhamlkIGhlIHBlcmNlaXZlcyBob3cgbGl0dGxlLCBob3cgaW1wZXJmZWN0LCANCnRoZSBmaW5pdGUgaXMue1smKiZdfSBeXm5kIGhlIHNtaWxlcyBhdCBodW1hbiBncmVhdG5lc3MsIHdoaWxlIA0KeWV0IGhlIHBheXMgbG95YWwgaG9tYWdlIHRvIHdoYXR7WyYqJl19IGlzIGdyZWF0aiBoZSBzbWlsZXMgYXQgDQpodW1hbiBsb3ZlIGFuZCBodW1hbiBqb3ksIHdoaWxlIHlldCB0RWV5IGFyZSBkZWVwbHtbJiomXX15IA0KcmVhbCB0byBoaW0gKG1vcmUgcmVhbCB0byBoaW0gdGhhbiB0aGV5IGNvdWxkIHBvc3NpYmx5IA0KYmUgdG8gYW4gZWFnZXIge1smKiZdfWludGVuc2UgU2hlbGxleSk7IGl0IGlzIFByb3NwZXJvdXMgc21pbGUgDQp1cG9uIHNlZWluZyB0aGUgbmV3IGhhcHBpbmVzcyBvZiB7WyYqJl19dGhlIHlvdXRoZnVsIGxvdmVycyA6IA0KDQpcIiBTbyBnbGFkIG9mIHRoaXMgYXMgdGhleSBJIGNhbm5vdCBiZSwgDQpXaG8gYXJlIHN7WyYqJl19dXJwcmlzZWQgd2l0aCBhbGwgOyBidXQgbXkgcmVqb2ljaW5nIA0KQXQgbm90aGluZyBjYW4gYmUgbW9yZS5cIiANCg0KQW5kIGhlIHN7WyYqJl19bWlsZXMgYXQgaHVtYW4gc29ycm93LCB3aGlsZSBoZSBlbnRlcnMgaW50byB0aGUgDQpkZWVwIGFuZ3Vpc2ggb2YgdGhlIHNvdWwgO3tbJiomXX0gaGUga25vd3MgdGhhdCBmb3IgaXQsIHRvbywgdGhlcmUgDQppcyBhbiBlbmQgYW5kIGEgcXVpZXR1cy4gVGhlIGdyZWF0ZXN0IHBve1smKiZdfWV0aWMgc2VlcnMgYXJlIA0Kbm90IGFuZ3J5IG9yIGVhZ2VyIG9yIGhvcnRhdG9yeSBvciBvYmp1Z2F0b3J5IG9yIHNocmlsbC4gDQp7WyYqJl19SG9tZXIgYW5kIFNoYWtzcGVyZSBhcmUgXCIgdG9vIGdyZWF0IGZvciBjb250ZXN0IDsgLiAuIC4gDQptZW4gdG8gd2hvc2UgdW5vZmZ7WyYqJl19ZW5kZWQsIHVuY29uZGVtbmluZyBzaWdodCB0aGUgd2hvbGUgDQpvZiBodW1hbiBuYXR1cmUgcmV2ZWFscyBpdHNlbGYgaW4gYSBwYXtbJiomXX10aGV0aWMgd2Vha25lc3MgDQp3aXRoIHdoaWNoIHRoZXkgd2lsbCBub3Qgc3RyaXZlLCBvciBpbiBtb3VybmZ1bCBhbmQgdHJhbi0ge1smKiZdfQ0Kc2l0b3J5IHN0cmVuZ3RoIHdoaWNoIHRoZXkgZGFyZSBub3QgcHJhaXNlLlwnXCcgXiBTaGFrc3BlcmUgDQpzZWVzIHdpdGggcHVyZ3tbJiomXX1lZCBleWVzIDsgYW5kIGhlIGxvdmVzIGFuZCBwaXRpZXMgbWVuLiBCdXQgDQp3aGlsZSB0aGlzIHZpZXcgb2YgdGhpbmdzIGZyb20ge1smKiZdfWFuIGV4dHJhLW11bmRhbmUgcG9pbnQgDQpvZiB2aXNpb24gaXMgdG8gYmUgdGFrZW4gYWNjb3VudCBvZiBpbiBhbnkgc3R1ZHkgb2Z7WyYqJl19IFNoYWstIA0Kc3BlcmVcJ3MgbWluZCBhbmQgYXJ0LCBpdCBtdXN0IGJlIGluc2lzdGVkIHVwb24gdGhhdCB0aGUgDQpmYWN0cyBhcmV7WyYqJl19IGF0IHRoZSBzYW1lIHRpbWUgdGhvcm91Z2hseSBhcHByZWhlbmRlZCwgc3R1ZC0gDQppZWQsIGFuZCBmZWx0IGZyb20gdGhlIHZhcntbJiomXX1pb3VzIHBvaW50cyB3aGljaCBhcmUgc3RyaWN0bHkgDQpmaW5pdGUgYW5kIG11bmRhbmUuIA0KDQpCdXQgaXQgaXMgbm90IGFsb25le1smKiZdfSBTaGFrZXBlcmVcJ3MgaHVtb3IsIGFuZCB0aGUgbGF1Z2gtIA0KdGVyIG9mIFNoYWtzcGVyZSwgd2hpY2ggYXJlIHNpZ25pZmljYW50e1smKiZdfS4gVGhlcmUgaXMgc29tZS0gDQp0aGluZyBhbHNvIHRvIGJlIGRpc2NvdmVyZWQgZnJvbSB0aGUgaGlzdG9yeSBvZiBoaXMgbGF1Z2h7WyYqJl19LSANCnRlci4gRXZlcnkgbWFuIG11c3QgYmUgYXdhcmUgdGhhdCBpbiBoaXMgb3duIGNhc2UgaGlzIA0KDQoqIFwiQWZ0ZXJub29uIEx7WyYqJl19ZWN0dXJlcyxcIiAxODY5IChcIlRoZSBNeXN0ZXJ5IG9mIExpZmUgYW5kIGl0cyBBcnRzXCIpLGJeIA0KSm9obiBSYXNraW4sIHAuIDEwOXtbJiomXX0uIA0KDQooIA0KDQopIA0KDQozIDEgOCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQuIA0KDQpsYXVnaHRlciBoYXMgaGFke1smKiZdfSBhIGhpc3RvcnksIGFuZCB0aGF0IGlmIHRoZSBoaXN0b3J5IHdlcmUgDQpmYWl0aGZ1bGx5IG1hZGUgb3V0LCBhIGdvb2QgZGVhbCB7WyYqJl19d291bGQgbmVjZXNzYXJpbHkgYmUgYXMqIA0KY2VydGFpbmVkIHJlc3BlY3RpbmcgdGhlIGRldmVsb3BtZW50IG9mIGhpcyB3aG9sZXtbJiomXX0gbW9yYWwgDQpuYXR1cmUuIE5vdywgd2UgaGF2ZSBkb2N1bWVudHMgd2hpY2ggY29udGFpbiB0aGUgaGlzLSANCnRvcnkgb2YgU2hhe1smKiZdfWtzcGVyZVwncyBsYXVnaHRlciBkdXJpbmcgYSBwZXJpb2Qgb2YgdXB3YXJkcyANCm9mIHR3ZW50eSB5ZWFycy4gU3VyZWx5IGZyb20ge1smKiZdfXRoZXNlIHNvbWV0aGluZyBhYm91dCB0aGUgDQpncm93dGggb2YgaGlzIGludGVsbGVjdCBhbmQgY2hhcmFjdGVyIG11c3QgYmUgYXN7WyYqJl19Y2VydGFpbi0gDQphYmxlLiANCg0KSW4gU2hha3NwZXJlXCdzIGxpZmUgYXMgYXJ0aXN0IHdlIG1heSBkaXN0aW5ndWlzaCBmb3VyIHB7WyYqJl19ZS0gDQpyaW9kcy4gRmlyc3Qgb2YgdGhlc2UgaXMgdGhlIHRlbnRhdGl2ZSBwZXJpb2QsIHRoZSB5ZWFycyBvZiANCmV4cGVyaW1lbntbJiomXX10cy4gVGhlIGRyYW1hdGlzdCBoYXMgbm90IGFzIHlldCBnb3QgYSBzdXJlIA0KYW5kIGZpcm0gZ3Jhc3AgdXBvbiBsaWZlLiBIZSBpe1smKiZdfXMgc29tZXdoYXQgZGVmaWNpZW50IGluIA0KdGhlIG1hdGVyaWFsIG9mIGRlZXAgdGhvdWdodCBhbmQgb2YgZGVlcCBlbW90aW9uLiB7WyYqJl19Qm90aCANCm9mIHRoZXNlIG9yaWdpbmF0ZSB0aHJvdWdoIGEgdml0YWwgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSANCnNvdWwgYW5kIHtbJiomXX10aGUgZ3JhdmVyIHJlYWxpdGllcyBvZiBsaWZlLCBhbmQgc3VjaCBhIGNvbm5lYy0gDQp0aW9uIGlzIGFzIHlldCBvbmx5IGVzdGFie1smKiZdfWxpc2hpbmcgaXRzZWxmIGZvciBTaGFrc3BlcmUuIEEgDQptYW4gd2hvIGlzIG5vdCBhcyB5ZXQgdW5kZXIgdGhlIGNvbnRyb2xsaW57WyYqJl19ZyBpbmZsdWVuY2Ugb2YgDQphbnkgb2YgdGhlIGdyYXZlciByZWFsaXRpZXMgb2YgaHVtYW4gbGlmZSwgYW5kIHdobyBhdCB0aGUgDXtbJiomXX0Kc2FtZSB0aW1lIHBvc3Nlc3NlcyBleHRyYW9yZGluYXJ5IG1lbnRhbCBnaWZ0cywgd2lsbCB0YWtlIA0KcGxlYXN1cmUgaW4gdGhle1smKiZdfSBtZXJlIHBsYXkgb2YgaGlzIHdpdHMsIGFwYXJ0IGZyb20gdGhlIHNwZS0gDQpjaWFsIG9jY2FzaW9uIG9yIG9iamVjdCB3aGljaCB7WyYqJl19c2V0cyBoaXMgd2l0cyB0byB3b3JrLiBJZiANCmhlIGhhdmUgaGlnaCBzcGlyaXRzLCBoZSB3aWxsIGVuam95IGZ1biBwdXJlIGFuZHtbJiomXX0gc2ltcGxlLCANCmNvbWljYWwgc3VycHJpc2VzLCBhbmQgZ3JvdGVzcXVlIGluY2lkZW50cy4gSWYgaGUgaGF2ZSANCmEgdHVybiBme1smKiZdfW9yIHNhdGlyZSwgdGhlIG9iamVjdHMgb2YgaGlzIGdheSwgc2F0aXJpY2FsIGF0dGFjayANCndpbGwgYmUgc3VwZXJmaWNpYWwgb2R7WyYqJl19ZGl0aWVzLCBmb2xsaWVzLCBhbmQgYWZmZWN0YXRpb25zIG9mIHRoZSANCndvcmxkLiBJdCBpcyBkdXJpbmcgdGhpcyBwZXJpb2Qgb3tbJiomXX1mIGNsZXZlciBcIiB5b3VuZ21hbi0gDQppc2huZXNzXCIgKE1yLiBGdXJuaXZhbGxcJ3MgZGVzY3JpcHRpdmUgd29yZCkgdGhhdCBTaGFre1smKiZdfS0gDQpzcG9yZVwncyBsYXVnaHRlciBmaXJzdCBiZWNvbWVzIGF1ZGlibGUgdG8gdXMuIFRoZSBUd28gDQpHZW50bGVtZW4gb2YgVmVye1smKiZdfW9uYV4gTG92ZXJzIExhYm9yIF5zIFpvc3QsIGFuZCBUaGUgQ29tZS0gDQpkeSBvZiBFcnJvcnMgc3VmaWljaWVudGx5IHJlcHJlc2V7WyYqJl19bnQgdGhpcyBzdGFnZSBpbiB0aGUgaGlzdG9yeSANCm9mIHRoZSBncm93dGggb2YgU2hha3NwZXJlXCdzIG1pbmQuIEluIExvdmVycyB7WyYqJl19TGFib3IgXCc1IA0KTG9zdF4gYXMgd2FzIGF0dGVtcHRlZCB0byBiZSBzaG93biBpbiBhIGZvcm1lciBjaGFwdGVyLCANCnRoZXJlIGl7WyYqJl19cyBhIHNlcmlvdXMgdW5kZXJseWluZyBpbnRlbnRpb24uIEl0IGNvbmNlcm5zIGl0LSANCnNlbGYsIGFzIHRoZSB3b3JrIG9mIGEgeXtbJiomXX1vdW5nIG1hbiBuYXR1cmFsbHkgbWF5LCB3aXRoIHRoZSANCnN1YmplY3Qgb2Ygc2VsZi1jdWx0dXJlLCBhbmQgaXQgZ2F5bHkgbWFpe1smKiZdfW50YWlucyB0aGUgdGhlc2lzIA0KDQpUaGUgSHVtb3Igb2YgU2hha3NwZXJlLiAzMTkgDQoNCnRoYXQgaW4gb3VyIHNjaGVtZXMgb2Z7WyYqJl19IHNlbGYtaW1wcm92ZW1lbnQgdGhlIGZpcnN0IHJlcXVpc2l0ZSANCmlzIHRoaXMg4oCUIHRoYXQgd2UgdGFrZSBhY2NvdW50IG9mIHtbJiomXX1hbGwgdGhlIGZhY3RzIG9mIGh1bWFuIA0KbmF0dXJlLCBpbmNsdWRpbmcgaXRzIGFwcGV0aXRlcywgaW5zdGluY3RzLCBhbmQgcGFze1smKiZdfXNpb25zLCANCmFuZCB0aGF0IGFueSBhdHRlbXB0IHRvIGlkZWFsaXplIHRoZXNlIGF3YXkgd2lsbCBzdXJlbHkgDQplbmQgaW4gZmF7WyYqJl19aWx1cmUgYW5kIGVncmVnaW91cyBmb2xseS4gU3VjaCBpcyB0aGUgdW5kZXItIA0KbHlpbmcgc2VyaW91cyBpbnRlbnRpb24gb2YgdHtbJiomXX1oZSBwbGF5LiBCdXQsIGJ5IHRoZSB3YXksIHRoZSANCnBvZXQgdGFrZXMgYW4gb3Bwb3J0dW5pdHkgdG8gaGF2ZSBoaXMgbGF1Z2gge1smKiZdfWFuZCBza2l0IGF0IA0KdGhlIGZhc2hpb25hYmxlIGFmZmVjdGF0aW9ucyBvZiB0aGUgdGltZS4gDQoNCk5lYXJseSBhdCB0aGlzIHN7WyYqJl19YW1lIHBlcmlvZCwgU3BlbnNlciwgaW4gXCIgVGhlIFRlYXJzIG9mIA0KdGhlIE11c2VzLFwiIHdhcyBsYW1lbnRpbmcgdGhlIGNvbmRpe1smKiZdfXRpb24gb2YgdGhlIEVuZ2xpc2ggDQpjb21pYyBkcmFtYS4gVGhlIHN0YWdlIGhhZCBiZWVuIG1hZGUgdGhlIG1lYW5zIG9mIA0KY3J7WyYqJl19dWVsIHBlcnNvbmFsIGFuZCBwYXJ0eSBzYXRpcmUgOyBcIiBzZWFzb25lZCB3aXQgXCIgYW5kIA0KXCJnb29kbHkgcGxlYXN1cmVcIiBoYWR7WyYqJl19IGRpc2FwcGVhcmVkIGZyb20gY29tZWR5OyBpbiANCnBsYWNlIG9mIHRoZXNlLCBcIiBzY29mZmluZyBzY3VycmlsaXR5XCIgYW5kIFwic3tbJiomXX1jb3JuZnVsIGZvbGx5XCdcJyANCmhhZCBwb3NzZXNzZWQgdGhlIHN0YWdlLCANCg0KXCIgUm9sbGluZyBpbiByaHltZXMgb2Ygc2hhbWVse1smKiZdfWVzcyByaWJhbGRyeV4gDQpXaXRob3V0IHJlZ2FyZCBvZiBkdWUgZGVjb3J1bSBrZXB0LlwiIA0KDQpXaGV0aGVyIFNwZW5zZXJcJ3Mgd3tbJiomXX1vcmRzIGluIHRoaXMgcGFzc2FnZSwgXCIgT3VyIHBsZWFzLSANCmFudCBXaWxseSwgYWggISBpcyBkZWFkIG9mIGxhdGUsXCIgcmVmZXJ7WyYqJl19IHRvIHNvbWUgdGVtcG9yYXJ5IA0Kc2lsZW5jZSBvZiBTaGFrc3BlcmUsIG9yIGhhdmUgbm8gc3VjaCByZWZlcmVuY2UsIGl0IGlzIHtbJiomXX1hdCANCmxlYXN0IHdvcnRoeSBvZiBub3RlIHRoYXQgU2hha3NwZXJlIGFic3RhaW5lZCBhbHRvZ2V0aGVyIA0KZnJvbSB0aGlzIGFie1smKiZdfXVzaW5nIG9mIHRoZSBzdGFnZSB0byB1bndvcnRoeSBwdXJwb3NlcywgDQphbmQgZm91bmQgdGhlIG9iamVjdHMgb2YgaGlzIG1pcnR7WyYqJl19aCBpbiBmYXNoaW9ucyBhbmQgZm9sbGllcyANCm9mIHRoZSB0aW1lLCBub3QgaW4gdGhlIG1pc2ZvcnR1bmVzIG9yIHdlYWtuZXNzZXtbJiomXX1zIG9mIGluLSANCmRpdmlkdWFscy5eIFNoYWtzcGVyZSB3YXMgcHJvYmFibHkgbm90IHdpdGhvdXQgZW5lbWllcy4gDQpIZSB3YXMge1smKiZdfXN1Y2Nlc3NmdWwsIGFuZCB0aGF0IHNlY3VyZWQgZm9yIGhpbSB0aGUgaGF0cmVkIA0Kb2YgbWVuIHdobyBmYWlsZWQuIEdyZWVuZSx7WyYqJl19IHVwb24gaGlzIGRlYXRoLWJlZCwgYXNzYWlsZWQgDQpoaW0gd2l0aCBiaXR0ZXIgYW5kIGluc29sZW50IHdvcmRzLCBhbmQgd3JvdHtbJiomXX1lIGFzIGlmIGhpcyANCmZlZWxpbmcgd291bGQgbmF0dXJhbGx5IGJlIHNoYXJlZCBieSBQZWVsZSwgYnkgTG9kZ2Ugb3IgDQpOYXNoe1smKiZdfSwgYW5kIGJ5IE1hcmxvd2UuIFlldCB3ZSBkbyBub3QgYW55d2hlcmUgZmluZCANCnRoZSBuYW1lIG9mIFNoYWtzcGVyZSwgYXMgd2V7WyYqJl19IGZpbmQgdGhlIG5hbWVzIG9mIEpvbnNvbiANCg0KKiBUaGUgaWRlbnRpdHkgb2YgSG9sb2Zlcm5lcyB3aXRoIEZsb3JpYyBvZiBkaXtbJiomXX1jdGlvbmFyeS1tYWtpbmcgY2VsZWJyaXR5IA0KbXVzdCBiZSBzdXBwb3J0ZWQgYnkgYmV0dGVyIGV2aWRlbmNlIGJlZm9yZSB3ZSBye1smKiZdfWVnYXJkIGl0IGFzIG90aGVyIHRoYW4gYWEgDQppbmdlbmlvdXMgY29uamVjdHVyZS4gDQoNCjMyMCBTaGFrc3BlcmUg4oCUIEhpcyB7WyYqJl19TWluZCBhbmQgQXJ0LiANCg0KYW5kIERla2tlciwgYW5kIG90aGVyIGNvbnRlbXBvcmFyeSBkcmFtYXRpc3RzLCBvY2N1cHktIA0KaXtbJiomXX1uZyBhIHBsYWNlIGluIHRoZSByZWNvcmQgb2YgdGhlIHF1YXJyZWxzIG9mIGF1dGhvcnMuIFRoZSANCmxpZ2h0IGFuZCBhaXJ5IHNhe1smKiZdfXRpcmUgb2YgTG92ZVwncyBMYWJvciBcJzUgTG9zdF4gd2l0aCBpdHMgZ3JhdmUsIA0KdW5kZXJseWluZyBpbnRlbnRpb24sIGlzIHRodXtbJiomXX1zIGNoYXJhY3RlcmlzdGljIG9mIHRoZSB5b3V0aC0gDQpmdWwgU2hha3NwZXJlLCBib3RoIGluIGEgcG9zaXRpdmUgd2F5LCBhbmQge1smKiZdfWFsc28gbmVnYXRpdmUtIA0KbHksIGJlY2F1c2UgaXQgY29udGFpbnMgbm8gcGFydGljbGUgb2YgdGhlIHNjdXJyaWxpdHkgYW5kIA17WyYqJl19CnJpYmFsZHJ5IG9mIHdoaWNoIFNwZW5zZXIgbWFkZSBjb21wbGFpbnQuIFRoZSBwbGVhcy0gDQp1cmUgd2hpY2ggU2hha3NwZXJlIHtbJiomXX1kZXJpdmVzIGZyb20gdGhlIHF1aWNrIGVuY291bnRlciANCm9mIHdpdHMsIGZyb20gdGhlIGJhbmR5aW5nIG9mIGEgamVzdCB0byBhe1smKiZdfW5kIGZybyBpbiB0aGUgYWlyIA0KdW50aWwgYXQgbGFzdCBpdCBmYWxscywgaW4gZWxhYm9yYXRlIHBsYXkgdXBvbiB3b3JkcyDigJR7WyYqJl19IHRoaXMgDQp3YXMgaW4gcGFydCBhIHBsZWFzdXJlIG9mIHRoZSBwZXJpb2QsIGFuZCBpbiBwYXJ0IGl0IGlzIHNpZy0gDQpuaWZpY3tbJiomXX1hbnQgb2YgdGhlIGZhY3QgdGhhdCBTaGFrc3BlcmUsIGluIGhpcyB5ZWFycyBvZiBjbGV2ZXIgDQpcIiB5b3VuZ21hbmlzaG5lc3MsXCJ7WyYqJl19IGVuam95ZWQgdGhlIG1lcmUgZXhlcmNpc2Ugb2YgYSBuaW0tIA0KYmxlIGJyYWluLiBcIiBOb3csIGJ5IHRoZSBzYWx0IHdhdmUgb2Z7WyYqJl19IHRoZSBNZWRpdGVycmFuZWFuLCANCmEgc3dlZXQgdG91Y2ggOyBhIHF1aWNrIHZlbmV3IG9mIHdpdCA7IHNuaXAgc25hcCwgcXVpY3tbJiomXX1rIA0KYW5kIGhvbWUgOyBpdCByZWpvaWNldGggbXkgaW50ZWxsZWN0LlwiIA0KDQpJbiB0aGlzIHRlbnRhdGl2ZSBwZXJpb2QgdGhlIHtbJiomXX1jb21pYyBhbmQgdGhlIHNlcmlvdXMsIHRlbi0gDQpkZXIgb3Igc2VudGltZW50YWwsIGVsZW1lbnRzIG9mIHRoZSBkcmFtYSBleGlze1smKiZdfXQgc2lkZSBieSANCnNpZGUsIGFuZCBzZXJ2ZSBhcyBhIGtpbmQgb2YgY3JpdGljaXNtIGVhY2ggdXBvbiB0aGUgb3RoLSANCmVyIDt7WyYqJl19IHRoZSBsb3ZlciBzZXJ2ZXMgdG8gY29udmljdCB0aGUgY2xvd24gb2YgaW5zZW5zaWJpbGl0eSANCnRvIHRoZSBoaWdoZXIgZmFjdHtbJiomXX1zIG9mIGxpZmUsIGFuZCB0aGUgY2xvd24gY29udmljdHMgdGhlIA0KbG92ZXIgb2YgdGhlIGJsaW5kbmVzcyBvciBleHRyYXZhZ2Fue1smKiZdfWNlIG9mIHBhc3Npb24uIEJ1dCANCnRob3VnaCB0aGUgY29taWMgYW5kIHRoZSB0ZW5kZXIgb3Igc2VyaW91cyBlbGVtZW50cyBleC17WyYqJl19IA0KaXN0IHNpZGUgYnkgc2lkZSwgYW5kIHJlZmxlY3QgY2VydGFpbiBsaWdodHMgb25lIHVwb24gdGhlIA0Kb3RoZXIsIHRoZXkgZHtbJiomXX1vIG5vdCBhcyB5ZXQgaW50ZXJwZW5ldHJhdGUuIE9uZSBzZXQgb2YgDQpwZXJzb25hZ2VzIGlzIHJlc2VydmVkIGZvciB0aGUgZ3Jhe1smKiZdfXZlIG9yIHRlbmRlciBidXNpbmVzcyANCm9mIHRoZSBkcmFtYSA7IGFuZCBhIGRpZmZlcmVudCBzZXQgb2YgcGVyc29uYWdlcyBpcyB7WyYqJl19dG9sZCANCm9mZiBmb3IgdGhlIGNvbWljIGJ1c2luZXNzLiBJbiBUaGUgVHdvIEdlbnRsZW1lbiBvZiANClZlcm9uYV4gdGhlIGNvbXtbJiomXX1lZHkgaXMgaW50cnVzdGVkIHRvIGEgcGFpciBvZiBjbG93bnMsIA0KU3BlZWQgYW5kIExhdW5jZTogU3BlZWQgaXMgdGhlIHByb2Zle1smKiZdfXNzZWQgd2l0OyBhZnRlciANCnNlcnZpbmcgaGlzIHR1cm4sIGhlIGZpbmFsbHkgZGlzYXBwZWFycyBmcm9tIHRoZSBmdWxseSBkZS17WyYqJl19IA0KdmVsb3BlZCBkcmFtYSBvZiBTaGFrc3BlcmUuIExhdW5jZSwgb24gdGhlIG90aGVyIGhhbmQsIA0KaXMgYSBodW1vcmlzdCwgd3tbJiomXX1obywgbm90IHdpdGhvdXQgYSBzdWZmaWNpZW5jeSBvZiBjbG93bmlzaCANCnNlbnNlLCBibHVuZGVycyBpbnRvIG1pcnRoZnVsIG1he1smKiZdfXR0ZXIgb2YgYSBtb3JlIHZpdGFsLCANCm1vcmUgcHJlZ25hbnQga2luZCB0aGFuIHRoZSBuaW1ibGUgdG9uZ3VlIG9mIFNwZWVkIA17WyYqJl19Cg0KVGhlIEh1bW9yIG9mIFNoYWtzcGVyZS4gMzIxIA0KDQpjYW4gY29tbWFuZC4gTGFubmNlLCBhdHRlbmRlZCBieSBoaXMgZG9nIHtbJiomXX1DcmFiLCBoZWFkcyANCnRoZSBwcm9jZXNzaW9uIG9mIFNoYWtzcGVyZVwncyBodW1vcm91cyBjaGFyYWN0ZXJzIDsgdGhlcmUgDQptYXtbJiomXX1yY2ggYmVoaW5kIGhpbSBhIGxvdWcgdHJhaW4sIGluY2x1ZGluZyBtYW5pZm9sZCB2YS0gDQpyaWV0aWVzIG9mIHRoZSBtaXJ0aCAte1smKiZdfXByb3Zva2luZyB0cmliZSDigJQgZnJvbSB0aGUgbmFpdmUsIA0KY29taWMgVG91Y2hzdG9uZSwgd2l0aCBoaXMgbWluZ2xlZCBpbnN7WyYqJl19dGluY3Qgb2Ygc2Vuc2UgYW5kIA0Kbm9uc2Vuc2UsIHRvIEhvdHNwdXIgYW5kIE1lcmN1dGlvLCBpbiB3aG9tIG92ZXJmbG93LSANCntbJiomXX1pbmcgZW5lcmd5IG9yIGFuIGV4cXVpc2l0ZSB6ZXN0IGluIGxpdmluZyBwcm9kdWNlcyBhIGh1LSANCm1vcm91cyBleHRyYXZhZ2Fue1smKiZdfWNlIDsgYW5kLCBhZ2FpbiwgZnJvbSB0aGVzZSB0byBGYWxzdGFmbGYsIA0KaW4gd2hvbSBodW1vciBoYXMgYWNxdWlyZWQgY2xlYXJ7WyYqJl19IGNvbnNjaW91c25lc3Mgb2YgaXRzZWxmIA0KYW5kIGJlY29tZSBmcmVlIDsgYW5kLCB5ZXQgYWdhaW4sIGZyb20gRmFsc3RhZmYgdHtbJiomXX1vIHRoZSBwYS0gDQp0aGV0aWMsIHRyYWdpY2FsbHkgZWFybmVzdCBmaWd1cmUgb2YgdGhlIEZvb2wgaW4gTGVhcixeIA0KDQpJbiBBe1smKiZdfSBNaWRzdW1tZXItTmlnaFYgcyBEcmVhbV4gU2hha3NwZXJlXCdzIGh1bW9yIA0KaGFzIGVucmljaGVkIGl0c2VsZiBieSBjb2FsZXNje1smKiZdfWluZyB3aXRoIHRoZSBmYW5jeS4gVGhlIA0KY29taWMgaXMgaGVyZSBubyBsb25nZXIgcHVyZWx5IGNvbWljOyBpdCBpcyBhIG1pbmd7WyYqJl19bGVkIA0Kd2ViLCBzaG90IHRocm91Z2ggd2l0aCB0aGUgYmVhdXRpZnVsLiBCb3R0b20gYW5kIFRpdGEtIA0KbmlhIG1lZXQgOyBhbntbJiomXX1kIHRoaXMgbWVldGluZyBvZiBCb3R0b20gYW5kIFRpdGFuaWEgbWF5IA0KYmUgdGFrZW4sIGJ5IGFueSBsb3ZlciBvZiBzeW1ib2xpe1smKiZdfXNtIHRoYXQgcGxlYXNlcywgYXMgYW4gDQp1bmRlc2lnbmVkIHN5bWJvbCBvZiB0aGUgZmFjdCB0aGF0IHRoZSBwb2V0XCdzIGZhY3Vse1smKiZdfXRpZXMsIA0Kd2hpY2ggYXQgZmlyc3QgaGFkIHN0b29kIGFwYXJ0LCBhbmQgd2VyZSBhY2N1c3RvbWVkIHRvIA0KZ28gdG8gd29yayB7WyYqJl19ZWFjaCBmYWN1bHR5IGJ5IGl0c2VsZiwgd2VyZSBub3cgYXBwcm9hY2hpbmcgDQpvbmUgYW5vdGhlci4gQXQgYSBzdWJzZXF1ZW50IHtbJiomXX1wZXJpb2QsIHdoZW4gdGhlIHNob2NrcyANCm9mIGxpZmUgaGFkIHJvdXNlZCB0byBoaWdoZXN0IGVuZXJneSBldmVyeSBuZXJ2ZSwge1smKiZdfWV2ZXJ5IA0KZmlicmUgb2YgdGhlIGdlbml1cyBvZiBTaGFrc3BlcmUsIHRoZSBhY3Rpb25zIG9mIGFsbCBmYWN1bC0gDQp0aWVzIHd7WyYqJl19ZXJlIGZ1c2VkIHRvZ2V0aGVyIGluIG9uZS4gQm90dG9tIGlzIGluY29tcGFyYS0gDQpibHkgYSBmaW5lciBlZmZsb3Jlc2NlbmNlIHtbJiomXX1vZiB0aGUgYWJzdXJkIHRoYW4gYW55IHByZWNlZGluZyANCmNoYXJhY3RlciBvZiBTaGFrc3BlcmVcJ3MgaW52ZW50aW9uLiBIb3cgbHtbJiomXX1lYW4gYW5kIGltLSANCnBvdmVyaXNoZWQgaGlzIGZlbGxvd3MsIHRoZSBBdGhlbmlhbiBjcmFmdHNtZW4sIGNvbmZlc3MgDQp0aGVte1smKiZdfXNlbHZlcyBpbiBwcmVzZW5jZSBvZiB0aGUgbWFueS1zaWRlZCBnZW5pdXMgb2YgTmljayANCkJvdHRvbSAhIFJhcmVseSBpcyBhIGd7WyYqJl19cmVhdCBhcnRpc3QgYXBwcmVjaWF0ZWQgaW4gdGhlIGRlLSANCmdyZWUgdGhhdCBCb3R0b20gaXMg4oCUIFwiSGUgaGF0aCBzaW1wbHl7WyYqJl19IHRoZSBiZXN0IHdpdCBvZiANCmFueSBoYW5kaWNyYWZ0IG1hbiBpbiBBdGhlbnMgOyB5ZWEsIGFuZCB0aGUgYmVzdCBwZXJzb24sIHtbJiomXX0NCg0KKiBTZWUgdGhlIGhpZXJhcmNoeSBvZiBjb21pYyBjaGFyYWN0ZXJzIGFzIG1hZGUgb3V0IGJ5IERyLiBFZHVhcmQgWWVoc2Use1smKiZdfSANCmluIFwiIFNoYWtlc3BlYXJlIGFscyBQcm90ZXN0YW50LCBQb2xpdGlrZXIsIFBzeWNob2xvZyB1bmQgRGljaHRlcixcIiB2b2wsIHtbJiomXX1paV4gDQpwcC4gNSwgNi4gDQoyMSANCg0KayANCg0KMzIyIFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydCANCg0KdG9vIDsge1smKiZdfWFuZCBoZSBpcyBhIHZlcnkgcGFyYW1vdXIgZm9yIGEgc3dlZXQgdm9pY2UuXCIgV2l0aCANCndoYXQgYSBtYWduaWZpY2VudCBtdWx0e1smKiZdfWlwbGljaXR5IG9mIGdpZnRzIGhlIGlzIGVuZG93ZWQgISANCkhvdyB2YXN0IGhhcyB0aGUgYm91bnR5IG9mIG5hdHVyZSBiZWVuIHR7WyYqJl19byBoaW0gISBUaGUgDQpzZWxmLWRvdWJ0ZnVsIFNudWcgaGVzaXRhdGVzIHRvIHVuZGVydGFrZSB0aGUgbW9kZXJhdGUgDQpkdXRpZXtbJiomXX1zIGFzc2lnbmVkIHRvIHRoZSBsaW9uLiBCb3R0b20sIHRob3VnaCBoaXMgY2hpZWYgDQpodW1vciBpcyBmb3IgYSB0eXJhbnQsIGtue1smKiZdfW93cyBub3QgaG93IHRvIHN1cHByZXNzIGhpcyANCmFsbW9zdCBlcXVhbCBnaWZ0IGZvciBwbGF5aW5nIGEgbGFkeS4gSG93LCB3aXR7WyYqJl19aG91dCBhIA0KcGFuZywgY2FuIGhlIGRlcHJpdmUgdGhlIHdvcmxkLCB0aHJvdWdoIGRldm90aW9uIHRvIFwiIHRoZSANCkVyY2xlcyB7WyYqJl19dmVpbixcIiBvZiB0aGUgbW9uc3Ryb3VzIGxpdHRsZSB2b2ljZSBpbiB3aGljaCBoZSBjYW4gDQp1dHRlciBcIlRoaXNuZSwgVGhpc25le1smKiZdfSEg4oCUIEFoLCBQeXJhbXVzLCBteSBsb3ZlciBkZWFyISANCnRoeSBUaGlzYnkgZGVhciBhbmQgbGFkeSBkZWFyIFYgQW5kIGFzIHR7WyYqJl19byB0aGUgcGFydCBhcy0gDQpzaWduZWQgdG8gdGhlIHRvbyBiYXNoZnVsIFNudWcg4oCUIHRoYXQgQm90dG9tIGNhbiB1bmRlci0gDXtbJiomXX0KdGFrZSBpbiBlaXRoZXIgb2YgdHdvIHN0eWxlcywgb3IgaW4gYm90aCwgc28gdGhhdCB0aGUgRHVrZSANCm11c3Qgc2F5LCBcIiBMZXtbJiomXX10IGhpbSByb2FyIGFnYWluLCBsZXQgaGltIHJvYXIgYWdhaW4sXCIgb3IgDQp0aGUgbGFkaWVzIG1heSBiZSBzb290aGVkIGJ5IHRoZXtbJiomXX0gXCJhZ2dyYXZhdGVkIHZvaWNlXCIgaW4gDQp3aGljaCBoZSB3aWxsIFwiIHJvYXIgeW91IGFzIGdlbnRseSBhcyBhbnkgc3Vja2luZyBke1smKiZdfW92ZS5cIiANCkJ1dCBmcm9tIHRoZXNlIGRyZWFtcyBvZiB1bml2ZXJzYWwgYW1iaXRpb24gaGUgaXMgcmUtIA0KY2FsbGVkIGJ5IFF1e1smKiZdfWluY2UgdG8gaGlzIG1vc3QgYXBwcm9wcmlhdGUgaW1wZXJzb25hdGlvbiA6IA0KXCIgWW91IGNhbiBwbGF5IG5vIHBhcnQgYnV0IFB5e1smKiZdfXJhbXVzIDsgZm9yIFB5cmFtdXMgaXMgYSANCnN3ZWV0LWZhY2VkIG1hbiwgYSBwcm9wZXIgbWFuIGFzIG9uZSBzaGFsbCBzZWUgaW57WyYqJl19IGEgc3VtLSANCm1lclwncyBkYXksIGEgbW9zdCBsb3ZlbHksIGdlbnRsZW1hbmxpa2UgbWFuIDsgdGhlcmVmb3JlIA0KeW91IG11c3R7WyYqJl19IG5lZWRzIHBsYXkgUHlyYW11cy5cIiANCg0KRHVyaW5nIHRoZSBzZWNvbmQgcGVyaW9kIG9mIHRoZSBkZXZlbG9wbWVudCBvZiBTaGF7WyYqJl19ay0gDQpzcGVyZVwncyBnZW5pdXMgaGUgd2FzIGdhaW5pbmcgYSBzdXJlIGdyYXNwIG9mIHRoZSBwb3NpdGl2ZSANCmZhY3RzIG9mIGx7WyYqJl19aWZlLiBUaGlzIGlzIHRoZSBwZXJpb2Qgb2YgdGhlIGhpc3Rvcmllcy4gQXQgDQpmaXJzdCwgaW1wcmVzc2VkLCBwZXJoYXBzLCBieXtbJiomXX0gYSBzZW5zZSBvZiB0aGUgZGlnbml0eSBvZiB0aGUgDQpoaXN0b3JpY2FsIGRyYW1hLCBTaGFrc3BlcmUgaGVsZCBoaXMgaHVtb3Ige1smKiZdfWFsb29mLiBJbiANClJpY2hhcmQgSUkuIHRoZXJlIGlzIG5vIGh1bW9yb3VzIHNjZW5lLiBIYWQgU2hhay0gDQpzcGVyZSB3cml0dGV7WyYqJl19biB0aGUgcGxheSBhIGZldyB5ZWFycyBsYXRlciwgd2UgbWF5IGJlIA0KY2VydGFpbiB0aGF0IHRoZSBnYXJkZW5lciBhbmQgc2VydntbJiomXX1hbnRzIChhY3QgaWlpLiwgc2MuIDQpIA0Kd291bGQgbm90IGhhdmUgdXR0ZXJlZCBzdGF0ZWx5IHNwZWVjaGVzIGluIHZlcnNlLCBie1smKiZdfXV0IA0Kd291bGQgaGF2ZSBzcG9rZW4gaG9tZWx5IHByb3NlLCBhbmQgdGhhdCBodW1vciB3b3VsZCANCmhhdmUgbWluZ2xlZCB3aXR7WyYqJl19aCB0aGUgcGF0aG9zIG9mIHRoaXMgc2NlbmUuIFRoZSBzYW1lIA0KcmVtYXJrIG1heSBiZSBtYWRlIHdpdGggcmVmZXJlbmNlIHRvIHtbJiomXX10aGUgc3Vic2VxdWVudCANCkJjZW5lLCBpbiB3aGljaCBoaXMgZ3Jvb20gdmlzaXRzIHRoZSBkZXRocm9uZWQgS2luZyBsYSANCg0Ke1smKiZdfVRoZSBIdW1vciBvZiBTaGFrc3BlcmUuIDMyMyANCg0KdGhlIFRvd2VyLiBCdXQgYXMgeWV0IHRoZSBwYXRoZXRpYywgYWx0aG91Z2h7WyYqJl19IHdpdGggU2hhay0gDQpCcGVyZSBhcHByb3hpbWF0aW5nIHRvIHRoZSBodW1vcm91cywgbG9va2VkIGF0IGl0IHNvbWUtIA0Kd2hhdHtbJiomXX0gYXNrYW5jZSBhbmQgc3VzcGljaW91c2x5LiBJbiBSaWNoYXJkIElJSS4gdGhlcmUgDQppcyBhIGNlcnRhaW4gZ3JpbSBodW1vciDie1smKiZdfYCUIGh1bW9yIG9mIHRoZSAobGlhRW9JaWMga2luZCDigJQg4oCiIA0Kd2hpY2ggaXMgcGFydCBvZiB0aGUgZGVtb25pYyBwZXJzb257WyYqJl19YWxpdHkgb2YgUmljaGFyZCwgYW5kIA0KXCJoYXMgZm9yIGl0cyBjZW50cmFsIGVsZW1lbnQgYSBmaWVyY2UgY29udGVtcHQgb2YgaHV7WyYqJl19bWFuLSANCml0eS4gUmljaGFyZCBrbmVlbHMgYmVmb3JlIEFubmUsIGFuZCBzaGUgb2ZmZXJzIGF0IGhpcyANCmJyZWFzdCB3aXRoIHtbJiomXX10aGUgc3dvcmQ7IGJ1dCB0aGUgc3dvcmQgZmFsbHM7IEFubmUgaXMgDQpvdmVycG93ZXJlZCBieSB0aGUgbWFsaWduIHN0cmVuZ3Roe1smKiZdfSBvZiBSaWNoYXJkXCdzIHZvbGktIA0KdGlvbiwgYW5kIHByZXNlbnRseSBoaXMgcmluZyBpcyBvbiBoZXIgZmluZ2VyLiBUaGUgc2Vue1smKiZdfXNlIA0Kb2YgcG93ZXIsIHdoaWNoIHN0YW5kcyB3aXRoIFJpY2hhcmQgaW4gdGhlIHBsYWNlIG9mIGpveSANCmFuZCBiZWF1dHkgYW57WyYqJl19ZCB2aXJ0dWUsIGlzIGZsYXR0ZXJlZCBieSBoaXMgYWNoaWV2ZW1lbnQgOyANCmhpcyB0cml1bXBoIG92ZXIgQW5uZSBpcyBhbiBpbntbJiomXX1zdWx0IHRvIHdvbWFuaG9vZC4gVGhhdCANClJpY2hhcmQgc2hvdWxkIGJlIHN1cHJlbWUsIHRoZSBvcmRlciBvZiB0aGluZ3MgbXVze1smKiZdfXQgYmUgDQppbnZlcnRlZCwgdGhlIG1vcmFsIGZhY3RzIG9mIHRoZSB3b3JsZCBtdXN0IGJlIHJldmVyc2VkLCANCmFuZCBhIG5ldyB7WyYqJl19ZW1waXJlIG9mIHRoZSBkaWFib2xpYyBhbmQgdGhlIGdyb3Rlc3F1ZSBtdXN0IA0KYmUgYWNjZXB0ZWQgYXMgdGhlIG5vcm1hbCBjb3tbJiomXX1uZGl0aW9uIG9mIHRoaW5ncy4gSXQgaXMgYXMgDQppZiB3ZSBzdG9vZCBiZW5lYXRoIHNvbWUgbW9udW1lbnQgYmVmb3JlIHdoaWNoe1smKiZdfSBtZW4gDQp3ZXJlIGJvd2luZywgYW5kIHdoZW4gd2UgbG9va2VkIHVwIHdlIGJlaGVsZCB0aGUgDQptb2NraW5nIGZpZ3VyZSBvZiB7WyYqJl19dGhlIEZpZW5kIHVwb24gdGhlIHBlZGVzdGFsLiANCg0KRXhjZXB0IGdyaW0gaXJvbnkgb2YgdGhpcyBkZXNjcmlwdGlvbiwgUmljaHtbJiomXX1hcmQgSUlMaiANCmxpa2UgUmljaGFyZCBJTF4gY29udGFpbnMgbm8gY29taWMgZWxlbWVudC4gSW4gdGhlIA0KSmFjayBDYWRlIHNje1smKiZdfWVuZXMgb2YgSGVucnkgVkwgdGhlIHNhdGlyZSBlZmZlY3RpdmUsIGlmIGF0IA0KdGltZXMgcnVkZSwgd2hpY2ggU2hha3NwZXJlIGR7WyYqJl19aXJlY3RzIGFnYWluc3QgdGhlIHdlYWtlciANCnNpZGUgb2YgcG9wdWxhciBwb2xpdGljYWwgbW92ZW1lbnRzLCBhcHBlYXJzIGluIHtbJiomXX1pdHMgZnJhbmstIA0KZXN0IGFuZCBsZWFzdCBzdWJ0bGUgZm9ybS4gQnV0IGl0IGlzIGluIHRoZSBwbGF5IG9mIEtpbmcgDQpKb2hue1smKiZdfSB0aGF0IHRoZSBodW1vcm91cyBlbGVyXkJmdF5ecnN0LS0gYnJlYWtzIGZvcnRoIGVuZWxyLSANCmdldGljYWxseSwgYW5kIGluIHJ7WyYqJl19ZWNrbGVzcyBkZWZpYW5jZSBvZiB0aGUgZGlnbml0eSBvZiBoaXMtIA0KdG9yeV4uIFNvbWV0aGluZyBnZW51aW5lLCBoZWFydHksIHtbJiomXX1zcG9udGFuZW91cywgd2FzIGVzLSANCnBlY2lhbGx5IG5lZWRlZCBpbiB0aGlzIHBsYXkqIEEgc3B1cmlvdXMgYXBwZWFyYW5jZSBve1smKiZdfWYgDQptYWplc3R5LCB3aXRoIGlud2FyZCByb3R0ZW5uZXNzLCB0aGUgc2VsZmlzaCBwb2xpY3kgb2YgDQpraW5ncywgdGhlIGNyYWZ7WyYqJl19dCBvZiBwcmllc3RzLCB0aGUgYmFydGVyIG9mIGhlYXJ0cyBhbmQgb2YgDQpsaXZlcyDigJQgYWxsIHRoZXNlIGFyZSBleHBvc2VkIHtbJiomXX1hbmQgZXhwbGFpbmVkIGJ5IHRoZSBvbmUgDQpob25lc3QgdGhpbmcgaW4gdGhlIHBsYXksIHRoZSBjaGFyYWN0ZXIgb2YgRmF1bGNve1smKiZdfW5icmlkZ2UgOiANCnRoZSBib3VuZGluZyBjb3VyYWdlIGluIGhpcyB2ZWlucywgaGlzIGxveWFsdHkgdG8gdGhhIA0KDQpbLyANCg17WyYqJl19CjMyNCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQgDQoNCm1lbW9yeSBvZiB0aGUgZmF0aGVyIHdobyBoYWQgZ2l2ZW4gaHtbJiomXX1pbSBhIGRpc2hvbm9yYWJsZSANCmJpcnRoIDsgaGlzIGRhdW50bGVzcywgcGF0cmlvdGljIGVudGh1c2lhc20gaW4gcHJlc2VuY2Uge1smKiZdfW9mIA0KaGlzIGNvdW50cnlcJ3MgZGlzYXN0ZXI7IGFuZCwgbm90IGluY29uc2lzdGVudCB3aXRoIHRoaXMsIA0KaGlzIGh1bW9yb3Vze1smKiZdfSBhc3N1bXB0aW9uIG9mIGEgYmFzZW5lc3MgYW5kIHNlbGZpc2huZXNzIA0Kb2Ygd2hpY2ggaGUgd2FzIGluY2FwYWJsZS5cIl4gDQoNe1smKiZdfQpKMzFoXiBfdHdpWDRpYXJ0OC1qOilmIGpmaVRtXl5eIGEgZnVydGhlciANCg0KYWR2YW5jZSBvZiB0aGUgY29taWMgZWxlbWVudCB7WyYqJl19aW4gY29ubmVjdGlvbiB3aXRoIHRoZSANCmhpc3RvcmljYWwgZHJhbWEuIEFscmVhZHkgdGhlIGh1bW9yIG9mIFNoYWtzcGVyZSBoYXtbJiomXX1zIA0KbWFydmVsbG91c2x5IGRlZXBlbmVkIGFuZCBlbnJpY2hlZCBpdHNlbGYgc2luY2UgdGhlIHBlLSANCnJpb2Qgb2YgTG92ZXJze1smKiZdfSBMYWJvciBecyBMb3N0IGFuZCBUaGUgQ29tZWR5IG9mIEVycm9ycy4gDQpTaXIgSm9obiBGYWxzdGFmZiBpcyBhIGNvbmNlcHRpb257WyYqJl19IGhhcmRseSBsZXNzIGNvbXBsZXgsIA0KaGFyZGx5IGxlc3Mgd29uZGVyZnVsLCB0aGFuIHRoYXQgb2YgSGFtbGV0LiBIZSBpcyBmb3tbJiomXX1yLSANCmV2ZXIgY3JlYXRpbmcgYSBmcmVzaCBzZXJpZXMgb2YgaW1wcmVzc2lvbnMsIHdoaWNoIHNlZW1zIA0K4oCiYXQgZmlyc3Qge1smKiZdfWluY29uc2lzdGVudCB3aXRoIHRoZSBwcmVjZWRpbmcgc2VyaWVzLCBhbmQgd2hpY2ggDQp5ZXQsIGFmdGVyIGEgd2hpbGUsIHNvbWV7WyYqJl19aG93IGNvbmNpbGlhdGVzIGl0c2VsZiBpbiBhbiBvYnNjdXJlIA0KYW5kIHZpdGFsIHdheSB3aXRoIGFsbCB0aGF0IGhhZCBnb25lIHtbJiomXX1iZWZvcmUuIFwiIEhlIGlzIGEgDQptYW4gYXQgb25jZSB5b3VuZyBhbmQgb2xkLCBlbnRlcnByaXNpbmcgYW5kIGZhdCwgYSBkdXBlIHtbJiomXX0NCmFuZCBhIHdpdCwgaGFybWxlc3MgYW5kIHdpY2tlZCwgd2VhayBpbiBwcmluY2lwbGUgYW5kIHJlcy0gDQpvbHV0ZSBieSBjb25ze1smKiZdfXRpdHV0aW9uLCBjb3dhcmRseSBpbiBhcHBlYXJhbmNlIGFuZCBicmF2ZSANCmluIHJlYWxpdHksIGEga25hdmUgd2l0aG91dCBtYWx7WyYqJl19aWNlLCBhIGxpYXIgd2l0aG91dCBkZWNlaXQsIA0KYW5kIGEga25pZ2h0LCBhIGdlbnRsZW1hbiwgYW5kIGEgc29sZGllciB3aXRob3tbJiomXX11dCBlaXRoZXIgDQpkaWduaXR5LCBkZWNlbmN5LCBvciBob25vci4gVGhpcyBpcyBhIGNoYXJhY3RlciB3aGljaF4gDQp0aG91Z2gge1smKiZdfWl0IG1heSBiZSBkZWNvbXBvdW5kZWQsIGNvdWxkIG5vdCwgSSBiZWxpZXZlLCANCmhhdmUgYmVlbiBmb3JtZWQsIG5vciB0aGUgaW57WyYqJl19Z3JlZGllbnRzIG9mIGl0IGR1bHkgbWluLSANCmdsZWQsIHVwb24gYW55IHJlY2VpcHQgd2hhdGV2ZXIuIEl0IHJlcXVpcmVkIHRoZXtbJiomXX0gaGFuZCANCm9mIFNoYWtzcGVhcmUgaGltc2VsZiB0byBnaXZlIHRvIGV2ZXJ5IHBhcnRpY3VsYXIgcGFydCBhIA0KcmVsaXNoIG9me1smKiZdfSB0aGUgd2hvbGUsIGFuZCBvZiB0aGUgd2hvbGUgdG8gZXZlcnkgcGFydGljdS0gDQpsYXIgcGFydCDigJQgYWxpa2UgdGhlIHNhbWV7WyYqJl19IGluY29uZ3J1b3VzLCBpZGVudGljYWwgRmFsc3RhZmYsIA0Kd2hldGhlciB0byB0aGUgZ3JhdmUgQ2hpZWYtanVzdGljZSBoZSB2YXtbJiomXX1pbmx5IHRhbGtzIG9mIGhpcyANCg0KeW91dGggYW5kIG9mZmVycyB0byBjYXBlciBmb3IgYSB0aG91c2FuZCwgb3IgY3JpZXMgdG8ge1smKiZdfU1ycy4gDQoNCuKWoCAuLiDilqAg4pagIEkg4pagIElJIElJLiBJbGwgSUlJIEkgSSAuIF4gDQoNCiogTm90aWNlIGhvdyB0aGUgQmF7WyYqJl19c3RhcmRcJ3MgdXR0ZXJhbmNlLCBpbiBzb25uZXQtZm9ybSAoYWN0IGlpLiwgc2MuIDIpLCBiZcKrIA0KDQpnbW5pbmcgDQoNClwiIERye1smKiZdfWF3biBpbiB0aGUgZmxhdHRlcmluZyB0YWJsZSBvZiBoZXIgZXllLFwiIA0KDQpzZXJ2ZXMgdG8gZXhwb3NlIHRoZSB0cnVlIGNoYXJhe1smKiZdfWN0ZXIgb2YgdGhlIERhdXBoaW5cJ3MgZWxhYm9yYXRlbHkgY29tcGx5IA0KbWVudGFyeSB3b29pbmcgb2YgQmxhbmNoIGFuZCBoZXIge1smKiZdfWRvd3J5LiANCg0KVGhlIEh1bW9yIG9mIFNoYWtzcGVyZS4gMzI1IA0KDQpEb2xsLCBcJyBJIGFtIG9sZCAhIEkgYW0gb2xkICFcJyBhbHtbJiomXX10aG91Z2ggc2hlIGlzIHNlYXRlZCBvbiANCmhpcyBsYXAsIGFuZCBoZSBpcyBjb3VydGluZyBoZXIgZm9yIGJ1c3Nlcy5cIiBcIl4gDQp7WyYqJl19DQpTaXIgSm9obiwgYWx0aG91Z2gsIGFzIGhlIHRydWx5IGRlY2xhcmVzLCBeXiBub3Qgb25seSB3aXR0eSANCmluIGhpbXNlbGYsIHtbJiomXX1idXQgdGhlIGNhdXNlIHRoYXQgd2l0IGlzIGluIG90aGVyIG1lbixcIiBpcyBieSANCm5vIG1lYW5zIGEgcHVyZWx5IGNvbWljIGNoYXtbJiomXX1yYWN0ZXIuIFdlcmUgaGUgbm8gbW9yZSANCnRoYW4gdGhpcywgdGhlIHN0ZXJuIHdvcmRzIG9mIEhlbnJ5IHRvIGhpcyBvbGQgY29te1smKiZdfXBhbmlvbiANCndvdWxkIGJlIHVuZW5kdXJhYmxlLiBUaGUgY2VudHJhbCBwcmluY2lwbGUgb2YgRmFsLSANCnN0YWZmXCdzIG1ldGhve1smKiZdfWQgb2YgbGl2aW5nIGlzIHRoYUZ0SGlUVGFjdHMgYXJ0aWQga3dzIG9mIHRoZSANCndvcmxkIG1heSBiZSBldmFkZWQgb3Igc2V0IGF7WyYqJl19dCBkZWZpYW5jZSwgaWYgb25seSB0aGUgcmUtIA0Kc291cmNlcyBvZiBpbmV4aGF1c3RpYmxlIHdpdCBiZSBjYWxsZWQgdXBvbiB0b3tbJiomXX0gc3VwcGx5LCBieS0gDQpicmlsbGlhbnQgaW5nZW51aXR5LCB3aGF0ZXZlciBkZWZpY2llbmNpZXMgbWF5IGJlIGZvdW5kIA0KaW4ge1smKiZdfWNoYXJhY3RlciBhbmQgY29uZHVjdC4tZiBUaGVyZWZvcmUsIFNoYWtzcGVyZSBjb24tIA0KZGVtbmVkIEZhbHN0YWZmIGluZXhvcmF7WyYqJl19Ymx5LiBGYWxzdGFmZiwgdGhlIGludnVsbmVyYWJsZSwgDQplbmRlYXZvcnMsIGFzIHdhcyBzYWlkIGluIGEgcHJlY2VkaW5nIGNoYXtbJiomXX1wdGVyLCB0byBjb3J1cy0gDQpjYXRlIGF3YXkgdGhlIHJlYWxpdGllcyBvZiBsaWZlLiBCdXQgdGhlIGZhY3QgcHJlc3NlcyBpbiANe1smKiZdfQp1cG9uIEZhbHN0YWZmIGF0IHRoZSBsYXN0IHJlbGVudGxlc3NseS4gU2hha3NwZXJlXCdzIGVhci0gDQpuZXN0bmVzcyBoZXJlIGlze1smKiZdfSBhdCBvbmUgd2l0aCBoaXMgbWlydGggOyB0aGVyZSBpcyBhIGNlcnRhaW4gDQpzdGVybm5lc3MgdW5kZXJseWluZyBoaXMgbGF1Z2h7WyYqJl19dGVyKiBcJyBNZXJlIGRldGVjdGlvbiBvZiANCmhpcyBzdHVwZW5kb3VzIHVuIHZlcmFjaXRpZXMgbGVhdmVzIFNpciBKb2huIGp1c3R7WyYqJl19IHdoZXJlIA0KaGUgd2FzIGJlZm9yZTsgdGhlIHN1Y2Nlc3Mgb2YgaGlzIGxpZSBpcyBvZiBsZXNzIGltcG9yLSANCnRhbmNlIHRvIHtbJiomXX1oaW0gdGhhbiBpcyB0aGUgZ2xvcnkgb2YgaXRzIGludmVudGlvbi4gXCIgVGhlcmUgDQppcyBubyBzdWNoIHRoaW5nIGFzIHRvdGFsbHtbJiomXX15IGRlbW9saXNoaW5nIEZhbHN0YWZmOyBoZSBoYXMgDQoNCiogQW4gXCIgRXNzYXkgb24gdGhlIERyYW1hdGljIENoYXJhY3RlciBvZntbJiomXX0gU2lyIEpvaG4gRmFsc3RhZmYsXCIgYnkgTWF1cmljZSANCk1vcmdhbm4sIEVzcS4sIHBwLiAxNTAsIDE1MSAoZWQuIDE4MjUpLiBOb3tbJiomXX0gcGllY2Ugb2YgZWlnaHRlZW50aC1jZW50dXJ5IGNyaXQtIA0KaWNpc20gb2YgU2hha3NwZXJlIGlzIG1vcmUgaW50ZWxsaWdlbnRse1smKiZdfXkgYW5kIHdhcm1seSBhcHByZWNpYXRpdmUgdGhhbiBpcyANCnRoaXMgZGVoZ2h0ZnVsIGVzc2F5LiANCg0KdCBeXCcgRmFsc3RhZmZcJ3tbJiomXX1zIGlubmVyc3RlIE5hdHVyIGdlaHQgdmllbG1laHIgYXVmIGRpZSBBdWZsb3N1bmcgYWxsZXMgRW1zdGVzIA0KZGVzIExlYmVucywge1smKiZdfWFsbGVyIExlaWRlbnNjaGFmdCwgYWxsZXIgQWZmZWN0ZSwgd2VsY2hlIGRlbiBNZW5zY2hlbiB1bnRlciBpaHJlIA0KSGVycnNjaGF7WyYqJl19ZiB0IGJyaW5nZW4sIGlobiBiZXNjaHJhbmtlbiwgdW5kIGlobSBkaWUgdm9pbGUgRnJlaWhlaXQgZGVzIEdlbWlpdGhzIA0KcmF1YntbJiomXX1lbi4gRGVyIEVybnN0IGRlcyBMZWJlbnMgZm9yZGVydCBlaW5lIFllcnRpZWZ1bmcgaW4gZGVuIEluaGFsdCBkZXMgDQpMZWJlbnM7e1smKiZdfSBkZXIgRXJuc3QgY29uY2VudHJpcnQgZGVuIE1lbnNjaGVuIGF1ZiBlaW5lbiBiZXN0aW1tdGVuIHVuZCANCmRhaGVyIG5vdGh3ZW57WyYqJl19ZGlnIGJlc2NocmFua3RlbiBJbmhhbHQgdW5kIFp3ZWNrLCBkZXIgc2VpbiBXb2hsIHVuZCBXZWhlIA0KYXVzbWFjaHQuIC4gLiAuIHtbJiomXX1GYWxzdGFmZiBpc3QgZGFoZXIgZGVyIG5hdGlpcmxpY2hlIEZlaW5kIGFsbGVyIGlkZWFsZW4gSW50ZXJlcy0gDQpzZW4gdW5kIExle1smKiZdfWlkZW5zY2hhZnRlbiwgZGVubiBzaWUgcmF1YmVuIHp1Z2xlaWNoIGRlbSBHZW1paXRoIGRpZSBCZWhhZy0gDQpsaWNoa2VpdCB1bmR7WyYqJl19IGJlZWludHJhY2h0aWdlbiBuYXRpaXJsaWNoIGViZW4sIHdlbGwgc2llIGRlbiBNZW5zY2hlbiBjb25jZW4tIA0KdHJpcmVuLCBkaXtbJiomXX1lIHVuYmVzY2hyYW5rdGUgRnJlaWhlaXQgZGVyIFNlZWxlLlwiIOKAlCBEci4gSC4gVGIuIFJvdHNjaGVyLCBTaGFrZW4gDQppcGVhcntbJiomXX1lIGluIHNlaW5lbiBoYmNoc3RlbiBDaGFyYWt0ZXJnZVVsZGVuXiBwLiBcJzcwLiANCg0KMzI2IFNoYWtzcGVyZSDigJQgSGlzIE1pbntbJiomXX1kIGFuZCBBIHJ0IA0KDQpzbyBtdWNoIG9mIHRoZSBpbnZ1bG5lcmFibGUgaW4gaGlzIGZyYW1lIHRoYXQgbm8gcmlkaWN1bGUgDQpje1smKiZdfWFuIGRlc3Ryb3kgaGltIDsgaGUgaXMgc2FmZSBldmVuIGluIGRlZmVhdCwgYW5kIHNlZW1zIHRvIA0KcmlzZSwgbGlrZSBhbm90aGV7WyYqJl19ciBBbnRzZXVzLCB3aXRoIHJlY3J1aXRlZCB2aWdvciBmcm9tIGV2ZXJ5IA0KZmFsbC5cIiogSXQgaXMgbm90IHJpZGljdWxlLCBidXR7WyYqJl19IHNvbWUgc3Rlcm4gaW52YXNpb24gb2YgZmFjdCANCm5vdCB0byBiZSBlc2NhcGVkIGZyb20gd2hpY2ggY2FuIHN1YmR1ZSBGYWxzdHtbJiomXX1hZmYuIFBlci0gDQpoYXBzIE55bSBhbmQgUGlzdG9sIGdvdCBhdCB0aGUgdHJ1dGggb2YgdGhlIG1hdHRlciB3aGVuIA0KdGhleSBke1smKiZdfWlzY291cnNlZCBvZiBTaXIgSm9oblwncyB1bmV4cGVjdGVkIGNvbGxhcHNlIDogDQoNCioqIE55bS4gVGhlIGtpbmcgaGF0aCBydW4ge1smKiZdfWJhZCBodW1vcnMgb24gdGhlIGtuaWdodCA7IHRoYXRcJ3MgdGhlIGV2ZW4gb2YgaXQuIA0KDQpQaXN0b2wuIE55bSwgdGhvdSBoYXN0e1smKiZdfSBzcG9rZSB0aGUgcmlnaHQgOyANCkhpcyBoZWFydCBpcyBmcmFjdGVkIGFuZCBjb3Jyb2JvcmF0ZS5cIiANCg0KSW4gdGhlIHJlbGF0e1smKiZdfWlvbiwgYnkgTXJzLiBRdWlja2x5LCBvZiB0aGUgZGVhdGggb2YgRmFsc3RhZmYsIA0KcGF0aG9zIGFuZCBodW1vciBoYXZlIHJ1biB7WyYqJl19dG9nZXRoZXIgYW5kIGJlY29tZSBvbmUuIA0KXCIgQVwnIG1hZGUgYSBmaW5lciBlbmQgYW5kIHdlbnQgYXdheSBhbiBpdCBoYWQgYmVle1smKiZdfW4gYW55IA0KY2hyaXN0b20gY2hpbGQgOyBhXCcgcGFydGVkIGV2ZW4ganVzdCBiZXR3ZWVuIHR3ZWx2ZSBhbmQgDQpvbmUsIGV2ZW4ge1smKiZdfWF0IHRoZSB0dXJuaW5nIG9cJyB0aGUgdGlkZSA6IGZvciBhZnRlciBJIHNhdyBoaW0gDQpmdW1ibGUgd2l0aCB0aGUgc2hlZXRzLCBhe1smKiZdfW5kIHBsYXkgd2l0aCBmbG93ZXJzIGFuZCBzbWlsZSANCnVwb24gaGlzIGZpbmdlcnNcJyBlbmRzLCBJIGtuZXcgdGhlcmUgd2FzIGJ1e1smKiZdfXQgb25lIHdheSA7IA0KZm9yIGhpcyBub3NlIHdhcyBhcyBzaGFycCBhcyBhIHBlbiwgYW5kIGFcJyBiYWJibGVkIG9mIA0KZ3JlZW4ge1smKiZdfWZpZWxkcy5cIiBmIEhlcmUgdGhlIHNtaWxlIGFuZCB0aGUgdGVhciByaXNlIGF0IHRoZSANCnNhbWUgaW5zdGFudC4gTmV2ZXJ0aGVse1smKiZdfWVzcywgdGhlIHVuaW9uIG9mIHBhdGhvcyB3aXRoIA0KaHVtb3IgYXMgeWV0IGV4dGVuZHMgb25seSB0byBhbiBpbmNpZGVudCA7IG57WyYqJl19byBlbnRpcmUgcGEtIA0KdGhldGljLWh1bW9yb3VzIGNoYXJhY3RlciBoYXMgYmVlbiBjcmVhdGVkIGxpa2UgdGhhdCBvZiANCkxlYXtbJiomXX1yXCdzIEZvb2wuIA0KDQpQYXRoZXRpY2FsbHksIGhvd2V2ZXIsIHRoZSBmYXQga25pZ2h0IGRpc2FwcGVhcnMsIGFuZCANCmRpc2FwcHtbJiomXX1lYXJzIGZvcmV2ZXIuIFRoZSBGYWxzdGFmZiBvZiBUaGUgTWVycnkgV2l2ZXMgDQpvZiBXaW5kc29yIGlzIGFub3RoZXIgcGVyc29ue1smKiZdfSB0aGFuIHRoZSBTaXIgSm9obiB3aG8gaXMgDQpcIiBpbiBBcnRodXJcJ3MgYm9zb20sIGlmIGV2ZXIgbWFuIHdlbnQgdG8gQXJ0aHVyXCd7WyYqJl19cyBib3MtIA0Kb20uXCIgVGhlIGVwaWxvZ3VlIHRvIHRoZSBzZWNvbmQgcGFydCBvZiBIZW5yeSBsWS4gDQood2hldGhlciBpdCB3YXN7WyYqJl19IHdyaXR0ZW4gYnkgU2hha3NwZXJlIG9yIG5vdCByZW1haW5zIA0KZG91YnRmdWwpIGhhZCBwcm9taXNlZCB0aGF0IFwiIG91ciBodW17WyYqJl19YmxlIGF1dGhvciB3aWxsIA0KY29udGludWUgdGhlIHN0b3J5IHdpdGggU2lyIEpvaG4gaW4gaXQuXCIgQnV0IG91ciBodW0tIA0KDQp7WyYqJl19KiBNYXVyaWNlIE1vcmdhbm4sIFwiIEVzc2F5IG9uIHRoZSBEcmFtYXRpYyBDaGFyYWN0ZXIgb2YgU2lyIEpvaG4gRmFsLSANCnN0YWZ7WyYqJl19ZixcJ14gcC4gMTgwLiANCg0KZiBEci4gTmV3bWFuIGluY2lkZW50YWxseSAoYnkgd2F5IG9mIGlsbHVzdHJhdGlvbikgZGlzY3Vzc2V7WyYqJl19cyB0aGUgY2xhaW0gDQplZiBUaGVvYmFsZFwncyBlbWVuZGF0aW9uIHRvIHN0YW5kIGluIHRoZSB0ZXh0IChcIkdyYW1tYXIgb2YgQXNze1smKiZdfWVudCwqIA0KcHAuIDI2NC0yXCc3MCkuIA0KDQpUaGUgSHVtb3Igb2YgU2hha3NwZXJlLiAzMjcgDQoNCmJsZSBhdXRob3IgZGVjaWRle1smKiZdfWQgKHdpdGggYSBmaW5lciBqdWRnbWVudCB0aGFuIENlcnZhbi0gDQp0ZXMgaW4gdGhlIGNhc2Ugb2YgaGlzIGhlcm8pIHRoYXQgdGh7WyYqJl19ZSBwdWJsaWMgd2FzIG5vdCB0byBiZSANCmluZHVsZ2VkIGluIGxhdWdodGVyIGZvciBsYXVnaHRlclwncyBzYWtlIGF0IHRoZSBleHB7WyYqJl19ZW5zZSANCm9mIGhpcyBwbGF5LiBUaGUgdG9uZSBvZiB0aGUgZW50aXJlIHBsYXkgb2YgSGVucnkgVi4gDQp3b3VsZCBoYXZlIGJlZXtbJiomXX1uIGFsdGVyZWQgaWYgRmFsc3RhZmYgaGFkIGJlZW4gYWxsb3dlZCB0byANCmFwcGVhciBpbiBpdC4gRHVyaW5nIHRoZSBtb25hcmNoe1smKiZdfXkgb2YgYSBIZW5yeSBJViwgbm8gDQpnbG9yaW91cyBlbnRodXNpYXNtIGFuaW1hdGVkIEVuZ2xhbmQuIEl0IHdhcyBkaXN0cmFjdGV7WyYqJl19ZCANCmJ5IGNpdmlsIGNvbnRlbnRpb24uIE1vdWxkeSwgU2hhbGxvdywgYW5kIEZlZWJsZSB3ZXJlIA0KYW1vbmcgdGhlIGNoYW1waXtbJiomXX1vbnMgb2YgdGhlIHJveWFsIGNhdXNlLiBQYXRyaW90aXNtIA0KYW5kIHRoZSBuYXRpb25hbCBwcmlkZSBvZiBFbmdsYW5kIGNvdWxke1smKiZdfSBub3QsIHVuZGVyIHRoZSANCmNhcmVmdWwgcG9saWN5IG9mIGEgQm9saW5nYnJva2UsIGJ1cnN0IGZvcnRoIGFzIG9uZSBhcy0gDQp7WyYqJl19Y2VuZGluZyBhbmQgdW5pdmVyc2FsIGZsYW1lLCBedCBzdWNoIGEgdGltZSBvdXIgaW1hZ2ktIA0KbmF0aW9uIGNhbiBsb2l0ZXIgYXtbJiomXX1tb25nIHRoZSBodW1vcnMgYW5kIGZyb2xpY3Mgb2YgYSB0YXYtIA0KZXJuLiBXaGVuIHRoZSBuYXRpb24gd2FzIGRpdmlkZWQgaW50e1smKiZdfW8gdmFyaW91cyBwYXJ0aWVzLCANCndoZW4gbm8gaW50ZXJlc3Qgd2FzIGFic29yYmluZyBhbmQgc3VwcmVtZS4gU2lyIEpvaG4gDQp7WyYqJl19bWlnaHQgd2VsbCBhcHBlYXIgdXBvbiBoaXMgdGhyb25lIGF0IEVhc3RjaGVhcCwgbW9uLSANCmFyY2ggYnkgdmlydHVlIG9mIGhpc3tbJiomXX0gd2l0LCBhbmQgZm9ybSB3aXRoIGhpcyBjb21wYW55IG9mIA0KZm9sbG93ZXJzIGEgc3RhdGUgd2l0aGluIHRoZSBzdGF0ZS4gQnV0e1smKiZdfSB3aXRoIHRoZSBjb3JvbmEtIA0KdGlvbiBvZiBIZW5yeSBZLiBvcGVucyBhIG5ldyBwZXJpb2QsIHdoZW4gYSBoaWdoZXIgaW4tIA17WyYqJl19CnRlcmVzdCBhbmltYXRlcyBoaXN0b3J5LCB3aGVuIHRoZSBuYXRpb25hbCBsaWZlIHdhcyB1bmktIA0KZmllZCwgYW5kIHRoZSBnbHtbJiomXX1vcmlvdXMgc3RydWdnbGUgd2l0aCBGcmFuY2UgYmVnYW4uIEF0IA0Kc3VjaCBhIHRpbWUgcHJpdmF0ZSBhbmQgc2Vjb25kYXJ5IGlue1smKiZdfXRlcmVzdHMgbXVzdCBjZWFzZSA7IA0KdGhlIG1hZ25pZmljZW50IHN3aW5nLCB0aGUgaW1wdWxzZSBhbmQgYWR2YW5jZSBvZiB0aGV7WyYqJl19IA0KbGlmZSBvZiBFbmdsYW5kLCBvY2N1cHkgb3VyIHdob2xlIGltYWdpbmF0aW9uLiBJdCBnb2VzIA0KaGFyZCB3aXRoIHVzIHRvIHtbJiomXX1wYXJ0IGZyb20gRmFsc3RhZmYsIGJ1dCwgbGlrZSB0aGUgS2luZywgDQpwYXJ0IGZyb20gaGltIHdlIG11c3QgOyB3ZSBjYW5ub3Qge1smKiZdfWJlIGVuY3VtYmVyZWQgd2l0aCANCnRoYXQgdHVuIG9mIGZsZXNoIDsgQWdpbmNvdXJ0IGlzIG5vdCB0aGUgYmF0dGxlLWZpZWxkIGZ7WyYqJl19b3IgDQpzcGxlbmRpZCBtZW5kYWNpdHkuIEZhbHN0YWZmLCB3aG9zZSBwcmluY2lwbGUgb2YgbGlmZSBpcyANCmFuIGF0dGVtcHQgdHtbJiomXX1vIGNvcnVzY2F0ZSBhd2F5IHRoZSBmYWN0cyBvZiBsaWZlLCBhbmQgd2hvIA0Kd2FzIHNvIHBvdGVudCBkdXJpbmcgdGhlIFByaW5je1smKiZdfWVcJ3MgbWlub3JpdHksIHdvdWxkIG5vdyANCm5lY2Vzc2FyaWx5IGFwcGVhciB0cml2aWFsLiBUaGVyZSBpcyBubyBwbGFjZSBmb3Ige1smKiZdfUZhbHN0YWZmIA0KYW55IGxvbmdlciBvbiBlYXJ0aCA7IGhlIG11c3QgbmVlZHMgZmluZCByZWZ1Z2UgXCJpbiBBci0gDQp0aHVyXCdzIHtbJiomXX1ib3NvbS5cIiBeIA0KDQoqIFRoaXMgaXMgd2VsbCBicm91Z2h0IG91dCBieSBSb3RzY2hlciwgXCIgU2hha2VzcGVhcmUgaW4gc2VpbmV7WyYqJl19biBob2Noc3RlbiANCkNoYXJha3RlcmdlYmlsZGVuLFwiIHAuIDc3LCANCg0KMzI4IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEF7WyYqJl19cnQuIA0KDQpBdCB0aGUgY2xvc2Ugb2YgdGhpcyBzZWNvbmQgcGVyaW9kIGluIHRoZSBkZXZlbG9wbWVudCANCm9mIFNoYWtzcGVyZXtbJiomXX1cJ3MgbWluZCBhbmQgYXJ0IHRoZSBicmlnaHRlc3QgYW5kIGxvdmVsaWVzdCANCmNvbWVkaWVzIHdlcmUgd3JpdHRlbi4gSW4gdGhlc3tbJiomXX1lIHllYXJzIHdlcmUgY3JlYXRlZCBSb3MtIA0KYWxpbmQgYW5kIFlpb2xhLCBKYXF1ZXMgYW5kIE1hbHZvbGlvLCBCZWF0cmljZSBhe1smKiZdfW5kIEJlbi0gDQplZGljay4gVGhlIGVzc2VudGlhbCBjaGFyYWN0ZXJpc3RpYyBvZiB0aGUgY2xvc2Ugb2YgdGhlIHNlYy0gDQpvbmR7WyYqJl19IHBlcmlvZCBpcyB0aGlzIDogU2hha3NwZXJlIGhhZCBxdWl0ZSBsZWZ0IGJlaGluZCBoaW0gDQpoaXMgc3Bpcml0IG9mIGNsZXZlcntbJiomXX0gXCIgeW91bmdtYW5pc2huZXNzIDtcIiBoZSBoYWQgY29tZSBpbnRvIA0KcG9zc2Vzc2lvbiBvZiBoaW1zZWxmIGFuZCBvZiBoaXMgb3d7WyYqJl19biBwb3dlcnMsIGFuZCBoZSBoYWQgDQplbnRlcmVkIGludG8gdml0YWwgdW5pb24gd2l0aCB0aGUgcmVhbCBsaWZlIG9mIHRoZSB3b3tbJiomXX1ybGQgOyANCmJ1dCBhcyB5ZXQgKGNvbmNlcm5lZCwgYXMgaGUgd2FzLCBhIGdvb2QgZGVhbCBhYm91dCBtYXRlLSANCnJpYWwgc3Vje1smKiZdfWNlc3MpIGhlIGhhZCBub3Qgc3RhcnRlZCB1cG9uIGFueSBwcm9mb3VuZCBpbiZsdDsgDQpxdWlyeSBjb25jZXJuaW5nIHRoZSBkZWV7WyYqJl19cGVyIGFuZCBtb3JlIHRlcnJpYmxlIHByb2JsZW1zIA0Kb2YgZXhpc3RlbmNlLiBIZSBoYWQgbm90IGJlZ3VuIHRvIHByb3NlY3V0ZXtbJiomXX0gaGlzIHByby0gDQpsb25nZWQgaW52ZXN0aWdhdGlvbiBvZiBldmlsLiBJdCB3YXMgcHJlY2lzZWx5IHRoZSBwZXJpb2QgDQphdCB3e1smKiZdfWhpY2ggU2hha3NwZXJlXCdzIG1pcnRoIHdhcyBmcmVlc3QgZm9yIGRpc3BvcnQuIEhlIA0KaGFkIHB1dCBhc2lkZSB0aGUgbWFzc2l2e1smKiZdfWUgbWF0ZXJpYWwgc3VwcGxpZWQgYnkgaGlzdG9yeS4gDQpIZSBoYWQgbm90IGFzIHlldCBmYWxsZW4gcHJvZm91bmRseSB1bmRlciB7WyYqJl19dGhlIGluZmx1ZW5jZSANCm9mIHRob3NlIG9ic2N1cmUgYW5kIHBhc3Npb25hdGUgaW50ZXJlc3RzIG9mIGxpZmUgd2hpY2ggDQpsaXtbJiomXX1lIGFib3V0IHRoZSByb290cyBvZiB0cmFnZWR5LiBJZiBldmVyIHRoZXJlIHdhcyBhIHRpbWUgDQp3aGVuIFNoYWtzcGVyZVwncyBsYXtbJiomXX11Z2h0ZXIgd291bGQgYmUgY2xlYXIgYW5kIG11c2ljYWwgDQphbmQgZnJlZSwgaXQgd2FzIHRoaXMgdGltZS4gQ29tZWR5LCB3aGlje1smKiZdfWggaGFkIGJlZW4gaW4tIA0Kdm9sdmVkIHdpdGggdGhlIGdyYXZlIG1hdHRlciBvZiBoaXN0b3J5LCBub3cgZGlzZW5nYWdlcyANCml7WyYqJl19dHNlbGYgLCAtYW5kIGFwcGVhcnMgYXMgc29tZXRoaW5nIHdpZGVseSBkaWZmZXJlbnQgZnJvbSB0aGUgDQp0ZW50YXRpdmUgY29tZXtbJiomXX1keSBvZiBTaGFrc3BlcmVcJ3MgZWFybGllc3QgcGVyaW9kLiBJZiB3ZSANCmNvbXBhcmUgVG91Y2hzdG9uZSB3aXRoIFNwZWVkLCBSb3tbJiomXX1zYWxpbmQgd2l0aCBSb3NhbGluZSwgDQp0aGUgc2NlbmVzIG9mIG1pc3Rha2VuIGlkZW50aXR5IGluIFR3ZWxmdGggTmlnaHQgd2l0e1smKiZdfWggDQp0aG9zZSBvZiBUaGUgQ29tZWR5IG9mIEVycm9yc14gd2Ugc2hhbGwgaGF2ZSBhIG1lYXN1cmUgDQpvZiB0aGUgZGlzdGFuY2V7WyYqJl19IHRyYXZlcnNlZC4gDQoNCkZyb20gYW1vbmcgdGhlIHBsYXlzIHNvIGJyaWdodCwgc28gdGVuZGVyLCBzbyBncmFjaW91cyANCm9mIHtbJiomXX10aGVzZSB5ZWFycywgb25lIHBsYXkg4oCUIFRoZSBNZXJyeSBXaXZlcyBvZiBXaW5kc29yIOKAlCANCnN0YW5kcyBhcGFydCB3aXRoe1smKiZdfSBhIHVuaXF1ZSBjaGFyYWN0ZXIuIEl0IGlzIGVzc2VudGlhbGx5IA0KcHJvc2FpYywgYW5kIGlzIGluZGVlZCB0aGUgb25seSBwbGF7WyYqJl19eSBvZiBTaGFrc3BlcmUgd3JpdHRlbiANCmFsbW9zdCB3aG9sbHkgaW4gcHJvc2UuIFRoZXJlIGlzIG5vIHJlYXNvbiB3aHkgd2UgDXtbJiomXX0Kc2hvdWxkIHJlZnVzZSB0byBhY2NlcHQgdGhlIHRyYWRpdGlvbiBwdXQgdXBvbiByZWNvcmQgYnkgDQpEZW5uaXMgYW5kIGJ5IFJve1smKiZdfXdlIHRoYXQgVGhlIE1lcnJ5IFdpdmVzIHdhcyB3cml0dGVuIA0KDQpUaGUgSHVtb3Igb2YgU2hha3NwZXJlLiAzMjkgDQoNCmJ5IFN7WyYqJl19aGFrc3BlcmUgdXBvbiBjb21wdWxzaW9uLCBieSBvcmRlciBvZiBFbGl6YWJldGgsIA0Kd2hvLCBpbiBoZXIgbHVzdCBmb3IgZ3Jvc3tbJiomXX1zIG1pcnRoLCByZXF1aXJlZCB0aGUgcG9ldCB0by8gDQpleHBvc2UgaGlzIEZhbHN0YWZmIHRvIHJpZGljdWxlIGJ5IGV4aGliaXRpe1smKiZdfW5nIGhpbSwgdGhlIA0KbW9zdCBkZWxpZ2h0ZnVsIG9mIGVnb2lzdHMsIGluIGxvdmUuIFNoYWtzcGVyZSB5aWVsZGVkIHRvIA0KdGh7WyYqJl19ZSBuZWNlc3NpdHkuIEhpcyBNZXJjaGFudCBvZiBWZW5pY2UgbWlnaHQgcGFzcyB3ZWxsIA0KZW5vdWdoIHdpdGggdGhlIG1pc2NlbHtbJiomXX1sYW5lb3VzIGdhdGhlcmluZyBvZiB1cHBlciwgbWlkLSANCmRsZSwgYW5kIGxvd2VyIGNsYXNzZXMgd2hpY2ggY3Jvd2RlZCB0byBhe1smKiZdfSBwdWJsaWMgdGhlYXRyZS4gDQpJXm93IGhlIGhhZCB0byBjYXRlciBzcGVjaWFsbHkgZm9yIGdlbnRsZS1mb2xrIGFuZCBmb3IgYSB7WyYqJl19DQpxdWVlbi4gQW5kIGtub3dpbmcgaG93IHRvIHBsZWFzZSBldmVyeSBjbGFzcyBvZiBzcGVjLSANCnRhdG9ycywgaGUga25ldyBob3tbJiomXX13IHRvIGhpdCBvZmYgdGhlIHRhc3RlIG9mIFwnXCcgdGhlIGJhcmJhcmlhbi5cJ14gDQpUaGUgTWVycnkgV2l2ZXMgb2YgV2luZHNvciBpe1smKiZdfXMgYSBwbGF5IHdyaXR0ZW4gZXhwcmVzc2x5IA0KZm9yIHRoZSBiYXJiYXJpYW4gYXJpc3RvY3JhdHMgd2l0aCB0aGVpciBoYXRyZWR7WyYqJl19IG9mIGlkZWFzLCANCnRoZWlyIGluc2Vuc2liaWxpdHkgdG8gYmVhdXR5LCB0aGVpciBoYXJkIGVmZmljaWVudCBtYW5uZXJzLCANCntbJiomXX1hbmQgdGhlaXIgZGVtYW5kIGZvciBpbXByb3ByaWV0eS4gVGhlIGdvb2QgOl5vbGsgb2YgDQpMb25kb24gbGlrZWQgdG8gc2VlIGEge1smKiZdfXByaW5jZSBvciBhIGR1a2UsIGFuZCB0aGV5IGxpa2VkIHRvIA0Kc2VlIGhpbSBtYWRlIGdyYWNpb3VzIGFuZCBnZW5lcm91cy4gVGh7WyYqJl19ZXNlIHJveWFsIGFuZCANCm5vYmxlIHBlcnNvbnMgYXQgV2luZHNvciB3aXNoZWQgdG8gc2VlIHRoZSBpbnRlcmlvciBsaWZlIA0Kb3tbJiomXX1mIGNvdW50cnkgZ2VudGxlbWVuIG9mIHRoZSBtaWRkbGUgY2xhc3MsIGFuZCB0byBzZWUgdGhlIA0Kd29tZW4gb2YgdGhlIG1pZGRse1smKiZdfWUgY2xhc3Mgd2l0aCB0aGVpciBleGNlbGxlbnQgaG91cmdlb2lzIA0KbW9yYWxzLCBhbmQgcm91Z2gsIGpvY29zZSB3YXlzLiBUaGV7WyYqJl19IGNvbWVkeSBvZiBoZWFyaW5nIA0KYSBGcmVuY2ggcGh5c2ljaWFuIGFuZCBhIFdlbHNoIHBhcnNvbiBzcGVhayBicm9rZW4gDQpFbntbJiomXX1nbGlzaCB3YXMgYXBwcmVjaWF0ZWQgYnkgdGhlc2Ugc3BlY3RhdG9ycywgd2hvIHV0dGVyZWQgDQp0aGVpciBtb3RoZXItdG9uZ3Vle1smKiZdfSB3aXRoIGV4ZW1wbGFyeSBhY2NlbnQuIFNoYWtzcGVyZSANCmRpZCBub3QgbWFrZSBhIGdyaWV2YW5jZSBvZiBoaXMgdGFzay4gSGV7WyYqJl19IHRocmV3IGhpbXNlbGYgDQppbnRvIGl0IHdpdGggc3Bpcml0LCBhbmQgZGVzcGF0Y2hlZCBoaXMgd29yayBxdWlja2x5IOKAlCBpbntbJiomXX0gDQpmb3VydGVlbiBkYXlzLCBpZiB3ZSBhY2NlcHQgdGhlIHRyYWRpdGlvbi4gQnV0IEZhbHN0YWZmIGhlIA0Kd2FzIG5vdCBwcmVwe1smKiZdfWFyZWQgdG8gcmVjYWxsIGZyb20gaGVhdmVuIG9yIGZyb20gaGVsbC4gDQpIZSBkcmVzc2VkIHVwIGEgZmF0IHJvZ3VlLCBicm91Z2h7WyYqJl19dCBmb3J3YXJkIGZvciB0aGUgb2NjYS0gDQpzaW9uIGZyb20gdGhlIGJhY2sgcHJlbWlzZXMgb2YgdGhlIHBvZXRcJ3MgaW1hZ2luYXR7WyYqJl19aW9uLCANCmluIEZhbHN0YWZmXCdzIGNsb3RoZXMgOyBoZSBhbGxvd2VkIHBlcnNvbnMgYW5kIHBsYWNlcyBhbmQgDQp0aW1lcyB0byB7WyYqJl19anVtYmxlIHRoZW1zZWx2ZXMgdXAgYXMgdGhleSBwbGVhc2VkIDsgaGUgbWFkZSANCml0IGltcG9zc2libGUgZm9yIHRoZSBtb3N0IHtbJiomXX1sYWJvcmlvdXMgbmluZXRlZW50aC1jZW50dXJ5IA0KY3JpdGljIHRvIHBhdGNoIG9uIFRoZSBNZXJyeSBXcm9lYSB0byBIZW5yeSBJe1smKiZdfVYuIEJ1dCANCnRoZSBRdWVlbiBhbmQgaGVyIGNvdXJ0IGxhdWdyaWVhIGFzIHRoZSBidWNrLWJhc2tldCB3YXMgDQplbXB0aWVkIGl7WyYqJl19bnRvIHRoZSBkaXRjaF4gbm8gbW9yZSBzdXNwZWN0aW5nIHRoYXQgaXRzIGdyb3NzIA0KDQozMzAgU2hha3NwZXJlIOKAlCBIaXMgTXtbJiomXX1pbmQgYW5kIEFydC4gDQoNCmxhZGluZyB3YXMgbm90IHRoZSBpbmNvbXBhcmFibGUgamVzdGVyIG9mIEVhc3RjaGVhcCB0aGFuIA0Ke1smKiZdfUZvcmQgc3VzcGVjdGVkIHRoZSB3b21hbiB3aXRoIGEgZ3JlYXQgYmVhcmQgdG8gYmUgb3RoZXIgDQp0aGFuIHRoZSB2ZXJpdGFibGV7WyYqJl19IERhbWUgUHJhdHQuXCJeIA0KDQpUaGUgdGhpcmQgcGVyaW9kIG9mIFNoYWtzcGVyZVwncyBkZXZlbG9wbWVudCBpcyB0aGF0IA0Kd2hpe1smKiZdfWNoIGNvbnRhaW5zIHRoZSBncmVhdCB0cmFnZWRpZXMuIFNoYWtzcGVyZVwncyBsYXVnaHRlciANCm5vdyBpcyBtb3JlIHRoYW4gcGF0e1smKiZdfWhldGljIOKAlCB0aG91Z2ggcGF0aGV0aWMgaXQgaXMgYXMgaXQgDQpoYWQgbmV2ZXIgYmVlbiBiZWZvcmUg4oCUIGl0IGlzIGFsc297WyYqJl19IHRyYWdpYyBhbmQgdGVycmlibGUuIA0KVGhlIGdhemUgb2YgdGhlIHBvZXQgZHVyaW5nIHRoaXMgcGVyaW9kIHdhcyBjb25jZW50cntbJiomXX1hdGVkIA0KdXBvbiB0aGUgZXZpbCBpbiBtYW5cJ3MgaGVhcnQsIHRoZSBkZWVwZXN0IG15c3Rlcnkgb2YgYmUtIA0KaW5nLCBpYW5kIHtbJiomXX11cG9uIHRoZSBnb29kIHdoaWNoIGlzIGF0IG9kZHMgaW4gdGhlIHdvcmxkIA0KDQoqIFdpdGggcmVzcGVjdCB0byB0aGUgZGlmZmlje1smKiZdfXVsdHkgb2YgaWRlbnRpZnlpbmcgdGhlIGNoYXJhY3RlcnMgb2YgTXJzLiANClF1aWNrbHksIFBpc3RvbCwgQmFyZG9scGgsIGFuZCB7WyYqJl19U2lyIEpvaG4gd2l0aCB0aGUgcGVyc29ucyBiZWFyaW5nIHRoZSBzYW1lIA0KbmFtZXMgaW4gdGhlIGhpc3RvcmljYWwgcGxheXMsIHtbJiomXX1zZWUgTXIuIEhhbFV3ZWxsXCdzIGludHJvZHVjdGlvbiB0byBcIiBUaGUgRmlyc3QgDQpTa2V0Y2ggb2YgVGhlIE1lcnJ5IFdpdmVzIG97WyYqJl19ZiBXaW5kc29yXCIgKFNoLiBTb2MsIDE4NDIpLiBNeSBpbXByZXNzaW9uIA0Kb2YgdGhpcyBwbGF5IGlzIGNvbmZpcm1lZCBieSB0aGF7WyYqJl19dCBvZiBjb21wZXRlbnQgY3JpdGljcy4gTXIuIEh1ZHNvbiB3cml0ZXMsIA0KXCIgVGhhdCB0aGUgZnJlZSBpbXB1bHNlIG9mIFNoYWt7WyYqJl19ZXNwZWFyZVwncyBnZW5pdXMsIHdpdGhvdXQgc3VnZ2VzdGlvbiBvciBpbi0gDQpkdWNlbWVudCBmcm9tIGFueSBvdGhlciBzb3VyY2V7WyYqJl19LCBjb3VsZCBoYXZlIGxlZCBoaW0gdG8gcHV0IEZhbHN0YWZmIHRocm91Z2ggDQpzdWNoIGEgc2VyaWVzIG9mIHVuY2hhcmFjdGVyaXtbJiomXX1zdGljIGRlbHVzaW9ucyBhbmQgY29sbGFwc2VzIGlzIHRvIG1lIHdlbGwtbmlnaCANCmluY3JlZGlibGVcIiAoXCIgU2hha2VzcGVhcmV7WyYqJl19IDogaGlzIExpZmUsXCIgZXRjLiwgdm9sLiBpLiwgcC4gMjk4KS4gU2VlIGFsc28gSGF6VXR0XCdzIA0KY3JpdGljaXNtIG9mIHRoZSBwe1smKiZdfWxheS4gSGFydGxleSBDb2xlcmlkZ2Ugd3JpdGVzLCAqXCcgVGhhdCBRdWVlbiBCZXNzIHNob3VsZCANCmhhdmUgZGVzaXJlZCB0byBze1smKiZdfWVlIEZhbHN0YWZmIG1ha2luZyBsb3ZlIHByb3ZlcyBoZXIgdG8gaGF2ZSBiZWVuLCBhcyBzaGUgDQp3YXMsIGEgZ3Jvc3MtbWluZGV7WyYqJl19ZCBvbGQgYmFnZ2FnZS4gU2hha2VzcGVhcmUgaGFzIGV2YWRlZCB0aGUgZGlmZmljdWx0eSANCndpdGggZ3JlYXQgc2tpbGwuIEhlIHtbJiomXX1rbmV3IHRoYXQgRmFsc3RhZmYgY291bGQgbm90IGJlIGluIGxvdmUgOyBhbmQgaGFzIG1peGVkIA0KYnV0IGEgbGl0dGxlLCBhIHZle1smKiZdfXJ5IGxpdHRsZSwgcHJ1cml0dXMgd2l0aCBoaXMgZm9ydHVuZS1odW50aW5nIGNvdXJ0c2hpcC4gQnV0IA0KdGhlIEZhbHN0YWZmIG97WyYqJl19ZiBUaGUgTWVycnkgV2l2ZXMgaXMgbm90IHRoZSBGYWxzdGFmZiBvZiBIZW5yeSBJVi4gSXQgaXMgYSANCmJpZy1iZWxsaWVkIGltcHtbJiomXX1vc3RvciwgYXNzdW1pbmcgaGlzIG5hbWUgYW5kIHN0eWxlLCBvciwgYXQgYmVzdCwgaXQgaXMgRmFsc3RhZmYgDQppbiBkb3RhZ2Uue1smKiZdfSBUaGUgTXJzLiBRdWlja2x5IG9mIFdpbmRzb3IgaXMgbm90IG1pbmUgaG9zdGVzcyBvZiB0aGUgQm9hclwncyANCkhlYWQgOyBidXQge1smKiZdfXNoZSBpcyBhIHZlcnkgcGxlYXNhbnQsIGJ1c3ksIGdvb2QtbmF0dXJlZCwgdW5wcmluY2lwbGVkIG9sZCANCndvbWFuLCB3aG9tIGl7WyYqJl19dCBpcyBpbXBvc3NpYmxlIHRvIGJlIGFuZ3J5IHdpdGguIFNoYWxsb3cgc2hvdWxkIG5vdCBoYXZlIA0KbGVmdCBoaXMgc2VhdCBpbntbJiomXX0gR2xvdWNlc3RlcnNoaXJlIGFuZCBoaXMgbWFnaXN0ZXJpYWwgZHV0aWVzLiBGb3JkXCdzIGplYWxvdXN5IA0KaXMgb2YgdG9vIHNlcntbJiomXX1pb3VzIGEgY29tcGxleGlvbiBmb3IgdGhlIHJlc3Qgb2YgdGhlIHBsYXkuIFRoZSBtZXJyeSB3aXZlcyANCmFyZSBhIGRlbGlnaHRme1smKiZdfXVsIHBhaXIuIE1ldGhpbmtzIEkgc2VlIHRoZW0sIHdpdGggdGhlaXIgY29tZWx5LCBtaWRkbGUtYWdlZCANCnZpc2FnZXMsIHRoZWl7WyYqJl19ciBkYWludHkgd2hpdGUgcnVmZnMgYW5kIHRveXMsIHRoZWlyIGhhbGYtd2l0Y2gtbGlrZSBjb25pYyBoYXRzLCANCnRoZWlyIGZ1bHtbJiomXX1sIGZhcnRoaW5nYWxlcywgdGhlaXIgbmVhdCB0aG91Z2ggbm90IG92ZXItc2xpbSB3YWlzdHMsIHRoZWlyIGhvdXNlLSANCndpZmVse1smKiZdfXkga2V5cywgdGhlaXIgZ2lyZGxlcywgdGhlaXIgc2x5IGxhdWdoaW5nIGxvb2tzLCB0aGVpciBhcHBsZS1yZWQgY2hlZWtzLCANCnR7WyYqJl19aGVpciBicm93cyB0aGUgbGluZXMgd2hlcmVvbiBsb29rIG1vcmUgbGlrZSB0aGUgd29yayBvZiBtaXJ0aCB0aGFuIHllYXJzLiANCntbJiomXX1BbmQgc3dlZXQgQW5uZSBQYWdlIOKAlCBzaGUgaXMgYSBwcmV0dHkgbGl0dGxlIGNyZWF0dXJlIHdob20gb25lIHdvdWxkIGxpa2Uge1smKiZdfQ0KdG8gdGFrZSBvbiBvbmVcJ3Mga25lZVwiIChcIkVzc2F5cyBhbmQgTWFyZ2luYWxpYSxcIiB2b2wuIGlpLiwgcHAuIDEzMywgMTM0KS4ge1smKiZdfUl0IA0KaXMgbm90ZXdvcnRoeSB0aGF0IE1hdXJpY2UgTW9yZ2FubiwgaW4gaGlzIGVzc2F5IG9uIEZhbHN0YWZmLCBhdm9pZHMgVGh7WyYqJl19QSANCk1lcnJ5IFdpdmVzLCANCg0KVGhlIEh1bW9yIG9mIFNoYWtzcGVyZS4gMzMxIA0KDQp3aXRoIHRoaXMgZXZpbC4gSGUgc3R1ZHtbJiomXX1pZXMgaHVtYW4gbGlmZSBub3cgd2l0aCByZWZlci0gDQplbmNlIHRvIGl0cyBtb3N0IHNvbGVtbiBpc3N1ZXMuIE9mIHVuYWxsb3lle1smKiZdfWQgbWlydGgsIG9mIA0KYnJpZ2h0IGFuZCB0ZW5kZXIgZmFuY3ksIHdlIGNhbiBub3cgbG9vayBmb3Igbm9uZS4gSW4gDQpTaGFrc3B7WyYqJl19ZXJlXCdzIGVhcmxpZXN0IHRyYWdlZHksIE1lcmN1dGlvIGRpc2FwcGVhcnMgYmVmb3JlIA0KaGFsZiB0aGUgcGxheSBpcyBvdmVyOyB7WyYqJl19YW5kIHRoZSBnbG9vbSBpbnN0YW50bHkgZGVlcGVucyANCnVwb24gdGhlIHdpdGhkcmF3YWwgb2YgaGlzIGdsZWFtaW5nIHZpdmFjaXtbJiomXX10eS4gVGhlIA0KTWVyY3V0aW8gaW4gU2hha3NwZXJlXCdzIGJyYWluIGFsc28gZGlzYXBwZWFycyB3aGVuIHRoZSANCnRyYWdlZHkgb3tbJiomXX1mIGxpZmUgYmVjb21lcyB3aXRoIGhpbSB2ZXJ5IGdyYXZlIGFuZCByZWFsLiANCkluIEhhbWxldF4gdGhlIGh1bW9yb3VzIGZpZ3Vye1smKiZdfWVzIG9mIHRoZSBjb3VydCBhcmUgYWxsIGEgDQpsaXR0bGUgY29udGVtcHRpYmxlIGFuZCBvZGlvdXMuIFBvbG9uaXVzLCBPc3JpYyx7WyYqJl19IEVvc2VuLSANCmNyYW50eiwgYW5kIEd1aWxkZW5zdGVybiBzZXJ2ZSBhcyBpcnJpdGFudHMgdG8gc3RpbXVsYXRlIA0KSGFtbGV0XCd7WyYqJl19cyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCBsaXZpbmcgYW5kIGltcGF0aWVuY2Ugb2YgdGhlIA0Kd29ybGQuIFRoZSBncmF2ZS1kaWdnZXtbJiomXX1ycyBoYXZlIGEgZ3JpbSBncm90ZXNxdWVuZXNzLiBhbmQgDQptaWdodCBhbG1vc3QgYXBwZWFyIGFzIGZpZ3VyZXMgaW4gdGhlIGRhe1smKiZdfW5zZXMgbWFjZGJyZXMgb2kgDQp0aGUgTWlkZGxlIEFnZXMgOyBlYWNoIGEgaHVtb3JvdXMgamVzdGVyIGluIHRoZSBjb3VydCBvZiB7WyYqJl19DQpEZWF0aDsgaGFpbC1mZWxsb3ctd2VsbC1tZXQgd2l0aCBjaGFwLWZhbGxlbiBza3VsbHM7IGEgDQpnby1iZXR3ZWVuIGZvciBteXtbJiomXX0gbGFkeSBXb3JtIGFuZCBoaW0gc2hlIGRlc2lyZXMgOyBhIA0KY29ubm9pc3NldXIgaW4gY29ycHNlcyA7IGEgY2hyb25pY2xlciBve1smKiZdfWYgZGVhZCBtZW5cJ3MgYm9uZXMuIA0KVGhlIHNjZW5lIG9mIHRoZSBrbm9ja2luZyBpbiBNYWNiZXRoIGhhcyBzaW1pbGFybHkgYSANe1smKiZdfQpncmF2ZSBzaWduaWZpY2FuY2UuKl4gVG8gdGhlIGNyaXRpY2lzbSBvZiBEZSBRdWluY2V5IA0Kbm90aGluZywgZnJvbSB0aGUgYWV7WyYqJl19c3RoZXRpYyBwb2ludCBvZiB2aWV3LCByZW1haW5zIHRvIGJlIA0KYWRkZWQuIFwiIFRoZSByZXRpcmluZyBvZiB0aGUgaHVtYW4gaGV7WyYqJl19YXJ0LCBhbmQgdGhlIGVuLSANCnRyYW5jZSBvZiB0aGUgZmllbmRpc2ggaGVhcnQsIHdhcyB0byBiZSBleHByZXNzZWQgYW5kIG1hZHtbJiomXX1lIA0Kc2Vuc2libGUuIEFub3RoZXIgd29ybGQgaGFzIHN0ZXBwZWQgaW4gOyBhbmQgdGhlIG11cmRlci0gDQoNCiogQ29sZXJpZGdle1smKiZdfSByZWplY3RlZCB0aGUgUG9ydGVyXCdzIHNvbGlsb3F1eSB3aXRoIHRoZSBleGNlcHRpb24gb2YgdHdvIA0KbGluZXMg4oCUIHZpei4se1smKiZdfSBcIiBJXCdsbCBkZXZpbC1wb3J0ZXIgaXQgbm8gZnVydGhlciA7IDEgaGFkIHRob3VnaHQgdG8gbGV0IGluIHNvbV4gb2YgDQphbGwgcHtbJiomXX1yb2Zlc3Npb25zIHRoYXQgZ28gdGhlIHByaW1yb3NlIHdheSB0byB0aGUgZXZlcmxhc3RpbmcgYm9uZmlyZS5cIiBPbiB0aGUgDQpvdHtbJiomXX1oZXIgc2lkZSwgc2VlIChUcmFucy4gTmV3IFNoLiBTb2MsIDE4XCc3NCkgTXIuIEhhbGVzLCBcIk9uIHRoZSBQb3J0ZXIgaW4gDQpNYWN7WyYqJl19YmV0aC5cIiBNci4gSGFsZXMgZW5kZWF2b3JzIHRvIGVzdGFiVXNoIHRoZSBnZW51aW5lbmVzcyBvZiB0aGUgc3BlZWNoIA0Kb24gdGh7WyYqJl19ZSBncm91bmRzIOKAlCANCg0KKGkuKSBUaGF0IGEgUG9ydGVyXCdzIHNwZWVjaCBpcyDCu24gaW50ZWdyYWwgcGFydCBvZiB0aGUgcGx7WyYqJl19YXkuIA0KDQooaWkuKSBUaGF0IGl0IGlzIG5lY2Vzc2FyeSBhcyBhIHJlbGllZiB0byB0aGUgc3Vycm91bmRpbmcgbGlvcnJvci4gDXtbJiomXX0KDQooaWlpLikgVGhhdCBpdCBpcyBuZWNlc3NhcnkgYWNjb3JkaW5nIHRvIHRoZSBsYXcgb2YgY29udHJhc3QgZWxzZXdoZXJlIA0Ke1smKiZdfW9iZXllZC4gDQoNCihpdi4pIFRoYXQgdGhlIHNwZWVjaCB3ZSBoYXZlIGlzIGRyYW1hdGljYWxseSByZWxldmFudC4gDQoNCih2Lil7WyYqJl19IFRoYXQgaXRzIHN0eWxlIGFuZCBsYW5ndWFnZSBhcmUgU2hha3NwZXJpYW4qIA0KDQozMzIgU2hha3NwZXJlIOKAlCBIaXMgTWluZHtbJiomXX0gYW5kIEFydC4gDQoNCmVycyBhcmUgdGFrZW4gb3V0IG9mIHRoZSByZWdpb24gb2YgaHVtYW4gdGhpbmdzLCBodW1hbiANCnB1cnBve1smKiZdfXNlcywgaHVtYW4gZGVzaXJlcy4gVGhleSBhcmUgdHJhbnNmaWd1cmVkLiBMYWR5IA0KTWFjYmV0aCBpcyBeIHVuc2V4ZWQgO1wnIE1he1smKiZdfWNiZXRoIGhhcyBmb3Jnb3R0ZW4gdGhhdCBoZSB3YXMgDQpib3JuIG9mIHdvbWFuIDsgYm90aCBhcmUgY29uZm9ybWVkIHRvIHRoZSB7WyYqJl19aW1hZ2Ugb2YgDQpkZXZpbHMgOyBhbmQgdGhlIHdvcmxkIG9mIGRldmlscyBpcyBzdWRkZW5seSByZXZlYWxlZC4gDQpCdXQgaG93IHtbJiomXX1zaGFsbCB0aGlzIGJlIGNvbnZleWVkIGFuZCBtYWRlIHBhbHBhYmxlID8gSW4gDQpvcmRlciB0aGF0IGEgbmV3IHdvcmxkIG1heSBze1smKiZdfXRlcCBpbiwgdGhpcyB3b3JsZCBtdXN0IGZvciANCmEgdGltZSBkaXNhcHBlYXIuIFRoZSBtdXJkZXJlcnMgYW5kIHRoZSBtdXJkZXJ7WyYqJl19IG11c3QgDQpiZSBpbnN1bGF0ZWQg4oCUIGN1dCBvZmYgYnkgYW4gaW1tZWFzdXJhYmxlIGd1bGYgZnJvbSB0aGUgDQpvcmRpbmFyeXtbJiomXX0gdGlkZSBhbmQgc3VjY2Vzc2lvbiBvZiBodW1hbiBhZmZhaXJzIDsgd2UgbXVzdCANCmJlIG1hZGUgc2Vuc2libGUgdGhhdCB0aGUge1smKiZdfXdvcmxkIG9mIG9yZGluYXJ5IGxpZmUgaXMgc3VkLSANCmRlbmx5IGFycmVzdGVkIOKAlCBsYWlkIGFzbGVlcCwgdHJhbmNlZCwgcmF7WyYqJl19Y2tlZCBpbnRvIGEgZHJlYWQgDQphcm1pc3RpY2UgOyB0aW1lIG11c3QgYmUgYW5uaWhpbGF0ZWQsIHJlbGF0aW9ucyB0byB0aGluZ3tbJiomXX1zIA0Kd2l0aG91dCBhYm9saXNoZWQgOyBhbmQgYWxsIG11c3QgcGFzcyBzZWxmIC13aXRoZHJhd24gaW50byANCmEgZGVlcCBzeW5je1smKiZdfW9wZSBhbmQgc3VzcGVuc2lvbiBvZiBlYXJ0aGx5IHBhc3Npb24uIEhlbmNlIA0KaXQgaXMgdGhhdCB3aGVuIHRoZSBkZWVkIGlzIGR7WyYqJl19b25lLCB3aGVuIHRoZSB3b3JrIG9mIGRhcmstIA0KbmVzcyBpcyBwZXJmZWN0LCB0aGVuIHRoZSB3b3JsZCBvZiBkYXJrbmVzcyBwYXtbJiomXX1zc2VzIGF3YXkgDQpsaWtlIGEgcGFnZWFudHJ5IGluIHRoZSBjbG91ZHMgOyB0aGUga25vY2tpbmcgYXQgdGhlIGdhdGUgDQppcyBoe1smKiZdfWVhcmQgOyBhbmQgaXQgbWFrZXMga25vd24gYXVkaWJseSB0aGF0IHRoZSByZWFjdGlvbiANCmhhcyBjb21tZW5jZWQgOyB0aGUgaHV7WyYqJl19bWFuIGhhcyBtYWRlIGl0cyByZWZsdXggdXBvbiB0aGUgDQpmaWVuZGlzaCA7IHRoZSBwdWxzZXMgb2YgbGlmZSBhcmUgYmVnaW5uaXtbJiomXX1uZyB0byBiZWF0IGFnYWluIDsgDQphbmQgdGhlIHJlLWVzdGFibGlzaG1lbnQgb2YgdGhlIGdvaW5ncy1vbiBvZiB0aGUgd29ybGQge1smKiZdfWluIA0Kd2hpY2ggd2UgbGl2ZSBmaXJzdCBtYWtlcyB1cyBwcm9mb3VuZGx5IHNlbnNpYmxlIG9mIHRoZSANCmF3ZnVsIHBhcmVudGh7WyYqJl19ZXNpcyB0aGF0IGhhZCBzdXNwZW5kZWQgdGhlbS5cIiAqIA0KDQpJbiBMZWFyXiB3aGVyZSBhbGwgZWxzZSBvZiBTaGFrc3BlcmVcJ3Mge1smKiZdfWFydCBhdHRhaW5zIGEgDQpkZWVwZXIgYW5kIG1vcmUgaW50ZW5zZSBsaWZlIHRoYW4gaW4gYW55IG90aGVyIG9mIGhpcyANCnwpb2V7WyYqJl19bTgsLiB0aGUgaW50ZXJwZW5ldHJhdGlvbiBvZiB0aGUgaHVtb3JvdXMsIHRoZSBwYXRoZXQtIA0KaWMsIGFuZCB0aGUgdHJhZ2ljIHtbJiomXX1oYXMgYmVjb21lIGNvbXBsZXRlLiBXaGVuIExlYXIsIA0KDQoqIEkpZSBRdWluY2V5XCdzIFdvcmtzICgxc3QgZWQsKSwgdm9sLiB4aXtbJiomXX12LiwgcC4gMTlZLiBCb2RlbnN0ZWR0IChxdW90ZWQgYnkgDQpGdXJuZXNzLCBWYXJpb3J1bSBTaGFrZXNwZWFyZSDigJQgTWFjYmV0e1smKiZdfWgsIHAuIDExMCkgd3JpdGVzIG9mIHRoZSBQb3J0ZXIsIA0KXCIgQWZ0ZXIgYWxsLCBoaXMgdW5jb3V0aCBjb21pY2FsaXR5IGhhcyBhe1smKiZdfSB0cmFnaWMgYmFja2dyb3VuZCA6IGhlIG5ldmVyIA0KZHJlYW1zLCB3aGlsZSBpbWFnaW5pbmcgaGltc2VsZiBhIHBvcnRlciBvZiB7WyYqJl19aGVsbCwgaG93IG5lYXIgaGUgY29tZXMgdG8gdGhlIA0KdHJ1dGguIFdoYXQgYXJlIGFsbCB0aGVzZSBwZXR0eSBzaW5uZXJzIHdob3tbJiomXX0gZ28gdGhlIHByaW1yb3NlIHdheSB0byB0aGUgDQpldmVybGFzdGluZyBib25maXJlIGNvbXBhcmVkIHdpdGggdGhvc2UgZ3JlYXQge1smKiZdfWNyaW1pbmFscyB3aG9zZSBnYXRlcyBiaSANCi4gZ3VhcmRzID9cIiANCg0KVGhlIEh1bW9yIG9mIFNoYWtzcGVyZS4gMzMzIA0KDQphe1smKiZdfXNzaXN0ZWQgYnkgdGhlIG1vc3QgbGVhcm5lZCBqdXN0aWNlciBwb29yIFRvbSwgYW5kIGhpcyANCnlva2UtZmVsbG93IGluIGVxdWl7WyYqJl19dHkgdGhlIEZvb2wsIGFycmFpZ25zIGEgam9pbnQtc3Rvb2wgYXMgDQpHb25lcmldLCB3ZSBkbyBub3Qgc21pbGUsIHdlIGhhcmRseXtbJiomXX0gYXMgeWV0IGNhbiBwaXR5IDsgd2UgDQpnYXplIG9uIHdpdGggc3VzcGVuZGVkIGludGVsbGVjdCwgYXMgaWYgdGhlIGVudGlyZSBze1smKiZdfXBlY3RhY2xlIA0Kd2VyZSBzb21lIG15c3RlcmlvdXMsIGdyb3Rlc3F1ZSBoaWVyb2dseXBoLCB0aGUgc2VjcmV0IA0Kb2Ygd2hpY2h7WyYqJl19IHdlIHdlcmUgYWJvdXQgdG8gZGlzY292ZXIuIEluIHRoZSBzbWFsbGVzdCANCmF0b20gb2YgdGhlIHNwZWVjaGVzIG9mIExlYXIsIHtbJiomXX1vZiBFZGdhciwgb2YgdGhlIEZvb2wsIGFuZCANCmVxdWFsbHkgaW4gdGhlIGVudGlyZSBkcmFtYSwgdHJhZ2ljIGVhcm5lc3RuZXNze1smKiZdfSBpcyBzZWVuIGFyLSANCnJheWVkIGluIGZhbnRhc3RpYyBtb3RsZXkuIEl0IGlzIGFzIGlmIHRoZSB3cml0ZXIgd3FyZSANCmxvb2t7WyYqJl19aW5nIGRvd24gYXQgaHVtYW4gbGlmZSBmcm9tIGEgcG9pbnQgb2YgdmlldyB3aXRob3V0IA0KYW5kIGFib3ZlIGxpZmUsIGZyb20gd3tbJiomXX1oaWNoIHRoZSB3aG9sZSBhcHBlYXJzIGFzIHNvbWUgDQptb25zdHJvdXMgZmFyY2UtdHJhZ2VkeSwgaW4gd2hpY2ggYWxsIHRoYXQge1smKiZdfWlzIHRlcnJpYmxlIGlzIA0KbHVkaWNyb3VzLCBhbmQgYWxsIHRoYXQgaXMgbHVkaWNyb3VzIHRlcnJpYmxlLiANCg0KSWYsIGR1cml7WyYqJl19bmcgdGhpcyB0cmFnaWMgcGVyaW9kLCBTaGFrc3BlcmUgcmV0YWluIGFueSB0ZW4tIA0KZGVuY3kgdG8gb2JzZXJ2ZSB0aGUgY29tZXtbJiomXX1keSBvZiBpbmNpZGVudCBpbiBsaWZlLCB0aGUgaW5jaS0gDQpkZW50IHdpbGwgYmUgb2YgYW5vdGhlciBzb3J0IGZyb20gdGhhdCB3e1smKiZdfWhpY2ggbW92ZXMgb3VyIA0KbGF1Z2h0ZXIgaW4gVGhlIENvbWVkeSBvZiBFcnJvcnMuIEl0IHdpbGwgcmF0aGVyIGJlIGEgDQpmcmF7WyYqJl19Z21lbnQgb2YgdGl0YW5pYyBidXJsZXNxdWUsIG92ZXJodW5nIGJ5IHNvbWUgaW1wZW5kLSANCmluZyBob3Jyb3IsIGFuZCBpbnNwaXtbJiomXX1yZWQgYnkgYSBkZWVwIFwiaWRlYSBvZiB3b3JsZC1kZXN0cnVjLSANCnRpb24uXCIqIFN1Y2ggYSBzdHVwZW5kb3VzIHBpZWNlIG9mIGJ7WyYqJl19dXJsZXNxdWUsIGluc3BpcmVkIA0KYnkgYW4gaWRlYSBvZiB3b3JsZCAtZGVzdHJ1Y3Rpb24sIFNoYWtzcGVyZSBmb3VuZCBpbiANCntbJiomXX1QbHV0YXJjaFwncyBsaWZlIG9mIEFudG9ueSwgYW5kIGhhdmluZyBhbGxvd2VkIGl0IHRvIGRpbGF0ZSANCmFuZCB0YWtlIGNvbG9yIHtbJiomXX1pbiBoaXMgb3duIGltYWdpbmF0aW9uLCBoZSB0cmFuc2ZlcnJlZCBpdCANCnRvIGhpcyBwbGF5LiBBYm9hcmQgUG9tcGV5XCdzIGdhbHtbJiomXX1sZXkgdGhlIG1hc3RlcnMgb2YgdGhlIA0KZWFydGggaG9sZCBoYW5kcyBhbmQgZGFuY2UgdGhlIEVneXB0aWFuIGJhY2NoYW5hbHMse1smKiZdfSANCmpvaW5pbmcgaW4gdGhlIHZvbGxleWluZyBjaG9ydXMsIFwiIEN1cCB1cywgdGlsbCB0aGUgd29ybGQgDQpnb2VzIHJvdW5kICFcIntbJiomXX0gYW5kIE1lbmFzIHdoaXNwZXJzIGhpcyBsZWFkZXIgdG8gYmlkIGhpbSANCmN1dCB0aGUgY2FibGUgYW5kIGZhbGwgdG8gdGhlIHRoe1smKiZdfXJvYXRzIG9mIHRoZSB0cml1bXZpcnMuIEEgDQpncmVhdCBwYWludGluZyBieSBPcmNhZ25hIHNob3dzIGEgdGVycmlibGUgZmlndXJ7WyYqJl19ZSwgRGVhdGhqIA0KYXJtZWQgd2l0aCB0aGUgc2N5dGhlLCBhbmQgc3dlZXBpbmcgZG93biB0aHJvdWdoIA0KYnJpZ2h0IGFpciB1cHtbJiomXX1vbiB0aGUgZ2xhZCBhbmQgY2FyZWxlc3MgZ2FyZGVuLXBhcnR5IG9mIA0Kbm9ibGUgYW5kIGJlYXV0aWZ1bCBwZXJzb25zIOKAlCBte1smKiZdfWVuIGFuZCB3b21lbiB3aG8gbGVhbiANCnRvIG9uZSBhbm90aGVyLCBhbmQgY2FyZXNzIHRoZWlyIGRvZ3MgYW5kIGhhd2tzLCB3aGl7WyYqJl19bGUgDQoNCiogQSB3b3JkIGFwcGxpZWQgYnkgSGVpbmUgdG8gQXJpc3RvcGhhbmVzIOKAlCBXZHR2ZXJuaWNodHV3Xl5edSANCg0KM3tbJiomXX0zNCBTaGFrc3BlcmUg4oCUIEhpcyBNaW5kIGFuZCBBcnQgDQoNCi4gdGhleSBsaXN0ZW4gdG8gdGhlIG11c2ljIG9mIHN0cmluZ2Vke1smKiZdfSBpbnN0cnVtZW50cy4gSW4gDQovXCcgU2hha3NwZXJlXCdzIHNjZW5lIG9mIHJldmVscnksIGRlYXRoIHNlZW1zIHRvIGJlIG1vcmUgDXtbJiomXX0KXiBzZWNyZXRseSwgbW9yZSBpbnRpbWF0ZWx5IHByZXNlbnQsIHNlZW1zIG1vcmUgc3VyZWx5IHRvIA0KTCBkb21pbmF0ZSBsaWZle1smKiZdfSA7IHRob3VnaCBpdCBwYXNzZXMgYnksIGl0IHBhc3NlcywgYXMgaXQgd2VyZSwgDQopIHdpdGggYW4gaXJvbmljYWwgc21pbGUgYXR7WyYqJl19IHRoZSBzZWN1cml0eSBvZiB0aGUgcG9zc2Vzc29ycyBvZiANClsgdGhpcyB3b3JsZCwgYW5kIGF0IHRoZSBub2lzeSBpbnN1YnN0YXtbJiomXX1udGlhbCB0cml1bXBoIG9mIGxpZmUsIA0KVnBlcm1pdHRlZCBmb3IgYSB3aGlsZS4gSWYgbm93IFNoYWtzcGVyZSBiZSBhIHNhdGlye1smKiZdfWlzdCwgDQpoaXMgc2F0aXJlIHdpbGwgbm90IHJlc2VtYmxlIHRoZSBicmlnaHQsIGFpcnkgbW9ja2VyeSBvZiANCmZhc2hpb25zIGF7WyYqJl19bmQgYWZmZWN0YXRpb25zIHdoaWNoIG1hZGUgdGhlIGVhcmx5IExvdmVcJ3MgDQpMYWJvciBecyBMb3N0IGVmZmVjdGl2ZSB3aXRoIHl7WyYqJl19b3V0aGZ1bCBhcmlzdG9jcmF0aWMgcGF0cm9ucyANCi8gb2YgdGhlIHRoZWF0cmUuIEhvdyBncmVhdCBhIGRpc3RhbmNlIGhhcyBiZXtbJiomXX1lbiBtZWFzdXJlZCANCnNpbmNlIHRoZW4gISBTaGFrc3BlcmVcJ3Mgc2F0aXJlIHdpbGwgbm93IGJlIHRoZSBkZWVwIG9yIA0KKSBmaXtbJiomXX1lcmNlIGNvbXBsYWludCBhZ2FpbnN0IHRoZSB3b3JsZCwgb2YgYSBzb3VsIGluIGl0cyBhZ29ueSANCuKAlCB0aGUgZnJlbnppZWQge1smKiZdfWFjY3VzYXRpb25zIG9mIG5hdHVyZSBhbmQgb2YgbWFuIHV0dGVyZWQgDQpieSBMZWFyLCBvciB0aGUgSnV2ZW5hbGlhbiBzYXRpcmV7WyYqJl19IG9mIHRoZSBBdGhlbmlhbiBtaXNhbi0gDQp0aHJvcGUuIA0KDQpUaGVyZSBpcyBpbiBldmVyeSBtYW4gb2YgcGFzc2lvbmF0ZSBnZXtbJiomXX1uaXVzIGEgcmV2b2x0IA0KYWdhaW5zdCB0aGUgaW5zdWZmaWNpZW5jeSBvZiB0aGUgd29ybGQsIGEgcmV2b2x0IGFnYWluc3QgdGhle1smKiZdfSANCmJhc2UgZmFjdHMgb2YgbGlmZS4gTW9zdCBvZiB1cyBzdXJyZW5kZXIgdG8gdGhlIHdvcmxkLCBzaWduIA0KYSB0cmVhdHkgb2Z7WyYqJl19IGFsbGlhbmNlIHdpdGggZW5nYWdlbWVudHMgb2YgbXV0dWFsIHNlcnZpY2UsIA0KYW5kIGVuZCBieSBhY3F1aWVzY2VuY2UuIEl0IHtbJiomXX1pcyByZW1hcmthYmxlIHRoYXQgU2hhay0gDQpzcGVyZVwncyByZXZvbHQgYWdhaW5zdCB0aGUgd29ybGQgaW5jcmVhc2VkIGluIGVuZXtbJiomXX1yZ3kgYW5kIA0KY29tcHJlaGVuc2l2ZW5lc3MgYXMgaGUgYWR2YW5jZWQgaW4geWVhcnMuIFdoZW4gaGUgDQp3YXMgdGhpcnR5IG9ye1smKiZdfSBmaXZlLWFuZC10aGlydHkgeWVhcnMgb2YgYWdlLCBoZSBmb3VuZCBsZXNzIGluIA0KdGhlIHdvcmxkIHRvIGFyb3VzZSBoaXMgaW57WyYqJl19ZGlnbmF0aW9uIHRoYW4gd2hlbiBoZSB3YXMgDQpmb3J0eS4gTmVpdGhlciBieSBmb3JjZSBub3IgZnJhdWQsIGJ5IGJyaWJlIG9yIHtbJiomXX1tZW5hY2UsIA0KZGlkIHRoZSB3b3JsZCBzdWJkdWUgb3IgZ2FpbiBvdmVyIFNoYWtzcGVyZS4gSWYgaGUgYXQtIA0KdGFpbmVkIHNle1smKiZdfXJlbml0eSwgaXQgd2FzIGJ5IHNvbWUgcHJvY2VkdXJlIG90aGVyIHRoYW4gdGhhdCANCm9mIHNlbGZpc2ggb3IgaW5kb2xlbnQgYWN7WyYqJl19cXVpZXNjZW5jZS4gSlNUbyBtb29kIG9mIGVnb2lzdGljIA0KbGFpc3NlemZhaXJlIHN1Y2NlZWRlZCBTaGFrc3BlcmVcJ3MgbW9vZCB7WyYqJl19b2YgaW5kaWduYXRpb24uIA0KU2VyZW5pdHkgU2hha3NwZXJlIGRpZCBhdHRhaW4uIE9uY2UgYWdhaW4gYmVmb3JlIHRoZSANCjtlbntbJiomXX1kIGhpcyBtaXJ0aCBpcyBicmlnaHQgYW5kIHRlbmRlci4gV2hlbiBpbiBzb21lIFdhci0gDQpeIHdpY2tzaGlyZSBmaWVsZCwgb25le1smKiZdfSBicmVlenkgbW9ybmluZywgYXMgdGhlIGRhZmZvZGlsIGJlZ2FuIA0KXSB0byBwZWVyLCB0aGUgcG9ldCBjb25jZWl2ZWQgaGlzIEF7WyYqJl19dXRvbHljdXMsIHRoZXJlIG1pZ2h0IA0K4oCiIEJlZW0gdG8gYmUgYWxtb3N0IGEgcmV0dXJuIG9mIHRoZSBsaWdodC1oZWFydGVkbntbJiomXX1lc3Mgb2YgDQoNClRoZSBIdW1vciBvZiBTaGFrc3BlcmUuIDMzNSANCg0KeW91dGguIEJ1dCB0aGUgc2FtZSBwbGF5IHRoYXQgY29ue1smKiZdfXRhaW5zIEF1dG9seWN1cyBjb24tIA0KdGFpbnMgdGhlIGdyYXZlIGFuZCBub2JsZSBmaWd1cmUgb2YgSGVybWlvbmUuIEZyb20gaXR7WyYqJl19cyANCmVsZXZhdGlvbiBhbmQgY2FsbSBTaGFrc3BlcmVcJ3MgaGVhcnQgY2FuIHBhc3MgaW50byB0aGUgDQpzaW1wbGUgbWVycmltZW57WyYqJl19dCBvZiBydXN0aWMgZmVzdGl2aXR5OyBoZSBjYW4gZW5qb3kgdGhlIA0Kb3Blbi1tb3V0aGVkIGhhcHBpbmVzcyBvZiBjb3VudHJ5IHtbJiomXX1jbG93bnM7IGhlIGlzIGRlLSANCmxpZ2h0ZWQgYnkgdGhlIGdheSBkZWZpYW5jZSBvZiBvcmRlciBhbmQgaG9uZXN0eSB3aGljaCANe1smKiZdfQpBdXRvbHljdXMsIG1vc3QgY2hhcm1pbmcgb2Ygcm9ndWVzLCBwcm9mZXNzZXM7IGhlIGlzIA0KdG91Y2hlZCBhbmQgZXhxdWlzaXR7WyYqJl19ZWx5IHRocmlsbGVkIGJ5IHRoZSBwdXJlIGFuZCB2aXZpZCANCmpveSBvZiBQZXJkaXRhIGFtb25nIGhlciBmbG93ZXJzLiBOb3cgdHtbJiomXX1oYXQgU2hha3NwZXJlIA0KaXMgbW9zdCBhIGhvdXNlaG9sZGVyLCBoZSBlbnRlcnMgbW9zdCBpbnRvIHRoZSBwbGVhc3VyZXMgDQpve1smKiZdfWYgdHJ1YW50c2hpcC5cIl4gQW5kIGluIGxpa2UgbWFubmVyIGl0IGlzIHdoZW4gaGUgaXMgDQptb3N0IGdyYXZlIHRoYXQgaGUgY2Fue1smKiZdfSBzbWlsZSBtb3N0IGJyaWdodGx5LCBtb3N0IHRlbmRlci0gDQpseS4gQnV0IG9uZSBraW5kIG9mIGxhdWdodGVyIFNoYWtzcGVyZSB7WyYqJl19YXQgdGhpcyB0aW1lIA0KZm91bmQgZGV0ZXN0YWJsZSDigJQgdGhlIGxhdWdodGVyIG9mIGFuIEFudG9uaW8gb3IgYSBTZS0gDQpiYXtbJiomXX1zdGlhbiwgYmFycmVuIGFuZCBmb3JjZWQgbGF1Z2h0ZXIgb2YgbmFycm93IGhlYWRzIGFuZCANCmlycmV2ZXJlbnQgYW5kIGxvdmVse1smKiZdfWVzcyBoZWFydHMuIFRoZSBzbHkga25hdmVyeSBvZiBBdS0gDQp0b2x5Y3VzIGhhcyBub3RoaW5nIGluIGl0IHRoYXQgaXMgY3JpbWl7WyYqJl19bmFsIDsgaGVhdmVuIGlzIGhpcyANCmFjY29tcGxpY2UuIFwiIElmIEkgaGFkIGEgbWluZCB0byBiZSBob25lc3QsIEkgc2VlIEZvcnR7WyYqJl19dW5lIA0Kd291bGQgbm90IHN1ZmZlciBtZSA7IHNoZSBkcm9wcyBib290aWVzIGluIG15IG1vdXRoLlwiIA0KV2hldGhlciBTY2hpbGx7WyYqJl19ZXJcJ3MgRnJhbnogTW9vciBtYWRlIG1hbnkgcm9iYmVycyBtYXkgDQpiZSBkb3VidGZ1bC4gQnV0IGNlcnRhaW5seSBubyBwZXJzb257WyYqJl19IG9mIHNwaXJpdCBjYW4gcmVhZCANCkEgV2ludGVyKiBzIFRhbGUgd2l0aG91dCBmZWVsaW5nIGEgZGlzaG9uZXN0IGFuZCBkZWxpZ3tbJiomXX1odC0gDQpmdWwgaXRjaGluZyBvZiB0aGUgZmluZ2VycywgYW4gaW50ZXJlc3Qgbm90IHdob2xseSB2aXJ0dW91cyANCmluIGhpcyBue1smKiZdfWVpZ2hib3JcJ3MgYmxlYWNoaW5nLWdyZWVuLCBhbmQgYW4gaW1wYXRpZW5jZSB0byANCmJlIG9mZiBmb3Igb25jZSBvbiBhbiBhZHZle1smKiZdfW50dXJlIG9mIHJvdmluZyBhbmQgcm9ndWluZyANCndpdGggQXV0b2x5Y3VzLiANCg0KKiBSZWFkZXJzIG9mIE1yLiBCcm93bmluZ1wne1smKiZdfXMgXCIgRmlmaW5lIGF0IHRoZSBGYWlyIFwiIHdpbGwgYXNzb2NpYXRlIGFuIGVzb3QtIA0KZXJpYyBzZW5zZSB3aXRoIHRoZSB3b3JkIHtbJiomXX1cImhvdXNlaG9sZGVyLFwiIGFuZCB3aWxsIHJlbWVtYmVyIGhpcyBhZG1pcmFibHkgDQpicmlnaHQgYW5kIHZpZ29yb3VzIHN0dWR5IG97WyYqJl19ZiB0aGUgY2F1c2VzIG9mIG91ciBsb3ZlIG9mIHRydWFudHNoaXAgaW4gdGhlIA0Kb3BlbmluZyBzZWN0aW9ucyBvZiB0aGF0IHBvZXtbJiomXX1tLiANCg0KMzM2IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydC4gDQoNCkNIQVBURVIgVklJSS4gDQpzaGFrc3BlcmVcJ3MgbHtbJiomXX1hc3QgcGxheXMuIA0KDQpJbiB0aGVzZSBjaGFwdGVycyB3ZSBoYXZlIGJlZW4gY2hpZWZseSBjb25jZXJuZWQgd2l0aCANCm9ic2Vye1smKiZdfXZpbmcgdGhlIGdyb3d0aCBvZiBTaGFrc3BlcmVcJ3MgbWluZCBhbmQgYXJ0LiBUaGUgDQplc3NlbnRpYWwgcHJlcmVxdWlzaXRlIG9me1smKiZdfSBzdWNoIGEgc3R1ZHkgd2FzIGEgc2NoZW1lIG9mIHRoZSANCmNocm9ub2xvZ2ljYWwgc3VjY2Vzc2lvbiBvZiBTaGFrc3BlcmVcJ3Mge1smKiZdfXBsYXlzIHdoaWNoIGNvdWxkIA0KYmUgYWNjZXB0ZWQgYXMgdHJ1c3R3b3J0aHkgaW4gdGhlIG1haW4uIEJ1dCBmb3Igc3VjaCBhIA17WyYqJl19CnN0dWR5IGl0IGlzIGZvcnR1bmF0ZWx5IG5vdCBuZWNlc3NhcnkgdGhhdCB3ZSBzaG91bGQgaW4gDQpldmVyeSBjYXNlIGRldGVybXtbJiomXX1pbmUgaG93IHBsYXkgZm9sbG93ZWQgcGxheS4gSXQgd291bGQgDQpmb3IgbWFueSByZWFzb25zIGJlIGltcG9ydGFudCBhbmQgaW50e1smKiZdfWVyZXN0aW5nIHRvIGFzY2VyLSANCnRhaW4gdGhlIGRhdGUgYXQgd2hpY2ggZWFjaCB3b3JrIG9mIFNoYWtzcGVyZSBjYW1lIGludG97WyYqJl19IA0KZXhpc3RlbmNlIDsgYnV0IGFzIGEgZmFjdCB0aGlzIGhhcyBub3QgYmVlbiBhY2NvbXBsaXNoZWQsIA0KYW5kIHdlIG1heSBzYXtbJiomXX1mZWx5IHNheSB0aGF0IGl0IG5ldmVyIHdpbGwgYmUgYWNjb21wbGlzaGVkLiANClRvIHVuZGVyc3RhbmQgaW4gYWxsIGVzc2VudGlhe1smKiZdfWxzIHRoZSBoaXN0b3J5IG9mIFNoYWtzcGVyZVwncyANCmNoYXJhY3RlciBhbmQgU2hha3NwZXJlXCdzIGFydCwgd2UgaGF2ZSBvYnRhaXtbJiomXX1uZWQgd2hhdCBpcyANCmFic29sdXRlbHkgbmVjZXNzYXJ5IHdoZW4gd2UgaGF2ZSBtYWRlIG91dCB0aGUgc3VjY2VzLSANCnNpb24se1smKiZdfSBub3Qgb2YgU2hha3NwZXJlXCdzIHBsYXlzLCBidXQgb2YgU2hha3NwZXJlXCdzIGNoaWVmIA0KdmlzaW9ucyBvZiB0cnV0aCwgaGlzIHtbJiomXX1tb3N0IGludGVuc2UgbW9tZW50cyBvZiBpbnNwaXJhdGlvbiwgDQpoaXMgZ3JlYXRlciBkaXNjb3ZlcmllcyBhYm91dCBodW1hbiBse1smKiZdfWlmZS4gDQrigKIgSW4gdGhlIGhpc3Rvcnkgb2YgZXZlcnkgYXJ0aXN0IGFuZCBvZiBldmVyeSBtYW4gdGhlcmUgDQphcmUgcGVyaW97WyYqJl19ZHMgb2YgcXVpY2tlbmVkIGV4aXN0ZW5jZSwgd2hlbiBzcGlyaXR1YWwgZGlzY292LSANCmVyeSBpcyBtYWRlIHdpdGhvdXQgYW4gZXtbJiomXX1mZm9ydCwgYW5kIGF0dGFpbm1lbnQgYmVjb21lcyANCmVhc3kgYW5kIGFsbW9zdCBpbnZvbHVudGFyeS4gT25lIGRvZXMgbm90IHNle1smKiZdfWVrIGZvciANCnRydXRoLCBidXQgcmF0aGVyIGlzIHNvdWdodCBmb3IgYnkgdHJ1dGgsIGFuZCBmb3VuZCA7IG9uZSANCmRvZXMgbm97WyYqJl19dCBjb25zdHJ1Y3QgYmVhdXRpZnVsIGltYWdpbmluZ3MsIGJ1dCBiZWF1dHkgaXRzZWxmIA0KaGF1bnRzIGFuZCBzdGFydGxlcyBhbntbJiomXX1kIHdheWxheXMuIFRoZXNlIHBlcmlvZHMgbWF5IGJlIA0KYXJyaXZlZCBhdCB0aHJvdWdoIHByb2xvbmdlZCBtb3JhbCBjb25mbGlje1smKiZdfXQgYW5kIHZpY3RvcnksIA0Kb3IgdGhyb3VnaCBzb21lIHN1ZGRlbiByZXZlbGF0aW9uIG9mIGpveSwgb3IgdGhyb3VnaCANCnN1cHJ7WyYqJl19ZW1lIGFuZ3Vpc2ggYW5kIHJlbm91bmNlbWVudC4gU3VjaCBlcG9jaHMgb2YgDQoNClNoYWtzcGVyZV5zIExhc3QgUGxheXMuIDMzN3tbJiomXX0gDQoNCmVwaXJpdHVhbCBkaXNjb3ZlcnkgbGllIGJlaGluZCB0aGUgYXJ0IG9mIHRoZSBhcnRpc3QsIGl0IG1heSANCmJlIGltbWVke1smKiZdfWlhdGVseSwgb3IgaXQgbWF5IGJlIHJlbW90ZWx5LCBhbmQgb3V0IG9mIHRoZXNlIA0KaXQgc3ByaW5ncy4gQW1vbmcgbWFueSBhcnR7WyYqJl19LXByb2R1Y3RzIHNvbWUgc2luZ2xlIHdvcmsgDQp3aWxsIHBlcmhhcHMgZ2l2ZSB0byBhIHVuaXF1ZSBleHBlcmllbmNlIGl0cyBoaXtbJiomXX1naGVzdCwgaXRzIA0KYWJzb2x1dGUgZXhwcmVzc2lvbiA7IGFuZCB0aGlzLCB3aGV0aGVyIHByb2R1Y2VkIGF0IHRoZSANCm1vbWVue1smKiZdfXQgb3IgdGVuIHllYXJzIGFmdGVyd2FyZHMsIHByb3Blcmx5IGJlbG9uZ3MgdG8gdGhhdCANCmNyaXNpcyBvZiB3aGljaCBpdCBpcyB7WyYqJl19dGhlIG91dGNvbWUuIEx5cmljYWwgd3JpdGVycyB1c3VhbGx5IA0KdXR0ZXIgdGhlbXNlbHZlcyBuZWFybHkgYXQgdGhlIG1vbWVudHtbJiomXX0gd2hlbiB0aGV5IGFyZSANCnNtaXR0ZW4gd2l0aCB0aGUgc2hhcnAgc3Ryb2tlIG9mIGpveSBvciBvZiBwYWluLiBEcmFtYXRpYyANe1smKiZdfQp3cml0ZXJzLCBmb3IgdGhlIHB1cml0eSBhbmQgZmlkZWxpdHkgb2Ygd2hvc2Ugd29yayBhIGNlci0gDQp0YWluIGFsb29mbmVzcyB7WyYqJl19ZnJvbSB0aGVpciBpbmRpdmlkdWFsaXR5IGlzIG5lZWRlZCwgdXR0ZXIgDQp0aGVtc2VsdmVzIG1vcmUgb2Z0ZW4gbm90IG9uIHRoZXtbJiomXX0gbW9tZW50LCBidXQgYWZ0ZXIgYW4gDQppbnRlcnZhbCwgZHVyaW5nIHdoaWNoIHNlbGYtcG9zc2Vzc2lvbiBhbmQgc2VsZi1tYXN0e1smKiZdfWVyeSANCmhhdmUgYmVlbiBhdHRhaW5lZC4gDQoNCk5vdywgYWx0aG91Z2ggd2UgYXJlIG5vdCBpbiBhbGwgY2FzZXMgYWJsZSB0byB7WyYqJl19c2F5IGNvbi0gDQpmaWRlbnRseSB0aGlzIHBsYXkgb2YgU2hha3NwZXJlIHByZWNlZGVkIHRoYXQsIHRoZSBvcmRlciANCm9mIGhpc3tbJiomXX0gd3JpdGluZ3MgaGFzIGJlZW4gc3VmZmljaWVudGx5IGRldGVybWluZWQgdG8gZW5hYmxlIA0KdXMgdG8gdHJhY2Ugd2l0aCBjb25me1smKiZdfWlkZW5jZSB0aGUgc3VjY2Vzc2lvbiBvZiBTaGFrc3BlcmVcJ3MgDQplcG9jaHMgb2Ygc3Bpcml0dWFsIGFsdGVyYXRpb24gYW5kIGRle1smKiZdfXZlbG9wbWVudC4gV2hldGhlciANCk1hY2JldGggcHJlY2VkZWQgT3RoZWxsb14gb3IgT3RoZWxsbyBNYWNiZXRoXiBuZWVkIG5vdCB7WyYqJl19DQpncmVhdGx5IGNvbmNlcm4gdXMgOyB0aGUgcXVlc3Rpb24gaXMgb25lIGNoaWVmaXkgb2YgbGl0ZXJhcnkgDQpjdXJpb3NpdHkgO3tbJiomXX0gd2UgZG8gbm90IHVuZGVyc3RhbmQgU2hha3NwZXJlIG11Y2ggdGhlIA0KYmV0dGVyIHdoZW4gdGhlIHF1ZXN0aW9uIGhhcyBiZWVue1smKiZdfSBzZXR0bGVkIHRoYW4gd2UgZGlkIA0Kd2hpbGUgdGhlIGFuc3dlciByZW1haW5lZCBkb3VidGZ1bC4gQm90aCBwbGF5cyBiZWxvbmd7WyYqJl19LCANCmFuZCB0aGV5IGJlbG9uZyBpbiBhbiBlcXVhbCBkZWdyZWUsIHRvIG9uZSBhbmQgdGhlIHNhbWUgDQpwZXJpb2QgaW4gdGhlIHtbJiomXX1oaXN0b3J5IG9mIFNoYWtzcGVyZVwncyBtaW5kIGFuZCBhcnQsIHRvIA0Kd2hpY2ggcGVyaW9kIHdlIGNhbiB1bnF1ZXN0aW9uYWJseXtbJiomXX0gYXNzaWduIGl0cyBwbGFjZS4gSW4gDQp0aGUgcHJlc2VudCBjaGFwdGVyIFRpbW9uIG9mIEF0aGVucyBpcyBwbGFjZWQgbmVhciBUe1smKiZdfWhlIA0KVGVtcGVzdF4gYWx0aG91Z2ggaXQgaXMgcG9zc2libGUgdGhhdCBhIHBsYXksIG9yIHR3byBvciANCnRocmVlIHBsYXlzLCB7WyYqJl19aW4gdGhlIHByZWNpc2UgY2hyb25vbG9naWNhbCBvcmRlciwgbWF5IGxpZSANCmJldHdlZW4gdGhlbS4gVGhleSBhcmUgcGxhY2VkIHtbJiomXX1uZWFyIG9uZSBhbm90aGVyIGJlLSANCmNhdXNlIGluIFRpbW9uIG9mIEF0aGVucyBTaGFrc3BlcmVcJ3MgbW9vZCBvZiBpbmRpZ25hLXtbJiomXX0gDQp0aW9uIHdpdGggdGhlIHdvcmxkIGF0dGFpbnMgaXRzIGhpZ2hlc3QsIGl0cyBpZGVhbCBleHByZXNzaW9uLCANCndoaWxlIGlue1smKiZdfSBUaGUgVGVtcGVzdCB3ZSBmaW5kIHRoZSBpZGVhbCBleHByZXNzaW9uIG9mIHRoZSANCnRlbXBlciBvZiBtaW5kIHdoaWNoIHN1Y2N7WyYqJl19ZWVkZWQgaGlzIG1vb2Qgb2YgaW5kaWduYS0gDQoyMiANCg0KMzM4IFNoYWtzcGVyZSDigJQgSGlzIE1pbmQgYW5kIEFydCANCg0KdHtbJiomXX1pb24g4oCUIHRoZSBwYXRoZXRpYyB5ZXQgYXVndXN0IHNlcmVuaXR5IG9mIFNoYWtzcGVyZV5zIA0KZmluYWwgcGVyaW9kLiBGb3Ige1smKiZdfXRoZSBwdXJwb3NlcyBvZiBzdWNoIGEgc3R1ZHkgYXMgdGhpcyANCndlIG1heSBsb29rIHVwb24gVGhlIFRlbXBlc3QgYXMgU2hha3N7WyYqJl19cGVyZVwncyBsYXRlc3QgDQpwbGF5LiBQZXJoYXBzIGl0IGFjdHVhbGx5IHdhcyBzdWNoIDsgcGVyaGFwcyBBIFdpbnRlcl4gcyANClR7WyYqJl19YWxlIG9yIEN5bWhlbGluZV4gb3IgYm90aCwgbWF5IGhhdmUgZm9sbG93ZWQgaXQgaW4gcG9pbnQgDQpvZiB0aW1lLiBJdCBkb2VzIHtbJiomXX1ub3QgbWF0dGVyIGdyZWF0bHksIGZvciB0aGUgcHVycG9zZXMgb2YgDQp0aGUgcHJlc2VudCBzdHVkeSwgd2hpY2ggcHJlY2VkZWQge1smKiZdfWFuZCB3aGljaCBzdWNjZWVkZWQuIA0KVGhlc2UgdGhyZWUgcGxheXMsIGFzIHdlIHNoYWxsIHNlZSwgZm9ybSBhIGxpdHRsZSBncm97WyYqJl19dXAgYnkgDQp0aGVtc2VsdmVzLCBidXQgaXQgaXMgVGhlIFRlbXBlc3Qgd2hpY2ggZ2l2ZXMgaXRzIG1vc3QgDQpwZXJmZWN0IGV4cHtbJiomXX1yZXNzaW9uIHRvIHRoZSBzcGlyaXQgdGhhdCBicmVhdGhlcyB0aHJvdWdoIA0KdGhlc2UgdGhyZWUgcGxheXMgd2hpY2ggYnJpbmcge1smKiZdfXRvIGFuIGVuZCB0aGUgZHJhbWF0aWMgDQpjYXJlZXIgb2YgU2hha3NwZXJlIDsgYW5kIHRoZXJlZm9yZSBmb3IgdXMgaXQgaXMgU2h7WyYqJl19YWstIA0Kc3BlcmVcJ3MgbGF0ZXN0IHBsYXkuKl4gV2UgaGF2ZSBiZWVuIGVuZGVhdm9yaW5nLCBzbyB0byANCnNwZWFrLCB0byBzY2F7WyYqJl19biB0aGUgbWV0cmUgb2YgU2hha3NwZXJlXCdzIGxpZmUgOyB0byBkbyB0aGlzIA0KcmlnaHRseSwgd2UgbXVzdCBjb3VudCByYXRoZXJ7WyYqJl19IGJ5IGFjY2VudHMgdGhhbiBieSBzeWxsYS0gDQpibGVzIDsgaWYgd2UgY2FuIGZpbmQgdGhlIGxhc3QgYWNjZW50ZWQgc3lsbGFibHtbJiomXX1lLCB3ZSBoYXZlIA0KZm91bmQgdGhlIHJlYWwgY2xvc2Ugb2YgdGhlIHZlcnNlLCBhbHRob3VnaCBpdCBtYXkgYmUgYW4gDQphZGRpe1smKiZdfXRpb25hbCBzeWxsYWJsZSBvciB0d28gZm9sbG93LCBhbmQgZW5yaWNoIHRoZSB2ZXJzZSANCndpdGggYSBkeWluZyBmYWxsLiBBbmR7WyYqJl19IHNvIGluIHRoZSBjYXNlIG9mIFRpbW9uIG9mIEF0aGVucyA7IA0KaXQgbWF5IGFjdHVhbGx5IGxpZSwgaW4gcG9pbnQgb2YgdGltZXtbJiomXX0sIGF0IGEgY29uc2lkZXJhYmxlIGRpcy4gDQp0YW5jZSBmcm9tIHRob3NlIGRpc2NvdmVyaWVzIG9mIGV2aWwgaW4gbWFuXCdzIGhlYXtbJiomXX1ydCB3aGljaCANCmluc3BpcmVkIHRoZSBzb2xpbG9xdWllcyBvZiBIYW1sZXQgYW5kIHRoZSBmcmVuemllZCB1dHRlci0gDQphbmNle1smKiZdfXMgb2YgTGVhciA7IGJ1dCBpbiBUaW1vbiBpbmRpZ25hdGlvbiBoYXMgYXR0YWluZWQgaXRzIA0KDQpcJyogUHJvZmVzc29yIEluZ3Jhe1smKiZdfW0sIGluIGhpcyBwYXBlciBcIiBPbiB0aGUgKiBXZWFrLWVuZGluZ3MgXCcgb2YgU2hha3NwZXJlLFwnKiANCmFycmFuZ2VzIHRoZSBwbGF7WyYqJl19eXMgb2YgdGhlIHdlYWstZW5kaW5nIHBlcmlvZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyIDogQW50b255IA0KYW5kIENsZW9wYXRyYXtbJiomXX1eIENvcmlvbGFtY3NeIFBlcmljbGVzLCBUZW1wZXN0LCBDeW1oZWxpbmUsIFdpbnRlcl5zIFRhbGUsIFR3byANCk5vaGxlIEtpbnNte1smKiZdfWVuLCBIZW5yeSBWSUlJLiBGcm9tIGFuIGFlc3RoZXRpYyBwb2ludCBvZiB2aWV3LCBBbnRvbnkgYW5kIA0KQ2xlb3BhdHJhIGFuZCB7WyYqJl19Q29yaW9sYW51cyBzZWVtIHRvIG1lIGNvbm5lY3RlZCB3aXRoIHRoZSBwbGF5cyB0aGF0IGltbWUtIA0KZGlhdGVseSBwcmVjZWRlLHtbJiomXX0gbm90IHdpdGggdGhvc2UgdGhhdCBmb2xsb3cgdGhlbS4gUHJvZmVzc29yIEluZ3JhbSBpcyBkaXMtIA0KcG9zZWQgdG8gcGxhY2Uge1smKiZdfU1hY2JldGggaW1tZWRpYXRlbHkgYmVmb3JlIEFudG9ueSBhbmQgQ2xlb3BhdHJhLiBJIGhhZCANCmluZGVwZW5kZW50bHkgYXJyaXZ7WyYqJl19ZWQgYXQgdGhlIHNhbWUgb3Bpbmlvbi4gVGltb24gY2Fubm90IGJlIGZhciBvZmYsIGFuZCANCm11c3QsIEkgdGhpbmssIGNvbWUgYntbJiomXX1lZm9yZSBUaGUgVGVtcGVzdC4gT2JzZXJ2ZSB0aGF0IFBlcmljbGVzLCBUd28gTm9obGUgDQpLaW5zbWVuLCBhbmQgSGVucnkgVklJe1smKiZdfUkgYXJlIFNoYWtzcGVyaWFuIGZyYWdtZW50cy4gVGh1cyB0aGUgVGVtcGVzdCwgDQpXaW50ZXJcJ3MgVGFsZSwgYW5kIEN5bWJlbGlue1smKiZdfWUgcmVtYWluIGFzIHRoZSB0aHJlZSBjb21wbGV0ZSBwbGF5cyB3aGljaCByZXByZS0gDQpzZW50IHRoZSBmaW5hbCBwZXJpb2Qgb2Z7WyYqJl19IFNoYWtzcGVyZVwncyBhdXRob3JzaGlwLiBJIHRyZWF0IFRpbW9uLCBpbiB0aGlzIGNoYXAtIA0KdGVyLCBhcyBlYXJsaWVyIHRoYW57WyYqJl19IHRoZXNlLCBidXQgbm90IGEgZ3JlYXQgZGVhbCBlYXJsaWVyLiANCg0KU2hha3NwZXJecyBMYXN0IFBsYXlzLiAzMzkgDQoNCmlkZXtbJiomXX1hbCBleHByZXNzaW9uIDsgaXQgaXMgdGhlIGRlY3VtYW4gd2F2ZSB3aGljaCBzZXRzIA0Kc2hvcmV3YXJkIGZyb20gdGhhdCBpbmZpe1smKiZdfW5pdGUgYW5kIHN0b3JteSBzZWEgb2YgaHVtYW4gDQpwYXNzaW9uLiANCg0KVGltb24gb2YgQXRoZW5zXiBhbHRob3VnaCBkZXNlcnZ7WyYqJl19ZWRseSBvbmUgb2YgdGhlIGxlYXN0IA0KcG9wdWxhciBvZiBTaGFrc3BlcmVcJ3MgcGxheXMsIGJlbG9uZ3MgdG8gaGlzIGJlc3QgcGV7WyYqJl19cmlvZCwgDQphbmQgd2FzIHdyaXR0ZW4gYnkgdGhlIHBvZXQgd2l0aCBubyBoYWxmLWhlYXJ0ZWQgcmVnYXJkIA0KZm9yIGhpcyBzdXtbJiomXX1iamVjdC4gV2hldGhlciBTaGFrc3BlcmUgd3JvdGUgaGlzIHBvcnRpb24gDQpmaXJzdCwgYW5kIGxlZnQgaXQgdW5maW5pc2hlZCB0e1smKiZdfW8gYmUgY29tcGxldGVkIGJ5IGEgbGF0ZXIgDQpkcmFtYXRpc3Qg4oCUIHRoZSBjb25qZWN0dXJlIG9mIE1yLiBGbGVheSA7IHdoZXR7WyYqJl19aGVyIFNoYWstIA0Kc3BlcmVcJ3MgcGxheSB3YXMgY3V0IGRvd24gYW5kIGFsdGVyZWQgZm9yIHRoZSBzdGFnZSwgdG8gDQpwbGVhc2V7WyYqJl19IGEgcHVibGljIHdoaWNoIGRlbWFuZGVkIGNvbWVkeSBhbmQgdGhlIGNvbmNlaXRzIA0Kb2YgY2xvd25hZ2UsIGVpdGhlciBkdXJpbntbJiomXX1nIHRoZSBwb2V0XCdzIGxpZmV0aW1lIG9yIGluIHRoZSANCmludGVydmFsIGJldHdlZW4gaGlzIGRlYXRoIGFuZCB0aGUgYXBwZWFyYXtbJiomXX1uY2Ugb2YgdGhlIGZpcnN0IA0KZm9saW8gO14gb3Igd2hldGhlciBTaGFrc3BlcmUgd29ya2VkIHVwb24gdGhlIG1hdGVyaWFsIA0Ke1smKiZdfQ0KKiBTZWUgdGhlIGxhYm9yaW91cyBhcnRpY2xlIGJ5IE4uIERlbGl1cywgXCIgVWViZXIgU2hha2VzcGVhcmVcJ3MgVGltb24gb2YgDXtbJiomXX0KQXRoZW5zLFwiIEphaHJiaWljaCBkZXIgZGV1dHNjaGVuIFNoYWtlc3BlYXJlLSBHZXNlbGxzY2hhZnQsIHZvbC4gaWkuIDsgYW5kIHtbJiomXX10aGF0IA0KYnkgQi4gVHNjaGlzY2h3aXR6LCBcIiBUaW1vbiB2b24gQXRoZW4uIEVpbiBrcml0aXNjaGVyIFZlcnN1Y2gsXCIgSmFocmh7WyYqJl19dWNoeSANCnZvbC4gaXYuIFRoZXJlIGlzIHlldCBhbm90aGVyIGFuZCBwbGF1c2libGUgdGhlb3J5LCBvcmlnaW5hdGVkIGJ5IFVscntbJiomXX1pY2kgYW5kIA0KbW9kaWZpZWQgYnkgS2FybCBFbHplLiBJbiB0aGUgZmlyc3QgZm9saW8gVGltb24gZW5kcyB1cG9uIHAuIDk5LiBBe1smKiZdfSB2YWNhbnQgDQpwYWdlICgxMDApIGZvbGxvd3MuIFRoZW4gaW1tZWRpYXRlbHkgY29tZXMgSnVsaXVzIENjZXNhcl4gYmVnaW5uaW57WyYqJl19ZyBub3QgDQpvbiBwLiAxMDEsIGJ1dCBvbiBwLiAxMDksIEFsdGhvdWdoIHRoZXJlIGFyZSBpcnJlZ3VsYXJpdGllcyBpbiB0aGUgcHtbJiomXX1hZ2luYXRpb24gDQpvZiB0aGUgZmlyc3QgZm9saW8sIHN1Y2ggYSBnYXAgYmV0d2VlbiB0d28gcGxheXMgZG9lcyBub3Qgb2NjdXIge1smKiZdfWVsc2V3aGVyZSBpbiANCnRoZSB2b2x1bWUuIFNoZWV0IGlpIGlzIHdhbnRpbmcuIFRpbW83aSBlbmRzIHdpdGggc2hlZXQgaGggOyB7WyYqJl19SmlkaXVzIENjZXNhciANCmJlZ2lucyB3aXRoIGtrLiBVbHJpY2kgaXMgb2Ygb3BpbmlvbiB0aGF0IHRoZSBwcmludGluZyBvZiBKdXtbJiomXX1saXVzIENjZXNhciB3YXMgDQpiZWd1biBiZWZvcmUgdGhhdCBvZiBUaW1vbiB3YXMgZmluaXNoZWQsIHByb2JhYmx5IGJlY2F1c2Uge1smKiZdfXRoZSBtYW51c2NyaXB0IA0Kb2YgVGltb24gd2FzIGltcGVyZmVjdCwgYW5kIHRoZSBkZWZpY2llbmNpZXMgY291bGQgbm90IGJlIGl7WyYqJl19bW1lZGlhdGVseSBzdXAtIA0KcGxpZWQuIFNoYWtzcGVyZVwncyBtYW51c2NyaXB0IHdhcyBub3QgZm9ydGhjb21pbmc7IHRoZSBwbGF7WyYqJl19eSBoYWQgdG8gYmUgDQptYWRlIHVwIGZyb20gdGhlIHNjYXR0ZXJlZCBwY