From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=fail (p=quarantine dis=none) header.from=redhat.com Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by passt.top (Postfix) with ESMTPS id D2F4C5A0265 for ; Fri, 06 Nov 2026 16:34:11 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1793979250; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=j2zazEewBY6pFdzGy68d3Ken0hiv4xKGSVetrFaEm/k=; b=iahAQNe/elerudMvy0k4NuMsQVBIeHV9BRbcyYoxBiqhG7Fg14O0aXbquSiiyhqA5/C1c1 /R6uzQ1ZctpVwy0kpm5MqgshCPOCFL7/YrAYdBVSgkG8OdxbLleKxtTxAj2R96JA0hD2l6 M6jXUp6HOrlE61r4WSXUVDk2ZHOV4+o= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-49-4Ptk5VgrMxWWPDLbVrV62Q-1; Fri, 06 Nov 2026 10:34:05 -0500 X-MC-Unique: 4Ptk5VgrMxWWPDLbVrV62Q-1 X-Mimecast-MFC-AGG-ID: 4Ptk5VgrMxWWPDLbVrV62Q_1793979244 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4a20e41008cso6363385e9.1 for ; Fri, 06 Nov 2026 07:34:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793979244; x=1794584044; h=content-transfer-encoding:content-type:in-reply-to:autocrypt:from :content-language:references: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=j2zazEewBY6pFdzGy68d3Ken0hiv4xKGSVetrFaEm/k=; b=v57wlso6TLPOfmUQZTklxYYgCei2x+LqacByW1ERtBe/Zv7im3ur0c6gVeexskZFZh KN2iheoEvO61wK0FwDvxFPXE3nJRUsM6A7a3eJQYuAFqwW+mJ34WKugywIjztl/J6O+C wr9290brGJ0zl2mf9JZJ7e5jPN6LWiVG1cZ/K3aSyeXtx/DXYW5Sdppcz/ryYElSt0vJ g4hqR9nC4zyMXcz0lYCjDnqbkuf30nZ8PQse4Y1QxDy+jTFTQ5m69ia/9vAHRsu+tS5m hVrtA0wacY98U7zwwRF/HP135TE5PCTqsz7E5VCUjf5nP0RpfMqnEf0i+e+heXe0vk2U iDtg== X-Forwarded-Encrypted: i=1; AKwUvByn0sDMOKtOHNb/opoF22GrO6IPDRIgH7i7QACgFkkwrhzWZAHfl3i3g0dwJINUXkmivYCrT5/kAWQ=@passt.top X-Gm-Message-State: APuU4Z/vxEijPemYrvt771lIO0Nf7WlnSRQklbg1P+0n4cHzQqZmDNCq UhjvL8nrROkxKv08ONb2eaoiaHsfHC9tXPbhbZt6sXobkIa0uOekZYiuh/Ej4yFjnTRJDYNnZY9 K6Qa2/YM4uT7IQ/XjnpOoUEs42jdOuwM4KZlqNymavzc8IJkxCk6ygm7NlZWOGg== X-Gm-Gg: AYBFou2L/lmhN4iLJm/JAoa5DMi0kVxkM/3lWRBDzqnvJV1gbhRZVt0jBDnyQZTZ/H+ mw26s5Ygp1CC/8/CFt82rt66j7q3KTDxcdPNQIRjb20EaucJoxuzNjMBhV94eD7i5A+zx9aohrB XhFds4msJIJ/eZsUUa6P2GGyGlmdpycpSu1yPshyBH5RwzbAocVvZQJ4C1SqpeAa3/sMZR3BM9/ DxxXoIGb35y4I2eql6akPLgGVPgKZHj0vH3ZRqKXon1ZdWvccDqxnMLXxhFwe7C06hEW6uIs7Rf /iERoGWcNo1ctsQrLyI/EZJjigB+nkMsEXx9Doj4ciBQP/Q8kY3qD94BmehikPxzzdjMDg4AIvF 8QEFzEDOx8pRfM9un7yamej5OT/6KafU8syAJWAxx3EZsHAOnw+kt8EGthzJfj+nQttdOwtBsH/ 5y8agq3BvoES4r8UQ= X-Received: by 2002:a05:600c:1d26:b0:4b3:8529:eb27 with SMTP id 5b1f17b1804b1-4b6dfca2273mr50408825e9.27.1793979243786; Fri, 06 Nov 2026 07:34:03 -0800 (PST) X-Received: by 2002:a05:600c:1d26:b0:4b3:8529:eb27 with SMTP id 5b1f17b1804b1-4b6dfca2273mr50408395e9.27.1793979243263; Fri, 06 Nov 2026 07:34:03 -0800 (PST) Received: from ?IPV6:2a01:e0a:e10:ef90:e9e7:d9a0:a4eb:dc4b? ([2a01:e0a:e10:ef90:e9e7:d9a0:a4eb:dc4b]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4b6e28cce1fsm78934755e9.15.2026.11.06.07.34.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 06 Nov 2026 07:34:02 -0800 (PST) Message-ID: <7b9954ce-ff86-47dc-b727-41a294538ffd@redhat.com> Date: Fri, 6 Nov 2026 16:34:02 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/7] conf: Add context fields, epoll types and --vhost-kernel flag to pasta To: aerosouund , passt-dev@passt.top References: <20261016204940.33190-1-aerosound161@gmail.com> <20261016204940.33190-3-aerosound161@gmail.com> From: Laurent Vivier Autocrypt: addr=lvivier@redhat.com; keydata= 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 In-Reply-To: <20261016204940.33190-3-aerosound161@gmail.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 0gnXZ6zdOAcNeufyCHzQXJxb4TDVdDGz_r2KWVtorGM_1793979244 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: NWTSDRBZAH5GIUEG6KQXYJFEDJSEIRXF X-Message-ID-Hash: NWTSDRBZAH5GIUEG6KQXYJFEDJSEIRXF X-MailFrom: lvivier@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header 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: T24gMTAvMTYvMjYgMjI6NDksIGFlcm9zb3V1bmQgd3JvdGU6DQo+IEZyb206IEFtbWFyIFlhc3Nl ciA8YWVyb3NvdW5kMTYxQGdtYWlsLmNvbT4NCj4gDQo+IC0tdmhvc3Qta2VybmVsIGNvbnRyb2xz IHdoZXRoZXIgdG8gdXNlIHZob3N0LW5ldCBhY2NlbGVyYXRpb24gZm9yIHBhc3RhLg0KPiBJdCB0 YWtlcyBvbmUgb2YgdGhyZWUgbW9kZXM6ICJvbiIgcmVxdWlyZXMgYWNjZWxlcmF0aW9uIGFuZCBm YWlscyBpZiBpdA0KPiBpc24ndCBhdmFpbGFibGUsICJvZmYiIG5ldmVyIHVzZXMgaXQsIGFuZCAi YXV0byIgdXNlcyBpdCBpZiBpdCdzDQo+IGF2YWlsYWJsZSBhbmQgZmFsbHMgYmFjayB0byBwbGFp biB0YXAgb3BlcmF0aW9uIG90aGVyd2lzZS4gImF1dG8iIGlzIHRoZQ0KPiBkZWZhdWx0LCBzbyBh biB1bm1vZGlmaWVkIGludm9jYXRpb24gcGlja3MgdXAgYWNjZWxlcmF0aW9uIHdoZXJldmVyIHRo ZQ0KPiBrZXJuZWwgb2ZmZXJzIGl0LCBhbmQgYmVoYXZlcyBhcyBiZWZvcmUgd2hlcmUgaXQgZG9l c24ndC4NCj4gDQo+IEVQT0xMX1RZUEVfVkhPU1RfQ0FMTCBtZWFucyB0aGUga2VybmVsIHdhbnRz IHRvIG5vdGlmeSB1cyBhYm91dCBkYXRhIGl0DQo+IGhhcyB3cml0dGVuLiBFUE9MTF9UWVBFX1ZI T1NUX0VSUk9SIG1lYW5zIHRoZSBrZXJuZWwgZW5jb3VudGVyZWQgYW4NCj4gaW50ZXJuYWwgZXJy b3Igb24gdmhvc3QgYW5kIHdhbnRzIHRvIHRlbGwgdXMgc29tZXRoaW5nIHdlbnQgd3JvbmcuDQo+ IA0KPiBDb2xsZWN0IHRoZSB2aG9zdCBzdGF0ZSBpbiBhIHNpbmdsZSBzdHJ1Y3Qgdmhvc3RfY3R4 IHdpdGggdGhlIGZvbGxvd2luZw0KPiBmaWVsZHM6DQo+IA0KPiAgICAtIG1vZGU6ICAgICB3aGlj aCBvZiB0aGUgdGhyZWUgbW9kZXMgYWJvdmUgd2FzIHJlcXVlc3RlZA0KPiAgICAtIGZkOiAgICAg ICBmaWxlIGRlc2NyaXB0b3IgZm9yIC9kZXYvdmhvc3QtbmV0LCB3aGljaCBkb3VibGVzIGFzIG91 cg0KPiAgICAgICAgICAgICAgICBpbmRpY2F0aW9uIHRoYXQgc2V0dXAgc3VjY2VlZGVkDQo+ICAg IC0gZmVhdHVyZXM6IHZpcnRpbyBmZWF0dXJlIGJpdHMgbmVnb3RpYXRlZCB3aXRoIHZob3N0LW5l dA0KPiAgICAtIHZxW106ICAgICBraWNrLCBjYWxsIGFuZCBlcnIgZXZlbnRmZHMgZm9yIGJvdGgg cXVldWVzDQo+IA0KPiBNb2RpZnkgdGFwX2hkcl9pb3YgdG8gY3JlYXRlIGFuIGlvdiB3aXRoIHRo ZSBzaXplIG9mIGENCj4gdmlydGlvX25ldF9tcmdfcnhidWYgaWYgdmhvc3QgaW5pdGlhbGl6YXRp b24gaGFzIGJlZW4gc3VjY2Vzc2Z1bCAod2UgYXJlDQo+IGluIG1vZGUgJ29uJyBvciAnYXV0bycg YW5kIHdlIGRpZG4ndCBuZWVkIHRoZSB0YXAgZmFsbGJhY2spDQo+IA0KPiBNb3ZlIHRoZSBMMl9N QVhfTEVOX1hYIGNvbnN0YW50cyBmcm9tIHRhcC5oIHRvIHBhc3N0LmggdG8gYXZvaWQgdGhlDQo+ IGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbiBib3RoIGZpbGVzLiBWSE9TVF9ERVNDX0JZVEVT IGlzIGRlZmluZWQgYXMNCj4gdGhlIG1heGltdW0gbDIgZnJhbWUgc2l6ZSArIHRoZSBzaXplIG9m IHRoZSB2aXJ0aW8gbmV0IGhlYWRlciwgaWYgdGhlDQo+IGxlbmd0aCBjb25zdGFudCByZW1haW5z IGluIHRhcC5oIHBhc3N0Lmggd291bGQgbmVlZCB0byBpbmNsdWRlIGl0LCBidXQNCj4gdGFwLmgg bmVlZHMgdG8gaW5jbHVkZSBwYXNzdC5oIHRvIGdldCB0aGUgZGVmaW5pdGlvbiBvZiBgc3RydWN0 IGN0eGAuDQo+IE1vdmluZyB0aGUgbGVuZ3RoIGNvbnN0YW50cyB0byBwYXNzdC5oIG1ha2VzIGl0 IGZyZWUgb2YgZGVwZW5kZW5jeSBvbg0KPiB0YXAuaA0KPiANCj4gU2lnbmVkLW9mZi1ieTogRXVn ZW5pbyBQw6lyZXogPGVwZXJlem1hQHJlZGhhdC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IEFtbWFy IFlhc3NlciA8YWVyb3NvdW5kMTYxQGdtYWlsLmNvbT4NCj4gLS0tDQo+ICAgY29uZi5jICAgICAg IHwgMTkgKysrKysrKysrKysrKw0KPiAgIGVwb2xsX3R5cGUuaCB8ICA0ICsrKw0KPiAgIHBhc3N0 LmMgICAgICB8ICAzICsrDQo+ICAgcGFzc3QuaCAgICAgIHwgNzkgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPiAgIHRhcC5oICAgICAgICB8IDM2 ICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2Vy dGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2NvbmYuYyBiL2Nv bmYuYw0KPiBpbmRleCAxNDlhNGM3Li5mZTU3OGZjIDEwMDY0NA0KPiAtLS0gYS9jb25mLmMNCj4g KysrIGIvY29uZi5jDQo+IEBAIC03MzYsNiArNzM2LDkgQEAgcGFzdGFfb3B0czoNCj4gICAJCSIg ICAgZGVmYXVsdDogYXV0b1xuIg0KPiAgIAkJIiAgLS1ob3N0LWxvLXRvLW5zLWxvCVRyYW5zbGF0 ZSBob3N0LWxvb3BiYWNrIGZvcndhcmRzIHRvXG4iDQo+ICAgCQkiCQkJbmFtZXNwYWNlIGxvb3Bi YWNrXG4iDQo+ICsJCSIgIC0tdmhvc3Qta2VybmVsWz1NT0RFXQlVc2Ugdmhvc3Qta2VybmVsIGFj Y2VsZXJhdGlvblxuIg0KPiArCQkiICAgIE1PREUgaXMgXCJvblwiLCBcIm9mZlwiIG9yIFwiYXV0 b1wiXG4iDQo+ICsJCSIgICAgZGVmYXVsdDogYXV0b1xuIg0KPiAgIAkJIiAgLS11c2VybnMgTlNQ QVRIIAlUYXJnZXQgdXNlciBuYW1lc3BhY2UgdG8gam9pblxuIg0KPiAgIAkJIiAgLS1uZXRucyBQ QVRIfE5BTUUJVGFyZ2V0IG5ldHdvcmsgbmFtZXNwYWNlIHRvIGpvaW5cbiINCj4gICAJCSIgIC0t bmV0bnMtb25seQkJRG9uJ3Qgam9pbiBleGlzdGluZyB1c2VyIG5hbWVzcGFjZVxuIg0KPiBAQCAt NzY3LDYgKzc3MCw3IEBAIGVudW0gcGFzc3RfbW9kZXMgY29uZl9tb2RlKGludCBhcmdjLCBjaGFy ICphcmd2W10pDQo+ICAgCWludCB2aG9zdF91c2VyID0gMDsNCj4gICAJY29uc3Qgc3RydWN0IG9w dGlvbiBvcHR2dVtdID0gew0KPiAgIAkJeyJ2aG9zdC11c2VyIiwJbm9fYXJndW1lbnQsCQkmdmhv c3RfdXNlciwJMSB9LA0KPiArCQl7InZob3N0LWtlcm5lbCIsIG9wdGlvbmFsX2FyZ3VtZW50LAlO VUxMLAkJMCB9LA0KDQpBcyBJIHNhaWQgaW4gbXkgcHJldmlvdXMgcmV2aWV3LCBpdCdzIG5vdCBu ZWVkZWQgaW4gY29uZl9tb2RlLg0KDQo+ICAgCQl7IDAgfSwNCj4gICAJfTsNCj4gICAJY2hhciBh cmd2MFtQQVRIX01BWF0sICpiYXNlYXJnMDsNCj4gQEAgLTEzMTcsNiArMTMyMSw3IEBAIHZvaWQg Y29uZihzdHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICAgCQl7ImNvbmYt cGF0aCIsCXJlcXVpcmVkX2FyZ3VtZW50LAlOVUxMLAkJJ2MnIH0sDQo+ICAgCQl7ImNocm9vdC1m YWxsYmFjayIsIG5vX2FyZ3VtZW50LAlOVUxMLCAJCTMyIH0sDQo+ICAgCQl7Im5vLXBpZG5zIiwJ bm9fYXJndW1lbnQsCQlOVUxMLAkJMzMgfSwNCj4gKwkJeyJ2aG9zdC1rZXJuZWwiLCBvcHRpb25h bF9hcmd1bWVudCwJTlVMTCwJCTM0IH0sDQo+ICAgCQl7IDAgfSwNCj4gICAJfTsNCj4gICAJY29u c3QgY2hhciAqb3B0c3RyaW5nID0gIitkcWZlbDpoczpjOkY6STpwOlA6bTphOm46TTpnOmk6bzpE OlM6SDo0NjF0OnU6VDpVOiI7DQo+IEBAIC0xNTY2LDYgKzE1NzEsMjAgQEAgdm9pZCBjb25mKHN0 cnVjdCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gICAJCQkJZGllKCItLW5vLXBp ZG5zIGlzIGZvciBwYXN0YSBtb2RlIG9ubHkiKTsNCj4gDQo+ICAgCQkJYy0+bm9fcGlkbnMgPSB0 cnVlOw0KPiArCQkJYnJlYWs7DQo+ICsJCWNhc2UgMzQ6DQo+ICsJCQlpZiAoYy0+bW9kZSAhPSBN T0RFX1BBU1RBKQ0KPiArCQkJCWRpZSgiLS12aG9zdC1rZXJuZWwgaXMgZm9yIHBhc3RhIG1vZGUg b25seSIpOw0KPiArDQo+ICsJCQlpZiAoIW9wdGFyZyB8fCAhc3RyY21wKG9wdGFyZywgImF1dG8i KSkNCj4gKwkJCQljLT52aG9zdC5tb2RlID0gVkhPU1RfTU9ERV9BVVRPOw0KPiArCQkJZWxzZSBp ZiAoIXN0cmNtcChvcHRhcmcsICJvbiIpKQ0KPiArCQkJCWMtPnZob3N0Lm1vZGUgPSBWSE9TVF9N T0RFX09OOw0KPiArCQkJZWxzZSBpZiAoIXN0cmNtcChvcHRhcmcsICJvZmYiKSkNCj4gKwkJCQlj LT52aG9zdC5tb2RlID0gVkhPU1RfTU9ERV9PRkY7DQo+ICsJCQllbHNlDQo+ICsJCQkJZGllKCJJ bnZhbGlkIHZob3N0LWtlcm5lbCBtb2RlOiAlcyIsIG9wdGFyZyk7DQoNClRoaXMgbWVhbnM6DQot IG5vICItLXZob3N0LWtlcm5lbCIgcGFyYW1ldGVyICAgIC0+IEFVVE8NCi0gLS12aG9zdC1rZXJu ZWwgd2l0aG91dCBwYXJhbWV0ZXIgLT4gQVVUTw0KDQpJIHRoaW5rIGl0IHdvdWxkIGJlIG1vcmUg aW50dWl0aXZlIGlmIC0tdmhvc3Qta2VybmVsIHdpdGhvdXQgcGFyYW1ldGVyIG1lYW5zICJPTiIu DQpObyAiLS12aG9zdC1rZXJuZWwiIHBhcmFtZXRlciB3b3VsZCBtZWFuICJBVVRPIjoNCg0KLSBu byAiLS12aG9zdC1rZXJuZWwiIHBhcmFtZXRlciAgICAgIC0+IEFVVE8NCi0gIi0tdmhvc3Qta2Vy bmVsIiB3aXRob3V0IHBhcmFtZXRlciAtPiBPTg0KDQo+ICsNCj4gICAJCQlicmVhazsNCj4gICAJ CWNhc2UgJ2QnOg0KPiAgIAkJCWMtPmRlYnVnID0gMTsNCj4gZGlmZiAtLWdpdCBhL2Vwb2xsX3R5 cGUuaCBiL2Vwb2xsX3R5cGUuaA0KPiBpbmRleCAwNjEzMjVhLi5lMzIwNmQxIDEwMDY0NA0KPiAt LS0gYS9lcG9sbF90eXBlLmgNCj4gKysrIGIvZXBvbGxfdHlwZS5oDQo+IEBAIC01MCw2ICs1MCwx MCBAQCBlbnVtIGVwb2xsX3R5cGUgew0KPiAgIAlFUE9MTF9UWVBFX0NPTkZfTElTVEVOLA0KPiAg IAkvKiBDb25maWd1cmF0aW9uIHNvY2tldCAqLw0KPiAgIAlFUE9MTF9UWVBFX0NPTkYsDQo+ICsJ Lyogdmhvc3Qta2VybmVsIGNhbGwgc29ja2V0ICovDQo+ICsJRVBPTExfVFlQRV9WSE9TVF9DQUxM LA0KPiArCS8qIHZob3N0LWtlcm5lbCBlcnJvciBzb2NrZXQgKi8NCj4gKwlFUE9MTF9UWVBFX1ZI T1NUX0VSUk9SLA0KPiANCj4gICAJRVBPTExfTlVNX1RZUEVTLA0KPiAgIH07DQo+IGRpZmYgLS1n aXQgYS9wYXNzdC5jIGIvcGFzc3QuYw0KPiBpbmRleCA1MDU0NTUxLi42MDAyMjMxIDEwMDY0NA0K PiAtLS0gYS9wYXNzdC5jDQo+ICsrKyBiL3Bhc3N0LmMNCj4gQEAgLTY1LDYgKzY1LDcgQEAgY2hh ciBwa3RfYnVmW1BLVF9CVUZfQllURVNdCV9fYXR0cmlidXRlX18gKChhbGlnbmVkKFBBR0VfU0la RSkpKTsNCj4gICBzdHJ1Y3QgY3R4IHBhc3N0X2N0eCA9IHsNCj4gICAJLnBpZGZpbGVfZmQJCT0g LTEsDQo+ICAgCS5mZF90YXAJCQk9IC0xLA0KPiArCS52aG9zdAkJCT0geyAuZmQgPSAtMSB9LA0K DQpZb3Ugc2hvdWxkIGFsc28gaW5pdGlhbGl6ZSAua2lja19mZCwgLmVycl9mZCwgLmNhbGxfZmQg dG8gLTEgdG8gYXZvaWQgY2xvc2Ugc3RkaW4gb24gdmhvc3QgDQpjbGVhbnVwLg0KDQo+ICAgCS5m ZF90YXBfbGlzdGVuCQk9IC0xLA0KPiAgIAkuZmRfY29udHJvbF9saXN0ZW4JPSAtMSwNCj4gICAJ LmZkX3JlcGFpcl9saXN0ZW4JPSAtMSwNCj4gQEAgLTkyLDYgKzkzLDggQEAgY2hhciAqZXBvbGxf dHlwZV9zdHJbXSA9IHsNCj4gICAJW0VQT0xMX1RZUEVfTkxfTkVJR0hdCQk9ICJuZXRsaW5rIG5l aWdoYm91ciBub3RpZmllciBzb2NrZXQiLA0KPiAgIAlbRVBPTExfVFlQRV9DT05GX0xJU1RFTl0J PSAiY29uZmlndXJhdGlvbiBsaXN0ZW5pbmcgc29ja2V0IiwNCj4gICAJW0VQT0xMX1RZUEVfQ09O Rl0JCT0gImNvbmZpZ3VyYXRpb24gc29ja2V0IiwNCj4gKwlbRVBPTExfVFlQRV9WSE9TVF9DQUxM XQkJPSAidmhvc3Qta2VybmVsIGNhbGwgc29ja2V0IiwNCj4gKwlbRVBPTExfVFlQRV9WSE9TVF9F UlJPUl0JPSAidmhvc3Qta2VybmVsIGVycm9yIHNvY2tldCIsDQo+ICAgfTsNCj4gICBzdGF0aWNf YXNzZXJ0KEFSUkFZX1NJWkUoZXBvbGxfdHlwZV9zdHIpID09IEVQT0xMX05VTV9UWVBFUywNCj4g ICAJICAgICAgImVwb2xsX3R5cGVfc3RyW10gZG9lc24ndCBtYXRjaCBlbnVtIGVwb2xsX3R5cGUi KTsNCj4gZGlmZiAtLWdpdCBhL3Bhc3N0LmggYi9wYXNzdC5oDQo+IGluZGV4IGFmZDhlOWYuLmJl NjgwMDIgMTAwNjQ0DQo+IC0tLSBhL3Bhc3N0LmgNCj4gKysrIGIvcGFzc3QuaA0KPiBAQCAtMTMs OCArMTMsMTEgQEAgdW5pb24gZXBvbGxfcmVmOw0KPiANCj4gICAjaW5jbHVkZSA8c3RkYm9vbC5o Pg0KPiAgICNpbmNsdWRlIDxhc3NlcnQuaD4NCj4gKyNpbmNsdWRlIDxsaW1pdHMuaD4NCj4gICAj aW5jbHVkZSA8c3lzL2Vwb2xsLmg+DQo+IA0KPiArI2luY2x1ZGUgPGxpbnV4L3ZpcnRpb19uZXQu aD4NCj4gKw0KPiAgICNpbmNsdWRlICJwaWYuaCINCj4gICAjaW5jbHVkZSAicGFja2V0LmgiDQo+ ICAgI2luY2x1ZGUgInNpcGhhc2guaCINCj4gQEAgLTM1LDggKzM4LDQzIEBAIHVuaW9uIGVwb2xs X3JlZjsNCj4gICAjZGVmaW5lIE1BQ19PVVJfTEFBCVwNCj4gICAJKCh1aW50OF90IFtFVEhfQUxF Tl0pezB4OWEsIDB4NTUsIDB4OWEsIDB4NTUsIDB4OWEsIDB4NTV9KQ0KPiANCj4gLS8qIExhcmdl IGVub3VnaCBmb3IgfjEyOCBtYXhpbXVtIHNpemUgZnJhbWVzICovDQo+IC0jZGVmaW5lIFBLVF9C VUZfQllURVMJCSg4VUwgPDwgMjApDQo+ICsNCj4gKy8qKiBMMl9NQVhfTEVOX1BBU1RBIC0gTWF4 aW11bSBmcmFtZSBsZW5ndGggZm9yIHBhc3RhIG1vZGUgKHdpdGggTDIgaGVhZGVyKQ0KPiArICoN Cj4gKyAqIFRoZSBrZXJuZWwgdHVudGFwIGRldmljZSBpbXBvc2VzIGEgbWF4aW11bSBmcmFtZSBz aXplIG9mIDY1NTM1IGluY2x1ZGluZw0KPiArICogJ2hhcmRfaGVhZGVyX2xlbicgKDE0IGJ5dGVz IGZvciBMMiBFdGhlcm5ldCBpbiB0aGUgY2FzZSBvZiAidGFwIiBtb2RlKS4NCj4gKyAqLw0KPiAr I2RlZmluZSBMMl9NQVhfTEVOX1BBU1RBCVVTSFJUX01BWA0KPiArDQo+ICsvKiogTDJfTUFYX0xF Tl9QQVNTVCAtIE1heGltdW0gZnJhbWUgbGVuZ3RoIGZvciBwYXNzdCBtb2RlICh3aXRoIEwyIGhl YWRlcikNCj4gKyAqDQo+ICsgKiBUaGUgb25seSBzdHJ1Y3R1cmFsIGxpbWl0IHRoZSBRRU1VIHNv Y2tldCBwcm90b2NvbCBpbXBvc2VzIG9uIGZyYW1lcyBpcw0KPiArICogKDJeMzItMSkgYnl0ZXMs IGJ1dCB0aGF0IHdvdWxkIGJlIGx1ZGljcm91c2x5IGxvbmcgaW4gcHJhY3RpY2UuICBGb3Igbm93 LA0KPiArICogbGltaXQgaXQgc29tZXdoYXQgYXJiaXRyYXJpbHkgdG8gNjU1MzUgYnl0ZXMuICBG SVhNRTogV29yayBvdXQgYW4gYXBwcm9wcmlhdGUNCj4gKyAqIGxpbWl0IHdpdGggbW9yZSBwcmVj aXNpb24uDQo+ICsgKi8NCj4gKyNkZWZpbmUgTDJfTUFYX0xFTl9QQVNTVAlVU0hSVF9NQVgNCj4g Kw0KPiArLyoqIEwyX01BWF9MRU5fVlUgLSBNYXhpbXVtIGZyYW1lIGxlbmd0aCBmb3Igdmhvc3Qt dXNlciBtb2RlICh3aXRoIEwyIGhlYWRlcikNCj4gKyAqDQo+ICsgKiB2aG9zdC11c2VyIGFsbG93 cyBtdWx0aXBsZSBidWZmZXJzIHBlciBmcmFtZSwgZWFjaCBvZiB3aGljaCBjYW4gYmUgcXVpdGUN Cj4gKyAqIGxhcmdlLCBzbyB0aGUgaW5oZXJlbnQgZnJhbWUgc2l6ZSBsaW1pdCBpcyByYXRoZXIg bGFyZ2UuICBNdWNoIGxhcmdlciB0aGFuIGlzDQo+ICsgKiBhY3R1YWxseSB1c2VmdWwgZm9yIElQ LiAgRm9yIG5vdyBsaW1pdCBhcmJpdHJhcmlseSB0byA2NTUzNSBieXRlcy4gRklYTUU6DQo+ICsg KiBXb3JrIG91dCBhbiBhcHByb3ByaWF0ZSBsaW1pdCB3aXRoIG1vcmUgcHJlY2lzaW9uLg0KPiAr ICovDQo+ICsjZGVmaW5lIEwyX01BWF9MRU5fVlUJCVVTSFJUX01BWA0KPiArDQo+ICsvKiBOdW1i ZXIgb2YgZGVzY3JpcHRvcnMgaW4gZWFjaCB2aG9zdC1uZXQgdmlydHF1ZXVlICovDQo+ICsjZGVm aW5lIFZIT1NUX05ERVNDUwkJMTI4DQo+ICsNCj4gKy8qIEJ5dGVzIG9mIHBrdF9idWYgYmFja2lu ZyBvbmUgZnJvbS1ndWVzdCBkZXNjcmlwdG9yOiBhIG1heGltdW0gc2l6ZSBmcmFtZQ0KPiArICog cGx1cyB0aGUgdmlydGlvLW5ldCBoZWFkZXIgdGhlIGtlcm5lbCB3cml0ZXMgaW4gZnJvbnQgb2Yg aXQNCj4gKyAqLw0KPiArI2RlZmluZSBWSE9TVF9ERVNDX0JZVEVTCShMMl9NQVhfTEVOX1BBU1RB ICsJCQlcDQo+ICsJCQkJIHNpemVvZihzdHJ1Y3QgdmlydGlvX25ldF9oZHJfbXJnX3J4YnVmKSkN Cj4gKw0KPiArLyogT25lIG1heGltdW0gc2l6ZSBmcmFtZSBwZXIgdmhvc3QtbmV0IGRlc2NyaXB0 b3IgKi8NCj4gKyNkZWZpbmUgUEtUX0JVRl9CWVRFUwkJKFZIT1NUX05ERVNDUyAqIFZIT1NUX0RF U0NfQllURVMpDQoNCllvdSBhZ3JlZWQgdG8ga2VlcCAoOFVMIDw8IDIwKQ0KDQo+IA0KPiAgIGV4 dGVybiBjaGFyIHBrdF9idWYJCVtQS1RfQlVGX0JZVEVTXTsNCj4gDQo+IEBAIC0xNTYsNiArMTk0 LDQwIEBAIHN0cnVjdCBpcDZfY3R4IHsNCj4gDQo+ICAgI2luY2x1ZGUgPG5ldGluZXQvaWZfZXRo ZXIuaD4NCj4gDQo+ICsvKioNCj4gKyAqIGVudW0gdmhvc3RfbW9kZSAtIFdoZXRoZXIgdG8gdXNl IHZob3N0LWtlcm5lbCBhY2NlbGVyYXRpb24NCj4gKyAqIEBWSE9TVF9NT0RFX0FVVE86CVVzZSBp dCBpZiBpdCdzIGF2YWlsYWJsZSwgZmFsbCBiYWNrIHRvIHBsYWluIHRhcCBpZiBub3QNCj4gKyAq IEBWSE9TVF9NT0RFX09OOglSZXF1aXJlIGl0LCBmYWlsIGlmIGl0J3Mgbm90IGF2YWlsYWJsZQ0K PiArICogQFZIT1NUX01PREVfT0ZGOglOZXZlciB1c2UgaXQNCj4gKyAqLw0KPiArZW51bSB2aG9z dF9tb2RlIHsNCj4gKwlWSE9TVF9NT0RFX0FVVE8gPSAwLA0KPiArCVZIT1NUX01PREVfT04sDQo+ ICsJVkhPU1RfTU9ERV9PRkYsDQo+ICt9Ow0KPiArDQo+ICsvKioNCj4gKyAqIHN0cnVjdCB2aG9z dF9jdHggLSBFeGVjdXRpb24gY29udGV4dCBmb3Igdmhvc3Qta2VybmVsIGFjY2VsZXJhdGlvbg0K PiArICogQG1vZGU6CVdoZXRoZXIgdG8gdXNlIGFjY2VsZXJhdGlvbiBhdCBhbGwsIHNlZSBlbnVt IHZob3N0X21vZGUNCj4gKyAqIEBmZDoJCUZpbGUgZGVzY3JpcHRvciBmb3IgL2Rldi92aG9zdC1u ZXQsIC0xIGlmIG5vdCBzZXQgdXANCj4gKyAqIEBmZWF0dXJlczoJdmlydGlvIGZlYXR1cmUgYml0 cyBuZWdvdGlhdGVkIHdpdGggdmhvc3QtbmV0DQo+ICsgKiBAdnE6CQlQZXItdmlydHF1ZXVlIGV2 ZW50ZmRzIChbMF0gaXMgZnJvbS1ndWVzdCwgWzFdIGlzIHRvLWd1ZXN0KQ0KPiArICogQHZxLmtp Y2tfZmQ6CVdyaXR0ZW4gYnkgdXMsIHRvIHRlbGwgdGhlIGtlcm5lbCB3ZSBxdWV1ZWQgc29tZXRo aW5nDQo+ICsgKiBAdnEuY2FsbF9mZDoJV3JpdHRlbiBieSB0aGUga2VybmVsLCB0byB0ZWxsIHVz IGl0IHF1ZXVlZCBzb21ldGhpbmcNCj4gKyAqIEB2cS5lcnJfZmQ6CVdyaXR0ZW4gYnkgdGhlIGtl cm5lbCBvbiBhbiBpbnRlcm5hbCB2aG9zdCBlcnJvcg0KPiArICovDQo+ICtzdHJ1Y3Qgdmhvc3Rf Y3R4IHsNCj4gKwllbnVtIHZob3N0X21vZGUgbW9kZTsNCj4gKwlpbnQgZmQ7DQo+ICsJdWludDY0 X3QgZmVhdHVyZXM7DQo+ICsNCj4gKwlzdHJ1Y3Qgew0KPiArCQlpbnQga2lja19mZDsNCj4gKwkJ aW50IGNhbGxfZmQ7DQo+ICsJCWludCBlcnJfZmQ7DQo+ICsJfSB2cVsyXTsNCj4gK307DQo+ICsN Cj4gICAvKioNCj4gICAgKiBzdHJ1Y3QgY3R4IC0gRXhlY3V0aW9uIGNvbnRleHQNCj4gICAgKiBA bW9kZToJCU9wZXJhdGlvbiBtb2RlLCBxZW11L1VOSVggZG9tYWluIHNvY2tldCBvciBuYW1lc3Bh Y2UvdGFwDQo+IEBAIC0xODUsNiArMjU3LDcgQEAgc3RydWN0IGlwNl9jdHggew0KPiAgICAqIEBv dXJfdGFwX21hYzoJUGFzdGEvcGFzc3QncyBNQUMgb24gdGhlIHRhcCBsaW5rDQo+ICAgICogQGd1 ZXN0X21hYzoJCU1BQyBhZGRyZXNzIG9mIGd1ZXN0IG9yIG5hbWVzcGFjZSwgc2VlbiBvciBjb25m aWd1cmVkDQo+ICAgICogQGhhc2hfc2VjcmV0OgkxMjgtYml0IHNlY3JldCBmb3Igc2lwaGFzaCBm dW5jdGlvbnMNCj4gKyAqIEB2aG9zdDoJCXZob3N0LWtlcm5lbCBhY2NlbGVyYXRpb24gY29udGV4 dCwgcGFzdGEgbW9kZSBvbmx5DQo+ICAgICogQGlmaTQ6CQlUZW1wbGF0ZSBpbnRlcmZhY2UgZm9y IElQdjQsIC0xOiBub25lLCAwOiBJUHY0IGRpc2FibGVkDQo+ICAgICogQGlwNDoJCUlQdjQgY29u ZmlndXJhdGlvbg0KPiAgICAqIEBkbnNfc2VhcmNoOgkJRE5TIHNlYXJjaCBsaXN0DQo+IEBAIC0y NjUsNiArMzM4LDggQEAgc3RydWN0IGN0eCB7DQo+IA0KPiAgIAl1aW50NjRfdCBoYXNoX3NlY3Jl dFsyXTsNCj4gDQo+ICsJc3RydWN0IHZob3N0X2N0eCB2aG9zdDsNCj4gKw0KPiAgIAlpbnQgaWZp NDsNCj4gICAJc3RydWN0IGlwNF9jdHggaXA0Ow0KPiANCj4gZGlmZiAtLWdpdCBhL3RhcC5oIGIv dGFwLmgNCj4gaW5kZXggMTYyNTk3NS4uZjhjMzBlMiAxMDA2NDQNCj4gLS0tIGEvdGFwLmgNCj4g KysrIGIvdGFwLmgNCj4gQEAgLTEyLDMxICsxMiw2IEBADQo+ICAgI2luY2x1ZGUgInBhc3N0Lmgi DQo+ICAgI2luY2x1ZGUgInRhcF9oZHIuaCINCj4gDQo+IC0vKiogTDJfTUFYX0xFTl9QQVNUQSAt IE1heGltdW0gZnJhbWUgbGVuZ3RoIGZvciBwYXN0YSBtb2RlICh3aXRoIEwyIGhlYWRlcikNCj4g LSAqDQo+IC0gKiBUaGUga2VybmVsIHR1bnRhcCBkZXZpY2UgaW1wb3NlcyBhIG1heGltdW0gZnJh bWUgc2l6ZSBvZiA2NTUzNSBpbmNsdWRpbmcNCj4gLSAqICdoYXJkX2hlYWRlcl9sZW4nICgxNCBi eXRlcyBmb3IgTDIgRXRoZXJuZXQgaW4gdGhlIGNhc2Ugb2YgInRhcCIgbW9kZSkuDQo+IC0gKi8N Cj4gLSNkZWZpbmUgTDJfTUFYX0xFTl9QQVNUQQlVU0hSVF9NQVgNCj4gLQ0KPiAtLyoqIEwyX01B WF9MRU5fUEFTU1QgLSBNYXhpbXVtIGZyYW1lIGxlbmd0aCBmb3IgcGFzc3QgbW9kZSAod2l0aCBM MiBoZWFkZXIpDQo+IC0gKg0KPiAtICogVGhlIG9ubHkgc3RydWN0dXJhbCBsaW1pdCB0aGUgUUVN VSBzb2NrZXQgcHJvdG9jb2wgaW1wb3NlcyBvbiBmcmFtZXMgaXMNCj4gLSAqICgyXjMyLTEpIGJ5 dGVzLCBidXQgdGhhdCB3b3VsZCBiZSBsdWRpY3JvdXNseSBsb25nIGluIHByYWN0aWNlLiAgRm9y IG5vdywNCj4gLSAqIGxpbWl0IGl0IHNvbWV3aGF0IGFyYml0cmFyaWx5IHRvIDY1NTM1IGJ5dGVz LiAgRklYTUU6IFdvcmsgb3V0IGFuIGFwcHJvcHJpYXRlDQo+IC0gKiBsaW1pdCB3aXRoIG1vcmUg cHJlY2lzaW9uLg0KPiAtICovDQo+IC0jZGVmaW5lIEwyX01BWF9MRU5fUEFTU1QJVVNIUlRfTUFY DQo+IC0NCj4gLS8qKiBMMl9NQVhfTEVOX1ZVIC0gTWF4aW11bSBmcmFtZSBsZW5ndGggZm9yIHZo b3N0LXVzZXIgbW9kZSAod2l0aCBMMiBoZWFkZXIpDQo+IC0gKg0KPiAtICogdmhvc3QtdXNlciBh bGxvd3MgbXVsdGlwbGUgYnVmZmVycyBwZXIgZnJhbWUsIGVhY2ggb2Ygd2hpY2ggY2FuIGJlIHF1 aXRlDQo+IC0gKiBsYXJnZSwgc28gdGhlIGluaGVyZW50IGZyYW1lIHNpemUgbGltaXQgaXMgcmF0 aGVyIGxhcmdlLiAgTXVjaCBsYXJnZXIgdGhhbiBpcw0KPiAtICogYWN0dWFsbHkgdXNlZnVsIGZv ciBJUC4gIEZvciBub3cgbGltaXQgYXJiaXRyYXJpbHkgdG8gNjU1MzUgYnl0ZXMuIEZJWE1FOg0K PiAtICogV29yayBvdXQgYW4gYXBwcm9wcmlhdGUgbGltaXQgd2l0aCBtb3JlIHByZWNpc2lvbi4N Cj4gLSAqLw0KPiAtI2RlZmluZSBMMl9NQVhfTEVOX1ZVCQlVU0hSVF9NQVgNCj4gLQ0KPiAgIHN0 cnVjdCB1ZHBoZHI7DQo+IA0KPiAgIC8qKg0KPiBAQCAtNTAsMTAgKzI1LDE3IEBAIHN0cnVjdCB1 ZHBoZHI7DQo+ICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgaW92ZWMgdGFwX2hkcl9pb3YoY29uc3Qg c3RydWN0IGN0eCAqYywNCj4gICAJCQkJICAgICAgIHN0cnVjdCB0YXBfaGRyICp0aGRyKQ0KPiAg IHsNCj4gLQlyZXR1cm4gKHN0cnVjdCBpb3ZlYyl7DQo+ICsJc3RydWN0IGlvdmVjIHJldCA9IHsN Cj4gICAJCS5pb3ZfYmFzZSA9IHRoZHIsDQo+IC0JCS5pb3ZfbGVuID0gYy0+bW9kZSA9PSBNT0RF X1BBU1NUID8gc2l6ZW9mKCp0aGRyKSA6IDAsDQo+ICAgCX07DQo+ICsNCj4gKwlpZiAoYy0+dmhv c3QuZmQgIT0gLTEpIHsNCj4gKwkJcmV0Lmlvdl9sZW4gPSBzaXplb2Yoc3RydWN0IHZpcnRpb19u ZXRfaGRyX21yZ19yeGJ1Zik7DQo+ICsJfSBlbHNlIHsNCj4gKwkJcmV0Lmlvdl9sZW4gPSBjLT5t b2RlID09IE1PREVfUEFTU1QgPyBzaXplb2YodGhkci0+dm5ldF9sZW4pIDogMDsNCj4gKwl9DQo+ ICsNCj4gKwlyZXR1cm4gcmV0Ow0KPiAgIH0NCj4gDQo+ICAgLyoqDQo+IC0tDQo+IDIuMzkuNSAo QXBwbGUgR2l0LTE1NCkNCg0K