From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id 9FBC81F54E for ; Tue, 2 Aug 2022 01:04:38 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sendgrid.me header.i=@sendgrid.me header.b="FV1rYHtX"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 0F64512119D; Tue, 2 Aug 2022 10:04:33 +0900 (JST) Received: from xtrwkhkc.outbound-mail.sendgrid.net (xtrwkhkc.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 5DE01121030 for ; Tue, 2 Aug 2022 10:04:30 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.me; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc; s=smtpapi; bh=lY9rhuWP17HJFw+R8wkcCiHFCs0ys5fOpjvcKAicKl4=; b=FV1rYHtXvTQIov/NyKxYxQJrSHRHH6Z620RJwbK3z8Wi9v6lZuZJ3R5Mk/F+le/8C9Is VDIQzDXsDB6H/af9Jho7285XktEdgg9xk2TmJy/6xYIHCwsKnAMb8q+nXtjJuaBHFd9I9H c2wMGcVRQAQvdhKAJCYvW6020pVK3LOtw= Received: by filterdrecv-7787b7f4d9-gfsjp with SMTP id filterdrecv-7787b7f4d9-gfsjp-1-62E8781C-50 2022-08-02 01:04:28.712475163 +0000 UTC m=+968300.270457518 Received: from herokuapp.com (unknown) by geopod-ismtpd-1-2 (SG) with ESMTP id oMMKY0CoRJe6HZz3kONS0Q for ; Tue, 02 Aug 2022 01:04:28.647 +0000 (UTC) Date: Tue, 02 Aug 2022 01:04:28 +0000 (UTC) From: "znz (Kazuhiro NISHIYAMA)" Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 18949 X-Redmine-Issue-Author: Eregon X-Redmine-Sender: znz 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: 85810 X-SG-EID: =?us-ascii?Q?tuH+TxE7++n73nNPC626k24KiyFlUEf4GSA7WvS=2Fa=2F4tseSR4X+hWiwYKmMLqJ?= =?us-ascii?Q?E1muVBG7v=2Fgk2TMWQZETaKA0L835jLSHXz1yQrv?= =?us-ascii?Q?oYXCp+fStPHozTyrncxampt7r5bDRuvRmwYEb1K?= =?us-ascii?Q?SAm1=2FAmu0pTOGeCqRC0kJAzBHpfnXuRK1oLdNCs?= =?us-ascii?Q?mKCNgjkPRATxychvluQgtMMn2qG2m0GzAny2pI3?= =?us-ascii?Q?ED0xmexap3pcNPoBeQFKzSQzk7yJdjx=2F60K67hl?= =?us-ascii?Q?UXJdB=2FnjR2vS0WtOMmjOw=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109405 Subject: [ruby-core:109405] [Ruby master Feature#18949] Deprecate and remove replicate and dummy encodings X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Reply-To: Ruby developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE4OTQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgem56IChLYXp1aGlybyBOSVNISVlBTUEp Lg0KDQoNCkkgdGhpbmsgSVNPLTIwMjItSlAgaXMgdXNlZCBmb3IgbWFpbCBhcmNoaXZlcywgYW5k IElSQ25ldCBldmVuIG5vdy4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KRmVhdHVyZSAjMTg5NDk6IERlcHJlY2F0ZSBhbmQgcmVtb3ZlIHJlcGxpY2F0ZSBhbmQg ZHVtbXkgZW5jb2RpbmdzDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTg5NDkj Y2hhbmdlLTk4NTU0DQoNCiogQXV0aG9yOiBFcmVnb24gKEJlbm9pdCBEYWxvemUpDQoqIFN0YXR1 czogT3Blbg0KKiBQcmlvcml0eTogTm9ybWFsDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpSdWJ5IGhhcyBhIGxvdCBvZiBhY2NpZGVudGFsIGNvbXBsZXhpdHkuDQpT b21ldGltZXMgaXQgYmVjb21lcyBjbGVhciBzb21lIGZlYXR1cmVzIGJyaW5nIGEgbG90IG9mIGNv bXBsZXhpdHkgYW5kIHlldCBwcm92aWRlIGxpdHRsZSB2YWx1ZSBvciBhcmUgdXNlZCB2ZXJ5IHJh cmVseS4NCkFsc28gbW9zdCBSdWJ5IHVzZXJzIGRvIG5vdCBldmVuIGtub3cgYWJvdXQgdGhlc2Ug ZmVhdHVyZXMuDQpSZXBsaWNhdGUgYW5kIGR1bW15IGVuY29kaW5ncyBzZWVtIHRvIGNsZWFybHkg ZmFsbCBpbnRvIHRoaXMgY2F0ZWdvcnksIGFsbW9zdCBub2JvZHkgdXNlcyB0aGVtIGJ1dCB0aGV5 IGFkZCBhIHNpZ25pZmljYW50IGNvbXBsZXhpdHkgYW5kIGFsc28gYWRkIGEgc2lnbmlmaWNhbnQg cGVyZm9ybWFuY2Ugb3ZlcmhlYWQuDQpOb3RhYmx5LCB0aGUgZXhpc3RlbmNlIG9mIHRob3NlIG1l YW5zIHRoZSBudW1iZXIgb2YgZW5jb2RpbmdzIGluIGEgUnVieSBydW50aW1lIGlzIGFjdHVhbGx5 IHZhcmlhYmxlIGFuZCBub3QgZml4ZWQuDQpUaGF0IG1lYW5zIGV4dHJhIHN5bmNocm9uaXphdGlv biwgaGFzaHRhYmxlIGxvb2t1cHMsIGluZGlyZWN0aW9ucywgZnVuY3Rpb24gY2FsbHMsIGV0Yy4N Cg0KIyMgUmVwbGljYXRlIEVuY29kaW5ncw0KDQpSZXBsaWNhdGUgZW5jb2RpbmdzIGFyZSBjcmVh dGVkIHVzaW5nIGBFbmNvZGluZyNyZXBsaWNhdGUobmFtZSlgLg0KSXQgYWxtb3N0IHNvdW5kcyBs aWtlIGFuIGFsaWFzIGJ1dCBpbiBmYWN0IGl0IGlzIG1vcmUgdGhhbiB0aGF0IGFuZCBjcmVhdGVz IGEgbmV3IEVuY29kaW5nIG9iamVjdCwgd2hpY2ggY2FuIGJlIHVzZWQgYnkgYSBTdHJpbmc6DQpg YGBydWJ5DQplID0gRW5jb2Rpbmc6OlVTX0FTQ0lJLnJlcGxpY2F0ZSgnTVktVVMtQVNDSUknKQ0K cyA9ICJhYmMiLmZvcmNlX2VuY29kaW5nKGUpDQpwIHMuZW5jb2RpbmcgIyA9PiBlDQpwIHMuZW5j b2RpbmcubmFtZSAjID0+ICdNWS1VUy1BU0NJSScNCmBgYA0KDQpUaGlzIHNlZW1zIGNvbXBsZXRl bHkgdXNlbGVzcy4NClRoZXJlIGlzIGFuIG9idmlvdXMgZmlyc3Qgc3RlcCBoZXJlIHdoaWNoIGlz IHRvIGNoYW5nZSBgRW5jb2RpbmcjcmVwbGljYXRlYCB0byByZXR1cm4gdGhlIHJlY2VpdmVyLCBh bmQganVzdCBpbnN0YWxsIGFuIGFsaWFzIGZvciBpdC4NClRoYXQgYXZvaWRzIGNyZWF0aW5nIG1v cmUgZW5jb2RpbmcgaW5zdGFuY2VzIG5lZWRsZXNzbHkuDQoNCkkgdGhpbmsgd2Ugc2hvdWxkIGFs c28gZGVwcmVjYXRlIGFuZCByZW1vdmUgdGhpcyBtZXRob2QgdGhvdWdoLCBpdCBpcyBuZXZlciBh IGdvb2QgaWRlYSB0byBoYXZlIGEgZ2xvYmFsIG11dGFibGUgbWFwIGxpa2UgdGhpcy4NCklmIHNv bWVvbmUgd2FudCBleHRyYSBhbGlhc2VzIGZvciBlbmNvZGluZ3MsIHRoZXkgY2FuIGVhc2lseSB0 byBkbyBzbyBieSBoYXZpbmcgdGhlaXIgb3duIEhhc2g6IGB7IGFsaWFzID0+IGVuY29kaW5nIH0u ZmV0Y2gobmFtZSkgeyBFbmNvZGluZy5maW5kKG5hbWUpIH1gLg0KDQojIyBEdW1teSBFbmNvZGlu Z3MNCg0KRHVtbXkgZW5jb2RpbmdzIGFyZSBub3QgcmVhbCBlbmNvZGluZ3MuIFRoZXkgYXJlIGFy dGlmaWNpYWwgZW5jb2RpbmdzIGRlc2lnbmVkIHRvIGxvb2sgbGlrZSBlbmNvZGluZ3MsIGJ1dCBk b24ndCBmdW5jdGlvbiBhcyBlbmNvZGluZ3MgaW4gUnVieS4NCkZyb20gdGhlIGRvY3M6DQpgYGAN CmVuYy5kdW1teT8gLT4gdHJ1ZSBvciBmYWxzZQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpSZXR1cm5zIHRy dWUgZm9yIGR1bW15IGVuY29kaW5ncy4gQSBkdW1teSBlbmNvZGluZyBpcyBhbiBlbmNvZGluZyBm b3INCndoaWNoIGNoYXJhY3RlciBoYW5kbGluZyBpcyBub3QgcHJvcGVybHkgaW1wbGVtZW50ZWQu IEl0IGlzIHVzZWQgZm9yDQpzdGF0ZWZ1bCBlbmNvZGluZ3MuDQpgYGANCg0KSSB3b25kZXIgd2h5 IHdlIGhhdmUgdGhvc2UgaGFsZi1pbXBsZW1lbnRlZCBlbmNvZGluZ3MgaW4gY29yZSwgaXQgc291 bmRzIHRvIG1lIGxpa2UgdW5maW5pc2hlZCB3b3JrIHdoaWNoIHNob3VsZCBub3QgaGF2ZSBiZWVu IG1lcmdlZC4NCg0KVGhlICJjb2RlcG9pbnRzIiBvZiBkdW1teSBlbmNvZGluZ3MgYXJlIGp1c3Qg ImJ5dGVzIiBhbmQgc28gdGhleSBiZWhhdmUgdGhlIHNhbWUgYXMgYEVuY29kaW5nOjpCSU5BUllg LCB3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIFVURi0xNiBhbmQgVVRGLTMyIGR1bW15IGVuY29k aW5ncy4NCg0KIyMjIFVURi0xNiBhbmQgVVRGLTMyIGR1bW15IGVuY29kaW5ncw0KDQpUaGVzZSB0 d28gYXJlIHNwZWNpYWwgZHVtbXkgZW5jb2RpbmdzLg0KV2hhdCB0aGV5IGRvIGlzIHRoZXkgc2Nh biB0aGUgZmlyc3QgMiBvciA0IGJ5dGVzIG9mIHRoZSBTdHJpbmcsIGFuZCBpZiB0aG9zZSBieXRl cyBhcmUgYSBieXRlLW9yZGVyIG1hcmsgKEJPTSksDQp0aGUgdHJ1ZSAiYWN0dWFsIiBlbmNvZGlu ZyBpcyByZXNvbHZlZCB0byBVVEYtMTZCRS9VVEYtMTZMRSBvciBVVEYtMzJCRS9VVEYtMzJMRS4N Ck90aGVyd2lzZSwgYEVuY29kaW5nOjpCSU5BUllgIGlzIHJldHVybmVkLg0KVGhpcyBsb2dpYyBp cyBkb25lIGJ5IGBnZXRfYWN0dWFsX2VuY29kaW5nKClgLg0KDQpXaGF0IGlzIHdlaXJkIGlzIHRo aXMgY2hlY2sgaXMgbm90IGRvbmUgb24gU3RyaW5nIGNyZWF0aW9uLCBubywgaXQgaXMgZG9uZSAq ZXZlcnkgdGltZSogdGhlIGVuY29kaW5nIG9mIHRoYXQgU3RyaW5nIGlzIGFjY2Vzc2VkIChhbmQg dGhlIHJlc3VsdCBpcyBub3Qgc3RvcmVkIG9uIHRoZSBTdHJpbmcpLg0KVGhhdCBpcyBhIG5lZWRs ZXNzIG92ZXJoZWFkIGFuZCByZWFsbHkgdW5yZWxpYWJsZSBzZW1hbnRpY3MuDQpEbyB3ZSByZWFs bHkgd2FudCBhIFN0cmluZyB3aGljaCBhdXRvbWFnaWNhbGx5IGNoYW5nZXMgYmV0d2VlbiBVVEYt MTZMRSBhbmQgVVRGLTE2QkUgYmFzZWQgb24gbXV0YXRpbmcgaXRzIGJ5dGVzPyBJIHRoaW5rIG5v Ym9keSB3YW50cyB0aGF0Og0KYGBgcnVieQ0KcyA9ICJceEZGXHhGRWFceDAwYlx4MDBjXHgwMGRc eDAwIi5mb3JjZV9lbmNvZGluZygiVVRGLTE2IikNCnAgcyAjID0+ICJcdUZFRkZhYmNkIg0Kcy5z ZXRieXRlIDAsIDI1NA0Kcy5zZXRieXRlIDEsIDI1NQ0KcCBzICMgPT4gIlx1RkVGRlx1NjEwMFx1 NjIwMFx1NjMwMFx1NjQwMCINCmBgYA0KDQpJIHRoaW5rIHRoZSBwYXRoIGlzIGNsZWFyLCB3ZSBz aG91bGQgZGVwcmVjYXRlIGFuZCB0aGVuIHJlbW92ZSBFbmNvZGluZzo6VVRGXzE2IGFuZCBFbmNv ZGluZzo6VVRGXzMyIChkdW1teSBlbmNvZGluZ3MpLg0KQW5kIHRoZW4gd2Ugbm8gbG9uZ2VyIG5l ZWQgYGdldF9hY3R1YWxfZW5jb2RpbmcoKWAgYW5kIHRoZSBvdmVyaGVhZCBpdCBhZGRzIHRvIGV2 ZXJ5IFN0cmluZyBtZXRob2QuDQoNCldlIGNvdWxkIGFsc28ga2VlcCB0aG9zZSBjb25zdGFudHMg YW5kIG1ha2UgdGhlbSByZWZlciB0aGUgbmF0aXZlLWVuZGlhbiBVVEYtMTYvMzIuDQpCdXQgdGhh dCBjb3VsZCBjYXVzZSBjb25mdXNpbmcgZXJyb3JzIGFzIHdlIHdvdWxkIGNoYW5nZSB0aGUgbWVh bmluZyBvZiB0aGVtLg0KV2UgY291bGQgYWRkIGBFbmNvZGluZzo6VVRGXzE2TkVgIC8gYEVuY29k aW5nOjpVVEZfMTZfTkFUSVZFX0VORElBTmAgaWYgdGhhdCBpcyB1c2VmdWwuDQoNCkFub3RoZXIg cG9zc2liaWxpdHkgd291bGQgYmUgdG8gcmVzb2x2ZSB0aGVzZSBlbmNvZGluZ3Mgb24gU3RyaW5n IGNyZWF0aW9uLCBsaWtlOg0KYGBgDQoiXHhGRlx4RkUiLmZvcmNlX2VuY29kaW5nKCJVVEYtMTYi KS5lbmNvZGluZyAjID0+IFVURi0xNkxFDQpTdHJpbmcubmV3KCJceEZGXHhGRSIsIGVuY29kaW5n OiBFbmNvZGluZzo6VVRGXzE2KS5lbmNvZGluZyAjID0+IFVURi0xNkxFDQoiYWIiLmZvcmNlX2Vu Y29kaW5nKCJVVEYtMTYiKS5lbmNvZGluZyAjIGV4Y2VwdGlvbiwgbm90IGEgQk9NDQpTdHJpbmcu bmV3KCJhYiIsIGVuY29kaW5nOiBFbmNvZGluZzo6VVRGXzE2KS5lbmNvZGluZyAjIGV4Y2VwdGlv biwgbm90IGEgQk9NDQpgYGANCkkgdGhpbmsgaXQgaXMgdW5uZWNlc3NhcnkgdG8ga2VlcCBzdWNo IGNvbXBsZXhpdHkgdGhvdWdoLg0KQSBjbGFzcyBtZXRob2Qgb24gU3RyaW5nIG9yIEVuY29kaW5n IGxpa2UgZS5nLiBgRW5jb2RpbmcuZmluZF9mcm9tX2JvbShzdHJpbmcpYCBpcyBzbyBtdWNoIGNs ZWFyZXIgYW5kIGVmZmljaWVudCAobm8gbmVlZCB0byBzcGVjaWFsIGNhc2UgdGhvc2UgZW5jb2Rp bmdzIGluIFN0cmluZy5uZXcsICNmb3JjZV9lbmNvZGluZywgZXRjKS4NCg0KRldJVyBKUnVieSBz ZWVtcyB0byB1c2UgYGdldEFjdHVhbEVuY29kaW5nKClgIG9ubHkgaW4gMiBwbGFjZXMgKHNjYW5G b3JDb2RlUmFuZ2UsIGluc3BlY3QpLCB3aGljaCBpcyBhbiBpbmRpY2F0aW9uIHRob3NlIGR1bW15 IFVURiBlbmNvZGluZ3MgYXJlIGJhcmVseSB1c2VkIGlmIGV2ZXIuIFNpbWlsYXJseSwgVHJ1ZmZs ZVJ1Ynkgb25seSBoYXMgNCB1c2FnZXMgb2YgYEdldEFjdHVhbEVuY29kaW5nTm9kZWAuDQoNCiMj IyBFeGlzdGluZyBkdW1teSBlbmNvZGluZ3MNCg0KYGBgDQo+IEVuY29kaW5nLmxpc3Quc2VsZWN0 KCY6ZHVtbXk/KSANClsjPEVuY29kaW5nOlVURi0xNiAoZHVtbXkpPiwgICM8RW5jb2Rpbmc6VVRG LTMyIChkdW1teSk+LA0KICM8RW5jb2Rpbmc6SUJNMDM3IChkdW1teSk+LCAjPEVuY29kaW5nOlVU Ri03IChkdW1teSk+LA0KICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAgKGR1bW15KT4sICM8RW5jb2Rp bmc6SVNPLTIwMjItSlAtMiAoZHVtbXkpPiwgIzxFbmNvZGluZzpJU08tMjAyMi1KUC1LRERJIChk dW1teSk+LA0KICM8RW5jb2Rpbmc6Q1A1MDIyMCAoZHVtbXkpPiwgIzxFbmNvZGluZzpDUDUwMjIx IChkdW1teSk+XQ0KYGBgDQoNClNvIGJlc2lkZXMgVVRGLTE2L1VURi0zMiBkdW1teSwgaXQncyBv bmx5IDcgZW5jb2RpbmdzLg0KRG9lcyBhbnlvbmUgdXNlIG9uZSBvZiB0aGVzZSA3IGR1bW15IGVu Y29kaW5ncz8NCg0KV2hhdCBpcyBpbnRlcmVzdGluZyB0byBub3RlLCBpcyB0aGF0IHRoZXNlIGVu Y29kaW5ncyBhcmUgZXhhY3RseSB0aGUgb25lcyB0aGF0IGFyZSBhbHNvIG5vdCBBU0NJSS1jb21w YXRpYmxlLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgVVRGLTE2QkUvVVRGLTE2TEUvVVRGLTMyQkUv VVRGLTMyTEUgKG5vbi1kdW1teSkuDQpBcyBhIG5vdGUsIFVURi17MTYsMzJ9e0JFLExFfSBhcmUg QVNDSUktY29tcGF0aWJsZSBpbiBjb2RlcG9pbnRzIGJ1dCBub3QgaW4gYnl0ZXMsIGFuZCBSdWJ5 IHVzZXMgdGhlIGJ5dGVzIGRlZmluaXRpb24gb2YgQVNDSUktY29tcGF0aWJsZS4NClRoZXJlIGlz IHBvdGVudGlhbCB0byBzaW1wbGlmeSBlbmNvZGluZyBjb21wYXRpYmlsaXR5IHJ1bGVzIGFuZCBl bmNvZGluZyBjb21wYXRpYmlsaXR5IGNoZWNrcyBiYXNlZCBvbiB0aGF0Lg0KU28gd2hhdCB0aGlz IG1lYW5zIGlzIGlmIHdlIHJlbW92ZWQgZHVtbXkgZW5jb2RpbmdzLCBhbGwgZW5jb2RpbmdzIGV4 Y2VwdCBVVEYtezE2LDMyfXtCRSxMRX0gd291bGQgYmUgQVNDSUktY29tcGF0aWJsZSwgd2hpY2gg d291bGQgbGVhZCB0byBzaWduaWZpY2FudCBzaW1wbGlmaWNhdGlvbnMgZm9yIG1hbnkgc3RyaW5n IG9wZXJhdGlvbnMgd2hpY2ggY3VycmVudGx5IG5lZWQgdG8gaGFuZGxlIGR1bW15IGVuY29kaW5n cyBzcGVjaWFsbHkuDQpVbmljb2RlIGVuY29kaW5ncyBsaWtlIFVURi17MTYsMzJ9e0JFLExFfSBh bHJlYWR5IGhhdmUgc3BlY2lhbCBiZWhhdmlvciBmb3Igc29tZSBSdWJ5IG1ldGhvZHMsIHNvIHRo b3NlIGFyZSBhbHJlYWR5IGhhbmRsZWQgc3BlY2lhbGx5IGluIHNvbWUgcGxhY2VzICh0aGV5IGFy ZSB0aGUgb25seSBlbmNvZGluZ3Mgd2l0aCBtaW5MZW5ndGggPiAxKS4NCg0KYGBgDQo+IEVuY29k aW5nLmxpc3QucmVqZWN0KCY6YXNjaWlfY29tcGF0aWJsZT8pDQpbIzxFbmNvZGluZzpVVEYtMTZC RT4sICM8RW5jb2Rpbmc6VVRGLTE2TEU+LA0KICM8RW5jb2Rpbmc6VVRGLTMyQkU+LCAjPEVuY29k aW5nOlVURi0zMkxFPiwNCiAjPEVuY29kaW5nOlVURi0xNiAoZHVtbXkpPiwgIzxFbmNvZGluZzpV VEYtMzIgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJQk0wMzcgKGR1bW15KT4sICM8RW5jb2Rpbmc6 VVRGLTcgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJU08tMjAyMi1KUCAoZHVtbXkpPiwgIzxFbmNv ZGluZzpJU08tMjAyMi1KUC0yIChkdW1teSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLUtEREkg KGR1bW15KT4sDQogIzxFbmNvZGluZzpDUDUwMjIwIChkdW1teSk+LCAjPEVuY29kaW5nOkNQNTAy MjEgKGR1bW15KT5dDQpgYGANCg0KV2hhdCBjYW4gd2UgZG8gd2l0aCBzdWNoIGEgZHVtbXkgbm9u LUFTQ0lJLWNvbXBhdGlibGUgZW5jb2Rpbmc/DQpBbG1vc3Qgbm90aGluZyB1c2VmdWw6DQpgYGBy dWJ5DQpzID0gImFiYyIuZW5jb2RlKCJJQk0wMzciKQ0KPT4gIlx4ODFceDgyXHg4MyINCj4gcy5i eXRlcw0KPT4gWzEyOSwgMTMwLCAxMzFdDQo+IHMuY29kZXBvaW50cw0KPT4gWzEyOSwgMTMwLCAx MzFdDQo+IHMgPT0gImFiYyINCj0+IGZhbHNlDQo+ICLDqXTDqSIuZW5jb2RlKCJJQk0wMzciKQ0K PT4gIlx4NTFceEEzXHg1MSINCmBgYA0KDQpTbyBhYm91dCB0aGUgb25seSB0aGluZyB0aGF0IHdv cmtzIHdpdGggdGhlbSBpcyBgU3RyaW5nI2VuY29kZWAuDQoNCkkgdGhpbmsgd2UgY291bGQgcHJl c2VydmUgdGhhdCBmdW5jdGlvbmFsaXR5LCBpZiBhY3R1YWxseSB1c2VkIChkb2VzIGFueW9uZSB1 c2Ugb25lIG9mIHRoZXNlIDcgZHVtbXkgZW5jb2RpbmdzPyksIHRocm91Z2g6DQpgYGBydWJ5DQo+ ICLDqXTDqSIuZW5jb2RlKCJJQk0wMzciKQ0KPT4gIlx4NTFceEEzXHg1MSIgKC5lbmNvZGluZyA9 PSBCSU5BUlkpDQo+ICJceDUxXHhBM1x4NTEiLmVuY29kZSgiVVRGLTgiLCAiSUJNMDM3IikgIyBl bmNvZGUgZnJvbSBJQk0wMzcgdG8gVVRGLTgNCj0+ICLDqXTDqSIgKC5lbmNvZGluZyA9PSBVVEYt OCkNCmBgYA0KDQpUaGF0IHdheSB0aGVyZSBpcyBubyBuZWVkIGZvciB0aG9zZSB0byBiZSBFbmNv ZGluZyBpbnN0YW5jZXMsIHdlIHdvdWxkIG9ubHkgbmVlZCB0aGUgY29udmVyc2lvbiB0YWJsZXMu DQoNCkl0IGlzIGV2ZW4gYmV0dGVyIGlmIHdlIGNhbiByZW1vdmUgdGhlbSwgc28gdGhlIG5vdGlv biBvZiAiZHVtbXkgZW5jb2RpbmdzIiBjYW4gZGlzYXBwZWFyIGNvbXBsZXRlbHkgYW5kIG5vYm9k eSBuZWVkcyB0byB1bmRlcnN0YW5kIG9yIGltcGxlbWVudCB0aGVtLg0KDQojIyMgcmJfZGVmaW5l X2R1bW15X2VuY29kaW5nKG5hbWUpDQoNClRoZSBDLUFQSSBoYXMgYHJiX2RlZmluZV9kdW1teV9l bmNvZGluZyhjb25zdCBjaGFyICpuYW1lKWAuDQpUaGlzIGNyZWF0ZXMgYSBuZXcgRW5jb2Rpbmcg aW5zdGFuY2Ugd2l0aCBgZHVtbXk/PXRydWVgLCBhbmQgaXQgaXMgYWxzbyBub24tQVNDSUktY29t cGF0aWJsZS4NClRoZXJlIHNlZW1zIHRvIGJlIG5vIHB1cnBvc2UgdG8gdGhpcyBiZXNpZGVzIHN0 b3JpbmcgdGhlIG1ldGFkYXRhIG9mIGFuIGVuY29kaW5nIHdoaWNoIGRvZXMgbm90IGV4aXN0IGlu IFJ1YnkuDQpUaGlzIHNlZW1zIGEgcmVhbGx5IGV4cGVuc2l2ZS9jb21wbGV4IHdheSB0byBoYW5k bGUgdGhhdCBmcm9tIHRoZSBWTSBwb2ludCBvZiB2aWV3IChiZWNhdXNlIGl0IGR5bmFtaWNhbGx5 IGNyZWF0ZXMgYW4gRW5jb2RpbmcgYW5kIGFkZCBpdCB0byBsaXN0cy9tYXBzL2V0YykuDQpBIHNp bXBsZSByZXBsYWNlbWVudCB3b3VsZCBiZSB0byBtYXJrIHRoZSBTdHJpbmcgYXMgQklOQVJZIGFu ZCBzYXZlIHRoZSBlbmNvZGluZyBuYW1lIGFzIGFuIGluc3RhbmNlIHZhcmlhYmxlIG9mIHRoYXQg U3RyaW5nLg0KU2luY2UgYW55d2F5IFJ1YnkgY2FuJ3QgdW5kZXJzdGFuZCBhbnl0aGluZyBhYm91 dCB0aGF0IFN0cmluZywgaXQncyBqdXN0IHJhdyBieXRlcyB0byBSdWJ5J3MgZXllcy4NCg0KIyMg U3VtbWFyeQ0KDQpJIHN1Z2dlc3Qgd2UgZGVwcmVjYXRlIHJlcGxpY2F0ZSBhbmQgZHVtbXkgZW5j b2RpbmdzIGluIFJ1YnkgMy4yLg0KQW5kIHRoZW4gd2UgcmVtb3ZlIHRoZW0gaW4gdGhlIG5leHQg dmVyc2lvbi4NCg0KVGhpcyB3aWxsIHNpZ25pZmljYW50bHkgc2ltcGxpZnkgc3RyaW5nLXJlbGF0 ZWQgbWV0aG9kcywgYW5kIHRoZSBiZWhhdmlvciBleHBvc2VkIHRvIFJ1YnkgdXNlcnMuDQoNCkl0 IHdpbGwgYWxzbyBzaWduaWZpY2FudGx5IHNwZWVkdXAgZW5jb2RpbmcgbG9va3VwIGluIENSdWJ5 IChhbmQgb3RoZXIgUnVieSBpbXBsZW1lbnRhdGlvbnMpLg0KV2l0aCBhIGZpeGVkIG51bWJlciBv ZiBlbmNvZGluZ3Mgd2UgY2FuIGVuc3VyZSBhbGwgZW5jb2RpbmcgaW5kaWNlcyBmaXQgaW4gNyBi aXRzLCBhbmQgYEVOQ09ESU5HX0dFVGAgY2FuIGJlIHNpbXBseSBgUkJfRU5DT0RJTkdfR0VUX0lO TElORURgLg0KYGdldF9hY3R1YWxfZW5jb2RpbmcoKWAgd2lsbCBiZSBnb25lIGFuZCBpdHMgb3Zl cmhlYWQgYXMgd2VsbC4NCmByYl9lbmNfZnJvbV9pbmRleCgpYCB3b3VsZCBiZSBqdXN0IGByZXR1 cm4gZ2xvYmFsX2VuY190YWJsZS0+bGlzdFtpbmRleF0uZW5jO2AsIGluc3RlYWQgb2YgdGhlIGV4 cGVuc2l2ZSBiZWhhdmlvciBjdXJyZW50bHkgd2l0aCBgR0xPQkFMX0VOQ19UQUJMRV9FVkFMYCB3 aGljaCB0YWtlcyBhIGxvY2sgYW5kIG1vcmUgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgUmFjdG9y cy4NCk1hbnkgY2hlY2tzIGluIHRoZXNlIG1ldGhvZHMgd291bGQgYmUgcmVtb3ZlZCBhcyB3ZWxs Lg0KWWV0IGFub3RoZXIgaW1wcm92ZW1lbnQgd291bGQgYmUgdG8gbG9hZCBhbGwgZW5jb2Rpbmdz IGVhZ2VybHksIHRoYXQgaXMgc21hbGwgYW5kIGZhc3QgaW4gbXkgZXhwZXJpZW5jZSwgd2hhdCBp cyBzbG93IGFuZCBiaWcgaXMgdGhlIGNvbnZlcnNpb24gdGFibGVzLCB0aGF0J2Qgc2ltcGxpZnkg YG11c3RfZW5jaW5kZXgoKWAgZnVydGhlci4NClRoZXNlIGNoYW5nZXMgd291bGQgYWZmZWN0IG1v c3QgU3RyaW5nIG1ldGhvZHMsIHdoaWNoIHVzZQ0KYGBgDQpTVFJfRU5DX0dFVC0+Z2V0X2VuY29k aW5nIHdoaWNoIGRvZXM6DQogIGdldF9hY3R1YWxfZW5jb2RpbmctPnJiX2VuY19mcm9tX2luZGV4 IGFuZCBwb3NzaWJseSAtPmVuY19mcm9tX2luZGV4DQogIEVOQ09ESU5HX0dFVC0+UkJfRU5DT0RJ TkdfR0VUX0lOTElORUQgYW5kIHBvc3NpYmx5IC0+cmJfZW5jX2dldF9pbmRleC0+ZW5jX2dldF9p bmRleF9zdHItPnJiX2F0dHJfZ2V0DQpgYGANClNvbWUgb2YgdGhlc2UgZGV0YWlscyBhcmUgbWVu dGlvbmVkIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC82MDk1I2Rpc2N1c3Np b25fcjkxNTE0OTcwOC4NClRoZSBvdmVyaGVhZCBpcyBzbyBsYXJnZSB0aGF0IGl0IGlzIHdvcnRo IGhhbmRsaW5nIHNvbWUgaGFyZGNvZGVkIGVuY29kaW5nIGluZGljZXMgZGlyZWN0bHkgaW4gU3Ry aW5nIG1ldGhvZHMuDQpUaGlzIGZlZWxzIHdyb25nLCBnZXR0aW5nIHRoZSBlbmNvZGluZyBmcm9t IGEgU3RyaW5nIHNob3VsZCBiZSBzaW1wbGUsIHN0cmFpZ2h0Zm9yd2FyZCBhbmQgZmFzdC4NCg0K RnVydGhlciBvcHRpbWl6YXRpb25zIHdpbGwgYmUgdW5sb2NrZWQgYXMgdGhlIGVuY29kaW5nIGxp c3QgYmVjb21lcyBmaXhlZCBhbmQgaW1tdXRhYmxlLg0KRm9yIGV4YW1wbGUsIHRoZSBuYW1lLXRv LUVuY29kaW5nIG1hcCBpcyB0aGVuIGltbXV0YWJsZSBhbmQgY291bGQgdXNlIHBlcmZlY3QgaGFz aGluZy4NCklubGluZSBjYWNoaW5nIHRob3NlIGxvb2t1cHMgYWxzbyBiZWNvbWVzIGVhc2llciBh cyB0aGUgdGhlIG1hcCBjYW5ub3QgY2hhbmdlLg0KQWxzbyB0aGF0IG1hcCB3b3VsZCBubyBsb25n ZXIgbmVlZCBzeW5jaHJvbml6YXRpb24sIGV0Yy4NCg0KIyMgVG8gRGVjaWRlDQoNCkVhY2ggaXRl bSBpcyBpbmRlcGVuZGVudC4gSSB0aGluayAxICYgMiBhcmUgdmVyeSBpbXBvcnRhbnQsIDMgbGVz cyBidXQgd291bGQgYmUgbmljZS4NCg0KMS4gRGVwcmVjYXRlIGFuZCB0aGVuIHJlbW92ZSBgRW5j b2RpbmcjcmVwbGljYXRlYCBhbmQgYHJiX2RlZmluZV9kdW1teV9lbmNvZGluZygpYC4gV2l0aCB0 aGF0IHRoZXJlIGlzIGEgZml4ZWQgbnVtYmVyIG9mIGVuY29kaW5ncywgYSBsb3Qgb2Ygc2ltcGxp ZmljYXRpb25zIGFuZCBtYW55IG9wdGltaXphdGlvbnMgYmVjb21lIGF2YWlsYWJsZS4gVGhleSBh cmUgdXNlZCByZXNwZWN0aXZlbHkgaW4gb25seSAxIGdlbSBhbmQgNSBnZW1zLCBzZWUgaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4OTQ5I25vdGUtNA0KMi4gRGVwcmVjYXRlIGFu ZCB0aGVuIHJlbW92ZSB0aGUgZHVtbXkgVVRGLTE2IGFuZCBVVEYtMzIgZW5jb2RpbmdzLiBUaGlz IHJlbW92ZXMgdGhlIG5lZWQgZm9yIGBnZXRfYWN0dWFsX2VuY29kaW5nKClgIHdoaWNoIGlzIGV4 cGVuc2l2ZS4gVGhpcyBmdW5jdGlvbmFsaXR5IHNlZW1zIHJhcmVseSB1c2VkIGluIHByYWN0aWNl LCBhbmQgaXQgb25seSB3b3JrcyB3aGVuIHN1Y2ggc3RyaW5ncyBoYXZlIGEgQk9NLCB3aGljaCBp cyB2ZXJ5IHJhcmUuDQozLiBEZXByZWNhdGUgYW5kIHRoZW4gcmVtb3ZlIG90aGVyIGR1bW15IGVu Y29kaW5ncywgc28gdGhlcmUgYXJlIG5vIG1vcmUgZHVtbXkgImhhbGYtaW1wbGVtZW50ZWQiIGVu Y29kaW5ncyBhbmQgYWxsIGVuY29kaW5ncyBhcmUgQVNDSUktY29tcGF0aWJsZSBpbiB0ZXJtcyBv ZiBjb2RlcG9pbnRzLg0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCg==