From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: passt.top; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=lNC0G8bg; dkim-atps=neutral Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by passt.top (Postfix) with ESMTPS id 3D5985A0262 for ; Mon, 06 Jul 2026 10:06:57 +0200 (CEST) Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-493d92b7db3so9812885e9.2 for ; Mon, 06 Jul 2026 01:06:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783325217; x=1783930017; darn=passt.top; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=1UdwluaGSndHe48+A8DVxKdfpD8TGgGU/uWfIOUyEJI=; b=lNC0G8bg80pk/5dP4AFlJLZklY1FWFV9h+tBHDBdBH6BXnybJjDxcS8gZbjT19kfy6 EeVox2VZke2njaaZ6hhCKw65Jtz9WV0RlDcR4ajmlfKt9t9BXuMClnIvyrTiBVz9e/+Z YEG5+nZfAie93mPTSw4MxbgIvK40TVf1PCDNntR/6/cgOed+eGyhUffexQduifTOUCzS Ytrvyzs0IKgMbhZqDNfTuIRPpPZwuTvvSApbgvSqhy41DqTVZNNvrI6TuGeOgiCzMMvE niq5qB2fuArc4huC9beAEweOWjKB/aOEgcBAE5EQoOp55MEyGB529esmsbpzVwQiz8np pf0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783325217; x=1783930017; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=1UdwluaGSndHe48+A8DVxKdfpD8TGgGU/uWfIOUyEJI=; b=KkmN6WsUK4GocfzV4yhzhkLqlT+ZnKm7DoO0QGcxsg9CtI+XgB2ZVDeTrJQJsSaQMX yZbJHB14Yuh23BBf/wcjKihPyBhfpJkqpAjakX1gCohTicPhXGernYsFlwlg2oPXApQO K+H0rIJo0/0Yz5UwVBXm+ehC7CHjtkLbf4be4Gg3ISbFQ1BPL/IKb3ktXI6g0MKJdZRF uQzIPuEtMv9qzrH3kYNw//3EsC8EZjfcMztL1RaPZGPo0goAibnIUD1vTTsxREx9AAev tMh7tftd1FIVwmRCHjksYNnA4uQ2KIOz1c8GfiVncgILwPHSlT7o7WN7FIXJSEFE4gwg ZVIg== X-Gm-Message-State: AOJu0YyjX+UD2mJGdhy7fS4PbLW4JVKicBxunC0WoMB/U2HFhOJZlZyq rXP/nK32Muj3GxEwKj9j8I3quqsWyOdxSc4bkbIfEG+WjWsMdC/MCCjFPEXHq5Gtuu8drw== X-Gm-Gg: AfdE7cngaECzZHUDJFAWvdZFf22AmoUBFUjIaLv/BFGwz4DJGMhmU2Xow91t+tV/CDz dx/TYfywHxarOPWC1crHEMeq37o/H3wKypA9MRusjfRp0qsPA0uJvhGNKM7QlFefErslYioGj4L kezuy3BVvYG+afqN8SfhGRqGuZ+XAmvmE7VO57NMcbCu+0Ujc6HAUMNaNP/0etIWmusYQQxTKKU c3OCYNZT+YeZqN1FxkxOQkvUp8pETXWE3kexaBrtf4uxTUyzZiyyygwO+6wzN+JMLq5BLm13LIV xci5fg8gCasSDPsF101WK5cWhjBjDGQKAsyc4as/q8tbUXhI+d+3ICU/CkrUt5l9G6+VuNhIirW Z+XNzih4MoPm6EvZKHBvLnk4dCEclpms+hkwosSDYKeK2vP6aB8qywdmdVLakO7brGKLTEnpJsm 2rUKkkI++Nerhy9Ijlgpjs+8f4NOd07OH/EAvdUCnbBzDCO0K4/NX6nb3+tigxO9gKkkcdD3e12 JMa X-Received: by 2002:a05:600d:8494:20b0:492:3773:a230 with SMTP id 5b1f17b1804b1-493d11f5b7dmr75661405e9.27.1783325216470; Mon, 06 Jul 2026 01:06:56 -0700 (PDT) Received: from [172.20.73.26] (91-213-123-13.static.ip.netia.com.pl. [91.213.123.13]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47aa0f213e8sm20000945f8f.34.2026.07.06.01.06.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 06 Jul 2026 01:06:56 -0700 (PDT) Message-ID: <248cf69c-d8c4-4f56-967b-eb5bfc555130@gmail.com> Date: Mon, 6 Jul 2026 10:06:55 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] isolation: Add --chroot-fallback option To: Stefano Brivio References: <20260702071526.2460400-1-mateusz.andrzejewski@mikronika.com.pl> <20260704172708.6f884d5c@elisabeth> Content-Language: pl From: Mateusz Andrzejewski In-Reply-To: <20260704172708.6f884d5c@elisabeth> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-MailFrom: mandrzejewski06@gmail.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation Message-ID-Hash: YY3DUDEP355S5ZESRWSFF2W6ZCALS3SE X-Message-ID-Hash: YY3DUDEP355S5ZESRWSFF2W6ZCALS3SE X-Mailman-Approved-At: Mon, 06 Jul 2026 11:26:09 +0200 CC: passt-dev@passt.top, piotr.bzdrega@mikronika.com.pl, mateusz.andrzejewski@mikronika.com.pl X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: SGkgU3RlZmFubw0KDQpUaGFua3MgZm9yIHRoZSBkZXRhaWxlZCByZXZpZXcuDQoNCk9uIDcvNC8y MDI2IDU6MjcgUE0sIFN0ZWZhbm8gQnJpdmlvIHdyb3RlOg0KID4gTWF0ZXVzeiwgdGhhbmtzIGZv ciBmb2xsb3dpbmcgdXAuDQogPg0KID4gSSBzZWUgYSBmZXcgdmVyeSBtaW5vciBpc3N1ZXMsIHJl cG9ydGVkIGlubGluZSBiZWxvdywgdGhhdCBJIGNhbiBmaXggdXANCiA+IG9uIG1lcmdlIGlmIHlv dSBhZ3JlZSAoYnV0IHlvdSBjYW4gcmUtcG9zdCwgYXMgeW91IHdpc2gpLg0KID4NCiA+IE9uIFRo dSzCoCAyIEp1bCAyMDI2IDA5OjEzOjMxICswMjAwDQogPiBNYXRldXN6IEFuZHJ6ZWpld3NraSA8 bWFuZHJ6ZWpld3NraTA2QGdtYWlsLmNvbT4gd3JvdGU6DQogPg0KID4+IEZvciBpbnRlZ3JhdGlv bnMsIHdoaWNoIHVzZSByb290ZnMgb24gdG1wZnMgb3IgaW5pdHJhbWZzLCBpdCBpcyBub3QNCiA+ PiBhbGxvd2VkIHRvIHVzZSBwaXZvdF9yb290KCkuIEl0IHJlc3VsdHMgd2l0aCBpbnZhbGlkIGFy Z3VtZW50IChFSU5WQUwpDQogPj4gZXJyb3IuIEludHJvZHVjZSAtLWNocm9vdC1mYWxsYmFjayBv cHRpb24gYXMgYSB3b3JrYXJvdW5kIHdpdGgNCiA+PiBNU19NT1ZFICsgY2hyb290KCkuDQogPj4N CiA+PiBEdWUgdG8gd2Vha2VyIGlzb2xhdGlvbiBvZiBjaHJvb3QoKSBtZXRob2QgKHdlIGRvbid0 IHVubW91bnQgb2xkIHJvb3QpLA0KID4+IHVzZXIgaGFzIHR1IGV4cGxpY2l0bHkgZW5hYmxlIGZh bGxiYWNrIHdpdGggdGhlIG5ldyBvcHRpb24uIEZpcnN0LA0KID4+IGFsd2F5cyB0cnkgdG8gc2Fu ZGJveCB3aXRoIHBpdm90X3Jvb3QoKS4gSW4gYm90aCBjYXNlcyB0aGUgbmV3IHJvb3QgaXMNCiA+ PiBwbGFjZWQgaW50byBhbiBlbXB0eSB0bXBmcy4NCiA+Pg0KID4+IEZvciB0aGUgc29sdXRpb24g dG8gd29yayB3ZSBrZWVwIENBUF9TWVNfQ0hST09UIGNhcGFiaWxpdHksIHdoaWNoIGlzDQogPj4g ZHJvcHBlZCBhdCB0aGUgZW5kIG9mIHRoZSBpc29sYXRlX3ByZWZvcmsoKSBmdW5jdGlvbi4NCiA+ Pg0KID4+IExpbms6IGh0dHBzOi8vYnVncy5wYXNzdC50b3Avc2hvd19idWcuY2dpP2lkPTEwNA0K ID4+DQogPj4gU2lnbmVkLW9mZi1ieTogTWF0ZXVzeiBBbmRyemVqZXdza2kgDQo8bWF0ZXVzei5h bmRyemVqZXdza2lAbWlrcm9uaWthLmNvbS5wbD4NCiA+PiAtLS0NCiA+PiBDaGFuZ2VzIHNpbmNl IHYxOg0KID4+IC0gYWRkZWQgYSBkZXNjcmlwdGlvbiBvZiB0aGUgbmV3IG9wdGlvbiB0byB0aGUg bWFuIHBhZ2UNCiA+PiAtIHJlbmFtZWQgb3B0aW9uIHRvIC0tY2hyb290LWZhbGxiYWNrDQogPj4g LSByZW1vdmVkIGF1eGlsaWFyeSB2YXJpYWJsZSBpbiBjb25mKCkNCiA+PiAtIHBhc3NlZCBleGVj dXRpb24gY29udGV4dCB0byBpc29sYXRlX3VzZXIoKQ0KID4+IC0gZml4ZWQgaW5kZW50YXRpb24g YW5kIG90aGVyIGNvZGluZyBzdHlsZSBpc3N1ZXMNCiA+PiAtIGZpeGVkIGNwcGNoZWNrIGlzc3Vl IHdpdGggdmFyaWFibGVTY29wZSBpbiBpc29sYXRlX3ByZWZvcmsoKQ0KID4+DQogPj4gRGlyZWN0 IHdyaXRlIHRvICZjLT5jaHJvb3RfZmFsbGJhY2sgaXMgbm90IHZhbGlkLCBiZWNhdXNlIGl0J3Mg YSBib29sDQogPj4gdmFyaWFibGUgYW5kIGNvbXBpbGF0aW9uIHJlc3VsdHMgd2l0aCBhbiBpbmNv bXBhdGlibGUtcG9pbnRlci10eXBlcw0KID4+IHdhcm5pbmcgKGludCogZXhwZWN0ZWQpLg0KID4g QnkgdGhlIHdheSwgcmlnaHQsIG15IHByZXZpb3VzIHN1Z2dlc3Rpb24gaW1wbGllZCB0aGF0IHlv dSB3b3VsZCBhbHNvDQogPiB0dXJuIHRoYXQgdG8gYW4gaW50LCBidXQgSSBmb3Jnb3QgdG8gc2F5 IHRoYXQuIE9uIHRoZSBvdGhlciBoYW5kOg0KID4NCiA+PiBUbyBmaXggdGhpcywgdGhlIGFzc2ln bm1lbnQgd2FzIG1vdmVkIHRvIHRoZSAnMzInIGxhYmVsIGluIHRoZSBzd2l0Y2gNCiA+PiBzdGF0 ZW1lbnQgYW5kIHRoZSB0ZW1wb3JhcnkgaGVscGVyIHZhcmlhYmxlIGNvdWxkIGJlIHJlbW92ZWQu IFRoaXMNCiA+PiBmb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gb2Ygb3RoZXIgYm9vbGVhbiBvcHRp b25zLg0KID4gLi4udGhpcyBpcyBhbHNvIHRydWUsIGFuZCBJIHRoaW5rIGl0J3MgbW9yZSBpbXBv cnRhbnQgdG8ga2VlcCBpdA0KID4gY29uc2lzdGVudCByYXRoZXIgdGhhbiBzYXZpbmcgdGhyZWUg bGluZXMgdGhlcmUsIHNvIGxldCdzIGxlYXZlIGl0IGxpa2UNCiA+IHlvdSBkaWQgbm93Lg0KDQpZ ZWFoLCBJIHdhcyBhIGxpdHRsZSBiaXQgY29uZnVzZWQgYnkgdGhhdCBzdWdnZXN0aW9uLCBiZWNh dXNlIGluIHRoZSANCnRvcGljIG9mIGJ1ZyAxMDQgeW91IGNvbW1lbnRlZDoNCiJpZiB5b3UgbmVl ZCB0byBrZWVwICdpbnQgbm9fcGl2b3Rfcm9vdCcgaW4gc3RydWN0IGN0eCBmb3Igd2hhdGV2ZXIg DQpyZWFzb24sICguLi4pIGl0IGNvdWxkIGJlIGEgYm9vbCAod2Ugc3RhcnRlZCBwYXNzdCBhcyBD OTAgYnV0IGl0IGJlY2FtZSANCkMxMSBtZWFud2hpbGUpIg0KU28gSSB0aG91Z2h0IHRoYXQgZXZl cnkgbmV3IGJpbmFyeSB2YXJpYWJsZSBzaG91bGQgYmUgYSBib29sIG5vdy4NCg0KID4+wqAgY29u Zi5jwqAgwqAgwqAgfMKgIDggKysrKystDQogPj7CoCBpc29sYXRpb24uYyB8IDcxICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tDQogPj7CoCBpc29s YXRpb24uaCB8wqAgNCArLS0NCiA+PsKgIHBhc3N0LjHCoCDCoCDCoHzCoCA5ICsrKysrKysNCiA+ PsKgIHBhc3N0LmjCoCDCoCDCoHzCoCAyICsrDQogPj7CoCA1IGZpbGVzIGNoYW5nZWQsIDc3IGlu c2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQ0KID4+DQogPj4gZGlmZiAtLWdpdCBhL2NvbmYu YyBiL2NvbmYuYw0KID4+IGluZGV4IDQ3NTVhOWYuLjY3NTViZjYgMTAwNjQ0DQogPj4gLS0tIGEv Y29uZi5jDQogPj4gKysrIGIvY29uZi5jDQogPj4gQEAgLTY1NCw2ICs2NTQsOCBAQCBzdGF0aWMg dm9pZCB1c2FnZShjb25zdCBjaGFyICpuYW1lLCBGSUxFICpmLCBpbnQgDQpzdGF0dXMpDQogPj7C oCDCoCDCoCDCoCDCoCAiwqAgLS1uby1yYcKgIMKgIMKgIMKgIERpc2FibGUgcm91dGVyIGFkdmVy dGlzZW1lbnRzXG4iDQogPj7CoCDCoCDCoCDCoCDCoCAiwqAgLS1mcmVlYmluZMKgIMKgIMKgIMKg IEJpbmQgdG8gYW55IGFkZHJlc3MgZm9yIGZvcndhcmRpbmdcbiINCiA+PsKgIMKgIMKgIMKgIMKg ICLCoCAtLW5vLW1hcC1nd8KgIMKgIMKgIMKgIERvbid0IG1hcCBnYXRld2F5IGFkZHJlc3MgdG8g aG9zdFxuIg0KID4+ICvCoCDCoCDCoCDCoCAiwqAgLS1jaHJvb3QtZmFsbGJhY2vCoCDCoCBVc2Ug Y2hyb290KCkgaWYgcGl2b3Rfcm9vdCgpIGZhaWxzXG4iDQogPj4gK8KgIMKgIMKgIMKgICLCoCDC oCBjYW4gYmUgdXNlZnVsIGZvciByb290ZnMgb24gdG1wZnMgb3IgaW5pdHJhbWZzXG4iDQogPiBJ IHdhcyBzdWdnZXN0aW5nIHRoYXQgeW91IHdvdWxkIGV4cGxhaW4gdGhpcyBpbiB0aGUgZG9jdW1l bnRhdGlvbiwgYnV0IEkNCiA+IHRoaW5rIGhhdmluZyBpdCBpbiB0aGUgbWFuIHBhZ2UgaXMgc3Vm ZmljaWVudCwgd2hpbGUgdGhpcyB1c2FnZSBtZXNzYWdlDQogPiBpc24ndCBzdXBwb3NlZCB0byBo YXZlIGFsbCB0aGUgZGV0YWlscywgYW5kIGl0J3MgYWxyZWFkeSBsb25nIGVub3VnaC4NCiA+DQog PiBTbyBJJ2QgcmF0aGVyIGRyb3AgdGhlICJjYW4gYmUgdXNlZnVsIC4uLiIgbGluZSBmcm9tIGhl cmUuIE5vdCBhIHN0cm9uZw0KID4gcHJlZmVyZW5jZSBmcm9tIG15IHNpZGUsIHRob3VnaCAoaXQn cyBqdXN0IG9uZSBleHRyYSBsaW5lIGFmdGVyIGFsbCkuDQoNCkFoaCwgc29ycnksIEkgbWlzdW5k ZXJzdG9vZC4gWW91IGNhbiByZW1vdmUgImNhbiBiZSB1c2VmdWwuLiIgbGluZSBpZiANCnlvdSB3 YW50IHRvLg0KDQogPj7CoCDCoCDCoCDCoCDCoCAiwqAgLTQsIC0taXB2NC1vbmx5wqAgwqAgRW5h YmxlIElQdjQgb3BlcmF0aW9uIG9ubHlcbiINCiA+PsKgIMKgIMKgIMKgIMKgICLCoCAtNiwgLS1p cHY2LW9ubHnCoCDCoCBFbmFibGUgSVB2NiBvcGVyYXRpb24gb25seVxuIg0KID4+wqAgwqAgwqAg wqAgwqAgIsKgIC10LCAtLXRjcC1wb3J0cyBTUEVDwqAgwqAgVENQIHBvcnQgZm9yd2FyZGluZyB0 byAlc1xuIg0KID4+IEBAIC0xMjMzLDYgKzEyMzUsNyBAQCB2b2lkIGNvbmYoc3RydWN0IGN0eCAq YywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KID4+wqAgwqAgwqAgwqAgwqAgeyJtaWdyYXRlLW5v LWxpbmdlciIsIG5vX2FyZ3VtZW50LMKgIMKgIE5VTEwsIDMwIH0sDQogPj7CoCDCoCDCoCDCoCDC oCB7InN0YXRzIiwgcmVxdWlyZWRfYXJndW1lbnQswqAgwqAgwqAgwqAgTlVMTCwgMzEgfSwNCiA+ PsKgIMKgIMKgIMKgIMKgIHsiY29uZi1wYXRoIizCoCDCoCByZXF1aXJlZF9hcmd1bWVudCzCoCDC oCBOVUxMLCDCoCAnYycgfSwNCiA+PiArwqAgwqAgwqAgwqAgeyJjaHJvb3QtZmFsbGJhY2siLCBu b19hcmd1bWVudCzCoCDCoCBOVUxMLCDCoDMyIH0sDQogPj7CoCDCoCDCoCDCoCDCoCB7IDAgfSwN CiA+PsKgIMKgIMKgIH07DQogPj7CoCDCoCDCoCBjb25zdCBjaGFyICpvcHRzdHJpbmcgPSANCiIr ZHFmZWw6aHM6YzpGOkk6cDpQOm06YTpuOk06ZzppOm86RDpTOkg6NDYxdDp1OlQ6VToiOw0KID4+ IEBAIC0xNDY3LDYgKzE0NzAsOSBAQCB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQ0KID4+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZGllKCJDYW4ndCBk aXNwbGF5IHN0YXRpc3RpY3MgaWYgbm90IHJ1bm5pbmcgaW4gDQpmb3JlZ3JvdW5kIik7DQogPj7C oCDCoCDCoCDCoCDCoCDCoCDCoCBjLT5zdGF0cyA9IHN0cnRvbChvcHRhcmcsIE5VTEwsIDApOw0K ID4+wqAgwqAgwqAgwqAgwqAgwqAgwqAgYnJlYWs7DQogPj4gK8KgIMKgIMKgIMKgIGNhc2UgMzI6 DQogPj4gK8KgIMKgIMKgIMKgIMKgIMKgIGMtPmNocm9vdF9mYWxsYmFjayA9IHRydWU7DQogPj4g K8KgIMKgIMKgIMKgIMKgIMKgIGJyZWFrOw0KID4+wqAgwqAgwqAgwqAgwqAgY2FzZSAnZCc6DQog Pj7CoCDCoCDCoCDCoCDCoCDCoCDCoCBjLT5kZWJ1ZyA9IDE7DQogPj7CoCDCoCDCoCDCoCDCoCDC oCDCoCBjLT5xdWlldCA9IDA7DQogPj4gQEAgLTE4NzksNyArMTg4NSw3IEBAIHZvaWQgY29uZihz dHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogPj4NCiA+PsKgIMKgIMKgIGNv bmZfb3Blbl9maWxlcyhjKTvCoCDCoCAvKiBCZWZvcmUgYW55IHBvc3NpYmxlIHNldHVpZCgpIC8g DQpzZXRnaWQoKSAqLw0KID4+DQogPj4gLcKgIMKgIGlzb2xhdGVfdXNlcih1aWQsIGdpZCwgIW5l dG5zX29ubHksIHVzZXJucywgYy0+bW9kZSk7DQogPj4gK8KgIMKgIGlzb2xhdGVfdXNlcihjLCB1 aWQsIGdpZCwgIW5ldG5zX29ubHksIHVzZXJucyk7DQogPj4NCiA+PsKgIMKgIMKgIGlmIChjLT5u b19pY21wKQ0KID4+wqAgwqAgwqAgwqAgwqAgYy0+bm9fbmRwID0gMTsNCiA+PiBkaWZmIC0tZ2l0 IGEvaXNvbGF0aW9uLmMgYi9pc29sYXRpb24uYw0KID4+IGluZGV4IDdlNjIyNWQuLjA4ZTQwMDgg MTAwNjQ0DQogPj4gLS0tIGEvaXNvbGF0aW9uLmMNCiA+PiArKysgYi9pc29sYXRpb24uYw0KID4+ IEBAIC0xNjYsNiArMTY2LDMxIEBAIHN0YXRpYyB2b2lkIGNsYW1wX2NhcHModm9pZCkNCiA+PsKg IMKgIMKgIMKgIMKgIGRpZV9wZXJyb3IoIkNvdWxkbid0IGRyb3AgaW5oZXJpdGFibGUgY2FwYWJp bGl0aWVzIik7DQogPj7CoCB9DQogPj4NCiA+PiArLyoqDQogPj4gKyAqIG1vdmVfcm9vdCgpIC0g VXNlIGNocm9vdCgpIGluc3RlYWQgb2YgcGl2b3Rfcm9vdCgpIGZvciBzYW5kYm94aW5nDQogPj4g KyAqDQogPj4gKyAqIFJldHVybjogbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLCB6ZXJv IG9uIHN1Y2Nlc3MNCiA+PiArICovDQogPj4gK3N0YXRpYyBpbnQgbW92ZV9yb290KHZvaWQpDQog Pj4gK3sNCiA+PiArwqAgwqAgaWYgKG1vdW50KFRNUERJUiwgIi8iLCAiIiwgTVNfTU9WRSwgIiIp KSB7DQogPj4gK8KgIMKgIMKgIMKgIGVycl9wZXJyb3IoIkZhaWxlZCB0byBtb3ZlIHJvb3QgaW50 byBlbXB0eSB0bXBmcyIpOw0KID4+ICvCoCDCoCDCoCDCoCByZXR1cm4gLWVycm5vOw0KID4+ICvC oCDCoCB9DQogPj4gKw0KID4+ICvCoCDCoCBpZiAoY2hyb290KCIuIikpIHsNCiA+PiArwqAgwqAg wqAgwqAgZXJyX3BlcnJvcigiRmFpbGVkIHRvIGNocm9vdCgpIGludG8gZW1wdHkgdG1wZnMiKTsN CiA+PiArwqAgwqAgwqAgwqAgcmV0dXJuIC1lcnJubzsNCiA+PiArwqAgwqAgfQ0KID4+ICsNCiA+ PiArwqAgwqAgaWYgKGNoZGlyKCIvIikpIHsNCiA+PiArwqAgwqAgwqAgwqAgZXJyX3BlcnJvcigi RmFpbGVkIHRvIGNoYW5nZSBkaXJlY3RvcnkgaW50byBuZXcgcm9vdCIpOw0KID4+ICvCoCDCoCDC oCDCoCByZXR1cm4gLWVycm5vOw0KID4+ICvCoCDCoCB9DQogPj4gKw0KID4+ICvCoCDCoCByZXR1 cm4gMDsNCiA+PiArfQ0KID4+ICsNCiA+PsKgIC8qKg0KID4+wqAgwqAqIGlzb2xhdGVfaW5pdGlh bCgpIC0gRWFybHksIG1vc3RseSBjb25maWcgaW5kZXBlbmRlbnQgc2VsZiBpc29sYXRpb24NCiA+ PsKgIMKgKiBAYXJnYzrCoCDCoCBBcmd1bWVudCBjb3VudA0KID4+IEBAIC0xOTUsMTQgKzIyMCwx OCBAQCB2b2lkIGlzb2xhdGVfaW5pdGlhbChpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogPj7CoCDC oCDCoCDCoCrCoCAtIENBUF9TWVNfQURNSU4sIHNvIHRoYXQgd2UgY2FuIHNldG5zKCkgdG8gdGhl IG5ldG5zLg0KID4+wqAgwqAgwqAgwqAqwqAgLSBLZWVwIENBUF9ORVRfQURNSU4sIHNvIHRoYXQg d2UgY2FuIGNvbmZpZ3VyZSBpbnRlcmZhY2VzDQogPj7CoCDCoCDCoCDCoCoNCiA+PiArwqAgwqAg wqAqIFdlIGhhdmUgdG8ga2VlcCBDQVBfU1lTX0NIUk9PVCBpbiBjYXNlIG9mIC0tY2hyb290LWZh bGxiYWNrIA0Kb3B0aW9uDQogPj4gK8KgIMKgIMKgKiBiZWluZyBlbmFibGVkLCBzbyB3ZSBjYW4g ZmFsbGJhY2sgZnJvbSBwaXZvdF9yb290KCkgdG8gDQpjaHJvb3QoKSBpbg0KID4gVmVyeSBtaW5v ciBidXQuLi4gdGhlIG5vdW4gaXMgImZhbGxiYWNrIiBhbmQgdGhlIHZlcmIgaXMgImZhbGwgYmFj ayIuDQogPg0KID4+ICvCoCDCoCDCoCogaXNvbGF0ZV9wcmVmb3JrKCkuDQogPj4gK8KgIMKgIMKg Kg0KID4+wqAgwqAgwqAgwqAqIEl0J3MgZGViYXRhYmxlIHdoZXRoZXIgaXQncyB1c2VmdWwgdG8g ZHJvcCBjYXBzIHdoZW4gd2UNCiA+PsKgIMKgIMKgIMKgKiByZXRhaW4gU0VUVUlEIGFuZCBTWVNf QURNSU4sIGJ1dCB3ZSBtaWdodCBhcyB3ZWxsLiBXZSBkcm9wDQogPj7CoCDCoCDCoCDCoCogZnVy dGhlciBjYXBhYmlsaXRpZXMgaW4gaXNvbGF0ZV91c2VyKCkgYW5kDQogPj7CoCDCoCDCoCDCoCog aXNvbGF0ZV9wcmVmb3JrKCkuDQogPj7CoCDCoCDCoCDCoCovDQogPj7CoCDCoCDCoCBrZWVwID0g QklUKENBUF9ORVRfQklORF9TRVJWSUNFKSB8IEJJVChDQVBfU0VUVUlEKSB8IA0KQklUKENBUF9T RVRHSUQpIHwNCiA+PiAtwqAgwqAgwqAgwqAgwqAgwqBCSVQoQ0FQX1NZU19BRE1JTikgfCBCSVQo Q0FQX05FVF9BRE1JTikgfCANCkJJVChDQVBfREFDX09WRVJSSURFKTsNCiA+PiAtDQogPj4gK8Kg IMKgIMKgIMKgIMKgIMKgQklUKENBUF9TWVNfQURNSU4pIHwgQklUKENBUF9ORVRfQURNSU4pIHwg DQpCSVQoQ0FQX0RBQ19PVkVSUklERSkgfA0KID4+ICvCoCDCoCDCoCDCoCDCoCDCoEJJVChDQVBf U1lTX0NIUk9PVCk7DQogPj7CoCDCoCDCoCAvKiBTaW5jZSBMaW51eCA1LjEyLCBpZiB3ZSB3YW50 IHRvIHVwZGF0ZSAvcHJvYy9zZWxmL3VpZF9tYXAgdG8gDQpjcmVhdGUNCiA+PsKgIMKgIMKgIMKg KiBhIG1hcHBpbmcgZnJvbSBVSUQgMCwgd2hpY2ggb25seSBoYXBwZW5zIHdpdGggcGFzdGEgc3Bh d25pbmcgDQphIGNoaWxkDQogPj7CoCDCoCDCoCDCoCogZnJvbSBhIG5vbi1pbml0IHVzZXIgbmFt ZXNwYWNlIChwYXN0YSBjYW4ndCBydW4gYXMgcm9vdCksIHdlIA0KbmVlZCB0bw0KID4+IEBAIC0y MjAsMTEgKzI0OSwxMSBAQCB2b2lkIGlzb2xhdGVfaW5pdGlhbChpbnQgYXJnYywgY2hhciAqKmFy Z3YpDQogPj4NCiA+PsKgIC8qKg0KID4+wqAgwqAqIGlzb2xhdGVfdXNlcigpIC0gU3dpdGNoIHRv IGZpbmFsIFVJRC9HSUQgYW5kIG1vdmUgaW50byB1c2VybnMNCiA+PiArICogQGM6wqAgwqAgwqAg wqAgRXhlY3V0aW9uIGNvbnRleHQNCiA+PsKgIMKgKiBAdWlkOsKgIMKgIFVzZXIgSUQgdG8gcnVu IGFzIChpbiBvcmlnaW5hbCB1c2VybnMpDQogPj7CoCDCoCogQGdpZDrCoCDCoCBHcm91cCBJRCB0 byBydW4gYXMgKGluIG9yaWdpbmFsIHVzZXJucykNCiA+PsKgIMKgKiBAdXNlX3VzZXJuczrCoCDC oCBXaGV0aGVyIHRvIGpvaW4gb3IgY3JlYXRlIGEgdXNlcm5zDQogPj7CoCDCoCogQHVzZXJuczrC oCDCoCB1c2VybnMgcGF0aCB0byBlbnRlciwgbWF5IGJlIGVtcHR5DQogPj4gLSAqIEBtb2RlOsKg IMKgIE1vZGUgKHBhc3N0IG9yIHBhc3RhKQ0KID4+wqAgwqAqDQogPj7CoCDCoCogU2hvdWxkOg0K ID4+wqAgwqAqwqAgLSBzZXQgb3VyIGZpbmFsIFVJRCBhbmQgR0lEDQogPj4gQEAgLTIzMiw4ICsy NjEsOCBAQCB2b2lkIGlzb2xhdGVfaW5pdGlhbChpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogPj7C oCDCoCogTXVzdG4ndDoNCiA+PsKgIMKgKsKgIC0gcmVtb3ZlIGZpbGVzeXN0ZW0gYWNjZXNzICh3 ZSBuZWVkIHRoYXQgZm9yIGZ1cnRoZXIgc2V0dXApDQogPj7CoCDCoCovDQogPj4gLXZvaWQgaXNv bGF0ZV91c2VyKHVpZF90IHVpZCwgZ2lkX3QgZ2lkLCBib29sIHVzZV91c2VybnMsIGNvbnN0IGNo YXIgDQoqdXNlcm5zLA0KID4+IC3CoCDCoCDCoCDCoCDCoCBlbnVtIHBhc3N0X21vZGVzIG1vZGUp DQogPj4gK3ZvaWQgaXNvbGF0ZV91c2VyKGNvbnN0IHN0cnVjdCBjdHggKmMsIHVpZF90IHVpZCwg Z2lkX3QgZ2lkLCBib29sIA0KdXNlX3VzZXJucywNCiA+PiArwqAgwqAgwqAgwqAgwqAgY29uc3Qg Y2hhciAqdXNlcm5zKQ0KID4+wqAgew0KID4+wqAgwqAgwqAgdWludDY0X3QgbnNfY2FwcyA9IDA7 DQogPj4NCiA+PiBAQCAtMjc3LDcgKzMwNiwxNCBAQCB2b2lkIGlzb2xhdGVfdXNlcih1aWRfdCB1 aWQsIGdpZF90IGdpZCwgYm9vbCANCnVzZV91c2VybnMsIGNvbnN0IGNoYXIgKnVzZXJucywNCiA+ PsKgIMKgIMKgIMKgKiBuZXRucw0KID4+wqAgwqAgwqAgwqAqLw0KID4+wqAgwqAgwqAgbnNfY2Fw cyB8PSBCSVQoQ0FQX1NZU19BRE1JTik7DQogPj4gLcKgIMKgIGlmIChtb2RlID09IE1PREVfUEFT VEEpIHsNCiA+PiArDQogPj4gK8KgIMKgIC8qIE9ubHkga2VlcCBDQVBfU1lTX0NIUk9PVCBmb3Ig dGhlIC0tY2hyb290LWZhbGxiYWNrIGNhc2UuIA0KT3RoZXJ3aXNlDQogPj4gK8KgIMKgIMKgKiBp dCBjYW4gYmUgZHJvcHBlZA0KID4+ICvCoCDCoCDCoCovDQogPj4gK8KgIMKgIGlmIChjLT5jaHJv b3RfZmFsbGJhY2spDQogPj4gK8KgIMKgIMKgIMKgIG5zX2NhcHMgfD0gQklUKENBUF9TWVNfQ0hS T09UKTsNCiA+PiArDQogPj4gK8KgIMKgIGlmIChjLT5tb2RlID09IE1PREVfUEFTVEEpIHsNCiA+ PsKgIMKgIMKgIMKgIMKgIC8qIEtlZXAgQ0FQX05FVF9BRE1JTiwgc28gd2UgY2FuIGNvbmZpZ3Vy ZSB0aGUgaWYgKi8NCiA+PsKgIMKgIMKgIMKgIMKgIG5zX2NhcHMgfD0gQklUKENBUF9ORVRfQURN SU4pOw0KID4+wqAgwqAgwqAgwqAgwqAgLyogS2VlcCBDQVBfTkVUX0JJTkRfU0VSVklDRSwgc28g d2UgY2FuIHNwbGljZQ0KID4+IEBAIC0zMzEsNyArMzY3LDcgQEAgaW50IGlzb2xhdGVfcHJlZm9y ayhjb25zdCBzdHJ1Y3QgY3R4ICpjKQ0KID4+wqAgwqAgwqAgaWYgKG1vdW50KCIiLCBUTVBESVIs ICJ0bXBmcyIsDQogPj7CoCDCoCDCoCDCoCDCoCDCoCBNU19OT0RFViB8IE1TX05PRVhFQyB8IE1T X05PU1VJRCB8IE1TX1JET05MWSwNCiA+PsKgIMKgIMKgIMKgIMKgIMKgICJucl9pbm9kZXM9Mixu cl9ibG9ja3M9MCIpKSB7DQogPj4gLcKgIMKgIMKgIMKgIGVycl9wZXJyb3IoIkZhaWxlZCB0byBt b3VudCBlbXB0eSB0bXBmcyBmb3IgcGl2b3Rfcm9vdCgpIik7DQogPj4gK8KgIMKgIMKgIMKgIGVy cl9wZXJyb3IoIkZhaWxlZCB0byBtb3VudCBlbXB0eSB0bXBmcyBmb3Igc2FuZGJveGluZyIpOw0K ID4+wqAgwqAgwqAgwqAgwqAgcmV0dXJuIC1lcnJubzsNCiA+PsKgIMKgIMKgIH0NCiA+Pg0KID4+ IEBAIC0zNDEsMTMgKzM3NywyMCBAQCBpbnQgaXNvbGF0ZV9wcmVmb3JrKGNvbnN0IHN0cnVjdCBj dHggKmMpDQogPj7CoCDCoCDCoCB9DQogPj4NCiA+PsKgIMKgIMKgIGlmIChzeXNjYWxsKFNZU19w aXZvdF9yb290LCAiLiIsICIuIikpIHsNCiA+PiAtwqAgwqAgwqAgwqAgZXJyX3BlcnJvcigiRmFp bGVkIHRvIHBpdm90X3Jvb3QoKSBpbnRvIGVtcHR5IHRtcGZzIik7DQogPj4gLcKgIMKgIMKgIMKg IHJldHVybiAtZXJybm87DQogPj4gLcKgIMKgIH0NCiA+PiAtDQogPj4gLcKgIMKgIGlmICh1bW91 bnQyKCIuIiwgTU5UX0RFVEFDSCB8IFVNT1VOVF9OT0ZPTExPVykpIHsNCiA+PiAtwqAgwqAgwqAg wqAgZXJyX3BlcnJvcigiRmFpbGVkIHRvIHVubW91bnQgb3JpZ2luYWwgcm9vdCBmaWxlc3lzdGVt Iik7DQogPj4gLcKgIMKgIMKgIMKgIHJldHVybiAtZXJybm87DQogPj4gK8KgIMKgIMKgIMKgIGlm IChjLT5jaHJvb3RfZmFsbGJhY2spIHsNCiA+PiArwqAgwqAgwqAgwqAgwqAgwqAgaW50IHJjOw0K ID4+ICvCoCDCoCDCoCDCoCDCoCDCoCBpbmZvKCJGYWlsZWQgdG8gcGl2b3Rfcm9vdCgpLCBmYWxs YmFjayB0byBjaHJvb3QoKS4uLiIpOw0KID4+ICvCoCDCoCDCoCDCoCDCoCDCoCBpZiAoKHJjID0g bW92ZV9yb290KCkpKQ0KID4+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCByZXR1cm4gcmM7DQog Pj4gK8KgIMKgIMKgIMKgIH0gZWxzZSB7DQogPj4gK8KgIMKgIMKgIMKgIMKgIMKgIGVycl9wZXJy b3IoIkZhaWxlZCB0byBwaXZvdF9yb290KCkgaW50byBlbXB0eSB0bXBmcyIpOw0KID4+ICvCoCDC oCDCoCDCoCDCoCDCoCByZXR1cm4gLWVycm5vOw0KID4+ICvCoCDCoCDCoCDCoCB9DQogPj4gK8Kg IMKgIH0gZWxzZSB7DQogPj4gK8KgIMKgIMKgIMKgIGlmICh1bW91bnQyKCIuIiwgTU5UX0RFVEFD SCB8IFVNT1VOVF9OT0ZPTExPVykpIHsNCiA+PiArwqAgwqAgwqAgwqAgwqAgwqAgZXJyX3BlcnJv cigiRmFpbGVkIHRvIHVubW91bnQgb3JpZ2luYWwgcm9vdCBmaWxlc3lzdGVtIik7DQogPj4gK8Kg IMKgIMKgIMKgIMKgIMKgIHJldHVybiAtZXJybm87DQogPj4gK8KgIMKgIMKgIMKgIH0NCiA+PsKg IMKgIMKgIH0NCiA+Pg0KID4+wqAgwqAgwqAgLyogTm93IHRoYXQgaW5pdGlhbGl6YXRpb24gaXMg bW9yZS1vci1sZXNzIGNvbXBsZXRlLCB3ZSBjYW4NCiA+PiBkaWZmIC0tZ2l0IGEvaXNvbGF0aW9u LmggYi9pc29sYXRpb24uaA0KID4+IGluZGV4IDA1NzYxNjguLjY2YjY5NjggMTAwNjQ0DQogPj4g LS0tIGEvaXNvbGF0aW9uLmgNCiA+PiArKysgYi9pc29sYXRpb24uaA0KID4+IEBAIC0xMSw4ICsx MSw4IEBADQogPj7CoCAjaW5jbHVkZSA8dW5pc3RkLmg+DQogPj4NCiA+PsKgIHZvaWQgaXNvbGF0 ZV9pbml0aWFsKGludCBhcmdjLCBjaGFyICoqYXJndik7DQogPj4gLXZvaWQgaXNvbGF0ZV91c2Vy KHVpZF90IHVpZCwgZ2lkX3QgZ2lkLCBib29sIHVzZV91c2VybnMsIGNvbnN0IGNoYXIgDQoqdXNl cm5zLA0KID4+IC3CoCDCoCDCoCDCoCDCoCBlbnVtIHBhc3N0X21vZGVzIG1vZGUpOw0KID4+ICt2 b2lkIGlzb2xhdGVfdXNlcihjb25zdCBzdHJ1Y3QgY3R4ICpjLCB1aWRfdCB1aWQsIGdpZF90IGdp ZCwgYm9vbCANCnVzZV91c2VybnMsDQogPj4gK8KgIMKgIMKgIMKgIMKgIGNvbnN0IGNoYXIgKnVz ZXJucyk7DQogPj7CoCBpbnQgaXNvbGF0ZV9wcmVmb3JrKGNvbnN0IHN0cnVjdCBjdHggKmMpOw0K ID4+wqAgdm9pZCBpc29sYXRlX3Bvc3Rmb3JrKGNvbnN0IHN0cnVjdCBjdHggKmMpOw0KID4+DQog Pj4gZGlmZiAtLWdpdCBhL3Bhc3N0LjEgYi9wYXNzdC4xDQogPj4gaW5kZXggOTA4ZmQ0YS4uOGEz M2MyZSAxMDA2NDQNCiA+PiAtLS0gYS9wYXNzdC4xDQogPj4gKysrIGIvcGFzc3QuMQ0KID4+IEBA IC0zOTMsNiArMzkzLDE1IEBAIGFzIGRlc3RpbmF0aW9uLCB0byB0aGUgaG9zdC4gSW1wbGllZCBp ZiB0aGVyZSANCmlzIG5vIGdhdGV3YXkgb24gdGhlIHNlbGVjdGVkDQogPj7CoCBkZWZhdWx0IHJv dXRlLCBvciBpZiB0aGVyZSBpcyBubyBkZWZhdWx0IHJvdXRlLCBmb3IgYW55IG9mIHRoZSANCmVu YWJsZWQgYWRkcmVzcw0KID4+wqAgZmFtaWxpZXMuDQogPj4NCiA+PiArLlRQDQogPj4gKy5CUiBc LVwtY2hyb290LWZhbGxiYWNrDQogPj4gK0VuYWJsZSBhIGZhbGxiYWNrIHRvIGNocm9vdCgpIGlu IGNhc2UgcGl2b3Rfcm9vdCgpIHJldHVybnMgYW4gDQplcnJvci4gVXNlZnVsIGZvcg0KID4gTWF5 YmUgdXNlZnVsIHRvIHNwZWNpZnk6ICJpbiBjYXNlIHBpdm90X3Jvb3QoKSwgdXNlZCB0byBzd2l0 Y2ggdG8gYW4NCiA+IGVtcHR5IGZpbGVzeXN0ZW0gZm9yIHN0cmljdGVyIGlzb2xhdGlvbiwgcmV0 dXJucyBhbiBlcnJvciIuDQogPg0KID4gT3RoZXJ3aXNlIG1vc3QgdXNlcnMgd2lsbCBoYXZlIG5v IGlkZWEgd2hhdCB0aGlzIGlzIGFib3V0Lg0KID4NCiA+PiAraW50ZWdyYXRpb25zLCB3aGljaCB1 c2Ugcm9vdGZzIG9uIHRtcGZzIG9yIGluaXRyYW1mcywgd2hlcmUgaXQgaXMgDQpub3QgYWxsb3dl ZCB0bw0KID4gQWxzbyByYXRoZXIgbWlub3IsIGJ1dCBJIHRoaW5rIHRoaXMgc2VudGVuY2UgaXMg YSBiaXQgZGlmZmljdWx0IHRvDQogPiBmb2xsb3c6DQogPg0KID4gLSAiaW50ZWdyYXRpb25zIHdo aWNoIHVzZSAuLi4iIHNob3VsZG4ndCBoYXZlIGEgY29tbWEsIGFzIHRoZQ0KID7CoCDCoGZvbGxv d2luZyBjbGF1c2UgaXMgZXNzZW50aWFsIGZvciB0aGUgbWVhbmluZyBvZiB0aGUgc2VudGVuY2UN CiA+wqAgwqAocmVzdHJpY3RpdmUgLyBlc3NlbnRpYWwgdnMuIG5vbnJlc3RyaWN0aXZlIC8gbm9u ZXNzZW50aWFsKQ0KID4NCiA+IC0gImFsbG93ZWQiIGNhbid0IGJlIHVzZWQgaW4gYW4gaW1wZXJz b25hbCB3YXkuIEl0IG5lZWRzIGFuIGFjdHVhbA0KID7CoCDCoHN1YmplY3QsIHRoYXQgaXM6ICJw aXZvdF9yb290KCkgdXNhZ2UgaXNuJ3QgYWxsb3dlZCIsIGJ1dCB5b3UgY2FuJ3QNCiA+wqAgwqBz YXkgdGhhdCAiX2l0XyBpcyBub3QgYWxsb3dlZCB0byB1c2UgcGl2b3Rfcm9vdCgpIiAoSSBoYXBw aWx5IGRvIHRoaXMNCiA+wqAgwqBtaXN0YWtlIGFsbCB0aGUgdGltZSBhcyBhIG5hdGl2ZSBJdGFs aWFuIHNwZWFrZXIpLg0KID4NCiA+IEkgd291bGQgdHVybiB0aGlzIHRvOg0KID4NCiA+wqAgwqBV c2VmdWwgZm9yIGludGVncmF0aW9ucyB3aGljaCB1c2UgdG1wZnMgb3IgaW5pdHJhbWZzIGFzIHJv b3QNCiA+wqAgwqBmaWxlc3lzdGVtLCB3aGVyZSBwaXZvdF9yb290KCkgY2FuJ3QgYmUgdXNlZCwg YXMgaXQgcmVzdWx0cyBpbiBhbg0KID7CoCDCoGludmFsaWQgYXJndW1lbnQgZXJyb3IgKEVJTlZB TCkuDQoNClllcywgSSd2ZSBiZWVuIHN0cnVnZ2xpbmcgd2l0aCB0aGlzIGZvciBhIGxvbmcgdGlt ZSAtwqAgSSB0ZW5kIHRvIGFwcGx5IA0KUG9saXNoIHN5bnRheCB0byBFbmdsaXNoIHNlbnRlbmNl cy4uLg0KRmVlbCBmcmVlIHRvIGNvcnJlY3QgYW55IG90aGVyIHNpbWlsYXIgaXNzdWVzIGFzIHdl bGwuDQoNCiA+PiArdXNlIHBpdm90X3Jvb3QoKSwgYmVjYXVzZSBpdCByZXN1bHRzIHdpdGggYW4g aW52YWxpZCBhcmd1bWVudCBlcnJvciANCihFSU5WQUwpLg0KID4+ICsNCiA+PiArQnkgZGVmYXVs dCwgZmFsbGJhY2sgaXMgZGlzYWJsZWQuIElmIHBpdm90X3Jvb3QoKSBmYWlscywgdGhlbiB0aGUg DQplbnRpcmUNCiA+IE5vIG5lZWQgZm9yIGJyZXZpdHkgaGVyZTogInRoZSBmYWxsYmFjayBpcyBk aXNhYmxlZCIuDQogPg0KID4+ICtzYW5kYm94aW5nIHByb2Nlc3MgZmFpbHMuDQogPj4gKw0KID4+ wqAgLlRQDQogPj7CoCAuQlIgXC1cLW1hcC1ndWVzdC1hZGRyICIgIiBcZklhZGRyDQogPj7CoCBU cmFuc2xhdGUgXGZJYWRkclxmUiBpbiB0aGUgZ3Vlc3QgdG8gYmUgZXF1YWwgdG8gdGhlIGd1ZXN0 J3MgYXNzaWduZWQNCiA+PiBkaWZmIC0tZ2l0IGEvcGFzc3QuaCBiL3Bhc3N0LmgNCiA+PiBpbmRl eCAxNjUwNmRjLi5hMjAxNDhlIDEwMDY0NA0KID4+IC0tLSBhL3Bhc3N0LmgNCiA+PiArKysgYi9w YXNzdC5oDQogPj4gQEAgLTIxNCw2ICsyMTQsNyBAQCBzdHJ1Y3QgaXA2X2N0eCB7DQogPj7CoCDC oCogQHNwbGljZV9vbmx5OsKgIMKgIE9ubHkgZW5hYmxlIGxvb3BiYWNrIGZvcndhcmRpbmcNCiA+ PsKgIMKgKiBAaG9zdF9sb190b19uc19sbzrCoCDCoCBNYXAgaG9zdCBsb29wYmFjayBhZGRyZXNz ZXMgdG8gbnMgbG9vcGJhY2sgDQphZGRyZXNzZXMNCiA+PsKgIMKgKiBAZnJlZWJpbmQ6wqAgwqAg wqAgwqAgQWxsb3cgYmluZGluZyBvZiBub24tbG9jYWwgYWRkcmVzc2VzIGZvciANCmZvcndhcmRp bmcNCiA+PiArICogQGNocm9vdF9mYWxsYmFjazrCoCDCoCBVc2UgY2hyb290KCkgaW4gY2FzZSBw aXZvdF9yb290KCkgZmFpbHMNCiA+PsKgIMKgKiBAbG93X3dtZW06wqAgwqAgwqAgwqAgTG93IHBy b2JlZCBuZXQuY29yZS53bWVtX21heA0KID4+wqAgwqAqIEBsb3dfcm1lbTrCoCDCoCDCoCDCoCBM b3cgcHJvYmVkIG5ldC5jb3JlLnJtZW1fbWF4DQogPj7CoCDCoCogQG5vX2JpbmR0b2RldmljZTrC oCDCoCBVbnByaXZpbGVnZWQgU09fQklORFRPREVWSUNFIG5vdCBhdmFpbGFibGUNCiA+PiBAQCAt Mjk5LDYgKzMwMCw3IEBAIHN0cnVjdCBjdHggew0KID4+wqAgwqAgwqAgaW50IHNwbGljZV9vbmx5 Ow0KID4+wqAgwqAgwqAgaW50IGhvc3RfbG9fdG9fbnNfbG87DQogPj7CoCDCoCDCoCBpbnQgZnJl ZWJpbmQ7DQogPj4gK8KgIMKgIGJvb2wgY2hyb290X2ZhbGxiYWNrOw0KID4+DQogPj7CoCDCoCDC oCBpbnQgbG93X3dtZW07DQogPj7CoCDCoCDCoCBpbnQgbG93X3JtZW07DQogPiBUaGUgcmVzdCBs b29rcyBnb29kIHRvIG1lLCBsZXQgbWUga25vdyBpZiB5b3UgYWdyZWUgd2l0aCB0aGVzZSBjaGFu Z2VzLA0KID4gYW5kIGlmIHlvdSBwcmVmZXIgdG8gcmUtcG9zdCBvciB0aGF0IEkganVzdCBhcHBs eSB0aGVtLg0KDQpJIGFncmVlIHdpdGggdGhlIGNoYW5nZXMuIFlvdSBjYW4gYXBsbHkgdGhlc2Ug Zml4ZXMgeW91cnNlbGYsIEkgZG9uJ3QgDQptaW5kLiBUaGFuayB5b3UuDQoNClJlZ2FyZHMsDQpN YXRldXN6DQo=