Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:63458 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 43167 invoked from network); 16 Oct 2012 11:20:07 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Oct 2012 11:20:07 -0000 Authentication-Results: pb1.pair.com smtp.mail=cpriest@zerocue.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=cpriest@zerocue.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zerocue.com designates 74.115.204.51 as permitted sender) X-PHP-List-Original-Sender: cpriest@zerocue.com X-Host-Fingerprint: 74.115.204.51 relay-hub201.domainlocalhost.com Received: from [74.115.204.51] ([74.115.204.51:31154] helo=relay-hub201.domainlocalhost.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 41/AD-10021-6E24D705 for ; Tue, 16 Oct 2012 07:20:06 -0400 Received: from MBX202.domain.local ([169.254.169.44]) by HUB201.domain.local ([192.168.68.45]) with mapi id 14.02.0283.003; Tue, 16 Oct 2012 07:19:10 -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+ADZjV8AAAUXXnA= Date: Tue, 16 Oct 2012 11:19:09 +0000 Message-ID: <9570D903A3BECE4092E924C2985CE485612B6DC9@MBX202.domain.local> References: <9570D903A3BECE4092E924C2985CE485612B53E4@MBX202.domain.local> <507D24E0.9070203@sugarcrm.com> In-Reply-To: <507D24E0.9070203@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) SGV5IFN0YXMsIGEgYnVuY2ggb2YgdGhpcyBoYXMgYWxyZWFkeSBiZWVuIGNvdmVyZWQgYnV0IEkg d2lsbCBhdHRlbXB0IHRvIGFuc3dlciBlYWNoIG9mIHRoZXNlIGFzIGlzIG15IGN1cnJlbnQgdW5k ZXJzdGFuZGluZyBvZiAidGhlIGhpdmVzIiBkZWNpc2lvbi4uLiA6UA0KDQo+IDEuIEFjY2Vzc29y cyBJTU8gc2hvdWxkIGJlIHJlZ3VsYXIgUEhQIG1ldGhvZHMgdGhhdCBQSFAgZ2VuZXJhdGVzIHdp dGggdHdvIGFkZGl0aW9uYWwgdGhpbmdzOg0KPiBhLiBUaGVpciBuYW1lIGlzIGdlbmVyYXRlZCBi eSBQSFANCj4gYi4gVGhlaXIgYXJndW1lbnQgc2V0IGlzIGRlZmluZWQgYnkgdGhlIGFjY2Vzc29y IHBhdHRlcm4gKGkuZS4gc2FtZSB0aGluZyBhcyBfX2dldC9fX3NldCkuDQo+IFdlIHNob3VsZCBr ZWVwIHRoZSBhbW91bnQgb2YgbWFnaWMgYW5kIHNwZWNpYWwgY2FzZXMgdG8gdGhlIG1pbmltdW0s IHRoZSBlbmdpbmUgaXMgY29tcGxleCBlbm91Z2ggYXMgaXQgaXMuDQo+IFRoaXMgb2YgY291cnNl IGluY2x1ZGVzIHRoZSBmdWxsIHJhbmdlIG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZvciB0aGUgbWV0 aG9kcyAtIGZpbmFsLCByZWZsZWN0aW9uLCBjYWxsIHNjZW5hcmlvcywgZXRjLg0KDQpUaGlzIGlz IHRoZSB3YXkgaXQgaXMsIHRob3VnaCBOaWtpdGEgc3Ryb25nbHkgZGlzYWdyZWVzIHRoYXQgdGhl eSBzaG91bGQgYmUgImNhbGxhYmxlLCB2aXNpYmxlIiBtZXRob2RzIG9uIHRoZSBvYmplY3QgYW5k IEkgYWdyZWUgd2l0aCBOaWtpdGEgb24gdGhpcyBpc3N1ZSwgSSBuZXZlciBkaWQgbGlrZSB0aGUg aWRlYSB0aGF0IF9fZ2V0SG91cnMoKSBhbmQgX19zZXRIb3VycygpIHdlcmUgbWV0aG9kcyBvZiBh IGNsYXNzIGp1c3QgYmVjYXVzZSBvZiBhbiBhY2Nlc3NvciBkZWZpbml0aW9uLCB3aGljaCBpcyB3 aHkgSSB3b3JrZWQgdG8gaGF2ZSBSZWZsZWN0aW9uIGhpZGUgdGhhdCBmYWN0LiAgSWYgSSB3ZXJl IHRvIGdvIGFib3V0IHRoaXMgYWdhaW4sIHRoZXkgcHJvYmFibHkgd2lsbCBub3QgYmUgbWV0aG9k cyBvZiB0aGUgY2xhc3MuICBJbnRlcm5hbGx5IHRoZXJlIGlzIGxpdHRsZSByZXF1aXJpbmcgYW4g b3BfYXJyYXkgdG8gYmUgYXR0YWNoZWQgdG8gYSBjbGFzcyBpbiBvcmRlciB0byBiZSBleGVjdXRl ZC4NCg0KPiAyLiBpc3NldCBpcyBkZWZpbmVkIGFzOg0KPiAgICAgICAgIGlzc2V0KCkgeyByZXR1 cm4gJHRoaXMtPkhvdXJzICE9IE5VTEw7IH0gVGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGNvcnJl Y3QgLSAhPSBOVUxMIGRvZXMgbm90IHdvcmsgbGlrZSBpc3NldCBub3cuDQo+IFRyeSB0aGlzOg0K PiBjbGFzcyBBIHsgcHVibGljICR4ID0gMDsgfQ0KPiAkYSA9IG5ldyBBOw0KPiB2YXJfZHVtcChp c3NldCgkYS0+eCkpOw0KPiB2YXJfZHVtcCgkYS0+eCAhPSBOVUxMKTsNCj4gVGhpcyBuZWVkcyB0 byBiZSBmaXhlZCAtIGdlbmVyYXRlZCBpc3NldCgpIHNob3VsZCBiZSBkZWZpbmVkIHRvIHdvcmsg ZXhhY3RseSBsaWtlIHJlZ3VsYXIgaXNzZXQgYW5kIGFjdHVhbGx5IHVzZSB0aGUgc2FtZSBjb2Rl IHBhdGguDQo+IEFyZ3VtZW50IHRvIGlzc2V0KCkgY2FsbCBjYW4gYmUgcmV0cmlldmVkIHVzaW5n IGFjY2Vzc29yIGJ1dCBpdCBzaG91bGQgbm90IGRpZmZlciBmcm9tIGlzc2V0KCkgcmVzdWx0IGlu IGFueSBwb3NzaWJsZSB3YXkgb3Igc2l0dWF0aW9uDQo+IChpbmNsdWRpbmcgZXJyb3Igc2l0dWF0 aW9ucyAtIGUuZy4gbm90aWNlcywgZXRjLikNCg0KVGhlIHJlYXNvbiB0aGF0ID0gTlVMTCBhbmQg IT0gTlVMTCB3YXMgY2hvc2VuIGlzIGJlY2F1c2UgaXNzZXQoKSBhbmQgdW5zZXQoKSBhcmUgc3Bl Y2lhbCBzdGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIG9ubHkgdG8gYSB2YXJpYWJsZSBvciBwcm9w ZXJ0eSwgc2luY2UgYSBnZXQvc2V0IGRvIG5vdCByZXR1cm4gYSByZWFsIHByb3BlcnR5IHRoZXkg Y2Fubm90IGJlIHVzZWQgd2l0aCBpc3NldC91bnNldC4gIE5vdyB0aGF0IHRoZXJlIGhhcyBiZWVu IGRpc2N1c3Npb24gb2YgYW4gYWNjZXNzb3IgYmVpbmcgYSByZWFsIHByb3BlcnR5IHNoYWRvd2Vk IGJ5IGdldC9zZXQsIHN0YW5kYXJkIGlzc2V0L3Vuc2V0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHVz ZWQgYWdhaW5zdCB0aGUgdW5kZXJseWluZyBwcm9wZXJ0eS4NCg0KPiAzLiBIb3cgcmVmZXJlbmNl cyBhbmQgY29tcGxleCBjYXNlcyBhcmUgaGFuZGxlZD8gRGlkbid0IGZpbmQgYW55dGhpbmcgYWJv dXQgaXQsIGUuZy4gaG93IGl0IGhhbmRsZXMgJGZvby0+YmFyKyssICRmb28tPmJhcltdID0gMSwN Cj4gJGZvby0+YmFyWzEyM10gPSA0LCBldGMuICgkZm9vLT5iYXIgYmVpbmcgcHJvcGVydHkgd2l0 aCBnZXQvc2V0IGRlZmluZWQgb2YgY291cnNlKT8gSG93ICRmb29iYXIgPSYgJGZvby0+YmFyIGlz IGhhbmRsZWQ/IFRoZSBzb3J0KCkNCj4gY2FzZSBtZW50aW9ucyBieS1yZWYgcmV0dXJuIGJ1dCBk b2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYWxsIG90aGVyIGNhc2VzLg0KPiBUaGVzZSBuZWVk IHRvIGJlIGNvdmVyZWQgZXhwbGljaXRseSBpbiB0aGUgUkZDLg0KDQpUaGlzIGlzIGNvdmVyZWQg aW4gdGhlIFJGQywgcGVyaGFwcyBub3QgY2xlYXJseSBlbm91Z2ggKGxldCBtZSBrbm93IGhvdyBJ IGNvdWxkIGV4cGFuZCBvbiBpdCBmdXJ0aGVyIGZvciBjbGFyaXR5KS4gIFRvIGFuc3dlciBlYWNo IG9mIHlvdXIgcXVlc3Rpb25zLCB5b3UgY2FuIHRoaW5rIG9mIHdoYXQgd291bGQgaGFwcGVuIGFz IGlmIGl0IHdlcmUgYSBmdW5jdGlvbiBjYWxsLiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBkaWQgJGZv by0+YmFyKClbMTIzXSA9IDQgeW91IHdvdWxkIGJlIG1vZGlmeWluZyBhIHJldHVybi1ieS12YWwu ICBJZiBiYXIgd2VyZSBpbnN0ZWFkIGRlZmluZWQgYXMgcmV0dXJuaW5nIGEgcmVmZXJlbmNlLCB0 aGVuIGl0IHdvdWxkIGluZGVlZCB3b3JrIGFzIHlvdSBleHBlY3QgYWJvdmUuICAkZm9vYmFyID0g JiRmb28tPmJhciB3b3VsZCB3b3JrIGFzIGV4cGVjdGVkIGFzIGxvbmcgYXMgdGhlIGdldHRlciBp cyByZXR1cm5pbmcgYSByZWZlcmVuY2UgYXMgd2VsbC4gIA0KDQpJLCBwZXJoYXBzIG1pc3Rha2Vu bHksIGFzc3VtZWQgdGhhdCBpZiByZXR1cm4tYnktcmVmIGFuZCBzb3J0KCkgd29ya2VkIHByb3Bl cmx5LCB0aGVuIGFsbCBvdGhlciAidXNhZ2VzIG9mIHJlZmVyZW5jZXMiIHNob3VsZCBlcXVhbGx5 IHdvcmsgdGhlIHNhbWUsIGlzIHRoYXQgbm90IHJpZ2h0PyAgSWYgaXQncyBub3QgcmlnaHQsIHdo eSBub3Q/DQoNCj4gNC4gV2UgaGF2ZSBzb21lIExTUCBjb250cm9scyBub3cgaW4gcGxhY2UgdG8g ZW5zdXJlIG5vbi1MU1Agb3ZlcnJpZGVzIGdlbmVyYXRlIEVfU1RSSUNULiBXaWxsIHRoaXMgYmUg dGhlIGNhc2UgZm9yIHByb3BlcnRpZXMgdG9vPw0KPiBNZWFuaW5nLCB3aGF0IGhhcHBlbnMgaWYg eW91IGFkZCBvdmVycmlkaW5nIHByb3RlY3RlZCBnZXR0ZXIgdG8gYSBwcm9wZXJ0eSB0aGF0IHdh cyBwcmV2aW91c2x5IGZ1bGx5IHB1YmxpYyAtIHRodXMgdmlvbGF0aW5nIHRoZSBMU1A/DQoNCkNl cnRhaW5seSwgdGhpcyBiYXNpYyBvYmplY3Qgb3JpZW50ZWQgZnVuY3Rpb25hbGl0eSwgb2YgY291 cnNlIGl0IGlzIHVwaGVsZC4gIFRoaXMgaXMgb25lIG9mIHRoZSByZWFzb25zIEkgbGV2ZXJhZ2Vk IHN0YW5kYXJkIGZ1bmN0aW9ucyBpbiB0aGUgZmlyc3QgcGxhY2UsIGJlY2F1c2UgdGhlc2UgaXNz dWVzIHdlcmUgYXV0b21hdGljYWxseSBoYW5kbGVkIGJ5IHRoZSBleGlzdGluZyBjb3JlLg0KDQo+ IA0KPiA1LiBXaGF0IGhhcHBlbnMgaWYgeW91IG92ZXJyaWRlIGFjY2Vzc29yIHByb3BlcnR5IHdp dGggcGxhaW4gb2xkIHZhcmlhYmxlIHByb3BlcnR5PyBJLmUuOg0KPiANCj4gY2xhc3MgQSB7DQo+ ICAgIHByb3RlY3RlZCAkc2VjcmV0IHsNCj4gCWdldCgpIHsgcmV0dXJuICJzZWNyZXQiOyB9DQo+ ICAgfQ0KPiB9DQo+IA0KPiBjbGFzcyBCIGV4dGVuZHMgQSB7DQo+ICAgIHB1YmxpYyAkc2VjcmV0 ID0gIm5vdCBhIHNlY3JldCBhbnltb3JlIjsgfQ0KPiANCj4gQWxzbywgd2hhdCBoYXBwZW5zIGhl cmUgaWYgQSBleHRlbmRzIEIgaW4gdGhlIHNhbWUgc2NlbmFyaW8gKHRoaXMgcmVmZXJzIHRvIHRo ZSAjNCB0b28pLg0KDQpUaGlzIGlzIGN1cnJlbnRseSB1cCBpbiB0aGUgYWlyIG9uIHRoZSBSRkMg c2lkZSBhbmQgaXMgYmVpbmcgcmVmZXJyZWQgdG8gYXMgd2hpY2ggInNoYWRvd3MiIHdoaWNoLiAg VGhlIGNvZGUgY3VycmVudGx5IGhhcyBpdCB0aGF0IHByb3BlcnRpZXMgc2hhZG93IGFjY2Vzc29y cywgTmlraXRhIHN1Z2dlc3RlZCB0aGF0IHNob3VsZCBiZSBpbnZlcnRlZCBhbmQgSSBhZ3JlZSwg c28gdW5sZXNzIHNvbWVvbmUgZWxzZSB0aGlua3Mgb3RoZXJ3aXNlLCBhY2Nlc3NvcnMgd2lsbCBw cm9iYWJseSBzaGFkb3cgcHJvcGVydGllcy4NCg0KPiANCj4gNi4gVGhpbmtpbmcgbW9yZSBhYm91 dCBpc3NldC91bnNldCAtIHdoeSBub3QgbWFrZSBpc3NldC91bnNldCBhbHdheXMgYmUgdGhlIGRl ZmF1bHQgdW5sZXNzIG92ZXJyaWRkZW4/IEkgY2FuJ3QgcmVhbGx5IHNlZSB0aGUgY2FzZQ0KPiB3 aGVyZSB5b3Ugd2FudCBlY2hvICRmb28tPmJhciB0byB3b3JrIGJ1dCBpZihpc3NldCgkZm9vLT5i YXIpKSBlY2hvICRmb28tPmJhciB0byBub3Qgd29yay4gSSB0aGluayBpc3NldCgpIGFuZCB1bnNl dCgpIHNob3VsZCBhbHdheXMNCj4gdXNlIGF1dG9tYXRpYyBpbXBsZW1lbnRhdGlvbnMgYnkgZGVm YXVsdCAoZml4ZWQgaW4gYWNjb3JkIHdpdGggIzIgb2YgY291cnNlKS4NCg0KU2VlIHJlc3BvbnNl IHRvICMyIGFib3ZlLCB3aXRob3V0IGEgZ2V0dGVyL3NldHRlciByZXR1cm5pbmcgYSByZWFsIHBy b3BlcnR5LCBpc3NldC91bnNldCBhY2Nlc3NvcnMgd2VyZSBuZWNlc3NhcnkgYmVjYXVzZSBpc3Nl dCgpL3Vuc2V0KCkgY2Fubm90IHBlcmZvcm0gb24gYSBkeW5hbWljIHZhbHVlLiAgQ29uc2lkZXIg dGhpczogdW5zZXQoJGZvby0+YmFyKCkpIG9yIGlzc2V0KCRmb28tPmJhcigpKS4gIFNpbmNlIHdl IGFyZSBtb3ZpbmcgaW4gdGhlIGRpcmVjdGlvbiBvZiBhY2Nlc3NvcnMgc2hhZG93aW5nIHByb3Bl cnRpZXMsIEkgY291bGQgc2VlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIGlzc2V0L3Vu c2V0IGFjdHVhbGx5IGJlIG1vcmUgbGlrZSB1bnNldCgpIHsgcmV0dXJuIHVuc2V0KCR0aGlzLT5i YXIpOyB9IGFuZCBpc3NldCgpIHsgcmV0dXJuIGlzc2V0KCR0aGlzLT5iYXIpOyB9DQoNCj4gNy4g IkVycm9yIG1lc3NhZ2luZyIgc2VjdGlvbiBpcyBub3QgY2xlYXIuIFNvbWUgZXhhbXBsZXMgd291 bGQgaGVscCAtIHdoYXQgaXMgYmVpbmcgdHJhbnNsYXRlZCB0byB3aGF0Pw0KDQpJIHdpbGwgZXhw YW5kIG9uIHRoaXMgc2VjdGlvbiBpbiB0aGUgUkZDLCBidXQgdGhpcyBzZWN0aW9uIGlzIHJlZmVy cmluZyB0byB0aGUgZmFjdCB0aGF0IGlmIGJhciB3ZXJlIGFuIGFjY2Vzc29yIHdpdGhvdXQgYSBz ZXQoKSBhbmQgdGhpcyB3ZXJlIGF0dGVtcHRlZDoNCg0KJGZvby0+YmFyID0gNDsNCg0KSXQgd291 bGQgaGF2ZSBlcnJvcmVkIHdpdGg6DQoJRmF0YWwgZXJyb3I6IG5vIGZ1bmN0aW9uIF9fc2V0YmFy KCkgZXhpc3RzIG9uIG9iamVjdCAkZm9vCTwtLSBUaGF0IGlzIG5vdCBleGFjdGx5IHRoZSBtZXNz YWdlIHJldHVybmVkIGJ5IGNvcmUsIGJ1dCB5b3UgZ2V0IHRoZSBwb2ludA0KDQpTbyB0aGUgc2Vj dGlvbiBvbiBlcnJvciBtZXNzYWdpbmcgaXMgcmVmZXJyaW5nIHRvIHRoZSBmYWN0IHRoYXQgYWxs IGVycm9ycyBpbnZvbHZpbmcgYWNjZXNzb3JzIGhhdmUgYmVlbiBjaGFuZ2VkIHRvIG1ha2UgbW9y ZSBzZW5zZSwgaWU6DQoJRmF0YWwgZXJyb3I6IGNhbm5vdCBzZXQgJGZvby0+YmFyLCBubyBzZXR0 ZXIgaXMgZGVmaW5lZC4NCg0KPiA4LiAiU3RhdGljIGFjY2Vzc29ycyIgc2VjdGlvbiBpcyBub3Qg Y2xlYXIsIG5hbWVseSB0aGlzIG9uZToNCj4gVGhpcyB5aWVsZGVkIHRoZSBwb3NzaWJpbGl0eSB0 aGF0IGEgZ2V0dGVyIGNhbGwgd2FzIGJlaW5nIG1hZGUgd2hpbGUgaXQgc2hvdWxkIG5vdCBiZSBh bGxvd2VkIChpZiB0aGVyZSB3YXMgbm8gZ2V0dGVyIGRlZmluZWQpIGFuZCBzbw0KPiBwYXNzX3R3 bygpIHdhcyBjaGFuZ2VkIHRvIGxvb2sgZm9yIHRoZXNlIG5vbi1iYWNrcGF0Y2hlZCBpbGxlZ2Fs IHN0YXRpYyBnZXR0ZXIgY2FsbHMgYW5kIGEgY29tcGlsZSB0aW1lIGVycm9yIGlzIHByb2R1Y2Vk Lg0KPiANCj4gV2hlbiB0aGUgY29kZSBpcyBjb21waWxlZCwgdGhlIGNsYXNzIGRlZmluaXRpb24g KGFuZCwgaW4gZmFjdCwgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIHdlJ3JlIHRhbGtpbmcgYWJvdXQp IG1heSBub3QgYmUgYXZhaWxhYmxlLCBzbyBob3cNCj4gY2FuIHlvdSBrbm93biBpZiBjZXJ0YWlu IHByb3BlcnR5IG9mIHRoaXMgY2xhc3MgaGFzIGdldHRlcnMgZGVmaW5lZD8NCg0KT2ggY3JhcCwg eW91J3JlIHJlZmVycmluZyB0byB0aGUgaWRlYSB0aGF0IGR1cmluZyBjb21waWxhdGlvbiBhIGNs YXNzIGRlZmluaXRpb24gbWF5IGV4aXN0IGJlbG93IHRoZSBwb2ludCBvZiAiY3VycmVudCBjb21w aWxhdGlvbiwiIHJpZ2h0PyAgSSBoYWQgbm90IGNvbnNpZGVyZWQgdGhpcyBjYXNlIGFuZCB5b3Un cmUgcmlnaHQsIHRoaXMgd291bGQgYnJlYWsgYmFkbHkuDQoNCj4gQWxzbywgSSdtIG5vdCBzdXJl IHdoYXQgaXMgdGhlIHRoaW5nIGFib3V0IGJhY2twYXRjaGluZyBhbmQgY29udmVydGluZyB0byBm dW5jdGlvbiBjYWxscyAtIEkgdGhpbmsgaXQgc2hvdWxkIHdvcmsgdmlhIGVuZ2luZSBoYW5kbGVy cw0KPiBqdXN0IGFzIHRoZSByZXN0IG9mIHRoZSB0aGluZ3Mgd29yayBpbiB0aGUgZW5naW5lLCBp cyBpdCBub3QgdGhlIGNhc2U/IElmIG5vdCwgaXQgc2hvdWxkIGJlIG1hZGUgdGhlIGNhc2UuDQoN ClRoZSBzdGF0aWMgYWNjZXNzb3JzIHdhcyBhYm92ZSBteSBwYXkgZ3JhZGUgd2hlbiBJIGZpcnN0 IHRhY2tsZWQgdGhlbSwgaW4gY29tcGFyaXNvbiB0aGUgb2JqZWN0IGdldC9zZXQgd2FzIGEgcGll Y2Ugb2YgY2FrZSBiZWNhdXNlIGl0IHdhcyBhbHJlYWR5IGJlaW5nIGhhbmRsZWQgYnkgX19nZXQo KSBhbmQgX19zZXQoKSBidXQgc3RhdGljIHByb3BlcnRpZXMgYXJlIGhhbmRsZWQgaW4gYW4gZW50 aXJlbHkgZGlmZmVyZW50IHdheS4gIEJlY2F1c2Ugb2YgdGhlIG5lYXJseSBjb21wbGV0ZWx5IHVu ZG9jdW1lbnRlZCBjb2RlLCBJIGNvdWxkIG5vdCBtYWtlIGhlYWRzIG5vciB0YWlscyBvZiBob3cg aXQgd29ya2VkLiAgSSBzdGlsbCBkbyBub3Qga25vdyBpZiBJIGNvdWxkIG1ha2UgdGhpcyB3b3Jr IGF0IHRoZSB2bS9vcGNvZGUgbGV2ZWwgZHVyaW5nIHJ1bnRpbWUgYnV0IEknZCBiZSBtdWNoIG1v cmUgd2lsbGluZyB0byBnaXZlIGl0IGEgZ28gbm93LiAgDQoNCk1vc3Qgb2YgbXkgZGVlcCBxdWVz dGlvbnMgb3ZlciB0aGUgbGFzdCB5ZWFyIGhhdmUgZ29uZSB1bmFuc3dlcmVkIGFuZCBzbyBJIHdh cyBsZWZ0IHRvIG15IG93biBkZXZpY2VzIHRvIGZpbmQgYSB3YXkgdG8gbWFrZSBpdCB3b3JrLiAN Cg0KPiA5LiBUaGlzOg0KPiBFbGltaW5hdGUgdGhlIGFiaWxpdHkgZm9yIGFuIGFjY2Vzc29yIHRv IGJlIGNhbGxlZCB2aWEgJG/ihpJfX2dldEhvdXJzKCksIHRoZSBhY2Nlc3NvciBmdW5jdGlvbnMg d2lsbCBiZSBjb21wbGV0ZWx5IHVuYXZhaWxhYmxlIGZvciB1c2UNCj4gZXhjZXB0IGFzIHByb3Bl cnR5IHJlZmVyZW5jZXMgKCRv4oaSSG91cnMpDQo+IA0KPiBJIHRoaW5rIGl0IGEgbWlzdGFrZS4g TW9yZSBtYWdpYyBhbmQgY29tcGxpY2F0aW9uIGluIHRoZSBlbmdpbmUgaXMgbm90IGEgZ29vZCB0 aGluZyBhbmQgd291bGQgcmVxdWlyZSB0b25zIG9mIHNwZWNpYWwgY2FzZSBjaGVja3MgaW4NCj4g YWxsIHBsYWNlcyB3aGVyZSB3ZSBkZWFsIHdpdGggZnVuY3Rpb25zLiBJIHRoaW5rIGl0IGlzIHdy b25nIC0gaWYgd2UgY3JlYXRlIGEgY2FsbGFibGUgZW50aXR5LCBpdCBzaG91bGQgYmUgY2FsbGFi bGUuIF9fIGluIHRoZSBuYW1lIGlzIHRoZQ0KPiBpbmRpY2F0aW9uIGVub3VnaCB0aGF0IHlvdSdy ZSBkZWFsaW5nIHdpdGggc3BlY2lhbCBtZXRob2QgYW5kIHlvdSBzaG91bGQgdHJlYWQgY2FyZWZ1 bGx5LCB3ZSBzaG91bGQgbm90IGdvIG91dCBvZiBvdXIgd2F5IHRvIG1lc3MNCj4gdXAgdGhlIGVu Z2luZSB0byBwcmV2ZW50IGl0Lg0KDQpZb3UgYW5kIE5pa2l0YSBnZXQgeW91ciBnbG92ZXMgb24s IG1ha2VzIGl0IGVhc2llciBvbiBtZSB0byBnbyB5b3VyIGRpcmVjdGlvbiBidXQgTmlraXRhIGRp ZCBub3QgbGlrZSB0aGlzIGF0IGFsbC4NCiANCj4gMTAuIEknbSBub3Qgc3VyZSB3aGF0IHRoZSBw b2ludCBhYm91dCBkZWJ1Z19iYWNrdHJhY2UoKSBpcyBidXQgYWdhaW4sIHdlIHNob3VsZCBub3Qg Y3JlYXRlIG1vcmUgY29tcGxpY2F0ZWQgbWFnaWMgdGhlcmUsIGl0IGp1c3QNCj4gc2hvdWxkIHNo b3cgd2hhdCByZWFsbHkgaXMgaGFwcGVuaW5nLg0KDQpUaGlzIHdvdWxkIHJlZmVyIHRvIHRoZSBm YWN0IHRoYXQgYSBkZWJ1ZyBiYWNrdHJhY2Ugd291bGQgc2hvdyB0aGF0IGl0J3MgaW4gYSBmdW5j dGlvbiBjYWxsZWQgX19nZXRIb3VycygpIChmb3IgZXhhbXBsZSkgd2hpY2ggd291bGQgb25seSBz ZXJ2ZSB0byBjb25mdXNlIGEgcGhwIGRldmVsb3BlciB3aG8gZG9lc24ndCBrbm93IHRoYXQgYSBn ZXR0ZXIgZm9yICRIb3VycyBpcyByZWFsbHkgYSBmdW5jdGlvbiBuYW1lZCBfX2dldEhvdXJzKCku ICBUaGVyZWZvcmUgSSB3aWxsIGJlIHBhdGNoaW5nIHRoZSBlcnJvciBzbyB0aGF0IGl0IGluZGlj YXRlcyBzb21ldGhpbmcgdGhlIHBocCBkZXZlbG9wZXIgd2lsbCB1bmRlcnN0YW5kLCBuYW1lbHkg dGhhdCB0aGUgbGluZSBpcyByZWZlcnJpbmcgdG8gYSBnZXR0ZXIuDQogDQo+IDExLiBBYm91dCBy ZWFkLW9ubHkvd3JpdGUtb25seSB0aGluZyAtIEkgbGlrZSBub3QgaGF2aW5nIHRoZSBrZXl3b3Jk cywgYnV0IGl0IGlzIHN0aWxsIG5vdCBjbGVhciBob3cgZmluYWwgcHJvZHVjZXMgcmVhZC1vbmx5 IHByb3BlcnR5IC0NCj4gZG8gSSBzYXkgc29tZXRoaW5nIGxpa2UgImZpbmFsIHNldCgpOyIgb3Ig aG93IGNhbiBJIHNheSAidGhlcmUncyBubyBzZXQgYW5kIG5ldmVyIHdpbGwgYmUiPw0KDQpJIGNv dWxkIG5vdCBnZXQgdGhpcyBwb2ludCBhY3Jvc3MgdG8gYW55b25lIGJ1dCBnYXZlIHVwLCBwcml2 YXRlIGZpbmFsIHNldCgpOyAhPSByZWFkLW9ubHkuICBXaXRoIGEgbm9uICJyZWFkLW9ubHkiIGtl eXdvcmQgc2NlbmFyaW8sIGEgInNldCIgY2FsbCB3b3VsZCBzdGlsbCBiZSBhbGxvd2VkIGFuZCB3 b3VsZCBzaG93IHVwIGFzIGFuIGFjY2VzcyB2aW9sYXRpb24gdG8gb3V0c2lkZSBvYnNlcnZlcnMg YW5kIHdvdWxkIGJlIGFsbG93ZWQgZnJvbSB3aXRoaW4gdGhlIGNsYXNzLiAgVGhpcyBpcyBub3Qg d2hhdCBJIHdhbnRlZCBidXQgSSBoYWQgZW5vdWdoIG90aGVyIHBvaW50cyBvZiBjb250ZW50aW9u IGFuZCBJIHlpZWxkZWQgb24gdGhpcy4NCg0KPiBJJ20gc29ycnkgaWYgc29tZSBwb2ludHMgd2Vy ZSBhbHJlYWR5IGRpc2N1c3NlZCAtIEkgc2Nhbm5lZCB0aHJvdWdoIHRoZSBtdWx0aXBsZSB0aHJl YWRzIGJ1dCBtYXkgdmVyeSB3ZWxsIG1pc3NlZCBzb21ldGhpbmcgaW4NCj4gMTAwKyBtZXNzYWdl cyB0aGF0IHRoZXJlIGFyZSwgaW4gYW55IGNhc2UgSSBmZWVsIG1vc3Qgb2YgdGhlIHF1ZXN0aW9u cyBhYm92ZSBtdXN0IGJlIHJlZmxlY3RlZCBpbiBSRkMgZXhwbGljaXRseS4NCj4gDQo+IFRoYW5r cywNCj4gLS0NCj4gU3RhbmlzbGF2IE1hbHlzaGV2LCBTb2Z0d2FyZSBBcmNoaXRlY3QNCj4gU3Vn YXJDUk06IGh0dHA6Ly93d3cuc3VnYXJjcm0uY29tLw0KPiAoNDA4KTQ1NC02OTAwIGV4dC4gMjI3 DQo=