From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Authentication-Results: plum.tunbury.org; dkim=pass (1024-bit key; unprotected) header.d=inria.fr header.i=@inria.fr header.a=rsa-sha256 header.s=dc header.b=doPN20Z/; dkim-atps=neutral Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.134.164.83; helo=mail2-relais-roc.national.inria.fr; envelope-from=caml-list-owner@inria.fr; receiver=tunbury.org Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by plum.tunbury.org (Postfix) with ESMTPS id 06B3E4008C for ; Tue, 16 Jun 2026 10:51:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=from:to:date:message-id:mime-version:subject:reply-to: sender:list-id:list-help:list-subscribe:list-unsubscribe: list-post:list-owner:list-archive; bh=wsX0LjvTJGhpNTxLuIdDyVFwaGrpV6eeZL2dj4eGp7g=; b=doPN20Z/nyq+/1Qx2EeitE11HzfBGQCZTmfym6E1fMRRANomAix6gWt7 xTCcVRglwqsgt3h2Px6xVA8ixp0bjqiYGDMIa2YkLBemuyXLFr78OP4bb gB6ErO4J2HxBrUDQkPeHeNtKw2TR27eKvjIvyyKbNW2bJQdOX41fItshG g=; X-CSE-ConnectionGUID: mt0hU3dFSfKluGzBqy1VKw== X-CSE-MsgGUID: 7pLMhbyWRXefuxDCD4DeUA== Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=SoftFail smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@prod-sympa-app.inria.fr Received-SPF: SoftFail (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr is inclined to not designate 128.93.162.27 as permitted sender) identity=mailfrom; client-ip=128.93.162.27; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="caml-list-owner@inria.fr"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:128.93.142.0/24 ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:128.93.162.3 ip4:128.93.162.88 ip4:89.107.174.7 mx ~all" Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@prod-sympa-app.inria.fr) identity=helo; client-ip=128.93.162.27; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@prod-sympa-app.inria.fr"; x-conformance=spf_only X-IronPort-AV: E=Sophos;i="6.24,208,1774306800"; d="asc'?scan'208,217";a="281791297" Received: from prod-sympa-app.inria.fr ([128.93.162.27]) by mail2-relais-roc.national.inria.fr with ESMTP; 16 Jun 2026 12:51:36 +0200 Received: by prod-sympa-app.inria.fr (Postfix, from userid 990) id 3F9EE82651; Tue, 16 Jun 2026 12:51:36 +0200 (CEST) Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by prod-sympa-app.inria.fr (Postfix) with ESMTP id D9BB38059A for ; Tue, 16 Jun 2026 12:51:24 +0200 (CEST) X-CSE-ConnectionGUID: nc3NVpQmQoe0oFIyeZlCPQ== X-CSE-MsgGUID: /lCak4OwQqm0QLrsWvKpOg== IronPort-SDR: 6a312aaa_mKKSDKsycHTYP22iFjlSjmH3rxhYxgYst3iT6/E39uHf8O6 GQNuPJSQjROUKokdENIdb6LTzzuC5R2Ja1sekaA== X-ThreatScanner-Verdict: Negative X-IPAS-Result: =?us-ascii?q?A0HUBQCSKTFqhSIeaIFaFoJDgT2BBBsBbl8ZGgcISYQcP?= =?us-ascii?q?INPjiWBFpA3inwNgVyBKxYFHAIOBwEDAQgFLgEbBAECBAEBAQIBAgGEfxiNK?= =?us-ascii?q?gIfBgEEMwYOAQIEAwIDAQEBAQEBAQEBAQELAQEBBAEBAQIBAQIEAwEBAQECE?= =?us-ascii?q?AEBAQFASYZPDYJFGThTHmABAwECAQUBBgEBAQEBAQEBAQEBAQEBIgEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECBAgBGSlOD?= =?us-ascii?q?gkKEwEBOBgjAwkLAQYDAgQNATUDARMBEhQGgmgBgiACAk8DBQwGlFGbRHqBM?= =?us-ascii?q?oEBggwBAQaBCD4DDwMBDgkm2haBYAkJgTUYgViEGYJODw0BKklqAgEChE+EQ?= =?us-ascii?q?ScPgVVEgRU1gj4Hb4JhAQEBAYEVAiUBAQYCRRKDHIJqgiZ6EhuBV1YCgSQFG?= =?us-ascii?q?ScsDUYBBl2ECYZogkIsAVUTFwsHBV6BCAMqLy1uMh2BIz4XNFgbBwWBHoIIg?= =?us-ascii?q?QKFBiMfAzl/gXCBJWdmFTA1gQIRHwo6AwttPTcUG4tHECENgS5EGRcPgUEvC?= =?us-ascii?q?AY+Ag4HFxAPFRoTAQofAQEEHAINKRggCAMFFBkbAg4LDAQZBgsLAi2EY41jF?= =?us-ascii?q?Cgqd7FjNAeEIIFgBgyJCYEmlgeEBIFXiz2HA5E1gRwimGYjgjaHKIEmCQeBa?= =?us-ascii?q?GuIeYwrPAeFUYF+JIFHDgczGjBDgmcJRxwPjioZgkKBHhCBLoMaO1qBA8EpQ?= =?us-ascii?q?jUCAQE7BwIHAQwEhWsBAYw6gUsBAQ?= IronPort-PHdr: A9a23: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 IronPort-Data: A9a23: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 IronPort-HdrOrdr: A9a23:YPvYiq5uzIfuFaFCoAPXwPfXdLJyesId70hD6qkRc202TiX8ra rCoB11737JYVoqNE3I+urwW5VoI0m9yXcd2+B4VotKNzOJhILHFu5fxLqn6wKlMSzz/OxQ2M 5bAs1DIey1K0N1yeLz4AzQKadG/DBrytHNudvj X-Talos-CUID: 9a23:EJi/AGDuGYMHbUT6Ey9sr2gqAvkgS3rQlHD+Al61O2JCcITAHA== X-Talos-MUID: 9a23:XSPP/wSDgEY/OWX2RXSrgBprN5tP/J23DRg0tY8dhNenLQt/bmI= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.24,208,1774306800"; d="asc'?scan'208,217";a="149579441" X-URL-ContentFilter: X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown X-MGA-submission: =?us-ascii?q?MDGcEhFD5z4p7xlC2c/zSzYxaMz4Bm2Wyt7qmP?= =?us-ascii?q?RYgdmZ4+6t+flGdQXl0LymW4/HDzYsEs+uI2trmVPCP5pycNX0p/+VuK?= =?us-ascii?q?RGW5VTmkywTjm9QeL+e0dOTgVmp7xjJ2tmSAfgZT8POcZTeyDTPmJi87?= =?us-ascii?q?keEySC6nVE3ggIRnSIiwzAYg=3D=3D?= Received: from mx1.polytechnique.org ([129.104.30.34]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2026 12:51:23 +0200 Received: from mac-03220211.irisa.fr (mac-03220211.irisa.fr [131.254.21.249]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 39E881A5B7; Tue, 16 Jun 2026 12:51:21 +0200 (CEST) From: Alan Schmitt To: "lwn" , caml-list@inria.fr Date: Tue, 16 Jun 2026 12:51:18 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="===-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Jun 16 12:51:21 2026 +0200 (CEST)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.055546, queueID=591CA1A5BC X-Org-Mail: alan.schmitt.1995@polytechnique.org Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News Reply-To: Alan Schmitt X-Loop: caml-list@inria.fr X-Sequence: 19533 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: Archived-At: --===-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: multipart/alternative; boundary="==-=-=" --==-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGVsbG8NCg0KSGVyZSBpcyB0aGUgbGF0ZXN0IE9DYW1sIFdlZWtseSBOZXdzLCBmb3IgdGhlIHdl ZWsgb2YgSnVuZSAwOSB0byAxNiwNCjIwMjYuDQoNClRhYmxlIG9mIENvbnRlbnRzDQrilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KQSBsaW5lLWJ5 LWxpbmUgdHJhbnNsYXRpb24gb2YgdGhlIE9DYW1sIHJ1bnRpbWUgZnJvbSBDIHRvIFJ1c3QNCkZp cnN0IHJlbGVhc2UgY2FuZGlkYXRlIGZvciBPQ2FtbCA1LjUuMA0KT0NhbWwgNC4xNC4zIGZvciBQ bGFuIDkNCk1pb3UsIGEgc2ltcGxlIHNjaGVkdWxlciBmb3IgT0NhbWwgNQ0KT0NhbWwgNC4xNC40 IHJlbGVhc2VkDQpPbGQgQ1dODQoNCg0KQSBsaW5lLWJ5LWxpbmUgdHJhbnNsYXRpb24gb2YgdGhl IE9DYW1sIHJ1bnRpbWUgZnJvbSBDIHRvIFJ1c3QNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hp dmU6DQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYS1saW5lLWJ5LWxpbmUtdHJhbnNs YXRpb24tb2YtdGhlLW9jYW1sLXJ1bnRpbWUtZnJvbS1jLXRvLXJ1c3QvMTgyNDcvMT4NCg0KDQpN aWNoYWVsIEJhY2FyZWxsYSBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQog IFRoZSBSdXN0IGNvbW11bml0eSBvd2VzIHRoZSBPQ2FtbCBjb21tdW5pdHkgYSBkZWJ0IG9mIGdy YXRpdHVkZSwgdGhlDQogIGZpcnN0IFJ1c3QgY29tcGlsZXIgd2FzIHdyaXR0ZW4gaW4gT0NhbWwu IEluIHRoaXMgcG9zdCB3ZSByZXdyaXRlIHRoZQ0KICBPQ2FtbCBydW50aW1lIGluIFJ1c3QuIENv bnNpZGVyIGl0IG91ciBkb3duIHBheW1lbnQgb24gcmVwYXlpbmcgdGhlDQogIGRlYnQuIDpzYWx1 dGluZ19mYWNlOg0KDQogIE5vIE1hcmtzIFNoaW53ZWxsIHdlcmUgaGFybWVkWzFdDQoNCiAgL0Vk aXRvcuKAmXMgbm90ZTogdGhlIHBvc3QgYmVpbmcgdG9vIGxvbmcgdG8gcmVwcm9kdWNlIGluIHRo aXMNCiAgbmV3c2xldHRlciwgSSBlbmNvdXJhZ2UgeW91IHRvIHJlYWQgaXQgb25saW5lLi8NCg0K DQpGaXJzdCByZWxlYXNlIGNhbmRpZGF0ZSBmb3IgT0NhbWwgNS41LjANCuKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hp dmU6DQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvZmlyc3QtcmVsZWFzZS1jYW5kaWRh dGUtZm9yLW9jYW1sLTUtNS0wLzE4MjUzLzE+DQoNCg0Kb2N0YWNocm9uIGFubm91bmNlZA0K4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoN CiAgVGhlIHJlbGVhc2Ugb2YgT0NhbWwgNS41LjAgaXMgaW1taW5lbnQuDQoNCiAgQXMgYSBmaW5h bCBzdGVwLCB3ZSBhcmUgcHVibGlzaGluZyBhIHJlbGVhc2UgY2FuZGlkYXRlIHRvIGNoZWNrIHRo YXQNCiAgZXZlcnl0aGluZyBpcyBpbiBvcmRlciBiZWZvcmUgdGhlIHJlbGVhc2UgaW4gdGhlIHVw Y29taW5nIHdlZWsuDQoNCiAgSWYgeW91IGZpbmQgYW55IGJ1Z3MsIHBsZWFzZSByZXBvcnQgdGhl bSBvbiB0aGUgW09DYW1sJ3MgaXNzdWUNCiAgdHJhY2tlcl0uDQoNCiAgQ29tcGFyZWQgdG8gdGhl IGZpcnN0IGJldGEsIHRoaXMgcmVsZWFzZSBjYW5kaWRhdGUgY29udGFpbnMgdHdvDQogIHJ1bnRp bWUgZml4ZXMsIHR3byBzdGFuZGFyZCBsaWJyYXJ5IGZpeGVzLCBzaXggbWlzY2VsbGFuZW91cyBm aXhlcyBhbmQNCiAgb25lIGRvY3VtZW50YXRpb24gdXBkYXRlLg0KDQogIFRoZSBmdWxsIGNoYW5n ZSBsb2cgZm9yIE9DYW1sIDUuNS4wIGlzIFthdmFpbGFibGUgb24gR2l0SHViXS4NCg0KICBIYXBw eSBoYWNraW5nLCBGbG9yaWFuIEFuZ2VsZXR0aSBmb3IgdGhlIE9DYW1sIHRlYW0uDQoNCg0KW09D YW1sJ3MgaXNzdWUgdHJhY2tlcl0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1 ZXM+DQoNClthdmFpbGFibGUgb24gR2l0SHViXSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29j YW1sL2Jsb2IvNS41L0NoYW5nZXM+DQoNCkluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMNCuKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjA0KDQogIFRoZSBiYXNlIGNvbXBpbGVyIGNhbiBiZSBpbnN0YWxsZWQgYXMg YW4gb3BhbSBzd2l0Y2ggd2l0aCB0aGUNCiAgZm9sbG93aW5nIGNvbW1hbmRzIG9uIG9wYW0gMi4x IGFuZCBsYXRlcjoNCg0KICDilIzilIDilIDilIDilIANCiAg4pSCIG9wYW0gdXBkYXRlDQogIOKU giBvcGFtIHN3aXRjaCBjcmVhdGUgNS41LjB+cmMxDQogIOKUlOKUgOKUgOKUgOKUgA0KDQogIFRo ZSBzb3VyY2UgY29kZSBmb3IgdGhlIHJlbGVhc2UgY2FuZGlkYXRlIGlzIGFsc28gZGlyZWN0bHkg YXZhaWxhYmxlDQogIG9uOg0KDQogIOKAoiBHaXRIdWI6IDxodHRwczovL2dpdGh1Yi5jb20vb2Nh bWwvb2NhbWwvYXJjaGl2ZS81LjUuMC1yYzEudGFyLmd6Pg0KICDigKIgT0NhbWwgYXJjaGl2ZXMg YXQgSW5yaWE6DQogICAgPGh0dHBzOi8vY2FtbC5pbnJpYS5mci9wdWIvZGlzdHJpYi9vY2FtbC01 LjUvb2NhbWwtNS41LjB+cmMxLnRhci5nej4NCg0KDQpGaW5lLXR1bmVkIGNvbXBpbGVyIGNvbmZp Z3VyYXRpb24NCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQog IElmIHlvdSB3YW50IHRvIHR3ZWFrIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBjb21waWxlciwg eW91IGNhbiBzd2l0Y2gNCiAgdG8gdGhlIG9wdGlvbiB2YXJpYW50IHdpdGg6DQoNCiAg4pSM4pSA 4pSA4pSA4pSADQogIOKUgiBvcGFtIHVwZGF0ZQ0KICDilIIgb3BhbSBzd2l0Y2ggY3JlYXRlIDxz d2l0Y2hfbmFtZT4gb2NhbWwtdmFyaWFudHMuNS41LjB+cmMxK29wdGlvbnMgPG9wdGlvbl9saXN0 Pg0KICDilJTilIDilIDilIDilIANCg0KICB3aGVyZSBgPG9wdGlvbl9saXN0PicgaXMgYSBzcGFj ZS1zZXBhcmF0ZWQgbGlzdCBvZiBgb2NhbWwtb3B0aW9uLSonDQogIHBhY2thZ2VzLiBGb3IgaW5z dGFuY2UsIGZvciBhIGBmbGFtYmRhJyBhbmQgYG5vLWZsYXQtZmxvYXQtYXJyYXknDQogIHN3aXRj aDoNCg0KICDilIzilIDilIDilIDilIANCiAg4pSCIG9wYW0gc3dpdGNoIGNyZWF0ZSA1LjUuMH5y YzErZmxhbWJkYStuZmZhIG9jYW1sLXZhcmlhbnRzLjUuNS4wfnJjMStvcHRpb25zIG9jYW1sLW9w dGlvbi1mbGFtYmRhIG9jYW1sLW9wdGlvbi1uby1mbGF0LWZsb2F0LWFycmF5DQogIOKUlOKUgOKU gOKUgOKUgA0KDQoNCiAgQWxsIGF2YWlsYWJsZSBvcHRpb25zIGNhbiBiZSBsaXN0ZWQgd2l0aCBg b3BhbSBzZWFyY2ggb2NhbWwtb3B0aW9uJy4NCg0KDQpDaGFuZ2VzIHNpbmNlIHRoZSBmaXJzdCBi ZXRhIHJlbGVhc2UNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjA0KDQril4ogUnVudGltZSBmaXhlcw0KDQogIOKAoiBbIzE0ODIwXTogY2FtbF9iYV9h bGxvYyBtdXN0IGFjY291bnQgZm9yIG1lbW9yeSBpdCBhbGxvY2F0ZWQgaXRzZWxmLg0KICAgIENB TUxfQkFfU1VCQVJSQVkgKGludHJvZHVjZWQgaW4gNS4yKSB3aXRoIGRhdGE9TlVMTCB3b3VsZCBy ZXN1bHQgaW4NCiAgICB0aGUgR2MgYWNjb3VudGluZyBmb3IgdGhlIGFsbG9jYXRpb24gYXMgMCBi eXRlcywgd2hpY2ggY2FuDQogICAgZXZlbnR1YWxseSBsZWFkIHRvIE9PTS4gVGhpcyBjb25kaXRp b24gbmV2ZXIgb2NjdXJzIGluIHRoZSBjb21waWxlcg0KICAgIGl0c2VsZiwgYnV0IG9jY3VycyBp biBleHRlcm5hbCBDIGJpbmRpbmdzIHRoYXQgYXR0ZW1wdCB0byBjcmVhdGUgYQ0KICAgIG5ldyBi aWdhcnJheSBpbiB0aGUgc2hhcGUgb2YgYW4gZXhpc3Rpbmcgb25lLiBGb3IgYmFja3dhcmRzDQog ICAgY29tcGF0aWJpbGl0eSBpZ25vcmUgQ0FNTF9CQV9TVUJBUlJBWSB3aGVuIGRhdGEgaXMgTlVM TC4gIChFZHdpbg0KICAgIFTDtnLDtmssIHJldmlldyBieSBEYW1pZW4gRG9saWdleikNCg0KICDi gKIg4oCmLCArWyMxNDcyMl06IHJ1bnRpbWUsIGZpeCBpbiB0aGUgb3JwaGFuaW5nIG9mIGVwaGVt ZXJvbnMgKEdhYnJpZWwNCiAgICBTY2hlcmVyLCByZXZpZXcgYnkgT2xpdmllciBOaWNvbGUgYW5k IERhbWllbiBEb2xpZ2V6LCByZXBvcnQgYnkgSmFuDQogICAgTWlkdGdhYXJkKQ0KDQoNCiAgWyMx NDgyMF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ4MjA+DQoNCiAg WyMxNDcyMl0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ3MjI+DQoN Cg0K4peKIFN0YW5kYXJkIGxpYnJhcnkgZml4DQoNCiAg4oCiIFsjMTQ4NTNdLCBDVkUtMjAyNi00 MTA4MywgT1NFQy0yMDI2LTA1OiBmaXggcXVvdGluZyBvZiBmaWxlbmFtZXMNCiAgICBwYXNzZWQg dG8gYEZpbGVuYW1lLnF1b3RlX2NvbW1hbmQnIG9uIFdpbmRvd3MuICAoRGF2aWQgQWxsc29wcCwN CiAgICByZXBvcnQgYnkgQW5kcmV3IE5lc2JpdHQsIHJldmlldyBieSBGbG9yaWFuIEFuZ2VsZXR0 aSkNCg0KICDigKIg4oCmLCArWyMxNDcxNV06IFVzZSBQT1NJWCB0aHJlYWQtc2FmZSBnZXRncm5h bV9yLCBnZXRncmdpZF9yLA0KICAgIGdldHB3bmFtX3IsIGdldHB3dWlkX3IsIGdtdGltZV9yLCBs b2NhbHRpbWVfciwgZ2V0bG9naW5fciwgYW5kIGZpeA0KICAgIG1rdGltZSBlcnJvciBjaGVja2lu Zy4gIChBbnRvbmluIETDqWNpbW8sIHJldmlldyBieSBGbG9yaWFuDQogICAgQW5nZWxldHRpLCBE YXZpZCBBbGxzb3BwLCBTdGVmYW4gTXVlbnplbCwgR2FicmllbCBTY2hlcmVyLCBhbmQgTWlvZA0K ICAgIFZhbGxhdCkNCg0KDQogIFsjMTQ4NTNdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2Nh bWwvaXNzdWVzLzE0ODUzPg0KDQogIFsjMTQ3MTVdIDxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwv b2NhbWwvaXNzdWVzLzE0NzE1Pg0KDQoNCuKXiiBDb21waWxlciB1c2VyLWludGVyZmFjZSBmaXgN Cg0KICDigKIgWyMxNDcwMl06IEZpeCBoaWRkZW4gZGlyZWN0b3J5IGZpbGVzIGxlYWtpbmcgaW50 byB0aGUgdmlzaWJsZSBsb2FkDQogICAgcGF0aCB0YWJsZS4gIFdoZW4gYSBoaWRkZW4gZGlyZWN0 b3J5IGNvbnRhaW5lZCBhIGZpbGUgd2hvc2UgYmFzZW5hbWUNCiAgICB3YXMgYWxyZWFkeSBwcmVz ZW50LCB0aGUgZmlsZSBjb3VsZCBiZSBpbmNvcnJlY3RseSBhZGRlZCB0byB0aGUNCiAgICB2aXNp YmxlIHRhYmxlLiAgKEh1Z28gSGV1emFyZCwgcmV2aWV3IGJ5IEZsb3JpYW4gQW5nZWxldHRpKQ0K DQoNCiAgWyMxNDcwMl0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ3 MDI+DQoNCg0K4peKIENvbXBpbGVybGlicyBmaXgNCg0KICDigKIgWyMxNDc5N106IGF2b2lkIGRy b3BwaW5nIGF0dHJpYnV0ZXMgYXR0YWNoZWQgdG8gcGFja2FnZSB0eXBlcyB3aGVuDQogICAgcHJl dHR5IHByaW50aW5nIGluIHN1cmZhY2Ugc3ludGF4LiAgKENoZXQgTXVydGh5LCByZXZpZXcgYnkg Tmljb2zDoXMNCiAgICBPamVkYSBCw6RyKQ0KDQoNCiAgWyMxNDc5N10gPGh0dHBzOi8vZ2l0aHVi LmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ3OTc+DQoNCg0K4peKIENvbmZpZ3VyYXRpb24gZml4 ZXMNCg0KICDigKIgWyMxNDQ4NF06IFNldCBgX1dJTjMyX1dJTk5UJyB0byByZXF1aXJlIFdpbmRv d3MgOC9TZXJ2ZXIgMjAxMg0KICAgIFdpbmRvd3MgaGVhZGVyIFNESyBzdXBwb3J0LiAgKEFudG9u aW4gRMOpY2ltbywgcmV2aWV3IGJ5IERhdmlkDQogICAgQWxsc29wcCkNCg0KICDigKIgWyMxNDc2 MF0sIFsjMTQ4MDJdLCBbIzE0ODQ2XTogQ29ycmVjdCB0aGUgZGV0ZWN0aW9uIG9mIGFyZ3VtZW50 DQogICAgZGVmYXVsdHMgaW4gY29uZmlndXJlLCBmaXhpbmcgYW4gaW5jb3JyZWN0IGVycm9yIG1l c3NhZ2Ugd2hlbg0KICAgIGluc3RhbGxpbmcgT0NhbWwgdGhyb3VnaCBvcGFtIG9uIE9wZW5TVVNF IHdpdGggdGhlIHNpdGUtY29uZmlnDQogICAgcGFja2FnZSBpbnN0YWxsZWQuICAoRGF2aWQgQWxs c29wcCwgcmVwb3J0IGFuZCByZXZpZXcgYnkgRWR3aW4NCiAgICBUw7Zyw7ZrKQ0KDQoNCiAgWyMx NDQ4NF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ0ODQ+DQoNCiAg WyMxNDc2MF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ3NjA+DQoN CiAgWyMxNDgwMl0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ4MDI+ DQoNCiAgWyMxNDg0Nl0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ4 NDY+DQoNCg0K4peKIERvY3VtZW50YXRpb24gZml4DQoNCiAg4oCiIFsjMTQ2ODRdLCBbIzE0Nzgy XSwgWyMxNDgzOF06IEltcHJvdmUgb2NhbWxjJ3MgYW5kIG9jYW1sb3B0J3MgbWFudWFsDQogICAg cGFnZXMgYW5kIGZpeCBzbWFsbCBpc3N1ZXMgaW4gdGhlIG1hbnVhbCAoU2FtdWVsIEh5bSwgcmV2 aWV3IGJ5DQogICAgRmxvcmlhbiBBbmdlbGV0dGksIEFudG9uaW4gRMOpY2ltbywgR2FicmllbCBT Y2hlcmVyIGFuZCBOaWNvbMOhcyBPamVkYQ0KICAgIELDpHIpDQoNCg0KICBbIzE0Njg0XSA8aHR0 cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy8xNDY4ND4NCg0KICBbIzE0NzgyXSA8 aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy8xNDc4Mj4NCg0KICBbIzE0ODM4 XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy8xNDgzOD4NCg0KDQril4og SW50ZXJuYWwgZml4DQoNCiAg4oCiIOKApiwgK1sjMTQ1NTBdOiBBZGQgdGhlIG5vdC1yb290IGJ1 aWx0aW4gb2NhbWx0ZXN0IGFjdGlvbi4gVGhpcyBhbGxvd3MNCiAgICB0byBza2lwIHRlc3RzIHRo YXQgZmFpbCBpZiB0aGUgY3VycmVudCB1c2VyIGlzIHJvb3QgKHN1cGVydXNlcikuDQogICAgKEth dGUgRGVwbGFpeCwgcmV2aWV3IGJ5IEdhYnJpZWwgU2NoZXJlciwgTmljb2zDoXMgT2plZGEgQsOk ciwgYW5kDQogICAgQW50b25pbiBEw6ljaW1vKQ0KDQoNCiAgWyMxNDU1MF0gPGh0dHBzOi8vZ2l0 aHViLmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ1NTA+DQoNCg0KT0NhbWwgNC4xNC4zIGZvciBQ bGFuIDkNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6IDxodHRwczovL2Rpc2N1c3Mub2NhbWwu b3JnL3Qvb2NhbWwtNC0xNC0zLWZvci1wbGFuLTkvMTgyMjMvMj4NCg0KDQpDb250aW51aW5nIHRo aXMgdGhyZWFkLCBFZHVhcmRvIENhdmF6b3MgYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIANCg0KICBIZXJlJ3MgYSBkZW1vIG9mIHRoZSBvY2FtbCByZXBsIGluIHRo ZSBhY21lIGVkaXRvciBpbiBwbGFuOSBhbmQgc29tZQ0KICBpbnRlZ3JhdGlvbiBmZWF0dXJlczoN Cg0KICA8aHR0cHM6Ly95b3V0dS5iZS8wR1BfVjFzQUNUdz4NCg0KICBUaGUgYWNtZS1yZXBsIGRl bW9uc3RyYXRlZCB0aGVyZSBpcyBoZXJlOg0KDQogIDxodHRwczovL2dpdGh1Yi5jb20vZGhhcm1h dGVjaC9hY21lLXJlcGw+DQoNCg0KTWlvdSwgYSBzaW1wbGUgc2NoZWR1bGVyIGZvciBPQ2FtbCA1 DQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0K ICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2Fubi1taW91LWEtc2lt cGxlLXNjaGVkdWxlci1mb3Itb2NhbWwtNS8xMjk2My8xOT4NCg0KDQpDYWxhc2NpYmV0dGEgUm9t YWluIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgSSBhbSBk ZWxpZ2h0ZWQgdG8gYW5ub3VuY2UgdGhlIHJlbGVhc2Ugb2YgW21pb3UuMC43LjBdLiBXaGlsc3Qg dGhpcw0KICByZWxlYXNlIGlzbuKAmXQgcXVpdGUgYXMgaW1wcmVzc2l2ZSBhcyBwcmV2aW91cyBv bmVzLCBpdCBub3cgcHJvdmlkZXMgdXMNCiAgd2l0aCBhIHB1cmUgT0NhbWwgaW1wbGVtZW50YXRp b24gb2YgU1NIIGZvciBvdXIgdW5pa2VybmVscyEgVGhpcw0KICByZWxlYXNlIG5vdGFibHkgaW50 cm9kdWNlcyBgTWlvdS5nZXQnLCB3aGljaCBhbGxvd3MgeW91IHRvIHdhaXQgZm9yDQogIGFuZCBy ZXRyaWV2ZSBhIHRhc2sgc2F2ZWQgaW4gYW4gb3JwaGFuOiBmb3IgdGhpcywgd2UgcmVmZXIgeW91 IHRvIG91cg0KICBkb2N1bWVudGF0aW9uIGF2YWlsYWJsZSBbaGVyZV0uDQoNCiAgVGhpcyByZWxl YXNlIGFsc28gc3RyZW5ndGhlbnMgb3VyIGVjb3N5c3RlbSBpbiBnZW5lcmFsOiBmb2xsb3dpbmcN CiAgYGh0dHAnLCBgdGxzJywgYHRjcC9pcCcsIGBzbXRwJywgYGRucycgYW5kIGBudHAnLCB3ZSBj YW4gbm93IGFkZCBgc3NoJw0KICB0byB0aGUgcHJvdG9jb2xzIGF2YWlsYWJsZSBmb3Igb3VyIHVu aWtlcm5lbHMgKGFzIHdlbGwgYXMgZm9yIE9DYW1sDQogIGFwcGxpY2F0aW9ucyBpbiBnZW5lcmFs KS4gSXQgaXMgbGFyZ2VseSB0aGFua3MgdG8gQGhhbm5lc+KAmXMgW3dvcmtdIG9uDQogIG1pZ3Jh dGluZyBmcm9tIGBDc3RydWN0LnQnICh3aGljaCB3ZSBhcmUgbm93IGRlcHJlY2F0aW5nKSB0byBg c3RyaW5nJw0KICAoYSBwcm9jZXNzIHdlIGJlZ2FuIHNldmVyYWwgeWVhcnMgYWdvIGZvbGxvd2lu ZyBvYnNlcnZhdGlvbnMgb2YNCiAgW3BlcmZvcm1hbmNlIGlzc3VlcyB3aXRoIENzdHJ1Y3QudF0p IHRoYXQgd2UgaGF2ZSBtYW5hZ2VkIHRvIGNvbXBsZXRlDQogIGBtbmV0LXNzaCcuDQoNCiAgQW5k IHNvLCB0aGFua3MgdG8gb3VyIHdvcmsgb24gYG5vdHR5fi9+bm90dHVpJyAoYW5kDQogIFt+bHdk fl0oZ2l0aHViLmNvbS9sZXQtZGVmL2x3ZCkpLCBTU0ggc3VwcG9ydCBmb3IgdW5pa2VybmVscywg YW5kIG9uZQ0KICBvZiBvdXIgTWlyYWdlT1MgcmV0cmVhdHMsIHdlIGhhdmUgcmV2aXZlZCBhIHBy b2plY3QgZGV2ZWxvcGVkIGJ5DQogIEByZXluaXI6IFtiYW5hd2EtY2hhdF0uIEl0IGlzIGEgdW5p a2VybmVsIHRoYXQgb2ZmZXJzICJhIGNoYXQgcm9vbSBmb3INCiAgZXZlcnlvbmUiIHZpYSBTU0g7 IHlvdSBzaW1wbHkgbmVlZCB0byBjb25uZWN0IHRvIGl0IHRvIGNoYXQgd2l0aA0KICBvdGhlcnMg KGEgbWluaSBJUkMpIGFuZCBpdCBwcm92aWRlcyBhIFRVSSBldmVuIHRob3VnaCB0aGUgdW5pa2Vy bmVsDQogIGRvZXMgbm90IHJlY29nbmlzZSB0aGUgY29uY2VwdCBvZiBhIHRlcm1pbmFsISBUaGUg cHJvamVjdCBpcyBhdmFpbGFibGUNCiAgW2hlcmVdIChhbmQgYW4gYG9wYW0gcGluJyBpcyBhbGwg eW91IG5lZWQgdG8gb2J0YWluIGBiYW5hd2EuaHZ0JykuDQoNCiAgPGh0dHBzOi8vdXMxLmRpc2Nv dXJzZS1jZG4uY29tL2ZsZXgwMjAvdXBsb2Fkcy9vY2FtbC9vcmlnaW5hbC8yWC9lL2U4NTdmOTRk M2Y5ZjI1NzY3ZTc5ZDJlZmNjZDg5M2YyYzRlMmUwNDQud2VicD4NCg0KICBUaGlzIGNvbnNvbGlk YXRpb24gaXMgbm93IHRha2luZyBzaGFwZSB3aXRoIHRoZSBlbWVyZ2VuY2Ugb2YgYSBmZXcNCiAg dW5pa2VybmVscyBhbmQgdG9vbHMsIGFuZCB3ZeKAmXJlIHRha2luZyB0aGlzIG9wcG9ydHVuaXR5 IHRvIGludHJvZHVjZQ0KICB5b3UgdG8gYSBmZXcgdGhhdCBhcmUgbm93IGF2YWlsYWJsZToNCiAg 4oCiIGFub3RoZXIgb2xkZXIgdW5pa2VybmVsIGhhcyBqdXN0IHJlYXBwZWFyZWQ6IFtwYXN0ZXVy XSBhbmQgaXRzDQogICAgZGVwbG95bWVudCA8aHR0cHM6Ly9wYXN0ZS5vc2F1LnJlLz4uIEl0IGJy aW5ncyBvdXIgZWZmb3J0cyB0bw0KICAgIFtgdmlmJ10gYW5kIGRlbW9uc3RyYXRlcyBob3cgdG8g Y3JlYXRlIGEgc2ltcGxlIHdlYiBhcHBsaWNhdGlvbiBpbg0KICAgIHRoZSBmb3JtIG9mIGEgdW5p a2VybmVsLg0KICDigKIgW2BhdXNzaSddIGlzIGEgc21hbGwgZXhwZXJpbWVudGFsIHByb2plY3Qg dGhhdCBjYW4gYmUgdXNlZCB3aXRoDQogICAgRG9ja2VyIHRvIGRlcGxveSBTb2xvNSB1bmlrZXJu ZWxzIHF1aXRlIHNpbXBseSAoYSBzaW1wbGUgYGRvY2tlcg0KICAgIHJ1bicgaXMgZW5vdWdoIG5v dyEpLiBIb3dldmVyLCB3ZSBzdGlsbCByZWNvbW1lbmQgdXNpbmcgW2FsYmF0cm9zc10NCiAgICBm b3IgcHJvZHVjdGlvbiBkZXBsb3ltZW50Lg0KICDigKIgW2BjaGFvcyddIGhhcyBmaW5hbGx5IGNy b3NzZWQgdGhlIFJ1Ymljb24uIEhhdmluZyBzdGFydGVkIHRoaXMNCiAgICBwcm9qZWN0IGEgeWVh ciBhZ28gdG8gZXhwZXJpbWVudCB3aXRoIG91ciBuZXcgd29ya2Zsb3csIHRoaXMgTlRQDQogICAg c2VydmVyICgiW0Nocm9ueV0tc3R5bGUiKSBpcyBub3cgYXZhaWxhYmxlIGF0IGBvc2F1LnJlOjEy MycNCg0KICBXZSB0aGVyZWZvcmUgY29udGludWUgdG8gb2ZmZXIgdW5pa2VybmVscyBhbmQgYWN0 aXZlbHkgdXNlIHRoZW0gaW4NCiAgb3JkZXIgdG8gaW1wcm92ZSB0aGVtLiBBcyBzdWNoLCB3ZSB3 b3VsZCBsaWtlIHRvIHRoYW5rIGV2ZXJ5b25lIHdobw0KICBwcm92aWRlcyB1cyB3aXRoIChhbnkg a2luZCBvZikgZmVlZGJhY2sgb24gd2hhdCB3ZSBhcmUgZGV2ZWxvcGluZywNCiAgZW5hYmxpbmcg dXMgdG8gY29sbGVjdGl2ZWx5IGltcHJvdmUgd2hhdCBvdXIgY29vcGVyYXRpdmUgY2FuIG9mZmVy IHRoZQ0KICBPQ2FtbCBjb21tdW5pdHkgKGFuZCwgbW9yZSBicm9hZGx5LCB0aGUgdXNlcnMgb2Yg b3VyIHVuaWtlcm5lbHMpLiBJZg0KICB5b3UgbGlrZSB3aGF0IHdlIGRvLCB5b3UgY2FuIHN1cHBv cnQgdXMgdmlhIGEgZG9uYXRpb24gKFtkaXJlY3RseV0gb3INCiAgdmlhIFtHaXRIdWJdKS4gSGFw cHkgaGFja2luZyENCg0KDQpbbWlvdS4wLjcuMF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9yb2J1ci1j b29wL21pb3UvcmVsZWFzZXMvdGFnL3YwLjcuMD4NCg0KW2hlcmVdIDxodHRwczovL2RvY3Mub3Nh dS5yZS9sb2NhbC9taW91L01pb3UvaW5kZXguaHRtbCNvcnBoYW5zPg0KDQpbd29ya10gPGh0dHBz Oi8vZ2l0aHViLmNvbS9taXJhZ2UvYXdhLXNzaC9wdWxsLzg1Pg0KDQpbcGVyZm9ybWFuY2UgaXNz dWVzIHdpdGggQ3N0cnVjdC50XQ0KPGh0dHBzOi8vYmxvZy5yb2J1ci5jb29wL2FydGljbGVzL3Nw ZWVkaW5nLWVjLXN0cmluZy5odG1sPg0KDQpbYmFuYXdhLWNoYXRdIDxodHRwczovL2dpdGh1Yi5j b20vcmV5bmlyL2JhbmF3YS1jaGF0Lz4NCg0KW2hlcmVdIDxodHRwczovL2dpdGh1Yi5jb20vcmV5 bmlyL2JhbmF3YS1jaGF0L3B1bGwvMz4NCg0KW3Bhc3RldXJdIDxodHRwczovL2dpdGh1Yi5jb20v ZGlub3NhdXJlL3Bhc3RldXI+DQoNCltgdmlmJ10gPGh0dHBzOi8vZ2l0aHViLmNvbS9yb2J1ci1j b29wL3ZpZj4NCg0KW2BhdXNzaSddIDxodHRwczovL2dpdGh1Yi5jb20vcm9idXItY29vcC9hdXNz aT4NCg0KW2FsYmF0cm9zc10gPGh0dHBzOi8vZ2l0aHViLmNvbS9yb2J1ci1jb29wL2FsYmF0cm9z cz4NCg0KW2BjaGFvcyddIDxodHRwczovL2dpdGh1Yi5jb20vcm9idXItY29vcC9jaGFvcz4NCg0K W0Nocm9ueV0gPGh0dHBzOi8vY2hyb255LXByb2plY3Qub3JnLz4NCg0KW2RpcmVjdGx5XSA8aHR0 cHM6Ly9yb2J1ci5jb29wL0RvbmF0ZT4NCg0KW0dpdEh1Yl0gPGh0dHBzOi8vZ2l0aHViLmNvbS9z cG9uc29ycy9yb2J1ci1jb29wPg0KDQoNCk9DYW1sIDQuMTQuNCByZWxlYXNlZA0K4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoN CiAgQXJjaGl2ZTogPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5vcmcvdC9vY2FtbC00LTE0LTQtcmVs ZWFzZWQvMTgyNTgvMT4NCg0KDQpvY3RhY2hyb24gYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBXZSBoYXZlIHRo ZSBwbGVhc3VyZSBvZiBjZWxlYnJhdGluZyB0aGUgYW5uaXZlcnNhcnkgb2YgdGhlIGZpcnN0DQog IGZsaWdodCBvZiBBcmlhbmUgNCBieSBhbm5vdW5jaW5nIHRoZSByZWxlYXNlIG9mIE9DYW1sIHZl cnNpb24NCiAgNC4xNC40W14xXS4NCg0KICBUaGlzIHJlbGVhc2UgaXMgYSBjb2xsZWN0aW9uIG9m IHNhZmUgYnVnIGZpeGVzIGFuZCBzZWN1cml0eSBmaXhlcyBmb3INCiAgdGhlIHN0YW5kYXJkIGxp YnJhcnksIGNoZXJyeS1waWNrZWQgZnJvbSB0aGUgT0NhbWwgNSBicmFuY2guDQoNCiAgVGhlIDQu MTQgYnJhbmNoIGlzIGV4cGVjdGVkIHRvIHJlY2VpdmUgZXBpc29kaWMgdXBkYXRlcyB1bnRpbCBh dCBsZWFzdA0KICB0aGUgZW5kIG9mIDIwMjYuDQoNCiAgSG93ZXZlciwgdGhlIGVuZCBvZiBpdHMg ZXh0ZW5kZWQgbWFpbnRlbmFuY2UgcGVyaW9kIGlzIG9uIHRoZSBob3Jpem9uLg0KICBDb25zZXF1 ZW50bHksIHBsZWFzZSBtZW50aW9uIHRvIHVzIGFueSBvYnN0YWNsZSByZW1haW5pbmcgdG8geW91 cg0KICBtaWdyYXRpb24gdG8gT0NhbWwgNS4NCg0KICBJbiB0aGUgbWVhbndoaWxlLCBkbyBub3Qg aGVzaXRhdGUgdG8gcmVwb3J0IGFueSBidWdzIG9uIHRoZSBbT0NhbWwNCiAgaXNzdWUgdHJhY2tl cl0uDQoNCiAgU2VlIHRoZSBsaXN0IG9mIGNoYW5nZXMgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4N Cg0KICBIYXBweSBoYWNraW5nLCBGbG9yaWFuIEFuZ2VsZXR0aSBmb3IgdGhlIE9DYW1sIHRlYW0u DQoNCiAg4oCUDQoNCg0KW09DYW1sIGlzc3VlIHRyYWNrZXJdIDxodHRwczovL2dpdGh1Yi5jb20v b2NhbWwvb2NhbWwvaXNzdWVzPg0KDQpJbnN0YWxsYXRpb24gSW5zdHJ1Y3Rpb25zDQrilYzilYzi lYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzi lYzilYzilYzilYwNCg0KICBUaGUgYmFzZSBjb21waWxlciBjYW4gYmUgaW5zdGFsbGVkIGFzIGFu IG9wYW0gc3dpdGNoIHdpdGggdGhlDQogIGZvbGxvd2luZyBjb21tYW5kczoNCiAg4pSM4pSA4pSA 4pSA4pSADQogIOKUgiBvcGFtIHVwZGF0ZQ0KICDilIIgb3BhbSBzd2l0Y2ggY3JlYXRlIDQuMTQu NA0KICDilJTilIDilIDilIDilIANCiAgVGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgcmVsZWFzZSBj YW5kaWRhdGUgaXMgYWxzbyBkaXJlY3RseSBhdmFpbGFibGUNCiAgb246DQogIOKAoiBbR2l0SHVi XQ0KICDigKIgW0lucmlhIGFyY2hpdmVdDQoNCiAg4oCUDQoNCg0KW0dpdEh1Yl0gPGh0dHBzOi8v Z2l0aHViLmNvbS9vY2FtbC9vY2FtbC9hcmNoaXZlLzQuMTQuNC50YXIuZ3o+DQoNCltJbnJpYSBh cmNoaXZlXQ0KPGh0dHBzOi8vY2FtbC5pbnJpYS5mci9wdWIvZGlzdHJpYi9vY2FtbC00LjE0L29j YW1sLTQuMTQuNC50YXIuZ3o+DQoNCg0KQ2hhbmdlcyBpbiBPQ2FtbCA0LjE0LjQgKDE1IEp1bmUg MjAyNikNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjA0KDQril4ogQnVpbGQgc3lzdGVtOg0KDQogIOKAoiBbIzEyMzcyXSwgWyMxNDU3Ml06 IFBhc3Mgb3B0aW9uIC1uby1leGVjdXRlLW9ubHkgdG8gdGhlIGxpbmtlciBmb3INCiAgICBPcGVu QlNEID49IDcuMyBzbyB0aGF0IGNvZGUgc2VjdGlvbnMgcmVtYWluIHJlYWRhYmxlLCBhcyBuZWVk ZWQgZm9yDQogICAgY2xvc3VyZSBtYXJzaGFsaW5nLiAgT3JpZ2luYWxseSBiYWNrcG9ydGVkIGlu IDQuMTQuMiwgYnV0IHRoZSBmbGFnDQogICAgd2FzIGFjY2lkZW50YWxseSBub3QgcGFzc2VkIHdo ZW4gbGlua2luZyB0aGUgLnNvIHZlcnNpb25zIG9mIHRoZQ0KICAgIE9DYW1sIHJ1bnRpbWUgbGli cmFyaWVzIG9yIHdoZW4gbGlua2luZyAuY214cyBmaWxlcy4gIChYYXZpZXIgTGVyb3kNCiAgICBh bmQgQW5pbCBNYWRoYXZhcGVkZHksIHJldmlldyBieSBBbmlsIE1hZGhhdmFwZWRkeSBhbmQgU8Op YmFzdGllbg0KICAgIEhpbmRlcmVyKQ0KDQoNCiAgWyMxMjM3Ml0gPGh0dHBzOi8vZ2l0aHViLmNv bS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTIzNzI+DQoNCiAgWyMxNDU3Ml0gPGh0dHBzOi8vZ2l0aHVi LmNvbS9vY2FtbC9vY2FtbC9pc3N1ZXMvMTQ1NzI+DQoNCg0K4peKIEJ1ZyBmaXhlczoNCg0KICDi gKIgWyMxNDU5OV0sIFsjMTQ2MDZdOiBvbiBBUk02NCBwbGF0Zm9ybXMsIG9jYW1sb3B0IHdhcw0K ICAgIHVuZGVyLWVzdGltYXRpbmcgdGhlIHNpemVzIG9mIHNvbWUgaW5zdHJ1Y3Rpb25zLiAgVGhp cyBjb3VsZCBsZWFkIHRvDQogICAgb3ZlcmZsb3dzIGluIHJlbGF0aXZlIGJyYW5jaCBvZmZzZXRz LCByZXBvcnRlZCBhcyBlcnJvcnMgYnkgdGhlDQogICAgYXNzZW1ibGVyLiAgKFhhdmllciBMZXJv eSwgcmV2aWV3IGJ5IFZpbmNlbnQgTGF2aXJvbiwgcmVwb3J0IGJ5DQogICAgUmFwaGHDq2wgUHJv dXN0KQ0KDQogIOKAoiBbIzE0NjA3XTogRml4IGxpbmtpbmcgd2l0aCBsaWJhc21ydW5fc2hhcmVk LnNvIG9uIFJpc2MtViAodW5kZWZpbmVkDQogICAgc3ltYm9sIGRlY2xhcmVkIHJpc2N2Lm8pIChE YXZpZCBBbGxzb3BwLCByZXZpZXcgYnkgTmljb2zDoXMgT2plZGENCiAgICBCw6RyKQ0KDQogIOKA oiBbIzE0NjYxXTogQnVpbGQgZGxsdGhyZWFkcy5zbyB3aXRoIHB0aHJlYWRzIGZsYWdzIChyZW1v dmVkIGluDQogICAgWyMxMzAxOF0pLiBGb3Igbm9ybWFsIHByb2dyYW1zIHRoZXJlJ3Mgbm8gc2Vt YW50aWMgZGlmZmVyZW5jZSwNCiAgICBiZWNhdXNlIG9jYW1scnVuIGFuZCBvY2FtbGMub3B0IGFy ZSBhbHdheXMgbGlua2VkIHdpdGggcHRocmVhZHMsIGJ1dA0KICAgIGl0IHdhcyBhIHJlZ3Jlc3Np b24gdG8gcmVxdWlyZSBwcm9ncmFtcyB3aXNoaW5nIHRvIGRsb3Blbg0KICAgIGRsbHRocmVhZHMu c28gdG8gaGF2ZSBhbHJlYWR5IGxpbmtlZCB3aXRoIHB0aHJlYWRzIHRoZW1zZWx2ZXMuDQogICAg KERhdmlkIEFsbHNvcHAsIHJldmlldyBieSBHYWJyaWVsIFNjaGVyZXIpDQoNCiAg4oCiIFsjMTQ2 NTVdLCBbIzE0NjkxXSwgQ1ZFLTIwMjYtMzQzNTMsIE9TRUMtMjAyNi0wNDogY2hlY2sgZm9yIHNp emUNCiAgICBvdmVyZmxvdyBpbiBjYW1sX2JhX3Jlc2hhcGUgKFN0ZXBoZW4gRG9sYW4sIHJldmll dyBieSBYYXZpZXIgTGVyb3kpDQoNCiAg4oCiIFsjMTQ4NTNdLCBDVkUtMjAyNi00MTA4MywgT1NF Qy0yMDI2LTA1OiBmaXggcXVvdGluZyBvZiBmaWxlbmFtZXMNCiAgICBwYXNzZWQgdG8gRmlsZW5h bWUucXVvdGVfY29tbWFuZCBvbiBXaW5kb3dzLiAgKERhdmlkIEFsbHNvcHAsIHJlcG9ydA0KICAg IGJ5IEFuZHJldyBOZXNiaXR0LCByZXZpZXcgYnkgRmxvcmlhbiBBbmdlbGV0dGkpDQoNCiAgW14x XTogVGhlIHJlbGVhc2Ugb2YgT0NhbWwgNS41LjAgaXMgcGxhbm5lZCBsYXRlciB0aGlzIHdlZWsu DQoNCg0KICBbIzE0NTk5XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vlcy8x NDU5OT4NCg0KICBbIzE0NjA2XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lzc3Vl cy8xNDYwNj4NCg0KICBbIzE0NjA3XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2lz c3Vlcy8xNDYwNz4NCg0KICBbIzE0NjYxXSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1s L2lzc3Vlcy8xNDY2MT4NCg0KICBbIzEzMDE4XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29j YW1sL2lzc3Vlcy8xMzAxOD4NCg0KICBbIzE0NjU1XSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1s L29jYW1sL2lzc3Vlcy8xNDY1NT4NCg0KICBbIzE0NjkxXSA8aHR0cHM6Ly9naXRodWIuY29tL29j YW1sL29jYW1sL2lzc3Vlcy8xNDY5MT4NCg0KICBbIzE0ODUzXSA8aHR0cHM6Ly9naXRodWIuY29t L29jYW1sL29jYW1sL2lzc3Vlcy8xNDg1Mz4NCg0KDQpPbGQgQ1dODQrilZDilZDilZDilZDilZDi lZDilZANCg0KICBJZiB5b3UgaGFwcGVuIHRvIG1pc3MgYSBDV04sIHlvdSBjYW4gW3NlbmQgbWUg YSBtZXNzYWdlXSBhbmQgSSdsbCBtYWlsDQogIGl0IHRvIHlvdSwgb3IgZ28gdGFrZSBhIGxvb2sg YXQgW3RoZSBhcmNoaXZlXSBvciB0aGUgW1JTUyBmZWVkIG9mIHRoZQ0KICBhcmNoaXZlc10uDQoN CiAgSWYgeW91IGFsc28gd2lzaCB0byByZWNlaXZlIGl0IGV2ZXJ5IHdlZWsgYnkgbWFpbCwgeW91 IG1heSBzdWJzY3JpYmUNCiAgdG8gdGhlIFtjYW1sLWxpc3RdLg0KDQogIFtBbGFuIFNjaG1pdHRd DQoNCg0KW3NlbmQgbWUgYSBtZXNzYWdlXSA8bWFpbHRvOmFsYW4uc2NobWl0dEBwb2x5dGVjaG5p cXVlLm9yZz4NCg0KW3RoZSBhcmNoaXZlXSA8aHR0cHM6Ly9hbGFuLnBldGl0ZXBvbW1lLm5ldC9j d24vPg0KDQpbUlNTIGZlZWQgb2YgdGhlIGFyY2hpdmVzXSA8aHR0cHM6Ly9hbGFuLnBldGl0ZXBv bW1lLm5ldC9jd24vY3duLnJzcz4NCg0KW2NhbWwtbGlzdF0gPGh0dHBzOi8vc3ltcGEuaW5yaWEu ZnIvc3ltcGEvaW5mby9jYW1sLWxpc3Q+DQoNCltBbGFuIFNjaG1pdHRdIDxodHRwczovL2FsYW4u cGV0aXRlcG9tbWUubmV0Lz4NCg0K --==-=-= Content-Type: text/html; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable OCaml Weekly News

OCaml Weekly News

Previous Week<= /a> Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of June 09 to 16, 2026.

A line-by-line translation of the OCaml runtime from C to Rust=

Michael Bacarella announced

The Rust community owes the OCaml community a debt of gratitude, the first = Rust compiler was written in OCaml. In this post we rewrite the OCaml runti= me in Rust. Consider it our down payment on repaying the debt. :saluting_fa= ce:

No Marks Shinwell were harmed[1]

Editor=E2=80=99s note: the post being too long to reproduce in this news= letter, I encourage you to read it online.

First release candidate for OCaml 5.5.0

octachron announced

The release of OCaml 5.5.0 is imminent.

As a final step, we are publishing a release candidate to check that everyt= hing is in order before the release in the upcoming week.

If you find any bugs, please report them on the OCaml's issue tracker.

Compared to the first beta, this release candidate contains two runtime fix= es, two standard library fixes, six miscellaneous fixes and one documentati= on update.

The full change log for OCaml 5.5.0 is available on GitHub.

Happy hacking, Florian Angeletti for the OCaml team.

Installation instructions

The base compiler can be installed as an opam switch with the following com= mands on opam 2.1 and later:

opam update
opam switch create 5.5.0~rc1

The source code for the release candidate is also directly available on:

Fine-tuned compiler configuration

If you want to tweak the configuration of the compiler, you can switch to t= he option variant with:

opam update
opam switch create <switch_name> ocaml-variants.5.5.0~rc1+options <=
;option_list>

where <option_list> is a space-separated list of o= caml-option-* packages. For instance, for a flambda and= no-flat-float-array switch:

opam switch create 5.5.0~rc1+flambda+nffa ocaml-variants.5.5.0~rc1+options =
ocaml-option-flambda ocaml-option-no-flat-float-array

All available options can be listed with opam search ocaml-option.

Changes since the first beta release

  • Runtime fixes
    • #14820: cam= l_ba_alloc must account for memory it allocated itself. CAML_BA_SUBARRAY (introduced in 5.2) with data=3DNULL would result in the Gc accounting for the allocation as 0 bytes, which can eventually lead to OOM. This condition never occurs in the compiler itself, but occurs in external C bindings that attempt to create a new bigarray in the shape of an existing one. For backwards compatibility ignore CAML_BA_SUBARR= AY when data is NULL. (Edwin T=C3=B6r=C3=B6k, review by Damien Doligez)
    • …, +#147= 22: runtime, fix in the orphaning of ephemerons (Gabriel Scherer, review by Olivier Nicole and Damien Doligez, report by Jan Midtgaard)
  • Standard library fix
    • #14853, CVE= -2026-41083, OSEC-2026-05: fix quoting of filenames passed to Filename.quote_command on Windows. (David Allsopp, report by Andrew Nesbitt, review by Florian Angeletti)
    • …, +#147= 15: Use POSIX thread-safe getgrnam_r, getgrgid_r, getpwnam_r, getpwuid_r, gmtime_r, localtime_r, getlogin_r, and fix mktime error checking. (Antonin D=C3=A9cimo, review by Florian Angeletti, David Allsopp, Stefan Mu= enzel, Gabriel Scherer, and Miod Vallat)
  • Compiler user-interface fix
    • #14702: Fix= hidden directory files leaking into the visible load path table. When a hidden directory contained a file whose basename was already present, the file could be incorrectly added to the visible table. (Hugo Heuzard, review by Florian Angeletti)
  • Compilerlibs fix
    • #14797: avo= id dropping attributes attached to package types when pretty printing in surface syntax. (Chet Murthy, review by Nicol=C3=A1s Ojeda B=C3=A4r)
  • Configuration fixes
    • #14484: Set= _WIN32_WINNT to require Windows 8/Server 2012 Windows header = SDK support. (Antonin D=C3=A9cimo, review by David Allsopp)
    • #14760, #14802, #14846: Correct the detec= tion of argument defaults in configure, fixing an incorrect error message when installing OCaml through opam on OpenSUSE with the site-config package installed. (David Allsopp, report and review by Edwin T=C3=B6r=C3=B6k)
  • Documentation fix
    • #14684, #14782, #14838: Improve ocamlc's = and ocamlopt's manual pages and fix small issues in the manual (Samuel Hym, review by Florian Angeletti, Antonin D=C3=A9cimo, Gabriel Sche= rer and Nicol=C3=A1s Ojeda B=C3=A4r)
  • Internal fix
    • …, +#145= 50: Add the not-root builtin ocamltest action. This allows to skip tests that fail if the current user is root (superuser). (Kate Deplaix, review by Gabriel Scherer, Nicol=C3=A1s Ojeda B=C3=A4r, and Antonin D=C3=A9cimo)

OCaml 4.14.3 for Plan 9

Continuing this thread, Eduardo Cavazos announced

Here's a demo of the ocaml repl in the acme editor in plan9 and some integr= ation features:

https://youtu.be/0GP_V1sACTw

The acme-repl demonstrated there is here:

https://github.com/dhar= matech/acme-repl

Miou, a simple scheduler for OCaml 5

Calascibetta Romain announced

I am delighted to announce the release of miou.0.7.0. Whilst this release isn= =E2=80=99t quite as impressive as previous ones, it now provides us with a = pure OCaml implementation of SSH for our unikernels! This release notably i= ntroduces Miou.get, which allows you to wait for and retrieve = a task saved in an orphan: for this, we refer you to our documentation avai= lable h= ere.

This release also strengthens our ecosystem in general: following htt= p, tls, tcp/ip, smtp, d= ns and ntp, we can now add ssh to the prot= ocols available for our unikernels (as well as for OCaml applications in ge= neral). It is largely thanks to @hannes=E2=80=99s work on migrating from Cstruct.t (which we are now deprecating) to string (a process we beg= an several years ago following observations of performance issues with Cstruct.t<= /a>) that we have managed to complete mnet-ssh.

And so, thanks to our work on notty~/~nottui (and [~lwd~](gith= ub.com/let-def/lwd)), SSH support for unikernels, and one of our MirageOS r= etreats, we have revived a project developed by @reynir: banawa-chat. It is a unikernel that of= fers "a chat room for everyone" via SSH; you simply need to connect to it t= o chat with others (a mini IRC) and it provides a TUI even though the unike= rnel does not recognise the concept of a terminal! The project is available= here (and an = opam pin is all you need to obtain banawa.hvt).

3D"e857f94d3f9f257=

This consolidation is now taking shape with the emergence of a few unikerne= ls and tools, and we=E2=80=99re taking this opportunity to introduce you to= a few that are now available:

  • another older unikernel has just reappeared: pasteur and its deployment https://paste.osau.re/. It brings our efforts to vif and demonstrate= s how to create a simple web application in the form of a unikernel.
  • aussi = is a small experimental project that can be used with Docker to deploy Solo= 5 unikernels quite simply (a simple docker run is enough now!)= . However, we still recommend using albatross for production deployment.
  • chaos = has finally crossed the Rubicon. Having started this project a year ago to = experiment with our new workflow, this NTP server ("Chrony-style") is now available at osau.re:123

We therefore continue to offer unikernels and actively use them in order to= improve them. As such, we would like to thank everyone who provides us wit= h (any kind of) feedback on what we are developing, enabling us to collecti= vely improve what our cooperative can offer the OCaml community (and, more = broadly, the users of our unikernels). If you like what we do, you can supp= ort us via a donation (directly o= r via GitHub). Happy= hacking!

OCaml 4.14.4 released

octachron announced

We have the pleasure of celebrating the anniversary of the first flight of = Ariane 4 by announcing the release of OCaml version 4.14.4[^1].

This release is a collection of safe bug fixes and security fixes for the s= tandard library, cherry-picked from the OCaml 5 branch.

The 4.14 branch is expected to receive episodic updates until at least the = end of 2026.

However, the end of its extended maintenance period is on the horizon. Consequently, please mention to us any obstacle remaining to your migration= to OCaml 5.

In the meanwhile, do not hesitate to report any bugs on the OCaml issue tracker.

See the list of changes below for more details.

Happy hacking, Florian Angeletti for the OCaml team.

Installation Instructions

The base compiler can be installed as an opam switch with the following com= mands:

opam update
opam switch create 4.14.4

The source code for the release candidate is also directly available on:

Changes in OCaml 4.14.4 (15 June 2026)

  • Build system:
    • #12372, #14572: Pass optio= n -no-execute-only to the linker for OpenBSD >=3D 7.3 so that code sections remain readable, as needed for closure marshaling. Originally backported in 4.14.2, but the flag was accidentally not passed w= hen linking the .so versions of the OCaml runtime libraries or when linking .cm= xs files. (Xavier Leroy and Anil Madhavapeddy, review by Anil Madhavapeddy and S=C3=A9bastien Hinderer)
  • Bug fixes:
    • #14599, #14606: on ARM64 p= latforms, ocamlopt was under-estimating the sizes of some instructions. This could lead to overflows in relative branch offsets, reported as errors by the assembler. (Xavier Leroy, review by Vincent Laviron, report by Rapha=C3=ABl Proust)
    • #14607: Fix= linking with libasmrun_shared.so on Risc-V (undefined symbol declared riscv.o) (David Allsopp, review by Nicol=C3=A1s Ojeda B=C3=A4r)
    • #14661: Bui= ld dllthreads.so with pthreads flags (removed in #13018). For normal programs there's no semantic difference, because ocamlrun and ocamlc.opt are always linked with pthreads, but it was a regression to requ= ire programs wishing to dlopen dllthreads.so to have already linked with pthrea= ds themselves. (David Allsopp, review by Gabriel Scherer)
    • #14655, #14691, CVE-2026-3= 4353, OSEC-2026-04: check for size overflow in caml_ba_reshape (Stephen Dolan, review by Xavier Leroy)
    • #14853, CVE= -2026-41083, OSEC-2026-05: fix quoting of filenames passed to Filename.quote_command on Windows. (David Allsopp, report by Andrew Nesbitt, review by Florian Angeletti)

    [^1]: The release of OCaml 5.5.0 is planned later this week.

Old CWN

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a loo= k at the archive or the <= a href=3D"https://alan.petitepomme.net/cwn/cwn.rss">RSS feed of the archive= s.

If you also wish to receive it every week by mail, you may subscribe to the= caml-list.

--==-=-=-- --=-=-=-- --===-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFvBAEBCABZFiEE6lXof/BsSVW56ZmGBA0KO07S5ccFAmoxKqYbFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMCwzHxxhbGFuLnNjaG1pdHRAcG9seXRlY2huaXF1ZS5v cmcACgkQBA0KO07S5cfrCQgAiBc63j8aCOd4/BY29dyJrhl8SA0xRBJ37+t4YRbO J245W7kC9SPyGnG7afmHnwloOTR8lHR4uaCL4VFBgkSbxpPbuYZQA0yaQnkdsmQa zBf1IG4zHJ2m46ubVjv/VRsucfhwCjBtbEEKuEmpk1MmgvIgZJ8itAZwj1xGJeID CT24oPKNiM/6StaxPv7eRsR/B6k3tD3JjY9VXDpWiWA2rLiSWCSaUfVIOW2j4sOH 366ENpuAs6fegHnbcWbrLWuk59bMeC14GFrvZjfzTQ3stw+zNn/eOEAMq8LCMIVm XNcU2XHUovpseuTj8qzKxg5F8wfrRRJFwj4fWNjUFuubYQ== =T2tS -----END PGP SIGNATURE----- --===-=-=--