From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com [209.85.208.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 794A81B2186; Fri, 8 Aug 2025 21:51:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754689907; cv=none; b=Fc2yc/F8CNQQNxFnJqjCWKwcOx9ttC04yIlS5bfmP/PEExTBnkRS/cGHn6uFRo37o+u/6HOauKM2/7t1DEwO4dDx6rYeDJREb6t0R6Dfab4T4U1j3wJYg7ekRIO67uTfw7iZ59TBeTrDgVRo28HGL7sF13x3Dne1sPn/k88amPY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754689907; c=relaxed/simple; bh=IHAy7AaeMIszNJS4IIADYjNTFeBM/u2+DaJOBi+KNm4=; h=MIME-Version:From:Date:Message-ID:Subject:To:Cc:Content-Type; b=dJ2ErQVzdAe3Thp0bwOkUEnjgFP8y6GBhbC8xXcki94jWFDirBHrjAtoraXv3ydye3PhFHC9yx/I617Mxn1rrazd803gf7AO/3qG5ez/cLd16Noj7xDRVW7vAkF+98L+QKJBUfZ+s3XDcRNMuJLYil/OSI2L87tQjrX/tNQ8mRM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=f4dAYZB7; arc=none smtp.client-ip=209.85.208.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="f4dAYZB7" Received: by mail-lj1-f169.google.com with SMTP id 38308e7fff4ca-3322d10e29dso20754391fa.0; Fri, 08 Aug 2025 14:51:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754689903; x=1755294703; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=vh0hYmIyP9DucyE/TOBInzLUx2edmySooLyN+uuo3zQ=; b=f4dAYZB74f2J1LzqPkWvbuw6AnIVNzaaR4Y+wPQ8byH8hroJ3qp0bPRlxYWt67+z4M UH6tEV8pSNV9tRCrwLHfysweLP/9XMrDtYHGz8wUU1maNCvnvDOOr1phcqL9odZ8zTxY XsFWJWA9LlGFWnyoJF+O6pbInlxJd89uHGRjTkDOq8B4TW6oo5gKKz7NwESat66h5rB4 BGvxUfFoSgALSNUYWu9WrQIcTlYapRZMQNYOfzqfw7EYjDxD6d1Igze3vngzTFKcb/Cq XxPBXWKrLhyIzE0rHD7SgqBqxDsYmGbxoLsscjRJMS4qqaBMFH4xfc5Kh07Nj5pH0srO qLdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754689903; x=1755294703; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=vh0hYmIyP9DucyE/TOBInzLUx2edmySooLyN+uuo3zQ=; b=TH0izFEHgqit7ErQgQFRcZbtQPWqDg3IW0nr+eLYpq/FwME/DTxzLe5/uj8llGrrgb ZwjYmmaU2BR1avcrFTeDPbQ8reiTTv1DINrEtZlc6BmAS/P7w1xKLE3Sn/qXy/UrWQE3 Z2S5MNte0z6XzSSlaBHaEyDinLgZ4a0S3OIoE8FNgom7YzLh8gOlzIzwv0BdP2kYuH18 u2AE96U1IrM2VNUY+I52VBvQao8BuARveq9DzwewxzA3bwsWaAJPtnqLl0Tuj/OTDMvr HR7hvECB3YYD51lA6vAFySZtXaVcWuszzwt9d0p+jk2m4sj+gMLBwhWUzAEY/P4fm/6s 64aw== X-Gm-Message-State: AOJu0YwXKTFYlRjawTT6askP3tIIYncsvHaeGhPcqdP0Dwco8bApjUkL ZHHDl09rjZKjKvZv5z9qBV94ZN65EBuH4qhnGjHdokhxZUE+VSMTlyGRvCN6q4QhwA7pSXu7paF aX4/mKPKFgWxbpYSJet4m0SolVO4g/5E7nyPv X-Gm-Gg: ASbGncsNgJIvVMS/dzrX5h+4Df4Q/xiFYsTCEtrP4YSDUm0U5iOVKEUq25Jy9s9iVp7 kNECK9C7qDMacxycvd58ugaxnhbNxDDkLqTLdbYdr8y0Q3yQ/QcK0z7jkTj9M5QH+STlcJe9SVB YLmwU8BzeTGYXfzXE1t33ZsZptax4k5pWmcCXX/bLck+3qBdFu3+GlD2Y78206C4WfZEhJPnMQx /ho5+FEAy+R9Lwr36AFMyTzuwem5mlC/1UaDUAY X-Google-Smtp-Source: AGHT+IGdnTIiAb+3CdfqC7q+bJPuWbS3Q+yNO0ZL2bjpWrv3rAAp3foHCxrvUkjwQh/4OnVjY567MKwLIfNi4Xx0CTM= X-Received: by 2002:a2e:a553:0:b0:32a:739d:fac with SMTP id 38308e7fff4ca-333a22f6e43mr13654851fa.36.1754689902354; Fri, 08 Aug 2025 14:51:42 -0700 (PDT) Precedence: bulk X-Mailing-List: rust-for-linux@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: AI talking about AI Date: Fri, 8 Aug 2025 18:51:30 -0300 X-Gm-Features: Ac12FXxvzVSAPhLjX-LhvAo3Q5tvcDsmDYvJJpIgA5Jh0mJUP8RnVOVNruf43wI Message-ID: Subject: [PATCH v2] Rust: kernel patch submission To: rust-for-linux@vger.kernel.org Cc: linux-kernel@vger.kernel.org Content-Type: multipart/mixed; boundary="00000000000052bc61063be1948b" --00000000000052bc61063be1948b Content-Type: multipart/alternative; boundary="00000000000052bc5f063be19489" --00000000000052bc5f063be19489 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi all, This is a two-patch series for the Rust-for-Linux tree: 1) rust: mark CStr::to_str #[must_use] and update docs - Adds an "# Errors" section explaining UTF-8 failure modes - Prevents silent ignores by marking to_str() as #[must_use] - Documents safety preconditions on as_str_unchecked() 2) rust: clarify safety comments in workqueue.rs - Replaces generic SAFETY: TODO with detailed invariants for RawWorkItem::__enqueue and WorkItemPointer::run Please let me know if you=E2=80=99d like any tweaks. Thanks, =E2=80=94Slopisgood --00000000000052bc5f063be19489 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi all,

This is a two-patch series for the Rust-for= -Linux tree:

=C2=A0 1) rust: mark CStr::to_str #[must_use] and updat= e docs
=C2=A0 =C2=A0 =C2=A0- Adds an "# Errors" section explai= ning UTF-8 failure modes
=C2=A0 =C2=A0 =C2=A0- Prevents silent ignores b= y marking to_str() as #[must_use]
=C2=A0 =C2=A0 =C2=A0- Documents safety= preconditions on as_str_unchecked()

=C2=A0 2) rust: clarify safety = comments in workqueue.rs
=C2=A0 =C2= =A0 =C2=A0- Replaces generic SAFETY: TODO with detailed invariants
=C2= =A0 =C2=A0 =C2=A0 =C2=A0for RawWorkItem::__enqueue and WorkItemPointer::run=

Please let me know if you=E2=80=99d like any tweaks.

Thanks,=
=E2=80=94Slopisgood

--00000000000052bc5f063be19489-- --00000000000052bc61063be1948b Content-Type: text/x-patch; charset="US-ASCII"; name="0002-rust-clarify-safety-comments-in-workqueue.rs.patch" Content-Disposition: attachment; filename="0002-rust-clarify-safety-comments-in-workqueue.rs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me3d1j3o0 RnJvbSBkNjYzODQ1MTRmMTJiZjc2MDdmYmI0NTE4NWJjNjY2OTllNmNiZjQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzbG9waXNnb29kIDxhaXRhbGtpbmdhaUBnbWFpbC5jb20+CkRh dGU6IFRodSwgNyBBdWcgMjAyNSAwNzo1NDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBy dXN0OiBjbGFyaWZ5IHNhZmV0eSBjb21tZW50cyBpbiB3b3JrcXVldWUucnMKClJlcGxhY2UgcGxh Y2Vob2xkZXIgYFNBRkVUWTogVE9ET2AgY29tbWVudHMgaW4gcnVzdC9rZXJuZWwvd29ya3F1ZXVl LnJzIHdpdGggZGV0YWlsZWQgZXhwbGFuYXRpb25zIG9mIHNhZmV0eSBpbnZhcmlhbnRzIGZvciBS YXdXb3JrSXRlbSBhbmQgV29ya0l0ZW1Qb2ludGVyLCBmb2xsb3dpbmcgcnVzdCBrZXJuZWwgZ3Vp ZGVsaW5lcy4KClNpZ25lZC1vZmYtYnk6IHNsb3Bpc2dvb2QgPGFpdGFsa2luZ2FpQGdtYWlsLmNv bT4KLS0tCiBydXN0L2tlcm5lbC93b3JrcXVldWUucnMgfCAyOSArKysrKysrKysrKysrKysrKysr KysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvd29ya3F1ZXVlLnJzIGIvcnVzdC9rZXJuZWwv d29ya3F1ZXVlLnJzCmluZGV4IGI5MzQzZDUuLjRhMzQ2NTEgMTAwNjQ0Ci0tLSBhL3J1c3Qva2Vy bmVsL3dvcmtxdWV1ZS5ycworKysgYi9ydXN0L2tlcm5lbC93b3JrcXVldWUucnMKQEAgLTg4MSw3 ICs4ODEsMTkgQEAgd2hlcmUKIHsKIH0KIAotLy8gU0FGRVRZOiBUT0RPLgorICAgIC8vIFNBRkVU WToKKyAgICAvLworICAgIC8vIFRoZSBbYHJ1bmBdKFdvcmtJdGVtUG9pbnRlcjo6cnVuKSBmdW5j dGlvbiBwb2ludGVyIHN0b3JlZCBpbiB0aGUgYHdvcmtfc3RydWN0YCBhbHdheXMKKyAgICAvLyBv cmlnaW5hdGVzIGZyb20gYSBwcmlvciBjYWxsIHRvIFtgX19lbnF1ZXVlYF0oUmF3V29ya0l0ZW06 Ol9fZW5xdWV1ZSkgb24gYQorICAgIC8vIGBQaW48S0JveDxUPj5gLiAgQSBgUGluPEtCb3g8VD4+ YCBvd25zIGl0cyBoZWFwIGFsbG9jYXRpb24gYW5kLCBieSB2aXJ0dWUgb2YgYmVpbmcKKyAgICAv LyBwaW5uZWQsIGd1YXJhbnRlZXMgdGhhdCBpdHMgY29udGVudHMgd2lsbCBub3QgYmUgbW92ZWQu ICBXaGVuIHRoZSBDIHNpZGUgb2YgdGhlCisgICAgLy8gd29ya3F1ZXVlIGludm9rZXMgdGhlIGZ1 bmN0aW9uIHBvaW50ZXIsIGl0IHBhc3NlcyBiYWNrIHRoZSBzYW1lIGB3b3JrX3N0cnVjdGAKKyAg ICAvLyBwb2ludGVyIHRoYXQgd2FzIHByb2R1Y2VkIGJ5IGBfX2VucXVldWVgLiAgVGhpcyBpbXBs ZW1lbnRhdGlvbiBjb21wdXRlcyB0aGUKKyAgICAvLyBvcmlnaW5hbCBgS0JveGAgZnJvbSB0aGF0 IHBvaW50ZXIgdmlhIGB3b3JrX2NvbnRhaW5lcl9vZmAgYW5kIGNvbnZlcnRzIGl0IGJhY2sKKyAg ICAvLyBpbnRvIGEgcGlubmVkIGJveCwgd2hpY2ggaXMgc2FmZSBiZWNhdXNlIG93bmVyc2hpcCBp cyB0cmFuc2ZlcnJlZCBiYWNrIGZyb20gdGhlCisgICAgLy8ga2VybmVsLiAgVGhlcmVmb3JlLCB0 aGUgcG9pbnRlciBwYXNzZWQgdG8gYHJ1bmAgaXMgYWx3YXlzIHZhbGlkIGZvciB0aGUKKyAgICAv LyBkdXJhdGlvbiBvZiB0aGUgY2FsbCwgYW5kIGRlcmVmZXJlbmNpbmcgaXQgaXMgc291bmQuCisK IHVuc2FmZSBpbXBsPFQsIGNvbnN0IElEOiB1NjQ+IFdvcmtJdGVtUG9pbnRlcjxJRD4gZm9yIFBp bjxLQm94PFQ+Pgogd2hlcmUKICAgICBUOiBXb3JrSXRlbTxJRCwgUG9pbnRlciA9IFNlbGY+LApA QCAtOTAxLDcgKzkxMywyMCBAQCB3aGVyZQogICAgIH0KIH0KIAotLy8gU0FGRVRZOiBUT0RPLgor ICAgIC8vIFNBRkVUWToKKyAgICAvLworICAgIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBbYFJh d1dvcmtJdGVtOjpfX2VucXVldWVgXSBmb3IgYFBpbjxLQm94PFQ+PmAgYWxsb2NhdGVzIGEKKyAg ICAvLyBuZXcgYFdvcms8VCwgSUQ+YCBhbmQgb2J0YWlucyBhIHJhdyBwb2ludGVyIHRvIGl0cyBl bWJlZGRlZCBgd29ya19zdHJ1Y3RgIHZpYQorICAgIC8vIFtgcmF3X2dldF93b3JrYF0oV29yazo6 cmF3X2dldCkuICBJdCB0aGVuIHBhc3NlcyB0aGF0IHBvaW50ZXIgdG8gdGhlIHByb3ZpZGVkCisg ICAgLy8gY2xvc3VyZS4gIFRoZSBgUGluPEtCb3g8VD4+YCBpcyBmcmVzaGx5IGFsbG9jYXRlZCBh bmQgYnkgdHlwZSBpbnZhcmlhbnRzIGNhbm5vdAorICAgIC8vIGFscmVhZHkgYmUgZW5xdWV1ZWQs IHNvIHRoZSBjbG9zdXJlIG11c3QgcmV0dXJuIGB0cnVlYC4gIElmIGl0IHdlcmUgdG8gcmV0dXJu CisgICAgLy8gYGZhbHNlYCwgdGhlIGltcGxlbWVudGF0aW9uIGludm9rZXMgYHVucmVhY2hhYmxl X3VuY2hlY2tlZCgpYCwgd2hpY2ggaXMgbmV2ZXIKKyAgICAvLyByZWFjaGVkIGluIHZhbGlkIHVz YWdlLiAgV2hlbiB0aGUgY2xvc3VyZSByZXR1cm5zIGB0cnVlYCB0aGUgQyB3b3JrcXVldWUKKyAg ICAvLyBzdWJzeXN0ZW0gdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBgd29ya19zdHJ1Y3RgIGFuZCB3 aWxsIGV2ZW50dWFsbHkgY2FsbCBiYWNrCisgICAgLy8gaW50byBbYFdvcmtJdGVtUG9pbnRlcjo6 cnVuYF0sIGF0IHdoaWNoIHBvaW50IHRoZSBib3ggaXMgcmVjb3ZlcmVkIGFuZAorICAgIC8vIGRy b3BwZWQuICBUaHJvdWdob3V0IHRoaXMgcHJvY2VzcyB0aGUgcmF3IHBvaW50ZXIgcGFzc2VkIHRv IHRoZSBjbG9zdXJlCisgICAgLy8gcmVtYWlucyB2YWxpZCBmb3IgdGhlIGR1cmF0aW9uIHNwZWNp ZmllZCBpbiBbYFJhd1dvcmtJdGVtYF0ncyBzYWZldHkgY29udHJhY3QuCisKIHVuc2FmZSBpbXBs PFQsIGNvbnN0IElEOiB1NjQ+IFJhd1dvcmtJdGVtPElEPiBmb3IgUGluPEtCb3g8VD4+CiB3aGVy ZQogICAgIFQ6IFdvcmtJdGVtPElELCBQb2ludGVyID0gU2VsZj4sCi0tIAoyLjM5LjUKCg== --00000000000052bc61063be1948b Content-Type: text/x-patch; charset="US-ASCII"; name="0001-rust-mark-CStr-to_str-must_use-and-update-docs.patch" Content-Disposition: attachment; filename="0001-rust-mark-CStr-to_str-must_use-and-update-docs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me3d1j4r1 RnJvbSAyMWEzZDJhMmRjZmYxM2Y0NDU5MTU2MDJjMDZhMTdhZjA3ODM1ZWU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzbG9waXNnb29kIDxhaXRhbGtpbmdhaUBnbWFpbC5jb20+CkRh dGU6IFRodSwgNyBBdWcgMjAyNSAwNzo1Mzo1NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBy dXN0OiBtYXJrIENTdHI6OnRvX3N0ciAjW211c3RfdXNlXSBhbmQgdXBkYXRlIGRvY3MKCkFkZCBl eHBsYW5hdGlvbiBhYm91dCBoYW5kbGluZyBVVEYtOCBlcnJvcnMgYW5kIG1hcmsgQ1N0cjo6dG9f c3RyIGFzICNbbXVzdF91c2VdIHRvIHByZXZlbnQgc2lsZW50IGVycm9yIGlnbm9yaW5nLiBBbHNv IGRvY3VtZW50IHNhZmV0eSByZXF1aXJlbWVudHMgb2YgYXNfc3RyX3VuY2hlY2tlZC4KClNpZ25l ZC1vZmYtYnk6IHNsb3Bpc2dvb2QgPGFpdGFsa2luZ2FpQGdtYWlsLmNvbT4KLS0tCiBydXN0L2tl cm5lbC9zdHIucnMgfCAyOSArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvcnVz dC9rZXJuZWwvc3RyLnJzIGIvcnVzdC9rZXJuZWwvc3RyLnJzCmluZGV4IDZjODkyNTUuLjI5MDAz MWIgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL3N0ci5ycworKysgYi9ydXN0L2tlcm5lbC9zdHIu cnMKQEAgLTM3LDEyICszNyw4IEBAIGltcGwgQlN0ciB7CiAgICAgLy8vICMgRXhhbXBsZXMKICAg ICAvLy8KICAgICAvLy8gYGBgCi0gICAgLy8vICMgdXNlIGtlcm5lbDo6Yl9zdHI7Ci0gICAgLy8v IGFzc2VydF9lcSEoU29tZShiX3N0ciEoImJhciIpKSwgYl9zdHIhKCJmb29iYXIiKS5zdHJpcF9w cmVmaXgoYl9zdHIhKCJmb28iKSkpOwotICAgIC8vLyBhc3NlcnRfZXEhKE5vbmUsIGJfc3RyISgi Zm9vYmFyIikuc3RyaXBfcHJlZml4KGJfc3RyISgiYmFyIikpKTsKLSAgICAvLy8gYXNzZXJ0X2Vx IShTb21lKGJfc3RyISgiZm9vYmFyIikpLCBiX3N0ciEoImZvb2JhciIpLnN0cmlwX3ByZWZpeChi X3N0ciEoIiIpKSk7Ci0gICAgLy8vIGFzc2VydF9lcSEoU29tZShiX3N0ciEoIiIpKSwgYl9zdHIh KCJmb29iYXIiKS5zdHJpcF9wcmVmaXgoYl9zdHIhKCJmb29iYXIiKSkpOwotICAgIC8vLyBgYGAK KworLy8vCiAgICAgcHViIGZuIHN0cmlwX3ByZWZpeCgmc2VsZiwgcGF0dGVybjogaW1wbCBBc1Jl ZjxTZWxmPikgLT4gT3B0aW9uPCZCU3RyPiB7CiAgICAgICAgIHNlbGYuZGVyZWYoKQogICAgICAg ICAgICAgLnN0cmlwX3ByZWZpeChwYXR0ZXJuLmFzX3JlZigpLmRlcmVmKCkpCkBAIC0zNDYsNyAr MzQyLDcgQEAgaW1wbCBDU3RyIHsKICAgICAvLy8KICAgICAvLy8gSWYgdGhlIGNvbnRlbnRzIG9m IHRoZSBbYENTdHJgXSBhcmUgdmFsaWQgVVRGLTggZGF0YSwgdGhpcwogICAgIC8vLyBmdW5jdGlv biB3aWxsIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyBbYCZzdHJgXSBzbGljZS4gT3RoZXJ3aXNl LAotICAgIC8vLyBpdCB3aWxsIHJldHVybiBhbiBlcnJvciB3aXRoIGRldGFpbHMgb2Ygd2hlcmUg VVRGLTggdmFsaWRhdGlvbiBmYWlsZWQuCisgICAgLy8vIGl0IHdpbGwgcmV0dXJuIGFuIFtgRXJy YF0gd2l0aCBkZXRhaWxzIG9mIHdoZXJlIFVURi04IHZhbGlkYXRpb24gZmFpbGVkLgogICAgIC8v LwogICAgIC8vLyAjIEV4YW1wbGVzCiAgICAgLy8vCkBAIC0zNTYsNyArMzUyLDIxIEBAIGltcGwg Q1N0ciB7CiAgICAgLy8vIGFzc2VydF9lcSEoY3N0ci50b19zdHIoKSwgT2soImZvbyIpKTsKICAg ICAvLy8gIyBPazo6PCgpLCBrZXJuZWw6OmVycm9yOjpFcnJvcj4oKCkpCiAgICAgLy8vIGBgYAor CisgICAgLy8vCisgICAgLy8vICMgRXJyb3JzCisgICAgLy8vCisgICAgLy8vIFRoaXMgZnVuY3Rp b24gcmV0dXJucyBhbiBbYEVycmBdIHdoZW4gdGhlIHVuZGVybHlpbmcgYnl0ZXMgYXJlIG5vdAor ICAgIC8vLyB2YWxpZCBVVEYtOC4gVGhlIFtgRXJyYF0gbXVzdCBiZSBoYW5kbGVkOyBpdCBjYW5u b3QgYmUgZGlzY2FyZGVkLAorICAgIC8vLyBhcyBpbmRpY2F0ZWQgYnkgdGhlIGAjW211c3RfdXNl XWAgYW5ub3RhdGlvbiBvbiB0aGlzIG1ldGhvZC4KKyAgICAvLy8KKyAgICAvLy8gVGhpcyBtZXRo b2QgcmV0dXJucyBhIFtgUmVzdWx0YF0gYmVjYXVzZSBub3QgYWxsIEMgc3RyaW5ncyBjb250YWlu CisgICAgLy8vIHZhbGlkIFVURi04LiBUbyBhdm9pZCBhY2NpZGVudGFsbHkgaWdub3JpbmcgYSBm YWlsZWQgY29udmVyc2lvbiwKKyAgICAvLy8gdGhlIHJldHVybiB0eXBlIGlzIG1hcmtlZCBgI1tt dXN0X3VzZV1gLiBDb2RlIHRoYXQgY2FsbHMgdGhpcworICAgIC8vLyBmdW5jdGlvbiBzaG91bGQg aGFuZGxlIHRoZSBlcnJvciBjYXNlIGV4cGxpY2l0bHkgKGUuZy4gYnkgbG9nZ2luZyBvcgorICAg IC8vLyBwcm9wYWdhdGluZyBpdCksIHJhdGhlciB0aGFuIHNpbGVudGx5IGRpc2NhcmRpbmcgaXQu CiAgICAgI1tpbmxpbmVdCisgICAgI1ttdXN0X3VzZV0KICAgICBwdWIgZm4gdG9fc3RyKCZzZWxm KSAtPiBSZXN1bHQ8JnN0ciwgY29yZTo6c3RyOjpVdGY4RXJyb3I+IHsKICAgICAgICAgY29yZTo6 c3RyOjpmcm9tX3V0Zjgoc2VsZi5hc19ieXRlcygpKQogICAgIH0KQEAgLTM4MCw3ICszOTAsMTAg QEAgaW1wbCBDU3RyIHsKICAgICAvLy8gYGBgCiAgICAgI1tpbmxpbmVdCiAgICAgcHViIHVuc2Fm ZSBmbiBhc19zdHJfdW5jaGVja2VkKCZzZWxmKSAtPiAmc3RyIHsKLSAgICAgICAgLy8gU0FGRVRZ OiBUT0RPLgorICAgICAgICAvLyBTQUZFVFk6IFRoZSBkYXRhIGJlaGluZCBgc2VsZmAgYXJlIGJ5 dGVzIGZyb20gYSBgQ1N0cmAsIGkuZS4gYSBOVUwtdGVybWluYXRlZCBzZXF1ZW5jZQorICAgICAg ICAvLyBvZiB1OCB2YWx1ZXMuIGBmcm9tX3V0ZjhfdW5jaGVja2VkYCByZXF1aXJlcyB0aGF0IHRo ZSBieXRlIHNsaWNlIGJlIHZhbGlkIFVURi04OyB0aGUKKyAgICAgICAgLy8gY2FsbGVyIG9mIHRo aXMgbWV0aG9kIG11c3QgdGhlcmVmb3JlIGd1YXJhbnRlZSB0aGF0IHRoZSBgQ1N0cmAgY29udGFp bnMgdmFsaWQgVVRGLTgKKyAgICAgICAgLy8gZGF0YSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0 aW9uLiBTZWUgW2B0b19zdHJgXSBmb3IgYSBjaGVja2VkIHZlcnNpb24uCiAgICAgICAgIHVuc2Fm ZSB7IGNvcmU6OnN0cjo6ZnJvbV91dGY4X3VuY2hlY2tlZChzZWxmLmFzX2J5dGVzKCkpIH0KICAg ICB9CiAKLS0gCjIuMzkuNQoK --00000000000052bc61063be1948b--