Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:28228 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 35784 invoked by uid 1010); 4 Mar 2007 20:20:45 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 35769 invoked from network); 4 Mar 2007 20:20:45 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 4 Mar 2007 20:20:45 -0000 Authentication-Results: pb1.pair.com smtp.mail=guilhermeblanco@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=guilhermeblanco@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 66.249.92.168 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: guilhermeblanco@gmail.com X-Host-Fingerprint: 66.249.92.168 ug-out-1314.google.com Linux 2.4/2.6 Received: from [66.249.92.168] ([66.249.92.168:30641] helo=ug-out-1314.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A8/05-30612-A1A2BE54 for ; Sun, 04 Mar 2007 15:20:44 -0500 Received: by ug-out-1314.google.com with SMTP id o4so1086584uge for ; Sun, 04 Mar 2007 12:20:39 -0800 (PST) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=JOR8eOeJZJPfE/ad2zBvUh3QDASDFXOThInchxSgNYy0MNsKtWfaml75VoYaLkbOkslFMjIJVcWgN0UJv48X65+xw01qakTFA1xWgFOFeOzNvcu0XdrPm9VXZwcYI0WnKJD2Z3QWCk0sa66teiUtRVn6tFKgzRZpGTtTpjHlHUM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=QBcA1Hd3iUT6VbEkMv0DHKlEWDC8d8TVORfajTw9KEyF5JKXFP3jy8UZmv+O8AZQGUsIdQU6yLcXKn9MMSFTeGUys02gszfe+IzVbEdZ0rpYTHtjV2ppNUADgIgVbD8wZSLMYfzhSb7D7BX/g0QBL8MucRrrTmvi2FNN1M7DhDw= Received: by 10.115.54.1 with SMTP id g1mr985776wak.1173039638171; Sun, 04 Mar 2007 12:20:38 -0800 (PST) Received: by 10.115.73.17 with HTTP; Sun, 4 Mar 2007 12:20:38 -0800 (PST) Message-ID: Date: Sun, 4 Mar 2007 17:20:38 -0300 To: scott.mcnaught@synergy8.com Cc: internals@lists.php.net In-Reply-To: <001f01c75e86$fe96e900$0900a8c0@scottnote> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Content-Disposition: inline References: <45E33990.8030806@adaniels.nl> <408821909.20070303232323@marcus-boerger.de> <1508893792.20070304144812@marcus-boerger.de> <592868326.20070304163838@marcus-boerger.de> <26646995.20070304183706@marcus-boerger.de> <001e01c75e86$8043bce0$0900a8c0@scottnote> <001f01c75e86$fe96e900$0900a8c0@scottnote> Subject: Re: [PHP-DEV] Native Singleton Implementation From: guilhermeblanco@gmail.com ("Guilherme Blanco") SGksCgpUaGUgaWRlYSBiZWhpbmcgYSBuYXRpdmUgc2luZ2xldG9uIGNsYXNzIGltcGxlbWVudGF0 aW9uIHNob3VsZCBiZQpyZWFsbHkgaGFuZHksIGJ1dCB0aGlzIGlzIGZhaXJseSBzaW1wbGUgdG8g YWNoaWV2ZS4KClRha2UgYSBsb29rIGF0IFBIUCBkb2N1bWVudGF0aW9uIHRvIHNlZSBzb21lIHBh dHRlcm5zIGltcGxlbWVudGF0aW9uOgpodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2xhbmd1 YWdlLm9vcDUucGF0dGVybnMucGhwCgoKSSBob3BlIHRoaXMgaGVscHMuCgoKQmVzdCByZWdhcmRz LAoKT24gMy80LzA3LCBzY290dC5tY25hdWdodEBzeW5lcmd5OC5jb20gPHNjb3R0Lm1jbmF1Z2h0 QHN5bmVyZ3k4LmNvbT4gd3JvdGU6Cj4gKioqIFNvcnJ5IC0gZm9yZ290IHRvIGNoYW5nZSB0aGUg c3ViamVjdCAqKioKPgo+IEhlbGxvIEFsbCwKPgo+IEkgYW0gbmV3IHRvIHRoZSBwaHAgaW50ZXJu YWxzIG1haWxpbmcgbGlzdC4gIEkgYW0gYSBmYWlybHkgZXhwZXJpZW5jZWQKPiBwcm9ncmFtbWVy IHdpdGggYSBmZXcgaWRlYXMgZmxvYXRpbmcgYXJvdW5kLiAgSSBoYXZlIGNvbWUgZnJvbSBhIEMr KyBnYW1lcwo+IGRldmVsb3BtZW50IGJhY2tncm91bmQgYW5kIGhhdmUgbm93IG1vdmVkIHRvIHBy aW1hcmlseSB3cml0aW5nIGluIHBocC4KPgo+IE9uZSB0aGluZyB0aGF0IEkgdXNlZCBleHRlbnNp dmVseSBpbiBDKysgd2FzIHRoZSBzaW5nbGV0b24gZGVzaWduIHBhdHRlcm4uCj4gSSBhc3N1bWUg dGhhdCBtb3N0IG9mIHlvdSBrbm93IHdoYXQgdGhhdCBpcywgaWYgbm90IGEgcXVpY2sgZ29vZ2xl IHNlYXJjaAo+IHdpbGwgbGV0IHlvdSBrbm93LiAgSSBoYXZlIHdyaXR0ZW4gYW4gaW1wbGVtZW50 YXRpb24gb2Ygc2luZ2xldG9uIGluIHBocCwKPiBidXQgaXQncyBzbG93LCBhbmQgeW91IGhhdmUg dG8gdXNlIHN0cmluZ3MgdG8gcmVmZXJlbmNlIHRoZSBjbGFzc2VzLCBvcgo+IGR1cGxpY2F0ZSBh IGxvdCBvZiBjb2RlLiAoU2VlIG1ldGhvZHMgMSBhbmQgMiBiZWxvdykKPgo+IEkgcmVjZW50bHkg c3VibWl0dGVkIGFuIFJGQyB0byBidWdzLnBocC5uZXQgYWJvdXQgdGhpcywgYnV0IHRoZXJlIHdh cyBuZXZlcgo+IGZlZWRiYWNrIGZyb20gdGhlIGludGVybmFscyBncm91cCwgc28gSSBhbSBnb2lu ZyB0byB0cnkgaGVyZS4KPgo+IGh0dHA6Ly9idWdzLnBocC5uZXQvYnVnLnBocD9pZD0zOTk0Ngo+ Cj4gSW4gYSBmZXcgbW9udGhzIHRpbWUsIEkgd291bGQgbGlrZSB0byBzdGFydCBoZWxwaW5nIHRo ZSBkZXZlbG9wbWVudCBvZiBwaHAsCj4gYnV0IEkgYW0gdG9vIGJ1c3kgYXQgdGhlIG1vbWVudC4K Pgo+IEkgd2FzIHdvbmRlcmluZyBpZiBhbnlvbmUgaGFzIHRoZSB0aW1lIHRvIGltcGxlbWVudCB0 aGlzIHdpbm5lciBmZWF0dXJlLiAgSQo+IHRoaW5rIGl0IHdvdWxkIGVuY291cmFnZSBnb29kIHBy b2dyYW1taW5nIHByYWN0aXNlIGFuZCBzcGVlZCB1cCBhIGxvdCBvZiBwaHAKPiBhcHBzLiAgQWxz byBJIHdvdWxkIGxpa2UgcGVvcGxlJ3MgdGhvdWdodHMgYW5kIGZlZWRiYWNrIG9uIHRoZSBpZGVh Lgo+Cj4gSWYgbm8tb25lIGNhbiBpbXBsZW1lbnQgdGhpcyBiZWZvcmUgbWUsIEkgd2lsbCBoYXZl IGEgZ28gYXQgaXQgaW4gYSBmZXcKPiBtb250aHMgdGltZS4KPgo+IFRoYW5reW91LAo+Cj4gU2Nv dHQgTWNOYXVnaHQKPgo+Cj4KPiBEZXNjcmlwdGlvbjoKPiAtLS0tLS0tLS0tLS0KPiAjIyMKPiAj IEludHJvZHVjdGlvbgo+ICMjIwo+IFRoaXMgZG9jdW1lbnQgaXMgYW4gUkZDIGZvciBhZGRpbmcg YSBzbWFsbCBwYXRjaCB0byB0aGUgemVuZCBlbmdpbmUgdG8KPiBhbGxvdyBmb3IgbmF0aXZlIHNp bmdsZXRvbiBjbGFzc2VzLiAgVGhlIHByb2JsZW0KPiBpcyB0aGF0IGN1cnJlbnRseSB0aGVyZXMg bm8gY2xlYW4gd2F5IHRvIGltcGxlbWVudCBzaW5nbGV0b24gY2xhc3NlcyBpbgo+IHVzZXItbGFu ZCBvdmVyIHRoZSBlbnRpcmV0eSBvZiBhIHByb2plY3QuCj4KPiBTaW5nbGV0b24gY2xhc3NlcyBh cmUgYmVuZWZpY2lhbCBiZWNhdXNlOgo+Cj4gLSBSZW1vdmVzIHRoZSBvdmVyaGVhZCBvZiBoYXZp bmcgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoZSBvbmUgb2JqZWN0Cj4gd2hlbiB0aGVyZSBpcyBu byBuZWVkCj4gLSBBbGxvd3MgeW91IHRvIGtlZXAgdGhlIG9iamVjdHMgc3RhdGUgcmF0aGVyIHRo YW4gYWx3YXlzIHN0YXJ0aW5nIGZyb20KPiBhbiBpbml0aWFsIHN0YXRlLgo+IC0gVGhleSBwcm92 aWRlIG5hbWVzcGFjZXMgd2l0aCB0aGUgYmVuZWZpdHMgb2YgcG9seW1vcnBoaXNtIChlZyAtCj4g c2luZ2xldG9uIGNsYXNzZXMgY2FuIG92ZXJyaWRlIC8gaW5oZXJpdCBmcm9tIGVhY2ggb3RoZXIp Cj4KPiBUaHJvdWdob3V0IHRoaXMgZG9jdW1lbnQsIEkgd2lsbCB1c2UgYW4gZXhhbXBsZSBvZiBh IHNpbmdsZXRvbiBjbGFzcwo+ICJtZW1iZXJzIiB3aGljaCBhY3RzIGFzIGFuIGludGVyZmFjZSB0 byBhIGRhdGFiYXNlIHRhYmxlLgo+IFRoaXMgY2xhc3MgY2FuIHNhdmUgYW5kIGxvYWQgbWVtYmVy cyBmcm9tIHRoaXMgZGF0YWJhc2UgdGFibGUgc2ltcGx5IGJ5Cj4gY2FsbGluZyB0aGUgZm9sbG93 aW5nIG1ldGhvZHMgaW4gdGhpcyBjbGFzcy4KPgo+IG1lbWJlcnM6OmdldCgkbWVtYmVyX2lkKSBM b2FkcyBhIG1lbWJlciBmcm9tIGEgbWVtYmVyIGlkIGFuZCByZXR1cm5zIGFuCj4gYXNzb2NpYXRp dmUgYXJyYXkgd2l0aCBpbmZvIGFib3V0IHRoYXQgbWVtYmVyCj4gbWVtYmVyczo6c2F2ZSgkbWVt YmVyKSBTYXZlcyBhIG1lbWJlciB0byB0aGUgZGF0YWJhc2UgZnJvbSBhbiBhcnJheSBvZgo+IHBy b3BlcnRpZXMgYWJvdXQgdGhhdCBtZW1iZXIKPgo+IFdpdGggdGhlIHJlY2VudCBwaGFzZSBvZiB0 aWVyZWQgYW5kIHNlcnZpY2Ugb3JpZW50ZWQgYXJjaGl0ZWN0dXJlLCB0aGUKPiBuZWVkIGZvciBT aW5nbGV0b24gaGFzIGJlY29tZSBtb3JlIGFuZCBtb3JlIGFwcGFyZW50Lgo+Cj4gIyMjCj4gIyBT aW5nbGV0b24gaW4gcGhwNQo+ICMjIwo+IEluIHRoZSBwYXN0LCBJIGhhdmUgaW1wbGVtZW50ZWQg U2luZ2xldG9uIHR3byBkaWZmZXJlbnQgd2F5cy4gIEJvdGggb2YKPiB0aGVzZSBoYXZlIHByb2Js ZW1zLgo+Cj4gIyBNZXRob2QgMToKPiBUaGUgZmlyc3QgbWV0aG9kIGludm9sdmVzIGhhdmluZyBh IHB1YmxpYyBzdGF0aWMgZ2V0SW5zdGFuY2UgbWV0aG9kIGluCj4gZXZlcnkgc2luZ2xldG9uIGNs YXNzLiAgVGhpcyBzdWNrcyBiZWNhdXNlIHlvdQo+IG5lZWQgdG8gbWFudWFsbHkgY29weSBhbmQg cGFzdGUgaXQgaW50byBldmVyeSBzaW5nbGV0b24gY2xhc3MgeW91IG1ha2UuCj4gVXNpbmcgYSBz aW5nbGV0b24gY2xhc3MgaW4gdGhpcyB3YXkgaXMgYWxzbyBjb25mdXNpbmcKPiBmb3Igbm92aWNl IHByb2dyYW1tZXJzLiBFZzoKPgo+IDw/cGhwCj4KPiBjbGFzcyBtZW1iZXJzCj4gewo+ICAgICAg ICAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRJbnN0YW5jZSgpCj4gICAgICAgICB7Cj4gICAg ICAgICAgICAgICAgIHN0YXRpYyAkb2JqZWN0ID0gbnVsbDsKPgo+ICAgICAgICAgICAgICAgICBp Zigkb2JqZWN0KQo+ICAgICAgICAgICAgICAgICB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuICRvYmplY3Q7Cj4gICAgICAgICAgICAgICAgIH0KPgo+ICAgICAgICAgICAgICAgICAk b2JqZWN0ID0gbmV3IG1lbWJlcnMoKTsKPiAgICAgICAgICAgICAgICAgcmV0dXJuICRvYmplY3Q7 Cj4gICAgICAgICB9Cj4KPiAgICAgICAgIC8qKgo+ICAgICAgICAgICogUmV0dXJucyBhIG1lbWJl ciBmcm9tIHRoZSBkYXRhYmFzZSBiYXNlZCBvbiB0aGVpciBpZAo+ICAgICAgICAgICovCj4gICAg ICAgICBmdW5jdGlvbiBnZXQoJGlkKQo+ICAgICAgICAgewo+ICAgICAgICAgICAgICAgICAvLyAu Li4KPiAgICAgICAgIH0KPgo+ICAgICAgICAgLy8gc2F2ZSBtZXRob2QgZXRjLi4uCj4gfQo+Cj4g Ly8gVXNhZ2UKPiAkYXJyTWVtYmVyID0gbWVtYmVyczo6Z2V0SW5zdGFuY2UoKS0+Z2V0KDQ5KTsK PiAkYXJyTWVtYmVyWydtZW1iZXJfZl9uYW1lJ10gPSAnU2NvdHQnOwo+IG1lbWJlcnM6OmdldElu c3RhbmNlKCktPnNhdmUoJGFyck1lbWJlcik7Cj4KPiA/Pgo+Cj4gIyBNZXRob2QgMjoKPiBUaGlz IG1ldGhvZCBpbnZvbHZlcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSBvZiBjbGFzcyBuYW1lcyB0byB0 aGVpcgo+IGluc3RhbmNlcywgcHJvYmFibHkgdmlhIGEgaGVscGVyIGZ1bmN0aW9uIHNpbWlsYXIg dG8gdGhpcy4KPgo+IDw/cGhwCj4KPiBjbGFzcyBtZW1iZXJzCj4gewo+ICAgICAgICAgLyoqCj4g ICAgICAgICAgKiBSZXR1cm5zIGEgbWVtYmVyIGZyb20gdGhlIGRhdGFiYXNlIGJhc2VkIG9uIHRo ZWlyIGlkCj4gICAgICAgICAgKi8KPiAgICAgICAgIGZ1bmN0aW9uIGdldCgkaWQpCj4gICAgICAg ICB7Cj4gICAgICAgICAgICAgICAgIC8vIC4uLgo+ICAgICAgICAgfQo+Cj4gICAgICAgICAvLyBz YXZlIG1ldGhvZCBldGMuLi4KPiB9Cj4KPiAvKioKPiAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9m IGEgc2luZ2xldG9uIGNsYXNzIGZyb20gaXRzIGNsYXNzIG5hbWUKPiAgKi8KPiBmdW5jdGlvbiBn ZXRJbnN0YW5jZSgkc3RyQ2xhc3MpCj4gewo+ICAgICAgICAgc3RhdGljICRvYmplY3RzID0gYXJy YXkoKTsKPgo+ICAgICAgICAgaWYoIWlzc2V0KCRvYmplY3RzWyRzdHJDbGFzc10pKQo+ICAgICAg ICAgewo+ICAgICAgICAgICAgICAgICByZXR1cm4gJG9iamVjdHNbJHN0ckNsYXNzXTsKPiAgICAg ICAgIH0KPgo+ICAgICAgICAgJG9iamVjdHNbJHN0ckNsYXNzXSA9IG5ldyBtZW1iZXJzKCk7Cj4g ICAgICAgICByZXR1cm4gJG9iamVjdHNbJHN0ckNsYXNzXTsKPiB9Cj4KPiAvLyBVc2FnZQo+ICRh cnJNZW1iZXIgPSBnZXRJbnN0YW5jZSgnbWVtYmVycycpLT5nZXQoNDkpOwo+ICRhcnJNZW1iZXJb J21lbWJlcl9mX25hbWUnXSA9ICdTY290dCc7Cj4gZ2V0SW5zdGFuY2UoJ21lbWJlcnMnKS0+c2F2 ZSgkYXJyTWVtYmVyKTsKPgo+ID8+Cj4KPiBUaGlzIHN1Y2tzIGJlY2F1c2UgaXRzIHNsb3csIGNv bmZ1c2luZyBmb3Igbm92aWNlcywgYW5kIElERXMgbmV2ZXIgcGljawo+IHVwIHRoZSBjbGFzcyBm b3IgY29kZSBoaW50aW5nLgo+Cj4gIyMjCj4gIyBQcm9wb3NlZCBuZXcgZnVuY3Rpb25hbGl0eQo+ ICMjIwo+Cj4gSSBwcm9wb3NlIHRoYXQgc2luZ2xldG9uIGNsYXNzZXMgYmVjb21lIGEgbmF0aXZl IHBhcnQgb2YgdGhlIHBocAo+IGxhbmd1YWdlIGJ5IGFkZGluZyB0aGUgInNpbmdsZXRvbiIgY2xh c3MgbW9kaWZpZXIgVF9TSU5HTEVUT04uCj4KPiBJIGRvbid0IGtub3cgaWYgbmF0aXZlIHNpbmds ZXRvbiBjbGFzc2VzIGhhdmUgYmVlbiBpbXBsZW1lbnRlZCBpbiBhCj4gbGFuZ3VhZ2UgYmVmb3Jl LiAgTW9zdCBvdGhlciBsYW5ndWFnZXMgZWcgLSBDKysKPiB5b3UgY2FuIHVzZSB0ZW1wbGF0ZSBj bGFzc2VzIG9yIGdlbmVyaWNzIHRvIGltcGxlbWVudCBhIGNsZWFuCj4gc2luZ2xldG9uLgo+Cj4g VGhlIHplbmQgZW5naW5lIGNvdWxkIGZlYXR1cmUgYSBoYXNoIHRhYmxlIGFuZCBzdG9yZSB0aGUg aW5zdGFuY2VzIG9mCj4gb2JqZWN0cy4KPgo+IEFuIGV4YW1wbGUgb2YgdGhlIG5ldyB3YXkgb2Yg dXNpbmcgc2luZ2xldG9uIGNsYXNzZXMgd291bGQgYmU6Cj4KPiA8P3BocAo+Cj4gLyoqCj4gICog QSBjbGFzcyBmb3Igc2F2aW5nIC8gcmV0cmVpdmluZyBtZW1iZXJzIGZyb20gYSBkYXRhYmFzZQo+ ICAqLwo+IHNpbmdsZXRvbiBjbGFzcyBtZW1iZXJzIGV4dGVuZHMgZGF0YWFkYXB0ZXIKPiB7Cj4g ICAgICAgICAvKioKPiAgICAgICAgICAqIFJldHVybnMgYSBtZW1iZXIgZnJvbSB0aGUgZGF0YWJh c2UgYmFzZWQgb24gdGhlaXIgaWQKPiAgICAgICAgICAqLwo+ICAgICAgICAgZnVuY3Rpb24gZ2V0 KCRpZCkKPiAgICAgICAgIHsKPiAgICAgICAgICAgICAgICAgLy8gLi4uCj4gICAgICAgICB9Cj4K PiAgICAgICAgIC8vIHNhdmUgbWV0aG9kIGV0Yy4uLgo+IH0KPgo+IC8vIFVzYWdlCj4gJGFyck1l bWJlciA9IG1lbWJlcnMtPmdldCg0OSk7Cj4gbWVtYmVycy0+c2F2ZSgkYXJyTWVtYmVyKTsKPgo+ ID8+Cj4KPiAjIyMKPiAjIEVkZ2UgY2FzZXMgLyBnb3QtY2hhJ3MKPiAjIyMKPiBTb21lIGludmVz dGlnYXRpb24gd2lsbCBoYXZlIHRvIGJlIHBlcmZvcm1lZCBhcyB0byBob3cgaW5oZXJpdGVuY2Ug d2lsbAo+IHdvcmsgd2l0aCBzaW5nbGV0b25zLgo+Cj4gRWcKPiAtIE5ldmVyIGhhdmUgc2luZ2xl dG9uIGFic3RyYWN0IGNsYXNzZXM/Cj4KPiAtIFdoYXQgaGFwcGVucyB3aGVuICRtZW1iZXJzID0g bmV3IG1lbWJlcnMoKSBpcyBjYWxsZWQKPiAtLSBJIHNheSBhbiBleGNlcHRpb24gYmVpbmcgdGhy b3duIGFuZCBhIHN1Z2dlc3Rpb24gdG8gcmVtb3ZlICJuZXciCj4KPiAtIElzIGl0IG9rIHRvIGdv ICRtZW1iZXJzID0gbWVtYmVyczsgPwo+IC0tIEknZCBzYXkgeWVzCj4KPiAtIFNpbmdsZXRvbiBj b25zdHJ1Y3RvcnMgc2hvdWxkIG5vdCBoYXZlIHBhcmFtZXRlcnMKPgo+IC0gUGVyaGFwcyBhIG5l dyBmdW5jdGlvbiBzaW5nbGV0b25fZ2V0b2JqZWN0cyBuZWVkcyB0byBiZSBhZGRlZCB0bwo+IGVu YWJsZSBhY2Nlc3MgdG8gdGhlIGludGVybmFsIGhhc2ggdGFibGUKPgo+IC0gRGVyZWZlcmVuY2lu ZyBhIG5vbi1zaW5nbGV0b24gY2xhc3Mgc2hvdWxkIHByb2R1Y2UgdGhlIHNhbWUgZXJyb3IKPgo+ IC0tCj4gUEhQIEludGVybmFscyAtIFBIUCBSdW50aW1lIERldmVsb3BtZW50IE1haWxpbmcgTGlz dAo+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdDogaHR0cDovL3d3dy5waHAubmV0L3Vuc3ViLnBocAo+ Cj4KCgotLSAKR3VpbGhlcm1lIEJsYW5jbyAtIFdlYiBEZXZlbG9wZXIKQ0JDIC0gQ2VydGlmaWVk IEJpbmRvd3MgQ29uc3VsdGFudApDZWxsIFBob25lOiArNTUgKDE2KSA5MTY2LTY5MDIKTVNOOiBn dWlsaGVybWVibGFuY29AaG90bWFpbC5jb20KVVJMOiBodHRwOi8vYmxvZy5iaXNuYS5jb20KU8Oj byBDYXJsb3MgLSBTUC9CcmF6aWwK