From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noah Lavine Newsgroups: gmane.lisp.guile.devel Subject: PEG Patches Date: Sun, 6 Mar 2011 00:25:13 -0500 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=20cf3071c8aa833268049dc99a52 X-Trace: dough.gmane.org 1299389190 17595 80.91.229.12 (6 Mar 2011 05:26:30 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 6 Mar 2011 05:26:30 +0000 (UTC) To: guile-devel Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun Mar 06 06:26:26 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Pw6TC-0005nd-DY for guile-devel@m.gmane.org; Sun, 06 Mar 2011 06:26:26 +0100 Original-Received: from localhost ([127.0.0.1]:41162 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pw6TA-0002pM-5x for guile-devel@m.gmane.org; Sun, 06 Mar 2011 00:25:28 -0500 Original-Received: from [140.186.70.92] (port=38947 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pw6Sx-0002nl-FZ for guile-devel@gnu.org; Sun, 06 Mar 2011 00:25:17 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pw6Sw-0003uN-IB for guile-devel@gnu.org; Sun, 06 Mar 2011 00:25:15 -0500 Original-Received: from mail-vx0-f169.google.com ([209.85.220.169]:58552) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pw6Sw-0003uB-9k for guile-devel@gnu.org; Sun, 06 Mar 2011 00:25:14 -0500 Original-Received: by vxc38 with SMTP id 38so3773356vxc.0 for ; Sat, 05 Mar 2011 21:25:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:date:x-google-sender-auth :message-id:subject:from:to:content-type; bh=C/bW2EqUbhzhu7JHptDhT+0q1MJm2h2pHVZ+KlUU0jE=; b=WAGom6EMReMAyN5Xh6WINJMGHMkzTq6SrU2gothxOsCA2gVL1BLup7Qxuaj+O4xOFd 5oE4szhnsltQtEgwOZQnQnjayAVgnYI43bj9dl9y20EvpUy8kkwEmnFt6SXDoHhHlkla ZTeQi+PnYPGZuwihOAmV3UI5E/FX4rp6RSzIk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=YzVLtEOsQMtFHhPcUYo74dtRmD2s6WEGfiUgH+v3awXRbhs54cz4yJ6tN+JAlm2yc+ G0WCx9Ew2aRq8QocLBvUSTZg0NErYpOgEOfXFSxAgpru+l1vydtvTKOzMK+mlvSD33tv eF5gkIkydtbMtoep4pWctk7HW6DvMSMxhUxns= Original-Received: by 10.52.66.14 with SMTP id b14mr3520902vdt.78.1299389113119; Sat, 05 Mar 2011 21:25:13 -0800 (PST) Original-Received: by 10.52.166.194 with HTTP; Sat, 5 Mar 2011 21:25:13 -0800 (PST) X-Google-Sender-Auth: LBwAtN1itEhwWY_JGuaNMYTwODg X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.220.169 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:11784 Archived-At: --20cf3071c8aa833268049dc99a52 Content-Type: text/plain; charset=ISO-8859-1 Hello all, Attached is a series of patches I've made for the wip-mlucy branch. It splits the PEG code into several little modules which go in module/ice-9/peg/. The original peg source file becomes very little. At the end it finally loses its big eval-when wrapper. There's one part of this that I'm not satisfied with, which is that define-nonterminal goes into module/ice-9/peg/string-peg.scm, which is supposed to be solely for pegs-as-strings. The reason for this is that I got compiler errors if I didn't do this, and I couldn't figure out how to stop them. I would appreciate it if someone would take a look and try to find what I missed. Also, a note about future ideas - the current PEG code can only parse strings. However, there is almost nothing string-specific about the parsing code - just a few calls to string-ref and substring in codegen.scm. I'd like to see this extended to parse vectors filled with arbitrary objects. This would let you use a tokenizer with it, which is the easiest way to implement C correctly, and also probably the easiest way to store line number information with tokens, which is necessary for ultimately giving good error messages from PEG parsers. Thanks, Noah --20cf3071c8aa833268049dc99a52 Content-Type: application/octet-stream; name="0001-Split-peg.scm.patch" Content-Disposition: attachment; filename="0001-Split-peg.scm.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkxih0640 RnJvbSBhNzNjZmI1NDZmYzZjMDQ0YWY3MWYwZDQ4YTYzZjA2MWJjYTJmNzQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bmxhdmluZUBoYXZlcmZvcmQuZWR1PgpE YXRlOiBTYXQsIDUgTWFyIDIwMTEgMTU6MjM6NTkgLTA1MDAKU3ViamVjdDogW1BBVENIIDEvN10g U3BsaXQgcGVnLnNjbQoKICogbW9kdWxlL2ljZS05L3BlZy5zY206IG1vdmUgY29kZSBnZW5lcmF0 b3JzIHRvIG5ldyBtb2R1bGUKICogbW9kdWxlL2ljZS05L3BlZy9jb2RlZ2VuLnNjbTogbmV3IG1v ZHVsZSBmb3IgUEVHIGNvZGUgZ2VuZXJhdG9ycwotLS0KIG1vZHVsZS9pY2UtOS9wZWcuc2NtICAg ICAgICAgfCAgMjIzICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBtb2R1 bGUvaWNlLTkvcGVnL2NvZGVnZW4uc2NtIHwgIDI0NSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjUwIGluc2VydGlvbnMoKyksIDIx OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBtb2R1bGUvaWNlLTkvcGVnL2NvZGVn ZW4uc2NtCgpkaWZmIC0tZ2l0IGEvbW9kdWxlL2ljZS05L3BlZy5zY20gYi9tb2R1bGUvaWNlLTkv cGVnLnNjbQppbmRleCBkOTFhNzRlLi4wYWNjNDU5IDEwMDY0NAotLS0gYS9tb2R1bGUvaWNlLTkv cGVnLnNjbQorKysgYi9tb2R1bGUvaWNlLTkvcGVnLnNjbQpAQCAtMTgsOCArMTgsNyBAQAogOzs7 OwogCiAoZGVmaW5lLW1vZHVsZSAoaWNlLTkgcGVnKQotICAjOmV4cG9ydCAocGVnLXNleHAtY29t cGlsZQotICAgICAgICAgICAgcGVnLXN0cmluZy1jb21waWxlCisgICM6ZXhwb3J0IChwZWctc3Ry aW5nLWNvbXBpbGUKICAgICAgICAgICAgIGNvbnRleHQtZmxhdHRlbgogICAgICAgICAgICAgcGVn LXBhcnNlCiAgICAgICAgICAgICBkZWZpbmUtbm9udGVybQpAQCAtMzQsOCArMzMsOSBAQAogICAg ICAgICAgICAgcGVnOnN1YnN0cmluZwogICAgICAgICAgICAgcGVnLXJlY29yZD8KICAgICAgICAg ICAgIGtleXdvcmQtZmxhdHRlbikKLSAgIzp1c2UtbW9kdWxlIChzeXN0ZW0gYmFzZSBwbWF0Y2gp Ci0gICM6dXNlLW1vZHVsZSAoaWNlLTkgcHJldHR5LXByaW50KSkKKyAgIzp1c2UtbW9kdWxlIChp Y2UtOSBwZWcgY29kZWdlbikKKyAgIzpyZS1leHBvcnQgKHBlZy1zZXhwLWNvbXBpbGUpCisgICM6 dXNlLW1vZHVsZSAoc3lzdGVtIGJhc2UgcG1hdGNoKSkKIAogOzs7CiA7OzsgSGVscGVyIE1hY3Jv cwpAQCAtNTgsMjIyICs1OCw5IEBAIGV4ZWN1dGUgdGhlIFNUTVRzIGFuZCB0cnkgYWdhaW4uIgog ICAgICAgICgoXykgI3QpCiAgICAgICAgKGVsc2UgI2YpKSkpKQogCi0oZGVmaW5lLXN5bnRheCBw dXNoIQotICAoc3ludGF4LXJ1bGVzICgpCi0gICAgIlB1c2ggYW4gb2JqZWN0IG9udG8gYSBsaXN0 LiIKLSAgICAoKF8gbHN0IG9iaikKLSAgICAgKHNldCEgbHN0IChjb25zIG9iaiBsc3QpKSkpKQot Ci0oZGVmaW5lLXN5bnRheCBzaW5nbGUtZmlsdGVyCi0gIChzeW50YXgtcnVsZXMgKCkKLSAgICAi SWYgRVhQIGlzIGEgbGlzdCBvZiBvbmUgZWxlbWVudCwgcmV0dXJuIHRoZSBlbGVtZW50LiAgT3Ro ZXJ3aXNlCi1yZXR1cm4gRVhQLiIKLSAgICAoKF8gZXhwKQotICAgICAocG1hdGNoIGV4cAotICAg ICAgICgoLGVsdCkgZWx0KQotICAgICAgICgsZWx0cyBlbHRzKSkpKSkKLQotKGRlZmluZS1zeW50 YXggcHVzaC1ub3QtbnVsbCEKLSAgKHN5bnRheC1ydWxlcyAoKQotICAgICJJZiBPQkogaXMgbm9u LW51bGwsIHB1c2ggaXQgb250byBMU1QsIG90aGVyd2lzZSBkbyBub3RoaW5nLiIKLSAgICAoKF8g bHN0IG9iaikKLSAgICAgKGlmIChub3QgKG51bGw/IG9iaikpCi0gICAgICAgICAocHVzaCEgbHN0 IG9iaikpKSkpCi0KIChldmFsLXdoZW4gKGNvbXBpbGUgbG9hZCBldmFsKQogCiA7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7OwotOzs7OzsgQ09ERSBHRU5FUkFUT1JTCi07OyBUaGVzZSBmdW5jdGlvbnMg Z2VuZXJhdGUgc2NoZW1lIGNvZGUgZm9yIHBhcnNpbmcgUEVHcy4KLTs7IENvbnZlbnRpb25zOgot OzsgICBhY2N1bTogKGFsbCBuYW1lIGJvZHkgbm9uZSkKLTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ci0KLTs7IENvZGUgd2UgZ2VuZXJhdGUgd2lsbCBoYXZlIGEgY2VydGFpbiByZXR1cm4gc3RydWN0 dXJlIGRlcGVuZGluZyBvbiBob3cgd2UncmUKLTs7IGFjY3VtdWxhdGluZyAodGhlIEFDQ1VNIHZh cmlhYmxlKS4KLShkZWZpbmUgKGNnLWdlbmVyaWMtcmV0IGFjY3VtIG5hbWUgYm9keS11bmV2YWwg YXQpCi0gIDs7IG5hbWUsIGJvZHktdW5ldmFsIGFuZCBhdCBhcmUgc3ludGF4Ci0gICNgKGxldCAo KGJvZHkgIyxib2R5LXVuZXZhbCkpCi0gICAgICMsKGNvbmQKLSAgICAgICAgKChhbmQgKGVxPyBh Y2N1bSAnYWxsKSBuYW1lKQotICAgICAgICAgI2AobGlzdCAjLGF0Ci0gICAgICAgICAgICAgICAg IChjb25kCi0gICAgICAgICAgICAgICAgICAoKG5vdCAobGlzdD8gYm9keSkpIChsaXN0ICcjLG5h bWUgYm9keSkpCi0gICAgICAgICAgICAgICAgICAoKG51bGw/IGJvZHkpICcjLG5hbWUpCi0gICAg ICAgICAgICAgICAgICAoKHN5bWJvbD8gKGNhciBib2R5KSkgKGxpc3QgJyMsbmFtZSBib2R5KSkK LSAgICAgICAgICAgICAgICAgIChlbHNlIChjb25zICcjLG5hbWUgYm9keSkpKSkpCi0gICAgICAg ICgoZXE/IGFjY3VtICduYW1lKQotICAgICAgICAgI2AobGlzdCAjLGF0ICcjLG5hbWUpKQotICAg ICAgICAoKGVxPyBhY2N1bSAnYm9keSkKLSAgICAgICAgICNgKGxpc3QgIyxhdAotICAgICAgICAg ICAgICAgICAoY29uZAotICAgICAgICAgICAgICAgICAgKChzaW5nbGU/IGJvZHkpIChjYXIgYm9k eSkpCi0gICAgICAgICAgICAgICAgICAoZWxzZSBib2R5KSkpKQotICAgICAgICAoKGVxPyBhY2N1 bSAnbm9uZSkKLSAgICAgICAgICNgKGxpc3QgIyxhdCAnKCkpKQotICAgICAgICAoZWxzZQotICAg ICAgICAgKGJlZ2luCi0gICAgICAgICAgIChwcmV0dHktcHJpbnQgYChjZy1nZW5lcmljLXJldC1l cnJvciAsYWNjdW0gLG5hbWUgLGJvZHktdW5ldmFsICxhdCkpCi0gICAgICAgICAgIChwcmV0dHkt cHJpbnQgIkRlZmF1bHRpbmcgdG8gYWNjdW0gb2Ygbm9uZS5cbiIpCi0gICAgICAgICAgICNgKGxp c3QgIyxhdCAnKCkpKSkpKSkKLQotOzsgVGhlIHNob3J0IG5hbWUgbWFrZXMgdGhlIGZvcm1hdHRp bmcgYmVsb3cgbXVjaCBlYXNpZXIgdG8gcmVhZC4KLShkZWZpbmUgY2dnciBjZy1nZW5lcmljLXJl dCkKLQotOzsgR2VuZXJhdGVzIGNvZGUgdGhhdCBtYXRjaGVzIGEgcGFydGljdWxhciBzdHJpbmcu Ci07OyBFLmcuOiAoY2ctc3RyaW5nIHN5bnRheCAiYWJjIiAnYm9keSkKLShkZWZpbmUgKGNnLXN0 cmluZyBwYXQgYWNjdW0pCi0gIChsZXQgKChwbGVuIChzdHJpbmctbGVuZ3RoIHBhdCkpKQotICAg ICNgKGxhbWJkYSAoc3RyIGxlbiBwb3MpCi0gICAgICAgIChsZXQgKChlbmQgKCsgcG9zICMscGxl bikpKQotICAgICAgICAgIChhbmQgKDw9IGVuZCBsZW4pCi0gICAgICAgICAgICAgICAoc3RyaW5n PSBzdHIgIyxwYXQgcG9zIGVuZCkKLSAgICAgICAgICAgICAgICMsKGNhc2UgYWNjdW0KLSAgICAg ICAgICAgICAgICAgICAoKGFsbCkgI2AobGlzdCBlbmQgKGxpc3QgJ2NnLXN0cmluZyAjLHBhdCkp KQotICAgICAgICAgICAgICAgICAgICgobmFtZSkgI2AobGlzdCBlbmQgJ2NnLXN0cmluZykpCi0g ICAgICAgICAgICAgICAgICAgKChib2R5KSAjYChsaXN0IGVuZCAjLHBhdCkpCi0gICAgICAgICAg ICAgICAgICAgKChub25lKSAjYChsaXN0IGVuZCAnKCkpKQotICAgICAgICAgICAgICAgICAgIChl bHNlIChlcnJvciAiYmFkIGFjY3VtIiBhY2N1bSkpKSkpKSkpCi0KLTs7IEdlbmVyYXRlcyBjb2Rl IGZvciBtYXRjaGluZyBhbnkgY2hhcmFjdGVyLgotOzsgRS5nLjogKGNnLXBlZy1hbnkgc3ludGF4 ICdib2R5KQotKGRlZmluZSAoY2ctcGVnLWFueSBhY2N1bSkKLSAgI2AobGFtYmRhIChzdHIgbGVu IHBvcykKLSAgICAgIChhbmQgKDwgcG9zIGxlbikKLSAgICAgICAgICAgIywoY2FzZSBhY2N1bQot ICAgICAgICAgICAgICAgKChhbGwpICNgKGxpc3QgKDErIHBvcykKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaXN0ICdjZy1wZWctYW55IChzdWJzdHJpbmcgc3RyIHBvcyAoMSsgcG9z KSkpKSkKLSAgICAgICAgICAgICAgICgobmFtZSkgI2AobGlzdCAoMSsgcG9zKSAnY2ctcGVnLWFu eSkpCi0gICAgICAgICAgICAgICAoKGJvZHkpICNgKGxpc3QgKDErIHBvcykgKHN1YnN0cmluZyBz dHIgcG9zICgxKyBwb3MpKSkpCi0gICAgICAgICAgICAgICAoKG5vbmUpICNgKGxpc3QgKDErIHBv cykgJygpKSkKLSAgICAgICAgICAgICAgIChlbHNlIChlcnJvciAiYmFkIGFjY3VtIiBhY2N1bSkp KSkpKQotCi07OyBHZW5lcmF0ZXMgY29kZSBmb3IgbWF0Y2hpbmcgYSByYW5nZSBvZiBjaGFyYWN0 ZXJzIGJldHdlZW4gc3RhcnQgYW5kIGVuZC4KLTs7IEUuZy46IChjZy1yYW5nZSBzeW50YXggI1xh ICNceiAnYm9keSkKLShkZWZpbmUgKGNnLXJhbmdlIHN0YXJ0IGVuZCBhY2N1bSkKLSAgI2AobGFt YmRhIChzdHIgbGVuIHBvcykKLSAgICAgIChhbmQgKDwgcG9zIGxlbikKLSAgICAgICAgICAgKGxl dCAoKGMgKHN0cmluZy1yZWYgc3RyIHBvcykpKQotICAgICAgICAgICAgIChhbmQgKGNoYXI+PT8g YyAjLHN0YXJ0KQotICAgICAgICAgICAgICAgICAgKGNoYXI8PT8gYyAjLGVuZCkKLSAgICAgICAg ICAgICAgICAgICMsKGNhc2UgYWNjdW0KLSAgICAgICAgICAgICAgICAgICAgICAoKGFsbCkgI2Ao bGlzdCAoMSsgcG9zKSAobGlzdCAnY2ctcmFuZ2UgKHN0cmluZyBjKSkpKQotICAgICAgICAgICAg ICAgICAgICAgICgobmFtZSkgI2AobGlzdCAoMSsgcG9zKSAnY2ctcmFuZ2UpKQotICAgICAgICAg ICAgICAgICAgICAgICgoYm9keSkgI2AobGlzdCAoMSsgcG9zKSAoc3RyaW5nIGMpKSkKLSAgICAg ICAgICAgICAgICAgICAgICAoKG5vbmUpICNgKGxpc3QgKDErIHBvcykgJygpKSkKLSAgICAgICAg ICAgICAgICAgICAgICAoZWxzZSAoZXJyb3IgImJhZCBhY2N1bSIgYWNjdW0pKSkpKSkpKQotCi07 OyBGaWx0ZXJzIHRoZSBhY2N1bSBhcmd1bWVudCB0byBwZWctc2V4cC1jb21waWxlIGZvciBidWls ZGluZ3MgbGlrZSBzdHJpbmcKLTs7IGxpdGVyYWxzIChzaW5jZSB3ZSBkb24ndCB3YW50IHRvIHRh ZyB0aGVtIHdpdGggdGhlaXIgbmFtZSBpZiB3ZSdyZSBkb2luZyBhbgotOzsgImFsbCIgYWNjdW0p LgotKGRlZmluZSAoYnVpbHRpbi1hY2N1bS1maWx0ZXIgYWNjdW0pCi0gIChjb25kCi0gICAoKGVx PyBhY2N1bSAnYWxsKSAnYm9keSkKLSAgICgoZXE/IGFjY3VtICduYW1lKSAnbmFtZSkKLSAgICgo ZXE/IGFjY3VtICdib2R5KSAnYm9keSkKLSAgICgoZXE/IGFjY3VtICdub25lKSAnbm9uZSkpKQot KGRlZmluZSBiYWYgYnVpbHRpbi1hY2N1bS1maWx0ZXIpCi0KLTs7IFRha2VzIGFuIGFyYml0cmFy eSBleHByZXNzaW9ucyBhbmQgYWNjdW11bGF0aW9uIHZhcmlhYmxlLCB0aGVuIHBhcnNlcyBpdC4K LTs7IEUuZy46IChwZWctc2V4cC1jb21waWxlIHN5bnRheCAnKGFuZCAiYWJjIiAob3IgIi0iIChy YW5nZSAjXGEgI1x6KSkpICdhbGwpCi0oZGVmaW5lIChwZWctc2V4cC1jb21waWxlIHBhdCBhY2N1 bSkKLSAgKHN5bnRheC1jYXNlIHBhdCAocGVnLWFueSByYW5nZSBpZ25vcmUgY2FwdHVyZSBwZWcg YW5kIG9yIGJvZHkpCi0gICAgKHBlZy1hbnkKLSAgICAgKGNnLXBlZy1hbnkgKGJhZiBhY2N1bSkp KQotICAgIChzeW0gKGlkZW50aWZpZXI/ICMnc3ltKSA7OyBub250ZXJtaW5hbAotICAgICAjJ3N5 bSkKLSAgICAoc3RyIChzdHJpbmc/IChzeW50YXgtPmRhdHVtICMnc3RyKSkgOzsgbGl0ZXJhbCBz dHJpbmcKLSAgICAgKGNnLXN0cmluZyAoc3ludGF4LT5kYXR1bSAjJ3N0cikgKGJhZiBhY2N1bSkp KQotICAgICgocmFuZ2Ugc3RhcnQgZW5kKSA7OyByYW5nZSBvZiBjaGFyYWN0ZXJzIChlLmcuIFth LXpdKQotICAgICAoYW5kIChjaGFyPyAoc3ludGF4LT5kYXR1bSAjJ3N0YXJ0KSkgKGNoYXI/IChz eW50YXgtPmRhdHVtICMnZW5kKSkpCi0gICAgIChjZy1yYW5nZSAoc3ludGF4LT5kYXR1bSAjJ3N0 YXJ0KSAoc3ludGF4LT5kYXR1bSAjJ2VuZCkgKGJhZiBhY2N1bSkpKQotICAgICgoaWdub3JlIHBh dCkgOzsgbWF0Y2ggYnV0IGRvbid0IHBhcnNlCi0gICAgIChwZWctc2V4cC1jb21waWxlICMncGF0 ICdub25lKSkKLSAgICAoKGNhcHR1cmUgcGF0KSA7OyBwYXJzZQotICAgICAocGVnLXNleHAtY29t cGlsZSAjJ3BhdCAnYm9keSkpCi0gICAgKChwZWcgcGF0KSAgOzsgZW1iZWRkZWQgUEVHIHN0cmlu ZwotICAgICAoc3RyaW5nPyAoc3ludGF4LT5kYXR1bSAjJ3BhdCkpCi0gICAgIChwZWctc3RyaW5n LWNvbXBpbGUgIydwYXQgKGJhZiBhY2N1bSkpKQotICAgICgoYW5kIHBhdCAuLi4pCi0gICAgIChj Zy1hbmQgIycocGF0IC4uLikgKGJhZiBhY2N1bSkpKQotICAgICgob3IgcGF0IC4uLikKLSAgICAg KGNnLW9yICMnKHBhdCAuLi4pIChiYWYgYWNjdW0pKSkKLSAgICAoKGJvZHkgdHlwZSBwYXQgbnVt KQotICAgICAoY2ctYm9keSAoYmFmIGFjY3VtKSAjJ3R5cGUgIydwYXQgIydudW0pKSkpCi0KLTs7 IFRvcC1sZXZlbCBmdW5jdGlvbiBidWlsZGVyIGZvciBBTkQuICBSZWR1Y2VzIHRvIGEgY2FsbCB0 byBDRy1BTkQtSU5ULgotKGRlZmluZSAoY2ctYW5kIGNsYXVzZXMgYWNjdW0pCi0gICNgKGxhbWJk YSAoc3RyIGxlbiBwb3MpCi0gICAgICAobGV0ICgoYm9keSAnKCkpKQotICAgICAgICAjLChjZy1h bmQtaW50IGNsYXVzZXMgYWNjdW0gIydzdHIgIydsZW4gIydwb3MgIydib2R5KSkpKQotCi07OyBJ bnRlcm5hbCBmdW5jdGlvbiBidWlsZGVyIGZvciBBTkQgKGNhbGxzIGl0c2VsZikuCi0oZGVmaW5l IChjZy1hbmQtaW50IGNsYXVzZXMgYWNjdW0gc3RyIHN0cmxlbiBhdCBib2R5KQotICAoc3ludGF4 LWNhc2UgY2xhdXNlcyAoKQotICAgICgoKQotICAgICAoY2dnciBhY2N1bSAnY2ctYW5kICNgKHJl dmVyc2UgIyxib2R5KSBhdCkpCi0gICAgKChmaXJzdCByZXN0IC4uLikKLSAgICAgI2AobGV0ICgo cmVzICgjLChwZWctc2V4cC1jb21waWxlICMnZmlyc3QgYWNjdW0pICMsc3RyICMsc3RybGVuICMs YXQpKSkKLSAgICAgICAgIChhbmQgcmVzIAotICAgICAgICAgICAgICA7OyB1cGRhdGUgQVQgYW5k IEJPRFkgdGhlbiByZWN1cnNlCi0gICAgICAgICAgICAgIChsZXQgKChuZXdhdCAoY2FyIHJlcykp Ci0gICAgICAgICAgICAgICAgICAgIChuZXdib2R5IChjYWRyIHJlcykpKQotICAgICAgICAgICAg ICAgIChzZXQhICMsYXQgbmV3YXQpCi0gICAgICAgICAgICAgICAgKHB1c2gtbm90LW51bGwhICMs Ym9keSAoc2luZ2xlLWZpbHRlciBuZXdib2R5KSkKLSAgICAgICAgICAgICAgICAjLChjZy1hbmQt aW50ICMnKHJlc3QgLi4uKSBhY2N1bSBzdHIgc3RybGVuIGF0IGJvZHkpKSkpKSkpCi0KLTs7IFRv cC1sZXZlbCBmdW5jdGlvbiBidWlsZGVyIGZvciBPUi4gIFJlZHVjZXMgdG8gYSBjYWxsIHRvIENH LU9SLUlOVC4KLShkZWZpbmUgKGNnLW9yIGNsYXVzZXMgYWNjdW0pCi0gICNgKGxhbWJkYSAoc3Ry IGxlbiBwb3MpCi0gICAgICAjLChjZy1vci1pbnQgY2xhdXNlcyBhY2N1bSAjJ3N0ciAjJ2xlbiAj J3BvcykpKQotCi07OyBJbnRlcm5hbCBmdW5jdGlvbiBidWlsZGVyIGZvciBPUiAoY2FsbHMgaXRz ZWxmKS4KLShkZWZpbmUgKGNnLW9yLWludCBjbGF1c2VzIGFjY3VtIHN0ciBzdHJsZW4gYXQpCi0g IChzeW50YXgtY2FzZSBjbGF1c2VzICgpCi0gICAgKCgpCi0gICAgICNmKQotICAgICgoZmlyc3Qg cmVzdCAuLi4pCi0gICAgICNgKG9yICgjLChwZWctc2V4cC1jb21waWxlICMnZmlyc3QgYWNjdW0p ICMsc3RyICMsc3RybGVuICMsYXQpCi0gICAgICAgICAgICMsKGNnLW9yLWludCAjJyhyZXN0IC4u LikgYWNjdW0gc3RyIHN0cmxlbiBhdCkpKSkpCi0KLTs7IFJldHVybnMgYSBmdW5jdGlvbiB0aGF0 IHBhcnNlcyBhIEJPRFkgZWxlbWVudC4KLShkZWZpbmUgKGNnLWJvZHkgYWNjdW0gdHlwZSBwYXQg bnVtKQotICAjYChsYW1iZGEgKHN0ciBzdHJsZW4gYXQpCi0gICAgICAobGV0ICgoYm9keSAnKCkp KQotICAgICAgICAobGV0IGxwICgoZW5kIGF0KSAoY291bnQgMCkpCi0gICAgICAgICAgKGxldCog KChtYXRjaCAoIywocGVnLXNleHAtY29tcGlsZSBwYXQgYWNjdW0pIHN0ciBzdHJsZW4gZW5kKSkK LSAgICAgICAgICAgICAgICAgKG5ldy1lbmQgKGlmIG1hdGNoIChjYXIgbWF0Y2gpIGVuZCkpCi0g ICAgICAgICAgICAgICAgIChjb3VudCAoaWYgKD4gbmV3LWVuZCBlbmQpICgxKyBjb3VudCkgY291 bnQpKSkKLSAgICAgICAgICAgIChpZiAoPiBuZXctZW5kIGVuZCkKLSAgICAgICAgICAgICAgICAo cHVzaC1ub3QtbnVsbCEgYm9keSAoc2luZ2xlLWZpbHRlciAoY2FkciBtYXRjaCkpKSkKLSAgICAg ICAgICAgIChpZiAoYW5kICg+IG5ldy1lbmQgZW5kKQotICAgICAgICAgICAgICAgICAgICAgIywo c3ludGF4LWNhc2UgbnVtICgrICogPykKLSAgICAgICAgICAgICAgICAgICAgICAgICAobiAobnVt YmVyPyAoc3ludGF4LT5kYXR1bSAjJ24pKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMn KDwgY291bnQgbikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCsgI3QpCi0gICAgICAgICAg ICAgICAgICAgICAgICAgKCogI3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKD8gIycoPCBj b3VudCAxKSkpKQotICAgICAgICAgICAgICAgIChscCBuZXctZW5kIGNvdW50KQotICAgICAgICAg ICAgICAgIChsZXQgKChzdWNjZXNzICMsKHN5bnRheC1jYXNlIG51bSAoKyAqID8pCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuIChudW1iZXI/IChzeW50YXgtPmRhdHVtICMn bikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnKD0gY291bnQgbikp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrICMnKD49IGNvdW50IDEpKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAjdCkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKD8gI3QpKSkpCi0gICAgICAgICAgICAgICAgICAjLChzeW50 YXgtY2FzZSB0eXBlICghICYgbGl0KQotICAgICAgICAgICAgICAgICAgICAgICghCi0gICAgICAg ICAgICAgICAgICAgICAgICNgKGlmIHN1Y2Nlc3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgI2YKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIywoY2dnciBhY2N1bSAnY2ctYm9k eSAjJycoKSAjJ2F0KSkpCi0gICAgICAgICAgICAgICAgICAgICAgKCYKLSAgICAgICAgICAgICAg ICAgICAgICAgI2AoYW5kIHN1Y2Nlc3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMs KGNnZ3IgYWNjdW0gJ2NnLWJvZHkgIycnKCkgIydhdCkpKQotICAgICAgICAgICAgICAgICAgICAg IChsaXQKLSAgICAgICAgICAgICAgICAgICAgICAgI2AoYW5kIHN1Y2Nlc3MKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMsKGNnZ3IgYWNjdW0gJ2NnLWJvZHkgIycocmV2ZXJzZSBib2R5 KSAjJ25ldy1lbmQpKSkpKSkpKSkpKQotCi0KLTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CiA7Ozs7 OyBGT1IgREVGSU5JTkcgQU5EIFVTSU5HIE5PTlRFUk1JTkFMUwogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7OzsKIApAQCAtNTExLDcgKzI5OCw3IEBAIFJCIDwgJ10nCiAgIChsZXQgKChwYXJzZWQgKHBl Zy1wYXJzZSBwZWctZ3JhbW1hciBzdHIpKSkKICAgICAoaWYgKG5vdCBwYXJzZWQpCiAgICAgICAg IChiZWdpbgotICAgICAgICAgIDs7IChwcmV0dHktcHJpbnQgIkludmFsaWQgUEVHIGdyYW1tYXIh XG4iKQorICAgICAgICAgIDs7IChkaXNwbGF5ICJJbnZhbGlkIFBFRyBncmFtbWFyIVxuIikKICAg ICAgICAgICAjZikKICAgICAgICAgKGxldCAoKGxzdCAocGVnOnRyZWUgcGFyc2VkKSkpCiAgICAg ICAgICAgKGNvbmQKZGlmZiAtLWdpdCBhL21vZHVsZS9pY2UtOS9wZWcvY29kZWdlbi5zY20gYi9t b2R1bGUvaWNlLTkvcGVnL2NvZGVnZW4uc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjQzZjQ0Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9tb2R1bGUvaWNlLTkvcGVnL2NvZGVn ZW4uc2NtCkBAIC0wLDAgKzEsMjQ1IEBACis7Ozs7IGNvZGVnZW4uc2NtIC0tLSBjb2RlIGdlbmVy YXRpb24gZm9yIGNvbXBvc2FibGUgcGFyc2VycworOzs7OworOzs7OyAJQ29weXJpZ2h0IChDKSAy MDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorOzs7OworOzs7OyBUaGlzIGxpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCis7Ozs7 IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKzs7OzsgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCis7Ozs7IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OzsgCis7Ozs7IFRoaXMgbGlicmFyeSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzs7OyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorOzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorOzs7OyAKKzs7OzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworOzs7OyBMaWNlbnNlIGFsb25nIHdp dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCis7Ozs7 IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv biwgTUEgMDIxMTAtMTMwMSBVU0EKKzs7OzsKKworKGRlZmluZS1tb2R1bGUgKGljZS05IHBlZyBj b2RlZ2VuKQorICAjOmV4cG9ydCAocGVnLXNleHAtY29tcGlsZSkKKyAgIzp1c2UtbW9kdWxlIChp Y2UtOSBwZWcpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgcHJldHR5LXByaW50KQorICAjOnVzZS1t b2R1bGUgKHN5c3RlbSBiYXNlIHBtYXRjaCkpCisKKyhkZWZpbmUtc3ludGF4IHNpbmdsZT8KKyAg KHN5bnRheC1ydWxlcyAoKQorICAgICJSZXR1cm4gI3QgaWYgWCBpcyBhIGxpc3Qgb2Ygb25lIGVs ZW1lbnQuIgorICAgICgoXyB4KQorICAgICAocG1hdGNoIHgKKyAgICAgICAoKF8pICN0KQorICAg ICAgIChlbHNlICNmKSkpKSkKKworKGRlZmluZS1zeW50YXggc2luZ2xlLWZpbHRlcgorICAoc3lu dGF4LXJ1bGVzICgpCisgICAgIklmIEVYUCBpcyBhIGxpc3Qgb2Ygb25lIGVsZW1lbnQsIHJldHVy biB0aGUgZWxlbWVudC4gIE90aGVyd2lzZQorcmV0dXJuIEVYUC4iCisgICAgKChfIGV4cCkKKyAg ICAgKHBtYXRjaCBleHAKKyAgICAgICAoKCxlbHQpIGVsdCkKKyAgICAgICAoLGVsdHMgZWx0cykp KSkpCisKKyhkZWZpbmUtc3ludGF4IHB1c2gtbm90LW51bGwhCisgIChzeW50YXgtcnVsZXMgKCkK KyAgICAiSWYgT0JKIGlzIG5vbi1udWxsLCBwdXNoIGl0IG9udG8gTFNULCBvdGhlcndpc2UgZG8g bm90aGluZy4iCisgICAgKChfIGxzdCBvYmopCisgICAgIChpZiAobm90IChudWxsPyBvYmopKQor ICAgICAgICAgKHB1c2ghIGxzdCBvYmopKSkpKQorCisoZGVmaW5lLXN5bnRheCBwdXNoIQorICAo c3ludGF4LXJ1bGVzICgpCisgICAgIlB1c2ggYW4gb2JqZWN0IG9udG8gYSBsaXN0LiIKKyAgICAo KF8gbHN0IG9iaikKKyAgICAgKHNldCEgbHN0IChjb25zIG9iaiBsc3QpKSkpKQorCisKKzs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cis7Ozs7OyBDT0RFIEdFTkVSQVRPUlMKKzs7IFRoZXNlIGZ1bmN0 aW9ucyBnZW5lcmF0ZSBzY2hlbWUgY29kZSBmb3IgcGFyc2luZyBQRUdzLgorOzsgQ29udmVudGlv bnM6Cis7OyAgIGFjY3VtOiAoYWxsIG5hbWUgYm9keSBub25lKQorOzs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7OzsKKworOzsgQ29kZSB3ZSBnZW5lcmF0ZSB3aWxsIGhhdmUgYSBjZXJ0YWluIHJldHVybiBz dHJ1Y3R1cmUgZGVwZW5kaW5nIG9uIGhvdyB3ZSdyZQorOzsgYWNjdW11bGF0aW5nICh0aGUgQUND VU0gdmFyaWFibGUpLgorKGRlZmluZSAoY2ctZ2VuZXJpYy1yZXQgYWNjdW0gbmFtZSBib2R5LXVu ZXZhbCBhdCkKKyAgOzsgbmFtZSwgYm9keS11bmV2YWwgYW5kIGF0IGFyZSBzeW50YXgKKyAgI2Ao bGV0ICgoYm9keSAjLGJvZHktdW5ldmFsKSkKKyAgICAgIywoY29uZAorICAgICAgICAoKGFuZCAo ZXE/IGFjY3VtICdhbGwpIG5hbWUpCisgICAgICAgICAjYChsaXN0ICMsYXQKKyAgICAgICAgICAg ICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICgobm90IChsaXN0PyBib2R5KSkgKGxpc3Qg JyMsbmFtZSBib2R5KSkKKyAgICAgICAgICAgICAgICAgICgobnVsbD8gYm9keSkgJyMsbmFtZSkK KyAgICAgICAgICAgICAgICAgICgoc3ltYm9sPyAoY2FyIGJvZHkpKSAobGlzdCAnIyxuYW1lIGJv ZHkpKQorICAgICAgICAgICAgICAgICAgKGVsc2UgKGNvbnMgJyMsbmFtZSBib2R5KSkpKSkKKyAg ICAgICAgKChlcT8gYWNjdW0gJ25hbWUpCisgICAgICAgICAjYChsaXN0ICMsYXQgJyMsbmFtZSkp CisgICAgICAgICgoZXE/IGFjY3VtICdib2R5KQorICAgICAgICAgI2AobGlzdCAjLGF0CisgICAg ICAgICAgICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgICAoKHNpbmdsZT8gYm9keSkgKGNh ciBib2R5KSkKKyAgICAgICAgICAgICAgICAgIChlbHNlIGJvZHkpKSkpCisgICAgICAgICgoZXE/ IGFjY3VtICdub25lKQorICAgICAgICAgI2AobGlzdCAjLGF0ICcoKSkpCisgICAgICAgIChlbHNl CisgICAgICAgICAoYmVnaW4KKyAgICAgICAgICAgKHByZXR0eS1wcmludCBgKGNnLWdlbmVyaWMt cmV0LWVycm9yICxhY2N1bSAsbmFtZSAsYm9keS11bmV2YWwgLGF0KSkKKyAgICAgICAgICAgKHBy ZXR0eS1wcmludCAiRGVmYXVsdGluZyB0byBhY2N1bSBvZiBub25lLlxuIikKKyAgICAgICAgICAg I2AobGlzdCAjLGF0ICcoKSkpKSkpKQorCis7OyBUaGUgc2hvcnQgbmFtZSBtYWtlcyB0aGUgZm9y bWF0dGluZyBiZWxvdyBtdWNoIGVhc2llciB0byByZWFkLgorKGRlZmluZSBjZ2dyIGNnLWdlbmVy aWMtcmV0KQorCis7OyBHZW5lcmF0ZXMgY29kZSB0aGF0IG1hdGNoZXMgYSBwYXJ0aWN1bGFyIHN0 cmluZy4KKzs7IEUuZy46IChjZy1zdHJpbmcgc3ludGF4ICJhYmMiICdib2R5KQorKGRlZmluZSAo Y2ctc3RyaW5nIHBhdCBhY2N1bSkKKyAgKGxldCAoKHBsZW4gKHN0cmluZy1sZW5ndGggcGF0KSkp CisgICAgI2AobGFtYmRhIChzdHIgbGVuIHBvcykKKyAgICAgICAgKGxldCAoKGVuZCAoKyBwb3Mg IyxwbGVuKSkpCisgICAgICAgICAgKGFuZCAoPD0gZW5kIGxlbikKKyAgICAgICAgICAgICAgIChz dHJpbmc9IHN0ciAjLHBhdCBwb3MgZW5kKQorICAgICAgICAgICAgICAgIywoY2FzZSBhY2N1bQor ICAgICAgICAgICAgICAgICAgICgoYWxsKSAjYChsaXN0IGVuZCAobGlzdCAnY2ctc3RyaW5nICMs cGF0KSkpCisgICAgICAgICAgICAgICAgICAgKChuYW1lKSAjYChsaXN0IGVuZCAnY2ctc3RyaW5n KSkKKyAgICAgICAgICAgICAgICAgICAoKGJvZHkpICNgKGxpc3QgZW5kICMscGF0KSkKKyAgICAg ICAgICAgICAgICAgICAoKG5vbmUpICNgKGxpc3QgZW5kICcoKSkpCisgICAgICAgICAgICAgICAg ICAgKGVsc2UgKGVycm9yICJiYWQgYWNjdW0iIGFjY3VtKSkpKSkpKSkKKworOzsgR2VuZXJhdGVz IGNvZGUgZm9yIG1hdGNoaW5nIGFueSBjaGFyYWN0ZXIuCis7OyBFLmcuOiAoY2ctcGVnLWFueSBz eW50YXggJ2JvZHkpCisoZGVmaW5lIChjZy1wZWctYW55IGFjY3VtKQorICAjYChsYW1iZGEgKHN0 ciBsZW4gcG9zKQorICAgICAgKGFuZCAoPCBwb3MgbGVuKQorICAgICAgICAgICAjLChjYXNlIGFj Y3VtCisgICAgICAgICAgICAgICAoKGFsbCkgI2AobGlzdCAoMSsgcG9zKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpc3QgJ2NnLXBlZy1hbnkgKHN1YnN0cmluZyBzdHIgcG9zICgx KyBwb3MpKSkpKQorICAgICAgICAgICAgICAgKChuYW1lKSAjYChsaXN0ICgxKyBwb3MpICdjZy1w ZWctYW55KSkKKyAgICAgICAgICAgICAgICgoYm9keSkgI2AobGlzdCAoMSsgcG9zKSAoc3Vic3Ry aW5nIHN0ciBwb3MgKDErIHBvcykpKSkKKyAgICAgICAgICAgICAgICgobm9uZSkgI2AobGlzdCAo MSsgcG9zKSAnKCkpKQorICAgICAgICAgICAgICAgKGVsc2UgKGVycm9yICJiYWQgYWNjdW0iIGFj Y3VtKSkpKSkpCisKKzs7IEdlbmVyYXRlcyBjb2RlIGZvciBtYXRjaGluZyBhIHJhbmdlIG9mIGNo YXJhY3RlcnMgYmV0d2VlbiBzdGFydCBhbmQgZW5kLgorOzsgRS5nLjogKGNnLXJhbmdlIHN5bnRh eCAjXGEgI1x6ICdib2R5KQorKGRlZmluZSAoY2ctcmFuZ2Ugc3RhcnQgZW5kIGFjY3VtKQorICAj YChsYW1iZGEgKHN0ciBsZW4gcG9zKQorICAgICAgKGFuZCAoPCBwb3MgbGVuKQorICAgICAgICAg ICAobGV0ICgoYyAoc3RyaW5nLXJlZiBzdHIgcG9zKSkpCisgICAgICAgICAgICAgKGFuZCAoY2hh cj49PyBjICMsc3RhcnQpCisgICAgICAgICAgICAgICAgICAoY2hhcjw9PyBjICMsZW5kKQorICAg ICAgICAgICAgICAgICAgIywoY2FzZSBhY2N1bQorICAgICAgICAgICAgICAgICAgICAgICgoYWxs KSAjYChsaXN0ICgxKyBwb3MpIChsaXN0ICdjZy1yYW5nZSAoc3RyaW5nIGMpKSkpCisgICAgICAg ICAgICAgICAgICAgICAgKChuYW1lKSAjYChsaXN0ICgxKyBwb3MpICdjZy1yYW5nZSkpCisgICAg ICAgICAgICAgICAgICAgICAgKChib2R5KSAjYChsaXN0ICgxKyBwb3MpIChzdHJpbmcgYykpKQor ICAgICAgICAgICAgICAgICAgICAgICgobm9uZSkgI2AobGlzdCAoMSsgcG9zKSAnKCkpKQorICAg ICAgICAgICAgICAgICAgICAgIChlbHNlIChlcnJvciAiYmFkIGFjY3VtIiBhY2N1bSkpKSkpKSkp CisKKzs7IEZpbHRlcnMgdGhlIGFjY3VtIGFyZ3VtZW50IHRvIHBlZy1zZXhwLWNvbXBpbGUgZm9y IGJ1aWxkaW5ncyBsaWtlIHN0cmluZworOzsgbGl0ZXJhbHMgKHNpbmNlIHdlIGRvbid0IHdhbnQg dG8gdGFnIHRoZW0gd2l0aCB0aGVpciBuYW1lIGlmIHdlJ3JlIGRvaW5nIGFuCis7OyAiYWxsIiBh Y2N1bSkuCisoZGVmaW5lIChidWlsdGluLWFjY3VtLWZpbHRlciBhY2N1bSkKKyAgKGNvbmQKKyAg ICgoZXE/IGFjY3VtICdhbGwpICdib2R5KQorICAgKChlcT8gYWNjdW0gJ25hbWUpICduYW1lKQor ICAgKChlcT8gYWNjdW0gJ2JvZHkpICdib2R5KQorICAgKChlcT8gYWNjdW0gJ25vbmUpICdub25l KSkpCisoZGVmaW5lIGJhZiBidWlsdGluLWFjY3VtLWZpbHRlcikKKworOzsgVGFrZXMgYW4gYXJi aXRyYXJ5IGV4cHJlc3Npb25zIGFuZCBhY2N1bXVsYXRpb24gdmFyaWFibGUsIHRoZW4gcGFyc2Vz IGl0LgorOzsgRS5nLjogKHBlZy1zZXhwLWNvbXBpbGUgc3ludGF4ICcoYW5kICJhYmMiIChvciAi LSIgKHJhbmdlICNcYSAjXHopKSkgJ2FsbCkKKyhkZWZpbmUgKHBlZy1zZXhwLWNvbXBpbGUgcGF0 IGFjY3VtKQorICAoc3ludGF4LWNhc2UgcGF0IChwZWctYW55IHJhbmdlIGlnbm9yZSBjYXB0dXJl IHBlZyBhbmQgb3IgYm9keSkKKyAgICAocGVnLWFueQorICAgICAoY2ctcGVnLWFueSAoYmFmIGFj Y3VtKSkpCisgICAgKHN5bSAoaWRlbnRpZmllcj8gIydzeW0pIDs7IG5vbnRlcm1pbmFsCisgICAg ICMnc3ltKQorICAgIChzdHIgKHN0cmluZz8gKHN5bnRheC0+ZGF0dW0gIydzdHIpKSA7OyBsaXRl cmFsIHN0cmluZworICAgICAoY2ctc3RyaW5nIChzeW50YXgtPmRhdHVtICMnc3RyKSAoYmFmIGFj Y3VtKSkpCisgICAgKChyYW5nZSBzdGFydCBlbmQpIDs7IHJhbmdlIG9mIGNoYXJhY3RlcnMgKGUu Zy4gW2Etel0pCisgICAgIChhbmQgKGNoYXI/IChzeW50YXgtPmRhdHVtICMnc3RhcnQpKSAoY2hh cj8gKHN5bnRheC0+ZGF0dW0gIydlbmQpKSkKKyAgICAgKGNnLXJhbmdlIChzeW50YXgtPmRhdHVt ICMnc3RhcnQpIChzeW50YXgtPmRhdHVtICMnZW5kKSAoYmFmIGFjY3VtKSkpCisgICAgKChpZ25v cmUgcGF0KSA7OyBtYXRjaCBidXQgZG9uJ3QgcGFyc2UKKyAgICAgKHBlZy1zZXhwLWNvbXBpbGUg IydwYXQgJ25vbmUpKQorICAgICgoY2FwdHVyZSBwYXQpIDs7IHBhcnNlCisgICAgIChwZWctc2V4 cC1jb21waWxlICMncGF0ICdib2R5KSkKKyAgICAoKHBlZyBwYXQpICA7OyBlbWJlZGRlZCBQRUcg c3RyaW5nCisgICAgIChzdHJpbmc/IChzeW50YXgtPmRhdHVtICMncGF0KSkKKyAgICAgKHBlZy1z dHJpbmctY29tcGlsZSAjJ3BhdCAoYmFmIGFjY3VtKSkpCisgICAgKChhbmQgcGF0IC4uLikKKyAg ICAgKGNnLWFuZCAjJyhwYXQgLi4uKSAoYmFmIGFjY3VtKSkpCisgICAgKChvciBwYXQgLi4uKQor ICAgICAoY2ctb3IgIycocGF0IC4uLikgKGJhZiBhY2N1bSkpKQorICAgICgoYm9keSB0eXBlIHBh dCBudW0pCisgICAgIChjZy1ib2R5IChiYWYgYWNjdW0pICMndHlwZSAjJ3BhdCAjJ251bSkpKSkK KworOzsgVG9wLWxldmVsIGZ1bmN0aW9uIGJ1aWxkZXIgZm9yIEFORC4gIFJlZHVjZXMgdG8gYSBj YWxsIHRvIENHLUFORC1JTlQuCisoZGVmaW5lIChjZy1hbmQgY2xhdXNlcyBhY2N1bSkKKyAgI2Ao bGFtYmRhIChzdHIgbGVuIHBvcykKKyAgICAgIChsZXQgKChib2R5ICcoKSkpCisgICAgICAgICMs KGNnLWFuZC1pbnQgY2xhdXNlcyBhY2N1bSAjJ3N0ciAjJ2xlbiAjJ3BvcyAjJ2JvZHkpKSkpCisK Kzs7IEludGVybmFsIGZ1bmN0aW9uIGJ1aWxkZXIgZm9yIEFORCAoY2FsbHMgaXRzZWxmKS4KKyhk ZWZpbmUgKGNnLWFuZC1pbnQgY2xhdXNlcyBhY2N1bSBzdHIgc3RybGVuIGF0IGJvZHkpCisgIChz eW50YXgtY2FzZSBjbGF1c2VzICgpCisgICAgKCgpCisgICAgIChjZ2dyIGFjY3VtICdjZy1hbmQg I2AocmV2ZXJzZSAjLGJvZHkpIGF0KSkKKyAgICAoKGZpcnN0IHJlc3QgLi4uKQorICAgICAjYChs ZXQgKChyZXMgKCMsKHBlZy1zZXhwLWNvbXBpbGUgIydmaXJzdCBhY2N1bSkgIyxzdHIgIyxzdHJs ZW4gIyxhdCkpKQorICAgICAgICAgKGFuZCByZXMgCisgICAgICAgICAgICAgIDs7IHVwZGF0ZSBB VCBhbmQgQk9EWSB0aGVuIHJlY3Vyc2UKKyAgICAgICAgICAgICAgKGxldCAoKG5ld2F0IChjYXIg cmVzKSkKKyAgICAgICAgICAgICAgICAgICAgKG5ld2JvZHkgKGNhZHIgcmVzKSkpCisgICAgICAg ICAgICAgICAgKHNldCEgIyxhdCBuZXdhdCkKKyAgICAgICAgICAgICAgICAocHVzaC1ub3QtbnVs bCEgIyxib2R5IChzaW5nbGUtZmlsdGVyIG5ld2JvZHkpKQorICAgICAgICAgICAgICAgICMsKGNn LWFuZC1pbnQgIycocmVzdCAuLi4pIGFjY3VtIHN0ciBzdHJsZW4gYXQgYm9keSkpKSkpKSkKKwor OzsgVG9wLWxldmVsIGZ1bmN0aW9uIGJ1aWxkZXIgZm9yIE9SLiAgUmVkdWNlcyB0byBhIGNhbGwg dG8gQ0ctT1ItSU5ULgorKGRlZmluZSAoY2ctb3IgY2xhdXNlcyBhY2N1bSkKKyAgI2AobGFtYmRh IChzdHIgbGVuIHBvcykKKyAgICAgICMsKGNnLW9yLWludCBjbGF1c2VzIGFjY3VtICMnc3RyICMn bGVuICMncG9zKSkpCisKKzs7IEludGVybmFsIGZ1bmN0aW9uIGJ1aWxkZXIgZm9yIE9SIChjYWxs cyBpdHNlbGYpLgorKGRlZmluZSAoY2ctb3ItaW50IGNsYXVzZXMgYWNjdW0gc3RyIHN0cmxlbiBh dCkKKyAgKHN5bnRheC1jYXNlIGNsYXVzZXMgKCkKKyAgICAoKCkKKyAgICAgI2YpCisgICAgKChm aXJzdCByZXN0IC4uLikKKyAgICAgI2Aob3IgKCMsKHBlZy1zZXhwLWNvbXBpbGUgIydmaXJzdCBh Y2N1bSkgIyxzdHIgIyxzdHJsZW4gIyxhdCkKKyAgICAgICAgICAgIywoY2ctb3ItaW50ICMnKHJl c3QgLi4uKSBhY2N1bSBzdHIgc3RybGVuIGF0KSkpKSkKKworOzsgUmV0dXJucyBhIGZ1bmN0aW9u IHRoYXQgcGFyc2VzIGEgQk9EWSBlbGVtZW50LgorKGRlZmluZSAoY2ctYm9keSBhY2N1bSB0eXBl IHBhdCBudW0pCisgICNgKGxhbWJkYSAoc3RyIHN0cmxlbiBhdCkKKyAgICAgIChsZXQgKChib2R5 ICcoKSkpCisgICAgICAgIChsZXQgbHAgKChlbmQgYXQpIChjb3VudCAwKSkKKyAgICAgICAgICAo bGV0KiAoKG1hdGNoICgjLChwZWctc2V4cC1jb21waWxlIHBhdCBhY2N1bSkgc3RyIHN0cmxlbiBl bmQpKQorICAgICAgICAgICAgICAgICAobmV3LWVuZCAoaWYgbWF0Y2ggKGNhciBtYXRjaCkgZW5k KSkKKyAgICAgICAgICAgICAgICAgKGNvdW50IChpZiAoPiBuZXctZW5kIGVuZCkgKDErIGNvdW50 KSBjb3VudCkpKQorICAgICAgICAgICAgKGlmICg+IG5ldy1lbmQgZW5kKQorICAgICAgICAgICAg ICAgIChwdXNoLW5vdC1udWxsISBib2R5IChzaW5nbGUtZmlsdGVyIChjYWRyIG1hdGNoKSkpKQor ICAgICAgICAgICAgKGlmIChhbmQgKD4gbmV3LWVuZCBlbmQpCisgICAgICAgICAgICAgICAgICAg ICAjLChzeW50YXgtY2FzZSBudW0gKCsgKiA/KQorICAgICAgICAgICAgICAgICAgICAgICAgIChu IChudW1iZXI/IChzeW50YXgtPmRhdHVtICMnbikpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIycoPCBjb3VudCBuKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKyAjdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAoKiAjdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoPyAj Jyg8IGNvdW50IDEpKSkpCisgICAgICAgICAgICAgICAgKGxwIG5ldy1lbmQgY291bnQpCisgICAg ICAgICAgICAgICAgKGxldCAoKHN1Y2Nlc3MgIywoc3ludGF4LWNhc2UgbnVtICgrICogPykKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG4gKG51bWJlcj8gKHN5bnRheC0+ZGF0 dW0gIyduKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIycoPSBjb3Vu dCBuKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCsgIycoPj0gY291bnQg MSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICN0KQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoPyAjdCkpKSkKKyAgICAgICAgICAgICAgICAgICMs KHN5bnRheC1jYXNlIHR5cGUgKCEgJiBsaXQpCisgICAgICAgICAgICAgICAgICAgICAgKCEKKyAg ICAgICAgICAgICAgICAgICAgICAgI2AoaWYgc3VjY2VzcworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjLChjZ2dyIGFjY3VtICdj Zy1ib2R5ICMnJygpICMnYXQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAoJgorICAgICAgICAg ICAgICAgICAgICAgICAjYChhbmQgc3VjY2VzcworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIywoY2dnciBhY2N1bSAnY2ctYm9keSAjJycoKSAjJ2F0KSkpCisgICAgICAgICAgICAgICAg ICAgICAgKGxpdAorICAgICAgICAgICAgICAgICAgICAgICAjYChhbmQgc3VjY2VzcworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIywoY2dnciBhY2N1bSAnY2ctYm9keSAjJyhyZXZlcnNl IGJvZHkpICMnbmV3LWVuZCkpKSkpKSkpKSkpCi0tIAoxLjcuNC4xCgo= --20cf3071c8aa833268049dc99a52 Content-Type: application/octet-stream; name="0002-Rename-in-peg.scm.patch" Content-Disposition: attachment; filename="0002-Rename-in-peg.scm.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkxih06b1 RnJvbSAzZjc2ZTk1YjZhOGI3Y2ZlNzJmZDZhMzI4YmI5NGY2MjFiOWUyNDhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bmxhdmluZUBoYXZlcmZvcmQuZWR1PgpE YXRlOiBTYXQsIDUgTWFyIDIwMTEgMTY6MjM6MDUgLTA1MDAKU3ViamVjdDogW1BBVENIIDIvN10g UmVuYW1lIGluIHBlZy5zY20KCiAqIG1vZHVsZS9pY2UtOS9wZWcuc2NtOiByZW5hbWUgcGVnLXBh cnNlLSogZnVuY3Rpb25zIHRvIGF2b2lkIGNvbmZ1c2lvbgogICAgd2l0aCB3aGF0IFBFR3MgZG8u Ci0tLQogbW9kdWxlL2ljZS05L3BlZy5zY20gfCAgIDM2ICsrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9tb2R1bGUvaWNlLTkvcGVnLnNjbSBiL21vZHVsZS9pY2Ut OS9wZWcuc2NtCmluZGV4IDBhY2M0NTkuLmUyNTZjMmQgMTAwNjQ0Ci0tLSBhL21vZHVsZS9pY2Ut OS9wZWcuc2NtCisrKyBiL21vZHVsZS9pY2UtOS9wZWcuc2NtCkBAIC0zMDUsNyArMzA1LDcgQEAg UkIgPCAnXScKICAgICAgICAgICAgKChvciAobm90IChsaXN0PyBsc3QpKSAobnVsbD8gbHN0KSkK ICAgICAgICAgICAgIGxzdCkKICAgICAgICAgICAgKChlcT8gKGNhciBsc3QpICdwZWctZ3JhbW1h cikKLSAgICAgICAgICAgIChjb25zICdiZWdpbiAobWFwIChsYW1iZGEgKHgpIChwZWctcGFyc2Ut bm9udGVybSB4KSkKKyAgICAgICAgICAgIChjb25zICdiZWdpbiAobWFwIChsYW1iZGEgKHgpIChw ZWctbm9udGVybS0+ZGVmbiB4KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250 ZXh0LWZsYXR0ZW4gKGxhbWJkYSAobHN0KSAoPD0gKGRlcHRoIGxzdCkgMikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIGxzdCkpKSkpKSkpKSkKIApAQCAt MzE5LDcgKzMxOSw3IEBAIFJCIDwgJ10nCiAoZGVmaW5lIGRlZmluZS1ncmFtbWFyLWYgcGVnLXBh cnNlcikKIAogOzsgUGFyc2UgYSBub250ZXJtaW5hbCBhbmQgcGF0dGVybiBsaXN0ZWQgaW4gTFNU LgotKGRlZmluZSAocGVnLXBhcnNlLW5vbnRlcm0gbHN0KQorKGRlZmluZSAocGVnLW5vbnRlcm0t PmRlZm4gbHN0KQogICAobGV0ICgobm9udGVybSAoY2FyIGxzdCkpCiAgICAgICAgIChncmFiYmVy IChjYWRyIGxzdCkpCiAgICAgICAgIChwYXR0ZXJuIChjYWRkciBsc3QpKSkKQEAgLTMyOCwyMyAr MzI4LDIzIEBAIFJCIDwgJ10nCiAgICAgICAgICAoKHN0cmluZz0/IGdyYWJiZXIgIjwtLSIpICdh bGwpCiAgICAgICAgICAoKHN0cmluZz0/IGdyYWJiZXIgIjwtIikgJ2JvZHkpCiAgICAgICAgICAo ZWxzZSAnbm9uZSkpCi0gICAgICAgLChjb21wcmVzc29yIChwZWctcGFyc2UtcGF0dGVybiBwYXR0 ZXJuKSkpKSkKKyAgICAgICAsKGNvbXByZXNzb3IgKHBlZy1wYXR0ZXJuLT5kZWZuIHBhdHRlcm4p KSkpKQogCiA7OyBQYXJzZSBhIHBhdHRlcm4uCi0oZGVmaW5lIChwZWctcGFyc2UtcGF0dGVybiBs c3QpCi0gIChjb25zICdvciAobWFwIHBlZy1wYXJzZS1hbHRlcm5hdGl2ZQorKGRlZmluZSAocGVn LXBhdHRlcm4tPmRlZm4gbHN0KQorICAoY29ucyAnb3IgKG1hcCBwZWctYWx0ZXJuYXRpdmUtPmRl Zm4KICAgICAgICAgICAgICAgICAgKGNvbnRleHQtZmxhdHRlbiAobGFtYmRhICh4KSAoZXE/IChj YXIgeCkgJ3BlZy1hbHRlcm5hdGl2ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj ZHIgbHN0KSkpKSkKIAogOzsgUGFyc2UgYW4gYWx0ZXJuYXRpdmUuCi0oZGVmaW5lIChwZWctcGFy c2UtYWx0ZXJuYXRpdmUgbHN0KQotICAoY29ucyAnYW5kIChtYXAgcGVnLXBhcnNlLWJvZHkKKyhk ZWZpbmUgKHBlZy1hbHRlcm5hdGl2ZS0+ZGVmbiBsc3QpCisgIChjb25zICdhbmQgKG1hcCBwZWct Ym9keS0+ZGVmbgogICAgICAgICAgICAgICAgICAgKGNvbnRleHQtZmxhdHRlbiAobGFtYmRhICh4 KSAob3IgKHN0cmluZz8gKGNhciB4KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZXE/IChjYXIgeCkgJ3BlZy1zdWZmaXgpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChjZHIgbHN0KSkpKSkKIAogOzsgUGFyc2UgYSBib2R5LgotKGRlZmlu ZSAocGVnLXBhcnNlLWJvZHkgbHN0KQorKGRlZmluZSAocGVnLWJvZHktPmRlZm4gbHN0KQogICAo bGV0ICgoc3VmZml4ICcoKSkKICAgICAgICAgKGZyb250ICdsaXQpKQogICAgIChjb25kCkBAIC0z NTQsNDEgKzM1NCw0MSBAQCBSQiA8ICddJwogICAgICAgKGJlZ2luIChzZXQhIGZyb250IChzdHJp bmctPnN5bWJvbCAoY2FyIGxzdCkpKQogICAgICAgICAgICAgIChzZXQhIHN1ZmZpeCAoY2FkciBs c3QpKSkpCiAgICAgIChlbHNlIGAocGVnLXBhcnNlLWJvZHktZmFpbCAsbHN0KSkpCi0gICAgYChi b2R5ICxmcm9udCAsQChwZWctcGFyc2Utc3VmZml4IHN1ZmZpeCkpKSkKKyAgICBgKGJvZHkgLGZy b250ICxAKHBlZy1zdWZmaXgtPmRlZm4gc3VmZml4KSkpKQogCiA7OyBQYXJzZSBhIHN1ZmZpeC4K LShkZWZpbmUgKHBlZy1wYXJzZS1zdWZmaXggbHN0KQotICAobGlzdCAocGVnLXBhcnNlLXByaW1h cnkgKGNhZHIgbHN0KSkKKyhkZWZpbmUgKHBlZy1zdWZmaXgtPmRlZm4gbHN0KQorICAobGlzdCAo cGVnLXByaW1hcnktPmRlZm4gKGNhZHIgbHN0KSkKICAgICAgICAgKGlmIChudWxsPyAoY2RkciBs c3QpKQogICAgICAgICAgICAgMQogICAgICAgICAgICAgKHN0cmluZy0+c3ltYm9sIChjYWRkciBs c3QpKSkpKQogCiA7OyBQYXJzZSBhIHByaW1hcnkuCi0oZGVmaW5lIChwZWctcGFyc2UtcHJpbWFy eSBsc3QpCisoZGVmaW5lIChwZWctcHJpbWFyeS0+ZGVmbiBsc3QpCiAgIChsZXQgKChlbCAoY2Fk ciBsc3QpKSkKICAgKGNvbmQKICAgICgobGlzdD8gZWwpCiAgICAgKGNvbmQKICAgICAgKChlcT8g KGNhciBlbCkgJ3BlZy1saXRlcmFsKQotICAgICAgKHBlZy1wYXJzZS1saXRlcmFsIGVsKSkKKyAg ICAgIChwZWctbGl0ZXJhbC0+ZGVmbiBlbCkpCiAgICAgICgoZXE/IChjYXIgZWwpICdwZWctY2hh cmNsYXNzKQotICAgICAgKHBlZy1wYXJzZS1jaGFyY2xhc3MgZWwpKQorICAgICAgKHBlZy1jaGFy Y2xhc3MtPmRlZm4gZWwpKQogICAgICAoKGVxPyAoY2FyIGVsKSAncGVnLW5vbnRlcm1pbmFsKQog ICAgICAgKHN0cmluZy0+c3ltYm9sIChjYWRyIGVsKSkpKSkKICAgICgoc3RyaW5nPyBlbCkKICAg ICAoY29uZAogICAgICAoKGVxdWFsPyBlbCAiKCIpCi0gICAgICAocGVnLXBhcnNlLXBhdHRlcm4g KGNhZGRyIGxzdCkpKQorICAgICAgKHBlZy1wYXR0ZXJuLT5kZWZuIChjYWRkciBsc3QpKSkKICAg ICAgKChlcXVhbD8gZWwgIi4iKQogICAgICAgJ3BlZy1hbnkpCiAgICAgIChlbHNlIGAocGVnLXBh cnNlLWFueSB1bmtub3duLXN0cmluZyAsbHN0KSkpKQogICAgKGVsc2UgYChwZWctcGFyc2UtYW55 IHVua25vd24tZWwgLGxzdCkpKSkpCiAKIDs7IFBhcnNlcyBhIGxpdGVyYWwuCi0oZGVmaW5lIChw ZWctcGFyc2UtbGl0ZXJhbCBsc3QpICh0cmltLTFjaGFycyAoY2FkciBsc3QpKSkKKyhkZWZpbmUg KHBlZy1saXRlcmFsLT5kZWZuIGxzdCkgKHRyaW0tMWNoYXJzIChjYWRyIGxzdCkpKQogCiA7OyBQ YXJzZXMgYSBjaGFyY2xhc3MuCi0oZGVmaW5lIChwZWctcGFyc2UtY2hhcmNsYXNzIGxzdCkKKyhk ZWZpbmUgKHBlZy1jaGFyY2xhc3MtPmRlZm4gbHN0KQogICAoY29ucyAnb3IKICAgICAgICAgKG1h cAogICAgICAgICAgKGxhbWJkYSAoY2MpCkBAIC00MjMsNyArNDIzLDcgQEAgUkIgPCAnXScKICAg IChkYXR1bS0+c3ludGF4CiAgICAgc3RyLXN0eAogICAgIChjb21wcmVzc29yCi0gICAgIChwZWct cGFyc2UtcGF0dGVybgorICAgICAocGVnLXBhdHRlcm4tPmRlZm4KICAgICAgIChwZWc6dHJlZSAo cGVnLXBhcnNlIHBlZy1wYXR0ZXJuIChzeW50YXgtPmRhdHVtIHN0ci1zdHgpKSkpKSkKICAgIGFj Y3VtKSkKIAotLSAKMS43LjQuMQoK --20cf3071c8aa833268049dc99a52 Content-Type: application/octet-stream; name="0003-Make-Macros-Hygienic.patch" Content-Disposition: attachment; filename="0003-Make-Macros-Hygienic.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkxih06d2 RnJvbSA2YThjNjNkYTk1NzI4ZGMzM2NhNTk4NDMyOGQ5NzQ3ZmJkMDY3ZTI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bmxhdmluZUBoYXZlcmZvcmQuZWR1PgpE YXRlOiBTYXQsIDUgTWFyIDIwMTEgMjI6Mzc6MTEgLTA1MDAKU3ViamVjdDogW1BBVENIIDMvN10g TWFrZSBNYWNyb3MgSHlnaWVuaWMKCiAqIG1vZHVsZXMvaWNlLTkvcGVnLnNjbTogY29udmVydCB0 aGUgdW5oeWdpZW5pYyBtYWNyb3MgdGhhdCBnZW5lcmF0ZSBjb2RlCiAgICBmb3Igc3RyaW5nIFBF R3MgdG8gdXNlIGh5Z2llbmUuCi0tLQogbW9kdWxlL2ljZS05L3BlZy5zY20gfCAgMTI5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGVzIGNo YW5nZWQsIDczIGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL21v ZHVsZS9pY2UtOS9wZWcuc2NtIGIvbW9kdWxlL2ljZS05L3BlZy5zY20KaW5kZXggZTI1NmMyZC4u OWJmMTUyYyAxMDA2NDQKLS0tIGEvbW9kdWxlL2ljZS05L3BlZy5zY20KKysrIGIvbW9kdWxlL2lj ZS05L3BlZy5zY20KQEAgLTI5NCw3ICsyOTQsNyBAQCBSQiA8ICddJwogCiA7OyBQYWtlcyBhIHN0 cmluZyByZXByZXNlbnRpbmcgYSBQRUcgZ3JhbW1hciBhbmQgZGVmaW5lcyBhbGwgdGhlIG5vbnRl cm1pbmFscyBpbgogOzsgaXQgYXMgdGhlIGFzc29jaWF0ZWQgUEVHcy4KLShkZWZpbmUgKHBlZy1w YXJzZXIgc3RyKQorKGRlZmluZSAocGVnLXBhcnNlciBzdHIgZm9yLXN5bnRheCkKICAgKGxldCAo KHBhcnNlZCAocGVnLXBhcnNlIHBlZy1ncmFtbWFyIHN0cikpKQogICAgIChpZiAobm90IHBhcnNl ZCkKICAgICAgICAgKGJlZ2luCkBAIC0zMDUsOSArMzA1LDEwIEBAIFJCIDwgJ10nCiAgICAgICAg ICAgICgob3IgKG5vdCAobGlzdD8gbHN0KSkgKG51bGw/IGxzdCkpCiAgICAgICAgICAgICBsc3Qp CiAgICAgICAgICAgICgoZXE/IChjYXIgbHN0KSAncGVnLWdyYW1tYXIpCi0gICAgICAgICAgICAo Y29ucyAnYmVnaW4gKG1hcCAobGFtYmRhICh4KSAocGVnLW5vbnRlcm0tPmRlZm4geCkpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGV4dC1mbGF0dGVuIChsYW1iZGEgKGxzdCkg KDw9IChkZXB0aCBsc3QpIDIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNkciBsc3QpKSkpKSkpKSkpCisgICAgICAgICAgICAjYChiZWdpbgorICAgICAgICAg ICAgICAgICMsQChtYXAgKGxhbWJkYSAoeCkgKHBlZy1ub250ZXJtLT5kZWZuIHggZm9yLXN5bnRh eCkpCisgICAgICAgICAgICAgICAgICAgICAgICAoY29udGV4dC1mbGF0dGVuIChsYW1iZGEgKGxz dCkgKDw9IChkZXB0aCBsc3QpIDIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY2RyIGxzdCkpKSkpKSkpKSkKIAogOzsgTWFjcm8gd3JhcHBlciBmb3IgUEVHLVBB UlNFUi4gIFBhcnNlcyBQRUcgZ3JhbW1hcnMgZXhwcmVzc2VkIGFzIHN0cmluZ3MgYW5kCiA7OyBk ZWZpbmVzIGFsbCB0aGUgYXBwcm9wcmlhdGUgbm9udGVybWluYWxzLgpAQCAtMzE1LDg4ICszMTYs MTAxIEBAIFJCIDwgJ10nCiAgIChsYW1iZGEgKHgpCiAgICAgKHN5bnRheC1jYXNlIHggKCkKICAg ICAgICgoXyBzdHIpCi0gICAgICAgKGRhdHVtLT5zeW50YXggeCAocGVnLXBhcnNlciAoc3ludGF4 LT5kYXR1bSAjJ3N0cikpKSkpKSkKKyAgICAgICAocGVnLXBhcnNlciAoc3ludGF4LT5kYXR1bSAj J3N0cikgeCkpKSkpCiAoZGVmaW5lIGRlZmluZS1ncmFtbWFyLWYgcGVnLXBhcnNlcikKIAogOzsg UGFyc2UgYSBub250ZXJtaW5hbCBhbmQgcGF0dGVybiBsaXN0ZWQgaW4gTFNULgotKGRlZmluZSAo cGVnLW5vbnRlcm0tPmRlZm4gbHN0KQotICAobGV0ICgobm9udGVybSAoY2FyIGxzdCkpCi0gICAg ICAgIChncmFiYmVyIChjYWRyIGxzdCkpCi0gICAgICAgIChwYXR0ZXJuIChjYWRkciBsc3QpKSkK LSAgICBgKGRlZmluZS1ub250ZXJtICwoc3RyaW5nLT5zeW1ib2wgKGNhZHIgbm9udGVybSkpCi0g ICAgICAgLChjb25kCi0gICAgICAgICAoKHN0cmluZz0/IGdyYWJiZXIgIjwtLSIpICdhbGwpCi0g ICAgICAgICAoKHN0cmluZz0/IGdyYWJiZXIgIjwtIikgJ2JvZHkpCi0gICAgICAgICAoZWxzZSAn bm9uZSkpCi0gICAgICAgLChjb21wcmVzc29yIChwZWctcGF0dGVybi0+ZGVmbiBwYXR0ZXJuKSkp KSkKKyhkZWZpbmUgKHBlZy1ub250ZXJtLT5kZWZuIGxzdCBmb3Itc3ludGF4KQorICAobGV0KiAo KG5vbnRlcm0gKGNhciBsc3QpKQorICAgICAgICAgKGdyYWJiZXIgKGNhZHIgbHN0KSkKKyAgICAg ICAgIChwYXR0ZXJuIChjYWRkciBsc3QpKQorICAgICAgICAgKG5vbnRlcm0tbmFtZSAoZGF0dW0t PnN5bnRheCBmb3Itc3ludGF4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChzdHJpbmctPnN5bWJvbCAoY2FkciBub250ZXJtKSkpKSkKKyAgICAjYChkZWZpbmUtbm9udGVy bSAjLG5vbnRlcm0tbmFtZQorICAgICAgICMsKGNvbmQKKyAgICAgICAgICAoKHN0cmluZz0/IGdy YWJiZXIgIjwtLSIpIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXggJ2FsbCkpCisgICAgICAgICAg KChzdHJpbmc9PyBncmFiYmVyICI8LSIpIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXggJ2JvZHkp KQorICAgICAgICAgIChlbHNlIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXggJ25vbmUpKSkKKyAg ICAgICAjLChjb21wcmVzc29yIChwZWctcGF0dGVybi0+ZGVmbiBwYXR0ZXJuIGZvci1zeW50YXgp IGZvci1zeW50YXgpKSkpCiAKIDs7IFBhcnNlIGEgcGF0dGVybi4KLShkZWZpbmUgKHBlZy1wYXR0 ZXJuLT5kZWZuIGxzdCkKLSAgKGNvbnMgJ29yIChtYXAgcGVnLWFsdGVybmF0aXZlLT5kZWZuCi0g ICAgICAgICAgICAgICAgIChjb250ZXh0LWZsYXR0ZW4gKGxhbWJkYSAoeCkgKGVxPyAoY2FyIHgp ICdwZWctYWx0ZXJuYXRpdmUpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIGxz dCkpKSkpCisoZGVmaW5lIChwZWctcGF0dGVybi0+ZGVmbiBsc3QgZm9yLXN5bnRheCkKKyAgI2Ao b3IgIyxAKG1hcCAobGFtYmRhICh4KSAocGVnLWFsdGVybmF0aXZlLT5kZWZuIHggZm9yLXN5bnRh eCkpCisgICAgICAgICAgICAgICAgKGNvbnRleHQtZmxhdHRlbiAobGFtYmRhICh4KSAoZXE/IChj YXIgeCkgJ3BlZy1hbHRlcm5hdGl2ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY2RyIGxzdCkpKSkpCiAKIDs7IFBhcnNlIGFuIGFsdGVybmF0aXZlLgotKGRlZmluZSAocGVn LWFsdGVybmF0aXZlLT5kZWZuIGxzdCkKLSAgKGNvbnMgJ2FuZCAobWFwIHBlZy1ib2R5LT5kZWZu Ci0gICAgICAgICAgICAgICAgICAoY29udGV4dC1mbGF0dGVuIChsYW1iZGEgKHgpIChvciAoc3Ry aW5nPyAoY2FyIHgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChlcT8gKGNhciB4KSAncGVnLXN1ZmZpeCkpKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNkciBsc3QpKSkpKQorKGRlZmluZSAocGVnLWFsdGVybmF0aXZlLT5kZWZuIGxzdCBm b3Itc3ludGF4KQorICAjYChhbmQgIyxAKG1hcCAobGFtYmRhICh4KSAocGVnLWJvZHktPmRlZm4g eCBmb3Itc3ludGF4KSkKKyAgICAgICAgICAgICAgICAgKGNvbnRleHQtZmxhdHRlbiAobGFtYmRh ICh4KSAob3IgKHN0cmluZz8gKGNhciB4KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChlcT8gKGNhciB4KSAncGVnLXN1ZmZpeCkpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChjZHIgbHN0KSkpKSkKIAogOzsgUGFyc2UgYSBib2R5Lgot KGRlZmluZSAocGVnLWJvZHktPmRlZm4gbHN0KQorKGRlZmluZSAocGVnLWJvZHktPmRlZm4gbHN0 IGZvci1zeW50YXgpCiAgIChsZXQgKChzdWZmaXggJygpKQotICAgICAgICAoZnJvbnQgJ2xpdCkp CisgICAgICAgIChmcm9udCAoZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4ICdsaXQpKSkKICAgICAo Y29uZAogICAgICAoKGVxPyAoY2FyIGxzdCkgJ3BlZy1zdWZmaXgpCiAgICAgICAoc2V0ISBzdWZm aXggbHN0KSkKICAgICAgKChzdHJpbmc/IChjYXIgbHN0KSkKLSAgICAgIChiZWdpbiAoc2V0ISBm cm9udCAoc3RyaW5nLT5zeW1ib2wgKGNhciBsc3QpKSkKKyAgICAgIChiZWdpbiAoc2V0ISBmcm9u dCAoZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN0cmluZy0+c3ltYm9sIChjYXIgbHN0KSkpKQogICAgICAgICAgICAgIChz ZXQhIHN1ZmZpeCAoY2FkciBsc3QpKSkpCiAgICAgIChlbHNlIGAocGVnLXBhcnNlLWJvZHktZmFp bCAsbHN0KSkpCi0gICAgYChib2R5ICxmcm9udCAsQChwZWctc3VmZml4LT5kZWZuIHN1ZmZpeCkp KSkKKyAgICAjYChib2R5ICMsZnJvbnQgIyxAKHBlZy1zdWZmaXgtPmRlZm4KKyAgICAgICAgICAg ICAgICAgICAgICAgIHN1ZmZpeAorICAgICAgICAgICAgICAgICAgICAgICAgZm9yLXN5bnRheCkp KSkKIAogOzsgUGFyc2UgYSBzdWZmaXguCi0oZGVmaW5lIChwZWctc3VmZml4LT5kZWZuIGxzdCkK LSAgKGxpc3QgKHBlZy1wcmltYXJ5LT5kZWZuIChjYWRyIGxzdCkpCi0gICAgICAgIChpZiAobnVs bD8gKGNkZHIgbHN0KSkKLSAgICAgICAgICAgIDEKLSAgICAgICAgICAgIChzdHJpbmctPnN5bWJv bCAoY2FkZHIgbHN0KSkpKSkKKyhkZWZpbmUgKHBlZy1zdWZmaXgtPmRlZm4gbHN0IGZvci1zeW50 YXgpCisgICNgKCMsKHBlZy1wcmltYXJ5LT5kZWZuIChjYWRyIGxzdCkgZm9yLXN5bnRheCkKKyAg ICAgIywoaWYgKG51bGw/IChjZGRyIGxzdCkpCisgICAgICAgICAgIDEKKyAgICAgICAgICAgKGRh dHVtLT5zeW50YXggZm9yLXN5bnRheCAoc3RyaW5nLT5zeW1ib2wgKGNhZGRyIGxzdCkpKSkpKQog CiA7OyBQYXJzZSBhIHByaW1hcnkuCi0oZGVmaW5lIChwZWctcHJpbWFyeS0+ZGVmbiBsc3QpCiso ZGVmaW5lIChwZWctcHJpbWFyeS0+ZGVmbiBsc3QgZm9yLXN5bnRheCkKICAgKGxldCAoKGVsIChj YWRyIGxzdCkpKQogICAoY29uZAogICAgKChsaXN0PyBlbCkKICAgICAoY29uZAogICAgICAoKGVx PyAoY2FyIGVsKSAncGVnLWxpdGVyYWwpCi0gICAgICAocGVnLWxpdGVyYWwtPmRlZm4gZWwpKQor ICAgICAgKHBlZy1saXRlcmFsLT5kZWZuIGVsIGZvci1zeW50YXgpKQogICAgICAoKGVxPyAoY2Fy IGVsKSAncGVnLWNoYXJjbGFzcykKLSAgICAgIChwZWctY2hhcmNsYXNzLT5kZWZuIGVsKSkKKyAg ICAgIChwZWctY2hhcmNsYXNzLT5kZWZuIGVsIGZvci1zeW50YXgpKQogICAgICAoKGVxPyAoY2Fy IGVsKSAncGVnLW5vbnRlcm1pbmFsKQotICAgICAgKHN0cmluZy0+c3ltYm9sIChjYWRyIGVsKSkp KSkKKyAgICAgIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXggKHN0cmluZy0+c3ltYm9sIChjYWRy IGVsKSkpKSkpCiAgICAoKHN0cmluZz8gZWwpCiAgICAgKGNvbmQKICAgICAgKChlcXVhbD8gZWwg IigiKQotICAgICAgKHBlZy1wYXR0ZXJuLT5kZWZuIChjYWRkciBsc3QpKSkKKyAgICAgIChwZWct cGF0dGVybi0+ZGVmbiAoY2FkZHIgbHN0KSBmb3Itc3ludGF4KSkKICAgICAgKChlcXVhbD8gZWwg Ii4iKQotICAgICAgJ3BlZy1hbnkpCi0gICAgIChlbHNlIGAocGVnLXBhcnNlLWFueSB1bmtub3du LXN0cmluZyAsbHN0KSkpKQotICAgKGVsc2UgYChwZWctcGFyc2UtYW55IHVua25vd24tZWwgLGxz dCkpKSkpCisgICAgICAoZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4ICdwZWctYW55KSkKKyAgICAg KGVsc2UgKGRhdHVtLT5zeW50YXggZm9yLXN5bnRheAorICAgICAgICAgICAgICAgICAgICAgICAg ICBgKHBlZy1wYXJzZS1hbnkgdW5rbm93bi1zdHJpbmcgLGxzdCkpKSkpCisgICAoZWxzZSAoZGF0 dW0tPnN5bnRheCBmb3Itc3ludGF4CisgICAgICAgICAgICAgICAgICAgICAgICBgKHBlZy1wYXJz ZS1hbnkgdW5rbm93bi1lbCAsbHN0KSkpKSkpCiAKIDs7IFBhcnNlcyBhIGxpdGVyYWwuCi0oZGVm aW5lIChwZWctbGl0ZXJhbC0+ZGVmbiBsc3QpICh0cmltLTFjaGFycyAoY2FkciBsc3QpKSkKKyhk ZWZpbmUgKHBlZy1saXRlcmFsLT5kZWZuIGxzdCBmb3Itc3ludGF4KQorICAoZGF0dW0tPnN5bnRh eCBmb3Itc3ludGF4ICh0cmltLTFjaGFycyAoY2FkciBsc3QpKSkpCiAKIDs7IFBhcnNlcyBhIGNo YXJjbGFzcy4KLShkZWZpbmUgKHBlZy1jaGFyY2xhc3MtPmRlZm4gbHN0KQotICAoY29ucyAnb3IK LSAgICAgICAgKG1hcAorKGRlZmluZSAocGVnLWNoYXJjbGFzcy0+ZGVmbiBsc3QgZm9yLXN5bnRh eCkKKyAgI2Aob3IKKyAgICAgIyxAKG1hcAogICAgICAgICAgKGxhbWJkYSAoY2MpCiAgICAgICAg ICAgIChjb25kCiAgICAgICAgICAgICAoKGVxPyAoY2FyIGNjKSAnY2hhcmNsYXNzLXJhbmdlKQot ICAgICAgICAgICAgIGAocmFuZ2UgLChzdHJpbmctcmVmIChjYWRyIGNjKSAwKSAsKHN0cmluZy1y ZWYgKGNhZHIgY2MpIDIpKSkKKyAgICAgICAgICAgICAjYChyYW5nZSAjLChkYXR1bS0+c3ludGF4 CisgICAgICAgICAgICAgICAgICAgICAgICAgZm9yLXN5bnRheAorICAgICAgICAgICAgICAgICAg ICAgICAgIChzdHJpbmctcmVmIChjYWRyIGNjKSAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAj LChkYXR1bS0+c3ludGF4CisgICAgICAgICAgICAgICAgICAgICAgICAgZm9yLXN5bnRheAorICAg ICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcmVmIChjYWRyIGNjKSAyKSkpKQogICAgICAg ICAgICAgKChlcT8gKGNhciBjYykgJ2NoYXJjbGFzcy1zaW5nbGUpCi0gICAgICAgICAgICAgKGNh ZHIgY2MpKSkpCisgICAgICAgICAgICAgKGRhdHVtLT5zeW50YXggZm9yLXN5bnRheCAoY2FkciBj YykpKSkpCiAgICAgICAgICAoY29udGV4dC1mbGF0dGVuCiAgICAgICAgICAgKGxhbWJkYSAoeCkg KG9yIChlcT8gKGNhciB4KSAnY2hhcmNsYXNzLXJhbmdlKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAoZXE/IChjYXIgeCkgJ2NoYXJjbGFzcy1zaW5nbGUpKSkKQEAgLTQwNCwyNyArNDE4LDMw IEBAIFJCIDwgJ10nCiAKIDs7IENvbXByZXNzZXMgYSBsaXN0IHRvIHNhdmUgdGhlIG9wdGltaXpl ciB3b3JrLgogOzsgZS5nLiAob3IgKGFuZCBhKSkgLT4gYQotKGRlZmluZSAoY29tcHJlc3NvciBs c3QpCisoZGVmaW5lIChjb21wcmVzc29yLWNvcmUgbHN0KQogICAoaWYgKG9yIChub3QgKGxpc3Q/ IGxzdCkpIChudWxsPyBsc3QpKQogICAgICAgbHN0CiAgICAgICAoY29uZAogICAgICAgICgoYW5k IChvciAoZXE/IChjYXIgbHN0KSAnb3IpIChlcT8gKGNhciBsc3QpICdhbmQpKQogICAgICAgICAg ICAgIChudWxsPyAoY2RkciBsc3QpKSkKLSAgICAgICAgKGNvbXByZXNzb3IgKGNhZHIgbHN0KSkp CisgICAgICAgIChjb21wcmVzc29yLWNvcmUgKGNhZHIgbHN0KSkpCiAgICAgICAgKChhbmQgKGVx PyAoY2FyIGxzdCkgJ2JvZHkpCiAgICAgICAgICAgICAgKGVxPyAoY2FkciBsc3QpICdsaXQpCiAg ICAgICAgICAgICAgKGVxPyAoY2FkZGRyIGxzdCkgMSkpCi0gICAgICAgIChjb21wcmVzc29yIChj YWRkciBsc3QpKSkKLSAgICAgICAoZWxzZSAobWFwIGNvbXByZXNzb3IgbHN0KSkpKSkKKyAgICAg ICAgKGNvbXByZXNzb3ItY29yZSAoY2FkZHIgbHN0KSkpCisgICAgICAgKGVsc2UgKG1hcCBjb21w cmVzc29yLWNvcmUgbHN0KSkpKSkKKworKGRlZmluZSAoY29tcHJlc3NvciBzeW4gZm9yLXN5bnRh eCkKKyAgKGRhdHVtLT5zeW50YXggZm9yLXN5bnRheAorICAgICAgICAgICAgICAgICAoY29tcHJl c3Nvci1jb3JlIChzeW50YXgtPmRhdHVtIHN5bikpKSkKIAogOzsgQnVpbGRzIGEgbGFtYmRhLWV4 cHJlc3Npb25zIGZvciB0aGUgcGF0dGVybiBTVFIgdXNpbmcgYWNjdW0uCiAoZGVmaW5lIChwZWct c3RyaW5nLWNvbXBpbGUgc3RyLXN0eCBhY2N1bSkKICAgKHBlZy1zZXhwLWNvbXBpbGUKLSAgIChk YXR1bS0+c3ludGF4Ci0gICAgc3RyLXN0eAotICAgIChjb21wcmVzc29yCi0gICAgIChwZWctcGF0 dGVybi0+ZGVmbgotICAgICAgKHBlZzp0cmVlIChwZWctcGFyc2UgcGVnLXBhdHRlcm4gKHN5bnRh eC0+ZGF0dW0gc3RyLXN0eCkpKSkpKQorICAgKGNvbXByZXNzb3IKKyAgICAocGVnLXBhdHRlcm4t PmRlZm4KKyAgICAgKHBlZzp0cmVlIChwZWctcGFyc2UgcGVnLXBhdHRlcm4gKHN5bnRheC0+ZGF0 dW0gc3RyLXN0eCkpKSBzdHItc3R4KQorICAgIHN0ci1zdHgpCiAgICBhY2N1bSkpCiAKIDs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ci0tIAoxLjcuNC4xCgo= --20cf3071c8aa833268049dc99a52 Content-Type: application/octet-stream; name="0004-Separate-PEG-Strings.patch" Content-Disposition: attachment; filename="0004-Separate-PEG-Strings.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkxih06e3 RnJvbSAwY2UxOTRmMzAwMTM2ZGM4NTdmZDA2MDQwZWQ0NTFkMDBhOTkyNTAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bmxhdmluZUBoYXZlcmZvcmQuZWR1PgpE YXRlOiBTYXQsIDUgTWFyIDIwMTEgMjM6NTQ6NTAgLTA1MDAKU3ViamVjdDogW1BBVENIIDQvN10g U2VwYXJhdGUgUEVHIFN0cmluZ3MKCiAqIG1vZHVsZS9pY2UtOS9wZWcuc2NtOiByZW1vdmUgZnVu Y3Rpb25zIGRlYWxpbmcgd2l0aCBQRUdzIGFzIHN0cmluZ3MKICogbW9kdWxlL2ljZS05L3BlZy9z dHJpbmctcGVnLnNjbTogYW5kIHB1dCB0aGVtIGhlcmUKLS0tCiBtb2R1bGUvaWNlLTkvcGVnLnNj bSAgICAgICAgICAgIHwgIDI5MSArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogbW9kdWxlL2ljZS05L3BlZy9jb2RlZ2VuLnNjbSAgICB8ICAgIDEgKwogbW9kdWxlL2ljZS05 L3BlZy9zdHJpbmctcGVnLnNjbSB8ICAzMDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDMxNSBpbnNlcnRpb25zKCspLCAyODIgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbW9kdWxlL2ljZS05L3BlZy9zdHJpbmctcGVnLnNj bQoKZGlmZiAtLWdpdCBhL21vZHVsZS9pY2UtOS9wZWcuc2NtIGIvbW9kdWxlL2ljZS05L3BlZy5z Y20KaW5kZXggOWJmMTUyYy4uYjk2MTA0YSAxMDA2NDQKLS0tIGEvbW9kdWxlL2ljZS05L3BlZy5z Y20KKysrIGIvbW9kdWxlL2ljZS05L3BlZy5zY20KQEAgLTE4LDE0ICsxOCwxMSBAQAogOzs7Owog CiAoZGVmaW5lLW1vZHVsZSAoaWNlLTkgcGVnKQotICAjOmV4cG9ydCAocGVnLXN0cmluZy1jb21w aWxlCi0gICAgICAgICAgICBjb250ZXh0LWZsYXR0ZW4KKyAgIzpleHBvcnQgKGNvbnRleHQtZmxh dHRlbgogICAgICAgICAgICAgcGVnLXBhcnNlCi0gICAgICAgICAgICBkZWZpbmUtbm9udGVybQot ICAgICAgICAgICAgZGVmaW5lLW5vbnRlcm0tZgorOyAgICAgICAgICAgIGRlZmluZS1ub250ZXJt Cis7ICAgICAgICAgICAgZGVmaW5lLW5vbnRlcm0tZgogICAgICAgICAgICAgcGVnLW1hdGNoCi0g ICAgICAgICAgICBkZWZpbmUtZ3JhbW1hcgotICAgICAgICAgICAgZGVmaW5lLWdyYW1tYXItZgog ICAgICAgICAgICAgcGVnOnN0YXJ0CiAgICAgICAgICAgICBwZWc6ZW5kCiAgICAgICAgICAgICBw ZWc6c3RyaW5nCkBAIC0zMyw4ICszMCwxMyBAQAogICAgICAgICAgICAgcGVnOnN1YnN0cmluZwog ICAgICAgICAgICAgcGVnLXJlY29yZD8KICAgICAgICAgICAgIGtleXdvcmQtZmxhdHRlbikKKzsg ICM6ZXhwb3J0LXN5bnRheCAoZGVmaW5lLW5vbnRlcm0pCiAgICM6dXNlLW1vZHVsZSAoaWNlLTkg cGVnIGNvZGVnZW4pCi0gICM6cmUtZXhwb3J0IChwZWctc2V4cC1jb21waWxlKQorICAjOnVzZS1t b2R1bGUgKGljZS05IHBlZyBzdHJpbmctcGVnKQorICAjOnJlLWV4cG9ydCAocGVnLXNleHAtY29t cGlsZQorICAgICAgICAgICAgICAgZGVmaW5lLWdyYW1tYXIKKyAgICAgICAgICAgICAgIGRlZmlu ZS1ncmFtbWFyLWYKKyAgICAgICAgICAgICAgIGRlZmluZS1ub250ZXJtKQogICAjOnVzZS1tb2R1 bGUgKHN5c3RlbSBiYXNlIHBtYXRjaCkpCiAKIDs7OwpAQCAtNjQsNjIgKzY2LDYgQEAgZXhlY3V0 ZSB0aGUgU1RNVHMgYW5kIHRyeSBhZ2Fpbi4iCiA7Ozs7OyBGT1IgREVGSU5JTkcgQU5EIFVTSU5H IE5PTlRFUk1JTkFMUwogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKIAotOzsgVGhlIHJlc3VsdHMg b2YgcGFyc2luZyB1c2luZyBhIG5vbnRlcm1pbmFsIGFyZSBjYWNoZWQuICBUaGluayBvZiBpdCBs aWtlIGEKLTs7IGhhc2ggd2l0aCBubyBjb25mbGljdCByZXNvbHV0aW9uLiAgUHJvY2VzcyBmb3Ig ZGVjaWRpbmcgb24gdGhlIGNhY2hlIHNpemUKLTs7IHdhc24ndCB2ZXJ5IHNjaWVudGlmaWM7IGp1 c3QgcmFuIHRoZSBiZW5jaG1hcmtzIGFuZCBzdG9wcGVkIGEgbGl0dGxlIGFmdGVyCi07OyB0aGUg cG9pbnQgb2YgZGltaW5pc2hpbmcgcmV0dXJucyBvbiBteSBib3guCi0oZGVmaW5lICpjYWNoZS1z aXplKiA1MTIpCi0KLShkZWZpbmUgKHN5bnRheC1mb3Itbm9uLWNhY2hlLWNhc2UgZm9yLXN5bnRh eCBtYXRjaGYtc3luIGFjY3Vtc3ltIHMtc3luKQotOyAgKGxldCAoKG1hdGNoZi1zeW4gKGRhdHVt LT5zeW50YXggZm9yLXN5bnRheCBtYXRjaGYpKSkKLSAgICNgKGxhbWJkYSAoc3RyIHN0cmxlbiBh dCkKLSAgICAgIChsZXQgKChyZXMgKCMsbWF0Y2hmLXN5biBzdHIgc3RybGVuIGF0KSkpCi0gICAg ICAgIDs7IFRyeSB0byBtYXRjaCB0aGUgbm9udGVybWluYWwuCi0gICAgICAgIChpZiByZXMKLSAg ICAgICAgICAgIDs7IElmIHdlIG1hdGNoZWQsIGRvIHNvbWUgcG9zdC1wcm9jZXNzaW5nIHRvIGZp Z3VyZSBvdXQKLSAgICAgICAgICAgIDs7IHdoYXQgZGF0YSB0byBwcm9wYWdhdGUgdXB3YXJkLgot ICAgICAgICAgICAgKGxldCAoKGF0IChjYXIgcmVzKSkKLSAgICAgICAgICAgICAgICAgIChib2R5 IChjYWRyIHJlcykpKQotICAgICAgICAgICAgICAjLChjb25kCi0gICAgICAgICAgICAgICAgICgo ZXE/IGFjY3Vtc3ltICduYW1lKQotICAgICAgICAgICAgICAgICAgI2AobGlzdCBhdCAnIyxzLXN5 bikpCi0gICAgICAgICAgICAgICAgICgoZXE/IGFjY3Vtc3ltICdhbGwpCi0gICAgICAgICAgICAg ICAgICAjYChsaXN0IChjYXIgcmVzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgKChub3QgKGxpc3Q/IGJvZHkpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaXN0ICcjLHMtc3luIGJvZHkpKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgKChudWxsPyBib2R5KSAnIyxzLXN5bikKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoc3ltYm9sPyAoY2FyIGJvZHkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaXN0ICcjLHMtc3luIGJvZHkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVsc2Ug KGNvbnMgJyMscy1zeW4gYm9keSkpKSkpCi0gICAgICAgICAgICAgICAgICgoZXE/IGFjY3Vtc3lt ICdub25lKSAjYChsaXN0IChjYXIgcmVzKSAnKCkpKQotICAgICAgICAgICAgICAgICAoZWxzZSAj YChiZWdpbiByZXMpKSkpCi0gICAgICAgICAgICA7OyBJZiB3ZSBkaWRuJ3QgbWF0Y2gsIGp1c3Qg cmV0dXJuIGZhbHNlLgotICAgICAgICAgICAgI2YpKSkpCi0KLTs7IERlZmluZXMgYSBuZXcgbm9u dGVybWluYWwgc3ltYm9sIGFjY3VtdWxhdGluZyB3aXRoIEFDQ1VNLgotKGRlZmluZS1zeW50YXgg ZGVmaW5lLW5vbnRlcm0KLSAgKGxhbWJkYSAoeCkKLSAgICAoc3ludGF4LWNhc2UgeCAoKQotICAg ICAgKChfIHN5bSBhY2N1bSBwYXQpCi0gICAgICAgKGxldCAoKG1hdGNoZiAocGVnLXNleHAtY29t cGlsZSAjJ3BhdCAoc3ludGF4LT5kYXR1bSAjJ2FjY3VtKSkpCi0gICAgICAgICAgICAgKGFjY3Vt c3ltIChzeW50YXgtPmRhdHVtICMnYWNjdW0pKQotICAgICAgICAgICAgIChjIChkYXR1bS0+c3lu dGF4IHggKGdlbnN5bSkpKSk7OyB0aGUgY2FjaGUKLSAgICAgICAgIDs7IENPREUgaXMgdGhlIGNv ZGUgdG8gcGFyc2UgdGhlIHN0cmluZyBpZiB0aGUgcmVzdWx0IGlzbid0IGNhY2hlZC4KLSAgICAg ICAgIChsZXQgKChzeW4gKHN5bnRheC1mb3Itbm9uLWNhY2hlLWNhc2UgeCBtYXRjaGYgYWNjdW1z eW0gIydzeW0pKSkKLSAgICAgICAgICAgI2AoYmVnaW4KLSAgICAgICAgICAgICAgIChkZWZpbmUg IyxjIChtYWtlLXZlY3RvciAqY2FjaGUtc2l6ZSogI2YpKTs7IHRoZSBjYWNoZQotICAgICAgICAg ICAgICAgKGRlZmluZSAoc3ltIHN0ciBzdHJsZW4gYXQpCi0gICAgICAgICAgICAgICAgIChsZXQq ICgodnJlZiAodmVjdG9yLXJlZiAjLGMgKG1vZHVsbyBhdCAqY2FjaGUtc2l6ZSopKSkpCi0gICAg ICAgICAgICAgICAgICAgOzsgQ2hlY2sgdG8gc2VlIHdoZXRoZXIgdGhlIHZhbHVlIGlzIGNhY2hl ZC4KLSAgICAgICAgICAgICAgICAgICAoaWYgKGFuZCB2cmVmIChlcT8gKGNhciB2cmVmKSBzdHIp ICg9IChjYWRyIHZyZWYpIGF0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgKGNhZGRyIHZyZWYp OzsgSWYgaXQgaXMgcmV0dXJuIGl0LgotICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoZnJl cyA7OyBFbHNlIGNhbGN1bGF0ZSBpdCBhbmQgY2FjaGUgaXQuCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoIyxzeW4gc3RyIHN0cmxlbiBhdCkpKQotICAgICAgICAgICAgICAgICAgICAg ICAgICh2ZWN0b3Itc2V0ISAjLGMgKG1vZHVsbyBhdCAqY2FjaGUtc2l6ZSopCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IHN0ciBhdCBmcmVzKSkKLSAgICAgICAg ICAgICAgICAgICAgICAgICBmcmVzKSkpKSkpKSkpKSkKLQogOzsgUGFyc2VzIFNUUklORyB1c2lu ZyBOT05URVJNCiAoZGVmaW5lIChwZWctcGFyc2Ugbm9udGVybSBzdHJpbmcpCiAgIDs7IFdlIGNv cHkgdGhlIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgYmVjYXVzZSBpdCBtaWdodCBoYXZlIGJlZW4g bW9kaWZpZWQKQEAgLTIyNSwyMjUgKzE3MSw2IEBAIGV4ZWN1dGUgdGhlIFNUTVRzIGFuZCB0cnkg YWdhaW4uIgogICAgICAgICAgKG1lbWJlciAoY2FyIHgpIGtleXdvcmQtbHN0KSkpCiAgICBsc3Qp KQogCi07OyBHZXRzIHRoZSBsZWZ0LWhhbmQgZGVwdGggb2YgYSBsaXN0LgotKGRlZmluZSAoZGVw dGggbHN0KQotICAoaWYgKG9yIChub3QgKGxpc3Q/IGxzdCkpIChudWxsPyBsc3QpKQotICAgICAg MAotICAgICAgKCsgMSAoZGVwdGggKGNhciBsc3QpKSkpKQotCi07OyBUcmltcyBjaGFyYWN0ZXJz IG9mZiB0aGUgZnJvbnQgYW5kIGVuZCBvZiBTVFIuCi07OyAodHJpbS0xY2hhcnMgIidhYiciKSAt PiAiYWIiCi0oZGVmaW5lICh0cmltLTFjaGFycyBzdHIpIChzdWJzdHJpbmcgc3RyIDEgKC0gKHN0 cmluZy1sZW5ndGggc3RyKSAxKSkpCi0KLTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ci07Ozs7OyBQ YXJzZSBzdHJpbmcgUEVHcyB1c2luZyBzZXhwIFBFR3MuCi07OyBTZWUgdGhlIHZhcmlhYmxlIFBF Ry1BUy1QRUcgZm9yIGFuIGVhc2llci10by1yZWFkIHN5bnRheC4KLTs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ci0KLTs7IEdyYW1tYXIgZm9yIFBFR3MgaW4gUEVHIGdyYW1tYXIuCi0oZGVmaW5lIHBl Zy1hcy1wZWcKLSJncmFtbWFyIDwtLSAobm9udGVybWluYWwgKCc8LS0nIC8gJzwtJyAvICc8Jykg c3AgcGF0dGVybikrCi1wYXR0ZXJuIDwtLSBhbHRlcm5hdGl2ZSAoU0xBU0ggc3AgYWx0ZXJuYXRp dmUpKgotYWx0ZXJuYXRpdmUgPC0tIChbISZdPyBzcCBzdWZmaXgpKwotc3VmZml4IDwtLSBwcmlt YXJ5IChbKis/XSBzcCkqCi1wcmltYXJ5IDwtLSAnKCcgc3AgcGF0dGVybiAnKScgc3AgLyAnLicg c3AgLyBsaXRlcmFsIC8gY2hhcmNsYXNzIC8gbm9udGVybWluYWwgISc8JwotbGl0ZXJhbCA8LS0g WyddICghWyddIC4pKiBbJ10gc3AKLWNoYXJjbGFzcyA8LS0gTEIgKCEnXScgKENDcmFuZ2UgLyBD Q3NpbmdsZSkpKiBSQiBzcAotQ0NyYW5nZSA8LS0gLiAnLScgLgotQ0NzaW5nbGUgPC0tIC4KLW5v bnRlcm1pbmFsIDwtLSBbYS16QS1aMC05LV0rIHNwCi1zcCA8IFsgXHRcbl0qCi1TTEFTSCA8ICcv JwotTEIgPCAnWycKLVJCIDwgJ10nCi0iKQotCi0oZGVmaW5lLW5vbnRlcm0gcGVnLWdyYW1tYXIg YWxsCi0gIChib2R5IGxpdCAoYW5kIHBlZy1ub250ZXJtaW5hbCAob3IgIjwtLSIgIjwtIiAiPCIp IHBlZy1zcCBwZWctcGF0dGVybikgKykpCi0oZGVmaW5lLW5vbnRlcm0gcGVnLXBhdHRlcm4gYWxs Ci0gIChhbmQgcGVnLWFsdGVybmF0aXZlCi0gICAgICAgKGJvZHkgbGl0IChhbmQgKGlnbm9yZSAi LyIpIHBlZy1zcCBwZWctYWx0ZXJuYXRpdmUpICopKSkKLShkZWZpbmUtbm9udGVybSBwZWctYWx0 ZXJuYXRpdmUgYWxsCi0gIChib2R5IGxpdCAoYW5kIChib2R5IGxpdCAob3IgIiEiICImIikgPykg cGVnLXNwIHBlZy1zdWZmaXgpICspKQotKGRlZmluZS1ub250ZXJtIHBlZy1zdWZmaXggYWxsCi0g IChhbmQgcGVnLXByaW1hcnkgKGJvZHkgbGl0IChhbmQgKG9yICIqIiAiKyIgIj8iKSBwZWctc3Ap ICopKSkKLShkZWZpbmUtbm9udGVybSBwZWctcHJpbWFyeSBhbGwKLSAgKG9yIChhbmQgIigiIHBl Zy1zcCBwZWctcGF0dGVybiAiKSIgcGVnLXNwKQotICAgICAgKGFuZCAiLiIgcGVnLXNwKQotICAg ICAgcGVnLWxpdGVyYWwKLSAgICAgIHBlZy1jaGFyY2xhc3MKLSAgICAgIChhbmQgcGVnLW5vbnRl cm1pbmFsIChib2R5ICEgIjwiIDEpKSkpCi0oZGVmaW5lLW5vbnRlcm0gcGVnLWxpdGVyYWwgYWxs Ci0gIChhbmQgIiciIChib2R5IGxpdCAoYW5kIChib2R5ICEgIiciIDEpIHBlZy1hbnkpICopICIn IiBwZWctc3ApKQotKGRlZmluZS1ub250ZXJtIHBlZy1jaGFyY2xhc3MgYWxsCi0gIChhbmQgKGln bm9yZSAiWyIpCi0gICAgICAgKGJvZHkgbGl0IChhbmQgKGJvZHkgISAiXSIgMSkKLSAgICAgICAg ICAgICAgICAgICAgICAob3IgY2hhcmNsYXNzLXJhbmdlIGNoYXJjbGFzcy1zaW5nbGUpKSAqKQot ICAgICAgIChpZ25vcmUgIl0iKQotICAgICAgIHBlZy1zcCkpCi0oZGVmaW5lLW5vbnRlcm0gY2hh cmNsYXNzLXJhbmdlIGFsbCAoYW5kIHBlZy1hbnkgIi0iIHBlZy1hbnkpKQotKGRlZmluZS1ub250 ZXJtIGNoYXJjbGFzcy1zaW5nbGUgYWxsIHBlZy1hbnkpCi0oZGVmaW5lLW5vbnRlcm0gcGVnLW5v bnRlcm1pbmFsIGFsbAotICAoYW5kIChib2R5IGxpdCAob3IgKHJhbmdlICNcYSAjXHopIChyYW5n ZSAjXEEgI1xaKSAocmFuZ2UgI1wwICNcOSkgIi0iKSArKSBwZWctc3ApKQotKGRlZmluZS1ub250 ZXJtIHBlZy1zcCBub25lCi0gIChib2R5IGxpdCAob3IgIiAiICJcdCIgIlxuIikgKikpCi0KLTs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ci07Ozs7OyBQQVJTRSBTVFJJTkcgUEVHUwotOzs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7OzsKLQotOzsgUGFrZXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgUEVHIGdy YW1tYXIgYW5kIGRlZmluZXMgYWxsIHRoZSBub250ZXJtaW5hbHMgaW4KLTs7IGl0IGFzIHRoZSBh c3NvY2lhdGVkIFBFR3MuCi0oZGVmaW5lIChwZWctcGFyc2VyIHN0ciBmb3Itc3ludGF4KQotICAo bGV0ICgocGFyc2VkIChwZWctcGFyc2UgcGVnLWdyYW1tYXIgc3RyKSkpCi0gICAgKGlmIChub3Qg cGFyc2VkKQotICAgICAgICAoYmVnaW4KLSAgICAgICAgICA7OyAoZGlzcGxheSAiSW52YWxpZCBQ RUcgZ3JhbW1hciFcbiIpCi0gICAgICAgICAgI2YpCi0gICAgICAgIChsZXQgKChsc3QgKHBlZzp0 cmVlIHBhcnNlZCkpKQotICAgICAgICAgIChjb25kCi0gICAgICAgICAgICgob3IgKG5vdCAobGlz dD8gbHN0KSkgKG51bGw/IGxzdCkpCi0gICAgICAgICAgICBsc3QpCi0gICAgICAgICAgICgoZXE/ IChjYXIgbHN0KSAncGVnLWdyYW1tYXIpCi0gICAgICAgICAgICAjYChiZWdpbgotICAgICAgICAg ICAgICAgICMsQChtYXAgKGxhbWJkYSAoeCkgKHBlZy1ub250ZXJtLT5kZWZuIHggZm9yLXN5bnRh eCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAoY29udGV4dC1mbGF0dGVuIChsYW1iZGEgKGxz dCkgKDw9IChkZXB0aCBsc3QpIDIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY2RyIGxzdCkpKSkpKSkpKSkKLQotOzsgTWFjcm8gd3JhcHBlciBmb3IgUEVHLVBB UlNFUi4gIFBhcnNlcyBQRUcgZ3JhbW1hcnMgZXhwcmVzc2VkIGFzIHN0cmluZ3MgYW5kCi07OyBk ZWZpbmVzIGFsbCB0aGUgYXBwcm9wcmlhdGUgbm9udGVybWluYWxzLgotKGRlZmluZS1zeW50YXgg ZGVmaW5lLWdyYW1tYXIKLSAgKGxhbWJkYSAoeCkKLSAgICAoc3ludGF4LWNhc2UgeCAoKQotICAg ICAgKChfIHN0cikKLSAgICAgICAocGVnLXBhcnNlciAoc3ludGF4LT5kYXR1bSAjJ3N0cikgeCkp KSkpCi0oZGVmaW5lIGRlZmluZS1ncmFtbWFyLWYgcGVnLXBhcnNlcikKLQotOzsgUGFyc2UgYSBu b250ZXJtaW5hbCBhbmQgcGF0dGVybiBsaXN0ZWQgaW4gTFNULgotKGRlZmluZSAocGVnLW5vbnRl cm0tPmRlZm4gbHN0IGZvci1zeW50YXgpCi0gIChsZXQqICgobm9udGVybSAoY2FyIGxzdCkpCi0g ICAgICAgICAoZ3JhYmJlciAoY2FkciBsc3QpKQotICAgICAgICAgKHBhdHRlcm4gKGNhZGRyIGxz dCkpCi0gICAgICAgICAobm9udGVybS1uYW1lIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXgKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy0+c3ltYm9sIChjYWRy IG5vbnRlcm0pKSkpKQotICAgICNgKGRlZmluZS1ub250ZXJtICMsbm9udGVybS1uYW1lCi0gICAg ICAgIywoY29uZAotICAgICAgICAgICgoc3RyaW5nPT8gZ3JhYmJlciAiPC0tIikgKGRhdHVtLT5z eW50YXggZm9yLXN5bnRheCAnYWxsKSkKLSAgICAgICAgICAoKHN0cmluZz0/IGdyYWJiZXIgIjwt IikgKGRhdHVtLT5zeW50YXggZm9yLXN5bnRheCAnYm9keSkpCi0gICAgICAgICAgKGVsc2UgKGRh dHVtLT5zeW50YXggZm9yLXN5bnRheCAnbm9uZSkpKQotICAgICAgICMsKGNvbXByZXNzb3IgKHBl Zy1wYXR0ZXJuLT5kZWZuIHBhdHRlcm4gZm9yLXN5bnRheCkgZm9yLXN5bnRheCkpKSkKLQotOzsg UGFyc2UgYSBwYXR0ZXJuLgotKGRlZmluZSAocGVnLXBhdHRlcm4tPmRlZm4gbHN0IGZvci1zeW50 YXgpCi0gICNgKG9yICMsQChtYXAgKGxhbWJkYSAoeCkgKHBlZy1hbHRlcm5hdGl2ZS0+ZGVmbiB4 IGZvci1zeW50YXgpKQotICAgICAgICAgICAgICAgIChjb250ZXh0LWZsYXR0ZW4gKGxhbWJkYSAo eCkgKGVxPyAoY2FyIHgpICdwZWctYWx0ZXJuYXRpdmUpKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNkciBsc3QpKSkpKQotCi07OyBQYXJzZSBhbiBhbHRlcm5hdGl2ZS4KLShk ZWZpbmUgKHBlZy1hbHRlcm5hdGl2ZS0+ZGVmbiBsc3QgZm9yLXN5bnRheCkKLSAgI2AoYW5kICMs QChtYXAgKGxhbWJkYSAoeCkgKHBlZy1ib2R5LT5kZWZuIHggZm9yLXN5bnRheCkpCi0gICAgICAg ICAgICAgICAgIChjb250ZXh0LWZsYXR0ZW4gKGxhbWJkYSAoeCkgKG9yIChzdHJpbmc/IChjYXIg eCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXE/IChj YXIgeCkgJ3BlZy1zdWZmaXgpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y2RyIGxzdCkpKSkpCi0KLTs7IFBhcnNlIGEgYm9keS4KLShkZWZpbmUgKHBlZy1ib2R5LT5kZWZu IGxzdCBmb3Itc3ludGF4KQotICAobGV0ICgoc3VmZml4ICcoKSkKLSAgICAgICAgKGZyb250IChk YXR1bS0+c3ludGF4IGZvci1zeW50YXggJ2xpdCkpKQotICAgIChjb25kCi0gICAgICgoZXE/IChj YXIgbHN0KSAncGVnLXN1ZmZpeCkKLSAgICAgIChzZXQhIHN1ZmZpeCBsc3QpKQotICAgICAoKHN0 cmluZz8gKGNhciBsc3QpKQotICAgICAgKGJlZ2luIChzZXQhIGZyb250IChkYXR1bS0+c3ludGF4 IGZvci1zeW50YXgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Ry aW5nLT5zeW1ib2wgKGNhciBsc3QpKSkpCi0gICAgICAgICAgICAgKHNldCEgc3VmZml4IChjYWRy IGxzdCkpKSkKLSAgICAgKGVsc2UgYChwZWctcGFyc2UtYm9keS1mYWlsICxsc3QpKSkKLSAgICAj YChib2R5ICMsZnJvbnQgIyxAKHBlZy1zdWZmaXgtPmRlZm4KLSAgICAgICAgICAgICAgICAgICAg ICAgIHN1ZmZpeAotICAgICAgICAgICAgICAgICAgICAgICAgZm9yLXN5bnRheCkpKSkKLQotOzsg UGFyc2UgYSBzdWZmaXguCi0oZGVmaW5lIChwZWctc3VmZml4LT5kZWZuIGxzdCBmb3Itc3ludGF4 KQotICAjYCgjLChwZWctcHJpbWFyeS0+ZGVmbiAoY2FkciBsc3QpIGZvci1zeW50YXgpCi0gICAg ICMsKGlmIChudWxsPyAoY2RkciBsc3QpKQotICAgICAgICAgICAxCi0gICAgICAgICAgIChkYXR1 bS0+c3ludGF4IGZvci1zeW50YXggKHN0cmluZy0+c3ltYm9sIChjYWRkciBsc3QpKSkpKSkKLQot OzsgUGFyc2UgYSBwcmltYXJ5LgotKGRlZmluZSAocGVnLXByaW1hcnktPmRlZm4gbHN0IGZvci1z eW50YXgpCi0gIChsZXQgKChlbCAoY2FkciBsc3QpKSkKLSAgKGNvbmQKLSAgICgobGlzdD8gZWwp Ci0gICAgKGNvbmQKLSAgICAgKChlcT8gKGNhciBlbCkgJ3BlZy1saXRlcmFsKQotICAgICAgKHBl Zy1saXRlcmFsLT5kZWZuIGVsIGZvci1zeW50YXgpKQotICAgICAoKGVxPyAoY2FyIGVsKSAncGVn LWNoYXJjbGFzcykKLSAgICAgIChwZWctY2hhcmNsYXNzLT5kZWZuIGVsIGZvci1zeW50YXgpKQot ICAgICAoKGVxPyAoY2FyIGVsKSAncGVnLW5vbnRlcm1pbmFsKQotICAgICAgKGRhdHVtLT5zeW50 YXggZm9yLXN5bnRheCAoc3RyaW5nLT5zeW1ib2wgKGNhZHIgZWwpKSkpKSkKLSAgICgoc3RyaW5n PyBlbCkKLSAgICAoY29uZAotICAgICAoKGVxdWFsPyBlbCAiKCIpCi0gICAgICAocGVnLXBhdHRl cm4tPmRlZm4gKGNhZGRyIGxzdCkgZm9yLXN5bnRheCkpCi0gICAgICgoZXF1YWw/IGVsICIuIikK LSAgICAgIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXggJ3BlZy1hbnkpKQotICAgICAoZWxzZSAo ZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGAocGVn LXBhcnNlLWFueSB1bmtub3duLXN0cmluZyAsbHN0KSkpKSkKLSAgIChlbHNlIChkYXR1bS0+c3lu dGF4IGZvci1zeW50YXgKLSAgICAgICAgICAgICAgICAgICAgICAgIGAocGVnLXBhcnNlLWFueSB1 bmtub3duLWVsICxsc3QpKSkpKSkKLQotOzsgUGFyc2VzIGEgbGl0ZXJhbC4KLShkZWZpbmUgKHBl Zy1saXRlcmFsLT5kZWZuIGxzdCBmb3Itc3ludGF4KQotICAoZGF0dW0tPnN5bnRheCBmb3Itc3lu dGF4ICh0cmltLTFjaGFycyAoY2FkciBsc3QpKSkpCi0KLTs7IFBhcnNlcyBhIGNoYXJjbGFzcy4K LShkZWZpbmUgKHBlZy1jaGFyY2xhc3MtPmRlZm4gbHN0IGZvci1zeW50YXgpCi0gICNgKG9yCi0g ICAgICMsQChtYXAKLSAgICAgICAgIChsYW1iZGEgKGNjKQotICAgICAgICAgICAoY29uZAotICAg ICAgICAgICAgKChlcT8gKGNhciBjYykgJ2NoYXJjbGFzcy1yYW5nZSkKLSAgICAgICAgICAgICAj YChyYW5nZSAjLChkYXR1bS0+c3ludGF4Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZm9yLXN5 bnRheAotICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcmVmIChjYWRyIGNjKSAwKSkK LSAgICAgICAgICAgICAgICAgICAgICAjLChkYXR1bS0+c3ludGF4Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgZm9yLXN5bnRheAotICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcmVm IChjYWRyIGNjKSAyKSkpKQotICAgICAgICAgICAgKChlcT8gKGNhciBjYykgJ2NoYXJjbGFzcy1z aW5nbGUpCi0gICAgICAgICAgICAgKGRhdHVtLT5zeW50YXggZm9yLXN5bnRheCAoY2FkciBjYykp KSkpCi0gICAgICAgICAoY29udGV4dC1mbGF0dGVuCi0gICAgICAgICAgKGxhbWJkYSAoeCkgKG9y IChlcT8gKGNhciB4KSAnY2hhcmNsYXNzLXJhbmdlKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAoZXE/IChjYXIgeCkgJ2NoYXJjbGFzcy1zaW5nbGUpKSkKLSAgICAgICAgICAoY2RyIGxzdCkp KSkpCi0KLTs7IENvbXByZXNzZXMgYSBsaXN0IHRvIHNhdmUgdGhlIG9wdGltaXplciB3b3JrLgot OzsgZS5nLiAob3IgKGFuZCBhKSkgLT4gYQotKGRlZmluZSAoY29tcHJlc3Nvci1jb3JlIGxzdCkK LSAgKGlmIChvciAobm90IChsaXN0PyBsc3QpKSAobnVsbD8gbHN0KSkKLSAgICAgIGxzdAotICAg ICAgKGNvbmQKLSAgICAgICAoKGFuZCAob3IgKGVxPyAoY2FyIGxzdCkgJ29yKSAoZXE/IChjYXIg bHN0KSAnYW5kKSkKLSAgICAgICAgICAgICAobnVsbD8gKGNkZHIgbHN0KSkpCi0gICAgICAgIChj b21wcmVzc29yLWNvcmUgKGNhZHIgbHN0KSkpCi0gICAgICAgKChhbmQgKGVxPyAoY2FyIGxzdCkg J2JvZHkpCi0gICAgICAgICAgICAgKGVxPyAoY2FkciBsc3QpICdsaXQpCi0gICAgICAgICAgICAg KGVxPyAoY2FkZGRyIGxzdCkgMSkpCi0gICAgICAgIChjb21wcmVzc29yLWNvcmUgKGNhZGRyIGxz dCkpKQotICAgICAgIChlbHNlIChtYXAgY29tcHJlc3Nvci1jb3JlIGxzdCkpKSkpCi0KLShkZWZp bmUgKGNvbXByZXNzb3Igc3luIGZvci1zeW50YXgpCi0gIChkYXR1bS0+c3ludGF4IGZvci1zeW50 YXgKLSAgICAgICAgICAgICAgICAgKGNvbXByZXNzb3ItY29yZSAoc3ludGF4LT5kYXR1bSBzeW4p KSkpCi0KLTs7IEJ1aWxkcyBhIGxhbWJkYS1leHByZXNzaW9ucyBmb3IgdGhlIHBhdHRlcm4gU1RS IHVzaW5nIGFjY3VtLgotKGRlZmluZSAocGVnLXN0cmluZy1jb21waWxlIHN0ci1zdHggYWNjdW0p Ci0gIChwZWctc2V4cC1jb21waWxlCi0gICAoY29tcHJlc3NvcgotICAgIChwZWctcGF0dGVybi0+ ZGVmbgotICAgICAocGVnOnRyZWUgKHBlZy1wYXJzZSBwZWctcGF0dGVybiAoc3ludGF4LT5kYXR1 bSBzdHItc3R4KSkpIHN0ci1zdHgpCi0gICAgc3RyLXN0eCkKLSAgIGFjY3VtKSkKLQogOzs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OzsKIDs7Ozs7IFBNQVRDSCBTVFJVQ1RVUkUgTVVOR0lORwogOzsgUHJl dHR5IHNlbGYtZXhwbGFuYXRvcnkuCmRpZmYgLS1naXQgYS9tb2R1bGUvaWNlLTkvcGVnL2NvZGVn ZW4uc2NtIGIvbW9kdWxlL2ljZS05L3BlZy9jb2RlZ2VuLnNjbQppbmRleCA0M2Y0NGNjLi4yYzg1 Y2NjIDEwMDY0NAotLS0gYS9tb2R1bGUvaWNlLTkvcGVnL2NvZGVnZW4uc2NtCisrKyBiL21vZHVs ZS9pY2UtOS9wZWcvY29kZWdlbi5zY20KQEAgLTIwLDYgKzIwLDcgQEAKIChkZWZpbmUtbW9kdWxl IChpY2UtOSBwZWcgY29kZWdlbikKICAgIzpleHBvcnQgKHBlZy1zZXhwLWNvbXBpbGUpCiAgICM6 dXNlLW1vZHVsZSAoaWNlLTkgcGVnKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHBlZyBzdHJpbmct cGVnKQogICAjOnVzZS1tb2R1bGUgKGljZS05IHByZXR0eS1wcmludCkKICAgIzp1c2UtbW9kdWxl IChzeXN0ZW0gYmFzZSBwbWF0Y2gpKQogCmRpZmYgLS1naXQgYS9tb2R1bGUvaWNlLTkvcGVnL3N0 cmluZy1wZWcuc2NtIGIvbW9kdWxlL2ljZS05L3BlZy9zdHJpbmctcGVnLnNjbQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2UyMWY2Ci0tLSAvZGV2L251bGwKKysrIGIvbW9k dWxlL2ljZS05L3BlZy9zdHJpbmctcGVnLnNjbQpAQCAtMCwwICsxLDMwNSBAQAorOzs7OyBzdHJp bmctcGVnLnNjbSAtLS0gcmVwcmVzZW50aW5nIFBFRyBncmFtbWFycyBhcyBzdHJpbmdzCis7Ozs7 Cis7Ozs7IAlDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCis7Ozs7Cis7Ozs7IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKzs7OzsgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworOzs7OyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKzs7OzsgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor Ozs7OyAKKzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCis7Ozs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7Ozs7IE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCis7Ozs7IExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7Ozs7IAorOzs7OyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCis7Ozs7IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKzs7OzsgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorOzs7Owor CisoZGVmaW5lLW1vZHVsZSAoaWNlLTkgcGVnIHN0cmluZy1wZWcpCisgICM6ZXhwb3J0IChwZWct c3RyaW5nLWNvbXBpbGUKKyAgICAgICAgICAgIHBlZy1hcy1wZWcKKyAgICAgICAgICAgIGRlZmlu ZS1ncmFtbWFyCisgICAgICAgICAgICBkZWZpbmUtZ3JhbW1hci1mCisgICAgICAgICAgICBkZWZp bmUtbm9udGVybQorICAgICAgICAgICAgcGVnLWdyYW1tYXIpCisgICM6dXNlLW1vZHVsZSAoaWNl LTkgcGVnKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHBlZyBjb2RlZ2VuKSkKKworOzsgVGhlIHJl c3VsdHMgb2YgcGFyc2luZyB1c2luZyBhIG5vbnRlcm1pbmFsIGFyZSBjYWNoZWQuICBUaGluayBv ZiBpdCBsaWtlIGEKKzs7IGhhc2ggd2l0aCBubyBjb25mbGljdCByZXNvbHV0aW9uLiAgUHJvY2Vz cyBmb3IgZGVjaWRpbmcgb24gdGhlIGNhY2hlIHNpemUKKzs7IHdhc24ndCB2ZXJ5IHNjaWVudGlm aWM7IGp1c3QgcmFuIHRoZSBiZW5jaG1hcmtzIGFuZCBzdG9wcGVkIGEgbGl0dGxlIGFmdGVyCis7 OyB0aGUgcG9pbnQgb2YgZGltaW5pc2hpbmcgcmV0dXJucyBvbiBteSBib3guCisoZGVmaW5lICpj YWNoZS1zaXplKiA1MTIpCisKKzs7IEdldHMgdGhlIGxlZnQtaGFuZCBkZXB0aCBvZiBhIGxpc3Qu CisoZGVmaW5lIChkZXB0aCBsc3QpCisgIChpZiAob3IgKG5vdCAobGlzdD8gbHN0KSkgKG51bGw/ IGxzdCkpCisgICAgICAwCisgICAgICAoKyAxIChkZXB0aCAoY2FyIGxzdCkpKSkpCisKKyhldmFs LXdoZW4gKGNvbXBpbGUgbG9hZCBldmFsKQorKGRlZmluZSAoc3ludGF4LWZvci1ub24tY2FjaGUt Y2FzZSBmb3Itc3ludGF4IG1hdGNoZi1zeW4gYWNjdW1zeW0gcy1zeW4pCis7ICAobGV0ICgobWF0 Y2hmLXN5biAoZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4IG1hdGNoZikpKQorICAgI2AobGFtYmRh IChzdHIgc3RybGVuIGF0KQorICAgICAgKGxldCAoKHJlcyAoIyxtYXRjaGYtc3luIHN0ciBzdHJs ZW4gYXQpKSkKKyAgICAgICAgOzsgVHJ5IHRvIG1hdGNoIHRoZSBub250ZXJtaW5hbC4KKyAgICAg ICAgKGlmIHJlcworICAgICAgICAgICAgOzsgSWYgd2UgbWF0Y2hlZCwgZG8gc29tZSBwb3N0LXBy b2Nlc3NpbmcgdG8gZmlndXJlIG91dAorICAgICAgICAgICAgOzsgd2hhdCBkYXRhIHRvIHByb3Bh Z2F0ZSB1cHdhcmQuCisgICAgICAgICAgICAobGV0ICgoYXQgKGNhciByZXMpKQorICAgICAgICAg ICAgICAgICAgKGJvZHkgKGNhZHIgcmVzKSkpCisgICAgICAgICAgICAgICMsKGNvbmQKKyAgICAg ICAgICAgICAgICAgKChlcT8gYWNjdW1zeW0gJ25hbWUpCisgICAgICAgICAgICAgICAgICAjYChs aXN0IGF0ICcjLHMtc3luKSkKKyAgICAgICAgICAgICAgICAgKChlcT8gYWNjdW1zeW0gJ2FsbCkK KyAgICAgICAgICAgICAgICAgICNgKGxpc3QgKGNhciByZXMpCisgICAgICAgICAgICAgICAgICAg ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG5vdCAobGlzdD8gYm9k eSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgJyMscy1zeW4gYm9keSkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAoKG51bGw/IGJvZHkpICcjLHMtc3luKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgKChzeW1ib2w/IChjYXIgYm9keSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpc3QgJyMscy1zeW4gYm9keSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZWxzZSAoY29ucyAnIyxzLXN5biBib2R5KSkpKSkKKyAgICAgICAgICAgICAgICAg KChlcT8gYWNjdW1zeW0gJ25vbmUpICNgKGxpc3QgKGNhciByZXMpICcoKSkpCisgICAgICAgICAg ICAgICAgIChlbHNlICNgKGJlZ2luIHJlcykpKSkKKyAgICAgICAgICAgIDs7IElmIHdlIGRpZG4n dCBtYXRjaCwganVzdCByZXR1cm4gZmFsc2UuCisgICAgICAgICAgICAjZikpKSkKKykKKworOzsg RGVmaW5lcyBhIG5ldyBub250ZXJtaW5hbCBzeW1ib2wgYWNjdW11bGF0aW5nIHdpdGggQUNDVU0u CisoZGVmaW5lLXN5bnRheCBkZWZpbmUtbm9udGVybQorICAobGFtYmRhICh4KQorICAgIChzeW50 YXgtY2FzZSB4ICgpCisgICAgICAoKF8gc3ltIGFjY3VtIHBhdCkKKyAgICAgICAobGV0ICgobWF0 Y2hmIChwZWctc2V4cC1jb21waWxlICMncGF0IChzeW50YXgtPmRhdHVtICMnYWNjdW0pKSkKKyAg ICAgICAgICAgICAoYWNjdW1zeW0gKHN5bnRheC0+ZGF0dW0gIydhY2N1bSkpCisgICAgICAgICAg ICAgKGMgKGRhdHVtLT5zeW50YXggeCAoZ2Vuc3ltKSkpKTs7IHRoZSBjYWNoZQorICAgICAgICAg OzsgQ09ERSBpcyB0aGUgY29kZSB0byBwYXJzZSB0aGUgc3RyaW5nIGlmIHRoZSByZXN1bHQgaXNu J3QgY2FjaGVkLgorICAgICAgICAgKGxldCAoKHN5biAoc3ludGF4LWZvci1ub24tY2FjaGUtY2Fz ZSB4IG1hdGNoZiBhY2N1bXN5bSAjJ3N5bSkpKQorICAgICAgICAgICAjYChiZWdpbgorICAgICAg ICAgICAgICAgKGRlZmluZSAjLGMgKG1ha2UtdmVjdG9yICpjYWNoZS1zaXplKiAjZikpOzsgdGhl IGNhY2hlCisgICAgICAgICAgICAgICAoZGVmaW5lIChzeW0gc3RyIHN0cmxlbiBhdCkKKyAgICAg ICAgICAgICAgICAgKGxldCogKCh2cmVmICh2ZWN0b3ItcmVmICMsYyAobW9kdWxvIGF0ICpjYWNo ZS1zaXplKikpKSkKKyAgICAgICAgICAgICAgICAgICA7OyBDaGVjayB0byBzZWUgd2hldGhlciB0 aGUgdmFsdWUgaXMgY2FjaGVkLgorICAgICAgICAgICAgICAgICAgIChpZiAoYW5kIHZyZWYgKGVx PyAoY2FyIHZyZWYpIHN0cikgKD0gKGNhZHIgdnJlZikgYXQpKQorICAgICAgICAgICAgICAgICAg ICAgICAoY2FkZHIgdnJlZik7OyBJZiBpdCBpcyByZXR1cm4gaXQuCisgICAgICAgICAgICAgICAg ICAgICAgIChsZXQgKChmcmVzIDs7IEVsc2UgY2FsY3VsYXRlIGl0IGFuZCBjYWNoZSBpdC4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgjLHN5biBzdHIgc3RybGVuIGF0KSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgKHZlY3Rvci1zZXQhICMsYyAobW9kdWxvIGF0ICpjYWNoZS1z aXplKikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3Qgc3RyIGF0 IGZyZXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgIGZyZXMpKSkpKSkpKSkpKQorCis7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OworOzs7OzsgUGFyc2Ugc3RyaW5nIFBFR3MgdXNpbmcgc2V4cCBQ RUdzLgorOzsgU2VlIHRoZSB2YXJpYWJsZSBQRUctQVMtUEVHIGZvciBhbiBlYXNpZXItdG8tcmVh ZCBzeW50YXguCis7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OworCis7OyBHcmFtbWFyIGZvciBQRUdz IGluIFBFRyBncmFtbWFyLgorKGRlZmluZSBwZWctYXMtcGVnCisiZ3JhbW1hciA8LS0gKG5vbnRl cm1pbmFsICgnPC0tJyAvICc8LScgLyAnPCcpIHNwIHBhdHRlcm4pKworcGF0dGVybiA8LS0gYWx0 ZXJuYXRpdmUgKFNMQVNIIHNwIGFsdGVybmF0aXZlKSoKK2FsdGVybmF0aXZlIDwtLSAoWyEmXT8g c3Agc3VmZml4KSsKK3N1ZmZpeCA8LS0gcHJpbWFyeSAoWyorP10gc3ApKgorcHJpbWFyeSA8LS0g JygnIHNwIHBhdHRlcm4gJyknIHNwIC8gJy4nIHNwIC8gbGl0ZXJhbCAvIGNoYXJjbGFzcyAvIG5v bnRlcm1pbmFsICEnPCcKK2xpdGVyYWwgPC0tIFsnXSAoIVsnXSAuKSogWyddIHNwCitjaGFyY2xh c3MgPC0tIExCICghJ10nIChDQ3JhbmdlIC8gQ0NzaW5nbGUpKSogUkIgc3AKK0NDcmFuZ2UgPC0t IC4gJy0nIC4KK0NDc2luZ2xlIDwtLSAuCitub250ZXJtaW5hbCA8LS0gW2EtekEtWjAtOS1dKyBz cAorc3AgPCBbIFx0XG5dKgorU0xBU0ggPCAnLycKK0xCIDwgJ1snCitSQiA8ICddJworIikKKwor KGRlZmluZS1ub250ZXJtIHBlZy1ncmFtbWFyIGFsbAorICAoYm9keSBsaXQgKGFuZCBwZWctbm9u dGVybWluYWwgKG9yICI8LS0iICI8LSIgIjwiKSBwZWctc3AgcGVnLXBhdHRlcm4pICspKQorKGRl ZmluZS1ub250ZXJtIHBlZy1wYXR0ZXJuIGFsbAorICAoYW5kIHBlZy1hbHRlcm5hdGl2ZQorICAg ICAgIChib2R5IGxpdCAoYW5kIChpZ25vcmUgIi8iKSBwZWctc3AgcGVnLWFsdGVybmF0aXZlKSAq KSkpCisoZGVmaW5lLW5vbnRlcm0gcGVnLWFsdGVybmF0aXZlIGFsbAorICAoYm9keSBsaXQgKGFu ZCAoYm9keSBsaXQgKG9yICIhIiAiJiIpID8pIHBlZy1zcCBwZWctc3VmZml4KSArKSkKKyhkZWZp bmUtbm9udGVybSBwZWctc3VmZml4IGFsbAorICAoYW5kIHBlZy1wcmltYXJ5IChib2R5IGxpdCAo YW5kIChvciAiKiIgIisiICI/IikgcGVnLXNwKSAqKSkpCisoZGVmaW5lLW5vbnRlcm0gcGVnLXBy aW1hcnkgYWxsCisgIChvciAoYW5kICIoIiBwZWctc3AgcGVnLXBhdHRlcm4gIikiIHBlZy1zcCkK KyAgICAgIChhbmQgIi4iIHBlZy1zcCkKKyAgICAgIHBlZy1saXRlcmFsCisgICAgICBwZWctY2hh cmNsYXNzCisgICAgICAoYW5kIHBlZy1ub250ZXJtaW5hbCAoYm9keSAhICI8IiAxKSkpKQorKGRl ZmluZS1ub250ZXJtIHBlZy1saXRlcmFsIGFsbAorICAoYW5kICInIiAoYm9keSBsaXQgKGFuZCAo Ym9keSAhICInIiAxKSBwZWctYW55KSAqKSAiJyIgcGVnLXNwKSkKKyhkZWZpbmUtbm9udGVybSBw ZWctY2hhcmNsYXNzIGFsbAorICAoYW5kIChpZ25vcmUgIlsiKQorICAgICAgIChib2R5IGxpdCAo YW5kIChib2R5ICEgIl0iIDEpCisgICAgICAgICAgICAgICAgICAgICAgKG9yIGNoYXJjbGFzcy1y YW5nZSBjaGFyY2xhc3Mtc2luZ2xlKSkgKikKKyAgICAgICAoaWdub3JlICJdIikKKyAgICAgICBw ZWctc3ApKQorKGRlZmluZS1ub250ZXJtIGNoYXJjbGFzcy1yYW5nZSBhbGwgKGFuZCBwZWctYW55 ICItIiBwZWctYW55KSkKKyhkZWZpbmUtbm9udGVybSBjaGFyY2xhc3Mtc2luZ2xlIGFsbCBwZWct YW55KQorKGRlZmluZS1ub250ZXJtIHBlZy1ub250ZXJtaW5hbCBhbGwKKyAgKGFuZCAoYm9keSBs aXQgKG9yIChyYW5nZSAjXGEgI1x6KSAocmFuZ2UgI1xBICNcWikgKHJhbmdlICNcMCAjXDkpICIt IikgKykgcGVnLXNwKSkKKyhkZWZpbmUtbm9udGVybSBwZWctc3Agbm9uZQorICAoYm9keSBsaXQg KG9yICIgIiAiXHQiICJcbiIpICopKQorCis7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OworOzs7Ozsg UEFSU0UgU1RSSU5HIFBFR1MKKzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CisKKzs7IFBha2VzIGEg c3RyaW5nIHJlcHJlc2VudGluZyBhIFBFRyBncmFtbWFyIGFuZCBkZWZpbmVzIGFsbCB0aGUgbm9u dGVybWluYWxzIGluCis7OyBpdCBhcyB0aGUgYXNzb2NpYXRlZCBQRUdzLgorKGRlZmluZSAocGVn LXBhcnNlciBzdHIgZm9yLXN5bnRheCkKKyAgKGxldCAoKHBhcnNlZCAocGVnLXBhcnNlIHBlZy1n cmFtbWFyIHN0cikpKQorICAgIChpZiAobm90IHBhcnNlZCkKKyAgICAgICAgKGJlZ2luCisgICAg ICAgICAgOzsgKGRpc3BsYXkgIkludmFsaWQgUEVHIGdyYW1tYXIhXG4iKQorICAgICAgICAgICNm KQorICAgICAgICAobGV0ICgobHN0IChwZWc6dHJlZSBwYXJzZWQpKSkKKyAgICAgICAgICAoY29u ZAorICAgICAgICAgICAoKG9yIChub3QgKGxpc3Q/IGxzdCkpIChudWxsPyBsc3QpKQorICAgICAg ICAgICAgbHN0KQorICAgICAgICAgICAoKGVxPyAoY2FyIGxzdCkgJ3BlZy1ncmFtbWFyKQorICAg ICAgICAgICAgI2AoYmVnaW4KKyAgICAgICAgICAgICAgICAjLEAobWFwIChsYW1iZGEgKHgpIChw ZWctbm9udGVybS0+ZGVmbiB4IGZvci1zeW50YXgpKQorICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnRleHQtZmxhdHRlbiAobGFtYmRhIChsc3QpICg8PSAoZGVwdGggbHN0KSAyKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkciBsc3QpKSkpKSkpKSkpCisK Kzs7IE1hY3JvIHdyYXBwZXIgZm9yIFBFRy1QQVJTRVIuICBQYXJzZXMgUEVHIGdyYW1tYXJzIGV4 cHJlc3NlZCBhcyBzdHJpbmdzIGFuZAorOzsgZGVmaW5lcyBhbGwgdGhlIGFwcHJvcHJpYXRlIG5v bnRlcm1pbmFscy4KKyhkZWZpbmUtc3ludGF4IGRlZmluZS1ncmFtbWFyCisgIChsYW1iZGEgKHgp CisgICAgKHN5bnRheC1jYXNlIHggKCkKKyAgICAgICgoXyBzdHIpCisgICAgICAgKHBlZy1wYXJz ZXIgKHN5bnRheC0+ZGF0dW0gIydzdHIpIHgpKSkpKQorKGRlZmluZSBkZWZpbmUtZ3JhbW1hci1m IHBlZy1wYXJzZXIpCisKKzs7IFBhcnNlIGEgbm9udGVybWluYWwgYW5kIHBhdHRlcm4gbGlzdGVk IGluIExTVC4KKyhkZWZpbmUgKHBlZy1ub250ZXJtLT5kZWZuIGxzdCBmb3Itc3ludGF4KQorICAo bGV0KiAoKG5vbnRlcm0gKGNhciBsc3QpKQorICAgICAgICAgKGdyYWJiZXIgKGNhZHIgbHN0KSkK KyAgICAgICAgIChwYXR0ZXJuIChjYWRkciBsc3QpKQorICAgICAgICAgKG5vbnRlcm0tbmFtZSAo ZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChzdHJpbmctPnN5bWJvbCAoY2FkciBub250ZXJtKSkpKSkKKyAgICAjYChkZWZpbmUt bm9udGVybSAjLG5vbnRlcm0tbmFtZQorICAgICAgICMsKGNvbmQKKyAgICAgICAgICAoKHN0cmlu Zz0/IGdyYWJiZXIgIjwtLSIpIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXggJ2FsbCkpCisgICAg ICAgICAgKChzdHJpbmc9PyBncmFiYmVyICI8LSIpIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXgg J2JvZHkpKQorICAgICAgICAgIChlbHNlIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXggJ25vbmUp KSkKKyAgICAgICAjLChjb21wcmVzc29yIChwZWctcGF0dGVybi0+ZGVmbiBwYXR0ZXJuIGZvci1z eW50YXgpIGZvci1zeW50YXgpKSkpCisKKzs7IFBhcnNlIGEgcGF0dGVybi4KKyhkZWZpbmUgKHBl Zy1wYXR0ZXJuLT5kZWZuIGxzdCBmb3Itc3ludGF4KQorICAjYChvciAjLEAobWFwIChsYW1iZGEg KHgpIChwZWctYWx0ZXJuYXRpdmUtPmRlZm4geCBmb3Itc3ludGF4KSkKKyAgICAgICAgICAgICAg ICAoY29udGV4dC1mbGF0dGVuIChsYW1iZGEgKHgpIChlcT8gKGNhciB4KSAncGVnLWFsdGVybmF0 aXZlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgbHN0KSkpKSkKKwor OzsgUGFyc2UgYW4gYWx0ZXJuYXRpdmUuCisoZGVmaW5lIChwZWctYWx0ZXJuYXRpdmUtPmRlZm4g bHN0IGZvci1zeW50YXgpCisgICNgKGFuZCAjLEAobWFwIChsYW1iZGEgKHgpIChwZWctYm9keS0+ ZGVmbiB4IGZvci1zeW50YXgpKQorICAgICAgICAgICAgICAgICAoY29udGV4dC1mbGF0dGVuIChs YW1iZGEgKHgpIChvciAoc3RyaW5nPyAoY2FyIHgpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGVxPyAoY2FyIHgpICdwZWctc3VmZml4KSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkciBsc3QpKSkpKQorCis7OyBQYXJzZSBhIGJv ZHkuCisoZGVmaW5lIChwZWctYm9keS0+ZGVmbiBsc3QgZm9yLXN5bnRheCkKKyAgKGxldCAoKHN1 ZmZpeCAnKCkpCisgICAgICAgIChmcm9udCAoZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4ICdsaXQp KSkKKyAgICAoY29uZAorICAgICAoKGVxPyAoY2FyIGxzdCkgJ3BlZy1zdWZmaXgpCisgICAgICAo c2V0ISBzdWZmaXggbHN0KSkKKyAgICAgKChzdHJpbmc/IChjYXIgbHN0KSkKKyAgICAgIChiZWdp biAoc2V0ISBmcm9udCAoZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy0+c3ltYm9sIChjYXIgbHN0KSkpKQorICAg ICAgICAgICAgIChzZXQhIHN1ZmZpeCAoY2FkciBsc3QpKSkpCisgICAgIChlbHNlIGAocGVnLXBh cnNlLWJvZHktZmFpbCAsbHN0KSkpCisgICAgI2AoYm9keSAjLGZyb250ICMsQChwZWctc3VmZml4 LT5kZWZuCisgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXgKKyAgICAgICAgICAgICAgICAg ICAgICAgIGZvci1zeW50YXgpKSkpCisKKzs7IFBhcnNlIGEgc3VmZml4LgorKGRlZmluZSAocGVn LXN1ZmZpeC0+ZGVmbiBsc3QgZm9yLXN5bnRheCkKKyAgI2AoIywocGVnLXByaW1hcnktPmRlZm4g KGNhZHIgbHN0KSBmb3Itc3ludGF4KQorICAgICAjLChpZiAobnVsbD8gKGNkZHIgbHN0KSkKKyAg ICAgICAgICAgMQorICAgICAgICAgICAoZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4IChzdHJpbmct PnN5bWJvbCAoY2FkZHIgbHN0KSkpKSkpCisKKzs7IFBhcnNlIGEgcHJpbWFyeS4KKyhkZWZpbmUg KHBlZy1wcmltYXJ5LT5kZWZuIGxzdCBmb3Itc3ludGF4KQorICAobGV0ICgoZWwgKGNhZHIgbHN0 KSkpCisgIChjb25kCisgICAoKGxpc3Q/IGVsKQorICAgIChjb25kCisgICAgICgoZXE/IChjYXIg ZWwpICdwZWctbGl0ZXJhbCkKKyAgICAgIChwZWctbGl0ZXJhbC0+ZGVmbiBlbCBmb3Itc3ludGF4 KSkKKyAgICAgKChlcT8gKGNhciBlbCkgJ3BlZy1jaGFyY2xhc3MpCisgICAgICAocGVnLWNoYXJj bGFzcy0+ZGVmbiBlbCBmb3Itc3ludGF4KSkKKyAgICAgKChlcT8gKGNhciBlbCkgJ3BlZy1ub250 ZXJtaW5hbCkKKyAgICAgIChkYXR1bS0+c3ludGF4IGZvci1zeW50YXggKHN0cmluZy0+c3ltYm9s IChjYWRyIGVsKSkpKSkpCisgICAoKHN0cmluZz8gZWwpCisgICAgKGNvbmQKKyAgICAgKChlcXVh bD8gZWwgIigiKQorICAgICAgKHBlZy1wYXR0ZXJuLT5kZWZuIChjYWRkciBsc3QpIGZvci1zeW50 YXgpKQorICAgICAoKGVxdWFsPyBlbCAiLiIpCisgICAgICAoZGF0dW0tPnN5bnRheCBmb3Itc3lu dGF4ICdwZWctYW55KSkKKyAgICAgKGVsc2UgKGRhdHVtLT5zeW50YXggZm9yLXN5bnRheAorICAg ICAgICAgICAgICAgICAgICAgICAgICBgKHBlZy1wYXJzZS1hbnkgdW5rbm93bi1zdHJpbmcgLGxz dCkpKSkpCisgICAoZWxzZSAoZGF0dW0tPnN5bnRheCBmb3Itc3ludGF4CisgICAgICAgICAgICAg ICAgICAgICAgICBgKHBlZy1wYXJzZS1hbnkgdW5rbm93bi1lbCAsbHN0KSkpKSkpCisKKzs7IFRy aW1zIGNoYXJhY3RlcnMgb2ZmIHRoZSBmcm9udCBhbmQgZW5kIG9mIFNUUi4KKzs7ICh0cmltLTFj aGFycyAiJ2FiJyIpIC0+ICJhYiIKKyhkZWZpbmUgKHRyaW0tMWNoYXJzIHN0cikgKHN1YnN0cmlu ZyBzdHIgMSAoLSAoc3RyaW5nLWxlbmd0aCBzdHIpIDEpKSkKKworOzsgUGFyc2VzIGEgbGl0ZXJh bC4KKyhkZWZpbmUgKHBlZy1saXRlcmFsLT5kZWZuIGxzdCBmb3Itc3ludGF4KQorICAoZGF0dW0t PnN5bnRheCBmb3Itc3ludGF4ICh0cmltLTFjaGFycyAoY2FkciBsc3QpKSkpCisKKzs7IFBhcnNl cyBhIGNoYXJjbGFzcy4KKyhkZWZpbmUgKHBlZy1jaGFyY2xhc3MtPmRlZm4gbHN0IGZvci1zeW50 YXgpCisgICNgKG9yCisgICAgICMsQChtYXAKKyAgICAgICAgIChsYW1iZGEgKGNjKQorICAgICAg ICAgICAoY29uZAorICAgICAgICAgICAgKChlcT8gKGNhciBjYykgJ2NoYXJjbGFzcy1yYW5nZSkK KyAgICAgICAgICAgICAjYChyYW5nZSAjLChkYXR1bS0+c3ludGF4CisgICAgICAgICAgICAgICAg ICAgICAgICAgZm9yLXN5bnRheAorICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcmVm IChjYWRyIGNjKSAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAjLChkYXR1bS0+c3ludGF4Cisg ICAgICAgICAgICAgICAgICAgICAgICAgZm9yLXN5bnRheAorICAgICAgICAgICAgICAgICAgICAg ICAgIChzdHJpbmctcmVmIChjYWRyIGNjKSAyKSkpKQorICAgICAgICAgICAgKChlcT8gKGNhciBj YykgJ2NoYXJjbGFzcy1zaW5nbGUpCisgICAgICAgICAgICAgKGRhdHVtLT5zeW50YXggZm9yLXN5 bnRheCAoY2FkciBjYykpKSkpCisgICAgICAgICAoY29udGV4dC1mbGF0dGVuCisgICAgICAgICAg KGxhbWJkYSAoeCkgKG9yIChlcT8gKGNhciB4KSAnY2hhcmNsYXNzLXJhbmdlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAoZXE/IChjYXIgeCkgJ2NoYXJjbGFzcy1zaW5nbGUpKSkKKyAgICAg ICAgICAoY2RyIGxzdCkpKSkpCisKKzs7IENvbXByZXNzZXMgYSBsaXN0IHRvIHNhdmUgdGhlIG9w dGltaXplciB3b3JrLgorOzsgZS5nLiAob3IgKGFuZCBhKSkgLT4gYQorKGRlZmluZSAoY29tcHJl c3Nvci1jb3JlIGxzdCkKKyAgKGlmIChvciAobm90IChsaXN0PyBsc3QpKSAobnVsbD8gbHN0KSkK KyAgICAgIGxzdAorICAgICAgKGNvbmQKKyAgICAgICAoKGFuZCAob3IgKGVxPyAoY2FyIGxzdCkg J29yKSAoZXE/IChjYXIgbHN0KSAnYW5kKSkKKyAgICAgICAgICAgICAobnVsbD8gKGNkZHIgbHN0 KSkpCisgICAgICAgIChjb21wcmVzc29yLWNvcmUgKGNhZHIgbHN0KSkpCisgICAgICAgKChhbmQg KGVxPyAoY2FyIGxzdCkgJ2JvZHkpCisgICAgICAgICAgICAgKGVxPyAoY2FkciBsc3QpICdsaXQp CisgICAgICAgICAgICAgKGVxPyAoY2FkZGRyIGxzdCkgMSkpCisgICAgICAgIChjb21wcmVzc29y LWNvcmUgKGNhZGRyIGxzdCkpKQorICAgICAgIChlbHNlIChtYXAgY29tcHJlc3Nvci1jb3JlIGxz dCkpKSkpCisKKyhkZWZpbmUgKGNvbXByZXNzb3Igc3luIGZvci1zeW50YXgpCisgIChkYXR1bS0+ c3ludGF4IGZvci1zeW50YXgKKyAgICAgICAgICAgICAgICAgKGNvbXByZXNzb3ItY29yZSAoc3lu dGF4LT5kYXR1bSBzeW4pKSkpCisKKzs7IEJ1aWxkcyBhIGxhbWJkYS1leHByZXNzaW9ucyBmb3Ig dGhlIHBhdHRlcm4gU1RSIHVzaW5nIGFjY3VtLgorKGRlZmluZSAocGVnLXN0cmluZy1jb21waWxl IHN0ci1zdHggYWNjdW0pCisgIChwZWctc2V4cC1jb21waWxlCisgICAoY29tcHJlc3NvcgorICAg IChwZWctcGF0dGVybi0+ZGVmbgorICAgICAocGVnOnRyZWUgKHBlZy1wYXJzZSBwZWctcGF0dGVy biAoc3ludGF4LT5kYXR1bSBzdHItc3R4KSkpIHN0ci1zdHgpCisgICAgc3RyLXN0eCkKKyAgIGFj Y3VtKSkKLS0gCjEuNy40LjEKCg== --20cf3071c8aa833268049dc99a52 Content-Type: application/octet-stream; name="0005-Factor-PEG-Functions.patch" Content-Disposition: attachment; filename="0005-Factor-PEG-Functions.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkxih06e4 RnJvbSA1OGQ3ZjExNDYyOTE3MDYxMzQ5ZTAyM2M4NDI5M2YxZmYwNjU3NTNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bmxhdmluZUBoYXZlcmZvcmQuZWR1PgpE YXRlOiBTdW4sIDYgTWFyIDIwMTEgMDA6MDI6MjcgLTA1MDAKU3ViamVjdDogW1BBVENIIDUvN10g RmFjdG9yIFBFRyBGdW5jdGlvbnMKCiAqIG1vZHVsZS9pY2UtOS9wZWcuc2NtOiB0YWtlIG91dCB0 aGUgZnVuY3Rpb25zIGZvciBzaW1wbGlmeWluZyB0cmVlcwogKiBtb2R1bGUvaWNlLTkvcGVnL3Np bXBsaWZ5LXRyZWUuc2NtOiBhbmQgcHV0IHRoZW0gaGVyZQotLS0KIG1vZHVsZS9pY2UtOS9wZWcu c2NtICAgICAgICAgICAgICAgfCAgIDg3ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBtb2R1bGUvaWNlLTkvcGVnL3NpbXBsaWZ5LXRyZWUuc2NtIHwgICA5NyArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMo KyksIDgxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IG1vZHVsZS9pY2UtOS9wZWcv c2ltcGxpZnktdHJlZS5zY20KCmRpZmYgLS1naXQgYS9tb2R1bGUvaWNlLTkvcGVnLnNjbSBiL21v ZHVsZS9pY2UtOS9wZWcuc2NtCmluZGV4IGI5NjEwNGEuLmNiNzljNjAgMTAwNjQ0Ci0tLSBhL21v ZHVsZS9pY2UtOS9wZWcuc2NtCisrKyBiL21vZHVsZS9pY2UtOS9wZWcuc2NtCkBAIC0xOCw4ICsx OCw3IEBACiA7Ozs7CiAKIChkZWZpbmUtbW9kdWxlIChpY2UtOSBwZWcpCi0gICM6ZXhwb3J0IChj b250ZXh0LWZsYXR0ZW4KLSAgICAgICAgICAgIHBlZy1wYXJzZQorICAjOmV4cG9ydCAocGVnLXBh cnNlCiA7ICAgICAgICAgICAgZGVmaW5lLW5vbnRlcm0KIDsgICAgICAgICAgICBkZWZpbmUtbm9u dGVybS1mCiAgICAgICAgICAgICBwZWctbWF0Y2gKQEAgLTI4LDE2ICsyNywxNyBAQAogICAgICAg ICAgICAgcGVnOnN0cmluZwogICAgICAgICAgICAgcGVnOnRyZWUKICAgICAgICAgICAgIHBlZzpz dWJzdHJpbmcKLSAgICAgICAgICAgIHBlZy1yZWNvcmQ/Ci0gICAgICAgICAgICBrZXl3b3JkLWZs YXR0ZW4pCisgICAgICAgICAgICBwZWctcmVjb3JkPykKIDsgICM6ZXhwb3J0LXN5bnRheCAoZGVm aW5lLW5vbnRlcm0pCiAgICM6dXNlLW1vZHVsZSAoaWNlLTkgcGVnIGNvZGVnZW4pCiAgICM6dXNl LW1vZHVsZSAoaWNlLTkgcGVnIHN0cmluZy1wZWcpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgcGVn IHNpbXBsaWZ5LXRyZWUpCiAgICM6cmUtZXhwb3J0IChwZWctc2V4cC1jb21waWxlCiAgICAgICAg ICAgICAgICBkZWZpbmUtZ3JhbW1hcgogICAgICAgICAgICAgICAgZGVmaW5lLWdyYW1tYXItZgot ICAgICAgICAgICAgICAgZGVmaW5lLW5vbnRlcm0pCi0gICM6dXNlLW1vZHVsZSAoc3lzdGVtIGJh c2UgcG1hdGNoKSkKKyAgICAgICAgICAgICAgIGRlZmluZS1ub250ZXJtCisgICAgICAgICAgICAg ICBrZXl3b3JkLWZsYXR0ZW4KKyAgICAgICAgICAgICAgIGNvbnRleHQtZmxhdHRlbikpCiAKIDs7 OwogOzs7IEhlbHBlciBNYWNyb3MKQEAgLTUyLDE0ICs1Miw2IEBAIGV4ZWN1dGUgdGhlIFNUTVRz IGFuZCB0cnkgYWdhaW4uIgogICAgICAgIChvciB0ZXN0CiAgICAgICAgICAgIChiZWdpbiBzdG10 IHN0bXQqIC4uLiAobHApKSkpKSkpCiAKLShkZWZpbmUtc3ludGF4IHNpbmdsZT8KLSAgKHN5bnRh eC1ydWxlcyAoKQotICAgICJSZXR1cm4gI3QgaWYgWCBpcyBhIGxpc3Qgb2Ygb25lIGVsZW1lbnQu IgotICAgICgoXyB4KQotICAgICAocG1hdGNoIHgKLSAgICAgICAoKF8pICN0KQotICAgICAgIChl bHNlICNmKSkpKSkKLQogKGV2YWwtd2hlbiAoY29tcGlsZSBsb2FkIGV2YWwpCiAKIDs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7CkBAIC0xMDUsNzMgKzk3LDYgQEAgZXhlY3V0ZSB0aGUgU1RNVHMgYW5k IHRyeSBhZ2Fpbi4iCiAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWNvbGxhcHNlIG1h dGNoKSkpKSkpKSkpKSkpCiAKIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ci07Ozs7OyBQT1NULVBS T0NFU1NJTkcgRlVOQ1RJT05TIChUTyBDQU5PTklDQUxJWkUgTUFUQ0ggVFJFRVMpCi07Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OwotCi07OyBJcyBldmVyeXRoaW5nIGluIExTVCB0cnVlPwotKGRlZmlu ZSAoYW5kbHN0IGxzdCkKLSAgKG9yIChudWxsPyBsc3QpCi0gICAgICAoYW5kIChjYXIgbHN0KSAo YW5kbHN0IChjZHIgbHN0KSkpKSkKLQotOzsgSXMgTFNUIGEgbGlzdCBvZiBzdHJpbmdzPwotKGRl ZmluZSAoc3RyaW5nLWxpc3Q/IGxzdCkKLSAgKGFuZCAobGlzdD8gbHN0KSAobm90IChudWxsPyBs c3QpKQotICAgICAgIChhbmRsc3QgKG1hcCBzdHJpbmc/IGxzdCkpKSkKLQotOzsgR3JvdXBzIGFs bCBzdHJpbmdzIHRoYXQgYXJlIG5leHQgdG8gZWFjaCBvdGhlciBpbiBMU1QuICBVc2VkIGluCi07 OyBTVFJJTkctQ09MTEFQU0UuCi0oZGVmaW5lIChzdHJpbmctZ3JvdXAgbHN0KQotICAoaWYgKG5v dCAobGlzdD8gbHN0KSkKLSAgICAgIGxzdAotICAgICAgKGlmIChudWxsPyBsc3QpCi0gICAgICAg ICAgJygpCi0gICAgICAgICAgKGxldCAoKG5leHQgKHN0cmluZy1ncm91cCAoY2RyIGxzdCkpKSkK LSAgICAgICAgICAgIChpZiAobm90IChzdHJpbmc/IChjYXIgbHN0KSkpCi0gICAgICAgICAgICAg ICAgKGNvbnMgKGNhciBsc3QpIG5leHQpCi0gICAgICAgICAgICAgICAgKGlmIChhbmQgKG5vdCAo bnVsbD8gbmV4dCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3Q/IChjYXIgbmV4dCkp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZz8gKGNhYXIgbmV4dCkpKQotICAgICAg ICAgICAgICAgICAgICAoY29ucyAoY29ucyAoY2FyIGxzdCkgKGNhciBuZXh0KSkgKGNkciBuZXh0 KSkKLSAgICAgICAgICAgICAgICAgICAgKGNvbnMgKGxpc3QgKGNhciBsc3QpKSBuZXh0KSkpKSkp KQotCi0KLTs7IENvbGxhcHNlcyBhbGwgdGhlIHN0cmluZyBpbiBMU1QuCi07OyAoImEiICJiIiAo YyBkKSAiZSIgImYiKSAtPiAoImFiIiAoYyBkKSAiZWYiKQotKGRlZmluZSAoc3RyaW5nLWNvbGxh cHNlIGxzdCkKLSAgKGlmIChsaXN0PyBsc3QpCi0gICAgICAobGV0ICgocmVzIChtYXAgKGxhbWJk YSAoeCkgKGlmIChzdHJpbmctbGlzdD8geCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGFwcGx5IHN0cmluZy1hcHBlbmQgeCkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgeCkpCi0gICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1ncm91cCAo bWFwIHN0cmluZy1jb2xsYXBzZSBsc3QpKSkpKQotICAgICAgICAoaWYgKHNpbmdsZT8gcmVzKSAo Y2FyIHJlcykgcmVzKSkKLSAgICAgIGxzdCkpCi0KLTs7IElmIExTVCBpcyBhbiBhdG9tLCByZXR1 cm4gKGxpc3QgTFNUKSwgZWxzZSByZXR1cm4gTFNULgotKGRlZmluZSAobWtsc3QgbHN0KQotICAo aWYgKG5vdCAobGlzdD8gbHN0KSkgKGxpc3QgbHN0KSBsc3QpKQotCi07OyBUYWtlcyBhIGxpc3Qg YW5kICJmbGF0dGVucyIgaXQsIHVzaW5nIHRoZSBwcmVkaWNhdGUgVFNUIHRvIGtub3cgd2hlbiB0 byBzdG9wCi07OyBpbnN0ZWFkIG9mIHRlcm1pbmF0aW5nIG9uIGF0b21zIChzZWUgdHV0b3JpYWwp LgotKGRlZmluZSAoY29udGV4dC1mbGF0dGVuIHRzdCBsc3QpCi0gIChpZiAob3IgKG5vdCAobGlz dD8gbHN0KSkgKG51bGw/IGxzdCkpCi0gICAgICBsc3QKLSAgICAgIChpZiAodHN0IGxzdCkKLSAg ICAgICAgICAobGlzdCBsc3QpCi0gICAgICAgICAgKGFwcGx5IGFwcGVuZAotICAgICAgICAgICAg ICAgICAobWFwIChsYW1iZGEgKHgpIChta2xzdCAoY29udGV4dC1mbGF0dGVuIHRzdCB4KSkpCi0g ICAgICAgICAgICAgICAgICAgICAgbHN0KSkpKSkKLQotOzsgVGFrZXMgYSBsaXN0IGFuZCAiZmxh dHRlbnMiIGl0LCB1c2luZyB0aGUgbGlzdCBvZiBrZXl3b3JkcyBLRVlXT1JELUxTVCB0bwotOzsg a25vdyB3aGVuIHRvIHN0b3AgYXQgKHNlZSB0dXRvcmlhbCkuCi0oZGVmaW5lIChrZXl3b3JkLWZs YXR0ZW4ga2V5d29yZC1sc3QgbHN0KQotICAoY29udGV4dC1mbGF0dGVuCi0gICAobGFtYmRhICh4 KQotICAgICAoaWYgKG9yIChub3QgKGxpc3Q/IHgpKSAobnVsbD8geCkpCi0gICAgICAgICAjdAot ICAgICAgICAgKG1lbWJlciAoY2FyIHgpIGtleXdvcmQtbHN0KSkpCi0gICBsc3QpKQotCi07Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwogOzs7OzsgUE1BVENIIFNUUlVDVFVSRSBNVU5HSU5HCiA7OyBQ cmV0dHkgc2VsZi1leHBsYW5hdG9yeS4KIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CmRpZmYgLS1n aXQgYS9tb2R1bGUvaWNlLTkvcGVnL3NpbXBsaWZ5LXRyZWUuc2NtIGIvbW9kdWxlL2ljZS05L3Bl Zy9zaW1wbGlmeS10cmVlLnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40 Yzc4MWExCi0tLSAvZGV2L251bGwKKysrIGIvbW9kdWxlL2ljZS05L3BlZy9zaW1wbGlmeS10cmVl LnNjbQpAQCAtMCwwICsxLDk3IEBACis7Ozs7IHNpbXBsaWZ5LXRyZWUuc2NtIC0tLSB1dGlsaXR5 IGZ1bmN0aW9ucyBmb3IgdGhlIFBFRyBwYXJzZXIKKzs7OzsKKzs7OzsgCUNvcHlyaWdodCAoQykg MjAxMCwgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7OzsKKzs7OzsgVGhp cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorOzs7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCis7Ozs7IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlcgorOzs7OyB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7Ozs7IAorOzs7OyBUaGlzIGxpYnJh cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7 OzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKzs7OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKzs7OzsgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OzsgCis7Ozs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7OzsgTGljZW5zZSBh bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZQorOzs7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCis7Ozs7CisKKyhkZWZpbmUtbW9kdWxlIChpY2Ut OSBwZWcgc2ltcGxpZnktdHJlZSkKKyAgIzpleHBvcnQgKGtleXdvcmQtZmxhdHRlbiBjb250ZXh0 LWZsYXR0ZW4gc3RyaW5nLWNvbGxhcHNlKQorICAjOnVzZS1tb2R1bGUgKHN5c3RlbSBiYXNlIHBt YXRjaCkpCisKKyhkZWZpbmUtc3ludGF4IHNpbmdsZT8KKyAgKHN5bnRheC1ydWxlcyAoKQorICAg ICJSZXR1cm4gI3QgaWYgWCBpcyBhIGxpc3Qgb2Ygb25lIGVsZW1lbnQuIgorICAgICgoXyB4KQor ICAgICAocG1hdGNoIHgKKyAgICAgICAoKF8pICN0KQorICAgICAgIChlbHNlICNmKSkpKSkKKwor Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKKzs7Ozs7IFBPU1QtUFJPQ0VTU0lORyBGVU5DVElPTlMg KFRPIENBTk9OSUNBTElaRSBNQVRDSCBUUkVFUykKKzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CisK Kzs7IElzIGV2ZXJ5dGhpbmcgaW4gTFNUIHRydWU/CisoZGVmaW5lIChhbmRsc3QgbHN0KQorICAo b3IgKG51bGw/IGxzdCkKKyAgICAgIChhbmQgKGNhciBsc3QpIChhbmRsc3QgKGNkciBsc3QpKSkp KQorCis7OyBJcyBMU1QgYSBsaXN0IG9mIHN0cmluZ3M/CisoZGVmaW5lIChzdHJpbmctbGlzdD8g bHN0KQorICAoYW5kIChsaXN0PyBsc3QpIChub3QgKG51bGw/IGxzdCkpCisgICAgICAgKGFuZGxz dCAobWFwIHN0cmluZz8gbHN0KSkpKQorCis7OyBHcm91cHMgYWxsIHN0cmluZ3MgdGhhdCBhcmUg bmV4dCB0byBlYWNoIG90aGVyIGluIExTVC4gIFVzZWQgaW4KKzs7IFNUUklORy1DT0xMQVBTRS4K KyhkZWZpbmUgKHN0cmluZy1ncm91cCBsc3QpCisgIChpZiAobm90IChsaXN0PyBsc3QpKQorICAg ICAgbHN0CisgICAgICAoaWYgKG51bGw/IGxzdCkKKyAgICAgICAgICAnKCkKKyAgICAgICAgICAo bGV0ICgobmV4dCAoc3RyaW5nLWdyb3VwIChjZHIgbHN0KSkpKQorICAgICAgICAgICAgKGlmIChu b3QgKHN0cmluZz8gKGNhciBsc3QpKSkKKyAgICAgICAgICAgICAgICAoY29ucyAoY2FyIGxzdCkg bmV4dCkKKyAgICAgICAgICAgICAgICAoaWYgKGFuZCAobm90IChudWxsPyBuZXh0KSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAobGlzdD8gKGNhciBuZXh0KSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RyaW5nPyAoY2FhciBuZXh0KSkpCisgICAgICAgICAgICAgICAgICAgIChjb25z IChjb25zIChjYXIgbHN0KSAoY2FyIG5leHQpKSAoY2RyIG5leHQpKQorICAgICAgICAgICAgICAg ICAgICAoY29ucyAobGlzdCAoY2FyIGxzdCkpIG5leHQpKSkpKSkpCisKKworOzsgQ29sbGFwc2Vz IGFsbCB0aGUgc3RyaW5nIGluIExTVC4KKzs7ICgiYSIgImIiIChjIGQpICJlIiAiZiIpIC0+ICgi YWIiIChjIGQpICJlZiIpCisoZGVmaW5lIChzdHJpbmctY29sbGFwc2UgbHN0KQorICAoaWYgKGxp c3Q/IGxzdCkKKyAgICAgIChsZXQgKChyZXMgKG1hcCAobGFtYmRhICh4KSAoaWYgKHN0cmluZy1s aXN0PyB4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgc3Ry aW5nLWFwcGVuZCB4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4KSkK KyAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWdyb3VwIChtYXAgc3RyaW5nLWNvbGxhcHNl IGxzdCkpKSkpCisgICAgICAgIChpZiAoc2luZ2xlPyByZXMpIChjYXIgcmVzKSByZXMpKQorICAg ICAgbHN0KSkKKworOzsgSWYgTFNUIGlzIGFuIGF0b20sIHJldHVybiAobGlzdCBMU1QpLCBlbHNl IHJldHVybiBMU1QuCisoZGVmaW5lIChta2xzdCBsc3QpCisgIChpZiAobm90IChsaXN0PyBsc3Qp KSAobGlzdCBsc3QpIGxzdCkpCisKKzs7IFRha2VzIGEgbGlzdCBhbmQgImZsYXR0ZW5zIiBpdCwg dXNpbmcgdGhlIHByZWRpY2F0ZSBUU1QgdG8ga25vdyB3aGVuIHRvIHN0b3AKKzs7IGluc3RlYWQg b2YgdGVybWluYXRpbmcgb24gYXRvbXMgKHNlZSB0dXRvcmlhbCkuCisoZGVmaW5lIChjb250ZXh0 LWZsYXR0ZW4gdHN0IGxzdCkKKyAgKGlmIChvciAobm90IChsaXN0PyBsc3QpKSAobnVsbD8gbHN0 KSkKKyAgICAgIGxzdAorICAgICAgKGlmICh0c3QgbHN0KQorICAgICAgICAgIChsaXN0IGxzdCkK KyAgICAgICAgICAoYXBwbHkgYXBwZW5kCisgICAgICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAo eCkgKG1rbHN0IChjb250ZXh0LWZsYXR0ZW4gdHN0IHgpKSkKKyAgICAgICAgICAgICAgICAgICAg ICBsc3QpKSkpKQorCis7OyBUYWtlcyBhIGxpc3QgYW5kICJmbGF0dGVucyIgaXQsIHVzaW5nIHRo ZSBsaXN0IG9mIGtleXdvcmRzIEtFWVdPUkQtTFNUIHRvCis7OyBrbm93IHdoZW4gdG8gc3RvcCBh dCAoc2VlIHR1dG9yaWFsKS4KKyhkZWZpbmUgKGtleXdvcmQtZmxhdHRlbiBrZXl3b3JkLWxzdCBs c3QpCisgIChjb250ZXh0LWZsYXR0ZW4KKyAgIChsYW1iZGEgKHgpCisgICAgIChpZiAob3IgKG5v dCAobGlzdD8geCkpIChudWxsPyB4KSkKKyAgICAgICAgICN0CisgICAgICAgICAobWVtYmVyIChj YXIgeCkga2V5d29yZC1sc3QpKSkKKyAgIGxzdCkpCi0tIAoxLjcuNC4xCgo= --20cf3071c8aa833268049dc99a52 Content-Type: application/octet-stream; name="0006-Factor-PEG-Structure.patch" Content-Disposition: attachment; filename="0006-Factor-PEG-Structure.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkxih06f5 RnJvbSBlNWI3YjIyYjllOTE2YjM5NWU2MDcwYzBlZTUyYjc1YWMyMzdmYzJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bmxhdmluZUBoYXZlcmZvcmQuZWR1PgpE YXRlOiBTdW4sIDYgTWFyIDIwMTEgMDA6MDk6MTYgLTA1MDAKU3ViamVjdDogW1BBVENIIDYvN10g RmFjdG9yIFBFRyBTdHJ1Y3R1cmUKCiAqIG1vZHVsZXMvaWNlLTkvcGVnLnNjbTogcmVtb3ZlIHRo ZSBwYXJ0IHRoYXQgZGVmaW5lcyBhIG1hdGNoIHN0cnVjdHVyZQogKiBtb2R1bGVzL2ljZS05L3Bl Zy9tYXRjaC1yZWNvcmQuc2NtOiBhbmQgcHV0IGl0IGhlcmUKLS0tCiBtb2R1bGUvaWNlLTkvcGVn LnNjbSAgICAgICAgICAgICAgfCAgIDM4ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBtb2R1bGUvaWNlLTkvcGVnL21hdGNoLXJlY29yZC5zY20gfCAgIDQzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygr KSwgMjkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbW9kdWxlL2ljZS05L3BlZy9t YXRjaC1yZWNvcmQuc2NtCgpkaWZmIC0tZ2l0IGEvbW9kdWxlL2ljZS05L3BlZy5zY20gYi9tb2R1 bGUvaWNlLTkvcGVnLnNjbQppbmRleCBjYjc5YzYwLi40MjY5ZjliIDEwMDY0NAotLS0gYS9tb2R1 bGUvaWNlLTkvcGVnLnNjbQorKysgYi9tb2R1bGUvaWNlLTkvcGVnLnNjbQpAQCAtMjEsMjMgKzIx LDI0IEBACiAgICM6ZXhwb3J0IChwZWctcGFyc2UKIDsgICAgICAgICAgICBkZWZpbmUtbm9udGVy bQogOyAgICAgICAgICAgIGRlZmluZS1ub250ZXJtLWYKLSAgICAgICAgICAgIHBlZy1tYXRjaAot ICAgICAgICAgICAgcGVnOnN0YXJ0Ci0gICAgICAgICAgICBwZWc6ZW5kCi0gICAgICAgICAgICBw ZWc6c3RyaW5nCi0gICAgICAgICAgICBwZWc6dHJlZQotICAgICAgICAgICAgcGVnOnN1YnN0cmlu ZwotICAgICAgICAgICAgcGVnLXJlY29yZD8pCisgICAgICAgICAgICBwZWctbWF0Y2gpCiA7ICAj OmV4cG9ydC1zeW50YXggKGRlZmluZS1ub250ZXJtKQogICAjOnVzZS1tb2R1bGUgKGljZS05IHBl ZyBjb2RlZ2VuKQogICAjOnVzZS1tb2R1bGUgKGljZS05IHBlZyBzdHJpbmctcGVnKQogICAjOnVz ZS1tb2R1bGUgKGljZS05IHBlZyBzaW1wbGlmeS10cmVlKQorICAjOnVzZS1tb2R1bGUgKGljZS05 IHBlZyBtYXRjaC1yZWNvcmQpCiAgICM6cmUtZXhwb3J0IChwZWctc2V4cC1jb21waWxlCiAgICAg ICAgICAgICAgICBkZWZpbmUtZ3JhbW1hcgogICAgICAgICAgICAgICAgZGVmaW5lLWdyYW1tYXIt ZgogICAgICAgICAgICAgICAgZGVmaW5lLW5vbnRlcm0KICAgICAgICAgICAgICAgIGtleXdvcmQt ZmxhdHRlbgotICAgICAgICAgICAgICAgY29udGV4dC1mbGF0dGVuKSkKKyAgICAgICAgICAgICAg IGNvbnRleHQtZmxhdHRlbgorICAgICAgICAgICAgICAgcGVnOnN0YXJ0CisgICAgICAgICAgICAg ICBwZWc6ZW5kCisgICAgICAgICAgICAgICBwZWc6c3RyaW5nCisgICAgICAgICAgICAgICBwZWc6 dHJlZQorICAgICAgICAgICAgICAgcGVnOnN1YnN0cmluZworICAgICAgICAgICAgICAgcGVnLXJl Y29yZD8pKQogCiA7OzsKIDs7OyBIZWxwZXIgTWFjcm9zCkBAIC05NiwyNiArOTcsNSBAQCBleGVj dXRlIHRoZSBTVE1UcyBhbmQgdHJ5IGFnYWluLiIKICAgICAgICAgICAgICAgICAgICAgICAgIGF0 IGVuZCBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctY29sbGFwc2UgbWF0 Y2gpKSkpKSkpKSkpKSkKIAotOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKLTs7Ozs7IFBNQVRDSCBT VFJVQ1RVUkUgTVVOR0lORwotOzsgUHJldHR5IHNlbGYtZXhwbGFuYXRvcnkuCi07Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7OwotCi0oZGVmaW5lIHByZWMKLSAgKG1ha2UtcmVjb3JkLXR5cGUgInBlZyIg JyhzdGFydCBlbmQgc3RyaW5nIHRyZWUpKSkKLShkZWZpbmUgbWFrZS1wcmVjCi0gIChyZWNvcmQt Y29uc3RydWN0b3IgcHJlYyAnKHN0YXJ0IGVuZCBzdHJpbmcgdHJlZSkpKQotKGRlZmluZSAocGVn OnN0YXJ0IHBtKQotICAoaWYgcG0gKChyZWNvcmQtYWNjZXNzb3IgcHJlYyAnc3RhcnQpIHBtKSAj ZikpCi0oZGVmaW5lIChwZWc6ZW5kIHBtKQotICAoaWYgcG0gKChyZWNvcmQtYWNjZXNzb3IgcHJl YyAnZW5kKSBwbSkgI2YpKQotKGRlZmluZSAocGVnOnN0cmluZyBwbSkKLSAgKGlmIHBtICgocmVj b3JkLWFjY2Vzc29yIHByZWMgJ3N0cmluZykgcG0pICNmKSkKLShkZWZpbmUgKHBlZzp0cmVlIHBt KQotICAoaWYgcG0gKChyZWNvcmQtYWNjZXNzb3IgcHJlYyAndHJlZSkgcG0pICNmKSkKLShkZWZp bmUgKHBlZzpzdWJzdHJpbmcgcG0pCi0gIChpZiBwbSAoc3Vic3RyaW5nIChwZWc6c3RyaW5nIHBt KSAocGVnOnN0YXJ0IHBtKSAocGVnOmVuZCBwbSkpICNmKSkKLShkZWZpbmUgcGVnLXJlY29yZD8g KHJlY29yZC1wcmVkaWNhdGUgcHJlYykpCi0KICkKIApkaWZmIC0tZ2l0IGEvbW9kdWxlL2ljZS05 L3BlZy9tYXRjaC1yZWNvcmQuc2NtIGIvbW9kdWxlL2ljZS05L3BlZy9tYXRjaC1yZWNvcmQuc2Nt Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3Nzg1YTUKLS0tIC9kZXYvbnVs bAorKysgYi9tb2R1bGUvaWNlLTkvcGVnL21hdGNoLXJlY29yZC5zY20KQEAgLTAsMCArMSw0MyBA QAorOzs7OyBtYXRjaC1yZWNvcmQuc2NtIC0tLSByZWNvcmRzIHRvIGhvbGQgUEVHIHBhcnNlciBy ZXN1bHRzCis7Ozs7Cis7Ozs7IAlDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCis7Ozs7Cis7Ozs7IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKzs7OzsgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworOzs7OyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKzs7 OzsgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorOzs7OyAKKzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7Ozs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7Ozs7IE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V Cis7Ozs7IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7 Ozs7IAorOzs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7 IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKzs7OzsgRm91bmRhdGlvbiwgSW5j LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAx IFVTQQorOzs7OworCisoZGVmaW5lLW1vZHVsZSAoaWNlLTkgcGVnIG1hdGNoLXJlY29yZCkKKyAg IzpleHBvcnQgKHByZWMgbWFrZS1wcmVjIHBlZzpzdGFydCBwZWc6ZW5kIHBlZzpzdHJpbmcKKyAg ICAgICAgICAgIHBlZzp0cmVlIHBlZzpzdWJzdHJpbmcgcGVnLXJlY29yZD8pKQorCis7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OworOzs7OzsgUE1BVENIIFNUUlVDVFVSRSBNVU5HSU5HCis7OyBQcmV0 dHkgc2VsZi1leHBsYW5hdG9yeS4KKzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CisKKyhkZWZpbmUg cHJlYworICAobWFrZS1yZWNvcmQtdHlwZSAicGVnIiAnKHN0YXJ0IGVuZCBzdHJpbmcgdHJlZSkp KQorKGRlZmluZSBtYWtlLXByZWMKKyAgKHJlY29yZC1jb25zdHJ1Y3RvciBwcmVjICcoc3RhcnQg ZW5kIHN0cmluZyB0cmVlKSkpCisoZGVmaW5lIChwZWc6c3RhcnQgcG0pCisgIChpZiBwbSAoKHJl Y29yZC1hY2Nlc3NvciBwcmVjICdzdGFydCkgcG0pICNmKSkKKyhkZWZpbmUgKHBlZzplbmQgcG0p CisgIChpZiBwbSAoKHJlY29yZC1hY2Nlc3NvciBwcmVjICdlbmQpIHBtKSAjZikpCisoZGVmaW5l IChwZWc6c3RyaW5nIHBtKQorICAoaWYgcG0gKChyZWNvcmQtYWNjZXNzb3IgcHJlYyAnc3RyaW5n KSBwbSkgI2YpKQorKGRlZmluZSAocGVnOnRyZWUgcG0pCisgIChpZiBwbSAoKHJlY29yZC1hY2Nl c3NvciBwcmVjICd0cmVlKSBwbSkgI2YpKQorKGRlZmluZSAocGVnOnN1YnN0cmluZyBwbSkKKyAg KGlmIHBtIChzdWJzdHJpbmcgKHBlZzpzdHJpbmcgcG0pIChwZWc6c3RhcnQgcG0pIChwZWc6ZW5k IHBtKSkgI2YpKQorKGRlZmluZSBwZWctcmVjb3JkPyAocmVjb3JkLXByZWRpY2F0ZSBwcmVjKSkK LS0gCjEuNy40LjEKCg== --20cf3071c8aa833268049dc99a52 Content-Type: application/octet-stream; name="0007-Remove-eval-when.patch" Content-Disposition: attachment; filename="0007-Remove-eval-when.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkxih06g6 RnJvbSBkMzM5NGQzNzRjNmQ3MTI0YWUzYzI1MjEyMzQwNzcyMjg1ZDkyOTBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bmxhdmluZUBoYXZlcmZvcmQuZWR1PgpE YXRlOiBTdW4sIDYgTWFyIDIwMTEgMDA6MTI6MzcgLTA1MDAKU3ViamVjdDogW1BBVENIIDcvN10g UmVtb3ZlIGV2YWwtd2hlbgoKICogbW9kdWxlL2ljZS05L3BlZy5zY206IHJlbW92ZSB0aGUgZXZh bC13aGVuIHN0YXRlbWVudAotLS0KIG1vZHVsZS9pY2UtOS9wZWcuc2NtIHwgICAgNSAtLS0tLQog MSBmaWxlcyBjaGFuZ2VkLCAwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbW9kdWxlL2ljZS05L3BlZy5zY20gYi9tb2R1bGUvaWNlLTkvcGVnLnNjbQppbmRleCA0 MjY5ZjliLi42NDRhZjZkIDEwMDY0NAotLS0gYS9tb2R1bGUvaWNlLTkvcGVnLnNjbQorKysgYi9t b2R1bGUvaWNlLTkvcGVnLnNjbQpAQCAtNTMsOCArNTMsNiBAQCBleGVjdXRlIHRoZSBTVE1UcyBh bmQgdHJ5IGFnYWluLiIKICAgICAgICAob3IgdGVzdAogICAgICAgICAgICAoYmVnaW4gc3RtdCBz dG10KiAuLi4gKGxwKSkpKSkpKQogCi0oZXZhbC13aGVuIChjb21waWxlIGxvYWQgZXZhbCkKLQog Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKIDs7Ozs7IEZPUiBERUZJTklORyBBTkQgVVNJTkcgTk9O VEVSTUlOQUxTCiA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwpAQCAtOTYsNiArOTQsMyBAQCBleGVj dXRlIHRoZSBTVE1UcyBhbmQgdHJ5IGFnYWluLiIKICAgICAgICAgICAgICAgICAgICAgICAgKG1h a2UtcHJlYwogICAgICAgICAgICAgICAgICAgICAgICAgYXQgZW5kIHN0cmluZwogICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cmluZy1jb2xsYXBzZSBtYXRjaCkpKSkpKSkpKSkpKQotCi0pCi0K LS0gCjEuNy40LjEKCg== --20cf3071c8aa833268049dc99a52--