Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mhcSV-000230-1M for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Nov 2021 18:55:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mhcST-0006eF-W8 for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Nov 2021 18:55:02 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mhcST-0006dv-Gm for pgsql-hackers@lists.postgresql.org; Mon, 01 Nov 2021 18:55:01 +0000 Received: from smtp-fw-80007.amazon.com ([99.78.197.218]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mhcSO-0005Gx-TZ for pgsql-hackers@postgresql.org; Mon, 01 Nov 2021 18:55:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1635792897; x=1667328897; h=from:to:subject:date:message-id:mime-version; bh=Pmg2EfkmsFpXVPRsODkYgezHYw2UKi3vMAc4Je1WUWY=; b=bmq9wQtXxVMy1G356dN2AgoIcBmjPPd5XsR5pkgw3QDRKVF9cafBIqPz JIKfpQz3Ku+CR9mPQjThrMycpiUxUQDhANaQr0mLfuUe/JEK9Xek/T7Wd PdGOX0/ZcYkruOmctXBYKepk39mFTk+D4S1w5D2Uxo7Jcn1+F6GsovlSB I=; X-Amazon-filename: v7-0001-Introduce-archive-module-infrastructure.patch X-IronPort-AV: E=Sophos;i="5.87,200,1631577600"; d="scan'208,223";a="38335376" Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO email-inbound-relay-iad-1a-4ba5c7da.us-east-1.amazon.com) ([10.25.36.210]) by smtp-border-fw-80007.pdx80.corp.amazon.com with ESMTP; 01 Nov 2021 18:54:54 +0000 Received: from EX13MTAUWB001.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-iad-1a-4ba5c7da.us-east-1.amazon.com (Postfix) with ESMTPS id 741E0A327F for ; Mon, 1 Nov 2021 18:54:53 +0000 (UTC) Received: from EX13D03UWC004.ant.amazon.com (10.43.162.49) by EX13MTAUWB001.ant.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1497.24; Mon, 1 Nov 2021 18:54:52 +0000 Received: from EX13D03UWC004.ant.amazon.com (10.43.162.49) by EX13D03UWC004.ant.amazon.com (10.43.162.49) with Microsoft SMTP Server (TLS) id 15.0.1497.24; Mon, 1 Nov 2021 18:54:52 +0000 Received: from EX13D03UWC004.ant.amazon.com ([10.43.162.49]) by EX13D03UWC004.ant.amazon.com ([10.43.162.49]) with mapi id 15.00.1497.024; Mon, 1 Nov 2021 18:54:52 +0000 From: "Bossart, Nathan" To: "pgsql-hackers@postgresql.org" Subject: archive modules Thread-Topic: archive modules Thread-Index: AQHXz1HzPJxatURjxEGLB4Y+tFhbog== Date: Mon, 1 Nov 2021 18:54:51 +0000 Message-ID: <668D2428-F73B-475E-87AE-F89D67942270@amazon.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.161.187] Content-Type: multipart/mixed; boundary="_002_668D2428F73B475E87AEF89D67942270amazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_668D2428F73B475E87AEF89D67942270amazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <2861CA8190934245BE32F84783CA0051@amazon.com> Content-Transfer-Encoding: base64 VGhpcyB0aHJlYWQgaXMgYSBjb250aW51YXRpb24gb2YgdGhlIHRocmVhZCB3aXRoIHRoZSBzdWJq ZWN0DQoicGFyYWxsZWxpemluZyB0aGUgYXJjaGl2ZXIiIFswXS4gIFRoYXQgdGhyZWFkIGhhZCBt b3JwaGVkIGludG8gYW4NCmVmZm9ydCB0byBhbGxvdyBjcmVhdGluZyBhcmNoaXZlIG1vZHVsZXMs IHNvIEkndmUgY3JlYXRlZCBhIG5ldyBvbmUgdG8NCmVuc3VyZSB0aGF0IHRoaXMgdG9waWMgaGFz IHRoZSBwcm9wZXIgdmlzaWJpbGl0eS4NCg0KSSd2ZSBhdHRhY2hlZCB0aGUgbGF0ZXN0IHBhdGNo IGZyb20gdGhlIHByZXZpb3VzIHRocmVhZC4gIFRoaXMgcGF0Y2gNCmRvZXMgYSBmZXcgdGhpbmdz LiAgRmlyc3QsIGl0IGFkZHMgdGhlIGFyY2hpdmVfbGlicmFyeSBHVUMgdGhhdA0Kc3BlY2lmaWVz IGEgbGlicmFyeSB0byB1c2UgaW4gcGxhY2Ugb2YgYXJjaGl2ZV9jb21tYW5kLiAgSWYNCmFyY2hp dmVfbGlicmFyeSBpcyBzZXQgdG8gInNoZWxsIiAodGhlIGRlZmF1bHQpLCBhcmNoaXZlX2NvbW1h bmQgaXMNCnN0aWxsIHVzZWQuICBUaGUgYXJjaGl2ZV9saWJyYXJ5IGlzIHByZWxvYWRlZCwgc28g aXRzIF9QR19pbml0KCkgY2FuDQpkbyBhbnl0aGluZyB0aGF0IGxpYnJhcmllcyBsb2FkZWQgdmlh IHNoYXJlZF9wcmVsb2FkX2xpYnJhcmllcyBjYW4gZG8uDQpMaWtlIGxvZ2ljYWwgZGVjb2Rpbmcg b3V0cHV0IHBsdWdpbnMsIGFyY2hpdmUgbW9kdWxlcyBtdXN0IGRlZmluZSBhbg0KaW5pdGlhbGl6 YXRpb24gZnVuY3Rpb24gYW5kIHNvbWUgY2FsbGJhY2tzLiAgVGhlIHBhdGNoIGFsc28gaW50cm9k dWNlcw0KdGhlIGJhc2ljX2FyY2hpdmUgbW9kdWxlIHRvIGVuc3VyZSB0ZXN0IGNvdmVyYWdlIG9u IHRoZSBuZXcNCmluZnJhc3RydWN0dXJlLg0KDQpOYXRoYW4NCg0KWzBdIGh0dHBzOi8vd3d3LnBv c3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC9CQzRENkJCMi02OTc2LTQzOTctQTQxNy1BNkEz MEVFREM2M0UlNDBhbWF6b24uY29tDQoNCg== --_002_668D2428F73B475E87AEF89D67942270amazoncom_ Content-Type: application/octet-stream; name="v7-0001-Introduce-archive-module-infrastructure.patch" Content-Description: v7-0001-Introduce-archive-module-infrastructure.patch Content-Disposition: attachment; filename="v7-0001-Introduce-archive-module-infrastructure.patch"; size=57438; creation-date="Mon, 01 Nov 2021 18:54:51 GMT"; modification-date="Mon, 01 Nov 2021 18:54:51 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSA3MmU2MDZjYTdhYjNiNDExZGUyOTcxNjAwYjNlZDBhNjRlMjY0NGVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gQm9zc2FydCA8Ym9zc2FydG5AYW1hem9uLmNvbT4K RGF0ZTogV2VkLCAyNyBPY3QgMjAyMSAwMzoyMjowNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MS8xXSBJbnRyb2R1Y2UgYXJjaGl2ZSBtb2R1bGUgaW5mcmFzdHJ1Y3R1cmUuCgpUaGlzIGZlYXR1 cmUgYWxsb3dzIGN1c3RvbSBhcmNoaXZlIGxpYnJhcmllcyB0byBiZSB1c2VkIGluIHBsYWNlIG9m CmFyY2hpdmVfY29tbWFuZC4gIEEgbmV3IEdVQyBjYWxsZWQgYXJjaGl2ZV9saWJyYXJ5IHNwZWNp ZmllcyB0aGUKYXJjaGl2ZSBtb2R1bGUgdGhhdCBzaG91bGQgYmUgdXNlZC4gIFRoZSBsaWJyYXJ5 IGlzIHByZWxvYWRlZCwgc28KaXRzIF9QR19pbml0KCkgY2FuIGRvIGFueXRoaW5nIHRoYXQgbGli cmFyaWVzIGxvYWRlZCB2aWEKc2hhcmVkX3ByZWxvYWRfbGlicmFyaWVzIGNhbiBkby4gIExpa2Ug bG9naWNhbCBkZWNvZGluZyBvdXRwdXQKcGx1Z2lucywgYXJjaGl2ZSBtb2R1bGVzIG11c3QgZGVm aW5lIGFuIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGFuZApzb21lIGNhbGxiYWNrcy4gIElmIGFy Y2hpdmVfbGlicmFyeSBpcyBzZXQgdG8gInNoZWxsIiAod2hpY2ggaXMgdGhlCmRlZmF1bHQgZm9y IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpLCBhcmNoaXZlX2NvbW1hbmQgaXMgdXNlZC4KLS0tCiBk b2Mvc3JjL3NnbWwvYXJjaGl2ZS1tb2R1bGVzLnNnbWwgICAgICAgICAgICAgICAgICB8IDEzMyAr KysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9iYWNrdXAuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDgzICsrKysrLS0tLQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMzcgKysrLQogZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNn bWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL2hpZ2gtYXZh aWxhYmlsaXR5LnNnbWwgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRvYy9zcmMvc2dtbC9wb3N0 Z3Jlcy5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9y ZWYvcGdfYmFzZWJhY2t1cC5zZ21sICAgICAgICAgICAgICAgIHwgICA0ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL3BnX3JlY2VpdmV3YWwuc2dtbCAgICAgICAgICAgICAgICB8ICAgNiArLQogZG9jL3Ny Yy9zZ21sL3dhbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICAgICAgIHwgICAyICst CiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3BnYXJjaC5jICAgICAgICAgICAgICAgICAgICB8 IDE4MiArKysrKysrLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFz dGVyLmMgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zaGVs bF9hcmNoaXZlLmMgICAgICAgICAgICAgfCAxNTYgKysrKysrKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYyAgICAgICAgICAgICAgICAgIHwgIDI3ICsrKwogc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKy0K IHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSAgICAgIHwgICAx ICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxIC0KIHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICsKIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcGdhcmNoLmggICAgICAgICAgICAgICAg ICAgIHwgIDQ1ICsrKysrCiBzcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9tb2R1bGVzL2Jhc2ljX2FyY2hpdmUvLmdpdGln bm9yZSAgICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9tb2R1bGVzL2Jhc2ljX2FyY2hpdmUvTWFr ZWZpbGUgICAgICAgICAgICB8ICAyMCArKysKIHNyYy90ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2 ZS9iYXNpY19hcmNoaXZlLmMgICAgIHwgMTg5ICsrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rl c3QvbW9kdWxlcy9iYXNpY19hcmNoaXZlL2Jhc2ljX2FyY2hpdmUuY29uZiAgfCAgIDMgKwogLi4u L2Jhc2ljX2FyY2hpdmUvZXhwZWN0ZWQvYmFzaWNfYXJjaGl2ZS5vdXQgICAgICAgfCAgMjkgKysr KwogLi4uL21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9zcWwvYmFzaWNfYXJjaGl2ZS5zcWwgICAgfCAg MjIgKysrCiAyNyBmaWxlcyBjaGFuZ2VkLCA4MDIgaW5zZXJ0aW9ucygrKSwgMTczIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9hcmNoaXZlLW1vZHVsZXMuc2dt bAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc2hlbGxfYXJjaGl2 ZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9iYXNpY19hcmNoaXZlLy5n aXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL2Jhc2ljX2FyY2hp dmUvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL2Jhc2ljX2Fy Y2hpdmUvYmFzaWNfYXJjaGl2ZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxl cy9iYXNpY19hcmNoaXZlL2Jhc2ljX2FyY2hpdmUuY29uZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9leHBlY3RlZC9iYXNpY19hcmNoaXZlLm91dAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9zcWwvYmFz aWNfYXJjaGl2ZS5zcWwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvYXJjaGl2ZS1tb2R1bGVz LnNnbWwgYi9kb2Mvc3JjL3NnbWwvYXJjaGl2ZS1tb2R1bGVzLnNnbWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDY5YjQ2MjU3OAotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9hcmNoaXZlLW1vZHVsZXMuc2dtbApAQCAtMCwwICsxLDEzMyBAQAorPCEtLSBk b2Mvc3JjL3NnbWwvYXJjaGl2ZS1tb2R1bGVzLnNnbWwgLS0+CisKKzxjaGFwdGVyIGlkPSJhcmNo aXZlLW1vZHVsZXMiPgorIDx0aXRsZT5BcmNoaXZlIE1vZHVsZXM8L3RpdGxlPgorIDxpbmRleHRl cm0gem9uZT0iYXJjaGl2ZS1tb2R1bGVzIj4KKyAgPHByaW1hcnk+QXJjaGl2ZSBNb2R1bGVzPC9w cmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHBhcmE+CisgIFBvc3RncmVTUUwgcHJvdmlkZXMg aW5mcmFzdHJ1Y3R1cmUgdG8gY3JlYXRlIGN1c3RvbSBtb2R1bGVzIGZvciBjb250aW51b3VzCisg IGFyY2hpdmluZyAoc2VlIDx4cmVmIGxpbmtlbmQ9ImNvbnRpbnVvdXMtYXJjaGl2aW5nIi8+KS4g IFdoaWxlIGFyY2hpdmluZyB2aWEKKyAgYSBzaGVsbCBjb21tYW5kIChpLmUuLCA8eHJlZiBsaW5r ZW5kPSJndWMtYXJjaGl2ZS1jb21tYW5kIi8+KSBpcyBtdWNoCisgIHNpbXBsZXIsIGEgY3VzdG9t IGFyY2hpdmUgbW9kdWxlIHdpbGwgb2Z0ZW4gYmUgY29uc2lkZXJhYmx5IG1vcmUgcm9idXN0IGFu ZAorICBwZXJmb3JtYW50LgorIDwvcGFyYT4KKworIDxwYXJhPgorICBXaGVuIGEgY3VzdG9tIDx4 cmVmIGxpbmtlbmQ9Imd1Yy1hcmNoaXZlLWxpYnJhcnkiLz4gaXMgY29uZmlndXJlZCwgUG9zdGdy ZVNRTAorICB3aWxsIHN1Ym1pdCBjb21wbGV0ZWQgV0FMIGZpbGVzIHRvIHRoZSBtb2R1bGUsIGFu ZCB0aGUgc2VydmVyIHdpbGwgYXZvaWQKKyAgcmVjeWxpbmcgb3IgcmVtb3ZpbmcgdGhlc2UgV0FM IGZpbGVzIHVudGlsIHRoZSBtb2R1bGUgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGVzCisgIHdlcmUg c3VjY2Vzc2Z1bGx5IGFyY2hpdmVkLiAgSXQgaXMgdWx0aW1hdGVseSB1cCB0byB0aGUgbW9kdWxl IHRvIGRlY2lkZSB3aGF0CisgIHRvIGRvIHdpdGggZWFjaCBXQUwgZmlsZSwgYnV0IG1hbnkgcmVj b21tZW5kYXRpb25zIGFyZSBsaXN0ZWQgYXQKKyAgPHhyZWYgbGlua2VuZD0iYmFja3VwLWFyY2hp dmluZy13YWwiLz4uCisgPC9wYXJhPgorCisgPHBhcmE+CisgIEFyY2hpdmluZyBtb2R1bGVzIG11 c3QgYXQgbGVhc3QgY29uc2lzdCBvZiBhbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiAoc2VlCisg IDx4cmVmIGxpbmtlbmQ9ImFyY2hpdmUtbW9kdWxlLWluaXQiLz4pIGFuZCB0aGUgcmVxdWlyZWQg Y2FsbGJhY2tzIChzZWUKKyAgPHhyZWYgbGlua2VuZD0iYXJjaGl2ZS1tb2R1bGUtY2FsbGJhY2tz Ii8+KS4gIEhvd2V2ZXIsIGFyY2hpdmUgbW9kdWxlcyBhcmUKKyAgYWxzbyBwZXJtaXR0ZWQgdG8g ZG8gbXVjaCBtb3JlIChlLmcuLCBkZWNsYXJlIEdVQ3MsIHJlZ2lzdGVyIGJhY2tncm91bmQKKyAg d29ya2VycywgYW5kIGltcGxlbWVudCBTUUwgZnVuY3Rpb25zKS4KKyA8L3BhcmE+CisKKyA8cGFy YT4KKyAgVGhlIDxmaWxlbmFtZT5zcmMvdGVzdC9tb2R1bGVzL2Jhc2ljX2FyY2hpdmU8L2ZpbGVu YW1lPiBtb2R1bGUgY29udGFpbnMgYQorICB3b3JraW5nIGV4YW1wbGUsIHdoaWNoIGRlbW9uc3Ry YXRlcyBzb21lIHVzZWZ1bCB0ZWNobmlxdWVzLgorIDwvcGFyYT4KKworIDx3YXJuaW5nPgorICA8 cGFyYT4KKyAgIFRoZXJlIGFyZSBjb25zaWRlcmFibGUgcm9idXN0bmVzcyBhbmQgc2VjdXJpdHkg cmlza3MgaW4gdXNpbmcgYXJjaGl2ZSBtb2R1bGVzCisgICBiZWNhdXNlLCBiZWluZyB3cml0dGVu IGluIHRoZSA8bGl0ZXJhbD5DPC9saXRlcmFsPiBsYW5ndWFnZSwgdGhleSBoYXZlIGFjY2Vzcwor ICAgdG8gbWFueSBvZiB0aGUgc2VydmVyIHJlc291cmNlcy4gIEFkbWluaXN0cmF0b3JzIHdpc2hp bmcgdG8gZW5hYmxlIGFyY2hpdmUKKyAgIG1vZHVsZXMgc2hvdWxkIGV4ZXJjaXNlIGV4dHJlbWUg Y2F1dGlvbi4gIE9ubHkgY2FyZWZ1bGx5IGF1ZGl0ZWQgbW9kdWxlcworICAgc2hvdWxkIGJlIGxv YWRlZC4KKyAgPC9wYXJhPgorIDwvd2FybmluZz4KKworIDxzZWN0MSBpZD0iYXJjaGl2ZS1tb2R1 bGUtaW5pdCI+CisgIDx0aXRsZT5Jbml0aWFsaXphdGlvbiBGdW5jdGlvbnM8L3RpdGxlPgorICA8 aW5kZXh0ZXJtIHpvbmU9ImFyY2hpdmUtbW9kdWxlLWluaXQiPgorICAgPHByaW1hcnk+X1BHX2Fy Y2hpdmVfbW9kdWxlX2luaXQ8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorICA8cGFyYT4KKyAg IEFuIGFyY2hpdmUgbGlicmFyeSBpcyBsb2FkZWQgYnkgZHluYW1pY2FsbHkgbG9hZGluZyBhIHNo YXJlZCBsaWJyYXJ5IHdpdGggdGhlCisgICA8eHJlZiBsaW5rZW5kPSJndWMtYXJjaGl2ZS1saWJy YXJ5Ii8+J3MgbmFtZSBhcyB0aGUgbGlicmFyeSBiYXNlIG5hbWUuICBUaGUKKyAgIG5vcm1hbCBs aWJyYXJ5IHNlYXJjaCBwYXRoIGlzIHVzZWQgdG8gbG9jYXRlIHRoZSBsaWJyYXJ5LiAgVG8gcHJv dmlkZSB0aGUKKyAgIHJlcXVpcmVkIGFyY2hpdmUgbW9kdWxlIGNhbGxiYWNrcyBhbmQgdG8gaW5k aWNhdGUgdGhhdCB0aGUgbGlicmFyeSBpcworICAgYWN0dWFsbHkgYW4gYXJjaGl2ZSBtb2R1bGUs IGl0IG5lZWRzIHRvIHByb3ZpZGUgYSBmdW5jdGlvbiBuYW1lZAorICAgPGZ1bmN0aW9uPlBHX2Fy Y2hpdmVfbW9kdWxlX2luaXQ8L2Z1bmN0aW9uPi4gIFRoaXMgZnVuY3Rpb24gaXMgcGFzc2VkIGEK KyAgIHN0cnVjdCB0aGF0IG5lZWRzIHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBjYWxsYmFjayBmdW5j dGlvbiBwb2ludGVycyBmb3IKKyAgIGluZGl2aWR1YWwgYWN0aW9ucy4KKworPHByb2dyYW1saXN0 aW5nPgordHlwZWRlZiBzdHJ1Y3QgQXJjaGl2ZU1vZHVsZUNhbGxiYWNrcworeworICAgIEFyY2hp dmVDaGVja0NvbmZpZ3VyZWRDQiBjaGVja19jb25maWd1cmVkX2NiOworICAgIEFyY2hpdmVGaWxl Q0IgYXJjaGl2ZV9maWxlX2NiOworfSBBcmNoaXZlTW9kdWxlQ2FsbGJhY2tzOwordHlwZWRlZiB2 b2lkICgqQXJjaGl2ZU1vZHVsZUluaXQpIChzdHJ1Y3QgQXJjaGl2ZU1vZHVsZUNhbGxiYWNrcyAq Y2IpOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgQm90aCBjYWxsYmFja3MgYXJlIHJlcXVpcmVk LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBBcmNoaXZlIGxpYnJhcmllcyBhcmUgcHJlbG9h ZGVkIGluIGEgc2ltaWxhciBmYXNoaW9uIGFzCisgICA8eHJlZiBsaW5rZW5kPSJndWMtc2hhcmVk LXByZWxvYWQtbGlicmFyaWVzIi8+LiAgVGhpcyBtZWFucyB0aGF0IGl0IGlzCisgICBwb3NzaWJs ZSB0byBkbyB0aGluZ3MgaW4gdGhlIG1vZHVsZSdzIDxmdW5jdGlvbj5fUEdfaW5pdDwvZnVuY3Rp b24+IGZ1bmN0aW9uCisgICB0aGF0IGNhbiBvbmx5IGJlIGRvbmUgYXQgc2VydmVyIHN0YXJ0LiAg VGhlCisgICA8dmFybmFtZT5wcm9jZXNzX2FyY2hpdmVfbGlicmFyeV9pbl9wcm9ncmVzczwvdmFy bmFtZT4gd2lsbCBiZSBzZXQgdG8KKyAgIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IHdoZW4gdGhl IGFyY2hpdmUgbGlicmFyeSBpcyBiZWluZyBwcmVsb2FkZWQgZHVyaW5nCisgICBzZXJ2ZXIgc3Rh cnR1cC4KKyAgPC9wYXJhPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImFyY2hpdmUtbW9kdWxl LWNhbGxiYWNrcyI+CisgIDx0aXRsZT5BcmNoaXZlIE1vZHVsZSBDYWxsYmFja3M8L3RpdGxlPgor ICA8cGFyYT4KKyAgIFRoZSBhcmNoaXZlIGNhbGxiYWNrcyBkZWZpbmUgdGhlIGFjdHVhbCBhcmNo aXZpbmcgYmVoYXZpb3Igb2YgdGhlIG1vZHVsZS4KKyAgIFRoZSBzZXJ2ZXIgd2lsbCBjYWxsIHRo ZW0gYXMgcmVxdWlyZWQgdG8gcHJvY2VzcyBlYWNoIGluZGl2aWR1YWwgV0FMIGZpbGUuCisgIDwv cGFyYT4KKworICA8c2VjdDIgaWQ9ImFyY2hpdmUtbW9kdWxlLWNoZWNrIj4KKyAgIDx0aXRsZT5D aGVjayBDYWxsYmFjazwvdGl0bGU+CisgICA8cGFyYT4KKyAgICBUaGUgPGZ1bmN0aW9uPmNoZWNr X2NvbmZpZ3VyZWRfY2I8L2Z1bmN0aW9uPiBjYWxsYmFjayBpcyBjYWxsZWQgdG8gZGV0ZXJtaW5l CisgICAgd2hldGhlciB0aGUgbW9kdWxlIGlzIGZ1bGx5IGNvbmZpZ3VyZWQgYW5kIHJlYWR5IHRv IGFjY2VwdCBXQUwgZmlsZXMuCisKKzxwcm9ncmFtbGlzdGluZz4KK3R5cGVkZWYgYm9vbCAoKkFy Y2hpdmVDaGVja0NvbmZpZ3VyZWRDQikgKHZvaWQpOworPC9wcm9ncmFtbGlzdGluZz4KKworICAg IElmIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IGlzIHJldHVybmVkLCB0aGUgc2VydmVyIHdpbGwg cHJvY2VlZCB3aXRoCisgICAgYXJjaGl2aW5nIHRoZSBmaWxlIGJ5IGNhbGxpbmcgdGhlIDxmdW5j dGlvbj5hcmNoaXZlX2ZpbGVfY2I8L2Z1bmN0aW9uPgorICAgIGNhbGxiYWNrLiAgSWYgPGxpdGVy YWw+ZmFsc2U8L2xpdGVyYWw+IGlzIHJldHVybmVkLCBhcmNoaXZpbmcgd2lsbCBub3QKKyAgICBw cm9jZWVkLiAgSW4gdGhlIGxhdHRlciBjYXNlLCB0aGUgc2VydmVyIHdpbGwgcGVyaW9kaWNhbGx5 IGNhbGwgdGhpcworICAgIGZ1bmN0aW9uLCBhbmQgYXJjaGl2aW5nIHdpbGwgcHJvY2VlZCBpZiBp dCBldmVudHVhbGx5IHJldHVybnMKKyAgICA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPi4KKyAgIDwv cGFyYT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDIgaWQ9ImFyY2hpdmUtbW9kdWxlLWFyY2hpdmUi PgorICAgPHRpdGxlPkFyY2hpdmUgQ2FsbGJhY2s8L3RpdGxlPgorICAgPHBhcmE+CisgICAgVGhl IDxmdW5jdGlvbj5hcmNoaXZlX2ZpbGVfY2I8L2Z1bmN0aW9uPiBjYWxsYmFjayBpcyBjYWxsZWQg dG8gYXJjaGl2ZSBhCisgICAgc2luZ2xlIFdBTCBmaWxlLgorCis8cHJvZ3JhbWxpc3Rpbmc+Cit0 eXBlZGVmIGJvb2wgKCpBcmNoaXZlRmlsZUNCKSAoY29uc3QgY2hhciAqZmlsZSwgY29uc3QgY2hh ciAqcGF0aCk7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgSWYgPGxpdGVyYWw+dHJ1ZTwvbGl0 ZXJhbD4gaXMgcmV0dXJuZWQsIHRoZSBzZXJ2ZXIgcHJvY2VlZHMgYXMgaWYgdGhlIGZpbGUKKyAg ICB3YXMgc3VjY2Vzc2Z1bGx5IGFyY2hpdmVkLCB3aGljaCBtYXkgaW5jbHVkZSByZWN5Y2xpbmcg b3IgcmVtb3ZpbmcgdGhlCisgICAgb3JpZ2luYWwgV0FMIGZpbGUuICBJZiA8bGl0ZXJhbD5mYWxz ZTwvbGl0ZXJhbD4gaXMgcmV0dXJuZWQsIHRoZSBzZXJ2ZXIgd2lsbAorICAgIGtlZXAgdGhlIG9y aWdpbmFsIFdBTCBmaWxlIGFuZCByZXRyeSBhcmNoaXZpbmcgbGF0ZXIuCisgICAgPGxpdGVyYWw+ ZmlsZTwvbGl0ZXJhbD4gd2lsbCBjb250YWluIGp1c3QgdGhlIGZpbGUgbmFtZSBvZiB0aGUgV0FM IGZpbGUgdG8KKyAgICBhcmNoaXZlLCB3aGlsZSA8bGl0ZXJhbD5wYXRoPC9saXRlcmFsPiBjb250 YWlucyB0aGUgZnVsbCBwYXRoIG9mIHRoZSBXQUwKKyAgICBmaWxlIChpbmNsdWRpbmcgdGhlIGZp bGUgbmFtZSkuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisgPC9zZWN0MT4KKzwvY2hhcHRlcj4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9iYWNrdXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9iYWNr dXAuc2dtbAppbmRleCBjYmEzMmI2ZWIzLi5iNDJmMWIzY2E3IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvYmFja3VwLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2JhY2t1cC5zZ21sCkBAIC01OTMs MjAgKzU5MywyMyBAQCB0YXIgLWNmIGJhY2t1cC50YXIgL3Vzci9sb2NhbC9wZ3NxbC9kYXRhCiAg ICAgcHJvdmlkZSB0aGUgZGF0YWJhc2UgYWRtaW5pc3RyYXRvciB3aXRoIGZsZXhpYmlsaXR5LAog ICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gdHJpZXMgbm90IHRvIG1h a2UgYW55IGFzc3VtcHRpb25zIGFib3V0IGhvdwogICAgIHRoZSBhcmNoaXZpbmcgd2lsbCBiZSBk b25lLiAgSW5zdGVhZCwgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBsZXRz Ci0gICAgdGhlIGFkbWluaXN0cmF0b3Igc3BlY2lmeSBhIHNoZWxsIGNvbW1hbmQgdG8gYmUgZXhl Y3V0ZWQgdG8gY29weSBhCi0gICAgY29tcGxldGVkIHNlZ21lbnQgZmlsZSB0byB3aGVyZXZlciBp dCBuZWVkcyB0byBnby4gIFRoZSBjb21tYW5kIGNvdWxkIGJlCi0gICAgYXMgc2ltcGxlIGFzIGEg PGxpdGVyYWw+Y3A8L2xpdGVyYWw+LCBvciBpdCBjb3VsZCBpbnZva2UgYSBjb21wbGV4IHNoZWxs Ci0gICAgc2NyaXB0ICZtZGFzaDsgaXQncyBhbGwgdXAgdG8geW91LgorICAgIHRoZSBhZG1pbmlz dHJhdG9yIHNwZWNpZnkgYW4gYXJjaGl2ZSBsaWJyYXJ5IHRvIGJlIGV4ZWN1dGVkIHRvIGNvcHkg YQorICAgIGNvbXBsZXRlZCBzZWdtZW50IGZpbGUgdG8gd2hlcmV2ZXIgaXQgbmVlZHMgdG8gZ28u ICBUaGlzIGNvdWxkIGJlIGFzIHNpbXBsZQorICAgIGFzIGEgc2hlbGwgY29tbWFuZCB0aGF0IHVz ZXMgPGxpdGVyYWw+Y3A8L2xpdGVyYWw+LCBvciBpdCBjb3VsZCBpbnZva2UgYQorICAgIGNvbXBs ZXggQyBmdW5jdGlvbiAmbWRhc2g7IGl0J3MgYWxsIHVwIHRvIHlvdS4KICAgIDwvcGFyYT4KIAog ICAgPHBhcmE+CiAgICAgVG8gZW5hYmxlIFdBTCBhcmNoaXZpbmcsIHNldCB0aGUgPHhyZWYgbGlu a2VuZD0iZ3VjLXdhbC1sZXZlbCIvPgogICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHRvIDxs aXRlcmFsPnJlcGxpY2E8L2xpdGVyYWw+IG9yIGhpZ2hlciwKICAgICA8eHJlZiBsaW5rZW5kPSJn dWMtYXJjaGl2ZS1tb2RlIi8+IHRvIDxsaXRlcmFsPm9uPC9saXRlcmFsPiwKLSAgICBhbmQgc3Bl Y2lmeSB0aGUgc2hlbGwgY29tbWFuZCB0byB1c2UgaW4gdGhlIDx4cmVmCi0gICAgbGlua2VuZD0i Z3VjLWFyY2hpdmUtY29tbWFuZCIvPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlci4gIEluIHByYWN0 aWNlCisgICAgYW5kIHNwZWNpZnkgdGhlIGxpYnJhcnkgdG8gdXNlIGluIHRoZSA8eHJlZgorICAg IGxpbmtlbmQ9Imd1Yy1hcmNoaXZlLWxpYnJhcnkiLz4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIu ICBJbiBwcmFjdGljZQogICAgIHRoZXNlIHNldHRpbmdzIHdpbGwgYWx3YXlzIGJlIHBsYWNlZCBp biB0aGUKICAgICA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4gZmlsZS4KKyAg ICBPbmUgc2ltcGxlIHdheSB0byBhcmNoaXZlIGlzIHRvIHNldCA8dmFybmFtZT5hcmNoaXZlX2xp YnJhcnk8L3Zhcm5hbWU+IHRvCisgICAgPGxpdGVyYWw+c2hlbGw8L2xpdGVyYWw+IGFuZCB0byBz cGVjaWZ5IGEgc2hlbGwgY29tbWFuZCBpbgorICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1hcmNoaXZl LWNvbW1hbmQiLz4uCiAgICAgSW4gPHZhcm5hbWU+YXJjaGl2ZV9jb21tYW5kPC92YXJuYW1lPiwK ICAgICA8bGl0ZXJhbD4lcDwvbGl0ZXJhbD4gaXMgcmVwbGFjZWQgYnkgdGhlIHBhdGggbmFtZSBv ZiB0aGUgZmlsZSB0bwogICAgIGFyY2hpdmUsIHdoaWxlIDxsaXRlcmFsPiVmPC9saXRlcmFsPiBp cyByZXBsYWNlZCBieSBvbmx5IHRoZSBmaWxlIG5hbWUuCkBAIC02MzEsNyArNjM0LDE3IEBAIHRl c3QgISAtZiAvbW50L3NlcnZlci9hcmNoaXZlZGlyLzAwMDAwMDAxMDAwMDAwQTkwMDAwMDA2NSAm YW1wOyZhbXA7IGNwIHBnX3dhbC8wCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgotICAgIFRoZSBh cmNoaXZlIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZCB1bmRlciB0aGUgb3duZXJzaGlwIG9mIHRo ZSBzYW1lCisgICAgQW5vdGhlciB3YXkgdG8gYXJjaGl2ZSBpcyB0byB1c2UgYSBjdXN0b20gYXJj aGl2ZSBtb2R1bGUgYXMgdGhlCisgICAgPHZhcm5hbWU+YXJjaGl2ZV9saWJyYXJ5PC92YXJuYW1l Pi4gIFNpbmNlIHN1Y2ggbW9kdWxlcyBhcmUgd3JpdHRlbiBpbgorICAgIDxsaXRlcmFsPkM8L2xp dGVyYWw+LCBjcmVhdGluZyB5b3VyIG93biBtYXkgcmVxdWlyZSBjb25zaWRlcmFibHkgbW9yZSBl ZmZvcnQKKyAgICB0aGFuIHdyaXRpbmcgYSBzaGVsbCBjb21tYW5kLiAgSG93ZXZlciwgYXJjaGl2 ZSBtb2R1bGVzIGNhbiBiZSBtb3JlCisgICAgcGVyZm9ybWFudCB0aGFuIGFyY2hpdmluZyB2aWEg c2hlbGwsIGFuZCB0aGV5IHdpbGwgaGF2ZSBhY2Nlc3MgdG8gbWFueQorICAgIHVzZWZ1bCBzZXJ2 ZXIgcmVzb3VyY2VzLiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYXJjaGl2ZSBtb2R1bGVz LCBzZWUKKyAgICA8eHJlZiBsaW5rZW5kPSJhcmNoaXZlLW1vZHVsZXMiLz4uCisgICA8L3BhcmE+ CisKKyAgIDxwYXJhPgorICAgIFRoZSBhcmNoaXZlIGxpYnJhcnkgd2lsbCBiZSBleGVjdXRlZCB1 bmRlciB0aGUgb3duZXJzaGlwIG9mIHRoZSBzYW1lCiAgICAgdXNlciB0aGF0IHRoZSA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHNlcnZlciBpcyBydW5uaW5nIGFzLiAgU2lu Y2UKICAgICB0aGUgc2VyaWVzIG9mIFdBTCBmaWxlcyBiZWluZyBhcmNoaXZlZCBjb250YWlucyBl ZmZlY3RpdmVseSBldmVyeXRoaW5nCiAgICAgaW4geW91ciBkYXRhYmFzZSwgeW91IHdpbGwgd2Fu dCB0byBiZSBzdXJlIHRoYXQgdGhlIGFyY2hpdmVkIGRhdGEgaXMKQEAgLTY0MCwyNSArNjUzLDMx IEBAIHRlc3QgISAtZiAvbW50L3NlcnZlci9hcmNoaXZlZGlyLzAwMDAwMDAxMDAwMDAwQTkwMDAw MDA2NSAmYW1wOyZhbXA7IGNwIHBnX3dhbC8wCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgotICAg IEl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBhcmNoaXZlIGNvbW1hbmQgcmV0dXJuIHplcm8gZXhp dCBzdGF0dXMgaWYgYW5kCi0gICAgb25seSBpZiBpdCBzdWNjZWVkcy4gIFVwb24gZ2V0dGluZyBh IHplcm8gcmVzdWx0LAorICAgIEl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBhcmNoaXZlIGZ1bmN0 aW9uIHJldHVybiA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiBpZgorICAgIGFuZCBvbmx5IGlmIGl0 IHN1Y2NlZWRzLiAgSWYgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gaXMgcmV0dXJuZWQsCiAgICAg PHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiB3aWxsIGFzc3VtZSB0aGF0IHRo ZSBmaWxlIGhhcyBiZWVuCi0gICAgc3VjY2Vzc2Z1bGx5IGFyY2hpdmVkLCBhbmQgd2lsbCByZW1v dmUgb3IgcmVjeWNsZSBpdC4gIEhvd2V2ZXIsIGEgbm9uemVybwotICAgIHN0YXR1cyB0ZWxscyA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHRoYXQgdGhlIGZpbGUgd2FzIG5v dCBhcmNoaXZlZDsKLSAgICBpdCB3aWxsIHRyeSBhZ2FpbiBwZXJpb2RpY2FsbHkgdW50aWwgaXQg c3VjY2VlZHMuCisgICAgc3VjY2Vzc2Z1bGx5IGFyY2hpdmVkLCBhbmQgd2lsbCByZW1vdmUgb3Ig cmVjeWNsZSBpdC4gIEhvd2V2ZXIsIGEgcmV0dXJuCisgICAgdmFsdWUgb2YgPGxpdGVyYWw+ZmFs c2U8L2xpdGVyYWw+IHRlbGxzCisgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3Ru YW1lPiB0aGF0IHRoZSBmaWxlIHdhcyBub3QgYXJjaGl2ZWQ7IGl0CisgICAgd2lsbCB0cnkgYWdh aW4gcGVyaW9kaWNhbGx5IHVudGlsIGl0IHN1Y2NlZWRzLiAgSWYgeW91IGFyZSBhcmNoaXZpbmcg dmlhIGEKKyAgICBzaGVsbCBjb21tYW5kLCB0aGUgYXBwcm9wcmlhdGUgcmV0dXJuIHZhbHVlcyBj YW4gYmUgYWNoaWV2ZWQgYnkgcmV0dXJuaW5nCisgICAgPGxpdGVyYWw+MDwvbGl0ZXJhbD4gaWYg dGhlIGNvbW1hbmQgc3VjY2VlZHMgYW5kIGEgbm9uemVybyB2YWx1ZSBpZiBpdAorICAgIGZhaWxz LgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBXaGVuIHRoZSBhcmNoaXZlIGNvbW1hbmQg aXMgdGVybWluYXRlZCBieSBhIHNpZ25hbCAob3RoZXIgdGhhbgotICAgIDxzeXN0ZW1pdGVtPlNJ R1RFUk08L3N5c3RlbWl0ZW0+IHRoYXQgaXMgdXNlZCBhcyBwYXJ0IG9mIGEgc2VydmVyCi0gICAg c2h1dGRvd24pIG9yIGFuIGVycm9yIGJ5IHRoZSBzaGVsbCB3aXRoIGFuIGV4aXQgc3RhdHVzIGdy ZWF0ZXIgdGhhbgotICAgIDEyNSAoc3VjaCBhcyBjb21tYW5kIG5vdCBmb3VuZCksIHRoZSBhcmNo aXZlciBwcm9jZXNzIGFib3J0cyBhbmQgZ2V0cwotICAgIHJlc3RhcnRlZCBieSB0aGUgcG9zdG1h c3Rlci4gSW4gc3VjaCBjYXNlcywgdGhlIGZhaWx1cmUgaXMKLSAgICBub3QgcmVwb3J0ZWQgaW4g PHhyZWYgbGlua2VuZD0icGctc3RhdC1hcmNoaXZlci12aWV3Ii8+LgorICAgIElmIHRoZSBhcmNo aXZlIGZ1bmN0aW9uIGVtaXRzIGFuIDxsaXRlcmFsPkVSUk9SPC9saXRlcmFsPiBvcgorICAgIDxs aXRlcmFsPkZBVEFMPC9saXRlcmFsPiwgdGhlIGFyY2hpdmVyIHByb2Nlc3MgYWJvcnRzIGFuZCBn ZXRzIHJlc3RhcnRlZCBieQorICAgIHRoZSBwb3N0bWFzdGVyLiAgSWYgeW91IGFyZSBhcmNoaXZp bmcgdmlhIHNoZWxsIGNvbW1hbmQsIEZBVEFMIGlzIGVtaXR0ZWQgaWYKKyAgICB0aGUgY29tbWFu ZCBpcyB0ZXJtaW5hdGVkIGJ5IGEgc2lnbmFsIChvdGhlciB0aGFuCisgICAgPHN5c3RlbWl0ZW0+ U0lHVEVSTTwvc3lzdGVtaXRlbT4gdGhhdCBpcyB1c2VkIGFzIHBhcnQgb2YgYSBzZXJ2ZXIgc2h1 dGRvd24pCisgICAgb3IgYW4gZXJyb3IgYnkgdGhlIHNoZWxsIHdpdGggYW4gZXhpdCBzdGF0dXMg Z3JlYXRlciB0aGFuIDEyNSAoc3VjaCBhcworICAgIGNvbW1hbmQgbm90IGZvdW5kKS4gIEluIHN1 Y2ggY2FzZXMsIHRoZSBmYWlsdXJlIGlzIG5vdCByZXBvcnRlZCBpbgorICAgIDx4cmVmIGxpbmtl bmQ9InBnLXN0YXQtYXJjaGl2ZXItdmlldyIvPi4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0g ICAgVGhlIGFyY2hpdmUgY29tbWFuZCBzaG91bGQgZ2VuZXJhbGx5IGJlIGRlc2lnbmVkIHRvIHJl ZnVzZSB0byBvdmVyd3JpdGUKKyAgICBUaGUgYXJjaGl2ZSBsaWJyYXJ5IHNob3VsZCBnZW5lcmFs bHkgYmUgZGVzaWduZWQgdG8gcmVmdXNlIHRvIG92ZXJ3cml0ZQogICAgIGFueSBwcmUtZXhpc3Rp bmcgYXJjaGl2ZSBmaWxlLiAgVGhpcyBpcyBhbiBpbXBvcnRhbnQgc2FmZXR5IGZlYXR1cmUgdG8K ICAgICBwcmVzZXJ2ZSB0aGUgaW50ZWdyaXR5IG9mIHlvdXIgYXJjaGl2ZSBpbiBjYXNlIG9mIGFk bWluaXN0cmF0b3IgZXJyb3IKICAgICAoc3VjaCBhcyBzZW5kaW5nIHRoZSBvdXRwdXQgb2YgdHdv IGRpZmZlcmVudCBzZXJ2ZXJzIHRvIHRoZSBzYW1lIGFyY2hpdmUKQEAgLTY2Niw5ICs2ODUsOSBA QCB0ZXN0ICEgLWYgL21udC9zZXJ2ZXIvYXJjaGl2ZWRpci8wMDAwMDAwMTAwMDAwMEE5MDAwMDAw NjUgJmFtcDsmYW1wOyBjcCBwZ193YWwvMAogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBJ dCBpcyBhZHZpc2FibGUgdG8gdGVzdCB5b3VyIHByb3Bvc2VkIGFyY2hpdmUgY29tbWFuZCB0byBl bnN1cmUgdGhhdCBpdAorICAgIEl0IGlzIGFkdmlzYWJsZSB0byB0ZXN0IHlvdXIgcHJvcG9zZWQg YXJjaGl2ZSBsaWJyYXJ5IHRvIGVuc3VyZSB0aGF0IGl0CiAgICAgaW5kZWVkIGRvZXMgbm90IG92 ZXJ3cml0ZSBhbiBleGlzdGluZyBmaWxlLCA8ZW1waGFzaXM+YW5kIHRoYXQgaXQgcmV0dXJucwot ICAgIG5vbnplcm8gc3RhdHVzIGluIHRoaXMgY2FzZTwvZW1waGFzaXM+LgorICAgIDxsaXRlcmFs PmZhbHNlPC9saXRlcmFsPiBpbiB0aGlzIGNhc2U8L2VtcGhhc2lzPi4KICAgICBUaGUgZXhhbXBs ZSBjb21tYW5kIGFib3ZlIGZvciBVbml4IGVuc3VyZXMgdGhpcyBieSBpbmNsdWRpbmcgYSBzZXBh cmF0ZQogICAgIDxjb21tYW5kPnRlc3Q8L2NvbW1hbmQ+IHN0ZXAuICBPbiBzb21lIFVuaXggcGxh dGZvcm1zLCA8Y29tbWFuZD5jcDwvY29tbWFuZD4gaGFzCiAgICAgc3dpdGNoZXMgc3VjaCBhcyA8 b3B0aW9uPi1pPC9vcHRpb24+IHRoYXQgY2FuIGJlIHVzZWQgdG8gZG8gdGhlIHNhbWUgdGhpbmcK QEAgLTY4MCw3ICs2OTksNyBAQCB0ZXN0ICEgLWYgL21udC9zZXJ2ZXIvYXJjaGl2ZWRpci8wMDAw MDAwMTAwMDAwMEE5MDAwMDAwNjUgJmFtcDsmYW1wOyBjcCBwZ193YWwvMAogCiAgICA8cGFyYT4K ICAgICBXaGlsZSBkZXNpZ25pbmcgeW91ciBhcmNoaXZpbmcgc2V0dXAsIGNvbnNpZGVyIHdoYXQg d2lsbCBoYXBwZW4gaWYKLSAgICB0aGUgYXJjaGl2ZSBjb21tYW5kIGZhaWxzIHJlcGVhdGVkbHkg YmVjYXVzZSBzb21lIGFzcGVjdCByZXF1aXJlcworICAgIHRoZSBhcmNoaXZlIGxpYnJhcnkgZmFp bHMgcmVwZWF0ZWRseSBiZWNhdXNlIHNvbWUgYXNwZWN0IHJlcXVpcmVzCiAgICAgb3BlcmF0b3Ig aW50ZXJ2ZW50aW9uIG9yIHRoZSBhcmNoaXZlIHJ1bnMgb3V0IG9mIHNwYWNlLiBGb3IgZXhhbXBs ZSwgdGhpcwogICAgIGNvdWxkIG9jY3VyIGlmIHlvdSB3cml0ZSB0byB0YXBlIHdpdGhvdXQgYW4g YXV0b2NoYW5nZXI7IHdoZW4gdGhlIHRhcGUKICAgICBmaWxscywgbm90aGluZyBmdXJ0aGVyIGNh biBiZSBhcmNoaXZlZCB1bnRpbCB0aGUgdGFwZSBpcyBzd2FwcGVkLgpAQCAtNjk1LDcgKzcxNCw3 IEBAIHRlc3QgISAtZiAvbW50L3NlcnZlci9hcmNoaXZlZGlyLzAwMDAwMDAxMDAwMDAwQTkwMDAw MDA2NSAmYW1wOyZhbXA7IGNwIHBnX3dhbC8wCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgotICAg IFRoZSBzcGVlZCBvZiB0aGUgYXJjaGl2aW5nIGNvbW1hbmQgaXMgdW5pbXBvcnRhbnQgYXMgbG9u ZyBhcyBpdCBjYW4ga2VlcCB1cAorICAgIFRoZSBzcGVlZCBvZiB0aGUgYXJjaGl2ZSBsaWJyYXJ5 IGlzIHVuaW1wb3J0YW50IGFzIGxvbmcgYXMgaXQgY2FuIGtlZXAgdXAKICAgICB3aXRoIHRoZSBh dmVyYWdlIHJhdGUgYXQgd2hpY2ggeW91ciBzZXJ2ZXIgZ2VuZXJhdGVzIFdBTCBkYXRhLiAgTm9y bWFsCiAgICAgb3BlcmF0aW9uIGNvbnRpbnVlcyBldmVuIGlmIHRoZSBhcmNoaXZpbmcgcHJvY2Vz cyBmYWxscyBhIGxpdHRsZSBiZWhpbmQuCiAgICAgSWYgYXJjaGl2aW5nIGZhbGxzIHNpZ25pZmlj YW50bHkgYmVoaW5kLCB0aGlzIHdpbGwgaW5jcmVhc2UgdGhlIGFtb3VudCBvZgpAQCAtNzA3LDEx ICs3MjYsMTEgQEAgdGVzdCAhIC1mIC9tbnQvc2VydmVyL2FyY2hpdmVkaXIvMDAwMDAwMDEwMDAw MDBBOTAwMDAwMDY1ICZhbXA7JmFtcDsgY3AgcGdfd2FsLzAKICAgIDwvcGFyYT4KIAogICAgPHBh cmE+Ci0gICAgSW4gd3JpdGluZyB5b3VyIGFyY2hpdmUgY29tbWFuZCwgeW91IHNob3VsZCBhc3N1 bWUgdGhhdCB0aGUgZmlsZSBuYW1lcyB0bworICAgIEluIHdyaXRpbmcgeW91ciBhcmNoaXZlIGxp YnJhcnksIHlvdSBzaG91bGQgYXNzdW1lIHRoYXQgdGhlIGZpbGUgbmFtZXMgdG8KICAgICBiZSBh cmNoaXZlZCBjYW4gYmUgdXAgdG8gNjQgY2hhcmFjdGVycyBsb25nIGFuZCBjYW4gY29udGFpbiBh bnkKICAgICBjb21iaW5hdGlvbiBvZiBBU0NJSSBsZXR0ZXJzLCBkaWdpdHMsIGFuZCBkb3RzLiAg SXQgaXMgbm90IG5lY2Vzc2FyeSB0bwotICAgIHByZXNlcnZlIHRoZSBvcmlnaW5hbCByZWxhdGl2 ZSBwYXRoICg8bGl0ZXJhbD4lcDwvbGl0ZXJhbD4pIGJ1dCBpdCBpcyBuZWNlc3NhcnkgdG8KLSAg ICBwcmVzZXJ2ZSB0aGUgZmlsZSBuYW1lICg8bGl0ZXJhbD4lZjwvbGl0ZXJhbD4pLgorICAgIHBy ZXNlcnZlIHRoZSBvcmlnaW5hbCByZWxhdGl2ZSBwYXRoIGJ1dCBpdCBpcyBuZWNlc3NhcnkgdG8g cHJlc2VydmUgdGhlIGZpbGUKKyAgICBuYW1lLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KQEAg LTcyOCw3ICs3NDcsNyBAQCB0ZXN0ICEgLWYgL21udC9zZXJ2ZXIvYXJjaGl2ZWRpci8wMDAwMDAw MTAwMDAwMEE5MDAwMDAwNjUgJmFtcDsmYW1wOyBjcCBwZ193YWwvMAogICAgPC9wYXJhPgogCiAg ICA8cGFyYT4KLSAgICBUaGUgYXJjaGl2ZSBjb21tYW5kIGlzIG9ubHkgaW52b2tlZCBvbiBjb21w bGV0ZWQgV0FMIHNlZ21lbnRzLiAgSGVuY2UsCisgICAgVGhlIGFyY2hpdmUgZnVuY3Rpb24gaXMg b25seSBpbnZva2VkIG9uIGNvbXBsZXRlZCBXQUwgc2VnbWVudHMuICBIZW5jZSwKICAgICBpZiB5 b3VyIHNlcnZlciBnZW5lcmF0ZXMgb25seSBsaXR0bGUgV0FMIHRyYWZmaWMgKG9yIGhhcyBzbGFj ayBwZXJpb2RzCiAgICAgd2hlcmUgaXQgZG9lcyBzbyksIHRoZXJlIGNvdWxkIGJlIGEgbG9uZyBk ZWxheSBiZXR3ZWVuIHRoZSBjb21wbGV0aW9uCiAgICAgb2YgYSB0cmFuc2FjdGlvbiBhbmQgaXRz IHNhZmUgcmVjb3JkaW5nIGluIGFyY2hpdmUgc3RvcmFnZS4gIFRvIHB1dApAQCAtNzU4LDcgKzc3 Nyw4IEBAIHRlc3QgISAtZiAvbW50L3NlcnZlci9hcmNoaXZlZGlyLzAwMDAwMDAxMDAwMDAwQTkw MDAwMDA2NSAmYW1wOyZhbXA7IGNwIHBnX3dhbC8wCiAgICAgY29udGFpbiBlbm91Z2ggaW5mb3Jt YXRpb24gZm9yIGFyY2hpdmUgcmVjb3ZlcnkuICAoQ3Jhc2ggcmVjb3ZlcnkgaXMKICAgICB1bmFm ZmVjdGVkLikgIEZvciB0aGlzIHJlYXNvbiwgPHZhcm5hbWU+d2FsX2xldmVsPC92YXJuYW1lPiBj YW4gb25seSBiZSBjaGFuZ2VkIGF0CiAgICAgc2VydmVyIHN0YXJ0LiAgSG93ZXZlciwgPHZhcm5h bWU+YXJjaGl2ZV9jb21tYW5kPC92YXJuYW1lPiBjYW4gYmUgY2hhbmdlZCB3aXRoIGEKLSAgICBj b25maWd1cmF0aW9uIGZpbGUgcmVsb2FkLiAgSWYgeW91IHdpc2ggdG8gdGVtcG9yYXJpbHkgc3Rv cCBhcmNoaXZpbmcsCisgICAgY29uZmlndXJhdGlvbiBmaWxlIHJlbG9hZC4gIElmIHlvdSBhcmUg YXJjaGl2aW5nIHZpYSBzaGVsbCBhbmQgd2lzaCB0bworICAgIHRlbXBvcmFyaWx5IHN0b3AgYXJj aGl2aW5nLAogICAgIG9uZSB3YXkgdG8gZG8gaXQgaXMgdG8gc2V0IDx2YXJuYW1lPmFyY2hpdmVf Y29tbWFuZDwvdmFybmFtZT4gdG8gdGhlIGVtcHR5CiAgICAgc3RyaW5nICg8bGl0ZXJhbD4nJzwv bGl0ZXJhbD4pLgogICAgIFRoaXMgd2lsbCBjYXVzZSBXQUwgZmlsZXMgdG8gYWNjdW11bGF0ZSBp biA8ZmlsZW5hbWU+cGdfd2FsLzwvZmlsZW5hbWU+IHVudGlsIGEKQEAgLTkzOCwxMSArOTU4LDEx IEBAIFNFTEVDVCAqIEZST00gcGdfc3RvcF9iYWNrdXAoZmFsc2UsIHRydWUpOwogICAgICBPbiBh IHN0YW5kYnksIDx2YXJuYW1lPmFyY2hpdmVfbW9kZTwvdmFybmFtZT4gbXVzdCBiZSA8bGl0ZXJh bD5hbHdheXM8L2xpdGVyYWw+IGluIG9yZGVyCiAgICAgIGZvciA8ZnVuY3Rpb24+cGdfc3RvcF9i YWNrdXA8L2Z1bmN0aW9uPiB0byB3YWl0LgogICAgICBBcmNoaXZpbmcgb2YgdGhlc2UgZmlsZXMg aGFwcGVucyBhdXRvbWF0aWNhbGx5IHNpbmNlIHlvdSBoYXZlCi0gICAgIGFscmVhZHkgY29uZmln dXJlZCA8dmFybmFtZT5hcmNoaXZlX2NvbW1hbmQ8L3Zhcm5hbWU+LiBJbiBtb3N0IGNhc2VzIHRo aXMKKyAgICAgYWxyZWFkeSBjb25maWd1cmVkIDx2YXJuYW1lPmFyY2hpdmVfbGlicmFyeTwvdmFy bmFtZT4uIEluIG1vc3QgY2FzZXMgdGhpcwogICAgICBoYXBwZW5zIHF1aWNrbHksIGJ1dCB5b3Ug YXJlIGFkdmlzZWQgdG8gbW9uaXRvciB5b3VyIGFyY2hpdmUKICAgICAgc3lzdGVtIHRvIGVuc3Vy ZSB0aGVyZSBhcmUgbm8gZGVsYXlzLgogICAgICBJZiB0aGUgYXJjaGl2ZSBwcm9jZXNzIGhhcyBm YWxsZW4gYmVoaW5kCi0gICAgIGJlY2F1c2Ugb2YgZmFpbHVyZXMgb2YgdGhlIGFyY2hpdmUgY29t bWFuZCwgaXQgd2lsbCBrZWVwIHJldHJ5aW5nCisgICAgIGJlY2F1c2Ugb2YgZmFpbHVyZXMgb2Yg dGhlIGFyY2hpdmUgbGlicmFyeSwgaXQgd2lsbCBrZWVwIHJldHJ5aW5nCiAgICAgIHVudGlsIHRo ZSBhcmNoaXZlIHN1Y2NlZWRzIGFuZCB0aGUgYmFja3VwIGlzIGNvbXBsZXRlLgogICAgICBJZiB5 b3Ugd2lzaCB0byBwbGFjZSBhIHRpbWUgbGltaXQgb24gdGhlIGV4ZWN1dGlvbiBvZgogICAgICA8 ZnVuY3Rpb24+cGdfc3RvcF9iYWNrdXA8L2Z1bmN0aW9uPiwgc2V0IGFuIGFwcHJvcHJpYXRlCkBA IC0xNTAwLDkgKzE1MjAsMTAgQEAgcmVzdG9yZV9jb21tYW5kID0gJ2NwIC9tbnQvc2VydmVyL2Fy Y2hpdmVkaXIvJWYgJXAnCiAgICAgICBUbyBwcmVwYXJlIGZvciBsb3cgbGV2ZWwgc3RhbmRhbG9u ZSBob3QgYmFja3VwcywgbWFrZSBzdXJlCiAgICAgICA8dmFybmFtZT53YWxfbGV2ZWw8L3Zhcm5h bWU+IGlzIHNldCB0bwogICAgICAgPGxpdGVyYWw+cmVwbGljYTwvbGl0ZXJhbD4gb3IgaGlnaGVy LCA8dmFybmFtZT5hcmNoaXZlX21vZGU8L3Zhcm5hbWU+IHRvCi0gICAgICA8bGl0ZXJhbD5vbjwv bGl0ZXJhbD4sIGFuZCBzZXQgdXAgYW4gPHZhcm5hbWU+YXJjaGl2ZV9jb21tYW5kPC92YXJuYW1l PiB0aGF0IHBlcmZvcm1zCisgICAgICA8bGl0ZXJhbD5vbjwvbGl0ZXJhbD4sIGFuZCBzZXQgdXAg YW4gPHZhcm5hbWU+YXJjaGl2ZV9saWJyYXJ5PC92YXJuYW1lPiB0aGF0IHBlcmZvcm1zCiAgICAg ICBhcmNoaXZpbmcgb25seSB3aGVuIGEgPGVtcGhhc2lzPnN3aXRjaCBmaWxlPC9lbXBoYXNpcz4g ZXhpc3RzLiAgRm9yIGV4YW1wbGU6CiA8cHJvZ3JhbWxpc3Rpbmc+CithcmNoaXZlX2xpYnJhcnkg PSAnc2hlbGwnCiBhcmNoaXZlX2NvbW1hbmQgPSAndGVzdCAhIC1mIC92YXIvbGliL3Bnc3FsL2Jh Y2t1cF9pbl9wcm9ncmVzcyB8fCAodGVzdCAhIC1mIC92YXIvbGliL3Bnc3FsL2FyY2hpdmUvJWYg JmFtcDsmYW1wOyBjcCAlcCAvdmFyL2xpYi9wZ3NxbC9hcmNoaXZlLyVmKScKIDwvcHJvZ3JhbWxp c3Rpbmc+CiAgICAgICBUaGlzIGNvbW1hbmQgd2lsbCBwZXJmb3JtIGFyY2hpdmluZyB3aGVuCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKaW5kZXggZGU3N2YxNDU3My4uMWU2YWIzNDkxMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMzQ3OSw3 ICszNDc5LDcgQEAgaW5jbHVkZV9kaXIgJ2NvbmYuZCcKICAgICAgICAgTWF4aW11bSBzaXplIHRv IGxldCB0aGUgV0FMIGdyb3cgZHVyaW5nIGF1dG9tYXRpYwogICAgICAgICBjaGVja3BvaW50cy4g VGhpcyBpcyBhIHNvZnQgbGltaXQ7IFdBTCBzaXplIGNhbiBleGNlZWQKICAgICAgICAgPHZhcm5h bWU+bWF4X3dhbF9zaXplPC92YXJuYW1lPiB1bmRlciBzcGVjaWFsIGNpcmN1bXN0YW5jZXMsIHN1 Y2ggYXMKLSAgICAgICAgaGVhdnkgbG9hZCwgYSBmYWlsaW5nIDx2YXJuYW1lPmFyY2hpdmVfY29t bWFuZDwvdmFybmFtZT4sIG9yIGEgaGlnaAorICAgICAgICBoZWF2eSBsb2FkLCBhIGZhaWxpbmcg PHZhcm5hbWU+YXJjaGl2ZV9saWJyYXJ5PC92YXJuYW1lPiwgb3IgYSBoaWdoCiAgICAgICAgIDx2 YXJuYW1lPndhbF9rZWVwX3NpemU8L3Zhcm5hbWU+IHNldHRpbmcuCiAgICAgICAgIElmIHRoaXMg dmFsdWUgaXMgc3BlY2lmaWVkIHdpdGhvdXQgdW5pdHMsIGl0IGlzIHRha2VuIGFzIG1lZ2FieXRl cy4KICAgICAgICAgVGhlIGRlZmF1bHQgaXMgMSBHQi4KQEAgLTM1MjgsNyArMzUyOCw3IEBAIGlu Y2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICAgPHBhcmE+CiAgICAgICAgIFdoZW4gPHZhcm5hbWU+ YXJjaGl2ZV9tb2RlPC92YXJuYW1lPiBpcyBlbmFibGVkLCBjb21wbGV0ZWQgV0FMIHNlZ21lbnRz CiAgICAgICAgIGFyZSBzZW50IHRvIGFyY2hpdmUgc3RvcmFnZSBieSBzZXR0aW5nCi0gICAgICAg IDx4cmVmIGxpbmtlbmQ9Imd1Yy1hcmNoaXZlLWNvbW1hbmQiLz4uIEluIGFkZGl0aW9uIHRvIDxs aXRlcmFsPm9mZjwvbGl0ZXJhbD4sCisgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1hcmNoaXZl LWxpYnJhcnkiLz4uIEluIGFkZGl0aW9uIHRvIDxsaXRlcmFsPm9mZjwvbGl0ZXJhbD4sCiAgICAg ICAgIHRvIGRpc2FibGUsIHRoZXJlIGFyZSB0d28gbW9kZXM6IDxsaXRlcmFsPm9uPC9saXRlcmFs PiwgYW5kCiAgICAgICAgIDxsaXRlcmFsPmFsd2F5czwvbGl0ZXJhbD4uIER1cmluZyBub3JtYWwg b3BlcmF0aW9uLCB0aGVyZSBpcyBubwogICAgICAgICBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3 byBtb2RlcywgYnV0IHdoZW4gc2V0IHRvIDxsaXRlcmFsPmFsd2F5czwvbGl0ZXJhbD4KQEAgLTM1 MzgsOSArMzUzOCw2IEBAIGluY2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICAgIDx4cmVmIGxpbmtl bmQ9ImNvbnRpbnVvdXMtYXJjaGl2aW5nLWluLXN0YW5kYnkiLz4gZm9yIGRldGFpbHMuCiAgICAg ICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgotICAgICAgICA8dmFybmFtZT5hcmNoaXZlX21vZGU8 L3Zhcm5hbWU+IGFuZCA8dmFybmFtZT5hcmNoaXZlX2NvbW1hbmQ8L3Zhcm5hbWU+IGFyZQotICAg ICAgICBzZXBhcmF0ZSB2YXJpYWJsZXMgc28gdGhhdCA8dmFybmFtZT5hcmNoaXZlX2NvbW1hbmQ8 L3Zhcm5hbWU+IGNhbiBiZQotICAgICAgICBjaGFuZ2VkIHdpdGhvdXQgbGVhdmluZyBhcmNoaXZp bmcgbW9kZS4KICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgc2V0IGF0IHNlcnZl ciBzdGFydC4KICAgICAgICAgPHZhcm5hbWU+YXJjaGl2ZV9tb2RlPC92YXJuYW1lPiBjYW5ub3Qg YmUgZW5hYmxlZCB3aGVuCiAgICAgICAgIDx2YXJuYW1lPndhbF9sZXZlbDwvdmFybmFtZT4gaXMg c2V0IHRvIDxsaXRlcmFsPm1pbmltYWw8L2xpdGVyYWw+LgpAQCAtMzU0OCw2ICszNTQ1LDI4IEBA IGluY2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3Rl bnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtYXJjaGl2ZS1saWJyYXJ5IiB4cmVm bGFiZWw9ImFyY2hpdmVfbGlicmFyeSI+CisgICAgICA8dGVybT48dmFybmFtZT5hcmNoaXZlX2xp YnJhcnk8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4K KyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5hcmNoaXZlX2xpYnJhcnk8L3Zhcm5hbWU+IGNvbmZp Z3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBsaWJy YXJ5IHRvIHVzZSBmb3IgYXJjaGl2aW5nIGNvbXBsZXRlZCBXQUwgZmlsZSBzZWdtZW50cy4gIElm IHNldCB0bworICAgICAgICA8bGl0ZXJhbD5zaGVsbDwvbGl0ZXJhbD4gKHRoZSBkZWZhdWx0KSBv ciBhbiBlbXB0eSBzdHJpbmcsIGFyY2hpdmluZyB2aWEKKyAgICAgICAgc2hlbGwgaXMgZW5hYmxl ZCwgYW5kIDx4cmVmIGxpbmtlbmQ9Imd1Yy1hcmNoaXZlLWNvbW1hbmQiLz4gaXMgdXNlZC4KKyAg ICAgICAgT3RoZXJ3aXNlLCB0aGUgc3BlY2lmaWVkIHNoYXJlZCBsaWJyYXJ5IGlzIHByZWxvYWRl ZCBhbmQgaXMgdXNlZCBmb3IKKyAgICAgICAgYXJjaGl2aW5nLiAgRm9yIG1vcmUgaW5mb3JtYXRp b24sIHNlZQorICAgICAgICA8eHJlZiBsaW5rZW5kPSJiYWNrdXAtYXJjaGl2aW5nLXdhbCIvPiBh bmQKKyAgICAgICAgPHhyZWYgbGlua2VuZD0iYXJjaGl2ZS1tb2R1bGVzIi8+LgorICAgICAgIDwv cGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUg c2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgor ICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtYXJjaGl2 ZS1jb21tYW5kIiB4cmVmbGFiZWw9ImFyY2hpdmVfY29tbWFuZCI+CiAgICAgICA8dGVybT48dmFy bmFtZT5hcmNoaXZlX2NvbW1hbmQ8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQogICAg ICAgPGluZGV4dGVybT4KQEAgLTM1NzAsOSArMzU4OSwxMSBAQCBpbmNsdWRlX2RpciAnY29uZi5k JwogICAgICAgIDxwYXJhPgogICAgICAgICBUaGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBzZXQg aW4gdGhlIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPgogICAgICAgICBmaWxl IG9yIG9uIHRoZSBzZXJ2ZXIgY29tbWFuZCBsaW5lLiAgSXQgaXMgaWdub3JlZCB1bmxlc3MKLSAg ICAgICAgPHZhcm5hbWU+YXJjaGl2ZV9tb2RlPC92YXJuYW1lPiB3YXMgZW5hYmxlZCBhdCBzZXJ2 ZXIgc3RhcnQuCisgICAgICAgIDx2YXJuYW1lPmFyY2hpdmVfbW9kZTwvdmFybmFtZT4gd2FzIGVu YWJsZWQgYXQgc2VydmVyIHN0YXJ0IGFuZAorICAgICAgICA8dmFybmFtZT5hcmNoaXZlX2xpYnJh cnk8L3Zhcm5hbWU+IHNwZWNpZmllcyB0byBhcmNoaXZlIHZpYSBzaGVsbCBjb21tYW5kLgogICAg ICAgICBJZiA8dmFybmFtZT5hcmNoaXZlX2NvbW1hbmQ8L3Zhcm5hbWU+IGlzIGFuIGVtcHR5IHN0 cmluZyAodGhlIGRlZmF1bHQpIHdoaWxlCi0gICAgICAgIDx2YXJuYW1lPmFyY2hpdmVfbW9kZTwv dmFybmFtZT4gaXMgZW5hYmxlZCwgV0FMIGFyY2hpdmluZyBpcyB0ZW1wb3JhcmlseQorICAgICAg ICA8dmFybmFtZT5hcmNoaXZlX21vZGU8L3Zhcm5hbWU+IGlzIGVuYWJsZWQgYW5kIDx2YXJuYW1l PmFyY2hpdmVfbGlicmFyeTwvdmFybmFtZT4KKyAgICAgICAgc3BlY2lmaWVzIGFyY2hpdmluZyB2 aWEgc2hlbGwsIFdBTCBhcmNoaXZpbmcgaXMgdGVtcG9yYXJpbHkKICAgICAgICAgZGlzYWJsZWQs IGJ1dCB0aGUgc2VydmVyIGNvbnRpbnVlcyB0byBhY2N1bXVsYXRlIFdBTCBzZWdtZW50IGZpbGVz IGluCiAgICAgICAgIHRoZSBleHBlY3RhdGlvbiB0aGF0IGEgY29tbWFuZCB3aWxsIHNvb24gYmUg cHJvdmlkZWQuICBTZXR0aW5nCiAgICAgICAgIDx2YXJuYW1lPmFyY2hpdmVfY29tbWFuZDwvdmFy bmFtZT4gdG8gYSBjb21tYW5kIHRoYXQgZG9lcyBub3RoaW5nIGJ1dApAQCAtMzU5Miw3ICszNjEz LDcgQEAgaW5jbHVkZV9kaXIgJ2NvbmYuZCcKICAgICAgIDwvdGVybT4KICAgICAgIDxsaXN0aXRl bT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgVGhlIDx4cmVmIGxpbmtlbmQ9Imd1Yy1hcmNoaXZl LWNvbW1hbmQiLz4gaXMgb25seSBpbnZva2VkIGZvcgorICAgICAgICBUaGUgPHhyZWYgbGlua2Vu ZD0iZ3VjLWFyY2hpdmUtbGlicmFyeSIvPiBpcyBvbmx5IGludm9rZWQgZm9yCiAgICAgICAgIGNv bXBsZXRlZCBXQUwgc2VnbWVudHMuIEhlbmNlLCBpZiB5b3VyIHNlcnZlciBnZW5lcmF0ZXMgbGl0 dGxlIFdBTAogICAgICAgICB0cmFmZmljIChvciBoYXMgc2xhY2sgcGVyaW9kcyB3aGVyZSBpdCBk b2VzIHNvKSwgdGhlcmUgY291bGQgYmUgYQogICAgICAgICBsb25nIGRlbGF5IGJldHdlZW4gdGhl IGNvbXBsZXRpb24gb2YgYSB0cmFuc2FjdGlvbiBhbmQgaXRzIHNhZmUKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sIGIvZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNnbWwKaW5k ZXggODk0NTRlOTliOS4uZTZiNDcyZWMzMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2ZpbGVs aXN0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNnbWwKQEAgLTk5LDYgKzk5LDcg QEAKIDwhRU5USVRZIGN1c3RvbS1zY2FuIFNZU1RFTSAiY3VzdG9tLXNjYW4uc2dtbCI+CiA8IUVO VElUWSBsb2dpY2FsZGVjb2RpbmcgU1lTVEVNICJsb2dpY2FsZGVjb2Rpbmcuc2dtbCI+CiA8IUVO VElUWSByZXBsaWNhdGlvbi1vcmlnaW5zIFNZU1RFTSAicmVwbGljYXRpb24tb3JpZ2lucy5zZ21s Ij4KKzwhRU5USVRZIGFyY2hpdmUtbW9kdWxlcyBTWVNURU0gImFyY2hpdmUtbW9kdWxlcy5zZ21s Ij4KIDwhRU5USVRZIHByb3RvY29sICAgU1lTVEVNICJwcm90b2NvbC5zZ21sIj4KIDwhRU5USVRZ IHNvdXJjZXMgICAgU1lTVEVNICJzb3VyY2VzLnNnbWwiPgogPCFFTlRJVFkgc3RvcmFnZSAgICBT WVNURU0gInN0b3JhZ2Uuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFp bGFiaWxpdHkuc2dtbCBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCmluZGV4 IGM0M2YyMTQwMjAuLmY0ZTVlOTQyMGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2 YWlsYWJpbGl0eS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s CkBAIC05MzUsNyArOTM1LDcgQEAgcHJpbWFyeV9jb25uaW5mbyA9ICdob3N0PTE5Mi4xNjguMS41 MCBwb3J0PTU0MzIgdXNlcj1mb28gcGFzc3dvcmQ9Zm9vcGFzcycKICAgICBJbiBsaWV1IG9mIHVz aW5nIHJlcGxpY2F0aW9uIHNsb3RzLCBpdCBpcyBwb3NzaWJsZSB0byBwcmV2ZW50IHRoZSByZW1v dmFsCiAgICAgb2Ygb2xkIFdBTCBzZWdtZW50cyB1c2luZyA8eHJlZiBsaW5rZW5kPSJndWMtd2Fs LWtlZXAtc2l6ZSIvPiwgb3IgYnkKICAgICBzdG9yaW5nIHRoZSBzZWdtZW50cyBpbiBhbiBhcmNo aXZlIHVzaW5nCi0gICAgPHhyZWYgbGlua2VuZD0iZ3VjLWFyY2hpdmUtY29tbWFuZCIvPi4KKyAg ICA8eHJlZiBsaW5rZW5kPSJndWMtYXJjaGl2ZS1saWJyYXJ5Ii8+LgogICAgIEhvd2V2ZXIsIHRo ZXNlIG1ldGhvZHMgb2Z0ZW4gcmVzdWx0IGluIHJldGFpbmluZyBtb3JlIFdBTCBzZWdtZW50cyB0 aGFuCiAgICAgcmVxdWlyZWQsIHdoZXJlYXMgcmVwbGljYXRpb24gc2xvdHMgcmV0YWluIG9ubHkg dGhlIG51bWJlciBvZiBzZWdtZW50cwogICAgIGtub3duIHRvIGJlIG5lZWRlZC4gIE9uIHRoZSBv dGhlciBoYW5kLCByZXBsaWNhdGlvbiBzbG90cyBjYW4gcmV0YWluIHNvCkBAIC0xMzg2LDEwICsx Mzg2LDEwIEBAIHN5bmNocm9ub3VzX3N0YW5kYnlfbmFtZXMgPSAnQU5ZIDIgKHMxLCBzMiwgczMp JwogICAgICB0byA8bGl0ZXJhbD5hbHdheXM8L2xpdGVyYWw+LCBhbmQgdGhlIHN0YW5kYnkgd2ls bCBjYWxsIHRoZSBhcmNoaXZlCiAgICAgIGNvbW1hbmQgZm9yIGV2ZXJ5IFdBTCBzZWdtZW50IGl0 IHJlY2VpdmVzLCB3aGV0aGVyIGl0J3MgYnkgcmVzdG9yaW5nCiAgICAgIGZyb20gdGhlIGFyY2hp dmUgb3IgYnkgc3RyZWFtaW5nIHJlcGxpY2F0aW9uLiBUaGUgc2hhcmVkIGFyY2hpdmUgY2FuCi0g ICAgIGJlIGhhbmRsZWQgc2ltaWxhcmx5LCBidXQgdGhlIDx2YXJuYW1lPmFyY2hpdmVfY29tbWFu ZDwvdmFybmFtZT4gbXVzdAorICAgICBiZSBoYW5kbGVkIHNpbWlsYXJseSwgYnV0IHRoZSA8dmFy bmFtZT5hcmNoaXZlX2xpYnJhcnk8L3Zhcm5hbWU+IG11c3QKICAgICAgdGVzdCBpZiB0aGUgZmls ZSBiZWluZyBhcmNoaXZlZCBleGlzdHMgYWxyZWFkeSwgYW5kIGlmIHRoZSBleGlzdGluZyBmaWxl CiAgICAgIGhhcyBpZGVudGljYWwgY29udGVudHMuIFRoaXMgcmVxdWlyZXMgbW9yZSBjYXJlIGlu IHRoZQotICAgICA8dmFybmFtZT5hcmNoaXZlX2NvbW1hbmQ8L3Zhcm5hbWU+LCBhcyBpdCBtdXN0 CisgICAgIDx2YXJuYW1lPmFyY2hpdmVfbGlicmFyeTwvdmFybmFtZT4sIGFzIGl0IG11c3QKICAg ICAgYmUgY2FyZWZ1bCB0byBub3Qgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGZpbGUgd2l0aCBkaWZm ZXJlbnQgY29udGVudHMsCiAgICAgIGJ1dCByZXR1cm4gc3VjY2VzcyBpZiB0aGUgZXhhY3RseSBz YW1lIGZpbGUgaXMgYXJjaGl2ZWQgdHdpY2UuIEFuZAogICAgICBhbGwgdGhhdCBtdXN0IGJlIGRv bmUgZnJlZSBvZiByYWNlIGNvbmRpdGlvbnMsIGlmIHR3byBzZXJ2ZXJzIGF0dGVtcHQKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVz LnNnbWwKaW5kZXggZGJhOWNmNDEzZi4uM2RiNmQyMTYwYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3Bvc3RncmVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLnNnbWwKQEAgLTIz Myw2ICsyMzMsNyBAQCBicmVhayBpcyBub3QgbmVlZGVkIGluIGEgd2lkZXIgb3V0cHV0IHJlbmRl cmluZy4KICAgJmJnd29ya2VyOwogICAmbG9naWNhbGRlY29kaW5nOwogICAmcmVwbGljYXRpb24t b3JpZ2luczsKKyAgJmFyY2hpdmUtbW9kdWxlczsKIAogIDwvcGFydD4KIApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9wZ19iYXNlYmFja3VwLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3Bn X2Jhc2ViYWNrdXAuc2dtbAppbmRleCA5ZTY4MDdiNDU3Li4yYWFlYWNhNzY2IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2Jhc2ViYWNrdXAuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL3BnX2Jhc2ViYWNrdXAuc2dtbApAQCAtMTAyLDggKzEwMiw4IEBAIFBvc3RncmVTUUwgZG9j dW1lbnRhdGlvbgogICAgICA8cGFyYT4KICAgICAgIEFsbCBXQUwgcmVjb3JkcyByZXF1aXJlZCBm b3IgdGhlIGJhY2t1cCBtdXN0IGNvbnRhaW4gc3VmZmljaWVudCBmdWxsLXBhZ2Ugd3JpdGVzLAog ICAgICAgd2hpY2ggcmVxdWlyZXMgeW91IHRvIGVuYWJsZSA8dmFybmFtZT5mdWxsX3BhZ2Vfd3Jp dGVzPC92YXJuYW1lPiBvbiB0aGUgcHJpbWFyeSBhbmQKLSAgICAgIG5vdCB0byB1c2UgYSB0b29s IGxpa2UgPGFwcGxpY2F0aW9uPnBnX2NvbXByZXNzbG9nPC9hcHBsaWNhdGlvbj4gYXMKLSAgICAg IDx2YXJuYW1lPmFyY2hpdmVfY29tbWFuZDwvdmFybmFtZT4gdG8gcmVtb3ZlIGZ1bGwtcGFnZSB3 cml0ZXMgZnJvbSBXQUwgZmlsZXMuCisgICAgICBub3QgdG8gdXNlIGEgdG9vbCBpbiB5b3VyIDx2 YXJuYW1lPmFyY2hpdmVfbGlicmFyeTwvdmFybmFtZT4gdG8gcmVtb3ZlCisgICAgICBmdWxsLXBh Z2Ugd3JpdGVzIGZyb20gV0FMIGZpbGVzLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvaXRlbWl6ZWRsaXN0PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZWNl aXZld2FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3JlY2VpdmV3YWwuc2dtbAppbmRleCA5 ZmRlMmZkMmVmLi4xMGVlMTA3MDAwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jl Y2VpdmV3YWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3JlY2VpdmV3YWwuc2dtbApA QCAtNDAsNyArNDAsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgPHBhcmE+CiAgICA8 YXBwbGljYXRpb24+cGdfcmVjZWl2ZXdhbDwvYXBwbGljYXRpb24+IHN0cmVhbXMgdGhlIHdyaXRl LWFoZWFkCiAgICBsb2cgaW4gcmVhbCB0aW1lIGFzIGl0J3MgYmVpbmcgZ2VuZXJhdGVkIG9uIHRo ZSBzZXJ2ZXIsIGFuZCBkb2VzIG5vdCB3YWl0Ci0gICBmb3Igc2VnbWVudHMgdG8gY29tcGxldGUg bGlrZSA8eHJlZiBsaW5rZW5kPSJndWMtYXJjaGl2ZS1jb21tYW5kIi8+IGRvZXMuCisgICBmb3Ig c2VnbWVudHMgdG8gY29tcGxldGUgbGlrZSA8eHJlZiBsaW5rZW5kPSJndWMtYXJjaGl2ZS1saWJy YXJ5Ii8+IGRvZXMuCiAgICBGb3IgdGhpcyByZWFzb24sIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8g c2V0CiAgICA8eHJlZiBsaW5rZW5kPSJndWMtYXJjaGl2ZS10aW1lb3V0Ii8+IHdoZW4gdXNpbmcK ICAgICA8YXBwbGljYXRpb24+cGdfcmVjZWl2ZXdhbDwvYXBwbGljYXRpb24+LgpAQCAtNDY1LDEx ICs0NjUsMTEgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICAgPHBhcmE+CiAgICBXaGVu IHVzaW5nIDxhcHBsaWNhdGlvbj5wZ19yZWNlaXZld2FsPC9hcHBsaWNhdGlvbj4gaW5zdGVhZCBv ZgotICAgPHhyZWYgbGlua2VuZD0iZ3VjLWFyY2hpdmUtY29tbWFuZCIvPiBhcyB0aGUgbWFpbiBX QUwgYmFja3VwIG1ldGhvZCwgaXQgaXMKKyAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1hcmNoaXZlLWxp YnJhcnkiLz4gYXMgdGhlIG1haW4gV0FMIGJhY2t1cCBtZXRob2QsIGl0IGlzCiAgICBzdHJvbmds eSByZWNvbW1lbmRlZCB0byB1c2UgcmVwbGljYXRpb24gc2xvdHMuICBPdGhlcndpc2UsIHRoZSBz ZXJ2ZXIgaXMKICAgIGZyZWUgdG8gcmVjeWNsZSBvciByZW1vdmUgd3JpdGUtYWhlYWQgbG9nIGZp bGVzIGJlZm9yZSB0aGV5IGFyZSBiYWNrZWQgdXAsCiAgICBiZWNhdXNlIGl0IGRvZXMgbm90IGhh dmUgYW55IGluZm9ybWF0aW9uLCBlaXRoZXIKLSAgIGZyb20gPHhyZWYgbGlua2VuZD0iZ3VjLWFy Y2hpdmUtY29tbWFuZCIvPiBvciB0aGUgcmVwbGljYXRpb24gc2xvdHMsIGFib3V0CisgICBmcm9t IDx4cmVmIGxpbmtlbmQ9Imd1Yy1hcmNoaXZlLWxpYnJhcnkiLz4gb3IgdGhlIHJlcGxpY2F0aW9u IHNsb3RzLCBhYm91dAogICAgaG93IGZhciB0aGUgV0FMIHN0cmVhbSBoYXMgYmVlbiBhcmNoaXZl ZC4gIE5vdGUsIGhvd2V2ZXIsIHRoYXQgYQogICAgcmVwbGljYXRpb24gc2xvdCB3aWxsIGZpbGwg dXAgdGhlIHNlcnZlcidzIGRpc2sgc3BhY2UgaWYgdGhlIHJlY2VpdmVyIGRvZXMKICAgIG5vdCBr ZWVwIHVwIHdpdGggZmV0Y2hpbmcgdGhlIFdBTCBkYXRhLgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3dhbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3dhbC5zZ21sCmluZGV4IDI0ZTFjODk1MDMuLjJi YjI3YTg0NjggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC93YWwuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvd2FsLnNnbWwKQEAgLTYzNiw3ICs2MzYsNyBAQAogICAgV0FMIGZpbGVzIHBsdXMgb25l IGFkZGl0aW9uYWwgV0FMIGZpbGUgYXJlCiAgICBrZXB0IGF0IGFsbCB0aW1lcy4gQWxzbywgaWYg V0FMIGFyY2hpdmluZyBpcyB1c2VkLCBvbGQgc2VnbWVudHMgY2Fubm90IGJlCiAgICByZW1vdmVk IG9yIHJlY3ljbGVkIHVudGlsIHRoZXkgYXJlIGFyY2hpdmVkLiBJZiBXQUwgYXJjaGl2aW5nIGNh bm5vdCBrZWVwIHVwCi0gICB3aXRoIHRoZSBwYWNlIHRoYXQgV0FMIGlzIGdlbmVyYXRlZCwgb3Ig aWYgPHZhcm5hbWU+YXJjaGl2ZV9jb21tYW5kPC92YXJuYW1lPgorICAgd2l0aCB0aGUgcGFjZSB0 aGF0IFdBTCBpcyBnZW5lcmF0ZWQsIG9yIGlmIDx2YXJuYW1lPmFyY2hpdmVfbGlicmFyeTwvdmFy bmFtZT4KICAgIGZhaWxzIHJlcGVhdGVkbHksIG9sZCBXQUwgZmlsZXMgd2lsbCBhY2N1bXVsYXRl IGluIDxmaWxlbmFtZT5wZ193YWw8L2ZpbGVuYW1lPgogICAgdW50aWwgdGhlIHNpdHVhdGlvbiBp cyByZXNvbHZlZC4gQSBzbG93IG9yIGZhaWxlZCBzdGFuZGJ5IHNlcnZlciB0aGF0CiAgICB1c2Vz IGEgcmVwbGljYXRpb24gc2xvdCB3aWxsIGhhdmUgdGhlIHNhbWUgZWZmZWN0IChzZWUKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCBmNTQ3ZWZkMjk0Li42MzUwNjU2YThiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC04Nzk1LDcgKzg3OTUsNyBAQCBTaHV0ZG93blhMT0co aW50IGNvZGUsIERhdHVtIGFyZykKIAkJICogcHJvY2VzcyBvbmUgbW9yZSB0aW1lIGF0IHRoZSBl bmQgb2Ygc2h1dGRvd24pLiBUaGUgY2hlY2twb2ludAogCQkgKiByZWNvcmQgd2lsbCBnbyB0byB0 aGUgbmV4dCBYTE9HIGZpbGUgYW5kIHdvbid0IGJlIGFyY2hpdmVkICh5ZXQpLgogCQkgKi8KLQkJ aWYgKFhMb2dBcmNoaXZpbmdBY3RpdmUoKSAmJiBYTG9nQXJjaGl2ZUNvbW1hbmRTZXQoKSkKKwkJ aWYgKFhMb2dBcmNoaXZpbmdBY3RpdmUoKSkKIAkJCVJlcXVlc3RYTG9nU3dpdGNoKGZhbHNlKTsK IAogCQlDcmVhdGVDaGVja1BvaW50KENIRUNLUE9JTlRfSVNfU0hVVERPV04gfCBDSEVDS1BPSU5U X0lNTUVESUFURSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL01ha2VmaWxl IGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9NYWtlZmlsZQppbmRleCA3ODdjNmEyYzNiLi5kYmJl YWM1YTgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL01ha2VmaWxlCisrKyBi L3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvTWFrZWZpbGUKQEAgLTIzLDYgKzIzLDcgQEAgT0JKUyA9 IFwKIAlwZ2FyY2gubyBcCiAJcGdzdGF0Lm8gXAogCXBvc3RtYXN0ZXIubyBcCisJc2hlbGxfYXJj aGl2ZS5vIFwKIAlzdGFydHVwLm8gXAogCXN5c2xvZ2dlci5vIFwKIAl3YWx3cml0ZXIubwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ2FyY2guYyBiL3NyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvcGdhcmNoLmMKaW5kZXggNzRhN2Q3YzRkMC4uZjBlNDM3ZjgyMCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ2FyY2guYworKysgYi9zcmMvYmFja2VuZC9wb3N0 bWFzdGVyL3BnYXJjaC5jCkBAIC0yNSwxOCArMjUsMTIgQEAKICAqLwogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHNpZ25hbC5oPgotI2luY2x1 ZGUgPHRpbWUuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+ Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1ZGUg ImFjY2Vzcy94bG9nLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dfaW50ZXJuYWwuaCIKICNpbmNs dWRlICJsaWJwcS9wcXNpZ25hbC5oIgotI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUg InBnc3RhdC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvaW50ZXJydXB0LmgiCiAjaW5jbHVkZSAi cG9zdG1hc3Rlci9wZ2FyY2guaCIKQEAgLTc4LDYgKzcyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGdB cmNoRGF0YQogCWludAkJCXBncHJvY25vOwkJLyogcGdwcm9jbm8gb2YgYXJjaGl2ZXIgcHJvY2Vz cyAqLwogfSBQZ0FyY2hEYXRhOwogCitjaGFyICpYTG9nQXJjaGl2ZUxpYnJhcnkgPSAiIjsKKwog CiAvKiAtLS0tLS0tLS0tCiAgKiBMb2NhbCBkYXRhCkBAIC04NSw2ICs4MSw4IEBAIHR5cGVkZWYg c3RydWN0IFBnQXJjaERhdGEKICAqLwogc3RhdGljIHRpbWVfdCBsYXN0X3NpZ3Rlcm1fdGltZSA9 IDA7CiBzdGF0aWMgUGdBcmNoRGF0YSAqUGdBcmNoID0gTlVMTDsKK3N0YXRpYyBBcmNoaXZlTW9k dWxlQ2FsbGJhY2tzICpBcmNoaXZlQ29udGV4dCA9IE5VTEw7CisKIAogLyoKICAqIEZsYWdzIHNl dCBieSBpbnRlcnJ1cHQgaGFuZGxlcnMgZm9yIGxhdGVyIHNlcnZpY2UgaW4gdGhlIG1haW4gbG9v cC4KQEAgLTEwMyw2ICsxMDEsNyBAQCBzdGF0aWMgYm9vbCBwZ2FyY2hfcmVhZHlYbG9nKGNoYXIg Knhsb2cpOwogc3RhdGljIHZvaWQgcGdhcmNoX2FyY2hpdmVEb25lKGNoYXIgKnhsb2cpOwogc3Rh dGljIHZvaWQgcGdhcmNoX2RpZShpbnQgY29kZSwgRGF0dW0gYXJnKTsKIHN0YXRpYyB2b2lkIEhh bmRsZVBnQXJjaEludGVycnVwdHModm9pZCk7CitzdGF0aWMgdm9pZCBMb2FkQXJjaGl2ZUxpYnJh cnkodm9pZCk7CiAKIC8qIFJlcG9ydCBzaGFyZWQgbWVtb3J5IHNwYWNlIG5lZWRlZCBieSBQZ0Fy Y2hTaG1lbUluaXQgKi8KIFNpemUKQEAgLTE5OCw2ICsxOTcsMTEgQEAgUGdBcmNoaXZlck1haW4o dm9pZCkKIAkgKi8KIAlQZ0FyY2gtPnBncHJvY25vID0gTXlQcm9jLT5wZ3Byb2NubzsKIAorCS8q CisJICogTG9hZCB0aGUgYXJjaGl2ZV9saWJyYXJ5LgorCSAqLworCUxvYWRBcmNoaXZlTGlicmFy eSgpOworCiAJcGdhcmNoX01haW5Mb29wKCk7CiAKIAlwcm9jX2V4aXQoMCk7CkBAIC0zNTgsMTEg KzM2MiwxMSBAQCBwZ2FyY2hfQXJjaGl2ZXJDb3B5TG9vcCh2b2lkKQogCQkJICovCiAJCQlIYW5k bGVQZ0FyY2hJbnRlcnJ1cHRzKCk7CiAKLQkJCS8qIGNhbid0IGRvIGFueXRoaW5nIGlmIG5vIGNv bW1hbmQgLi4uICovCi0JCQlpZiAoIVhMb2dBcmNoaXZlQ29tbWFuZFNldCgpKQorCQkJLyogY2Fu J3QgZG8gYW55dGhpbmcgaWYgbm90IGNvbmZpZ3VyZWQgLi4uICovCisJCQlpZiAoIUFyY2hpdmVD b250ZXh0LT5jaGVja19jb25maWd1cmVkX2NiKCkpCiAJCQl7CiAJCQkJZXJlcG9ydChXQVJOSU5H LAotCQkJCQkJKGVycm1zZygiYXJjaGl2ZV9tb2RlIGVuYWJsZWQsIHlldCBhcmNoaXZlX2NvbW1h bmQgaXMgbm90IHNldCIpKSk7CisJCQkJCQkoZXJybXNnKCJhcmNoaXZlX21vZGUgZW5hYmxlZCwg eWV0IGFyY2hpdmluZyBpcyBub3QgY29uZmlndXJlZCIpKSk7CiAJCQkJcmV0dXJuOwogCQkJfQog CkBAIC00NDMsMTM2ICs0NDcsMzEgQEAgcGdhcmNoX0FyY2hpdmVyQ29weUxvb3Aodm9pZCkKIC8q CiAgKiBwZ2FyY2hfYXJjaGl2ZVhsb2cKICAqCi0gKiBJbnZva2VzIHN5c3RlbSgzKSB0byBjb3B5 IG9uZSBhcmNoaXZlIGZpbGUgdG8gd2hlcmV2ZXIgaXQgc2hvdWxkIGdvCisgKiBJbnZva2VzIGFy Y2hpdmVfZmlsZV9jYiB0byBjb3B5IG9uZSBhcmNoaXZlIGZpbGUgdG8gd2hlcmV2ZXIgaXQgc2hv dWxkIGdvCiAgKgogICogUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwKICAqLwogc3RhdGljIGJv b2wKIHBnYXJjaF9hcmNoaXZlWGxvZyhjaGFyICp4bG9nKQogewotCWNoYXIJCXhsb2dhcmNoY21k W01BWFBHUEFUSF07CiAJY2hhcgkJcGF0aG5hbWVbTUFYUEdQQVRIXTsKIAljaGFyCQlhY3Rpdml0 eW1zZ1tNQVhGTkFNRUxFTiArIDE2XTsKLQljaGFyCSAgICpkcDsKLQljaGFyCSAgICplbmRwOwot CWNvbnN0IGNoYXIgKnNwOwotCWludAkJCXJjOworCWJvb2wJCXJldDsKIAogCXNucHJpbnRmKHBh dGhuYW1lLCBNQVhQR1BBVEgsIFhMT0dESVIgIi8lcyIsIHhsb2cpOwogCi0JLyoKLQkgKiBjb25z dHJ1Y3QgdGhlIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQKLQkgKi8KLQlkcCA9IHhsb2dhcmNoY21k OwotCWVuZHAgPSB4bG9nYXJjaGNtZCArIE1BWFBHUEFUSCAtIDE7Ci0JKmVuZHAgPSAnXDAnOwot Ci0JZm9yIChzcCA9IFhMb2dBcmNoaXZlQ29tbWFuZDsgKnNwOyBzcCsrKQotCXsKLQkJaWYgKCpz cCA9PSAnJScpCi0JCXsKLQkJCXN3aXRjaCAoc3BbMV0pCi0JCQl7Ci0JCQkJY2FzZSAncCc6Ci0J CQkJCS8qICVwOiByZWxhdGl2ZSBwYXRoIG9mIHNvdXJjZSBmaWxlICovCi0JCQkJCXNwKys7Ci0J CQkJCXN0cmxjcHkoZHAsIHBhdGhuYW1lLCBlbmRwIC0gZHApOwotCQkJCQltYWtlX25hdGl2ZV9w YXRoKGRwKTsKLQkJCQkJZHAgKz0gc3RybGVuKGRwKTsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSAn Zic6Ci0JCQkJCS8qICVmOiBmaWxlbmFtZSBvZiBzb3VyY2UgZmlsZSAqLwotCQkJCQlzcCsrOwot CQkJCQlzdHJsY3B5KGRwLCB4bG9nLCBlbmRwIC0gZHApOwotCQkJCQlkcCArPSBzdHJsZW4oZHAp OwotCQkJCQlicmVhazsKLQkJCQljYXNlICclJzoKLQkJCQkJLyogY29udmVydCAlJSB0byBhIHNp bmdsZSAlICovCi0JCQkJCXNwKys7Ci0JCQkJCWlmIChkcCA8IGVuZHApCi0JCQkJCQkqZHArKyA9 ICpzcDsKLQkJCQkJYnJlYWs7Ci0JCQkJZGVmYXVsdDoKLQkJCQkJLyogb3RoZXJ3aXNlIHRyZWF0 IHRoZSAlIGFzIG5vdCBzcGVjaWFsICovCi0JCQkJCWlmIChkcCA8IGVuZHApCi0JCQkJCQkqZHAr KyA9ICpzcDsKLQkJCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQlpZiAoZHAg PCBlbmRwKQotCQkJCSpkcCsrID0gKnNwOwotCQl9Ci0JfQotCSpkcCA9ICdcMCc7Ci0KLQllcmVw b3J0KERFQlVHMywKLQkJCShlcnJtc2dfaW50ZXJuYWwoImV4ZWN1dGluZyBhcmNoaXZlIGNvbW1h bmQgXCIlc1wiIiwKLQkJCQkJCQkgeGxvZ2FyY2hjbWQpKSk7Ci0KIAkvKiBSZXBvcnQgYXJjaGl2 ZSBhY3Rpdml0eSBpbiBQUyBkaXNwbGF5ICovCiAJc25wcmludGYoYWN0aXZpdHltc2csIHNpemVv ZihhY3Rpdml0eW1zZyksICJhcmNoaXZpbmcgJXMiLCB4bG9nKTsKIAlzZXRfcHNfZGlzcGxheShh Y3Rpdml0eW1zZyk7CiAKLQlyYyA9IHN5c3RlbSh4bG9nYXJjaGNtZCk7Ci0JaWYgKHJjICE9IDAp Ci0JewotCQkvKgotCQkgKiBJZiBlaXRoZXIgdGhlIHNoZWxsIGl0c2VsZiwgb3IgYSBjYWxsZWQg Y29tbWFuZCwgZGllZCBvbiBhIHNpZ25hbCwKLQkJICogYWJvcnQgdGhlIGFyY2hpdmVyLiAgV2Ug ZG8gdGhpcyBiZWNhdXNlIHN5c3RlbSgpIGlnbm9yZXMgU0lHSU5UIGFuZAotCQkgKiBTSUdRVUlU IHdoaWxlIHdhaXRpbmc7IHNvIGEgc2lnbmFsIGlzIHZlcnkgbGlrZWx5IHNvbWV0aGluZyB0aGF0 Ci0JCSAqIHNob3VsZCBoYXZlIGludGVycnVwdGVkIHVzIHRvby4gIEFsc28gZGllIGlmIHRoZSBz aGVsbCBnb3QgYSBoYXJkCi0JCSAqICJjb21tYW5kIG5vdCBmb3VuZCIgdHlwZSBvZiBlcnJvci4g IElmIHdlIG92ZXJyZWFjdCBpdCdzIG5vIGJpZwotCQkgKiBkZWFsLCB0aGUgcG9zdG1hc3RlciB3 aWxsIGp1c3Qgc3RhcnQgdGhlIGFyY2hpdmVyIGFnYWluLgotCQkgKi8KLQkJaW50CQkJbGV2ID0g d2FpdF9yZXN1bHRfaXNfYW55X3NpZ25hbChyYywgdHJ1ZSkgPyBGQVRBTCA6IExPRzsKLQotCQlp ZiAoV0lGRVhJVEVEKHJjKSkKLQkJewotCQkJZXJlcG9ydChsZXYsCi0JCQkJCShlcnJtc2coImFy Y2hpdmUgY29tbWFuZCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgJWQiLAotCQkJCQkJCVdFWElUU1RB VFVTKHJjKSksCi0JCQkJCSBlcnJkZXRhaWwoIlRoZSBmYWlsZWQgYXJjaGl2ZSBjb21tYW5kIHdh czogJXMiLAotCQkJCQkJCSAgIHhsb2dhcmNoY21kKSkpOwotCQl9Ci0JCWVsc2UgaWYgKFdJRlNJ R05BTEVEKHJjKSkKLQkJewotI2lmIGRlZmluZWQoV0lOMzIpCi0JCQllcmVwb3J0KGxldiwKLQkJ CQkJKGVycm1zZygiYXJjaGl2ZSBjb21tYW5kIHdhcyB0ZXJtaW5hdGVkIGJ5IGV4Y2VwdGlvbiAw eCVYIiwKLQkJCQkJCQlXVEVSTVNJRyhyYykpLAotCQkJCQkgZXJyaGludCgiU2VlIEMgaW5jbHVk ZSBmaWxlIFwibnRzdGF0dXMuaFwiIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBoZXhhZGVjaW1h bCB2YWx1ZS4iKSwKLQkJCQkJIGVycmRldGFpbCgiVGhlIGZhaWxlZCBhcmNoaXZlIGNvbW1hbmQg d2FzOiAlcyIsCi0JCQkJCQkJICAgeGxvZ2FyY2hjbWQpKSk7Ci0jZWxzZQotCQkJZXJlcG9ydChs ZXYsCi0JCQkJCShlcnJtc2coImFyY2hpdmUgY29tbWFuZCB3YXMgdGVybWluYXRlZCBieSBzaWdu YWwgJWQ6ICVzIiwKLQkJCQkJCQlXVEVSTVNJRyhyYyksIHBnX3N0cnNpZ25hbChXVEVSTVNJRyhy YykpKSwKLQkJCQkJIGVycmRldGFpbCgiVGhlIGZhaWxlZCBhcmNoaXZlIGNvbW1hbmQgd2FzOiAl cyIsCi0JCQkJCQkJICAgeGxvZ2FyY2hjbWQpKSk7Ci0jZW5kaWYKLQkJfQotCQllbHNlCi0JCXsK LQkJCWVyZXBvcnQobGV2LAotCQkJCQkoZXJybXNnKCJhcmNoaXZlIGNvbW1hbmQgZXhpdGVkIHdp dGggdW5yZWNvZ25pemVkIHN0YXR1cyAlZCIsCi0JCQkJCQkJcmMpLAotCQkJCQkgZXJyZGV0YWls KCJUaGUgZmFpbGVkIGFyY2hpdmUgY29tbWFuZCB3YXM6ICVzIiwKLQkJCQkJCQkgICB4bG9nYXJj aGNtZCkpKTsKLQkJfQotCisJcmV0ID0gQXJjaGl2ZUNvbnRleHQtPmFyY2hpdmVfZmlsZV9jYih4 bG9nLCBwYXRobmFtZSk7CisJaWYgKHJldCkKKwkJc25wcmludGYoYWN0aXZpdHltc2csIHNpemVv ZihhY3Rpdml0eW1zZyksICJsYXN0IHdhcyAlcyIsIHhsb2cpOworCWVsc2UKIAkJc25wcmludGYo YWN0aXZpdHltc2csIHNpemVvZihhY3Rpdml0eW1zZyksICJmYWlsZWQgb24gJXMiLCB4bG9nKTsK LQkJc2V0X3BzX2Rpc3BsYXkoYWN0aXZpdHltc2cpOwotCi0JCXJldHVybiBmYWxzZTsKLQl9Ci0J ZWxvZyhERUJVRzEsICJhcmNoaXZlZCB3cml0ZS1haGVhZCBsb2cgZmlsZSBcIiVzXCIiLCB4bG9n KTsKLQotCXNucHJpbnRmKGFjdGl2aXR5bXNnLCBzaXplb2YoYWN0aXZpdHltc2cpLCAibGFzdCB3 YXMgJXMiLCB4bG9nKTsKIAlzZXRfcHNfZGlzcGxheShhY3Rpdml0eW1zZyk7CiAKLQlyZXR1cm4g dHJ1ZTsKKwlyZXR1cm4gcmV0OwogfQogCiAvKgpAQCAtNzE2LDMgKzYxNSw0NCBAQCBIYW5kbGVQ Z0FyY2hJbnRlcnJ1cHRzKHZvaWQpCiAJCVByb2Nlc3NDb25maWdGaWxlKFBHQ19TSUdIVVApOwog CX0KIH0KKworLyoKKyAqIExvYWRBcmNoaXZlTGlicmFyeQorICoKKyAqIExvYWRzIHRoZSBhcmNo aXZpbmcgY2FsbGJhY2tzIGludG8gb3VyIGxvY2FsIEFyY2hpdmVDb250ZXh0LgorICovCitzdGF0 aWMgdm9pZAorTG9hZEFyY2hpdmVMaWJyYXJ5KHZvaWQpCit7CisJQXJjaGl2ZUNvbnRleHQgPSBw YWxsb2MwKHNpemVvZihBcmNoaXZlTW9kdWxlQ2FsbGJhY2tzKSk7CisKKwkvKgorCSAqIElmIHNo ZWxsIGFyY2hpdmluZyBpcyBlbmFibGVkLCB1c2Ugb3VyIHNwZWNpYWwgaW5pdGlhbGl6YXRpb24K KwkgKiBmdW5jdGlvbi4gIE90aGVyd2lzZSwgbG9hZCB0aGUgbGlicmFyeSBhbmQgY2FsbCBpdHMK KwkgKiBfUEdfYXJjaGl2ZV9tb2R1bGVfaW5pdCgpLgorCSAqLworCWlmIChTaGVsbEFyY2hpdmlu Z0VuYWJsZWQoKSkKKwkJc2hlbGxfYXJjaGl2ZV9pbml0KEFyY2hpdmVDb250ZXh0KTsKKwllbHNl CisJeworCQlBcmNoaXZlTW9kdWxlSW5pdCBhcmNoaXZlX2luaXQ7CisKKwkJYXJjaGl2ZV9pbml0 ID0gKEFyY2hpdmVNb2R1bGVJbml0KQorCQkJbG9hZF9leHRlcm5hbF9mdW5jdGlvbihYTG9nQXJj aGl2ZUxpYnJhcnksCisJCQkJCQkJCSAgICJfUEdfYXJjaGl2ZV9tb2R1bGVfaW5pdCIsIGZhbHNl LCBOVUxMKTsKKworCQlpZiAoYXJjaGl2ZV9pbml0ID09IE5VTEwpCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJybXNnKCJhcmNoaXZlIG1vZHVsZXMgaGF2ZSB0byBkZWNsYXJlIHRoZSAiCisJ CQkJCQkJIl9QR19hcmNoaXZlX21vZHVsZV9pbml0IHN5bWJvbCIpKSk7CisKKwkJYXJjaGl2ZV9p bml0KEFyY2hpdmVDb250ZXh0KTsKKwl9CisKKwlpZiAoQXJjaGl2ZUNvbnRleHQtPmNoZWNrX2Nv bmZpZ3VyZWRfY2IgPT0gTlVMTCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJybXNnKCJhcmNo aXZlIG1vZHVsZXMgbXVzdCByZWdpc3RlciBhIGNoZWNrIGNhbGxiYWNrIikpKTsKKwlpZiAoQXJj aGl2ZUNvbnRleHQtPmFyY2hpdmVfZmlsZV9jYiA9PSBOVUxMKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJtc2coImFyY2hpdmUgbW9kdWxlcyBtdXN0IHJlZ2lzdGVyIGFuIGFyY2hpdmUgY2Fs bGJhY2siKSkpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFz dGVyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCBlMmE3NmJh MDU1Li5mNDNjNmI0Y2RjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwpAQCAtMTAy NCw2ICsxMDI0LDcgQEAgUG9zdG1hc3Rlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkg KiBwcm9jZXNzIGFueSBsaWJyYXJpZXMgdGhhdCBzaG91bGQgYmUgcHJlbG9hZGVkIGF0IHBvc3Rt YXN0ZXIgc3RhcnQKIAkgKi8KIAlwcm9jZXNzX3NoYXJlZF9wcmVsb2FkX2xpYnJhcmllcygpOwor CXByb2Nlc3NfYXJjaGl2ZV9saWJyYXJ5KCk7CiAKIAkvKgogCSAqIEluaXRpYWxpemUgU1NMIGxp YnJhcnksIGlmIHNwZWNpZmllZC4KQEAgLTUwMTEsNiArNTAxMiw3IEBAIFN1YlBvc3RtYXN0ZXJN YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJICogbm9uLUVYRUNfQkFDS0VORCBiZWhhdmlv ci4KIAkgKi8KIAlwcm9jZXNzX3NoYXJlZF9wcmVsb2FkX2xpYnJhcmllcygpOworCXByb2Nlc3Nf YXJjaGl2ZV9saWJyYXJ5KCk7CiAKIAkvKiBSdW4gYmFja2VuZCBvciBhcHByb3ByaWF0ZSBjaGls ZCAqLwogCWlmIChzdHJjbXAoYXJndlsxXSwgIi0tZm9ya2JhY2tlbmQiKSA9PSAwKQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zaGVsbF9hcmNoaXZlLmMgYi9zcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL3NoZWxsX2FyY2hpdmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi43Mjk4ZGRhNmVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9zaGVsbF9hcmNoaXZlLmMKQEAgLTAsMCArMSwxNTYgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIHNoZWxsX2FyY2hpdmUuYworICoKKyAqIFRoaXMgYXJjaGl2aW5nIGZ1bmN0 aW9uIHVzZXMgYSB1c2VyLXNwZWNpZmllZCBzaGVsbCBjb21tYW5kICh0aGUKKyAqIGFyY2hpdmVf Y29tbWFuZCBHVUMpIHRvIGNvcHkgd3JpdGUtYWhlYWQgbG9nIGZpbGVzLiAgSXQgaXMgdXNlZCBh cyB0aGUKKyAqIGRlZmF1bHQsIGJ1dCBvdGhlciBtb2R1bGVzIG1heSBkZWZpbmUgdGhlaXIgb3du IGN1c3RvbSBhcmNoaXZpbmcgbG9naWMuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDIxLCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisg KgkgIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc2hlbGxfYXJjaGl2ZS5jCisgKgorICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSA8c3lzL3dh aXQuaD4KKworI2luY2x1ZGUgImFjY2Vzcy94bG9nLmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9w Z2FyY2guaCIKKworc3RhdGljIGJvb2wgc2hlbGxfYXJjaGl2ZV9jb25maWd1cmVkKHZvaWQpOwor c3RhdGljIGJvb2wgc2hlbGxfYXJjaGl2ZV9maWxlKGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGNo YXIgKnBhdGgpOworCit2b2lkCitzaGVsbF9hcmNoaXZlX2luaXQoQXJjaGl2ZU1vZHVsZUNhbGxi YWNrcyAqY2IpCit7CisJQXNzZXJ0VmFyaWFibGVJc09mVHlwZSgmc2hlbGxfYXJjaGl2ZV9pbml0 LCBBcmNoaXZlTW9kdWxlSW5pdCk7CisKKwljYi0+Y2hlY2tfY29uZmlndXJlZF9jYiA9IHNoZWxs X2FyY2hpdmVfY29uZmlndXJlZDsKKwljYi0+YXJjaGl2ZV9maWxlX2NiID0gc2hlbGxfYXJjaGl2 ZV9maWxlOworfQorCitzdGF0aWMgYm9vbAorc2hlbGxfYXJjaGl2ZV9jb25maWd1cmVkKHZvaWQp Cit7CisJcmV0dXJuIFhMb2dBcmNoaXZlQ29tbWFuZFswXSAhPSAnXDAnOworfQorCitzdGF0aWMg Ym9vbAorc2hlbGxfYXJjaGl2ZV9maWxlKGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGNoYXIgKnBh dGgpCit7CisJY2hhcgkJeGxvZ2FyY2hjbWRbTUFYUEdQQVRIXTsKKwljaGFyCSAgICpkcDsKKwlj aGFyCSAgICplbmRwOworCWNvbnN0IGNoYXIgKnNwOworCWludAkJCXJjOworCisJQXNzZXJ0KGZp bGUgIT0gTlVMTCk7CisJQXNzZXJ0KHBhdGggIT0gTlVMTCk7CisKKwkvKgorCSAqIGNvbnN0cnVj dCB0aGUgY29tbWFuZCB0byBiZSBleGVjdXRlZAorCSAqLworCWRwID0geGxvZ2FyY2hjbWQ7CisJ ZW5kcCA9IHhsb2dhcmNoY21kICsgTUFYUEdQQVRIIC0gMTsKKwkqZW5kcCA9ICdcMCc7CisKKwlm b3IgKHNwID0gWExvZ0FyY2hpdmVDb21tYW5kOyAqc3A7IHNwKyspCisJeworCQlpZiAoKnNwID09 ICclJykKKwkJeworCQkJc3dpdGNoIChzcFsxXSkKKwkJCXsKKwkJCQljYXNlICdwJzoKKwkJCQkJ LyogJXA6IHJlbGF0aXZlIHBhdGggb2Ygc291cmNlIGZpbGUgKi8KKwkJCQkJc3ArKzsKKwkJCQkJ c3RybGNweShkcCwgcGF0aCwgZW5kcCAtIGRwKTsKKwkJCQkJbWFrZV9uYXRpdmVfcGF0aChkcCk7 CisJCQkJCWRwICs9IHN0cmxlbihkcCk7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ2YnOgorCQkJ CQkvKiAlZjogZmlsZW5hbWUgb2Ygc291cmNlIGZpbGUgKi8KKwkJCQkJc3ArKzsKKwkJCQkJc3Ry bGNweShkcCwgZmlsZSwgZW5kcCAtIGRwKTsKKwkJCQkJZHAgKz0gc3RybGVuKGRwKTsKKwkJCQkJ YnJlYWs7CisJCQkJY2FzZSAnJSc6CisJCQkJCS8qIGNvbnZlcnQgJSUgdG8gYSBzaW5nbGUgJSAq LworCQkJCQlzcCsrOworCQkJCQlpZiAoZHAgPCBlbmRwKQorCQkJCQkJKmRwKysgPSAqc3A7CisJ CQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCS8qIG90aGVyd2lzZSB0cmVhdCB0aGUgJSBh cyBub3Qgc3BlY2lhbCAqLworCQkJCQlpZiAoZHAgPCBlbmRwKQorCQkJCQkJKmRwKysgPSAqc3A7 CisJCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJaWYgKGRwIDwgZW5kcCkK KwkJCQkqZHArKyA9ICpzcDsKKwkJfQorCX0KKwkqZHAgPSAnXDAnOworCisJZXJlcG9ydChERUJV RzMsCisJCQkoZXJybXNnX2ludGVybmFsKCJleGVjdXRpbmcgYXJjaGl2ZSBjb21tYW5kIFwiJXNc IiIsCisJCQkJCQkJIHhsb2dhcmNoY21kKSkpOworCisJcmMgPSBzeXN0ZW0oeGxvZ2FyY2hjbWQp OworCWlmIChyYyAhPSAwKQorCXsKKwkJLyoKKwkJICogSWYgZWl0aGVyIHRoZSBzaGVsbCBpdHNl bGYsIG9yIGEgY2FsbGVkIGNvbW1hbmQsIGRpZWQgb24gYSBzaWduYWwsCisJCSAqIGFib3J0IHRo ZSBhcmNoaXZlci4gIFdlIGRvIHRoaXMgYmVjYXVzZSBzeXN0ZW0oKSBpZ25vcmVzIFNJR0lOVCBh bmQKKwkJICogU0lHUVVJVCB3aGlsZSB3YWl0aW5nOyBzbyBhIHNpZ25hbCBpcyB2ZXJ5IGxpa2Vs eSBzb21ldGhpbmcgdGhhdAorCQkgKiBzaG91bGQgaGF2ZSBpbnRlcnJ1cHRlZCB1cyB0b28uICBB bHNvIGRpZSBpZiB0aGUgc2hlbGwgZ290IGEgaGFyZAorCQkgKiAiY29tbWFuZCBub3QgZm91bmQi IHR5cGUgb2YgZXJyb3IuICBJZiB3ZSBvdmVycmVhY3QgaXQncyBubyBiaWcKKwkJICogZGVhbCwg dGhlIHBvc3RtYXN0ZXIgd2lsbCBqdXN0IHN0YXJ0IHRoZSBhcmNoaXZlciBhZ2Fpbi4KKwkJICov CisJCWludAkJCWxldiA9IHdhaXRfcmVzdWx0X2lzX2FueV9zaWduYWwocmMsIHRydWUpID8gRkFU QUwgOiBMT0c7CisKKwkJaWYgKFdJRkVYSVRFRChyYykpCisJCXsKKwkJCWVyZXBvcnQobGV2LAor CQkJCQkoZXJybXNnKCJhcmNoaXZlIGNvbW1hbmQgZmFpbGVkIHdpdGggZXhpdCBjb2RlICVkIiwK KwkJCQkJCQlXRVhJVFNUQVRVUyhyYykpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUgZmFpbGVkIGFy Y2hpdmUgY29tbWFuZCB3YXM6ICVzIiwKKwkJCQkJCQkgICB4bG9nYXJjaGNtZCkpKTsKKwkJfQor CQllbHNlIGlmIChXSUZTSUdOQUxFRChyYykpCisJCXsKKyNpZiBkZWZpbmVkKFdJTjMyKQorCQkJ ZXJlcG9ydChsZXYsCisJCQkJCShlcnJtc2coImFyY2hpdmUgY29tbWFuZCB3YXMgdGVybWluYXRl ZCBieSBleGNlcHRpb24gMHglWCIsCisJCQkJCQkJV1RFUk1TSUcocmMpKSwKKwkJCQkJIGVycmhp bnQoIlNlZSBDIGluY2x1ZGUgZmlsZSBcIm50c3RhdHVzLmhcIiBmb3IgYSBkZXNjcmlwdGlvbiBv ZiB0aGUgaGV4YWRlY2ltYWwgdmFsdWUuIiksCisJCQkJCSBlcnJkZXRhaWwoIlRoZSBmYWlsZWQg YXJjaGl2ZSBjb21tYW5kIHdhczogJXMiLAorCQkJCQkJCSAgIHhsb2dhcmNoY21kKSkpOworI2Vs c2UKKwkJCWVyZXBvcnQobGV2LAorCQkJCQkoZXJybXNnKCJhcmNoaXZlIGNvbW1hbmQgd2FzIHRl cm1pbmF0ZWQgYnkgc2lnbmFsICVkOiAlcyIsCisJCQkJCQkJV1RFUk1TSUcocmMpLCBwZ19zdHJz aWduYWwoV1RFUk1TSUcocmMpKSksCisJCQkJCSBlcnJkZXRhaWwoIlRoZSBmYWlsZWQgYXJjaGl2 ZSBjb21tYW5kIHdhczogJXMiLAorCQkJCQkJCSAgIHhsb2dhcmNoY21kKSkpOworI2VuZGlmCisJ CX0KKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KGxldiwKKwkJCQkJKGVycm1zZygiYXJjaGl2ZSBj b21tYW5kIGV4aXRlZCB3aXRoIHVucmVjb2duaXplZCBzdGF0dXMgJWQiLAorCQkJCQkJCXJjKSwK KwkJCQkJIGVycmRldGFpbCgiVGhlIGZhaWxlZCBhcmNoaXZlIGNvbW1hbmQgd2FzOiAlcyIsCisJ CQkJCQkJICAgeGxvZ2FyY2hjbWQpKSk7CisJCX0KKworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJ ZWxvZyhERUJVRzEsICJhcmNoaXZlZCB3cml0ZS1haGVhZCBsb2cgZmlsZSBcIiVzXCIiLCBmaWxl KTsKKwlyZXR1cm4gdHJ1ZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQv bWlzY2luaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYwppbmRleCA4ODgw MTM3NGI1Li45ZjI3NjZlZDA0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9pbml0L21p c2Npbml0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jCkBAIC0zOCw2 ICszOCw3IEBACiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9hdXRv dmFjdXVtLmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKKyNpbmNsdWRlICJw b3N0bWFzdGVyL3BnYXJjaC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oIgog I2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgpAQCAtMTYx NCw2ICsxNjE1LDkgQEAgY2hhcgkgICAqbG9jYWxfcHJlbG9hZF9saWJyYXJpZXNfc3RyaW5nID0g TlVMTDsKIC8qIEZsYWcgdGVsbGluZyB0aGF0IHdlIGFyZSBsb2FkaW5nIHNoYXJlZF9wcmVsb2Fk X2xpYnJhcmllcyAqLwogYm9vbAkJcHJvY2Vzc19zaGFyZWRfcHJlbG9hZF9saWJyYXJpZXNfaW5f cHJvZ3Jlc3MgPSBmYWxzZTsKIAorLyogRmxhZyB0ZWxsaW5nIHRoYXQgd2UgYXJlIGxvYWRpbmcg YXJjaGl2ZV9saWJyYXJ5ICovCitib29sCQlwcm9jZXNzX2FyY2hpdmVfbGlicmFyeV9pbl9wcm9n cmVzcyA9IGZhbHNlOworCiAvKgogICogbG9hZCB0aGUgc2hhcmVkIGxpYnJhcmllcyBsaXN0ZWQg aW4gJ2xpYnJhcmllcycKICAqCkBAIC0xNjk2LDYgKzE3MDAsMjkgQEAgcHJvY2Vzc19zZXNzaW9u X3ByZWxvYWRfbGlicmFyaWVzKHZvaWQpCiAJCQkJICAgdHJ1ZSk7CiB9CiAKKy8qCisgKiBwcm9j ZXNzIHRoZSBhcmNoaXZlIGxpYnJhcnkKKyAqLwordm9pZAorcHJvY2Vzc19hcmNoaXZlX2xpYnJh cnkodm9pZCkKK3sKKwlwcm9jZXNzX2FyY2hpdmVfbGlicmFyeV9pbl9wcm9ncmVzcyA9IHRydWU7 CisKKwkvKgorCSAqIFRoZSBzaGVsbCBhcmNoaXZpbmcgY29kZSBpcyBpbiB0aGUgY29yZSBzZXJ2 ZXIsIHNvIHRoZXJlJ3Mgbm90aGluZworCSAqIHRvIGxvYWQgZm9yIHRoYXQuCisJICovCisJaWYg KCFTaGVsbEFyY2hpdmluZ0VuYWJsZWQoKSkKKwl7CisJCWxvYWRfZmlsZShYTG9nQXJjaGl2ZUxp YnJhcnksIGZhbHNlKTsKKwkJZXJlcG9ydChERUJVRzEsCisJCQkJKGVycm1zZ19pbnRlcm5hbCgi bG9hZGVkIGFyY2hpdmUgbGlicmFyeSBcIiVzXCIiLAorCQkJCQkJCQkgWExvZ0FyY2hpdmVMaWJy YXJ5KSkpOworCX0KKworCXByb2Nlc3NfYXJjaGl2ZV9saWJyYXJ5X2luX3Byb2dyZXNzID0gZmFs c2U7Cit9CisKIHZvaWQKIHBnX2JpbmR0ZXh0ZG9tYWluKGNvbnN0IGNoYXIgKmRvbWFpbikKIHsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91 dGlscy9taXNjL2d1Yy5jCmluZGV4IGU5MWQ1YTNjZmQuLjkyMDRmNjA4ZmMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWMuYwpAQCAtMzg2NCwxMyArMzg2NCwyMyBAQCBzdGF0aWMgc3RydWN0IGNvbmZpZ19zdHJp bmcgQ29uZmlndXJlTmFtZXNTdHJpbmdbXSA9CiAJewogCQl7ImFyY2hpdmVfY29tbWFuZCIsIFBH Q19TSUdIVVAsIFdBTF9BUkNISVZJTkcsCiAJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIHNoZWxs IGNvbW1hbmQgdGhhdCB3aWxsIGJlIGNhbGxlZCB0byBhcmNoaXZlIGEgV0FMIGZpbGUuIiksCi0J CQlOVUxMCisJCQlnZXR0ZXh0X25vb3AoIlRoaXMgaXMgdW51c2VkIGlmIFwiYXJjaGl2ZV9saWJy YXJ5XCIgZG9lcyBub3QgaW5kaWNhdGUgYXJjaGl2aW5nIHZpYSBzaGVsbCBpcyBlbmFibGVkLiIp CiAJCX0sCiAJCSZYTG9nQXJjaGl2ZUNvbW1hbmQsCiAJCSIiLAogCQlOVUxMLCBOVUxMLCBzaG93 X2FyY2hpdmVfY29tbWFuZAogCX0sCiAKKwl7CisJCXsiYXJjaGl2ZV9saWJyYXJ5IiwgUEdDX1BP U1RNQVNURVIsIFdBTF9BUkNISVZJTkcsCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIGxpYnJh cnkgdGhhdCB3aWxsIGJlIGNhbGxlZCB0byBhcmNoaXZlIGEgV0FMIGZpbGUuIiksCisJCQlnZXR0 ZXh0X25vb3AoIkEgdmFsdWUgb2YgXCJzaGVsbFwiIG9yIGFuIGVtcHR5IHN0cmluZyBpbmRpY2F0 ZXMgdGhhdCBcImFyY2hpdmVfY29tbWFuZFwiIHNob3VsZCBiZSB1c2VkLiIpCisJCX0sCisJCSZY TG9nQXJjaGl2ZUxpYnJhcnksCisJCSJzaGVsbCIsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAor CiAJewogCQl7InJlc3RvcmVfY29tbWFuZCIsIFBHQ19TSUdIVVAsIFdBTF9BUkNISVZFX1JFQ09W RVJZLAogCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBzaGVsbCBjb21tYW5kIHRoYXQgd2lsbCBi ZSBjYWxsZWQgdG8gcmV0cmlldmUgYW4gYXJjaGl2ZWQgV0FMIGZpbGUuIiksCkBAIC04OTYxLDcg Kzg5NzEsOCBAQCBpbml0X2N1c3RvbV92YXJpYWJsZShjb25zdCBjaGFyICpuYW1lLAogCSAqIG1v ZHVsZSBtaWdodCBhbHJlYWR5IGhhdmUgaG9va2VkIGludG8uCiAJICovCiAJaWYgKGNvbnRleHQg PT0gUEdDX1BPU1RNQVNURVIgJiYKLQkJIXByb2Nlc3Nfc2hhcmVkX3ByZWxvYWRfbGlicmFyaWVz X2luX3Byb2dyZXNzKQorCQkhcHJvY2Vzc19zaGFyZWRfcHJlbG9hZF9saWJyYXJpZXNfaW5fcHJv Z3Jlc3MgJiYKKwkJIXByb2Nlc3NfYXJjaGl2ZV9saWJyYXJ5X2luX3Byb2dyZXNzKQogCQllbG9n KEZBVEFMLCAiY2Fubm90IGNyZWF0ZSBQR0NfUE9TVE1BU1RFUiB2YXJpYWJsZXMgYWZ0ZXIgc3Rh cnR1cCIpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZQppbmRleCAxY2JjOWZlZWI2Li5kYzRhMjBiMDE0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC0yNDUsNiArMjQ1LDcgQEAKIAog I2FyY2hpdmVfbW9kZSA9IG9mZgkJIyBlbmFibGVzIGFyY2hpdmluZzsgb2ZmLCBvbiwgb3IgYWx3 YXlzCiAJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCisjYXJjaGl2ZV9saWJyYXJ5ID0g J3NoZWxsJwkjIGxpYnJhcnkgdG8gdXNlIHRvIGFyY2hpdmUgYSBsb2dmaWxlIHNlZ21lbnQKICNh cmNoaXZlX2NvbW1hbmQgPSAnJwkJIyBjb21tYW5kIHRvIHVzZSB0byBhcmNoaXZlIGEgbG9nZmls ZSBzZWdtZW50CiAJCQkJIyBwbGFjZWhvbGRlcnM6ICVwID0gcGF0aCBvZiBmaWxlIHRvIGFyY2hp dmUKIAkJCQkjICAgICAgICAgICAgICAgJWYgPSBmaWxlIG5hbWUgb25seQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5k ZXggNWUyYzk0YTA1Zi4uNzA5M2UzMzkwZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0xNTcsNyArMTU3LDYg QEAgZXh0ZXJuIFBHRExMSU1QT1JUIGludCB3YWxfbGV2ZWw7CiAvKiBJcyBXQUwgYXJjaGl2aW5n IGVuYWJsZWQgYWx3YXlzIChldmVuIGR1cmluZyByZWNvdmVyeSk/ICovCiAjZGVmaW5lIFhMb2dB cmNoaXZpbmdBbHdheXMoKSBcCiAJKEFzc2VydE1hY3JvKFhMb2dBcmNoaXZlTW9kZSA9PSBBUkNI SVZFX01PREVfT0ZGIHx8IHdhbF9sZXZlbCA+PSBXQUxfTEVWRUxfUkVQTElDQSksIFhMb2dBcmNo aXZlTW9kZSA9PSBBUkNISVZFX01PREVfQUxXQVlTKQotI2RlZmluZSBYTG9nQXJjaGl2ZUNvbW1h bmRTZXQoKSAoWExvZ0FyY2hpdmVDb21tYW5kWzBdICE9ICdcMCcpCiAKIC8qCiAgKiBJcyBXQUwt bG9nZ2luZyBuZWNlc3NhcnkgZm9yIGFyY2hpdmFsIG9yIGxvZy1zaGlwcGluZywgb3IgY2FuIHdl IHNraXAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oIGIvc3JjL2luY2x1ZGUv bWlzY2FkbWluLmgKaW5kZXggOTBhMzAxNjA2NS4uODcxN2ZlZDBkYyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbWlzY2FkbWluLmgKKysrIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKQEAgLTQ2 NCw2ICs0NjQsNyBAQCBleHRlcm4gdm9pZCBCYXNlSW5pdCh2b2lkKTsKIC8qIGluIHV0aWxzL2lu aXQvbWlzY2luaXQuYyAqLwogZXh0ZXJuIGJvb2wgSWdub3JlU3lzdGVtSW5kZXhlczsKIGV4dGVy biBQR0RMTElNUE9SVCBib29sIHByb2Nlc3Nfc2hhcmVkX3ByZWxvYWRfbGlicmFyaWVzX2luX3By b2dyZXNzOworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgcHJvY2Vzc19hcmNoaXZlX2xpYnJhcnlf aW5fcHJvZ3Jlc3M7CiBleHRlcm4gY2hhciAqc2Vzc2lvbl9wcmVsb2FkX2xpYnJhcmllc19zdHJp bmc7CiBleHRlcm4gY2hhciAqc2hhcmVkX3ByZWxvYWRfbGlicmFyaWVzX3N0cmluZzsKIGV4dGVy biBjaGFyICpsb2NhbF9wcmVsb2FkX2xpYnJhcmllc19zdHJpbmc7CkBAIC00NzcsNiArNDc4LDcg QEAgZXh0ZXJuIGJvb2wgUmVjaGVja0RhdGFEaXJMb2NrRmlsZSh2b2lkKTsKIGV4dGVybiB2b2lk IFZhbGlkYXRlUGdWZXJzaW9uKGNvbnN0IGNoYXIgKnBhdGgpOwogZXh0ZXJuIHZvaWQgcHJvY2Vz c19zaGFyZWRfcHJlbG9hZF9saWJyYXJpZXModm9pZCk7CiBleHRlcm4gdm9pZCBwcm9jZXNzX3Nl c3Npb25fcHJlbG9hZF9saWJyYXJpZXModm9pZCk7CitleHRlcm4gdm9pZCBwcm9jZXNzX2FyY2hp dmVfbGlicmFyeSh2b2lkKTsKIGV4dGVybiB2b2lkIHBnX2JpbmR0ZXh0ZG9tYWluKGNvbnN0IGNo YXIgKmRvbWFpbik7CiBleHRlcm4gYm9vbCBoYXNfcm9scmVwbGljYXRpb24oT2lkIHJvbGVpZCk7 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcGdhcmNoLmggYi9zcmMvaW5j bHVkZS9wb3N0bWFzdGVyL3BnYXJjaC5oCmluZGV4IDFlNDdhMTQzZTEuLjdkMDlkMjY2NWUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcGdhcmNoLmgKKysrIGIvc3JjL2luY2x1 ZGUvcG9zdG1hc3Rlci9wZ2FyY2guaApAQCAtMzIsNCArMzIsNDkgQEAgZXh0ZXJuIGJvb2wgUGdB cmNoQ2FuUmVzdGFydCh2b2lkKTsKIGV4dGVybiB2b2lkIFBnQXJjaGl2ZXJNYWluKHZvaWQpIHBn X2F0dHJpYnV0ZV9ub3JldHVybigpOwogZXh0ZXJuIHZvaWQgUGdBcmNoV2FrZXVwKHZvaWQpOwog CisvKgorICogVGhlIHZhbHVlIG9mIHRoZSBhcmNoaXZlX2xpYnJhcnkgR1VDLgorICovCitleHRl cm4gY2hhciAqWExvZ0FyY2hpdmVMaWJyYXJ5OworCisvKgorICogQ2FsbGJhY2sgdGhhdCBnZXRz IGNhbGxlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGFyY2hpdmUgbW9kdWxlIGlzCisgKiBjb25maWd1 cmVkLgorICovCit0eXBlZGVmIGJvb2wgKCpBcmNoaXZlQ2hlY2tDb25maWd1cmVkQ0IpICh2b2lk KTsKKworLyoKKyAqIENhbGxiYWNrIGNhbGxlZCB0byBhcmNoaXZlIGEgc2luZ2xlIFdBTCBmaWxl LgorICovCit0eXBlZGVmIGJvb2wgKCpBcmNoaXZlRmlsZUNCKSAoY29uc3QgY2hhciAqZmlsZSwg Y29uc3QgY2hhciAqcGF0aCk7CisKKy8qCisgKiBBcmNoaXZlIG1vZHVsZSBjYWxsYmFja3MKKyAq LwordHlwZWRlZiBzdHJ1Y3QgQXJjaGl2ZU1vZHVsZUNhbGxiYWNrcworeworCUFyY2hpdmVDaGVj a0NvbmZpZ3VyZWRDQiBjaGVja19jb25maWd1cmVkX2NiOworCUFyY2hpdmVGaWxlQ0IgYXJjaGl2 ZV9maWxlX2NiOworfSBBcmNoaXZlTW9kdWxlQ2FsbGJhY2tzOworCisvKgorICogVHlwZSBvZiB0 aGUgc2hhcmVkIGxpYnJhcnkgc3ltYm9sIF9QR19hcmNoaXZlX21vZHVsZV9pbml0IHRoYXQgaXMg bG9va2VkCisgKiB1cCB3aGVuIGxvYWRpbmcgYW4gYXJjaGl2ZSBsaWJyYXJ5LgorICovCit0eXBl ZGVmIHZvaWQgKCpBcmNoaXZlTW9kdWxlSW5pdCkgKEFyY2hpdmVNb2R1bGVDYWxsYmFja3MgKmNi KTsKKworLyoKKyAqIFNpbmNlIHRoZSBsb2dpYyBmb3IgYXJjaGl2aW5nIHZpYSBhIHNoZWxsIGNv bW1hbmQgaXMgaW4gdGhlIGNvcmUgc2VydmVyCisgKiBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSBs b2FkZWQgdmlhIGEgc2hhcmVkIGxpYnJhcnksIGl0IGhhcyBhIHNwZWNpYWwKKyAqIGluaXRpYWxp emF0aW9uIGZ1bmN0aW9uLgorICovCitleHRlcm4gdm9pZCBzaGVsbF9hcmNoaXZlX2luaXQoQXJj aGl2ZU1vZHVsZUNhbGxiYWNrcyAqY2IpOworCisvKgorICogV2UgY29uc2lkZXIgYXJjaGl2aW5n IHZpYSBzaGVsbCB0byBiZSBlbmFibGVkIGlmIGFyY2hpdmVfbGlicmFyeSBpcworICogZW1wdHkg b3IgaWYgYXJjaGl2ZV9saWJyYXJ5IGlzIHNldCB0byAic2hlbGwiLgorICovCisjZGVmaW5lIFNo ZWxsQXJjaGl2aW5nRW5hYmxlZCgpIFwKKwkoWExvZ0FyY2hpdmVMaWJyYXJ5WzBdID09ICdcMCcg fHwgc3RyY21wKFhMb2dBcmNoaXZlTGlicmFyeSwgInNoZWxsIikgPT0gMCkKKwogI2VuZGlmCQkJ CQkJCS8qIF9QR0FSQ0hfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmls ZSBiL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKaW5kZXggZGZmYzc5YjJkOS4uYjQ5ZTUwOGEy YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9t b2R1bGVzL01ha2VmaWxlCkBAIC01LDYgKzUsNyBAQCB0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLgog aW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAogCiBTVUJESVJTID0g XAorCQkgIGJhc2ljX2FyY2hpdmUgXAogCQkgIGJyaW4gXAogCQkgIGNvbW1pdF90cyBcCiAJCSAg ZGVsYXlfZXhlY3V0aW9uIFwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvYmFzaWNfYXJj aGl2ZS8uZ2l0aWdub3JlIGIvc3JjL3Rlc3QvbW9kdWxlcy9iYXNpY19hcmNoaXZlLy5naXRpZ25v cmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNWRjYjNmZjk3MgotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS8uZ2l0aWdub3Jl CkBAIC0wLDAgKzEsNCBAQAorIyBHZW5lcmF0ZWQgc3ViZGlyZWN0b3JpZXMKKy9sb2cvCisvcmVz dWx0cy8KKy90bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2Jhc2ljX2Fy Y2hpdmUvTWFrZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL2Jhc2ljX2FyY2hpdmUvTWFrZWZpbGUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZmZiZjg0NmI2OAotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9NYWtlZmlsZQpAQCAt MCwwICsxLDIwIEBACisjIHNyYy90ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9NYWtlZmlsZQor CitNT0RVTEVTID0gYmFzaWNfYXJjaGl2ZQorUEdGSUxFREVTQyA9ICJiYXNpY19hcmNoaXZlIC0g YmFzaWMgYXJjaGl2ZSBtb2R1bGUiCisKK1JFR1JFU1MgPSBiYXNpY19hcmNoaXZlCitSRUdSRVNT X09QVFMgPSAtLXRlbXAtY29uZmlnICQodG9wX3NyY2Rpcikvc3JjL3Rlc3QvbW9kdWxlcy9iYXNp Y19hcmNoaXZlL2Jhc2ljX2FyY2hpdmUuY29uZgorCitOT19JTlNUQUxMQ0hFQ0sgPSAxCisKK2lm ZGVmIFVTRV9QR1hTCitQR19DT05GSUcgPSBwZ19jb25maWcKK1BHWFMgOj0gJChzaGVsbCAkKFBH X0NPTkZJRykgLS1wZ3hzKQoraW5jbHVkZSAkKFBHWFMpCitlbHNlCitzdWJkaXIgPSBzcmMvdGVz dC9tb2R1bGVzL2Jhc2ljX2FyY2hpdmUKK3RvcF9idWlsZGRpciA9IC4uLy4uLy4uLy4uCitpbmNs dWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCitpbmNsdWRlICQodG9wX3Ny Y2RpcikvY29udHJpYi9jb250cmliLWdsb2JhbC5taworZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9iYXNpY19hcmNoaXZlLmMgYi9zcmMvdGVzdC9tb2R1 bGVzL2Jhc2ljX2FyY2hpdmUvYmFzaWNfYXJjaGl2ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjMyMjA0OWQ0NWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9t b2R1bGVzL2Jhc2ljX2FyY2hpdmUvYmFzaWNfYXJjaGl2ZS5jCkBAIC0wLDAgKzEsMTg5IEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBiYXNpY19hcmNoaXZlLmMKKyAqCisgKiBUaGlzIGZp bGUgZGVtb25zdHJhdGVzIGEgYmFzaWMgYXJjaGl2ZSBsaWJyYXJ5IGltcGxlbWVudGF0aW9uIHRo YXQgaXMKKyAqIHJvdWdobHkgZXF1aXZhbGVudCB0byB0aGUgZm9sbG93aW5nIHNoZWxsIGNvbW1h bmQ6CisgKgorICogCQl0ZXN0ICEgLWYgL3BhdGgvdG8vZGVzdCAmJiBjcCAvcGF0aC90by9zcmMg L3BhdGgvdG8vZGVzdAorICoKKyAqIE9uZSBub3RhYmxlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlz IG1vZHVsZSBhbmQgdGhlIHNoZWxsIGNvbW1hbmQgYWJvdmUKKyAqIGlzIHRoYXQgdGhpcyBtb2R1 bGUgZmlyc3QgY29waWVzIHRoZSBmaWxlIHRvIGEgdGVtcG9yYXJ5IGRlc3RpbmF0aW9uLAorICog c3luY3MgaXQgdG8gZGlzaywgYW5kIHRoZW4gZHVyYWJseSBtb3ZlcyBpdCB0byB0aGUgZmluYWwg ZGVzdGluYXRpb24uCisgKgorICogQ29weXJpZ2h0IChjKSAyMDIxLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy90ZXN0 L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9iYXNpY19hcmNoaXZlLmMKKyAqCisgKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlIDxzeXMvc3RhdC5o PgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVk ZSAicG9zdG1hc3Rlci9wZ2FyY2guaCIKKyNpbmNsdWRlICJzdG9yYWdlL2NvcHlkaXIuaCIKKyNp bmNsdWRlICJzdG9yYWdlL2ZkLmgiCisjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCisKK1BHX01PRFVM RV9NQUdJQzsKKwordm9pZCBfUEdfaW5pdCh2b2lkKTsKK3ZvaWQgX1BHX2FyY2hpdmVfbW9kdWxl X2luaXQoQXJjaGl2ZU1vZHVsZUNhbGxiYWNrcyAqY2IpOworCitzdGF0aWMgY2hhciAqYXJjaGl2 ZV9kaXJlY3RvcnkgPSBOVUxMOworCitzdGF0aWMgYm9vbCBiYXNpY19hcmNoaXZlX2NvbmZpZ3Vy ZWQodm9pZCk7CitzdGF0aWMgYm9vbCBiYXNpY19hcmNoaXZlX2ZpbGUoY29uc3QgY2hhciAqZmls ZSwgY29uc3QgY2hhciAqcGF0aCk7CitzdGF0aWMgYm9vbCBjaGVja19hcmNoaXZlX2RpcmVjdG9y eShjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOworCisvKgor ICogX1BHX2luaXQKKyAqCisgKiBEZWZpbmVzIHRoZSBtb2R1bGUncyBHVUMuCisgKi8KK3ZvaWQK K19QR19pbml0KHZvaWQpCit7CisJaWYgKCFwcm9jZXNzX2FyY2hpdmVfbGlicmFyeV9pbl9wcm9n cmVzcykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJybXNnKCJcImJhc2ljX2FyY2hpdmVcIiBj YW4gb25seSBiZSBsb2FkZWQgdmlhIFwiYXJjaGl2ZV9saWJyYXJ5XCIiKSkpOworCisJRGVmaW5l Q3VzdG9tU3RyaW5nVmFyaWFibGUoImJhc2ljX2FyY2hpdmUuYXJjaGl2ZV9kaXJlY3RvcnkiLAor CQkJCQkJCSAgIGdldHRleHRfbm9vcCgiQXJjaGl2ZSBmaWxlIGRlc3RpbmF0aW9uIGRpcmVjdG9y eS4iKSwKKwkJCQkJCQkgICBOVUxMLAorCQkJCQkJCSAgICZhcmNoaXZlX2RpcmVjdG9yeSwKKwkJ CQkJCQkgICAiIiwKKwkJCQkJCQkgICBQR0NfU0lHSFVQLAorCQkJCQkJCSAgIDAsCisJCQkJCQkJ ICAgY2hlY2tfYXJjaGl2ZV9kaXJlY3RvcnksIE5VTEwsIE5VTEwpOworCisJRW1pdFdhcm5pbmdz T25QbGFjZWhvbGRlcnMoImJhc2ljX2FyY2hpdmUiKTsKK30KKworLyoKKyAqIF9QR19hcmNoaXZl X21vZHVsZV9pbml0CisgKgorICogUmV0dXJucyB0aGUgbW9kdWxlJ3MgYXJjaGl2aW5nIGNhbGxi YWNrcy4KKyAqLwordm9pZAorX1BHX2FyY2hpdmVfbW9kdWxlX2luaXQoQXJjaGl2ZU1vZHVsZUNh bGxiYWNrcyAqY2IpCit7CisJQXNzZXJ0VmFyaWFibGVJc09mVHlwZSgmX1BHX2FyY2hpdmVfbW9k dWxlX2luaXQsIEFyY2hpdmVNb2R1bGVJbml0KTsKKworCWNiLT5jaGVja19jb25maWd1cmVkX2Ni ID0gYmFzaWNfYXJjaGl2ZV9jb25maWd1cmVkOworCWNiLT5hcmNoaXZlX2ZpbGVfY2IgPSBiYXNp Y19hcmNoaXZlX2ZpbGU7Cit9CisKKy8qCisgKiBjaGVja19hcmNoaXZlX2RpcmVjdG9yeQorICoK KyAqIENoZWNrcyB0aGF0IHRoZSBwcm92aWRlZCBhcmNoaXZlIGRpcmVjdG9yeSBleGlzdHMuCisg Ki8KK3N0YXRpYyBib29sCitjaGVja19hcmNoaXZlX2RpcmVjdG9yeShjaGFyICoqbmV3dmFsLCB2 b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCit7CisJc3RydWN0IHN0YXQgc3Q7CisKKwkv KgorCSAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGFuIGVtcHR5IHN0cmluZywgc28gd2UgaGF2ZSB0 byBhY2NlcHQgdGhhdCB2YWx1ZS4KKwkgKiBPdXIgY2hlY2tfY29uZmlndXJlZCBjYWxsYmFjayBh bHNvIGNoZWNrcyBmb3IgdGhpcyBhbmQgcHJldmVudHMgYXJjaGl2aW5nCisJICogZnJvbSBwcm9j ZWVkaW5nIGlmIGl0IGlzIHN0aWxsIGVtcHR5LgorCSAqLworCWlmICgqbmV3dmFsID09IE5VTEwg fHwgKm5ld3ZhbFswXSA9PSAnXDAnKQorCQlyZXR1cm4gdHJ1ZTsKKworCS8qCisJICogTWFrZSBz dXJlIHRoZSBmaWxlIHBhdGhzIHdvbid0IGJlIHRvbyBsb25nLiAgVGhlIGRvY3MgaW5kaWNhdGUg dGhhdCB0aGUKKwkgKiBmaWxlIG5hbWVzIHRvIGJlIGFyY2hpdmVkIGNhbiBiZSB1cCB0byA2NCBj aGFyYWN0ZXJzIGxvbmcuCisJICovCisJaWYgKHN0cmxlbigqbmV3dmFsKSArIDY0ICsgMiA+PSBN QVhQR1BBVEgpCisJeworCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJhcmNoaXZlIGRpcmVjdG9yeSB0 b28gbG9uZyIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyoKKwkgKiBEbyBhIGJhc2ljIHNh bml0eSBjaGVjayB0aGF0IHRoZSBzcGVjaWZpZWQgYXJjaGl2ZSBkaXJlY3RvcnkgZXhpc3RzLiAg SXQKKwkgKiBjb3VsZCBiZSByZW1vdmVkIGF0IHNvbWUgcG9pbnQgaW4gdGhlIGZ1dHVyZSwgc28g d2Ugc3RpbGwgbmVlZCB0byBiZQorCSAqIHByZXBhcmVkIGZvciBpdCBub3QgdG8gZXhpc3QgaW4g dGhlIGFjdHVhbCBhcmNoaXZpbmcgbG9naWMuCisJICovCisJaWYgKHN0YXQoKm5ld3ZhbCwgJnN0 KSAhPSAwIHx8ICFTX0lTRElSKHN0LnN0X21vZGUpKQorCXsKKwkJR1VDX2NoZWNrX2VycmRldGFp bCgic3BlY2lmaWVkIGFyY2hpdmUgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0Iik7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIGJhc2ljX2FyY2hpdmVf Y29uZmlndXJlZAorICoKKyAqIENoZWNrcyB0aGF0IGFyY2hpdmVfZGlyZWN0b3J5IGlzIG5vdCBi bGFuay4KKyAqLworc3RhdGljIGJvb2wKK2Jhc2ljX2FyY2hpdmVfY29uZmlndXJlZCh2b2lkKQor eworCXJldHVybiBhcmNoaXZlX2RpcmVjdG9yeSAhPSBOVUxMICYmIGFyY2hpdmVfZGlyZWN0b3J5 WzBdICE9ICdcMCc7Cit9CisKKy8qCisgKiBiYXNpY19hcmNoaXZlX2ZpbGUKKyAqCisgKiBBcmNo aXZlcyBvbmUgZmlsZS4KKyAqLworc3RhdGljIGJvb2wKK2Jhc2ljX2FyY2hpdmVfZmlsZShjb25z dCBjaGFyICpmaWxlLCBjb25zdCBjaGFyICpwYXRoKQoreworCWNoYXIgZGVzdGluYXRpb25bTUFY UEdQQVRIXTsKKwljaGFyIHRlbXBbTUFYUEdQQVRIXTsKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCWVy ZXBvcnQoREVCVUczLAorCQkJKGVycm1zZygiYXJjaGl2aW5nIFwiJXNcIiB2aWEgYmFzaWNfYXJj aGl2ZSIsIGZpbGUpKSk7CisKKwlzbnByaW50ZihkZXN0aW5hdGlvbiwgTUFYUEdQQVRILCAiJXMv JXMiLCBhcmNoaXZlX2RpcmVjdG9yeSwgZmlsZSk7CisJc25wcmludGYodGVtcCwgTUFYUEdQQVRI LCAiJXMvJXMiLCBhcmNoaXZlX2RpcmVjdG9yeSwgImFyY2h0ZW1wIik7CisKKwkvKgorCSAqIEZp cnN0LCBjaGVjayBpZiB0aGUgZmlsZSBoYXMgYWxyZWFkeSBiZWVuIGFyY2hpdmVkLiAgSWYgdGhl IGFyY2hpdmUgZmlsZQorCSAqIGFscmVhZHkgZXhpc3RzLCBzb21ldGhpbmcgbWlnaHQgYmUgd3Jv bmcsIHNvIHdlIGp1c3QgZmFpbC4KKwkgKi8KKwlpZiAoc3RhdChkZXN0aW5hdGlvbiwgJnN0KSA9 PSAwKQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJtc2coImFyY2hpdmUgZmlsZSBc IiVzXCIgYWxyZWFkeSBleGlzdHMiLCBkZXN0aW5hdGlvbikpKTsKKwkJcmV0dXJuIGZhbHNlOwor CX0KKwllbHNlIGlmIChlcnJubyAhPSBFTk9FTlQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCisJCQkJIGVycm1zZygiY291bGQgbm90IHN0YXQgZmls ZSBcIiVzXCI6ICVtIiwgZGVzdGluYXRpb24pKSk7CisKKwkvKgorCSAqIFJlbW92ZSBwcmUtZXhp c3RpbmcgdGVtcG9yYXJ5IGZpbGUsIGlmIG9uZSBleGlzdHMuCisJICovCisJaWYgKHVubGluayh0 ZW1wKSAhPSAwICYmIGVycm5vICE9IEVOT0VOVCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKKwkJCQkgZXJybXNnKCJjb3VsZCBub3QgdW5saW5rIGZp bGUgXCIlc1wiOiAlbSIsIHRlbXApKSk7CisKKwkvKgorCSAqIENvcHkgdGhlIGZpbGUgdG8gaXRz IHRlbXBvcmFyeSBkZXN0aW5hdGlvbi4KKwkgKi8KKwljb3B5X2ZpbGUodW5jb25zdGlmeShjaGFy ICosIHBhdGgpLCB0ZW1wKTsKKworCS8qCisJICogU3luYyB0aGUgdGVtcG9yYXJ5IGZpbGUgdG8g ZGlzayBhbmQgbW92ZSBpdCB0byBpdHMgZmluYWwgZGVzdGluYXRpb24uCisJICovCisJKHZvaWQp IGR1cmFibGVfcmVuYW1lX2V4Y2wodGVtcCwgZGVzdGluYXRpb24sIEVSUk9SKTsKKworCWVyZXBv cnQoREVCVUcxLAorCQkJKGVycm1zZygiYXJjaGl2ZWQgXCIlc1wiIHZpYSBiYXNpY19hcmNoaXZl IiwgZmlsZSkpKTsKKworCXJldHVybiB0cnVlOworfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9k dWxlcy9iYXNpY19hcmNoaXZlL2Jhc2ljX2FyY2hpdmUuY29uZiBiL3NyYy90ZXN0L21vZHVsZXMv YmFzaWNfYXJjaGl2ZS9iYXNpY19hcmNoaXZlLmNvbmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uYjI2YjJkNDE0NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21v ZHVsZXMvYmFzaWNfYXJjaGl2ZS9iYXNpY19hcmNoaXZlLmNvbmYKQEAgLTAsMCArMSwzIEBACith cmNoaXZlX21vZGUgPSAnb24nCithcmNoaXZlX2xpYnJhcnkgPSAnYmFzaWNfYXJjaGl2ZScKK2Jh c2ljX2FyY2hpdmUuYXJjaGl2ZV9kaXJlY3RvcnkgPSAnLicKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9leHBlY3RlZC9iYXNpY19hcmNoaXZlLm91dCBiL3NyYy90 ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9leHBlY3RlZC9iYXNpY19hcmNoaXZlLm91dApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wMDE1MDUzZTBmCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9iYXNpY19hcmNoaXZlL2V4cGVjdGVkL2Jhc2ljX2Fy Y2hpdmUub3V0CkBAIC0wLDAgKzEsMjkgQEAKK0NSRUFURSBUQUJMRSB0ZXN0IChhIElOVCk7CitT RUxFQ1QgMSBGUk9NIHBnX3N3aXRjaF93YWwoKTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAg ICAgICAgMQorKDEgcm93KQorCitETyAkJAorREVDTEFSRQorCWFyY2hpdmVkIGJvb2w7CisJbG9v cHMgaW50IDo9IDA7CitCRUdJTgorCUxPT1AKKwkJYXJjaGl2ZWQgOj0gY291bnQoKikgPiAwIEZS T00gcGdfbHNfZGlyKCcuJywgZmFsc2UsIGZhbHNlKSBhCisJCQlXSEVSRSBhIH4gJ15bMC05QS1G XXsyNH0kJzsKKwkJSUYgYXJjaGl2ZWQgT1IgbG9vcHMgPiAxMjAgKiAxMCBUSEVOIEVYSVQ7IEVO RCBJRjsKKwkJUEVSRk9STSBwZ19zbGVlcCgwLjEpOworCQlsb29wcyA6PSBsb29wcyArIDE7CisJ RU5EIExPT1A7CitFTkQKKyQkOworU0VMRUNUIGNvdW50KCopID4gMCBGUk9NIHBnX2xzX2Rpcign LicsIGZhbHNlLCBmYWxzZSkgYQorCVdIRVJFIGEgfiAnXlswLTlBLUZdezI0fSQnOworID9jb2x1 bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBUQUJMRSB0ZXN0OwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9iYXNpY19hcmNoaXZlL3NxbC9iYXNpY19hcmNoaXZlLnNx bCBiL3NyYy90ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9zcWwvYmFzaWNfYXJjaGl2ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMTRlMjM2ZDU3YQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvYmFzaWNfYXJjaGl2ZS9zcWwvYmFzaWNfYXJj aGl2ZS5zcWwKQEAgLTAsMCArMSwyMiBAQAorQ1JFQVRFIFRBQkxFIHRlc3QgKGEgSU5UKTsKK1NF TEVDVCAxIEZST00gcGdfc3dpdGNoX3dhbCgpOworCitETyAkJAorREVDTEFSRQorCWFyY2hpdmVk IGJvb2w7CisJbG9vcHMgaW50IDo9IDA7CitCRUdJTgorCUxPT1AKKwkJYXJjaGl2ZWQgOj0gY291 bnQoKikgPiAwIEZST00gcGdfbHNfZGlyKCcuJywgZmFsc2UsIGZhbHNlKSBhCisJCQlXSEVSRSBh IH4gJ15bMC05QS1GXXsyNH0kJzsKKwkJSUYgYXJjaGl2ZWQgT1IgbG9vcHMgPiAxMjAgKiAxMCBU SEVOIEVYSVQ7IEVORCBJRjsKKwkJUEVSRk9STSBwZ19zbGVlcCgwLjEpOworCQlsb29wcyA6PSBs b29wcyArIDE7CisJRU5EIExPT1A7CitFTkQKKyQkOworCitTRUxFQ1QgY291bnQoKikgPiAwIEZS T00gcGdfbHNfZGlyKCcuJywgZmFsc2UsIGZhbHNlKSBhCisJV0hFUkUgYSB+ICdeWzAtOUEtRl17 MjR9JCc7CisKK0RST1AgVEFCTEUgdGVzdDsKLS0gCjIuMTYuNgoK --_002_668D2428F73B475E87AEF89D67942270amazoncom_--