From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on starla X-Spam-Level: X-Spam-Status: No, score=0.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_BL_SPAMCOP_NET,SPF_HELO_PASS, T_SPF_TEMPERROR autolearn=no autolearn_force=no version=3.4.6 Received: from nue.mailmanlists.eu (nue.mailmanlists.eu [94.130.110.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 9EFCB1F4CC for ; Wed, 11 Dec 2024 10:09:12 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (1024-bit key; unprotected) header.d=ml.ruby-lang.org header.i=@ml.ruby-lang.org header.a=rsa-sha256 header.s=mail header.b=0T4zhtz2; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=Jf/kXFe1; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ml.ruby-lang.org; s=mail; t=1733911748; bh=tH2DRLP0odmB1ZF+2AtOE61UBm/2IBQ8ftXzmWNzdgI=; h=Date:References:To:Reply-To:Subject:List-Id:List-Archive: List-Help:List-Owner:List-Post:List-Subscribe:List-Unsubscribe: From:Cc:From; b=0T4zhtz2GxNKVDwVAOlSPMUErdhz0PH3cZiaWh5sH0rN2GdStiPaeqM4QqLYv2TTa SXTaluhbkOnR6JGFqueodankFwDwhk2hGn/0vTyCGuYqifrhlksRBBoi+ZpM/Nm7i7 JM2fsejCdKaxC7UltctZtwXWsaC5BypkKb4BluZI= Received: from nue.mailmanlists.eu (localhost [IPv6:::1]) by nue.mailmanlists.eu (Postfix) with ESMTP id E3BEF44D89 for ; Wed, 11 Dec 2024 10:09:08 +0000 (UTC) Authentication-Results: nue.mailmanlists.eu; dkim=pass (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=Jf/kXFe1; dkim-atps=neutral Received: from s.wrqvtvvn.outbound-mail.sendgrid.net (s.wrqvtvvn.outbound-mail.sendgrid.net [149.72.120.130]) by nue.mailmanlists.eu (Postfix) with ESMTPS id 7C97744D5C for ; Wed, 11 Dec 2024 10:08:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ruby-lang.org; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc:content-type:from:subject:to; s=s1; bh=yWST9t/y58CCK6/+lZtJTKuqqqzWLkYooJUtdV3xrB8=; b=Jf/kXFe1TKp2d3Uy3cNj1/51BcNTxvNCx7ch5HWE4dT7ACJV4oC7EqDWbg7cAAKPrGyh q11D61i9Ri1GYbqrE3/i4SYP/V96/Gw6xfGxtRPDbly3BwYTf4fZBG1jM2ybdFWYm3aAOn 7M1fEB3D/9efxAuedkeVz8jTkaTI/6YgN7grs9TU+Ipud70jURg6s/IMH8zSw1cUC9UU2v 0hLRYvRvTLPTn0RRabt4m0RVmhr6NCVhXgCcz1yXQwWMA3++IJPwCBKgtsKg2PDBNY8qqj kokvDtTJ3sRew9GyvsoxkjCNZRBZK94cYNPao4MokRFf52NB6n5lRZU3kfn9FDtw== Received: by recvd-5f54b5d587-zdng7 with SMTP id recvd-5f54b5d587-zdng7-1-675964B7-1F 2024-12-11 10:08:55.624493871 +0000 UTC m=+2292289.926401408 Received: from herokuapp.com (unknown) by geopod-ismtpd-34 (SG) with ESMTP id EEga3lffS4erRnQaorVgBA for ; Wed, 11 Dec 2024 10:08:55.538 +0000 (UTC) Date: Wed, 11 Dec 2024 10:08:55 +0000 (UTC) Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 20878 X-Redmine-Issue-Author: byroot X-Redmine-Issue-Priority: Normal X-Redmine-Sender: byroot X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 96852 X-SG-EID: =?us-ascii?Q?u001=2EKmNZ1u3n1vIpO8NNTdp+Q9c0ai7potxbEDLMO7SOJO=2F4KkRUz0d23466m?= =?us-ascii?Q?naiq=2F5fmA4hb60MdRMUAwHZnjIWVFu=2FrqiBOz5c?= =?us-ascii?Q?nOvkBudsSTgRPOyNHPqRgVxp=2FLGJsaIet5HQQZ6?= =?us-ascii?Q?M4cQIXWswQfwYLY3FznKwVHD=2FFOJq=2FVxDGiDL5T?= =?us-ascii?Q?XHemdpR9DG7vXalcveHB8+AgQvswAu45i8bbVDa?= =?us-ascii?Q?2bdSDUkJA5BpxynSd7NeTd7HtUZI6+5aG7rNuqw?= =?us-ascii?Q?Z=2FCDW9jrIr2uw8thgPgEhKPQMQ=3D=3D?= To: ruby-core@ml.ruby-lang.org X-Entity-ID: u001.I8uzylDtAfgbeCOeLBYDww== Message-ID-Hash: JWORPO6NY3FOYXQPN2OFTASPWDS353FW X-Message-ID-Hash: JWORPO6NY3FOYXQPN2OFTASPWDS353FW X-MailFrom: bounces+313651-b711-ruby-core=ml.ruby-lang.org@em5188.ruby-lang.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.9 Precedence: list Reply-To: Ruby developers Subject: [ruby-core:120175] [Ruby master Feature#20878] A new C API to create a String by adopting a pointer: `rb_enc_str_adopt(const char *ptr, long len, long capa, rb_encoding *enc)` List-Id: Ruby developers Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: "byroot (Jean Boussier) via ruby-core" Cc: "byroot (Jean Boussier)" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SXNzdWUgIzIwODc4IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4N Cg0KRmlsZSBDYXB0dXJlIGTigJllzIFjcmFuIDIwMjQtMTItMTEgYcyAIDExLjAzLjA4LnBuZyBh ZGRlZA0KDQo+IHdoeSBub3QgYWxsb2NhdGUgYSBtYW5hZ2luZyBTdHJpbmcgZnJvbSB0aGUgYmVn aW5uaW5nPw0KDQpJIGV4cGxhaW5lZCBpdCBpbiB0aGUgaXNzdWUgYm9keS4gSWYgeW91IHdhbnQg dG8gYXBwZW5kIG9uZSBjaGFyYWN0ZXIgdG8gYW4gUlN0cmluZywgeW91IG5lZWQgc29tZXRoaW5n IGxpa2U6DQoNCmBgYHJ1YnkNCnZvaWQNCmJ1Zl9hcHBlbmRfYyhWQUxVRSBidWYsIGNoYXIgYykN CnsNCiAgbG9uZyBjYXBhID0gcmJfc3RyX2NhcGFjaXR5KGJ1Zik7DQogIGlmIChSU1RSSU5HX0xF TihidWYpICsgMSA+IGNhcGEpIHsNCiAgICByYl9zdHJfbW9kaWZ5X2V4cGFuZChidWYsIGNhcGEp OyAvLyBkb3VibGUgY2FwYQ0KICB9DQogIGNoYXIgKnB0cjsNCiAgbG9uZyBsZW47DQogIFJTVFJJ TkdfR0VUTUVNKGJ1ZiwgcHRyLCBsZW4pOw0KICBwdHJbbGVuXSA9IGM7DQogIC8vIExlbmdodCBt dXN0IGJlIHNldCByaWdodCBhd2F5IGluIGNhc2UgR0MNCiAgLy8gdHJpZ2dlcnMgYW5kIHRyaWVz IHRvIHJlLWVtYmVkIHRoZSBidWZmZXIuDQogIHJiX3N0cl9zZXRfbGVuKGJ1ZiwgbGVuICsgMSk7 DQp9DQpgYGANCg0KRmlyc3QgdGhhdCBhIGxvdCBtb3JlIGNvbXBsaWNhdGVkIHRoYW4ganVzdCB3 b3JraW5nIHdpdGggYSByYXcgbWFsbG9jZWQgYnVmZmVyLCB5b3UgbmVlZCBzb21lIHByZXR0eSBn b29kIGtub3dsZWRnZSBvZiBSdWJ5IGlubmVyIHdvcmtpbmdzIG5vdCB0byBtYWtlIGEgbWlzdGFr ZS4gRm9yIGV4YW1wbGUsIHlvdSBjb3VsZCBzYXZlIHNvbWUgbWV0YWRhdGEgbGlrZSBgY2FwYWNp dHlgLCBidXQgYW55IHRpbWUgR0MgdHJpZ2dlcnMsIGl0J3MgcG90ZW50aWFsbHkgbm8gbG9uZ2Vy IHZhbGlkLg0KDQpTZWNvbmQsIGFsbCB0aGUgYHJiX3N0cl8qYCBmdW5jdGlvbiB3aWxsIGRvIGEg bG90IG9mIGNvc3RseSBzYW5pdHkgY2hlY2tpbmcuDQoNCklmIEkgcHJvZmlsZSBhIHNpbXBsZSBz Y3JpcHQgdGhhdCdzIGNhbGxpbmcgYFRpbWUjc3RyZnRpbWVgLCB3aGljaCBpcyBpbnRlcm5hbGx5 IHVzaW5nIHRoZSBBUElzIHlvdSBzdWdnZXN0Og0KDQpgYGBydWJ5DQp0aW1lID0gVGltZS5ub3cN Cg0KaSA9IDEwXzAwMF8wMDANCg0Kd2hpbGUgaSA+IDANCiAgaSAtPSAxDQogIHRpbWUuc3RyZnRp bWUoIiVGVCVULiU2TiIpDQplbmQNCmBgYA0KDQpJdCBsb29rcyBsaWtlIHRoaXM6IGh0dHBzOi8v c2hhcmUuZmlyZWZveC5kZXYvM1pOZEFmZw0KDQohW10oQ2FwdHVyZSUyMGQlRTIlODAlOTllJUND JTgxY3JhbiUyMDIwMjQtMTItMTElMjBhJUNDJTgwJTIwMTEuMDMuMDgucG5nKQ0KDQpBIHRvbiBv ZiB0aW1lIGlzIHNwZW50IGluOg0KICAtIGByYl9zdHJfc2V0X2xlbmAgKGA5LjglYCkNCiAgLSBg cmJfc3RyX3Jlc2l6ZWAgKGA2LjglYCkNCiAgLSBgUkJfRkxfVEVTVF9SQVdgICh0byBnZXQgYFJT VFJJTkdfUFRSYCBldGMpIChgNS45JWApDQoNCkFsbCB0b2dldGhlciwgdGhhdCdzIG1vcmUgdGhh biB0aGUgdGltZSBzcGVudCBkb2luZyB0aGUgYWN0dWFsIGZvcm1hdHRpbmcgd29yayBpbiBgQlNE X3ZmcHJpbnRmYCwgdGhpcyBzZWVtcyBsaWtlIGEgbWFqb3Igb3ZlcmhlYWQgdG8gbWUuDQoNCklm IGF0IGxlYXN0IHRoZSBBUEkgd2FzIGVhc2llciB0byB3b3JrIHdpdGgsIEkgd291bGRuJ3QgbWlu ZCBzbyBtdWNoLCBidXQgaW4gbXkgb3BpbmlvbiBpdCdzIGFjdHVhbGx5IGhhcmRlciB0byB3b3Jr IHdpdGguDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1 cmUgIzIwODc4OiBBIG5ldyBDIEFQSSB0byBjcmVhdGUgYSBTdHJpbmcgYnkgYWRvcHRpbmcgYSBw b2ludGVyOiBgcmJfZW5jX3N0cl9hZG9wdChjb25zdCBjaGFyICpwdHIsIGxvbmcgbGVuLCBsb25n IGNhcGEsIHJiX2VuY29kaW5nICplbmMpYA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNz dWVzLzIwODc4I2NoYW5nZS0xMTA5MzMNCg0KKiBBdXRob3I6IGJ5cm9vdCAoSmVhbiBCb3Vzc2ll cikNCiogU3RhdHVzOiBPcGVuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQojIyMgQ29udGV4dA0KDQpBIGNvbW1vbiB1c2UgY2FzZSB3aGVuIHdyaXRpbmcgQyBleHRl bnNpb25zIGlzIHRvIGdlbmVyYXRlIHRleHQgb3IgYnl0ZXMgaW50byBhIGJ1ZmZlciwgYW5kIHRv IHJldHVybiBpdCBiYWNrDQp3cmFwcGVkIGludG8gYSBSdWJ5IFN0cmluZy4gRXhhbXBsZXMgYXJl IGBKU09OLmdlbmVyYXRlKG9iaikgLT4gU3RyaW5nYCwgYW5kIGFsbCBvdGhlciBmb3JtYXQgc2Vy aWFsaXplcnMsDQpjb21wcmVzc2lvbiBsaWJyYXJpZXMgc3VjaCBhcyBgWkxpYi5kZWZsYXRlYCwg ZXRjLCBidXQgYWxzbyBtZXRob2RzIHN1Y2ggYXMgYFRpbWUuc3RyZnRpbWVgLCANCg0KIyMjIEN1 cnJlbnQgU29sdXRpb24NCg0KIyMjIyBXb3JrIGluIGEgYnVmZmVyIGFuZCBjb3B5IHRoZSByZXN1 bHQNCg0KVGhlIG1vc3Qgb2Z0ZW4gdXNlZCBzb2x1dGlvbiBpcyB0byB3b3JrIHdpdGggYSBuYXRp dmUgYnVmZmVyIGFuZCB0byBtYW5hZ2UgYSBuYXRpdmUgYWxsb2NhdGVkIGJ1ZmZlciwNCmFuZCBv bmNlIHRoZSBnZW5lcmF0aW9uIGlzIGRvbmUsIGNhbGwgYHJiX3N0cl9uZXcqYCB0byBjb3B5IHRo ZSByZXN1bHQgaW5zaWRlIG1lbW9yeSBtYW5hZ2VkIGJ5IFJ1YnkuDQoNCkl0IHdvcmtzLCBidXQg aXNuJ3QgdmVyeSBlZmZpY2llbnQgYmVjYXVzZSBpdCBjYXVzZSBhbiBleHRyYSBjb3B5IGFuZCBh biBleHRyYSBgZnJlZSgpYC4NCg0KT24gYHJ1YnkvanNvbmAgbWFjcm8tYmVuY2htYXJrcywgdGhp cyByZXByZXNlbnQgYXJvdW5kIDUlIG9mIHRoZSB0aW1lIHNwZW50IGluIGBKU09OLmdlbmVyYXRl YC4NCg0KYGBgYw0Kc3RhdGljIHZvaWQgZmJ1ZmZlcl9mcmVlKEZCdWZmZXIgKmZiKQ0Kew0KICAg IGlmIChmYi0+cHRyICYmIGZiLT50eXBlID09IEZCVUZGRVJfSEVBUF9BTExPQ0FURUQpIHsNCiAg ICAgICAgcnVieV94ZnJlZShmYi0+cHRyKTsNCiAgICB9DQp9DQoNCnN0YXRpYyBWQUxVRSBmYnVm ZmVyX3RvX3MoRkJ1ZmZlciAqZmIpDQp7DQogICAgVkFMVUUgcmVzdWx0ID0gcmJfdXRmOF9zdHJf bmV3KEZCVUZGRVJfUFRSKGZiKSwgRkJVRkZFUl9MRU4oZmIpKTsNCiAgICBmYnVmZmVyX2ZyZWUo ZmIpOw0KICAgIHJldHVybiByZXN1bHQ7DQp9DQpgYGANCg0KIyMjIyBXb3JrIGluc2lkZSBSU3Ry aW5nIGFsbG9jYXRlZCBtZW1vcnkNCg0KQW5vdGhlciB3YXkgdGhpcyBpcyBjdXJyZW50bHkgZG9u ZSwgaXMgdG8gYWxsb2NhdGUgYW4gYFJTdHJpbmdgIHVzaW5nIGByYl9zdHJfYnVmX25ld2AsDQph bmQgd3JpdGUgaW50byBpdCB3aXRoIHZhcmlvdXMgZnVuY3Rpb25zIHN1Y2ggYXMgYHJiX3N0cl9j YXRmYCwNCm9yIHdyaXRpbmcgcGFzdCBgUlN0cmluZy5sZW5gIHRocm91Z2ggYFJTVFJJTkdfUFRS YCBhbmQgdGhlbiByZXNpemUgaXQgd2l0aCBgcmJfc3RyX3NldF9sZW5gLg0KDQpUaGUgZG93bnNp ZGUgd2l0aCB0aGlzIGFwcHJvYWNoIGlzIHRoYXQgaXQgY29udGFpbnMgYSBsb3Qgb2YgaW5lZmZp Y2llbmNpZXMsIGFzIGByYl9zdHJfc2V0X2xlbmAgd2lsbCBwZXJmb3JtDQpudW1lcm91cyBzYWZl dHkgY2hlY2tzLCBjb21wdXRlIGNvZGVyYW5nZSwgYW5kIHdyaXRlIHRoZSBzdHJpbmcgdGVybWlu YXRvciBvbiBldmVyeSBpbnZvY2F0aW9uLg0KDQpBbm90aGVyIG1ham9yIGlubmVmaWNpZW5jeSBp cyB0aGF0IHRoaXMgQVBJIG1ha2UgaXQgaGFyZCB0byBiZSBpbiBjb250cm9sIG9mIHRoZSBidWZm ZXINCmdyb3d0aCwgc28gaXQgY2FuIHJlc3VsdCBpbiBhIGxvdCBtb3JlIGByZWFsbG9jKClgIGNh bGxzIHRoYW4gbWFudWFsbHkgbWFuYWdpbmcgdGhlIGJ1ZmZlci4NCg0KVGhpcyBtZXRob2QgaXMg dXNlZCBieSBgS2VybmVsI3NwcmludGZgLCBgVGltZSNzdHJmdGltZWAgZXRjLCBhbmQgd2hlbiBJ IGF0dGVtcHRlZCB0byBpbXByb3ZlIGBUaW1lI3N0cmZ0aW1lYA0KcGVyZm9ybWFuY2UsIHRoaXMg cHJvYmxlbSBzaG93ZWQgdXAgYXMgdGhlIGJpZ2dlc3QgYm90dGxlbmVjazoNCg0KICAtIGh0dHBz Oi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8xMTU0Nw0KICAtIGh0dHBzOi8vZ2l0aHViLmNv bS9ydWJ5L3J1YnkvcHVsbC8xMTU0NA0KICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1Ynkv cHVsbC8xMTU0Mg0KDQojIyMgUHJvcG9zZWQgQVBJDQoNCkkgdGhpbmsgYSBtb3JlIGVmZmNpZW50 IHdheSB0byBkbyB0aGlzIHdvdWxkIGJlIHRvIHdvcmsgd2l0aCBhIG5hdGl2ZSBidWZmZXIsIGFu ZCB0aGVuIGJ1aWxkIGEgUlN0cmluZw0KdGhhdCAiYWRvcHQiIHRoZSBtZW1vcnkgcmVnaW9uLg0K DQpUZWNobmljYWxseSwgeW91IGNhbiBjdXJyZW50bHkgZG8gdGhpcyBieSByZWFjaGluZyBkaXJl Y3RseSBpbnRvIGBSU3RyaW5nYCBtZW1iZXJzLCBidXQgSSBkb24ndCB0aGluayBpdCdzIGNsZWFu LA0KYW5kIGEgZGVkaWNhdGVkIEFQSSB3b3VsZCBiZSBwcmVmZXJhYmxlOg0KDQpgYGBjDQovKioN CiAqIFNpbWlsYXIgdG8gcmJfc3RyX25ldygpLCBidXQgaXQgYWRvcHRzIHRoZSBwb2ludGVyIGlu c3RlYWQgb2YgY29weWluZy4NCiAqDQogKiBAcGFyYW1baW5dICBwdHIgICAgICAgICAgICAgQSBt ZW1vcnkgcmVnaW9uIG9mIGBjYXBhYCBieXRlcyBsZW5ndGguIE1VU1QgaGF2ZSBiZWVuIGFsbG9j YXRlZCB3aXRoIGBydWJ5X3htYWxsb2NgDQogKiBAcGFyYW1baW5dICBsZW4gICAgICAgICAgICAg TGVuZ3RoICBvZiB0aGUgc3RyaW5nLCAgaW4gYnl0ZXMsICBub3QgaW5jbHVkaW5nICB0aGUNCiAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hdGluZyBOVUwgY2hhcmFjdGVyLCBu b3QgaW5jbHVkaW5nIGV4dHJhIGNhcGFjaXR5Lg0KICogQHBhcmFtW2luXSAgY2FwYSAgICAgICAg ICAgIFRoZSB1c2FibGUgbGVuZ3RoIG9mIGBwdHJgLCBpbiBieXRlcywgIGluY2x1ZGluZyAgdGhl DQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVybWluYXRpbmcgTlVMIGNoYXJhY3Rl ci4NCiAqIEBwYXJhbVtpbl0gIGVuYyAgICAgICAgICAgICBFbmNvZGluZyBvZiBgcHRyYC4NCiAq IEBleGNlcHRpb24gIHJiX2VBcmdFcnJvciAgICBgbGVuYCBpcyBuZWdhdGl2ZS4NCiAqIEByZXR1 cm4gICAgIEFuIGluc3RhbmNlICBvZiA6OnJiX2NTdHJpbmcsICBvZiBgbGVuYCAgYnl0ZXMgbGVu Z3RoLCBgY2FwYSAtIDFgIGJ5dGVzIGNhcGFjaXR5LA0KICogICAgICAgICAgICAgYW5kIG9mIGBl bmNgIGVuY29kaW5nLg0KICogQHByZSAgICAgICAgQXQgIGxlYXN0ICBgY2FwYWAgYnl0ZXMgIG9m ICBjb250aW51b3VzICBtZW1vcnkgcmVnaW9uICBzaGFsbCAgYmUNCiAqICAgICAgICAgICAgIGFj Y2Vzc2libGUgdmlhIGBwdHJgLg0KICogQHByZSAgICAgICAgYHB0cmAgTVVTVCBoYXZlIGJlZW4g YWxsb2NhdGVkIHdpdGggYHJ1YnlfeG1hbGxvY2AuDQogKiBAcHJlICAgICAgICBgcHRyYCBNVVNU IG5vdCBiZSBtYW51YWxseSBmcmVlZCBhZnRlciBgcmJfZW5jX3N0cl9hZG9wdGAgaGFzIGJlZW4g Y2FsbGVkLg0KICogQG5vdGUgICAgICAgYGVuY2AgY2FuIGJlIGEgIG51bGwgcG9pbnRlci4gIEl0 IGNhbiBhbHNvIGJlICBzZWVuIGFzIGEgcm91dGluZQ0KICogICAgICAgICAgICAgaWRlbnRpY2Fs IHRvIHJiX3VzYXNjaWlfc3RyX25ldygpIHRoZW4uDQogKi8NCnJiX2VuY19zdHJfYWRvcHQoY29u c3QgY2hhciAqcHRyLCBsb25nIGxlbiwgbG9uZyBjYXBhLCByYl9lbmNvZGluZyAqZW5jKTsNCmBg YA0KDQpBbiBhbHRlcm5hdGl2ZSB0byB0aGUgYGFkb3B0YCB0ZXJtLCBjb3VsZCBiZSBgbW92ZWAu DQoNCg0KLS0tRmlsZXMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQ2FwdHVyZSBk 4oCZZcyBY3JhbiAyMDI0LTEyLTExIGHMgCAxMS4wMy4wOC5wbmcgKDI1MCBLQikNCg0KDQotLSAN Cmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KIF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3Jl QG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1j b3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwu cnVieS1sYW5nLm9yZy9tYWlsbWFuMy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=