Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:103988 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 22290 invoked from network); 1 Feb 2019 16:47:31 -0000 Received: from unknown (HELO NAM01-SN1-obe.outbound.protection.outlook.com) (40.107.82.138) by pb1.pair.com with SMTP; 1 Feb 2019 16:47:31 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sq54K4CpW9Saq3FwG9yF4uCvgTpunqY2jNuTFRax2kE=; b=n6nvFKpqtBGY7pYXfNreNrczDEXdtqRk4dGbbyrF98aaCBxEQZM8xV8A1A6ha6jKBOin7gF0vmbTgAZRJDEUtJp42nBMkyG00VQTKgYGMbQ7Euqj8gaWYS5Lj1u6lo9UGwmiY7GdZjbWqM3KpoHtKe6swMpXpfF+JkbmvUrhyT8= Received: from DM6PR02MB5932.namprd02.prod.outlook.com (20.179.68.220) by DM6PR02MB5148.namprd02.prod.outlook.com (20.176.114.94) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1580.20; Fri, 1 Feb 2019 13:27:37 +0000 Received: from DM6PR02MB5932.namprd02.prod.outlook.com ([fe80::bd59:7d60:3d3d:d5c7]) by DM6PR02MB5932.namprd02.prod.outlook.com ([fe80::bd59:7d60:3d3d:d5c7%3]) with mapi id 15.20.1558.025; Fri, 1 Feb 2019 13:27:37 +0000 To: Nikita Popov CC: Joe Watkins , Larry Garfield , "internals@lists.php.net" Thread-Topic: [PHP-DEV] [RFC] JIT Thread-Index: AQHUuUlqVOVjmKFgoEm1MWGJHDXwwaXJidMAgAAKfwCAAAJ7AIAABI+AgAAYQQCAAGQxAIAAu6AA///RyYCAAEe3AIAAAyeAgAABHIA= Date: Fri, 1 Feb 2019 13:27:36 +0000 Message-ID: <6981f376-f590-913b-b7a2-5cf5bcb816bf@zend.com> References: <2321148.uWQDsfDpJu@vulcan> <4df2d7cf-31dc-a9cf-eefe-d92bad199312@zend.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HE1PR0402CA0002.eurprd04.prod.outlook.com (2603:10a6:3:d0::12) To DM6PR02MB5932.namprd02.prod.outlook.com (2603:10b6:5:153::28) authentication-results: spf=none (sender IP is ) smtp.mailfrom=dmitry@zend.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [212.232.72.197] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DM6PR02MB5148;6:+ilqwyW6QmG1eMuNsJAy23QVaV5Pz58xWG3tYyN+B2TQOj9is3E8+hRsau+urMAnvB4w1Uqc2LXvurGp/67UC1QafiKilbwO6hVpB/mCyvVbZsXPdLc/iZ2hckBn0qyw58FSCbvVfWvb9F4kCpcxPp3AfzK/anM4uvp1JIu5nXK7APQMH+NsHcI8khuoY53LY8s7RVssPC8Wk5ffSJuoDzguGMrO49KgPesHuQa+tjnnKLHDt9Hxt9uS34wC/SX0jHMpDiUrO12Zvh7HbZ1j2UVVUdVsI+hT/M6sbshke1OlHXP6NUg8kFiw8tmaWL2ukwC36PJpop3D7mFzbhL6SJGT7nsLgAGUbktblxBYmpRvNEtDIY8gwz3l3yV+a2FwiGX6NNv6MwoGvFmPqHKwu3CtfldNNPjLGZ0U70np8oNPASOn1u1PAwy1B6Ne6qPI/tCdGttilffU0ukXJvjAMQ==;5:TWow7rggZcCuFLXtL8NbRF4bHHHZKmDoViqqpXZZFU1sXfwaEdoMogX0qzNueQ8K8Az31KVMith4GVcMdaoWMXa3QW56MS0+evWyiiNjQX/8XAedJySEN9UNdrWZcQ3UQQVoBynjAaRJ2Ni2a/0nJP6AkeuGSdQjNQu61DcFg6mctwAUBcleNR1LMF0dq2uqCFTDacdShER6AgMq2mAkZA==;7:FCUOVab8hrPgtaAH2/EtxvA+X7P3kiefZ05pDKaZAmH1/u5m4YqV7RLIVSmbHvJhnQDDK/M2C60ClBQ+fIEOLltLZouUKLRP9LuVGfC32wxPNALE/F4goWeKSeI2Dw/CospIcKeZFgzTCUSuzSlOCg== x-ms-office365-filtering-correlation-id: 9d7d84ec-4a36-4cf4-43a2-08d6884907d8 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(2017052603328)(7153060)(7193020);SRVR:DM6PR02MB5148; x-ms-traffictypediagnostic: DM6PR02MB5148: x-microsoft-antispam-prvs: x-forefront-prvs: 09352FD734 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(136003)(346002)(376002)(39850400004)(396003)(366004)(199004)(189003)(966005)(76176011)(97736004)(6512007)(6306002)(8936002)(229853002)(6436002)(6486002)(386003)(16799955002)(15188155005)(6506007)(53546011)(256004)(102836004)(316002)(14444005)(6116002)(31696002)(2906002)(478600001)(66066001)(86362001)(3846002)(7736002)(8676002)(305945005)(14454004)(81166006)(81156014)(99286004)(486006)(446003)(71190400001)(31686004)(6916009)(106356001)(68736007)(105586002)(93886005)(11346002)(71200400001)(476003)(36756003)(6246003)(52116002)(39060400002)(25786009)(53936002)(4326008)(54906003)(186003)(26005)(2616005);DIR:OUT;SFP:1102;SCL:1;SRVR:DM6PR02MB5148;H:DM6PR02MB5932.namprd02.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: zend.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: pDagEdG/Hxd/j3yS7QZPdGoTBf6r2DwJpvv2S46AqpXB2f/YGafpSbn8GUqM0nROrskXugGb3PwH4P2Iq7b8AB2HueYNH+Yp2oeu70B3zuWZbIXXzXJF0DCB+IpoSm3wZoTPQ8OW+qyd3u0wK4wUPb7laU8hfwWqy2xzFP3FtLluWVhEcFuyvKq9TB/H2qYPudx+db8a/7nF4jGVh7xa2dVaTaEif27UNevhOnDHr2WlG2+a8pjLe2Z9UpupypWgjHDJYTgkbMtjWHCLlgUXH/7s98eUPr/oldF0RFdnZhBR83wjGiPmHpqWtadMVsERgqh8actf5FLJiZ84mrkEkXc4rMhoTxUYGrbc3aAlMSE+l0+LLcn7to01+4Ai6elo/vhJanJ4TvVR9f2TUJVPf4DBmpWs54xv8lCeuWnB44E= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d7d84ec-4a36-4cf4-43a2-08d6884907d8 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2019 13:27:35.5420 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: 32210298-c08b-4829-8097-6b12c025a892 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB5148 Subject: Re: [PHP-DEV] [RFC] JIT From: dmitry@zend.com (Dmitry Stogov) DQoNCk9uIDIvMS8xOSA0OjIzIFBNLCBOaWtpdGEgUG9wb3Ygd3JvdGU6DQo+IE9uIEZyaSwgRmVi IDEsIDIwMTkgYXQgMjoxMiBQTSBEbWl0cnkgU3RvZ292IDxkbWl0cnlAemVuZC5jb20gDQo+IDxt YWlsdG86ZG1pdHJ5QHplbmQuY29tPj4gd3JvdGU6DQo+IA0KPiANCj4gDQo+ICAgICBPbiAyLzEv MTkgMTE6NTUgQU0sIEpvZSBXYXRraW5zIHdyb3RlOg0KPiAgICAgID4gTW9ybmluZyBEbWl0cnks IGFuZCBpbnRlcm5hbHMsDQo+ICAgICAgPg0KPiAgICAgID4gVGhpcyBpcyBtYXJ2ZWxsb3VzIHN0 dWZmLCB0cnVseSBicmlsbGlhbnQuIEkgcGFydGljdWxhcmx5DQo+ICAgICBhcHByZWNpYXRlIHRo ZQ0KPiAgICAgID4gbm9uLWludHJ1c2l2ZSBhcHByb2FjaCBvZiBzZXR0aW5nIGppdCdkIGNvZGUg YXMgdGhlIG9wY29kZQ0KPiAgICAgaGFuZGxlciwgdGhpcw0KPiAgICAgID4gbWFrZXMgbGlmZSBh IGxpdHRsZSBlYXNpZXIgZm9yIGhhY2t5IGV4dGVuc2lvbiBhdXRob3JzLCBJIHRoaW5rLg0KPiAg ICAgID4NCj4gICAgICA+IEFzIG90aGVycyBoYXZlIHNhaWQ6DQo+ICAgICAgPg0KPiAgICAgID7C oCDCoCBJIGRvbid0IGxpa2UgdGhlIGlkZWEgb2Ygb21pdHRpbmcgdG8gc3VwcG9ydCB3aW5kb3dz LCBsZXNzDQo+ICAgICB3b3JyaWVkDQo+ICAgICAgPiBhYm91dCBmYW5jeSBhcmNoaXRlY3R1cmVz Lg0KPiANCj4gICAgIEkgY2FuIHByb3ZpZGUgaGVscCB0byBwZW9wbGUgd2hvIHdpbGwgZ29pbmcg dG8gaW1wbGVtZW50IEpJVCBzdXBwb3J0DQo+ICAgICBmb3INCj4gICAgIFdpbmRvd3MuIFRoaXMg aXMgbm90IGdvaW5nIHRvIGJlIGVhc3ksIGJlY2F1c2UgTVNWQyBkb2Vzbid0IHN1cHBvcnQNCj4g ICAgICJoeWJyaWQgVk0iIGFuZCAiZ2xvYmFsIHJlZ2lzdGVyIHZhcmlhYmxlcyIsIHRoZXJlZm9y ZSB0aGUgY29kZSBpcw0KPiAgICAgZ29pbmcNCj4gICAgIHRvIGJlIG1vcmUgZXhwZW5zaXZlLg0K PiANCj4gDQo+IEkgdGhpbmsgYW4gaW1wb3J0YW50IHBvaW50IGhlcmUgaXMgdGhhdCB0aGlzIGlz c3VlIGFmZmVjdHMgbm90IG9ubHkgDQo+IFdpbmRvd3M6IEl0IGFsc28gYWZmZWN0cyBhbnkgcGxh dGZvcm0gdGhhdCB1c2VzIGNsYW5nIGFzIHRoZWlyIGNvbXBpbGVyLiANCj4gTm90YWJseSB0aGlz IGluY2x1ZGVzIE1hY09TLg0KPiANCj4gQ2xhbmcgdGhlb3JldGljYWxseSBzdXBwb3J0cyBnbG9i YWwgcmVnaXN0ZXJzLCBidXQgb25seSBmb3IgDQo+IG5vbi1hbGxvY2F0YWJsZSByZWdzIChyc3Ag YW5kIHJicCksIHdoaWNoIEkgdGhpbmsgaXMgbm90IHZlcnkgdXNlZnVsIGZvciANCj4gdGhpcyBw dXJwb3NlLg0KDQpXZSB3aWxsIGhhdmUgdG8gcHJvdmlkZSBhIHBhdGNoIGZvciBDTEFORywgaW1w bGVtZW50aW5nIFBIUCBWTSBjYWxsaW5nIA0KY29udmVudGlvbiAoSEhWTSwgRXJsYW5nLCBIYXNr ZWwgZGlkIHRoaXMpLg0KDQpUaGFua3MuIERtaXRyeS4NCg0KPiANCj4gU28gdGhpcyBwcm9ibGVt IG5lZWRzIHRvIGJlIHNvbHZlZCBub3QganVzdCBmb3IgV2luZG93cyBzdXBwb3J0LCBidXQgDQo+ IGFsc28gZm9yIE1hY09TIHN1cHBvcnQgKGFuZCBhbHNvIEZyZWVCU0QgYW5kIG90aGVyIGNsYW5n LXVzaW5nIHBsYXRmb3JtcykuDQo+IA0KPiBOaWtpdGENCj4gDQo+ICAgICAgPsKgIMKgIEknbSBu b3Qga2VlbiBvbiB0aGUgaWRlYSB0aGF0IHRoZXJlIGlzIG5vIHdheSB0byBkZWJ1ZyB0aGUNCj4g ICAgIGNvZGUgdGhpcw0KPiAgICAgID4gZ2VuZXJhdGVzIG91dHNpZGUgb2YgR0RCLCBhbmQgSSdt IG5vdCBzdXJlIGhvdyB1c2VmdWwgZ2RiIHdpbGwNCj4gICAgIGJlOiBJJ3ZlDQo+ICAgICAgPiB0 cmllZCB0byBkZWJ1ZyBKSVQnZCBjb2RlIGluIHRoYXQgYmVmb3JlIGFuZCBpdCBkb2Vzbid0IGRv IHNvDQo+ICAgICB3ZWxsLCBidXQNCj4gICAgICA+IEkgY291bGQgZWFzaWx5IGhhdmUgYmVlbiBk b2luZyBpdCB3cm9uZy4gSSdkIGJlIHZlcnkgaGFwcHkgdG8gYmUNCj4gICAgICA+IGNvcnJlY3Rl ZCBhYm91dCB0aGlzID8NCj4gDQo+ICAgICBJJ20gbm90IHN1cmUsIHdoYXQgaXMgd3Jvbmcgd2l0 aCBHREIsIGFuZCBpZiBhbnkgb3RoZXIgZGVidWdnZXJzIGhhdmUNCj4gICAgIHNwZWNpYWwgQVBJ IGZvciBydW4tdGltZSBnZW5lcmF0ZWQgY29kZS4NCj4gDQo+ICAgICAgPsKgIMKgIEknbSBub3Qg a2VlbiBvbiB0aGUgaWRlYSBvZiBtZXJnaW5nIHRoaXMgaW50byA3LjQsIGZvciB2YXJpb3VzDQo+ ICAgICAgPiByZWFzb25zIHRoYXQgZG9uJ3QgbmVlZCB0byBiZSByZXBlYXRlZC4NCj4gDQo+ICAg ICBPSy4gSXQncyBub3Qgb25seSB5b3VyIG9waW5pb24uDQo+ICAgICBZb3UgbWF5IHZvdGUgYWdh aW5zdCwgYW5kIHBlcnN1YWRlIG90aGVycy4NCj4gDQo+ICAgICBUaGFua3MuIERtaXRyeS4NCj4g DQo+ICAgICAgPg0KPiAgICAgID4gQm90dG9tIGxpbmUgdGhvdWdoLCBJIGxvdmUgaXQsIGl0J3Mg YnJpbGxpYW50LCBhbmQgbG9vayBmb3J3YXJkDQo+ICAgICB0byBQSFAgOC4NCj4gICAgICA+DQo+ ICAgICAgPiBUaGFuayB5b3UsIERtaXRyeS4NCj4gICAgICA+DQo+ICAgICAgPiBDaGVlcnMNCj4g ICAgICA+IEpvZQ0KPiAgICAgID4NCj4gICAgICA+DQo+ICAgICAgPiBPbiBGcmksIDEgRmViIDIw MTkgYXQgMDk6NDEsIERtaXRyeSBTdG9nb3YgPGRtaXRyeUB6ZW5kLmNvbQ0KPiAgICAgPG1haWx0 bzpkbWl0cnlAemVuZC5jb20+DQo+ICAgICAgPiA8bWFpbHRvOmRtaXRyeUB6ZW5kLmNvbSA8bWFp bHRvOmRtaXRyeUB6ZW5kLmNvbT4+PiB3cm90ZToNCj4gICAgICA+DQo+ICAgICAgPg0KPiAgICAg ID4NCj4gICAgICA+wqAgwqAgwqBPbiAyLzEvMTkgMzoyOSBBTSwgTGFycnkgR2FyZmllbGQgd3Jv dGU6DQo+ICAgICAgPsKgIMKgIMKgID4gT24gVGh1cnNkYXksIEphbnVhcnkgMzEsIDIwMTkgMTI6 MzA6NTIgUE0gQ1NUIENoYXNlIFBlZWxlcg0KPiAgICAgd3JvdGU6DQo+ICAgICAgPsKgIMKgIMKg ID4+IE9uIFRodSwgSmFuIDMxLCAyMDE5IGF0IDEyOjA0IFBNIFplZXYgU3VyYXNraQ0KPiAgICAg PHplZXZAcGhwLm5ldCA8bWFpbHRvOnplZXZAcGhwLm5ldD4NCj4gICAgICA+wqAgwqAgwqA8bWFp bHRvOnplZXZAcGhwLm5ldCA8bWFpbHRvOnplZXZAcGhwLm5ldD4+PiB3cm90ZToNCj4gICAgICA+ wqAgwqAgwqAgPj4+IE9uIFRodSwgSmFuIDMxLCAyMDE5IGF0IDY6NDcgUE0gS2FsbGUgU29tbWVy IE5pZWxzZW4NCj4gICAgICA+wqAgwqAgwqA8a2FsbGVAcGhwLm5ldCA8bWFpbHRvOmthbGxlQHBo cC5uZXQ+IDxtYWlsdG86a2FsbGVAcGhwLm5ldA0KPiAgICAgPG1haWx0bzprYWxsZUBwaHAubmV0 Pj4+DQo+ICAgICAgPsKgIMKgIMKgID4+Pg0KPiAgICAgID7CoCDCoCDCoCA+Pj4gd3JvdGU6DQo+ ICAgICAgPsKgIMKgIMKgID4+Pj4gV2l0aG91dCBteSB1c3VhbCBXaW5kb3dzIGJpYXMsIEkgZG8g YmVsaWV2ZSBpdCBpcyBhDQo+ICAgICAgPsKgIMKgIMKgY29uc2lkZXJhYmxlIGZhY3QNCj4gICAg ICA+wqAgwqAgwqAgPj4+PiBsaWtlIE5pa2l0YSBwb2ludGVkIG91dCBhcyBXaW5kb3dzIGlzIGEg Zmlyc3QgY2xhc3MNCj4gICAgIGNpdGl6ZW4gaW4NCj4gICAgICA+wqAgwqAgwqB0ZXJtcw0KPiAg ICAgID7CoCDCoCDCoCA+Pj4+IG9mIG9wZXJhdGluZyBzeXN0ZW1zIHdlIHN1cHBvcnQuIFdoaWxl IFBIUCBvbiBXaW5kb3dzDQo+ICAgICBtYXkgbm90DQo+ICAgICAgPsKgIMKgIMKgaGF2ZSB0aGUN Cj4gICAgICA+wqAgwqAgwqAgPj4+PiBzcGVlZCB0aGF0IHRoZSBVbml4IGNvdW50ZXJwYXJ0IGhh dmUsIGl0IGlzIHN0aWxsIGENCj4gICAgIHZlcnkgaW1wb3J0YW50DQo+ICAgICAgPsKgIMKgIMKg ID4+Pj4gZGV2ZWxvcG1lbnQgcGxhdGZvcm0uIE1hbnkgZGV2ZWxvcGVycyBkZXZlbG9wIG9uDQo+ ICAgICBXaW5kb3dzIGFuZA0KPiAgICAgID7CoCDCoCDCoGRlcGxveSBvbg0KPiAgICAgID7CoCDC oCDCoCA+Pj4+IGEgVW5peCBiYXNlZCBzeXN0ZW0sIGJlaW5nIHVuYWJsZSB0byB0ZXN0IHN1Y2gg YW4gaW1wb3J0YW50DQo+ICAgICAgPsKgIMKgIMKgZmVhdHVyZSBpbg0KPiAgICAgID7CoCDCoCDC oCA+Pj4+IGEgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgaXMgYWxzbyBhIGxhcmdlIHF1ZXN0aW9u IG1hcmsuDQo+ICAgICAgPsKgIMKgIMKgID4+Pg0KPiAgICAgID7CoCDCoCDCoCA+Pj4gQXMgbG9u ZyBhcyB3ZSBjYW4gYWdyZWUgdGhhdCB2ZXJ5IGZldyBhY3R1YWxseSAqZGVwbG95ICpvbg0KPiAg ICAgID7CoCDCoCDCoFdpbmRvd3MsIEkNCj4gICAgICA+wqAgwqAgwqAgPj4+IHRoaW5rDQo+ICAg ICAgPsKgIMKgIMKgID4+PiB3ZSdyZSBvbiBzb2xpZCBncm91bmRzLg0KPiAgICAgID7CoCDCoCDC oCA+Pj4gQXMgdGhlIEpJVCBpbXBsZW1lbnRhdGlvbiBpcyBsaWtlbHkgdG8gaGF2ZSBhdCBsZWFz dCAqc29tZSoNCj4gICAgICA+wqAgwqAgwqBzaWduaWZpY2FudA0KPiAgICAgID7CoCDCoCDCoCA+ Pj4gZGlmZmVyZW5jZXMgY29tcGFyZWQgdG8gTGludXgsIEknbSBub3Qgc3VyZSB3aGF0IHRlc3Rp bmcNCj4gICAgIGl0IG9uDQo+ICAgICAgPsKgIMKgIMKgV2luZG93cw0KPiAgICAgID7CoCDCoCDC oCA+Pj4gd291bGQgZ2l2ZSB5b3UuwqAgSklUIGlzIHN1cHBvc2VkIHRvIGJlIGVudGlyZWx5IHRy YW5zcGFyZW50LA0KPiAgICAgID7CoCDCoCDCoGFuZCB0aGUNCj4gICAgICA+wqAgwqAgwqAgPj4+ IHBlcmZvcm1hbmNlIGNoYXJhY3RlcmlzdGljcyAtIGFzIHdlbGwgYXMgdGhlIGJ1Zw0KPiAgICAg cGF0dGVybnMgLSBhcmUNCj4gICAgICA+wqAgwqAgwqBsaWtlbHkgdG8NCj4gICAgICA+wqAgwqAg wqAgPj4+IGJlIHF1aXRlIGRpZmZlcmVudCBvbiBMaW51eCB2cy4gV2luZG93cywgYXQgbGVhc3Qg aW4NCj4gICAgIG1hbnkgY2FzZXMuDQo+ICAgICAgPsKgIMKgIMKgID4+PiBJcyBpdCByZWFsbHkg dGhhdCBpbXBvcnRhbnQgdG8gaGF2ZT8NCj4gICAgICA+wqAgwqAgwqAgPj4+DQo+ICAgICAgPsKg IMKgIMKgID4+PiBJJ20gaG9uZXN0bHkgYSBiaXQgcGVycGxleGVkIGJ5IGhvdyBtYW55IHBlb3Bs ZSBoZXJlIHZpZXdpbmcNCj4gICAgICA+wqAgwqAgwqBXaW5kb3dzDQo+ICAgICAgPsKgIMKgIMKg ID4+PiBzdXBwb3J0IGFzIGEgbXVzdCBoYXZlLCB3aGlsZSBhdCB0aGUgc2FtZSB0aW1lIEkgdGhp bmsNCj4gICAgIHdlIGFsbA0KPiAgICAgID7CoCDCoCDCoGFncmVlIFBIUCBpcw0KPiAgICAgID7C oCDCoCDCoCA+Pj4gdmVyeSBzY2FyY2VseSBmb3VuZCBvbiBwcm9kdWN0aW9uIFdpbmRvd3Mgc2Vy dmVycywgYW5kDQo+ICAgICBKSVQgaXMgYQ0KPiAgICAgID7CoCDCoCDCoCA+Pj4gcHJlZG9taW5h bnRseSBwcm9kdWN0aW9uIGZlYXR1cmUuDQo+ICAgICAgPsKgIMKgIMKgID4+Pg0KPiAgICAgID7C oCDCoCDCoCA+Pj4gSSdtIHBlcnNvbmFsbHkgaW50ZXJlc3RlZCBpbiB0YWtpbmcgYSBsb29rIGF0 IGl0IChhbmQNCj4gICAgIEknbSBjZXJ0YWluDQo+ICAgICAgPsKgIMKgIMKgID4+Pg0KPiAgICAg ID7CoCDCoCDCoCA+Pj4+IEFuYXRvbCBkb2VzIHRvbyksIGJ1dCBzaW1wbHkgZGlzbWlzc2luZyBp cyBhIG5vLWdvIGZvciBtZS4NCj4gICAgICA+wqAgwqAgwqAgPj4+DQo+ICAgICAgPsKgIMKgIMKg ID4+PiBJdCdkIGJlIGludGVyZXN0aW5nIHRvIGV2YWx1YXRlIHRoZSBjb3N0IGFzc29jaWF0ZWQg d2l0aA0KPiAgICAgc3VwcG9ydGluZw0KPiAgICAgID7CoCDCoCDCoCA+Pj4gV2luZG93cy7CoCBC YXJlIGluIG1pbmQsIHdlJ3JlIHByb3Bvc2luZyB0byB2b3RlIG9uIHRoaXMgYXMgYQ0KPiAgICAg ID7CoCDCoCDCoHByb2R1Y3Rpb24NCj4gICAgICA+wqAgwqAgwqAgPj4+IGZlYXR1cmUgZm9yIFBI UCA4IC0gd2hpY2ggcmVhbGlzdGljYWxseSBtZWFucyBhbG1vc3QgdHdvDQo+ICAgICB5ZWFycw0K PiAgICAgID7CoCDCoCDCoGZyb20gbm93DQo+ICAgICAgPsKgIMKgIMKgID4+PiAqYXQNCj4gICAg ICA+wqAgwqAgwqAgPj4+IHRoZSBlYXJsaWVzdCouwqAgSSdtIHN1cmUgd2UnZCBoYXZlIFdpbmRv d3Mgc3VwcG9ydCBhIGxvdA0KPiAgICAgc29vbmVyDQo+ICAgICAgPsKgIMKgIMKgdGhhbiB0aGF0 DQo+ICAgICAgPsKgIMKgIMKgID4+PiBpZiB3ZSBkZWNpZGUgdGhhdCBpdCdzIGEgbXVzdCBoYXZl LsKgIEkgYWdyZWUgd2l0aCBOaWtpdGENCj4gICAgIHRoYXQNCj4gICAgICA+wqAgwqAgwqB0aGUg a2V5DQo+ICAgICAgPsKgIMKgIMKgID4+PiBxdWVzdGlvbiBpcyBpbiBmYWN0LCBkbyB3ZSBvciBk byB3ZSBub3Qgd2FudCB0bw0KPiAgICAgaW50cm9kdWNlIEpJVA0KPiAgICAgID7CoCDCoCDCoGlu IC0gd2l0aA0KPiAgICAgID7CoCDCoCDCoCA+Pj4gdGhlDQo+ICAgICAgPsKgIMKgIMKgID4+PiBt YWluIHF1ZXN0aW9uIGJlaW5nIHRoZSBtYWludGVuYW5jZSBjb3N0LsKgIExldCdzIHRhY2tsZSB0 aGlzDQo+ICAgICAgPsKgIMKgIMKgcXVlc3Rpb24NCj4gICAgICA+wqAgwqAgwqAgPj4+IGZpcnN0 LCBvdGhlcndpc2UgLSB3aHkgc2VuZCBEbWl0cnkgKGFuZCBtYXliZSBvdGhlcnMpDQo+ICAgICBm b3IgZG9pbmcNCj4gICAgICA+wqAgwqAgwqBtb3JlIHdvcmsNCj4gICAgICA+wqAgwqAgwqAgPj4+ IChXaW5kb3dzIHN1cHBvcnQpIGlmIHdlIGFyZSBsaWtlbHkgdG8gZmx1c2ggaXQgYWxsIGRvd24N Cj4gICAgIHRoZSB0b2lsZXQ/DQo+ICAgICAgPsKgIMKgIMKgID4+Pg0KPiAgICAgID7CoCDCoCDC oCA+PiBNYXliZSB3ZSdyZSB0aGUgb25seSBvbmVzLCBidXQgd2UgcnVuIHByb2R1Y3Rpb24gUEhQ IG9uDQo+ICAgICBXaW5kb3dzLg0KPiAgICAgID7CoCDCoCDCoEkgaGF2ZSBubw0KPiAgICAgID7C oCDCoCDCoCA+PiBpc3N1ZXMgd2l0aCB0aGUgaWRlYSBvZiBub3QgaW5pdGlhbGx5IGhhdmluZyBz dXBwb3J0IGZvcg0KPiAgICAgID7CoCDCoCDCoFdpbmRvd3MuIEkgY2FuDQo+ICAgICAgPsKgIMKg IMKgID4+IHByb2JhYmx5IGV2ZW4gbGl2ZSB3aXRoIG5ldmVyIGhhdmluZyBzdXBwb3J0IGZvciBX aW5kb3dzIC0NCj4gICAgICA+wqAgwqAgwqBwcm92aWRlZCB0aGF0IHdlDQo+ICAgICAgPsKgIMKg IMKgID4+IGRvbid0IGZpbmQgb3Vyc2VsdmVzIGluIGEgc2l0dWF0aW9uIGxpa2UgTmlraXRhIG1l bnRpb25lZA0KPiAgICAgd2hlcmUNCj4gICAgICA+wqAgwqAgwqBmZWF0dXJlcw0KPiAgICAgID7C oCDCoCDCoCA+PiBzdGFydCBnZXR0aW5nIGRldmVsb3BlZCBpbiBQSFAgaW5zdGVhZCBvZiBDIGFu ZCByZXF1aXJlDQo+ICAgICBKSVQgaW4NCj4gICAgICA+wqAgwqAgwqBvcmRlciB0bw0KPiAgICAg ID7CoCDCoCDCoCA+PiBmdW5jdGlvbi4NCj4gICAgICA+wqAgwqAgwqAgPg0KPiAgICAgID7CoCDC oCDCoCA+IFF1ZXN0aW9uIGZyb20gYSBub24tY29tcGlsZXItZW5naW5lZXI6IENvdWxkIHdlIGVu ZCB1cCBpbiBhDQo+ICAgICAgPsKgIMKgIMKgc2l0dWF0aW9uIHdoZXJlDQo+ICAgICAgPsKgIMKg IMKgID4gZnV0dXJlIGxhbmd1YWdlIGZlYXR1cmVzIChpbiA4LjMgb3Igc29tZXRoaW5nKSBhcmUg b25seQ0KPiAgICAgID7CoCDCoCDCoHBlcmZvcm1hbnQgb24gSklULQ0KPiAgICAgID7CoCDCoCDC oCA+IGVuYWJsZWQgcGxhdGZvcm1zP8KgIEkga25vdyB0aGVyZSB3ZXJlIHNvbWUgUkZDcyByZWpl Y3RlZA0KPiAgICAgaW4gdGhlDQo+ICAgICAgPsKgIMKgIMKgcGFzdCBvbiB0aGUNCj4gICAgICA+ wqAgwqAgwqAgPiBncm91bmRzIHRoYXQgdGhleSBpbnZvbHZlZCB0b28gbWFueSBydW50aW1lIGNo ZWNrcyAoYW5kIHRodXMgYQ0KPiAgICAgID7CoCDCoCDCoHBlcmZvcm1hbmNlDQo+ICAgICAgPsKg IMKgIMKgID4gaGl0KTsgaWYgaXQgd2VyZSBwb3NzaWJsZSBmb3IgYSBKSVQgdG8gb3B0aW1pemUg c29tZSBvZiB0aG9zZQ0KPiAgICAgID7CoCDCoCDCoGF3YXksIGl0IG1pZ2h0DQo+ICAgICAgPsKg IMKgIMKgID4gbWFrZSB0aGUgY29zdCBhY2NlcHRhYmxlLsKgIEhvd2V2ZXIsIGlmIGEgSklUIG9u bHkgd29ya3Mgb24NCj4gICAgIHNvbWUNCj4gICAgICA+wqAgwqAgwqBzeXN0ZW1zIHRoYXQNCj4g ICAgICA+wqAgwqAgwqAgPiBtaWdodCB3aWRlbiB0aGUgZ2FwIGJldHdlZW4gaGF2ZS0gYW5kIGhh dmUtbm90IHBsYXRmb3Jtcy4NCj4gICAgICA+DQo+ICAgICAgPsKgIMKgIMKgSSB0aGluaywgSklU IG9ubHkgYXBwcm9hY2ggZG9lc24ndCBtYWtlIGEgbG90IG9mIHNlbnNlIGZvcg0KPiAgICAgUEhQ LCB3aXRoDQo+ICAgICAgPsKgIMKgIMKgb25lDQo+ICAgICAgPsKgIMKgIMKgb2YgdGhlIG1vc3Qg ZmFzdCBWTS4gQW5kIHRoaXMgaXMgYSB0cmVuZC4gRXZlbiBWOCwgc3RhcnRpbmcNCj4gICAgIGZy b20gSklUDQo+ICAgICAgPsKgIMKgIMKgb25seSwgc3dpdGNoZWQgYmFjayB0byBWTStKSVQuDQo+ ICAgICAgPg0KPiAgICAgID7CoCDCoCDCoFRoYW5rcy4gRG1pdHJ5Lg0KPiAgICAgID4NCj4gICAg ICA+wqAgwqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+IElzIHRoYXQgYSBjb25jZXJuLCBvciBh bSBJIG1ha2luZyB0aGluZ3MgdXA/wqAgT3IsIGlzIGl0IGENCj4gICAgIGNvbmNlcm4NCj4gICAg ICA+wqAgwqAgwqBidXQgd2UncmUNCj4gICAgICA+wqAgwqAgwqAgPiBsZWdpdCBPSyB3aXRoIHRo YXQgaGFwcGVuaW5nICh3aGljaCBpcyBhbHNvIGFuIGVudGlyZWx5IHZhbGlkDQo+ICAgICAgPsKg IMKgIMKgZGVjaXNpb24gdG8NCj4gICAgICA+wqAgwqAgwqAgPiBtYWtlKT8NCj4gICAgICA+wqAg wqAgwqAgPg0KPiAgICAgID7CoCDCoCDCoCA+IC0tTGFycnkgR2FyZmllbGQNCj4gICAgICA+wqAg wqAgwqAgPg0KPiAgICAgID4NCj4gICAgICA+wqAgwqAgwqAtLQ0KPiAgICAgID7CoCDCoCDCoFBI UCBJbnRlcm5hbHMgLSBQSFAgUnVudGltZSBEZXZlbG9wbWVudCBNYWlsaW5nIExpc3QNCj4gICAg ICA+wqAgwqAgwqBUbyB1bnN1YnNjcmliZSwgdmlzaXQ6IGh0dHA6Ly93d3cucGhwLm5ldC91bnN1 Yi5waHANCj4gICAgICA+DQo+IA0KPiAgICAgLS0gDQo+ICAgICBQSFAgSW50ZXJuYWxzIC0gUEhQ IFJ1bnRpbWUgRGV2ZWxvcG1lbnQgTWFpbGluZyBMaXN0DQo+ICAgICBUbyB1bnN1YnNjcmliZSwg dmlzaXQ6IGh0dHA6Ly93d3cucGhwLm5ldC91bnN1Yi5waHANCj4gDQo=