From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22169 invoked by alias); 14 May 2012 17:31:30 -0000 Received: (qmail 22137 invoked by uid 22791); 14 May 2012 17:31:29 -0000 X-SWARE-Spam-Status: No, hits=-4.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-qa0-f48.google.com (HELO mail-qa0-f48.google.com) (209.85.216.48) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 14 May 2012 17:31:13 +0000 Received: by qady23 with SMTP id y23so4072272qad.14 for ; Mon, 14 May 2012 10:31:12 -0700 (PDT) MIME-Version: 1.0 Received: by 10.224.111.8 with SMTP id q8mr218519qap.55.1337016672049; Mon, 14 May 2012 10:31:12 -0700 (PDT) Received: by 10.229.169.130 with HTTP; Mon, 14 May 2012 10:31:11 -0700 (PDT) Date: Mon, 14 May 2012 17:31:00 -0000 Message-ID: Subject: [x86-64 psABI] RFC: Extend x86-64 psABI to support x32 From: "H.J. Lu" To: discuss@x86-64.org Cc: GCC Development , Binutils , GNU C Library , GDB , x32-abi@googlegroups.com Content-Type: multipart/mixed; boundary=20cf3074b632cbd99704c00273e9 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2012-05/txt/msg00057.txt.bz2 --20cf3074b632cbd99704c00273e9 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 414 Hi, Support for the x32 psABI: http://sites.google.com/site/x32abi/ is added in Linux kernel 3.4-rc1. X32 uses the ILP32 model for x86-64 instruction set with size of long and pointers == 4 bytes. X32 is already supported in GCC 4.7.0 and binutils 2.22. I am now working to integrate x32 support into GLIBC 2.16 and GDB 7.5 Here is a patch to extend x86-64 psABI for x32. Any comments? Thanks. -- H.J. --20cf3074b632cbd99704c00273e9 Content-Type: application/octet-stream; name="psabi-x32.patch" Content-Disposition: attachment; filename="psabi-x32.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h27t4e810 Content-length: 36682 MjAxMi0wNS0xNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoK CSogYWJpLnRleCAodGl0bGUpOiBNZW50aW9uIExQNjQvWDMyLiAKCShhdXRo b3IpOiBBZGQgSC5KLiBMdSBhbmQgTWlsaW5kIEdpcmthci4KCUluY2x1ZGUg eDMyLnRleC4KCgkqIGRldmVsb3BtZW50LnRleDogQWRkIF9JTFAzMiBhbmQg X19JTFAzMl9fIGZvciB4MzIuICBBbHNvCglkb2N1bWVudCBfTFA2NCBhbmQg X19MUDY0X18uCgoJKiBkbC50ZXg6IExpc3QgWDMyIHByb2dyYW0gaW50ZXJw cmV0ZXIuCgoJKiBpbnRyb2R1Y3Rpb24udGV4IChJbnRyb2R1Y3Rpb24pOiBB ZGQgYSBsYWJlbC4KCURlc2NyaWJlIFgzMiBhbmQgTFA2NC4KCgkqIGxvdy1s ZXZlbC1zeXMtaW5mby50ZXggKFNjYWxhciBUeXBlcyB0YWJsZSk6IEFkZCBY MzIvTFA2NCB0bwoJbG9uZyBhbmQgbG9uZyBsb25nLiAgTW9kaWZ5IGxvbmcg YW5kIHBvaW50ZXIgdHlwZXMgZm9yIFgzMiBhbmQKCUxQNjQuICBVc2UgXG15 Zm9udHNpemUgaW5zdGVhZCBvZiBcc21hbGwuCgkoQXJjaGl0ZWN0dXJhbCBD b25zdHJhaW50cyk6IEFkZCBhIGxlYmVsLiAgTWVudGlvbiBzbWFsbCBtb2Rl bAoJZm9yIFgzMi4KCgkqIG1hY3Jvcy50ZXggKG15Zm9udHNpemUpOiBOZXcu CgoJKiBvYmplY3QtZmlsZXMudGV4IChQcm9ncmFtbWluZyBNb2RlbCk6IE5l dyBzdWJzdWJzZWN0aW9uCgkoRmlsZSBDbGFzcyk6IExpa2V3aXNlLgoJKERh dGEgRW5jb2RpbmcpOiBMaWtld2lzZS4KCShQcm9jZXNzb3IgaWRlbnRpZmlj YXRpb259KTogTGlrZXdpc2UuCgkoUmVsb2NhdGlvbiBUeXBlcyk6IEFkZCB3 b3JkY2xhc3MuICBBbGxvdyBFbGYzMl9SZWwgcmVsb2NhdGlvbnMKCXdpdGhp biB4MzIgZXhlY3V0YWJsZSBmaWxlcyBvciBzaGFyZWQgb2JqZWN0cy4KCShS ZWxvY2F0aW9uIFR5cGVzKTogVXNlIHNtYWxsIGZvbnQuICBNYXJrIFJfWDg2 XzY0X0dMT0JfREFULAoJUl9YODZfNjRfSlVNUF9TTE9ULCBSX1g4Nl82NF9S RUxBVElWRSBhbmQgUl9YODZfNjRfSVJFTEFUSVZFCgl3aXRoIHdvcmRjbGFz cy4gIE1hcmsgUl9YODZfNjRfUEM2NCwgUl9YODZfNjRfR09UT0ZGNjQgYW5k CglSX1g4Nl82NF9TSVpFNjQgdXNlZCBvbmx5IGZvciBMUDY0LiAgQWRkIFJf WDg2XzY0X1JFTEFUSVZFNjQgZm9yCgl4MzIuCgoJKiB4MzIudGV4OiBOZXcg ZmlsZS4KCmRpZmYgLS1naXQgYS9hYmkudGV4IGIvYWJpLnRleAppbmRleCAy YjU2ZDk0Li40ZGU2NDRlIDEwMDY0NAotLS0gYS9hYmkudGV4CisrKyBiL2Fi aS50ZXgKQEAgLTUsMTMgKzUsMTYgQEAKIFxiZWdpbntkb2N1bWVudH0KIAog XGF1dGhvcntFZGl0ZWQgYnlcXAorICBILkouIEx1XHRoYW5rc3tob25naml1 Lmx1QGludGVsLmNvbX0sCisgIE1pbGluZCBHaXJrYXJcdGhhbmtze21pbGlu ZC5naXJrYXJAaW50ZWwuY29tfSxcXAogICBNaWNoYWVsIE1hdHpcdGhhbmtz e21hdHpAc3VzZS5kZX0sCiAgIEphbiBIdWJpXHZ7Y31rYVx0aGFua3N7amhA c3VzZS5jen0sIEFuZHJlYXMgSmFlZ2VyXHRoYW5rc3thakBzdXNlLmRlfSwK ICAgTWFyayBNaXRjaGVsbFx0aGFua3N7bWFya0Bjb2Rlc291cmNlcnkuY29t fX0KIAogXHRpdGxle1N5c3RlbSBWIEFwcGxpY2F0aW9uIEJpbmFyeSBJbnRl cmZhY2VcXAote1xMYXJnZSBBTUQ2NCBBcmNoaXRlY3R1cmUgUHJvY2Vzc29y IFN1cHBsZW1lbnRcXAotRHJhZnQgVmVyc2lvbiBcdmVyc2lvbn19Cit7XExh cmdlIEFNRDY0IEFyY2hpdGVjdHVyZSBQcm9jZXNzb3IgU3VwcGxlbWVudH1c XAore1xsYXJnZSAoV2l0aCBMUDY0IGFuZCBYMzIgUHJvZ3JhbW1pbmcgTW9k ZWxzKX1cXAore1xMYXJnZSBEcmFmdCBWZXJzaW9uIFx2ZXJzaW9ufX0KIFxt YWtldGl0bGUKIFx0YWJsZW9mY29udGVudHMKIFxsaXN0b2Z0YWJsZXMKQEAg LTk5LDYgKzEwMiw3IEBAIERyYWZ0IFZlcnNpb24gXHZlcnNpb259fQogICBw bGFjZSBvciByZW1vdmVkIGNvbXBsZXRlbHkufQogXGluY2x1ZGV7Y29udmVu dGlvbnN9CiBcaW5jbHVkZXtmb3J0cmFufQorXGluY2x1ZGV7eDMyfQogCiBc YXBwZW5kaXgKIFxpbmNsdWRle2tlcm5lbH0KZGlmZiAtLWdpdCBhL2RldmVs b3BtZW50LnRleCBiL2RldmVsb3BtZW50LnRleAppbmRleCBkMTM4OGI1Li4x MDY2OWUxIDEwMDY0NAotLS0gYS9kZXZlbG9wbWVudC50ZXgKKysrIGIvZGV2 ZWxvcG1lbnQudGV4CkBAIC0yLDE4ICsyLDI0IEBACiBcY2hhcHRlcntEZXZl bG9wbWVudCBFbnZpcm9ubWVudH0KIAogRHVyaW5nIGNvbXBpbGF0aW9uIG9m IEMgb3IgQysrIGNvZGUgYXQgbGVhc3QgdGhlIHN5bWJvbHMgaW4KLXRhYmxl IFxyZWZ7cHJlcHJvX2RlZmluZXN9IGFyZSBkZWZpbmVkIGJ5IHRoZSBwcmUt cHJvY2Vzc29yLgordGFibGUgXHJlZntwcmVwcm9fZGVmaW5lc30gYXJlIGRl ZmluZWQgYnkgdGhlIHByZS1wcm9jZXNzb3IKK1xmb290bm90ZXtcY29kZXtf X0xQNjR9IGFuZCBcY29kZXtfX0xQNjRfX30gd2VyZSBhZGRlZCB0byBHQ0Mg My4zIGluCitNYXJjaCwgMjAwMy59LgogCiBcYmVnaW57dGFibGV9W0hdCiBc SHJ1bGUKIFxjYXB0aW9ue1ByZWRlZmluZWQgUHJlLVByb2Nlc3NvciBTeW1i b2xzfQogXGxhYmVse3ByZXByb19kZWZpbmVzfQotICBcYmVnaW57Y2VudGVy fVxjb2RlewotICAgIFxiZWdpbnt0YWJ1bGFyfVt0XXtsfQotICAgICAgX19h bWQ2NFxcCi0gICAgICBfX2FtZDY0X19cXAotICAgICAgX194ODZfNjRcXAot ICAgICAgX194ODZfNjRfX1xcCisgIFxiZWdpbntjZW50ZXJ9XHNtYWxsXGNv ZGV7CisgICAgXGJlZ2lue3RhYnVsYXJ9W3Rde2xsfQorICAgICAgX19hbWQ2 NCAgICAgICYgRGVmaW5lZCBmb3IgYm90aCBMUDY0IGFuZCBYMzIgcHJvZ3Jh bW1pbmcgbW9kZWxzLlxcCisgICAgICBfX2FtZDY0X18gICAgJiBEZWZpbmVk IGZvciBib3RoIExQNjQgYW5kIFgzMiBwcm9ncmFtbWluZyBtb2RlbHMuXFwK KyAgICAgIF9feDg2XzY0ICAgICAmIERlZmluZWQgZm9yIGJvdGggTFA2NCBh bmQgWDMyIHByb2dyYW1taW5nIG1vZGVscy5cXAorICAgICAgX194ODZfNjRf XyAgICYgRGVmaW5lZCBmb3IgYm90aCBMUDY0IGFuZCBYMzIgcHJvZ3JhbW1p bmcgbW9kZWxzLlxcCisgICAgICBfTFA2NCAgICAgICAgJiBEZWZpbmVkIGZv ciBMUDY0IHByb2dyYW1taW5nIG1vZGVsLlxcCisgICAgICBfX0xQNjRfXyAg ICAgJiBEZWZpbmVkIGZvciBMUDY0IHByb2dyYW1taW5nIG1vZGVsLlxcCisg ICAgICBfSUxQMzIgICAgICAgJiBEZWZpbmVkIGZvciBYMzIgcHJvZ3JhbW1p bmcgbW9kZWwuXFwKKyAgICAgIF9fSUxQMzJfXyAgICAmIERlZmluZWQgZm9y IFgzMiBwcm9ncmFtbWluZyBtb2RlbC5cXAogICAgIFxlbmR7dGFidWxhcn0K ICAgfVxlbmR7Y2VudGVyfQogXEhydWxlCmRpZmYgLS1naXQgYS9kbC50ZXgg Yi9kbC50ZXgKaW5kZXggYTY3ZjRmOC4uOGZlY2VjNyAxMDA2NDQKLS0tIGEv ZGwudGV4CisrKyBiL2RsLnRleApAQCAtMzU1LDE3ICszNTUsMjQgQEAgdXNl LgogCiBcc3Vic2VjdGlvbntQcm9ncmFtIEludGVycHJldGVyfQogCi1UaGVy ZSBpcyBvbmUgdmFsaWQgXHRleHRpbmRleHtwcm9ncmFtIGludGVycHJldGVy fSBmb3IKLXByb2dyYW1zIGNvbmZvcm1pbmcgdG8gdGhlIFx4QVJDSCBBQkk6 Ci0KLVxiaWdza2lwCi1ccGF0aHsvbGliL2xkNjQuc28uMX0KLQotSG93ZXZl ciwgTGludXggcHV0cyB0aGlzIGluCi0KLVxiaWdza2lwCi1ccGF0aHsvbGli NjQvbGQtbGludXgteDg2LTY0LnNvLjJ9CitUaGUgdmFsaWQgXHRleHRpbmRl eHtwcm9ncmFtIGludGVycHJldGVyfSBmb3IgcHJvZ3JhbXMgY29uZm9ybWlu ZyB0byB0aGUKK1x4QVJDSCBBQkkgaXMgbGlzdGVkIGluIFRhYmxlIFxyZWZ7 aW50ZXJwfSwgd2hpY2ggYWxzbyBjb250YWlucyB0aGUKK1x0ZXh0aW5kZXh7 cHJvZ3JhbSBpbnRlcnByZXRlcn0gdXNlZCBieSBMaW51eC4KIAorXGJlZ2lu e2ZpZ3VyZX0KKyAgXGNhcHRpb257XHhBUkNIIFByb2dyYW0gSW50ZXJwcmV0 ZXJ9CisgIFxsYWJlbHtpbnRlcnB9CisgIFxiZWdpbntjZW50ZXJ9CisgICAg XGJlZ2lue3RhYnVsYXJ9W3Rde2x8bHxsfQorICAgICAgXG11bHRpY29sdW1u ezF9e2N9e0RhdGEgTW9kZWx9ICYgXG11bHRpY29sdW1uezF9e2N9e1BhdGh9 ICYKKyAgICAgIFxtdWx0aWNvbHVtbnsxfXtjfXtMaW51eCBQYXRofSBcXAor ICAgICAgXGhsaW5lCisgICAgICBMUDY0ICYgXHBhdGh7L2xpYi9sZDY0LnNv LjF9ICYgXHBhdGh7L2xpYjY0L2xkLWxpbnV4LXg4Ni02NC5zby4yfSBcXAor ICAgICAgXGhsaW5lCisgICAgICBYMzIgJiBccGF0aHsvbGliL2xkeDMyLnNv LjF9ICYgXHBhdGh7L2xpYngzMi9sZC1saW51eC14MzIuc28uMn0gXFwKKyAg ICBcZW5ke3RhYnVsYXJ9CisgIFxlbmR7Y2VudGVyfQorXGVuZHtmaWd1cmV9 CiAKIFxzdWJzZWN0aW9ue0luaXRpYWxpemF0aW9uIGFuZCBUZXJtaW5hdGlv biBGdW5jdGlvbnN9CiAKZGlmZiAtLWdpdCBhL2ludHJvZHVjdGlvbi50ZXgg Yi9pbnRyb2R1Y3Rpb24udGV4CmluZGV4IDIxNDhhYjkuLmFhODllODcgMTAw NjQ0Ci0tLSBhL2ludHJvZHVjdGlvbi50ZXgKKysrIGIvaW50cm9kdWN0aW9u LnRleApAQCAtMSw0ICsxLDQgQEAKLVxjaGFwdGVye0ludHJvZHVjdGlvbn0K K1xjaGFwdGVye0ludHJvZHVjdGlvblxsYWJlbHtpbnRyb319CiAKIFRoZSBB TUQ2NFxmb290bm90ZXtBTUQ2NCBoYXMgYmVlbiBwcmV2aW91c2x5IGNhbGxl ZCB4ODYtNjQuICBUaGUKICAgbGF0dGVyIG5hbWUgaXMgdXNlZCBpbiBhIG51 bWJlciBvZiBwbGFjZXMgb3V0IG9mIGhpc3RvcmljYWwgcmVhc29ucwpAQCAt MTUsNiArMTUsMTMgQEAgY29tcGF0aWJpbGl0eSBtb2Rlcy4gIFRoZSBceEFS Q0ggQUJJIGRvZXMgbm90IGFwcGx5IHRvIHN1Y2ggcHJvZ3JhbXM7CiB0aGlz IGRvY3VtZW50IGFwcGxpZXMgb25seSBwcm9ncmFtcyBydW5uaW5nIGluIHRo ZSBgYGxvbmcnJyBtb2RlCiBwcm92aWRlZCBieSB0aGUgXHhBUkNIIGFyY2hp dGVjdHVyZS4KIAorQmluYXJpZXMgdXNpbmcgdGhlIFx4QVJDSCBpbnN0cnVj dGlvbiBzZXQgbWF5IHByb2dyYW0gdG8gZWl0aGVyIGEgMzItYml0Cittb2Rl bCwgaW4gd2hpY2ggdGhlIEMgZGF0YSB0eXBlcyBcY29kZXtpbnR9LCBcY29k ZXtsb25nfSBhbmQgYWxsCitwb2ludGVyIHR5cGVzIGFyZSAzMi1iaXQgb2Jq ZWN0cyAoWDMyKTsgb3IgdG8gYSA2NC1iaXQgbW9kZWwsCitpbiB3aGljaCB0 aGUgQyBcY29kZXtpbnR9IHR5cGUgaXMgMzItYml0cyBidXQgdGhlIEMgXGNv ZGV7bG9uZ30gdHlwZQorYW5kIGFsbCBwb2ludGVyIHR5cGVzIGFyZSA2NC1i aXQgb2JqZWN0cyAoTFA2NCkuIFRoaXMgc3BlY2lmaWNhdGlvbgorY292ZXJz IGJvdGggTFA2NCBhbmQgWDMyIHByb2dyYW1taW5nIG1vZGVscy4KKwogRXhj ZXB0IHdoZXJlIG90aGVyd2lzZSBub3RlZCwgdGhlIFx4QVJDSCBhcmNoaXRl Y3R1cmUgQUJJIGZvbGxvd3MgdGhlCiBjb252ZW50aW9ucyBkZXNjcmliZWQg aW4gdGhlIFxpbnRlbGFiaS4gIFJhdGhlciB0aGFuIHJlcGxpY2F0ZSB0aGUK IGVudGlyZSBjb250ZW50cyBvZiB0aGUgXGludGVsYWJpLCB0aGUgXHhBUkNI IEFCSSBpbmRpY2F0ZXMgb25seSB0aG9zZQpkaWZmIC0tZ2l0IGEvbG93LWxl dmVsLXN5cy1pbmZvLnRleCBiL2xvdy1sZXZlbC1zeXMtaW5mby50ZXgKaW5k ZXggYjAzMGU0Mi4uMTViNWE1ZCAxMDA2NDQKLS0tIGEvbG93LWxldmVsLXN5 cy1pbmZvLnRleAorKysgYi9sb3ctbGV2ZWwtc3lzLWluZm8udGV4CkBAIC0z Miw3ICszMiw3IEBAIHNjYWxhciB0eXBlcyBhbmQgdGhlIHByb2Nlc3Nvcidz LiAgXGNvZGV7X19pbnQxMjh9LCBcY29kZXtfX2Zsb2F0MTI4fSwKICAgXGNh cHRpb257U2NhbGFyIFR5cGVzfVxsYWJlbHtiYXNpYy10eXBlc30KIHsgJSBV c2Ugc21hbGwgaGVyZSAtIHRoZSB0YWJsZSBpcyBzdGlsbCB0b28gbGFyZ2UK ICAgJSBIYXMgYW55Ym9keSBhbiBpZGVhIGhvdyB0byBzaHJpbmsgdGhlIHRh YmxlIHNvIHRoYXQgaXQgZml0cyB0aGUgcGFnZT8KLSAgXHNtYWxsCisgIFxt eWZvbnRzaXplCiAgIFxiZWdpbnt0YWJ1bGFyfXtsfGx8Y3xjfGx9CiAgICAg XGhsaW5lXG5vYWxpZ257XHNtYWxsc2tpcH0KICAgICAgJiAmICAmIFxtdWx0 aWNvbHVtbnsxfXtjfH17QWxpZ25tZW50fSAmIFxtdWx0aWNvbHVtbnsxfXtj fH17XHhBUkNIfSBcXApAQCAtNTgsMTIgKzU4LDE5IEBAIHNjYWxhciB0eXBl cyBhbmQgdGhlIHByb2Nlc3NvcidzLiAgXGNvZGV7X19pbnQxMjh9LCBcY29k ZXtfX2Zsb2F0MTI4fSwKICAgICBcY2xpbmV7Mi01fQogICAgICYgXHRleHR0 dHt1bnNpZ25lZCBpbnR9ICYgNCAmIDQgJiB1bnNpZ25lZCBcZm91cmJ5dGUg XFwKICAgICBcY2xpbmV7Mi01fQotICAgICYgXHRleHR0dHtsb25nfSAmIDgg JiA4ICYgc2lnbmVkIFxlaWdodGJ5dGUgXFwKLSAgICAmIFx0ZXh0dHR7c2ln bmVkIGxvbmd9ICYgJiBcXAotICAgICYgXHRleHR0dHtsb25nIGxvbmd9ICYg JiBcXAorICAgICYgXHRleHR0dHtsb25nIChMUDY0KX0gJiA4ICYgOCAmIHNp Z25lZCBcZWlnaHRieXRlIFxcCisgICAgJiBcdGV4dHR0e3NpZ25lZCBsb25n IChMUDY0KX0gJiAmIFxcCisgICAgXGNsaW5lezItNX0KKyAgICAmIFx0ZXh0 dHR7dW5zaWduZWQgbG9uZyAoTFA2NCl9ICYgOCAmIDggJiB1bnNpZ25lZCBc ZWlnaHRieXRlIFxcCisgICAgXGNsaW5lezItNX0KKyAgICAmIFx0ZXh0dHR7 bG9uZyAoWDMyKX0gJiA0ICYgNCAmIHNpZ25lZCBcZm91cmJ5dGUgXFwKKyAg ICAmIFx0ZXh0dHR7c2lnbmVkIGxvbmcgKFgzMil9ICYgJiBcXAorICAgIFxj bGluZXsyLTV9CisgICAgJiBcdGV4dHR0e3Vuc2lnbmVkIGxvbmcgKFgzMil9 ICYgNCAmIDQgJiB1bnNpZ25lZCBcZm91cmJ5dGUgXFwKKyAgICBcY2xpbmV7 Mi01fQorICAgICYgXHRleHR0dHtsb25nIGxvbmd9ICYgOCAmIDggJiBzaWdu ZWQgXGVpZ2h0Ynl0ZSBcXAogICAgICYgXHRleHR0dHtzaWduZWQgbG9uZyBs b25nfSAmICYgXFwKICAgICBcY2xpbmV7Mi01fQotICAgICYgXHRleHR0dHt1 bnNpZ25lZCBsb25nfSAmIDggJiA4ICYgdW5zaWduZWQgXGVpZ2h0Ynl0ZSBc XAogICAgICYgXHRleHR0dHt1bnNpZ25lZCBsb25nIGxvbmd9ICYgOCAmIDgg JiB1bnNpZ25lZCBcZWlnaHRieXRlIFxcCiAgICAgXGNsaW5lezItNX0KICAg ICAmIFx0ZXh0dHR7X19pbnQxMjh9JF57XGRhZ2dlclxkYWdnZXJ9JCAmIDE2 ICYgMTYgJiBzaWduZWQgXHNpeHRlZW5ieXRlIFxcCkBAIC03MSw4ICs3OCwx MiBAQCBzY2FsYXIgdHlwZXMgYW5kIHRoZSBwcm9jZXNzb3Incy4gIFxjb2Rl e19faW50MTI4fSwgXGNvZGV7X19mbG9hdDEyOH0sCiAgICAgXGNsaW5lezIt NX0KICAgICAmIFx0ZXh0dHR7dW5zaWduZWQgX19pbnQxMjh9JF57XGRhZ2dl clxkYWdnZXJ9JCAmIDE2ICYgMTYgJiB1bnNpZ25lZCBcc2l4dGVlbmJ5dGUg XFwKICAgICBcaGxpbmUKLSAgICBQb2ludGVyICYgXHRleHR0dHtcdGV4dGl0 e2FueS10eXBlfSAqfSAmIDggJiA4ICYgdW5zaWduZWQgXGVpZ2h0Ynl0ZSBc XAotICAgICYgXHRleHR0dHtcdGV4dGl0e2FueS10eXBlfSAoKikoKX0gJiAm IFxcCisgICAgUG9pbnRlcgorICAgICYgXHRleHR0dHtcdGV4dGl0e2FueS10 eXBlfSAqIChMUDY0KX0gJiA4ICYgOCAmIHVuc2lnbmVkIFxlaWdodGJ5dGUg XFwKKyAgICAmIFx0ZXh0dHR7XHRleHRpdHthbnktdHlwZX0gKCopKCkgKExQ NjQpfSAmICYgXFwKKyAgICBcY2xpbmV7Mi01fQorICAgICYgXHRleHR0dHtc dGV4dGl0e2FueS10eXBlfSAqIChYMzIpfSAmIDQgJiA0ICYgdW5zaWduZWQg XGZvdXJieXRlIFxcCisgICAgJiBcdGV4dHR0e1x0ZXh0aXR7YW55LXR5cGV9 ICgqKSgpIChYMzIpfSAmICYgXFwKICAgICBcaGxpbmUKICAgICBGbG9hdGlu Zy0mIFx0ZXh0dHR7ZmxvYXR9ICYgNCAmIDQgJiBzaW5nbGUgKElFRUUtNzU0 KSBcXAogICAgIFxjbGluZXsyLTV9CkBAIC0xODgsOSArMTk5LDE2IEBAIGlu dGVncmFsIHZhbHVlcyBvZiBhIHNwZWNpZmllZCBzaXplLgogICAgICAgXHRl eHR0dHtpbnR9ICYgMSB0byAzMiAmIDAgdG8gJDJee3d9LTEkIFxcCiAgICAg ICBcdGV4dHR0e3Vuc2lnbmVkIGludH0gJiAmIDAgdG8gJDJee3d9LTEkIFxc CiAgICAgICBcaGxpbmUKLSAgICAgIFx0ZXh0dHR7c2lnbmVkIGxvbmd9ICYg JiAkLTJee3cgLSAxfSQgdG8gJDJee3ctMX0tMSQgXFwKLSAgICAgIFx0ZXh0 dHR7bG9uZ30gJiAxIHRvIDY0ICYgMCB0byAkMl57d30tMSQgXFwKLSAgICAg IFx0ZXh0dHR7dW5zaWduZWQgbG9uZ30gJiAmIDAgdG8gJDJee3d9LTEkIFxc CisgICAgICBcdGV4dHR0e3NpZ25lZCBsb25nIChMUDY0KX0gJiAmICQtMl57 dyAtIDF9JCB0byAkMl57dy0xfS0xJCBcXAorICAgICAgXHRleHR0dHtsb25n IChMUDY0KX0gJiAxIHRvIDY0ICYgMCB0byAkMl57d30tMSQgXFwKKyAgICAg IFx0ZXh0dHR7dW5zaWduZWQgbG9uZyAoTFA2NCl9ICYgJiAwIHRvICQyXnt3 fS0xJCBcXAorICAgICAgXGhsaW5lCisgICAgICBcdGV4dHR0e2xvbmcgKFgz Mil9ICYgMSB0byAzMiAmIDAgdG8gJDJee3d9LTEkIFxcCisgICAgICBcdGV4 dHR0e3Vuc2lnbmVkIGxvbmcgKFgzMil9ICYgJiAwIHRvICQyXnt3fS0xJCBc XAorICAgICAgXGhsaW5lCisgICAgICBcdGV4dHR0e3NpZ25lZCBsb25nIGxv bmd9ICYgJiAkLTJee3cgLSAxfSQgdG8gJDJee3ctMX0tMSQgXFwKKyAgICAg IFx0ZXh0dHR7bG9uZyBsb25nfSAmIDEgdG8gNjQgJiAwIHRvICQyXnt3fS0x JCBcXAorICAgICAgXHRleHR0dHt1bnNpZ25lZCBsb25nIGxvbmd9ICYgJiAw IHRvICQyXnt3fS0xJCBcXAogICAgIFxlbmR7dGFidWxhcn0KICAgXGVuZHtj ZW50ZXJ9CiBcSHJ1bGUKQEAgLTExMDIsNyArMTEyMCw3IEBAIG9wZXJhdGlv bnMgc3VjaCBhcyBjYWxsaW5nIGZ1bmN0aW9ucywgYWNjZXNzaW5nIHN0YXRp YyBvYmplY3RzLCBhbmQKIHRyYW5zZmVycmluZyBjb250cm9sIGZyb20gb25l IHBhcnQgb2YgYSBwcm9ncmFtIHRvIGFub3RoZXIuICBVbmxpa2UKIHByZXZp b3VzIG1hdGVyaWFsLCB0aGlzIG1hdGVyaWFsIGlzIG5vdCBub3JtYXRpdmUu CiAKLVxzdWJzZWN0aW9ue0FyY2hpdGVjdHVyYWwgQ29uc3RyYWludHN9Citc c3Vic2VjdGlvbntBcmNoaXRlY3R1cmFsIENvbnN0cmFpbnRzXGxhYmVse21v ZGVsc319CiAKIFRoZSBceEFSQ0ggYXJjaGl0ZWN0dXJlIHVzdWFsbHkgZG9l cyBub3QgYWxsb3cgYW4gaW5zdHJ1Y3Rpb24gdG8gZW5jb2RlCiBhcmJpdHJh cnkKQEAgLTEyMzMsNiArMTI1MSw5IEBAIHRoYXQgYXJlIG9mIGdlbmVyYWwg aW50ZXJlc3Q6CiAKIFxlbmR7ZGVzY3JpcHRpb259CiAKK09ubHkgc21hbGwg Y29kZSBtb2RlbCBhbmQgc21hbGwgcG9zaXRpb24gaW5kZXBlbmRlbnQgY29k ZSBtb2RlbAorKFx0ZXh0aW5kZXh7UElDfSkgYXJlIHVzZWQgaW4gWDMyIGJp bmFyaWVzLgorCiBcc3Vic2VjdGlvbntDb252ZW50aW9uc30KIAogSW4gdGhp cyBkb2N1bWVudCBzb21lIHNwZWNpYWwgYXNzZW1ibGVyIHN5bWJvbHMgYXJl IHVzZWQgaW4gdGhlIGNvZGluZwpkaWZmIC0tZ2l0IGEvbWFjcm9zLnRleCBi L21hY3Jvcy50ZXgKaW5kZXggMGQyMGVhYy4uOWM0ZjkxNSAxMDA2NDQKLS0t IGEvbWFjcm9zLnRleAorKysgYi9tYWNyb3MudGV4CkBAIC0xMDcsNiArMTA3 LDggQEAKIAogXG5ld2NvbW1hbmQqe1xjYm5ld317XG1hcmdpbnBhcntcdGV4 dHNme05ld319fQogCitcbmV3Y29tbWFuZHtcbXlmb250c2l6ZX17XGZvbnRz aXplezl9ezExfVxzZWxlY3Rmb250fQorCiAlJSUgTG9jYWwgVmFyaWFibGVz OgogJSUlIG1vZGU6IGxhdGV4CiAlJSUgVGVYLW1hc3RlcjogImFiaSIKZGlm ZiAtLWdpdCBhL29iamVjdC1maWxlcy50ZXggYi9vYmplY3QtZmlsZXMudGV4 CmluZGV4IDQ3MDVlOTYuLmQzNmY0YzIgMTAwNjQ0Ci0tLSBhL29iamVjdC1m aWxlcy50ZXgKKysrIGIvb2JqZWN0LWZpbGVzLnRleApAQCAtNSwyMiArNSwy OCBAQAogCiBcc3Vic2VjdGlvbntNYWNoaW5lIEluZm9ybWF0aW9ufQogCi1G b3IgZmlsZSBpZGVudGlmaWNhdGlvbiBpbiBcdGV4dHR0e2VfaWRlbnR9LCB0 aGUgXHhBUkNIIGFyY2hpdGVjdHVyZQotcmVxdWlyZXMgdGhlIGZvbGxvd2lu ZyB2YWx1ZXMuCitcc3Vic3Vic2VjdGlvbntQcm9ncmFtbWluZyBNb2RlbH0K IAotXGJlZ2lue3RhYmxlfVtIXQotXEhydWxlCi0gIFxjYXB0aW9ue1x4QVJD SCBJZGVudGlmaWNhdGlvbn0KLSAgXGJlZ2lue2NlbnRlcn0KLSAgICBcYmVn aW57dGFidWxhcn1bdF17bHxsfQotICAgICAgXG11bHRpY29sdW1uezF9e2N9 e1Bvc2l0aW9ufSAmIFxtdWx0aWNvbHVtbnsxfXtjfXtWYWx1ZX0gXFwKLSAg ICAgIFxobGluZQotICAgICAgXHRleHR0dHtlX2lkZW50W0VJX0NMQVNTXX0g JiBcdGV4dHR0e0VMRkNMQVNTNjR9IFxcCi0gICAgICBcdGV4dHR0e2VfaWRl bnRbRUlfREFUQV19ICYgXHRleHR0dHtFTEZEQVRBMkxTQn0KLSAgICBcZW5k e3RhYnVsYXJ9Ci0gIFxlbmR7Y2VudGVyfQotXEhydWxlCi1cZW5ke3RhYmxl fQorQXMgZGVzY3JpYmVkIGluIFNlY3Rpb24gXHJlZntpbnRyb30sIGJpbmFy aWVzIHVzaW5nIHRoZSBceEFSQ0ggaW5zdHJ1Y3Rpb24KK3NldCBtYXkgcHJv Z3JhbSB0byBlaXRoZXIgYSAzMi1iaXQgbW9kZWwsIGluIHdoaWNoIHRoZSBD IGRhdGEKK3R5cGVzIFxjb2Rle2ludH0sIFxjb2Rle2xvbmd9IGFuZCBhbGwg cG9pbnRlciB0eXBlcyBhcmUgMzItYml0IG9iamVjdHMKKyhYMzIpOyBvciB0 byBhIDY0LWJpdCBtb2RlbCwgaW4gd2hpY2ggdGhlIEMgY29kZXtpbnR9IHR5 cGUgaXMgMzItYml0cworYnV0IHRoZSBDIFxjb2Rle2xvbmd9IHR5cGUgYW5k IGFsbCBwb2ludGVyIHR5cGVzIGFyZSA2NC1iaXQgb2JqZWN0cyAoTFA2NCku CitUaGlzIHNwZWNpZmljYXRpb24gZGVzY3JpYmVzIGJvdGggYmluYXJpZXMg dGhhdCB1c2UgdGhlIFgzMiBhbmQgdGhlIExQNjQKK21vZGVsLgorCitcc3Vi c3Vic2VjdGlvbntGaWxlIENsYXNzfQorCitGb3IgXHhBUkNIIFgzMiBvYmpl Y3RzLCB0aGUgZmlsZSBjbGFzcyB2YWx1ZSBpbiBlX2lkZW50W0VJX0NMQVNT XSBtdXN0CitiZSBFTEZDTEFTUzMyLiBGb3IgXHhBUkNIIExQNjQgb2JqZWN0 cywgdGhlIGZpbGUgY2xhc3MgdmFsdWUgbXVzdCBiZQorRUxGQ0xBU1M2NC4K KworXHN1YnN1YnNlY3Rpb257RGF0YSBFbmNvZGluZ30KKworRm9yIHRoZSBk YXRhIGVuY29kaW5nIGluIGVfaWRlbnRbRUlfREFUQV0sIFx4QVJDSCBvYmpl Y3RzIHVzZQorRUxGREFUQTJMU0IuCisKK1xzdWJzdWJzZWN0aW9ue1Byb2Nl c3NvciBpZGVudGlmaWNhdGlvbn0KIAogUHJvY2Vzc29yIGlkZW50aWZpY2F0 aW9uIHJlc2lkZXMgaW4gdGhlIEVMRiBoZWFkZXJzCiBcdGV4dHR0e2VfbWFj aGluZX0gbWVtYmVyIGFuZCBtdXN0IGhhdmUgdGhlIHZhbHVlCkBAIC0zOTcs NiArNDAzLDggQEAgRmlndXJlIFxyZWZ7cmVsb2NfZmllbGRzfSBzaG93cyB0 aGUgYWxsb3dlZCByZWxvY2F0YWJsZSBmaWVsZHMuCiAgICAgICAgICAgICAg ICAgICB3aXRoIGFyYml0cmFyeSBieXRlIGFsaWdubWVudC4gIFRoZXNlIHZh bHVlcyB1c2UKICAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGJ5dGUgb3Jk ZXIgYXMgb3RoZXIgd29yZCB2YWx1ZXMgaW4gdGhlCiAgICAgICAgICAgICAg ICAgICBceEFSQ0ggYXJjaGl0ZWN0dXJlLiBcXAorXHRleHRpdHt3b3JkY2xh c3N9ICYgVGhpcyBzcGVjaWZpZXMgXHRleHRpdHt3b3JkNjR9IGZvciBMUDY0 IGFuZAorCQkgICAgIHNwZWNpZmllcyBcdGV4dGl0e3dvcmQzMn0gZm9yIFgz Mi4gXFwgCiBcZW5ke3RhYnVsYXIqfQogCiBUaGUgZm9sbG93aW5nIG5vdGF0 aW9ucyBhcmUgdXNlZCBmb3Igc3BlY2lmeWluZyByZWxvY2F0aW9ucyBpbiB0 YWJsZQpAQCAtNDIxLDEzICs0MjksMTkgQEAgVGhlIGZvbGxvd2luZyBub3Rh dGlvbnMgYXJlIHVzZWQgZm9yIHNwZWNpZnlpbmcgcmVsb2NhdGlvbnMgaW4g dGFibGUKICAgcmVsb2NhdGlvbiBlbnRyeS4KIFxlbmR7ZGVzY3JpcHRpb259 CiAKLVRoZSBceEFSQ0ggQUJJIGFyY2hpdGVjdHVyZXMgdXNlcyBvbmx5IFx0 ZXh0dHR7RWxmNjRfUmVsYX0gcmVsb2NhdGlvbgorVGhlIFx4QVJDSCBMUDY0 IEFCSSBhcmNoaXRlY3R1cmUgdXNlcyBvbmx5IFx0ZXh0dHR7RWxmNjRfUmVs YX0gcmVsb2NhdGlvbgogZW50cmllcyB3aXRoIGV4cGxpY2l0IGFkZGVuZHMu ICBUaGUgXGNvZGV7cl9hZGRlbmR9IG1lbWJlciBzZXJ2ZXMgYXMKIHRoZSBy ZWxvY2F0aW9uIGFkZGVuZC4KIAorVGhlIFx4QVJDSCBYMzIgQUJJIGFyY2hp dGVjdHVyZSB1c2VzIG9ubHkgXHRleHR0dHtFbGYzMl9SZWxhfSByZWxvY2F0 aW9uCitlbnRyaWVzIGluIHJlbG9jYXRhYmxlIGZpbGVzLiAgUmVsb2NhdGlv bnMgY29udGFpbmVkIHdpdGhpbiBleGVjdXRhYmxlCitmaWxlcyBvciBzaGFy ZWQgb2JqZWN0cyBtYXkgdXNlIGVpdGhlciBcdGV4dHR0e0VsZjMyX1JlbGF9 IHJlbG9jYXRpb24KK29yIFx0ZXh0dHR7RWxmMzJfUmVsfSByZWxvY2F0aW9u LgorCiBcYmVnaW57dGFibGV9W0hdCiBcSHJ1bGUKICAgXGNhcHRpb257UmVs b2NhdGlvbiBUeXBlc30KKyAgXHNtYWxsCiAgIFxsYWJlbHt0YWItcmVsb2Nh dGlvbnN9CiAgIFxiZWdpbntjZW50ZXJ9CiAgICAgXGJlZ2lue3RhYnVsYXJ9 W3Rde2x8cnxsfGx9CkBAIC00NDIsOSArNDU2LDkgQEAgdGhlIHJlbG9jYXRp b24gYWRkZW5kLgogICAgICAgXHRleHR0dHtSX1g4Nl82NF9HT1QzMn0gJiAz ICYgXHRleHRpdHt3b3JkMzJ9ICYgXHRleHR0dHtHICsgQX0gXFwKICAgICAg IFx0ZXh0dHR7Ul9YODZfNjRfUExUMzJ9ICYgNCAmIFx0ZXh0aXR7d29yZDMy fSAmIFx0ZXh0dHR7TCArIEEgLSBQfSBcXAogICAgICAgXHRleHR0dHtSX1g4 Nl82NF9DT1BZfSAgJiA1ICYgbm9uZSAgICAgICAgICAgICYgbm9uZSBcXAot ICAgICAgXHRleHR0dHtSX1g4Nl82NF9HTE9CX0RBVH0gJiA2ICYgXHRleHRp dHt3b3JkNjR9ICYgXHRleHR0dHtTfSBcXAotICAgICAgXHRleHR0dHtSX1g4 Nl82NF9KVU1QX1NMT1R9ICYgNyAmIFx0ZXh0aXR7d29yZDY0fSAmIFx0ZXh0 dHR7U30gXFwKLSAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfUkVMQVRJVkV9ICYg OCAmIFx0ZXh0aXR7d29yZDY0fSAmIFx0ZXh0dHR7QiArIEF9IFxcCisgICAg ICBcdGV4dHR0e1JfWDg2XzY0X0dMT0JfREFUfSAmIDYgJiBcdGV4dGl0e3dv cmRjbGFzc30gJiBcdGV4dHR0e1N9IFxcCisgICAgICBcdGV4dHR0e1JfWDg2 XzY0X0pVTVBfU0xPVH0gJiA3ICYgXHRleHRpdHt3b3JkY2xhc3N9ICYgXHRl eHR0dHtTfSBcXAorICAgICAgXHRleHR0dHtSX1g4Nl82NF9SRUxBVElWRX0g JiA4ICYgXHRleHRpdHt3b3JkY2xhc3N9ICYgXHRleHR0dHtCICsgQX0gXFwK ICAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfR09UUENSRUx9ICYgOSAmIFx0ZXh0 aXR7d29yZDMyfSAmIFx0ZXh0dHR7RyArIEdPVCArIEEgLSBQfSBcXAogICAg ICAgXHRleHR0dHtSX1g4Nl82NF8zMn0gICAgJiAxMCAmIFx0ZXh0aXR7d29y ZDMyfSAmIFx0ZXh0dHR7UyArIEF9IFxcCiAgICAgICBcdGV4dHR0e1JfWDg2 XzY0XzMyU30gICAmIDExICYgXHRleHRpdHt3b3JkMzJ9ICYgXHRleHR0dHtT ICsgQX0gXFwKQEAgLTQ2MCwxNyArNDc0LDIyIEBAIHRoZSByZWxvY2F0aW9u IGFkZGVuZC4KICAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfRFRQT0ZGMzJ9ICAg JiAyMSAmIFx0ZXh0aXR7d29yZDMyfSAmICBcXAogICAgICAgXHRleHR0dHtS X1g4Nl82NF9HT1RUUE9GRn0gICAmIDIyICYgXHRleHRpdHt3b3JkMzJ9ICYg IFxcCiAgICAgICBcdGV4dHR0e1JfWDg2XzY0X1RQT0ZGMzJ9ICAgJiAyMyAm IFx0ZXh0aXR7d29yZDMyfSAmICBcXAotICAgICAgXHRleHR0dHtSX1g4Nl82 NF9QQzY0fSAgJiAyNCAmIFx0ZXh0aXR7d29yZDY0fSAmIFx0ZXh0dHR7UyAr IEEgLSBQfSBcXAotICAgICAgXHRleHR0dHtSX1g4Nl82NF9HT1RPRkY2NH0g JiAyNSAmIFx0ZXh0aXR7d29yZDY0fSAmIFx0ZXh0dHR7UyArIEEgLSBHT1R9 IFxcCisgICAgICBcdGV4dHR0e1JfWDg2XzY0X1BDNjR9ICReXGRhZ2dlciQg JiAyNCAmIFx0ZXh0aXR7d29yZDY0fSAmIFx0ZXh0dHR7UyArIEEgLSBQfSBc XAorICAgICAgXHRleHR0dHtSX1g4Nl82NF9HT1RPRkY2NH0gJF5cZGFnZ2Vy JCAmIDI1ICYgXHRleHRpdHt3b3JkNjR9ICYgXHRleHR0dHtTICsgQSAtIEdP VH0gXFwKICAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfR09UUEMzMn0gJiAyNiAm IFx0ZXh0aXR7d29yZDMyfSAmIFx0ZXh0dHR7R09UICsgQSAtIFB9IFxcCiAg ICAgICBcdGV4dHR0e1JfWDg2XzY0X1NJWkUzMn0gJiAzMiAmIFx0ZXh0aXR7 d29yZDMyfSAmIFx0ZXh0dHR7WiArIEF9IFxcCi0gICAgICBcdGV4dHR0e1Jf WDg2XzY0X1NJWkU2NH0gJiAzMyAmIFx0ZXh0aXR7d29yZDY0fSAmIFx0ZXh0 dHR7WiArIEF9IFxcCisgICAgICBcdGV4dHR0e1JfWDg2XzY0X1NJWkU2NH0g JF5cZGFnZ2VyJCAmIDMzICYgXHRleHRpdHt3b3JkNjR9ICYgXHRleHR0dHta ICsgQX0gXFwKICAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfR09UUEMzMl9UTFNE RVNDfSAmIDM0ICYgXHRleHRpdHt3b3JkMzJ9ICYgIFxcCiAgICAgICBcdGV4 dHR0e1JfWDg2XzY0X1RMU0RFU0NfQ0FMTH0gJiAzNSAmIG5vbmUgJiAgXFwK ICAgICAgIFx0ZXh0dHR7Ul9YODZfNjRfVExTREVTQ30gJiAzNiAmIFx0ZXh0 aXR7d29yZDY0fSRcdGltZXMgMiQgJiBcXAotICAgICAgXHRleHR0dHtSX1g4 Nl82NF9JUkVMQVRJVkV9ICYgMzcgJiBcdGV4dGl0e3dvcmQ2NH0gJiBcdGV4 dHR0e2luZGlyZWN0IChCICsgQSl9XFwKKyAgICAgIFx0ZXh0dHR7Ul9YODZf NjRfSVJFTEFUSVZFfSAmIDM3ICYgXHRleHRpdHt3b3JkY2xhc3N9ICYgXHRl eHR0dHtpbmRpcmVjdCAoQiArIEEpfVxcCisgICAgICBcdGV4dHR0e1JfWDg2 XzY0X1JFTEFUSVZFNjR9ICRee1xkYWdnZXJcZGFnZ2VyfSQgJiAzOCAmIFx0 ZXh0aXR7d29yZDY0fSAmIFx0ZXh0dHR7QiArIEF9IFxcCiAlICAgICAgXHRl eHR0dHtSX1g4Nl82NF9HT1Q2NH0gJiAxNiAmIFx0ZXh0aXR7d29yZDY0fSAm IFx0ZXh0dHR7RyArIEF9IFxcCiAlICAgICAgXHRleHR0dHtSX1g4Nl82NF9Q TFQ2NH0gJiAxNyAmIFx0ZXh0aXR7d29yZDY0fSAmIFx0ZXh0dHR7TCArIEEg LSBQfSBcXAorICAgICBcY2xpbmV7MS00fQorICAgIFxtdWx0aWNvbHVtbnsz fXtsfXtcc21hbGwgJF5cZGFnZ2VyJCBUaGlzIHJlbG9jYXRpb24gaXMgdXNl ZCBvbmx5IGZvciBMUDY0Ln1cXAorICAgIFxtdWx0aWNvbHVtbnszfXtsfXtc c21hbGwgJF57XGRhZ2dlclxkYWdnZXJ9JCBUaGlzIHJlbG9jYXRpb24gb25s eQorICAgIGFwcGVhcnMgaW4gWDMyIGV4ZWN1dGFibGUgZmlsZXMgb3Igc2hh cmVkIG9iamVjdHMufVxcCiAgICAgXGVuZHt0YWJ1bGFyfQogICBcZW5ke2Nl bnRlcn0KIFxIcnVsZQpkaWZmIC0tZ2l0IGEveDMyLnRleCBiL3gzMi50ZXgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQxOWU1Mgot LS0gL2Rldi9udWxsCisrKyBiL3gzMi50ZXgKQEAgLTAsMCArMSw0NDIgQEAK K1xjaGFwdGVye1gzMiBQcm9ncmFtbWluZyBNb2RlbFxsYWJlbHt4MzJ9fQor Citcc2VjdGlvbntQYXJhbWV0ZXIgUGFzc2luZ30KK1doZW4gYSB2YWx1ZSBv ZiBwb2ludGVyIHR5cGUgaXMgcmV0dXJuZWQgb3IgcGFzc2VkIGluIGEgcmVn aXN0ZXIsIGJpdHMgMzIKK3RvIDYzIHNoYWxsIGJlIHplcm8uCisKK1xzZWN0 aW9ue0FkZHJlc3MgU3BhY2V9CisKK1x4QVJDSCBYMzIgYmluYXJpZXMgcmVz aWRlIGluIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSA2NC1iaXQgdmlydHVh bAorYWRkcmVzcyBzcGFjZSBhbmQgYWxsIGFkZHJlc3NlcyBhcmUgMzIgYml0 cyBpbiBzaXplLiAgVGhleSBzaG91bGQgY29uZm9ybQordG8gXHRleHRpbmRl eHtzbWFsbCBjb2RlIG1vZGVsfSBvcgorXHRleHRpbmRleHtzbWFsbCBwb3Np dGlvbiBpbmRlcGVuZGVudCBjb2RlIG1vZGVsfSAoXHRleHRpbmRleHtQSUN9 KQorZGVzY3JpYmVkIGluIFNlY3Rpb24gXHJlZnttb2RlbHN9LgorCitcc2Vj dGlvbntUaHJlYWQtTG9jYWwgU3RvcmFnZSBTdXBwb3J0fQorCitYMzIgVGhy ZWFkLUxvY2FsIFN0b3JhZ2UgKFRMUykgc3VwcG9ydCBpcyBiYXNlZCBvbiBM UDY0IFRMUworaW1wbGVtZW50YXRpb24gd2l0aCBzb21lIG1vZGlmY2F0aW9u cy4KKworXHN1YnNlY3Rpb257R2xvYmFsIFRocmVhZC1Mb2NhbCBWYXJpYWJs ZX0KKworRm9yIGEgZ2xvYmFsIHRocmVhZC1sb2NhbCB2YXJpYWJsZSB4Ogor CitcYmVnaW57dmVyYmF0aW19CitleHRlcm4gX190aHJlYWQgaW50IHg7Citc ZW5ke3ZlcmJhdGltfQorCitcYmVnaW57ZGVzY3JpcHRpb259CitcaXRlbVtc dGV4dGluZGV4e0dlbmVyYWwgRHluYW1pYyBNb2RlbH1dCisgIExvYWQgYWRk cmVzcyBvZiBcY29kZXt4fSBpbnRvIFxyZWd7cmF4fQorCitcYmVnaW57dGFi bGV9W0hdCitcSHJ1bGUKK1xjYXB0aW9ue0dlbmVyYWwgRHluYW1pYyBNb2Rl bCBDb2RlIFNlcXVlbmNlfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2Rl eworXGJlZ2lue3RhYnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317 Y317TFA2NH0gJiBcbXVsdGljb2x1bW57M317Y317WDMyfSBcXAorXGhsaW5l CisweDAwICYgLmJ5dGUgJiAweDY2CQkJJiAweDAwICYgbGVhcSAgJiB4QHRs c2dkKFwlcmlwKSxcJXJkaSBcXAorMHgwMSAmIGxlYXEgICYgeEB0bHNnZChc JXJpcCksXCVyZGkJJiAweDA3ICYgLndvcmQgJiAweDY2NjYgXFwKKzB4MDgg JiAud29yZCAmIDB4NjY2NgkJCSYgMHgwOSAmIHJleDY0ICYgXFwKKzB4MGEg JiByZXg2NCAmCQkJCSYgMHgwYSAmIGNhbGwgICYgXF9cX3Rsc1xfZ2V0XF9h ZGRyQHBsdCBcXAorMHgwYiAmIGNhbGwgICYgXF9cX3Rsc1xfZ2V0XF9hZGRy QHBsdAkmICAgICAgJiAgICAgICAmIFxcCitcZW5ke3RhYnVsYXJ9Cit9Citc ZW5ke2NlbnRlcn0KK1xIcnVsZQorXGVuZHt0YWJsZX0KKworXGl0ZW1bXHRl eHRpbmRleHtJbml0aWFsIEV4ZWMgTW9kZWx9XQorICBMb2FkIGFkZHJlc3Mg b2YgXGNvZGV7eH0gaW50byBccmVne3JheH0KKworXGJlZ2lue3RhYmxlfVtI XQorXEhydWxlCitcY2FwdGlvbntJbml0aWFsIEV4ZWMgTW9kZWwgQ29kZSBT ZXF1ZW5jZX0KK1xiZWdpbntjZW50ZXJ9Citcc21hbGxcY29kZXsKK1xiZWdp bnt0YWJ1bGFyfXtsbGx8bGxsfQorXG11bHRpY29sdW1uezN9e2N9e0xQNjR9 ICYgXG11bHRpY29sdW1uezN9e2N9e1gzMn0gXFwKK1xobGluZQorMHgwMSAm IG1vdnEgJiBcJWZzOjAsXCVyYXgJCSYgMHgwMSAmIG1vdmwgJiBcJWZzOjAs XCVlYXggXFwKKzB4MDkgJiBhZGRxICYgeEBnb3R0cG9mZihcJXJpcCksXCVy YXgJJiAweDA4ICYgYWRkbCAmIHhAZ290dHBvZmYoXCVyaXApLFwlZWF4IFxc CitcZW5ke3RhYnVsYXJ9Cit9CitcZW5ke2NlbnRlcn0KK1xIcnVsZQorXGVu ZHt0YWJsZX0KKworXGl0ZW1bXHRleHRpbmRleHtJbml0aWFsIEV4ZWMgTW9k ZWwsIElJfV0KKyAgTG9hZCB2YWx1ZSBvZiBcY29kZXt4fSBpbnRvIFxyZWd7 ZWRpfS4gIFxjb2Rle1wlZnM6KFwlZWF4KX0gbWVtb3J5CisgIG9wZXJhbmQg Y2FuJ3QgYmUgdXNlZCBmb3IgWDMyIHNpbmNlIGl0cyBlZmZlY3RpdmUgYWRk cmVzcyBpcyB0aGUgYmFzZQorICBhZGRyZXNzIG9mIFxjb2Rle1wlZnN9ICsg dmFsdWUgb2YgXHJlZ3tlYXh9IHplcm8tZXh0ZW5kZWQgdG8gYSA2NC1iaXQK KyAgcmVzdWx0LCB3aGljaCBpcyBpbmNvcnJlY3Qgd2l0aCBuZWdhdGl2ZSB2 YWx1ZSBpbiBccmVne2VheH0uCisKK1xiZWdpbnt0YWJsZX1bSF0KK1xIcnVs ZQorXGNhcHRpb257SW5pdGlhbCBFeGVjIE1vZGVsIENvZGUgU2VxdWVuY2Us IElJfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJlZ2lue3Rh YnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317TFA2NH0gJiBc bXVsdGljb2x1bW57M317Y317WDMyfSBcXAorXGhsaW5lCisweDAxICYgbW92 cSAmIHhAZ290dHBvZmYoXCVyaXApLFwlcmF4CSYgMHgwMSAmIG1vdnEgJiB4 QGdvdHRwb2ZmKFwlcmlwKSxcJXJheCBcXAorMHgwNyAmIG1vdmwgJiBcJWZz OihcJXJheCksXCVlZGkJJiAweDA3ICYgbW92bCAmIFwlZnM6KFwlcmF4KSxc JWVkaSBcXAorXGVuZHt0YWJ1bGFyfQorfQorXGVuZHtjZW50ZXJ9CitcSHJ1 bGUKK1xlbmR7dGFibGV9CisKK1xlbmR7ZGVzY3JpcHRpb259CisKK1xzdWJz ZWN0aW9ue1N0YXRpYyBUaHJlYWQtTG9jYWwgVmFyaWFibGV9CisKK0ZvciBh IHN0YXRpYyB0aHJlYWQtbG9jYWwgdmFyaWFibGUgeDoKKworXGJlZ2lue3Zl cmJhdGltfQorc3RhdGljIF9fdGhyZWFkIGludCB4OworXGVuZHt2ZXJiYXRp bX0KKworXGJlZ2lue2Rlc2NyaXB0aW9ufQorXGl0ZW1bXHRleHRpbmRleHtM b2NhbCBEeW5hbWljIE1vZGVsfV0KKyAgTG9hZCBhZGRyZXNzIG9mIFxjb2Rl e3h9IGludG8gXHJlZ3tyYXh9CisKK1xiZWdpbnt0YWJsZX1bSF0KK1xIcnVs ZQorXGNhcHRpb257TG9jYWwgRHluYW1pYyBNb2RlbCBDb2RlIFNlcXVlbmNl IFdpdGggTGVhfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJl Z2lue3RhYnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317TFA2 NH0gJiBcbXVsdGljb2x1bW57M317Y317WDMyfSBcXAorXGhsaW5lCisweDAw ICYgbGVhcSAgJiB4QHRsc2xkKFwlcmlwKSxcJXJkaQkmIDB4MDAgJiBsZWFx ICYgeEB0bHNsZChcJXJpcCksXCVyZGlcXAorMHgwNyAmIGNhbGwgICYgXF9c X3Rsc1xfZ2V0XF9hZGRyQHBsdAkmIDB4MDcgJiBjYWxsICYgXF9cX3Rsc1xf Z2V0XF9hZGRyQHBsdFxcCisweDBjICYgbGVhcSAgJiB4QGR0cG9mZihcJXJh eCksXCVyYXgJJiAweDBjICYgbGVhbCAmIHhAZHRwb2ZmKFwlcmF4KSxcJWVh eFxcCitcZW5ke3RhYnVsYXJ9Cit9CitcZW5ke2NlbnRlcn0KK1xIcnVsZQor XGVuZHt0YWJsZX0KKworb3IKKworXGJlZ2lue3RhYmxlfVtIXQorXEhydWxl CitcY2FwdGlvbntMb2NhbCBEeW5hbWljIE1vZGVsIENvZGUgU2VxdWVuY2Ug V2l0aCBBZGR9CitcYmVnaW57Y2VudGVyfQorXHNtYWxsXGNvZGV7CitcYmVn aW57dGFidWxhcn17bGxsfGxsbH0KK1xtdWx0aWNvbHVtbnszfXtjfXtMUDY0 fSAmIFxtdWx0aWNvbHVtbnszfXtjfXtYMzJ9IFxcCitcaGxpbmUKKzB4MDAg JiBsZWFxICAmIHhAdGxzbGQoXCVyaXApLFwlcmRpCSYgMHgwMCAmIGxlYXEg JiB4QHRsc2xkKFwlcmlwKSxcJXJkaVxcCisweDA3ICYgY2FsbCAgJiBcX1xf dGxzXF9nZXRcX2FkZHJAcGx0CSYgMHgwNyAmIGNhbGwgJiBcX1xfdGxzXF9n ZXRcX2FkZHJAcGx0XFwKKzB4MGMgJiBhZGRxICAmIFwkeEBkdHBvZmYsXCVy YXgJCSYgMHgwYyAmIGFkZGwgJiBcJHhAZHRwb2ZmLFwlZWF4XFwKK1xlbmR7 dGFidWxhcn0KK30KK1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxl fQorCitcaXRlbVtcdGV4dGluZGV4e0xvY2FsIER5bmFtaWMgTW9kZWwsIElJ fV0KKyAgTG9hZCB2YWx1ZSBvZiBcY29kZXt4fSBpbnRvIFxyZWd7ZWRpfQor CitcYmVnaW57dGFibGV9W0hdCitcSHJ1bGUKK1xjYXB0aW9ue0xvY2FsIER5 bmFtaWMgTW9kZWwgQ29kZSBTZXF1ZW5jZSwgSUl9CitcYmVnaW57Y2VudGVy fQorXHNtYWxsXGNvZGV7CitcYmVnaW57dGFidWxhcn17bGxsfGxsbH0KK1xt dWx0aWNvbHVtbnszfXtjfXtMUDY0fSAmIFxtdWx0aWNvbHVtbnszfXtjfXtY MzJ9IFxcCitcaGxpbmUKKzB4MDEgJiBtb3ZxICYgXCVmczowLFwlcmF4CQkm IDB4MDEgJiBtb3ZsICYgXCVmczowLFwlZWF4IFxcCisweDA5ICYgbW92bCAm IHhAZHRwb2ZmKFwlcmF4KSxcJWVkaQkmIDB4MDggJiBtb3ZsICYgeEBkdHBv ZmYoXCVyYXgpLFwlZWRpIFxcCitcZW5ke3RhYnVsYXJ9Cit9CitcZW5ke2Nl bnRlcn0KK1xIcnVsZQorXGVuZHt0YWJsZX0KKworXGl0ZW1bXHRleHRpbmRl eHtMb2NhbCBFeGVjIE1vZGVsfV0KKyAgTG9hZCBhZGRyZXNzIG9mIFxjb2Rl e3h9IGludG8gXHJlZ3tyYXh9CisKK1xiZWdpbnt0YWJsZX1bSF0KK1xIcnVs ZQorXGNhcHRpb257TG9jYWwgRXhlYyBNb2RlbCBDb2RlIFNlcXVlbmNlIFdp dGggTGVhfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJlZ2lu e3RhYnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317TFA2NH0g JiBcbXVsdGljb2x1bW57M317Y317WDMyfSBcXAorXGhsaW5lCisweDAxICYg bW92cSAmIFwlZnM6MCxcJXJheAkJJiAweDAxICYgbW92bCAmIFwlZnM6MCxc JWVheCBcXAorMHgwOSAmIGxlYXEgJiB4QHRwb2ZmKFwlcmF4KSxcJXJheAkm IDB4MDggJiBsZWFsICYgeEB0cG9mZihcJXJheCksXCVlYXggXFwKK1xlbmR7 dGFidWxhcn0KK30KK1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxl fQorCitvcgorCitcYmVnaW57dGFibGV9W0hdCitcSHJ1bGUKK1xjYXB0aW9u e0xvY2FsIEV4ZWMgTW9kZWwgQ29kZSBTZXF1ZW5jZSBXaXRoIEFkZH0KK1xi ZWdpbntjZW50ZXJ9Citcc21hbGxcY29kZXsKK1xiZWdpbnt0YWJ1bGFyfXts bGx8bGxsfQorXG11bHRpY29sdW1uezN9e2N9e0xQNjR9ICYgXG11bHRpY29s dW1uezN9e2N9e1gzMn0gXFwKK1xobGluZQorMHgwMSAmIG1vdnEgJiBcJWZz OjAsXCVyYXgJCSYgMHgwMSAmIG1vdmwgJiBcJWZzOjAsXCVlYXggXFwKKzB4 MDkgJiBhZGRxICYgXCR4QHRwb2ZmLFwlcmF4CQkmIDB4MDggJiBhZGRsICYg XCR4QHRwb2ZmLFwlZWF4IFxcCitcZW5ke3RhYnVsYXJ9Cit9CitcZW5ke2Nl bnRlcn0KK1xIcnVsZQorXGVuZHt0YWJsZX0KKworXGl0ZW1bXHRleHRpbmRl eHtMb2NhbCBFeGVjIE1vZGVsLCBJSX1dCisgIExvYWQgdmFsdWUgb2YgXGNv ZGV7eH0gaW50byBccmVne2VkaX0KKworXGJlZ2lue3RhYmxlfVtIXQorXEhy dWxlCitcY2FwdGlvbntMb2NhbCBFeGVjIE1vZGVsIENvZGUgU2VxdWVuY2Us IElJfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJlZ2lue3Rh YnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317TFA2NH0gJiBc bXVsdGljb2x1bW57M317Y317WDMyfSBcXAorXGhsaW5lCisweDAxICYgbW92 cSAmIFwlZnM6MCxcJXJheAkJJiAweDAxICYgbW92bCAmIFwlZnM6MCxcJWVh eCBcXAorMHgwOSAmIG1vdmwgJiB4QHRwb2ZmKFwlcmF4KSxcJWVkaQkmIDB4 MDggJiBtb3ZsICYgeEB0cG9mZihcJXJheCksXCVlZGkgXFwKK1xlbmR7dGFi dWxhcn0KK30KK1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxlfQor CitcaXRlbVtcdGV4dGluZGV4e0xvY2FsIEV4ZWMgTW9kZWwsIElJSX1dCisg IExvYWQgdmFsdWUgb2YgXGNvZGV7eH0gaW50byBccmVne2VkaX0KKworXGJl Z2lue3RhYmxlfVtIXQorXEhydWxlCitcY2FwdGlvbntMb2NhbCBFeGVjIE1v ZGVsIENvZGUgU2VxdWVuY2UsIElJSX0KK1xiZWdpbntjZW50ZXJ9Citcc21h bGxcY29kZXsKK1xiZWdpbnt0YWJ1bGFyfXtsbGx8bGxsfQorXG11bHRpY29s dW1uezN9e2N9e0xQNjR9ICYgXG11bHRpY29sdW1uezN9e2N9e1gzMn0gXFwK K1xobGluZQorMHgwMCAmIG1vdmwgJiBcJWZzOnhAdHBvZmYsXCVlZGkJJiAw eDAwICYgbW92bCAmIFwlZnM6eEB0cG9mZixcJWVkaSBcXAorXGVuZHt0YWJ1 bGFyfQorfQorXGVuZHtjZW50ZXJ9CitcSHJ1bGUKK1xlbmR7dGFibGV9CisK K1xlbmR7ZGVzY3JpcHRpb259CisKK1xzdWJzZWN0aW9ue1RMUyBMaW5rZXIg T3B0aW1pemF0aW9ufQorCitcYmVnaW57ZGVzY3JpcHRpb259CitcaXRlbVtc dGV4dGluZGV4e0dlbmVyYWwgRHluYW1pYyBUbyBJbml0aWFsIEV4ZWN9XQor ICBMb2FkIGFkZHJlc3Mgb2YgXGNvZGV7eH0gaW50byBccmVne3JheH0KKwor XGJlZ2lue3RhYmxlfVtIXQorXEhydWxlCitcY2FwdGlvbntHRCAtPiBJRSBD b2RlIFRyYW5zaXRpb259CitcYmVnaW57Y2VudGVyfQorXHNtYWxsXGNvZGV7 CitcYmVnaW57dGFidWxhcn17bGxsfGxsbH0KK1xtdWx0aWNvbHVtbnszfXtj fXtHRH0gJiBcbXVsdGljb2x1bW57M317Y317SUV9IFxcCitcaGxpbmUKKzB4 MDAgJiBsZWFxICAmIHhAdGxzZ2QoXCVyaXApLFwlcmRpCSYgMHgwMCAmIG1v dmwgICYgXCVmczowLCBcJWVheCBcXAorMHgwNyAmIC53b3JkICYgMHg2NjY2 CQkJJiAweDA4ICYgYWRkcSAgJiB4QGdvdHRwb2ZmKFwlcmlwKSxcJXJheFxc CisweDA5ICYgcmV4NjQgJgkJCQkmICAgICAgJiAgICAgICAmIFxcCisweDBh ICYgY2FsbCAgJiBcX1xfdGxzXF9nZXRcX2FkZHJAcGx0CSYgICAgICAmICAg ICAgICYgXFwKK1xlbmR7dGFidWxhcn0KK30KK1xlbmR7Y2VudGVyfQorXEhy dWxlCitcZW5ke3RhYmxlfQorCitcYmVnaW57dGFibGV9W0hdCitcSHJ1bGUK K1xjYXB0aW9ue0dEIC0+IExFIENvZGUgVHJhbnNpdGlvbn0KK1xiZWdpbntj ZW50ZXJ9Citcc21hbGxcY29kZXsKK1xiZWdpbnt0YWJ1bGFyfXtsbGx8bGxs fQorXG11bHRpY29sdW1uezN9e2N9e0dEfSAmIFxtdWx0aWNvbHVtbnszfXtj fXtMRX0gXFwKK1xobGluZQorMHgwMCAmIGxlYXEgICYgeEB0bHNnZChcJXJp cCksXCVyZGkJJiAweDAwICYgbW92bCAgJiBcJWZzOjAsIFwlZWF4IFxcCisw eDA3ICYgLndvcmQgJiAweDY2NjYJCQkmIDB4MDggJiBsZWFsICAmIHhAdHBv ZmYoXCVyYXgpLFwlZWF4XFwKKzB4MDkgJiByZXg2NCAmCQkJCSYgICAgICAm ICAgICAgICYgXFwKKzB4MGEgJiBjYWxsICAmIFxfXF90bHNcX2dldFxfYWRk ckBwbHQJJiAgICAgICYgICAgICAgJiBcXAorXGVuZHt0YWJ1bGFyfQorfQor XGVuZHtjZW50ZXJ9CitcSHJ1bGUKK1xlbmR7dGFibGV9CisKK1xpdGVtW1x0 ZXh0aW5kZXh7SW5pdGlhbCBFeGVjIFRvIExvY2FsIEV4ZWN9XQorICBMb2Fk IGFkZHJlc3Mgb2YgXGNvZGV7eH0gaW50byBccmVne3JheH0KKworXGJlZ2lu e3RhYmxlfVtIXQorXEhydWxlCitcY2FwdGlvbntJRSAtPiBMRSBDb2RlIFRy YW5zaXRpb24gV2l0aCBMZWF9CitcYmVnaW57Y2VudGVyfQorXHNtYWxsXGNv ZGV7CitcYmVnaW57dGFidWxhcn17bGxsfGxsbH0KK1xtdWx0aWNvbHVtbnsz fXtjfXtJRX0gJiBcbXVsdGljb2x1bW57M317Y317TEV9IFxcCitcaGxpbmUK KzB4MDEgJiBtb3ZsICYgXCVmczowLFwlZWF4CQkmIDB4MDEgJiBtb3ZsICYg XCVmczowLFwlZWF4IFxcCisweDA4ICYgYWRkbCAmIHhAZ290dHBvZmYoXCVy aXApLFwlZWF4CSYgMHgwOCAmIGxlYWwgJiB4QHRwb2ZmKFwlcmF4KSxcJWVh eCBcXAorXGVuZHt0YWJ1bGFyfQorfQorXGVuZHtjZW50ZXJ9CitcSHJ1bGUK K1xlbmR7dGFibGV9CisKK29yCisKK1xiZWdpbnt0YWJsZX1bSF0KK1xIcnVs ZQorXGNhcHRpb257SUUgLT4gTEUgQ29kZSBUcmFuc2l0aW9uIFdpdGggQWRk fQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJlZ2lue3RhYnVs YXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317SUV9ICYgXG11bHRp Y29sdW1uezN9e2N9e0xFfSBcXAorXGhsaW5lCisweDAxICYgbW92bCAmIFwl ZnM6MCxcJWVheAkJJiAweDAxICYgbW92bCAmIFwlZnM6MCxcJWVheCBcXAor MHgwOCAmIGFkZGwgJiBcJHhAZ290dHBvZmYoXCVyaXApLFwlZWF4CSYgMHgw OCAmIGFkZGwgJiBcJHhAdHBvZmYsXCVlYXggXFwKK1xlbmR7dGFidWxhcn0K K30KK1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxlfQorCitcaXRl bVtcdGV4dGluZGV4e0luaXRpYWwgRXhlYyBUbyBMb2NhbCBFeGVjLCBJSX1d CisgIExvYWQgdmFsdWUgb2YgXGNvZGV7eH0gaW50byBccmVne2VkaX0uCisK K1xiZWdpbnt0YWJsZX1bSF0KK1xIcnVsZQorXGNhcHRpb257SUUgLT4gTEUg Q29kZSBUcmFuc2l0aW9uLCBJSX0KK1xiZWdpbntjZW50ZXJ9Citcc21hbGxc Y29kZXsKK1xiZWdpbnt0YWJ1bGFyfXtsbGx8bGxsfQorXG11bHRpY29sdW1u ezN9e2N9e0lFfSAmIFxtdWx0aWNvbHVtbnszfXtjfXtMRX0gXFwKK1xobGlu ZQorMHgwMSAmIG1vdnEgJiB4QGdvdHRwb2ZmKFwlcmlwKSxcJXJheAkmIDB4 MDEgJiBtb3ZxICYgeEB0cG9mZixcJXJheCBcXAorMHgwNyAmIG1vdmwgJiBc JWZzOihcJXJheCksXCVlZGkJJiAweDA3ICYgbW92bCAmIFwlZnM6KFwlcmF4 KSxcJWVkaSBcXAorXGVuZHt0YWJ1bGFyfQorfQorXGVuZHtjZW50ZXJ9Citc SHJ1bGUKK1xlbmR7dGFibGV9CisKK1xpdGVtW1x0ZXh0aW5kZXh7TG9jYWwg RHluYW1pYyB0byBMb2NhbCBFeGVjfV0KKyAgTG9hZCBhZGRyZXNzIG9mIFxj b2Rle3h9IGludG8gXHJlZ3tyYXh9CisKK1xiZWdpbnt0YWJsZX1bSF0KK1xI cnVsZQorXGNhcHRpb257TEQgLT4gTEUgQ29kZSBUcmFuc2l0aW9uIFdpdGgg TGVhfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2RleworXGJlZ2lue3Rh YnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317Y317TER9ICYgXG11 bHRpY29sdW1uezN9e2N9e0xFfSBcXAorXGhsaW5lCisweDAwICYgbGVhcSAg JiB4QHRsc2xkKFwlcmlwKSxcJXJkaQkmIDB4MDAgJiBub3BsICYgMHgwKFwl cmF4KSBcXAorMHgwNyAmIGNhbGwgICYgXF9cX3Rsc1xfZ2V0XF9hZGRyQHBs dAkmIDB4MDQgJiBtb3ZsICYgXCVmczowLFwlZWF4XFwKKzB4MGMgJiBsZWFs ICAmIHhAZHRwb2ZmKFwlcmF4KSxcJWVheAkmIDB4MGMgJiBsZWFsICYgeEB0 cG9mZihcJXJheCksXCVlYXhcXAorXGVuZHt0YWJ1bGFyfQorfQorXGVuZHtj ZW50ZXJ9CitcSHJ1bGUKK1xlbmR7dGFibGV9CisKK29yCisKK1xiZWdpbnt0 YWJsZX1bSF0KK1xIcnVsZQorXGNhcHRpb257TEQgLT4gTEUgQ29kZSBUcmFu c2l0aW9uIFdpdGggQWRkfQorXGJlZ2lue2NlbnRlcn0KK1xzbWFsbFxjb2Rl eworXGJlZ2lue3RhYnVsYXJ9e2xsbHxsbGx9CitcbXVsdGljb2x1bW57M317 Y317TER9ICYgXG11bHRpY29sdW1uezN9e2N9e0xFfSBcXAorXGhsaW5lCisw eDAwICYgbGVhcSAgJiB4QHRsc2xkKFwlcmlwKSxcJXJkaQkmIDB4MDAgJiBu b3BsICYgMHgwKFwlcmF4KSBcXAorMHgwNyAmIGNhbGwgICYgXF9cX3Rsc1xf Z2V0XF9hZGRyQHBsdAkmIDB4MDQgJiBtb3ZsICYgXCVmczowLFwlZWF4XFwK KzB4MGMgJiBhZGRxICAmIFwkeEBkdHBvZmYsXCVyYXgJCSYgMHgwYyAmIGFk ZGwgJiBcJHhAdHBvZmYsXCVlYXhcXAorXGVuZHt0YWJ1bGFyfQorfQorXGVu ZHtjZW50ZXJ9CitcSHJ1bGUKK1xlbmR7dGFibGV9CisKK1xpdGVtW1x0ZXh0 aW5kZXh7TG9jYWwgRHluYW1pYyBUbyBMb2NhbCBFeGVjLCBJSX1dCisgIExv YWQgdmFsdWUgb2YgXGNvZGV7eH0gaW50byBccmVne2VkaX0uCisKK1xiZWdp bnt0YWJsZX1bSF0KK1xIcnVsZQorXGNhcHRpb257TEQgLT4gTEUgQ29kZSBU cmFuc2l0aW9uLCBJSX0KK1xiZWdpbntjZW50ZXJ9Citcc21hbGxcY29kZXsK K1xiZWdpbnt0YWJ1bGFyfXtsbGx8bGxsfQorXG11bHRpY29sdW1uezN9e2N9 e0xEfSAmIFxtdWx0aWNvbHVtbnszfXtjfXtMRX0gXFwKKzB4MDAgJiBsZWFx ICAmIHhAdGxzbGQoXCVyaXApLFwlcmRpCSYgMHgwMCAmIG5vcGwgJiAweDAo XCVyYXgpIFxcCisweDA3ICYgY2FsbCAgJiBcX1xfdGxzXF9nZXRcX2FkZHJA cGx0CSYgMHgwNCAmIG1vdmwgJiBcJWZzOjAsXCVlYXhcXAorMHgwYyAmIG1v dmwgICYgeEBkdHBvZmYoXCVyYXgpLFwlZWF4CSYgMHgwYyAmIG1vdmwgJiB4 QHRwb2ZmKFwlcmF4KSxcJWVheFxcCitcaGxpbmUKK1xlbmR7dGFidWxhcn0K K30KK1xlbmR7Y2VudGVyfQorXEhydWxlCitcZW5ke3RhYmxlfQorCitcZW5k e2Rlc2NyaXB0aW9ufQorCitcc2VjdGlvbntLZXJuZWwgU3VwcG9ydH0KK0tl cm5lbCBzaG91bGQgbGltaXQgc3RhY2sgYW5kIGFkZHJlc3NlcyByZXR1cm5l ZCBmcm9tIHN5c3RlbSBjYWxscworYmV3dGVlbiAkMHgwMDAwMDAwMCQgdG8g JDB4ZmZmZmZmZmYkLgorCitcc2VjdGlvbntDb2RpbmcgRXhhbXBsZXN9CisK K0FsdGhvdWdoIFgzMiBiaW5hcmllcyBydW4gaW4gdGhlIDY0LWJpdCBtb2Rl LCBub3QgYWxsIDY0LWJpdCBpbnN0cnVjdGlvbnMKK2FyZSBzdXBwb3J0ZWQu IFRoaXMgc2VjdGlvbiBkaXNjdXNzZXMgZXhhbXBsZSBjb2RlIHNlcXVlbmNl cyBmb3IKK2Z1bmRhbWVudGFsIG9wZXJhdGlvbnMgd2hpY2ggYXJlIGRpZmZl cmVudCBmcm9tIHRoZSA2NC1iaXQgbW9kZS4KKworXHN1YnNlY3Rpb257SW5k aXJlY3QgQnJhbmNofQorCitTaW5jZSBpbmRpcmVjdCBicmFuY2ggdmlhIG1l bW9yeSBsb2FkcyBhIDY0LWJpdCBhZGRyZXNzIGF0IHRoZSBtZW1vcnkKK2xv Y2F0aW9uLCBpdCBpcyBub3Qgc3VwcG9ydGVkIGluIFgzMi4gIEluZGlyZWN0 IGJyYW5jaCB2aWEgcmVnaXN0ZXIKK3Nob3VsZCBiZSB1c2VkIGluc3RlYWQu ICBUaGUgMzItYml0IGFkZHJlc3MgZnJvbSBtZW1vcnkgaXMgbG9hZGVkIGlu dG8KK3RoZSBsb3dlciAzMiBiaXRzIG9mIGEgcmVnaXN0ZXIsIHdoaWNoIHdp bGwgYXV0b21hdGljYWxseSB6ZXJvLWV4dGVuZAordGhlIHVwcGVyIDMyIGJp dHMgb2YgdGhlIHJlZ2lzdGVyLiAgVGhlbiB0aGUgaW5kaXJlY3QgY2FsbCBj YW4gYmUKK3BlcmZvcm1lZCB2aWEgdGhlIDY0LWJpdCByZWdpc3Rlci4gCisK K1xiZWdpbnt0YWJsZX1bSF0KK1xIcnVsZQorXGNhcHRpb257SW5kaXJlY3Qg QnJhbmNofQorXGJlZ2lue2NlbnRlcn0KK1xjb2RleworXGJlZ2lue3RhYnVs YXJ9e2xsfGxsfQorXG11bHRpY29sdW1uezJ9e2N9e0xQNjR9ICYgXG11bHRp Y29sdW1uezJ9e2N9e1gzMn0gXFwKK1xobGluZQorY2FsbCAmICpcJXJheCAg ICAgICAgICAmIGNhbGwgJiAqXCVyYXggXFwKK1xobGluZQorY2FsbCAmICpm dW5jXF9wKFwlcmlwKSAmIG1vdmwgJiBmdW5jXF9wKFwlcmlwKSwgXCVlYXgg XFwKKyAgICAgJiAgICAgICAgICAgICAgICAgJiBjYWxsICYgKlwlcmF4IFxc CitcaGxpbmUKK2NhbGwgJiAqZnVuY1xfcCAgICAgICAgJiBtb3ZsICYgZnVu Y1xfcCwgXCVlYXggXFwKKyAgICAgJiAgICAgICAgICAgICAgICAgJiBjYWxs ICYgKlwlcmF4IFxcCitcaGxpbmUKK2ptcCAgJiAqXCVyYXggICAgICAgICAg JiBqbXAgICYgKlwlcmF4IFxcCitcaGxpbmUKK2ptcCAgJiAqZnVuY1xfcChc JXJpcCkgJiBtb3ZsICYgZnVuY1xfcChcJXJpcCksIFwlZWF4IFxcCisgICAg ICYgICAgICAgICAgICAgICAgICYgam1wICAmICpcJXJheCBcXAorXGhsaW5l CitqbXAgICYgKmZ1bmNcX3AgICAgICAgICYgbW92bCAmIGZ1bmNcX3AsIFwl ZWF4IFxcCisgICAgICYgICAgICAgICAgICAgICAgICYgam1wICAmICpcJXJh eCBcXAorXGVuZHt0YWJ1bGFyfQorfQorXGVuZHtjZW50ZXJ9CitcSHJ1bGUK K1xlbmR7dGFibGV9Cg== --20cf3074b632cbd99704c00273e9--