Return-Path: Delivered-To: apmail-httpd-users-archive@www.apache.org Received: (qmail 54744 invoked from network); 26 Jul 2004 13:26:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 26 Jul 2004 13:26:34 -0000 Received: (qmail 50166 invoked by uid 500); 26 Jul 2004 13:26:01 -0000 Delivered-To: apmail-httpd-users-archive@httpd.apache.org Received: (qmail 50037 invoked by uid 500); 26 Jul 2004 13:26:00 -0000 Mailing-List: contact users-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: users@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list users@httpd.apache.org Received: (qmail 49919 invoked by uid 99); 26 Jul 2004 13:25:58 -0000 X-ASF-Spam-Status: No, hits=1.3 required=10.0 tests=RCVD_BY_IP,SB_NEW_BULK,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received: from [64.233.170.198] (HELO mproxy.gmail.com) (64.233.170.198) by apache.org (qpsmtpd/0.27.1) with ESMTP; Mon, 26 Jul 2004 06:25:55 -0700 Received: by mproxy.gmail.com with SMTP id 74so152006rnk for ; Mon, 26 Jul 2004 06:25:52 -0700 (PDT) Received: by 10.38.88.18 with SMTP id l18mr66989rnb; Mon, 26 Jul 2004 06:25:52 -0700 (PDT) Message-ID: <7309fac504072606258acc3ac@mail.gmail.com> Date: Mon, 26 Jul 2004 08:25:52 -0500 From: Douglas Carley To: users@httpd.apache.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_75_15500685.1090848352378" X-Virus-Checked: Checked Subject: [users@httpd] ThreadsPerChild setting and Win2k X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N ------=_Part_75_15500685.1090848352378 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline We are using apache as a load balancer to 5 back end app servers running tomcat. Problem we are having is that under heavy load it appears the the load balancer stops forwarding requests. We get an error that reads like "consider raising number of threads per child" We have load tested the box starting with 50 and adding 50 users every 15 seconds till we reach 1000 users. We start seeing the errors after about 400 to 450 users,. All of our servers are Win2k. Are there limitations on Win2k in regards to threads and processes? Is there anything I can do to enhance performance of apache on Win2k? I have attached both httpd.conf and workers2. Thanks. Doug. ------=_Part_75_15500685.1090848352378 Content-Type: application/octet-stream; name="httpd.conf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="httpd.conf" Iw0KIyBCYXNlZCB1cG9uIHRoZSBOQ1NBIHNlcnZlciBjb25maWd1cmF0aW9uIGZpbGVzIG9yaWdp bmFsbHkgYnkgUm9iIE1jQ29vbC4NCiMNCiMgVGhpcyBpcyB0aGUgbWFpbiBBcGFjaGUgc2VydmVy IGNvbmZpZ3VyYXRpb24gZmlsZS4gIEl0IGNvbnRhaW5zIHRoZQ0KIyBjb25maWd1cmF0aW9uIGRp cmVjdGl2ZXMgdGhhdCBnaXZlIHRoZSBzZXJ2ZXIgaXRzIGluc3RydWN0aW9ucy4NCiMgU2VlIDxV Ukw6aHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy0yLjAvPiBmb3IgZGV0YWlsZWQgaW5mb3Jt YXRpb24gYWJvdXQNCiMgdGhlIGRpcmVjdGl2ZXMuDQojDQojIERvIE5PVCBzaW1wbHkgcmVhZCB0 aGUgaW5zdHJ1Y3Rpb25zIGluIGhlcmUgd2l0aG91dCB1bmRlcnN0YW5kaW5nDQojIHdoYXQgdGhl eSBkby4gIFRoZXkncmUgaGVyZSBvbmx5IGFzIGhpbnRzIG9yIHJlbWluZGVycy4gIElmIHlvdSBh cmUgdW5zdXJlDQojIGNvbnN1bHQgdGhlIG9ubGluZSBkb2NzLiBZb3UgaGF2ZSBiZWVuIHdhcm5l ZC4gIA0KIw0KIyBUaGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIGFyZSBncm91cGVkIGludG8g dGhyZWUgYmFzaWMgc2VjdGlvbnM6DQojICAxLiBEaXJlY3RpdmVzIHRoYXQgY29udHJvbCB0aGUg b3BlcmF0aW9uIG9mIHRoZSBBcGFjaGUgc2VydmVyIHByb2Nlc3MgYXMgYQ0KIyAgICAgd2hvbGUg KHRoZSAnZ2xvYmFsIGVudmlyb25tZW50JykuDQojICAyLiBEaXJlY3RpdmVzIHRoYXQgZGVmaW5l IHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSAnbWFpbicgb3IgJ2RlZmF1bHQnIHNlcnZlciwNCiMgICAg IHdoaWNoIHJlc3BvbmRzIHRvIHJlcXVlc3RzIHRoYXQgYXJlbid0IGhhbmRsZWQgYnkgYSB2aXJ0 dWFsIGhvc3QuDQojICAgICBUaGVzZSBkaXJlY3RpdmVzIGFsc28gcHJvdmlkZSBkZWZhdWx0IHZh bHVlcyBmb3IgdGhlIHNldHRpbmdzDQojICAgICBvZiBhbGwgdmlydHVhbCBob3N0cy4NCiMgIDMu IFNldHRpbmdzIGZvciB2aXJ0dWFsIGhvc3RzLCB3aGljaCBhbGxvdyBXZWIgcmVxdWVzdHMgdG8g YmUgc2VudCB0bw0KIyAgICAgZGlmZmVyZW50IElQIGFkZHJlc3NlcyBvciBob3N0bmFtZXMgYW5k IGhhdmUgdGhlbSBoYW5kbGVkIGJ5IHRoZQ0KIyAgICAgc2FtZSBBcGFjaGUgc2VydmVyIHByb2Nl c3MuDQojDQojIENvbmZpZ3VyYXRpb24gYW5kIGxvZ2ZpbGUgbmFtZXM6IElmIHRoZSBmaWxlbmFt ZXMgeW91IHNwZWNpZnkgZm9yIG1hbnkNCiMgb2YgdGhlIHNlcnZlcidzIGNvbnRyb2wgZmlsZXMg YmVnaW4gd2l0aCAiLyIgKG9yICJkcml2ZTovIiBmb3IgV2luMzIpLCB0aGUNCiMgc2VydmVyIHdp bGwgdXNlIHRoYXQgZXhwbGljaXQgcGF0aC4gIElmIHRoZSBmaWxlbmFtZXMgZG8gKm5vdCogYmVn aW4NCiMgd2l0aCAiLyIsIHRoZSB2YWx1ZSBvZiBTZXJ2ZXJSb290IGlzIHByZXBlbmRlZCAtLSBz byAibG9ncy9mb28ubG9nIg0KIyB3aXRoIFNlcnZlclJvb3Qgc2V0IHRvICJDOi9Qcm9ncmFtIEZp bGVzL0FwYWNoZSBHcm91cC9BcGFjaGUyIiB3aWxsIGJlIGludGVycHJldGVkIGJ5IHRoZQ0KIyBz ZXJ2ZXIgYXMgIkM6L1Byb2dyYW0gRmlsZXMvQXBhY2hlIEdyb3VwL0FwYWNoZTIvbG9ncy9mb28u bG9nIi4NCiMNCiMgTk9URTogV2hlcmUgZmlsZW5hbWVzIGFyZSBzcGVjaWZpZWQsIHlvdSBtdXN0 IHVzZSBmb3J3YXJkIHNsYXNoZXMNCiMgaW5zdGVhZCBvZiBiYWNrc2xhc2hlcyAoZS5nLiwgImM6 L2FwYWNoZSIgaW5zdGVhZCBvZiAiYzpcYXBhY2hlIikuDQojIElmIGEgZHJpdmUgbGV0dGVyIGlz IG9taXR0ZWQsIHRoZSBkcml2ZSBvbiB3aGljaCBBcGFjaGUuZXhlIGlzIGxvY2F0ZWQNCiMgd2ls bCBiZSB1c2VkIGJ5IGRlZmF1bHQuICBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSBhbHdheXMg c3VwcGx5DQojIGFuIGV4cGxpY2l0IGRyaXZlIGxldHRlciBpbiBhYnNvbHV0ZSBwYXRocywgaG93 ZXZlciwgdG8gYXZvaWQNCiMgY29uZnVzaW9uLg0KIw0KDQojIyMgU2VjdGlvbiAxOiBHbG9iYWwg RW52aXJvbm1lbnQNCiMNCiMgVGhlIGRpcmVjdGl2ZXMgaW4gdGhpcyBzZWN0aW9uIGFmZmVjdCB0 aGUgb3ZlcmFsbCBvcGVyYXRpb24gb2YgQXBhY2hlLA0KIyBzdWNoIGFzIHRoZSBudW1iZXIgb2Yg Y29uY3VycmVudCByZXF1ZXN0cyBpdCBjYW4gaGFuZGxlIG9yIHdoZXJlIGl0DQojIGNhbiBmaW5k IGl0cyBjb25maWd1cmF0aW9uIGZpbGVzLg0KIw0KDQojDQojIFNlcnZlclJvb3Q6IFRoZSB0b3Ag b2YgdGhlIGRpcmVjdG9yeSB0cmVlIHVuZGVyIHdoaWNoIHRoZSBzZXJ2ZXIncw0KIyBjb25maWd1 cmF0aW9uLCBlcnJvciwgYW5kIGxvZyBmaWxlcyBhcmUga2VwdC4NCiMNCiMgTk9URSEgIElmIHlv dSBpbnRlbmQgdG8gcGxhY2UgdGhpcyBvbiBhbiBORlMgKG9yIG90aGVyd2lzZSBuZXR3b3JrKQ0K IyBtb3VudGVkIGZpbGVzeXN0ZW0gdGhlbiBwbGVhc2UgcmVhZCB0aGUgTG9ja0ZpbGUgZG9jdW1l bnRhdGlvbiAoYXZhaWxhYmxlDQojIGF0IDxVUkw6aHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9j cy0yLjAvbW9kL21wbV9jb21tb24uaHRtbCNsb2NrZmlsZT4pOw0KIyB5b3Ugd2lsbCBzYXZlIHlv dXJzZWxmIGEgbG90IG9mIHRyb3VibGUuDQojDQojIERvIE5PVCBhZGQgYSBzbGFzaCBhdCB0aGUg ZW5kIG9mIHRoZSBkaXJlY3RvcnkgcGF0aC4NCiMNClNlcnZlclJvb3QgIkM6L1Byb2dyYW0gRmls ZXMvQXBhY2hlIEdyb3VwL0FwYWNoZTIiDQoNCiMNCiMgU2NvcmVCb2FyZEZpbGU6IEZpbGUgdXNl ZCB0byBzdG9yZSBpbnRlcm5hbCBzZXJ2ZXIgcHJvY2VzcyBpbmZvcm1hdGlvbi4NCiMgSWYgdW5z cGVjaWZpZWQgKHRoZSBkZWZhdWx0KSwgdGhlIHNjb3JlYm9hcmQgd2lsbCBiZSBzdG9yZWQgaW4g YW4NCiMgYW5vbnltb3VzIHNoYXJlZCBtZW1vcnkgc2VnbWVudCwgYW5kIHdpbGwgYmUgdW5hdmFp bGFibGUgdG8gdGhpcmQtcGFydHkNCiMgYXBwbGljYXRpb25zLg0KIyBJZiBzcGVjaWZpZWQsIGVu c3VyZSB0aGF0IG5vIHR3byBpbnZvY2F0aW9ucyBvZiBBcGFjaGUgc2hhcmUgdGhlIHNhbWUNCiMg c2NvcmVib2FyZCBmaWxlLiBUaGUgc2NvcmVib2FyZCBmaWxlIE1VU1QgQkUgU1RPUkVEIE9OIEEg TE9DQUwgRElTSy4NCiMNCiNTY29yZUJvYXJkRmlsZSBsb2dzL2FwYWNoZV9ydW50aW1lX3N0YXR1 cw0KDQojDQojIFBpZEZpbGU6IFRoZSBmaWxlIGluIHdoaWNoIHRoZSBzZXJ2ZXIgc2hvdWxkIHJl Y29yZCBpdHMgcHJvY2Vzcw0KIyBpZGVudGlmaWNhdGlvbiBudW1iZXIgd2hlbiBpdCBzdGFydHMu DQojDQpQaWRGaWxlIGxvZ3MvaHR0cGQucGlkDQoNCiMNCiMgVGltZW91dDogVGhlIG51bWJlciBv ZiBzZWNvbmRzIGJlZm9yZSByZWNlaXZlcyBhbmQgc2VuZHMgdGltZSBvdXQuDQojDQpUaW1lb3V0 IDMwMA0KDQojDQojIEtlZXBBbGl2ZTogV2hldGhlciBvciBub3QgdG8gYWxsb3cgcGVyc2lzdGVu dCBjb25uZWN0aW9ucyAobW9yZSB0aGFuDQojIG9uZSByZXF1ZXN0IHBlciBjb25uZWN0aW9uKS4g U2V0IHRvICJPZmYiIHRvIGRlYWN0aXZhdGUuDQojDQpLZWVwQWxpdmUgT24NCg0KIw0KIyBNYXhL ZWVwQWxpdmVSZXF1ZXN0czogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcXVlc3RzIHRvIGFsbG93 DQojIGR1cmluZyBhIHBlcnNpc3RlbnQgY29ubmVjdGlvbi4gU2V0IHRvIDAgdG8gYWxsb3cgYW4g dW5saW1pdGVkIGFtb3VudC4NCiMgV2UgcmVjb21tZW5kIHlvdSBsZWF2ZSB0aGlzIG51bWJlciBo aWdoLCBmb3IgbWF4aW11bSBwZXJmb3JtYW5jZS4NCiMNCk1heEtlZXBBbGl2ZVJlcXVlc3RzIDEw MA0KDQojDQojIEtlZXBBbGl2ZVRpbWVvdXQ6IE51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9y IHRoZSBuZXh0IHJlcXVlc3QgZnJvbSB0aGUNCiMgc2FtZSBjbGllbnQgb24gdGhlIHNhbWUgY29u bmVjdGlvbi4NCiMNCktlZXBBbGl2ZVRpbWVvdXQgMTUNCg0KIyMNCiMjIFNlcnZlci1Qb29sIFNp emUgUmVndWxhdGlvbiAoTVBNIHNwZWNpZmljKQ0KIyMgDQoNCiMgV2luTlQgTVBNDQojIFRocmVh ZHNQZXJDaGlsZDogY29uc3RhbnQgbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzIGluIHRoZSBzZXJ2 ZXIgcHJvY2Vzcw0KIyBNYXhSZXF1ZXN0c1BlckNoaWxkOiBtYXhpbXVtICBudW1iZXIgb2YgcmVx dWVzdHMgYSBzZXJ2ZXIgcHJvY2VzcyBzZXJ2ZXMNCjxJZk1vZHVsZSBtcG1fd2lubnQuYz4NClRo cmVhZHNQZXJDaGlsZCAxMDI0DQpNYXhSZXF1ZXN0c1BlckNoaWxkICAwDQo8L0lmTW9kdWxlPg0K DQojDQojIExpc3RlbjogQWxsb3dzIHlvdSB0byBiaW5kIEFwYWNoZSB0byBzcGVjaWZpYyBJUCBh ZGRyZXNzZXMgYW5kL29yDQojIHBvcnRzLCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0LiBTZWUgYWxz byB0aGUgPFZpcnR1YWxIb3N0Pg0KIyBkaXJlY3RpdmUuDQojDQojIENoYW5nZSB0aGlzIHRvIExp c3RlbiBvbiBzcGVjaWZpYyBJUCBhZGRyZXNzZXMgYXMgc2hvd24gYmVsb3cgdG8gDQojIHByZXZl bnQgQXBhY2hlIGZyb20gZ2xvbW1pbmcgb250byBhbGwgYm91bmQgSVAgYWRkcmVzc2VzICgwLjAu MC4wKQ0KIw0KI0xpc3RlbiAxMi4zNC41Ni43ODo4MA0KTGlzdGVuIDgwDQoNCiMNCiMgRHluYW1p YyBTaGFyZWQgT2JqZWN0IChEU08pIFN1cHBvcnQNCiMNCiMgVG8gYmUgYWJsZSB0byB1c2UgdGhl IGZ1bmN0aW9uYWxpdHkgb2YgYSBtb2R1bGUgd2hpY2ggd2FzIGJ1aWx0IGFzIGEgRFNPIHlvdQ0K IyBoYXZlIHRvIHBsYWNlIGNvcnJlc3BvbmRpbmcgYExvYWRNb2R1bGUnIGxpbmVzIGF0IHRoaXMg bG9jYXRpb24gc28gdGhlDQojIGRpcmVjdGl2ZXMgY29udGFpbmVkIGluIGl0IGFyZSBhY3R1YWxs eSBhdmFpbGFibGUgX2JlZm9yZV8gdGhleSBhcmUgdXNlZC4NCiMgU3RhdGljYWxseSBjb21waWxl ZCBtb2R1bGVzICh0aG9zZSBsaXN0ZWQgYnkgYGh0dHBkIC1sJykgZG8gbm90IG5lZWQNCiMgdG8g YmUgbG9hZGVkIGhlcmUuDQojDQojIEV4YW1wbGU6DQojIExvYWRNb2R1bGUgZm9vX21vZHVsZSBt b2R1bGVzL21vZF9mb28uc28NCiMNCkxvYWRNb2R1bGUgYWNjZXNzX21vZHVsZSBtb2R1bGVzL21v ZF9hY2Nlc3Muc28NCkxvYWRNb2R1bGUgYWN0aW9uc19tb2R1bGUgbW9kdWxlcy9tb2RfYWN0aW9u cy5zbw0KTG9hZE1vZHVsZSBhbGlhc19tb2R1bGUgbW9kdWxlcy9tb2RfYWxpYXMuc28NCkxvYWRN b2R1bGUgYXNpc19tb2R1bGUgbW9kdWxlcy9tb2RfYXNpcy5zbw0KTG9hZE1vZHVsZSBhdXRoX21v ZHVsZSBtb2R1bGVzL21vZF9hdXRoLnNvDQojTG9hZE1vZHVsZSBhdXRoX2Fub25fbW9kdWxlIG1v ZHVsZXMvbW9kX2F1dGhfYW5vbi5zbw0KI0xvYWRNb2R1bGUgYXV0aF9kYm1fbW9kdWxlIG1vZHVs ZXMvbW9kX2F1dGhfZGJtLnNvDQojTG9hZE1vZHVsZSBhdXRoX2RpZ2VzdF9tb2R1bGUgbW9kdWxl cy9tb2RfYXV0aF9kaWdlc3Quc28NCkxvYWRNb2R1bGUgYXV0b2luZGV4X21vZHVsZSBtb2R1bGVz L21vZF9hdXRvaW5kZXguc28NCiNMb2FkTW9kdWxlIGNlcm5fbWV0YV9tb2R1bGUgbW9kdWxlcy9t b2RfY2Vybl9tZXRhLnNvDQpMb2FkTW9kdWxlIGNnaV9tb2R1bGUgbW9kdWxlcy9tb2RfY2dpLnNv DQojTG9hZE1vZHVsZSBkYXZfbW9kdWxlIG1vZHVsZXMvbW9kX2Rhdi5zbw0KI0xvYWRNb2R1bGUg ZGF2X2ZzX21vZHVsZSBtb2R1bGVzL21vZF9kYXZfZnMuc28NCkxvYWRNb2R1bGUgZGlyX21vZHVs ZSBtb2R1bGVzL21vZF9kaXIuc28NCkxvYWRNb2R1bGUgZW52X21vZHVsZSBtb2R1bGVzL21vZF9l bnYuc28NCiNMb2FkTW9kdWxlIGV4cGlyZXNfbW9kdWxlIG1vZHVsZXMvbW9kX2V4cGlyZXMuc28N CiNMb2FkTW9kdWxlIGZpbGVfY2FjaGVfbW9kdWxlIG1vZHVsZXMvbW9kX2ZpbGVfY2FjaGUuc28N CiNMb2FkTW9kdWxlIGhlYWRlcnNfbW9kdWxlIG1vZHVsZXMvbW9kX2hlYWRlcnMuc28NCkxvYWRN b2R1bGUgaW1hcF9tb2R1bGUgbW9kdWxlcy9tb2RfaW1hcC5zbw0KTG9hZE1vZHVsZSBpbmNsdWRl X21vZHVsZSBtb2R1bGVzL21vZF9pbmNsdWRlLnNvDQojTG9hZE1vZHVsZSBpbmZvX21vZHVsZSBt b2R1bGVzL21vZF9pbmZvLnNvDQpMb2FkTW9kdWxlIGlzYXBpX21vZHVsZSBtb2R1bGVzL21vZF9p c2FwaS5zbw0KTG9hZE1vZHVsZSBsb2dfY29uZmlnX21vZHVsZSBtb2R1bGVzL21vZF9sb2dfY29u ZmlnLnNvDQpMb2FkTW9kdWxlIG1pbWVfbW9kdWxlIG1vZHVsZXMvbW9kX21pbWUuc28NCiNMb2Fk TW9kdWxlIG1pbWVfbWFnaWNfbW9kdWxlIG1vZHVsZXMvbW9kX21pbWVfbWFnaWMuc28NCiNMb2Fk TW9kdWxlIHByb3h5X21vZHVsZSBtb2R1bGVzL21vZF9wcm94eS5zbw0KI0xvYWRNb2R1bGUgcHJv eHlfY29ubmVjdF9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfY29ubmVjdC5zbw0KI0xvYWRNb2R1 bGUgcHJveHlfaHR0cF9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfaHR0cC5zbw0KI0xvYWRNb2R1 bGUgcHJveHlfZnRwX21vZHVsZSBtb2R1bGVzL21vZF9wcm94eV9mdHAuc28NCkxvYWRNb2R1bGUg bmVnb3RpYXRpb25fbW9kdWxlIG1vZHVsZXMvbW9kX25lZ290aWF0aW9uLnNvDQojTG9hZE1vZHVs ZSByZXdyaXRlX21vZHVsZSBtb2R1bGVzL21vZF9yZXdyaXRlLnNvDQpMb2FkTW9kdWxlIHNldGVu dmlmX21vZHVsZSBtb2R1bGVzL21vZF9zZXRlbnZpZi5zbw0KI0xvYWRNb2R1bGUgc3BlbGluZ19t b2R1bGUgbW9kdWxlcy9tb2Rfc3BlbGluZy5zbw0KI0xvYWRNb2R1bGUgc3RhdHVzX21vZHVsZSBt b2R1bGVzL21vZF9zdGF0dXMuc28NCiNMb2FkTW9kdWxlIHVuaXF1ZV9pZF9tb2R1bGUgbW9kdWxl cy9tb2RfdW5pcXVlX2lkLnNvDQpMb2FkTW9kdWxlIHVzZXJkaXJfbW9kdWxlIG1vZHVsZXMvbW9k X3VzZXJkaXIuc28NCiNMb2FkTW9kdWxlIHVzZXJ0cmFja19tb2R1bGUgbW9kdWxlcy9tb2RfdXNl cnRyYWNrLnNvDQojTG9hZE1vZHVsZSB2aG9zdF9hbGlhc19tb2R1bGUgbW9kdWxlcy9tb2Rfdmhv c3RfYWxpYXMuc28NCiNMb2FkTW9kdWxlIHNzbF9tb2R1bGUgbW9kdWxlcy9tb2Rfc3NsLnNvDQoN CiMNCiMgRXh0ZW5kZWRTdGF0dXMgY29udHJvbHMgd2hldGhlciBBcGFjaGUgd2lsbCBnZW5lcmF0 ZSAiZnVsbCIgc3RhdHVzDQojIGluZm9ybWF0aW9uIChFeHRlbmRlZFN0YXR1cyBPbikgb3IganVz dCBiYXNpYyBpbmZvcm1hdGlvbiAoRXh0ZW5kZWRTdGF0dXMNCiMgT2ZmKSB3aGVuIHRoZSAic2Vy dmVyLXN0YXR1cyIgaGFuZGxlciBpcyBjYWxsZWQuIFRoZSBkZWZhdWx0IGlzIE9mZi4NCiMNCiNF eHRlbmRlZFN0YXR1cyBPbg0KDQojIyMgU2VjdGlvbiAyOiAnTWFpbicgc2VydmVyIGNvbmZpZ3Vy YXRpb24NCiMNCiMgVGhlIGRpcmVjdGl2ZXMgaW4gdGhpcyBzZWN0aW9uIHNldCB1cCB0aGUgdmFs dWVzIHVzZWQgYnkgdGhlICdtYWluJw0KIyBzZXJ2ZXIsIHdoaWNoIHJlc3BvbmRzIHRvIGFueSBy ZXF1ZXN0cyB0aGF0IGFyZW4ndCBoYW5kbGVkIGJ5IGENCiMgPFZpcnR1YWxIb3N0PiBkZWZpbml0 aW9uLiAgVGhlc2UgdmFsdWVzIGFsc28gcHJvdmlkZSBkZWZhdWx0cyBmb3INCiMgYW55IDxWaXJ0 dWFsSG9zdD4gY29udGFpbmVycyB5b3UgbWF5IGRlZmluZSBsYXRlciBpbiB0aGUgZmlsZS4NCiMN CiMgQWxsIG9mIHRoZXNlIGRpcmVjdGl2ZXMgbWF5IGFwcGVhciBpbnNpZGUgPFZpcnR1YWxIb3N0 PiBjb250YWluZXJzLA0KIyBpbiB3aGljaCBjYXNlIHRoZXNlIGRlZmF1bHQgc2V0dGluZ3Mgd2ls bCBiZSBvdmVycmlkZGVuIGZvciB0aGUNCiMgdmlydHVhbCBob3N0IGJlaW5nIGRlZmluZWQuDQoj DQoNCiMNCiMgU2VydmVyQWRtaW46IFlvdXIgYWRkcmVzcywgd2hlcmUgcHJvYmxlbXMgd2l0aCB0 aGUgc2VydmVyIHNob3VsZCBiZQ0KIyBlLW1haWxlZC4gIFRoaXMgYWRkcmVzcyBhcHBlYXJzIG9u IHNvbWUgc2VydmVyLWdlbmVyYXRlZCBwYWdlcywgc3VjaA0KIyBhcyBlcnJvciBkb2N1bWVudHMu ICBlLmcuIGFkbWluQHlvdXItZG9tYWluLmNvbQ0KIw0KU2VydmVyQWRtaW4gYWRtaW5AYWQuc3By aW50LmNvbQ0KDQojDQojIFNlcnZlck5hbWUgZ2l2ZXMgdGhlIG5hbWUgYW5kIHBvcnQgdGhhdCB0 aGUgc2VydmVyIHVzZXMgdG8gaWRlbnRpZnkgaXRzZWxmLg0KIyBUaGlzIGNhbiBvZnRlbiBiZSBk ZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHksIGJ1dCB3ZSByZWNvbW1lbmQgeW91IHNwZWNpZnkNCiMg aXQgZXhwbGljaXRseSB0byBwcmV2ZW50IHByb2JsZW1zIGR1cmluZyBzdGFydHVwLg0KIw0KIyBJ ZiB0aGlzIGlzIG5vdCBzZXQgdG8gdmFsaWQgRE5TIG5hbWUgZm9yIHlvdXIgaG9zdCwgc2VydmVy LWdlbmVyYXRlZA0KIyByZWRpcmVjdGlvbnMgd2lsbCBub3Qgd29yay4gIFNlZSBhbHNvIHRoZSBV c2VDYW5vbmljYWxOYW1lIGRpcmVjdGl2ZS4NCiMNCiMgSWYgeW91ciBob3N0IGRvZXNuJ3QgaGF2 ZSBhIHJlZ2lzdGVyZWQgRE5TIG5hbWUsIGVudGVyIGl0cyBJUCBhZGRyZXNzIGhlcmUuDQojIFlv dSB3aWxsIGhhdmUgdG8gYWNjZXNzIGl0IGJ5IGl0cyBhZGRyZXNzIGFueXdheSwgYW5kIHRoaXMg d2lsbCBtYWtlIA0KIyByZWRpcmVjdGlvbnMgd29yayBpbiBhIHNlbnNpYmxlIHdheS4NCiMNClNl cnZlck5hbWUgUFZNWDAwNDEuYWQuc3ByaW50LmNvbTo4MA0KDQojDQojIFVzZUNhbm9uaWNhbE5h bWU6IERldGVybWluZXMgaG93IEFwYWNoZSBjb25zdHJ1Y3RzIHNlbGYtcmVmZXJlbmNpbmcgDQoj IFVSTHMgYW5kIHRoZSBTRVJWRVJfTkFNRSBhbmQgU0VSVkVSX1BPUlQgdmFyaWFibGVzLg0KIyBX aGVuIHNldCAiT2ZmIiwgQXBhY2hlIHdpbGwgdXNlIHRoZSBIb3N0bmFtZSBhbmQgUG9ydCBzdXBw bGllZA0KIyBieSB0aGUgY2xpZW50LiAgV2hlbiBzZXQgIk9uIiwgQXBhY2hlIHdpbGwgdXNlIHRo ZSB2YWx1ZSBvZiB0aGUNCiMgU2VydmVyTmFtZSBkaXJlY3RpdmUuDQojDQpVc2VDYW5vbmljYWxO YW1lIE9mZg0KDQojDQojIERvY3VtZW50Um9vdDogVGhlIGRpcmVjdG9yeSBvdXQgb2Ygd2hpY2gg eW91IHdpbGwgc2VydmUgeW91cg0KIyBkb2N1bWVudHMuIEJ5IGRlZmF1bHQsIGFsbCByZXF1ZXN0 cyBhcmUgdGFrZW4gZnJvbSB0aGlzIGRpcmVjdG9yeSwgYnV0DQojIHN5bWJvbGljIGxpbmtzIGFu ZCBhbGlhc2VzIG1heSBiZSB1c2VkIHRvIHBvaW50IHRvIG90aGVyIGxvY2F0aW9ucy4NCiMNCkRv Y3VtZW50Um9vdCAiQzovUHJvZ3JhbSBGaWxlcy9BcGFjaGUgR3JvdXAvQXBhY2hlMi9odGRvY3Mi DQoNCiMNCiMgRWFjaCBkaXJlY3RvcnkgdG8gd2hpY2ggQXBhY2hlIGhhcyBhY2Nlc3MgY2FuIGJl IGNvbmZpZ3VyZWQgd2l0aCByZXNwZWN0DQojIHRvIHdoaWNoIHNlcnZpY2VzIGFuZCBmZWF0dXJl cyBhcmUgYWxsb3dlZCBhbmQvb3IgZGlzYWJsZWQgaW4gdGhhdA0KIyBkaXJlY3RvcnkgKGFuZCBp dHMgc3ViZGlyZWN0b3JpZXMpLiANCiMNCiMgRmlyc3QsIHdlIGNvbmZpZ3VyZSB0aGUgImRlZmF1 bHQiIHRvIGJlIGEgdmVyeSByZXN0cmljdGl2ZSBzZXQgb2YgDQojIGZlYXR1cmVzLiAgDQojDQo8 RGlyZWN0b3J5IC8+DQogICAgT3B0aW9ucyBGb2xsb3dTeW1MaW5rcw0KICAgIEFsbG93T3ZlcnJp ZGUgTm9uZQ0KPC9EaXJlY3Rvcnk+DQoNCiMNCiMgTm90ZSB0aGF0IGZyb20gdGhpcyBwb2ludCBm b3J3YXJkIHlvdSBtdXN0IHNwZWNpZmljYWxseSBhbGxvdw0KIyBwYXJ0aWN1bGFyIGZlYXR1cmVz IHRvIGJlIGVuYWJsZWQgLSBzbyBpZiBzb21ldGhpbmcncyBub3Qgd29ya2luZyBhcw0KIyB5b3Ug bWlnaHQgZXhwZWN0LCBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSBzcGVjaWZpY2FsbHkgZW5hYmxl ZCBpdA0KIyBiZWxvdy4NCiMNCg0KIw0KIyBUaGlzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIHdoYXRl dmVyIHlvdSBzZXQgRG9jdW1lbnRSb290IHRvLg0KIw0KPERpcmVjdG9yeSAiQzovUHJvZ3JhbSBG aWxlcy9BcGFjaGUgR3JvdXAvQXBhY2hlMi9odGRvY3MiPg0KDQojDQojIFBvc3NpYmxlIHZhbHVl cyBmb3IgdGhlIE9wdGlvbnMgZGlyZWN0aXZlIGFyZSAiTm9uZSIsICJBbGwiLA0KIyBvciBhbnkg Y29tYmluYXRpb24gb2Y6DQojICAgSW5kZXhlcyBJbmNsdWRlcyBGb2xsb3dTeW1MaW5rcyBTeW1M aW5rc2lmT3duZXJNYXRjaCBFeGVjQ0dJIE11bHRpVmlld3MNCiMNCiMgTm90ZSB0aGF0ICJNdWx0 aVZpZXdzIiBtdXN0IGJlIG5hbWVkICpleHBsaWNpdGx5KiAtLS0gIk9wdGlvbnMgQWxsIg0KIyBk b2Vzbid0IGdpdmUgaXQgdG8geW91Lg0KIw0KIyBUaGUgT3B0aW9ucyBkaXJlY3RpdmUgaXMgYm90 aCBjb21wbGljYXRlZCBhbmQgaW1wb3J0YW50LiAgUGxlYXNlIHNlZQ0KIyBodHRwOi8vaHR0cGQu YXBhY2hlLm9yZy9kb2NzLTIuMC9tb2QvY29yZS5odG1sI29wdGlvbnMNCiMgZm9yIG1vcmUgaW5m b3JtYXRpb24uDQojDQogICAgT3B0aW9ucyBJbmRleGVzIEZvbGxvd1N5bUxpbmtzDQoNCiMNCiMg QWxsb3dPdmVycmlkZSBjb250cm9scyB3aGF0IGRpcmVjdGl2ZXMgbWF5IGJlIHBsYWNlZCBpbiAu aHRhY2Nlc3MgZmlsZXMuDQojIEl0IGNhbiBiZSAiQWxsIiwgIk5vbmUiLCBvciBhbnkgY29tYmlu YXRpb24gb2YgdGhlIGtleXdvcmRzOg0KIyAgIE9wdGlvbnMgRmlsZUluZm8gQXV0aENvbmZpZyBM aW1pdA0KIw0KICAgIEFsbG93T3ZlcnJpZGUgTm9uZQ0KDQojDQojIENvbnRyb2xzIHdobyBjYW4g Z2V0IHN0dWZmIGZyb20gdGhpcyBzZXJ2ZXIuDQojDQogICAgT3JkZXIgYWxsb3csZGVueQ0KICAg IEFsbG93IGZyb20gYWxsDQoNCjwvRGlyZWN0b3J5Pg0KDQojDQojIFVzZXJEaXI6IFRoZSBuYW1l IG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBpcyBhcHBlbmRlZCBvbnRvIGEgdXNlcidzIGhvbWUNCiMg ZGlyZWN0b3J5IGlmIGEgfnVzZXIgcmVxdWVzdCBpcyByZWNlaXZlZC4gIEJlIGVzcGVjaWFsbHkg Y2FyZWZ1bCB0byB1c2UNCiMgcHJvcGVyLCBmb3J3YXJkIHNsYXNoZXMgaGVyZS4gIE9uIFdpbmRv d3MgTlQsICJQZXJzb25hbC9NeSBXZWJzaXRlIg0KIyBpcyBhIG1vcmUgYXBwcm9wcmlhdGUgY2hv aWNlLg0KIw0KVXNlckRpciAiTXkgRG9jdW1lbnRzL015IFdlYnNpdGUiDQoNCiMNCiMgQ29udHJv bCBhY2Nlc3MgdG8gVXNlckRpciBkaXJlY3Rvcmllcy4gIFRoZSBmb2xsb3dpbmcgaXMgYW4gZXhh bXBsZQ0KIyBmb3IgYSBzaXRlIHdoZXJlIHRoZXNlIGRpcmVjdG9yaWVzIGFyZSByZXN0cmljdGVk IHRvIHJlYWQtb25seS4NCiMNCiMgWW91IG11c3QgY29ycmVjdCB0aGUgcGF0aCBmb3IgdGhlIHJv b3QgdG8gbWF0Y2ggeW91ciBzeXN0ZW0ncyBjb25maWd1cmVkDQojIHVzZXIgZGlyZWN0b3J5IGxv Y2F0aW9uLCBlLmcuICJDOi9XaW5OVC9wcm9maWxlcy8qL015IERvY3VtZW50cy9NeSBXZWJzaXRl Ig0KIyBvciB3aGljaGV2ZXIsIGFzIGFwcHJvcHJpYXRlLg0KIw0KIzxEaXJlY3RvcnkgIkM6L0Rv Y3VtZW50cyBhbmQgU2V0dGluZ3MvKi9NeSBEb2N1bWVudHMvTXkgV2Vic2l0ZSI+DQojICAgIEFs bG93T3ZlcnJpZGUgRmlsZUluZm8gQXV0aENvbmZpZyBMaW1pdA0KIyAgICBPcHRpb25zIE11bHRp Vmlld3MgSW5kZXhlcyBTeW1MaW5rc0lmT3duZXJNYXRjaCBJbmNsdWRlc05vRXhlYw0KIyAgICA8 TGltaXQgR0VUIFBPU1QgT1BUSU9OUyBQUk9QRklORD4NCiMgICAgICAgIE9yZGVyIGFsbG93LGRl bnkNCiMgICAgICAgIEFsbG93IGZyb20gYWxsDQojICAgIDwvTGltaXQ+DQojICAgIDxMaW1pdEV4 Y2VwdCBHRVQgUE9TVCBPUFRJT05TIFBST1BGSU5EPg0KIyAgICAgICAgT3JkZXIgZGVueSxhbGxv dw0KIyAgICAgICAgRGVueSBmcm9tIGFsbA0KIyAgICA8L0xpbWl0RXhjZXB0Pg0KIzwvRGlyZWN0 b3J5Pg0KDQojDQojIERpcmVjdG9yeUluZGV4OiBzZXRzIHRoZSBmaWxlIHRoYXQgQXBhY2hlIHdp bGwgc2VydmUgaWYgYSBkaXJlY3RvcnkNCiMgaXMgcmVxdWVzdGVkLg0KIw0KIyBUaGUgaW5kZXgu aHRtbC52YXIgZmlsZSAoYSB0eXBlLW1hcCkgaXMgdXNlZCB0byBkZWxpdmVyIGNvbnRlbnQtDQoj IG5lZ290aWF0ZWQgZG9jdW1lbnRzLiAgVGhlIE11bHRpVmlld3MgT3B0aW9uIGNhbiBiZSB1c2Vk IGZvciB0aGUgDQojIHNhbWUgcHVycG9zZSwgYnV0IGl0IGlzIG11Y2ggc2xvd2VyLg0KIw0KRGly ZWN0b3J5SW5kZXggaW5kZXguaHRtbCBpbmRleC5odG1sLnZhcg0KDQojDQojIEFjY2Vzc0ZpbGVO YW1lOiBUaGUgbmFtZSBvZiB0aGUgZmlsZSB0byBsb29rIGZvciBpbiBlYWNoIGRpcmVjdG9yeQ0K IyBmb3IgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMuICBTZWUgYWxzbyB0aGUg QWxsb3dPdmVycmlkZSANCiMgZGlyZWN0aXZlLg0KIw0KQWNjZXNzRmlsZU5hbWUgLmh0YWNjZXNz DQoNCiMNCiMgVGhlIGZvbGxvd2luZyBsaW5lcyBwcmV2ZW50IC5odGFjY2VzcyBhbmQgLmh0cGFz c3dkIGZpbGVzIGZyb20gYmVpbmcgDQojIHZpZXdlZCBieSBXZWIgY2xpZW50cy4gDQojDQo8Rmls ZXMgfiAiXlwuaHQiPg0KICAgIE9yZGVyIGFsbG93LGRlbnkNCiAgICBEZW55IGZyb20gYWxsDQo8 L0ZpbGVzPg0KDQojDQojIFR5cGVzQ29uZmlnIGRlc2NyaWJlcyB3aGVyZSB0aGUgbWltZS50eXBl cyBmaWxlIChvciBlcXVpdmFsZW50KSBpcw0KIyB0byBiZSBmb3VuZC4NCiMNClR5cGVzQ29uZmln IGNvbmYvbWltZS50eXBlcw0KDQojDQojIERlZmF1bHRUeXBlIGlzIHRoZSBkZWZhdWx0IE1JTUUg dHlwZSB0aGUgc2VydmVyIHdpbGwgdXNlIGZvciBhIGRvY3VtZW50DQojIGlmIGl0IGNhbm5vdCBv dGhlcndpc2UgZGV0ZXJtaW5lIG9uZSwgc3VjaCBhcyBmcm9tIGZpbGVuYW1lIGV4dGVuc2lvbnMu DQojIElmIHlvdXIgc2VydmVyIGNvbnRhaW5zIG1vc3RseSB0ZXh0IG9yIEhUTUwgZG9jdW1lbnRz LCAidGV4dC9wbGFpbiIgaXMNCiMgYSBnb29kIHZhbHVlLiAgSWYgbW9zdCBvZiB5b3VyIGNvbnRl bnQgaXMgYmluYXJ5LCBzdWNoIGFzIGFwcGxpY2F0aW9ucw0KIyBvciBpbWFnZXMsIHlvdSBtYXkg d2FudCB0byB1c2UgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIgaW5zdGVhZCB0bw0KIyBrZWVw IGJyb3dzZXJzIGZyb20gdHJ5aW5nIHRvIGRpc3BsYXkgYmluYXJ5IGZpbGVzIGFzIHRob3VnaCB0 aGV5IGFyZQ0KIyB0ZXh0Lg0KIw0KRGVmYXVsdFR5cGUgdGV4dC9wbGFpbg0KDQojDQojIFRoZSBt b2RfbWltZV9tYWdpYyBtb2R1bGUgYWxsb3dzIHRoZSBzZXJ2ZXIgdG8gdXNlIHZhcmlvdXMgaGlu dHMgZnJvbSB0aGUNCiMgY29udGVudHMgb2YgdGhlIGZpbGUgaXRzZWxmIHRvIGRldGVybWluZSBp dHMgdHlwZS4gIFRoZSBNSU1FTWFnaWNGaWxlDQojIGRpcmVjdGl2ZSB0ZWxscyB0aGUgbW9kdWxl IHdoZXJlIHRoZSBoaW50IGRlZmluaXRpb25zIGFyZSBsb2NhdGVkLg0KIw0KPElmTW9kdWxlIG1v ZF9taW1lX21hZ2ljLmM+DQogICAgTUlNRU1hZ2ljRmlsZSBjb25mL21hZ2ljDQo8L0lmTW9kdWxl Pg0KDQojDQojIEhvc3RuYW1lTG9va3VwczogTG9nIHRoZSBuYW1lcyBvZiBjbGllbnRzIG9yIGp1 c3QgdGhlaXIgSVAgYWRkcmVzc2VzDQojIGUuZy4sIHd3dy5hcGFjaGUub3JnIChvbikgb3IgMjA0 LjYyLjEyOS4xMzIgKG9mZikuDQojIFRoZSBkZWZhdWx0IGlzIG9mZiBiZWNhdXNlIGl0J2QgYmUg b3ZlcmFsbCBiZXR0ZXIgZm9yIHRoZSBuZXQgaWYgcGVvcGxlDQojIGhhZCB0byBrbm93aW5nbHkg dHVybiB0aGlzIGZlYXR1cmUgb24sIHNpbmNlIGVuYWJsaW5nIGl0IG1lYW5zIHRoYXQNCiMgZWFj aCBjbGllbnQgcmVxdWVzdCB3aWxsIHJlc3VsdCBpbiBBVCBMRUFTVCBvbmUgbG9va3VwIHJlcXVl c3QgdG8gdGhlDQojIG5hbWVzZXJ2ZXIuDQojDQpIb3N0bmFtZUxvb2t1cHMgT2ZmDQoNCiMNCiMg RW5hYmxlTU1BUDogQ29udHJvbCB3aGV0aGVyIG1lbW9yeS1tYXBwaW5nIGlzIHVzZWQgdG8gZGVs aXZlcg0KIyBmaWxlcyAoYXNzdW1pbmcgdGhhdCB0aGUgdW5kZXJseWluZyBPUyBzdXBwb3J0cyBp dCkuDQojIFRoZSBkZWZhdWx0IGlzIG9uOyB0dXJuIHRoaXMgb2ZmIGlmIHlvdSBzZXJ2ZSBmcm9t IE5GUy1tb3VudGVkIA0KIyBmaWxlc3lzdGVtcy4gIE9uIHNvbWUgc3lzdGVtcywgdHVybmluZyBp dCBvZmYgKHJlZ2FyZGxlc3Mgb2YNCiMgZmlsZXN5c3RlbSkgY2FuIGltcHJvdmUgcGVyZm9ybWFu Y2U7IGZvciBkZXRhaWxzLCBwbGVhc2Ugc2VlDQojIGh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2Rv Y3MtMi4wL21vZC9jb3JlLmh0bWwjZW5hYmxlbW1hcA0KIw0KI0VuYWJsZU1NQVAgb2ZmDQoNCiMN CiMgRW5hYmxlU2VuZGZpbGU6IENvbnRyb2wgd2hldGhlciB0aGUgc2VuZGZpbGUga2VybmVsIHN1 cHBvcnQgaXMgDQojIHVzZWQgIHRvIGRlbGl2ZXIgZmlsZXMgKGFzc3VtaW5nIHRoYXQgdGhlIE9T IHN1cHBvcnRzIGl0KS4NCiMgVGhlIGRlZmF1bHQgaXMgb247IHR1cm4gdGhpcyBvZmYgaWYgeW91 IHNlcnZlIGZyb20gTkZTLW1vdW50ZWQgDQojIGZpbGVzeXN0ZW1zLiAgUGxlYXNlIHNlZQ0KIyBo dHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLTIuMC9tb2QvY29yZS5odG1sI2VuYWJsZXNlbmRm aWxlDQojDQojRW5hYmxlU2VuZGZpbGUgb2ZmDQoNCiMNCiMgRXJyb3JMb2c6IFRoZSBsb2NhdGlv biBvZiB0aGUgZXJyb3IgbG9nIGZpbGUuDQojIElmIHlvdSBkbyBub3Qgc3BlY2lmeSBhbiBFcnJv ckxvZyBkaXJlY3RpdmUgd2l0aGluIGEgPFZpcnR1YWxIb3N0Pg0KIyBjb250YWluZXIsIGVycm9y IG1lc3NhZ2VzIHJlbGF0aW5nIHRvIHRoYXQgdmlydHVhbCBob3N0IHdpbGwgYmUNCiMgbG9nZ2Vk IGhlcmUuICBJZiB5b3UgKmRvKiBkZWZpbmUgYW4gZXJyb3IgbG9nZmlsZSBmb3IgYSA8VmlydHVh bEhvc3Q+DQojIGNvbnRhaW5lciwgdGhhdCBob3N0J3MgZXJyb3JzIHdpbGwgYmUgbG9nZ2VkIHRo ZXJlIGFuZCBub3QgaGVyZS4NCiMNCkVycm9yTG9nIGxvZ3MvZXJyb3IubG9nDQoNCiMNCiMgTG9n TGV2ZWw6IENvbnRyb2wgdGhlIG51bWJlciBvZiBtZXNzYWdlcyBsb2dnZWQgdG8gdGhlIGVycm9y LmxvZy4NCiMgUG9zc2libGUgdmFsdWVzIGluY2x1ZGU6IGRlYnVnLCBpbmZvLCBub3RpY2UsIHdh cm4sIGVycm9yLCBjcml0LA0KIyBhbGVydCwgZW1lcmcuDQojDQpMb2dMZXZlbCB3YXJuDQoNCiMN CiMgVGhlIGZvbGxvd2luZyBkaXJlY3RpdmVzIGRlZmluZSBzb21lIGZvcm1hdCBuaWNrbmFtZXMg Zm9yIHVzZSB3aXRoDQojIGEgQ3VzdG9tTG9nIGRpcmVjdGl2ZSAoc2VlIGJlbG93KS4NCiMNCkxv Z0Zvcm1hdCAiJWggJWwgJXUgJXQgXCIlclwiICU+cyAlYiBcIiV7UmVmZXJlcn1pXCIgXCIle1Vz ZXItQWdlbnR9aVwiIiBjb21iaW5lZA0KTG9nRm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIgJT5z ICViIiBjb21tb24NCkxvZ0Zvcm1hdCAiJXtSZWZlcmVyfWkgLT4gJVUiIHJlZmVyZXINCkxvZ0Zv cm1hdCAiJXtVc2VyLWFnZW50fWkiIGFnZW50DQoNCiMgWW91IG5lZWQgdG8gZW5hYmxlIG1vZF9s b2dpby5jIHRvIHVzZSAlSSBhbmQgJU8NCiNMb2dGb3JtYXQgIiVoICVsICV1ICV0IFwiJXJcIiAl PnMgJWIgXCIle1JlZmVyZXJ9aVwiIFwiJXtVc2VyLUFnZW50fWlcIiAlSSAlTyIgY29tYmluZWRp bw0KDQojDQojIFRoZSBsb2NhdGlvbiBhbmQgZm9ybWF0IG9mIHRoZSBhY2Nlc3MgbG9nZmlsZSAo Q29tbW9uIExvZ2ZpbGUgRm9ybWF0KS4NCiMgSWYgeW91IGRvIG5vdCBkZWZpbmUgYW55IGFjY2Vz cyBsb2dmaWxlcyB3aXRoaW4gYSA8VmlydHVhbEhvc3Q+DQojIGNvbnRhaW5lciwgdGhleSB3aWxs IGJlIGxvZ2dlZCBoZXJlLiAgQ29udHJhcml3aXNlLCBpZiB5b3UgKmRvKg0KIyBkZWZpbmUgcGVy LTxWaXJ0dWFsSG9zdD4gYWNjZXNzIGxvZ2ZpbGVzLCB0cmFuc2FjdGlvbnMgd2lsbCBiZQ0KIyBs b2dnZWQgdGhlcmVpbiBhbmQgKm5vdCogaW4gdGhpcyBmaWxlLg0KIw0KQ3VzdG9tTG9nIGxvZ3Mv YWNjZXNzLmxvZyBjb21tb24NCg0KIw0KIyBJZiB5b3Ugd291bGQgbGlrZSB0byBoYXZlIGFnZW50 IGFuZCByZWZlcmVyIGxvZ2ZpbGVzLCB1bmNvbW1lbnQgdGhlDQojIGZvbGxvd2luZyBkaXJlY3Rp dmVzLg0KIw0KI0N1c3RvbUxvZyBsb2dzL3JlZmVyZXIubG9nIHJlZmVyZXINCiNDdXN0b21Mb2cg bG9ncy9hZ2VudC5sb2cgYWdlbnQNCg0KIw0KIyBJZiB5b3UgcHJlZmVyIGEgc2luZ2xlIGxvZ2Zp bGUgd2l0aCBhY2Nlc3MsIGFnZW50LCBhbmQgcmVmZXJlciBpbmZvcm1hdGlvbg0KIyAoQ29tYmlu ZWQgTG9nZmlsZSBGb3JtYXQpIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgZGlyZWN0aXZlLg0K Iw0KI0N1c3RvbUxvZyBsb2dzL2FjY2Vzcy5sb2cgY29tYmluZWQNCg0KIw0KIyBTZXJ2ZXJUb2tl bnMNCiMgVGhpcyBkaXJlY3RpdmUgY29uZmlndXJlcyB3aGF0IHlvdSByZXR1cm4gYXMgdGhlIFNl cnZlciBIVFRQIHJlc3BvbnNlDQojIEhlYWRlci4gVGhlIGRlZmF1bHQgaXMgJ0Z1bGwnIHdoaWNo IHNlbmRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBPUy1UeXBlDQojIGFuZCBjb21waWxlZCBpbiBt b2R1bGVzLg0KIyBTZXQgdG8gb25lIG9mOiAgRnVsbCB8IE9TIHwgTWlub3IgfCBNaW5pbWFsIHwg TWFqb3IgfCBQcm9kDQojIHdoZXJlIEZ1bGwgY29udmV5cyB0aGUgbW9zdCBpbmZvcm1hdGlvbiwg YW5kIFByb2QgdGhlIGxlYXN0Lg0KIw0KU2VydmVyVG9rZW5zIEZ1bGwNCg0KIw0KIyBPcHRpb25h bGx5IGFkZCBhIGxpbmUgY29udGFpbmluZyB0aGUgc2VydmVyIHZlcnNpb24gYW5kIHZpcnR1YWwg aG9zdA0KIyBuYW1lIHRvIHNlcnZlci1nZW5lcmF0ZWQgcGFnZXMgKGludGVybmFsIGVycm9yIGRv Y3VtZW50cywgRlRQIGRpcmVjdG9yeSANCiMgbGlzdGluZ3MsIG1vZF9zdGF0dXMgYW5kIG1vZF9p bmZvIG91dHB1dCBldGMuLCBidXQgbm90IENHSSBnZW5lcmF0ZWQgDQojIGRvY3VtZW50cyBvciBj dXN0b20gZXJyb3IgZG9jdW1lbnRzKS4NCiMgU2V0IHRvICJFTWFpbCIgdG8gYWxzbyBpbmNsdWRl IGEgbWFpbHRvOiBsaW5rIHRvIHRoZSBTZXJ2ZXJBZG1pbi4NCiMgU2V0IHRvIG9uZSBvZjogIE9u IHwgT2ZmIHwgRU1haWwNCiMNClNlcnZlclNpZ25hdHVyZSBPbg0KDQojDQojIEFsaWFzZXM6IEFk ZCBoZXJlIGFzIG1hbnkgYWxpYXNlcyBhcyB5b3UgbmVlZCAod2l0aCBubyBsaW1pdCkuIFRoZSBm b3JtYXQgaXMgDQojIEFsaWFzIGZha2VuYW1lIHJlYWxuYW1lDQojDQojIE5vdGUgdGhhdCBpZiB5 b3UgaW5jbHVkZSBhIHRyYWlsaW5nIC8gb24gZmFrZW5hbWUgdGhlbiB0aGUgc2VydmVyIHdpbGwN CiMgcmVxdWlyZSBpdCB0byBiZSBwcmVzZW50IGluIHRoZSBVUkwuICBTbyAiL2ljb25zIiBpc24n dCBhbGlhc2VkIGluIHRoaXMNCiMgZXhhbXBsZSwgb25seSAiL2ljb25zLyIuICBJZiB0aGUgZmFr ZW5hbWUgaXMgc2xhc2gtdGVybWluYXRlZCwgdGhlbiB0aGUgDQojIHJlYWxuYW1lIG11c3QgYWxz byBiZSBzbGFzaCB0ZXJtaW5hdGVkLCBhbmQgaWYgdGhlIGZha2VuYW1lIG9taXRzIHRoZSANCiMg dHJhaWxpbmcgc2xhc2gsIHRoZSByZWFsbmFtZSBtdXN0IGFsc28gb21pdCBpdC4NCiMNCiMgV2Ug aW5jbHVkZSB0aGUgL2ljb25zLyBhbGlhcyBmb3IgRmFuY3lJbmRleGVkIGRpcmVjdG9yeSBsaXN0 aW5ncy4gIElmIHlvdQ0KIyBkbyBub3QgdXNlIEZhbmN5SW5kZXhpbmcsIHlvdSBtYXkgY29tbWVu dCB0aGlzIG91dC4NCiMNCkFsaWFzIC9pY29ucy8gIkM6L1Byb2dyYW0gRmlsZXMvQXBhY2hlIEdy b3VwL0FwYWNoZTIvaWNvbnMvIg0KDQo8RGlyZWN0b3J5ICJDOi9Qcm9ncmFtIEZpbGVzL0FwYWNo ZSBHcm91cC9BcGFjaGUyL2ljb25zIj4NCiAgICBPcHRpb25zIEluZGV4ZXMgTXVsdGlWaWV3cw0K ICAgIEFsbG93T3ZlcnJpZGUgTm9uZQ0KICAgIE9yZGVyIGFsbG93LGRlbnkNCiAgICBBbGxvdyBm cm9tIGFsbA0KPC9EaXJlY3Rvcnk+DQoNCiMNCiMgVGhpcyBzaG91bGQgYmUgY2hhbmdlZCB0byB0 aGUgU2VydmVyUm9vdC9tYW51YWwvLiAgVGhlIGFsaWFzIHByb3ZpZGVzDQojIHRoZSBtYW51YWws IGV2ZW4gaWYgeW91IGNob29zZSB0byBtb3ZlIHlvdXIgRG9jdW1lbnRSb290LiAgWW91IG1heSBj b21tZW50DQojIHRoaXMgb3V0IGlmIHlvdSBkbyBub3QgY2FyZSBmb3IgdGhlIGRvY3VtZW50YXRp b24uDQojDQpBbGlhcyAvbWFudWFsICJDOi9Qcm9ncmFtIEZpbGVzL0FwYWNoZSBHcm91cC9BcGFj aGUyL21hbnVhbCINCg0KPERpcmVjdG9yeSAiQzovUHJvZ3JhbSBGaWxlcy9BcGFjaGUgR3JvdXAv QXBhY2hlMi9tYW51YWwiPg0KICAgIE9wdGlvbnMgSW5kZXhlcyBGb2xsb3dTeW1MaW5rcyBNdWx0 aVZpZXdzIEluY2x1ZGVzTm9FeGVjDQogICAgQWRkT3V0cHV0RmlsdGVyIEluY2x1ZGVzIGh0bWwN CiAgICBBbGxvd092ZXJyaWRlIE5vbmUNCiAgICBPcmRlciBhbGxvdyxkZW55DQogICAgQWxsb3cg ZnJvbSBhbGwNCjwvRGlyZWN0b3J5Pg0KDQojDQojIFNjcmlwdEFsaWFzOiBUaGlzIGNvbnRyb2xz IHdoaWNoIGRpcmVjdG9yaWVzIGNvbnRhaW4gc2VydmVyIHNjcmlwdHMuDQojIFNjcmlwdEFsaWFz ZXMgYXJlIGVzc2VudGlhbGx5IHRoZSBzYW1lIGFzIEFsaWFzZXMsIGV4Y2VwdCB0aGF0DQojIGRv Y3VtZW50cyBpbiB0aGUgcmVhbG5hbWUgZGlyZWN0b3J5IGFyZSB0cmVhdGVkIGFzIGFwcGxpY2F0 aW9ucyBhbmQNCiMgcnVuIGJ5IHRoZSBzZXJ2ZXIgd2hlbiByZXF1ZXN0ZWQgcmF0aGVyIHRoYW4g YXMgZG9jdW1lbnRzIHNlbnQgdG8gdGhlIGNsaWVudC4NCiMgVGhlIHNhbWUgcnVsZXMgYWJvdXQg dHJhaWxpbmcgIi8iIGFwcGx5IHRvIFNjcmlwdEFsaWFzIGRpcmVjdGl2ZXMgYXMgdG8NCiMgQWxp YXMuDQojDQpTY3JpcHRBbGlhcyAvY2dpLWJpbi8gIkM6L1Byb2dyYW0gRmlsZXMvQXBhY2hlIEdy b3VwL0FwYWNoZTIvY2dpLWJpbi8iDQoNCiMNCiMgIkM6L1Byb2dyYW0gRmlsZXMvQXBhY2hlIEdy b3VwL0FwYWNoZTIvY2dpLWJpbiIgc2hvdWxkIGJlIGNoYW5nZWQgdG8gd2hhdGV2ZXIgeW91ciBT Y3JpcHRBbGlhc2VkDQojIENHSSBkaXJlY3RvcnkgZXhpc3RzLCBpZiB5b3UgaGF2ZSB0aGF0IGNv bmZpZ3VyZWQuDQojDQo8RGlyZWN0b3J5ICJDOi9Qcm9ncmFtIEZpbGVzL0FwYWNoZSBHcm91cC9B cGFjaGUyL2NnaS1iaW4iPg0KICAgIEFsbG93T3ZlcnJpZGUgTm9uZQ0KICAgIE9wdGlvbnMgTm9u ZQ0KICAgIE9yZGVyIGFsbG93LGRlbnkNCiAgICBBbGxvdyBmcm9tIGFsbA0KPC9EaXJlY3Rvcnk+ DQoNCiMNCiMgUmVkaXJlY3QgYWxsb3dzIHlvdSB0byB0ZWxsIGNsaWVudHMgYWJvdXQgZG9jdW1l bnRzIHdoaWNoIHVzZWQgdG8gZXhpc3QgaW4NCiMgeW91ciBzZXJ2ZXIncyBuYW1lc3BhY2UsIGJ1 dCBkbyBub3QgYW55bW9yZS4gVGhpcyBhbGxvd3MgeW91IHRvIHRlbGwgdGhlDQojIGNsaWVudHMg d2hlcmUgdG8gbG9vayBmb3IgdGhlIHJlbG9jYXRlZCBkb2N1bWVudC4NCiMgRXhhbXBsZToNCiMg UmVkaXJlY3QgcGVybWFuZW50IC9mb28gaHR0cDovL3d3dy5leGFtcGxlLmNvbS9iYXINCg0KIw0K IyBEaXJlY3RpdmVzIGNvbnRyb2xsaW5nIHRoZSBkaXNwbGF5IG9mIHNlcnZlci1nZW5lcmF0ZWQg ZGlyZWN0b3J5IGxpc3RpbmdzLg0KIw0KDQojDQojIEluZGV4T3B0aW9uczogQ29udHJvbHMgdGhl IGFwcGVhcmFuY2Ugb2Ygc2VydmVyLWdlbmVyYXRlZCBkaXJlY3RvcnkNCiMgbGlzdGluZ3MuDQoj DQpJbmRleE9wdGlvbnMgRmFuY3lJbmRleGluZyBWZXJzaW9uU29ydA0KDQojDQojIEFkZEljb24q IGRpcmVjdGl2ZXMgdGVsbCB0aGUgc2VydmVyIHdoaWNoIGljb24gdG8gc2hvdyBmb3IgZGlmZmVy ZW50DQojIGZpbGVzIG9yIGZpbGVuYW1lIGV4dGVuc2lvbnMuICBUaGVzZSBhcmUgb25seSBkaXNw bGF5ZWQgZm9yDQojIEZhbmN5SW5kZXhlZCBkaXJlY3Rvcmllcy4NCiMNCkFkZEljb25CeUVuY29k aW5nIChDTVAsL2ljb25zL2NvbXByZXNzZWQuZ2lmKSB4LWNvbXByZXNzIHgtZ3ppcA0KDQpBZGRJ Y29uQnlUeXBlIChUWFQsL2ljb25zL3RleHQuZ2lmKSB0ZXh0LyoNCkFkZEljb25CeVR5cGUgKElN RywvaWNvbnMvaW1hZ2UyLmdpZikgaW1hZ2UvKg0KQWRkSWNvbkJ5VHlwZSAoU05ELC9pY29ucy9z b3VuZDIuZ2lmKSBhdWRpby8qDQpBZGRJY29uQnlUeXBlIChWSUQsL2ljb25zL21vdmllLmdpZikg dmlkZW8vKg0KDQpBZGRJY29uIC9pY29ucy9iaW5hcnkuZ2lmIC5iaW4gLmV4ZQ0KQWRkSWNvbiAv aWNvbnMvYmluaGV4LmdpZiAuaHF4DQpBZGRJY29uIC9pY29ucy90YXIuZ2lmIC50YXINCkFkZElj b24gL2ljb25zL3dvcmxkMi5naWYgLndybCAud3JsLmd6IC52cm1sIC52cm0gLml2DQpBZGRJY29u IC9pY29ucy9jb21wcmVzc2VkLmdpZiAuWiAueiAudGd6IC5neiAuemlwDQpBZGRJY29uIC9pY29u cy9hLmdpZiAucHMgLmFpIC5lcHMNCkFkZEljb24gL2ljb25zL2xheW91dC5naWYgLmh0bWwgLnNo dG1sIC5odG0gLnBkZg0KQWRkSWNvbiAvaWNvbnMvdGV4dC5naWYgLnR4dA0KQWRkSWNvbiAvaWNv bnMvYy5naWYgLmMNCkFkZEljb24gL2ljb25zL3AuZ2lmIC5wbCAucHkNCkFkZEljb24gL2ljb25z L2YuZ2lmIC5mb3INCkFkZEljb24gL2ljb25zL2R2aS5naWYgLmR2aQ0KQWRkSWNvbiAvaWNvbnMv dXVlbmNvZGVkLmdpZiAudXUNCkFkZEljb24gL2ljb25zL3NjcmlwdC5naWYgLmNvbmYgLnNoIC5z aGFyIC5jc2ggLmtzaCAudGNsDQpBZGRJY29uIC9pY29ucy90ZXguZ2lmIC50ZXgNCkFkZEljb24g L2ljb25zL2JvbWIuZ2lmIGNvcmUNCg0KQWRkSWNvbiAvaWNvbnMvYmFjay5naWYgLi4NCkFkZElj b24gL2ljb25zL2hhbmQucmlnaHQuZ2lmIFJFQURNRQ0KQWRkSWNvbiAvaWNvbnMvZm9sZGVyLmdp ZiBeXkRJUkVDVE9SWV5eDQpBZGRJY29uIC9pY29ucy9ibGFuay5naWYgXl5CTEFOS0lDT05eXg0K DQojDQojIERlZmF1bHRJY29uIGlzIHdoaWNoIGljb24gdG8gc2hvdyBmb3IgZmlsZXMgd2hpY2gg ZG8gbm90IGhhdmUgYW4gaWNvbg0KIyBleHBsaWNpdGx5IHNldC4NCiMNCkRlZmF1bHRJY29uIC9p Y29ucy91bmtub3duLmdpZg0KDQojDQojIEFkZERlc2NyaXB0aW9uIGFsbG93cyB5b3UgdG8gcGxh Y2UgYSBzaG9ydCBkZXNjcmlwdGlvbiBhZnRlciBhIGZpbGUgaW4NCiMgc2VydmVyLWdlbmVyYXRl ZCBpbmRleGVzLiAgVGhlc2UgYXJlIG9ubHkgZGlzcGxheWVkIGZvciBGYW5jeUluZGV4ZWQNCiMg ZGlyZWN0b3JpZXMuDQojIEZvcm1hdDogQWRkRGVzY3JpcHRpb24gImRlc2NyaXB0aW9uIiBmaWxl bmFtZQ0KIw0KI0FkZERlc2NyaXB0aW9uICJHWklQIGNvbXByZXNzZWQgZG9jdW1lbnQiIC5neg0K I0FkZERlc2NyaXB0aW9uICJ0YXIgYXJjaGl2ZSIgLnRhcg0KI0FkZERlc2NyaXB0aW9uICJHWklQ IGNvbXByZXNzZWQgdGFyIGFyY2hpdmUiIC50Z3oNCg0KIw0KIyBSZWFkbWVOYW1lIGlzIHRoZSBu YW1lIG9mIHRoZSBSRUFETUUgZmlsZSB0aGUgc2VydmVyIHdpbGwgbG9vayBmb3IgYnkNCiMgZGVm YXVsdCwgYW5kIGFwcGVuZCB0byBkaXJlY3RvcnkgbGlzdGluZ3MuDQojDQojIEhlYWRlck5hbWUg aXMgdGhlIG5hbWUgb2YgYSBmaWxlIHdoaWNoIHNob3VsZCBiZSBwcmVwZW5kZWQgdG8NCiMgZGly ZWN0b3J5IGluZGV4ZXMuIA0KUmVhZG1lTmFtZSBSRUFETUUuaHRtbA0KSGVhZGVyTmFtZSBIRUFE RVIuaHRtbA0KDQojDQojIEluZGV4SWdub3JlIGlzIGEgc2V0IG9mIGZpbGVuYW1lcyB3aGljaCBk aXJlY3RvcnkgaW5kZXhpbmcgc2hvdWxkIGlnbm9yZQ0KIyBhbmQgbm90IGluY2x1ZGUgaW4gdGhl IGxpc3RpbmcuICBTaGVsbC1zdHlsZSB3aWxkY2FyZGluZyBpcyBwZXJtaXR0ZWQuDQojDQpJbmRl eElnbm9yZSAuPz8qICp+ICojIEhFQURFUiogUkVBRE1FKiBSQ1MgQ1ZTICosdiAqLHQNCg0KIw0K IyBBZGRFbmNvZGluZyBhbGxvd3MgeW91IHRvIGhhdmUgY2VydGFpbiBicm93c2VycyAoTW9zYWlj L1ggMi4xKykgdW5jb21wcmVzcw0KIyBpbmZvcm1hdGlvbiBvbiB0aGUgZmx5LiBOb3RlOiBOb3Qg YWxsIGJyb3dzZXJzIHN1cHBvcnQgdGhpcy4NCiMgRGVzcGl0ZSB0aGUgbmFtZSBzaW1pbGFyaXR5 LCB0aGUgZm9sbG93aW5nIEFkZCogZGlyZWN0aXZlcyBoYXZlIG5vdGhpbmcNCiMgdG8gZG8gd2l0 aCB0aGUgRmFuY3lJbmRleGluZyBjdXN0b21pemF0aW9uIGRpcmVjdGl2ZXMgYWJvdmUuDQojDQpB ZGRFbmNvZGluZyB4LWNvbXByZXNzIFoNCkFkZEVuY29kaW5nIHgtZ3ppcCBneiB0Z3oNCg0KIw0K IyBEZWZhdWx0TGFuZ3VhZ2UgYW5kIEFkZExhbmd1YWdlIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0 aGUgbGFuZ3VhZ2Ugb2YgDQojIGEgZG9jdW1lbnQuIFlvdSBjYW4gdGhlbiB1c2UgY29udGVudCBu ZWdvdGlhdGlvbiB0byBnaXZlIGEgYnJvd3NlciBhIA0KIyBmaWxlIGluIGEgbGFuZ3VhZ2UgdGhl IHVzZXIgY2FuIHVuZGVyc3RhbmQuDQojDQojIFNwZWNpZnkgYSBkZWZhdWx0IGxhbmd1YWdlLiBU aGlzIG1lYW5zIHRoYXQgYWxsIGRhdGENCiMgZ29pbmcgb3V0IHdpdGhvdXQgYSBzcGVjaWZpYyBs YW5ndWFnZSB0YWcgKHNlZSBiZWxvdykgd2lsbCANCiMgYmUgbWFya2VkIHdpdGggdGhpcyBvbmUu IFlvdSBwcm9iYWJseSBkbyBOT1Qgd2FudCB0byBzZXQNCiMgdGhpcyB1bmxlc3MgeW91IGFyZSBz dXJlIGl0IGlzIGNvcnJlY3QgZm9yIGFsbCBjYXNlcy4NCiMNCiMgKiBJdCBpcyBnZW5lcmFsbHkg YmV0dGVyIHRvIG5vdCBtYXJrIGEgcGFnZSBhcyANCiMgKiBiZWluZyBhIGNlcnRhaW4gbGFuZ3Vh Z2UgdGhhbiBtYXJraW5nIGl0IHdpdGggdGhlIHdyb25nDQojICogbGFuZ3VhZ2UhDQojDQojIERl ZmF1bHRMYW5ndWFnZSBubA0KIw0KIyBOb3RlIDE6IFRoZSBzdWZmaXggZG9lcyBub3QgaGF2ZSB0 byBiZSB0aGUgc2FtZSBhcyB0aGUgbGFuZ3VhZ2UNCiMga2V5d29yZCAtLS0gdGhvc2Ugd2l0aCBk b2N1bWVudHMgaW4gUG9saXNoICh3aG9zZSBuZXQtc3RhbmRhcmQNCiMgbGFuZ3VhZ2UgY29kZSBp cyBwbCkgbWF5IHdpc2ggdG8gdXNlICJBZGRMYW5ndWFnZSBwbCAucG8iIHRvDQojIGF2b2lkIHRo ZSBhbWJpZ3VpdHkgd2l0aCB0aGUgY29tbW9uIHN1ZmZpeCBmb3IgcGVybCBzY3JpcHRzLg0KIw0K IyBOb3RlIDI6IFRoZSBleGFtcGxlIGVudHJpZXMgYmVsb3cgaWxsdXN0cmF0ZSB0aGF0IGluIHNv bWUgY2FzZXMgDQojIHRoZSB0d28gY2hhcmFjdGVyICdMYW5ndWFnZScgYWJicmV2aWF0aW9uIGlz IG5vdCBpZGVudGljYWwgdG8gDQojIHRoZSB0d28gY2hhcmFjdGVyICdDb3VudHJ5JyBjb2RlIGZv ciBpdHMgY291bnRyeSwNCiMgRS5nLiAnRGFubWFyay9kaycgdmVyc3VzICdEYW5pc2gvZGEnLg0K Iw0KIyBOb3RlIDM6IEluIHRoZSBjYXNlIG9mICdsdHonIHdlIHZpb2xhdGUgdGhlIFJGQyBieSB1 c2luZyBhIHRocmVlIGNoYXINCiMgc3BlY2lmaWVyLiBUaGVyZSBpcyAnd29yayBpbiBwcm9ncmVz cycgdG8gZml4IHRoaXMgYW5kIGdldA0KIyB0aGUgcmVmZXJlbmNlIGRhdGEgZm9yIHJmYzE3NjYg Y2xlYW5lZCB1cC4NCiMNCiMgRGFuaXNoIChkYSkgLSBEdXRjaCAobmwpIC0gRW5nbGlzaCAoZW4p IC0gRXN0b25pYW4gKGV0KQ0KIyBGcmVuY2ggKGZyKSAtIEdlcm1hbiAoZGUpIC0gR3JlZWstTW9k ZXJuIChlbCkNCiMgSXRhbGlhbiAoaXQpIC0gTm9yd2VnaWFuIChubykgLSBOb3J3ZWdpYW4gTnlu b3JzayAobm4pIC0gS29yZWFuIChrbykNCiMgUG9ydHVnZXNlIChwdCkgLSBMdXhlbWJvdXJnZW9p cyogKGx0eikNCiMgU3BhbmlzaCAoZXMpIC0gU3dlZGlzaCAoc3YpIC0gQ2F0YWxhbiAoY2EpIC0g Q3plY2goY3opDQojIFBvbGlzaCAocGwpIC0gQnJhemlsaWFuIFBvcnR1Z3Vlc2UgKHB0LWJyKSAt IEphcGFuZXNlIChqYSkNCiMgUnVzc2lhbiAocnUpIC0gQ3JvYXRpYW4gKGhyKQ0KIw0KQWRkTGFu Z3VhZ2UgZGEgLmRrDQpBZGRMYW5ndWFnZSBubCAubmwNCkFkZExhbmd1YWdlIGVuIC5lbg0KQWRk TGFuZ3VhZ2UgZXQgLmV0DQpBZGRMYW5ndWFnZSBmciAuZnINCkFkZExhbmd1YWdlIGRlIC5kZQ0K QWRkTGFuZ3VhZ2UgaGUgLmhlDQpBZGRMYW5ndWFnZSBlbCAuZWwNCkFkZExhbmd1YWdlIGl0IC5p dA0KQWRkTGFuZ3VhZ2UgamEgLmphDQpBZGRMYW5ndWFnZSBwbCAucG8NCkFkZExhbmd1YWdlIGtv IC5rbw0KQWRkTGFuZ3VhZ2UgcHQgLnB0DQpBZGRMYW5ndWFnZSBubiAubm4NCkFkZExhbmd1YWdl IG5vIC5ubw0KQWRkTGFuZ3VhZ2UgcHQtYnIgLnB0LWJyDQpBZGRMYW5ndWFnZSBsdHogLmx0eg0K QWRkTGFuZ3VhZ2UgY2EgLmNhDQpBZGRMYW5ndWFnZSBlcyAuZXMNCkFkZExhbmd1YWdlIHN2IC5z dg0KQWRkTGFuZ3VhZ2UgY3ogLmN6DQpBZGRMYW5ndWFnZSBydSAucnUNCkFkZExhbmd1YWdlIHR3 IC50dw0KQWRkTGFuZ3VhZ2UgemgtdHcgLnR3DQpBZGRMYW5ndWFnZSBociAuaHINCg0KIw0KIyBM YW5ndWFnZVByaW9yaXR5IGFsbG93cyB5b3UgdG8gZ2l2ZSBwcmVjZWRlbmNlIHRvIHNvbWUgbGFu Z3VhZ2VzDQojIGluIGNhc2Ugb2YgYSB0aWUgZHVyaW5nIGNvbnRlbnQgbmVnb3RpYXRpb24uDQoj DQojIEp1c3QgbGlzdCB0aGUgbGFuZ3VhZ2VzIGluIGRlY3JlYXNpbmcgb3JkZXIgb2YgcHJlZmVy ZW5jZS4gV2UgaGF2ZQ0KIyBtb3JlIG9yIGxlc3MgYWxwaGFiZXRpemVkIHRoZW0gaGVyZS4gWW91 IHByb2JhYmx5IHdhbnQgdG8gY2hhbmdlIHRoaXMuDQojDQpMYW5ndWFnZVByaW9yaXR5IGVuIGRh IG5sIGV0IGZyIGRlIGVsIGl0IGphIGtvIG5vIHBsIHB0IHB0LWJyIGx0eiBjYSBlcyBzdiB0dw0K DQojDQojIEZvcmNlTGFuZ3VhZ2VQcmlvcml0eSBhbGxvd3MgeW91IHRvIHNlcnZlIGEgcmVzdWx0 IHBhZ2UgcmF0aGVyIHRoYW4NCiMgTVVMVElQTEUgQ0hPSUNFUyAoUHJlZmVyKSBbaW4gY2FzZSBv ZiBhIHRpZV0gb3IgTk9UIEFDQ0VQVEFCTEUgKEZhbGxiYWNrKQ0KIyBbaW4gY2FzZSBubyBhY2Nl cHRlZCBsYW5ndWFnZXMgbWF0Y2hlZCB0aGUgYXZhaWxhYmxlIHZhcmlhbnRzXQ0KIw0KRm9yY2VM YW5ndWFnZVByaW9yaXR5IFByZWZlciBGYWxsYmFjaw0KDQojDQojIFNwZWNpZnkgYSBkZWZhdWx0 IGNoYXJzZXQgZm9yIGFsbCBwYWdlcyBzZW50IG91dC4gVGhpcyBpcw0KIyBhbHdheXMgYSBnb29k IGlkZWEgYW5kIG9wZW5zIHRoZSBkb29yIGZvciBmdXR1cmUgaW50ZXJuYXRpb25hbGlzYXRpb24N CiMgb2YgeW91ciB3ZWIgc2l0ZSwgc2hvdWxkIHlvdSBldmVyIHdhbnQgaXQuIFNwZWNpZnlpbmcg aXQgYXMNCiMgYSBkZWZhdWx0IGRvZXMgbGl0dGxlIGhhcm07IGFzIHRoZSBzdGFuZGFyZCBkaWN0 YXRlcyB0aGF0IGEgcGFnZQ0KIyBpcyBpbiBpc28tODg1OS0xIChsYXRpbjEpIHVubGVzcyBzcGVj aWZpZWQgb3RoZXJ3aXNlIGkuZS4geW91DQojIGFyZSBtZXJlbHkgc3RhdGluZyB0aGUgb2J2aW91 cy4gVGhlcmUgYXJlIGFsc28gc29tZSBzZWN1cml0eQ0KIyByZWFzb25zIGluIGJyb3dzZXJzLCBy ZWxhdGVkIHRvIGphdmFzY3JpcHQgYW5kIFVSTCBwYXJzaW5nDQojIHdoaWNoIGVuY291cmFnZSB5 b3UgdG8gYWx3YXlzIHNldCBhIGRlZmF1bHQgY2hhciBzZXQuDQojDQpBZGREZWZhdWx0Q2hhcnNl dCBJU08tODg1OS0xDQoNCiMNCiMgQ29tbW9ubHkgdXNlZCBmaWxlbmFtZSBleHRlbnNpb25zIHRv IGNoYXJhY3RlciBzZXRzLiBZb3UgcHJvYmFibHkNCiMgd2FudCB0byBhdm9pZCBjbGFzaGVzIHdp dGggdGhlIGxhbmd1YWdlIGV4dGVuc2lvbnMsIHVubGVzcyB5b3UNCiMgYXJlIGdvb2QgYXQgY2Fy ZWZ1bGx5IHRlc3RpbmcgeW91ciBzZXR1cCBhZnRlciBlYWNoIGNoYW5nZS4NCiMgU2VlIGh0dHA6 Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvY2hhcmFjdGVyLXNldHMgZm9yIHRoZQ0KIyBvZmZp Y2lhbCBsaXN0IG9mIGNoYXJzZXQgbmFtZXMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgUkZDcy4NCiMN CkFkZENoYXJzZXQgSVNPLTg4NTktMSAgLmlzbzg4NTktMSAubGF0aW4xDQpBZGRDaGFyc2V0IElT Ty04ODU5LTIgIC5pc284ODU5LTIgLmxhdGluMiAuY2VuDQpBZGRDaGFyc2V0IElTTy04ODU5LTMg IC5pc284ODU5LTMgLmxhdGluMw0KQWRkQ2hhcnNldCBJU08tODg1OS00ICAuaXNvODg1OS00IC5s YXRpbjQNCkFkZENoYXJzZXQgSVNPLTg4NTktNSAgLmlzbzg4NTktNSAubGF0aW41IC5jeXIgLmlz by1ydQ0KQWRkQ2hhcnNldCBJU08tODg1OS02ICAuaXNvODg1OS02IC5sYXRpbjYgLmFyYg0KQWRk Q2hhcnNldCBJU08tODg1OS03ICAuaXNvODg1OS03IC5sYXRpbjcgLmdyaw0KQWRkQ2hhcnNldCBJ U08tODg1OS04ICAuaXNvODg1OS04IC5sYXRpbjggLmhlYg0KQWRkQ2hhcnNldCBJU08tODg1OS05 ICAuaXNvODg1OS05IC5sYXRpbjkgLnRyaw0KQWRkQ2hhcnNldCBJU08tMjAyMi1KUCAuaXNvMjAy Mi1qcCAuamlzDQpBZGRDaGFyc2V0IElTTy0yMDIyLUtSIC5pc28yMDIyLWtyIC5raXMNCkFkZENo YXJzZXQgSVNPLTIwMjItQ04gLmlzbzIwMjItY24gLmNpcw0KQWRkQ2hhcnNldCBCaWc1ICAgICAg ICAuQmlnNSAgICAgICAuYmlnNQ0KIyBGb3IgcnVzc2lhbiwgbW9yZSB0aGFuIG9uZSBjaGFyc2V0 IGlzIHVzZWQgKGRlcGVuZHMgb24gY2xpZW50LCBtb3N0bHkpOg0KQWRkQ2hhcnNldCBXSU5ET1dT LTEyNTEgLmNwLTEyNTEgICAud2luLTEyNTENCkFkZENoYXJzZXQgQ1A4NjYgICAgICAgLmNwODY2 DQpBZGRDaGFyc2V0IEtPSTgtciAgICAgIC5rb2k4LXIgLmtvaTgtcnUNCkFkZENoYXJzZXQgS09J OC1ydSAgICAgLmtvaTgtdWsgLnVhDQpBZGRDaGFyc2V0IElTTy0xMDY0Ni1VQ1MtMiAudWNzMg0K QWRkQ2hhcnNldCBJU08tMTA2NDYtVUNTLTQgLnVjczQNCkFkZENoYXJzZXQgVVRGLTggICAgICAg LnV0ZjgNCg0KIyBUaGUgc2V0IGJlbG93IGRvZXMgbm90IG1hcCB0byBhIHNwZWNpZmljIChpc28p IHN0YW5kYXJkDQojIGJ1dCB3b3JrcyBvbiBhIGZhaXJseSB3aWRlIHJhbmdlIG9mIGJyb3dzZXJz LiBOb3RlIHRoYXQNCiMgY2FwaXRhbGl6YXRpb24gYWN0dWFsbHkgbWF0dGVycyAoaXQgc2hvdWxk IG5vdCwgYnV0IGl0DQojIGRvZXMgZm9yIHNvbWUgYnJvd3NlcnMpLg0KIw0KIyBTZWUgaHR0cDov L3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9jaGFyYWN0ZXItc2V0cw0KIyBmb3IgYSBsaXN0IG9m IHNvcnRzLiBCdXQgYnJvd3NlcnMgc3VwcG9ydCBmZXcuDQojDQpBZGRDaGFyc2V0IEdCMjMxMiAg ICAgIC5nYjIzMTIgLmdiIA0KQWRkQ2hhcnNldCB1dGYtNyAgICAgICAudXRmNw0KQWRkQ2hhcnNl dCB1dGYtOCAgICAgICAudXRmOA0KQWRkQ2hhcnNldCBiaWc1ICAgICAgICAuYmlnNSAuYjUNCkFk ZENoYXJzZXQgRVVDLVRXICAgICAgLmV1Yy10dw0KQWRkQ2hhcnNldCBFVUMtSlAgICAgICAuZXVj LWpwDQpBZGRDaGFyc2V0IEVVQy1LUiAgICAgIC5ldWMta3INCkFkZENoYXJzZXQgc2hpZnRfamlz ICAgLnNqaXMNCg0KIw0KIyBBZGRUeXBlIGFsbG93cyB5b3UgdG8gYWRkIHRvIG9yIG92ZXJyaWRl IHRoZSBNSU1FIGNvbmZpZ3VyYXRpb24NCiMgZmlsZSBtaW1lLnR5cGVzIGZvciBzcGVjaWZpYyBm aWxlIHR5cGVzLg0KIw0KQWRkVHlwZSBhcHBsaWNhdGlvbi94LXRhciAudGd6DQpBZGRUeXBlIGlt YWdlL3gtaWNvbiAuaWNvDQoNCiMNCiMgQWRkSGFuZGxlciBhbGxvd3MgeW91IHRvIG1hcCBjZXJ0 YWluIGZpbGUgZXh0ZW5zaW9ucyB0byAiaGFuZGxlcnMiOg0KIyBhY3Rpb25zIHVucmVsYXRlZCB0 byBmaWxldHlwZS4gVGhlc2UgY2FuIGJlIGVpdGhlciBidWlsdCBpbnRvIHRoZSBzZXJ2ZXINCiMg b3IgYWRkZWQgd2l0aCB0aGUgQWN0aW9uIGRpcmVjdGl2ZSAoc2VlIGJlbG93KQ0KIw0KIyBUbyB1 c2UgQ0dJIHNjcmlwdHMgb3V0c2lkZSBvZiBTY3JpcHRBbGlhc2VkIGRpcmVjdG9yaWVzOg0KIyAo WW91IHdpbGwgYWxzbyBuZWVkIHRvIGFkZCAiRXhlY0NHSSIgdG8gdGhlICJPcHRpb25zIiBkaXJl Y3RpdmUuKQ0KIw0KI0FkZEhhbmRsZXIgY2dpLXNjcmlwdCAuY2dpDQoNCiMNCiMgRm9yIGZpbGVz IHRoYXQgaW5jbHVkZSB0aGVpciBvd24gSFRUUCBoZWFkZXJzOg0KIw0KI0FkZEhhbmRsZXIgc2Vu ZC1hcy1pcyBhc2lzDQoNCiMNCiMgRm9yIHNlcnZlci1wYXJzZWQgaW1hZ2VtYXAgZmlsZXM6DQoj DQojQWRkSGFuZGxlciBpbWFwLWZpbGUgbWFwDQoNCiMNCiMgRm9yIHR5cGUgbWFwcyAobmVnb3Rp YXRlZCByZXNvdXJjZXMpOg0KIyAoVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgdG8gYWxsb3cg dGhlIEFwYWNoZSAiSXQgV29ya2VkIiBwYWdlDQojICB0byBiZSBkaXN0cmlidXRlZCBpbiBtdWx0 aXBsZSBsYW5ndWFnZXMuKQ0KIw0KQWRkSGFuZGxlciB0eXBlLW1hcCB2YXINCg0KIw0KIyBGaWx0 ZXJzIGFsbG93IHlvdSB0byBwcm9jZXNzIGNvbnRlbnQgYmVmb3JlIGl0IGlzIHNlbnQgdG8gdGhl IGNsaWVudC4NCiMNCiMgVG8gcGFyc2UgLnNodG1sIGZpbGVzIGZvciBzZXJ2ZXItc2lkZSBpbmNs dWRlcyAoU1NJKToNCiMgKFlvdSB3aWxsIGFsc28gbmVlZCB0byBhZGQgIkluY2x1ZGVzIiB0byB0 aGUgIk9wdGlvbnMiIGRpcmVjdGl2ZS4pDQojDQojQWRkVHlwZSB0ZXh0L2h0bWwgLnNodG1sDQoj QWRkT3V0cHV0RmlsdGVyIElOQ0xVREVTIC5zaHRtbA0KDQojDQojIEFjdGlvbiBsZXRzIHlvdSBk ZWZpbmUgbWVkaWEgdHlwZXMgdGhhdCB3aWxsIGV4ZWN1dGUgYSBzY3JpcHQgd2hlbmV2ZXINCiMg YSBtYXRjaGluZyBmaWxlIGlzIGNhbGxlZC4gVGhpcyBlbGltaW5hdGVzIHRoZSBuZWVkIGZvciBy ZXBlYXRlZCBVUkwNCiMgcGF0aG5hbWVzIGZvciBvZnQtdXNlZCBDR0kgZmlsZSBwcm9jZXNzb3Jz Lg0KIyBGb3JtYXQ6IEFjdGlvbiBtZWRpYS90eXBlIC9jZ2ktc2NyaXB0L2xvY2F0aW9uDQojIEZv cm1hdDogQWN0aW9uIGhhbmRsZXItbmFtZSAvY2dpLXNjcmlwdC9sb2NhdGlvbg0KIw0KDQojDQoj IEN1c3RvbWl6YWJsZSBlcnJvciByZXNwb25zZXMgY29tZSBpbiB0aHJlZSBmbGF2b3JzOg0KIyAx KSBwbGFpbiB0ZXh0IDIpIGxvY2FsIHJlZGlyZWN0cyAzKSBleHRlcm5hbCByZWRpcmVjdHMNCiMN CiMgU29tZSBleGFtcGxlczoNCiNFcnJvckRvY3VtZW50IDUwMCAiVGhlIHNlcnZlciBtYWRlIGEg Ym9vIGJvby4iDQojRXJyb3JEb2N1bWVudCA0MDQgL21pc3NpbmcuaHRtbA0KI0Vycm9yRG9jdW1l bnQgNDA0ICIvY2dpLWJpbi9taXNzaW5nX2hhbmRsZXIucGwiDQojRXJyb3JEb2N1bWVudCA0MDIg aHR0cDovL3d3dy5leGFtcGxlLmNvbS9zdWJzY3JpcHRpb25faW5mby5odG1sDQojDQoNCiMNCiMg UHV0dGluZyB0aGlzIGFsbCB0b2dldGhlciwgd2UgY2FuIGludGVybmF0aW9uYWxpemUgZXJyb3Ig cmVzcG9uc2VzLg0KIw0KIyBXZSB1c2UgQWxpYXMgdG8gcmVkaXJlY3QgYW55IC9lcnJvci9IVFRQ XzxlcnJvcj4uaHRtbC52YXIgcmVzcG9uc2UgdG8NCiMgb3VyIGNvbGxlY3Rpb24gb2YgYnktZXJy b3IgbWVzc2FnZSBtdWx0aS1sYW5ndWFnZSBjb2xsZWN0aW9ucy4gIFdlIHVzZSANCiMgaW5jbHVk ZXMgdG8gc3Vic3RpdHV0ZSB0aGUgYXBwcm9wcmlhdGUgdGV4dC4NCiMNCiMgWW91IGNhbiBtb2Rp ZnkgdGhlIG1lc3NhZ2VzJyBhcHBlYXJhbmNlIHdpdGhvdXQgY2hhbmdpbmcgYW55IG9mIHRoZQ0K IyBkZWZhdWx0IEhUVFBfPGVycm9yPi5odG1sLnZhciBmaWxlcyBieSBhZGRpbmcgdGhlIGxpbmU6 DQojDQojICAgQWxpYXMgL2Vycm9yL2luY2x1ZGUvICIveW91ci9pbmNsdWRlL3BhdGgvIg0KIw0K IyB3aGljaCBhbGxvd3MgeW91IHRvIGNyZWF0ZSB5b3VyIG93biBzZXQgb2YgZmlsZXMgYnkgc3Rh cnRpbmcgd2l0aCB0aGUNCiMgQGV4cF9lcnJvcmRpckAvaW5jbHVkZS8gZmlsZXMgYW5kIGNvcHlp bmcgdGhlbSB0byAveW91ci9pbmNsdWRlL3BhdGgvLCANCiMgZXZlbiBvbiBhIHBlci1WaXJ0dWFs SG9zdCBiYXNpcy4gIFRoZSBkZWZhdWx0IGluY2x1ZGUgZmlsZXMgd2lsbCBkaXNwbGF5DQojIHlv dXIgQXBhY2hlIHZlcnNpb24gbnVtYmVyIGFuZCB5b3VyIFNlcnZlckFkbWluIGVtYWlsIGFkZHJl c3MgcmVnYXJkbGVzcw0KIyBvZiB0aGUgc2V0dGluZyBvZiBTZXJ2ZXJTaWduYXR1cmUuDQojDQoj IFRoZSBpbnRlcm5hdGlvbmFsaXplZCBlcnJvciBkb2N1bWVudHMgcmVxdWlyZSBtb2RfYWxpYXMs IG1vZF9pbmNsdWRlDQojIGFuZCBtb2RfbmVnb3RpYXRpb24uICBUbyBhY3RpdmF0ZSB0aGVtLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyAzMCBsaW5lcy4NCg0KIyAgICBBbGlhcyAvZXJyb3IvICJA ZXhwX2Vycm9yZGlyQC8iDQojDQojICAgIDxEaXJlY3RvcnkgIkBleHBfZXJyb3JkaXJAIj4NCiMg ICAgICAgIEFsbG93T3ZlcnJpZGUgTm9uZQ0KIyAgICAgICAgT3B0aW9ucyBJbmNsdWRlc05vRXhl Yw0KIyAgICAgICAgQWRkT3V0cHV0RmlsdGVyIEluY2x1ZGVzIGh0bWwNCiMgICAgICAgIEFkZEhh bmRsZXIgdHlwZS1tYXAgdmFyDQojICAgICAgICBPcmRlciBhbGxvdyxkZW55DQojICAgICAgICBB bGxvdyBmcm9tIGFsbA0KIyAgICAgICAgTGFuZ3VhZ2VQcmlvcml0eSBlbiBkZSBlcyBmciBpdCBu bCBzdg0KIyAgICAgICAgRm9yY2VMYW5ndWFnZVByaW9yaXR5IFByZWZlciBGYWxsYmFjaw0KIyAg ICA8L0RpcmVjdG9yeT4NCiMNCiMgICAgRXJyb3JEb2N1bWVudCA0MDAgL2Vycm9yL0hUVFBfQkFE X1JFUVVFU1QuaHRtbC52YXINCiMgICAgRXJyb3JEb2N1bWVudCA0MDEgL2Vycm9yL0hUVFBfVU5B VVRIT1JJWkVELmh0bWwudmFyDQojICAgIEVycm9yRG9jdW1lbnQgNDAzIC9lcnJvci9IVFRQX0ZP UkJJRERFTi5odG1sLnZhcg0KIyAgICBFcnJvckRvY3VtZW50IDQwNCAvZXJyb3IvSFRUUF9OT1Rf Rk9VTkQuaHRtbC52YXINCiMgICAgRXJyb3JEb2N1bWVudCA0MDUgL2Vycm9yL0hUVFBfTUVUSE9E X05PVF9BTExPV0VELmh0bWwudmFyDQojICAgIEVycm9yRG9jdW1lbnQgNDA4IC9lcnJvci9IVFRQ X1JFUVVFU1RfVElNRV9PVVQuaHRtbC52YXINCiMgICAgRXJyb3JEb2N1bWVudCA0MTAgL2Vycm9y L0hUVFBfR09ORS5odG1sLnZhcg0KIyAgICBFcnJvckRvY3VtZW50IDQxMSAvZXJyb3IvSFRUUF9M RU5HVEhfUkVRVUlSRUQuaHRtbC52YXINCiMgICAgRXJyb3JEb2N1bWVudCA0MTIgL2Vycm9yL0hU VFBfUFJFQ09ORElUSU9OX0ZBSUxFRC5odG1sLnZhcg0KIyAgICBFcnJvckRvY3VtZW50IDQxMyAv ZXJyb3IvSFRUUF9SRVFVRVNUX0VOVElUWV9UT09fTEFSR0UuaHRtbC52YXINCiMgICAgRXJyb3JE b2N1bWVudCA0MTQgL2Vycm9yL0hUVFBfUkVRVUVTVF9VUklfVE9PX0xBUkdFLmh0bWwudmFyDQoj ICAgIEVycm9yRG9jdW1lbnQgNDE1IC9lcnJvci9IVFRQX1NFUlZJQ0VfVU5BVkFJTEFCTEUuaHRt bC52YXINCiMgICAgRXJyb3JEb2N1bWVudCA1MDAgL2Vycm9yL0hUVFBfSU5URVJOQUxfU0VSVkVS X0VSUk9SLmh0bWwudmFyDQojICAgIEVycm9yRG9jdW1lbnQgNTAxIC9lcnJvci9IVFRQX05PVF9J TVBMRU1FTlRFRC5odG1sLnZhcg0KIyAgICBFcnJvckRvY3VtZW50IDUwMiAvZXJyb3IvSFRUUF9C QURfR0FURVdBWS5odG1sLnZhcg0KIyAgICBFcnJvckRvY3VtZW50IDUwMyAvZXJyb3IvSFRUUF9T RVJWSUNFX1VOQVZBSUxBQkxFLmh0bWwudmFyDQojICAgIEVycm9yRG9jdW1lbnQgNTA2IC9lcnJv ci9IVFRQX1ZBUklBTlRfQUxTT19WQVJJRVMuaHRtbC52YXINCg0KDQoNCiMNCiMgVGhlIGZvbGxv d2luZyBkaXJlY3RpdmVzIG1vZGlmeSBub3JtYWwgSFRUUCByZXNwb25zZSBiZWhhdmlvciB0bw0K IyBoYW5kbGUga25vd24gcHJvYmxlbXMgd2l0aCBicm93c2VyIGltcGxlbWVudGF0aW9ucy4NCiMN CkJyb3dzZXJNYXRjaCAiTW96aWxsYS8yIiBub2tlZXBhbGl2ZQ0KQnJvd3Nlck1hdGNoICJNU0lF IDRcLjBiMjsiIG5va2VlcGFsaXZlIGRvd25ncmFkZS0xLjAgZm9yY2UtcmVzcG9uc2UtMS4wDQpC cm93c2VyTWF0Y2ggIlJlYWxQbGF5ZXIgNFwuMCIgZm9yY2UtcmVzcG9uc2UtMS4wDQpCcm93c2Vy TWF0Y2ggIkphdmEvMVwuMCIgZm9yY2UtcmVzcG9uc2UtMS4wDQpCcm93c2VyTWF0Y2ggIkpESy8x XC4wIiBmb3JjZS1yZXNwb25zZS0xLjANCg0KIw0KIyBUaGUgZm9sbG93aW5nIGRpcmVjdGl2ZSBk aXNhYmxlcyByZWRpcmVjdHMgb24gbm9uLUdFVCByZXF1ZXN0cyBmb3INCiMgYSBkaXJlY3Rvcnkg dGhhdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB0cmFpbGluZyBzbGFzaC4gIFRoaXMgZml4ZXMgYSAN CiMgcHJvYmxlbSB3aXRoIE1pY3Jvc29mdCBXZWJGb2xkZXJzIHdoaWNoIGRvZXMgbm90IGFwcHJv cHJpYXRlbHkgaGFuZGxlIA0KIyByZWRpcmVjdHMgZm9yIGZvbGRlcnMgd2l0aCBEQVYgbWV0aG9k cy4NCiMgU2FtZSBkZWFsIHdpdGggQXBwbGUncyBEQVYgZmlsZXN5c3RlbSBhbmQgR25vbWUgVkZT IHN1cHBvcnQgZm9yIERBVi4NCiMNCkJyb3dzZXJNYXRjaCAiTWljcm9zb2Z0IERhdGEgQWNjZXNz IEludGVybmV0IFB1Ymxpc2hpbmcgUHJvdmlkZXIiIHJlZGlyZWN0LWNhcmVmdWxseQ0KQnJvd3Nl ck1hdGNoICJeV2ViRHJpdmUiIHJlZGlyZWN0LWNhcmVmdWxseQ0KQnJvd3Nlck1hdGNoICJeV2Vi REFWRlMvMS5bMDEyXSIgcmVkaXJlY3QtY2FyZWZ1bGx5DQpCcm93c2VyTWF0Y2ggIl5nbm9tZS12 ZnMiIHJlZGlyZWN0LWNhcmVmdWxseQ0KDQojDQojIEFsbG93IHNlcnZlciBzdGF0dXMgcmVwb3J0 cyBnZW5lcmF0ZWQgYnkgbW9kX3N0YXR1cywNCiMgd2l0aCB0aGUgVVJMIG9mIGh0dHA6Ly9zZXJ2 ZXJuYW1lL3NlcnZlci1zdGF0dXMNCiMgQ2hhbmdlIHRoZSAiLmFkLnNwcmludC5jb20iIHRvIG1h dGNoIHlvdXIgZG9tYWluIHRvIGVuYWJsZS4NCiMNCiM8TG9jYXRpb24gL3NlcnZlci1zdGF0dXM+ DQojICAgIFNldEhhbmRsZXIgc2VydmVyLXN0YXR1cw0KIyAgICBPcmRlciBkZW55LGFsbG93DQoj ICAgIERlbnkgZnJvbSBhbGwNCiMgICAgQWxsb3cgZnJvbSAuYWQuc3ByaW50LmNvbQ0KIzwvTG9j YXRpb24+DQoNCiMNCiMgQWxsb3cgcmVtb3RlIHNlcnZlciBjb25maWd1cmF0aW9uIHJlcG9ydHMs IHdpdGggdGhlIFVSTCBvZg0KIyAgaHR0cDovL3NlcnZlcm5hbWUvc2VydmVyLWluZm8gKHJlcXVp cmVzIHRoYXQgbW9kX2luZm8uYyBiZSBsb2FkZWQpLg0KIyBDaGFuZ2UgdGhlICIuYWQuc3ByaW50 LmNvbSIgdG8gbWF0Y2ggeW91ciBkb21haW4gdG8gZW5hYmxlLg0KIw0KIzxMb2NhdGlvbiAvc2Vy dmVyLWluZm8+DQojICAgIFNldEhhbmRsZXIgc2VydmVyLWluZm8NCiMgICAgT3JkZXIgZGVueSxh bGxvdw0KIyAgICBEZW55IGZyb20gYWxsDQojICAgIEFsbG93IGZyb20gLmFkLnNwcmludC5jb20N CiM8L0xvY2F0aW9uPg0KDQojDQojIFByb3h5IFNlcnZlciBkaXJlY3RpdmVzLiBVbmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lcyB0bw0KIyBlbmFibGUgdGhlIHByb3h5IHNlcnZlcjoNCiMNCiM8 SWZNb2R1bGUgbW9kX3Byb3h5LmM+DQojUHJveHlSZXF1ZXN0cyBPbg0KIw0KIzxQcm94eSAqPg0K IyAgICBPcmRlciBkZW55LGFsbG93DQojICAgIERlbnkgZnJvbSBhbGwNCiMgICAgQWxsb3cgZnJv bSAuZXhhbXBsZS5jb20NCiM8L1Byb3h5Pg0KDQojDQojIEVuYWJsZS9kaXNhYmxlIHRoZSBoYW5k bGluZyBvZiBIVFRQLzEuMSAiVmlhOiIgaGVhZGVycy4NCiMgKCJGdWxsIiBhZGRzIHRoZSBzZXJ2 ZXIgdmVyc2lvbjsgIkJsb2NrIiByZW1vdmVzIGFsbCBvdXRnb2luZyBWaWE6IGhlYWRlcnMpDQoj IFNldCB0byBvbmUgb2Y6IE9mZiB8IE9uIHwgRnVsbCB8IEJsb2NrDQojDQojUHJveHlWaWEgT24N Cg0KIw0KIyBUbyBlbmFibGUgdGhlIGNhY2hlIGFzIHdlbGwsIGVkaXQgYW5kIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmVzOg0KIyAobm8gY2FjaGVpbmcgd2l0aG91dCBDYWNoZVJvb3QpDQoj DQojQ2FjaGVSb290ICJDOi9Qcm9ncmFtIEZpbGVzL0FwYWNoZSBHcm91cC9BcGFjaGUyL3Byb3h5 Ig0KI0NhY2hlU2l6ZSA1DQojQ2FjaGVHY0ludGVydmFsIDQNCiNDYWNoZU1heEV4cGlyZSAyNA0K I0NhY2hlTGFzdE1vZGlmaWVkRmFjdG9yIDAuMQ0KI0NhY2hlRGVmYXVsdEV4cGlyZSAxDQojTm9D YWNoZSBhLWRvbWFpbi5jb20gYW5vdGhlci1kb21haW4uZWR1IGpvZXMuZ2FyYWdlLXNhbGUuY29t DQoNCiM8L0lmTW9kdWxlPg0KIyBFbmQgb2YgcHJveHkgZGlyZWN0aXZlcy4NCg0KIw0KIyBCcmlu ZyBpbiBhZGRpdGlvbmFsIG1vZHVsZS1zcGVjaWZpYyBjb25maWd1cmF0aW9ucw0KIw0KPElmTW9k dWxlIG1vZF9zc2wuYz4NCiAgICBJbmNsdWRlIGNvbmYvc3NsLmNvbmYNCjwvSWZNb2R1bGU+DQoN Cg0KIyMjIFNlY3Rpb24gMzogVmlydHVhbCBIb3N0cw0KIw0KIyBWaXJ0dWFsSG9zdDogSWYgeW91 IHdhbnQgdG8gbWFpbnRhaW4gbXVsdGlwbGUgZG9tYWlucy9ob3N0bmFtZXMgb24geW91cg0KIyBt YWNoaW5lIHlvdSBjYW4gc2V0dXAgVmlydHVhbEhvc3QgY29udGFpbmVycyBmb3IgdGhlbS4gTW9z dCBjb25maWd1cmF0aW9ucw0KIyB1c2Ugb25seSBuYW1lLWJhc2VkIHZpcnR1YWwgaG9zdHMgc28g dGhlIHNlcnZlciBkb2Vzbid0IG5lZWQgdG8gd29ycnkgYWJvdXQNCiMgSVAgYWRkcmVzc2VzLiBU aGlzIGlzIGluZGljYXRlZCBieSB0aGUgYXN0ZXJpc2tzIGluIHRoZSBkaXJlY3RpdmVzIGJlbG93 Lg0KIw0KIyBQbGVhc2Ugc2VlIHRoZSBkb2N1bWVudGF0aW9uIGF0IA0KIyA8VVJMOmh0dHA6Ly9o dHRwZC5hcGFjaGUub3JnL2RvY3MtMi4wL3Zob3N0cy8+DQojIGZvciBmdXJ0aGVyIGRldGFpbHMg YmVmb3JlIHlvdSB0cnkgdG8gc2V0dXAgdmlydHVhbCBob3N0cy4NCiMNCiMgWW91IG1heSB1c2Ug dGhlIGNvbW1hbmQgbGluZSBvcHRpb24gJy1TJyB0byB2ZXJpZnkgeW91ciB2aXJ0dWFsIGhvc3QN CiMgY29uZmlndXJhdGlvbi4NCg0KIw0KIyBVc2UgbmFtZS1iYXNlZCB2aXJ0dWFsIGhvc3Rpbmcu DQojDQojTmFtZVZpcnR1YWxIb3N0ICoNCg0KIw0KIyBWaXJ0dWFsSG9zdCBleGFtcGxlOg0KIyBB bG1vc3QgYW55IEFwYWNoZSBkaXJlY3RpdmUgbWF5IGdvIGludG8gYSBWaXJ0dWFsSG9zdCBjb250 YWluZXIuDQojIFRoZSBmaXJzdCBWaXJ0dWFsSG9zdCBzZWN0aW9uIGlzIHVzZWQgZm9yIHJlcXVl c3RzIHdpdGhvdXQgYSBrbm93bg0KIyBzZXJ2ZXIgbmFtZS4NCiMNCiM8VmlydHVhbEhvc3QgKj4N CiMgICAgU2VydmVyQWRtaW4gd2VibWFzdGVyQGR1bW15LWhvc3QuZXhhbXBsZS5jb20NCiMgICAg RG9jdW1lbnRSb290IC93d3cvZG9jcy9kdW1teS1ob3N0LmV4YW1wbGUuY29tDQojICAgIFNlcnZl ck5hbWUgZHVtbXktaG9zdC5leGFtcGxlLmNvbQ0KIyAgICBFcnJvckxvZyBsb2dzL2R1bW15LWhv c3QuZXhhbXBsZS5jb20tZXJyb3JfbG9nDQojICAgIEN1c3RvbUxvZyBsb2dzL2R1bW15LWhvc3Qu ZXhhbXBsZS5jb20tYWNjZXNzX2xvZyBjb21tb24NCiM8L1ZpcnR1YWxIb3N0Pg0KIy0tLS1CRUdJ TiBWSVJBR0UgQURERUQgQ09OTkVDVE9SIENPTkZJR1VSQVRJT04tLS0tDQojIExvYWQgbW9kX2pr MiBtb2R1bGUNCkxvYWRNb2R1bGUgamsyX21vZHVsZSBtb2R1bGVzXG1vZF9qazItMi4wLjQzLmRs bA0KIy0tLS1FTkQgVklSQUdFIEFEREVEIENPTk5FQ1RPUiBDT05GSUdVUkFUSU9OLS0tLQ0KIy0t LS1CRUdJTiBWSVJBR0UgQURERUQgQUxJQVMgQ09ORklHVVJBVElPTi0tLS0NCiMgQWxpYXMgZW50 cmllcyBmb3IgVmlyYWdlIFZTIFdlYmNhc3RpbmcNCiMNCkFsaWFzIC92cy8gICAidjpcVmlyYWdl XFZTXHZzc2RvY3MvIg0KQWxpYXMgL3Zzc2V4dC1kb2NzLyAidjpcVmlyYWdlXFZTXGV4dGVuXHZz c2V4dC1kb2NzLyINCg0KPERpcmVjdG9yeSAidjovVmlyYWdlL1ZTL3Zzc2RvY3MiPg0KCUFkZERl ZmF1bHRDaGFyc2V0IHV0Zi04DQojCU9wdGlvbnMgaW5kZXhlcw0KPC9EaXJlY3Rvcnk+DQo8RGly ZWN0b3J5ICJ2Oi9WaXJhZ2UvVlMvZXh0ZW4vdnNzZXh0LWRvY3MiPg0KCUFkZERlZmF1bHRDaGFy c2V0IHV0Zi04DQojCU9wdGlvbnMgaW5kZXhlcw0KPC9EaXJlY3Rvcnk+DQojLS0tLUVORCBWSVJB R0UgQURERUQgQUxJQVMgQ09ORklHVVJBVElPTi0tLS0NCg== ------=_Part_75_15500685.1090848352378 Content-Type: application/octet-stream; name="workers2.properties" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="workers2.properties" Iw0KIyAgVmlyYWdlIGdlbmVyYXRlZCB3b3JrZXJzMi5wcm9wZXJ0aWVzDQojICBjb3B5cmlnaHQg KGMpIDIwMDMgVmlyYWdlLCBJbmMuICBBbGwgcmlnaHRzIFJlc2VydmVkLg0KIw0KDQojIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBHZW5lcmFsIG9w dGlvbnMNCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQoNClt3b3JrZXJFbnZdDQp0aW1pbmc9MQ0KDQpbbG9nZ2VyXQ0KZmlsZT1DOlxQcm9ncmFtIEZp bGVzXEFwYWNoZSBHcm91cFxBcGFjaGUyXFxsb2dzXGprMi5sb2cNCmxldmVsPUVSUk9SDQoNCltj b25maWddDQpmaWxlPUM6XFByb2dyYW0gRmlsZXNcQXBhY2hlIEdyb3VwXEFwYWNoZTJcXGNvbmZc d29ya2VyczIucHJvcGVydGllcw0KZGVidWc9MA0KZGVidWdFbnY9MA0KDQpbc2htXQ0KaW5mbz1T Y29yZWJvYXJkLiBTaGFyZWQgTWVtb3J5IFNldHRpbmdzDQpmaWxlPUM6XFByb2dyYW0gRmlsZXNc QXBhY2hlIEdyb3VwXEFwYWNoZTJcXGxvZ3NcamsyLnNobQ0Kc2l6ZT0xMDQ4NTc2DQoNCiMgdGhl IHN0YXR1cyB3b3JrZXINCltzdGF0dXM6c3RhdHVzXQ0KDQojIHN0YXR1cyB1cmkNClt1cmk6L3N0 YXR1cy8qXQ0Kd29ya2VyPXN0YXR1czpzdGF0dXMNCg0KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgRGVmaW5lIGFsbCBvZiB0aGUgY2hhbm5lbHMg Zm9yIHVzZSB3aXRoIHRoZSANCiMgV2ViY2FzdGluZyBlbnZpcm9ubWVudA0KIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIw0KIyBUaGlzIGlzIGEg bm9ybWFsIHNvY2tldCBjaGFubmVsIHVzZWQgdG8gY29tbXVuaWNhdGUgdG8gYSByZW1vdGUgbWFj aGluZS4gDQojIEFkZCBhZGRpdGlvbmFsIGNoYW5uZWxzIHRvIHNwZWNpZmljIG1hY2hpbmVzIHRv IGluaXRpYXRlIGxvYWQgYmFsYW5jaW5nLg0KIw0KI1ByaW1hcnkgVlMgV2VjYXN0aW5nIFNlcnZl cg0KW2NoYW5uZWwuc29ja2V0OnB2bXgwMDM1LmFkLnNwcmludC5jb206ODAwOV0NCnBvcnQ9ODAw OQ0KaG9zdD1wdm14MDAzNS5hZC5zcHJpbnQuY29tDQp0b21jYXRpZD1wdm14MDAzNS5hZC5zcHJp bnQuY29tOjgwMDkNCg0KI1NlY29uZGFyeSBWUyBXZWJjYXN0aW5nIHNlcnZlcg0KW2NoYW5uZWwu c29ja2V0OnR2bXgwMTM0LmFkLnNwcmludC5jb206ODAwOV0NCnBvcnQ9ODAwOQ0KaG9zdD10dm14 MDEzNC5hZC5zcHJpbnQuY29tDQp0b21jYXRpZD10dm14MDEzNC5hZC5zcHJpbnQuY29tOjgwMDkN Cg0KW2NoYW5uZWwuc29ja2V0OnR2bXgwMTM3LmFkLnNwcmludC5jb206ODAwOV0NCnBvcnQ9ODAw OQ0KaG9zdD10dm14MDEzNy5hZC5zcHJpbnQuY29tDQp0b21jYXRpZD10dm14MDEzNy5hZC5zcHJp bnQuY29tOjgwMDkNCg0KI1NlY29uZGFyeSBWUyBXZWJjYXN0aW5nIHNlcnZlcg0KW2NoYW5uZWwu c29ja2V0OnB2bXgwMDQzLmFkLnNwcmludC5jb206ODAwOV0NCnBvcnQ9ODAwOQ0KaG9zdD1wdm14 MDA0My5hZC5zcHJpbnQuY29tDQp0b21jYXRpZD1wdm14MDA0My5hZC5zcHJpbnQuY29tOjgwMDkN Cg0KI1NlY29uZGFyeSBWUyBXZWJjYXN0aW5nIFNlcnZlcg0KW2NoYW5uZWwuc29ja2V0OnB2bXgw MDM3LmFkLnNwcmludC5jb206ODAwOV0NCnBvcnQ9ODAwOQ0KaG9zdD1wdm14MDAzNy5hZC5zcHJp bnQuY29tDQp0b21jYXRpZD1wdm14MDAzNy5hZC5zcHJpbnQuY29tOjgwMDkNCg0KIw0KIyBUbyBh ZGQgYWRkaXRpb25hbCBXZWJjYXN0aW5nIEFwcGxpY2F0aW9uIFNlcnZlcnMgdGhhdCBhcmUgbG9h ZCBiYWxhbmNlZA0KIyB1c2luZyB0aGlzIFdlYnNlcnZlciwgYWRkIGFuIGFkZGl0aW9uYWwgQ2hh bm5lbCB1c2luZyB0aGUgZm9ybWF0IGRlZmluZWQNCiMgYmVsb3cuICBUaGVuIGRlZmluZSBhIFdv cmtlciBmb3IgdGhpcyBuZXcgY2hhbm5lbCwgYW5kIHRoZW4gZmluYWxseSBhZGQNCiMgdGhlIHdv cmtlciB0byB0aGUgbGlzdCBvZiBzZXJ2ZXJzIGluIHRoZSBMb2FkIEJhbGFuY2VyIGRlZmluZWQg aW4gdGhlIA0KIyBMb2FkIEJhbGFuY2VyIHNlY3Rpb24gYmVsb3cuDQojDQoNCiMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIERlZmluZSBhbGwgb2Yg dGhlIHdvcmtlcnMgd2Ugd2lsbCB1c2UgZm9yIFZpcmFnZQ0KIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIyBkZWZpbmUgdGhlIHdvcmtlcg0KW2Fq cDEzOnB2bXgwMDM1LmFkLnNwcmludC5jb206ODAwOV0NCmNoYW5uZWw9Y2hhbm5lbC5zb2NrZXQ6 cHZteDAwMzUuYWQuc3ByaW50LmNvbTo4MDA5DQpsYl9mYWN0b3I9MjANCg0KW2FqcDEzOnR2bXgw MTM0LmFkLnNwcmludC5jb206ODAwOV0NCmNoYW5uZWw9Y2hhbm5lbC5zb2NrZXQ6dHZteDAxMzQu YWQuc3ByaW50LmNvbTo4MDA5DQpsYl9mYWN0b3I9MjANCg0KW2FqcDEzOnR2bXgwMTM3LmFkLnNw cmludC5jb206ODAwOV0NCmNoYW5uZWw9Y2hhbm5lbC5zb2NrZXQ6dHZteDAxMzcuYWQuc3ByaW50 LmNvbTo4MDA5DQpsYl9mYWN0b3I9MjANCg0KW2FqcDEzOnB2bXgwMDQzLmFkLnNwcmludC5jb206 ODAwOV0NCmNoYW5uZWw9Y2hhbm5lbC5zb2NrZXQ6cHZteDAwNDMuYWQuc3ByaW50LmNvbTo4MDA5 DQpsYl9mYWN0b3I9MjANCg0KW2FqcDEzOnB2bXgwMDM3LmFkLnNwcmludC5jb206ODAwOV0NCmNo YW5uZWw9Y2hhbm5lbC5zb2NrZXQ6cHZteDAwMzcuYWQuc3ByaW50LmNvbTo4MDA5DQpsYl9mYWN0 b3I9MjANCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQojIExvYWQgQmFsYW5jZXIgDQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KIyBEZWZpbmUgdGhlIGxpc3Qgb2YgZGVmaW5lIFdvcmtlcnMgdG8gbG9h ZCBiYWxhbmNlDQojIGFnYWluc3QuDQojIEFkZCBhZGRpdGlvbmFsICd3b3JrZXI9JyBsaW5lcyB0 byBhZGQgYWRkaXRpb25hbA0KIyBsb2FkIGJhbGFuY2VkIFdlYmNhc3RpbmcgQXBwbGljYXRpb24g U2VydmVyIG5vZGVzDQojIHRvIHRoaXMgd2Vic2VydmVyLg0KDQpbbGI6cm91dGVyXQ0Kd29ya2Vy PWFqcDEzOnB2bXgwMDM1LmFkLnNwcmludC5jb206ODAwOQ0Kd29ya2VyPWFqcDEzOnR2bXgwMTM0 LmFkLnNwcmludC5jb206ODAwOQ0Kd29ya2VyPWFqcDEzOnR2bXgwMTM3LmFkLnNwcmludC5jb206 ODAwOQ0Kd29ya2VyPWFqcDEzOnB2bXgwMDQzLmFkLnNwcmludC5jb206ODAwOQ0Kd29ya2VyPWFq cDEzOnB2bXgwMDM3LmFkLnNwcmludC5jb206ODAwOQ0KdGltZW91dD0xMDANCmF0dGVtcHRzPTMN CnJlY292ZXJ5PTYwDQpzdGlja3lTZXNzaW9uPTANCg0KDQojIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBVUkkgbWFwcGluZ3MNCiMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNClt1cmk6L3Z3Yi8qXQ0K Z3JvdXA9bGI6cm91dGVyDQpjb250ZXh0PS92d2IvKg0KDQpbdXJpOi92c2NhZmUvKl0NCmdyb3Vw PWxiOnJvdXRlcg0KY29udGV4dD0vdnNjYWZlLyoNCg0KIw0KIyBoaXN0b3JpY2FsIHNhbXBsZSBV Ukkncy4uLiB3aWxsIGJlIHJlbW92ZWQuDQojDQoNClt1cmk6L2V4YW1wbGVzLypdDQpncm91cD1s Yjpyb3V0ZXINCg0KW3VyaTovc2VydmxldC8qXQ0KZ3JvdXA9bGI6cm91dGVyDQoNCg== ------=_Part_75_15500685.1090848352378 Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org " from the digest: users-digest-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org ------=_Part_75_15500685.1090848352378--