From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id B8CB71FF0DF for ; Thu, 15 Oct 2026 12:07:45 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 3C1342144E; Thu, 15 Oct 2026 12:07:42 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sgfKU/h6IzU6uoocqfHrS1DDMldL2rpzisalyy6MOm6MRpM/BS1O6GJOwy+dDHLqgQ1ED7v5EFtr0+5eE+e1Sm5Sb2DOQoWgcXLEqX+bgAKvE9bLepTbM8sXEwghrThCAU0TQafjdFV2a7/eBNwBNXTvH3NiPKcXU9lqbcuwEtsRTZoKIguh9Wsq5SzBJyNgk9zOfT1waLHgueBlRIvYgQkhr3jOPwRndux2sd/ejxOaKdrX5CYu/tKBH3C+7lDFmaU1MKAR2VO6DMCg3BQPHt2tJeVclEN0I55n3TbZ6qYuLE36qFwODk6IVlRoIY+q3SZdxg7UxCM/39NG+9ZX5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=r7Z3OoFqZvTwsk2fBO945YMOZAcalqV6Z2ErCLNu5yE=; b=e7oWjavp/tFXHpwKfZWGJJ5LXoCenIAs8IZzbbClc4Xj2YTG2OYIC0fiUv781A6CnXwpsQbj72f8s0wDYLvrPwUp6V2ZDsTL0URGKDtylF/RFiZ9ucuicpVYUj5KTmfp//pZO92ELADzI3RAKFA3lhSmNunQRSgvnlVaXimUqw0B3IjqLMDMp4RsgKXLSpggWkh/5HG3Y1dBkujmxl/deeyZ0FYB5697IRWGlV/6qY6HtayKtZyARdXa2xLXOzVxnY1KT6/cRUltBSCzzSTXxiH69JXirQ3qEEmc0kIX/ov7spUeSkTQNjaEEI675UqFOLsdPf/5aXBYGCANII8GcQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=groupe-cyllene.com; dmarc=pass action=none header.from=groupe-cyllene.com; dkim=pass header.d=groupe-cyllene.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=groupecyllene.onmicrosoft.com; s=selector2-groupecyllene-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r7Z3OoFqZvTwsk2fBO945YMOZAcalqV6Z2ErCLNu5yE=; b=MnRBJXUYYHcu4ARTK1yrwgm1lrvZm0CZpO5a35MYEMvF9RG4825e7h9YXgMWjg/aJSQxUDM+KIiEIYFjZXIzULqDqD8egirQBIpQRMn/zm13dRDlu2c5ot0NfBHSeqVfdU+lRQ17qVzF1wr5833TNZgDAWcfrLObHClhCIbeEwk= From: "DERUMIER, Alexandre" To: "pve-devel@lists.proxmox.com" , "rdmitry0911@gmail.com" Subject: Re: [RFC] WebRTC console for VMs via QEMU's D-Bus display Thread-Topic: [RFC] WebRTC console for VMs via QEMU's D-Bus display Thread-Index: AQHdVXBGRf4eiR7QAEqLeEZZz5ArJ7byIEeAgArwHwCAABI1QIABJVlQgAAi5IA= Date: Thu, 15 Oct 2026 09:52:18 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.60.2 authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=groupe-cyllene.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAZSPR01MB0011:EE_|MR1PPFFF9541D35:EE_ x-ms-office365-filtering-correlation-id: f4634ed4-2271-4208-3ff0-08df2aa20089 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|23010399003|38070700021|56012099006|5023799004|261009221227099003|261009220027099003|261009223327099003|261009221727099003|261009223027099003|10067099003|22082099003|18002099003|6133799003|3023799007; x-microsoft-antispam-message-info: a9SHl7yYWGoRg6LwwGaXFrS7xxO+C8tG1a3c0a+q4zYljOqfo2JJywPIXmBBnZNGueTjj2ZZHU3KoCO9DDebrsSEGpR4ciNzanuY7ex2IBn81niAKIHMLfpilsKQimgGZ80kQGYpxhqTJwhyzcCdIVqk2K53zbdKh+ptFN2gRwa1ncJJ8bV6KOdd3gr6F88BQylC1tkabX0Ps+9em28VY37MGvI1d1obbZm6d8FBktkoCAQVJblGG3BbPlze7DXHtBQhsG9IP1OWu4WjmuWmblCtB0msFeyUfpuffMhnMcexi2KOV0VeyE4ZCQotT3DLcsGukytmuDpWV884UqAJuLVlKW6yGW7b+D3bt8guxi9RBuNCRGjKFCmCUQUKGZP8l4ugup18BmIEIG/xyERrWszhIXYnNB+EybBoeFD5FWxD7u7GuywPbwSt/eIBNVmGvt88qzeOeyc7RMDK87hRUAvpkdi79Vx230twLgIUu5DbaGddhihOOjhVHYkcN2w4x6LljebZUrp8g6gvsdRui7fniPqsJIQOzTEHZSRWQ6/imdAPyg39uce9W/w9qLaIUINLzWNZmUMOjJdO19Mx/EIZJVH6qe1LsmAQK32OSHtAXwzlj19/I3x5D1ffQ73GrtzkQqau9WIxS+L9rWO4TPFzW8aNSmC66hJ7ZUVdeJc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAZSPR01MB0011.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(23010399003)(38070700021)(56012099006)(5023799004)(261009221227099003)(261009220027099003)(261009223327099003)(261009221727099003)(261009223027099003)(10067099003)(22082099003)(18002099003)(6133799003)(3023799007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WFBQeGdPWkFNZGhzRkg3dlIrQjdRWWdwQU9wc004ekxyTkNhVTdCanBpNk8w?= =?utf-8?B?THJ6UEdmL21lTDR1OEJWU0gwbWxhbzZpZGIrSFVpQnVURjVGQlpDSmdwZjM2?= =?utf-8?B?ZmZkS0Q1cnRFc1ZwR0t2Q0xRSmxPQUZOdXRiVHkvRWlZc3JybG1wVDN5UE5j?= =?utf-8?B?aklVa1F1NnVCM3pveFdXdU1HZCtacUZ6NmFON0dRaDNtUDRJQlZ0emsxWFRm?= =?utf-8?B?Y1g2ZTlaL1RhbDQrYXB3dTFhZkpNYjM0bWVUc1FmcEMxcDRUNTZnazJrVlhz?= =?utf-8?B?WXhwN2wvbjRwaHN5TEVGMnpLUE5OSmxlR1RQdzVnNTh4aitJL0g1Q1loRVJD?= =?utf-8?B?S29OSCsrbTVsSTd0V2l1bC80RlZteFhmRGlrZ0w1Nm94cS9GSWdMUHc1d3ZM?= =?utf-8?B?VDJDQVJtRm1jSGxCNzFWMG84aWp5RW1tL2s3NFMrYXdyRkJ6VWl4bG5Tam1W?= =?utf-8?B?em56OGlNTjBtbEZ0ZFlZOU8wRXpOdUtzaHgreGVMcmtJNWhsbnRzNHY1TGc1?= =?utf-8?B?U1laT0xPYTdPNzEzb2MxWmpsUlpYelc5djRPQVM5UHZIVHE4bnQ4OTlQUkth?= =?utf-8?B?Z1c5bzlpSHR1cG14QlRlTW1lN2VQakJYSFBvd3V1MGJybFg1SGpYeFp2MGRV?= =?utf-8?B?amgyVzN4OHVOMis5aXhwM2pOTkVOOGF0NGFMMnowSllMMkFLWno5NXhCclkx?= =?utf-8?B?US9wU3EwSG5UREtnM3FuL3pnWk1jaXBUeTBudm9CUGlNTk1EamVpWWNnTXhj?= =?utf-8?B?MFNkWW1DRWdlZkpqOFdHY3hNa2FXb0tJaU9EaXpEa3VMY0pxWW5ZQnJlUEZl?= =?utf-8?B?NUdqZzNlSUUxZTI2WkVnYy83WjlpVHVqSC9RWXU5S3JSUWxsYTQ2MWJ2RWln?= =?utf-8?B?SVdQZlpzTlRYK3d5c1o3YWliV0JBSHAzcis4bU9ZUzBDSTVGZDZ3NFRDWGlt?= =?utf-8?B?REpLTC90dWRJSnhWRm1pQXRjRndvemQ3QmRBR2RLTjNRSk1mUnJtQmNVbDg3?= =?utf-8?B?T0VRVEt4TW82L21mNmliYUN3WGVtTUw3ZStNblUrRFdJVVVHc3ZOUUFsYm9j?= =?utf-8?B?ZGJLdVZqRzNYR1lvZzhYZ0ZjbTkxTjJGbC9JUUNxTnBCeGZFZWxaZ3Aya2NU?= =?utf-8?B?ZGY4TXlUN0tKMlc2Nzd0V3ZKVlJZWFZ4OUhxMERaU3BqQTJxRVlKclRTMmMy?= =?utf-8?B?WlR3eU5rL0ZHSjEyTHJKL1NBRUR1RWgvUDBqSW5TRCt1dGVBMXhlNml6NEp1?= =?utf-8?B?Zy9rdFA1Z0hoT0N2ckVBbGwxb0xJODJ0SDNCamRRMGNvR0x1VmxBdkRoYUdh?= =?utf-8?B?VkpVN1piR1lNK2NHVjFrRW1iNmpHRGUwcDhLNWIwQlptNWswL0Z4SWdPK1NC?= =?utf-8?B?eFFOd01lazlWazJIZ1B2VUJPN0Npa2xyajJ1eHZzYmRxKy9jNGlzR1RTZDRM?= =?utf-8?B?dDQycmE5RklQeXNrSUluMzlPRlVxMzY2bWZHYXZFQmovVzlla1dIaTltemQy?= =?utf-8?B?ZEFlOFJHR0hKc2M0SXRJNU9neS9TV20zaUcra0c5NlhaaVNuS1NZK0s3U3J3?= =?utf-8?B?RWVGMDJ1VlBCeFJESVFRbGRvQ1FTZzNXSGxFM1VzNUdlZFVtcGkwdmNVOTQ3?= =?utf-8?B?TlN6SDAvMXN6VnhXZUNwSThRcjFtMlY5dGhSYnBVTmtnY2RsOVYzNFRRVU5Q?= =?utf-8?B?YmFvLzVNbllGUExQSTAxbkNNNTgzMHpRbFZlY3dMbTZKcHMyNXh1Z21mOU92?= =?utf-8?B?dDF1UUd0cVc0eVRoUm1PT205U1Zsb3hPdUZZd0EwdDN4SjduSlpMc25LcURh?= =?utf-8?B?N2dkRjJIVEJacXBiVUYwY2d6NFVGbGhrcTNxQXBNTXg4Q0hBUTdqQ1dvbDh0?= =?utf-8?B?eFY0dThuY2ZhVFIyZVV4NHhWbWZtSTRuWFpRMkhOQ0JVcEw2eDU0eDFwNUxP?= =?utf-8?B?WmxVdS8rRi9rNGZWanpFSGNXajc3RnNuSHVveHR0NkJEaGZkQUwyd2RsVTF0?= =?utf-8?B?Y09KR3ZQUXFkUWY2TFgrS0hVR0k4VGdFMGZxc2VWd2pWaldkbDhJcnFKc2U1?= =?utf-8?B?RmRGYlRHV2RCVGx5WDRPR01qNXhQM0l0WlNueHhQYWtJTkM3cFEyeUpnK0hy?= =?utf-8?B?QTFhcjUzNHFVSDZnYUxVc2ZPeHBlNGlCbDhONFlsTG9xT3JHZFBRakxYb3J3?= =?utf-8?B?TVc0aGxGZ0RYdHFSN2lISnU4M244em1RSWlJSFNTVFd5M3JIZnZWTUwzQ05W?= =?utf-8?B?dlJ2dmxsaEVlOERDVzJSN054SkV0RE5KRUlXNU8yWXdGcHA0RGo3UitibTQr?= =?utf-8?B?b1JzQ0VqSEZzdXpvZWRSZHg0cHNEb0FsU2VzMGhaaUpsc2ZCclQ2bDRvb2RK?= =?utf-8?Q?l076bwmpIFtcQCjUl/r0/JkuF0wqqb2kmo9ez?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: groupe-cyllene.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAZSPR01MB0011.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: f4634ed4-2271-4208-3ff0-08df2aa20089 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2026 09:52:19.1551 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: ee11ccf7-112c-4284-848b-f229745e715b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: g6h/ovwCdyZfS1yJDfEMoHPLKWIqhEVPMsKiv25AZlpqk0Bb+WwBPU+Azarw5nAuJDuBNwPw0m8grao5ZpzPOuhb2ukNX0IFkns+w+ZSVgTZG8gnXsu5GKrm+sisKHM7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MR1PPFFF9541D35 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.118 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DMARC_PASS -0.1 DMARC pass policy POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: UQMZ7IYDWSHUUIN47ESXZRHZNK7WSJQR X-Message-ID-Hash: UQMZ7IYDWSHUUIN47ESXZRHZNK7WSJQR X-MailFrom: alexandre.derumier@groupe-cyllene.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: SGkgRG1pdHJ5LA0KDQpJIHdvbmRlciBpZiBpdCBjb3VsZCBiZSBwb3NzaWJsZSB0byBwdXQgeW91 ciBxc20tcHZlLWRpcmVjdCBkYWVtb24NCmJlaGluZCBwdmVwcm94eSAsIGxpa2UgSSBkbyBmb3Ig bXkgcmRwIGRhZW1vbiA/IChpdCdzIGp1c3QgZm9yd2FyZGluZykNCg0KVGhpcyBjb3VsZCBhdm9p ZCB0byBleHBvc2UgYW5vdGhlciBwb3J0Lg0KKEkgcmVhbGx5IGRvbid0IGtub3duIGlmIGl0J3Mg cG9zc2libGUpLg0KDQpBbHNvLCBiZSBjYXJlZnVsbCwgODAwNyBpcyBhbHNvIHVzZWQgYnkgUEJT LiAoYW5kIHNvbWUgdXNlciBzb21ldGltZXMNCmluc3RhbGwgUEJTIG9uIHNhbWUgaG9zdCB0aGFu IFBWRSkNCg0KQnR3LCBob3cgZG8geW91IGhhdmUgYmVuY2hlZCBhbmQgcmV0cmlldmUgbWV0cmlj cyBmb3IgbGF0ZW5jeSA/DQoNCg0KTGUgamV1ZGkgMTUgb2N0b2JyZSAyMDI2IMOgIDEwOjUzICsw MzAwLCBEbWl0cnkgUiBhIMOpY3JpdMKgOg0KPiBIaSBBbGV4YW5kcmUsIGhpIGFsbCwNCj4gDQo+ IEZvbGxvd2luZyB1cCBvbiBteSByZXBseSB5ZXN0ZXJkYXk6IEkndmUgY29tcGxldGVkIHRoZSBR U00gcG9ydCB0bw0KPiB0aGUNCj4gc2hhcmVkIHBlci1WTSBELUJ1cyBmb3VuZGF0aW9uIGFuZCB1 cGxvYWRlZCB0aGUgc291cmNlLCBwYXRjaGVzIGFuZCBhDQo+IG1hdGNoaW5nIHByZXZpZXcgYnVp bGQ6DQo+IA0KPiBodHRwczovL2dpdGh1Yi5jb20vcmRtaXRyeTA5MTEvcXNtLXJkL3JlbGVhc2Vz L3RhZy92MC40LjAtcXNtLWRpcmVjdC0yMDI2MTAxDQo+IDUtc2hhcmVkOQ0KPiANCj4gVGhlIG9y aWdpbmFsIEQtQnVzIHBhdGNoIHJldGFpbnMgQWxleGFuZHJlJ3MgYXV0aG9yc2hpcCBhbmQgc2ln bi1vZmYuDQo+IHFlbXUtc2VydmVyIG93bnMgdGhlIGJ1cyBhbmQgaXRzIGxpZmV0aW1lOyBRU00g YXR0YWNoZXMgYXMgYQ0KPiBjb25zdW1lci4gVGhlDQo+IHByb3Bvc2VkIG9wdC1pbiBpcyBkYnVz LWRpc3BsYXk6IDEsIHdpdGggR1BVIHR5cGUvcmVuZGVybm9kZSBpbiB2Z2ENCj4gYW5kDQo+IGRy aXZlcj1kYnVzIGZvciBhdWRpbzAuIENQVSBkaXNwbGF5cyBjYW4ga2VlcCBWTkM7IEdMIGRpc3Bs YXlzIGNhbm5vdA0KPiBwcm92aWRlIFZOQy9TUElDRSBhbG9uZ3NpZGUgdGhlIEQtQnVzIGRpc3Bs YXkuDQo+IA0KPiBUaGUgY29tbW9uIGRpc3BsYXkgZm91bmRhdGlvbiwgV2ViUlRDIEFQSSBhbmQg cHZlLW1hbmFnZXIgVUkgYXJlDQo+IHNlcGFyYXRlDQo+IHNlcmllcy4gQSBzbWFsbCBwdmUtZ3Vl c3QtY29tbW9uIG1vZHVsZSBub3cgaGFuZGxlcyB0aGUgbG9jYWwgY29uc29sZQ0KPiBzZXJ2aWNl IGV4Y2hhbmdlIGZvciBib3RoIFZNIGFuZCBMWEMgQVBJcy4gTmF0aXZlIHNpZ25hbGxpbmcsIHN0 YXR1cw0KPiBhbmQNCj4gbWVkaWEgc2V0dGluZ3MgdXNlIFBWRSdzIGV4aXN0aW5nIEhUVFBTIG9y aWdpbiBvbjgwMDYsIHdpdGgNCj4gVk0uQ29uc29sZSBmb3INCj4gb2ZmZXJzL3JlYWRzIGFuZCBW TS5Db25maWcuT3B0aW9ucyBmb3Igc2V0dGluZ3Mgd3JpdGVzLiBUaGVyZSBpcyBubw0KPiBzZXBh cmF0ZQ0KPiBIVFRQUyBwb3J0OyBXZWJSVEMgbWVkaWEgc3RpbGwgdXNlcyBVRFAuDQo+IA0KPiBJ IGNoZWNrZWQgRmlyZWZveCB2aWRlbyBhbmQgYW4gb3JkaW5hcnkgUmVjb25uZWN0IGluIHRoZSBl bWJlZGRlZCBWTQ0KPiBjb25zb2xlLCBhbmQgTFhDIHZpZGVvL3NldHRpbmdzLCB3aXRoIHRoZSBv bGQ4MDA3IHNlcnZpY2Ugc3RvcHBlZC4NCj4gQW5vbnltb3VzDQo+IHJlYWRzIGFuZCB3cml0ZXMg d2l0aG91dCBhIENTUkYgdG9rZW4gYXJlIHJlamVjdGVkLiBUaGUgRmlyZWZveCBtRE5TDQo+IG5l Z290aWF0aW9uIGFuZCByZWNvbm5lY3QgaXNzdWVzIGZvdW5kIGR1cmluZyBWUE4gdGVzdGluZyBh cmUgZml4ZWQuDQo+IFRoZQ0KPiBlYXJsaWVyIHNoYXJlZC1iYXNlIGxhYiBjaGVja3MgYWxzbyBj b3ZlcmVkIENQVS9HTCBkaXNwbGF5LCBhdWRpbywNCj4gbWljcm9waG9uZSwgY2xpcGJvYXJkIGFu ZCBhIHNlY29uZCBpbmRlcGVuZGVudCBkaXNwbGF5IGNvbnN1bWVyLg0KPiANCj4gVGhlIGdyYXBo aWNhbCBMWEMgc2Vzc2lvbnMgYW5kIHByb3Zpc2lvbmluZyByZW1haW4gaW4gYSBzZXBhcmF0ZSBh ZGQtDQo+IG9uLg0KPiBUaGVpciBBUEkgcGF0Y2hlcyBjYW4gYmUgcmV2aWV3ZWQgaW5kZXBlbmRl bnRseSBvZiB0aGUgUUVNVQ0KPiBmb3VuZGF0aW9uLg0KPiBUaGVyZSBhcmUgYnVpbGRzIGFnYWlu c3QgcHZlLWNvbnRhaW5lciA2LjEuMTMgYW5kIDYuMS4xNCwgc28gdGhlDQo+IG5ld2VyDQo+IGNv bnRhaW5lciBwYWNrYWdlIGRvZXMgbm90IG5lZWQgdG8gYmUgZG93bmdyYWRlZC4NCj4gDQo+IE1h cmt1cyBGcmFuaydzIFZlbnVzIGNvbmZpZ3VyYXRpb24gYWRhcHRhdGlvbiBhbmQgdGhlIE5WSURJ QSByZWFkYmFjaw0KPiBwYXRjaA0KPiByZW1haW4gc2VwYXJhdGUgb3B0aW9uYWwgd29yay4gUnVu dGltZSBWZW51cyBhbmQgZnVsbCBLeWJlci9SRFANCj4gYnJvd3Nlcg0KPiBpbnRlZ3JhdGlvbiBo YXZlIG5vdCBiZWVuIHF1YWxpZmllZCBieSB0aGVzZSB0ZXN0cy4gVGhlIHNvdXJjZSBiYXNlcywN Cj4gcGFja2FnZSBoYXNoZXMsIHRlc3QgbG9ncyBhbmQgbWlncmF0aW9uIGluc3RydWN0aW9ucyBh cmUgaGVyZToNCj4gDQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9yZG1pdHJ5MDkxMS9xc20tcmQvdHJl ZS9tYWluL3FzbS1kaXJlY3QvdXBzdHJlYW0NCj4gDQo+IEknZCBhcHByZWNpYXRlIGZlZWRiYWNr IG9uIHRoZSBWTS13aWRlIG9wdGlvbiwgYnVzIGxpZmV0aW1lLCBhdWRpbw0KPiBjb25maWd1cmF0 aW9uIGFuZCB0aGUgQVBJL3NlcnZpY2Ugc3BsaXQuIFRoZSBwYXRjaGVzIGFyZSBzdGlsbCBhDQo+ IHByb3Bvc2FsOyBJDQo+IGhhdmUgbm90IHRyZWF0ZWQgdGhlIG5ldyBjb25maWd1cmF0aW9uIGFz IGFuIGFncmVlZCB1cHN0cmVhbQ0KPiBpbnRlcmZhY2UuDQo+IA0KPiBUaGFua3MsDQo+IERtaXRy eQ0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRG1pdHJ5IFIgW21h aWx0bzpyZG1pdHJ5MDkxMUBnbWFpbC5jb21dIA0KPiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIg MTQsIDIwMjYgNToyMCBQTQ0KPiBUbzogJ0RFUlVNSUVSLCBBbGV4YW5kcmUnOyAncHZlLWRldmVs QGxpc3RzLnByb3htb3guY29tJw0KPiBTdWJqZWN0OiBSRTogW1JGQ10gV2ViUlRDIGNvbnNvbGUg Zm9yIFZNcyB2aWEgUUVNVSdzIEQtQnVzIGRpc3BsYXkNCj4gDQo+IEhpIEFsZXhhbmRyZSwNCj4g DQo+IFRoYW5rcyBmb3IgeW91ciByZXBseSwgYW5kIGZvciBtYWtpbmcgeW91ciBwYXRjaGVzIGF2 YWlsYWJsZS4gSSdtDQo+IGdsYWQgd2UNCj4gY2FuIGJ1aWxkIG9uIHRoZSBzYW1lIGZvdW5kYXRp b24uDQo+IA0KPiBJJ2xsIHdvcmsgZnJvbSB5b3VyIHYyIHNlcmllcywgZmlyc3Qgc2VwYXJhdGlu ZyB0aGUgc2hhcmVkIHFlbXUtDQo+IHNlcnZlciBELUJ1cw0KPiBkaXNwbGF5IHN1cHBvcnQgZnJv bSB0aGUgY29uc29sZS1zcGVjaWZpYyBwYXJ0cy4gVGhlbiBJJ2xsIHJlYmFzZSB0aGUNCj4gV2Vi UlRDDQo+IGNvbnNvbGUgb250byB0aGF0IGJhc2UsIHVzaW5nIHRoZSBwZXItVk0gYnVzIGZyb20g eW91cg0KPiBEQnVzRGlzcGxheS5wbS4gSSdsbA0KPiBrZWVwIHRoZSBtZWRpYSBzZXJ2aWNlIGlu IGEgc2VwYXJhdGUgcGFja2FnZSBhbmQgcHJlc2VydmUgeW91cg0KPiBhdXRob3JzaGlwIG9uDQo+ IHRoZSBvcmlnaW5hbCBwYXRjaGVzLg0KPiANCj4gSSdsbCBhbHNvIGluY2x1ZGUgdGhlIE5WSURJ QSBFR0wgcmVhZGJhY2sgZml4IEkgbGlua2VkIGluIG15IHByZXZpb3VzDQo+IG1haWwsDQo+IGtl ZXBpbmcgdGhlIGV4aXN0aW5nIFZBQVBJIHBhdGggYXZhaWxhYmxlLiBNeSB0ZXN0aW5nIG9mIHRo YXQgZml4IHdhcw0KPiBsaW1pdGVkIHRvIHRoZSBjYXB0dXJlL2VuY29kaW5nIGFkYXB0ZXIgd2l0 aCBvdXRwdXQgdG8gYSBmaWxlOyBJDQo+IHN0aWxsIG5lZWQNCj4gdG8gY2hlY2sgaXQgdGhyb3Vn aCB0aGUgZnVsbCBLeWJlciBjb25zb2xlIGluIHRoZSBicm93c2VyLg0KPiANCj4gSSdsbCB0YWtl IHRoZSBPcGVuR0wgNC42IC8gVmVudXMgc2VyaWVzIHlvdSBtZW50aW9uZWQgaW50byBhY2NvdW50 DQo+IHdoZW4NCj4gcmViYXNpbmcuIFRoZSBzaGFyZWQgYmFzZSB3aWxsIHN0aWxsIG5lZWQgZmVl ZGJhY2sgZnJvbSB0aGUgUHJveG1veA0KPiBkZXZlbG9wZXJzIG9uIHRoZSBjb25maWd1cmF0aW9u IGFuZCBpbnRlZ3JhdGlvbi4NCj4gDQo+IE5vIHByb2JsZW0gYWJvdXQgeW91ciBhdmFpbGFiaWxp dHkuIEknbGwgc2VuZCB0aGUgcmV2aXNlZCBwYXRjaGVzIHRvDQo+IHRoZQ0KPiBsaXN0IHdpdGgg eW91IGluIENjLCBzbyB5b3UgY2FuIGhhdmUgYSBsb29rIHdoZW4geW91IGhhdmUgdGltZS4NCj4g DQo+IFRoYW5rcywNCj4gRG1pdHJ5IA0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gRnJvbTogREVSVU1JRVIsIEFsZXhhbmRyZQ0KPiBbbWFpbHRvOmFsZXhhbmRyZS5kZXJ1bWll ckBncm91cGUtY3lsbGVuZS5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAxNCwgMjAy NiA0OjEyIFBNDQo+IFRvOiBwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb207IHJkbWl0cnkwOTEx QGdtYWlsLmNvbQ0KPiBTdWJqZWN0OiBSZTogW1JGQ10gV2ViUlRDIGNvbnNvbGUgZm9yIFZNcyB2 aWEgUUVNVSdzIEQtQnVzIGRpc3BsYXkNCj4gDQo+IEhpIERtaXRyeSwNCj4gDQo+IFRoYW5rcyBm b3IgdGVzdGluZyBvbiBudmlkaWEsIEkgZGlkbid0IGhhdmUgaGFyZHdhcmUgdG8gdGVzdCBpdC4N Cj4gDQo+IEZlZWwgZnJlZSB0byByZXdvcmsgbXkgcGF0Y2hlcywgSSB3YXMgd2FpdGluZyBmcm9t IHByb3htb3ggZGV2cw0KPiByZXZpZXcgJiYNCj4gY29tbWVudHMgYmVmb3JlIGRvaW5nIG1vcmUg d29yay4NCj4gDQo+IEkgd2FzIHdhaXRpbmcgZm9yIHRoZSBtZXJnZSBvZiB0aGlzIHBhdGNoIHRv bzoNCj4gDQo+IMKgW1BBVENIIHFlbXUtc2VydmVyL3B2ZS1tYW5hZ2VyL2RvY3MgdjQgMC8xXSBh ZGQgdmlydGlvLXZnYS1nbCBPcGVuR0wNCj4gNC42ICYgVnVsa2FuICh2ZW51cykgc3VwcG9ydA0K PiBodHRwczovL2xvcmUucHJveG1veC5jb20vYWxsLzIwMjYwODMxMDk0NjA1LjExNDM5Ni0xLW0u ZnJhbmtAcHJveG1veC5jb20vDQo+IA0KPiB0byByZWJhc2UgbXkgc2VyaWUuDQo+IA0KPiBJJ2xs IGJlIHByZXR0eSBidXN5IGF0IHdvcmsgdW50aWwgbmV4dCBtb250aCwgc28gSSdsbCBkb24ndCBo YXZlIHRvbw0KPiBtdWNoDQo+IHRpbWUgdG8gd29yayBvbiBpdC4NCj4gDQo+IGJ1dCBJJ20gZ2xh ZCB0aGF0IHNvbWVib2R5IGlzIGludGVyZXN0ZWQgYnkgbWUgcGF0Y2ggc2VyaWUgOikNCj4gDQo+ IEJlc3QgUmVnYXJkcywNCj4gDQo+IEFsZXhhbmRyZQ0KPiANCj4gDQo+IA0KPiBMZSBtZXJjcmVk aSAwNyBvY3RvYnJlIDIwMjYgw6AgMTc6MTAgKzAzMDAsIERtaXRyeSBSIGEgw6ljcml0wqA6DQo+ ID4gDQo+ID4gSGkgYWxsLCBoaSBBbGV4YW5kcmUsDQo+ID4gwqANCj4gPiBvbmx5IGFmdGVyIHNl bmRpbmcgdGhpcyBSRkMgSSBub3RpY2VkIHRoYXQgQWxleGFuZHJlIHBvc3RlZCAiYWRkDQo+ID4g cmRwIA0KPiA+ICYmIGt5YmVyIGNvbnNvbGVzIGZvciBxZW11IG92ZXIgRC1CdXMgZGlzcGxheSIg aW4gQXVndXN0IFsxXS4gQm90aCANCj4gPiBwcm9wb3NhbHMgbmVlZCB0aGUgc2FtZSBmb3VuZGF0 aW9uIGluIHFlbXUtc2VydmVyIC0tIFFFTVUncyBELUJ1cyANCj4gPiBkaXNwbGF5IC0tIGFuZCBk aWZmZXIgaW4gd2hhdCBjb25zdW1lcyBpdC4gUmF0aGVyIHRoYW4gdHdvDQo+ID4gY29tcGV0aW5n IA0KPiA+IHdheXMgdG8gZW5hYmxlIGl0LCBJIHdvdWxkIHN1Z2dlc3Qgb25lIHNoYXJlZCBiYXNl IHdpdGggdGhlDQo+ID4gY29uc29sZXMgDQo+ID4gb24gdG9wLiBXaGF0IHRoZSB0d28gc2VyaWVz IGhhdmUgaW4gY29tbW9uOg0KPiA+IMKgKsKgIHFlbXUtc2VydmVyIGVuYWJsZXMgJy1kaXNwbGF5 IGRidXMnIGZvciBhIFZNLCBhbmQgYSBzZXBhcmF0ZSANCj4gPiBwYWNrYWdlIGF0dGFjaGVzIHRv IGl0IGFuZCBzdHJlYW1zIHRoZSBndWVzdCB0byB0aGUgYnJvd3NlciAoUkRQDQo+ID4gYW5kIA0K PiA+IEt5YmVyIGRhZW1vbnMgdGhlcmUsIGEgV2ViUlRDIG1lZGlhIHNlcnZpY2UgaGVyZSk7DQo+ ID4gwqAqwqAgd2l0aCBHTCwgUUVNVSByZWZ1c2VzIFZOQyBhbmQgU1BJQ0UgbmV4dCB0byB0aGUg RC1CdXMgZGlzcGxheSwNCj4gPiBzbyANCj4gPiBib3RoIGhhdmUgdG8gZGVhbCB3aXRoIGEgVk0g dGhhdCBoYXMgbm8gVk5DIGNvbnNvbGUuIFdoZXJlIHRoZXkgDQo+ID4gZGlmZmVyLCBhbmQgd2h5 IEkgdGhpbmsgQWxleGFuZHJlJ3MgYmFzZSBpcyB0aGUgYmV0dGVyIG9uZToNCj4gPiDCoCrCoCBI aXMgc2VyaWVzIHJ1bnMgYSBwcml2YXRlIGRidXMtZGFlbW9uIHBlciBWTTsgbWluZSB1c2VzIHAy cD15ZXMNCj4gPiBhbmQgYXR0YWNoZXMgZXZlcnkgY29uc29sZSB3aXRoIGdldGZkICsgYWRkX2Ns aWVudC4NCj4gPiDCoCrCoCBXaXRoIHAycD15ZXMsIGVhY2ggYWRkX2NsaWVudCByZXBsYWNlcyB0 aGUgcHJldmlvdXMgY29ubmVjdGlvbiwNCj4gPiBzbyANCj4gPiBvbmx5IG9uZSBjb25zdW1lciBj YW4gYmUgYXR0YWNoZWQgYXQgYSB0aW1lLiBPbiBhIGJ1cywgUkRQLCBLeWJlcg0KPiA+IGFuZCAN Cj4gPiBXZWJSVEMgY2FuIGF0dGFjaCB0byB0aGUgc2FtZSBWTSBzaWRlIGJ5IHNpZGUuDQo+ID4g wqAqwqAgV2l0aCBwMnA9eWVzLCBRRU1VIDExLjAgZGlkIG5vdCBkZWxpdmVyIGF1ZGlvIGluIG15 IHRlc3RzOiB0aGUgDQo+ID4gQXVkaW9PdXRMaXN0ZW5lciBnZXRzIHRoZSBJbml0L1NldEVuYWJs ZWQgY2FsbHMgbWFkZSB3aGlsZSANCj4gPiBSZWdpc3Rlck91dExpc3RlbmVyIHJ1bnMsIHRoZW4g bm90aGluZyAodGhlIHNhbWUgd2l0aCBhIHBsYWluIEdEQnVzDQo+ID4gY2xpZW50LCBzbyBpdCBk b2VzIG5vdCBsb29rIGxpa2UgYSBwcm9ibGVtIG9mIG15IGxpc3RlbmVyKS4gT24gYSANCj4gPiBw cml2YXRlIGJ1cywgd2hpY2ggbXkgYWRkLW9uIHVzZXMgdG9kYXksIGJvdGggcGxheWJhY2sgYW5k IHRoZSANCj4gPiBtaWNyb3Bob25lIChBdWRpb0luTGlzdGVuZXIpIHdvcmsuDQo+ID4gQSBwb3Nz aWJsZSBzcGxpdDoNCj4gPiDCoMKgwqAxLsKgIHFlbXUtc2VydmVyOiB0aGUgcGVyLVZNIEQtQnVz IGRpc3BsYXkgKEFsZXhhbmRyZSdzIA0KPiA+IERCdXNEaXNwbGF5LnBtKSwgdGhlIG9wdGlvbiB0 aGF0IGVuYWJsZXMgaXQsICdyZW5kZXJub2RlJyBmb3INCj4gPiB2aXJ0aW8tIA0KPiA+IGdsIChi dWcgIzQ3NzEpIGFuZCBhICdkYnVzJyBkcml2ZXIgZm9yIGF1ZGlvMC4NCj4gPiDCoMKgwqAyLsKg IE9uZSBwYWNrYWdlIHBlciBjb25zb2xlLCBlYWNoIGF0dGFjaGluZyBhcyBhIGNsaWVudCBvbiB0 aGF0DQo+ID4gYnVzOiBSRFAgYW5kIEt5YmVyIChBbGV4YW5kcmUpLCBXZWJSVEMgKG1pbmUsIGJ1 ZyAjODEwNiksIHdpdGgNCj4gPiB0aGVpciANCj4gPiBBUEkgY2FsbHMgYW5kIFVJIGVudHJpZXMg aW4gcWVtdS1zZXJ2ZXIgYW5kIHB2ZS1tYW5hZ2VyLg0KPiA+IMKgDQo+ID4gSSBhbSBoYXBweSB0 byByZWJhc2UgdGhlIFdlYlJUQyBwYXJ0IG9udG8gQWxleGFuZHJlJ3MNCj4gPiBEQnVzRGlzcGxh eS5wbSANCj4gPiBhbmQgZHJvcCBteSBwMnAgYXR0YWNoIGFuZCB0aGUgc2VwYXJhdGUgJ2RidXMn IFZHQSBmbGFnLiBBbGV4YW5kcmUgDQo+ID4gd3JvdGUgdGhhdCB0aGUgRE1BLUJVRiBwYXRoIGlz IHVudGVzdGVkIG9uIE5WSURJQSwgc28gSSB0cmllZCBpdCBvbg0KPiA+IGFuIA0KPiA+IFJUWCAz MDgwIChkcml2ZXIgNTk1LjkxLCBudmlkaWEtdmFhcGktZHJpdmVyIDAuMC4xNiwgUUVNVSAxMS4w LCBhIA0KPiA+IHZpcnRpby12Z2EtZ2wgZ3Vlc3Qgb24gYSBwcml2YXRlIHBlci1WTSBidXM7IGt5 YmVyLXFlbXUtc2VydmVyIGFuZCANCj4gPiB0eHByb3RvIGJ1aWx0IGZyb20gdGhlIHYyIHBhdGNo IGFnYWluc3QgRGViaWFuIHRyaXhpZSdzIEZGbXBlZyA3LjEsDQo+ID4gZW5jb2RpbmcgdG8gYSBm aWxlKToNCj4gPiDCoA0KPiA+IC0gLS1kbWFidWYgKGgyNjRfdmFhcGkpOiBRRU1VIGhhbmRzIG92 ZXIgdGhlIHNjYW5vdXQgKFhCMjQvQUIyNA0KPiA+IHdpdGggDQo+ID4gdGhlIE5WSURJQSBibG9j ay1saW5lYXIgbW9kaWZpZXIgMHgzMDAwMDAwMDBlMDgwMTQpLCBidXQgdGhlIFZBQVBJIA0KPiA+ IGZyYW1lcyBjb250ZXh0IGZhaWxzIG9uIHRoZSBmaXJzdCBmcmFtZSAtLSAiRmFpbGVkIHRvIGNy ZWF0ZQ0KPiA+IHN1cmZhY2U6DQo+ID4gMTQgKHRoZSByZXF1ZXN0ZWQgUlQgRm9ybWF0IGlzIG5v dCBzdXBwb3J0ZWQpIiAtLSBhbmQgbm90aGluZyBpcyANCj4gPiBlbmNvZGVkLiBXaXRoIC0tZW5j b2RlciBoMjY0X252ZW5jIGl0IGVuZHMgdGhlIHNhbWUgd2F5LCBzaW5jZSB0aGUgDQo+ID4gcGF0 aCBnb2VzIHRocm91Z2ggVkFBUEkgd2hhdGV2ZXIgdGhlIGVuY29kZXIuDQo+ID4gLSBUaGUgY2F1 c2UgaXMgdGhlIGRyaXZlcjogb24gTlZJRElBLCBWQUFQSSBtZWFucyBudmlkaWEtdmFhcGktIA0K PiA+IGRyaXZlciwgd2hpY2ggb25seSBkZWNvZGVzIChWQUVudHJ5cG9pbnRWTEQpOiBubyBlbmNv ZGluZywgbm8gdmlkZW8NCj4gPiBwcm9jZXNzaW5nLCBubyBSR0Igc3VyZmFjZXMuIFRoZSBtbWFw IGZhbGxiYWNrIHdvdWxkIG5vdCBoZWxwDQo+ID4gZWl0aGVyLCANCj4gPiBhcyBhIGJsb2NrLWxp bmVhciBidWZmZXIgZG9lcyBub3QgcmVhZCBhcyBsaW5lYXIgbWVtb3J5Lg0KPiA+IC0gV2l0aG91 dCAtLWRtYWJ1ZiwgdGhlIGxpc3RlbmVyIHJlY2VpdmVkIG5vIHNjYW5vdXQgYXQgYWxsIGZyb20N Cj4gPiB0aGUgDQo+ID4gR0wgZGlzcGxheSB3aXRoaW4gMTUgcyAobGlieDI2NCBhbmQgaDI2NF9u dmVuYyBhbGlrZSkuDQo+ID4gLSBDb250cm9sIG9uIHRoZSBzYW1lIFZNOiBteSB3b3JrZXIgaW1w b3J0cyB0aGUgc2FtZSBETUEtQlVGIHdpdGgNCj4gPiBFR0wgDQo+ID4gKGVnbENyZWF0ZUltYWdl S0hSLCBFR0xfTElOVVhfRE1BX0JVRl9FWFQgd2l0aCB0aGUgbW9kaWZpZXIpLCByZWFkcw0KPiA+ IGl0IA0KPiA+IGJhY2sgd2l0aCBnbFJlYWRQaXhlbHMgYW5kIGVuY29kZXMgaXQgd2l0aCBOVkVO QyAtLSB0aGF0IHdvcmtzLiBTbyANCj4gPiB3aXRoIGEgdmlydGlvLWdsIGd1ZXN0IG9uIE5WSURJ QSwgdGhlIEt5YmVyIGNvbnNvbGUgc2hvd3Mgbm8NCj4gPiBwaWN0dXJlIA0KPiA+IHRvZGF5Lg0K PiA+IMKgDQo+ID4gQSBmaXgsIHRlc3RlZCBbMl06IGEgcGF0Y2ggb24gdG9wIG9mIHYyIGFkZHMg LS1kbWFidWYtcmVhZGJhY2sgdG8gDQo+ID4ga3liZXItcWVtdS1zZXJ2ZXIgKDM1OCBsaW5lcywg bW9zdGx5IG9uZSBuZXcgZmlsZSwgTEdQTCBsaWtlIA0KPiA+IGRtYWJ1Zi5jKS4gSXQgc3RpbGwg cmVxdWVzdHMgRE1BLUJVRiBzY2Fub3V0cywgaW1wb3J0cyBlYWNoIGJ1ZmZlciANCj4gPiB3aXRo IEVHTCAoR0JNIHBsYXRmb3JtLCBzdXJmYWNlbGVzcyBjb250ZXh0LCB0aGUgbW9kaWZpZXIgcGFz c2VkKSwgDQo+ID4gcmVhZHMgaXQgYmFjayB3aXRoIGdsUmVhZFBpeGVscyBhbmQgZmVlZHMgeW91 ciBleGlzdGluZyBzb2Z0d2FyZQ0KPiA+IHBhdGgsIA0KPiA+IHNvIGFueSAtLWVuY29kZXIgd29y a3MgLS0gaDI2NF9udmVuYyBvbiBOVklESUEuIEEgYnVmZmVyIGlzDQo+ID4gaW1wb3J0ZWQgDQo+ ID4gb25jZSBhbmQgcmVhZCBvbmx5IGFmdGVyIFFFTVUgcmVwb3J0cyBkYW1hZ2UuIFNhbWUgc2V0 dXAsIGENCj4gPiB0ZXJtaW5hbCANCj4gPiBydW5uaW5nICd0b3AgLWQgMC4xJyBmb3IgMjAgczog MTIyNiBmcmFtZXMgZW5jb2RlZCB3aXRoIGgyNjRfbnZlbmMsDQo+ID4gMCANCj4gPiBkcm9wcGVk LCB0aGUgcGljdHVyZSBjb3JyZWN0OyBhYm91dCAyNCUgb2Ygb25lIENQVSBjb3JlICgzNiUgd2l0 aCANCj4gPiBsaWJ4MjY0KS4gVGhlIC0tZG1hYnVmIHBhdGggaXMgdW5jaGFuZ2VkOyBreWNvbnRy b2xsZXIgY291bGQgY2hvb3NlDQo+ID4gJy0tZG1hYnVmLXJlYWRiYWNrIC0tZW5jb2RlciBoMjY0 X252ZW5jJyB3aGVuIHRoZSByZW5kZXIgbm9kZQ0KPiA+IGJlbG9uZ3MgDQo+ID4gdG8gdGhlIG52 aWRpYSBkcml2ZXIuDQo+ID4gwqANCj4gPiBUbyBiZSBmYWlyIGFib3V0IHRoZSB0cmFkZS1vZmY6 IHRoZSByZWFkYmFjayBjb3BpZXMgZXZlcnkgY2hhbmdlZCANCj4gPiBmcmFtZSBpbnRvIHN5c3Rl bSBtZW1vcnksIHNvIG9uIEFNRCBhbmQgSW50ZWwgeW91ciB6ZXJvLWNvcHkgVkFBUEkgDQo+ID4g cGF0aCBpcyBsaWtlbHkgdGhlIG1vcmUgZWZmaWNpZW50IG9uZS4gVGhlIGJlc3Qgb2YgYm90aCB3 b3VsZCBiZSANCj4gPiB6ZXJvLWNvcHkgd2hlcmUgVkFBUEkgY2FuIGltcG9ydCBhbmQgZW5jb2Rl LCBhbmQgdGhlIEVHTCByZWFkYmFjayANCj4gPiBldmVyeXdoZXJlIGVsc2UgLS0gdGhlIHNhbWUg c3BsaXQgd291bGQgc2VydmUgdGhlIFdlYlJUQyBjb25zb2xlLg0KPiA+IMKgDQo+ID4gTWFpbnRh aW5lcnM6IHdvdWxkIG9uZSBzaGFyZWQgYmFzZSBzZXJpZXMgbGlrZSB0aGlzIHdvcmsgZm9yIHlv dSwNCj4gPiBhbmQgDQo+ID4gaXMgdGhlcmUgYSBwcmVmZXJyZWQgbmFtZSBhbmQgcGxhY2UgZm9y IHRoZSBvcHRpb24gdGhhdCBlbmFibGVzIHRoZQ0KPiA+IEQtQnVzIGRpc3BsYXk/DQo+ID4gWzFd IGh0dHBzOi8vbG9yZS5wcm94bW94LmNvbS9wdmUtZGV2ZWwvMjAyNjA4MjYwNzQzNDcuMTI1NjY1 OS0xLQ0KPiA+IGFsZXhhbmRyZS5kZXJ1bWllckBncm91cGUtY3lsbGVuZS5jb20vDQo+ID4gWzJd IGh0dHBzOi8vZ2l0aHViLmNvbS9yZG1pdHJ5MDkxMS9xc20tcmQvYmxvYi9tYWluL3FzbS0NCj4g PiBkaXJlY3QvdXBzdHJlYW0va3liZXItbnZpZGlhLzAwMDEta3liZXItcWVtdS1zZXJ2ZXItcmVh ZC1ETUEtQlVGLQ0KPiA+IHNjYW5vdXRzLWJhY2stdGhyb3VnaC5wYXRjaA0KPiA+IMKgDQo+ID4g VGhhbmtzLA0KPiA+IERtaXRyeQ0KPiA+IA0KPiA+IMKgDQo+ID4gRnJvbTogRG1pdHJ5IFIgW21h aWx0bzpyZG1pdHJ5MDkxMUBnbWFpbC5jb21dDQo+ID4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIg MDEsIDIwMjYgNjoxMSBQTQ0KPiA+IFRvOiBwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20NCj4g PiBTdWJqZWN0OiBbUkZDXSBXZWJSVEMgY29uc29sZSBmb3IgVk1zIHZpYSBRRU1VJ3MgRC1CdXMg ZGlzcGxheQ0KPiA+IA0KPiA+IEhpIGFsbCwNCj4gPiANCj4gPiBJIHdvdWxkIGxpa2UgdG8gYXNr IHdoZXRoZXIgYSBoYXJkd2FyZS1lbmNvZGVkIFdlYlJUQyBjb25zb2xlIGZvcg0KPiA+IFZNcyAN Cj4gPiB3b3VsZCBiZSB3ZWxjb21lIHVwc3RyZWFtLCBhbmQgaWYgc28sIGluIHdoaWNoIHNoYXBl LsKgIEl0IHJ1bnMNCj4gPiB0b2RheSANCj4gPiBhcyBhbiBhZGQtb24gZm9yIFBWRSA5LjIsIGFu ZCBJIGhhdmUgcHJlcGFyZWQgdGhlIHFlbXUtc2VydmVyIGFuZCANCj4gPiBwdmUtbWFuYWdlciBw YXJ0cyBhcyBwYXRjaCBzZXJpZXMgYWdhaW5zdCBjdXJyZW50IG1hc3RlciAodGVzdGVkIG9uDQo+ ID4gUFZFIDkuMiB3aXRoIGFuIFJUWCAzMDgwLCBzZWUgYmVsb3cpIC0tIGJ1dCBJJ2QgbGlrZSB5 b3VyIG9waW5pb24NCj4gPiBvbiANCj4gPiB0aGUgZGVzaWduIGJlZm9yZSBzZW5kaW5nIHRoZW0u DQo+ID4gDQo+ID4gRmVhdHVyZSByZXF1ZXN0OiBidWcgIzgxMDYNCj4gPiBodHRwczovL2J1Z3pp bGxhLnByb3htb3guY29tL3Nob3dfYnVnLmNnaT9pZD04MTA2DQo+ID4gDQo+ID4gTW90aXZhdGlv bg0KPiA+IC0tLS0tLS0tLS0NCj4gPiBub1ZOQyBpcyB0aGUgcmlnaHQgY29uc29sZSBmb3IgZmly bXdhcmUsIGluc3RhbGxlcnMgYW5kIHRleHQNCj4gPiBjb25zb2xlcy4NCj4gPiBGb3IgdGltZSBz cGVudCBpbnNpZGUgYSBydW5uaW5nIGRlc2t0b3AgaXQgdHJhbnNmZXJzIGNoYW5nZWQgDQo+ID4g cmVjdGFuZ2xlcyBpbnN0ZWFkIG9mIHZpZGVvLCBoYXMgbm8gYXVkaW8sIGFuZCBhIFZpckdMICh2 aXJ0aW8tZ2wpIA0KPiA+IGd1ZXN0IHJlYWNoZXMgaXQgdGhyb3VnaCBlZ2wtaGVhZGxlc3MgcmVh ZGJhY2suwqAgTWVhc3VyZWQgd2l0aCBvbmUgDQo+ID4gZ3Vlc3QgaW1hZ2UgYW5kIHRoZSBzYW1l IHdvcmtsb2FkcyAobWV0aG9kIGFuZCByYXcgbnVtYmVycyBpbiB0aGUgDQo+ID4gcmVwb3NpdG9y eSBiZWxvdyk6DQo+ID4gDQo+ID4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgV2ViUlRDLCB2aXJ0aW8tZ2wgwqAgbm9WTkMsIHN0ZCBWR0ENCj4gPiDCoCA3MjBw IHZpZGVvLCBwaWN0dXJlcy9zIMKgIMKgIMKgMzAgKHNvdXJjZSByYXRlKSDCoCDCoDcuNA0KPiA+ IMKgIHNjcm9sbGluZywgcGljdHVyZXMvcyDCoCDCoCDCoCAzNiAoNTIgb24gTlZFTkMpIMKgIMKg MTIuMA0KPiA+IMKgIGFuaW1hdGVkIFVJLCBwaWN0dXJlcy9zIMKgIMKgIDM4ICg0NSBvbiBOVkVO QykgwqAgwqAxMS4wDQo+ID4gwqAgYmFuZHdpZHRoLCA3MjBwIHZpZGVvIMKgIMKgIMKgIDE4Ljgg TWJpdC9zIMKgIMKgIMKgIMKgIDEyMCBNYml0L3MNCj4gPiDCoCBzaW5nbGUgcG9pbnRlciBldmVu dCDCoCDCoCDCoCDCoDg4IG1zIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDUyIG1zDQo+ID4gwqAgY29u c29sZSBvcGVuIC0+IDFzdCBwaWN0dXJlIDMuNCBzIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDEuMCBz DQo+ID4gDQo+ID4gVGhlIGxhc3QgdHdvIHJvd3MgYXJlIHdoZXJlIG5vVk5DIHN0YXlzIGJldHRl cjogYSBzaW5nbGUgaXNvbGF0ZWQgDQo+ID4gZXZlbnQgaXMgb25lIHNtYWxsIHJlY3RhbmdsZSBm b3IgVk5DLCBidXQgYSBmdWxsIGVuY29kZS9kZWNvZGUNCj4gPiByb3VuZCANCj4gPiB0cmlwIGZv ciB2aWRlbyAodGhlIDg4IG1zIHdlcmUgbWVhc3VyZWQgd2l0aCBzb2Z0d2FyZSBsaWJ4MjY0IG9u IGEgDQo+ID4gQ1BVLW9ubHkgbm9kZSkuwqAgV2l0aCBOVkVOQyAoUlRYIDMwODApIHRoZSBlbmNv ZGVyIHVzZWQgNCUgd2hpbGUgDQo+ID4gc3RyZWFtaW5nIHRoZSBhbmltYXRlZCBzY2VuZS4NCj4g PiANCj4gPiBXaGF0IFFFTVUgYWxyZWFkeSBwcm92aWRlcw0KPiA+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4gUUVNVSdzIEQtQnVzIGRpc3BsYXkgKC1kaXNwbGF5IGRidXMpIGV4cG9y dHMgdGhlIGd1ZXN0IHNjYW5vdXQgLS0NCj4gPiB0aGUgDQo+ID4gR0wvRE1BLUJVRiBzY2Fub3V0 IG9mIHZpcnRpby1nbCBpbmNsdWRlZCAtLSBhbmQgdGFrZXMga2V5Ym9hcmQsDQo+ID4gbW91c2Us IA0KPiA+IG11bHRpLXRvdWNoLCBjbGlwYm9hcmQgYW5kIGF1ZGlvLsKgIFdpdGggcDJwPXllcyB0 aGVyZSBpcyBubyBidXMNCj4gPiBkYWVtb246DQo+ID4gYSBjbGllbnQgaXMgYXR0YWNoZWQgcGVy IGNvbm5lY3Rpb24gdGhyb3VnaCBRTVAgKGdldGZkICsNCj4gPiBhZGRfY2xpZW50KSwgDQo+ID4g d2hpY2ggUFZFOjpRTVBDbGllbnQgY2FuIGFscmVhZHkgZG8gKGl0IHBhc3NlcyB0aGUgZmQgZm9y IGdldGZkKS4NCj4gPiANCj4gPiBQcm9wb3NlZCBzZXJpZXMNCj4gPiAtLS0tLS0tLS0tLS0tLS0N Cj4gPiAxLiBxZW11LXNlcnZlcjogJ3JlbmRlcm5vZGUnIGZvciB0aGUgVkdBIHByb3BlcnR5DQo+ ID4gwqAgwqAgwqB2Z2E6IHZpcnRpby1nbCxyZW5kZXJub2RlPS9kZXYvZHJpL3JlbmRlckQxMjkN Cj4gPiDCoCDCoHNvIGEgdmlydGlvLWdsIGd1ZXN0IGNhbiBiZSBwbGFjZWQgb24gYSBjaG9zZW4g R1BVIGluc3RlYWQgb2YNCj4gPiB0aGUNCj4gPiDCoCDCoGZpcnN0IHJlbmRlciBub2RlIChmaXhl cyAjNDc3MSkuwqAgU21hbGwgYW5kIHVzZWZ1bCBvbiBpdHMgb3duLg0KPiA+IA0KPiA+IDIuIHFl bXUtc2VydmVyOiBvcHQtaW4gJ2RidXMnIGZvciB0aGUgVkdBIHByb3BlcnR5DQo+ID4gwqAgwqAg wqB2Z2E6IHZpcnRpby1nbCxkYnVzPTENCj4gPiDCoCDCoGFkZHMgJy1kaXNwbGF5IGRidXMscDJw PXllcycgKGdsPW9uIHdpdGggdGhlIHJlbmRlciBub2RlIGZvcg0KPiA+IMKgIMKgdmlydGlvLWds LCBnbD1vZmYgZm9yIHRoZSBvdGhlciB0eXBlcykuwqAgT25lIGNvbnN0cmFpbnQ6IHdpdGgNCj4g PiBHTCwNCj4gPiDCoCDCoFFFTVUgcmVmdXNlcyBWTkMgYW5kIFNQSUNFIG5leHQgdG8gaXQgKCJE aXNwbGF5IHZuYyBpcw0KPiA+IGluY29tcGF0aWJsZQ0KPiA+IMKgIMKgd2l0aCB0aGUgR0wgY29u dGV4dCIpLCBzbyBhIHZpcnRpby1nbCBWTSB3aXRoIGRidXM9MSBoYXMgbmVpdGhlcg0KPiA+IGFu ZA0KPiA+IMKgIMKgb2ZmZXJzIHRoZSBXZWJSVEMgY29uc29sZSBpbnN0ZWFkOyBub24tR0wgdHlw ZXMga2VlcCBWTkMgYXMNCj4gPiB3ZWxsLg0KPiA+IMKgIMKgVGhlIGNsaXBib2FyZCByZWFjaGVz IHRoZSBndWVzdCB0aHJvdWdoIHFlbXUtdmRhZ2VudCAoYXMgZm9yIHRoZQ0KPiA+IMKgIMKgVk5D IGNsaXBib2FyZCkgYW5kIHRoZSBndWVzdCdzIHNwaWNlLXZkYWdlbnQuDQo+ID4gwqAgwqBBdWRp byBpcyBub3QgcGFydCBvZiB0aGUgc2VyaWVzIHlldDogdGhlIGFkZC1vbiBwbGF5cyBpdCB0aHJv dWdoDQo+ID4gYQ0KPiA+IMKgIMKgYnVzLW1vZGUgRC1CdXMgZGlzcGxheSAoYSAnZGJ1cycgYXVk aW9kZXYgbmFtZWQgaW4gLWRpc3BsYXkpLA0KPiA+IGJ1dA0KPiA+IMKgIMKgd2l0aCBwMnA9eWVz IG91ciBsaXN0ZW5lciBnb3Qgbm8gYXVkaW8gZnJvbSBRRU1VIDExLjAgLS0gb25seQ0KPiA+IHRo ZQ0KPiA+IMKgIMKgSW5pdC9TZXRFbmFibGVkIGNhbGxzIG1hZGUgd2hpbGUgUmVnaXN0ZXJPdXRM aXN0ZW5lciBydW5zLA0KPiA+IG5vdGhpbmcNCj4gPiDCoCDCoGFmdGVyd2FyZHMuwqAgQSAnZGJ1 cycgYXVkaW8wIGRyaXZlciBpcyByZWFkeSBvbmNlIHRoYXQgaXMNCj4gPiByZXNvbHZlZC4NCj4g PiANCj4gPiAzLiBxZW11LXNlcnZlcjogQVBJIGNhbGwgdG8gYXR0YWNoIGEgY29uc29sZQ0KPiA+ IMKgIMKgIMKgUE9TVCAvbm9kZXMve25vZGV9L3FlbXUve3ZtaWR9L3dlYnJ0Y3Byb3h5IMKgKFZN LkNvbnNvbGUpDQo+ID4gwqAgwqB0YWtlcyB0aGUgYnJvd3NlcidzIFNEUCBvZmZlciwgY3JlYXRl cyBhIHNvY2tldHBhaXIsIGF0dGFjaGVzDQo+ID4gb25lDQo+ID4gwqAgwqBlbmQgdG8gUUVNVSAo Z2V0ZmQgKyBhZGRfY2xpZW50KSBhbmQgaGFuZHMgdGhlIG90aGVyIGVuZCB3aXRoDQo+ID4gdGhl DQo+ID4gwqAgwqBvZmZlciB0byBhIGxvY2FsIG1lZGlhIHNlcnZpY2Ugb3ZlciBhIHJvb3Qtb3du ZWQgdW5peCBzb2NrZXQNCj4gPiDCoCDCoChTQ01fUklHSFRTKTsgcmV0dXJucyB0aGUgU0RQIGFu c3dlci7CoCBBdXRoZW50aWNhdGlvbiBhbmQgQUNMDQo+ID4gc3RheQ0KPiA+IMKgIMKgZXhhY3Rs eSB0aG9zZSBvZiB2bmNwcm94eS90ZXJtcHJveHkgLS0gbm8gZXh0cmEgcG9ydCwgbm8gb3duDQo+ ID4gYXV0aC4NCj4gPiDCoCDCoFRoZSBzdGF0dXMgQVBJIHJlcG9ydHMgJ2RidXMnIGFuZCAndm5j JyBzbyB0aGUgVUkga25vd3Mgd2hpY2gNCj4gPiDCoCDCoGNvbnNvbGVzIGEgVk0gb2ZmZXJzLg0K PiA+IA0KPiA+IDQuIHB2ZS1tYW5hZ2VyOiBXZWJSVEMgY29uc29sZSB0eXBlIG5leHQgdG8gbm9W TkMvU1BJQ0UveHRlcm0uanMNCj4gPiDCoCDCoGluIHRoZSBjb25zb2xlIGJ1dHRvbiBhbmQgdGhl IFZNJ3MgQ29uc29sZSBwYW5lbCwgb2ZmZXJlZCB3aGVuDQo+ID4gdGhlDQo+ID4gwqAgwqBWTSdz IGRpc3BsYXkgaGFzIGRidXM9MTsgdGhlIGRpc3BsYXkgZWRpdG9yIGdldHMgdGhlIHR3bw0KPiA+ IG9wdGlvbnMuDQo+ID4gwqAgwqBMaWtlIG5vVk5DIGFuZCB4dGVybS5qcywgdGhlIHZpZXdlciBp dHNlbGYgaXMgYSBwYWdlIGZyb20gYSANCj4gPiBzZXBhcmF0ZQ0KPiA+IMKgIMKgcGFja2FnZSB0 aGF0IHB2ZXByb3h5IHNlcnZlcyAoJz9jb25zb2xlPWt2bSZ3ZWJydGM9MScpLg0KPiA+IA0KPiA+ IDUuIEEgc2VwYXJhdGUgcGFja2FnZSB3aXRoIHRoZSBtZWRpYSBzZXJ2aWNlOiBjYXB0dXJlIGZy b20gdGhlIEQtDQo+ID4gQnVzDQo+ID4gwqAgwqBkaXNwbGF5ICh0aGUgdmlydGlvLWdsIERNQS1C VUYgc2Nhbm91dCBpcyBpbXBvcnRlZCB0aHJvdWdoIEVHTA0KPiA+IGFuZA0KPiA+IMKgIMKgcmVh ZCBiYWNrOyBhIHplcm8tY29weSBwYXRoIHRvIHRoZSBlbmNvZGVyIGlzIGZ1dHVyZSB3b3JrKSwN Cj4gPiBlbmNvZGUNCj4gPiDCoCDCoChOVkVOQywgVkEtQVBJLCBRU1Y7IGxpYngyNjQgZmFsbGJh Y2s7IEguMjY0LCBIRVZDIHdoZXJlIHRoZQ0KPiA+IMKgIMKgYnJvd3NlciBkZWNvZGVzIGl0KSwN Cj4gPiDCoCDCoE9wdXMgYXVkaW8sIFdlYlJUQy7CoCBUb2RheSBpdCBpcyBDKysgKEZGbXBlZykg cGx1cyBhDQo+ID4gUHl0aG9uL2Fpb3J0Yw0KPiA+IMKgIMKgV2ViUlRDIGJyaWRnZTsgSSByZWFs aXNlIFB5dGhvbi9haW9ydGMgaXMgdW51c3VhbCBpbiB5b3VyIHN0YWNrLg0KPiA+IA0KPiA+IFF1 ZXN0aW9ucw0KPiA+IC0tLS0tLS0tLQ0KPiA+IC0gSXMgdGhpcyBzb21ldGhpbmcgeW91IHdvdWxk IGNvbnNpZGVyIHVwc3RyZWFtIGF0IGFsbD8NCj4gPiAtIFByb3BlcnR5IG5hbWluZzogJ3JlbmRl cm5vZGUnIGFuZCAnZGJ1cycgaW5zaWRlICd2Z2EnLCBvciBhDQo+ID4gc2VwYXJhdGUNCj4gPiDC oCBkaXNwbGF5IHByb3BlcnR5Pw0KPiA+IC0gV291bGQgeW91IHJhdGhlciBrZWVwIHRoZSBtZWRp YSBzZXJ2aWNlIG91dCBvZiB0cmVlICh1c2Vycw0KPiA+IGluc3RhbGwNCj4gPiDCoCBpdCwgdGhl IEFQSSBjYWxsIHJldHVybnMgYW4gZXJyb3Igd2hlbiBpdCBpcyBhYnNlbnQpLCBvciBzaG91bGQN Cj4gPiBpdA0KPiA+IMKgIGV2ZW50dWFsbHkgbGl2ZSBpbiBhIFByb3htb3gtbWFpbnRhaW5lZCBw YWNrYWdlLCBhbmQgd291bGQgeW91DQo+ID4gdGhlbg0KPiA+IMKgIHdhbnQgaXQgaW4gUnVzdD8N Cj4gPiAtIElzICd3ZWJydGNwcm94eScgbmV4dCB0byAndm5jcHJveHknLyd0ZXJtcHJveHknIHRo ZSByaWdodCBwbGFjZT8NCj4gPiANCj4gPiBOb3QgcGFydCBvZiB0aGlzIHByb3Bvc2FsOiB0aGUg cHJvdG90eXBlIGFsc28gaGFzIGEgZ3JhcGhpY2FsDQo+ID4gY29uc29sZSANCj4gPiBmb3IgTFhD IGNvbnRhaW5lcnMgKGEgaGVhZGxlc3MgY29tcG9zaXRvciBpbiB0aGUgY29udGFpbmVyIHdpdGgg aXRzDQo+ID4gb3duIGxvZ2luIHNjcmVlbiwgb25lIGNvbnNvbGUgcGVyIHR0eSBsaWtlIHRoZSB0 ZXJtaW5hbCBjb25zb2xlKS7CoA0KPiA+IEl0IA0KPiA+IG5lZWRzIHNvZnR3YXJlIGluc2lkZSB0 aGUgZ3Vlc3QsIHNvIEkgcGxhbiB0byBrZWVwIGl0IGFzIGEgc2VwYXJhdGUNCj4gPiBhZGQtb24g cGFja2FnZS4NCj4gPiANCj4gPiBUZXN0ZWQgZW5kIHRvIGVuZCBvbiBQVkUgOS4yIChxZW11LXNl cnZlciA5LjIuNyBhbmQgcHZlLW1hbmFnZXINCj4gPiA5LjIuMTEgcGx1cyB0aGUgc2VyaWVzKTog YSBLdWJ1bnR1IDI2LjA0IGd1ZXN0IHdpdGgNCj4gPiAndmdhOiB2aXJ0aW8tZ2wsZGJ1cz0xJyBz dHJlYW1zIDEyODB4ODAwIGF0IDYwIGZwcyAoTlZFTkMgSC4yNjQpIA0KPiA+IHRocm91Z2ggd2Vi cnRjcHJveHksIGluIGEgcG9wdXAgYW5kIGluIHRoZSBWTSdzIENvbnNvbGUgcGFuZWwsIGZvcg0K PiA+IGEgDQo+ID4gdXNlciBob2xkaW5nIG9ubHkgUFZFVk1Vc2VyIG9uIHRoZSBWTSAoNDAzIHdp dGhvdXQgVk0uQ29uc29sZSkuDQo+ID4gDQo+ID4gQ29kZSBhbmQgbWVhc3VyZW1lbnRzOiBodHRw czovL2dpdGh1Yi5jb20vcmRtaXRyeTA5MTEvcXNtLXJkDQo+ID4gKHFzbS1kaXJlY3QvLCBkb2Nz L0NPTVBBUklTT04ubWQgZm9yIHRoZSBudW1iZXJzOyB0aGUgcHJlcGFyZWQNCj4gPiBzZXJpZXMg DQo+ID4gYXJlIGluIHFzbS1kaXJlY3QvdXBzdHJlYW0vcGF0Y2hlcy8pLg0KPiA+IA0KPiA+IFRy YW5zcGFyZW5jeTogSSBkZXZlbG9wZWQgdGhlIHByb3RvdHlwZSB3aXRoIHRoZSBoZWxwIG9mIGFu IEFJDQo+ID4gY29kaW5nIA0KPiA+IGFzc2lzdGFudCAoQ2xhdWRlKS7CoCBJIGhhdmUgcmV2aWV3 ZWQgYW5kIHRlc3RlZCB0aGUgY29kZSBhbmQgd2lsbA0KPiA+IHNpZ24gDQo+ID4gdGhlIEhhcm1v bnkgQ0xBOyBwbGVhc2UgdGVsbCBtZSBpZiB0aGF0IGlzIGEgcHJvYmxlbSBmb3IgeW91Lg0KPiA+ IA0KPiA+IFRoYW5rcywNCj4gPiBEbWl0cnkNCg==