From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id A96C4E0157 for ; Tue, 20 Sep 2022 16:01:36 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=Pass smtp.pra=alan.schmitt@polytechnique.org; spf=Pass smtp.mailfrom=SRS0=8mXz=ZX=polytechnique.org=alan.schmitt@bounces.m4x.org; spf=Pass smtp.helo=postmaster@mx1.polytechnique.org Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of alan.schmitt@polytechnique.org designates 129.104.30.34 as permitted sender) identity=pra; client-ip=129.104.30.34; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=8mXz=ZX=polytechnique.org=alan.schmitt@bounces.m4x.org"; x-sender="alan.schmitt@polytechnique.org"; x-conformance=sidf_compatible; x-record-type="spf2.0"; x-record-text="spf2.0/pra,mfrom +a:mx1.polytechnique.org +a:mx2.polytechnique.org +a:mx3.polytechnique.org +ip6:2001:41d0:1:94de::736d:7470 -all" Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of SRS0=8mXz=ZX=polytechnique.org=alan.schmitt@bounces.m4x.org designates 129.104.30.34 as permitted sender) identity=mailfrom; client-ip=129.104.30.34; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=8mXz=ZX=polytechnique.org=alan.schmitt@bounces.m4x.org"; x-sender="SRS0=8mXz=ZX=polytechnique.org=alan.schmitt@bounces.m4x.org"; x-conformance=sidf_compatible; x-record-type="spf2.0"; x-record-text="spf2.0/pra,mfrom +a:mx1.polytechnique.org +a:mx2.polytechnique.org +a:mx3.polytechnique.org +ip6:2001:41d0:1:94de::736d:7470 -all" Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of postmaster@mx1.polytechnique.org designates 129.104.30.34 as permitted sender) identity=helo; client-ip=129.104.30.34; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=8mXz=ZX=polytechnique.org=alan.schmitt@bounces.m4x.org"; x-sender="postmaster@mx1.polytechnique.org"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 a -all" IronPort-SDR: 6329c7bf_oXrbfVw0QxnhqjrAgfE8HKmXaXElvEikvF5SvG99gXAgRsh bjQf0Ey+9lh+nSOTwjhha2ln8Y/RrB2Vpi7mppw== X-IPAS-Result: =?us-ascii?q?A0CDAwAExyljmCIeaIFaAYJXgSFbKBkBZ1YWGAcIRQKET?= =?us-ascii?q?Ih+iBaBFoIVhjSHCo1PA08QAQMBDSwBDgQBAgQBAYISgi5FAhaEVAIeBgEFM?= =?us-ascii?q?gYOAQIEAQEBAQMCAwEBAQEBAQMBAQUBAQECAQECBAQBEwEBAQEBAQEBFAkZB?= =?us-ascii?q?RAOBSKFaA2CNQwMAwODdAMBCg4BCAoTAQEsBQcYFA8DFAEGAwIEDQEXAR4DF?= =?us-ascii?q?AESFAYBggpYAYMgAwULj2abHXqBMoEBgggBAQaBQAEDAgECCQICAw8uAYN2g?= =?us-ascii?q?VwJJIECGIcEblUBgzaEJgInEIFVRIEVgnMHboJLDAsBAQEBAYE7AQFNCYMgG?= =?us-ascii?q?IJOiXOPCQc3A0QdQQMLdgMVAxQDBSQHAxkPIw0NBB0MAwMFJQMCAhsHAgIDA?= =?us-ascii?q?gYTBQICFzY4CAQIBCskDwUCBy8FBC8CHgQFBhEIAhYCBgQEBAQVAhAIAggmF?= =?us-ascii?q?wcTMxkBBVkQCSEWBigNBQYTAyBJJgVFDygyaysdGwqBDCoJHxUDBAQDAgYTA?= =?us-ascii?q?wMiAhAqMRQEKRMSLQcrcwkCAyJsAwMEKCwDCSEfBygmPAdYEigFAwMQIj0GA?= =?us-ascii?q?wkDAiRbgQQsKAUDDRkmCAU5HgQIPAIFBpcJgU+BRQ4LFBkGARYRAxMkLgcUC?= =?us-ascii?q?AYBAQ0VJBItCwEHAwIDEwEHFgkOBRcbEwgDCwIeDwOERI1HHwSJNIR4imyUT?= =?us-ascii?q?hloNAeDWYFBBgyIQYEjgkuKOIgrg3aBUIUohViGZZFZIZZpIIIqhwOBGAmCS?= =?us-ascii?q?4g/jBIeCBiFHYFOKSRIYgEBGgIMBzMaMEMNBhMBggwBATIJCQE7HA9XjVUWg?= =?us-ascii?q?ygogT6BJoF1O4UaMj80AgEBBwcpAgYBCgEBAwmFYwEBBRMLAYQXWgEB?= IronPort-PHdr: A9a23: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 IronPort-Data: A9a23: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 IronPort-HdrOrdr: A9a23:EWqjRK0A1STlwxKgX/NylQqjBI8kLtp133Aq2lEZdPU1SL36qy nKpp4mPHDP5gr5NEtMpTniAsm9qBHnlKKdiLN5VdyftWLd11dAQrsP0aLShxXeXwf++uRe2a oISdkdNPTASX5gg4Lf6Am8euxQpOVvHZrY4Nvj8w== X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="5.93,330,1654552800"; d="scan'208,217";a="24205267" X-MGA-submission: =?us-ascii?q?MDFnK0vSsj9bLnosLZSuzWTPTSM0IdCAD+ol50?= =?us-ascii?q?rLdaUDA4+F9qrNlnFqGHJsqL56bybeT0j7FnOgsuoC62j0v6xu+5f8ci?= =?us-ascii?q?GJpMrdxq8NdqROkOb4UeDcEPaH+VEqFR5wG1ZdqjHUTT8/qJHycpvFwZ?= =?us-ascii?q?HdG7gImn8nb11/s7ZJyc+zHw=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; 20 Sep 2022 16:01:35 +0200 Received: from set (set.irisa.fr [131.254.10.170]) (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 0150E5646C9; Tue, 20 Sep 2022 16:01:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=polytechnique.org; s=svoboda; t=1663682494; bh=Kb0E7qOnRHli0EfIKTdXvbPxgjZQftXAw3lG1ms/nZ8=; h=From:To:Subject:Date:Message-ID; b=JwvdDLkQ6wTvsIXTJmXfr2BacfzUH9Uolov2FLwg+9binpoPATS8GdukW/HKDDtUO Pf7U5Ly3v+YfHWTdLDusLlgkg7xiGI5UWZaHCrNbF15i+5VrdUfKwGIq0q1tcqwvhE 2QkWCzLC0o6cqd139CXH4/JpRWe6/2HFfCVzv0+I= From: Alan Schmitt To: "lwn" , "cwn" , caml-list@inria.fr Date: Tue, 20 Sep 2022 16:01:25 +0200 Message-ID: <875yhirvpm.fsf@m4x.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Sep 20 16:01:34 2022 +0200 (CEST)) X-Spam-Flag: Unsure, tests=bogofilter, spamicity=0.493512, queueID=483675646D0 X-Org-Mail: alan.schmitt.1995@polytechnique.org Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGVsbG8NCg0KSGVyZSBpcyB0aGUgbGF0ZXN0IE9DYW1sIFdlZWtseSBOZXdzLCBmb3IgdGhlIHdl ZWsgb2YgU2VwdGVtYmVyIDEzIHRvDQoyMCwgMjAyMi4NCg0KVGFibGUgb2YgQ29udGVudHMNCuKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQpTYW5k bWFyayBOaWdodGx5IFNlcnZpY2Ugbm93IHJlcG9ydHMgSW5zdHJ1Y3Rpb25zIFJldGlyZWQgYWxv bmcgd2l0aCBUaW1lDQpPdXRyZWFjaHkgRGVjZW1iZXIgMjAyMg0KVW5pY29kZSAxNS4wLjAgdXBk YXRlIGZvciBVdWNkLCBVdWNwLCBVdW5mIGFuZCBVdXNlZw0KT1VQUyBtZWV0dXAgc2VwdGVtYmVy IDIwMjIgKGZyZW5jaCBvbmx5KQ0Kc3RyeW1vbmFzIHYyOiBsaWJyYXJ5IGZvciBoaWdoZXN0LXBl cmZvcm1hbmNlIHN0cmVhbSBwcm9jZXNzaW5nDQpPQ2FtbCBDb21tdW5pdHkgQ29kZSBvZiBDb25k dWN0DQpVc2UgT0NhbWwgdG8gaW50ZXJhY3Qgd2l0aCBOZW92aW0NCldoYXQgd2lsbCBiZSByZXF1 aXJlZCB0byB0cmFuc3BpbGUgT0NhbWwgdG8gTHVhPw0KT0JhemwgVG9vbHN1aXRlIC0gdG9vbHMg Zm9yIGJ1aWxkaW5nIE9DYW1sIHdpdGggQmF6ZWwNCk9sZCBDV04NCg0KDQpTYW5kbWFyayBOaWdo dGx5IFNlcnZpY2Ugbm93IHJlcG9ydHMgSW5zdHJ1Y3Rpb25zIFJldGlyZWQgYWxvbmcgd2l0aCBU aW1lDQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0K ICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L3NhbmRtYXJrLW5pZ2h0 bHktc2VydmljZS1ub3ctcmVwb3J0cy1pbnN0cnVjdGlvbnMtcmV0aXJlZC1hbG9uZy13aXRoLXRp bWUvMTA0NzUvMT4NCg0KDQpTaGFrdGhpIEthbm5hbiBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gA0KDQogIFNhbmRtYXJrIE5pZ2h0bHkgaXMgYSBzZXJ2aWNlIGZvciB0aGUgT0NhbWwgY29tcGls ZXIgZGV2ZWxvcGVycyB0aGF0DQogIGhlbHBzIGJlbmNobWFyayB0aGUgZGV2ZWxvcG1lbnQgYnJh bmNoZXMgb2YgdGhlIGNvbXBpbGVyIG9uIHRoZSBsYXJnZQ0KICBzZXQgb2YgU2FuZG1hcmsgYmVu Y2htYXJrcyBvbiB0dW5lZCBtYWNoaW5lcyBhbmQgcmVwb3J0cyB0aGUgcmVzdWx0cw0KICBpbiBh biBpbnRlcmFjdGl2ZSBVSS4gQ3VycmVudGx5LCBTYW5kbWFyayBuaWdodGx5IHJlcG9ydGVkIG1h bnkNCiAgbWV0cmljcyBpbmNsdWRpbmcgcnVubmluZyB0aW1lLiBCdXQgcnVubmluZyB0aW1lIGlz IGEgbm90b3Jpb3VzbHkNCiAgbm9pc3kgbWV0cmljIG9uIG1vZGVybiBhcmNoaXRlY3R1cmVzIGR1 ZSB0byB0aGUgZWZmZWN0cyBvZiBtb2Rlcm4gT1MsDQogIGFyY2ggYW5kIG1pY3JvLWFyY2ggb3B0 aW1pc2F0aW9ucy4gVGhlcmUgY291bGQgYmUgc3dpbmdzIG9mIDUwJSBpbg0KICBlaXRoZXIgZGly ZWN0aW9ucyB3aGVuIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIHByb2dyYW0gaXMgcnVuDQog IGNoYW5nZXMuDQoNCiAgV2hpbGUgd2UgcnVuIFNhbmRtYXJrIGJlbmNobWFya3Mgb24gdHVuZWQg bWFjaGluZXMsIHdlIHN0aWxsIHNlZQ0KICBpbXBhY3Qgb2Ygbm9pc2Ugb24gdGhlIHJlYWwgdGlt ZSBtZWFzdXJlbWVudHMuIFRvIHRoaXMgZW5kLCB3ZQ0KICBpbnRyb2R1Y2UgYSBuZXcgbWV0cmlj IGludG8gU2FuZG1hcmsgbmlnaHRseSB0aGF0IGluIGFkZGl0aW9uIHRvIHJlYWwNCiAgdGltZSwg d291bGQgaGVscCBpbnRlcnByZXQgdGhlIHJlc3VsdHMgYWNjb3VudGluZyBmb3IgdGhlIG5vaXNl LiBXZQ0KICBub3cgcmVwb3J0IOKAnGluc3RydWN0aW9ucyByZXRpcmVk4oCdIGZvciBTYW5kbWFy ayBydW5zLiBJbnN0cnVjdGlvbnMNCiAgcmV0aXJlZCByZXBvcnQgdGhlIG51bWJlciBvZiBpbnN0 cnVjdGlvbnMgZXhlY3V0ZWQgYnkgdGhlIHByb2dyYW0NCiAgZHVyaW5nIGl0cyBydW4gYW5kIGhl bmNlIGlzIHNoaWVsZGVkIGZyb20gdGhlIG5vaXNlIHRoYXQgYWZmZWN0cyByZWFsDQogIHRpbWUg bWVhc3VyZW1lbnRzLiBPZiBjb3Vyc2UsIHRoZSBzYW1lIG51bWJlciBvZiBpbnN0cnVjdGlvbnMg bWF5IGJlDQogIGRpc2NoYXJnZWQgYXQgZGlmZmVyZW50IHJhdGVzIGJ5IHRoZSBwcm9jZXNzb3Ig ZHVlIHRvDQogIGluc3RydWN0aW9uLWxldmVsIHBhcmFsbGVsaXNtIGFuZCBoZW5jZSwgdGhlIGlu c3RydWN0aW9ucyBkaXNjaGFyZ2VkDQogIG1ldHJpYyBzaG91bGQgYmUgdXNlZCBpbiBjb25qdW5j dGlvbiB3aXRoIHJlYWwgdGltZSBtZWFzdXJlbWVudHMuIEZvcg0KICBleGFtcGxlLCBpZiBhIG5l dyBjb21waWxlciBmZWF0dXJlIGFkZHMgMiBpbnN0cnVjdGlvbnMgdG8gdGhlIHByb2xvZw0KICBv ZiB0aGUgZnVuY3Rpb24sIHRoZW4gdGhlIGluc3RydWN0aW9ucyByZXRpcmVkIG1ldHJpYyBzaG91 bGQgaW5mb3JtDQogIHlvdSBob3cgbWFueSBuZXcgaW5zdHJ1Y3Rpb25zIGFyZSBhY3R1YWxseSBl eGVjdXRlZCBvbiB0b3Agb2YgdGhlDQogIGJhc2VsaW5lLg0KDQogIFRoZSBpbnN0cnVjdGlvbnMg cmV0aXJlZCBtZXRyaWMgaXMgY29sbGVjdGVkIGZyb20gYHBlcmYnIGNvbW1hbmQuIFdlDQogIGFs c28gaGF2ZSBvdGhlciB1c2VmdWwgbWV0cmljcyBmcm9tIHBlcmYgc3VjaCBhcyBwYWdlIGZhdWx0 cywNCiAgYnJhbmNoZXMsIGJyYW5jaCBtaXNzZXMsIGNhY2hlIG1pc3NlcyBhdCB2YXJpb3VzIGxl dmVscyBvZiB0aGUNCiAgaGllcmFyY2h5LCBldGMuIFdlIHdpbGwgYWRkIGdyYXBocyB0byByZXBv cnQgdGhlc2UgZ29pbmcgZm9yd2FyZC4NCiAgRW5qb3kgdGhlIG5ldyBmZWF0dXJlLCBhbmQgYXMg ZXZlciwgcmVwb3J0IGlzc3VlcyBhbmQgYnVncyB0bw0KICBbU2FuZG1hcmsgSXNzdWVzXS4NCg0K ICBUaGUgd2ViIHNlcnZpY2UgaXMgYXZhaWxhYmxlIGF0IDxodHRwczovL3NhbmRtYXJrLnRhcmlk ZXMuY29tPiBhbmQgeW91DQogIGNhbiBzZWxlY3QgdGhlIGBQZXJmc3RhdCBPdXRwdXQnIHJhZGlv IGJ1dHRvbiBvbiB0aGUgbGVmdCBwYW5lbCBhcw0KICBzaG93biBiZWxvdy4NCg0KICA8aHR0cHM6 Ly9nbG9iYWwuZGlzY291cnNlLWNkbi5jb20vc3RhbmRhcmQxMS91cGxvYWRzL29jYW1sL29yaWdp bmFsLzJYLzUvNWY5ZDNkOGQ4N2JhNjgyMWU4ZjQxZjAyN2NlN2E2YjAwNzRlYzk1YS5wbmc+DQoN CiAgQWZ0ZXIgc2VsZWN0aW5nIHRoZSB2YXJpYW50cyBhbmQgYSBiYXNlbGluZSBmb3IgY29tcGFy aXNvbiwgeW91IGNhbg0KICB2aWV3IHRoZSBub3JtYWxpc2VkIGBpbnN0cnVjdGlvbnMgcGVyIGN5 Y2xlJyBjaGFuZ2UgYXMgaWxsdXN0cmF0ZWQNCiAgYmVsb3c6DQoNCiAgPGh0dHBzOi8vZ2xvYmFs LmRpc2NvdXJzZS1jZG4uY29tL3N0YW5kYXJkMTEvdXBsb2Fkcy9vY2FtbC9vcmlnaW5hbC8yWC8x LzFiYWY2NzNiMTI0NmViMzUwNWY4NjAzYTI2MGVlNGYyMmYzMmZiODUucG5nPg0KDQogIFlvdSBj YW4gYWxzbyByZXF1ZXN0IGZvciB5b3VyIGRldmVsb3BtZW50IGJyYW5jaGVzIHRvIGJlIGFkZGVk IHRvIHRoZQ0KICBTYW5kbWFyayBOaWdodGx5IFNlcnZpY2UgYXQgdGhlIFtzYW5kbWFyay1uaWdo dGx5LWNvbmZpZ10gcmVwb3NpdG9yeQ0KICBmb3IgdGhlIG5pZ2h0bHkgcnVucy4NCg0KDQpbU2Fu ZG1hcmsgSXNzdWVzXSA8aHR0cHM6Ly9naXRodWIuY29tL29jYW1sLWJlbmNoL3NhbmRtYXJrL2lz c3Vlcz4NCg0KW3NhbmRtYXJrLW5pZ2h0bHktY29uZmlnXQ0KPGh0dHBzOi8vZ2l0aHViLmNvbS9v Y2FtbC1iZW5jaC9zYW5kbWFyay1uaWdodGx5LWNvbmZpZz4NCg0KUmVmZXJlbmNlcw0K4pWM4pWM 4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWMDQoNCiAgMS4gUnVuIHBlcmZzdGF0IHdpdGggU2FuZG1h cmsgbmlnaHRseSBzZXJ2aWNlLiBbU2FuZG1hcmsgUFIgIzM5NF0NCiAgMi4gQWRkIHdlYnBhZ2Ug d2l0aCBwZXJmc3RhdCBvdXRwdXQgZnJvbSBTYW5kbWFyay4gW1NhbmRtYXJrLW5pZ2h0bHkNCiAg ICAgUFIgIzgxXQ0KICAzLiBwZXJmc3RhdC5pcHluYi4gW1NhbmRtYXJrIHBlcmZzdGF0IEp1cHl0 ZXIgbm90ZWJvb2tdDQoNCg0KW1NhbmRtYXJrIFBSICMzOTRdIDxodHRwczovL2dpdGh1Yi5jb20v b2NhbWwtYmVuY2gvc2FuZG1hcmsvcHVsbC8zOTQ+DQoNCltTYW5kbWFyay1uaWdodGx5IFBSICM4 MV0NCjxodHRwczovL2dpdGh1Yi5jb20vb2NhbWwtYmVuY2gvc2FuZG1hcmstbmlnaHRseS9wdWxs LzgxPg0KDQpbU2FuZG1hcmsgcGVyZnN0YXQgSnVweXRlciBub3RlYm9va10NCjxodHRwczovL2dp dGh1Yi5jb20vb2NhbWwtYmVuY2gvc2FuZG1hcmsvYmxvYi9tYWluL25vdGVib29rcy9wZXJmc3Rh dC9wZXJmc3RhdC5pcHluYj4NCg0KDQpPdXRyZWFjaHkgRGVjZW1iZXIgMjAyMg0K4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5vcmcvdC9vdXRyZWFj aHktZGVjZW1iZXItMjAyMi8xMDMzNi8xOD4NCg0KDQpQYXRyaWNrIEZlcnJpcyBzYWlkDQrilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0K ICBKdXN0IGEgcmVtaW5kZXIgdGhlIGRlYWRsaW5lIGZvciBtZW50b3Igc2lnbnVwIGlzIGluIDkg ZGF5cywgdGhlIHNhbWUNCiAgZGF5IGFzDQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3Qv b3V0cmVhY2h5LXN1bW1lci0yMi1jbG9zaW5nLWNvbW1lbW9yYXRpb24tc2Vzc2lvbi1vbi0yM3Jk LXNlcHQvMTA0NTA+DQogIDpjYW1lbDoNCg0KDQpVbmljb2RlIDE1LjAuMCB1cGRhdGUgZm9yIFV1 Y2QsIFV1Y3AsIFV1bmYgYW5kIFV1c2VnDQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZANCg0KICBBcmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90 L2Fubi11bmljb2RlLTE1LTAtMC11cGRhdGUtZm9yLXV1Y2QtdXVjcC11dW5mLWFuZC11dXNlZy8x MDQ4NS8xPg0KDQoNCkRhbmllbCBCw7xuemxpIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAg VW5pY29kZSAxNS4wLjAgd2FzIHJlbGVhc2VkIG9uIHRoZSAxM3RoIG9mIHNlcHRlbWJlci4gSXQg YWRkcyA0NDg5IG5ldw0KICBjaGFyYWN0ZXJzIHRvIHRoZSBzdGFuZGFyZC4NCg0KICBHaXZlbiB0 aGUgaW5jcmVhc2luZyBjb250cmlidXRpb25zIGZyb20gdGhlIFNvdXRoIEFzaWFuIHN1YmNvbnRp bmVudA0KICB0byBPQ2FtbCB3ZSBhcmUgZ2xhZCB0aGlzIGluY2x1ZGVzIHN1cHBvcnQgZm9yIHRo ZSA0MiAoc2ljKSBjaGFyYWN0ZXJzDQogIG9mIHRoZSBbTmFnIE11bmRhcmkgc2NyaXB0XS4gRm9y IGluZm9ybWF0aW9uIGFib3V0IHRoZSBvdGhlcg0KICBhZGRpdGlvbnMsIHNlZSB0aGUgW2Fubm91 bmNlbWVudCBwYWdlXS4NCg0KICBBY2NvcmRpbmdseSB0aGUgbGlicmFyaWVzIG1lbnRpb25lZCBh dCB0aGUgZW5kIG9mIHRoaXMgbWVzc2FnZSBoYWQgdG8NCiAgYmUgdXBkYXRlZC4gQ29uc3VsdCB0 aGUgaW5kaXZpZHVhbCByZWxlYXNlIG5vdGVzIGZvciBkZXRhaWxzLiBCb3RoDQogIFV1Y2QgYW5k IFV1Y3AgYXJlIGluY29tcGF0aWJsZSByZWxlYXNlcyBzaW5jZXMgbmV3IHNjcmlwdCBhbmQgYmxv Y2sNCiAgZW51bWVyYW50cyBoYWQgdG8gYmUgYWRkZWQuDQoNCiAgTm90ZSB0aGF0IHN0YXJ0aW5n IGZyb20gVW5pY29kZSAxNi4wLjAg4oCTIHRoYXQgaXMgaW4gYSB5ZWFyIOKAkyB0aGVzZQ0KICBs aWJyYXJpZXMgd2lsbCBiZSBjaGFuZ2VkIHRvIHVzZSB0aGUgVVRGIGRlY29kZXJzIG9mIHRoZSBz dGFuZGFyZA0KICBsaWJyYXJ5IHJhdGhlciB0aGFuIHJlbHkgb24gVXV0Zi4gVGhleSB3aWxsIHRo dXMgb25seSBiZSBhdmFpbGFibGUgZm9yDQogIE9DYW1sID49IDQuMTQuDQoNCiAgVGhlIE9DYW1s IHRpcHMgb2YgdGhlIFttaW5pbWFsIFVuaWNvZGUgaW50cm9kdWN0aW9uXSwgd2hpY2ggeW91IHNo b3VsZA0KICByZWFkIGlmIFVuaWNvZGUgc3RpbGwgcHV6emxlcyB5b3UsIGhhdmUgYmVlbiB1cGRh dGVkIHRvIG1lbnRpb24gdGhlDQogIG5ldyBzdGFuZGFyZCBsaWJyYXJ5IFVURiBkZWNvZGVycy4N Cg0KICBBbHNvLCB0aGUgYHVjaGFyaW5mbycgdG9vbCBkaXN0cmlidXRlZCB3aXRoIGB1dWNwJ1te MV0gY2FuIG5vdyBhbHNvDQogIGxvb2t1cCBjaGFyYWN0ZXJzIGJ5IG1hdGNoaW5nIHN1YnN0cmlu Z3MgaW4gdGhlaXIgVW5pY29kZSBuYW1lIG9yIG5hbWUNCiAgYWxpYXNlcy4NCg0KICBCZXN0LA0K DQogIERhbmllbA0KDQogIEEgYmlnIHRoYW5rcyBmb3IgZnVuZGluZyBmcm9tIHRoZSBbT0NhbWwg U29mdHdhcmUgRm91bmRhdGlvbl0gYW5kIGZyb20NCiAgbXkgW2ZhaXRoZnVsIGRvbmF0b3JzXS4N Cg0KDQogIOKAoiBVdWNkIDE1LjAuMCBVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSBkZWNvZGVy IGZvciBPQ2FtbC4NCiAgICA8aHR0cDovL2VycmF0aXF1ZS5jaC9zb2Z0d2FyZS91dWNkPg0KICDi gKIgVXVjcCAxNS4wLjAgVW5pY29kZSBjaGFyYWN0ZXIgcHJvcGVydGllcyBmb3IgT0NhbWwuDQog ICAgPGh0dHA6Ly9lcnJhdGlxdWUuY2gvc29mdHdhcmUvdXVjcD4NCiAg4oCiIFV1bmYgMTUuMC4w IFVuaWNvZGUgdGV4dCBub3JtYWxpemF0aW9uIGZvciBPQ2FtbC4NCiAgICA8aHR0cDovL2VycmF0 aXF1ZS5jaC9zb2Z0d2FyZS91dW5mPg0KICDigKIgVXVzZWcgMTUuMC4wIFVuaWNvZGUgdGV4dCBz ZWdtZW50YXRpb24gZm9yIE9DYW1sLg0KICAgIDxodHRwOi8vZXJyYXRpcXVlLmNoL3NvZnR3YXJl L3V1c2VnPg0KDQogIFteMV06IEl04oCZcyBhIGRlcG9wdCB5b3XigJlsbCBuZWVkIGBvcGFtIGlu c3RhbGwgY21kbGluZXIgdXV0ZiB1dW5mIHV1Y3AnDQogIHRvIGluc3RhbGwgaXQuDQoNCg0KW05h ZyBNdW5kYXJpIHNjcmlwdF0NCjxodHRwczovL3VuaWNvZGUub3JnL2NoYXJ0cy9QREYvVW5pY29k ZS0xNS4wL1UxNTAtMUU0RDAucGRmPg0KDQpbYW5ub3VuY2VtZW50IHBhZ2VdDQo8aHR0cHM6Ly9i bG9nLnVuaWNvZGUub3JnLzIwMjIvMDkvYW5ub3VuY2luZy11bmljb2RlLXN0YW5kYXJkLXZlcnNp b24tMTUwLmh0bWw+DQoNClttaW5pbWFsIFVuaWNvZGUgaW50cm9kdWN0aW9uXQ0KPGh0dHBzOi8v ZXJyYXRpcXVlLmNoL3NvZnR3YXJlL3V1Y3AvZG9jL3VuaWNvZGUuaHRtbD4NCg0KW09DYW1sIFNv ZnR3YXJlIEZvdW5kYXRpb25dIDxodHRwOi8vb2NhbWwtc2Yub3JnLz4NCg0KW2ZhaXRoZnVsIGRv bmF0b3JzXSA8aHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL2RidWVuemxpPg0KDQoNCk9VUFMg bWVldHVwIHNlcHRlbWJlciAyMDIyIChmcmVuY2ggb25seSkNCuKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6 DQogIDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3Qvb3Vwcy1tZWV0dXAtc2VwdGVtYmVyLTIw MjItZnJlbmNoLW9ubHkvMTA0OTIvMT4NCg0KDQp6YXBhc2hjYW5vbiBhbm5vdW5jZWQNCuKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gA0KDQogICh0aGlzIGlzIGluIGZyZW5jaCBvbmx5IGFzIHRoZSB0YWxrcyB3aWxsIGJlIGluIGZy ZW5jaCBpdOKAmXMgcHJvYmFibHkNCiAgbm90IHJlbGV2YW50IGZvciBlbmdsaXNoIHNwZWFrZXJz KQ0KDQogIExlIHByb2NoYWluIE9VUFMgYXVyYSBsaWV1IGxlICpqZXVkaSAyOSBzZXB0ZW1icmUq IDIwMjIuIExlDQogIHJlbmRlei12b3VzIGVzdCBmaXjDqSDDoCAqMTloKiBhdSAqNCBwbGFjZSBK dXNzaWV1IChzYWxsZSDDoCBwcsOpY2lzZXIpKiwNCiAgNzUwMDUgUGFyaXMuDQoNCiAgKltM4oCZ aW5zY3JpcHRpb24gZXN0IG9ibGlnYXRvaXJlXSogcG91ciBwb3V2b2lyIGFjY8OpZGVyIGF1IG1l ZXR1cCAhDQoNCiAgTGVzIGV4cG9zw6lzIHNlcm9udCDDqWdhbGVtZW50IHJldHJhbnNtaXMgZW4g bGlnbmUgc3VyIGxlIFtnYWzDqG5lIGR1DQogIE9VUFNdLg0KDQogIFRvdXRlcyBsZXMgaW5mb3Jt YXRpb25zIHNvbnQgZGlzcG9uaWJsZXMgc3VyIGxlIFtzaXRlIGR1IE9VUFNdLg0KDQogICpQcm9n cmFtbWUgOioNCg0KICAqQ09CT0wgMTAxIOKAkyDDiW1pbGllbiBMZW1haXJlKg0KDQogIENPQk9M IGVzdCB1biBsYW5nYWdlIHRyw6hzIGFuY2llbiBldCBlc3QgYXNzZXogw6lsb2lnbsOpIGRlIGNl dXggcXVlIG5vdXMNCiAgbWFuaXB1bG9ucyB0b3VzIGxlcyBqb3Vycy4gTWFsZ3LDqSBjZWxhIGls IHJlc3RlIGzigJl1biBkZXMgcGx1cyB1dGlsaXPDqXMNCiAgZGFucyBsZSBtb25kZS4NCg0KICBE dXJhbnQgY2V0dGUgcHLDqXNlbnRhdGlvbiBqZSB2YWlzIGRvbmMgdm91cyBpbnRyb2R1aXJlIGF1 IGxhbmdhZ2UsDQogIHZvaXIgY29tbWVudCBzb250IMOpY3JpdCBsZXMgcHJvZ3JhbW1lcywgY29t bWVudCBsZXMgdmFyaWFibGVzDQogIHNvbnQtZWxsZXMgZMOpY2xhcsOpZXMgZXQgY29tbWVudCBs ZXMgbWFuaXB1bGVyLiBKZSB2YWlzIGF1c3NpIHZvdXMNCiAgcHLDqXNlbnRlciBxdWVscXVlcyBm ZWF0dXJlcyDigJxpbnTDqXJlc3NhbnRlc+KAnSBkdSBsYW5nYWdlLCBkb250IGNlcnRhaW5lcw0K ICBzb250IGluYXR0ZW5kdWVzLg0KDQogICpPQ2FtbCBNdWx0aWNvcmUg4oCTIEZsb3JpYW4gQW5n ZWxldHRpKg0KDQogICpPcGFtLWJpbjogT3BhbSBldCBwYXF1ZXRzIGJpbmFpcmVzIOKAkyBGYWJy aWNlIExlIEZlc3NhbnQqDQoNCiAgTOKAmXV0aWxpc2F0aW9uIGTigJl1biBnZXN0aW9ubmFpcmUg ZGUgcGFxdWV0cyBzb3VyY2VzIGNvbW1lIE9wYW0gbuKAmWVzdA0KICBwYXMgdG91am91cnMgb3B0 aW1hbGUgZW4gdGVtcHMsIGNhciBs4oCZb3V0aWwgcGFzc2UgYmVhdWNvdXAgZGUgdGVtcHMgw6AN CiAgcmVjb21waWxlciBkZXMgcGFxdWV0cywgZMOoasOgIGNvbXBpbMOpcyBkYW5zIGxlIHBhc3PD qSBvdSBwYXIgZOKAmWF1dHJlcw0KICB1dGlsaXNhdGV1cnMuIExlIHBsdWdpbiBPcGFtLWJpbiBy w6lwb25kIMOgIGNlIHByb2Jsw6htZSBlbiBwZXJtZXR0YW50IGRlDQogIGNyw6llciDDoCBsYSB2 b2zDqWUgZGVzIHBhcXVldHMgYmluYWlyZXMsIHF1aSBzZXJvbnQgcsOpdXRpbGlzw6lzIMOgDQog IGzigJlhdmVuaXIgZXQgcGV1dmVudCDDqnRyZSBwYXJ0YWfDqXMgYXZlYyBk4oCZYXV0cmVzIHV0 aWxpc2F0ZXVycy4gTOKAmWV4cG9zw6kNCiAgbW9udHJlIHNvbiB1dGlsaXNhdGlvbiBldCBjb21t ZW50IGlsIGZvbmN0aW9ubmUuDQoNCiAgTGVzIHByw6lzZW50YXRpb25zIHNlcm9udCBzdWl2aWVz IHBhciBkZXMgZGlzY3Vzc2lvbnMgbGlicmVzLiBMZXMNCiAgcGl6emFzIHNlcm9udCBvZmZlcnRl cyBwYXIgbGEgZm9uZGF0aW9uIE9DYW1sICEgOnBpenphOg0KDQoNCltM4oCZaW5zY3JpcHRpb24g ZXN0IG9ibGlnYXRvaXJlXQ0KPGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vZnItRlIvb2NhbWwtcGFy aXMvZXZlbnRzLzI4ODUyMDEwOC8+DQoNCltnYWzDqG5lIGR1IE9VUFNdIDxodHRwczovL2dhbGVu ZS5pcmlsbC5vcmcvZ3JvdXAvb3Vwcy8+DQoNCltzaXRlIGR1IE9VUFNdIDxodHRwczovL291cHMu ZnJhbWEuaW8vPg0KDQoNCnN0cnltb25hcyB2MjogbGlicmFyeSBmb3IgaGlnaGVzdC1wZXJmb3Jt YW5jZSBzdHJlYW0gcHJvY2Vzc2luZw0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToN CiAgPGh0dHBzOi8vc3ltcGEuaW5yaWEuZnIvc3ltcGEvYXJjL2NhbWwtbGlzdC8yMDIyLTA5L21z ZzAwMDA0Lmh0bWw+DQoNCg0KT2xlZyBhbm5vdW5jZWQNCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogIEFzIGhhcyBqdXN0IGJlZW4gYW5ub3VuY2VkIGF0IHRo ZSBPQ0FNTCAyMDIyIHdvcmtzaG9wLCB0aGUgbmV3LA0KICByZS13cml0dGVuIHZlcnNpb24gb2Yg c3RyeW1vbmFzIGxpYnJhcnkgaXMgbm93IGF2YWlsYWJsZSBhdA0KDQogIDxodHRwczovL3N0cnlt b25hcy5naXRodWIuaW8+DQoNCiAgU3RyeW1vbmFzIGlzIHRoZSBzdHJlYW0gcHJvY2Vzc2luZyBs aWJyYXJ5IHRoYXQgYWNoaWV2ZXMgdGhlIGhpZ2hlc3QNCiAgcGVyZm9ybWFuY2Ugb2YgZXhpc3Rp bmcgT0NhbWwgc3RyZWFtaW5nIGxpYnJhcmllcywgYXR0YWluaW5nIHRoZSBzcGVlZA0KICBhbmQg bWVtb3J5IGVmZmljaWVuY3kgb2YgaGFuZC13cml0dGVuIHN0YXRlIG1hY2hpbmVzLiBJdCBzdXBw b3J0cw0KICBmaW5pdGUgYW5kIGluZmluaXRlIHN0cmVhbXMgd2l0aCB0aGUgZmFtaWxpYXIgZGVj bGFyYXRpdmUgaW50ZXJmYWNlLA0KICBvZiBhbnkgY29tYmluYXRpb24gb2YgbWFwLCBmaWx0ZXIs IHRha2Uod2hpbGUpLCBkcm9wKHdoaWxlKSwgemlwLA0KICBmbGF0bWFwIGNvbWJpbmF0b3JzIGFu ZCB0dXBsaW5nLiBFeHBlcmllbmNlZCB1c2VycyBtYXkgdXNlIHRoZQ0KICBsb3dlci1sZXZlbCBp bnRlcmZhY2Ugb2Ygc3RhdGVmdWwgc3RyZWFtcyBhbmQgaW1wbGVtZW50IGFjY3VtdWxhdGluZw0K ICBtYXBzLCBjb21wcmVzc2lvbiBhbmQgd2luZG93aW5nLiBUaGUgbGlicmFyeSBpcyBiYXNlZCBv biBhc3N1cmVkIGNvZGUNCiAgZ2VuZXJhdGlvbiAoYXQgcHJlc2VudCwgb2YgT0NhbWwgYW5kIEMp IGFuZCBndWFyYW50ZWVzIGluIGFsbCBjYXNlcw0KICBjb21wbGV0ZSBmdXNpb24uDQoNCiAgQ29t cGFyZWQgd2l0aCB0aGUgb3JpZ2luYWwgc3RyeW1vbmFzIChQT1BMIDIwMTcpLCB0aGUgbmV3IHZl cnNpb24gaXMNCiAgY29tcGxldGVseSByZS13cml0dGVuIGFuZDoNCiAg4oCiIEdlbmVyYXRlcyBu b3Qgb25seSBPQ2FtbCBidXQgYWxzbyBDICh3aGljaCBuZWVkcyBubyBPQ2FtbCBydW4tdGltZQ0K ICAgIGFuZCB2ZWN0b3JpemFibGUpDQogIOKAoiBIYXMgQ29yZSArIGNvZGUtZ2VuZXJhdGlvbiBC YWNrZW5kcyBhcmNoaXRlY3R1cmU6IE1ldGFPQ2FtbCBpcw0KICAgIG5lZWRlZCBvbmx5IGZvciB0 aGUgT0NhbWwgYmFja2VuZCBhbmQgYmVuY2htYXJrczsgdGhlIENvcmUgYW5kIHRoZSBDDQogICAg Z2VuZXJhdGlvbiBiYWNrZW5kIGFyZSBwdXJlIE9DYW1sLiBNb3JlIGJhY2tlbmRzIGNhbiBiZSBl YXNpbHkNCiAgICBhZGRlZC4NCiAg4oCiIFRoZSBjb21wbGV0ZSBmdXNpb24gaXMgbm93IGFjaGll dmVkIGluIGFsbCBjYXNlcw0KICDigKIgU3VwcG9ydHMgYm90aCB1c2VyLWZyaWVuZGx5IGFuZCBm YW1pbGlhciBkZWNsYXJhdGl2ZSBjb21iaW5hdG9ycywNCiAgICBhbmQgbG93LWxldmVsIGNvcmUg b2Ygc3RhZmVmdWwgc3RyZWFtcyAod2hpY2ggY2FuIGJlIHVzZWQgdG9nZXRoZXIpDQogIOKAoiBD b3JlIHN0cmVhbXMgc3VwcG9ydCBzdHJlYW1zIG92ZXIgdHVwbGVzLCByZWNvcmRzIGFuZCBldmVu IGFic3RyYWN0DQogICAgZGF0YSB0eXBlcw0KICDigKIgRnVzaW9uIGlzIG5vdyBwZXJmb3JtZWQg YXMgbm9ybWFsaXphdGlvbi1ieS1ldmFsdWF0aW9uDQoNCiAgVGhlIHBhcGVyIDxodHRwczovL3N0 cnltb25hcy5naXRodWIuaW8vZG9jcy9vY2FtbC0yMi5wZGY+IGFuZCB0aGUNCiAgICAgICAgICBP Q0FNTCAyMDIyIHRhbGsgKHNvb24gdG8gYmUgYXZhaWxhYmxlIG9uIFlvdVR1YmXigJlzIFNJR1BM QU4NCiAgICAgICAgICBjaGFubmVsLCBhbW9uZyBhbGwgb3RoZXIgdGFsa3Mgb2YgdGhlIElDRlAg MjAyMiBldmVudCkgZ2l2ZQ0KICAgICAgICAgIG1vcmUgZGV0YWlscy4gVGhlIGdpdGh1YiByZXBv IGNvbnRhaW5zIHRoZSBjb21wbGV0ZSBjb2RlIG9mDQogICAgICAgICAgdGhlIGxpYnJhcnksIGV4 YW1wbGVzIGFuZCBhbGwgYmVuY2htYXJrcy4NCg0KDQpPQ2FtbCBDb21tdW5pdHkgQ29kZSBvZiBD b25kdWN0DQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZl Og0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L29jYW1sLWNvbW11bml0eS1jb2RlLW9m LWNvbmR1Y3QvMTA0OTQvMT4NCg0KDQpTdWRoYSBQYXJpbWFsYSBhbm5vdW5jZWQNCuKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgA0KDQogIEhlbGxvIGFsbCEgT24gYmVoYWxmIG9mIHRoZSBPQ2FtbCBDb0MgY29tbWl0 dGVlLCBJ4oCZZCBsaWtlIHRvIHByZXNlbnQNCiAgdGhlIHByb3Bvc2VkIENvZGUgb2YgQ29uZHVj dCBmb3IgdGhlIE9DYW1sIGNvbW11bml0eS4gV2UgaG9wZSB0aGlzIGlzDQogIGEgc3RlcCB0b3dh cmRzIGVuc3VyaW5nIGEgZnJpZW5kbHkgYW5kIGluY2x1c2l2ZSBjb21tdW5pdHkgZm9yDQogIGV2 ZXJ5b25lLg0KDQogIFRoZSBDb0MgdGV4dCwgYmFzZWQgb24gQ29udHJpYnV0b3IgQ292ZW5hbnQg Y2FuIGJlIGZvdW5kIFtoZXJlXS4NCg0KDQpbaGVyZV0NCjxodHRwczovL2dpc3QuZ2l0aHViLmNv bS9TdWRoYTI0Ny9lZDA0OWRlMGZkOTFkMjZmNDM3NzdmYjExYWMwNDUzZj4NCg0KVGhlIGNvbW1p dHRlZQ0K4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWMDQoNCiAgVGhlIGN1 cnJlbnQgY29tbWl0dGVlIGNvbnNpc3RzIG9mIHRoZSBmb2xsb3dpbmcgcGVvcGxlOg0KDQogIOKA oiBMb3VpcyBSb2Now6kgKCBAS2hhZHksIEFocmVmcykNCiAg4oCiIE1hcmNlbGxvIFNlcmkgKCBA bXNlcmksIFVuaXZlcnNpdHkgb2YgR3JvbmluZ2VuKQ0KICDigKIgUmFqYSBCb3VqYmVsICggQHJq Ym91LCBPQ2FtbFBybykNCiAg4oCiIFNpbW9uIENydWFuZXMgKCBAYy1jdWJlLCBJbWFuZGFyYSBT b2Z0d2FyZSkNCiAg4oCiIFNvbmphIEhlaW56ZSAoQHBpdGFnLCBUYXJpZGVzKQ0KDQoNClNjb3Bl DQrilYzilYzilYzilYzilYwNCg0KICBUaGUgc3BhY2VzIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhl IGNvbW1pdHRlZSBhdCB0aGUgbW9tZW50IGFyZToNCg0KICDigKIgZGlzY3Vzcy5vY2FtbC5vcmcN CiAg4oCiIE9DYW1sIG1haWxpbmcgbGlzdA0KICDigKIgT0NhbWwgSVJDDQogIOKAoiBPQ2FtbCBH aXRIdWIgb3JnYW5pc2F0aW9uDQoNCg0KVGltZWxpbmUNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jA0KDQogIFRoZSBjb21taXR0ZWUgaGFzIGRpc2N1c3NlZCBvbiB0aGUgQ29DIHRleHQuIFdl4oCZ ZCBiZSBoYXBweSB0byBoZWFyIGFueQ0KICBmZWVkYmFjayBmcm9tIHRoZSBjb21tdW5pdHkuIElm IGFsbCBnb2VzIHdlbGwsIHRoZSBDb0Mgd2lsbCBiZQ0KICBlbmZvcmNlZCByb3VnaGx5IGEgbW9u dGggZnJvbSBub3cuIFdl4oCZbGwga2VlcCB0aGlzIHRocmVhZCB1cGRhdGVkIHdpdGgNCiAgYW55 IGRldmVsb3BtZW50cy4NCg0KDQpSb2xlIG9mIE9DYW1sIFNvZnR3YXJlIGZvdW5kYXRpb24NCuKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIFdoaWxlIHRoaXMg ZWZmb3J0IGlzIGVuZG9yc2VkIGJ5IHRoZSBPQ2FtbCBTb2Z0d2FyZSBGb3VuZGF0aW9uLA0KICB0 aGV54oCZcmUgbm90IGRpcmVjdGx5IGludm9sdmVkIHdpdGggdGhlIGNvbW1pdHRlZeKAmXMgb3Bl cmF0aW9uIG9yDQogIGRlY2lzaW9ucyBieSB0aGUgY29tbWl0dGVlIG9uIHRoZSBlbmZvcmNlbWVu dCwgYW5kIHRoaXMgd291bGQgcmVtYWluDQogIHRoZSBzYW1lIGluIGZ1dHVyZS4NCg0KDQpPbmJv YXJkaW5nIG1vcmUgcHJvamVjdHMNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIFRoZSBjb21taXR0ZWUg aXMgb3BlbiB0byBvbmJvYXJkaW5nIG1vcmUgcHJvamVjdHMgdW5kZXIgdGhlIHVtYnJlbGxhDQog IG9mIHRoaXMgQ29DLg0KDQogIFdlIHNlZSB0d28gd2F5cyB0byBnbyBmb3J3YXJkOg0KDQogICgx KSBQcm9qZWN0cyBhZG9wdCB0aGUgQ29DIHRleHQgYW5kIHRoZSBwcm9qZWN0IG1haW50YWluZXJz IGRvIHRoZQ0KICBtb2RlcmF0aW9uIHdvcmsgdGhlbXNlbHZlcy4NCg0KICAoMikgUHJvamVjdHMg YWRvcHQgdGhlIENvQyB0ZXh0IGFuZCB0aGUgY29tbWl0dGVlIHdvdWxkIGFsc28gYWN0IGFzDQog IGFyYml0cmVycyBmb3IgdmlvbGF0aW9uIHJlcG9ydHMgc3VibWl0dGVkIHRvIHRoZW0uDQoNCiAg SWRlYWxseSB3ZSBjb3VsZCBkbyBhIGNvbWJpbmF0aW9uIG9mIGJvdGguIFNtYWxsZXIgcHJvamVj dHMgY291bGQNCiAgcG9zc2libHkgYWRvcHQgdGhlIGxhdHRlciBhbmQgdGFrZSBoZWxwIGZyb20g dGhlIGNvbW1pdHRlZSBmb3INCiAgZW5mb3JjZW1lbnQsIHdoaWxlIGJpZ2dlciBwcm9qZWN0cyB3 aXRoIGNhcGFjaXR5IHRvIGRvIHRoZSBtb2RlcmF0aW9uDQogIHRoZW1zZWx2ZXMgY2FuIGFkb3B0 IHRoZSBDb0MgdGV4dC4gVGhlIGRlY2lzaW9uIHRvIGFjY2VwdCBwcm9qZWN0cw0KICBpbnRvIHRo ZSB1bWJyZWxsYSBsaWVzIHdpdGggdGhlIGNvbW1pdHRlZS4NCg0KICBXZeKAmXJlIGtlZW4gdG8g aGVhciBhbnkgdGhvdWdodHMgb3Igc3VnZ2VzdGlvbnMgZm9yIGltcHJvdmVtZW50LiBJZg0KICB5 b3XigJlyZSBpbnRlcmVzdGVkIHRvIGFkb3B0IHRoaXMgQ29DIGZvciB5b3VyIE9DYW1sIHByb2pl Y3QsIHBsZWFzZQ0KICBkb27igJl0IGhlc2l0YXRlIHRvIHBvc3QgaGVyZSBvciBjb250YWN0IG1l ICh3cml0ZSB0byBtZSBhdCBzdWRoYXJnMjQ3DQogIFthdF0gZ21haWwgW2RvdF0gY29tIG9yIERN IGhlcmUpIG9yIGFueSBvZiB0aGUgY29tbWl0dGVlIG1lbWJlcnMgKERNDQogIGhlcmUpLg0KDQoN ClVzZSBPQ2FtbCB0byBpbnRlcmFjdCB3aXRoIE5lb3ZpbQ0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5v Y2FtbC5vcmcvdC93aGF0LXdpbGwtYmUtcmVxdWlyZWQtdG8tdHJhbnNwaWxlLW9jYW1sLXRvLWx1 YS8xMDQ5My8xMD4NCg0KDQpEZWVwIGluIHRoaXMgdGhyZWFkLCBEYW5pIERpY2tzdGVpbiBzYWlk DQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIANCg0KICBGb3IgdGhlIE5lb3ZpbS1zcGVjaWZpYyB1c2UgY2FzZSwgeW91IG1heSB3 YW50IHRvIHRha2UgYSBsb29rIGF0DQogIFt2Y2FtbF0sIHdoaWNoIGxldHMgeW91IHdyaXRlIE9D YW1sIHByb2dyYW1zIHRoYXQgaW50ZXJhY3Qgd2l0aCBOZW92aW0NCiAgb3ZlciBtc2dwYWNrIFJQ Qy4gRG8gbm90ZSB0aG91Z2ggdGhhdCB3aGlsZSB0aGUgbGlicmFyeSBhcy1pcyBzaG91bGQNCiAg cHJvdmlkZSB5b3Ugd2l0aCB0aGUgZnVuY3Rpb25hbGl0eSB5b3UgbmVlZCwgaXQgaXMgdW5kZXIg YWN0aXZlDQogIGRldmVsb3BtZW50IHNvIHRoZSBBUEkgbWF5IGNoYW5nZSAoaW1wcm92ZSkgaW4g c2lnbmlmaWNhbnQgd2F5cw0KICBiZXR3ZWVuIHJlbGVhc2VzLg0KDQoNClt2Y2FtbF0gPGh0dHBz Oi8vb3BhbS5vY2FtbC5vcmcvcGFja2FnZXMvdmNhbWwvPg0KDQoNCldoYXQgd2lsbCBiZSByZXF1 aXJlZCB0byB0cmFuc3BpbGUgT0NhbWwgdG8gTHVhPw0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5vcmcvdC93aGF0 LXdpbGwtYmUtcmVxdWlyZWQtdG8tdHJhbnNwaWxlLW9jYW1sLXRvLWx1YS8xMDQ5My8xND4NCg0K DQpEZWVwIGluIHRoaXMgdGhyZWFkLCBEYXZpZCBKZWZmcmV5IHNhaWQNCuKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogIERvZXNu 4oCZdCBuZWNlc3NhcmlseSBoZWxwIG11Y2gsIGJ1dCBhIHdoaWxlIGFnbyBJIHdyb3RlIGENCiAg cHJvb2Ytb2YtY29uY2VwdCBNTC1zdHlsZSBsYW5ndWFnZSAodXNpbmcgT0NhbWwsIG9mIGNvdXJz ZSkgdGhhdA0KICB0cmFuc3BpbGVkIHRvIEx1YSAtIDxodHRwczovL2dpdGh1Yi5jb20vbWVybGUt bGFuZy9sdW1sPiAoSSB3YXMgbW9zdGx5DQogIHRoaW5raW5nIGFib3V0IHRhcmdldGluZyBnYW1l IGVuZ2luZXPigKYgSSBkaWQgZW5vdWdoIHRvIGltcGxlbWVudA0KICBUZXRyaXMgYW5kIHRoZW4g Z2F2ZSB1cCBvbiBpdCkuDQoNCiAgVGhlIG1vZHVsZSB0aGF0IGVtaXRzIEx1YSBzb3VyY2UgY29k ZSB3YXMgcHJldHR5IHNpbXBsZToNCiAgPGh0dHBzOi8vZ2l0aHViLmNvbS9tZXJsZS1sYW5nL2x1 bWwvYmxvYi9tYXN0ZXIvbGliL2NvbXBpbGUubWw+IC0gSQ0KICBkaWQgdGhpbmtpbmcgYWJvdXQg dHJ5aW5nIHRvIHRhcmdldCBieXRlIGNvZGUgYnV0IGl0IHNlZW1lZCB0cmlja3kgZHVlDQogIHRv IGRpZmZlcmVudCBMdWEgdmVyc2lvbnMsIEkgdGhpbmsuDQoNCg0KT0JhemwgVG9vbHN1aXRlIC0g dG9vbHMgZm9yIGJ1aWxkaW5nIE9DYW1sIHdpdGggQmF6ZWwNCuKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxodHRwczovL2Rpc2N1 c3Mub2NhbWwub3JnL3Qvb2JhemwtdG9vbHN1aXRlLXRvb2xzLWZvci1idWlsZGluZy1vY2FtbC13 aXRoLWJhemVsLzEwMDIxLzEwPg0KDQoNCkNvbnRpbnVpbmcgdGhpcyB0aHJlYWQsIGphbWVzIHdv b2R5YXR0IGFza2VkIGFuZCBHcmVnZyBSZXlub2xkcyByZXBsaWVkDQrilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICAgICAgICBBbnkgY2hhbmNlIHdlIG1pZ2h0 IHNlZSBhIGBjb25mLWJhemVsJyBwYWNrYWdlIGFkZGVkIHRvDQogICAgICAgIE9QQU0gc28gYSBw YWNrYWdlIGNhbiBkZXBlbmQgb24gYSBjb21wYXRpYmxlIHZlcnNpb24gb2YNCiAgICAgICAgQmF6 ZWwgYmVpbmcgaW5zdGFsbGVkIG9uIHRoZSBob3N0Pw0KDQogIEnigJl2ZSBwdXQgYSBsb3Qgb2Yg d29yayBpbnRvIHNlYW1sZXNzIE9QQU0gaW50ZWdyYXRpb24sIGJ1dCBvbmx5IGluIG9uZQ0KICBk aXJlY3Rpb246IG1ha2UgaXQgZWFzeSB0byB1c2UgT1BBTSByZXNvdXJjZXMgaW4gYSBCYXplbCBi dWlsZA0KICBwcm9ncmFtLiBJIGhhdmUgbm90IHB1dCBtdWNoIHRob3VnaHQgaW50byBpbnRlZ3Jh dGluZyBCYXplbCBpdHNlbGYNCiAgaW50byB0aGUgT1BBTSBlY29zeXN0ZW0uIEZvciBleGFtcGxl IHB1Ymxpc2hpbmcgYSBCYXplbC1lbmFibGVkDQogIHBhY2thZ2UgdG8gT1BBTS4gSXQgbG9va3Mg bGlrZSB3cml0aW5nIHN1Y2ggYSBjb25mLWJhemVsIHBhY2thZ2Ugd291bGQNCiAgYmUgcHJldHR5 IGVhc3ksIGJ1dCBJ4oCZbSBub3Qgc3VyZSBpdCB3b3VsZCBkbyB1cyBtdWNoIGdvb2QgYXQgdGhl DQogIG1vbWVudC4gV2hhdCBzcGVjaWZpYyB1c2UgY2FzZXMgZG8geW91IGhhdmUgaW4gbWluZD8N Cg0KICBUaGVyZSBhcmUgdHdvIHdheXMgdG8gaW50ZWdyYXRlIEJhemVsIGFuZCBPUEFNLiBPbmUg aXMgdG8NCiAgYXV0b21hdGljYWxseSBnZW5lcmF0ZSBCVUlMRC5iYXplbCBmaWxlcyBmb3IgT1BB TSBwYWNrYWdlcy4gVGhlbiBCYXplbA0KICB3b3VsZCBidWlsZCBldmVyeXRoaW5nLCBlbGltaW5h dGluZyB0aGUgbmVlZCBmb3IgdGhlIE9QQU0gZW5naW5lLiBUaGlzDQogIGlzIHRoZSBzdHJhdGVn eSBmb2xsb3dlZCBieSBydXN0ICh0b29sOiBjYXJnb19yYXplLCBldmlkZW50bHkgbm93DQogIHN1 cHBsYW50ZWQgYnkgY3JhdGVfdW5pdmVyc2UpIGFuZCBnbyAodG9vbDogZ2F6ZWxsZSkuIFVuZm9y dHVuYXRlbHkgYQ0KICBjb21wbGV0ZSBzb2x1dGlvbiBhbG9uZyB0aGVzZSBsaW5lcyBpcyBub3Qg ZmVhc2libGUgZm9yIE9DYW1sLCBzaW5jZQ0KICBzb3VyY2UgZmlsZXMgZG8gbm90IGNhcnJ5IGVu b3VnaCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGluZmVyZW5jZSB0byBhDQogIGJ1aWxkIHByb2dy YW0sIGFuZCBPUEFNIHBhY2thZ2VzIG1heSB1c2UgYSB2YXJpZXR5IG9mIGJ1aWxkIGxhbmd1YWdl cw0KICAoRHVuZSwgTWFrZWZpbGVzLCBPTWFrZSwgZXRjLikuIE9uIHRoZSBvdGhlciBoYW5kLCBE dW5lIHNlZW1zIHRvIGJlDQogIHRoZSBtb3N0IHdpZGVseSB1c2VkIGJ1aWxkIGVuZ2luZSBieSBh IGNvbnNpZGVyYWJsZSBtYXJnaW4sIGFuZCB0aGUNCiAgRHVuZSBsYW5ndWFnZSBpcyBlYXN5IHRv IHBhcnNlIChpZiBub3Qgc28gZWFzeSB0byBpbnRlcnByZXQpLCBzbyBJ4oCZbQ0KICB3b3JraW5n IG9uIGEgY29udmVyc2lvbiB0b29sIHRoYXQgYXV0b21hdGljYWxseSBjb252ZXJ0cyBEdW5lIGZp bGVzIHRvDQogIEJVSUxELmJhemVsIGZpbGVzLg0KDQogIFRoZSBvdGhlciBzdHJhdGVneSBpcyB0 byByZWx5IG9uIE9QQU0gdG8gYnVpbGQgZGVwZW5kZW5jaWVzIGFuZCB0aGVuDQogIOKAnGltcG9y dOKAnSB0aGUgYnVpbHQgYXJ0aWZhY3RzIGludG8gQmF6ZWwuIE9CYXpsIGRlZmluZXMgYW4NCiAg YG9wYW1faW1wb3J0JyBydWxlIGZvciB0aGlzIHB1cnBvc2UsIGFuZCBhIHRvb2wgdGhhdCBiYXpl bGl6ZXMgT1BBTQ0KICBzd2l0Y2hlcywgZ2VuZXJhdGluZyBhbiBPQmF6bCDigJljb3N3aXRjaOKA mS4gVGhlIG1hcHBpbmcgZnJvbSBPUEFNDQogIHBhY2thZ2UgbmFtZSB0byBCYXplbCBsYWJlbCBp cyBzdHJhaWdodGZvcndhcmQ6IOKAmXlvanNvbuKAmSB0bw0KICBgQHlvanNvbi8vbGliL3lvanNv bicsIOKAmWx3dC51bml44oCZIHRvIGBAbHd0Ly9saWIvdW5peCcsIGV0Yy4NCg0KICBTbyBpbiBw cmFjdGljZSBPQmF6bCBzdXBwb3J0cyBhIGh5YnJpZCBhcHByb2FjaC4gVXNlIEJhemVsIHRvIGJ1 aWxkDQogIHlvdXIgY29kZSwgYnV0IGltcG9ydCBwcmUtYnVpbHQgT1BBTSBkZXBlbmRlbmNpZXMu IFRvIGRvIHRoYXQgeW91IHJ1bg0KICB0aGUgb3BhbSBjb252ZXJzaW9uIHRvb2wgdG8gZ2VuZXJh dGUgYSDigJljb3N3aXRjaOKAmSB3aGljaCBkZWZpbmVzIGENCiAgbG9jYWwgQmF6ZWwgcmVwbyBm b3IgZWFjaCBPUEFNIHBhY2thZ2UsIGFuZCBjb25maWd1cmUgeW91cg0KICBXT1JLU1BBQ0UuYmF6 ZWwgdG8gaW1wb3J0IHRob3NlIHJlcG9zLiBXcml0ZSB5b3VyIEJVSUxELmJhemVsIGZpbGVzDQog IHVzaW5nIG9wYW0gbGFiZWxzIGFzIGFib3ZlLiBJZiB5b3VyIHByb2plY3QgYWxyZWFkeSB1c2Vz IGR1bmUsIHlvdSBjYW4NCiAgcnVuIHRoZSBkdW5lIGNvbnZlcnNpb24gdG9vbCB0byBnZW5lcmF0 ZSB5b3VyIEJVSUxELmJhemVsIGZpbGVzLCB3aGljaA0KICBpbiBzb21lIGNhc2VzIHdpbGwgbmVl ZCBzb21lIHR3ZWFraW5nLCBzaW5jZSBzb21lIER1bmUgc3RhbnphcyBsYWNrDQogIHN1ZmZpY2ll bnQgaW5mb3JtYXRpb24gZm9yIGNvbnZlcnNpb24sIGFuZCBpbiBvdGhlcnMgdGhlIGNvbnZlcnNp b24NCiAgY29kZSBuZWVkcyBjb21wbGljYXRlZCBsb2dpYyB0aGF0IEkgaGF2ZW7igJl0IGdvdHRl biBhcm91bmQgdG8gd3JpdGluZywNCiAgb3IgdGhhdCBkb2VzIG5vdCBzZWVtIHdvcnRoIHRoZSBi b3RoZXIuDQoNCiAgVGhlIE9QQU0g4oCcaW1wb3J04oCdIGNvbnZlcnNpb24gdG9vbCBpcyBmYWly bHkgc3RhYmxlLiBJdCBjb252ZXJ0cyB0aGUNCiAgTUVUQSBmaWxlcyBpbiBPUEFNIGludG8gQlVJ TEQuYmF6ZWwgZmlsZXMsIHdoaWNoIGluY2x1ZGUgZGVwZW5kZW5jeQ0KICBpbmZvcm1hdGlvbi4g U28gd2hlbiB5b3UgZGVwZW5kIG9uIGFuIGBvcGFtX2ltcG9ydCcgdGFyZ2V0IHlvdSBnZXQgaXRz DQogIGVudGlyZSBkZXBlbmRlbmN5IGdyYXBoLg0KDQogIFRoZSBEdW5lIG1pZ3JhdGlvbiB0b29s IGlzIGFub3RoZXIgbWF0dGVyLiBSZXZlcnNlLWVuZ2luZWVyaW5nIHRoZQ0KICBEdW5lIGxhbmd1 YWdlIGlzIGEgbm9uLXRyaXZpYWwgdGFzaywgbGVtbWUgdGVsbCB5YS4gVGhlIGdvb2QgbmV3cyBp cw0KICB0aGF0IGFmdGVyIHdoYXQgc2VlbXMgbGlrZSBlb25zIG9mIHdvcmsgdGhlIGVuZCBpcyBp biBzaWdodC4gSeKAmXZlIGJlZW4NCiAgcnVubmluZyBpdCBhZ2FpbnN0IGEgc2VtaS1yYW5kb20g c2V0IG9mIHByb2plY3RzIChqc19vZl9vY2FtbCwNCiAgb2NhbWwtcHJvdG9jLCBzb21lIHBweCBs aWJzLCBldGMuKSBhbmQgd29ya2luZyB0aHJvdWdoIHRoZSBxdWlya3MNCiAgaW5jaC1ieS1pbmNo LiBSdWxlIHN0YW56YXMgYXJlIGEgcmVhbCBQSVRBLCBjYW4gSSBqdXN0IHNheSB0aGF0PyBJbg0K ICBhbnkgY2FzZSwgaXQgbG9va3MgbGlrZSBJIHNob3VsZCBoYXZlIGFuIGFscGhhIHJlbGVhc2Ug d2l0aA0KICBkb2N1bWVudGF0aW9uIGFuZCBzb21lIGNhc2Ugc3R1ZGllcyB3aXRoaW4gYSB3ZWVr IG9yIHNvLiBJIGhvcGUuIEF0DQogIHRoZSB2ZXJ5IGxlYXN0IEnigJlsbCBjb252ZXJ0IG15IGRl diBjb25maWd1cmF0aW9uIGludG8gc29tZXRoaW5nIHVzYWJsZQ0KICBieSBvdGhlcnMgc28geW91 IGNhbiBmb2xsb3cgYWxvbmcgaWYgeW91IHdhbnQuDQoNCg0KT2xkIENXTg0K4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQDQoNCiAgSWYgeW91IGhhcHBlbiB0byBtaXNzIGEgQ1dOLCB5b3UgY2FuIFtzZW5k IG1lIGEgbWVzc2FnZV0gYW5kIEnigJlsbCBtYWlsDQogIGl0IHRvIHlvdSwgb3IgZ28gdGFrZSBh IGxvb2sgYXQgW3RoZSBhcmNoaXZlXSBvciB0aGUgW1JTUyBmZWVkIG9mIHRoZQ0KICBhcmNoaXZl c10uDQoNCiAgSWYgeW91IGFsc28gd2lzaCB0byByZWNlaXZlIGl0IGV2ZXJ5IHdlZWsgYnkgbWFp bCwgeW91IG1heSBzdWJzY3JpYmUNCiAgW29ubGluZV0uDQoNCiAgW0FsYW4gU2NobWl0dF0NCg0K DQpbc2VuZCBtZSBhIG1lc3NhZ2VdIDxtYWlsdG86YWxhbi5zY2htaXR0QHBvbHl0ZWNobmlxdWUu b3JnPg0KDQpbdGhlIGFyY2hpdmVdIDxodHRwczovL2FsYW4ucGV0aXRlcG9tbWUubmV0L2N3bi8+ DQoNCltSU1MgZmVlZCBvZiB0aGUgYXJjaGl2ZXNdIDxodHRwczovL2FsYW4ucGV0aXRlcG9tbWUu bmV0L2N3bi9jd24ucnNzPg0KDQpbb25saW5lXSA8aHR0cDovL2xpc3RzLmlkeWxsLm9yZy9saXN0 aW5mby9jYW1sLW5ld3Mtd2Vla2x5Lz4NCg0KW0FsYW4gU2NobWl0dF0gPGh0dHBzOi8vYWxhbi5w ZXRpdGVwb21tZS5uZXQvPg0KDQo= --=-=-= 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 September 13 to 20, 2= 022.

Sandmark Nightly Service now reports Instructions Retired alon= g with Time

Shakthi Kannan announced

Sandmark Nightly is a service for the OCaml compiler developers that helps = benchmark the development branches of the compiler on the large set of Sandmark benchmarks on tuned machines and repo= rts the results in an interactive UI. Currently, Sandmark nightly reported many metrics including running time. B= ut running time is a notoriously noisy metric on modern architectures due to the effects of modern OS, arch and mi= cro-arch optimisations. There could be swings of 50% in either directions when the directory in which the program = is run changes.

While we run Sandmark benchmarks on tuned machines, we still see impact of = noise on the real time measurements. To this end, we introduce a new metric into Sandmark nightly that in addition = to real time, would help interpret the results accounting for the noise. We now report =E2=80=9Cinstructions retir= ed=E2=80=9D for Sandmark runs. Instructions retired report the number of instructions executed by the program during its run an= d hence is shielded from the noise that affects real time measurements. Of course, the same number of instructions = may be discharged at different rates by the processor due to instruction-level parallelism and hence, the instructi= ons discharged metric should be used in conjunction with real time measurements. For example, if a new compiler fea= ture adds 2 instructions to the prolog of the function, then the instructions retired metric should inform you how ma= ny new instructions are actually executed on top of the baseline.

The instructions retired metric is collected from perf command= . We also have other useful metrics from perf such as page faults, branches, branch misses, cache misses at various levels of = the hierarchy, etc. We will add graphs to report these going forward. Enjoy the new feature, and as ever, report issu= es and bugs to S= andmark Issues.

The web service is available at ht= tps://sandmark.tarides.com and you can select the Perfstat Output= radio button on the left panel as shown below.

3D"5f9d3d8d87=

After selecting the variants and a baseline for comparison, you can view th= e normalised instructions per cycle change as illustrated below:

3D"1baf673b12=

You can also request for your development branches to be added to the Sandm= ark Nightly Service at the sandmark= -nightly-config repository for the nightly runs.

References

  1. Run perfstat with Sandmark nightly service. Sandmark PR #394
  2. Add webpage with perfstat output from Sandmark. Sandmark-nightly PR #81
  3. perfstat.ipynb. Sandmark perfstat Jupyter notebook=

Outreachy December 2022

Patrick Ferris said

Just a reminder the deadline for mentor signup is in 9 days, the same day as https://discuss.ocaml.org/t/outreachy-sum= mer-22-closing-commemoration-session-on-23rd-sept/10450 :camel:

Unicode 15.0.0 update for Uucd, Uucp, Uunf and Uuseg

Daniel B=C3=BCnzli announced

Unicode 15.0.0 was released on the 13th of september. It adds 4489 new char= acters to the standard.

Given the increasing contributions from the South Asian subcontinent to OCa= ml we are glad this includes support for the 42 (sic) characters of the Nag Mundari script. For information about th= e other additions, see the announcement page.

Accordingly the libraries mentioned at the end of this message had to be up= dated. Consult the individual release notes for details. Both Uucd and Uucp are incompatible releases sinces new = script and block enumerants had to be added.

Note that starting from Unicode 16.0.0 =E2=80=93 that is in a year =E2=80= =93 these libraries will be changed to use the UTF decoders of the standard library rather than rely on Uutf. They will thus only be av= ailable for OCaml >=3D 4.14.

The OCaml tips of the minimal Unicode introduction, which you should read if Unico= de still puzzles you, have been updated to mention the new standard library UTF decoders.

Also, the ucharinfo tool distributed with uucp[^1= ] can now also lookup characters by matching substrings in their Unicode name or name aliases.

Best,

Daniel

A big thanks for funding from the OCaml So= ftware Foundation and from my faithful donators.

[^1]: It’s a depopt you’ll need opam install cmdliner uut= f uunf uucp to install it.

OUPS meetup september 2022 (french only)

zapashcanon announced

(this is in french only as the talks will be in french it=E2=80=99s probabl= y not relevant for english speakers)

Le prochain OUPS aura lieu le jeudi 29 septembre 2022. Le rendez-vou= s est fix=C3=A9 =C3=A0 19h au 4 place Jussieu (salle =C3=A0 pr=C3=A9ciser), 75005 Paris.

L= ’inscription est obligatoire pour pouvoir acc=C3=A9der au meetup !

Les expos=C3=A9s seront =C3=A9galement retransmis en ligne sur le gal=C3=A8ne du OUPS.

Toutes les informations sont disponibles sur le site du OUPS.

Programme :

COBOL 101 – =C3=89milien Lemaire

COBOL est un langage tr=C3=A8s ancien et est assez =C3=A9loign=C3=A9 de ceu= x que nous manipulons tous les jours. Malgr=C3=A9 cela il reste l’un des plus utilis=C3=A9s dans le monde.

Durant cette pr=C3=A9sentation je vais donc vous introduire au langage, voi= r comment sont =C3=A9crit les programmes, comment les variables sont-elles d=C3=A9clar=C3=A9es et comment les manipuler. Je v= ais aussi vous pr=C3=A9senter quelques features “int=C3=A9ressantes” du langage, dont certaines sont inattendue= s.

OCaml Multicore – Florian Angeletti

Opam-bin: Opam et paquets binaires – Fabrice Le Fessant

L’utilisation d’un gestionnaire de paquets sources comme Opam n= ’est pas toujours optimale en temps, car l’outil passe beaucoup de temps =C3=A0 recompiler des paquets, d=C3=A8j=C3=A0 compi= l=C3=A9s dans le pass=C3=A9 ou par d’autres utilisateurs. Le plugin Opam-bin r=C3=A9pond =C3=A0 ce probl=C3=A8me en permettant de cr=C3= =A9er =C3=A0 la vol=C3=A9e des paquets binaires, qui seront r=C3=A9utilis= =C3=A9s =C3=A0 l’avenir et peuvent =C3=AAtre partag=C3=A9s avec d’autres utili= sateurs. L’expos=C3=A9 montre son utilisation et comment il fonctionne.

Les pr=C3=A9sentations seront suivies par des discussions libres. Les pizza= s seront offertes par la fondation OCaml ! :pizza:

strymonas v2: library for highest-performance stream processin= g

Oleg announced

As has just been announced at the OCAML 2022 workshop, the new, re-written version of strymonas library is now available at

https://strymonas.github.io

Strymonas is the stream processing library that achieves the highest performance of existing OCaml streaming libraries, attaining the speed and memory efficiency of hand-written state machines. It supports finite and infinite streams with the familiar declarative interface, of any combination of map, filter, take(while), drop(while), zip, flatmap combinators and tupling. Experienced users may use the lower-level interface of stateful streams and implement accumulating maps, compression and windowing. The library is based on assured code generation (at present, of OCaml and C) and guarantees in all cases complete fusion.

Compared with the original strymonas (POPL 2017), the new version is completely re-written and:

  • Generates not only OCaml but also C (which needs no OCaml run-time and vectorizable)
  • Has Core + code-generation Backends architecture: MetaOCaml is needed only for the OCaml backend and benchmarks; the Core and the C generation backend are pure OCaml. More backends can be easily added.
  • The complete fusion is now achieved in all cases
  • Supports both user-friendly and familiar declarative combinators, and low-level core of stafeful streams (which can be used together)
  • Core streams support streams over tuples, records and even abstract data types
  • Fusion is now performed as normalization-by-evaluation

The paper https://s= trymonas.github.io/docs/ocaml-22.pdf and the OCAML 2022 talk (soon to be available on YouTube’s SIGPLAN ch= annel, among all other talks of the ICFP 2022 event) give more details. The github repo contains the complete code of the library, examples and all benchmarks.

OCaml Community Code of Conduct

Sudha Parimala announced

Hello all! On behalf of the OCaml CoC committee, I’d like to present = the proposed Code of Conduct for the OCaml community. We hope this is a step towards ensuring a friendly and inclusive= community for everyone.

The CoC text, based on Contributor Covenant can be found here.

The committee

The current committee consists of the following people:

  • Louis Roch=C3=A9 ( @Khady, Ahrefs)
  • Marcello Seri ( @mseri, University of Groningen)
  • Raja Boujbel ( @rjbou, OCamlPro)
  • Simon Cruanes ( @c-cube, Imandara Software)
  • Sonja Heinze (@pitag, Tarides)

Scope

The spaces within the scope of the committee at the moment are:

  • discuss.ocaml.org
  • OCaml mailing list
  • OCaml IRC
  • OCaml GitHub organisation

Timeline

The committee has discussed on the CoC text. We’d be happy to hear an= y feedback from the community. If all goes well, the CoC will be enforced roughly a month from now. We’ll keep t= his thread updated with any developments.

Role of OCaml Software foundation

While this effort is endorsed by the OCaml Software Foundation, they’= re not directly involved with the committee’s operation or decisions by the committee on the enforcement, and this would = remain the same in future.

Onboarding more projects

The committee is open to onboarding more projects under the umbrella of thi= s CoC.

We see two ways to go forward:

(1) Projects adopt the CoC text and the project maintainers do the moderati= on work themselves.

(2) Projects adopt the CoC text and the committee would also act as arbitre= rs for violation reports submitted to them.

Ideally we could do a combination of both. Smaller projects could possibly = adopt the latter and take help from the committee for enforcement, while bigger projects with capacity to do the mo= deration themselves can adopt the CoC text. The decision to accept projects into the umbrella lies with the commi= ttee.

We’re keen to hear any thoughts or suggestions for improvement. If yo= u’re interested to adopt this CoC for your OCaml project, please don’t hesitate to post here or contact me (writ= e to me at sudharg247 [at] gmail [dot] com or DM here) or any of the committee members (DM here).

Use OCaml to interact with Neovim

Deep in this thread, Dani Dickstein said

For the Neovim-specific use case, you may want to take a look at vcaml, which lets you write OCaml programs that interact with Neovim over msgpack = RPC. Do note though that while the library as-is should provide you with the functionality you need, it is und= er active development so the API may change (improve) in significant ways between releases.

What will be required to transpile OCaml to Lua?

Deep in this thread, David Jeffrey said

Doesn’t necessarily help much, but a while ago I wrote a proof-of-con= cept ML-style language (using OCaml, of course) that transpiled to Lua - htt= ps://github.com/merle-lang/luml (I was mostly thinking about targeting = game engines… I did enough to implement Tetris and then gave up on it).

The module that emits Lua source code was pretty simple: h= ttps://github.com/merle-lang/luml/blob/master/lib/compile.ml - I did th= inking about trying to target byte code but it seemed tricky due to different Lua versions, I think.

OBazl Toolsuite - tools for building OCaml with Bazel

Continuing this thread, james woodyatt asked and Greg= g Reynolds replied

Any chance we might see a conf-bazel package added to OPAM so = a package can depend on a compatible version of Bazel being installed on the host?

I’ve put a lot of work into seamless OPAM integration, but only in on= e direction: make it easy to use OPAM resources in a Bazel build program. I have not put much thought into integrating Baze= l itself into the OPAM ecosystem. For example publishing a Bazel-enabled package to OPAM. It looks like writing = such a conf-bazel package would be pretty easy, but I’m not sure it would do us much good at the moment. What = specific use cases do you have in mind?

There are two ways to integrate Bazel and OPAM. One is to automatically ge= nerate BUILD.bazel files for OPAM packages. Then Bazel would build everything, eliminating the need for the O= PAM engine. This is the strategy followed by rust (tool: cargo_raze, evidently now supplanted by crate_unive= rse) and go (tool: gazelle). Unfortunately a complete solution along these lines is not feasible for OCa= ml, since source files do not carry enough information to support inference to a build program, and OPAM packag= es may use a variety of build languages (Dune, Makefiles, OMake, etc.). On the other hand, Dune seems to be the mo= st widely used build engine by a considerable margin, and the Dune language is easy to parse (if not so easy= to interpret), so I’m working on a conversion tool that automatically converts Dune files to BUILD.bazel files.

The other strategy is to rely on OPAM to build dependencies and then &ldquo= ;import” the built artifacts into Bazel. OBazl defines an opam_import rule for this purpose, and a tool that = bazelizes OPAM switches, generating an OBazl ’coswitch’. The mapping from OPAM package name to Bazel label = is straightforward: ’yojson’ to @yojson//lib/yojson, ’lwt.unix’ to @lwt//lib= /unix, etc.

So in practice OBazl supports a hybrid approach. Use Bazel to build your co= de, but import pre-built OPAM dependencies. To do that you run the opam conversion tool to generate a &rs= quo;coswitch’ which defines a local Bazel repo for each OPAM package, and configure your WORKSPACE.bazel to import those r= epos. Write your BUILD.bazel files using opam labels as above. If your project already uses dune, you can run the d= une conversion tool to generate your BUILD.bazel files, which in some cases will need some tweaking, since some = Dune stanzas lack sufficient information for conversion, and in others the conversion code needs complicated logic t= hat I haven’t gotten around to writing, or that does not seem worth the bother.

The OPAM “import” conversion tool is fairly stable. It converts= the META files in OPAM into BUILD.bazel files, which include dependency information. So when you depend on an opam_import<= /code> target you get its entire dependency graph.

The Dune migration tool is another matter. Reverse-engineering the Dune la= nguage is a non-trivial task, lemme tell ya. The good news is that after what seems like eons of work the end is in= sight. I’ve been running it against a semi-random set of projects (js_of_ocaml, ocaml-protoc, some ppx libs, etc.= ) and working through the quirks inch-by-inch. Rule stanzas are a real PITA, can I just say that? In any c= ase, it looks like I should have an alpha release with documentation and some case studies within a week or so. I ho= pe. At the very least I’ll convert my dev configuration into something usable by others so you can follow along if yo= u want.

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 look at the archive or= the RSS feed of the a= rchives.

If you also wish to receive it every week by mail, you may subscribe online.

--=-=-=--