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_SCC_BODY_TEXT_LINE,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 9A1321F54E for ; Wed, 10 Aug 2022 21:38:01 +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="Wed4qhuS"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 2B515121028; Thu, 11 Aug 2022 06:37:51 +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 EBEA9120F9C for ; Thu, 11 Aug 2022 06:37:48 +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=I0Fry8SmTas3giYDOq/s+2Ku6AnGxaKQYXApYNYa5Ng=; b=Wed4qhuSjOseSMK5E9dYvojsZwDvEFjGaNe7DQ5bphqKyphJ5icj9ViX6hnZgxjQgo14 biN+/4SLMm6mgQC0k8GV1CvpLf8XJ/s3ku/1ZtuJ8bnjIB9bbvnJxR9b+zVBplc3u3izDd J9Ll9z3Gu08PKF2VJEPN0/JqlCpAmGYGo= Received: by filterdrecv-66b95c5ffd-646hw with SMTP id filterdrecv-66b95c5ffd-646hw-1-62F42528-5D 2022-08-10 21:37:44.790180531 +0000 UTC m=+1733514.972895970 Received: from herokuapp.com (unknown) by geopod-ismtpd-6-0 (SG) with ESMTP id hVVxDQRHSKmLW2EZ9UOqyg for ; Wed, 10 Aug 2022 21:37:44.748 +0000 (UTC) Date: Wed, 10 Aug 2022 21:37:44 +0000 (UTC) From: "Dan0042 (Daniel DeLorme)" 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: Dan0042 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: 85880 X-SG-EID: =?us-ascii?Q?9vnO9kNFlf1pwhty1clU3mt9eNWYniufdXqocdsQQtaDTWZk4+b5g5js0Akvaj?= =?us-ascii?Q?32LW=2F+fGSAom3tt8Jo+=2FGW3uDD0ktbmu7qAbln0?= =?us-ascii?Q?uJrjIC+yKvyyam=2F1vowhXBYjLGLDPp05MQvkgCw?= =?us-ascii?Q?ZxEBgAo0Nt4BGIsZwwGjkJr=2FfMcO46Xej0b3YHV?= =?us-ascii?Q?=2FFu3Y1VvRJZ5Ayr5EdWT2Wf9wJonhH6f5+ld0WH?= =?us-ascii?Q?NIDxgtlrKpvuuMqVwlAeOWdVoWxO1gXFtQ4nkPm?= =?us-ascii?Q?PQ+sHPeO7BexR9IGYPnAg=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109472 Subject: [ruby-core:109472] [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" SXNzdWUgIzE4OTQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRGFuMDA0MiAoRGFuaWVsIERlTG9ybWUp Lg0KDQoNClRoYW5rIHlvdSBmb3IgdGhlIHJlc3BvbnNlLg0KSXQncyB0cnVlIHN5bmNocm9uaXph dGlvbiBpcyByZXF1aXJlZCBmb3IgYSBudW1iZXIgb2YgcmVhZCBvcGVyYXRpb25zLCBidXQgSSB0 aGluayB0aGUgbW9zdCBpbXBvcnRhbnQgZm9yIHBlcmZvcm1hbmNlLCBgZ2V0X2VuY29kaW5nYCwg Y291bGQgYmVjb21lIHZlcnkgZmFzdCB3aXRoIGEgbWF4IGxpbWl0LiBCdXQgSSBkaWdyZXNzLg0K TW9yZSBpbXBvcnRhbnRseSBJIGFncmVlIHRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgdG8gcHJlc2Vy dmUgZnVuY3Rpb25hbGl0eSBub2JvZHkgdXNlcy4gVGhlIGZsZXhpYmlsaXR5IGlzIG5pY2UgdG8g aGF2ZSBidXQgZG9lc24ndCBzZWVtIHdvcnRoIHRoZSBjb3N0LiAywqINCg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMTg5NDk6IERlcHJlY2F0ZSBh bmQgcmVtb3ZlIHJlcGxpY2F0ZSBhbmQgZHVtbXkgZW5jb2RpbmdzDQpodHRwczovL2J1Z3MucnVi eS1sYW5nLm9yZy9pc3N1ZXMvMTg5NDkjY2hhbmdlLTk4NjM0DQoNCiogQXV0aG9yOiBFcmVnb24g KEJlbm9pdCBEYWxvemUpDQoqIFN0YXR1czogT3Blbg0KKiBQcmlvcml0eTogTm9ybWFsDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpSdWJ5IGhhcyBhIGxvdCBvZiBh Y2NpZGVudGFsIGNvbXBsZXhpdHkuDQpTb21ldGltZXMgaXQgYmVjb21lcyBjbGVhciBzb21lIGZl YXR1cmVzIGJyaW5nIGEgbG90IG9mIGNvbXBsZXhpdHkgYW5kIHlldCBwcm92aWRlIGxpdHRsZSB2 YWx1ZSBvciBhcmUgdXNlZCB2ZXJ5IHJhcmVseS4NCkFsc28gbW9zdCBSdWJ5IHVzZXJzIGRvIG5v dCBldmVuIGtub3cgYWJvdXQgdGhlc2UgZmVhdHVyZXMuDQpSZXBsaWNhdGUgYW5kIGR1bW15IGVu Y29kaW5ncyBzZWVtIHRvIGNsZWFybHkgZmFsbCBpbnRvIHRoaXMgY2F0ZWdvcnksIGFsbW9zdCBu b2JvZHkgdXNlcyB0aGVtIGJ1dCB0aGV5IGFkZCBhIHNpZ25pZmljYW50IGNvbXBsZXhpdHkgYW5k IGFsc28gYWRkIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2Ugb3ZlcmhlYWQuDQpOb3RhYmx5LCB0 aGUgZXhpc3RlbmNlIG9mIHRob3NlIG1lYW5zIHRoZSBudW1iZXIgb2YgZW5jb2RpbmdzIGluIGEg UnVieSBydW50aW1lIGlzIGFjdHVhbGx5IHZhcmlhYmxlIGFuZCBub3QgZml4ZWQuDQpUaGF0IG1l YW5zIGV4dHJhIHN5bmNocm9uaXphdGlvbiwgaGFzaHRhYmxlIGxvb2t1cHMsIGluZGlyZWN0aW9u cywgZnVuY3Rpb24gY2FsbHMsIGV0Yy4NCg0KIyMgUmVwbGljYXRlIEVuY29kaW5ncw0KDQpSZXBs aWNhdGUgZW5jb2RpbmdzIGFyZSBjcmVhdGVkIHVzaW5nIGBFbmNvZGluZyNyZXBsaWNhdGUobmFt ZSlgLg0KSXQgYWxtb3N0IHNvdW5kcyBsaWtlIGFuIGFsaWFzIGJ1dCBpbiBmYWN0IGl0IGlzIG1v cmUgdGhhbiB0aGF0IGFuZCBjcmVhdGVzIGEgbmV3IEVuY29kaW5nIG9iamVjdCwgd2hpY2ggY2Fu IGJlIHVzZWQgYnkgYSBTdHJpbmc6DQpgYGBydWJ5DQplID0gRW5jb2Rpbmc6OlVTX0FTQ0lJLnJl cGxpY2F0ZSgnTVktVVMtQVNDSUknKQ0KcyA9ICJhYmMiLmZvcmNlX2VuY29kaW5nKGUpDQpwIHMu ZW5jb2RpbmcgIyA9PiBlDQpwIHMuZW5jb2RpbmcubmFtZSAjID0+ICdNWS1VUy1BU0NJSScNCmBg YA0KDQpUaGlzIHNlZW1zIGNvbXBsZXRlbHkgdXNlbGVzcy4NClRoZXJlIGlzIGFuIG9idmlvdXMg Zmlyc3Qgc3RlcCBoZXJlIHdoaWNoIGlzIHRvIGNoYW5nZSBgRW5jb2RpbmcjcmVwbGljYXRlYCB0 byByZXR1cm4gdGhlIHJlY2VpdmVyLCBhbmQganVzdCBpbnN0YWxsIGFuIGFsaWFzIGZvciBpdC4N ClRoYXQgYXZvaWRzIGNyZWF0aW5nIG1vcmUgZW5jb2RpbmcgaW5zdGFuY2VzIG5lZWRsZXNzbHku DQoNCkkgdGhpbmsgd2Ugc2hvdWxkIGFsc28gZGVwcmVjYXRlIGFuZCByZW1vdmUgdGhpcyBtZXRo b2QgdGhvdWdoLCBpdCBpcyBuZXZlciBhIGdvb2QgaWRlYSB0byBoYXZlIGEgZ2xvYmFsIG11dGFi bGUgbWFwIGxpa2UgdGhpcy4NCklmIHNvbWVvbmUgd2FudCBleHRyYSBhbGlhc2VzIGZvciBlbmNv ZGluZ3MsIHRoZXkgY2FuIGVhc2lseSB0byBkbyBzbyBieSBoYXZpbmcgdGhlaXIgb3duIEhhc2g6 IGB7IGFsaWFzID0+IGVuY29kaW5nIH0uZmV0Y2gobmFtZSkgeyBFbmNvZGluZy5maW5kKG5hbWUp IH1gLg0KDQojIyBEdW1teSBFbmNvZGluZ3MNCg0KRHVtbXkgZW5jb2RpbmdzIGFyZSBub3QgcmVh bCBlbmNvZGluZ3MuIFRoZXkgYXJlIGFydGlmaWNpYWwgZW5jb2RpbmdzIGRlc2lnbmVkIHRvIGxv b2sgbGlrZSBlbmNvZGluZ3MsIGJ1dCBkb24ndCBmdW5jdGlvbiBhcyBlbmNvZGluZ3MgaW4gUnVi eS4NCkZyb20gdGhlIGRvY3M6DQpgYGANCmVuYy5kdW1teT8gLT4gdHJ1ZSBvciBmYWxzZQ0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpSZXR1cm5zIHRydWUgZm9yIGR1bW15IGVuY29kaW5ncy4gQSBkdW1teSBl bmNvZGluZyBpcyBhbiBlbmNvZGluZyBmb3INCndoaWNoIGNoYXJhY3RlciBoYW5kbGluZyBpcyBu b3QgcHJvcGVybHkgaW1wbGVtZW50ZWQuIEl0IGlzIHVzZWQgZm9yDQpzdGF0ZWZ1bCBlbmNvZGlu Z3MuDQpgYGANCg0KSSB3b25kZXIgd2h5IHdlIGhhdmUgdGhvc2UgaGFsZi1pbXBsZW1lbnRlZCBl bmNvZGluZ3MgaW4gY29yZSwgaXQgc291bmRzIHRvIG1lIGxpa2UgdW5maW5pc2hlZCB3b3JrIHdo aWNoIHNob3VsZCBub3QgaGF2ZSBiZWVuIG1lcmdlZC4NCg0KVGhlICJjb2RlcG9pbnRzIiBvZiBk dW1teSBlbmNvZGluZ3MgYXJlIGp1c3QgImJ5dGVzIiBhbmQgc28gdGhleSBiZWhhdmUgdGhlIHNh bWUgYXMgYEVuY29kaW5nOjpCSU5BUllgLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIFVURi0x NiBhbmQgVVRGLTMyIGR1bW15IGVuY29kaW5ncy4NCg0KIyMjIFVURi0xNiBhbmQgVVRGLTMyIGR1 bW15IGVuY29kaW5ncw0KDQpUaGVzZSB0d28gYXJlIHNwZWNpYWwgZHVtbXkgZW5jb2RpbmdzLg0K V2hhdCB0aGV5IGRvIGlzIHRoZXkgc2NhbiB0aGUgZmlyc3QgMiBvciA0IGJ5dGVzIG9mIHRoZSBT dHJpbmcsIGFuZCBpZiB0aG9zZSBieXRlcyBhcmUgYSBieXRlLW9yZGVyIG1hcmsgKEJPTSksDQp0 aGUgdHJ1ZSAiYWN0dWFsIiBlbmNvZGluZyBpcyByZXNvbHZlZCB0byBVVEYtMTZCRS9VVEYtMTZM RSBvciBVVEYtMzJCRS9VVEYtMzJMRS4NCk90aGVyd2lzZSwgYEVuY29kaW5nOjpCSU5BUllgIGlz IHJldHVybmVkLg0KVGhpcyBsb2dpYyBpcyBkb25lIGJ5IGBnZXRfYWN0dWFsX2VuY29kaW5nKClg Lg0KDQpXaGF0IGlzIHdlaXJkIGlzIHRoaXMgY2hlY2sgaXMgbm90IGRvbmUgb24gU3RyaW5nIGNy ZWF0aW9uLCBubywgaXQgaXMgZG9uZSAqZXZlcnkgdGltZSogdGhlIGVuY29kaW5nIG9mIHRoYXQg U3RyaW5nIGlzIGFjY2Vzc2VkIChhbmQgdGhlIHJlc3VsdCBpcyBub3Qgc3RvcmVkIG9uIHRoZSBT dHJpbmcpLg0KVGhhdCBpcyBhIG5lZWRsZXNzIG92ZXJoZWFkIGFuZCByZWFsbHkgdW5yZWxpYWJs ZSBzZW1hbnRpY3MuDQpEbyB3ZSByZWFsbHkgd2FudCBhIFN0cmluZyB3aGljaCBhdXRvbWFnaWNh bGx5IGNoYW5nZXMgYmV0d2VlbiBVVEYtMTZMRSBhbmQgVVRGLTE2QkUgYmFzZWQgb24gbXV0YXRp bmcgaXRzIGJ5dGVzPyBJIHRoaW5rIG5vYm9keSB3YW50cyB0aGF0Og0KYGBgcnVieQ0KcyA9ICJc eEZGXHhGRWFceDAwYlx4MDBjXHgwMGRceDAwIi5mb3JjZV9lbmNvZGluZygiVVRGLTE2IikNCnAg cyAjID0+ICJcdUZFRkZhYmNkIg0Kcy5zZXRieXRlIDAsIDI1NA0Kcy5zZXRieXRlIDEsIDI1NQ0K cCBzICMgPT4gIlx1RkVGRlx1NjEwMFx1NjIwMFx1NjMwMFx1NjQwMCINCmBgYA0KDQpJIHRoaW5r IHRoZSBwYXRoIGlzIGNsZWFyLCB3ZSBzaG91bGQgZGVwcmVjYXRlIGFuZCB0aGVuIHJlbW92ZSBF bmNvZGluZzo6VVRGXzE2IGFuZCBFbmNvZGluZzo6VVRGXzMyIChkdW1teSBlbmNvZGluZ3MpLg0K QW5kIHRoZW4gd2Ugbm8gbG9uZ2VyIG5lZWQgYGdldF9hY3R1YWxfZW5jb2RpbmcoKWAgYW5kIHRo ZSBvdmVyaGVhZCBpdCBhZGRzIHRvIGV2ZXJ5IFN0cmluZyBtZXRob2QuDQoNCldlIGNvdWxkIGFs c28ga2VlcCB0aG9zZSBjb25zdGFudHMgYW5kIG1ha2UgdGhlbSByZWZlciB0aGUgbmF0aXZlLWVu ZGlhbiBVVEYtMTYvMzIuDQpCdXQgdGhhdCBjb3VsZCBjYXVzZSBjb25mdXNpbmcgZXJyb3JzIGFz IHdlIHdvdWxkIGNoYW5nZSB0aGUgbWVhbmluZyBvZiB0aGVtLg0KV2UgY291bGQgYWRkIGBFbmNv ZGluZzo6VVRGXzE2TkVgIC8gYEVuY29kaW5nOjpVVEZfMTZfTkFUSVZFX0VORElBTmAgaWYgdGhh dCBpcyB1c2VmdWwuDQoNCkFub3RoZXIgcG9zc2liaWxpdHkgd291bGQgYmUgdG8gcmVzb2x2ZSB0 aGVzZSBlbmNvZGluZ3Mgb24gU3RyaW5nIGNyZWF0aW9uLCBsaWtlOg0KYGBgDQoiXHhGRlx4RkUi LmZvcmNlX2VuY29kaW5nKCJVVEYtMTYiKS5lbmNvZGluZyAjID0+IFVURi0xNkxFDQpTdHJpbmcu bmV3KCJceEZGXHhGRSIsIGVuY29kaW5nOiBFbmNvZGluZzo6VVRGXzE2KS5lbmNvZGluZyAjID0+ IFVURi0xNkxFDQoiYWIiLmZvcmNlX2VuY29kaW5nKCJVVEYtMTYiKS5lbmNvZGluZyAjIGV4Y2Vw dGlvbiwgbm90IGEgQk9NDQpTdHJpbmcubmV3KCJhYiIsIGVuY29kaW5nOiBFbmNvZGluZzo6VVRG XzE2KS5lbmNvZGluZyAjIGV4Y2VwdGlvbiwgbm90IGEgQk9NDQpgYGANCkkgdGhpbmsgaXQgaXMg dW5uZWNlc3NhcnkgdG8ga2VlcCBzdWNoIGNvbXBsZXhpdHkgdGhvdWdoLg0KQSBjbGFzcyBtZXRo b2Qgb24gU3RyaW5nIG9yIEVuY29kaW5nIGxpa2UgZS5nLiBgRW5jb2RpbmcuZmluZF9mcm9tX2Jv bShzdHJpbmcpYCBpcyBzbyBtdWNoIGNsZWFyZXIgYW5kIGVmZmljaWVudCAobm8gbmVlZCB0byBz cGVjaWFsIGNhc2UgdGhvc2UgZW5jb2RpbmdzIGluIFN0cmluZy5uZXcsICNmb3JjZV9lbmNvZGlu ZywgZXRjKS4NCg0KRldJVyBKUnVieSBzZWVtcyB0byB1c2UgYGdldEFjdHVhbEVuY29kaW5nKClg IG9ubHkgaW4gMiBwbGFjZXMgKHNjYW5Gb3JDb2RlUmFuZ2UsIGluc3BlY3QpLCB3aGljaCBpcyBh biBpbmRpY2F0aW9uIHRob3NlIGR1bW15IFVURiBlbmNvZGluZ3MgYXJlIGJhcmVseSB1c2VkIGlm IGV2ZXIuIFNpbWlsYXJseSwgVHJ1ZmZsZVJ1Ynkgb25seSBoYXMgNCB1c2FnZXMgb2YgYEdldEFj dHVhbEVuY29kaW5nTm9kZWAuDQoNCiMjIyBFeGlzdGluZyBkdW1teSBlbmNvZGluZ3MNCg0KYGBg DQo+IEVuY29kaW5nLmxpc3Quc2VsZWN0KCY6ZHVtbXk/KSANClsjPEVuY29kaW5nOlVURi0xNiAo ZHVtbXkpPiwgICM8RW5jb2Rpbmc6VVRGLTMyIChkdW1teSk+LA0KICM8RW5jb2Rpbmc6SUJNMDM3 IChkdW1teSk+LCAjPEVuY29kaW5nOlVURi03IChkdW1teSk+LA0KICM8RW5jb2Rpbmc6SVNPLTIw MjItSlAgKGR1bW15KT4sICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAtMiAoZHVtbXkpPiwgIzxFbmNv ZGluZzpJU08tMjAyMi1KUC1LRERJIChkdW1teSk+LA0KICM8RW5jb2Rpbmc6Q1A1MDIyMCAoZHVt bXkpPiwgIzxFbmNvZGluZzpDUDUwMjIxIChkdW1teSk+XQ0KYGBgDQoNClNvIGJlc2lkZXMgVVRG LTE2L1VURi0zMiBkdW1teSwgaXQncyBvbmx5IDcgZW5jb2RpbmdzLg0KRG9lcyBhbnlvbmUgdXNl IG9uZSBvZiB0aGVzZSA3IGR1bW15IGVuY29kaW5ncz8NCg0KV2hhdCBpcyBpbnRlcmVzdGluZyB0 byBub3RlLCBpcyB0aGF0IHRoZXNlIGVuY29kaW5ncyBhcmUgZXhhY3RseSB0aGUgb25lcyB0aGF0 IGFyZSBhbHNvIG5vdCBBU0NJSS1jb21wYXRpYmxlLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgVVRG LTE2QkUvVVRGLTE2TEUvVVRGLTMyQkUvVVRGLTMyTEUgKG5vbi1kdW1teSkuDQpBcyBhIG5vdGUs IFVURi17MTYsMzJ9e0JFLExFfSBhcmUgQVNDSUktY29tcGF0aWJsZSBpbiBjb2RlcG9pbnRzIGJ1 dCBub3QgaW4gYnl0ZXMsIGFuZCBSdWJ5IHVzZXMgdGhlIGJ5dGVzIGRlZmluaXRpb24gb2YgQVND SUktY29tcGF0aWJsZS4NClRoZXJlIGlzIHBvdGVudGlhbCB0byBzaW1wbGlmeSBlbmNvZGluZyBj b21wYXRpYmlsaXR5IHJ1bGVzIGFuZCBlbmNvZGluZyBjb21wYXRpYmlsaXR5IGNoZWNrcyBiYXNl ZCBvbiB0aGF0Lg0KU28gd2hhdCB0aGlzIG1lYW5zIGlzIGlmIHdlIHJlbW92ZWQgZHVtbXkgZW5j b2RpbmdzLCBhbGwgZW5jb2RpbmdzIGV4Y2VwdCBVVEYtezE2LDMyfXtCRSxMRX0gd291bGQgYmUg QVNDSUktY29tcGF0aWJsZSwgd2hpY2ggd291bGQgbGVhZCB0byBzaWduaWZpY2FudCBzaW1wbGlm aWNhdGlvbnMgZm9yIG1hbnkgc3RyaW5nIG9wZXJhdGlvbnMgd2hpY2ggY3VycmVudGx5IG5lZWQg dG8gaGFuZGxlIGR1bW15IGVuY29kaW5ncyBzcGVjaWFsbHkuDQpVbmljb2RlIGVuY29kaW5ncyBs aWtlIFVURi17MTYsMzJ9e0JFLExFfSBhbHJlYWR5IGhhdmUgc3BlY2lhbCBiZWhhdmlvciBmb3Ig c29tZSBSdWJ5IG1ldGhvZHMsIHNvIHRob3NlIGFyZSBhbHJlYWR5IGhhbmRsZWQgc3BlY2lhbGx5 IGluIHNvbWUgcGxhY2VzICh0aGV5IGFyZSB0aGUgb25seSBlbmNvZGluZ3Mgd2l0aCBtaW5MZW5n dGggPiAxKS4NCg0KYGBgDQo+IEVuY29kaW5nLmxpc3QucmVqZWN0KCY6YXNjaWlfY29tcGF0aWJs ZT8pDQpbIzxFbmNvZGluZzpVVEYtMTZCRT4sICM8RW5jb2Rpbmc6VVRGLTE2TEU+LA0KICM8RW5j b2Rpbmc6VVRGLTMyQkU+LCAjPEVuY29kaW5nOlVURi0zMkxFPiwNCiAjPEVuY29kaW5nOlVURi0x NiAoZHVtbXkpPiwgIzxFbmNvZGluZzpVVEYtMzIgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJQk0w MzcgKGR1bW15KT4sICM8RW5jb2Rpbmc6VVRGLTcgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJU08t MjAyMi1KUCAoZHVtbXkpPiwgIzxFbmNvZGluZzpJU08tMjAyMi1KUC0yIChkdW1teSk+LCAjPEVu Y29kaW5nOklTTy0yMDIyLUpQLUtEREkgKGR1bW15KT4sDQogIzxFbmNvZGluZzpDUDUwMjIwIChk dW1teSk+LCAjPEVuY29kaW5nOkNQNTAyMjEgKGR1bW15KT5dDQpgYGANCg0KV2hhdCBjYW4gd2Ug ZG8gd2l0aCBzdWNoIGEgZHVtbXkgbm9uLUFTQ0lJLWNvbXBhdGlibGUgZW5jb2Rpbmc/DQpBbG1v c3Qgbm90aGluZyB1c2VmdWw6DQpgYGBydWJ5DQpzID0gImFiYyIuZW5jb2RlKCJJQk0wMzciKQ0K PT4gIlx4ODFceDgyXHg4MyINCj4gcy5ieXRlcw0KPT4gWzEyOSwgMTMwLCAxMzFdDQo+IHMuY29k ZXBvaW50cw0KPT4gWzEyOSwgMTMwLCAxMzFdDQo+IHMgPT0gImFiYyINCj0+IGZhbHNlDQo+ICLD qXTDqSIuZW5jb2RlKCJJQk0wMzciKQ0KPT4gIlx4NTFceEEzXHg1MSINCmBgYA0KDQpTbyBhYm91 dCB0aGUgb25seSB0aGluZyB0aGF0IHdvcmtzIHdpdGggdGhlbSBpcyBgU3RyaW5nI2VuY29kZWAu DQoNCkkgdGhpbmsgd2UgY291bGQgcHJlc2VydmUgdGhhdCBmdW5jdGlvbmFsaXR5LCBpZiBhY3R1 YWxseSB1c2VkIChkb2VzIGFueW9uZSB1c2Ugb25lIG9mIHRoZXNlIDcgZHVtbXkgZW5jb2Rpbmdz PyksIHRocm91Z2g6DQpgYGBydWJ5DQo+ICLDqXTDqSIuZW5jb2RlKCJJQk0wMzciKQ0KPT4gIlx4 NTFceEEzXHg1MSIgKC5lbmNvZGluZyA9PSBCSU5BUlkpDQo+ICJceDUxXHhBM1x4NTEiLmVuY29k ZSgiVVRGLTgiLCAiSUJNMDM3IikgIyBlbmNvZGUgZnJvbSBJQk0wMzcgdG8gVVRGLTgNCj0+ICLD qXTDqSIgKC5lbmNvZGluZyA9PSBVVEYtOCkNCmBgYA0KDQpUaGF0IHdheSB0aGVyZSBpcyBubyBu ZWVkIGZvciB0aG9zZSB0byBiZSBFbmNvZGluZyBpbnN0YW5jZXMsIHdlIHdvdWxkIG9ubHkgbmVl ZCB0aGUgY29udmVyc2lvbiB0YWJsZXMuDQoNCkl0IGlzIGV2ZW4gYmV0dGVyIGlmIHdlIGNhbiBy ZW1vdmUgdGhlbSwgc28gdGhlIG5vdGlvbiBvZiAiZHVtbXkgZW5jb2RpbmdzIiBjYW4gZGlzYXBw ZWFyIGNvbXBsZXRlbHkgYW5kIG5vYm9keSBuZWVkcyB0byB1bmRlcnN0YW5kIG9yIGltcGxlbWVu dCB0aGVtLg0KDQojIyMgcmJfZGVmaW5lX2R1bW15X2VuY29kaW5nKG5hbWUpDQoNClRoZSBDLUFQ SSBoYXMgYHJiX2RlZmluZV9kdW1teV9lbmNvZGluZyhjb25zdCBjaGFyICpuYW1lKWAuDQpUaGlz IGNyZWF0ZXMgYSBuZXcgRW5jb2RpbmcgaW5zdGFuY2Ugd2l0aCBgZHVtbXk/PXRydWVgLCBhbmQg aXQgaXMgYWxzbyBub24tQVNDSUktY29tcGF0aWJsZS4NClRoZXJlIHNlZW1zIHRvIGJlIG5vIHB1 cnBvc2UgdG8gdGhpcyBiZXNpZGVzIHN0b3JpbmcgdGhlIG1ldGFkYXRhIG9mIGFuIGVuY29kaW5n IHdoaWNoIGRvZXMgbm90IGV4aXN0IGluIFJ1YnkuDQpUaGlzIHNlZW1zIGEgcmVhbGx5IGV4cGVu c2l2ZS9jb21wbGV4IHdheSB0byBoYW5kbGUgdGhhdCBmcm9tIHRoZSBWTSBwb2ludCBvZiB2aWV3 IChiZWNhdXNlIGl0IGR5bmFtaWNhbGx5IGNyZWF0ZXMgYW4gRW5jb2RpbmcgYW5kIGFkZCBpdCB0 byBsaXN0cy9tYXBzL2V0YykuDQpBIHNpbXBsZSByZXBsYWNlbWVudCB3b3VsZCBiZSB0byBtYXJr IHRoZSBTdHJpbmcgYXMgQklOQVJZIGFuZCBzYXZlIHRoZSBlbmNvZGluZyBuYW1lIGFzIGFuIGlu c3RhbmNlIHZhcmlhYmxlIG9mIHRoYXQgU3RyaW5nLg0KU2luY2UgYW55d2F5IFJ1YnkgY2FuJ3Qg dW5kZXJzdGFuZCBhbnl0aGluZyBhYm91dCB0aGF0IFN0cmluZywgaXQncyBqdXN0IHJhdyBieXRl cyB0byBSdWJ5J3MgZXllcy4NCg0KIyMgU3VtbWFyeQ0KDQpJIHN1Z2dlc3Qgd2UgZGVwcmVjYXRl IHJlcGxpY2F0ZSBhbmQgZHVtbXkgZW5jb2RpbmdzIGluIFJ1YnkgMy4yLg0KQW5kIHRoZW4gd2Ug cmVtb3ZlIHRoZW0gaW4gdGhlIG5leHQgdmVyc2lvbi4NCg0KVGhpcyB3aWxsIHNpZ25pZmljYW50 bHkgc2ltcGxpZnkgc3RyaW5nLXJlbGF0ZWQgbWV0aG9kcywgYW5kIHRoZSBiZWhhdmlvciBleHBv c2VkIHRvIFJ1YnkgdXNlcnMuDQoNCkl0IHdpbGwgYWxzbyBzaWduaWZpY2FudGx5IHNwZWVkdXAg ZW5jb2RpbmcgbG9va3VwIGluIENSdWJ5IChhbmQgb3RoZXIgUnVieSBpbXBsZW1lbnRhdGlvbnMp Lg0KV2l0aCBhIGZpeGVkIG51bWJlciBvZiBlbmNvZGluZ3Mgd2UgY2FuIGVuc3VyZSBhbGwgZW5j b2RpbmcgaW5kaWNlcyBmaXQgaW4gNyBiaXRzLCBhbmQgYEVOQ09ESU5HX0dFVGAgY2FuIGJlIHNp bXBseSBgUkJfRU5DT0RJTkdfR0VUX0lOTElORURgLg0KYGdldF9hY3R1YWxfZW5jb2RpbmcoKWAg d2lsbCBiZSBnb25lIGFuZCBpdHMgb3ZlcmhlYWQgYXMgd2VsbC4NCmByYl9lbmNfZnJvbV9pbmRl eCgpYCB3b3VsZCBiZSBqdXN0IGByZXR1cm4gZ2xvYmFsX2VuY190YWJsZS0+bGlzdFtpbmRleF0u ZW5jO2AsIGluc3RlYWQgb2YgdGhlIGV4cGVuc2l2ZSBiZWhhdmlvciBjdXJyZW50bHkgd2l0aCBg R0xPQkFMX0VOQ19UQUJMRV9FVkFMYCB3aGljaCB0YWtlcyBhIGxvY2sgYW5kIG1vcmUgd2hlbiB0 aGVyZSBhcmUgbXVsdGlwbGUgUmFjdG9ycy4NCk1hbnkgY2hlY2tzIGluIHRoZXNlIG1ldGhvZHMg d291bGQgYmUgcmVtb3ZlZCBhcyB3ZWxsLg0KWWV0IGFub3RoZXIgaW1wcm92ZW1lbnQgd291bGQg YmUgdG8gbG9hZCBhbGwgZW5jb2RpbmdzIGVhZ2VybHksIHRoYXQgaXMgc21hbGwgYW5kIGZhc3Qg aW4gbXkgZXhwZXJpZW5jZSwgd2hhdCBpcyBzbG93IGFuZCBiaWcgaXMgdGhlIGNvbnZlcnNpb24g dGFibGVzLCB0aGF0J2Qgc2ltcGxpZnkgYG11c3RfZW5jaW5kZXgoKWAgZnVydGhlci4NClRoZXNl IGNoYW5nZXMgd291bGQgYWZmZWN0IG1vc3QgU3RyaW5nIG1ldGhvZHMsIHdoaWNoIHVzZQ0KYGBg DQpTVFJfRU5DX0dFVC0+Z2V0X2VuY29kaW5nIHdoaWNoIGRvZXM6DQogIGdldF9hY3R1YWxfZW5j b2RpbmctPnJiX2VuY19mcm9tX2luZGV4IGFuZCBwb3NzaWJseSAtPmVuY19mcm9tX2luZGV4DQog IEVOQ09ESU5HX0dFVC0+UkJfRU5DT0RJTkdfR0VUX0lOTElORUQgYW5kIHBvc3NpYmx5IC0+cmJf ZW5jX2dldF9pbmRleC0+ZW5jX2dldF9pbmRleF9zdHItPnJiX2F0dHJfZ2V0DQpgYGANClNvbWUg b2YgdGhlc2UgZGV0YWlscyBhcmUgbWVudGlvbmVkIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5 L3J1YnkvcHVsbC82MDk1I2Rpc2N1c3Npb25fcjkxNTE0OTcwOC4NClRoZSBvdmVyaGVhZCBpcyBz byBsYXJnZSB0aGF0IGl0IGlzIHdvcnRoIGhhbmRsaW5nIHNvbWUgaGFyZGNvZGVkIGVuY29kaW5n IGluZGljZXMgZGlyZWN0bHkgaW4gU3RyaW5nIG1ldGhvZHMuDQpUaGlzIGZlZWxzIHdyb25nLCBn ZXR0aW5nIHRoZSBlbmNvZGluZyBmcm9tIGEgU3RyaW5nIHNob3VsZCBiZSBzaW1wbGUsIHN0cmFp Z2h0Zm9yd2FyZCBhbmQgZmFzdC4NCg0KRnVydGhlciBvcHRpbWl6YXRpb25zIHdpbGwgYmUgdW5s b2NrZWQgYXMgdGhlIGVuY29kaW5nIGxpc3QgYmVjb21lcyBmaXhlZCBhbmQgaW1tdXRhYmxlLg0K Rm9yIGV4YW1wbGUsIHRoZSBuYW1lLXRvLUVuY29kaW5nIG1hcCBpcyB0aGVuIGltbXV0YWJsZSBh bmQgY291bGQgdXNlIHBlcmZlY3QgaGFzaGluZy4NCklubGluZSBjYWNoaW5nIHRob3NlIGxvb2t1 cHMgYWxzbyBiZWNvbWVzIGVhc2llciBhcyB0aGUgdGhlIG1hcCBjYW5ub3QgY2hhbmdlLg0KQWxz byB0aGF0IG1hcCB3b3VsZCBubyBsb25nZXIgbmVlZCBzeW5jaHJvbml6YXRpb24sIGV0Yy4NCg0K IyMgVG8gRGVjaWRlDQoNCkVhY2ggaXRlbSBpcyBpbmRlcGVuZGVudC4gSSB0aGluayAxICYgMiBh cmUgdmVyeSBpbXBvcnRhbnQsIDMgbGVzcyBidXQgd291bGQgYmUgbmljZS4NCg0KMS4gRGVwcmVj YXRlIGFuZCB0aGVuIHJlbW92ZSBgRW5jb2RpbmcjcmVwbGljYXRlYCBhbmQgYHJiX2RlZmluZV9k dW1teV9lbmNvZGluZygpYC4gV2l0aCB0aGF0IHRoZXJlIGlzIGEgZml4ZWQgbnVtYmVyIG9mIGVu Y29kaW5ncywgYSBsb3Qgb2Ygc2ltcGxpZmljYXRpb25zIGFuZCBtYW55IG9wdGltaXphdGlvbnMg YmVjb21lIGF2YWlsYWJsZS4gVGhleSBhcmUgdXNlZCByZXNwZWN0aXZlbHkgaW4gb25seSAxIGdl bSBhbmQgNSBnZW1zLCBzZWUgaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4OTQ5 I25vdGUtNA0KMi4gRGVwcmVjYXRlIGFuZCB0aGVuIHJlbW92ZSB0aGUgZHVtbXkgVVRGLTE2IGFu ZCBVVEYtMzIgZW5jb2RpbmdzLiBUaGlzIHJlbW92ZXMgdGhlIG5lZWQgZm9yIGBnZXRfYWN0dWFs X2VuY29kaW5nKClgIHdoaWNoIGlzIGV4cGVuc2l2ZS4gVGhpcyBmdW5jdGlvbmFsaXR5IHNlZW1z IHJhcmVseSB1c2VkIGluIHByYWN0aWNlLCBhbmQgaXQgb25seSB3b3JrcyB3aGVuIHN1Y2ggc3Ry aW5ncyBoYXZlIGEgQk9NLCB3aGljaCBpcyB2ZXJ5IHJhcmUuDQozLiBEZXByZWNhdGUgYW5kIHRo ZW4gcmVtb3ZlIG90aGVyIGR1bW15IGVuY29kaW5ncywgc28gdGhlcmUgYXJlIG5vIG1vcmUgZHVt bXkgImhhbGYtaW1wbGVtZW50ZWQiIGVuY29kaW5ncyBhbmQgYWxsIGVuY29kaW5ncyBhcmUgQVND SUktY29tcGF0aWJsZSBpbiB0ZXJtcyBvZiBjb2RlcG9pbnRzLg0KDQoNCg0KLS0gDQpodHRwczov L2J1Z3MucnVieS1sYW5nLm9yZy8NCg==