From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id D187A1FF164 for ; Fri, 20 Jun 2025 19:11:35 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7C28D10872; Fri, 20 Jun 2025 19:12:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=primordial.ca; s=google; t=1750439483; x=1751044283; darn=lists.proxmox.com; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=hx8WYCe1LVTbMdwwIwbJTzFA8rPBiGuk/UHQi2YPwYo=; b=IcuevK2S6LjuHB5nKt+K04LU0qiMFg8c7rVCplr5qKclJbMQ6Ka42w8y8YCfXJo71+ OqugJR8BuSm5gQrBLAmoI0jgpkkIKNYBP3HhYMUJX9a7ZyYkr51bjxsl0BnTIv12xwH2 HtoS6QbKtJ51Bbe/tF5ADvPSY11CEDtczQ9P0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750439483; x=1751044283; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hx8WYCe1LVTbMdwwIwbJTzFA8rPBiGuk/UHQi2YPwYo=; b=aT6Tlb77n6nP+ulV/PXhd/SbyKsLlya14/LRF7eHUAO5IwbnwVUUH3C4dQqUPcxZXH 42lyK4cHhDqEVlE7oNrF3XHQS5wcCHwVvc2utYVfNP3in/Q5JRDgvHMbk3wmOnAx682d CJ9y+1fjhvZ4fWCkHb0YeBSF/aloov3oScyJxqeXY27L1n3v0nG/ifanQG6ERwYtATnL 3RNtqLEP7USpP0MGM6m2ak6/HqQ1DParUzb8rVtzVuksr8/NKpMLDq5xv46/bwtAeuKS vbCiSFUE57jDbkM1c1CipwwFw0tMUFoHbbE3l3GOtG5Vs/Q2XNr943JiC2jmAo0BWDmT 2gXw== X-Gm-Message-State: AOJu0YxYcWjtRxldrbbbQdAKkvaYoONXy5yslamRoH5mIfHgkkZWrK/Q iczPxpiuaoCNa9dgRXWrzt+N5LfTSSVudrw56N+UPJ1LLOu+9uxquUbsnV/XEo3iGgEa1N3PVaQ yMyKZqgmJlvsyFb2jFPXKSPCu3AZibtefXawDVASL58L8fZFxEJEXbzbMyA== X-Gm-Gg: ASbGncutaO7+K++j3zNX2A30YzpskvgMXw5kz+OZiVuaUuy/pfhqYfGMOBr3p4pGG7w BX32HVuuHZFBJgYcV91eEBuumRMxuAEO0tb6JIfWZTJfFWFHVVnFb7KVW/+oBz4A4+u1dWpfIa6 4S0XAwJkix0FfuQ2IMZQHiGU909N4x7vXRsd+HpXAHXLY= X-Google-Smtp-Source: AGHT+IECYVbebyxSF+1JtFss0Eu4YnWAnHFkV7SyUNCQB/qKWv52lXNT7zHX7tFLajfLv10zIhmoQDXfghNllyTl/UQ= X-Received: by 2002:a17:90b:55c3:b0:312:f2ee:a895 with SMTP id 98e67ed59e1d1-3159d8ff73bmr4379583a91.31.1750439482698; Fri, 20 Jun 2025 10:11:22 -0700 (PDT) MIME-Version: 1.0 References: <20250620143148.218469-1-d.kral@proxmox.com> <8451d94e-176a-49e6-95ac-f25e7b4cfe9c@proxmox.com> In-Reply-To: <8451d94e-176a-49e6-95ac-f25e7b4cfe9c@proxmox.com> From: Jillian Morgan Date: Fri, 20 Jun 2025 13:11:11 -0400 X-Gm-Features: AX0GCFtD4yz7ATawq6g_LrM4xnvMaXGrl4To_sIUsYJUrgYjkHqRaoHw69Dvh8Y Message-ID: To: Proxmox VE development discussion X-SPAM-LEVEL: Spam detection results: 0 BAYES_00 -1.9 Bayes spam probability is 0 to 1% 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 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_MISSING 0.1 Missing DMARC policy HTML_MESSAGE 0.001 HTML included in message RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [pve-devel] [RFC common/cluster/ha-manager/docs/manager v2 00/40] HA colocation rules X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" RGFuaWVsLAoKRmlyc3RseSBJIHdhbnQgdG8gc2F5IHRoYW5rIHlvdSB2ZXJ5LCB2ZXJ5LCB2ZXJ5 IG11Y2ghIFRoaXMgZXh0ZW5zaXZlIHdvcmsKb2J2aW91c2x5IHRvb2sgYSBsb3Qgb2YgdGltZSBh bmQgZWZmb3J0LiBJIGZlZWwgbGlrZSBvbmUgb2YgbXkgVG9wLTUgZ3JpcGVzCndpdGggUHJveG1v eCAoYWZ0ZXIgbW92aW5nIGZyb20gb1ZpcnQpIHdpbGwgZmluYWxseSBiZSByZXNvbHZlZCBieSB0 aGlzIG5ldwpmZWF0dXJlLgoKTmV4dCwgaG93ZXZlciwgSSB3b3VsZCBsaWtlIHRvIGFkZCBteSB0 d28gY2VudHMgdG8gdGhlIGRpc2N1c3Npb24gb3ZlciB0aGUKbm9tZW5jbGF0dXJlIGJlaW5nIGNo b3Nlbiwgc2luY2UgaXQgc2VlbXMgdG8gYmUgbm90LXF1aXRlIHNldCBpbiBzdG9uZSB5ZXQuCkhl cmUgYXJlIG15IHRob3VnaHRzOgoKMSkgSGF2aW5nICJsb2NhdGlvbiIgYW5kICJjb2xvY2F0aW9u IiBydWxlcyBpcywgSSB0aGluaywgZ29pbmcgdG8gYmUKdW5uZWNlc3NhcmlseSBjb25mdXNpbmcg Zm9yIHBlb3BsZS4gV2hpbGUgaXQgaXNuJ3QgdG9vIGNvbXBsaWNhdGVkIHRvIGdsZWFuCnRoZSBk aXN0aW5jdGlvbiBvbmNlIGhhdmluZyByZWFkIHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlbSAoYW5k IEkgaGFkIHRvIGdvCnJlYWQgdGhlIGRlc2NyaXB0aW9ucyksIHRoZXkgZG9uJ3QgY29udmV5IGlt bWVkaWF0ZWx5IGhvdyB0aGV5CmRpZmZlcmVudGlhdGUgdGhlbXNlbHZlcyBmcm9tIGVhY2ggb3Ro ZXIuIEkgdGhpbmsgdGhlIGNvbmNlcHRzIGFyZSBiZXR0ZXIKZGVzY3JpYmVkIGJ5IHNvbWV0aGlu ZyBsaWtlICJob3N0LXNlcnZpY2UgYWZmaW5pdHkiIChmb3IgcG9zaXRpdmUgb3IKbmVnYXRpdmUg YWZmaW5pdHkgYmV0d2VlbiBzZXJ2aWNlKHMpIGFuZCBzcGVjaWZpYyBob3N0KHMpL1Jlc291cmNl IFBvb2xzKSwKYW5kICJzZXJ2aWNlLXNlcnZpY2UgYWZmaW5pdHkiIChmb3IgcG9zaXRpdmUgb3Ig bmVnYXRpdmUgYWZmaW5pdHkgYmV0d2VlbgptdWx0aXBsZSBzZXJ2aWNlcyAod2hlcmUgYW55IHJl bGF0aW9uc2hpcCB0byBzcGVjaWZpYyBob3N0cyBhcmUKaW5jb25zZXF1ZW50aWFsIG9yIHNwZWNp ZmljYWxseSB1bmRlc2lyYWJsZSkuCgoyKSBZb3VyIG93biBkaXNjdXNzaW9uIHNlZW1zIHRvIHJl ZmVyIHRvICJhZmZpbml0eSIgcXVpdGUgcmVndWxhcmx5LCBzbwpjYWxsaW5nIHRoZSBydWxlcyBi eSBzb21lIG90aGVyIG5hbWVzIGluIHRoZSBkb2N1bWVudGF0aW9uL0NMSS9VSSBzZWVtcyB0bwpi ZSBhIGNob2ljZSBtYWRlIHRvIHRyeSB0byAnc2ltcGxpZnknIHRoZSBjb25jZXB0IGZvciBhbiBh dWRpZW5jZSB0aGF0CmRvZXNuJ3QgbmVlZCB0aGUgY29uY2VwdCB0byBiZSBzaW1wbGlmaWVkLCBh bmQgaW4gZmFjdCBwcm9iYWJseSBqdXN0CmNvbmZ1c2VzIHRoaW5ncy4KCjMpIERlc3BpdGUgeW91 ciBmZWVsaW5nIG90aGVyd2lzZSwgSSBiZWxpZXZlIHRoYXQgbmFtaW5nIHRoZW0gImFmZmluaXR5 IgpydWxlcyB3aWxsIGJlIHZlcnkgd2VsbCB1bmRlcnN0b29kIGJ5IGFueW9uZSB3aG8gaGFzIHdv cmtlZCB3aXRoIG90aGVyCmNsdXN0ZXIgc3lzdGVtcywgYmFzaWMgc3lzdGVtIGFkbWluaXN0cmF0 aW9uIChDUFUgcGlubmluZywgZm9yIGV4YW1wbGUpLCBvcgphbnkgb3RoZXIgc29ydCBvZiBjb21w dXRlciBzY2llbmNlIG9yIGVuZ2luZWVyaW5nIGJhY2tncm91bmQuIEkgdGhpbmsgdGhlCm51bWJl ciBvZiBwZW9wbGUgY29taW5nIGludG8gdGhlIHdvcmxkIG9mIFByb3htb3ggd2l0aCB6ZXJvIHBy aW9yCmV4cGVyaWVuY2UgaW4gdGhlIGZpZWxkIGlzIHByb2JhYmx5IHZlcnkgbG93LCBhbmQgdGhl eSB3b3VsZCBiZSB3ZWxsLXNlcnZlZAp0byBsZWFybiB0aGUgd29yZCAiYWZmaW5pdHkiLCBzaW5j ZSB0aGF0IGlzIHdoYXQncyBtb3N0IGNvbW1vbmx5IHVzZWQgaW4KdGhlIGluZHVzdHJ5LgoKNCkg U2ltaWxhcmx5LCB5b3VyIG93biBkaXNjdXNzaW9uIHJlZmVycyB0byAicG9zaXRpdmUiIGFuZCAi bmVnYXRpdmUiCmFmZmluaXR5LCB5ZXQgYSBjaG9pY2Ugd2FzIG1hZGUgdG8gaWRlbnRpZnkgdGhl c2UgaW4gdGhlIHJ1bGUgY29uZmlndXJhdGlvbgphcyAidG9nZXRoZXIiIGFuZCAic2VwYXJhdGUi LCB3aGljaCB3aGlsZSByZWxhdGl2ZWx5IGNsZWFyLCBmZWVscyBlbnRpcmVseQpjb250cml2ZWQg KGFzIHdlbGwgYXMgdXBzZXR0aW5nIHRoZSBsYW5ndWFnZSBwYXJ0IG9mIG15IGJyYWluIGJ5IGJl aW5nCmFkdmVyYnMgd2hlbiBhZGplY3RpdmVzIGFyZSB3YXJyYW50ZWQpIHNpbmNlIGFmZmluaXR5 IChpbiBjb21wdXRpbmcgLwpyZXNvdXJjZSBzY2hlZHVsaW5nIGNvbnRleHRzIGF0IGxlYXN0KSBp cyB2ZXJ5IGNvbW1vbmx5IGRlc2NyaWJlZCBhcwpwb3NpdGl2ZSBhbmQgbmVnYXRpdmUuCgpIYXBw eSB0byBkaXNjdXNzIGZ1cnRoZXIsIG9yIGJlIHBvaW50ZWQgdG8gcHJpb3IgZGViYXRlcyBvdmVy IHRoaXMgdGhhdApJJ3ZlIGxpa2VseSBtaXNzZWQuCkFuZCwgb2YgY291cnNlLCBJJ2QgaGFwcGls eSBzdWZmZXIgdGhlIGNyaW5nZS13b3J0aCBub21lbmNsYXR1cmUgdG8gaGF2ZQp0aGUgZmVhdHVy ZSBzb29uZXIgdGhhbiBsYXRlciEgSnVzdCBzYXlpbmc6IFRodW1icyBVcCEKCi0tIApKaWxsaWFu IE1vcmdhbiAoc2hlL2hlcikKU3lzdGVtcyAmIE5ldHdvcmtpbmcgU3BlY2lhbGlzdApQcmltb3Jk aWFsIFNvZnR3YXJlIEdyb3VwICYgSS5ULiBDb25zdWx0YW5jeQpodHRwczovL3d3dy5wcmltb3Jk aWFsLmNhCgoKT24gRnJpLCBKdW4gMjAsIDIwMjUgYXQgMTE6NDPigK9BTSBEYW5pZWwgS3JhbCA8 ZC5rcmFsQHByb3htb3guY29tPiB3cm90ZToKCj4gT24gNi8yMC8yNSAxNjozMSwgRGFuaWVsIEty YWwgd3JvdGU6Cj4gPiBDaGFuZ2Vsb2cKPiA+IC0tLS0tLS0tLQo+Cj4gSnVzdCBub3RpY2VkIHRo YXQgSSBtaXNzZWQgb25lIGRldGFpbCB0aGF0IG1pZ2h0IGJlIGJlbmVmaWNpYWwgdG8ga25vdywK PiBzbyBmb2xsb3dpbmcgdGhlIHBhdGNoIGNoYW5nZXMgaXMgZWFzaWVyOgo+Cj4gLSBtaWdyYXRl IGhhIGdyb3VwcyBpbnRlcm5hbGx5IGluIHRoZSBIQSBNYW5hZ2VyIHRvIGhhIGxvY2F0aW9uIHJ1 bGVzLAo+ICAgIHNvIHRoYXQgaW50ZXJuYWxseSB0aGVzZSBjYW4gYWxyZWFkeSBiZSByZXBsYWNl ZDsgdGhlIHRlc3QgY2FzZXMgaW4KPiAgICBoYS1tYW5hZ2VyIHBhdGNoICMwOSAoc3R1Y2sgaW4g bW9kZXJhdG9yIHJldmlldyBiZWNhdXNlIGl0IGJlY2FtZQo+ICAgIHF1aXRlIGxhcmdlKSBhcmUg dGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIG1pZ3JhdGlvbiBwcm9kdWNlcyB0aGUgc2FtZQo+ICAg IHJlc3VsdCBmb3IgdGhlIG1pZ3JhdGVkIGxvY2F0aW9uIHJ1bGVzCj4KPiBPbiA2LzIwLzI1IDE2 OjMxLCBEYW5pZWwgS3JhbCB3cm90ZToKPiA+IFRPRE8KPiA+IC0tLS0KPiA+Cj4gPiBUaGVyZSBh cmUgc29tZSB0aGluZ3MgbGVmdCB0byBiZSBkb25lIG9yIGRpc2N1c3NlZCBmb3IgYSBwcm9wZXIg cGF0Y2gKPiA+IHNlcmllczoKPgo+IEFsc28gb3RoZXIgc21hbGwgdGhpbmdzIHRvIHBvaW50IG91 dDoKPgo+IC0gQWRkIG1pc3NpbmcgY29tbWVudCBmaWVsZCBpbiBydWxlIGVkaXQgZGlhbG9nCj4K PiAtIFNpbmNlIGhhIGxvY2F0aW9uIHJ1bGVzIHdlcmUgZGVzaWduZWQgc28gdGhhdCB0aGVzZSB3 aWxsIG5ldmVyIGJlCj4gICAgZHJvcHBlZCBieSB0aGUgcnVsZSBjaGVja3MgKHRoaXMgaXMgYmVj YXVzZSB0aGVyZSB3YXMgbm8gbm90aW9uIG9mCj4gICAgZHJvcHBpbmcgaGEgZ3JvdXBzKSwgbG9j YXRpb24gcnVsZXMgYXJlIHRoZSBvbmx5IHJ1bGVzIHRoYXQgY2FuCj4gICAgaW50cm9kdWNlIGNv bmZsaWN0cywgZS5nLiBpbnRyb2R1Y2luZyBhbm90aGVyIHByaW9yaXR5IGdyb3VwIGluIHRoZQo+ ICAgIGxvY2F0aW9uIHJ1bGUgb3IgcmVzdHJpY3RpbmcgY29sb2NhdGVkIHNlcnZpY2VzIHRvbyBt dWNoLgo+Cj4gICAgV2hhdCBzaG91bGQgd2UgZG8gaGVyZT8gYWxsb3cgZHJvcHBpbmcgbG9jYXRp b24gcnVsZXMgd2hlbiB0aGVzZSBhcmUKPiAgICBub3QgYXV0b21hdGljYWxseSBtaWdyYXRlZCBm cm9tIGdyb3Vwcz8gT3Igc2hvdyBhIGNvbmZvcm1hdGlvbiBkaWFsb2cKPiAgICB3aGVuIGNyZWF0 aW5nIHRoZXNlLCBzbyB0aGF0IHVzZXJzIGFyZSB3YXJuZWQ/IEJvdGggb2YgdGhlbSB3b3VsZAo+ ICAgIGludHJvZHVjZSBzb21lIG1vcmUgY29tcGxleGl0eS9zdGF0ZSBpbiBob3cgcnVsZXMgYXJl IGNoZWNrZWQuIEZvcgo+ICAgIG5vdywgdGhlc2UgY29uZmxpY3RzIGFyZSBjcmVhdGVkIHNpbGVu dGx5Lgo+Cj4gLSBSZWxvYWQgYm90aCBoYSBsb2NhdGlvbiBhbmQgaGEgY29sb2NhdGlvbiBydWxl cyBpZiBvbmUgb2YgdGhlbSBnZXRzCj4gICAgY2hhbmdlZCAoZS5nLiB3aGVuIGEgbG9jYXRpb24g cnVsZSBpcyBhZGRlZCB0aGF0IGNyZWF0ZXMgYSBjb25mbGljdCBpbgo+ICAgIGhhIGNvbG9jYXRp b24gcnVsZXMsIHRoZW4gaXQgd2lsbCBvbmx5IHNob3cgdGhlIGNvbmZsaWN0IG9uIHRoZSBuZXh0 Cj4gICAgcmVsb2FkKS4KPgo+ID4KPiA+IC0gSW1wbGVtZW50IGNoZWNrIHdoaWNoIGRvZXMgbm90 IGFsbG93IG5lZ2F0aXZlIGNvbG9jYXRpb24gcnVsZXMgd2l0aAo+ID4gICAgbW9yZSBzZXJ2aWNl cyB0aGFuIG5vZGVzLCBiZWNhdXNlIHRoZXNlIGNhbm5vdCBiZSBhcHBsaWVkLiBPciBzaG91bGQK PiA+ICAgIHdlIGp1c3QgZmFpbCB0aGUgcmVtYWluaW5nIHNlcnZpY2VzIHdoaWNoIGNhbm5vdCBi ZSBzZXBhcmF0ZWQgdG8gYW55Cj4gPiAgICBub2RlIHNpbmNlIHRoZXNlIGRvIG5vdCBoYXZlIGFu eXdoZXJlIHRvIGdvPwo+ID4KPiA+IC0gSG93IGNhbiB0aGUgbWlncmF0aW9uIHByb2Nlc3MgZnJv bSBIQSBncm91cHMgdG8gSEEgbG9jYXRpb24gcnVsZXMgYmUKPiA+ICAgIGltcHJvdmVkPyBBZGQg YSAnTWlncmF0ZScgYnV0dG9uIHRvIHRoZSBIQSBHcm91cHMgcGFnZSBhbmQgdGhlbgo+ID4gICAg YXV0by10b2dnbGUgdGhlIHVzZS1sb2NhdGlvbi1ydWxlcyBmZWF0dXJlIGZsYWc/IFNob3VsZCB0 aGUKPiA+ICAgIHVzZS1sb2NhdGlvbi1ydWxlcyBmZWF0dXJlIGZsYWcgZXZlbiBiZSB1c2VyLXRv Z2dsZWFibGU/Cj4KPiBBbm90aGVyIHBvaW50IGhlcmUgZm9yIHRoZSBtaWdyYXRpb24gb2YgSEEg Z3JvdXBzIHRvIEhBIGxvY2F0aW9uIHJ1bGVzCj4gaXMgaG93IHdlIHdvdWxkIG5hbWUgdGhlc2Ug bmV3IGxvY2F0aW9uIHJ1bGVzPyBJbiB0aGUgYXV0by1taWdyYXRpb24gdGhlCj4gY29kZSBjdXJy ZW50bHkgcHJlZml4ZXMgdGhlIGdyb3VwIG5hbWUgd2l0aCBgX2dyb3VwX2Agc28gdGhhdCB0aGV5 Cj4gY2Fubm90IGNvbmZsaWN0IHdpdGggY29uZmlnIGtleXMgYXMgdGhlc2UgY2Fubm90IHN0YXJ0 IHdpdGggYQo+IHVuZGVyc2NvcmUuIElmIHdlIGludHJvZHVjZSBhIG1hbnVhbCAiTWlncmF0ZSIg YnV0dG9uLCB0aGVuIHdlJ2QgbmVlZCB0bwo+IGhhbmRsZSBuYW1lIGNvbGxpc2lvbnMgd2l0aCBl aXRoZXIgYWxyZWFkeSBleGlzdGluZyBIQSBsb2NhdGlvbiBydWxlcwo+IChlc3BlY2lhbGx5IGlm IHdlIGFsbG93IHN3aXRjaGluZyBiYWNrIGFuZCBmb3J3YXJkKSBhbmQgZXhpc3RpbmcgSEEKPiBj b2xvY2F0aW9uIHJ1bGVzLgo+Cj4gPgo+ID4gLSBBZGQgd2ViIGludGVyZmFjZSBhbmQvb3IgQ0xJ IGZhY2luZyBtZXNzYWdlcyBhYm91dCB0aGUgSEEgc2VydmljZQo+ID4gICAgbWlncmF0aW9uIGJs b2NrZXJzIGFuZCBzaWRlLWVmZmVjdHMuIFRoZSByb3VnaCBpZGVhIHdvdWxkIGJlIGxpa2UgdGhl Cj4gPiAgICBmb2xsb3dpbmcgKGZlZWRiYWNrIGhpZ2hseSBhcHByZWNpYXRlZCEpOgo+ID4KPiA+ ICAgICAgLSBGb3IgdGhlIHdlYiBpbnRlcmZhY2UsIEknZCBtYWtlIHRoZXNlIHZpc2libGUgdGhy b3VnaCB0aGUgYWxyZWFkeQo+ID4gICAgICAgIGV4aXN0aW5nIHByZWNvbmRpdGlvbiBjaGVja3Mg KHdoaWNoIG5lZWQgdG8gYWxzbyBiZSBhZGRlZCBmb3IKPiA+ICAgICAgICBjb250YWluZXJzLCBh cyB0aGVyZSBpcyBubyBleGlzdGluZyBBUEkgZW5kcG9pbnQgdGhlcmUpLgo+ID4gICAgICAgIFNp ZGUtZWZmZWN0cyB3b3VsZCBiZSAnd2FybmluZycgaXRlbXMsIHdoaWNoIGp1c3Qgc3RhdGUgdGhh dCBzb21lCj4gPiAgICAgICAgcG9zaXRpdmVseSBjb2xvY2F0ZWQgc2VydmljZSBpcyBtaWdyYXRl ZCB3aXRoIHRoZW0gKHRoZSAnTWlncmF0ZScKPiA+ICAgICAgICBidXR0b24gdGhlbiBpcyB0aGUg Y29uZmlybWF0aW9uIGZvciB0aGF0KS4gQmxvY2tlcnMgd291bGQgYmUKPiA+ICAgICAgICAnZXJy b3InIGl0ZW1zLCB3aGljaCBzdGF0ZSB0aGF0IGEgbmVnYXRpdmVseSBjb2xvY2F0ZWQgc2Vydmlj ZSBpcwo+ID4gICAgICAgIG9uIHRoZSByZXF1ZXN0ZWQgdGFyZ2V0IG5vZGUgYW5kIHRoZXJlZm9y ZSB0aGUgbWlncmF0aW9uIGlzCj4gPiAgICAgICAgYmxvY2tlZCBiZWNhdXNlIG9mIHRoYXQuCj4g Pgo+ID4gICAgICAtIEZvciBidWxrIG1pZ3JhdGlvbnMgaW4gdGhlIHdlYiBpbnRlcmZhY2UsIHRo ZXNlIGFyZSBzdGlsbCB2aXNpYmxlCj4gPiAgICAgICAgdGhyb3VnaCB0aGUgY29uc29sZSB0aGF0 IGlzIHBvcHBlZCB1cCBhZnRlcndhcmRzLCB3aGljaCBzaG91bGQKPiA+ICAgICAgICBwcmludCB0 aGUgbWVzc2FnZXMgZnJvbSB0aGUgbWlncmF0ZS9yZWxvY2F0ZSBjcm0tY29tbWFuZCBBUEkKPiA+ ICAgICAgICBlbmRwb2ludHMuCj4gPgo+ID4gICAgICAtIEZvciB0aGUgQ0xJLCBJJ2QgYWRkIGFu b3RoZXIgJ2ZvcmNlJyBmbGFnIG9yIHNvbWV0aGluZyBzaW1pbGFyLiBJZgo+ID4gICAgICAgIHRo ZXJlIGFyZSBzaWRlLWVmZmVjdHMgYW5kIHRoZSBmb3JjZSBmbGFnIGlzIG5vdCBzZXQsIHRoZW4g bm8KPiA+ICAgICAgICBtaWdyYXRpb24gaGFwcGVucyBhdCBhbGwsIGJ1dCB0aGUgdXNlciBnZXRz IGEgbGlzdCBvZiB0aGUKPiA+ICAgICAgICBtaWdyYXRpb25zIHRoYXQgd2lsbCBiZSBkb25lIGFu ZCBzaG91bGQgY29uZmlybSBieSBtYWtpbmcgYW5vdGhlcgo+ID4gICAgICAgIGNhbGwgdG8gJ21p Z3JhdGUnLydyZWxvY2F0ZScgd2l0aCB0aGUgZm9yY2UgZmxhZyBzZXQgdG8gY29uZmlybQo+ID4g ICAgICAgIHRoZXNlIGNob2ljZXMuCj4gPgo+ID4gLSBBZGQgbW9yZSB1c2VyIGRvY3VtZW50YXRp b24gKGVzcGVjaWFsbHkgYWJvdXQgY29uZmxpY3RzLCBtaWdyYXRpb25zLAo+ID4gICAgcmVzdHJp Y3Rpb25zIGFuZCBmYWlsb3ZlciBzY2VuYXJpbyBoYW5kbGluZykKPiA+Cj4gPiAtIEFkZCBtaXhl ZCB0ZXN0IGNhc2VzIHdpdGggSEEgbG9jYXRpb24gYW5kIEhBIGNvbG9jYXRpb24gcnVsZXMKPgo+ Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBwdmUt ZGV2ZWwgbWFpbGluZyBsaXN0Cj4gcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCj4gaHR0cHM6 Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCj4K PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2 ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3Rz LnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK