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-Status: No, score=-2.0 required=3.0 tests=AWL,BAYES_00,BODY_8BITS, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY 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 0A2311F5AF for ; Tue, 30 Mar 2021 18:24:58 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id AA03C120E01; Wed, 31 Mar 2021 03:23:56 +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 45906120E00 for ; Wed, 31 Mar 2021 03:23:54 +0900 (JST) Received: by filterdrecv-p3mdw1-85cc49d4fc-hpkcn with SMTP id filterdrecv-p3mdw1-85cc49d4fc-hpkcn-19-60636CF2-34 2021-03-30 18:24:50.874961926 +0000 UTC m=+604305.048259494 Received: from herokuapp.com (unknown) by geopod-ismtpd-6-1 (SG) with ESMTP id zsIwnFQyQ3WsogMUSYLIAw for ; Tue, 30 Mar 2021 18:24:50.727 +0000 (UTC) Date: Tue, 30 Mar 2021 18:24:50 +0000 (UTC) From: eileencodes@gmail.com Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 79141 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 17763 X-Redmine-Issue-Author: eileencodes X-Redmine-Sender: eileencodes 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-SG-EID: =?us-ascii?Q?OsAAnaoahvGE1Smyl5pGl+3Y0HQT8Sh2mm6KgSlol8I=2FjNVg+EblmpOsVQnmki?= =?us-ascii?Q?yiWDAPUWUPhAAbwEWGz43LARd3bqT4tH3mCRFx5?= =?us-ascii?Q?pfen+YTcloXoDX9M+hfD+l=2FNY0PkBVp51ojcbeS?= =?us-ascii?Q?+W6fQoEXyG6ZV+zOP3ZprxERUgTMbFZmZ66F5Vh?= =?us-ascii?Q?weS9j9im=2F58exBUA1bkfJoMsB3cQ7w1WxZc0mY+?= =?us-ascii?Q?WZXhEazr=2FdWOofewA=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 103106 Subject: [ruby-core:103106] [Ruby master Feature#17763] Implement cache for cvars X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE3NzYzIGhhcyBiZWVuIHVwZGF0ZWQgYnkgZWlsZWVuY29kZXMgKEVpbGVlbiBVY2hp dGVsbGUpLg0KDQoNClRoaXMgaXMgdGhlIG1pc3NpbmcgYmVuY2htYXJrIEkgY29weSBhbmQgcGFz dGVkIGluY29ycmVjdGx5Lg0KDQogICAgUnVieSBtYXN0ZXIgLyBSYWlscyA2LjE6DQogICAgDQog ICAgYGBgDQogICAgV2FybWluZyB1cCDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTi gJTigJTigJTigJTigJTigJTigJTigJQNCiAgICAgICAgICAgICAgICAgIGxvZ2dlciAgIDE1NS4y NTFrIEkvMTAwbXMNCiAgICBDYWxjdWxhdGluZyDigJTigJTigJTigJTigJTigJTigJTigJTigJTi gJTigJTigJTigJTigJTigJTigJTigJTigJQNCiAgICAgICAgICAgICAgICAgIGxvZ2dlciAgICAg IDEuNTAyTSAowrEgNC41JSkgSS9zIC0gICAgICA3LjYwN00gaW4gICA1LjA3Njg2OXMNCiAgICBg YGANCiAgICANCiAgICBUaGlzIGJyYW5jaCAvIFJhaWxzIDYuMToNCiAgICANCiAgICBgYGANCiAg ICBXYXJtaW5nIHVwIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKA lOKAlOKAlOKAlOKAlA0KICAgICAgICAgICAgICAgICAgbG9nZ2VyICAgICAxLjU0Nk0gSS8xMDBt cw0KICAgIENhbGN1bGF0aW5nIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKA lOKAlOKAlOKAlOKAlOKAlA0KICAgICAgICAgICAgICAgICAgbG9nZ2VyICAgICAxNC44NTdNICjC sSA0LjglKSBJL3MgLSAgICAgNzQuMTk4TSBpbiAgIDUuMDA2MjAycw0KICAgIGBgYA0KDQoNCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzE3NzYzOiBJ bXBsZW1lbnQgY2FjaGUgZm9yIGN2YXJzDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1 ZXMvMTc3NjMjY2hhbmdlLTkxMTcxDQoNCiogQXV0aG9yOiBlaWxlZW5jb2RlcyAoRWlsZWVuIFVj aGl0ZWxsZSkNCiogU3RhdHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW50cm9kdWNlIGlubGluZSBjYWNoZSBm b3IgY2xhc3MgdmFyaWFibGUgcmVhZHMNCg0KQHRlbmRlcmxvdmUgYW5kIEkgd291bGQgbGlrZSB0 byBpbnRyb2R1Y2UgYW4gaW5saW5lIGNhY2hlIGZvciBjbGFzcyB2YXJpYWJsZSByZWFkcy4gV2Un dmUgYXR0YWNoZWQgYSBwYXRjaCB0aGF0IGludHJvZHVjZXMgdGhlIGNhY2hlLiBDbGFzcyB2YXJp YWJsZSByZWFkcyBhcmUgcG9wdWxhciBpbiBSYWlscyBhcHBsaWNhdGlvbnMgZm9yIGV4YW1wbGUs IEFjdGl2ZSBSZWNvcmQncyBgI2xvZ2dlcmAuDQoNCkdpdEh1YiBQUjogaHR0cHM6Ly9naXRodWIu Y29tL3J1YnkvcnVieS9wdWxsLzQzNDANCg0KIyMgQ2FjaGUgRGVzaWduDQoNClRoaXMgcGF0Y2gg aW50cm9kdWNlcyBhIGhhc2ggdGFibGUgdGhhdCdzIHN0b3JlZCBvbiB0aGUgc2FtZSBjbGFzcyBh cyB0aGUgY2xhc3MgdmFyaWFibGUgdmFsdWUuDQoNCkZvciBleGFtcGxlOg0KDQpgYGBydWJ5DQpj bGFzcyBBDQogIEBAZm9vID0gMQ0KZW5kDQoNCmNsYXNzIEIgPCBBDQogIGRlZiBzZWxmLnJlYWRf Zm9vDQogICAgQEBmb28NCiAgZW5kDQplbmQNCmBgYA0KDQpUaGUgYWJvdmUgY29kZSBzdG9yZXMg dGhlIHZhbHVlIGZvciBgQEBmb29gIG9uIHRoZSBgQWAgY2xhc3MgYW5kIHN0b3JlcyBhbiBpbmxp bmUgY2FjaGUgdmFsdWUgb24gdGhlIGBBYCBjbGFzcyBhcyB3ZWxsLiBUaGUgaW5zdHJ1Y3Rpb24g c2VxdWVuY2VzIGZvciB0aGUgYHJlYWRfZm9vYCBtZXRob2QgcG9pbnQgYXQgdGhlIENWQVIgaW5s aW5lIGNhY2hlIGVudHJ5IHN0b3JlZCBvbiBjbGFzcyBgQWAuDQoNClRoZSBsaWZlY3ljbGUgb2Yg dGhlc2UgY2FjaGVzIGFyZSBzaW1pbGFyIHRvIGluc3RhbmNlIHZhcmlhYmxlIGlubGluZSBjYWNo ZXMuDQoNCiMjIyBEaWFncmFtIG9mIHRoZSBjYWNoZToNCg0KIVtjdmFyIGNhY2hlXShodHRwczov L2dpc3QuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VpbGVlbmNvZGVzL2RkZDk1YmU5NzhkZjI3ZWI3 NjU0M2QzNTJkNTE2NDQ5L3Jhdy8xM2U5NjkzMjAxNTlhNGUxYmZmOTQ0NDY5NGExYWMxOThlODky MjM3L2N2YXIlMjUyMGNhY2hlQDJ4JTI1MjAoNikucG5nKQ0KDQoNCiMjIFBlcmZvcm1hbmNlIENo YXJhY3RlcmlzdGljcw0KDQpXaGVuIGNsYXNzIHZhcmlhYmxlcyBhcmUgcmVhZCwgUnVieSBuZWVk cyB0byBjaGVjayBlYWNoIGNsYXNzIGluIHRoZSBpbmhlcml0YW5jZSB0cmVlIHRvIGVuc3VyZSB0 aGF0IHRoZSBjbGFzcyB2YXJpYWJsZSBpc24ndCBzZXQgb24gYW55IG90aGVyIGNsYXNzZXMgaW4g dGhlIHRyZWUuIElmIHRoZSBzYW1lIGN2YXIgaXMgc2V0IG9uIGEgY2xhc3MgaW4gdGhlIGluaGVy aXRhbmNlIHRyZWUgdGhlbiBhICJjdmFyIG92ZXJ0YWtlbiIgZXJyb3Igd2lsbCBiZSByYWlzZWQu DQoNCkJlY2F1c2Ugb2YgaG93IGN2YXIgcmVhZHMgd29yaywgdGhlIG1vcmUgY2xhc3NlcyBpbiB0 aGUgaW5oZXJpdGFuY2UgdHJlZSB0aGUgbW9yZSBleHBlbnNpdmUgYSBjdmFyIHJlYWQgaXMuIFRv IGRlbW9uc3RyYXRlIHRoaXMgaGVyZSBpcyBhIGJlbmNobWFyayB0aGF0IHJlYWRzIGEgY3ZhciBm cm9tIGEgY2xhc3Mgd2l0aCAxIG1vZHVsZSwgMzAgbW9kdWxlcywgYW5kIDEwMCBtb2R1bGVzIGlu IHRoZSBpbmhlcml0YW5jZSBjaGFpbi4gT24gUnVieSBtYXN0ZXIgMTAwIG1vZHVsZXMgaXMgOC41 eCBzbG93ZXIgdGhhbiBpbmNsdWRpbmcgMSBtb2R1bGUuIFdpdGggdGhlIGNhY2hlLCB0aGVyZSBp cyBubyBwZXJmb3JtYW5jZSBkaWZmZXJlbmNlIGJldHdlZW4gaW5jbHVkaW5nIDEgbW9kdWxlIGFu ZCBpbmNsdWRpbmcgMTAwIG1vZHVsZXMuDQoNCkJlbmNobWFyayBzY3JpcHQ6DQoNCmBgYHJ1YnkN CnJlcXVpcmUgImJlbmNobWFyay9pcHMiDQoNCk1PRFVMRVMgPSBbIkIiLCAiQyIsICJEIiwgIkUi LCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgIksiLCAiTCIsICJNIiwgIk4iLCAiTyIsICJQIiwg IlEiLCAiUiIsICJTIiwgIlQiLCAiVSIsICJWIiwgIlciLCAiWCIsICJZIiwgIloiLCAiQUEiLCAi QkIiLCAiQ0MiLCAiREQiLCAiRUUiLCAiRkYiLCAiR0ciLCAiSEgiLCAiSUkiLCAiSkoiLCAiS0si LCAiTEwiLCAiTU0iLCAiTk4iLCAiT08iLCAiUFAiLCAiUVEiLCAiUlIiLCAiU1MiLCAiVFQiLCAi VVUiLCAiVlYiLCAiV1ciLCAiWFgiLCAiWVkiLCAiWloiLCAiQUFBIiwgIkJCQiIsICJDQ0MiLCAi REREIiwgIkVFRSIsICJGRkYiLCAiR0dHIiwgIkhISCIsICJJSUkiLCAiSkpKIiwgIktLSyIsICJM TEwiLCAiTU1NIiwgIk5OTiIsICJPT08iLCAiUFBQIiwgIlFRUSIsICJSUlIiLCAiU1NTIiwgIlRU VCIsICJVVVUiLCAiVlZWIiwgIldXVyIsICJYWFgiLCAiWVlZIiwgIlpaWiIsICJBQUFBIiwgIkJC QkIiLCAiQ0NDQyIsICJEREREIiwgIkVFRUUiLCAiRkZGRiIsICJHR0dHIiwgIkhISEgiLCAiSUlJ SSIsICJKSkpKIiwgIktLS0siLCAiTExMTCIsICJNTU1NIiwgIk5OTk4iLCAiT09PTyIsICJQUFBQ IiwgIlFRUVEiLCAiUlJSUiIsICJTU1NTIiwgIlRUVFQiLCAiVVVVVSIsICJWVlZWIiwgIldXV1ci XQ0KY2xhc3MgQQ0KICBAQGZvbyA9IDENCg0KICBkZWYgc2VsZi5mb28NCiAgICBAQGZvbw0KICBl bmQNCg0KICBldmFsIDw8LUVPTQ0KICAgIG1vZHVsZSAje01PRFVMRVMuZmlyc3R9DQogICAgZW5k DQoNCiAgICBpbmNsdWRlICN7TU9EVUxFUy5maXJzdH0NCiAgRU9NDQplbmQNCg0KY2xhc3MgQXRo aXJ0eQ0KICBAQGZvbyA9IDENCg0KICBkZWYgc2VsZi5mb28NCiAgICBAQGZvbw0KICBlbmQNCg0K ICBNT0RVTEVTLnRha2UoMzApLmVhY2ggZG8gfG1vZHVsZV9uYW1lfA0KICAgIGV2YWwgPDwtRU9N DQogICAgICBtb2R1bGUgI3ttb2R1bGVfbmFtZX0NCiAgICAgIGVuZA0KDQogICAgICBpbmNsdWRl ICN7bW9kdWxlX25hbWV9DQogICAgRU9NDQogIGVuZA0KZW5kDQoNCmNsYXNzIEFodW5kcmVkDQog IEBAZm9vID0gMQ0KDQogIGRlZiBzZWxmLmZvbw0KICAgIEBAZm9vDQogIGVuZA0KDQogIE1PRFVM RVMuZWFjaCBkbyB8bW9kdWxlX25hbWV8DQogICAgZXZhbCA8PC1FT00NCiAgICAgIG1vZHVsZSAj e21vZHVsZV9uYW1lfQ0KICAgICAgZW5kDQoNCiAgICAgIGluY2x1ZGUgI3ttb2R1bGVfbmFtZX0N CiAgICBFT00NCiAgZW5kDQplbmQNCg0KQmVuY2htYXJrLmlwcyBkbyB8eHwNCiAgeC5yZXBvcnQg IjEgbW9kdWxlIiBkbw0KICAgIEEuZm9vDQogIGVuZA0KDQogIHgucmVwb3J0ICIzMCBtb2R1bGVz IiBkbw0KICAgIEF0aGlydHkuZm9vDQogIGVuZA0KDQogIHgucmVwb3J0ICIxMDAgbW9kdWxlcyIg ZG8NCiAgICBBaHVuZHJlZC5mb28NCiAgZW5kDQoNCiAgeC5jb21wYXJlIQ0KZW5kDQpgYGANCg0K UnVieSAzLjAgbWFzdGVyOg0KDQpgYGANCldhcm1pbmcgdXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgIDEgbW9kdWxlICAgICAxLjIzMU0gaS8xMDBt cw0KICAgICAgICAgIDMwIG1vZHVsZXMgICA0MzIuMDIwayBpLzEwMG1zDQogICAgICAgICAxMDAg bW9kdWxlcyAgIDE0NS4zOTlrIGkvMTAwbXMNCkNhbGN1bGF0aW5nIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgIDEgbW9kdWxlICAgICAxMi4yMTBNICjC sSAyLjElKSBpL3MgLSAgICAgNjEuNTUzTSBpbiAgIDUuMDQzNDAwcw0KICAgICAgICAgIDMwIG1v ZHVsZXMgICAgICA0LjM1NE0gKMKxIDIuNyUpIGkvcyAtICAgICAyMi4wMzNNIGluICAgNS4wNjM4 MzlzDQogICAgICAgICAxMDAgbW9kdWxlcyAgICAgIDEuNDM0TSAowrEgMi45JSkgaS9zIC0gICAg ICA3LjI3ME0gaW4gICA1LjA3MjUzMXMNCg0KQ29tcGFyaXNvbjoNCiAgICAgICAgICAgIDEgbW9k dWxlOiAxMjIwOTk1OC4zIGkvcw0KICAgICAgICAgIDMwIG1vZHVsZXM6ICA0MzU0MjE3LjggaS9z IC0gMi44MHggICjCsSAwLjAwKSBzbG93ZXINCiAgICAgICAgIDEwMCBtb2R1bGVzOiAgMTQzNDQ0 Ny4zIGkvcyAtIDguNTF4ICAowrEgMC4wMCkgc2xvd2VyDQpgYGANCg0KUnVieSAzLjAgd2l0aCBj dmFyIGNhY2hlOg0KDQpgYGANCldhcm1pbmcgdXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCiAgICAgICAgICAgIDEgbW9kdWxlICAgICAxLjY0MU0gaS8xMDBtcw0KICAg ICAgICAgIDMwIG1vZHVsZXMgICAgIDEuNjU1TSBpLzEwMG1zDQogICAgICAgICAxMDAgbW9kdWxl cyAgICAgMS42MjBNIGkvMTAwbXMNCkNhbGN1bGF0aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgIDEgbW9kdWxlICAgICAxNi4yNzlNICjCsSAzLjgl KSBpL3MgLSAgICAgODIuMDM4TSBpbiAgIDUuMDQ2OTIzcw0KICAgICAgICAgIDMwIG1vZHVsZXMg ICAgIDE1Ljg5MU0gKMKxIDMuOSUpIGkvcyAtICAgICA3OS40NTlNIGluICAgNS4wMDc5NThzDQog ICAgICAgICAxMDAgbW9kdWxlcyAgICAgMTYuMDg3TSAowrEgMy42JSkgaS9zIC0gICAgIDgxLjAw NU0gaW4gICA1LjA0MTkzMXMNCg0KQ29tcGFyaXNvbjoNCiAgICAgICAgICAgIDEgbW9kdWxlOiAx NjI3OTQ1OC4wIGkvcw0KICAgICAgICAgMTAwIG1vZHVsZXM6IDE2MDg3NDg0LjYgaS9zIC0gc2Ft ZS1pc2g6IGRpZmZlcmVuY2UgZmFsbHMgd2l0aGluIGVycm9yDQogICAgICAgICAgMzAgbW9kdWxl czogMTU4OTE0MDYuMiBpL3MgLSBzYW1lLWlzaDogZGlmZmVyZW5jZSBmYWxscyB3aXRoaW4gZXJy b3INCmBgYA0KDQojIyMgUmFpbHMgQXBwbGljYXRpb24gQmVuY2htYXJrcw0KDQpXZSBhbHNvIGJl bmNobWFya2VkIGBBY3RpdmVSZWNvcmQ6OkJhc2UubG9nZ2VyYCBzaW5jZSBgbG9nZ2VyYCBpcyBh IGN2YXIgYW5kIHRoZXJlIGFyZSA2MyBtb2R1bGVzIGluIHRoZSBpbmhlcml0YW5jZSBjaGFpbi4g VGhpcyBpcyBhbiBleGFtcGxlIG9mIGEgcmVhbC13b3JsZCBpbXByb3ZlbWVudCB0byBSYWlscyBh cHBsaWNhdGlvbnMuDQoNCkJlbmNobWFyazoNCg0KYGBgcnVieQ0KcmVxdWlyZSAiYmVuY2htYXJr L2lwcyINCnJlcXVpcmVfcmVsYXRpdmUgImNvbmZpZy9lbnZpcm9ubWVudCINCg0KQmVuY2htYXJr LmlwcyBkbyB8eHwNCiAgeC5yZXBvcnQgImxvZ2dlciIgZG8NCiAgICBBY3RpdmVSZWNvcmQ6OkJh c2UubG9nZ2VyDQogIGVuZA0KZW5kDQpgYGANCg0KUnVieSAzLjAgbWFzdGVyOg0KDQpgYGANCldh cm1pbmcgdXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAg ICAgICAgbG9nZ2VyICAgMTU1LjI1MWsgaS8xMDBtcw0KQ2FsY3VsYXRpbmcgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KYGBgDQoNClJ1YnkgMy4wIHdpdGggY3ZhciBjYWNo ZToNCg0KYGBgDQpXYXJtaW5nIHVwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQogICAgICAgICAgICAgIGxvZ2dlciAgICAgMS41NDZNIGkvMTAwbXMNCkNhbGN1bGF0aW5n IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgICAgbG9n Z2VyICAgICAxNC44NTdNICjCsSA0LjglKSBpL3MgLSAgICAgNzQuMTk4TSBpbiAgIDUuMDA2MjAy cw0KYGBgDQoNCldlIGFsc28gbWVhc3VyZWQgZGF0YWJhc2UgcXVlcmllcyBpbiBSYWlscyBhbmQg d2l0aCB0aGUgY3ZhciBjYWNoZSB0aGV5IGFyZSBhYm91dCB+OSUgZmFzdGVyLg0KDQpCZW5jaG1h cmsgY29kZToNCg0KYGBgcnVieQ0KY2xhc3MgQnVnVGVzdCA8IE1pbml0ZXN0OjpUZXN0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIA0KICBkZWYgdGVzdF9hc3NvY2lhdGlvbl9zdHVmZiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAg IHBvc3QgPSBQb3N0LmNyZWF0ZSEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgIEJlbmNobWFyay5pcHMgZG8gfHh8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIA0KICAgICAgeC5yZXBvcnQgInF1ZXJ5IiBkbyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIA0KICAgICAgICBQb3N0LmZpcnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAg ZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgIGVuZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIA0KICBlbmQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIA0KZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IA0KYGBgDQoNClJ1YnkgMy4wIG1hc3RlciAvIFJhaWxzIDYuMToNCg0KYGBgDQpXYXJtaW5nIHVw IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICAgICAgICAgICBx dWVyeSAgIDc5MC4wMDAgIGkvMTAwbXMNCkNhbGN1bGF0aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgICAgIHF1ZXJ5ICAgICAgNy42MDFrICjCsSAz LjglKSBpL3MgLSAgICAgMzguNzEwayBpbiAgIDUuMTAwNTM0cw0KYGBgDQoNClJ1YnkgMy4wIGN2 YXIgY2FjaGUgLyBSYWlscyA2LjE6DQoNCmBgYA0KV2FybWluZyB1cCAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgICAgICAgICAgcXVlcnkgICA3MzEuMDAwICBp LzEwMG1zDQpDYWxjdWxhdGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQogICAgICAgICAgICAgICBxdWVyeSAgICAgIDcuMDg5ayAowrEgMy4zJSkgaS9zIC0gICAgIDM1 LjgxOWsgaW4gICA1LjA1ODIxNXMNCmBgYA0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1s YW5nLm9yZy8NCg==