Return-Path: Delivered-To: new-httpd-archive@hyperreal.org Received: (qmail 10281 invoked by uid 6000); 9 Oct 1999 23:44:16 -0000 Received: (qmail 10220 invoked by uid 24); 9 Oct 1999 23:44:01 -0000 Received: (qmail 440 invoked from network); 9 Oct 1999 17:16:28 -0000 Received: from fwns2d.raleigh.ibm.com (HELO fwns2.raleigh.ibm.com) (204.146.167.236) by taz.hyperreal.org with SMTP; 9 Oct 1999 17:16:28 -0000 Received: from rtpmail02.raleigh.ibm.com (rtpmail02.raleigh.ibm.com [9.37.172.48]) by fwns2.raleigh.ibm.com (8.9.0/8.9.0/RTP-FW-1.2) with ESMTP id NAA17826 for ; Sat, 9 Oct 1999 13:15:49 -0400 Received: from raleigh.ibm.com (lig32-227-29-174.us.lig-dial.ibm.com [32.227.29.174]) by rtpmail02.raleigh.ibm.com (8.8.5/8.8.5/RTP-ral-1.1) with ESMTP id NAA31412 for ; Sat, 9 Oct 1999 13:15:19 -0400 Message-ID: <37FF78CE.6BBFCB50@raleigh.ibm.com> Date: Sat, 09 Oct 1999 13:18:06 -0400 From: "Paul J. Reder" X-Mailer: Mozilla 4.7 [en] (X11; I; Linux 2.0.36 i586) X-Accept-Language: en MIME-Version: 1.0 To: "new-httpd@apache.org" Subject: [Patch]: Update process related code to use APR calls. Content-Type: multipart/mixed; boundary="------------5C672072D1D7B128DBA9F4CD" Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org This is a multi-part message in MIME format. --------------5C672072D1D7B128DBA9F4CD Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Attached is a patch to update the base Apache code to use APR calls instead of calling fork/create_process/etc directly. The code compiles and seems to run. The patch is taken from the CVS tree as of Friday afternoon, so should apply cleanly. I have also ported mod_cgi, mod_mime_magic, mod_include, and mod_rewrite. These will be handled separately. -- Paul J. Reder ------------------------------------------------------------ "Remember, Information is not knowledge; Knowledge is not Wisdom; Wisdom is not truth; Truth is not beauty; Beauty is not love; Love is not music; Music is the best." -- Frank Zappa --------------5C672072D1D7B128DBA9F4CD Content-Type: application/octet-stream; name="procpatch.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="procpatch.diff" SW5kZXg6IHNyYy9Db25maWd1cmUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3Zz L2FwYWNoZS0yLjAvc3JjL0NvbmZpZ3VyZSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44CmRp ZmYgLXUgLXIxLjggQ29uZmlndXJlCi0tLSBDb25maWd1cmUJMTk5OS8xMC8wMSAxNjoyMjo0 OAkxLjgKKysrIENvbmZpZ3VyZQkxOTk5LzEwLzA5IDE2OjQ2OjMwCkBAIC0xNzM5LDcgKzE3 MzksNyBAQAogICAgIGZpCiAgICAgY2QgLi4vLi4KICAgICBBUFJMSUI9IiIKLSAgICBmb3Ig bGliIGluIGFwciBmaWxlIG5ldHdvcmsgbG9jayBtaXNjIHNpZyB0aHJlYWRwcm9jIHRpbWU7 IGRvCisgICAgZm9yIGxpYiBpbiBuZXR3b3JrIHRocmVhZHByb2MgZmlsZSBtaXNjIGFwciB0 aW1lIGxvY2sgc2lnOyBkbwogICAgICAgICAgQVBSTElCPSIkQVBSTElCIFwkKFNSQ0RJUikv bGliL2Fwci9saWJzL2xpYiR7bGlifS5hIgogICAgIGRvbmUKICAgICBDRkxBR1M9IiRDRkxB R1MgLUlcJChTUkNESVIpL2xpYi9hcHIvaW5jbHVkZSIKSW5kZXg6IHNyYy9pbmNsdWRlL2h0 dHBfbG9nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL2FwYWNoZS0yLjAv c3JjL2luY2x1ZGUvaHR0cF9sb2cuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYg LXUgLXIxLjQgaHR0cF9sb2cuaAotLS0gaHR0cF9sb2cuaAkxOTk5LzA5LzA4IDE0OjE1OjQw CTEuNAorKysgaHR0cF9sb2cuaAkxOTk5LzEwLzA5IDE2OjQ2OjMxCkBAIC0xMzgsNyArMTM4 LDcgQEAKICAgICBhcF9jb250ZXh0X3QgKnA7CiAjaWZuZGVmIE5PX1JFTElBQkxFX1BJUEVE X0xPR1MKICAgICBjaGFyICpwcm9ncmFtOwotICAgIGludCBwaWQ7CisgICAgYXBfcHJvY190 ICpwaWQ7CiAgICAgYXBfZmlsZV90IGZkc1syXTsKICNlbHNlCiAgICAgYXBfZmlsZV90ICp3 cml0ZV9mOwpJbmRleDogc3JjL2xpYi9hcHIvY29uZmlndXJlCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9ob21lL2N2cy9hcGFjaGUtMi4wL3NyYy9saWIvYXByL2NvbmZpZ3VyZSx2CnJl dHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXUgLXIxLjYgY29uZmlndXJlCi0tLSBjb25m aWd1cmUJMTk5OS8wOS8xMCAxNjo1MjozOQkxLjYKKysrIGNvbmZpZ3VyZQkxOTk5LzEwLzA5 IDE2OjQ2OjUwCkBAIC0xMCw3ICsxMCw3IEBACiAKIAogIyBHdWVzcyB2YWx1ZXMgZm9yIHN5 c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgotIyBHZW5l cmF0ZWQgYXV0b21hdGljYWxseSB1c2luZyBhdXRvY29uZiB2ZXJzaW9uIDIuMTMgCisjIEdl bmVyYXRlZCBhdXRvbWF0aWNhbGx5IHVzaW5nIGF1dG9jb25mIHZlcnNpb24gMi4xMiAKICMg Q29weXJpZ2h0IChDKSAxOTkyLCA5MywgOTQsIDk1LCA5NiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICMKICMgVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KQEAgLTYwLDcgKzYwLDYgQEAKICMg SW5pdGlhbGl6ZSBzb21lIG90aGVyIHZhcmlhYmxlcy4KIHN1YmRpcnM9CiBNRkxBR1M9IE1B S0VGTEFHUz0KLVNIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9CiAjIE1heGltdW0gbnVt YmVyIG9mIGxpbmVzIHRvIHB1dCBpbiBhIHNoZWxsIGhlcmUgZG9jdW1lbnQuCiBhY19tYXhf aGVyZV9saW5lcz0xMgogCkBAIC0zNDQsNyArMzQzLDcgQEAKICAgICB2ZXJib3NlPXllcyA7 OwogCiAgIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12 ZXJzKQotICAgIGVjaG8gImNvbmZpZ3VyZSBnZW5lcmF0ZWQgYnkgYXV0b2NvbmYgdmVyc2lv biAyLjEzIgorICAgIGVjaG8gImNvbmZpZ3VyZSBnZW5lcmF0ZWQgYnkgYXV0b2NvbmYgdmVy c2lvbiAyLjEyIgogICAgIGV4aXQgMCA7OwogCiAgIC13aXRoLSogfCAtLXdpdGgtKikKQEAg LTUxNCwxMSArNTEzLDkgQEAKICMgQ0ZMQUdTIGlzIG5vdCBpbiBhY19jcHAgYmVjYXVzZSAt ZywgLU8sIGV0Yy4gYXJlIG5vdCB2YWxpZCBjcHAgb3B0aW9ucy4KIGFjX2NwcD0nJENQUCAk Q1BQRkxBR1MnCiBhY19jb21waWxlPScke0NDLWNjfSAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0IDE+JjUnCi1hY19saW5rPScke0NDLWNjfSAtbyBjb25mdGVzdCR7 YWNfZXhlZXh0fSAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTIDE+JjUnCithY19saW5rPScke0NDLWNjfSAtbyBjb25mdGVzdCAkQ0ZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTIDE+JjUnCiBjcm9zc19j b21waWxpbmc9JGFjX2N2X3Byb2dfY2NfY3Jvc3MKIAotYWNfZXhlZXh0PQotYWNfb2JqZXh0 PW8KIGlmIChlY2hvICJ0ZXN0aW5nXGMiOyBlY2hvIDEsMiwzKSB8IGdyZXAgYyA+L2Rldi9u dWxsOyB0aGVuCiAgICMgU3RhcmRlbnQgVmlzdHJhIFNWUjQgZ3JlcCBsYWNrcyAtZSwgc2F5 cyBnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1LgogICBpZiAoZWNobyAtbiB0ZXN0aW5nOyBlY2hv IDEsMiwzKSB8IHNlZCBzLy1uL3huLyB8IGdyZXAgeG4gPi9kZXYvbnVsbDsgdGhlbgpAQCAt NTQ4LDE2ICs1NDUsMTUgQEAKICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwg c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KIHNldCBkdW1teSBnY2M7 IGFjX3dvcmQ9JDIKIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfd29yZCIiLi4uICRh Y19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NTUyOiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQorZWNobyAiY29uZmlndXJlOjU0OTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK IGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX0NDJytzZXR9J2BcIiA9 IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKIGVsc2UK ICAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgogICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgogZWxzZQotICBJRlM9IiR7SUZTPSAJfSI7 IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSI6IgotICBhY19kdW1teT0iJFBBVEgiCi0gIGZv ciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbworICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVf aWZzPSIkSUZTIjsgSUZTPSIke0lGU306IgorICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbwog ICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCiAgICAgaWYgdGVzdCAtZiAkYWNf ZGlyLyRhY193b3JkOyB0aGVuCiAgICAgICBhY19jdl9wcm9nX0NDPSJnY2MiCkBAIC01Nzgs MTcgKzU3NCwxNiBAQAogICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KIHNldCBkdW1teSBjYzsgYWNf d29yZD0kMgogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY193b3JkIiIuLi4gJGFjX2Mi IDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo1ODI6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 CitlY2hvICJjb25maWd1cmU6NTc4OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogaWYg ZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfQ0MnK3NldH0nYFwiID0gc2V0 IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBp ZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCiAgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCiBlbHNlCi0gIElGUz0iJHtJRlM9IAl9IjsgYWNf c2F2ZV9pZnM9IiRJRlMiOyBJRlM9IjoiCisgIElGUz0iJHtJRlM9IAl9IjsgYWNfc2F2ZV9p ZnM9IiRJRlMiOyBJRlM9IiR7SUZTfToiCiAgIGFjX3Byb2dfcmVqZWN0ZWQ9bm8KLSAgYWNf ZHVtbXk9IiRQQVRIIgotICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KKyAgZm9yIGFj X2RpciBpbiAkUEFUSDsgZG8KICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9Lgog ICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8kYWNfd29yZDsgdGhlbgogICAgICAgaWYgdGVzdCAi JGFjX2Rpci8kYWNfd29yZCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCkBAIC02MjMsNjEgKzYx OCwyNSBAQAogICBlY2hvICIkYWNfdCIibm8iIDE+JjYKIGZpCiAKLSAgaWYgdGVzdCAteiAi JENDIjsgdGhlbgotICAgIGNhc2UgImB1bmFtZSAtc2AiIGluCi0gICAgKndpbjMyKiB8ICpX SU4zMiopCi0gICAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNsIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSBjbDsgYWNfd29y ZD0kMgotZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY193b3JkIiIuLi4gJGFjX2MiIDE+ JjYKLWVjaG8gImNvbmZpZ3VyZTo2MzM6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1p ZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19DQycrc2V0fSdgXCIgPSBz ZXQiOyB0aGVuCi0gIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci1lbHNlCi0g IGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLWVsc2UKLSAgSUZTPSIke0lGUz0gCX0iOyBh Y19zYXZlX2lmcz0iJElGUyI7IElGUz0iOiIKLSAgYWNfZHVtbXk9IiRQQVRIIgotICBmb3Ig YWNfZGlyIGluICRhY19kdW1teTsgZG8KLSAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19k aXI9LgotICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8kYWNfd29yZDsgdGhlbgotICAgICAgYWNf Y3ZfcHJvZ19DQz0iY2wiCi0gICAgICBicmVhawotICAgIGZpCi0gIGRvbmUKLSAgSUZTPSIk YWNfc2F2ZV9pZnMiCi1maQotZmkKLUNDPSIkYWNfY3ZfcHJvZ19DQyIKLWlmIHRlc3QgLW4g IiRDQyI7IHRoZW4KLSAgZWNobyAiJGFjX3QiIiRDQyIgMT4mNgotZWxzZQotICBlY2hvICIk YWNfdCIibm8iIDE+JjYKLWZpCi0gOzsKLSAgICBlc2FjCi0gIGZpCiAgIHRlc3QgLXogIiRD QyIgJiYgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGNjIGZvdW5k IGluIFwkUEFUSCIgMT4mMjsgZXhpdCAxOyB9CiBmaQogCiBlY2hvICRhY19uICJjaGVja2lu ZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyICgkQ0MgJENGTEFHUyAkTERGTEFHUykgd29ya3Mi Ii4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjY2NTogY2hlY2tpbmcgd2hldGhl ciB0aGUgQyBjb21waWxlciAoJENDICRDRkxBR1MgJExERkxBR1MpIHdvcmtzIiA+JjUKK2Vj aG8gImNvbmZpZ3VyZTo2MjY6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgKCRD QyAkQ0ZMQUdTICRMREZMQUdTKSB3b3JrcyIgPiY1CiAKIGFjX2V4dD1jCiAjIENGTEFHUyBp cyBub3QgaW4gYWNfY3BwIGJlY2F1c2UgLWcsIC1PLCBldGMuIGFyZSBub3QgdmFsaWQgY3Bw IG9wdGlvbnMuCiBhY19jcHA9JyRDUFAgJENQUEZMQUdTJwogYWNfY29tcGlsZT0nJHtDQy1j Y30gLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCAxPiY1JwotYWNfbGlu az0nJHtDQy1jY30gLW8gY29uZnRlc3Qke2FjX2V4ZWV4dH0gJENGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyAxPiY1JworYWNfbGluaz0nJHtDQy1j Y30gLW8gY29uZnRlc3QgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyAxPiY1JwogY3Jvc3NfY29tcGlsaW5nPSRhY19jdl9wcm9nX2NjX2Nyb3Nz Ci0KLWNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDwgRU9GCiAKLSNsaW5lIDY3NiAiY29uZmln dXJlIgorY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgorI2xpbmUgNjM2ICJjb25maWd1 cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKLQogbWFpbigpe3JldHVybigwKTt9CiBFT0YK LWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NjgxOiBcIiRhY19saW5rXCIpIDE+JjU7IChl dmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07 IHRoZW4KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NjQwOiBcIiRhY19saW5rXCIpIDE+ JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Q7IHRoZW4K ICAgYWNfY3ZfcHJvZ19jY193b3Jrcz15ZXMKICAgIyBJZiB3ZSBjYW4ndCBydW4gYSB0cml2 aWFsIHByb2dyYW0sIHdlIGFyZSBwcm9iYWJseSB1c2luZyBhIGNyb3NzIGNvbXBpbGVyLgog ICBpZiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGw7IHRoZW4KQEAgLTY5MSwyNCAr NjUwLDE4IEBACiAgIGFjX2N2X3Byb2dfY2Nfd29ya3M9bm8KIGZpCiBybSAtZnIgY29uZnRl c3QqCi1hY19leHQ9YwotIyBDRkxBR1MgaXMgbm90IGluIGFjX2NwcCBiZWNhdXNlIC1nLCAt TywgZXRjLiBhcmUgbm90IHZhbGlkIGNwcCBvcHRpb25zLgotYWNfY3BwPSckQ1BQICRDUFBG TEFHUycKLWFjX2NvbXBpbGU9JyR7Q0MtY2N9IC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgMT4mNScKLWFjX2xpbms9JyR7Q0MtY2N9IC1vIGNvbmZ0ZXN0JHthY19l eGVleHR9ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgMT4mNScKLWNyb3NzX2NvbXBpbGluZz0kYWNfY3ZfcHJvZ19jY19jcm9zcwogCiBlY2hv ICIkYWNfdCIiJGFjX2N2X3Byb2dfY2Nfd29ya3MiIDE+JjYKIGlmIHRlc3QgJGFjX2N2X3By b2dfY2Nfd29ya3MgPSBubzsgdGhlbgogICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IGlu c3RhbGxhdGlvbiBvciBjb25maWd1cmF0aW9uIHByb2JsZW06IEMgY29tcGlsZXIgY2Fubm90 IGNyZWF0ZSBleGVjdXRhYmxlcy4iIDE+JjI7IGV4aXQgMTsgfQogZmkKIGVjaG8gJGFjX24g ImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgKCRDQyAkQ0ZMQUdTICRMREZMQUdT KSBpcyBhIGNyb3NzLWNvbXBpbGVyIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3Vy ZTo3MDc6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgKCRDQyAkQ0ZMQUdTICRM REZMQUdTKSBpcyBhIGNyb3NzLWNvbXBpbGVyIiA+JjUKK2VjaG8gImNvbmZpZ3VyZTo2NjA6 IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgKCRDQyAkQ0ZMQUdTICRMREZMQUdT KSBpcyBhIGNyb3NzLWNvbXBpbGVyIiA+JjUKIGVjaG8gIiRhY190IiIkYWNfY3ZfcHJvZ19j Y19jcm9zcyIgMT4mNgogY3Jvc3NfY29tcGlsaW5nPSRhY19jdl9wcm9nX2NjX2Nyb3NzCiAK IGVjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIEdOVSBDIiIuLi4g JGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo3MTI6IGNoZWNraW5nIHdoZXRoZXIgd2Ug YXJlIHVzaW5nIEdOVSBDIiA+JjUKK2VjaG8gImNvbmZpZ3VyZTo2NjU6IGNoZWNraW5nIHdo ZXRoZXIgd2UgYXJlIHVzaW5nIEdOVSBDIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAn JCcneydhY19jdl9wcm9nX2djYycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFj X24gIihjYWNoZWQpICRhY19jIiAxPiY2CiBlbHNlCkBAIC03MTcsNyArNjcwLDcgQEAKICAg eWVzOwogI2VuZGlmCiBFT0YKLWlmIHsgYWNfdHJ5PScke0NDLWNjfSAtRSBjb25mdGVzdC5j JzsgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo3MjE6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZh bCAkYWNfdHJ5KSAyPiY1OyB9OyB9IHwgZWdyZXAgeWVzID4vZGV2L251bGwgMj4mMTsgdGhl bgoraWYgeyBhY190cnk9JyR7Q0MtY2N9IC1FIGNvbmZ0ZXN0LmMnOyB7IChldmFsIGVjaG8g Y29uZmlndXJlOjY3NDogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7 IH07IH0gfCBlZ3JlcCB5ZXMgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgIGFjX2N2X3Byb2df Z2NjPXllcwogZWxzZQogICBhY19jdl9wcm9nX2djYz1ubwpAQCAtNzI4LDE1ICs2ODEsMTEg QEAKIAogaWYgdGVzdCAkYWNfY3ZfcHJvZ19nY2MgPSB5ZXM7IHRoZW4KICAgR0NDPXllcwot ZWxzZQotICBHQ0M9Ci1maQotCi1hY190ZXN0X0NGTEFHUz0iJHtDRkxBR1Mrc2V0fSIKLWFj X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotQ0ZMQUdTPQotZWNobyAkYWNfbiAiY2hlY2tpbmcg d2hldGhlciAke0NDLWNjfSBhY2NlcHRzIC1nIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNv bmZpZ3VyZTo3NDA6IGNoZWNraW5nIHdoZXRoZXIgJHtDQy1jY30gYWNjZXB0cyAtZyIgPiY1 CisgIGFjX3Rlc3RfQ0ZMQUdTPSIke0NGTEFHUytzZXR9IgorICBhY19zYXZlX0NGTEFHUz0i JENGTEFHUyIKKyAgQ0ZMQUdTPQorICBlY2hvICRhY19uICJjaGVja2luZyB3aGV0aGVyICR7 Q0MtY2N9IGFjY2VwdHMgLWciIi4uLiAkYWNfYyIgMT4mNgorZWNobyAiY29uZmlndXJlOjY4 OTogY2hlY2tpbmcgd2hldGhlciAke0NDLWNjfSBhY2NlcHRzIC1nIiA+JjUKIGlmIGV2YWwg InRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX2NjX2cnK3NldH0nYFwiID0gc2V0Ijsg dGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQpAQCAtNzUx LDM1ICs3MDAsMzAgQEAKIGZpCiAKIGVjaG8gIiRhY190IiIkYWNfY3ZfcHJvZ19jY19nIiAx PiY2Ci1pZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCi0gIENGTEFHUz0i JGFjX3NhdmVfQ0ZMQUdTIgotZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRo ZW4KLSAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgaWYgdGVzdCAiJGFjX3Rlc3Rf Q0ZMQUdTIiA9IHNldDsgdGhlbgorICAgIENGTEFHUz0iJGFjX3NhdmVfQ0ZMQUdTIgorICBl bGlmIHRlc3QgJGFjX2N2X3Byb2dfY2NfZyA9IHllczsgdGhlbgogICAgIENGTEFHUz0iLWcg LU8yIgogICBlbHNlCi0gICAgQ0ZMQUdTPSItZyIKLSAgZmkKLWVsc2UKLSAgaWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KICAgICBDRkxBR1M9Ii1PMiIKLSAgZWxzZQotICAgIENGTEFH Uz0KICAgZmkKK2Vsc2UKKyAgR0NDPQorICB0ZXN0ICIke0NGTEFHUytzZXR9IiA9IHNldCB8 fCBDRkxBR1M9Ii1nIgogZmkKIAogIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJyYW5s aWIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgogc2V0IGR1bW15 IHJhbmxpYjsgYWNfd29yZD0kMgogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk IiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo3NzQ6IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1CitlY2hvICJjb25maWd1cmU6NzE5OiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfUkFOTElC JytzZXR9J2BcIiA9IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2Mi IDE+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KICAgYWNfY3ZfcHJv Z19SQU5MSUI9IiRSQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgog ZWxzZQotICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSI6Igot ICBhY19kdW1teT0iJFBBVEgiCi0gIGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbworICBJ RlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU306IgorICBm b3IgYWNfZGlyIGluICRQQVRIOyBkbwogICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rp cj0uCiAgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyRhY193b3JkOyB0aGVuCiAgICAgICBhY19j dl9wcm9nX1JBTkxJQj0icmFubGliIgpAQCAtNzk4LDcgKzc0Miw3IEBACiBmaQogCiBlY2hv ICRhY19uICJjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwke01BS0V9IiIu Li4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo4MDI6IGNoZWNraW5nIHdoZXRoZXIg JHtNQUtFLW1ha2V9IHNldHMgXCR7TUFLRX0iID4mNQorZWNobyAiY29uZmlndXJlOjc0Njog Y2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJHtNQUtFfSIgPiY1CiBzZXQg ZHVtbXkgJHtNQUtFLW1ha2V9OyBhY19tYWtlPWBlY2hvICIkMiIgfCBzZWQgJ3klLi8rLSVf X3BfJSdgCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19tYWtlXyR7 YWNfbWFrZX1fc2V0JytzZXR9J2BcIiA9IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNh Y2hlZCkgJGFjX2MiIDE+JjYKQEAgLTgyNywxNiArNzcxLDE1IEBACiAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgInJtIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KIHNldCBkdW1teSBybTsgYWNfd29yZD0kMgogZWNobyAkYWNfbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo4MzE6IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CitlY2hvICJjb25maWd1cmU6Nzc1OiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2 X3Byb2dfUk0nK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVk KSAkYWNfYyIgMT4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkUk0iOyB0aGVuCiAgIGFjX2N2 X3Byb2dfUk09IiRSTSIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCiBlbHNl Ci0gIElGUz0iJHtJRlM9IAl9IjsgYWNfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IjoiCi0gIGFj X2R1bW15PSIkUEFUSCIKLSAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCisgIElGUz0i JHtJRlM9IAl9IjsgYWNfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfToiCisgIGZvciBh Y19kaXIgaW4gJFBBVEg7IGRvCiAgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4K ICAgICBpZiB0ZXN0IC1mICRhY19kaXIvJGFjX3dvcmQ7IHRoZW4KICAgICAgIGFjX2N2X3By b2dfUk09InJtIgpAQCAtODU2LDE2ICs3OTksMTUgQEAKICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiYXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgog c2V0IGR1bW15IGFyOyBhY193b3JkPSQyCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFj X3dvcmQiIi4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjg2MDogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKK2VjaG8gImNvbmZpZ3VyZTo4MDM6IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1CiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19B Uicrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19j IiAxPiY2CiBlbHNlCiAgIGlmIHRlc3QgLW4gIiRBUiI7IHRoZW4KICAgYWNfY3ZfcHJvZ19B Uj0iJEFSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KIGVsc2UKLSAgSUZT PSIke0lGUz0gCX0iOyBhY19zYXZlX2lmcz0iJElGUyI7IElGUz0iOiIKLSAgYWNfZHVtbXk9 IiRQQVRIIgotICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KKyAgSUZTPSIke0lGUz0g CX0iOyBhY19zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9OiIKKyAgZm9yIGFjX2RpciBp biAkUEFUSDsgZG8KICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgogICAgIGlm IHRlc3QgLWYgJGFjX2Rpci8kYWNfd29yZDsgdGhlbgogICAgICAgYWNfY3ZfcHJvZ19BUj0i YXIiCkBAIC04ODQsMTMgKzgyNiwxMyBAQAogCiAKIGNhc2UgIiRPUzokQ0MiIGluCi0gICAg Ki1ocC1ocHV4KjpjYyApIENGQUdTPSIkQ0ZMQUdTIC1BZSArREFwb3J0YWJsZSIgOzsKKyAg ICAqLWhwLWhwdXgqOmNjICkgQ0ZMQUdTPSIkQ0ZMQUdTIC1BZSArREFwb3J0YWJsZSIgOzsK IGVzYWMKIAogCiAjIFRoaXMgbWFjcm8gbmVlZHMgdG8gYmUgaGVyZSBpbiBjYXNlIHdlIGFy ZSBvbiBhbiBBSVggYm94LgogZWNobyAkYWNfbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUg QyBwcmVwcm9jZXNzb3IiIi4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjg5NDog Y2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IiID4mNQorZWNobyAiY29u ZmlndXJlOjgzNjogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IiID4m NQogIyBPbiBTdW5zLCBzb21ldGltZXMgJENQUCBuYW1lcyBhIGRpcmVjdG9yeS4KIGlmIHRl c3QgLW4gIiRDUFAiICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuCiAgIENQUD0KQEAgLTkwNSwx NCArODQ3LDE0IEBACiAgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhy b3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCiAgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAu CiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDkwOSAiY29uZmlndXJl IgorI2xpbmUgODUxICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNs dWRlIDxhc3NlcnQuaD4KIFN5bnRheCBFcnJvcgogRU9GCiBhY190cnk9IiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hv IGNvbmZpZ3VyZTo5MTU6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1 OyB9Ci1hY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5j b25mdGVzdC4ke2FjX2V4dH1cJCJgCit7IChldmFsIGVjaG8gY29uZmlndXJlOjg1NzogXCIk YWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0KK2FjX2Vycj1gZ3JlcCAt diAnXiAqKycgY29uZnRlc3Qub3V0YAogaWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KICAg OgogZWxzZQpAQCAtOTIyLDE0ICs4NjQsMTQgQEAKICAgcm0gLXJmIGNvbmZ0ZXN0KgogICBD UFA9IiR7Q0MtY2N9IC1FIC10cmFkaXRpb25hbC1jcHAiCiAgIGNhdCA+IGNvbmZ0ZXN0LiRh Y19leHQgPDxFT0YKLSNsaW5lIDkyNiAiY29uZmlndXJlIgorI2xpbmUgODY4ICJjb25maWd1 cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDxhc3NlcnQuaD4KIFN5bnRh eCBFcnJvcgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9u dWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo5MzI6IFwiJGFj X3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9Ci1hY19lcnI9YGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJg Cit7IChldmFsIGVjaG8gY29uZmlndXJlOjg3NDogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFs ICRhY190cnkpIDI+JjU7IH0KK2FjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0 YAogaWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KICAgOgogZWxzZQpAQCAtOTM3LDMwICs4 NzksMTEgQEAKICAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK ICAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CiAgIHJtIC1yZiBjb25mdGVzdCoKLSAgQ1BQ PSIke0NDLWNjfSAtbm9sb2dvIC1FIgotICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G Ci0jbGluZSA5NDMgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgotI2luY2x1 ZGUgPGFzc2VydC5oPgotU3ludGF4IEVycm9yCi1FT0YKLWFjX3RyeT0iJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQiCi17IChldmFsIGVjaG8g Y29uZmlndXJlOjk0OTogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7 IH0KLWFjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNv bmZ0ZXN0LiR7YWNfZXh0fVwkImAKLWlmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuCi0gIDoK LWVsc2UKLSAgZWNobyAiJGFjX2VyciIgPiY1Ci0gIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Ci0gIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotICBybSAt cmYgY29uZnRlc3QqCiAgIENQUD0vbGliL2NwcAogZmkKIHJtIC1mIGNvbmZ0ZXN0KgogZmkK IHJtIC1mIGNvbmZ0ZXN0KgotZmkKLXJtIC1mIGNvbmZ0ZXN0KgogICBhY19jdl9wcm9nX0NQ UD0iJENQUCIKIGZpCiAgIENQUD0iJGFjX2N2X3Byb2dfQ1BQIgpAQCAtOTcwLDkgKzg5Myw5 IEBACiBlY2hvICIkYWNfdCIiJENQUCIgMT4mNgogCiBlY2hvICRhY19uICJjaGVja2luZyBm b3IgQUlYIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo5NzQ6IGNoZWNraW5n IGZvciBBSVgiID4mNQorZWNobyAiY29uZmlndXJlOjg5NzogY2hlY2tpbmcgZm9yIEFJWCIg PiY1CiBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSA5NzYgImNvbmZpZ3Vy ZSIKKyNsaW5lIDg5OSAiY29uZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAjaWZk ZWYgX0FJWAogICB5ZXMKQEAgLTk5NSw3ICs5MTgsNyBAQAogCiAKIGVjaG8gJGFjX24gImNo ZWNraW5nIHNpemUgb2YgY2hhciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6 OTk5OiBjaGVja2luZyBzaXplIG9mIGNoYXIiID4mNQorZWNobyAiY29uZmlndXJlOjkyMjog Y2hlY2tpbmcgc2l6ZSBvZiBjaGFyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcn eydhY19jdl9zaXplb2ZfY2hhcicrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFj X24gIihjYWNoZWQpICRhY19jIiAxPiY2CiBlbHNlCkBAIC0xMDAzLDcgKzkyNiw3IEBACiAg IGFjX2N2X3NpemVvZl9jaGFyPTEKIGVsc2UKICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8 PEVPRgotI2xpbmUgMTAwNyAiY29uZmlndXJlIgorI2xpbmUgOTMwICJjb25maWd1cmUiCiAj aW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogbWFpbigpCkBAIC0x MDE0LDcgKzkzNyw3IEBACiAgIGV4aXQoMCk7CiB9CiBFT0YKLWlmIHsgKGV2YWwgZWNobyBj b25maWd1cmU6MTAxODogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4m NTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9ICYmICguL2NvbmZ0ZXN0OyBl eGl0KSAyPi9kZXYvbnVsbAoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo5NDE6IFwiJGFj X2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25m dGVzdCAmJiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGwKIHRoZW4KICAgYWNfY3Zf c2l6ZW9mX2NoYXI9YGNhdCBjb25mdGVzdHZhbGAKIGVsc2UKQEAgLTEwMzQsNyArOTU3LDcg QEAKIAogCiBlY2hvICRhY19uICJjaGVja2luZyBzaXplIG9mIGludCIiLi4uICRhY19jIiAx PiY2Ci1lY2hvICJjb25maWd1cmU6MTAzODogY2hlY2tpbmcgc2l6ZSBvZiBpbnQiID4mNQor ZWNobyAiY29uZmlndXJlOjk2MTogY2hlY2tpbmcgc2l6ZSBvZiBpbnQiID4mNQogaWYgZXZh bCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3NpemVvZl9pbnQnK3NldH0nYFwiID0gc2V0 IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQpAQCAt MTA0Miw3ICs5NjUsNyBAQAogICBhY19jdl9zaXplb2ZfaW50PTQKIGVsc2UKICAgY2F0ID4g Y29uZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgMTA0NiAiY29uZmlndXJlIgorI2xpbmUg OTY5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDxzdGRp by5oPgogbWFpbigpCkBAIC0xMDUzLDcgKzk3Niw3IEBACiAgIGV4aXQoMCk7CiB9CiBFT0YK LWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTA1NzogXCIkYWNfbGlua1wiKSAxPiY1OyAo ZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9 ICYmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVsbAoraWYgeyAoZXZhbCBlY2hvIGNv bmZpZ3VyZTo5ODA6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7 IH0gJiYgdGVzdCAtcyBjb25mdGVzdCAmJiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251 bGwKIHRoZW4KICAgYWNfY3Zfc2l6ZW9mX2ludD1gY2F0IGNvbmZ0ZXN0dmFsYAogZWxzZQpA QCAtMTA3Myw3ICs5OTYsNyBAQAogCiAKIGVjaG8gJGFjX24gImNoZWNraW5nIHNpemUgb2Yg bG9uZyIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MTA3NzogY2hlY2tpbmcg c2l6ZSBvZiBsb25nIiA+JjUKK2VjaG8gImNvbmZpZ3VyZToxMDAwOiBjaGVja2luZyBzaXpl IG9mIGxvbmciID4mNQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3NpemVv Zl9sb25nJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkg JGFjX2MiIDE+JjYKIGVsc2UKQEAgLTEwODEsNyArMTAwNCw3IEBACiAgIGFjX2N2X3NpemVv Zl9sb25nPTQKIGVsc2UKICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUg MTA4NSAiY29uZmlndXJlIgorI2xpbmUgMTAwOCAiY29uZmlndXJlIgogI2luY2x1ZGUgImNv bmZkZWZzLmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KIG1haW4oKQpAQCAtMTA5Miw3ICsxMDE1 LDcgQEAKICAgZXhpdCgwKTsKIH0KIEVPRgotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTox MDk2OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRl c3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gJiYgKC4vY29uZnRlc3Q7IGV4aXQpIDI+L2Rl di9udWxsCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjEwMTk6IFwiJGFjX2xpbmtcIikg MT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCAmJiAo Li9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGwKIHRoZW4KICAgYWNfY3Zfc2l6ZW9mX2xv bmc9YGNhdCBjb25mdGVzdHZhbGAKIGVsc2UKQEAgLTExMTIsNyArMTAzNSw3IEBACiAKIAog ZWNobyAkYWNfbiAiY2hlY2tpbmcgc2l6ZSBvZiBzaG9ydCIiLi4uICRhY19jIiAxPiY2Ci1l Y2hvICJjb25maWd1cmU6MTExNjogY2hlY2tpbmcgc2l6ZSBvZiBzaG9ydCIgPiY1CitlY2hv ICJjb25maWd1cmU6MTAzOTogY2hlY2tpbmcgc2l6ZSBvZiBzaG9ydCIgPiY1CiBpZiBldmFs ICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3Zfc2l6ZW9mX3Nob3J0JytzZXR9J2BcIiA9IHNl dCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKIGVsc2UKQEAg LTExMjAsNyArMTA0Myw3IEBACiAgIGFjX2N2X3NpemVvZl9zaG9ydD0yCiBlbHNlCiAgIGNh dCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDExMjQgImNvbmZpZ3VyZSIKKyNs aW5lIDEwNDcgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgogI2luY2x1ZGUg PHN0ZGlvLmg+CiBtYWluKCkKQEAgLTExMzEsNyArMTA1NCw3IEBACiAgIGV4aXQoMCk7CiB9 CiBFT0YKLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTEzNTogXCIkYWNfbGlua1wiKSAx PiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19l eGVleHR9ICYmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVsbAoraWYgeyAoZXZhbCBl Y2hvIGNvbmZpZ3VyZToxMDU4OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5r KSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3QgJiYgKC4vY29uZnRlc3Q7IGV4aXQpIDI+ L2Rldi9udWxsCiB0aGVuCiAgIGFjX2N2X3NpemVvZl9zaG9ydD1gY2F0IGNvbmZ0ZXN0dmFs YAogZWxzZQpAQCAtMTE1MSw3ICsxMDc0LDcgQEAKIAogCiBlY2hvICRhY19uICJjaGVja2lu ZyBzaXplIG9mIGxvbmcgZG91YmxlIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3Vy ZToxMTU1OiBjaGVja2luZyBzaXplIG9mIGxvbmcgZG91YmxlIiA+JjUKK2VjaG8gImNvbmZp Z3VyZToxMDc4OiBjaGVja2luZyBzaXplIG9mIGxvbmcgZG91YmxlIiA+JjUKIGlmIGV2YWwg InRlc3QgXCJgZWNobyAnJCcneydhY19jdl9zaXplb2ZfbG9uZ19kb3VibGUnK3NldH0nYFwi ID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxz ZQpAQCAtMTE1OSw3ICsxMDgyLDcgQEAKICAgYWNfY3Zfc2l6ZW9mX2xvbmdfZG91YmxlPTEy CiBlbHNlCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDExNjMgImNv bmZpZ3VyZSIKKyNsaW5lIDEwODYgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5o IgogI2luY2x1ZGUgPHN0ZGlvLmg+CiBtYWluKCkKQEAgLTExNzAsNyArMTA5Myw3IEBACiAg IGV4aXQoMCk7CiB9CiBFT0YKLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTE3NDogXCIk YWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JHthY19leGVleHR9ICYmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVsbAor aWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxMDk3OiBcIiRhY19saW5rXCIpIDE+JjU7IChl dmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3QgJiYgKC4vY29uZnRl c3Q7IGV4aXQpIDI+L2Rldi9udWxsCiB0aGVuCiAgIGFjX2N2X3NpemVvZl9sb25nX2RvdWJs ZT1gY2F0IGNvbmZ0ZXN0dmFsYAogZWxzZQpAQCAtMTE5MCw3ICsxMTEzLDcgQEAKIAogCiBl Y2hvICRhY19uICJjaGVja2luZyBzaXplIG9mIGxvbmcgbG9uZyIiLi4uICRhY19jIiAxPiY2 Ci1lY2hvICJjb25maWd1cmU6MTE5NDogY2hlY2tpbmcgc2l6ZSBvZiBsb25nIGxvbmciID4m NQorZWNobyAiY29uZmlndXJlOjExMTc6IGNoZWNraW5nIHNpemUgb2YgbG9uZyBsb25nIiA+ JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9zaXplb2ZfbG9uZ19sb25n JytzZXR9J2BcIiA9IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2Mi IDE+JjYKIGVsc2UKQEAgLTExOTgsNyArMTEyMSw3IEBACiAgIGFjX2N2X3NpemVvZl9sb25n X2xvbmc9OAogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAx MjAyICJjb25maWd1cmUiCisjbGluZSAxMTI1ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29u ZmRlZnMuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogbWFpbigpCkBAIC0xMjA5LDcgKzExMzIs NyBAQAogICBleGl0KDApOwogfQogRU9GCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjEy MTM6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVz dCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAmJiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2 L251bGwKK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTEzNjogXCIkYWNfbGlua1wiKSAx PiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0ICYmICgu L2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVsbAogdGhlbgogICBhY19jdl9zaXplb2ZfbG9u Z19sb25nPWBjYXQgY29uZnRlc3R2YWxgCiBlbHNlCkBAIC0xMjMwLDEyICsxMTUzLDEyIEBA CiAKIAogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMiIi4u LiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjEyMzQ6IGNoZWNraW5nIGZvciBBTlNJ IEMgaGVhZGVyIGZpbGVzIiA+JjUKK2VjaG8gImNvbmZpZ3VyZToxMTU3OiBjaGVja2luZyBm b3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1CiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQn J3snYWNfY3ZfaGVhZGVyX3N0ZGMnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRh Y19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNf ZXh0IDw8RU9GCi0jbGluZSAxMjM5ICJjb25maWd1cmUiCisjbGluZSAxMTYyICJjb25maWd1 cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNs dWRlIDxzdGRhcmcuaD4KQEAgLTEyNDMsOCArMTE2Niw4IEBACiAjaW5jbHVkZSA8ZmxvYXQu aD4KIEVPRgogYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAy PmNvbmZ0ZXN0Lm91dCIKLXsgKGV2YWwgZWNobyBjb25maWd1cmU6MTI0NzogXCIkYWNfdHJ5 XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0KLWFjX2Vycj1gZ3JlcCAtdiAnXiAq KycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0ZXN0LiR7YWNfZXh0fVwkImAKK3sg KGV2YWwgZWNobyBjb25maWd1cmU6MTE3MDogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRh Y190cnkpIDI+JjU7IH0KK2FjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0YAog aWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KICAgcm0gLXJmIGNvbmZ0ZXN0KgogICBhY19j dl9oZWFkZXJfc3RkYz15ZXMKQEAgLTEyNjAsNyArMTE4Myw3IEBACiBpZiB0ZXN0ICRhY19j dl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgogICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2Vz IG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuCiBjYXQgPiBjb25mdGVzdC4k YWNfZXh0IDw8RU9GCi0jbGluZSAxMjY0ICJjb25maWd1cmUiCisjbGluZSAxMTg3ICJjb25m aWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDxzdHJpbmcuaD4KIEVP RgpAQCAtMTI3OCw3ICsxMjAxLDcgQEAKIGlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0g eWVzOyB0aGVuCiAgICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJl ZSwgY29udHJhcnkgdG8gQU5TSS4KIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNs aW5lIDEyODIgImNvbmZpZ3VyZSIKKyNsaW5lIDEyMDUgImNvbmZpZ3VyZSIKICNpbmNsdWRl ICJjb25mZGVmcy5oIgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogRU9GCkBAIC0xMjk5LDcgKzEy MjIsNyBAQAogICA6CiBlbHNlCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNs aW5lIDEzMDMgImNvbmZpZ3VyZSIKKyNsaW5lIDEyMjYgImNvbmZpZ3VyZSIKICNpbmNsdWRl ICJjb25mZGVmcy5oIgogI2luY2x1ZGUgPGN0eXBlLmg+CiAjZGVmaW5lIElTTE9XRVIoYykg KCdhJyA8PSAoYykgJiYgKGMpIDw9ICd6JykKQEAgLTEzMTAsNyArMTIzMyw3IEBACiBleGl0 ICgwKTsgfQogCiBFT0YKLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTMxNDogXCIkYWNf bGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0JHthY19leGVleHR9ICYmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVsbAoraWYg eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxMjM3OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFs ICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3QgJiYgKC4vY29uZnRlc3Q7 IGV4aXQpIDI+L2Rldi9udWxsCiB0aGVuCiAgIDoKIGVsc2UKQEAgLTEzMzQsMTIgKzEyNTcs MTIgQEAKIGZpCiAKIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBvZmZfdCIiLi4uICRhY19j IiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MTMzODogY2hlY2tpbmcgZm9yIG9mZl90IiA+JjUK K2VjaG8gImNvbmZpZ3VyZToxMjYxOiBjaGVja2luZyBmb3Igb2ZmX3QiID4mNQogaWYgZXZh bCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3R5cGVfb2ZmX3QnK3NldH0nYFwiID0gc2V0 IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBj YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAxMzQzICJjb25maWd1cmUiCisj bGluZSAxMjY2ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRl IDxzeXMvdHlwZXMuaD4KICNpZiBTVERDX0hFQURFUlMKQEAgLTEzNDgsNyArMTI3MSw3IEBA CiAjZW5kaWYKIEVPRgogaWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+ JjUgfAotICBlZ3JlcCAiKF58W15hLXpBLVpfMC05XSlvZmZfdFteYS16QS1aXzAtOV0iID4v ZGV2L251bGwgMj4mMTsgdGhlbgorICBlZ3JlcCAib2ZmX3RbXmEtekEtWl8wLTldIiA+L2Rl di9udWxsIDI+JjE7IHRoZW4KICAgcm0gLXJmIGNvbmZ0ZXN0KgogICBhY19jdl90eXBlX29m Zl90PXllcwogZWxzZQpAQCAtMTM2NywxMiArMTI5MCwxMiBAQAogZmkKIAogZWNobyAkYWNf biAiY2hlY2tpbmcgZm9yIHBpZF90IiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3Vy ZToxMzcxOiBjaGVja2luZyBmb3IgcGlkX3QiID4mNQorZWNobyAiY29uZmlndXJlOjEyOTQ6 IGNoZWNraW5nIGZvciBwaWRfdCIgPiY1CiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3sn YWNfY3ZfdHlwZV9waWRfdCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24g IihjYWNoZWQpICRhY19jIiAxPiY2CiBlbHNlCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQg PDxFT0YKLSNsaW5lIDEzNzYgImNvbmZpZ3VyZSIKKyNsaW5lIDEyOTkgImNvbmZpZ3VyZSIK ICNpbmNsdWRlICJjb25mZGVmcy5oIgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2lmIFNU RENfSEVBREVSUwpAQCAtMTM4MSw3ICsxMzA0LDcgQEAKICNlbmRpZgogRU9GCiBpZiAoZXZh bCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0gIGVncmVwICIoXnxbXmEt ekEtWl8wLTldKXBpZF90W15hLXpBLVpfMC05XSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisg IGVncmVwICJwaWRfdFteYS16QS1aXzAtOV0iID4vZGV2L251bGwgMj4mMTsgdGhlbgogICBy bSAtcmYgY29uZnRlc3QqCiAgIGFjX2N2X3R5cGVfcGlkX3Q9eWVzCiBlbHNlCkBAIC0xNDAw LDEyICsxMzIzLDEyIEBACiBmaQogCiBlY2hvICRhY19uICJjaGVja2luZyBmb3Igc2l6ZV90 IiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZToxNDA0OiBjaGVja2luZyBmb3Ig c2l6ZV90IiA+JjUKK2VjaG8gImNvbmZpZ3VyZToxMzI3OiBjaGVja2luZyBmb3Igc2l6ZV90 IiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl90eXBlX3NpemVfdCcr c2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAx PiY2CiBlbHNlCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDE0MDkg ImNvbmZpZ3VyZSIKKyNsaW5lIDEzMzIgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVm cy5oIgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2lmIFNURENfSEVBREVSUwpAQCAtMTQx NCw3ICsxMzM3LDcgQEAKICNlbmRpZgogRU9GCiBpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVz dC4kYWNfZXh0IikgMj4mNSB8Ci0gIGVncmVwICIoXnxbXmEtekEtWl8wLTldKXNpemVfdFte YS16QS1aXzAtOV0iID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBlZ3JlcCAic2l6ZV90W15h LXpBLVpfMC05XSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgIHJtIC1yZiBjb25mdGVzdCoK ICAgYWNfY3ZfdHlwZV9zaXplX3Q9eWVzCiBlbHNlCkBAIC0xNDMzLDEyICsxMzU2LDEyIEBA CiBmaQogCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgdWlkX3QgaW4gc3lzL3R5cGVzLmgi Ii4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjE0Mzc6IGNoZWNraW5nIGZvciB1 aWRfdCBpbiBzeXMvdHlwZXMuaCIgPiY1CitlY2hvICJjb25maWd1cmU6MTM2MDogY2hlY2tp bmcgZm9yIHVpZF90IGluIHN5cy90eXBlcy5oIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNo byAnJCcneydhY19jdl90eXBlX3VpZF90JytzZXR9J2BcIiA9IHNldCI7IHRoZW4KICAgZWNo byAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKIGVsc2UKICAgY2F0ID4gY29uZnRlc3Qu JGFjX2V4dCA8PEVPRgotI2xpbmUgMTQ0MiAiY29uZmlndXJlIgorI2xpbmUgMTM2NSAiY29u ZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CiBFT0YKQEAgLTE0NjcsMTIgKzEzOTAsMTIgQEAKIGZpCiAKIGVjaG8gJGFjX24gImNoZWNr aW5nIGZvciBzc2l6ZV90IiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZToxNDcx OiBjaGVja2luZyBmb3Igc3NpemVfdCIgPiY1CitlY2hvICJjb25maWd1cmU6MTM5NDogY2hl Y2tpbmcgZm9yIHNzaXplX3QiID4mNQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2Fj X2N2X3R5cGVfc3NpemVfdCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24g IihjYWNoZWQpICRhY19jIiAxPiY2CiBlbHNlCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQg PDxFT0YKLSNsaW5lIDE0NzYgImNvbmZpZ3VyZSIKKyNsaW5lIDEzOTkgImNvbmZpZ3VyZSIK ICNpbmNsdWRlICJjb25mZGVmcy5oIgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2lmIFNU RENfSEVBREVSUwpAQCAtMTQ4MSw3ICsxNDA0LDcgQEAKICNlbmRpZgogRU9GCiBpZiAoZXZh bCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0gIGVncmVwICIoXnxbXmEt ekEtWl8wLTldKXNzaXplX3RbXmEtekEtWl8wLTldIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4K KyAgZWdyZXAgInNzaXplX3RbXmEtekEtWl8wLTldIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4K ICAgcm0gLXJmIGNvbmZ0ZXN0KgogICBhY19jdl90eXBlX3NzaXplX3Q9eWVzCiBlbHNlCkBA IC0xNTAwLDIxICsxNDIzLDIxIEBACiBmaQogCiBlY2hvICRhY19uICJjaGVja2luZyBmb3Ig aW5saW5lIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZToxNTA0OiBjaGVja2lu ZyBmb3IgaW5saW5lIiA+JjUKK2VjaG8gImNvbmZpZ3VyZToxNDI3OiBjaGVja2luZyBmb3Ig aW5saW5lIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9jX2lubGlu ZScrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19j IiAxPiY2CiBlbHNlCiAgIGFjX2N2X2NfaW5saW5lPW5vCiBmb3IgYWNfa3cgaW4gaW5saW5l IF9faW5saW5lX18gX19pbmxpbmU7IGRvCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxF T0YKLSNsaW5lIDE1MTEgImNvbmZpZ3VyZSIKKyNsaW5lIDE0MzQgImNvbmZpZ3VyZSIKICNp bmNsdWRlICJjb25mZGVmcy5oIgogCiBpbnQgbWFpbigpIHsKIH0gJGFjX2t3IGZvbygpIHsK IDsgcmV0dXJuIDA7IH0KIEVPRgotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxNTE4OiBc IiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRhY19jb21waWxlKSAyPiY1OyB9OyB0aGVu CitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjE0NDE6IFwiJGFjX2NvbXBpbGVcIikgMT4m NTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4KICAgcm0gLXJmIGNvbmZ0ZXN0 KgogICBhY19jdl9jX2lubGluZT0kYWNfa3c7IGJyZWFrCiBlbHNlCkBAIC0xNTQxLDIyICsx NDY0LDIxIEBACiAKIAogIyBVc2UgL2Jpbi9zaCBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSBn byBsb29raW5nIGZvciBzaCBpbiB0aGUgcGF0aAotaWYgKHRlc3QgLXogIiRTSCIgLWEgLXgg L2Jpbi9zaCk7IHRoZW4KK2lmIHRlc3QgIi4kU0giID0gLiAtYSAtZiAvYmluL3NoOyB0aGVu CiAgIFNIPSIvYmluL3NoIgogZmkKICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic2gi LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgogc2V0IGR1bW15IHNo OyBhY193b3JkPSQyCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAk YWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjE1NTE6IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CitlY2hvICJjb25maWd1cmU6MTQ3NDogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX1NIJytzZXR9J2Bc IiA9IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKIGVs c2UKICAgaWYgdGVzdCAtbiAiJFNIIjsgdGhlbgogICBhY19jdl9wcm9nX1NIPSIkU0giICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgogZWxzZQotICBJRlM9IiR7SUZTPSAJ fSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSI6IgotICBhY19kdW1teT0iJFBBVEgiCi0g IGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbworICBJRlM9IiR7SUZTPSAJfSI7IGFjX3Nh dmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU306IgorICBmb3IgYWNfZGlyIGluICRQQVRIOyBk bwogICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCiAgICAgaWYgdGVzdCAtZiAk YWNfZGlyLyRhY193b3JkOyB0aGVuCiAgICAgICBhY19jdl9wcm9nX1NIPSJzaCIKQEAgLTE1 NzUsMTIgKzE0OTcsMTIgQEAKIAogCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgTE9DS19F WCBpbiBzeXMvZmlsZS5oIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZToxNTc5 OiBjaGVja2luZyBmb3IgTE9DS19FWCBpbiBzeXMvZmlsZS5oIiA+JjUKK2VjaG8gImNvbmZp Z3VyZToxNTAxOiBjaGVja2luZyBmb3IgTE9DS19FWCBpbiBzeXMvZmlsZS5oIiA+JjUKIGlm IGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9kZWZpbmVfTE9DS19FWCcrc2V0fSdg XCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2CiBl bHNlCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDE1ODQgImNvbmZp Z3VyZSIKKyNsaW5lIDE1MDYgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgog CiAjaW5jbHVkZSA8c3lzL2ZpbGUuaD4KQEAgLTE2MDcsMTIgKzE1MjksMTIgQEAKIAogZWNo byAiJGFjX3QiIiRhY19jdl9kZWZpbmVfTE9DS19FWCIgMT4mNgogZWNobyAkYWNfbiAiY2hl Y2tpbmcgZm9yIEZfU0VUTEsgaW4gZmNudGwuaCIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJj b25maWd1cmU6MTYxMTogY2hlY2tpbmcgZm9yIEZfU0VUTEsgaW4gZmNudGwuaCIgPiY1Citl Y2hvICJjb25maWd1cmU6MTUzMzogY2hlY2tpbmcgZm9yIEZfU0VUTEsgaW4gZmNudGwuaCIg PiY1CiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfZGVmaW5lX0ZfU0VUTEsn K3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIg MT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAxNjE2 ICJjb25maWd1cmUiCisjbGluZSAxNTM4ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRl ZnMuaCIKIAogI2luY2x1ZGUgPGZjbnRsLmg+CkBAIC0xNjM5LDEyICsxNTYxLDEyIEBACiAK IGVjaG8gIiRhY190IiIkYWNfY3ZfZGVmaW5lX0ZfU0VUTEsiIDE+JjYKIGVjaG8gJGFjX24g ImNoZWNraW5nIGZvciBQVEhSRUFEX1BST0NFU1NfU0hBUkVEIGluIHB0aHJlYWQuaCIiLi4u ICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MTY0MzogY2hlY2tpbmcgZm9yIFBUSFJF QURfUFJPQ0VTU19TSEFSRUQgaW4gcHRocmVhZC5oIiA+JjUKK2VjaG8gImNvbmZpZ3VyZTox NTY1OiBjaGVja2luZyBmb3IgUFRIUkVBRF9QUk9DRVNTX1NIQVJFRCBpbiBwdGhyZWFkLmgi ID4mNQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2RlZmluZV9QVEhSRUFE X1BST0NFU1NfU0hBUkVEJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAi KGNhY2hlZCkgJGFjX2MiIDE+JjYKIGVsc2UKICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8 PEVPRgotI2xpbmUgMTY0OCAiY29uZmlndXJlIgorI2xpbmUgMTU3MCAiY29uZmlndXJlIgog I2luY2x1ZGUgImNvbmZkZWZzLmgiCiAKICNpbmNsdWRlIDxwdGhyZWFkLmg+CkBAIC0xODM4 LDcgKzE3NjAsNyBAQAogIAogCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgcHRocmVhZF9t dXRleF9pbml0IGluIC1scHRocmVhZCIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1 cmU6MTg0MjogY2hlY2tpbmcgZm9yIHB0aHJlYWRfbXV0ZXhfaW5pdCBpbiAtbHB0aHJlYWQi ID4mNQorZWNobyAiY29uZmlndXJlOjE3NjQ6IGNoZWNraW5nIGZvciBwdGhyZWFkX211dGV4 X2luaXQgaW4gLWxwdGhyZWFkIiA+JjUKIGFjX2xpYl92YXI9YGVjaG8gcHRocmVhZCdfJ3B0 aHJlYWRfbXV0ZXhfaW5pdCB8IHNlZCAneSUuLystJV9fcF8lJ2AKIGlmIGV2YWwgInRlc3Qg XCJgZWNobyAnJCcneydhY19jdl9saWJfJGFjX2xpYl92YXInK3NldH0nYFwiID0gc2V0Ijsg dGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgpAQCAtMTg0Niw3ICsx NzY4LDcgQEAKICAgYWNfc2F2ZV9MSUJTPSIkTElCUyIKIExJQlM9Ii1scHRocmVhZCAgJExJ QlMiCiBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAxODUwICJjb25maWd1 cmUiCisjbGluZSAxNzcyICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKIC8q IE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv ci4gICovCiAvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0 dXJuIHR5cGUgb2YgYSBnY2MyCkBAIC0xODU3LDcgKzE3NzksNyBAQAogcHRocmVhZF9tdXRl eF9pbml0KCkKIDsgcmV0dXJuIDA7IH0KIEVPRgotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3Vy ZToxODYxOiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYm IHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4KK2lmIHsgKGV2YWwgZWNobyBj b25maWd1cmU6MTc4MzogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4m NTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0OyB0aGVuCiAgIHJtIC1yZiBjb25mdGVzdCoKICAg ZXZhbCAiYWNfY3ZfbGliXyRhY19saWJfdmFyPXllcyIKIGVsc2UKQEAgLTE4ODksNiArMTgx MSw3IEBACiAgICAgICAgOzsKICAgICpiZW9zKikKICAgICAgICBPU0RJUj0iYmVvcyIKKyAg ICAgICBDRkxBR1M9IiRDRkxBR1MgLURCRU9TIgogICAgICAgIDs7CiAgICAqKQogICAgICAg IE9TRElSPSJ1bml4IgpAQCAtMTg5Niw3ICsxODE5LDcgQEAKIGVzYWMKIAogZWNobyAkYWNf biAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8g ImNvbmZpZ3VyZToxOTAwOiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwiID4mNQorZWNo byAiY29uZmlndXJlOjE4MjM6IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CiBh Y19saWJfdmFyPWBlY2hvIGRsJ18nZGxvcGVuIHwgc2VkICd5JS4vKy0lX19wXyUnYAogaWYg ZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2xpYl8kYWNfbGliX3Zhcicrc2V0fSdg XCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2CkBA IC0xOTA0LDcgKzE4MjcsNyBAQAogICBhY19zYXZlX0xJQlM9IiRMSUJTIgogTElCUz0iLWxk bCAgJExJQlMiCiBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAxOTA4ICJj b25maWd1cmUiCisjbGluZSAxODMxICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMu aCIKIC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4gICovCiAvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCkBAIC0xOTE1LDcgKzE4MzgsNyBAQAogZGxvcGVu KCkKIDsgcmV0dXJuIDA7IH0KIEVPRgotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxOTE5 OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3Qg LXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1 cmU6MTg0MjogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0OyB0aGVuCiAgIHJtIC1yZiBjb25mdGVzdCoKICAgZXZhbCAi YWNfY3ZfbGliXyRhY19saWJfdmFyPXllcyIKIGVsc2UKQEAgLTE5NDMsNyArMTg2Niw3IEBA CiBmaQogCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgcHRocmVhZF9tdXRleF9pbml0IGlu IC1scHRocmVhZCIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MTk0NzogY2hl Y2tpbmcgZm9yIHB0aHJlYWRfbXV0ZXhfaW5pdCBpbiAtbHB0aHJlYWQiID4mNQorZWNobyAi Y29uZmlndXJlOjE4NzA6IGNoZWNraW5nIGZvciBwdGhyZWFkX211dGV4X2luaXQgaW4gLWxw dGhyZWFkIiA+JjUKIGFjX2xpYl92YXI9YGVjaG8gcHRocmVhZCdfJ3B0aHJlYWRfbXV0ZXhf aW5pdCB8IHNlZCAneSUuLystJV9fcF8lJ2AKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcn eydhY19jdl9saWJfJGFjX2xpYl92YXInK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hv ICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgpAQCAtMTk1MSw3ICsxODc0LDcgQEAKICAg YWNfc2F2ZV9MSUJTPSIkTElCUyIKIExJQlM9Ii1scHRocmVhZCAgJExJQlMiCiBjYXQgPiBj b25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAxOTU1ICJjb25maWd1cmUiCisjbGluZSAx ODc4ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKIC8qIE92ZXJyaWRlIGFu eSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCiAvKiBX ZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2Yg YSBnY2MyCkBAIC0xOTYyLDcgKzE4ODUsNyBAQAogcHRocmVhZF9tdXRleF9pbml0KCkKIDsg cmV0dXJuIDA7IH0KIEVPRgotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxOTY2OiBcIiRh Y19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29u ZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTg4 OTogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0OyB0aGVuCiAgIHJtIC1yZiBjb25mdGVzdCoKICAgZXZhbCAiYWNfY3Zf bGliXyRhY19saWJfdmFyPXllcyIKIGVsc2UKQEAgLTE5OTAsNyArMTkxMyw3IEBACiBmaQog CiBlY2hvICRhY19uICJjaGVja2luZyBmb3Igc29ja2V0IGluIC1sc29ja2V0IiIuLi4gJGFj X2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZToxOTk0OiBjaGVja2luZyBmb3Igc29ja2V0IGlu IC1sc29ja2V0IiA+JjUKK2VjaG8gImNvbmZpZ3VyZToxOTE3OiBjaGVja2luZyBmb3Igc29j a2V0IGluIC1sc29ja2V0IiA+JjUKIGFjX2xpYl92YXI9YGVjaG8gc29ja2V0J18nc29ja2V0 IHwgc2VkICd5JS4vKy0lX19wXyUnYAogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2Fj X2N2X2xpYl8kYWNfbGliX3Zhcicrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFj X24gIihjYWNoZWQpICRhY19jIiAxPiY2CkBAIC0xOTk4LDcgKzE5MjEsNyBAQAogICBhY19z YXZlX0xJQlM9IiRMSUJTIgogTElCUz0iLWxzb2NrZXQgICRMSUJTIgogY2F0ID4gY29uZnRl c3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgMjAwMiAiY29uZmlndXJlIgorI2xpbmUgMTkyNSAi Y29uZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAvKiBPdmVycmlkZSBhbnkgZ2Nj MiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwogLyogV2UgdXNl IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2Nj MgpAQCAtMjAwOSw3ICsxOTMyLDcgQEAKIHNvY2tldCgpCiA7IHJldHVybiAwOyB9CiBFT0YK LWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MjAxMzogXCIkYWNfbGlua1wiKSAxPiY1OyAo ZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9 OyB0aGVuCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjE5MzY6IFwiJGFjX2xpbmtcIikg MT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdDsgdGhl bgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2xpYl8kYWNfbGliX3Zhcj15 ZXMiCiBlbHNlCkBAIC0yMDM3LDcgKzE5NjAsNyBAQAogZmkKIAogZWNobyAkYWNfbiAiY2hl Y2tpbmcgZm9yIGNyeXB0IGluIC1sdWZjIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZp Z3VyZToyMDQxOiBjaGVja2luZyBmb3IgY3J5cHQgaW4gLWx1ZmMiID4mNQorZWNobyAiY29u ZmlndXJlOjE5NjQ6IGNoZWNraW5nIGZvciBjcnlwdCBpbiAtbHVmYyIgPiY1CiBhY19saWJf dmFyPWBlY2hvIHVmYydfJ2NyeXB0IHwgc2VkICd5JS4vKy0lX19wXyUnYAogaWYgZXZhbCAi dGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2xpYl8kYWNfbGliX3Zhcicrc2V0fSdgXCIgPSBz ZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2CkBAIC0yMDQ1 LDcgKzE5NjgsNyBAQAogICBhY19zYXZlX0xJQlM9IiRMSUJTIgogTElCUz0iLWx1ZmMgICRM SUJTIgogY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgMjA0OSAiY29uZmln dXJlIgorI2xpbmUgMTk3MiAiY29uZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAv KiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy b3IuICAqLwogLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgZ2NjMgpAQCAtMjA1Niw3ICsxOTc5LDcgQEAKIGNyeXB0KCkKIDsg cmV0dXJuIDA7IH0KIEVPRgotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMDYwOiBcIiRh Y19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29u ZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTk4 MzogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0OyB0aGVuCiAgIHJtIC1yZiBjb25mdGVzdCoKICAgZXZhbCAiYWNfY3Zf bGliXyRhY19saWJfdmFyPXllcyIKIGVsc2UKQEAgLTIwODQsNyArMjAwNyw3IEBACiBmaQog CiAKLWlmICh0ZXN0ICIkU1lTX1NXIiA9ICJBSVgiKTsgdGhlbgoraWYgdGVzdCAiLiRTWVNf U1ciID0gIi5BSVgiOyB0aGVuCiAgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1VX19TVFJfXyIKICAg ICBjYXNlICIkU1lTX0tWIiBpbgogCTEyKikKQEAgLTIxMDgsMTcgKzIwMzEsMTMgQEAKICAg ICBlc2FjCiBmaQogCi1pZiAodGVzdCAiJFNZU19TVyIgPSAiRnJlZUJTRCIpOyB0aGVuCi0g ICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1wdGhyZWFkIC1VX19TVFJfXyIKLWZpCi0KIGVjaG8gJGFj X24gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiIuLi4gJGFjX2MiIDE+JjYK LWVjaG8gImNvbmZpZ3VyZToyMTE3OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxl cyIgPiY1CitlY2hvICJjb25maWd1cmU6MjAzNjogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFk ZXIgZmlsZXMiID4mNQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2hlYWRl cl9zdGRjJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkg JGFjX2MiIDE+JjYKIGVsc2UKICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xp bmUgMjEyMiAiY29uZmlndXJlIgorI2xpbmUgMjA0MSAiY29uZmlndXJlIgogI2luY2x1ZGUg ImNvbmZkZWZzLmgiCiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RkYXJnLmg+ CkBAIC0yMTI2LDggKzIwNDUsOCBAQAogI2luY2x1ZGUgPGZsb2F0Lmg+CiBFT0YKIGFjX3Ry eT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQi Ci17IChldmFsIGVjaG8gY29uZmlndXJlOjIxMzA6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZh bCAkYWNfdHJ5KSAyPiY1OyB9Ci1hY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91 dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgCit7IChldmFsIGVjaG8gY29u ZmlndXJlOjIwNDk6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9 CithY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dGAKIGlmIHRlc3QgLXogIiRh Y19lcnIiOyB0aGVuCiAgIHJtIC1yZiBjb25mdGVzdCoKICAgYWNfY3ZfaGVhZGVyX3N0ZGM9 eWVzCkBAIC0yMTQzLDcgKzIwNjIsNyBAQAogaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMg PSB5ZXM7IHRoZW4KICAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBt ZW0qLCBjb250cmFyeSB0byBBTlNJLgogY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgot I2xpbmUgMjE0NyAiY29uZmlndXJlIgorI2xpbmUgMjA2NiAiY29uZmlndXJlIgogI2luY2x1 ZGUgImNvbmZkZWZzLmgiCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiBFT0YKQEAgLTIxNjEsNyAr MjA4MCw3IEBACiBpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgogICAj IElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRv IEFOU0kuCiBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyMTY1ICJjb25m aWd1cmUiCisjbGluZSAyMDg0ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIK ICNpbmNsdWRlIDxzdGRsaWIuaD4KIEVPRgpAQCAtMjE4Miw3ICsyMTAxLDcgQEAKICAgOgog ZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyMTg2ICJjb25m aWd1cmUiCisjbGluZSAyMTA1ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIK ICNpbmNsdWRlIDxjdHlwZS5oPgogI2RlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYm IChjKSA8PSAneicpCkBAIC0yMTkzLDcgKzIxMTIsNyBAQAogZXhpdCAoMCk7IH0KIAogRU9G Ci1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjIxOTc6IFwiJGFjX2xpbmtcIikgMT4mNTsg KGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0 fSAmJiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGwKK2lmIHsgKGV2YWwgZWNobyBj b25maWd1cmU6MjExNjogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4m NTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0ICYmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYv bnVsbAogdGhlbgogICA6CiBlbHNlCkBAIC0yMjIxLDE4ICsyMTQwLDE4IEBACiBkbwogYWNf c2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19u ICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1 cmU6MjIyNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjIx NDQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAn JCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBl Y2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVz dC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyMjMwICJjb25maWd1cmUiCisjbGluZSAyMTQ5ICJj b25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgog RU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29u ZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMjM1OiBcIiRhY190cnlcIikg MT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBj b25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZh bCBlY2hvIGNvbmZpZ3VyZToyMTU0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3Ry eSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0 ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFj X2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yMjYxLDE4ICsyMTgwLDE4IEBACiBkbwog YWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRh Y19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25m aWd1cmU6MjI2NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJl OjIxODQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNo byAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgog ICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25m dGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyMjcwICJjb25maWd1cmUiCisjbGluZSAyMTg5 ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRy PgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+ Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMjc1OiBcIiRhY190cnlc IikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICor JyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAo ZXZhbCBlY2hvIGNvbmZpZ3VyZToyMTk0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFj X3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBp ZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwg ImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yMzAxLDE4ICsyMjIwLDE4IEBACiBk bwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hv ICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJj b25maWd1cmU6MjMwNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmln dXJlOjIyMjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJg ZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhl bgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBj b25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyMzEwICJjb25maWd1cmUiCisjbGluZSAy MjI5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNf aGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxs IDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMzE1OiBcIiRhY190 cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICde ICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAor eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMjM0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwg JGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRg CiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2 YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yMzQxLDE4ICsyMjYwLDE4IEBA CiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBl Y2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hv ICJjb25maWd1cmU6MjM0NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29u ZmlndXJlOjIyNjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3Qg XCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0Ijsg dGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQg PiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyMzUwICJjb25maWd1cmUiCisjbGlu ZSAyMjY5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwk YWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9u dWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMzU1OiBcIiRh Y190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12 ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQi YAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMjc0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2 YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5v dXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAg IGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yMzgxLDE4ICsyMzAwLDE4 IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdg CiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1l Y2hvICJjb25maWd1cmU6MjM4NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAi Y29uZmlndXJlOjIzMDQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRl c3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0 IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBj YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyMzkwICJjb25maWd1cmUiCisj bGluZSAyMzA5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRl IDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rl di9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMzk1OiBc IiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVw IC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9 XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMzE0OiBcIiRhY190cnlcIikgMT4mNTsg KGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVz dC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3Qq CiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yNDIxLDE4ICsyMzQw LDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3Bf JSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2 Ci1lY2hvICJjb25maWd1cmU6MjQyNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNo byAiY29uZmlndXJlOjIzNDQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwg InRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0g c2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQog ICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyNDMwICJjb25maWd1cmUi CisjbGluZSAyMzQ5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNs dWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+ L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyNDM1 OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBn cmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19l eHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMzU0OiBcIiRhY190cnlcIikgMT4m NTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25m dGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRl c3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yNDYxLDE4ICsy MzgwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVf X3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAx PiY2Ci1lY2hvICJjb25maWd1cmU6MjQ2NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQor ZWNobyAiY29uZmlndXJlOjIzODQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2 YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwi ID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxz ZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyNDcwICJjb25maWd1 cmUiCisjbGluZSAyMzg5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNp bmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4 dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToy NDc1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJy PWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHth Y19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMzk0OiBcIiRhY190cnlcIikg MT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBj b25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29u ZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yNTAxLDE4 ICsyNDIwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8r LSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19j IiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MjUwNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4m NQorZWNobyAiY29uZmlndXJlOjI0MjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlm IGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0n YFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgog ZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyNTEwICJjb25m aWd1cmUiCisjbGluZSAyNDI5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIK ICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFj X2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3Vy ZToyNTE1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNf ZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3Qu JHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyNDM0OiBcIiRhY190cnlc IikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICor JyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYg Y29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yNTQx LDE4ICsyNDYwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3kl Li8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRh Y19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MjU0NTogY2hlY2tpbmcgZm9yICRhY19oZHIi ID4mNQorZWNobyAiY29uZmlndXJlOjI0NjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUK IGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3Nl dH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4m NgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyNTUwICJj b25maWd1cmUiCisjbGluZSAyNDY5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMu aCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZp Z3VyZToyNTU1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQot YWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRl c3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyNDc0OiBcIiRhY190 cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICde ICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAt cmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0y NTgxLDE4ICsyNTAwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQg J3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4u ICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MjU4NTogY2hlY2tpbmcgZm9yICRhY19o ZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI1MDQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+ JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUn K3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIg MT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyNTkw ICJjb25maWd1cmUiCisjbGluZSAyNTA5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRl ZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNv bmZpZ3VyZToyNTk1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsg fQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29u ZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyNTE0OiBcIiRh Y190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12 ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBy bSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBA IC0yNjIxLDE4ICsyNTQwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBz ZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIi Li4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MjYyNTogY2hlY2tpbmcgZm9yICRh Y19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI1NDQ6IGNoZWNraW5nIGZvciAkYWNfaGRy IiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3Nh ZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNf YyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAy NjMwICJjb25maWd1cmUiCisjbGluZSAyNTQ5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29u ZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hv IGNvbmZpZ3VyZToyNjM1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4m NTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJe Y29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyNTU0OiBc IiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVw IC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgog ICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMi CkBAIC0yNjYxLDE4ICsyNTgwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIg fCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hk ciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MjY2NTogY2hlY2tpbmcgZm9y ICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI1ODQ6IGNoZWNraW5nIGZvciAkYWNf aGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFj X3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAk YWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGlu ZSAyNjcwICJjb25maWd1cmUiCisjbGluZSAyNTg5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAi Y29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAg Y29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBl Y2hvIGNvbmZpZ3VyZToyNjc1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkg Mj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12 ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyNTk0 OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBn cmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhl bgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15 ZXMiCkBAIC0yNzAxLDE4ICsyNjIwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hk ciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFj X2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MjcwNTogY2hlY2tpbmcg Zm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI2MjQ6IGNoZWNraW5nIGZvciAk YWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJf JGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVk KSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0j bGluZSAyNzEwICJjb25maWd1cmUiCisjbGluZSAyNjI5ICJjb25maWd1cmUiCiAjaW5jbHVk ZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19j cHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZh bCBlY2hvIGNvbmZpZ3VyZToyNzE1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3Ry eSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVw IC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToy NjM0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJy PWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsg dGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2Fm ZT15ZXMiCkBAIC0yNzQxLDE4ICsyNjYwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFj X2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3Ig JGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6Mjc0NTogY2hlY2tp bmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI2NjQ6IGNoZWNraW5nIGZv ciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFk ZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2Fj aGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G Ci0jbGluZSAyNzUwICJjb25maWd1cmUiCisjbGluZSAyNjY5ICJjb25maWd1cmUiCiAjaW5j bHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRh Y19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAo ZXZhbCBlY2hvIGNvbmZpZ3VyZToyNzU1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFj X3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBn cmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3Vy ZToyNjc0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNf ZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJy IjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNf c2FmZT15ZXMiCkBAIC0yNzgxLDE4ICsyNzAwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAi JGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBm b3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6Mjc4NTogY2hl Y2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI3MDQ6IGNoZWNraW5n IGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9o ZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIo Y2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8 RU9GCi0jbGluZSAyNzkwICJjb25maWd1cmUiCisjbGluZSAyNzA5ICJjb25maWd1cmUiCiAj aW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0Igot eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyNzk1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwg JGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQg fCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZp Z3VyZToyNzE0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQor YWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNf ZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8k YWNfc2FmZT15ZXMiCkBAIC0yODIxLDE4ICsyNzQwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNo byAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2lu ZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MjgyNTog Y2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI3NDQ6IGNoZWNr aW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19j dl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19u ICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0 IDw8RU9GCi0jbGluZSAyODMwICJjb25maWd1cmUiCisjbGluZSAyNzQ5ICJjb25maWd1cmUi CiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190 cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0 IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyODM1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2 YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5v dXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNv bmZpZ3VyZToyNzU0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsg fQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIk YWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRl cl8kYWNfc2FmZT15ZXMiCkBAIC0yODYxLDE4ICsyNzgwLDE4IEBACiBkbwogYWNfc2FmZT1g ZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVj a2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6Mjg2 NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI3ODQ6IGNo ZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydh Y19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRh Y19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNf ZXh0IDw8RU9GCi0jbGluZSAyODcwICJjb25maWd1cmUiCisjbGluZSAyNzg5ICJjb25maWd1 cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBh Y190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qu b3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyODc1OiBcIiRhY190cnlcIikgMT4mNTsg KGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVz dC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hv IGNvbmZpZ3VyZToyNzk0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4m NTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16 ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hl YWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yOTAxLDE4ICsyODIwLDE4IEBACiBkbwogYWNfc2Fm ZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJj aGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6 MjkwNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI4MjQ6 IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcn eydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hv ICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4k YWNfZXh0IDw8RU9GCi0jbGluZSAyOTEwICJjb25maWd1cmUiCisjbGluZSAyODI5ICJjb25m aWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9G CiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRl c3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyOTE1OiBcIiRhY190cnlcIikgMT4m NTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25m dGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBl Y2hvIGNvbmZpZ3VyZToyODM0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkg Mj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0 IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2 X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yOTQxLDE4ICsyODYwLDE4IEBACiBkbwogYWNf c2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19u ICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1 cmU6Mjk0NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjI4 NjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAn JCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBl Y2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVz dC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyOTUwICJjb25maWd1cmUiCisjbGluZSAyODY5ICJj b25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgog RU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29u ZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyOTU1OiBcIiRhY190cnlcIikg MT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBj b25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZh bCBlY2hvIGNvbmZpZ3VyZToyODc0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3Ry eSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0 ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFj X2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0yOTgxLDE4ICsyOTAwLDE4IEBACiBkbwog YWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRh Y19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25m aWd1cmU6Mjk4NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJl OjI5MDQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNo byAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgog ICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25m dGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAyOTkwICJjb25maWd1cmUiCisjbGluZSAyOTA5 ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRy PgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+ Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyOTk1OiBcIiRhY190cnlc IikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICor JyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAo ZXZhbCBlY2hvIGNvbmZpZ3VyZToyOTE0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFj X3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBp ZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwg ImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zMDIxLDE4ICsyOTQwLDE4IEBACiBk bwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hv ICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJj b25maWd1cmU6MzAyNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmln dXJlOjI5NDQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJg ZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhl bgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBj b25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzMDMwICJjb25maWd1cmUiCisjbGluZSAy OTQ5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNf aGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxs IDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMDM1OiBcIiRhY190 cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICde ICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAor eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyOTU0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwg JGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRg CiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2 YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zMDYxLDE4ICsyOTgwLDE4IEBA CiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBl Y2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hv ICJjb25maWd1cmU6MzA2NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29u ZmlndXJlOjI5ODQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3Qg XCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0Ijsg dGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQg PiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzMDcwICJjb25maWd1cmUiCisjbGlu ZSAyOTg5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwk YWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9u dWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMDc1OiBcIiRh Y190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12 ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQi YAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyOTk0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2 YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5v dXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAg IGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zMTAxLDE4ICszMDIwLDE4 IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdg CiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1l Y2hvICJjb25maWd1cmU6MzEwNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAi Y29uZmlndXJlOjMwMjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRl c3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0 IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBj YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzMTEwICJjb25maWd1cmUiCisj bGluZSAzMDI5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRl IDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rl di9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMTE1OiBc IiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVw IC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9 XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMDM0OiBcIiRhY190cnlcIikgMT4mNTsg KGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVz dC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3Qq CiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zMTQxLDE4ICszMDYw LDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3Bf JSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2 Ci1lY2hvICJjb25maWd1cmU6MzE0NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNo byAiY29uZmlndXJlOjMwNjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwg InRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0g c2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQog ICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzMTUwICJjb25maWd1cmUi CisjbGluZSAzMDY5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNs dWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+ L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMTU1 OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBn cmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19l eHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMDc0OiBcIiRhY190cnlcIikgMT4m NTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25m dGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRl c3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zMTgxLDE4ICsz MTAwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVf X3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAx PiY2Ci1lY2hvICJjb25maWd1cmU6MzE4NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQor ZWNobyAiY29uZmlndXJlOjMxMDQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2 YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwi ID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxz ZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzMTkwICJjb25maWd1 cmUiCisjbGluZSAzMTA5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNp bmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4 dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToz MTk1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJy PWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHth Y19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMTE0OiBcIiRhY190cnlcIikg MT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBj b25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29u ZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zMjIxLDE4 ICszMTQwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8r LSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19j IiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzIyNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4m NQorZWNobyAiY29uZmlndXJlOjMxNDQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlm IGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0n YFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgog ZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzMjMwICJjb25m aWd1cmUiCisjbGluZSAzMTQ5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIK ICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFj X2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3Vy ZTozMjM1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNf ZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3Qu JHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMTU0OiBcIiRhY190cnlc IikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICor JyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYg Y29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zMjYx LDE4ICszMTgwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3kl Li8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRh Y19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzI2NTogY2hlY2tpbmcgZm9yICRhY19oZHIi ID4mNQorZWNobyAiY29uZmlndXJlOjMxODQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUK IGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3Nl dH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4m NgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzMjcwICJj b25maWd1cmUiCisjbGluZSAzMTg5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMu aCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZp Z3VyZTozMjc1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQot YWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRl c3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMTk0OiBcIiRhY190 cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICde ICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAt cmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0z MzAxLDE4ICszMjIwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQg J3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4u ICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzMwNTogY2hlY2tpbmcgZm9yICRhY19o ZHIiID4mNQorZWNobyAiY29uZmlndXJlOjMyMjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+ JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUn K3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIg MT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzMzEw ICJjb25maWd1cmUiCisjbGluZSAzMjI5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRl ZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNv bmZpZ3VyZTozMzE1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsg fQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29u ZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMjM0OiBcIiRh Y190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12 ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBy bSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBA IC0zMzQxLDE4ICszMjYwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBz ZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIi Li4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzM0NTogY2hlY2tpbmcgZm9yICRh Y19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjMyNjQ6IGNoZWNraW5nIGZvciAkYWNfaGRy IiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3Nh ZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNf YyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAz MzUwICJjb25maWd1cmUiCisjbGluZSAzMjY5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29u ZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hv IGNvbmZpZ3VyZTozMzU1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4m NTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJe Y29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMjc0OiBc IiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVw IC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgog ICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMi CkBAIC0zMzgxLDE4ICszMzAwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIg fCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hk ciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzM4NTogY2hlY2tpbmcgZm9y ICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjMzMDQ6IGNoZWNraW5nIGZvciAkYWNf aGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFj X3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAk YWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGlu ZSAzMzkwICJjb25maWd1cmUiCisjbGluZSAzMzA5ICJjb25maWd1cmUiCiAjaW5jbHVkZSAi Y29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAg Y29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBl Y2hvIGNvbmZpZ3VyZTozMzk1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkg Mj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12 ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMzE0 OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBn cmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhl bgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15 ZXMiCkBAIC0zNDIxLDE4ICszMzQwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hk ciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFj X2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzQyNTogY2hlY2tpbmcg Zm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjMzNDQ6IGNoZWNraW5nIGZvciAk YWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJf JGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVk KSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0j bGluZSAzNDMwICJjb25maWd1cmUiCisjbGluZSAzMzQ5ICJjb25maWd1cmUiCiAjaW5jbHVk ZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19j cHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZh bCBlY2hvIGNvbmZpZ3VyZTozNDM1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3Ry eSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVw IC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToz MzU0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJy PWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsg dGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2Fm ZT15ZXMiCkBAIC0zNDYxLDE4ICszMzgwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFj X2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3Ig JGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzQ2NTogY2hlY2tp bmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjMzODQ6IGNoZWNraW5nIGZv ciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFk ZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2Fj aGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G Ci0jbGluZSAzNDcwICJjb25maWd1cmUiCisjbGluZSAzMzg5ICJjb25maWd1cmUiCiAjaW5j bHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRh Y19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAo ZXZhbCBlY2hvIGNvbmZpZ3VyZTozNDc1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFj X3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBn cmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3Vy ZTozMzk0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNf ZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJy IjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNf c2FmZT15ZXMiCkBAIC0zNTAxLDE4ICszNDIwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAi JGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBm b3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzUwNTogY2hl Y2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjM0MjQ6IGNoZWNraW5n IGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9o ZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIo Y2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8 RU9GCi0jbGluZSAzNTEwICJjb25maWd1cmUiCisjbGluZSAzNDI5ICJjb25maWd1cmUiCiAj aW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0Igot eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNTE1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwg JGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQg fCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZp Z3VyZTozNDM0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQor YWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNf ZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8k YWNfc2FmZT15ZXMiCkBAIC0zNTQxLDE4ICszNDYwLDE4IEBACiBkbwogYWNfc2FmZT1gZWNo byAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2lu ZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzU0NTog Y2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjM0NjQ6IGNoZWNr aW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19j dl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19u ICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0 IDw8RU9GCi0jbGluZSAzNTUwICJjb25maWd1cmUiCisjbGluZSAzNDY5ICJjb25maWd1cmUi CiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190 cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0 IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNTU1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2 YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5v dXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNv bmZpZ3VyZTozNDc0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsg fQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIk YWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRl cl8kYWNfc2FmZT15ZXMiCkBAIC0zNTgxLDE4ICszNTAwLDE4IEBACiBkbwogYWNfc2FmZT1g ZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVj a2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6MzU4 NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjM1MDQ6IGNo ZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydh Y19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRh Y19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNf ZXh0IDw8RU9GCi0jbGluZSAzNTkwICJjb25maWd1cmUiCisjbGluZSAzNTA5ICJjb25maWd1 cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBh Y190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qu b3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNTk1OiBcIiRhY190cnlcIikgMT4mNTsg KGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVz dC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hv IGNvbmZpZ3VyZTozNTE0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4m NTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16 ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hl YWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zNjIxLDE4ICszNTQwLDE4IEBACiBkbwogYWNfc2Fm ZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJj aGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6 MzYyNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjM1NDQ6 IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcn eydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hv ICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4k YWNfZXh0IDw8RU9GCi0jbGluZSAzNjMwICJjb25maWd1cmUiCisjbGluZSAzNTQ5ICJjb25m aWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9G CiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRl c3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNjM1OiBcIiRhY190cnlcIikgMT4m NTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25m dGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBl Y2hvIGNvbmZpZ3VyZTozNTU0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkg Mj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0 IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2 X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zNjYxLDE4ICszNTgwLDE4IEBACiBkbwogYWNf c2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19u ICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1 cmU6MzY2NTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjM1 ODQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAn JCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBl Y2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVz dC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzNjcwICJjb25maWd1cmUiCisjbGluZSAzNTg5ICJj b25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgog RU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29u ZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNjc1OiBcIiRhY190cnlcIikg MT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBj b25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZh bCBlY2hvIGNvbmZpZ3VyZTozNTk0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3Ry eSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0 ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFj X2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zNzAxLDE4ICszNjIwLDE4IEBACiBkbwog YWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRh Y19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25m aWd1cmU6MzcwNTogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJl OjM2MjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNo byAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgog ICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25m dGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzNzEwICJjb25maWd1cmUiCisjbGluZSAzNjI5 ICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRy PgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+ Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNzE1OiBcIiRhY190cnlc IikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICor JyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAo ZXZhbCBlY2hvIGNvbmZpZ3VyZTozNjM0OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFj X3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBp ZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwg ImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zNzQyLDE4ICszNjYxLDE4IEBACiBk bwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hv ICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJj b25maWd1cmU6Mzc0NjogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmln dXJlOjM2NjU6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJg ZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhl bgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBj b25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzNzUxICJjb25maWd1cmUiCisjbGluZSAz NjcwICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNf aGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxs IDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNzU2OiBcIiRhY190 cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICde ICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAor eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNjc1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwg JGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRg CiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2 YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zNzgyLDE4ICszNzAxLDE4IEBA CiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBl Y2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hv ICJjb25maWd1cmU6Mzc4NjogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29u ZmlndXJlOjM3MDU6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3Qg XCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0Ijsg dGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQg PiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzNzkxICJjb25maWd1cmUiCisjbGlu ZSAzNzEwICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwk YWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9u dWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNzk2OiBcIiRh Y190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12 ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQi YAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNzE1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2 YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5v dXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAg IGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zODIzLDE4ICszNzQyLDE4 IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdg CiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1l Y2hvICJjb25maWd1cmU6MzgyNzogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAi Y29uZmlndXJlOjM3NDY6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRl c3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0 IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBj YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzODMyICJjb25maWd1cmUiCisj bGluZSAzNzUxICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRl IDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rl di9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozODM3OiBc IiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVw IC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9 XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNzU2OiBcIiRhY190cnlcIikgMT4mNTsg KGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVz dC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3Qq CiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zODYzLDE4ICszNzgy LDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3Bf JSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2 Ci1lY2hvICJjb25maWd1cmU6Mzg2NzogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNo byAiY29uZmlndXJlOjM3ODY6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwg InRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0g c2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQog ICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzODcyICJjb25maWd1cmUi CisjbGluZSAzNzkxICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNs dWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+ L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozODc3 OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBn cmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19l eHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNzk2OiBcIiRhY190cnlcIikgMT4m NTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25m dGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRl c3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zOTAzLDE4ICsz ODIyLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVf X3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAx PiY2Ci1lY2hvICJjb25maWd1cmU6MzkwNzogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQor ZWNobyAiY29uZmlndXJlOjM4MjY6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2 YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwi ID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxz ZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzOTEyICJjb25maWd1 cmUiCisjbGluZSAzODMxICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNp bmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4 dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToz OTE3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJy PWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHth Y19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozODM2OiBcIiRhY190cnlcIikg MT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBj b25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29u ZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zOTQzLDE4 ICszODYyLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8r LSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19j IiAxPiY2Ci1lY2hvICJjb25maWd1cmU6Mzk0NzogY2hlY2tpbmcgZm9yICRhY19oZHIiID4m NQorZWNobyAiY29uZmlndXJlOjM4NjY6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlm IGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0n YFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgog ZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzOTUyICJjb25m aWd1cmUiCisjbGluZSAzODcxICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIK ICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFj X2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3Vy ZTozOTU3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNf ZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3Qu JHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozODc2OiBcIiRhY190cnlc IikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICdeICor JyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYg Y29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC0zOTgz LDE4ICszOTAyLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3kl Li8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4uICRh Y19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6Mzk4NzogY2hlY2tpbmcgZm9yICRhY19oZHIi ID4mNQorZWNobyAiY29uZmlndXJlOjM5MDY6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUK IGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3Nl dH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4m NgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAzOTkyICJj b25maWd1cmUiCisjbGluZSAzOTExICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMu aCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZp Z3VyZTozOTk3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQot YWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRl c3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozOTE2OiBcIiRhY190 cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12ICde ICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBybSAt cmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBAIC00 MDIzLDE4ICszOTQyLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQg J3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIiLi4u ICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NDAyNzogY2hlY2tpbmcgZm9yICRhY19o ZHIiID4mNQorZWNobyAiY29uZmlndXJlOjM5NDY6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+ JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUn K3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIg MT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSA0MDMy ICJjb25maWd1cmUiCisjbGluZSAzOTUxICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRl ZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNv bmZpZ3VyZTo0MDM3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsg fQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29u ZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozOTU2OiBcIiRh Y190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVwIC12 ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgogICBy bSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCkBA IC00MDYzLDE4ICszOTgyLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIgfCBz ZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hkciIi Li4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NDA2NzogY2hlY2tpbmcgZm9yICRh Y19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjM5ODY6IGNoZWNraW5nIGZvciAkYWNfaGRy IiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3Nh ZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNf YyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSA0 MDcyICJjb25maWd1cmUiCisjbGluZSAzOTkxICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29u ZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hv IGNvbmZpZ3VyZTo0MDc3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4m NTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJe Y29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozOTk2OiBc IiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBncmVw IC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgog ICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMi CkBAIC00MTAzLDE4ICs0MDIyLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hkciIg fCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2hk ciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NDEwNzogY2hlY2tpbmcgZm9y ICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjQwMjY6IGNoZWNraW5nIGZvciAkYWNf aGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFj X3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAk YWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGlu ZSA0MTEyICJjb25maWd1cmUiCisjbGluZSA0MDMxICJjb25maWd1cmUiCiAjaW5jbHVkZSAi Y29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19jcHAg Y29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBl Y2hvIGNvbmZpZ3VyZTo0MTE3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkg Mj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12 ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0MDM2 OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJyPWBn cmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhl bgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15 ZXMiCkBAIC00MTQzLDE4ICs0MDYyLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFjX2hk ciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFj X2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NDE0NzogY2hlY2tpbmcg Zm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjQwNjY6IGNoZWNraW5nIGZvciAk YWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJf JGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVk KSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0j bGluZSA0MTUyICJjb25maWd1cmUiCisjbGluZSA0MDcxICJjb25maWd1cmUiCiAjaW5jbHVk ZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRhY19j cHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZh bCBlY2hvIGNvbmZpZ3VyZTo0MTU3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3Ry eSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVw IC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0 MDc2OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNfZXJy PWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsg dGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2Fm ZT15ZXMiCkBAIC00MTgzLDE4ICs0MTAyLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAiJGFj X2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBmb3Ig JGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NDE4NzogY2hlY2tp bmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjQxMDY6IGNoZWNraW5nIGZv ciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFk ZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIoY2Fj aGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G Ci0jbGluZSA0MTkyICJjb25maWd1cmUiCisjbGluZSA0MTExICJjb25maWd1cmUiCiAjaW5j bHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9IiRh Y19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAo ZXZhbCBlY2hvIGNvbmZpZ3VyZTo0MTk3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFj X3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBn cmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZpZ3Vy ZTo0MTE2OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQorYWNf ZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNfZXJy IjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNf c2FmZT15ZXMiCkBAIC00MjIzLDE4ICs0MTQyLDE4IEBACiBkbwogYWNfc2FmZT1gZWNobyAi JGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2luZyBm b3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NDIyNzogY2hl Y2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjQxNDY6IGNoZWNraW5n IGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9o ZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIo Y2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8 RU9GCi0jbGluZSA0MjMyICJjb25maWd1cmUiCisjbGluZSA0MTUxICJjb25maWd1cmUiCiAj aW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0Igot eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0MjM3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwg JGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQg fCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNvbmZp Z3VyZTo0MTU2OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQor YWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIkYWNf ZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRlcl8k YWNfc2FmZT15ZXMiCkBAIC00MjY0LDE4ICs0MTgzLDE4IEBACiBkbwogYWNfc2FmZT1gZWNo byAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVja2lu ZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NDI2ODog Y2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjQxODc6IGNoZWNr aW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19j dl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19u ICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0 IDw8RU9GCi0jbGluZSA0MjczICJjb25maWd1cmUiCisjbGluZSA0MTkyICJjb25maWd1cmUi CiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBhY190 cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0 IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0Mjc4OiBcIiRhY190cnlcIikgMT4mNTsgKGV2 YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5v dXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hvIGNv bmZpZ3VyZTo0MTk3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsg fQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16ICIk YWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hlYWRl cl8kYWNfc2FmZT15ZXMiCkBAIC00MzA0LDE4ICs0MjIzLDE4IEBACiBkbwogYWNfc2FmZT1g ZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCiBlY2hvICRhY19uICJjaGVj a2luZyBmb3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NDMw ODogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQorZWNobyAiY29uZmlndXJlOjQyMjc6IGNo ZWNraW5nIGZvciAkYWNfaGRyIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydh Y19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRh Y19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNf ZXh0IDw8RU9GCi0jbGluZSA0MzEzICJjb25maWd1cmUiCisjbGluZSA0MjMyICJjb25maWd1 cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDwkYWNfaGRyPgogRU9GCiBh Y190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qu b3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0MzE4OiBcIiRhY190cnlcIikgMT4mNTsg KGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVz dC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAoreyAoZXZhbCBlY2hv IGNvbmZpZ3VyZTo0MjM3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4m NTsgfQorYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXRgCiBpZiB0ZXN0IC16 ICIkYWNfZXJyIjsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2hl YWRlcl8kYWNfc2FmZT15ZXMiCkBAIC00MzQyLDEyICs0MjYxLDEyIEBACiAKIAogZWNobyAk YWNfbiAiY2hlY2tpbmcgZm9yIHdvcmtpbmcgY29uc3QiIi4uLiAkYWNfYyIgMT4mNgotZWNo byAiY29uZmlndXJlOjQzNDY6IGNoZWNraW5nIGZvciB3b3JraW5nIGNvbnN0IiA+JjUKK2Vj aG8gImNvbmZpZ3VyZTo0MjY1OiBjaGVja2luZyBmb3Igd29ya2luZyBjb25zdCIgPiY1CiBp ZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfY19jb25zdCcrc2V0fSdgXCIgPSBz ZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2CiBlbHNlCiAg IGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDQzNTEgImNvbmZpZ3VyZSIK KyNsaW5lIDQyNzAgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgogCiBpbnQg bWFpbigpIHsKQEAgLTQzOTYsNyArNDMxNSw3IEBACiAKIDsgcmV0dXJuIDA7IH0KIEVPRgot aWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0NDAwOiBcIiRhY19jb21waWxlXCIpIDE+JjU7 IChldmFsICRhY19jb21waWxlKSAyPiY1OyB9OyB0aGVuCitpZiB7IChldmFsIGVjaG8gY29u ZmlndXJlOjQzMTk6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUp IDI+JjU7IH07IHRoZW4KICAgcm0gLXJmIGNvbmZ0ZXN0KgogICBhY19jdl9jX2NvbnN0PXll cwogZWxzZQpAQCAtNDQxNywxMiArNDMzNiwxMiBAQAogZmkKIAogZWNobyAkYWNfbiAiY2hl Y2tpbmcgZm9yIHNpemVfdCIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NDQy MTogY2hlY2tpbmcgZm9yIHNpemVfdCIgPiY1CitlY2hvICJjb25maWd1cmU6NDM0MDogY2hl Y2tpbmcgZm9yIHNpemVfdCIgPiY1CiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNf Y3ZfdHlwZV9zaXplX3QnK3NldH0nYFwiID0gc2V0IjsgdGhlbgogICBlY2hvICRhY19uICIo Y2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8 RU9GCi0jbGluZSA0NDI2ICJjb25maWd1cmUiCisjbGluZSA0MzQ1ICJjb25maWd1cmUiCiAj aW5jbHVkZSAiY29uZmRlZnMuaCIKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpZiBTVERD X0hFQURFUlMKQEAgLTQ0MzEsNyArNDM1MCw3IEBACiAjZW5kaWYKIEVPRgogaWYgKGV2YWwg IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotICBlZ3JlcCAiKF58W15hLXpB LVpfMC05XSlzaXplX3RbXmEtekEtWl8wLTldIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAg ZWdyZXAgInNpemVfdFteYS16QS1aXzAtOV0iID4vZGV2L251bGwgMj4mMTsgdGhlbgogICBy bSAtcmYgY29uZnRlc3QqCiAgIGFjX2N2X3R5cGVfc2l6ZV90PXllcwogZWxzZQpAQCAtNDQ1 MywxOCArNDM3MiwxOCBAQAogZG8KIGFjX3NhZmU9YGVjaG8gIiRhY19oZHIiIHwgc2VkICd5 JS4vKy0lX19wXyUnYAogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY19oZHIiIi4uLiAk YWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjQ0NTc6IGNoZWNraW5nIGZvciAkYWNfaGRy IiA+JjUKK2VjaG8gImNvbmZpZ3VyZTo0Mzc2OiBjaGVja2luZyBmb3IgJGFjX2hkciIgPiY1 CiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfaGVhZGVyXyRhY19zYWZlJytz ZXR9J2BcIiA9IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+ JjYKIGVsc2UKICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgNDQ2MiAi Y29uZmlndXJlIgorI2xpbmUgNDM4MSAiY29uZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZz LmgiCiAjaW5jbHVkZSA8JGFjX2hkcj4KIEVPRgogYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCIKLXsgKGV2YWwgZWNobyBjb25m aWd1cmU6NDQ2NzogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0K LWFjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0 ZXN0LiR7YWNfZXh0fVwkImAKK3sgKGV2YWwgZWNobyBjb25maWd1cmU6NDM4NjogXCIkYWNf dHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0KK2FjX2Vycj1gZ3JlcCAtdiAn XiAqKycgY29uZnRlc3Qub3V0YAogaWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KICAgcm0g LXJmIGNvbmZ0ZXN0KgogICBldmFsICJhY19jdl9oZWFkZXJfJGFjX3NhZmU9eWVzIgpAQCAt NDQ5MiwxMiArNDQxMSwxMiBAQAogZm9yIGFjX2Z1bmMgaW4gZ2V0cGFnZXNpemUKIGRvCiBl Y2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2Z1bmMiIi4uLiAkYWNfYyIgMT4mNgotZWNo byAiY29uZmlndXJlOjQ0OTY6IGNoZWNraW5nIGZvciAkYWNfZnVuYyIgPiY1CitlY2hvICJj b25maWd1cmU6NDQxNTogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUKIGlmIGV2YWwgInRl c3QgXCJgZWNobyAnJCcneydhY19jdl9mdW5jXyRhY19mdW5jJytzZXR9J2BcIiA9IHNldCI7 IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKIGVsc2UKICAgY2F0 ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgNDUwMSAiY29uZmlndXJlIgorI2xp bmUgNDQyMCAiY29uZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAvKiBTeXN0ZW0g aGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3Rv dHlwZXMsCiAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciAkYWNfZnVuYygpOyBi ZWxvdy4gICovCkBAIC00NTIwLDcgKzQ0MzksNyBAQAogCiA7IHJldHVybiAwOyB9CiBFT0YK LWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDUyNDogXCIkYWNfbGlua1wiKSAxPiY1OyAo ZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9 OyB0aGVuCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQ0NDM6IFwiJGFjX2xpbmtcIikg MT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdDsgdGhl bgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2YWwgImFjX2N2X2Z1bmNfJGFjX2Z1bmM9eWVz IgogZWxzZQpAQCAtNDU0NSw3ICs0NDY0LDcgQEAKIGRvbmUKIAogZWNobyAkYWNfbiAiY2hl Y2tpbmcgZm9yIHdvcmtpbmcgbW1hcCIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1 cmU6NDU0OTogY2hlY2tpbmcgZm9yIHdvcmtpbmcgbW1hcCIgPiY1CitlY2hvICJjb25maWd1 cmU6NDQ2ODogY2hlY2tpbmcgZm9yIHdvcmtpbmcgbW1hcCIgPiY1CiBpZiBldmFsICJ0ZXN0 IFwiYGVjaG8gJyQnJ3snYWNfY3ZfZnVuY19tbWFwX2ZpeGVkX21hcHBlZCcrc2V0fSdgXCIg PSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2CiBlbHNl CkBAIC00NTUzLDcgKzQ0NzIsNyBAQAogICBhY19jdl9mdW5jX21tYXBfZml4ZWRfbWFwcGVk PW5vCiBlbHNlCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDQ1NTcg ImNvbmZpZ3VyZSIKKyNsaW5lIDQ0NzYgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVm cy5oIgogCiAvKiBUaGFua3MgdG8gTWlrZSBIYWVydGVsIGFuZCBKaW0gQXZlcmEgZm9yIHRo aXMgdGVzdC4KQEAgLTQ2OTMsNyArNDYxMiw3IEBACiB9CiAKIEVPRgotaWYgeyAoZXZhbCBl Y2hvIGNvbmZpZ3VyZTo0Njk3OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5r KSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gJiYgKC4vY29uZnRl c3Q7IGV4aXQpIDI+L2Rldi9udWxsCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQ2MTY6 IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAt cyBjb25mdGVzdCAmJiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGwKIHRoZW4KICAg YWNfY3ZfZnVuY19tbWFwX2ZpeGVkX21hcHBlZD15ZXMKIGVsc2UKQEAgLTQ3MTYsNyArNDYz NSw3IEBACiBmaQogCiBlY2hvICRhY19uICJjaGVja2luZyB3aGV0aGVyIHNldHBncnAgdGFr ZXMgbm8gYXJndW1lbnQiIi4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjQ3MjA6 IGNoZWNraW5nIHdoZXRoZXIgc2V0cGdycCB0YWtlcyBubyBhcmd1bWVudCIgPiY1CitlY2hv ICJjb25maWd1cmU6NDYzOTogY2hlY2tpbmcgd2hldGhlciBzZXRwZ3JwIHRha2VzIG5vIGFy Z3VtZW50IiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9mdW5jX3Nl dHBncnBfdm9pZCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNo ZWQpICRhY19jIiAxPiY2CiBlbHNlCkBAIC00NzI0LDEzICs0NjQzLDkgQEAKICAgeyBlY2hv ICJjb25maWd1cmU6IGVycm9yOiBjYW5ub3QgY2hlY2sgc2V0cGdycCBpZiBjcm9zcyBjb21w aWxpbmciIDE+JjI7IGV4aXQgMTsgfQogZWxzZQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0 IDw8RU9GCi0jbGluZSA0NzI4ICJjb25maWd1cmUiCisjbGluZSA0NjQ3ICJjb25maWd1cmUi CiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKIAotI2lmZGVmIEhBVkVfVU5JU1REX0gKLSNpbmNs dWRlIDx1bmlzdGQuaD4KLSNlbmRpZgotCiAvKgogICogSWYgdGhpcyBzeXN0ZW0gaGFzIGEg QlNELXN0eWxlIHNldHBncnAsIHdoaWNoIHRha2VzIGFyZ3VtZW50cywgZXhpdAogICogc3Vj Y2Vzc2Z1bGx5LgpAQCAtNDc0NCw3ICs0NjU5LDcgQEAKIH0KIAogRU9GCi1pZiB7IChldmFs IGVjaG8gY29uZmlndXJlOjQ3NDg6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xp bmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAmJiAoLi9jb25m dGVzdDsgZXhpdCkgMj4vZGV2L251bGwKK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDY2 MzogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0ICYmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVsbAogdGhlbgog ICBhY19jdl9mdW5jX3NldHBncnBfdm9pZD1ubwogZWxzZQpAQCAtNDc2OSw5ICs0Njg0LDkg QEAKIAogCiBlY2hvICRhY19uICJjaGVja2luZyBsb29raW5nIGZvciB1bmlvbiBzZW11biBp biBzeXMvc2VtLmgiIi4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjQ3NzM6IGNo ZWNraW5nIGxvb2tpbmcgZm9yIHVuaW9uIHNlbXVuIGluIHN5cy9zZW0uaCIgPiY1CitlY2hv ICJjb25maWd1cmU6NDY4ODogY2hlY2tpbmcgbG9va2luZyBmb3IgdW5pb24gc2VtdW4gaW4g c3lzL3NlbS5oIiA+JjUKIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDQ3 NzUgImNvbmZpZ3VyZSIKKyNsaW5lIDQ2OTAgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25m ZGVmcy5oIgogCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CkBAIC00Nzg1LDcgKzQ3MDAsNyBA QAogCiA7IHJldHVybiAwOyB9CiBFT0YKLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDc4 OTogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsg dGhlbgoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0NzA0OiBcIiRhY19jb21waWxlXCIp IDE+JjU7IChldmFsICRhY19jb21waWxlKSAyPiY1OyB9OyB0aGVuCiAgIHJtIC1yZiBjb25m dGVzdCoKICAgY2F0ID4+IGNvbmZkZWZzLmggPDxcRU9GCiAjZGVmaW5lIEhBVkVfU1RSVUNU X1VOSU9OX1NFTVVOIDEKQEAgLTQ4MDEsMTUgKzQ3MTYsNzAgQEAKIHJtIC1mIGNvbmZ0ZXN0 KgogZWNobyAiJGFjX3QiIiRtc2ciIDE+JjYKIAorZm9yIGFjX2Z1bmMgaW4gcHRocmVhZF9z aWdtYXNrCitkbworZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY19mdW5jIiIuLi4gJGFj X2MiIDE+JjYKK2VjaG8gImNvbmZpZ3VyZTo0NzIzOiBjaGVja2luZyBmb3IgJGFjX2Z1bmMi ID4mNQoraWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2Z1bmNfJGFjX2Z1bmMn K3NldH0nYFwiID0gc2V0IjsgdGhlbgorICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIg MT4mNgorZWxzZQorICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCisjbGluZSA0NzI4 ICJjb25maWd1cmUiCisjaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIFN5c3RlbSBoZWFkZXIg dG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywK KyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyICRhY19mdW5jKCk7IGJlbG93LiAg Ki8KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKy8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFs IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCisvKiBXZSB1c2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCisgICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KK2NoYXIgJGFjX2Z1bmMoKTsKKworaW50IG1haW4oKSB7CisKKy8qIFRoZSBHTlUg QyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVu dHMKKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFy ZSBhY3R1YWxseSBuYW1lZAorICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0 aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworI2lmIGRlZmluZWQgKF9fc3R1Yl8k YWNfZnVuYykgfHwgZGVmaW5lZCAoX19zdHViX19fJGFjX2Z1bmMpCitjaG9rZSBtZQorI2Vs c2UKKyRhY19mdW5jKCk7CisjZW5kaWYKKworOyByZXR1cm4gMDsgfQorRU9GCitpZiB7IChl dmFsIGVjaG8gY29uZmlndXJlOjQ3NTE6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFj X2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdDsgdGhlbgorICBybSAtcmYgY29u ZnRlc3QqCisgIGV2YWwgImFjX2N2X2Z1bmNfJGFjX2Z1bmM9eWVzIgorZWxzZQorICBlY2hv ICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorICBjYXQgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKyAgcm0gLXJmIGNvbmZ0ZXN0KgorICBldmFsICJhY19jdl9mdW5jXyRh Y19mdW5jPW5vIgorZmkKK3JtIC1mIGNvbmZ0ZXN0KgorZmkKKworaWYgZXZhbCAidGVzdCBc ImBlY2hvICckYWNfY3ZfZnVuY18nJGFjX2Z1bmNgXCIgPSB5ZXMiOyB0aGVuCisgIGVjaG8g IiRhY190IiJ5ZXMiIDE+JjYKKyAgICBhY190cl9mdW5jPUhBVkVfYGVjaG8gJGFjX2Z1bmMg fCB0ciAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonICdBQkNERUZHSElKS0xNTk9QUVJT VFVWV1hZWidgCisgIGNhdCA+PiBjb25mZGVmcy5oIDw8RU9GCisjZGVmaW5lICRhY190cl9m dW5jIDEKK0VPRgorIAorZWxzZQorICBlY2hvICIkYWNfdCIibm8iIDE+JjYKK2ZpCitkb25l CisKIGZvciBhY19mdW5jIGluIHN0cmNhc2VjbXAgc3RyaWNtcCBwb2xsIHNldHNpZAogZG8K IGVjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfZnVuYyIiLi4uICRhY19jIiAxPiY2Ci1l Y2hvICJjb25maWd1cmU6NDgwODogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUKK2VjaG8g ImNvbmZpZ3VyZTo0Nzc4OiBjaGVja2luZyBmb3IgJGFjX2Z1bmMiID4mNQogaWYgZXZhbCAi dGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2Z1bmNfJGFjX2Z1bmMnK3NldH0nYFwiID0gc2V0 IjsgdGhlbgogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgogZWxzZQogICBj YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSA0ODEzICJjb25maWd1cmUiCisj bGluZSA0NzgzICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKIC8qIFN5c3Rl bSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJv dG90eXBlcywKICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyICRhY19mdW5jKCk7 IGJlbG93LiAgKi8KQEAgLTQ4MzIsNyArNDgwMiw3IEBACiAKIDsgcmV0dXJuIDA7IH0KIEVP RgotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0ODM2OiBcIiRhY19saW5rXCIpIDE+JjU7 IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4 dH07IHRoZW4KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDgwNjogXCIkYWNfbGlua1wi KSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0OyB0 aGVuCiAgIHJtIC1yZiBjb25mdGVzdCoKICAgZXZhbCAiYWNfY3ZfZnVuY18kYWNfZnVuYz15 ZXMiCiBlbHNlCkBAIC00ODU5LDEyICs0ODI5LDEyIEBACiBmb3IgYWNfZnVuYyBpbiBzaWdh Y3Rpb24gd3JpdGV2CiBkbwogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY19mdW5jIiIu Li4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo0ODYzOiBjaGVja2luZyBmb3IgJGFj X2Z1bmMiID4mNQorZWNobyAiY29uZmlndXJlOjQ4MzM6IGNoZWNraW5nIGZvciAkYWNfZnVu YyIgPiY1CiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfZnVuY18kYWNfZnVu Yycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19j IiAxPiY2CiBlbHNlCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDQ4 NjggImNvbmZpZ3VyZSIKKyNsaW5lIDQ4MzggImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25m ZGVmcy5oIgogLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQg aG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRo IGNoYXIgJGFjX2Z1bmMoKTsgYmVsb3cuICAqLwpAQCAtNDg4Nyw3ICs0ODU3LDcgQEAKIAog OyByZXR1cm4gMDsgfQogRU9GCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQ4OTE6IFwi JGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBj b25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0 ODYxOiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRl c3QgLXMgY29uZnRlc3Q7IHRoZW4KICAgcm0gLXJmIGNvbmZ0ZXN0KgogICBldmFsICJhY19j dl9mdW5jXyRhY19mdW5jPXllcyIKIGVsc2UKQEAgLTQ5MTQsMTIgKzQ4ODQsMTIgQEAKIGZv ciBhY19mdW5jIGluIGdldHBhc3MKIGRvCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFj X2Z1bmMiIi4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjQ5MTg6IGNoZWNraW5n IGZvciAkYWNfZnVuYyIgPiY1CitlY2hvICJjb25maWd1cmU6NDg4ODogY2hlY2tpbmcgZm9y ICRhY19mdW5jIiA+JjUKIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9mdW5j XyRhY19mdW5jJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KICAgZWNobyAkYWNfbiAiKGNhY2hl ZCkgJGFjX2MiIDE+JjYKIGVsc2UKICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgot I2xpbmUgNDkyMyAiY29uZmlndXJlIgorI2xpbmUgNDg5MyAiY29uZmlndXJlIgogI2luY2x1 ZGUgImNvbmZkZWZzLmgiCiAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFj cm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICAgd2hpY2ggY2FuIGNvbmZs aWN0IHdpdGggY2hhciAkYWNfZnVuYygpOyBiZWxvdy4gICovCkBAIC00OTQyLDcgKzQ5MTIs NyBAQAogCiA7IHJldHVybiAwOyB9CiBFT0YKLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6 NDk0NjogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCitpZiB7IChldmFsIGVjaG8gY29u ZmlndXJlOjQ5MTY6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7 IH0gJiYgdGVzdCAtcyBjb25mdGVzdDsgdGhlbgogICBybSAtcmYgY29uZnRlc3QqCiAgIGV2 YWwgImFjX2N2X2Z1bmNfJGFjX2Z1bmM9eWVzIgogZWxzZQpAQCAtNDk2NywxMiArNDkzNywx MiBAQAogZG9uZQogCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgX2dldGNoIiIuLi4gJGFj X2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo0OTcxOiBjaGVja2luZyBmb3IgX2dldGNoIiA+ JjUKK2VjaG8gImNvbmZpZ3VyZTo0OTQxOiBjaGVja2luZyBmb3IgX2dldGNoIiA+JjUKIGlm IGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9mdW5jX19nZXRjaCcrc2V0fSdgXCIg PSBzZXQiOyB0aGVuCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2CiBlbHNl CiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDQ5NzYgImNvbmZpZ3Vy ZSIKKyNsaW5lIDQ5NDYgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgogLyog U3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZl dyBwcm90b3R5cGVzLAogICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgX2dldGNo KCk7IGJlbG93LiAgKi8KQEAgLTQ5OTUsNyArNDk2NSw3IEBACiAKIDsgcmV0dXJuIDA7IH0K IEVPRgotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0OTk5OiBcIiRhY19saW5rXCIpIDE+ JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4 ZWV4dH07IHRoZW4KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDk2OTogXCIkYWNfbGlu a1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 OyB0aGVuCiAgIHJtIC1yZiBjb25mdGVzdCoKICAgZXZhbCAiYWNfY3ZfZnVuY19fZ2V0Y2g9 eWVzIgogZWxzZQpAQCAtNTAxNSw2ICs0OTg1LDYyIEBACiBmaQogCiAKK2ZvciBhY19mdW5j IGluIGdtdGltZV9yIGxvY2FsdGltZV9yCitkbworZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9y ICRhY19mdW5jIiIuLi4gJGFjX2MiIDE+JjYKK2VjaG8gImNvbmZpZ3VyZTo0OTkyOiBjaGVj a2luZyBmb3IgJGFjX2Z1bmMiID4mNQoraWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2Fj X2N2X2Z1bmNfJGFjX2Z1bmMnK3NldH0nYFwiID0gc2V0IjsgdGhlbgorICBlY2hvICRhY19u ICIoY2FjaGVkKSAkYWNfYyIgMT4mNgorZWxzZQorICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0 IDw8RU9GCisjbGluZSA0OTk3ICJjb25maWd1cmUiCisjaW5jbHVkZSAiY29uZmRlZnMuaCIK Ky8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxs eSBmZXcgcHJvdG90eXBlcywKKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyICRh Y19mdW5jKCk7IGJlbG93LiAgKi8KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKy8qIE92ZXJyaWRl IGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCisv KiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUg b2YgYSBnY2MyCisgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KK2NoYXIgJGFjX2Z1bmMoKTsKKworaW50IG1haW4o KSB7CisKKy8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25z IHdoaWNoIGl0IGltcGxlbWVudHMKKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4g IFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAorICAgIHNvbWV0aGluZyBzdGFy dGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworI2lm IGRlZmluZWQgKF9fc3R1Yl8kYWNfZnVuYykgfHwgZGVmaW5lZCAoX19zdHViX19fJGFjX2Z1 bmMpCitjaG9rZSBtZQorI2Vsc2UKKyRhY19mdW5jKCk7CisjZW5kaWYKKworOyByZXR1cm4g MDsgfQorRU9GCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjUwMjA6IFwiJGFjX2xpbmtc IikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdDsg dGhlbgorICBybSAtcmYgY29uZnRlc3QqCisgIGV2YWwgImFjX2N2X2Z1bmNfJGFjX2Z1bmM9 eWVzIgorZWxzZQorICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQorICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKKyAgcm0gLXJmIGNvbmZ0ZXN0KgorICBl dmFsICJhY19jdl9mdW5jXyRhY19mdW5jPW5vIgorZmkKK3JtIC1mIGNvbmZ0ZXN0KgorZmkK KworaWYgZXZhbCAidGVzdCBcImBlY2hvICckYWNfY3ZfZnVuY18nJGFjX2Z1bmNgXCIgPSB5 ZXMiOyB0aGVuCisgIGVjaG8gIiRhY190IiJ5ZXMiIDE+JjYKKyAgICBhY190cl9mdW5jPUhB VkVfYGVjaG8gJGFjX2Z1bmMgfCB0ciAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonICdB QkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWidgCisgIGNhdCA+PiBjb25mZGVmcy5oIDw8RU9G CisjZGVmaW5lICRhY190cl9mdW5jIDEKK0VPRgorIAorZWxzZQorICBlY2hvICIkYWNfdCIi bm8iIDE+JjYKK2ZpCitkb25lCisKKwogCiAKIApAQCAtNTA0Niw3ICs1MDcyLDcgQEAKICMg VWx0cml4IHNoIHNldCB3cml0ZXMgdG8gc3RkZXJyIGFuZCBjYW4ndCBiZSByZWRpcmVjdGVk IGRpcmVjdGx5LAogIyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQgaW4gdGhlIGNhY2hlIGZpbGUg dW5sZXNzIHdlIGFzc2lnbiB0byB0aGUgdmFycy4KIChzZXQpIDI+JjEgfAotICBjYXNlIGAo YWNfc3BhY2U9JyAnOyBzZXQgfCBncmVwIGFjX3NwYWNlKSAyPiYxYCBpbgorICBjYXNlIGAo YWNfc3BhY2U9JyAnOyBzZXQpIDI+JjFgIGluCiAgICphY19zcGFjZT1cICopCiAgICAgIyBg c2V0JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90ZXMgKGRvdWJsZS1x dW90ZSBzdWJzdGl0dXRpb24KICAgICAjIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0 dXJucyBcXCBpbnRvIFwpLgpAQCAtNTExMyw3ICs1MTM5LDcgQEAKICAgICBlY2hvICJydW5u aW5nIFwke0NPTkZJR19TSEVMTC0vYmluL3NofSAkMCAkYWNfY29uZmlndXJlX2FyZ3MgLS1u by1jcmVhdGUgLS1uby1yZWN1cnNpb24iCiAgICAgZXhlYyBcJHtDT05GSUdfU0hFTEwtL2Jp bi9zaH0gJDAgJGFjX2NvbmZpZ3VyZV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9u IDs7CiAgIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12 ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12KQotICAgIGVjaG8gIiRDT05GSUdfU1RBVFVTIGdl bmVyYXRlZCBieSBhdXRvY29uZiB2ZXJzaW9uIDIuMTMiCisgICAgZWNobyAiJENPTkZJR19T VEFUVVMgZ2VuZXJhdGVkIGJ5IGF1dG9jb25mIHZlcnNpb24gMi4xMiIKICAgICBleGl0IDAg OzsKICAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtLWgpCiAgICAgZWNobyAi XCRhY19jc191c2FnZSI7IGV4aXQgMCA7OwpAQCAtNTEzNiwxMSArNTE2Miw5IEBACiAgcy9A QC8lQC87IHMvQEAvQCUvOyBzL0BnXCQvJWcvJyA+IGNvbmZ0ZXN0LnN1YnMgPDxcXENFT0YK ICRhY192cHN1YgogJGV4dHJhc3ViCi1zJUBTSEVMTEAlJFNIRUxMJWcKIHMlQENGTEFHU0Al JENGTEFHUyVnCiBzJUBDUFBGTEFHU0AlJENQUEZMQUdTJWcKIHMlQENYWEZMQUdTQCUkQ1hY RkxBR1MlZwotcyVARkZMQUdTQCUkRkZMQUdTJWcKIHMlQERFRlNAJSRERUZTJWcKIHMlQExE RkxBR1NAJSRMREZMQUdTJWcKIHMlQExJQlNAJSRMSUJTJWcKSW5kZXg6IHNyYy9saWIvYXBy L2ZpbGVfaW8vdW5peC9vcGVuLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3Zz L2FwYWNoZS0yLjAvc3JjL2xpYi9hcHIvZmlsZV9pby91bml4L29wZW4uYyx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4xMwpkaWZmIC11IC1yMS4xMyBvcGVuLmMKLS0tIG9wZW4uYwkxOTk5 LzEwLzA2IDIzOjAzOjQ2CTEuMTMKKysrIG9wZW4uYwkxOTk5LzEwLzA5IDE2OjQ2OjUxCkBA IC0yNzgsMyArMjc4LDE3IEBACiAgICAgcmV0dXJuIEFQUl9TVUNDRVNTOwogfSAgIAogCisv KiAqKipBUFJET0MqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorICogYXBfc3RhdHVzX3QgYXBfZmVycm9yKGFwX2ZpbGVfdCAqKSAK KyAqICAgIElzIHRoZXJlIGFuIGVycm9yIG9uIHRoZSBzdHJlYW0/CisgKiBhcmcgMSkgVGhl IGFwciBmaWxlIHdlIGFyZSB0ZXN0aW5nLgorICogTk9URTogIFJldHVybnMgLTEgaWYgdGhl IGVycm9yIGluZGljYXRvciBpcyBzZXQsIEFQUl9TVUNDRVNTIG90aGVyd2lzZS4KKyAqLwor YXBfc3RhdHVzX3QgYXBfZmVycm9yKGFwX2ZpbGVfdCAqZnB0cikKK3sKKyAgICBpZiAoZmVy cm9yKGZwdHItPmZpbGVoYW5kKSkgeworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisK KyAgICByZXR1cm4gQVBSX1NVQ0NFU1M7Cit9ICAgCkluZGV4OiBzcmMvbGliL2Fwci9pbmNs dWRlL2Fwcl9maWxlX2lvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL2Fw YWNoZS0yLjAvc3JjL2xpYi9hcHIvaW5jbHVkZS9hcHJfZmlsZV9pby5oLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjEwCmRpZmYgLXUgLXIxLjEwIGFwcl9maWxlX2lvLmgKLS0tIGFwcl9m aWxlX2lvLmgJMTk5OS8xMC8wOCAxMzo0NzowMwkxLjEwCisrKyBhcHJfZmlsZV9pby5oCTE5 OTkvMTAvMDkgMTY6NDY6NTUKQEAgLTExMSw2ICsxMTEsNyBAQAogYXBfc3RhdHVzX3QgYXBf Y2xvc2UoYXBfZmlsZV90ICopOwogYXBfc3RhdHVzX3QgYXBfcmVtb3ZlX2ZpbGUoY2hhciAq LCBhcF9jb250ZXh0X3QgKik7CiBhcF9zdGF0dXNfdCBhcF9lb2YoYXBfZmlsZV90ICopOwor YXBfc3RhdHVzX3QgYXBfZmVycm9yKGFwX2ZpbGVfdCAqKTsKIAogYXBfc3RhdHVzX3QgYXBf cmVhZChhcF9maWxlX3QgKiwgdm9pZCAqLCBhcF9zc2l6ZV90ICopOwogYXBfc3RhdHVzX3Qg YXBfd3JpdGUoYXBfZmlsZV90ICosIHZvaWQgKiwgYXBfc3NpemVfdCAqKTsKSW5kZXg6IHNy Yy9saWIvYXByL2luY2x1ZGUvYXByX2xpYi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9o b21lL2N2cy9hcGFjaGUtMi4wL3NyYy9saWIvYXByL2luY2x1ZGUvYXByX2xpYi5oLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjExCmRpZmYgLXUgLXIxLjExIGFwcl9saWIuaAotLS0gYXBy X2xpYi5oCTE5OTkvMTAvMDggMTM6NDc6MDQJMS4xMQorKysgYXByX2xpYi5oCTE5OTkvMTAv MDkgMTY6NDY6NTUKQEAgLTE2NCw2ICsxNjQsOCBAQAogICogRGVmaW5lIHRoZSBwcm90b3R5 cGVzIGZvciB0aGUgdmFyaW91cyBBUFIgR1Agcm91dGluZXMuCiAgKi8KIEFQSV9FWFBPUlQo Y2hhciAqKSBhcF9jcHlzdHJuKGNoYXIgKmQsIGNvbnN0IGNoYXIgKnMsIHNpemVfdCBsKTsK K0FQSV9FWFBPUlQoaW50KSBhcF90b2tlbml6ZV90b19hcmd2KGFwX2NvbnRleHRfdCAqdG9r ZW5fY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIg KmFyZ19zdHIsIGNoYXIgKioqYXJndl9vdXQpOwogLypBUElfRVhQT1JUKGFwX211dGV4X3Qg KikgYXBfY3JlYXRlX211dGV4KHZvaWQgKm0pOyovCiBBUElfRVhQT1JUKGludCkgYXBfc2xh Y2soaW50IGwsIGludCBoKTsKIEFQSV9FWFBPUlRfTk9OU1REKGludCkgYXBfZXhlY2xlKGNv bnN0IGNoYXIgKmMsIGNvbnN0IGNoYXIgKmEsIC4uLik7CkBAIC0zNzEsOSArMzczLDggQEAK IEFQSV9FWFBPUlQoYXBfc3RhdHVzX3QpIGFwX2dldHBhc3MoY29uc3QgY2hhciAqcHJvbXB0 LCBjaGFyICpwd2J1Ziwgc2l6ZV90ICpidWZzaXplKTsKIEFQSV9FWFBPUlRfTk9OU1REKGFw X3N0YXR1c190KSBhcF9udWxsX2NsZWFudXAodm9pZCAqZGF0YSk7CiAKLS8qQVBJX0VYUE9S VCh2b2lkKSBhcF9ub3RlX3N1YnByb2Nlc3MoYXBfcG9vbF90ICphLCBwaWRfdCBwaWQsCitB UElfRVhQT1JUKHZvaWQpIGFwX25vdGVfc3VicHJvY2VzcyhzdHJ1Y3QgY29udGV4dF90ICph LCBwaWRfdCBwaWQsCiAJCQkJICAgICBlbnVtIGtpbGxfY29uZGl0aW9ucyBob3cpOwotKi8K IEFQSV9FWFBPUlQoaW50KQogCWFwX3NwYXduX2NoaWxkKGFwX2NvbnRleHRfdCAqcCwKIAkJ CWludCAoKmZ1bmMpICh2b2lkICphLCBhcF9jaGlsZF9pbmZvX3QgKmMpLApJbmRleDogc3Jj L2xpYi9hcHIvaW5jbHVkZS9hcHJfdGhyZWFkX3Byb2MuaAo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvaG9tZS9jdnMvYXBhY2hlLTIuMC9zcmMvbGliL2Fwci9pbmNsdWRlL2Fwcl90aHJl YWRfcHJvYy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtdSAtcjEuNiBhcHJf dGhyZWFkX3Byb2MuaAotLS0gYXByX3RocmVhZF9wcm9jLmgJMTk5OS8xMC8wOCAxNDo0NTow MAkxLjYKKysrIGFwcl90aHJlYWRfcHJvYy5oCTE5OTkvMTAvMDkgMTY6NDY6NTcKQEAgLTEx Miw3ICsxMTIsMTMgQEAKIGFwX3N0YXR1c190IGFwX2NyZWF0ZXByb2NhdHRyX2luaXQoYXBf cHJvY2F0dHJfdCAqKiwgYXBfY29udGV4dF90ICopOwogYXBfc3RhdHVzX3QgYXBfc2V0cHJv Y2F0dHJfaW8oYXBfcHJvY2F0dHJfdCAqLCBhcF9pbnQzMl90LCBhcF9pbnQzMl90LCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX2ludDMyX3QpOwotYXBfc3RhdHVzX3Qg YXBfc2V0cHJvY2F0dHJfZGlyKGFwX3Byb2NhdHRyX3QgKiwgY2hhciAqKTsKK2FwX3N0YXR1 c190IGFwX3NldHByb2NhdHRyX2NoaWxkaW4oc3RydWN0IHByb2NhdHRyX3QgKiwgYXBfZmls ZV90ICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX2ZpbGVfdCAq KTsKK2FwX3N0YXR1c190IGFwX3NldHByb2NhdHRyX2NoaWxkb3V0KHN0cnVjdCBwcm9jYXR0 cl90ICosIGFwX2ZpbGVfdCAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXBfZmlsZV90ICopOworYXBfc3RhdHVzX3QgYXBfc2V0cHJvY2F0dHJfY2hpbGRlcnIo c3RydWN0IHByb2NhdHRyX3QgKiwgYXBfZmlsZV90ICosCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhcF9maWxlX3QgKik7CithcF9zdGF0dXNfdCBhcF9zZXRwcm9j YXR0cl9kaXIoYXBfcHJvY2F0dHJfdCAqLCBjb25zdCBjaGFyICopOwogYXBfc3RhdHVzX3Qg YXBfc2V0cHJvY2F0dHJfY21kdHlwZShhcF9wcm9jYXR0cl90ICosIGFwX2NtZHR5cGVfZSk7 CiBhcF9zdGF0dXNfdCBhcF9zZXRwcm9jYXR0cl9kZXRhY2goYXBfcHJvY2F0dHJfdCAqLCBh cF9pbnQzMl90KTsKIGFwX3N0YXR1c190IGFwX2dldF9wcm9jZGF0YShhcF9wcm9jX3QgKiwg Y2hhciAqLCB2b2lkICopOwpAQCAtMTI0LDggKzEzMCw4IEBACiBhcF9zdGF0dXNfdCBhcF9n ZXRfY2hpbGRlcnIoYXBfZmlsZV90ICoqLCBhcF9wcm9jX3QgKik7CiAKIGFwX3N0YXR1c190 IGFwX2ZvcmsoYXBfcHJvY190ICoqLCBhcF9jb250ZXh0X3QgKik7Ci1hcF9zdGF0dXNfdCBh cF9jcmVhdGVfcHJvY2VzcyhhcF9jb250ZXh0X3QgKiwgY2hhciAqLCBjaGFyICpjb25zdCBb XSwgY2hhciAqKiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcF9wcm9jYXR0 cl90ICosIGFwX3Byb2NfdCAqKik7CithcF9zdGF0dXNfdCBhcF9jcmVhdGVfcHJvY2Vzcyhh cF9wcm9jX3QgKiosIGFwX2NvbnRleHRfdCAqLCBjb25zdCBjaGFyICosIAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2hhciAqY29uc3QgW10sIGNoYXIgKiosIGFwX3Byb2Nh dHRyX3QgKik7CiBhcF9zdGF0dXNfdCBhcF93YWl0X3Byb2MoYXBfcHJvY190ICosIGFwX3dh aXRfaG93X2UpOwogCiBhcF9zdGF0dXNfdCBhcF9raWxsKGFwX3Byb2NfdCAqLCBhcF9pbnQz Ml90KTsKSW5kZXg6IHNyYy9saWIvYXByL2xpYi9hcHJfY3B5c3Rybi5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9ob21lL2N2cy9hcGFjaGUtMi4wL3NyYy9saWIvYXByL2xpYi9hcHJf Y3B5c3Rybi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMKZGlmZiAtdSAtcjEuMyBhcHJf Y3B5c3Rybi5jCi0tLSBhcHJfY3B5c3Rybi5jCTE5OTkvMTAvMDEgMTY6MTg6MzIJMS4zCisr KyBhcHJfY3B5c3Rybi5jCTE5OTkvMTAvMDkgMTY6NDY6NTgKQEAgLTEwMCwzICsxMDAsODcg QEAKIAogICAgIHJldHVybiAoZCk7CiB9CisKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gcHJv dmlkZXMgYSB3YXkgdG8gcGFyc2UgYSBnZW5lcmljIGFyZ3VtZW50IHN0cmluZworICogaW50 byBhIHN0YW5kYXJkIGFyZ3ZbXSBmb3JtIG9mIGFyZ3VtZW50IGxpc3QuIEl0IHJlc3BlY3Rz IHRoZSAKKyAqIHVzdWFsICJ3aGl0ZXNwYWNlIiBhbmQgcXVvdGVpbmcgcnVsZXMuIEluIHRo ZSBmdXR1cmUgdGhpcyBjb3VsZAorICogYmUgZXhwYW5kZWQgdG8gaW5jbHVkZSBzdXBwb3J0 IGZvciB0aGUgYXBfY2FsbF9leGVjIGNvbW1hbmQgbGluZQorICogc3RyaW5nIHByb2Nlc3Np bmcgKGluY2x1ZGluZyBjb252ZXJ0aW5nICcrJyB0byAnICcgYW5kIGRvaW5nIHRoZSAKKyAq IHVybCBwcm9jZXNzaW5nLiBJdCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCB0aGlzIGZ1 bmN0aW9uLgorICoKKyAqICAgIHRva2VuX2NvbnRleHQ6IENvbnRleHQgZnJvbSB3aGljaCBw b29sIGFsbG9jYXRpb25zIHdpbGwgb2NjdXIuCisgKiAgICBhcmdfc3RyOiAgICAgICBJbnB1 dCBhcmd1bWVudCBzdHJpbmcgZm9yIGNvbnZlcnNpb24gdG8gYXJndltdLgorICogICAgYXJn dl9vdXQ6ICAgICAgT3V0cHV0IGxvY2F0aW9uLiBUaGlzIGlzIGEgcG9pbnRlciB0byBhbiBh cnJheQorICogICAgICAgICAgICAgICAgICAgb2YgcG9pbnRlcnMgdG8gc3RyaW5ncyAoaWUu ICYoY2hhciAqYXJndltdKS4KKyAqICAgICAgICAgICAgICAgICAgIFRoaXMgdmFsdWUgd2ls bCBiZSBhbGxvY2F0ZWQgZnJvbSB0aGUgY29udGV4dHMKKyAqICAgICAgICAgICAgICAgICAg IHBvb2wgYW5kIGZpbGxlZCBpbiB3aXRoIGNvcGllcyBvZiB0aGUgdG9rZW5zCisgKiAgICAg ICAgICAgICAgICAgICBmb3VuZCBkdXJpbmcgcGFyc2luZyBvZiB0aGUgYXJnX3N0ci4gCisg Ki8KK0FQSV9FWFBPUlQoaW50KSBhcF90b2tlbml6ZV90b19hcmd2KGFwX2NvbnRleHRfdCAq dG9rZW5fY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo YXIgKmFyZ19zdHIsIGNoYXIgKioqYXJndl9vdXQpCit7CisgICAgY2hhciAqY3AsICp0bXBD bnQ7CisgICAgaW50IGlzcXVvdGVkLCBudW1hcmdzID0gMCwgcmMgPSBBUFJfU1VDQ0VTUzsK KworI2RlZmluZSBTS0lQX1dISVRFU1BBQ0UoY3ApIFwKKyAgICBmb3IgKCA7ICpjcCA9PSAn ICcgfHwgKmNwID09ICdcdCc7ICkgeyBcCisgICAgICAgIGNwKys7IFwKKyAgICB9OworCisj ZGVmaW5lIENIRUNLX1FVT1RBVElPTihjcCxpc3F1b3RlZCkgXAorICAgIGlzcXVvdGVkID0g MDsgXAorICAgIGlmICgqY3AgPT0gJyInKSB7IFwKKyAgICAgICAgaXNxdW90ZWQgPSAxOyBc CisgICAgICAgIGNwKys7IFwKKyAgICB9CisKKyNkZWZpbmUgREVURVJNSU5FX05FWFRTVFJJ TkcoY3AsaXNxdW90ZWQpIFwKKyAgICBmb3IgKCA7ICpjcCAhPSAnXDAnOyBjcCsrKSB7IFwK KyAgICAgICAgaWYgKCAgIChpc3F1b3RlZCAgICAmJiAoKmNwICAgICA9PSAnICcgfHwgKmNw ICAgICA9PSAnXHQnKSkgXAorICAgICAgICAgICAgfHwgKCpjcCA9PSAnXFwnICYmICgqKGNw KzEpID09ICcgJyB8fCAqKGNwKzEpID09ICdcdCcpKSkgeyBcCisgICAgICAgICAgICBjcCsr OyBcCisgICAgICAgICAgICBjb250aW51ZTsgXAorICAgICAgICB9IFwKKyAgICAgICAgaWYg KCAgICghaXNxdW90ZWQgJiYgKCpjcCA9PSAnICcgfHwgKmNwID09ICdcdCcpKSBcCisgICAg ICAgICAgICB8fCAoaXNxdW90ZWQgICYmICpjcCA9PSAnIicpICAgICAgICAgICAgICAgICAg KSB7IFwKKyAgICAgICAgICAgIGJyZWFrOyBcCisgICAgICAgIH0gXAorICAgIH0KKworICAg IGNwID0gYXJnX3N0cjsKKyAgICBTS0lQX1dISVRFU1BBQ0UoY3ApOworICAgIHRtcENudCA9 IGNwOworCisgICAgLyogVGhpcyBpcyB1Z2x5IGFuZCBleHBlbnNpdmUsIGJ1dCBpZiBhbnlv bmUgd2FudHMgdG8gZmlndXJlIGEKKyAgICAgKiB3YXkgdG8gc3VwcG9ydCBhbnkgbnVtYmVy IG9mIGFyZ3Mgd2l0aG91dCBjb3VudGluZyBhbmQgCisgICAgICogYWxsb2NhdGluZywgcGxl YXNlIGdvIGFoZWFkIGFuZCBjaGFuZ2UgdGhlIGNvZGUuCisgICAgICovCisgICAgd2hpbGUg KCp0bXBDbnQgIT0gJ1wwJykgeworICAgICAgICBDSEVDS19RVU9UQVRJT04odG1wQ250LCBp c3F1b3RlZCk7CisgICAgICAgIERFVEVSTUlORV9ORVhUU1RSSU5HKHRtcENudCwgaXNxdW90 ZWQpOworICAgICAgICBudW1hcmdzKys7CisgICAgICAgIFNLSVBfV0hJVEVTUEFDRSh0bXBD bnQpOworICAgIH0KKworICAgICphcmd2X291dCA9IGFwX3BhbGxvYyh0b2tlbl9jb250ZXh0 LCBudW1hcmdzKnNpemVvZihjaGFyKikpOworICAgIGlmICgqYXJndl9vdXQgPT0gTlVMTCkg eworICAgICAgICByZXR1cm4gKEFQUl9FTk9NRU0pOworICAgIH0KKworICAgIC8qICBkZXRl cm1pbmUgZmlyc3QgYXJndW1lbnQgKi8KKyAgICBudW1hcmdzID0gMDsKKyAgICB3aGlsZSAo KmNwICE9ICdcMCcpIHsKKyAgICAgICAgQ0hFQ0tfUVVPVEFUSU9OKGNwLCBpc3F1b3RlZCk7 CisgICAgICAgIHRtcENudCA9IGNwOworICAgICAgICBERVRFUk1JTkVfTkVYVFNUUklORyhj cCwgaXNxdW90ZWQpOworICAgICAgICAqY3ArKyA9ICdcMCc7CisgICAgICAgICgqYXJndl9v dXQpW251bWFyZ3NdID0gYXBfcHN0cmR1cCh0b2tlbl9jb250ZXh0LCB0bXBDbnQpOworCisg ICAgICAgIFNLSVBfV0hJVEVTUEFDRShjcCk7CisgICAgfQorICAgICpjcCsrID0gJ1wwJzsK KworICAgIHJldHVybihyYyk7Cit9CkluZGV4OiBzcmMvbGliL2Fwci9saWIvYXByX3Bvb2xz LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL2FwYWNoZS0yLjAvc3JjL2xp Yi9hcHIvbGliL2Fwcl9wb29scy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzCmRpZmYg LXUgLXIxLjEzIGFwcl9wb29scy5jCi0tLSBhcHJfcG9vbHMuYwkxOTk5LzEwLzA4IDE0OjI2 OjEyCTEuMTMKKysrIGFwcl9wb29scy5jCTE5OTkvMTAvMDkgMTY6NDc6MDMKQEAgLTEyMTMs NTYxICsxMjEzLDYgQEAKICNlbmRpZgogCiAKLXN0YXRpYyBwaWRfdCBzcGF3bl9jaGlsZF9j b3JlKGFwX2NvbnRleHRfdCAqcCwKLQkJCSAgICAgIGludCAoKmZ1bmMpICh2b2lkICosIGFw X2NoaWxkX2luZm9fdCAqKSwKLQkJCSAgICAgIHZvaWQgKmRhdGEsZW51bSBraWxsX2NvbmRp dGlvbnMga2lsbF9ob3csCi0JCQkgICAgICBpbnQgKnBpcGVfaW4sIGludCAqcGlwZV9vdXQs IGludCAqcGlwZV9lcnIpCi17Ci0gICAgcGlkX3QgcGlkOwotICAgIGludCBpbl9mZHNbMl07 Ci0gICAgaW50IG91dF9mZHNbMl07Ci0gICAgaW50IGVycl9mZHNbMl07Ci0gICAgaW50IHNh dmVfZXJybm87Ci0KLSAgICBpZiAocGlwZV9pbiAmJiBvc19waXBlKGluX2ZkcykgPCAwKSB7 Ci0JcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgaWYgKHBpcGVfb3V0ICYmIG9zX3BpcGUob3V0 X2ZkcykgPCAwKSB7Ci0Jc2F2ZV9lcnJubyA9IGVycm5vOwotCWlmIChwaXBlX2luKSB7Ci0J ICAgIGNsb3NlKGluX2Zkc1swXSk7Ci0JICAgIGNsb3NlKGluX2Zkc1sxXSk7Ci0JfQotCWVy cm5vID0gc2F2ZV9lcnJubzsKLQlyZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBpZiAocGlwZV9l cnIgJiYgb3NfcGlwZShlcnJfZmRzKSA8IDApIHsKLQlzYXZlX2Vycm5vID0gZXJybm87Ci0J aWYgKHBpcGVfaW4pIHsKLQkgICAgY2xvc2UoaW5fZmRzWzBdKTsKLQkgICAgY2xvc2UoaW5f ZmRzWzFdKTsKLQl9Ci0JaWYgKHBpcGVfb3V0KSB7Ci0JICAgIGNsb3NlKG91dF9mZHNbMF0p OwotCSAgICBjbG9zZShvdXRfZmRzWzFdKTsKLQl9Ci0JZXJybm8gPSBzYXZlX2Vycm5vOwot CXJldHVybiAwOwotICAgIH0KLQotI2lmZGVmIFdJTjMyCi0KLSAgICB7Ci0JSEFORExFIHRo cmVhZF9oYW5kbGU7Ci0JaW50IGhTdGRJbiwgaFN0ZE91dCwgaFN0ZEVycjsKLQlpbnQgb2xk X3ByaW9yaXR5OwotCWFwX2NoaWxkX2luZm9fdCBpbmZvOwotCi0JKHZvaWQpIGFwX2FjcXVp cmVfbXV0ZXgoc3Bhd25fbXV0ZXgpOwotCXRocmVhZF9oYW5kbGUgPSBHZXRDdXJyZW50VGhy ZWFkKCk7CS8qIGRvZXNuJ3QgbmVlZCB0byBiZSBjbG9zZWQgKi8KLQlvbGRfcHJpb3JpdHkg PSBHZXRUaHJlYWRQcmlvcml0eSh0aHJlYWRfaGFuZGxlKTsKLQlTZXRUaHJlYWRQcmlvcml0 eSh0aHJlYWRfaGFuZGxlLCBUSFJFQURfUFJJT1JJVFlfSElHSEVTVCk7Ci0JLyogTm93IGRv IHRoZSByaWdodCB0aGluZyB3aXRoIHlvdXIgcGlwZXMgKi8KLQlpZiAocGlwZV9pbikgewot CSAgICBoU3RkSW4gPSBkdXAoZmlsZW5vKHN0ZGluKSk7Ci0JICAgIGlmIChkdXAyKGluX2Zk c1swXSwgZmlsZW5vKHN0ZGluKSkpIHsKLQkJYXBfbG9nX2Vycm9yKEFQTE9HX01BUkssIEFQ TE9HX0VSUiwgTlVMTCwKLQkJCSAgICAgICJkdXAyKHN0ZGluKSBmYWlsZWQiKTsKLQkgICAg fQotCSAgICBjbG9zZShpbl9mZHNbMF0pOwotCX0KLQlpZiAocGlwZV9vdXQpIHsKLQkgICAg aFN0ZE91dCA9IGR1cChmaWxlbm8oc3Rkb3V0KSk7Ci0JICAgIGNsb3NlKGZpbGVubyhzdGRv dXQpKTsKLQkgICAgaWYgKGR1cDIob3V0X2Zkc1sxXSwgZmlsZW5vKHN0ZG91dCkpKSB7Ci0J CWFwX2xvZ19lcnJvcihBUExPR19NQVJLLCBBUExPR19FUlIsIE5VTEwsCi0JCQkgICAgICAi ZHVwMihzdGRvdXQpIGZhaWxlZCIpOwotCSAgICB9Ci0JICAgIGNsb3NlKG91dF9mZHNbMV0p OwotCX0KLQlpZiAocGlwZV9lcnIpIHsKLQkgICAgaFN0ZEVyciA9IGR1cChmaWxlbm8oc3Rk ZXJyKSk7Ci0JICAgIGlmIChkdXAyKGVycl9mZHNbMV0sIGZpbGVubyhzdGRlcnIpKSkgewot CQlhcF9sb2dfZXJyb3IoQVBMT0dfTUFSSywgQVBMT0dfRVJSLCBOVUxMLAotCQkJICAgICAg ImR1cDIoc3RkZXJyKSBmYWlsZWQiKTsKLQkgICAgfQotCSAgICBjbG9zZShlcnJfZmRzWzFd KTsKLQl9Ci0KLQlpbmZvLmhQaXBlSW5wdXRSZWFkICAgPSBHZXRTdGRIYW5kbGUoU1REX0lO UFVUX0hBTkRMRSk7Ci0JaW5mby5oUGlwZU91dHB1dFdyaXRlID0gR2V0U3RkSGFuZGxlKFNU RF9PVVRQVVRfSEFORExFKTsKLQlpbmZvLmhQaXBlRXJyb3JXcml0ZSAgPSBHZXRTdGRIYW5k bGUoU1REX0VSUk9SX0hBTkRMRSk7Ci0KLQlwaWQgPSAoKmZ1bmMpIChkYXRhLCAmaW5mbyk7 Ci0gICAgICAgIGlmIChwaWQgPT0gLTEpIHsKLQkgICAgcGlkID0gMDsgICAvKiBtYXAgV2lu MzIgZXJyb3IgY29kZSBvbnRvIFVuaXggZGVmYXVsdCAqLwotCX0KLQotICAgICAgICBpZiAo IXBpZCkgewotCSAgICBzYXZlX2Vycm5vID0gZXJybm87Ci0JICAgIGNsb3NlKGluX2Zkc1sx XSk7Ci0JICAgIGNsb3NlKG91dF9mZHNbMF0pOwotCSAgICBjbG9zZShlcnJfZmRzWzBdKTsK LQl9Ci0KLQkvKiByZXN0b3JlIHRoZSBvcmlnaW5hbCBzdGRpbiwgc3Rkb3V0IGFuZCBzdGRl cnIgKi8KLQlpZiAocGlwZV9pbikgewotCSAgICBkdXAyKGhTdGRJbiwgZmlsZW5vKHN0ZGlu KSk7Ci0JICAgIGNsb3NlKGhTdGRJbik7Ci0gICAgICAgIH0KLQlpZiAocGlwZV9vdXQpIHsK LQkgICAgZHVwMihoU3RkT3V0LCBmaWxlbm8oc3Rkb3V0KSk7Ci0JICAgIGNsb3NlKGhTdGRP dXQpOwotCX0KLQlpZiAocGlwZV9lcnIpIHsKLQkgICAgZHVwMihoU3RkRXJyLCBmaWxlbm8o c3RkZXJyKSk7Ci0JICAgIGNsb3NlKGhTdGRFcnIpOwotCX0KLQotICAgICAgICBpZiAocGlk KSB7Ci0JICAgIGFwX25vdGVfc3VicHJvY2VzcyhwLCBwaWQsIGtpbGxfaG93KTsKLQkgICAg aWYgKHBpcGVfaW4pIHsKLQkJKnBpcGVfaW4gPSBpbl9mZHNbMV07Ci0JICAgIH0KLQkgICAg aWYgKHBpcGVfb3V0KSB7Ci0JCSpwaXBlX291dCA9IG91dF9mZHNbMF07Ci0JICAgIH0KLQkg ICAgaWYgKHBpcGVfZXJyKSB7Ci0JCSpwaXBlX2VyciA9IGVycl9mZHNbMF07Ci0JICAgIH0K LQl9Ci0JU2V0VGhyZWFkUHJpb3JpdHkodGhyZWFkX2hhbmRsZSwgb2xkX3ByaW9yaXR5KTsK LQkodm9pZCkgYXBfcmVsZWFzZV9tdXRleChzcGF3bl9tdXRleCk7Ci0JLyoKLQkgKiBnbyBv biB0byB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbiwgd2hlcmUgeW91IGNhbgotCSAqIHVuYmxv Y2sgYWxhcm1zIGFuZCByZXR1cm4gdGhlIHBpZAotCSAqLwotCi0gICAgfQotI2VsaWYgZGVm aW5lZChPUzIpCi0gICAgewotICAgICAgICBpbnQgc2F2ZV9pbj0tMSwgc2F2ZV9vdXQ9LTEs IHNhdmVfZXJyPS0xOwotICAgICAgICAKLSAgICAgICAgaWYgKHBpcGVfb3V0KSB7Ci0gICAg ICAgICAgICBzYXZlX291dCA9IGR1cChTVERPVVRfRklMRU5PKTsKLSAgICAgICAgICAgIGR1 cDIob3V0X2Zkc1sxXSwgU1RET1VUX0ZJTEVOTyk7Ci0gICAgICAgICAgICBjbG9zZShvdXRf ZmRzWzFdKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChwaXBlX2luKSB7Ci0gICAgICAg ICAgICBzYXZlX2luID0gZHVwKFNURElOX0ZJTEVOTyk7Ci0gICAgICAgICAgICBkdXAyKGlu X2Zkc1swXSwgU1RESU5fRklMRU5PKTsKLSAgICAgICAgICAgIGNsb3NlKGluX2Zkc1swXSk7 Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocGlwZV9lcnIpIHsKLSAgICAgICAgICAgIHNh dmVfZXJyID0gZHVwKFNUREVSUl9GSUxFTk8pOwotICAgICAgICAgICAgZHVwMihlcnJfZmRz WzFdLCBTVERFUlJfRklMRU5PKTsKLSAgICAgICAgICAgIGNsb3NlKGVycl9mZHNbMV0pOwot ICAgICAgICB9Ci0gICAgCi0gICAgICAgIHBpZCA9IGZ1bmMoZGF0YSwgTlVMTCk7Ci0gICAg Ci0gICAgICAgIGlmIChwaWQpIHsKLSAgICAgICAgICAgIGFwX25vdGVfc3VicHJvY2Vzcyhw LCBwaWQsIGtpbGxfaG93KTsKLQl9Ci0KLSAgICAgICAgaWYgKHBpcGVfb3V0KSB7Ci0gICAg ICAgICAgICBjbG9zZShTVERPVVRfRklMRU5PKTsKLSAgICAgICAgICAgIGR1cDIoc2F2ZV9v dXQsIFNURE9VVF9GSUxFTk8pOwotICAgICAgICAgICAgY2xvc2Uoc2F2ZV9vdXQpOwotICAg ICAgICAgICAgKnBpcGVfb3V0ID0gb3V0X2Zkc1swXTsKLSAgICAgICAgfQotCi0gICAgICAg IGlmIChwaXBlX2luKSB7Ci0gICAgICAgICAgICBjbG9zZShTVERJTl9GSUxFTk8pOwotICAg ICAgICAgICAgZHVwMihzYXZlX2luLCBTVERJTl9GSUxFTk8pOwotICAgICAgICAgICAgY2xv c2Uoc2F2ZV9pbik7Ci0gICAgICAgICAgICAqcGlwZV9pbiA9IGluX2Zkc1sxXTsKLSAgICAg ICAgfQotCi0gICAgICAgIGlmIChwaXBlX2VycikgewotICAgICAgICAgICAgY2xvc2UoU1RE RVJSX0ZJTEVOTyk7Ci0gICAgICAgICAgICBkdXAyKHNhdmVfZXJyLCBTVERFUlJfRklMRU5P KTsKLSAgICAgICAgICAgIGNsb3NlKHNhdmVfZXJyKTsKLSAgICAgICAgICAgICpwaXBlX2Vy ciA9IGVycl9mZHNbMF07Ci0gICAgICAgIH0KLSAgICB9Ci0jZWxpZiBkZWZpbmVkKFRQRikK LSAgIHJldHVybiAocGlkID0gYXBfdHBmX3NwYXduX2NoaWxkKHAsIGZ1bmMsIGRhdGEsIGtp bGxfaG93LAkKLQkJCQkgICAgIHBpcGVfaW4sIHBpcGVfb3V0LCBwaXBlX2Vyciwgb3V0X2Zk cywKLQkJCQkgICAgIGluX2ZkcywgZXJyX2ZkcykpOwotI2Vsc2UKLQotICAgIGlmICgocGlk ID0gZm9yaygpKSA8IDApIHsKLQlzYXZlX2Vycm5vID0gZXJybm87Ci0JaWYgKHBpcGVfaW4p IHsKLQkgICAgY2xvc2UoaW5fZmRzWzBdKTsKLQkgICAgY2xvc2UoaW5fZmRzWzFdKTsKLQl9 Ci0JaWYgKHBpcGVfb3V0KSB7Ci0JICAgIGNsb3NlKG91dF9mZHNbMF0pOwotCSAgICBjbG9z ZShvdXRfZmRzWzFdKTsKLQl9Ci0JaWYgKHBpcGVfZXJyKSB7Ci0JICAgIGNsb3NlKGVycl9m ZHNbMF0pOwotCSAgICBjbG9zZShlcnJfZmRzWzFdKTsKLQl9Ci0JZXJybm8gPSBzYXZlX2Vy cm5vOwotCXJldHVybiAwOwotICAgIH0KLQotICAgIGlmICghcGlkKSB7Ci0JLyogQ2hpbGQg cHJvY2VzcyAqLwotCVJBSVNFX1NJR1NUT1AoU1BBV05fQ0hJTEQpOwotCi0JaWYgKHBpcGVf b3V0KSB7Ci0JICAgIGNsb3NlKG91dF9mZHNbMF0pOwotCSAgICBkdXAyKG91dF9mZHNbMV0s IFNURE9VVF9GSUxFTk8pOwotCSAgICBjbG9zZShvdXRfZmRzWzFdKTsKLQl9Ci0KLQlpZiAo cGlwZV9pbikgewotCSAgICBjbG9zZShpbl9mZHNbMV0pOwotCSAgICBkdXAyKGluX2Zkc1sw XSwgU1RESU5fRklMRU5PKTsKLQkgICAgY2xvc2UoaW5fZmRzWzBdKTsKLQl9Ci0KLQlpZiAo cGlwZV9lcnIpIHsKLQkgICAgY2xvc2UoZXJyX2Zkc1swXSk7Ci0JICAgIGR1cDIoZXJyX2Zk c1sxXSwgU1RERVJSX0ZJTEVOTyk7Ci0JICAgIGNsb3NlKGVycl9mZHNbMV0pOwotCX0KLQot CS8qCi0JICogSFAtVVggU0lHQ0hMRCBmaXggZ29lcyBoZXJlLCBpZiBzb21lb25lIHdpbGwg cmVtaW5kIG1lCi0JICogd2hhdCBpdCBpcy4uLgotCSAqLwotCXNpZ25hbChTSUdDSExELCBT SUdfREZMKTsJLyogV2FzIHRoYXQgaXQ/ICovCi0KLQlmdW5jKGRhdGEsIE5VTEwpOwotCWV4 aXQoMSk7CS8qIFNob3VsZCBvbmx5IGdldCBoZXJlIGlmIHRoZSBleGVjIGluIGZ1bmMoKSBm YWlsZWQgKi8KLSAgICB9Ci0KLSAgICAvKiBQYXJlbnQgcHJvY2VzcyAqLwotCi0gICAgYXBf bm90ZV9zdWJwcm9jZXNzKHAsIHBpZCwga2lsbF9ob3cpOwotCi0gICAgaWYgKHBpcGVfb3V0 KSB7Ci0JY2xvc2Uob3V0X2Zkc1sxXSk7Ci0JKnBpcGVfb3V0ID0gb3V0X2Zkc1swXTsKLSAg ICB9Ci0KLSAgICBpZiAocGlwZV9pbikgewotCWNsb3NlKGluX2Zkc1swXSk7Ci0JKnBpcGVf aW4gPSBpbl9mZHNbMV07Ci0gICAgfQotCi0gICAgaWYgKHBpcGVfZXJyKSB7Ci0JY2xvc2Uo ZXJyX2Zkc1sxXSk7Ci0JKnBpcGVfZXJyID0gZXJyX2Zkc1swXTsKLSAgICB9Ci0jZW5kaWYg LyogV0lOMzIgKi8KLQotICAgIHJldHVybiBwaWQ7Ci19Ci0KLQotQVBJX0VYUE9SVChpbnQp IGFwX3NwYXduX2NoaWxkKGFwX2NvbnRleHRfdCAqcCwKLQkJCQlpbnQgKCpmdW5jKSAodm9p ZCAqdiwgYXBfY2hpbGRfaW5mb190ICpjKSwKLQkJCQl2b2lkICpkYXRhLCBlbnVtIGtpbGxf Y29uZGl0aW9ucyBraWxsX2hvdywKLQkJCQlGSUxFICoqcGlwZV9pbiwgRklMRSAqKnBpcGVf b3V0LAotCQkJCUZJTEUgKipwaXBlX2VycikKLXsKLSAgICBpbnQgZmRfaW4sIGZkX291dCwg ZmRfZXJyOwotICAgIHBpZF90IHBpZDsKLSAgICBpbnQgc2F2ZV9lcnJubzsKLQotICAgIGFw X2Jsb2NrX2FsYXJtcygpOwotCi0gICAgcGlkID0gc3Bhd25fY2hpbGRfY29yZShwLCBmdW5j LCBkYXRhLCBraWxsX2hvdywKLQkJCSAgIHBpcGVfaW4gPyAmZmRfaW4gOiBOVUxMLAotCQkJ ICAgcGlwZV9vdXQgPyAmZmRfb3V0IDogTlVMTCwKLQkJCSAgIHBpcGVfZXJyID8gJmZkX2Vy ciA6IE5VTEwpOwotCi0gICAgaWYgKHBpZCA9PSAwKSB7Ci0Jc2F2ZV9lcnJubyA9IGVycm5v OwotCWFwX3VuYmxvY2tfYWxhcm1zKCk7Ci0JZXJybm8gPSBzYXZlX2Vycm5vOwotCXJldHVy biAwOwotICAgIH0KLQotICAgIGlmIChwaXBlX291dCkgewotCSpwaXBlX291dCA9IGFwX2Zk b3BlbihmZF9vdXQsICJyIiBCSU5NT0RFKTsKLQlpZiAoKnBpcGVfb3V0KSB7Ci0JICAgIC8q IHJlbW92ZSBmb3Igbm93LiAgVGhlc2UgZ28gYXdheSB3aXRoIHRoZSBBUFIgYWJzdHJhY3Rp b24KLSAgICAgICAgICAgICAqIGZvciBwcm9jZXNzIHNwYXduaW5nLgotICAgICAgICAgICAg ICogYXBfbm90ZV9jbGVhbnVwc19mb3JfZmlsZShwLCAqcGlwZV9vdXQpOwotICAgICAgICAg ICAgICovCi0JfQotCWVsc2UgewotCSAgICBjbG9zZShmZF9vdXQpOwotCX0KLSAgICB9Ci0K LSAgICBpZiAocGlwZV9pbikgewotCSpwaXBlX2luID0gYXBfZmRvcGVuKGZkX2luLCAidyIg QklOTU9ERSk7Ci0JaWYgKCpwaXBlX2luKSB7Ci0JICAgIC8qIHJlbW92ZSBmb3Igbm93LiAg VGhlc2UgZ28gYXdheSB3aXRoIHRoZSBBUFIgYWJzdHJhY3Rpb24KLSAgICAgICAgICAgICAq IGZvciBwcm9jZXNzIHNwYXduaW5nLgotICAgICAgICAgICAgICogYXBfbm90ZV9jbGVhbnVw c19mb3JfZmlsZShwLCAqcGlwZV9pbik7Ci0gICAgICAgICAgICAgKi8KLQl9Ci0JZWxzZSB7 Ci0JICAgIGNsb3NlKGZkX2luKTsKLQl9Ci0gICAgfQotCi0gICAgaWYgKHBpcGVfZXJyKSB7 Ci0JKnBpcGVfZXJyID0gYXBfZmRvcGVuKGZkX2VyciwgInIiIEJJTk1PREUpOwotCWlmICgq cGlwZV9lcnIpIHsKLQkgICAgLyogcmVtb3ZlIGZvciBub3cuICBUaGVzZSBnbyBhd2F5IHdp dGggdGhlIEFQUiBhYnN0cmFjdGlvbgotICAgICAgICAgICAgICogZm9yIHByb2Nlc3Mgc3Bh d25pbmcuCi0gICAgICAgICAgICAgKiBhcF9ub3RlX2NsZWFudXBzX2Zvcl9maWxlKHAsICpw aXBlX2Vycik7Ci0gICAgICAgICAgICAgKi8KLQl9Ci0JZWxzZSB7Ci0JICAgIGNsb3NlKGZk X2Vycik7Ci0JfQotICAgIH0KLQotICAgIGFwX3VuYmxvY2tfYWxhcm1zKCk7Ci0gICAgcmV0 dXJuIHBpZDsKLX0KLSNpZiAwCi1BUElfRVhQT1JUKGludCkgYXBfYnNwYXduX2NoaWxkKGFw X3Bvb2xfdCAqcCwKLQkJCQkgaW50ICgqZnVuYykgKHZvaWQgKnYsIGFwX2NoaWxkX2luZm9f dCAqYyksCi0JCQkJIHZvaWQgKmRhdGEsIGVudW0ga2lsbF9jb25kaXRpb25zIGtpbGxfaG93 LAotCQkJCSBCVUZGICoqcGlwZV9pbiwgQlVGRiAqKnBpcGVfb3V0LAotCQkJCSBCVUZGICoq cGlwZV9lcnIpCi17Ci0jaWZkZWYgV0lOMzIKLSAgICBTRUNVUklUWV9BVFRSSUJVVEVTIHNh ID0gezB9OyAgCi0gICAgSEFORExFIGhQaXBlT3V0cHV0UmVhZCAgPSBOVUxMOwotICAgIEhB TkRMRSBoUGlwZU91dHB1dFdyaXRlID0gTlVMTDsKLSAgICBIQU5ETEUgaFBpcGVJbnB1dFJl YWQgICA9IE5VTEw7Ci0gICAgSEFORExFIGhQaXBlSW5wdXRXcml0ZSAgPSBOVUxMOwotICAg IEhBTkRMRSBoUGlwZUVycm9yUmVhZCAgID0gTlVMTDsKLSAgICBIQU5ETEUgaFBpcGVFcnJv cldyaXRlICA9IE5VTEw7Ci0gICAgSEFORExFIGhQaXBlSW5wdXRXcml0ZUR1cCA9IE5VTEw7 Ci0gICAgSEFORExFIGhQaXBlT3V0cHV0UmVhZER1cCA9IE5VTEw7Ci0gICAgSEFORExFIGhQ aXBlRXJyb3JSZWFkRHVwICA9IE5VTEw7Ci0gICAgSEFORExFIGhDdXJyZW50UHJvY2VzczsK LSAgICBwaWRfdCBwaWQgPSAwOwotICAgIGFwX2NoaWxkX2luZm9fdCBpbmZvOwotCi0gICAg YXBfYmxvY2tfYWxhcm1zKCk7Ci0KLSAgICAvKgotICAgICAqIEZpcnN0IHRoaW5nIHRvIGRv IGlzIHRvIGNyZWF0ZSB0aGUgcGlwZXMgdGhhdCB3ZSB3aWxsIHVzZQotICAgICAqIGZvciBz dGRpbiwgc3Rkb3V0LCBhbmQgc3RkZXJyIGluIHRoZSBjaGlsZCBwcm9jZXNzLgotICAgICAq LyAgICAgIAotICAgIHNhLm5MZW5ndGggPSBzaXplb2Yoc2EpOwotICAgIHNhLmJJbmhlcml0 SGFuZGxlID0gVFJVRTsKLSAgICBzYS5scFNlY3VyaXR5RGVzY3JpcHRvciA9IE5VTEw7Ci0K LQotICAgIC8qIENyZWF0ZSBwaXBlcyBmb3Igc3RhbmRhcmQgaW5wdXQvb3V0cHV0L2Vycm9y IHJlZGlyZWN0aW9uLiAqLwotICAgIGlmIChwaXBlX2luICYmICFDcmVhdGVQaXBlKCZoUGlw ZUlucHV0UmVhZCwgJmhQaXBlSW5wdXRXcml0ZSwgJnNhLCAwKSkgewotCXJldHVybiAwOwot ICAgIH0KLQotICAgIGlmIChwaXBlX291dCAmJiAhQ3JlYXRlUGlwZSgmaFBpcGVPdXRwdXRS ZWFkLCAmaFBpcGVPdXRwdXRXcml0ZSwgJnNhLCAwKSkgewotCWlmIChwaXBlX2luKSB7Ci0J ICAgIENsb3NlSGFuZGxlKGhQaXBlSW5wdXRSZWFkKTsKLQkgICAgQ2xvc2VIYW5kbGUoaFBp cGVJbnB1dFdyaXRlKTsKLQl9Ci0JcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgaWYgKHBpcGVf ZXJyICYmICFDcmVhdGVQaXBlKCZoUGlwZUVycm9yUmVhZCwgJmhQaXBlRXJyb3JXcml0ZSwg JnNhLCAwKSkgewotCWlmIChwaXBlX2luKSB7Ci0JICAgIENsb3NlSGFuZGxlKGhQaXBlSW5w dXRSZWFkKTsKLQkgICAgQ2xvc2VIYW5kbGUoaFBpcGVJbnB1dFdyaXRlKTsKLQl9Ci0JaWYg KHBpcGVfb3V0KSB7Ci0JICAgIENsb3NlSGFuZGxlKGhQaXBlT3V0cHV0UmVhZCk7Ci0JICAg IENsb3NlSGFuZGxlKGhQaXBlT3V0cHV0V3JpdGUpOwotCX0KLQlyZXR1cm4gMDsKLSAgICB9 Ci0gICAgLyoKLSAgICAgKiBXaGVuIHRoZSBwaXBlIGhhbmRsZXMgYXJlIGNyZWF0ZWQsIHRo ZSBzZWN1cml0eSBkZXNjcmlwdG9yCi0gICAgICogaW5kaWNhdGVzIHRoYXQgdGhlIGhhbmRs ZSBjYW4gYmUgaW5oZXJpdGVkLiAgSG93ZXZlciwgd2UgZG8gbm90Ci0gICAgICogd2FudCB0 aGUgc2VydmVyIHNpZGUgaGFuZGxlcyB0byB0aGUgcGlwZSB0byBiZSBpbmhlcml0ZWQgYnkg dGhlCi0gICAgICogY2hpbGQgQ0dJIHByb2Nlc3MuIElmIHRoZSBjaGlsZCBDR0kgZG9lcyBp bmhlcml0IHRoZSBzZXJ2ZXIKLSAgICAgKiBzaWRlIGhhbmRsZXMsIHRoZW4gdGhlIGNoaWxk IG1heSBiZSBsZWZ0IGFyb3VuZCBpZiB0aGUgc2VydmVyCi0gICAgICogY2xvc2VzIGl0cyBo YW5kbGVzIChlLmcuIGlmIHRoZSBodHRwIGNvbm5lY3Rpb24gaXMgYWJvcnRlZCksCi0gICAg ICogYmVjYXVzZSB0aGUgY2hpbGQgd2lsbCBoYXZlIGEgdmFsaWQgY29weSBvZiBoYW5kbGVz IHRvIGJvdGgKLSAgICAgKiBzaWRlcyBvZiB0aGUgcGlwZXMsIGFuZCBubyBJL08gZXJyb3Ig d2lsbCBvY2N1ci4gIE1pY3Jvc29mdAotICAgICAqIHJlY29tbWVuZHMgdXNpbmcgRHVwbGlj YXRlSGFuZGxlIHRvIHR1cm4gb2ZmIHRoZSBpbmhlcml0IGJpdAotICAgICAqIHVuZGVyIE5U IGFuZCBXaW45NS4KLSAgICAgKi8KLSAgICBoQ3VycmVudFByb2Nlc3MgPSBHZXRDdXJyZW50 UHJvY2VzcygpOwotICAgIGlmICgocGlwZV9pbiAmJiAhRHVwbGljYXRlSGFuZGxlKGhDdXJy ZW50UHJvY2VzcywgaFBpcGVJbnB1dFdyaXRlLAotCQkJCSAgICAgaEN1cnJlbnRQcm9jZXNz LAotCQkJCSAgICAgJmhQaXBlSW5wdXRXcml0ZUR1cCwgMCwgRkFMU0UsCi0JCQkJICAgICBE VVBMSUNBVEVfU0FNRV9BQ0NFU1MpKQotCXx8IChwaXBlX291dCAmJiAhRHVwbGljYXRlSGFu ZGxlKGhDdXJyZW50UHJvY2VzcywgaFBpcGVPdXRwdXRSZWFkLAotCQkJCQkgaEN1cnJlbnRQ cm9jZXNzLCAmaFBpcGVPdXRwdXRSZWFkRHVwLAotCQkJCQkgMCwgRkFMU0UsIERVUExJQ0FU RV9TQU1FX0FDQ0VTUykpCi0JfHwgKHBpcGVfZXJyICYmICFEdXBsaWNhdGVIYW5kbGUoaEN1 cnJlbnRQcm9jZXNzLCBoUGlwZUVycm9yUmVhZCwKLQkJCQkJIGhDdXJyZW50UHJvY2Vzcywg JmhQaXBlRXJyb3JSZWFkRHVwLAotCQkJCQkgMCwgRkFMU0UsIERVUExJQ0FURV9TQU1FX0FD Q0VTUykpKSB7Ci0JaWYgKHBpcGVfaW4pIHsKLQkgICAgQ2xvc2VIYW5kbGUoaFBpcGVJbnB1 dFJlYWQpOwotCSAgICBDbG9zZUhhbmRsZShoUGlwZUlucHV0V3JpdGUpOwotCX0KLQlpZiAo cGlwZV9vdXQpIHsKLQkgICAgQ2xvc2VIYW5kbGUoaFBpcGVPdXRwdXRSZWFkKTsKLQkgICAg Q2xvc2VIYW5kbGUoaFBpcGVPdXRwdXRXcml0ZSk7Ci0JfQotCWlmIChwaXBlX2Vycikgewot CSAgICBDbG9zZUhhbmRsZShoUGlwZUVycm9yUmVhZCk7Ci0JICAgIENsb3NlSGFuZGxlKGhQ aXBlRXJyb3JXcml0ZSk7Ci0JfQotCXJldHVybiAwOwotICAgIH0KLSAgICBlbHNlIHsKLQlp ZiAocGlwZV9pbikgewotCSAgICBDbG9zZUhhbmRsZShoUGlwZUlucHV0V3JpdGUpOwotCSAg ICBoUGlwZUlucHV0V3JpdGUgPSBoUGlwZUlucHV0V3JpdGVEdXA7Ci0JfQotCWlmIChwaXBl X291dCkgewotCSAgICBDbG9zZUhhbmRsZShoUGlwZU91dHB1dFJlYWQpOwotCSAgICBoUGlw ZU91dHB1dFJlYWQgPSBoUGlwZU91dHB1dFJlYWREdXA7Ci0JfQotCWlmIChwaXBlX2Vycikg ewotCSAgICBDbG9zZUhhbmRsZShoUGlwZUVycm9yUmVhZCk7Ci0JICAgIGhQaXBlRXJyb3JS ZWFkID0gaFBpcGVFcnJvclJlYWREdXA7Ci0JfQotICAgIH0KLQotICAgIC8qIFRoZSBzY3Jp cHQgd3JpdGVzIHN0ZG91dCB0byB0aGlzIHBpcGUgaGFuZGxlICovCi0gICAgaW5mby5oUGlw ZU91dHB1dFdyaXRlID0gaFBpcGVPdXRwdXRXcml0ZTsgIAotCi0gICAgLyogVGhlIHNjcmlw dCByZWFkcyBzdGRpbiBmcm9tIHRoaXMgcGlwZSBoYW5kbGUgKi8KLSAgICBpbmZvLmhQaXBl SW5wdXRSZWFkID0gaFBpcGVJbnB1dFJlYWQ7Ci0KLSAgICAvKiBUaGUgc2NyaXB0IHdyaXRl cyBzdGRlcnIgdG8gdGhpcyBwaXBlIGhhbmRsZSAqLwotICAgIGluZm8uaFBpcGVFcnJvcldy aXRlID0gaFBpcGVFcnJvcldyaXRlOyAgICAKLSAgICAgCi0gICAgLyoKLSAgICAgKiAgVHJ5 IHRvIGxhdW5jaCB0aGUgQ0dJLiAgVW5kZXIgdGhlIGNvdmVycywgdGhpcyBjYWxsIAotICAg ICAqICB3aWxsIHRyeSB0byBwaWNrIHVwIHRoZSBhcHByb3ByaWF0ZSBpbnRlcnByZXRlciBp ZiAKLSAgICAgKiAgb25lIGlzIG5lZWRlZC4KLSAgICAgKi8KLSAgICBwaWQgPSBmdW5jKGRh dGEsICZpbmZvKTsKLSAgICBpZiAocGlkID09IC0xKSB7Ci0gICAgICAgIC8qIFRoaW5ncyBk aWRuJ3Qgd29yaywgc28gY2xlYW51cCAqLwotICAgICAgICBwaWQgPSAwOyAgIC8qIG1hcCBX aW4zMiBlcnJvciBjb2RlIG9udG8gVW5peCBkZWZhdWx0ICovCi0gICAgICAgIENsb3NlSGFu ZGxlKGhQaXBlT3V0cHV0UmVhZCk7Ci0gICAgICAgIENsb3NlSGFuZGxlKGhQaXBlSW5wdXRX cml0ZSk7Ci0gICAgICAgIENsb3NlSGFuZGxlKGhQaXBlRXJyb3JSZWFkKTsKLSAgICB9Ci0g ICAgZWxzZSB7Ci0gICAgICAgIGlmIChwaXBlX291dCkgewotICAgICAgICAgICAgLyoKLSAg ICAgICAgICAgICAqICBUaGlzIHBpcGUgcmVwcmVzZW50cyBzdGRvdXQgZm9yIHRoZSBzY3Jp cHQsIAotICAgICAgICAgICAgICogIHNvIHdlIHJlYWQgZnJvbSB0aGlzIHBpcGUuCi0gICAg ICAgICAgICAgKi8KLQkgICAgLyogQ3JlYXRlIGEgcmVhZCBidWZmZXIgKi8KLSAgICAgICAg ICAgICpwaXBlX291dCA9IGFwX2JjcmVhdGUocCwgQl9SRCk7Ci0KLQkgICAgLyogU2V0dXAg dGhlIGNsZWFudXAgcm91dGluZSBmb3IgdGhlIGhhbmRsZSAqLwotICAgICAgICAgICAgYXBf bm90ZV9jbGVhbnVwc19mb3JfaChwLCBoUGlwZU91dHB1dFJlYWQpOyAgIAotCi0JICAgIC8q IEFzc29jaWF0ZSB0aGUgaGFuZGxlIHdpdGggdGhlIG5ldyBidWZmZXIgKi8KLSAgICAgICAg ICAgIGFwX2JwdXNoaCgqcGlwZV9vdXQsIGhQaXBlT3V0cHV0UmVhZCk7Ci0gICAgICAgIH0K LSAgICAgICAgCi0gICAgICAgIGlmIChwaXBlX2luKSB7Ci0gICAgICAgICAgICAvKgotICAg ICAgICAgICAgICogIFRoaXMgcGlwZSByZXByZXNlbnRzIHN0ZGluIGZvciB0aGUgc2NyaXB0 LCBzbyB3ZSAKLSAgICAgICAgICAgICAqICB3cml0ZSB0byB0aGlzIHBpcGUuCi0gICAgICAg ICAgICAgKi8KLQkgICAgLyogQ3JlYXRlIGEgd3JpdGUgYnVmZmVyICovCi0gICAgICAgICAg ICAqcGlwZV9pbiA9IGFwX2JjcmVhdGUocCwgQl9XUik7ICAgICAgICAgICAgIAotCi0JICAg IC8qIFNldHVwIHRoZSBjbGVhbnVwIHJvdXRpbmUgZm9yIHRoZSBoYW5kbGUgKi8KLSAgICAg ICAgICAgIGFwX25vdGVfY2xlYW51cHNfZm9yX2gocCwgaFBpcGVJbnB1dFdyaXRlKTsKLQot CSAgICAvKiBBc3NvY2lhdGUgdGhlIGhhbmRsZSB3aXRoIHRoZSBuZXcgYnVmZmVyICovCi0g ICAgICAgICAgICBhcF9icHVzaGgoKnBpcGVfaW4sIGhQaXBlSW5wdXRXcml0ZSk7Ci0KLSAg ICAgICAgfQotICAgICAgCi0gICAgICAgIGlmIChwaXBlX2VycikgewotICAgICAgICAgICAg LyoKLSAgICAgICAgICAgICAqICBUaGlzIHBpcGUgcmVwcmVzZW50cyBzdGRlcnIgZm9yIHRo ZSBzY3JpcHQsIHNvIAotICAgICAgICAgICAgICogIHdlIHJlYWQgZnJvbSB0aGlzIHBpcGUu Ci0gICAgICAgICAgICAgKi8KLQkgICAgLyogQ3JlYXRlIGEgcmVhZCBidWZmZXIgKi8KLSAg ICAgICAgICAgICpwaXBlX2VyciA9IGFwX2JjcmVhdGUocCwgQl9SRCk7Ci0KLQkgICAgLyog U2V0dXAgdGhlIGNsZWFudXAgcm91dGluZSBmb3IgdGhlIGhhbmRsZSAqLwotICAgICAgICAg ICAgYXBfbm90ZV9jbGVhbnVwc19mb3JfaChwLCBoUGlwZUVycm9yUmVhZCk7Ci0KLQkgICAg LyogQXNzb2NpYXRlIHRoZSBoYW5kbGUgd2l0aCB0aGUgbmV3IGJ1ZmZlciAqLwotICAgICAg ICAgICAgYXBfYnB1c2hoKCpwaXBlX2VyciwgaFBpcGVFcnJvclJlYWQpOwotICAgICAgICB9 Ci0gICAgfSAgCi0KLQotICAgIC8qCi0gICAgICogTm93IHRoYXQgaGFuZGxlcyBoYXZlIGJl ZW4gaW5oZXJpdGVkLCBjbG9zZSB0aGVtIHRvIGJlIHNhZmUuCi0gICAgICogWW91IGRvbid0 IHdhbnQgdG8gcmVhZCBvciB3cml0ZSB0byB0aGVtIGFjY2lkZW50YWxseSwgYW5kIHdlCi0g ICAgICogc3VyZSBkb24ndCB3YW50IHRvIGhhdmUgYSBoYW5kbGUgbGVhay4KLSAgICAgKi8K LSAgICBDbG9zZUhhbmRsZShoUGlwZU91dHB1dFdyaXRlKTsKLSAgICBDbG9zZUhhbmRsZSho UGlwZUlucHV0UmVhZCk7Ci0gICAgQ2xvc2VIYW5kbGUoaFBpcGVFcnJvcldyaXRlKTsKLQot I2Vsc2UKLSAgICBpbnQgZmRfaW4sIGZkX291dCwgZmRfZXJyOwotICAgIHBpZF90IHBpZDsK LSAgICBpbnQgc2F2ZV9lcnJubzsKLQotICAgIGFwX2Jsb2NrX2FsYXJtcygpOwotCi0gICAg cGlkID0gc3Bhd25fY2hpbGRfY29yZShwLCBmdW5jLCBkYXRhLCBraWxsX2hvdywKLQkJCSAg IHBpcGVfaW4gPyAmZmRfaW4gOiBOVUxMLAotCQkJICAgcGlwZV9vdXQgPyAmZmRfb3V0IDog TlVMTCwKLQkJCSAgIHBpcGVfZXJyID8gJmZkX2VyciA6IE5VTEwpOwotCi0gICAgaWYgKHBp ZCA9PSAwKSB7Ci0Jc2F2ZV9lcnJubyA9IGVycm5vOwotCWFwX3VuYmxvY2tfYWxhcm1zKCk7 Ci0JZXJybm8gPSBzYXZlX2Vycm5vOwotCXJldHVybiAwOwotICAgIH0KLQotICAgIGlmIChw aXBlX291dCkgewotCSpwaXBlX291dCA9IGFwX2JjcmVhdGUocCwgQl9SRCk7Ci0JYXBfbm90 ZV9jbGVhbnVwc19mb3JfZmQocCwgZmRfb3V0KTsKLQlhcF9icHVzaGZkKCpwaXBlX291dCwg ZmRfb3V0LCBmZF9vdXQpOwotICAgIH0KLQotICAgIGlmIChwaXBlX2luKSB7Ci0JKnBpcGVf aW4gPSBhcF9iY3JlYXRlKHAsIEJfV1IpOwotCWFwX25vdGVfY2xlYW51cHNfZm9yX2ZkKHAs IGZkX2luKTsKLQlhcF9icHVzaGZkKCpwaXBlX2luLCBmZF9pbiwgZmRfaW4pOwotICAgIH0K LQotICAgIGlmIChwaXBlX2VycikgewotCSpwaXBlX2VyciA9IGFwX2JjcmVhdGUocCwgQl9S RCk7Ci0JYXBfbm90ZV9jbGVhbnVwc19mb3JfZmQocCwgZmRfZXJyKTsKLQlhcF9icHVzaGZk KCpwaXBlX2VyciwgZmRfZXJyLCBmZF9lcnIpOwotICAgIH0KLSNlbmRpZgotCi0gICAgYXBf dW5ibG9ja19hbGFybXMoKTsKLSAgICByZXR1cm4gcGlkOwotfQotI2VuZGlmCi0KIHN0YXRp YyB2b2lkIGZyZWVfcHJvY19jaGFpbihzdHJ1Y3QgcHJvY2Vzc19jaGFpbiAqcHJvY3MpCiB7 CiAgICAgLyogRGlzcG9zZSBvZiB0aGUgc3VicHJvY2Vzc2VzIHdlJ3ZlIHNwYXduZWQgb2Zm IGluIHRoZSBjb3Vyc2Ugb2YKSW5kZXg6IHNyYy9saWIvYXByL3RocmVhZHByb2MvdW5peC9w cm9jLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL2FwYWNoZS0yLjAvc3Jj L2xpYi9hcHIvdGhyZWFkcHJvYy91bml4L3Byb2MuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24g MS40CmRpZmYgLXUgLXIxLjQgcHJvYy5jCi0tLSBwcm9jLmMJMTk5OS8xMC8wNCAxNjozNzoz OQkxLjQKKysrIHByb2MuYwkxOTk5LzEwLzA5IDE2OjQ3OjA2CkBAIC0xMjcsNiArMTI3LDkz IEBACiAgICAgcmV0dXJuIEFQUl9TVUNDRVNTOwogfQogCisKKy8qICoqKkFQUkRPQyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg KiBhcF9zdGF0dXNfdCBhcF9zZXRwcm9jYXR0cl9jaGlsZGluKGFwX3Byb2NhdHRyX3QgKiwg YXBfZmlsZV90ICosCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFw X2ZpbGVfdCAqKQorICogICAgU2V0IHRoZSBjaGlsZF9pbiBhbmQvb3IgcGFyZW50X2luIHZh bHVlcyB0byBleGlzdGluZyBhcF9maWxlX3QKKyAqICAgIHZhbHVlcy4gVGhpcyBpcyBOT1Qg YSByZXF1aXJlZCBpbml0aWFsaXplciBmdW5jdGlvbi4gVGhpcyBpcworICogICAgdXNlZnVs IGlmIHlvdSBoYXZlIGFscmVhZHkgb3BlbmVkIGEgcGlwZSAob3IgbXVsdGlwbGUgZmlsZXMp CisgKiAgICB0aGF0IHlvdSB3aXNoIHRvIHVzZSwgcGVyaGFwcyBwZXJzaXN0ZW50bHkgYWNy b3NzIG11dGlwbGUKKyAqICAgIHByb2Nlc3MgaW52b2NhdGlvbnMgLSBzdWNoIGFzIGEgbG9n IGZpbGUuIFlvdSBjYW4gc2F2ZSBzb21lIAorICogICAgZXh0cmEgZnVuY3Rpb24gY2FsbHMg Ynkgbm90IGNyZWF0aW5nIHlvdXIgb3duIHBpcGUgc2luY2UgdGhpcworICogICAgY3JlYXRl cyBvbmUgaW4gdGhlIHByb2Nlc3Mgc3BhY2UgZm9yIHlvdS4KKyAqIGFyZyAxKSBUaGUgcHJv Y2F0dHIgd2UgY2FyZSBhYm91dC4gCisgKiBhcmcgMikgYXBfZmlsZV90IHZhbHVlIHRvIHVz ZSBhcyBjaGlsZF9pbi4gTXVzdCBiZSBhIHZhbGlkIGZpbGUuCisgKiBhcmcgMykgYXBfZmls ZV90IHZhbHVlIHRvIHVzZSBhcyBwYXJlbnRfaW4uIE11c3QgYmUgYSB2YWxpZCBmaWxlLgor ICovCithcF9zdGF0dXNfdCBhcF9zZXRwcm9jYXR0cl9jaGlsZGluKHN0cnVjdCBwcm9jYXR0 cl90ICphdHRyLCBhcF9maWxlX3QgKmNoaWxkX2luLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcF9maWxlX3QgKnBhcmVudF9pbikKK3sKKyAgICBpZiAoYXR0ci0+ Y2hpbGRfaW4gPT0gTlVMTCAmJiBhdHRyLT5wYXJlbnRfaW4gPT0gTlVMTCkKKyAgICAgICAg YXBfY3JlYXRlX3BpcGUoJmF0dHItPmNoaWxkX2luLCAmYXR0ci0+cGFyZW50X2luLCBhdHRy LT5jbnR4dCk7CisKKyAgICBpZiAoY2hpbGRfaW4gIT0gTlVMTCkKKyAgICAgICAgYXBfZHVw ZmlsZSgmYXR0ci0+Y2hpbGRfaW4sIGNoaWxkX2luKTsKKworICAgIGlmIChwYXJlbnRfaW4g IT0gTlVMTCkKKyAgICAgICAgYXBfZHVwZmlsZSgmYXR0ci0+cGFyZW50X2luLCBwYXJlbnRf aW4pOworCisgICAgcmV0dXJuIEFQUl9TVUNDRVNTOworfQorCisKKy8qICoqKkFQUkRPQyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisgKiBhcF9zdGF0dXNfdCBhcF9zZXRwcm9jYXR0cl9jaGlsZG91dChhcF9wcm9jYXR0cl90 ICosIGFwX2ZpbGVfdCAqLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXBfZmlsZV90ICopCisgKiAgICBTZXQgdGhlIGNoaWxkX291dCBhbmQgcGFyZW50X291 dCB2YWx1ZXMgdG8gZXhpc3RpbmcgYXBfZmlsZV90CisgKiAgICB2YWx1ZXMuIFRoaXMgaXMg Tk9UIGEgcmVxdWlyZWQgaW5pdGlhbGl6ZXIgZnVuY3Rpb24uIFRoaXMgaXMKKyAqICAgIHVz ZWZ1bCBpZiB5b3UgaGF2ZSBhbHJlYWR5IG9wZW5lZCBhIHBpcGUgKG9yIG11bHRpcGxlIGZp bGVzKQorICogICAgdGhhdCB5b3Ugd2lzaCB0byB1c2UsIHBlcmhhcHMgcGVyc2lzdGVudGx5 IGFjcm9zcyBtdXRpcGxlCisgKiAgICBwcm9jZXNzIGludm9jYXRpb25zIC0gc3VjaCBhcyBh IGxvZyBmaWxlLiAKKyAqIGFyZyAxKSBUaGUgcHJvY2F0dHIgd2UgY2FyZSBhYm91dC4gCisg KiBhcmcgMikgYXBfZmlsZV90IHZhbHVlIHRvIHVzZSBhcyBjaGlsZF9vdXQuIE11c3QgYmUg YSB2YWxpZCBmaWxlLgorICogYXJnIDMpIGFwX2ZpbGVfdCB2YWx1ZSB0byB1c2UgYXMgcGFy ZW50X291dC4gTXVzdCBiZSBhIHZhbGlkIGZpbGUuCisgKi8KK2FwX3N0YXR1c190IGFwX3Nl dHByb2NhdHRyX2NoaWxkb3V0KHN0cnVjdCBwcm9jYXR0cl90ICphdHRyLCBhcF9maWxlX3Qg KmNoaWxkX291dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX2Zp bGVfdCAqcGFyZW50X291dCkKK3sKKyAgICBpZiAoYXR0ci0+Y2hpbGRfb3V0ID09IE5VTEwg JiYgYXR0ci0+cGFyZW50X291dCA9PSBOVUxMKQorICAgICAgICBhcF9jcmVhdGVfcGlwZSgm YXR0ci0+Y2hpbGRfb3V0LCAmYXR0ci0+cGFyZW50X291dCwgYXR0ci0+Y250eHQpOworCisg ICAgaWYgKGNoaWxkX291dCAhPSBOVUxMKQorICAgICAgICBhcF9kdXBmaWxlKCZhdHRyLT5j aGlsZF9vdXQsIGNoaWxkX291dCk7CisKKyAgICBpZiAocGFyZW50X291dCAhPSBOVUxMKQor ICAgICAgICBhcF9kdXBmaWxlKCZhdHRyLT5wYXJlbnRfb3V0LCBwYXJlbnRfb3V0KTsKKwor ICAgIHJldHVybiBBUFJfU1VDQ0VTUzsKK30KKworCisvKiAqKipBUFJET0MqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogYXBf c3RhdHVzX3QgYXBfc2V0cHJvY2F0dHJfY2hpbGRlcnIoYXBfcHJvY2F0dHJfdCAqLCBhcF9m aWxlX3QgKiwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX2Zp bGVfdCAqKQorICogICAgU2V0IHRoZSBjaGlsZF9lcnIgYW5kIHBhcmVudF9lcnIgdmFsdWVz IHRvIGV4aXN0aW5nIGFwX2ZpbGVfdAorICogICAgdmFsdWVzLiBUaGlzIGlzIE5PVCBhIHJl cXVpcmVkIGluaXRpYWxpemVyIGZ1bmN0aW9uLiBUaGlzIGlzCisgKiAgICB1c2VmdWwgaWYg eW91IGhhdmUgYWxyZWFkeSBvcGVuZWQgYSBwaXBlIChvciBtdWx0aXBsZSBmaWxlcykKKyAq ICAgIHRoYXQgeW91IHdpc2ggdG8gdXNlLCBwZXJoYXBzIHBlcnNpc3RlbnRseSBhY3Jvc3Mg bXV0aXBsZQorICogICAgcHJvY2VzcyBpbnZvY2F0aW9ucyAtIHN1Y2ggYXMgYSBsb2cgZmls ZS4gCisgKiBhcmcgMSkgVGhlIHByb2NhdHRyIHdlIGNhcmUgYWJvdXQuIAorICogYXJnIDIp IGFwX2ZpbGVfdCB2YWx1ZSB0byB1c2UgYXMgY2hpbGRfZXJyLiBNdXN0IGJlIGEgdmFsaWQg ZmlsZS4KKyAqIGFyZyAzKSBhcF9maWxlX3QgdmFsdWUgdG8gdXNlIGFzIHBhcmVudF9lcnIu IE11c3QgYmUgYSB2YWxpZCBmaWxlLgorICovCithcF9zdGF0dXNfdCBhcF9zZXRwcm9jYXR0 cl9jaGlsZGVycihzdHJ1Y3QgcHJvY2F0dHJfdCAqYXR0ciwgYXBfZmlsZV90ICpjaGlsZF9l cnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX2ZpbGVfdCAqcGFy ZW50X2VycikKK3sKKyAgICBpZiAoYXR0ci0+Y2hpbGRfZXJyID09IE5VTEwgJiYgYXR0ci0+ cGFyZW50X2VyciA9PSBOVUxMKQorICAgICAgICBhcF9jcmVhdGVfcGlwZSgmYXR0ci0+Y2hp bGRfZXJyLCAmYXR0ci0+cGFyZW50X2VyciwgYXR0ci0+Y250eHQpOworCisgICAgaWYgKGNo aWxkX2VyciAhPSBOVUxMKQorICAgICAgICBhcF9kdXBmaWxlKCZhdHRyLT5jaGlsZF9lcnIs IGNoaWxkX2Vycik7CisKKyAgICBpZiAocGFyZW50X2VyciAhPSBOVUxMKQorICAgICAgICBh cF9kdXBmaWxlKCZhdHRyLT5wYXJlbnRfZXJyLCBwYXJlbnRfZXJyKTsKKworICAgIHJldHVy biBBUFJfU1VDQ0VTUzsKK30KKworCiAvKiAqKipBUFJET0MqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogYXBfc3RhdHVzX3Qg YXBfc2V0cHJvY2F0dHJfZGlyKGFwX3Byb2NhdHRyX3QgKiwgY2hhciAqKSAKICAqICAgIFNl dCB3aGljaCBkaXJlY3RvcnkgdGhlIGNoaWxkIHByb2Nlc3Mgc2hvdWxkIHN0YXJ0IGV4ZWN1 dGluZyBpbi4gCkBAIC0xMzYsNyArMjIzLDcgQEAKICAqICAgICAgICBpcyBtYWRlLiAKICAq LwogYXBfc3RhdHVzX3QgYXBfc2V0cHJvY2F0dHJfZGlyKHN0cnVjdCBwcm9jYXR0cl90ICph dHRyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRpcikgCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZGlyKSAKIHsKICAg ICBhdHRyLT5jdXJyZGlyID0gYXBfcHN0cmR1cChhdHRyLT5jbnR4dCwgZGlyKTsKICAgICBp ZiAoYXR0ci0+Y3VycmRpcikgewpAQCAtMTk5LDcgKzI4Niw3IEBACiB9CiAKIC8qICoqKkFQ UkRPQyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCi0gKiBhcF9zdGF0dXNfdCBhcF9jcmVhdGVfcHJvY2VzcyhhcF9jb250ZXh0X3Qg KiwgY2hhciAqLCBjaGFyICpjb25zdCBbXSwKKyAqIGFwX3N0YXR1c190IGFwX2NyZWF0ZV9w cm9jZXNzKGFwX2NvbnRleHRfdCAqLCBjb25zdCBjaGFyICosIGNoYXIgKmNvbnN0IFtdLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKiwgYXBfcHJvY2F0dHJf dCAqLCBhcF9wcm9jX3QgKiopIAogICogICAgQ3JlYXRlIGEgbmV3IHByb2Nlc3MgYW5kIGV4 ZWN1dGUgYSBuZXcgcHJvZ3JhbSB3aXRoaW4gdGhhdCBwcm9jZXNzLgogICogYXJnIDEpIFRo ZSBjb250ZXh0IHRvIHVzZS4gCkBAIC0yMTIsOSArMjk5LDkgQEAKICAqICAgICAgICBwcm9j ZXNzCiAgKiBhcmcgNikgVGhlIHJlc3VsdGluZyBwcm9jZXNzIGhhbmRsZS4KICAqLwotYXBf c3RhdHVzX3QgYXBfY3JlYXRlX3Byb2Nlc3MoYXBfY29udGV4dF90ICpjb250LCBjaGFyICpw cm9nbmFtZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqY29uc3Qg YXJnc1tdLCBjaGFyICoqZW52LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgcHJvY2F0dHJfdCAqYXR0ciwgc3RydWN0IHByb2NfdCAqKm5ldykKK2FwX3N0YXR1 c190IGFwX2NyZWF0ZV9wcm9jZXNzKHN0cnVjdCBwcm9jX3QgKipuZXcsIGFwX2NvbnRleHRf dCAqY29udCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpw cm9nbmFtZSwgY2hhciAqY29uc3QgYXJnc1tdLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2hhciAqKmVudiwgc3RydWN0IHByb2NhdHRyX3QgKmF0dHIpCiB7CiAgICAgaW50 IGk7CiAgICAgY2hhciAqKm5ld2FyZ3M7CkluZGV4OiBzcmMvbWFpbi9odHRwX2xvZy5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2N2cy9hcGFjaGUtMi4wL3NyYy9tYWluL2h0 dHBfbG9nLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC11IC1yMS44IGh0dHBf bG9nLmMKLS0tIGh0dHBfbG9nLmMJMTk5OS8xMC8wNiAyMzowNDowOAkxLjgKKysrIGh0dHBf bG9nLmMJMTk5OS8xMC8wOSAxNjo0NzoxMApAQCAtMTU2LDYwICsxNTYsODQgQEAKICAgICB7 TlVMTCwJLTF9LAogfTsKIAotc3RhdGljIGludCBlcnJvcl9sb2dfY2hpbGQodm9pZCAqY21k LCBhcF9jaGlsZF9pbmZvX3QgKnBpbmZvKQorc3RhdGljIGludCBsb2dfY2hpbGQoYXBfY29u dGV4dF90ICpwLCBjb25zdCBjaGFyICpwcm9nbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg IGFwX2ZpbGVfdCAqKmZwb3V0LCBhcF9maWxlX3QgKipmcGluLAorICAgICAgICAgICAgICAg ICAgICAgYXBfZmlsZV90ICoqZnBlcnIpCiB7CiAgICAgLyogQ2hpbGQgcHJvY2VzcyBjb2Rl IGZvciAnRXJyb3JMb2cgInwuLi4iJzsKICAgICAgKiBtYXkgd2FudCBhIGNvbW1vbiBmcmFt ZXdvcmsgZm9yIHRoaXMsIHNpbmNlIEkgZXhwZWN0IGl0IHdpbGwKICAgICAgKiBiZSBjb21t b24gZm9yIG90aGVyIGZvby1sb2dnZXJzIHRvIHdhbnQgdGhpcyBzb3J0IG9mIHRoaW5nLi4u CiAgICAgICovCi0gICAgaW50IGNoaWxkX3BpZCA9IDA7CisgICAgaW50IHJjID0gLTE7Cisg ICAgYXBfcHJvY2F0dHJfdCAqcHJvY2F0dHI7CisgICAgYXBfcHJvY190ICpwcm9jbmV3Owor ICAgIGFwX29zX3Byb2NfdCBmcmVkOwogCisgICAgYXBfYmxvY2tfYWxhcm1zKCk7CiAgICAg YXBfY2xlYW51cF9mb3JfZXhlYygpOworCiAjaWZkZWYgU0lHSFVQCiAgICAgLyogTm8gY29u Y2VwdCBvZiBhIGNoaWxkIHByb2Nlc3Mgb24gV2luMzIgKi8KICAgICBzaWduYWwoU0lHSFVQ LCBTSUdfSUdOKTsKICNlbmRpZiAvKiBuZGVmIFNJR0hVUCAqLwotI2lmIGRlZmluZWQoV0lO MzIpCi0gICAgY2hpbGRfcGlkID0gc3Bhd25sKF9QX05PV0FJVCwgU0hFTExfUEFUSCwgU0hF TExfUEFUSCwgIi9jIiwgKGNoYXIgKiljbWQsIE5VTEwpOwotICAgIHJldHVybihjaGlsZF9w aWQpOwotI2VsaWYgZGVmaW5lZChPUzIpCi0gICAgLyogRm9yIE9TLzIgd2UgbmVlZCB0byB1 c2UgYSAnLycgYW5kIHNwYXduIHRoZSBjaGlsZCByYXRoZXIgdGhhbiBleGVjIGFzCi0gICAg ICogd2UgaGF2ZW4ndCBmb3JrZWQgKi8KLSAgICBjaGlsZF9waWQgPSBzcGF3bmwoUF9OT1dB SVQsIFNIRUxMX1BBVEgsIFNIRUxMX1BBVEgsICIvYyIsIChjaGFyICopY21kLCBOVUxMKTsK LSAgICByZXR1cm4oY2hpbGRfcGlkKTsKLSNlbHNlICAgIAotICAgIGV4ZWNsKFNIRUxMX1BB VEgsIFNIRUxMX1BBVEgsICItYyIsIChjaGFyICopY21kLCBOVUxMKTsKLSNlbmRpZiAgICAK LSAgICBleGl0KDEpOwotICAgIC8qIE5PVCBSRUFDSEVEICovCi0gICAgcmV0dXJuKGNoaWxk X3BpZCk7CisKKyAgICBpZiAoKGFwX2NyZWF0ZXByb2NhdHRyX2luaXQoJnByb2NhdHRyLCBw KSAgICAgICAgICAhPSBBUFJfU1VDQ0VTUykgfHwKKyAgICAgICAgKGFwX3NldHByb2NhdHRy X2lvKHByb2NhdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBpbiAgPyAxIDog MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwb3V0ID8gMSA6IDAsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICBmcGVyciA/IDEgOiAwKSAgICAgICAgICAgICAgIT0gQVBS X1NVQ0NFU1MpIHx8CisgICAgICAgIChhcF9zZXRwcm9jYXR0cl9kaXIocHJvY2F0dHIsIHBy b2duYW1lKSAgICAgICAgIT0gQVBSX1NVQ0NFU1MpKSB7CisgICAgICAgIC8qIFNvbWV0aGlu ZyBiYWQgaGFwcGVuZWQsIGdpdmUgdXAgYW5kIGdvIGF3YXkuICovCisgICAgICAgIHJjID0g LTE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByYyA9IGFwX2NyZWF0ZV9wcm9jZXNz KCZwcm9jbmV3LCBwLCBwcm9nbmFtZSwgTlVMTCwgTlVMTCwgcHJvY2F0dHIpOworICAgIAor ICAgICAgICBpZiAocmMgPT0gQVBSX1NVQ0NFU1MpIHsKKyNpZm5kZWYgV0lOMzIKKyAgICAg ICAgICAgIC8qIHBqciAtIHRoaXMgaXMgYSBjaGVhcCBoYWNrIGZvciBub3cgdG8gZ2V0IHRo ZSBiYXNpY3Mgd29ya2luZyBpbgorICAgICAgICAgICAgICogICAgICAgc3RhZ2VzLiBhcF9u b3RlX3N1YnByb2Nlc3MgYW5kIGZyZWVfcHJvYyBuZWVkIHRvIGJlIHJlZG9uZQorICAgICAg ICAgICAgICogICAgICAgdG8gbWFrZSB1c2Ugb2YgYXBfcHJvY190IGluc3RlYWQgb2YgcGlk LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBhcF9nZXRfb3NfcHJvYyhwcm9jbmV3 LCAmZnJlZCk7CisgICAgICAgICAgICBhcF9ub3RlX3N1YnByb2Nlc3MocCwgZnJlZCwga2ls bF9hZnRlcl90aW1lb3V0KTsKKyNlbmRpZgorICAgICAgICAgICAgaWYgKGZwaW4pIHsKKyAg ICAgICAgICAgICAgICBhcF9nZXRfY2hpbGRpbihmcGluLCBwcm9jbmV3KTsKKyAgICAgICAg ICAgIH0KKworICAgICAgICAgICAgaWYgKGZwb3V0KSB7CisgICAgICAgICAgICAgICAgYXBf Z2V0X2NoaWxkb3V0KGZwb3V0LCBwcm9jbmV3KTsKKyAgICAgICAgICAgIH0KKworICAgICAg ICAgICAgaWYgKGZwZXJyKSB7CisgICAgICAgICAgICAgICAgYXBfZ2V0X2NoaWxkZXJyKGZw ZXJyLCBwcm9jbmV3KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg IGFwX3VuYmxvY2tfYWxhcm1zKCk7CisKKyAgICByZXR1cm4ocmMpOwogfQogCiBzdGF0aWMg dm9pZCBvcGVuX2Vycm9yX2xvZyhzZXJ2ZXJfcmVjICpzLCBhcF9jb250ZXh0X3QgKnApCiB7 CiAgICAgY29uc3QgY2hhciAqZm5hbWU7CisgICAgaW50IHJjOwogCiAgICAgaWYgKCpzLT5l cnJvcl9mbmFtZSA9PSAnfCcpIHsKLQlGSUxFICpkdW1teTsKLSAgICAgICAgaW50IGR1bW15 bm87Ci0jaWZkZWYgVFBGCi0gICAgICAgIFRQRl9GT1JLX0NISUxEIGNsZDsKLSAgICAgICAg Y2xkLmZpbGVuYW1lID0gcy0+ZXJyb3JfZm5hbWUrMTsKLSAgICAgICAgY2xkLnN1YnByb2Nl c3NfZW52ID0gTlVMTDsKLSAgICAgICAgY2xkLnByb2dfdHlwZSA9IEZPUktfTkFNRTsKLSAg ICAgICAgaWYgKCFhcF9zcGF3bl9jaGlsZChwLCBOVUxMLCAmY2xkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGtpbGxfYWZ0ZXJfdGltZW91dCwgJmR1bW15LCBOVUxMLCBOVUxM KSkgewotI2Vsc2UKLQlpZiAoIWFwX3NwYXduX2NoaWxkKHAsIGVycm9yX2xvZ19jaGlsZCwg KHZvaWQgKikocy0+ZXJyb3JfZm5hbWUrMSksCi0JCQkgICAga2lsbF9hZnRlcl90aW1lb3V0 LCAmZHVtbXksIE5VTEwsIE5VTEwpKSB7Ci0jZW5kaWYgLyogVFBGICovCisJYXBfZmlsZV90 ICpkdW1teTsKKworICAgICAgICAvKiBUaGlzIHN0YXJ0cyBhIG5ldyBwcm9jZXNzLi4uICov CisgICAgICAgIHJjID0gbG9nX2NoaWxkIChwLCBzLT5lcnJvcl9mbmFtZSsxLCBOVUxMLCAm ZHVtbXksIE5VTEwpOworICAgICAgICBpZiAocmMgIT0gQVBSX1NVQ0NFU1MpIHsKIAkgICAg cGVycm9yKCJhcF9zcGF3bl9jaGlsZCIpOwogCSAgICBmcHJpbnRmKHN0ZGVyciwgIkNvdWxk bid0IGZvcmsgY2hpbGQgZm9yIEVycm9yTG9nIHByb2Nlc3NcbiIpOwogCSAgICBleGl0KDEp OwogCX0KIAotICAgICAgICBkdW1teW5vID0gZmlsZW5vKGR1bW15KTsKLQlhcF9wdXRfb3Nf ZmlsZSgmcy0+ZXJyb3JfbG9nLCAmZHVtbXlubywgcCk7CisgICAgICAgIHMtPmVycm9yX2xv ZyA9IGR1bW15OwogICAgIH0KIAogI2lmZGVmIEhBVkVfU1lTTE9HCkBAIC0yNzYsOCArMzAw LDcgQEAKICAgICB9CiAKICAgICBmb3IgKHZpcnQgPSBzX21haW4tPm5leHQ7IHZpcnQ7IHZp cnQgPSB2aXJ0LT5uZXh0KSB7Ci0JaWYgKHZpcnQtPmVycm9yX2ZuYW1lKQotCXsKKwlpZiAo dmlydC0+ZXJyb3JfZm5hbWUpIHsKIAkgICAgZm9yIChxPXNfbWFpbjsgcSAhPSB2aXJ0OyBx ID0gcS0+bmV4dCkKIAkJaWYgKHEtPmVycm9yX2ZuYW1lICE9IE5VTEwgJiYKIAkJICAgIHN0 cmNtcChxLT5lcnJvcl9mbmFtZSwgdmlydC0+ZXJyb3JfZm5hbWUpID09IDApCkBAIC01MDYs NyArNTI5LDcgQEAKIAogdm9pZCBhcF9sb2dfcGlkKGFwX2NvbnRleHRfdCAqcCwgY29uc3Qg Y2hhciAqZm5hbWUpCiB7Ci0gICAgRklMRSAqcGlkX2ZpbGU7CisgICAgYXBfZmlsZV90ICpw aWRfZmlsZTsKICAgICBzdHJ1Y3Qgc3RhdCBmaW5mbzsKICAgICBzdGF0aWMgcGlkX3Qgc2F2 ZWRfcGlkID0gLTE7CiAgICAgcGlkX3QgbXlwaWQ7CkBAIC01MzEsMTQgKzU1NCwxNCBAQAog CQkJICAgICAgICk7CiAgICAgfQogCi0gICAgaWYoIShwaWRfZmlsZSA9IGZvcGVuKGZuYW1l LCAidyIpKSkgeworICAgIGlmKGFwX29wZW4oJnBpZF9maWxlLCBwLCBmbmFtZSwgQVBSX1dS SVRFIHwgQVBSX0JVRkZFUkVELCBBUFJfT1NfREVGQVVMVCkgIT0gQVBSX1NVQ0NFU1MpIHsK IAlwZXJyb3IoImZvcGVuIik7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IGNvdWxk IG5vdCBsb2cgcGlkIHRvIGZpbGUgJXNcbiIsCiAJCWFwX3NlcnZlcl9hcmd2MCwgZm5hbWUp OwogICAgICAgICBleGl0KDEpOwogICAgIH0KLSAgICBmcHJpbnRmKHBpZF9maWxlLCAiJWxk XG4iLCAobG9uZylteXBpZCk7Ci0gICAgZmNsb3NlKHBpZF9maWxlKTsKKyAgICBhcF9mcHJp bnRmKHBpZF9maWxlLCAiJWxkXG4iLCAobG9uZylteXBpZCk7CisgICAgYXBfY2xvc2UocGlk X2ZpbGUpOwogICAgIHNhdmVkX3BpZCA9IG15cGlkOwogfQogCkBAIC01OTIsMzUgKzYxNSw0 MiBAQAogCiBzdGF0aWMgaW50IHBpcGVkX2xvZ19zcGF3bihwaXBlZF9sb2cgKnBsKQogewot ICAgIGludCBwaWQ7CisgICAgaW50IHJjOworICAgIGFwX3Byb2NhdHRyX3QgKnByb2NhdHRy OworICAgIGFwX29zX3Byb2NfdCBwaWQ7CisgICAgYXBfcHJvY190ICpwcm9jbmV3OworCisg ICAgLyogcGpyIC0gY2FsbHMgdG8gYmxvY2sgYW5kIHVuYmxvY2sgYWxhcm1zIHdlcmVuJ3Qg aGVyZSBiZWZvcmUsIHdhcyB0aGlzICovCisgICAgLyogICAgICAgYW4gb3ZlcnNpZ2h0IG9y IGludGVudGlvbmFsPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisv KiAgYXBfYmxvY2tfYWxhcm1zKCk7ICAgKi8KIAotICAgIHBpZCA9IGZvcmsoKTsKLSAgICBp ZiAocGlkID09IDApIHsKLQkvKiBYWFg6IHRoaXMgbmVlZHMgcG9ydGluZyB0byBPUzIgYW5k IFdJTjMyICovCi0JLyogWFhYOiBuZWVkIHRvIGNoZWNrIHdoYXQgb3BlbiBmZHMgdGhlIGxv Z2dlciBpcyBhY3R1YWxseSBwYXNzZWQsCi0JICogWFhYOiBhbmQgQ0dJcyBmb3IgdGhhdCBt YXR0ZXIgLi4uIGNsZWFudXBfZm9yX2V4ZWMgKnNob3VsZCoKLQkgKiBYWFg6IGNsb3NlIGFs bCB0aGUgcmVsZXZhbnQgc3R1ZmYsIGJ1dCBoZXksIGl0IGNvdWxkIGJlIGJyb2tlbi4gKi8K LQlSQUlTRV9TSUdTVE9QKFBJUEVEX0xPR19TUEFXTik7Ci0JLyogd2UncmUgbm93IGluIHRo ZSBjaGlsZCAqLwotCWNsb3NlKFNURElOX0ZJTEVOTyk7Ci0JZHVwMihwbC0+ZmRzWzBdLCBT VERJTl9GSUxFTk8pOwotCi0JYXBfY2xlYW51cF9mb3JfZXhlYygpOwotCXNpZ25hbChTSUdD SExELCBTSUdfREZMKTsJLyogZm9yIEhQVVggKi8KLQlzaWduYWwoU0lHSFVQLCBTSUdfSUdO KTsKLQlleGVjbChTSEVMTF9QQVRILCBTSEVMTF9QQVRILCAiLWMiLCBwbC0+cHJvZ3JhbSwg TlVMTCk7CisgICAgYXBfY2xlYW51cF9mb3JfZXhlYygpOworI2lmZGVmIFNJR0hVUAorICAg IHNpZ25hbChTSUdIVVAsIFNJR19JR04pOworI2VuZGlmCisgICAgaWYgKChhcF9jcmVhdGVw cm9jYXR0cl9pbml0KHBsLT5wLCAmcHJvY2F0dHIpICAgICAgICAgIT0gQVBSX1NVQ0NFU1Mp IHx8CisgICAgICAgIChhcF9zZXRwcm9jYXR0cl9kaXIocHJvY2F0dHIsIHBsLT5wcm9ncmFt KSAgICAgICAgIT0gQVBSX1NVQ0NFU1MpIHx8CisgICAgICAgIChhcF9zZXRfY2hpbGRpbihw cm9jYXR0ciwgcGwtPmZkc1swXSwgcGwtPmZkc1sxXSkgIT0gQVBSX1NVQ0NFU1MpKSB7Cisg ICAgICAgIC8qIFNvbWV0aGluZyBiYWQgaGFwcGVuZWQsIGdpdmUgdXAgYW5kIGdvIGF3YXku ICovCiAJZnByaW50ZihzdGRlcnIsCiAJICAgICJwaXBlZF9sb2dfc3Bhd246IHVuYWJsZSB0 byBleGVjICVzIC1jICclcyc6ICVzXG4iLAogCSAgICBTSEVMTF9QQVRILCBwbC0+cHJvZ3Jh bSwgc3RyZXJyb3IgKGVycm5vKSk7Ci0JZXhpdCgxKTsKKyAgICAgICAgcmMgPSAtMTsKICAg ICB9Ci0gICAgaWYgKHBpZCA9PSAtMSkgewotCWZwcmludGYoc3RkZXJyLAotCSAgICAicGlw ZWRfbG9nX3NwYXduOiB1bmFibGUgdG8gZm9yaygpOiAlc1xuIiwgc3RyZXJyb3IgKGVycm5v KSk7Ci0JcmV0dXJuIC0xOworICAgIGVsc2UgeworICAgICAgICByYyA9IGFwX2NyZWF0ZV9w cm9jZXNzKHBsLT5wLCBwbC0+cHJvZ3JhbSwgTlVMTCwgTlVMTCwgcHJvY2F0dHIsICZwcm9j bmV3KTsKKyAgICAKKyAgICAgICAgaWYgKHJjID09IEFQUl9TVUNDRVNTKSB7ICAgICAgICAg ICAgLyogcGpyIC0gVGhpcyBubyBsb25nZXIgaGFwcGVucyBpbnNpZGUgdGhlIGNoaWxkLCAq LworICAgICAgICAgICAgUkFJU0VfU0lHU1RPUChQSVBFRF9MT0dfU1BBV04pOyAvKiAgIEkg YW0gYXNzdW1pbmcgdGhhdCBpZiBhcF9jcmVhdGVfcHJvY2VzcyB3YXMgICovCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgc3VjY2Vzc2Z1bCB0 aGF0IHRoZSBjaGlsZCBpcyBydW5uaW5nLiAgICAgICAgKi8KKyAgICAgICAgICAgIHBsLT5w aWQgPSBwcm9jbmV3OworICAgICAgICAgICAgYXBfZ2V0X29zX3Byb2MoJnByb2NuZXcsICZw aWQpOworICAgICAgICAgICAgYXBfcmVnaXN0ZXJfb3RoZXJfY2hpbGQocGlkLCBwaXBlZF9s b2dfbWFpbnRlbmFuY2UsIHBsLCBwbC0+ZmRzWzFdKTsKKyAgICAgICAgfQogICAgIH0KLSAg ICBwbC0+cGlkID0gcGlkOwotICAgIGFwX3JlZ2lzdGVyX290aGVyX2NoaWxkKHBpZCwgcGlw ZWRfbG9nX21haW50ZW5hbmNlLCBwbCwgcGwtPmZkc1sxXSk7CisgICAgCisvKiAgYXBfdW5i bG9ja19hbGFybXMoKTsgKi8KKyAgICAKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNjMyLDEz ICs2NjIsMTMgQEAKICAgICBzd2l0Y2ggKHJlYXNvbikgewogICAgIGNhc2UgT0NfUkVBU09O X0RFQVRIOgogICAgIGNhc2UgT0NfUkVBU09OX0xPU1Q6Ci0JcGwtPnBpZCA9IC0xOworCXBs LT5waWQgPSBOVUxMOwogCWFwX3VucmVnaXN0ZXJfb3RoZXJfY2hpbGQocGwpOwogCWlmIChw bC0+cHJvZ3JhbSA9PSBOVUxMKSB7CiAJICAgIC8qIGR1cmluZyBhIHJlc3RhcnQgKi8KIAkg ICAgYnJlYWs7CiAJfQotCWlmIChwaXBlZF9sb2dfc3Bhd24ocGwpID09IC0xKSB7CisJaWYg KHBpcGVkX2xvZ19zcGF3bihwbCkgIT0gQVBSX1NVQ0NFU1MpIHsKIAkgICAgLyogd2hhdCBj YW4gd2UgZG8/ICBUaGlzIGNvdWxkIGJlIHRoZSBlcnJvciBsb2cgd2UncmUgaGF2aW5nCiAJ ICAgICAqIHByb2JsZW1zIG9wZW5pbmcgdXAuLi4gKi8KIAkgICAgZnByaW50ZihzdGRlcnIs CkBAIC02NDgsMTUgKzY3OCwxNSBAQAogCWJyZWFrOwogICAgIAogICAgIGNhc2UgT0NfUkVB U09OX1VOV1JJVEFCTEU6Ci0JaWYgKHBsLT5waWQgIT0gLTEpIHsKLQkgICAga2lsbChwbC0+ cGlkLCBTSUdURVJNKTsKKwlpZiAocGwtPnBpZCAhPSBOVUxMKSB7CisJICAgIGFwX2tpbGwo cGwtPnBpZCwgU0lHVEVSTSk7CiAJfQogCWJyZWFrOwogICAgIAogICAgIGNhc2UgT0NfUkVB U09OX1JFU1RBUlQ6CiAJcGwtPnByb2dyYW0gPSBOVUxMOwotCWlmIChwbC0+cGlkICE9IC0x KSB7Ci0JICAgIGtpbGwocGwtPnBpZCwgU0lHVEVSTSk7CisJaWYgKHBsLT5waWQgIT0gTlVM TCkgeworCSAgICBhcF9raWxsKHBsLT5waWQsIFNJR1RFUk0pOwogCX0KIAlicmVhazsKIApA QCAtNjcwLDggKzcwMCw4IEBACiB7CiAgICAgcGlwZWRfbG9nICpwbCA9IGRhdGE7CiAKLSAg ICBpZiAocGwtPnBpZCAhPSAtMSkgewotCWtpbGwocGwtPnBpZCwgU0lHVEVSTSk7CisgICAg aWYgKHBsLT5waWQgIT0gTlVMTCkgeworCWFwX2tpbGwocGwtPnBpZCwgU0lHVEVSTSk7CiAg ICAgfQogICAgIGFwX3VucmVnaXN0ZXJfb3RoZXJfY2hpbGQocGwpOwogICAgIGFwX2Nsb3Nl KHBsLT5mZHNbMF0pOwpAQCAtNjk1LDcgKzcyNSw3IEBACiAgICAgcGwgPSBhcF9wYWxsb2Mo cCwgc2l6ZW9mICgqcGwpKTsKICAgICBwbC0+cCA9IHA7CiAgICAgcGwtPnByb2dyYW0gPSBh cF9wc3RyZHVwKHAsIHByb2dyYW0pOwotICAgIHBsLT5waWQgPSAtMTsKKyAgICBwbC0+cGlk ID0gTlVMTDsKICAgICBpZiAoYXBfY3JlYXRlX3BpcGUocCwgJnBsLT5mZHNbMF0sICZwbC0+ ZmRzWzFdKSAhPSBBUFJfU1VDQ0VTUykgewogCWludCBzYXZlX2Vycm5vID0gZXJybm87CiAJ ZXJybm8gPSBzYXZlX2Vycm5vOwpAQCAtNzIwLDYwICs3NTAsMjIgQEAKIH0KIAogI2Vsc2UK LXN0YXRpYyBpbnQgcGlwZWRfbG9nX2NoaWxkKHZvaWQgKmNtZCwgYXBfY2hpbGRfaW5mb190 ICpwaW5mbykKLXsKLSAgICAvKiBDaGlsZCBwcm9jZXNzIGNvZGUgZm9yICdUcmFuc2Zlckxv ZyAifC4uLiInOwotICAgICAqIG1heSB3YW50IGEgY29tbW9uIGZyYW1ld29yayBmb3IgdGhp cywgc2luY2UgSSBleHBlY3QgaXQgd2lsbAotICAgICAqIGJlIGNvbW1vbiBmb3Igb3RoZXIg Zm9vLWxvZ2dlcnMgdG8gd2FudCB0aGlzIHNvcnQgb2YgdGhpbmcuLi4KLSAgICAgKi8KLSAg ICBpbnQgY2hpbGRfcGlkID0gMTsKLQotICAgIGFwX2NsZWFudXBfZm9yX2V4ZWMoKTsKLSNp ZmRlZiBTSUdIVVAKLSAgICBzaWduYWwoU0lHSFVQLCBTSUdfSUdOKTsKLSNlbmRpZgotI2lm IGRlZmluZWQoV0lOMzIpCi0gICAgY2hpbGRfcGlkID0gc3Bhd25sKF9QX05PV0FJVCwgU0hF TExfUEFUSCwgU0hFTExfUEFUSCwgIi9jIiwgKGNoYXIgKiljbWQsIE5VTEwpOwotICAgIHJl dHVybihjaGlsZF9waWQpOwotI2VsaWYgZGVmaW5lZChPUzIpCi0gICAgLyogRm9yIE9TLzIg d2UgbmVlZCB0byB1c2UgYSAnLycgYW5kIHNwYXduIHRoZSBjaGlsZCByYXRoZXIgdGhhbiBl eGVjIGFzCi0gICAgICogd2UgaGF2ZW4ndCBmb3JrZWQgKi8KLSAgICBjaGlsZF9waWQgPSBz cGF3bmwoUF9OT1dBSVQsIFNIRUxMX1BBVEgsIFNIRUxMX1BBVEgsICIvYyIsIChjaGFyICop Y21kLCBOVUxMKTsKLSAgICByZXR1cm4oY2hpbGRfcGlkKTsKLSNlbHNlCi0gICAgZXhlY2wg KFNIRUxMX1BBVEgsIFNIRUxMX1BBVEgsICItYyIsIChjaGFyICopY21kLCBOVUxMKTsKLSNl bmRpZgotICAgIHBlcnJvcigiZXhlYyIpOwotICAgIGZwcmludGYoc3RkZXJyLCAiRXhlYyBv ZiBzaGVsbCBmb3IgbG9nZ2luZyBmYWlsZWQhISFcbiIpOwotICAgIHJldHVybihjaGlsZF9w aWQpOwotfQotCi0KIEFQSV9FWFBPUlQocGlwZWRfbG9nICopIGFwX29wZW5fcGlwZWRfbG9n KGFwX2NvbnRleHRfdCAqcCwgY29uc3QgY2hhciAqcHJvZ3JhbSkKIHsKICAgICBwaXBlZF9s b2cgKnBsOwotICAgIEZJTEUgKmR1bW15OwotICAgIGludCBkdW1teW5vOwotI2lmZGVmIFRQ RgotICAgIFRQRl9GT1JLX0NISUxEIGNsZDsKLSAgICBjbGQuZmlsZW5hbWUgPSAoY2hhciAq KXByb2dyYW07Ci0gICAgY2xkLnN1YnByb2Nlc3NfZW52ID0gTlVMTDsKLSAgICBjbGQucHJv Z190eXBlID0gRk9SS19OQU1FOworICAgIGFwX2ZpbGVfdCAqZHVtbXk7CisgICAgaW50IHJj OwogCi0gICAgaWYgKCFhcF9zcGF3bl9jaGlsZCAocCwgTlVMTCwgJmNsZCwKLSAgICAgIGtp bGxfYWZ0ZXJfdGltZW91dCwgJmR1bW15LCBOVUxMLCBOVUxMKSl7Ci0jZWxzZQotICAgIGlm ICghYXBfc3Bhd25fY2hpbGQocCwgcGlwZWRfbG9nX2NoaWxkLCAodm9pZCAqKXByb2dyYW0s Ci0JCQlraWxsX2FmdGVyX3RpbWVvdXQsICZkdW1teSwgTlVMTCwgTlVMTCkpIHsKLSNlbmRp ZiAvKiBUUEYgKi8KKyAgICByYyA9IGxvZ19jaGlsZChwLCBwcm9ncmFtLCBOVUxMLCAmZHVt bXksIE5VTEwpOworICAgIGlmIChyYyAhPSBBUFJfU1VDQ0VTUykgewogCXBlcnJvcigiYXBf c3Bhd25fY2hpbGQiKTsKIAlmcHJpbnRmKHN0ZGVyciwgIkNvdWxkbid0IGZvcmsgY2hpbGQg Zm9yIHBpcGVkIGxvZyBwcm9jZXNzXG4iKTsKIAlleGl0ICgxKTsKICAgICB9CisKICAgICBw bCA9IGFwX3BhbGxvYyhwLCBzaXplb2YgKCpwbCkpOwogICAgIHBsLT5wID0gcDsKLSAgICBk dW1teW5vID0gZmlsZW5vKGR1bW15KTsKLSAgICBhcF9wdXRfb3NfZmlsZSgmcGwtPndyaXRl X2YsICZkdW1teW5vLCBwKTsKKyAgICBwbC0+d3JpdGVfZiA9IGR1bW15OwogCiAgICAgcmV0 dXJuIHBsOwogfQpJbmRleDogc3JjL29zL2Jlb3Mvb3MtaW5saW5lLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL2FwYWNoZS0yLjAvc3JjL29zL2Jlb3Mvb3MtaW5saW5l LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC11IC1yMS4xIG9zLWlubGluZS5j Ci0tLSBvcy1pbmxpbmUuYwkxOTk5LzA3LzEyIDIyOjUxOjE0CTEuMQorKysgb3MtaW5saW5l LmMJMTk5OS8xMC8wOSAxNjo0NzoxMQpAQCAtMzAsMjAgKzMwLDMgQEAKIHsKICAgcmV0dXJu IGZpbGVbMF0gPT0gJy8nOwogfQotCi1JTkxJTkUgaW50IGFwX3NwYXdudnAoY29uc3QgY2hh ciAqZmlsZSwgY2hhciAqY29uc3QgYXJndltdKQotewotICAgIGludCBwaWQ7Ci0KLSAgICBp ZiAoKHBpZCA9IGZvcmsoKSkgPT0gLTEpIHsKLSAgICAgICAgcmV0dXJuIHBpZDsKLSAgICB9 IGVsc2UgaWYgKHBpZCA9PSAwKSB7Ci0gICAgICAgIGlmIChleGVjdnAoZmlsZSwgYXJndikg PT0gLTEpCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg ICAgIHJldHVybiAtMTsgIC8qIElmIHdlIGdldCwgd2UgaGF2ZSBhIHJlYWwgZXJyb3IsIGJ1 dCB0aGlzIGtlZXBzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1cyBmcm9tIGdldHRp bmcgYSB3YXJuaW5nIGR1cmluZyBjb21waWxlIHRpbWUuICovCi0gICAgfSBlbHNlIAotICAg ICAgICByZXR1cm4gcGlkOwotfQotICAgIApJbmRleDogc3JjL29zL2Jlb3Mvb3MuYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9jdnMvYXBhY2hlLTIuMC9zcmMvb3MvYmVvcy9v cy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMKZGlmZiAtdSAtcjEuMyBvcy5jCi0tLSBv cy5jCTE5OTkvMDgvMzEgMTI6MzM6MDQJMS4zCisrKyBvcy5jCTE5OTkvMTAvMDkgMTY6NDc6 MTIKQEAgLTExLDIyICsxMSw2IEBACiAgIHJldHVybiBmaWxlWzBdID09ICcvJzsKIH0KIAot aW50IGFwX3NwYXdudnAoY29uc3QgY2hhciAqZmlsZSwgY2hhciAqY29uc3QgYXJndltdKQot ewotICAgIGludCBwaWQ7Ci0KLSAgICBpZiAoKHBpZCA9IGZvcmsoKSkgPT0gLTEpIHsKLSAg ICAgICAgcmV0dXJuIHBpZDsKLSAgICB9IGVsc2UgaWYgKHBpZCA9PSAwKSB7Ci0gICAgICAg IGlmIChleGVjdnAoZmlsZSwgYXJndikgPT0gLTEpCi0gICAgICAgICAgICByZXR1cm4gLTE7 Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiAtMTsgIC8qIElmIHdlIGdldCwg d2UgaGF2ZSBhIHJlYWwgZXJyb3IsIGJ1dCB0aGlzIGtlZXBzCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICB1cyBmcm9tIGdldHRpbmcgYSB3YXJuaW5nIGR1cmluZyBjb21waWxlIHRp bWUuICovCi0gICAgfSBlbHNlIAotICAgICAgICByZXR1cm4gcGlkOwotfQotCiAKIC8qIHNv bWUgbGlua2VycyBjb21wbGFpbiB1bmxlc3MgdGhlcmUncyBhdCBsZWFzdCBvbmUgZnVuY3Rp b24gaW4gZWFjaAogICogLm8gZmlsZS4uLiBhbmQgZXh0cmEgcHJvdG90eXBlIGlzIGZvciBn Y2MgLVdtaXNzaW5nLXByb3RvdHlwZXMKSW5kZXg6IHNyYy9vcy91bml4L29zLWlubGluZS5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2N2cy9hcGFjaGUtMi4wL3NyYy9vcy91 bml4L29zLWlubGluZS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIKZGlmZiAtdSAtcjEu MiBvcy1pbmxpbmUuYwotLS0gb3MtaW5saW5lLmMJMTk5OS8wOC8yNiAxODowNjoxMgkxLjIK KysrIG9zLWlubGluZS5jCTE5OTkvMTAvMDkgMTY6NDc6MTIKQEAgLTMwLDIwICszMCwzIEBA CiB7CiAgIHJldHVybiBmaWxlWzBdID09ICcvJzsKIH0KLQotSU5MSU5FIGludCBhcF9zcGF3 bnZwKGNvbnN0IGNoYXIgKmZpbGUsIGNoYXIgKmNvbnN0IGFyZ3ZbXSkKLXsKLSAgICBpbnQg cGlkOwotCi0gICAgaWYgKChwaWQgPSBmb3JrKCkpID09IC0xKSB7Ci0gICAgICAgIHJldHVy biBwaWQ7Ci0gICAgfSBlbHNlIGlmIChwaWQgPT0gMCkgewotICAgICAgICBpZiAoZXhlY3Zw KGZpbGUsIGFyZ3YpID09IC0xKQotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBl bHNlCi0gICAgICAgICAgICByZXR1cm4gLTE7ICAvKiBJZiB3ZSBnZXQsIHdlIGhhdmUgYSBy ZWFsIGVycm9yLCBidXQgdGhpcyBrZWVwcwotICAgICAgICAgICAgICAgICAgICAgICAgICAg dXMgZnJvbSBnZXR0aW5nIGEgd2FybmluZyBkdXJpbmcgY29tcGlsZSB0aW1lLiAqLwotICAg IH0gZWxzZSAKLSAgICAgICAgcmV0dXJuIHBpZDsKLX0KLSAgICAKSW5kZXg6IHNyYy9vcy93 aW4zMi91dGlsX3dpbjMyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL2Fw YWNoZS0yLjAvc3JjL29zL3dpbjMyL3V0aWxfd2luMzIuYyx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS4yCmRpZmYgLXUgLXIxLjIgdXRpbF93aW4zMi5jCi0tLSB1dGlsX3dpbjMyLmMJMTk5 OS8wOC8zMSAwNTozNToxMwkxLjIKKysrIHV0aWxfd2luMzIuYwkxOTk5LzEwLzA5IDE2OjQ3 OjE1CkBAIC0zMzIsMTQ2ICszMzIsNiBAQAogICAgIHJldHVybiBzdGF0KHN6UGF0aCwgcFN0 YXQpOwogfQogCi0vKiBGaXggdHdvIHJlYWxseSBjcmFwIHByb2JsZW1zIHdpdGggV2luMzIg c3Bhd25bbHZdZSo6Ci0gKgotICogIDEuIFdpbjMyIGRvZXNuJ3QgZGVhbCB3aXRoIHNwYWNl cyBpbiBhcmd2LgotICogIDIuIFdpbjk1IGRvZXNuJ3QgbGlrZSAvIGluIGNtZG5hbWUuCi0g Ki8KLQotI3VuZGVmIF9zcGF3bnYKLUFQSV9FWFBPUlQoaW50KSBvc19zcGF3bnYoaW50IG1v ZGUsIGNvbnN0IGNoYXIgKmNtZG5hbWUsCi0JCQkgIGNvbnN0IGNoYXIgKmNvbnN0ICphcmd2 KQotewotICAgIGludCBuOwotICAgIGNoYXIgKiphc3pBcmdzOwotICAgIGNvbnN0IGNoYXIg KnN6QXJnOwotICAgIGNoYXIgKnN6Q21kOwotICAgIGNoYXIgKnM7Ci0gICAgCi0gICAgc3pD bWQgPSBfYWxsb2NhKHN0cmxlbihjbWRuYW1lKSsxKTsKLSAgICBzdHJjcHkoc3pDbWQsIGNt ZG5hbWUpOwotICAgIGZvciAocyA9IHN6Q21kOyAqczsgKytzKSB7Ci0gICAgICAgIGlmICgq cyA9PSAnLycpIHsKLSAgICAgICAgICAgICpzID0gJ1xcJzsKLQl9Ci0gICAgfQotCi0gICAg Zm9yIChuID0gMDsgYXJndltuXTsgKytuKQotICAgICAgICA7Ci0KLSAgICBhc3pBcmdzID0g X2FsbG9jYSgobiArIDEpICogc2l6ZW9mKGNvbnN0IGNoYXIgKikpOwotCi0gICAgZm9yIChu ID0gMDsgc3pBcmcgPSBhcmd2W25dOyArK24pIHsKLSAgICAgICAgaWYgKHN0cmNocihzekFy ZywgJyAnKSkgewotICAgICAgICAgICAgaW50IGwgPSBzdHJsZW4oc3pBcmcpOwotCi0gICAg ICAgICAgICBhc3pBcmdzW25dID0gX2FsbG9jYShsICsgMiArIDEpOwotICAgICAgICAgICAg YXN6QXJnc1tuXVswXSA9ICciJzsKLSAgICAgICAgICAgIHN0cmNweSgmYXN6QXJnc1tuXVsx XSwgc3pBcmcpOwotICAgICAgICAgICAgYXN6QXJnc1tuXVtsICsgMV0gPSAnIic7Ci0gICAg ICAgICAgICBhc3pBcmdzW25dW2wgKyAyXSA9ICdcMCc7Ci0gICAgICAgIH0KLSAgICAgICAg ZWxzZSB7Ci0gICAgICAgICAgICBhc3pBcmdzW25dID0gKGNoYXIgKilzekFyZzsKLSAgICAg ICAgfQotICAgIH0KLQotICAgIGFzekFyZ3Nbbl0gPSBOVUxMOwotCi0gICAgcmV0dXJuIF9z cGF3bnYobW9kZSwgc3pDbWQsIGFzekFyZ3MpOwotfQotCi0jdW5kZWYgX3NwYXdudmUKLUFQ SV9FWFBPUlQoaW50KSBvc19zcGF3bnZlKGludCBtb2RlLCBjb25zdCBjaGFyICpjbWRuYW1l LAotCQkJICAgY29uc3QgY2hhciAqY29uc3QgKmFyZ3YsIGNvbnN0IGNoYXIgKmNvbnN0ICpl bnZwKQotewotICAgIGludCBuOwotICAgIGNoYXIgKiphc3pBcmdzOwotICAgIGNvbnN0IGNo YXIgKnN6QXJnOwotICAgIGNoYXIgKnN6Q21kOwotICAgIGNoYXIgKnM7Ci0gICAgCi0gICAg c3pDbWQgPSBfYWxsb2NhKHN0cmxlbihjbWRuYW1lKSsxKTsKLSAgICBzdHJjcHkoc3pDbWQs IGNtZG5hbWUpOwotICAgIGZvciAocyA9IHN6Q21kOyAqczsgKytzKSB7Ci0gICAgICAgIGlm ICgqcyA9PSAnLycpIHsKLSAgICAgICAgICAgICpzID0gJ1xcJzsKLQl9Ci0gICAgfQotICAg IAotICAgIGZvciAobiA9IDA7IGFyZ3Zbbl07ICsrbikKLSAgICAgICAgOwotCi0gICAgYXN6 QXJncyA9IF9hbGxvY2EoKG4gKyAxKSpzaXplb2YoY29uc3QgY2hhciAqKSk7Ci0KLSAgICBm b3IgKG4gPSAwOyBzekFyZyA9IGFyZ3Zbbl07ICsrbil7Ci0gICAgICAgIGlmIChzdHJjaHIo c3pBcmcsICcgJykpIHsKLSAgICAgICAgICAgIGludCBsID0gc3RybGVuKHN6QXJnKTsKLQot ICAgICAgICAgICAgYXN6QXJnc1tuXSA9IF9hbGxvY2EobCArIDIgKyAxKTsKLSAgICAgICAg ICAgIGFzekFyZ3Nbbl1bMF0gPSAnIic7Ci0gICAgICAgICAgICBzdHJjcHkoJmFzekFyZ3Nb bl1bMV0sIHN6QXJnKTsKLSAgICAgICAgICAgIGFzekFyZ3Nbbl1bbCArIDFdID0gJyInOwot ICAgICAgICAgICAgYXN6QXJnc1tuXVtsICsgMl0gPSAnXDAnOwotICAgICAgICB9Ci0gICAg ICAgIGVsc2UgewotICAgICAgICAgICAgYXN6QXJnc1tuXSA9IChjaGFyICopc3pBcmc7Ci0g ICAgICAgIH0KLSAgICB9Ci0KLSAgICBhc3pBcmdzW25dID0gTlVMTDsKLQotICAgIHJldHVy biBfc3Bhd252ZShtb2RlLCBzekNtZCwgYXN6QXJncywgZW52cCk7Ci19Ci0KLUFQSV9FWFBP UlQoaW50KSBvc19zcGF3bmxlKGludCBtb2RlLCBjb25zdCBjaGFyICpjbWRuYW1lLCAuLi4p Ci17Ci0gICAgaW50IG47Ci0gICAgdmFfbGlzdCB2bGlzdDsKLSAgICBjaGFyICoqYXN6QXJn czsKLSAgICBjb25zdCBjaGFyICpzekFyZzsKLSAgICBjb25zdCBjaGFyICpjb25zdCAqYXN6 RW52OwotICAgIGNoYXIgKnN6Q21kOwotICAgIGNoYXIgKnM7Ci0gICAgCi0gICAgc3pDbWQg PSBfYWxsb2NhKHN0cmxlbihjbWRuYW1lKSsxKTsKLSAgICBzdHJjcHkoc3pDbWQsIGNtZG5h bWUpOwotICAgIGZvciAocyA9IHN6Q21kOyAqczsgKytzKSB7Ci0gICAgICAgIGlmICgqcyA9 PSAnLycpIHsKLSAgICAgICAgICAgICpzID0gJ1xcJzsKLQl9Ci0gICAgfQotCi0gICAgdmFf c3RhcnQodmxpc3QsIGNtZG5hbWUpOwotICAgIGZvciAobiA9IDA7IHZhX2FyZyh2bGlzdCwg Y29uc3QgY2hhciAqKTsgKytuKQotICAgICAgICA7Ci0gICAgdmFfZW5kKHZsaXN0KTsKLQot ICAgIGFzekFyZ3MgPSBfYWxsb2NhKChuICsgMSkgKiBzaXplb2YoY29uc3QgY2hhciAqKSk7 Ci0KLSAgICB2YV9zdGFydCh2bGlzdCwgY21kbmFtZSk7Ci0gICAgZm9yIChuID0gMDsgc3pB cmcgPSB2YV9hcmcodmxpc3QsIGNvbnN0IGNoYXIgKik7ICsrbikgewotICAgICAgICBpZiAo c3RyY2hyKHN6QXJnLCAnICcpKSB7Ci0gICAgICAgICAgICBpbnQgbCA9IHN0cmxlbihzekFy Zyk7Ci0KLSAgICAgICAgICAgIGFzekFyZ3Nbbl0gPSBfYWxsb2NhKGwgKyAyICsgMSk7Ci0g ICAgICAgICAgICBhc3pBcmdzW25dWzBdID0gJyInOwotICAgICAgICAgICAgc3RyY3B5KCZh c3pBcmdzW25dWzFdLCBzekFyZyk7Ci0gICAgICAgICAgICBhc3pBcmdzW25dW2wgKyAxXSA9 ICciJzsKLSAgICAgICAgICAgIGFzekFyZ3Nbbl1bbCArIDJdID0gJ1wwJzsKLSAgICAgICAg fQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGFzekFyZ3Nbbl0gPSAoY2hhciAqKXN6 QXJnOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgYXN6QXJnc1tuXSA9IE5VTEw7Ci0KLSAg ICBhc3pFbnYgPSB2YV9hcmcodmxpc3QsIGNvbnN0IGNoYXIgKmNvbnN0ICopOwotICAgIHZh X2VuZCh2bGlzdCk7Ci0gICAgCi0gICAgcmV0dXJuIF9zcGF3bnZlKG1vZGUsIHN6Q21kLCBh c3pBcmdzLCBhc3pFbnYpOwotfQogCiAjdW5kZWYgc3RyZnRpbWUKIAo= --------------5C672072D1D7B128DBA9F4CD--