From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 88004 invoked by alias); 12 Sep 2017 15:34:47 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 87992 invoked by uid 89); 12 Sep 2017 15:34:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,MIME_BASE64_BLANKS,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=enforcement, Enforcement, igor, lf X-HELO: mga07.intel.com Received: from mga07.intel.com (HELO mga07.intel.com) (134.134.136.100) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 12 Sep 2017 15:34:43 +0000 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga105.jf.intel.com with ESMTP; 12 Sep 2017 08:34:41 -0700 X-ExtLoop1: 1 Received: from irsmsx103.ger.corp.intel.com ([163.33.3.157]) by orsmga001.jf.intel.com with ESMTP; 12 Sep 2017 08:34:40 -0700 Received: from irsmsx102.ger.corp.intel.com ([169.254.2.59]) by IRSMSX103.ger.corp.intel.com ([169.254.3.49]) with mapi id 14.03.0319.002; Tue, 12 Sep 2017 16:34:39 +0100 From: "Tsimbalist, Igor V" To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , "Tsimbalist, Igor V" Subject: RE: 0001-Part-1.-Add-generic-part-for-Intel-CET-enabling Date: Tue, 12 Sep 2017 15:34:00 -0000 Message-ID: References: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00712.txt.bz2 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUc2ltYmFs aXN0LCBJZ29yIFYNCj4gU2VudDogRnJpZGF5LCBBdWd1c3QgMTgsIDIwMTcg NDo0MyBQTQ0KPiBUbzogJ1JpY2hhcmQgQmllbmVyJyA8cmljaGFyZC5ndWVu dGhlckBnbWFpbC5jb20+DQo+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9y ZzsgVHNpbWJhbGlzdCwgSWdvciBWDQo+IDxpZ29yLnYudHNpbWJhbGlzdEBp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiAwMDAxLVBhcnQtMS4tQWRkLWdl bmVyaWMtcGFydC1mb3ItSW50ZWwtQ0VULWVuYWJsaW5nDQo+IA0KPiA+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogUmljaGFyZCBC aWVuZXIgW21haWx0bzpyaWNoYXJkLmd1ZW50aGVyQGdtYWlsLmNvbV0NCj4g PiBTZW50OiBGcmlkYXksIEF1Z3VzdCAxOCwgMjAxNyAzOjUzIFBNDQo+ID4g VG86IFRzaW1iYWxpc3QsIElnb3IgViA8aWdvci52LnRzaW1iYWxpc3RAaW50 ZWwuY29tPg0KPiA+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiA+ IFN1YmplY3Q6IFJlOiAwMDAxLVBhcnQtMS4tQWRkLWdlbmVyaWMtcGFydC1m b3ItSW50ZWwtQ0VULWVuYWJsaW5nDQo+ID4NCj4gPiBPbiBGcmksIEF1ZyAx OCwgMjAxNyBhdCAzOjExIFBNLCBUc2ltYmFsaXN0LCBJZ29yIFYNCj4gPiA8 aWdvci52LnRzaW1iYWxpc3RAaW50ZWwuY29tPiB3cm90ZToNCj4gPiA+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IFJpY2hh cmQgQmllbmVyIFttYWlsdG86cmljaGFyZC5ndWVudGhlckBnbWFpbC5jb21d DQo+ID4gPj4gU2VudDogVHVlc2RheSwgQXVndXN0IDE1LCAyMDE3IDM6NDMg UE0NCj4gPiA+PiBUbzogVHNpbWJhbGlzdCwgSWdvciBWIDxpZ29yLnYudHNp bWJhbGlzdEBpbnRlbC5jb20+DQo+ID4gPj4gQ2M6IGdjYy1wYXRjaGVzQGdj Yy5nbnUub3JnDQo+ID4gPj4gU3ViamVjdDogUmU6IDAwMDEtUGFydC0xLi1B ZGQtZ2VuZXJpYy1wYXJ0LWZvci1JbnRlbC1DRVQtZW5hYmxpbmcNCj4gPiA+ Pg0KPiA+ID4+IE9uIFR1ZSwgQXVnIDEsIDIwMTcgYXQgMTA6NTYgQU0sIFRz aW1iYWxpc3QsIElnb3IgVg0KPiA+ID4+IDxpZ29yLnYudHNpbWJhbGlzdEBp bnRlbC5jb20+IHdyb3RlOg0KPiA+ID4+ID4gUGFydCMxLiBBZGQgZ2VuZXJp YyBwYXJ0IGZvciBJbnRlbCBDRVQgZW5hYmxpbmcuDQo+ID4gPj4gPg0KPiA+ ID4+ID4gVGhlIHNwZWMgaXMgYXZhaWxhYmxlIGF0DQo+ID4gPj4gPg0KPiA+ ID4+ID4gaHR0cHM6Ly9zb2Z0d2FyZS5pbnRlbC5jb20vc2l0ZXMvZGVmYXVs dC9maWxlcy9tYW5hZ2VkLzRkLzJhL2NvbnQNCj4gPiA+PiA+IHJvIGwtZiBs b3ctZW5mb3JjZW1lbnQtdGVjaG5vbG9neS1wcmV2aWV3LnBkZg0KPiA+ID4+ ID4NCj4gPiA+PiA+IEhpZ2gtbGV2ZWwgZGVzaWduLg0KPiA+ID4+ID4gLS0t LS0tLS0tLS0tLS0tLS0tDQo+ID4gPj4gPg0KPiA+ID4+ID4gQSBwcm9wb3Nh bCBpcyB0byBpbnRyb2R1Y2UgYSB0YXJnZXQgaW5kZXBlbmRlbnQgZmxhZw0K PiA+ID4+ID4gLWZpbnN0cnVtZW50LWNvbnRyb2wtZmxvdyB3aXRoIGEgc2Vt YW50aWMgdG8gaW5zdHJ1bWVudCBhIGNvZGUgdG8NCj4gPiA+PiA+IGNvbnRy b2wgdmFsaWRuZXNzIG9yIGludGVncml0eSBvZiBjb250cm9sLWZsb3cgdHJh bnNmZXJzIHVzaW5nDQo+ID4gPj4gPiBqdW1wIGFuZCBjYWxsIGluc3RydWN0 aW9ucy4gVGhlIG1haW4gZ29hbCBpcyB0byBkZXRlY3QgYW5kIGJsb2NrDQo+ ID4gPj4gPiBhIHBvc3NpYmxlIG1hbHdhcmUgZXhlY3V0aW9uIHRocm91Z2gg dHJhbnNmZXIgdGhlIGV4ZWN1dGlvbiB0bw0KPiA+ID4+ID4gdW5rbm93biB0 YXJnZXQgYWRkcmVzcy4gSW1wbGVtZW50YXRpb24gY291bGQgYmUgZWl0aGVy IHNvZnR3YXJlDQo+ID4gPj4gPiBvciB0YXJnZXQgYmFzZWQuIEFueSB0YXJn ZXQgcGxhdGZvcm1zIGNhbiBwcm92aWRlIHRoZWlyDQo+ID4gPj4gPiBpbXBs ZW1lbnRhdGlvbiBmb3IgaW5zdHJ1bWVudGF0aW9uIHVuZGVyIHRoaXMgb3B0 aW9uLg0KPiA+ID4+ID4NCj4gPiA+PiA+IFdoZW4gdGhlIC1maW5zdHJ1bWVu dC1jb250cm9sLWZsb3cgZmxhZyBpcyBzZXQgZWFjaA0KPiA+ID4+ID4gaW1w bGVtZW50YXRpb24gaGFzIHRvIGNoZWNrIGlmIGEgc3VwcG9ydCBleGlzdHMg Zm9yIGEgdGFyZ2V0DQo+ID4gPj4gPiBwbGF0Zm9ybSBhbmQgcmVwb3J0IGFu IGVycm9yIGlmIG5vIHN1cHBvcnQgaXMgZm91bmQuDQo+ID4gPj4gPg0KPiA+ ID4+ID4gVGhlIGNvbXBpbGVyIHNob3VsZCBpbnN0cnVtZW50IGFueSBjb250 cm9sLWZsb3cgdHJhbnNmZXIgcG9pbnRzDQo+ID4gPj4gPiBpbiBhIHByb2dy YW0gKGV4LiBjYWxsL2ptcC9yZXQpIGFzIHdlbGwgYXMgYW55IGxhbmRpbmcg cGFkcywNCj4gPiA+PiA+IHdoaWNoIGFyZSB0YXJnZXRzIG9mIGZvciBjb250 cm9sLWZsb3cgdHJhbnNmZXJzLg0KPiA+ID4+ID4NCj4gPiA+PiA+IEEgbmV3 ICdub3RyYWNrJyBhdHRyaWJ1dGUgaXMgaW50cm9kdWNlZCB0byBwcm92aWRl IGhhbmQgdHVuaW5nDQo+IHN1cHBvcnQuDQo+ID4gPj4gPiBUaGUgYXR0cmli dXRlIGRpcmVjdHMgdGhlIGNvbXBpbGVyIHRvIHNraXAgYSBjYWxsIHRvIGEg ZnVuY3Rpb24NCj4gPiA+PiA+IGFuZCBhIGZ1bmN0aW9uJ3MgbGFuZGluZyBw YWQgZnJvbSBpbnN0cnVtZW50YXRpb24gKHRyYWNraW5nKS4gVGhlDQo+ID4g Pj4gPiBhdHRyaWJ1dGUgY2FuIGJlIHVzZWQgZm9yIGZ1bmN0aW9uIGFuZCBw b2ludGVyIHRvIGZ1bmN0aW9uIHR5cGVzLA0KPiA+ID4+ID4gb3RoZXJ3aXNl IGl0IHdpbGwgYmUgaWdub3JlZC4gVGhlIGF0dHJpYnV0ZSBpcyBzYXZlZCBp biBhIHR5cGUNCj4gPiA+PiA+IGFuZCBwcm9wYWdhdGVkIHRvIGEgR0lNUExF IGNhbGwgc3RhdGVtZW50IGFuZCBsYXRlciB0byBhIGNhbGwNCj4gaW5zdHJ1 Y3Rpb24uDQo+ID4gPj4gPg0KPiA+ID4+ID4gQ3VycmVudGx5IGFsbCBwbGF0 Zm9ybXMgZXhjZXB0IGkzODYgd2lsbCByZXBvcnQgdGhlIGVycm9yIGFuZCBk bw0KPiA+ID4+ID4gbm8gaW5zdHJ1bWVudGF0aW9uLiBpMzg2IHdpbGwgcHJv dmlkZSB0aGUgaW1wbGVtZW50YXRpb24gYmFzZWQgb24NCj4gPiA+PiA+IGEg c3BlY2lmaWNhdGlvbiBwdWJsaXNoZWQgYnkgSW50ZWwgZm9yIGEgbmV3IHRl Y2hub2xvZ3kgY2FsbGVkDQo+ID4gPj4gPiBDb250cm9sLWZsb3cgRW5mb3Jj ZW1lbnQgVGVjaG5vbG9neSAoQ0VUKS4NCj4gPiA+Pg0KPiA+ID4+IGRpZmYg LS1naXQgYS9nY2MvZ2ltcGxlLmMgYi9nY2MvZ2ltcGxlLmMgaW5kZXggNDc5 ZjkwYy4uMmU0YWIyZA0KPiA+ID4+IDEwMDY0NA0KPiA+ID4+IC0tLSBhL2dj Yy9naW1wbGUuYw0KPiA+ID4+ICsrKyBiL2djYy9naW1wbGUuYw0KPiA+ID4+ IEBAIC0zNzgsNiArMzc4LDIzIEBAIGdpbXBsZV9idWlsZF9jYWxsX2Zyb21f dHJlZSAodHJlZSB0KQ0KPiA+ID4+ICAgIGdpbXBsZV9zZXRfbm9fd2Fybmlu ZyAoY2FsbCwgVFJFRV9OT19XQVJOSU5HICh0KSk7DQo+ID4gPj4gICAgZ2lt cGxlX2NhbGxfc2V0X3dpdGhfYm91bmRzIChjYWxsLCBDQUxMX1dJVEhfQk9V TkRTX1AgKHQpKTsNCj4gPiA+Pg0KPiA+ID4+ICsgIGlmIChmbmRlY2wgPT0g TlVMTF9UUkVFKQ0KPiA+ID4+ICsgICAgew0KPiA+ID4+ICsgICAgICAvKiBG aW5kIHRoZSB0eXBlIG9mIGFuIGluZGlyZWN0IGNhbGwuICAqLw0KPiA+ID4+ ICsgICAgICB0cmVlIGFkZHIgPSBDQUxMX0VYUFJfRk4gKHQpOw0KPiA+ID4+ ICsgICAgICBpZiAoVFJFRV9DT0RFIChhZGRyKSAhPSBGVU5DVElPTl9ERUNM KQ0KPiA+ID4+ICsgICAgICAgew0KPiA+ID4+ICsgICAgICAgICB0cmVlIGZu dHlwZSA9IFRSRUVfVFlQRSAoYWRkcik7DQo+ID4gPj4gKyAgICAgICAgIGdj Y19hc3NlcnQgKFBPSU5URVJfVFlQRV9QIChmbnR5cGUpKTsNCj4gPiA+PiAr ICAgICAgICAgZm50eXBlID0gVFJFRV9UWVBFIChmbnR5cGUpOw0KPiA+ID4+ ICsNCj4gPiA+PiArICAgICAgICAgLyogQ2hlY2sgaWYgaXRzIHR5cGUgaGFz IHRoZSBuby10cmFjayBhdHRyaWJ1dGUgYW5kIHByb3BhZ2F0ZQ0KPiA+ID4+ ICsgICAgICAgICAgICBpdCB0byB0aGUgQ0FMTCBpbnNuLiAgKi8NCj4gPiA+ PiArICAgICAgICAgaWYgKGxvb2t1cF9hdHRyaWJ1dGUgKCJub3RyYWNrIiwg VFlQRV9BVFRSSUJVVEVTIChmbnR5cGUpKSkNCj4gPiA+PiArICAgICAgICAg ICBnaW1wbGVfY2FsbF9zZXRfd2l0aF9ub3RyYWNrIChjYWxsLCBUUlVFKTsN Cj4gPiA+PiArICAgICAgIH0NCj4gPiA+PiArICAgIH0NCj4gPiA+Pg0KPiA+ ID4+IHRoaXMgbWVhbnMgbm90cmFjayBpcyBub3QgcmVjb2duaXplZCBpZiBm bmRlY2wgaXMgbm90IE5VTEwuICBOb3RlDQo+ID4gPj4gdGhhdCBvbmx5IHRo ZSB0d28gY2FsbGVycyBrbm93IHRoZSByZWFsIGZ1bmN0aW9uIHR5cGUgaW4g ZWZmZWN0DQo+ID4gPj4gKHRoZXkgY2FsbCBnaW1wbGVfY2FsbF9zZXRfZm50 eXBlIHdpdGggaXQpLiAgSSBzdWdnZXN0IHRvIHBhc3MgZG93bg0KPiA+ID4+ IHRoYXQgdHlwZSB0byBnaW1wbGVfYnVpbGRfY2FsbF9mcm9tX3RyZWUgYW5k IG1vdmUgdGhlDQo+ID4gPj4gZ2ltcGxlX2NhbGxfc2V0X2ZudHlwZSBjYWxs IHRoZXJlIGFzIHdlbGwuICBBbmQgc2ltcGx5IHVzZSB0aGUgdHlwZQ0KPiA+ ID4+IGZvciB0aGUNCj4gPiBhYm92ZS4NCj4gPiA+DQo+ID4gPiBUaGUgYmVz dCB3YXkgdG8gc2F5IGlzIG5vdHJhY2sgaXMgbm90IHByb3BhZ2F0ZWQgaWYg Zm5kZWNsIGlzIG5vdCBOVUxMLg0KPiA+IEZuZGVjbCwgaWYgbm90IE5VTEws IGlzIGEgZGlyZWN0IGNhbGwgYW5kIG5vdHJhY2sgaXMgbm90IGFwcGxpY2Fi bGUNCj4gPiBmb3Igc3VjaCBjYWxscy4gSSB3aWxsIGFkZCBhIGNvbW1lbnQg YmVmb3JlIHRoZSBpZi4NCj4gPg0KPiA+IEhtbS4gIEJ1dCB3aGF0IGRvZXMg dGhpcyBtZWFuPyAgSSBndWVzcyBkaXJlY3QgY2FsbHMgYXJlIGFsd2F5cw0K PiA+ICdub3RyYWNrJyB0aGVuIGFuZCB0aHVzIHdlJ3JlIGZpbmUgdG8gaWdu b3JlIGl0Lg0KPiANCj4gWWVzLCB0aGF0J3MgY29ycmVjdCAtIGRpcmVjdCBj YWxscyBhcmUgYWx3YXlzICdub3RyYWNrJyBhbmQgd2UgYXJlIGlnbm9yaW5n IGl0IGluDQo+IGNhbGxzLg0KPiANCj4gPiA+IEkgd291bGQgbGlrZSB0byBw cm9wb3NlIG1vZGlmeWluZyB0aGUgZXhpc3RpbmcgY29kZSB3aXRob3V0IGNo YW5naW5nDQo+ID4gaW50ZXJmYWNlcy4gVGhlIGlkZWEgaXMgdGhhdCBhdCB0 aGUgdGltZSB0aGUgbm90cmFjayBpcyBwcm9wYWdhdGVkDQo+ID4gKHRoZSBj b2RlIHNuaXBwZXQgYWJvdmUpIHRoZSBnaW1wbGUgY2FsbCB3YXMgY3JlYXRl ZCBhbmQgdGhlIGNvcnJlY3QNCj4gPiB0eXBlIHdhcyBhc3NpZ25lZCB0byB0 aGUgJ2NhbGwnIGV4YWN0bHkgYnkgZ2ltcGxlX2NhbGxfc2V0X2ZudHlwZS4g TXkNCj4gPiBwcm9wb3NhbCBpcyB0byBnZXQgdGhlIHR5cGUgb3V0IG9mIHRo ZSBnaW1wbGUgJ2NhbGwnIChsaWtlDQo+ID4gZ2ltcGxlX2NhbGxfZm50eXBl KSBpbnN0ZWFkIG9mIHRoZSB0cmVlICd0Jy4gSXMgaXQgcmlnaHQ/DQo+ID4N Cj4gPiBZZXMsIGJ1dCBub3RlIHRoYXQgdGhlIHR5cGUgb24gdGhlIGdpbXBs ZSAnY2FsbCcgaXNuJ3QgeWV0IGNvcnJlY3RseQ0KPiA+IHNldCAob25seSB0 aGUgY2FsbGVyIGRvZXMgdGhhdCkuICBUaGUgZ2ltcGxlX2J1aWxkX2NhbGxf ZnJvbV90cmVlIGlzDQo+ID4gcmVhbGx5IGFuIHVnbHkgdGhpbmcgYW5kIGl0 IHNob3VsZCBiZSBwcml2YXRpemVkIGluc2lkZSB0aGUgZ2ltcGxpZmllci4u Lg0KPiANCj4gSSdsbCBsb29rIGludG8gdGhpcyBtb3JlIGNhcmVmdWxseS4g SXQgbG9va3MgbGlrZSBpdCBoYXMgdG8gYmUgcmV3cml0dGVuIGFzIHlvdQ0K PiBzdWdnZXN0ZWQuDQpJJ3ZlIHJld3JvdGUgdGhlIGNvZGUgYXMgeW91IHN1 Z2dlc3RlZC4gVGhlcmUgYXJlIGNvdXBsZSBjYWxscyB0byBnaW1wbGVfYnVp bGRfY2FsbF9mcm9tX3RyZWUgZnJvbQ0KYy9naW1wbGUtcGFyc2VyLmMuIEFz IEkgaW50cm9kdWNlZCBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IGluIGdpbXBs ZV9idWlsZF9jYWxsX2Zyb21fdHJlZSBJIHBhc3MgTlVMTA0KYXJndW1lbnQg Zm9yIHRoZXNlIGNhc2VzIGFuZCBjaGVjayBmb3IgTlVMTCBpbnNpZGUgZ2lt cGxlX2J1aWxkX2NhbGxfZnJvbV90cmVlLg0KDQo+ID4gPj4gK3N0YXRpYyBp bmxpbmUgYm9vbA0KPiA+ID4+ICtnaW1wbGVfY2FsbF93aXRoX25vdHJhY2tf cCAoY29uc3QgZ2ltcGxlICpncykgew0KPiA+ID4+ICsgIGNvbnN0IGdjYWxs ICpnYyA9IEdJTVBMRV9DSEVDSzI8Y29uc3QgZ2NhbGwgKj4gKGdzKTsNCj4g PiA+PiArICByZXR1cm4gZ2ltcGxlX2NhbGxfd2l0aF9ub3RyYWNrX3AgKGdj KTsgfQ0KPiA+ID4+DQo+ID4gPj4gcGxlYXNlIGRvIG5vdCBhZGQgZ2ltcGxl ICogb3ZlcmxvYWRzIGZvciBuZXcgQVBJcywgaW5zdGVhZCBtYWtlDQo+ID4g Pj4gc3VyZSB0byBwYXNzIGRvd24gZ2NhbGxzIGF0IGNhbGxlcnMuDQo+ID4g Pg0KPiA+ID4gT2ssIEkgd2lsbCByZW1vdmUuDQpGaXhlZC4NCg0KPiA+ID4+ IFBsZWFzZSBjaGFuZ2UgdGhlIG5hbWVzIHRvIG9taXQgJ3dpdGhfJywgdGh1 cyBqdXN0IG5vdHJhY2sgYW5kDQo+ID4gPj4gR0ZfQ0FMTF9OT1RSQUNLLg0K PiA+ID4NCj4gPiA+IE9rLCBJIHdpbGwgcmVuYW1lLg0KRml4ZWQuDQoNCj4g PiA+PiBJIHRoaW5rICdub3RyYWNrJyBpcyBzb21ld2hhdCB1bnNwZWNpZmlj IG9mIGEgbmFtZSwgd2hhdCBwcmV2ZW50ZWQNCj4gPiA+PiB5b3UgdG8gdXNl ICdub2NldCc/DQo+ID4gPg0KPiA+ID4gQWN0dWFsbHkgaXQncyBzcGVjaWZp Yy4gVGhlIEhXIHdpbGwgaGF2ZSBhIHByZWZpeCB3aXRoIGV4YWN0bHkgdGhp cw0KPiA+ID4gbmFtZSBhbmQNCj4gPiB0aGUgc2FtZSBtZWFuaW5nLiBBbmQg SSB0aGluaywgd2hhdCBpcyBtb3JlIGltcG9ydGFudCwgJ3RyYWNrL25vdHJh Y2snDQo+ID4gZ2l2ZXMgYmV0dGVyIHNlbWFudGljIGZvciBhIHVzZXIuIENF VCBpcyBhIG5hbWUgYm91bmQgd2l0aCBJbnRlbA0KPiA+IHNwZWNpZmljIHRl Y2hub2xvZ3kuDQo+ID4NCj4gPiBCdXQgJ3RyYWNraW5nJyBzb21ldGhpbmcg aXMgcXVpdGUgdW5zcGVjaWZpYy4gIFRyYWNraW5nIGZvciB3aGF0Pw0KPiA+ ICdub192ZXJpZnlfY2YnIChha2EgZG8gbm90IHZlcmlmeSBjb250cm9sIGZs b3cpIG1heWJlPw0KPiANCj4gVGhlIG5hbWUganVzdCAgaGFzIHRvIHN1Z2dl c3QgdGhlIHJpZ2h0IHNlbWFudGljLiAnbm9fdmVyaWZ5X2NmJyBpcyBnb29k LCBsZXQncw0KPiB1c2UgaXQgdW5sZXNzIGRpZmZlcmVudCBuYW1lIGFwcGVh cnMuDQpJIGhhdmUgcmVuYW1lZCBhbGwgbmV3bHkgaW50cm9kdWNlZCBmdW5j dGlvbiBhbmQgbWFjcm8gbmFtZXMgdG8gdXNlICdub3ZlcmlmeV9jZicuIEJ1 dCBJIHN0aWxsIGtlZXANCnRoZSBhdHRyaWJ1dGUgbmFtZSBhcyAnbm90cmFj aycuIEhpc3RvcmljYWxseSB0aGUgYXR0cmlidXRlIG5hbWUgZm9sbG93cyB0 aGUgcHVibGljIENFVCBzcGVjaWZpY2F0aW9uLA0Kd2hpY2ggdXNlcyAnbm8t dHJhY2sgcHJlZml4JyB3b3JkaW5nLiBJcyBpdCBvayB0byBrZWVwIHN1Y2gg YXR0cmlidXRlIG5hbWU/DQoNClRoYW5rcywNCklnb3INCg0KPiA+ID4+IEFu eSBpZGVhIGhvdyB0byBpbXBsZW1lbnQgYSBzb2Z0d2FyZS1iYXNlZCBzb2x1 dGlvbiBlZmZpY2llbnRseT8NCj4gPiA+PiBDcmVhdGluZyBhIHRhYmxlIG9m IHZhbGlkIGRlc3RpbmF0aW9uIGFkZHJlc3NlcyBpbiBhIHNwZWNpYWwNCj4g PiA+PiBzZWN0aW9uIHNob3VsZCBiZSBwb3NzaWJsZSB3aXRob3V0IHRvbyBt dWNoIHdvcmssIGFtIEkgcmlnaHQgaW4NCj4gPiA+PiB0aGF0IG9ubHkgaW5k aXJlY3QgY29udHJvbCB0cmFuc2ZlciBpcyBjaGVja2VkPyAgVGh1cyBDRVQg YXNzdW1lcw0KPiA+ID4+IHRoZSBjb2RlIGl0c2VsZiBjYW5ub3QgYmUgY2hh bmdlZCAoYW5kIHRodXMgdGhlIHN0YWNrIGlzbid0IGV4ZWN1dGFibGUpPw0K PiA+ID4NCj4gPiA+IFllcywgeW91ciBpZGVhIGxvb2tzIHJpZ2h0LiBNaWNy b3NvZnQgaGFzIHB1Ymxpc2hlZCB0aGUgb3B0aW9uDQo+ID4gPiAvZ3VhcmQ6 Y2YgYW5kDQo+ID4gYWNjb3JkaW5nIHRvIHRoZSBkZXNjcmlwdGlvbiBpdCB1 c2VzIHNpbWlsYXIgaWRlYSBvZiBnYXRoZXJpbmcNCj4gPiBpbmZvcm1hdGlv biBhYm91dCBjb250cm9sLXRyYW5zZmVyIHRhcmdldHMuIFRoaXMgaW5mbyBp cyBrZXB0IGluIHRoZQ0KPiA+IGJpbmFyeS4gQW5kICd5ZXMnIGZvciBsYXN0 IHR3byB5b3VyIHF1ZXN0aW9ucy4NCj4gPg0KPiA+IE9rLCBzbyBpZiB3ZSBn ZW5lcmF0ZSBhIHNwZWNpYWwgc2VjdGlvbiB3aXRoIHNheSAnY2V0dGFibGUn IGFzIHN5bWJvbA0KPiA+IHRoZSB2ZXJpZmljYXRpb24gcnVudGltZSB3b3Vs ZCBiZSBpbnZva2VkIGF0IGVhY2ggaW5kaXJlY3QgY2FsbCBzaXRlDQo+ID4g d2l0aCB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyBhbmQgaXQgd291bGQgc2Vh cmNoIHRoZSB0YWJsZSBhbmQgYWJvcnQNCj4gPiBpZiB0aGUgZGVzdGluYXRp b24gaXMgbm90IHJlY29yZGVkLiAgV2UgcHJvYmFibHkgaGF2ZSB0byBzdXBw b3J0IGEgc2V0DQo+ID4gb2YgQ0VUIHRhYmxlcyBhbmQgcmVnaXN0ZXIgdGhl bSB0byBzdXBwb3J0IHNoYXJlZCBsaWJyYXJpZXMgKGFuZCBjcm9zcw0KPiBz aGFyZWQgb2JqZWN0IGluZGlyZWN0IGNhbGxzKS4NCj4gPg0KPiA+IERvIHlv dSBwbGFuIHRvIGNvbnRyaWJ1dGUgc3RoIGxpa2UgdGhpcz8gIE1heWJlIHdp dGhpbiB0aGUgc2FuaXRpemVyDQo+ID4gZnJhbWV3b3JrPw0KPiANCj4gSSBk byBub3QgaGF2ZSBwbGFucyBmb3IgYW55IHN3IGJhc2VkIGltcGxlbWVudGF0 aW9uLiBNeSBwbGFuIGlzIHRvIGludHJvZHVjZQ0KPiB0aGUgY29uY2VwdCBp biBnY2MgYW5kIG1ha2UgaXRzIGVuYWJsaW5nIGZvciBJbnRlbCBDRVQuIEV2 ZW4gd2l0aCBteSBjdXJyZW50DQo+IHBsYW5zIG1vcmUgd29yayBuZWVkcyB0 byBiZSBkb25lIHRvIGNvbXBsZXRlbHkgZW5hYmxlIENFVC4NCj4gDQo+IFRo YW5rcywNCj4gSWdvcg0KPiANCj4gPiBUaGFua3MsDQo+ID4gUmljaGFyZC4N Cj4gPg0KPiA+ID4gVGhhbmtzLA0KPiA+ID4gSWdvcg0KPiA+ID4NCj4gPiA+ PiBUaGFua3MsDQo+ID4gPj4gUmljaGFyZC4NCg==