From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: poffice@blade.nagaokaut.ac.jp Delivered-To: poffice@blade.nagaokaut.ac.jp Received: from kankan.nagaokaut.ac.jp (kankan.nagaokaut.ac.jp [133.44.2.24]) by blade.nagaokaut.ac.jp (Postfix) with ESMTP id D9F3617DD94F for ; Tue, 23 Feb 2016 09:20:38 +0900 (JST) Received: from voscc.nagaokaut.ac.jp (voscc.nagaokaut.ac.jp [133.44.1.100]) by kankan.nagaokaut.ac.jp (Postfix) with ESMTP id 05036B5D890 for ; Tue, 23 Feb 2016 09:55:51 +0900 (JST) Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by voscc.nagaokaut.ac.jp (Postfix) with ESMTP id 3290C18CC7B1 for ; Tue, 23 Feb 2016 09:55:51 +0900 (JST) Received: from [221.186.184.76] (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 9192912045C; Tue, 23 Feb 2016 09:55:49 +0900 (JST) X-Original-To: ruby-core@ruby-lang.org Delivered-To: ruby-core@ruby-lang.org Received: from o2.heroku.sendgrid.net (o2.heroku.sendgrid.net [67.228.50.55]) by neon.ruby-lang.org (Postfix) with ESMTPS id 5FBBF120456 for ; Tue, 23 Feb 2016 09:55:46 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.me; h=from:to:references:subject:mime-version:content-type:content-transfer-encoding:list-id; s=smtpapi; bh=ce3rTfqhM/d1fL69cRcNuWh+7b8=; b=fxCraKOt+GpdBh828m IbelomKIwprg5BwZCeF0wYIzb/HcbCkzXU5wYSNGy/FT7/uAFzMJqGMVSzm9btb1 MaFcKF/wJymz8GdZvmfslNAiqf4rt71R4+t9ZpLaX5p3fJVAPJwpwAMJPFe5tYna /zR6paG1sxUes6qL06Tpa3rXY= Received: by filter0539p1mdw1.sendgrid.net with SMTP id filter0539p1mdw1.14135.56CBAE064D 2016-02-23 00:55:34.972589263 +0000 UTC Received: from herokuapp.com (ec2-54-91-12-40.compute-1.amazonaws.com [54.91.12.40]) by ismtpd0002p1iad1.sendgrid.net (SG) with ESMTP id mbWdwGYNTgmR3XmfJIBvOg Tue, 23 Feb 2016 00:55:34.930 +0000 (UTC) Date: Tue, 23 Feb 2016 00:55:34 +0000 From: Ruby-Lang@JoergWMittag.De To: ruby-core@ruby-lang.org Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 48538 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 11262 X-Redmine-Issue-Author: jwmittag X-Redmine-Sender: jwmittag 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: ync6xU2WACa70kv/Ymy4QrNMhiuLXJG8OTL2vJD1yS6qVIr5MUfdNZkPVcPNYhb2e19cb/ufA6IpvW OJQK/D33D/eKh3QzKRli+5FBnCM3Yrga6+IGEE1FHBzlkQjHCjjfwkfvb0fwJoJnYC/GDWbU1GBim9 KTbF2vmSla1FzVSIdVXPznzEgTq5+Z1NdA+lNxySuPVWUr7d+J9qLCl0rw== X-ML-Name: ruby-core X-Mail-Count: 73939 Subject: [ruby-core:73939] [Ruby trunk Feature#11262] Make more objects behave like "Functions" 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" SXNzdWUgIzExMjYyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgSsO2cmcgVyBNaXR0YWcuCgoKVmljdG9y IFNoZXBlbGV2IHdyb3RlOgo+IEZvciBtZSwgdGhpcyB0aGluZyBsb29rcyBsaWtlIHNvbWUga2lu ZCBvZiBvdmVyLXNpbXBsaWZpY2F0aW9uIChsZWFkaW5nIHRvIGFtYmlndWl0eSkuCj4gQm90aCBj YXNlcyBhcmUgaGFuZGxlZCB3aXRoIHNsaWd0bHkgbG9uZ2VyIHN0YXRlbWVudHMgd2l0aCBtdWNo IG1vcmUgY2xlYXIgaW50ZW50Ogo+IAo+IH5+fnJ1YnkKPiAlaVtydWJ5IGMgY3BsdXNwbHVzIHNj YWxhIGphdmEgcGVybF0uc2VsZWN0KCZhbGxvd2VkX2xhbmd1YWdlcy5tZXRob2QoOmluY2x1ZGU/ KSkKPiAld1ttYXR6IGtvMSBjaGFybGllXS5tYXAoJlBlcnNvbi5tZXRob2QoOm5ldykpCj4gfn5+ CgpJIGRvbid0IHdhbnQgdG8gZm9jdXMgdG9vIG11Y2ggb24gdGhlIHNlY29uZCBleGFtcGxlLCBi ZWNhdXNlIGxpa2UgSSBzYWlkOiB0aGUgIkNsYXNzIGFzIEZhY3RvcnkgRnVuY3Rpb24iIGlzICpu b3QqIGFjdHVhbGx5IHBhcnQgb2YgbXkgcHJvcG9zYWwsIEkgbWVudGlvbiBpdCBvbmx5IGFzIGZv b2QgZm9yIHRob3VnaHQuIEhvd2V2ZXIsIGlmIHlvdSBoYXZlIGV2ZXIgc2VlbiBvciBpbXBsZW1l bnRlZCBhIEZhY3RvcnkgUGF0dGVybiBpbiBSdWJ5LCBpZiB5b3UgaGF2ZSBldmVyIHNlZW4gb3Ig dXNlZCBKYXZhU2NyaXB0LCBpZiB5b3UgaGF2ZSBldmVyIHNlZW4gb3IgdXNlZCBEYXJ0LCBpZiB5 b3UgaGF2ZSBldmVyIHNlZW4gb3IgdXNlZCBvbmUgb2YgdGhlIG1hbnkgb2JqZWN0IHN5c3RlbXMg aW4gU2NoZW1lIG9yIENsb2p1cmUsIGlmIHlvdSBhcmUgZmFtaWxpYXIgd2l0aCBzb21lIG9mIHRo ZSB0aGVvcmV0aWMgZm9ybWFsaXNtcyBmb3IgT08sIGlmIHlvdSBoYXZlIGV2ZXIgcmVhZCBzb21l IG9mIFtXaWxsaWFtIFIuIENvb2tdKGh0dHA6Ly9XQ29vay5CbG9nU3BvdC5Db20vKSdzIFt3cml0 aW5ncyBvbiBPT10oaHR0cDovL0NTLlVUZXhhcy5FZHUvfndjb29rL0RyYWZ0cy8yMDA5L2Vzc2F5 LnBkZiksIHRoZW4gdGhlIGlkZWEgdGhhdCBhIGNsYXNzIGlzIGEgZnVuY3Rpb24gdGhhdCBjcmVh dGVzIG9iamVjdHMgd2lsbCBsb29rIGNvbXBsZXRlbHkgbmF0dXJhbCB0byB5b3UuCgpXaGF0IGRv ZXMgYSBjbGFzcyBkbyBpbiBSdWJ5PyBJdCBob2xkcyBtZXRob2RzLCBidXQgdGhhdCBpcyBhY3R1 YWxseSBqdXN0IGluaGVyaXRlZCBieSBjbGFzc2VzIGJlaW5nIHNwZWNpYWwtY2FzZXMgb2YgbW9k dWxlcy4gV2hhdCBkaXN0aW5ndWlzaGVzIGNsYXNzZXMgZnJvbSBtb2R1bGVzIGluIFJ1YnkgaXMg YWJvdmUgYWxsIFtgQ2xhc3MjYWxsb2NhdGVgXShodHRwOi8vcnVieS1kb2Mub3JnL2NvcmUvQ2xh c3MuaHRtbCNtZXRob2QtaS1hbGxvY2F0ZSkgYW5kIFtgQ2xhc3MjbmV3YF0oaHR0cDovL3J1Ynkt ZG9jLm9yZy9jb3JlL0NsYXNzLmh0bWwjbWV0aG9kLWktbmV3KSwgaS5lLiB0aGUgcG9zc2liaWxp dHkgdG8gY3JlYXRlIHZhbHVlcy4gQW5kIGlzbid0ICJjcmVhdGluZyB2YWx1ZXMiIGJhc2ljYWxs eSBleGFjdGx5IHdoYXQgYSBmdW5jdGlvbiBkb2VzPwoKSW4gb3RoZXIgbGFuZ3VhZ2VzLCBjbGFz c2VzIGFyZSBvZnRlbiBkZXNjcmliZWQgYXMgInRlbXBsYXRlcyBmb3Igb2JqZWN0cyIuIEJ1dCB0 aGF0IGlzbid0IGFjdHVhbGx5IHRydWUgaW4gUnVieS4gQ2xhc3NlcyBkb24ndCBkZXNjcmliZSB0 aGUgc2hhcGUgb2Ygb2JqZWN0cy4gSW5zdGFuY2UgdmFyaWFibGVzIGdldCBhZGRlZCB0byBvYmpl Y3RzIG92ZXIgdGltZSwgYXMgbWV0aG9kcyBhcmUgYmVpbmcgY2FsbGVkIG9uIHRoZW0sIHRodXMg b2JqZWN0cyBjb25zdGFudGx5IGNoYW5nZSB0aGVpciBzaGFwZSBvdmVyIHRpbWUsIHRoZSBzaGFw ZSBpcyBub3QgZGV0ZXJtaW5lZCBieSB0aGUgY2xhc3MuIEluIGZhY3QsIGFsbCBvYmplY3RzIHN0 YXJ0IG91dCB3aXRoIHRoZSBleGFjdCBzYW1lIHNoYXBlLCBvbmx5IGJ5IGNhbGxpbmcgbWV0aG9k cyAoYGluaXRpYWxpemVgIGJlaW5nIG9uZSBzdWNoIG1ldGhvZCkgb24gdGhlbSAqYWZ0ZXIqIHRo ZXkgaGF2ZSBhbHJlYWR5IGJlZW4gY29uc3RydWN0ZWQgYnkgdGhlIGNsYXNzIGRvIHRoZXkgY2hh bmdlIHRoZWlyIHNoYXBlLgoKPiBUaGlzIGNvZGUgaXMgRFJZLCBjbGVhciBhbmQgcmVhZGFibGUg ZXZlbiBmb3Igbm92aWNlICh0aG91Z2ggY2FuIGNhdXNlIHNvbWUga2luZCBvZiBzdXJwaXNlICJ3 b3csIEkgY291bGQgZG8gdGhpcz8hIikuIAo+IFRoZSBvbmx5ICJ0b28gbG9uZyIgdGhpbmcgaGVy ZSBpcyBlbnRpcmUgd29yZCAibWV0aG9kIiAoc28sIGBtYXB7fHN8IFBlcnNvbi5uZXcocyl9YCBp cyBhIGJpdCBzaG9ydGVyLCB3aGlsZSBub3QgYmVpbmcgdGhhdCBEUlkpLgoKV2VsbCwgaXQncyBu b3QgcmVhbGx5IGFib3V0IHNhdmluZyBhIGZldyBrZXlzdHJva2VzLiBJdCdzIGJhc2ljYWxseSBh Ym91dCBzZW1hbnRpY3M6IFJ1YnkgaGFzIGEgdmVyeSBjbGVhciBpZGVhIGFib3V0IHdoYXQgY29u c3RpdHV0ZXMgYSAiRnVuY3Rpb24iLCBuYW1lbHksIGEgIkZ1bmN0aW9uIiBpcyBhbnkgb2JqZWN0 IHRoYXQgcmVzcG9uZHMgdG8gYGNhbGxgIGFuZCBgdG9fcHJvY2AuIEFuZCBpdCdzIGFsc28gdmVy eSBjbGVhciAoYXQgbGVhc3QgdG8gbWUsIGFuZCBJIGFtIHdyaXRpbmcgdGhpcyBwcm9wb3NhbCBw YXJ0bHkgdG8gZmlndXJlIG91dCB3aGV0aGVyIHRoaXMgaXMgdHJ1ZSBtb3JlIGJyb2FkbHkgYXMg d2VsbCkgdGhhdCBhbiBhcnJheSBpcyBhIGZ1bmN0aW9uIGZyb20gaW50ZWdlcnMgdG8gZWxlbWVu dHMsIGEgaGFzaCBpcyBhIGZ1bmN0aW9uIGZyb20ga2V5cyB0byB2YWx1ZXMsIGFuZCBhIHNldCBp cyBhIGZ1bmN0aW9uIGZyb20gZWxlbWVudHMgdG8gYm9vbGVhbnMgKGluIGZhY3QsIGFzIFtXaWxs aWFtIFIuIENvb2tdKGh0dHA6Ly9XQ29vay5CbG9nU3BvdC5Db20vKSBzaG93ZWQgaW4gWypPbiBV bmRlcnN0YW5kaW5nIERhdGEgQWJzdHJhY3Rpb24sIFJldmlzaXRlZCpdKGh0dHA6Ly9DUy5VVGV4 YXMuRWR1L353Y29vay9EcmFmdHMvMjAwOS9lc3NheS5wZGYpLCBpZGVudGlmeWluZyBzZXRzIHdp dGggdGhlaXIgY2hhcmFjdGVyaXN0aWMgZnVuY3Rpb25zIGlzICp0aGUqIE9PIHdheSB0byBpbXBs ZW1lbnQgc2V0cykuIEluIG90aGVyIGxhbmd1YWdlcywgdGhvc2UgZGF0YSBzdHJ1Y3R1cmVzICps aXRlcmFsbHkqIGluaGVyaXQgZnJvbSBhIGBGdW5jdGlvbmAgY2xhc3MgKGUuZy4gaW4gU2NhbGEp IG9yIGltcGxlbWVudCBhIGBGdW5jdGlvbmAgaW50ZXJmYWNlIChlLmcuIGluIENsb2p1cmUpLgoK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0dXJlICMxMTI2Mjog TWFrZSBtb3JlIG9iamVjdHMgYmVoYXZlIGxpa2UgIkZ1bmN0aW9ucyIKaHR0cHM6Ly9idWdzLnJ1 YnktbGFuZy5vcmcvaXNzdWVzLzExMjYyI2NoYW5nZS01NzA4OQoKKiBBdXRob3I6IErDtnJnIFcg TWl0dGFnCiogU3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAoqIEFzc2lnbmVlOiAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFdoYXQgaXMgYSBGdW5jdGlv bj8KCkluIFJ1YnksIHdlIGhhdmUgdGhlIFtgUHJvY2BdKGh0dHA6Ly9ydWJ5LWRvYy5vcmcvY29y ZS9Qcm9jLmh0bWwpIGNsYXNzIHRvIHJlcHJlc2VudCBvYmplY3RzIHdoaWNoIGFyZSAiZnVuY3Rp b24tbGlrZSIuIEJ1dCwgaW4gdHJ1ZSBvYmplY3Qtb3JpZW50ZWQgLyBkdWNrLXR5cGluZyBmYXNo aW9uLCBhbiBvYmplY3QgZG9lc24ndCBhY3R1YWxseSBoYXZlIHRvIGJlIGFuIGluc3RhbmNlIG9m IGBQcm9jYCBpbiBvcmRlciB0byBiZSB0cmVhdGVkIGFzIGEgZnVuY3Rpb24sIGl0IG9ubHkgbmVl ZHMgdG8gcmVzcG9uZCB0byBbYGNhbGxgXShodHRwOi8vcnVieS1kb2Mub3JnL2NvcmUvUHJvYy5o dG1sI21ldGhvZC1pLWNhbGwpLiBGb3IgY2FzZXMsIHdoZXJlIGEgYFByb2NgIGluc3RhbmNlIGlz IGFic29sdXRlbHkgcmVxdWlyZWQgKG1vc3RseSwgdGhlIGAmYCB1bmFyeSBwcmVmaXggYW1wZXJz YW5kICJtYWtlLW1lLWEtYmxvY2siIG9wZXJhdG9yKSwgdGhlcmUgaXMgdGhlIFtgdG9fcHJvY2Bd KGh0dHA6Ly9ydWJ5LWRvYy5vcmcvY29yZS9Qcm9jLmh0bWwjbWV0aG9kLWktdG9fcHJvYykgY29u dmVyc2lvbi4KClNvLCBpbiBzaG9ydDogaWYgYW4gb2JqZWN0IHdhbnRzIHRvIGJlIGEgZnVuY3Rp b24sIGl0ICoqTVVTVCoqIHJlc3BvbmQgdG8gYGNhbGxgLCBhbmQgKipTSE9VTEQqKiBhbHNvIHJl c3BvbmQgdG8gYHRvX3Byb2NgLgoKVGhlcmUgYXJlIHNvbWUgb2JqZWN0cyBpbiBSdWJ5IHRoYXQg KmNvdWxkKiBiZSBzZWVuIGFzIGZ1bmN0aW9ucywgYnV0IGN1cnJlbnRseSBkb24ndCByZXNwb25k IHRvIGBjYWxsYCBvciBgdG9fcHJvY2A6CgojIFtgQXJyYXlgXShodHRwOi8vcnVieS1kb2Mub3Jn L2NvcmUvQXJyYXkuaHRtbCkgYXMgbWFwcGluZwoKQW4gYXJyYXkgaXMgYSBtYXBwaW5nIGZyb20g aW5kaWNlcyB0byBlbGVtZW50cy4gIk1hcHBpbmciIGlzIGp1c3QgYSBkaWZmZXJlbnQgd29yZCBm b3IgKHBhcnRpYWwpIGZ1bmN0aW9uLCB0aG91Z2ghIEkgcHJvcG9zZSwgdGhhdCBgQXJyYXlgIHNo b3VsZCBpbXBsZW1lbnQgYGNhbGxgIGFuZCBgdG9fcHJvY2AgaW4gdGhlIGZvbGxvd2luZyBtYW5u ZXI6Cgp+fn5ydWJ5CmNsYXNzIEFycmF5CiAgYWxpYXNfbWV0aG9kIDpjYWxsLCA6W10KCiAgZGVm IHRvX3Byb2MKICAgIG1ldGhvZCg6Y2FsbCkudG9fcHJvYwogIGVuZAplbmQKfn5+CgojIFtgSGFz aGBdKGh0dHA6Ly9ydWJ5LWRvYy5vcmcvY29yZS9IYXNoLmh0bWwpIGFzIG1hcHBpbmcKCkEgaGFz aCBpcyBhIG1hcHBpbmcgZnJvbSBrZXlzIHRvIHZhbHVlcy4gSSBwcm9wb3NlLCB0aGF0IGBIYXNo YCBzaG91bGQgaW1wbGVtZW50IGBjYWxsYCBhbmQgYHRvX3Byb2NgIGluIHRoZSBmb2xsb3dpbmcg bWFubmVyOgoKfn5+cnVieQpjbGFzcyBIYXNoCiAgYWxpYXNfbWV0aG9kIDpjYWxsLCA6W10KCiAg ZGVmIHRvX3Byb2MKICAgIG1ldGhvZCg6Y2FsbCkudG9fcHJvYwogIGVuZAplbmQKfn5+CgojIGBT ZXRgIGFzIHByZWRpY2F0ZQoKQSBzZXQgaXMgYSBtYXBwaW5nIGZyb20gdmFsdWVzIHRvIGJvb2xl YW5zLCBpLmUuIGEgc2V0IGlzIHRoZSBzYW1lIGFzIGl0cyBgaW5jbHVkZT9gIHByZWRpY2F0ZS4g VGhpcyB3b3VsZCBtZWFuLCBmb3IgZXhhbXBsZSwgdGhhdCBJIGNhbiBwYXNzIGEgYFNldGAgYXMg YSBwcmVkaWNhdGUgdG8gbWV0aG9kcyBsaWtlIFtgRW51bWVyYWJsZSNzZWxlY3RgXShodHRwOi8v cnVieS1kb2Mub3JnL2NvcmUvRW51bWVyYWJsZS5odG1sI21ldGhvZC1pLXNlbGVjdCkuIEkgcHJv cG9zZSwgdGhhdCBgU2V0YCBzaG91bGQgaW1wbGVtZW50IGBjYWxsYCBhbmQgYHRvX3Byb2NgIGlu IHRoZSBmb2xsb3dpbmcgbWFubmVyOgoKfn5+cnVieQpyZXF1aXJlICdzZXQnCgpjbGFzcyBTZXQK ICBhbGlhc19tZXRob2QgOmNhbGwsIDppbmNsdWRlPwoKICBkZWYgdG9fcHJvYwogICAgbWV0aG9k KDpjYWxsKS50b19wcm9jCiAgZW5kCmVuZAp+fn4KCkkgYmVsaWV2ZSB0aGF0IHRoZXNlIHRocmVl IGFkZGl0aW9ucyBhcmUgd29ydGh3aGlsZSBhbmQgZmFpcmx5IHVuY29udHJvdmVyc2lhbC4gVGhl eSBtYXRjaCB3aXRoIHRoZSB3YXkgYXJyYXlzLCBtYXBzIGFuZCBlc3BlY2lhbGx5IHNldHMgYXJl IHRyZWF0ZWQgaW4gbWF0aGVtYXRpY3MgYW5kIGluIG90aGVyIHByb2dyYW1taW5nIGxhbmd1YWdl cy4gRS5nLiBpbiBib3RoIFtDbG9qdXJlXShodHRwOi8vY2xvanVyZS5vcmcvZGF0YV9zdHJ1Y3R1 cmVzI0RhdGElMjBTdHJ1Y3R1cmVzLU1hcHMlMjAoSVBlcnNpc3RlbnRNYXApKSBhbmQgW1NjYWxh XShodHRwOi8vc2NhbGEtbGFuZy5vcmcvYXBpL2N1cnJlbnQvI3NjYWxhLmNvbGxlY3Rpb24uU2Vx KSwgYXJyYXlzLCBzZXRzIGFuZCBtYXBzIGFyZSBmdW5jdGlvbnMgYW5kIHVzZSBmdW5jdGlvbiBh cHBsaWNhdGlvbiBzeW50YXggZm9yIGFjY2Vzc2luZyB2YWx1ZXMuIFNjYWxhIGRvZXNuJ3QgZXZl biBoYXZlIGluZGV4aW5nIHN5bnRheC4KCkhlcmUgYXJlIHNvbWUgcG90ZW50aWFsIHVzZSBjYXNl czoKCn5+fnJ1YnkKbnVtYmVyc190b193b3JkcyA9ICV3W3plcm8gb25lIHR3byB0aHJlZSBmb3Vy IGZpdmUgc2l4IHNldmVuIGVpZ2h0IG5pbmUgdGVuIGVsZXZlbiB0d2VsdmVdCgpbNCwgNywgMSwg MCwgOF0ubWFwKCZudW1iZXJzX3RvX3dvcmRzKQojID0+IFsnZm91cicsICdzZXZlbicsICdvbmUn LCAnemVybycsICdlaWdodCddCgoKYWxsb3dlZF9sYW5ndWFnZXMgPSBTZXRbOnJ1YnksIDpweXRo b24sIDpzY2FsYSwgOnNjaGVtZV0KCiVpW3J1YnkgYyBjcGx1c3BsdXMgc2NhbGEgamF2YSBwZXJs XS5zZWxlY3QoJmFsbG93ZWRfbGFuZ3VhZ2VzKQojID0+IFs6cnVieSwgOnNjYWxhXQp+fn4KCkhl cmUgaXMgYSBtb3JlICJ3aWxkIiBwcm9wb3NhbCB0aGF0IGlzIG11Y2ggbW9yZSBjb250cm92ZXJz aWFsLiBJIGRvbid0IGFjdHVhbGx5IHByb3Bvc2UgYWRkaW5nIHRoaXMgdG8gUnVieSwgYnV0IEkg d2lsbCBtZW50aW9uIGl0IGhlcmUgYXMgZm9vZCBmb3IgdGhvdWdodDoKCiMgW2BDbGFzc2BdKGh0 dHA6Ly9ydWJ5LWRvYy5vcmcvY29yZS9DbGFzcy5odG1sKSBhcyBmYWN0b3J5CgpJZiB5b3Ugc3F1 aW50IHlvdXIgZXllcywgdGlsdCB5b3VyIGhlYWQgc2lkZXdheXMgYW5kIGxvb2sgYXQgaXQganV1 dXV1dXVzdCByaWdodCwgYSBjbGFzcyBpcyBhIGZhY3RvcnkgZm9yIG9iamVjdHMuIEluIG90aGVy IHdvcmRzLCBpdCBpcyBhIGZ1bmN0aW9uIGZyb20gY29uc3RydWN0b3IgYXJndW1lbnRzIHRvIGlu c3RhbmNlczoKCn5+fnJ1YnkKY2xhc3MgQ2xhc3MKICBhbGlhc19tZXRob2QgOmNhbGwsIDpuZXcK CiAgZGVmIHRvX3Byb2MKICAgIG1ldGhvZCg6Y2FsbCkudG9fcHJvYwogIGVuZAplbmQKfn5+CgpF eGFtcGxlOgoKfn5+cnVieQpjbGFzcyBQZXJzb24KICBkZWYgaW5pdGlhbGl6ZShuYW1lKQogICAg QG5hbWUgPSBuYW1lCiAgZW5kCmVuZAoKJXdbbWF0eiBrbzEgY2hhcmxpZV0ubWFwKCZQZXJzb24p CiMgPT4gWyM8UGVyc29uOjB4ZGVhZGJlZWY0ODE1MjMgQG5hbWU9Im1hdHoiPiwgIzxQZXJzb246 MHhkZWFkYmVlZjgxNTIzNCBAbmFtZT0ia28xIj4sICM8UGVyc29uOjB4ZGVhZGJlZWYxNTIzNDIg QG5hbWU9ImNoYXJsaWUiPl0Kfn5+CgojIEluY29tcGF0aWJpbGl0aWVzCgpUaGlzIHByb3Bvc2Fs IGNvbmZsaWN0cyB3aXRoICMxMDgyOSwgd2hpY2ggcHJvcG9zZXMgdG8gdXNlIGBBcnJheSN0b19w cm9jYCBmb3IgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBwdXJwb3NlLgoKSSBiZWxpZXZlIHRoYXQg aGF2aW5nIGBBcnJheWBzIGJlaGF2ZSBhcyBmdW5jdGlvbnMgZnJvbSBpbmRpY2VzIHRvIGVsZW1l bnRzIGlzIG5hdHVyYWwsIHVuc3VycHJpc2luZywgYW5kIHdlbGwgaW4gbGluZSB3aXRoIGJvdGgg bWF0aGVtYXRpY3MgYW5kIG90aGVyIGxhbmd1YWdlcy4KCi0tLQoKIyBSZWxhdGVkCgpUaGUgY29k ZSBkdXBsaWNhdGlvbiBlbmNvdW50ZXJlZCBoZXJlIHN1Z2dlc3RzIHJlZmFjdG9yaW5nIHRvIGV4 dHJhY3QgdHdvIG5ldyBtaXhpbnMgaW4gdGhlIFJ1YnkgY29yZSBsaWJyYXJ5OgoKfn5+cnVieQpt b2R1bGUgQ2FsbGFibGUKICBkZWYgdG9fcHJvYwogICAgbWV0aG9kKDpjYWxsKS50b19wcm9jCiAg ZW5kCmVuZAoKbW9kdWxlIEluZGV4YWJsZQogIGFsaWFzX21ldGhvZCA6Y2FsbCwgOltdCmVuZAp+ fn4KCkhvd2V2ZXIsIHRoaXMgaXMgb3V0IG9mIHNjb3BlIG9mIHRoaXMgZGlzY3Vzc2lvbiBhbmQg Km5vdCogcGFydCBvZiB0aGlzIHBhcnRpY3VsYXIgZmVhdHVyZSBwcm9wb3NhbC4KCi0tLQoKW05P VEU6IEkgb3JpZ2luYWxseSBwb3N0ZWQgdGhpcyBpbiBwcm9qZWN0OmNvbW1vbi1ydWJ5LCB3aGlj aCBhY2NvcmRpbmcgdG8gW1tjb21tb24tcnVieTp8aXRzIHdpa2ldXSBpcyAiVGhlIG9mZmljaWFs IHBsYWNlIHRvIHN1Ym1pdCBmZWF0dXJlIHByb3Bvc2FsIGZvciBSdWJ5IiBidXQgZnJvbSBteSBv YnNlcnZhdGlvbiwgYWxtb3N0IGFsbCBSdWJ5IGZlYXR1cmUgcmVxdWVzdHMgYWN0dWFsbHkgZ2V0 IGZpbGVkIGF0IHByb2plY3Q6cnVieS10cnVuay5dCgoKCi0tIApodHRwczovL2J1Z3MucnVieS1s YW5nLm9yZy8K