Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:63466 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 60877 invoked from network); 16 Oct 2012 12:48:43 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Oct 2012 12:48:43 -0000 Authentication-Results: pb1.pair.com header.from=cpriest@zerocue.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=cpriest@zerocue.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zerocue.com designates 74.115.204.53 as permitted sender) X-PHP-List-Original-Sender: cpriest@zerocue.com X-Host-Fingerprint: 74.115.204.53 relay-hub203.domainlocalhost.com Received: from [74.115.204.53] ([74.115.204.53:58327] helo=relay-hub203.domainlocalhost.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 30/41-10021-8A75D705 for ; Tue, 16 Oct 2012 08:48:42 -0400 Received: from MBX202.domain.local ([169.254.169.44]) by HUB203.domain.local ([192.168.68.47]) with mapi id 14.02.0283.003; Tue, 16 Oct 2012 08:47:44 -0400 To: Stas Malyshev CC: "internals@lists.php.net" Thread-Topic: [PHP-DEV] [PHP-DEV [RFC] Property Accessors v1.2 Thread-Index: Ac2oOZ3+vAOzWRcnRpOb6a/hOVK5+ADZjV8AAAUXXnAAAZKrgAAIJAYw Date: Tue, 16 Oct 2012 12:47:44 +0000 Message-ID: <9570D903A3BECE4092E924C2985CE485612B6F1D@MBX202.domain.local> References: <9570D903A3BECE4092E924C2985CE485612B53E4@MBX202.domain.local> <507D24E0.9070203@sugarcrm.com> <9570D903A3BECE4092E924C2985CE485612B6DC9@MBX202.domain.local> <507D5199.3090203@sugarcrm.com> In-Reply-To: <507D5199.3090203@sugarcrm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [192.168.64.21] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: RE: [PHP-DEV] [PHP-DEV [RFC] Property Accessors v1.2 From: cpriest@zerocue.com (Clint Priest) R2FiZWV6dXMsIEkgaGF2ZSB0byBnZXQgdG8gd29yayBTdGFzISA7KQ0KDQo+ID4gVGhpcyBpcyB0 aGUgd2F5IGl0IGlzLCB0aG91Z2ggTmlraXRhIHN0cm9uZ2x5IGRpc2FncmVlcyB0aGF0IHRoZXkN Cj4gPiBzaG91bGQgYmUgImNhbGxhYmxlLCB2aXNpYmxlIiBtZXRob2RzIG9uIHRoZSBvYmplY3Qg YW5kIEkgYWdyZWUgd2l0aA0KPiA+IE5pa2l0YSBvbiB0aGlzIGlzc3VlLCBJIG5ldmVyIGRpZCBs aWtlIHRoZSBpZGVhIHRoYXQgX19nZXRIb3VycygpIGFuZA0KPiANCj4gSSB0aGluayBQSFAgZW5n aW5lIGhhcyBlbm91Z2ggY29tcGxleGl0eSBhbmQgd2UgZG8gbm90IG5lZWQgdG8gYWRkIG1vcmUg dW53YXJyYW50ZWQgb25lLiBUaGVzZSBhcmUgbWV0aG9kcywgdGhleSBleGlzdCAtIHNvDQo+IHRo ZXkgc2hvdWxkIGV4aXN0IGV2ZXJ5d2hlcmUgbWV0aG9kcyBleGlzdC4gRG9pbmcgb3RoZXJ3aXNl IHdpbGwgcmVzdWx0IGluIGEgdG9ucyBvZiBpbmNvbnNpc3RlbmNpZXMgYW5kIHdlaXJkIG9jY3Vy cmVuY2VzLiBJZiB5b3UNCj4gYXJlIGluIF9fZ2V0SG91cnMgbWV0aG9kIGJ1dCB0aGUgZW5naW5l IHNheXMgX19nZXRIb3VycyBkb2VzIG5vdCBleGlzdCBhbmQgY2FuIG5vdCBiZSBjYWxsZWQsIGl0 IGlzIGJhZCBtYWdpYy4gVGhlcmUncyBubyB1c2UgY2FzZQ0KPiBmb3IgdGhpcyBiYWQgbWFnaWMg YW5kIEkgc2VlIG5vIHJlYXNvbiBmb3IgaXQgZXhjZXB0IGZvciB1cyB0cnlpbmcgdG8gcmVzdHJp Y3QgdXNlcnMgZm9yIHB1cmlzdCByZWFzb25zLiBJIGRvIG5vdCB0aGluayB0aGUgZW5naW5lIG5l ZWRzDQo+IGNvbXBsZXggYmFkIG1hZ2ljIHdoZW4gc2ltcGxlIHNvbHV0aW9uIG9mIG1ha2luZyBy ZWd1bGFyIG1ldGhvZHMgd291bGQgd29yayBqdXN0IGFzIHdlbGwgaW4gYWxsIGNhc2VzIHdoZXJl IG1ldGhvZHMgd29yay4NCg0KSSB2ZXJ5IG11Y2ggZGlzYWdyZWUsIGVuZ2luZSBkZXRhaWxzIHNo b3VsZCBub3QgYmUgdmlzaWJsZSB0byB1c2Vycy4gIEl0IGlzIGlycmVsZXZhbnQgdG8gdGhlbSBh bmQgb25seSBzZXJ2ZXMgdG8gY29uZnVzZS4NCg0KPiANCj4gPiBJZiBJIHdlcmUgdG8gZ28gYWJv dXQgdGhpcyBhZ2FpbiwgdGhleSBwcm9iYWJseSB3aWxsIG5vdCBiZSBtZXRob2RzIG9mDQo+ID4g dGhlIGNsYXNzLiAgSW50ZXJuYWxseSB0aGVyZSBpcyBsaXR0bGUgcmVxdWlyaW5nIGFuIG9wX2Fy cmF5IHRvIGJlDQo+ID4gYXR0YWNoZWQgdG8gYSBjbGFzcyBpbiBvcmRlciB0byBiZSBleGVjdXRl ZC4NCj4gDQo+IFNvIG1ldGhvZHMgb2Ygd2hhdCB3b3VsZCB0aGV5IGJlPyBXaGF0IHdvdWxkIGJl IHRoZWlyIHNjb3BlPyBXaGF0IHdvdWxkICR0aGlzIG1lYW4/IFdoYXQgd291bGQgbWV0aG9kIG5h bWUgYW5kIGJhY2t0cmFjZQ0KPiByZXBvcnQ/IEhvdyBkZWJ1Z2dpbmcvcHJvZmlsaW5nIHRvb2xz IHdvdWxkIHdvcmsgd2l0aCB0aGVtPyBJIHNlZSBubyBuZWVkIHRvIHJlaW52ZW50IGNvbXBsZXgg QVBJcyB0aGF0IHdvdWxkIHJlcXVpcmUgZG96ZW5zIG9mDQo+IGNoYW5nZXMgaW4gYWxsIHRvb2xz IGRlYWxpbmcgd2l0aCBQSFAgZW5naW5lIHdoZW4gc2ltcGxlIG1ldGhvZHMgYXBwcm9hY2ggd291 bGQgd29yayBhcyB3ZWxsLg0KPiBJZiB0aGV5IHdvbid0IGJlIHJlZ3VsYXIgbWV0aG9kcyBJIHRo aW5rIGl0IHdvdWxkIGJlIHRvbyBtdWNoIHRyb3VibGUgdG8gaGF2ZSB5ZXQgYW5vdGhlciBlbnRp dHkgd2hpY2ggaXMgImxpa2UgbWV0aG9kIGJ1dCBub3QgcmVhbGx5DQo+IGEgbWV0aG9kIg0KPiBp biB0aGUgZW5naW5lLg0KDQpUbyBiZSBjbGVhciwgdGhleSB3b3VsZCBiZSByZWd1bGFyIG1ldGhv ZHMsIHRoZXkgd291bGQganVzdCBub3QgZXhpc3QgaW4gdGhlIEhhc2hUYWJsZSAqZnVuY3Rpb25z IG9mIHRoZSBjbGFzcy4gIEluIGV2ZXJ5IG90aGVyIHdheSB0aGV5IGFyZSBtZXRob2RzIG9mIHRo ZSBjbGFzcy4NCg0KPiA+IFRoZSByZWFzb24gdGhhdCA9IE5VTEwgYW5kICE9IE5VTEwgd2FzIGNo b3NlbiBpcyBiZWNhdXNlIGlzc2V0KCkgYW5kDQo+ID4gdW5zZXQoKSBhcmUgc3BlY2lhbCBzdGF0 ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIG9ubHkgdG8gYSB2YXJpYWJsZSBvcg0KPiA+IHByb3BlcnR5 LCBzaW5jZSBhIGdldC9zZXQgZG8gbm90IHJldHVybiBhIHJlYWwgcHJvcGVydHkgdGhleSBjYW5u b3QgYmUNCj4gPiB1c2VkIHdpdGggaXNzZXQvdW5zZXQuICBOb3cgdGhhdCB0aGVyZSBoYXMgYmVl biBkaXNjdXNzaW9uIG9mIGFuDQo+IA0KPiBJJ20gbm90IHN1cmUgSSB1bmRlcnN0YW5kIGhlcmUu IFByb3BlcnR5IGNhbiBiZSBlaXRoZXIgc2V0IChleGlzdHMgYW5kIG5vdCBzdG9yaW5nIG51bGwp IG9yIG5vdCwgdGhlcmUncyBub3RoaW5nIHNwZWNpYWwgYWJvdXQgaXQgLSBhbGwNCj4gdmFyaWFi bGVzIGFuZCBwcm9wZXJ0aWVzIHdvcmsgdGhpcyB3YXkuIEF1dG9tYXRpYyBpc3NldCBzaG91bGQg d29yaw0KPiAqZXhhY3RseSogbGlrZSBwbGFpbiBQSFAncyBpc3NldCgpLCBhbmQgdW5zZXQgc2hv dWxkIG1ha2UgdmFyaWFibGUgaW50byB0aGUgc3RhdGUgd2hlcmUgaXNzZXQgcmV0dXJucyBmYWxz ZSAoYW5kIHJlc291cmNlcyBhcmUgZnJlZWQpLg0KPiBUaGUgY29kZSBpbiB0aGUgUkZDIGZvciBp c3NldCgpIGlzIG5vdCB3b3JraW5nIGxpa2UgUEhQJ3MgaXNzZXQuIFRoYXQgc2hvdWxkIGJlIGZp eGVkLg0KPiANCg0KUEhQIDUuNC43IChjbGkpIChidWlsdDogU2VwIDEzIDIwMTIgMDk6MzI6MzEp IA0KQ29weXJpZ2h0IChjKSAxOTk3LTIwMTIgVGhlIFBIUCBHcm91cA0KWmVuZCBFbmdpbmUgdjIu NC4wLCBDb3B5cmlnaHQgKGMpIDE5OTgtMjAxMiBaZW5kIFRlY2hub2xvZ2llcw0KICAgIHdpdGgg REJHIHY0LjYuMSwgKEMpIDIwMDAsMjAxMiwgYnkgRG1pdHJpIERtaXRyaWVua28NCltyb290QGRl cGxveSAvb3B0L2VzcC9yZWxlYXNlXSMgcGhwIC1kZGlzcGxheV9lcnJvcnM9MSAtZGRpc3BsYXlf c3RhcnR1cF9lcnJvcnM9MSAtYQ0KSW50ZXJhY3RpdmUgc2hlbGwNCg0KcGhwID4gZnVuY3Rpb24g YSgpIHsgcmV0dXJuIDE7IH0NCnBocCA+IHVuc2V0KGEoKSk7DQoNCkZhdGFsIGVycm9yOiBDYW4n dCB1c2UgZnVuY3Rpb24gcmV0dXJuIHZhbHVlIGluIHdyaXRlIGNvbnRleHQgaW4gcGhwIHNoZWxs IGNvZGUgb24gbGluZSAxDQpwaHAgPiBpc3NldChhKCkpOw0KDQpGYXRhbCBlcnJvcjogQ2FuJ3Qg dXNlIGZ1bmN0aW9uIHJldHVybiB2YWx1ZSBpbiB3cml0ZSBjb250ZXh0IGluIHBocCBzaGVsbCBj b2RlIG9uIGxpbmUgMQ0KDQpTZWUgdGhlIHByb2JsZW0/DQoNCj4gPiBUaGlzIGlzIGNvdmVyZWQg aW4gdGhlIFJGQywgcGVyaGFwcyBub3QgY2xlYXJseSBlbm91Z2ggKGxldCBtZSBrbm93DQo+ID4g aG93IEkgY291bGQgZXhwYW5kIG9uIGl0IGZ1cnRoZXIgZm9yIGNsYXJpdHkpLiAgVG8gYW5zd2Vy IGVhY2ggb2YNCj4gDQo+IFllcywgaXQgbmVlZHMgdG8gYmUgZXhwYW5kZWQsIHNpbmNlIG5vIGV4 YW1wbGVzIHJpZ2h0IG5vdyBzaG93IGhvdyBpdCBpcyBzdXBwb3NlZCB0byBiZSB3b3JraW5nLg0K DQpIb3cgd291bGQgeW91IGxpa2UgbWUgdG8gZXhwYW5kIG9uIGl0Pw0KDQo+IA0KPiA+IEksIHBl cmhhcHMgbWlzdGFrZW5seSwgYXNzdW1lZCB0aGF0IGlmIHJldHVybi1ieS1yZWYgYW5kIHNvcnQo KSB3b3JrZWQNCj4gPiBwcm9wZXJseSwgdGhlbiBhbGwgb3RoZXIgInVzYWdlcyBvZiByZWZlcmVu Y2VzIiBzaG91bGQgZXF1YWxseSB3b3JrDQo+ID4gdGhlIHNhbWUsIGlzIHRoYXQgbm90IHJpZ2h0 PyAgSWYgaXQncyBub3QgcmlnaHQsIHdoeSBub3Q/DQo+IA0KPiBJJ20gbm90IHN1cmUsIEkgZGlk bid0IGNoZWNrIGFsbCBvZiB0aGVtIHlldC4gQWxsIHRoZXNlIG5lZWQgdG8gYmUgdGVzdGVkLg0K DQpJIGRvbid0IGtub3cgdGhlIG90aGVyICJjb250ZXh0cyIgdGhhdCBuZWVkIHRvIGJlIHRlc3Rl ZC4gIFRoZXJlIGFyZSBhbHJlYWR5IG92ZXIgODAgdGVzdHMgd3JpdHRlbiBmb3IgdGhpcyAoLnBo cHQpIHRoYXQgYWxsIHBhc3MsIHBsZWFzZSBsZXQgbWUga25vdyB3aGF0IG90aGVyIHRlc3RzIG5l ZWQgdG8gYmUgd3JpdHRlbiBhbmQgSSdkIGJlIGhhcHB5IHRvIHdyaXRlIHRoZW0uDQoNCj4gPiBD ZXJ0YWlubHksIHRoaXMgYmFzaWMgb2JqZWN0IG9yaWVudGVkIGZ1bmN0aW9uYWxpdHksIG9mIGNv dXJzZSBpdCBpcw0KPiA+IHVwaGVsZC4gIFRoaXMgaXMgb25lIG9mIHRoZSByZWFzb25zIEkgbGV2 ZXJhZ2VkIHN0YW5kYXJkIGZ1bmN0aW9ucyBpbg0KPiA+IHRoZSBmaXJzdCBwbGFjZSwgYmVjYXVz ZSB0aGVzZSBpc3N1ZXMgd2VyZSBhdXRvbWF0aWNhbGx5IGhhbmRsZWQgYnkNCj4gPiB0aGUgZXhp c3RpbmcgY29yZS4NCj4gDQo+IEknbSBub3Qgc3VyZSBvdmVycmlkaW5nICJwdWJsaWMgJGZvbyIg d2l0aCAicHVibGljICRmb28geyBwcm90ZWN0ZWQNCj4gZ2V0KCkge30gfSIgaXMgY292ZXJlZCBi eSBleGlzdGluZyBjb2RlLiBFeGlzdGluZyBjb2RlIGhhcyBubyB3YXkgdG8gY292ZXIgc3VjaCB0 aGluZ3MuDQoNClRoaXMgaXNuJ3Qgb3Zlci1yaWRpbmcsIHRoaXMgaXMgc2ltdWx0YW5lb3VzIGV4 aXN0ZW5jZSBhbmQgYXQgcHJlc2VudCwgcHJvcGVydGllcyBzaGFkb3cgYWNjZXNzb3JzLCB0aG91 Z2ggTmlraXRhIHdhbnRzIHRvIGludmVydCB0aGF0Lg0KDQo+ID4gVGhpcyBpcyBjdXJyZW50bHkg dXAgaW4gdGhlIGFpciBvbiB0aGUgUkZDIHNpZGUgYW5kIGlzIGJlaW5nIHJlZmVycmVkDQo+ID4g dG8gYXMgd2hpY2ggInNoYWRvd3MiIHdoaWNoLiAgVGhlIGNvZGUgY3VycmVudGx5IGhhcyBpdCB0 aGF0DQo+ID4gcHJvcGVydGllcyBzaGFkb3cgYWNjZXNzb3JzLCBOaWtpdGEgc3VnZ2VzdGVkIHRo YXQgc2hvdWxkIGJlIGludmVydGVkDQo+ID4gYW5kIEkgYWdyZWUsIHNvIHVubGVzcyBzb21lb25l IGVsc2UgdGhpbmtzIG90aGVyd2lzZSwgYWNjZXNzb3JzIHdpbGwNCj4gPiBwcm9iYWJseSBzaGFk b3cgcHJvcGVydGllcy4NCj4gDQo+IFdoaWNoIHJhaXNlcyB0aGUgcXVlc3Rpb24gYWJvdmUgYWdh aW4gLSBob3cgTFNQIGlzIHByZXNlcnZlZD8gV2hhdCB3b3VsZCBoYXBwZW4gaW4gc3VjaCBjYXNl Pw0KSXQncyBwcmVzZXJ2ZWQgaW4gdGhlIHNhbWUgZXhhY3Qgd2F5IChhbmQgYnkgdGhlIHNhbWUg ZXhhY3QgY29kZSkgdGhhdCBhbnkgb3RoZXIgZnVuY3Rpb24gb3Zlci1yaWRlcyBhcmUgaGFuZGxl ZC4gIFRoZSBhY2Nlc3NvciBzeW50YXgsIExJVEVSQUxMWSwgdHJhbnNsYXRlcyBpbnRvIGZ1bmN0 aW9ucyBhbmQgdGh1cyBnbyB0aHJvdWdoIHRoZSBvcmRpbmFyeSBMU1AgcHJlc2VydmF0aW9uIGxp bmVzIG9mIGNvZGUuICBJdCdzIHRoZSByZWFzb24gSSBjaG9zZSB0byBnbyB0aGF0IHJvdXRlIGlu IHRoZSBmaXJzdCBwbGFjZSAodG8gbGV2ZXJhZ2UgdGhlIGV4aXN0aW5nIExTUCBjaGVja3MpDQoN Cj4gDQo+ID4gU2VlIHJlc3BvbnNlIHRvICMyIGFib3ZlLCB3aXRob3V0IGEgZ2V0dGVyL3NldHRl ciByZXR1cm5pbmcgYSByZWFsDQo+ID4gcHJvcGVydHksIGlzc2V0L3Vuc2V0IGFjY2Vzc29ycyB3 ZXJlIG5lY2Vzc2FyeSBiZWNhdXNlDQo+ID4gaXNzZXQoKS91bnNldCgpIGNhbm5vdCBwZXJmb3Jt IG9uIGEgZHluYW1pYyB2YWx1ZS4gIENvbnNpZGVyIHRoaXM6DQo+IA0KPiBZb3Ugc2VlbSB0byBt aXN1bmRlcnN0YW5kIHdoYXQgSSB3cm90ZSB0aGVyZS4gSSBhbSBwcm9wb3NpbmcgdGhhdA0KPiBp c3NldCgpIHdvdWxkIGEpIGFsd2F5cyBoYXZlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaWYgZ2V0 KCkgaXMgZGVmaW5lZCBhbmQgYikgd29yayBleGFjdGx5IGxpa2UgUEhQIGlzc2V0KCkgaW4gdGhh dCB0aGUgd2F5IHRoYXQgaWYNCj4gZ2V0KCkgcmV0dXJucyBudWxsIChvciBkb2VzIG5vdCBleGlz dCBpZiB3cml0ZS1vbmx5IHByb3BlcnRpZXMgYXJlIGludHJvZHVjZWQpIHRoZW4gaXQgcmV0dXJu cyBmYWxzZSwgb3RoZXJ3aXNlIGl0IHJldHVybnMgdHJ1ZS4NCj4gVGhlIGZhY3QgdGhhdCBjdXJy ZW50IGlzc2V0KCkgb3BlcmF0b3IgZG9lcyBub3Qgd29yayBvbiBUIHZhcmlhYmxlcyBpcyBpcnJl bGV2YW50LCBzaW5jZSBJJ20gdGFsa2luZyBhYm91dCBsZXZlbCBiZWxvdyB0aGF0IC0gaG93IHRo YXQNCj4gb3BlcmF0b3IgaXMgaW1wbGVtZW50ZWQuIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQg YmUgYXVnbWVudGVkIHNvIHRoYXQgZm9yIHByb3BlcnRpZXMgd2l0aCBhY2Nlc3NvcnMgaXQgd291 bGQgd29yayBleGFjdGx5IHRoZQ0KPiBzYW1lIGFzIGZvciBwcm9wZXJ0aWVzIHdpdGhvdXQgb25l cy4NCg0KV2l0aCBpc3NldC91bnNldCBhY2Nlc3NvcnMsIHRoZXkgKmNhbiBiZSogaW1wbGVtZW50 ZWQgYXBwcm9wcmlhdGVseSwgd2l0aCBhdXRvbWF0aWMgaXNzZXQvdW5zZXQgaW1wbGVtZW50YXRp b25zLCB0aGV5IGNhbm5vdCwgZm9yIHJlYXNvbnMgc3RhdGVkIGFib3ZlOg0KDQpwaHAgPiBpc3Nl dChhKCkpOw0KDQpGYXRhbCBlcnJvcjogQ2FuJ3QgdXNlIGZ1bmN0aW9uIHJldHVybiB2YWx1ZSBp biB3cml0ZSBjb250ZXh0IGluIHBocCBzaGVsbCBjb2RlIG9uIGxpbmUgMQ0KDQo+ID4gZGlyZWN0 aW9uIG9mIGFjY2Vzc29ycyBzaGFkb3dpbmcgcHJvcGVydGllcywgSSBjb3VsZCBzZWUgdGhlIGRl ZmF1bHQNCj4gPiBpbXBsZW1lbnRhdGlvbiBvZiBpc3NldC91bnNldCBhY3R1YWxseSBiZSBtb3Jl IGxpa2UgdW5zZXQoKSB7IHJldHVybg0KPiA+IHVuc2V0KCR0aGlzLT5iYXIpOyB9IGFuZCBpc3Nl dCgpIHsgcmV0dXJuIGlzc2V0KCR0aGlzLT5iYXIpOyB9DQo+IA0KPiBJZiB0aGlzIGlzIHBzZXVk b2NvZGUsIG1lYW5pbmcgImNhbGwgZ2V0IGFjY2Vzc29yIGlmIGV4aXN0cyBhbmQgcmV0dXJuIHRy dWUgaWYgcmV0dXJuIHZhbHVlIGlzIG5vdCBudWxsLCBvdGhlcndpc2UgcmV0dXJuIGZhbHNlIiB0 aGVuIGl0J3MNCj4gZmluZSBmb3IgaXNzZXQuIEZvciB1bnNldCwgeW91J2Qgc3RpbGwgd2FudCB0 byB1c2Ugc2V0IGFjY2Vzc29yIG9yIGZhaWwgaWYgc2V0IGFjY2Vzc29yIGlzIG5vdCBkZWZpbmVk Lg0KDQpZb3UndmUgZ290IHRoYXQgcmlnaHQuLi4gaXNzZXQoKSBjYW5ub3QgZXhpc3QgKGFuZCBp cyBub3QgYWxsb3dlZCkgaWYgYSBnZXR0ZXIgaXMgbm90IGRlZmluZWQsIHRoZSBpbnZlcnNlIGlz IHRydWUgb2YgdW5zZXQuDQoNCj4gPiBPaCBjcmFwLCB5b3UncmUgcmVmZXJyaW5nIHRvIHRoZSBp ZGVhIHRoYXQgZHVyaW5nIGNvbXBpbGF0aW9uIGEgY2xhc3MNCj4gPiBkZWZpbml0aW9uIG1heSBl eGlzdCBiZWxvdyB0aGUgcG9pbnQgb2YgImN1cnJlbnQgY29tcGlsYXRpb24sIiByaWdodD8NCj4g PiBJIGhhZCBub3QgY29uc2lkZXJlZCB0aGlzIGNhc2UgYW5kIHlvdSdyZSByaWdodCwgdGhpcyB3 b3VsZCBicmVhaw0KPiA+IGJhZGx5Lg0KPiANCj4gWWVzLCBjbGFzcyBkZWZpbml0aW9uIGlzIHJ1 bnRpbWUsIHdoZW4geW91IGNvbXBpbGluZyBjb2RlIHlvdSBoYXZlIG5vIGlkZWEgbm90IG9ubHkg d2hhdCB0aGlzIGNsYXNzIGlzLCBidXQgdGhhbmtzIHRvICRmb286OmJhciBhbHNvDQo+IHdoYXQg dGhpcyBjbGFzcycgbmFtZSBpcyAod2hpY2ggaXMgbm8gZGlmZmVyZW50IHNpbmNlIGlmIHlvdSBo YWQgdGhlIG5hbWUgeW91IHN0aWxsIGhhZCBubyBpZGVhIHdoYXQgY2xhc3MgaXMgdW5kZXIgdGhp cyBuYW1lKS4NCg0KWWVzLCB0aGVzZSBjYXNlcyB3ZXJlIG5vdCBjb25zaWRlcmVkLiAgVGhlIHN0 YXRpYyBhY2Nlc3NvcnMgcG9ydGlvbiBvZiB0aGlzIHByb2plY3QgdG9vayB1cCBhbiBpbm9yZGlu YXRlIGFtb3VudCBvZiB0aW1lIGFzIGNvbXBhcmVkIHRvIHRoZSByZXN0Lg0KDQo+IA0KPiA+IG9m IGhvdyBpdCB3b3JrZWQuICBJIHN0aWxsIGRvIG5vdCBrbm93IGlmIEkgY291bGQgbWFrZSB0aGlz IHdvcmsgYXQNCj4gPiB0aGUgdm0vb3Bjb2RlIGxldmVsIGR1cmluZyBydW50aW1lIGJ1dCBJJ2Qg YmUgbXVjaCBtb3JlIHdpbGxpbmcgdG8NCj4gPiBnaXZlIGl0IGEgZ28gbm93Lg0KPiANCj4gSSB0 aGluayB5b3UnZCBuZWVkIHNvbWUgYWRkaXRpb25hbCBob29rcyBpbiB0aGUgY2xhc3Mgc3RydWN0 dXJlIGZvciB0aGlzIGFuZCBzb21lIGFkZGl0aW9uYWwgbWV0aG9kcyBpbiB6ZW5kX29iamVjdF9o YW5kbGVycy5jLiBJZg0KPiB5b3UgbmVlZCBtb3JlIG9uIHRoaXMgcGxlYXNlIHNlbmQgbWUgYSBt ZXNzYWdlLCBJJ2xsIHRyeSB0byBoZWxwIHlvdSAodGhvdWdoIG5leHQgMiB3ZWVrcyBJJ2xsIGhh dmUgdmVyeSBza2V0Y2h5IGludGVybmV0IGFjY2VzcyBhcw0KPiBJJ20gb24gdmFjYXRpb24vdHJh dmVsaW5nLCBzbyBwbGVhc2UgYmUgcGF0aWVudCA6KQ0KPiANCg0KWWVzISAgSSBjb3VsZCByZWFs bHkgdXNlIHNvbWUgaGVscCBpbiB0aGlzIGFyZWEuICBJIHdpbGwgUE0geW91IGJlY2F1c2UgSSBu ZXZlciBrbmV3IHdoaWNoIHdheSB0byBnbyBvciB3aGljaCB3YXkgd291bGQgYmUgYWNjZXB0YWJs ZSAoYWRkaW5nIG5ldyBvcGNvZGVzLCBtZXNzaW5nIHdpdGggZXhpc3Rpbmcgb3Bjb2RlcywgZXRj KS4gIEkgd291bGQgbGlrZSB0byBnZXQgc3RhdGljIGFjY2Vzc29ycyBjYWxsaW5nIGludG8gemVu ZF9vYmplY3RfaGFuZGxlcnMuYyB0aGUgd2F5IG9iamVjdHMgYXJlIGJ1dCBpdCB3YXMgYmV5b25k IG1lIGhvdyB0byBkbyB0aGlzIHdoZW4gSSB3YXMgc3RydWdnbGluZyB0byBmaW5kIGEgd2F5LiAg SSB3YXMgYWN0dWFsbHkgcXVpdGUgZXhjaXRlZCB3aGVuIEkgZm91bmQgY29kZSBpbiB0aGUgY29y ZSB3aGljaCAiYmFjayBwYXRjaGVzIiB0aGUgb3AgYXJyYXkgdG8gYWNjb21wbGlzaCBzb21lIHRo aW5ncywgYmVjYXVzZSBpdCBnYXZlIG1lICJ0aGUgd2F5IiB0byBtYWtlIHRoaXMgd29yay4gIE5v dyB0aGF0IHlvdSd2ZSBicm91Z2h0IHRoZXNlIHZhbGlkIHBvaW50cyB1cCwgbXkgaW1wbGVtZW50 YXRpb24gd2lsbCBub3Qgd29yay4NCg0KPiA+IFlvdSBhbmQgTmlraXRhIGdldCB5b3VyIGdsb3Zl cyBvbiwgbWFrZXMgaXQgZWFzaWVyIG9uIG1lIHRvIGdvIHlvdXINCj4gPiBkaXJlY3Rpb24gYnV0 IE5pa2l0YSBkaWQgbm90IGxpa2UgdGhpcyBhdCBhbGwuDQo+IA0KPiBXZWxsLCBJIHRoaW5rIEkn dmUgZXhwbGFpbmVkIG15IGFwcHJvYWNoIGFib3ZlLCBpZiBOaWtpdGEgaGFzIHNvbWV0aGluZyB0 byBhZGQgaGUncyBtb3N0IHdlbGNvbWUuDQo+IA0KPiA+IFRoaXMgd291bGQgcmVmZXIgdG8gdGhl IGZhY3QgdGhhdCBhIGRlYnVnIGJhY2t0cmFjZSB3b3VsZCBzaG93IHRoYXQNCj4gPiBpdCdzIGlu IGEgZnVuY3Rpb24gY2FsbGVkIF9fZ2V0SG91cnMoKSAoZm9yIGV4YW1wbGUpIHdoaWNoIHdvdWxk IG9ubHkNCj4gPiBzZXJ2ZSB0byBjb25mdXNlIGEgcGhwIGRldmVsb3BlciB3aG8gZG9lc24ndCBr bm93IHRoYXQgYSBnZXR0ZXIgZm9yDQo+ID4gJEhvdXJzIGlzIHJlYWxseSBhIGZ1bmN0aW9uIG5h bWVkIF9fZ2V0SG91cnMoKS4gIFRoZXJlZm9yZSBJIHdpbGwgYmUNCj4gDQo+IEkgdGhpbmsgaXQn cyBhIHdyb25nIGFwcHJvYWNoIHRvIGxpZSB0byB0aGUgZGV2ZWxvcGVyIGluIG9yZGVyIHRvIG1h a2UgaXQgImVhc2llciIuIElmIHRoZSBlbmdpbmUgaGFzIGZ1bmN0aW9uIF9fZ2V0SG91cnMsIGl0 IHNob3VsZCBzYXkNCj4gc28uDQo+IFRoZSBkZXZlbG9wZXIgc21hcnQgZW5vdWdoIHRvIHVzZSBw cm9wZXJ0aWVzIGlzIHNtYXJ0IGVub3VnaCB0byB1bmRlcnN0YW5kIHZlcnkgc2ltcGxlIGNvbmNl cHQgb2YgYXV0by1nZW5lcmF0ZWQgZnVuY3Rpb24gbmFtZQ0KPiAoZ2l2ZW4gdGhhdCBfX2dldCBl eGlzdHMgZm9yIHllYXJzIGluIHRoZSBlbmdpbmUpLg0KDQpCdXQgd2hhdCBpcyB0aGUgdmFsdWUg b2YgaXQ/ICBUaGUgZGV2ZWxvcGVyIGlzIHdvcmtpbmcgd2l0aGluIHRoZSBjb250ZXh0IG9mIGFu IGFjY2Vzc29yLCBub3QgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIHdoaWNoIGRvZXNuJ3QgbWVh biBhbnl0aGluZyB0byB0aGVtPw0KDQo+ID4gSSBjb3VsZCBub3QgZ2V0IHRoaXMgcG9pbnQgYWNy b3NzIHRvIGFueW9uZSBidXQgZ2F2ZSB1cCwgcHJpdmF0ZSBmaW5hbA0KPiA+IHNldCgpOyAhPSBy ZWFkLW9ubHkuICBXaXRoIGEgbm9uICJyZWFkLW9ubHkiIGtleXdvcmQgc2NlbmFyaW8sIGEgInNl dCINCj4gPiBjYWxsIHdvdWxkIHN0aWxsIGJlIGFsbG93ZWQgYW5kIHdvdWxkIHNob3cgdXAgYXMg YW4gYWNjZXNzIHZpb2xhdGlvbg0KPiA+IHRvIG91dHNpZGUgb2JzZXJ2ZXJzIGFuZCB3b3VsZCBi ZSBhbGxvd2VkIGZyb20gd2l0aGluIHRoZSBjbGFzcy4gIFRoaXMNCj4gPiBpcyBub3Qgd2hhdCBJ IHdhbnRlZCBidXQgSSBoYWQgZW5vdWdoIG90aGVyIHBvaW50cyBvZiBjb250ZW50aW9uIGFuZCBJ DQo+ID4geWllbGRlZCBvbiB0aGlzLg0KPiANCj4gSSBzZWUuIEkgZ3Vlc3MgdGhpcyBzaG91bGQg YmUgVE9ETyB0aGVuLCBtYXliZSBzb21lYm9keSB3aWxsIGhhdmUgYmV0dGVyIGlkZWFzLiBJIHJl YWxseSBkb24ndCBsaWtlIHNwZWNpYWwgY2FzZSBrZXl3b3Jkcywgc28gaXQnZCBiZQ0KPiBncmVh dCBpZiB3ZSBjb3VsZCBmaWd1cmUgaXQgb3V0IHVzaW5nIGdlbmVyaWMgYXBwcm9hY2ggb3IgbWF5 YmUgc29tZSBsaWdodCBtYWdpYyBsaWtlIGF1dG9nZW5lcmF0ZWQgbWV0aG9kIHRocm93aW5nIHBy ZWRlZmluZWQNCj4gZXhjZXB0aW9uLg0KDQpJbiB0aGlzIHJlZ2FyZCwgSSBoYXZlIHlldCB0byBz ZWUgYW55IHByb3Bvc2FsIHRoYXQgaXMgYXMgY2xlYXIgb3IgY29uY2lzZSBhcyBwdWJsaWMgcmVh ZC1vbmx5ICRhYmMuICBXaGF0IGlzIHRoZSBiaWcgcHJvYmxlbSB3aXRoIGFkZGluZyByZWFkLW9u bHkgYW5kIHdyaXRlLW9ubHkga2V5d29yZHM/ICBPbmNlIHRoZXkgYXJlIGluIHRoZSBsYW5ndWFn ZSB0aGV5IGNvdWxkIGJlIGV4cGFuZGVkIHRvIHBsYWluIHByb3BlcnRpZXMuDQoNCj4gLS0NCj4g U3RhbmlzbGF2IE1hbHlzaGV2LCBTb2Z0d2FyZSBBcmNoaXRlY3QNCj4gU3VnYXJDUk06IGh0dHA6 Ly93d3cuc3VnYXJjcm0uY29tLw0KPiAoNDA4KTQ1NC02OTAwIGV4dC4gMjI3DQo=