Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from ) id 1jG08z-0003Gr-Ad for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Mar 2020 12:55:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1jG08v-0003qQ-Ou for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Mar 2020 12:55:53 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1jG08u-0003js-Hc for pgsql-hackers@lists.postgresql.org; Sun, 22 Mar 2020 12:55:53 +0000 Received: from smtp03.optiver.com ([195.246.114.70]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jG08p-0006db-V0 for pgsql-hackers@postgresql.org; Sun, 22 Mar 2020 12:55:51 +0000 Received: from pps.filterd (smtp03.optiver.com [127.0.0.1]) by smtp03.optiver.com (8.16.0.27/8.16.0.27) with SMTP id 02MCsePJ016453; Sun, 22 Mar 2020 13:55:30 +0100 Received: from opammb0562.comp.optiver.com (opammb0562.comp.optiver.com [10.131.160.2]) by smtp03.optiver.com with ESMTP id 2yw9da8du5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 22 Mar 2020 13:55:30 +0100 Received: from opammb0561.comp.optiver.com (10.131.160.1) by opammb0562.comp.optiver.com (10.131.160.2) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 22 Mar 2020 13:55:29 +0100 Received: from opammb0561.comp.optiver.com ([fe80::1112:69b:df12:3993]) by opammb0561.comp.optiver.com ([fe80::1112:69b:df12:3993%17]) with mapi id 15.00.1497.006; Sun, 22 Mar 2020 13:55:29 +0100 From: Floris Van Nee To: David Rowley , Andy Fan CC: Dmitry Dolgov <9erthalion6@gmail.com>, Kyotaro Horiguchi , Tomas Vondra , "pg@bowt.ie" , "jesper.pedersen@redhat.com" , Alvaro Herrera , Thomas Munro , "jtc331@gmail.com" , "rafia.pghackers@gmail.com" , Jeff Janes , "bhushan.uparkar@gmail.com" , PostgreSQL-development , Alexander Korotkov , Floris van Nee Thread-Topic: Index Skip Scan [External] Thread-Index: AQHV0WvkZ26+d70o+UG0IzFaaYH0Qaf+RewAgABIWbCADOoRgIAAGMjmgAFAZACAAJNWAIAAn+WAgAAXzwCAAdZVgIABXDSAgAkdToCAAEGxAIAE+9+AgBf5jQCAB1LiAIAAdrwAgAON+4CAAXd9AIAPebMwgAD2IYA= Date: Sun, 22 Mar 2020 12:55:29 +0000 Message-ID: <2f8f1466f7cf416cb89f40ffcc26d289@opammb0561.comp.optiver.com> References: <20200206.212220.642002310227620136.horikyota.ntt@gmail.com> <20200207162543.zlj2tvcwy7jku6vu@localhost> <20200208131159.5sjcbcjnwdj4q7fa@development> <20200214.172313.259958375378013155.horikyota.ntt@gmail.com> <20200214121820.xvvrkdbykkygfs65@localhost> <20200217162451.nrpy5k63f5y2mwm6@localhost> <20200308142228.3zb237cd3oedspl2@localhost> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.131.160.182] x-tm-as-product-ver: SMEX-14.0.0.1158-8.5.1020-25306.007 x-tm-as-result: No-10--5.265300-8.000000 x-tmase-matchedrid: nVQUmLJJeybuo96mfIBuopzEHTUOuMX33dCmvEa6IiGoLZarzrrPmXvi bgiOTC8x4J/iqjeWCcXSey6M+8j1yrI9IhPaTqbkolVO7uyOCDWpXdWa4gU0S/Alhlr8vzcdAYu f5WdNtJVD6oV9KcGGu44Um5R2gUkgsK4O5i/VzFoVwr9AY0ZEvWJPx4IMZ2UjZGKcHUyeN30ir3 kOMJmHTBQabjOuIvShIAcCikR3vq8clY+c4gHNtDs3AIMggOVvfnwtbzgHpKWeDkt1errdfELfL 8tJ69F+ x-tm-as-user-approved-sender: Yes x-tm-as-user-blocked-sender: No x-tmase-result: 10--5.265300-8.000000 x-tmase-version: SMEX-14.0.0.1158-8.5.1020-25306.007 x-tm-snts-smtp: 4D9C370F8C0A9EBC7EB9FF10D0F132A5EC0F6844E96E415FF2F7653A12ACD6FD2000:8 Content-Type: multipart/mixed; boundary="_004_2f8f1466f7cf416cb89f40ffcc26d289opammb0561compoptiverco_" MIME-Version: 1.0 Subject: RE: Index Skip Scan X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.645 definitions=2020-03-22_03:2020-03-21,2020-03-22 signatures=0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --_004_2f8f1466f7cf416cb89f40ffcc26d289opammb0561compoptiverco_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SXQgc2VlbXMgdGhhdCB0aGUgZG9jdW1lbnRhdGlvbiBidWlsZCB3YXMgYnJva2VuLiBJJ3ZlIGZp eGVkIGl0IGluIGF0dGFjaGVkIHBhdGNoLg0KDQpJJ20gdW5zdXJlIHdoaWNoIHZlcnNpb24gbnVt YmVyIHRvIGdpdmUgdGhpcyBwYXRjaCAodG8gY29udGludWUgd2l0aCBudW1iZXJzIGZyb20gcHJl dmlvdXMgc2tpcCBzY2FuIHBhdGNoZXMsIG9yIHRvIHN0YXJ0IG51bWJlcmluZyBmcm9tIHNjcmF0 Y2ggYWdhaW4pLiBJdCdzIGEgcmF0aGVyIGJpZyBjaGFuZ2UsIHNvIG9uZSBjb3VsZCBhcmd1ZSBp dCdzIG1vc3RseSBhIHNlcGFyYXRlIHBhdGNoLiBJIGd1ZXNzIGl0IG1vc3RseSBkZXBlbmRzIG9u IGhvdyBjbG9zZSB0aGUgb3JpZ2luYWwgdmVyc2lvbnMgd2VyZSB0byBiZSBjb21taXR0YWJsZS4g VGhvdWdodHM/DQoNCi1GbG9yaXMNCg0K --_004_2f8f1466f7cf416cb89f40ffcc26d289opammb0561compoptiverco_ Content-Type: application/octet-stream; name="v33-0001-Unique-key.patch" Content-Description: v33-0001-Unique-key.patch Content-Disposition: attachment; filename="v33-0001-Unique-key.patch"; size=25863; creation-date="Sun, 22 Mar 2020 12:49:36 GMT"; modification-date="Sun, 22 Mar 2020 12:49:36 GMT" Content-Transfer-Encoding: base64 RnJvbSBmZDQ4YzRhMDA2N2MxYzk2YTJiNTNmZDE2MmJiZTk0NTZhOTYwOGRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqZXNwZXJwZWRlcnNlbiA8amVzcGVyLnBlZGVyc2VuQHJlZGhh dC5jb20+CkRhdGU6IFR1ZSwgOSBKdWwgMjAxOSAwNjo0NDo1NyAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBVbmlxdWUga2V5CgpEZXNpZ24gYnkgRGF2aWQgUm93bGV5LgoKQXV0aG9yOiBKZXNw ZXIgUGVkZXJzZW4KLS0tCiBzcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jICAgICAgICAgICB8 ICAxNCArKysKIHNyYy9iYWNrZW5kL25vZGVzL3ByaW50LmMgICAgICAgICAgICAgIHwgIDM5ICsr KysrKysKIHNyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL01ha2VmaWxlICAgIHwgICAzICstCiBz cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jICB8ICAgOCArKwogc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BhdGgvaW5keHBhdGguYyAgfCAgNDEgKysrKysrKwogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BhdGgvcGF0aGtleXMuYyAgfCAgNzEgKysrKysrKysrKy0tCiBzcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGF0aC91bmlxdWVrZXkuYyB8IDE0NyArKysrKysrKysrKysrKysrKysrKysr KysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFuYWdnLmMgICB8ICAgMSArCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubWFpbi5jICB8ICAgMSArCiBzcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICB8ICAxNyArKy0KIHNyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL3BhdGhub2RlLmMgIHwgIDEyICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAg ICB8ICAxOCArKysKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW50LmggICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oICAgICAgIHwgICAxICsKIHNyYy9p bmNsdWRlL29wdGltaXplci9wYXRocy5oICAgICAgICAgIHwgIDExICsrCiAxNiBmaWxlcyBjaGFu Z2VkLCAzNzMgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvdW5pcXVla2V5LmMKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3Mu YwppbmRleCA4OWQwMDQ0NGVkLi44MmZjYWJkOWVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9u b2Rlcy9vdXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKQEAgLTE3 MjQsNiArMTcyNCw3IEBAIF9vdXRQYXRoSW5mbyhTdHJpbmdJbmZvIHN0ciwgY29uc3QgUGF0aCAq bm9kZSkKIAlXUklURV9GTE9BVF9GSUVMRChzdGFydHVwX2Nvc3QsICIlLjJmIik7CiAJV1JJVEVf RkxPQVRfRklFTEQodG90YWxfY29zdCwgIiUuMmYiKTsKIAlXUklURV9OT0RFX0ZJRUxEKHBhdGhr ZXlzKTsKKwlXUklURV9OT0RFX0ZJRUxEKHVuaXF1ZWtleXMpOwogfQogCiAvKgpAQCAtMjIwOCw2 ICsyMjA5LDcgQEAgX291dFBsYW5uZXJJbmZvKFN0cmluZ0luZm8gc3RyLCBjb25zdCBQbGFubmVy SW5mbyAqbm9kZSkKIAlXUklURV9OT0RFX0ZJRUxEKGVxX2NsYXNzZXMpOwogCVdSSVRFX0JPT0xf RklFTEQoZWNfbWVyZ2luZ19kb25lKTsKIAlXUklURV9OT0RFX0ZJRUxEKGNhbm9uX3BhdGhrZXlz KTsKKwlXUklURV9OT0RFX0ZJRUxEKGNhbm9uX3VuaXF1ZWtleXMpOwogCVdSSVRFX05PREVfRklF TEQobGVmdF9qb2luX2NsYXVzZXMpOwogCVdSSVRFX05PREVfRklFTEQocmlnaHRfam9pbl9jbGF1 c2VzKTsKIAlXUklURV9OT0RFX0ZJRUxEKGZ1bGxfam9pbl9jbGF1c2VzKTsKQEAgLTIyMTcsNiAr MjIxOSw3IEBAIF9vdXRQbGFubmVySW5mbyhTdHJpbmdJbmZvIHN0ciwgY29uc3QgUGxhbm5lcklu Zm8gKm5vZGUpCiAJV1JJVEVfTk9ERV9GSUVMRChwbGFjZWhvbGRlcl9saXN0KTsKIAlXUklURV9O T0RFX0ZJRUxEKGZrZXlfbGlzdCk7CiAJV1JJVEVfTk9ERV9GSUVMRChxdWVyeV9wYXRoa2V5cyk7 CisJV1JJVEVfTk9ERV9GSUVMRChxdWVyeV91bmlxdWVrZXlzKTsKIAlXUklURV9OT0RFX0ZJRUxE KGdyb3VwX3BhdGhrZXlzKTsKIAlXUklURV9OT0RFX0ZJRUxEKHdpbmRvd19wYXRoa2V5cyk7CiAJ V1JJVEVfTk9ERV9GSUVMRChkaXN0aW5jdF9wYXRoa2V5cyk7CkBAIC0yNDA0LDYgKzI0MDcsMTQg QEAgX291dFBhdGhLZXkoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IFBhdGhLZXkgKm5vZGUpCiAJV1JJ VEVfQk9PTF9GSUVMRChwa19udWxsc19maXJzdCk7CiB9CiAKK3N0YXRpYyB2b2lkCitfb3V0VW5p cXVlS2V5KFN0cmluZ0luZm8gc3RyLCBjb25zdCBVbmlxdWVLZXkgKm5vZGUpCit7CisJV1JJVEVf Tk9ERV9UWVBFKCJVTklRVUVLRVkiKTsKKworCVdSSVRFX05PREVfRklFTEQoZXFfY2xhdXNlKTsK K30KKwogc3RhdGljIHZvaWQKIF9vdXRQYXRoVGFyZ2V0KFN0cmluZ0luZm8gc3RyLCBjb25zdCBQ YXRoVGFyZ2V0ICpub2RlKQogewpAQCAtNDA5Nyw2ICs0MTA4LDkgQEAgb3V0Tm9kZShTdHJpbmdJ bmZvIHN0ciwgY29uc3Qgdm9pZCAqb2JqKQogCQkJY2FzZSBUX1BhdGhLZXk6CiAJCQkJX291dFBh dGhLZXkoc3RyLCBvYmopOwogCQkJCWJyZWFrOworCQkJY2FzZSBUX1VuaXF1ZUtleToKKwkJCQlf b3V0VW5pcXVlS2V5KHN0ciwgb2JqKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgVF9QYXRoVGFyZ2V0 OgogCQkJCV9vdXRQYXRoVGFyZ2V0KHN0ciwgb2JqKTsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL25vZGVzL3ByaW50LmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9wcmludC5jCmlu ZGV4IDQyNDc2NzI0ZDguLmQyODZiMzQ1NDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L3ByaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvcHJpbnQuYwpAQCAtNDU5LDYgKzQ1OSw0 NSBAQCBwcmludF9wYXRoa2V5cyhjb25zdCBMaXN0ICpwYXRoa2V5cywgY29uc3QgTGlzdCAqcnRh YmxlKQogCXByaW50ZigiKVxuIik7CiB9CiAKKy8qCisgKiBwcmludF91bmlxdWVrZXlzIC0KKyAq CSAgdW5pcXVla2V5cyBsaXN0IG9mIFVuaXF1ZUtleXMKKyAqLwordm9pZAorcHJpbnRfdW5pcXVl a2V5cyhjb25zdCBMaXN0ICp1bmlxdWVrZXlzLCBjb25zdCBMaXN0ICpydGFibGUpCit7CisJTGlz dENlbGwgICAqbDsKKworCXByaW50ZigiKCIpOworCWZvcmVhY2gobCwgdW5pcXVla2V5cykKKwl7 CisJCVVuaXF1ZUtleSAqdW5pcXVlX2tleSA9IChVbmlxdWVLZXkgKikgbGZpcnN0KGwpOworCQlF cXVpdmFsZW5jZUNsYXNzICplY2xhc3MgPSAoRXF1aXZhbGVuY2VDbGFzcyAqKSB1bmlxdWVfa2V5 LT5lcV9jbGF1c2U7CisJCUxpc3RDZWxsICAgKms7CisJCWJvb2wJCWZpcnN0ID0gdHJ1ZTsKKwor CQkvKiBjaGFzZSB1cCAqLworCQl3aGlsZSAoZWNsYXNzLT5lY19tZXJnZWQpCisJCQllY2xhc3Mg PSBlY2xhc3MtPmVjX21lcmdlZDsKKworCQlwcmludGYoIigiKTsKKwkJZm9yZWFjaChrLCBlY2xh c3MtPmVjX21lbWJlcnMpCisJCXsKKwkJCUVxdWl2YWxlbmNlTWVtYmVyICptZW0gPSAoRXF1aXZh bGVuY2VNZW1iZXIgKikgbGZpcnN0KGspOworCisJCQlpZiAoZmlyc3QpCisJCQkJZmlyc3QgPSBm YWxzZTsKKwkJCWVsc2UKKwkJCQlwcmludGYoIiwgIik7CisJCQlwcmludF9leHByKChOb2RlICop IG1lbS0+ZW1fZXhwciwgcnRhYmxlKTsKKwkJfQorCQlwcmludGYoIikiKTsKKwkJaWYgKGxuZXh0 KHVuaXF1ZWtleXMsIGwpKQorCQkJcHJpbnRmKCIsICIpOworCX0KKwlwcmludGYoIilcbiIpOwor fQorCiAvKgogICogcHJpbnRfdGwKICAqCSAgcHJpbnQgdGFyZ2V0bGlzdCBpbiBhIG1vcmUgbGVn aWJsZSB3YXkuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9NYWtlZmls ZSBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL01ha2VmaWxlCmluZGV4IDFlMTk5ZmY2NmYu LjYzY2MxNTA1ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL01ha2Vm aWxlCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL01ha2VmaWxlCkBAIC0yMSw2ICsy MSw3IEBAIE9CSlMgPSBcCiAJam9pbnBhdGgubyBcCiAJam9pbnJlbHMubyBcCiAJcGF0aGtleXMu byBcCi0JdGlkcGF0aC5vCisJdGlkcGF0aC5vIFwKKwl1bmlxdWVrZXkubwogCiBpbmNsdWRlICQo dG9wX3NyY2Rpcikvc3JjL2JhY2tlbmQvY29tbW9uLm1rCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgv YWxscGF0aHMuYwppbmRleCA5MDViYmU3N2Q4Li5lOThhYjRlYWRhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wYXRoL2FsbHBhdGhzLmMKQEAgLTM5NTQsNiArMzk1NCwxNCBAQCBwcmludF9wYXRoKFBs YW5uZXJJbmZvICpyb290LCBQYXRoICpwYXRoLCBpbnQgaW5kZW50KQogCQlwcmludF9wYXRoa2V5 cyhwYXRoLT5wYXRoa2V5cywgcm9vdC0+cGFyc2UtPnJ0YWJsZSk7CiAJfQogCisJaWYgKHBhdGgt PnVuaXF1ZWtleXMpCisJeworCQlmb3IgKGkgPSAwOyBpIDwgaW5kZW50OyBpKyspCisJCQlwcmlu dGYoIlx0Iik7CisJCXByaW50ZigiICB1bmlxdWVrZXlzOiAiKTsKKwkJcHJpbnRfdW5pcXVla2V5 cyhwYXRoLT51bmlxdWVrZXlzLCByb290LT5wYXJzZS0+cnRhYmxlKTsKKwl9CisKIAlpZiAoam9p bikKIAl7CiAJCUpvaW5QYXRoICAgKmpwID0gKEpvaW5QYXRoICopIHBhdGg7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9pbmR4cGF0aC5jIGIvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BhdGgvaW5keHBhdGguYwppbmRleCAyYTUwMjcyZGE2Li5iZDFlYTUzZTVjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9pbmR4cGF0aC5jCisrKyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wYXRoL2luZHhwYXRoLmMKQEAgLTE4OSw2ICsxODksNyBAQCBzdGF0 aWMgRXhwciAqbWF0Y2hfY2xhdXNlX3RvX29yZGVyaW5nX29wKEluZGV4T3B0SW5mbyAqaW5kZXgs CiBzdGF0aWMgYm9vbCBlY19tZW1iZXJfbWF0Y2hlc19pbmRleGNvbChQbGFubmVySW5mbyAqcm9v dCwgUmVsT3B0SW5mbyAqcmVsLAogCQkJCQkJCQkJICAgRXF1aXZhbGVuY2VDbGFzcyAqZWMsIEVx dWl2YWxlbmNlTWVtYmVyICplbSwKIAkJCQkJCQkJCSAgIHZvaWQgKmFyZyk7CitzdGF0aWMgTGlz dCAqZ2V0X3VuaXF1ZWtleXNfZm9yX2luZGV4KFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICpwYXRo a2V5cyk7CiAKIAogLyoKQEAgLTg3NCw2ICs4NzUsNyBAQCBidWlsZF9pbmRleF9wYXRocyhQbGFu bmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCUxpc3QJICAgKm9yZGVyYnljbGF1c2Vj b2xzOwogCUxpc3QJICAgKmluZGV4X3BhdGhrZXlzOwogCUxpc3QJICAgKnVzZWZ1bF9wYXRoa2V5 czsKKwlMaXN0CSAgICp1c2VmdWxfdW5pcXVla2V5cyA9IE5JTDsKIAlib29sCQlmb3VuZF9sb3dl cl9zYW9wX2NsYXVzZTsKIAlib29sCQlwYXRoa2V5c19wb3NzaWJseV91c2VmdWw7CiAJYm9vbAkJ aW5kZXhfaXNfb3JkZXJlZDsKQEAgLTEwMzYsMTEgKzEwMzgsMTUgQEAgYnVpbGRfaW5kZXhfcGF0 aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAlpZiAoaW5kZXhfY2xhdXNl cyAhPSBOSUwgfHwgdXNlZnVsX3BhdGhrZXlzICE9IE5JTCB8fCB1c2VmdWxfcHJlZGljYXRlIHx8 CiAJCWluZGV4X29ubHlfc2NhbikKIAl7CisJCWlmIChoYXNfdXNlZnVsX3VuaXF1ZWtleXMocm9v dCkpCisJCQl1c2VmdWxfdW5pcXVla2V5cyA9IGdldF91bmlxdWVrZXlzX2Zvcl9pbmRleChyb290 LCB1c2VmdWxfcGF0aGtleXMpOworCiAJCWlwYXRoID0gY3JlYXRlX2luZGV4X3BhdGgocm9vdCwg aW5kZXgsCiAJCQkJCQkJCSAgaW5kZXhfY2xhdXNlcywKIAkJCQkJCQkJICBvcmRlcmJ5Y2xhdXNl cywKIAkJCQkJCQkJICBvcmRlcmJ5Y2xhdXNlY29scywKIAkJCQkJCQkJICB1c2VmdWxfcGF0aGtl eXMsCisJCQkJCQkJCSAgdXNlZnVsX3VuaXF1ZWtleXMsCiAJCQkJCQkJCSAgaW5kZXhfaXNfb3Jk ZXJlZCA/CiAJCQkJCQkJCSAgRm9yd2FyZFNjYW5EaXJlY3Rpb24gOgogCQkJCQkJCQkgIE5vTW92 ZW1lbnRTY2FuRGlyZWN0aW9uLApAQCAtMTA2Myw2ICsxMDY5LDcgQEAgYnVpbGRfaW5kZXhfcGF0 aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAkJCQkJCQkJCSAgb3JkZXJi eWNsYXVzZXMsCiAJCQkJCQkJCQkgIG9yZGVyYnljbGF1c2Vjb2xzLAogCQkJCQkJCQkJICB1c2Vm dWxfcGF0aGtleXMsCisJCQkJCQkJCQkgIHVzZWZ1bF91bmlxdWVrZXlzLAogCQkJCQkJCQkJICBp bmRleF9pc19vcmRlcmVkID8KIAkJCQkJCQkJCSAgRm9yd2FyZFNjYW5EaXJlY3Rpb24gOgogCQkJ CQkJCQkJICBOb01vdmVtZW50U2NhbkRpcmVjdGlvbiwKQEAgLTEwOTMsMTEgKzExMDAsMTUgQEAg YnVpbGRfaW5kZXhfcGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAkJ CQkJCQkJCQkJCQlpbmRleF9wYXRoa2V5cyk7CiAJCWlmICh1c2VmdWxfcGF0aGtleXMgIT0gTklM KQogCQl7CisJCQlpZiAoaGFzX3VzZWZ1bF91bmlxdWVrZXlzKHJvb3QpKQorCQkJCXVzZWZ1bF91 bmlxdWVrZXlzID0gZ2V0X3VuaXF1ZWtleXNfZm9yX2luZGV4KHJvb3QsIHVzZWZ1bF9wYXRoa2V5 cyk7CisKIAkJCWlwYXRoID0gY3JlYXRlX2luZGV4X3BhdGgocm9vdCwgaW5kZXgsCiAJCQkJCQkJ CQkgIGluZGV4X2NsYXVzZXMsCiAJCQkJCQkJCQkgIE5JTCwKIAkJCQkJCQkJCSAgTklMLAogCQkJ CQkJCQkJICB1c2VmdWxfcGF0aGtleXMsCisJCQkJCQkJCQkgIHVzZWZ1bF91bmlxdWVrZXlzLAog CQkJCQkJCQkJICBCYWNrd2FyZFNjYW5EaXJlY3Rpb24sCiAJCQkJCQkJCQkgIGluZGV4X29ubHlf c2NhbiwKIAkJCQkJCQkJCSAgb3V0ZXJfcmVsaWRzLApAQCAtMTExNSw2ICsxMTI2LDcgQEAgYnVp bGRfaW5kZXhfcGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAkJCQkJ CQkJCQkgIE5JTCwKIAkJCQkJCQkJCQkgIE5JTCwKIAkJCQkJCQkJCQkgIHVzZWZ1bF9wYXRoa2V5 cywKKwkJCQkJCQkJCQkgIHVzZWZ1bF91bmlxdWVrZXlzLAogCQkJCQkJCQkJCSAgQmFja3dhcmRT Y2FuRGlyZWN0aW9uLAogCQkJCQkJCQkJCSAgaW5kZXhfb25seV9zY2FuLAogCQkJCQkJCQkJCSAg b3V0ZXJfcmVsaWRzLApAQCAtMzM2NSw2ICszMzc3LDM1IEBAIG1hdGNoX2NsYXVzZV90b19vcmRl cmluZ19vcChJbmRleE9wdEluZm8gKmluZGV4LAogCXJldHVybiBjbGF1c2U7CiB9CiAKKy8qCisg KiBnZXRfdW5pcXVla2V5c19mb3JfaW5kZXgKKyAqLworc3RhdGljIExpc3QgKgorZ2V0X3VuaXF1 ZWtleXNfZm9yX2luZGV4KFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICpwYXRoa2V5cykKK3sKKwlM aXN0Q2VsbCAqbGM7CisKKwlpZiAocGF0aGtleXMpCisJeworCQlMaXN0ICp1bmlxdWVrZXlzID0g TklMOworCQlmb3JlYWNoKGxjLCBwYXRoa2V5cykKKwkJeworCQkJVW5pcXVlS2V5ICp1bmlxdWVf a2V5OworCQkJUGF0aEtleSAqcGsgPSAoUGF0aEtleSAqKSBsZmlyc3QobGMpOworCQkJRXF1aXZh bGVuY2VDbGFzcyAqZWMgPSAoRXF1aXZhbGVuY2VDbGFzcyAqKSBway0+cGtfZWNsYXNzOworCisJ CQl1bmlxdWVfa2V5ID0gbWFrZU5vZGUoVW5pcXVlS2V5KTsKKwkJCXVuaXF1ZV9rZXktPmVxX2Ns YXVzZSA9IGVjOworCisJCQlsYXBwZW5kKHVuaXF1ZWtleXMsIHVuaXF1ZV9rZXkpOworCQl9CisK KwkJaWYgKHVuaXF1ZWtleXNfY29udGFpbmVkX2luKHJvb3QtPmNhbm9uX3VuaXF1ZWtleXMsIHVu aXF1ZWtleXMpKQorCQkJcmV0dXJuIHVuaXF1ZWtleXM7CisJfQorCisJcmV0dXJuIE5JTDsKK30K IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKICAqCQkJCS0tLS0gIFJPVVRJTkVTIFRPIERPIFBBUlRJ QUwgSU5ERVggUFJFRElDQVRFIFRFU1RTCS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wYXRoL3BhdGhrZXlzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9wYXRo a2V5cy5jCmluZGV4IDcxYjlkNDJjOTkuLjA1NGRmOWE2MTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wYXRoL3BhdGhrZXlzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BhdGgvcGF0aGtleXMuYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgInV0aWxzL2xzeXNj YWNoZS5oIgogCiAKK3N0YXRpYyBib29sIHBhdGhrZXlfaXNfdW5pcXVlKFBhdGhLZXkgKm5ld19w YXRoa2V5LCBMaXN0ICpwYXRoa2V5cyk7CiBzdGF0aWMgYm9vbCBwYXRoa2V5X2lzX3JlZHVuZGFu dChQYXRoS2V5ICpuZXdfcGF0aGtleSwgTGlzdCAqcGF0aGtleXMpOwogc3RhdGljIGJvb2wgbWF0 Y2hlc19ib29sZWFuX3BhcnRpdGlvbl9jbGF1c2UoUmVzdHJpY3RJbmZvICpyaW5mbywKIAkJCQkJ CQkJCQkJIFJlbE9wdEluZm8gKnBhcnRyZWwsCkBAIC05Niw2ICs5NywyOSBAQCBtYWtlX2Nhbm9u aWNhbF9wYXRoa2V5KFBsYW5uZXJJbmZvICpyb290LAogCXJldHVybiBwazsKIH0KIAorLyoKKyAq IHBhdGhrZXlfaXNfdW5pcXVlCisgKgkgICBDaGVja3MgaWYgdGhlIG5ldyBwYXRoa2V5J3MgZXF1 aXZhbGVuY2UgY2xhc3MgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZgorICogICAgIGFueSBleGlzdGlu ZyBtZW1iZXIgb2YgdGhlIHBhdGhrZXkgbGlzdC4KKyAqLworc3RhdGljIGJvb2wKK3BhdGhrZXlf aXNfdW5pcXVlKFBhdGhLZXkgKm5ld19wYXRoa2V5LCBMaXN0ICpwYXRoa2V5cykKK3sKKwlFcXVp dmFsZW5jZUNsYXNzICpuZXdfZWMgPSBuZXdfcGF0aGtleS0+cGtfZWNsYXNzOworCUxpc3RDZWxs ICAgKmxjOworCisJLyogSWYgc2FtZSBFQyBhbHJlYWR5IGlzIGFscmVhZHkgaW4gdGhlIGxpc3Qs IHRoZW4gbm90IHVuaXF1ZSAqLworCWZvcmVhY2gobGMsIHBhdGhrZXlzKQorCXsKKwkJUGF0aEtl eSAgICAqb2xkX3BhdGhrZXkgPSAoUGF0aEtleSAqKSBsZmlyc3QobGMpOworCisJCWlmIChuZXdf ZWMgPT0gb2xkX3BhdGhrZXktPnBrX2VjbGFzcykKKwkJCXJldHVybiBmYWxzZTsKKwl9CisKKwly ZXR1cm4gdHJ1ZTsKK30KKwogLyoKICAqIHBhdGhrZXlfaXNfcmVkdW5kYW50CiAgKgkgICBJcyBh IHBhdGhrZXkgcmVkdW5kYW50IHdpdGggb25lIGFscmVhZHkgaW4gdGhlIGdpdmVuIGxpc3Q/CkBA IC0xMzUsMjIgKzE1OSwxMiBAQCBzdGF0aWMgYm9vbAogcGF0aGtleV9pc19yZWR1bmRhbnQoUGF0 aEtleSAqbmV3X3BhdGhrZXksIExpc3QgKnBhdGhrZXlzKQogewogCUVxdWl2YWxlbmNlQ2xhc3Mg Km5ld19lYyA9IG5ld19wYXRoa2V5LT5wa19lY2xhc3M7Ci0JTGlzdENlbGwgICAqbGM7CiAKIAkv KiBDaGVjayBmb3IgRUMgY29udGFpbmluZyBhIGNvbnN0YW50IC0tLSB1bmNvbmRpdGlvbmFsbHkg cmVkdW5kYW50ICovCiAJaWYgKEVDX01VU1RfQkVfUkVEVU5EQU5UKG5ld19lYykpCiAJCXJldHVy biB0cnVlOwogCi0JLyogSWYgc2FtZSBFQyBhbHJlYWR5IHVzZWQgaW4gbGlzdCwgdGhlbiByZWR1 bmRhbnQgKi8KLQlmb3JlYWNoKGxjLCBwYXRoa2V5cykKLQl7Ci0JCVBhdGhLZXkgICAgKm9sZF9w YXRoa2V5ID0gKFBhdGhLZXkgKikgbGZpcnN0KGxjKTsKLQotCQlpZiAobmV3X2VjID09IG9sZF9w YXRoa2V5LT5wa19lY2xhc3MpCi0JCQlyZXR1cm4gdHJ1ZTsKLQl9Ci0KLQlyZXR1cm4gZmFsc2U7 CisJcmV0dXJuICFwYXRoa2V5X2lzX3VuaXF1ZShuZXdfcGF0aGtleSwgcGF0aGtleXMpOwogfQog CiAvKgpAQCAtMTA5OCw2ICsxMTEyLDQxIEBAIG1ha2VfcGF0aGtleXNfZm9yX3NvcnRjbGF1c2Vz KFBsYW5uZXJJbmZvICpyb290LAogCXJldHVybiBwYXRoa2V5czsKIH0KIAorLyoKKyAqIG1ha2Vf cGF0aGtleXNfZm9yX3VuaXF1ZWtleWNsYXVzZXMKKyAqCQlHZW5lcmF0ZSBhIHBhdGhrZXlzIGxp c3QgdG8gYmUgdXNlZCBmb3IgdW5pcXVla2V5IGNsYXVzZXMKKyAqLworTGlzdCAqCittYWtlX3Bh dGhrZXlzX2Zvcl91bmlxdWVrZXlzKFBsYW5uZXJJbmZvICpyb290LAorCQkJCQkJCSBMaXN0ICpz b3J0Y2xhdXNlcywKKwkJCQkJCQkgTGlzdCAqdGxpc3QpCit7CisJTGlzdAkgICAqcGF0aGtleXMg PSBOSUw7CisJTGlzdENlbGwgICAqbDsKKworCWZvcmVhY2gobCwgc29ydGNsYXVzZXMpCisJewor CQlTb3J0R3JvdXBDbGF1c2UgKnNvcnRjbCA9IChTb3J0R3JvdXBDbGF1c2UgKikgbGZpcnN0KGwp OworCQlFeHByCSAgICpzb3J0a2V5OworCQlQYXRoS2V5ICAgICpwYXRoa2V5OworCisJCXNvcnRr ZXkgPSAoRXhwciAqKSBnZXRfc29ydGdyb3VwY2xhdXNlX2V4cHIoc29ydGNsLCB0bGlzdCk7CisJ CUFzc2VydChPaWRJc1ZhbGlkKHNvcnRjbC0+c29ydG9wKSk7CisJCXBhdGhrZXkgPSBtYWtlX3Bh dGhrZXlfZnJvbV9zb3J0b3Aocm9vdCwKKwkJCQkJCQkJCQkgICBzb3J0a2V5LAorCQkJCQkJCQkJ CSAgIHJvb3QtPm51bGxhYmxlX2Jhc2VyZWxzLAorCQkJCQkJCQkJCSAgIHNvcnRjbC0+c29ydG9w LAorCQkJCQkJCQkJCSAgIHNvcnRjbC0+bnVsbHNfZmlyc3QsCisJCQkJCQkJCQkJICAgc29ydGNs LT50bGVTb3J0R3JvdXBSZWYsCisJCQkJCQkJCQkJICAgdHJ1ZSk7CisKKwkJaWYgKHBhdGhrZXlf aXNfdW5pcXVlKHBhdGhrZXksIHBhdGhrZXlzKSkKKwkJCXBhdGhrZXlzID0gbGFwcGVuZChwYXRo a2V5cywgcGF0aGtleSk7CisJfQorCisJcmV0dXJuIHBhdGhrZXlzOworfQorCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgogICoJCVBBVEhLRVlTIEFORCBNRVJHRUNMQVVTRVMKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvdW5pcXVla2V5 LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC91bmlxdWVrZXkuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xM2Q0ZWJiOThjCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvdW5pcXVla2V5LmMKQEAgLTAsMCArMSwxNDcgQEAK Ky8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHVuaXF1ZWtleS5jCisgKgkgIFV0aWxpdGllcyBm b3IgbWF0Y2hpbmcgYW5kIGJ1aWxkaW5nIHVuaXF1ZSBrZXlzCisgKgorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMTksIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNp dHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5k L29wdGltaXplci9wYXRoL3VuaXF1ZWtleS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K KyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAib3B0aW1pemVyL3BhdGhub2RlLmgi CisjaW5jbHVkZSAib3B0aW1pemVyL3BhdGhzLmgiCisjaW5jbHVkZSAibm9kZXMvcGdfbGlzdC5o IgorCitzdGF0aWMgVW5pcXVlS2V5ICptYWtlX2Nhbm9uaWNhbF91bmlxdWVrZXkoUGxhbm5lcklu Zm8gKnJvb3QsIEVxdWl2YWxlbmNlQ2xhc3MgKmVjbGFzcyk7CisKKy8qCisgKiBCdWlsZCBhIGxp c3Qgb2YgdW5pcXVlIGtleXMKKyAqLworTGlzdCoKK2J1aWxkX3VuaXF1ZWtleXMoUGxhbm5lcklu Zm8gKnJvb3QsIExpc3QgKnNvcnRjbGF1c2VzKQoreworCUxpc3QgKnJlc3VsdCA9IE5JTDsKKwlM aXN0ICpzb3J0a2V5czsKKwlMaXN0Q2VsbCAqbDsKKworCXNvcnRrZXlzID0gbWFrZV9wYXRoa2V5 c19mb3JfdW5pcXVla2V5cyhyb290LAorCQkJCQkJCQkJCQlzb3J0Y2xhdXNlcywKKwkJCQkJCQkJ CQkJcm9vdC0+cHJvY2Vzc2VkX3RsaXN0KTsKKworCS8qIENyZWF0ZSBhIHVuaXF1ZWtleSBhbmQg YWRkIGl0IHRvIHRoZSBsaXN0ICovCisJZm9yZWFjaChsLCBzb3J0a2V5cykKKwl7CisJCVBhdGhL ZXkgICAgKnBhdGhrZXkgPSAoUGF0aEtleSAqKSBsZmlyc3QobCk7CisJCUVxdWl2YWxlbmNlQ2xh c3MgKmVjID0gcGF0aGtleS0+cGtfZWNsYXNzOworCQlVbmlxdWVLZXkgKnVuaXF1ZV9rZXkgPSBt YWtlX2Nhbm9uaWNhbF91bmlxdWVrZXkocm9vdCwgZWMpOworCisJCXJlc3VsdCA9IGxhcHBlbmQo cmVzdWx0LCB1bmlxdWVfa2V5KTsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICog dW5pcXVla2V5c19jb250YWluZWRfaW4KKyAqCSAgQXJlIHRoZSBrZXlzMiBpbmNsdWRlZCBpbiB0 aGUga2V5czEgc3VwZXJzZXQKKyAqLworYm9vbAordW5pcXVla2V5c19jb250YWluZWRfaW4oTGlz dCAqa2V5czEsIExpc3QgKmtleXMyKQoreworCUxpc3RDZWxsICAgKmtleTEsCisJCQkgICAqa2V5 MjsKKworCS8qCisJICogRmFsbCBvdXQgcXVpY2tseSBpZiB3ZSBhcmUgcGFzc2VkIHR3byBpZGVu dGljYWwgbGlzdHMuICBUaGlzIG1vc3RseQorCSAqIGNhdGNoZXMgdGhlIGNhc2Ugd2hlcmUgYm90 aCBhcmUgTklMLCBidXQgdGhhdCdzIGNvbW1vbiBlbm91Z2ggdG8KKwkgKiB3YXJyYW50IHRoZSB0 ZXN0LgorCSAqLworCWlmIChrZXlzMSA9PSBrZXlzMikKKwkJcmV0dXJuIHRydWU7CisKKwlmb3Jl YWNoKGtleTIsIGtleXMyKQorCXsKKwkJYm9vbCBmb3VuZCA9IGZhbHNlOworCQlVbmlxdWVLZXkg ICp1bmlxdWVrZXkyID0gKFVuaXF1ZUtleSAqKSBsZmlyc3Qoa2V5Mik7CisKKwkJZm9yZWFjaChr ZXkxLCBrZXlzMSkKKwkJeworCQkJVW5pcXVlS2V5ICAqdW5pcXVla2V5MSA9IChVbmlxdWVLZXkg KikgbGZpcnN0KGtleTEpOworCisJCQlpZiAodW5pcXVla2V5MS0+ZXFfY2xhdXNlID09IHVuaXF1 ZWtleTItPmVxX2NsYXVzZSkKKwkJCXsKKwkJCQlmb3VuZCA9IHRydWU7CisJCQkJYnJlYWs7CisJ CQl9CisJCX0KKworCQlpZiAoIWZvdW5kKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVy biB0cnVlOworfQorCisvKgorICogaGFzX3VzZWZ1bF91bmlxdWVrZXlzCisgKgkJRGV0ZWN0IHdo ZXRoZXIgdGhlIHBsYW5uZXIgY291bGQgaGF2ZSBhbnkgdW5pcXVla2V5cyB0aGF0IGFyZQorICoJ CXVzZWZ1bC4KKyAqLworYm9vbAoraGFzX3VzZWZ1bF91bmlxdWVrZXlzKFBsYW5uZXJJbmZvICpy b290KQoreworCWlmIChyb290LT5xdWVyeV91bmlxdWVrZXlzICE9IE5JTCkKKwkJcmV0dXJuIHRy dWU7CS8qIHRoZXJlIGFyZSBzb21lICovCisJcmV0dXJuIGZhbHNlOwkJLyogZGVmaW5pdGVseSB1 c2VsZXNzICovCit9CisKKy8qCisgKiBtYWtlX2Nhbm9uaWNhbF91bmlxdWVrZXkKKyAqCSAgR2l2 ZW4gdGhlIHBhcmFtZXRlcnMgZm9yIGEgVW5pcXVlS2V5LCBmaW5kIGFueSBwcmUtZXhpc3Rpbmcg bWF0Y2hpbmcKKyAqCSAgdW5pcXVla2V5IGluIHRoZSBxdWVyeSdzIGxpc3Qgb2YgImNhbm9uaWNh bCIgdW5pcXVla2V5cy4gIE1ha2UgYSBuZXcKKyAqCSAgZW50cnkgaWYgdGhlcmUncyBub3Qgb25l IGFscmVhZHkuCisgKgorICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gbXVzdCBub3QgYmUgdXNl ZCB1bnRpbCBhZnRlciB3ZSBoYXZlIGNvbXBsZXRlZAorICogbWVyZ2luZyBFcXVpdmFsZW5jZUNs YXNzZXMuICAoV2UgZG9uJ3QgdHJ5IHRvIGVuZm9yY2UgdGhhdCBoZXJlOyBpbnN0ZWFkLAorICog ZXF1aXZjbGFzcy5jIHdpbGwgY29tcGxhaW4gaWYgYSBtZXJnZSBvY2N1cnMgYWZ0ZXIgcm9vdC0+ Y2Fub25fdW5pcXVla2V5cworICogaGFzIGJlY29tZSBub25lbXB0eS4pCisgKi8KK3N0YXRpYyBV bmlxdWVLZXkgKgorbWFrZV9jYW5vbmljYWxfdW5pcXVla2V5KFBsYW5uZXJJbmZvICpyb290LAor CQkJCQkJIEVxdWl2YWxlbmNlQ2xhc3MgKmVjbGFzcykKK3sKKwlVbmlxdWVLZXkgICp1azsKKwlM aXN0Q2VsbCAgICpsYzsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwkvKiBUaGUgcGFz c2VkIGVjbGFzcyBtaWdodCBiZSBub24tY2Fub25pY2FsLCBzbyBjaGFzZSB1cCB0byB0aGUgdG9w ICovCisJd2hpbGUgKGVjbGFzcy0+ZWNfbWVyZ2VkKQorCQllY2xhc3MgPSBlY2xhc3MtPmVjX21l cmdlZDsKKworCWZvcmVhY2gobGMsIHJvb3QtPmNhbm9uX3VuaXF1ZWtleXMpCisJeworCQl1ayA9 IChVbmlxdWVLZXkgKikgbGZpcnN0KGxjKTsKKwkJaWYgKGVjbGFzcyA9PSB1ay0+ZXFfY2xhdXNl KQorCQkJcmV0dXJuIHVrOworCX0KKworCS8qCisJICogQmUgc3VyZSBjYW5vbmljYWwgdW5pcXVl a2V5cyBhcmUgYWxsb2NhdGVkIGluIHRoZSBtYWluIHBsYW5uaW5nIGNvbnRleHQuCisJICogTm90 IGFuIGlzc3VlIGluIG5vcm1hbCBwbGFubmluZywgYnV0IGl0IGlzIGZvciBHRVFPLgorCSAqLwor CW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocm9vdC0+cGxhbm5lcl9jeHQpOwor CisJdWsgPSBtYWtlTm9kZShVbmlxdWVLZXkpOworCXVrLT5lcV9jbGF1c2UgPSBlY2xhc3M7CisK Kwlyb290LT5jYW5vbl91bmlxdWVrZXlzID0gbGFwcGVuZChyb290LT5jYW5vbl91bmlxdWVrZXlz LCB1ayk7CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisKKwlyZXR1cm4g dWs7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFuYWdnLmMg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFuYWdnLmMKaW5kZXggODYzNDk0MGVmYy4u ZGQ2NDc3NWQ4ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbmFn Zy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5hZ2cuYwpAQCAtNTExLDYg KzUxMSw3IEBAIG1pbm1heF9xcF9jYWxsYmFjayhQbGFubmVySW5mbyAqcm9vdCwgdm9pZCAqZXh0 cmEpCiAJCQkJCQkJCQkgIHJvb3QtPnBhcnNlLT50YXJnZXRMaXN0KTsKIAogCXJvb3QtPnF1ZXJ5 X3BhdGhrZXlzID0gcm9vdC0+c29ydF9wYXRoa2V5czsKKwlyb290LT5xdWVyeV91bmlxdWVrZXlz ID0gTklMOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v cGxhbm1haW4uYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5tYWluLmMKaW5kZXgg NjJkZmM2ZDQ0YS4uM2EzNzJhZjkxYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm1haW4uYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubWFp bi5jCkBAIC03MCw2ICs3MCw3IEBAIHF1ZXJ5X3BsYW5uZXIoUGxhbm5lckluZm8gKnJvb3QsCiAJ cm9vdC0+am9pbl9yZWxfbGV2ZWwgPSBOVUxMOwogCXJvb3QtPmpvaW5fY3VyX2xldmVsID0gMDsK IAlyb290LT5jYW5vbl9wYXRoa2V5cyA9IE5JTDsKKwlyb290LT5jYW5vbl91bmlxdWVrZXlzID0g TklMOwogCXJvb3QtPmxlZnRfam9pbl9jbGF1c2VzID0gTklMOwogCXJvb3QtPnJpZ2h0X2pvaW5f Y2xhdXNlcyA9IE5JTDsKIAlyb290LT5mdWxsX2pvaW5fY2xhdXNlcyA9IE5JTDsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCA1ZGEwNTI4MzgyLi42YTdiNTVhYmQyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC0zNjU0LDE1ICszNjU0LDMwIEBAIHN0 YW5kYXJkX3FwX2NhbGxiYWNrKFBsYW5uZXJJbmZvICpyb290LCB2b2lkICpleHRyYSkKIAkgKiBt dWNoIGVhc2llciwgc2luY2Ugd2Uga25vdyB0aGF0IHRoZSBwYXJzZXIgZW5zdXJlZCB0aGF0IG9u ZSBpcyBhCiAJICogc3VwZXJzZXQgb2YgdGhlIG90aGVyLgogCSAqLworCXJvb3QtPnF1ZXJ5X3Vu aXF1ZWtleXMgPSBOSUw7CisKIAlpZiAocm9vdC0+Z3JvdXBfcGF0aGtleXMpCisJewogCQlyb290 LT5xdWVyeV9wYXRoa2V5cyA9IHJvb3QtPmdyb3VwX3BhdGhrZXlzOworCisJCWlmICghcm9vdC0+ cGFyc2UtPmhhc0FnZ3MpCisJCQlyb290LT5xdWVyeV91bmlxdWVrZXlzID0gYnVpbGRfdW5pcXVl a2V5cyhyb290LCBxcF9leHRyYS0+Z3JvdXBDbGF1c2UpOworCX0KIAllbHNlIGlmIChyb290LT53 aW5kb3dfcGF0aGtleXMpCiAJCXJvb3QtPnF1ZXJ5X3BhdGhrZXlzID0gcm9vdC0+d2luZG93X3Bh dGhrZXlzOwogCWVsc2UgaWYgKGxpc3RfbGVuZ3RoKHJvb3QtPmRpc3RpbmN0X3BhdGhrZXlzKSA+ CiAJCQkgbGlzdF9sZW5ndGgocm9vdC0+c29ydF9wYXRoa2V5cykpCisJewogCQlyb290LT5xdWVy eV9wYXRoa2V5cyA9IHJvb3QtPmRpc3RpbmN0X3BhdGhrZXlzOworCQlyb290LT5xdWVyeV91bmlx dWVrZXlzID0gYnVpbGRfdW5pcXVla2V5cyhyb290LCBwYXJzZS0+ZGlzdGluY3RDbGF1c2UpOwor CX0KIAllbHNlIGlmIChyb290LT5zb3J0X3BhdGhrZXlzKQorCXsKIAkJcm9vdC0+cXVlcnlfcGF0 aGtleXMgPSByb290LT5zb3J0X3BhdGhrZXlzOworCisJCWlmIChyb290LT5kaXN0aW5jdF9wYXRo a2V5cykKKwkJCXJvb3QtPnF1ZXJ5X3VuaXF1ZWtleXMgPSBidWlsZF91bmlxdWVrZXlzKHJvb3Qs IHBhcnNlLT5kaXN0aW5jdENsYXVzZSk7CisJfQogCWVsc2UKIAkJcm9vdC0+cXVlcnlfcGF0aGtl eXMgPSBOSUw7CiB9CkBAIC02MjE1LDcgKzYyMzAsNyBAQCBwbGFuX2NsdXN0ZXJfdXNlX3NvcnQo T2lkIHRhYmxlT2lkLCBPaWQgaW5kZXhPaWQpCiAKIAkvKiBFc3RpbWF0ZSB0aGUgY29zdCBvZiBp bmRleCBzY2FuICovCiAJaW5kZXhTY2FuUGF0aCA9IGNyZWF0ZV9pbmRleF9wYXRoKHJvb3QsIGlu ZGV4SW5mbywKLQkJCQkJCQkJCSAgTklMLCBOSUwsIE5JTCwgTklMLAorCQkJCQkJCQkJICBOSUws IE5JTCwgTklMLCBOSUwsIE5JTCwKIAkJCQkJCQkJCSAgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIGZh bHNlLAogCQkJCQkJCQkJICBOVUxMLCAxLjAsIGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL3BhdGhub2RlLmMKaW5kZXggOGJhODEyMmVlMi4uMjc4NDM2ZjEwMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCkBAIC05NDAsNiArOTQwLDcgQEAgY3JlYXRlX3NlcXNj YW5fcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCXBhdGhub2RlLT5w YXJhbGxlbF9zYWZlID0gcmVsLT5jb25zaWRlcl9wYXJhbGxlbDsKIAlwYXRobm9kZS0+cGFyYWxs ZWxfd29ya2VycyA9IHBhcmFsbGVsX3dvcmtlcnM7CiAJcGF0aG5vZGUtPnBhdGhrZXlzID0gTklM OwkvKiBzZXFzY2FuIGhhcyB1bm9yZGVyZWQgcmVzdWx0ICovCisJcGF0aG5vZGUtPnVuaXF1ZWtl eXMgPSBOSUw7CiAKIAljb3N0X3NlcXNjYW4ocGF0aG5vZGUsIHJvb3QsIHJlbCwgcGF0aG5vZGUt PnBhcmFtX2luZm8pOwogCkBAIC05NjQsNiArOTY1LDcgQEAgY3JlYXRlX3NhbXBsZXNjYW5fcGF0 aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLCBSZWxpZHMgcmVxdWlyZWRfb3V0 ZXIKIAlwYXRobm9kZS0+cGFyYWxsZWxfc2FmZSA9IHJlbC0+Y29uc2lkZXJfcGFyYWxsZWw7CiAJ cGF0aG5vZGUtPnBhcmFsbGVsX3dvcmtlcnMgPSAwOwogCXBhdGhub2RlLT5wYXRoa2V5cyA9IE5J TDsJLyogc2FtcGxlc2NhbiBoYXMgdW5vcmRlcmVkIHJlc3VsdCAqLworCXBhdGhub2RlLT51bmlx dWVrZXlzID0gTklMOwogCiAJY29zdF9zYW1wbGVzY2FuKHBhdGhub2RlLCByb290LCByZWwsIHBh dGhub2RlLT5wYXJhbV9pbmZvKTsKIApAQCAtMTAwMCw2ICsxMDAyLDcgQEAgY3JlYXRlX2luZGV4 X3BhdGgoUGxhbm5lckluZm8gKnJvb3QsCiAJCQkJICBMaXN0ICppbmRleG9yZGVyYnlzLAogCQkJ CSAgTGlzdCAqaW5kZXhvcmRlcmJ5Y29scywKIAkJCQkgIExpc3QgKnBhdGhrZXlzLAorCQkJCSAg TGlzdCAqdW5pcXVla2V5cywKIAkJCQkgIFNjYW5EaXJlY3Rpb24gaW5kZXhzY2FuZGlyLAogCQkJ CSAgYm9vbCBpbmRleG9ubHksCiAJCQkJICBSZWxpZHMgcmVxdWlyZWRfb3V0ZXIsCkBAIC0xMDE4 LDYgKzEwMjEsNyBAQCBjcmVhdGVfaW5kZXhfcGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAlwYXRo bm9kZS0+cGF0aC5wYXJhbGxlbF9zYWZlID0gcmVsLT5jb25zaWRlcl9wYXJhbGxlbDsKIAlwYXRo bm9kZS0+cGF0aC5wYXJhbGxlbF93b3JrZXJzID0gMDsKIAlwYXRobm9kZS0+cGF0aC5wYXRoa2V5 cyA9IHBhdGhrZXlzOworCXBhdGhub2RlLT5wYXRoLnVuaXF1ZWtleXMgPSB1bmlxdWVrZXlzOwog CiAJcGF0aG5vZGUtPmluZGV4aW5mbyA9IGluZGV4OwogCXBhdGhub2RlLT5pbmRleGNsYXVzZXMg PSBpbmRleGNsYXVzZXM7CkBAIC0xMDYxLDYgKzEwNjUsNyBAQCBjcmVhdGVfYml0bWFwX2hlYXBf cGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAlwYXRobm9kZS0+cGF0aC5wYXJhbGxlbF9zYWZlID0g cmVsLT5jb25zaWRlcl9wYXJhbGxlbDsKIAlwYXRobm9kZS0+cGF0aC5wYXJhbGxlbF93b3JrZXJz ID0gcGFyYWxsZWxfZGVncmVlOwogCXBhdGhub2RlLT5wYXRoLnBhdGhrZXlzID0gTklMOwkvKiBh bHdheXMgdW5vcmRlcmVkICovCisJcGF0aG5vZGUtPnBhdGgudW5pcXVla2V5cyA9IE5JTDsKIAog CXBhdGhub2RlLT5iaXRtYXBxdWFsID0gYml0bWFwcXVhbDsKIApAQCAtMTkyMyw2ICsxOTI4LDcg QEAgY3JlYXRlX2Z1bmN0aW9uc2Nhbl9wYXRoKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZv ICpyZWwsCiAJcGF0aG5vZGUtPnBhcmFsbGVsX3NhZmUgPSByZWwtPmNvbnNpZGVyX3BhcmFsbGVs OwogCXBhdGhub2RlLT5wYXJhbGxlbF93b3JrZXJzID0gMDsKIAlwYXRobm9kZS0+cGF0aGtleXMg PSBwYXRoa2V5czsKKwlwYXRobm9kZS0+dW5pcXVla2V5cyA9IE5JTDsKIAogCWNvc3RfZnVuY3Rp b25zY2FuKHBhdGhub2RlLCByb290LCByZWwsIHBhdGhub2RlLT5wYXJhbV9pbmZvKTsKIApAQCAt MTk0OSw2ICsxOTU1LDcgQEAgY3JlYXRlX3RhYmxlZnVuY3NjYW5fcGF0aChQbGFubmVySW5mbyAq cm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCXBhdGhub2RlLT5wYXJhbGxlbF9zYWZlID0gcmVsLT5j b25zaWRlcl9wYXJhbGxlbDsKIAlwYXRobm9kZS0+cGFyYWxsZWxfd29ya2VycyA9IDA7CiAJcGF0 aG5vZGUtPnBhdGhrZXlzID0gTklMOwkvKiByZXN1bHQgaXMgYWx3YXlzIHVub3JkZXJlZCAqLwor CXBhdGhub2RlLT51bmlxdWVrZXlzID0gTklMOwogCiAJY29zdF90YWJsZWZ1bmNzY2FuKHBhdGhu b2RlLCByb290LCByZWwsIHBhdGhub2RlLT5wYXJhbV9pbmZvKTsKIApAQCAtMTk3NSw2ICsxOTgy LDcgQEAgY3JlYXRlX3ZhbHVlc3NjYW5fcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5m byAqcmVsLAogCXBhdGhub2RlLT5wYXJhbGxlbF9zYWZlID0gcmVsLT5jb25zaWRlcl9wYXJhbGxl bDsKIAlwYXRobm9kZS0+cGFyYWxsZWxfd29ya2VycyA9IDA7CiAJcGF0aG5vZGUtPnBhdGhrZXlz ID0gTklMOwkvKiByZXN1bHQgaXMgYWx3YXlzIHVub3JkZXJlZCAqLworCXBhdGhub2RlLT51bmlx dWVrZXlzID0gTklMOwogCiAJY29zdF92YWx1ZXNzY2FuKHBhdGhub2RlLCByb290LCByZWwsIHBh dGhub2RlLT5wYXJhbV9pbmZvKTsKIApAQCAtMjAwMCw2ICsyMDA4LDcgQEAgY3JlYXRlX2N0ZXNj YW5fcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLCBSZWxpZHMgcmVxdWly ZWRfb3V0ZXIpCiAJcGF0aG5vZGUtPnBhcmFsbGVsX3NhZmUgPSByZWwtPmNvbnNpZGVyX3BhcmFs bGVsOwogCXBhdGhub2RlLT5wYXJhbGxlbF93b3JrZXJzID0gMDsKIAlwYXRobm9kZS0+cGF0aGtl eXMgPSBOSUw7CS8qIFhYWCBmb3Igbm93LCByZXN1bHQgaXMgYWx3YXlzIHVub3JkZXJlZCAqLwor CXBhdGhub2RlLT51bmlxdWVrZXlzID0gTklMOwogCiAJY29zdF9jdGVzY2FuKHBhdGhub2RlLCBy b290LCByZWwsIHBhdGhub2RlLT5wYXJhbV9pbmZvKTsKIApAQCAtMjAyNiw2ICsyMDM1LDcgQEAg Y3JlYXRlX25hbWVkdHVwbGVzdG9yZXNjYW5fcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0 SW5mbyAqcmVsLAogCXBhdGhub2RlLT5wYXJhbGxlbF9zYWZlID0gcmVsLT5jb25zaWRlcl9wYXJh bGxlbDsKIAlwYXRobm9kZS0+cGFyYWxsZWxfd29ya2VycyA9IDA7CiAJcGF0aG5vZGUtPnBhdGhr ZXlzID0gTklMOwkvKiByZXN1bHQgaXMgYWx3YXlzIHVub3JkZXJlZCAqLworCXBhdGhub2RlLT51 bmlxdWVrZXlzID0gTklMOwogCiAJY29zdF9uYW1lZHR1cGxlc3RvcmVzY2FuKHBhdGhub2RlLCBy b290LCByZWwsIHBhdGhub2RlLT5wYXJhbV9pbmZvKTsKIApAQCAtMjA1Miw2ICsyMDYyLDcgQEAg Y3JlYXRlX3Jlc3VsdHNjYW5fcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVs LAogCXBhdGhub2RlLT5wYXJhbGxlbF9zYWZlID0gcmVsLT5jb25zaWRlcl9wYXJhbGxlbDsKIAlw YXRobm9kZS0+cGFyYWxsZWxfd29ya2VycyA9IDA7CiAJcGF0aG5vZGUtPnBhdGhrZXlzID0gTklM OwkvKiByZXN1bHQgaXMgYWx3YXlzIHVub3JkZXJlZCAqLworCXBhdGhub2RlLT51bmlxdWVrZXlz ID0gTklMOwogCiAJY29zdF9yZXN1bHRzY2FuKHBhdGhub2RlLCByb290LCByZWwsIHBhdGhub2Rl LT5wYXJhbV9pbmZvKTsKIApAQCAtMjA3OCw2ICsyMDg5LDcgQEAgY3JlYXRlX3dvcmt0YWJsZXNj YW5fcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCXBhdGhub2RlLT5w YXJhbGxlbF9zYWZlID0gcmVsLT5jb25zaWRlcl9wYXJhbGxlbDsKIAlwYXRobm9kZS0+cGFyYWxs ZWxfd29ya2VycyA9IDA7CiAJcGF0aG5vZGUtPnBhdGhrZXlzID0gTklMOwkvKiByZXN1bHQgaXMg YWx3YXlzIHVub3JkZXJlZCAqLworCXBhdGhub2RlLT51bmlxdWVrZXlzID0gTklMOwogCiAJLyog Q29zdCBpcyB0aGUgc2FtZSBhcyBmb3IgYSByZWd1bGFyIENURSBzY2FuICovCiAJY29zdF9jdGVz Y2FuKHBhdGhub2RlLCByb290LCByZWwsIHBhdGhub2RlLT5wYXJhbV9pbmZvKTsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5o CmluZGV4IDhhNzZhZmU4Y2MuLjY3OWNjNGNjOWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaApAQCAtMjYxLDYgKzI2 MSw3IEBAIHR5cGVkZWYgZW51bSBOb2RlVGFnCiAJVF9FcXVpdmFsZW5jZU1lbWJlciwKIAlUX1Bh dGhLZXksCiAJVF9QYXRoVGFyZ2V0LAorCVRfVW5pcXVlS2V5LAogCVRfUmVzdHJpY3RJbmZvLAog CVRfSW5kZXhDbGF1c2UsCiAJVF9QbGFjZUhvbGRlclZhciwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5k ZXggMGNlYjgwOTY0NC4uZDQ4MTZjMTgwZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTI2OSw2 ICsyNjksOCBAQCBzdHJ1Y3QgUGxhbm5lckluZm8KIAogCUxpc3QJICAgKmNhbm9uX3BhdGhrZXlz OyAvKiBsaXN0IG9mICJjYW5vbmljYWwiIFBhdGhLZXlzICovCiAKKwlMaXN0CSAgICpjYW5vbl91 bmlxdWVrZXlzOyAvKiBsaXN0IG9mICJjYW5vbmljYWwiIFVuaXF1ZUtleXMgKi8KKwogCUxpc3QJ ICAgKmxlZnRfam9pbl9jbGF1c2VzOwkvKiBsaXN0IG9mIFJlc3RyaWN0SW5mb3MgZm9yIG1lcmdl am9pbmFibGUKIAkJCQkJCQkJCSAqIG91dGVyIGpvaW4gY2xhdXNlcyB3L25vbm51bGxhYmxlIHZh ciBvbgogCQkJCQkJCQkJICogbGVmdCAqLwpAQCAtMjk3LDYgKzI5OSw4IEBAIHN0cnVjdCBQbGFu bmVySW5mbwogCiAJTGlzdAkgICAqcXVlcnlfcGF0aGtleXM7IC8qIGRlc2lyZWQgcGF0aGtleXMg Zm9yIHF1ZXJ5X3BsYW5uZXIoKSAqLwogCisJTGlzdAkgICAqcXVlcnlfdW5pcXVla2V5czsgLyog dW5pcXVlIGtleXMgdXNlZCBmb3IgdGhlIHF1ZXJ5ICovCisKIAlMaXN0CSAgICpncm91cF9wYXRo a2V5czsgLyogZ3JvdXBDbGF1c2UgcGF0aGtleXMsIGlmIGFueSAqLwogCUxpc3QJICAgKndpbmRv d19wYXRoa2V5czsJLyogcGF0aGtleXMgb2YgYm90dG9tIHdpbmRvdywgaWYgYW55ICovCiAJTGlz dAkgICAqZGlzdGluY3RfcGF0aGtleXM7CS8qIGRpc3RpbmN0Q2xhdXNlIHBhdGhrZXlzLCBpZiBh bnkgKi8KQEAgLTEwNzcsNiArMTA4MSwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbVBhdGhJbmZv CiAJTGlzdAkgICAqcHBpX2NsYXVzZXM7CS8qIGpvaW4gY2xhdXNlcyBhdmFpbGFibGUgZnJvbSBv dXRlciByZWxzICovCiB9IFBhcmFtUGF0aEluZm87CiAKKy8qCisgKiBVbmlxdWVLZXkKKyAqLwor dHlwZWRlZiBzdHJ1Y3QgVW5pcXVlS2V5Cit7CisJTm9kZVRhZwkJdHlwZTsKKworCUVxdWl2YWxl bmNlQ2xhc3MgKmVxX2NsYXVzZTsJLyogZXF1aXZhbGVuY2UgY2xhc3MgKi8KK30gVW5pcXVlS2V5 OwogCiAvKgogICogVHlwZSAiUGF0aCIgaXMgdXNlZCBhcy1pcyBmb3Igc2VxdWVudGlhbC1zY2Fu IHBhdGhzLCBhcyB3ZWxsIGFzIHNvbWUgb3RoZXIKQEAgLTExMDYsNiArMTExOSw5IEBAIHR5cGVk ZWYgc3RydWN0IFBhcmFtUGF0aEluZm8KICAqCiAgKiAicGF0aGtleXMiIGlzIGEgTGlzdCBvZiBQ YXRoS2V5IG5vZGVzIChzZWUgYWJvdmUpLCBkZXNjcmliaW5nIHRoZSBzb3J0CiAgKiBvcmRlcmlu ZyBvZiB0aGUgcGF0aCdzIG91dHB1dCByb3dzLgorICoKKyAqICJ1bmlxdWVrZXlzIiwgaWYgbm90 IE5JTCwgaXMgYSBsaXN0IG9mIFVuaXF1ZUtleSBub2RlcyAoc2VlIGFib3ZlKSwKKyAqIGRlc2Ny aWJpbmcgdGhlIFhYWC4KICAqLwogdHlwZWRlZiBzdHJ1Y3QgUGF0aAogewpAQCAtMTEyOSw2ICsx MTQ1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGF0aAogCiAJTGlzdAkgICAqcGF0aGtleXM7CQkvKiBz b3J0IG9yZGVyaW5nIG9mIHBhdGgncyBvdXRwdXQgKi8KIAkvKiBwYXRoa2V5cyBpcyBhIExpc3Qg b2YgUGF0aEtleSBub2Rlczsgc2VlIGFib3ZlICovCisKKwlMaXN0CSAgICp1bmlxdWVrZXlzOwkv KiB0aGUgdW5pcXVlIGtleXMsIG9yIE5JTCBpZiBub25lICovCiB9IFBhdGg7CiAKIC8qIE1hY3Jv IGZvciBleHRyYWN0aW5nIGEgcGF0aCdzIHBhcmFtZXRlcml6YXRpb24gcmVsaWRzOyBiZXdhcmUg ZG91YmxlIGV2YWwgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW50LmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wcmludC5oCmluZGV4IDYxMjZiNDkxYmYuLjAwNjI0OGJmYjUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcHJpbnQuaApAQCAtMjgsNiArMjgsNyBAQCBleHRlcm4gY2hhciAqcHJldHR5X2Zvcm1hdF9u b2RlX2R1bXAoY29uc3QgY2hhciAqZHVtcCk7CiBleHRlcm4gdm9pZCBwcmludF9ydChjb25zdCBM aXN0ICpydGFibGUpOwogZXh0ZXJuIHZvaWQgcHJpbnRfZXhwcihjb25zdCBOb2RlICpleHByLCBj b25zdCBMaXN0ICpydGFibGUpOwogZXh0ZXJuIHZvaWQgcHJpbnRfcGF0aGtleXMoY29uc3QgTGlz dCAqcGF0aGtleXMsIGNvbnN0IExpc3QgKnJ0YWJsZSk7CitleHRlcm4gdm9pZCBwcmludF91bmlx dWVrZXlzKGNvbnN0IExpc3QgKnVuaXF1ZWtleXMsIGNvbnN0IExpc3QgKnJ0YWJsZSk7CiBleHRl cm4gdm9pZCBwcmludF90bChjb25zdCBMaXN0ICp0bGlzdCwgY29uc3QgTGlzdCAqcnRhYmxlKTsK IGV4dGVybiB2b2lkIHByaW50X3Nsb3QoVHVwbGVUYWJsZVNsb3QgKnNsb3QpOwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRlL29wdGlt aXplci9wYXRobm9kZS5oCmluZGV4IGU0NTBmZTExMmEuLmY3NWZmNmYzMjMgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGlt aXplci9wYXRobm9kZS5oCkBAIC00NCw2ICs0NCw3IEBAIGV4dGVybiBJbmRleFBhdGggKmNyZWF0 ZV9pbmRleF9wYXRoKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJTGlzdCAqaW5kZXhvcmRl cmJ5cywKIAkJCQkJCQkJCUxpc3QgKmluZGV4b3JkZXJieWNvbHMsCiAJCQkJCQkJCQlMaXN0ICpw YXRoa2V5cywKKwkJCQkJCQkJCUxpc3QgKnVuaXF1ZWtleXMsCiAJCQkJCQkJCQlTY2FuRGlyZWN0 aW9uIGluZGV4c2NhbmRpciwKIAkJCQkJCQkJCWJvb2wgaW5kZXhvbmx5LAogCQkJCQkJCQkJUmVs aWRzIHJlcXVpcmVkX291dGVyLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Bh dGhzLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aHMuaAppbmRleCA5YWI3M2JkMjBjLi41 YjZiZTM4M2IzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aHMuaAorKysg Yi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aHMuaApAQCAtMjE0LDYgKzIxNCw5IEBAIGV4dGVy biBMaXN0ICpidWlsZF9qb2luX3BhdGhrZXlzKFBsYW5uZXJJbmZvICpyb290LAogZXh0ZXJuIExp c3QgKm1ha2VfcGF0aGtleXNfZm9yX3NvcnRjbGF1c2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJ CQkJCQkJCSAgIExpc3QgKnNvcnRjbGF1c2VzLAogCQkJCQkJCQkJCSAgIExpc3QgKnRsaXN0KTsK K2V4dGVybiBMaXN0ICptYWtlX3BhdGhrZXlzX2Zvcl91bmlxdWVrZXlzKFBsYW5uZXJJbmZvICpy b290LAorCQkJCQkJCQkJCSAgTGlzdCAqc29ydGNsYXVzZXMsCisJCQkJCQkJCQkJICBMaXN0ICp0 bGlzdCk7CiBleHRlcm4gdm9pZCBpbml0aWFsaXplX21lcmdlY2xhdXNlX2VjbGFzc2VzKFBsYW5u ZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQlSZXN0cmljdEluZm8gKnJlc3RyaWN0aW5mbyk7CiBl eHRlcm4gdm9pZCB1cGRhdGVfbWVyZ2VjbGF1c2VfZWNsYXNzZXMoUGxhbm5lckluZm8gKnJvb3Qs CkBAIC0yNDAsNCArMjQzLDEyIEBAIGV4dGVybiBQYXRoS2V5ICptYWtlX2Nhbm9uaWNhbF9wYXRo a2V5KFBsYW5uZXJJbmZvICpyb290LAogZXh0ZXJuIHZvaWQgYWRkX3BhdGhzX3RvX2FwcGVuZF9y ZWwoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAkJCQkJCQkJCUxpc3QgKmxp dmVfY2hpbGRyZWxzKTsKIAorLyoKKyAqIHVuaXF1ZWtleS5jCisgKgkgIFV0aWxpdGllcyBmb3Ig bWF0Y2hpbmcgYW5kIGJ1aWxkaW5nIHVuaXF1ZSBrZXlzCisgKi8KK2V4dGVybiBMaXN0ICpidWls ZF91bmlxdWVrZXlzKFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICpzb3J0Y2xhdXNlcyk7CitleHRl cm4gYm9vbCB1bmlxdWVrZXlzX2NvbnRhaW5lZF9pbihMaXN0ICprZXlzMSwgTGlzdCAqa2V5czIp OworZXh0ZXJuIGJvb2wgaGFzX3VzZWZ1bF91bmlxdWVrZXlzKFBsYW5uZXJJbmZvICpyb290KTsK KwogI2VuZGlmCQkJCQkJCS8qIFBBVEhTX0ggKi8KLS0gCjIuMjUuMAoK --_004_2f8f1466f7cf416cb89f40ffcc26d289opammb0561compoptiverco_ Content-Type: application/octet-stream; name="v33-0002-Index-skip-scan.patch" Content-Description: v33-0002-Index-skip-scan.patch Content-Disposition: attachment; filename="v33-0002-Index-skip-scan.patch"; size=219025; creation-date="Sun, 22 Mar 2020 12:49:36 GMT"; modification-date="Sun, 22 Mar 2020 12:49:36 GMT" Content-Transfer-Encoding: base64 RnJvbSBiMjkyN2FhZWI0ZGFjMjFjY2FlYzM1NmQyZDRjZTFiYTJjZWQ5MGIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaXMgdmFuIE5lZSA8ZmxvcmlzLnZhbm5lZUBnbWFpbC5j b20+CkRhdGU6IEZyaSwgMTUgTm92IDIwMTkgMDk6NDY6NTMgLTA1MDAKU3ViamVjdDogW1BBVENI IDIvM10gSW5kZXggc2tpcCBzY2FuCgpJbXBsZW1lbnRhdGlvbiBvZiBJbmRleCBTa2lwIFNjYW4g KHNlZSBMb29zZSBJbmRleCBTY2FuIGluIHRoZSB3aWtpIFsxXSkKYXMgcGFydCBvZiB0aGUgSW5k ZXhPbmx5U2NhbiwgSW5kZXhTY2FuIGFuZCBCaXRtYXBJbmRleFNjYW4gZm9yIG5idHJlZS4KVGhp cyBwYXRjaCBpbXByb3ZlcyBwZXJmb3JtYW5jZSBvZiB0d28gbWFpbiB0eXBlcyBvZiBxdWVyaWVz IHNpZ25pZmljYW50bHk6Ci0gU0VMRUNUIERJU1RJTkNULCBTRUxFQ1QgRElTVElOQ1QgT04KLSBS ZWd1bGFyIFNFTEVDVHMgd2l0aCBXSEVSRS1jbGF1c2VzIG9uIG5vbi1sZWFkaW5nIGluZGV4IGF0 dHJpYnV0ZXMKRm9yIGV4YW1wbGUsIGdpdmVuIGFuIG5idHJlZSBpbmRleCBvbiB0aHJlZSBjb2x1 bW5zIChhLGIsYyksIHRoZSBmb2xsb3dpbmcgcXVlcmllcwptYXkgbm93IGJlIHNpZ25pZmljYW50 bHkgZmFzdGVyOgotIFNFTEVDVCBESVNUSU5DVCBPTiAoYSkgKiBGUk9NIHQxCi0gU0VMRUNUICog RlJPTSB0MSBXSEVSRSBiPTIKLSBTRUxFQ1QgKiBGUk9NIHQxIFdIRVJFIGIgSU4gKDEwLDQwKQot IFNFTEVDVCBESVNUSU5DVCBPTiAoYSxiKSAqIEZST00gdDEgV0hFUkUgYyBCRVRXRUVOIDEwIEFO RCAxMDAgT1JERVIgQlkgYSxiLGMKCk9yaWdpbmFsIHBhdGNoIGFuZCBkZXNpZ24gd2VyZSBwcm9w b3NlZCBieSBUaG9tYXMgTXVucm8gWzJdLCByZXZpdmVkIGFuZAppbXByb3ZlZCBieSBEbWl0cnkg RG9sZ292IGFuZCBKZXNwZXIgUGVkZXJzZW4uIEZ1cnRoZXIgZW5oYW5jZWQgZnVuY3Rpb25hbGl0 eQphZGRlZCBieSBGbG9yaXMgdmFuIE5lZSByZWdhcmRpbmcgYSBtb3JlIGdlbmVyYWwgYW5kIHBl cmZvcm1hbnQgc2tpcCBpbXBsZW1lbnRhdGlvbi4KClsxXSBodHRwczovL3dpa2kucG9zdGdyZXNx bC5vcmcvd2lraS9Mb29zZV9pbmRleHNjYW4KWzJdIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L21lc3NhZ2UtaWQvZmxhdC9DQURMV21YWGJUU0J4UC1Nekp1UEFZU3NMXzJmMGlQbTVWV1BiQ3ZE YlZ2Zlg5M0ZLa3clNDBtYWlsLmdtYWlsLmNvbQoKQXV0aG9yOiBGbG9yaXMgdmFuIE5lZSwgSmVz cGVyIFBlZGVyc2VuLCBEbWl0cnkgRG9sZ292ClJldmlld2VkLWJ5OiBUaG9tYXMgTXVucm8sIERh dmlkIFJvd2xleSwgS3lvdGFybyBIb3JpZ3VjaGksIFRvbWFzIFZvbmRyYSwgUGV0ZXIgR2VvZ2hl Z2FuCi0tLQogY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYyAgICAgICAgICAgICAgIHwg ICAgNCArLQogY29udHJpYi9ibG9vbS9ibHV0aWxzLmMgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgMyArCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAg IDE1ICsKIGRvYy9zcmMvc2dtbC9pbmRleGFtLnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAx MjEgKy0KIGRvYy9zcmMvc2dtbC9pbmRpY2VzLnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAg MjggKwogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICAgICAgICAgIHwgICAg MyArCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnV0aWwuYyAgICAgICAgICAgICAgfCAgICAz ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYyAgICAgICAgICAgICAgICB8ICAgIDMg Kwogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaC5jICAgICAgICAgICAgICAgIHwgICAgMyAr CiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jICAgICAgICAgICAgfCAgMTYzICsr CiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL01ha2VmaWxlICAgICAgICAgICAgfCAgICAxICsK IHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0aW5zZXJ0LmMgICAgICAgICB8ICAgIDIgKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jICAgICAgICAgICB8ICAgIDIgKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cmVlLmMgICAgICAgICAgICB8ICAgNTYgKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c2VhcmNoLmMgICAgICAgICB8ICA3ODggKysr Ky0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRza2lwLmMgICAgICAgICAgIHwg MTMxNyArKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0 LmMgICAgICAgICAgIHwgICAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGls cy5jICAgICAgICAgIHwgIDgyMSArKysrKysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0 L3NwZ3V0aWxzLmMgICAgICAgICAgfCAgICAzICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxh aW4uYyAgICAgICAgICAgICAgICB8ICAgMjkgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Nj YW4uYyAgICAgICAgICAgICAgIHwgICAzNSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJp dG1hcEluZGV4c2Nhbi5jICAgIHwgICAyMSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUlu ZGV4b25seXNjYW4uYyAgICAgIHwgICA2OSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUlu ZGV4c2Nhbi5jICAgICAgICAgIHwgICA3MSArLQogc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNz LmMgICAgICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5j ICAgICAgICAgICAgICAgICAgfCAgICA2ICsKIHNyYy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5j ICAgICAgICAgICAgICAgICB8ICAgIDUgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY29z dHNpemUuYyAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVh dGVwbGFuLmMgICAgICAgfCAgIDM4ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFu bmVyLmMgICAgICAgICAgfCAgIDY0ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhu b2RlLmMgICAgICAgICB8ICAgNDAgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNh dC5jICAgICAgICAgIHwgICAgMyArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jICAgICAg ICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5j b25mLnNhbXBsZSB8ICAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYyAg ICAgICAgICAgIHwgICAgNCArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2FtYXBpLmggICAgICAgICAg ICAgICAgICAgIHwgICAxOSArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCAgICAgICAgICAg ICAgICAgICAgfCAgIDE2ICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy9uYnRyZWUuaCAgICAgICAgICAg ICAgICAgICB8ICAxNDAgKy0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggICAgICAg ICAgICAgICB8ICAgIDQgKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAg ICAgICAgIHwgICAgNyArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAg ICAgICAgfCAgICA2ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oICAgICAgICAgICAg ICAgICB8ICAgIDUgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL2Nvc3QuaCAgICAgICAgICAgICAg ICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaCAgICAgICAgICAg ICAgfCAgICA1ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2VuY25hbWVzLmMgICAgICAgICAgICAg ICB8ICAgIDEgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvd2NoYXIuYyAgICAgICAgICAgICAgICAg IHwgICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdF9kaXN0aW5jdC5vdXQg fCAgNjAxICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dCAg ICAgICAgfCAgICAzICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZWxlY3RfZGlzdGluY3Quc3Fs ICAgICAgfCAgMjQ4ICsrKysKIDQ5IGZpbGVzIGNoYW5nZWQsIDQyNTMgaW5zZXJ0aW9ucygrKSwg NTQzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0c2tpcC5jCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjL2ludGVyZmFjZXMvbGlicHEv ZW5jbmFtZXMuYwogY3JlYXRlIG1vZGUgMTIwMDAwIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3djaGFy LmMKCmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jIGIvY29udHJp Yi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYwppbmRleCBjZWFhYTI3MTY4Li41NTM5NjViZWJhIDEw MDY0NAotLS0gYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jCisrKyBiL2NvbnRyaWIv YW1jaGVjay92ZXJpZnlfbmJ0cmVlLmMKQEAgLTI1MDQsNyArMjUwNCw3IEBAIGJ0X3Jvb3RkZXNj ZW5kKEJ0cmVlQ2hlY2tTdGF0ZSAqc3RhdGUsIEluZGV4VHVwbGUgaXR1cCkKIAlCdWZmZXIJCWxi dWY7CiAJYm9vbAkJZXhpc3RzOwogCi0Ja2V5ID0gX2J0X21rc2NhbmtleShzdGF0ZS0+cmVsLCBp dHVwKTsKKwlrZXkgPSBfYnRfbWtzY2Fua2V5KHN0YXRlLT5yZWwsIGl0dXAsIE5VTEwpOwogCUFz c2VydChrZXktPmhlYXBrZXlzcGFjZSAmJiBrZXktPnNjYW50aWQgIT0gTlVMTCk7CiAKIAkvKgpA QCAtMjkzNiw3ICsyOTM2LDcgQEAgYnRfbWtzY2Fua2V5X3Bpdm90c2VhcmNoKFJlbGF0aW9uIHJl bCwgSW5kZXhUdXBsZSBpdHVwKQogewogCUJUU2Nhbkluc2VydCBza2V5OwogCi0Jc2tleSA9IF9i dF9ta3NjYW5rZXkocmVsLCBpdHVwKTsKKwlza2V5ID0gX2J0X21rc2NhbmtleShyZWwsIGl0dXAs IE5VTEwpOwogCXNrZXktPnBpdm90c2VhcmNoID0gdHJ1ZTsKIAogCXJldHVybiBza2V5OwpkaWZm IC0tZ2l0IGEvY29udHJpYi9ibG9vbS9ibHV0aWxzLmMgYi9jb250cmliL2Jsb29tL2JsdXRpbHMu YwppbmRleCAwMTA0ZDAyZjY3Li5mN2JkZmM5NTlhIDEwMDY0NAotLS0gYS9jb250cmliL2Jsb29t L2JsdXRpbHMuYworKysgYi9jb250cmliL2Jsb29tL2JsdXRpbHMuYwpAQCAtMTMzLDYgKzEzMyw5 IEBAIGJsaGFuZGxlcihQR19GVU5DVElPTl9BUkdTKQogCWFtcm91dGluZS0+YW1idWxrZGVsZXRl ID0gYmxidWxrZGVsZXRlOwogCWFtcm91dGluZS0+YW12YWN1dW1jbGVhbnVwID0gYmx2YWN1dW1j bGVhbnVwOwogCWFtcm91dGluZS0+YW1jYW5yZXR1cm4gPSBOVUxMOworCWFtcm91dGluZS0+YW1z a2lwID0gTlVMTDsKKwlhbXJvdXRpbmUtPmFtYmVnaW5za2lwc2NhbiA9IE5VTEw7CisJYW1yb3V0 aW5lLT5hbWdldHNraXB0dXBsZSA9IE5VTEw7CiAJYW1yb3V0aW5lLT5hbWNvc3Rlc3RpbWF0ZSA9 IGJsY29zdGVzdGltYXRlOwogCWFtcm91dGluZS0+YW1vcHRpb25zID0gYmxvcHRpb25zOwogCWFt cm91dGluZS0+YW1wcm9wZXJ0eSA9IE5VTEw7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29u ZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggOWNjNTI4MWYwMS4uNzYy NDExMGVhNCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9jb25maWcuc2dtbApAQCAtNDU5Nyw2ICs0NTk3LDIxIEBAIEFOWSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0iCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg ICA8dmFybGlzdGVudHJ5IGlkPSJndWMtZW5hYmxlLWluZGV4c2tpcHNjYW4iIHhyZWZsYWJlbD0i ZW5hYmxlX2luZGV4c2tpcHNjYW4iPgorICAgICAgPHRlcm0+PHZhcm5hbWU+ZW5hYmxlX2luZGV4 c2tpcHNjYW48L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRl cm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+ZW5hYmxlX2luZGV4c2tpcHNjYW48L3Zhcm5h bWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+ CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAg IEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIHF1ZXJ5IHBsYW5uZXIncyB1c2Ugb2YgaW5kZXgtc2tp cC1zY2FuIHBsYW4KKyAgICAgICAgdHlwZXMgKHNlZSA8eHJlZiBsaW5rZW5kPSJpbmRleGVzLWlu ZGV4LXNraXAtc2NhbnMiLz4pLiBUaGUgZGVmYXVsdCBpcworICAgICAgICA8bGl0ZXJhbD5vbjwv bGl0ZXJhbD4uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLWVuYWJsZS1tYXRlcmlhbCIg eHJlZmxhYmVsPSJlbmFibGVfbWF0ZXJpYWwiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+ZW5hYmxl X21hdGVyaWFsPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAgICAgICA8aW5kZXh0 ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2luZGV4YW0uc2dtbCBiL2RvYy9zcmMvc2dt bC9pbmRleGFtLnNnbWwKaW5kZXggMzdmOGQ4NzYwYS4uMTUwMDM4YzdmMCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2luZGV4YW0uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvaW5kZXhhbS5zZ21s CkBAIC0xNDgsNiArMTQ4LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5kZXhBbVJvdXRpbmUKICAgICBh bWVuZHNjYW5fZnVuY3Rpb24gYW1lbmRzY2FuOwogICAgIGFtbWFya3Bvc19mdW5jdGlvbiBhbW1h cmtwb3M7ICAgICAgIC8qIGNhbiBiZSBOVUxMICovCiAgICAgYW1yZXN0cnBvc19mdW5jdGlvbiBh bXJlc3RycG9zOyAgICAgLyogY2FuIGJlIE5VTEwgKi8KKyAgICBhbXNraXBfZnVuY3Rpb24gYW1z a2lwOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbiBiZSBOVUxMICovCisgICAgYW1iZWdp bnNjYW5fc2tpcF9mdW5jdGlvbiBhbWJlZ2luc2tpcHNjYW47ICAgICAvKiBjYW4gYmUgTlVMTCAq LworICAgIGFtZ2V0dHVwbGVfd2l0aF9za2lwX2Z1bmN0aW9uIGFtZ2V0c2tpcHR1cGxlOyAgLyog Y2FuIGJlIE5VTEwgKi8KIAogICAgIC8qIGludGVyZmFjZSBmdW5jdGlvbnMgdG8gc3VwcG9ydCBw YXJhbGxlbCBpbmRleCBzY2FucyAqLwogICAgIGFtZXN0aW1hdGVwYXJhbGxlbHNjYW5fZnVuY3Rp b24gYW1lc3RpbWF0ZXBhcmFsbGVsc2NhbjsgICAgLyogY2FuIGJlIE5VTEwgKi8KQEAgLTY3NCw2 ICs2NzcsMTIyIEBAIGFtcmVzdHJwb3MgKEluZGV4U2NhbkRlc2Mgc2Nhbik7CiAgICBzdHJ1Y3Qg bWF5IGJlIHNldCB0byBOVUxMLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rp bmc+Citib29sCithbXNraXAgKEluZGV4U2NhbkRlc2Mgc2NhbiwKKyAgICAgICAgU2NhbkRpcmVj dGlvbiBwcmVmaXhEaXIsCisJU2NhbkRpcmVjdGlvbiBwb3N0Zml4RGlyKTsKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgIFNraXAgcGFzdCBhbGwgdHVwbGVzIHdoZXJlIHRoZSBmaXJzdCAncHJlZml4JyBj b2x1bW5zIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMKKyAgdGhlIGxhc3QgdHVwbGUgcmV0dXJuZWQg aW4gdGhlIGN1cnJlbnQgc2Nhbi4gVGhlIGFyZ3VtZW50cyBhcmU6CisKKyAgIDx2YXJpYWJsZWxp c3Q+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PHBhcmFtZXRlcj5zY2FuPC9wYXJh bWV0ZXI+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBJbmRl eCBzY2FuIGluZm9ybWF0aW9uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAg PC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48cGFyYW1l dGVyPnByZWZpeERpcjwvcGFyYW1ldGVyPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAg PHBhcmE+CisgICAgICAgVGhlIGRpcmVjdGlvbiBpbiB3aGljaCB0aGUgcHJlZml4IHBhcnQgb2Yg dGhlIHR1cGxlIGlzIGFkdmFuY2luZy4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxw YXJhbWV0ZXI+cG9zdGZpeERpcjwvcGFyYW1ldGVyPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBkaXJlY3Rpb24gaW4gd2hpY2ggdGhlIHBvc3RmaXgg KGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIHByZWZpeCkgb2YgdGhlIHR1cGxlIGlzIGFkdmFuY2luZy4K KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKyAg IDwvdmFyaWFibGVsaXN0PgorCisgIDwvcGFyYT4KKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+ CitJbmRleFNjYW5EZXNjCithbWJlZ2luc2Nhbl9za2lwIChSZWxhdGlvbiBpbmRleFJlbGF0aW9u LAorICAgICAgICAgICAgIGludCBua2V5cywKKwkgICAgIGludCBub3JkZXJieXMsCisJICAgICBp bnQgcHJlZml4KTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICBQcmVwYXJlIGZvciBhbiBpbmRleCBz Y2FuLiAgVGhlIDxsaXRlcmFsPm5rZXlzPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+bm9yZGVyYnlz PC9saXRlcmFsPgorICAgcGFyYW1ldGVycyBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIHF1YWxzIGFu ZCBvcmRlcmluZyBvcGVyYXRvcnMgdGhhdCB3aWxsIGJlCisgICB1c2VkIGluIHRoZSBzY2FuOyB0 aGVzZSBtYXkgYmUgdXNlZnVsIGZvciBzcGFjZSBhbGxvY2F0aW9uIHB1cnBvc2VzLgorICAgTm90 ZSB0aGF0IHRoZSBhY3R1YWwgdmFsdWVzIG9mIHRoZSBzY2FuIGtleXMgYXJlbid0IHByb3ZpZGVk IHlldC4KKyAgIFRoZSByZXN1bHQgbXVzdCBiZSBhIHBhbGxvYydkIHN0cnVjdC4KKyAgIEZvciBp bXBsZW1lbnRhdGlvbiByZWFzb25zIHRoZSBpbmRleCBhY2Nlc3MgbWV0aG9kCisgICA8ZW1waGFz aXM+bXVzdDwvZW1waGFzaXM+IGNyZWF0ZSB0aGlzIHN0cnVjdCBieSBjYWxsaW5nCisgICA8ZnVu Y3Rpb24+UmVsYXRpb25HZXRJbmRleFNjYW4oKTwvZnVuY3Rpb24+LiAgSW4gbW9zdCBjYXNlcwor ICAgPGZ1bmN0aW9uPmFtYmVnaW5zY2FuPC9mdW5jdGlvbj4gZG9lcyBsaXR0bGUgYmV5b25kIG1h a2luZyB0aGF0IGNhbGwgYW5kIHBlcmhhcHMKKyAgIGFjcXVpcmluZyBsb2NrczsKKyAgIHRoZSBp bnRlcmVzdGluZyBwYXJ0cyBvZiBpbmRleC1zY2FuIHN0YXJ0dXAgYXJlIGluIDxmdW5jdGlvbj5h bXJlc2NhbjwvZnVuY3Rpb24+LgorICAgSWYgdGhpcyBpcyBhIHNraXAgc2NhbiwgcHJlZml4IG11 c3QgaW5kaWNhdGUgdGhlIGxlbmd0aCBvZiB0aGUgcHJlZml4IHRoYXQgY2FuIGJlCisgICBza2lw cGVkIG92ZXIuIFByZWZpeCBjYW4gYmUgc2V0IHRvIC0xIHRvIGRpc2FibGUgc2tpcHBpbmcsIHdo aWNoIHdpbGwgeWllbGQgYW4KKyAgIGlkZW50aWNhbCBzY2FuIHRvIGEgcmVndWxhciBjYWxsIHRv IDxmdW5jdGlvbj5hbWJlZ2luc2NhbjwvZnVuY3Rpb24+LgorICA8L3BhcmE+CisgIDxwYXJhPgor ICA8cHJvZ3JhbWxpc3Rpbmc+CisgIGJvb2xlYW4KKyAgYW1nZXR0dXBsZV9za2lwIChJbmRleFNj YW5EZXNjIHNjYW4sCisgICAgICAgICAgICAgIFNjYW5EaXJlY3Rpb24gcHJlZml4RGlyLAorCSAg ICAgIFNjYW5EaXJlY3Rpb24gcG9zdGZpeERpcik7CisgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAg IEZldGNoIHRoZSBuZXh0IHR1cGxlIGluIHRoZSBnaXZlbiBzY2FuLCBtb3ZpbmcgaW4gdGhlIGdp dmVuCisgICAgIGRpcmVjdGlvbnMuIERpcmVjdGlvbnMgYXJlIHNwZWNpZmllZCBieSB0aGUgZGly ZWN0aW9uIG9mIHRoZSBwcmVmaXggd2UncmUgbW92aW5nIGluLAorICAgICBvZiB3aGljaCB0aGUg c2l6ZSBvZiB0aGUgcHJlZml4IGhhcyBiZWVuIHNwZWNpZmllZCBpbiB0aGUgPGZ1bmN0aW9uPmJ0 YmVnaW5zY2FuX3NraXA8L2Z1bmN0aW9uPgorICAgICBjYWxsLiBUaGlzIGRpcmVjdGlvbiBjYW4g YmUgZGlmZmVyZW50IGluIERJU1RJTkNUIHNjYW5zIHdoZW4gZmV0Y2hpbmcgYmFja3dhcmRzCisg ICAgIGZyb20gYSBjdXJzb3IuCisgICAgIFJldHVybnMgdHJ1ZSBpZiBhIHR1cGxlIHdhcworICAg ICBvYnRhaW5lZCwgZmFsc2UgaWYgbm8gbWF0Y2hpbmcgdHVwbGVzIHJlbWFpbi4gIEluIHRoZSB0 cnVlIGNhc2UgdGhlIHR1cGxlCisgICAgIFRJRCBpcyBzdG9yZWQgaW50byB0aGUgPGxpdGVyYWw+ c2NhbjwvbGl0ZXJhbD4gc3RydWN0dXJlLiAgTm90ZSB0aGF0CisgICAgIDxxdW90ZT5zdWNjZXNz PC9xdW90ZT4gbWVhbnMgb25seSB0aGF0IHRoZSBpbmRleCBjb250YWlucyBhbiBlbnRyeSB0aGF0 IG1hdGNoZXMKKyAgICAgdGhlIHNjYW4ga2V5cywgbm90IHRoYXQgdGhlIHR1cGxlIG5lY2Vzc2Fy aWx5IHN0aWxsIGV4aXN0cyBpbiB0aGUgaGVhcCBvcgorICAgICB3aWxsIHBhc3MgdGhlIGNhbGxl cidzIHNuYXBzaG90IHRlc3QuICBPbiBzdWNjZXNzLCA8ZnVuY3Rpb24+YW1nZXR0dXBsZTwvZnVu Y3Rpb24+CisgICAgIG11c3QgYWxzbyBzZXQgPGxpdGVyYWw+c2Nhbi0mZ3Q7eHNfcmVjaGVjazwv bGl0ZXJhbD4gdG8gdHJ1ZSBvciBmYWxzZS4KKyAgICAgRmFsc2UgbWVhbnMgaXQgaXMgY2VydGFp biB0aGF0IHRoZSBpbmRleCBlbnRyeSBtYXRjaGVzIHRoZSBzY2FuIGtleXMuCisgICAgIHRydWUg bWVhbnMgdGhpcyBpcyBub3QgY2VydGFpbiwgYW5kIHRoZSBjb25kaXRpb25zIHJlcHJlc2VudGVk IGJ5IHRoZQorICAgICBzY2FuIGtleXMgbXVzdCBiZSByZWNoZWNrZWQgYWdhaW5zdCB0aGUgaGVh cCB0dXBsZSBhZnRlciBmZXRjaGluZyBpdC4KKyAgICAgVGhpcyBwcm92aXNpb24gc3VwcG9ydHMg PHF1b3RlPmxvc3N5PC9xdW90ZT4gaW5kZXggb3BlcmF0b3JzLgorICAgICBOb3RlIHRoYXQgcmVj aGVja2luZyB3aWxsIGV4dGVuZCBvbmx5IHRvIHRoZSBzY2FuIGNvbmRpdGlvbnM7IGEgcGFydGlh bAorICAgICBpbmRleCBwcmVkaWNhdGUgKGlmIGFueSkgaXMgbmV2ZXIgcmVjaGVja2VkIGJ5IDxm dW5jdGlvbj5hbWdldHR1cGxlPC9mdW5jdGlvbj4KKyAgICAgY2FsbGVycy4KKyAgICA8L3BhcmE+ CisKKyAgICA8cGFyYT4KKyAgICAgSWYgdGhlIGluZGV4IHN1cHBvcnRzIDxsaW5rIGxpbmtlbmQ9 ImluZGV4ZXMtaW5kZXgtb25seS1zY2FucyI+aW5kZXgtb25seQorICAgICBzY2FuczwvbGluaz4g KGkuZS4sIDxmdW5jdGlvbj5hbWNhbnJldHVybjwvZnVuY3Rpb24+IHJldHVybnMgdHJ1ZSBmb3Ig aXQpLAorICAgICB0aGVuIG9uIHN1Y2Nlc3MgdGhlIEFNIG11c3QgYWxzbyBjaGVjayA8bGl0ZXJh bD5zY2FuLSZndDt4c193YW50X2l0dXA8L2xpdGVyYWw+LAorICAgICBhbmQgaWYgdGhhdCBpcyB0 cnVlIGl0IG11c3QgcmV0dXJuIHRoZSBvcmlnaW5hbGx5IGluZGV4ZWQgZGF0YSBmb3IgdGhlCisg ICAgIGluZGV4IGVudHJ5LiAgVGhlIGRhdGEgY2FuIGJlIHJldHVybmVkIGluIHRoZSBmb3JtIG9m IGFuCisgICAgIDxzdHJ1Y3RuYW1lPkluZGV4VHVwbGU8L3N0cnVjdG5hbWU+IHBvaW50ZXIgc3Rv cmVkIGF0IDxsaXRlcmFsPnNjYW4tJmd0O3hzX2l0dXA8L2xpdGVyYWw+LAorICAgICB3aXRoIHR1 cGxlIGRlc2NyaXB0b3IgPGxpdGVyYWw+c2Nhbi0mZ3Q7eHNfaXR1cGRlc2M8L2xpdGVyYWw+OyBv ciBpbiB0aGUgZm9ybSBvZgorICAgICBhIDxzdHJ1Y3RuYW1lPkhlYXBUdXBsZTwvc3RydWN0bmFt ZT4gcG9pbnRlciBzdG9yZWQgYXQgPGxpdGVyYWw+c2Nhbi0mZ3Q7eHNfaGl0dXA8L2xpdGVyYWw+ LAorICAgICB3aXRoIHR1cGxlIGRlc2NyaXB0b3IgPGxpdGVyYWw+c2Nhbi0mZ3Q7eHNfaGl0dXBk ZXNjPC9saXRlcmFsPi4gIChUaGUgbGF0dGVyCisgICAgIGZvcm1hdCBzaG91bGQgYmUgdXNlZCB3 aGVuIHJlY29uc3RydWN0aW5nIGRhdGEgdGhhdCBtaWdodCBwb3NzaWJseSBub3QgZml0CisgICAg IGludG8gYW4gPHN0cnVjdG5hbWU+SW5kZXhUdXBsZTwvc3RydWN0bmFtZT4uKSAgSW4gZWl0aGVy IGNhc2UsCisgICAgIG1hbmFnZW1lbnQgb2YgdGhlIGRhdGEgcmVmZXJlbmNlZCBieSB0aGUgcG9p bnRlciBpcyB0aGUgYWNjZXNzIG1ldGhvZCdzCisgICAgIHJlc3BvbnNpYmlsaXR5LiAgVGhlIGRh dGEgbXVzdCByZW1haW4gZ29vZCBhdCBsZWFzdCB1bnRpbCB0aGUgbmV4dAorICAgICA8ZnVuY3Rp b24+YW1nZXR0dXBsZTwvZnVuY3Rpb24+LCA8ZnVuY3Rpb24+YW1yZXNjYW48L2Z1bmN0aW9uPiwg b3IgPGZ1bmN0aW9uPmFtZW5kc2NhbjwvZnVuY3Rpb24+CisgICAgIGNhbGwgZm9yIHRoZSBzY2Fu LgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBUaGUgPGZ1bmN0aW9uPmFtZ2V0dHVw bGU8L2Z1bmN0aW9uPiBmdW5jdGlvbiBuZWVkIG9ubHkgYmUgcHJvdmlkZWQgaWYgdGhlIGFjY2Vz cworICAgICBtZXRob2Qgc3VwcG9ydHMgPHF1b3RlPnBsYWluPC9xdW90ZT4gaW5kZXggc2NhbnMu ICBJZiBpdCBkb2Vzbid0LCB0aGUKKyAgICAgPHN0cnVjdGZpZWxkPmFtZ2V0dHVwbGU8L3N0cnVj dGZpZWxkPiBmaWVsZCBpbiBpdHMgPHN0cnVjdG5hbWU+SW5kZXhBbVJvdXRpbmU8L3N0cnVjdG5h bWU+CisgICAgIHN0cnVjdCBtdXN0IGJlIHNldCB0byBOVUxMLgorICAgIDwvcGFyYT4KKwogICA8 cGFyYT4KICAgIEluIGFkZGl0aW9uIHRvIHN1cHBvcnRpbmcgb3JkaW5hcnkgaW5kZXggc2NhbnMs IHNvbWUgdHlwZXMgb2YgaW5kZXgKICAgIG1heSB3aXNoIHRvIHN1cHBvcnQgPGZpcnN0dGVybT5w YXJhbGxlbCBpbmRleCBzY2FuczwvZmlyc3R0ZXJtPiwgd2hpY2ggYWxsb3cKQEAgLTY4OSw3ICs4 MDgsNyBAQCBhbXJlc3RycG9zIChJbmRleFNjYW5EZXNjIHNjYW4pOwogICAgZnVuY3Rpb25zIG1h eSBiZSBpbXBsZW1lbnRlZCB0byBzdXBwb3J0IHBhcmFsbGVsIGluZGV4IHNjYW5zOgogICA8L3Bh cmE+CiAKLSAgPHBhcmE+CisgICAgPHBhcmE+CiA8cHJvZ3JhbWxpc3Rpbmc+CiBTaXplCiBhbWVz dGltYXRlcGFyYWxsZWxzY2FuICh2b2lkKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbmRp Y2VzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvaW5kaWNlcy5zZ21sCmluZGV4IDg2NTM5YTc4MWMuLmI0 MzQ5MDM5ZTcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9pbmRpY2VzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2luZGljZXMuc2dtbApAQCAtMTI5OCw2ICsxMjk4LDM0IEBAIFNFTEVDVCB0YXJn ZXQgRlJPTSB0ZXN0cyBXSEVSRSBzdWJqZWN0ID0gJ3NvbWUtc3ViamVjdCcgQU5EIHN1Y2Nlc3M7 CiAgICBhbmQgbGF0ZXIgd2lsbCByZWNvZ25pemUgc3VjaCBjYXNlcyBhbmQgYWxsb3cgaW5kZXgt b25seSBzY2FucyB0byBiZQogICAgZ2VuZXJhdGVkLCBidXQgb2xkZXIgdmVyc2lvbnMgd2lsbCBu b3QuCiAgIDwvcGFyYT4KKworICA8c2VjdDIgaWQ9ImluZGV4ZXMtaW5kZXgtc2tpcC1zY2FucyI+ CisgICAgPHRpdGxlPkluZGV4IFNraXAgU2NhbnM8L3RpdGxlPgorCisgICAgPGluZGV4dGVybSB6 b25lPSJpbmRleGVzLWluZGV4LXNraXAtc2NhbnMiPgorICAgICAgPHByaW1hcnk+aW5kZXg8L3By aW1hcnk+CisgICAgICA8c2Vjb25kYXJ5PmluZGV4LXNraXAgc2NhbnM8L3NlY29uZGFyeT4KKyAg ICA8L2luZGV4dGVybT4KKyAgICA8aW5kZXh0ZXJtIHpvbmU9ImluZGV4ZXMtaW5kZXgtc2tpcC1z Y2FucyI+CisgICAgICA8cHJpbWFyeT5pbmRleC1za2lwIHNjYW48L3ByaW1hcnk+CisgICAgPC9p bmRleHRlcm0+CisKKyAgICA8cGFyYT4KKyAgICAgV2hlbiB0aGUgcm93cyByZXRyaWV2ZWQgZnJv bSBhbiBpbmRleCBzY2FuIGFyZSB0aGVuIGRlZHVwbGljYXRlZCBieQorICAgICBlbGltaW5hdGlu ZyByb3dzIG1hdGNoaW5nIG9uIGEgcHJlZml4IG9mIGluZGV4IGtleXMgKGUuZy4gd2hlbiB1c2lu ZworICAgICA8bGl0ZXJhbD5TRUxFQ1QgRElTVElOQ1Q8L2xpdGVyYWw+KSwgdGhlIHBsYW5uZXIg d2lsbCBjb25zaWRlcgorICAgICBza2lwcGluZyBncm91cHMgb2Ygcm93cyB3aXRoIGEgbWF0Y2hp bmcga2V5IHByZWZpeC4gV2hlbiBhIHJvdyB3aXRoCisgICAgIGEgcGFydGljdWxhciBwcmVmaXgg aXMgZm91bmQsIHJlbWFpbmluZyByb3dzIHdpdGggdGhlIHNhbWUga2V5IHByZWZpeAorICAgICBh cmUgc2tpcHBlZC4gIFRoZSBsYXJnZXIgdGhlIG51bWJlciBvZiByb3dzIHdpdGggdGhlIHNhbWUg a2V5IHByZWZpeAorICAgICByb3dzIChpLmUuIHRoZSBsb3dlciB0aGUgbnVtYmVyIG9mIGRpc3Rp bmN0IGtleSBwcmVmaXhlcyBpbiB0aGUgaW5kZXgpLAorICAgICB0aGUgbW9yZSBlZmZpY2llbnQg dGhpcyBpcy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgICBBZGRpdGlvbmFsbHksIGEg c2tpcCBzY2FuIGNhbiBiZSBjb25zaWRlcmVkIGluIHJlZ3VsYXIgPGxpdGVyYWw+U0VMRUNUPC9s aXRlcmFsPgorICAgICAgcXVlcmllcy4gV2hlbiBmaWx0ZXJpbmcgb24gYW4gbm9uLWxlYWRpbmcg YXR0cmlidXRlIG9mIGFuIGluZGV4LCB0aGUgcGxhbm5lcgorICAgICAgbWF5IGNob29zZSBhIHNr aXAgc2Nhbi4KKyAgICA8L3BhcmE+CisgIDwvc2VjdDI+CiAgPC9zZWN0MT4KIAogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv YnJpbi9icmluLmMKaW5kZXggYzQ4MTgzODM4OS4uOTQ0NDA3ODFjZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW4uYwpAQCAtMTE0LDYgKzExNCw5IEBAIGJyaW5oYW5kbGVyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJYW1yb3V0aW5lLT5hbWJ1bGtkZWxldGUgPSBicmluYnVsa2RlbGV0ZTsKIAlhbXJvdXRpbmUt PmFtdmFjdXVtY2xlYW51cCA9IGJyaW52YWN1dW1jbGVhbnVwOwogCWFtcm91dGluZS0+YW1jYW5y ZXR1cm4gPSBOVUxMOworCWFtcm91dGluZS0+YW1za2lwID0gTlVMTDsKKwlhbXJvdXRpbmUtPmFt YmVnaW5za2lwc2NhbiA9IE5VTEw7CisJYW1yb3V0aW5lLT5hbWdldHNraXB0dXBsZSA9IE5VTEw7 CiAJYW1yb3V0aW5lLT5hbWNvc3Rlc3RpbWF0ZSA9IGJyaW5jb3N0ZXN0aW1hdGU7CiAJYW1yb3V0 aW5lLT5hbW9wdGlvbnMgPSBicmlub3B0aW9uczsKIAlhbXJvdXRpbmUtPmFtcHJvcGVydHkgPSBO VUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW51dGlsLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbnV0aWwuYwppbmRleCBhN2U1NWNhZjI4Li5mZmJhYzFkMWI4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnV0aWwuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbnV0aWwuYwpAQCAtNjUsNiArNjUsOSBAQCBnaW5oYW5kbGVy KFBHX0ZVTkNUSU9OX0FSR1MpCiAJYW1yb3V0aW5lLT5hbWJ1bGtkZWxldGUgPSBnaW5idWxrZGVs ZXRlOwogCWFtcm91dGluZS0+YW12YWN1dW1jbGVhbnVwID0gZ2ludmFjdXVtY2xlYW51cDsKIAlh bXJvdXRpbmUtPmFtY2FucmV0dXJuID0gTlVMTDsKKwlhbXJvdXRpbmUtPmFtc2tpcCA9IE5VTEw7 CisJYW1yb3V0aW5lLT5hbWJlZ2luc2tpcHNjYW4gPSBOVUxMOworCWFtcm91dGluZS0+YW1nZXRz a2lwdHVwbGUgPSBOVUxMOwogCWFtcm91dGluZS0+YW1jb3N0ZXN0aW1hdGUgPSBnaW5jb3N0ZXN0 aW1hdGU7CiAJYW1yb3V0aW5lLT5hbW9wdGlvbnMgPSBnaW5vcHRpb25zOwogCWFtcm91dGluZS0+ YW1wcm9wZXJ0eSA9IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMKaW5kZXggOTBjNDZlODZhMS4u MGQzNjkxMzI0YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYwpAQCAtODYsNiArODYsOSBAQCBnaXN0 aGFuZGxlcihQR19GVU5DVElPTl9BUkdTKQogCWFtcm91dGluZS0+YW1idWxrZGVsZXRlID0gZ2lz dGJ1bGtkZWxldGU7CiAJYW1yb3V0aW5lLT5hbXZhY3V1bWNsZWFudXAgPSBnaXN0dmFjdXVtY2xl YW51cDsKIAlhbXJvdXRpbmUtPmFtY2FucmV0dXJuID0gZ2lzdGNhbnJldHVybjsKKwlhbXJvdXRp bmUtPmFtc2tpcCA9IE5VTEw7CisJYW1yb3V0aW5lLT5hbWJlZ2luc2tpcHNjYW4gPSBOVUxMOwor CWFtcm91dGluZS0+YW1nZXRza2lwdHVwbGUgPSBOVUxMOwogCWFtcm91dGluZS0+YW1jb3N0ZXN0 aW1hdGUgPSBnaXN0Y29zdGVzdGltYXRlOwogCWFtcm91dGluZS0+YW1vcHRpb25zID0gZ2lzdG9w dGlvbnM7CiAJYW1yb3V0aW5lLT5hbXByb3BlcnR5ID0gZ2lzdHByb3BlcnR5OwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hh c2gvaGFzaC5jCmluZGV4IDQ4NzFiN2ZmNGQuLmE5NWE0OGQ1N2QgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2guYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9o YXNoLmMKQEAgLTgzLDYgKzgzLDkgQEAgaGFzaGhhbmRsZXIoUEdfRlVOQ1RJT05fQVJHUykKIAlh bXJvdXRpbmUtPmFtYnVsa2RlbGV0ZSA9IGhhc2hidWxrZGVsZXRlOwogCWFtcm91dGluZS0+YW12 YWN1dW1jbGVhbnVwID0gaGFzaHZhY3V1bWNsZWFudXA7CiAJYW1yb3V0aW5lLT5hbWNhbnJldHVy biA9IE5VTEw7CisJYW1yb3V0aW5lLT5hbXNraXAgPSBOVUxMOworCWFtcm91dGluZS0+YW1iZWdp bnNraXBzY2FuID0gTlVMTDsKKwlhbXJvdXRpbmUtPmFtZ2V0c2tpcHR1cGxlID0gTlVMTDsKIAlh bXJvdXRpbmUtPmFtY29zdGVzdGltYXRlID0gaGFzaGNvc3Rlc3RpbWF0ZTsKIAlhbXJvdXRpbmUt PmFtb3B0aW9ucyA9IGhhc2hvcHRpb25zOwogCWFtcm91dGluZS0+YW1wcm9wZXJ0eSA9IE5VTEw7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwppbmRleCBhNTIxMGQwYjM0Li42OTVkMmUxMjcz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKQEAgLTE0LDcgKzE0LDkgQEAKICAqCQlp bmRleF9vcGVuCQktIG9wZW4gYW4gaW5kZXggcmVsYXRpb24gYnkgcmVsYXRpb24gT0lECiAgKgkJ aW5kZXhfY2xvc2UJCS0gY2xvc2UgYW4gaW5kZXggcmVsYXRpb24KICAqCQlpbmRleF9iZWdpbnNj YW4gLSBzdGFydCBhIHNjYW4gb2YgYW4gaW5kZXggd2l0aCBhbWdldHR1cGxlCisgKgkJaW5kZXhf YmVnaW5zY2FuX3NraXAgLSBzdGFydCBhIHNjYW4gb2YgYW4gaW5kZXggd2l0aCBhbWdldHR1cGxl IGFuZCBza2lwcGluZwogICoJCWluZGV4X2JlZ2luc2Nhbl9iaXRtYXAgLSBzdGFydCBhIHNjYW4g b2YgYW4gaW5kZXggd2l0aCBhbWdldGJpdG1hcAorICoJCWluZGV4X2JlZ2luc2Nhbl9iaXRtYXBf c2tpcCAtIHN0YXJ0IGEgc2tpcCBzY2FuIG9mIGFuIGluZGV4IHdpdGggYW1nZXRiaXRtYXAKICAq CQlpbmRleF9yZXNjYW4JLSByZXN0YXJ0IGEgc2NhbiBvZiBhbiBpbmRleAogICoJCWluZGV4X2Vu ZHNjYW4JLSBlbmQgYSBzY2FuCiAgKgkJaW5kZXhfaW5zZXJ0CS0gaW5zZXJ0IGFuIGluZGV4IHR1 cGxlIGludG8gYSByZWxhdGlvbgpAQCAtMjUsMTQgKzI3LDE3IEBACiAgKgkJaW5kZXhfcGFyYWxs ZWxyZXNjYW4gIC0gKHJlKXN0YXJ0IGEgcGFyYWxsZWwgc2NhbiBvZiBhbiBpbmRleAogICoJCWlu ZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbCAtIGpvaW4gcGFyYWxsZWwgaW5kZXggc2NhbgogICoJCWlu ZGV4X2dldG5leHRfdGlkCS0gZ2V0IHRoZSBuZXh0IFRJRCBmcm9tIGEgc2NhbgorICoJCWluZGV4 X2dldG5leHRfdGlkX3NraXAJLSBnZXQgdGhlIG5leHQgVElEIGZyb20gYSBza2lwIHNjYW4KICAq CQlpbmRleF9mZXRjaF9oZWFwCQktIGdldCB0aGUgc2NhbidzIG5leHQgaGVhcCB0dXBsZQogICoJ CWluZGV4X2dldG5leHRfc2xvdAktIGdldCB0aGUgbmV4dCB0dXBsZSBmcm9tIGEgc2NhbgorICoJ CWluZGV4X2dldG5leHRfc2xvdAktIGdldCB0aGUgbmV4dCB0dXBsZSBmcm9tIGEgc2tpcCBzY2Fu CiAgKgkJaW5kZXhfZ2V0Yml0bWFwIC0gZ2V0IGFsbCB0dXBsZXMgZnJvbSBhIHNjYW4KICAqCQlp bmRleF9idWxrX2RlbGV0ZQktIGJ1bGsgZGVsZXRpb24gb2YgaW5kZXggdHVwbGVzCiAgKgkJaW5k ZXhfdmFjdXVtX2NsZWFudXAJLSBwb3N0LWRlbGV0aW9uIGNsZWFudXAgb2YgYW4gaW5kZXgKICAq CQlpbmRleF9jYW5fcmV0dXJuCS0gZG9lcyBpbmRleCBzdXBwb3J0IGluZGV4LW9ubHkgc2NhbnM/ CiAgKgkJaW5kZXhfZ2V0cHJvY2lkIC0gZ2V0IGEgc3VwcG9ydCBwcm9jZWR1cmUgT0lECiAgKgkJ aW5kZXhfZ2V0cHJvY2luZm8gLSBnZXQgYSBzdXBwb3J0IHByb2NlZHVyZSdzIGxvb2t1cCBpbmZv CisgKgkJaW5kZXhfc2tpcAkJLSBhZHZhbmNlIHBhc3QgZHVwbGljYXRlIGtleSB2YWx1ZXMgaW4g YSBzY2FuCiAgKgogICogTk9URVMKICAqCQlUaGlzIGZpbGUgY29udGFpbnMgdGhlIGluZGV4XyBy b3V0aW5lcyB3aGljaCB1c2VkCkBAIC0yMTYsNiArMjIxLDc4IEBAIGluZGV4X2JlZ2luc2NhbihS ZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJcmV0dXJuIHNjYW47CiB9CiAKK3N0YXRpYyBJbmRleFNj YW5EZXNjCitpbmRleF9iZWdpbnNjYW5faW50ZXJuYWxfc2tpcChSZWxhdGlvbiBpbmRleFJlbGF0 aW9uLAorCQkJCQkJIGludCBua2V5cywgaW50IG5vcmRlcmJ5cywgaW50IHByZWZpeCwgU25hcHNo b3Qgc25hcHNob3QsCisJCQkJCQkgUGFyYWxsZWxJbmRleFNjYW5EZXNjIHBzY2FuLCBib29sIHRl bXBfc25hcCkKK3sKKwlJbmRleFNjYW5EZXNjIHNjYW47CisKKwlSRUxBVElPTl9DSEVDS1M7CisJ Q0hFQ0tfUkVMX1BST0NFRFVSRShhbWJlZ2luc2tpcHNjYW4pOworCisJaWYgKCEoaW5kZXhSZWxh dGlvbi0+cmRfaW5kYW0tPmFtcHJlZGxvY2tzKSkKKwkJUHJlZGljYXRlTG9ja1JlbGF0aW9uKGlu ZGV4UmVsYXRpb24sIHNuYXBzaG90KTsKKworCS8qCisJICogV2UgaG9sZCBhIHJlZmVyZW5jZSBj b3VudCB0byB0aGUgcmVsY2FjaGUgZW50cnkgdGhyb3VnaG91dCB0aGUgc2Nhbi4KKwkgKi8KKwlS ZWxhdGlvbkluY3JlbWVudFJlZmVyZW5jZUNvdW50KGluZGV4UmVsYXRpb24pOworCisJLyoKKwkg KiBUZWxsIHRoZSBBTSB0byBvcGVuIGEgc2Nhbi4KKwkgKi8KKwlzY2FuID0gaW5kZXhSZWxhdGlv bi0+cmRfaW5kYW0tPmFtYmVnaW5za2lwc2NhbihpbmRleFJlbGF0aW9uLCBua2V5cywKKwkJCQkJ CQkJCQkJCW5vcmRlcmJ5cywgcHJlZml4KTsKKwkvKiBJbml0aWFsaXplIGluZm9ybWF0aW9uIGZv ciBwYXJhbGxlbCBzY2FuLiAqLworCXNjYW4tPnBhcmFsbGVsX3NjYW4gPSBwc2NhbjsKKwlzY2Fu LT54c190ZW1wX3NuYXAgPSB0ZW1wX3NuYXA7CisKKwlyZXR1cm4gc2NhbjsKK30KKworSW5kZXhT Y2FuRGVzYworaW5kZXhfYmVnaW5zY2FuX3NraXAoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAorCQkJ CVJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJCQkJU25hcHNob3Qgc25hcHNob3QsCisJCQkJaW50 IG5rZXlzLCBpbnQgbm9yZGVyYnlzLCBpbnQgcHJlZml4KQoreworCUluZGV4U2NhbkRlc2Mgc2Nh bjsKKworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW5faW50ZXJuYWxfc2tpcChpbmRleFJlbGF0aW9u LCBua2V5cywgbm9yZGVyYnlzLCBwcmVmaXgsIHNuYXBzaG90LCBOVUxMLCBmYWxzZSk7CisKKwkv KgorCSAqIFNhdmUgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGludG8gdGhlIHNjYW5kZXNjLiAgRXZl cnl0aGluZyBlbHNlIHdhcyBzZXQKKwkgKiB1cCBieSBSZWxhdGlvbkdldEluZGV4U2Nhbi4KKwkg Ki8KKwlzY2FuLT5oZWFwUmVsYXRpb24gPSBoZWFwUmVsYXRpb247CisJc2Nhbi0+eHNfc25hcHNo b3QgPSBzbmFwc2hvdDsKKworCS8qIHByZXBhcmUgdG8gZmV0Y2ggaW5kZXggbWF0Y2hlcyBmcm9t IHRhYmxlICovCisJc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4o aGVhcFJlbGF0aW9uKTsKKworCXJldHVybiBzY2FuOworfQorCitJbmRleFNjYW5EZXNjCitpbmRl eF9iZWdpbnNjYW5fYml0bWFwX3NraXAoUmVsYXRpb24gaW5kZXhSZWxhdGlvbiwKKwkJCQkJICAg U25hcHNob3Qgc25hcHNob3QsCisJCQkJCSAgIGludCBua2V5cywKKwkJCQkJICAgaW50IHByZWZp eCkKK3sKKwlJbmRleFNjYW5EZXNjIHNjYW47CisKKwlzY2FuID0gaW5kZXhfYmVnaW5zY2FuX2lu dGVybmFsX3NraXAoaW5kZXhSZWxhdGlvbiwgbmtleXMsIDAsIHByZWZpeCwgc25hcHNob3QsIE5V TEwsIGZhbHNlKTsKKworCS8qCisJICogU2F2ZSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgaW50byB0 aGUgc2NhbmRlc2MuICBFdmVyeXRoaW5nIGVsc2Ugd2FzIHNldAorCSAqIHVwIGJ5IFJlbGF0aW9u R2V0SW5kZXhTY2FuLgorCSAqLworCXNjYW4tPnhzX3NuYXBzaG90ID0gc25hcHNob3Q7CisKKwly ZXR1cm4gc2NhbjsKK30KKwogLyoKICAqIGluZGV4X2JlZ2luc2Nhbl9iaXRtYXAgLSBzdGFydCBh IHNjYW4gb2YgYW4gaW5kZXggd2l0aCBhbWdldGJpdG1hcAogICoKQEAgLTU0NCw2ICs2MjEsNDUg QEAgaW5kZXhfZ2V0bmV4dF90aWQoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIGRp cmVjdGlvbikKIAlyZXR1cm4gJnNjYW4tPnhzX2hlYXB0aWQ7CiB9CiAKK0l0ZW1Qb2ludGVyCitp bmRleF9nZXRuZXh0X3RpZF9za2lwKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBw cmVmaXhEaXIsIFNjYW5EaXJlY3Rpb24gcG9zdGZpeERpcikKK3sKKwlib29sCQlmb3VuZDsKKwor CVNDQU5fQ0hFQ0tTOworCUNIRUNLX1NDQU5fUFJPQ0VEVVJFKGFtZ2V0c2tpcHR1cGxlKTsKKwor CUFzc2VydChUcmFuc2FjdGlvbklkSXNWYWxpZChSZWNlbnRHbG9iYWxYbWluKSk7CisKKwkvKgor CSAqIFRoZSBBTSdzIGFtZ2V0dHVwbGUgcHJvYyBmaW5kcyB0aGUgbmV4dCBpbmRleCBlbnRyeSBt YXRjaGluZyB0aGUgc2NhbgorCSAqIGtleXMsIGFuZCBwdXRzIHRoZSBUSUQgaW50byBzY2FuLT54 c19oZWFwdGlkLiAgSXQgc2hvdWxkIGFsc28gc2V0CisJICogc2Nhbi0+eHNfcmVjaGVjayBhbmQg cG9zc2libHkgc2Nhbi0+eHNfaXR1cC9zY2FuLT54c19oaXR1cCwgdGhvdWdoIHdlCisJICogcGF5 IG5vIGF0dGVudGlvbiB0byB0aG9zZSBmaWVsZHMgaGVyZS4KKwkgKi8KKwlmb3VuZCA9IHNjYW4t PmluZGV4UmVsYXRpb24tPnJkX2luZGFtLT5hbWdldHNraXB0dXBsZShzY2FuLCBwcmVmaXhEaXIs IHBvc3RmaXhEaXIpOworCisJLyogUmVzZXQga2lsbCBmbGFnIGltbWVkaWF0ZWx5IGZvciBzYWZl dHkgKi8KKwlzY2FuLT5raWxsX3ByaW9yX3R1cGxlID0gZmFsc2U7CisJc2Nhbi0+eHNfaGVhcF9j b250aW51ZSA9IGZhbHNlOworCisJLyogSWYgd2UncmUgb3V0IG9mIGluZGV4IGVudHJpZXMsIHdl J3JlIGRvbmUgKi8KKwlpZiAoIWZvdW5kKQorCXsKKwkJLyogcmVsZWFzZSByZXNvdXJjZXMgKGxp a2UgYnVmZmVyIHBpbnMpIGZyb20gdGFibGUgYWNjZXNzZXMgKi8KKwkJaWYgKHNjYW4tPnhzX2hl YXBmZXRjaCkKKwkJCXRhYmxlX2luZGV4X2ZldGNoX3Jlc2V0KHNjYW4tPnhzX2hlYXBmZXRjaCk7 CisKKwkJcmV0dXJuIE5VTEw7CisJfQorCUFzc2VydChJdGVtUG9pbnRlcklzVmFsaWQoJnNjYW4t PnhzX2hlYXB0aWQpKTsKKworCXBnc3RhdF9jb3VudF9pbmRleF90dXBsZXMoc2Nhbi0+aW5kZXhS ZWxhdGlvbiwgMSk7CisKKwkvKiBSZXR1cm4gdGhlIFRJRCBvZiB0aGUgdHVwbGUgd2UgZm91bmQu ICovCisJcmV0dXJuICZzY2FuLT54c19oZWFwdGlkOworfQorCiAvKiAtLS0tLS0tLS0tLS0tLS0t CiAgKgkJaW5kZXhfZmV0Y2hfaGVhcCAtIGdldCB0aGUgc2NhbidzIG5leHQgaGVhcCB0dXBsZQog ICoKQEAgLTYzNSw2ICs3NTEsMzggQEAgaW5kZXhfZ2V0bmV4dF9zbG90KEluZGV4U2NhbkRlc2Mg c2NhbiwgU2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFR1cGxlVGFibGVTbG90ICoKIAlyZXR1cm4g ZmFsc2U7CiB9CiAKK2Jvb2wKK2luZGV4X2dldG5leHRfc2xvdF9za2lwKEluZGV4U2NhbkRlc2Mg c2NhbiwgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsIFNjYW5EaXJlY3Rpb24gcG9zdGZpeERpciwg VHVwbGVUYWJsZVNsb3QgKnNsb3QpCit7CisJZm9yICg7OykKKwl7CisJCWlmICghc2Nhbi0+eHNf aGVhcF9jb250aW51ZSkKKwkJeworCQkJSXRlbVBvaW50ZXIgdGlkOworCisJCQkvKiBUaW1lIHRv IGZldGNoIHRoZSBuZXh0IFRJRCBmcm9tIHRoZSBpbmRleCAqLworCQkJdGlkID0gaW5kZXhfZ2V0 bmV4dF90aWRfc2tpcChzY2FuLCBwcmVmaXhEaXIsIHBvc3RmaXhEaXIpOworCisJCQkvKiBJZiB3 ZSdyZSBvdXQgb2YgaW5kZXggZW50cmllcywgd2UncmUgZG9uZSAqLworCQkJaWYgKHRpZCA9PSBO VUxMKQorCQkJCWJyZWFrOworCisJCQlBc3NlcnQoSXRlbVBvaW50ZXJFcXVhbHModGlkLCAmc2Nh bi0+eHNfaGVhcHRpZCkpOworCQl9CisKKwkJLyoKKwkJICogRmV0Y2ggdGhlIG5leHQgKG9yIG9u bHkpIHZpc2libGUgaGVhcCB0dXBsZSBmb3IgdGhpcyBpbmRleCBlbnRyeS4KKwkJICogSWYgd2Ug ZG9uJ3QgZmluZCBhbnl0aGluZywgbG9vcCBhcm91bmQgYW5kIGdyYWIgdGhlIG5leHQgVElEIGZy b20KKwkJICogdGhlIGluZGV4LgorCQkgKi8KKwkJQXNzZXJ0KEl0ZW1Qb2ludGVySXNWYWxpZCgm c2Nhbi0+eHNfaGVhcHRpZCkpOworCQlpZiAoaW5kZXhfZmV0Y2hfaGVhcChzY2FuLCBzbG90KSkK KwkJCXJldHVybiB0cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKwogLyogLS0tLS0tLS0t LS0tLS0tLQogICoJCWluZGV4X2dldGJpdG1hcCAtIGdldCBhbGwgdHVwbGVzIGF0IG9uY2UgZnJv bSBhbiBpbmRleCBzY2FuCiAgKgpAQCAtNzMwLDYgKzg3OCwyMSBAQCBpbmRleF9jYW5fcmV0dXJu KFJlbGF0aW9uIGluZGV4UmVsYXRpb24sIGludCBhdHRubykKIAlyZXR1cm4gaW5kZXhSZWxhdGlv bi0+cmRfaW5kYW0tPmFtY2FucmV0dXJuKGluZGV4UmVsYXRpb24sIGF0dG5vKTsKIH0KIAorLyog LS0tLS0tLS0tLS0tLS0tLQorICoJCWluZGV4X3NraXAKKyAqCisgKgkJU2tpcCBwYXN0IGFsbCB0 dXBsZXMgd2hlcmUgdGhlIGZpcnN0ICdwcmVmaXgnIGNvbHVtbnMgaGF2ZSB0aGUKKyAqCQlzYW1l IHZhbHVlIGFzIHRoZSBsYXN0IHR1cGxlIHJldHVybmVkIGluIHRoZSBjdXJyZW50IHNjYW4uCisg KiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK2Jvb2wKK2luZGV4X3NraXAoSW5kZXhTY2FuRGVzYyBz Y2FuLCBTY2FuRGlyZWN0aW9uIHByZWZpeERpciwgU2NhbkRpcmVjdGlvbiBwb3N0Zml4RGlyKQor eworCVNDQU5fQ0hFQ0tTOworCisJcmV0dXJuIHNjYW4tPmluZGV4UmVsYXRpb24tPnJkX2luZGFt LT5hbXNraXAoc2NhbiwgcHJlZml4RGlyLCBwb3N0Zml4RGlyKTsKK30KKwogLyogLS0tLS0tLS0t LS0tLS0tLQogICoJCWluZGV4X2dldHByb2NpZAogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL01ha2Vm aWxlCmluZGV4IGQ2OTgwOGU3OGMuLmRhOTZhYzAwYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9N YWtlZmlsZQpAQCAtMTksNiArMTksNyBAQCBPQkpTID0gXAogCW5idHBhZ2UubyBcCiAJbmJ0cmVl Lm8gXAogCW5idHNlYXJjaC5vIFwKKwluYnRza2lwLm8gXAogCW5idHNvcnQubyBcCiAJbmJ0c3Bs aXRsb2MubyBcCiAJbmJ0dXRpbHMubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idGluc2VydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRpbnNlcnQu YwppbmRleCAwMGRmMGUxYjg4Li43NDljNmUzNzQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idGluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0aW5zZXJ0LmMKQEAgLTg5LDcgKzg5LDcgQEAgX2J0X2RvaW5zZXJ0KFJlbGF0aW9uIHJlbCwg SW5kZXhUdXBsZSBpdHVwLAogCWJvb2wJCWNoZWNraW5ndW5pcXVlID0gKGNoZWNrVW5pcXVlICE9 IFVOSVFVRV9DSEVDS19OTyk7CiAKIAkvKiB3ZSBuZWVkIGFuIGluc2VydGlvbiBzY2FuIGtleSB0 byBkbyBvdXIgc2VhcmNoLCBzbyBidWlsZCBvbmUgKi8KLQlpdHVwX2tleSA9IF9idF9ta3NjYW5r ZXkocmVsLCBpdHVwKTsKKwlpdHVwX2tleSA9IF9idF9ta3NjYW5rZXkocmVsLCBpdHVwLCBOVUxM KTsKIAogCWlmIChjaGVja2luZ3VuaXF1ZSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHBhZ2UuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFn ZS5jCmluZGV4IDM5YjhmMTdmNGIuLjRkNDhiOGJkNjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0cGFnZS5jCkBAIC0xNjM4LDcgKzE2MzgsNyBAQCBfYnRfcGFnZWRlbChSZWxhdGlvbiByZWws IEJ1ZmZlciBidWYpCiAJCQkJfQogCiAJCQkJLyogd2UgbmVlZCBhbiBpbnNlcnRpb24gc2NhbiBr ZXkgZm9yIHRoZSBzZWFyY2gsIHNvIGJ1aWxkIG9uZSAqLwotCQkJCWl0dXBfa2V5ID0gX2J0X21r c2NhbmtleShyZWwsIHRhcmdldGtleSk7CisJCQkJaXR1cF9rZXkgPSBfYnRfbWtzY2Fua2V5KHJl bCwgdGFyZ2V0a2V5LCBOVUxMKTsKIAkJCQkvKiBmaW5kIHRoZSBsZWZ0bW9zdCBsZWFmIHBhZ2Ug d2l0aCBtYXRjaGluZyBwaXZvdC9oaWdoIGtleSAqLwogCQkJCWl0dXBfa2V5LT5waXZvdHNlYXJj aCA9IHRydWU7CiAJCQkJc3RhY2sgPSBfYnRfc2VhcmNoKHJlbCwgaXR1cF9rZXksICZsYnVmLCBC VF9SRUFELCBOVUxMKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 cmVlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jCmluZGV4IDRiYjE2Mjk3 YzMuLjJiOWUwNDVhZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYwpAQCAtMTM2LDE0 ICsxMzYsMTcgQEAgYnRoYW5kbGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJYW1yb3V0aW5lLT5hbWJ1 bGtkZWxldGUgPSBidGJ1bGtkZWxldGU7CiAJYW1yb3V0aW5lLT5hbXZhY3V1bWNsZWFudXAgPSBi dHZhY3V1bWNsZWFudXA7CiAJYW1yb3V0aW5lLT5hbWNhbnJldHVybiA9IGJ0Y2FucmV0dXJuOwor CWFtcm91dGluZS0+YW1za2lwID0gYnRza2lwOwogCWFtcm91dGluZS0+YW1jb3N0ZXN0aW1hdGUg PSBidGNvc3Rlc3RpbWF0ZTsKIAlhbXJvdXRpbmUtPmFtb3B0aW9ucyA9IGJ0b3B0aW9uczsKIAlh bXJvdXRpbmUtPmFtcHJvcGVydHkgPSBidHByb3BlcnR5OwogCWFtcm91dGluZS0+YW1idWlsZHBo YXNlbmFtZSA9IGJ0YnVpbGRwaGFzZW5hbWU7CiAJYW1yb3V0aW5lLT5hbXZhbGlkYXRlID0gYnR2 YWxpZGF0ZTsKIAlhbXJvdXRpbmUtPmFtYmVnaW5zY2FuID0gYnRiZWdpbnNjYW47CisJYW1yb3V0 aW5lLT5hbWJlZ2luc2tpcHNjYW4gPSBidGJlZ2luc2Nhbl9za2lwOwogCWFtcm91dGluZS0+YW1y ZXNjYW4gPSBidHJlc2NhbjsKIAlhbXJvdXRpbmUtPmFtZ2V0dHVwbGUgPSBidGdldHR1cGxlOwor CWFtcm91dGluZS0+YW1nZXRza2lwdHVwbGUgPSBidGdldHR1cGxlX3NraXA7CiAJYW1yb3V0aW5l LT5hbWdldGJpdG1hcCA9IGJ0Z2V0Yml0bWFwOwogCWFtcm91dGluZS0+YW1lbmRzY2FuID0gYnRl bmRzY2FuOwogCWFtcm91dGluZS0+YW1tYXJrcG9zID0gYnRtYXJrcG9zOwpAQCAtMjE5LDYgKzIy MiwxNSBAQCBidGluc2VydChSZWxhdGlvbiByZWwsIERhdHVtICp2YWx1ZXMsIGJvb2wgKmlzbnVs bCwKICAqLwogYm9vbAogYnRnZXR0dXBsZShJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rp b24gZGlyKQoreworCXJldHVybiBidGdldHR1cGxlX3NraXAoc2NhbiwgZGlyLCBkaXIpOworfQor CisvKgorICoJYnRnZXR0dXBsZSgpIC0tIEdldCB0aGUgbmV4dCB0dXBsZSBpbiB0aGUgc2Nhbi4K KyAqLworYm9vbAorYnRnZXR0dXBsZV9za2lwKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVj dGlvbiBwcmVmaXhEaXIsIFNjYW5EaXJlY3Rpb24gcG9zdGZpeERpcikKIHsKIAlCVFNjYW5PcGFx dWUgc28gPSAoQlRTY2FuT3BhcXVlKSBzY2FuLT5vcGFxdWU7CiAJYm9vbAkJcmVzOwpAQCAtMjM3 LDcgKzI0OSw3IEBAIGJ0Z2V0dHVwbGUoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9u IGRpcikKIAkJaWYgKHNvLT5udW1BcnJheUtleXMgPCAwKQogCQkJcmV0dXJuIGZhbHNlOwogCi0J CV9idF9zdGFydF9hcnJheV9rZXlzKHNjYW4sIGRpcik7CisJCV9idF9zdGFydF9hcnJheV9rZXlz KHNjYW4sIHByZWZpeERpcik7CiAJfQogCiAJLyogVGhpcyBsb29wIGhhbmRsZXMgYWR2YW5jaW5n IHRvIHRoZSBuZXh0IGFycmF5IGVsZW1lbnRzLCBpZiBhbnkgKi8KQEAgLTI0OSw3ICsyNjEsNyBA QCBidGdldHR1cGxlKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIpCiAJCSAq IF9idF9maXJzdCgpIHRvIGdldCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgc2Nhbi4KIAkJICovCiAJ CWlmICghQlRTY2FuUG9zSXNWYWxpZChzby0+Y3VyclBvcykpCi0JCQlyZXMgPSBfYnRfZmlyc3Qo c2NhbiwgZGlyKTsKKwkJCXJlcyA9IF9idF9maXJzdChzY2FuLCBwcmVmaXhEaXIsIHBvc3RmaXhE aXIpOwogCQllbHNlCiAJCXsKIAkJCS8qCkBAIC0yNzYsMTQgKzI4OCwxNCBAQCBidGdldHR1cGxl KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIpCiAJCQkvKgogCQkJICogTm93 IGNvbnRpbnVlIHRoZSBzY2FuLgogCQkJICovCi0JCQlyZXMgPSBfYnRfbmV4dChzY2FuLCBkaXIp OworCQkJcmVzID0gX2J0X25leHQoc2NhbiwgcHJlZml4RGlyLCBwb3N0Zml4RGlyKTsKIAkJfQog CiAJCS8qIElmIHdlIGhhdmUgYSB0dXBsZSwgcmV0dXJuIGl0IC4uLiAqLwogCQlpZiAocmVzKQog CQkJYnJlYWs7CiAJCS8qIC4uLiBvdGhlcndpc2Ugc2VlIGlmIHdlIGhhdmUgbW9yZSBhcnJheSBr ZXlzIHRvIGRlYWwgd2l0aCAqLwotCX0gd2hpbGUgKHNvLT5udW1BcnJheUtleXMgJiYgX2J0X2Fk dmFuY2VfYXJyYXlfa2V5cyhzY2FuLCBkaXIpKTsKKwl9IHdoaWxlIChzby0+bnVtQXJyYXlLZXlz ICYmIF9idF9hZHZhbmNlX2FycmF5X2tleXMoc2NhbiwgcHJlZml4RGlyKSk7CiAKIAlyZXR1cm4g cmVzOwogfQpAQCAtMzE0LDcgKzMyNiw3IEBAIGJ0Z2V0Yml0bWFwKEluZGV4U2NhbkRlc2Mgc2Nh biwgVElEQml0bWFwICp0Ym0pCiAJZG8KIAl7CiAJCS8qIEZldGNoIHRoZSBmaXJzdCBwYWdlICYg dHVwbGUgKi8KLQkJaWYgKF9idF9maXJzdChzY2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbikpCisJ CWlmIChfYnRfZmlyc3Qoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIEZvcndhcmRTY2FuRGly ZWN0aW9uKSkKIAkJewogCQkJLyogU2F2ZSB0dXBsZSBJRCwgYW5kIGNvbnRpbnVlIHNjYW5uaW5n ICovCiAJCQloZWFwVGlkID0gJnNjYW4tPnhzX2hlYXB0aWQ7CkBAIC0zMzAsNyArMzQyLDcgQEAg YnRnZXRiaXRtYXAoSW5kZXhTY2FuRGVzYyBzY2FuLCBUSURCaXRtYXAgKnRibSkKIAkJCQlpZiAo Kytzby0+Y3VyclBvcy5pdGVtSW5kZXggPiBzby0+Y3VyclBvcy5sYXN0SXRlbSkKIAkJCQl7CiAJ CQkJCS8qIGxldCBfYnRfbmV4dCBkbyB0aGUgaGVhdnkgbGlmdGluZyAqLwotCQkJCQlpZiAoIV9i dF9uZXh0KHNjYW4sIEZvcndhcmRTY2FuRGlyZWN0aW9uKSkKKwkJCQkJaWYgKCFfYnRfbmV4dChz Y2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24pKQogCQkJCQkJ YnJlYWs7CiAJCQkJfQogCkBAIC0zNTEsNiArMzYzLDE2IEBAIGJ0Z2V0Yml0bWFwKEluZGV4U2Nh bkRlc2Mgc2NhbiwgVElEQml0bWFwICp0Ym0pCiAgKi8KIEluZGV4U2NhbkRlc2MKIGJ0YmVnaW5z Y2FuKFJlbGF0aW9uIHJlbCwgaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzKQoreworCXJldHVybiBi dGJlZ2luc2Nhbl9za2lwKHJlbCwgbmtleXMsIG5vcmRlcmJ5cywgLTEpOworfQorCisKKy8qCisg KglidGJlZ2luc2NhbigpIC0tIHN0YXJ0IGEgc2NhbiBvbiBhIGJ0cmVlIGluZGV4CisgKi8KK0lu ZGV4U2NhbkRlc2MKK2J0YmVnaW5zY2FuX3NraXAoUmVsYXRpb24gcmVsLCBpbnQgbmtleXMsIGlu dCBub3JkZXJieXMsIGludCBza2lwUHJlZml4KQogewogCUluZGV4U2NhbkRlc2Mgc2NhbjsKIAlC VFNjYW5PcGFxdWUgc287CkBAIC0zODUsMTAgKzQwNywxOCBAQCBidGJlZ2luc2NhbihSZWxhdGlv biByZWwsIGludCBua2V5cywgaW50IG5vcmRlcmJ5cykKIAkgKi8KIAlzby0+Y3VyclR1cGxlcyA9 IHNvLT5tYXJrVHVwbGVzID0gTlVMTDsKIAorCXNvLT5za2lwRGF0YSA9IE5VTEw7CisKIAlzY2Fu LT54c19pdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKIAogCXNjYW4tPm9wYXF1ZSA9 IHNvOwogCisJaWYgKHNraXBQcmVmaXggPiAwKQorCXsKKwkJc28tPnNraXBEYXRhID0gKEJUU2tp cCkgcGFsbG9jMChzaXplb2YoQlRTa2lwRGF0YSkpOworCQlzby0+c2tpcERhdGEtPnByZWZpeCA9 IHNraXBQcmVmaXg7CisJfQorCiAJcmV0dXJuIHNjYW47CiB9CiAKQEAgLTQ1Miw2ICs0ODIsMTUg QEAgYnRyZXNjYW4oSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuS2V5IHNjYW5rZXksIGludCBuc2Nh bmtleXMsCiAJX2J0X3ByZXByb2Nlc3NfYXJyYXlfa2V5cyhzY2FuKTsKIH0KIAorLyoKKyAqIGJ0 c2tpcCgpIC0tIHNraXAgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBrZXkgcHJlZml4Cisg Ki8KK2Jvb2wKK2J0c2tpcChJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gcHJlZml4 RGlyLCBTY2FuRGlyZWN0aW9uIHBvc3RmaXhEaXIpCit7CisJcmV0dXJuIF9idF9za2lwKHNjYW4s IHByZWZpeERpciwgcG9zdGZpeERpcik7Cit9CisKIC8qCiAgKglidGVuZHNjYW4oKSAtLSBjbG9z ZSBkb3duIGEgc2NhbgogICovCkBAIC00ODUsNiArNTI0LDggQEAgYnRlbmRzY2FuKEluZGV4U2Nh bkRlc2Mgc2NhbikKIAlpZiAoc28tPmN1cnJUdXBsZXMgIT0gTlVMTCkKIAkJcGZyZWUoc28tPmN1 cnJUdXBsZXMpOwogCS8qIHNvLT5tYXJrVHVwbGVzIHNob3VsZCBub3QgYmUgcGZyZWUnZCwgc2Vl IGJ0cmVzY2FuICovCisJaWYgKF9idF9za2lwX2VuYWJsZWQoc28pKQorCQlwZnJlZShzby0+c2tp cERhdGEpOwogCXBmcmVlKHNvKTsKIH0KIApAQCAtNTY4LDYgKzYwOSw5IEBAIGJ0cmVzdHJwb3Mo SW5kZXhTY2FuRGVzYyBzY2FuKQogCQkJaWYgKHNvLT5jdXJyVHVwbGVzKQogCQkJCW1lbWNweShz by0+Y3VyclR1cGxlcywgc28tPm1hcmtUdXBsZXMsCiAJCQkJCSAgIHNvLT5tYXJrUG9zLm5leHRU dXBsZU9mZnNldCk7CisJCQlpZiAoc28tPnNraXBEYXRhKQorCQkJCW1lbWNweSgmc28tPnNraXBE YXRhLT5jdXJQb3MsICZzby0+c2tpcERhdGEtPm1hcmtQb3MsCisJCQkJCSAgIHNpemVvZihCVFNr aXBQb3NEYXRhKSk7CiAJCX0KIAkJZWxzZQogCQkJQlRTY2FuUG9zSW52YWxpZGF0ZShzby0+Y3Vy clBvcyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNlYXJjaC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzZWFyY2guYwppbmRleCA4ZmY0OWNlNmQ2 Li5mMGMwNDJjOWJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNl YXJjaC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c2VhcmNoLmMKQEAgLTE3 LDE5ICsxNywxNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL25idHJlZS5oIgogI2luY2x1ZGUgImFj Y2Vzcy9yZWxzY2FuLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcmVk aWNhdGUuaCIKKyNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2Fj aGUuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKIAogCi1zdGF0aWMgdm9pZCBfYnRfZHJvcF9s b2NrX2FuZF9tYXliZV9waW4oSW5kZXhTY2FuRGVzYyBzY2FuLCBCVFNjYW5Qb3Mgc3ApOwotc3Rh dGljIE9mZnNldE51bWJlciBfYnRfYmluc3JjaChSZWxhdGlvbiByZWwsIEJUU2Nhbkluc2VydCBr ZXksIEJ1ZmZlciBidWYpOwogc3RhdGljIGludAlfYnRfYmluc3JjaF9wb3N0aW5nKEJUU2Nhbklu c2VydCBrZXksIFBhZ2UgcGFnZSwKIAkJCQkJCQkJT2Zmc2V0TnVtYmVyIG9mZm51bSk7Ci1zdGF0 aWMgYm9vbCBfYnRfcmVhZHBhZ2UoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIGRp ciwKLQkJCQkJCSBPZmZzZXROdW1iZXIgb2ZmbnVtKTsKIHN0YXRpYyB2b2lkIF9idF9zYXZlaXRl bShCVFNjYW5PcGFxdWUgc28sIGludCBpdGVtSW5kZXgsCiAJCQkJCQkgT2Zmc2V0TnVtYmVyIG9m Zm51bSwgSW5kZXhUdXBsZSBpdHVwKTsKIHN0YXRpYyBpbnQJX2J0X3NldHVwcG9zdGluZ2l0ZW1z KEJUU2Nhbk9wYXF1ZSBzbywgaW50IGl0ZW1JbmRleCwKQEAgLTM4LDE0ICszNiwxMiBAQCBzdGF0 aWMgaW50CV9idF9zZXR1cHBvc3RpbmdpdGVtcyhCVFNjYW5PcGFxdWUgc28sIGludCBpdGVtSW5k ZXgsCiBzdGF0aWMgaW5saW5lIHZvaWQgX2J0X3NhdmVwb3N0aW5naXRlbShCVFNjYW5PcGFxdWUg c28sIGludCBpdGVtSW5kZXgsCiAJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgb2ZmbnVtLAogCQkJ CQkJCQkJICAgSXRlbVBvaW50ZXIgaGVhcFRpZCwgaW50IHR1cGxlT2Zmc2V0KTsKLXN0YXRpYyBi b29sIF9idF9zdGVwcGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyKTsK LXN0YXRpYyBib29sIF9idF9yZWFkbmV4dHBhZ2UoSW5kZXhTY2FuRGVzYyBzY2FuLCBCbG9ja051 bWJlciBibGtubywgU2NhbkRpcmVjdGlvbiBkaXIpOwogc3RhdGljIGJvb2wgX2J0X3BhcmFsbGVs X3JlYWRwYWdlKEluZGV4U2NhbkRlc2Mgc2NhbiwgQmxvY2tOdW1iZXIgYmxrbm8sCiAJCQkJCQkJ CSAgU2NhbkRpcmVjdGlvbiBkaXIpOwotc3RhdGljIEJ1ZmZlciBfYnRfd2Fsa19sZWZ0KFJlbGF0 aW9uIHJlbCwgQnVmZmVyIGJ1ZiwgU25hcHNob3Qgc25hcHNob3QpOwogc3RhdGljIGJvb2wgX2J0 X2VuZHBvaW50KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIpOwotc3RhdGlj IGlubGluZSB2b2lkIF9idF9pbml0aWFsaXplX21vcmVfZGF0YShCVFNjYW5PcGFxdWUgc28sIFNj YW5EaXJlY3Rpb24gZGlyKTsKLQorc3RhdGljIGlubGluZSBib29sIF9idF9jaGVja2tleXNfZXh0 ZW5kZWQoSW5kZXhTY2FuRGVzYyBzY2FuLCBJbmRleFR1cGxlIHR1cGxlLCBpbnQgdHVwbmF0dHMs CisJCQkJCQkJCQkJICBTY2FuRGlyZWN0aW9uIGRpciwgYm9vbCBpc1JlZ3VsYXJNb2RlLAorCQkJ CQkJCQkJCSAgYm9vbCAqY29udGludWVzY2FuLCBpbnQgKnByZWZpeHNraXBpbmRleCk7CiAKIC8q CiAgKglfYnRfZHJvcF9sb2NrX2FuZF9tYXliZV9waW4oKQpAQCAtNjEsNyArNTcsNyBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgX2J0X2luaXRpYWxpemVfbW9yZV9kYXRhKEJUU2Nhbk9wYXF1ZSBzbywg U2NhbkRpcmVjdGlvbiBkaXIpOwogICogd2lsbCByZW1haW4gaW4gc2hhcmVkIG1lbW9yeSBmb3Ig YXMgbG9uZyBhcyBpdCB0YWtlcyB0byBzY2FuIHRoZSBpbmRleAogICogYnVmZmVyIHBhZ2UuCiAg Ki8KLXN0YXRpYyB2b2lkCit2b2lkCiBfYnRfZHJvcF9sb2NrX2FuZF9tYXliZV9waW4oSW5kZXhT Y2FuRGVzYyBzY2FuLCBCVFNjYW5Qb3Mgc3ApCiB7CiAJTG9ja0J1ZmZlcihzcC0+YnVmLCBCVUZG RVJfTE9DS19VTkxPQ0spOwpAQCAtMzQ0LDcgKzM0MCw3IEBAIF9idF9tb3ZlcmlnaHQoUmVsYXRp b24gcmVsLAogICogdGhlIGdpdmVuIHBhZ2UuICBfYnRfYmluc3JjaCgpIGhhcyBubyBsb2NrIG9y IHJlZmNvdW50IHNpZGUgZWZmZWN0cwogICogb24gdGhlIGJ1ZmZlci4KICAqLwotc3RhdGljIE9m ZnNldE51bWJlcgorT2Zmc2V0TnVtYmVyCiBfYnRfYmluc3JjaChSZWxhdGlvbiByZWwsCiAJCQlC VFNjYW5JbnNlcnQga2V5LAogCQkJQnVmZmVyIGJ1ZikKQEAgLTg1MCwyNSArODQ2LDIzIEBAIF9i dF9jb21wYXJlKFJlbGF0aW9uIHJlbCwKICAqIGluIGxvY2F0aW5nIHRoZSBzY2FuIHN0YXJ0IHBv c2l0aW9uLgogICovCiBib29sCi1fYnRfZmlyc3QoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGly ZWN0aW9uIGRpcikKK19idF9maXJzdChJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24g cHJlZml4RGlyLCBTY2FuRGlyZWN0aW9uIHBvc3RmaXhEaXIpCiB7CiAJUmVsYXRpb24JcmVsID0g c2Nhbi0+aW5kZXhSZWxhdGlvbjsKIAlCVFNjYW5PcGFxdWUgc28gPSAoQlRTY2FuT3BhcXVlKSBz Y2FuLT5vcGFxdWU7CiAJQnVmZmVyCQlidWY7CiAJQlRTdGFjawkJc3RhY2s7CiAJT2Zmc2V0TnVt YmVyIG9mZm51bTsKLQlTdHJhdGVneU51bWJlciBzdHJhdDsKLQlib29sCQluZXh0a2V5OwogCWJv b2wJCWdvYmFjazsKIAlCVFNjYW5JbnNlcnREYXRhIGluc2tleTsKIAlTY2FuS2V5CQlzdGFydEtl eXNbSU5ERVhfTUFYX0tFWVNdOwogCVNjYW5LZXlEYXRhIG5vdG51bGxrZXlzW0lOREVYX01BWF9L RVlTXTsKIAlpbnQJCQlrZXlzQ291bnQgPSAwOwotCWludAkJCWk7CiAJYm9vbAkJc3RhdHVzID0g dHJ1ZTsKIAlTdHJhdGVneU51bWJlciBzdHJhdF90b3RhbDsKIAlCVFNjYW5Qb3NJdGVtICpjdXJy SXRlbTsKIAlCbG9ja051bWJlciBibGtubzsKKwlJbmRleFR1cGxlIGl0dXA7CiAKIAlBc3NlcnQo IUJUU2NhblBvc0lzVmFsaWQoc28tPmN1cnJQb3MpKTsKIApAQCAtOTA1LDE4NCArODk5LDEzIEBA IF9idF9maXJzdChJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyKQogCQl9CiAJ CWVsc2UgaWYgKGJsa25vICE9IEludmFsaWRCbG9ja051bWJlcikKIAkJewotCQkJaWYgKCFfYnRf cGFyYWxsZWxfcmVhZHBhZ2Uoc2NhbiwgYmxrbm8sIGRpcikpCisJCQlpZiAoIV9idF9wYXJhbGxl bF9yZWFkcGFnZShzY2FuLCBibGtubywgcHJlZml4RGlyKSkKIAkJCQlyZXR1cm4gZmFsc2U7CiAJ CQlnb3RvIHJlYWRjb21wbGV0ZTsKIAkJfQogCX0KIAotCS8qLS0tLS0tLS0tLQotCSAqIEV4YW1p bmUgdGhlIHNjYW4ga2V5cyB0byBkaXNjb3ZlciB3aGVyZSB3ZSBuZWVkIHRvIHN0YXJ0IHRoZSBz Y2FuLgotCSAqCi0JICogV2Ugd2FudCB0byBpZGVudGlmeSB0aGUga2V5cyB0aGF0IGNhbiBiZSB1 c2VkIGFzIHN0YXJ0aW5nIGJvdW5kYXJpZXM7Ci0JICogdGhlc2UgYXJlID0sID4sIG9yID49IGtl eXMgZm9yIGEgZm9yd2FyZCBzY2FuIG9yID0sIDwsIDw9IGtleXMgZm9yCi0JICogYSBiYWNrd2Fy ZHMgc2Nhbi4gIFdlIGNhbiB1c2Uga2V5cyBmb3IgbXVsdGlwbGUgYXR0cmlidXRlcyBzbyBsb25n IGFzCi0JICogdGhlIHByaW9yIGF0dHJpYnV0ZXMgaGFkIG9ubHkgPSwgPj0gKHJlc3AuID0sIDw9 KSBrZXlzLiAgT25jZSB3ZSBhY2NlcHQKLQkgKiBhID4gb3IgPCBib3VuZGFyeSBvciBmaW5kIGFu IGF0dHJpYnV0ZSB3aXRoIG5vIGJvdW5kYXJ5ICh3aGljaCBjYW4gYmUKLQkgKiB0aG91Z2h0IG9m IGFzIHRoZSBzYW1lIGFzICI+IC1pbmZpbml0eSIpLCB3ZSBjYW4ndCB1c2Uga2V5cyBmb3IgYW55 Ci0JICogYXR0cmlidXRlcyB0byBpdHMgcmlnaHQsIGJlY2F1c2UgaXQgd291bGQgYnJlYWsgb3Vy IHNpbXBsaXN0aWMgbm90aW9uCi0JICogb2Ygd2hhdCBpbml0aWFsIHBvc2l0aW9uaW5nIHN0cmF0 ZWd5IHRvIHVzZS4KLQkgKgotCSAqIFdoZW4gdGhlIHNjYW4ga2V5cyBpbmNsdWRlIGNyb3NzLXR5 cGUgb3BlcmF0b3JzLCBfYnRfcHJlcHJvY2Vzc19rZXlzCi0JICogbWF5IG5vdCBiZSBhYmxlIHRv IGVsaW1pbmF0ZSByZWR1bmRhbnQga2V5czsgaW4gc3VjaCBjYXNlcyB3ZSB3aWxsCi0JICogYXJi aXRyYXJpbHkgcGljayBhIHVzYWJsZSBvbmUgZm9yIGVhY2ggYXR0cmlidXRlLiAgVGhpcyBpcyBj b3JyZWN0Ci0JICogYnV0IHBvc3NpYmx5IG5vdCBvcHRpbWFsIGJlaGF2aW9yLiAgKEZvciBleGFt cGxlLCB3aXRoIGtleXMgbGlrZQotCSAqICJ4ID49IDQgQU5EIHggPj0gNSIgd2Ugd291bGQgZWxl Y3QgdG8gc2NhbiBzdGFydGluZyBhdCB4PTQgd2hlbgotCSAqIHg9NSB3b3VsZCBiZSBtb3JlIGVm ZmljaWVudC4pICBTaW5jZSB0aGUgc2l0dWF0aW9uIG9ubHkgYXJpc2VzIGdpdmVuCi0JICogYSBw b29ybHktd29yZGVkIHF1ZXJ5IHBsdXMgYW4gaW5jb21wbGV0ZSBvcGZhbWlseSwgbGl2ZSB3aXRo IGl0LgotCSAqCi0JICogV2hlbiBib3RoIGVxdWFsaXR5IGFuZCBpbmVxdWFsaXR5IGtleXMgYXBw ZWFyIGZvciBhIHNpbmdsZSBhdHRyaWJ1dGUKLQkgKiAoYWdhaW4sIG9ubHkgcG9zc2libGUgd2hl biBjcm9zcy10eXBlIG9wZXJhdG9ycyBhcHBlYXIpLCB3ZSAqbXVzdCoKLQkgKiBzZWxlY3Qgb25l IG9mIHRoZSBlcXVhbGl0eSBrZXlzIGZvciB0aGUgc3RhcnRpbmcgcG9pbnQsIGJlY2F1c2UKLQkg KiBfYnRfY2hlY2trZXlzKCkgd2lsbCBzdG9wIHRoZSBzY2FuIGFzIHNvb24gYXMgYW4gZXF1YWxp dHkgcXVhbCBmYWlscy4KLQkgKiBGb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBrZXlzIGxpa2UgIngg Pj0gNCBBTkQgeCA9IDEwIiBhbmQgd2UgZWxlY3QgdG8KLQkgKiBzdGFydCBhdCB4PTQsIHdlIHdp bGwgZmFpbCBhbmQgc3RvcCBiZWZvcmUgcmVhY2hpbmcgeD0xMC4gIElmIG11bHRpcGxlCi0JICog ZXF1YWxpdHkgcXVhbHMgc3Vydml2ZSBwcmVwcm9jZXNzaW5nLCBob3dldmVyLCBpdCBkb2Vzbid0 IG1hdHRlciB3aGljaAotCSAqIG9uZSB3ZSB1c2UgLS0tIGJ5IGRlZmluaXRpb24sIHRoZXkgYXJl IGVpdGhlciByZWR1bmRhbnQgb3IKLQkgKiBjb250cmFkaWN0b3J5LgotCSAqCi0JICogQW55IHJl Z3VsYXIgKG5vdCBTS19TRUFSQ0hOVUxMKSBrZXkgaW1wbGllcyBhIE5PVCBOVUxMIHF1YWxpZmll ci4KLQkgKiBJZiB0aGUgaW5kZXggc3RvcmVzIG51bGxzIGF0IHRoZSBlbmQgb2YgdGhlIGluZGV4 IHdlJ2xsIGJlIHN0YXJ0aW5nCi0JICogZnJvbSwgYW5kIHdlIGhhdmUgbm8gYm91bmRhcnkga2V5 IGZvciB0aGUgY29sdW1uICh3aGljaCBtZWFucyB0aGUga2V5Ci0JICogd2UgZGVkdWNlZCBOT1Qg TlVMTCBmcm9tIGlzIGFuIGluZXF1YWxpdHkga2V5IHRoYXQgY29uc3RyYWlucyB0aGUgb3RoZXIK LQkgKiBlbmQgb2YgdGhlIGluZGV4KSwgdGhlbiB3ZSBjb25zIHVwIGFuIGV4cGxpY2l0IFNLX1NF QVJDSE5PVE5VTEwga2V5IHRvCi0JICogdXNlIGFzIGEgYm91bmRhcnkga2V5LiAgSWYgd2UgZGlk bid0IGRvIHRoaXMsIHdlIG1pZ2h0IGZpbmQgb3Vyc2VsdmVzCi0JICogdHJhdmVyc2luZyBhIGxv dCBvZiBudWxsIGVudHJpZXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzY2FuLgotCSAqCi0JICogSW4g dGhpcyBsb29wLCByb3ctY29tcGFyaXNvbiBrZXlzIGFyZSB0cmVhdGVkIHRoZSBzYW1lIGFzIGtl eXMgb24gdGhlaXIKLQkgKiBmaXJzdCAobGVmdG1vc3QpIGNvbHVtbnMuICBXZSdsbCBhZGQgb24g bG93ZXItb3JkZXIgY29sdW1ucyBvZiB0aGUgcm93Ci0JICogY29tcGFyaXNvbiBiZWxvdywgaWYg cG9zc2libGUuCi0JICoKLQkgKiBUaGUgc2VsZWN0ZWQgc2NhbiBrZXlzIChhdCBtb3N0IG9uZSBw ZXIgaW5kZXggY29sdW1uKSBhcmUgcmVtZW1iZXJlZCBieQotCSAqIHN0b3JpbmcgdGhlaXIgYWRk cmVzc2VzIGludG8gdGhlIGxvY2FsIHN0YXJ0S2V5c1tdIGFycmF5LgotCSAqLS0tLS0tLS0tLQot CSAqLwotCXN0cmF0X3RvdGFsID0gQlRFcXVhbFN0cmF0ZWd5TnVtYmVyOwotCWlmIChzby0+bnVt YmVyT2ZLZXlzID4gMCkKLQl7Ci0JCUF0dHJOdW1iZXIJY3VyYXR0cjsKLQkJU2NhbktleQkJY2hv c2VuOwotCQlTY2FuS2V5CQlpbXBsaWVzTk47Ci0JCVNjYW5LZXkJCWN1cjsKLQotCQkvKgotCQkg KiBjaG9zZW4gaXMgdGhlIHNvLWZhci1jaG9zZW4ga2V5IGZvciB0aGUgY3VycmVudCBhdHRyaWJ1 dGUsIGlmIGFueS4KLQkJICogV2UgZG9uJ3QgY2FzdCB0aGUgZGVjaXNpb24gaW4gc3RvbmUgdW50 aWwgd2UgcmVhY2gga2V5cyBmb3IgdGhlCi0JCSAqIG5leHQgYXR0cmlidXRlLgotCQkgKi8KLQkJ Y3VyYXR0ciA9IDE7Ci0JCWNob3NlbiA9IE5VTEw7Ci0JCS8qIEFsc28gcmVtZW1iZXIgYW55IHNj YW5rZXkgdGhhdCBpbXBsaWVzIGEgTk9UIE5VTEwgY29uc3RyYWludCAqLwotCQlpbXBsaWVzTk4g PSBOVUxMOwotCi0JCS8qCi0JCSAqIExvb3AgaXRlcmF0ZXMgZnJvbSAwIHRvIG51bWJlck9mS2V5 cyBpbmNsdXNpdmU7IHdlIHVzZSB0aGUgbGFzdAotCQkgKiBwYXNzIHRvIGhhbmRsZSBhZnRlci1s YXN0LWtleSBwcm9jZXNzaW5nLiAgQWN0dWFsIGV4aXQgZnJvbSB0aGUKLQkJICogbG9vcCBpcyBh dCBvbmUgb2YgdGhlICJicmVhayIgc3RhdGVtZW50cyBiZWxvdy4KLQkJICovCi0JCWZvciAoY3Vy ID0gc28tPmtleURhdGEsIGkgPSAwOzsgY3VyKyssIGkrKykKLQkJewotCQkJaWYgKGkgPj0gc28t Pm51bWJlck9mS2V5cyB8fCBjdXItPnNrX2F0dG5vICE9IGN1cmF0dHIpCi0JCQl7Ci0JCQkJLyoK LQkJCQkgKiBEb25lIGxvb2tpbmcgYXQga2V5cyBmb3IgY3VyYXR0ci4gIElmIHdlIGRpZG4ndCBm aW5kIGEKLQkJCQkgKiB1c2FibGUgYm91bmRhcnkga2V5LCBzZWUgaWYgd2UgY2FuIGRlZHVjZSBh IE5PVCBOVUxMIGtleS4KLQkJCQkgKi8KLQkJCQlpZiAoY2hvc2VuID09IE5VTEwgJiYgaW1wbGll c05OICE9IE5VTEwgJiYKLQkJCQkJKChpbXBsaWVzTk4tPnNrX2ZsYWdzICYgU0tfQlRfTlVMTFNf RklSU1QpID8KLQkJCQkJIFNjYW5EaXJlY3Rpb25Jc0ZvcndhcmQoZGlyKSA6Ci0JCQkJCSBTY2Fu RGlyZWN0aW9uSXNCYWNrd2FyZChkaXIpKSkKLQkJCQl7Ci0JCQkJCS8qIFllcywgc28gYnVpbGQg dGhlIGtleSBpbiBub3RudWxsa2V5c1trZXlzQ291bnRdICovCi0JCQkJCWNob3NlbiA9ICZub3Ru dWxsa2V5c1trZXlzQ291bnRdOwotCQkJCQlTY2FuS2V5RW50cnlJbml0aWFsaXplKGNob3NlbiwK LQkJCQkJCQkJCQkgICAoU0tfU0VBUkNITk9UTlVMTCB8IFNLX0lTTlVMTCB8Ci0JCQkJCQkJCQkJ CShpbXBsaWVzTk4tPnNrX2ZsYWdzICYKLQkJCQkJCQkJCQkJIChTS19CVF9ERVNDIHwgU0tfQlRf TlVMTFNfRklSU1QpKSksCi0JCQkJCQkJCQkJICAgY3VyYXR0ciwKLQkJCQkJCQkJCQkgICAoKGlt cGxpZXNOTi0+c2tfZmxhZ3MgJiBTS19CVF9OVUxMU19GSVJTVCkgPwotCQkJCQkJCQkJCQlCVEdy ZWF0ZXJTdHJhdGVneU51bWJlciA6Ci0JCQkJCQkJCQkJCUJUTGVzc1N0cmF0ZWd5TnVtYmVyKSwK LQkJCQkJCQkJCQkgICBJbnZhbGlkT2lkLAotCQkJCQkJCQkJCSAgIEludmFsaWRPaWQsCi0JCQkJ CQkJCQkJICAgSW52YWxpZE9pZCwKLQkJCQkJCQkJCQkgICAoRGF0dW0pIDApOwotCQkJCX0KLQot CQkJCS8qCi0JCQkJICogSWYgd2Ugc3RpbGwgZGlkbid0IGZpbmQgYSB1c2FibGUgYm91bmRhcnkg a2V5LCBxdWl0OyBlbHNlCi0JCQkJICogc2F2ZSB0aGUgYm91bmRhcnkga2V5IHBvaW50ZXIgaW4g c3RhcnRLZXlzLgotCQkJCSAqLwotCQkJCWlmIChjaG9zZW4gPT0gTlVMTCkKLQkJCQkJYnJlYWs7 Ci0JCQkJc3RhcnRLZXlzW2tleXNDb3VudCsrXSA9IGNob3NlbjsKLQotCQkJCS8qCi0JCQkJICog QWRqdXN0IHN0cmF0X3RvdGFsLCBhbmQgcXVpdCBpZiB3ZSBoYXZlIHN0b3JlZCBhID4gb3IgPAot CQkJCSAqIGtleS4KLQkJCQkgKi8KLQkJCQlzdHJhdCA9IGNob3Nlbi0+c2tfc3RyYXRlZ3k7Ci0J CQkJaWYgKHN0cmF0ICE9IEJURXF1YWxTdHJhdGVneU51bWJlcikKLQkJCQl7Ci0JCQkJCXN0cmF0 X3RvdGFsID0gc3RyYXQ7Ci0JCQkJCWlmIChzdHJhdCA9PSBCVEdyZWF0ZXJTdHJhdGVneU51bWJl ciB8fAotCQkJCQkJc3RyYXQgPT0gQlRMZXNzU3RyYXRlZ3lOdW1iZXIpCi0JCQkJCQlicmVhazsK LQkJCQl9Ci0KLQkJCQkvKgotCQkJCSAqIERvbmUgaWYgdGhhdCB3YXMgdGhlIGxhc3QgYXR0cmli dXRlLCBvciBpZiBuZXh0IGtleSBpcyBub3QKLQkJCQkgKiBpbiBzZXF1ZW5jZSAoaW1wbHlpbmcg bm8gYm91bmRhcnkga2V5IGlzIGF2YWlsYWJsZSBmb3IgdGhlCi0JCQkJICogbmV4dCBhdHRyaWJ1 dGUpLgotCQkJCSAqLwotCQkJCWlmIChpID49IHNvLT5udW1iZXJPZktleXMgfHwKLQkJCQkJY3Vy LT5za19hdHRubyAhPSBjdXJhdHRyICsgMSkKLQkJCQkJYnJlYWs7Ci0KLQkJCQkvKgotCQkJCSAq IFJlc2V0IGZvciBuZXh0IGF0dHIuCi0JCQkJICovCi0JCQkJY3VyYXR0ciA9IGN1ci0+c2tfYXR0 bm87Ci0JCQkJY2hvc2VuID0gTlVMTDsKLQkJCQlpbXBsaWVzTk4gPSBOVUxMOwotCQkJfQotCi0J CQkvKgotCQkJICogQ2FuIHdlIHVzZSB0aGlzIGtleSBhcyBhIHN0YXJ0aW5nIGJvdW5kYXJ5IGZv ciB0aGlzIGF0dHI/Ci0JCQkgKgotCQkJICogSWYgbm90LCBkb2VzIGl0IGltcGx5IGEgTk9UIE5V TEwgY29uc3RyYWludD8gIChCZWNhdXNlCi0JCQkgKiBTS19TRUFSQ0hOVUxMIGtleXMgYXJlIGFs d2F5cyBhc3NpZ25lZCBCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsCi0JCQkgKiAqYW55KiBpbmVxdWFs aXR5IGtleSB3b3JrcyBmb3IgdGhhdDsgd2UgbmVlZCBub3QgdGVzdC4pCi0JCQkgKi8KLQkJCXN3 aXRjaCAoY3VyLT5za19zdHJhdGVneSkKLQkJCXsKLQkJCQljYXNlIEJUTGVzc1N0cmF0ZWd5TnVt YmVyOgotCQkJCWNhc2UgQlRMZXNzRXF1YWxTdHJhdGVneU51bWJlcjoKLQkJCQkJaWYgKGNob3Nl biA9PSBOVUxMKQotCQkJCQl7Ci0JCQkJCQlpZiAoU2NhbkRpcmVjdGlvbklzQmFja3dhcmQoZGly KSkKLQkJCQkJCQljaG9zZW4gPSBjdXI7Ci0JCQkJCQllbHNlCi0JCQkJCQkJaW1wbGllc05OID0g Y3VyOwotCQkJCQl9Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgQlRFcXVhbFN0cmF0ZWd5TnVtYmVy OgotCQkJCQkvKiBvdmVycmlkZSBhbnkgbm9uLWVxdWFsaXR5IGNob2ljZSAqLwotCQkJCQljaG9z ZW4gPSBjdXI7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51 bWJlcjoKLQkJCQljYXNlIEJUR3JlYXRlclN0cmF0ZWd5TnVtYmVyOgotCQkJCQlpZiAoY2hvc2Vu ID09IE5VTEwpCi0JCQkJCXsKLQkJCQkJCWlmIChTY2FuRGlyZWN0aW9uSXNGb3J3YXJkKGRpcikp Ci0JCQkJCQkJY2hvc2VuID0gY3VyOwotCQkJCQkJZWxzZQotCQkJCQkJCWltcGxpZXNOTiA9IGN1 cjsKLQkJCQkJfQotCQkJCQlicmVhazsKLQkJCX0KLQkJfQotCX0KKwlrZXlzQ291bnQgPSBfYnRf Y2hvb3NlX3NjYW5fa2V5cyhzby0+a2V5RGF0YSwgc28tPm51bWJlck9mS2V5cywgcHJlZml4RGly LCBzdGFydEtleXMsIG5vdG51bGxrZXlzLCAmc3RyYXRfdG90YWwsIDApOwogCiAJLyoKIAkgKiBJ ZiB3ZSBmb3VuZCBubyB1c2FibGUgYm91bmRhcnkga2V5cywgd2UgaGF2ZSB0byBzdGFydCBmcm9t IG9uZSBlbmQgb2YKQEAgLTEwOTMsMjYwICs5MTYsMTEyIEBAIF9idF9maXJzdChJbmRleFNjYW5E ZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyKQogCXsKIAkJYm9vbAkJbWF0Y2g7CiAKLQkJbWF0 Y2ggPSBfYnRfZW5kcG9pbnQoc2NhbiwgZGlyKTsKLQotCQlpZiAoIW1hdGNoKQorCQlpZiAoIV9i dF9za2lwX2VuYWJsZWQoc28pKQogCQl7Ci0JCQkvKiBObyBtYXRjaCwgc28gbWFyayAocGFyYWxs ZWwpIHNjYW4gZmluaXNoZWQgKi8KLQkJCV9idF9wYXJhbGxlbF9kb25lKHNjYW4pOwotCQl9CisJ CQltYXRjaCA9IF9idF9lbmRwb2ludChzY2FuLCBwcmVmaXhEaXIpOwogCi0JCXJldHVybiBtYXRj aDsKLQl9CisJCQlpZiAoIW1hdGNoKQorCQkJeworCQkJCS8qIE5vIG1hdGNoLCBzbyBtYXJrIChw YXJhbGxlbCkgc2NhbiBmaW5pc2hlZCAqLworCQkJCV9idF9wYXJhbGxlbF9kb25lKHNjYW4pOwor CQkJfQogCi0JLyoKLQkgKiBXZSB3YW50IHRvIHN0YXJ0IHRoZSBzY2FuIHNvbWV3aGVyZSB3aXRo aW4gdGhlIGluZGV4LiAgU2V0IHVwIGFuCi0JICogaW5zZXJ0aW9uIHNjYW5rZXkgd2UgY2FuIHVz ZSB0byBzZWFyY2ggZm9yIHRoZSBib3VuZGFyeSBwb2ludCB3ZQotCSAqIGlkZW50aWZpZWQgYWJv dmUuICBUaGUgaW5zZXJ0aW9uIHNjYW5rZXkgaXMgYnVpbHQgdXNpbmcgdGhlIGtleXMKLQkgKiBp ZGVudGlmaWVkIGJ5IHN0YXJ0S2V5c1tdLiAgKFJlbWFpbmluZyBpbnNlcnRpb24gc2NhbmtleSBm aWVsZHMgYXJlCi0JICogaW5pdGlhbGl6ZWQgYWZ0ZXIgaW5pdGlhbC1wb3NpdGlvbmluZyBzdHJh dGVneSBpcyBmaW5hbGl6ZWQuKQotCSAqLwotCUFzc2VydChrZXlzQ291bnQgPD0gSU5ERVhfTUFY X0tFWVMpOwotCWZvciAoaSA9IDA7IGkgPCBrZXlzQ291bnQ7IGkrKykKLQl7Ci0JCVNjYW5LZXkJ CWN1ciA9IHN0YXJ0S2V5c1tpXTsKKwkJCXJldHVybiBtYXRjaDsKKwkJfQorCQllbHNlCisJCXsK KwkJCVJlbGF0aW9uCXJlbCA9IHNjYW4tPmluZGV4UmVsYXRpb247CisJCQlCdWZmZXIJCWJ1ZjsK KwkJCVBhZ2UJCXBhZ2U7CisJCQlCVFBhZ2VPcGFxdWUgb3BhcXVlOworCQkJT2Zmc2V0TnVtYmVy IHN0YXJ0OworCQkJQlRTa2lwQ29tcGFyZVJlc3VsdCBjbXAgPSB7MH07CiAKLQkJQXNzZXJ0KGN1 ci0+c2tfYXR0bm8gPT0gaSArIDEpOworCQkJX2J0X3NraXBfY3JlYXRlX3NjYW5rZXlzKHJlbCwg c28pOwogCi0JCWlmIChjdXItPnNrX2ZsYWdzICYgU0tfUk9XX0hFQURFUikKLQkJewogCQkJLyoK LQkJCSAqIFJvdyBjb21wYXJpc29uIGhlYWRlcjogbG9vayB0byB0aGUgZmlyc3Qgcm93IG1lbWJl ciBpbnN0ZWFkLgotCQkJICoKLQkJCSAqIFRoZSBtZW1iZXIgc2NhbmtleXMgYXJlIGFscmVhZHkg aW4gaW5zZXJ0aW9uIGZvcm1hdCAoaWUsIHRoZXkKLQkJCSAqIGhhdmUgc2tfZnVuYyA9IDMtd2F5 LWNvbXBhcmlzb24gZnVuY3Rpb24pLCBidXQgd2UgaGF2ZSB0byB3YXRjaAotCQkJICogb3V0IGZv ciBudWxscywgd2hpY2ggX2J0X3ByZXByb2Nlc3Nfa2V5cyBkaWRuJ3QgY2hlY2suIEEgbnVsbAot CQkJICogaW4gdGhlIGZpcnN0IHJvdyBtZW1iZXIgbWFrZXMgdGhlIGNvbmRpdGlvbiB1bm1hdGNo YWJsZSwganVzdAotCQkJICogbGlrZSBxdWFsX29rID0gZmFsc2UuCisJCQkgKiBTY2FuIGRvd24g dG8gdGhlIGxlZnRtb3N0IG9yIHJpZ2h0bW9zdCBsZWFmIHBhZ2UgYW5kIHBvc2l0aW9uCisJCQkg KiB0aGUgc2NhbiBvbiB0aGUgbGVmdG1vc3Qgb3IgcmlnaHRtb3N0IGl0ZW0gb24gdGhhdCBwYWdl LgorCQkJICogU3RhcnQgdGhlIHNraXAgc2NhbiBmcm9tIHRoZXJlIHRvIGZpbmQgdGhlIGZpcnN0 IG1hdGNoaW5nIGl0ZW0KIAkJCSAqLwotCQkJU2NhbktleQkJc3Via2V5ID0gKFNjYW5LZXkpIERh dHVtR2V0UG9pbnRlcihjdXItPnNrX2FyZ3VtZW50KTsKKwkJCWJ1ZiA9IF9idF9nZXRfZW5kcG9p bnQocmVsLCAwLCBTY2FuRGlyZWN0aW9uSXNCYWNrd2FyZChwcmVmaXhEaXIpLCBzY2FuLT54c19z bmFwc2hvdCk7CiAKLQkJCUFzc2VydChzdWJrZXktPnNrX2ZsYWdzICYgU0tfUk9XX01FTUJFUik7 Ci0JCQlpZiAoc3Via2V5LT5za19mbGFncyAmIFNLX0lTTlVMTCkKKwkJCWlmICghQnVmZmVySXNW YWxpZChidWYpKQogCQkJewotCQkJCV9idF9wYXJhbGxlbF9kb25lKHNjYW4pOworCQkJCS8qCisJ CQkJICogRW1wdHkgaW5kZXguIExvY2sgdGhlIHdob2xlIHJlbGF0aW9uLCBhcyBub3RoaW5nIGZp bmVyIHRvIGxvY2sKKwkJCQkgKiBleGlzdHMuCisJCQkJICovCisJCQkJUHJlZGljYXRlTG9ja1Jl bGF0aW9uKHJlbCwgc2Nhbi0+eHNfc25hcHNob3QpOworCQkJCUJUU2NhblBvc0ludmFsaWRhdGUo c28tPmN1cnJQb3MpOwogCQkJCXJldHVybiBmYWxzZTsKIAkJCX0KLQkJCW1lbWNweShpbnNrZXku c2NhbmtleXMgKyBpLCBzdWJrZXksIHNpemVvZihTY2FuS2V5RGF0YSkpOwogCi0JCQkvKgotCQkJ ICogSWYgdGhlIHJvdyBjb21wYXJpc29uIGlzIHRoZSBsYXN0IHBvc2l0aW9uaW5nIGtleSB3ZSBh Y2NlcHRlZCwKLQkJCSAqIHRyeSB0byBhZGQgYWRkaXRpb25hbCBrZXlzIGZyb20gdGhlIGxvd2Vy LW9yZGVyIHJvdyBtZW1iZXJzLgotCQkJICogKElmIHdlIGFjY2VwdGVkIGluZGVwZW5kZW50IGNv bmRpdGlvbnMgb24gYWRkaXRpb25hbCBpbmRleAotCQkJICogY29sdW1ucywgd2UgdXNlIHRob3Nl IGluc3RlYWQgLS0tIGRvZXNuJ3Qgc2VlbSB3b3J0aCB0cnlpbmcgdG8KLQkJCSAqIGRldGVybWlu ZSB3aGljaCBpcyBtb3JlIHJlc3RyaWN0aXZlLikgIE5vdGUgdGhhdCB0aGlzIGlzIE9LCi0JCQkg KiBldmVuIGlmIHRoZSByb3cgY29tcGFyaXNvbiBpcyBvZiAiPiIgb3IgIjwiIHR5cGUsIGJlY2F1 c2UgdGhlCi0JCQkgKiBjb25kaXRpb24gYXBwbGllZCB0byBhbGwgYnV0IHRoZSBsYXN0IHJvdyBt ZW1iZXIgaXMgZWZmZWN0aXZlbHkKLQkJCSAqICI+PSIgb3IgIjw9IiwgYW5kIHNvIHRoZSBleHRy YSBrZXlzIGRvbid0IGJyZWFrIHRoZSBwb3NpdGlvbmluZwotCQkJICogc2NoZW1lLiAgQnV0LCBi eSB0aGUgc2FtZSB0b2tlbiwgaWYgd2UgYXJlbid0IGFibGUgdG8gdXNlIGFsbAotCQkJICogdGhl IHJvdyBtZW1iZXJzLCB0aGVuIHRoZSBwYXJ0IG9mIHRoZSByb3cgY29tcGFyaXNvbiB0aGF0IHdl Ci0JCQkgKiBkaWQgdXNlIGhhcyB0byBiZSB0cmVhdGVkIGFzIGp1c3QgYSAiPj0iIG9yICI8PSIg Y29uZGl0aW9uLCBhbmQKLQkJCSAqIHNvIHdlJ2QgYmV0dGVyIGFkanVzdCBzdHJhdF90b3RhbCBh Y2NvcmRpbmdseS4KLQkJCSAqLwotCQkJaWYgKGkgPT0ga2V5c0NvdW50IC0gMSkKKwkJCVByZWRp Y2F0ZUxvY2tQYWdlKHJlbCwgQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmKSwgc2Nhbi0+eHNfc25h cHNob3QpOworCQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmKTsKKwkJCW9wYXF1ZSA9IChCVFBh Z2VPcGFxdWUpIFBhZ2VHZXRTcGVjaWFsUG9pbnRlcihwYWdlKTsKKwkJCUFzc2VydChQX0lTTEVB RihvcGFxdWUpKTsKKworCQkJaWYgKFNjYW5EaXJlY3Rpb25Jc0ZvcndhcmQocHJlZml4RGlyKSkK IAkJCXsKLQkJCQlib29sCQl1c2VkX2FsbF9zdWJrZXlzID0gZmFsc2U7CisJCQkJLyogVGhlcmUg Y291bGQgYmUgZGVhZCBwYWdlcyB0byB0aGUgbGVmdCwgc28gbm90IHRoaXM6ICovCisJCQkJLyog QXNzZXJ0KFBfTEVGVE1PU1Qob3BhcXVlKSk7ICovCiAKLQkJCQlBc3NlcnQoIShzdWJrZXktPnNr X2ZsYWdzICYgU0tfUk9XX0VORCkpOwotCQkJCWZvciAoOzspCi0JCQkJewotCQkJCQlzdWJrZXkr KzsKLQkJCQkJQXNzZXJ0KHN1YmtleS0+c2tfZmxhZ3MgJiBTS19ST1dfTUVNQkVSKTsKLQkJCQkJ aWYgKHN1YmtleS0+c2tfYXR0bm8gIT0ga2V5c0NvdW50ICsgMSkKLQkJCQkJCWJyZWFrOwkvKiBv dXQtb2Ytc2VxdWVuY2UsIGNhbid0IHVzZSBpdCAqLwotCQkJCQlpZiAoc3Via2V5LT5za19zdHJh dGVneSAhPSBjdXItPnNrX3N0cmF0ZWd5KQotCQkJCQkJYnJlYWs7CS8qIHdyb25nIGRpcmVjdGlv biwgY2FuJ3QgdXNlIGl0ICovCi0JCQkJCWlmIChzdWJrZXktPnNrX2ZsYWdzICYgU0tfSVNOVUxM KQotCQkJCQkJYnJlYWs7CS8qIGNhbid0IHVzZSBudWxsIGtleXMgKi8KLQkJCQkJQXNzZXJ0KGtl eXNDb3VudCA8IElOREVYX01BWF9LRVlTKTsKLQkJCQkJbWVtY3B5KGluc2tleS5zY2Fua2V5cyAr IGtleXNDb3VudCwgc3Via2V5LAotCQkJCQkJICAgc2l6ZW9mKFNjYW5LZXlEYXRhKSk7Ci0JCQkJ CWtleXNDb3VudCsrOwotCQkJCQlpZiAoc3Via2V5LT5za19mbGFncyAmIFNLX1JPV19FTkQpCi0J CQkJCXsKLQkJCQkJCXVzZWRfYWxsX3N1YmtleXMgPSB0cnVlOwotCQkJCQkJYnJlYWs7Ci0JCQkJ CX0KLQkJCQl9Ci0JCQkJaWYgKCF1c2VkX2FsbF9zdWJrZXlzKQotCQkJCXsKLQkJCQkJc3dpdGNo IChzdHJhdF90b3RhbCkKLQkJCQkJewotCQkJCQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoK LQkJCQkJCQlzdHJhdF90b3RhbCA9IEJUTGVzc0VxdWFsU3RyYXRlZ3lOdW1iZXI7Ci0JCQkJCQkJ YnJlYWs7Ci0JCQkJCQljYXNlIEJUR3JlYXRlclN0cmF0ZWd5TnVtYmVyOgotCQkJCQkJCXN0cmF0 X3RvdGFsID0gQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcjsKLQkJCQkJCQlicmVhazsKLQkJ CQkJfQotCQkJCX0KLQkJCQlicmVhazsJCQkvKiBkb25lIHdpdGggb3V0ZXIgbG9vcCAqLworCQkJ CXN0YXJ0ID0gUF9GSVJTVERBVEFLRVkob3BhcXVlKTsKIAkJCX0KLQkJfQotCQllbHNlCi0JCXsK LQkJCS8qCi0JCQkgKiBPcmRpbmFyeSBjb21wYXJpc29uIGtleS4gIFRyYW5zZm9ybSB0aGUgc2Vh cmNoLXN0eWxlIHNjYW4ga2V5Ci0JCQkgKiB0byBhbiBpbnNlcnRpb24gc2NhbiBrZXkgYnkgcmVw bGFjaW5nIHRoZSBza19mdW5jIHdpdGggdGhlCi0JCQkgKiBhcHByb3ByaWF0ZSBidHJlZSBjb21w YXJpc29uIGZ1bmN0aW9uLgotCQkJICoKLQkJCSAqIElmIHNjYW5rZXkgb3BlcmF0b3IgaXMgbm90 IGEgY3Jvc3MtdHlwZSBjb21wYXJpc29uLCB3ZSBjYW4gdXNlCi0JCQkgKiB0aGUgY2FjaGVkIGNv bXBhcmlzb24gZnVuY3Rpb247IG90aGVyd2lzZSBnb3R0YSBsb29rIGl0IHVwIGluCi0JCQkgKiB0 aGUgY2F0YWxvZ3MuICAoVGhhdCBjYW4ndCBsZWFkIHRvIGluZmluaXRlIHJlY3Vyc2lvbiwgc2lu Y2Ugbm8KLQkJCSAqIGluZGV4c2NhbiBpbml0aWF0ZWQgYnkgc3lzY2FjaGUgbG9va3VwIHdpbGwg dXNlIGNyb3NzLWRhdGEtdHlwZQotCQkJICogb3BlcmF0b3JzLikKLQkJCSAqCi0JCQkgKiBXZSBz dXBwb3J0IHRoZSBjb252ZW50aW9uIHRoYXQgc2tfc3VidHlwZSA9PSBJbnZhbGlkT2lkIG1lYW5z Ci0JCQkgKiB0aGUgb3BjbGFzcyBpbnB1dCB0eXBlOyB0aGlzIGlzIGEgaGFjayB0byBzaW1wbGlm eSBsaWZlIGZvcgotCQkJICogU2NhbktleUluaXQoKS4KLQkJCSAqLwotCQkJaWYgKGN1ci0+c2tf c3VidHlwZSA9PSByZWwtPnJkX29wY2ludHlwZVtpXSB8fAotCQkJCWN1ci0+c2tfc3VidHlwZSA9 PSBJbnZhbGlkT2lkKQorCQkJZWxzZSBpZiAoU2NhbkRpcmVjdGlvbklzQmFja3dhcmQocHJlZml4 RGlyKSkKIAkJCXsKLQkJCQlGbWdySW5mbyAgICpwcm9jaW5mbzsKLQotCQkJCXByb2NpbmZvID0g aW5kZXhfZ2V0cHJvY2luZm8ocmVsLCBjdXItPnNrX2F0dG5vLCBCVE9SREVSX1BST0MpOwotCQkJ CVNjYW5LZXlFbnRyeUluaXRpYWxpemVXaXRoSW5mbyhpbnNrZXkuc2NhbmtleXMgKyBpLAotCQkJ CQkJCQkJCQkgICBjdXItPnNrX2ZsYWdzLAotCQkJCQkJCQkJCQkgICBjdXItPnNrX2F0dG5vLAot CQkJCQkJCQkJCQkgICBJbnZhbGlkU3RyYXRlZ3ksCi0JCQkJCQkJCQkJCSAgIGN1ci0+c2tfc3Vi dHlwZSwKLQkJCQkJCQkJCQkJICAgY3VyLT5za19jb2xsYXRpb24sCi0JCQkJCQkJCQkJCSAgIHBy b2NpbmZvLAotCQkJCQkJCQkJCQkgICBjdXItPnNrX2FyZ3VtZW50KTsKKwkJCQlBc3NlcnQoUF9S SUdIVE1PU1Qob3BhcXVlKSk7CisKKwkJCQlzdGFydCA9IFBhZ2VHZXRNYXhPZmZzZXROdW1iZXIo cGFnZSk7CiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JCQkJUmVnUHJvY2VkdXJlIGNtcF9wcm9jOwot Ci0JCQkJY21wX3Byb2MgPSBnZXRfb3BmYW1pbHlfcHJvYyhyZWwtPnJkX29wZmFtaWx5W2ldLAot CQkJCQkJCQkJCQkgcmVsLT5yZF9vcGNpbnR5cGVbaV0sCi0JCQkJCQkJCQkJCSBjdXItPnNrX3N1 YnR5cGUsCi0JCQkJCQkJCQkJCSBCVE9SREVSX1BST0MpOwotCQkJCWlmICghUmVnUHJvY2VkdXJl SXNWYWxpZChjbXBfcHJvYykpCi0JCQkJCWVsb2coRVJST1IsICJtaXNzaW5nIHN1cHBvcnQgZnVu Y3Rpb24gJWQoJXUsJXUpIGZvciBhdHRyaWJ1dGUgJWQgb2YgaW5kZXggXCIlc1wiIiwKLQkJCQkJ CSBCVE9SREVSX1BST0MsIHJlbC0+cmRfb3BjaW50eXBlW2ldLCBjdXItPnNrX3N1YnR5cGUsCi0J CQkJCQkgY3VyLT5za19hdHRubywgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7Ci0JCQkJ U2NhbktleUVudHJ5SW5pdGlhbGl6ZShpbnNrZXkuc2NhbmtleXMgKyBpLAotCQkJCQkJCQkJICAg Y3VyLT5za19mbGFncywKLQkJCQkJCQkJCSAgIGN1ci0+c2tfYXR0bm8sCi0JCQkJCQkJCQkgICBJ bnZhbGlkU3RyYXRlZ3ksCi0JCQkJCQkJCQkgICBjdXItPnNrX3N1YnR5cGUsCi0JCQkJCQkJCQkg ICBjdXItPnNrX2NvbGxhdGlvbiwKLQkJCQkJCQkJCSAgIGNtcF9wcm9jLAotCQkJCQkJCQkJICAg Y3VyLT5za19hcmd1bWVudCk7CisJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc2NhbiBkaXJlY3Rp b246ICVkIiwgKGludCkgcHJlZml4RGlyKTsKIAkJCX0KLQkJfQotCX0KIAotCS8qLS0tLS0tLS0t LQotCSAqIEV4YW1pbmUgdGhlIHNlbGVjdGVkIGluaXRpYWwtcG9zaXRpb25pbmcgc3RyYXRlZ3kg dG8gZGV0ZXJtaW5lIGV4YWN0bHkKLQkgKiB3aGVyZSB3ZSBuZWVkIHRvIHN0YXJ0IHRoZSBzY2Fu LCBhbmQgc2V0IGZsYWcgdmFyaWFibGVzIHRvIGNvbnRyb2wgdGhlCi0JICogY29kZSBiZWxvdy4K LQkgKgotCSAqIElmIG5leHRrZXkgPSBmYWxzZSwgX2J0X3NlYXJjaCBhbmQgX2J0X2JpbnNyY2gg d2lsbCBsb2NhdGUgdGhlIGZpcnN0Ci0JICogaXRlbSA+PSBzY2FuIGtleS4gIElmIG5leHRrZXkg PSB0cnVlLCB0aGV5IHdpbGwgbG9jYXRlIHRoZSBmaXJzdAotCSAqIGl0ZW0gPiBzY2FuIGtleS4K LQkgKgotCSAqIElmIGdvYmFjayA9IHRydWUsIHdlIHdpbGwgdGhlbiBzdGVwIGJhY2sgb25lIGl0 ZW0sIHdoaWxlIGlmCi0JICogZ29iYWNrID0gZmFsc2UsIHdlIHdpbGwgc3RhcnQgdGhlIHNjYW4g b24gdGhlIGxvY2F0ZWQgaXRlbS4KLQkgKi0tLS0tLS0tLS0KLQkgKi8KLQlzd2l0Y2ggKHN0cmF0 X3RvdGFsKQotCXsKLQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoKLQotCQkJLyoKLQkJCSAq IEZpbmQgZmlyc3QgaXRlbSA+PSBzY2Fua2V5LCB0aGVuIGJhY2sgdXAgb25lIHRvIGFycml2ZSBh dCBsYXN0Ci0JCQkgKiBpdGVtIDwgc2NhbmtleS4gIChOb3RlOiB0aGlzIHBvc2l0aW9uaW5nIHN0 cmF0ZWd5IGlzIG9ubHkgdXNlZAotCQkJICogZm9yIGEgYmFja3dhcmQgc2Nhbiwgc28gdGhhdCBp cyBhbHdheXMgdGhlIGNvcnJlY3Qgc3RhcnRpbmcKLQkJCSAqIHBvc2l0aW9uLikKLQkJCSAqLwot CQkJbmV4dGtleSA9IGZhbHNlOwotCQkJZ29iYWNrID0gdHJ1ZTsKLQkJCWJyZWFrOwotCi0JCWNh c2UgQlRMZXNzRXF1YWxTdHJhdGVneU51bWJlcjoKLQotCQkJLyoKLQkJCSAqIEZpbmQgZmlyc3Qg aXRlbSA+IHNjYW5rZXksIHRoZW4gYmFjayB1cCBvbmUgdG8gYXJyaXZlIGF0IGxhc3QKLQkJCSAq IGl0ZW0gPD0gc2NhbmtleS4gIChOb3RlOiB0aGlzIHBvc2l0aW9uaW5nIHN0cmF0ZWd5IGlzIG9u bHkgdXNlZAotCQkJICogZm9yIGEgYmFja3dhcmQgc2Nhbiwgc28gdGhhdCBpcyBhbHdheXMgdGhl IGNvcnJlY3Qgc3RhcnRpbmcKLQkJCSAqIHBvc2l0aW9uLikKLQkJCSAqLwotCQkJbmV4dGtleSA9 IHRydWU7Ci0JCQlnb2JhY2sgPSB0cnVlOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBCVEVxdWFsU3Ry YXRlZ3lOdW1iZXI6Ci0KLQkJCS8qCi0JCQkgKiBJZiBhIGJhY2t3YXJkIHNjYW4gd2FzIHNwZWNp ZmllZCwgbmVlZCB0byBzdGFydCB3aXRoIGxhc3QgZXF1YWwKLQkJCSAqIGl0ZW0gbm90IGZpcnN0 IG9uZS4KKwkJCS8qIHJlbWVtYmVyIHdoaWNoIGJ1ZmZlciB3ZSBoYXZlIHBpbm5lZCAqLworCQkJ c28tPmN1cnJQb3MuYnVmID0gYnVmOworCQkJc28tPmN1cnJQb3MuY3VyclBhZ2UgPSBCdWZmZXJH ZXRCbG9ja051bWJlcihzby0+Y3VyclBvcy5idWYpOworCisJCQlpdHVwID0gKEluZGV4VHVwbGUp IFBhZ2VHZXRJdGVtKHBhZ2UsIFBhZ2VHZXRJdGVtSWQocGFnZSwgc3RhcnQpKTsKKwkJCS8qIGlu IHNvbWUgY2FzZXMsIHdlIGNhbiAob3IgaGF2ZSB0bykgc2tpcCBmdXJ0aGVyIGluc2lkZSB0aGUg cHJlZml4LgorCQkJICogd2UgY2FuIGRvIHRoaXMgaWYgd2UgaGF2ZSBleHRyYSBxdWFscyBiZWNv bWluZyBhdmFpbGFibGUsIGVnLgorCQkJICogV0hFUkUgYj0yIG9uIGFuIGluZGV4IG9uIChhLGIp LgorCQkJICogV2UgbXVzdCwgaWYgdGhpcyBpcyBub3QgcmVndWxhciBtb2RlIChwcmVmaXhEaXIh PXBvc3RmaXhEaXIpLgorCQkJICogQmVjYXVzZSB0aGlzIG1lYW5zIHdlJ3JlIGF0IHRoZSBlbmQg b2YgdGhlIHByZWZpeCwgd2hpbGUgd2Ugc2hvdWxkIGJlCisJCQkgKiBhdCB0aGUgYmVnaW5uaW5n LgogCQkJICovCi0JCQlpZiAoU2NhbkRpcmVjdGlvbklzQmFja3dhcmQoZGlyKSkKKwkJCWlmIChf YnRfaGFzX2V4dHJhX3F1YWxzX2FmdGVyX3NraXAoc28tPnNraXBEYXRhLCBwb3N0Zml4RGlyLCAw KSB8fAorCQkJCQkhX2J0X3NraXBfaXNfcmVndWxhcl9tb2RlKHByZWZpeERpciwgcG9zdGZpeERp cikpCiAJCQl7Ci0JCQkJLyoKLQkJCQkgKiBUaGlzIGlzIHRoZSBzYW1lIGFzIHRoZSA8PSBzdHJh dGVneS4gIFdlIHdpbGwgY2hlY2sgYXQgdGhlCi0JCQkJICogZW5kIHdoZXRoZXIgdGhlIGZvdW5k IGl0ZW0gaXMgYWN0dWFsbHkgPS4KLQkJCQkgKi8KLQkJCQluZXh0a2V5ID0gdHJ1ZTsKLQkJCQln b2JhY2sgPSB0cnVlOworCQkJCV9idF9za2lwX2V4dHJhX2NvbmRpdGlvbnMoc2NhbiwgJml0dXAs ICZzdGFydCwgcHJlZml4RGlyLCBwb3N0Zml4RGlyLCAmY21wKTsKIAkJCX0KLQkJCWVsc2UKKwkJ CS8qIG5vdyBmaW5kIHRoZSBuZXh0IG1hdGNoaW5nIHR1cGxlICovCisJCQltYXRjaCA9IF9idF9z a2lwX2ZpbmRfbmV4dChzY2FuLCBpdHVwLCBzdGFydCwgcHJlZml4RGlyLCBwb3N0Zml4RGlyKTsK KwkJCWlmICghbWF0Y2gpCiAJCQl7Ci0JCQkJLyoKLQkJCQkgKiBUaGlzIGlzIHRoZSBzYW1lIGFz IHRoZSA+PSBzdHJhdGVneS4gIFdlIHdpbGwgY2hlY2sgYXQgdGhlCi0JCQkJICogZW5kIHdoZXRo ZXIgdGhlIGZvdW5kIGl0ZW0gaXMgYWN0dWFsbHkgPS4KLQkJCQkgKi8KLQkJCQluZXh0a2V5ID0g ZmFsc2U7Ci0JCQkJZ29iYWNrID0gZmFsc2U7CisJCQkJaWYgKF9idF9za2lwX2lzX2Fsd2F5c192 YWxpZChzbykpCisJCQkJCV9idF9kcm9wX2xvY2tfYW5kX21heWJlX3BpbihzY2FuLCAmc28tPmN1 cnJQb3MpOworCQkJCXJldHVybiBmYWxzZTsKIAkJCX0KLQkJCWJyZWFrOwogCi0JCWNhc2UgQlRH cmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcjoKKwkJCV9idF9kcm9wX2xvY2tfYW5kX21heWJlX3Bp bihzY2FuLCAmc28tPmN1cnJQb3MpOwogCi0JCQkvKgotCQkJICogRmluZCBmaXJzdCBpdGVtID49 IHNjYW5rZXkuICAoVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGZvcndhcmQKLQkJCSAqIHNjYW5zLikK LQkJCSAqLwotCQkJbmV4dGtleSA9IGZhbHNlOwotCQkJZ29iYWNrID0gZmFsc2U7Ci0JCQlicmVh azsKLQotCQljYXNlIEJUR3JlYXRlclN0cmF0ZWd5TnVtYmVyOgotCi0JCQkvKgotCQkJICogRmlu ZCBmaXJzdCBpdGVtID4gc2NhbmtleS4gIChUaGlzIGlzIG9ubHkgdXNlZCBmb3IgZm9yd2FyZAot CQkJICogc2NhbnMuKQotCQkJICovCi0JCQluZXh0a2V5ID0gdHJ1ZTsKLQkJCWdvYmFjayA9IGZh bHNlOwotCQkJYnJlYWs7CisJCQljdXJySXRlbSA9ICZzby0+Y3VyclBvcy5pdGVtc1tzby0+Y3Vy clBvcy5pdGVtSW5kZXhdOworCQkJc2Nhbi0+eHNfaGVhcHRpZCA9IGN1cnJJdGVtLT5oZWFwVGlk OworCQkJaWYgKHNjYW4tPnhzX3dhbnRfaXR1cCkKKwkJCQlzY2FuLT54c19pdHVwID0gKEluZGV4 VHVwbGUpIChzby0+Y3VyclR1cGxlcyArIGN1cnJJdGVtLT50dXBsZU9mZnNldCk7CiAKLQkJZGVm YXVsdDoKLQkJCS8qIGNhbid0IGdldCBoZXJlLCBidXQga2VlcCBjb21waWxlciBxdWlldCAqLwot CQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBzdHJhdF90b3RhbDogJWQiLCAoaW50KSBzdHJh dF90b3RhbCk7Ci0JCQlyZXR1cm4gZmFsc2U7CisJCQlyZXR1cm4gdHJ1ZTsKKwkJfQogCX0KIAot CS8qIEluaXRpYWxpemUgcmVtYWluaW5nIGluc2VydGlvbiBzY2FuIGtleSBmaWVsZHMgKi8KLQlf YnRfbWV0YXZlcnNpb24ocmVsLCAmaW5za2V5LmhlYXBrZXlzcGFjZSwgJmluc2tleS5hbGxlcXVh bGltYWdlKTsKLQlpbnNrZXkuYW55bnVsbGtleXMgPSBmYWxzZTsgLyogdW51c2VkICovCi0JaW5z a2V5Lm5leHRrZXkgPSBuZXh0a2V5OwotCWluc2tleS5waXZvdHNlYXJjaCA9IGZhbHNlOwotCWlu c2tleS5zY2FudGlkID0gTlVMTDsKLQlpbnNrZXkua2V5c3ogPSBrZXlzQ291bnQ7CisJaWYgKCFf YnRfY3JlYXRlX2luc2VydGlvbl9zY2FuX2tleShyZWwsIHByZWZpeERpciwgc3RhcnRLZXlzLCBr ZXlzQ291bnQsICZpbnNrZXksICZzdHJhdF90b3RhbCwgICZnb2JhY2spKQorCXsKKwkJX2J0X3Bh cmFsbGVsX2RvbmUoc2Nhbik7CisJCXJldHVybiBmYWxzZTsKKwl9CiAKIAkvKgogCSAqIFVzZSB0 aGUgbWFudWZhY3R1cmVkIGluc2VydGlvbiBzY2FuIGtleSB0byBkZXNjZW5kIHRoZSB0cmVlIGFu ZApAQCAtMTM3OCw3ICsxMDUzLDcgQEAgX2J0X2ZpcnN0KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2Nh bkRpcmVjdGlvbiBkaXIpCiAJCVByZWRpY2F0ZUxvY2tQYWdlKHJlbCwgQnVmZmVyR2V0QmxvY2tO dW1iZXIoYnVmKSwKIAkJCQkJCSAgc2Nhbi0+eHNfc25hcHNob3QpOwogCi0JX2J0X2luaXRpYWxp emVfbW9yZV9kYXRhKHNvLCBkaXIpOworCV9idF9pbml0aWFsaXplX21vcmVfZGF0YShzbywgcHJl Zml4RGlyKTsKIAogCS8qIHBvc2l0aW9uIHRvIHRoZSBwcmVjaXNlIGl0ZW0gb24gdGhlIHBhZ2Ug Ki8KIAlvZmZudW0gPSBfYnRfYmluc3JjaChyZWwsICZpbnNrZXksIGJ1Zik7CkBAIC0xNDA4LDIz ICsxMDgzLDc5IEBAIF9idF9maXJzdChJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24g ZGlyKQogCUFzc2VydCghQlRTY2FuUG9zSXNWYWxpZChzby0+Y3VyclBvcykpOwogCXNvLT5jdXJy UG9zLmJ1ZiA9IGJ1ZjsKIAotCS8qCi0JICogTm93IGxvYWQgZGF0YSBmcm9tIHRoZSBmaXJzdCBw YWdlIG9mIHRoZSBzY2FuLgotCSAqLwotCWlmICghX2J0X3JlYWRwYWdlKHNjYW4sIGRpciwgb2Zm bnVtKSkKKwlpZiAoX2J0X3NraXBfZW5hYmxlZChzbykpCiAJewotCQkvKgotCQkgKiBUaGVyZSdz IG5vIGFjdHVhbGx5LW1hdGNoaW5nIGRhdGEgb24gdGhpcyBwYWdlLiAgVHJ5IHRvIGFkdmFuY2Ug dG8KLQkJICogdGhlIG5leHQgcGFnZS4gIFJldHVybiBmYWxzZSBpZiB0aGVyZSdzIG5vIG1hdGNo aW5nIGRhdGEgYXQgYWxsLgorCQlQYWdlIHBhZ2U7CisJCUJUUGFnZU9wYXF1ZSBvcGFxdWU7CisJ CU9mZnNldE51bWJlciBtaW5vZmY7CisJCWJvb2wgbWF0Y2g7CisJCUJUU2tpcENvbXBhcmVSZXN1 bHQgY21wID0gezB9OworCisJCS8qIGZpcnN0IGNyZWF0ZSB0aGUgc2tpcCBzY2FuIGtleXMgKi8K KwkJX2J0X3NraXBfY3JlYXRlX3NjYW5rZXlzKHJlbCwgc28pOworCisJCS8qIHJlbWVtYmVyIHdo aWNoIHBhZ2Ugd2UgaGF2ZSBwaW5uZWQgKi8KKwkJc28tPmN1cnJQb3MuY3VyclBhZ2UgPSBCdWZm ZXJHZXRCbG9ja051bWJlcihzby0+Y3VyclBvcy5idWYpOworCisJCXBhZ2UgPSBCdWZmZXJHZXRQ YWdlKHNvLT5jdXJyUG9zLmJ1Zik7CisJCW9wYXF1ZSA9IChCVFBhZ2VPcGFxdWUpIFBhZ2VHZXRT cGVjaWFsUG9pbnRlcihwYWdlKTsKKwkJbWlub2ZmID0gUF9GSVJTVERBVEFLRVkob3BhcXVlKTsK KwkJLyogX2JpbnNyY2ggKyBnb2JhY2sgcGFyYW1ldGVyIGNhbiBsZWF2ZSB0aGUgb2ZmbnVtIGJl Zm9yZSB0aGUgZmlyc3QgaXRlbSBvbiB0aGUgcGFnZQorCQkgKiBvciBhZnRlciB0aGUgbGFzdCBp dGVtIG9uIHRoZSBwYWdlLiBpZiB0aGF0IGlzIHRoZSBjYXNlIHdlIG5lZWQgdG8gZWl0aGVyIHN0 ZXAKKwkJICogYmFjayBvciBmb3J3YXJkIG9uZSBwYWdlCiAJCSAqLwotCQlMb2NrQnVmZmVyKHNv LT5jdXJyUG9zLmJ1ZiwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKLQkJaWYgKCFfYnRfc3RlcHBhZ2Uo c2NhbiwgZGlyKSkKKwkJaWYgKG9mZm51bSA8IG1pbm9mZikKKwkJeworCQkJTG9ja0J1ZmZlcihz by0+Y3VyclBvcy5idWYsIEJVRkZFUl9MT0NLX1VOTE9DSyk7CisJCQlpZiAoIV9idF9zdGVwX2Jh Y2tfcGFnZShzY2FuLCAmaXR1cCwgJm9mZm51bSkpCisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisJ CWVsc2UgaWYgKG9mZm51bSA+IFBhZ2VHZXRNYXhPZmZzZXROdW1iZXIocGFnZSkpCisJCXsKKwkJ CUJsb2NrTnVtYmVyIG5leHQgPSBvcGFxdWUtPmJ0cG9fbmV4dDsKKwkJCUxvY2tCdWZmZXIoc28t PmN1cnJQb3MuYnVmLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCQkJaWYgKCFfYnRfc3RlcF9mb3J3 YXJkX3BhZ2Uoc2NhbiwgbmV4dCwgJml0dXAsICZvZmZudW0pKQorCQkJCXJldHVybiBmYWxzZTsK KwkJfQorCisJCWl0dXAgPSAoSW5kZXhUdXBsZSkgUGFnZUdldEl0ZW0ocGFnZSwgUGFnZUdldEl0 ZW1JZChwYWdlLCBvZmZudW0pKTsKKwkJLyogY2hlY2sgaWYgd2UgY2FuIHNraXAgZXZlbiBtb3Jl IGJlY2F1c2Ugd2UgY2FuIHVzZSBuZXcgY29uZGl0aW9ucyAqLworCQlpZiAoX2J0X2hhc19leHRy YV9xdWFsc19hZnRlcl9za2lwKHNvLT5za2lwRGF0YSwgcG9zdGZpeERpciwgaW5za2V5LmtleXN6 KSB8fAorCQkJCSFfYnRfc2tpcF9pc19yZWd1bGFyX21vZGUocHJlZml4RGlyLCBwb3N0Zml4RGly KSkKKwkJeworCQkJX2J0X3NraXBfZXh0cmFfY29uZGl0aW9ucyhzY2FuLCAmaXR1cCwgJm9mZm51 bSwgcHJlZml4RGlyLCBwb3N0Zml4RGlyLCAmY21wKTsKKwkJfQorCQkvKiBub3cgZmluZCB0aGUg dHVwbGUgKi8KKwkJbWF0Y2ggPSBfYnRfc2tpcF9maW5kX25leHQoc2NhbiwgaXR1cCwgb2ZmbnVt LCBwcmVmaXhEaXIsIHBvc3RmaXhEaXIpOworCQlpZiAoIW1hdGNoKQorCQl7CisJCQlpZiAoX2J0 X3NraXBfaXNfYWx3YXlzX3ZhbGlkKHNvKSkKKwkJCQlfYnRfZHJvcF9sb2NrX2FuZF9tYXliZV9w aW4oc2NhbiwgJnNvLT5jdXJyUG9zKTsKIAkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCV9idF9k cm9wX2xvY2tfYW5kX21heWJlX3BpbihzY2FuLCAmc28tPmN1cnJQb3MpOwogCX0KIAllbHNlCiAJ ewotCQkvKiBEcm9wIHRoZSBsb2NrLCBhbmQgbWF5YmUgdGhlIHBpbiwgb24gdGhlIGN1cnJlbnQg cGFnZSAqLwotCQlfYnRfZHJvcF9sb2NrX2FuZF9tYXliZV9waW4oc2NhbiwgJnNvLT5jdXJyUG9z KTsKKwkJLyoKKwkJICogTm93IGxvYWQgZGF0YSBmcm9tIHRoZSBmaXJzdCBwYWdlIG9mIHRoZSBz Y2FuLgorCQkgKi8KKwkJaWYgKCFfYnRfcmVhZHBhZ2Uoc2NhbiwgcHJlZml4RGlyLCAmb2ZmbnVt LCB0cnVlKSkKKwkJeworCQkJLyoKKwkJCSAqIFRoZXJlJ3Mgbm8gYWN0dWFsbHktbWF0Y2hpbmcg ZGF0YSBvbiB0aGlzIHBhZ2UuICBUcnkgdG8gYWR2YW5jZSB0bworCQkJICogdGhlIG5leHQgcGFn ZS4gIFJldHVybiBmYWxzZSBpZiB0aGVyZSdzIG5vIG1hdGNoaW5nIGRhdGEgYXQgYWxsLgorCQkJ ICovCisJCQlMb2NrQnVmZmVyKHNvLT5jdXJyUG9zLmJ1ZiwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsK KwkJCWlmICghX2J0X3N0ZXBwYWdlKHNjYW4sIHByZWZpeERpcikpCisJCQkJcmV0dXJuIGZhbHNl OworCQl9CisJCWVsc2UKKwkJeworCQkJLyogRHJvcCB0aGUgbG9jaywgYW5kIG1heWJlIHRoZSBw aW4sIG9uIHRoZSBjdXJyZW50IHBhZ2UgKi8KKwkJCV9idF9kcm9wX2xvY2tfYW5kX21heWJlX3Bp bihzY2FuLCAmc28tPmN1cnJQb3MpOworCQl9CiAJfQogCiByZWFkY29tcGxldGU6CkBAIC0xNDUy LDI5ICsxMTgzLDExMyBAQCByZWFkY29tcGxldGU6CiAgKgkJc28tPmN1cnJQb3MuYnVmIHRvIElu dmFsaWRCdWZmZXIuCiAgKi8KIGJvb2wKLV9idF9uZXh0KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2Nh bkRpcmVjdGlvbiBkaXIpCitfYnRfbmV4dChJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rp b24gcHJlZml4RGlyLCBTY2FuRGlyZWN0aW9uIHBvc3RmaXhEaXIpCiB7CiAJQlRTY2FuT3BhcXVl IHNvID0gKEJUU2Nhbk9wYXF1ZSkgc2Nhbi0+b3BhcXVlOwogCUJUU2NhblBvc0l0ZW0gKmN1cnJJ dGVtOwogCi0JLyoKLQkgKiBBZHZhbmNlIHRvIG5leHQgdHVwbGUgb24gY3VycmVudCBwYWdlOyBv ciBpZiB0aGVyZSdzIG5vIG1vcmUsIHRyeSB0bwotCSAqIHN0ZXAgdG8gdGhlIG5leHQgcGFnZSB3 aXRoIGRhdGEuCi0JICovCi0JaWYgKFNjYW5EaXJlY3Rpb25Jc0ZvcndhcmQoZGlyKSkKKwlpZiAo IV9idF9za2lwX2VuYWJsZWQoc28pKQogCXsKLQkJaWYgKCsrc28tPmN1cnJQb3MuaXRlbUluZGV4 ID4gc28tPmN1cnJQb3MubGFzdEl0ZW0pCisJCS8qCisJCSAqIEFkdmFuY2UgdG8gbmV4dCB0dXBs ZSBvbiBjdXJyZW50IHBhZ2U7IG9yIGlmIHRoZXJlJ3Mgbm8gbW9yZSwgdHJ5IHRvCisJCSAqIHN0 ZXAgdG8gdGhlIG5leHQgcGFnZSB3aXRoIGRhdGEuCisJCSAqLworCQlpZiAoU2NhbkRpcmVjdGlv bklzRm9yd2FyZChwcmVmaXhEaXIpKQogCQl7Ci0JCQlpZiAoIV9idF9zdGVwcGFnZShzY2FuLCBk aXIpKQotCQkJCXJldHVybiBmYWxzZTsKKwkJCWlmICgrK3NvLT5jdXJyUG9zLml0ZW1JbmRleCA+ IHNvLT5jdXJyUG9zLmxhc3RJdGVtKQorCQkJeworCQkJCWlmICghX2J0X3N0ZXBwYWdlKHNjYW4s IHByZWZpeERpcikpCisJCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKwkJfQorCQllbHNlCisJCXsK KwkJCWlmICgtLXNvLT5jdXJyUG9zLml0ZW1JbmRleCA8IHNvLT5jdXJyUG9zLmZpcnN0SXRlbSkK KwkJCXsKKwkJCQlpZiAoIV9idF9zdGVwcGFnZShzY2FuLCBwcmVmaXhEaXIpKQorCQkJCQlyZXR1 cm4gZmFsc2U7CisJCQl9CiAJCX0KIAl9CiAJZWxzZQogCXsKLQkJaWYgKC0tc28tPmN1cnJQb3Mu aXRlbUluZGV4IDwgc28tPmN1cnJQb3MuZmlyc3RJdGVtKQorCQlib29sIG1hdGNoOworCQlJbmRl eFR1cGxlIGl0dXAgPSBOVUxMOworCQlPZmZzZXROdW1iZXIgb2ZmbnVtID0gSW52YWxpZE9mZnNl dE51bWJlcjsKKworCQlpZiAoU2NhbkRpcmVjdGlvbklzRm9yd2FyZChwb3N0Zml4RGlyKSkKIAkJ ewotCQkJaWYgKCFfYnRfc3RlcHBhZ2Uoc2NhbiwgZGlyKSkKLQkJCQlyZXR1cm4gZmFsc2U7CisJ CQlpZiAoKytzby0+Y3VyclBvcy5pdGVtSW5kZXggPiBzby0+Y3VyclBvcy5sYXN0SXRlbSkKKwkJ CXsKKwkJCQlpZiAocHJlZml4RGlyICE9IHNvLT5za2lwRGF0YS0+Y3VyUG9zLm5leHREaXJlY3Rp b24pCisJCQkJeworCQkJCQkvKiB0aGlzIGhhcHBlbnMgd2hlbiBkb2luZyBhIGN1cnNvciBzY2Fu IGFuZCBjaGFuZ2luZworCQkJCQkgKiBkaXJlY3Rpb24gaW4gdGhlIG1lYW50aW1lLiBlZy4gZmly c3QgZmV0Y2ggZm9yd2FyZHMsCisJCQkJCSAqIHRoZW4gYmFja3dhcmRzLgorCQkJCQkgKiB3ZSAq YWx3YXlzKiBqdXN0IGdvIHRvIHRoZSBuZXh0IHBhZ2UgaW5zdGVhZCBvZiBza2lwcGluZywKKwkJ CQkJICogYmVjYXVzZSB0aGF0J3MgdGhlIG9ubHkgc2FmZSBvcHRpb24uCisJCQkJCSAqLworCQkJ CQlzby0+c2tpcERhdGEtPmN1clBvcy5uZXh0QWN0aW9uID0gU2tpcFN0YXRlTmV4dDsKKwkJCQkJ c28tPnNraXBEYXRhLT5jdXJQb3MubmV4dERpcmVjdGlvbiA9IHByZWZpeERpcjsKKwkJCQl9CisK KwkJCQlpZiAoc28tPnNraXBEYXRhLT5jdXJQb3MubmV4dEFjdGlvbiA9PSBTa2lwU3RhdGVOZXh0 KQorCQkJCXsKKwkJCQkJLyogd2Ugc2hvdWxkIGp1c3QgZ28gZm9yd2FyZHMgb25lIHBhZ2UsIG5v IHNraXBwaW5nIGlzIG5lY2Vzc2FyeSAqLworCQkJCQlpZiAoIV9idF9zdGVwX2ZvcndhcmRfcGFn ZShzY2FuLCBzby0+Y3VyclBvcy5uZXh0UGFnZSwgJml0dXAsICZvZmZudW0pKQorCQkJCQkJcmV0 dXJuIGZhbHNlOworCQkJCX0KKwkJCQllbHNlIGlmIChzby0+c2tpcERhdGEtPmN1clBvcy5uZXh0 QWN0aW9uID09IFNraXBTdGF0ZVN0b3ApCisJCQkJeworCQkJCQkvKiB3ZSd2ZSByZWFjaGVkIHRo ZSBlbmQgb2YgdGhlIGluZGV4LCBvciB3ZSBjYW5ub3QgZmluZCBhbnkgbW9yZSBrZXlzICovCisJ CQkJCUJUU2NhblBvc1VucGluSWZQaW5uZWQoc28tPmN1cnJQb3MpOworCQkJCQlCVFNjYW5Qb3NJ bnZhbGlkYXRlKHNvLT5jdXJyUG9zKTsKKwkJCQkJcmV0dXJuIGZhbHNlOworCQkJCX0KKworCQkJ CS8qIG5vdyBmaW5kIHRoZSBuZXh0IHR1cGxlICovCisJCQkJbWF0Y2ggPSBfYnRfc2tpcF9maW5k X25leHQoc2NhbiwgaXR1cCwgb2ZmbnVtLCBwcmVmaXhEaXIsIHBvc3RmaXhEaXIpOworCQkJCWlm ICghbWF0Y2gpCisJCQkJeworCQkJCQlpZiAoX2J0X3NraXBfaXNfYWx3YXlzX3ZhbGlkKHNvKSkK KwkJCQkJCV9idF9kcm9wX2xvY2tfYW5kX21heWJlX3BpbihzY2FuLCAmc28tPmN1cnJQb3MpOwor CQkJCQlyZXR1cm4gZmFsc2U7CisJCQkJfQorCQkJCV9idF9kcm9wX2xvY2tfYW5kX21heWJlX3Bp bihzY2FuLCAmc28tPmN1cnJQb3MpOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJaWYgKC0t c28tPmN1cnJQb3MuaXRlbUluZGV4IDwgc28tPmN1cnJQb3MuZmlyc3RJdGVtKQorCQkJeworCQkJ CWlmIChwcmVmaXhEaXIgIT0gc28tPnNraXBEYXRhLT5jdXJQb3MubmV4dERpcmVjdGlvbikKKwkJ CQl7CisJCQkJCXNvLT5za2lwRGF0YS0+Y3VyUG9zLm5leHRBY3Rpb24gPSBTa2lwU3RhdGVOZXh0 OworCQkJCQlzby0+c2tpcERhdGEtPmN1clBvcy5uZXh0RGlyZWN0aW9uID0gcHJlZml4RGlyOwor CQkJCX0KKworCQkJCWlmIChzby0+c2tpcERhdGEtPmN1clBvcy5uZXh0QWN0aW9uID09IFNraXBT dGF0ZU5leHQpCisJCQkJeworCQkJCQlpZiAoIV9idF9zdGVwX2JhY2tfcGFnZShzY2FuLCAmaXR1 cCwgJm9mZm51bSkpCisJCQkJCQlyZXR1cm4gZmFsc2U7CisJCQkJfQorCQkJCWVsc2UgaWYgKHNv LT5za2lwRGF0YS0+Y3VyUG9zLm5leHRBY3Rpb24gPT0gU2tpcFN0YXRlU3RvcCkKKwkJCQl7CisJ CQkJCUJUU2NhblBvc1VucGluSWZQaW5uZWQoc28tPmN1cnJQb3MpOworCQkJCQlCVFNjYW5Qb3NJ bnZhbGlkYXRlKHNvLT5jdXJyUG9zKTsKKwkJCQkJcmV0dXJuIGZhbHNlOworCQkJCX0KKworCQkJ CS8qIG5vdyBmaW5kIHRoZSBuZXh0IHR1cGxlICovCisJCQkJbWF0Y2ggPSBfYnRfc2tpcF9maW5k X25leHQoc2NhbiwgaXR1cCwgb2ZmbnVtLCBwcmVmaXhEaXIsIHBvc3RmaXhEaXIpOworCQkJCWlm ICghbWF0Y2gpCisJCQkJeworCQkJCQlpZiAoX2J0X3NraXBfaXNfYWx3YXlzX3ZhbGlkKHNvKSkK KwkJCQkJCV9idF9kcm9wX2xvY2tfYW5kX21heWJlX3BpbihzY2FuLCAmc28tPmN1cnJQb3MpOwor CQkJCQlyZXR1cm4gZmFsc2U7CisJCQkJfQorCQkJCV9idF9kcm9wX2xvY2tfYW5kX21heWJlX3Bp bihzY2FuLCAmc28tPmN1cnJQb3MpOworCQkJfQogCQl9CiAJfQogCkBAIC0xNTA2LDggKzEzMjEs OCBAQCBfYnRfbmV4dChJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyKQogICoK ICAqIFJldHVybnMgdHJ1ZSBpZiBhbnkgbWF0Y2hpbmcgaXRlbXMgZm91bmQgb24gdGhlIHBhZ2Us IGZhbHNlIGlmIG5vbmUuCiAgKi8KLXN0YXRpYyBib29sCi1fYnRfcmVhZHBhZ2UoSW5kZXhTY2Fu RGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIGRpciwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKK2Jvb2wK K19idF9yZWFkcGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyLCBPZmZz ZXROdW1iZXIgKm9mZm51bSwgYm9vbCBpc1JlZ3VsYXJNb2RlKQogewogCUJUU2Nhbk9wYXF1ZSBz byA9IChCVFNjYW5PcGFxdWUpIHNjYW4tPm9wYXF1ZTsKIAlQYWdlCQlwYWdlOwpAQCAtMTUxNyw2 ICsxMzMyLDcgQEAgX2J0X3JlYWRwYWdlKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlv biBkaXIsIE9mZnNldE51bWJlciBvZmZudW0pCiAJaW50CQkJaXRlbUluZGV4OwogCWJvb2wJCWNv bnRpbnVlc2NhbjsKIAlpbnQJCQlpbmRuYXR0czsKKwlpbnQJCQlwcmVmaXhza2lwaW5kZXg7CiAK IAkvKgogCSAqIFdlIG11c3QgaGF2ZSB0aGUgYnVmZmVyIHBpbm5lZCBhbmQgbG9ja2VkLCBidXQg dGhlIHVzdWFsIG1hY3JvIGNhbid0IGJlCkBAIC0xNTc1LDExICsxMzkxLDExIEBAIF9idF9yZWFk cGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyLCBPZmZzZXROdW1iZXIg b2ZmbnVtKQogCQkvKiBsb2FkIGl0ZW1zW10gaW4gYXNjZW5kaW5nIG9yZGVyICovCiAJCWl0ZW1J bmRleCA9IDA7CiAKLQkJb2ZmbnVtID0gTWF4KG9mZm51bSwgbWlub2ZmKTsKKwkJKm9mZm51bSA9 IE1heCgqb2ZmbnVtLCBtaW5vZmYpOwogCi0JCXdoaWxlIChvZmZudW0gPD0gbWF4b2ZmKQorCQl3 aGlsZSAoKm9mZm51bSA8PSBtYXhvZmYpCiAJCXsKLQkJCUl0ZW1JZAkJaWlkID0gUGFnZUdldEl0 ZW1JZChwYWdlLCBvZmZudW0pOworCQkJSXRlbUlkCQlpaWQgPSBQYWdlR2V0SXRlbUlkKHBhZ2Us ICpvZmZudW0pOwogCQkJSW5kZXhUdXBsZQlpdHVwOwogCiAJCQkvKgpAQCAtMTU4OCwxOSArMTQw NCwxOSBAQCBfYnRfcmVhZHBhZ2UoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIGRp ciwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKIAkJCSAqLwogCQkJaWYgKHNjYW4tPmlnbm9yZV9raWxs ZWRfdHVwbGVzICYmIEl0ZW1JZElzRGVhZChpaWQpKQogCQkJewotCQkJCW9mZm51bSA9IE9mZnNl dE51bWJlck5leHQob2ZmbnVtKTsKKwkJCQkqb2ZmbnVtID0gT2Zmc2V0TnVtYmVyTmV4dCgqb2Zm bnVtKTsKIAkJCQljb250aW51ZTsKIAkJCX0KIAogCQkJaXR1cCA9IChJbmRleFR1cGxlKSBQYWdl R2V0SXRlbShwYWdlLCBpaWQpOwogCi0JCQlpZiAoX2J0X2NoZWNra2V5cyhzY2FuLCBpdHVwLCBp bmRuYXR0cywgZGlyLCAmY29udGludWVzY2FuKSkKKwkJCWlmIChfYnRfY2hlY2trZXlzX2V4dGVu ZGVkKHNjYW4sIGl0dXAsIGluZG5hdHRzLCBkaXIsIGlzUmVndWxhck1vZGUsICZjb250aW51ZXNj YW4sICZwcmVmaXhza2lwaW5kZXgpKQogCQkJewogCQkJCS8qIHR1cGxlIHBhc3NlcyBhbGwgc2Nh biBrZXkgY29uZGl0aW9ucyAqLwogCQkJCWlmICghQlRyZWVUdXBsZUlzUG9zdGluZyhpdHVwKSkK IAkJCQl7CiAJCQkJCS8qIFJlbWVtYmVyIGl0ICovCi0JCQkJCV9idF9zYXZlaXRlbShzbywgaXRl bUluZGV4LCBvZmZudW0sIGl0dXApOworCQkJCQlfYnRfc2F2ZWl0ZW0oc28sIGl0ZW1JbmRleCwg Km9mZm51bSwgaXR1cCk7CiAJCQkJCWl0ZW1JbmRleCsrOwogCQkJCX0KIAkJCQllbHNlCkBAIC0x NjEyLDI2ICsxNDI4LDMwIEBAIF9idF9yZWFkcGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5E aXJlY3Rpb24gZGlyLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJCQkgKiBUSUQKIAkJCQkJICov CiAJCQkJCXR1cGxlT2Zmc2V0ID0KLQkJCQkJCV9idF9zZXR1cHBvc3RpbmdpdGVtcyhzbywgaXRl bUluZGV4LCBvZmZudW0sCisJCQkJCQlfYnRfc2V0dXBwb3N0aW5naXRlbXMoc28sIGl0ZW1JbmRl eCwgKm9mZm51bSwKIAkJCQkJCQkJCQkJICBCVHJlZVR1cGxlR2V0UG9zdGluZ04oaXR1cCwgMCks CiAJCQkJCQkJCQkJCSAgaXR1cCk7CiAJCQkJCWl0ZW1JbmRleCsrOwogCQkJCQkvKiBSZW1lbWJl ciBhZGRpdGlvbmFsIFRJRHMgKi8KIAkJCQkJZm9yIChpbnQgaSA9IDE7IGkgPCBCVHJlZVR1cGxl R2V0TlBvc3RpbmcoaXR1cCk7IGkrKykKIAkJCQkJewotCQkJCQkJX2J0X3NhdmVwb3N0aW5naXRl bShzbywgaXRlbUluZGV4LCBvZmZudW0sCisJCQkJCQlfYnRfc2F2ZXBvc3RpbmdpdGVtKHNvLCBp dGVtSW5kZXgsICpvZmZudW0sCiAJCQkJCQkJCQkJCUJUcmVlVHVwbGVHZXRQb3N0aW5nTihpdHVw LCBpKSwKIAkJCQkJCQkJCQkJdHVwbGVPZmZzZXQpOwogCQkJCQkJaXRlbUluZGV4Kys7CiAJCQkJ CX0KIAkJCQl9CiAJCQl9CisKKwkJCSpvZmZudW0gPSBPZmZzZXROdW1iZXJOZXh0KCpvZmZudW0p OworCiAJCQkvKiBXaGVuICFjb250aW51ZXNjYW4sIHRoZXJlIGNhbid0IGJlIGFueSBtb3JlIG1h dGNoZXMsIHNvIHN0b3AgKi8KIAkJCWlmICghY29udGludWVzY2FuKQogCQkJCWJyZWFrOwotCi0J CQlvZmZudW0gPSBPZmZzZXROdW1iZXJOZXh0KG9mZm51bSk7CisJCQlpZiAoIWlzUmVndWxhck1v ZGUgJiYgcHJlZml4c2tpcGluZGV4ICE9IC0xKQorCQkJCWJyZWFrOwogCQl9CisJCSpvZmZudW0g PSBPZmZzZXROdW1iZXJQcmV2KCpvZmZudW0pOwogCiAJCS8qCiAJCSAqIFdlIGRvbid0IG5lZWQg dG8gdmlzaXQgcGFnZSB0byB0aGUgcmlnaHQgd2hlbiB0aGUgaGlnaCBrZXkKQEAgLTE2NTEsNyAr MTQ3MSw3IEBAIF9idF9yZWFkcGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24g ZGlyLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJaW50CQkJdHJ1bmNhdHQ7CiAKIAkJCXRydW5j YXR0ID0gQlRyZWVUdXBsZUdldE5BdHRzKGl0dXAsIHNjYW4tPmluZGV4UmVsYXRpb24pOwotCQkJ X2J0X2NoZWNra2V5cyhzY2FuLCBpdHVwLCB0cnVuY2F0dCwgZGlyLCAmY29udGludWVzY2FuKTsK KwkJCV9idF9jaGVja2tleXMoc2NhbiwgaXR1cCwgdHJ1bmNhdHQsIGRpciwgJmNvbnRpbnVlc2Nh biwgTlVMTCk7CiAJCX0KIAogCQlpZiAoIWNvbnRpbnVlc2NhbikKQEAgLTE2NjcsMTEgKzE0ODcs MTEgQEAgX2J0X3JlYWRwYWdlKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIs IE9mZnNldE51bWJlciBvZmZudW0pCiAJCS8qIGxvYWQgaXRlbXNbXSBpbiBkZXNjZW5kaW5nIG9y ZGVyICovCiAJCWl0ZW1JbmRleCA9IE1heFRJRHNQZXJCVHJlZVBhZ2U7CiAKLQkJb2ZmbnVtID0g TWluKG9mZm51bSwgbWF4b2ZmKTsKKwkJKm9mZm51bSA9IE1pbigqb2ZmbnVtLCBtYXhvZmYpOwog Ci0JCXdoaWxlIChvZmZudW0gPj0gbWlub2ZmKQorCQl3aGlsZSAoKm9mZm51bSA+PSBtaW5vZmYp CiAJCXsKLQkJCUl0ZW1JZAkJaWlkID0gUGFnZUdldEl0ZW1JZChwYWdlLCBvZmZudW0pOworCQkJ SXRlbUlkCQlpaWQgPSBQYWdlR2V0SXRlbUlkKHBhZ2UsICpvZmZudW0pOwogCQkJSW5kZXhUdXBs ZQlpdHVwOwogCQkJYm9vbAkJdHVwbGVfYWxpdmU7CiAJCQlib29sCQlwYXNzZXNfcXVhbHM7CkBA IC0xNjg4LDEwICsxNTA4LDEwIEBAIF9idF9yZWFkcGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNj YW5EaXJlY3Rpb24gZGlyLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJICovCiAJCQlpZiAoc2Nh bi0+aWdub3JlX2tpbGxlZF90dXBsZXMgJiYgSXRlbUlkSXNEZWFkKGlpZCkpCiAJCQl7Ci0JCQkJ QXNzZXJ0KG9mZm51bSA+PSBQX0ZJUlNUREFUQUtFWShvcGFxdWUpKTsKLQkJCQlpZiAob2ZmbnVt ID4gUF9GSVJTVERBVEFLRVkob3BhcXVlKSkKKwkJCQlBc3NlcnQoKm9mZm51bSA+PSBQX0ZJUlNU REFUQUtFWShvcGFxdWUpKTsKKwkJCQlpZiAoKm9mZm51bSA+IFBfRklSU1REQVRBS0VZKG9wYXF1 ZSkpCiAJCQkJewotCQkJCQlvZmZudW0gPSBPZmZzZXROdW1iZXJQcmV2KG9mZm51bSk7CisJCQkJ CSpvZmZudW0gPSBPZmZzZXROdW1iZXJQcmV2KCpvZmZudW0pOwogCQkJCQljb250aW51ZTsKIAkJ CQl9CiAKQEAgLTE3MDIsOCArMTUyMiw4IEBAIF9idF9yZWFkcGFnZShJbmRleFNjYW5EZXNjIHNj YW4sIFNjYW5EaXJlY3Rpb24gZGlyLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCiAJCQlpdHVwID0g KEluZGV4VHVwbGUpIFBhZ2VHZXRJdGVtKHBhZ2UsIGlpZCk7CiAKLQkJCXBhc3Nlc19xdWFscyA9 IF9idF9jaGVja2tleXMoc2NhbiwgaXR1cCwgaW5kbmF0dHMsIGRpciwKLQkJCQkJCQkJCQkgJmNv bnRpbnVlc2Nhbik7CisJCQlwYXNzZXNfcXVhbHMgPSBfYnRfY2hlY2trZXlzX2V4dGVuZGVkKHNj YW4sIGl0dXAsIGluZG5hdHRzLCBkaXIsCisJCQkJCQkJCQkJCQkgIGlzUmVndWxhck1vZGUsICZj b250aW51ZXNjYW4sICZwcmVmaXhza2lwaW5kZXgpOwogCQkJaWYgKHBhc3Nlc19xdWFscyAmJiB0 dXBsZV9hbGl2ZSkKIAkJCXsKIAkJCQkvKiB0dXBsZSBwYXNzZXMgYWxsIHNjYW4ga2V5IGNvbmRp dGlvbnMgKi8KQEAgLTE3MTEsNyArMTUzMSw3IEBAIF9idF9yZWFkcGFnZShJbmRleFNjYW5EZXNj IHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJCXsKIAkJ CQkJLyogUmVtZW1iZXIgaXQgKi8KIAkJCQkJaXRlbUluZGV4LS07Ci0JCQkJCV9idF9zYXZlaXRl bShzbywgaXRlbUluZGV4LCBvZmZudW0sIGl0dXApOworCQkJCQlfYnRfc2F2ZWl0ZW0oc28sIGl0 ZW1JbmRleCwgKm9mZm51bSwgaXR1cCk7CiAJCQkJfQogCQkJCWVsc2UKIAkJCQl7CkBAIC0xNzI5 LDI4ICsxNTQ5LDMyIEBAIF9idF9yZWFkcGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJl Y3Rpb24gZGlyLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJCQkgKi8KIAkJCQkJaXRlbUluZGV4 LS07CiAJCQkJCXR1cGxlT2Zmc2V0ID0KLQkJCQkJCV9idF9zZXR1cHBvc3RpbmdpdGVtcyhzbywg aXRlbUluZGV4LCBvZmZudW0sCisJCQkJCQlfYnRfc2V0dXBwb3N0aW5naXRlbXMoc28sIGl0ZW1J bmRleCwgKm9mZm51bSwKIAkJCQkJCQkJCQkJICBCVHJlZVR1cGxlR2V0UG9zdGluZ04oaXR1cCwg MCksCiAJCQkJCQkJCQkJCSAgaXR1cCk7CiAJCQkJCS8qIFJlbWVtYmVyIGFkZGl0aW9uYWwgVElE cyAqLwogCQkJCQlmb3IgKGludCBpID0gMTsgaSA8IEJUcmVlVHVwbGVHZXROUG9zdGluZyhpdHVw KTsgaSsrKQogCQkJCQl7CiAJCQkJCQlpdGVtSW5kZXgtLTsKLQkJCQkJCV9idF9zYXZlcG9zdGlu Z2l0ZW0oc28sIGl0ZW1JbmRleCwgb2ZmbnVtLAorCQkJCQkJX2J0X3NhdmVwb3N0aW5naXRlbShz bywgaXRlbUluZGV4LCAqb2ZmbnVtLAogCQkJCQkJCQkJCQlCVHJlZVR1cGxlR2V0UG9zdGluZ04o aXR1cCwgaSksCiAJCQkJCQkJCQkJCXR1cGxlT2Zmc2V0KTsKIAkJCQkJfQogCQkJCX0KIAkJCX0K KworCQkJKm9mZm51bSA9IE9mZnNldE51bWJlclByZXYoKm9mZm51bSk7CisKIAkJCWlmICghY29u dGludWVzY2FuKQogCQkJewogCQkJCS8qIHRoZXJlIGNhbid0IGJlIGFueSBtb3JlIG1hdGNoZXMs IHNvIHN0b3AgKi8KIAkJCQlzby0+Y3VyclBvcy5tb3JlTGVmdCA9IGZhbHNlOwogCQkJCWJyZWFr OwogCQkJfQotCi0JCQlvZmZudW0gPSBPZmZzZXROdW1iZXJQcmV2KG9mZm51bSk7CisJCQlpZiAo IWlzUmVndWxhck1vZGUgJiYgcHJlZml4c2tpcGluZGV4ICE9IC0xKQorCQkJCWJyZWFrOwogCQl9 CisJCSpvZmZudW0gPSBPZmZzZXROdW1iZXJOZXh0KCpvZmZudW0pOwogCiAJCUFzc2VydChpdGVt SW5kZXggPj0gMCk7CiAJCXNvLT5jdXJyUG9zLmZpcnN0SXRlbSA9IGl0ZW1JbmRleDsKQEAgLTE4 NTgsNyArMTY4Miw3IEBAIF9idF9zYXZlcG9zdGluZ2l0ZW0oQlRTY2FuT3BhcXVlIHNvLCBpbnQg aXRlbUluZGV4LCBPZmZzZXROdW1iZXIgb2ZmbnVtLAogICogcmVhZCBsb2NrLCBvbiB0aGF0IHBh Z2UuICBJZiB3ZSBkbyBub3QgaG9sZCB0aGUgcGluLCB3ZSBzZXQgc28tPmN1cnJQb3MuYnVmCiAg KiB0byBJbnZhbGlkQnVmZmVyLiAgV2UgcmV0dXJuIHRydWUgdG8gaW5kaWNhdGUgc3VjY2Vzcy4K ICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIF9idF9zdGVwcGFnZShJbmRleFNjYW5EZXNjIHNjYW4s IFNjYW5EaXJlY3Rpb24gZGlyKQogewogCUJUU2Nhbk9wYXF1ZSBzbyA9IChCVFNjYW5PcGFxdWUp IHNjYW4tPm9wYXF1ZTsKQEAgLTE4ODYsNiArMTcxMCw5IEBAIF9idF9zdGVwcGFnZShJbmRleFNj YW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyKQogCQlpZiAoc28tPm1hcmtUdXBsZXMpCiAJ CQltZW1jcHkoc28tPm1hcmtUdXBsZXMsIHNvLT5jdXJyVHVwbGVzLAogCQkJCSAgIHNvLT5jdXJy UG9zLm5leHRUdXBsZU9mZnNldCk7CisJCWlmIChzby0+c2tpcERhdGEpCisJCQltZW1jcHkoJnNv LT5za2lwRGF0YS0+bWFya1BvcywgJnNvLT5za2lwRGF0YS0+Y3VyUG9zLAorCQkJCSAgIHNpemVv ZihCVFNraXBQb3NEYXRhKSk7CiAJCXNvLT5tYXJrUG9zLml0ZW1JbmRleCA9IHNvLT5tYXJrSXRl bUluZGV4OwogCQlzby0+bWFya0l0ZW1JbmRleCA9IC0xOwogCX0KQEAgLTE5NjUsMTMgKzE3OTIs MTQgQEAgX2J0X3N0ZXBwYWdlKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIp CiAgKiBJZiB0aGVyZSBhcmUgbm8gbW9yZSBtYXRjaGluZyByZWNvcmRzIGluIHRoZSBnaXZlbiBk aXJlY3Rpb24sIHdlIGRyb3AgYWxsCiAgKiBsb2NrcyBhbmQgcGlucywgc2V0IHNvLT5jdXJyUG9z LmJ1ZiB0byBJbnZhbGlkQnVmZmVyLCBhbmQgcmV0dXJuIGZhbHNlLgogICovCi1zdGF0aWMgYm9v bAorYm9vbAogX2J0X3JlYWRuZXh0cGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIEJsb2NrTnVtYmVy IGJsa25vLCBTY2FuRGlyZWN0aW9uIGRpcikKIHsKIAlCVFNjYW5PcGFxdWUgc28gPSAoQlRTY2Fu T3BhcXVlKSBzY2FuLT5vcGFxdWU7CiAJUmVsYXRpb24JcmVsOwogCVBhZ2UJCXBhZ2U7CiAJQlRQ YWdlT3BhcXVlIG9wYXF1ZTsKKwlPZmZzZXROdW1iZXIgb2ZmbnVtOwogCWJvb2wJCXN0YXR1cyA9 IHRydWU7CiAKIAlyZWwgPSBzY2FuLT5pbmRleFJlbGF0aW9uOwpAQCAtMjAwMyw3ICsxODMxLDgg QEAgX2J0X3JlYWRuZXh0cGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIEJsb2NrTnVtYmVyIGJsa25v LCBTY2FuRGlyZWN0aW9uIGRpcikKIAkJCQlQcmVkaWNhdGVMb2NrUGFnZShyZWwsIGJsa25vLCBz Y2FuLT54c19zbmFwc2hvdCk7CiAJCQkJLyogc2VlIGlmIHRoZXJlIGFyZSBhbnkgbWF0Y2hlcyBv biB0aGlzIHBhZ2UgKi8KIAkJCQkvKiBub3RlIHRoYXQgdGhpcyB3aWxsIGNsZWFyIG1vcmVSaWdo dCBpZiB3ZSBjYW4gc3RvcCAqLwotCQkJCWlmIChfYnRfcmVhZHBhZ2Uoc2NhbiwgZGlyLCBQX0ZJ UlNUREFUQUtFWShvcGFxdWUpKSkKKwkJCQlvZmZudW0gPSBQX0ZJUlNUREFUQUtFWShvcGFxdWUp OworCQkJCWlmIChfYnRfcmVhZHBhZ2Uoc2NhbiwgZGlyLCAmb2ZmbnVtLCB0cnVlKSkKIAkJCQkJ YnJlYWs7CiAJCQl9CiAJCQllbHNlIGlmIChzY2FuLT5wYXJhbGxlbF9zY2FuICE9IE5VTEwpCkBA IC0yMTA1LDcgKzE5MzQsOCBAQCBfYnRfcmVhZG5leHRwYWdlKEluZGV4U2NhbkRlc2Mgc2Nhbiwg QmxvY2tOdW1iZXIgYmxrbm8sIFNjYW5EaXJlY3Rpb24gZGlyKQogCQkJCVByZWRpY2F0ZUxvY2tQ YWdlKHJlbCwgQnVmZmVyR2V0QmxvY2tOdW1iZXIoc28tPmN1cnJQb3MuYnVmKSwgc2Nhbi0+eHNf c25hcHNob3QpOwogCQkJCS8qIHNlZSBpZiB0aGVyZSBhcmUgYW55IG1hdGNoZXMgb24gdGhpcyBw YWdlICovCiAJCQkJLyogbm90ZSB0aGF0IHRoaXMgd2lsbCBjbGVhciBtb3JlTGVmdCBpZiB3ZSBj YW4gc3RvcCAqLwotCQkJCWlmIChfYnRfcmVhZHBhZ2Uoc2NhbiwgZGlyLCBQYWdlR2V0TWF4T2Zm c2V0TnVtYmVyKHBhZ2UpKSkKKwkJCQlvZmZudW0gPSBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKHBh Z2UpOworCQkJCWlmIChfYnRfcmVhZHBhZ2Uoc2NhbiwgZGlyLCAmb2ZmbnVtLCB0cnVlKSkKIAkJ CQkJYnJlYWs7CiAJCQl9CiAJCQllbHNlIGlmIChzY2FuLT5wYXJhbGxlbF9zY2FuICE9IE5VTEwp CkBAIC0yMTczLDcgKzIwMDMsNyBAQCBfYnRfcGFyYWxsZWxfcmVhZHBhZ2UoSW5kZXhTY2FuRGVz YyBzY2FuLCBCbG9ja051bWJlciBibGtubywgU2NhbkRpcmVjdGlvbiBkaXIpCiAgKiB0byBiZSBo YWxmLWRlYWQ7IHRoZSBjYWxsZXIgc2hvdWxkIGNoZWNrIHRoYXQgY29uZGl0aW9uIGFuZCBzdGVw IGxlZnQKICAqIGFnYWluIGlmIGl0J3MgaW1wb3J0YW50LgogICovCi1zdGF0aWMgQnVmZmVyCitC dWZmZXIKIF9idF93YWxrX2xlZnQoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLCBTbmFwc2hvdCBz bmFwc2hvdCkKIHsKIAlQYWdlCQlwYWdlOwpAQCAtMjQzNyw3ICsyMjY3LDcgQEAgX2J0X2VuZHBv aW50KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIpCiAJLyoKIAkgKiBOb3cg bG9hZCBkYXRhIGZyb20gdGhlIGZpcnN0IHBhZ2Ugb2YgdGhlIHNjYW4uCiAJICovCi0JaWYgKCFf YnRfcmVhZHBhZ2Uoc2NhbiwgZGlyLCBzdGFydCkpCisJaWYgKCFfYnRfcmVhZHBhZ2Uoc2Nhbiwg ZGlyLCAmc3RhcnQsIHRydWUpKQogCXsKIAkJLyoKIAkJICogVGhlcmUncyBubyBhY3R1YWxseS1t YXRjaGluZyBkYXRhIG9uIHRoaXMgcGFnZS4gIFRyeSB0byBhZHZhbmNlIHRvCkBAIC0yNDY2LDcg KzIyOTYsNyBAQCBfYnRfZW5kcG9pbnQoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9u IGRpcikKICAqIF9idF9pbml0aWFsaXplX21vcmVfZGF0YSgpIC0tIGluaXRpYWxpemUgbW9yZUxl ZnQvbW9yZVJpZ2h0IGFwcHJvcHJpYXRlbHkKICAqIGZvciBzY2FuIGRpcmVjdGlvbgogICovCi1z dGF0aWMgaW5saW5lIHZvaWQKK2lubGluZSB2b2lkCiBfYnRfaW5pdGlhbGl6ZV9tb3JlX2RhdGEo QlRTY2FuT3BhcXVlIHNvLCBTY2FuRGlyZWN0aW9uIGRpcikKIHsKIAkvKiBpbml0aWFsaXplIG1v cmVMZWZ0L21vcmVSaWdodCBhcHByb3ByaWF0ZWx5IGZvciBzY2FuIGRpcmVjdGlvbiAqLwpAQCAt MjQ4MywzICsyMzEzLDI1IEBAIF9idF9pbml0aWFsaXplX21vcmVfZGF0YShCVFNjYW5PcGFxdWUg c28sIFNjYW5EaXJlY3Rpb24gZGlyKQogCXNvLT5udW1LaWxsZWQgPSAwOwkJCS8qIGp1c3QgcGFy YW5vaWEgKi8KIAlzby0+bWFya0l0ZW1JbmRleCA9IC0xOwkJLyogZGl0dG8gKi8KIH0KKworLyog Rm9yd2FyZCB0aGUgY2FsbCB0byBlaXRoZXIgX2J0X2NoZWNra2V5cywgd2hpY2ggaXMgYSBzaW1w bGUKKyAqIGFuZCBmYXN0ZXN0IHdheSBvZiBjaGVja2luZyBrZXlzLCBvciB0byBfYnRfY2hlY2tr ZXlzX3NraXAsCisgKiB3aGljaCBpcyBhIHNsb3dlciB3YXkgdG8gY2hlY2sgdGhlIGtleXMsIGJ1 dCBpdCB3aWxsIHJldHVybiBleHRyYQorICogaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciBvciBu b3Qgd2Ugc2hvdWxkIHN0b3AgcmVhZGluZyB0aGUgY3VycmVudCBwYWdlCisgKiBhbmQgc2tpcC4g VGhlIGV4cGVuc2l2ZSBjaGVja2luZyBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuICFpc1JlZ3VsYXJN b2RlLCBlZy4KKyAqIHdoZW4gcHJlZml4RGlyIT1wb3N0Zml4RGlyLCB3aGljaCBvbmx5IGhhcHBl bnMgd2hlbiBzY2FubmluZyBmcm9tIGN1cnNvcnMgYmFja3dhcmRzCisgKi8KK3N0YXRpYyBpbmxp bmUgYm9vbAorX2J0X2NoZWNra2V5c19leHRlbmRlZChJbmRleFNjYW5EZXNjIHNjYW4sIEluZGV4 VHVwbGUgdHVwbGUsIGludCB0dXBuYXR0cywKKwkJCQkJICAgU2NhbkRpcmVjdGlvbiBkaXIsIGJv b2wgaXNSZWd1bGFyTW9kZSwKKwkJCQkJICAgYm9vbCAqY29udGludWVzY2FuLCBpbnQgKnByZWZp eHNraXBpbmRleCkKK3sKKwlpZiAoaXNSZWd1bGFyTW9kZSkKKwl7CisJCXJldHVybiBfYnRfY2hl Y2trZXlzKHNjYW4sIHR1cGxlLCB0dXBuYXR0cywgZGlyLCBjb250aW51ZXNjYW4sIHByZWZpeHNr aXBpbmRleCk7CisJfQorCWVsc2UKKwl7CisJCXJldHVybiBfYnRfY2hlY2trZXlzX3NraXAoc2Nh biwgdHVwbGUsIHR1cG5hdHRzLCBkaXIsIGNvbnRpbnVlc2NhbiwgcHJlZml4c2tpcGluZGV4KTsK Kwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNraXAuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c2tpcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLjc4NTAyMzBiOWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNraXAuYwpAQCAtMCwwICsxLDEzMTcgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIG5idHNraXAuYworICoJICBTZWFyY2ggY29kZSByZWxhdGVkIHRv IHNraXAgc2NhbiBmb3IgcG9zdGdyZXMgYnRyZWVzLgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTYtMjAyMCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAK KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0 eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS9uYnRza2lwLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9uYnRyZWUuaCIKKyNpbmNs dWRlICJhY2Nlc3MvcmVsc2Nhbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgorI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgorI2luY2x1ZGUgInN0 b3JhZ2UvcHJlZGljYXRlLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVk ZSAidXRpbHMvcmVsLmgiCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfYnRfdXBkYXRlX3NjYW5rZXlf d2l0aF90dXBsZShCVFNjYW5JbnNlcnQgc2NhbmtleXMsCisJCQkJCQkJCQkJCVJlbGF0aW9uIGlu ZGV4UmVsLCBJbmRleFR1cGxlIGl0dXAsIGludCBudW1hdHRycyk7CitzdGF0aWMgaW5saW5lIGJv b2wgX2J0X3NjYW5rZXlfd2l0aGluX3BhZ2UoSW5kZXhTY2FuRGVzYyBzY2FuLCBCVFNjYW5JbnNl cnQga2V5LCBCdWZmZXIgYnVmKTsKK3N0YXRpYyBpbmxpbmUgaW50MzIgX2J0X2NvbXBhcmVfdW50 aWwoUmVsYXRpb24gcmVsLCBCVFNjYW5JbnNlcnQga2V5LCBJbmRleFR1cGxlIGl0dXAsIGludCBw cmVmaXgpOworc3RhdGljIGlubGluZSB2b2lkCitfYnRfZGV0ZXJtaW5lX25leHRfYWN0aW9uKElu ZGV4U2NhbkRlc2Mgc2NhbiwgQlRTa2lwQ29tcGFyZVJlc3VsdCAqY21wLCBPZmZzZXROdW1iZXIg Zmlyc3RPZmZudW0sCisJCQkJCQkgIE9mZnNldE51bWJlciBsYXN0T2ZmbnVtLCBTY2FuRGlyZWN0 aW9uIHBvc3RmaXhEaXIsIEJUU2tpcFN0YXRlICpuZXh0QWN0aW9uKTsKK3N0YXRpYyBpbmxpbmUg dm9pZAorX2J0X2RldGVybWluZV9uZXh0X2FjdGlvbl9hZnRlcl9za2lwKEJUU2Nhbk9wYXF1ZSBz bywgQlRTa2lwQ29tcGFyZVJlc3VsdCAqY21wLCBTY2FuRGlyZWN0aW9uIHByZWZpeERpciwKKwkJ CQkJCQkJCSBTY2FuRGlyZWN0aW9uIHBvc3RmaXhEaXIsIGludCBza2lwcGVkLCBCVFNraXBTdGF0 ZSAqbmV4dEFjdGlvbik7CitzdGF0aWMgaW5saW5lIHZvaWQKK19idF9kZXRlcm1pbmVfbmV4dF9h Y3Rpb25fYWZ0ZXJfc2tpcF9leHRyYShCVFNjYW5PcGFxdWUgc28sIEJUU2tpcENvbXBhcmVSZXN1 bHQgKmNtcCwgQlRTa2lwU3RhdGUgKm5leHRBY3Rpb24pOworc3RhdGljIGlubGluZSB2b2lkIF9i dF9jb3B5X3NjYW5rZXkoQlRTY2FuSW5zZXJ0IHRvLCBCVFNjYW5JbnNlcnQgZnJvbSwgaW50IG51 bWF0dHJzKTsKK3N0YXRpYyBpbmxpbmUgSW5kZXhUdXBsZSBfYnRfZ2V0X3R1cGxlX2Zyb21fb2Zm c2V0KEJUU2Nhbk9wYXF1ZSBzbywgT2Zmc2V0TnVtYmVyIGN1clR1cGxlT2ZmbnVtKTsKK3N0YXRp YyB2b2lkIF9idF9za2lwX3VwZGF0ZV9zY2Fua2V5X2FmdGVyX3JlYWQoSW5kZXhTY2FuRGVzYyBz Y2FuLCBJbmRleFR1cGxlIGN1clR1cGxlLAorCQkJCQkJCQkJCQkgICBTY2FuRGlyZWN0aW9uIHBy ZWZpeERpciwgU2NhbkRpcmVjdGlvbiBwb3N0Zml4RGlyKTsKK3N0YXRpYyB2b2lkIF9idF9za2lw X3VwZGF0ZV9zY2Fua2V5X2Zvcl9wcmVmaXhfc2tpcChJbmRleFNjYW5EZXNjIHNjYW4sIFJlbGF0 aW9uIGluZGV4UmVsLAorCQkJCQkJCQkJCWludCBwcmVmaXgsIEluZGV4VHVwbGUgaXR1cCwgU2Nh bkRpcmVjdGlvbiBwcmVmaXhEaXIpOworc3RhdGljIGJvb2wgX2J0X3RyeV9pbl9wYWdlX3NraXAo SW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIHByZWZpeERpcik7CisKKy8qCisgKiBy ZXR1cm5zIHdoZXRoZXIgd2UncmUgYXQgdGhlIGVuZCBvZiBhIHNjYW4uCisgKiB0aGUgc2NhbiBw b3NpdGlvbiBjYW4gYmUgaW52YWxpZCBldmVuIHRob3VnaCB3ZSBzdGlsbAorICogc2hvdWxkIGNv bnRpbnVlIHRoZSBzY2FuLiB0aGlzIGhhcHBlbnMgZm9yIGV4YW1wbGUgd2hlbgorICogd2UncmUg c2Nhbm5pbmcgd2l0aCBwcmVmaXhEaXIhPXBvc3RmaXhEaXIuIHdoZW4gbG9va2luZyBhdCB0aGUg Zmlyc3QKKyAqIHByZWZpeCwgd2UgdHJhdmVyc2UgdGhlIGl0ZW1zIHdpdGhpbiB0aGUgcHJlZml4 IGZyb20gbWF4IHRvIG1pbi4KKyAqIGlmIG5vbmUgb2YgdGhlbSBtYXRjaCwgd2UgYWN0dWFsbHkg cnVuIG9mZiB0aGUgc3RhcnQgb2YgdGhlIGluZGV4LAorICogbWVhbmluZyBub25lIG9mIHRoZSB0 dXBsZXMgd2l0aGluIHRoaXMgcHJlZml4IG1hdGNoLiB0aGUgc2NhbiBwb3MgYmVjb21lcworICog aW52YWxpZCwgaG93ZXZlciwgd2UgZG8gbmVlZCB0byBsb29rIGZ1cnRoZXIgdG8gdGhlIG5leHQg cHJlZml4LgorICogdGhlcmVmb3JlLCB0aGlzIGZ1bmN0aW9uIHN0aWxsIHJldHVybnMgdHJ1ZSBp biB0aGlzIHBhcnRpY3VsYXIgY2FzZS4KKyAqLworc3RhdGljIGlubGluZSBib29sCitfYnRfc2tp cF9pc192YWxpZChCVFNjYW5PcGFxdWUgc28sIFNjYW5EaXJlY3Rpb24gcHJlZml4RGlyLCBTY2Fu RGlyZWN0aW9uIHBvc3RmaXhEaXIpCit7CisJcmV0dXJuIEJUU2NhblBvc0lzVmFsaWQoc28tPmN1 cnJQb3MpIHx8CisJCQkoIV9idF9za2lwX2lzX3JlZ3VsYXJfbW9kZShwcmVmaXhEaXIsIHBvc3Rm aXhEaXIpICYmCisJCQkgc28tPnNraXBEYXRhLT5jdXJQb3MubmV4dEFjdGlvbiAhPSBTa2lwU3Rh dGVTdG9wKTsKK30KKworLyogdHJ5IGZpbmRpbmcgdGhlIG5leHQgdHVwbGUgdG8gc2tpcCB0byB3 aXRoaW4gdGhlIGxvY2FsIHR1cGxlIHN0b3JhZ2UuCisgKiBsb2NhbCB0dXBsZSBzdG9yYWdlIGlz IGZpbGxlZCBkdXJpbmcgX2J0X3JlYWRwYWdlIHdpdGggYWxsIG1hdGNoaW5nCisgKiB0dXBsZXMg b24gdGhhdCBwYWdlLiBpZiB3ZSBjYW4gZmluZCB0aGUgbmV4dCBwcmVmaXggaGVyZSBpdCBzYXZl cworICogdXMgZG9pbmcgYSBzY2FuIGZyb20gcm9vdC4KKyAqIE5vdGUgdGhhdCB0aGlzIG9wdGlt aXphdGlvbiBvbmx5IHdvcmtzIHdpdGggX2J0X3JlZ3VsYXJfbW9kZSA9PSB0cnVlCisgKiBJZiB0 aGlzIGlzIG5vdCB0aGUgY2FzZSwgdGhlIGxvY2FsIHR1cGxlIHdvcmtzcGFjZSB3aWxsIGFsd2F5 cyBvbmx5CisgKiBjb250YWluIHR1cGxlcyBvZiBvbmUgc3BlY2lmaWMgcHJlZml4IChfYnRfcmVh ZHBhZ2Ugd2lsbCBzdG9wIGF0CisgKiB0aGUgZW5kIG9mIGEgcHJlZngpCisgKi8KK3N0YXRpYyBi b29sCitfYnRfdHJ5X2luX3BhZ2Vfc2tpcChJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rp b24gcHJlZml4RGlyKQoreworCUJUU2Nhbk9wYXF1ZSBzbyA9IChCVFNjYW5PcGFxdWUpIHNjYW4t Pm9wYXF1ZTsKKwlCVFNjYW5Qb3NJdGVtICpjdXJySXRlbTsKKwlCVFNraXAgc2tpcCA9IHNvLT5z a2lwRGF0YTsKKwlJbmRleFR1cGxlIGl0dXAgPSBOVUxMOworCWJvb2wgZ29iYWNrOworCWludCBs b3csIGhpZ2gsIHN0YXJ0aGlnaCwgc3RhcnRsb3c7CisJaW50MzIJCXJlc3VsdCwKKwkJCQljbXB2 YWw7CisJQlRTY2FuSW5zZXJ0IGtleSA9ICZzby0+c2tpcERhdGEtPmN1clBvcy5za2lwU2Nhbktl eTsKKworCWN1cnJJdGVtID0gJnNvLT5jdXJyUG9zLml0ZW1zW3NvLT5jdXJyUG9zLml0ZW1JbmRl eF07CisJaXR1cCA9IChJbmRleFR1cGxlKSAoc28tPmN1cnJUdXBsZXMgKyBjdXJySXRlbS0+dHVw bGVPZmZzZXQpOworCisJX2J0X3NraXBfdXBkYXRlX3NjYW5rZXlfZm9yX3ByZWZpeF9za2lwKHNj YW4sIHNjYW4tPmluZGV4UmVsYXRpb24sIHNraXAtPnByZWZpeCwgaXR1cCwgcHJlZml4RGlyKTsK KworCV9idF9zZXRfYnNlYXJjaF9mbGFncyhrZXktPnNjYW5rZXlzW2tleS0+a2V5c3ogLSAxXS5z a19zdHJhdGVneSwgcHJlZml4RGlyLCAma2V5LT5uZXh0a2V5LCAmZ29iYWNrKTsKKworCS8qIFJl cXVlc3RpbmcgbmV4dGtleSBzZW1hbnRpY3Mgd2hpbGUgdXNpbmcgc2NhbnRpZCBzZWVtcyBub25z ZW5zaWNhbCAqLworCUFzc2VydCgha2V5LT5uZXh0a2V5IHx8IGtleS0+c2NhbnRpZCA9PSBOVUxM KTsKKwkvKiBzY2FudGlkLXNldCBjYWxsZXJzIG11c3QgdXNlIF9idF9iaW5zcmNoX2luc2VydCgp IG9uIGxlYWYgcGFnZXMgKi8KKworCXN0YXJ0bG93ID0gbG93ID0gU2NhbkRpcmVjdGlvbklzRm9y d2FyZChwcmVmaXhEaXIpID8gc28tPmN1cnJQb3MuaXRlbUluZGV4ICsgMSA6IHNvLT5jdXJyUG9z LmZpcnN0SXRlbTsKKwlzdGFydGhpZ2ggPSBoaWdoID0gU2NhbkRpcmVjdGlvbklzRm9yd2FyZChw cmVmaXhEaXIpID8gc28tPmN1cnJQb3MubGFzdEl0ZW0gOiBzby0+Y3VyclBvcy5pdGVtSW5kZXgg LSAxOworCisJLyoKKwkgKiBJZiB0aGVyZSBhcmUgbm8ga2V5cyBvbiB0aGUgcGFnZSwgcmV0dXJu IHRoZSBmaXJzdCBhdmFpbGFibGUgc2xvdC4gTm90ZQorCSAqIHRoaXMgY292ZXJzIHR3byBjYXNl czogdGhlIHBhZ2UgaXMgcmVhbGx5IGVtcHR5IChubyBrZXlzKSwgb3IgaXQKKwkgKiBjb250YWlu cyBvbmx5IGEgaGlnaCBrZXkuICBUaGUgbGF0dGVyIGNhc2UgaXMgcG9zc2libGUgYWZ0ZXIgdmFj dXVtaW5nLgorCSAqIFRoaXMgY2FuIG5ldmVyIGhhcHBlbiBvbiBhbiBpbnRlcm5hbCBwYWdlLCBo b3dldmVyLCBzaW5jZSB0aGV5IGFyZQorCSAqIG5ldmVyIGVtcHR5IChhbiBpbnRlcm5hbCBwYWdl IG11c3QgaGF2ZSBjaGlsZHJlbikuCisJICovCisJaWYgKHVubGlrZWx5KGhpZ2ggPCBsb3cpKQor CQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIEJpbmFyeSBzZWFyY2ggdG8gZmluZCB0aGUgZmly c3Qga2V5IG9uIHRoZSBwYWdlID49IHNjYW4ga2V5LCBvciBmaXJzdAorCSAqIGtleSA+IHNjYW5r ZXkgd2hlbiBuZXh0a2V5IGlzIHRydWUuCisJICoKKwkgKiBGb3IgbmV4dGtleT1mYWxzZSAoY21w dmFsPTEpLCB0aGUgbG9vcCBpbnZhcmlhbnQgaXM6IGFsbCBzbG90cyBiZWZvcmUKKwkgKiAnbG93 JyBhcmUgPCBzY2FuIGtleSwgYWxsIHNsb3RzIGF0IG9yIGFmdGVyICdoaWdoJyBhcmUgPj0gc2Nh biBrZXkuCisJICoKKwkgKiBGb3IgbmV4dGtleT10cnVlIChjbXB2YWw9MCksIHRoZSBsb29wIGlu dmFyaWFudCBpczogYWxsIHNsb3RzIGJlZm9yZQorCSAqICdsb3cnIGFyZSA8PSBzY2FuIGtleSwg YWxsIHNsb3RzIGF0IG9yIGFmdGVyICdoaWdoJyBhcmUgPiBzY2FuIGtleS4KKwkgKgorCSAqIFdl IGNhbiBmYWxsIG91dCB3aGVuIGhpZ2ggPT0gbG93LgorCSAqLworCWhpZ2grKzsJCQkJCQkvKiBl c3RhYmxpc2ggdGhlIGxvb3AgaW52YXJpYW50IGZvciBoaWdoICovCisKKwljbXB2YWwgPSBrZXkt Pm5leHRrZXkgPyAwIDogMTsJLyogc2VsZWN0IGNvbXBhcmlzb24gdmFsdWUgKi8KKworCXdoaWxl IChoaWdoID4gbG93KQorCXsKKwkJaW50IG1pZCA9IGxvdyArICgoaGlnaCAtIGxvdykgLyAyKTsK KworCQkvKiBXZSBoYXZlIGxvdyA8PSBtaWQgPCBoaWdoLCBzbyBtaWQgcG9pbnRzIGF0IGEgcmVh bCBzbG90ICovCisKKwkJY3Vyckl0ZW0gPSAmc28tPmN1cnJQb3MuaXRlbXNbbWlkXTsKKwkJaXR1 cCA9IChJbmRleFR1cGxlKSAoc28tPmN1cnJUdXBsZXMgKyBjdXJySXRlbS0+dHVwbGVPZmZzZXQp OworCQlyZXN1bHQgPSBfYnRfY29tcGFyZV91bnRpbChzY2FuLT5pbmRleFJlbGF0aW9uLCBrZXks IGl0dXAsIHNraXAtPnByZWZpeCk7CisKKwkJaWYgKHJlc3VsdCA+PSBjbXB2YWwpCisJCQlsb3cg PSBtaWQgKyAxOworCQllbHNlCisJCQloaWdoID0gbWlkOworCX0KKworCWlmIChoaWdoID4gc3Rh cnRoaWdoKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoZ29iYWNrKQorCXsKKwkJbG93LS07CisJ CWlmIChsb3cgPCBzdGFydGxvdykKKwkJCXJldHVybiBmYWxzZTsKKwl9CisKKwlzby0+Y3VyclBv cy5pdGVtSW5kZXggPSBsb3c7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqICBfYnRfc2tp cCgpIC0tIFNraXAgaXRlbXMgdGhhdCBoYXZlIHRoZSBzYW1lIHByZWZpeCBhcyB0aGUgbW9zdCBy ZWNlbnRseQorICogCQkJCSAgZmV0Y2hlZCBpbmRleCB0dXBsZS4KKyAqCisgKiBpbjogcGlubmVk LCBub3QgbG9ja2VkCisgKiBvdXQ6IHBpbm5lZCwgbm90IGxvY2tlZCAodW5sZXNzIGVuZCBvZiBz Y2FuLCB0aGVuIHVucGlubmVkKQorICovCitib29sCitfYnRfc2tpcChJbmRleFNjYW5EZXNjIHNj YW4sIFNjYW5EaXJlY3Rpb24gcHJlZml4RGlyLCBTY2FuRGlyZWN0aW9uIHBvc3RmaXhEaXIpCit7 CisJQlRTY2FuT3BhcXVlIHNvID0gKEJUU2Nhbk9wYXF1ZSkgc2Nhbi0+b3BhcXVlOworCUJUU2Nh blBvc0l0ZW0gKmN1cnJJdGVtOworCUluZGV4VHVwbGUgaXR1cCA9IE5VTEw7CisJT2Zmc2V0TnVt YmVyIGN1clR1cGxlT2ZmbnVtID0gSW52YWxpZE9mZnNldE51bWJlcjsKKwlCVFNraXBDb21wYXJl UmVzdWx0IGNtcDsKKwlCVFNraXAgc2tpcCA9IHNvLT5za2lwRGF0YTsKKwlPZmZzZXROdW1iZXIg Zmlyc3Q7CisKKwkvKiBpbiBwYWdlIHNraXAgb25seSB3b3JrcyB3aGVuIHByZWZpeERpciA9PSBw b3N0Zml4RGlyICovCisJaWYgKCFfYnRfc2tpcF9pc19yZWd1bGFyX21vZGUocHJlZml4RGlyLCBw b3N0Zml4RGlyKSB8fCAhX2J0X3RyeV9pbl9wYWdlX3NraXAoc2NhbiwgcHJlZml4RGlyKSkKKwl7 CisJCWN1cnJJdGVtID0gJnNvLT5jdXJyUG9zLml0ZW1zW3NvLT5jdXJyUG9zLml0ZW1JbmRleF07 CisJCWl0dXAgPSAoSW5kZXhUdXBsZSkgKHNvLT5jdXJyVHVwbGVzICsgY3Vyckl0ZW0tPnR1cGxl T2Zmc2V0KTsKKworCQlzby0+c2tpcERhdGEtPmN1clBvcy5uZXh0U2tpcEluZGV4ID0gc28tPnNr aXBEYXRhLT5wcmVmaXg7CisJCV9idF9za2lwX29uY2Uoc2NhbiwgJml0dXAsICZjdXJUdXBsZU9m Zm51bSwgdHJ1ZSwgcHJlZml4RGlyLCBwb3N0Zml4RGlyKTsKKwkJX2J0X3NraXBfdW50aWxfbWF0 Y2goc2NhbiwgJml0dXAsICZjdXJUdXBsZU9mZm51bSwgcHJlZml4RGlyLCBwb3N0Zml4RGlyKTsK KwkJaWYgKCFfYnRfc2tpcF9pc19hbHdheXNfdmFsaWQoc28pKQorCQkJcmV0dXJuIGZhbHNlOwor CisJCWZpcnN0ID0gY3VyVHVwbGVPZmZudW07CisJCV9idF9yZWFkcGFnZShzY2FuLCBwb3N0Zml4 RGlyLCAmY3VyVHVwbGVPZmZudW0sIF9idF9za2lwX2lzX3JlZ3VsYXJfbW9kZShwcmVmaXhEaXIs IHBvc3RmaXhEaXIpKTsKKwkJaWYgKERFQlVHMSA+PSBsb2dfbWluX21lc3NhZ2VzIHx8IERFQlVH MSA+PSBjbGllbnRfbWluX21lc3NhZ2VzKQorCQl7CisJCQlwcmludF9pdHVwKEJ1ZmZlckdldEJs b2NrTnVtYmVyKHNvLT5jdXJyUG9zLmJ1ZiksIF9idF9nZXRfdHVwbGVfZnJvbV9vZmZzZXQoc28s IGZpcnN0KSwgTlVMTCwgc2Nhbi0+aW5kZXhSZWxhdGlvbiwKKwkJCQkJCSJmaXJzdCBpdGVtIG9u IHBhZ2UgY29tcGFyZWQgYWZ0ZXIgc2tpcCIpOworCQkJcHJpbnRfaXR1cChCdWZmZXJHZXRCbG9j a051bWJlcihzby0+Y3VyclBvcy5idWYpLCBfYnRfZ2V0X3R1cGxlX2Zyb21fb2Zmc2V0KHNvLCBj dXJUdXBsZU9mZm51bSksIE5VTEwsIHNjYW4tPmluZGV4UmVsYXRpb24sCisJCQkJCQkibGFzdCBp dGVtIG9uIHBhZ2UgY29tcGFyZWQgYWZ0ZXIgc2tpcCIpOworCQl9CisJCV9idF9jb21wYXJlX2N1 cnJlbnRfaXRlbShzY2FuLCBfYnRfZ2V0X3R1cGxlX2Zyb21fb2Zmc2V0KHNvLCBjdXJUdXBsZU9m Zm51bSksCisJCQkJCQkJCSBJbmRleFJlbGF0aW9uR2V0TnVtYmVyT2ZBdHRyaWJ1dGVzKHNjYW4t PmluZGV4UmVsYXRpb24pLAorCQkJCQkJCQkgcG9zdGZpeERpciwgX2J0X3NraXBfaXNfcmVndWxh cl9tb2RlKHByZWZpeERpciwgcG9zdGZpeERpciksICZjbXApOworCQlfYnRfZGV0ZXJtaW5lX25l eHRfYWN0aW9uKHNjYW4sICZjbXAsIGZpcnN0LCBjdXJUdXBsZU9mZm51bSwgcG9zdGZpeERpciwg JnNraXAtPmN1clBvcy5uZXh0QWN0aW9uKTsKKwkJc2tpcC0+Y3VyUG9zLm5leHREaXJlY3Rpb24g PSBwcmVmaXhEaXI7CisJCXNraXAtPmN1clBvcy5uZXh0U2tpcEluZGV4ID0gY21wLnByZWZpeFNr aXBJbmRleDsKKwkJX2J0X3NraXBfdXBkYXRlX3NjYW5rZXlfYWZ0ZXJfcmVhZChzY2FuLCBfYnRf Z2V0X3R1cGxlX2Zyb21fb2Zmc2V0KHNvLCBjdXJUdXBsZU9mZm51bSksIHByZWZpeERpciwgcG9z dGZpeERpcik7CisKKwkJX2J0X2Ryb3BfbG9ja19hbmRfbWF5YmVfcGluKHNjYW4sICZzby0+Y3Vy clBvcyk7CisJfQorCisJLyogcHJlcGFyZSBmb3IgdGhlIGNhbGwgdG8gX2J0X25leHQsIGJlY2F1 c2UgX2J0X25leHQgaW5jcmVtZW50cyB0aGlzIHRvIGdldCB0byB0aGUgdHVwbGUgd2Ugd2FudCB0 byBiZSBhdCAqLworCWlmIChTY2FuRGlyZWN0aW9uSXNGb3J3YXJkKHBvc3RmaXhEaXIpKQorCQlz by0+Y3VyclBvcy5pdGVtSW5kZXgtLTsKKwllbHNlCisJCXNvLT5jdXJyUG9zLml0ZW1JbmRleCsr OworCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBJbmRleFR1cGxlCitfYnRfZ2V0X3R1cGxl X2Zyb21fb2Zmc2V0KEJUU2Nhbk9wYXF1ZSBzbywgT2Zmc2V0TnVtYmVyIGN1clR1cGxlT2ZmbnVt KQoreworCVBhZ2UgcGFnZSA9IEJ1ZmZlckdldFBhZ2Uoc28tPmN1cnJQb3MuYnVmKTsKKwlyZXR1 cm4gKEluZGV4VHVwbGUpIFBhZ2VHZXRJdGVtKHBhZ2UsIFBhZ2VHZXRJdGVtSWQocGFnZSwgY3Vy VHVwbGVPZmZudW0pKTsKK30KKworc3RhdGljIHZvaWQKK19idF9kZXRlcm1pbmVfbmV4dF9hY3Rp b24oSW5kZXhTY2FuRGVzYyBzY2FuLCBCVFNraXBDb21wYXJlUmVzdWx0ICpjbXAsIE9mZnNldE51 bWJlciBmaXJzdE9mZm51bSwgT2Zmc2V0TnVtYmVyIGxhc3RPZmZudW0sIFNjYW5EaXJlY3Rpb24g cG9zdGZpeERpciwgQlRTa2lwU3RhdGUgKm5leHRBY3Rpb24pCit7CisJQlRTY2FuT3BhcXVlIHNv ID0gKEJUU2Nhbk9wYXF1ZSkgc2Nhbi0+b3BhcXVlOworCisJaWYgKGNtcC0+ZnVsbEtleVNraXAp CisJCSpuZXh0QWN0aW9uID0gU2tpcFN0YXRlU3RvcDsKKwllbHNlIGlmIChTY2FuRGlyZWN0aW9u SXNGb3J3YXJkKHBvc3RmaXhEaXIpKQorCXsKKwkJT2Zmc2V0TnVtYmVyIGZpcnN0SXRlbSA9IGZp cnN0T2ZmbnVtLCBsYXN0SXRlbSA9IGxhc3RPZmZudW07CisJCWlmIChjbXAtPnByZWZpeFNraXAp CisJCXsKKwkJCSpuZXh0QWN0aW9uID0gU2tpcFN0YXRlU2tpcDsKKwkJfQorCQllbHNlCisJCXsK KwkJCUluZGV4VHVwbGUgdG9DbXA7CisJCQlpZiAoc28tPmN1cnJQb3MubGFzdEl0ZW0gPj0gc28t PmN1cnJQb3MuZmlyc3RJdGVtKQorCQkJCXRvQ21wID0gX2J0X2dldF90dXBsZV9mcm9tX29mZnNl dChzbywgc28tPmN1cnJQb3MuaXRlbXNbc28tPmN1cnJQb3MubGFzdEl0ZW1dLmluZGV4T2Zmc2V0 KTsKKwkJCWVsc2UKKwkJCQl0b0NtcCA9IF9idF9nZXRfdHVwbGVfZnJvbV9vZmZzZXQoc28sIGZp cnN0SXRlbSk7CisJCQlfYnRfdXBkYXRlX3NjYW5rZXlfd2l0aF90dXBsZSgmc28tPnNraXBEYXRh LT5jdXJyZW50VHVwbGVLZXksCisJCQkJCQkJCQkJICBzY2FuLT5pbmRleFJlbGF0aW9uLCB0b0Nt cCwgUmVsYXRpb25HZXROdW1iZXJPZkF0dHJpYnV0ZXMoc2Nhbi0+aW5kZXhSZWxhdGlvbikpOwor CQkJaWYgKF9idF9oYXNfZXh0cmFfcXVhbHNfYWZ0ZXJfc2tpcChzby0+c2tpcERhdGEsIHBvc3Rm aXhEaXIsIHNvLT5za2lwRGF0YS0+cHJlZml4KSAmJiAhY21wLT5lcXVhbCAmJgorCQkJCQkoY21w LT5wcmVmaXhDbXBSZXN1bHQgIT0gMCB8fAorCQkJCQkgX2J0X2NvbXBhcmVfdW50aWwoc2Nhbi0+ aW5kZXhSZWxhdGlvbiwgJnNvLT5za2lwRGF0YS0+Y3VycmVudFR1cGxlS2V5LAorCQkJCQkJCQkJ ICAgX2J0X2dldF90dXBsZV9mcm9tX29mZnNldChzbywgbGFzdEl0ZW0pLCBzby0+c2tpcERhdGEt PnByZWZpeCkgIT0gMCkpCisJCQkJKm5leHRBY3Rpb24gPSBTa2lwU3RhdGVTa2lwRXh0cmE7CisJ CQllbHNlCisJCQkJKm5leHRBY3Rpb24gPSBTa2lwU3RhdGVOZXh0OworCQl9CisJfQorCWVsc2UK Kwl7CisJCU9mZnNldE51bWJlciBmaXJzdEl0ZW0gPSBsYXN0T2ZmbnVtLCBsYXN0SXRlbSA9IGZp cnN0T2ZmbnVtOworCQlpZiAoY21wLT5wcmVmaXhTa2lwKQorCQl7CisJCQkqbmV4dEFjdGlvbiA9 IFNraXBTdGF0ZVNraXA7CisJCX0KKwkJZWxzZQorCQl7CisJCQlJbmRleFR1cGxlIHRvQ21wOwor CQkJaWYgKHNvLT5jdXJyUG9zLmxhc3RJdGVtID49IHNvLT5jdXJyUG9zLmZpcnN0SXRlbSkKKwkJ CQl0b0NtcCA9IF9idF9nZXRfdHVwbGVfZnJvbV9vZmZzZXQoc28sIHNvLT5jdXJyUG9zLml0ZW1z W3NvLT5jdXJyUG9zLmZpcnN0SXRlbV0uaW5kZXhPZmZzZXQpOworCQkJZWxzZQorCQkJCXRvQ21w ID0gX2J0X2dldF90dXBsZV9mcm9tX29mZnNldChzbywgbGFzdEl0ZW0pOworCQkJX2J0X3VwZGF0 ZV9zY2Fua2V5X3dpdGhfdHVwbGUoJnNvLT5za2lwRGF0YS0+Y3VycmVudFR1cGxlS2V5LAorCQkJ CQkJCQkJCSAgc2Nhbi0+aW5kZXhSZWxhdGlvbiwgdG9DbXAsIFJlbGF0aW9uR2V0TnVtYmVyT2ZB dHRyaWJ1dGVzKHNjYW4tPmluZGV4UmVsYXRpb24pKTsKKwkJCWlmIChfYnRfaGFzX2V4dHJhX3F1 YWxzX2FmdGVyX3NraXAoc28tPnNraXBEYXRhLCBwb3N0Zml4RGlyLCBzby0+c2tpcERhdGEtPnBy ZWZpeCkgJiYgIWNtcC0+ZXF1YWwgJiYKKwkJCQkJKGNtcC0+cHJlZml4Q21wUmVzdWx0ICE9IDAg fHwKKwkJCQkJIF9idF9jb21wYXJlX3VudGlsKHNjYW4tPmluZGV4UmVsYXRpb24sICZzby0+c2tp cERhdGEtPmN1cnJlbnRUdXBsZUtleSwKKwkJCQkJCQkJCSAgIF9idF9nZXRfdHVwbGVfZnJvbV9v ZmZzZXQoc28sIGZpcnN0SXRlbSksIHNvLT5za2lwRGF0YS0+cHJlZml4KSAhPSAwKSkKKwkJCQkq bmV4dEFjdGlvbiA9IFNraXBTdGF0ZVNraXBFeHRyYTsKKwkJCWVsc2UKKwkJCQkqbmV4dEFjdGlv biA9IFNraXBTdGF0ZU5leHQ7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbAorX2J0 X3Nob3VsZF9wcmVmaXhfc2tpcChCVFNraXBDb21wYXJlUmVzdWx0ICpjbXApCit7CisJcmV0dXJu IGNtcC0+cHJlZml4U2tpcCB8fCBjbXAtPnByZWZpeENtcFJlc3VsdCAhPSAwOworfQorCitzdGF0 aWMgaW5saW5lIHZvaWQKK19idF9kZXRlcm1pbmVfbmV4dF9hY3Rpb25fYWZ0ZXJfc2tpcChCVFNj YW5PcGFxdWUgc28sIEJUU2tpcENvbXBhcmVSZXN1bHQgKmNtcCwgU2NhbkRpcmVjdGlvbiBwcmVm aXhEaXIsCisJCQkJCQkJCQkgU2NhbkRpcmVjdGlvbiBwb3N0Zml4RGlyLCBpbnQgc2tpcHBlZCwg QlRTa2lwU3RhdGUgKm5leHRBY3Rpb24pCit7CisJaWYgKCFfYnRfc2tpcF9pc19hbHdheXNfdmFs aWQoc28pIHx8IGNtcC0+ZnVsbEtleVNraXApCisJCSpuZXh0QWN0aW9uID0gU2tpcFN0YXRlU3Rv cDsKKwllbHNlIGlmIChjbXAtPmVxdWFsICYmIF9idF9za2lwX2lzX3JlZ3VsYXJfbW9kZShwcmVm aXhEaXIsIHBvc3RmaXhEaXIpKQorCQkqbmV4dEFjdGlvbiA9IFNraXBTdGF0ZU5leHQ7CisJZWxz ZSBpZiAoX2J0X3Nob3VsZF9wcmVmaXhfc2tpcChjbXApICYmIF9idF9za2lwX2lzX3JlZ3VsYXJf bW9kZShwcmVmaXhEaXIsIHBvc3RmaXhEaXIpICYmCisJCQkgKChTY2FuRGlyZWN0aW9uSXNGb3J3 YXJkKHByZWZpeERpcikgJiYgY21wLT5za0NtcFJlc3VsdCA9PSAtMSkgfHwKKwkJCSAgKFNjYW5E aXJlY3Rpb25Jc0JhY2t3YXJkKHByZWZpeERpcikgJiYgY21wLT5za0NtcFJlc3VsdCA9PSAxKSkp CisJCSpuZXh0QWN0aW9uID0gU2tpcFN0YXRlU2tpcDsKKwllbHNlIGlmICghX2J0X3NraXBfaXNf cmVndWxhcl9tb2RlKHByZWZpeERpciwgcG9zdGZpeERpcikgfHwKKwkJCSBfYnRfaGFzX2V4dHJh X3F1YWxzX2FmdGVyX3NraXAoc28tPnNraXBEYXRhLCBwb3N0Zml4RGlyLCBza2lwcGVkKSB8fAor CQkJIGNtcC0+cHJlZml4Q21wUmVzdWx0ICE9IDApCisJCSpuZXh0QWN0aW9uID0gU2tpcFN0YXRl U2tpcEV4dHJhOworCWVsc2UKKwkJKm5leHRBY3Rpb24gPSBTa2lwU3RhdGVOZXh0OworfQorCitz dGF0aWMgaW5saW5lIHZvaWQKK19idF9kZXRlcm1pbmVfbmV4dF9hY3Rpb25fYWZ0ZXJfc2tpcF9l eHRyYShCVFNjYW5PcGFxdWUgc28sIEJUU2tpcENvbXBhcmVSZXN1bHQgKmNtcCwgQlRTa2lwU3Rh dGUgKm5leHRBY3Rpb24pCit7CisJaWYgKCFfYnRfc2tpcF9pc19hbHdheXNfdmFsaWQoc28pIHx8 IGNtcC0+ZnVsbEtleVNraXApCisJCSpuZXh0QWN0aW9uID0gU2tpcFN0YXRlU3RvcDsKKwllbHNl IGlmIChjbXAtPmVxdWFsKQorCQkqbmV4dEFjdGlvbiA9IFNraXBTdGF0ZU5leHQ7CisJZWxzZSBp ZiAoX2J0X3Nob3VsZF9wcmVmaXhfc2tpcChjbXApKQorCQkqbmV4dEFjdGlvbiA9IFNraXBTdGF0 ZVNraXA7CisJZWxzZQorCQkqbmV4dEFjdGlvbiA9IFNraXBTdGF0ZU5leHQ7Cit9CisKKy8qIGp1 c3QgYSBkZWJ1ZyBmdW5jdGlvbiB0aGF0IHByaW50cyBhIHNjYW5rZXkuIHdpbGwgYmUgcmVtb3Zl ZCBmb3IgZmluYWwgcGF0Y2ggKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorX3ByaW50X3NrZXkoSW5k ZXhTY2FuRGVzYyBzY2FuLCBCVFNjYW5JbnNlcnQgc2NhbktleSkKK3sKKwlPaWQJCQl0eXBPdXRw dXQ7CisJYm9vbAkJdmFybGVuYXR5cGU7CisJY2hhcgkgICAqdmFsOworCWludCBpOworCVJlbGF0 aW9uIHJlbCA9IHNjYW4tPmluZGV4UmVsYXRpb247CisKKwlmb3IgKGkgPSAwOyBpIDwgc2Nhbktl eS0+a2V5c3o7IGkrKykKKwl7CisJCVNjYW5LZXkgY3VyID0gJnNjYW5LZXktPnNjYW5rZXlzW2ld OworCQlpZiAoIUlzQ2F0YWxvZ1JlbGF0aW9uKHJlbCkpCisJCXsKKwkJCWlmICghKGN1ci0+c2tf ZmxhZ3MgJiBTS19JU05VTEwpKQorCQkJeworCQkJCWlmIChjdXItPnNrX3N1YnR5cGUgIT0gSW52 YWxpZE9pZCkKKwkJCQkJZ2V0VHlwZU91dHB1dEluZm8oY3VyLT5za19zdWJ0eXBlLAorCQkJCQkJ CQkJICAmdHlwT3V0cHV0LCAmdmFybGVuYXR5cGUpOworCQkJCWVsc2UKKwkJCQkJZ2V0VHlwZU91 dHB1dEluZm8ocmVsLT5yZF9vcGNpbnR5cGVbaV0sCisJCQkJCQkJCQkgICZ0eXBPdXRwdXQsICZ2 YXJsZW5hdHlwZSk7CisJCQkJdmFsID0gT2lkT3V0cHV0RnVuY3Rpb25DYWxsKHR5cE91dHB1dCwg Y3VyLT5za19hcmd1bWVudCk7CisJCQkJaWYgKHZhbCkKKwkJCQl7CisJCQkJCWVsb2coREVCVUcx LCAiJXMgc2sgYXR0ciAlZCB2YWw6ICVzICglcywgJXMpIiwKKwkJCQkJCSBSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZWwpLCBpLCB2YWwsCisJCQkJCQkgKGN1ci0+c2tfZmxhZ3MgJiBTS19CVF9O VUxMU19GSVJTVCkgIT0gMCA/ICJOVUxMUyBGSVJTVCIgOiAiTlVMTFMgTEFTVCIsCisJCQkJCQkg KGN1ci0+c2tfZmxhZ3MgJiBTS19CVF9ERVNDKSAhPSAwID8gIkRFU0MiIDogIkFTQyIpOworCQkJ CQlwZnJlZSh2YWwpOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQllbG9nKERFQlVH MSwgIiVzIHNrIGF0dHIgJWQgdmFsOiBOVUxMICglcywgJXMpIiwKKwkJCQkJIFJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlbCksIGksCisJCQkJCSAoY3VyLT5za19mbGFncyAmIFNLX0JUX05VTExT X0ZJUlNUKSAhPSAwID8gIk5VTExTIEZJUlNUIiA6ICJOVUxMUyBMQVNUIiwKKwkJCQkJIChjdXIt PnNrX2ZsYWdzICYgU0tfQlRfREVTQykgIT0gMCA/ICJERVNDIiA6ICJBU0MiKTsKKwkJCX0KKwkJ fQorCX0KK30KKworYm9vbAorX2J0X2NoZWNra2V5c19za2lwKEluZGV4U2NhbkRlc2Mgc2Nhbiwg SW5kZXhUdXBsZSB0dXBsZSwgaW50IHR1cG5hdHRzLAorCQkJCSAgIFNjYW5EaXJlY3Rpb24gZGly LCBib29sICpjb250aW51ZXNjYW4sIGludCAqcHJlZml4c2tpcGluZGV4KQoreworCUJUU2Nhbk9w YXF1ZSAJc28gPSAoQlRTY2FuT3BhcXVlKSBzY2FuLT5vcGFxdWU7CisJQlRTa2lwIHNraXAgPSBz by0+c2tpcERhdGE7CisKKwlib29sIG1hdGNoID0gX2J0X2NoZWNra2V5cyhzY2FuLCB0dXBsZSwg dHVwbmF0dHMsIGRpciwgY29udGludWVzY2FuLCBwcmVmaXhza2lwaW5kZXgpOworCWludCBwcmVm aXhDbXBSZXN1bHQgPSBfYnRfY29tcGFyZV91bnRpbChzY2FuLT5pbmRleFJlbGF0aW9uLCAmc2tp cC0+Y3VyUG9zLnNraXBTY2FuS2V5LCB0dXBsZSwgc2tpcC0+cHJlZml4KTsKKwlpZiAoKnByZWZp eHNraXBpbmRleCA9PSAtMSAmJiBwcmVmaXhDbXBSZXN1bHQgIT0gMCkKKwl7CisJCSpwcmVmaXhz a2lwaW5kZXggPSBza2lwLT5wcmVmaXg7CisJCXJldHVybiBmYWxzZTsKKwl9CisJZWxzZQorCXsK KwkJYm9vbCBuZXdjb250OworCQlfYnRfY2hlY2trZXlzX3RocmVld2F5KHNjYW4sIHR1cGxlLCB0 dXBuYXR0cywgZGlyLCAmbmV3Y29udCwgcHJlZml4c2tpcGluZGV4KTsKKwkJaWYgKCpwcmVmaXhz a2lwaW5kZXggPT0gLTEgJiYgcHJlZml4Q21wUmVzdWx0ICE9IDApCisJCXsKKwkJCSpwcmVmaXhz a2lwaW5kZXggPSBza2lwLT5wcmVmaXg7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisJcmV0 dXJuIG1hdGNoOworfQorCisvKgorICogQ29tcGFyZSBhIHNjYW5rZXkgd2l0aCBhIGdpdmVuIHR1 cGxlIGJ1dCBvbmx5IHRoZSBmaXJzdCBwcmVmaXggY29sdW1ucworICogVGhpcyBmdW5jdGlvbiBy ZXR1cm5zIDAgaWYgdGhlIGZpcnN0ICdwcmVmaXgnIGNvbHVtbnMgYXJlIGVxdWFsCisgKiAtMSBp ZiBrZXkgPCBpdHVwIGZvciB0aGUgZmlyc3QgcHJlZml4IGNvbHVtbnMKKyAqIDEgaWYga2V5ID4g aXR1cCBmb3IgdGhlIGZpcnN0IHByZWZpeCBjb2x1bW5zCisgKi8KK2ludDMyCitfYnRfY29tcGFy ZV91bnRpbChSZWxhdGlvbiByZWwsCisJCQlCVFNjYW5JbnNlcnQga2V5LAorCQkJSW5kZXhUdXBs ZSBpdHVwLAorCQkJaW50IHByZWZpeCkKK3sKKwlUdXBsZURlc2MJaXR1cGRlc2MgPSBSZWxhdGlv bkdldERlc2NyKHJlbCk7CisJU2NhbktleQkJc2NhbmtleTsKKwlpbnQJCQluY21wa2V5OworCisJ QXNzZXJ0KGtleS0+a2V5c3ogPD0gSW5kZXhSZWxhdGlvbkdldE51bWJlck9mS2V5QXR0cmlidXRl cyhyZWwpKTsKKworCW5jbXBrZXkgPSBNaW4ocHJlZml4LCBrZXktPmtleXN6KTsKKwlzY2Fua2V5 ID0ga2V5LT5zY2Fua2V5czsKKwlmb3IgKGludCBpID0gMTsgaSA8PSBuY21wa2V5OyBpKyspCisJ eworCQlEYXR1bQkJZGF0dW07CisJCWJvb2wJCWlzTnVsbDsKKwkJaW50MzIJCXJlc3VsdDsKKwor CQlkYXR1bSA9IGluZGV4X2dldGF0dHIoaXR1cCwgc2NhbmtleS0+c2tfYXR0bm8sIGl0dXBkZXNj LCAmaXNOdWxsKTsKKworCQkvKiBzZWUgY29tbWVudHMgYWJvdXQgTlVMTHMgaGFuZGxpbmcgaW4g YnRidWlsZCAqLworCQlpZiAoc2NhbmtleS0+c2tfZmxhZ3MgJiBTS19JU05VTEwpCS8qIGtleSBp cyBOVUxMICovCisJCXsKKwkJCWlmIChpc051bGwpCisJCQkJcmVzdWx0ID0gMDsJCS8qIE5VTEwg Ij0iIE5VTEwgKi8KKwkJCWVsc2UgaWYgKHNjYW5rZXktPnNrX2ZsYWdzICYgU0tfQlRfTlVMTFNf RklSU1QpCisJCQkJcmVzdWx0ID0gLTE7CS8qIE5VTEwgIjwiIE5PVF9OVUxMICovCisJCQllbHNl CisJCQkJcmVzdWx0ID0gMTsJCS8qIE5VTEwgIj4iIE5PVF9OVUxMICovCisJCX0KKwkJZWxzZSBp ZiAoaXNOdWxsKQkJLyoga2V5IGlzIE5PVF9OVUxMIGFuZCBpdGVtIGlzIE5VTEwgKi8KKwkJewor CQkJaWYgKHNjYW5rZXktPnNrX2ZsYWdzICYgU0tfQlRfTlVMTFNfRklSU1QpCisJCQkJcmVzdWx0 ID0gMTsJCS8qIE5PVF9OVUxMICI+IiBOVUxMICovCisJCQllbHNlCisJCQkJcmVzdWx0ID0gLTE7 CS8qIE5PVF9OVUxMICI8IiBOVUxMICovCisJCX0KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICog VGhlIHNrX2Z1bmMgbmVlZHMgdG8gYmUgcGFzc2VkIHRoZSBpbmRleCB2YWx1ZSBhcyBsZWZ0IGFy ZyBhbmQKKwkJCSAqIHRoZSBza19hcmd1bWVudCBhcyByaWdodCBhcmcgKHRoZXkgbWlnaHQgYmUg b2YgZGlmZmVyZW50CisJCQkgKiB0eXBlcykuICBTaW5jZSBpdCBpcyBjb252ZW5pZW50IGZvciBj YWxsZXJzIHRvIHRoaW5rIG9mCisJCQkgKiBfYnRfY29tcGFyZSBhcyBjb21wYXJpbmcgdGhlIHNj YW5rZXkgdG8gdGhlIGluZGV4IGl0ZW0sIHdlIGhhdmUKKwkJCSAqIHRvIGZsaXAgdGhlIHNpZ24g b2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0LiAgKFVubGVzcyBpdCdzIGEgREVTQworCQkJICogY29s dW1uLCBpbiB3aGljaCBjYXNlIHdlICpkb24ndCogZmxpcCB0aGUgc2lnbi4pCisJCQkgKi8KKwkJ CXJlc3VsdCA9IERhdHVtR2V0SW50MzIoRnVuY3Rpb25DYWxsMkNvbGwoJnNjYW5rZXktPnNrX2Z1 bmMsCisJCQkJCQkJCQkJCQkJIHNjYW5rZXktPnNrX2NvbGxhdGlvbiwKKwkJCQkJCQkJCQkJCQkg ZGF0dW0sCisJCQkJCQkJCQkJCQkJIHNjYW5rZXktPnNrX2FyZ3VtZW50KSk7CisKKwkJCWlmICgh KHNjYW5rZXktPnNrX2ZsYWdzICYgU0tfQlRfREVTQykpCisJCQkJSU5WRVJUX0NPTVBBUkVfUkVT VUxUKHJlc3VsdCk7CisJCX0KKworCQkvKiBpZiB0aGUga2V5cyBhcmUgdW5lcXVhbCwgcmV0dXJu IHRoZSBkaWZmZXJlbmNlICovCisJCWlmIChyZXN1bHQgIT0gMCkKKwkJCXJldHVybiByZXN1bHQ7 CisKKwkJc2NhbmtleSsrOworCX0KKwlyZXR1cm4gMDsKK30KKworCisvKgorICogQ3JlYXRlIGlu aXRpYWwgc2NhbmtleXMgZm9yIHNraXBwaW5nIGFuZCBzdG9yZXMgdGhlbSBpbiB0aGUgc2tpcERh dGEKKyAqIHN0cnVjdHVyZQorICovCit2b2lkCitfYnRfc2tpcF9jcmVhdGVfc2NhbmtleXMoUmVs YXRpb24gcmVsLCBCVFNjYW5PcGFxdWUgc28pCit7CisJaW50IGtleXNDb3VudDsKKwlCVFNraXAg c2tpcCA9IHNvLT5za2lwRGF0YTsKKwlTdHJhdGVneU51bWJlciBzdHJhdFRvdGFsOworCVNjYW5L ZXkJCWtleVBvaW50ZXJzW0lOREVYX01BWF9LRVlTXTsKKwlib29sIGdvYmFjazsKKwkvKiB3ZSBu ZWVkIHRvIGNyZWF0ZSBib3RoIGZvcndhcmQgYW5kIGJhY2t3YXJkIGtleXMgYmVjYXVzZSB0aGUg c2NhbiBkaXJlY3Rpb24KKwkgKiBtYXkgY2hhbmdlIGF0IGFueSBtb21lbnQgaW4gc2NhbnMgd2l0 aCBhIGN1cnNvci4KKwkgKiB3ZSBjb3VsZCB0ZWNobmljYWxseSBkZWxheSBjcmVhdGlvbiBvZiB0 aGUgc2Vjb25kIHVudGlsIGZpcnN0IHVzZSBhcyBhbiBvcHRpbWl6YXRpb24KKwkgKiBidXQgdGhh dCBpcyBub3QgaW1wbGVtZW50ZWQgeWV0LgorCSAqLworCWtleXNDb3VudCA9IF9idF9jaG9vc2Vf c2Nhbl9rZXlzKHNvLT5rZXlEYXRhLCBzby0+bnVtYmVyT2ZLZXlzLCBGb3J3YXJkU2NhbkRpcmVj dGlvbiwKKwkJCQkJCQkJCSBrZXlQb2ludGVycywgc2tpcC0+ZndkTm90TnVsbEtleXMsICZzdHJh dFRvdGFsLCBza2lwLT5wcmVmaXgpOworCV9idF9jcmVhdGVfaW5zZXJ0aW9uX3NjYW5fa2V5KHJl bCwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIGtleVBvaW50ZXJzLCBrZXlzQ291bnQsCisJCQkJCQkJ CSAgJnNraXAtPmZ3ZFNjYW5LZXksICZzdHJhdFRvdGFsLCAmZ29iYWNrKTsKKworCWtleXNDb3Vu dCA9IF9idF9jaG9vc2Vfc2Nhbl9rZXlzKHNvLT5rZXlEYXRhLCBzby0+bnVtYmVyT2ZLZXlzLCBC YWNrd2FyZFNjYW5EaXJlY3Rpb24sCisJCQkJCQkJCQkga2V5UG9pbnRlcnMsIHNraXAtPmJ3ZE5v dE51bGxLZXlzLCAmc3RyYXRUb3RhbCwgc2tpcC0+cHJlZml4KTsKKwlfYnRfY3JlYXRlX2luc2Vy dGlvbl9zY2FuX2tleShyZWwsIEJhY2t3YXJkU2NhbkRpcmVjdGlvbiwga2V5UG9pbnRlcnMsIGtl eXNDb3VudCwKKwkJCQkJCQkJICAmc2tpcC0+YndkU2NhbktleSwgJnN0cmF0VG90YWwsICZnb2Jh Y2spOworCisJX2J0X21ldGF2ZXJzaW9uKHJlbCwgJnNraXAtPmN1clBvcy5za2lwU2NhbktleS5o ZWFwa2V5c3BhY2UsCisJCQkJCSZza2lwLT5jdXJQb3Muc2tpcFNjYW5LZXkuYWxsZXF1YWxpbWFn ZSk7CisJc2tpcC0+Y3VyUG9zLnNraXBTY2FuS2V5LmFueW51bGxrZXlzID0gZmFsc2U7IC8qIHVu dXNlZCAqLworCXNraXAtPmN1clBvcy5za2lwU2NhbktleS5uZXh0a2V5ID0gZmFsc2U7CisJc2tp cC0+Y3VyUG9zLnNraXBTY2FuS2V5LnBpdm90c2VhcmNoID0gZmFsc2U7CisJc2tpcC0+Y3VyUG9z LnNraXBTY2FuS2V5LnNjYW50aWQgPSBOVUxMOworCXNraXAtPmN1clBvcy5za2lwU2NhbktleS5r ZXlzeiA9IDA7CisKKwkvKiBzZXR1cCBzY2Fua2V5IGZvciB0aGUgY3VycmVudCB0dXBsZSBhcyB3 ZWxsLiBpdCdzIG5vdCBuZWNlc3NhcmlseSB0aGF0CisJICogd2Ugd2lsbCB1c2UgdGhlIGRhdGEg ZnJvbSB0aGUgY3VycmVudCB0dXBsZSBhbHJlYWR5LAorCSAqIGJ1dCB3ZSBuZWVkIHRoZSByZXN0 IG9mIHRoZSBkYXRhIHN0cnVjdHVyZSB0byBiZSBzZXQgdXAgY29ycmVjdGx5CisJICogZm9yIHdo ZW4gd2UgdXNlIGl0IHRvIGNyZWF0ZSBza2lwLT5jdXJQb3Muc2tpcFNjYW5LZXkga2V5cyBsYXRl cgorCSAqLworCV9idF9ta3NjYW5rZXkocmVsLCBOVUxMLCAmc2tpcC0+Y3VycmVudFR1cGxlS2V5 KTsKK30KKworLyoKKyAqIF9idF9zY2Fua2V5X3dpdGhpbl9wYWdlKCkgLS0gY2hlY2sgaWYgdGhl IHByb3ZpZGVkIHNjYW5rZXkgY291bGQgYmUgZm91bmQKKyAqIAkJCQkJCQkJd2l0aGluIGEgcGFn ZSwgc3BlY2lmaWVkIGJ5IHRoZSBidWZmZXIuCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbAorX2J0 X3NjYW5rZXlfd2l0aGluX3BhZ2UoSW5kZXhTY2FuRGVzYyBzY2FuLCBCVFNjYW5JbnNlcnQga2V5 LAorCQkJCQkJQnVmZmVyIGJ1ZikKK3sKKwkvKiBAdG9kbzogb3B0aW1pemF0aW9uIGlzIHN0aWxs IHBvc3NpYmxlIGhlcmUgdG8KKwkgKiBvbmx5IGNoZWNrIGVpdGhlciB0aGUgbG93IG9yIHRoZSBo aWdoLCBkZXBlbmRpbmcgb24KKwkgKiB3aGljaCBkaXJlY3Rpb24gKndlIGNhbWUgZnJvbSogQU5E IHdoaWNoIGRpcmVjdGlvbgorCSAqICp3ZSBhcmUgcGxhbm5pbmcgdG8gc2NhbioKKwkgKi8KKwlP ZmZzZXROdW1iZXIgbG93LCBoaWdoOworCVBhZ2UgcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmKTsK KwlCVFBhZ2VPcGFxdWUgb3BhcXVlID0gKEJUUGFnZU9wYXF1ZSkgUGFnZUdldFNwZWNpYWxQb2lu dGVyKHBhZ2UpOworCWludAkJCWFuc19sbywgYW5zX2hpOworCisJbG93ID0gUF9GSVJTVERBVEFL RVkob3BhcXVlKTsKKwloaWdoID0gUGFnZUdldE1heE9mZnNldE51bWJlcihwYWdlKTsKKworCWlm ICh1bmxpa2VseShoaWdoIDwgbG93KSkKKwkJcmV0dXJuIGZhbHNlOworCisJYW5zX2xvID0gX2J0 X2NvbXBhcmUoc2Nhbi0+aW5kZXhSZWxhdGlvbiwKKwkJCQkJICAga2V5LCBwYWdlLCBsb3cpOwor CWFuc19oaSA9IF9idF9jb21wYXJlKHNjYW4tPmluZGV4UmVsYXRpb24sCisJCQkJCSAgIGtleSwg cGFnZSwgaGlnaCk7CisJaWYgKGtleS0+bmV4dGtleSkKKwl7CisJCS8qIHNrIDwgbGFzdCAmJiBz ayA+PSBmaXJzdCAqLworCQlyZXR1cm4gYW5zX2xvID49IDAgJiYgYW5zX2hpID09IC0xOworCX0K KwllbHNlCisJeworCQkvKiBzayA8PSBsYXN0ICYmIHNrID4gZmlyc3QgKi8KKwkJcmV0dXJuIGFu c19sbyA9PSAxICYmIGFuc19oaSA8PSAwOworCX0KK30KKworLyogaW46IHBpbm5lZCBhbmQgbG9j a2VkLCBvdXQ6IHBpbm5lZCBhbmQgbG9ja2VkICh1bmxlc3MgZW5kIG9mIHNjYW4pICovCitzdGF0 aWMgdm9pZAorX2J0X3NraXBfZmluZChJbmRleFNjYW5EZXNjIHNjYW4sIEluZGV4VHVwbGUgKmN1 clR1cGxlLCBPZmZzZXROdW1iZXIgKmN1clR1cGxlT2ZmbnVtLAorCQkJICBCVFNjYW5JbnNlcnQg c2NhbktleSwgU2NhbkRpcmVjdGlvbiBkaXIpCit7CisJQlRTY2FuT3BhcXVlIAlzbyA9IChCVFNj YW5PcGFxdWUpIHNjYW4tPm9wYXF1ZTsKKwlPZmZzZXROdW1iZXIgb2ZmbnVtOworCUJUU3RhY2sg c3RhY2s7CisJQnVmZmVyIGJ1ZjsKKwlib29sIGdvYmFjazsKKwlQYWdlCQlwYWdlOworCUJUUGFn ZU9wYXF1ZSBvcGFxdWU7CisJT2Zmc2V0TnVtYmVyIG1pbm9mZjsKKwlSZWxhdGlvbiByZWwgPSBz Y2FuLT5pbmRleFJlbGF0aW9uOworCWJvb2wgZnJvbXJvb3QgPSB0cnVlOworCisJX2J0X3NldF9i c2VhcmNoX2ZsYWdzKHNjYW5LZXktPnNjYW5rZXlzW3NjYW5LZXktPmtleXN6IC0gMV0uc2tfc3Ry YXRlZ3ksIGRpciwgJnNjYW5LZXktPm5leHRrZXksICZnb2JhY2spOworCisJaWYgKChERUJVRzEg Pj0gbG9nX21pbl9tZXNzYWdlcyB8fCBERUJVRzEgPj0gY2xpZW50X21pbl9tZXNzYWdlcykgJiYg IUlzQ2F0YWxvZ1JlbGF0aW9uKHJlbCkpCisJeworCQlpZiAoKmN1clR1cGxlICE9IE5VTEwpCisJ CQlwcmludF9pdHVwKEJ1ZmZlckdldEJsb2NrTnVtYmVyKHNvLT5jdXJyUG9zLmJ1ZiksICpjdXJU dXBsZSwgTlVMTCwgcmVsLAorCQkJCQkJImJlZm9yZSBidHJlZSBzZWFyY2giKTsKKworCQllbG9n KERFQlVHMSwgIiVzIHNlYXJjaGluZyB0cmVlIHdpdGggJWQga2V5cywgbmV4dGtleT0lZCwgZ29i YWNrPSVkIiwKKwkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCBzY2FuS2V5LT5rZXlz eiwgc2NhbktleS0+bmV4dGtleSwKKwkJCSBnb2JhY2spOworCisJCV9wcmludF9za2V5KHNjYW4s IHNjYW5LZXkpOworCX0KKworCWlmICgqY3VyVHVwbGVPZmZudW0gPT0gSW52YWxpZE9mZnNldE51 bWJlcikKKwl7CisJCUJUU2NhblBvc1VucGluSWZQaW5uZWQoc28tPmN1cnJQb3MpOworCX0KKwll bHNlCisJeworCQlpZiAoX2J0X3NjYW5rZXlfd2l0aGluX3BhZ2Uoc2Nhbiwgc2NhbktleSwgc28t PmN1cnJQb3MuYnVmKSkKKwkJeworCQkJZWxvZyhERUJVRzEsICJzayBmb3VuZCB3aXRoaW4gY3Vy cmVudCBwYWdlIik7CisKKwkJCW9mZm51bSA9IF9idF9iaW5zcmNoKHNjYW4tPmluZGV4UmVsYXRp b24sIHNjYW5LZXksIHNvLT5jdXJyUG9zLmJ1Zik7CisJCQlmcm9tcm9vdCA9IGZhbHNlOworCQl9 CisJCWVsc2UKKwkJeworCQkJTG9ja0J1ZmZlcihzby0+Y3VyclBvcy5idWYsIEJVRkZFUl9MT0NL X1VOTE9DSyk7CisJCQlSZWxlYXNlQnVmZmVyKHNvLT5jdXJyUG9zLmJ1Zik7CisJCQlzby0+Y3Vy clBvcy5idWYgPSBJbnZhbGlkQnVmZmVyOworCQl9CisJfQorCisJLyoKKwkgKiBXZSBoYXZlbid0 IGZvdW5kIHNjYW4ga2V5IHdpdGhpbiB0aGUgY3VycmVudCBwYWdlLCBzbyBsZXQncyBzY2FuIGZy b20KKwkgKiB0aGUgcm9vdC4gVXNlIF9idF9zZWFyY2ggYW5kIF9idF9iaW5zcmNoIHRvIGdldCB0 aGUgYnVmZmVyIGFuZCBvZmZzZXQKKwkgKiBudW1iZXIKKwkgKi8KKwlpZiAoZnJvbXJvb3QpCisJ eworCQlzdGFjayA9IF9idF9zZWFyY2goc2Nhbi0+aW5kZXhSZWxhdGlvbiwgc2NhbktleSwKKwkJ CQkJCSAgICZidWYsIEJUX1JFQUQsIHNjYW4tPnhzX3NuYXBzaG90KTsKKwkJX2J0X2ZyZWVzdGFj ayhzdGFjayk7CisJCXNvLT5jdXJyUG9zLmJ1ZiA9IGJ1ZjsKKworCQlvZmZudW0gPSBfYnRfYmlu c3JjaChzY2FuLT5pbmRleFJlbGF0aW9uLCBzY2FuS2V5LCBidWYpOworCisJCS8qIExvY2sgdGhl IHBhZ2UgZm9yIFNFUklBTElaQUJMRSB0cmFuc2FjdGlvbnMgKi8KKwkJUHJlZGljYXRlTG9ja1Bh Z2Uoc2Nhbi0+aW5kZXhSZWxhdGlvbiwgQnVmZmVyR2V0QmxvY2tOdW1iZXIoc28tPmN1cnJQb3Mu YnVmKSwKKwkJCQkJCSAgc2Nhbi0+eHNfc25hcHNob3QpOworCX0KKworCXBhZ2UgPSBCdWZmZXJH ZXRQYWdlKHNvLT5jdXJyUG9zLmJ1Zik7CisJb3BhcXVlID0gKEJUUGFnZU9wYXF1ZSkgUGFnZUdl dFNwZWNpYWxQb2ludGVyKHBhZ2UpOworCisJaWYgKGdvYmFjaykKKwl7CisJCW9mZm51bSA9IE9m ZnNldE51bWJlclByZXYob2ZmbnVtKTsKKwkJbWlub2ZmID0gUF9GSVJTVERBVEFLRVkob3BhcXVl KTsKKwkJaWYgKG9mZm51bSA8IG1pbm9mZikKKwkJeworCQkJTG9ja0J1ZmZlcihzby0+Y3VyclBv cy5idWYsIEJVRkZFUl9MT0NLX1VOTE9DSyk7CisJCQlpZiAoIV9idF9zdGVwX2JhY2tfcGFnZShz Y2FuLCBjdXJUdXBsZSwgY3VyVHVwbGVPZmZudW0pKQorCQkJCXJldHVybjsKKwkJCXBhZ2UgPSBC dWZmZXJHZXRQYWdlKHNvLT5jdXJyUG9zLmJ1Zik7CisJCQlvcGFxdWUgPSAoQlRQYWdlT3BhcXVl KSBQYWdlR2V0U3BlY2lhbFBvaW50ZXIocGFnZSk7CisJCQlvZmZudW0gPSBQYWdlR2V0TWF4T2Zm c2V0TnVtYmVyKHBhZ2UpOworCQl9CisJfQorCWVsc2UgaWYgKG9mZm51bSA+IFBhZ2VHZXRNYXhP ZmZzZXROdW1iZXIocGFnZSkpCisJeworCQlCbG9ja051bWJlciBuZXh0ID0gb3BhcXVlLT5idHBv X25leHQ7CisJCUxvY2tCdWZmZXIoc28tPmN1cnJQb3MuYnVmLCBCVUZGRVJfTE9DS19VTkxPQ0sp OworCQlpZiAoIV9idF9zdGVwX2ZvcndhcmRfcGFnZShzY2FuLCBuZXh0LCBjdXJUdXBsZSwgY3Vy VHVwbGVPZmZudW0pKQorCQkJcmV0dXJuOworCQlwYWdlID0gQnVmZmVyR2V0UGFnZShzby0+Y3Vy clBvcy5idWYpOworCQlvcGFxdWUgPSAoQlRQYWdlT3BhcXVlKSBQYWdlR2V0U3BlY2lhbFBvaW50 ZXIocGFnZSk7CisJCW9mZm51bSA9IFBfRklSU1REQVRBS0VZKG9wYXF1ZSk7CisJfQorCisJLyog V2Uga25vdyBpbiB3aGljaCBkaXJlY3Rpb24gdG8gbG9vayAqLworCV9idF9pbml0aWFsaXplX21v cmVfZGF0YShzbywgZGlyKTsKKworCSpjdXJUdXBsZU9mZm51bSA9IG9mZm51bTsKKwkqY3VyVHVw bGUgPSAoSW5kZXhUdXBsZSkgUGFnZUdldEl0ZW0ocGFnZSwgUGFnZUdldEl0ZW1JZChwYWdlLCBv ZmZudW0pKTsKKwlzby0+Y3VyclBvcy5jdXJyUGFnZSA9IEJ1ZmZlckdldEJsb2NrTnVtYmVyKHNv LT5jdXJyUG9zLmJ1Zik7CisKKwlpZiAoREVCVUcxID49IGxvZ19taW5fbWVzc2FnZXMgfHwgREVC VUcxID49IGNsaWVudF9taW5fbWVzc2FnZXMpCisJCXByaW50X2l0dXAoQnVmZmVyR2V0QmxvY2tO dW1iZXIoc28tPmN1cnJQb3MuYnVmKSwgKmN1clR1cGxlLCBOVUxMLCByZWwsCisJCQkJCSJhZnRl ciBidHJlZSBzZWFyY2giKTsKK30KKworc3RhdGljIGlubGluZSBib29sCitfYnRfc3RlcF9vbmVf cGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyLCBJbmRleFR1cGxlICpj dXJUdXBsZSwKKwkJCQkgIE9mZnNldE51bWJlciAqY3VyVHVwbGVPZmZudW0pCit7CisJaWYgKFNj YW5EaXJlY3Rpb25Jc0ZvcndhcmQoZGlyKSkKKwl7CisJCUJUU2Nhbk9wYXF1ZSBzbyA9IChCVFNj YW5PcGFxdWUpIHNjYW4tPm9wYXF1ZTsKKwkJcmV0dXJuIF9idF9zdGVwX2ZvcndhcmRfcGFnZShz Y2FuLCBzby0+Y3VyclBvcy5uZXh0UGFnZSwgY3VyVHVwbGUsIGN1clR1cGxlT2ZmbnVtKTsKKwl9 CisJZWxzZQorCXsKKwkJcmV0dXJuIF9idF9zdGVwX2JhY2tfcGFnZShzY2FuLCBjdXJUdXBsZSwg Y3VyVHVwbGVPZmZudW0pOworCX0KK30KKworLyogaW46IHBvc3NpYmx5IHBpbm5lZCwgYnV0IHVu bG9ja2VkLCBvdXQ6IHBpbm5lZCBhbmQgbG9ja2VkICovCitib29sCitfYnRfc3RlcF9mb3J3YXJk X3BhZ2UoSW5kZXhTY2FuRGVzYyBzY2FuLCBCbG9ja051bWJlciBuZXh0LCBJbmRleFR1cGxlICpj dXJUdXBsZSwKKwkJCQkJICBPZmZzZXROdW1iZXIgKmN1clR1cGxlT2ZmbnVtKQoreworCUJUU2Nh bk9wYXF1ZSBzbyA9IChCVFNjYW5PcGFxdWUpIHNjYW4tPm9wYXF1ZTsKKwlSZWxhdGlvbiByZWwg PSBzY2FuLT5pbmRleFJlbGF0aW9uOworCUJsb2NrTnVtYmVyIGJsa25vID0gbmV4dDsKKwlQYWdl IHBhZ2U7CisJQlRQYWdlT3BhcXVlIG9wYXF1ZTsKKworCUFzc2VydChCVFNjYW5Qb3NJc1ZhbGlk KHNvLT5jdXJyUG9zKSk7CisKKwkvKiBCZWZvcmUgbGVhdmluZyBjdXJyZW50IHBhZ2UsIGRlYWwg d2l0aCBhbnkga2lsbGVkIGl0ZW1zICovCisJaWYgKHNvLT5udW1LaWxsZWQgPiAwKQorCQlfYnRf a2lsbGl0ZW1zKHNjYW4pOworCisJLyoKKwkgKiBCZWZvcmUgd2UgbW9kaWZ5IGN1cnJQb3MsIG1h a2UgYSBjb3B5IG9mIHRoZSBwYWdlIGRhdGEgaWYgdGhlcmUgd2FzIGEKKwkgKiBtYXJrIHBvc2l0 aW9uIHRoYXQgbmVlZHMgaXQuCisJICovCisJaWYgKHNvLT5tYXJrSXRlbUluZGV4ID49IDApCisJ eworCQkvKiBidW1wIHBpbiBvbiBjdXJyZW50IGJ1ZmZlciBmb3IgYXNzaWdubWVudCB0byBtYXJr IGJ1ZmZlciAqLworCQlpZiAoQlRTY2FuUG9zSXNQaW5uZWQoc28tPmN1cnJQb3MpKQorCQkJSW5j ckJ1ZmZlclJlZkNvdW50KHNvLT5jdXJyUG9zLmJ1Zik7CisJCW1lbWNweSgmc28tPm1hcmtQb3Ms ICZzby0+Y3VyclBvcywKKwkJCSAgIG9mZnNldG9mKEJUU2NhblBvc0RhdGEsIGl0ZW1zWzFdKSAr CisJCQkgICBzby0+Y3VyclBvcy5sYXN0SXRlbSAqIHNpemVvZihCVFNjYW5Qb3NJdGVtKSk7CisJ CWlmIChzby0+bWFya1R1cGxlcykKKwkJCW1lbWNweShzby0+bWFya1R1cGxlcywgc28tPmN1cnJU dXBsZXMsCisJCQkJICAgc28tPmN1cnJQb3MubmV4dFR1cGxlT2Zmc2V0KTsKKwkJc28tPm1hcmtQ b3MuaXRlbUluZGV4ID0gc28tPm1hcmtJdGVtSW5kZXg7CisJCWlmIChzby0+c2tpcERhdGEpCisJ CQltZW1jcHkoJnNvLT5za2lwRGF0YS0+bWFya1BvcywgJnNvLT5za2lwRGF0YS0+Y3VyUG9zLAor CQkJCSAgIHNpemVvZihCVFNraXBQb3NEYXRhKSk7CisJCXNvLT5tYXJrSXRlbUluZGV4ID0gLTE7 CisJfQorCisJLyogUmVtZW1iZXIgd2UgbGVmdCBhIHBhZ2Ugd2l0aCBkYXRhICovCisJc28tPmN1 cnJQb3MubW9yZUxlZnQgPSB0cnVlOworCisJLyogcmVsZWFzZSB0aGUgcHJldmlvdXMgYnVmZmVy LCBpZiBwaW5uZWQgKi8KKwlCVFNjYW5Qb3NVbnBpbklmUGlubmVkKHNvLT5jdXJyUG9zKTsKKwor CXsKKwkJZm9yICg7OykKKwkJeworCQkJLyoKKwkJCSAqIGlmIHdlJ3JlIGF0IGVuZCBvZiBzY2Fu LCBnaXZlIHVwIGFuZCBtYXJrIHBhcmFsbGVsIHNjYW4gYXMKKwkJCSAqIGRvbmUsIHNvIHRoYXQg YWxsIHRoZSB3b3JrZXJzIGNhbiBmaW5pc2ggdGhlaXIgc2NhbgorCQkJICovCisJCQlpZiAoYmxr bm8gPT0gUF9OT05FKQorCQkJeworCQkJCV9idF9wYXJhbGxlbF9kb25lKHNjYW4pOworCQkJCUJU U2NhblBvc0ludmFsaWRhdGUoc28tPmN1cnJQb3MpOworCQkJCXJldHVybiBmYWxzZTsKKwkJCX0K KworCQkJLyogY2hlY2sgZm9yIGludGVycnVwdHMgd2hpbGUgd2UncmUgbm90IGhvbGRpbmcgYW55 IGJ1ZmZlciBsb2NrICovCisJCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCQkJLyogc3RlcCBy aWdodCBvbmUgcGFnZSAqLworCQkJc28tPmN1cnJQb3MuYnVmID0gX2J0X2dldGJ1ZihyZWwsIGJs a25vLCBCVF9SRUFEKTsKKwkJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKHNvLT5jdXJyUG9zLmJ1Zik7 CisJCQlUZXN0Rm9yT2xkU25hcHNob3Qoc2Nhbi0+eHNfc25hcHNob3QsIHJlbCwgcGFnZSk7CisJ CQlvcGFxdWUgPSAoQlRQYWdlT3BhcXVlKSBQYWdlR2V0U3BlY2lhbFBvaW50ZXIocGFnZSk7CisJ CQkvKiBjaGVjayBmb3IgZGVsZXRlZCBwYWdlICovCisJCQlpZiAoIVBfSUdOT1JFKG9wYXF1ZSkp CisJCQl7CisJCQkJUHJlZGljYXRlTG9ja1BhZ2UocmVsLCBibGtubywgc2Nhbi0+eHNfc25hcHNo b3QpOworCQkJCSpjdXJUdXBsZU9mZm51bSA9IFBfRklSU1REQVRBS0VZKG9wYXF1ZSk7CisJCQkJ KmN1clR1cGxlID0gX2J0X2dldF90dXBsZV9mcm9tX29mZnNldChzbywgKmN1clR1cGxlT2ZmbnVt KTsKKwkJCQlicmVhazsKKwkJCX0KKworCQkJYmxrbm8gPSBvcGFxdWUtPmJ0cG9fbmV4dDsKKwkJ CV9idF9yZWxidWYocmVsLCBzby0+Y3VyclBvcy5idWYpOworCQl9CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CisKKy8qIGluOiBwb3NzaWJseSBwaW5uZWQsIGJ1dCB1bmxvY2tlZCwgb3V0OiBwaW5u ZWQgYW5kIGxvY2tlZCAqLworYm9vbAorX2J0X3N0ZXBfYmFja19wYWdlKEluZGV4U2NhbkRlc2Mg c2NhbiwgSW5kZXhUdXBsZSAqY3VyVHVwbGUsIE9mZnNldE51bWJlciAqY3VyVHVwbGVPZmZudW0p Cit7CisJQlRTY2FuT3BhcXVlIHNvID0gKEJUU2Nhbk9wYXF1ZSkgc2Nhbi0+b3BhcXVlOworCisJ QXNzZXJ0KEJUU2NhblBvc0lzVmFsaWQoc28tPmN1cnJQb3MpKTsKKworCS8qIEJlZm9yZSBsZWF2 aW5nIGN1cnJlbnQgcGFnZSwgZGVhbCB3aXRoIGFueSBraWxsZWQgaXRlbXMgKi8KKwlpZiAoc28t Pm51bUtpbGxlZCA+IDApCisJCV9idF9raWxsaXRlbXMoc2Nhbik7CisKKwkvKgorCSAqIEJlZm9y ZSB3ZSBtb2RpZnkgY3VyclBvcywgbWFrZSBhIGNvcHkgb2YgdGhlIHBhZ2UgZGF0YSBpZiB0aGVy ZSB3YXMgYQorCSAqIG1hcmsgcG9zaXRpb24gdGhhdCBuZWVkcyBpdC4KKwkgKi8KKwlpZiAoc28t Pm1hcmtJdGVtSW5kZXggPj0gMCkKKwl7CisJCS8qIGJ1bXAgcGluIG9uIGN1cnJlbnQgYnVmZmVy IGZvciBhc3NpZ25tZW50IHRvIG1hcmsgYnVmZmVyICovCisJCWlmIChCVFNjYW5Qb3NJc1Bpbm5l ZChzby0+Y3VyclBvcykpCisJCQlJbmNyQnVmZmVyUmVmQ291bnQoc28tPmN1cnJQb3MuYnVmKTsK KwkJbWVtY3B5KCZzby0+bWFya1BvcywgJnNvLT5jdXJyUG9zLAorCQkJICAgb2Zmc2V0b2YoQlRT Y2FuUG9zRGF0YSwgaXRlbXNbMV0pICsKKwkJCSAgIHNvLT5jdXJyUG9zLmxhc3RJdGVtICogc2l6 ZW9mKEJUU2NhblBvc0l0ZW0pKTsKKwkJaWYgKHNvLT5tYXJrVHVwbGVzKQorCQkJbWVtY3B5KHNv LT5tYXJrVHVwbGVzLCBzby0+Y3VyclR1cGxlcywKKwkJCQkgICBzby0+Y3VyclBvcy5uZXh0VHVw bGVPZmZzZXQpOworCQlpZiAoc28tPnNraXBEYXRhKQorCQkJbWVtY3B5KCZzby0+c2tpcERhdGEt Pm1hcmtQb3MsICZzby0+c2tpcERhdGEtPmN1clBvcywKKwkJCQkgICBzaXplb2YoQlRTa2lwUG9z RGF0YSkpOworCQlzby0+bWFya1Bvcy5pdGVtSW5kZXggPSBzby0+bWFya0l0ZW1JbmRleDsKKwkJ c28tPm1hcmtJdGVtSW5kZXggPSAtMTsKKwl9CisKKwkvKiBSZW1lbWJlciB3ZSBsZWZ0IGEgcGFn ZSB3aXRoIGRhdGEgKi8KKwlzby0+Y3VyclBvcy5tb3JlUmlnaHQgPSB0cnVlOworCisJLyogTm90 IHBhcmFsbGVsLCBzbyBqdXN0IHVzZSBvdXIgb3duIG5vdGlvbiBvZiB0aGUgY3VycmVudCBwYWdl ICovCisKKwl7CisJCVJlbGF0aW9uCXJlbDsKKwkJUGFnZQkJcGFnZTsKKwkJQlRQYWdlT3BhcXVl IG9wYXF1ZTsKKworCQlyZWwgPSBzY2FuLT5pbmRleFJlbGF0aW9uOworCisJCWlmIChCVFNjYW5Q b3NJc1Bpbm5lZChzby0+Y3VyclBvcykpCisJCQlMb2NrQnVmZmVyKHNvLT5jdXJyUG9zLmJ1Ziwg QlRfUkVBRCk7CisJCWVsc2UKKwkJCXNvLT5jdXJyUG9zLmJ1ZiA9IF9idF9nZXRidWYocmVsLCBz by0+Y3VyclBvcy5jdXJyUGFnZSwgQlRfUkVBRCk7CisKKwkJZm9yICg7OykKKwkJeworCQkJLyog U3RlcCB0byBuZXh0IHBoeXNpY2FsIHBhZ2UgKi8KKwkJCXNvLT5jdXJyUG9zLmJ1ZiA9IF9idF93 YWxrX2xlZnQocmVsLCBzby0+Y3VyclBvcy5idWYsCisJCQkJCQkJCQkJCXNjYW4tPnhzX3NuYXBz aG90KTsKKworCQkJLyogaWYgd2UncmUgcGh5c2ljYWxseSBhdCBlbmQgb2YgaW5kZXgsIHJldHVy biBmYWlsdXJlICovCisJCQlpZiAoc28tPmN1cnJQb3MuYnVmID09IEludmFsaWRCdWZmZXIpCisJ CQl7CisJCQkJQlRTY2FuUG9zSW52YWxpZGF0ZShzby0+Y3VyclBvcyk7CisJCQkJcmV0dXJuIGZh bHNlOworCQkJfQorCisJCQkvKgorCQkJICogT2theSwgd2UgbWFuYWdlZCB0byBtb3ZlIGxlZnQg dG8gYSBub24tZGVsZXRlZCBwYWdlLiBEb25lIGlmCisJCQkgKiBpdCdzIG5vdCBoYWxmLWRlYWQg YW5kIGNvbnRhaW5zIG1hdGNoaW5nIHR1cGxlcy4gRWxzZSBsb29wIGJhY2sKKwkJCSAqIGFuZCBk byBpdCBhbGwgYWdhaW4uCisJCQkgKi8KKwkJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKHNvLT5jdXJy UG9zLmJ1Zik7CisJCQlUZXN0Rm9yT2xkU25hcHNob3Qoc2Nhbi0+eHNfc25hcHNob3QsIHJlbCwg cGFnZSk7CisJCQlvcGFxdWUgPSAoQlRQYWdlT3BhcXVlKSBQYWdlR2V0U3BlY2lhbFBvaW50ZXIo cGFnZSk7CisJCQlpZiAoIVBfSUdOT1JFKG9wYXF1ZSkpCisJCQl7CisJCQkJUHJlZGljYXRlTG9j a1BhZ2UocmVsLCBCdWZmZXJHZXRCbG9ja051bWJlcihzby0+Y3VyclBvcy5idWYpLCBzY2FuLT54 c19zbmFwc2hvdCk7CisJCQkJKmN1clR1cGxlT2ZmbnVtID0gUGFnZUdldE1heE9mZnNldE51bWJl cihwYWdlKTsKKwkJCQkqY3VyVHVwbGUgPSBfYnRfZ2V0X3R1cGxlX2Zyb21fb2Zmc2V0KHNvLCAq Y3VyVHVwbGVPZmZudW0pOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CisKKy8qIGhvbGRzIGxvY2sgYXMgbG9uZyBhcyBjdXJUdXBsZU9mZm51bSAhPSBJbnZh bGlkT2Zmc2V0TnVtYmVyICovCitib29sCitfYnRfc2tpcF9maW5kX25leHQoSW5kZXhTY2FuRGVz YyBzY2FuLCBJbmRleFR1cGxlIGN1clR1cGxlLCBPZmZzZXROdW1iZXIgY3VyVHVwbGVPZmZudW0s CisJCQkJICAgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsIFNjYW5EaXJlY3Rpb24gcG9zdGZpeERp cikKK3sKKwlCVFNjYW5PcGFxdWUgc28gPSAoQlRTY2FuT3BhcXVlKSBzY2FuLT5vcGFxdWU7CisJ QlRTa2lwIHNraXAgPSBzby0+c2tpcERhdGE7CisJQlRTa2lwQ29tcGFyZVJlc3VsdCBjbXA7CisK Kwl3aGlsZSAoX2J0X3NraXBfaXNfdmFsaWQoc28sIHByZWZpeERpciwgcG9zdGZpeERpcikpCisJ eworCQlib29sIGZvdW5kOworCQlfYnRfc2tpcF91bnRpbF9tYXRjaChzY2FuLCAmY3VyVHVwbGUs ICZjdXJUdXBsZU9mZm51bSwgcHJlZml4RGlyLCBwb3N0Zml4RGlyKTsKKworCQl3aGlsZSAoX2J0 X3NraXBfaXNfYWx3YXlzX3ZhbGlkKHNvKSkKKwkJeworCQkJT2Zmc2V0TnVtYmVyIGZpcnN0ID0g Y3VyVHVwbGVPZmZudW07CisJCQlmb3VuZCA9IF9idF9yZWFkcGFnZShzY2FuLCBwb3N0Zml4RGly LCAmY3VyVHVwbGVPZmZudW0sCisJCQkJCQkJCSBfYnRfc2tpcF9pc19yZWd1bGFyX21vZGUocHJl Zml4RGlyLCBwb3N0Zml4RGlyKSk7CisJCQlpZiAoREVCVUcxID49IGxvZ19taW5fbWVzc2FnZXMg fHwgREVCVUcxID49IGNsaWVudF9taW5fbWVzc2FnZXMpCisJCQl7CisJCQkJcHJpbnRfaXR1cChC dWZmZXJHZXRCbG9ja051bWJlcihzby0+Y3VyclBvcy5idWYpLAorCQkJCQkJICAgX2J0X2dldF90 dXBsZV9mcm9tX29mZnNldChzbywgZmlyc3QpLCBOVUxMLCBzY2FuLT5pbmRleFJlbGF0aW9uLAor CQkJCQkJCSJmaXJzdCBpdGVtIG9uIHBhZ2UgY29tcGFyZWQiKTsKKwkJCQlwcmludF9pdHVwKEJ1 ZmZlckdldEJsb2NrTnVtYmVyKHNvLT5jdXJyUG9zLmJ1ZiksCisJCQkJCQkgICBfYnRfZ2V0X3R1 cGxlX2Zyb21fb2Zmc2V0KHNvLCBjdXJUdXBsZU9mZm51bSksIE5VTEwsIHNjYW4tPmluZGV4UmVs YXRpb24sCisJCQkJCQkJImxhc3QgaXRlbSBvbiBwYWdlIGNvbXBhcmVkIik7CisJCQl9CisJCQlf YnRfY29tcGFyZV9jdXJyZW50X2l0ZW0oc2NhbiwgX2J0X2dldF90dXBsZV9mcm9tX29mZnNldChz bywgY3VyVHVwbGVPZmZudW0pLAorCQkJCQkJCQkJIEluZGV4UmVsYXRpb25HZXROdW1iZXJPZkF0 dHJpYnV0ZXMoc2Nhbi0+aW5kZXhSZWxhdGlvbiksCisJCQkJCQkJCQkgcG9zdGZpeERpciwgX2J0 X3NraXBfaXNfcmVndWxhcl9tb2RlKHByZWZpeERpciwgcG9zdGZpeERpciksICZjbXApOworCQkJ X2J0X2RldGVybWluZV9uZXh0X2FjdGlvbihzY2FuLCAmY21wLCBmaXJzdCwgY3VyVHVwbGVPZmZu dW0sCisJCQkJCQkJCQkgIHBvc3RmaXhEaXIsICZza2lwLT5jdXJQb3MubmV4dEFjdGlvbik7CisJ CQlza2lwLT5jdXJQb3MubmV4dERpcmVjdGlvbiA9IHByZWZpeERpcjsKKwkJCXNraXAtPmN1clBv cy5uZXh0U2tpcEluZGV4ID0gY21wLnByZWZpeFNraXBJbmRleDsKKworCQkJaWYgKGZvdW5kKQor CQkJeworCQkJCV9idF9za2lwX3VwZGF0ZV9zY2Fua2V5X2FmdGVyX3JlYWQoc2NhbiwgX2J0X2dl dF90dXBsZV9mcm9tX29mZnNldChzbywgY3VyVHVwbGVPZmZudW0pLAorCQkJCQkJCQkJCQkJICAg cHJlZml4RGlyLCBwb3N0Zml4RGlyKTsKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWVsc2Ug aWYgKHNraXAtPmN1clBvcy5uZXh0QWN0aW9uID09IFNraXBTdGF0ZU5leHQpCisJCQl7CisJCQkJ aWYgKGN1clR1cGxlT2ZmbnVtICE9IEludmFsaWRPZmZzZXROdW1iZXIpCisJCQkJCUxvY2tCdWZm ZXIoc28tPmN1cnJQb3MuYnVmLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCQkJCWlmICghX2J0X3N0 ZXBfb25lX3BhZ2Uoc2NhbiwgcG9zdGZpeERpciwgJmN1clR1cGxlLCAmY3VyVHVwbGVPZmZudW0p KQorCQkJCQlyZXR1cm4gZmFsc2U7CisJCQl9CisJCQllbHNlIGlmIChza2lwLT5jdXJQb3MubmV4 dEFjdGlvbiA9PSBTa2lwU3RhdGVTa2lwIHx8IHNraXAtPmN1clBvcy5uZXh0QWN0aW9uID09IFNr aXBTdGF0ZVNraXBFeHRyYSkKKwkJCXsKKwkJCQljdXJUdXBsZSA9IF9idF9nZXRfdHVwbGVfZnJv bV9vZmZzZXQoc28sIGN1clR1cGxlT2ZmbnVtKTsKKwkJCQlfYnRfc2tpcF91cGRhdGVfc2Nhbmtl eV9hZnRlcl9yZWFkKHNjYW4sIGN1clR1cGxlLCBwcmVmaXhEaXIsIHBvc3RmaXhEaXIpOworCQkJ CUxvY2tCdWZmZXIoc28tPmN1cnJQb3MuYnVmLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCQkJCWN1 clR1cGxlT2ZmbnVtID0gSW52YWxpZE9mZnNldE51bWJlcjsKKwkJCQljdXJUdXBsZSA9IE5VTEw7 CisJCQkJYnJlYWs7CisJCQl9CisJCQllbHNlIGlmIChza2lwLT5jdXJQb3MubmV4dEFjdGlvbiA9 PSBTa2lwU3RhdGVTdG9wKQorCQkJeworCQkJCUxvY2tCdWZmZXIoc28tPmN1cnJQb3MuYnVmLCBC VUZGRVJfTE9DS19VTkxPQ0spOworCQkJCUJUU2NhblBvc1VucGluSWZQaW5uZWQoc28tPmN1cnJQ b3MpOworCQkJCUJUU2NhblBvc0ludmFsaWRhdGUoc28tPmN1cnJQb3MpOworCQkJCXJldHVybiBm YWxzZTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlBc3NlcnQoZmFsc2UpOworCQkJfQorCQl9 CisJfQorCXJldHVybiBmYWxzZTsKK30KKwordm9pZAorX2J0X3NraXBfdW50aWxfbWF0Y2goSW5k ZXhTY2FuRGVzYyBzY2FuLCBJbmRleFR1cGxlICpjdXJUdXBsZSwgT2Zmc2V0TnVtYmVyICpjdXJU dXBsZU9mZm51bSwKKwkJCQkJIFNjYW5EaXJlY3Rpb24gcHJlZml4RGlyLCBTY2FuRGlyZWN0aW9u IHBvc3RmaXhEaXIpCit7CisJQlRTY2FuT3BhcXVlIAlzbyA9IChCVFNjYW5PcGFxdWUpIHNjYW4t Pm9wYXF1ZTsKKwlCVFNraXAgc2tpcCA9IHNvLT5za2lwRGF0YTsKKwl3aGlsZSAoX2J0X3NraXBf aXNfdmFsaWQoc28sIHByZWZpeERpciwgcG9zdGZpeERpcikgJiYKKwkJICAgKHNraXAtPmN1clBv cy5uZXh0QWN0aW9uID09IFNraXBTdGF0ZVNraXAgfHwgc2tpcC0+Y3VyUG9zLm5leHRBY3Rpb24g PT0gU2tpcFN0YXRlU2tpcEV4dHJhKSkKKwl7CisJCV9idF9za2lwX29uY2Uoc2NhbiwgY3VyVHVw bGUsIGN1clR1cGxlT2ZmbnVtLAorCQkJCQkgIHNraXAtPmN1clBvcy5uZXh0QWN0aW9uID09IFNr aXBTdGF0ZVNraXAsIHByZWZpeERpciwgcG9zdGZpeERpcik7CisJfQorfQorCit2b2lkCitfYnRf Y29tcGFyZV9jdXJyZW50X2l0ZW0oSW5kZXhTY2FuRGVzYyBzY2FuLCBJbmRleFR1cGxlIHR1cGxl LCBpbnQgdHVwbmF0dHMsIFNjYW5EaXJlY3Rpb24gZGlyLAorCQkJCQkJIGJvb2wgaXNSZWd1bGFy TW9kZSwgQlRTa2lwQ29tcGFyZVJlc3VsdCogY21wKQoreworCUJUU2Nhbk9wYXF1ZSAJc28gPSAo QlRTY2FuT3BhcXVlKSBzY2FuLT5vcGFxdWU7CisJQlRTa2lwIHNraXAgPSBzby0+c2tpcERhdGE7 CisKKwlpZiAoX2J0X3NraXBfaXNfYWx3YXlzX3ZhbGlkKHNvKSkKKwl7CisJCWJvb2wgY29udGlu dWVzY2FuID0gdHJ1ZTsKKworCQljbXAtPmVxdWFsID0gX2J0X2NoZWNra2V5cyhzY2FuLCB0dXBs ZSwgdHVwbmF0dHMsIGRpciwgJmNvbnRpbnVlc2NhbiwgJmNtcC0+cHJlZml4U2tpcEluZGV4KTsK KwkJY21wLT5mdWxsS2V5U2tpcCA9ICFjb250aW51ZXNjYW47CisJCS8qIHByZWZpeCBjYW4gYmUg c21hbGxlciB0aGFuIHNjYW5rZXkgZHVlIHRvIGV4dHJhIHF1YWxzIGJlaW5nIGFkZGVkCisJCSAq IHRoZXJlZm9yZSB3ZSBuZWVkIHRvIGNvbXBhcmUgYm90aC4gQHRvZG8gdGhpcyBjYW4gYmUgb3B0 aW1pemVkIGludG8gb25lIGZ1bmN0aW9uIGNhbGwgKi8KKwkJY21wLT5wcmVmaXhDbXBSZXN1bHQg PSBfYnRfY29tcGFyZV91bnRpbChzY2FuLT5pbmRleFJlbGF0aW9uLCAmc2tpcC0+Y3VyUG9zLnNr aXBTY2FuS2V5LCB0dXBsZSwgc2tpcC0+cHJlZml4KTsKKwkJY21wLT5za0NtcFJlc3VsdCA9IF9i dF9jb21wYXJlX3VudGlsKHNjYW4tPmluZGV4UmVsYXRpb24sCisJCQkJCQkJCQkJCSAmc2tpcC0+ Y3VyUG9zLnNraXBTY2FuS2V5LCB0dXBsZSwgc2tpcC0+Y3VyUG9zLnNraXBTY2FuS2V5LmtleXN6 KTsKKwkJaWYgKGNtcC0+cHJlZml4U2tpcEluZGV4ID09IC0xKQorCQl7CisJCQljbXAtPnByZWZp eFNraXBJbmRleCA9IHNraXAtPnByZWZpeDsKKwkJCWNtcC0+cHJlZml4U2tpcCA9IFNjYW5EaXJl Y3Rpb25Jc0ZvcndhcmQoZGlyKSA/IGNtcC0+cHJlZml4Q21wUmVzdWx0IDwgMCA6IGNtcC0+cHJl Zml4Q21wUmVzdWx0ID4gMDsKKwkJfQorCQllbHNlCisJCXsKKwkJCWludCBuZXdza2lwID0gLTE7 CisJCQlfYnRfY2hlY2trZXlzX3RocmVld2F5KHNjYW4sIHR1cGxlLCB0dXBuYXR0cywgZGlyLCAm Y29udGludWVzY2FuLCAmbmV3c2tpcCk7CisJCQlpZiAobmV3c2tpcCAhPSAtMSkKKwkJCXsKKwkJ CQljbXAtPnByZWZpeFNraXAgPSB0cnVlOworCQkJCWNtcC0+cHJlZml4U2tpcEluZGV4ID0gbmV3 c2tpcDsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQljbXAtPnByZWZpeFNraXAgPSBTY2FuRGly ZWN0aW9uSXNGb3J3YXJkKGRpcikgPyBjbXAtPnByZWZpeENtcFJlc3VsdCA8IDAgOiBjbXAtPnBy ZWZpeENtcFJlc3VsdCA+IDA7CisJCQkJY21wLT5wcmVmaXhTa2lwSW5kZXggPSBza2lwLT5wcmVm aXg7CisJCQl9CisJCX0KKworCQlpZiAoREVCVUcxID49IGxvZ19taW5fbWVzc2FnZXMgfHwgREVC VUcxID49IGNsaWVudF9taW5fbWVzc2FnZXMpCisJCXsKKwkJCXByaW50X2l0dXAoQnVmZmVyR2V0 QmxvY2tOdW1iZXIoc28tPmN1cnJQb3MuYnVmKSwgdHVwbGUsIE5VTEwsIHNjYW4tPmluZGV4UmVs YXRpb24sCisJCQkJCQkiY29tcGFyZSBpdGVtIik7CisJCQlfcHJpbnRfc2tleShzY2FuLCAmc2tp cC0+Y3VyUG9zLnNraXBTY2FuS2V5KTsKKwkJCWVsb2coREVCVUcxLCAicmVzdWx0OiBlcTogJWQg Zmtza2lwOiAlZCBwZnhza2lwOiAlZCBwcmVmaXhjbXByZXM6ICVkIHByZWZpeHNraXBpZHg6ICVk IiwgY21wLT5lcXVhbCwgY21wLT5mdWxsS2V5U2tpcCwKKwkJCQkgX2J0X3Nob3VsZF9wcmVmaXhf c2tpcChjbXApLCBjbXAtPnByZWZpeENtcFJlc3VsdCwgY21wLT5wcmVmaXhTa2lwSW5kZXgpOwor CQl9CisJfQorCWVsc2UKKwl7CisJCS8qIHdlIGNhbm5vdCBzdG9wIHRoZSBzY2FuIGlmICFpc1Jl Z3VsYXJNb2RlIC0gdGhlbiB3ZSBkbyBuZWVkIHRvIHNraXAgdG8gdGhlIG5leHQgcHJlZml4ICov CisJCWNtcC0+ZnVsbEtleVNraXAgPSBpc1JlZ3VsYXJNb2RlOworCQljbXAtPmVxdWFsID0gZmFs c2U7CisJCWNtcC0+cHJlZml4Q21wUmVzdWx0ID0gLTI7CisJCWNtcC0+cHJlZml4U2tpcCA9IHRy dWU7CisJCWNtcC0+cHJlZml4U2tpcEluZGV4ID0gc2tpcC0+cHJlZml4OworCQljbXAtPnNrQ21w UmVzdWx0ID0gLTI7CisJfQorfQorCit2b2lkCitfYnRfc2tpcF9vbmNlKEluZGV4U2NhbkRlc2Mg c2NhbiwgSW5kZXhUdXBsZSAqY3VyVHVwbGUsIE9mZnNldE51bWJlciAqY3VyVHVwbGVPZmZudW0s CisJCQkgIGJvb2wgZm9yY2VTa2lwLCBTY2FuRGlyZWN0aW9uIHByZWZpeERpciwgU2NhbkRpcmVj dGlvbiBwb3N0Zml4RGlyKQoreworCUJUU2Nhbk9wYXF1ZSAJc28gPSAoQlRTY2FuT3BhcXVlKSBz Y2FuLT5vcGFxdWU7CisJQlRTa2lwIHNraXAgPSBzby0+c2tpcERhdGE7CisJQlRTa2lwQ29tcGFy ZVJlc3VsdCBjbXA7CisJYm9vbCBkb3NraXAgPSBmb3JjZVNraXA7CisJaW50IHNraXBJbmRleCA9 IHNraXAtPmN1clBvcy5uZXh0U2tpcEluZGV4OworCXNraXAtPmN1clBvcy5uZXh0QWN0aW9uID0g U2tpcFN0YXRlU2tpcEV4dHJhOworCisJd2hpbGUgKGRvc2tpcCkKKwl7CisJCWludCB0b3NraXAg PSBza2lwSW5kZXg7CisJCWlmICgqY3VyVHVwbGUgIT0gTlVMTCkKKwkJeworCQkJaWYgKHNraXAt PnByZWZpeCA8PSBza2lwSW5kZXggfHwgIV9idF9za2lwX2lzX3JlZ3VsYXJfbW9kZShwcmVmaXhE aXIsIHBvc3RmaXhEaXIpKQorCQkJeworCQkJCXRvc2tpcCA9IHNraXAtPnByZWZpeDsKKwkJCX0K KworCQkJX2J0X3NraXBfdXBkYXRlX3NjYW5rZXlfZm9yX3ByZWZpeF9za2lwKHNjYW4sIHNjYW4t PmluZGV4UmVsYXRpb24sCisJCQkJCQkJCQkJCQkJdG9za2lwLCAqY3VyVHVwbGUsIHByZWZpeERp cik7CisJCX0KKworCQlfYnRfc2tpcF9maW5kKHNjYW4sIGN1clR1cGxlLCBjdXJUdXBsZU9mZm51 bSwgJnNraXAtPmN1clBvcy5za2lwU2NhbktleSwgcHJlZml4RGlyKTsKKworCQlpZiAoX2J0X3Nr aXBfaXNfYWx3YXlzX3ZhbGlkKHNvKSkKKwkJeworCQkJX2J0X3NraXBfdXBkYXRlX3NjYW5rZXlf Zm9yX2V4dHJhX3NraXAoc2Nhbiwgc2Nhbi0+aW5kZXhSZWxhdGlvbiwKKwkJCQkJCQkJCQkJCSAg IHByZWZpeERpciwgcHJlZml4RGlyLCB0cnVlLCAqY3VyVHVwbGUpOworCQkJX2J0X2NvbXBhcmVf Y3VycmVudF9pdGVtKHNjYW4sICpjdXJUdXBsZSwKKwkJCQkJCQkJCSBJbmRleFJlbGF0aW9uR2V0 TnVtYmVyT2ZBdHRyaWJ1dGVzKHNjYW4tPmluZGV4UmVsYXRpb24pLAorCQkJCQkJCQkJIHByZWZp eERpciwKKwkJCQkJCQkJCSBfYnRfc2tpcF9pc19yZWd1bGFyX21vZGUocHJlZml4RGlyLCBwb3N0 Zml4RGlyKSwgJmNtcCk7CisJCQlza2lwSW5kZXggPSBjbXAucHJlZml4U2tpcEluZGV4OworCQkJ X2J0X2RldGVybWluZV9uZXh0X2FjdGlvbl9hZnRlcl9za2lwKHNvLCAmY21wLCBwcmVmaXhEaXIs CisJCQkJCQkJCQkJCQkgcG9zdGZpeERpciwgdG9za2lwLCAmc2tpcC0+Y3VyUG9zLm5leHRBY3Rp b24pOworCQl9CisJCWVsc2UKKwkJeworCQkJc2tpcC0+Y3VyUG9zLm5leHRBY3Rpb24gPSBTa2lw U3RhdGVTdG9wOworCQl9CisJCWRvc2tpcCA9IHNraXAtPmN1clBvcy5uZXh0QWN0aW9uID09IFNr aXBTdGF0ZVNraXA7CisJfQorCWlmIChza2lwLT5jdXJQb3MubmV4dEFjdGlvbiAhPSBTa2lwU3Rh dGVTdG9wICYmIHNraXAtPmN1clBvcy5uZXh0QWN0aW9uICE9IFNraXBTdGF0ZU5leHQpCisJCV9i dF9za2lwX2V4dHJhX2NvbmRpdGlvbnMoc2NhbiwgY3VyVHVwbGUsIGN1clR1cGxlT2ZmbnVtLCBw cmVmaXhEaXIsIHBvc3RmaXhEaXIsICZjbXApOworfQorCit2b2lkCitfYnRfc2tpcF9leHRyYV9j b25kaXRpb25zKEluZGV4U2NhbkRlc2Mgc2NhbiwgSW5kZXhUdXBsZSAqY3VyVHVwbGUsIE9mZnNl dE51bWJlciAqY3VyVHVwbGVPZmZudW0sCisJCQkJCQkgIFNjYW5EaXJlY3Rpb24gcHJlZml4RGly LCBTY2FuRGlyZWN0aW9uIHBvc3RmaXhEaXIsIEJUU2tpcENvbXBhcmVSZXN1bHQgKmNtcCkKK3sK KwlCVFNjYW5PcGFxdWUgCXNvID0gKEJUU2Nhbk9wYXF1ZSkgc2Nhbi0+b3BhcXVlOworCUJUU2tp cCBza2lwID0gc28tPnNraXBEYXRhOworCWJvb2wgcmVndWxhck1vZGUgPSBfYnRfc2tpcF9pc19y ZWd1bGFyX21vZGUocHJlZml4RGlyLCBwb3N0Zml4RGlyKTsKKwlpZiAoX2J0X3NraXBfaXNfYWx3 YXlzX3ZhbGlkKHNvKSkKKwl7CisJCWRvCisJCXsKKwkJCWlmICgqY3VyVHVwbGUgIT0gTlVMTCkK KwkJCQlfYnRfc2tpcF91cGRhdGVfc2NhbmtleV9mb3JfZXh0cmFfc2tpcChzY2FuLCBzY2FuLT5p bmRleFJlbGF0aW9uLAorCQkJCQkJCQkJCQkJCSAgIHBvc3RmaXhEaXIsIHByZWZpeERpciwgZmFs c2UsICpjdXJUdXBsZSk7CisJCQlfYnRfc2tpcF9maW5kKHNjYW4sIGN1clR1cGxlLCBjdXJUdXBs ZU9mZm51bSwgJnNraXAtPmN1clBvcy5za2lwU2NhbktleSwgcG9zdGZpeERpcik7CisJCQlfYnRf Y29tcGFyZV9jdXJyZW50X2l0ZW0oc2NhbiwgKmN1clR1cGxlLAorCQkJCQkJCQkJIEluZGV4UmVs YXRpb25HZXROdW1iZXJPZkF0dHJpYnV0ZXMoc2Nhbi0+aW5kZXhSZWxhdGlvbiksCisJCQkJCQkJ CQkgcG9zdGZpeERpciwgX2J0X3NraXBfaXNfcmVndWxhcl9tb2RlKHByZWZpeERpciwgcG9zdGZp eERpciksIGNtcCk7CisJCX0gd2hpbGUgKHJlZ3VsYXJNb2RlICYmIGNtcC0+cHJlZml4Q21wUmVz dWx0ICE9IDAgJiYgIWNtcC0+ZXF1YWwgJiYgIWNtcC0+ZnVsbEtleVNraXApOworCQlza2lwLT5j dXJQb3MubmV4dFNraXBJbmRleCA9IGNtcC0+cHJlZml4U2tpcEluZGV4OworCX0KKwlfYnRfZGV0 ZXJtaW5lX25leHRfYWN0aW9uX2FmdGVyX3NraXBfZXh0cmEoc28sIGNtcCwgJnNraXAtPmN1clBv cy5uZXh0QWN0aW9uKTsKK30KKworc3RhdGljIHZvaWQKK19idF9za2lwX3VwZGF0ZV9zY2Fua2V5 X2FmdGVyX3JlYWQoSW5kZXhTY2FuRGVzYyBzY2FuLCBJbmRleFR1cGxlIGN1clR1cGxlLAorCQkJ CQkJCQkgICBTY2FuRGlyZWN0aW9uIHByZWZpeERpciwgU2NhbkRpcmVjdGlvbiBwb3N0Zml4RGly KQoreworCUJUU2Nhbk9wYXF1ZSAJc28gPSAoQlRTY2FuT3BhcXVlKSBzY2FuLT5vcGFxdWU7CisJ QlRTa2lwIHNraXAgPSBzby0+c2tpcERhdGE7CisJaWYgKHNraXAtPmN1clBvcy5uZXh0QWN0aW9u ID09IFNraXBTdGF0ZVNraXApCisJeworCQlpbnQgdG9za2lwID0gc2tpcC0+Y3VyUG9zLm5leHRT a2lwSW5kZXg7CisJCWlmIChza2lwLT5wcmVmaXggPD0gc2tpcC0+Y3VyUG9zLm5leHRTa2lwSW5k ZXggfHwKKwkJCQkhX2J0X3NraXBfaXNfcmVndWxhcl9tb2RlKHByZWZpeERpciwgcG9zdGZpeERp cikpCisJCXsKKwkJCXRvc2tpcCA9IHNraXAtPnByZWZpeDsKKwkJfQorCisJCWlmIChfYnRfc2tp cF9pc19yZWd1bGFyX21vZGUocHJlZml4RGlyLCBwb3N0Zml4RGlyKSkKKwkJCV9idF9za2lwX3Vw ZGF0ZV9zY2Fua2V5X2Zvcl9wcmVmaXhfc2tpcChzY2FuLCBzY2FuLT5pbmRleFJlbGF0aW9uLAor CQkJCQkJCQkJCQkJCXRvc2tpcCwgY3VyVHVwbGUsIHByZWZpeERpcik7CisJCWVsc2UKKwkJCV9i dF9za2lwX3VwZGF0ZV9zY2Fua2V5X2Zvcl9wcmVmaXhfc2tpcChzY2FuLCBzY2FuLT5pbmRleFJl bGF0aW9uLAorCQkJCQkJCQkJCQkJCXRvc2tpcCwgTlVMTCwgcHJlZml4RGlyKTsKKwl9CisJZWxz ZSBpZiAoc2tpcC0+Y3VyUG9zLm5leHRBY3Rpb24gPT0gU2tpcFN0YXRlU2tpcEV4dHJhKQorCXsK KwkJX2J0X3NraXBfdXBkYXRlX3NjYW5rZXlfZm9yX2V4dHJhX3NraXAoc2Nhbiwgc2Nhbi0+aW5k ZXhSZWxhdGlvbiwKKwkJCQkJCQkJCQkJICAgcG9zdGZpeERpciwgcHJlZml4RGlyLCBmYWxzZSwg Y3VyVHVwbGUpOworCX0KK30KKworc3RhdGljIGlubGluZSBpbnQKK19idF9jb21wYXJlX29uZShT Y2FuS2V5IHNjYW5rZXksIERhdHVtIGRhdHVtMiwgYm9vbCBpc051bGwyKQoreworCWludDMyCQly ZXN1bHQ7CisJRGF0dW0gZGF0dW0xID0gc2NhbmtleS0+c2tfYXJndW1lbnQ7CisJYm9vbCBpc051 bGwxID0gc2NhbmtleS0+c2tfZmxhZ3MgJiBTS19JU05VTEw7CisJLyogc2VlIGNvbW1lbnRzIGFi b3V0IE5VTExzIGhhbmRsaW5nIGluIGJ0YnVpbGQgKi8KKwlpZiAoaXNOdWxsMSkJLyoga2V5IGlz IE5VTEwgKi8KKwl7CisJCWlmIChpc051bGwyKQorCQkJcmVzdWx0ID0gMDsJCS8qIE5VTEwgIj0i IE5VTEwgKi8KKwkJZWxzZSBpZiAoc2NhbmtleS0+c2tfZmxhZ3MgJiBTS19CVF9OVUxMU19GSVJT VCkKKwkJCXJlc3VsdCA9IC0xOwkvKiBOVUxMICI8IiBOT1RfTlVMTCAqLworCQllbHNlCisJCQly ZXN1bHQgPSAxOwkJLyogTlVMTCAiPiIgTk9UX05VTEwgKi8KKwl9CisJZWxzZSBpZiAoaXNOdWxs MikJCS8qIGtleSBpcyBOT1RfTlVMTCBhbmQgaXRlbSBpcyBOVUxMICovCisJeworCQlpZiAoc2Nh bmtleS0+c2tfZmxhZ3MgJiBTS19CVF9OVUxMU19GSVJTVCkKKwkJCXJlc3VsdCA9IDE7CQkvKiBO T1RfTlVMTCAiPiIgTlVMTCAqLworCQllbHNlCisJCQlyZXN1bHQgPSAtMTsJLyogTk9UX05VTEwg IjwiIE5VTEwgKi8KKwl9CisJZWxzZQorCXsKKwkJLyoKKwkJICogVGhlIHNrX2Z1bmMgbmVlZHMg dG8gYmUgcGFzc2VkIHRoZSBpbmRleCB2YWx1ZSBhcyBsZWZ0IGFyZyBhbmQKKwkJICogdGhlIHNr X2FyZ3VtZW50IGFzIHJpZ2h0IGFyZyAodGhleSBtaWdodCBiZSBvZiBkaWZmZXJlbnQKKwkJICog dHlwZXMpLiAgU2luY2UgaXQgaXMgY29udmVuaWVudCBmb3IgY2FsbGVycyB0byB0aGluayBvZgor CQkgKiBfYnRfY29tcGFyZSBhcyBjb21wYXJpbmcgdGhlIHNjYW5rZXkgdG8gdGhlIGluZGV4IGl0 ZW0sIHdlIGhhdmUKKwkJICogdG8gZmxpcCB0aGUgc2lnbiBvZiB0aGUgY29tcGFyaXNvbiByZXN1 bHQuICAoVW5sZXNzIGl0J3MgYSBERVNDCisJCSAqIGNvbHVtbiwgaW4gd2hpY2ggY2FzZSB3ZSAq ZG9uJ3QqIGZsaXAgdGhlIHNpZ24uKQorCQkgKi8KKwkJcmVzdWx0ID0gRGF0dW1HZXRJbnQzMihG dW5jdGlvbkNhbGwyQ29sbCgmc2NhbmtleS0+c2tfZnVuYywKKwkJCQkJCQkJCQkJCSBzY2Fua2V5 LT5za19jb2xsYXRpb24sCisJCQkJCQkJCQkJCQkgZGF0dW0yLAorCQkJCQkJCQkJCQkJIGRhdHVt MSkpOworCisJCWlmICghKHNjYW5rZXktPnNrX2ZsYWdzICYgU0tfQlRfREVTQykpCisJCQlJTlZF UlRfQ09NUEFSRV9SRVNVTFQocmVzdWx0KTsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKworLyoK KyAqIHNldCB1cCBuZXcgdmFsdWVzIGZvciB0aGUgZXhpc3Rpbmcgc2NhbmtleXMKKyAqIGJhc2Vk IG9uIHRoZSBjdXJyZW50IGluZGV4IHR1cGxlCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorX2J0 X3VwZGF0ZV9zY2Fua2V5X3dpdGhfdHVwbGUoQlRTY2FuSW5zZXJ0IGluc2VydEtleSwgUmVsYXRp b24gaW5kZXhSZWwsIEluZGV4VHVwbGUgaXR1cCwgaW50IG51bWF0dHJzKQoreworCVR1cGxlRGVz YwkJaXR1cGRlc2M7CisJaW50CQkJCWk7CisJU2NhbktleQkJCXNjYW5rZXlzID0gaW5zZXJ0S2V5 LT5zY2Fua2V5czsKKworCWluc2VydEtleS0+a2V5c3ogPSBudW1hdHRyczsKKwlpdHVwZGVzYyA9 IFJlbGF0aW9uR2V0RGVzY3IoaW5kZXhSZWwpOworCWZvciAoaSA9IDA7IGkgPCBudW1hdHRyczsg aSsrKQorCXsKKwkJRGF0dW0gZGF0dW07CisJCWJvb2wgbnVsbDsKKwkJaW50IGZsYWdzOworCisJ CWRhdHVtID0gaW5kZXhfZ2V0YXR0cihpdHVwLCBpICsgMSwgaXR1cGRlc2MsICZudWxsKTsKKwkJ ZmxhZ3MgPSAobnVsbCA/IFNLX0lTTlVMTCA6IDApIHwKKwkJCQkoaW5kZXhSZWwtPnJkX2luZG9w dGlvbltpXSA8PCBTS19CVF9JTkRPUFRJT05fU0hJRlQpOworCQlzY2Fua2V5c1tpXS5za19mbGFn cyA9IGZsYWdzOworCQlzY2Fua2V5c1tpXS5za19hcmd1bWVudCA9IGRhdHVtOworCX0KK30KKwor LyogY29weSB0aGUgZWxlbWVudHMgaW1wb3J0YW50IHRvIGEgc2tpcCBmcm9tIG9uZSBpbnNlcnRp b24gc2sgdG8gYW5vdGhlciAqLworc3RhdGljIGlubGluZSB2b2lkCitfYnRfY29weV9zY2Fua2V5 KEJUU2Nhbkluc2VydCB0bywgQlRTY2FuSW5zZXJ0IGZyb20sIGludCBudW1hdHRycykKK3sKKwlt ZW1jcHkodG8tPnNjYW5rZXlzLCBmcm9tLT5zY2Fua2V5cywgc2l6ZW9mKFNjYW5LZXlEYXRhKSAq ICh1bnNpZ25lZCBsb25nKW51bWF0dHJzKTsKKwl0by0+bmV4dGtleSA9IGZyb20tPm5leHRrZXk7 CisJdG8tPmtleXN6ID0gbnVtYXR0cnM7Cit9CisKKy8qCisgKiBVcGRhdGVzIHRoZSBleGlzdGlu ZyBzY2Fua2V5IGZvciBza2lwcGluZyB0byB0aGUgbmV4dCBwcmVmaXgKKyAqIGFsd2F5c1VzZVBy ZWZpeCBkZXRlcm1pbmVzIGhvdyBtYW55IGF0dHJzIHRoZSBzY2Fua2V5IHdpbGwgaGF2ZQorICog d2hlbiB0cnVlLCBpdCB3aWxsIGFsd2F5cyBoYXZlIHNraXAtPnByZWZpeCBudW1iZXIgb2YgYXR0 cmlidXRlcywKKyAqIG90aGVyd2lzZSwgdGhlIHZhbHVlIGNhbiBiZSBsZXNzLCB3aGljaCB3aWxs IGJlIGRldGVybWluZWQgYnkgdGhlIGNvbXBhcmlzb24KKyAqIHJlc3VsdCB3aXRoIHRoZSBjdXJy ZW50IHR1cGxlLgorICogZm9yIGV4YW1wbGUsIGEgU0VMRUNUICogRlJPTSB0YmwgV0hFUkUgYjwy LCBpbmRleCAoYSxiLGMpIGFuZCB3aGVuIHNraXBwaW5nIHdpdGggcHJlZml4IHNpemU9MgorICog aWYgd2UgZW5jb3VudGVyIHRoZSB0dXBsZSAoMSwzLDEpIC0gdGhpcyBkb2VzIG5vdCBtYXRjaCB0 aGUgcXVhbCBiPDIuIGhvd2V2ZXIsIHdlIGFsc28ga25vdyB0aGF0CisgKiBpdCBpcyBub3QgdXNl ZnVsIHRvIHNraXAgdG8gYW55IG5leHQgcXVhbCB3aXRoIHByZWZpeD0yIChlZy4gKDEsNCkpLCBi ZWNhdXNlIHRoYXQgd2lsbCBkZWZpbml0ZWx5IG5vdAorICogbWF0Y2ggZWl0aGVyLiBIb3dldmVy LCB3ZSBkbyB3YW50IHRvIHNraXAgdG8gZWcuICgyLDApLiBUaGVyZWZvcmUsIHdlIHNraXAgb3Zl ciBwcmVmaXg9MSBpbiB0aGlzIGNhc2UuCisgKgorICogdGhlIHByb3ZpZGVkIGl0dXAgbWF5IGJl IG51bGwuIHRoaXMgaGFwcGVucyB3aGVuIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSBjdXJyZW50 IHR1cGxlIHRvIHVwZGF0ZQorICogdGhlIHNjYW5rZXksIGJ1dCBpbnN0ZWFkIHdhbnQgdG8gdXNl IHRoZSBleGlzdGluZyBjdXJQb3Muc2tpcFNjYW5LZXkgdG8gZmlsbCBjdXJyZW50VHVwbGVLZXku IHRoaXMgYWNjb3VudHMKKyAqIGZvciBzb21lIGVkZ2UgY2FzZXMuCisgKi8KK3N0YXRpYyB2b2lk CitfYnRfc2tpcF91cGRhdGVfc2NhbmtleV9mb3JfcHJlZml4X3NraXAoSW5kZXhTY2FuRGVzYyBz Y2FuLCBSZWxhdGlvbiBpbmRleFJlbCwKKwkJCQkJCQkJCQlpbnQgcHJlZml4LCBJbmRleFR1cGxl IGl0dXAsIFNjYW5EaXJlY3Rpb24gcHJlZml4RGlyKQoreworCUJUU2Nhbk9wYXF1ZSBzbyA9IChC VFNjYW5PcGFxdWUpIHNjYW4tPm9wYXF1ZTsKKwlCVFNraXAgc2tpcCA9IHNvLT5za2lwRGF0YTsK KwkvKiB3ZSB1c2Ugc2tpcC0+cHJlZml4IGlzIGFsd2F5c1VzZVByZWZpeCBpcyBzZXQgb3IgaWYg c2tpcC0+cHJlZml4IGlzIHNtYWxsZXIgdGhhbiB3aGF0ZXZlciB0aGUKKwkgKiBjb21wYXJpc29u IHJlc3VsdCBwcm92aWRlZCwgc3VjaCB0aGF0IHdlIG5ldmVyIHNraXAgbW9yZSB0aGFuIHNraXAt PnByZWZpeAorCSAqLworCWludCBudW1hdHRycyA9IHByZWZpeDsKKworCWlmIChpdHVwICE9IE5V TEwpCisJeworCQlfYnRfdXBkYXRlX3NjYW5rZXlfd2l0aF90dXBsZSgmc2tpcC0+Y3VycmVudFR1 cGxlS2V5LCBpbmRleFJlbCwgaXR1cCwgbnVtYXR0cnMpOworCQlfYnRfY29weV9zY2Fua2V5KCZz a2lwLT5jdXJQb3Muc2tpcFNjYW5LZXksICZza2lwLT5jdXJyZW50VHVwbGVLZXksIG51bWF0dHJz KTsKKwl9CisJZWxzZQorCXsKKwkJc2tpcC0+Y3VyUG9zLnNraXBTY2FuS2V5LmtleXN6ID0gbnVt YXR0cnM7CisJCV9idF9jb3B5X3NjYW5rZXkoJnNraXAtPmN1cnJlbnRUdXBsZUtleSwgJnNraXAt PmN1clBvcy5za2lwU2NhbktleSwgbnVtYXR0cnMpOworCX0KKwkvKiB1cGRhdGUgc3RyYXRlZ3kg Zm9yIGxhc3QgYXR0cmlidXRlIGFzIHdlIHdpbGwgdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIHRoZSBy ZXN0IG9mIHRoZQorCSAqIHJlc3Qgb2YgdGhlIGZsYWdzIChnb2JhY2spIHdoZW4gZG9pbmcgdGhl IGFjdHVhbCB0cmVlIHNlYXJjaAorCSAqLworCXNraXAtPmN1cnJlbnRUdXBsZUtleS5zY2Fua2V5 c1tudW1hdHRycyAtIDFdLnNrX3N0cmF0ZWd5ID0KKwkJCXNraXAtPmN1clBvcy5za2lwU2Nhbktl eS5zY2Fua2V5c1tudW1hdHRycyAtIDFdLnNrX3N0cmF0ZWd5ID0KKwkJCVNjYW5EaXJlY3Rpb25J c0ZvcndhcmQocHJlZml4RGlyKSA/IEJUR3JlYXRlclN0cmF0ZWd5TnVtYmVyIDogQlRMZXNzU3Ry YXRlZ3lOdW1iZXI7Cit9CisKKy8qIHVwZGF0ZSB0aGUgc2NhbmtleSBmb3Igc2tpcHBpbmcgdGhl ICdleHRyYScgY29uZGl0aW9ucywgb3Bwb3J0dW5pdGllcworICogdGhhdCBhcmlzZSB3aGVuIHdl IGhhdmUganVzdCBza2lwcGVkIHRvIGEgbmV3IHByZWZpeCBhbmQgY2FuIHRyeSB0byBza2lwCisg KiB3aXRoaW4gdGhlIHByZWZpeCB0byB0aGUgcmlnaHQgdHVwbGUgYnkgdXNpbmcgZXh0cmEgcXVh bHMgd2hlbiBhdmFpbGFibGUKKyAqCisgKiBAdG9kbyBhcyBhbiBvcHRpbWl6YXRpb24gaXQgc2hv dWxkIGJlIHBvc3NpYmxlIHRvIG9wdGltaXplIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24KKyAqIGFu ZCB0byBfYnRfc2tpcF91cGRhdGVfc2NhbmtleV9mb3JfcHJlZml4X3NraXAgdG8gc29tZSBtb3Jl IHNwZWNpZmljIGZ1bmN0aW9ucyB0aGF0CisgKiB3aWxsIG5lZWQgdG8gZG8gbGVzcyBjb3B5aW5n IG9mIGRhdGEuCisgKi8KK3ZvaWQKK19idF9za2lwX3VwZGF0ZV9zY2Fua2V5X2Zvcl9leHRyYV9z a2lwKEluZGV4U2NhbkRlc2Mgc2NhbiwgUmVsYXRpb24gaW5kZXhSZWwsIFNjYW5EaXJlY3Rpb24g Y3VyRGlyLAorCQkJCQkJCQkJICAgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsIGJvb2wgcHJpb3Jp dGl6ZUVxdWFsLCBJbmRleFR1cGxlIGl0dXApCit7CisJQlRTY2FuT3BhcXVlIAlzbyA9IChCVFNj YW5PcGFxdWUpIHNjYW4tPm9wYXF1ZTsKKwlCVFNraXAgc2tpcCA9IHNvLT5za2lwRGF0YTsKKwlC VFNjYW5JbnNlcnQgdG9Db3B5OworCWludCBpLCBsZWZ0LCBsYXN0Tm9uVHVwbGUgPSBza2lwLT5w cmVmaXg7CisKKwkvKiBmaXJzdCBtYWtlIHN1cmUgdGhhdCBjdXJyZW50VHVwbGVLZXkgaXMgY29y cmVjdCBhdCBhbGwgdGltZXMgKi8KKwlfYnRfc2tpcF91cGRhdGVfc2NhbmtleV9mb3JfcHJlZml4 X3NraXAoc2NhbiwgaW5kZXhSZWwsIHNraXAtPnByZWZpeCwgaXR1cCwgcHJlZml4RGlyKTsKKwkv KiB0aGVuIGRvIHRoZSBhY3R1YWwgd29yayB0byBzZXR1cCBjdXJQb3Muc2tpcFNjYW5LZXkgLSBk aXN0aW5ndWlzaCBiZXR3ZWVuIHdvcmsgdGhhdCBkZXBlbmRzIG9uIG92ZXJhbGxEaXIKKwkgKiAo dGhvc2UgYXR0cmlidXRlcyBiZXR3ZWVuIGF0dHJpYnV0ZSBudW1iZXIgMSBhbmQgJ3ByZWZpeCcg aW5jbHVzaXZlKQorCSAqIGFuZCB3b3JrIHRoYXQgZGVwZW5kcyBvbiBjdXJEaXIKKwkgKiAodGhv c2UgYXR0cmlidXRlcyBiZXR3ZWVuIGF0dHJpYnV0ZSBudW1iZXIgJ3ByZWZpeCcgKyAxIGFuZCBm d2RTY2FuS2V5LmtleXN6IGluY2x1c2l2ZSkKKwkgKi8KKwlpZiAoU2NhbkRpcmVjdGlvbklzRm9y d2FyZChwcmVmaXhEaXIpKQorCXsKKwkJLyoKKwkJICogaWYgb3ZlcmFsbERpciBpcyBGb3J3YXJk LCB3ZSBuZWVkIHRvIGNob29zZSBiZXR3ZWVuIGZ3ZFNjYW5LZXkgb3IKKwkJICogY3VycmVudFR1 cGxlS2V5LiB3ZSBuZWVkIHRvIGNob29zZSB0aGUgbW9zdCByZXN0cmljdGl2ZSBvbmUgLQorCQkg KiBpbiBtb3N0IGNhc2VzIHRoaXMgbWVhbnMgY2hvb3NpbmcgZWcuIGE+NSBvdmVyIGE9MiB3aGVu IHNjYW5uaW5nIGZvcndhcmQsCisJCSAqIHVubGVzcyBwcmlvcml0aXplRXF1YWwgaXMgc2V0LiB0 aGlzIGlzIGRvbmUgZm9yIGNlcnRhaW4gc3BlY2lhbCBjYXNlcworCQkgKi8KKwkJZm9yIChpID0g MDsgaSA8IHNraXAtPnByZWZpeDsgaSsrKQorCQl7CisJCQlTY2FuS2V5IHNjYW5rZXkgPSAmc2tp cC0+ZndkU2NhbktleS5zY2Fua2V5c1tpXTsKKwkJCVNjYW5LZXkgc2NhbmtleUl0ZW0gPSAmc2tp cC0+Y3VycmVudFR1cGxlS2V5LnNjYW5rZXlzW2ldOworCQkJaWYgKHNjYW5rZXktPnNrX2F0dG5v ICE9IDAgJiYgKF9idF9jb21wYXJlX29uZShzY2Fua2V5LCBzY2Fua2V5SXRlbS0+c2tfYXJndW1l bnQsIHNjYW5rZXlJdGVtLT5za19mbGFncyAmIFNLX0lTTlVMTCkgPiAwCisJCQkJCQkJCQkJICAg fHwgKHByaW9yaXRpemVFcXVhbCAmJiBzY2Fua2V5LT5za19zdHJhdGVneSA9PSBCVEVxdWFsU3Ry YXRlZ3lOdW1iZXIpKSkKKwkJCXsKKwkJCQltZW1jcHkoc2tpcC0+Y3VyUG9zLnNraXBTY2FuS2V5 LnNjYW5rZXlzICsgaSwgc2NhbmtleSwgc2l6ZW9mKFNjYW5LZXlEYXRhKSk7CisJCQkJbGFzdE5v blR1cGxlID0gaTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlpZiAobGFzdE5vblR1cGxlIDwg aSkKKwkJCQkJYnJlYWs7CisJCQkJbWVtY3B5KHNraXAtPmN1clBvcy5za2lwU2NhbktleS5zY2Fu a2V5cyArIGksIHNjYW5rZXlJdGVtLCBzaXplb2YoU2NhbktleURhdGEpKTsKKwkJCX0KKwkJCS8q IGZvciBub3cgY2hvb3NlIGVxdWFsIGhlcmUgLSBpdCBjb3VsZCBhY3R1YWxseSBiZSBpbXByb3Zl ZCBhIGJpdCBAdG9kbyBieSBjaG9vc2luZyB0aGUgc3RyYXRlZ3kKKwkJCSAqIGZyb20gdGhlIHNj YW5rZXlzLCBidXQgaXQgZG9lc24ndCBtYXR0ZXIgYSBsb3QKKwkJCSAqLworCQkJc2tpcC0+Y3Vy UG9zLnNraXBTY2FuS2V5LnNjYW5rZXlzW2ldLnNrX3N0cmF0ZWd5ID0gQlRFcXVhbFN0cmF0ZWd5 TnVtYmVyOworCQl9CisJfQorCWVsc2UKKwl7CisJCS8qIHNpbWlsYXIgZm9yIGJhY2t3YXJkIGJ1 dCBpbiBvcHBvc2l0ZSBkaXJlY3Rpb24gKi8KKwkJZm9yIChpID0gMDsgaSA8IHNraXAtPnByZWZp eDsgaSsrKQorCQl7CisJCQlTY2FuS2V5IHNjYW5rZXkgPSAmc2tpcC0+YndkU2NhbktleS5zY2Fu a2V5c1tpXTsKKwkJCVNjYW5LZXkgc2NhbmtleUl0ZW0gPSAmc2tpcC0+Y3VycmVudFR1cGxlS2V5 LnNjYW5rZXlzW2ldOworCQkJaWYgKHNjYW5rZXktPnNrX2F0dG5vICE9IDAgJiYgKF9idF9jb21w YXJlX29uZShzY2Fua2V5LCBzY2Fua2V5SXRlbS0+c2tfYXJndW1lbnQsIHNjYW5rZXlJdGVtLT5z a19mbGFncyAmIFNLX0lTTlVMTCkgPCAwCisJCQkJCQkJCQkJICAgfHwgKHByaW9yaXRpemVFcXVh bCAmJiBzY2Fua2V5LT5za19zdHJhdGVneSA9PSBCVEVxdWFsU3RyYXRlZ3lOdW1iZXIpKSkKKwkJ CXsKKwkJCQltZW1jcHkoc2tpcC0+Y3VyUG9zLnNraXBTY2FuS2V5LnNjYW5rZXlzICsgaSwgc2Nh bmtleSwgc2l6ZW9mKFNjYW5LZXlEYXRhKSk7CisJCQkJbGFzdE5vblR1cGxlID0gaTsKKwkJCX0K KwkJCWVsc2UKKwkJCXsKKwkJCQlpZiAobGFzdE5vblR1cGxlIDwgaSkKKwkJCQkJYnJlYWs7CisJ CQkJbWVtY3B5KHNraXAtPmN1clBvcy5za2lwU2NhbktleS5zY2Fua2V5cyArIGksIHNjYW5rZXlJ dGVtLCBzaXplb2YoU2NhbktleURhdGEpKTsKKwkJCX0KKwkJCXNraXAtPmN1clBvcy5za2lwU2Nh bktleS5zY2Fua2V5c1tpXS5za19zdHJhdGVneSA9IEJURXF1YWxTdHJhdGVneU51bWJlcjsKKwkJ fQorCX0KKworCS8qCisJICogdGhlIHJlbWFpbmluZyBrZXlzIGFyZSB0aGUgcXVhbHMgYWZ0ZXIg dGhlIHByZWZpeAorCSAqLworCWlmIChTY2FuRGlyZWN0aW9uSXNGb3J3YXJkKGN1ckRpcikpCisJ CXRvQ29weSA9ICZza2lwLT5md2RTY2FuS2V5OworCWVsc2UKKwkJdG9Db3B5ID0gJnNraXAtPmJ3 ZFNjYW5LZXk7CisKKwlpZiAobGFzdE5vblR1cGxlID49IHNraXAtPnByZWZpeCAtIDEpCisJewor CQlsZWZ0ID0gdG9Db3B5LT5rZXlzeiAtIHNraXAtPnByZWZpeDsKKwkJaWYgKGxlZnQgPiAwKQor CQl7CisJCQltZW1jcHkoc2tpcC0+Y3VyUG9zLnNraXBTY2FuS2V5LnNjYW5rZXlzICsgc2tpcC0+ cHJlZml4LCB0b0NvcHktPnNjYW5rZXlzICsgaSwgc2l6ZW9mKFNjYW5LZXlEYXRhKSAqICh1bnNp Z25lZCBsb25nKWxlZnQpOworCQl9CisJCXNraXAtPmN1clBvcy5za2lwU2NhbktleS5rZXlzeiA9 IHRvQ29weS0+a2V5c3o7CisJfQorCWVsc2UKKwl7CisJCXNraXAtPmN1clBvcy5za2lwU2Nhbktl eS5rZXlzeiA9IGxhc3ROb25UdXBsZSArIDE7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25i dHNvcnQuYwppbmRleCA5MTExZTI3ODljLi4xMzU5NTNkYTVmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHNvcnQuYwpAQCAtNTU0LDcgKzU1NCw3IEBAIF9idF9sZWFmYnVpbGQoQlRTcG9vbCAq YnRzcG9vbCwgQlRTcG9vbCAqYnRzcG9vbDIpCiAKIAl3c3RhdGUuaGVhcCA9IGJ0c3Bvb2wtPmhl YXA7CiAJd3N0YXRlLmluZGV4ID0gYnRzcG9vbC0+aW5kZXg7Ci0Jd3N0YXRlLmluc2tleSA9IF9i dF9ta3NjYW5rZXkod3N0YXRlLmluZGV4LCBOVUxMKTsKKwl3c3RhdGUuaW5za2V5ID0gX2J0X21r c2NhbmtleSh3c3RhdGUuaW5kZXgsIE5VTEwsIE5VTEwpOwogCS8qIF9idF9ta3NjYW5rZXkoKSB3 b24ndCBzZXQgYWxsZXF1YWxpbWFnZSB3aXRob3V0IG1ldGFwYWdlICovCiAJd3N0YXRlLmluc2tl eS0+YWxsZXF1YWxpbWFnZSA9IF9idF9hbGxlcXVhbGltYWdlKHdzdGF0ZS5pbmRleCwgdHJ1ZSk7 CiAJd3N0YXRlLmJ0d3NfdXNlX3dhbCA9IFJlbGF0aW9uTmVlZHNXQUwod3N0YXRlLmluZGV4KTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dXRpbHMuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dXRpbHMuYwppbmRleCA1NGFmYTZmNDE3Li5kNWQzMGFj NWI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHV0aWxzLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5jCkBAIC00OSwxMCArNDksMTAg QEAgc3RhdGljIGJvb2wgX2J0X2NvbXBhcmVfc2NhbmtleV9hcmdzKEluZGV4U2NhbkRlc2Mgc2Nh biwgU2NhbktleSBvcCwKIAkJCQkJCQkJCSBTY2FuS2V5IGxlZnRhcmcsIFNjYW5LZXkgcmlnaHRh cmcsCiAJCQkJCQkJCQkgYm9vbCAqcmVzdWx0KTsKIHN0YXRpYyBib29sIF9idF9maXhfc2Nhbmtl eV9zdHJhdGVneShTY2FuS2V5IHNrZXksIGludDE2ICppbmRvcHRpb24pOwotc3RhdGljIHZvaWQg X2J0X21hcmtfc2NhbmtleV9yZXF1aXJlZChTY2FuS2V5IHNrZXkpOworc3RhdGljIHZvaWQgX2J0 X21hcmtfc2NhbmtleV9yZXF1aXJlZChTY2FuS2V5IHNrZXksIGludCBmb3J3YXJkUmVxRmxhZywg aW50IGJhY2t3YXJkUmVxRmxhZyk7CiBzdGF0aWMgYm9vbCBfYnRfY2hlY2tfcm93Y29tcGFyZShT Y2FuS2V5IHNrZXksCiAJCQkJCQkJCSBJbmRleFR1cGxlIHR1cGxlLCBpbnQgdHVwbmF0dHMsIFR1 cGxlRGVzYyB0dXBkZXNjLAotCQkJCQkJCQkgU2NhbkRpcmVjdGlvbiBkaXIsIGJvb2wgKmNvbnRp bnVlc2Nhbik7CisJCQkJCQkJCSBTY2FuRGlyZWN0aW9uIGRpciwgYm9vbCAqY29udGludWVzY2Fu LCBpbnQgKnByZWZpeHNraXBpbmRleCk7CiBzdGF0aWMgaW50CV9idF9rZWVwX25hdHRzKFJlbGF0 aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwKIAkJCQkJCSAgIEluZGV4VHVwbGUgZmlyc3Ry aWdodCwgQlRTY2FuSW5zZXJ0IGl0dXBfa2V5KTsKIApAQCAtODcsOSArODcsOCBAQCBzdGF0aWMg aW50CV9idF9rZWVwX25hdHRzKFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwKICAq CQlmaWVsZCB0aGVtc2VsdmVzLgogICovCiBCVFNjYW5JbnNlcnQKLV9idF9ta3NjYW5rZXkoUmVs YXRpb24gcmVsLCBJbmRleFR1cGxlIGl0dXApCitfYnRfbWtzY2Fua2V5KFJlbGF0aW9uIHJlbCwg SW5kZXhUdXBsZSBpdHVwLCBCVFNjYW5JbnNlcnQga2V5KQogewotCUJUU2Nhbkluc2VydCBrZXk7 CiAJU2NhbktleQkJc2tleTsKIAlUdXBsZURlc2MJaXR1cGRlc2M7CiAJaW50CQkJaW5kbmtleWF0 dHM7CkBAIC0xMDksOCArMTA4LDEwIEBAIF9idF9ta3NjYW5rZXkoUmVsYXRpb24gcmVsLCBJbmRl eFR1cGxlIGl0dXApCiAJICogVHJ1bmNhdGVkIGF0dHJpYnV0ZXMgYW5kIG5vbi1rZXkgYXR0cmli dXRlcyBhcmUgb21pdHRlZCBmcm9tIHRoZSBmaW5hbAogCSAqIHNjYW4ga2V5LgogCSAqLwotCWtl eSA9IHBhbGxvYyhvZmZzZXRvZihCVFNjYW5JbnNlcnREYXRhLCBzY2Fua2V5cykgKwotCQkJCSBz aXplb2YoU2NhbktleURhdGEpICogaW5kbmtleWF0dHMpOworCWlmIChrZXkgPT0gTlVMTCkKKwkJ a2V5ID0gcGFsbG9jKG9mZnNldG9mKEJUU2Nhbkluc2VydERhdGEsIHNjYW5rZXlzKSArCisJCQkJ CSBzaXplb2YoU2NhbktleURhdGEpICogaW5kbmtleWF0dHMpOworCiAJaWYgKGl0dXApCiAJCV9i dF9tZXRhdmVyc2lvbihyZWwsICZrZXktPmhlYXBrZXlzcGFjZSwgJmtleS0+YWxsZXF1YWxpbWFn ZSk7CiAJZWxzZQpAQCAtMTU1LDcgKzE1Niw3IEBAIF9idF9ta3NjYW5rZXkoUmVsYXRpb24gcmVs LCBJbmRleFR1cGxlIGl0dXApCiAJCVNjYW5LZXlFbnRyeUluaXRpYWxpemVXaXRoSW5mbygmc2tl eVtpXSwKIAkJCQkJCQkJCSAgIGZsYWdzLAogCQkJCQkJCQkJICAgKEF0dHJOdW1iZXIpIChpICsg MSksCi0JCQkJCQkJCQkgICBJbnZhbGlkU3RyYXRlZ3ksCisJCQkJCQkJCQkgICBCVEVxdWFsU3Ry YXRlZ3lOdW1iZXIsCiAJCQkJCQkJCQkgICBJbnZhbGlkT2lkLAogCQkJCQkJCQkJICAgcmVsLT5y ZF9pbmRjb2xsYXRpb25baV0sCiAJCQkJCQkJCQkgICBwcm9jaW5mbywKQEAgLTc0NSw3ICs3NDYs NyBAQCBfYnRfcHJlcHJvY2Vzc19rZXlzKEluZGV4U2NhbkRlc2Mgc2NhbikKIAlpbnQJCQludW1i ZXJPZktleXMgPSBzY2FuLT5udW1iZXJPZktleXM7CiAJaW50MTYJICAgKmluZG9wdGlvbiA9IHNj YW4tPmluZGV4UmVsYXRpb24tPnJkX2luZG9wdGlvbjsKIAlpbnQJCQluZXdfbnVtYmVyT2ZLZXlz OwotCWludAkJCW51bWJlck9mRXF1YWxDb2xzOworCWludAkJCW51bWJlck9mRXF1YWxDb2xzLCBu dW1iZXJPZkVxdWFsQ29sc1NpbmNlUHJlZml4OwogCVNjYW5LZXkJCWlua2V5czsKIAlTY2FuS2V5 CQlvdXRrZXlzOwogCVNjYW5LZXkJCWN1cjsKQEAgLTc1NCw2ICs3NTUsNyBAQCBfYnRfcHJlcHJv Y2Vzc19rZXlzKEluZGV4U2NhbkRlc2Mgc2NhbikKIAlpbnQJCQlpLAogCQkJCWo7CiAJQXR0ck51 bWJlcglhdHRubzsKKwlpbnQJCQlwcmVmaXggPSAwOwogCiAJLyogaW5pdGlhbGl6ZSByZXN1bHQg dmFyaWFibGVzICovCiAJc28tPnF1YWxfb2sgPSB0cnVlOwpAQCAtNzYyLDYgKzc2NCwxMSBAQCBf YnRfcHJlcHJvY2Vzc19rZXlzKEluZGV4U2NhbkRlc2Mgc2NhbikKIAlpZiAobnVtYmVyT2ZLZXlz IDwgMSkKIAkJcmV0dXJuOwkJCQkJLyogZG9uZSBpZiBxdWFsLWxlc3Mgc2NhbiAqLwogCisJaWYg KF9idF9za2lwX2VuYWJsZWQoc28pKQorCXsKKwkJcHJlZml4ID0gc28tPnNraXBEYXRhLT5wcmVm aXg7CisJfQorCiAJLyoKIAkgKiBSZWFkIHNvLT5hcnJheUtleURhdGEgaWYgYXJyYXkga2V5cyBh cmUgcHJlc2VudCwgZWxzZSBzY2FuLT5rZXlEYXRhCiAJICovCkBAIC03ODYsNyArNzkzLDkgQEAg X2J0X3ByZXByb2Nlc3Nfa2V5cyhJbmRleFNjYW5EZXNjIHNjYW4pCiAJCXNvLT5udW1iZXJPZktl eXMgPSAxOwogCQkvKiBXZSBjYW4gbWFyayB0aGUgcXVhbCBhcyByZXF1aXJlZCBpZiBpdCdzIGZv ciBmaXJzdCBpbmRleCBjb2wgKi8KIAkJaWYgKGN1ci0+c2tfYXR0bm8gPT0gMSkKLQkJCV9idF9t YXJrX3NjYW5rZXlfcmVxdWlyZWQob3V0a2V5cyk7CisJCQlfYnRfbWFya19zY2Fua2V5X3JlcXVp cmVkKG91dGtleXMsIFNLX0JUX1JFUUZXRCwgU0tfQlRfUkVRQktXRCk7CisJCWlmIChjdXItPnNr X2F0dG5vIDw9IHByZWZpeCArIDEpCisJCQlfYnRfbWFya19zY2Fua2V5X3JlcXVpcmVkKG91dGtl eXMsIFNLX0JUX1JFUVNLSVBGV0QsIFNLX0JUX1JFUVNLSVBCS1dEKTsKIAkJcmV0dXJuOwogCX0K IApAQCAtNzk1LDYgKzgwNCw4IEBAIF9idF9wcmVwcm9jZXNzX2tleXMoSW5kZXhTY2FuRGVzYyBz Y2FuKQogCSAqLwogCW5ld19udW1iZXJPZktleXMgPSAwOwogCW51bWJlck9mRXF1YWxDb2xzID0g MDsKKwludW1iZXJPZkVxdWFsQ29sc1NpbmNlUHJlZml4ID0gMDsKKwogCiAJLyoKIAkgKiBJbml0 aWFsaXplIGZvciBwcm9jZXNzaW5nIG9mIGtleXMgZm9yIGF0dHIgMS4KQEAgLTgzMCw2ICs4NDEs OCBAQCBfYnRfcHJlcHJvY2Vzc19rZXlzKEluZGV4U2NhbkRlc2Mgc2NhbikKIAkJaWYgKGkgPT0g bnVtYmVyT2ZLZXlzIHx8IGN1ci0+c2tfYXR0bm8gIT0gYXR0bm8pCiAJCXsKIAkJCWludAkJCXBy aW9yTnVtYmVyT2ZFcXVhbENvbHMgPSBudW1iZXJPZkVxdWFsQ29sczsKKwkJCWludAkJCXByaW9y TnVtYmVyT2ZFcXVhbENvbHNTaW5jZVByZWZpeCA9IG51bWJlck9mRXF1YWxDb2xzU2luY2VQcmVm aXg7CisKIAogCQkJLyogY2hlY2sgaW5wdXQga2V5cyBhcmUgY29ycmVjdGx5IG9yZGVyZWQgKi8K IAkJCWlmIChpIDwgbnVtYmVyT2ZLZXlzICYmIGN1ci0+c2tfYXR0bm8gPCBhdHRubykKQEAgLTg4 MCw2ICs4OTMsOCBAQCBfYnRfcHJlcHJvY2Vzc19rZXlzKEluZGV4U2NhbkRlc2Mgc2NhbikKIAkJ CQl9CiAJCQkJLyogdHJhY2sgbnVtYmVyIG9mIGF0dHJzIGZvciB3aGljaCB3ZSBoYXZlICI9IiBr ZXlzICovCiAJCQkJbnVtYmVyT2ZFcXVhbENvbHMrKzsKKwkJCQlpZiAoYXR0bm8gPiBwcmVmaXgp CisJCQkJCW51bWJlck9mRXF1YWxDb2xzU2luY2VQcmVmaXgrKzsKIAkJCX0KIAogCQkJLyogdHJ5 IHRvIGtlZXAgb25seSBvbmUgb2YgPCwgPD0gKi8KQEAgLTkyOSw3ICs5NDQsOSBAQCBfYnRfcHJl cHJvY2Vzc19rZXlzKEluZGV4U2NhbkRlc2Mgc2NhbikKIAogCQkJCQltZW1jcHkob3V0a2V5LCB4 Zm9ybVtqXSwgc2l6ZW9mKFNjYW5LZXlEYXRhKSk7CiAJCQkJCWlmIChwcmlvck51bWJlck9mRXF1 YWxDb2xzID09IGF0dG5vIC0gMSkKLQkJCQkJCV9idF9tYXJrX3NjYW5rZXlfcmVxdWlyZWQob3V0 a2V5KTsKKwkJCQkJCV9idF9tYXJrX3NjYW5rZXlfcmVxdWlyZWQob3V0a2V5LCBTS19CVF9SRVFG V0QsIFNLX0JUX1JFUUJLV0QpOworCQkJCQlpZiAoYXR0bm8gPD0gcHJlZml4IHx8IHByaW9yTnVt YmVyT2ZFcXVhbENvbHNTaW5jZVByZWZpeCA9PSBhdHRubyAtIHByZWZpeCAtIDEpCisJCQkJCQlf YnRfbWFya19zY2Fua2V5X3JlcXVpcmVkKG91dGtleSwgU0tfQlRfUkVRU0tJUEZXRCwgU0tfQlRf UkVRU0tJUEJLV0QpOwogCQkJCX0KIAkJCX0KIApAQCAtOTU0LDcgKzk3MSw5IEBAIF9idF9wcmVw cm9jZXNzX2tleXMoSW5kZXhTY2FuRGVzYyBzY2FuKQogCiAJCQltZW1jcHkob3V0a2V5LCBjdXIs IHNpemVvZihTY2FuS2V5RGF0YSkpOwogCQkJaWYgKG51bWJlck9mRXF1YWxDb2xzID09IGF0dG5v IC0gMSkKLQkJCQlfYnRfbWFya19zY2Fua2V5X3JlcXVpcmVkKG91dGtleSk7CisJCQkJX2J0X21h cmtfc2NhbmtleV9yZXF1aXJlZChvdXRrZXksIFNLX0JUX1JFUUZXRCwgU0tfQlRfUkVRQktXRCk7 CisJCQlpZiAoYXR0bm8gPD0gcHJlZml4IHx8IG51bWJlck9mRXF1YWxDb2xzU2luY2VQcmVmaXgg PT0gYXR0bm8gLSBwcmVmaXggLSAxKQorCQkJCV9idF9tYXJrX3NjYW5rZXlfcmVxdWlyZWQob3V0 a2V5LCBTS19CVF9SRVFTS0lQRldELCBTS19CVF9SRVFTS0lQQktXRCk7CiAKIAkJCS8qCiAJCQkg KiBXZSBkb24ndCBzdXBwb3J0IFJvd0NvbXBhcmUgdXNpbmcgZXF1YWxpdHk7IHN1Y2ggYSBxdWFs IHdvdWxkCkBAIC05OTcsNyArMTAxNiw5IEBAIF9idF9wcmVwcm9jZXNzX2tleXMoSW5kZXhTY2Fu RGVzYyBzY2FuKQogCiAJCQkJbWVtY3B5KG91dGtleSwgY3VyLCBzaXplb2YoU2NhbktleURhdGEp KTsKIAkJCQlpZiAobnVtYmVyT2ZFcXVhbENvbHMgPT0gYXR0bm8gLSAxKQotCQkJCQlfYnRfbWFy a19zY2Fua2V5X3JlcXVpcmVkKG91dGtleSk7CisJCQkJCV9idF9tYXJrX3NjYW5rZXlfcmVxdWly ZWQob3V0a2V5LCBTS19CVF9SRVFGV0QsIFNLX0JUX1JFUUJLV0QpOworCQkJCWlmIChhdHRubyA8 PSBwcmVmaXggfHwgbnVtYmVyT2ZFcXVhbENvbHNTaW5jZVByZWZpeCA9PSBhdHRubyAtIHByZWZp eCAtIDEpCisJCQkJCV9idF9tYXJrX3NjYW5rZXlfcmVxdWlyZWQob3V0a2V5LCBTS19CVF9SRVFT S0lQRldELCBTS19CVF9SRVFTS0lQQktXRCk7CiAJCQl9CiAJCX0KIAl9CkBAIC0xMjk1LDcgKzEz MTYsNyBAQCBfYnRfZml4X3NjYW5rZXlfc3RyYXRlZ3koU2NhbktleSBza2V5LCBpbnQxNiAqaW5k b3B0aW9uKQogICogYW55d2F5IG9uIGEgcmVzY2FuLiAgU29tZXRoaW5nIHRvIGtlZXAgYW4gZXll IG9uIHRob3VnaC4KICAqLwogc3RhdGljIHZvaWQKLV9idF9tYXJrX3NjYW5rZXlfcmVxdWlyZWQo U2NhbktleSBza2V5KQorX2J0X21hcmtfc2NhbmtleV9yZXF1aXJlZChTY2FuS2V5IHNrZXksIGlu dCBmb3J3YXJkUmVxRmxhZywgaW50IGJhY2t3YXJkUmVxRmxhZykKIHsKIAlpbnQJCQlhZGRmbGFn czsKIApAQCAtMTMwMywxNCArMTMyNCwxNCBAQCBfYnRfbWFya19zY2Fua2V5X3JlcXVpcmVkKFNj YW5LZXkgc2tleSkKIAl7CiAJCWNhc2UgQlRMZXNzU3RyYXRlZ3lOdW1iZXI6CiAJCWNhc2UgQlRM ZXNzRXF1YWxTdHJhdGVneU51bWJlcjoKLQkJCWFkZGZsYWdzID0gU0tfQlRfUkVRRldEOworCQkJ YWRkZmxhZ3MgPSBmb3J3YXJkUmVxRmxhZzsKIAkJCWJyZWFrOwogCQljYXNlIEJURXF1YWxTdHJh dGVneU51bWJlcjoKLQkJCWFkZGZsYWdzID0gU0tfQlRfUkVRRldEIHwgU0tfQlRfUkVRQktXRDsK KwkJCWFkZGZsYWdzID0gZm9yd2FyZFJlcUZsYWcgfCBiYWNrd2FyZFJlcUZsYWc7CiAJCQlicmVh azsKIAkJY2FzZSBCVEdyZWF0ZXJFcXVhbFN0cmF0ZWd5TnVtYmVyOgogCQljYXNlIEJUR3JlYXRl clN0cmF0ZWd5TnVtYmVyOgotCQkJYWRkZmxhZ3MgPSBTS19CVF9SRVFCS1dEOworCQkJYWRkZmxh Z3MgPSBiYWNrd2FyZFJlcUZsYWc7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgU3RyYXRlZ3lOdW1iZXI6ICVkIiwKQEAgLTEzNTMsMTcgKzEzNzQs MjIgQEAgX2J0X21hcmtfc2NhbmtleV9yZXF1aXJlZChTY2FuS2V5IHNrZXkpCiAgKi8KIGJvb2wK IF9idF9jaGVja2tleXMoSW5kZXhTY2FuRGVzYyBzY2FuLCBJbmRleFR1cGxlIHR1cGxlLCBpbnQg dHVwbmF0dHMsCi0JCQkgIFNjYW5EaXJlY3Rpb24gZGlyLCBib29sICpjb250aW51ZXNjYW4pCisJ CQkgIFNjYW5EaXJlY3Rpb24gZGlyLCBib29sICpjb250aW51ZXNjYW4sIGludCAqcHJlZml4U2tp cEluZGV4KQogewogCVR1cGxlRGVzYwl0dXBkZXNjOwogCUJUU2Nhbk9wYXF1ZSBzbzsKIAlpbnQJ CQlrZXlzejsKIAlpbnQJCQlpa2V5OwogCVNjYW5LZXkJCWtleTsKKwlpbnQgcGZ4OworCisJaWYg KHByZWZpeFNraXBJbmRleCA9PSBOVUxMKQorCQlwcmVmaXhTa2lwSW5kZXggPSAmcGZ4OwogCiAJ QXNzZXJ0KEJUcmVlVHVwbGVHZXROQXR0cyh0dXBsZSwgc2Nhbi0+aW5kZXhSZWxhdGlvbikgPT0g dHVwbmF0dHMpOwogCiAJKmNvbnRpbnVlc2NhbiA9IHRydWU7CQkvKiBkZWZhdWx0IGFzc3VtcHRp b24gKi8KKwkqcHJlZml4U2tpcEluZGV4ID0gLTE7CiAKIAl0dXBkZXNjID0gUmVsYXRpb25HZXRE ZXNjcihzY2FuLT5pbmRleFJlbGF0aW9uKTsKIAlzbyA9IChCVFNjYW5PcGFxdWUpIHNjYW4tPm9w YXF1ZTsKQEAgLTEzOTIsNyArMTQxOCw3IEBAIF9idF9jaGVja2tleXMoSW5kZXhTY2FuRGVzYyBz Y2FuLCBJbmRleFR1cGxlIHR1cGxlLCBpbnQgdHVwbmF0dHMsCiAJCWlmIChrZXktPnNrX2ZsYWdz ICYgU0tfUk9XX0hFQURFUikKIAkJewogCQkJaWYgKF9idF9jaGVja19yb3djb21wYXJlKGtleSwg dHVwbGUsIHR1cG5hdHRzLCB0dXBkZXNjLCBkaXIsCi0JCQkJCQkJCQkgY29udGludWVzY2FuKSkK KwkJCQkJCQkJCSBjb250aW51ZXNjYW4sIHByZWZpeFNraXBJbmRleCkpCiAJCQkJY29udGludWU7 CiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KQEAgLTE0MjksNiArMTQ1NSwxMyBAQCBfYnRfY2hlY2tr ZXlzKEluZGV4U2NhbkRlc2Mgc2NhbiwgSW5kZXhUdXBsZSB0dXBsZSwgaW50IHR1cG5hdHRzLAog CQkJCQkgU2NhbkRpcmVjdGlvbklzQmFja3dhcmQoZGlyKSkKIAkJCQkqY29udGludWVzY2FuID0g ZmFsc2U7CiAKKwkJCWlmICgoa2V5LT5za19mbGFncyAmIFNLX0JUX1JFUVNLSVBGV0QpICYmCisJ CQkJU2NhbkRpcmVjdGlvbklzRm9yd2FyZChkaXIpKQorCQkJCSpwcmVmaXhTa2lwSW5kZXggPSBr ZXktPnNrX2F0dG5vIC0gMTsKKwkJCWVsc2UgaWYgKChrZXktPnNrX2ZsYWdzICYgU0tfQlRfUkVR U0tJUEJLV0QpICYmCisJCQkJCSBTY2FuRGlyZWN0aW9uSXNCYWNrd2FyZChkaXIpKQorCQkJCSpw cmVmaXhTa2lwSW5kZXggPSBrZXktPnNrX2F0dG5vIC0gMTsKKwogCQkJLyoKIAkJCSAqIEluIGFu eSBjYXNlLCB0aGlzIGluZGV4dHVwbGUgZG9lc24ndCBtYXRjaCB0aGUgcXVhbC4KIAkJCSAqLwpA QCAtMTQ1Miw2ICsxNDg1LDEwIEBAIF9idF9jaGVja2tleXMoSW5kZXhTY2FuRGVzYyBzY2FuLCBJ bmRleFR1cGxlIHR1cGxlLCBpbnQgdHVwbmF0dHMsCiAJCQkJaWYgKChrZXktPnNrX2ZsYWdzICYg KFNLX0JUX1JFUUZXRCB8IFNLX0JUX1JFUUJLV0QpKSAmJgogCQkJCQlTY2FuRGlyZWN0aW9uSXNC YWNrd2FyZChkaXIpKQogCQkJCQkqY29udGludWVzY2FuID0gZmFsc2U7CisKKwkJCQlpZiAoKGtl eS0+c2tfZmxhZ3MgJiAoU0tfQlRfUkVRU0tJUEZXRCB8IFNLX0JUX1JFUVNLSVBCS1dEKSkgJiYK KwkJCQkJU2NhbkRpcmVjdGlvbklzQmFja3dhcmQoZGlyKSkKKwkJCQkJKnByZWZpeFNraXBJbmRl eCA9IGtleS0+c2tfYXR0bm8gLSAxOwogCQkJfQogCQkJZWxzZQogCQkJewpAQCAtMTQ2OCw2ICsx NTA1LDkgQEAgX2J0X2NoZWNra2V5cyhJbmRleFNjYW5EZXNjIHNjYW4sIEluZGV4VHVwbGUgdHVw bGUsIGludCB0dXBuYXR0cywKIAkJCQlpZiAoKGtleS0+c2tfZmxhZ3MgJiAoU0tfQlRfUkVRRldE IHwgU0tfQlRfUkVRQktXRCkpICYmCiAJCQkJCVNjYW5EaXJlY3Rpb25Jc0ZvcndhcmQoZGlyKSkK IAkJCQkJKmNvbnRpbnVlc2NhbiA9IGZhbHNlOworCQkJCWlmICgoa2V5LT5za19mbGFncyAmIChT S19CVF9SRVFTS0lQRldEIHwgU0tfQlRfUkVRU0tJUEJLV0QpKSAmJgorCQkJCQkJCQkJU2NhbkRp cmVjdGlvbklzQmFja3dhcmQoZGlyKSkKKwkJCQkJCQkJCSpwcmVmaXhTa2lwSW5kZXggPSBrZXkt PnNrX2F0dG5vIC0gMTsKIAkJCX0KIAogCQkJLyoKQEAgLTE0OTgsNiArMTUzOCwyMDYgQEAgX2J0 X2NoZWNra2V5cyhJbmRleFNjYW5EZXNjIHNjYW4sIEluZGV4VHVwbGUgdHVwbGUsIGludCB0dXBu YXR0cywKIAkJCQkJIFNjYW5EaXJlY3Rpb25Jc0JhY2t3YXJkKGRpcikpCiAJCQkJKmNvbnRpbnVl c2NhbiA9IGZhbHNlOwogCisJCQlpZiAoKGtleS0+c2tfZmxhZ3MgJiBTS19CVF9SRVFTS0lQRldE KSAmJgorCQkJCVNjYW5EaXJlY3Rpb25Jc0ZvcndhcmQoZGlyKSkKKwkJCQkqcHJlZml4U2tpcElu ZGV4ID0ga2V5LT5za19hdHRubyAtIDE7CisJCQllbHNlIGlmICgoa2V5LT5za19mbGFncyAmIFNL X0JUX1JFUVNLSVBCS1dEKSAmJgorCQkJCQkgU2NhbkRpcmVjdGlvbklzQmFja3dhcmQoZGlyKSkK KwkJCQkqcHJlZml4U2tpcEluZGV4ID0ga2V5LT5za19hdHRubyAtIDE7CisKKwkJCS8qCisJCQkg KiBJbiBhbnkgY2FzZSwgdGhpcyBpbmRleHR1cGxlIGRvZXNuJ3QgbWF0Y2ggdGhlIHF1YWwuCisJ CQkgKi8KKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCX0KKworCS8qIElmIHdlIGdldCBoZXJlLCB0 aGUgdHVwbGUgcGFzc2VzIGFsbCBpbmRleCBxdWFscy4gKi8KKwlyZXR1cm4gdHJ1ZTsKK30KKwor Ym9vbAorX2J0X2NoZWNra2V5c190aHJlZXdheShJbmRleFNjYW5EZXNjIHNjYW4sIEluZGV4VHVw bGUgdHVwbGUsIGludCB0dXBuYXR0cywKKwkJCSAgU2NhbkRpcmVjdGlvbiBkaXIsIGJvb2wgKmNv bnRpbnVlc2NhbiwgaW50ICpwcmVmaXhTa2lwSW5kZXgpCit7CisJVHVwbGVEZXNjCXR1cGRlc2M7 CisJQlRTY2FuT3BhcXVlIHNvOworCWludAkJCWtleXN6OworCWludAkJCWlrZXk7CisJU2Nhbktl eQkJa2V5OworCWludCBwZng7CisJQlRTY2FuSW5zZXJ0IGtleXM7CisKKwlpZiAocHJlZml4U2tp cEluZGV4ID09IE5VTEwpCisJCXByZWZpeFNraXBJbmRleCA9ICZwZng7CisKKwlBc3NlcnQoQlRy ZWVUdXBsZUdldE5BdHRzKHR1cGxlLCBzY2FuLT5pbmRleFJlbGF0aW9uKSA9PSB0dXBuYXR0cyk7 CisKKwkqY29udGludWVzY2FuID0gdHJ1ZTsJCS8qIGRlZmF1bHQgYXNzdW1wdGlvbiAqLworCSpw cmVmaXhTa2lwSW5kZXggPSAtMTsKKworCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHNjYW4t PmluZGV4UmVsYXRpb24pOworCXNvID0gKEJUU2Nhbk9wYXF1ZSkgc2Nhbi0+b3BhcXVlOworCWlm IChTY2FuRGlyZWN0aW9uSXNGb3J3YXJkKGRpcikpCisJCWtleXMgPSAmc28tPnNraXBEYXRhLT5i d2RTY2FuS2V5OworCWVsc2UKKwkJa2V5cyA9ICZzby0+c2tpcERhdGEtPmZ3ZFNjYW5LZXk7CisK KwlrZXlzeiA9IGtleXMtPmtleXN6OworCisJZm9yIChrZXkgPSBrZXlzLT5zY2Fua2V5cywgaWtl eSA9IDA7IGlrZXkgPCBrZXlzejsga2V5KyssIGlrZXkrKykKKwl7CisJCURhdHVtCQlkYXR1bTsK KwkJYm9vbAkJaXNOdWxsOworCQlpbnQJCWNtcHJlc3VsdDsKKworCQlpZiAoa2V5LT5za19hdHRu byA9PSAwKQorCQkJY29udGludWU7CisKKwkJaWYgKGtleS0+c2tfYXR0bm8gPiB0dXBuYXR0cykK KwkJeworCQkJLyoKKwkJCSAqIFRoaXMgYXR0cmlidXRlIGlzIHRydW5jYXRlZCAobXVzdCBiZSBo aWdoIGtleSkuICBUaGUgdmFsdWUgZm9yCisJCQkgKiB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZmly c3Qgbm9uLXBpdm90IHR1cGxlIG9uIHRoZSBwYWdlIHRvIHRoZQorCQkJICogcmlnaHQgY291bGQg YmUgYW55IHBvc3NpYmxlIHZhbHVlLiAgQXNzdW1lIHRoYXQgdHJ1bmNhdGVkCisJCQkgKiBhdHRy aWJ1dGUgcGFzc2VzIHRoZSBxdWFsLgorCQkJICovCisJCQlBc3NlcnQoU2NhbkRpcmVjdGlvbklz Rm9yd2FyZChkaXIpKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyogcm93LWNvbXBhcmlzb24g a2V5cyBuZWVkIHNwZWNpYWwgcHJvY2Vzc2luZyAqLworCQlBc3NlcnQoKGtleS0+c2tfZmxhZ3Mg JiBTS19ST1dfSEVBREVSKSA9PSAwKTsKKworCQlkYXR1bSA9IGluZGV4X2dldGF0dHIodHVwbGUs CisJCQkJCQkJICBrZXktPnNrX2F0dG5vLAorCQkJCQkJCSAgdHVwZGVzYywKKwkJCQkJCQkgICZp c051bGwpOworCisJCWlmIChrZXktPnNrX2ZsYWdzICYgU0tfSVNOVUxMKQorCQl7CisJCQkvKiBI YW5kbGUgSVMgTlVMTC9OT1QgTlVMTCB0ZXN0cyAqLworCQkJaWYgKGtleS0+c2tfZmxhZ3MgJiBT S19TRUFSQ0hOVUxMKQorCQkJeworCQkJCWlmIChpc051bGwpCisJCQkJCWNvbnRpbnVlOwkvKiB0 dXBsZSBzYXRpc2ZpZXMgdGhpcyBxdWFsICovCisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJQXNz ZXJ0KGtleS0+c2tfZmxhZ3MgJiBTS19TRUFSQ0hOT1ROVUxMKTsKKwkJCQlpZiAoIWlzTnVsbCkK KwkJCQkJY29udGludWU7CS8qIHR1cGxlIHNhdGlzZmllcyB0aGlzIHF1YWwgKi8KKwkJCX0KKwor CQkJLyoKKwkJCSAqIFR1cGxlIGZhaWxzIHRoaXMgcXVhbC4gIElmIGl0J3MgYSByZXF1aXJlZCBx dWFsIGZvciB0aGUgY3VycmVudAorCQkJICogc2NhbiBkaXJlY3Rpb24sIHRoZW4gd2UgY2FuIGNv bmNsdWRlIG5vIGZ1cnRoZXIgdHVwbGVzIHdpbGwKKwkJCSAqIHBhc3MsIGVpdGhlci4KKwkJCSAq LworCQkJaWYgKChrZXktPnNrX2ZsYWdzICYgU0tfQlRfUkVRRldEKSAmJgorCQkJCVNjYW5EaXJl Y3Rpb25Jc0ZvcndhcmQoZGlyKSkKKwkJCQkqY29udGludWVzY2FuID0gZmFsc2U7CisJCQllbHNl IGlmICgoa2V5LT5za19mbGFncyAmIFNLX0JUX1JFUUJLV0QpICYmCisJCQkJCSBTY2FuRGlyZWN0 aW9uSXNCYWNrd2FyZChkaXIpKQorCQkJCSpjb250aW51ZXNjYW4gPSBmYWxzZTsKKworCQkJaWYg KChrZXktPnNrX2ZsYWdzICYgU0tfQlRfUkVRU0tJUEZXRCkgJiYKKwkJCQlTY2FuRGlyZWN0aW9u SXNGb3J3YXJkKGRpcikpCisJCQkJKnByZWZpeFNraXBJbmRleCA9IGtleS0+c2tfYXR0bm8gLSAx OworCQkJZWxzZSBpZiAoKGtleS0+c2tfZmxhZ3MgJiBTS19CVF9SRVFTS0lQQktXRCkgJiYKKwkJ CQkJIFNjYW5EaXJlY3Rpb25Jc0JhY2t3YXJkKGRpcikpCisJCQkJKnByZWZpeFNraXBJbmRleCA9 IGtleS0+c2tfYXR0bm8gLSAxOworCisJCQkvKgorCQkJICogSW4gYW55IGNhc2UsIHRoaXMgaW5k ZXh0dXBsZSBkb2Vzbid0IG1hdGNoIHRoZSBxdWFsLgorCQkJICovCisJCQlyZXR1cm4gZmFsc2U7 CisJCX0KKworCQlpZiAoaXNOdWxsKQorCQl7CisJCQlpZiAoa2V5LT5za19mbGFncyAmIFNLX0JU X05VTExTX0ZJUlNUKQorCQkJeworCQkJCS8qCisJCQkJICogU2luY2UgTlVMTHMgYXJlIHNvcnRl ZCBiZWZvcmUgbm9uLU5VTExzLCB3ZSBrbm93IHdlIGhhdmUKKwkJCQkgKiByZWFjaGVkIHRoZSBs b3dlciBsaW1pdCBvZiB0aGUgcmFuZ2Ugb2YgdmFsdWVzIGZvciB0aGlzCisJCQkJICogaW5kZXgg YXR0ci4gIE9uIGEgYmFja3dhcmQgc2Nhbiwgd2UgY2FuIHN0b3AgaWYgdGhpcyBxdWFsCisJCQkJ ICogaXMgb25lIG9mIHRoZSAibXVzdCBtYXRjaCIgc3Vic2V0LiAgV2UgY2FuIHN0b3AgcmVnYXJk bGVzcworCQkJCSAqIG9mIHdoZXRoZXIgdGhlIHF1YWwgaXMgPiBvciA8LCBzbyBsb25nIGFzIGl0 J3MgcmVxdWlyZWQsCisJCQkJICogYmVjYXVzZSBpdCdzIG5vdCBwb3NzaWJsZSBmb3IgYW55IGZ1 dHVyZSB0dXBsZXMgdG8gcGFzcy4gT24KKwkJCQkgKiBhIGZvcndhcmQgc2NhbiwgaG93ZXZlciwg d2UgbXVzdCBrZWVwIGdvaW5nLCBiZWNhdXNlIHdlIG1heQorCQkJCSAqIGhhdmUgaW5pdGlhbGx5 IHBvc2l0aW9uZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBpbmRleC4KKwkJCQkgKi8KKwkJCQlpZiAo KGtleS0+c2tfZmxhZ3MgJiAoU0tfQlRfUkVRRldEIHwgU0tfQlRfUkVRQktXRCkpICYmCisJCQkJ CVNjYW5EaXJlY3Rpb25Jc0JhY2t3YXJkKGRpcikpCisJCQkJCSpjb250aW51ZXNjYW4gPSBmYWxz ZTsKKworCQkJCWlmICgoa2V5LT5za19mbGFncyAmIChTS19CVF9SRVFTS0lQRldEIHwgU0tfQlRf UkVRU0tJUEJLV0QpKSAmJgorCQkJCQlTY2FuRGlyZWN0aW9uSXNCYWNrd2FyZChkaXIpKQorCQkJ CQkqcHJlZml4U2tpcEluZGV4ID0ga2V5LT5za19hdHRubyAtIDE7CisJCQl9CisJCQllbHNlCisJ CQl7CisJCQkJLyoKKwkJCQkgKiBTaW5jZSBOVUxMcyBhcmUgc29ydGVkIGFmdGVyIG5vbi1OVUxM cywgd2Uga25vdyB3ZSBoYXZlCisJCQkJICogcmVhY2hlZCB0aGUgdXBwZXIgbGltaXQgb2YgdGhl IHJhbmdlIG9mIHZhbHVlcyBmb3IgdGhpcworCQkJCSAqIGluZGV4IGF0dHIuICBPbiBhIGZvcndh cmQgc2Nhbiwgd2UgY2FuIHN0b3AgaWYgdGhpcyBxdWFsIGlzCisJCQkJICogb25lIG9mIHRoZSAi bXVzdCBtYXRjaCIgc3Vic2V0LiAgV2UgY2FuIHN0b3AgcmVnYXJkbGVzcyBvZgorCQkJCSAqIHdo ZXRoZXIgdGhlIHF1YWwgaXMgPiBvciA8LCBzbyBsb25nIGFzIGl0J3MgcmVxdWlyZWQsCisJCQkJ ICogYmVjYXVzZSBpdCdzIG5vdCBwb3NzaWJsZSBmb3IgYW55IGZ1dHVyZSB0dXBsZXMgdG8gcGFz cy4gT24KKwkJCQkgKiBhIGJhY2t3YXJkIHNjYW4sIGhvd2V2ZXIsIHdlIG11c3Qga2VlcCBnb2lu ZywgYmVjYXVzZSB3ZQorCQkJCSAqIG1heSBoYXZlIGluaXRpYWxseSBwb3NpdGlvbmVkIHRvIHRo ZSBlbmQgb2YgdGhlIGluZGV4LgorCQkJCSAqLworCQkJCWlmICgoa2V5LT5za19mbGFncyAmIChT S19CVF9SRVFGV0QgfCBTS19CVF9SRVFCS1dEKSkgJiYKKwkJCQkJU2NhbkRpcmVjdGlvbklzRm9y d2FyZChkaXIpKQorCQkJCQkqY29udGludWVzY2FuID0gZmFsc2U7CisJCQkJaWYgKChrZXktPnNr X2ZsYWdzICYgKFNLX0JUX1JFUVNLSVBGV0QgfCBTS19CVF9SRVFTS0lQQktXRCkpICYmCisJCQkJ CVNjYW5EaXJlY3Rpb25Jc0JhY2t3YXJkKGRpcikpCisJCQkJCSpwcmVmaXhTa2lwSW5kZXggPSBr ZXktPnNrX2F0dG5vIC0gMTsKKwkJCX0KKworCQkJLyoKKwkJCSAqIEluIGFueSBjYXNlLCB0aGlz IGluZGV4dHVwbGUgZG9lc24ndCBtYXRjaCB0aGUgcXVhbC4KKwkJCSAqLworCQkJcmV0dXJuIGZh bHNlOworCQl9CisKKworCQkvKiBQZXJmb3JtIHRoZSB0ZXN0IC0tLSB0aHJlZS13YXkgY29tcGFy aXNvbiBub3QgYm9vbCBvcGVyYXRvciAqLworCQljbXByZXN1bHQgPSBEYXR1bUdldEludDMyKEZ1 bmN0aW9uQ2FsbDJDb2xsKCZrZXktPnNrX2Z1bmMsCisJCQkJCQkJCQkJCQkJa2V5LT5za19jb2xs YXRpb24sCisJCQkJCQkJCQkJCQkJZGF0dW0sCisJCQkJCQkJCQkJCQkJa2V5LT5za19hcmd1bWVu dCkpOworCisJCWlmIChrZXktPnNrX2ZsYWdzICYgU0tfQlRfREVTQykKKwkJCUlOVkVSVF9DT01Q QVJFX1JFU1VMVChjbXByZXN1bHQpOworCisJCWlmIChjbXByZXN1bHQgIT0gMCkKKwkJeworCQkJ LyoKKwkJCSAqIFR1cGxlIGZhaWxzIHRoaXMgcXVhbC4gIElmIGl0J3MgYSByZXF1aXJlZCBxdWFs IGZvciB0aGUgY3VycmVudAorCQkJICogc2NhbiBkaXJlY3Rpb24sIHRoZW4gd2UgY2FuIGNvbmNs dWRlIG5vIGZ1cnRoZXIgdHVwbGVzIHdpbGwKKwkJCSAqIHBhc3MsIGVpdGhlci4KKwkJCSAqCisJ CQkgKiBOb3RlOiBiZWNhdXNlIHdlIHN0b3AgdGhlIHNjYW4gYXMgc29vbiBhcyBhbnkgcmVxdWly ZWQgZXF1YWxpdHkKKwkJCSAqIHF1YWwgZmFpbHMsIGl0IGlzIGNyaXRpY2FsIHRoYXQgZXF1YWxp dHkgcXVhbHMgYmUgdXNlZCBmb3IgdGhlCisJCQkgKiBpbml0aWFsIHBvc2l0aW9uaW5nIGluIF9i dF9maXJzdCgpIHdoZW4gdGhleSBhcmUgYXZhaWxhYmxlLiBTZWUKKwkJCSAqIGNvbW1lbnRzIGlu IF9idF9maXJzdCgpLgorCQkJICovCisJCQlpZiAoKGtleS0+c2tfZmxhZ3MgJiBTS19CVF9SRVFG V0QpICYmCisJCQkJU2NhbkRpcmVjdGlvbklzRm9yd2FyZChkaXIpICYmIGNtcHJlc3VsdCA+IDAp CisJCQkJKmNvbnRpbnVlc2NhbiA9IGZhbHNlOworCQkJZWxzZSBpZiAoKGtleS0+c2tfZmxhZ3Mg JiBTS19CVF9SRVFCS1dEKSAmJgorCQkJCQkgU2NhbkRpcmVjdGlvbklzQmFja3dhcmQoZGlyKSAm JiBjbXByZXN1bHQgPCAwKQorCQkJCSpjb250aW51ZXNjYW4gPSBmYWxzZTsKKworCQkJaWYgKChr ZXktPnNrX2ZsYWdzICYgU0tfQlRfUkVRU0tJUEZXRCkgJiYKKwkJCQlTY2FuRGlyZWN0aW9uSXNG b3J3YXJkKGRpcikgJiYgY21wcmVzdWx0ID4gMCkKKwkJCQkqcHJlZml4U2tpcEluZGV4ID0ga2V5 LT5za19hdHRubyAtIDE7CisJCQllbHNlIGlmICgoa2V5LT5za19mbGFncyAmIFNLX0JUX1JFUVNL SVBCS1dEKSAmJgorCQkJCQkgU2NhbkRpcmVjdGlvbklzQmFja3dhcmQoZGlyKSAmJiBjbXByZXN1 bHQgPCAwKQorCQkJCSpwcmVmaXhTa2lwSW5kZXggPSBrZXktPnNrX2F0dG5vIC0gMTsKKwogCQkJ LyoKIAkJCSAqIEluIGFueSBjYXNlLCB0aGlzIGluZGV4dHVwbGUgZG9lc24ndCBtYXRjaCB0aGUg cXVhbC4KIAkJCSAqLwpAQCAtMTUyMCw3ICsxNzYwLDcgQEAgX2J0X2NoZWNra2V5cyhJbmRleFNj YW5EZXNjIHNjYW4sIEluZGV4VHVwbGUgdHVwbGUsIGludCB0dXBuYXR0cywKICAqLwogc3RhdGlj IGJvb2wKIF9idF9jaGVja19yb3djb21wYXJlKFNjYW5LZXkgc2tleSwgSW5kZXhUdXBsZSB0dXBs ZSwgaW50IHR1cG5hdHRzLAotCQkJCQkgVHVwbGVEZXNjIHR1cGRlc2MsIFNjYW5EaXJlY3Rpb24g ZGlyLCBib29sICpjb250aW51ZXNjYW4pCisJCQkJCSBUdXBsZURlc2MgdHVwZGVzYywgU2NhbkRp cmVjdGlvbiBkaXIsIGJvb2wgKmNvbnRpbnVlc2NhbiwgaW50ICpwcmVmaXhTa2lwSW5kZXgpCiB7 CiAJU2NhbktleQkJc3Via2V5ID0gKFNjYW5LZXkpIERhdHVtR2V0UG9pbnRlcihza2V5LT5za19h cmd1bWVudCk7CiAJaW50MzIJCWNtcHJlc3VsdCA9IDA7CkBAIC0xNTc2LDYgKzE4MTYsMTAgQEAg X2J0X2NoZWNrX3Jvd2NvbXBhcmUoU2NhbktleSBza2V5LCBJbmRleFR1cGxlIHR1cGxlLCBpbnQg dHVwbmF0dHMsCiAJCQkJaWYgKChzdWJrZXktPnNrX2ZsYWdzICYgKFNLX0JUX1JFUUZXRCB8IFNL X0JUX1JFUUJLV0QpKSAmJgogCQkJCQlTY2FuRGlyZWN0aW9uSXNCYWNrd2FyZChkaXIpKQogCQkJ CQkqY29udGludWVzY2FuID0gZmFsc2U7CisKKwkJCQlpZiAoKHN1YmtleS0+c2tfZmxhZ3MgJiAo U0tfQlRfUkVRU0tJUEZXRCB8IFNLX0JUX1JFUUJLV0QpICYmCisJCQkJCVNjYW5EaXJlY3Rpb25J c0JhY2t3YXJkKGRpcikpKQorCQkJCQkqcHJlZml4U2tpcEluZGV4ID0gc3Via2V5LT5za19hdHRu byAtIDE7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC0xNTkyLDYgKzE4MzYsMTAgQEAgX2J0X2No ZWNrX3Jvd2NvbXBhcmUoU2NhbktleSBza2V5LCBJbmRleFR1cGxlIHR1cGxlLCBpbnQgdHVwbmF0 dHMsCiAJCQkJaWYgKChzdWJrZXktPnNrX2ZsYWdzICYgKFNLX0JUX1JFUUZXRCB8IFNLX0JUX1JF UUJLV0QpKSAmJgogCQkJCQlTY2FuRGlyZWN0aW9uSXNGb3J3YXJkKGRpcikpCiAJCQkJCSpjb250 aW51ZXNjYW4gPSBmYWxzZTsKKworCQkJCWlmICgoc3Via2V5LT5za19mbGFncyAmIChTS19CVF9S RVFTS0lQRldEIHwgU0tfQlRfUkVRQktXRCkgJiYKKwkJCQkJU2NhbkRpcmVjdGlvbklzRm9yd2Fy ZChkaXIpKSkKKwkJCQkJKnByZWZpeFNraXBJbmRleCA9IHN1YmtleS0+c2tfYXR0bm8gLSAxOwog CQkJfQogCiAJCQkvKgpAQCAtMTYxNiw2ICsxODY0LDEzIEBAIF9idF9jaGVja19yb3djb21wYXJl KFNjYW5LZXkgc2tleSwgSW5kZXhUdXBsZSB0dXBsZSwgaW50IHR1cG5hdHRzLAogCQkJZWxzZSBp ZiAoKHN1YmtleS0+c2tfZmxhZ3MgJiBTS19CVF9SRVFCS1dEKSAmJgogCQkJCQkgU2NhbkRpcmVj dGlvbklzQmFja3dhcmQoZGlyKSkKIAkJCQkqY29udGludWVzY2FuID0gZmFsc2U7CisKKwkJCWlm ICgoc3Via2V5LT5za19mbGFncyAmIFNLX0JUX1JFUVNLSVBGV0QpICYmCisJCQkJU2NhbkRpcmVj dGlvbklzRm9yd2FyZChkaXIpKQorCQkJCSpwcmVmaXhTa2lwSW5kZXggPSBzdWJrZXktPnNrX2F0 dG5vIC0gMTsKKwkJCWVsc2UgaWYgKChzdWJrZXktPnNrX2ZsYWdzICYgU0tfQlRfUkVRU0tJUEJL V0QpICYmCisJCQkJCSBTY2FuRGlyZWN0aW9uSXNCYWNrd2FyZChkaXIpKQorCQkJCSpwcmVmaXhT a2lwSW5kZXggPSBzdWJrZXktPnNrX2F0dG5vIC0gMTsKIAkJCXJldHVybiBmYWxzZTsKIAkJfQog CkBAIC0xNjc4LDYgKzE5MzMsMTMgQEAgX2J0X2NoZWNrX3Jvd2NvbXBhcmUoU2NhbktleSBza2V5 LCBJbmRleFR1cGxlIHR1cGxlLCBpbnQgdHVwbmF0dHMsCiAJCWVsc2UgaWYgKChzdWJrZXktPnNr X2ZsYWdzICYgU0tfQlRfUkVRQktXRCkgJiYKIAkJCQkgU2NhbkRpcmVjdGlvbklzQmFja3dhcmQo ZGlyKSkKIAkJCSpjb250aW51ZXNjYW4gPSBmYWxzZTsKKworCQlpZiAoKHN1YmtleS0+c2tfZmxh Z3MgJiBTS19CVF9SRVFTS0lQRldEKSAmJgorCQkJU2NhbkRpcmVjdGlvbklzRm9yd2FyZChkaXIp KQorCQkJKnByZWZpeFNraXBJbmRleCA9IHN1YmtleS0+c2tfYXR0bm8gLSAxOworCQllbHNlIGlm ICgoc3Via2V5LT5za19mbGFncyAmIFNLX0JUX1JFUVNLSVBCS1dEKSAmJgorCQkJCSBTY2FuRGly ZWN0aW9uSXNCYWNrd2FyZChkaXIpKQorCQkJKnByZWZpeFNraXBJbmRleCA9IHN1YmtleS0+c2tf YXR0bm8gLSAxOwogCX0KIAogCXJldHVybiByZXN1bHQ7CkBAIC0yNzY3LDMgKzMwMjksNTI0IEBA IF9idF9hbGxlcXVhbGltYWdlKFJlbGF0aW9uIHJlbCwgYm9vbCBkZWJ1Z21lc3NhZ2UpCiAKIAly ZXR1cm4gYWxsZXF1YWxpbWFnZTsKIH0KKwordm9pZCBfYnRfc2V0X2JzZWFyY2hfZmxhZ3MoU3Ry YXRlZ3lOdW1iZXIgc3RyYXRUb3RhbCwgU2NhbkRpcmVjdGlvbiBkaXIsIGJvb2wqIG5leHRrZXks IGJvb2wqIGdvYmFjaykKK3sKKwkvKi0tLS0tLS0tLS0KKwkgKiBFeGFtaW5lIHRoZSBzZWxlY3Rl ZCBpbml0aWFsLXBvc2l0aW9uaW5nIHN0cmF0ZWd5IHRvIGRldGVybWluZSBleGFjdGx5CisJICog d2hlcmUgd2UgbmVlZCB0byBzdGFydCB0aGUgc2NhbiwgYW5kIHNldCBmbGFnIHZhcmlhYmxlcyB0 byBjb250cm9sIHRoZQorCSAqIGNvZGUgYmVsb3cuCisJICoKKwkgKiBJZiBuZXh0a2V5ID0gZmFs c2UsIF9idF9zZWFyY2ggYW5kIF9idF9iaW5zcmNoIHdpbGwgbG9jYXRlIHRoZSBmaXJzdAorCSAq IGl0ZW0gPj0gc2NhbiBrZXkuICBJZiBuZXh0a2V5ID0gdHJ1ZSwgdGhleSB3aWxsIGxvY2F0ZSB0 aGUgZmlyc3QKKwkgKiBpdGVtID4gc2NhbiBrZXkuCisJICoKKwkgKiBJZiBnb2JhY2sgPSB0cnVl LCB3ZSB3aWxsIHRoZW4gc3RlcCBiYWNrIG9uZSBpdGVtLCB3aGlsZSBpZgorCSAqIGdvYmFjayA9 IGZhbHNlLCB3ZSB3aWxsIHN0YXJ0IHRoZSBzY2FuIG9uIHRoZSBsb2NhdGVkIGl0ZW0uCisJICot LS0tLS0tLS0tCisJICovCisJc3dpdGNoIChzdHJhdFRvdGFsKQorCXsKKwkJY2FzZSBCVExlc3NT dHJhdGVneU51bWJlcjoKKworCQkJLyoKKwkJCSAqIEZpbmQgZmlyc3QgaXRlbSA+PSBzY2Fua2V5 LCB0aGVuIGJhY2sgdXAgb25lIHRvIGFycml2ZSBhdCBsYXN0CisJCQkgKiBpdGVtIDwgc2Nhbmtl eS4gIChOb3RlOiB0aGlzIHBvc2l0aW9uaW5nIHN0cmF0ZWd5IGlzIG9ubHkgdXNlZAorCQkJICog Zm9yIGEgYmFja3dhcmQgc2Nhbiwgc28gdGhhdCBpcyBhbHdheXMgdGhlIGNvcnJlY3Qgc3RhcnRp bmcKKwkJCSAqIHBvc2l0aW9uLikKKwkJCSAqLworCQkJKm5leHRrZXkgPSBmYWxzZTsKKwkJCSpn b2JhY2sgPSB0cnVlOworCQkJYnJlYWs7CisKKwkJY2FzZSBCVExlc3NFcXVhbFN0cmF0ZWd5TnVt YmVyOgorCisJCQkvKgorCQkJICogRmluZCBmaXJzdCBpdGVtID4gc2NhbmtleSwgdGhlbiBiYWNr IHVwIG9uZSB0byBhcnJpdmUgYXQgbGFzdAorCQkJICogaXRlbSA8PSBzY2Fua2V5LiAgKE5vdGU6 IHRoaXMgcG9zaXRpb25pbmcgc3RyYXRlZ3kgaXMgb25seSB1c2VkCisJCQkgKiBmb3IgYSBiYWNr d2FyZCBzY2FuLCBzbyB0aGF0IGlzIGFsd2F5cyB0aGUgY29ycmVjdCBzdGFydGluZworCQkJICog cG9zaXRpb24uKQorCQkJICovCisJCQkqbmV4dGtleSA9IHRydWU7CisJCQkqZ29iYWNrID0gdHJ1 ZTsKKwkJCWJyZWFrOworCisJCWNhc2UgQlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCisJCQkvKgor CQkJICogSWYgYSBiYWNrd2FyZCBzY2FuIHdhcyBzcGVjaWZpZWQsIG5lZWQgdG8gc3RhcnQgd2l0 aCBsYXN0IGVxdWFsCisJCQkgKiBpdGVtIG5vdCBmaXJzdCBvbmUuCisJCQkgKi8KKwkJCWlmIChT Y2FuRGlyZWN0aW9uSXNCYWNrd2FyZChkaXIpKQorCQkJeworCQkJCS8qCisJCQkJICogVGhpcyBp cyB0aGUgc2FtZSBhcyB0aGUgPD0gc3RyYXRlZ3kuICBXZSB3aWxsIGNoZWNrIGF0IHRoZQorCQkJ CSAqIGVuZCB3aGV0aGVyIHRoZSBmb3VuZCBpdGVtIGlzIGFjdHVhbGx5ID0uCisJCQkJICovCisJ CQkJKm5leHRrZXkgPSB0cnVlOworCQkJCSpnb2JhY2sgPSB0cnVlOworCQkJfQorCQkJZWxzZQor CQkJeworCQkJCS8qCisJCQkJICogVGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgPj0gc3RyYXRlZ3ku ICBXZSB3aWxsIGNoZWNrIGF0IHRoZQorCQkJCSAqIGVuZCB3aGV0aGVyIHRoZSBmb3VuZCBpdGVt IGlzIGFjdHVhbGx5ID0uCisJCQkJICovCisJCQkJKm5leHRrZXkgPSBmYWxzZTsKKwkJCQkqZ29i YWNrID0gZmFsc2U7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIEJUR3JlYXRlckVxdWFsU3Ry YXRlZ3lOdW1iZXI6CisKKwkJCS8qCisJCQkgKiBGaW5kIGZpcnN0IGl0ZW0gPj0gc2NhbmtleS4g IChUaGlzIGlzIG9ubHkgdXNlZCBmb3IgZm9yd2FyZAorCQkJICogc2NhbnMuKQorCQkJICovCisJ CQkqbmV4dGtleSA9IGZhbHNlOworCQkJKmdvYmFjayA9IGZhbHNlOworCQkJYnJlYWs7CisKKwkJ Y2FzZSBCVEdyZWF0ZXJTdHJhdGVneU51bWJlcjoKKworCQkJLyoKKwkJCSAqIEZpbmQgZmlyc3Qg aXRlbSA+IHNjYW5rZXkuICAoVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGZvcndhcmQKKwkJCSAqIHNj YW5zLikKKwkJCSAqLworCQkJKm5leHRrZXkgPSB0cnVlOworCQkJKmdvYmFjayA9IGZhbHNlOwor CQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCS8qIGNhbid0IGdldCBoZXJlLCBidXQga2VlcCBj b21waWxlciBxdWlldCAqLworCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBzdHJhdF90b3Rh bDogJWQiLCAoaW50KSBzdHJhdFRvdGFsKTsKKwl9Cit9CisKK2Jvb2wgX2J0X2NyZWF0ZV9pbnNl cnRpb25fc2Nhbl9rZXkoUmVsYXRpb24JcmVsLCBTY2FuRGlyZWN0aW9uIGRpciwgU2NhbktleSog c3RhcnRLZXlzLCBpbnQga2V5c0NvdW50LCBCVFNjYW5JbnNlcnQgaW5za2V5LCBTdHJhdGVneU51 bWJlciogc3RyYXRUb3RhbCwgIGJvb2wqIGdvYmFjaykKK3sKKwlpbnQgaTsKKwlib29sIG5leHRr ZXk7CisKKwkvKgorCSAqIFdlIHdhbnQgdG8gc3RhcnQgdGhlIHNjYW4gc29tZXdoZXJlIHdpdGhp biB0aGUgaW5kZXguICBTZXQgdXAgYW4KKwkgKiBpbnNlcnRpb24gc2NhbmtleSB3ZSBjYW4gdXNl IHRvIHNlYXJjaCBmb3IgdGhlIGJvdW5kYXJ5IHBvaW50IHdlCisJICogaWRlbnRpZmllZCBhYm92 ZS4gIFRoZSBpbnNlcnRpb24gc2NhbmtleSBpcyBidWlsdCB1c2luZyB0aGUga2V5cworCSAqIGlk ZW50aWZpZWQgYnkgc3RhcnRLZXlzW10uICAoUmVtYWluaW5nIGluc2VydGlvbiBzY2Fua2V5IGZp ZWxkcyBhcmUKKwkgKiBpbml0aWFsaXplZCBhZnRlciBpbml0aWFsLXBvc2l0aW9uaW5nIHN0cmF0 ZWd5IGlzIGZpbmFsaXplZC4pCisJICovCisJQXNzZXJ0KGtleXNDb3VudCA8PSBJTkRFWF9NQVhf S0VZUyk7CisJZm9yIChpID0gMDsgaSA8IGtleXNDb3VudDsgaSsrKQorCXsKKwkJU2NhbktleQkJ Y3VyID0gc3RhcnRLZXlzW2ldOworCisJCWlmIChjdXIgPT0gTlVMTCkKKwkJeworCQkJaW5za2V5 LT5zY2Fua2V5c1tpXS5za19hdHRubyA9IDA7CisJCQljb250aW51ZTsKKwkJfQorCisJCUFzc2Vy dChjdXItPnNrX2F0dG5vID09IGkgKyAxKTsKKworCQlpZiAoY3VyLT5za19mbGFncyAmIFNLX1JP V19IRUFERVIpCisJCXsKKwkJCS8qCisJCQkgKiBSb3cgY29tcGFyaXNvbiBoZWFkZXI6IGxvb2sg dG8gdGhlIGZpcnN0IHJvdyBtZW1iZXIgaW5zdGVhZC4KKwkJCSAqCisJCQkgKiBUaGUgbWVtYmVy IHNjYW5rZXlzIGFyZSBhbHJlYWR5IGluIGluc2VydGlvbiBmb3JtYXQgKGllLCB0aGV5CisJCQkg KiBoYXZlIHNrX2Z1bmMgPSAzLXdheS1jb21wYXJpc29uIGZ1bmN0aW9uKSwgYnV0IHdlIGhhdmUg dG8gd2F0Y2gKKwkJCSAqIG91dCBmb3IgbnVsbHMsIHdoaWNoIF9idF9wcmVwcm9jZXNzX2tleXMg ZGlkbid0IGNoZWNrLiBBIG51bGwKKwkJCSAqIGluIHRoZSBmaXJzdCByb3cgbWVtYmVyIG1ha2Vz IHRoZSBjb25kaXRpb24gdW5tYXRjaGFibGUsIGp1c3QKKwkJCSAqIGxpa2UgcXVhbF9vayA9IGZh bHNlLgorCQkJICovCisJCQlTY2FuS2V5CQlzdWJrZXkgPSAoU2NhbktleSkgRGF0dW1HZXRQb2lu dGVyKGN1ci0+c2tfYXJndW1lbnQpOworCisJCQlBc3NlcnQoc3Via2V5LT5za19mbGFncyAmIFNL X1JPV19NRU1CRVIpOworCQkJaWYgKHN1YmtleS0+c2tfZmxhZ3MgJiBTS19JU05VTEwpCisJCQl7 CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQorCQkJbWVtY3B5KGluc2tleS0+c2NhbmtleXMgKyBp LCBzdWJrZXksIHNpemVvZihTY2FuS2V5RGF0YSkpOworCisJCQkvKgorCQkJICogSWYgdGhlIHJv dyBjb21wYXJpc29uIGlzIHRoZSBsYXN0IHBvc2l0aW9uaW5nIGtleSB3ZSBhY2NlcHRlZCwKKwkJ CSAqIHRyeSB0byBhZGQgYWRkaXRpb25hbCBrZXlzIGZyb20gdGhlIGxvd2VyLW9yZGVyIHJvdyBt ZW1iZXJzLgorCQkJICogKElmIHdlIGFjY2VwdGVkIGluZGVwZW5kZW50IGNvbmRpdGlvbnMgb24g YWRkaXRpb25hbCBpbmRleAorCQkJICogY29sdW1ucywgd2UgdXNlIHRob3NlIGluc3RlYWQgLS0t IGRvZXNuJ3Qgc2VlbSB3b3J0aCB0cnlpbmcgdG8KKwkJCSAqIGRldGVybWluZSB3aGljaCBpcyBt b3JlIHJlc3RyaWN0aXZlLikgIE5vdGUgdGhhdCB0aGlzIGlzIE9LCisJCQkgKiBldmVuIGlmIHRo ZSByb3cgY29tcGFyaXNvbiBpcyBvZiAiPiIgb3IgIjwiIHR5cGUsIGJlY2F1c2UgdGhlCisJCQkg KiBjb25kaXRpb24gYXBwbGllZCB0byBhbGwgYnV0IHRoZSBsYXN0IHJvdyBtZW1iZXIgaXMgZWZm ZWN0aXZlbHkKKwkJCSAqICI+PSIgb3IgIjw9IiwgYW5kIHNvIHRoZSBleHRyYSBrZXlzIGRvbid0 IGJyZWFrIHRoZSBwb3NpdGlvbmluZworCQkJICogc2NoZW1lLiAgQnV0LCBieSB0aGUgc2FtZSB0 b2tlbiwgaWYgd2UgYXJlbid0IGFibGUgdG8gdXNlIGFsbAorCQkJICogdGhlIHJvdyBtZW1iZXJz LCB0aGVuIHRoZSBwYXJ0IG9mIHRoZSByb3cgY29tcGFyaXNvbiB0aGF0IHdlCisJCQkgKiBkaWQg dXNlIGhhcyB0byBiZSB0cmVhdGVkIGFzIGp1c3QgYSAiPj0iIG9yICI8PSIgY29uZGl0aW9uLCBh bmQKKwkJCSAqIHNvIHdlJ2QgYmV0dGVyIGFkanVzdCBzdHJhdF90b3RhbCBhY2NvcmRpbmdseS4K KwkJCSAqLworCQkJaWYgKGkgPT0ga2V5c0NvdW50IC0gMSkKKwkJCXsKKwkJCQlib29sCQl1c2Vk X2FsbF9zdWJrZXlzID0gZmFsc2U7CisKKwkJCQlBc3NlcnQoIShzdWJrZXktPnNrX2ZsYWdzICYg U0tfUk9XX0VORCkpOworCQkJCWZvciAoOzspCisJCQkJeworCQkJCQlzdWJrZXkrKzsKKwkJCQkJ QXNzZXJ0KHN1YmtleS0+c2tfZmxhZ3MgJiBTS19ST1dfTUVNQkVSKTsKKwkJCQkJaWYgKHN1Ymtl eS0+c2tfYXR0bm8gIT0ga2V5c0NvdW50ICsgMSkKKwkJCQkJCWJyZWFrOwkvKiBvdXQtb2Ytc2Vx dWVuY2UsIGNhbid0IHVzZSBpdCAqLworCQkJCQlpZiAoc3Via2V5LT5za19zdHJhdGVneSAhPSBj dXItPnNrX3N0cmF0ZWd5KQorCQkJCQkJYnJlYWs7CS8qIHdyb25nIGRpcmVjdGlvbiwgY2FuJ3Qg dXNlIGl0ICovCisJCQkJCWlmIChzdWJrZXktPnNrX2ZsYWdzICYgU0tfSVNOVUxMKQorCQkJCQkJ YnJlYWs7CS8qIGNhbid0IHVzZSBudWxsIGtleXMgKi8KKwkJCQkJQXNzZXJ0KGtleXNDb3VudCA8 IElOREVYX01BWF9LRVlTKTsKKwkJCQkJbWVtY3B5KGluc2tleS0+c2NhbmtleXMgKyBrZXlzQ291 bnQsIHN1YmtleSwKKwkJCQkJCSAgIHNpemVvZihTY2FuS2V5RGF0YSkpOworCQkJCQlrZXlzQ291 bnQrKzsKKwkJCQkJaWYgKHN1YmtleS0+c2tfZmxhZ3MgJiBTS19ST1dfRU5EKQorCQkJCQl7CisJ CQkJCQl1c2VkX2FsbF9zdWJrZXlzID0gdHJ1ZTsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJ fQorCQkJCWlmICghdXNlZF9hbGxfc3Via2V5cykKKwkJCQl7CisJCQkJCXN3aXRjaCAoKnN0cmF0 VG90YWwpCisJCQkJCXsKKwkJCQkJCWNhc2UgQlRMZXNzU3RyYXRlZ3lOdW1iZXI6CisJCQkJCQkJ KnN0cmF0VG90YWwgPSBCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOworCQkJCQkJCWJyZWFrOwor CQkJCQkJY2FzZSBCVEdyZWF0ZXJTdHJhdGVneU51bWJlcjoKKwkJCQkJCQkqc3RyYXRUb3RhbCA9 IEJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXI7CisJCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJ CQl9CisJCQkJYnJlYWs7CQkJLyogZG9uZSB3aXRoIG91dGVyIGxvb3AgKi8KKwkJCX0KKwkJfQor CQllbHNlCisJCXsKKwkJCS8qCisJCQkgKiBPcmRpbmFyeSBjb21wYXJpc29uIGtleS4gIFRyYW5z Zm9ybSB0aGUgc2VhcmNoLXN0eWxlIHNjYW4ga2V5CisJCQkgKiB0byBhbiBpbnNlcnRpb24gc2Nh biBrZXkgYnkgcmVwbGFjaW5nIHRoZSBza19mdW5jIHdpdGggdGhlCisJCQkgKiBhcHByb3ByaWF0 ZSBidHJlZSBjb21wYXJpc29uIGZ1bmN0aW9uLgorCQkJICoKKwkJCSAqIElmIHNjYW5rZXkgb3Bl cmF0b3IgaXMgbm90IGEgY3Jvc3MtdHlwZSBjb21wYXJpc29uLCB3ZSBjYW4gdXNlCisJCQkgKiB0 aGUgY2FjaGVkIGNvbXBhcmlzb24gZnVuY3Rpb247IG90aGVyd2lzZSBnb3R0YSBsb29rIGl0IHVw IGluCisJCQkgKiB0aGUgY2F0YWxvZ3MuICAoVGhhdCBjYW4ndCBsZWFkIHRvIGluZmluaXRlIHJl Y3Vyc2lvbiwgc2luY2Ugbm8KKwkJCSAqIGluZGV4c2NhbiBpbml0aWF0ZWQgYnkgc3lzY2FjaGUg bG9va3VwIHdpbGwgdXNlIGNyb3NzLWRhdGEtdHlwZQorCQkJICogb3BlcmF0b3JzLikKKwkJCSAq CisJCQkgKiBXZSBzdXBwb3J0IHRoZSBjb252ZW50aW9uIHRoYXQgc2tfc3VidHlwZSA9PSBJbnZh bGlkT2lkIG1lYW5zCisJCQkgKiB0aGUgb3BjbGFzcyBpbnB1dCB0eXBlOyB0aGlzIGlzIGEgaGFj ayB0byBzaW1wbGlmeSBsaWZlIGZvcgorCQkJICogU2NhbktleUluaXQoKS4KKwkJCSAqLworCQkJ aWYgKGN1ci0+c2tfc3VidHlwZSA9PSByZWwtPnJkX29wY2ludHlwZVtpXSB8fAorCQkJCWN1ci0+ c2tfc3VidHlwZSA9PSBJbnZhbGlkT2lkKQorCQkJeworCQkJCUZtZ3JJbmZvICAgKnByb2NpbmZv OworCisJCQkJcHJvY2luZm8gPSBpbmRleF9nZXRwcm9jaW5mbyhyZWwsIGN1ci0+c2tfYXR0bm8s IEJUT1JERVJfUFJPQyk7CisJCQkJU2NhbktleUVudHJ5SW5pdGlhbGl6ZVdpdGhJbmZvKGluc2tl eS0+c2NhbmtleXMgKyBpLAorCQkJCQkJCQkJCQkgICBjdXItPnNrX2ZsYWdzLAorCQkJCQkJCQkJ CQkgICBjdXItPnNrX2F0dG5vLAorCQkJCQkJCQkJCQkgICBjdXItPnNrX3N0cmF0ZWd5LAorCQkJ CQkJCQkJCQkgICBjdXItPnNrX3N1YnR5cGUsCisJCQkJCQkJCQkJCSAgIGN1ci0+c2tfY29sbGF0 aW9uLAorCQkJCQkJCQkJCQkgICBwcm9jaW5mbywKKwkJCQkJCQkJCQkJICAgY3VyLT5za19hcmd1 bWVudCk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJUmVnUHJvY2VkdXJlIGNtcF9wcm9jOwor CisJCQkJY21wX3Byb2MgPSBnZXRfb3BmYW1pbHlfcHJvYyhyZWwtPnJkX29wZmFtaWx5W2ldLAor CQkJCQkJCQkJCQkgcmVsLT5yZF9vcGNpbnR5cGVbaV0sCisJCQkJCQkJCQkJCSBjdXItPnNrX3N1 YnR5cGUsCisJCQkJCQkJCQkJCSBCVE9SREVSX1BST0MpOworCQkJCWlmICghUmVnUHJvY2VkdXJl SXNWYWxpZChjbXBfcHJvYykpCisJCQkJCWVsb2coRVJST1IsICJtaXNzaW5nIHN1cHBvcnQgZnVu Y3Rpb24gJWQoJXUsJXUpIGZvciBhdHRyaWJ1dGUgJWQgb2YgaW5kZXggXCIlc1wiIiwKKwkJCQkJ CSBCVE9SREVSX1BST0MsIHJlbC0+cmRfb3BjaW50eXBlW2ldLCBjdXItPnNrX3N1YnR5cGUsCisJ CQkJCQkgY3VyLT5za19hdHRubywgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisJCQkJ U2NhbktleUVudHJ5SW5pdGlhbGl6ZShpbnNrZXktPnNjYW5rZXlzICsgaSwKKwkJCQkJCQkJCSAg IGN1ci0+c2tfZmxhZ3MsCisJCQkJCQkJCQkgICBjdXItPnNrX2F0dG5vLAorCQkJCQkJCQkJICAg Y3VyLT5za19zdHJhdGVneSwKKwkJCQkJCQkJCSAgIGN1ci0+c2tfc3VidHlwZSwKKwkJCQkJCQkJ CSAgIGN1ci0+c2tfY29sbGF0aW9uLAorCQkJCQkJCQkJICAgY21wX3Byb2MsCisJCQkJCQkJCQkg ICBjdXItPnNrX2FyZ3VtZW50KTsKKwkJCX0KKwkJfQorCX0KKworCV9idF9zZXRfYnNlYXJjaF9m bGFncygqc3RyYXRUb3RhbCwgZGlyLCAmbmV4dGtleSwgZ29iYWNrKTsKKworCS8qIEluaXRpYWxp emUgcmVtYWluaW5nIGluc2VydGlvbiBzY2FuIGtleSBmaWVsZHMgKi8KKwlfYnRfbWV0YXZlcnNp b24ocmVsLCAmaW5za2V5LT5oZWFwa2V5c3BhY2UsICZpbnNrZXktPmFsbGVxdWFsaW1hZ2UpOwor CWluc2tleS0+YW55bnVsbGtleXMgPSBmYWxzZTsgLyogdW51c2VkICovCisJaW5za2V5LT5uZXh0 a2V5ID0gbmV4dGtleTsKKwlpbnNrZXktPnBpdm90c2VhcmNoID0gZmFsc2U7CisJaW5za2V5LT5z Y2FudGlkID0gTlVMTDsKKwlpbnNrZXktPmtleXN6ID0ga2V5c0NvdW50OworCisJcmV0dXJuIHRy dWU7Cit9CisKKy8qLS0tLS0tLS0tLQorICogRXhhbWluZSB0aGUgc2NhbiBrZXlzIHRvIGRpc2Nv dmVyIHdoZXJlIHdlIG5lZWQgdG8gc3RhcnQgdGhlIHNjYW4uCisgKgorICogV2Ugd2FudCB0byBp ZGVudGlmeSB0aGUga2V5cyB0aGF0IGNhbiBiZSB1c2VkIGFzIHN0YXJ0aW5nIGJvdW5kYXJpZXM7 CisgKiB0aGVzZSBhcmUgPSwgPiwgb3IgPj0ga2V5cyBmb3IgYSBmb3J3YXJkIHNjYW4gb3IgPSwg PCwgPD0ga2V5cyBmb3IKKyAqIGEgYmFja3dhcmRzIHNjYW4uICBXZSBjYW4gdXNlIGtleXMgZm9y IG11bHRpcGxlIGF0dHJpYnV0ZXMgc28gbG9uZyBhcworICogdGhlIHByaW9yIGF0dHJpYnV0ZXMg aGFkIG9ubHkgPSwgPj0gKHJlc3AuID0sIDw9KSBrZXlzLiAgT25jZSB3ZSBhY2NlcHQKKyAqIGEg PiBvciA8IGJvdW5kYXJ5IG9yIGZpbmQgYW4gYXR0cmlidXRlIHdpdGggbm8gYm91bmRhcnkgKHdo aWNoIGNhbiBiZQorICogdGhvdWdodCBvZiBhcyB0aGUgc2FtZSBhcyAiPiAtaW5maW5pdHkiKSwg d2UgY2FuJ3QgdXNlIGtleXMgZm9yIGFueQorICogYXR0cmlidXRlcyB0byBpdHMgcmlnaHQsIGJl Y2F1c2UgaXQgd291bGQgYnJlYWsgb3VyIHNpbXBsaXN0aWMgbm90aW9uCisgKiBvZiB3aGF0IGlu aXRpYWwgcG9zaXRpb25pbmcgc3RyYXRlZ3kgdG8gdXNlLgorICoKKyAqIFdoZW4gdGhlIHNjYW4g a2V5cyBpbmNsdWRlIGNyb3NzLXR5cGUgb3BlcmF0b3JzLCBfYnRfcHJlcHJvY2Vzc19rZXlzCisg KiBtYXkgbm90IGJlIGFibGUgdG8gZWxpbWluYXRlIHJlZHVuZGFudCBrZXlzOyBpbiBzdWNoIGNh c2VzIHdlIHdpbGwKKyAqIGFyYml0cmFyaWx5IHBpY2sgYSB1c2FibGUgb25lIGZvciBlYWNoIGF0 dHJpYnV0ZS4gIFRoaXMgaXMgY29ycmVjdAorICogYnV0IHBvc3NpYmx5IG5vdCBvcHRpbWFsIGJl aGF2aW9yLiAgKEZvciBleGFtcGxlLCB3aXRoIGtleXMgbGlrZQorICogInggPj0gNCBBTkQgeCA+ PSA1IiB3ZSB3b3VsZCBlbGVjdCB0byBzY2FuIHN0YXJ0aW5nIGF0IHg9NCB3aGVuCisgKiB4PTUg d291bGQgYmUgbW9yZSBlZmZpY2llbnQuKSAgU2luY2UgdGhlIHNpdHVhdGlvbiBvbmx5IGFyaXNl cyBnaXZlbgorICogYSBwb29ybHktd29yZGVkIHF1ZXJ5IHBsdXMgYW4gaW5jb21wbGV0ZSBvcGZh bWlseSwgbGl2ZSB3aXRoIGl0LgorICoKKyAqIFdoZW4gYm90aCBlcXVhbGl0eSBhbmQgaW5lcXVh bGl0eSBrZXlzIGFwcGVhciBmb3IgYSBzaW5nbGUgYXR0cmlidXRlCisgKiAoYWdhaW4sIG9ubHkg cG9zc2libGUgd2hlbiBjcm9zcy10eXBlIG9wZXJhdG9ycyBhcHBlYXIpLCB3ZSAqbXVzdCoKKyAq IHNlbGVjdCBvbmUgb2YgdGhlIGVxdWFsaXR5IGtleXMgZm9yIHRoZSBzdGFydGluZyBwb2ludCwg YmVjYXVzZQorICogX2J0X2NoZWNra2V5cygpIHdpbGwgc3RvcCB0aGUgc2NhbiBhcyBzb29uIGFz IGFuIGVxdWFsaXR5IHF1YWwgZmFpbHMuCisgKiBGb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBrZXlz IGxpa2UgInggPj0gNCBBTkQgeCA9IDEwIiBhbmQgd2UgZWxlY3QgdG8KKyAqIHN0YXJ0IGF0IHg9 NCwgd2Ugd2lsbCBmYWlsIGFuZCBzdG9wIGJlZm9yZSByZWFjaGluZyB4PTEwLiAgSWYgbXVsdGlw bGUKKyAqIGVxdWFsaXR5IHF1YWxzIHN1cnZpdmUgcHJlcHJvY2Vzc2luZywgaG93ZXZlciwgaXQg ZG9lc24ndCBtYXR0ZXIgd2hpY2gKKyAqIG9uZSB3ZSB1c2UgLS0tIGJ5IGRlZmluaXRpb24sIHRo ZXkgYXJlIGVpdGhlciByZWR1bmRhbnQgb3IKKyAqIGNvbnRyYWRpY3RvcnkuCisgKgorICogQW55 IHJlZ3VsYXIgKG5vdCBTS19TRUFSQ0hOVUxMKSBrZXkgaW1wbGllcyBhIE5PVCBOVUxMIHF1YWxp Zmllci4KKyAqIElmIHRoZSBpbmRleCBzdG9yZXMgbnVsbHMgYXQgdGhlIGVuZCBvZiB0aGUgaW5k ZXggd2UnbGwgYmUgc3RhcnRpbmcKKyAqIGZyb20sIGFuZCB3ZSBoYXZlIG5vIGJvdW5kYXJ5IGtl eSBmb3IgdGhlIGNvbHVtbiAod2hpY2ggbWVhbnMgdGhlIGtleQorICogd2UgZGVkdWNlZCBOT1Qg TlVMTCBmcm9tIGlzIGFuIGluZXF1YWxpdHkga2V5IHRoYXQgY29uc3RyYWlucyB0aGUgb3RoZXIK KyAqIGVuZCBvZiB0aGUgaW5kZXgpLCB0aGVuIHdlIGNvbnMgdXAgYW4gZXhwbGljaXQgU0tfU0VB UkNITk9UTlVMTCBrZXkgdG8KKyAqIHVzZSBhcyBhIGJvdW5kYXJ5IGtleS4gIElmIHdlIGRpZG4n dCBkbyB0aGlzLCB3ZSBtaWdodCBmaW5kIG91cnNlbHZlcworICogdHJhdmVyc2luZyBhIGxvdCBv ZiBudWxsIGVudHJpZXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzY2FuLgorICoKKyAqIEluIHRoaXMg bG9vcCwgcm93LWNvbXBhcmlzb24ga2V5cyBhcmUgdHJlYXRlZCB0aGUgc2FtZSBhcyBrZXlzIG9u IHRoZWlyCisgKiBmaXJzdCAobGVmdG1vc3QpIGNvbHVtbnMuICBXZSdsbCBhZGQgb24gbG93ZXIt b3JkZXIgY29sdW1ucyBvZiB0aGUgcm93CisgKiBjb21wYXJpc29uIGJlbG93LCBpZiBwb3NzaWJs ZS4KKyAqCisgKiBUaGUgc2VsZWN0ZWQgc2NhbiBrZXlzIChhdCBtb3N0IG9uZSBwZXIgaW5kZXgg Y29sdW1uKSBhcmUgcmVtZW1iZXJlZCBieQorICogc3RvcmluZyB0aGVpciBhZGRyZXNzZXMgaW50 byB0aGUgbG9jYWwgc3RhcnRLZXlzW10gYXJyYXkuCisgKi0tLS0tLS0tLS0KKyAqLworaW50IF9i dF9jaG9vc2Vfc2Nhbl9rZXlzKFNjYW5LZXkgc2NhbktleXMsIGludCBudW1iZXJPZktleXMsIFNj YW5EaXJlY3Rpb24gZGlyLCBTY2FuS2V5KiBzdGFydEtleXMsIFNjYW5LZXlEYXRhKiBub3RudWxs a2V5cywgU3RyYXRlZ3lOdW1iZXIqIHN0cmF0VG90YWwsIGludCBwcmVmaXgpCit7CisJU3RyYXRl Z3lOdW1iZXIgc3RyYXQ7CisJaW50CQkJa2V5c0NvdW50ID0gMDsKKwlpbnQJCQlpOworCisJKnN0 cmF0VG90YWwgPSBCVEVxdWFsU3RyYXRlZ3lOdW1iZXI7CisJaWYgKG51bWJlck9mS2V5cyA+IDAg fHwgcHJlZml4ID4gMCkKKwl7CisJCUF0dHJOdW1iZXIJY3VyYXR0cjsKKwkJU2NhbktleQkJY2hv c2VuOworCQlTY2FuS2V5CQlpbXBsaWVzTk47CisJCVNjYW5LZXkJCWN1cjsKKworCQkvKgorCQkg KiBjaG9zZW4gaXMgdGhlIHNvLWZhci1jaG9zZW4ga2V5IGZvciB0aGUgY3VycmVudCBhdHRyaWJ1 dGUsIGlmIGFueS4KKwkJICogV2UgZG9uJ3QgY2FzdCB0aGUgZGVjaXNpb24gaW4gc3RvbmUgdW50 aWwgd2UgcmVhY2gga2V5cyBmb3IgdGhlCisJCSAqIG5leHQgYXR0cmlidXRlLgorCQkgKi8KKwkJ Y3VyYXR0ciA9IDE7CisJCWNob3NlbiA9IE5VTEw7CisJCS8qIEFsc28gcmVtZW1iZXIgYW55IHNj YW5rZXkgdGhhdCBpbXBsaWVzIGEgTk9UIE5VTEwgY29uc3RyYWludCAqLworCQlpbXBsaWVzTk4g PSBOVUxMOworCisJCS8qCisJCSAqIExvb3AgaXRlcmF0ZXMgZnJvbSAwIHRvIG51bWJlck9mS2V5 cyBpbmNsdXNpdmU7IHdlIHVzZSB0aGUgbGFzdAorCQkgKiBwYXNzIHRvIGhhbmRsZSBhZnRlci1s YXN0LWtleSBwcm9jZXNzaW5nLiAgQWN0dWFsIGV4aXQgZnJvbSB0aGUKKwkJICogbG9vcCBpcyBh dCBvbmUgb2YgdGhlICJicmVhayIgc3RhdGVtZW50cyBiZWxvdy4KKwkJICovCisJCWZvciAoY3Vy ID0gc2NhbktleXMsIGkgPSAwOzsgY3VyKyssIGkrKykKKwkJeworCQkJaWYgKGkgPj0gbnVtYmVy T2ZLZXlzIHx8IGN1ci0+c2tfYXR0bm8gIT0gY3VyYXR0cikKKwkJCXsKKwkJCQkvKgorCQkJCSAq IERvbmUgbG9va2luZyBhdCBrZXlzIGZvciBjdXJhdHRyLiAgSWYgd2UgZGlkbid0IGZpbmQgYQor CQkJCSAqIHVzYWJsZSBib3VuZGFyeSBrZXksIHNlZSBpZiB3ZSBjYW4gZGVkdWNlIGEgTk9UIE5V TEwga2V5LgorCQkJCSAqLworCQkJCWlmIChjaG9zZW4gPT0gTlVMTCAmJiBpbXBsaWVzTk4gIT0g TlVMTCAmJgorCQkJCQkoKGltcGxpZXNOTi0+c2tfZmxhZ3MgJiBTS19CVF9OVUxMU19GSVJTVCkg PworCQkJCQkgU2NhbkRpcmVjdGlvbklzRm9yd2FyZChkaXIpIDoKKwkJCQkJIFNjYW5EaXJlY3Rp b25Jc0JhY2t3YXJkKGRpcikpKQorCQkJCXsKKwkJCQkJLyogWWVzLCBzbyBidWlsZCB0aGUga2V5 IGluIG5vdG51bGxrZXlzW2tleXNDb3VudF0gKi8KKwkJCQkJY2hvc2VuID0gJm5vdG51bGxrZXlz W2tleXNDb3VudF07CisJCQkJCVNjYW5LZXlFbnRyeUluaXRpYWxpemUoY2hvc2VuLAorCQkJCQkJ CQkJCSAgIChTS19TRUFSQ0hOT1ROVUxMIHwgU0tfSVNOVUxMIHwKKwkJCQkJCQkJCQkJKGltcGxp ZXNOTi0+c2tfZmxhZ3MgJgorCQkJCQkJCQkJCQkgKFNLX0JUX0RFU0MgfCBTS19CVF9OVUxMU19G SVJTVCkpKSwKKwkJCQkJCQkJCQkgICBjdXJhdHRyLAorCQkJCQkJCQkJCSAgICgoaW1wbGllc05O LT5za19mbGFncyAmIFNLX0JUX05VTExTX0ZJUlNUKSA/CisJCQkJCQkJCQkJCUJUR3JlYXRlclN0 cmF0ZWd5TnVtYmVyIDoKKwkJCQkJCQkJCQkJQlRMZXNzU3RyYXRlZ3lOdW1iZXIpLAorCQkJCQkJ CQkJCSAgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJICAgSW52YWxpZE9pZCwKKwkJCQkJCQkJCQkg ICBJbnZhbGlkT2lkLAorCQkJCQkJCQkJCSAgIChEYXR1bSkgMCk7CisJCQkJfQorCisJCQkJLyoK KwkJCQkgKiBJZiB3ZSBzdGlsbCBkaWRuJ3QgZmluZCBhIHVzYWJsZSBib3VuZGFyeSBrZXksIHF1 aXQ7IGVsc2UKKwkJCQkgKiBzYXZlIHRoZSBib3VuZGFyeSBrZXkgcG9pbnRlciBpbiBzdGFydEtl eXMuCisJCQkJICovCisJCQkJaWYgKGNob3NlbiA9PSBOVUxMICYmIGN1cmF0dHIgPiBwcmVmaXgp CisJCQkJCWJyZWFrOworCQkJCXN0YXJ0S2V5c1trZXlzQ291bnQrK10gPSBjaG9zZW47CisKKwkJ CQkvKgorCQkJCSAqIEFkanVzdCBzdHJhdF90b3RhbCwgYW5kIHF1aXQgaWYgd2UgaGF2ZSBzdG9y ZWQgYSA+IG9yIDwKKwkJCQkgKiBrZXkuCisJCQkJICovCisJCQkJaWYgKGNob3NlbiAhPSBOVUxM ICYmIGN1cmF0dHIgPiBwcmVmaXgpCisJCQkJeworCQkJCQlzdHJhdCA9IGNob3Nlbi0+c2tfc3Ry YXRlZ3k7CisJCQkJCWlmIChzdHJhdCAhPSBCVEVxdWFsU3RyYXRlZ3lOdW1iZXIpCisJCQkJCXsK KwkJCQkJCSpzdHJhdFRvdGFsID0gc3RyYXQ7CisJCQkJCQlpZiAoc3RyYXQgPT0gQlRHcmVhdGVy U3RyYXRlZ3lOdW1iZXIgfHwKKwkJCQkJCQlzdHJhdCA9PSBCVExlc3NTdHJhdGVneU51bWJlcikK KwkJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJCX0KKworCQkJCS8qCisJCQkJICogRG9uZSBpZiB0 aGF0IHdhcyB0aGUgbGFzdCBhdHRyaWJ1dGUsIG9yIGlmIG5leHQga2V5IGlzIG5vdAorCQkJCSAq IGluIHNlcXVlbmNlIChpbXBseWluZyBubyBib3VuZGFyeSBrZXkgaXMgYXZhaWxhYmxlIGZvciB0 aGUKKwkJCQkgKiBuZXh0IGF0dHJpYnV0ZSkuCisJCQkJICovCisJCQkJaWYgKGkgPj0gbnVtYmVy T2ZLZXlzKQorCQkJCXsKKwkJCQkJY3VyYXR0cisrOworCQkJCQl3aGlsZShjdXJhdHRyIDw9IHBy ZWZpeCkKKwkJCQkJeworCQkJCQkJc3RhcnRLZXlzW2tleXNDb3VudCsrXSA9IE5VTEw7CisJCQkJ CQljdXJhdHRyKys7CisJCQkJCX0KKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWVsc2UgaWYgKGN1 ci0+c2tfYXR0bm8gIT0gY3VyYXR0ciArIDEpCisJCQkJeworCQkJCQljdXJhdHRyKys7CisJCQkJ CXdoaWxlKGN1cmF0dHIgPCBjdXItPnNrX2F0dG5vICYmIGN1cmF0dHIgPD0gcHJlZml4KQorCQkJ CQl7CisJCQkJCQlzdGFydEtleXNba2V5c0NvdW50KytdID0gTlVMTDsKKwkJCQkJCWN1cmF0dHIr KzsKKwkJCQkJfQorCQkJCQlpZiAoY3VyYXR0ciA+IHByZWZpeCAmJiBjdXJhdHRyICE9IGN1ci0+ c2tfYXR0bm8pCisJCQkJCQlicmVhazsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJY3Vy YXR0cisrOworCQkJCX0KKworCQkJCS8qCisJCQkJICogUmVzZXQgZm9yIG5leHQgYXR0ci4KKwkJ CQkgKi8KKwkJCQljaG9zZW4gPSBOVUxMOworCQkJCWltcGxpZXNOTiA9IE5VTEw7CisJCQl9CisK KwkJCS8qCisJCQkgKiBDYW4gd2UgdXNlIHRoaXMga2V5IGFzIGEgc3RhcnRpbmcgYm91bmRhcnkg Zm9yIHRoaXMgYXR0cj8KKwkJCSAqCisJCQkgKiBJZiBub3QsIGRvZXMgaXQgaW1wbHkgYSBOT1Qg TlVMTCBjb25zdHJhaW50PyAgKEJlY2F1c2UKKwkJCSAqIFNLX1NFQVJDSE5VTEwga2V5cyBhcmUg YWx3YXlzIGFzc2lnbmVkIEJURXF1YWxTdHJhdGVneU51bWJlciwKKwkJCSAqICphbnkqIGluZXF1 YWxpdHkga2V5IHdvcmtzIGZvciB0aGF0OyB3ZSBuZWVkIG5vdCB0ZXN0LikKKwkJCSAqLworCQkJ c3dpdGNoIChjdXItPnNrX3N0cmF0ZWd5KQorCQkJeworCQkJCWNhc2UgQlRMZXNzU3RyYXRlZ3lO dW1iZXI6CisJCQkJY2FzZSBCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJCQlpZiAoY2hv c2VuID09IE5VTEwpCisJCQkJCXsKKwkJCQkJCWlmIChTY2FuRGlyZWN0aW9uSXNCYWNrd2FyZChk aXIpKQorCQkJCQkJCWNob3NlbiA9IGN1cjsKKwkJCQkJCWVsc2UKKwkJCQkJCQlpbXBsaWVzTk4g PSBjdXI7CisJCQkJCX0KKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBCVEVxdWFsU3RyYXRlZ3lOdW1i ZXI6CisJCQkJCS8qIG92ZXJyaWRlIGFueSBub24tZXF1YWxpdHkgY2hvaWNlICovCisJCQkJCWNo b3NlbiA9IGN1cjsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBCVEdyZWF0ZXJFcXVhbFN0cmF0ZWd5 TnVtYmVyOgorCQkJCWNhc2UgQlRHcmVhdGVyU3RyYXRlZ3lOdW1iZXI6CisJCQkJCWlmIChjaG9z ZW4gPT0gTlVMTCkKKwkJCQkJeworCQkJCQkJaWYgKFNjYW5EaXJlY3Rpb25Jc0ZvcndhcmQoZGly KSkKKwkJCQkJCQljaG9zZW4gPSBjdXI7CisJCQkJCQllbHNlCisJCQkJCQkJaW1wbGllc05OID0g Y3VyOworCQkJCQl9CisJCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCXJldHVybiBrZXlzQ291 bnQ7Cit9CisKK3ZvaWQgcHJpbnRfaXR1cChCbG9ja051bWJlciBibGssIEluZGV4VHVwbGUgbGVm dCwgSW5kZXhUdXBsZSByaWdodCwgUmVsYXRpb24gcmVsLCBjaGFyICpleHRyYSkKK3sKKwlib29s CQlpc251bGxbSU5ERVhfTUFYX0tFWVNdOworCURhdHVtCQl2YWx1ZXNbSU5ERVhfTUFYX0tFWVNd OworCWNoYXIJICAgKmxrZXlfZGVzYyA9IE5VTEw7CisJY2hhcgkgICAqcmtleV9kZXNjOworCisJ LyogQXZvaWQgaW5maW5pdGUgcmVjdXJzaW9uIC0tIGRvbid0IGluc3RydW1lbnQgY2F0YWxvZyBp bmRleGVzICovCisJaWYgKCFJc0NhdGFsb2dSZWxhdGlvbihyZWwpKQorCXsKKwkJVHVwbGVEZXNj CWl0dXBkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOworCQlpbnQJCQluYXR0czsKKwkJaW50 CQkJaW5kbmtleWF0dHMgPSByZWwtPnJkX2luZGV4LT5pbmRua2V5YXR0czsKKworCQluYXR0cyA9 IEJUcmVlVHVwbGVHZXROQXR0cyhsZWZ0LCByZWwpOworCQlpdHVwZGVzYy0+bmF0dHMgPSBNaW4o aW5kbmtleWF0dHMsIG5hdHRzKTsKKwkJbWVtc2V0KCZpc251bGwsIDB4RkYsIHNpemVvZihpc251 bGwpKTsKKwkJaW5kZXhfZGVmb3JtX3R1cGxlKGxlZnQsIGl0dXBkZXNjLCB2YWx1ZXMsIGlzbnVs bCk7CisJCXJlbC0+cmRfaW5kZXgtPmluZG5rZXlhdHRzID0gbmF0dHM7CisKKwkJLyoKKwkJICog U2luY2UgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgc2hvdWxkIHBhc3Mgd2hlbiB0aGUgaW5zdHJ1bWVu dGF0aW9uCisJCSAqIHBhdGNoIGlzIGFwcGxpZWQsIGJlIHByZXBhcmVkIGZvciBCdWlsZEluZGV4 VmFsdWVEZXNjcmlwdGlvbigpIHRvCisJCSAqIHJldHVybiBOVUxMIGR1ZSB0byBzZWN1cml0eSBj b25zaWRlcmF0aW9ucy4KKwkJICovCisJCWxrZXlfZGVzYyA9IEJ1aWxkSW5kZXhWYWx1ZURlc2Ny aXB0aW9uKHJlbCwgdmFsdWVzLCBpc251bGwpOworCQlpZiAobGtleV9kZXNjICYmIHJpZ2h0KQor CQl7CisJCQkvKgorCQkJICogUmV2b2x0aW5nIGhhY2s6IG1vZGlmeSB0dXBsZSBkZXNjcmlwdG9y IHRvIGhhdmUgbnVtYmVyIG9mIGtleQorCQkJICogY29sdW1ucyBhY3R1YWxseSBwcmVzZW50IGlu IGNhbGxlcidzIHBpdm90IHR1cGxlcworCQkJICovCisJCQluYXR0cyA9IEJUcmVlVHVwbGVHZXRO QXR0cyhyaWdodCwgcmVsKTsKKwkJCWl0dXBkZXNjLT5uYXR0cyA9IE1pbihpbmRua2V5YXR0cywg bmF0dHMpOworCQkJbWVtc2V0KCZpc251bGwsIDB4RkYsIHNpemVvZihpc251bGwpKTsKKwkJCWlu ZGV4X2RlZm9ybV90dXBsZShyaWdodCwgaXR1cGRlc2MsIHZhbHVlcywgaXNudWxsKTsKKwkJCXJl bC0+cmRfaW5kZXgtPmluZG5rZXlhdHRzID0gbmF0dHM7CisJCQlya2V5X2Rlc2MgPSBCdWlsZElu ZGV4VmFsdWVEZXNjcmlwdGlvbihyZWwsIHZhbHVlcywgaXNudWxsKTsKKwkJCWVsb2coREVCVUcx LCAiJXMgYmxrICV1IHNrID4gJXMsIHNrIDw9ICVzICVzIiwKKwkJCQkgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsKSwgYmxrLCBsa2V5X2Rlc2MsIHJrZXlfZGVzYywKKwkJCQkgZXh0cmEpOwor CQkJcGZyZWUocmtleV9kZXNjKTsKKwkJfQorCQllbHNlCisJCQllbG9nKERFQlVHMSwgIiVzIGJs ayAldSBzayBjaGVjayAlcyAlcyIsCisJCQkJIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCks IGJsaywgbGtleV9kZXNjLCBleHRyYSk7CisKKwkJLyogQ2xlYW51cCAqLworCQlpdHVwZGVzYy0+ bmF0dHMgPSBJbmRleFJlbGF0aW9uR2V0TnVtYmVyT2ZBdHRyaWJ1dGVzKHJlbCk7CisJCXJlbC0+ cmRfaW5kZXgtPmluZG5rZXlhdHRzID0gaW5kbmtleWF0dHM7CisJCWlmIChsa2V5X2Rlc2MpCisJ CQlwZnJlZShsa2V5X2Rlc2MpOworCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9zcGdpc3Qvc3BndXRpbHMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndXRpbHMu YwppbmRleCA0OTI0YWUxYzU5Li5iNWRiNzZjZjQ4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3V0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9z cGd1dGlscy5jCkBAIC02OCw2ICs2OCw5IEBAIHNwZ2hhbmRsZXIoUEdfRlVOQ1RJT05fQVJHUykK IAlhbXJvdXRpbmUtPmFtYnVsa2RlbGV0ZSA9IHNwZ2J1bGtkZWxldGU7CiAJYW1yb3V0aW5lLT5h bXZhY3V1bWNsZWFudXAgPSBzcGd2YWN1dW1jbGVhbnVwOwogCWFtcm91dGluZS0+YW1jYW5yZXR1 cm4gPSBzcGdjYW5yZXR1cm47CisJYW1yb3V0aW5lLT5hbXNraXAgPSBOVUxMOworCWFtcm91dGlu ZS0+YW1iZWdpbnNraXBzY2FuID0gTlVMTDsKKwlhbXJvdXRpbmUtPmFtZ2V0c2tpcHR1cGxlID0g TlVMTDsKIAlhbXJvdXRpbmUtPmFtY29zdGVzdGltYXRlID0gc3BnY29zdGVzdGltYXRlOwogCWFt cm91dGluZS0+YW1vcHRpb25zID0gc3Bnb3B0aW9uczsKIAlhbXJvdXRpbmUtPmFtcHJvcGVydHkg PSBzcGdwcm9wZXJ0eTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4u YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCA1ODE0MWQ4MzkzLi42YTll MzRiNmQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0xNDMsNiArMTQzLDcgQEAgc3RhdGlj IHZvaWQgRXhwbGFpblhNTFRhZyhjb25zdCBjaGFyICp0YWduYW1lLCBpbnQgZmxhZ3MsIEV4cGxh aW5TdGF0ZSAqZXMpOwogc3RhdGljIHZvaWQgRXhwbGFpbkluZGVudFRleHQoRXhwbGFpblN0YXRl ICplcyk7CiBzdGF0aWMgdm9pZCBFeHBsYWluSlNPTkxpbmVFbmRpbmcoRXhwbGFpblN0YXRlICpl cyk7CiBzdGF0aWMgdm9pZCBFeHBsYWluWUFNTExpbmVTdGFydGluZyhFeHBsYWluU3RhdGUgKmVz KTsKK3N0YXRpYyB2b2lkIEV4cGxhaW5JbmRleFNraXBTY2FuS2V5cyhpbnQgc2tpcFByZWZpeFNp emUsIEV4cGxhaW5TdGF0ZSAqZXMpOwogc3RhdGljIHZvaWQgZXNjYXBlX3lhbWwoU3RyaW5nSW5m byBidWYsIGNvbnN0IGNoYXIgKnN0cik7CiAKIApAQCAtMTA1NCw2ICsxMDU1LDIyIEBAIEV4cGxh aW5QcmVTY2FuTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgQml0bWFwc2V0ICoqcmVsc191c2Vk KQogCXJldHVybiBwbGFuc3RhdGVfdHJlZV93YWxrZXIocGxhbnN0YXRlLCBFeHBsYWluUHJlU2Nh bk5vZGUsIHJlbHNfdXNlZCk7CiB9CiAKKy8qCisgKiBFeHBsYWluSW5kZXhTa2lwU2NhbktleXMg LQorICoJICBBcHBlbmQgaW5mb3JtYXRpb24gYWJvdXQgaW5kZXggc2tpcCBzY2FuIHRvIGVzLT5z dHIuCisgKgorICogQ2FuIGJlIHVzZWQgdG8gcHJpbnQgdGhlIHNraXAgcHJlZml4IHNpemUuCisg Ki8KK3N0YXRpYyB2b2lkCitFeHBsYWluSW5kZXhTa2lwU2NhbktleXMoaW50IHNraXBQcmVmaXhT aXplLCBFeHBsYWluU3RhdGUgKmVzKQoreworCWlmIChza2lwUHJlZml4U2l6ZSA+IDApCisJewor CQlpZiAoZXMtPmZvcm1hdCAhPSBFWFBMQUlOX0ZPUk1BVF9URVhUKQorCQkJRXhwbGFpblByb3Bl cnR5SW50ZWdlcigiRGlzdGluY3QgUHJlZml4IiwgTlVMTCwgc2tpcFByZWZpeFNpemUsIGVzKTsK Kwl9Cit9CisKIC8qCiAgKiBFeHBsYWluTm9kZSAtCiAgKgkgIEFwcGVuZHMgYSBkZXNjcmlwdGlv biBvZiBhIHBsYW4gdHJlZSB0byBlcy0+c3RyCkBAIC0xMzg4LDYgKzE0MDUsOSBAQCBFeHBsYWlu Tm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAqYW5jZXN0b3JzLAogCQkJewogCQkJCUlu ZGV4U2NhbiAgKmluZGV4c2NhbiA9IChJbmRleFNjYW4gKikgcGxhbjsKIAorCQkJCWlmIChpbmRl eHNjYW4tPmluZGV4ZGlzdGluY3QpCisJCQkJCUV4cGxhaW5JbmRleFNraXBTY2FuS2V5cyhpbmRl eHNjYW4tPmluZGV4c2tpcHByZWZpeHNpemUsIGVzKTsKKwogCQkJCUV4cGxhaW5JbmRleFNjYW5E ZXRhaWxzKGluZGV4c2Nhbi0+aW5kZXhpZCwKIAkJCQkJCQkJCQlpbmRleHNjYW4tPmluZGV4b3Jk ZXJkaXIsCiAJCQkJCQkJCQkJZXMpOwpAQCAtMTM5OCw2ICsxNDE4LDkgQEAgRXhwbGFpbk5vZGUo UGxhblN0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2VzdG9ycywKIAkJCXsKIAkJCQlJbmRleE9u bHlTY2FuICppbmRleG9ubHlzY2FuID0gKEluZGV4T25seVNjYW4gKikgcGxhbjsKIAorCQkJCWlm IChpbmRleG9ubHlzY2FuLT5pbmRleGRpc3RpbmN0KQorCQkJCQlFeHBsYWluSW5kZXhTa2lwU2Nh bktleXMoaW5kZXhvbmx5c2Nhbi0+aW5kZXhza2lwcHJlZml4c2l6ZSwgZXMpOworCiAJCQkJRXhw bGFpbkluZGV4U2NhbkRldGFpbHMoaW5kZXhvbmx5c2Nhbi0+aW5kZXhpZCwKIAkJCQkJCQkJCQlp bmRleG9ubHlzY2FuLT5pbmRleG9yZGVyZGlyLAogCQkJCQkJCQkJCWVzKTsKQEAgLTE2NTcsNiAr MTY4MCw4IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3Rv cnMsCiAJc3dpdGNoIChub2RlVGFnKHBsYW4pKQogCXsKIAkJY2FzZSBUX0luZGV4U2NhbjoKKwkJ CWlmICgoKEluZGV4U2NhbiAqKSBwbGFuKS0+aW5kZXhza2lwcHJlZml4c2l6ZSA+IDApCisJCQkJ RXhwbGFpblByb3BlcnR5VGV4dCgiU2tpcCBzY2FuIiwgKChJbmRleFNjYW4gKikgcGxhbiktPmlu ZGV4ZGlzdGluY3QgPyAiRGlzdGluY3Qgb25seSIgOiAiQWxsIiwgZXMpOwogCQkJc2hvd19zY2Fu X3F1YWwoKChJbmRleFNjYW4gKikgcGxhbiktPmluZGV4cXVhbG9yaWcsCiAJCQkJCQkgICAiSW5k ZXggQ29uZCIsIHBsYW5zdGF0ZSwgYW5jZXN0b3JzLCBlcyk7CiAJCQlpZiAoKChJbmRleFNjYW4g KikgcGxhbiktPmluZGV4cXVhbG9yaWcpCkBAIC0xNjcwLDYgKzE2OTUsOCBAQCBFeHBsYWluTm9k ZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAqYW5jZXN0b3JzLAogCQkJCQkJCQkJCSAgIHBs YW5zdGF0ZSwgZXMpOwogCQkJYnJlYWs7CiAJCWNhc2UgVF9JbmRleE9ubHlTY2FuOgorCQkJaWYg KCgoSW5kZXhPbmx5U2NhbiAqKSBwbGFuKS0+aW5kZXhza2lwcHJlZml4c2l6ZSA+IDApCisJCQkJ RXhwbGFpblByb3BlcnR5VGV4dCgiU2tpcCBzY2FuIiwgKChJbmRleE9ubHlTY2FuICopIHBsYW4p LT5pbmRleGRpc3RpbmN0ID8gIkRpc3RpbmN0IG9ubHkiIDogIkFsbCIsIGVzKTsKIAkJCXNob3df c2Nhbl9xdWFsKCgoSW5kZXhPbmx5U2NhbiAqKSBwbGFuKS0+aW5kZXhxdWFsLAogCQkJCQkJICAg IkluZGV4IENvbmQiLCBwbGFuc3RhdGUsIGFuY2VzdG9ycywgZXMpOwogCQkJaWYgKCgoSW5kZXhP bmx5U2NhbiAqKSBwbGFuKS0+aW5kZXhxdWFsKQpAQCAtMTY4Niw2ICsxNzEzLDggQEAgRXhwbGFp bk5vZGUoUGxhblN0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2VzdG9ycywKIAkJCQkJCQkJCSBw bGFuc3RhdGUtPmluc3RydW1lbnQtPm50dXBsZXMyLCAwLCBlcyk7CiAJCQlicmVhazsKIAkJY2Fz ZSBUX0JpdG1hcEluZGV4U2NhbjoKKwkJCWlmICgoKEJpdG1hcEluZGV4U2NhbiAqKSBwbGFuKS0+ aW5kZXhza2lwcHJlZml4c2l6ZSA+IDApCisJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiU2tpcCBz Y2FuIiwgIkFsbCIsIGVzKTsKIAkJCXNob3dfc2Nhbl9xdWFsKCgoQml0bWFwSW5kZXhTY2FuICop IHBsYW4pLT5pbmRleHF1YWxvcmlnLAogCQkJCQkJICAgIkluZGV4IENvbmQiLCBwbGFuc3RhdGUs IGFuY2VzdG9ycywgZXMpOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjU2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1NjYW4uYwppbmRleCA2 NDI4MDVkOTBjLi4wZTc3ZjI0MWY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjU2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNTY2FuLmMKQEAgLTEzMyw2 ICsxMzMsMTQgQEAgRXhlY1NjYW5GZXRjaChTY2FuU3RhdGUgKm5vZGUsCiAJcmV0dXJuICgqYWNj ZXNzTXRkKSAobm9kZSk7CiB9CiAKK1R1cGxlVGFibGVTbG90ICoKK0V4ZWNTY2FuKFNjYW5TdGF0 ZSAqbm9kZSwKKwkJIEV4ZWNTY2FuQWNjZXNzTXRkIGFjY2Vzc010ZCwJLyogZnVuY3Rpb24gcmV0 dXJuaW5nIGEgdHVwbGUgKi8KKwkJIEV4ZWNTY2FuUmVjaGVja010ZCByZWNoZWNrTXRkKQorewor CXJldHVybiBFeGVjU2NhbkV4dGVuZGVkKG5vZGUsIGFjY2Vzc010ZCwgcmVjaGVja010ZCwgTlVM TCk7Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlFeGVjU2NhbgogICoKQEAgLTE1NSw5ICsxNjMsMTAg QEAgRXhlY1NjYW5GZXRjaChTY2FuU3RhdGUgKm5vZGUsCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIFR1cGxl VGFibGVTbG90ICoKLUV4ZWNTY2FuKFNjYW5TdGF0ZSAqbm9kZSwKK0V4ZWNTY2FuRXh0ZW5kZWQo U2NhblN0YXRlICpub2RlLAogCQkgRXhlY1NjYW5BY2Nlc3NNdGQgYWNjZXNzTXRkLAkvKiBmdW5j dGlvbiByZXR1cm5pbmcgYSB0dXBsZSAqLwotCQkgRXhlY1NjYW5SZWNoZWNrTXRkIHJlY2hlY2tN dGQpCisJCSBFeGVjU2NhblJlY2hlY2tNdGQgcmVjaGVja010ZCwKKwkJIEV4ZWNTY2FuU2tpcE10 ZCBza2lwTXRkKQogewogCUV4cHJDb250ZXh0ICplY29udGV4dDsKIAlFeHByU3RhdGUgICpxdWFs OwpAQCAtMTcwLDYgKzE3OSwyMCBAQCBFeGVjU2NhbihTY2FuU3RhdGUgKm5vZGUsCiAJcHJvaklu Zm8gPSBub2RlLT5wcy5wc19Qcm9qSW5mbzsKIAllY29udGV4dCA9IG5vZGUtPnBzLnBzX0V4cHJD b250ZXh0OwogCisJaWYgKHNraXBNdGQgIT0gTlVMTCAmJiBub2RlLT5zc19GaXJzdFR1cGxlRW1p dHRlZCkKKwl7CisJCWJvb2wgY29udCA9IHNraXBNdGQobm9kZSk7CisJCWlmICghY29udCkKKwkJ eworCQkJbm9kZS0+c3NfRmlyc3RUdXBsZUVtaXR0ZWQgPSBmYWxzZTsKKwkJCXJldHVybiBFeGVj Q2xlYXJUdXBsZShub2RlLT5zc19TY2FuVHVwbGVTbG90KTsKKwkJfQorCX0KKwllbHNlCisJewor CQlub2RlLT5zc19GaXJzdFR1cGxlRW1pdHRlZCA9IHRydWU7CisJfQorCiAJLyogaW50ZXJydXB0 IGNoZWNrcyBhcmUgaW4gRXhlY1NjYW5GZXRjaCAqLwogCiAJLyoKQEAgLTE3OCw4ICsyMDEsMTMg QEAgRXhlY1NjYW4oU2NhblN0YXRlICpub2RlLAogCSAqLwogCWlmICghcXVhbCAmJiAhcHJvaklu Zm8pCiAJeworCQlUdXBsZVRhYmxlU2xvdCAqc2xvdDsKKwogCQlSZXNldEV4cHJDb250ZXh0KGVj b250ZXh0KTsKLQkJcmV0dXJuIEV4ZWNTY2FuRmV0Y2gobm9kZSwgYWNjZXNzTXRkLCByZWNoZWNr TXRkKTsKKwkJc2xvdCA9IEV4ZWNTY2FuRmV0Y2gobm9kZSwgYWNjZXNzTXRkLCByZWNoZWNrTXRk KTsKKwkJaWYgKFR1cElzTnVsbChzbG90KSkKKwkJCW5vZGUtPnNzX0ZpcnN0VHVwbGVFbWl0dGVk ID0gZmFsc2U7CisJCXJldHVybiBzbG90OwogCX0KIAogCS8qCkBAIC0yMDYsNiArMjM0LDcgQEAg RXhlY1NjYW4oU2NhblN0YXRlICpub2RlLAogCQkgKi8KIAkJaWYgKFR1cElzTnVsbChzbG90KSkK IAkJeworCQkJbm9kZS0+c3NfRmlyc3RUdXBsZUVtaXR0ZWQgPSBmYWxzZTsKIAkJCWlmIChwcm9q SW5mbykKIAkJCQlyZXR1cm4gRXhlY0NsZWFyVHVwbGUocHJvakluZm8tPnBpX3N0YXRlLnJlc3Vs dHNsb3QpOwogCQkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJp dG1hcEluZGV4c2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEluZGV4c2Nh bi5jCmluZGV4IDgxYTEyMDgxNTcuLjYwMmM2NGZjOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVCaXRtYXBJbmRleHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlQml0bWFwSW5kZXhzY2FuLmMKQEAgLTIyLDEzICsyMiwxNCBAQAogI2luY2x1ZGUgInBv c3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3Mv cmVsc2Nhbi5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNkZWJ1Zy5oIgogI2luY2x1ZGUgImV4 ZWN1dG9yL25vZGVCaXRtYXBJbmRleHNjYW4uaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlSW5k ZXhzY2FuLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgi CiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKIAotCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJRXhlY0Jp dG1hcEluZGV4U2NhbgogICoKQEAgLTMwOCwxMCArMzA5LDIwIEBAIEV4ZWNJbml0Qml0bWFwSW5k ZXhTY2FuKEJpdG1hcEluZGV4U2NhbiAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3Mp CiAJLyoKIAkgKiBJbml0aWFsaXplIHNjYW4gZGVzY3JpcHRvci4KIAkgKi8KLQlpbmRleHN0YXRl LT5iaXNzX1NjYW5EZXNjID0KLQkJaW5kZXhfYmVnaW5zY2FuX2JpdG1hcChpbmRleHN0YXRlLT5i aXNzX1JlbGF0aW9uRGVzYywKLQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJCQkJ CSAgIGluZGV4c3RhdGUtPmJpc3NfTnVtU2NhbktleXMpOworCWlmIChub2RlLT5pbmRleHNraXBw cmVmaXhzaXplID4gMCkKKwl7CisJCWluZGV4c3RhdGUtPmJpc3NfU2NhbkRlc2MgPQorCQkJaW5k ZXhfYmVnaW5zY2FuX2JpdG1hcF9za2lwKGluZGV4c3RhdGUtPmJpc3NfUmVsYXRpb25EZXNjLAor CQkJCWVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJaW5kZXhzdGF0ZS0+Ymlzc19OdW1TY2FuS2V5 cywKKwkJCQlNaW4oSW5kZXhSZWxhdGlvbkdldE51bWJlck9mS2V5QXR0cmlidXRlcyhpbmRleHN0 YXRlLT5iaXNzX1JlbGF0aW9uRGVzYyksCisJCQkJCW5vZGUtPmluZGV4c2tpcHByZWZpeHNpemUp KTsKKwl9CisJZWxzZQorCQlpbmRleHN0YXRlLT5iaXNzX1NjYW5EZXNjID0KKwkJCWluZGV4X2Jl Z2luc2Nhbl9iaXRtYXAoaW5kZXhzdGF0ZS0+Ymlzc19SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAg IGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCSAgIGluZGV4c3RhdGUtPmJpc3NfTnVtU2Nh bktleXMpOwogCiAJLyoKIAkgKiBJZiBubyBydW4tdGltZSBrZXlzIHRvIGNhbGN1bGF0ZSwgZ28g YWhlYWQgYW5kIHBhc3MgdGhlIHNjYW5rZXlzIHRvIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggNTYxN2FjMjllNy4uYWFkYmE0YTBmZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRl ICJzdG9yYWdlL3ByZWRpY2F0ZS5oIgorI2luY2x1ZGUgInN0b3JhZ2UvaXRlbXB0ci5oIgogI2lu Y2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAKQEAgLTQ5 LDYgKzUwLDM3IEBAIHN0YXRpYyBUdXBsZVRhYmxlU2xvdCAqSW5kZXhPbmx5TmV4dChJbmRleE9u bHlTY2FuU3RhdGUgKm5vZGUpOwogc3RhdGljIHZvaWQgU3RvcmVJbmRleFR1cGxlKFR1cGxlVGFi bGVTbG90ICpzbG90LCBJbmRleFR1cGxlIGl0dXAsCiAJCQkJCQkJVHVwbGVEZXNjIGl0dXBkZXNj KTsKIAorc3RhdGljIGJvb2wKK0luZGV4T25seVNraXAoSW5kZXhPbmx5U2NhblN0YXRlICpub2Rl KQoreworCUVTdGF0ZQkgICAqZXN0YXRlOworCVNjYW5EaXJlY3Rpb24gZGlyZWN0aW9uOworCUlu ZGV4U2NhbkRlc2Mgc2NhbmRlc2M7CisJSW5kZXhPbmx5U2NhbiAqaW5kZXhvbmx5c2NhbiA9IChJ bmRleE9ubHlTY2FuICopIG5vZGUtPnNzLnBzLnBsYW47CisKKwlpZiAoIW5vZGUtPmlvc3NfRGlz dGluY3QpCisJCXJldHVybiB0cnVlOworCisJLyoKKwkgKiBleHRyYWN0IG5lY2Vzc2FyeSBpbmZv cm1hdGlvbiBmcm9tIGluZGV4IHNjYW4gbm9kZQorCSAqLworCWVzdGF0ZSA9IG5vZGUtPnNzLnBz LnN0YXRlOworCWRpcmVjdGlvbiA9IGVzdGF0ZS0+ZXNfZGlyZWN0aW9uOworCS8qIGZsaXAgZGly ZWN0aW9uIGlmIHRoaXMgaXMgYW4gb3ZlcmFsbCBiYWNrd2FyZCBzY2FuICovCisJaWYgKFNjYW5E aXJlY3Rpb25Jc0JhY2t3YXJkKGluZGV4b25seXNjYW4tPmluZGV4b3JkZXJkaXIpKQorCXsKKwkJ aWYgKFNjYW5EaXJlY3Rpb25Jc0ZvcndhcmQoZGlyZWN0aW9uKSkKKwkJCWRpcmVjdGlvbiA9IEJh Y2t3YXJkU2NhbkRpcmVjdGlvbjsKKwkJZWxzZSBpZiAoU2NhbkRpcmVjdGlvbklzQmFja3dhcmQo ZGlyZWN0aW9uKSkKKwkJCWRpcmVjdGlvbiA9IEZvcndhcmRTY2FuRGlyZWN0aW9uOworCX0KKwlz Y2FuZGVzYyA9IG5vZGUtPmlvc3NfU2NhbkRlc2M7CisKKwlpZiAoIWluZGV4X3NraXAoc2NhbmRl c2MsIGRpcmVjdGlvbiwgaW5kZXhvbmx5c2Nhbi0+aW5kZXhvcmRlcmRpcikpCisJCXJldHVybiBm YWxzZTsKKworCXJldHVybiB0cnVlOworfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJSW5kZXhPbmx5TmV4 dApAQCAtNjUsNiArOTcsOCBAQCBJbmRleE9ubHlOZXh0KEluZGV4T25seVNjYW5TdGF0ZSAqbm9k ZSkKIAlJbmRleFNjYW5EZXNjIHNjYW5kZXNjOwogCVR1cGxlVGFibGVTbG90ICpzbG90OwogCUl0 ZW1Qb2ludGVyIHRpZDsKKwlJdGVtUG9pbnRlckRhdGEgc3RhcnRUaWQ7CisJSW5kZXhPbmx5U2Nh biAqaW5kZXhvbmx5c2NhbiA9IChJbmRleE9ubHlTY2FuICopIG5vZGUtPnNzLnBzLnBsYW47CiAK IAkvKgogCSAqIGV4dHJhY3QgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZyb20gaW5kZXggc2NhbiBu b2RlCkBAIC03Miw3ICsxMDYsNyBAQCBJbmRleE9ubHlOZXh0KEluZGV4T25seVNjYW5TdGF0ZSAq bm9kZSkKIAllc3RhdGUgPSBub2RlLT5zcy5wcy5zdGF0ZTsKIAlkaXJlY3Rpb24gPSBlc3RhdGUt PmVzX2RpcmVjdGlvbjsKIAkvKiBmbGlwIGRpcmVjdGlvbiBpZiB0aGlzIGlzIGFuIG92ZXJhbGwg YmFja3dhcmQgc2NhbiAqLwotCWlmIChTY2FuRGlyZWN0aW9uSXNCYWNrd2FyZCgoKEluZGV4T25s eVNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPmluZGV4b3JkZXJkaXIpKQorCWlmIChTY2FuRGly ZWN0aW9uSXNCYWNrd2FyZChpbmRleG9ubHlzY2FuLT5pbmRleG9yZGVyZGlyKSkKIAl7CiAJCWlm IChTY2FuRGlyZWN0aW9uSXNGb3J3YXJkKGRpcmVjdGlvbikpCiAJCQlkaXJlY3Rpb24gPSBCYWNr d2FyZFNjYW5EaXJlY3Rpb247CkBAIC05MCwxMSArMTI0LDE5IEBAIEluZGV4T25seU5leHQoSW5k ZXhPbmx5U2NhblN0YXRlICpub2RlKQogCQkgKiBzZXJpYWxseSBleGVjdXRpbmcgYW4gaW5kZXgg b25seSBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUKIAkJICogcGFyYWxsZWwuCiAJCSAqLwot CQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24s Ci0JCQkJCQkJCSAgIG5vZGUtPmlvc3NfUmVsYXRpb25EZXNjLAotCQkJCQkJCQkgICBlc3RhdGUt PmVzX3NuYXBzaG90LAotCQkJCQkJCQkgICBub2RlLT5pb3NzX051bVNjYW5LZXlzLAotCQkJCQkJ CQkgICBub2RlLT5pb3NzX051bU9yZGVyQnlLZXlzKTsKKwkJaWYgKG5vZGUtPmlvc3NfU2tpcFBy ZWZpeFNpemUgPiAwKQorCQkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW5fc2tpcChub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sCisJCQkJCQkJCQkgICBub2RlLT5pb3NzX1JlbGF0aW9uRGVz YywKKwkJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCQkgICBub2RlLT5p b3NzX051bVNjYW5LZXlzLAorCQkJCQkJCQkJICAgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywK KwkJCQkJCQkJCSAgIE1pbihJbmRleFJlbGF0aW9uR2V0TnVtYmVyT2ZLZXlBdHRyaWJ1dGVzKG5v ZGUtPmlvc3NfUmVsYXRpb25EZXNjKSwgbm9kZS0+aW9zc19Ta2lwUHJlZml4U2l6ZSkpOworCQll bHNlCisJCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVs YXRpb24sCisJCQkJCQkJCQkgICBub2RlLT5pb3NzX1JlbGF0aW9uRGVzYywKKwkJCQkJCQkJCSAg IGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCQkgICBub2RlLT5pb3NzX051bVNjYW5LZXlz LAorCQkJCQkJCQkJICAgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cyk7CiAKIAkJbm9kZS0+aW9z c19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBAIC0xMTQsMTEgKzE1NiwxNiBAQCBJbmRleE9ubHlO ZXh0KEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSkKIAkJCQkJCSBub2RlLT5pb3NzX09yZGVyQnlL ZXlzLAogCQkJCQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMpOwogCX0KKwllbHNlCisJewor CQlJdGVtUG9pbnRlckNvcHkoJnNjYW5kZXNjLT54c19oZWFwdGlkLCAmc3RhcnRUaWQpOworCX0K IAogCS8qCiAJICogT0ssIG5vdyB0aGF0IHdlIGhhdmUgd2hhdCB3ZSBuZWVkLCBmZXRjaCB0aGUg bmV4dCB0dXBsZS4KIAkgKi8KLQl3aGlsZSAoKHRpZCA9IGluZGV4X2dldG5leHRfdGlkKHNjYW5k ZXNjLCBkaXJlY3Rpb24pKSAhPSBOVUxMKQorCXdoaWxlICgodGlkID0gbm9kZS0+aW9zc19Ta2lw UHJlZml4U2l6ZSA+IDAgPyBpbmRleF9nZXRuZXh0X3RpZF9za2lwKHNjYW5kZXNjLCBkaXJlY3Rp b24sIG5vZGUtPmlvc3NfRGlzdGluY3QgPyBpbmRleG9ubHlzY2FuLT5pbmRleG9yZGVyZGlyIDog ZGlyZWN0aW9uKSA6CisJCQlpbmRleF9nZXRuZXh0X3RpZChzY2FuZGVzYywgZGlyZWN0aW9uKSkg IT0gTlVMTCkKIAl7CiAJCWJvb2wJCXR1cGxlX2Zyb21faGVhcCA9IGZhbHNlOwogCkBAIC0zMTQs OSArMzYxLDEwIEBAIEV4ZWNJbmRleE9ubHlTY2FuKFBsYW5TdGF0ZSAqcHN0YXRlKQogCWlmIChu b2RlLT5pb3NzX051bVJ1bnRpbWVLZXlzICE9IDAgJiYgIW5vZGUtPmlvc3NfUnVudGltZUtleXNS ZWFkeSkKIAkJRXhlY1JlU2NhbigoUGxhblN0YXRlICopIG5vZGUpOwogCi0JcmV0dXJuIEV4ZWNT Y2FuKCZub2RlLT5zcywKKwlyZXR1cm4gRXhlY1NjYW5FeHRlbmRlZCgmbm9kZS0+c3MsCiAJCQkJ CShFeGVjU2NhbkFjY2Vzc010ZCkgSW5kZXhPbmx5TmV4dCwKLQkJCQkJKEV4ZWNTY2FuUmVjaGVj a010ZCkgSW5kZXhPbmx5UmVjaGVjayk7CisJCQkJCShFeGVjU2NhblJlY2hlY2tNdGQpIEluZGV4 T25seVJlY2hlY2ssCisJCQkJCW5vZGUtPmlvc3NfRGlzdGluY3QgPyAoRXhlY1NjYW5Ta2lwTXRk KSBJbmRleE9ubHlTa2lwIDogTlVMTCk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTUwMyw3ICs1NTEs MTAgQEAgRXhlY0luaXRJbmRleE9ubHlTY2FuKEluZGV4T25seVNjYW4gKm5vZGUsIEVTdGF0ZSAq ZXN0YXRlLCBpbnQgZWZsYWdzKQogCWluZGV4c3RhdGUgPSBtYWtlTm9kZShJbmRleE9ubHlTY2Fu U3RhdGUpOwogCWluZGV4c3RhdGUtPnNzLnBzLnBsYW4gPSAoUGxhbiAqKSBub2RlOwogCWluZGV4 c3RhdGUtPnNzLnBzLnN0YXRlID0gZXN0YXRlOworCWluZGV4c3RhdGUtPnNzLnNzX0ZpcnN0VHVw bGVFbWl0dGVkID0gZmFsc2U7CiAJaW5kZXhzdGF0ZS0+c3MucHMuRXhlY1Byb2NOb2RlID0gRXhl Y0luZGV4T25seVNjYW47CisJaW5kZXhzdGF0ZS0+aW9zc19Ta2lwUHJlZml4U2l6ZSA9IG5vZGUt PmluZGV4c2tpcHByZWZpeHNpemU7CisJaW5kZXhzdGF0ZS0+aW9zc19EaXN0aW5jdCA9IG5vZGUt PmluZGV4ZGlzdGluY3Q7CiAKIAkvKgogCSAqIE1pc2NlbGxhbmVvdXMgaW5pdGlhbGl6YXRpb24K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwppbmRleCBkMGE5NmEzOGUwLi5kYjNiNWEz Mzc5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC02OSw2ICs2OSwzNyBA QCBzdGF0aWMgdm9pZCByZW9yZGVycXVldWVfcHVzaChJbmRleFNjYW5TdGF0ZSAqbm9kZSwgVHVw bGVUYWJsZVNsb3QgKnNsb3QsCiAJCQkJCQkJICBEYXR1bSAqb3JkZXJieXZhbHMsIGJvb2wgKm9y ZGVyYnludWxscyk7CiBzdGF0aWMgSGVhcFR1cGxlIHJlb3JkZXJxdWV1ZV9wb3AoSW5kZXhTY2Fu U3RhdGUgKm5vZGUpOwogCitzdGF0aWMgYm9vbAorSW5kZXhTa2lwKEluZGV4U2NhblN0YXRlICpu b2RlKQoreworCUVTdGF0ZQkgICAqZXN0YXRlOworCVNjYW5EaXJlY3Rpb24gZGlyZWN0aW9uOwor CUluZGV4U2NhbkRlc2Mgc2NhbmRlc2M7CisJSW5kZXhTY2FuICppbmRleHNjYW4gPSAoSW5kZXhT Y2FuICopIG5vZGUtPnNzLnBzLnBsYW47CisKKwlpZiAoIW5vZGUtPmlzc19EaXN0aW5jdCkKKwkJ cmV0dXJuIHRydWU7CisKKwkvKgorCSAqIGV4dHJhY3QgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZy b20gaW5kZXggc2NhbiBub2RlCisJICovCisJZXN0YXRlID0gbm9kZS0+c3MucHMuc3RhdGU7CisJ ZGlyZWN0aW9uID0gZXN0YXRlLT5lc19kaXJlY3Rpb247CisJLyogZmxpcCBkaXJlY3Rpb24gaWYg dGhpcyBpcyBhbiBvdmVyYWxsIGJhY2t3YXJkIHNjYW4gKi8KKwlpZiAoU2NhbkRpcmVjdGlvbklz QmFja3dhcmQoaW5kZXhzY2FuLT5pbmRleG9yZGVyZGlyKSkKKwl7CisJCWlmIChTY2FuRGlyZWN0 aW9uSXNGb3J3YXJkKGRpcmVjdGlvbikpCisJCQlkaXJlY3Rpb24gPSBCYWNrd2FyZFNjYW5EaXJl Y3Rpb247CisJCWVsc2UgaWYgKFNjYW5EaXJlY3Rpb25Jc0JhY2t3YXJkKGRpcmVjdGlvbikpCisJ CQlkaXJlY3Rpb24gPSBGb3J3YXJkU2NhbkRpcmVjdGlvbjsKKwl9CisJc2NhbmRlc2MgPSBub2Rl LT5pc3NfU2NhbkRlc2M7CisKKwlpZiAoIWluZGV4X3NraXAoc2NhbmRlc2MsIGRpcmVjdGlvbiwg aW5kZXhzY2FuLT5pbmRleG9yZGVyZGlyKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRy dWU7Cit9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlJbmRleE5leHQKQEAgLTg1LDYgKzExNiw3IEBAIElu ZGV4TmV4dChJbmRleFNjYW5TdGF0ZSAqbm9kZSkKIAlTY2FuRGlyZWN0aW9uIGRpcmVjdGlvbjsK IAlJbmRleFNjYW5EZXNjIHNjYW5kZXNjOwogCVR1cGxlVGFibGVTbG90ICpzbG90OworCUluZGV4 U2NhbiAqaW5kZXhzY2FuID0gKEluZGV4U2NhbiAqKSBub2RlLT5zcy5wcy5wbGFuOwogCiAJLyoK IAkgKiBleHRyYWN0IG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmcm9tIGluZGV4IHNjYW4gbm9kZQpA QCAtOTIsNyArMTI0LDcgQEAgSW5kZXhOZXh0KEluZGV4U2NhblN0YXRlICpub2RlKQogCWVzdGF0 ZSA9IG5vZGUtPnNzLnBzLnN0YXRlOwogCWRpcmVjdGlvbiA9IGVzdGF0ZS0+ZXNfZGlyZWN0aW9u OwogCS8qIGZsaXAgZGlyZWN0aW9uIGlmIHRoaXMgaXMgYW4gb3ZlcmFsbCBiYWNrd2FyZCBzY2Fu ICovCi0JaWYgKFNjYW5EaXJlY3Rpb25Jc0JhY2t3YXJkKCgoSW5kZXhTY2FuICopIG5vZGUtPnNz LnBzLnBsYW4pLT5pbmRleG9yZGVyZGlyKSkKKwlpZiAoU2NhbkRpcmVjdGlvbklzQmFja3dhcmQo aW5kZXhzY2FuLT5pbmRleG9yZGVyZGlyKSkKIAl7CiAJCWlmIChTY2FuRGlyZWN0aW9uSXNGb3J3 YXJkKGRpcmVjdGlvbikpCiAJCQlkaXJlY3Rpb24gPSBCYWNrd2FyZFNjYW5EaXJlY3Rpb247CkBA IC0xMDksMTQgKzE0MSwyNSBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCSAq IFdlIHJlYWNoIGhlcmUgaWYgdGhlIGluZGV4IHNjYW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3 ZSdyZQogCQkgKiBzZXJpYWxseSBleGVjdXRpbmcgYW4gaW5kZXggc2NhbiB0aGF0IHdhcyBwbGFu bmVkIHRvIGJlIHBhcmFsbGVsLgogCQkgKi8KLQkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4o bm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkgICBub2RlLT5pc3NfUmVsYXRp b25EZXNjLAotCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJCQkJCQkgICBub2Rl LT5pc3NfTnVtU2NhbktleXMsCi0JCQkJCQkJCSAgIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cyk7 CisJCWlmIChub2RlLT5pc3NfU2tpcFByZWZpeFNpemUgPiAwKQorCQkJc2NhbmRlc2MgPSBpbmRl eF9iZWdpbnNjYW5fc2tpcChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCisJCQkJCQkJCQkg ICBub2RlLT5pc3NfUmVsYXRpb25EZXNjLAorCQkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hv dCwKKwkJCQkJCQkJCSAgIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKKwkJCQkJCQkJCSAgIG5vZGUt Pmlzc19OdW1PcmRlckJ5S2V5cywKKwkJCQkJCQkJCSAgIE1pbihJbmRleFJlbGF0aW9uR2V0TnVt YmVyT2ZLZXlBdHRyaWJ1dGVzKG5vZGUtPmlzc19SZWxhdGlvbkRlc2MpLCBub2RlLT5pc3NfU2tp cFByZWZpeFNpemUpKTsKKwkJZWxzZQorCQkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9k ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJCQkJICAgbm9kZS0+aXNzX1JlbGF0aW9u RGVzYywKKwkJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCQkgICBub2Rl LT5pc3NfTnVtU2NhbktleXMsCisJCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMp OwogCiAJCW5vZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCisJCS8qIEluZGV4IHNraXAg c2NhbiBhc3N1bWVzIHhzX3dhbnRfaXR1cCwgc28gc2V0IGl0IHRvIHRydWUgaWYgd2Ugc2tpcCBv dmVyIGRpc3RpbmN0ICovCisJCW5vZGUtPmlzc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gaW5k ZXhzY2FuLT5pbmRleGRpc3RpbmN0OworCiAJCS8qCiAJCSAqIElmIG5vIHJ1bi10aW1lIGtleXMg dG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVhZCBhbmQKIAkJICogcGFzcyB0 aGUgc2NhbmtleXMgdG8gdGhlIGluZGV4IEFNLgpAQCAtMTMwLDcgKzE3Myw5IEBAIEluZGV4TmV4 dChJbmRleFNjYW5TdGF0ZSAqbm9kZSkKIAkvKgogCSAqIG9rLCBub3cgdGhhdCB3ZSBoYXZlIHdo YXQgd2UgbmVlZCwgZmV0Y2ggdGhlIG5leHQgdHVwbGUuCiAJICovCi0Jd2hpbGUgKGluZGV4X2dl dG5leHRfc2xvdChzY2FuZGVzYywgZGlyZWN0aW9uLCBzbG90KSkKKwl3aGlsZSAobm9kZS0+aXNz X1NraXBQcmVmaXhTaXplID4gMCA/CisJCSAgIGluZGV4X2dldG5leHRfc2xvdF9za2lwKHNjYW5k ZXNjLCBkaXJlY3Rpb24sIG5vZGUtPmlzc19EaXN0aW5jdCA/IGluZGV4c2Nhbi0+aW5kZXhvcmRl cmRpciA6IGRpcmVjdGlvbiwgc2xvdCkgOgorCQkgICBpbmRleF9nZXRuZXh0X3Nsb3Qoc2NhbmRl c2MsIGRpcmVjdGlvbiwgc2xvdCkpCiAJewogCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOwogCkBA IC01MzAsMTMgKzU3NSwxNSBAQCBFeGVjSW5kZXhTY2FuKFBsYW5TdGF0ZSAqcHN0YXRlKQogCQlF eGVjUmVTY2FuKChQbGFuU3RhdGUgKikgbm9kZSk7CiAKIAlpZiAobm9kZS0+aXNzX051bU9yZGVy QnlLZXlzID4gMCkKLQkJcmV0dXJuIEV4ZWNTY2FuKCZub2RlLT5zcywKKwkJcmV0dXJuIEV4ZWNT Y2FuRXh0ZW5kZWQoJm5vZGUtPnNzLAogCQkJCQkJKEV4ZWNTY2FuQWNjZXNzTXRkKSBJbmRleE5l eHRXaXRoUmVvcmRlciwKLQkJCQkJCShFeGVjU2NhblJlY2hlY2tNdGQpIEluZGV4UmVjaGVjayk7 CisJCQkJCQkoRXhlY1NjYW5SZWNoZWNrTXRkKSBJbmRleFJlY2hlY2ssCisJCQkJCQlub2RlLT5p c3NfRGlzdGluY3QgPyAoRXhlY1NjYW5Ta2lwTXRkKSBJbmRleFNraXAgOiBOVUxMKTsKIAllbHNl Ci0JCXJldHVybiBFeGVjU2Nhbigmbm9kZS0+c3MsCisJCXJldHVybiBFeGVjU2NhbkV4dGVuZGVk KCZub2RlLT5zcywKIAkJCQkJCShFeGVjU2NhbkFjY2Vzc010ZCkgSW5kZXhOZXh0LAotCQkJCQkJ KEV4ZWNTY2FuUmVjaGVja010ZCkgSW5kZXhSZWNoZWNrKTsKKwkJCQkJCShFeGVjU2NhblJlY2hl Y2tNdGQpIEluZGV4UmVjaGVjaywKKwkJCQkJCW5vZGUtPmlzc19EaXN0aW5jdCA/IChFeGVjU2Nh blNraXBNdGQpIEluZGV4U2tpcCA6IE5VTEwpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05MTAsNiAr OTU3LDggQEAgRXhlY0luaXRJbmRleFNjYW4oSW5kZXhTY2FuICpub2RlLCBFU3RhdGUgKmVzdGF0 ZSwgaW50IGVmbGFncykKIAlpbmRleHN0YXRlLT5zcy5wcy5wbGFuID0gKFBsYW4gKikgbm9kZTsK IAlpbmRleHN0YXRlLT5zcy5wcy5zdGF0ZSA9IGVzdGF0ZTsKIAlpbmRleHN0YXRlLT5zcy5wcy5F eGVjUHJvY05vZGUgPSBFeGVjSW5kZXhTY2FuOworCWluZGV4c3RhdGUtPmlzc19Ta2lwUHJlZml4 U2l6ZSA9IG5vZGUtPmluZGV4c2tpcHByZWZpeHNpemU7CisJaW5kZXhzdGF0ZS0+aXNzX0Rpc3Rp bmN0ID0gbm9kZS0+aW5kZXhkaXN0aW5jdDsKIAogCS8qCiAJICogTWlzY2VsbGFuZW91cyBpbml0 aWFsaXphdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMgYi9z cmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYwppbmRleCAxYTcwNjI1ZGM4Li4yMWFmODA0YjRm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYwpAQCAtNDkzLDYgKzQ5Myw4IEBAIF9jb3B5SW5kZXhTY2Fu KGNvbnN0IEluZGV4U2NhbiAqZnJvbSkKIAlDT1BZX05PREVfRklFTEQoaW5kZXhvcmRlcmJ5b3Jp Zyk7CiAJQ09QWV9OT0RFX0ZJRUxEKGluZGV4b3JkZXJieW9wcyk7CiAJQ09QWV9TQ0FMQVJfRklF TEQoaW5kZXhvcmRlcmRpcik7CisJQ09QWV9TQ0FMQVJfRklFTEQoaW5kZXhza2lwcHJlZml4c2l6 ZSk7CisJQ09QWV9TQ0FMQVJfRklFTEQoaW5kZXhkaXN0aW5jdCk7CiAKIAlyZXR1cm4gbmV3bm9k ZTsKIH0KQEAgLTUxOCw2ICs1MjAsOCBAQCBfY29weUluZGV4T25seVNjYW4oY29uc3QgSW5kZXhP bmx5U2NhbiAqZnJvbSkKIAlDT1BZX05PREVfRklFTEQoaW5kZXhvcmRlcmJ5KTsKIAlDT1BZX05P REVfRklFTEQoaW5kZXh0bGlzdCk7CiAJQ09QWV9TQ0FMQVJfRklFTEQoaW5kZXhvcmRlcmRpcik7 CisJQ09QWV9TQ0FMQVJfRklFTEQoaW5kZXhza2lwcHJlZml4c2l6ZSk7CisJQ09QWV9TQ0FMQVJf RklFTEQoaW5kZXhkaXN0aW5jdCk7CiAKIAlyZXR1cm4gbmV3bm9kZTsKIH0KQEAgLTU0Miw2ICs1 NDYsNyBAQCBfY29weUJpdG1hcEluZGV4U2Nhbihjb25zdCBCaXRtYXBJbmRleFNjYW4gKmZyb20p CiAJQ09QWV9TQ0FMQVJfRklFTEQoaXNzaGFyZWQpOwogCUNPUFlfTk9ERV9GSUVMRChpbmRleHF1 YWwpOwogCUNPUFlfTk9ERV9GSUVMRChpbmRleHF1YWxvcmlnKTsKKwlDT1BZX1NDQUxBUl9GSUVM RChpbmRleHNraXBwcmVmaXhzaXplKTsKIAogCXJldHVybiBuZXdub2RlOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1 bmNzLmMKaW5kZXggODJmY2FiZDllZS4uNTAyOTdmYjlkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvbm9kZXMvb3V0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCkBA IC01NjIsNiArNTYyLDggQEAgX291dEluZGV4U2NhbihTdHJpbmdJbmZvIHN0ciwgY29uc3QgSW5k ZXhTY2FuICpub2RlKQogCVdSSVRFX05PREVfRklFTEQoaW5kZXhvcmRlcmJ5b3JpZyk7CiAJV1JJ VEVfTk9ERV9GSUVMRChpbmRleG9yZGVyYnlvcHMpOwogCVdSSVRFX0VOVU1fRklFTEQoaW5kZXhv cmRlcmRpciwgU2NhbkRpcmVjdGlvbik7CisJV1JJVEVfSU5UX0ZJRUxEKGluZGV4c2tpcHByZWZp eHNpemUpOworCVdSSVRFX0lOVF9GSUVMRChpbmRleGRpc3RpbmN0KTsKIH0KIAogc3RhdGljIHZv aWQKQEAgLTU3Niw2ICs1NzgsOSBAQCBfb3V0SW5kZXhPbmx5U2NhbihTdHJpbmdJbmZvIHN0ciwg Y29uc3QgSW5kZXhPbmx5U2NhbiAqbm9kZSkKIAlXUklURV9OT0RFX0ZJRUxEKGluZGV4b3JkZXJi eSk7CiAJV1JJVEVfTk9ERV9GSUVMRChpbmRleHRsaXN0KTsKIAlXUklURV9FTlVNX0ZJRUxEKGlu ZGV4b3JkZXJkaXIsIFNjYW5EaXJlY3Rpb24pOworCVdSSVRFX0lOVF9GSUVMRChpbmRleHNraXBw cmVmaXhzaXplKTsKKwlXUklURV9JTlRfRklFTEQoaW5kZXhkaXN0aW5jdCk7CisKIH0KIAogc3Rh dGljIHZvaWQKQEAgLTU4OSw2ICs1OTQsNyBAQCBfb3V0Qml0bWFwSW5kZXhTY2FuKFN0cmluZ0lu Zm8gc3RyLCBjb25zdCBCaXRtYXBJbmRleFNjYW4gKm5vZGUpCiAJV1JJVEVfQk9PTF9GSUVMRChp c3NoYXJlZCk7CiAJV1JJVEVfTk9ERV9GSUVMRChpbmRleHF1YWwpOwogCVdSSVRFX05PREVfRklF TEQoaW5kZXhxdWFsb3JpZyk7CisJV1JJVEVfSU5UX0ZJRUxEKGluZGV4c2tpcHByZWZpeHNpemUp OwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1 bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwppbmRleCBkNWIyM2EzNDc5Li4z MTI5YmViOWQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwpAQCAtMTgyMCw2ICsxODIwLDggQEAgX3Jl YWRJbmRleFNjYW4odm9pZCkKIAlSRUFEX05PREVfRklFTEQoaW5kZXhvcmRlcmJ5b3JpZyk7CiAJ UkVBRF9OT0RFX0ZJRUxEKGluZGV4b3JkZXJieW9wcyk7CiAJUkVBRF9FTlVNX0ZJRUxEKGluZGV4 b3JkZXJkaXIsIFNjYW5EaXJlY3Rpb24pOworCVJFQURfSU5UX0ZJRUxEKGluZGV4c2tpcHByZWZp eHNpemUpOworCVJFQURfSU5UX0ZJRUxEKGluZGV4ZGlzdGluY3QpOwogCiAJUkVBRF9ET05FKCk7 CiB9CkBAIC0xODM5LDYgKzE4NDEsOCBAQCBfcmVhZEluZGV4T25seVNjYW4odm9pZCkKIAlSRUFE X05PREVfRklFTEQoaW5kZXhvcmRlcmJ5KTsKIAlSRUFEX05PREVfRklFTEQoaW5kZXh0bGlzdCk7 CiAJUkVBRF9FTlVNX0ZJRUxEKGluZGV4b3JkZXJkaXIsIFNjYW5EaXJlY3Rpb24pOworCVJFQURf SU5UX0ZJRUxEKGluZGV4c2tpcHByZWZpeHNpemUpOworCVJFQURfSU5UX0ZJRUxEKGluZGV4ZGlz dGluY3QpOwogCiAJUkVBRF9ET05FKCk7CiB9CkBAIC0xODU3LDYgKzE4NjEsNyBAQCBfcmVhZEJp dG1hcEluZGV4U2Nhbih2b2lkKQogCVJFQURfQk9PTF9GSUVMRChpc3NoYXJlZCk7CiAJUkVBRF9O T0RFX0ZJRUxEKGluZGV4cXVhbCk7CiAJUkVBRF9OT0RFX0ZJRUxEKGluZGV4cXVhbG9yaWcpOwor CVJFQURfSU5UX0ZJRUxEKGluZGV4c2tpcHByZWZpeHNpemUpOwogCiAJUkVBRF9ET05FKCk7CiB9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5jIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY29zdHNpemUuYwppbmRleCA4Y2Y2OTRiNjFkLi45MTI2 Mjk2YmQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2Nvc3RzaXplLmMKQEAgLTEyNSw2ICsx MjUsNyBAQCBpbnQJCQltYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKIGJvb2wJ CWVuYWJsZV9zZXFzY2FuID0gdHJ1ZTsKIGJvb2wJCWVuYWJsZV9pbmRleHNjYW4gPSB0cnVlOwog Ym9vbAkJZW5hYmxlX2luZGV4b25seXNjYW4gPSB0cnVlOworYm9vbAkJZW5hYmxlX2luZGV4c2tp cHNjYW4gPSB0cnVlOwogYm9vbAkJZW5hYmxlX2JpdG1hcHNjYW4gPSB0cnVlOwogYm9vbAkJZW5h YmxlX3RpZHNjYW4gPSB0cnVlOwogYm9vbAkJZW5hYmxlX3NvcnQgPSB0cnVlOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCmluZGV4IGZjMjU5MDhkYzYuLjk0ODQxNGJkODAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTE3NSwxNSArMTc1 LDIwIEBAIHN0YXRpYyBJbmRleFNjYW4gKm1ha2VfaW5kZXhzY2FuKExpc3QgKnFwdGxpc3QsIExp c3QgKnFwcXVhbCwgSW5kZXggc2NhbnJlbGlkLAogCQkJCQkJCQkgT2lkIGluZGV4aWQsIExpc3Qg KmluZGV4cXVhbCwgTGlzdCAqaW5kZXhxdWFsb3JpZywKIAkJCQkJCQkJIExpc3QgKmluZGV4b3Jk ZXJieSwgTGlzdCAqaW5kZXhvcmRlcmJ5b3JpZywKIAkJCQkJCQkJIExpc3QgKmluZGV4b3JkZXJi eW9wcywKLQkJCQkJCQkJIFNjYW5EaXJlY3Rpb24gaW5kZXhzY2FuZGlyKTsKKwkJCQkJCQkJIFNj YW5EaXJlY3Rpb24gaW5kZXhzY2FuZGlyLAorCQkJCQkJCQkgaW50IHNraXBwcmVmaXgsCisJCQkJ CQkJCSBib29sIGRpc3RpbmN0KTsKIHN0YXRpYyBJbmRleE9ubHlTY2FuICptYWtlX2luZGV4b25s eXNjYW4oTGlzdCAqcXB0bGlzdCwgTGlzdCAqcXBxdWFsLAogCQkJCQkJCQkJCSBJbmRleCBzY2Fu cmVsaWQsIE9pZCBpbmRleGlkLAogCQkJCQkJCQkJCSBMaXN0ICppbmRleHF1YWwsIExpc3QgKmlu ZGV4b3JkZXJieSwKIAkJCQkJCQkJCQkgTGlzdCAqaW5kZXh0bGlzdCwKLQkJCQkJCQkJCQkgU2Nh bkRpcmVjdGlvbiBpbmRleHNjYW5kaXIpOworCQkJCQkJCQkJCSBTY2FuRGlyZWN0aW9uIGluZGV4 c2NhbmRpciwKKwkJCQkJCQkJCQkgaW50IHNraXBwcmVmaXgsCisJCQkJCQkJCQkJIGJvb2wgZGlz dGluY3QpOwogc3RhdGljIEJpdG1hcEluZGV4U2NhbiAqbWFrZV9iaXRtYXBfaW5kZXhzY2FuKElu ZGV4IHNjYW5yZWxpZCwgT2lkIGluZGV4aWQsCiAJCQkJCQkJCQkJCSAgTGlzdCAqaW5kZXhxdWFs LAotCQkJCQkJCQkJCQkgIExpc3QgKmluZGV4cXVhbG9yaWcpOworCQkJCQkJCQkJCQkgIExpc3Qg KmluZGV4cXVhbG9yaWcsCisJCQkJCQkJCQkJCSAgaW50IHNraXBQcmVmaXhTaXplKTsKIHN0YXRp YyBCaXRtYXBIZWFwU2NhbiAqbWFrZV9iaXRtYXBfaGVhcHNjYW4oTGlzdCAqcXB0bGlzdCwKIAkJ CQkJCQkJCQkJTGlzdCAqcXBxdWFsLAogCQkJCQkJCQkJCQlQbGFuICpsZWZ0dHJlZSwKQEAgLTI5 MTQsNyArMjkxOSw5IEBAIGNyZWF0ZV9pbmRleHNjYW5fcGxhbihQbGFubmVySW5mbyAqcm9vdCwK IAkJCQkJCQkJCQkJCWZpeGVkX2luZGV4cXVhbHMsCiAJCQkJCQkJCQkJCQlmaXhlZF9pbmRleG9y ZGVyYnlzLAogCQkJCQkJCQkJCQkJYmVzdF9wYXRoLT5pbmRleGluZm8tPmluZGV4dGxpc3QsCi0J CQkJCQkJCQkJCQliZXN0X3BhdGgtPmluZGV4c2NhbmRpcik7CisJCQkJCQkJCQkJCQliZXN0X3Bh dGgtPmluZGV4c2NhbmRpciwKKwkJCQkJCQkJCQkJCWJlc3RfcGF0aC0+aW5kZXhza2lwcHJlZml4 LAorCQkJCQkJCQkJCQkJYmVzdF9wYXRoLT5pbmRleGRpc3RpbmN0KTsKIAllbHNlCiAJCXNjYW5f cGxhbiA9IChTY2FuICopIG1ha2VfaW5kZXhzY2FuKHRsaXN0LAogCQkJCQkJCQkJCQlxcHF1YWws CkBAIC0yOTI1LDcgKzI5MzIsOSBAQCBjcmVhdGVfaW5kZXhzY2FuX3BsYW4oUGxhbm5lckluZm8g KnJvb3QsCiAJCQkJCQkJCQkJCWZpeGVkX2luZGV4b3JkZXJieXMsCiAJCQkJCQkJCQkJCWluZGV4 b3JkZXJieXMsCiAJCQkJCQkJCQkJCWluZGV4b3JkZXJieW9wcywKLQkJCQkJCQkJCQkJYmVzdF9w YXRoLT5pbmRleHNjYW5kaXIpOworCQkJCQkJCQkJCQliZXN0X3BhdGgtPmluZGV4c2NhbmRpciwK KwkJCQkJCQkJCQkJYmVzdF9wYXRoLT5pbmRleHNraXBwcmVmaXgsCisJCQkJCQkJCQkJCWJlc3Rf cGF0aC0+aW5kZXhkaXN0aW5jdCk7CiAKIAljb3B5X2dlbmVyaWNfcGF0aF9pbmZvKCZzY2FuX3Bs YW4tPnBsYW4sICZiZXN0X3BhdGgtPnBhdGgpOwogCkBAIC0zMjE1LDcgKzMyMjQsOCBAQCBjcmVh dGVfYml0bWFwX3N1YnBsYW4oUGxhbm5lckluZm8gKnJvb3QsIFBhdGggKmJpdG1hcHF1YWwsCiAJ CXBsYW4gPSAoUGxhbiAqKSBtYWtlX2JpdG1hcF9pbmRleHNjYW4oaXNjYW4tPnNjYW4uc2NhbnJl bGlkLAogCQkJCQkJCQkJCQkgIGlzY2FuLT5pbmRleGlkLAogCQkJCQkJCQkJCQkgIGlzY2FuLT5p bmRleHF1YWwsCi0JCQkJCQkJCQkJCSAgaXNjYW4tPmluZGV4cXVhbG9yaWcpOworCQkJCQkJCQkJ CQkgIGlzY2FuLT5pbmRleHF1YWxvcmlnLAorCQkJCQkJCQkJCQkgIGlzY2FuLT5pbmRleHNraXBw cmVmaXhzaXplKTsKIAkJLyogYW5kIHNldCBpdHMgY29zdC93aWR0aCBmaWVsZHMgYXBwcm9wcmlh dGVseSAqLwogCQlwbGFuLT5zdGFydHVwX2Nvc3QgPSAwLjA7CiAJCXBsYW4tPnRvdGFsX2Nvc3Qg PSBpcGF0aC0+aW5kZXh0b3RhbGNvc3Q7CkBAIC01MTg2LDcgKzUxOTYsOSBAQCBtYWtlX2luZGV4 c2NhbihMaXN0ICpxcHRsaXN0LAogCQkJICAgTGlzdCAqaW5kZXhvcmRlcmJ5LAogCQkJICAgTGlz dCAqaW5kZXhvcmRlcmJ5b3JpZywKIAkJCSAgIExpc3QgKmluZGV4b3JkZXJieW9wcywKLQkJCSAg IFNjYW5EaXJlY3Rpb24gaW5kZXhzY2FuZGlyKQorCQkJICAgU2NhbkRpcmVjdGlvbiBpbmRleHNj YW5kaXIsCisJCQkgICBpbnQgc2tpcFByZWZpeFNpemUsCisJCQkgICBib29sIGRpc3RpbmN0KQog ewogCUluZGV4U2NhbiAgKm5vZGUgPSBtYWtlTm9kZShJbmRleFNjYW4pOwogCVBsYW4JICAgKnBs YW4gPSAmbm9kZS0+c2Nhbi5wbGFuOwpAQCAtNTIwMyw2ICs1MjE1LDggQEAgbWFrZV9pbmRleHNj YW4oTGlzdCAqcXB0bGlzdCwKIAlub2RlLT5pbmRleG9yZGVyYnlvcmlnID0gaW5kZXhvcmRlcmJ5 b3JpZzsKIAlub2RlLT5pbmRleG9yZGVyYnlvcHMgPSBpbmRleG9yZGVyYnlvcHM7CiAJbm9kZS0+ aW5kZXhvcmRlcmRpciA9IGluZGV4c2NhbmRpcjsKKwlub2RlLT5pbmRleHNraXBwcmVmaXhzaXpl ID0gc2tpcFByZWZpeFNpemU7CisJbm9kZS0+aW5kZXhkaXN0aW5jdCA9IGRpc3RpbmN0OwogCiAJ cmV0dXJuIG5vZGU7CiB9CkBAIC01MjE1LDcgKzUyMjksOSBAQCBtYWtlX2luZGV4b25seXNjYW4o TGlzdCAqcXB0bGlzdCwKIAkJCQkgICBMaXN0ICppbmRleHF1YWwsCiAJCQkJICAgTGlzdCAqaW5k ZXhvcmRlcmJ5LAogCQkJCSAgIExpc3QgKmluZGV4dGxpc3QsCi0JCQkJICAgU2NhbkRpcmVjdGlv biBpbmRleHNjYW5kaXIpCisJCQkJICAgU2NhbkRpcmVjdGlvbiBpbmRleHNjYW5kaXIsCisJCQkJ ICAgaW50IHNraXBQcmVmaXhTaXplLAorCQkJCSAgIGJvb2wgZGlzdGluY3QpCiB7CiAJSW5kZXhP bmx5U2NhbiAqbm9kZSA9IG1ha2VOb2RlKEluZGV4T25seVNjYW4pOwogCVBsYW4JICAgKnBsYW4g PSAmbm9kZS0+c2Nhbi5wbGFuOwpAQCAtNTIzMCw2ICs1MjQ2LDggQEAgbWFrZV9pbmRleG9ubHlz Y2FuKExpc3QgKnFwdGxpc3QsCiAJbm9kZS0+aW5kZXhvcmRlcmJ5ID0gaW5kZXhvcmRlcmJ5Owog CW5vZGUtPmluZGV4dGxpc3QgPSBpbmRleHRsaXN0OwogCW5vZGUtPmluZGV4b3JkZXJkaXIgPSBp bmRleHNjYW5kaXI7CisJbm9kZS0+aW5kZXhza2lwcHJlZml4c2l6ZSA9IHNraXBQcmVmaXhTaXpl OworCW5vZGUtPmluZGV4ZGlzdGluY3QgPSBkaXN0aW5jdDsKIAogCXJldHVybiBub2RlOwogfQpA QCAtNTIzOCw3ICs1MjU2LDggQEAgc3RhdGljIEJpdG1hcEluZGV4U2NhbiAqCiBtYWtlX2JpdG1h cF9pbmRleHNjYW4oSW5kZXggc2NhbnJlbGlkLAogCQkJCQkgIE9pZCBpbmRleGlkLAogCQkJCQkg IExpc3QgKmluZGV4cXVhbCwKLQkJCQkJICBMaXN0ICppbmRleHF1YWxvcmlnKQorCQkJCQkgIExp c3QgKmluZGV4cXVhbG9yaWcsCisJCQkJCSAgaW50IHNraXBQcmVmaXhTaXplKQogewogCUJpdG1h cEluZGV4U2NhbiAqbm9kZSA9IG1ha2VOb2RlKEJpdG1hcEluZGV4U2Nhbik7CiAJUGxhbgkgICAq cGxhbiA9ICZub2RlLT5zY2FuLnBsYW47CkBAIC01MjUxLDYgKzUyNzAsNyBAQCBtYWtlX2JpdG1h cF9pbmRleHNjYW4oSW5kZXggc2NhbnJlbGlkLAogCW5vZGUtPmluZGV4aWQgPSBpbmRleGlkOwog CW5vZGUtPmluZGV4cXVhbCA9IGluZGV4cXVhbDsKIAlub2RlLT5pbmRleHF1YWxvcmlnID0gaW5k ZXhxdWFsb3JpZzsKKwlub2RlLT5pbmRleHNraXBwcmVmaXhzaXplID0gc2tpcFByZWZpeFNpemU7 CiAKIAlyZXR1cm4gbm9kZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRl eCA2YTdiNTVhYmQyLi42MmI1ZTVlMDcxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jCkBAIC00ODMyLDYgKzQ4MzIsNzAgQEAgY3JlYXRlX2Rpc3RpbmN0X3BhdGhzKFBsYW5uZXJJ bmZvICpyb290LAogCQkJCQkJCQkJCQkJICBwYXRoLAogCQkJCQkJCQkJCQkJICBsaXN0X2xlbmd0 aChyb290LT5kaXN0aW5jdF9wYXRoa2V5cyksCiAJCQkJCQkJCQkJCQkgIG51bURpc3RpbmN0Um93 cykpOworCisJCQkJLyogQ29uc2lkZXIgaW5kZXggc2tpcCBzY2FuIGFzIHdlbGwgKi8KKwkJCQlp ZiAoZW5hYmxlX2luZGV4c2tpcHNjYW4gJiYKKwkJCQkJSXNBKHBhdGgsIEluZGV4UGF0aCkgJiYK KwkJCQkJKChJbmRleFBhdGggKikgcGF0aCktPmluZGV4aW5mby0+YW1jYW5za2lwICYmCisJCQkJ CXJvb3QtPmRpc3RpbmN0X3BhdGhrZXlzICE9IE5JTCkKKwkJCQl7CisJCQkJCUxpc3RDZWxsICAg CQkqbGM7CisJCQkJCUluZGV4T3B0SW5mbyAJKmluZGV4ID0gTlVMTDsKKwkJCQkJYm9vbCAJCQlk aWZmZXJlbnRfY29sdW1uc19vcmRlciA9IGZhbHNlLAorCQkJCQkJCQkJbXVsdGlwbGVfZnJvbXMg PSBmYWxzZTsKKwkJCQkJaW50IAkJCWkgPSAwOworCQkJCQlpbnQgCQkJZGlzdGluY3RQcmVmaXhL ZXlzOworCisJCQkJCUFzc2VydChwYXRoLT5wYXRodHlwZSA9PSBUX0luZGV4T25seVNjYW4gfHwK KwkJCQkJCSAgIHBhdGgtPnBhdGh0eXBlID09IFRfSW5kZXhTY2FuKTsKKworCQkJCQlpbmRleCA9 ICgoSW5kZXhQYXRoICopIHBhdGgpLT5pbmRleGluZm87CisJCQkJCWRpc3RpbmN0UHJlZml4S2V5 cyA9IGxpc3RfbGVuZ3RoKHJvb3QtPnF1ZXJ5X3VuaXF1ZWtleXMpOworCisJCQkJCS8qCisJCQkJ CSAqIE5vcm1hbGx5IHdlIGNhbiB0aGluayBhYm91dCBkaXN0aW5jdFByZWZpeEtleXMgYXMganVz dAorCQkJCQkgKiBhIG51bWJlciBvZiBkaXN0aW5jdCBrZXlzLiBCdXQgaWYgbGV0cyBzYXkgd2Ug aGF2ZSBhCisJCQkJCSAqIGRpc3RpbmN0IGtleSBhLCBhbmQgdGhlIGluZGV4IGNvbnRhaW5zIGIs IGEgaW4gZXhhY3RseQorCQkJCQkgKiB0aGlzIG9yZGVyLiBJbiBzdWNoIHNpdHVhdGlvbiB3ZSBu ZWVkIHRvIHVzZSBwb3NpdGlvbgorCQkJCQkgKiBvZiBhIGluIHRoZSBpbmRleCBhcyBkaXN0aW5j dFByZWZpeEtleXMsIG90aGVyd2lzZSBza2lwCisJCQkJCSAqIHdpbGwgaGFwcGVuIG9ubHkgYnkg dGhlIGZpcnN0IGNvbHVtbi4KKwkJCQkJICovCisJCQkJCWZvcmVhY2gobGMsIHJvb3QtPnF1ZXJ5 X3VuaXF1ZWtleXMpCisJCQkJCXsKKwkJCQkJCVVuaXF1ZUtleSAqdW5pcXVla2V5ID0gKFVuaXF1 ZUtleSAqKSBsZmlyc3QobGMpOworCQkJCQkJRXF1aXZhbGVuY2VNZW1iZXIgKmVtID0KKwkJCQkJ CQlsZmlyc3Rfbm9kZShFcXVpdmFsZW5jZU1lbWJlciwKKwkJCQkJCQkJCQlsaXN0X2hlYWQodW5p cXVla2V5LT5lcV9jbGF1c2UtPmVjX21lbWJlcnMpKTsKKwkJCQkJCVZhciAqdmFyID0gKFZhciAq KSBlbS0+ZW1fZXhwcjsKKworCQkJCQkJQXNzZXJ0KGkgPCBpbmRleC0+bmNvbHVtbnMpOworCisJ CQkJCQlmb3IgKGkgPSAwOyBpIDwgaW5kZXgtPm5jb2x1bW5zOyBpKyspCisJCQkJCQl7CisJCQkJ CQkJaWYgKGluZGV4LT5pbmRleGtleXNbaV0gPT0gdmFyLT52YXJhdHRubykKKwkJCQkJCQl7CisJ CQkJCQkJCWRpc3RpbmN0UHJlZml4S2V5cyA9IE1heChpICsgMSwgZGlzdGluY3RQcmVmaXhLZXlz KTsKKwkJCQkJCQkJYnJlYWs7CisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQl9CisKKwkJCQkJLyog d2UgY2FuIG9ubHkgZG8gdGhpcyBpZiBzY2FubmluZyBmcm9tIG9uZSByZWxhdGlvbiAqLworCQkJ CQlpZiAocGF0aC0+cGF0aHR5cGUgPT0gVF9JbmRleFNjYW4gJiYKKwkJCQkJCXBhcnNlLT5qb2lu dHJlZSAhPSBOVUxMICYmCisJCQkJCQlsaXN0X2xlbmd0aChwYXJzZS0+am9pbnRyZWUtPmZyb21s aXN0KSA+IDEpCisJCQkJCQkJbXVsdGlwbGVfZnJvbXMgPSB0cnVlOworCisJCQkJCWlmICghZGlm ZmVyZW50X2NvbHVtbnNfb3JkZXIgJiYJIW11bHRpcGxlX2Zyb21zKQorCQkJCQl7CisJCQkJCQlh ZGRfcGF0aChkaXN0aW5jdF9yZWwsIChQYXRoICopCisJCQkJCQkJCSBjcmVhdGVfc2tpcHNjYW5f dW5pcXVlX3BhdGgocm9vdCwKKwkJCQkJCQkJCQkJCQkJCSBkaXN0aW5jdF9yZWwsCisJCQkJCQkJ CQkJCQkJCQkgcGF0aCwKKwkJCQkJCQkJCQkJCQkJCSBkaXN0aW5jdFByZWZpeEtleXMsCisJCQkJ CQkJCQkJCQkJCQkgbnVtRGlzdGluY3RSb3dzKSk7CisJCQkJCX0KKwkJCQl9CiAJCQl9CiAJCX0K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMKaW5kZXggMjc4NDM2ZjEwMi4uODdk Mzk1NzBiNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUu YworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCkBAIC0yOTE2LDYg KzI5MTYsNDYgQEAgY3JlYXRlX3VwcGVyX3VuaXF1ZV9wYXRoKFBsYW5uZXJJbmZvICpyb290LAog CXJldHVybiBwYXRobm9kZTsKIH0KIAorLyoKKyAqIGNyZWF0ZV9za2lwc2Nhbl91bmlxdWVfcGF0 aAorICoJICBDcmVhdGVzIGEgcGF0aG5vZGUgdGhlIHNhbWUgYXMgYW4gZXhpc3RpbmcgSW5kZXhQ YXRoIGV4Y2VwdCBiYXNlZCBvbgorICoJICBza2lwcGluZyBkdXBsaWNhdGUgdmFsdWVzLiAgVGhp cyBtYXkgb3IgbWF5IG5vdCBiZSBjaGVhcGVyIHRoYW4gdXNpbmcKKyAqCSAgY3JlYXRlX3VwcGVy X3VuaXF1ZV9wYXRoLgorICoKKyAqIFRoZSBpbnB1dCBwYXRoIG11c3QgYmUgYW4gSW5kZXhQYXRo IGZvciBhbiBpbmRleCB0aGF0IHN1cHBvcnRzIGFtc2tpcC4KKyAqLworSW5kZXhQYXRoICoKK2Ny ZWF0ZV9za2lwc2Nhbl91bmlxdWVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwKKwkJCQkJCQlSZWxP cHRJbmZvICpyZWwsCisJCQkJCQkJUGF0aCAqYmFzZXBhdGgsCisJCQkJCQkJaW50IGRpc3RpbmN0 UHJlZml4S2V5cywKKwkJCQkJCQlkb3VibGUgbnVtR3JvdXBzKQoreworCUluZGV4UGF0aCAqcGF0 aG5vZGUgPSBtYWtlTm9kZShJbmRleFBhdGgpOworCisJQXNzZXJ0KElzQShiYXNlcGF0aCwgSW5k ZXhQYXRoKSk7CisKKwkvKiBXZSBkb24ndCB3YW50IHRvIG1vZGlmeSBiYXNlcGF0aCwgc28gbWFr ZSBhIGNvcHkuICovCisJbWVtY3B5KHBhdGhub2RlLCBiYXNlcGF0aCwgc2l6ZW9mKEluZGV4UGF0 aCkpOworCisJLyogVGhlIHNpemUgb2YgdGhlIHByZWZpeCB3ZSdsbCB1c2UgZm9yIHNraXBwaW5n LiAqLworCUFzc2VydChwYXRobm9kZS0+aW5kZXhpbmZvLT5hbWNhbnNraXApOworCUFzc2VydChk aXN0aW5jdFByZWZpeEtleXMgPiAwKTsKKwlwYXRobm9kZS0+aW5kZXhza2lwcHJlZml4ID0gZGlz dGluY3RQcmVmaXhLZXlzOworCXBhdGhub2RlLT5pbmRleGRpc3RpbmN0ID0gdHJ1ZTsKKworCS8q CisJICogVGhlIGNvc3QgdG8gc2tpcCB0byBlYWNoIGRpc3RpbmN0IHZhbHVlIHNob3VsZCBiZSBy b3VnaGx5IHRoZSBzYW1lIGFzCisJICogdGhlIGNvc3Qgb2YgZmluZGluZyB0aGUgZmlyc3Qga2V5 IHRpbWVzIHRoZSBudW1iZXIgb2YgZGlzdGluY3QgdmFsdWVzCisJICogd2UgZXhwZWN0IHRvIGZp bmQuCisJICovCisJcGF0aG5vZGUtPnBhdGguc3RhcnR1cF9jb3N0ID0gYmFzZXBhdGgtPnN0YXJ0 dXBfY29zdDsKKwlwYXRobm9kZS0+cGF0aC50b3RhbF9jb3N0ID0gYmFzZXBhdGgtPnN0YXJ0dXBf Y29zdCAqIG51bUdyb3VwczsKKwlwYXRobm9kZS0+cGF0aC5yb3dzID0gbnVtR3JvdXBzOworCisJ cmV0dXJuIHBhdGhub2RlOworfQorCiAvKgogICogY3JlYXRlX2FnZ19wYXRoCiAgKgkgIENyZWF0 ZXMgYSBwYXRobm9kZSB0aGF0IHJlcHJlc2VudHMgcGVyZm9ybWluZyBhZ2dyZWdhdGlvbi9ncm91 cGluZwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jCmluZGV4IGQ4MmZjNWFiOGIuLjM2 NGUyM2NiZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQu YworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMKQEAgLTI3MSw2ICsy NzEsOSBAQCBnZXRfcmVsYXRpb25faW5mbyhQbGFubmVySW5mbyAqcm9vdCwgT2lkIHJlbGF0aW9u T2JqZWN0SWQsIGJvb2wgaW5ocGFyZW50LAogCQkJaW5mby0+YW1vcHRpb25hbGtleSA9IGFtcm91 dGluZS0+YW1vcHRpb25hbGtleTsKIAkJCWluZm8tPmFtc2VhcmNoYXJyYXkgPSBhbXJvdXRpbmUt PmFtc2VhcmNoYXJyYXk7CiAJCQlpbmZvLT5hbXNlYXJjaG51bGxzID0gYW1yb3V0aW5lLT5hbXNl YXJjaG51bGxzOworCQkJaW5mby0+YW1jYW5za2lwID0gKGFtcm91dGluZS0+YW1za2lwICE9IE5V TEwgJiYKKwkJCQkJYW1yb3V0aW5lLT5hbWdldHNraXB0dXBsZSAhPSBOVUxMICYmCisJCQkJCWFt cm91dGluZS0+YW1iZWdpbnNraXBzY2FuICE9IE5VTEwpOwogCQkJaW5mby0+YW1jYW5wYXJhbGxl bCA9IGFtcm91dGluZS0+YW1jYW5wYXJhbGxlbDsKIAkJCWluZm8tPmFtaGFzZ2V0dHVwbGUgPSAo YW1yb3V0aW5lLT5hbWdldHR1cGxlICE9IE5VTEwpOwogCQkJaW5mby0+YW1oYXNnZXRiaXRtYXAg PSBhbXJvdXRpbmUtPmFtZ2V0Yml0bWFwICE9IE5VTEwgJiYKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCmluZGV4 IDdkMWYxMDY5ZjEuLjFiNDAxZjgzN2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwpAQCAtOTYwLDYgKzk2 MCwxNSBAQCBzdGF0aWMgc3RydWN0IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVzQm9vbFtdID0K IAkJdHJ1ZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7ImVuYWJsZV9pbmRleHNr aXBzY2FuIiwgUEdDX1VTRVJTRVQsIFFVRVJZX1RVTklOR19NRVRIT0QsCisJCQlnZXR0ZXh0X25v b3AoIkVuYWJsZXMgdGhlIHBsYW5uZXIncyB1c2Ugb2YgaW5kZXgtc2tpcC1zY2FuIHBsYW5zLiIp LAorCQkJTlVMTAorCQl9LAorCQkmZW5hYmxlX2luZGV4c2tpcHNjYW4sCisJCXRydWUsCisJCU5V TEwsIE5VTEwsIE5VTEwKKwl9LAogCXsKIAkJeyJlbmFibGVfYml0bWFwc2NhbiIsIFBHQ19VU0VS U0VULCBRVUVSWV9UVU5JTkdfTUVUSE9ELAogCQkJZ2V0dGV4dF9ub29wKCJFbmFibGVzIHRoZSBw bGFubmVyJ3MgdXNlIG9mIGJpdG1hcC1zY2FuIHBsYW5zLiIpLApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGM3ZTQ2NTkyZmIuLjdmNzkyOWVj ZDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUK QEAgLTM1NCw2ICszNTQsNyBAQAogI2VuYWJsZV9oYXNoam9pbiA9IG9uCiAjZW5hYmxlX2luZGV4 c2NhbiA9IG9uCiAjZW5hYmxlX2luZGV4b25seXNjYW4gPSBvbgorI2VuYWJsZV9pbmRleHNraXBz Y2FuID0gb24KICNlbmFibGVfbWF0ZXJpYWwgPSBvbgogI2VuYWJsZV9tZXJnZWpvaW4gPSBvbgog I2VuYWJsZV9uZXN0bG9vcCA9IG9uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9zb3J0 L3R1cGxlc29ydC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYwppbmRleCBk MDJlNjc2YWEzLi5hZGNhMGM2OWQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9zb3J0 L3R1cGxlc29ydC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0LmMKQEAg LTkxOSw3ICs5MTksNyBAQCB0dXBsZXNvcnRfYmVnaW5fY2x1c3RlcihUdXBsZURlc2MgdHVwRGVz YywKIAogCXN0YXRlLT50dXBEZXNjID0gdHVwRGVzYzsJLyogYXNzdW1lIHdlIG5lZWQgbm90IGNv cHkgdHVwRGVzYyAqLwogCi0JaW5kZXhTY2FuS2V5ID0gX2J0X21rc2NhbmtleShpbmRleFJlbCwg TlVMTCk7CisJaW5kZXhTY2FuS2V5ID0gX2J0X21rc2NhbmtleShpbmRleFJlbCwgTlVMTCwgTlVM TCk7CiAKIAlpZiAoc3RhdGUtPmluZGV4SW5mby0+aWlfRXhwcmVzc2lvbnMgIT0gTlVMTCkKIAl7 CkBAIC0xMDE0LDcgKzEwMTQsNyBAQCB0dXBsZXNvcnRfYmVnaW5faW5kZXhfYnRyZWUoUmVsYXRp b24gaGVhcFJlbCwKIAlzdGF0ZS0+aW5kZXhSZWwgPSBpbmRleFJlbDsKIAlzdGF0ZS0+ZW5mb3Jj ZVVuaXF1ZSA9IGVuZm9yY2VVbmlxdWU7CiAKLQlpbmRleFNjYW5LZXkgPSBfYnRfbWtzY2Fua2V5 KGluZGV4UmVsLCBOVUxMKTsKKwlpbmRleFNjYW5LZXkgPSBfYnRfbWtzY2Fua2V5KGluZGV4UmVs LCBOVUxMLCBOVUxMKTsKIAogCS8qIFByZXBhcmUgU29ydFN1cHBvcnQgZGF0YSBmb3IgZWFjaCBj b2x1bW4gKi8KIAlzdGF0ZS0+c29ydEtleXMgPSAoU29ydFN1cHBvcnQpIHBhbGxvYzAoc3RhdGUt Pm5LZXlzICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9hbWFwaS5oIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL2FtYXBpLmgKaW5kZXggM2IzZTIyZjczZC4uYzZiMzUyZDYxZiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2FtYXBpLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2FtYXBpLmgKQEAgLTExOSw2ICsxMTksMTIgQEAgdHlwZWRlZiBJbmRleFNjYW5EZXNjICgqYW1i ZWdpbnNjYW5fZnVuY3Rpb24pIChSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAogCQkJCQkJCQkJCQkg ICBpbnQgbmtleXMsCiAJCQkJCQkJCQkJCSAgIGludCBub3JkZXJieXMpOwogCisvKiBwcmVwYXJl IGZvciBpbmRleCBzY2FuIHdpdGggc2tpcCAqLwordHlwZWRlZiBJbmRleFNjYW5EZXNjICgqYW1i ZWdpbnNjYW5fc2tpcF9mdW5jdGlvbikgKFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJCQkJCQkJ CQkJCSAgIGludCBua2V5cywKKwkJCQkJCQkJCQkJICAgaW50IG5vcmRlcmJ5cywKKwkJCQkJCQkJ CQkJICAgaW50IHByZWZpeCk7CisKIC8qIChyZSlzdGFydCBpbmRleCBzY2FuICovCiB0eXBlZGVm IHZvaWQgKCphbXJlc2Nhbl9mdW5jdGlvbikgKEluZGV4U2NhbkRlc2Mgc2NhbiwKIAkJCQkJCQkJ ICAgU2NhbktleSBrZXlzLApAQCAtMTMwLDYgKzEzNiwxNiBAQCB0eXBlZGVmIHZvaWQgKCphbXJl c2Nhbl9mdW5jdGlvbikgKEluZGV4U2NhbkRlc2Mgc2NhbiwKIHR5cGVkZWYgYm9vbCAoKmFtZ2V0 dHVwbGVfZnVuY3Rpb24pIChJbmRleFNjYW5EZXNjIHNjYW4sCiAJCQkJCQkJCQkgU2NhbkRpcmVj dGlvbiBkaXJlY3Rpb24pOwogCisvKiBuZXh0IHZhbGlkIHR1cGxlICovCit0eXBlZGVmIGJvb2wg KCphbWdldHR1cGxlX3dpdGhfc2tpcF9mdW5jdGlvbikgKEluZGV4U2NhbkRlc2Mgc2NhbiwKKwkJ CQkJCQkJCQkJICAgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsCisJCQkJCQkJCQkJCSAgIFNjYW5E aXJlY3Rpb24gcG9zdGZpeERpcik7CisKKy8qIHNraXAgcGFzdCBkdXBsaWNhdGVzICovCit0eXBl ZGVmIGJvb2wgKCphbXNraXBfZnVuY3Rpb24pIChJbmRleFNjYW5EZXNjIHNjYW4sCisJCQkJCQkJ CSBTY2FuRGlyZWN0aW9uIHByZWZpeERpciwKKwkJCQkJCQkJIFNjYW5EaXJlY3Rpb24gcG9zdGZp eERpcik7CisKIC8qIGZldGNoIGFsbCB2YWxpZCB0dXBsZXMgKi8KIHR5cGVkZWYgaW50NjQgKCph bWdldGJpdG1hcF9mdW5jdGlvbikgKEluZGV4U2NhbkRlc2Mgc2NhbiwKIAkJCQkJCQkJCSAgIFRJ REJpdG1hcCAqdGJtKTsKQEAgLTIyMywxMiArMjM5LDE1IEBAIHR5cGVkZWYgc3RydWN0IEluZGV4 QW1Sb3V0aW5lCiAJYW1idWlsZHBoYXNlbmFtZV9mdW5jdGlvbiBhbWJ1aWxkcGhhc2VuYW1lOyAv KiBjYW4gYmUgTlVMTCAqLwogCWFtdmFsaWRhdGVfZnVuY3Rpb24gYW12YWxpZGF0ZTsKIAlhbWJl Z2luc2Nhbl9mdW5jdGlvbiBhbWJlZ2luc2NhbjsKKwlhbWJlZ2luc2Nhbl9za2lwX2Z1bmN0aW9u IGFtYmVnaW5za2lwc2NhbjsKIAlhbXJlc2Nhbl9mdW5jdGlvbiBhbXJlc2NhbjsKIAlhbWdldHR1 cGxlX2Z1bmN0aW9uIGFtZ2V0dHVwbGU7IC8qIGNhbiBiZSBOVUxMICovCisJYW1nZXR0dXBsZV93 aXRoX3NraXBfZnVuY3Rpb24gYW1nZXRza2lwdHVwbGU7IC8qIGNhbiBiZSBOVUxMICovCiAJYW1n ZXRiaXRtYXBfZnVuY3Rpb24gYW1nZXRiaXRtYXA7CS8qIGNhbiBiZSBOVUxMICovCiAJYW1lbmRz Y2FuX2Z1bmN0aW9uIGFtZW5kc2NhbjsKIAlhbW1hcmtwb3NfZnVuY3Rpb24gYW1tYXJrcG9zOwkv KiBjYW4gYmUgTlVMTCAqLwogCWFtcmVzdHJwb3NfZnVuY3Rpb24gYW1yZXN0cnBvczsgLyogY2Fu IGJlIE5VTEwgKi8KKwlhbXNraXBfZnVuY3Rpb24gYW1za2lwOwkJCQkvKiBjYW4gYmUgTlVMTCAq LwogCiAJLyogaW50ZXJmYWNlIGZ1bmN0aW9ucyB0byBzdXBwb3J0IHBhcmFsbGVsIGluZGV4IHNj YW5zICovCiAJYW1lc3RpbWF0ZXBhcmFsbGVsc2Nhbl9mdW5jdGlvbiBhbWVzdGltYXRlcGFyYWxs ZWxzY2FuOyAvKiBjYW4gYmUgTlVMTCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L2dlbmFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaAppbmRleCA3ZTkzNjRhNTBjLi43 Y2VhNmMxNzU2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaApAQCAtMTQ5LDkgKzE0OSwxNyBAQCBleHRlcm4gSW5k ZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJ CQkJIFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiAJCQkJCQkJCQkgU25hcHNob3Qgc25hcHNob3Qs CiAJCQkJCQkJCQkgaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzKTsKK2V4dGVybiBJbmRleFNjYW5E ZXNjIGluZGV4X2JlZ2luc2Nhbl9za2lwKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKKwkJCQkJCQkJ CSBSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAorCQkJCQkJCQkJIFNuYXBzaG90IHNuYXBzaG90LAor CQkJCQkJCQkJIGludCBua2V5cywgaW50IG5vcmRlcmJ5cywgaW50IHByZWZpeCk7CiBleHRlcm4g SW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW5fYml0bWFwKFJlbGF0aW9uIGluZGV4UmVsYXRp b24sCiAJCQkJCQkJCQkJCVNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJCQlpbnQgbmtleXMp OworZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX2JpdG1hcF9za2lwKFJlbGF0 aW9uIGluZGV4UmVsYXRpb24sCisJCQkJCQkJCQkJCVNuYXBzaG90IHNuYXBzaG90LAorCQkJCQkJ CQkJCQlpbnQgbmtleXMsCisJCQkJCQkJCQkJCWludCBwcmVmaXgpOwogZXh0ZXJuIHZvaWQgaW5k ZXhfcmVzY2FuKEluZGV4U2NhbkRlc2Mgc2NhbiwKIAkJCQkJCSBTY2FuS2V5IGtleXMsIGludCBu a2V5cywKIAkJCQkJCSBTY2FuS2V5IG9yZGVyYnlzLCBpbnQgbm9yZGVyYnlzKTsKQEAgLTE2Nywx MCArMTc1LDE2IEBAIGV4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxl bChSZWxhdGlvbiBoZWFwcmVsLAogCQkJCQkJCQkJCQkgIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBw c2Nhbik7CiBleHRlcm4gSXRlbVBvaW50ZXIgaW5kZXhfZ2V0bmV4dF90aWQoSW5kZXhTY2FuRGVz YyBzY2FuLAogCQkJCQkJCQkJIFNjYW5EaXJlY3Rpb24gZGlyZWN0aW9uKTsKK2V4dGVybiBJdGVt UG9pbnRlciBpbmRleF9nZXRuZXh0X3RpZF9za2lwKEluZGV4U2NhbkRlc2Mgc2NhbiwKKwkJCQkJ CQkJCSBTY2FuRGlyZWN0aW9uIHByZWZpeERpciwKKwkJCQkJCQkJCSBTY2FuRGlyZWN0aW9uIHBv c3RmaXhEaXIpOwogc3RydWN0IFR1cGxlVGFibGVTbG90OwogZXh0ZXJuIGJvb2wgaW5kZXhfZmV0 Y2hfaGVhcChJbmRleFNjYW5EZXNjIHNjYW4sIHN0cnVjdCBUdXBsZVRhYmxlU2xvdCAqc2xvdCk7 CiBleHRlcm4gYm9vbCBpbmRleF9nZXRuZXh0X3Nsb3QoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2Fu RGlyZWN0aW9uIGRpcmVjdGlvbiwKIAkJCQkJCQkgICBzdHJ1Y3QgVHVwbGVUYWJsZVNsb3QgKnNs b3QpOworZXh0ZXJuIGJvb2wgaW5kZXhfZ2V0bmV4dF9zbG90X3NraXAoSW5kZXhTY2FuRGVzYyBz Y2FuLCBTY2FuRGlyZWN0aW9uIHByZWZpeERpciwKKwkJCQkJCQkJCVNjYW5EaXJlY3Rpb24gcG9z dGZpeERpciwKKwkJCQkJCQkJCXN0cnVjdCBUdXBsZVRhYmxlU2xvdCAqc2xvdCk7CiBleHRlcm4g aW50NjQgaW5kZXhfZ2V0Yml0bWFwKEluZGV4U2NhbkRlc2Mgc2NhbiwgVElEQml0bWFwICpiaXRt YXApOwogCiBleHRlcm4gSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppbmRleF9idWxrX2RlbGV0ZShJ bmRleFZhY3V1bUluZm8gKmluZm8sCkBAIC0xODAsNiArMTk0LDggQEAgZXh0ZXJuIEluZGV4QnVs a0RlbGV0ZVJlc3VsdCAqaW5kZXhfYnVsa19kZWxldGUoSW5kZXhWYWN1dW1JbmZvICppbmZvLAog ZXh0ZXJuIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqaW5kZXhfdmFjdXVtX2NsZWFudXAoSW5kZXhW YWN1dW1JbmZvICppbmZvLAogCQkJCQkJCQkJCQkJICAgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpz dGF0cyk7CiBleHRlcm4gYm9vbCBpbmRleF9jYW5fcmV0dXJuKFJlbGF0aW9uIGluZGV4UmVsYXRp b24sIGludCBhdHRubyk7CitleHRlcm4gYm9vbCBpbmRleF9za2lwKEluZGV4U2NhbkRlc2Mgc2Nh biwgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsCisJCQkJCSAgIFNjYW5EaXJlY3Rpb24gcG9zdGZp eERpcik7CiBleHRlcm4gUmVnUHJvY2VkdXJlIGluZGV4X2dldHByb2NpZChSZWxhdGlvbiBpcmVs LCBBdHRyTnVtYmVyIGF0dG51bSwKIAkJCQkJCQkJCXVpbnQxNiBwcm9jbnVtKTsKIGV4dGVybiBG bWdySW5mbyAqaW5kZXhfZ2V0cHJvY2luZm8oUmVsYXRpb24gaXJlbCwgQXR0ck51bWJlciBhdHRu dW0sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0cmVlLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvbmJ0cmVlLmgKaW5kZXggMTgyMDZhMGM2NS4uMDE1YmI2M2RmNSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9u YnRyZWUuaApAQCAtOTEwLDYgKzkxMCw1MyBAQCB0eXBlZGVmIHN0cnVjdCBCVEFycmF5S2V5SW5m bwogCURhdHVtCSAgICplbGVtX3ZhbHVlczsJLyogYXJyYXkgb2YgbnVtX2VsZW1zIERhdHVtcyAq LwogfSBCVEFycmF5S2V5SW5mbzsKIAordHlwZWRlZiBzdHJ1Y3QgQlRTa2lwQ29tcGFyZVJlc3Vs dAoreworCWJvb2wJCWVxdWFsOworCWludAkJCXByZWZpeENtcFJlc3VsdCwgc2tDbXBSZXN1bHQ7 CisJYm9vbAkJcHJlZml4U2tpcCwgZnVsbEtleVNraXA7CisJaW50CQkJcHJlZml4U2tpcEluZGV4 OworfSBCVFNraXBDb21wYXJlUmVzdWx0OworCit0eXBlZGVmIGVudW0gQlRTa2lwU3RhdGUKK3sK KwlTa2lwU3RhdGVTdG9wLAorCVNraXBTdGF0ZVNraXAsCisJU2tpcFN0YXRlU2tpcEV4dHJhLAor CVNraXBTdGF0ZU5leHQKK30gQlRTa2lwU3RhdGU7CisKK3R5cGVkZWYgc3RydWN0IEJUU2tpcFBv c0RhdGEKK3sKKwlCVFNraXBTdGF0ZSBuZXh0QWN0aW9uOworCVNjYW5EaXJlY3Rpb24gbmV4dERp cmVjdGlvbjsKKwlpbnQgbmV4dFNraXBJbmRleDsKKwlCVFNjYW5JbnNlcnREYXRhIHNraXBTY2Fu S2V5OworfSBCVFNraXBQb3NEYXRhOworCit0eXBlZGVmIHN0cnVjdCBCVFNraXBEYXRhCit7CisJ LyogdXNlZCB0byBjb250cm9sIHNraXBwaW5nCisJICogc2tpcFNjYW5LZXkgaXMgYSBjb21iaW5h dGlvbiBvZiBjdXJyZW50VHVwbGVLZXkgYW5kIGZ3ZFNjYW5LZXkvYndkU2NhbktleS4KKwkgKiBj dXJyZW50VHVwbGVLZXkgY29udGFpbnMgdGhlIHNjYW4ga2V5cyBmb3IgdGhlIGN1cnJlbnQgdHVw bGUKKwkgKiBmd2RTY2FuS2V5IGNvbnRhaW5zIHRoZSBzY2FuIGtleXMgZm9yIHF1YWxzIHRoYXQg d291bGQgYmUgY2hvc2VuIGZvciBhIGZvcndhcmQgc2NhbgorCSAqIGJ3ZFNjYW5LZXkgY29udGFp bnMgdGhlIHNjYW4ga2V5cyBmb3IgcXVhbHMgdGhhdCB3b3VsZCBiZSBjaG9zZW4gZm9yIGEgYmFj a3dhcmQgc2NhbgorCSAqIHdlIG5lZWQgYm90aCBmd2QgYW5kIGJ3ZCwgYmVjYXVzZSB0aGUgc2Nh biBrZXlzIGRpZmZlciBmb3IgZ29pbmcgZndkIGFuZCBid2QKKwkgKiBpZiBhIHF1YWwgd291bGQg YmUgYT4yIGFuZCBhPDUsIGZ3ZCB3b3VsZCBoYXZlIGE+Miwgd2hpbGUgYndkIHdvdWxkIGhhdmUg YTw1CisJICovCisJQlRTY2FuSW5zZXJ0RGF0YQljdXJyZW50VHVwbGVLZXk7CisJQlRTY2FuSW5z ZXJ0RGF0YQlmd2RTY2FuS2V5OworCVNjYW5LZXlEYXRhCQkJZndkTm90TnVsbEtleXNbSU5ERVhf TUFYX0tFWVNdOworCUJUU2Nhbkluc2VydERhdGEJYndkU2NhbktleTsKKwlTY2FuS2V5RGF0YQkJ CWJ3ZE5vdE51bGxLZXlzW0lOREVYX01BWF9LRVlTXTsKKwkvKiBsZW5ndGggb2YgcHJlZml4IHRv IHNraXAgKi8KKwlpbnQJCQkJCXByZWZpeDsKKworCUJUU2tpcFBvc0RhdGEgY3VyUG9zLCBtYXJr UG9zOworfSBCVFNraXBEYXRhOworCit0eXBlZGVmIEJUU2tpcERhdGEgKkJUU2tpcDsKKwogdHlw ZWRlZiBzdHJ1Y3QgQlRTY2FuT3BhcXVlRGF0YQogewogCS8qIHRoZXNlIGZpZWxkcyBhcmUgc2V0 IGJ5IF9idF9wcmVwcm9jZXNzX2tleXMoKTogKi8KQEAgLTk0Nyw2ICs5OTQsOSBAQCB0eXBlZGVm IHN0cnVjdCBCVFNjYW5PcGFxdWVEYXRhCiAJICovCiAJaW50CQkJbWFya0l0ZW1JbmRleDsJLyog aXRlbUluZGV4LCBvciAtMSBpZiBub3QgdmFsaWQgKi8KIAorCS8qIFdvcmsgc3BhY2UgZm9yIF9i dF9za2lwICovCisJQlRTa2lwCXNraXBEYXRhOwkvKiB1c2VkIHRvIGNvbnRyb2wgc2tpcHBpbmcg Ki8KKwogCS8qIGtlZXAgdGhlc2UgbGFzdCBpbiBzdHJ1Y3QgZm9yIGVmZmljaWVuY3kgKi8KIAlC VFNjYW5Qb3NEYXRhIGN1cnJQb3M7CQkvKiBjdXJyZW50IHBvc2l0aW9uIGRhdGEgKi8KIAlCVFNj YW5Qb3NEYXRhIG1hcmtQb3M7CQkvKiBtYXJrZWQgcG9zaXRpb24sIGlmIGFueSAqLwpAQCAtOTYx LDYgKzEwMTEsOCBAQCB0eXBlZGVmIEJUU2Nhbk9wYXF1ZURhdGEgKkJUU2Nhbk9wYXF1ZTsKICAq LwogI2RlZmluZSBTS19CVF9SRVFGV0QJMHgwMDAxMDAwMAkvKiByZXF1aXJlZCB0byBjb250aW51 ZSBmb3J3YXJkIHNjYW4gKi8KICNkZWZpbmUgU0tfQlRfUkVRQktXRAkweDAwMDIwMDAwCS8qIHJl cXVpcmVkIHRvIGNvbnRpbnVlIGJhY2t3YXJkIHNjYW4gKi8KKyNkZWZpbmUgU0tfQlRfUkVRU0tJ UEZXRAkweDAwMDQwMDAwCS8qIHJlcXVpcmVkIHRvIGNvbnRpbnVlIGZvcndhcmQgc2NhbiB3aXRo aW4gY3VycmVudCBwcmVmaXggKi8KKyNkZWZpbmUgU0tfQlRfUkVRU0tJUEJLV0QJMHgwMDA4MDAw MAkvKiByZXF1aXJlZCB0byBjb250aW51ZSBiYWNrd2FyZCBzY2FuIHdpdGhpbiBjdXJyZW50IHBy ZWZpeCAqLwogI2RlZmluZSBTS19CVF9JTkRPUFRJT05fU0hJRlQgIDI0CS8qIG11c3QgY2xlYXIg dGhlIGFib3ZlIGJpdHMgKi8KICNkZWZpbmUgU0tfQlRfREVTQwkJCShJTkRPUFRJT05fREVTQyA8 PCBTS19CVF9JTkRPUFRJT05fU0hJRlQpCiAjZGVmaW5lIFNLX0JUX05VTExTX0ZJUlNUCShJTkRP UFRJT05fTlVMTFNfRklSU1QgPDwgU0tfQlRfSU5ET1BUSU9OX1NISUZUKQpAQCAtMTAwNyw5ICsx MDU5LDEyIEBAIGV4dGVybiBib29sIGJ0aW5zZXJ0KFJlbGF0aW9uIHJlbCwgRGF0dW0gKnZhbHVl cywgYm9vbCAqaXNudWxsLAogCQkJCQkgSW5kZXhVbmlxdWVDaGVjayBjaGVja1VuaXF1ZSwKIAkJ CQkJIHN0cnVjdCBJbmRleEluZm8gKmluZGV4SW5mbyk7CiBleHRlcm4gSW5kZXhTY2FuRGVzYyBi dGJlZ2luc2NhbihSZWxhdGlvbiByZWwsIGludCBua2V5cywgaW50IG5vcmRlcmJ5cyk7CitleHRl cm4gSW5kZXhTY2FuRGVzYyBidGJlZ2luc2Nhbl9za2lwKFJlbGF0aW9uIHJlbCwgaW50IG5rZXlz LCBpbnQgbm9yZGVyYnlzLCBpbnQgc2tpcFByZWZpeCk7CiBleHRlcm4gU2l6ZSBidGVzdGltYXRl cGFyYWxsZWxzY2FuKHZvaWQpOwogZXh0ZXJuIHZvaWQgYnRpbml0cGFyYWxsZWxzY2FuKHZvaWQg KnRhcmdldCk7CiBleHRlcm4gYm9vbCBidGdldHR1cGxlKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2Nh bkRpcmVjdGlvbiBkaXIpOworZXh0ZXJuIGJvb2wgYnRnZXR0dXBsZV9za2lwKEluZGV4U2NhbkRl c2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsIFNjYW5EaXJlY3Rpb24gcG9zdGZpeERp cik7CitleHRlcm4gYm9vbCBidHNraXAoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9u IHByZWZpeERpciwgU2NhbkRpcmVjdGlvbiBwb3N0Zml4RGlyKTsKIGV4dGVybiBpbnQ2NCBidGdl dGJpdG1hcChJbmRleFNjYW5EZXNjIHNjYW4sIFRJREJpdG1hcCAqdGJtKTsKIGV4dGVybiB2b2lk IGJ0cmVzY2FuKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbktleSBzY2Fua2V5LCBpbnQgbnNjYW5r ZXlzLAogCQkJCQkgU2NhbktleSBvcmRlcmJ5cywgaW50IG5vcmRlcmJ5cyk7CkBAIC0xMTAxLDE1 ICsxMTU2LDc5IEBAIGV4dGVybiBCdWZmZXIgX2J0X21vdmVyaWdodChSZWxhdGlvbiByZWwsIEJU U2Nhbkluc2VydCBrZXksIEJ1ZmZlciBidWYsCiAJCQkJCQkJYm9vbCBmb3J1cGRhdGUsIEJUU3Rh Y2sgc3RhY2ssIGludCBhY2Nlc3MsIFNuYXBzaG90IHNuYXBzaG90KTsKIGV4dGVybiBPZmZzZXRO dW1iZXIgX2J0X2JpbnNyY2hfaW5zZXJ0KFJlbGF0aW9uIHJlbCwgQlRJbnNlcnRTdGF0ZSBpbnNl cnRzdGF0ZSk7CiBleHRlcm4gaW50MzIgX2J0X2NvbXBhcmUoUmVsYXRpb24gcmVsLCBCVFNjYW5J bnNlcnQga2V5LCBQYWdlIHBhZ2UsIE9mZnNldE51bWJlciBvZmZudW0pOwotZXh0ZXJuIGJvb2wg X2J0X2ZpcnN0KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIpOwotZXh0ZXJu IGJvb2wgX2J0X25leHQoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIGRpcik7Citl eHRlcm4gYm9vbCBfYnRfZmlyc3QoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIHBy ZWZpeERpciwgU2NhbkRpcmVjdGlvbiBwb3N0Zml4RGlyKTsKK2V4dGVybiBib29sIF9idF9uZXh0 KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsIFNjYW5EaXJlY3Rp b24gcG9zdGZpeERpcik7CiBleHRlcm4gQnVmZmVyIF9idF9nZXRfZW5kcG9pbnQoUmVsYXRpb24g cmVsLCB1aW50MzIgbGV2ZWwsIGJvb2wgcmlnaHRtb3N0LAogCQkJCQkJCSAgIFNuYXBzaG90IHNu YXBzaG90KTsKK2V4dGVybiBCdWZmZXIgX2J0X3dhbGtfbGVmdChSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWYsIFNuYXBzaG90IHNuYXBzaG90KTsKK2V4dGVybiBPZmZzZXROdW1iZXIgX2J0X2JpbnNy Y2goUmVsYXRpb24gcmVsLCBCVFNjYW5JbnNlcnQga2V5LCBCdWZmZXIgYnVmKTsKK2V4dGVybiB2 b2lkIF9idF9pbml0aWFsaXplX21vcmVfZGF0YShCVFNjYW5PcGFxdWUgc28sIFNjYW5EaXJlY3Rp b24gZGlyKTsKK2V4dGVybiBib29sIF9idF9yZWFkcGFnZShJbmRleFNjYW5EZXNjIHNjYW4sIFNj YW5EaXJlY3Rpb24gZGlyLAorCQkJCQkJIE9mZnNldE51bWJlciAqb2ZmbnVtLCBib29sIGlzUmVn dWxhck1vZGUpOworZXh0ZXJuIGJvb2wgX2J0X3N0ZXBwYWdlKEluZGV4U2NhbkRlc2Mgc2Nhbiwg U2NhbkRpcmVjdGlvbiBkaXIpOworZXh0ZXJuIGJvb2wgX2J0X3JlYWRuZXh0cGFnZShJbmRleFNj YW5EZXNjIHNjYW4sIEJsb2NrTnVtYmVyIGJsa25vLCBTY2FuRGlyZWN0aW9uIGRpcik7CitleHRl cm4gdm9pZCBfYnRfZHJvcF9sb2NrX2FuZF9tYXliZV9waW4oSW5kZXhTY2FuRGVzYyBzY2FuLCBC VFNjYW5Qb3Mgc3ApOworCisvKgorKiBwcm90b3R5cGVzIGZvciBmdW5jdGlvbnMgaW4gbmJ0c2tp cC5jCisqLworc3RhdGljIGlubGluZSBib29sCitfYnRfc2tpcF9lbmFibGVkKEJUU2Nhbk9wYXF1 ZSBzbykKK3sKKwlyZXR1cm4gc28tPnNraXBEYXRhICE9IE5VTEw7Cit9CisKK3N0YXRpYyBpbmxp bmUgYm9vbAorX2J0X3NraXBfaXNfcmVndWxhcl9tb2RlKFNjYW5EaXJlY3Rpb24gcHJlZml4RGly LCBTY2FuRGlyZWN0aW9uIHBvc3RmaXhEaXIpCit7CisJcmV0dXJuIHByZWZpeERpciA9PSBwb3N0 Zml4RGlyOworfQorCisvKiByZXR1cm5zIHdoZXRoZXIgb3Igbm90IHdlIGNhbiB1c2UgZXh0cmEg cXVhbHMgaW4gdGhlIHNjYW5rZXkgYWZ0ZXIgc2tpcHBpbmcgdG8gYSBwcmVmaXggKi8KK3N0YXRp YyBpbmxpbmUgYm9vbAorX2J0X2hhc19leHRyYV9xdWFsc19hZnRlcl9za2lwKEJUU2tpcCBza2lw LCBTY2FuRGlyZWN0aW9uIGRpciwgaW50IHByZWZpeCkKK3sKKwlpZiAoU2NhbkRpcmVjdGlvbklz Rm9yd2FyZChkaXIpKQorCXsKKwkJcmV0dXJuIHNraXAtPmZ3ZFNjYW5LZXkua2V5c3ogPiBwcmVm aXg7CisJfQorCWVsc2UKKwl7CisJCXJldHVybiBza2lwLT5id2RTY2FuS2V5LmtleXN6ID4gcHJl Zml4OworCX0KK30KKworLyogYWxpYXMgb2YgQlRTY2FuUG9zSXNWYWxpZCAqLworc3RhdGljIGlu bGluZSBib29sCitfYnRfc2tpcF9pc19hbHdheXNfdmFsaWQoQlRTY2FuT3BhcXVlIHNvKQorewor CXJldHVybiBCVFNjYW5Qb3NJc1ZhbGlkKHNvLT5jdXJyUG9zKTsKK30KKworZXh0ZXJuIGJvb2wg X2J0X3NraXAoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIHByZWZpeERpciwgU2Nh bkRpcmVjdGlvbiBwb3N0Zml4RGlyKTsKK2V4dGVybiB2b2lkIF9idF9za2lwX2NyZWF0ZV9zY2Fu a2V5cyhSZWxhdGlvbiByZWwsIEJUU2Nhbk9wYXF1ZSBzbyk7CitleHRlcm4gdm9pZCBfYnRfc2tp cF91cGRhdGVfc2NhbmtleV9mb3JfZXh0cmFfc2tpcChJbmRleFNjYW5EZXNjIHNjYW4sIFJlbGF0 aW9uIGluZGV4UmVsLAorCQkJCQlTY2FuRGlyZWN0aW9uIGN1ckRpciwgU2NhbkRpcmVjdGlvbiBw cmVmaXhEaXIsIGJvb2wgcHJpb3JpdGl6ZUVxdWFsLCBJbmRleFR1cGxlIGl0dXApOworZXh0ZXJu IHZvaWQgX2J0X3NraXBfb25jZShJbmRleFNjYW5EZXNjIHNjYW4sIEluZGV4VHVwbGUgKmN1clR1 cGxlLCBPZmZzZXROdW1iZXIgKmN1clR1cGxlT2ZmbnVtLAorCQkJCQkJICBib29sIGZvcmNlU2tp cCwgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsIFNjYW5EaXJlY3Rpb24gcG9zdGZpeERpcik7Citl eHRlcm4gdm9pZCBfYnRfc2tpcF9leHRyYV9jb25kaXRpb25zKEluZGV4U2NhbkRlc2Mgc2Nhbiwg SW5kZXhUdXBsZSAqY3VyVHVwbGUsIE9mZnNldE51bWJlciAqY3VyVHVwbGVPZmZudW0sCisJCQkJ CQkJCQkgIFNjYW5EaXJlY3Rpb24gcHJlZml4RGlyLCBTY2FuRGlyZWN0aW9uIHBvc3RmaXhEaXIs IEJUU2tpcENvbXBhcmVSZXN1bHQgKmNtcCk7CitleHRlcm4gYm9vbCBfYnRfc2tpcF9maW5kX25l eHQoSW5kZXhTY2FuRGVzYyBzY2FuLCBJbmRleFR1cGxlIGN1clR1cGxlLCBPZmZzZXROdW1iZXIg Y3VyVHVwbGVPZmZudW0sCisJCQkJCQkJICAgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsIFNjYW5E aXJlY3Rpb24gcG9zdGZpeERpcik7CitleHRlcm4gdm9pZCBfYnRfc2tpcF91bnRpbF9tYXRjaChJ bmRleFNjYW5EZXNjIHNjYW4sIEluZGV4VHVwbGUgKmN1clR1cGxlLCBPZmZzZXROdW1iZXIgKmN1 clR1cGxlT2ZmbnVtLAorCQkJCQkJCQkgU2NhbkRpcmVjdGlvbiBwcmVmaXhEaXIsIFNjYW5EaXJl Y3Rpb24gcG9zdGZpeERpcik7CitleHRlcm4gYm9vbCBfYnRfaGFzX3Jlc3VsdHMoQlRTY2FuT3Bh cXVlIHNvKTsKK2V4dGVybiB2b2lkIF9idF9jb21wYXJlX2N1cnJlbnRfaXRlbShJbmRleFNjYW5E ZXNjIHNjYW4sIEluZGV4VHVwbGUgdHVwbGUsIGludCB0dXBuYXR0cywKKwkJCQkJCQkJCSBTY2Fu RGlyZWN0aW9uIGRpciwgYm9vbCBpc1JlZ3VsYXJNb2RlLCBCVFNraXBDb21wYXJlUmVzdWx0KiBj bXApOworZXh0ZXJuIGJvb2wgX2J0X3N0ZXBfYmFja19wYWdlKEluZGV4U2NhbkRlc2Mgc2Nhbiwg SW5kZXhUdXBsZSAqY3VyVHVwbGUsIE9mZnNldE51bWJlciAqY3VyVHVwbGVPZmZudW0pOworZXh0 ZXJuIGJvb2wgX2J0X3N0ZXBfZm9yd2FyZF9wYWdlKEluZGV4U2NhbkRlc2Mgc2NhbiwgQmxvY2tO dW1iZXIgbmV4dCwgSW5kZXhUdXBsZSAqY3VyVHVwbGUsCisJCQkJCQkJCSAgT2Zmc2V0TnVtYmVy ICpjdXJUdXBsZU9mZm51bSk7CitleHRlcm4gYm9vbCBfYnRfY2hlY2trZXlzX3NraXAoSW5kZXhT Y2FuRGVzYyBzY2FuLCBJbmRleFR1cGxlIHR1cGxlLCBpbnQgdHVwbmF0dHMsCisJCQkJCQkJICAg U2NhbkRpcmVjdGlvbiBkaXIsIGJvb2wgKmNvbnRpbnVlc2NhbiwgaW50ICpwcmVmaXhza2lwaW5k ZXgpOwogCiAvKgogICogcHJvdG90eXBlcyBmb3IgZnVuY3Rpb25zIGluIG5idHV0aWxzLmMKICAq LwotZXh0ZXJuIEJUU2Nhbkluc2VydCBfYnRfbWtzY2Fua2V5KFJlbGF0aW9uIHJlbCwgSW5kZXhU dXBsZSBpdHVwKTsKIGV4dGVybiB2b2lkIF9idF9mcmVlc3RhY2soQlRTdGFjayBzdGFjayk7CiBl eHRlcm4gdm9pZCBfYnRfcHJlcHJvY2Vzc19hcnJheV9rZXlzKEluZGV4U2NhbkRlc2Mgc2Nhbik7 CiBleHRlcm4gdm9pZCBfYnRfc3RhcnRfYXJyYXlfa2V5cyhJbmRleFNjYW5EZXNjIHNjYW4sIFNj YW5EaXJlY3Rpb24gZGlyKTsKQEAgLTExMTgsNyArMTIzNyw3IEBAIGV4dGVybiB2b2lkIF9idF9t YXJrX2FycmF5X2tleXMoSW5kZXhTY2FuRGVzYyBzY2FuKTsKIGV4dGVybiB2b2lkIF9idF9yZXN0 b3JlX2FycmF5X2tleXMoSW5kZXhTY2FuRGVzYyBzY2FuKTsKIGV4dGVybiB2b2lkIF9idF9wcmVw cm9jZXNzX2tleXMoSW5kZXhTY2FuRGVzYyBzY2FuKTsKIGV4dGVybiBib29sIF9idF9jaGVja2tl eXMoSW5kZXhTY2FuRGVzYyBzY2FuLCBJbmRleFR1cGxlIHR1cGxlLAotCQkJCQkJICBpbnQgdHVw bmF0dHMsIFNjYW5EaXJlY3Rpb24gZGlyLCBib29sICpjb250aW51ZXNjYW4pOworCQkJCQkJICBp bnQgdHVwbmF0dHMsIFNjYW5EaXJlY3Rpb24gZGlyLCBib29sICpjb250aW51ZXNjYW4sIGludCAq aW5kZXhTa2lwUHJlZml4KTsKIGV4dGVybiB2b2lkIF9idF9raWxsaXRlbXMoSW5kZXhTY2FuRGVz YyBzY2FuKTsKIGV4dGVybiBCVEN5Y2xlSWQgX2J0X3ZhY3V1bV9jeWNsZWlkKFJlbGF0aW9uIHJl bCk7CiBleHRlcm4gQlRDeWNsZUlkIF9idF9zdGFydF92YWN1dW0oUmVsYXRpb24gcmVsKTsKQEAg LTExNDAsNiArMTI1OSwxOSBAQCBleHRlcm4gYm9vbCBfYnRfY2hlY2tfbmF0dHMoUmVsYXRpb24g cmVsLCBib29sIGhlYXBrZXlzcGFjZSwgUGFnZSBwYWdlLAogZXh0ZXJuIHZvaWQgX2J0X2NoZWNr X3RoaXJkX3BhZ2UoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBoZWFwLAogCQkJCQkJCQkgYm9vbCBu ZWVkaGVhcHRpZHNwYWNlLCBQYWdlIHBhZ2UsIEluZGV4VHVwbGUgbmV3dHVwKTsKIGV4dGVybiBi b29sIF9idF9hbGxlcXVhbGltYWdlKFJlbGF0aW9uIHJlbCwgYm9vbCBkZWJ1Z21lc3NhZ2UpOwor ZXh0ZXJuIGJvb2wgX2J0X2NoZWNra2V5c190aHJlZXdheShJbmRleFNjYW5EZXNjIHNjYW4sIElu ZGV4VHVwbGUgdHVwbGUsIGludCB0dXBuYXR0cywKKwkJCQlTY2FuRGlyZWN0aW9uIGRpciwgYm9v bCAqY29udGludWVzY2FuLCBpbnQgKnByZWZpeFNraXBJbmRleCk7CitleHRlcm4gYm9vbCBfYnRf Y3JlYXRlX2luc2VydGlvbl9zY2FuX2tleShSZWxhdGlvbglyZWwsIFNjYW5EaXJlY3Rpb24gZGly LAorCQkJCVNjYW5LZXkqIHN0YXJ0S2V5cywgaW50IGtleXNDb3VudCwKKwkJCQlCVFNjYW5JbnNl cnQgaW5za2V5LCBTdHJhdGVneU51bWJlciogc3RyYXRUb3RhbCwKKwkJCQlib29sKiBnb2JhY2sp OworZXh0ZXJuIHZvaWQgX2J0X3NldF9ic2VhcmNoX2ZsYWdzKFN0cmF0ZWd5TnVtYmVyIHN0cmF0 VG90YWwsIFNjYW5EaXJlY3Rpb24gZGlyLAorCQlib29sKiBuZXh0a2V5LCBib29sKiBnb2JhY2sp OworZXh0ZXJuIGludCBfYnRfY2hvb3NlX3NjYW5fa2V5cyhTY2FuS2V5IHNjYW5LZXlzLCBpbnQg bnVtYmVyT2ZLZXlzLCBTY2FuRGlyZWN0aW9uIGRpciwKK1NjYW5LZXkqIHN0YXJ0S2V5cywgU2Nh bktleURhdGEqIG5vdG51bGxrZXlzLAorICBTdHJhdGVneU51bWJlciogc3RyYXRUb3RhbCwgaW50 IHByZWZpeCk7CitleHRlcm4gQlRTY2FuSW5zZXJ0IF9idF9ta3NjYW5rZXkoUmVsYXRpb24gcmVs LCBJbmRleFR1cGxlIGl0dXAsIEJUU2Nhbkluc2VydCBrZXkpOworZXh0ZXJuIHZvaWQgcHJpbnRf aXR1cChCbG9ja051bWJlciBibGssIEluZGV4VHVwbGUgbGVmdCwgSW5kZXhUdXBsZSByaWdodCwg UmVsYXRpb24gcmVsLCBjaGFyICpleHRyYSk7CiAKIC8qCiAgKiBwcm90b3R5cGVzIGZvciBmdW5j dGlvbnMgaW4gbmJ0dmFsaWRhdGUuYwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv ZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggOTQ4OTA1 MTJkYy4uODk3YjQ0NTg4NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0 b3IuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC00MjksOSArNDI5 LDEzIEBAIGV4dGVybiBEYXR1bSBFeGVjTWFrZUZ1bmN0aW9uUmVzdWx0U2V0KFNldEV4cHJTdGF0 ZSAqZmNhY2hlLAogICovCiB0eXBlZGVmIFR1cGxlVGFibGVTbG90ICooKkV4ZWNTY2FuQWNjZXNz TXRkKSAoU2NhblN0YXRlICpub2RlKTsKIHR5cGVkZWYgYm9vbCAoKkV4ZWNTY2FuUmVjaGVja010 ZCkgKFNjYW5TdGF0ZSAqbm9kZSwgVHVwbGVUYWJsZVNsb3QgKnNsb3QpOwordHlwZWRlZiBib29s ICgqRXhlY1NjYW5Ta2lwTXRkKSAoU2NhblN0YXRlICpub2RlKTsKIAogZXh0ZXJuIFR1cGxlVGFi bGVTbG90ICpFeGVjU2NhbihTY2FuU3RhdGUgKm5vZGUsIEV4ZWNTY2FuQWNjZXNzTXRkIGFjY2Vz c010ZCwKIAkJCQkJCQkJRXhlY1NjYW5SZWNoZWNrTXRkIHJlY2hlY2tNdGQpOworZXh0ZXJuIFR1 cGxlVGFibGVTbG90ICpFeGVjU2NhbkV4dGVuZGVkKFNjYW5TdGF0ZSAqbm9kZSwgRXhlY1NjYW5B Y2Nlc3NNdGQgYWNjZXNzTXRkLAorCQkJCQkJCQlFeGVjU2NhblJlY2hlY2tNdGQgcmVjaGVja010 ZCwKKwkJCQkJCQkJRXhlY1NjYW5Ta2lwTXRkIHNraXBNdGQpOwogZXh0ZXJuIHZvaWQgRXhlY0Fz c2lnblNjYW5Qcm9qZWN0aW9uSW5mbyhTY2FuU3RhdGUgKm5vZGUpOwogZXh0ZXJuIHZvaWQgRXhl Y0Fzc2lnblNjYW5Qcm9qZWN0aW9uSW5mb1dpdGhWYXJubyhTY2FuU3RhdGUgKm5vZGUsIEluZGV4 IHZhcm5vKTsKIGV4dGVybiB2b2lkIEV4ZWNTY2FuUmVTY2FuKFNjYW5TdGF0ZSAqbm9kZSk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDNkMjdkNTBmMDkuLjAzZTUwNjA3NjUgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4 ZWNub2Rlcy5oCkBAIC0xMzMxLDYgKzEzMzEsNyBAQCB0eXBlZGVmIHN0cnVjdCBTY2FuU3RhdGUK IAlSZWxhdGlvbglzc19jdXJyZW50UmVsYXRpb247CiAJc3RydWN0IFRhYmxlU2NhbkRlc2NEYXRh ICpzc19jdXJyZW50U2NhbkRlc2M7CiAJVHVwbGVUYWJsZVNsb3QgKnNzX1NjYW5UdXBsZVNsb3Q7 CisJYm9vbCBzc19GaXJzdFR1cGxlRW1pdHRlZDsKIH0gU2NhblN0YXRlOwogCiAvKiAtLS0tLS0t LS0tLS0tLS0tCkBAIC0xNDI3LDYgKzE0MjgsOCBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleFNjYW5T dGF0ZQogCUV4cHJDb250ZXh0ICppc3NfUnVudGltZUNvbnRleHQ7CiAJUmVsYXRpb24JaXNzX1Jl bGF0aW9uRGVzYzsKIAlzdHJ1Y3QgSW5kZXhTY2FuRGVzY0RhdGEgKmlzc19TY2FuRGVzYzsKKwlp bnQJCQlpc3NfU2tpcFByZWZpeFNpemU7CisJYm9vbAkJaXNzX0Rpc3RpbmN0OwogCiAJLyogVGhl c2UgYXJlIG5lZWRlZCBmb3IgcmUtY2hlY2tpbmcgT1JERVIgQlkgZXhwciBvcmRlcmluZyAqLwog CXBhaXJpbmdoZWFwICppc3NfUmVvcmRlclF1ZXVlOwpAQCAtMTQ1Niw2ICsxNDU5LDggQEAgdHlw ZWRlZiBzdHJ1Y3QgSW5kZXhTY2FuU3RhdGUKICAqCQlUYWJsZVNsb3QJCSAgIHNsb3QgZm9yIGhv bGRpbmcgdHVwbGVzIGZldGNoZWQgZnJvbSB0aGUgdGFibGUKICAqCQlWTUJ1ZmZlcgkJICAgYnVm ZmVyIGluIHVzZSBmb3IgdmlzaWJpbGl0eSBtYXAgdGVzdGluZywgaWYgYW55CiAgKgkJUHNjYW5M ZW4JCSAgIHNpemUgb2YgcGFyYWxsZWwgaW5kZXgtb25seSBzY2FuIGRlc2NyaXB0b3IKKyAqCQlT a2lwUHJlZml4U2l6ZQkgICBudW1iZXIgb2Yga2V5cyBmb3Igc2tpcC1iYXNlZCBESVNUSU5DVAor ICoJCUZpcnN0VHVwbGVFbWl0dGVkICBoYXMgdGhlIGZpcnN0IHR1cGxlIGJlZW4gZW1pdHRlZAog ICogLS0tLS0tLS0tLS0tLS0tLQogICovCiB0eXBlZGVmIHN0cnVjdCBJbmRleE9ubHlTY2FuU3Rh dGUKQEAgLTE0NzQsNiArMTQ3OSw4IEBAIHR5cGVkZWYgc3RydWN0IEluZGV4T25seVNjYW5TdGF0 ZQogCXN0cnVjdCBJbmRleFNjYW5EZXNjRGF0YSAqaW9zc19TY2FuRGVzYzsKIAlUdXBsZVRhYmxl U2xvdCAqaW9zc19UYWJsZVNsb3Q7CiAJQnVmZmVyCQlpb3NzX1ZNQnVmZmVyOworCWludAkJCWlv c3NfU2tpcFByZWZpeFNpemU7CisJYm9vbAkJaW9zc19EaXN0aW5jdDsKIAlTaXplCQlpb3NzX1Bz Y2FuTGVuOwogfSBJbmRleE9ubHlTY2FuU3RhdGU7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXgg ZDQ4MTZjMTgwZC4uODZkY2QwNTdlZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0 aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTgzOSw2ICs4 MzksNyBAQCBzdHJ1Y3QgSW5kZXhPcHRJbmZvCiAJYm9vbAkJYW1zZWFyY2hudWxsczsJLyogY2Fu IEFNIHNlYXJjaCBmb3IgTlVMTC9OT1QgTlVMTCBlbnRyaWVzPyAqLwogCWJvb2wJCWFtaGFzZ2V0 dHVwbGU7CS8qIGRvZXMgQU0gaGF2ZSBhbWdldHR1cGxlIGludGVyZmFjZT8gKi8KIAlib29sCQlh bWhhc2dldGJpdG1hcDsgLyogZG9lcyBBTSBoYXZlIGFtZ2V0Yml0bWFwIGludGVyZmFjZT8gKi8K Kwlib29sCQlhbWNhbnNraXA7CQkvKiBjYW4gQU0gc2tpcCBkdXBsaWNhdGUgdmFsdWVzPyAqLwog CWJvb2wJCWFtY2FucGFyYWxsZWw7CS8qIGRvZXMgQU0gc3VwcG9ydCBwYXJhbGxlbCBzY2FuPyAq LwogCS8qIFJhdGhlciB0aGFuIGluY2x1ZGUgYW1hcGkuaCBoZXJlLCB3ZSBkZWNsYXJlIGFtY29z dGVzdGltYXRlIGxpa2UgdGhpcyAqLwogCXZvaWQJCSgqYW1jb3N0ZXN0aW1hdGUpICgpOwkvKiBB TSdzIGNvc3QgZXN0aW1hdG9yICovCkBAIC0xMTg5LDYgKzExOTAsOSBAQCB0eXBlZGVmIHN0cnVj dCBQYXRoCiAgKiB3ZSBuZWVkIG5vdCByZWNvbXB1dGUgdGhlbSB3aGVuIGNvbnNpZGVyaW5nIHVz aW5nIHRoZSBzYW1lIGluZGV4IGluIGEKICAqIGJpdG1hcCBpbmRleC9oZWFwIHNjYW4gKHNlZSBC aXRtYXBIZWFwUGF0aCkuICBUaGUgY29zdHMgb2YgdGhlIEluZGV4UGF0aAogICogaXRzZWxmIHJl cHJlc2VudCB0aGUgY29zdHMgb2YgYW4gSW5kZXhTY2FuIG9yIEluZGV4T25seVNjYW4gcGxhbiB0 eXBlLgorICoKKyAqICdpbmRleHNraXBwcmVmaXgnIHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBj b2x1bW5zIHRvIGNvbnNpZGVyIGZvciBza2lwCisgKiBzY2Fucy4KICAqLS0tLS0tLS0tLQogICov CiB0eXBlZGVmIHN0cnVjdCBJbmRleFBhdGgKQEAgLTEyMDEsNiArMTIwNSw4IEBAIHR5cGVkZWYg c3RydWN0IEluZGV4UGF0aAogCVNjYW5EaXJlY3Rpb24gaW5kZXhzY2FuZGlyOwogCUNvc3QJCWlu ZGV4dG90YWxjb3N0OwogCVNlbGVjdGl2aXR5IGluZGV4c2VsZWN0aXZpdHk7CisJaW50CQkJaW5k ZXhza2lwcHJlZml4OworCWJvb2wJCWluZGV4ZGlzdGluY3Q7CiB9IEluZGV4UGF0aDsKIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggNDg2OWZlN2I2ZC4uNDlmNGRlMzg0MyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmgKQEAgLTQwOSw2ICs0MDksOCBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleFNjYW4K IAlMaXN0CSAgICppbmRleG9yZGVyYnlvcmlnOwkvKiB0aGUgc2FtZSBpbiBvcmlnaW5hbCBmb3Jt ICovCiAJTGlzdAkgICAqaW5kZXhvcmRlcmJ5b3BzOwkvKiBPSURzIG9mIHNvcnQgb3BzIGZvciBP UkRFUiBCWSBleHBycyAqLwogCVNjYW5EaXJlY3Rpb24gaW5kZXhvcmRlcmRpcjsJLyogZm9yd2Fy ZCBvciBiYWNrd2FyZCBvciBkb24ndCBjYXJlICovCisJaW50CQkJaW5kZXhza2lwcHJlZml4c2l6 ZTsJLyogdGhlIHNpemUgb2YgdGhlIHByZWZpeCBmb3Igc2tpcCBzY2FucyAqLworCWJvb2wJCWlu ZGV4ZGlzdGluY3Q7IC8qIHdoZXRoZXIgb25seSBkaXN0aW5jdCBrZXlzIGFyZSByZXF1ZXN0ZWQg Ki8KIH0gSW5kZXhTY2FuOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC00MzYsNiArNDM4LDgg QEAgdHlwZWRlZiBzdHJ1Y3QgSW5kZXhPbmx5U2NhbgogCUxpc3QJICAgKmluZGV4b3JkZXJieTsJ LyogbGlzdCBvZiBpbmRleCBPUkRFUiBCWSBleHBycyAqLwogCUxpc3QJICAgKmluZGV4dGxpc3Q7 CQkvKiBUYXJnZXRFbnRyeSBsaXN0IGRlc2NyaWJpbmcgaW5kZXgncyBjb2xzICovCiAJU2NhbkRp cmVjdGlvbiBpbmRleG9yZGVyZGlyOwkvKiBmb3J3YXJkIG9yIGJhY2t3YXJkIG9yIGRvbid0IGNh cmUgKi8KKwlpbnQJCQlpbmRleHNraXBwcmVmaXhzaXplOwkvKiB0aGUgc2l6ZSBvZiB0aGUgcHJl Zml4IGZvciBza2lwIHNjYW5zICovCisJYm9vbAkJaW5kZXhkaXN0aW5jdDsgLyogd2hldGhlciBv bmx5IGRpc3RpbmN0IGtleXMgYXJlIHJlcXVlc3RlZCAqLwogfSBJbmRleE9ubHlTY2FuOwogCiAv KiAtLS0tLS0tLS0tLS0tLS0tCkBAIC00NjIsNiArNDY2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQml0 bWFwSW5kZXhTY2FuCiAJYm9vbAkJaXNzaGFyZWQ7CQkvKiBDcmVhdGUgc2hhcmVkIGJpdG1hcCBp ZiBzZXQgKi8KIAlMaXN0CSAgICppbmRleHF1YWw7CQkvKiBsaXN0IG9mIGluZGV4IHF1YWxzIChP cEV4cHJzKSAqLwogCUxpc3QJICAgKmluZGV4cXVhbG9yaWc7CS8qIHRoZSBzYW1lIGluIG9yaWdp bmFsIGZvcm0gKi8KKwlpbnQJCQlpbmRleHNraXBwcmVmaXhzaXplOwkvKiB0aGUgc2l6ZSBvZiB0 aGUgcHJlZml4IGZvciBza2lwIHNjYW5zICovCiB9IEJpdG1hcEluZGV4U2NhbjsKIAogLyogLS0t LS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL2Nvc3QuaCBi L3NyYy9pbmNsdWRlL29wdGltaXplci9jb3N0LmgKaW5kZXggNzM1YmEwOTY1MC4uOTIzZWVjZjVm MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL2Nvc3QuaAorKysgYi9zcmMvaW5j bHVkZS9vcHRpbWl6ZXIvY29zdC5oCkBAIC01MCw2ICs1MCw3IEBAIGV4dGVybiBQR0RMTElNUE9S VCBpbnQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKIGV4dGVybiBQR0RMTElNUE9S VCBib29sIGVuYWJsZV9zZXFzY2FuOwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgZW5hYmxlX2lu ZGV4c2NhbjsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIGVuYWJsZV9pbmRleG9ubHlzY2FuOwor ZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgZW5hYmxlX2luZGV4c2tpcHNjYW47CiBleHRlcm4gUEdE TExJTVBPUlQgYm9vbCBlbmFibGVfYml0bWFwc2NhbjsKIGV4dGVybiBQR0RMTElNUE9SVCBib29s IGVuYWJsZV90aWRzY2FuOwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgZW5hYmxlX3NvcnQ7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRl L29wdGltaXplci9wYXRobm9kZS5oCmluZGV4IGY3NWZmNmYzMjMuLjZjOGM5ZGFkYmIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oCisrKyBiL3NyYy9pbmNsdWRl L29wdGltaXplci9wYXRobm9kZS5oCkBAIC0yMDEsNiArMjAxLDExIEBAIGV4dGVybiBVcHBlclVu aXF1ZVBhdGggKmNyZWF0ZV91cHBlcl91bmlxdWVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAkJ CQkJCQkJCQkJCSBQYXRoICpzdWJwYXRoLAogCQkJCQkJCQkJCQkJIGludCBudW1Db2xzLAogCQkJ CQkJCQkJCQkJIGRvdWJsZSBudW1Hcm91cHMpOworZXh0ZXJuIEluZGV4UGF0aCAqY3JlYXRlX3Nr aXBzY2FuX3VuaXF1ZV9wYXRoKFBsYW5uZXJJbmZvICpyb290LAorCQkJCQkJCQkJCQkgIFJlbE9w dEluZm8gKnJlbCwKKwkJCQkJCQkJCQkJICBQYXRoICpzdWJwYXRoLAorCQkJCQkJCQkJCQkgIGlu dCBudW1Db2xzLAorCQkJCQkJCQkJCQkgIGRvdWJsZSBudW1Hcm91cHMpOwogZXh0ZXJuIEFnZ1Bh dGggKmNyZWF0ZV9hZ2dfcGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJUmVsT3B0SW5m byAqcmVsLAogCQkJCQkJCQlQYXRoICpzdWJwYXRoLApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvZW5jbmFtZXMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2VuY25hbWVzLmMKbmV3 IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMC4uY2E3ODYxOGI1NQotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2VuY25hbWVzLmMKQEAgLTAsMCArMSBAQAor Li4vLi4vLi4vc3JjL2JhY2tlbmQvdXRpbHMvbWIvZW5jbmFtZXMuYwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3djaGFyLmMgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS93Y2hhci5jCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAw MDAwMDAwMDAuLmEyNzUwOGY3MmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS93Y2hhci5jCkBAIC0wLDAgKzEgQEAKKy4uLy4uLy4uL3NyYy9iYWNrZW5kL3V0aWxzL21i L3djaGFyLmMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdF9kaXN0aW5jdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3NlbGVjdF9kaXN0aW5jdC5vdXQKaW5kZXggMTFjNmY1MGZiZi4uZTIxYWZhNzk5 MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3RfZGlzdGluY3Qu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X2Rpc3RpbmN0Lm91dApA QCAtMzA2LDMgKzMwNiw2MDQgQEAgU0VMRUNUIG51bGwgSVMgTk9UIERJU1RJTkNUIEZST00gbnVs bCBhcyAieWVzIjsKICB0CiAoMSByb3cpCiAKKy0tIGluZGV4IG9ubHkgc2tpcCBzY2FuCitDUkVB VEUgVEFCTEUgZGlzdGluY3RfYSAoYSBpbnQsIGIgaW50LCBjIGludCk7CitJTlNFUlQgSU5UTyBk aXN0aW5jdF9hICgKKyAgICBTRUxFQ1QgZml2ZSwgdGVudGhvdXMsIDEwIEZST00KKyAgICBnZW5l cmF0ZV9zZXJpZXMoMSwgNSkgZml2ZSwKKyAgICBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMDApIHRl bnRob3VzCispOworQ1JFQVRFIElOREVYIE9OIGRpc3RpbmN0X2EgKGEsIGIpOworQU5BTFlaRSBk aXN0aW5jdF9hOworU0VMRUNUIERJU1RJTkNUIGEgRlJPTSBkaXN0aW5jdF9hOworIGEgCistLS0K KyAxCisgMgorIDMKKyA0CisgNQorKDUgcm93cykKKworU0VMRUNUIERJU1RJTkNUIGEgRlJPTSBk aXN0aW5jdF9hIFdIRVJFIGEgPSAxOworIGEgCistLS0KKyAxCisoMSByb3cpCisKK1NFTEVDVCBE SVNUSU5DVCBhIEZST00gZGlzdGluY3RfYSBPUkRFUiBCWSBhIERFU0M7CisgYSAKKy0tLQorIDUK KyA0CisgMworIDIKKyAxCisoNSByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg RElTVElOQ1QgYSBGUk9NIGRpc3RpbmN0X2E7CisgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbmRleCBPbmx5IFNjYW4gdXNpbmcgZGlz dGluY3RfYV9hX2JfaWR4IG9uIGRpc3RpbmN0X2EKKyAgIFNraXAgc2NhbjogRGlzdGluY3Qgb25s eQorKDIgcm93cykKKworLS0gdGVzdCBpbmRleCBza2lwIHNjYW4gd2l0aCBhIGNvbmRpdGlvbiBv biBhIG5vbiB1bmlxdWUgZmllbGQKK1NFTEVDVCBESVNUSU5DVCBPTiAoYSkgYSwgYiBGUk9NIGRp c3RpbmN0X2EgV0hFUkUgYiA9IDI7CisgYSB8IGIgCistLS0rLS0tCisgMSB8IDIKKyAyIHwgMgor IDMgfCAyCisgNCB8IDIKKyA1IHwgMgorKDUgcm93cykKKworLS0gdGVzdCBpbmRleCBza2lwIHNj YW4gYmFja3dhcmRzCitTRUxFQ1QgRElTVElOQ1QgT04gKGEpIGEsIGIgRlJPTSBkaXN0aW5jdF9h IE9SREVSIEJZIGEgREVTQywgYiBERVNDOworIGEgfCAgIGIgICAKKy0tLSstLS0tLS0tCisgNSB8 IDEwMDAwCisgNCB8IDEwMDAwCisgMyB8IDEwMDAwCisgMiB8IDEwMDAwCisgMSB8IDEwMDAwCiso NSByb3dzKQorCistLSBjaGVjayBjb2x1bXMgb3JkZXIKK0NSRUFURSBJTkRFWCBkaXN0aW5jdF9h X2JfYSBvbiBkaXN0aW5jdF9hIChiLCBhKTsKK1NFTEVDVCBESVNUSU5DVCBhIEZST00gZGlzdGlu Y3RfYSBXSEVSRSBiID0gMjsKKyBhIAorLS0tCisgMQorIDIKKyAzCisgNAorIDUKKyg1IHJvd3Mp CisKK1NFTEVDVCBESVNUSU5DVCBvbiAoYSwgYikgYSwgYiBGUk9NIGRpc3RpbmN0X2EgV0hFUkUg YiA9IDI7CisgYSB8IGIgCistLS0rLS0tCisgMSB8IDIKKyAyIHwgMgorIDMgfCAyCisgNCB8IDIK KyA1IHwgMgorKDUgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIERJU1RJTkNU IGEgRlJPTSBkaXN0aW5jdF9hIFdIRVJFIGIgPSAyOworICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEluZGV4IE9ubHkgU2NhbiB1c2luZyBkaXN0aW5j dF9hX2JfYSBvbiBkaXN0aW5jdF9hCisgICBTa2lwIHNjYW46IERpc3RpbmN0IG9ubHkKKyAgIElu ZGV4IENvbmQ6IChiID0gMikKKygzIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBESVNUSU5DVCBvbiAoYSwgYikgYSwgYiBGUk9NIGRpc3RpbmN0X2EgV0hFUkUgYiA9IDI7Cisg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5kZXgg T25seSBTY2FuIHVzaW5nIGRpc3RpbmN0X2FfYl9hIG9uIGRpc3RpbmN0X2EKKyAgIFNraXAgc2Nh bjogRGlzdGluY3Qgb25seQorICAgSW5kZXggQ29uZDogKGIgPSAyKQorKDMgcm93cykKKworRFJP UCBJTkRFWCBkaXN0aW5jdF9hX2JfYTsKKy0tIHRlc3Qgb3Bwb3NpdGUgc2Nhbi9pbmRleCBkaXJl Y3Rpb25zIGluc2lkZSBhIGN1cnNvcgorLS0gZm9yd2FyZC9iYWNrd2FyZAorQkVHSU47CitERUNM QVJFIGMgU0NST0xMIENVUlNPUiBGT1IKK1NFTEVDVCBESVNUSU5DVCBPTiAoYSkgYSxiIEZST00g ZGlzdGluY3RfYSBPUkRFUiBCWSBhLCBiOworRkVUQ0ggRlJPTSBjOworIGEgfCBiIAorLS0tKy0t LQorIDEgfCAxCisoMSByb3cpCisKK0ZFVENIIEJBQ0tXQVJEIEZST00gYzsKKyBhIHwgYiAKKy0t LSstLS0KKygwIHJvd3MpCisKK0ZFVENIIDYgRlJPTSBjOworIGEgfCBiIAorLS0tKy0tLQorIDEg fCAxCisgMiB8IDEKKyAzIHwgMQorIDQgfCAxCisgNSB8IDEKKyg1IHJvd3MpCisKK0ZFVENIIEJB Q0tXQVJEIDYgRlJPTSBjOworIGEgfCBiIAorLS0tKy0tLQorIDUgfCAxCisgNCB8IDEKKyAzIHwg MQorIDIgfCAxCisgMSB8IDEKKyg1IHJvd3MpCisKK0ZFVENIIDYgRlJPTSBjOworIGEgfCBiIAor LS0tKy0tLQorIDEgfCAxCisgMiB8IDEKKyAzIHwgMQorIDQgfCAxCisgNSB8IDEKKyg1IHJvd3Mp CisKK0ZFVENIIEJBQ0tXQVJEIDYgRlJPTSBjOworIGEgfCBiIAorLS0tKy0tLQorIDUgfCAxCisg NCB8IDEKKyAzIHwgMQorIDIgfCAxCisgMSB8IDEKKyg1IHJvd3MpCisKK0VORDsKKy0tIGJhY2t3 YXJkL2ZvcndhcmQKK0JFR0lOOworREVDTEFSRSBjIFNDUk9MTCBDVVJTT1IgRk9SCitTRUxFQ1Qg RElTVElOQ1QgT04gKGEpIGEsYiBGUk9NIGRpc3RpbmN0X2EgT1JERVIgQlkgYSBERVNDLCBiIERF U0M7CitGRVRDSCBGUk9NIGM7CisgYSB8ICAgYiAgIAorLS0tKy0tLS0tLS0KKyA1IHwgMTAwMDAK KygxIHJvdykKKworRkVUQ0ggQkFDS1dBUkQgRlJPTSBjOworIGEgfCBiIAorLS0tKy0tLQorKDAg cm93cykKKworRkVUQ0ggNiBGUk9NIGM7CisgYSB8ICAgYiAgIAorLS0tKy0tLS0tLS0KKyA1IHwg MTAwMDAKKyA0IHwgMTAwMDAKKyAzIHwgMTAwMDAKKyAyIHwgMTAwMDAKKyAxIHwgMTAwMDAKKyg1 IHJvd3MpCisKK0ZFVENIIEJBQ0tXQVJEIDYgRlJPTSBjOworIGEgfCAgIGIgICAKKy0tLSstLS0t LS0tCisgMSB8IDEwMDAwCisgMiB8IDEwMDAwCisgMyB8IDEwMDAwCisgNCB8IDEwMDAwCisgNSB8 IDEwMDAwCisoNSByb3dzKQorCitGRVRDSCA2IEZST00gYzsKKyBhIHwgICBiICAgCistLS0rLS0t LS0tLQorIDUgfCAxMDAwMAorIDQgfCAxMDAwMAorIDMgfCAxMDAwMAorIDIgfCAxMDAwMAorIDEg fCAxMDAwMAorKDUgcm93cykKKworRkVUQ0ggQkFDS1dBUkQgNiBGUk9NIGM7CisgYSB8ICAgYiAg IAorLS0tKy0tLS0tLS0KKyAxIHwgMTAwMDAKKyAyIHwgMTAwMDAKKyAzIHwgMTAwMDAKKyA0IHwg MTAwMDAKKyA1IHwgMTAwMDAKKyg1IHJvd3MpCisKK0VORDsKKy0tIHRlc3QgbWlzc2luZyB2YWx1 ZXMgYW5kIHNraXBwaW5nIGZyb20gdGhlIGVuZAorQ1JFQVRFIFRBQkxFIGRpc3RpbmN0X2FiYyhh IGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBJTkRFWCBPTiBkaXN0aW5jdF9hYmMoYSwgYiwg Yyk7CitJTlNFUlQgSU5UTyBkaXN0aW5jdF9hYmMKKwlWQUxVRVMgKDEsIDEsIDEpLAorCQkgICAo MSwgMSwgMiksCisJCSAgICgxLCAyLCAyKSwKKwkJICAgKDEsIDIsIDMpLAorCQkgICAoMiwgMiwg MSksCisJCSAgICgyLCAyLCAzKSwKKwkJICAgKDMsIDEsIDEpLAorCQkgICAoMywgMSwgMiksCisJ CSAgICgzLCAyLCAyKSwKKwkJICAgKDMsIDIsIDMpOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIERJU1RJTkNUIE9OIChhKSBhLGIsYyBGUk9NIGRpc3RpbmN0X2FiYyBXSEVSRSBjID0gMjsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEluZGV4IE9ubHkgU2NhbiB1c2luZyBkaXN0aW5jdF9hYmNfYV9iX2Nf aWR4IG9uIGRpc3RpbmN0X2FiYworICAgU2tpcCBzY2FuOiBEaXN0aW5jdCBvbmx5CisgICBJbmRl eCBDb25kOiAoYyA9IDIpCisoMyByb3dzKQorCitCRUdJTjsKK0RFQ0xBUkUgYyBTQ1JPTEwgQ1VS U09SIEZPUgorU0VMRUNUIERJU1RJTkNUIE9OIChhKSBhLGIsYyBGUk9NIGRpc3RpbmN0X2FiYyBX SEVSRSBjID0gMjsKK0ZFVENIIEFMTCBGUk9NIGM7CisgYSB8IGIgfCBjIAorLS0tKy0tLSstLS0K KyAxIHwgMSB8IDIKKyAzIHwgMSB8IDIKKygyIHJvd3MpCisKK0ZFVENIIEJBQ0tXQVJEIEFMTCBG Uk9NIGM7CisgYSB8IGIgfCBjIAorLS0tKy0tLSstLS0KKyAzIHwgMSB8IDIKKyAxIHwgMSB8IDIK KygyIHJvd3MpCisKK0VORDsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBESVNUSU5DVCBP TiAoYSkgYSxiLGMgRlJPTSBkaXN0aW5jdF9hYmMgV0hFUkUgYyA9IDIKK09SREVSIEJZIGEgREVT QywgYiBERVNDOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5kZXggT25seSBT Y2FuIEJhY2t3YXJkIHVzaW5nIGRpc3RpbmN0X2FiY19hX2JfY19pZHggb24gZGlzdGluY3RfYWJj CisgICBTa2lwIHNjYW46IERpc3RpbmN0IG9ubHkKKyAgIEluZGV4IENvbmQ6IChjID0gMikKKygz IHJvd3MpCisKK0JFR0lOOworREVDTEFSRSBjIFNDUk9MTCBDVVJTT1IgRk9SCitTRUxFQ1QgRElT VElOQ1QgT04gKGEpIGEsYixjIEZST00gZGlzdGluY3RfYWJjIFdIRVJFIGMgPSAyCitPUkRFUiBC WSBhIERFU0MsIGIgREVTQzsKK0ZFVENIIEFMTCBGUk9NIGM7CisgYSB8IGIgfCBjIAorLS0tKy0t LSstLS0KKyAzIHwgMiB8IDIKKyAxIHwgMiB8IDIKKygyIHJvd3MpCisKK0ZFVENIIEJBQ0tXQVJE IEFMTCBGUk9NIGM7CisgYSB8IGIgfCBjIAorLS0tKy0tLSstLS0KKyAxIHwgMiB8IDIKKyAzIHwg MiB8IDIKKygyIHJvd3MpCisKK0VORDsKK0RST1AgVEFCTEUgZGlzdGluY3RfYWJjOworLS0gaW5k ZXggc2tpcCBzY2FuCitTRUxFQ1QgRElTVElOQ1QgT04gKGEpIGEsIGIsIGMKK0ZST00gZGlzdGlu Y3RfYSBPUkRFUiBCWSBhOworIGEgfCBiIHwgYyAgCistLS0rLS0tKy0tLS0KKyAxIHwgMSB8IDEw CisgMiB8IDEgfCAxMAorIDMgfCAxIHwgMTAKKyA0IHwgMSB8IDEwCisgNSB8IDEgfCAxMAorKDUg cm93cykKKworU0VMRUNUIERJU1RJTkNUIE9OIChhKSBhLCBiLCBjCitGUk9NIGRpc3RpbmN0X2Eg V0hFUkUgYSA9IDEgT1JERVIgQlkgYTsKKyBhIHwgYiB8IGMgIAorLS0tKy0tLSstLS0tCisgMSB8 IDEgfCAxMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgRElTVElOQ1Qg T04gKGEpIGEsIGIsIGMKK0ZST00gZGlzdGluY3RfYSBPUkRFUiBCWSBhOworICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbmRleCBTY2FuIHVzaW5nIGRp c3RpbmN0X2FfYV9iX2lkeCBvbiBkaXN0aW5jdF9hCisgICBTa2lwIHNjYW46IERpc3RpbmN0IG9u bHkKKygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBESVNUSU5DVCBPTiAo YSkgYSwgYiwgYworRlJPTSBkaXN0aW5jdF9hIFdIRVJFIGEgPSAxIE9SREVSIEJZIGE7CisgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBVbmlxdWUK KyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGRpc3RpbmN0X2EKKyAgICAgICAgIFJlY2hlY2sg Q29uZDogKGEgPSAxKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGRpc3RpbmN0 X2FfYV9iX2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAxKQorKDUgcm93cykK KworLS0gY2hlY2sgY29sdW1zIG9yZGVyCitTRUxFQ1QgRElTVElOQ1QgYSBGUk9NIGRpc3RpbmN0 X2EgV0hFUkUgYiA9IDIgQU5EIGMgPSAxMDsKKyBhIAorLS0tCisgMQorIDIKKyAzCisgNAorIDUK Kyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBESVNUSU5DVCBhIEZST00g ZGlzdGluY3RfYSBXSEVSRSBiID0gMiBBTkQgYyA9IDEwOworICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbmRleCBTY2FuIHVzaW5nIGRpc3RpbmN0X2Ff YV9iX2lkeCBvbiBkaXN0aW5jdF9hCisgICBTa2lwIHNjYW46IERpc3RpbmN0IG9ubHkKKyAgIElu ZGV4IENvbmQ6IChiID0gMikKKyAgIEZpbHRlcjogKGMgPSAxMCkKKyg0IHJvd3MpCisKKy0tIGNo ZWNrIHByb2plY3Rpb24gY2FzZQorU0VMRUNUIERJU1RJTkNUIGEsIGEgRlJPTSBkaXN0aW5jdF9h IFdIRVJFIGIgPSAyOworIGEgfCBhIAorLS0tKy0tLQorIDEgfCAxCisgMiB8IDIKKyAzIHwgMwor IDQgfCA0CisgNSB8IDUKKyg1IHJvd3MpCisKK1NFTEVDVCBESVNUSU5DVCBhLCAxIEZST00gZGlz dGluY3RfYSBXSEVSRSBiID0gMjsKKyBhIHwgP2NvbHVtbj8gCistLS0rLS0tLS0tLS0tLQorIDEg fCAgICAgICAgMQorIDIgfCAgICAgICAgMQorIDMgfCAgICAgICAgMQorIDQgfCAgICAgICAgMQor IDUgfCAgICAgICAgMQorKDUgcm93cykKKworLS0gdGVzdCBjdXJzb3IgZm9yd2FyZC9iYWNrd2Fy ZCBtb3ZlbWVudHMKK0JFR0lOOworREVDTEFSRSBjIFNDUk9MTCBDVVJTT1IgRk9SIFNFTEVDVCBE SVNUSU5DVCBhIEZST00gZGlzdGluY3RfYTsKK0ZFVENIIEZST00gYzsKKyBhIAorLS0tCisgMQor KDEgcm93KQorCitGRVRDSCBCQUNLV0FSRCBGUk9NIGM7CisgYSAKKy0tLQorKDAgcm93cykKKwor RkVUQ0ggNiBGUk9NIGM7CisgYSAKKy0tLQorIDEKKyAyCisgMworIDQKKyA1CisoNSByb3dzKQor CitGRVRDSCBCQUNLV0FSRCA2IEZST00gYzsKKyBhIAorLS0tCisgNQorIDQKKyAzCisgMgorIDEK Kyg1IHJvd3MpCisKK0ZFVENIIDYgRlJPTSBjOworIGEgCistLS0KKyAxCisgMgorIDMKKyA0Cisg NQorKDUgcm93cykKKworRkVUQ0ggQkFDS1dBUkQgNiBGUk9NIGM7CisgYSAKKy0tLQorIDUKKyA0 CisgMworIDIKKyAxCisoNSByb3dzKQorCitFTkQ7CitEUk9QIFRBQkxFIGRpc3RpbmN0X2E7Cist LSB0ZXN0IHR1cGxlcyB2aXNpYmlsaXR5CitDUkVBVEUgVEFCTEUgZGlzdGluY3RfdmlzaWJpbGl0 eSAoYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIGRpc3RpbmN0X3Zpc2liaWxpdHkgKHNlbGVj dCBhLCBiIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsNSkgYSwgZ2VuZXJhdGVfc2VyaWVzKDEsIDEw MDAwKSBiKTsKK0NSRUFURSBJTkRFWCBPTiBkaXN0aW5jdF92aXNpYmlsaXR5IChhLCBiKTsKK0FO QUxZWkUgZGlzdGluY3RfdmlzaWJpbGl0eTsKK1NFTEVDVCBESVNUSU5DVCBPTiAoYSkgYSwgYiBG Uk9NIGRpc3RpbmN0X3Zpc2liaWxpdHkgT1JERVIgQlkgYSwgYjsKKyBhIHwgYiAKKy0tLSstLS0K KyAxIHwgMQorIDIgfCAxCisgMyB8IDEKKyA0IHwgMQorIDUgfCAxCisoNSByb3dzKQorCitERUxF VEUgRlJPTSBkaXN0aW5jdF92aXNpYmlsaXR5IFdIRVJFIGEgPSAyIGFuZCBiID0gMTsKK1NFTEVD VCBESVNUSU5DVCBPTiAoYSkgYSwgYiBGUk9NIGRpc3RpbmN0X3Zpc2liaWxpdHkgT1JERVIgQlkg YSwgYjsKKyBhIHwgYiAKKy0tLSstLS0KKyAxIHwgMQorIDIgfCAyCisgMyB8IDEKKyA0IHwgMQor IDUgfCAxCisoNSByb3dzKQorCitTRUxFQ1QgRElTVElOQ1QgT04gKGEpIGEsIGIgRlJPTSBkaXN0 aW5jdF92aXNpYmlsaXR5IE9SREVSIEJZIGEgREVTQywgYiBERVNDOworIGEgfCAgIGIgICAKKy0t LSstLS0tLS0tCisgNSB8IDEwMDAwCisgNCB8IDEwMDAwCisgMyB8IDEwMDAwCisgMiB8IDEwMDAw CisgMSB8IDEwMDAwCisoNSByb3dzKQorCitERUxFVEUgRlJPTSBkaXN0aW5jdF92aXNpYmlsaXR5 IFdIRVJFIGEgPSAyIGFuZCBiID0gMTAwMDA7CitTRUxFQ1QgRElTVElOQ1QgT04gKGEpIGEsIGIg RlJPTSBkaXN0aW5jdF92aXNpYmlsaXR5IE9SREVSIEJZIGEgREVTQywgYiBERVNDOworIGEgfCAg IGIgICAKKy0tLSstLS0tLS0tCisgNSB8IDEwMDAwCisgNCB8IDEwMDAwCisgMyB8IDEwMDAwCisg MiB8ICA5OTk5CisgMSB8IDEwMDAwCisoNSByb3dzKQorCitEUk9QIFRBQkxFIGRpc3RpbmN0X3Zp c2liaWxpdHk7CistLSB0ZXN0IHBhZ2UgYm91bmRhcmllcworQ1JFQVRFIFRBQkxFIGRpc3RpbmN0 X2JvdW5kYXJpZXMgQVMKKyAgICBTRUxFQ1QgYSwgYjo6aW50MiBiLCAoYiAlIDIpOjppbnQyIGMg RlJPTQorICAgICAgICBnZW5lcmF0ZV9zZXJpZXMoMSwgNSkgYSwKKyAgICAgICAgZ2VuZXJhdGVf c2VyaWVzKDEsMzY2KSBiOworQ1JFQVRFIElOREVYIE9OIGRpc3RpbmN0X2JvdW5kYXJpZXMgKGEs IGIsIGMpOworQU5BTFlaRSBkaXN0aW5jdF9ib3VuZGFyaWVzOworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIERJU1RJTkNUIE9OIChhKSBhLCBiLCBjIGZyb20gZGlzdGluY3RfYm91bmRhcmll cworV0hFUkUgYiA+PSAxIGFuZCBjID0gMCBPUkRFUiBCWSBhLCBiOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEluZGV4IE9ubHkgU2NhbiB1c2luZyBkaXN0aW5j dF9ib3VuZGFyaWVzX2FfYl9jX2lkeCBvbiBkaXN0aW5jdF9ib3VuZGFyaWVzCisgICBTa2lwIHNj YW46IERpc3RpbmN0IG9ubHkKKyAgIEluZGV4IENvbmQ6ICgoYiA+PSAxKSBBTkQgKGMgPSAwKSkK KygzIHJvd3MpCisKK1NFTEVDVCBESVNUSU5DVCBPTiAoYSkgYSwgYiwgYyBmcm9tIGRpc3RpbmN0 X2JvdW5kYXJpZXMKK1dIRVJFIGIgPj0gMSBhbmQgYyA9IDAgT1JERVIgQlkgYSwgYjsKKyBhIHwg YiB8IGMgCistLS0rLS0tKy0tLQorIDEgfCAyIHwgMAorIDIgfCAyIHwgMAorIDMgfCAyIHwgMAor IDQgfCAyIHwgMAorIDUgfCAyIHwgMAorKDUgcm93cykKKworRFJPUCBUQUJMRSBkaXN0aW5jdF9i b3VuZGFyaWVzOworLS0gdGVzdCB0dXBsZSBraWxsaW5nCistLSBERVNDIG9yZGVyaW5nCitDUkVB VEUgVEFCTEUgZGlzdGluY3Rfa2lsbGVkIEFTCisgICAgU0VMRUNUIGEsIGIsIGIgJSAyIEFTIGMs IDEwIEFTIGQKKyAgICAgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNSkgYSwKKyAgICAgICAg ICAgICBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBiOworQ1JFQVRFIElOREVYIE9OIGRpc3RpbmN0 X2tpbGxlZCAoYSwgYiwgYywgZCk7CitERUxFVEUgRlJPTSBkaXN0aW5jdF9raWxsZWQgd2hlcmUg YSA9IDM7CitCRUdJTjsKKyAgICBERUNMQVJFIGMgU0NST0xMIENVUlNPUiBGT1IKKyAgICBTRUxF Q1QgRElTVElOQ1QgT04gKGEpIGEsYixjLGQKKyAgICBGUk9NIGRpc3RpbmN0X2tpbGxlZCBPUkRF UiBCWSBhIERFU0MsIGIgREVTQzsKKyAgICBGRVRDSCBGT1JXQVJEIEFMTCBGUk9NIGM7CisgYSB8 ICBiICAgfCBjIHwgZCAgCistLS0rLS0tLS0tKy0tLSstLS0tCisgNSB8IDEwMDAgfCAwIHwgMTAK KyA0IHwgMTAwMCB8IDAgfCAxMAorIDIgfCAxMDAwIHwgMCB8IDEwCisgMSB8IDEwMDAgfCAwIHwg MTAKKyg0IHJvd3MpCisKKyAgICBGRVRDSCBCQUNLV0FSRCBBTEwgRlJPTSBjOworIGEgfCAgYiAg IHwgYyB8IGQgIAorLS0tKy0tLS0tLSstLS0rLS0tLQorIDEgfCAxMDAwIHwgMCB8IDEwCisgMiB8 IDEwMDAgfCAwIHwgMTAKKyA0IHwgMTAwMCB8IDAgfCAxMAorIDUgfCAxMDAwIHwgMCB8IDEwCiso NCByb3dzKQorCitDT01NSVQ7CitEUk9QIFRBQkxFIGRpc3RpbmN0X2tpbGxlZDsKKy0tIHJlZ3Vs YXIgb3JkZXJpbmcKK0NSRUFURSBUQUJMRSBkaXN0aW5jdF9raWxsZWQgQVMKKyAgICBTRUxFQ1Qg YSwgYiwgYiAlIDIgQVMgYywgMTAgQVMgZAorICAgICAgICBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA1KSBhLAorICAgICAgICAgICAgIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIGI7CitDUkVBVEUg SU5ERVggT04gZGlzdGluY3Rfa2lsbGVkIChhLCBiLCBjLCBkKTsKK0RFTEVURSBGUk9NIGRpc3Rp bmN0X2tpbGxlZCB3aGVyZSBhID0gMzsKK0JFR0lOOworICAgIERFQ0xBUkUgYyBTQ1JPTEwgQ1VS U09SIEZPUgorICAgIFNFTEVDVCBESVNUSU5DVCBPTiAoYSkgYSxiLGMsZAorICAgIEZST00gZGlz dGluY3Rfa2lsbGVkIE9SREVSIEJZIGEsIGI7CisgICAgRkVUQ0ggRk9SV0FSRCBBTEwgRlJPTSBj OworIGEgfCBiIHwgYyB8IGQgIAorLS0tKy0tLSstLS0rLS0tLQorIDEgfCAxIHwgMSB8IDEwCisg MiB8IDEgfCAxIHwgMTAKKyA0IHwgMSB8IDEgfCAxMAorIDUgfCAxIHwgMSB8IDEwCisoNCByb3dz KQorCisgICAgRkVUQ0ggQkFDS1dBUkQgQUxMIEZST00gYzsKKyBhIHwgYiB8IGMgfCBkICAKKy0t LSstLS0rLS0tKy0tLS0KKyA1IHwgMSB8IDEgfCAxMAorIDQgfCAxIHwgMSB8IDEwCisgMiB8IDEg fCAxIHwgMTAKKyAxIHwgMSB8IDEgfCAxMAorKDQgcm93cykKKworQ09NTUlUOworRFJPUCBUQUJM RSBkaXN0aW5jdF9raWxsZWQ7CistLSBwYXJ0aWFsIGRlbGV0ZQorQ1JFQVRFIFRBQkxFIGRpc3Rp bmN0X2tpbGxlZCBBUworICAgIFNFTEVDVCBhLCBiLCBiICUgMiBBUyBjLCAxMCBBUyBkCisgICAg ICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIGEsCisgICAgICAgICAgICAgZ2VuZXJhdGVf c2VyaWVzKDEsMTAwMCkgYjsKK0NSRUFURSBJTkRFWCBPTiBkaXN0aW5jdF9raWxsZWQgKGEsIGIs IGMsIGQpOworREVMRVRFIEZST00gZGlzdGluY3Rfa2lsbGVkIFdIRVJFIGEgPSAzIEFORCBiIDw9 IDk5OTsKK0JFR0lOOworICAgIERFQ0xBUkUgYyBTQ1JPTEwgQ1VSU09SIEZPUgorICAgIFNFTEVD VCBESVNUSU5DVCBPTiAoYSkgYSxiLGMsZAorICAgIEZST00gZGlzdGluY3Rfa2lsbGVkIE9SREVS IEJZIGEgREVTQywgYiBERVNDOworICAgIEZFVENIIEZPUldBUkQgQUxMIEZST00gYzsKKyBhIHwg IGIgICB8IGMgfCBkICAKKy0tLSstLS0tLS0rLS0tKy0tLS0KKyA1IHwgMTAwMCB8IDAgfCAxMAor IDQgfCAxMDAwIHwgMCB8IDEwCisgMyB8IDEwMDAgfCAwIHwgMTAKKyAyIHwgMTAwMCB8IDAgfCAx MAorIDEgfCAxMDAwIHwgMCB8IDEwCisoNSByb3dzKQorCisgICAgRkVUQ0ggQkFDS1dBUkQgQUxM IEZST00gYzsKKyBhIHwgIGIgICB8IGMgfCBkICAKKy0tLSstLS0tLS0rLS0tKy0tLS0KKyAxIHwg MTAwMCB8IDAgfCAxMAorIDIgfCAxMDAwIHwgMCB8IDEwCisgMyB8IDEwMDAgfCAwIHwgMTAKKyA0 IHwgMTAwMCB8IDAgfCAxMAorIDUgfCAxMDAwIHwgMCB8IDEwCisoNSByb3dzKQorCitDT01NSVQ7 CitEUk9QIFRBQkxFIGRpc3RpbmN0X2tpbGxlZDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2 aWV3cy5vdXQKaW5kZXggNzE1ODQyYjg3YS4uN2UxNjY1NWYwMyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zeXN2aWV3cy5vdXQKQEAgLTgwLDYgKzgwLDcgQEAgc2VsZWN0IG5hbWUsIHNldHRp bmcgZnJvbSBwZ19zZXR0aW5ncyB3aGVyZSBuYW1lIGxpa2UgJ2VuYWJsZSUnOwogIGVuYWJsZV9o YXNoam9pbiAgICAgICAgICAgICAgICB8IG9uCiAgZW5hYmxlX2luZGV4b25seXNjYW4gICAgICAg ICAgIHwgb24KICBlbmFibGVfaW5kZXhzY2FuICAgICAgICAgICAgICAgfCBvbgorIGVuYWJsZV9p bmRleHNraXBzY2FuICAgICAgICAgICB8IG9uCiAgZW5hYmxlX21hdGVyaWFsICAgICAgICAgICAg ICAgIHwgb24KICBlbmFibGVfbWVyZ2Vqb2luICAgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV9u ZXN0bG9vcCAgICAgICAgICAgICAgICB8IG9uCkBAIC05MSw3ICs5Miw3IEBAIHNlbGVjdCBuYW1l LCBzZXR0aW5nIGZyb20gcGdfc2V0dGluZ3Mgd2hlcmUgbmFtZSBsaWtlICdlbmFibGUlJzsKICBl bmFibGVfc2Vxc2NhbiAgICAgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV9zb3J0ICAgICAgICAg ICAgICAgICAgICB8IG9uCiAgZW5hYmxlX3RpZHNjYW4gICAgICAgICAgICAgICAgIHwgb24KLSgx OSByb3dzKQorKDIwIHJvd3MpCiAKIC0tIFRlc3QgdGhhdCB0aGUgcGdfdGltZXpvbmVfbmFtZXMg YW5kIHBnX3RpbWV6b25lX2FiYnJldnMgdmlld3MgYXJlCiAtLSBtb3JlLW9yLWxlc3Mgd29ya2lu Zy4gIFdlIGNhbid0IHRlc3QgdGhlaXIgY29udGVudHMgaW4gYW55IGdyZWF0IGRldGFpbApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2VsZWN0X2Rpc3RpbmN0LnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3NlbGVjdF9kaXN0aW5jdC5zcWwKaW5kZXggMzMxMDI3NDRlYi4uMDIy N2M5ODgyMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2VsZWN0X2Rpc3RpbmN0 LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZWxlY3RfZGlzdGluY3Quc3FsCkBAIC0x MzUsMyArMTM1LDI1MSBAQCBTRUxFQ1QgMSBJUyBOT1QgRElTVElOQ1QgRlJPTSAyIGFzICJubyI7 CiBTRUxFQ1QgMiBJUyBOT1QgRElTVElOQ1QgRlJPTSAyIGFzICJ5ZXMiOwogU0VMRUNUIDIgSVMg Tk9UIERJU1RJTkNUIEZST00gbnVsbCBhcyAibm8iOwogU0VMRUNUIG51bGwgSVMgTk9UIERJU1RJ TkNUIEZST00gbnVsbCBhcyAieWVzIjsKKworLS0gaW5kZXggb25seSBza2lwIHNjYW4KK0NSRUFU RSBUQUJMRSBkaXN0aW5jdF9hIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0lOU0VSVCBJTlRPIGRp c3RpbmN0X2EgKAorICAgIFNFTEVDVCBmaXZlLCB0ZW50aG91cywgMTAgRlJPTQorICAgIGdlbmVy YXRlX3NlcmllcygxLCA1KSBmaXZlLAorICAgIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwMCkgdGVu dGhvdXMKKyk7CitDUkVBVEUgSU5ERVggT04gZGlzdGluY3RfYSAoYSwgYik7CitBTkFMWVpFIGRp c3RpbmN0X2E7CisKK1NFTEVDVCBESVNUSU5DVCBhIEZST00gZGlzdGluY3RfYTsKK1NFTEVDVCBE SVNUSU5DVCBhIEZST00gZGlzdGluY3RfYSBXSEVSRSBhID0gMTsKK1NFTEVDVCBESVNUSU5DVCBh IEZST00gZGlzdGluY3RfYSBPUkRFUiBCWSBhIERFU0M7CisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBESVNUSU5DVCBhIEZST00gZGlzdGluY3RfYTsKKworLS0gdGVzdCBpbmRleCBza2lw IHNjYW4gd2l0aCBhIGNvbmRpdGlvbiBvbiBhIG5vbiB1bmlxdWUgZmllbGQKK1NFTEVDVCBESVNU SU5DVCBPTiAoYSkgYSwgYiBGUk9NIGRpc3RpbmN0X2EgV0hFUkUgYiA9IDI7CisKKy0tIHRlc3Qg aW5kZXggc2tpcCBzY2FuIGJhY2t3YXJkcworU0VMRUNUIERJU1RJTkNUIE9OIChhKSBhLCBiIEZS T00gZGlzdGluY3RfYSBPUkRFUiBCWSBhIERFU0MsIGIgREVTQzsKKworLS0gY2hlY2sgY29sdW1z IG9yZGVyCitDUkVBVEUgSU5ERVggZGlzdGluY3RfYV9iX2Egb24gZGlzdGluY3RfYSAoYiwgYSk7 CisKK1NFTEVDVCBESVNUSU5DVCBhIEZST00gZGlzdGluY3RfYSBXSEVSRSBiID0gMjsKK1NFTEVD VCBESVNUSU5DVCBvbiAoYSwgYikgYSwgYiBGUk9NIGRpc3RpbmN0X2EgV0hFUkUgYiA9IDI7CisK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBESVNUSU5DVCBhIEZST00gZGlzdGluY3RfYSBX SEVSRSBiID0gMjsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIERJU1RJTkNUIG9uIChh LCBiKSBhLCBiIEZST00gZGlzdGluY3RfYSBXSEVSRSBiID0gMjsKKworRFJPUCBJTkRFWCBkaXN0 aW5jdF9hX2JfYTsKKworLS0gdGVzdCBvcHBvc2l0ZSBzY2FuL2luZGV4IGRpcmVjdGlvbnMgaW5z aWRlIGEgY3Vyc29yCistLSBmb3J3YXJkL2JhY2t3YXJkCitCRUdJTjsKK0RFQ0xBUkUgYyBTQ1JP TEwgQ1VSU09SIEZPUgorU0VMRUNUIERJU1RJTkNUIE9OIChhKSBhLGIgRlJPTSBkaXN0aW5jdF9h IE9SREVSIEJZIGEsIGI7CisKK0ZFVENIIEZST00gYzsKK0ZFVENIIEJBQ0tXQVJEIEZST00gYzsK KworRkVUQ0ggNiBGUk9NIGM7CitGRVRDSCBCQUNLV0FSRCA2IEZST00gYzsKKworRkVUQ0ggNiBG Uk9NIGM7CitGRVRDSCBCQUNLV0FSRCA2IEZST00gYzsKKworRU5EOworCistLSBiYWNrd2FyZC9m b3J3YXJkCitCRUdJTjsKK0RFQ0xBUkUgYyBTQ1JPTEwgQ1VSU09SIEZPUgorU0VMRUNUIERJU1RJ TkNUIE9OIChhKSBhLGIgRlJPTSBkaXN0aW5jdF9hIE9SREVSIEJZIGEgREVTQywgYiBERVNDOwor CitGRVRDSCBGUk9NIGM7CitGRVRDSCBCQUNLV0FSRCBGUk9NIGM7CisKK0ZFVENIIDYgRlJPTSBj OworRkVUQ0ggQkFDS1dBUkQgNiBGUk9NIGM7CisKK0ZFVENIIDYgRlJPTSBjOworRkVUQ0ggQkFD S1dBUkQgNiBGUk9NIGM7CisKK0VORDsKKworLS0gdGVzdCBtaXNzaW5nIHZhbHVlcyBhbmQgc2tp cHBpbmcgZnJvbSB0aGUgZW5kCitDUkVBVEUgVEFCTEUgZGlzdGluY3RfYWJjKGEgaW50LCBiIGlu dCwgYyBpbnQpOworQ1JFQVRFIElOREVYIE9OIGRpc3RpbmN0X2FiYyhhLCBiLCBjKTsKK0lOU0VS VCBJTlRPIGRpc3RpbmN0X2FiYworCVZBTFVFUyAoMSwgMSwgMSksCisJCSAgICgxLCAxLCAyKSwK KwkJICAgKDEsIDIsIDIpLAorCQkgICAoMSwgMiwgMyksCisJCSAgICgyLCAyLCAxKSwKKwkJICAg KDIsIDIsIDMpLAorCQkgICAoMywgMSwgMSksCisJCSAgICgzLCAxLCAyKSwKKwkJICAgKDMsIDIs IDIpLAorCQkgICAoMywgMiwgMyk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBESVNU SU5DVCBPTiAoYSkgYSxiLGMgRlJPTSBkaXN0aW5jdF9hYmMgV0hFUkUgYyA9IDI7CisKK0JFR0lO OworREVDTEFSRSBjIFNDUk9MTCBDVVJTT1IgRk9SCitTRUxFQ1QgRElTVElOQ1QgT04gKGEpIGEs YixjIEZST00gZGlzdGluY3RfYWJjIFdIRVJFIGMgPSAyOworCitGRVRDSCBBTEwgRlJPTSBjOwor RkVUQ0ggQkFDS1dBUkQgQUxMIEZST00gYzsKKworRU5EOworCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgRElTVElOQ1QgT04gKGEpIGEsYixjIEZST00gZGlzdGluY3RfYWJjIFdIRVJFIGMg PSAyCitPUkRFUiBCWSBhIERFU0MsIGIgREVTQzsKKworQkVHSU47CitERUNMQVJFIGMgU0NST0xM IENVUlNPUiBGT1IKK1NFTEVDVCBESVNUSU5DVCBPTiAoYSkgYSxiLGMgRlJPTSBkaXN0aW5jdF9h YmMgV0hFUkUgYyA9IDIKK09SREVSIEJZIGEgREVTQywgYiBERVNDOworCitGRVRDSCBBTEwgRlJP TSBjOworRkVUQ0ggQkFDS1dBUkQgQUxMIEZST00gYzsKKworRU5EOworCitEUk9QIFRBQkxFIGRp c3RpbmN0X2FiYzsKKworLS0gaW5kZXggc2tpcCBzY2FuCitTRUxFQ1QgRElTVElOQ1QgT04gKGEp IGEsIGIsIGMKK0ZST00gZGlzdGluY3RfYSBPUkRFUiBCWSBhOworU0VMRUNUIERJU1RJTkNUIE9O IChhKSBhLCBiLCBjCitGUk9NIGRpc3RpbmN0X2EgV0hFUkUgYSA9IDEgT1JERVIgQlkgYTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIERJU1RJTkNUIE9OIChhKSBhLCBiLCBjCitGUk9N IGRpc3RpbmN0X2EgT1JERVIgQlkgYTsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBESVNU SU5DVCBPTiAoYSkgYSwgYiwgYworRlJPTSBkaXN0aW5jdF9hIFdIRVJFIGEgPSAxIE9SREVSIEJZ IGE7CisKKy0tIGNoZWNrIGNvbHVtcyBvcmRlcgorU0VMRUNUIERJU1RJTkNUIGEgRlJPTSBkaXN0 aW5jdF9hIFdIRVJFIGIgPSAyIEFORCBjID0gMTA7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBESVNUSU5DVCBhIEZST00gZGlzdGluY3RfYSBXSEVSRSBiID0gMiBBTkQgYyA9IDEwOwor CistLSBjaGVjayBwcm9qZWN0aW9uIGNhc2UKK1NFTEVDVCBESVNUSU5DVCBhLCBhIEZST00gZGlz dGluY3RfYSBXSEVSRSBiID0gMjsKK1NFTEVDVCBESVNUSU5DVCBhLCAxIEZST00gZGlzdGluY3Rf YSBXSEVSRSBiID0gMjsKKworLS0gdGVzdCBjdXJzb3IgZm9yd2FyZC9iYWNrd2FyZCBtb3ZlbWVu dHMKK0JFR0lOOworREVDTEFSRSBjIFNDUk9MTCBDVVJTT1IgRk9SIFNFTEVDVCBESVNUSU5DVCBh IEZST00gZGlzdGluY3RfYTsKKworRkVUQ0ggRlJPTSBjOworRkVUQ0ggQkFDS1dBUkQgRlJPTSBj OworCitGRVRDSCA2IEZST00gYzsKK0ZFVENIIEJBQ0tXQVJEIDYgRlJPTSBjOworCitGRVRDSCA2 IEZST00gYzsKK0ZFVENIIEJBQ0tXQVJEIDYgRlJPTSBjOworCitFTkQ7CisKK0RST1AgVEFCTEUg ZGlzdGluY3RfYTsKKworLS0gdGVzdCB0dXBsZXMgdmlzaWJpbGl0eQorQ1JFQVRFIFRBQkxFIGRp c3RpbmN0X3Zpc2liaWxpdHkgKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyBkaXN0aW5jdF92 aXNpYmlsaXR5IChzZWxlY3QgYSwgYiBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDUpIGEsIGdlbmVy YXRlX3NlcmllcygxLCAxMDAwMCkgYik7CitDUkVBVEUgSU5ERVggT04gZGlzdGluY3RfdmlzaWJp bGl0eSAoYSwgYik7CitBTkFMWVpFIGRpc3RpbmN0X3Zpc2liaWxpdHk7CisKK1NFTEVDVCBESVNU SU5DVCBPTiAoYSkgYSwgYiBGUk9NIGRpc3RpbmN0X3Zpc2liaWxpdHkgT1JERVIgQlkgYSwgYjsK K0RFTEVURSBGUk9NIGRpc3RpbmN0X3Zpc2liaWxpdHkgV0hFUkUgYSA9IDIgYW5kIGIgPSAxOwor U0VMRUNUIERJU1RJTkNUIE9OIChhKSBhLCBiIEZST00gZGlzdGluY3RfdmlzaWJpbGl0eSBPUkRF UiBCWSBhLCBiOworCitTRUxFQ1QgRElTVElOQ1QgT04gKGEpIGEsIGIgRlJPTSBkaXN0aW5jdF92 aXNpYmlsaXR5IE9SREVSIEJZIGEgREVTQywgYiBERVNDOworREVMRVRFIEZST00gZGlzdGluY3Rf dmlzaWJpbGl0eSBXSEVSRSBhID0gMiBhbmQgYiA9IDEwMDAwOworU0VMRUNUIERJU1RJTkNUIE9O IChhKSBhLCBiIEZST00gZGlzdGluY3RfdmlzaWJpbGl0eSBPUkRFUiBCWSBhIERFU0MsIGIgREVT QzsKK0RST1AgVEFCTEUgZGlzdGluY3RfdmlzaWJpbGl0eTsKKworLS0gdGVzdCBwYWdlIGJvdW5k YXJpZXMKK0NSRUFURSBUQUJMRSBkaXN0aW5jdF9ib3VuZGFyaWVzIEFTCisgICAgU0VMRUNUIGEs IGI6OmludDIgYiwgKGIgJSAyKTo6aW50MiBjIEZST00KKyAgICAgICAgZ2VuZXJhdGVfc2VyaWVz KDEsIDUpIGEsCisgICAgICAgIGdlbmVyYXRlX3NlcmllcygxLDM2NikgYjsKKworQ1JFQVRFIElO REVYIE9OIGRpc3RpbmN0X2JvdW5kYXJpZXMgKGEsIGIsIGMpOworQU5BTFlaRSBkaXN0aW5jdF9i b3VuZGFyaWVzOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgRElTVElOQ1QgT04gKGEp IGEsIGIsIGMgZnJvbSBkaXN0aW5jdF9ib3VuZGFyaWVzCitXSEVSRSBiID49IDEgYW5kIGMgPSAw IE9SREVSIEJZIGEsIGI7CisKK1NFTEVDVCBESVNUSU5DVCBPTiAoYSkgYSwgYiwgYyBmcm9tIGRp c3RpbmN0X2JvdW5kYXJpZXMKK1dIRVJFIGIgPj0gMSBhbmQgYyA9IDAgT1JERVIgQlkgYSwgYjsK KworRFJPUCBUQUJMRSBkaXN0aW5jdF9ib3VuZGFyaWVzOworCistLSB0ZXN0IHR1cGxlIGtpbGxp bmcKKworLS0gREVTQyBvcmRlcmluZworQ1JFQVRFIFRBQkxFIGRpc3RpbmN0X2tpbGxlZCBBUwor ICAgIFNFTEVDVCBhLCBiLCBiICUgMiBBUyBjLCAxMCBBUyBkCisgICAgICAgIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDUpIGEsCisgICAgICAgICAgICAgZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkg YjsKKworQ1JFQVRFIElOREVYIE9OIGRpc3RpbmN0X2tpbGxlZCAoYSwgYiwgYywgZCk7CisKK0RF TEVURSBGUk9NIGRpc3RpbmN0X2tpbGxlZCB3aGVyZSBhID0gMzsKKworQkVHSU47CisgICAgREVD TEFSRSBjIFNDUk9MTCBDVVJTT1IgRk9SCisgICAgU0VMRUNUIERJU1RJTkNUIE9OIChhKSBhLGIs YyxkCisgICAgRlJPTSBkaXN0aW5jdF9raWxsZWQgT1JERVIgQlkgYSBERVNDLCBiIERFU0M7Cisg ICAgRkVUQ0ggRk9SV0FSRCBBTEwgRlJPTSBjOworICAgIEZFVENIIEJBQ0tXQVJEIEFMTCBGUk9N IGM7CitDT01NSVQ7CisKK0RST1AgVEFCTEUgZGlzdGluY3Rfa2lsbGVkOworCistLSByZWd1bGFy IG9yZGVyaW5nCitDUkVBVEUgVEFCTEUgZGlzdGluY3Rfa2lsbGVkIEFTCisgICAgU0VMRUNUIGEs IGIsIGIgJSAyIEFTIGMsIDEwIEFTIGQKKyAgICAgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NSkgYSwKKyAgICAgICAgICAgICBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBiOworCitDUkVBVEUg SU5ERVggT04gZGlzdGluY3Rfa2lsbGVkIChhLCBiLCBjLCBkKTsKKworREVMRVRFIEZST00gZGlz dGluY3Rfa2lsbGVkIHdoZXJlIGEgPSAzOworCitCRUdJTjsKKyAgICBERUNMQVJFIGMgU0NST0xM IENVUlNPUiBGT1IKKyAgICBTRUxFQ1QgRElTVElOQ1QgT04gKGEpIGEsYixjLGQKKyAgICBGUk9N IGRpc3RpbmN0X2tpbGxlZCBPUkRFUiBCWSBhLCBiOworICAgIEZFVENIIEZPUldBUkQgQUxMIEZS T00gYzsKKyAgICBGRVRDSCBCQUNLV0FSRCBBTEwgRlJPTSBjOworQ09NTUlUOworCitEUk9QIFRB QkxFIGRpc3RpbmN0X2tpbGxlZDsKKworLS0gcGFydGlhbCBkZWxldGUKK0NSRUFURSBUQUJMRSBk aXN0aW5jdF9raWxsZWQgQVMKKyAgICBTRUxFQ1QgYSwgYiwgYiAlIDIgQVMgYywgMTAgQVMgZAor ICAgICAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1KSBhLAorICAgICAgICAgICAgIGdlbmVy YXRlX3NlcmllcygxLDEwMDApIGI7CisKK0NSRUFURSBJTkRFWCBPTiBkaXN0aW5jdF9raWxsZWQg KGEsIGIsIGMsIGQpOworCitERUxFVEUgRlJPTSBkaXN0aW5jdF9raWxsZWQgV0hFUkUgYSA9IDMg QU5EIGIgPD0gOTk5OworCitCRUdJTjsKKyAgICBERUNMQVJFIGMgU0NST0xMIENVUlNPUiBGT1IK KyAgICBTRUxFQ1QgRElTVElOQ1QgT04gKGEpIGEsYixjLGQKKyAgICBGUk9NIGRpc3RpbmN0X2tp bGxlZCBPUkRFUiBCWSBhIERFU0MsIGIgREVTQzsKKyAgICBGRVRDSCBGT1JXQVJEIEFMTCBGUk9N IGM7CisgICAgRkVUQ0ggQkFDS1dBUkQgQUxMIEZST00gYzsKK0NPTU1JVDsKKworRFJPUCBUQUJM RSBkaXN0aW5jdF9raWxsZWQ7Ci0tIAoyLjI1LjAKCg== --_004_2f8f1466f7cf416cb89f40ffcc26d289opammb0561compoptiverco_ Content-Type: application/octet-stream; name="v33-0003-Make-planner-favor-skip-in-index-scans-and-modify-te.patch" Content-Description: v33-0003-Make-planner-favor-skip-in-index-scans-and-modify-te.patch Content-Disposition: attachment; filename="v33-0003-Make-planner-favor-skip-in-index-scans-and-modify-te.patch"; size=183704; creation-date="Sun, 22 Mar 2020 12:49:36 GMT"; modification-date="Sun, 22 Mar 2020 12:49:36 GMT" Content-Transfer-Encoding: base64 RnJvbSBhMGUxNTRmYjNiMjM1N2Y0NGJlYzA1NDcxODc4YWFiOGZiMGI3MTBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaXMgdmFuIE5lZSA8ZmxvcmlzLnZhbm5lZUBnbWFpbC5j b20+CkRhdGU6IFRodSwgMTkgTWFyIDIwMjAgMTA6Mjc6NDcgKzAxMDAKU3ViamVjdDogW1BBVENI IDMvM10gTWFrZSBwbGFubmVyIGZhdm9yIHNraXAgaW4gaW5kZXggc2NhbnMgYW5kIG1vZGlmeSB0 ZXN0CiBvdXB1dHMKClRoaXMgY29tbWl0IGhhY2tzIHRoZSBwbGFubmVyIHRvIGdyZWF0bHkgZmF2 b3Igc2tpcCBzY2FucyBvdmVyIHJlZ3VsYXIgaW5kZXggc2NhbnMuClRvIGJlIHVzZWQgZm9yIHRl c3RpbmcgcHVycG9zZXMgdW50aWwgcHJvcGVyIHBsYW5uZXIgaW1wbGVtZW50YXRpb24gaXMgaW4g cGxhY2UuCkl0IGFsc28gbW9kaWZpZXMgYWxsIGV4cGVjdGVkIHJlc3VsdHMgb2YgdGhlIHVuaXQg dGVzdHMKdG8gYWRkIHRoZSBza2lwIHNjYW4gYXR0cmlidXRlIGluIEVYUExBSU4gb3V0cHV0Lgot LS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8ICA0NyAr Ky0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jICAgICAgICAgfCAgIDcg Kwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMgICAgICAgICAgICAgIHwgIDEzICst CiAuLi4vZXhwZWN0ZWQvZHJvcC1pbmRleC1jb25jdXJyZW50bHktMS5vdXQgICAgfCAgIDEgKwog Li4uL2lzb2xhdGlvbi9leHBlY3RlZC9ldmFsLXBsYW4tcXVhbC5vdXQgICAgIHwgICAyICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWdncmVnYXRlcy5vdXQgICAgICB8ICA1OSArKystLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQgICAgIHwgIDI0ICstCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NsdXN0ZXIub3V0ICAgICAgICAgfCAgMTggKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dCAgICB8ICA0MyArKystCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0ICAgICAgfCAgNzIgKysrKy0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQgICAgfCAgIDMgKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9rZXkub3V0ICAgICB8ICAgNCArLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWQub3V0ICAgICAgIHwgICA5ICstCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyb3VwaW5nc2V0cy5vdXQgICAgfCAgIDYgKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5kZXhfaW5jbHVkaW5nLm91dCB8ICAgNiArLQogc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmV0Lm91dCAgICAgICAgICAgIHwgIDEyICstCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luaGVyaXQub3V0ICAgICAgICAgfCAxNDkgKysrKysrKyst LS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5zZXJ0X2NvbmZsaWN0Lm91dCB8ICAgMyAr LQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbnRlcnZhbC5vdXQgICAgICAgIHwgICAzICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0ICAgICAgICAgICAgfCAyMzUgKysr KysrKysrKysrLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2xpbWl0Lm91dCAgICAg ICAgICAgfCAgIDkgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMu b3V0ICB8ICAgNiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fam9pbi5v dXQgIHwgIDM3ICsrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUu b3V0IHwgMTUxICsrKysrKysrKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BsYW5jYWNo ZS5vdXQgICAgICAgfCAgIDYgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcG9ydGFscy5v dXQgICAgICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2Vz Lm91dCAgICAgIHwgIDE1ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JlZ2V4Lm91dCAg ICAgICAgICAgfCAgMjEgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHku b3V0ICAgICB8ICAzMCArKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93dHlwZXMub3V0 ICAgICAgICB8ICAxOCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3Qub3V0ICAg ICAgICAgIHwgIDI5ICsrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3RfZGlzdGlu Y3Qub3V0IHwgIDE1ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdF9wYXJhbGxl bC5vdXQgfCAgIDkgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2VsZWN0Lm91dCAg ICAgICB8ICAxMCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90dXBsZXNvcnQub3V0ICAg ICAgIHwgIDEyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCAgICAgICAg ICAgfCAgMzYgKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQgfCAgNTYgKysrLS0KIDM3IGZpbGVzIGNoYW5nZWQsIDg3NSBpbnNlcnRpb25zKCspLCAzMDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQv cG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVz X2Zkdy5vdXQKaW5kZXggNjJjMjY5NzkyMC4uMmRiODU5NTJlYyAxMDA2NDQKLS0tIGEvY29udHJp Yi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmliL3Bv c3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC00NDQsNyArNDQ0LDggQEAg RVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogICAgICAgICAgICAgICAgUmVtb3RlIFNRTDog U0VMRUNUICJDIDEiIEZST00gIlMgMSIuIlQgMSIgT1JERVIgQlkgIkMgMSIgQVNDIE5VTExTIExB U1QKICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdDFfcGtleSBvbiAiUyAxIi4i VCAxIiB0MgogICAgICAgICAgICAgICAgT3V0cHV0OiB0Mi4iQyAxIgotKDExIHJvd3MpCisgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAorKDEyIHJvd3MpCiAKIFNFTEVDVCB0MS5jMSwgdDIu IkMgMSIgRlJPTSBmdDIgdDEgSk9JTiAiUyAxIi4iVCAxIiB0MiBPTiAodDEuYzEgPSB0Mi4iQyAx IikgT0ZGU0VUIDEwMCBMSU1JVCAxMDsKICBjMSAgfCBDIDEgCkBAIC00NzgsNyArNDc5LDggQEAg RVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogICAgICAgICAgICAgICAgUmVtb3RlIFNRTDog U0VMRUNUICJDIDEiIEZST00gIlMgMSIuIlQgMSIgT1JERVIgQlkgIkMgMSIgQVNDIE5VTExTIExB U1QKICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdDFfcGtleSBvbiAiUyAxIi4i VCAxIiB0MgogICAgICAgICAgICAgICAgT3V0cHV0OiB0Mi4iQyAxIgotKDExIHJvd3MpCisgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAorKDEyIHJvd3MpCiAKIFNFTEVDVCB0MS5jMSwgdDIu IkMgMSIgRlJPTSBmdDIgdDEgTEVGVCBKT0lOICJTIDEiLiJUIDEiIHQyIE9OICh0MS5jMSA9IHQy LiJDIDEiKSBPRkZTRVQgMTAwIExJTUlUIDEwOwogIGMxICB8IEMgMSAKQEAgLTUxMyw3ICs1MTUs OCBAQCBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiAgICAgICAgICAgICAgICBSZW1vdGUg U1FMOiBTRUxFQ1QgcjMuIkMgMSIgRlJPTSAoIlMgMSIuIlQgMSIgcjIgSU5ORVIgSk9JTiAiUyAx Ii4iVCAxIiByMyBPTiAoKChyMi4iQyAxIiA9IHIzLiJDIDEiKSkpKSBPUkRFUiBCWSByMi4iQyAx IiBBU0MgTlVMTFMgTEFTVAogICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0MV9w a2V5IG9uICJTIDEiLiJUIDEiIHQxCiAgICAgICAgICAgICAgICBPdXRwdXQ6IHQxLiJDIDEiCi0o MTIgcm93cykKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCisoMTMgcm93cykKIAogU0VM RUNUIHQxLiJDIDEiIEZST00gIlMgMSIuIlQgMSIgdDEgbGVmdCBqb2luIGZ0MSB0MiBqb2luIGZ0 MiB0MyBvbiAodDIuYzEgPSB0My5jMSkgb24gKHQzLmMxID0gdDEuIkMgMSIpIE9GRlNFVCAxMDAg TElNSVQgMTA7CiAgQyAxIApAQCAtNTQ5LDcgKzU1Miw4IEBAIEVYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikKICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCByMy4iQyAxIiwgcjIu IkMgMSIgRlJPTSAoIlMgMSIuIlQgMSIgcjMgTEVGVCBKT0lOICJTIDEiLiJUIDEiIHIyIE9OICgo KHIyLiJDIDEiID0gcjMuIkMgMSIpKSkpIE9SREVSIEJZIHIzLiJDIDEiIEFTQyBOVUxMUyBMQVNU CiAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHQxX3BrZXkgb24gIlMgMSIuIlQg MSIgdDEKICAgICAgICAgICAgICAgIE91dHB1dDogdDEuIkMgMSIKLSgxMiByb3dzKQorICAgICAg ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKygxMyByb3dzKQogCiBTRUxFQ1QgdDEuIkMgMSIsIHQy LmMxLCB0My5jMSBGUk9NICJTIDEiLiJUIDEiIHQxIGxlZnQgam9pbiBmdDEgdDIgZnVsbCBqb2lu IGZ0MiB0MyBvbiAodDIuYzEgPSB0My5jMSkgb24gKHQzLmMxID0gdDEuIkMgMSIpIE9GRlNFVCAx MDAgTElNSVQgMTA7CiAgQyAxIHwgYzEgIHwgYzEgIApAQCAtNTgzLDcgKzU4Nyw4IEBAIEVYUExB SU4gKFZFUkJPU0UsIENPU1RTIE9GRikKICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVD VCByMi4iQyAxIiwgcjMuIkMgMSIgRlJPTSAoIlMgMSIuIlQgMSIgcjIgRlVMTCBKT0lOICJTIDEi LiJUIDEiIHIzIE9OICgoKHIyLiJDIDEiID0gcjMuIkMgMSIpKSkpIE9SREVSIEJZIHIzLiJDIDEi IEFTQyBOVUxMUyBMQVNUCiAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHQxX3Br ZXkgb24gIlMgMSIuIlQgMSIgdDEKICAgICAgICAgICAgICAgIE91dHB1dDogdDEuIkMgMSIKLSgx MiByb3dzKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKygxMyByb3dzKQogCiBTRUxF Q1QgdDEuIkMgMSIsIHQyLmMxLCB0My5jMSBGUk9NICJTIDEiLiJUIDEiIHQxIGZ1bGwgam9pbiBm dDEgdDIgZnVsbCBqb2luIGZ0MiB0MyBvbiAodDIuYzEgPSB0My5jMSkgb24gKHQzLmMxID0gdDEu IkMgMSIpIE9GRlNFVCAxMDAgTElNSVQgMTA7CiAgQyAxIHwgYzEgIHwgYzEgIApAQCAtNzExLDEx ICs3MTYsMTIgQEAgRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogICAgT3V0cHV0OiBhLiJD IDEiLCBhLmMyLCBhLmMzLCBhLmM0LCBhLmM1LCBhLmM2LCBhLmM3LCBhLmM4LCBiLmMxLCBiLmMy LCBiLmMzLCBiLmM0LCBiLmM1LCBiLmM2LCBiLmM3LCBiLmM4CiAgICAtPiAgSW5kZXggU2NhbiB1 c2luZyB0MV9wa2V5IG9uICJTIDEiLiJUIDEiIGEKICAgICAgICAgIE91dHB1dDogYS4iQyAxIiwg YS5jMiwgYS5jMywgYS5jNCwgYS5jNSwgYS5jNiwgYS5jNywgYS5jOAorICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6IChhLiJDIDEiID0gNDcpCiAgICAtPiAgRm9y ZWlnbiBTY2FuIG9uIHB1YmxpYy5mdDIgYgogICAgICAgICAgT3V0cHV0OiBiLmMxLCBiLmMyLCBi LmMzLCBiLmM0LCBiLmM1LCBiLmM2LCBiLmM3LCBiLmM4CiAgICAgICAgICBSZW1vdGUgU1FMOiBT RUxFQ1QgIkMgMSIsIGMyLCBjMywgYzQsIGM1LCBjNiwgYzcsIGM4IEZST00gIlMgMSIuIlQgMSIg V0hFUkUgKCgkMTo6aW50ZWdlciA9ICJDIDEiKSkKLSg4IHJvd3MpCisoOSByb3dzKQogCiBTRUxF Q1QgKiBGUk9NIGZ0MiBhLCBmdDIgYiBXSEVSRSBhLmMxID0gNDcgQU5EIGIuYzEgPSBhLmMyOwog IGMxIHwgYzIgfCAgYzMgICB8ICAgICAgICAgICAgICBjNCAgICAgICAgICAgICAgfCAgICAgICAg ICAgIGM1ICAgICAgICAgICAgfCBjNiB8ICAgICBjNyAgICAgfCBjOCAgfCBjMSB8IGMyIHwgIGMz ICAgfCAgICAgICAgICAgICAgYzQgICAgICAgICAgICAgIHwgICAgICAgICAgICBjNSAgICAgICAg ICAgIHwgYzYgfCAgICAgYzcgICAgIHwgYzggIApAQCAtMjEyNiw2ICsyMTMyLDcgQEAgU0VMRUNU IHQxLiJDIDEiIEZST00gIlMgMSIuIlQgMSIgdDEsIExBVEVSQUwgKFNFTEVDVCBESVNUSU5DVCB0 Mi5jMSwgdDMuYzEgRlJPTQogICAgICAgICAgT3V0cHV0OiB0MS4iQyAxIgogICAgICAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgdDFfcGtleSBvbiAiUyAxIi4iVCAxIiB0MQogICAgICAgICAgICAg ICAgT3V0cHV0OiB0MS4iQyAxIiwgdDEuYzIsIHQxLmMzLCB0MS5jNCwgdDEuYzUsIHQxLmM2LCB0 MS5jNywgdDEuYzgKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAtPiAg SGFzaEFnZ3JlZ2F0ZQogICAgICAgICAgICAgICAgT3V0cHV0OiB0Mi5jMSwgdDMuYzEKICAgICAg ICAgICAgICAgIEdyb3VwIEtleTogdDIuYzEsIHQzLmMxCkBAIC0yMTMzLDcgKzIxNDAsNyBAQCBT RUxFQ1QgdDEuIkMgMSIgRlJPTSAiUyAxIi4iVCAxIiB0MSwgTEFURVJBTCAoU0VMRUNUIERJU1RJ TkNUIHQyLmMxLCB0My5jMSBGUk9NCiAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQyLmMx LCB0My5jMQogICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiAocHVibGljLmZ0MSB0Mikg SU5ORVIgSk9JTiAocHVibGljLmZ0MiB0MykKICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBT UUw6IFNFTEVDVCByMS4iQyAxIiwgcjIuIkMgMSIgRlJPTSAoIlMgMSIuIlQgMSIgcjEgSU5ORVIg Sk9JTiAiUyAxIi4iVCAxIiByMiBPTiAoKChyMS4iQyAxIiA9IHIyLiJDIDEiKSkgQU5EICgocjEu YzIgPSAkMTo6aW50ZWdlcikpKSkKLSgxMyByb3dzKQorKDE0IHJvd3MpCiAKIFNFTEVDVCB0MS4i QyAxIiBGUk9NICJTIDEiLiJUIDEiIHQxLCBMQVRFUkFMIChTRUxFQ1QgRElTVElOQ1QgdDIuYzEs IHQzLmMxIEZST00gZnQxIHQyLCBmdDIgdDMgV0hFUkUgdDIuYzEgPSB0My5jMSBBTkQgdDIuYzIg PSB0MS5jMikgcSBPUkRFUiBCWSB0MS4iQyAxIiBPRkZTRVQgMTAgTElNSVQgMTA7CiAgQyAxIApA QCAtMjI4OCw3ICsyMjk1LDggQEAgU0VMRUNUICogRlJPTSBmdDEsIGZ0MiwgZnQ0LCBmdDUsIGxv Y2FsX3RibCBXSEVSRSBmdDEuYzEgPSBmdDIuYzEgQU5EIGZ0MS5jMiA9IGYKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBjMSwgYzIsIGMzIEZST00g IlMgMSIuIlQgNCIgRk9SIFVQREFURQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbG9j YWxfdGJsX3BrZXkgb24gcHVibGljLmxvY2FsX3RibAogICAgICAgICAgICAgICAgT3V0cHV0OiBs b2NhbF90YmwuYzEsIGxvY2FsX3RibC5jMiwgbG9jYWxfdGJsLmMzLCBsb2NhbF90YmwuY3RpZAot KDQ3IHJvd3MpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAorKDQ4IHJvd3MpCiAKIFNF TEVDVCAqIEZST00gZnQxLCBmdDIsIGZ0NCwgZnQ1LCBsb2NhbF90YmwgV0hFUkUgZnQxLmMxID0g ZnQyLmMxIEFORCBmdDEuYzIgPSBmdDQuYzEKICAgICBBTkQgZnQxLmMyID0gZnQ1LmMxIEFORCBm dDEuYzIgPSBsb2NhbF90YmwuYzEgQU5EIGZ0MS5jMSA8IDEwMCBBTkQgZnQyLmMxIDwgMTAwIEZP UiBVUERBVEU7CkBAIC0zMzMyLDYgKzMzNDAsNyBAQCBzZWxlY3QgYzIsIHN1bSBmcm9tICJTIDEi LiJUIDEiIHQxLCBsYXRlcmFsIChzZWxlY3Qgc3VtKHQyLmMxICsgdDEuIkMgMSIpIHN1bSBmcgog ICAgICAgICAgT3V0cHV0OiB0MS5jMiwgcXJ5LnN1bQogICAgICAgICAgLT4gIEluZGV4IFNjYW4g dXNpbmcgdDFfcGtleSBvbiAiUyAxIi4iVCAxIiB0MQogICAgICAgICAgICAgICAgT3V0cHV0OiB0 MS4iQyAxIiwgdDEuYzIsIHQxLmMzLCB0MS5jNCwgdDEuYzUsIHQxLmM2LCB0MS5jNywgdDEuYzgK KyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAodDEuIkMgMSIgPCAxMDApCiAgICAgICAgICAgICAgICBGaWx0ZXI6ICh0MS5jMiA8IDMpCiAg ICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBvbiBxcnkKQEAgLTMzNDEsNyArMzM1MCw3IEBAIHNl bGVjdCBjMiwgc3VtIGZyb20gIlMgMSIuIlQgMSIgdDEsIGxhdGVyYWwgKHNlbGVjdCBzdW0odDIu YzEgKyB0MS4iQyAxIikgc3VtIGZyCiAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IChzdW0o KHQyLmMxICsgdDEuIkMgMSIpKSksIHQyLmMxCiAgICAgICAgICAgICAgICAgICAgICBSZWxhdGlv bnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZ0MiB0MikKICAgICAgICAgICAgICAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCBzdW0oKCJDIDEiICsgJDE6OmludGVnZXIpKSwgIkMgMSIgRlJPTSAi UyAxIi4iVCAxIiBHUk9VUCBCWSAyCi0oMTYgcm93cykKKygxNyByb3dzKQogCiBzZWxlY3QgYzIs IHN1bSBmcm9tICJTIDEiLiJUIDEiIHQxLCBsYXRlcmFsIChzZWxlY3Qgc3VtKHQyLmMxICsgdDEu IkMgMSIpIHN1bSBmcm9tIGZ0MiB0MiBncm91cCBieSB0Mi5jMSkgcXJ5IHdoZXJlIHQxLmMyICog MiA9IHFyeS5zdW0gYW5kIHQxLmMyIDwgMyBhbmQgdDEuIkMgMSIgPCAxMDAgb3JkZXIgYnkgMTsK ICBjMiB8IHN1bSAKQEAgLTMzNzIsNiArMzM4MSw3IEBAIE9SREVSIEJZIHJlZl8wLiJDIDEiOwog ICAgICAgICAgT3V0cHV0OiByZWZfMC5jMiwgcmVmXzAuIkMgMSIsIHJlZl8xLmMzLCAocmVmXzAu YzIpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0MV9wa2V5IG9uICJTIDEiLiJUIDEi IHJlZl8wCiAgICAgICAgICAgICAgICBPdXRwdXQ6IHJlZl8wLiJDIDEiLCByZWZfMC5jMiwgcmVm XzAuYzMsIHJlZl8wLmM0LCByZWZfMC5jNSwgcmVmXzAuYzYsIHJlZl8wLmM3LCByZWZfMC5jOAor ICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 IChyZWZfMC4iQyAxIiA8IDEwKQogICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu ZnQxIHJlZl8xCiAgICAgICAgICAgICAgICBPdXRwdXQ6IHJlZl8xLmMzLCByZWZfMC5jMgpAQCAt MzM4MSw3ICszMzkxLDcgQEAgT1JERVIgQlkgcmVmXzAuIkMgMSI7CiAgICAgICAgICAtPiAgRm9y ZWlnbiBTY2FuIG9uIHB1YmxpYy5mdDIgcmVmXzMKICAgICAgICAgICAgICAgIE91dHB1dDogcmVm XzMuYzMKICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBjMyBGUk9NICJTIDEiLiJU IDEiIFdIRVJFICgoYzMgPSAnMDAwMDEnOjp0ZXh0KSkKLSgxNSByb3dzKQorKDE2IHJvd3MpCiAK IFNFTEVDVCByZWZfMC5jMiwgc3VicV8xLioKIEZST00KQEAgLTQxNDksMTEgKzQxNTksMTIgQEAg ZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGZ0MyBmLCBsb2N0MyBs CiAgICBPdXRwdXQ6IGYuZjEsIGYuZjIsIGYuZjMsIGwuZjEsIGwuZjIsIGwuZjMKICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIGxvY3QzX2YxX2tleSBvbiBwdWJsaWMubG9jdDMgbAogICAgICAgICAg T3V0cHV0OiBsLmYxLCBsLmYyLCBsLmYzCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgSW5kZXggQ29uZDogKGwuZjEgPSAnZm9vJzo6dGV4dCkKICAgIC0+ICBGb3JlaWduIFNjYW4g b24gcHVibGljLmZ0MyBmCiAgICAgICAgICBPdXRwdXQ6IGYuZjEsIGYuZjIsIGYuZjMKICAgICAg ICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBmMSwgZjIsIGYzIEZST00gcHVibGljLmxvY3QzIFdIRVJF ICgoJDE6OmNoYXJhY3RlciB2YXJ5aW5nKDEwKSA9IGYzKSkKLSg4IHJvd3MpCisoOSByb3dzKQog CiAtLSBjYW4ndCBiZSBzZW50IHRvIHJlbW90ZQogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2Zm KSBzZWxlY3QgKiBmcm9tIGZ0MyB3aGVyZSBmMSBDT0xMQVRFICJQT1NJWCIgPSAnZm9vJzsKQEAg LTQyMDcsOCArNDIxOCw5IEBAIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBmdDMgZiwgbG9jdDMgbAogICAgICAgICAgT3V0cHV0OiBsLmYxLCBsLmYyLCBsLmYzCiAg ICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBsb2N0M19mMV9rZXkgb24gcHVibGljLmxvY3Qz IGwKICAgICAgICAgICAgICAgIE91dHB1dDogbC5mMSwgbC5mMiwgbC5mMworICAgICAgICAgICAg ICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChsLmYxID0gJ2Zv byc6OnRleHQpCi0oMTIgcm93cykKKygxMyByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSB0ZXN0 IHdyaXRhYmxlIGZvcmVpZ24gdGFibGUgc3R1ZmYKQEAgLTczNjEsMTIgKzczNzMsMTQgQEAgZXhw bGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6 IGZvby5mMQogICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgaV9mb29f ZjEgb24gcHVibGljLmZvbyBmb29fMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0 OiBmb29fMS5mMSwgZm9vXzEuZjIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5m b28yIGZvb18yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvb18yLmYxLCBm b29fMi5mMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGYx LCBmMiBGUk9NIHB1YmxpYy5sb2N0MSBPUkRFUiBCWSBmMSBBU0MgTlVMTFMgTEFTVAogICAgICAg ICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBpX2xvY3QxX2YxIG9uIHB1YmxpYy5s b2N0MQogICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBsb2N0MS5mMQotKDE3IHJvd3MpCisg ICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAorKDE5IHJvd3MpCiAKIHNlbGVjdCBm b28uZjEsIGxvY3QxLmYxIGZyb20gZm9vIGpvaW4gbG9jdDEgb24gKGZvby5mMSA9IGxvY3QxLmYx KSBvcmRlciBieSBmb28uZjIgb2Zmc2V0IDEwIGxpbWl0IDEwOwogIGYxIHwgZjEgCkBAIC03NDAx LDEyICs3NDE1LDE0IEBAIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikKICAgICAgICAgICAg ICAgICAgICAgIFNvcnQgS2V5OiBmb28uZjEKICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIGlfZm9vX2YxIG9uIHB1YmxpYy5mb28gZm9vXzEKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE91dHB1dDogZm9vXzEuZjEsIGZvb18xLmYyCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVp Z24gU2NhbiBvbiBwdWJsaWMuZm9vMiBmb29fMgogICAgICAgICAgICAgICAgICAgICAgICAgICAg T3V0cHV0OiBmb29fMi5mMSwgZm9vXzIuZjIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCBmMSwgZjIgRlJPTSBwdWJsaWMubG9jdDEgT1JERVIgQlkgZjEgQVND IE5VTExTIExBU1QKICAgICAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgaV9s b2N0MV9mMSBvbiBwdWJsaWMubG9jdDEKICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogbG9j dDEuZjEKLSgxNyByb3dzKQorICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKygx OSByb3dzKQogCiBzZWxlY3QgZm9vLmYxLCBsb2N0MS5mMSBmcm9tIGZvbyBsZWZ0IGpvaW4gbG9j dDEgb24gKGZvby5mMSA9IGxvY3QxLmYxKSBvcmRlciBieSBmb28uZjIgb2Zmc2V0IDEwIGxpbWl0 IDEwOwogIGYxIHwgZjEgCkBAIC03NDQ3LDEwICs3NDYzLDExIEBAIGRlbGV0ZSBmcm9tIGZvbyB3 aGVyZSBmMSA8IDUgcmV0dXJuaW5nICo7CiAgICBGb3JlaWduIERlbGV0ZSBvbiBwdWJsaWMuZm9v MiBmb29fMQogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgaV9mb29fZjEgb24gcHVibGljLmZvbwog ICAgICAgICAgT3V0cHV0OiBmb28uY3RpZAorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAg ICAgIEluZGV4IENvbmQ6IChmb28uZjEgPCA1KQogICAgLT4gIEZvcmVpZ24gRGVsZXRlIG9uIHB1 YmxpYy5mb28yIGZvb18xCiAgICAgICAgICBSZW1vdGUgU1FMOiBERUxFVEUgRlJPTSBwdWJsaWMu bG9jdDEgV0hFUkUgKChmMSA8IDUpKSBSRVRVUk5JTkcgZjEsIGYyCi0oOSByb3dzKQorKDEwIHJv d3MpCiAKIGRlbGV0ZSBmcm9tIGZvbyB3aGVyZSBmMSA8IDUgcmV0dXJuaW5nICo7CiAgZjEgfCBm MiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCmluZGV4IDg3ZDM5NTcwYjUuLjg2 NWM0YWY4ZGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2Rl LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYwpAQCAtMTAyOSw2 ICsxMDI5LDEzIEBAIGNyZWF0ZV9pbmRleF9wYXRoKFBsYW5uZXJJbmZvICpyb290LAogCXBhdGhu b2RlLT5pbmRleG9yZGVyYnljb2xzID0gaW5kZXhvcmRlcmJ5Y29sczsKIAlwYXRobm9kZS0+aW5k ZXhzY2FuZGlyID0gaW5kZXhzY2FuZGlyOwogCisJLyogQHRvZG8gdGhpcyBpcyBqdXN0IGZvciB0 ZXN0aW5nIHB1cnBvc2VzLgorCSAqIHdlIG5lZWQgYSBiZXR0ZXIgc2VsZWN0aW9uIG1lY2hhbmlz bSBmb3Igd2hlbiB0bworCSAqIHVzZSBza2lwIHNjYW4gYW5kIHdoZW4gdG8gdXNlIHJlZ3VsYXIg aW5kZXggc2NhbgorCSAqLworCWlmICghcGFydGlhbF9wYXRoICYmIGluZGV4LT5hbWNhbnNraXAg JiYgZW5hYmxlX2luZGV4c2tpcHNjYW4pCisJCXBhdGhub2RlLT5pbmRleHNraXBwcmVmaXggPSAx MDsKKwogCWNvc3RfaW5kZXgocGF0aG5vZGUsIHJvb3QsIGxvb3BfY291bnQsIHBhcnRpYWxfcGF0 aCk7CiAKIAlyZXR1cm4gcGF0aG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvc2VsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCmluZGV4IDgz MzlmNGNkN2EuLjkxYWUzM2Q3NGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9z ZWxmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCkBAIC01OTI5 LDEzICs1OTI5LDIyIEBAIGJ0Y29zdGVzdGltYXRlKFBsYW5uZXJJbmZvICpyb290LCBJbmRleFBh dGggKnBhdGgsIGRvdWJsZSBsb29wX2NvdW50LAogCiAJCWlmIChpbmRleGNvbCAhPSBpY2xhdXNl LT5pbmRleGNvbCkKIAkJeworCQkJLyogQHRvZG8gdGhpcyBlc3RpbWF0ZSBpcyB3cm9uZyBidXQg dXNlIGl0IGZvcgorCQkJCW5vdyBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gaXQgZm9yY2VzIGluZGV4 IHNraXAgc2NhbiB0bworCQkJCWJlIHVzZWQgYXMgb2Z0ZW4gYXMgcG9zc2libGUuCisJCQkqLwog CQkJLyogQmVnaW5uaW5nIG9mIGEgbmV3IGNvbHVtbidzIHF1YWxzICovCi0JCQlpZiAoIWVxUXVh bEhlcmUpCisJCQlpZiAoIWVxUXVhbEhlcmUgJiYgcGF0aC0+aW5kZXhza2lwcHJlZml4ID09IDAp CiAJCQkJYnJlYWs7CQkJLyogZG9uZSBpZiBubyAnPScgcXVhbCBmb3IgaW5kZXhjb2wgKi8KIAkJ CWVxUXVhbEhlcmUgPSBmYWxzZTsKIAkJCWluZGV4Y29sKys7CiAJCQlpZiAoaW5kZXhjb2wgIT0g aWNsYXVzZS0+aW5kZXhjb2wpCi0JCQkJYnJlYWs7CQkJLyogbm8gcXVhbHMgYXQgYWxsIGZvciBp bmRleGNvbCAqLworCQkJeworCQkJCWlmIChwYXRoLT5pbmRleHNraXBwcmVmaXggPT0gMCkKKwkJ CQkJYnJlYWs7CQkJLyogbm8gcXVhbHMgYXQgYWxsIGZvciBpbmRleGNvbCAqLworCQkJCWVsc2UK KwkJCQkJY29udGludWU7CisJCQl9CiAJCX0KIAogCQkvKiBFeGFtaW5lIGVhY2ggaW5kZXhxdWFs IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluZGV4IGNsYXVzZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvaXNvbGF0aW9uL2V4cGVjdGVkL2Ryb3AtaW5kZXgtY29uY3VycmVudGx5LTEub3V0IGIvc3Jj L3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL2Ryb3AtaW5kZXgtY29uY3VycmVudGx5LTEub3V0Cmlu ZGV4IDc1ZGZmNTZiYzQuLjQ0ODI1NmRiOTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9kcm9wLWluZGV4LWNvbmN1cnJlbnRseS0xLm91dAorKysgYi9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvZHJvcC1pbmRleC1jb25jdXJyZW50bHktMS5vdXQKQEAgLTE1LDYg KzE1LDcgQEAgUVVFUlkgUExBTgogU29ydCAgICAgICAgICAgCiAgIFNvcnQgS2V5OiBpZCAKICAg LT4gIEluZGV4IFNjYW4gdXNpbmcgdGVzdF9kY19kYXRhIG9uIHRlc3RfZGMKKyAgICAgICAgU2tp cCBzY2FuOiBBbGwKICAgICAgICAgSW5kZXggQ29uZDogKGRhdGEgPSAzNCkKIHN0ZXAgZXhwbGFp bnM6IEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBnZXRyb3dfc2VxOwogUVVFUlkgUExBTiAg ICAgCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvZXZhbC1wbGFuLXF1 YWwub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL2V2YWwtcGxhbi1xdWFsLm91dApp bmRleCAzZTU1YTU1YzYzLi43NTE5ODhmYWZmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRp b24vZXhwZWN0ZWQvZXZhbC1wbGFuLXF1YWwub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9l eHBlY3RlZC9ldmFsLXBsYW4tcXVhbC5vdXQKQEAgLTgzNyw3ICs4MzcsOSBAQCBMb2NrUm93cwog ICAtPiAgTWVyZ2UgSm9pbgogICAgICAgICBNZXJnZSBDb25kOiAoYS5pZCA9IGIuaWQpCiAgICAg ICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGpvaW50ZXN0X2lkX2lkeCBvbiBqb2ludGVzdCBhCisg ICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5n IGpvaW50ZXN0X2lkX2lkeCBvbiBqb2ludGVzdCBiCisgICAgICAgICAgICAgIFNraXAgc2Nhbjog QWxsCiBpZCAgICAgICAgICAgICBkYXRhICAgICAgICAgICBpZCAgICAgICAgICAgICBkYXRhICAg ICAgICAgICAKIAogMSAgICAgICAgICAgICAgMCAgICAgICAgICAgICAgMSAgICAgICAgICAgICAg MCAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Fn Z3JlZ2F0ZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hZ2dyZWdhdGVzLm91dApp bmRleCAzMjU5YTIyNTE2Li4yMTk0ZjAwOWZkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2FnZ3JlZ2F0ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv YWdncmVnYXRlcy5vdXQKQEAgLTcyMCw4ICs3MjAsOSBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAg ICBJbml0UGxhbiAxIChyZXR1cm5zICQwKQogICAgICAtPiAgTGltaXQKICAgICAgICAgICAgLT4g IEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsxCisgICAgICAgICAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlx dWUxIElTIE5PVCBOVUxMKQotKDUgcm93cykKKyg2IHJvd3MpCiAKIHNlbGVjdCBtaW4odW5pcXVl MSkgZnJvbSB0ZW5rMTsKICBtaW4gCkBAIC03MzcsOCArNzM4LDkgQEAgZXhwbGFpbiAoY29zdHMg b2ZmKQogICAgSW5pdFBsYW4gMSAocmV0dXJucyAkMCkKICAgICAgLT4gIExpbWl0CiAgICAgICAg ICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gQmFja3dhcmQgdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0 ZW5rMQorICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAodW5pcXVlMSBJUyBOT1QgTlVMTCkKLSg1IHJvd3MpCisoNiByb3dzKQogCiBz ZWxlY3QgbWF4KHVuaXF1ZTEpIGZyb20gdGVuazE7CiAgbWF4ICAKQEAgLTc1NCw4ICs3NTYsOSBA QCBleHBsYWluIChjb3N0cyBvZmYpCiAgICBJbml0UGxhbiAxIChyZXR1cm5zICQwKQogICAgICAt PiAgTGltaXQKICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiBCYWNrd2FyZCB1c2luZyB0 ZW5rMV91bmlxdWUxIG9uIHRlbmsxCisgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgodW5pcXVlMSBJUyBOT1QgTlVMTCkgQU5EICh1 bmlxdWUxIDwgNDIpKQotKDUgcm93cykKKyg2IHJvd3MpCiAKIHNlbGVjdCBtYXgodW5pcXVlMSkg ZnJvbSB0ZW5rMSB3aGVyZSB1bmlxdWUxIDwgNDI7CiAgbWF4IApAQCAtNzcxLDggKzc3NCw5IEBA IGV4cGxhaW4gKGNvc3RzIG9mZikKICAgIEluaXRQbGFuIDEgKHJldHVybnMgJDApCiAgICAgIC0+ ICBMaW1pdAogICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIEJhY2t3YXJkIHVzaW5nIHRl bmsxX3VuaXF1ZTEgb24gdGVuazEKKyAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAg ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh1bmlxdWUxIElTIE5PVCBOVUxMKSBBTkQgKHVu aXF1ZTEgPiA0MikpCi0oNSByb3dzKQorKDYgcm93cykKIAogc2VsZWN0IG1heCh1bmlxdWUxKSBm cm9tIHRlbmsxIHdoZXJlIHVuaXF1ZTEgPiA0MjsKICBtYXggIApAQCAtNzk0LDggKzc5OCw5IEBA IGV4cGxhaW4gKGNvc3RzIG9mZikKICAgIEluaXRQbGFuIDEgKHJldHVybnMgJDApCiAgICAgIC0+ ICBMaW1pdAogICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIEJhY2t3YXJkIHVzaW5nIHRl bmsxX3VuaXF1ZTEgb24gdGVuazEKKyAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAg ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh1bmlxdWUxIElTIE5PVCBOVUxMKSBBTkQgKHVu aXF1ZTEgPiA0MjAwMCkpCi0oNSByb3dzKQorKDYgcm93cykKIAogc2VsZWN0IG1heCh1bmlxdWUx KSBmcm9tIHRlbmsxIHdoZXJlIHVuaXF1ZTEgPiA0MjAwMDsKICBtYXggCkBAIC04MTMsOCArODE4 LDkgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgSW5pdFBsYW4gMSAocmV0dXJucyAkMCkKICAg ICAgLT4gIExpbWl0CiAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gQmFja3dhcmQgdXNp bmcgdGVuazFfdGhvdXNfdGVudGhvdXMgb24gdGVuazEKKyAgICAgICAgICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDMzKSBB TkQgKHRlbnRob3VzIElTIE5PVCBOVUxMKSkKLSg1IHJvd3MpCisoNiByb3dzKQogCiBzZWxlY3Qg bWF4KHRlbnRob3VzKSBmcm9tIHRlbmsxIHdoZXJlIHRob3VzYW5kID0gMzM7CiAgbWF4ICAKQEAg LTgzMCw4ICs4MzYsOSBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAgICBJbml0UGxhbiAxIChyZXR1 cm5zICQwKQogICAgICAtPiAgTGltaXQKICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1 c2luZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiB0ZW5rMQorICAgICAgICAgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gMzMp IEFORCAodGVudGhvdXMgSVMgTk9UIE5VTEwpKQotKDUgcm93cykKKyg2IHJvd3MpCiAKIHNlbGVj dCBtaW4odGVudGhvdXMpIGZyb20gdGVuazEgd2hlcmUgdGhvdXNhbmQgPSAzMzsKICBtaW4gCkBA IC04NTEsOCArODU4LDkgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgICAgICAgICBJbml0UGxh biAxIChyZXR1cm5zICQxKQogICAgICAgICAgICAgIC0+ICBMaW1pdAogICAgICAgICAgICAgICAg ICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0ZW5rMQorICAg ICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKCh1bmlxdWUxIElTIE5PVCBOVUxMKSBBTkQgKHVuaXF1ZTEgPiBp bnQ0X3RibC5mMSkpCi0oNyByb3dzKQorKDggcm93cykKIAogc2VsZWN0IGYxLCAoc2VsZWN0IG1p bih1bmlxdWUxKSBmcm9tIHRlbmsxIHdoZXJlIHVuaXF1ZTEgPiBmMSkgQVMgZ3QKICAgZnJvbSBp bnQ0X3RibDsKQEAgLTg3NSw5ICs4ODMsMTAgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgSW5p dFBsYW4gMSAocmV0dXJucyAkMCkKICAgICAgLT4gIExpbWl0CiAgICAgICAgICAgIC0+ICBJbmRl eCBPbmx5IFNjYW4gQmFja3dhcmQgdXNpbmcgdGVuazFfdW5pcXVlMiBvbiB0ZW5rMQorICAgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo dW5pcXVlMiBJUyBOT1QgTlVMTCkKICAgIC0+ICBSZXN1bHQKLSg3IHJvd3MpCisoOCByb3dzKQog CiBzZWxlY3QgZGlzdGluY3QgbWF4KHVuaXF1ZTIpIGZyb20gdGVuazE7CiAgbWF4ICAKQEAgLTg5 NCw5ICs5MDMsMTAgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgSW5pdFBsYW4gMSAocmV0dXJu cyAkMCkKICAgICAgLT4gIExpbWl0CiAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gQmFj a3dhcmQgdXNpbmcgdGVuazFfdW5pcXVlMiBvbiB0ZW5rMQorICAgICAgICAgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiBJUyBOT1Qg TlVMTCkKICAgIC0+ICBSZXN1bHQKLSg3IHJvd3MpCisoOCByb3dzKQogCiBzZWxlY3QgbWF4KHVu aXF1ZTIpIGZyb20gdGVuazEgb3JkZXIgYnkgMTsKICBtYXggIApAQCAtOTEzLDkgKzkyMywxMCBA QCBleHBsYWluIChjb3N0cyBvZmYpCiAgICBJbml0UGxhbiAxIChyZXR1cm5zICQwKQogICAgICAt PiAgTGltaXQKICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiBCYWNrd2FyZCB1c2luZyB0 ZW5rMV91bmlxdWUyIG9uIHRlbmsxCisgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUyIElTIE5PVCBOVUxMKQogICAgLT4g IFJlc3VsdAotKDcgcm93cykKKyg4IHJvd3MpCiAKIHNlbGVjdCBtYXgodW5pcXVlMikgZnJvbSB0 ZW5rMSBvcmRlciBieSBtYXgodW5pcXVlMik7CiAgbWF4ICAKQEAgLTkzMiw5ICs5NDMsMTAgQEAg ZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgSW5pdFBsYW4gMSAocmV0dXJucyAkMCkKICAgICAgLT4g IExpbWl0CiAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gQmFja3dhcmQgdXNpbmcgdGVu azFfdW5pcXVlMiBvbiB0ZW5rMQorICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiBJUyBOT1QgTlVMTCkKICAgIC0+ICBS ZXN1bHQKLSg3IHJvd3MpCisoOCByb3dzKQogCiBzZWxlY3QgbWF4KHVuaXF1ZTIpIGZyb20gdGVu azEgb3JkZXIgYnkgbWF4KHVuaXF1ZTIpKzE7CiAgbWF4ICAKQEAgLTk1MSwxMCArOTYzLDExIEBA IGV4cGxhaW4gKGNvc3RzIG9mZikKICAgIEluaXRQbGFuIDEgKHJldHVybnMgJDApCiAgICAgIC0+ ICBMaW1pdAogICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIEJhY2t3YXJkIHVzaW5nIHRl bmsxX3VuaXF1ZTIgb24gdGVuazEKKyAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAg ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgSVMgTk9UIE5VTEwpCiAgICAtPiAg UHJvamVjdFNldAogICAgICAgICAgLT4gIFJlc3VsdAotKDggcm93cykKKyg5IHJvd3MpCiAKIHNl bGVjdCBtYXgodW5pcXVlMiksIGdlbmVyYXRlX3NlcmllcygxLDMpIGFzIGcgZnJvbSB0ZW5rMSBv cmRlciBieSBnIGRlc2M7CiAgbWF4ICB8IGcgCkBAIC0xMDA2LDI0ICsxMDE5LDMyIEBAIGV4cGxh aW4gKGNvc3RzIG9mZikKICAgICAgICAgICAgLT4gIE1lcmdlIEFwcGVuZAogICAgICAgICAgICAg ICAgICBTb3J0IEtleTogbWlubWF4dGVzdC5mMQogICAgICAgICAgICAgICAgICAtPiAgSW5kZXgg T25seSBTY2FuIHVzaW5nIG1pbm1heHRlc3RpIG9uIG1pbm1heHRlc3QgbWlubWF4dGVzdF8xCisg ICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAg ICAgIEluZGV4IENvbmQ6IChmMSBJUyBOT1QgTlVMTCkKICAgICAgICAgICAgICAgICAgLT4gIElu ZGV4IE9ubHkgU2NhbiB1c2luZyBtaW5tYXh0ZXN0MWkgb24gbWlubWF4dGVzdDEgbWlubWF4dGVz dF8yCisgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChmMSBJUyBOT1QgTlVMTCkKICAgICAgICAgICAgICAgICAg LT4gIEluZGV4IE9ubHkgU2NhbiBCYWNrd2FyZCB1c2luZyBtaW5tYXh0ZXN0Mmkgb24gbWlubWF4 dGVzdDIgbWlubWF4dGVzdF8zCisgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxs CiAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChmMSBJUyBOT1QgTlVMTCkKICAg ICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBtaW5tYXh0ZXN0M2kgb24g bWlubWF4dGVzdDMgbWlubWF4dGVzdF80CisgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICBJbml0UGxhbiAyIChyZXR1cm5zICQxKQogICAgICAtPiAgTGltaXQKICAgICAg ICAgICAgLT4gIE1lcmdlIEFwcGVuZAogICAgICAgICAgICAgICAgICBTb3J0IEtleTogbWlubWF4 dGVzdF81LmYxIERFU0MKICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiBCYWNr d2FyZCB1c2luZyBtaW5tYXh0ZXN0aSBvbiBtaW5tYXh0ZXN0IG1pbm1heHRlc3RfNgorICAgICAg ICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoZjEgSVMgTk9UIE5VTEwpCiAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBP bmx5IFNjYW4gQmFja3dhcmQgdXNpbmcgbWlubWF4dGVzdDFpIG9uIG1pbm1heHRlc3QxIG1pbm1h eHRlc3RfNworICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoZjEgSVMgTk9UIE5VTEwpCiAgICAgICAgICAgICAg ICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgbWlubWF4dGVzdDJpIG9uIG1pbm1heHRlc3Qy IG1pbm1heHRlc3RfOAorICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAg ICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoZjEgSVMgTk9UIE5VTEwpCiAgICAgICAg ICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gQmFja3dhcmQgdXNpbmcgbWlubWF4dGVzdDNp IG9uIG1pbm1heHRlc3QzIG1pbm1heHRlc3RfOQotKDIzIHJvd3MpCisgICAgICAgICAgICAgICAg ICAgICAgIFNraXAgc2NhbjogQWxsCisoMzEgcm93cykKIAogc2VsZWN0IG1pbihmMSksIG1heChm MSkgZnJvbSBtaW5tYXh0ZXN0OwogIG1pbiB8IG1heCAKQEAgLTEwNDIsMjcgKzEwNjMsMzUgQEAg ZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgICAgICAgICAtPiAgTWVyZ2UgQXBwZW5kCiAgICAgICAg ICAgICAgICAgIFNvcnQgS2V5OiBtaW5tYXh0ZXN0LmYxCiAgICAgICAgICAgICAgICAgIC0+ICBJ bmRleCBPbmx5IFNjYW4gdXNpbmcgbWlubWF4dGVzdGkgb24gbWlubWF4dGVzdCBtaW5tYXh0ZXN0 XzEKKyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGYxIElTIE5PVCBOVUxMKQogICAgICAgICAgICAgICAgICAt PiAgSW5kZXggT25seSBTY2FuIHVzaW5nIG1pbm1heHRlc3QxaSBvbiBtaW5tYXh0ZXN0MSBtaW5t YXh0ZXN0XzIKKyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAg ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGYxIElTIE5PVCBOVUxMKQogICAgICAgICAgICAg ICAgICAtPiAgSW5kZXggT25seSBTY2FuIEJhY2t3YXJkIHVzaW5nIG1pbm1heHRlc3QyaSBvbiBt aW5tYXh0ZXN0MiBtaW5tYXh0ZXN0XzMKKyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGYxIElTIE5PVCBOVUxM KQogICAgICAgICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIG1pbm1heHRlc3Qz aSBvbiBtaW5tYXh0ZXN0MyBtaW5tYXh0ZXN0XzQKKyAgICAgICAgICAgICAgICAgICAgICAgU2tp cCBzY2FuOiBBbGwKICAgIEluaXRQbGFuIDIgKHJldHVybnMgJDEpCiAgICAgIC0+ICBMaW1pdAog ICAgICAgICAgICAtPiAgTWVyZ2UgQXBwZW5kCiAgICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBt aW5tYXh0ZXN0XzUuZjEgREVTQwogICAgICAgICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2Fu IEJhY2t3YXJkIHVzaW5nIG1pbm1heHRlc3RpIG9uIG1pbm1heHRlc3QgbWlubWF4dGVzdF82Cisg ICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAg ICAgIEluZGV4IENvbmQ6IChmMSBJUyBOT1QgTlVMTCkKICAgICAgICAgICAgICAgICAgLT4gIElu ZGV4IE9ubHkgU2NhbiBCYWNrd2FyZCB1c2luZyBtaW5tYXh0ZXN0MWkgb24gbWlubWF4dGVzdDEg bWlubWF4dGVzdF83CisgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAg ICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChmMSBJUyBOT1QgTlVMTCkKICAgICAgICAg ICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBtaW5tYXh0ZXN0Mmkgb24gbWlubWF4 dGVzdDIgbWlubWF4dGVzdF84CisgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxs CiAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChmMSBJUyBOT1QgTlVMTCkKICAg ICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiBCYWNrd2FyZCB1c2luZyBtaW5tYXh0 ZXN0M2kgb24gbWlubWF4dGVzdDMgbWlubWF4dGVzdF85CisgICAgICAgICAgICAgICAgICAgICAg IFNraXAgc2NhbjogQWxsCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6ICgkMCksICgk MSkKICAgICAgICAgIC0+ICBSZXN1bHQKLSgyNiByb3dzKQorKDM0IHJvd3MpCiAKIHNlbGVjdCBk aXN0aW5jdCBtaW4oZjEpLCBtYXgoZjEpIGZyb20gbWlubWF4dGVzdDsKICBtaW4gfCBtYXggCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2J0cmVlX2luZGV4Lm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgub3V0CmluZGV4IDE2NDZkZWIwOTIu LjdlMDllMWRmOGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVf aW5kZXgub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgub3V0 CkBAIC0xMTAsOSArMTEwLDEwIEBAIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBw cm9uYW1lIGxpa2UgRSdSSVxcX0ZLZXklZGVsJyBvcmRlciBieSAxOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgcGdf cHJvY19wcm9uYW1lX2FyZ3NfbnNwX2luZGV4IG9uIHBnX3Byb2MKKyAgIFNraXAgc2NhbjogQWxs CiAgICBJbmRleCBDb25kOiAoKHByb25hbWUgPj0gJ1JJX0ZLZXknOjp0ZXh0KSBBTkQgKHByb25h bWUgPCAnUklfRktleic6OnRleHQpKQogICAgRmlsdGVyOiAocHJvbmFtZSB+fiAnUklcX0ZLZXkl ZGVsJzo6dGV4dCkKLSgzIHJvd3MpCisoNCByb3dzKQogCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBn X3Byb2Mgd2hlcmUgcHJvbmFtZSBsaWtlIEUnUklcXF9GS2V5JWRlbCcgb3JkZXIgYnkgMTsKICAg ICAgICAgcHJvbmFtZSAgICAgICAgIApAQCAtMTI5LDkgKzEzMCwxMCBAQCBzZWxlY3QgcHJvbmFt ZSBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSBpbGlrZSAnMDAlZm9vJyBvcmRlciBieSAxOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHBnX3Byb2Nf cHJvbmFtZV9hcmdzX25zcF9pbmRleCBvbiBwZ19wcm9jCisgICBTa2lwIHNjYW46IEFsbAogICAg SW5kZXggQ29uZDogKChwcm9uYW1lID49ICcwMCc6OnRleHQpIEFORCAocHJvbmFtZSA8ICcwMSc6 OnRleHQpKQogICAgRmlsdGVyOiAocHJvbmFtZSB+fiogJzAwJWZvbyc6OnRleHQpCi0oMyByb3dz KQorKDQgcm93cykKIAogc2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUg aWxpa2UgJzAwJWZvbycgb3JkZXIgYnkgMTsKICBwcm9uYW1lIApAQCAtMTQzLDggKzE0NSw5IEBA IHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIGlsaWtlICdyaSVmb28n IG9yZGVyIGJ5IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbmRleCBPbmx5IFNjYW4gdXNpbmcg cGdfcHJvY19wcm9uYW1lX2FyZ3NfbnNwX2luZGV4IG9uIHBnX3Byb2MKKyAgIFNraXAgc2Nhbjog QWxsCiAgICBGaWx0ZXI6IChwcm9uYW1lIH5+KiAncmklZm9vJzo6dGV4dCkKLSgyIHJvd3MpCiso MyByb3dzKQogCiBzZXQgZW5hYmxlX2luZGV4c2NhbiB0byBmYWxzZTsKIHNldCBlbmFibGVfYml0 bWFwc2NhbiB0byB0cnVlOwpAQCAtMTU3LDggKzE2MCw5IEBAIHNlbGVjdCBwcm9uYW1lIGZyb20g cGdfcHJvYyB3aGVyZSBwcm9uYW1lIGxpa2UgRSdSSVxcX0ZLZXklZGVsJyBvcmRlciBieSAxOwog ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gcGdfcHJvYwogICAgICAgICAgRmlsdGVyOiAocHJv bmFtZSB+fiAnUklcX0ZLZXklZGVsJzo6dGV4dCkKICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiBwZ19wcm9jX3Byb25hbWVfYXJnc19uc3BfaW5kZXgKKyAgICAgICAgICAgICAgIFNr aXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKHByb25hbWUgPj0gJ1JJ X0ZLZXknOjp0ZXh0KSBBTkQgKHByb25hbWUgPCAnUklfRktleic6OnRleHQpKQotKDYgcm93cykK Kyg3IHJvd3MpCiAKIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIGxp a2UgRSdSSVxcX0ZLZXklZGVsJyBvcmRlciBieSAxOwogICAgICAgICBwcm9uYW1lICAgICAgICAg CkBAIC0xNzksOCArMTgzLDkgQEAgc2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHBy b25hbWUgaWxpa2UgJzAwJWZvbycgb3JkZXIgYnkgMTsKICAgIC0+ICBCaXRtYXAgSGVhcCBTY2Fu IG9uIHBnX3Byb2MKICAgICAgICAgIEZpbHRlcjogKHByb25hbWUgfn4qICcwMCVmb28nOjp0ZXh0 KQogICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHBnX3Byb2NfcHJvbmFtZV9hcmdz X25zcF9pbmRleAorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6ICgocHJvbmFtZSA+PSAnMDAnOjp0ZXh0KSBBTkQgKHByb25hbWUgPCAnMDEn Ojp0ZXh0KSkKLSg2IHJvd3MpCisoNyByb3dzKQogCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3By b2Mgd2hlcmUgcHJvbmFtZSBpbGlrZSAnMDAlZm9vJyBvcmRlciBieSAxOwogIHByb25hbWUgCkBA IC0xOTIsOCArMTk3LDkgQEAgc2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25h bWUgaWxpa2UgJ3JpJWZvbycgb3JkZXIgYnkgMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluZGV4 IE9ubHkgU2NhbiB1c2luZyBwZ19wcm9jX3Byb25hbWVfYXJnc19uc3BfaW5kZXggb24gcGdfcHJv YworICAgU2tpcCBzY2FuOiBBbGwKICAgIEZpbHRlcjogKHByb25hbWUgfn4qICdyaSVmb28nOjp0 ZXh0KQotKDIgcm93cykKKygzIHJvd3MpCiAKIHJlc2V0IGVuYWJsZV9zZXFzY2FuOwogcmVzZXQg ZW5hYmxlX2luZGV4c2NhbjsKQEAgLTI0MCw4ICsyNDYsOSBAQCBzZWxlY3QgKiBmcm9tIGJ0cmVl X2JwY2hhciB3aGVyZSBmMTo6YnBjaGFyIGxpa2UgJ2Zvbyc7CiAgQml0bWFwIEhlYXAgU2NhbiBv biBidHJlZV9icGNoYXIKICAgIEZpbHRlcjogKChmMSk6OmJwY2hhciB+fiAnZm9vJzo6dGV4dCkK ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBidHJlZV9icGNoYXJfZjFfaWR4CisgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKChmMSk6OmJwY2hhciA9ICdm b28nOjpicGNoYXIpCi0oNCByb3dzKQorKDUgcm93cykKIAogc2VsZWN0ICogZnJvbSBidHJlZV9i cGNoYXIgd2hlcmUgZjE6OmJwY2hhciBsaWtlICdmb28nOwogIGYxICAKQEAgLTI1Niw4ICsyNjMs OSBAQCBzZWxlY3QgKiBmcm9tIGJ0cmVlX2JwY2hhciB3aGVyZSBmMTo6YnBjaGFyIGxpa2UgJ2Zv byUnOwogIEJpdG1hcCBIZWFwIFNjYW4gb24gYnRyZWVfYnBjaGFyCiAgICBGaWx0ZXI6ICgoZjEp OjpicGNoYXIgfn4gJ2ZvbyUnOjp0ZXh0KQogICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJ0 cmVlX2JwY2hhcl9mMV9pZHgKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRl eCBDb25kOiAoKChmMSk6OmJwY2hhciA+PSAnZm9vJzo6YnBjaGFyKSBBTkQgKChmMSk6OmJwY2hh ciA8ICdmb3AnOjpicGNoYXIpKQotKDQgcm93cykKKyg1IHJvd3MpCiAKIHNlbGVjdCAqIGZyb20g YnRyZWVfYnBjaGFyIHdoZXJlIGYxOjpicGNoYXIgbGlrZSAnZm9vJSc7CiAgIGYxICAKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2x1c3Rlci5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NsdXN0ZXIub3V0CmluZGV4IGJkYWU4ZmUwMGMuLmU3ZWVlYmY3ZTEg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2x1c3Rlci5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jbHVzdGVyLm91dApAQCAtNDc4LDggKzQ3OCw5IEBA IEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBjbHN0cl9leHByZXNzaW9uIFdIRVJF IHVwcGVyKGIpID0gJ1BSRUZJWDMnOwogICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbmRleCBTY2FuIHVzaW5n IGNsc3RyX2V4cHJlc3Npb25fdXBwZXJfYiBvbiBjbHN0cl9leHByZXNzaW9uCisgICBTa2lwIHNj YW46IEFsbAogICAgSW5kZXggQ29uZDogKHVwcGVyKGIpID0gJ1BSRUZJWDMnOjp0ZXh0KQotKDIg cm93cykKKygzIHJvd3MpCiAKIFNFTEVDVCAqIEZST00gY2xzdHJfZXhwcmVzc2lvbiBXSEVSRSB1 cHBlcihiKSA9ICdQUkVGSVgzJzsKICBpZCB8IGEgfCAgICBiICAgIApAQCAtNDkxLDggKzQ5Miw5 IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBjbHN0cl9leHByZXNzaW9uIFdI RVJFIC1hID0gLTMgT1JERVIgQlkgLWEsIGI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluZGV4IFNjYW4g dXNpbmcgY2xzdHJfZXhwcmVzc2lvbl9taW51c19hIG9uIGNsc3RyX2V4cHJlc3Npb24KKyAgIFNr aXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAoKC0gYSkgPSAnLTMnOjppbnRlZ2VyKQotKDIg cm93cykKKygzIHJvd3MpCiAKIFNFTEVDVCAqIEZST00gY2xzdHJfZXhwcmVzc2lvbiBXSEVSRSAt YSA9IC0zIE9SREVSIEJZIC1hLCBiOwogIGlkICB8IGEgfCAgICAgYiAgICAgCkBAIC01MTIsOCAr NTE0LDkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGNsc3RyX2V4cHJlc3Np b24gV0hFUkUgdXBwZXIoYikgPSAnUFJFRklYMyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluZGV4IFNj YW4gdXNpbmcgY2xzdHJfZXhwcmVzc2lvbl91cHBlcl9iIG9uIGNsc3RyX2V4cHJlc3Npb24KKyAg IFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAodXBwZXIoYikgPSAnUFJFRklYMyc6OnRl eHQpCi0oMiByb3dzKQorKDMgcm93cykKIAogU0VMRUNUICogRlJPTSBjbHN0cl9leHByZXNzaW9u IFdIRVJFIHVwcGVyKGIpID0gJ1BSRUZJWDMnOwogIGlkIHwgYSB8ICAgIGIgICAgCkBAIC01MjUs OCArNTI4LDkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGNsc3RyX2V4cHJl c3Npb24gV0hFUkUgLWEgPSAtMyBPUkRFUiBCWSAtYSwgYjsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5k ZXggU2NhbiB1c2luZyBjbHN0cl9leHByZXNzaW9uX21pbnVzX2Egb24gY2xzdHJfZXhwcmVzc2lv bgorICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENvbmQ6ICgoLSBhKSA9ICctMyc6OmludGVn ZXIpCi0oMiByb3dzKQorKDMgcm93cykKIAogU0VMRUNUICogRlJPTSBjbHN0cl9leHByZXNzaW9u IFdIRVJFIC1hID0gLTMgT1JERVIgQlkgLWEsIGI7CiAgaWQgIHwgYSB8ICAgICBiICAgICAKQEAg LTU0Niw4ICs1NTAsOSBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gY2xzdHJf ZXhwcmVzc2lvbiBXSEVSRSB1cHBlcihiKSA9ICdQUkVGSVgzJzsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg SW5kZXggU2NhbiB1c2luZyBjbHN0cl9leHByZXNzaW9uX3VwcGVyX2Igb24gY2xzdHJfZXhwcmVz c2lvbgorICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENvbmQ6ICh1cHBlcihiKSA9ICdQUkVG SVgzJzo6dGV4dCkKLSgyIHJvd3MpCisoMyByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGNsc3RyX2V4 cHJlc3Npb24gV0hFUkUgdXBwZXIoYikgPSAnUFJFRklYMyc7CiAgaWQgfCBhIHwgICAgYiAgICAK QEAgLTU1OSw4ICs1NjQsOSBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gY2xz dHJfZXhwcmVzc2lvbiBXSEVSRSAtYSA9IC0zIE9SREVSIEJZIC1hLCBiOwogICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBJbmRleCBTY2FuIHVzaW5nIGNsc3RyX2V4cHJlc3Npb25fbWludXNfYSBvbiBjbHN0cl9l eHByZXNzaW9uCisgICBTa2lwIHNjYW46IEFsbAogICAgSW5kZXggQ29uZDogKCgtIGEpID0gJy0z Jzo6aW50ZWdlcikKLSgyIHJvd3MpCisoMyByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGNsc3RyX2V4 cHJlc3Npb24gV0hFUkUgLWEgPSAtMyBPUkRFUiBCWSAtYSwgYjsKICBpZCAgfCBhIHwgICAgIGIg ICAgIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0CmluZGV4IGFl OTViYjM4YTYuLmY4MTMyZWNhY2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX2luZGV4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0 ZV9pbmRleC5vdXQKQEAgLTE4MDQsMTIgKzE4MDQsMTUgQEAgU0VMRUNUICogRlJPTSB0ZW5rMQog ICAgUmVjaGVjayBDb25kOiAoKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0gMSkpIE9S ICgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9IDMpKSBPUiAoKHRob3VzYW5kID0gNDIp IEFORCAodGVudGhvdXMgPSA0MikpKQogICAgLT4gIEJpdG1hcE9yCiAgICAgICAgICAtPiAgQml0 bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgIFNr aXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIp IEFORCAodGVudGhvdXMgPSAxKSkKICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0 ZW5rMV90aG91c190ZW50aG91cworICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6ICgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9IDMp KQogICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3Vz CisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0gNDIpKQotKDkgcm93cykKKygxMiBy b3dzKQogCiBTRUxFQ1QgKiBGUk9NIHRlbmsxCiAgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0 ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzIE9SIHRlbnRob3VzID0gNDIpOwpAQCAtMTgyOCwx MyArMTgzMSwxNiBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQogICAgICAgICAgUmVjaGVj ayBDb25kOiAoKGh1bmRyZWQgPSA0MikgQU5EICgodGhvdXNhbmQgPSA0MikgT1IgKHRob3VzYW5k ID0gOTkpKSkKICAgICAgICAgIC0+ICBCaXRtYXBBbmQKICAgICAgICAgICAgICAgIC0+ICBCaXRt YXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCisgICAgICAgICAgICAgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGh1bmRyZWQgPSA0 MikKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXBPcgogICAgICAgICAgICAgICAgICAgICAgLT4g IEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAg ICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKHRob3VzYW5kID0gNDIpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0 bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAodGhvdXNhbmQgPSA5OSkKLSgxMSByb3dzKQorKDE0IHJvd3MpCiAKIFNFTEVDVCBj b3VudCgqKSBGUk9NIHRlbmsxCiAgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0g NDIgT1IgdGhvdXNhbmQgPSA5OSk7CkBAIC0xODU5LDggKzE4NjUsOSBAQCBFWFBMQUlOIChDT1NU UyBPRkYpCiAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBkdXBpbmRleGNvbHMKICAgICAgICAg IFJlY2hlY2sgQ29uZDogKChmMSA+PSAnV0EnOjp0ZXh0KSBBTkQgKGYxIDw9ICdaWlonOjp0ZXh0 KSBBTkQgKGlkIDwgMTAwMCkgQU5EIChmMSB+PH4gJ1lYJzo6dGV4dCkpCiAgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gZHVwaW5kZXhjb2xzX2kKKyAgICAgICAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKGYxID49ICdXQSc6OnRleHQp IEFORCAoZjEgPD0gJ1paWic6OnRleHQpIEFORCAoaWQgPCAxMDAwKSBBTkQgKGYxIH48fiAnWVgn Ojp0ZXh0KSkKLSg1IHJvd3MpCisoNiByb3dzKQogCiBTRUxFQ1QgY291bnQoKikgRlJPTSBkdXBp bmRleGNvbHMKICAgV0hFUkUgZjEgQkVUV0VFTiAnV0EnIEFORCAnWlpaJyBhbmQgaWQgPCAxMDAw IGFuZCBmMSB+PH4gJ1lYJzsKQEAgLTE4ODAsOCArMTg4Nyw5IEBAIE9SREVSIEJZIHVuaXF1ZTE7 CiAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEKKyAgIFNraXAg c2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IEFOWSAoJ3sxLDQyLDd9Jzo6aW50 ZWdlcltdKSkKLSgyIHJvd3MpCisoMyByb3dzKQogCiBTRUxFQ1QgdW5pcXVlMSBGUk9NIHRlbmsx CiBXSEVSRSB1bmlxdWUxIElOICgxLDQyLDcpCkBAIC0xOTAwLDkgKzE5MDgsMTAgQEAgT1JERVIg QlkgdGhvdXNhbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3Vz IG9uIHRlbmsxCisgICBTa2lwIHNjYW46IEFsbAogICAgSW5kZXggQ29uZDogKHRob3VzYW5kIDwg MikKICAgIEZpbHRlcjogKHRlbnRob3VzID0gQU5ZICgnezEwMDEsMzAwMH0nOjppbnRlZ2VyW10p KQotKDMgcm93cykKKyg0IHJvd3MpCiAKIFNFTEVDVCB0aG91c2FuZCwgdGVudGhvdXMgRlJPTSB0 ZW5rMQogV0hFUkUgdGhvdXNhbmQgPCAyIEFORCB0ZW50aG91cyBJTiAoMTAwMSwzMDAwKQpAQCAt MTkyMyw4ICsxOTMyLDkgQEAgT1JERVIgQlkgdGhvdXNhbmQ7CiAgU29ydAogICAgU29ydCBLZXk6 IHRob3VzYW5kCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV90aG91c190ZW50aG91cyBv biB0ZW5rMQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6ICgo dGhvdXNhbmQgPCAyKSBBTkQgKHRlbnRob3VzID0gQU5ZICgnezEwMDEsMzAwMH0nOjppbnRlZ2Vy W10pKSkKLSg0IHJvd3MpCisoNSByb3dzKQogCiBTRUxFQ1QgdGhvdXNhbmQsIHRlbnRob3VzIEZS T00gdGVuazEKIFdIRVJFIHRob3VzYW5kIDwgMiBBTkQgdGVudGhvdXMgSU4gKDEwMDEsMzAwMCkK QEAgLTE5NDQsOCArMTk1NCw5IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggU2NhbiB1c2lu ZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiB0ZW5rMQorICAgU2tpcCBzY2FuOiBBbGwKICAgIElu ZGV4IENvbmQ6ICgodGhvdXNhbmQgPSAxKSBBTkQgKHRlbnRob3VzID0gMTAwMSkpCi0oMiByb3dz KQorKDMgcm93cykKIAogLS0KIC0tIENoZWNrIG1hdGNoaW5nIG9mIGJvb2xlYW4gaW5kZXggY29s dW1ucyB0byBXSEVSRSBjb25kaXRpb25zIGFuZCBzb3J0IGtleXMKQEAgLTE5NTcsNyArMTk2OCw4 IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBMaW1pdAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcg Ym9vbGluZGV4X2JfaV9rZXkgb24gYm9vbGluZGV4Ci0oMiByb3dzKQorICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKKygzIHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKICAgc2VsZWN0ICogZnJv bSBib29saW5kZXggd2hlcmUgYiBvcmRlciBieSBpIGxpbWl0IDEwOwpAQCAtMTk2NSw4ICsxOTc3 LDkgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIExpbWl0CiAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBib29saW5kZXhfYl9pX2tleSBvbiBib29saW5kZXgKKyAgICAgICAgIFNraXAgc2NhbjogQWxs CiAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IHRydWUpCi0oMyByb3dzKQorKDQgcm93cykKIAog ZXhwbGFpbiAoY29zdHMgb2ZmKQogICBzZWxlY3QgKiBmcm9tIGJvb2xpbmRleCB3aGVyZSBiID0g dHJ1ZSBvcmRlciBieSBpIGRlc2MgbGltaXQgMTA7CkBAIC0xOTc0LDggKzE5ODcsOSBAQCBleHBs YWluIChjb3N0cyBvZmYpCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTGltaXQKICAgIC0+ICBJbmRleCBTY2FuIEJhY2t3 YXJkIHVzaW5nIGJvb2xpbmRleF9iX2lfa2V5IG9uIGJvb2xpbmRleAorICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gdHJ1ZSkKLSgzIHJvd3MpCisoNCBy b3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpCiAgIHNlbGVjdCAqIGZyb20gYm9vbGluZGV4IHdo ZXJlIG5vdCBiIG9yZGVyIGJ5IGkgbGltaXQgMTA7CkBAIC0xOTgzLDggKzE5OTcsOSBAQCBleHBs YWluIChjb3N0cyBvZmYpCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgTGltaXQKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGJvb2xpbmRl eF9iX2lfa2V5IG9uIGJvb2xpbmRleAorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAg IEluZGV4IENvbmQ6IChiID0gZmFsc2UpCi0oMyByb3dzKQorKDQgcm93cykKIAogZXhwbGFpbiAo Y29zdHMgb2ZmKQogICBzZWxlY3QgKiBmcm9tIGJvb2xpbmRleCB3aGVyZSBiIGlzIHRydWUgb3Jk ZXIgYnkgaSBkZXNjIGxpbWl0IDEwOwpAQCAtMTk5Miw4ICsyMDA3LDkgQEAgZXhwbGFpbiAoY29z dHMgb2ZmKQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIExpbWl0CiAgICAtPiAgSW5kZXggU2NhbiBCYWNrd2FyZCB1c2lu ZyBib29saW5kZXhfYl9pX2tleSBvbiBib29saW5kZXgKKyAgICAgICAgIFNraXAgc2NhbjogQWxs CiAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IHRydWUpCi0oMyByb3dzKQorKDQgcm93cykKIAog ZXhwbGFpbiAoY29zdHMgb2ZmKQogICBzZWxlY3QgKiBmcm9tIGJvb2xpbmRleCB3aGVyZSBiIGlz IGZhbHNlIG9yZGVyIGJ5IGkgZGVzYyBsaW1pdCAxMDsKQEAgLTIwMDEsOCArMjAxNyw5IEBAIGV4 cGxhaW4gKGNvc3RzIG9mZikKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBMaW1pdAogICAgLT4gIEluZGV4IFNjYW4gQmFj a3dhcmQgdXNpbmcgYm9vbGluZGV4X2JfaV9rZXkgb24gYm9vbGluZGV4CisgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGIgPSBmYWxzZSkKLSgzIHJvd3MpCiso NCByb3dzKQogCiAtLQogLS0gUkVJTkRFWCAoVkVSQk9TRSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2VxdWl2Y2xhc3Mub3V0CmluZGV4IDEyNmY3MDQ3ZmUuLmUxNjNiOGJmODkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9lcXVpdmNsYXNzLm91dApAQCAtMTA3LDI3ICsxMDcsMzAgQEAg ZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggU2NhbiB1c2luZyBl YzBfcGtleSBvbiBlYzAKKyAgIFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAoZmYgPSAn NDInOjpiaWdpbnQpCiAgICBGaWx0ZXI6IChmMSA9ICc0Mic6OmJpZ2ludCkKLSgzIHJvd3MpCiso NCByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpCiAgIHNlbGVjdCAqIGZyb20gZWMwIHdoZXJl IGZmID0gZjEgYW5kIGYxID0gJzQyJzo6aW50OGFsaWFzMTsKICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgSW5kZXggU2NhbiB1c2luZyBlYzBfcGtleSBvbiBlYzAKKyAgIFNraXAgc2NhbjogQWxs CiAgICBJbmRleCBDb25kOiAoZmYgPSAnNDInOjppbnQ4YWxpYXMxKQogICAgRmlsdGVyOiAoZjEg PSAnNDInOjppbnQ4YWxpYXMxKQotKDMgcm93cykKKyg0IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3Rz IG9mZikKICAgc2VsZWN0ICogZnJvbSBlYzEgd2hlcmUgZmYgPSBmMSBhbmQgZjEgPSAnNDInOjpp bnQ4YWxpYXMxOwogICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgCiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbmRleCBTY2FuIHVzaW5nIGVj MV9wa2V5IG9uIGVjMQorICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENvbmQ6IChmZiA9ICc0 Mic6OmludDhhbGlhczEpCiAgICBGaWx0ZXI6IChmMSA9ICc0Mic6OmludDhhbGlhczEpCi0oMyBy b3dzKQorKDQgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKQogICBzZWxlY3QgKiBmcm9tIGVj MSB3aGVyZSBmZiA9IGYxIGFuZCBmMSA9ICc0Mic6OmludDhhbGlhczI7CkBAIC0xNDQsOSArMTQ3 LDEwIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKICBOZXN0ZWQgTG9vcAogICAgSm9pbiBGaWx0ZXI6 IChlYzEuZmYgPSBlYzIueDEpCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfcGtleSBvbiBl YzEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoKGZmID0g JzQyJzo6YmlnaW50KSBBTkQgKGZmID0gJzQyJzo6YmlnaW50KSkKICAgIC0+ICBTZXEgU2NhbiBv biBlYzIKLSg1IHJvd3MpCisoNiByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpCiAgIHNlbGVj dCAqIGZyb20gZWMxLCBlYzIgd2hlcmUgZmYgPSB4MSBhbmQgZmYgPSAnNDInOjppbnQ4YWxpYXMx OwpAQCAtMTU0LDEwICsxNTgsMTEgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVkIExvb3AKICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIGVjMV9wa2V5IG9uIGVjMQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwK ICAgICAgICAgIEluZGV4IENvbmQ6IChmZiA9ICc0Mic6OmludDhhbGlhczEpCiAgICAtPiAgU2Vx IFNjYW4gb24gZWMyCiAgICAgICAgICBGaWx0ZXI6ICh4MSA9ICc0Mic6OmludDhhbGlhczEpCi0o NSByb3dzKQorKDYgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKQogICBzZWxlY3QgKiBmcm9t IGVjMSwgZWMyIHdoZXJlIGZmID0geDEgYW5kICc0Mic6OmludDggPSB4MTsKQEAgLTE2NiwxMCAr MTcxLDExIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKICBOZXN0ZWQgTG9vcAogICAgSm9pbiBGaWx0 ZXI6IChlYzEuZmYgPSBlYzIueDEpCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfcGtleSBv biBlYzEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoZmYg PSAnNDInOjpiaWdpbnQpCiAgICAtPiAgU2VxIFNjYW4gb24gZWMyCiAgICAgICAgICBGaWx0ZXI6 ICgnNDInOjpiaWdpbnQgPSB4MSkKLSg2IHJvd3MpCisoNyByb3dzKQogCiBleHBsYWluIChjb3N0 cyBvZmYpCiAgIHNlbGVjdCAqIGZyb20gZWMxLCBlYzIgd2hlcmUgZmYgPSB4MSBhbmQgeDEgPSAn NDInOjppbnQ4YWxpYXMxOwpAQCAtMTc3LDEwICsxODMsMTEgQEAgZXhwbGFpbiAoY29zdHMgb2Zm KQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVk IExvb3AKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGVjMV9wa2V5IG9uIGVjMQorICAgICAgICAg U2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6IChmZiA9ICc0Mic6OmludDhhbGlh czEpCiAgICAtPiAgU2VxIFNjYW4gb24gZWMyCiAgICAgICAgICBGaWx0ZXI6ICh4MSA9ICc0Mic6 OmludDhhbGlhczEpCi0oNSByb3dzKQorKDYgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKQog ICBzZWxlY3QgKiBmcm9tIGVjMSwgZWMyIHdoZXJlIGZmID0geDEgYW5kIHgxID0gJzQyJzo6aW50 OGFsaWFzMjsKQEAgLTE5MCw4ICsxOTcsOSBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAgICAtPiAg U2VxIFNjYW4gb24gZWMyCiAgICAgICAgICBGaWx0ZXI6ICh4MSA9ICc0Mic6OmludDhhbGlhczIp CiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfcGtleSBvbiBlYzEKKyAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoZmYgPSBlYzIueDEpCi0oNSByb3dzKQor KDYgcm93cykKIAogY3JlYXRlIHVuaXF1ZSBpbmRleCBlYzFfZXhwcjEgb24gZWMxKChmZiArIDEp KTsKIGNyZWF0ZSB1bmlxdWUgaW5kZXggZWMxX2V4cHIyIG9uIGVjMSgoZmYgKyAyICsgMSkpOwpA QCAtMjEwLDE1ICsyMTgsMTkgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBOZXN0ZWQgTG9vcAogICAg LT4gIEluZGV4IFNjYW4gdXNpbmcgZWMxX3BrZXkgb24gZWMxCisgICAgICAgICBTa2lwIHNjYW46 IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGZmID0gJzQyJzo6YmlnaW50KQogICAgLT4gIEFw cGVuZAogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMxX2V4cHIyIG9uIGVjMSBlYzFf MQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENv bmQ6ICgoKGZmICsgMikgKyAxKSA9IGVjMS5mMSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIGVjMV9leHByMyBvbiBlYzEgZWMxXzIKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxs CiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKChmZiArIDMpICsgMSkgPSBlYzEuZjEpCiAg ICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfZXhwcjQgb24gZWMxIGVjMV8zCisgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKChm ZiArIDQpID0gZWMxLmYxKQotKDEwIHJvd3MpCisoMTQgcm93cykKIAogZXhwbGFpbiAoY29zdHMg b2ZmKQogICBzZWxlY3QgKiBmcm9tIGVjMSwKQEAgLTIzNCwxNiArMjQ2LDIwIEBAIGV4cGxhaW4g KGNvc3RzIG9mZikKICBOZXN0ZWQgTG9vcAogICAgSm9pbiBGaWx0ZXI6ICgoKChlYzFfMS5mZiAr IDIpICsgMSkpID0gZWMxLmYxKQogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMxX3BrZXkgb24g ZWMxCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKChmZiA9 ICc0Mic6OmJpZ2ludCkgQU5EIChmZiA9ICc0Mic6OmJpZ2ludCkpCiAgICAgICAgICBGaWx0ZXI6 IChmZiA9IGYxKQogICAgLT4gIEFwcGVuZAogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcg ZWMxX2V4cHIyIG9uIGVjMSBlYzFfMQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgoKGZmICsgMikgKyAxKSA9ICc0Mic6OmJpZ2ludCkK ICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGVjMV9leHByMyBvbiBlYzEgZWMxXzIKKyAg ICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo KChmZiArIDMpICsgMSkgPSAnNDInOjpiaWdpbnQpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1 c2luZyBlYzFfZXhwcjQgb24gZWMxIGVjMV8zCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFs bAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKChmZiArIDQpID0gJzQyJzo6YmlnaW50KQot KDEyIHJvd3MpCisoMTYgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKQogICBzZWxlY3QgKiBm cm9tIGVjMSwKQEAgLTI2NSwyMiArMjgxLDI5IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKICBOZXN0 ZWQgTG9vcAogICAgLT4gIE5lc3RlZCBMb29wCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBlYzFfcGtleSBvbiBlYzEKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoZmYgPSAnNDInOjpiaWdpbnQpCiAgICAgICAgICAtPiAgQXBw ZW5kCiAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfZXhwcjIgb24gZWMx IGVjMV8xCisgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKCgoZmYgKyAyKSArIDEpID0gZWMxLmYxKQogICAgICAgICAg ICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMxX2V4cHIzIG9uIGVjMSBlYzFfMgorICAgICAg ICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6ICgoKGZmICsgMykgKyAxKSA9IGVjMS5mMSkKICAgICAgICAgICAgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIGVjMV9leHByNCBvbiBlYzEgZWMxXzMKKyAgICAgICAgICAgICAgICAgICAg IFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKGZmICsg NCkgPSBlYzEuZjEpCiAgICAtPiAgQXBwZW5kCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBlYzFfZXhwcjIgb24gZWMxIGVjMV80CisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCgoZmYgKyAyKSArIDEpID0gKCgoZWMxXzEuZmYg KyAyKSArIDEpKSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGVjMV9leHByMyBvbiBl YzEgZWMxXzUKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoKChmZiArIDMpICsgMSkgPSAoKChlYzFfMS5mZiArIDIpICsgMSkpKQogICAg ICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMxX2V4cHI0IG9uIGVjMSBlYzFfNgorICAgICAg ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgoZmYg KyA0KSA9ICgoKGVjMV8xLmZmICsgMikgKyAxKSkpCi0oMTggcm93cykKKygyNSByb3dzKQogCiAt LSBsZXQncyB0cnkgdGhhdCBhcyBhIG1lcmdlam9pbgogc2V0IGVuYWJsZV9tZXJnZWpvaW4gPSBv bjsKQEAgLTMwNywyMSArMzMwLDI4IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKICAgIC0+ICBNZXJn ZSBBcHBlbmQKICAgICAgICAgIFNvcnQgS2V5OiAoKChlYzFfNC5mZiArIDIpICsgMSkpCiAgICAg ICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfZXhwcjIgb24gZWMxIGVjMV80CisgICAgICAg ICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMx X2V4cHIzIG9uIGVjMSBlYzFfNQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAg ICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGVjMV9leHByNCBvbiBlYzEgZWMxXzYKKyAgICAgICAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgTWF0ZXJpYWxpemUKICAgICAgICAgIC0+ICBN ZXJnZSBKb2luCiAgICAgICAgICAgICAgICBNZXJnZSBDb25kOiAoKCgoZWMxXzEuZmYgKyAyKSAr IDEpKSA9IGVjMS5mMSkKICAgICAgICAgICAgICAgIC0+ICBNZXJnZSBBcHBlbmQKICAgICAgICAg ICAgICAgICAgICAgIFNvcnQgS2V5OiAoKChlYzFfMS5mZiArIDIpICsgMSkpCiAgICAgICAgICAg ICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfZXhwcjIgb24gZWMxIGVjMV8xCisg ICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAg ICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMxX2V4cHIzIG9uIGVjMSBlYzFfMgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAg IC0+ICBJbmRleCBTY2FuIHVzaW5nIGVjMV9leHByNCBvbiBlYzEgZWMxXzMKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAtPiAgU29ydAog ICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IGVjMS5mMSBVU0lORyA8CiAgICAgICAgICAg ICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfcGtleSBvbiBlYzEKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJbmRleCBDb25kOiAoZmYgPSAnNDInOjpiaWdpbnQpCi0oMTkgcm93cykKKygyNiByb3dz KQogCiAtLSBjaGVjayBwYXJ0aWFsbHkgaW5kZXhlZCBzY2FuCiBzZXQgZW5hYmxlX25lc3Rsb29w ID0gb247CkBAIC0zNDAsMTUgKzM3MCwxOCBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBM b29wCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfcGtleSBvbiBlYzEKKyAgICAgICAgIFNr aXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoZmYgPSAnNDInOjpiaWdpbnQpCiAg ICAtPiAgQXBwZW5kCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfZXhwcjIgb24g ZWMxIGVjMV8xCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKCgoZmYgKyAyKSArIDEpID0gZWMxLmYxKQogICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIGVjMSBlYzFfMgogICAgICAgICAgICAgICAgRmlsdGVyOiAoKChmZiArIDMpICsgMSkg PSBlYzEuZjEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzFfZXhwcjQgb24gZWMx IGVjMV8zCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKChmZiArIDQpID0gZWMxLmYxKQotKDEwIHJvd3MpCisoMTMgcm93cykKIAogLS0g bGV0J3MgdHJ5IHRoYXQgYXMgYSBtZXJnZWpvaW4KIHNldCBlbmFibGVfbWVyZ2Vqb2luID0gb247 CkBAIC0zNjksMTUgKzQwMiwxOCBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAgICAtPiAgTWVyZ2Ug QXBwZW5kCiAgICAgICAgICBTb3J0IEtleTogKCgoZWMxXzEuZmYgKyAyKSArIDEpKQogICAgICAg ICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMxX2V4cHIyIG9uIGVjMSBlYzFfMQorICAgICAgICAg ICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICBT b3J0IEtleTogKCgoZWMxXzIuZmYgKyAzKSArIDEpKQogICAgICAgICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIGVjMSBlYzFfMgogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMxX2V4cHI0 IG9uIGVjMSBlYzFfMworICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgIC0+ICBTb3J0 CiAgICAgICAgICBTb3J0IEtleTogZWMxLmYxIFVTSU5HIDwKICAgICAgICAgIC0+ICBJbmRleCBT Y2FuIHVzaW5nIGVjMV9wa2V5IG9uIGVjMQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwK ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChmZiA9ICc0Mic6OmJpZ2ludCkKLSgxMyByb3dz KQorKDE2IHJvd3MpCiAKIC0tIGNoZWNrIGVmZmVjdHMgb2Ygcm93LWxldmVsIHNlY3VyaXR5CiBz ZXQgZW5hYmxlX25lc3Rsb29wID0gb247CkBAIC0zOTUsMTAgKzQzMSwxMiBAQCBleHBsYWluIChj b3N0cyBvZmYpCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBOZXN0ZWQgTG9vcAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMwX3BrZXkgb24gZWMwIGEK KyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoZmYgPSAnNDMn OjppbnQ4YWxpYXMxKQogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZWMxX3BrZXkgb24gZWMxIGIK KyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoZmYgPSAnNDMn OjppbnQ4YWxpYXMxKQotKDUgcm93cykKKyg3IHJvd3MpCiAKIHNldCBzZXNzaW9uIGF1dGhvcml6 YXRpb24gcmVncmVzc191c2VyX2VjdGVzdDsKIC0tIHdpdGggUkxTIGFjdGl2ZSwgdGhlIG5vbi1s ZWFrcHJvb2YgYS5mZiA9IDQzIGNsYXVzZSBpcyBub3QgdHJlYXRlZApAQCAtNDExLDExICs0NDks MTMgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVkIExvb3AKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGVj MF9wa2V5IG9uIGVjMCBhCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXgg Q29uZDogKGZmID0gJzQzJzo6aW50OGFsaWFzMSkKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGVj MV9wa2V5IG9uIGVjMSBiCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXgg Q29uZDogKGZmID0gYS5mZikKICAgICAgICAgIEZpbHRlcjogKGYxIDwgJzUnOjppbnQ4YWxpYXMx KQotKDYgcm93cykKKyg4IHJvd3MpCiAKIHJlc2V0IHNlc3Npb24gYXV0aG9yaXphdGlvbjsKIHJl dm9rZSBzZWxlY3Qgb24gZWMwIGZyb20gcmVncmVzc191c2VyX2VjdGVzdDsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dAppbmRleCAxMGJjNWZmNzU3Li4xNDUxNDVi NzFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CkBAIC00 MzEsOCArNDMxLDkgQEAgREVMRVRFIEZST00gVCBXSEVSRSBwayBCRVRXRUVOIDEwIEFORCAyMCBS RVRVUk5JTkcgKjsKICAgICAgICAgIE91dHB1dDogY3RpZAogICAgICAgICAgUmVjaGVjayBDb25k OiAoKHQucGsgPj0gMTApIEFORCAodC5wayA8PSAyMCkpCiAgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gdF9wa2V5CisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKCh0LnBrID49IDEwKSBBTkQgKHQucGsgPD0gMjApKQotKDcg cm93cykKKyg4IHJvd3MpCiAKIC0tIFVQREFURQogVVBEQVRFIFQgU0VUIGNfdGV4dCA9ICciJyB8 fCBjX3RleHQgfHwgJyInICBXSEVSRSBwayA8IDEwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9mb3JlaWduX2tleS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2ZvcmVpZ25fa2V5Lm91dAppbmRleCAwN2JkNWI2NDM0Li5kOWY1ZDZiZmJlIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fa2V5Lm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fa2V5Lm91dApAQCAtMTQxOCwxNCArMTQxOCwxNiBA QCBleHBsYWluIChjb3N0cyBvZmYpIGRlbGV0ZSBmcm9tIHQxIHdoZXJlIGEgPSAxOwogIERlbGV0 ZSBvbiB0MgogICAgLT4gIE5lc3RlZCBMb29wCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyB0MV9wa2V5IG9uIHQxCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGEgPSAxKQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHQyCiAg ICAgICAgICAgICAgICBGaWx0ZXI6IChiID0gMSkKICAKICBEZWxldGUgb24gdDEKICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIHQxX3BrZXkgb24gdDEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAg ICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCi0oMTAgcm93cykKKygxMiByb3dzKQogCiBkZWxl dGUgZnJvbSB0MSB3aGVyZSBhID0gMTsKIC0tIFRlc3QgYSBwcmltYXJ5IGtleSB3aXRoIGF0dHJp YnV0ZXMgbG9jYXRlZCBpbiBsYXRlciBhdHRudW0gcG9zaXRpb25zCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2dlbmVyYXRlZC5vdXQKaW5kZXggNjIwNTc5YTZmZC4uNjFiMjY3ZjlhYSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWQub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkLm91dApAQCAtNDYyLDggKzQ2Miw5IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggU2NhbiB1c2luZyBndGVz dDIyY19iX2lkeCBvbiBndGVzdDIyYworICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENvbmQ6 IChiID0gNCkKLSgyIHJvd3MpCisoMyByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdI RVJFIGIgPSA0OwogIGEgfCBiIApAQCAtNDc1LDggKzQ3Niw5IEBAIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDY7CiAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNf ZXhwcl9pZHggb24gZ3Rlc3QyMmMKKyAgIFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAo KGIgKiAzKSA9IDYpCi0oMiByb3dzKQorKDMgcm93cykKIAogU0VMRUNUICogRlJPTSBndGVzdDIy YyBXSEVSRSBiICogMyA9IDY7CiAgYSB8IGIgCkBAIC00ODgsOCArNDkwLDkgQEAgRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsK ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggU2NhbiB1 c2luZyBndGVzdDIyY19wcmVkX2lkeCBvbiBndGVzdDIyYworICAgU2tpcCBzY2FuOiBBbGwKICAg IEluZGV4IENvbmQ6IChhID0gMSkKLSgyIHJvd3MpCisoMyByb3dzKQogCiBTRUxFQ1QgKiBGUk9N IGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKICBhIHwgYiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JvdXBpbmdzZXRzLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZ3JvdXBpbmdzZXRzLm91dAppbmRleCBkYmU1MTQwYjU1Li4xNjQ0NTE1NThj IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyb3VwaW5nc2V0cy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncm91cGluZ3NldHMub3V0CkBAIC00NjYs OCArNDY2LDkgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgSW5pdFBsYW4gMSAocmV0dXJucyAk MCkKICAgICAgLT4gIExpbWl0CiAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcg dGVuazFfdW5pcXVlMSBvbiB0ZW5rMQorICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSBJUyBOT1QgTlVMTCkKLSg1IHJv d3MpCisoNiByb3dzKQogCiAtLSBWaWV3cyB3aXRoIEdST1VQSU5HIFNFVCBxdWVyaWVzCiBDUkVB VEUgVklFVyBnc3Rlc3RfdmlldyBBUyBzZWxlY3QgYSwgYiwgZ3JvdXBpbmcoYSxiKSwgc3VtKGMp LCBjb3VudCgqKSwgbWF4KGMpCkBAIC0xNDAyLDcgKzE0MDMsOCBAQCBFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCBhLCBiLCBjb3VudCgqKSwgbWF4KGEpLCBtYXgoYikgRlJPTSBnc3Rlc3QzIEdS T1VQIEJZCiAgICAgICAgICBTb3J0IEtleTogYgogICAgICAgICAgICBHcm91cCBLZXk6IGIKICAg ICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGdzdGVzdDNfcGtleSBvbiBnc3Rlc3QzCi0oOCBy b3dzKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKyg5IHJvd3MpCiAKIFNFTEVDVCBh LCBiLCBjb3VudCgqKSwgbWF4KGEpLCBtYXgoYikgRlJPTSBnc3Rlc3QzIEdST1VQIEJZIEdST1VQ SU5HIFNFVFMoYSwgYiwoKSkgT1JERVIgQlkgYSwgYjsKICBhIHwgYiB8IGNvdW50IHwgbWF4IHwg bWF4IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmRleF9pbmNsdWRp bmcub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmRleF9pbmNsdWRpbmcub3V0Cmlu ZGV4IDhlNWQ1M2U3MTIuLjRkYjkwNjIzZjkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvaW5kZXhfaW5jbHVkaW5nLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2luZGV4X2luY2x1ZGluZy5vdXQKQEAgLTEzNCw4ICsxMzQsOSBAQCBzZWxlY3QgKiBmcm9t IHRibCB3aGVyZSAoYzEsYzIsYzMpIDwgKDIsNSwxKTsKICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRi bAogICAgRmlsdGVyOiAoUk9XKGMxLCBjMiwgYzMpIDwgUk9XKDIsIDUsIDEpKQogICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIGNvdmVyaW5nCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAg ICAgICAgSW5kZXggQ29uZDogKFJPVyhjMSwgYzIpIDw9IFJPVygyLCA1KSkKLSg0IHJvd3MpCiso NSByb3dzKQogCiBzZWxlY3QgKiBmcm9tIHRibCB3aGVyZSAoYzEsYzIsYzMpIDwgKDIsNSwxKTsK ICBjMSB8IGMyIHwgYzMgfCBjNCAKQEAgLTE1Miw5ICsxNTMsMTAgQEAgc2VsZWN0ICogZnJvbSB0 Ymwgd2hlcmUgKGMxLGMyLGMzKSA8ICgyNjIsMSwxKSBsaW1pdCAxOwogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIExpbWl0CiAgICAtPiAgSW5k ZXggT25seSBTY2FuIHVzaW5nIGNvdmVyaW5nIG9uIHRibAorICAgICAgICAgU2tpcCBzY2FuOiBB bGwKICAgICAgICAgIEluZGV4IENvbmQ6IChST1coYzEsIGMyKSA8PSBST1coMjYyLCAxKSkKICAg ICAgICAgIEZpbHRlcjogKFJPVyhjMSwgYzIsIGMzKSA8IFJPVygyNjIsIDEsIDEpKQotKDQgcm93 cykKKyg1IHJvd3MpCiAKIHNlbGVjdCAqIGZyb20gdGJsIHdoZXJlIChjMSxjMixjMykgPCAoMjYy LDEsMSkgbGltaXQgMTsKICBjMSB8IGMyIHwgYzMgfCBjNCAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5ldC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2lu ZXQub3V0CmluZGV4IDEyZGYyNWZlOWQuLjNkMWZkNzNmZDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5ldC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9pbmV0Lm91dApAQCAtMjQ3LDkgKzI0NywxMCBAQCBTRUxFQ1QgKiBGUk9NIGluZXRfdGJsIFdI RVJFIGk8PCcxOTIuMTY4LjEuMC8yNCc6OmNpZHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggU2NhbiB1c2luZyBpbmV0X2lkeDEgb24gaW5l dF90YmwKKyAgIFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAoKGkgPiAnMTkyLjE2OC4x LjAvMjQnOjppbmV0KSBBTkQgKGkgPD0gJzE5Mi4xNjguMS4yNTUnOjppbmV0KSkKICAgIEZpbHRl cjogKGkgPDwgJzE5Mi4xNjguMS4wLzI0Jzo6aW5ldCkKLSgzIHJvd3MpCisoNCByb3dzKQogCiBT RUxFQ1QgKiBGUk9NIGluZXRfdGJsIFdIRVJFIGk8PCcxOTIuMTY4LjEuMC8yNCc6OmNpZHI7CiAg ICAgICAgYyAgICAgICAgfCAgICAgICAgaSAgICAgICAgIApAQCAtMjY0LDkgKzI2NSwxMCBAQCBT RUxFQ1QgKiBGUk9NIGluZXRfdGJsIFdIRVJFIGk8PD0nMTkyLjE2OC4xLjAvMjQnOjpjaWRyOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXgg U2NhbiB1c2luZyBpbmV0X2lkeDEgb24gaW5ldF90YmwKKyAgIFNraXAgc2NhbjogQWxsCiAgICBJ bmRleCBDb25kOiAoKGkgPj0gJzE5Mi4xNjguMS4wLzI0Jzo6aW5ldCkgQU5EIChpIDw9ICcxOTIu MTY4LjEuMjU1Jzo6aW5ldCkpCiAgICBGaWx0ZXI6IChpIDw8PSAnMTkyLjE2OC4xLjAvMjQnOjpp bmV0KQotKDMgcm93cykKKyg0IHJvd3MpCiAKIFNFTEVDVCAqIEZST00gaW5ldF90YmwgV0hFUkUg aTw8PScxOTIuMTY4LjEuMC8yNCc6OmNpZHI7CiAgICAgICAgYyAgICAgICAgfCAgICAgICAgaSAg ICAgICAgIApAQCAtMjg0LDkgKzI4NiwxMCBAQCBTRUxFQ1QgKiBGUk9NIGluZXRfdGJsIFdIRVJF ICcxOTIuMTY4LjEuMC8yNCc6OmNpZHIgPj49IGk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbmRleCBTY2FuIHVzaW5nIGluZXRfaWR4MSBvbiBp bmV0X3RibAorICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENvbmQ6ICgoaSA+PSAnMTkyLjE2 OC4xLjAvMjQnOjppbmV0KSBBTkQgKGkgPD0gJzE5Mi4xNjguMS4yNTUnOjppbmV0KSkKICAgIEZp bHRlcjogKCcxOTIuMTY4LjEuMC8yNCc6OmluZXQgPj49IGkpCi0oMyByb3dzKQorKDQgcm93cykK IAogU0VMRUNUICogRlJPTSBpbmV0X3RibCBXSEVSRSAnMTkyLjE2OC4xLjAvMjQnOjpjaWRyID4+ PSBpOwogICAgICAgIGMgICAgICAgIHwgICAgICAgIGkgICAgICAgICAKQEAgLTMwNCw5ICszMDcs MTAgQEAgU0VMRUNUICogRlJPTSBpbmV0X3RibCBXSEVSRSAnMTkyLjE2OC4xLjAvMjQnOjpjaWRy ID4+IGk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg SW5kZXggU2NhbiB1c2luZyBpbmV0X2lkeDEgb24gaW5ldF90YmwKKyAgIFNraXAgc2NhbjogQWxs CiAgICBJbmRleCBDb25kOiAoKGkgPiAnMTkyLjE2OC4xLjAvMjQnOjppbmV0KSBBTkQgKGkgPD0g JzE5Mi4xNjguMS4yNTUnOjppbmV0KSkKICAgIEZpbHRlcjogKCcxOTIuMTY4LjEuMC8yNCc6Omlu ZXQgPj4gaSkKLSgzIHJvd3MpCisoNCByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGluZXRfdGJsIFdI RVJFICcxOTIuMTY4LjEuMC8yNCc6OmNpZHIgPj4gaTsKICAgICAgICBjICAgICAgICB8ICAgICAg ICBpICAgICAgICAgCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luaGVy aXQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmhlcml0Lm91dAppbmRleCBkZmQw ZWU0MTRmLi4yZjBiZTM0YTE1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2luaGVyaXQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5oZXJpdC5vdXQK QEAgLTEzMzksMTIgKzEzMzksMTUgQEAgc2VsZWN0ICogZnJvbSBwYXRlc3QwIGpvaW4gKHNlbGVj dCBmMSBmcm9tIGludDRfdGJsIGxpbWl0IDEpIHNzIG9uIGlkID0gZjE7CiAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gaW50NF90YmwKICAgIC0+ICBBcHBlbmQKICAgICAgICAgIC0+ICBJbmRleCBT Y2FuIHVzaW5nIHBhdGVzdDBpIG9uIHBhdGVzdDAgcGF0ZXN0MF8xCisgICAgICAgICAgICAgICBT a2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGlkID0gaW50NF90Ymwu ZjEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBwYXRlc3QxaSBvbiBwYXRlc3QxIHBh dGVzdDBfMgorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChpZCA9IGludDRfdGJsLmYxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNp bmcgcGF0ZXN0Mmkgb24gcGF0ZXN0MiBwYXRlc3QwXzMKKyAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaWQgPSBpbnQ0X3RibC5mMSkKLSgx MCByb3dzKQorKDEzIHJvd3MpCiAKIHNlbGVjdCAqIGZyb20gcGF0ZXN0MCBqb2luIChzZWxlY3Qg ZjEgZnJvbSBpbnQ0X3RibCBsaW1pdCAxKSBzcyBvbiBpZCA9IGYxOwogIGlkIHwgeCB8IGYxIApA QCAtMTM2NCwxMiArMTM2NywxNCBAQCBzZWxlY3QgKiBmcm9tIHBhdGVzdDAgam9pbiAoc2VsZWN0 IGYxIGZyb20gaW50NF90YmwgbGltaXQgMSkgc3Mgb24gaWQgPSBmMTsKICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBpbnQ0X3RibAogICAgLT4gIEFwcGVuZAogICAgICAgICAgLT4gIEluZGV4IFNj YW4gdXNpbmcgcGF0ZXN0MGkgb24gcGF0ZXN0MCBwYXRlc3QwXzEKKyAgICAgICAgICAgICAgIFNr aXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaWQgPSBpbnQ0X3RibC5m MSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHBhdGVzdDFpIG9uIHBhdGVzdDEgcGF0 ZXN0MF8yCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGlkID0gaW50NF90YmwuZjEpCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGF0 ZXN0MiBwYXRlc3QwXzMKICAgICAgICAgICAgICAgIEZpbHRlcjogKGludDRfdGJsLmYxID0gaWQp Ci0oMTAgcm93cykKKygxMiByb3dzKQogCiBzZWxlY3QgKiBmcm9tIHBhdGVzdDAgam9pbiAoc2Vs ZWN0IGYxIGZyb20gaW50NF90YmwgbGltaXQgMSkgc3Mgb24gaWQgPSBmMTsKICBpZCB8IHggfCBm MSAKQEAgLTE0NjYsOCArMTQ3MSwxMCBAQCBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpIHNl bGVjdCAqIGZyb20gbWF0ZXN0MCBvcmRlciBieSAxLWlkOwogICAgU29ydCBLZXk6ICgoMSAtIG1h dGVzdDAuaWQpKQogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWF0ZXN0MGkgb24gcHVibGljLm1h dGVzdDAgbWF0ZXN0MF8xCiAgICAgICAgICBPdXRwdXQ6IG1hdGVzdDBfMS5pZCwgbWF0ZXN0MF8x Lm5hbWUsICgxIC0gbWF0ZXN0MF8xLmlkKQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgIC0+ ICBJbmRleCBTY2FuIHVzaW5nIG1hdGVzdDFpIG9uIHB1YmxpYy5tYXRlc3QxIG1hdGVzdDBfMgog ICAgICAgICAgT3V0cHV0OiBtYXRlc3QwXzIuaWQsIG1hdGVzdDBfMi5uYW1lLCAoMSAtIG1hdGVz dDBfMi5pZCkKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgU29ydAogICAgICAgICAg T3V0cHV0OiBtYXRlc3QwXzMuaWQsIG1hdGVzdDBfMy5uYW1lLCAoKDEgLSBtYXRlc3QwXzMuaWQp KQogICAgICAgICAgU29ydCBLZXk6ICgoMSAtIG1hdGVzdDBfMy5pZCkpCkBAIC0xNDc1LDcgKzE0 ODIsOCBAQCBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbWF0ZXN0 MCBvcmRlciBieSAxLWlkOwogICAgICAgICAgICAgICAgT3V0cHV0OiBtYXRlc3QwXzMuaWQsIG1h dGVzdDBfMy5uYW1lLCAoMSAtIG1hdGVzdDBfMy5pZCkKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5n IG1hdGVzdDNpIG9uIHB1YmxpYy5tYXRlc3QzIG1hdGVzdDBfNAogICAgICAgICAgT3V0cHV0OiBt YXRlc3QwXzQuaWQsIG1hdGVzdDBfNC5uYW1lLCAoMSAtIG1hdGVzdDBfNC5pZCkKLSgxMyByb3dz KQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKygxNiByb3dzKQogCiBzZWxlY3QgKiBmcm9tIG1h dGVzdDAgb3JkZXIgYnkgMS1pZDsKICBpZCB8ICBuYW1lICAKQEAgLTE1MDIsOSArMTUxMCwxMSBA QCBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpIHNlbGVjdCBtaW4oMS1pZCkgZnJvbSBtYXRl c3QwOwogICAgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogKCgxIC0gbWF0ZXN0MC5pZCkp CiAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG1hdGVzdDBpIG9u IHB1YmxpYy5tYXRlc3QwIG1hdGVzdDBfMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP dXRwdXQ6IG1hdGVzdDBfMS5pZCwgKDEgLSBtYXRlc3QwXzEuaWQpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6ICgoMSAtIG1hdGVzdDBfMS5pZCkgSVMgTk9UIE5VTEwpCiAgICAgICAgICAg ICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG1hdGVzdDFpIG9uIHB1YmxpYy5tYXRl c3QxIG1hdGVzdDBfMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IG1hdGVz dDBfMi5pZCwgKDEgLSBtYXRlc3QwXzIuaWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 ICgoMSAtIG1hdGVzdDBfMi5pZCkgSVMgTk9UIE5VTEwpCiAgICAgICAgICAgICAgICAgICAgICAg IC0+ICBTb3J0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogbWF0ZXN0MF8z LmlkLCAoKDEgLSBtYXRlc3QwXzMuaWQpKQpAQCAtMTUxMywxMCArMTUyMywxMiBAQCBleHBsYWlu ICh2ZXJib3NlLCBjb3N0cyBvZmYpIHNlbGVjdCBtaW4oMS1pZCkgZnJvbSBtYXRlc3QwOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IG1hdGVzdDBfMy5pZCwgKDEg LSBtYXRlc3QwXzMuaWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRl cjogKCgxIC0gbWF0ZXN0MF8zLmlkKSBJUyBOT1QgTlVMTCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIG1hdGVzdDJfcGtleQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAg ICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtYXRlc3QzaSBvbiBwdWJs aWMubWF0ZXN0MyBtYXRlc3QwXzQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0 OiBtYXRlc3QwXzQuaWQsICgxIC0gbWF0ZXN0MF80LmlkKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoKDEgLSBtYXRlc3QwXzQuaWQpIElTIE5PVCBOVUxMKQotKDI1IHJvd3MpCisoMjkg cm93cykKIAogc2VsZWN0IG1pbigxLWlkKSBmcm9tIG1hdGVzdDA7CiAgbWluIApAQCAtMTU1Miwx NSArMTU2NCwxOSBAQCBvcmRlciBieSB0MS5iIGxpbWl0IDEwOwogICAgICAgICAgLT4gIE1lcmdl IEFwcGVuZAogICAgICAgICAgICAgICAgU29ydCBLZXk6IHQxLmIKICAgICAgICAgICAgICAgIC0+ ICBJbmRleCBTY2FuIHVzaW5nIG1hdGVzdDBpIG9uIG1hdGVzdDAgdDFfMQorICAgICAgICAgICAg ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIG1hdGVzdDFpIG9uIG1hdGVzdDEgdDFfMgorICAgICAgICAgICAgICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgIC0+ICBNYXRlcmlhbGl6ZQogICAgICAgICAgICAgICAgLT4gIE1l cmdlIEFwcGVuZAogICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHQyLmIKICAgICAgICAg ICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG1hdGVzdDBpIG9uIG1hdGVzdDAgdDJf MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZpbHRlcjogKGMgPSBkKQogICAgICAgICAgICAgICAgICAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgbWF0ZXN0MWkgb24gbWF0ZXN0MSB0Ml8yCisgICAgICAgICAgICAg ICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAg RmlsdGVyOiAoYyA9IGQpCi0oMTQgcm93cykKKygxOCByb3dzKQogCiByZXNldCBlbmFibGVfbmVz dGxvb3A7CiBkcm9wIHRhYmxlIG1hdGVzdDAgY2FzY2FkZTsKQEAgLTE1ODIsMTAgKzE1OTgsMTIg QEAgT1JERVIgQlkgdGhvdXNhbmQsIHRlbnRob3VzOwogIE1lcmdlIEFwcGVuZAogICAgU29ydCBL ZXk6IHRlbmsxLnRob3VzYW5kLCB0ZW5rMS50ZW50aG91cwogICAgLT4gIEluZGV4IE9ubHkgU2Nh biB1c2luZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiB0ZW5rMQorICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogdGVuazFfMS50aG91c2FuZCwg dGVuazFfMS50aG91c2FuZAogICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5r MV90aG91c190ZW50aG91cyBvbiB0ZW5rMSB0ZW5rMV8xCi0oNiByb3dzKQorICAgICAgICAgICAg ICAgU2tpcCBzY2FuOiBBbGwKKyg4IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKIFNFTEVD VCB0aG91c2FuZCwgdGVudGhvdXMsIHRob3VzYW5kK3RlbnRob3VzIEFTIHggRlJPTSB0ZW5rMQpA QCAtMTU5NywxMCArMTYxNSwxMiBAQCBPUkRFUiBCWSB0aG91c2FuZCwgdGVudGhvdXM7CiAgTWVy Z2UgQXBwZW5kCiAgICBTb3J0IEtleTogdGVuazEudGhvdXNhbmQsIHRlbmsxLnRlbnRob3VzCiAg ICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3VzIG9uIHRlbmsx CisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5 OiA0MiwgNDIKICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfaHVuZHJl ZCBvbiB0ZW5rMSB0ZW5rMV8xCi0oNiByb3dzKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBB bGwKKyg4IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKIFNFTEVDVCB0aG91c2FuZCwgdGVu dGhvdXMgRlJPTSB0ZW5rMQpAQCAtMTYxMiwxMCArMTYzMiwxMiBAQCBPUkRFUiBCWSB0aG91c2Fu ZCwgdGVudGhvdXM7CiAgTWVyZ2UgQXBwZW5kCiAgICBTb3J0IEtleTogdGVuazEudGhvdXNhbmQs IHRlbmsxLnRlbnRob3VzCiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3Rob3Vz X3RlbnRob3VzIG9uIHRlbmsxCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgLT4gIFNvcnQK ICAgICAgICAgIFNvcnQgS2V5OiB0ZW5rMV8xLnRob3VzYW5kLCAoKHJhbmRvbSgpKTo6aW50ZWdl cikKICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdGhvdXNfdGVudGhv dXMgb24gdGVuazEgdGVuazFfMQotKDYgcm93cykKKyAgICAgICAgICAgICAgIFNraXAgc2Nhbjog QWxsCisoOCByb3dzKQogCiAtLSBDaGVjayBtaW4vbWF4IGFnZ3JlZ2F0ZSBvcHRpbWl6YXRpb24K IGV4cGxhaW4gKGNvc3RzIG9mZikKQEAgLTE2MzEsMTAgKzE2NTMsMTIgQEAgU0VMRUNUIG1pbih4 KSBGUk9NCiAgICAgICAgICAgIC0+ICBNZXJnZSBBcHBlbmQKICAgICAgICAgICAgICAgICAgU29y dCBLZXk6IGEudW5pcXVlMQogICAgICAgICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVz aW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEgYQorICAgICAgICAgICAgICAgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSBJ UyBOT1QgTlVMTCkKICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0 ZW5rMV91bmlxdWUyIG9uIHRlbmsxIGIKKyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgSVMgTk9U IE5VTEwpCi0oOSByb3dzKQorKDExIHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKIFNFTEVD VCBtaW4oeSkgRlJPTQpAQCAtMTY0OSwxMCArMTY3MywxMiBAQCBTRUxFQ1QgbWluKHkpIEZST00K ICAgICAgICAgICAgLT4gIE1lcmdlIEFwcGVuZAogICAgICAgICAgICAgICAgICBTb3J0IEtleTog YS51bmlxdWUxCiAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVu azFfdW5pcXVlMSBvbiB0ZW5rMSBhCisgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nhbjog QWxsCiAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxIElTIE5PVCBO VUxMKQogICAgICAgICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3Vu aXF1ZTIgb24gdGVuazEgYgorICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiBJUyBOT1QgTlVMTCkK LSg5IHJvd3MpCisoMTEgcm93cykKIAogLS0gWFhYIHBsYW5uZXIgZG9lc24ndCByZWNvZ25pemUg dGhhdCBpbmRleCBvbiB1bmlxdWUyIGlzIHN1ZmZpY2llbnRseSBzb3J0ZWQKIGV4cGxhaW4gKGNv c3RzIG9mZikKQEAgLTE2NjYsMTAgKzE2OTIsMTIgQEAgT1JERVIgQlkgeCwgeTsKICBNZXJnZSBB cHBlbmQKICAgIFNvcnQgS2V5OiBhLnRob3VzYW5kLCBhLnRlbnRob3VzCiAgICAtPiAgSW5kZXgg T25seSBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3VzIG9uIHRlbmsxIGEKKyAgICAgICAg IFNraXAgc2NhbjogQWxsCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGIudW5pcXVl MiwgYi51bmlxdWUyCiAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3Vu aXF1ZTIgb24gdGVuazEgYgotKDYgcm93cykKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxs CisoOCByb3dzKQogCiAtLSBleGVyY2lzZSByZXNjYW4gY29kZSBwYXRoIHZpYSBhIHJlcGVhdGVk bHktZXZhbHVhdGVkIHN1YnF1ZXJ5CiBleHBsYWluIChjb3N0cyBvZmYpCkBAIC0yMDY5LDEyICsy MDk3LDE0IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0IG1pbihhKSwgbWF4KGEpIGZyb20g cGFydGVkX21pbm1heCB3aGVyZSBiID0gJzEyMzQ1JzsKICAgIEluaXRQbGFuIDEgKHJldHVybnMg JDApCiAgICAgIC0+ICBMaW1pdAogICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5n IHBhcnRlZF9taW5tYXgxaSBvbiBwYXJ0ZWRfbWlubWF4MSBwYXJ0ZWRfbWlubWF4CisgICAgICAg ICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgo YSBJUyBOT1QgTlVMTCkgQU5EIChiID0gJzEyMzQ1Jzo6dGV4dCkpCiAgICBJbml0UGxhbiAyIChy ZXR1cm5zICQxKQogICAgICAtPiAgTGltaXQKICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2Nh biBCYWNrd2FyZCB1c2luZyBwYXJ0ZWRfbWlubWF4MWkgb24gcGFydGVkX21pbm1heDEgcGFydGVk X21pbm1heF8xCisgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAg ICAgIEluZGV4IENvbmQ6ICgoYSBJUyBOT1QgTlVMTCkgQU5EIChiID0gJzEyMzQ1Jzo6dGV4dCkp Ci0oOSByb3dzKQorKDExIHJvd3MpCiAKIHNlbGVjdCBtaW4oYSksIG1heChhKSBmcm9tIHBhcnRl ZF9taW5tYXggd2hlcmUgYiA9ICcxMjM0NSc7CiAgbWluIHwgbWF4IApAQCAtMjA5MywxMyArMjEy MywyMCBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbWNycGFydGVkIG9yZGVy IGJ5IGEsIGFicyhiKSwgYzsKICBNZXJnZSBBcHBlbmQKICAgIFNvcnQgS2V5OiBtY3JwYXJ0ZWQu YSwgKGFicyhtY3JwYXJ0ZWQuYikpLCBtY3JwYXJ0ZWQuYwogICAgLT4gIEluZGV4IFNjYW4gdXNp bmcgbWNycGFydGVkMF9hX2Fic19jX2lkeCBvbiBtY3JwYXJ0ZWQwIG1jcnBhcnRlZF8xCisgICAg ICAgICBTa2lwIHNjYW46IEFsbAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWNycGFydGVkMV9h X2Fic19jX2lkeCBvbiBtY3JwYXJ0ZWQxIG1jcnBhcnRlZF8yCisgICAgICAgICBTa2lwIHNjYW46 IEFsbAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWNycGFydGVkMl9hX2Fic19jX2lkeCBvbiBt Y3JwYXJ0ZWQyIG1jcnBhcnRlZF8zCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgbWNycGFydGVkM19hX2Fic19jX2lkeCBvbiBtY3JwYXJ0ZWQzIG1jcnBh cnRlZF80CisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcg bWNycGFydGVkNF9hX2Fic19jX2lkeCBvbiBtY3JwYXJ0ZWQ0IG1jcnBhcnRlZF81CisgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWNycGFydGVkNV9hX2Fi c19jX2lkeCBvbiBtY3JwYXJ0ZWQ1IG1jcnBhcnRlZF82CisgICAgICAgICBTa2lwIHNjYW46IEFs bAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWNycGFydGVkX2RlZl9hX2Fic19jX2lkeCBvbiBt Y3JwYXJ0ZWRfZGVmIG1jcnBhcnRlZF83Ci0oOSByb3dzKQorICAgICAgICAgU2tpcCBzY2FuOiBB bGwKKygxNiByb3dzKQogCiBkcm9wIHRhYmxlIG1jcnBhcnRlZF9kZWY7CiAtLSBBcHBlbmQgaXMg dXNlZCBmb3IgYSBSQU5HRSBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIG5vIGRlZmF1bHQKQEAgLTIx MDksMTIgKzIxNDYsMTggQEAgZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIG1jcnBh cnRlZCBvcmRlciBieSBhLCBhYnMoYiksIGM7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBwZW5kCiAg ICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQwX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRl ZDAgbWNycGFydGVkXzEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2Nh biB1c2luZyBtY3JwYXJ0ZWQxX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDEgbWNycGFydGVkXzIK KyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0 ZWQyX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDIgbWNycGFydGVkXzMKKyAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQzX2FfYWJzX2NfaWR4 IG9uIG1jcnBhcnRlZDMgbWNycGFydGVkXzQKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAt PiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQ0X2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDQg bWNycGFydGVkXzUKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiB1 c2luZyBtY3JwYXJ0ZWQ1X2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDUgbWNycGFydGVkXzYKLSg3 IHJvd3MpCisgICAgICAgICBTa2lwIHNjYW46IEFsbAorKDEzIHJvd3MpCiAKIC0tIEFwcGVuZCBp cyB1c2VkIHdpdGggc3VicGF0aHMgaW4gcmV2ZXJzZSBvcmRlciB3aXRoIGJhY2t3YXJkcyBpbmRl eCBzY2FucwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIG1jcnBhcnRlZCBvcmRl ciBieSBhIGRlc2MsIGFicyhiKSBkZXNjLCBjIGRlc2M7CkBAIC0yMTIyLDEyICsyMTY1LDE4IEBA IGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBtY3JwYXJ0ZWQgb3JkZXIgYnkgYSBk ZXNjLCBhYnMoYikgZGVzYywgYyBkZXNjCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBw ZW5kCiAgICAtPiAgSW5kZXggU2NhbiBCYWNrd2FyZCB1c2luZyBtY3JwYXJ0ZWQ1X2FfYWJzX2Nf aWR4IG9uIG1jcnBhcnRlZDUgbWNycGFydGVkXzYKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAg ICAtPiAgSW5kZXggU2NhbiBCYWNrd2FyZCB1c2luZyBtY3JwYXJ0ZWQ0X2FfYWJzX2NfaWR4IG9u IG1jcnBhcnRlZDQgbWNycGFydGVkXzUKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAg SW5kZXggU2NhbiBCYWNrd2FyZCB1c2luZyBtY3JwYXJ0ZWQzX2FfYWJzX2NfaWR4IG9uIG1jcnBh cnRlZDMgbWNycGFydGVkXzQKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXgg U2NhbiBCYWNrd2FyZCB1c2luZyBtY3JwYXJ0ZWQyX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDIg bWNycGFydGVkXzMKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiBC YWNrd2FyZCB1c2luZyBtY3JwYXJ0ZWQxX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDEgbWNycGFy dGVkXzIKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiBCYWNrd2Fy ZCB1c2luZyBtY3JwYXJ0ZWQwX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDAgbWNycGFydGVkXzEK LSg3IHJvd3MpCisgICAgICAgICBTa2lwIHNjYW46IEFsbAorKDEzIHJvd3MpCiAKIC0tIGNoZWNr IHRoYXQgQXBwZW5kIHBsYW4gaXMgdXNlZCBjb250YWluaW5nIGEgTWVyZ2VBcHBlbmQgZm9yIHN1 Yi1wYXJ0aXRpb25zCiAtLSB0aGF0IGFyZSB1bm9yZGVyZWQuCkBAIC0yMTQwLDE1ICsyMTg5LDIy IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBtY3JwYXJ0ZWQgb3JkZXIgYnkg YSwgYWJzKGIpLCBjOwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBwZW5kCiAg ICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQwX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRl ZDAgbWNycGFydGVkXzEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2Nh biB1c2luZyBtY3JwYXJ0ZWQxX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDEgbWNycGFydGVkXzIK KyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0 ZWQyX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDIgbWNycGFydGVkXzMKKyAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQzX2FfYWJzX2NfaWR4 IG9uIG1jcnBhcnRlZDMgbWNycGFydGVkXzQKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAt PiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQ0X2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDQg bWNycGFydGVkXzUKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgTWVyZ2UgQXBwZW5k CiAgICAgICAgICBTb3J0IEtleTogbWNycGFydGVkXzcuYSwgKGFicyhtY3JwYXJ0ZWRfNy5iKSks IG1jcnBhcnRlZF83LmMKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG1jcnBhcnRlZDVh X2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDVhIG1jcnBhcnRlZF83CisgICAgICAgICAgICAgICBT a2lwIHNjYW46IEFsbAogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWNycGFydGVkNV9k ZWZfYV9hYnNfY19pZHggb24gbWNycGFydGVkNV9kZWYgbWNycGFydGVkXzgKLSgxMCByb3dzKQor ICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKygxNyByb3dzKQogCiBkcm9wIHRhYmxlIG1j cnBhcnRlZDVfZGVmOwogLS0gY2hlY2sgdGhhdCBhbiBBcHBlbmQgcGxhbiBpcyB1c2VkIGFuZCB0 aGUgc3ViLXBhcnRpdGlvbnMgYXJlIGZsYXR0ZW5lZApAQCAtMjE1OSwxMiArMjIxNSwxOCBAQCBl eHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCBhLCBhYnMoYikgZnJvbSBtY3JwYXJ0ZWQgb3JkZXIg YnkgYSwgYWJzKGIpLCBjOwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBwZW5kCiAgICAtPiAgSW5k ZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQwX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDAgbWNycGFy dGVkXzEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBt Y3JwYXJ0ZWQxX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDEgbWNycGFydGVkXzIKKyAgICAgICAg IFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQyX2FfYWJz X2NfaWR4IG9uIG1jcnBhcnRlZDIgbWNycGFydGVkXzMKKyAgICAgICAgIFNraXAgc2NhbjogQWxs CiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQzX2FfYWJzX2NfaWR4IG9uIG1jcnBh cnRlZDMgbWNycGFydGVkXzQKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXgg U2NhbiB1c2luZyBtY3JwYXJ0ZWQ0X2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDQgbWNycGFydGVk XzUKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3Jw YXJ0ZWQ1YV9hX2Fic19jX2lkeCBvbiBtY3JwYXJ0ZWQ1YSBtY3JwYXJ0ZWRfNgotKDcgcm93cykK KyAgICAgICAgIFNraXAgc2NhbjogQWxsCisoMTMgcm93cykKIAogLS0gY2hlY2sgdGhhdCBBcHBl bmQgaXMgdXNlZCB3aGVuIHRoZSBzdWItcGFydGl0aW9uZWQgdGFibGVzIGFyZSBwcnVuZWQKIC0t IGR1cmluZyBwbGFubmluZy4KQEAgLTIxNzMsMTQgKzIyMzUsMTggQEAgZXhwbGFpbiAoY29zdHMg b2ZmKSBzZWxlY3QgKiBmcm9tIG1jcnBhcnRlZCB3aGVyZSBhIDwgMjAgb3JkZXIgYnkgYSwgYWJz KGIpLCBjOwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFwcGVuZAogICAgLT4gIEluZGV4IFNjYW4gdXNp bmcgbWNycGFydGVkMF9hX2Fic19jX2lkeCBvbiBtY3JwYXJ0ZWQwIG1jcnBhcnRlZF8xCisgICAg ICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGEgPCAyMCkKICAgIC0+ ICBJbmRleCBTY2FuIHVzaW5nIG1jcnBhcnRlZDFfYV9hYnNfY19pZHggb24gbWNycGFydGVkMSBt Y3JwYXJ0ZWRfMgorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6 IChhIDwgMjApCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtY3JwYXJ0ZWQyX2FfYWJzX2NfaWR4 IG9uIG1jcnBhcnRlZDIgbWNycGFydGVkXzMKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAg ICAgICBJbmRleCBDb25kOiAoYSA8IDIwKQogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWNycGFy dGVkM19hX2Fic19jX2lkeCBvbiBtY3JwYXJ0ZWQzIG1jcnBhcnRlZF80CisgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGEgPCAyMCkKLSg5IHJvd3MpCisoMTMg cm93cykKIAogY3JlYXRlIHRhYmxlIG1jbHBhcnRlZCAoYSBpbnQpIHBhcnRpdGlvbiBieSBsaXN0 KGEpOwogY3JlYXRlIHRhYmxlIG1jbHBhcnRlZDEgcGFydGl0aW9uIG9mIG1jbHBhcnRlZCBmb3Ig dmFsdWVzIGluKDEpOwpAQCAtMjE5Miw4ICsyMjU4LDEwIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikg c2VsZWN0ICogZnJvbSBtY2xwYXJ0ZWQgb3JkZXIgYnkgYTsKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFw cGVuZAogICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBtY2xwYXJ0ZWQxX2FfaWR4IG9uIG1j bHBhcnRlZDEgbWNscGFydGVkXzEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5k ZXggT25seSBTY2FuIHVzaW5nIG1jbHBhcnRlZDJfYV9pZHggb24gbWNscGFydGVkMiBtY2xwYXJ0 ZWRfMgotKDMgcm93cykKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCisoNSByb3dzKQogCiAtLSBF bnN1cmUgYSBNZXJnZUFwcGVuZCBpcyB1c2VkIHdoZW4gYSBwYXJ0aXRpb24gZXhpc3RzIHdpdGgg aW50ZXJsZWF2ZWQKIC0tIGRhdHVtcyBpbiB0aGUgcGFydGl0aW9uIGJvdW5kLgpAQCAtMjIwNSwx MCArMjI3MywxNCBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbWNscGFydGVk IG9yZGVyIGJ5IGE7CiAgTWVyZ2UgQXBwZW5kCiAgICBTb3J0IEtleTogbWNscGFydGVkLmEKICAg IC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgbWNscGFydGVkMV9hX2lkeCBvbiBtY2xwYXJ0ZWQx IG1jbHBhcnRlZF8xCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgLT4gIEluZGV4IE9ubHkg U2NhbiB1c2luZyBtY2xwYXJ0ZWQyX2FfaWR4IG9uIG1jbHBhcnRlZDIgbWNscGFydGVkXzIKKyAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIG1jbHBh cnRlZDNfNV9hX2lkeCBvbiBtY2xwYXJ0ZWQzXzUgbWNscGFydGVkXzMKKyAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIG1jbHBhcnRlZDRfYV9pZHgg b24gbWNscGFydGVkNCBtY2xwYXJ0ZWRfNAotKDYgcm93cykKKyAgICAgICAgIFNraXAgc2Nhbjog QWxsCisoMTAgcm93cykKIAogZHJvcCB0YWJsZSBtY2xwYXJ0ZWQ7CiAtLSBFbnN1cmUgc3VicGxh bnMgd2hpY2ggZG9uJ3QgaGF2ZSBhIHBhdGggd2l0aCB0aGUgY29ycmVjdCBwYXRoa2V5cyBnZXQK QEAgLTIyMjgsMTIgKzIzMDAsMTUgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9t IG1jcnBhcnRlZCB3aGVyZSBhIDwgMjAgb3JkZXIgYnkgYSwgYWJzKGIpLCBjIGwKICAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBtY3JwYXJ0ZWQwIG1jcnBhcnRlZF8xCiAgICAgICAgICAg ICAgICAgICAgICBGaWx0ZXI6IChhIDwgMjApCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBtY3JwYXJ0ZWQxX2FfYWJzX2NfaWR4IG9uIG1jcnBhcnRlZDEgbWNycGFydGVkXzIKKyAgICAg ICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA8 IDIwKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWNycGFydGVkMl9hX2Fic19jX2lk eCBvbiBtY3JwYXJ0ZWQyIG1jcnBhcnRlZF8zCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFs bAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPCAyMCkKICAgICAgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIG1jcnBhcnRlZDNfYV9hYnNfY19pZHggb24gbWNycGFydGVkMyBtY3JwYXJ0 ZWRfNAorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6IChhIDwgMjApCi0oMTIgcm93cykKKygxNSByb3dzKQogCiBzZXQgZW5hYmxlX2JpdG1h cHNjYW4gPSAwOwogLS0gRW5zdXJlIEFwcGVuZCBub2RlIGNhbiBiZSB1c2VkIHdoZW4gdGhlIHBh cnRpdGlvbiBpcyBvcmRlcmVkIGJ5IHNvbWUKQEAgLTIyNDMsMTAgKzIzMTgsMTIgQEAgZXhwbGFp biAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIG1jcnBhcnRlZCB3aGVyZSBhID0gMTAgb3JkZXIg YnkgYSwgYWJzKGIpLCBjOwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFwcGVuZAogICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgbWNycGFydGVkMV9hX2Fic19jX2lkeCBvbiBtY3JwYXJ0ZWQxIG1jcnBhcnRl ZF8xCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAx MCkKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG1jcnBhcnRlZDJfYV9hYnNfY19pZHggb24gbWNy cGFydGVkMiBtY3JwYXJ0ZWRfMgorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIElu ZGV4IENvbmQ6IChhID0gMTApCi0oNSByb3dzKQorKDcgcm93cykKIAogcmVzZXQgZW5hYmxlX2Jp dG1hcHNjYW47CiBkcm9wIHRhYmxlIG1jcnBhcnRlZDsKQEAgLTIyNjAsOCArMjMzNywxMCBAQCBl eHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gYm9vbF9scCBvcmRlciBieSBiOwogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIEFwcGVuZAogICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBi b29sX2xwX2ZhbHNlX2JfaWR4IG9uIGJvb2xfbHBfZmFsc2UgYm9vbF9scF8xCisgICAgICAgICBT a2lwIHNjYW46IEFsbAogICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBib29sX2xwX3RydWVf Yl9pZHggb24gYm9vbF9scF90cnVlIGJvb2xfbHBfMgotKDMgcm93cykKKyAgICAgICAgIFNraXAg c2NhbjogQWxsCisoNSByb3dzKQogCiBkcm9wIHRhYmxlIGJvb2xfbHA7CiAtLSBFbnN1cmUgY29u c3QgYm9vbCBxdWFscyBjYW4gYmUgcHJvcGVybHkgZGV0ZWN0ZWQgYXMgcmVkdW5kYW50CkBAIC0y Mjc2LDQwICsyMzU1LDQ4IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBib29s X3JwIHdoZXJlIGIgPSB0cnVlIG9yZGVyIGJ5IGIsYTsKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBBcHBlbmQKICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgYm9vbF9ycF90cnVlXzFr X2JfYV9pZHggb24gYm9vbF9ycF90cnVlXzFrIGJvb2xfcnBfMQorICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gdHJ1ZSkKICAgIC0+ICBJbmRleCBPbmx5 IFNjYW4gdXNpbmcgYm9vbF9ycF90cnVlXzJrX2JfYV9pZHggb24gYm9vbF9ycF90cnVlXzJrIGJv b2xfcnBfMgorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6IChi ID0gdHJ1ZSkKLSg1IHJvd3MpCisoNyByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVj dCAqIGZyb20gYm9vbF9ycCB3aGVyZSBiID0gZmFsc2Ugb3JkZXIgYnkgYixhOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBcHBlbmQK ICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgYm9vbF9ycF9mYWxzZV8xa19iX2FfaWR4IG9u IGJvb2xfcnBfZmFsc2VfMWsgYm9vbF9ycF8xCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAg ICAgICAgSW5kZXggQ29uZDogKGIgPSBmYWxzZSkKICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNp bmcgYm9vbF9ycF9mYWxzZV8ya19iX2FfaWR4IG9uIGJvb2xfcnBfZmFsc2VfMmsgYm9vbF9ycF8y CisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGIgPSBmYWxz ZSkKLSg1IHJvd3MpCisoNyByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZy b20gYm9vbF9ycCB3aGVyZSBiID0gdHJ1ZSBvcmRlciBieSBhOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFwcGVuZAogICAgLT4gIEluZGV4 IE9ubHkgU2NhbiB1c2luZyBib29sX3JwX3RydWVfMWtfYl9hX2lkeCBvbiBib29sX3JwX3RydWVf MWsgYm9vbF9ycF8xCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29u ZDogKGIgPSB0cnVlKQogICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBib29sX3JwX3RydWVf MmtfYl9hX2lkeCBvbiBib29sX3JwX3RydWVfMmsgYm9vbF9ycF8yCisgICAgICAgICBTa2lwIHNj YW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGIgPSB0cnVlKQotKDUgcm93cykKKyg3IHJv d3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBib29sX3JwIHdoZXJlIGIg PSBmYWxzZSBvcmRlciBieSBhOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBcHBlbmQKICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNp bmcgYm9vbF9ycF9mYWxzZV8xa19iX2FfaWR4IG9uIGJvb2xfcnBfZmFsc2VfMWsgYm9vbF9ycF8x CisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGIgPSBmYWxz ZSkKICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgYm9vbF9ycF9mYWxzZV8ya19iX2FfaWR4 IG9uIGJvb2xfcnBfZmFsc2VfMmsgYm9vbF9ycF8yCisgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgSW5kZXggQ29uZDogKGIgPSBmYWxzZSkKLSg1IHJvd3MpCisoNyByb3dzKQogCiBk cm9wIHRhYmxlIGJvb2xfcnA7CiAtLSBFbnN1cmUgYW4gQXBwZW5kIHNjYW4gaXMgY2hvc2VuIHdo ZW4gdGhlIHBhcnRpdGlvbiBvcmRlciBpcyBhIHN1YnNldCBvZgpAQCAtMjMyMywxNiArMjQxMCwy MCBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmFuZ2VfcGFydGVkIG9yZGVy IGJ5IGEsYixjOwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFwcGVuZAogICAgLT4g IEluZGV4IE9ubHkgU2NhbiB1c2luZyByYW5nZV9wYXJ0ZWQxX2FfYl9jX2lkeCBvbiByYW5nZV9w YXJ0ZWQxIHJhbmdlX3BhcnRlZF8xCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgLT4gIElu ZGV4IE9ubHkgU2NhbiB1c2luZyByYW5nZV9wYXJ0ZWQyX2FfYl9jX2lkeCBvbiByYW5nZV9wYXJ0 ZWQyIHJhbmdlX3BhcnRlZF8yCi0oMyByb3dzKQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKyg1 IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSByYW5nZV9wYXJ0ZWQg b3JkZXIgYnkgYSBkZXNjLGIgZGVzYyxjIGRlc2M7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBw ZW5kCiAgICAtPiAgSW5kZXggT25seSBTY2FuIEJhY2t3YXJkIHVzaW5nIHJhbmdlX3BhcnRlZDJf YV9iX2NfaWR4IG9uIHJhbmdlX3BhcnRlZDIgcmFuZ2VfcGFydGVkXzIKKyAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAtPiAgSW5kZXggT25seSBTY2FuIEJhY2t3YXJkIHVzaW5nIHJhbmdlX3Bh cnRlZDFfYV9iX2NfaWR4IG9uIHJhbmdlX3BhcnRlZDEgcmFuZ2VfcGFydGVkXzEKLSgzIHJvd3Mp CisgICAgICAgICBTa2lwIHNjYW46IEFsbAorKDUgcm93cykKIAogZHJvcCB0YWJsZSByYW5nZV9w YXJ0ZWQ7CiAtLSBDaGVjayB0aGF0IHdlIGFsbG93IGFjY2VzcyB0byBhIGNoaWxkIHRhYmxlJ3Mg c3RhdGlzdGljcyB3aGVuIHRoZSB1c2VyCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2luc2VydF9jb25mbGljdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2lu c2VydF9jb25mbGljdC5vdXQKaW5kZXggMTMzOGIyYjIzZS4uZTdlYWUwNWFiZiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbnNlcnRfY29uZmxpY3Qub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5zZXJ0X2NvbmZsaWN0Lm91dApAQCAtNTQsMTAgKzU0 LDExIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgaW5zZXJ0IGludG8gaW5zZXJ0Y29uZmxpY3R0ZXN0 IHZhbHVlcygwLCAnQ3Jvd2JlcnJ5Jykgb24gY29uCiAgICAtPiAgUmVzdWx0CiAgICBTdWJQbGFu IDEKICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBib3RoX2luZGV4X2V4cHJfa2V5IG9u IGluc2VydGNvbmZsaWN0dGVzdCBpaQorICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICBJbmRleCBDb25kOiAoa2V5ID0gZXhjbHVkZWQua2V5KQogICAgU3ViUGxhbiAyCiAgICAg IC0+ICBTZXEgU2NhbiBvbiBpbnNlcnRjb25mbGljdHRlc3QgaWlfMQotKDEwIHJvd3MpCisoMTEg cm93cykKIAogLS0gTmVpdGhlciBjb2xsYXRpb24gbm9yIG9wZXJhdG9yIGNsYXNzIHNwZWNpZmlj YXRpb25zIGFyZSByZXF1aXJlZCAtLQogLS0gc3VwcGx5aW5nIHRoZW0gbWVyZWx5ICpsaW1pdHMq IG1hdGNoZXMgdG8gaW5kZXhlcyB3aXRoIG1hdGNoaW5nIG9wY2xhc3NlcwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbnRlcnZhbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2ludGVydmFsLm91dAppbmRleCBmNzcyOTA5ZTQ5Li4wOTEzMWM1OTMzIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ludGVydmFsLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ludGVydmFsLm91dApAQCAtMjYwLDcgKzI2MCw4IEBAIFNF TEVDVCBmMSBGUk9NIElOVEVSVkFMX1RCTF9PRiByMSBPUkRFUiBCWSBmMTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIEluZGV4IE9ubHkgU2NhbiB1c2luZyBpbnRlcnZhbF90Ymxfb2ZfZjFf aWR4IG9uIGludGVydmFsX3RibF9vZiByMQotKDEgcm93KQorICAgU2tpcCBzY2FuOiBBbGwKKygy IHJvd3MpCiAKIFNFTEVDVCBmMSBGUk9NIElOVEVSVkFMX1RCTF9PRiByMSBPUkRFUiBCWSBmMTsK ICAgICAgICAgICAgICAgICAgICAgZjEgICAgICAgICAgICAgICAgICAgICAKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2pvaW4ub3V0CmluZGV4IDc2MTM3NmIwMDcuLjc4OWNiMzI1ODUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9qb2luLm91dApAQCAtMTg1NywxNiArMTg1NywxNiBAQCBzZWxlY3QgKiBmcm9t IGludDRfdGJsIGk0LCB0ZW5rMSBhCiB3aGVyZSBleGlzdHMoc2VsZWN0ICogZnJvbSB0ZW5rMSBi CiAgICAgICAgICAgICAgd2hlcmUgYS50d290aG91c2FuZCA9IGIudHdvdGhvdXNhbmQgYW5kIGEu Zml2ZXRob3VzIDw+IGIuZml2ZXRob3VzKQogICAgICAgYW5kIGk0LmYxID0gYS50ZW50aG91czsK LSAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEhh c2ggU2VtaSBKb2luCiAgICBIYXNoIENvbmQ6IChhLnR3b3Rob3VzYW5kID0gYi50d290aG91c2Fu ZCkKICAgIEpvaW4gRmlsdGVyOiAoYS5maXZldGhvdXMgPD4gYi5maXZldGhvdXMpCi0gICAtPiAg SGFzaCBKb2luCi0gICAgICAgICBIYXNoIENvbmQ6IChhLnRlbnRob3VzID0gaTQuZjEpCi0gICAg ICAgICAtPiAgU2VxIFNjYW4gb24gdGVuazEgYQotICAgICAgICAgLT4gIEhhc2gKLSAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBpbnQ0X3RibCBpNAorICAgLT4gIE5lc3RlZCBMb29wCisg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gaW50NF90YmwgaTQKKyAgICAgICAgIC0+ICBJbmRleCBT Y2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3VzIG9uIHRlbmsxIGEKKyAgICAgICAgICAgICAg IFNraXAgc2NhbjogQWxsCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGVudGhvdXMgPSBp NC5mMSkKICAgIC0+ICBIYXNoCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdGVuazEgYgogKDEw IHJvd3MpCkBAIC0yMjkzLDggKzIyOTMsOSBAQCB3aGVyZSBiLmYxID0gdC50aG91c2FuZCBhbmQg YS5mMSA9IGIuZjEgYW5kIChhLmYxK2IuZjErOTk5KSA9IHQudGVudGhvdXM7CiAgICAgICAgICAt PiAgQWdncmVnYXRlCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gaW50NF90YmwgaTRh CiAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3Vz IG9uIHRlbmsxIHQKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gKHN1bShpNGIuZjEpKSkgQU5EICh0ZW50aG91cyA9 ICgoKChzdW0oaTRhLmYxKSArIDEpKSArIChzdW0oaTRiLmYxKSkpICsgOTk5KSkpCi0oOSByb3dz KQorKDEwIHJvd3MpCiAKIHNlbGVjdCBhLmYxLCBiLmYxLCB0LnRob3VzYW5kLCB0LnRlbnRob3Vz IGZyb20KICAgdGVuazEgdCwKQEAgLTIzNzMsNyArMjM3NCw4IEBAIHNlbGVjdCBjb3VudCgqKSBm cm9tCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdGVuazEgeAogICAgICAgICAgLT4g IE1hdGVyaWFsaXplCiAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV91 bmlxdWUyIG9uIHRlbmsxIHkKLSg5IHJvd3MpCisgICAgICAgICAgICAgICAgICAgICBTa2lwIHNj YW46IEFsbAorKDEwIHJvd3MpCiAKIHNlbGVjdCBjb3VudCgqKSBmcm9tCiAgIChzZWxlY3QgKiBm cm9tIHRlbmsxIHggb3JkZXIgYnkgeC50aG91c2FuZCwgeC50d290aG91c2FuZCwgeC5maXZldGhv dXMpIHgKQEAgLTI0OTMsMTAgKzI0OTUsMTEgQEAgc2VsZWN0IGNvdW50KCopIGZyb20gdGVuazEg YSwgdGVuazEgYgogICAgLT4gIEhhc2ggSm9pbgogICAgICAgICAgSGFzaCBDb25kOiAoYS5odW5k cmVkID0gYi50aG91c2FuZCkKICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVu azFfaHVuZHJlZCBvbiB0ZW5rMSBhCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAg ICAgICAgLT4gIEhhc2gKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMSBiCiAg ICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZml2ZXRob3VzICUgMTApIDwgMTApCi0oNyBy b3dzKQorKDggcm93cykKIAogc2VsZWN0IGNvdW50KCopIGZyb20gdGVuazEgYSwgdGVuazEgYgog ICB3aGVyZSBhLmh1bmRyZWQgPSBiLnRob3VzYW5kIGFuZCAoYi5maXZldGhvdXMgJSAxMCkgPCAx MDsKQEAgLTI3MDIsOSArMjcwNSwxMSBAQCBzZWxlY3QgYS5pZHYsIGIuaWR2IGZyb20gdGlkdiBh LCB0aWR2IGIgd2hlcmUgYS5pZHYgPSBiLmlkdjsKICBNZXJnZSBKb2luCiAgICBNZXJnZSBDb25k OiAoYS5pZHYgPSBiLmlkdikKICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGlkdl9pZHZf aWR4IG9uIHRpZHYgYQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgIC0+ICBNYXRlcmlhbGl6 ZQogICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0aWR2X2lkdl9pZHggb24gdGlk diBiCi0oNSByb3dzKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKyg3IHJvd3MpCiAK IHNldCBlbmFibGVfbWVyZ2Vqb2luID0gMDsKIGV4cGxhaW4gKGNvc3RzIG9mZikKQEAgLTI3MTQs OCArMjcxOSw5IEBAIHNlbGVjdCBhLmlkdiwgYi5pZHYgZnJvbSB0aWR2IGEsIHRpZHYgYiB3aGVy ZSBhLmlkdiA9IGIuaWR2OwogIE5lc3RlZCBMb29wCiAgICAtPiAgU2VxIFNjYW4gb24gdGlkdiBh CiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRpZHZfaWR2X2lkeCBvbiB0aWR2IGIKKyAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoaWR2ID0gYS5pZHYp Ci0oNCByb3dzKQorKDUgcm93cykKIAogcm9sbGJhY2s7CiAtLQpAQCAtMjg3NCw4ICsyODgwLDkg QEAgU0VMRUNUIHFxLCB1bmlxdWUxCiAgICAgICAgICAtPiAgSGFzaAogICAgICAgICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIGludDhfdGJsIGIKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRlbmsx X3VuaXF1ZTIgb24gdGVuazEgYworICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIElu ZGV4IENvbmQ6ICh1bmlxdWUyID0gQ09BTEVTQ0UoKENPQUxFU0NFKGEucTEsICcwJzo6YmlnaW50 KSksIChDT0FMRVNDRShiLnEyLCAnLTEnOjpiaWdpbnQpKSkpCi0oOCByb3dzKQorKDkgcm93cykK IAogU0VMRUNUIHFxLCB1bmlxdWUxCiAgIEZST00KQEAgLTI5MzgsMTMgKzI5NDUsMTYgQEAgd2hl cmUgbnQzLmlkID0gMSBhbmQgc3MyLmIzOwogIE5lc3RlZCBMb29wCiAgICAtPiAgTmVzdGVkIExv b3AKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG50M19wa2V5IG9uIG50MworICAgICAg ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChpZCA9 IDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBudDJfcGtleSBvbiBudDIKKyAgICAg ICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaWQg PSBudDMubnQyX2lkKQogICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBudDFfcGtleSBvbiBu dDEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoaWQgPSBu dDIubnQxX2lkKQogICAgICAgICAgRmlsdGVyOiAobnQyLmIxIEFORCAoaWQgSVMgTk9UIE5VTEwp KQotKDkgcm93cykKKygxMiByb3dzKQogCiBzZWxlY3QgbnQzLmlkCiBmcm9tIG50MyBhcyBudDMK QEAgLTMwODEsMTIgKzMwOTEsMTQgQEAgd2hlcmUgcTEgPSB0aG91c2FuZCBvciBxMiA9IHRob3Vz YW5kOwogICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoKHExLnExID0gdGhvdXNhbmQpIE9S IChxMi5xMiA9IHRob3VzYW5kKSkKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXBPcgogICAgICAg ICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRo b3VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5kID0gcTEucTEpCiAgICAgICAg ICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhv dXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSBxMi5xMikKICAgIC0+ICBI YXNoCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gaW50NF90YmwKLSgxNSByb3dzKQorKDE3IHJv d3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCAqIGZyb20KQEAgLTMxMDQsMTAgKzMx MTYsMTEgQEAgd2hlcmUgdGhvdXNhbmQgPSAocTEgKyBxMik7CiAgICAgICAgICAtPiAgQml0bWFw IEhlYXAgU2NhbiBvbiB0ZW5rMQogICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAodGhvdXNh bmQgPSAocTEucTEgKyBxMi5xMikpCiAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSAocTEu cTEgKyBxMi5xMikpCiAgICAtPiAgSGFzaAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGludDRf dGJsCi0oMTIgcm93cykKKygxMyByb3dzKQogCiAtLQogLS0gdGVzdCBhYmlsaXR5IHRvIGdlbmVy YXRlIGEgc3VpdGFibGUgcGxhbiBmb3IgYSBzdGFyLXNjaGVtYSBxdWVyeQpAQCAtMzExNiwxNyAr MzEyOSwxOSBAQCBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgKiBmcm9tCiAgIHRlbmsxLCBp bnQ4X3RibCBhLCBpbnQ4X3RibCBiCiB3aGVyZSB0aG91c2FuZCA9IGEucTEgYW5kIHRlbnRob3Vz ID0gYi5xMSBhbmQgYS5xMiA9IDEgYW5kIGIucTIgPSAyOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVkIExvb3AKLSAgIC0+ICBTZXEgU2NhbiBvbiBpbnQ4X3Ri bCBiCi0gICAgICAgICBGaWx0ZXI6IChxMiA9IDIpCisgICBKb2luIEZpbHRlcjogKHRlbmsxLnRo b3VzYW5kID0gYS5xMSkKICAgIC0+ICBOZXN0ZWQgTG9vcAotICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIGludDhfdGJsIGEKLSAgICAgICAgICAgICAgIEZpbHRlcjogKHEyID0gMSkKKyAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBpbnQ4X3RibCBiCisgICAgICAgICAgICAgICBGaWx0ZXI6IChxMiA9 IDIpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV90aG91c190ZW50aG91cyBv biB0ZW5rMQotICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IGEucTEpIEFO RCAodGVudGhvdXMgPSBiLnExKSkKLSg4IHJvd3MpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46 IEFsbAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRlbnRob3VzID0gYi5xMSkKKyAgIC0+ ICBTZXEgU2NhbiBvbiBpbnQ4X3RibCBhCisgICAgICAgICBGaWx0ZXI6IChxMiA9IDEpCisoMTAg cm93cykKIAogLS0KIC0tIHRlc3QgYSBjb3JuZXIgY2FzZSBpbiB3aGljaCB3ZSBzaG91bGRuJ3Qg YXBwbHkgdGhlIHN0YXItc2NoZW1hIG9wdGltaXphdGlvbgpAQCAtMzE1NCwxMiArMzE2OSwxNCBA QCB3aGVyZSB0MS51bmlxdWUyIDwgNDIgYW5kIHQxLnN0cmluZ3UxID4gdDIuc3RyaW5ndTI7CiAg ICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gb25lcm93CiAgICAgICAgICAgICAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gb25lcm93IG9uZXJvd18xCiAgICAgICAgICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUyIG9uIHRlbmsxIHQxCisgICAgICAgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKCh1bmlxdWUyID0gKDExKSkgQU5EICh1bmlxdWUyIDwgNDIpKQogICAgICAgICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0ZW5rMSB0MgorICAgICAgICAgICAgICAg U2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gKDMp KQogICAgLT4gIFNlcSBTY2FuIG9uIGludDRfdGJsIGkxCiAgICAgICAgICBGaWx0ZXI6IChmMSA9 IDApCi0oMTMgcm93cykKKygxNSByb3dzKQogCiBzZWxlY3QgdDEudW5pcXVlMiwgdDEuc3RyaW5n dTEsIHQyLnVuaXF1ZTEsIHQyLnN0cmluZ3UyIGZyb20KICAgdGVuazEgdDEKQEAgLTMyMjAsMTAg KzMyMzcsMTIgQEAgd2hlcmUgdDEudW5pcXVlMiA8IDQyIGFuZCB0MS5zdHJpbmd1MSA+IHQyLnN0 cmluZ3UyOwogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGludDRfdGJsIGkxCiAgICAgICAgICAg ICAgICBGaWx0ZXI6IChmMSA9IDApCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5r MV91bmlxdWUyIG9uIHRlbmsxIHQxCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKCh1bmlxdWUyID0gKDExKSkgQU5EICh1bmlxdWUyIDwg NDIpKQogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0ZW5rMSB0Mgor ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0g KDMpKQotKDkgcm93cykKKygxMSByb3dzKQogCiBzZWxlY3QgdDEudW5pcXVlMiwgdDEuc3RyaW5n dTEsIHQyLnVuaXF1ZTEsIHQyLnN0cmluZ3UyIGZyb20KICAgdGVuazEgdDEKQEAgLTMyODAsOCAr MzI5OSw5IEBAIHdoZXJlIHggPSB1bmlxdWUxOwogICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsx CisgICBTa2lwIHNjYW46IEFsbAogICAgSW5kZXggQ29uZDogKHVuaXF1ZTEgPSAxKQotKDIgcm93 cykKKygzIHJvd3MpCiAKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikKIHNlbGVjdCB1bmlx dWUxLCB4LioKQEAgLTMyOTUsMzIgKzMzMTUsMzYgQEAgd2hlcmUgeCA9IHVuaXF1ZTE7CiAgICAg ICAgICBPdXRwdXQ6IDEsIHJhbmRvbSgpCiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRl bmsxX3VuaXF1ZTEgb24gcHVibGljLnRlbmsxCiAgICAgICAgICBPdXRwdXQ6IHRlbmsxLnVuaXF1 ZTEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAodGVuazEu dW5pcXVlMSA9ICgxKSkKLSg3IHJvd3MpCisoOCByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYp CiBzZWxlY3QgdW5pcXVlMSBmcm9tIHRlbmsxLCBmX2ltbXV0YWJsZV9pbnQ0KDEpIHggd2hlcmUg eCA9IHVuaXF1ZTE7CiAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5k ZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEKKyAgIFNraXAgc2Nhbjog QWxsCiAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IDEpCi0oMiByb3dzKQorKDMgcm93cykKIAog ZXhwbGFpbiAoY29zdHMgb2ZmKQogc2VsZWN0IHVuaXF1ZTEgZnJvbSB0ZW5rMSwgbGF0ZXJhbCBm X2ltbXV0YWJsZV9pbnQ0KDEpIHggd2hlcmUgeCA9IHVuaXF1ZTE7CiAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1 ZTEgb24gdGVuazEKKyAgIFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9 IDEpCi0oMiByb3dzKQorKDMgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKQogc2VsZWN0IHVu aXF1ZTEsIHggZnJvbSB0ZW5rMSBqb2luIGZfaW1tdXRhYmxlX2ludDQoMSkgeCBvbiB1bmlxdWUx ID0geDsKICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbmRleCBPbmx5 IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0ZW5rMQorICAgU2tpcCBzY2FuOiBBbGwKICAg IEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMSkKLSgyIHJvd3MpCisoMyByb3dzKQogCiBleHBsYWlu IChjb3N0cyBvZmYpCiBzZWxlY3QgdW5pcXVlMSwgeCBmcm9tIHRlbmsxIGxlZnQgam9pbiBmX2lt bXV0YWJsZV9pbnQ0KDEpIHggb24gdW5pcXVlMSA9IHg7CkBAIC0zMzI5LDkgKzMzNTMsMTAgQEAg c2VsZWN0IHVuaXF1ZTEsIHggZnJvbSB0ZW5rMSBsZWZ0IGpvaW4gZl9pbW11dGFibGVfaW50NCgx KSB4IG9uIHVuaXF1ZTEgPSB4OwogIE5lc3RlZCBMb29wIExlZnQgSm9pbgogICAgSm9pbiBGaWx0 ZXI6ICh0ZW5rMS51bmlxdWUxID0gMSkKICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVu azFfdW5pcXVlMSBvbiB0ZW5rMQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgIC0+ICBNYXRl cmlhbGl6ZQogICAgICAgICAgLT4gIFJlc3VsdAotKDUgcm93cykKKyg2IHJvd3MpCiAKIGV4cGxh aW4gKGNvc3RzIG9mZikKIHNlbGVjdCB1bmlxdWUxLCB4IGZyb20gdGVuazEgcmlnaHQgam9pbiBm X2ltbXV0YWJsZV9pbnQ0KDEpIHggb24gdW5pcXVlMSA9IHg7CkBAIC0zMzQwLDggKzMzNjUsOSBA QCBzZWxlY3QgdW5pcXVlMSwgeCBmcm9tIHRlbmsxIHJpZ2h0IGpvaW4gZl9pbW11dGFibGVfaW50 NCgxKSB4IG9uIHVuaXF1ZTEgPSB4OwogIE5lc3RlZCBMb29wIExlZnQgSm9pbgogICAgLT4gIFJl c3VsdAogICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsx CisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTEg PSAxKQotKDQgcm93cykKKyg1IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCB1 bmlxdWUxLCB4IGZyb20gdGVuazEgZnVsbCBqb2luIGZfaW1tdXRhYmxlX2ludDQoMSkgeCBvbiB1 bmlxdWUxID0geDsKQEAgLTMzNTAsMTAgKzMzNzYsMTEgQEAgc2VsZWN0IHVuaXF1ZTEsIHggZnJv bSB0ZW5rMSBmdWxsIGpvaW4gZl9pbW11dGFibGVfaW50NCgxKSB4IG9uIHVuaXF1ZTEgPSB4Owog IE1lcmdlIEZ1bGwgSm9pbgogICAgTWVyZ2UgQ29uZDogKHRlbmsxLnVuaXF1ZTEgPSAoMSkpCiAg ICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEKKyAgICAg ICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6ICgxKQog ICAgICAgICAgLT4gIFJlc3VsdAotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIGNoZWNrIHRoYXQg cHVsbHVwIG9mIGEgY29uc3QgZnVuY3Rpb24gYWxsb3dzIGZ1cnRoZXIgY29uc3QtZm9sZGluZwog ZXhwbGFpbiAoY29zdHMgb2ZmKQpAQCAtMzM4MiwxMyArMzQwOSwxNSBAQCB3aGVyZSBudDMuaWQg PSAxIGFuZCBzczIuYjM7CiAgTmVzdGVkIExvb3AgTGVmdCBKb2luCiAgICBGaWx0ZXI6ICgobnQy LmIxIE9SICgoMCkgPSA0MikpKQogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbnQzX3BrZXkgb24g bnQzCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGlkID0g MSkKICAgIC0+ICBOZXN0ZWQgTG9vcCBMZWZ0IEpvaW4KICAgICAgICAgIEpvaW4gRmlsdGVyOiAo MCA9IG50Mi5udDFfaWQpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBudDJfcGtleSBv biBudDIKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoaWQgPSBudDMubnQyX2lkKQogICAgICAgICAgLT4gIFJlc3VsdAotKDkgcm93cykK KygxMSByb3dzKQogCiBkcm9wIGZ1bmN0aW9uIGZfaW1tdXRhYmxlX2ludDQoaW50KTsKIC0tIHRl c3QgaW5saW5pbmcgd2hlbiBmdW5jdGlvbiByZXR1cm5zIGNvbXBvc2l0ZQpAQCAtMzQ0MywxOCAr MzQ3MiwyMiBAQCBzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9uCiAgICAgICAg ICBSZWNoZWNrIENvbmQ6ICgodW5pcXVlMSA9IDIpIE9SIChodW5kcmVkID0gNCkpCiAgICAgICAg ICAtPiAgQml0bWFwT3IKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0 ZW5rMV91bmlxdWUxCisgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTEgPSAyKQogICAgICAgICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAgICAg ICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVu ZHJlZCA9IDQpCiAgICAtPiAgTWF0ZXJpYWxpemUKICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBT Y2FuIG9uIHRlbmsxIGEKICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxID0g MSkgT1IgKHVuaXF1ZTIgPSAzKSkKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXBPcgogICAgICAg ICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IDEpCiAgICAgICAgICAgICAgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6ICh1bmlxdWUyID0gMykKLSgxNyByb3dzKQorKDIxIHJvd3MpCiAKIGV4cGxhaW4g KGNvc3RzIG9mZikKIHNlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KQEAgLTM0 NzAsMTAgKzM1MDMsMTIgQEAgc2VsZWN0ICogZnJvbSB0ZW5rMSBhIGpvaW4gdGVuazEgYiBvbgog ICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPSAxKSBPUiAodW5pcXVlMiA9 IDMpKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcE9yCiAgICAgICAgICAgICAgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6ICh1bmlxdWUxID0gMSkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUyCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1 ZTIgPSAzKQotKDEyIHJvd3MpCisoMTQgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKQogc2Vs ZWN0ICogZnJvbSB0ZW5rMSBhIGpvaW4gdGVuazEgYiBvbgpAQCAtMzQ4NywyMCArMzUyMiwyNSBA QCBzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9uCiAgICAgICAgICBSZWNoZWNr IENvbmQ6ICgodW5pcXVlMSA9IDIpIE9SIChodW5kcmVkID0gNCkpCiAgICAgICAgICAtPiAgQml0 bWFwT3IKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlx dWUxCisgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTEgPSAyKQogICAgICAgICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9IDQp CiAgICAtPiAgTWF0ZXJpYWxpemUKICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRl bmsxIGEKICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxID0gMSkgT1IgKHVu aXF1ZTIgPSAzKSBPUiAodW5pcXVlMiA9IDcpKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcE9y CiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5p cXVlMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMSkKICAgICAgICAgICAg ICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUyCisgICAgICAg ICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPSAzKQogICAgICAgICAgICAgICAgICAgICAgLT4g IEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBD b25kOiAodW5pcXVlMiA9IDcpCi0oMTkgcm93cykKKygyNCByb3dzKQogCiAtLQogLS0gdGVzdCBw bGFjZW1lbnQgb2YgbW92YWJsZSBxdWFscyBpbiBhIHBhcmFtZXRlcml6ZWQgam9pbiB0cmVlCkBA IC0zNTE0LDE2ICszNTU0LDE5IEBAIHdoZXJlIHQxLnVuaXF1ZTEgPSAxOwogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBOZXN0ZWQgTG9v cCBMZWZ0IEpvaW4KICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVu azEgdDEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAodW5p cXVlMSA9IDEpCiAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgIEpvaW4gRmlsdGVyOiAodDEu dGVuID0gdDMudGVuKQogICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEgdDIK ICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKHQxLmh1bmRyZWQgPSBodW5kcmVkKQogICAg ICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAg ICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoaHVuZHJlZCA9IHQxLmh1bmRyZWQpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1 c2luZyB0ZW5rMV91bmlxdWUyIG9uIHRlbmsxIHQzCisgICAgICAgICAgICAgICBTa2lwIHNjYW46 IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPSB0Mi50aG91c2FuZCkK LSgxMSByb3dzKQorKDE0IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCAqIGZy b20gdGVuazEgdDEgbGVmdCBqb2luCkBAIC0zNTM0LDE2ICszNTc3LDE5IEBAIHdoZXJlIHQxLnVu aXF1ZTEgPSAxOwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBOZXN0ZWQgTG9vcCBMZWZ0IEpvaW4KICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEgdDEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAg ICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IDEpCiAgICAtPiAgTmVzdGVkIExvb3AKICAg ICAgICAgIEpvaW4gRmlsdGVyOiAoKHQxLnRlbiArIHQyLnRlbikgPSB0My50ZW4pCiAgICAgICAg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMSB0MgogICAgICAgICAgICAgICAgUmVjaGVj ayBDb25kOiAodDEuaHVuZHJlZCA9IGh1bmRyZWQpCiAgICAgICAgICAgICAgICAtPiAgQml0bWFw IEluZGV4IFNjYW4gb24gdGVuazFfaHVuZHJlZAorICAgICAgICAgICAgICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChodW5kcmVkID0gdDEu aHVuZHJlZCkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTIgb24g dGVuazEgdDMKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAodW5pcXVlMiA9IHQyLnRob3VzYW5kKQotKDExIHJvd3MpCisoMTQgcm93cykK IAogZXhwbGFpbiAoY29zdHMgb2ZmKQogc2VsZWN0IGNvdW50KCopIGZyb20KQEAgLTM1NjEsMTIg KzM2MDcsMTUgQEAgc2VsZWN0IGNvdW50KCopIGZyb20KICAgICAgICAgICAgICAgICAgICAgIC0+ ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxIGIKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlY2hlY2sgQ29uZDogKHRob3VzYW5kID0gaW50NF90YmwuZjEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSBpbnQ0X3Ri bC5mMSkKICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEg b24gdGVuazEgYQorICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gYi51bmlxdWUyKQogICAgICAgICAg LT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiB0ZW5rMSBj CisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKHRob3VzYW5kID0gYS50aG91c2FuZCkKLSgxNCByb3dzKQorKDE3IHJvd3MpCiAKIHNlbGVj dCBjb3VudCgqKSBmcm9tCiAgIHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9uIGEudW5pcXVlMSA9IGIu dW5pcXVlMgpAQCAtMzU4NCwyNCArMzYzMywyOCBAQCBzZWxlY3QgYi51bmlxdWUxIGZyb20KICAg am9pbiBpbnQ0X3RibCBpMSBvbiBiLnRob3VzYW5kID0gZjEKICAgcmlnaHQgam9pbiBpbnQ0X3Ri bCBpMiBvbiBpMi5mMSA9IGIudGVudGhvdXMKICAgb3JkZXIgYnkgMTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU29ydAogICAg U29ydCBLZXk6IGIudW5pcXVlMQogICAgLT4gIE5lc3RlZCBMb29wIExlZnQgSm9pbgogICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIGludDRfdGJsIGkyCi0gICAgICAgICAtPiAgTmVzdGVkIExvb3Ag TGVmdCBKb2luCi0gICAgICAgICAgICAgICBKb2luIEZpbHRlcjogKGIudW5pcXVlMSA9IDQyKQot ICAgICAgICAgICAgICAgLT4gIE5lc3RlZCBMb29wCisgICAgICAgICAtPiAgTmVzdGVkIExvb3AK KyAgICAgICAgICAgICAgIEpvaW4gRmlsdGVyOiAoYi50aG91c2FuZCA9IGkxLmYxKQorICAgICAg ICAgICAgICAgLT4gIE5lc3RlZCBMb29wIExlZnQgSm9pbgorICAgICAgICAgICAgICAgICAgICAg Sm9pbiBGaWx0ZXI6IChiLnVuaXF1ZTEgPSA0MikKICAgICAgICAgICAgICAgICAgICAgIC0+ICBO ZXN0ZWQgTG9vcAotICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGlu dDRfdGJsIGkxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiB0ZW5rMSBiCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gaTEuZjEpIEFORCAodGVudGhvdXMg PSBpMi5mMSkpCi0gICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5r MV91bmlxdWUxIG9uIHRlbmsxIGEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENv bmQ6ICh1bmlxdWUxID0gYi51bmlxdWUyKQotICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkg U2NhbiB1c2luZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiB0ZW5rMSBjCi0gICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAodGhvdXNhbmQgPSBhLnRob3VzYW5kKQotKDE1IHJvd3MpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRlbnRob3VzID0gaTIuZjEpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV91bmlx dWUxIG9uIHRlbmsxIGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5p cXVlMSA9IGIudW5pcXVlMikKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNj YW4gdXNpbmcgdGVuazFfdGhvdXNfdGVudGhvdXMgb24gdGVuazEgYworICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6ICh0aG91c2FuZCA9IGEudGhvdXNhbmQpCisgICAgICAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gaW50NF90YmwgaTEKKygxOSByb3dzKQogCiBzZWxlY3QgYi51bmlxdWUxIGZyb20K ICAgdGVuazEgYSBqb2luIHRlbmsxIGIgb24gYS51bmlxdWUxID0gYi51bmlxdWUyCkBAIC0zNjMy LDggKzM2ODUsOSBAQCBvcmRlciBieSBmYXVsdDsKICAgIEZpbHRlcjogKChDT0FMRVNDRSh0ZW5r MS51bmlxdWUxLCAnLTEnOjppbnRlZ2VyKSArIGludDhfdGJsLnExKSA9IDEyMikKICAgIC0+ICBT ZXEgU2NhbiBvbiBpbnQ4X3RibAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVl MiBvbiB0ZW5rMQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6 ICh1bmlxdWUyID0gaW50OF90YmwucTIpCi0oNSByb3dzKQorKDYgcm93cykKIAogc2VsZWN0ICog ZnJvbQogKApAQCAtMzY4Nyw4ICszNzQxLDkgQEAgc2VsZWN0IHExLCB1bmlxdWUyLCB0aG91c2Fu ZCwgaHVuZHJlZAogICAgRmlsdGVyOiAoKENPQUxFU0NFKGIudGhvdXNhbmQsIDEyMykgPSBhLnEx KSBBTkQgKGEucTEgPSBDT0FMRVNDRShiLmh1bmRyZWQsIDEyMykpKQogICAgLT4gIFNlcSBTY2Fu IG9uIGludDhfdGJsIGEKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTIgb24g dGVuazEgYgorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6ICh1 bmlxdWUyID0gYS5xMSkKLSg1IHJvd3MpCisoNiByb3dzKQogCiBzZWxlY3QgcTEsIHVuaXF1ZTIs IHRob3VzYW5kLCBodW5kcmVkCiAgIGZyb20gaW50OF90YmwgYSBsZWZ0IGpvaW4gdGVuazEgYiBv biBxMSA9IHVuaXF1ZTIKQEAgLTM3MDcsOCArMzc2Miw5IEBAIHNlbGVjdCBmMSwgdW5pcXVlMiwg Y2FzZSB3aGVuIHVuaXF1ZTIgaXMgbnVsbCB0aGVuIGYxIGVsc2UgMCBlbmQKICAgIEZpbHRlcjog KENBU0UgV0hFTiAoYi51bmlxdWUyIElTIE5VTEwpIFRIRU4gYS5mMSBFTFNFIDAgRU5EID0gMCkK ICAgIC0+ICBTZXEgU2NhbiBvbiBpbnQ0X3RibCBhCiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVz aW5nIHRlbmsxX3VuaXF1ZTIgb24gdGVuazEgYgorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAg ICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUyID0gYS5mMSkKLSg1IHJvd3MpCisoNiByb3dzKQog CiBzZWxlY3QgZjEsIHVuaXF1ZTIsIGNhc2Ugd2hlbiB1bmlxdWUyIGlzIG51bGwgdGhlbiBmMSBl bHNlIDAgZW5kCiAgIGZyb20gaW50NF90YmwgYSBsZWZ0IGpvaW4gdGVuazEgYiBvbiBmMSA9IHVu aXF1ZTIKQEAgLTM3MzEsMTQgKzM3ODcsMTcgQEAgc2VsZWN0IGEudW5pcXVlMSwgYi51bmlxdWUx LCBjLnVuaXF1ZTEsIGNvYWxlc2NlKGIudHdvdGhvdXNhbmQsIGEudHdvdGhvdXNhbmQpCiAgICAt PiAgTmVzdGVkIExvb3AgTGVmdCBKb2luCiAgICAgICAgICBGaWx0ZXI6IChDT0FMRVNDRShiLnR3 b3Rob3VzYW5kLCBhLnR3b3Rob3VzYW5kKSA9IDQ0KQogICAgICAgICAgLT4gIEluZGV4IFNjYW4g dXNpbmcgdGVuazFfdW5pcXVlMiBvbiB0ZW5rMSBhCisgICAgICAgICAgICAgICBTa2lwIHNjYW46 IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPCAxMCkKICAgICAgICAg IC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxIGIKICAgICAgICAgICAgICAgIFJlY2hlY2sg Q29uZDogKHRob3VzYW5kID0gYS51bmlxdWUxKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAgICBT a2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5k ID0gYS51bmlxdWUxKQogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMiBvbiB0 ZW5rMSBjCisgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKCh1 bmlxdWUyID0gQ09BTEVTQ0UoYi50d290aG91c2FuZCwgYS50d290aG91c2FuZCkpIEFORCAodW5p cXVlMiA9IDQ0KSkKLSgxMSByb3dzKQorKDE0IHJvd3MpCiAKIHNlbGVjdCBhLnVuaXF1ZTEsIGIu dW5pcXVlMSwgYy51bmlxdWUxLCBjb2FsZXNjZShiLnR3b3Rob3VzYW5kLCBhLnR3b3Rob3VzYW5k KQogICBmcm9tIHRlbmsxIGEgbGVmdCBqb2luIHRlbmsxIGIgb24gYi50aG91c2FuZCA9IGEudW5p cXVlMSAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgam9pbiB0ZW5rMSBjIG9uIGMudW5pcXVl MiA9IGNvYWxlc2NlKGIudHdvdGhvdXNhbmQsIGEudHdvdGhvdXNhbmQpCkBAIC0zNzc4LDggKzM4 MzcsOSBAQCB1c2luZyAoam9pbl9rZXkpOwogICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBp MS5mMQogICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlx dWUyIG9uIHB1YmxpYy50ZW5rMSBpMgogICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBpMi51 bmlxdWUyCisgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGkyLnVuaXF1ZTIgPSBpMS5mMSkKLSgxNCByb3dzKQorKDE1 IHJvd3MpCiAKIHNlbGVjdCBmb28xLmpvaW5fa2V5IGFzIGZvbzFfaWQsIGZvbzMuam9pbl9rZXkg QVMgZm9vM19pZCwgYnVnX2ZpZWxkIGZyb20KICAgKHZhbHVlcyAoMCksKDEpKSBmb28xKGpvaW5f a2V5KQpAQCAtNDI4MSw4ICs0MzQxLDkgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgLT4gIFNl cSBTY2FuIG9uIGludDRfdGJsIGEKICAgICAgICAgIEZpbHRlcjogKGYxID0gMCkKICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTIgb24gdGVuazEgYgorICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUyID0gMCkKLSg2IHJvd3MpCiso NyByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpCiAgIHNlbGVjdCAqIGZyb20gdGVuazEgYSBm dWxsIGpvaW4gdGVuazEgYiB1c2luZyh1bmlxdWUyKSB3aGVyZSB1bmlxdWUyID0gNDI7CkBAIC00 MjkxLDEwICs0MzUyLDEyIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKICBNZXJnZSBGdWxsIEpvaW4K ICAgIE1lcmdlIENvbmQ6IChhLnVuaXF1ZTIgPSBiLnVuaXF1ZTIpCiAgICAtPiAgSW5kZXggU2Nh biB1c2luZyB0ZW5rMV91bmlxdWUyIG9uIHRlbmsxIGEKKyAgICAgICAgIFNraXAgc2NhbjogQWxs CiAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IDQyKQogICAgLT4gIEluZGV4IFNjYW4g dXNpbmcgdGVuazFfdW5pcXVlMiBvbiB0ZW5rMSBiCisgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPSA0MikKLSg2IHJvd3MpCisoOCByb3dzKQog CiAtLQogLS0gdGVzdCB0aGF0IHF1YWxzIGF0dGFjaGVkIHRvIGFuIG91dGVyIGpvaW4gaGF2ZSBj b3JyZWN0IHNlbWFudGljcywKQEAgLTQ0MjQsMTAgKzQ0ODcsMTEgQEAgc2VsZWN0IGQuKiBmcm9t IGQgbGVmdCBqb2luIChzZWxlY3QgKiBmcm9tIGIgZ3JvdXAgYnkgYi5pZCwgYi5jX2lkKSBzCiAg ICAtPiAgR3JvdXAKICAgICAgICAgIEdyb3VwIEtleTogYi5pZAogICAgICAgICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgYl9wa2V5IG9uIGIKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAg ICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGQuYQogICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIGQKLSg4IHJvd3MpCisoOSByb3dzKQogCiAtLSBzaW1pbGFybHksIGJ1dCBrZXlpbmcgb2Zm IGEgRElTVElOQ1QgY2xhdXNlCiBleHBsYWluIChjb3N0cyBvZmYpCkBAIC00NTM5LDggKzQ2MDMs OSBAQCBzZWxlY3QgcC4qIGZyb20KICBSZXN1bHQKICAgIE9uZS1UaW1lIEZpbHRlcjogZmFsc2UK ICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHBhcmVudF9wa2V5IG9uIHBhcmVudCBwCisgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGsgPSAxKQotKDQgcm93cykK Kyg1IHJvd3MpCiAKIHNlbGVjdCBwLiogZnJvbQogICAocGFyZW50IHAgbGVmdCBqb2luIGNoaWxk IGMgb24gKHAuayA9IGMuaykpIGpvaW4gcGFyZW50IHggb24gcC5rID0geC5rCkBAIC00NjMyLDEx ICs0Njk3LDEyIEBAIHdoZXJlIHNzLnN0cmluZ3UyICF+KiBzcy5jYXNlMTsKICAgIC0+ICBOZXN0 ZWQgTG9vcAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGludDRfdGJsIGk0CiAgICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUyIG9uIHRlbmsxIHQxCisgICAgICAgICAg ICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIg PSBpNC5mMSkKICAgICAgICAgICAgICAgIEZpbHRlcjogKHN0cmluZ3UyICF+KiBDQVNFIHRlbiBX SEVOIDAgVEhFTiAnZG9oISc6OnRleHQgRUxTRSBOVUxMOjp0ZXh0IEVORCkKICAgIC0+ICBNYXRl cmlhbGl6ZQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHRleHRfdGJsIHQwCi0oOSByb3dzKQor KDEwIHJvd3MpCiAKIHNlbGVjdCB0MC4qCiBmcm9tCkBAIC00NzIzLDggKzQ3ODksOSBAQCBleHBs YWluIChjb3N0cyBvZmYpCiAgTmVzdGVkIExvb3AKICAgIC0+ICBTZXEgU2NhbiBvbiBpbnQ0X3Ri bCBiCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsxIGEKKyAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IGIu ZjEpCi0oNCByb3dzKQorKDUgcm93cykKIAogc2VsZWN0IHVuaXF1ZTIsIHguKgogZnJvbSBpbnQ0 X3RibCB4LCBsYXRlcmFsIChzZWxlY3QgdW5pcXVlMiBmcm9tIHRlbmsxIHdoZXJlIGYxID0gdW5p cXVlMSkgc3M7CkBAIC00NzQxLDggKzQ4MDgsOSBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAgTmVz dGVkIExvb3AKICAgIC0+ICBTZXEgU2NhbiBvbiBpbnQ0X3RibCB4CiAgICAtPiAgSW5kZXggU2Nh biB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsxCisgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTEgPSB4LmYxKQotKDQgcm93cykKKyg1IHJvd3Mp CiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKICAgc2VsZWN0IHVuaXF1ZTIsIHguKgpAQCAtNDc1Miw4 ICs0ODIwLDkgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogIE5lc3RlZCBMb29wCiAgICAtPiAgU2Vx IFNjYW4gb24gaW50NF90YmwgeAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVl MSBvbiB0ZW5rMQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6 ICh1bmlxdWUxID0geC5mMSkKLSg0IHJvd3MpCisoNSByb3dzKQogCiBzZWxlY3QgdW5pcXVlMiwg eC4qCiBmcm9tIGludDRfdGJsIHggbGVmdCBqb2luIGxhdGVyYWwgKHNlbGVjdCB1bmlxdWUxLCB1 bmlxdWUyIGZyb20gdGVuazEgd2hlcmUgZjEgPSB1bmlxdWUxKSBzcyBvbiB0cnVlOwpAQCAtNDc3 NCw4ICs0ODQzLDkgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogIE5lc3RlZCBMb29wIExlZnQgSm9p bgogICAgLT4gIFNlcSBTY2FuIG9uIGludDRfdGJsIHgKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5n IHRlbmsxX3VuaXF1ZTEgb24gdGVuazEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAg ICBJbmRleCBDb25kOiAodW5pcXVlMSA9IHguZjEpCi0oNCByb3dzKQorKDUgcm93cykKIAogLS0g Y2hlY2sgc2NvcGluZyBvZiBsYXRlcmFsIHZlcnN1cyBwYXJlbnQgcmVmZXJlbmNlcwogLS0gdGhl IGZpcnN0IG9mIHRoZXNlIHNob3VsZCByZXR1cm4gaW50OF90YmwucTIsIHRoZSBzZWNvbmQgaW50 OF90YmwucTEKQEAgLTQ4NzMsOCArNDk0MywxMCBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAgICAt PiAgTWVyZ2UgSm9pbgogICAgICAgICAgTWVyZ2UgQ29uZDogKGEudW5pcXVlMSA9IGIudW5pcXVl MikKICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0 ZW5rMSBhCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgLT4gIEluZGV4 IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUyIG9uIHRlbmsxIGIKLSg1IHJvd3MpCisgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAorKDcgcm93cykKIAogc2VsZWN0IGNvdW50KCopIGZy b20gdGVuazEgYSwKICAgdGVuazEgYiBqb2luIGxhdGVyYWwgKHZhbHVlcyhhLnVuaXF1ZTEpKSBz cyh4KSBvbiBiLnVuaXF1ZTIgPSBzcy54OwpAQCAtNDg5NCwxMCArNDk2NiwxMiBAQCBleHBsYWlu IChjb3N0cyBvZmYpCiAgICAgICAgICBIYXNoIENvbmQ6ICgiKlZBTFVFUyoiLmNvbHVtbjEgPSBi LnVuaXF1ZTIpCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgICAgICAgIC0+ICBJ bmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0ZW5rMSBhCisgICAgICAgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgLT4gIFZhbHVlcyBTY2Fu IG9uICIqVkFMVUVTKiIKICAgICAgICAgIC0+ICBIYXNoCiAgICAgICAgICAgICAgICAtPiAgSW5k ZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTIgb24gdGVuazEgYgotKDggcm93cykKKyAg ICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCisoMTAgcm93cykKIAogc2VsZWN0IGNv dW50KCopIGZyb20gdGVuazEgYSwKICAgdGVuazEgYiBqb2luIGxhdGVyYWwgKHZhbHVlcyhhLnVu aXF1ZTEpLCgtMSkpIHNzKHgpIG9uIGIudW5pcXVlMiA9IHNzLng7CkBAIC01NjM4LDggKzU3MTIs OSBAQCBzZWxlY3QgKiBmcm9tCiAgICAgICAgICAgICAgICBPdXRwdXQ6IHRlbmsxLnVuaXF1ZTEK ICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTIgb24gcHVi bGljLnRlbmsxCiAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHRlbmsxLnVuaXF1ZTEKKyAg ICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAodGVuazEudW5pcXVlMiA9ICIqVkFMVUVTKiIuY29sdW1uMikKLSgxNCByb3dz KQorKDE1IHJvd3MpCiAKIHNlbGVjdCAqIGZyb20KICAgKHZhbHVlcyAoMCw5OTk4KSwgKDEsMTAw MCkpIHYoaWQseCksCkBAIC01ODY3LDE0ICs1OTQyLDE4IEBAIHdoZXJlIGYuYyA9IDE7CiAgICAt PiAgTmVzdGVkIExvb3AgTGVmdCBKb2luCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AgTGVmdCBK b2luCiAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBma2VzdF9jX2tleSBvbiBm a2VzdCBmCisgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGMgPSAxKQogICAgICAgICAgICAgICAgLT4gIEluZGV4IE9u bHkgU2NhbiB1c2luZyBma2VzdDFfcGtleSBvbiBma2VzdDEgZjEKKyAgICAgICAgICAgICAgICAg ICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKGEg PSBmLmEpIEFORCAoYiA9IGYuYikpCiAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5n IGZrZXN0MV9wa2V5IG9uIGZrZXN0MSBmMgorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwK ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgoYSA9IGYuYSkgQU5EIChiID0gZi5iKSkKICAg IC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgZmtlc3QxX3BrZXkgb24gZmtlc3QxIGYzCisgICAg ICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKChhID0gZi5hKSBBTkQg KGIgPSBmLmIpKQotKDExIHJvd3MpCisoMTUgcm93cykKIAogcm9sbGJhY2s7CiAtLQpAQCAtNjE2 NCw4ICs2MjQzLDEwIEBAIHdoZXJlIGoxLmlkMSAlIDEwMDAgPSAxIGFuZCBqMi5pZDEgJSAxMDAw ID0gMTsKICAgIE1lcmdlIENvbmQ6IChqMS5pZDEgPSBqMi5pZDEpCiAgICBKb2luIEZpbHRlcjog KGoxLmlkMiA9IGoyLmlkMikKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGoxX2lkMV9pZHggb24g ajEKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBqMl9p ZDFfaWR4IG9uIGoyCi0oNSByb3dzKQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKyg3IHJvd3Mp CiAKIHNlbGVjdCAqIGZyb20gajEKIGlubmVyIGpvaW4gajIgb24gajEuaWQxID0gajIuaWQxIGFu ZCBqMS5pZDIgPSBqMi5pZDIKQEAgLTYyMDEsMTUgKzYyODIsMTggQEAgd2hlcmUgZXhpc3RzIChz ZWxlY3QgMSBmcm9tIHRlbmsxIHQzCiAgICAgICAgICAgICAgICBHcm91cCBLZXk6IHQzLnRob3Vz YW5kLCB0My50ZW50aG91cwogICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2lu ZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiBwdWJsaWMudGVuazEgdDMKICAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogdDMudGhvdXNhbmQsIHQzLnRlbnRob3VzCisgICAgICAgICAgICAgICAg ICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgLT4gIEhhc2gKICAgICAgICAgICAgICAgIE91 dHB1dDogdDEudW5pcXVlMQogICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2lu ZyBvbmVrX3VuaXF1ZTEgb24gcHVibGljLm9uZWsgdDEKICAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogdDEudW5pcXVlMQorICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAg ICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0MS51bmlxdWUxIDwgMSkKICAgIC0+ICBJ bmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfaHVuZHJlZCBvbiBwdWJsaWMudGVuazEgdDIKICAg ICAgICAgIE91dHB1dDogdDIuaHVuZHJlZAorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAg ICAgIEluZGV4IENvbmQ6ICh0Mi5odW5kcmVkID0gdDMudGVudGhvdXMpCi0oMTggcm93cykKKygy MSByb3dzKQogCiAtLSAuLi4gdW5sZXNzIGl0IGFjdHVhbGx5IGlzIHVuaXF1ZQogY3JlYXRlIHRh YmxlIGozIGFzIHNlbGVjdCB1bmlxdWUxLCB0ZW50aG91cyBmcm9tIG9uZWs7CkBAIC02MjI5LDEz ICs2MzEzLDE2IEBAIHdoZXJlIGV4aXN0cyAoc2VsZWN0IDEgZnJvbSBqMwogICAgICAgICAgT3V0 cHV0OiB0MS51bmlxdWUxLCBqMy50ZW50aG91cwogICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2Nh biB1c2luZyBvbmVrX3VuaXF1ZTEgb24gcHVibGljLm9uZWsgdDEKICAgICAgICAgICAgICAgIE91 dHB1dDogdDEudW5pcXVlMQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6ICh0MS51bmlxdWUxIDwgMSkKICAgICAgICAgIC0+ICBJbmRleCBP bmx5IFNjYW4gdXNpbmcgajNfdW5pcXVlMV90ZW50aG91c19pZHggb24gcHVibGljLmozCiAgICAg ICAgICAgICAgICBPdXRwdXQ6IGozLnVuaXF1ZTEsIGozLnRlbnRob3VzCisgICAgICAgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGozLnVuaXF1ZTEg PSB0MS51bmlxdWUxKQogICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV9odW5kcmVk IG9uIHB1YmxpYy50ZW5rMSB0MgogICAgICAgICAgT3V0cHV0OiB0Mi5odW5kcmVkCisgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKHQyLmh1bmRyZWQgPSBqMy50 ZW50aG91cykKLSgxMyByb3dzKQorKDE2IHJvd3MpCiAKIGRyb3AgdGFibGUgajM7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2xpbWl0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvbGltaXQub3V0CmluZGV4IGMxOGY1NDdjYmQuLjNlNzA4NWIzNzkgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbGltaXQub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbGltaXQub3V0CkBAIC0zMjIsNyArMzIyLDggQEAgc2VsZWN0IHVu aXF1ZTEsIHVuaXF1ZTIsIG5leHR2YWwoJ3Rlc3RzZXEnKQogICAgT3V0cHV0OiB1bmlxdWUxLCB1 bmlxdWUyLCAobmV4dHZhbCgndGVzdHNlcSc6OnJlZ2NsYXNzKSkKICAgIC0+ICBJbmRleCBTY2Fu IHVzaW5nIHRlbmsxX3VuaXF1ZTIgb24gcHVibGljLnRlbmsxCiAgICAgICAgICBPdXRwdXQ6IHVu aXF1ZTEsIHVuaXF1ZTIsIG5leHR2YWwoJ3Rlc3RzZXEnOjpyZWdjbGFzcykKLSg0IHJvd3MpCisg ICAgICAgICBTa2lwIHNjYW46IEFsbAorKDUgcm93cykKIAogc2VsZWN0IHVuaXF1ZTEsIHVuaXF1 ZTIsIG5leHR2YWwoJ3Rlc3RzZXEnKQogICBmcm9tIHRlbmsxIG9yZGVyIGJ5IHVuaXF1ZTIgbGlt aXQgMTA7CkBAIC0zOTUsNyArMzk2LDggQEAgc2VsZWN0IHVuaXF1ZTEsIHVuaXF1ZTIsIGdlbmVy YXRlX3NlcmllcygxLDEwKQogICAgICAgICAgT3V0cHV0OiB1bmlxdWUxLCB1bmlxdWUyLCBnZW5l cmF0ZV9zZXJpZXMoMSwgMTApCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV91 bmlxdWUyIG9uIHB1YmxpYy50ZW5rMQogICAgICAgICAgICAgICAgT3V0cHV0OiB1bmlxdWUxLCB1 bmlxdWUyLCB0d28sIGZvdXIsIHRlbiwgdHdlbnR5LCBodW5kcmVkLCB0aG91c2FuZCwgdHdvdGhv dXNhbmQsIGZpdmV0aG91cywgdGVudGhvdXMsIG9kZCwgZXZlbiwgc3RyaW5ndTEsIHN0cmluZ3Uy LCBzdHJpbmc0Ci0oNiByb3dzKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKyg3IHJv d3MpCiAKIHNlbGVjdCB1bmlxdWUxLCB1bmlxdWUyLCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkKICAg ZnJvbSB0ZW5rMSBvcmRlciBieSB1bmlxdWUyIGxpbWl0IDc7CkBAIC00OTIsNyArNDk0LDggQEAg c2VsZWN0IHN1bSh0ZW50aG91cykgYXMgczEsIHN1bSh0ZW50aG91cykgKyByYW5kb20oKSowIGFz IHMyCiAgICAgICAgICBHcm91cCBLZXk6IHRlbmsxLnRob3VzYW5kCiAgICAgICAgICAtPiAgSW5k ZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3VzIG9uIHB1YmxpYy50ZW5rMQog ICAgICAgICAgICAgICAgT3V0cHV0OiB0aG91c2FuZCwgdGVudGhvdXMKLSg3IHJvd3MpCisgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAorKDggcm93cykKIAogc2VsZWN0IHN1bSh0ZW50aG91 cykgYXMgczEsIHN1bSh0ZW50aG91cykgKyByYW5kb20oKSowIGFzIHMyCiAgIGZyb20gdGVuazEg Z3JvdXAgYnkgdGhvdXNhbmQgb3JkZXIgYnkgdGhvdXNhbmQgbGltaXQgMzsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0aW9ucy5vdXQKaW5kZXggZDNhY2I5OGQwNC4uZWU2 YmNjNGIxYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0 aW9ucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0aW9ucy5v dXQKQEAgLTIzMiw4ICsyMzIsOSBAQCBXSEVSRSBteV9pbnRfZXEoYS51bmlxdWUyLCA0Mik7CiAg ICAtPiAgU2VxIFNjYW4gb24gdGVuazEgYQogICAgICAgICAgRmlsdGVyOiBteV9pbnRfZXEodW5p cXVlMiwgNDIpCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsx IGIKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVl MSA9IGEudW5pcXVlMSkKLSg1IHJvd3MpCisoNiByb3dzKQogCiAtLSBBbHNvIHRlc3Qgbm9uLWRl ZmF1bHQgcm93Y291bnQgZXN0aW1hdGUKIENSRUFURSBGVU5DVElPTiBteV9nZW5fc2VyaWVzKGlu dCwgaW50KSBSRVRVUk5TIFNFVE9GIGludGVnZXIKQEAgLTI1OCw2ICsyNTksNyBAQCBTRUxFQ1Qg KiBGUk9NIHRlbmsxIGEgSk9JTiBteV9nZW5fc2VyaWVzKDEsMTApIGcgT04gYS51bmlxdWUxID0g ZzsKICBOZXN0ZWQgTG9vcAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gbXlfZ2VuX3NlcmllcyBn CiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsxIGEKKyAgICAg ICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IGcuZykK LSg0IHJvd3MpCisoNSByb3dzKQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BhcnRpdGlvbl9qb2luLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0 aW9uX2pvaW4ub3V0CmluZGV4IGIzZmJlNDdiZGUuLmExYTUyMjEyYTcgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX2pvaW4ub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX2pvaW4ub3V0CkBAIC0xMjYsOCArMTI2LDkgQEAg U0VMRUNUIHQxLmEsIHQxLmMsIHQyLmIsIHQyLmMgRlJPTSBwcnQxIHQxIFJJR0hUIEpPSU4gcHJ0 MiB0MiBPTiB0MS5hID0gdDIuYiBXSEUKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBw cnQyX3AzIHQyXzMKICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGEgPSAwKQogICAgICAg ICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgaXBydDFfcDNfYSBvbiBwcnQxX3AzIHQxXzMK KyAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAoYSA9IHQyXzMuYikKLSgyMCByb3dzKQorKDIxIHJvd3MpCiAKIFNFTEVD VCB0MS5hLCB0MS5jLCB0Mi5iLCB0Mi5jIEZST00gcHJ0MSB0MSBSSUdIVCBKT0lOIHBydDIgdDIg T04gdDEuYSA9IHQyLmIgV0hFUkUgdDIuYSA9IDAgT1JERVIgQlkgdDEuYSwgdDIuYjsKICAgYSAg fCAgYyAgIHwgIGIgIHwgIGMgICAKQEAgLTM2NiwyNiArMzY3LDMyIEBAIFNFTEVDVCAqIEZST00g cHJ0MSB0MSBMRUZUIEpPSU4gTEFURVJBTAogICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAo YiA9IDApCiAgICAgICAgICAgICAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgICAgICAgICAg ICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgaXBydDFfcDFfYSBvbiBwcnQxX3AxIHQyXzEK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IHQxXzEuYSkKICAgICAgICAgICAgICAgICAg ICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGlwcnQyX3AxX2Igb24gcHJ0Ml9wMSB0M18xCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGIgPSB0Ml8xLmEpCiAgICAgICAgICAtPiAgTmVzdGVkIExv b3AgTGVmdCBKb2luCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0MV9wMiB0MV8y CiAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChiID0gMCkKICAgICAgICAgICAgICAgIC0+ ICBOZXN0ZWQgTG9vcAogICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1 c2luZyBpcHJ0MV9wMl9hIG9uIHBydDFfcDIgdDJfMgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 IChhID0gdDFfMi5hKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcg aXBydDJfcDJfYiBvbiBwcnQyX3AyIHQzXzIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNr aXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9 IHQyXzIuYSkKICAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcCBMZWZ0IEpvaW4KICAgICAgICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBwcnQxX3AzIHQxXzMKICAgICAgICAgICAgICAgICAgICAgIEZp bHRlcjogKGIgPSAwKQogICAgICAgICAgICAgICAgLT4gIE5lc3RlZCBMb29wCiAgICAgICAgICAg ICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIGlwcnQxX3AzX2Egb24gcHJ0MV9w MyB0Ml8zCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSB0MV8zLmEpCiAgICAgICAgICAg ICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBpcHJ0Ml9wM19iIG9uIHBydDJfcDMgdDNf MworICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gdDJfMy5hKQotKDI3IHJvd3MpCisoMzMg cm93cykKIAogU0VMRUNUICogRlJPTSBwcnQxIHQxIExFRlQgSk9JTiBMQVRFUkFMCiAJCQkgIChT RUxFQ1QgdDIuYSBBUyB0MmEsIHQzLmEgQVMgdDNhLCBsZWFzdCh0MS5hLHQyLmEsdDMuYikgRlJP TSBwcnQxIHQyIEpPSU4gcHJ0MiB0MyBPTiAodDIuYSA9IHQzLmIpKSBzcwpAQCAtNjA5LDYgKzYx Niw3IEBAIFNFTEVDVCB0MS5hLCB0MS5jLCB0Mi5iLCB0Mi5jLCB0My5hICsgdDMuYiwgdDMuYyBG Uk9NIHBydDEgdDEsIHBydDIgdDIsIHBydDFfZSB0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcHJ0MV9wMSB0MV8xCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGaWx0ZXI6IChiID0gMCkKICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIGlwcnQxX2VfcDFfYWIyIG9uIHBydDFfZV9wMSB0M18xCisgICAgICAgICAgICAgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCgoYSAr IGIpIC8gMikgPSB0Ml8xLmIpCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgICAg ICAgIEpvaW4gRmlsdGVyOiAodDFfMi5hID0gKCh0M18yLmEgKyB0M18yLmIpIC8gMikpCkBAIC02 MTksNiArNjI3LDcgQEAgU0VMRUNUIHQxLmEsIHQxLmMsIHQyLmIsIHQyLmMsIHQzLmEgKyB0My5i LCB0My5jIEZST00gcHJ0MSB0MSwgcHJ0MiB0MiwgcHJ0MV9lIHQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcnQxX3AyIHQxXzIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZpbHRlcjogKGIgPSAwKQogICAgICAgICAgICAgICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgaXBydDFfZV9wMl9hYjIgb24gcHJ0MV9lX3AyIHQzXzIKKyAgICAgICAgICAg ICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoKChhICsgYikgLyAyKSA9IHQyXzIuYikKICAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcAogICAg ICAgICAgICAgICAgSm9pbiBGaWx0ZXI6ICh0MV8zLmEgPSAoKHQzXzMuYSArIHQzXzMuYikgLyAy KSkKQEAgLTYyOSw4ICs2MzgsOSBAQCBTRUxFQ1QgdDEuYSwgdDEuYywgdDIuYiwgdDIuYywgdDMu YSArIHQzLmIsIHQzLmMgRlJPTSBwcnQxIHQxLCBwcnQyIHQyLCBwcnQxX2UgdAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHBydDFfcDMgdDFfMwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoYiA9IDApCiAgICAgICAgICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyBpcHJ0MV9lX3AzX2FiMiBvbiBwcnQxX2VfcDMgdDNfMworICAg ICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6ICgoKGEgKyBiKSAvIDIpID0gdDJfMy5iKQotKDMzIHJvd3MpCisoMzYgcm93cykK IAogU0VMRUNUIHQxLmEsIHQxLmMsIHQyLmIsIHQyLmMsIHQzLmEgKyB0My5iLCB0My5jIEZST00g cHJ0MSB0MSwgcHJ0MiB0MiwgcHJ0MV9lIHQzIFdIRVJFIHQxLmEgPSB0Mi5iIEFORCB0MS5hID0g KHQzLmEgKyB0My5iKS8yIEFORCB0MS5iID0gMCBPUkRFUiBCWSB0MS5hLCB0Mi5iOwogICBhICB8 ICBjICAgfCAgYiAgfCAgYyAgIHwgP2NvbHVtbj8gfCBjIApAQCAtNzEyLDYgKzcyMiw3IEBAIFNF TEVDVCB0MS5hLCB0MS5jLCB0Mi5iLCB0Mi5jLCB0My5hICsgdDMuYiwgdDMuYyBGUk9NIChwcnQx IHQxIExFRlQgSk9JTiBwcnQyIHQyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcHJ0MV9lX3AxIHQzXzEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZpbHRlcjogKGMgPSAwKQogICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgaXBy dDJfcDFfYiBvbiBwcnQyX3AxIHQyXzEKKyAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nhbjog QWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IHQxXzEuYSkKICAgICAg ICAgIC0+ICBOZXN0ZWQgTG9vcCBMZWZ0IEpvaW4KICAgICAgICAgICAgICAgIC0+ICBIYXNoIFJp Z2h0IEpvaW4KQEAgLTcyMSw2ICs3MzIsNyBAQCBTRUxFQ1QgdDEuYSwgdDEuYywgdDIuYiwgdDIu YywgdDMuYSArIHQzLmIsIHQzLmMgRlJPTSAocHJ0MSB0MSBMRUZUIEpPSU4gcHJ0MiB0MgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHBydDFfZV9wMiB0M18yCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChjID0gMCkKICAgICAgICAg ICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGlwcnQyX3AyX2Igb24gcHJ0Ml9wMiB0Ml8yCisg ICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGIgPSB0MV8yLmEpCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AgTGVmdCBK b2luCiAgICAgICAgICAgICAgICAtPiAgSGFzaCBSaWdodCBKb2luCkBAIC03MzAsOCArNzQyLDkg QEAgU0VMRUNUIHQxLmEsIHQxLmMsIHQyLmIsIHQyLmMsIHQzLmEgKyB0My5iLCB0My5jIEZST00g KHBydDEgdDEgTEVGVCBKT0lOIHBydDIgdDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwcnQxX2VfcDMgdDNfMwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmlsdGVyOiAoYyA9IDApCiAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBpcHJ0Ml9wM19iIG9uIHBydDJfcDMgdDJfMworICAgICAgICAgICAgICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gdDFfMy5hKQot KDMwIHJvd3MpCisoMzMgcm93cykKIAogU0VMRUNUIHQxLmEsIHQxLmMsIHQyLmIsIHQyLmMsIHQz LmEgKyB0My5iLCB0My5jIEZST00gKHBydDEgdDEgTEVGVCBKT0lOIHBydDIgdDIgT04gdDEuYSA9 IHQyLmIpIFJJR0hUIEpPSU4gcHJ0MV9lIHQzIE9OICh0MS5hID0gKHQzLmEgKyB0My5iKS8yKSBX SEVSRSB0My5jID0gMCBPUkRFUiBCWSB0MS5hLCB0Mi5iLCB0My5hICsgdDMuYjsKICAgYSAgfCAg YyAgIHwgIGIgIHwgIGMgICB8ID9jb2x1bW4/IHwgYyAKQEAgLTgyNiw2ICs4MzksNyBAQCBTRUxF Q1QgdDEuKiBGUk9NIHBydDEgdDEgV0hFUkUgdDEuYSBJTiAoU0VMRUNUIHQxLmIgRlJPTSBwcnQy IHQxLCBwcnQxX2UgdDIgV0hFUgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHBydDJfcDEgdDFfNQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRmlsdGVyOiAoYSA9IDApCiAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1 c2luZyBpcHJ0MV9wMV9hIG9uIHBydDFfcDEgdDFfMgorICAgICAgICAgICAgICAgICAgICAgU2tp cCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gKCh0Ml8x LmEgKyB0Ml8xLmIpIC8gMikpCiAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChiID0gMCkK ICAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcApAQCAtODM5LDYgKzg1Myw3IEBAIFNFTEVDVCB0MS4q IEZST00gcHJ0MSB0MSBXSEVSRSB0MS5hIElOIChTRUxFQ1QgdDEuYiBGUk9NIHBydDIgdDEsIHBy dDFfZSB0MiBXSEVSCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcHJ0Ml9wMiB0MV82CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGaWx0ZXI6IChhID0gMCkKICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGlw cnQxX3AyX2Egb24gcHJ0MV9wMiB0MV8zCisgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46 IEFsbAogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAoKHQyXzIuYSArIHQy XzIuYikgLyAyKSkKICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGIgPSAwKQogICAgICAg ICAgLT4gIE5lc3RlZCBMb29wCkBAIC04NDksMTEgKzg2NCwxMyBAQCBTRUxFQ1QgdDEuKiBGUk9N IHBydDEgdDEgV0hFUkUgdDEuYSBJTiAoU0VMRUNUIHQxLmIgRlJPTSBwcnQyIHQxLCBwcnQxX2Ug dDIgV0hFUgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHBydDJf cDMgdDFfNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoYSA9IDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBpcHJ0MV9l X3AzX2FiMiBvbiBwcnQxX2VfcDMgdDJfMworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6ICgoKGEgKyBiKSAvIDIpID0gdDFfNy5iKQogICAgICAgICAgICAgICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgaXBydDFfcDNfYSBvbiBwcnQxX3AzIHQxXzQKKyAgICAgICAgICAgICAgICAg ICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9 ICgodDJfMy5hICsgdDJfMy5iKSAvIDIpKQogICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAo YiA9IDApCi0oNDEgcm93cykKKyg0NSByb3dzKQogCiBTRUxFQ1QgdDEuKiBGUk9NIHBydDEgdDEg V0hFUkUgdDEuYSBJTiAoU0VMRUNUIHQxLmIgRlJPTSBwcnQyIHQxLCBwcnQxX2UgdDIgV0hFUkUg dDEuYSA9IDAgQU5EIHQxLmIgPSAodDIuYSArIHQyLmIpLzIpIEFORCB0MS5iID0gMCBPUkRFUiBC WSB0MS5hOwogICBhICB8IGIgfCAgYyAgIApAQCAtODgxLDYgKzg5OCw3IEBAIFNFTEVDVCB0MS4q IEZST00gcHJ0MSB0MSBXSEVSRSB0MS5hIElOIChTRUxFQ1QgdDEuYiBGUk9NIHBydDIgdDEgV0hF UkUgdDEuYiBJTiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcHJ0MV9lX3AxIHQxXzkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZpbHRlcjogKGMgPSAwKQogICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcg aXBydDFfcDFfYSBvbiBwcnQxX3AxIHQxXzMKKyAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IHQxXzYuYikKICAg ICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGIgPSAwKQogICAgICAgICAgLT4gIE5lc3RlZCBM b29wCkBAIC04OTMsNiArOTExLDcgQEAgU0VMRUNUIHQxLiogRlJPTSBwcnQxIHQxIFdIRVJFIHQx LmEgSU4gKFNFTEVDVCB0MS5iIEZST00gcHJ0MiB0MSBXSEVSRSB0MS5iIElOICgKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcnQxX2VfcDIgdDFfMTAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGMgPSAwKQog ICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgaXBydDFfcDJfYSBvbiBwcnQxX3Ay IHQxXzQKKyAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYSA9IHQxXzcuYikKICAgICAgICAgICAgICAgICAgICAgIEZp bHRlcjogKGIgPSAwKQogICAgICAgICAgLT4gIE5lc3RlZCBMb29wCkBAIC05MDUsOSArOTI0LDEw IEBAIFNFTEVDVCB0MS4qIEZST00gcHJ0MSB0MSBXSEVSRSB0MS5hIElOIChTRUxFQ1QgdDEuYiBG Uk9NIHBydDIgdDEgV0hFUkUgdDEuYiBJTiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0MV9lX3AzIHQxXzExCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChjID0gMCkKICAgICAgICAgICAgICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIGlwcnQxX3AzX2Egb24gcHJ0MV9wMyB0MV81CisgICAgICAgICAgICAg ICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSB0MV84LmIpCiAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChiID0gMCkKLSgzOSBy b3dzKQorKDQyIHJvd3MpCiAKIFNFTEVDVCB0MS4qIEZST00gcHJ0MSB0MSBXSEVSRSB0MS5hIElO IChTRUxFQ1QgdDEuYiBGUk9NIHBydDIgdDEgV0hFUkUgdDEuYiBJTiAoU0VMRUNUICh0MS5hICsg dDEuYikvMiBGUk9NIHBydDFfZSB0MSBXSEVSRSB0MS5jID0gMCkpIEFORCB0MS5iID0gMCBPUkRF UiBCWSB0MS5hOwogICBhICB8IGIgfCAgYyAgIApAQCAtMTkzMywxMiArMTk1MywxNSBAQCBTRUxF Q1QgdDEuYSwgdDEuYywgdDIuYiwgdDIuYyBGUk9NIHBydDEgdDEgTEVGVCBKT0lOIHBydDIgdDIg T04gKHQxLmEgPCB0Mi5iKTsKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcnQxX3AzIHQxXzMK ICAgIC0+ICBBcHBlbmQKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGlwcnQyX3AxX2Ig b24gcHJ0Ml9wMSB0Ml8xCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGIgPiB0MS5hKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNp bmcgaXBydDJfcDJfYiBvbiBwcnQyX3AyIHQyXzIKKyAgICAgICAgICAgICAgIFNraXAgc2Nhbjog QWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+IHQxLmEpCiAgICAgICAgICAtPiAg SW5kZXggU2NhbiB1c2luZyBpcHJ0Ml9wM19iIG9uIHBydDJfcDMgdDJfMworICAgICAgICAgICAg ICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID4gdDEuYSkK LSgxMiByb3dzKQorKDE1IHJvd3MpCiAKIC0tIGVxdWktam9pbiB3aXRoIGpvaW4gY29uZGl0aW9u IG9uIHBhcnRpYWwga2V5cyBkb2VzIG5vdCBxdWFsaWZ5IGZvcgogLS0gcGFydGl0aW9ud2lzZSBq b2luCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVu ZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQKaW5k ZXggOWM4ZjgwZGE4Ny4uODcwOGE1NGFkYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcGFydGl0aW9uX3BydW5lLm91dApAQCAtMjA3MCwyNCArMjA3MCwzMyBAQCBzZWxlY3QgZXhw bGFpbl9wYXJhbGxlbF9hcHBlbmQoJ3NlbGVjdCBhdmcoYWIuYSkgZnJvbSBhYiBpbm5lciBqb2lu IGxwcnRfYSBhIG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChhID0gQU5Z ICgnezAsMCwxfSc6OmludGVnZXJbXSkpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQXBwZW5k IChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAg SW5kZXggU2NhbiB1c2luZyBhYl9hMV9iMV9hX2lkeCBvbiBhYl9hMV9iMSBhYl8xIChhY3R1YWwg cm93cz1OIGxvb3BzPU4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNj YW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEg PSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBh Yl9hMV9iMl9hX2lkeCBvbiBhYl9hMV9iMiBhYl8yIChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hMV9iM19hX2lkeCBvbiBh Yl9hMV9iMyBhYl8zIChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyBhYl9hMl9iMV9hX2lkeCBvbiBhYl9hMl9iMSBhYl80IChuZXZl ciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nhbjog QWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IGEu YSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGFiX2Ey X2IyX2FfaWR4IG9uIGFiX2EyX2IyIGFiXzUgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gYS5hKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYWJfYTJfYjNfYV9pZHggb24gYWJfYTJfYjMgYWJf NiAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBhYl9hM19iMV9hX2lkeCBvbiBhYl9hM19iMSBhYl83IChuZXZlciBleGVjdXRlZCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IGEuYSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGFiX2EzX2IyX2FfaWR4IG9uIGFiX2Ez X2IyIGFiXzggKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6IChhID0gYS5hKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNj YW4gdXNpbmcgYWJfYTNfYjNfYV9pZHggb24gYWJfYTNfYjMgYWJfOSAobmV2ZXIgZXhlY3V0ZWQp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCi0oMjcgcm93 cykKKygzNiByb3dzKQogCiAtLSBFbnN1cmUgdGhlIHNhbWUgcGFydGl0aW9ucyBhcmUgcHJ1bmVk IHdoZW4gd2UgbWFrZSB0aGUgbmVzdGVkIGxvb3AKIC0tIHBhcmFtZXRlciBhbiBFeHByIHJhdGhl ciB0aGFuIGEgcGxhaW4gUGFyYW0uCkBAIC0yMTA0LDI0ICsyMTEzLDMzIEBAIHNlbGVjdCBleHBs YWluX3BhcmFsbGVsX2FwcGVuZCgnc2VsZWN0IGF2ZyhhYi5hKSBmcm9tIGFiIGlubmVyIGpvaW4g bHBydF9hIGEgb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGEgPSBBTlkg KCd7MCwwLDF9Jzo6aW50ZWdlcltdKSkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBBcHBlbmQg KGFjdHVhbCByb3dzPU4gbG9vcHM9TikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIGFiX2ExX2IxX2FfaWR4IG9uIGFiX2ExX2IxIGFiXzEgKGFjdHVhbCBy b3dzPU4gbG9vcHM9TikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9 IChhLmEgKyAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIGFiX2ExX2IyX2FfaWR4IG9uIGFiX2ExX2IyIGFiXzIgKGFjdHVhbCByb3dzPU4gbG9vcHM9 TikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IChhLmEgKyAwKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGFiX2ExX2Iz X2FfaWR4IG9uIGFiX2ExX2IzIGFiXzMgKGFjdHVhbCByb3dzPU4gbG9vcHM9TikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IChhLmEgKyAwKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGFiX2EyX2IxX2FfaWR4IG9uIGFi X2EyX2IxIGFiXzQgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChhID0gKGEuYSArIDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgYWJfYTJfYjJfYV9pZHggb24gYWJfYTJfYjIgYWJfNSAobmV2ZXIg ZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFs bAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAoYS5h ICsgMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBh Yl9hMl9iM19hX2lkeCBvbiBhYl9hMl9iMyBhYl82IChuZXZlciBleGVjdXRlZCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IChhLmEgKyAwKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGFiX2EzX2IxX2FfaWR4IG9uIGFi X2EzX2IxIGFiXzcgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChhID0gKGEuYSArIDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgYWJfYTNfYjJfYV9pZHggb24gYWJfYTNfYjIgYWJfOCAobmV2ZXIg ZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFs bAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAoYS5h ICsgMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBh Yl9hM19iM19hX2lkeCBvbiBhYl9hM19iMyBhYl85IChuZXZlciBleGVjdXRlZCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IChhLmEgKyAwKSkKLSgyNyByb3dzKQor KDM2IHJvd3MpCiAKIGluc2VydCBpbnRvIGxwcnRfYSB2YWx1ZXMoMyksKDMpOwogc2VsZWN0IGV4 cGxhaW5fcGFyYWxsZWxfYXBwZW5kKCdzZWxlY3QgYXZnKGFiLmEpIGZyb20gYWIgaW5uZXIgam9p biBscHJ0X2EgYSBvbiBhYi5hID0gYS5hIHdoZXJlIGEuYSBpbigxLCAwLCAzKScpOwpAQCAtMjEz NywyNCArMjE1NSwzMyBAQCBzZWxlY3QgZXhwbGFpbl9wYXJhbGxlbF9hcHBlbmQoJ3NlbGVjdCBh dmcoYWIuYSkgZnJvbSBhYiBpbm5lciBqb2luIGxwcnRfYSBhIG9uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGaWx0ZXI6IChhID0gQU5ZICgnezEsMCwzfSc6OmludGVnZXJbXSkpCiAgICAg ICAgICAgICAgICAgICAgICAtPiAgQXBwZW5kIChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hMV9iMV9hX2lk eCBvbiBhYl9hMV9iMSBhYl8xIChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hMV9iMl9hX2lkeCBvbiBhYl9hMV9iMiBhYl8y IChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2Nh biB1c2luZyBhYl9hMV9iM19hX2lkeCBvbiBhYl9hMV9iMyBhYl8zIChhY3R1YWwgcm93cz1OIGxv b3BzPU4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hMl9iMV9h X2lkeCBvbiBhYl9hMl9iMSBhYl80IChuZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYSA9IGEuYSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0+ICBJbmRleCBTY2FuIHVzaW5nIGFiX2EyX2IyX2FfaWR4IG9uIGFiX2EyX2IyIGFiXzUgKG5l dmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0g YS5hKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYWJf YTJfYjNfYV9pZHggb24gYWJfYTJfYjMgYWJfNiAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hM19iMV9hX2lkeCBvbiBhYl9hM19iMSBh Yl83IChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXgg U2NhbiB1c2luZyBhYl9hM19iMl9hX2lkeCBvbiBhYl9hM19iMiBhYl84IChhY3R1YWwgcm93cz1O IGxvb3BzPU4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFs bAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hM19i M19hX2lkeCBvbiBhYl9hM19iMyBhYl85IChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCi0oMjcgcm93cykKKygzNiBy b3dzKQogCiBzZWxlY3QgZXhwbGFpbl9wYXJhbGxlbF9hcHBlbmQoJ3NlbGVjdCBhdmcoYWIuYSkg ZnJvbSBhYiBpbm5lciBqb2luIGxwcnRfYSBhIG9uIGFiLmEgPSBhLmEgd2hlcmUgYS5hIGluKDEs IDAsIDApJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFp bl9wYXJhbGxlbF9hcHBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IApAQCAtMjE3MCwyNCArMjE5NywzMyBAQCBzZWxlY3QgZXhwbGFpbl9wYXJhbGxlbF9hcHBlbmQo J3NlbGVjdCBhdmcoYWIuYSkgZnJvbSBhYiBpbm5lciBqb2luIGxwcnRfYSBhIG9uCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVyOiBOCiAgICAgICAgICAg ICAgICAgICAgICAtPiAgQXBwZW5kIChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hMV9iMV9hX2lkeCBvbiBh Yl9hMV9iMSBhYl8xIChhY3R1YWwgcm93cz1OIGxvb3BzPU4pCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyBhYl9hMV9iMl9hX2lkeCBvbiBhYl9hMV9iMiBhYl8yIChhY3R1 YWwgcm93cz1OIGxvb3BzPU4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBhYl9hMV9iM19hX2lkeCBvbiBhYl9hMV9iMyBhYl8zIChhY3R1YWwgcm93cz1OIGxvb3BzPU4p CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hMl9iMV9hX2lkeCBv biBhYl9hMl9iMSBhYl80IChuZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAoYSA9IGEuYSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIGFiX2EyX2IyX2FfaWR4IG9uIGFiX2EyX2IyIGFiXzUgKG5ldmVyIGV4 ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gYS5hKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYWJfYTJfYjNf YV9pZHggb24gYWJfYTJfYjMgYWJfNiAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hM19iMV9hX2lkeCBvbiBhYl9hM19iMSBhYl83IChu ZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9 IGEuYSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGFi X2EzX2IyX2FfaWR4IG9uIGFiX2EzX2IyIGFiXzggKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gYS5hKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYWJfYTNfYjNfYV9pZHggb24gYWJfYTNfYjMg YWJfOSAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT a2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKGEgPSBhLmEpCi0oMjggcm93cykKKygzNyByb3dzKQogCiBkZWxldGUgZnJvbSBscHJ0X2Eg d2hlcmUgYSA9IDE7CiBzZWxlY3QgZXhwbGFpbl9wYXJhbGxlbF9hcHBlbmQoJ3NlbGVjdCBhdmco YWIuYSkgZnJvbSBhYiBpbm5lciBqb2luIGxwcnRfYSBhIG9uIGFiLmEgPSBhLmEgd2hlcmUgYS5h IGluKDEsIDAsIDApJyk7CkBAIC0yMjA0LDI0ICsyMjQwLDMzIEBAIHNlbGVjdCBleHBsYWluX3Bh cmFsbGVsX2FwcGVuZCgnc2VsZWN0IGF2ZyhhYi5hKSBmcm9tIGFiIGlubmVyIGpvaW4gbHBydF9h IGEgb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvd3MgUmVtb3ZlZCBieSBGaWx0ZXI6 IE4KICAgICAgICAgICAgICAgICAgICAgIC0+ICBBcHBlbmQgKGFjdHVhbCByb3dzPU4gbG9vcHM9 TikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGFiX2Ex X2IxX2FfaWR4IG9uIGFiX2ExX2IxIGFiXzEgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gYS5hKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYWJfYTFfYjJfYV9pZHggb24gYWJfYTFfYjIgYWJf MiAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBhYl9hMV9iM19hX2lkeCBvbiBhYl9hMV9iMyBhYl8zIChuZXZlciBleGVjdXRlZCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IGEuYSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGFiX2EyX2IxX2FfaWR4IG9uIGFiX2Ey X2IxIGFiXzQgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6IChhID0gYS5hKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNj YW4gdXNpbmcgYWJfYTJfYjJfYV9pZHggb24gYWJfYTJfYjIgYWJfNSAobmV2ZXIgZXhlY3V0ZWQp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hMl9iM19hX2lkeCBv biBhYl9hMl9iMyBhYl82IChuZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAoYSA9IGEuYSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIGFiX2EzX2IxX2FfaWR4IG9uIGFiX2EzX2IxIGFiXzcgKG5ldmVyIGV4 ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gYS5hKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYWJfYTNfYjJf YV9pZHggb24gYWJfYTNfYjIgYWJfOCAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhLmEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYl9hM19iM19hX2lkeCBvbiBhYl9hM19iMyBhYl85IChu ZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9 IGEuYSkKLSgyOCByb3dzKQorKDM3IHJvd3MpCiAKIHJlc2V0IGVuYWJsZV9oYXNoam9pbjsKIHJl c2V0IGVuYWJsZV9tZXJnZWpvaW47CkBAIC0yMjQ1LDQ4ICsyMjkwLDU3IEBAIHNlbGVjdCAqIGZy b20gYWIgd2hlcmUgYSA9IChzZWxlY3QgbWF4KGEpIGZyb20gbHBydF9hKSBhbmQgYiA9IChzZWxl Y3QgbWF4KGEpLTEKICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAkMCkKICAgICAgICAgIEZp bHRlcjogKGIgPSAkMSkKICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBhYl9hMV9i MV9hX2lkeCAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAkMCkKICAgIC0+ICBCaXRtYXAgSGVhcCBT Y2FuIG9uIGFiX2ExX2IyIGFiXzIgKG5ldmVyIGV4ZWN1dGVkKQogICAgICAgICAgUmVjaGVjayBD b25kOiAoYSA9ICQwKQogICAgICAgICAgRmlsdGVyOiAoYiA9ICQxKQogICAgICAgICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIGFiX2ExX2IyX2FfaWR4IChuZXZlciBleGVjdXRlZCkKKyAgICAg ICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9 ICQwKQogICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYWJfYTFfYjMgYWJfMyAobmV2ZXIgZXhl Y3V0ZWQpCiAgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gJDApCiAgICAgICAgICBGaWx0ZXI6 IChiID0gJDEpCiAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJfYTFfYjNfYV9p ZHggKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gJDApCiAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBhYl9hMl9iMSBhYl80IChuZXZlciBleGVjdXRlZCkKICAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPSAkMCkKICAgICAgICAgIEZpbHRlcjogKGIgPSAkMSkKICAgICAgICAgIC0+ICBCaXRtYXAg SW5kZXggU2NhbiBvbiBhYl9hMl9iMV9hX2lkeCAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAg ICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAkMCkK ICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2EyX2IyIGFiXzUgKG5ldmVyIGV4ZWN1dGVk KQogICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9ICQwKQogICAgICAgICAgRmlsdGVyOiAoYiA9 ICQxKQogICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGFiX2EyX2IyX2FfaWR4IChu ZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAg ICAgICBJbmRleCBDb25kOiAoYSA9ICQwKQogICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYWJf YTJfYjMgYWJfNiAobmV2ZXIgZXhlY3V0ZWQpCiAgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0g JDApCiAgICAgICAgICBGaWx0ZXI6IChiID0gJDEpCiAgICAgICAgICAtPiAgQml0bWFwIEluZGV4 IFNjYW4gb24gYWJfYTJfYjNfYV9pZHggKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAg U2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gJDApCiAgICAt PiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9hM19iMSBhYl83IChuZXZlciBleGVjdXRlZCkKICAg ICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAkMCkKICAgICAgICAgIEZpbHRlcjogKGIgPSAkMSkK ICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBhYl9hM19iMV9hX2lkeCAobmV2ZXIg ZXhlY3V0ZWQpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGEgPSAkMCkKICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2EzX2Iy IGFiXzggKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEg PSAkMCkKICAgICAgICAgIEZpbHRlcjogKGIgPSAkMSkKICAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBhYl9hM19iMl9hX2lkeCAoYWN0dWFsIHJvd3M9MCBsb29wcz0xKQorICAgICAg ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0g JDApCiAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9hM19iMyBhYl85IChuZXZlciBleGVj dXRlZCkKICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAkMCkKICAgICAgICAgIEZpbHRlcjog KGIgPSAkMSkKICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBhYl9hM19iM19hX2lk eCAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAkMCkKLSg1MiByb3dzKQorKDYxIHJvd3MpCiAKIC0t IFRlc3QgcnVuLXRpbWUgcGFydGl0aW9uIHBydW5pbmcgd2l0aCBVTklPTiBBTEwgcGFyZW50cwog ZXhwbGFpbiAoYW5hbHl6ZSwgY29zdHMgb2ZmLCBzdW1tYXJ5IG9mZiwgdGltaW5nIG9mZikKQEAg LTIzMDEsMTYgKzIzNTUsMTkgQEAgc2VsZWN0ICogZnJvbSAoc2VsZWN0ICogZnJvbSBhYiB3aGVy ZSBhID0gMSB1bmlvbiBhbGwgc2VsZWN0ICogZnJvbSBhYikgYWIgd2hlcmUKICAgICAgICAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAgRmlsdGVyOiAoYiA9ICQw KQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGFiX2ExX2IxX2FfaWR4 IChhY3R1YWwgcm93cz0wIGxvb3BzPTEpCisgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46 IEFsbAogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAxKQogICAgICAgICAg LT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYWJfYTFfYjIgYWJfMTIgKG5ldmVyIGV4ZWN1dGVkKQog ICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9IDEpCiAgICAgICAgICAgICAgICBGaWx0 ZXI6IChiID0gJDApCiAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJf YTFfYjJfYV9pZHggKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gMSkKICAgICAg ICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IzIGFiXzEzIChuZXZlciBleGVjdXRl ZCkKICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAg RmlsdGVyOiAoYiA9ICQwKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9u IGFiX2ExX2IzX2FfaWR4IChuZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgIFNr aXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCiAg ICAtPiAgU2VxIFNjYW4gb24gYWJfYTFfYjEgYWJfMSAoYWN0dWFsIHJvd3M9MCBsb29wcz0xKQog ICAgICAgICAgRmlsdGVyOiAoYiA9ICQwKQpAQCAtMjMzMCw3ICsyMzg3LDcgQEAgc2VsZWN0ICog ZnJvbSAoc2VsZWN0ICogZnJvbSBhYiB3aGVyZSBhID0gMSB1bmlvbiBhbGwgc2VsZWN0ICogZnJv bSBhYikgYWIgd2hlcmUKICAgICAgICAgIEZpbHRlcjogKGIgPSAkMCkKICAgIC0+ICBTZXEgU2Nh biBvbiBhYl9hM19iMyBhYl85IChuZXZlciBleGVjdXRlZCkKICAgICAgICAgIEZpbHRlcjogKGIg PSAkMCkKLSgzNyByb3dzKQorKDQwIHJvd3MpCiAKIC0tIEEgY2FzZSBjb250YWluaW5nIGEgVU5J T04gQUxMIHdpdGggYSBub24tcGFydGl0aW9uZWQgY2hpbGQuCiBleHBsYWluIChhbmFseXplLCBj b3N0cyBvZmYsIHN1bW1hcnkgb2ZmLCB0aW1pbmcgb2ZmKQpAQCAtMjM0NSwxNiArMjQwMiwxOSBA QCBzZWxlY3QgKiBmcm9tIChzZWxlY3QgKiBmcm9tIGFiIHdoZXJlIGEgPSAxIHVuaW9uIGFsbCAo dmFsdWVzKDEwLDUpKSB1bmlvbiBhbGwgcwogICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAo YSA9IDEpCiAgICAgICAgICAgICAgICBGaWx0ZXI6IChiID0gJDApCiAgICAgICAgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJfYTFfYjFfYV9pZHggKGFjdHVhbCByb3dzPTAgbG9v cHM9MSkKKyAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCiAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBhYl9hMV9iMiBhYl8xMiAobmV2ZXIgZXhlY3V0ZWQpCiAgICAgICAgICAgICAgICBSZWNo ZWNrIENvbmQ6IChhID0gMSkKICAgICAgICAgICAgICAgIEZpbHRlcjogKGIgPSAkMCkKICAgICAg ICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBhYl9hMV9iMl9hX2lkeCAobmV2ZXIg ZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAxKQogICAgICAgICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYWJfYTFfYjMgYWJfMTMgKG5ldmVyIGV4ZWN1dGVkKQogICAgICAgICAgICAgICAg UmVjaGVjayBDb25kOiAoYSA9IDEpCiAgICAgICAgICAgICAgICBGaWx0ZXI6IChiID0gJDApCiAg ICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJfYTFfYjNfYV9pZHggKG5l dmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gMSkKICAgIC0+ICBSZXN1bHQgKGFjdHVh bCByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgIE9uZS1UaW1lIEZpbHRlcjogKDUgPSAkMCkKQEAg LTIzNzYsNyArMjQzNiw3IEBAIHNlbGVjdCAqIGZyb20gKHNlbGVjdCAqIGZyb20gYWIgd2hlcmUg YSA9IDEgdW5pb24gYWxsICh2YWx1ZXMoMTAsNSkpIHVuaW9uIGFsbCBzCiAgICAgICAgICBGaWx0 ZXI6IChiID0gJDApCiAgICAtPiAgU2VxIFNjYW4gb24gYWJfYTNfYjMgYWJfOSAobmV2ZXIgZXhl Y3V0ZWQpCiAgICAgICAgICBGaWx0ZXI6IChiID0gJDApCi0oMzkgcm93cykKKyg0MiByb3dzKQog CiAtLSBBbm90aGVyIFVOSU9OIEFMTCB0ZXN0LCBidXQgY29udGFpbmluZyBhIG1peCBvZiBleGVj IGluaXQgYW5kIGV4ZWMgcnVuLXRpbWUgcHJ1bmluZy4KIGNyZWF0ZSB0YWJsZSB4eV8xICh4IGlu dCwgeSBpbnQpOwpAQCAtMjQ0Niw2MyArMjUwNiw3NSBAQCB1cGRhdGUgYWJfYTEgc2V0IGIgPSAz IGZyb20gYWIgd2hlcmUgYWIuYSA9IDEgYW5kIGFiLmEgPSBhYl9hMS5hOwogICAgICAgICAgICAg ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYWJfYTFfYjEgYWJfMSAoYWN0dWFsIHJvd3M9MCBs b29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9IDEpCiAgICAg ICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJfYTFfYjFfYV9pZHgg KGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEp CiAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9hMV9iMiBhYl8yIChh Y3R1YWwgcm93cz0xIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6 IChhID0gMSkKICAgICAgICAgICAgICAgICAgICAgIEhlYXAgQmxvY2tzOiBleGFjdD0xCiAgICAg ICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJfYTFfYjJfYV9pZHgg KGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEp CiAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9hMV9iMyBhYl8zIChh Y3R1YWwgcm93cz0wIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6 IChhID0gMSkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBh Yl9hMV9iM19hX2lkeCAoYWN0dWFsIHJvd3M9MCBsb29wcz0xKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6IChhID0gMSkKICAgICAgICAgIC0+ICBNYXRlcmlhbGl6ZSAoYWN0dWFsIHJvd3M9MCBs b29wcz0xKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYWJfYTFfYjEg YWJfYTFfMSAoYWN0dWFsIHJvd3M9MCBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgUmVj aGVjayBDb25kOiAoYSA9IDEpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4 IFNjYW4gb24gYWJfYTFfYjFfYV9pZHggKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJbmRleCBDb25kOiAoYSA9IDEpCiAgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dz PTEgbG9vcHM9MSkKICAgICAgICAgIC0+ICBBcHBlbmQgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkK ICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IxIGFiXzEgKGFj dHVhbCByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPSAxKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGFi X2ExX2IxX2FfaWR4IChhY3R1YWwgcm93cz0wIGxvb3BzPTEpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYWJf YTFfYjIgYWJfMiAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAg UmVjaGVjayBDb25kOiAoYSA9IDEpCiAgICAgICAgICAgICAgICAgICAgICBIZWFwIEJsb2Nrczog ZXhhY3Q9MQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGFi X2ExX2IyX2FfaWR4IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYWJf YTFfYjMgYWJfMyAoYWN0dWFsIHJvd3M9MCBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAg UmVjaGVjayBDb25kOiAoYSA9IDEpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gYWJfYTFfYjNfYV9pZHggKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCiAgICAgICAgICAtPiAgTWF0ZXJpYWxpemUgKGFj dHVhbCByb3dzPTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2Fu IG9uIGFiX2ExX2IyIGFiX2ExXzIgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKICAgICAgICAgICAg ICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAgICAgICAgSGVh cCBCbG9ja3M6IGV4YWN0PTEKICAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiBhYl9hMV9iMl9hX2lkeCAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEluZGV4IENvbmQ6IChhID0gMSkKICAgIC0+ICBOZXN0ZWQgTG9vcCAoYWN0dWFsIHJvd3M9 MCBsb29wcz0xKQogICAgICAgICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQog ICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYWJfYTFfYjEgYWJfMSAoYWN0 dWFsIHJvd3M9MCBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAo YSA9IDEpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJf YTFfYjFfYV9pZHggKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBD b25kOiAoYSA9IDEpCiAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9h MV9iMiBhYl8yIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICBS ZWNoZWNrIENvbmQ6IChhID0gMSkKICAgICAgICAgICAgICAgICAgICAgIEhlYXAgQmxvY2tzOiBl eGFjdD0xCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJf YTFfYjJfYV9pZHggKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBD b25kOiAoYSA9IDEpCiAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9h MV9iMyBhYl8zIChhY3R1YWwgcm93cz0wIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICBS ZWNoZWNrIENvbmQ6IChhID0gMSkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBhYl9hMV9iM19hX2lkeCAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChhID0gMSkKICAgICAgICAgIC0+ICBNYXRlcmlhbGl6ZSAoYWN0 dWFsIHJvd3M9MCBsb29wcz0xKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4g b24gYWJfYTFfYjMgYWJfYTFfMyAoYWN0dWFsIHJvd3M9MCBsb29wcz0xKQogICAgICAgICAgICAg ICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9IDEpCiAgICAgICAgICAgICAgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gYWJfYTFfYjNfYV9pZHggKGFjdHVhbCByb3dzPTEgbG9vcHM9 MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCi0oNjUgcm93cykKKyg3NyByb3dz KQogCiB0YWJsZSBhYjsKICBhIHwgYiAKQEAgLTI1OTMsMTggKzI2NjUsMjQgQEAgc2VsZWN0ICog ZnJvbSB0YmwxIGpvaW4gdHBydCBvbiB0YmwxLmNvbDEgPiB0cHJ0LmNvbDE7CiAgICAtPiAgU2Vx IFNjYW4gb24gdGJsMSAoYWN0dWFsIHJvd3M9MiBsb29wcz0xKQogICAgLT4gIEFwcGVuZCAoYWN0 dWFsIHJvd3M9MyBsb29wcz0yKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDFf aWR4IG9uIHRwcnRfMSAoYWN0dWFsIHJvd3M9MiBsb29wcz0yKQorICAgICAgICAgICAgICAgU2tp cCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxIDwgdGJsMS5jb2wx KQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDJfaWR4IG9uIHRwcnRfMiAoYWN0 dWFsIHJvd3M9MiBsb29wcz0xKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxIDwgdGJsMS5jb2wxKQogICAgICAgICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgdHBydDNfaWR4IG9uIHRwcnRfMyAobmV2ZXIgZXhlY3V0ZWQpCisgICAg ICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNv bDEgPCB0YmwxLmNvbDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0NF9pZHgg b24gdHBydF80IChuZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxs CiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29sMSA8IHRibDEuY29sMSkKICAgICAgICAg IC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQ1X2lkeCBvbiB0cHJ0XzUgKG5ldmVyIGV4ZWN1dGVk KQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENv bmQ6IChjb2wxIDwgdGJsMS5jb2wxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBy dDZfaWR4IG9uIHRwcnRfNiAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICBTa2lwIHNj YW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPCB0YmwxLmNvbDEpCi0o MTUgcm93cykKKygyMSByb3dzKQogCiBleHBsYWluIChhbmFseXplLCBjb3N0cyBvZmYsIHN1bW1h cnkgb2ZmLCB0aW1pbmcgb2ZmKQogc2VsZWN0ICogZnJvbSB0YmwxIGpvaW4gdHBydCBvbiB0Ymwx LmNvbDEgPSB0cHJ0LmNvbDE7CkBAIC0yNjE0LDE4ICsyNjkyLDI0IEBAIHNlbGVjdCAqIGZyb20g dGJsMSBqb2luIHRwcnQgb24gdGJsMS5jb2wxID0gdHBydC5jb2wxOwogICAgLT4gIFNlcSBTY2Fu IG9uIHRibDEgKGFjdHVhbCByb3dzPTIgbG9vcHM9MSkKICAgIC0+ICBBcHBlbmQgKGFjdHVhbCBy b3dzPTEgbG9vcHM9MikKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQxX2lkeCBv biB0cHJ0XzEgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwK ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID0gdGJsMS5jb2wxKQogICAgICAgICAg LT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDJfaWR4IG9uIHRwcnRfMiAoYWN0dWFsIHJvd3M9MSBs b29wcz0yKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChjb2wxID0gdGJsMS5jb2wxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNp bmcgdHBydDNfaWR4IG9uIHRwcnRfMyAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICBT a2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPSB0YmwxLmNv bDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0NF9pZHggb24gdHBydF80IChu ZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAg ICAgICBJbmRleCBDb25kOiAoY29sMSA9IHRibDEuY29sMSkKICAgICAgICAgIC0+ICBJbmRleCBT Y2FuIHVzaW5nIHRwcnQ1X2lkeCBvbiB0cHJ0XzUgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAg ICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID0g dGJsMS5jb2wxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDZfaWR4IG9uIHRw cnRfNiAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPSB0YmwxLmNvbDEpCi0oMTUgcm93cykKKygy MSByb3dzKQogCiBzZWxlY3QgdGJsMS5jb2wxLCB0cHJ0LmNvbDEgZnJvbSB0YmwxCiBpbm5lciBq b2luIHRwcnQgb24gdGJsMS5jb2wxID4gdHBydC5jb2wxCkBAIC0yNjU5LDE4ICsyNzQzLDI0IEBA IHNlbGVjdCAqIGZyb20gdGJsMSBpbm5lciBqb2luIHRwcnQgb24gdGJsMS5jb2wxID4gdHBydC5j b2wxOwogICAgLT4gIFNlcSBTY2FuIG9uIHRibDEgKGFjdHVhbCByb3dzPTUgbG9vcHM9MSkKICAg IC0+ICBBcHBlbmQgKGFjdHVhbCByb3dzPTUgbG9vcHM9NSkKICAgICAgICAgIC0+ICBJbmRleCBT Y2FuIHVzaW5nIHRwcnQxX2lkeCBvbiB0cHJ0XzEgKGFjdHVhbCByb3dzPTIgbG9vcHM9NSkKKyAg ICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo Y29sMSA8IHRibDEuY29sMSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQyX2lk eCBvbiB0cHJ0XzIgKGFjdHVhbCByb3dzPTMgbG9vcHM9NCkKKyAgICAgICAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29sMSA8IHRibDEuY29sMSkK ICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQzX2lkeCBvbiB0cHJ0XzMgKGFjdHVh bCByb3dzPTEgbG9vcHM9MikKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoY29sMSA8IHRibDEuY29sMSkKICAgICAgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIHRwcnQ0X2lkeCBvbiB0cHJ0XzQgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAg ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wx IDwgdGJsMS5jb2wxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDVfaWR4IG9u IHRwcnRfNSAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPCB0YmwxLmNvbDEpCiAgICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0Nl9pZHggb24gdHBydF82IChuZXZlciBleGVjdXRlZCkK KyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoY29sMSA8IHRibDEuY29sMSkKLSgxNSByb3dzKQorKDIxIHJvd3MpCiAKIGV4cGxhaW4gKGFu YWx5emUsIGNvc3RzIG9mZiwgc3VtbWFyeSBvZmYsIHRpbWluZyBvZmYpCiBzZWxlY3QgKiBmcm9t IHRibDEgaW5uZXIgam9pbiB0cHJ0IG9uIHRibDEuY29sMSA9IHRwcnQuY29sMTsKQEAgLTI2ODAs MTggKzI3NzAsMjQgQEAgc2VsZWN0ICogZnJvbSB0YmwxIGlubmVyIGpvaW4gdHBydCBvbiB0Ymwx LmNvbDEgPSB0cHJ0LmNvbDE7CiAgICAtPiAgU2VxIFNjYW4gb24gdGJsMSAoYWN0dWFsIHJvd3M9 NSBsb29wcz0xKQogICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9MSBsb29wcz01KQogICAgICAg ICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDFfaWR4IG9uIHRwcnRfMSAobmV2ZXIgZXhlY3V0 ZWQpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGNvbDEgPSB0YmwxLmNvbDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0 cHJ0Ml9pZHggb24gdHBydF8yIChhY3R1YWwgcm93cz0xIGxvb3BzPTIpCisgICAgICAgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPSB0Ymwx LmNvbDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0M19pZHggb24gdHBydF8z IChhY3R1YWwgcm93cz0wIGxvb3BzPTMpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPSB0YmwxLmNvbDEpCiAgICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0NF9pZHggb24gdHBydF80IChuZXZlciBleGVjdXRlZCkK KyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoY29sMSA9IHRibDEuY29sMSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQ1 X2lkeCBvbiB0cHJ0XzUgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID0gdGJsMS5jb2wxKQogICAg ICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDZfaWR4IG9uIHRwcnRfNiAobmV2ZXIgZXhl Y3V0ZWQpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGNvbDEgPSB0YmwxLmNvbDEpCi0oMTUgcm93cykKKygyMSByb3dzKQogCiBzZWxl Y3QgdGJsMS5jb2wxLCB0cHJ0LmNvbDEgZnJvbSB0YmwxCiBpbm5lciBqb2luIHRwcnQgb24gdGJs MS5jb2wxID4gdHBydC5jb2wxCkBAIC0yNzQ0LDE4ICsyODQwLDI0IEBAIHNlbGVjdCAqIGZyb20g dGJsMSBqb2luIHRwcnQgb24gdGJsMS5jb2wxIDwgdHBydC5jb2wxOwogICAgLT4gIFNlcSBTY2Fu IG9uIHRibDEgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKICAgIC0+ICBBcHBlbmQgKGFjdHVhbCBy b3dzPTEgbG9vcHM9MSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQxX2lkeCBv biB0cHJ0XzEgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwK ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID4gdGJsMS5jb2wxKQogICAgICAgICAg LT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDJfaWR4IG9uIHRwcnRfMiAobmV2ZXIgZXhlY3V0ZWQp CisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKGNvbDEgPiB0YmwxLmNvbDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0 M19pZHggb24gdHBydF8zIChuZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29sMSA+IHRibDEuY29sMSkKICAg ICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQ0X2lkeCBvbiB0cHJ0XzQgKG5ldmVyIGV4 ZWN1dGVkKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChjb2wxID4gdGJsMS5jb2wxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNp bmcgdHBydDVfaWR4IG9uIHRwcnRfNSAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICBT a2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPiB0YmwxLmNv bDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0Nl9pZHggb24gdHBydF82IChh Y3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPiB0YmwxLmNvbDEpCi0oMTUgcm93cykKKygy MSByb3dzKQogCiBzZWxlY3QgdGJsMS5jb2wxLCB0cHJ0LmNvbDEgZnJvbSB0YmwxCiBpbm5lciBq b2luIHRwcnQgb24gdGJsMS5jb2wxIDwgdHBydC5jb2wxCkBAIC0yNzc2LDE4ICsyODc4LDI0IEBA IHNlbGVjdCAqIGZyb20gdGJsMSBqb2luIHRwcnQgb24gdGJsMS5jb2wxID0gdHBydC5jb2wxOwog ICAgLT4gIFNlcSBTY2FuIG9uIHRibDEgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKICAgIC0+ICBB cHBlbmQgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIHRwcnQxX2lkeCBvbiB0cHJ0XzEgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAg U2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID0gdGJsMS5j b2wxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDJfaWR4IG9uIHRwcnRfMiAo bmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGNvbDEgPSB0YmwxLmNvbDEpCiAgICAgICAgICAtPiAgSW5kZXgg U2NhbiB1c2luZyB0cHJ0M19pZHggb24gdHBydF8zIChuZXZlciBleGVjdXRlZCkKKyAgICAgICAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29sMSA9 IHRibDEuY29sMSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQ0X2lkeCBvbiB0 cHJ0XzQgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID0gdGJsMS5jb2wxKQogICAgICAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgdHBydDVfaWR4IG9uIHRwcnRfNSAobmV2ZXIgZXhlY3V0ZWQpCisg ICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGNvbDEgPSB0YmwxLmNvbDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0Nl9p ZHggb24gdHBydF82IChuZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgIFNraXAgc2Nhbjog QWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29sMSA9IHRibDEuY29sMSkKLSgxNSBy b3dzKQorKDIxIHJvd3MpCiAKIHNlbGVjdCB0YmwxLmNvbDEsIHRwcnQuY29sMSBmcm9tIHRibDEK IGlubmVyIGpvaW4gdHBydCBvbiB0YmwxLmNvbDEgPSB0cHJ0LmNvbDEKQEAgLTMxMTUsMTIgKzMy MjMsMTQgQEAgZXhwbGFpbiAoYW5hbHl6ZSwgY29zdHMgb2ZmLCBzdW1tYXJ5IG9mZiwgdGltaW5n IG9mZikgZXhlY3V0ZSBtdF9xMSgxNSk7CiAgICBTb3J0IEtleTogbWFfdGVzdC5iCiAgICBTdWJw bGFucyBSZW1vdmVkOiAxCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBtYV90ZXN0X3AyX2JfaWR4 IG9uIG1hX3Rlc3RfcDIgbWFfdGVzdF8xIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgRmlsdGVyOiAoKGEgPj0gJDEpIEFORCAoKGEgJSAx MCkgPSA1KSkKICAgICAgICAgIFJvd3MgUmVtb3ZlZCBieSBGaWx0ZXI6IDkKICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIG1hX3Rlc3RfcDNfYl9pZHggb24gbWFfdGVzdF9wMyBtYV90ZXN0XzIgKGFj dHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBG aWx0ZXI6ICgoYSA+PSAkMSkgQU5EICgoYSAlIDEwKSA9IDUpKQogICAgICAgICAgUm93cyBSZW1v dmVkIGJ5IEZpbHRlcjogOQotKDkgcm93cykKKygxMSByb3dzKQogCiBleGVjdXRlIG10X3ExKDE1 KTsKICBhICAKQEAgLTMxMzYsOSArMzI0NiwxMCBAQCBleHBsYWluIChhbmFseXplLCBjb3N0cyBv ZmYsIHN1bW1hcnkgb2ZmLCB0aW1pbmcgb2ZmKSBleGVjdXRlIG10X3ExKDI1KTsKICAgIFNvcnQg S2V5OiBtYV90ZXN0LmIKICAgIFN1YnBsYW5zIFJlbW92ZWQ6IDIKICAgIC0+ICBJbmRleCBTY2Fu IHVzaW5nIG1hX3Rlc3RfcDNfYl9pZHggb24gbWFfdGVzdF9wMyBtYV90ZXN0XzEgKGFjdHVhbCBy b3dzPTEgbG9vcHM9MSkKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBGaWx0ZXI6 ICgoYSA+PSAkMSkgQU5EICgoYSAlIDEwKSA9IDUpKQogICAgICAgICAgUm93cyBSZW1vdmVkIGJ5 IEZpbHRlcjogOQotKDYgcm93cykKKyg3IHJvd3MpCiAKIGV4ZWN1dGUgbXRfcTEoMjUpOwogIGEg IApAQCAtMzE4NSwxNCArMzI5NiwxOCBAQCBleHBsYWluIChhbmFseXplLCBjb3N0cyBvZmYsIHN1 bW1hcnkgb2ZmLCB0aW1pbmcgb2ZmKSBzZWxlY3QgKiBmcm9tIG1hX3Rlc3Qgd2hlcgogICAgICAg ICAgICBJbml0UGxhbiAxIChyZXR1cm5zICQwKQogICAgICAgICAgICAgIC0+ICBMaW1pdCAoYWN0 dWFsIHJvd3M9MSBsb29wcz0xKQogICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIG1hX3Rlc3RfcDJfYl9pZHggb24gbWFfdGVzdF9wMiAoYWN0dWFsIHJvd3M9MSBsb29wcz0x KQorICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgSVMgTk9UIE5VTEwpCiAgICAtPiAgSW5kZXggU2Nh biB1c2luZyBtYV90ZXN0X3AxX2JfaWR4IG9uIG1hX3Rlc3RfcDEgbWFfdGVzdF8xIChuZXZlciBl eGVjdXRlZCkKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBGaWx0ZXI6IChhID49 ICQxKQogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbWFfdGVzdF9wMl9iX2lkeCBvbiBtYV90ZXN0 X3AyIG1hX3Rlc3RfMiAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICBGaWx0ZXI6IChhID49ICQxKQogICAgLT4gIEluZGV4IFNjYW4gdXNp bmcgbWFfdGVzdF9wM19iX2lkeCBvbiBtYV90ZXN0X3AzIG1hX3Rlc3RfMyAoYWN0dWFsIHJvd3M9 MTAgbG9vcHM9MSkKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBGaWx0ZXI6IChh ID49ICQxKQotKDE0IHJvd3MpCisoMTggcm93cykKIAogcmVzZXQgZW5hYmxlX3NlcXNjYW47CiBy ZXNldCBlbmFibGVfc29ydDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cGxhbmNhY2hlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxhbmNhY2hlLm91dApp bmRleCA3ZDI4OWI4YzVlLi4yZTc1YmFkNDRkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BsYW5jYWNoZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w bGFuY2FjaGUub3V0CkBAIC0yOTAsOCArMjkwLDkgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKSBleGVj dXRlIHRlc3RfbW9kZV9wcCgyKTsKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBZ2dyZWdhdGUKICAgIC0+ICBJbmRleCBPbmx5IFNj YW4gdXNpbmcgdGVzdF9tb2RlX2FfaWR4IG9uIHRlc3RfbW9kZQorICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gMikKLSgzIHJvd3MpCisoNCByb3dzKQog CiAtLSBmb3JjZSBnZW5lcmljIHBsYW4KIHNldCBwbGFuX2NhY2hlX21vZGUgdG8gZm9yY2VfZ2Vu ZXJpY19wbGFuOwpAQCAtMzUxLDcgKzM1Miw4IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgZXhlY3V0 ZSB0ZXN0X21vZGVfcHAoMik7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQWdncmVnYXRlCiAgICAtPiAgSW5kZXggT25seSBTY2Fu IHVzaW5nIHRlc3RfbW9kZV9hX2lkeCBvbiB0ZXN0X21vZGUKKyAgICAgICAgIFNraXAgc2Nhbjog QWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDIpCi0oMyByb3dzKQorKDQgcm93cykKIAog ZHJvcCB0YWJsZSB0ZXN0X21vZGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BvcnRhbHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wb3J0YWxzLm91dApp bmRleCBkYzBkMmVmN2RkLi41YzE4ZGUzYWEwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BvcnRhbHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcG9y dGFscy5vdXQKQEAgLTEyNTMsOCArMTI1Myw5IEBAIERFQ0xBUkUgYzEgQ1VSU09SIEZPUiBTRUxF Q1Qgc3RyaW5ndTEgRlJPTSBvbmVrIFdIRVJFIHN0cmluZ3UxID0gJ0RaQUFBQSc7CiAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluZGV4IE9ubHkgU2NhbiB1c2luZyBvbmVr X3N0cmluZ3UxIG9uIG9uZWsKKyAgIFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAoc3Ry aW5ndTEgPSAnRFpBQUFBJzo6bmFtZSkKLSgyIHJvd3MpCisoMyByb3dzKQogCiBERUNMQVJFIGMx IENVUlNPUiBGT1IgU0VMRUNUIHN0cmluZ3UxIEZST00gb25layBXSEVSRSBzdHJpbmd1MSA9ICdE WkFBQUEnOwogRkVUQ0ggRlJPTSBjMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHJpdmlsZWdlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVn ZXMub3V0CmluZGV4IGMyZDAzN2I2MTQuLjAwYTExM2JjZDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wcml2aWxlZ2VzLm91dApAQCAtMjEyLDkgKzIxMiwxMCBAQCBFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gYXRlc3QxMnYgeCwgYXRlc3QxMnYgeSBXSEVSRSB4LmEgPSB5 LmI7CiAgICAtPiAgU2VxIFNjYW4gb24gYXRlc3QxMiBhdGVzdDEyXzEKICAgICAgICAgIEZpbHRl cjogKGIgPDw8IDUpCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhdGVzdDEyX2FfaWR4IG9uIGF0 ZXN0MTIKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoYSA9 IGF0ZXN0MTJfMS5iKQogICAgICAgICAgRmlsdGVyOiAoYiA8PDwgNSkKLSg2IHJvd3MpCisoNyBy b3dzKQogCiAtLSBBbmQgdGhpcyBvbmUuCiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZS T00gYXRlc3QxMiB4LCBhdGVzdDEyIHkKQEAgLTIyNSw4ICsyMjYsOSBAQCBFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gYXRlc3QxMiB4LCBhdGVzdDEyIHkKICAgIC0+ICBTZXEgU2Nh biBvbiBhdGVzdDEyIHkKICAgICAgICAgIEZpbHRlcjogKGFicyhhKSA8PDwgNSkKICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIGF0ZXN0MTJfYV9pZHggb24gYXRlc3QxMiB4CisgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGEgPSB5LmIpCi0oNSByb3dzKQorKDYg cm93cykKIAogLS0gVGhpcyBzaG91bGQgYWxzbyBiZSBhIG5lc3Rsb29wLCBidXQgdGhlIHNlY3Vy aXR5IGJhcnJpZXIgZm9yY2VzIHRoZSBpbm5lcgogLS0gc2NhbiB0byBiZSBtYXRlcmlhbGl6ZWQK QEAgLTI2MSw5ICsyNjMsMTAgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGF0 ZXN0MTJ2IHgsIGF0ZXN0MTJ2IHkgV0hFUkUgeC5hID0geS5iOwogICAgLT4gIFNlcSBTY2FuIG9u IGF0ZXN0MTIgYXRlc3QxMl8xCiAgICAgICAgICBGaWx0ZXI6IChiIDw8PCA1KQogICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgYXRlc3QxMl9hX2lkeCBvbiBhdGVzdDEyCisgICAgICAgICBTa2lwIHNj YW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhdGVzdDEyXzEuYikKICAgICAgICAg IEZpbHRlcjogKGIgPDw8IDUpCi0oNiByb3dzKQorKDcgcm93cykKIAogRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIGF0ZXN0MTJzYnYgeCwgYXRlc3QxMnNidiB5IFdIRVJFIHguYSA9 IHkuYjsKICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKQEAgLTI4 Niw5ICsyODksMTAgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGF0ZXN0MTJ2 IHgsIGF0ZXN0MTJ2IHkKICAgIC0+ICBTZXEgU2NhbiBvbiBhdGVzdDEyIGF0ZXN0MTJfMQogICAg ICAgICAgRmlsdGVyOiAoKGIgPDw8IDUpIEFORCAoYWJzKGEpIDw8PCA1KSkKICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIGF0ZXN0MTJfYV9pZHggb24gYXRlc3QxMgorICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gYXRlc3QxMl8xLmIpCiAgICAgICAgICBG aWx0ZXI6IChiIDw8PCA1KQotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEJ1dCBhIHNlY3VyaXR5 IGJhcnJpZXIgdmlldyBpc29sYXRlcyB0aGUgbGVha3kgb3BlcmF0b3IuCiBFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gYXRlc3QxMnNidiB4LCBhdGVzdDEyc2J2IHkKQEAgLTMxNyw5 ICszMjEsMTAgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGF0ZXN0MTJ2IHgs IGF0ZXN0MTJ2IHkgV0hFUkUgeC5hID0geS5iOwogICAgLT4gIFNlcSBTY2FuIG9uIGF0ZXN0MTIg YXRlc3QxMl8xCiAgICAgICAgICBGaWx0ZXI6IChiIDw8PCA1KQogICAgLT4gIEluZGV4IFNjYW4g dXNpbmcgYXRlc3QxMl9hX2lkeCBvbiBhdGVzdDEyCisgICAgICAgICBTa2lwIHNjYW46IEFsbAog ICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBhdGVzdDEyXzEuYikKICAgICAgICAgIEZpbHRlcjog KGIgPDw8IDUpCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQnV0IG5vdCBmb3IgdGhpcywgZHVl IHRvIGxhY2sgb2YgdGFibGUtd2lkZSBwZXJtaXNzaW9ucyBuZWVkZWQKIC0tIHRvIG1ha2UgdXNl IG9mIHRoZSBleHByZXNzaW9uIGluZGV4J3Mgc3RhdGlzdGljcy4KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmVnZXgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9yZWdleC5vdXQKaW5kZXggMDkyM2FkOWI1Yi4uMWNkMGZjOTVmYSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yZWdleC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9yZWdleC5vdXQKQEAgLTI5OSw0OSArMjk5LDU1IEBAIGV4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUgfiAnXmFiYyc7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggU2NhbiB1c2luZyBwZ19wcm9jX3Byb25hbWVf YXJnc19uc3BfaW5kZXggb24gcGdfcHJvYworICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENv bmQ6ICgocHJvbmFtZSA+PSAnYWJjJzo6dGV4dCkgQU5EIChwcm9uYW1lIDwgJ2FiZCc6OnRleHQp KQogICAgRmlsdGVyOiAocHJvbmFtZSB+ICdeYWJjJzo6dGV4dCkKLSgzIHJvd3MpCisoNCByb3dz KQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9u YW1lIH4gJ15hYmMkJzsKICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggU2NhbiB1c2luZyBwZ19wcm9jX3Byb25h bWVfYXJnc19uc3BfaW5kZXggb24gcGdfcHJvYworICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4 IENvbmQ6IChwcm9uYW1lID0gJ2FiYyc6OnRleHQpCiAgICBGaWx0ZXI6IChwcm9uYW1lIH4gJ15h YmMkJzo6dGV4dCkKLSgzIHJvd3MpCisoNCByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNl bGVjdCAqIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIH4gJ15hYmNkKmUnOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIEluZGV4IFNjYW4gdXNpbmcgcGdfcHJvY19wcm9uYW1lX2Fy Z3NfbnNwX2luZGV4IG9uIHBnX3Byb2MKKyAgIFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25k OiAoKHByb25hbWUgPj0gJ2FiYyc6OnRleHQpIEFORCAocHJvbmFtZSA8ICdhYmQnOjp0ZXh0KSkK ICAgIEZpbHRlcjogKHByb25hbWUgfiAnXmFiY2QqZSc6OnRleHQpCi0oMyByb3dzKQorKDQgcm93 cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJv bmFtZSB+ICdeYWJjK2QnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluZGV4IFNj YW4gdXNpbmcgcGdfcHJvY19wcm9uYW1lX2FyZ3NfbnNwX2luZGV4IG9uIHBnX3Byb2MKKyAgIFNr aXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAoKHByb25hbWUgPj0gJ2FiYyc6OnRleHQpIEFO RCAocHJvbmFtZSA8ICdhYmQnOjp0ZXh0KSkKICAgIEZpbHRlcjogKHByb25hbWUgfiAnXmFiYytk Jzo6dGV4dCkKLSgzIHJvd3MpCisoNCByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVj dCAqIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIH4gJ14oYWJjKShkZWYpJzsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbmRleCBTY2FuIHVzaW5nIHBnX3By b2NfcHJvbmFtZV9hcmdzX25zcF9pbmRleCBvbiBwZ19wcm9jCisgICBTa2lwIHNjYW46IEFsbAog ICAgSW5kZXggQ29uZDogKChwcm9uYW1lID49ICdhYmNkZWYnOjp0ZXh0KSBBTkQgKHByb25hbWUg PCAnYWJjZGVnJzo6dGV4dCkpCiAgICBGaWx0ZXI6IChwcm9uYW1lIH4gJ14oYWJjKShkZWYpJzo6 dGV4dCkKLSgzIHJvd3MpCisoNCByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAq IGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIH4gJ14oYWJjKSQnOwogICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbmRl eCBTY2FuIHVzaW5nIHBnX3Byb2NfcHJvbmFtZV9hcmdzX25zcF9pbmRleCBvbiBwZ19wcm9jCisg ICBTa2lwIHNjYW46IEFsbAogICAgSW5kZXggQ29uZDogKHByb25hbWUgPSAnYWJjJzo6dGV4dCkK ICAgIEZpbHRlcjogKHByb25hbWUgfiAnXihhYmMpJCc6OnRleHQpCi0oMyByb3dzKQorKDQgcm93 cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJv bmFtZSB+ICdeKGFiYyk/ZCc7CiAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgCkBAIC0zNTQsOSArMzYwLDEwIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJv bSBwZ19wcm9jIHdoZXJlIHByb25hbWUgfiAnXmFiY2QoeHwoPz1cd1x3KXEpJzsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5kZXggU2NhbiB1c2luZyBwZ19wcm9jX3Byb25h bWVfYXJnc19uc3BfaW5kZXggb24gcGdfcHJvYworICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4 IENvbmQ6ICgocHJvbmFtZSA+PSAnYWJjZCc6OnRleHQpIEFORCAocHJvbmFtZSA8ICdhYmNlJzo6 dGV4dCkpCiAgICBGaWx0ZXI6IChwcm9uYW1lIH4gJ15hYmNkKHh8KD89XHdcdylxKSc6OnRleHQp Ci0oMyByb3dzKQorKDQgcm93cykKIAogLS0gVGVzdCBmb3IgaW5maW5pdGUgbG9vcCBpbiBwdWxs YmFjaygpIChDVkUtMjAwNy00NzcyKQogc2VsZWN0ICdhJyB+ICcoJHxeKSonOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yb3dzZWN1cml0eS5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dAppbmRleCA5NTA2YWFlZjgyLi4xN2QxYzkx NmNiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dApAQCAtMjcx LDggKzI3MSw5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBkb2N1bWVudCBX SEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgIEZpbHRlcjogKChkbGV2ZWwgPD0gJDApIEFORCBmX2xl YWsoZHRpdGxlKSkKICAgIEluaXRQbGFuIDEgKHJldHVybnMgJDApCiAgICAgIC0+ICBJbmRleCBT Y2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgICAgSW5kZXggQ29uZDogKHBndXNlciA9IENVUlJFTlRfVVNFUikKLSg1 IHJvd3MpCisoNiByb3dzKQogCiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZG9j dW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAKQEAg LTI4MSwxMiArMjgyLDEzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBkb2N1 bWVudCBOQVRVUkFMIEpPSU4gY2F0ZWdvcnkgV0hFUkUgZl9sZWFrKGR0CiAgICBIYXNoIENvbmQ6 IChjYXRlZ29yeS5jaWQgPSBkb2N1bWVudC5jaWQpCiAgICBJbml0UGxhbiAxIChyZXR1cm5zICQw KQogICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB1YWNjb3VudF9wa2V5IG9uIHVhY2NvdW50Cisg ICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgIEluZGV4IENvbmQ6IChwZ3VzZXIg PSBDVVJSRU5UX1VTRVIpCiAgICAtPiAgU2VxIFNjYW4gb24gY2F0ZWdvcnkKICAgIC0+ICBIYXNo CiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZG9jdW1lbnQKICAgICAgICAgICAgICAgIEZpbHRl cjogKChkbGV2ZWwgPD0gJDApIEFORCBmX2xlYWsoZHRpdGxlKSkKLSg5IHJvd3MpCisoMTAgcm93 cykKIAogLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfZGF2ZQogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19kYXZlOwpAQCAtMzM1LDggKzMzNyw5IEBAIEVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsK ICAgIEZpbHRlcjogKChjaWQgPD4gNDQpIEFORCAoY2lkIDw+IDQ0KSBBTkQgKGNpZCA8IDUwKSBB TkQgKGRsZXZlbCA8PSAkMCkgQU5EIGZfbGVhayhkdGl0bGUpKQogICAgSW5pdFBsYW4gMSAocmV0 dXJucyAkMCkKICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdWFjY291bnRfcGtleSBvbiB1YWNj b3VudAorICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICBJbmRleCBDb25kOiAo cGd1c2VyID0gQ1VSUkVOVF9VU0VSKQotKDUgcm93cykKKyg2IHJvd3MpCiAKIEVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFMIEpPSU4gY2F0ZWdvcnkgV0hF UkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCkBAIC0zNDUsMTIgKzM0OCwxMyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gZG9jdW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhk dAogICAgSGFzaCBDb25kOiAoY2F0ZWdvcnkuY2lkID0gZG9jdW1lbnQuY2lkKQogICAgSW5pdFBs YW4gMSAocmV0dXJucyAkMCkKICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdWFjY291bnRfcGtl eSBvbiB1YWNjb3VudAorICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICBJbmRl eCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQogICAgLT4gIFNlcSBTY2FuIG9uIGNhdGVn b3J5CiAgICAtPiAgSGFzaAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGRvY3VtZW50CiAgICAg ICAgICAgICAgICBGaWx0ZXI6ICgoY2lkIDw+IDQ0KSBBTkQgKGNpZCA8PiA0NCkgQU5EIChjaWQg PCA1MCkgQU5EIChkbGV2ZWwgPD0gJDApIEFORCBmX2xlYWsoZHRpdGxlKSkKLSg5IHJvd3MpCiso MTAgcm93cykKIAogLS0gNDQgd291bGQgdGVjaG5pY2FsbHkgZmFpbCBmb3IgYm90aCBwMnIgYW5k IHAxciwgYnV0IHdlIHNob3VsZCBnZXQgYW4gZXJyb3IKIC0tIGJhY2sgZnJvbSBwMXIgZm9yIHRo aXMgYmVjYXVzZSBpdCBzb3J0cyBmaXJzdApAQCAtNDM2LDggKzQ0MCw5IEBAIEVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFMIEpPSU4gY2F0ZWdvcnkgV0hF UkUgZl9sZWFrKGR0CiAgICAtPiAgU2VxIFNjYW4gb24gZG9jdW1lbnQKICAgICAgICAgIEZpbHRl cjogKChkYXV0aG9yID0gQ1VSUkVOVF9VU0VSKSBBTkQgZl9sZWFrKGR0aXRsZSkpCiAgICAtPiAg SW5kZXggU2NhbiB1c2luZyBjYXRlZ29yeV9wa2V5IG9uIGNhdGVnb3J5CisgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKGNpZCA9IGRvY3VtZW50LmNpZCkKLSg1 IHJvd3MpCisoNiByb3dzKQogCiAtLSBpbnRlcmFjdGlvbiBvZiBGSy9QSyBjb25zdHJhaW50cwog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKQEAgLTk5MCw2ICs5 OTUsNyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBX SEVSRSBmX2xlYWsoZHRpdGxlKTsKICBBcHBlbmQKICAgIEluaXRQbGFuIDEgKHJldHVybnMgJDAp CiAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAg ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgSW5kZXggQ29uZDogKHBndXNlciA9 IENVUlJFTlRfVVNFUikKICAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X2ZpY3Rpb24g cGFydF9kb2N1bWVudF8xCiAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9ICQwKSBBTkQgZl9s ZWFrKGR0aXRsZSkpCkBAIC05OTcsNyArMTAwMyw3IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogICAgICAgICAg RmlsdGVyOiAoKGRsZXZlbCA8PSAkMCkgQU5EIGZfbGVhayhkdGl0bGUpKQogICAgLT4gIFNlcSBT Y2FuIG9uIHBhcnRfZG9jdW1lbnRfbm9uZmljdGlvbiBwYXJ0X2RvY3VtZW50XzMKICAgICAgICAg IEZpbHRlcjogKChkbGV2ZWwgPD0gJDApIEFORCBmX2xlYWsoZHRpdGxlKSkKLSgxMCByb3dzKQor KDExIHJvd3MpCiAKIC0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3NfcmxzX2Nhcm9sCiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwpAQCAtMTAzMiw2ICsxMDM4LDcg QEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUg Zl9sZWFrKGR0aXRsZSk7CiAgQXBwZW5kCiAgICBJbml0UGxhbiAxIChyZXR1cm5zICQwKQogICAg ICAtPiAgSW5kZXggU2NhbiB1c2luZyB1YWNjb3VudF9wa2V5IG9uIHVhY2NvdW50CisgICAgICAg ICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgIEluZGV4IENvbmQ6IChwZ3VzZXIgPSBDVVJS RU5UX1VTRVIpCiAgICAtPiAgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9maWN0aW9uIHBhcnRf ZG9jdW1lbnRfMQogICAgICAgICAgRmlsdGVyOiAoKGRsZXZlbCA8PSAkMCkgQU5EIGZfbGVhayhk dGl0bGUpKQpAQCAtMTAzOSw3ICsxMDQ2LDcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAgICBGaWx0 ZXI6ICgoZGxldmVsIDw9ICQwKSBBTkQgZl9sZWFrKGR0aXRsZSkpCiAgICAtPiAgU2VxIFNjYW4g b24gcGFydF9kb2N1bWVudF9ub25maWN0aW9uIHBhcnRfZG9jdW1lbnRfMwogICAgICAgICAgRmls dGVyOiAoKGRsZXZlbCA8PSAkMCkgQU5EIGZfbGVhayhkdGl0bGUpKQotKDEwIHJvd3MpCisoMTEg cm93cykKIAogLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfZGF2ZQogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19kYXZlOwpAQCAtMTA2Myw4ICsxMDcwLDkgQEAgRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFr KGR0aXRsZSk7CiAgICBGaWx0ZXI6ICgoY2lkIDwgNTUpIEFORCAoZGxldmVsIDw9ICQwKSBBTkQg Zl9sZWFrKGR0aXRsZSkpCiAgICBJbml0UGxhbiAxIChyZXR1cm5zICQwKQogICAgICAtPiAgSW5k ZXggU2NhbiB1c2luZyB1YWNjb3VudF9wa2V5IG9uIHVhY2NvdW50CisgICAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAgICAgICAgIEluZGV4IENvbmQ6IChwZ3VzZXIgPSBDVVJSRU5UX1VTRVIp Ci0oNSByb3dzKQorKDYgcm93cykKIAogLS0gcHAxIEVSUk9SCiBJTlNFUlQgSU5UTyBwYXJ0X2Rv Y3VtZW50IFZBTFVFUyAoMTAwLCAxMSwgNSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAndGVzdGluZyBw cDEnKTsgLS0gZmFpbApAQCAtMTE0MSw4ICsxMTQ5LDkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICBGaWx0 ZXI6ICgoY2lkIDwgNTUpIEFORCAoZGxldmVsIDw9ICQwKSBBTkQgZl9sZWFrKGR0aXRsZSkpCiAg ICBJbml0UGxhbiAxIChyZXR1cm5zICQwKQogICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB1YWNj b3VudF9wa2V5IG9uIHVhY2NvdW50CisgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAg ICAgIEluZGV4IENvbmQ6IChwZ3VzZXIgPSBDVVJSRU5UX1VTRVIpCi0oNSByb3dzKQorKDYgcm93 cykKIAogLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfY2Fyb2wKIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CkBAIC0xMTc5LDYgKzExODgsNyBAQCBFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWso ZHRpdGxlKTsKICBBcHBlbmQKICAgIEluaXRQbGFuIDEgKHJldHVybnMgJDApCiAgICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAgU2tp cCBzY2FuOiBBbGwKICAgICAgICAgICAgSW5kZXggQ29uZDogKHBndXNlciA9IENVUlJFTlRfVVNF UikKICAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X2ZpY3Rpb24gcGFydF9kb2N1bWVu dF8xCiAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9ICQwKSBBTkQgZl9sZWFrKGR0aXRsZSkp CkBAIC0xMTg2LDcgKzExOTYsNyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g cGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgICAgICAgIEZpbHRlcjogKChk bGV2ZWwgPD0gJDApIEFORCBmX2xlYWsoZHRpdGxlKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0 X2RvY3VtZW50X25vbmZpY3Rpb24gcGFydF9kb2N1bWVudF8zCiAgICAgICAgICBGaWx0ZXI6ICgo ZGxldmVsIDw9ICQwKSBBTkQgZl9sZWFrKGR0aXRsZSkpCi0oMTAgcm93cykKKygxMSByb3dzKQog CiAtLSBvbmx5IG93bmVyIGNhbiBjaGFuZ2UgcG9saWNpZXMKIEFMVEVSIFBPTElDWSBwcDEgT04g cGFydF9kb2N1bWVudCBVU0lORyAodHJ1ZSk7ICAgIC0tZmFpbApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9yb3d0eXBlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jvd3R5cGVzLm91dAppbmRleCAyYTI3M2Y4NDA0Li40ZDU4MDUzZTRmIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3R5cGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jvd3R5cGVzLm91dApAQCAtMjU5LDggKzI1OSw5IEBAIG9yZGVyIGJ5 IHRob3VzYW5kLCB0ZW50aG91czsKICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5r MV90aG91c190ZW50aG91cyBvbiB0ZW5rMQorICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENv bmQ6IChST1codGhvdXNhbmQsIHRlbnRob3VzKSA+PSBST1coOTk3LCA1MDAwKSkKLSgyIHJvd3Mp CisoMyByb3dzKQogCiBzZWxlY3QgdGhvdXNhbmQsIHRlbnRob3VzIGZyb20gdGVuazEKIHdoZXJl ICh0aG91c2FuZCwgdGVudGhvdXMpID49ICg5OTcsIDUwMDApCkBAIC0zMDUsOCArMzA2LDkgQEAg b3JkZXIgYnkgdGhvdXNhbmQsIHRlbnRob3VzOwogICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g dGVuazEKICAgICAgICAgIEZpbHRlcjogKFJPVyh0aG91c2FuZCwgdGVudGhvdXMsIGZvdXIpID4g Uk9XKDk5OCwgNTAwMCwgMykpCiAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVu azFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoUk9XKHRob3VzYW5kLCB0ZW50aG91cykgPj0gUk9XKDk5OCwg NTAwMCkpCi0oNiByb3dzKQorKDcgcm93cykKIAogc2VsZWN0IHRob3VzYW5kLCB0ZW50aG91cywg Zm91ciBmcm9tIHRlbmsxCiB3aGVyZSAodGhvdXNhbmQsIHRlbnRob3VzLCBmb3VyKSA+ICg5OTgs IDUwMDAsIDMpCkBAIC0zMzcsOCArMzM5LDkgQEAgb3JkZXIgYnkgdGhvdXNhbmQsIHRlbnRob3Vz OwogICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiB0 ZW5rMQorICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENvbmQ6IChST1codGhvdXNhbmQsIHRl bnRob3VzKSA+IFJPVyg5OTgsIDUwMDApKQotKDIgcm93cykKKygzIHJvd3MpCiAKIHNlbGVjdCB0 aG91c2FuZCwgdGVudGhvdXMgZnJvbSB0ZW5rMQogd2hlcmUgKDk5OCwgNTAwMCkgPCAodGhvdXNh bmQsIHRlbnRob3VzKQpAQCAtMzczLDggKzM3Niw5IEBAIG9yZGVyIGJ5IHRob3VzYW5kLCBodW5k cmVkOwogICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEKICAgICAgICAgIEZpbHRlcjog KFJPVyg5OTgsIDUwMDApIDwgUk9XKHRob3VzYW5kLCBodW5kcmVkKSkKICAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cworICAgICAgICAgICAgICAg U2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA+PSA5 OTgpCi0oNiByb3dzKQorKDcgcm93cykKIAogc2VsZWN0IHRob3VzYW5kLCBodW5kcmVkIGZyb20g dGVuazEKIHdoZXJlICg5OTgsIDUwMDApIDwgKHRob3VzYW5kLCBodW5kcmVkKQpAQCAtNDA1LDgg KzQwOSw5IEBAIHNlbGVjdCBhLGIgZnJvbSB0ZXN0X3RhYmxlIHdoZXJlIChhLGIpID4gKCdhJywn YScpIG9yZGVyIGJ5IGEsYjsKICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZXN0X3RhYmxlX2Ff Yl9pZHggb24gdGVzdF90YWJsZQorICAgU2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENvbmQ6IChS T1coYSwgYikgPiBST1coJ2EnOjp0ZXh0LCAnYSc6OnRleHQpKQotKDIgcm93cykKKygzIHJvd3Mp CiAKIHNlbGVjdCBhLGIgZnJvbSB0ZXN0X3RhYmxlIHdoZXJlIChhLGIpID4gKCdhJywnYScpIG9y ZGVyIGJ5IGEsYjsKICBhIHwgYiAKQEAgLTExMDksOCArMTExNCw5IEBAIHNlbGVjdCByb3dfdG9f anNvbihxKSBmcm9tCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgU3VicXVlcnkgU2NhbiBvbiBxCiAgICAtPiAgSW5kZXggT25s eSBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3VzIG9uIHRlbmsxCisgICAgICAgICBTa2lw IHNjYW46IEFsbAogICAgICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRl bnRob3VzIDwgMjAwMCkpCi0oMyByb3dzKQorKDQgcm93cykKIAogc2VsZWN0IHJvd190b19qc29u KHEpIGZyb20KICAgKHNlbGVjdCB0aG91c2FuZCwgdGVudGhvdXMgZnJvbSB0ZW5rMQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3Qub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZWxlY3Qub3V0CmluZGV4IGM0NDEwNDlmNDEuLmRkN2M0MTE3ZWQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0Lm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdC5vdXQKQEAgLTc0Miw5ICs3NDIsMTAgQEAgc2Vs ZWN0ICogZnJvbSBvbmVrMiB3aGVyZSB1bmlxdWUyID0gMTEgYW5kIHN0cmluZ3UxID0gJ0FUQUFB QSc7CiAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbmRleCBTY2FuIHVzaW5nIG9uZWsy X3UyX3BydGwgb24gb25lazIKKyAgIFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAodW5p cXVlMiA9IDExKQogICAgRmlsdGVyOiAoc3RyaW5ndTEgPSAnQVRBQUFBJzo6bmFtZSkKLSgzIHJv d3MpCisoNCByb3dzKQogCiBzZWxlY3QgKiBmcm9tIG9uZWsyIHdoZXJlIHVuaXF1ZTIgPSAxMSBh bmQgc3RyaW5ndTEgPSAnQVRBQUFBJzsKICB1bmlxdWUxIHwgdW5pcXVlMiB8IHR3byB8IGZvdXIg fCB0ZW4gfCB0d2VudHkgfCBodW5kcmVkIHwgdGhvdXNhbmQgfCB0d290aG91c2FuZCB8IGZpdmV0 aG91cyB8IHRlbnRob3VzIHwgb2RkIHwgZXZlbiB8IHN0cmluZ3UxIHwgc3RyaW5ndTIgfCBzdHJp bmc0IApAQCAtNzU4LDE4ICs3NTksMjAgQEAgc2VsZWN0ICogZnJvbSBvbmVrMiB3aGVyZSB1bmlx dWUyID0gMTEgYW5kIHN0cmluZ3UxID0gJ0FUQUFBQSc7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJ bmRleCBTY2FuIHVzaW5nIG9uZWsyX3UyX3BydGwgb24gb25lazIgKGFjdHVhbCByb3dzPTEgbG9v cHM9MSkKKyAgIFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IDExKQog ICAgRmlsdGVyOiAoc3RyaW5ndTEgPSAnQVRBQUFBJzo6bmFtZSkKLSgzIHJvd3MpCisoNCByb3dz KQogCiBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgdW5pcXVlMiBmcm9tIG9uZWsyIHdoZXJl IHVuaXF1ZTIgPSAxMSBhbmQgc3RyaW5ndTEgPSAnQVRBQUFBJzsKICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIEluZGV4IFNjYW4gdXNpbmcgb25lazJfdTJfcHJ0bCBvbiBvbmVrMgorICAg U2tpcCBzY2FuOiBBbGwKICAgIEluZGV4IENvbmQ6ICh1bmlxdWUyID0gMTEpCiAgICBGaWx0ZXI6 IChzdHJpbmd1MSA9ICdBVEFBQUEnOjpuYW1lKQotKDMgcm93cykKKyg0IHJvd3MpCiAKIHNlbGVj dCB1bmlxdWUyIGZyb20gb25lazIgd2hlcmUgdW5pcXVlMiA9IDExIGFuZCBzdHJpbmd1MSA9ICdB VEFBQUEnOwogIHVuaXF1ZTIgCkBAIC03ODMsOCArNzg2LDkgQEAgc2VsZWN0ICogZnJvbSBvbmVr MiB3aGVyZSB1bmlxdWUyID0gMTEgYW5kIHN0cmluZ3UxIDwgJ0InOwogICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgSW5kZXggU2NhbiB1c2luZyBvbmVrMl91Ml9wcnRsIG9uIG9uZWsyCisg ICBTa2lwIHNjYW46IEFsbAogICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPSAxMSkKLSgyIHJvd3Mp CisoMyByb3dzKQogCiBzZWxlY3QgKiBmcm9tIG9uZWsyIHdoZXJlIHVuaXF1ZTIgPSAxMSBhbmQg c3RyaW5ndTEgPCAnQic7CiAgdW5pcXVlMSB8IHVuaXF1ZTIgfCB0d28gfCBmb3VyIHwgdGVuIHwg dHdlbnR5IHwgaHVuZHJlZCB8IHRob3VzYW5kIHwgdHdvdGhvdXNhbmQgfCBmaXZldGhvdXMgfCB0 ZW50aG91cyB8IG9kZCB8IGV2ZW4gfCBzdHJpbmd1MSB8IHN0cmluZ3UyIHwgc3RyaW5nNCAKQEAg LTc5Nyw4ICs4MDEsOSBAQCBzZWxlY3QgdW5pcXVlMiBmcm9tIG9uZWsyIHdoZXJlIHVuaXF1ZTIg PSAxMSBhbmQgc3RyaW5ndTEgPCAnQic7CiAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgSW5kZXggT25seSBTY2FuIHVzaW5nIG9uZWsyX3UyX3BydGwgb24gb25lazIKKyAg IFNraXAgc2NhbjogQWxsCiAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IDExKQotKDIgcm93cykK KygzIHJvd3MpCiAKIHNlbGVjdCB1bmlxdWUyIGZyb20gb25lazIgd2hlcmUgdW5pcXVlMiA9IDEx IGFuZCBzdHJpbmd1MSA8ICdCJzsKICB1bmlxdWUyIApAQCAtODEzLDkgKzgxOCwxMCBAQCBzZWxl Y3QgdW5pcXVlMiBmcm9tIG9uZWsyIHdoZXJlIHVuaXF1ZTIgPSAxMSBhbmQgc3RyaW5ndTEgPCAn QicgZm9yIHVwZGF0ZTsKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgTG9ja1Jvd3MKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG9uZWsyX3UyX3BydGwg b24gb25lazIKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAo dW5pcXVlMiA9IDExKQogICAgICAgICAgRmlsdGVyOiAoc3RyaW5ndTEgPCAnQic6Om5hbWUpCi0o NCByb3dzKQorKDUgcm93cykKIAogc2VsZWN0IHVuaXF1ZTIgZnJvbSBvbmVrMiB3aGVyZSB1bmlx dWUyID0gMTEgYW5kIHN0cmluZ3UxIDwgJ0InIGZvciB1cGRhdGU7CiAgdW5pcXVlMiAKQEAgLTg0 Nyw4ICs4NTMsOSBAQCBzZWxlY3QgdW5pcXVlMiBmcm9tIG9uZWsyIHdoZXJlIHVuaXF1ZTIgPSAx MSBhbmQgc3RyaW5ndTEgPCAnQic7CiAgQml0bWFwIEhlYXAgU2NhbiBvbiBvbmVrMgogICAgUmVj aGVjayBDb25kOiAoKHVuaXF1ZTIgPSAxMSkgQU5EIChzdHJpbmd1MSA8ICdCJzo6bmFtZSkpCiAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gb25lazJfdTJfcHJ0bAorICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUyID0gMTEpCi0oNCByb3dzKQor KDUgcm93cykKIAogc2VsZWN0IHVuaXF1ZTIgZnJvbSBvbmVrMiB3aGVyZSB1bmlxdWUyID0gMTEg YW5kIHN0cmluZ3UxIDwgJ0InOwogIHVuaXF1ZTIgCkBAIC04NjgsMTAgKzg3NSwxMiBAQCBzZWxl Y3QgdW5pcXVlMSwgdW5pcXVlMiBmcm9tIG9uZWsyCiAgICBGaWx0ZXI6IChzdHJpbmd1MSA8ICdC Jzo6bmFtZSkKICAgIC0+ICBCaXRtYXBPcgogICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIG9uZWsyX3UyX3BydGwKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IDExKQogICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIG9uZWsyX3UxX3BydGwKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxs CiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IDApCi0oOCByb3dzKQorKDEw IHJvd3MpCiAKIHNlbGVjdCB1bmlxdWUxLCB1bmlxdWUyIGZyb20gb25lazIKICAgd2hlcmUgKHVu aXF1ZTIgPSAxMSBvciB1bmlxdWUxID0gMCkgYW5kIHN0cmluZ3UxIDwgJ0InOwpAQCAtODkwLDEw ICs4OTksMTIgQEAgc2VsZWN0IHVuaXF1ZTEsIHVuaXF1ZTIgZnJvbSBvbmVrMgogICAgUmVjaGVj ayBDb25kOiAoKCh1bmlxdWUyID0gMTEpIEFORCAoc3RyaW5ndTEgPCAnQic6Om5hbWUpKSBPUiAo dW5pcXVlMSA9IDApKQogICAgLT4gIEJpdG1hcE9yCiAgICAgICAgICAtPiAgQml0bWFwIEluZGV4 IFNjYW4gb24gb25lazJfdTJfcHJ0bAorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUyID0gMTEpCiAgICAgICAgICAtPiAgQml0 bWFwIEluZGV4IFNjYW4gb24gb25lazJfdTFfcHJ0bAorICAgICAgICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMCkKLSg3IHJvd3Mp CisoOSByb3dzKQogCiBzZWxlY3QgdW5pcXVlMSwgdW5pcXVlMiBmcm9tIG9uZWsyCiAgIHdoZXJl ICh1bmlxdWUyID0gMTEgYW5kIHN0cmluZ3UxIDwgJ0InKSBvciB1bmlxdWUxID0gMDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X2Rpc3RpbmN0Lm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X2Rpc3RpbmN0Lm91dAppbmRleCBlMjFhZmE3 OTkwLi4wNzZjM2Q1NzFkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl bGVjdF9kaXN0aW5jdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3Rf ZGlzdGluY3Qub3V0CkBAIC0zOTUsMTggKzM5NSwxOCBAQCBTRUxFQ1QgRElTVElOQ1Qgb24gKGEs IGIpIGEsIGIgRlJPTSBkaXN0aW5jdF9hIFdIRVJFIGIgPSAyOwogCiBFWFBMQUlOIChDT1NUUyBP RkYpCiBTRUxFQ1QgRElTVElOQ1QgYSBGUk9NIGRpc3RpbmN0X2EgV0hFUkUgYiA9IDI7Ci0gICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggT25s eSBTY2FuIHVzaW5nIGRpc3RpbmN0X2FfYl9hIG9uIGRpc3RpbmN0X2EKKyAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEluZGV4IE9ubHkg U2NhbiB1c2luZyBkaXN0aW5jdF9hX2FfYl9pZHggb24gZGlzdGluY3RfYQogICAgU2tpcCBzY2Fu OiBEaXN0aW5jdCBvbmx5CiAgICBJbmRleCBDb25kOiAoYiA9IDIpCiAoMyByb3dzKQogCiBFWFBM QUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgRElTVElOQ1Qgb24gKGEsIGIpIGEsIGIgRlJPTSBkaXN0 aW5jdF9hIFdIRVJFIGIgPSAyOwotICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIEluZGV4IE9ubHkgU2NhbiB1c2luZyBkaXN0aW5jdF9hX2JfYSBvbiBk aXN0aW5jdF9hCisgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBJbmRleCBPbmx5IFNjYW4gdXNpbmcgZGlzdGluY3RfYV9hX2JfaWR4IG9u IGRpc3RpbmN0X2EKICAgIFNraXAgc2NhbjogRGlzdGluY3Qgb25seQogICAgSW5kZXggQ29uZDog KGIgPSAyKQogKDMgcm93cykKQEAgLTYzMyw4ICs2MzMsOSBAQCBGUk9NIGRpc3RpbmN0X2EgV0hF UkUgYSA9IDEgT1JERVIgQlkgYTsKICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGRpc3RpbmN0 X2EKICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIGRpc3RpbmN0X2FfYV9iX2lkeAorICAgICAgICAgICAgICAgU2tpcCBzY2Fu OiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gMSkKLSg1IHJvd3MpCisoNiBy b3dzKQogCiAtLSBjaGVjayBjb2x1bXMgb3JkZXIKIFNFTEVDVCBESVNUSU5DVCBhIEZST00gZGlz dGluY3RfYSBXSEVSRSBiID0gMiBBTkQgYyA9IDEwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZWxlY3RfcGFyYWxsZWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZWxlY3RfcGFyYWxsZWwub3V0CmluZGV4IDk2ZGZiN2M4ZGQuLjVlNjM3N2YyNTggMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X3BhcmFsbGVsLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdF9wYXJhbGxlbC5vdXQKQEAgLTUy Myw4ICs1MjMsOSBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAgICAgICAgICAgICAgICAtPiAgUGFy YWxsZWwgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQogICAgICAgICAgICAgICAgICAgICAgUmVj aGVjayBDb25kOiAoaHVuZHJlZCA+IDEpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFw IEluZGV4IFNjYW4gb24gdGVuazFfaHVuZHJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg U2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICho dW5kcmVkID4gMSkKLSgxMCByb3dzKQorKDExIHJvd3MpCiAKIHNlbGVjdCBjb3VudCgqKSBmcm9t IHRlbmsxLCB0ZW5rMiB3aGVyZSB0ZW5rMS5odW5kcmVkID4gMSBhbmQgdGVuazIudGhvdXNhbmQ9 MDsKICBjb3VudCAKQEAgLTYyMSw3ICs2MjIsOCBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAgICAg ICAgICAgICAgICAgICAgICBNZXJnZSBDb25kOiAodGVuazEudW5pcXVlMSA9IHRlbmsyLnVuaXF1 ZTEpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgSW5kZXggT25seSBTY2FuIHVz aW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEKICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRl eCBPbmx5IFNjYW4gdXNpbmcgdGVuazJfdW5pcXVlMSBvbiB0ZW5rMgotKDggcm93cykKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCisoOSByb3dzKQogCiBzZWxlY3Qg IGNvdW50KCopIGZyb20gdGVuazEsIHRlbmsyIHdoZXJlIHRlbmsxLnVuaXF1ZTEgPSB0ZW5rMi51 bmlxdWUxOwogIGNvdW50IApAQCAtOTQ5LDggKzk1MSw5IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikK ICAgIFdvcmtlcnMgUGxhbm5lZDogMQogICAgU2luZ2xlIENvcHk6IHRydWUKICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEKKyAgICAgICAgIFNraXAgc2Nhbjog QWxsCiAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA9IDEpCi0oNSByb3dzKQorKDYgcm93 cykKIAogUk9MTEJBQ0sgVE8gU0FWRVBPSU5UIHNldHRpbmdzOwogLS0gZXhlcmNpc2UgcmVjb3Jk IHR5cG1vZCByZW1hcHBpbmcgYmV0d2VlbiBiYWNrZW5kcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zdWJzZWxlY3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zdWJzZWxlY3Qub3V0CmluZGV4IDRjNmNkNWYxNDYuLjczMzQ0MTMxNDQgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2VsZWN0Lm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N1YnNlbGVjdC5vdXQKQEAgLTg5NSwxMiArODk1LDEzIEBAIHdoZXJl IG8udGVuID0gMDsKICAgICAgICAgICAgICAgIEZpbHRlcjogKG8udGVuID0gMCkKICAgICAgICAg IC0+ICBJbmRleCBTY2FuIHVzaW5nIG9uZWtfdW5pcXVlMSBvbiBwdWJsaWMub25layBpCiAgICAg ICAgICAgICAgICBPdXRwdXQ6IChoYXNoZWQgU3ViUGxhbiAxKSwgcmFuZG9tKCkKKyAgICAgICAg ICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaS51bmlx dWUxID0gby51bmlxdWUxKQogICAgICAgICAgICAgICAgU3ViUGxhbiAxCiAgICAgICAgICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMuaW50NF90YmwKICAgICAgICAgICAgICAgICAgICAg ICAgT3V0cHV0OiBpbnQ0X3RibC5mMQogICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChp bnQ0X3RibC5mMSA8PSAkMCkKLSgxNCByb3dzKQorKDE1IHJvd3MpCiAKIHNlbGVjdCBzdW0oc3Mu dHN0OjppbnQpIGZyb20KICAgb25layBvIGNyb3NzIGpvaW4gbGF0ZXJhbCAoCkBAIC05MzUsMTEg KzkzNiwxMyBAQCB3aGVyZSBvLnRlbiA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAtPiAgQXBw ZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBvbiAiKlNF TEVDVCogMSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2Fu IHVzaW5nIG9uZWtfdW5pcXVlMSBvbiBvbmVrIGkxCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTEgPSBvLnVuaXF1ZTEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBvbiAiKlNFTEVDVCogMiIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG9uZWtfdW5p cXVlMSBvbiBvbmVrIGkyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT a2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKHVuaXF1ZTEgPSBvLnVuaXF1ZTIpCi0oMTMgcm93cykKKygxNSByb3dzKQogCiBz ZWxlY3QgY291bnQoKikgZnJvbQogICBvbmVrIG8gY3Jvc3Mgam9pbiBsYXRlcmFsICgKQEAgLTEw OTUsNyArMTA5OCw4IEBAIHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUKICAgIFN1YlBsYW4g MQogICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gcHVibGlj LnRlbmsxIGEKICAgICAgICAgICAgT3V0cHV0OiBhLnVuaXF1ZTEKLSgxMCByb3dzKQorICAgICAg ICAgICBTa2lwIHNjYW46IEFsbAorKDExIHJvd3MpCiAKIHNlbGVjdCAqIGZyb20gaW50NF90Ymwg d2hlcmUKICAgKGNhc2Ugd2hlbiBmMSBpbiAoc2VsZWN0IHVuaXF1ZTEgZnJvbSB0ZW5rMSBhKSB0 aGVuIGYxIGVsc2UgbnVsbCBlbmQpIGluCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3R1cGxlc29ydC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R1cGxlc29y dC5vdXQKaW5kZXggM2ZjMTk5OGJmMi4uZjQ3NzQ0ZDJmZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90dXBsZXNvcnQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdHVwbGVzb3J0Lm91dApAQCAtMTQ2LDcgKzE0Niw4IEBAIFNFTEVDVCBpZCwgbm9hYm9y dF9pbmNyZWFzaW5nLCBub2Fib3J0X2RlY3JlYXNpbmcgRlJPTSBhYmJyZXZfYWJvcnRfdXVpZHMg T1JERVIKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTGltaXQKICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIGFiYnJldl9hYm9ydF91dWlkc19fbm9hYm9ydF9pbmNyZWFzaW5nX2lk eCBvbiBhYmJyZXZfYWJvcnRfdXVpZHMKLSgyIHJvd3MpCisgICAgICAgICBTa2lwIHNjYW46IEFs bAorKDMgcm93cykKIAogU0VMRUNUIGlkLCBub2Fib3J0X2luY3JlYXNpbmcsIG5vYWJvcnRfZGVj cmVhc2luZyBGUk9NIGFiYnJldl9hYm9ydF91dWlkcyBPUkRFUiBCWSBub2Fib3J0X2luY3JlYXNp bmcgTElNSVQgNTsKICAgaWQgICB8ICAgICAgICAgIG5vYWJvcnRfaW5jcmVhc2luZyAgICAgICAg ICB8ICAgICAgICAgIG5vYWJvcnRfZGVjcmVhc2luZyAgICAgICAgICAKQEAgLTE2NCw3ICsxNjUs OCBAQCBTRUxFQ1QgaWQsIG5vYWJvcnRfaW5jcmVhc2luZywgbm9hYm9ydF9kZWNyZWFzaW5nIEZS T00gYWJicmV2X2Fib3J0X3V1aWRzIE9SREVSCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIExpbWl0CiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBhYmJyZXZfYWJvcnRfdXVpZHNf X25vYWJvcnRfZGVjcmVhc2luZ19pZHggb24gYWJicmV2X2Fib3J0X3V1aWRzCi0oMiByb3dzKQor ICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKygzIHJvd3MpCiAKIFNFTEVDVCBpZCwgbm9hYm9ydF9p bmNyZWFzaW5nLCBub2Fib3J0X2RlY3JlYXNpbmcgRlJPTSBhYmJyZXZfYWJvcnRfdXVpZHMgT1JE RVIgQlkgbm9hYm9ydF9kZWNyZWFzaW5nIExJTUlUIDU7CiAgIGlkICAgfCAgICAgICAgICBub2Fi b3J0X2luY3JlYXNpbmcgICAgICAgICAgfCAgICAgICAgICBub2Fib3J0X2RlY3JlYXNpbmcgICAg ICAgICAgCkBAIC0xODYsNyArMTg4LDggQEAgU0VMRUNUIGlkLCBhYm9ydF9pbmNyZWFzaW5nLCBh Ym9ydF9kZWNyZWFzaW5nIEZST00gYWJicmV2X2Fib3J0X3V1aWRzIE9SREVSIEJZIGEKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIExpbWl0CiAgICAtPiAgSW5kZXggU2NhbiB1c2lu ZyBhYmJyZXZfYWJvcnRfdXVpZHNfX2Fib3J0X2luY3JlYXNpbmdfaWR4IG9uIGFiYnJldl9hYm9y dF91dWlkcwotKDIgcm93cykKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCisoMyByb3dzKQogCiBT RUxFQ1QgaWQsIGFib3J0X2luY3JlYXNpbmcsIGFib3J0X2RlY3JlYXNpbmcgRlJPTSBhYmJyZXZf YWJvcnRfdXVpZHMgT1JERVIgQlkgYWJvcnRfaW5jcmVhc2luZyBMSU1JVCA1OwogICBpZCAgIHwg ICAgICAgICAgIGFib3J0X2luY3JlYXNpbmcgICAgICAgICAgIHwgICAgICAgICAgIGFib3J0X2Rl Y3JlYXNpbmcgICAgICAgICAgIApAQCAtMjA0LDcgKzIwNyw4IEBAIFNFTEVDVCBpZCwgYWJvcnRf aW5jcmVhc2luZywgYWJvcnRfZGVjcmVhc2luZyBGUk9NIGFiYnJldl9hYm9ydF91dWlkcyBPUkRF UiBCWSBhCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBMaW1pdAogICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgYWJicmV2X2Fib3J0X3V1aWRzX19hYm9ydF9kZWNyZWFzaW5nX2lkeCBv biBhYmJyZXZfYWJvcnRfdXVpZHMKLSgyIHJvd3MpCisgICAgICAgICBTa2lwIHNjYW46IEFsbAor KDMgcm93cykKIAogU0VMRUNUIGlkLCBhYm9ydF9pbmNyZWFzaW5nLCBhYm9ydF9kZWNyZWFzaW5n IEZST00gYWJicmV2X2Fib3J0X3V1aWRzIE9SREVSIEJZIGFib3J0X2RlY3JlYXNpbmcgTElNSVQg NTsKICAgaWQgICB8ICAgICAgICAgICBhYm9ydF9pbmNyZWFzaW5nICAgICAgICAgICB8ICAgICAg ICAgICBhYm9ydF9kZWNyZWFzaW5nICAgICAgICAgICAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlv bi5vdXQKaW5kZXggNmU3MmU5MmQ4MC4uMTczOWE4N2Q0NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC91bmlvbi5vdXQKQEAgLTM2MCw3ICszNjAsOCBAQCBzZWxlY3QgY291bnQoKikgZnJvbQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsxCiAgICAgICAgICAg ICAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBvbiAiKlNFTEVDVCogMSIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBv biB0ZW5rMSB0ZW5rMV8xCi0oOCByb3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2tpcCBzY2FuOiBBbGwKKyg5IHJvd3MpCiAKIHNlbGVjdCBjb3VudCgqKSBmcm9tCiAgICgg c2VsZWN0IHVuaXF1ZTEgZnJvbSB0ZW5rMSBpbnRlcnNlY3Qgc2VsZWN0IGZpdmV0aG91cyBmcm9t IHRlbmsxICkgc3M7CkBAIC0zNzcsMTAgKzM3OCwxMiBAQCBzZWxlY3QgdW5pcXVlMSBmcm9tIHRl bmsxIGV4Y2VwdCBzZWxlY3QgdW5pcXVlMiBmcm9tIHRlbmsxIHdoZXJlIHVuaXF1ZTIgIT0gMTA7 CiAgICAtPiAgQXBwZW5kCiAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBvbiAiKlNFTEVDVCog MSIKICAgICAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVl MSBvbiB0ZW5rMQorICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAg IC0+ICBTdWJxdWVyeSBTY2FuIG9uICIqU0VMRUNUKiAyIgogICAgICAgICAgICAgICAgLT4gIElu ZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUyIG9uIHRlbmsxIHRlbmsxXzEKKyAgICAg ICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBGaWx0 ZXI6ICh1bmlxdWUyIDw+IDEwKQotKDcgcm93cykKKyg5IHJvd3MpCiAKIHNlbGVjdCB1bmlxdWUx IGZyb20gdGVuazEgZXhjZXB0IHNlbGVjdCB1bmlxdWUyIGZyb20gdGVuazEgd2hlcmUgdW5pcXVl MiAhPSAxMDsKICB1bmlxdWUxIApAQCAtNDA0LDcgKzQwNyw4IEBAIHNlbGVjdCBjb3VudCgqKSBm cm9tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdGVu azEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBTdWJxdWVyeSBTY2FuIG9uICIqU0VM RUNUKiAxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkg U2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsxIHRlbmsxXzEKLSgxMCByb3dzKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKygxMSBy b3dzKQogCiBzZWxlY3QgY291bnQoKikgZnJvbQogICAoIHNlbGVjdCB1bmlxdWUxIGZyb20gdGVu azEgaW50ZXJzZWN0IHNlbGVjdCBmaXZldGhvdXMgZnJvbSB0ZW5rMSApIHNzOwpAQCAtNDIzLDEw ICs0MjcsMTIgQEAgc2VsZWN0IHVuaXF1ZTEgZnJvbSB0ZW5rMSBleGNlcHQgc2VsZWN0IHVuaXF1 ZTIgZnJvbSB0ZW5rMSB3aGVyZSB1bmlxdWUyICE9IDEwOwogICAgICAgICAgLT4gIEFwcGVuZAog ICAgICAgICAgICAgICAgLT4gIFN1YnF1ZXJ5IFNjYW4gb24gIipTRUxFQ1QqIDEiCiAgICAgICAg ICAgICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24g dGVuazEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAg ICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBvbiAiKlNFTEVDVCogMiIKICAgICAgICAgICAgICAg ICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMiBvbiB0ZW5rMSB0 ZW5rMV8xCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAodW5pcXVlMiA8PiAxMCkKLSg5IHJvd3MpCiso MTEgcm93cykKIAogc2VsZWN0IHVuaXF1ZTEgZnJvbSB0ZW5rMSBleGNlcHQgc2VsZWN0IHVuaXF1 ZTIgZnJvbSB0ZW5rMSB3aGVyZSB1bmlxdWUyICE9IDEwOwogIHVuaXF1ZTEgCkBAIC03MTEsMTAg KzcxNywxMiBAQCBleHBsYWluIChjb3N0cyBvZmYpCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBcHBlbmQKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHQx X2FiX2lkeCBvbiB0MQorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENv bmQ6ICgoYSB8fCBiKSA9ICdhYic6OnRleHQpCiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5n IHQyX3BrZXkgb24gdDIKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBD b25kOiAoYWIgPSAnYWInOjp0ZXh0KQotKDUgcm93cykKKyg3IHJvd3MpCiAKIGV4cGxhaW4gKGNv c3RzIG9mZikKICBTRUxFQ1QgKiBGUk9NCkBAIC03MjgsMTAgKzczNiwxMiBAQCBleHBsYWluIChj b3N0cyBvZmYpCiAgICBHcm91cCBLZXk6ICgodDEuYSB8fCB0MS5iKSkKICAgIC0+ICBBcHBlbmQK ICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHQxX2FiX2lkeCBvbiB0MQorICAgICAgICAg ICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgoYSB8fCBi KSA9ICdhYic6OnRleHQpCiAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHQyX3Br ZXkgb24gdDIKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYWIgPSAnYWInOjp0ZXh0KQotKDcgcm93cykKKyg5IHJvd3MpCiAKIC0tCiAt LSBUZXN0IHRoYXQgT1JERVIgQlkgZm9yIFVOSU9OIEFMTCBjYW4gYmUgcHVzaGVkIGRvd24gdG8g aW5oZXJpdGFuY2UKQEAgLTc1NywxMCArNzY3LDE0IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKICAg IC0+ICBNZXJnZSBBcHBlbmQKICAgICAgICAgIFNvcnQgS2V5OiAoKHQxLmEgfHwgdDEuYikpCiAg ICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0MV9hYl9pZHggb24gdDEKKyAgICAgICAgICAg ICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0MWNfYWJf aWR4IG9uIHQxYyB0MV8xCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAg LT4gIEluZGV4IFNjYW4gdXNpbmcgdDJfcGtleSBvbiB0MgorICAgICAgICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHQyY19wa2V5IG9uIHQyYyB0 Ml8xCi0oNyByb3dzKQorICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKKygxMSByb3dzKQog CiAgIFNFTEVDVCAqIEZST00KICAgKFNFTEVDVCBhIHx8IGIgQVMgYWIgRlJPTSB0MQpAQCAtNzk3 LDExICs4MTEsMTMgQEAgc2VsZWN0IGV2ZW50X2lkCiAgTWVyZ2UgQXBwZW5kCiAgICBTb3J0IEtl eTogZXZlbnRzLmV2ZW50X2lkCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBldmVudHNfcGtleSBv biBldmVudHMKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAtPiAgU29ydAogICAgICAgICAg U29ydCBLZXk6IGV2ZW50c18xLmV2ZW50X2lkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZXZl bnRzX2NoaWxkIGV2ZW50c18xCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBvdGhlcl9ldmVudHNf cGtleSBvbiBvdGhlcl9ldmVudHMKLSg3IHJvd3MpCisgICAgICAgICBTa2lwIHNjYW46IEFsbAor KDkgcm93cykKIAogZHJvcCB0YWJsZSBldmVudHNfY2hpbGQsIGV2ZW50cywgb3RoZXJfZXZlbnRz OwogcmVzZXQgZW5hYmxlX2luZGV4b25seXNjYW47CkBAIC0xMDA2LDEwICsxMDIyLDEyIEBAIHNl bGVjdCAqIGZyb20KICAgIC0+ICBTZXEgU2NhbiBvbiBpbnQ0X3RibAogICAgLT4gIEFwcGVuZAog ICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdDNpIG9uIHQzIGEKKyAgICAgICAgICAgICAg IFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoZXhwZW5zaXZlZnVu Yyh4KSA9IGludDRfdGJsLmYxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdDNpIG9u IHQzIGIKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoZXhwZW5zaXZlZnVuYyh4KSA9IGludDRfdGJsLmYxKQotKDcgcm93cykKKyg5IHJv d3MpCiAKIHNlbGVjdCAqIGZyb20KICAgKHNlbGVjdCAqIGZyb20gdDMgYSB1bmlvbiBhbGwgc2Vs ZWN0ICogZnJvbSB0MyBiKSBzcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC91cGRhdGFibGVfdmlld3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFi bGVfdmlld3Mub3V0CmluZGV4IDVkZTUzZjI3ODIuLjNiMGQ5ZDQyYmYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQKQEAgLTQyMiwxNiArNDIyLDE4 IEBAIEVYUExBSU4gKGNvc3RzIG9mZikgVVBEQVRFIHJ3X3ZpZXcxIFNFVCBhPTYgV0hFUkUgYT01 OwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBV cGRhdGUgb24gYmFzZV90YmwKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGJhc2VfdGJsX3BrZXkg b24gYmFzZV90YmwKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25k OiAoKGEgPiAwKSBBTkQgKGEgPSA1KSkKLSgzIHJvd3MpCisoNCByb3dzKQogCiBFWFBMQUlOIChj b3N0cyBvZmYpIERFTEVURSBGUk9NIHJ3X3ZpZXcxIFdIRVJFIGE9NTsKICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIERlbGV0ZSBvbiBiYXNlX3RibAogICAg LT4gIEluZGV4IFNjYW4gdXNpbmcgYmFzZV90YmxfcGtleSBvbiBiYXNlX3RibAorICAgICAgICAg U2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6ICgoYSA+IDApIEFORCAoYSA9IDUp KQotKDMgcm93cykKKyg0IHJvd3MpCiAKIERST1AgVEFCTEUgYmFzZV90YmwgQ0FTQ0FERTsKIE5P VElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdmlldyByd192aWV3MQpAQCAtNDkyLDE2ICs0OTQsMTgg QEAgRVhQTEFJTiAoY29zdHMgb2ZmKSBVUERBVEUgcndfdmlldzIgU0VUIGFhYT01IFdIRVJFIGFh YT00OwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBVcGRhdGUgb24gYmFzZV90YmwKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGJhc2Vf dGJsX3BrZXkgb24gYmFzZV90YmwKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJ bmRleCBDb25kOiAoKGEgPCAxMCkgQU5EIChhID4gMCkgQU5EIChhID0gNCkpCi0oMyByb3dzKQor KDQgcm93cykKIAogRVhQTEFJTiAoY29zdHMgb2ZmKSBERUxFVEUgRlJPTSByd192aWV3MiBXSEVS RSBhYWE9NDsKICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIERlbGV0ZSBvbiBiYXNlX3RibAogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcg YmFzZV90YmxfcGtleSBvbiBiYXNlX3RibAorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAg ICAgIEluZGV4IENvbmQ6ICgoYSA8IDEwKSBBTkQgKGEgPiAwKSBBTkQgKGEgPSA0KSkKLSgzIHJv d3MpCisoNCByb3dzKQogCiBEUk9QIFRBQkxFIGJhc2VfdGJsIENBU0NBREU7CiBOT1RJQ0U6ICBk cm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cwpAQCAtNjg1LDE0ICs2ODksMTYgQEAgRVhQ TEFJTiAoY29zdHMgb2ZmKSBVUERBVEUgcndfdmlldzIgU0VUIGE9MyBXSEVSRSBhPTI7CiAgVXBk YXRlIG9uIGJhc2VfdGJsCiAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgIC0+ICBJbmRleCBT Y2FuIHVzaW5nIGJhc2VfdGJsX3BrZXkgb24gYmFzZV90YmwKKyAgICAgICAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDIpCiAgICAgICAgICAt PiAgU3VicXVlcnkgU2NhbiBvbiByd192aWV3MQogICAgICAgICAgICAgICAgRmlsdGVyOiAoKHJ3 X3ZpZXcxLmEgPCAxMCkgQU5EIChyd192aWV3MS5hID0gMikpCiAgICAgICAgICAgICAgICAtPiAg Qml0bWFwIEhlYXAgU2NhbiBvbiBiYXNlX3RibCBiYXNlX3RibF8xCiAgICAgICAgICAgICAgICAg ICAgICBSZWNoZWNrIENvbmQ6IChhID4gMCkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRt YXAgSW5kZXggU2NhbiBvbiBiYXNlX3RibF9wa2V5CisgICAgICAgICAgICAgICAgICAgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPiAwKQotKDEwIHJvd3MpCisoMTIgcm93cykKIAogRVhQTEFJTiAoY29zdHMgb2ZmKSBERUxF VEUgRlJPTSByd192aWV3MiBXSEVSRSBhPTI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCkBAIC03MDAsMTQgKzcwNiwxNiBA QCBFWFBMQUlOIChjb3N0cyBvZmYpIERFTEVURSBGUk9NIHJ3X3ZpZXcyIFdIRVJFIGE9MjsKICBE ZWxldGUgb24gYmFzZV90YmwKICAgIC0+ICBOZXN0ZWQgTG9vcAogICAgICAgICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgYmFzZV90YmxfcGtleSBvbiBiYXNlX3RibAorICAgICAgICAgICAgICAgU2tp cCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gMikKICAgICAgICAg IC0+ICBTdWJxdWVyeSBTY2FuIG9uIHJ3X3ZpZXcxCiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgo cndfdmlldzEuYSA8IDEwKSBBTkQgKHJ3X3ZpZXcxLmEgPSAyKSkKICAgICAgICAgICAgICAgIC0+ ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJhc2VfdGJsIGJhc2VfdGJsXzEKICAgICAgICAgICAgICAg ICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiAwKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIGJhc2VfdGJsX3BrZXkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoYSA+IDApCi0oMTAgcm93cykKKygxMiByb3dzKQogCiBEUk9QIFRBQkxFIGJhc2VfdGJsIENB U0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cwpAQCAtOTE5 LDggKzkyNyw5IEBAIEVYUExBSU4gKGNvc3RzIG9mZikgVVBEQVRFIHJ3X3ZpZXcyIFNFVCBhPTMg V0hFUkUgYT0yOwogICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYmFzZV90YmwKICAg ICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiAwKQogICAgICAgICAgICAgICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIGJhc2VfdGJsX3BrZXkKKyAgICAgICAgICAgICAgICAgICAgIFNr aXAgc2NhbjogQWxsCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA+IDApCi0o NyByb3dzKQorKDggcm93cykKIAogRVhQTEFJTiAoY29zdHMgb2ZmKSBERUxFVEUgRlJPTSByd192 aWV3MiBXSEVSRSBhPTI7CiAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgCkBAIC05MzEsOCArOTQwLDkgQEAgRVhQTEFJTiAoY29zdHMgb2Zm KSBERUxFVEUgRlJPTSByd192aWV3MiBXSEVSRSBhPTI7CiAgICAgICAgICAtPiAgQml0bWFwIEhl YXAgU2NhbiBvbiBiYXNlX3RibAogICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IDAp CiAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYmFzZV90YmxfcGtleQor ICAgICAgICAgICAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6IChhID4gMCkKLSg3IHJvd3MpCisoOCByb3dzKQogCiBEUk9QIFRBQkxFIGJh c2VfdGJsIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0 cwpAQCAtOTY5LDggKzk3OSw5IEBAIFVQREFURSByd192aWV3MSB2IFNFVCBiYj0nVXBkYXRlZCBy b3cgMicgV0hFUkUgcndfdmlldzFfYWEodik9MgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRhdGUgb24gYmFzZV90YmwKICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIGJhc2VfdGJsX3BrZXkgb24gYmFzZV90YmwKKyAgICAgICAgIFNraXAgc2Nh bjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDIpCi0oMyByb3dzKQorKDQgcm93cykK IAogRFJPUCBUQUJMRSBiYXNlX3RibCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byAyIG90aGVyIG9iamVjdHMKQEAgLTE4NjgsMTAgKzE4NzksMTEgQEAgRVhQTEFJTiAoY29zdHMg b2ZmKSBJTlNFUlQgSU5UTyByd192aWV3MSBWQUxVRVMgKDUpOwogICAgLT4gIFJlc3VsdAogICAg U3ViUGxhbiAxCiAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgcmVmX3RibF9wa2V5IG9u IHJlZl90YmwgcgorICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICBJbmRleCBD b25kOiAoYSA9IGIuYSkKICAgIFN1YlBsYW4gMgogICAgICAtPiAgU2VxIFNjYW4gb24gcmVmX3Ri bCByXzEKLSg3IHJvd3MpCisoOCByb3dzKQogCiBFWFBMQUlOIChjb3N0cyBvZmYpIFVQREFURSBy d192aWV3MSBTRVQgYSA9IGEgKyA1OwogICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAKQEAgLTE4ODQsMTAgKzE4OTYsMTEgQEAgRVhQTEFJ TiAoY29zdHMgb2ZmKSBVUERBVEUgcndfdmlldzEgU0VUIGEgPSBhICsgNTsKICAgICAgICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiByZWZfdGJsIHIKICAgIFN1YlBsYW4gMQogICAgICAtPiAgSW5k ZXggT25seSBTY2FuIHVzaW5nIHJlZl90YmxfcGtleSBvbiByZWZfdGJsIHJfMQorICAgICAgICAg ICBTa2lwIHNjYW46IEFsbAogICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IGIuYSkKICAgIFN1 YlBsYW4gMgogICAgICAtPiAgU2VxIFNjYW4gb24gcmVmX3RibCByXzIKLSgxMSByb3dzKQorKDEy IHJvd3MpCiAKIERST1AgVEFCTEUgYmFzZV90YmwsIHJlZl90YmwgQ0FTQ0FERTsKIE5PVElDRTog IGRyb3AgY2FzY2FkZXMgdG8gdmlldyByd192aWV3MQpAQCAtMjIxOSwxMSArMjIzMiwxMyBAQCBF WFBMQUlOIChjb3N0cyBvZmYpIERFTEVURSBGUk9NIHJ3X3ZpZXcxIFdIRVJFIGlkID0gMSBBTkQg c25vb3AoZGF0YSk7CiAgVXBkYXRlIG9uIGJhc2VfdGJsIGJhc2VfdGJsXzEKICAgIC0+ICBOZXN0 ZWQgTG9vcAogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgYmFzZV90YmxfcGtleSBvbiBi YXNlX3RibCBiYXNlX3RibF8xCisgICAgICAgICAgICAgICBTa2lwIHNjYW46IEFsbAogICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGlkID0gMSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIGJhc2VfdGJsX3BrZXkgb24gYmFzZV90YmwKKyAgICAgICAgICAgICAgIFNraXAgc2Nhbjog QWxsCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaWQgPSAxKQogICAgICAgICAgICAgICAg RmlsdGVyOiAoKE5PVCBkZWxldGVkKSBBTkQgc25vb3AoZGF0YSkpCi0oNyByb3dzKQorKDkgcm93 cykKIAogREVMRVRFIEZST00gcndfdmlldzEgV0hFUkUgaWQgPSAxIEFORCBzbm9vcChkYXRhKTsK IE5PVElDRTogIHNub29wZWQgdmFsdWU6IFJvdyAxCkBAIC0yMjMzLDYgKzIyNDgsNyBAQCBFWFBM QUlOIChjb3N0cyBvZmYpIElOU0VSVCBJTlRPIHJ3X3ZpZXcxIFZBTFVFUyAoMiwgJ05ldyByb3cg MicpOwogIEluc2VydCBvbiBiYXNlX3RibAogICAgSW5pdFBsYW4gMSAocmV0dXJucyAkMCkKICAg ICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBiYXNlX3RibF9wa2V5IG9uIGJhc2VfdGJsIHQK KyAgICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgICAgSW5kZXggQ29uZDogKGlkID0g MikKICAgIC0+ICBSZXN1bHQKICAgICAgICAgIE9uZS1UaW1lIEZpbHRlcjogKCQwIElTIE5PVCBU UlVFKQpAQCAtMjI0MCwxMiArMjI1NiwxNCBAQCBFWFBMQUlOIChjb3N0cyBvZmYpIElOU0VSVCBJ TlRPIHJ3X3ZpZXcxIFZBTFVFUyAoMiwgJ05ldyByb3cgMicpOwogIFVwZGF0ZSBvbiBiYXNlX3Ri bAogICAgSW5pdFBsYW4gMSAocmV0dXJucyAkMCkKICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1 c2luZyBiYXNlX3RibF9wa2V5IG9uIGJhc2VfdGJsIHQKKyAgICAgICAgICAgU2tpcCBzY2FuOiBB bGwKICAgICAgICAgICAgSW5kZXggQ29uZDogKGlkID0gMikKICAgIC0+ICBSZXN1bHQKICAgICAg ICAgIE9uZS1UaW1lIEZpbHRlcjogJDAKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGJh c2VfdGJsX3BrZXkgb24gYmFzZV90YmwKKyAgICAgICAgICAgICAgIFNraXAgc2NhbjogQWxsCiAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaWQgPSAyKQotKDE1IHJvd3MpCisoMTggcm93cykK IAogSU5TRVJUIElOVE8gcndfdmlldzEgVkFMVUVTICgyLCAnTmV3IHJvdyAyJyk7CiBTRUxFQ1Qg KiBGUk9NIGJhc2VfdGJsOwpAQCAtMjMxMCw2ICsyMzI4LDcgQEAgVVBEQVRFIHYxIFNFVCBhPTEw MCBXSEVSRSBzbm9vcChhKSBBTkQgbGVha3Byb29mKGEpIEFORCBhIDwgNyBBTkQgYSAhPSA2Owog ICAgVXBkYXRlIG9uIHB1YmxpYy50MTExIHQxXzMKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHQx X2FfaWR4IG9uIHB1YmxpYy50MQogICAgICAgICAgT3V0cHV0OiAxMDAsIHQxLmIsIHQxLmMsIHQx LmN0aWQKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoKHQx LmEgPiA1KSBBTkQgKHQxLmEgPCA3KSkKICAgICAgICAgIEZpbHRlcjogKCh0MS5hIDw+IDYpIEFO RCAoYWx0ZXJuYXRpdmVzOiBTdWJQbGFuIDEgb3IgaGFzaGVkIFN1YlBsYW4gMikgQU5EIHNub29w KHQxLmEpIEFORCBsZWFrcHJvb2YodDEuYSkpCiAgICAgICAgICBTdWJQbGFuIDEKQEAgLTIzMjYs MTcgKzIzNDUsMjAgQEAgVVBEQVRFIHYxIFNFVCBhPTEwMCBXSEVSRSBzbm9vcChhKSBBTkQgbGVh a3Byb29mKGEpIEFORCBhIDwgNyBBTkQgYSAhPSA2OwogICAgICAgICAgICAgICAgICAgICAgICBP dXRwdXQ6IHQxMl81LmEKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHQxMV9hX2lkeCBvbiBwdWJs aWMudDExIHQxXzEKICAgICAgICAgIE91dHB1dDogMTAwLCB0MV8xLmIsIHQxXzEuYywgdDFfMS5k LCB0MV8xLmN0aWQKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25k OiAoKHQxXzEuYSA+IDUpIEFORCAodDFfMS5hIDwgNykpCiAgICAgICAgICBGaWx0ZXI6ICgodDFf MS5hIDw+IDYpIEFORCAoYWx0ZXJuYXRpdmVzOiBTdWJQbGFuIDEgb3IgaGFzaGVkIFN1YlBsYW4g MikgQU5EIHNub29wKHQxXzEuYSkgQU5EIGxlYWtwcm9vZih0MV8xLmEpKQogICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgdDEyX2FfaWR4IG9uIHB1YmxpYy50MTIgdDFfMgogICAgICAgICAgT3V0cHV0 OiAxMDAsIHQxXzIuYiwgdDFfMi5jLCB0MV8yLmUsIHQxXzIuY3RpZAorICAgICAgICAgU2tpcCBz Y2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6ICgodDFfMi5hID4gNSkgQU5EICh0MV8yLmEg PCA3KSkKICAgICAgICAgIEZpbHRlcjogKCh0MV8yLmEgPD4gNikgQU5EIChhbHRlcm5hdGl2ZXM6 IFN1YlBsYW4gMSBvciBoYXNoZWQgU3ViUGxhbiAyKSBBTkQgc25vb3AodDFfMi5hKSBBTkQgbGVh a3Byb29mKHQxXzIuYSkpCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0MTExX2FfaWR4IG9uIHB1 YmxpYy50MTExIHQxXzMKICAgICAgICAgIE91dHB1dDogMTAwLCB0MV8zLmIsIHQxXzMuYywgdDFf My5kLCB0MV8zLmUsIHQxXzMuY3RpZAorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAg IEluZGV4IENvbmQ6ICgodDFfMy5hID4gNSkgQU5EICh0MV8zLmEgPCA3KSkKICAgICAgICAgIEZp bHRlcjogKCh0MV8zLmEgPD4gNikgQU5EIChhbHRlcm5hdGl2ZXM6IFN1YlBsYW4gMSBvciBoYXNo ZWQgU3ViUGxhbiAyKSBBTkQgc25vb3AodDFfMy5hKSBBTkQgbGVha3Byb29mKHQxXzMuYSkpCi0o MzMgcm93cykKKygzNyByb3dzKQogCiBVUERBVEUgdjEgU0VUIGE9MTAwIFdIRVJFIHNub29wKGEp IEFORCBsZWFrcHJvb2YoYSkgQU5EIGEgPCA3IEFORCBhICE9IDY7CiBTRUxFQ1QgKiBGUk9NIHYx IFdIRVJFIGE9MTAwOyAtLSBOb3RoaW5nIHNob3VsZCBoYXZlIGJlZW4gY2hhbmdlZCB0byAxMDAK QEAgLTIzNjAsNiArMjM4Miw3IEBAIFVQREFURSB2MSBTRVQgYT1hKzEgV0hFUkUgc25vb3AoYSkg QU5EIGxlYWtwcm9vZihhKSBBTkQgYSA9IDg7CiAgICBVcGRhdGUgb24gcHVibGljLnQxMTEgdDFf MwogICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdDFfYV9pZHggb24gcHVibGljLnQxCiAgICAgICAg ICBPdXRwdXQ6ICh0MS5hICsgMSksIHQxLmIsIHQxLmMsIHQxLmN0aWQKKyAgICAgICAgIFNraXAg c2NhbjogQWxsCiAgICAgICAgICBJbmRleCBDb25kOiAoKHQxLmEgPiA1KSBBTkQgKHQxLmEgPSA4 KSkKICAgICAgICAgIEZpbHRlcjogKChhbHRlcm5hdGl2ZXM6IFN1YlBsYW4gMSBvciBoYXNoZWQg U3ViUGxhbiAyKSBBTkQgc25vb3AodDEuYSkgQU5EIGxlYWtwcm9vZih0MS5hKSkKICAgICAgICAg IFN1YlBsYW4gMQpAQCAtMjM3NiwxNyArMjM5OSwyMCBAQCBVUERBVEUgdjEgU0VUIGE9YSsxIFdI RVJFIHNub29wKGEpIEFORCBsZWFrcHJvb2YoYSkgQU5EIGEgPSA4OwogICAgICAgICAgICAgICAg ICAgICAgICBPdXRwdXQ6IHQxMl81LmEKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHQxMV9hX2lk eCBvbiBwdWJsaWMudDExIHQxXzEKICAgICAgICAgIE91dHB1dDogKHQxXzEuYSArIDEpLCB0MV8x LmIsIHQxXzEuYywgdDFfMS5kLCB0MV8xLmN0aWQKKyAgICAgICAgIFNraXAgc2NhbjogQWxsCiAg ICAgICAgICBJbmRleCBDb25kOiAoKHQxXzEuYSA+IDUpIEFORCAodDFfMS5hID0gOCkpCiAgICAg ICAgICBGaWx0ZXI6ICgoYWx0ZXJuYXRpdmVzOiBTdWJQbGFuIDEgb3IgaGFzaGVkIFN1YlBsYW4g MikgQU5EIHNub29wKHQxXzEuYSkgQU5EIGxlYWtwcm9vZih0MV8xLmEpKQogICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgdDEyX2FfaWR4IG9uIHB1YmxpYy50MTIgdDFfMgogICAgICAgICAgT3V0cHV0 OiAodDFfMi5hICsgMSksIHQxXzIuYiwgdDFfMi5jLCB0MV8yLmUsIHQxXzIuY3RpZAorICAgICAg ICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAgIEluZGV4IENvbmQ6ICgodDFfMi5hID4gNSkgQU5E ICh0MV8yLmEgPSA4KSkKICAgICAgICAgIEZpbHRlcjogKChhbHRlcm5hdGl2ZXM6IFN1YlBsYW4g MSBvciBoYXNoZWQgU3ViUGxhbiAyKSBBTkQgc25vb3AodDFfMi5hKSBBTkQgbGVha3Byb29mKHQx XzIuYSkpCiAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0MTExX2FfaWR4IG9uIHB1YmxpYy50MTEx IHQxXzMKICAgICAgICAgIE91dHB1dDogKHQxXzMuYSArIDEpLCB0MV8zLmIsIHQxXzMuYywgdDFf My5kLCB0MV8zLmUsIHQxXzMuY3RpZAorICAgICAgICAgU2tpcCBzY2FuOiBBbGwKICAgICAgICAg IEluZGV4IENvbmQ6ICgodDFfMy5hID4gNSkgQU5EICh0MV8zLmEgPSA4KSkKICAgICAgICAgIEZp bHRlcjogKChhbHRlcm5hdGl2ZXM6IFN1YlBsYW4gMSBvciBoYXNoZWQgU3ViUGxhbiAyKSBBTkQg c25vb3AodDFfMy5hKSBBTkQgbGVha3Byb29mKHQxXzMuYSkpCi0oMzMgcm93cykKKygzNyByb3dz KQogCiBVUERBVEUgdjEgU0VUIGE9YSsxIFdIRVJFIHNub29wKGEpIEFORCBsZWFrcHJvb2YoYSkg QU5EIGEgPSA4OwogTk9USUNFOiAgc25vb3BlZCB2YWx1ZTogOAotLSAKMi4yNS4wCgo= --_004_2f8f1466f7cf416cb89f40ffcc26d289opammb0561compoptiverco_--